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 引擎完成後會考慮搭配可視化工具讓開發者可以簡單去觀看資料。
留言
張貼留言