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

實(shí)時(shí)數(shù)據(jù)分發(fā)系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)

2011-05-17 09:09:10楊傳順錢幸存

楊傳順,錢幸存

(中國(guó)船舶重工集團(tuán)公司 江蘇自動(dòng)化研究所,江蘇 連云港 222006)

實(shí)時(shí)數(shù)據(jù)分發(fā)系統(tǒng)指采用數(shù)據(jù)分發(fā)服務(wù)DDS(Data Distribution Service)中間件的實(shí)時(shí)分布式系統(tǒng)。OMG的數(shù)據(jù)分發(fā)服務(wù)正逐漸成為采用實(shí)時(shí)發(fā)布-訂閱RTPS(Real Time Publish-Subscribe)協(xié)議的分布式系統(tǒng)的標(biāo)準(zhǔn),此標(biāo)準(zhǔn)的目的是提供一種通用的應(yīng)用層接口,能夠清楚地定義數(shù)據(jù)分發(fā)的服務(wù),提供一種在實(shí)時(shí)分布式計(jì)算環(huán)境中以數(shù)據(jù)為中心的通信規(guī)范,定義一個(gè)可擴(kuò)展、與平臺(tái)無(wú)關(guān)、與位置無(wú)關(guān)的基礎(chǔ)服務(wù)模型,以連接發(fā)布者和訂閱者,支持服務(wù)質(zhì)量(QoS)和屬性。該通信模型在空間上(節(jié)點(diǎn)可以在網(wǎng)絡(luò)中的任何地方)、時(shí)間上(發(fā)布后立即或稍微有些延遲后傳輸)、傳輸上(可根據(jù)帶寬流量控制可靠性,每個(gè)用戶可以管理自己數(shù)據(jù)傳輸?shù)臓顟B(tài))、功能上(多源的數(shù)據(jù)可以很容易地添加和刪除)都是松散耦合的。

1 數(shù)據(jù)分發(fā)服務(wù)

OMG的數(shù)據(jù)分發(fā)服務(wù)(DDS)的核心是以數(shù)據(jù)為中心的發(fā)布-訂閱 DCPS(Data-Centric Publish-Subscribe),即發(fā)布者能高效地將正確的信息傳遞給適當(dāng)?shù)挠嗛喺摺CPS定義了在實(shí)時(shí)分布式系統(tǒng)中運(yùn)行在異構(gòu)平臺(tái)上的標(biāo)準(zhǔn)接口的應(yīng)用程序能從系統(tǒng)的全局?jǐn)?shù)據(jù)空間讀/寫數(shù)據(jù)。具有以下特點(diǎn):

(1)強(qiáng)制類型的全局?jǐn)?shù)據(jù)空間

DDS創(chuàng)建一個(gè)全局性的數(shù)據(jù)空間,任何參與者使用數(shù)據(jù)類型接口高效自然地讀/寫數(shù)據(jù),讓每個(gè)訂閱者都可以訪問(wèn)到“最新”的數(shù)據(jù)。它還建立了一個(gè)名稱空間,讓參與者查找和共享數(shù)據(jù)的對(duì)象。為了提高可擴(kuò)展性,主題(Topic)可以包含多個(gè)獨(dú)立的數(shù)據(jù)通道稱為“關(guān)鍵字”(key)。這使得節(jié)點(diǎn)可以一次性訂閱到很多,可能是數(shù)以千計(jì)的相似的數(shù)據(jù)流。當(dāng)數(shù)據(jù)到達(dá)時(shí),中間件根據(jù)關(guān)鍵字排序,提供有效的處理。

(2)每個(gè)數(shù)據(jù)流可控的服務(wù)質(zhì)量

DDS允許控制“每個(gè)數(shù)據(jù)流”的服務(wù)質(zhì)量(QoS)。每對(duì)發(fā)布者——訂閱者之間可以建立獨(dú)立的QoS協(xié)議。DDS也具有獨(dú)特的允許應(yīng)用設(shè)計(jì)支持極其復(fù)雜的、靈活的數(shù)據(jù)流需求。QoS參數(shù)幾乎能控制DDS模型和基本的通信機(jī)制的每個(gè)方面。

(3)自動(dòng)發(fā)現(xiàn)和管理數(shù)據(jù)流

DDS能設(shè)計(jì)成自動(dòng)發(fā)現(xiàn)發(fā)布者和訂閱者的每一個(gè)主題,根據(jù)它們之間設(shè)置的QoS參數(shù)自動(dòng)建立數(shù)據(jù)流。DDS模型提供了快速透明的定位。這使得它非常適合用于系統(tǒng)動(dòng)態(tài)配置的變化。它能迅速發(fā)現(xiàn)新的節(jié)點(diǎn),新的節(jié)點(diǎn)上的新的參與者,新參與者的新的數(shù)據(jù)主題。能及時(shí)地清除掉過(guò)時(shí)的、失敗的節(jié)點(diǎn)和數(shù)據(jù)流。

(4)不可靠的無(wú)連接傳輸

DDS以不可靠的傳輸方式工作,如UDP或無(wú)線網(wǎng)絡(luò)。沒(méi)有任何設(shè)備需要中央服務(wù)器或特殊節(jié)點(diǎn)。高效、直接、點(diǎn)對(duì)點(diǎn)的通信、甚至多播,可以實(shí)現(xiàn)模型的每一個(gè)功能。

2 DDS的對(duì)象模型

圖1顯示了典型的DDS分布式應(yīng)用的關(guān)鍵對(duì)象,域(Domain)、域成員(DomainParticipant)、數(shù)據(jù)發(fā)送器(Data writer)和發(fā)布者(publisher)、訂閱者(Subscriber)和數(shù)據(jù)接收器(Data reader)、主題(Topic)組成。域成員對(duì)象指的是域內(nèi)參與應(yīng)用的成員,參與者可以在同一個(gè)域上進(jìn)行通信。

圖1 DDS的對(duì)象模型

發(fā)布者負(fù)責(zé)數(shù)據(jù)的發(fā)布,可以發(fā)布不同類型的數(shù)據(jù)。域成員通過(guò)發(fā)布者的數(shù)據(jù)發(fā)送器交流數(shù)據(jù)和改變數(shù)據(jù)類型。一旦新的數(shù)據(jù)值傳達(dá)給發(fā)布者,就由發(fā)布者決定何時(shí)執(zhí)行數(shù)據(jù)的發(fā)布,實(shí)際數(shù)據(jù)發(fā)布的執(zhí)行取決于發(fā)布者的服務(wù)質(zhì)量。

訂閱者接收發(fā)布者的數(shù)據(jù),并提供給域成員。訂閱者可接收和轉(zhuǎn)發(fā)不同的數(shù)據(jù)類型。要訪問(wèn)接收到的數(shù)據(jù),域成員必須通過(guò)和訂閱者相關(guān)的數(shù)據(jù)接收器。

數(shù)據(jù)發(fā)送器對(duì)象與數(shù)據(jù)接收器對(duì)象通過(guò)主題聯(lián)系。主題和數(shù)據(jù)類型以及數(shù)據(jù)本身的服務(wù)質(zhì)量(QoS)關(guān)聯(lián)。DomainParticipantFactory(域成員廠)用于創(chuàng)建和刪除域成員,域成員通過(guò) DomainParticipant::get_domain_id()綁定到域上,域成員可以創(chuàng)建和刪除主題、發(fā)布者和訂閱者;發(fā)布者用于強(qiáng)制創(chuàng)建和刪除數(shù)據(jù)發(fā)送器先前創(chuàng)建的主題的類型;訂閱者用于強(qiáng)制創(chuàng)建和刪除數(shù)據(jù)接收器先前創(chuàng)建的主題的類型;DataWriter::write()用來(lái)使應(yīng)用程序更新數(shù)據(jù)值;DataReader::take()用來(lái)從 DDS中間件中接收數(shù)據(jù)樣本。DDS的編程模型如圖2所示。

抽象的實(shí)體接口定義了域成員和域?qū)嶓w(DomainEntities)(即主題、發(fā)布者、數(shù)據(jù)發(fā)送器、訂閱者和數(shù)據(jù)接收器)支持的通用行為。get_qos()和set_qos()用來(lái)檢索和修改服務(wù)質(zhì)量;get_listener()可被DDS中間件用來(lái)探測(cè)和安裝用戶聽(tīng)眾的具體地位的條件。確切的服務(wù)質(zhì)量參數(shù)列表是針對(duì)每個(gè)具體的實(shí)體類型。

3 應(yīng)用軟件的設(shè)計(jì)和實(shí)現(xiàn)

RTI公司的DDS中間件是執(zhí)行數(shù)據(jù)分發(fā)服務(wù)標(biāo)準(zhǔn)的一個(gè)典型代表。下面采用該公司的DDS中間件并結(jié)合Demo程序(發(fā)布-訂閱的主題用圓形、三角形和方形的幾何圖形形象的表示),研究實(shí)時(shí)數(shù)據(jù)分發(fā)系統(tǒng)的軟件設(shè)計(jì)和實(shí)現(xiàn)。Demo程序的運(yùn)行界面如圖3所示。

3.1 應(yīng)用軟件的設(shè)計(jì)

一般情況下,一個(gè)應(yīng)用程序可以屬于多個(gè)域(如圖4所示),創(chuàng)建若干域成員,三個(gè)應(yīng)用程序在域A交流命令/控制數(shù)據(jù),其他三個(gè)應(yīng)用程序在域B中交流狀態(tài)數(shù)據(jù),其他兩個(gè)應(yīng)用程序是域C內(nèi)通信。創(chuàng)建多個(gè)域,可以提供有效的數(shù)據(jù)隔離。

DDS的主題是強(qiáng)制的數(shù)據(jù)類型。DDS中間件支持多語(yǔ)言的綁定,在 OMG的接口描述語(yǔ)言(IDL)中,定義類型TopicInfo。TopicInfo包含一個(gè)graphics變量——確定圖形的形狀和value變量——圖形的顏色。把graphics字段表記為關(guān)鍵字,讓DDS中間件區(qū)分不同圖形所更新的數(shù)據(jù)。

鑒于IDL類型定義,DDS的中間件提供的代碼生成器用來(lái)生成特定語(yǔ)言代碼來(lái)處理數(shù)據(jù)類型。生成的代碼將在目標(biāo)語(yǔ)言中包含類型定義 (在本文中使用C++語(yǔ)言)、特定標(biāo)準(zhǔn)類型的API、中間件執(zhí)行的特定代碼。對(duì)于TopicInfo數(shù)據(jù)類型,生成下列標(biāo)準(zhǔn)類:TopicInfoType-Support、TopicInfoDataWriter、TopicInfoDataReader。

3.2 應(yīng)用軟件的實(shí)現(xiàn)

(1)創(chuàng)建DomainParticipant綁定到域上

(2)注冊(cè)用戶的數(shù)據(jù)類型

TopicInfoTypeSupport::register_type()用來(lái)注冊(cè)數(shù)據(jù)類型,可以在DomainParticipant中使用。

(3)創(chuàng)建主題(Topics)

使用標(biāo)準(zhǔn)的DDS API創(chuàng)建命名主題綁定到注冊(cè)用戶的數(shù)據(jù)類型上。主題會(huì)自動(dòng)地在DataWriters和DataReaders之間建立一個(gè)數(shù)據(jù)流。

(4)創(chuàng)建 Publishers和 DataWriters

在給定的DomainParticipant上,創(chuàng)建 Publisher。一個(gè)Publishr可以有不同主題的DataWriters。DataWriter提供發(fā)送數(shù)據(jù)樣本的方法,管理輸入數(shù)據(jù)通道的生命周期。

(5)發(fā)送數(shù)據(jù)更新

對(duì)于給定的writer,使用::write()方法將新的數(shù)據(jù)值發(fā)布給 subscribers。

(6)創(chuàng)建 Subscribers和 DataReaders

在給定的 DomainParticipant,創(chuàng)建 Subscriber,一個(gè)Subscriber可以有不同主題的DataReaders。通過(guò)調(diào)用on_data_available()方法處理接收到的數(shù)據(jù)樣本。

(7)接收數(shù)據(jù)樣本

當(dāng)應(yīng)用程序檢索到數(shù)據(jù)樣本時(shí),調(diào)用::on_data_available()函數(shù)接收數(shù)據(jù);接收到topic_info數(shù)據(jù)時(shí),調(diào)用::take()函數(shù)匹配DDS中間件里的數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)。接收完數(shù)據(jù)樣本后,應(yīng)用程序通過(guò)調(diào)用::return_loan()函數(shù)返回。

(8)調(diào)整服務(wù)質(zhì)量(QoS)

在DataReader和DataWriter對(duì)象之間調(diào)整數(shù)據(jù)流的QoS參數(shù)設(shè)置,也可以通過(guò)get_qos()/set_qos()指定參數(shù)設(shè)置。

DataReaders可以要求不同程度的可靠性交付,從快速但不可靠到高可靠性順序交付。這為每個(gè)數(shù)據(jù)流提供了可靠性控制。

中間件可以通過(guò)QoS的OwnershipStrength參數(shù)自動(dòng)判斷多個(gè)DataWriters的同一主題所代表的信息。根據(jù)唯一性,一個(gè)通道上的一個(gè)主題只能由單一的DataWriter更新。DataReaders從DataWriter接收具有最高權(quán)值的數(shù)據(jù),并提供了自動(dòng)故障排除功能。如果一個(gè)高優(yōu)先級(jí)的DataWriter失敗,所有DataReaders立即接收較弱的備份DataWriter的更新數(shù)據(jù)。DataWriter也可以指定持續(xù)時(shí)間,通過(guò)QoS參數(shù)Lifespan(預(yù)期生存期限)標(biāo)示樣本是否過(guò)時(shí)。DDS可以定義許多QoS參數(shù)。每對(duì)相關(guān)的實(shí)體都可以在此基礎(chǔ)上調(diào)整各自的行為。

(9)狀態(tài)改變的響應(yīng)

每個(gè)DDS實(shí)體的狀態(tài)可以通過(guò)get_*_status()函數(shù)更新。使用偵聽(tīng)者,當(dāng)狀態(tài)發(fā)生變化后中間件會(huì)自動(dòng)通知或等待條件變量觸發(fā)特定的狀態(tài)變化。

應(yīng)用程序可以對(duì)特定狀態(tài)的變化做出響應(yīng)。例如,應(yīng)用程序可以得到通知,當(dāng)DataWriter不再有效或其活力發(fā)生了變化;或當(dāng)另一具有相同名稱的主題存在,但具有不同的特征;或當(dāng)QoS參數(shù)不符合提供的數(shù)據(jù);或當(dāng)錯(cuò)過(guò)了生存期限;或者當(dāng)發(fā)現(xiàn)了一個(gè)新的與主題匹配的DataReader(或 DataWriter);或當(dāng)數(shù)據(jù)有效;或當(dāng)數(shù)據(jù)樣本丟失或被拒絕。應(yīng)用程序響應(yīng)狀態(tài)變化可在每個(gè)實(shí)例的基礎(chǔ)上調(diào)整。

OMG的DDS創(chuàng)建了一個(gè)簡(jiǎn)單的數(shù)據(jù)通信結(jié)構(gòu),實(shí)現(xiàn)了復(fù)雜的數(shù)據(jù)模式。采用DDS中間件發(fā)送和接收數(shù)據(jù),每個(gè)實(shí)體通過(guò)調(diào)整QoS參數(shù)支持復(fù)雜的數(shù)據(jù)通信模式配置,減輕了開(kāi)發(fā)者擔(dān)心的低層次的網(wǎng)絡(luò)編程任務(wù)。該中間件能夠跨平臺(tái)操作,便于應(yīng)用程序的移植和維護(hù),易于組建和實(shí)現(xiàn)一個(gè)擴(kuò)展的、易維護(hù)的實(shí)時(shí)分布式系統(tǒng)。

[1]Middleware solutions for automation applications-case RTPS[R].Helsinki University of Technology Information and Computer Systems in Automation Espoo 2003.

[2]RTPS wire protocol specification[S].Version 1.0,November 2001,Real-Time Innovations.

[3]Interface for distributed automation architecture description and specification[S].Revision 1.1,November 2002.

[4]Data distribution service for real-time systems version 1.2[S].OMG Available Specification,January 2007.

[5]REVILL G.Designing and debugging real-time distributed systems[J].Safety Critical Embedded Systems,2008(2):27-31.

主站蜘蛛池模板: 免费看美女自慰的网站| 国产精品lululu在线观看| 激情无码字幕综合| 一级毛片免费高清视频| 在线看片中文字幕| 久久男人资源站| 女人天堂av免费| 国产成人精品一区二区免费看京| 亚洲女同欧美在线| 国产精品不卡永久免费| 91无码网站| 色爽网免费视频| 夜精品a一区二区三区| 欧美第一页在线| 国产男女免费完整版视频| 啪啪永久免费av| 女人18毛片水真多国产| 国产av色站网站| av无码一区二区三区在线| 一本大道在线一本久道| 免费看av在线网站网址| 欧美亚洲激情| 久久精品日日躁夜夜躁欧美| 精品人妻系列无码专区久久| 韩国福利一区| 操美女免费网站| 亚洲综合香蕉| 就去色综合| 国产欧美中文字幕| 精品久久久久无码| 亚洲人人视频| 91精品免费久久久| 在线观看亚洲精品福利片| 国产高清不卡视频| 在线国产毛片手机小视频| 91福利一区二区三区| 亚洲色精品国产一区二区三区| 国内精品小视频在线| 亚洲乱码精品久久久久..| 亚洲区一区| 国产精品成人一区二区不卡| 国产日韩丝袜一二三区| 国产色爱av资源综合区| 99人妻碰碰碰久久久久禁片| AV不卡在线永久免费观看| 久久成人免费| 好吊日免费视频| 精品亚洲麻豆1区2区3区| 午夜精品一区二区蜜桃| 久久综合结合久久狠狠狠97色 | 国产三级毛片| 91精品啪在线观看国产91九色| 伦伦影院精品一区| 国产二级毛片| 国产色图在线观看| 国产精品一线天| 日韩福利在线观看| 欧美日韩激情在线| 999精品在线视频| 尤物成AV人片在线观看| 亚洲综合二区| 毛片视频网址| 夜夜高潮夜夜爽国产伦精品| 精品无码国产自产野外拍在线| 国产成人啪视频一区二区三区| 欧美一级视频免费| 日本精品αv中文字幕| 成年av福利永久免费观看| 欧美日韩北条麻妃一区二区| 色综合激情网| 91精品国产91久久久久久三级| 亚洲色图另类| 国产成人久久综合777777麻豆| 久久96热在精品国产高清| 久久成人国产精品免费软件| 日韩高清欧美| 91精品小视频| 99人妻碰碰碰久久久久禁片| 精品视频福利| yjizz国产在线视频网| 国产激情在线视频| 天堂av高清一区二区三区|