本發(fā)明涉及終端設(shè)備技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種多容器間通信的方法及裝置。
背景技術(shù):
容器技術(shù)是操作系統(tǒng)級別的輕量級虛擬化技術(shù),它底層依賴的技術(shù)Linux命名空間(Namespace)、Linux控制組(Control Group)完全是內(nèi)核特性,沒有任何中間層開銷,對于資源的利用率極高,性能接近物理機(jī)。
容器技術(shù)可以根據(jù)不同的業(yè)務(wù)需求將系統(tǒng)中的全部進(jìn)程分配到不同的進(jìn)程組中,不同的進(jìn)程組可以相互隔離地運(yùn)行在同一臺物理設(shè)備上,即一個容器內(nèi)的某個進(jìn)程無法將自己的數(shù)據(jù)或狀態(tài)分享或發(fā)送給容器外的進(jìn)程或其他容器內(nèi)的進(jìn)程,當(dāng)用戶需要查看后臺運(yùn)行的容器系統(tǒng)存儲的相關(guān)信息時,需要先切換容器系統(tǒng),再獲取上述相關(guān)信息,從而導(dǎo)致獲取其它容器系統(tǒng)中信息的復(fù)雜度較高,進(jìn)而導(dǎo)致用戶的體驗較差。
技術(shù)實現(xiàn)要素:
為克服上述技術(shù)問題或者至少部分地解決上述技術(shù)問題,特提出以下技術(shù)方案:
本發(fā)明的一個實施例提供了一種多容器間通信的方法,包括:
移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立所述任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息;
所述主控系統(tǒng)根據(jù)所述創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道;
已創(chuàng)建通信通道的容器系統(tǒng)通過其之間的通信通道,進(jìn)行通信。
具體地,所述主控系統(tǒng)根據(jù)所述創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道的步驟,包括:
所述主控系統(tǒng)根據(jù)所述創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符;
所述已創(chuàng)建通信通道的容器系統(tǒng)通過其之間的通信通道,進(jìn)行通信的步驟,包括:
所述已創(chuàng)建通信通道的容器系統(tǒng)從所述主控系統(tǒng)中獲取對應(yīng)的socket文件描述符,并根據(jù)所述對應(yīng)的socket文件描述符進(jìn)行通信。
具體地,所述移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立所述任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息的步驟,包括:
所述移動終端中的任一容器系統(tǒng)中的進(jìn)程通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程,發(fā)送創(chuàng)建通道請求消息,所述創(chuàng)建通道請求消息中攜帶發(fā)送請求的容器系統(tǒng)的標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識;
其中,所述主控系統(tǒng)根據(jù)所述創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符的步驟,包括:
所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程根據(jù)所述發(fā)送請求的容器系統(tǒng)的標(biāo)識以及所述需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符。
可選地,所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程根據(jù)所述發(fā)送請求的容器系統(tǒng)的標(biāo)識以及所述需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符的步驟之后,還包括:
所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息,所述注冊請求消息中攜帶所述至少兩個socket文件描述符,以及每個socket文件描述符對應(yīng)的名稱;
在注冊成功之后,所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程向所述發(fā)送請求的容器系統(tǒng)以及所述需要進(jìn)行通信服務(wù)的容器系統(tǒng)分別發(fā)送其各自對應(yīng)的socket文件描述符的名稱;
具體地,所述已創(chuàng)建通信通道的容器系統(tǒng)獲取對應(yīng)的socket文件描述符的步驟,包括:
所述發(fā)送請求的容器系統(tǒng)以及所述需要進(jìn)行通信的容器系統(tǒng)根據(jù)接收到的socket文件描述符的名稱,從所述NSS設(shè)備中,獲取到其各自對應(yīng)socket文件描述符。
可選地,所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息的步驟之前,還包括:
所述主控系統(tǒng)的通信通道服務(wù)預(yù)先配置所述至少兩個socket文件描述符中每個socket文件描述符對應(yīng)的名稱。
本發(fā)明的另一個實施例提供了一種多容器間通信的裝置,所述裝置包括:
第一發(fā)送模塊,位于移動終端中的任一容器系統(tǒng)中,用于向主控系統(tǒng)發(fā)送建立所述任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息;
創(chuàng)建模塊,位于所述主控系統(tǒng)中,用于根據(jù)所述創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道;
通信模塊,位于已創(chuàng)建通信通道的容器系統(tǒng)中,用于通過其之間的通信通道,進(jìn)行通信。
具體地,
所述創(chuàng)建模塊,具體用于根據(jù)所述第一發(fā)送模塊發(fā)送的所述創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符;
所述通信模塊,具體用于從所述主控系統(tǒng)中獲取對應(yīng)的socket文件描述符;
所述通信模塊,具體用于根據(jù)所述對應(yīng)的socket文件描述符,進(jìn)行通信。
具體地,
所述第一發(fā)送模塊,具體用于通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向所述主控系統(tǒng)的通信通道服務(wù)進(jìn)程,發(fā)送創(chuàng)建通道請求消息,所述創(chuàng)建通道請求消息中攜帶發(fā)送請求的容器系統(tǒng)的標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識;
所述創(chuàng)建模塊,具體用于根據(jù)所述發(fā)送請求的容器系統(tǒng)的標(biāo)識以及所述需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符。
可選地,所述裝置還包括:第二發(fā)送模塊;
所述第二發(fā)送模塊,位于所述主控系統(tǒng)中,用于向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息,所述注冊請求消息中攜帶所述至少兩個socket文件描述符,以及每個socket文件描述符對應(yīng)的名稱;
所述第二發(fā)送模塊,還用于在注冊成功之后,向所述發(fā)送請求的容器系統(tǒng)以及所述需要進(jìn)行通信服務(wù)的容器系統(tǒng)分別發(fā)送其各自對應(yīng)的socket文件描述符的名稱;
所述通信模塊,具體還用于根據(jù)接收到的socket文件描述符的名稱,從所述NSS設(shè)備中,獲取到其各自對應(yīng)socket文件描述符。
可選地,所述裝置還包括:配置模塊;
所述配置模塊,位于所述主控系統(tǒng)中,用于預(yù)先配置所述至少兩個socket文件描述符中每個socket文件描述符對應(yīng)的名稱。
本發(fā)明提供了一種多容器間通信的方法及裝置,與現(xiàn)有技術(shù)中各個容器系統(tǒng)相互隔離無法進(jìn)行通信相比,本發(fā)明通過移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立該容器系統(tǒng)與其他容器系統(tǒng)之間通信通道創(chuàng)建通道請求消息,以使得主控系統(tǒng)能夠創(chuàng)建至少一個通信通道,并且需要進(jìn)行通信的容器系統(tǒng)能夠獲取到對應(yīng)的通信通道,并進(jìn)行通信,即實現(xiàn)了移動終端中任一容器系統(tǒng)可以與其他容器系統(tǒng)通過對應(yīng)的通信通道直接進(jìn)行數(shù)據(jù)通信,當(dāng)某一容器系統(tǒng)需要獲取其它容器系統(tǒng)的信息時,兩容器系統(tǒng)之間不再需要先切換容器系統(tǒng),再獲取相應(yīng)的信息,大大降低獲取其它容器系統(tǒng)信息的復(fù)雜度,進(jìn)而可以提升用戶體驗。
本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為本發(fā)明實施例的多系統(tǒng)終端設(shè)備中各系統(tǒng)間的關(guān)系示意圖;
圖2為本發(fā)明實施例的多容器間通信的方法流程示意圖;
圖3為本發(fā)明實施例的另一種多容器間通信的方法流程示意圖;
圖4為本發(fā)明實施例的又一種多容器間通信的方法流程示意圖;
圖5為本發(fā)明實施例的又一種多容器間通信的方法流程示意圖;
圖6為本發(fā)明實施例的又一種多容器間通信的方法流程示意圖;
圖7為本發(fā)明實施例的一種多容器間通信的裝置結(jié)構(gòu)示意圖;
圖8為本發(fā)明實施例的另一種多容器間通信的裝置結(jié)構(gòu)示意圖。
具體實施方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,這里所使用的“終端”、“終端設(shè)備”既包括無線信號接收器的設(shè)備,其僅具備無發(fā)射能力的無線信號接收器的設(shè)備,又包括接收和發(fā)射硬件的設(shè)備,其具有能夠在雙向通信鏈路上,進(jìn)行雙向通信的接收和發(fā)射硬件的設(shè)備。這種設(shè)備可以包括:蜂窩或其他通信設(shè)備,其具有單線路顯示器或多線路顯示器或沒有多線路顯示器的蜂窩或其他通信設(shè)備;PCS(Personal Communications Service,個人通信系統(tǒng)),其可以組合語音、數(shù)據(jù)處理、傳真和/或數(shù)據(jù)通信能力;PDA(Personal Digital Assistant,個人數(shù)字助理),其可以包括射頻接收器、尋呼機(jī)、互聯(lián)網(wǎng)/內(nèi)聯(lián)網(wǎng)訪問、網(wǎng)絡(luò)瀏覽器、記事本、日歷和/或GPS(Global Positioning System,全球定位系統(tǒng))接收器;常規(guī)膝上型和/或掌上型計算機(jī)或其他設(shè)備,其具有和/或包括射頻接收器的常規(guī)膝上型和/或掌上型計算機(jī)或其他設(shè)備。這里所使用的“終端”、“終端設(shè)備”可以是便攜式、可運(yùn)輸、安裝在交通工具(航空、海運(yùn)和/或陸地)中的,或者適合于和/或配置為在本地運(yùn)行,和/或以分布形式,運(yùn)行在地球和/或空間的任何其他位置運(yùn)行。這里所使用的“終端”、“終端設(shè)備”還可以是通信終端、上網(wǎng)終端、音樂/視頻播放終端,例如可以是PDA、MID(Mobile Internet Device,移動互聯(lián)網(wǎng)設(shè)備)和/或具有音樂/視頻播放功能的移動電話,也可以是智能電視、機(jī)頂盒等設(shè)備。
本發(fā)明實施例的終端設(shè)備的內(nèi)部結(jié)構(gòu)的框架示意圖如圖1所示,包括:主控系統(tǒng)和兩個以上的容器系統(tǒng)。
其中,本發(fā)明實施例中的容器系統(tǒng),可以是設(shè)置在以Linux container(容器)虛擬化技術(shù)創(chuàng)建的容器中的操作系統(tǒng)。操作系統(tǒng)可以為傳統(tǒng)意義上的Linux操作系統(tǒng)或Unix操作系統(tǒng),也可以是基于Linux操作系統(tǒng)衍生出來的Android系統(tǒng)、Ubuntu系統(tǒng)或FireFox系統(tǒng)等,還可以為以Windows平臺為基礎(chǔ)的windows系統(tǒng)等等。實際上,本發(fā)明中的容器系統(tǒng)不限于前述例舉的操作系統(tǒng),可以涵蓋所有能夠在容器中運(yùn)行的操作系統(tǒng)。
優(yōu)選地,主控系統(tǒng)可以是上述傳統(tǒng)的操作系統(tǒng),也可以是對傳統(tǒng)的kernel進(jìn)行改進(jìn)和/或在kernel之外(例如框架層和應(yīng)用層)增加功能模塊之后,得到的操作系統(tǒng)。
主控系統(tǒng)主要用于對多個容器系統(tǒng)進(jìn)行前后臺管理,與各容器系統(tǒng)進(jìn)行交互等。本發(fā)明實施例提供了一種多容器間通信的方法,如圖2所示,該方法包括:
步驟201、移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息。
對于本發(fā)明實施例,移動終端中運(yùn)行著多個容器系統(tǒng),當(dāng)其中一個容器系統(tǒng)需要與其他容器系統(tǒng)中的一個或者多個容器系統(tǒng)進(jìn)行通信時,需要向主控系統(tǒng)發(fā)送創(chuàng)建通道請求消息,以使得主控系統(tǒng)創(chuàng)建通道,將該容器系統(tǒng)與其他容器系統(tǒng)連通。
步驟202、主控系統(tǒng)根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道。
對于本發(fā)明實施例,移動終端中的容器系統(tǒng)向主控系統(tǒng)發(fā)送的創(chuàng)建通道請求消息中可以攜帶該容器系統(tǒng)的容器標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的容器標(biāo)識,主控系統(tǒng)根據(jù)該容器系統(tǒng)的容器標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的容器標(biāo)識分別為該兩個容器系統(tǒng)創(chuàng)建其之間的通信通道。
對于本發(fā)明實施例,主控系統(tǒng)中可以預(yù)先配置移動終端中需要進(jìn)行互相通信的容器系統(tǒng),當(dāng)主控系統(tǒng)接收到某一個容器系統(tǒng)發(fā)送的創(chuàng)建通道請求消息之后,根據(jù)預(yù)先配置的通信關(guān)系,為需要進(jìn)行通信的容器系統(tǒng)分別創(chuàng)建通信通道。
步驟203、已創(chuàng)建通信通道的容器系統(tǒng)通過其之間的通信通道,進(jìn)行通信。
對于本發(fā)明實施例,需要進(jìn)行通信的容器系統(tǒng)從主控系統(tǒng)中獲取自身容器系統(tǒng)對應(yīng)的通信通道。
本發(fā)明實施例提供了一種多容器間通信的方法,與現(xiàn)有技術(shù)中各個容器系統(tǒng)相互隔離無法進(jìn)行通信相比,本發(fā)明實施例通過移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立該容器系統(tǒng)與其他容器系統(tǒng)之間通信通道創(chuàng)建通道請求消息,以使得主控系統(tǒng)能夠創(chuàng)建至少一個通信通道,并且需要進(jìn)行通信的容器系統(tǒng)能夠獲取到對應(yīng)的通信通道,并進(jìn)行通信,即實現(xiàn)了移動終端中任一容器系統(tǒng)可以與其他容器系統(tǒng)通過對應(yīng)的通信通道直接進(jìn)行數(shù)據(jù)通信,當(dāng)某一容器系統(tǒng)需要獲取其它容器系統(tǒng)的信息時,兩容器系統(tǒng)之間不再需要先切換容器系統(tǒng),再獲取相應(yīng)的信息,大大降低獲取其它容器系統(tǒng)信息的復(fù)雜度,進(jìn)而可以提升用戶體驗。
本發(fā)明實施例的另一種可能的實現(xiàn)方式,在如圖1所示的基礎(chǔ)上,步驟202、主控系統(tǒng)根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道,包括如圖3所示的步驟302,步驟203、已創(chuàng)建通信通道的容器系統(tǒng)通過其之間的通信通道,進(jìn)行通信包括,如圖3所示的步驟303-304,其中步驟301所執(zhí)行的操作與步驟201所執(zhí)行的操作相同,在此不再贅述。
步驟302、主控系統(tǒng)根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符。
對于本發(fā)明實施例,移動終端中的容器系統(tǒng)向主控系統(tǒng)發(fā)送的創(chuàng)建通道請求消息中可以攜帶該容器系統(tǒng)的容器標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的容器標(biāo)識,主控系統(tǒng)根據(jù)該容器系統(tǒng)的容器標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的容器標(biāo)識分別為上述容器系統(tǒng)創(chuàng)建socket文件描述符。
對于本發(fā)明實施例,主控系統(tǒng)中可以預(yù)先配置移動終端中需要進(jìn)行互相通信的容器系統(tǒng),當(dāng)主控系統(tǒng)接收到某一個容器系統(tǒng)發(fā)送的創(chuàng)建通道請求消息之后,根據(jù)預(yù)先配置的通信關(guān)系,為需要進(jìn)行通信的容器系統(tǒng)分別創(chuàng)建socket文件描述符。
例如,主控系統(tǒng)中配置有第一容器系統(tǒng)與第二容器系統(tǒng)進(jìn)行通信,當(dāng)主控系統(tǒng)接收到第一容器系統(tǒng)發(fā)送的創(chuàng)建通道請求消息,則主控系統(tǒng)為第一容器系統(tǒng)以及第二容器系統(tǒng)分別創(chuàng)建socket文件描述符。
步驟303、已創(chuàng)建通信通道的容器系統(tǒng)獲取對應(yīng)的socket文件描述符。
對于本發(fā)明實施例,需要進(jìn)行通信的容器系統(tǒng)從主控系統(tǒng)中獲取自身容器系統(tǒng)對應(yīng)的socket文件描述符。
步驟304、已創(chuàng)建通信通道的容器系統(tǒng)根據(jù)對應(yīng)的socket文件描述符,進(jìn)行通信。
對于本發(fā)明實施例,移動終端中的任一容器系統(tǒng)通過已建立的socket通信通道向另一容器系統(tǒng)發(fā)送數(shù)據(jù)請求消息。
對于本發(fā)明實施例,移動終端中設(shè)置有兩個容器系統(tǒng),分別為第一容器系統(tǒng)以及第二容器系統(tǒng),其中,第一容器系統(tǒng)等級較低,無法獲取到移動終端的系統(tǒng)應(yīng)用的信息,第二容器系統(tǒng)可以獲取系統(tǒng)應(yīng)用的信息,例如,移動終端系統(tǒng)應(yīng)用的信息可以包括移動終端當(dāng)前電池的電量、移動終端硬盤的存儲空間情況等。
例如,當(dāng)前前臺運(yùn)行的容器系統(tǒng)為第一容器系統(tǒng),當(dāng)?shù)谝蝗萜飨到y(tǒng)需要獲知當(dāng)前電池的剩余電量時,通過已建立的socket通信信道,向第二容器系統(tǒng)發(fā)送獲取電池剩余電量的請求消息。
對于本發(fā)明實施例,發(fā)送數(shù)據(jù)請求的容器系統(tǒng)通過已建立的socket通信通道接收該另一容器系統(tǒng)返回的響應(yīng)數(shù)據(jù)。
對于本發(fā)明實施例,接收到數(shù)據(jù)請求消息的容器系統(tǒng)根據(jù)接收到的數(shù)據(jù)請求消息,獲取相應(yīng)的數(shù)據(jù),并將獲取到的相應(yīng)的數(shù)據(jù),通過socket通信通道,返回至發(fā)送數(shù)據(jù)請求的容器系統(tǒng)。
例如,當(dāng)?shù)诙萜飨到y(tǒng)接收到第一容器系統(tǒng)發(fā)送的獲取電池剩余電量的請求消息,第二容器系統(tǒng)獲取當(dāng)前電池的剩余電量,并將獲取到的當(dāng)前電池的剩余電量,通過建立的socket通信通道返回至第一容器系統(tǒng)。
對于本發(fā)明實施例,移動終端中的某個容器系統(tǒng)通過已建立的socket通信通道向另一容器系統(tǒng)發(fā)送數(shù)據(jù)請求消息,能夠使得另一容器系統(tǒng)通過已建立socket通信通道,返回響應(yīng)數(shù)據(jù),即當(dāng)前前臺運(yùn)行的容器系統(tǒng)無法獲取到系統(tǒng)數(shù)據(jù)時,該容器系統(tǒng)可以從其他容器系統(tǒng)中獲取相應(yīng)的數(shù)據(jù)并反饋至前臺容器系統(tǒng),而不需要切換容器系統(tǒng),從而可以降低獲取各個容器系統(tǒng)數(shù)據(jù)的復(fù)雜度,進(jìn)而可以提升用戶體驗。
本發(fā)明實施例的另一種可能的實現(xiàn)方式,在如圖3所示的基礎(chǔ)上,步驟301、移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息,包括如圖4所示的步驟401,步驟302、主控系統(tǒng)根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符,包括如圖4所示的步驟402,其中如圖4所示的步驟403-404所執(zhí)行的操作與步驟303-304所執(zhí)行的操作相同,在此不再贅述。
步驟401、移動終端中的任一容器系統(tǒng)中的進(jìn)程通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向主控系統(tǒng)的通信通道服務(wù)進(jìn)程,發(fā)送創(chuàng)建通道請求消息。
其中,創(chuàng)建通道請求消息中攜帶發(fā)送請求的容器系統(tǒng)的標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識。
例如,當(dāng)?shù)谝蝗萜飨到y(tǒng)中的進(jìn)程需要與第二容器系統(tǒng)中的進(jìn)程進(jìn)行通信,第一容器系統(tǒng)中的進(jìn)程向第一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程發(fā)送創(chuàng)建通道請求消息,然后第一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程將接收到的創(chuàng)建通道請求消息,發(fā)送至主控系統(tǒng)的通信通道服務(wù)進(jìn)程,其中,該創(chuàng)建通道請求消息中攜帶第一容器系統(tǒng)的標(biāo)識以及第二容器系統(tǒng)的標(biāo)識,以請求主控系統(tǒng)的通信通道服務(wù)進(jìn)程創(chuàng)建第一容器系統(tǒng)以及第二容器系統(tǒng)之間的通信通道。
步驟402、主控系統(tǒng)的通信通道服務(wù)進(jìn)程根據(jù)發(fā)送請求的容器系統(tǒng)的標(biāo)識以及需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符。
例如,當(dāng)主控系統(tǒng)中的通信通道服務(wù)進(jìn)程接收到的請求消息中攜帶第一容器系統(tǒng)的標(biāo)識以及第二容器系統(tǒng)的標(biāo)識,則主控系統(tǒng)的通信通道進(jìn)程為分別創(chuàng)建第一容器系統(tǒng)以及第二容器系統(tǒng)對應(yīng)的socket文件描述符。
對于本發(fā)明實施例,通過移動終端中的某個容器系統(tǒng)通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向主控系統(tǒng)的通信通道服務(wù)進(jìn)程發(fā)送攜帶請求發(fā)送方容器系統(tǒng)的系統(tǒng)標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的系統(tǒng)標(biāo)識,能夠使得主控系統(tǒng)的通信通道服務(wù)進(jìn)程為上述需要進(jìn)行通信的通信系統(tǒng)創(chuàng)建對應(yīng)的socket文件描述符,從而上述容器系統(tǒng)能夠根據(jù)創(chuàng)建的socket文件描述符進(jìn)行通信,進(jìn)而可以為容器間通信提供可能。
本發(fā)明實施例的另一種可能的實現(xiàn)方式,在如圖4所示的基礎(chǔ)上,步驟402、主控系統(tǒng)的通信通道服務(wù)進(jìn)程根據(jù)發(fā)送請求的容器系統(tǒng)的標(biāo)識以及需要進(jìn)行通信的容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符,之后還包括如圖5所示的步驟503-504,步驟403、各個容器系統(tǒng)獲取對應(yīng)的socket文件描述符,包括如圖5所示的步驟505,其中,如圖5所示的步驟506所執(zhí)行的操作與如圖4中的步驟404所執(zhí)行的操作相同,在此不再贅述。
步驟503、主控系統(tǒng)的通信通道服務(wù)進(jìn)程向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息。
其中,注冊請求消息中攜帶至少兩個socket文件描述符,以及每個socket文件描述符對應(yīng)的名稱。
其中,NSS設(shè)備為主控系統(tǒng)提供的虛擬域名設(shè)備。在本發(fā)明實施例中,socket文件描述符的名稱為對應(yīng)的容器系統(tǒng)的名稱與容器系統(tǒng)之間通道的名稱。
例如,第一容器系統(tǒng)與第二容器系統(tǒng)之間的通道名稱為通道1,第一容器系統(tǒng)與第二容器系統(tǒng)分別對應(yīng)的名稱為容器系統(tǒng)1與容器系統(tǒng)2,則第一容器系統(tǒng)對應(yīng)的socket文件描述符對應(yīng)的名稱為容器系統(tǒng)1+通道1,第二容器系統(tǒng)對應(yīng)的socket文件描述符對應(yīng)的名稱為容器系統(tǒng)2+通道1。
步驟504、在注冊成功之后,主控系統(tǒng)的通信通道服務(wù)進(jìn)程向發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)分別發(fā)送其各自對應(yīng)的socket文件描述符的名稱。
對于本發(fā)明實施例,在注冊成功之后,NSS設(shè)備返回成功消息至主控系統(tǒng)的通信通道服務(wù)進(jìn)程,當(dāng)主控系統(tǒng)的通信通道服務(wù)進(jìn)程接收到NSS設(shè)備返回的成功消息之后,將創(chuàng)建的socket文件描述對應(yīng)的名稱分別發(fā)送至對應(yīng)的容器系統(tǒng)。
例如,主控系統(tǒng)的通信通道服務(wù)進(jìn)程將“容器系統(tǒng)1+通道1”發(fā)送至第一容器系統(tǒng),將“容器系統(tǒng)2+通道1”發(fā)送至第二容器系統(tǒng)。
步驟505、發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信的容器系統(tǒng)根據(jù)接收到的socket文件描述符的名稱,從NSS設(shè)備中,獲取到其各自對應(yīng)socket文件描述符。
對于本發(fā)明實施例,當(dāng)發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信的容器系統(tǒng)從NSS設(shè)備中,獲取到其各自對應(yīng)的socket文件描述符之后,則表征發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信的容器系統(tǒng)之間的通信通道創(chuàng)建完成,上述容器系統(tǒng)之間可以進(jìn)行數(shù)據(jù)傳輸。
對于本發(fā)明實施例,通過主控系統(tǒng)的通信通道服務(wù)進(jìn)程向發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)發(fā)送其各自對應(yīng)的socket文件描述符的名稱,以使得發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)能夠通過接收到的socket文件描述符的名稱,獲取對應(yīng)的socket文件描述符,從而各個容器系統(tǒng)可以根據(jù)對應(yīng)的socket文件描述符進(jìn)行通信。
本發(fā)明實施例的另一種可能的實現(xiàn)方式,在如圖5所示的基礎(chǔ)上,步驟503、主控系統(tǒng)的通信通道服務(wù)進(jìn)程向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息,之前還包括如圖6所示的步驟603,其中步驟604-607所執(zhí)行的操作與步驟403-406相同,在此不再贅述。
步驟603、主控系統(tǒng)的通信通道服務(wù)預(yù)先配置至少兩個socket文件描述符中每個socket文件描述符對應(yīng)的名稱。
對于本發(fā)明實施例,當(dāng)主控系統(tǒng)的通信通道服務(wù)接收到創(chuàng)建通道請求消息之后,配置socket文件描述符對應(yīng)的名稱。
對于本發(fā)明實施例,主控系統(tǒng)的通信通道服務(wù)通過預(yù)先配置socket文件描述符的名稱,能夠在注冊成功之后,將socket文件描述符的名稱發(fā)送至對應(yīng)的容器系統(tǒng),以使得上述容器系統(tǒng)根據(jù)接收到的名稱獲取對應(yīng)的socket文件描述符,從而可以實現(xiàn)容器間通信。
本發(fā)明實施例提供了另一種多容器間通信的方法,通過移動終端中的某個容器系統(tǒng)通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向主控系統(tǒng)的通信通道服務(wù)進(jìn)程發(fā)送攜帶請求發(fā)送方容器系統(tǒng)的系統(tǒng)標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的系統(tǒng)標(biāo)識,能夠使得主控系統(tǒng)的通信通道服務(wù)進(jìn)程為上述需要進(jìn)行通信的通信系統(tǒng)創(chuàng)建對應(yīng)的socket文件描述符,從而上述容器系統(tǒng)能夠根據(jù)創(chuàng)建的socket文件描述符進(jìn)行通信,進(jìn)而可以為容器間通信提供可能;通過主控系統(tǒng)的通信通道服務(wù)進(jìn)程向發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)發(fā)送其各自對應(yīng)的socket文件描述符的名稱,以使得發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)能夠通過接收到的socket文件描述符的名稱,獲取對應(yīng)的socket文件描述符,從而各個容器系統(tǒng)可以根據(jù)對應(yīng)的socket文件描述符進(jìn)行通信;移動終端中的某個容器系統(tǒng)通過已建立的socket通信通道向另一容器系統(tǒng)發(fā)送數(shù)據(jù)請求消息,能夠使得另一容器系統(tǒng)通過已建立socket通信通道,返回響應(yīng)數(shù)據(jù),即當(dāng)前前臺運(yùn)行的容器系統(tǒng)無法獲取到系統(tǒng)數(shù)據(jù)時,該容器系統(tǒng)可以從其他容器系統(tǒng)中獲取相應(yīng)的數(shù)據(jù)并反饋至前臺容器系統(tǒng),而不需要切換容器系統(tǒng),從而可以降低獲取各個容器系統(tǒng)數(shù)據(jù)的復(fù)雜度,進(jìn)而可以提升用戶體驗;主控系統(tǒng)的通信通道服務(wù)通過預(yù)先配置socket文件描述符的名稱,能夠在注冊成功之后,將socket文件描述符的名稱發(fā)送至對應(yīng)的容器系統(tǒng),以使得上述容器系統(tǒng)根據(jù)接收到的名稱獲取對應(yīng)的socket文件描述符,從而可以實現(xiàn)容器間通信。
需要注意的是,由于移動終端中包含多個容器系統(tǒng),但是為了方便描述,以下關(guān)于移動終端的描述,以移動終端中僅包含兩個容器系統(tǒng)進(jìn)行描述。
本發(fā)明實施例提供了一種多容器間通信的裝置,如圖7所示,該裝置包括第一發(fā)送模塊71、創(chuàng)建模塊72、通信模塊73;其中,
第一發(fā)送模塊71,位于移動終端中的任一容器系統(tǒng)中,用于向主控系統(tǒng)發(fā)送建立任一容器系統(tǒng)與其他容器系統(tǒng)之間通信通道的創(chuàng)建通道請求消息。
創(chuàng)建模塊72,位于主控系統(tǒng)中,用于根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少一個通信通道。
通信模塊73,位于第一容器系統(tǒng)以第二容器系統(tǒng)中,用于通過其之間的通信通道,進(jìn)行通信。
創(chuàng)建模塊72,位于主控系統(tǒng)中,具體用于根據(jù)創(chuàng)建通道請求消息,創(chuàng)建至少兩個socket文件描述符。
通信模塊73,位于第一容器系統(tǒng)以第二容器系統(tǒng)中,具體用于從主控系統(tǒng)中獲取對應(yīng)的socket文件描述符。
通信模塊73,位于第一容器系統(tǒng)以第二容器系統(tǒng)中,具體用于根據(jù)對應(yīng)的socket文件描述符,進(jìn)行通信。
第一發(fā)送模塊71,具體用于通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向主控系統(tǒng)的通信通道服務(wù)進(jìn)程,發(fā)送創(chuàng)建通道請求消息。
其中,創(chuàng)建通道請求消息中攜帶第一容器系統(tǒng)的標(biāo)識,以及第二容器系統(tǒng)的標(biāo)識。
創(chuàng)建模塊72,具體用于根據(jù)第一容器系統(tǒng)的標(biāo)識以及第二容器系統(tǒng)的標(biāo)識,創(chuàng)建至少兩個socket文件描述符。
進(jìn)一步地,如圖8所示,該裝置還包括:第二發(fā)送模塊81。
第二發(fā)送模塊81,位于主控系統(tǒng)中,用于向主控系統(tǒng)中的虛擬域名NSS設(shè)備發(fā)送注冊請求消息。
其中,注冊請求消息中攜帶至少兩個socket文件描述符,以及每個socket文件描述符對應(yīng)的名稱。
第二發(fā)送模塊81,還用于在注冊成功之后,向第一容器系統(tǒng)以及第二容器系統(tǒng)分別發(fā)送其各自對應(yīng)的socket文件描述符的名稱。
通信模塊73,具體還用于根據(jù)接收到的socket文件描述符的名稱,從NSS設(shè)備中,獲取到其各自對應(yīng)socket文件描述符。
進(jìn)一步地,如圖8所示,該裝置還包括:配置模塊82。
配置模塊82,位于主控系統(tǒng)中,用于預(yù)先配置至少兩個socket文件描述符中每個socket文件描述符對應(yīng)的名稱。
本發(fā)明實施例提供了一種多容器間通信的裝置,與現(xiàn)有技術(shù)中各個容器系統(tǒng)相互隔離無法進(jìn)行通信相比,本發(fā)明實施例通過移動終端中的任一容器系統(tǒng)向主控系統(tǒng)發(fā)送建立該容器系統(tǒng)與其他容器系統(tǒng)之間通信通道創(chuàng)建通道請求消息,以使得主控系統(tǒng)能夠創(chuàng)建至少一個通信通道,并且需要進(jìn)行通信的容器系統(tǒng)能夠獲取到對應(yīng)的通信通道,并進(jìn)行通信,即實現(xiàn)了移動終端中任一容器系統(tǒng)可以與其他容器系統(tǒng)通過對應(yīng)的通信通道直接進(jìn)行數(shù)據(jù)通信,當(dāng)某一容器系統(tǒng)需要獲取其它容器系統(tǒng)的信息時,兩容器系統(tǒng)之間不再需要先切換容器系統(tǒng),再獲取相應(yīng)的信息,大大降低獲取其它容器系統(tǒng)信息的復(fù)雜度,進(jìn)而可以提升用戶體驗。
本發(fā)明實施例提供了另一種多容器間通信的裝置,通過移動終端中的某個容器系統(tǒng)通過同一容器系統(tǒng)中的通信通道服務(wù)進(jìn)程向主控系統(tǒng)的通信通道服務(wù)進(jìn)程發(fā)送攜帶請求發(fā)送方容器系統(tǒng)的系統(tǒng)標(biāo)識,以及需要進(jìn)行通信的容器系統(tǒng)的系統(tǒng)標(biāo)識,能夠使得主控系統(tǒng)的通信通道服務(wù)進(jìn)程為上述需要進(jìn)行通信的通信系統(tǒng)創(chuàng)建對應(yīng)的socket文件描述符,從而上述容器系統(tǒng)能夠根據(jù)創(chuàng)建的socket文件描述符進(jìn)行通信,進(jìn)而可以為容器間通信提供可能;通過主控系統(tǒng)的通信通道服務(wù)進(jìn)程向發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)發(fā)送其各自對應(yīng)的socket文件描述符的名稱,以使得發(fā)送請求的容器系統(tǒng)以及需要進(jìn)行通信服務(wù)的容器系統(tǒng)能夠通過接收到的socket文件描述符的名稱,獲取對應(yīng)的socket文件描述符,從而各個容器系統(tǒng)可以根據(jù)對應(yīng)的socket文件描述符進(jìn)行通信;移動終端中的某個容器系統(tǒng)通過已建立的socket通信通道向另一容器系統(tǒng)發(fā)送數(shù)據(jù)請求消息,能夠使得另一容器系統(tǒng)通過已建立socket通信通道,返回響應(yīng)數(shù)據(jù),即當(dāng)前前臺運(yùn)行的容器系統(tǒng)無法獲取到系統(tǒng)數(shù)據(jù)時,該容器系統(tǒng)可以從其他容器系統(tǒng)中獲取相應(yīng)的數(shù)據(jù)并反饋至前臺容器系統(tǒng),而不需要切換容器系統(tǒng),從而可以降低獲取各個容器系統(tǒng)數(shù)據(jù)的復(fù)雜度,進(jìn)而可以提升用戶體驗;主控系統(tǒng)的通信通道服務(wù)通過預(yù)先配置socket文件描述符的名稱,能夠在注冊成功之后,將socket文件描述符的名稱發(fā)送至對應(yīng)的容器系統(tǒng),以使得上述容器系統(tǒng)根據(jù)接收到的名稱獲取對應(yīng)的socket文件描述符,從而可以實現(xiàn)容器間通信。
本發(fā)明實施例提供的多容器間通信的裝置可以實現(xiàn)上述提供的方法實施例,具體功能實現(xiàn)請參見方法實施例中的說明,在此不再贅述。本發(fā)明實施例提供的多容器間通信的方法及裝置可以適用于多系統(tǒng)的移動終端,該移動終端中的各個容器系統(tǒng)之間能夠互相通信,但不僅限于此。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機(jī)程序,這些計算機(jī)程序選擇性地激活或重構(gòu)。這樣的計算機(jī)程序可以被存儲在設(shè)備(例如,計算機(jī))可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機(jī))以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計算機(jī)程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以將這些計算機(jī)程序指令提供給通用計算機(jī)、專業(yè)計算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅是本發(fā)明的部分實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。