在FTPC中,將一樣的處理代碼即業務邏輯和可能不一樣的處理即數據存取邏輯分離開來,所有業務對象對應到數據庫中的數據表,開發者不需要直接去操作數據表,只需對業務對象操作即可,簡化了開發難度,因此代碼量能減少30%-50%。
儘管FTPC的ORM也存在一定的系統開銷,但是相對於關係型數據庫的遍歷開銷和數據庫的連接開銷,FTPC將所有業務對象加載到內存中處理,異步更新其對應於數據庫中的數據,加快了業務邏輯處理效率,比一般的Server同步讀寫數據庫更快,同時也降低了數據庫特有SQL的依賴性,提高了數據庫的可移植性。
Data Handler類
1、 數據處理(DataHandler)程序類處理存儲和獲取數據傳輸對象(DTO)到數據庫表的邏輯。
2、會話bean(Session Bean)利用這些DataHandler程序類直接通過JDBC訪問數據庫。
3、Plant Operations不使用實體bean和容器管理的持久性。數據傳輸對象(DTO)是一組用來傳遞所有必要信息的類。旨在以一種特別適合在系統的不同層之間傳遞的簡單格式來傳遞關於每種類型的 Plant Operations對象的所有必要信息。
4、對於某些類型的數據,數據被緩存到中間層,而這種數據很少發生變化。這些數據緩存的設計目的是通過數據庫的協調來維護多個應用服務器之間的一致性。
下圖爲DataHandler在系統架構中所處層級:
Database Agent類
DataHandler類通過Database Agent對象構件SQL語句,通過JDBC執行SQL語句存儲、獲取或刪除數據。將通過JDBC獲取的ResultSet結果填充到數據傳輸對象(DTO)中。
DataHandler類直接通過JDBC操作數據庫,構件數據傳輸對象,這樣可以不依賴於任何JPA框架達到ORM的目的。整體來看服務端的實現還是比較複雜,修改或擴展的代價或成本也會比較高。也許因爲這樣,或則目前FTPC提供的對象已經足夠製造業使用以及擴展,因此目前已經很少再看到通過修改服務端來擴展其他對象,而是通過AT Definition構件業務對象。但對基於FTPC的業務系統開發,因爲可以通過AT Definition構件業務對象,完全脫離了數據庫表,只操作業務對象,還是比較方便。
Database Agent提供了構件SQL的以下類:
- 數據操縱語言(DML)主要包括:Insert Statement、Update Statement、Delete Statement
- 數據定義語言(DDL)主要包括:Create Table Statement、Alter Table Statement、Alter Table Modify Column Statement、Create Index Statement、Callable Statement
- 數據查詢語言(DQL)主要包括:Select Statement、Filter、Join
下圖描述了Database Agent主要類: