国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于IPMSG的消息服務設計與實現(xiàn)

2013-04-29 18:59:55單春燕
中國管理信息化 2013年8期
關鍵詞:WEB服務線程

單春燕

[摘要]通過對相關通信技術的研究,結合目前油田普遍應用的FeiQ通信軟件及相應的IPMSG通信協(xié)議,研究了在自主開發(fā)的應用系統(tǒng)中發(fā)送消息到用戶FeiQ通信軟件的方法,并采用Web服務技術實現(xiàn)了消息發(fā)送功能的共享應用。針對非在線用戶,通過創(chuàng)建Windows服務程序,采用線程實現(xiàn)了消息的轉存以及對網(wǎng)絡中新上線用戶的監(jiān)聽,進而實現(xiàn)對未成功發(fā)送的消息的二次轉發(fā)。

[關鍵詞]IPMSG協(xié)議;Web服務;Windows服務;線程

doi:10.3969/j.issn.1673-0194.2013.08.027

[中圖分類號]F270.7;TP393[文獻標識碼]A[文章編號]1673-0194(2013)08-0051-02

1 引 言

在油田生產(chǎn)、管理過程中,各部門之間的業(yè)務是環(huán)環(huán)相扣、息息相關的,基于業(yè)務過程的軟件,如:公文流轉、項目審批等系統(tǒng),一般都涉及多個不同的用戶,文檔、信息或任務需要在多個用戶之間流轉,流轉過程的連續(xù)性是保證工作效率的前提。因此,當有新的任務到達某個用戶時,需要及時通知該用戶。目前,一般采用電話通知的方式,當任務量大、用戶多時,這種方式效率較低,而且容易造成遺漏。因此,有必要探索一種新的方式,使得系統(tǒng)能夠自動地提醒用戶及時處理新的任務。

2 技術分析

IPMSG協(xié)議是FeiQ軟件和飛鴿傳書軟件為實現(xiàn)通信所制訂的通信協(xié)議,IPMSG規(guī)定通信雙方的數(shù)據(jù)包格式為“Ver(1): PacketNo:SenderName:SenderHost:CommandNo:AdditionalSection”,解釋為:“版本:包編號:發(fā)送者名字:發(fā)送主機:命令編號:附加信息區(qū)域”。其中,CommandNo為IPMSG預定義的命令。FeiQ通信時采用UDP連接方式將以上格式的信息通過2425端口發(fā)送到目標主機。目標主機對信息進行解析,根據(jù)CommandNo決定對信息如何處理。

基于以上分析,用戶客戶端直接采用FeiQ軟件,避免客戶端消息提醒軟件的開發(fā)工作。為了避免類似系統(tǒng)之間的重復開發(fā),達到功能共享的目的,根據(jù)IPMSG協(xié)議實現(xiàn)消息發(fā)送功能之后,采用Web服務的方式進行封裝和發(fā)布,為應用系統(tǒng)提供統(tǒng)一的調(diào)用接口。對不在線用戶,需要實現(xiàn)消息的存儲、上線行為的監(jiān)聽和消息的再次發(fā)送,采用Windows服務來實現(xiàn)。

3 服務設計

3.1 Web服務設計

首先,遵循IPMSG協(xié)議,采用UDP通信方式,開發(fā)Web服務FeiQMessage,提供Send(IP,Message)操作,為應用提供消息發(fā)送服務。當有重要信息需要提醒用戶時,由應用系統(tǒng)根據(jù)上下語境,自動生成消息內(nèi)容,把需要發(fā)送的消息與發(fā)送目標的IP地址傳遞給服務,由服務實現(xiàn)消息的發(fā)送。

發(fā)送消息時數(shù)據(jù)包中的CommandNo為:IPMSG_SENDMSG + IPMSG_SENDCHECKOPT,IPMSG_SENDMSG告訴對方發(fā)送的內(nèi)容是一條消息,對方會把消息內(nèi)容用彈出提示框的形式顯示出來。IPMSG_SENDCHECKOPT要求對方確認收到后回復一條信息,如果用戶在線,會自動回復一條確認信息,不在線則不會有返回信息。FeiQMessage服務通過該指令可以判斷用戶是否在線,對不在線用戶的消息,把消息轉發(fā)給Windows服務來處理。

3.2 Windows服務設計

開發(fā)Windows服務TransferMessageFeiQ,封裝了2個功能:SaveMessage和SendMessage。①Windows服務采用主線程不間斷地監(jiān)聽2425端口,如果接收到CommandNo為IPMSG_SENDMSG的消息則創(chuàng)建新的子線程SaveMessage保存信息到數(shù)據(jù)庫中;②當有用戶上線時,用戶FeiQ軟件在網(wǎng)絡中廣播告知上線,Windows服務接收到CommandNo為IPMSG_BR_ENTRY的信息,則創(chuàng)建新的子線程SendMessage從數(shù)據(jù)庫中檢索屬于該用戶的信息并發(fā)送到該用戶;③而主線程在創(chuàng)建完子線程之后繼續(xù)監(jiān)聽端口并重復以上操作。

通過Windows服務實現(xiàn)了用戶上線的監(jiān)聽,從而實現(xiàn)了消息的存儲和再次轉發(fā),確保重要信息通知到用戶的功能。圖1是服務之間內(nèi)部的調(diào)用關系實例。C1用戶在操作應用程序時,產(chǎn)生消息需要通知C2和C3,通過調(diào)用Web服務成功發(fā)送信息到C2并獲取到返回的確認信息。由于C3不在線發(fā)送失敗,則Web服務將消息轉發(fā)給Windows服務,通過SaveMessage存入數(shù)據(jù)庫中。當C3上線時,自動廣播上線通知到Windows服務,Windows服務通過SendMessage線程獲取屬于該用戶的信息并發(fā)送給C3。

猜你喜歡
WEB服務線程
Linux 下多線程的方案實現(xiàn)與對比
淺談linux多線程協(xié)作
基于Web服務的SPSS與.NET系統(tǒng)集成開發(fā)
軟件(2016年4期)2017-01-20 09:28:12
基于線性回歸的航班延誤預測研究與系統(tǒng)開發(fā)
教學工作量管理系統(tǒng)的設計與實現(xiàn)
一種基于SOA的web異構數(shù)據(jù)集成方法研究
基于Agent的自演化Web服務機制研究
軟件導刊(2015年11期)2015-12-07 06:14:42
基于ARM平臺的嵌入式Web服務器設計
軟件導刊(2015年7期)2015-08-06 12:41:57
基于上下文定界的Fork/Join并行性的并發(fā)程序可達性分析*
Linux線程實現(xiàn)技術研究
右玉县| 盘锦市| 磐石市| 济源市| 崇明县| 拜泉县| 庄河市| 罗城| 武穴市| 广宗县| 蕉岭县| 灵寿县| 信宜市| 南宫市| 盱眙县| 卢氏县| 凭祥市| 奉节县| 海南省| 惠东县| 大渡口区| 渝中区| 江永县| 灌南县| 泾源县| 楚雄市| 西畴县| 荆门市| 鸡泽县| 福建省| 牙克石市| 昌平区| 红原县| 杨浦区| 广东省| 大名县| 宁都县| 松滋市| 方城县| 霍邱县| 哈尔滨市|