專(zhuān)利名稱(chēng):一種消息廣播通信方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種消息廣播通信方法,尤其涉及一種基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下實(shí)現(xiàn)不同區(qū)域網(wǎng)間的消息廣播通信方法。它向訂閱端微機(jī)裝置提供廣播監(jiān)聽(tīng)插件,系統(tǒng)部署人員只需掌握簡(jiǎn)單的消息部署描述文件,就可以在不影響廣播端微機(jī)裝置的設(shè)定下進(jìn)行對(duì)訂閱端微機(jī)裝置節(jié)點(diǎn)的擴(kuò)展。
背景技術(shù):
目前,隨著集團(tuán)企業(yè)子公司的增加,只部署一個(gè)消息系統(tǒng)節(jié)點(diǎn)容易造成效能瓶頸,最好的方式是每個(gè)子公司應(yīng)用系統(tǒng)群都有一個(gè)消息系統(tǒng)處理對(duì)內(nèi)消息發(fā)送與對(duì)外消息監(jiān)聽(tīng)的工作。應(yīng)用系統(tǒng)群與消息系統(tǒng)同在一個(gè)區(qū)域網(wǎng)上更能確保消息傳送的質(zhì)量與效率。
對(duì)集團(tuán)化經(jīng)營(yíng)的企業(yè)而言,如何透過(guò)信息平臺(tái)來(lái)管理不同地理位置的子公司或獲取每個(gè)子公司營(yíng)運(yùn)狀況,是集團(tuán)企業(yè)信息長(zhǎng)最為關(guān)切的議題與挑戰(zhàn)。如何透過(guò)開(kāi)源軟件力量來(lái)建構(gòu)一個(gè)低成本、高效率、高擴(kuò)展的分布式消息系統(tǒng),也考驗(yàn)著IT團(tuán)隊(duì)的技術(shù)實(shí)力。在異步消息通信領(lǐng)域上一般采用基于JMS1.1規(guī)范實(shí)現(xiàn)的MQ Server,例如IBM Websphere和BEA Weblogic。但這種綁定某廠商中間件的MQ Server水平擴(kuò)展成本高,且無(wú)法與遺留系統(tǒng)或其它廠商的應(yīng)用系統(tǒng)集成。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種消息廣播通信方法,使廣播端微機(jī)裝置在進(jìn)行消息廣播時(shí),只需通過(guò)安裝的廣播監(jiān)聽(tīng)插件就可簡(jiǎn)化訂閱代碼開(kāi)發(fā)與系統(tǒng)設(shè)定,便可達(dá)到消息集中化廣播,多個(gè)訂閱端微機(jī)裝置接收的目的,從而實(shí)現(xiàn)降低成本,并可實(shí)現(xiàn)與遺留系統(tǒng)或其它廠商的應(yīng)用系統(tǒng)集成的目的。
本發(fā)明的目的是由下述技術(shù)方案實(shí)現(xiàn)的一種消息廣播通信方法,該方法是基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下的一個(gè)廣播端微機(jī)裝置與多個(gè)訂閱端微機(jī)裝置之間的消息廣播通信方法,所述廣播端微機(jī)裝置處于一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置廣播端應(yīng)用服務(wù)器、廣播端微機(jī)裝置、廣播消息代理器;所述訂閱端微機(jī)裝置處于另一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置訂閱端微機(jī)裝置、訂閱消息代理器、訂閱端應(yīng)用服務(wù)器;所述廣播端微機(jī)裝置與所述訂閱端微機(jī)裝置處于一個(gè)廣域網(wǎng)環(huán)境中并實(shí)現(xiàn)網(wǎng)絡(luò)連接,所述消息廣播通信方法的步驟是A、制定一個(gè)消息部署描述文件,將該消息部署描述文件存入訂閱端微機(jī)裝置中的訂閱消息代理器;該消息部署描述文件包括消息用戶名、消息用戶路徑;制定一個(gè)廣播消息配置文件,將該廣播消息配置文件存入廣播端微機(jī)裝置中的廣播消息代理器;該廣播消息配置文件包括消息用戶名、消息用戶路徑;B、所述廣播端應(yīng)用服務(wù)器根據(jù)操作命令生成一個(gè)消息數(shù)據(jù)包,該消息數(shù)據(jù)包中裝載消息定義文件(該定義文件可以是通常使用的文件抬頭)、消息屬性、消息主體;由廣播端應(yīng)用服務(wù)器將該消息數(shù)據(jù)包發(fā)送到廣播端微機(jī)裝置中的廣播消息代理器;C、該廣播消息代理器通過(guò)數(shù)據(jù)線將消息數(shù)據(jù)包儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù);D、所述訂閱端微機(jī)裝置通過(guò)安裝在其內(nèi)部的廣播監(jiān)聽(tīng)插件對(duì)所述廣播端微機(jī)裝置進(jìn)行監(jiān)聽(tīng),當(dāng)廣播監(jiān)聽(tīng)插件監(jiān)聽(tīng)到有消息數(shù)據(jù)包發(fā)送到廣播消息代理器并儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù)以后,所述訂閱端微機(jī)裝置解析廣播端微機(jī)裝置存放在其數(shù)據(jù)庫(kù)的消息數(shù)據(jù);E、所述訂閱端微機(jī)裝置根據(jù)所述消息數(shù)據(jù)內(nèi)容進(jìn)行運(yùn)算,決定是否把該消息數(shù)據(jù)接收下來(lái);F、若是所述訂閱端微機(jī)裝置所需要的消息數(shù)據(jù),驅(qū)動(dòng)所述廣播監(jiān)聽(tīng)插件將該消息數(shù)據(jù)取回,該廣播監(jiān)聽(tīng)插件仿真對(duì)所述訂閱消息代理器發(fā)送所述消息數(shù)據(jù);G、所述訂閱消息代理器將接收下來(lái)的消息數(shù)據(jù)先存入數(shù)據(jù)庫(kù),然后解析所述消息部署描述文件,根據(jù)該消息數(shù)據(jù)生成一個(gè)訂閱清單,將該訂閱清單發(fā)送到訂閱端應(yīng)用服務(wù)器;H、當(dāng)所述消息數(shù)據(jù)被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行成功后,所述訂閱消息代理器會(huì)在訂閱端微機(jī)裝置的數(shù)據(jù)庫(kù)更新此筆消息已被消化;I、如果所述消息數(shù)據(jù)沒(méi)有被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行,所述訂閱消息代理器會(huì)每隔一段時(shí)間觸發(fā)一次訂閱該消息的訂閱端應(yīng)用服務(wù)器去消化該筆消息,直到該消息被成功執(zhí)行為止;所述的廣播端應(yīng)用服務(wù)器、廣播端微機(jī)裝置、訂閱端微機(jī)裝置、訂閱端應(yīng)用服務(wù)器中至少包括一中央處理器、一系統(tǒng)主板、存儲(chǔ)器及匹配的操作系統(tǒng);所述廣播端微機(jī)裝置、訂閱端微機(jī)裝置中安裝AMQ軟件程序。
所述的廣播監(jiān)聽(tīng)插件是一個(gè)用JAVA語(yǔ)言實(shí)現(xiàn)的與AMQ軟件程序匹配的插件,該廣播監(jiān)聽(tīng)插件至少具備以下性能廣播監(jiān)聽(tīng)插件根據(jù)廣播消息配置文件檢測(cè)所述廣播端微機(jī)裝置有沒(méi)有需要廣播的消息;確定有消息需要被廣播后,廣播監(jiān)聽(tīng)插件從廣播端微機(jī)裝置的消息隊(duì)列取得該條消息;根據(jù)廣播消息配置文件,廣播監(jiān)聽(tīng)插件把該條消息保存到訂閱端微機(jī)裝置;接收消息的訂閱端應(yīng)用服務(wù)器向訂閱端微機(jī)裝置請(qǐng)求是否有他需要的消息送達(dá);確認(rèn)消息已經(jīng)送達(dá)后,訂閱端應(yīng)用服務(wù)器可以從訂閱端微機(jī)裝置取得該條消息。
本發(fā)明與已有技術(shù)相比有以下特點(diǎn)1、本發(fā)明的方法中所用的廣播端微機(jī)裝置和訂閱端微機(jī)裝置是采用開(kāi)放性框架,并沒(méi)有幫定任何特定中間件,并可獨(dú)立部屬于應(yīng)用服務(wù)器上,可以實(shí)現(xiàn)在不影響廣播端微機(jī)裝置的設(shè)定下進(jìn)行對(duì)訂閱端微機(jī)裝置節(jié)點(diǎn)擴(kuò)展的目的。
2、本發(fā)明的方法中的各訂閱端微機(jī)裝置可以單獨(dú)與廣播端微機(jī)裝置連接,各訂閱端微機(jī)裝置之間不連接,可使得處于不同區(qū)域網(wǎng)或廣域網(wǎng)的廣播端應(yīng)用服務(wù)器與訂閱端應(yīng)用服務(wù)器之間進(jìn)行消息發(fā)送和共享的穩(wěn)定性和安全性大大增加,且所有的消息都是在接收并儲(chǔ)存于數(shù)據(jù)庫(kù)之后才開(kāi)始處理,可避免消息丟失。
3、本發(fā)明的方法采用每隔一定時(shí)間自動(dòng)提示訂閱者閱讀提取的消息,直到閱讀者閱讀過(guò)為止,可達(dá)到避免由于訂閱者的疏忽漏讀重要消息的目的。
圖1為本發(fā)明的流程示意2為本發(fā)明實(shí)施例應(yīng)用于集團(tuán)式消息廣播部署的流程示意圖具體實(shí)施方式
實(shí)施例一參見(jiàn)圖1,一種消息廣播通信方法,該方法是基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下的一個(gè)廣播端微機(jī)裝置與多個(gè)訂閱端微機(jī)裝置之間的消息廣播通信方法,所述廣播端微機(jī)裝置處于一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置廣播端應(yīng)用服務(wù)器1、廣播端微機(jī)裝置2、廣播消息代理器4;所述訂閱端微機(jī)裝置處于另一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置訂閱端微機(jī)裝置3、訂閱消息代理器5、訂閱端應(yīng)用服務(wù)器7;所述廣播端微機(jī)裝置與所述訂閱端微機(jī)裝置處于一個(gè)廣域網(wǎng)環(huán)境中并實(shí)現(xiàn)網(wǎng)絡(luò)連接,所述消息廣播通信方法的步驟是A、制定一個(gè)消息部署描述文件,將該消息部署描述文件存入訂閱端微機(jī)裝置中的訂閱消息代理器;該消息部署描述文件包括消息用戶名、消息用戶路徑;制定一個(gè)廣播消息配置文件,將該廣播消息配置文件存入廣播端微機(jī)裝置中的廣播消息代理器;該廣播消息配置文件包括消息用戶名、消息用戶路徑;所述的消息部署描述文件和廣播消息配置文件都是由計(jì)算機(jī)操作人員根據(jù)匹配的軟件程序制定出來(lái)并輸入所述的微機(jī)裝置;B、所述廣播端應(yīng)用服務(wù)器根據(jù)操作命令生成一個(gè)消息數(shù)據(jù)包,該消息數(shù)據(jù)包中裝載消息定義文件(該定義文件可以是通常使用的文件抬頭)、消息屬性、消息主體;由廣播端應(yīng)用服務(wù)器將該消息數(shù)據(jù)包發(fā)送到廣播端微機(jī)裝置中的廣播消息代理器;所述操作命令是由操作人員根據(jù)所述應(yīng)用服務(wù)器匹配的軟件程序制作并輸入廣播端應(yīng)用服務(wù)器;在本實(shí)施例中,為了敘述和理解上的方便,消息數(shù)據(jù)包也可以簡(jiǎn)稱(chēng)為消息;C、該廣播消息代理器通過(guò)數(shù)據(jù)線將消息數(shù)據(jù)包儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù);D、所述訂閱端微機(jī)裝置通過(guò)安裝在其內(nèi)部的廣播監(jiān)聽(tīng)插件6對(duì)所述廣播端微機(jī)裝置進(jìn)行監(jiān)聽(tīng),當(dāng)廣播監(jiān)聽(tīng)插件監(jiān)聽(tīng)到有消息數(shù)據(jù)包發(fā)送到廣播消息代理器并儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù)以后,所述訂閱端微機(jī)裝置解析廣播端微機(jī)裝置存放在其數(shù)據(jù)庫(kù)的消息數(shù)據(jù);E、所述訂閱端微機(jī)裝置根據(jù)所述消息數(shù)據(jù)內(nèi)容進(jìn)行運(yùn)算,決定是否把該消息數(shù)據(jù)接收下來(lái);F、若是所述訂閱端微機(jī)裝置所需要的消息數(shù)據(jù),驅(qū)動(dòng)所述廣播監(jiān)聽(tīng)插件將該消息數(shù)據(jù)取回,該廣播監(jiān)聽(tīng)插件仿真對(duì)所述訂閱消息代理器發(fā)送所述消息數(shù)據(jù);G、所述訂閱消息代理器將接收下來(lái)的消息數(shù)據(jù)先存入數(shù)據(jù)庫(kù),然后解析所述消息部署描述文件,根據(jù)該消息數(shù)據(jù)生成一個(gè)訂閱清單,將該訂閱清單發(fā)送到訂閱端應(yīng)用服務(wù)器;H、當(dāng)所述消息數(shù)據(jù)被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行成功后,所述訂閱消息代理器會(huì)在訂閱端微機(jī)裝置的數(shù)據(jù)庫(kù)更新此筆消息已被消化;I、如果所述消息數(shù)據(jù)沒(méi)有被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行,所述訂閱消息代理器會(huì)每隔一段時(shí)間觸發(fā)一次訂閱該消息的訂閱端應(yīng)用服務(wù)器去消化該筆消息,直到該消息被成功執(zhí)行為止;所述的廣播端應(yīng)用服務(wù)器、廣播端微機(jī)裝置、訂閱端微機(jī)裝置、訂閱端應(yīng)用服務(wù)器中至少包括一中央處理器、一系統(tǒng)主板、存儲(chǔ)器及匹配的操作系統(tǒng);所述廣播端微機(jī)裝置、訂閱端微機(jī)裝置中安裝AMQ軟件程序。
在本實(shí)施例中,所述廣播消息配置文件是TXT型文件,包括最終的消息用戶名、消息用戶路徑,消息用戶路徑是指消息用戶可以登陸的訂閱端應(yīng)用服務(wù)器中記載著消息數(shù)據(jù)的路徑。廣播消息配置文件還記錄著所有需要廣播的消息隊(duì)列清單,并對(duì)應(yīng)每一個(gè)隊(duì)列所要到達(dá)的目的地的訂閱端應(yīng)用服務(wù)器地址。
在本實(shí)施例中,所述消息部署描述文件是XML型文件,該消息部署描述文件包括消息用戶名、消息用戶路徑,并且還設(shè)定了所要監(jiān)聽(tīng)的廣播端微機(jī)裝置。在本實(shí)施例中,所述的廣播監(jiān)聽(tīng)插件是一個(gè)用JAVA語(yǔ)言實(shí)現(xiàn)的與AMQ軟件程序匹配的插件,該廣播監(jiān)聽(tīng)插件至少具備以下性能廣播監(jiān)聽(tīng)插件根據(jù)廣播消息配置文件檢測(cè)所述廣播端微機(jī)裝置有沒(méi)有需要廣播的消息數(shù)據(jù);確定有消息數(shù)據(jù)需要被廣播后,廣播監(jiān)聽(tīng)插件從廣播端微機(jī)裝置的消息隊(duì)列取得該條消息數(shù)據(jù);根據(jù)廣播消息配置文件,廣播監(jiān)聽(tīng)插件把該條消息數(shù)據(jù)保存到訂閱端微機(jī)裝置;接收消息的訂閱端應(yīng)用服務(wù)器向訂閱端微機(jī)裝置請(qǐng)求是否有他需要的消息數(shù)據(jù)送達(dá);確認(rèn)消息數(shù)據(jù)已經(jīng)送達(dá)后,訂閱端應(yīng)用服務(wù)器可以從訂閱端微機(jī)裝置取得該條消息數(shù)據(jù)。
本發(fā)明是基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下的方法,實(shí)現(xiàn)本發(fā)明方法所用的廣播端微機(jī)裝置、訂閱端微機(jī)裝置的硬件配置和操作系統(tǒng)如下CPU為Intel P4或者AMD Operon以上等級(jí);內(nèi)存最少為512MB;硬盤(pán)空間最少為2GB;主板是微機(jī)主板,該主板上安裝有網(wǎng)卡、USB端口、數(shù)據(jù)線插槽,網(wǎng)卡上設(shè)有網(wǎng)線接口;操作系統(tǒng)為MS Windows2000以上版本或Unix(包括Linux)系統(tǒng);實(shí)現(xiàn)本發(fā)明方法所用的廣播端應(yīng)用服務(wù)器和訂閱端應(yīng)用服務(wù)器的最低硬件配置和操作系統(tǒng)如下
CPU為IBMx365 2*XeonMP2.2G/內(nèi)存為4GB PC2701 ECC DDR SDRAM/硬盤(pán)為2*73G 1.5萬(wàn)轉(zhuǎn)Ultra320SCSI熱插拔硬盤(pán)/光驅(qū)為CDROM/2*1000M(3U)/EMC100G操作系統(tǒng)為MS Windows2000以上版本或Unix(包括Linux)系統(tǒng);所述的數(shù)據(jù)庫(kù)是建立在廣播端微機(jī)裝置和訂閱端微機(jī)裝置硬盤(pán)內(nèi)的,該硬盤(pán)通過(guò)數(shù)據(jù)線與主板連接;所述的廣播監(jiān)聽(tīng)插件安裝在訂閱端微機(jī)裝置的硬盤(pán)內(nèi),操作人員通過(guò)TCP/IP協(xié)議端口設(shè)定廣播監(jiān)聽(tīng)插件所要監(jiān)聽(tīng)的廣播端微機(jī)裝置的IP地址;操作人員通過(guò)TCP/IP協(xié)議端口設(shè)定消息代理器所要連接的廣播端微機(jī)裝置或訂閱端微機(jī)裝置的IP地址,消息代理器通過(guò)網(wǎng)絡(luò)與廣播端應(yīng)用服務(wù)器或訂閱端應(yīng)用服務(wù)器連接。
本實(shí)施例中所述的數(shù)據(jù)庫(kù)的型號(hào)為PostgreSQL8.0。
本實(shí)施例中所述的廣播監(jiān)聽(tīng)插件是一個(gè)用JAVA語(yǔ)言實(shí)現(xiàn)的AMQ(ApacheActiveMQ Server)插件。計(jì)算機(jī)操作人員將該廣播監(jiān)聽(tīng)插件安裝在訂閱端微機(jī)裝置內(nèi),并通過(guò)TCP/IP通訊協(xié)議端口設(shè)定廣播監(jiān)聽(tīng)插件指向所要監(jiān)聽(tīng)的廣播端微機(jī)裝置;該廣播監(jiān)聽(tīng)插件可簡(jiǎn)化并統(tǒng)一訂閱端應(yīng)用服務(wù)器中代碼的開(kāi)發(fā)與系統(tǒng)的設(shè)定,達(dá)到消息集中化廣播。所述的廣播監(jiān)聽(tīng)插件中所有的文檔的實(shí)例在以下環(huán)境下測(cè)試通過(guò)Apache AMQ 4.01Sun JDK 1.5.06Windows XP sp2在本實(shí)施例中配置AMQ廣播監(jiān)聽(tīng)插件的方法如下1.AMQ廣播監(jiān)聽(tīng)插件通過(guò)Spring的ioc容器注入到AMQ服務(wù)進(jìn)程中進(jìn)行工作。
2.Bean id=″listenAndCatch″是廣播監(jiān)聽(tīng)插件的配置。
″fromIp″是設(shè)置消息保存了目的地AMQ服務(wù)器IP″forwardConf″是廣播消息的配置文件名。該配置文件必須放在AMQ服務(wù)器的conf目錄下。
該配置文件內(nèi)容如下UseForwardList=listener1,listener2listener1=tcp://10.1.1.13:61616 queue TEST_19FROM13.Queuelistener2=tcp://10.1.1.13:61616 topic TEST_FROM13.Topic
對(duì)該配置文件的內(nèi)容進(jìn)行說(shuō)明UseForwardList指明,有兩臺(tái)服務(wù)器需要對(duì)他們的消息進(jìn)行的廣播操作。分別是listener1和listener2,用半角的逗號(hào)分隔(”,”)。
其中具體的設(shè)置用空格分隔,參數(shù)說(shuō)明如下廣播端應(yīng)用服務(wù)器IP使用的消息方式(queue或topic)使用的消息隊(duì)列名listener1=tcp://10.1.1.13:61616 queue TEST_19FROM13.Queuelistener1的設(shè)置說(shuō)明,廣播端的應(yīng)用服務(wù)器IP為tcp://10.1.1.13:61616,消息方式使用queue方式(默認(rèn)方式為Queue),隊(duì)列名為T(mén)EST_19FROM13.Queue。
本實(shí)施例中所述的廣播消息代理器和訂閱消息代理器是消息數(shù)據(jù)包的接收處理站,其作用是確保正確的對(duì)消息數(shù)據(jù)包進(jìn)行分發(fā);在本實(shí)施例中廣播消息代理器和訂閱消息代理器是安裝在廣播端微機(jī)裝置和訂閱端微機(jī)裝置內(nèi)部的軟件控件,該軟件控件是基于美國(guó)Sun公司JMS 1.1規(guī)范基礎(chǔ)上的開(kāi)源軟件Apache ActiveMQ。
本實(shí)施例中所述的消息部署描述文件是記錄要監(jiān)聽(tīng)的遠(yuǎn)程消息系統(tǒng)網(wǎng)絡(luò)(廣播端微機(jī)裝置)的地址與消息隊(duì)列代號(hào),消息部署操作人員將消息部署描述文件編輯在訂閱端微機(jī)裝置內(nèi)的訂閱消息代理器內(nèi)。
本實(shí)施例中所述的仿真發(fā)送是廣播監(jiān)聽(tīng)插件模擬廣播消息代理器向訂閱消息代理器發(fā)送消息數(shù)據(jù)包的過(guò)程。
本實(shí)施例中的各訂閱端微機(jī)裝置單獨(dú)與廣播端微機(jī)裝置連接,各訂閱端微機(jī)裝置之間不直接連接,各訂閱端應(yīng)用服務(wù)器之間也不直接連接,廣播端微機(jī)裝置對(duì)訂閱端微機(jī)裝置連接在廣播端微機(jī)裝置上的節(jié)點(diǎn)數(shù)目與位置不作具體限定,訂閱端微機(jī)裝置對(duì)訂閱端應(yīng)用服務(wù)器連接在訂閱端微機(jī)裝置上的節(jié)點(diǎn)數(shù)目與位置也不作具體限定,一個(gè)廣播端微機(jī)裝置至少與一個(gè)訂閱端微機(jī)裝置連接;一個(gè)訂閱端微機(jī)裝置至少與一個(gè)訂閱端應(yīng)用服務(wù)器連接。在整個(gè)消息廣播通信過(guò)程中,廣播端微機(jī)裝置作為消息的廣播者并不知道有多少訂閱端微機(jī)裝置與其連接,所以廣播端微機(jī)裝置不必作任何設(shè)定,就可以增加訂閱端微機(jī)裝置數(shù)目。
在本實(shí)施例中,所述的廣播端應(yīng)用服務(wù)器將消息數(shù)據(jù)包發(fā)送到廣播端微機(jī)裝置時(shí),消息數(shù)據(jù)包會(huì)儲(chǔ)存于數(shù)據(jù)庫(kù)內(nèi),等待訂閱端微機(jī)裝置讀取,而訂閱端微機(jī)裝置中的廣播監(jiān)聽(tīng)插件會(huì)依據(jù)訂閱清單文件監(jiān)聽(tīng)廣播消息代理器,對(duì)廣播端微機(jī)裝置傳來(lái)的消息數(shù)據(jù)包自行決定是否接收。由于廣播端微機(jī)裝置采用先儲(chǔ)存設(shè)置,所以當(dāng)訂閱端微機(jī)裝置因網(wǎng)絡(luò)中斷或訂閱端微機(jī)裝置本身暫停運(yùn)行,而無(wú)法向廣播端微機(jī)裝置接收消息數(shù)據(jù)包時(shí)不會(huì)丟失數(shù)據(jù);等待故障解除后,訂閱端微機(jī)裝置恢復(fù)運(yùn)行后,訂閱端微機(jī)裝置還是可以從廣播端微機(jī)裝置內(nèi)的數(shù)據(jù)庫(kù)里提取出消息數(shù)據(jù)包并接收。
本實(shí)施例中,一個(gè)消息數(shù)據(jù)包可以同時(shí)被多個(gè)訂閱端微機(jī)裝置訂閱。當(dāng)消息數(shù)據(jù)包被訂閱此消息的訂閱端應(yīng)用服務(wù)器執(zhí)行閱讀成功后,訂閱消息代理器會(huì)在數(shù)據(jù)庫(kù)更新并提示此消息數(shù)據(jù)包已被閱讀。若沒(méi)有被訂閱端應(yīng)用服務(wù)器閱讀成功,訂閱代理器會(huì)每隔一段時(shí)間觸發(fā)提示該訂閱端應(yīng)用服務(wù)器的操作人員閱讀該消息數(shù)據(jù)包,直到此消息被成功閱讀為止。
參見(jiàn)圖2,本發(fā)明的方法落實(shí)在應(yīng)用處理最佳實(shí)踐上,就是集團(tuán)總部透過(guò)消息平臺(tái)對(duì)所有子公司進(jìn)行高效的信息通信與管理。位于集團(tuán)總部廣播端微機(jī)裝置,只需負(fù)責(zé)把消息發(fā)布出去,各子公司訂閱端微機(jī)裝置則從集團(tuán)總部把消息數(shù)據(jù)包接收下去并調(diào)用訂閱端應(yīng)用服務(wù)器處理總部傳下來(lái)的消息數(shù)據(jù)包。集團(tuán)總部廣播端微機(jī)裝置僅負(fù)責(zé)消息數(shù)據(jù)包傳達(dá),子公司的訂閱端微機(jī)裝置負(fù)責(zé)接收,集團(tuán)總部廣播端微機(jī)裝置對(duì)子公司訂閱端微機(jī)裝置節(jié)點(diǎn)的數(shù)目與位置不作具體限定。
集團(tuán)總部ERP系統(tǒng)與所屬子公司ERP應(yīng)用服務(wù)器的數(shù)據(jù)通信都是透過(guò)廣播端微機(jī)裝置和訂閱端微機(jī)裝置來(lái)實(shí)現(xiàn)。子公司的MES系統(tǒng)與ERP系統(tǒng)分別是.Net與Java技術(shù)平臺(tái),廣播端微機(jī)裝置和訂閱端微機(jī)裝置不僅可以做為這兩個(gè)子公司應(yīng)用服務(wù)器之間的數(shù)據(jù)通信平臺(tái),也可以是子公司應(yīng)用服務(wù)器與集團(tuán)總部ERP應(yīng)用服務(wù)器之間溝通的平臺(tái)。
權(quán)利要求
1.一種消息廣播通信方法,其特征在于,該方法是基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下的一個(gè)廣播端微機(jī)裝置與多個(gè)訂閱端微機(jī)裝置之間的消息廣播通信方法,所述廣播端微機(jī)裝置處于一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置廣播端應(yīng)用服務(wù)器、廣播端微機(jī)裝置、廣播消息代理器;所述訂閱端微機(jī)裝置處于另一個(gè)區(qū)域網(wǎng)環(huán)境中,該區(qū)域網(wǎng)環(huán)境中配置訂閱端微機(jī)裝置、訂閱消息代理器、訂閱端應(yīng)用服務(wù)器;所述廣播端微機(jī)裝置與所述訂閱端微機(jī)裝置處于一個(gè)廣域網(wǎng)環(huán)境中并實(shí)現(xiàn)網(wǎng)絡(luò)連接,所述消息廣播通信方法的步驟是A、制定一個(gè)消息部署描述文件,將該消息部署描述文件部署到訂閱端微機(jī)裝置中的訂閱消息代理器;該消息部署描述文件包括消息用戶名、消息用戶路徑;制定一個(gè)廣播消息配置文件,將該廣播消息配置文件存入廣播端微機(jī)裝置中的廣播消息代理器;該廣播消息配置文件包括消息用戶名、消息用戶路徑;B、所述廣播端應(yīng)用服務(wù)器根據(jù)操作命令生成一個(gè)消息數(shù)據(jù)包,該消息數(shù)據(jù)包中裝載消息定義文件、消息屬性、消息主體;由廣播端應(yīng)用服務(wù)器將該消息數(shù)據(jù)包發(fā)送到廣播端微機(jī)裝置中的廣播消息代理器;C、該廣播消息代理器通過(guò)數(shù)據(jù)線將消息數(shù)據(jù)包儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù);D、所述訂閱端微機(jī)裝置通過(guò)安裝在其內(nèi)部的廣播監(jiān)聽(tīng)插件對(duì)所述廣播端微機(jī)裝置進(jìn)行監(jiān)聽(tīng),當(dāng)廣播監(jiān)聽(tīng)插件監(jiān)聽(tīng)到有消息數(shù)據(jù)包發(fā)送到廣播消息代理器并儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù)以后,所述訂閱端微機(jī)裝置解析廣播端微機(jī)裝置存放在其數(shù)據(jù)庫(kù)的消息數(shù)據(jù);E、所述訂閱端微機(jī)裝置根據(jù)所述消息數(shù)據(jù)內(nèi)容進(jìn)行運(yùn)算,決定是否把該消息數(shù)據(jù)接收下來(lái);F、若是所述訂閱端微機(jī)裝置所需要的消息數(shù)據(jù),驅(qū)動(dòng)所述廣播監(jiān)聽(tīng)插件將該消息數(shù)據(jù)取回,該廣播監(jiān)聽(tīng)插件仿真對(duì)所述訂閱消息代理器發(fā)送所述消息數(shù)據(jù);G、所述訂閱消息代理器將接收下來(lái)的消息數(shù)據(jù)先存入數(shù)據(jù)庫(kù),然后解析所述消息部署描述文件,根據(jù)該消息數(shù)據(jù)生成一個(gè)訂閱清單,將該訂閱清單發(fā)送到訂閱端應(yīng)用服務(wù)器;H、當(dāng)所述消息數(shù)據(jù)被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行成功后,所述訂閱消息代理器會(huì)在訂閱端微機(jī)裝置的數(shù)據(jù)庫(kù)更新此筆消息已被消化;I、如果所述消息數(shù)據(jù)沒(méi)有被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行,所述訂閱消息代理器會(huì)每隔一段時(shí)間觸發(fā)一次訂閱該消息的訂閱端應(yīng)用服務(wù)器去消化該筆消息,直到該消息被成功執(zhí)行為止;所述的廣播端應(yīng)用服務(wù)器、廣播端微機(jī)裝置、訂閱端微機(jī)裝置、訂閱端應(yīng)用服務(wù)器中至少包括一中央處理器、一系統(tǒng)主板、存儲(chǔ)器及匹配的操作系統(tǒng);所述廣播端微機(jī)裝置、訂閱端微機(jī)裝置中安裝AMQ軟件程序。
2.根據(jù)權(quán)利要求1所述的消息廣播通信方法,其特征在于所述的廣播監(jiān)聽(tīng)插件是一個(gè)用JAVA語(yǔ)言實(shí)現(xiàn)的與AMQ軟件程序匹配的插件,該廣播監(jiān)聽(tīng)插件至少具備以下性能廣播監(jiān)聽(tīng)插件根據(jù)廣播消息配置文件檢測(cè)所述廣播端微機(jī)裝置有沒(méi)有需要廣播的消息;確定有消息需要被廣播后,廣播監(jiān)聽(tīng)插件從廣播端微機(jī)裝置的消息隊(duì)列取得該條消息;根據(jù)廣播消息配置文件,廣播監(jiān)聽(tīng)插件把該條消息保存到訂閱端微機(jī)裝置;接收消息的訂閱端應(yīng)用服務(wù)器向訂閱端微機(jī)裝置請(qǐng)求是否有他需要的消息送達(dá);確認(rèn)消息已經(jīng)送達(dá)后,訂閱端應(yīng)用服務(wù)器可以從訂閱端微機(jī)裝置取得該條消息。
3.根據(jù)權(quán)利要求1所述的消息廣播通信方法,其特征在于所述的數(shù)據(jù)庫(kù)的型號(hào)為PostgreSQL8.0。
4.根據(jù)權(quán)利要求1所述的消息廣播通信方法,其特征在于所述的廣播消息代理器是安裝在廣播端微機(jī)裝置內(nèi)部的軟件控件,所述訂閱消息代理器是安裝在訂閱端微機(jī)裝置內(nèi)部的軟件控件,該軟件控件是基于美國(guó)Sun公司JMS1.1規(guī)范基礎(chǔ)上的開(kāi)源軟件Apache ActiveMQ。
5.根據(jù)權(quán)利要求1所述的消息廣播通信方法,其特征在于所述的消息部署描述文件是記錄要監(jiān)聽(tīng)的遠(yuǎn)程消息系統(tǒng)網(wǎng)絡(luò)地址與消息隊(duì)列代號(hào),消息部署操作人員將消息部署描述文件編輯在訂閱端微機(jī)裝置內(nèi)的訂閱消息代理器內(nèi)。
全文摘要
本發(fā)明涉及一種消息廣播通信方法,基于TCP/IP通訊協(xié)議網(wǎng)域環(huán)境下的一個(gè)廣播端微機(jī)裝置與多個(gè)訂閱端微機(jī)裝置之間的消息廣播通信方法,廣播端微機(jī)裝置處于一個(gè)區(qū)域網(wǎng)環(huán)境中,訂閱端微機(jī)裝置處于另一個(gè)區(qū)域網(wǎng)環(huán)境中;將該消息數(shù)據(jù)包發(fā)送到廣播端微機(jī)裝置中的廣播消息代理器,該廣播消息代理器通過(guò)數(shù)據(jù)線將消息數(shù)據(jù)包儲(chǔ)存到廣播端微機(jī)裝置中的數(shù)據(jù)庫(kù);訂閱端微機(jī)裝置通過(guò)安裝在其內(nèi)部的廣播監(jiān)聽(tīng)插件對(duì)所述廣播端微機(jī)裝置進(jìn)行監(jiān)聽(tīng),訂閱消息代理器將接收下來(lái)的消息數(shù)據(jù)先存入數(shù)據(jù)庫(kù),當(dāng)所述消息數(shù)據(jù)被訂閱該消息的訂閱端應(yīng)用服務(wù)器執(zhí)行成功后,所述訂閱消息代理器會(huì)在訂閱端微機(jī)裝置的數(shù)據(jù)庫(kù)更新此筆消息已被消化。
文檔編號(hào)H04L29/06GK101013949SQ20061016552
公開(kāi)日2007年8月8日 申請(qǐng)日期2006年12月21日 優(yōu)先權(quán)日2006年12月21日
發(fā)明者謝馬林, 吳文彬, 顧根華, 王保紅, 張蔚 申請(qǐng)人:建龍鋼鐵控股有限公司