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

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