一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器的制造方法
【專利摘要】本發(fā)明提供一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器,第一服務(wù)器通過MINA的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過MINA的發(fā)送接口發(fā)送至第二服務(wù)器,第二服務(wù)器接收XML格式信息后進(jìn)行反序列化,并且進(jìn)行解析獲取結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于MINA的應(yīng)用程序框架簡單,性能好。底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
【專利說明】一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種分布式系統(tǒng)【技術(shù)領(lǐng)域】,具體地涉及一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器。
【背景技術(shù)】
[0002]目前,構(gòu)建大型分布式系統(tǒng)通常通過“層”的抽象:“層”可能是多層架構(gòu)中的“層”,也可能是組件系統(tǒng)中的一個(gè)組件,或者是面向服務(wù)架構(gòu)(Service-OrientedArchitecture, S0A)中的一個(gè)服務(wù),在這種架構(gòu)中,系統(tǒng)被分為多個(gè)“層”,而各個(gè)層之間需要定義接口來進(jìn)行信息交互。在分布式級聯(lián)系統(tǒng)中,省市縣每級都部署一個(gè)服務(wù)器,上級服務(wù)器可以調(diào)用下級服務(wù)器,同時(shí)下級服務(wù)器可以主動(dòng)推送信息到上級,如圖1所示,服務(wù)器相連后,頂級服務(wù)器可以作為二級服務(wù)器的第一服務(wù)器相連,二級服務(wù)器可以作為三級服務(wù)器的第一服務(wù)器相連,通過這個(gè)分布式級聯(lián)系統(tǒng),可以實(shí)現(xiàn)程序跨域計(jì)算機(jī)進(jìn)行。
[0003]在系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)中,遠(yuǎn)程調(diào)用(Remote Calling)這種層間交互方式愈發(fā)不可替代。通常采用的遠(yuǎn)程方法調(diào)用技術(shù)有:傳統(tǒng)的遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC),性能不高;Java語言的遠(yuǎn)程方法調(diào)用(Remote Method Invocat1n, RMI),只能在純粹的Java環(huán)境中使用;分布式組件對象模型(Distributed Component Object Model, DCOM),可以在網(wǎng)絡(luò)上調(diào)用COM組件,并用于C0M+應(yīng)用程序,但主要用于Microsoft環(huán)境,把它用于其他系統(tǒng)中不可行;公用對象請求代理程序體系結(jié)構(gòu)(Common Object Request BrokerArchitecture, C0RBA),是 Object Management Group (0MG, www.0mg.0rg)在 1991 年開發(fā)的,可以把面向?qū)ο蠹夹g(shù)添加到網(wǎng)絡(luò)編程中,許多銷售商如Digital Equipment、HP、IBM和其他銷售商都提供C0RBA服務(wù)器。但因?yàn)?MG沒有定義引用執(zhí)行代碼,只有一個(gè)規(guī)范,所以這些銷售商的服務(wù)器都不能交互操作。HP服務(wù)器需要一個(gè)HP客戶機(jī),IBM服務(wù)器需要一個(gè)IBM客戶機(jī)等。
[0004]Apache MINA是一個(gè)網(wǎng)絡(luò)應(yīng)用程序框架,用來幫助用戶簡單地開發(fā)高性能和高可靠性的網(wǎng)絡(luò)應(yīng)用程序。它提供了一個(gè)通過Java ΝΙ0在不同的傳輸例如TCP/IP和UDP/IP上抽象的事件驅(qū)動(dòng)的異步API。
【發(fā)明內(nèi)容】
[0005]為此,本發(fā)明所要解決的技術(shù)問題在于現(xiàn)有技術(shù)中用于多級服務(wù)器間遠(yuǎn)程調(diào)用和推送的方法應(yīng)用程序框架復(fù)雜,性能差且不支持服務(wù)器主動(dòng)推送等問題,從而提出一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器。
[0006]為解決上述技術(shù)問題,本發(fā)明的提供如下技術(shù)方案:
[0007]—種多級服務(wù)器間數(shù)據(jù)通信方法,包括如下步驟:
[0008]通過ΜΙΝΑ的連接接口連接第二服務(wù)器;
[0009]發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息;
[0010]將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息;
[0011]通過MINA的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0012]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述接口命令為推送命令。
[0013]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述接口命令為調(diào)用命令,且在所述通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器步驟之后還包括步驟:
[0014]通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果;
[0015]將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
[0016]上述多級服務(wù)器間數(shù)據(jù)通信方法,還包括步驟:
[0017]定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過ΜΙΝΑ的連接接口重新連接第二服務(wù)器。
[0018]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息步驟中:
[0019]所述命令信息包括:類名、方法、參數(shù)、返回值,所述第一格式信息為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
[0020]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述將第一格式信息對象序列化為第二格式信息步驟中:
[0021]將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。
[0022]一種多級服務(wù)器間數(shù)據(jù)通信方法,括如下步驟:
[0023]通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接;
[0024]通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息;
[0025]將第二格式信息反序列化為第三格式信息;
[0026]解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
[0027]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述接口命令為調(diào)用命令時(shí),還包括步驟:
[0028]通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器;
[0029]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述將第二格式信息反序列化為第三格式信息步驟中:
[0030]將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述第三格式信息為JavaBean格式的信息。
[0031]一種多級服務(wù)器間數(shù)據(jù)通信方法,包括:
[0032]第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后,第二服務(wù)器保存對應(yīng)的連接;
[0033]第一服務(wù)器發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息;
[0034]第一服務(wù)器將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息;
[0035]第一服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器;
[0036]第二服務(wù)器通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息;
[0037]第二服務(wù)器將第二格式信息反序列化為第三格式信息;
[0038]第二服務(wù)器解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
[0039]上述多級服務(wù)器間數(shù)據(jù)通信方法,所述接口命令為調(diào)用命令時(shí),還包括步驟:
[0040]第二服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器,所述結(jié)果為返回值;
[0041]第一服務(wù)器通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果;
[0042]第一服務(wù)器將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
[0043]一種多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,包括:
[0044]連接模塊,用于通過ΜΙΝΑ的連接接口連接第二服務(wù)器;
[0045]第一發(fā)送模塊,用于發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一信息;
[0046]第一數(shù)據(jù)處理模塊,用于將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息;
[0047]第二發(fā)送模塊,用于通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0048]上述多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,第一發(fā)送模塊中所述接口命令為推送命令。
[0049]上述多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,第一發(fā)送模塊中所述接口命令為調(diào)用命令,還包括:
[0050]接收模塊,用于通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果;
[0051]第二數(shù)據(jù)處理模塊,用于將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
[0052]上述多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,還包括:
[0053]心跳請求發(fā)送模塊,用于定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過ΜΙΝΑ的連接接口重新連接第二服務(wù)器。
[0054]上述多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,第一發(fā)送模塊中:
[0055]所述命令信息包括:類名、方法、參數(shù)、返回值,所述第一格式信息為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
[0056]上述多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,第一數(shù)據(jù)處理模塊中:
[0057]將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。
[0058]一種多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,包括:
[0059]連接保存模塊,用于通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接;
[0060]信息接收模塊,用于通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息;
[0061 ] 信息處理模塊,用于將第二格式信息反序列化為第三格式信息;
[0062]信息解析模塊,用于解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
[0063]上述多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,信息接收模塊中所述接口命令為調(diào)用命令,還包括:
[0064]信息發(fā)送模塊,用于通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器;
[0065]上述多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,信息處理模塊中:
[0066]將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述第三格式信息為JavaBean格式的信息。
[0067]本發(fā)明的上述技術(shù)方案相比現(xiàn)有技術(shù)具有以下優(yōu)點(diǎn):
[0068](1)本發(fā)明所述的多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器,第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過ΜΙΝΑ的發(fā)送接口發(fā)送至第二服務(wù)器,第二服務(wù)器接收XML格式信息后進(jìn)行反序列化,并且進(jìn)行解析獲取結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好。底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0069](2)本發(fā)明所述的多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器,當(dāng)接口命令為調(diào)用命令時(shí),通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果,將結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。在一個(gè)服務(wù)器調(diào)用多個(gè)服務(wù)器時(shí),可以根據(jù)結(jié)果處理策略獲取最終結(jié)果。
[0070](3)本發(fā)明所述的多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器,第一服務(wù)器定時(shí)發(fā)送心跳請求道第二服務(wù)器,若心跳請求失敗,進(jìn)行重新連接,能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)掉線或者連接接口斷開的情況下自動(dòng)重新連接,防止出現(xiàn)服務(wù)器間通信中斷的情況。
【專利附圖】
【附圖說明】
[0071]為了使本發(fā)明的內(nèi)容更容易被清楚的理解,下面根據(jù)本發(fā)明的具體實(shí)施例并結(jié)合附圖,對本發(fā)明作進(jìn)一步詳細(xì)的說明,其中
[0072]圖1是分布式級聯(lián)系統(tǒng)示意圖;
[0073]圖2是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法的第一服務(wù)器端處理方法流程圖;
[0074]圖3是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法的第一服務(wù)器端處理方法流程圖;
[0075]圖4是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法的第二服務(wù)器端處理方法流程圖;
[0076]圖5是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法的第二服務(wù)器端處理方法流程圖;
[0077]圖6是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法流程圖;
[0078]圖7是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間遠(yuǎn)程調(diào)用和推送示意圖;
[0079]圖8是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法第一服務(wù)器框圖;
[0080]圖9是本發(fā)明一個(gè)實(shí)施例的一種多級服務(wù)器間數(shù)據(jù)通信方法第二服務(wù)器框圖。
【具體實(shí)施方式】
[0081]實(shí)施例1
[0082]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法,本實(shí)施例為第一服務(wù)器端處理方法,如圖2所示,包括如下步驟:
[0083]S1:第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器。第一服務(wù)器可以通過ΜΙΝΑ的連接接口連接一個(gè)或多個(gè)服務(wù)器,本實(shí)施例中以連接一個(gè)服務(wù)器即第二服務(wù)器為例。
[0084]S2:第一服務(wù)器發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息。
[0085]所述接口命令為調(diào)用命令,即第一服務(wù)器調(diào)用第二服務(wù)器的信息,此時(shí)第一服務(wù)器為上級服務(wù)器,第二服務(wù)器為下級服務(wù)器。例如一個(gè)省有省級、市級、縣級共3級平臺,省市相連,市縣相連,如果省級平臺要調(diào)用縣級平臺,可以通過中間的市級平臺做級聯(lián)透傳,調(diào)用縣級平臺的方法,返回結(jié)果也通過市級平臺返回給省級平臺。省級平臺與市級平臺通信時(shí),省級平臺為第一服務(wù)器,市級平臺為第二服務(wù)器;市級平臺與縣級平臺通信時(shí),市級平臺為第一服務(wù)器,縣級平臺為第二服務(wù)器。
[0086]所述命令信息包括:調(diào)用的類名、方法、參數(shù)、返回值,命令信息為調(diào)用信息。將命令信息進(jìn)行封裝得到第一格式信息,即把調(diào)用的類名、方法、參數(shù)、返回值等信息封裝為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
[0087]S3:第一服務(wù)器將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息。
[0088]將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。Xstream技術(shù)是一種OXMapping技術(shù),是用來處理XML文件序列化的框架,在將JavaBean序列化,或?qū)ML文件反序列化的時(shí)候,不需要其它輔助類和映射文件,使得XML序列化不再繁索。
[0089]S4:第一服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0090]S5:第一服務(wù)器通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果。其結(jié)果就是第二服務(wù)器發(fā)送的返回值。
[0091]S6:第一服務(wù)器將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。當(dāng)?shù)谝环?wù)器連接多個(gè)服務(wù)器時(shí),調(diào)用多個(gè)服務(wù)器返回的結(jié)果是多個(gè)返回值,對這些返回值經(jīng)過結(jié)果處理策略可以獲取最終結(jié)果。
[0092]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,還包括步驟:
[0093]S0:第一服務(wù)器定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過ΜΙΝΑ的連接接口重新連接第二服務(wù)器。能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)掉線或者連接接口斷開的情況下進(jìn)行重新連接,防止出現(xiàn)通信中斷的情況。
[0094]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過ΜΙΝΑ的發(fā)送接口發(fā)送至第二服務(wù)器,通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果,將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0095]實(shí)施例2
[0096]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法,本實(shí)施例為第一服務(wù)器端處理方法,如圖3所示,包括如下步驟:
[0097]S1:第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器。第一服務(wù)器可以通過ΜΙΝΑ的連接接口連接一個(gè)或多個(gè)服務(wù)器,本實(shí)施例中以連接一個(gè)服務(wù)器即第二服務(wù)器為例。
[0098]S2:第一服務(wù)器發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息。
[0099]所述接口命令為推送命令,即第一服務(wù)器將信息推送到第二服務(wù)器,此時(shí)第一服務(wù)器為下級服務(wù)器,第二服務(wù)器為上級服務(wù)器。例如一個(gè)省有省級、市級、縣級共3級平臺,省市相連,市縣相連,如果縣級平臺要推送消息到省級平臺,可以通過中間的市級平臺做級聯(lián)透傳,縣級平臺推送消息給市級平臺,市級平臺再推送消息給省級平臺。省級平臺與市級平臺通信時(shí),省級平臺為第一服務(wù)器,市級平臺為第二服務(wù)器;市級平臺與縣級平臺通信時(shí),市級平臺為第一服務(wù)器,縣級平臺為第二服務(wù)器。
[0100]所述命令信息包括:推送的類名、方法、參數(shù),命令信息為推送信息。將命令信息進(jìn)行封裝得到第一格式信息,即把推送的類名、方法、參數(shù)、等信息封裝為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
[0101]S3:第一服務(wù)器將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息。
[0102]將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。Xstream技術(shù)是一種OXMapping技術(shù),是用來處理XML文件序列化的框架,在將JavaBean序列化,或?qū)ML文件反序列化的時(shí)候,不需要其它輔助類和映射文件,使得XML序列化不再繁索。
[0103]S4:第一服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0104]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,還包括步驟:
[0105]S0:第一服務(wù)器定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過MINA的連接接口重新連接第二服務(wù)器。能夠?qū)崿F(xiàn)在網(wǎng)絡(luò)掉線或者連接接口斷開的情況下進(jìn)行重新連接,防止出現(xiàn)通信中斷的情況。
[0106]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過ΜΙΝΑ的發(fā)送接口發(fā)送至第二服務(wù)器。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0107]實(shí)施例3
[0108]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法,本實(shí)施例為第二服務(wù)器端處理方法,如圖4所示,包括如下步驟:
[0109]Τ1:第二服務(wù)器通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接。
[0110]Τ2:第二服務(wù)器通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息,所述接口命令為調(diào)用命令。
[0111]Τ3:第二服務(wù)器將第二格式信息反序列化為第三格式信息。將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述Xstream技術(shù)如實(shí)施例1中所述。所述第三格式信息為JavaBean格式的信息。
[0112]T4:第二服務(wù)器解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。根據(jù)第三格式信息中的調(diào)用的類名、方法、參數(shù)、返回值等信息找到所調(diào)用的方法,代入?yún)?shù)后得到結(jié)果。
[0113]T5:第二服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器。所述結(jié)果就是根據(jù)第三格式信息解析后獲取的返回值。
[0114]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,第二服務(wù)器通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接,通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息,將第二格式信息反序列化為第三格式信息,再解析第三格式信息獲取結(jié)果,并將結(jié)果發(fā)送至第一服務(wù)器。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于MINA的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0115]實(shí)施例4
[0116]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法,本實(shí)施例為第二服務(wù)器端處理方法,如圖5所示,包括如下步驟:
[0117]T1:第二服務(wù)器通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接。
[0118]Τ2:第二服務(wù)器通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息,所述接口命令為推送命令。
[0119]Τ3:第二服務(wù)器將第二格式信息反序列化為第三格式信息。將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述Xstream技術(shù)如實(shí)施例1中所述。所述第三格式信息為JavaBean格式的信息。
[0120]T4:第二服務(wù)器解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。根據(jù)第三格式信息中的推送的類名、方法、參數(shù)等信息找到所推送的方法,代入?yún)?shù)后得到結(jié)果。
[0121]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信方法,第二服務(wù)器通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接,通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息,將第二格式信息反序列化為第三格式信息,再解析第三格式信息獲取結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可倉泛。
[0122]實(shí)施例5
[0123]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法,用于在分布式系統(tǒng)的多級服務(wù)器間進(jìn)行數(shù)據(jù)通信,在分布式系統(tǒng)中具有多個(gè)服務(wù)器,每個(gè)服務(wù)器都具有和上級服務(wù)器和下級服務(wù)器通信的功能,本實(shí)施例中的第一服務(wù)器和第二服務(wù)器分別是分布式系統(tǒng)中可以通信的兩個(gè)服務(wù)器。
[0124]如圖6所示,包括如下步驟:
[0125]W1:第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后,第二服務(wù)器保存對應(yīng)的連接。
[0126]W2:第一服務(wù)器發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息。
[0127]W3:第一服務(wù)器將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息。
[0128]W4:第一服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0129]W5:第二服務(wù)器通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息。
[0130]W6:第二服務(wù)器將第二格式信息反序列化為第三格式信息。
[0131]W7:第二服務(wù)器解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
[0132]所述接口命令為推送命令時(shí),到步驟W7結(jié)束。
[0133]所述接口命令為調(diào)用命令時(shí),還包括步驟:
[0134]W8:第二服務(wù)器通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器,所述結(jié)果為返回值。
[0135]W9:第一服務(wù)器通過MINA的接收接口接收第二服務(wù)器發(fā)送的結(jié)果.
[0136]W10:第一服務(wù)器將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
[0137]第一服務(wù)器端通過ΜΙΝΑ的N1SocketConnector類去主動(dòng)連接第二服務(wù)器,連接成功后,第二服務(wù)器端通過1Sess1nManager類來管理第一服務(wù)器的連接。第一服務(wù)器調(diào)用第二服務(wù)器時(shí),第一服務(wù)器需要有第二服務(wù)器發(fā)布的遠(yuǎn)程調(diào)用接口集合。第一服務(wù)器推送第二服務(wù)器時(shí),第一服務(wù)器需要有第二服務(wù)器發(fā)布的遠(yuǎn)程推送接口集合。第一服務(wù)器通過SeverClassMapperManager類來管理第二服務(wù)器遠(yuǎn)程調(diào)用接口的具體實(shí)現(xiàn),第一服務(wù)器通過ClientClassMapperManager類來管理第二服務(wù)器遠(yuǎn)程推送接口的具體實(shí)現(xiàn)。支持Spring框架,通過配置文件來移除、新增或者切換具體的實(shí)現(xiàn)方法,低耦合易擴(kuò)展。
[0138]第一服務(wù)器調(diào)用第二服務(wù)器時(shí)通過Vis1naryClientHandlerAdapter類處理,第一服務(wù)器推送信息至第二服務(wù)器時(shí)通過Vis1naryServerHandlerAdapter類處理,這兩個(gè)類都實(shí)現(xiàn)了 ΜΙΝΑ的1HandlerAdapter類,Socket通信都會通知他們。第一服務(wù)器還通過Vis1naryProxyFactoryBean來獲取第二服務(wù)器的代理對象調(diào)用遠(yuǎn)程服務(wù)器的方法。遠(yuǎn)程調(diào)用和推送信息的過程如圖7所示。
[0139]ΜΙΝΑ是異步通信,在調(diào)用的時(shí)候需要進(jìn)行同步,每次調(diào)用的時(shí)候都需要等待上次調(diào)用的返回結(jié)果,即發(fā)送一次信息,接收一次信息,再發(fā)送一次信息,接收一次信息,依次往復(fù)。
[0140]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信方法及服務(wù)器,第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過ΜΙΝΑ的發(fā)送接口發(fā)送至第二服務(wù)器,第二服務(wù)器接收XML格式信息后進(jìn)行反序列化,并且進(jìn)行解析獲取結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0141]實(shí)施例6
[0142]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,如圖8所示,包括:
[0143]連接模塊,用于通過ΜΙΝΑ的連接接口連接第二服務(wù)器。
[0144]第一發(fā)送模塊,用于發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一信息。
[0145]第一數(shù)據(jù)處理模塊,用于將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息。
[0146]第二發(fā)送模塊,用于通過ΜΙΝΑ的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
[0147]第一發(fā)送模塊中所述接口命令可以為推送命令。
[0148]第一發(fā)送模塊中所述接口命令可以為調(diào)用命令,此時(shí)還包括:
[0149]接收模塊,用于通過ΜΙΝΑ的接收接口接收第二服務(wù)器發(fā)送的結(jié)果。
[0150]第二數(shù)據(jù)處理模塊,用于將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
[0151]還包括:
[0152]心跳請求發(fā)送模塊,用于定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過ΜΙΝΑ的連接接口重新連接第二服務(wù)器。
[0153]第一發(fā)送模塊中所述命令信息包括:類名、方法、參數(shù)、返回值,所述第一格式信息為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
[0154]第一數(shù)據(jù)處理模塊中將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。
[0155]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,第一服務(wù)器通過ΜΙΝΑ的連接接口連接第二服務(wù)器,連接成功后發(fā)送接口命令,獲取第一格式信息,將第一格式信息對象序列化為XML格式后通過ΜΙΝΑ的發(fā)送接口發(fā)送至第二服務(wù)器。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0156]實(shí)施例7
[0157]本實(shí)施例提供一種多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,如圖9所示,包括:
[0158]連接保存模塊,用于通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接。
[0159]信息接收模塊,用于通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息。
[0160]信息處理模塊,用于將第二格式信息反序列化為第三格式信息。
[0161]信息解析模塊,用于解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
[0162]信息接收模塊中所述接口命令為調(diào)用命令,還包括:
[0163]信息發(fā)送模塊,用于通過ΜΙΝΑ的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器。
[0164]信息處理模塊中將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述第三格式信息為JavaBean格式的信息。
[0165]本實(shí)施例提供的一種多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,第二服務(wù)器通過ΜΙΝΑ的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接,通過ΜΙΝΑ的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息,將第二格式信息反序列化為第三格式信息,再解析第三格式信息獲取結(jié)果。實(shí)現(xiàn)了多級服務(wù)器間的遠(yuǎn)程調(diào)用和主動(dòng)推送功能,基于ΜΙΝΑ的應(yīng)用程序框架簡單,性能好,底層通信以XML格式進(jìn)行通信,為以后跨語言調(diào)用或者推送提供了可能。
[0166]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0167]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的
>J-U ρ?α裝直。
[0168]這些計(jì)算機(jī)程序指令也可存儲在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲器中,使得存儲在該計(jì)算機(jī)可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0169]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0170]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
【權(quán)利要求】
1.一種多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,包括如下步驟: 通過MINA的連接接口連接第二服務(wù)器; 發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息; 將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息; 通過MINA的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
2.根據(jù)權(quán)利要求1所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述接口命令為推送命令。
3.根據(jù)權(quán)利要求1所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述接口命令為調(diào)用命令,且在所述通過MINA的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器步驟之后還包括步驟: 通過MINA的接收接口接收第二服務(wù)器發(fā)送的結(jié)果; 將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
4.根據(jù)權(quán)利要求1-3任一所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,還包括步驟: 定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過MINA的連接接口重新連接第二服務(wù)器。
5.根據(jù)權(quán)利要求1-4任一所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息步驟中: 所述命令信息包括:類名、方法、參數(shù)、返回值,所述第一格式信息為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
6.根據(jù)權(quán)利要求1-5任一所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述將第一格式信息對象序列化為第二格式信息步驟中: 將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。
7.一種多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,包括如下步驟: 通過MINA的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接; 通過MINA的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息; 將第二格式信息反序列化為第三格式信息; 解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
8.根據(jù)權(quán)利要求7所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述接口命令為調(diào)用命令時(shí),還包括步驟: 通過MINA的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器。
9.根據(jù)權(quán)利要求7或8所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述將第二格式信息反序列化為第三格式信息步驟中: 將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述第三格式信息為JavaBean格式的信息。
10.一種多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,包括: 第一服務(wù)器通過MINA的連接接口連接第二服務(wù)器,連接成功后,第二服務(wù)器保存對應(yīng)的連接; 第一服務(wù)器發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一格式信息; 第一服務(wù)器將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息; 第一服務(wù)器通過MINA的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器; 第二服務(wù)器通過MINA的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息; 第二服務(wù)器將第二格式信息反序列化為第三格式信息; 第二服務(wù)器解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
11.根據(jù)權(quán)利要求10所述的多級服務(wù)器間數(shù)據(jù)通信方法,其特征在于,所述接口命令為調(diào)用命令時(shí),還包括步驟: 第二服務(wù)器通過MINA的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器,所述結(jié)果為返回值; 第一服務(wù)器通過MINA的接收接口接收第二服務(wù)器發(fā)送的結(jié)果; 第一服務(wù)器將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
12.—種多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,包括: 連接模塊,用于通過MINA的連接接口連接第二服務(wù)器; 第一發(fā)送模塊,用于發(fā)送接口命令,將命令信息進(jìn)行封裝得到第一信息; 第一數(shù)據(jù)處理模塊,用于將第一格式信息對象序列化為第二格式信息,所述第二格式信息為XML格式的信息; 第二發(fā)送模塊,用于通過MINA的發(fā)送接口將所述第二格式信息發(fā)送至第二服務(wù)器。
13.根據(jù)權(quán)利要求12所述的多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,第一發(fā)送模塊中所述接口命令為推送命令。
14.根據(jù)權(quán)利要求12所述的多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,第一發(fā)送模塊中所述接口命令為調(diào)用命令,還包括: 接收模塊,用于通過MINA的接收接口接收第二服務(wù)器發(fā)送的結(jié)果; 第二數(shù)據(jù)處理模塊,用于將接收到的結(jié)果通過結(jié)果處理策略獲取最終結(jié)果。
15.根據(jù)權(quán)利要求12-14任一所述的多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,還包括: 心跳請求發(fā)送模塊,用于定時(shí)發(fā)送心跳請求到第二服務(wù)器,若心跳請求失敗,通過MINA的連接接口重新連接第二服務(wù)器。
16.根據(jù)權(quán)利要求12-15任一所述的多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,第一發(fā)送模塊中: 所述命令信息包括:類名、方法、參數(shù)、返回值,所述第一格式信息為JavaBean格式的信息,所述第一格式信息為待發(fā)送信息。
17.根據(jù)權(quán)利要求12-16任一所述的多級服務(wù)器間數(shù)據(jù)通信的第一服務(wù)器,其特征在于,第一數(shù)據(jù)處理模塊中: 將第一格式信息對象序列化為第二格式信息采用Xstream技術(shù)。
18.—種多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,其特征在于,包括: 連接保存模塊,用于通過MINA的連接接口連接第一服務(wù)器,連接成功后保存對應(yīng)的連接; 信息接收模塊,用于通過MINA的接收接口接收第一服務(wù)器發(fā)送的接口命令和第二格式信息; 信息處理模塊,用于將第二格式信息反序列化為第三格式信息; 信息解析模塊,用于解析第三格式信息,根據(jù)解析后的第三格式信息獲取結(jié)果。
19.根據(jù)權(quán)利要求18所述的多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,其特征在于,信息接收模塊中所述接口命令為調(diào)用命令,還包括: 信息發(fā)送模塊,用于通過MINA的發(fā)送接口將所述結(jié)果發(fā)送至第一服務(wù)器。
20.根據(jù)權(quán)利要求18或19所述的多級服務(wù)器間數(shù)據(jù)通信的第二服務(wù)器,其特征在于,信息處理模塊中: 將第二格式信息反序列化為第三格式信息采用Xstream技術(shù),所述第三格式信息為JavaBean格式的信息。
【文檔編號】H04L29/08GK104270453SQ201410534908
【公開日】2015年1月7日 申請日期:2014年10月11日 優(yōu)先權(quán)日:2014年10月11日
【發(fā)明者】曹易, 陳衛(wèi)東 申請人:蘇州科達(dá)科技股份有限公司