亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng)的制作方法

文檔序號(hào):6443044閱讀:173來源:國知局
專利名稱:實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng)的制作方法
實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng)
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng)。背景技術(shù)
簡單的應(yīng)用程序通常只需直觀的完成某個(gè)特定功能,隨著程序復(fù)雜度的增長,可以將程序劃分為實(shí)現(xiàn)各種功能的程序以便合作開發(fā),且增強(qiáng)復(fù)用性。程序運(yùn)行時(shí),所有程序在同一個(gè)進(jìn)程空間中,各程序之間的通信是通過直接調(diào)用其它程序中的函數(shù)實(shí)現(xiàn)的。從編程的難易程度和性能上,這樣具有一定的優(yōu)勢,然而隨著時(shí)間的增長,程序間的調(diào)用關(guān)系會(huì)變得越來越復(fù)雜,修改的風(fēng)險(xiǎn)也會(huì)加大,排錯(cuò)和調(diào)試的難度也會(huì)加大。將所有程序運(yùn)行在單個(gè)進(jìn)程里,會(huì)限制程序的擴(kuò)展性、靈活性和安全性,只要任何一個(gè)程序崩潰都會(huì)導(dǎo)致整個(gè)進(jìn)程崩潰。尤其是開放平臺(tái),因其要求承載大量第三方應(yīng)用和服務(wù),且第三方應(yīng)用間的調(diào)用關(guān)系更加復(fù)雜,因此需保證應(yīng)用間通信的靈活性和安全性。

