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

基于軟件定義資源的實時控制CPS數據傳輸機制*

2016-01-26 06:22:53蔣俊,黃傳河,華超
計算機工程與科學 2015年12期
關鍵詞:跨平臺

?

基于軟件定義資源的實時控制CPS數據傳輸機制*

蔣俊,黃傳河,華超,胡海橋,彭暉

(武漢大學計算機學院地球空間信息技術協同創新中心,湖北 武漢 430072)

摘要:信息物理融合系統CPS是當前最前沿的交叉研究領域之一,具有廣泛的應用前景,其研究和發展離不開數據傳輸與管理技術的支持。提出了一種基于軟件定義資源的CPS模型,通過采用映射資源描述文件的方式實現資源的分配與調度;在此模型的基礎上提出了一種實時控制CPS數據傳輸模式,這種數據傳輸模式以中間件形式實現,中間件對CPS的消息采用序列化與反序列化的機制傳輸,可以滿足CPS跨平臺、跨網絡、實時性的要求;設計了一種CPS消息傳輸的路徑,以提高傳輸效率。實驗結果表明,所提出的數據傳輸序列化機制是可行的。

關鍵詞:信息物理融合系統;軟件定義資源;實時系統;數據傳輸機制;跨平臺

1引言

隨著計算技術、通信技術、新型傳感器技術和自動控制技術的飛速發展和日益成熟,信息物理融合系統CPS(Cyber-Physical System)開始在世界范圍內出現并得到快速發展。CPS作為當前最前沿的交叉研究領域之一,是一個綜合計算、網絡和物理世界的復雜系統,通過計算技術、通信技術和控制技術的有機融合與深度協作,實現信息世界和物理世界的緊密融合[1,2]。

CPS是一種深度嵌入式實時系統,集傳感、控制、計算及網絡技術于一體,是通過網絡將信息系統與物理系統連接在一起而構成的一種大型的、異構的、分布式實時系統。在CPS中,所有計算模塊、通信模塊、網絡節點、物理實體、包括人自身都可以被視為系統中的物理組件,CPS實現對各物理組件的遠程控制和通信,是一個感知并控制的過程。同時,CPS組件間具有自主交互和自治能力,其目的是通過更廣泛的互聯互通、更透徹地認知物理世界,更有效地控制物理世界,使信息世界與物理世界緊密融合,實現對物理世界安全、可靠、高效、實時的感知和控制[3~5]。

CPS需要管理由不同感知設備產生的多模態數據[6]。目前,關于CPS數據管理的研究還很少,僅局限于傳感器網絡上的數據傳輸和存儲技術的研究[7]。由于CPS是一個異構的、分布式實時系統,如何針對這個復雜的系統提出一個完善的通信模式,同時還要兼顧通信的實時性和準確性是一個重大挑戰。在這種背景下,本文提出一種基于軟件定義資源的CPS系統模型,旨在通過應用程序來對CPS系統中的各種資源部件進行實時控制,同時在此基礎上定義了一種實時控制CPS數據傳輸機制,適應CPS異構、跨平臺的特點。

2軟件定義資源及實時CPS模型

軟件定義的概念在很多年前就已經被提出,它衍生出許多不同領域內的技術方法。繼軟件定義無線電的提出之后[8],人們越來越傾向于在不修改硬件平臺結構的基礎上僅僅通過改變軟件來改變系統的功能,這種靈活性帶來的影響是巨大的,軟件定義網絡SDN(Software Defined Network)、軟件定義數據中心SDDC(Software Defined Data Center)、軟件定義存儲SDS(Software Defined Storage)等技術也應運而生。SDN是一種創新的新型網絡架構,這種技術能夠將網絡的轉發平面和控制層面更好地分離開來,集中地控制網絡狀態,無論是研究人員還是網絡管理人員都可根據頂層服務或網絡控制應用構建和呈現邏輯的全網視圖,完成網絡分片和底層網絡的虛擬化,從而為形式各異的網絡應用提供靈活的承載服務或協議[9,10]。

借助于SDN中控制與轉發分離、集中管控的思想,本文在CPS中采用一個決策中心管理單元域內的所有資源部件,它負責單元域內的控制與計算工作,并對全局資源進行集中管控;消息機作為轉發消息的部件,負責對消息進行轉發。基于此,本文提出一種基于軟件定義資源的CPS系統模型,如圖1所示。

Figure 1 CPS model of real-time controlling圖1 實時控制CPS模型

信息世界與物理世界的相互作用通過如圖1所示的CPS模型完成。在這個模型內包含以下幾個主要組成部分:

(1)傳感器、執行器。傳感器節點、執行器節點、傳感器與執行器組合節點分布在物理世界,它們均可視為CPS系統中的資源部件。傳感器節點實現對物理世界直接感知,通過識別物體與采集信息,將用戶需要或者感興趣的數據傳遞給消息機,類似人類眼睛的作用;執行器節點負責接收消息機發送過來的控制命令,并根據控制命令操控物理世界的對象,進而實時正確地控制物理世界,類似人類雙手的作用。

(2)消息機。消息機用來處理消息在CPS系統中的傳輸,類似于消息中轉站,具有四種處理消息的方式。第一種是接收物理世界中傳感器反饋過來的消息,并將這些消息傳遞給決策中心;第二種是接收物理世界中傳感器反饋過來的消息后,直接將其傳遞給其連接的某個執行器;第三種是接收決策中心下發的控制命令,并將命令傳遞給物理世界中的某個執行器或者某些執行器,再由執行器去執行;第四種是將從物理世界或決策中心接收到的消息在消息機之間傳遞,根據各自傳輸的路徑將這些消息傳遞到相應目的地,這樣做一方面可以減少消息機與決策中心的交互,一定程度上減輕通道的負載壓力,另一方面也可以更加迅速地傳遞消息。

(3)決策中心。作為單元域內整個CPS模型的大腦,決策中心具有計算功能、控制功能、處理消息命令功能以及定制應用的功能等。它是用戶與CPS系統交互的接口,通過決策中心,用戶可以查看物理世界的實時狀況、接收物理世界反饋的信息、發送調整控制命令等。決策中心是一個可編程的信息中心,當用戶不干涉時,決策中心會自主運行,自行按照既定的程序對整個CPS系統進行監控與決策,并對發生的各種情況分類別地記錄日志。在決策中心自主運行時,如果發生異常情況,決策中心會對用戶發出報警信息;當用戶通過報警信息或者查看日志記錄的信息決定人為調整CPS的運行狀況時,可以在決策中心編寫程序,由決策中心內部機制運行程序,加以調整。此外,用戶也可以在決策中心按需實時查詢物理世界的運行狀態,并做出相應調整。

針對圖1所示的CPS單元域,本文將物理世界中的功能部件視為各種資源。這些部件均對應有一個資源描述文件,內含一個統一資源標識符URI(Uniform Resource Identifier)、一個功能描述符和一個占用描述符,每個資源描述文件包含的信息如表1所示。

Table 1 Resource description files

每個資源部件與一個資源描述文件一一對應,這些資源描述文件存放在決策中心中,組成一個資源描述表。

由于CPS通常是應用驅動的,在針對某個具體的應用時,根據這個具體應用自身的特點,開發人員可以通過算法綜合計算整個CPS系統的資源描述表,得到一個實時動態的資源分配表。應用程序根據這個資源分配表實現對資源部件的實時調度。

