Posted on 2010-12-29 00:31
浩毛 閱讀(2744)
評論(1) 編輯 收藏 引用 所屬分類:
服務器開發
SOA:Service-oriented architecture
最近在做游戲服務器引擎,查了不少有關SOA的設計方面的資料。發現JAVA世界有相當多的技術標準。
其中比較好的是OSGi (
http://www.osgi.org/About/WhatIsOSGi),OSGi技術是面向Java的動態模型系統。OSGi服務平臺向Java提供服務,這些服務使Java成為軟件集成和軟件開發的首選環境。Java提供在多個平臺支持產品的可移植性。OSGi技術提供允許應用程序使用精煉、可重用和可協作的組件構建的標準化原語。這些組件能夠組裝進一個應用和部署中。
參考它的思路,結合C++語言的特點,我將一個服務器基礎框架設計成了這樣一種:

一個服務器應用,由多個組件組成,組件物理上可以是動態庫,也可以是EXE里一段實際的代碼,每個組件可以向ApplicationFramework注冊多個服務(比如日志服務,網絡服務等)。
ApplicationFramework啟動時,通過配置文件,動態加載和啟動組件,讀取服務的可配置屬性。Framework觸發IComponentActivator的OnStart() 和OnStop()事件,在Start事件中,可以注冊組件自己的服務,也可以加入一個服務監聽器來監聽關心的服務的注冊,注銷等事件。
我隨便畫了幾個大概的接口: