999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數(shù)據(jù)分發(fā)系統(tǒng)的研究與設計

2012-10-08 07:29:10劉海燕程郁文楊健康
裝甲兵工程學院學報 2012年2期
關鍵詞:信息系統(tǒng)

劉海燕,程郁文,楊健康

(裝甲兵工程學院信息工程系,北京100072)

目前,大型的信息系統(tǒng)正逐步向構件化、服務化的體系結構方向發(fā)展,這種體系便于軟件的開發(fā)、部署和擴展,可以為應用程序提供即插即用的功能。構件化、服務化的軟件迫切需要研究分布式環(huán)境下的數(shù)據(jù)分發(fā)技術。所謂數(shù)據(jù)分發(fā),是指數(shù)據(jù)的生產(chǎn)者通過各種方式將數(shù)據(jù)傳送到用戶的過程。由于網(wǎng)絡技術的普及,建立基于網(wǎng)絡的數(shù)據(jù)分發(fā)服務成為數(shù)據(jù)分發(fā)的發(fā)展趨勢。軍隊指揮信息系統(tǒng)是基于軍事通信網(wǎng)的大型分布式信息系統(tǒng),數(shù)據(jù)傳輸是戰(zhàn)場偵察情報、指揮控制、維修保障業(yè)務軟件運行的基礎,因此目前基于分發(fā)服務的軟件體系結構得到廣泛應用,而信息分發(fā)服務也成為軍事信息系統(tǒng)體系中平臺性、支撐性軟件構件。

對象管理組織(Object Management Group,OMG)為分布式實時系統(tǒng)制訂了一個數(shù)據(jù)分發(fā)服務規(guī)范(Data Distribution Service,DDS)[1]。DDS 描述了2個層次的接口:低層的以數(shù)據(jù)為中心的發(fā)布訂購層(Data Centric Publish Subscribe,DCPS),用于將數(shù)據(jù)發(fā)布者發(fā)布的信息高效準確地傳送給數(shù)據(jù)訂購者,是DDS規(guī)范的核心;高層的數(shù)據(jù)本地重構層(Data Local Reconstruction Layer,DLRL)允許將服務簡單地集成到應用層,該層是可選的。DDS還定義了一套服務質(zhì)量(Quality of Service,QoS)策略,能基于QoS進行數(shù)據(jù)的訂購和分發(fā)。OpenDDS軟件是OMG對DDS的DCPS層的一個開源實現(xiàn)。我國也制定了相關的數(shù)據(jù)共享標準——數(shù)據(jù)分發(fā)服務指南與規(guī)范[2],該標準對基于因特網(wǎng)的數(shù)據(jù)分發(fā)體系進行了描述,對相關的環(huán)節(jié)和內(nèi)容提出了要求。在我國,近些年一些科研機構致力于數(shù)據(jù)分發(fā)服務的體系結構、實現(xiàn)技術的研究[3-4],取得了一定的成果。在實際應用中,有越來越多的大型軟件系統(tǒng)開始采用基于數(shù)據(jù)分發(fā)服務中間件的軟件體系結構[5-6]。

盡管目前既有開源的分發(fā)系統(tǒng),如OpenDDS,又有商用的分發(fā)中間件,但可能由于分發(fā)系統(tǒng)太復雜,或具體應用有具體的傳輸環(huán)境和傳輸需求,因此許多系統(tǒng)都開發(fā)自己的分發(fā)中間件,在滿足自定義的信息格式、傳輸質(zhì)量需求的基礎上,提供一定范圍的通用性。為滿足局域網(wǎng)中的分布式系統(tǒng)各進程間消息交流的需求,筆者參考DDS中DCPS規(guī)范的內(nèi)容,根據(jù)應用系統(tǒng)的環(huán)境和對數(shù)據(jù)傳輸質(zhì)量的要求,設計實現(xiàn)了一個基于消息的分發(fā)服務中間件。該中間件能提供進程間并發(fā)、異步、可靠、按序的消息傳輸功能,使上層的進程能專注于各自業(yè)務流程的實現(xiàn)。

1 數(shù)據(jù)分發(fā)系統(tǒng)結構

數(shù)據(jù)分發(fā)服務實現(xiàn)信息的訂購、發(fā)布機制,提供用戶按需訂購信息、消息按需推送的機制。按消息的分發(fā)機制劃分,數(shù)據(jù)分發(fā)服務中間件可以分為2大類:集中式分發(fā)系統(tǒng)和分布式分發(fā)系統(tǒng)。

1.1 集中式分發(fā)系統(tǒng)

在數(shù)據(jù)分發(fā)系統(tǒng)中存在一個分發(fā)服務器,這個服務器保存了各個節(jié)點間通信所必須的信息,如客戶端標志、訂購信息等。客戶端應用程序通過客戶端分發(fā)中間件接入分發(fā)系統(tǒng),實現(xiàn)客戶的注冊、信息的訂購和發(fā)布。信息實際傳輸可以使用點到點方式直接送達,也可以通過服務器節(jié)點轉(zhuǎn)發(fā)。集中式數(shù)據(jù)分發(fā)系統(tǒng)的結構如圖1所示。

圖1 集中式數(shù)據(jù)分發(fā)系統(tǒng)的結構

集中式結構的優(yōu)點是便于系統(tǒng)內(nèi)各應用程序間的協(xié)調(diào)控制;缺點是存在單一故障點,一旦分發(fā)服務器癱瘓,則整個分發(fā)系統(tǒng)也隨之癱瘓。

1.2 分布式分發(fā)系統(tǒng)

在數(shù)據(jù)分發(fā)系統(tǒng)中所有節(jié)點都是對等的,每個節(jié)點都有一個發(fā)布/訂購信息的拷貝,節(jié)點的注冊和信息的訂購都在本地完成,由分發(fā)中間件完成信息的組播分發(fā),以保證所有節(jié)點信息的一致性和完整性。在進行信息發(fā)布時,應用程序首先寫到本地,再由分發(fā)服務中間件根據(jù)訂購信息將數(shù)據(jù)分發(fā)給訂購者。分布式分發(fā)系統(tǒng)的結構如圖2所示。

圖2 分布式數(shù)據(jù)分發(fā)系統(tǒng)的結構

2 數(shù)據(jù)分發(fā)系統(tǒng)InfoSubDstrSys

2.1 系統(tǒng)設計目標

本分發(fā)系統(tǒng)的目的是為一類運行在局域網(wǎng)中的分布式協(xié)同系統(tǒng)提供進程間的消息分發(fā)中間件,在方便進程間協(xié)同的基礎上,使上層程序更專注于業(yè)務流程的設計。這類系統(tǒng)運行在局域網(wǎng)中,需要交流數(shù)據(jù)的進程數(shù)有數(shù)十個;進程間交流的多為一些協(xié)同和狀態(tài)消息,消息長度一般為幾十到幾百字節(jié);消息的傳輸需要有一定的可靠性和時序性;此外,各進程需要有并發(fā)和異步通信能力。為滿足上述需求,筆者設計了數(shù)據(jù)分發(fā)軟件InfoSubDstrSys。該分發(fā)系統(tǒng)采用集中式的結構,一個分發(fā)服務器獨立運行,分發(fā)客戶端以動態(tài)鏈接庫的形式由上層應用程序調(diào)用;客戶端與服務器間采用TCP傳輸協(xié)議,以消息號定義消息的類別,傳輸信息的格式為消息號、消息長度、消息體;采用IO端口映射技術支持多進程的并發(fā)通信;通過事件機制和回調(diào)函數(shù)技術為進程提供異步通信功能。

2.2 系統(tǒng)的設計與實現(xiàn)

數(shù)據(jù)分發(fā)系統(tǒng)InfoSubDstrSys由2部分組成:分發(fā)服務器InfoSubDstrSrv和客戶端分發(fā)中間件InfoS-ubDstrCli。二者底層通過TCP協(xié)議實現(xiàn)信息的傳輸。

分發(fā)服務器InfoSubDstrSrv采用IO端口映射套接字技術實現(xiàn)多套接字的并發(fā)通信。服務器主要由3個模塊組成:主控模塊、連接管理模塊和消息分發(fā)模塊。

1)主控模塊負責初始化套接字環(huán)境、線程池管理、服務器控制命令處理等任務。

2)連接管理模塊負責接收客戶端分發(fā)中間件的連接請求,建立并維護客戶連接套接字表以及套接字相關的數(shù)據(jù)結構。

3)消息分發(fā)模塊是分發(fā)服務器的核心部分,由IO端口關聯(lián)的線程池中的線程執(zhí)行。它監(jiān)聽所有通信事件,接收客戶端發(fā)來的消息,對接收到的客戶端消息進行解析,根據(jù)消息類型進行相應的處理。建立并維護客戶的訂購信息庫,完成消息的訂購、訂購的取消,根據(jù)訂購信息進行消息轉(zhuǎn)發(fā)等功能。

