專利名稱:一種適應(yīng)私有云環(huán)境的通信平臺(tái)和通信方法
技術(shù)領(lǐng)域:
本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及適應(yīng)于私有云環(huán)境的通信技術(shù)領(lǐng)域。
背景技術(shù):
云計(jì)算是一種將計(jì)算機(jī)軟硬件平臺(tái)作為一個(gè)資源,并將其計(jì)算能力等同于電廠提供的電力,可以按照占用資源的數(shù)量和時(shí)間來收費(fèi)的一種新的計(jì)算模式。這種彈性分配計(jì)算資源,不需要為大規(guī)模計(jì)算支付額外費(fèi)用的方式,是IT界從所未有的。云計(jì)算從網(wǎng)格計(jì)算和分布式并行計(jì)算發(fā)展演化而來,是一種利用大規(guī)模低成本運(yùn)算單元通過網(wǎng)絡(luò)互連而組成的計(jì)算系統(tǒng),云計(jì)算系統(tǒng)具有很強(qiáng)的伸縮性和可定制性,平臺(tái)向上層的用戶提供各種計(jì)算服務(wù)。云計(jì)算系統(tǒng)使用大量廉價(jià)的服務(wù)器集群為系統(tǒng)提供硬件基礎(chǔ)設(shè)施,采用應(yīng)用程序與底層服務(wù)協(xié)作開發(fā),最大限度地利用資源,通過多個(gè)廉價(jià)的服務(wù)器之間的冗余,使云計(jì)算具有高可用性、低成本、通用性強(qiáng)等特點(diǎn),從而達(dá)到分布式計(jì)算的兩個(gè)重要目標(biāo)可擴(kuò)展性和高可用性。云計(jì)算按云服務(wù)的對(duì)象不同分為公有云、私有云。公有云是面向外部用戶需求,通過開放網(wǎng)絡(luò)提供云計(jì)算服務(wù),如IDC,GoogleApp等。私有云是指企業(yè)或者組織內(nèi)部按照云計(jì)算架構(gòu)搭建一個(gè)內(nèi)部使用的云計(jì)算平臺(tái),并根據(jù)企業(yè)內(nèi)部需求提供云計(jì)算服務(wù)。如在地震資料處理行業(yè)中,基于現(xiàn)有的大規(guī)模集群系統(tǒng)搭建一個(gè)私有云計(jì)算平臺(tái)可以極大的提高地震資料處理速度。私有云平臺(tái)的搭建需要著重考慮組件之間數(shù)據(jù)與信息的交換,組件之間的通信狀況嚴(yán)重影響系統(tǒng)提供的云計(jì)算能力。進(jìn)程通信(IPC)技術(shù)是指通過專門的通信機(jī)制實(shí)現(xiàn)進(jìn)程間交換大量信息的通信技術(shù)。對(duì)集群計(jì)算和云計(jì)算而言,進(jìn)程通信是系統(tǒng)的核心組件,進(jìn)程通信為系統(tǒng)上層的各計(jì)算組件協(xié)調(diào)工作,為完成海量計(jì)算任務(wù)提供了可能?,F(xiàn)有私有云系統(tǒng)的進(jìn)程通信仍然采用復(fù)雜的分布式進(jìn)程通信方式,如 CORBA(Common Object Request Broker Architecture) CORBA全稱是公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu),是由OMG[7] (Ojbect Management Group)定義的通信標(biāo)準(zhǔn),其使用了獨(dú)立于軟硬件平臺(tái)的IDL[8] (interface definition language)語言層對(duì)數(shù)據(jù)進(jìn)行包裹,目標(biāo)是實(shí)現(xiàn)不同平臺(tái)不同語言的程序之間相互交互。CORBA在通信域內(nèi)有一個(gè)服務(wù)器節(jié)點(diǎn)負(fù)責(zé)處理客戶機(jī)節(jié)點(diǎn)的對(duì)象請(qǐng)求,服務(wù)器節(jié)點(diǎn)完成客戶機(jī)節(jié)點(diǎn)通信信息的轉(zhuǎn)發(fā)與路由工作,CORBA的體系結(jié)構(gòu)如圖1所示CORBA通過在對(duì)象(Object)之間建立客戶/服務(wù)器(C/幻模型,應(yīng)用進(jìn)程通過對(duì)象引用和產(chǎn)生樁代碼產(chǎn)生對(duì)象請(qǐng)求,然后通過對(duì)象請(qǐng)求代理將請(qǐng)求送達(dá)至服務(wù)器,服務(wù)器通過對(duì)象執(zhí)行和產(chǎn)生框架代碼實(shí)現(xiàn)對(duì)象處理,對(duì)象請(qǐng)求代理對(duì)應(yīng)用進(jìn)程請(qǐng)求進(jìn)行反饋。 CORBA通過ORB (Object Request Broker)實(shí)現(xiàn)服務(wù)端的信息對(duì)客戶端透明,并將客戶提出的所有需求送達(dá)至目的地。在集群環(huán)境和私有云環(huán)境下,隨著系統(tǒng)的組件日益復(fù)雜,CORBA通信技術(shù)存在一定的缺陷。首先,CORBA的通信方式是同步的,客戶向服務(wù)器發(fā)送請(qǐng)求后,阻塞等待服務(wù)器處理,并在處理結(jié)果返回后才能進(jìn)行下一步動(dòng)作;其次,客戶和服務(wù)器通信的對(duì)象是緊密耦合的,其生命周期很難把握,提高了系統(tǒng)編程的復(fù)雜性;最后,面對(duì)日益復(fù)雜的通信系統(tǒng),點(diǎn)對(duì)點(diǎn)通信已經(jīng)不能滿足通信需求,如在地震資料處理行業(yè)的集群系統(tǒng)中,由于系統(tǒng)組件之間通信量大且系統(tǒng)計(jì)算任務(wù)相對(duì)單一,現(xiàn)有的點(diǎn)對(duì)點(diǎn)通信就很難滿足通信需求。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服適應(yīng)實(shí)際應(yīng)用的需要,以方便將現(xiàn)有集群系統(tǒng)遷移到私有云環(huán)境中,解決私有云計(jì)算基礎(chǔ)服務(wù)平臺(tái)組件之間的通信問題,提出了一種適應(yīng)私有云環(huán)境的通信平臺(tái)和通信方法。本發(fā)明的技術(shù)方案是一種適應(yīng)私有云環(huán)境下的通信平臺(tái),所述通信平臺(tái)至少包括兩個(gè)計(jì)算節(jié)點(diǎn)和一個(gè)服務(wù)器節(jié)點(diǎn),所述計(jì)算節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)通過網(wǎng)絡(luò)互相連接成分布式集群系統(tǒng),每個(gè)計(jì)算節(jié)點(diǎn)表示系統(tǒng)中的一臺(tái)主機(jī),主機(jī)中包含了許多的應(yīng)用進(jìn)程,其特征在于,每個(gè)節(jié)點(diǎn)上掛載一個(gè)通信代理,所述節(jié)點(diǎn)內(nèi)所有應(yīng)用進(jìn)程通過通信平臺(tái)提供的標(biāo)準(zhǔn) API接口與本地通信代理連接,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的點(diǎn)對(duì)點(diǎn)通信,并且通過在服務(wù)器節(jié)點(diǎn)掛載消息服務(wù)器應(yīng)用進(jìn)程,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的一對(duì)多通信。本發(fā)明的另一技術(shù)方案是一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,包括如下步驟步驟1.應(yīng)用進(jìn)程通過API接口發(fā)送數(shù)據(jù)到網(wǎng)絡(luò);步驟2.通信代理獲取網(wǎng)絡(luò)數(shù)據(jù);步驟3.通信代理處理消息數(shù)據(jù);步驟4.消息服務(wù)器獲取并處理發(fā)布/訂閱消息;步驟5.應(yīng)用進(jìn)程通過API接口從網(wǎng)絡(luò)接收消息。本發(fā)明的有益效果是克服現(xiàn)有的私有云系統(tǒng)通信方式只有同步通信方式,通信對(duì)象只局限于單節(jié)點(diǎn),且通信域內(nèi)采用傳統(tǒng)的客戶/服務(wù)器模式使得服務(wù)器完成所有應(yīng)用進(jìn)程間通信信息的轉(zhuǎn)發(fā)和路由工作,在通信量巨大的情況下服務(wù)器節(jié)點(diǎn)開銷巨大等缺點(diǎn), 提出了一種適應(yīng)私有云系統(tǒng)的通信平臺(tái)和通信方法。該通信平臺(tái)和通信方法采用基于消息的通信模型,可方便實(shí)現(xiàn)系統(tǒng)應(yīng)用進(jìn)程之間的同步和異步通信模式,完善通信需求;與傳統(tǒng) C/S模式不同,本平臺(tái)的消息服務(wù)器完成發(fā)布/訂閱通信,節(jié)點(diǎn)上的通信代理不經(jīng)過消息服務(wù)器完成點(diǎn)對(duì)點(diǎn)接通信,此設(shè)計(jì)模式可在通信量巨大的情況下,降低服務(wù)器節(jié)點(diǎn)的開銷;通信平臺(tái)為系統(tǒng)所有進(jìn)程解決進(jìn)程間通信問題,系統(tǒng)應(yīng)用進(jìn)程開發(fā)人員不再編寫底層通信代理,降低了私有云系統(tǒng)其他組件的開發(fā)難度。其優(yōu)點(diǎn)具體體現(xiàn)在(1)本發(fā)明的通信平臺(tái)和通信方法采用基于消息的通信模型,方便地實(shí)現(xiàn)了同步與異步通信方式;(2)本發(fā)明的通信平臺(tái)和通信方法能有效實(shí)現(xiàn)系統(tǒng)各組件之間的解耦合性,并且屏蔽底層通信細(xì)節(jié)為系統(tǒng)上層應(yīng)用進(jìn)程提供統(tǒng)一的透明通信服務(wù),軟件開發(fā)人員不需為每個(gè)應(yīng)用進(jìn)程單獨(dú)編寫底層通信代碼,大大降低系統(tǒng)軟件開發(fā)難度;(2)本發(fā)明的通信平臺(tái)和通信方法與COBRA的客戶/服務(wù)器設(shè)計(jì)模式相比,通信平臺(tái)采用通信代理與消息服務(wù)器相結(jié)合的架構(gòu)設(shè)計(jì)方式,應(yīng)用進(jìn)程之間信息的轉(zhuǎn)發(fā)和路由不再只依靠服務(wù)器節(jié)點(diǎn),使系統(tǒng)具有通信數(shù)據(jù)吞吐量高,通信效率高,消息服務(wù)器和通信代理性能消耗少等特點(diǎn)。
圖1是現(xiàn)有技術(shù)中的CORBA體系結(jié)構(gòu)圖。圖2是本發(fā)明通信平臺(tái)的全局結(jié)構(gòu)示意圖。圖3是本發(fā)明通信方法的全局流程示意圖。圖4是本發(fā)明通信方法步驟“應(yīng)用進(jìn)程通過API接口發(fā)送數(shù)據(jù)到網(wǎng)絡(luò)”的具體流程圖。圖5是本發(fā)明通信方法步驟“通信代理獲取網(wǎng)絡(luò)數(shù)據(jù)”的具體流程圖。圖6是本發(fā)明通信方法步驟“通信代理處理消息數(shù)據(jù)”的具體流程圖。圖7是本發(fā)明通信方法步驟“消息服務(wù)器獲取并處理發(fā)布/訂閱消息”的具體流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案做詳細(xì)的說明。本發(fā)明提出了一種適應(yīng)私有云環(huán)境下的通信平臺(tái),如圖2所示,通信平臺(tái)至少包括兩個(gè)計(jì)算節(jié)點(diǎn)(本實(shí)施例中為兩個(gè))和一個(gè)服務(wù)器節(jié)點(diǎn)(本實(shí)施例中為一個(gè)),計(jì)算節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)(以下統(tǒng)稱節(jié)點(diǎn))通過網(wǎng)絡(luò)互相連接成分布式集群系統(tǒng)。每個(gè)計(jì)算節(jié)點(diǎn)表示系統(tǒng)中的一臺(tái)主機(jī),主機(jī)中包含了許多的應(yīng)用進(jìn)程。通信平臺(tái)特征在于每個(gè)節(jié)點(diǎn)上掛載一個(gè)通信代理,節(jié)點(diǎn)內(nèi)所有應(yīng)用進(jìn)程通過通信平臺(tái)提供的標(biāo)準(zhǔn)API (Application Process Interface)接口與本地通信代理連接,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的點(diǎn)對(duì)點(diǎn)通信。通過在服務(wù)器節(jié)點(diǎn)掛載消息服務(wù)器應(yīng)用進(jìn)程,可實(shí)現(xiàn)應(yīng)用進(jìn)程間的一對(duì)多通信。API接口是通信平臺(tái)向應(yīng)用進(jìn)程提供透明通信服務(wù)的一系列API函數(shù)。通信平臺(tái)為維護(hù)應(yīng)用進(jìn)程信息提供了進(jìn)程注冊(cè)和取消注冊(cè)的API函數(shù);針對(duì)點(diǎn)對(duì)點(diǎn)和發(fā)布/訂閱二種通信模型,通信平臺(tái)提供了同步和異步發(fā)送接收API函數(shù);根據(jù)通信數(shù)據(jù)類型是消息還是文件提供了消息與文件傳輸API函數(shù)。簡(jiǎn)單介紹通信平臺(tái)提供的二種通信方式,一、點(diǎn)對(duì)點(diǎn)通信,消息轉(zhuǎn)發(fā)不通過消息服務(wù)器節(jié)點(diǎn),由通信代理直接轉(zhuǎn)發(fā)完成。由于應(yīng)用進(jìn)程可能在同一計(jì)算節(jié)點(diǎn)上,也可能不在同一計(jì)算節(jié)點(diǎn)上。點(diǎn)對(duì)點(diǎn)通信分為二種類型1.節(jié)點(diǎn)內(nèi)應(yīng)用進(jìn)程之間的通信,2.節(jié)點(diǎn)間應(yīng)用進(jìn)程之間的通信。對(duì)于節(jié)點(diǎn)內(nèi)或節(jié)點(diǎn)間進(jìn)程間的通信,通信代理不加區(qū)分一律使用socket 進(jìn)行通信,這樣的設(shè)計(jì)模式使得通信平臺(tái)易用且具有良好的擴(kuò)展性。二、發(fā)布/訂閱通信, 應(yīng)用進(jìn)程發(fā)布消息和訂閱消息首先通過通信代理將消息發(fā)送到消息服務(wù)器,消息服務(wù)器再根據(jù)發(fā)布和訂閱情況,將消息廣播至訂閱該消息的應(yīng)用進(jìn)程。本領(lǐng)域的普通技術(shù)人員應(yīng)該意識(shí)到,按照上述的連接關(guān)系,上述計(jì)算節(jié)點(diǎn)或服務(wù)器節(jié)點(diǎn)的數(shù)量可以任意添加。本發(fā)明還提出了一種適應(yīng)私有云環(huán)境下的通信方法,如圖3所示,該通信方法的主要包括以下步驟步驟1.應(yīng)用進(jìn)程通過API接口發(fā)送數(shù)據(jù)到網(wǎng)絡(luò)。如圖4所示,應(yīng)用進(jìn)程首先向本地節(jié)點(diǎn)上的通信代理發(fā)起網(wǎng)絡(luò)連接請(qǐng)求,應(yīng)用進(jìn)程與通信代理連接成功后應(yīng)用進(jìn)程使用注冊(cè)API函數(shù)向通信代理發(fā)送應(yīng)用進(jìn)程信息,通信代理完成應(yīng)用進(jìn)程信息的維護(hù)。根據(jù)目的進(jìn)程信息和應(yīng)用進(jìn)程的通信需求設(shè)置通信選項(xiàng), 通信需求包括發(fā)送的數(shù)據(jù)類型是消息或是文件,通信方式是點(diǎn)對(duì)點(diǎn)通信或發(fā)布訂閱通信。 設(shè)置好通信選項(xiàng)后,使用相應(yīng)的API函數(shù),將按一定規(guī)則和協(xié)議序列化后的消息到發(fā)送到網(wǎng)絡(luò)中。步驟2.通信代理獲取網(wǎng)絡(luò)數(shù)據(jù)如圖5所示,應(yīng)用進(jìn)程無需知道底層通信細(xì)節(jié)只需完成步驟1中的操作,即可將需要通信的數(shù)據(jù)通過API接口發(fā)送至網(wǎng)絡(luò)中,具體的數(shù)據(jù)轉(zhuǎn)發(fā)過程由通信代理完成。在獲取網(wǎng)絡(luò)數(shù)據(jù)之前,通過代理完成與應(yīng)用進(jìn)程之間的交互完成接收會(huì)話連接的建立。首先通信代理啟動(dòng)后綁定固定端口號(hào),然后開始監(jiān)聽該端口以等待網(wǎng)絡(luò)連接請(qǐng)求;收到新的連接請(qǐng)求后,建立接收會(huì)話連接等待接收LAN數(shù)據(jù),并將新連接添加至接收會(huì)話連接信息表中,統(tǒng)一管理方便查詢。在步驟1結(jié)束后網(wǎng)絡(luò)中有新的數(shù)據(jù)到達(dá),接收會(huì)話連接開啟接收線程讀底層socket接口完成數(shù)據(jù)的接收。網(wǎng)絡(luò)數(shù)據(jù)接收完成后,將數(shù)據(jù)按一定的規(guī)則和協(xié)議反序列化為自定義的消息格式,然后將消息放入消息接收隊(duì)列中等待后續(xù)數(shù)據(jù)處理。步驟3.通信代理處理消息數(shù)據(jù)。如圖6所示,通過步驟2,通信代理獲取到應(yīng)用進(jìn)程的通信數(shù)據(jù),并將消息存放到接收隊(duì)列后通信代理開始處理消息數(shù)據(jù)。首先通信代理開啟消息處理線程循環(huán)處理接收隊(duì)列中的消息。其次,通信代理查詢發(fā)送會(huì)話連接信息表,查看通信代理與目的進(jìn)程之間是否存在發(fā)送會(huì)話連接。如果通信代理與目的進(jìn)程已建立發(fā)送會(huì)話連接,則將消息通過發(fā)送會(huì)話連接發(fā)送至網(wǎng)絡(luò)中;如果沒有與目的進(jìn)程之間建立發(fā)送會(huì)話連接,則根據(jù)步驟1中設(shè)置的通信選項(xiàng)判斷通信類型,若通信類型是發(fā)布/訂閱,則通信代理向服務(wù)器節(jié)點(diǎn)的通信代理發(fā)起發(fā)送會(huì)話連接請(qǐng)求;若通信類型是點(diǎn)對(duì)點(diǎn)通信,再通過判定目的進(jìn)程IP與通信代理 IP是否相同,相同則為節(jié)點(diǎn)內(nèi)進(jìn)程通信,通信代理向目的進(jìn)程發(fā)起發(fā)送會(huì)話連接請(qǐng)求,若不同則為節(jié)點(diǎn)間進(jìn)程通信,通信代理向目的進(jìn)程所在通信代理發(fā)起發(fā)送會(huì)話連接請(qǐng)求。連接請(qǐng)求若失敗,則該消息存放至消息失敗隊(duì)列中;連接成功后將新連接添加至發(fā)送會(huì)話連接信息表中,再將消息通過發(fā)送會(huì)話連接發(fā)送至網(wǎng)絡(luò)中。步驟4.消息服務(wù)器獲取并處理發(fā)布/訂閱消息。如圖7所示,通過步驟3,若通信類型是點(diǎn)對(duì)點(diǎn)通信則轉(zhuǎn)到步驟5。若通信類型是發(fā)布/訂閱則消息發(fā)送至消息服務(wù)器節(jié)點(diǎn)的通信代理上,然后服務(wù)器節(jié)點(diǎn)的通信代理再將消息轉(zhuǎn)發(fā)至消息服務(wù)器,此處服務(wù)器節(jié)點(diǎn)的通信代理獲取并處理數(shù)據(jù)與步驟2和步驟3相同,消息服務(wù)器獲取消息與步驟5相同。消息服務(wù)器在收到消息后判斷在步驟1中設(shè)置的消息類型,若是控制消息,采取取消主題消息或者取消訂閱消息的操作;若是主題消息則將消息添加至發(fā)布主題映射表;若是訂閱消息則將消息添加至訂閱主題映射表。新的消息添加到映射表后,進(jìn)行主題消息的匹配。主題匹配有以下四種情況1)新主題消息有訂閱者; 2)新主題消息沒有訂閱者;幻新訂閱消息有主題發(fā)布者;4)新訂閱消息沒有主題發(fā)布者; 1)和3) 二種情況屬于主題匹配成功,主題匹配成功后消息服務(wù)器將主題消息發(fā)送至服務(wù)器掛載的通信代理上,然后消息服務(wù)器上通信代理對(duì)消息分析處理后將消息發(fā)送至訂閱應(yīng)用進(jìn)程。步驟5.應(yīng)用進(jìn)程通過API接口從網(wǎng)絡(luò)接收消息。應(yīng)用進(jìn)程在啟動(dòng)后綁定固定端口號(hào),然后開始監(jiān)聽該端口以等待網(wǎng)絡(luò)連接請(qǐng)求,收到新的連接請(qǐng)求后,建立應(yīng)用進(jìn)程的接收會(huì)話連接等待接收LAN數(shù)據(jù)。當(dāng)通信代理向應(yīng)用進(jìn)程發(fā)送數(shù)據(jù)時(shí),應(yīng)用進(jìn)程的接收會(huì)話連接調(diào)用通信平臺(tái)提供的同步或異步接收API函數(shù)獲取網(wǎng)絡(luò)中數(shù)據(jù),然后再將數(shù)據(jù)按一定的規(guī)則和協(xié)議反序列化為消息。
本領(lǐng)域的普通技術(shù)人員將會(huì)意識(shí)到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種適應(yīng)私有云環(huán)境下的通信平臺(tái),所述通信平臺(tái)至少包括兩個(gè)計(jì)算節(jié)點(diǎn)和一個(gè)服務(wù)器節(jié)點(diǎn),所述計(jì)算節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)通過網(wǎng)絡(luò)互相連接成分布式集群系統(tǒng),每個(gè)計(jì)算節(jié)點(diǎn)表示系統(tǒng)中的一臺(tái)主機(jī),主機(jī)中包含了許多的應(yīng)用進(jìn)程,其特征在于,每個(gè)節(jié)點(diǎn)上掛載一個(gè)通信代理,所述節(jié)點(diǎn)內(nèi)所有應(yīng)用進(jìn)程通過通信平臺(tái)提供的標(biāo)準(zhǔn)API接口與本地通信代理連接,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的點(diǎn)對(duì)點(diǎn)通信,并且通過在服務(wù)器節(jié)點(diǎn)掛載消息服務(wù)器應(yīng)用進(jìn)程, 以實(shí)現(xiàn)應(yīng)用進(jìn)程間的一對(duì)多通信。
2.—種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,包括如下步驟步驟1.應(yīng)用進(jìn)程通過API接口發(fā)送數(shù)據(jù)到網(wǎng)絡(luò);步驟2.通信代理獲取網(wǎng)絡(luò)數(shù)據(jù);步驟3.通信代理處理消息數(shù)據(jù);步驟4.消息服務(wù)器獲取并處理發(fā)布/訂閱消息;步驟5.應(yīng)用進(jìn)程通過API接口從網(wǎng)絡(luò)接收消息。
3.根據(jù)權(quán)利要求2所述的一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,所述步驟1 的具體過程為應(yīng)用進(jìn)程首先向本地節(jié)點(diǎn)上的通信代理發(fā)起網(wǎng)絡(luò)連接請(qǐng)求,應(yīng)用進(jìn)程與通信代理連接成功后應(yīng)用進(jìn)程使用注冊(cè)API函數(shù)向通信代理發(fā)送應(yīng)用進(jìn)程信息,通信代理完成應(yīng)用進(jìn)程信息的維護(hù);根據(jù)目的進(jìn)程信息和應(yīng)用進(jìn)程的通信需求設(shè)置通信選項(xiàng),通信需求包括發(fā)送的數(shù)據(jù)類型是消息或是文件,通信方式是點(diǎn)對(duì)點(diǎn)通信或發(fā)布訂閱通信;設(shè)置好通信選項(xiàng)后,使用相應(yīng)的API函數(shù),將按一定規(guī)則和協(xié)議序列化后的消息到發(fā)送到網(wǎng)絡(luò)中。
4.根據(jù)權(quán)利要求2所述的一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,所述步驟 2的具體過程為應(yīng)用進(jìn)程可將需要通信的數(shù)據(jù)通過API接口發(fā)送至網(wǎng)絡(luò)中,具體的數(shù)據(jù)轉(zhuǎn)發(fā)過程由通信代理完成;在獲取網(wǎng)絡(luò)數(shù)據(jù)之前,通過代理完成與應(yīng)用進(jìn)程之間的交互完成接收會(huì)話連接的建立;首先通信代理啟動(dòng)后綁定固定端口號(hào),然后開始監(jiān)聽該端口以等待網(wǎng)絡(luò)連接請(qǐng)求;收到新的連接請(qǐng)求后,建立接收會(huì)話連接等待接收LAN數(shù)據(jù),并將新連接添加至接收會(huì)話連接信息表中,統(tǒng)一管理方便查詢。
5.根據(jù)權(quán)利要求2所述的一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,所述步驟3 的具體過程為信代理獲取到應(yīng)用進(jìn)程的通信數(shù)據(jù),并將消息存放到接收隊(duì)列后通信代理開始處理消息數(shù)據(jù);首先通信代理開啟消息處理線程循環(huán)處理接收隊(duì)列中的消息;其次, 通信代理查詢發(fā)送會(huì)話連接信息表,查看通信代理與目的進(jìn)程之間是否存在發(fā)送會(huì)話連接。如果通信代理與目的進(jìn)程已建立發(fā)送會(huì)話連接,則將消息通過發(fā)送會(huì)話連接發(fā)送至網(wǎng)絡(luò)中;如果沒有與目的進(jìn)程之間建立發(fā)送會(huì)話連接,則根據(jù)步驟1中設(shè)置的通信選項(xiàng)判斷通信類型,若通信類型是發(fā)布/訂閱,則通信代理向服務(wù)器節(jié)點(diǎn)的通信代理發(fā)起發(fā)送會(huì)話連接請(qǐng)求;若通信類型是點(diǎn)對(duì)點(diǎn)通信,再通過判定目的進(jìn)程IP與通信代理IP是否相同,相同則為節(jié)點(diǎn)內(nèi)進(jìn)程通信,通信代理向目的進(jìn)程發(fā)起發(fā)送會(huì)話連接請(qǐng)求,若不同則為節(jié)點(diǎn)間進(jìn)程通信,通信代理向目的進(jìn)程所在通信代理發(fā)起發(fā)送會(huì)話連接請(qǐng)求。連接請(qǐng)求若失敗,則該消息存放至消息失敗隊(duì)列中;連接成功后將新連接添加至發(fā)送會(huì)話連接信息表中,再將消息通過發(fā)送會(huì)話連接發(fā)送至網(wǎng)絡(luò)中。
6.根據(jù)權(quán)利要求2所述的一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,所述步驟 4的具體過程為通過步驟3,若通信類型是點(diǎn)對(duì)點(diǎn)通信則轉(zhuǎn)到步驟5 ;若通信類型是發(fā)布/ 訂閱則消息發(fā)送至消息服務(wù)器節(jié)點(diǎn)的通信代理上,然后服務(wù)器節(jié)點(diǎn)的通信代理再將消息轉(zhuǎn)發(fā)至消息服務(wù)器,此處服務(wù)器節(jié)點(diǎn)的通信代理獲取并處理數(shù)據(jù)與步驟2和步驟3相同,消息服務(wù)器獲取消息與步驟5相同;消息服務(wù)器在收到消息后判斷在步驟1中設(shè)置的消息類型, 若是控制消息,采取取消主題消息或者取消訂閱消息的操作;若是主題消息則將消息添加至發(fā)布主題映射表;若是訂閱消息則將消息添加至訂閱主題映射表。
7.根據(jù)權(quán)利要求2所述的一種適應(yīng)私有云環(huán)境下的通信方法,其特征在于,所述步驟5 的具體過程為應(yīng)用進(jìn)程在啟動(dòng)后綁定固定端口號(hào),然后開始監(jiān)聽該端口以等待網(wǎng)絡(luò)連接請(qǐng)求,收到新的連接請(qǐng)求后,建立應(yīng)用進(jìn)程的接收會(huì)話連接等待接收LAN數(shù)據(jù)。當(dāng)通信代理向應(yīng)用進(jìn)程發(fā)送數(shù)據(jù)時(shí),應(yīng)用進(jìn)程的接收會(huì)話連接調(diào)用通信平臺(tái)提供的同步或異步接收 API函數(shù)獲取網(wǎng)絡(luò)中數(shù)據(jù),然后再將數(shù)據(jù)按一定的規(guī)則和協(xié)議反序列化為消息。
全文摘要
本發(fā)明涉及一種適應(yīng)私有云環(huán)境下的通信平臺(tái)和通信方法,所述通信平臺(tái)至少包括兩個(gè)計(jì)算節(jié)點(diǎn)和一個(gè)服務(wù)器節(jié)點(diǎn),所述計(jì)算節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)通過網(wǎng)絡(luò)互相連接成分布式集群系統(tǒng),每個(gè)計(jì)算節(jié)點(diǎn)表示系統(tǒng)中的一臺(tái)主機(jī),主機(jī)中包含了許多的應(yīng)用進(jìn)程,每個(gè)節(jié)點(diǎn)上掛載一個(gè)通信代理,所述節(jié)點(diǎn)內(nèi)所有應(yīng)用進(jìn)程通過通信平臺(tái)提供的標(biāo)準(zhǔn)API接口與本地通信代理連接,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的點(diǎn)對(duì)點(diǎn)通信,并且通過在服務(wù)器節(jié)點(diǎn)掛載消息服務(wù)器應(yīng)用進(jìn)程,以實(shí)現(xiàn)應(yīng)用進(jìn)程間的一對(duì)多通信。本發(fā)明的有益效果是克服現(xiàn)有的私有云系統(tǒng)通信方式只有同步通信方式,通信對(duì)象只局限于單節(jié)點(diǎn),且通信域內(nèi)采用傳統(tǒng)的客戶/服務(wù)器模式的缺點(diǎn)。
文檔編號(hào)H04L29/08GK102291467SQ20111027317
公開日2011年12月21日 申請(qǐng)日期2011年9月15日 優(yōu)先權(quán)日2011年9月15日
發(fā)明者胡光岷, 趙太銀, 陳慧楠 申請(qǐng)人:電子科技大學(xué)