發(fā)明內(nèi)容基于此,有必要提供一種能提高多應(yīng)用通信靈活性和安全性的實(shí)現(xiàn)多應(yīng)用間通信的方法一種實(shí)現(xiàn)多應(yīng)用間通信的方法,包括以下步驟:微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包,其中,所述第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到所述微內(nèi)核;所述微內(nèi)核將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用;所述微內(nèi)核接收所述第二應(yīng)用返回的響應(yīng)包,并將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用。優(yōu)選的,還包括步驟:預(yù)先設(shè)定所述第一應(yīng)用的訪問權(quán)限;所述微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包的步驟之后,還包括步驟:所述微內(nèi)核檢測所述第一應(yīng)用的訪問權(quán)限,當(dāng)所述第一應(yīng)用存在所述訪問權(quán)限時(shí),所述微內(nèi)核將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用。優(yōu)選的,所述響應(yīng)包中包括調(diào)用結(jié)果;在所述第一應(yīng)用向第二應(yīng)用發(fā)起請(qǐng)求包的步驟,同時(shí)還包括步驟:所述第一應(yīng)用根據(jù)所述請(qǐng)求包生成會(huì)話標(biāo)識(shí),將所述會(huì)話標(biāo)識(shí)分別存入到所述請(qǐng)求包和本地;在所述第二應(yīng)用返回響應(yīng)包的步驟,同時(shí)還包括步驟:將所述請(qǐng)求包中的會(huì)話標(biāo)識(shí)存入所述響應(yīng)包中;在所述微內(nèi)核接收所述第二應(yīng)用返回的響應(yīng)包,并將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用的步驟之后,還包括步驟:所述第一應(yīng)用將所述返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與所述本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹 配,若匹配成功,則激活同步調(diào)用線程讀取響應(yīng)包并獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果。優(yōu)選的,所述微內(nèi)核獲取所述第一應(yīng)用向所述第二應(yīng)用發(fā)起的請(qǐng)求包的步驟具體包括:所述第一應(yīng)用調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并將向所述第二應(yīng)用發(fā)起的請(qǐng)求打包成請(qǐng)求包;所述微內(nèi)核獲取所述遠(yuǎn)程過程調(diào)用應(yīng)用傳遞的所述請(qǐng)求包。優(yōu)選的,還包括步驟:在所述微內(nèi)核中注冊(cè)事件信息與應(yīng)用之間的對(duì)應(yīng)關(guān)系;獲取所述第一應(yīng)用觸發(fā)的事件信息,并將所述事件信息傳遞給所述微內(nèi)核;所述微內(nèi)核根據(jù)所述事件信息從所述事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用,將所述事件信息通知到相應(yīng)的應(yīng)用。此外,還有必要提供一種能提高多應(yīng)用通信靈活性和安全性的實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng)。一種實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),包括微內(nèi)核,所述微內(nèi)核包括:第一獲取模塊,用于獲取所述第一應(yīng)用向所述第二應(yīng)用發(fā)起的請(qǐng)求包,其中,所述第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到所述微內(nèi)核;轉(zhuǎn)發(fā)模塊,用于將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用;所述第一獲取模塊還用于接收所述第二應(yīng)用返回的響應(yīng)包;所述轉(zhuǎn)發(fā)模塊還用于將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用。優(yōu)選的,所述微內(nèi)核還包括:預(yù)設(shè)模塊,用于當(dāng)將所述第一應(yīng)用注冊(cè)到微內(nèi)核后,設(shè)定所述第一應(yīng)用的訪問權(quán)限;檢測模塊,用于所述第一應(yīng)用的訪問權(quán)限;所述轉(zhuǎn)發(fā)模塊還用于當(dāng)所述第一應(yīng)用存在所述訪問權(quán)限時(shí),將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用。優(yōu)選的,所述響應(yīng)包中包括調(diào)用結(jié)果;所述第一應(yīng)用包括:生成模塊,用于根據(jù)所述請(qǐng)求包生成會(huì)話標(biāo)識(shí);存儲(chǔ)模塊,用于將所述會(huì)話標(biāo)識(shí)分別存入到所述請(qǐng)求包和本地;匹配模塊,用于接收返回的包含所述請(qǐng)求包中會(huì)話標(biāo)識(shí)的響應(yīng)包,將所述返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與所述本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配;第二獲取模塊,用于當(dāng)匹配成功,激活同步調(diào)用線程讀取響應(yīng)包并獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果;所述第二應(yīng)用將所述請(qǐng)求包中的會(huì)話標(biāo)識(shí)存入所述響應(yīng)包中。優(yōu)選的,所述第一應(yīng)用還包括打包模塊,用于將第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求打包成請(qǐng)求包;所述系統(tǒng)還包括遠(yuǎn)程過程調(diào)用應(yīng)用,所述遠(yuǎn)程調(diào)用應(yīng)用用于將所述請(qǐng)求包傳遞給所述第一獲取模塊。 優(yōu)選的,所述微內(nèi)核還包括:關(guān)系建立模塊,用于在所述微內(nèi)核中注冊(cè)事件信息與應(yīng)用程序之間的對(duì)應(yīng)關(guān)系;所述第一獲取模塊還用于獲取所述第二獲取模塊獲取的觸發(fā)的事件信息;查找模塊,用于根據(jù)所述事件信息從所述事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用;廣播模塊,用于將所述事件信息通知到相應(yīng)的應(yīng)用。上述實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng),采用將第一應(yīng)用及第二應(yīng)用注冊(cè)到微內(nèi)核,將第一應(yīng)用向第二應(yīng)用發(fā)送的請(qǐng)求包,以及第二應(yīng)用對(duì)請(qǐng)求包的響應(yīng)包,均通過微內(nèi)核進(jìn)行中轉(zhuǎn)控制,無論多少應(yīng)用間通信均通過微內(nèi)核進(jìn)行中轉(zhuǎn)控制,使得應(yīng)用間的通信簡單,提高了應(yīng)用間通信的靈活性和安全性。