客戶端分發(fā)中間件InfoSubDstrCli主要由2部分組成:消息分發(fā)模塊和應用程序接口模塊。其中:消息分發(fā)模塊負責監(jiān)聽并接收分發(fā)服務器發(fā)來的消息;應用程序接口模塊則提供用戶應用程序使用分發(fā)系統(tǒng)的API函數(shù)。

客戶端分發(fā)中間件的主體是導出類CInfoSub-DistrbCli和回調(diào)函數(shù)_CallBackFun的定義。回調(diào)函數(shù)用于實現(xiàn)對接收消息的解析和處理,是一個全局函數(shù),函數(shù)定義如下:

Typedef int_stdcall_CallBackFun(char*recvBuf,unsigned short recvLen)。

每個應用都要根據(jù)自己的特定需求定義自己的回調(diào)函數(shù)。

導出類CInfoSubDistrbCli的定義如下。

友元函數(shù)msgHandler負責異步接收消息和回調(diào)函數(shù)的調(diào)度,從而實現(xiàn)消息的推送功能。

3 基于數(shù)據(jù)分發(fā)服務的應用開發(fā)

3.1 基于InfoSubDstrSys的應用開發(fā)步驟

分發(fā)服務器InfoSubDstrSys作為一個獨立的進程運行在一臺主機上,處理多個不同的客戶的注冊、消息訂購和信息的分發(fā)。

客戶端分發(fā)中間件以動態(tài)鏈接庫的形式存在,應用程序通過動態(tài)鏈接庫提供的API接口接入分發(fā)系統(tǒng)。應用程序使用分發(fā)系統(tǒng)的一般流程如下。

1)定義回調(diào)函數(shù),可以對不同的消息定義不同的回調(diào)函數(shù)。

2)聲明客戶端對象。

CInfoSubDistrbCli client;

3)注冊客戶端。

client.registerCLi(SrvIP,SrvPort);∥參數(shù)為分發(fā)

服務器的IP地址和端口號

4)訂購消息或取消消息訂購。

client.MsgSubscribe(msgno,myCallBackFun);∥訂購消息,參數(shù)為消息號和回調(diào)函數(shù)

client.MsgSubscribeCancel(msgno);∥取消訂購,參數(shù)為消息號

5)發(fā)布消息。

client.sendMsg(msgno,m_sendBuf,m_sendLen);∥參數(shù)為消息號、消息緩沖區(qū)和消息長度

6)客戶端取消注冊。

client.unRegisterCli();

其中,消息以消息號來區(qū)分,消息號是一個整數(shù),每個消息號對應一種消息。每個客戶可以訂購0個或者多個消息。在訂購一個消息時,需指定接收該類消息時的回調(diào)函數(shù)。不同消息的回調(diào)函數(shù)可以相同也可以不同。客戶端程序在注冊成功之后,可以隨時訂購或取消訂購某種消息。

3.2 基于InfoSubDstrSys的應用開發(fā)示例

圖3是一個基于InfoSubDstrSys實現(xiàn)的應用程序示例。界面上分別顯示了分發(fā)系統(tǒng)的基本功能。注冊按鈕對應客戶端的注冊,訂購、取消訂購按鈕分別對應消息的訂購和取消,發(fā)送消息按鈕將消息發(fā)送到分發(fā)服務器。每個客戶端將收到的消息實時顯示在界面上。

圖3 基于分發(fā)系統(tǒng)的應用示例

同時運行該程序的2個實例,如圖4、5所示。在圖4、5中,左端的應用訂購了1號消息,右端應用訂購了1號和2號消息。在圖4中,當右端應用發(fā)送2號消息“222”時,只有訂購了2號消息的應用收到了該消息;在圖5中,右端應用發(fā)送了1號消息“111”,可以看出2個應用都收到了該消息。

本示例僅演示了字符消息根據(jù)訂購需求進行的并發(fā)、異步、按序的分發(fā)過程。實際上,由于TCP傳輸協(xié)議對消息的類型和長度并不限制,因此該分發(fā)平臺可以用于任何類型、任何長度數(shù)據(jù)的分發(fā)。

圖4 只有右端應用收到2號消息

圖5 2個應用都收到1號消息

4 結論

