[發(fā)明專利]一種支持插件接口同步異步統(tǒng)一調(diào)用的方法及微內(nèi)核系統(tǒng)有效
| 申請?zhí)枺?/td> | 201810829640.1 | 申請日: | 2018-07-25 |
| 公開(公告)號: | CN109240758B | 公開(公告)日: | 2021-10-29 |
| 發(fā)明(設(shè)計)人: | 劉銀森;郜鵬 | 申請(專利權(quán))人: | 武漢精測電子集團(tuán)股份有限公司 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 武漢東喻專利代理事務(wù)所(普通合伙) 42224 | 代理人: | 趙偉 |
| 地址: | 430070 湖北省武漢市洪*** | 國省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 支持 插件 接口 同步 異步 統(tǒng)一 調(diào)用 方法 內(nèi)核 系統(tǒng) | ||
本發(fā)明公開了一種支持插件接口同步異步統(tǒng)一調(diào)用的方法及微內(nèi)核系統(tǒng),該架構(gòu)包括應(yīng)用定位表、消息隊列、線程池和映射結(jié)構(gòu)表;應(yīng)用定位表用于存儲使用同一微內(nèi)核系統(tǒng)的多個應(yīng)用程序的定位信息;映射結(jié)構(gòu)表用于對應(yīng)存儲一個應(yīng)用程序中的插件名、插件接口名、插件接口地址之間的映射關(guān)系;消息隊列按序存儲插件接收的遠(yuǎn)程調(diào)用請求;線程池中的每個線程對應(yīng)綁定一個插件以拉取該插件接收的遠(yuǎn)程調(diào)用請求,提取插件名并根據(jù)映射結(jié)構(gòu)表查找插件名對應(yīng)的插件接口地址,匹配并進(jìn)行接口調(diào)用;本發(fā)明支持應(yīng)用進(jìn)程內(nèi)及進(jìn)程間的插件接口的同步或異步交互調(diào)用,使微內(nèi)核系統(tǒng)既可作為單一應(yīng)用的軟件架構(gòu),也可以擴(kuò)展為分布式應(yīng)用的軟件架構(gòu),提升了微內(nèi)核系統(tǒng)的延展性。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件架構(gòu)及應(yīng)用程序插件技術(shù)領(lǐng)域,更具體地,涉及一種支持插件接口同步異步統(tǒng)一調(diào)用的方法及微內(nèi)核系統(tǒng)。
背景技術(shù)
微內(nèi)核架構(gòu)有時也被成為插件架構(gòu)模式(plug-in architecture pattern),見圖1,其是一種通用的軟件架構(gòu)模式,與所使用的軟件開發(fā)語言沒有強(qiáng)制關(guān)聯(lián)關(guān)系。微內(nèi)核架構(gòu)包含兩部分組件:核心系統(tǒng)(core system)和插件模塊(plug-in modules)。應(yīng)用邏輯被分割為獨(dú)立的插件模塊和核心系統(tǒng),提供了可擴(kuò)展性、靈活性、功能隔離和自定義處理邏輯的特性。微內(nèi)核架構(gòu)的使用范圍很廣泛,比較著名的插件架構(gòu)產(chǎn)品為Eclipse和Firefox。
插件模塊連接核心系統(tǒng)的方法可以有很多種,包含OSGi(開放服務(wù)網(wǎng)關(guān)協(xié)議)、消息隊列、網(wǎng)絡(luò)服務(wù)、甚至是直接的點(diǎn)對點(diǎn)綁定(對象實(shí)例化)。選用的連接方式取決于設(shè)計的應(yīng)用程序類型(小產(chǎn)品或大型企業(yè)產(chǎn)品)和一些特定需求(如單一部署或分布式部署)。架構(gòu)模式本身不指定任何一種實(shí)施方式,只要求插件模塊必須保持相互獨(dú)立。插件模塊連接核心系統(tǒng)的方式在一定程度上決定了插件接口被交互調(diào)用的方式,如圖2所示,不同插件內(nèi)接口的交互場景可能包括在同一應(yīng)用進(jìn)程內(nèi)或不同應(yīng)用進(jìn)程間兩種情況,且接口調(diào)用方式應(yīng)至少具備同步、異步兩種調(diào)用形式;
但是現(xiàn)行一些已實(shí)現(xiàn)的微內(nèi)核架構(gòu)通常對以上場景的支持并不完全,例如CPPMicroservice,將插件實(shí)現(xiàn)的類型或接口注冊為服務(wù)的形式,只支持同一應(yīng)用進(jìn)程內(nèi)插件接口的交互調(diào)用,且在使用過程中只能以同步方式構(gòu)造插件對象并使用其接口,導(dǎo)致無法實(shí)現(xiàn)使用該微內(nèi)核架構(gòu)的應(yīng)用與其它應(yīng)用之間的互操作,不利于提升微內(nèi)核架構(gòu)的應(yīng)用擴(kuò)展性。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的至少一個缺陷或改進(jìn)需求,本發(fā)明提供了一種支持插件接口同步異步統(tǒng)一調(diào)用的方法及微內(nèi)核系統(tǒng),其目的在于解決現(xiàn)有的微內(nèi)核架構(gòu)系統(tǒng)無法完全支持在應(yīng)用進(jìn)程內(nèi)和應(yīng)用進(jìn)程間的同步、異步調(diào)用插件接口的問題。
為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種支持插件接口同步異步統(tǒng)一調(diào)用的方法,包括以下步驟:
S1:應(yīng)用程序中的微內(nèi)核系統(tǒng)創(chuàng)建該應(yīng)用的應(yīng)用定位表,用于存儲使用同一框架的其它應(yīng)用程序的定位信息,該定位信息包括應(yīng)用名及其對應(yīng)的網(wǎng)絡(luò)位置信息;并創(chuàng)建對應(yīng)的映射結(jié)構(gòu)表以存儲該應(yīng)用中的插件名、插件接口名和插件接口地址的映射關(guān)系;
S2:通過所述應(yīng)用定位表查找待調(diào)用的應(yīng)用程序是本地應(yīng)用或外部應(yīng)用;所述應(yīng)用定位表中存儲有使用同一微內(nèi)核系統(tǒng)的多個應(yīng)用程序的定位信息;若是本地應(yīng)用,則進(jìn)入步驟S3;若是外部應(yīng)用,則進(jìn)入步驟S6;
S3:根據(jù)不同的調(diào)用接口區(qū)分本次調(diào)用為本地應(yīng)用內(nèi)的同步調(diào)用或異步調(diào)用,所述調(diào)用接口包括同步調(diào)用接口和異步調(diào)用接口;若是同步調(diào)用,則進(jìn)入步驟S4;若是異步調(diào)用,進(jìn)入步驟S5;
S4:通過本地應(yīng)用的映射結(jié)構(gòu)表查找待調(diào)用的插件接口地址并直接進(jìn)行接口調(diào)用;
S5:構(gòu)造遠(yuǎn)程調(diào)用消息并插入到待調(diào)用插件的消息隊列中;待調(diào)用插件通過本地應(yīng)用的映射結(jié)構(gòu)表查找待調(diào)用的插件接口地址并進(jìn)行接口調(diào)用;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢精測電子集團(tuán)股份有限公司,未經(jīng)武漢精測電子集團(tuán)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810829640.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