在CPS系統中,根據客戶的業務需求和投資的一些條件定制應用程序,并在決策中心實施,可以按需實現對全局資源的實時調度與分配。在CPS中對所需的業務進行自動快速的部署,能更好地提高資源的利用效率。這種僅僅是通過改變軟件來改變CPS運行方式與運行狀態的方式具有很好的適用性和靈活性,極大地提高了CPS系統對資源的可控性。此外,相較于傳統的由單個部件進行轉發消息和處理消息,這種模型實現了在物理部件中只保存最基本的運算處理能力,其余大部分計算功能由決策中心統一完成,并且路由功能也由單個部件協同完成轉變為由決策中心統一實現,消息機只具有消息的轉發功能,真正意義上實現了由軟件定義資源的部署分配。

同時,由于CPS中單個部件的存儲資源、計算資源、能源、數據傳輸帶寬等均十分有限,因此通過圖1這種CPS模型架構,可以做到在決策中心集中控制,消息機作為傳輸中轉站,只負責接收和轉發消息命令,進而由指定的傳感器和執行器在物理世界中根據消息命令協同運行,大大節約能源消耗,實現應用層統一部署,資源層協同工作。

3數據傳輸模式

CPS是一個異構的分布式實時系統,由異構的通信網絡、異構的計算系統、異構的物理部件組成,它的通信網絡十分復雜,由多種通信網絡組合而成,所以要定義一種協議適用于CPS是一件十分困難的事情。目前已經出現一些針對CPS的通信協議棧,例如CPS-IP通信協議[11]和Ada-MAC通信協議[12]。但是,針對CPS的通信協議,還有大量技術問題有待進一步研究。本文從網絡底層及計算機系統底層出發,提出一種以中間件形式存在于CPS中的數據傳輸模式,這個中間件可以看作連接各種異構物理部件、異構通信網絡的橋梁,它們通過中間件可以實現相互通信與相互作用。該中間件的主要實現方法是采用網絡中傳輸消息的序列化機制。

3.1 數據轉換算法

當兩個進程在進行遠程通信時,彼此可以發送各種類型的數據。無論是何種類型的數據,都會以二進制序列的形式在網絡上傳送。在本CPS模型中,決策中心、消息機以及執行器和感知器等部件無時無刻不在進行相互通信,將重要數據傳遞給對方。本文設計的這種消息序列化機制,需要滿足兩個條件:

(1)在CPS系統中的每個單元域內維護一張全局的序列化表,表中包含各個關鍵命令消息(類似于關鍵字)對應的編碼號,同時含有一套基本數據類型對應的編碼號。

(2)用戶需要熟悉在決策中心進行編碼的規則,可以根據客戶需求實現相應功能。

當消息在CPS部件之間的通道上傳輸時,均要轉化為二進制序列的形式。由于在CPS系統中的每個單元域內維護了一張全局序列化表,當某個部件發出消息時,可以根據序列化表將消息轉化為對應的二進制序列,即消息的序列化,于是在通道上傳輸的內容實際上就是這些二進制序列;對端的部件在接收到這些二進制序列后,再通過序列化表執行一次消息的反序列化,將這些二進制字節轉化為對應的可被正確識別的消息。在兩個相鄰部件之間傳遞消息的過程就是這樣,擴展到整個CPS系統,其運行原理也是如此。

在這個全局序列化表中,還內置一套基本數據類型的ASCII碼編號,在CPS系統中傳遞的消息通常由命令消息和數據兩部分構成,為了保持一致性,數據也需要根據其類型轉化為相應的二進制序列。如一個Int32類型的數值6和一個string類型的字符6,它們在CPS的通道中傳輸時應具有不同的二進制序列。由于全局序列化表中含有各種數據類型對應的編碼值,所以在序列化和反序列化時可以相應地根據數據類型的不同加以轉化和識別。消息序列化的數據轉換算法messageTransform如下所示:

Algorithm messageTransform

Input:type,contents

Output:buffer

Begin

i←lObjectNumber;j←lClassNumber;

Initialize(i←1,j←1,map〈type,number〉map_t,OIOBegin,ObjectBegin);

writeInitializationtobuffer;

map_t[type]=++number;

while(sendmessage)

i++;

if(map_t.count(type))

