專利名稱:一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件架構(gòu),特別是涉及一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法。
背景技術(shù):
隨著IT技術(shù)的不斷發(fā)展,人們對(duì)軟件的功能、性能、安全性等提出了更高的需求, 導(dǎo)致軟件的規(guī)模和復(fù)雜度日益增大,也給軟件的開發(fā)帶來了困難與挑戰(zhàn)。
針對(duì)這種情況,人們提出了各種技術(shù)與方案。如面向?qū)ο蠹夹g(shù)、組件技術(shù)、構(gòu)件技 術(shù)、中間件技術(shù)等。各種技術(shù)都有其實(shí)現(xiàn)方案。其中的組件技術(shù)是一種使用得非常廣泛的 技術(shù),它通過將軟件組件化來分解軟件,從而降低軟件的復(fù)雜度。
軟件架構(gòu)是一個(gè)系統(tǒng)的草圖。軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。 各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。在實(shí)現(xiàn)階段,這些抽象組 件被細(xì)化為實(shí)際的組件,比如具體某個(gè)類或者對(duì)象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通 常用接口來實(shí)現(xiàn)。在常用的客戶端軟件中,會(huì)有用戶界面、業(yè)務(wù)邏輯交互、協(xié)議及網(wǎng)絡(luò)通信 相關(guān)模塊組成。
很多客戶端軟件都有插件,插件有無數(shù)種。使用插件技術(shù)能夠在分析、設(shè)計(jì)、開發(fā)、 項(xiàng)目計(jì)劃、協(xié)作生產(chǎn)和產(chǎn)品擴(kuò)展等很多方面帶來好處。發(fā)明內(nèi)容
本發(fā)明提供了一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,該方法支持系統(tǒng)軟件運(yùn)行時(shí)和 啟動(dòng)時(shí)加載第三方插件,并支持在不同層的接入。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的
本發(fā)明公開了一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,
該組件式開放架構(gòu)模型實(shí)現(xiàn)包括定義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可 插入對(duì)象;
所述定義開放接入接口包括定義組件的標(biāo)準(zhǔn)接入指針;
所述實(shí)現(xiàn)開放接入接口包括在架構(gòu)中實(shí)現(xiàn)指定層接入的業(yè)務(wù);
所述定義可插入對(duì)象包括定義標(biāo)準(zhǔn)的接入接口。
在上述方法中,所述定義開放接入接口還包括定義業(yè)務(wù)標(biāo)識(shí)ID和組件標(biāo)識(shí)ID。
在上述方法中,所述實(shí)現(xiàn)開放接入接口還包括在本組件式開放架構(gòu)中實(shí)現(xiàn)可持 續(xù)存儲(chǔ)應(yīng)用業(yè)務(wù)。
在上述方法中,所述可插入對(duì)象的接入接口方法由第三方實(shí)現(xiàn)。
在上述方法中,所述開放架構(gòu)模型實(shí)現(xiàn)方法還包括插件功能的實(shí)現(xiàn)。
所述插件功能的實(shí)現(xiàn)包括插件定義、實(shí)現(xiàn)插件包裝器、實(shí)現(xiàn)插件持續(xù)存儲(chǔ)。
在上述方法中,所述插件定義包括
所述插件定義為單件,以單實(shí)例方式接入。
在上述方法中,所述插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配接入組件編號(hào),路由命令指令到COM對(duì)象。
在上述方法中,所述實(shí)現(xiàn)插件持續(xù)存儲(chǔ)包括
業(yè)務(wù)層調(diào)用界面的接口,寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ);
或者,
業(yè)務(wù)層寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ)。
在上述方法中,該方法進(jìn)一步包括
在運(yùn)行時(shí)加載插件或在啟動(dòng)時(shí)加載插件;
所述運(yùn)行時(shí)加載插件包括當(dāng)用戶選擇插件,觸發(fā)應(yīng)用后,由業(yè)務(wù)層調(diào)用插件包裝 器,生成組件對(duì)象并注冊(cè)接入框架的每層管理器,插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí) 例,并分配組件ID,路由命令指令到COM對(duì)象的業(yè)務(wù);業(yè)務(wù)層調(diào)用界面的接口,寫入插件配 置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ),或者,業(yè)務(wù)層寫入插件配置信息到配置文件,以實(shí)現(xiàn) 持續(xù)存儲(chǔ);接入層調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面,接入界面層。
所述啟動(dòng)時(shí)加載插件包括啟動(dòng)時(shí)由管理器加載,調(diào)用插件包裝器,加載并生成組 件對(duì)象并注冊(cè)接入框架的每層管理器,插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配 組件ID,路由命令指令到COM對(duì)象的業(yè)務(wù);界面調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面, 接入界面層。
由上述可見,本發(fā)明公開了一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,其中組件式開放 架構(gòu)模型實(shí)現(xiàn)包括定義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可插入對(duì)象;其中,所述 定義開放接入接口包括定義組件的標(biāo)準(zhǔn)接入指針;所述開放接入接口實(shí)現(xiàn)包括在架構(gòu)中實(shí) 現(xiàn)指定層接入的業(yè)務(wù);所述可插入對(duì)象定義包括定義標(biāo)準(zhǔn)的接入接口。該方法支持運(yùn)行時(shí) 和啟動(dòng)時(shí)加載第三方插件,支持在不同層的接入。
圖1是本方法中開放架構(gòu)實(shí)現(xiàn)圖2是本發(fā)明實(shí)例中插件接入流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì) 本發(fā)明進(jìn)行詳細(xì)描述。
開放架構(gòu)模型實(shí)現(xiàn)
圖1是本方法中開放架構(gòu)實(shí)現(xiàn)圖。如圖1所示,組件式開放架構(gòu)模型實(shí)現(xiàn)包括定 義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可插入對(duì)象。
1、定義開放接入接口
在開放接入接口定義中,定義業(yè)務(wù)ID和組件ID,并定義組件的標(biāo)準(zhǔn)接入指針。
2、實(shí)現(xiàn)開放接入接口
在開放接入接口實(shí)現(xiàn)中主要包括在架構(gòu)中實(shí)現(xiàn)指定層接入的業(yè)務(wù)和實(shí)現(xiàn)可持續(xù) 存儲(chǔ)應(yīng)用業(yè)務(wù)。
3、定義可插入對(duì)象
在可插入對(duì)象定義中,定義標(biāo)準(zhǔn)的接入接口。而該可插入對(duì)象的接入接口方法由第三方實(shí)現(xiàn)。
其中,組件式開放架構(gòu)模型實(shí)現(xiàn)中還包括插件功能實(shí)現(xiàn)方法。
插件功能的實(shí)現(xiàn)
插件功能的實(shí)現(xiàn)包括插件定義、實(shí)現(xiàn)插件包裝器、實(shí)現(xiàn)插件持續(xù)存儲(chǔ)。
I)插件定義
插件定義為單件,以單實(shí)例方式接入。即確保一個(gè)類只有一個(gè)實(shí)例,自行提供這個(gè) 實(shí)例并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例。
2)實(shí)現(xiàn)插件包裝器
插件包裝器負(fù)責(zé)生成第三方COM (The Component Object Model組件對(duì)象模型, COM)對(duì)象實(shí)例,并分配接入組件編號(hào),路由命令指令到COM對(duì)象,即根據(jù)命令指令的目的地 址將該命令定向并轉(zhuǎn)發(fā)到COM對(duì)象。
其中,COM是由Microsoft提出的組件標(biāo)準(zhǔn),它不僅定義了組件程序之間進(jìn)行交互 的標(biāo)準(zhǔn),并且也提供了組件程序運(yùn)行所需的環(huán)境。在COM標(biāo)準(zhǔn)中,一個(gè)組件程序也被稱為一 個(gè)模塊,它可以是一個(gè)動(dòng)態(tài)鏈接庫,被稱為進(jìn)程內(nèi)組件(in-process component);也可以是 一個(gè)可執(zhí)行程序(即EXE程序),被稱作進(jìn)程外組件(out-of-process component)。一個(gè) 組件程序可以包含一個(gè)或多個(gè)組件對(duì)象,因?yàn)镃OM是以對(duì)象為基本單元的模型,所以在程 序與程序之間進(jìn)行通信時(shí),通信的雙方應(yīng)該是組件對(duì)象,也叫做COM對(duì)象,而組件程序(或 稱作COM程序)是提供COM對(duì)象的代碼載體。
3)實(shí)現(xiàn)插件持續(xù)存儲(chǔ)
在插件持續(xù)存儲(chǔ)中,主要是通過業(yè)務(wù)層調(diào)用界面的接口,寫入插件配置信息到配 置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ),或者,業(yè)務(wù)層寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ)。
實(shí)例一
在運(yùn)行時(shí)加載插件或在啟動(dòng)時(shí)可加載插件。下面以界面層接入第三方圖片組件實(shí) 例來具體說明如何實(shí)現(xiàn)可插入對(duì)象組件以及運(yùn)行時(shí)、啟動(dòng)時(shí)插件的接入方法。
1、實(shí)現(xiàn)可插入對(duì)象組件
I)實(shí)現(xiàn)可插入對(duì)象的接入接口方法定義接入類型,設(shè)置組件ID,執(zhí)行組件命令。
2)實(shí)現(xiàn)自定義圖片的功能。
2、運(yùn)行時(shí)和啟動(dòng)時(shí)插件的接入方法
圖2是本發(fā)明實(shí)例中插件接入流程圖。如圖2所示。
I)運(yùn)行時(shí)加載并持續(xù)存儲(chǔ)
1.用戶選擇插件,觸發(fā)應(yīng)用后,由業(yè)務(wù)調(diào)用插件包裝器,生成組件對(duì)象并注冊(cè)接入 框架的每層管理器。插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配組件ID,路由命令指 令到COM對(duì)象的業(yè)務(wù)。
i1.業(yè)務(wù)層調(diào)用接入接口,寫入插件配置信息,以持續(xù)存儲(chǔ);即業(yè)務(wù)層調(diào)用界面的 接口,寫入插件配置信息到配置文件,以持續(xù)存儲(chǔ)。或者,業(yè)務(wù)層直接寫入插件配置信息到 配直文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ)。
ii1.界面調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面,接入界面層。
2)啟動(dòng)時(shí)加載
1.啟動(dòng)時(shí)由管理器加載,調(diào)用插件包裝器,加載并生成組件對(duì)象并注冊(cè)接入框架的每層管理器。插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配組件ID,路由命令指令到 COM對(duì)象的業(yè)務(wù)。
i1.界面調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面,接入界面層。
綜上所述,本發(fā)明公開了一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,其中組件式開放架 構(gòu)模型實(shí)現(xiàn)包括定義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可插入對(duì)象;其中,所述定 義開放接入接口包括定義標(biāo)準(zhǔn)接入指針;所述實(shí)現(xiàn)開放接入接口包括在架構(gòu)中實(shí)現(xiàn)指定層 接入的業(yè)務(wù);所述定義可插入對(duì)象包括定義標(biāo)準(zhǔn)的接入接口。該方法支持運(yùn)行時(shí)和啟動(dòng)時(shí) 加載插件,支持在不同層的接入。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,其特征在于,該組件式開放架構(gòu)模型的實(shí)現(xiàn)包括定義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可插入對(duì)象;所述定義開放接入接口包括定義組件的標(biāo)準(zhǔn)接入指針;所述實(shí)現(xiàn)開放接入接口包括在本組件式開放架構(gòu)中實(shí)現(xiàn)指定層接入的業(yè)務(wù);所述定義可插入對(duì)象包括定義標(biāo)準(zhǔn)的接入接口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述定義開放接入接口還包括定義業(yè)務(wù)標(biāo)識(shí)ID和組件標(biāo)識(shí)ID。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述實(shí)現(xiàn)開放接入接口還包括在本組件式開放架構(gòu)中實(shí)現(xiàn)可持續(xù)存儲(chǔ)應(yīng)用業(yè)務(wù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述可插入對(duì)象的接入接口方法由第三方實(shí)現(xiàn)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述組件式開放架構(gòu)模型實(shí)現(xiàn)方法還包括插件功能的實(shí)現(xiàn);所述插件功能的實(shí)現(xiàn)包括插件定義、實(shí)現(xiàn)插件包裝器、實(shí)現(xiàn)插件持續(xù)存儲(chǔ)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述插件定義包括所述插件定義為單件,以單實(shí)例方式接入。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配接入組件編號(hào),路由命令指令到COM對(duì)象。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述實(shí)現(xiàn)插件持續(xù)存儲(chǔ)包括業(yè)務(wù)層調(diào)用界面的接口,寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ);或者,業(yè)務(wù)層寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ)。
9.根據(jù)權(quán)利要求5至8中任一項(xiàng)所述的方法,其特征在于,該方法進(jìn)一步包括在運(yùn)行時(shí)加載插件或在啟動(dòng)時(shí)加載插件。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述運(yùn)行時(shí)加載插件包括當(dāng)用戶選擇插件,觸發(fā)應(yīng)用后,由業(yè)務(wù)層調(diào)用插件包裝器,生成組件對(duì)象并注冊(cè)接入框架的每層管理器,插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配組件ID,路由命令指令到COM對(duì)象的業(yè)務(wù);業(yè)務(wù)層調(diào)用界面的接口,寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ),或者,業(yè)務(wù)層寫入插件配置信息到配置文件,以實(shí)現(xiàn)持續(xù)存儲(chǔ);接入層調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面,接入界面層。所述啟動(dòng)時(shí)加載插件包括啟動(dòng)時(shí)由管理器加載,調(diào)用插件包裝器,加載并生成組件對(duì)象并注冊(cè)接入框架的每層管理器,插件包裝器負(fù)責(zé)生成第三方COM對(duì)象實(shí)例,并分配組件ID,路由命令指令到COM對(duì)象的業(yè)務(wù);界面調(diào)用組件COM對(duì)象的接口,創(chuàng)建插件界面,接入界面層。
全文摘要
本發(fā)明公開了一種組件式開放架構(gòu)模型實(shí)現(xiàn)方法,其中開放架構(gòu)模型實(shí)現(xiàn)包括定義開放接入接口、實(shí)現(xiàn)開放接入接口、定義可插入對(duì)象;其中,所述定義開放接入接口包括定義標(biāo)準(zhǔn)接入指針;所述實(shí)現(xiàn)開放接入接口包括在架構(gòu)中實(shí)現(xiàn)指定層接入的業(yè)務(wù);所述定義可插入對(duì)象包括定義標(biāo)準(zhǔn)的接入接口。該方法支持運(yùn)行時(shí)和啟動(dòng)時(shí)加載插件,支持在不同層的接入。
文檔編號(hào)G06F9/44GK103034477SQ20111029338
公開日2013年4月10日 申請(qǐng)日期2011年9月29日 優(yōu)先權(quán)日2011年9月29日
發(fā)明者郝永建, 楊挺, 方順豹 申請(qǐng)人:北京新媒傳信科技有限公司