該數(shù)據(jù)分發(fā)中間件已經(jīng)用于某仿真系統(tǒng)中,為系統(tǒng)的多個進程提供數(shù)據(jù)交換和共享服務。由于開發(fā)者不必關心信息交換的實現(xiàn)細節(jié),可以更專注于業(yè)務邏輯的開發(fā),因而提高了開發(fā)效率。該系統(tǒng)的不足是應用規(guī)模受限。因為該分發(fā)系統(tǒng)使用了集中式結構,僅有一個服務器,所以一般只用于局域網(wǎng)內(nèi)的應用系統(tǒng)中。進一步的研究應該關注如何設計多個協(xié)作的服務器,實現(xiàn)分布式結構的分發(fā)系統(tǒng),為大規(guī)模分布式系統(tǒng)提供信息分發(fā)服務。

[1]OMG.Data Distribution Service for Real-time Systems Version 1.2[EB/OL].(2007-01-01)[2011-10-25].http:∥www.omg.org

[2]SDS/T 2241_2004科學數(shù)據(jù)共享工程技術標準:數(shù)據(jù)分發(fā)服務指南與規(guī)范[S].

[3]盧傳富,蔡志明,夏學知.數(shù)據(jù)分發(fā)服務體系結構的研究[J].計算機與數(shù)字工程,2008,36(5):67-69.

[4]裘楷,沈棟,李娜,等.基于DCPS模型的數(shù)據(jù)分發(fā)服務DDS的研究[J].電子科技,2006(11):68-72.

[5]姚兵,蔡婷,李峻林,等.基于DDS模型的數(shù)據(jù)分發(fā)中間件的設計與實現(xiàn)[J].計算機工程與設計,2009,30(3):619-623.

[6]曹萬華,謝蓓,吳海昕,等.基于 DDS的發(fā)布/訂購中間件設計[J].計算機工程,2007,33(18):78-80.

猜你喜歡
信息系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 中文字幕天无码久久精品视频免费| 三级欧美在线| 色综合a怡红院怡红院首页| 91精品视频在线播放| 欧美第一页在线| 亚洲丝袜中文字幕| 成人免费午夜视频| 极品av一区二区| 免费人成网站在线高清| 中文字幕调教一区二区视频| 日本一区二区三区精品AⅤ| 国产第一页亚洲| 国产成年女人特黄特色大片免费| 国产在线观看成人91| 亚洲国产精品VA在线看黑人| 香蕉eeww99国产在线观看| 亚洲精品视频网| 呦视频在线一区二区三区| 伊人中文网| 亚洲中文精品久久久久久不卡| 国内精品手机在线观看视频| 亚洲国内精品自在自线官| 99久久精品免费看国产电影| 国产SUV精品一区二区6| 风韵丰满熟妇啪啪区老熟熟女| 亚洲成在线观看| 亚洲国内精品自在自线官| 国产精品综合色区在线观看| 国产系列在线| 久草视频福利在线观看| 亚洲第一色网站| 99精品国产电影| 国产一级毛片yw| 亚洲人成网18禁| 操操操综合网| 99re66精品视频在线观看| 亚洲精品国产日韩无码AV永久免费网 | 精品国产毛片| 日韩AV无码免费一二三区| av色爱 天堂网| 区国产精品搜索视频| 少妇露出福利视频| 伊人激情综合| 在线色国产| 成人毛片免费观看| 69免费在线视频| 国产亚洲欧美日韩在线一区二区三区| 中字无码av在线电影| 亚洲天堂精品视频| 在线日韩日本国产亚洲| 亚洲日本中文字幕天堂网| 国产精品国产主播在线观看| 欧美亚洲国产精品久久蜜芽| 996免费视频国产在线播放| 香蕉国产精品视频| 黄色福利在线| 国产精品吹潮在线观看中文| 伊人中文网| 午夜老司机永久免费看片| 国产精品蜜芽在线观看| 免费在线成人网| 日韩第八页| 制服丝袜 91视频| 天天综合天天综合| 色综合久久88| 国产精品欧美日本韩免费一区二区三区不卡| 中国精品久久| 国产人免费人成免费视频| 在线国产毛片| 欧洲av毛片| 成人国产精品视频频| 9久久伊人精品综合| 丰满的熟女一区二区三区l| 亚洲品质国产精品无码| 高清大学生毛片一级| 免费欧美一级| 国产超薄肉色丝袜网站| 又爽又大又黄a级毛片在线视频| 亚洲性影院| 伊人久久综在合线亚洲2019| 亚洲精品无码AV电影在线播放| 国产精品99一区不卡|