writeClassByNumber,map_t[type],typeandcontentstobuffer;

else

writeClassByNametobuffer;

map_t[type]=++j;

writemap_t[type],typeandcontentstobuffer;

end if

end while

writeObjectEndandOIOEndtobuffer;

End

發送消息時先將其轉化為ASCII碼再發送出去,接收消息時再將ASCII碼逆向轉化為消息,這種方式大大提高了消息傳輸和解析的效率,已經有郵件傳輸采用這種方式實現。在CPS中采用這種序列化與反序列化的機制傳輸數據,可以實現消息命令的實時傳遞,而且由于這種數據傳輸機制是基于二進制的,所以在使用時與具體的平臺類型無關,可以適應CPS跨平臺,在不同網絡結構中傳輸的特點。

3.2 實時數據傳輸

根據用戶定制的某個應用,決策中心通過處理后發出一系列消息命令,這些消息再根據目的地址傳遞到各自的執行部件。例如從決策中心C發出一系列命令消息D,這些消息的目的地址是執行器Pi,已知Pi從屬于消息機Mi,Mj為Mi的一跳距離消息機。如圖2所示。

Figure 2 CPS data transmission圖2 CPS數據傳輸

由于CPS系統對實時性要求很高,所以本文為消息設置一個優先級屬性。根據消息的類型,設置其對應的優先級。這個優先級屬性是隨時間變化的,開始時,消息越迫切得到傳輸,其優先級就越高,隨著時間推移,如果其一直未得到傳輸,那么優先級就會相應增加,直到發送出去。優先級越高的消息越會被優先發送出去。

決策中心根據消息的優先級順序發送消息,同時為其選擇合適的傳遞路徑。在決策中心選擇路徑的過程中,需要考慮到:

(1)由于消息通道的帶寬有限,當消息傳遞的速率足夠大時會造成決策中心與消息機之間的傳輸通道發生阻塞;

(2)消息在消息機之間的傳輸也需要時間,盡可能選擇與目的節點所屬消息機距離近的消息機作為中繼消息機,能有效縮短中繼傳輸時間,進而提高傳輸效率。考慮到這些因素,本文提出選擇路徑的過程如圖3所示。

Figure 3 Message sending transmission progress of the decision center圖3 決策中心發送消息傳輸過程

當所有消息機通道都達到最大帶寬后,向決策中心C反饋抑制信息,抑制C發送消息的速度。使用這種方式選擇消息的傳輸路徑,可以保證在最短的時間內傳遞消息,具有很好的實時性。但是,這個選擇路徑的方法有一個很大的局限性,就是消息機與消息機之間的通道必須具有很大的帶寬,由于多條消息在傳輸過程中可能會經過同一條消息機之間的通道,這樣就會造成消息機通道的阻塞,同樣會影響傳輸的實時性,在后面的工作中會針對這一局限性做出更大改進。

4實驗分析與結論

本文針對CPS數據傳輸機制的序列化與反序列化做相應實驗,由于它們以中間件形式存在于CPS中,因此實驗的主要目的是驗證這種序列化機制的中間件可以實現跨平臺的消息通信。

本實驗采用兩類物理部件,一類是基于Windows平臺的,一類是基于Unix平臺的。不失一般性,將Windows平臺部件作為客戶端發送消息,將Unix平臺部件作為服務端接收消息。在兩端均含有一張序列化表,具體表示如表2所示。

首先,客戶端向服務端發送消息,如發送一個get類型的命令消息,其目的是請求得到對端部件的功能屬性。將get消息序列化,通過序列化表將消息轉化為二進制序列,經過序列化之后的序列(十六進制表示)就是0 2 22 1 5 22 1 22 0 48 4 67 65 74 0 3 1。

其序列化的過程如表3所示。