圖1為一個(gè)實(shí)施例中實(shí)現(xiàn)多應(yīng)用間通信的方法的流程示意圖;圖2為第一應(yīng)用通過同步調(diào)用方式調(diào)用第二應(yīng)用的具體步驟的流程圖;圖3為一個(gè)實(shí)施例中實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng)的結(jié)構(gòu)示意圖;圖4為一個(gè)實(shí)施 例中微內(nèi)核的內(nèi)部結(jié)構(gòu)示意圖;圖5為一個(gè)實(shí)施例中第一應(yīng)用的內(nèi)部結(jié)構(gòu)示意圖;圖6為另一個(gè)實(shí)施例中微內(nèi)核的內(nèi)部結(jié)構(gòu)示意圖。
具體實(shí)施方式下面結(jié)合具體的實(shí)施例及附圖對(duì)技術(shù)方案進(jìn)行詳細(xì)的描述。如圖1所示,在一個(gè)實(shí)施例中,一種實(shí)現(xiàn)多應(yīng)用間通信的方法,包括以下步驟:步驟S110,微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包,其中,該第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到該微內(nèi)核中。本實(shí)施例中,預(yù)先配置微內(nèi)核。微內(nèi)核為主進(jìn)程,負(fù)責(zé)信息的傳遞,以及調(diào)度和控制應(yīng)用等,且控制應(yīng)用的生命周期和運(yùn)行期行為。任何應(yīng)用均需安裝注冊(cè)到微內(nèi)核中。應(yīng)用是指制作并在平臺(tái)上發(fā)布的應(yīng)用程序或?qū)崿F(xiàn)某一功能的函數(shù)。進(jìn)一步的,在一個(gè)實(shí)施例中,微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包的步驟包括:該第一應(yīng)用調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并將向該第二應(yīng)用發(fā)起的請(qǐng)求打包成請(qǐng)求包;微內(nèi)核獲取該遠(yuǎn)程過程調(diào)用應(yīng)用傳遞的該請(qǐng)求包。本實(shí)施例中,第一應(yīng)用運(yùn)行調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用(Remote Procedure Call Protocol, RPC)的SynCall (同步調(diào)用指令)將其發(fā)起的請(qǐng)求包傳遞給微內(nèi)核,且同步調(diào)用中設(shè)有超時(shí)事件機(jī)制,如需2秒返回響應(yīng),超過2秒則丟棄請(qǐng)求包。進(jìn)一步的,在一個(gè)實(shí)施例中,第一應(yīng)用向第二應(yīng)用發(fā)送請(qǐng)求時(shí),第一應(yīng)用根據(jù)該請(qǐng)求生成會(huì)話標(biāo)識(shí)(Session Id),將該會(huì)話標(biāo)識(shí)分別存入到請(qǐng)求包和本地。該會(huì)話標(biāo)識(shí)存在請(qǐng)求包的包頭中。且在整個(gè)調(diào)用傳遞過程中保持會(huì)話標(biāo)識(shí)不變。進(jìn)一步的,在一個(gè)實(shí)施例中,當(dāng)?shù)谝粦?yīng)用和第二應(yīng)用預(yù)先注冊(cè)到微內(nèi)核中后,還包括步驟:預(yù)先設(shè)定第一應(yīng)用的訪問權(quán)限。本實(shí)施例中,應(yīng)用注冊(cè)到微內(nèi)核中后,對(duì)應(yīng)用預(yù)先設(shè)定訪問權(quán)限,訪問權(quán)限是指向某個(gè)應(yīng)用發(fā)送任何請(qǐng)求的權(quán)限,如應(yīng)用A的訪問權(quán)限為可向應(yīng)用B發(fā)送調(diào)用請(qǐng)求,不能向應(yīng)用C發(fā)送調(diào)用請(qǐng)求。此外,可將應(yīng)用的訪問權(quán)限精確到具體的 API (Application Programming Interface,應(yīng)用程序編程接口)。進(jìn)一步的,在一個(gè)實(shí)施例中,若預(yù)先設(shè)定了第一應(yīng)用的訪問權(quán)限,則在步驟SllO之后,還包括步驟:微內(nèi)核檢測第一應(yīng)用的訪問權(quán)限,當(dāng)?shù)谝粦?yīng)用存在該訪問權(quán)限時(shí),微內(nèi)核將該請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用。當(dāng)檢測到第一應(yīng)用不存在該訪問權(quán)限時(shí),將返回沒有權(quán)限的信息給第一應(yīng)用,并忽略該請(qǐng)求包。步驟S120,微內(nèi)核將該請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用。本實(shí)施例中,若第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求被允許,則微內(nèi)核將檢查第二應(yīng)用是否已加載,若是,則將請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用,若否,則從互聯(lián)網(wǎng)上下載第二應(yīng)用并加載或從本地加載第二應(yīng)用,然后再由微內(nèi)核將該請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用。此外,若第二應(yīng)用不存在,微內(nèi)核也可返回不存在第二應(yīng)用的信息給第一應(yīng)用,并忽略該請(qǐng)求包。步驟S130,微內(nèi)核接收第二應(yīng)用返回的響應(yīng)包,并將該響應(yīng)包轉(zhuǎn)發(fā)給第一應(yīng)用。本實(shí)施例中,第二應(yīng)用將請(qǐng)求包解釋成調(diào)用,然后執(zhí)行該調(diào)用生成響應(yīng)包,將該響應(yīng)包返回給該微內(nèi)核。該微內(nèi)核將響應(yīng)包轉(zhuǎn)發(fā)給第一應(yīng)用。如此,該微內(nèi)核采用星形多進(jìn)程架構(gòu),方便實(shí)現(xiàn)多應(yīng)用間通信。進(jìn)一步的,在一個(gè)實(shí)施例中,該響應(yīng)包中包括會(huì)話標(biāo)識(shí)和調(diào)用結(jié)果;上述實(shí)現(xiàn)多應(yīng)用間通信的方法,在第二應(yīng)用返回響應(yīng)包的步驟,同時(shí)還包括步驟:將該請(qǐng)求包中的會(huì)話標(biāo)識(shí)存入該響應(yīng)包中??杀WC會(huì)話標(biāo)識(shí)在調(diào)用過程中的一致。在步驟S130之后,還包括步驟:第一應(yīng)用將該返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配,若匹配成功,則激活同步調(diào)用線程讀取響應(yīng)包,獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果。本實(shí)施例中,對(duì)會(huì)話標(biāo)識(shí)進(jìn)行匹配,可保證應(yīng)用之間調(diào)用不會(huì)出錯(cuò)。進(jìn)一步的,在一個(gè)實(shí)施例中,實(shí)現(xiàn)多應(yīng)用間通信的方法,還包括步驟:在該微內(nèi)核中注冊(cè)事件信息與應(yīng)用之間的對(duì)應(yīng)關(guān)系;獲取第一應(yīng)用觸發(fā)的事件信息,并將該事件信息傳遞給微內(nèi)核;微內(nèi)核根據(jù)該事件信息從事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用,將該事件信息通知到相應(yīng)的應(yīng)用。本實(shí)施例中,事件是指發(fā)生某件事情需要通知與該事件存在對(duì)應(yīng)關(guān)系的應(yīng)用的機(jī)制。由微內(nèi)核負(fù)責(zé)事件的管理和分發(fā),可對(duì)事件進(jìn)行注冊(cè)、觸發(fā)、反注冊(cè)等操作。注冊(cè)即將事件與應(yīng)用的對(duì)應(yīng)關(guān)系注冊(cè)到微內(nèi)核;觸發(fā)即為獲取第一應(yīng)用對(duì)事件的觸發(fā);反注冊(cè)即為注銷與應(yīng)用相關(guān)的所有事件。事件信息根據(jù)不同的事件,其信息也不同。如事件為登錄,則事件信息包括帳號(hào)信息等。第一應(yīng)用調(diào)用第二應(yīng)用可同步調(diào)用或異步調(diào)用方式實(shí)現(xiàn)。在一個(gè)實(shí)施例中,如圖2所示,第一應(yīng)用同步調(diào)用方式調(diào)用第二應(yīng)用的具體步驟包括:步驟S202,第一應(yīng)用將向第二應(yīng)用發(fā)送的請(qǐng)求打包成請(qǐng)求包,調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并阻塞線程,其中,請(qǐng)求包中包括會(huì)話標(biāo)識(shí)。本實(shí)施例中,調(diào)用RPC的SynCall (同步調(diào)用指令),且同步調(diào)用中設(shè)有超時(shí)事件機(jī)制,如需2秒返回響應(yīng),超過2秒則丟棄請(qǐng)求包。步驟S204,遠(yuǎn)程過程調(diào)用應(yīng)用將請(qǐng)求包傳遞給微內(nèi)核。步驟S206,微內(nèi)核檢測第一應(yīng)用是否存在訪問權(quán)限,若是,則執(zhí)行步驟S208,若
否,結(jié)束。步驟S208,微內(nèi)核將請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用。步驟S210,第二應(yīng)用將請(qǐng)求包解釋成調(diào)用,執(zhí)行該調(diào)用,生成響應(yīng)包,將該響應(yīng)包返回給微內(nèi)核。
步驟S212,微內(nèi)核將該響應(yīng)包轉(zhuǎn)發(fā)給第一應(yīng)用,其中,該響應(yīng)包中包括會(huì)話標(biāo)識(shí)和調(diào)用結(jié)果。步驟S214,第一應(yīng)用將響應(yīng)包中的會(huì)話標(biāo)識(shí)與本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配,等待線程。步驟S216,判斷是否匹配成功,若是,則執(zhí)行步驟S218,否則結(jié)束。步驟S218,獲取線程,并激活該線程,讀取響應(yīng)包,獲取調(diào)用結(jié)果。在一個(gè)實(shí)施例中,第一應(yīng)用異步調(diào)用方式調(diào)用第二應(yīng)用,與同步調(diào)用方式不同的是,步驟S202中調(diào)用異步調(diào)用指令,不需阻塞線程,步驟S214中不需等待線程,步驟S218中直接獲取調(diào)用結(jié)果。如圖3,在一個(gè)實(shí)施例中,一種實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),包括微內(nèi)核10、第一應(yīng)用20和第二應(yīng)用30。微內(nèi)核10包括第一獲取模塊110和轉(zhuǎn)發(fā)模塊120。其中,第一獲取模塊110用于獲取第一應(yīng)用20向第二應(yīng)用30發(fā)起的請(qǐng)求包,其中,第一應(yīng)用20和第二應(yīng)用30預(yù)先注冊(cè)到所述微內(nèi)核。本實(shí)施例中,微內(nèi)核10為主進(jìn)程,負(fù)責(zé)信息的傳遞,以及調(diào)度和控制應(yīng)用等,且控制應(yīng)用的生命周期和運(yùn)行期行為。任何應(yīng)用均需安裝注冊(cè)到微內(nèi)核中。應(yīng)用是指制作并在平臺(tái)上發(fā)布的應(yīng)用程序或?qū)崿F(xiàn)某一功能的函數(shù)。轉(zhuǎn)發(fā)模塊120用于將該請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用30。第一獲取模塊110還用于接收第二應(yīng)用30返回的響應(yīng)包。轉(zhuǎn)發(fā)模塊120還用于將該響應(yīng)包轉(zhuǎn)發(fā)給第一應(yīng)用20。進(jìn)一步的,在一個(gè)實(shí)施例中,如圖4所示,微內(nèi)核10除了包括第一獲取模塊110和轉(zhuǎn)發(fā)模塊120,還包括預(yù)設(shè)模塊130和檢測模塊140。預(yù)設(shè)模塊130用于當(dāng)將該第一應(yīng)用20注冊(cè)到微內(nèi)核后,設(shè)定該第一應(yīng)用20的訪問權(quán)限。本實(shí)施例中,應(yīng)用注冊(cè)到微內(nèi)核中后,預(yù)設(shè)模塊130對(duì)應(yīng)用預(yù)先設(shè)定訪問權(quán)限,訪問權(quán)限是指向某個(gè)應(yīng)用發(fā)送任何請(qǐng)求的權(quán)限,如應(yīng)用A的訪問權(quán)限為可向應(yīng)用B發(fā)送調(diào)用請(qǐng)求,不能向應(yīng)用C發(fā)送調(diào)用請(qǐng)求。此外,可將應(yīng)用的訪問權(quán)限精確到具體的API。檢測模塊140用于第一應(yīng)用20的訪問權(quán)限。轉(zhuǎn)發(fā)模塊120還用于當(dāng)?shù)谝粦?yīng)用20存在該訪問權(quán)限時(shí),將請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用30。當(dāng)檢測模塊140檢測到第一應(yīng)用10不存在該訪問權(quán)限時(shí),轉(zhuǎn)發(fā)模塊120將返回沒有權(quán)限的信息給第一應(yīng)用10,并忽略該請(qǐng)求包。本實(shí)施例中,第一應(yīng)用20向第二應(yīng)用30發(fā)起的請(qǐng)求被允許,則檢測模塊140將檢查第二應(yīng)用30是否已加載,若是,則轉(zhuǎn)發(fā)模塊120將請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用30,若否,則從互聯(lián)網(wǎng)上下載第二應(yīng)用30并加載或從本地加載第二應(yīng)用,然后再由轉(zhuǎn)發(fā)模塊120將該請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用30。此外,若第二應(yīng)用30不存在,轉(zhuǎn)發(fā)模塊120也可返回不存在第二應(yīng)用30的信息給第一應(yīng)用20,并忽略該請(qǐng)求包。進(jìn)一步的,在一個(gè)實(shí)施例中,如圖5所不,第一應(yīng)用20包括生成模塊210、存儲(chǔ)模塊220、匹配模塊230和第二獲取模塊240。生成模塊210用于根據(jù)該請(qǐng)求包生成會(huì)話標(biāo)識(shí),存儲(chǔ)模塊220用于將該會(huì)話標(biāo)識(shí)分別存入到該請(qǐng)求包和本地。該會(huì)話標(biāo)識(shí)存在請(qǐng)求包的包頭中。且在整個(gè)調(diào)用傳遞過程中保持會(huì)話標(biāo)識(shí)不變。當(dāng)響應(yīng)包中包括會(huì)話標(biāo)識(shí)和調(diào)用結(jié)果時(shí),匹配模塊230用于接收返回的包含請(qǐng)求包中的會(huì)話標(biāo)識(shí)的響應(yīng)包,將返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配,若匹配成功,則第二獲取模塊240用于激活同步調(diào)用線程讀取響應(yīng)包,獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果。本實(shí)施例中,通過對(duì)會(huì)話標(biāo)識(shí)進(jìn)行匹配,可保證應(yīng)用之間調(diào)用不會(huì)出錯(cuò)。進(jìn)一步的,在一個(gè)實(shí)施例中,如圖6所不,微內(nèi)核10還包括關(guān)系建立模塊150、查找模塊160和廣播模塊170。關(guān)系建立模塊150用于在微內(nèi)核10中注冊(cè)事件信息與應(yīng)用之間的對(duì)應(yīng)關(guān)系;第一獲取模塊110還用于獲取模塊用于獲取第二獲取模塊240獲取的觸發(fā)的事件信息;查找模塊160用于根據(jù)該事件信息從事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用;廣播模塊170用于將該事件信息通知到相應(yīng)的應(yīng)用。本實(shí)施例中,事件是指發(fā)生某件事情需要通知與該事件存在對(duì)應(yīng)關(guān)系的應(yīng)用的機(jī)制。由微內(nèi)核負(fù)責(zé)事件的管理和分發(fā),可對(duì)事件進(jìn)行注冊(cè)、觸發(fā)、反注冊(cè)等操作。注冊(cè)即將事件與應(yīng)用的對(duì)應(yīng)關(guān)系注冊(cè)到微內(nèi)核;觸發(fā)即為獲取第一應(yīng)用對(duì)事件的觸發(fā);反注冊(cè)即為注銷與應(yīng)用相關(guān)的所有事件。事件信息根據(jù)不同的事件,其信息也不同。如事件為登錄,則事件信息包括帳號(hào)信息等。進(jìn)一步的,在一個(gè)實(shí)施例中,上述實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),除了包括微內(nèi)核10、第一應(yīng)用20和第二應(yīng)用30,還包括遠(yuǎn)程過程調(diào)用應(yīng)用,第一應(yīng)用20調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并將向第二應(yīng)用30發(fā)起的請(qǐng)求打包成請(qǐng)求包;遠(yuǎn)程過程調(diào)用應(yīng)用用于將該請(qǐng)求包傳遞給微內(nèi)核10。第一應(yīng)用20調(diào)用第二應(yīng)用30可同步調(diào)用或異步調(diào)用方式實(shí)現(xiàn)。在一個(gè)實(shí)施例中,第一應(yīng)用20同步調(diào)用方式調(diào)用第二應(yīng)用30的具體過程包括:(I)第一應(yīng)用20將向第二應(yīng)用30發(fā)送的請(qǐng)求打包成請(qǐng)求包,調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并阻塞線程,其中,請(qǐng)求包中包括會(huì)話標(biāo)識(shí)。本實(shí)施例中,調(diào)用遠(yuǎn)程過程調(diào)用(RPC)應(yīng)用的SynCall(同步調(diào)用指令),且同步調(diào)用中設(shè)有超時(shí)事件機(jī)制,如需2秒返回響應(yīng),超過2秒則丟棄請(qǐng)求包。(2)遠(yuǎn)程過程調(diào)用應(yīng)用將請(qǐng)求包傳遞給微內(nèi)核。(3)該微內(nèi)核10檢測第一應(yīng)用20是否存在訪問權(quán)限,若是,則執(zhí)行過程(4),若
否,結(jié)束。(4)該微內(nèi)核10將請(qǐng)求包轉(zhuǎn)發(fā)給第二應(yīng)用30。(5)該第二應(yīng)用30將請(qǐng)求包解釋成調(diào)用,執(zhí)行該調(diào)用,生成響應(yīng)包,將該響應(yīng)包返回給該微內(nèi)核10。(6)該微內(nèi)核10將該響應(yīng)包轉(zhuǎn)發(fā)給第一應(yīng)用20,其中,該響應(yīng)包中包括會(huì)話標(biāo)識(shí)和調(diào)用結(jié)果。(7)第一應(yīng)用20將響應(yīng)包中的會(huì)話標(biāo)識(shí)與本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配,等待線程。(8)判斷是否匹配成功,若是,則執(zhí)行過程(9),否則結(jié)束。(9)獲取線程,并激活該線程,讀取響應(yīng)包,獲取調(diào)用結(jié)果。在一個(gè)實(shí)施例中,第一應(yīng)用20異步調(diào)用方式調(diào)用第二應(yīng)用30,與同步調(diào)用方式不同的是,過程(I)中采用異步調(diào)用指令,不需阻塞線程,過程(7)中不需等待線程,過程(9)中直接獲取調(diào)用結(jié)果。上述實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng),采用將第一應(yīng)用及第二應(yīng)用注冊(cè)到微內(nèi)核,將第一應(yīng)用向第二應(yīng)用發(fā)送的請(qǐng)求包,以及第二應(yīng)用對(duì)請(qǐng)求包的響應(yīng)包,均微內(nèi)核進(jìn)行中轉(zhuǎn)控制,無論多少應(yīng)用間通信均微內(nèi)核進(jìn)行中轉(zhuǎn)控制,使得應(yīng)用間的通信簡單,提高了應(yīng)用間通信的靈活性和安全性。此外,還設(shè)置訪問權(quán)限,對(duì)第一應(yīng)用的訪問權(quán)限進(jìn)行檢測,進(jìn)一步提高了應(yīng)用間通信的安全性;會(huì)話標(biāo)識(shí)匹配,保證應(yīng)用間通信的準(zhǔn)確性。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種實(shí)現(xiàn)多應(yīng)用間通信的方法,包括以下步驟: 微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包,其中,所述第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到所述微內(nèi)核; 所述微內(nèi)核將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用; 所述微內(nèi)核接收所述第二應(yīng)用返回的響應(yīng)包,并將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多應(yīng)用間通信的方法,其特征在于,還包括步驟:預(yù)先設(shè)定所述第一應(yīng)用的訪問權(quán)限; 所述微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包的步驟之后,還包括步驟: 所述微內(nèi)核檢測所述第一應(yīng)用的訪問權(quán)限,當(dāng)所述第一應(yīng)用存在所述訪問權(quán)限時(shí),所述微內(nèi)核將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多應(yīng)用間通信的方法,其特征在于,所述響應(yīng)包中包括調(diào)用結(jié)果; 在所述第一應(yīng)用向第二應(yīng)用發(fā)起請(qǐng)求包的步驟,同時(shí)還包括步驟:所述第一應(yīng)用根據(jù)所述請(qǐng)求包生成會(huì)話標(biāo)識(shí),將所述會(huì)話標(biāo)識(shí)分別存入到所述請(qǐng)求包和本地; 在所述第二應(yīng)用返回響應(yīng)包的步驟,同時(shí)還包括步驟:將所述請(qǐng)求包中的會(huì)話標(biāo)識(shí)存入所述響應(yīng)包中; 在所述微內(nèi)核接收所述第二應(yīng)用返回的響應(yīng)包,并將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用的步驟之后,還包括步驟:所述第一應(yīng)用將所述返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與所述本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配,若匹配成功,則激活同步調(diào)用線程讀取響應(yīng)包并獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果。
4.根據(jù)權(quán)利要求3所述的實(shí)現(xiàn)多應(yīng)用間通信的方法,其特征在于,所述微內(nèi)核獲取所述第一應(yīng)用向所述第二應(yīng)用發(fā)起的請(qǐng)求包的步驟具體包括: 所述第一應(yīng)用調(diào)用遠(yuǎn)程過程調(diào)用應(yīng)用,并將向所述第二應(yīng)用發(fā)起的請(qǐng)求打包成請(qǐng)求包; 所述微內(nèi)核獲取所述遠(yuǎn)程過程調(diào)用應(yīng)用傳遞的所述請(qǐng)求包。
5.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多應(yīng)用間通信的方法,其特征在于,還包括步驟: 在所述微內(nèi)核中注冊(cè)事件信息與應(yīng)用之間的對(duì)應(yīng)關(guān)系; 獲取所述第一應(yīng)用觸發(fā)的事件信息,并將所述事件信息傳遞給所述微內(nèi)核; 所述微內(nèi)核根據(jù)所述事件信息從所述事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用,將所述事件信息通知到相應(yīng)的應(yīng)用。
6.一種實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),其特征在于,包括微內(nèi)核,所述微內(nèi)核包括: 第一獲取模塊,用于獲取所述第一應(yīng)用向所述第二應(yīng)用發(fā)起的請(qǐng)求包,其中,所述第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到所述微內(nèi)核; 轉(zhuǎn)發(fā)模塊,用于將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用; 所述第一獲取模塊還用于接收所述第二應(yīng)用返回的響應(yīng)包; 所述轉(zhuǎn)發(fā)模塊還用于將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),其特征在于,所述微內(nèi)核還包括: 預(yù)設(shè)模塊,用于當(dāng)將所述第一應(yīng)用注冊(cè)到微內(nèi)核后,設(shè)定所述第一應(yīng)用的訪問權(quán)限; 檢測模塊,用于所述第一應(yīng)用的訪問權(quán)限;所述轉(zhuǎn)發(fā)模塊還用于當(dāng)所述第一應(yīng)用存在所述訪問權(quán)限時(shí),將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用。
8.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),其特征在于,所述響應(yīng)包中包括調(diào)用結(jié)果;所述第一應(yīng)用包括: 生成模塊,用于根據(jù)所述請(qǐng)求包生成會(huì)話標(biāo)識(shí); 存儲(chǔ)模塊,用于將所述會(huì)話標(biāo)識(shí)分別存入到所述請(qǐng)求包和本地; 匹配模塊,用于接收返回的包含所述請(qǐng)求包中會(huì)話標(biāo)識(shí)的響應(yīng)包,將所述返回的響應(yīng)包中的會(huì)話標(biāo)識(shí)與所述本地存儲(chǔ)的會(huì)話標(biāo)識(shí)進(jìn)行匹配; 第二獲取模塊,用于當(dāng)匹配成功,激活同步調(diào)用線程讀取響應(yīng)包并獲取調(diào)用結(jié)果或執(zhí)行異步調(diào)用直接獲取調(diào)用結(jié)果; 所述第二應(yīng)用將所述請(qǐng)求包中的會(huì)話標(biāo)識(shí)存入所述響應(yīng)包中。
9.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),其特征在于,所述第一應(yīng)用還包括打包模塊,用于將第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求打包成請(qǐng)求包; 所述系統(tǒng)還包括遠(yuǎn)程過程調(diào)用應(yīng)用,所述遠(yuǎn)程調(diào)用應(yīng)用用于將所述請(qǐng)求包傳遞給所述第一獲取模塊。
10.根據(jù)權(quán)利要求8所述的實(shí)現(xiàn)多應(yīng)用間通信的系統(tǒng),其特征在于,所述微內(nèi)核還包括: 關(guān)系建立模塊,用于在所述微內(nèi)核中注冊(cè)事件信息與應(yīng)用程序之間的對(duì)應(yīng)關(guān)系; 所述第一獲取模塊還用于獲取所述第二獲取模塊獲取的觸發(fā)的事件信息; 查找模塊,用于根據(jù)所述事件信息從所述事件信息與應(yīng)用的對(duì)應(yīng)關(guān)系中查找到相應(yīng)的應(yīng)用; 廣播模塊,用于將所述事件信息通知到相應(yīng)的應(yīng)用。
全文摘要
本發(fā)明涉及一種實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng)。該方法包括以下步驟微內(nèi)核獲取第一應(yīng)用向第二應(yīng)用發(fā)起的請(qǐng)求包,其中,所述第一應(yīng)用和第二應(yīng)用預(yù)先注冊(cè)到所述微內(nèi)核;所述微內(nèi)核將所述請(qǐng)求包轉(zhuǎn)發(fā)給所述第二應(yīng)用;所述微內(nèi)核接收所述第二應(yīng)用返回的響應(yīng)包,并將所述響應(yīng)包轉(zhuǎn)發(fā)給所述第一應(yīng)用。上述實(shí)現(xiàn)多應(yīng)用間通信的方法及系統(tǒng),采用將第一應(yīng)用及第二應(yīng)用注冊(cè)到微內(nèi)核,將第一應(yīng)用向第二應(yīng)用發(fā)送的請(qǐng)求包,以及第二應(yīng)用對(duì)請(qǐng)求包的響應(yīng)包,均通過微內(nèi)核進(jìn)行中轉(zhuǎn)控制,無論多少應(yīng)用間通信均通過微內(nèi)核進(jìn)行中轉(zhuǎn)控制,使得應(yīng)用間的通信簡單,提高了應(yīng)用間通信的靈活性和安全性。
文檔編號(hào)G06F9/54GK103176853SQ201110438890
公開日2013年6月26日 申請(qǐng)日期2011年12月23日 優(yōu)先權(quán)日2011年12月23日
發(fā)明者游晶, 彭勇, 黃奎, 謝昕虬 申請(qǐng)人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1