數據總線技術框架說明
數據總線技術框架說明
擬定人:
秦繼磊
擬定時間:
2012年2月28日
第一修訂人:
修訂時間:
第二修訂人
修訂時間:
目錄
1.1.1 應用,在本文中的應用是指一個application,他可以是一個windows 應用程序,也可以是一個web 站點,也可以是一個移動終端應用程序。
1.1.2 ws服務,在文本中是指Web Services服務
1.1.3 CXF類庫,是指Apache CXF Services Framework http://cxf.apache.org/
現在的企業中存在各種應用(系統)和各種數據存儲需求,但是各個應用之間的數據不能實現可控的數據共享,而且各個應用之間由於涉及到開發技術以及和環境的限制也為企業的數據共享設置了障礙,這種現狀阻礙了企業各個應用之間和數據交換和共享,也阻礙了企業對數據可控,數據管理,數據安全方面的需求,那么我們就需要有一種具有無關平台,無關應用,無關空間邏輯的一種數據集成和分配的系統,來管理企業現有的數據調用-數據總線
數據總線(DataBus)是集成各個原始數據庫並對外提供一種有規則的,可控的數據鏈接存儲服務
1.4.1 集成原始數據庫,能夠對現有的數據庫進行添加,刪除操作
1.4.2 對外進行數據存儲服務功能,能夠對外部數據存儲服務,包括數據查詢,數據刪除,數據修改,數據存儲過程以及函數的執行
1.4.3 對應用來源(訪問者)進行管理,能夠對應用來源進行添加,啟用,停用,授權,更改授權,刪除等操作
1.4.4 能夠新增,刪除,修改API函數,能新增,修改,刪除,啟用,停用API函數,以實現對外部調用的響應的邏輯控制,這些API的類型包括數據庫的查詢,修改,刪除,存儲過程以及函數執行等數據庫操作
1.4.5 對訪問者的操作可控,能夠對訪問者的進行權限控制,包括查詢,修改,刪除操作的庫范圍,表范圍,行范圍,列范圍的的執行權限,以及對訪問的操作的時間進行控制,如可以對來源為新企的應用定義為只能在數據庫A的ta,tb表進行全時段的訪問,而對於表tc,td可以在12:00到18:00進行修改和刪除操作
1.4.6 對訪問記錄可查詢,可監控,能夠對各個訪問者的操作記錄進行歷史查詢,和實時的監控訪問者的操作
1.4.7 連接安全措施,能有有效的加密連接,保證即使網絡被監聽情況也能保證數據的安全性,完整性,可校驗性
1.4.8 跨平台,跨語言,跨空間特性,能有效的支持任何平台和任何語言的遠程調用
1.4.9 數據安全隔離,能夠有效的隔離訪問者對數據的直接操作,保證數據的安全性
3.2.1.1 描述,公共查詢模塊,負責查詢現有API實例,包括狀態,函數參數說明,示例代碼,服務控制人,調用方等信息
3.2.1.2 實現邏輯,主要根據系統中的API對外提供查詢服務,讓調用方能夠得到技術支持
3.2.2 API實例管理模塊
3.2.2.1 描述,API實例管理模塊,負責管理API實例的發布,啟用狀態,訪問信息,訪問權限控制,狀態查詢等
3.2.2.2 實現邏輯,通過API實例管理模塊實現API實例的維護,控制等,能有讓管理員控制API實例
3.2.3 API接口及類生成模塊
3.2.3.1 描述,API接口及類生成模塊,能夠根據管理模塊的指令生成API發布所需的接口和類的Java代碼
3.2.3.2 實現邏輯,根據程序的接口定義以及通用類來實現,自動生成可編譯的Java代碼
3.2.4 Java及時編譯模塊
3.2.4.1 描述,Java及時編譯模塊,能夠根據指定的Java文件和構建路徑,編譯Java代碼為Class或是Object
3.2.4.2 實現邏輯,使用jdk提供的JavaCompiler,采用重寫SimpleJavaFileObject,ForwardingJavaFileManager,URLClassLoade的方式自定義編譯java代碼為Class,使用DynamicClassLoader實現動態實例對象
3.2.5 API函數構造模塊
3.2.5.1 描述,API函數構造模塊,能夠實現API函數的構造和發布功能,可將構造的API函數發送的API宿主模塊
3.2.5.2 實現邏輯,使用CXF類庫提供的ServerFactoryBean構造服務元,並在構造過程中添加攔截器回調和訪問邏輯,以實現安全功能
3.2.6 API對外服務宿主模塊
3.2.6.1 描述,API對外服務宿主模塊,能提供webServices服務讓外部從指定的入口點進行訪問,從而提供服務
3.2.6.2 實現邏輯,通過構建模塊構建ServerFactoryBean,使用Create產生Server,配置按照構建模塊的定義配置Endpoint,實現ws服務來提供外部訪問
3.2.7.1 描述,訪問及安全控制模塊為API宿主模塊的回調,它按照安全連接的規則定義,進行安全認證,可實現x509證書,UserToken,自定義密匙的方式的認證
3.2.7.2 實現邏輯,按照API宿主模塊定義的Endpoint的InInterceptor,OutInterceptor的回調,來實現輸出和輸入的認證和處理
3.3.1.1 描述,此模塊能夠維護邏輯規則,添加,刪除,啟用,停用邏輯規則層,以及獲取邏輯規則宿主的運作狀態實時信息和日志
3.3.1.2 實現邏輯,通過配置邏輯規則宿主的入口和各個邏輯規則層實現邏輯規則的控制,通過調用狀態監控模塊實現狀態和日志的讀取
3.3.2.1 描述,能夠響應邏輯控制模塊的調用,生成邏輯規則控制模塊的指定的控制規則,並添加的邏輯控制宿主,實現邏輯規則的添加
3.3.2.2 實現邏輯,根據程序定義的接口和通用類生成規則類的實例,並添加到邏輯控制宿主
3.3.3.1 描述,此模塊能提供唯一入口點,供外部調用,並通過工廠反射的模式,松耦合的形式調用順序的調用邏輯規則層,每一個邏輯規則層會按照程序定義接口進行執行並返回
3.3.3.2 實現邏輯,通過唯一的入口點調用實現集成控制,並在入口點執行環境通過ClassLoader來實例規則層並且調用來實現規則的控制
3.3.4.1 描述,此模塊通過邏輯規則控制宿主模塊入口的回調來實現狀態的讀取,並記錄日志信息,以實現所有操作的可回溯
3.3.4.2 實現邏輯,此模塊定義唯一無阻攔式回調函數,供宿主模塊入口點回調,通過函數的回調信息,獲取當前狀態並記錄和處理
3.4.1.1 描述,此模塊能夠管理數據數據庫實例的掛載和卸載,數據庫驅動的添加,並調用數據連接模塊實現數據庫操作的掛起
3.4.1.2 實現邏輯,通過配置指定的數據庫實例信息和開關,以供連接模塊的調用,來實現連接數據庫的控制
3.4.2.1 描述,此模塊指定唯一的入口點供調用來實現數據庫的操作
3.4.2.2 實現邏輯,通過管理模塊配置信息和入口調用信息,來判斷數據庫的連接類型並動態載入連接驅動,通過驅動模塊操作數據庫
3.5.1 連接方式,客戶端通過soap協議,調用API實現數據庫的訪問
3.5.2 訪問安全,客戶端通過私匙(或證書)加密,IP,MAC,密碼信息到服務端,服務端認證后提供服務,客戶端接受傳入連接需要驗證通過客戶端私匙加密服務端的IP,MAC,密碼信息,這樣就是實現了傳入和傳出安全驗證
3.5.3 通過平台化,客戶端提供各種語言(。Net,java,VC)的幫助類庫,輔助客戶端完成訪問,客戶端可以完全不關心實現邏輯(當然客戶也可以自定義訪問,以為soap協議是通用的)
4.1.1.2 實現方式,通過API函數的參數實現傳入參數的指定,當執行結果為數據集的時候返回DataTableResult,當執行單值返回結果是返回SingleResult,當執行無返回結果是返回VoidResult
4.1.2 傳入參數控制,每個函數的傳入參數必須的原子數據類型,int,string等
4.1.3 大數據量性能控制,系統單次最大返回的數據元素數量為5000行*500列,以避免程序形成資源鎖
4.1.4 異常控制,在系統中會使用外圍異常控制,所以不會導致程序崩潰,程序會打印所有異常信息到異常信息記錄中,以被查閱和調試
4.1.5 系統穩定性,需測試最高壓力為企業實際業務數據量的3-5倍數據請求壓力驗證
4.2.1 能夠在不更改系統邏輯框架的范圍內,進行后期開發,並為后期開發預留可擴展接口和模塊
5.1 數據總線系統能有效的解決企業數據管理松散,數據共享,數據安全,系統整合,跨平台及跨語言應用等方面帶來的數據庫訪問,以及數據安全的問題
5.2 數據總線可以看做所有數據庫的代理服務器,導致企業的IT應用都是通過數據總線進行數據庫操作,所以會降低企業IT應用的性能上限,同時也有可能導致由於總線服務器出錯,導致所有IT應用都無法訪問的的風險
6.1 《Java軟件開發》(美)Sartaj Sahni,Raj Kumar 中國水利水電出版社
6.2 《Java高級編程:JDK5》(美)理查德森 等著,沈文炎 機械工業出版社
6.3 Apache CXF http://cxf.apache.org/
6.4 WSS4J http://baike.baidu.com/view/3184209.htm http://ws.apache.org/wss4j/