發送消息時,它的序列化流內部存在一定的規則??梢钥闯觯琌IOBegin和OIOEnd對應,ObjectBegin和ObjectEnd對應。針對get命令消息,先發送一個OIOBegin(0),表明中間件序列化的開始,再發送一個ObjectBegin(2),表明一個消息序列化的開始。后面接著22和1是一體的,22是一個Uint1LSB類型,表明后面一個字節的類型,1代表lObjectNumber,表明消息在本次序列化過程中的序號為1。后面接5代表ClassByName,表明當前發送的消息類型在本次序列化中是第一次出現。

Table 2 Serialization table

Table 3 Sample table of the serialization process

后面接22和1是一體的,1代表lClassNumber,表明當前發送的消息的類型在本次序列化中序號為1。lClassNumber和lObjectNumber的不同之處在于,lObjectNumber是一直增加的,只要發送一個消息就增加1;而lClassNumber不是一直增加的,當發送的消息類型不是第一次出現時(即同一消息類型在當前序列化中發送多次),它的lClassNumber不會增加,而是第一次出現本消息類型的Number號,否則就增加1。后面接22和0是一體的,表明OIOsignature是0。后面接消息類型的說明符,這里是48 4 67 65 74 0,48代表BinBuf1LSB,說明后面是一個字節緩沖區,4代表這個緩沖區一共有4個字節,將67 65 74 0轉化為10進制再對照ASCII碼表可知對應于get’

主站蜘蛛池模板: 久久久久久国产精品mv| а∨天堂一区中文字幕| 精品综合久久久久久97超人该| 日韩高清欧美| 国产特一级毛片| 色综合网址| 亚洲视频在线青青| 亚洲美女一级毛片| av色爱 天堂网| 在线精品亚洲一区二区古装| 欧美翘臀一区二区三区| 国产成年女人特黄特色大片免费| 一本大道在线一本久道| 国产特级毛片aaaaaa| 国产一级在线播放| 69国产精品视频免费| www精品久久| 亚洲高清无码精品| 亚洲欧洲日韩综合色天使| 国内自拍久第一页| 天天色天天综合网| 国产特级毛片aaaaaaa高清| 精品视频一区二区三区在线播| 国产91线观看| 国产成人啪视频一区二区三区| 欧美激情成人网| 一区二区三区在线不卡免费| 色老二精品视频在线观看| 国产地址二永久伊甸园| 国产成人精品第一区二区| 欧美一级视频免费| 日韩在线2020专区| 制服丝袜 91视频| 久久国产黑丝袜视频| 熟妇丰满人妻| 欧美日韩91| 国产极品美女在线观看| 日韩高清欧美| 中文字幕av无码不卡免费| 精品久久香蕉国产线看观看gif| 成人久久精品一区二区三区| m男亚洲一区中文字幕| 91久久性奴调教国产免费| 免费jizz在线播放| 亚洲有码在线播放| 国产欧美日韩91| 欧美日韩亚洲国产| 一本大道无码日韩精品影视| 久久99这里精品8国产| 扒开粉嫩的小缝隙喷白浆视频| 亚洲欧洲自拍拍偷午夜色无码| 国产一级视频久久| 久久香蕉国产线看观看式| 成人毛片免费观看| 欧美视频在线第一页| 久久综合伊人 六十路| 午夜在线不卡| 亚洲精品麻豆| 国产香蕉97碰碰视频VA碰碰看| 国产精品污污在线观看网站| 国产区在线观看视频| 色九九视频| 日本一本在线视频| 久久久成年黄色视频| 成人精品在线观看| 一本视频精品中文字幕| 无码免费视频| 国产一级小视频| 国产免费福利网站| 免费在线色| 亚洲一区二区成人| 不卡国产视频第一页| 青青草国产在线视频| 亚洲天堂视频在线播放| 中国毛片网| 国产男人的天堂| 91精品国产自产在线老师啪l| 国产靠逼视频| 欧美一区日韩一区中文字幕页| 国产剧情国内精品原创| 成人福利在线免费观看| 九色国产在线|