Hana Project 介紹 第二集 - Hana 引擎後端架構

Hana 引擎架構

整體架構如下圖。

主要分成三大區塊對應內容如下:

  • Hana Back: 後端(包含DB)
  • Hana Front: 前端
  • Resource: 圖片音樂文字等資源

接下來會依序講解:

Hana Back

Hana 引擎的後端,本身是 spring boot服務,透過rest API 與Hana Front 溝通。
目前 Hana Back 主要處理兩份工作,分別是 Hana 語言解析跟存讀檔。

Hana 語言解析

由於Hana腳本語言會有一定數量的指令,當發現該行是指令後會繼續讀取下一行,直到非指令為止。
讀取完之後會將內容轉換成Json傳遞給 Hana Front。
原先想要一個 Json 就代表一個畫面,但最終考量到 restful 應該是無狀態的,不應該因為之前呼叫過哪些行數而改變傳遞內容;如果是每次都從開頭讀取 Hana 腳本語言而組成 Json 的話,在面對大量交換場景的部分可能會導致物件內容的大量重新 new 與拋棄,因此最終決定就忠實傳遞 Hana 腳本的內容就好了。

Hana Save System

目前尚未實作完成。
本體是使用內嵌的 H2DB搭配 MyBatis,雖然有部分資料不建議使用H2DB在生產環境中。但實際考量 galgame 本身並不會大量的 CRUD,因此就放心地使用了。
會在 Hana 引擎啟動的時候透過 spring boot 自動去尋找是否有建立 DB 跟 table。如果沒有的話將會自動建立;但目前尚未實作存讀檔,因此會建立DB跟table但不會有資料在裡面。

將來 Hana 引擎完成後會考慮搭配可視化工具讓開發者可以簡單去觀看資料。 

留言

這個網誌中的熱門文章

基本 Spring security 快速入門

記帳專案說明

JMSTemplate 的教學