基于软件定义资源的实时控制CPS数据传输机制*

2016-01-26 06:22蒋俊,黄传河,华超
计算机工程与科学 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所示。

发送消息时,它的序列化流内部存在一定的规则。可以看出,OIOBegin和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’’,其中’’是字符串结束符。后面发送一个ObjectEnd(3),标识一个消息序列化的结束,再发送一个OIOEnd(1),标识这个序列化过程的结束。至此整个序列化的过程结束。

中间件序列化机制中存在一整套规则,物理部件在发送和接收消息均需遵循这些规则。客户端将序列化之后得到的二进制序列发送到服务端,服务端接收到这些二进制序列后,按照规则执行反序列化操作,还原一个可以正确识别的get命令消息,由这个get命令将自身功能属性通过序列化机制返回给对端部件。

通过这个序列化与反序列化过程,实现了两个不同平台间的相互正常通信。实验表明,通过中间件这种序列化与反序列化机制,可以实现跨平台的消息通信。

5结束语

本文针对CPS具有的异构、分布式、实时等特性,在软件定义资源的基础上提出一种实时控制CPS模型,通过采用资源映射描述文件的方式实现资源的分配与调度;然后提出一种跨平台、跨网络的实时控制CPS数据传输模式,在中间件中通过采用序列化与反序列化机制实现异构网络间数据的传输,并基于此提出一种数据转换算法,满足异构网络间实时、快速的要求。本文对CPS技术进行了一定探索与研究,对CPS的数据传输过程具有一定的参考价值。

参考文献:附中文

[1]Tan Peng-liu,Shu Jian,Wu Zhen-hua.An architecture for cyber-physical systems[J].Journal of Computer Research and Development,2010,47(z2):312-316.(in Chinese)

[2]Lee E A.The past,present and future of cyber-physical systems:A focus on models[J].Sensors,2015,15(3):4837-4869.

[3]Li Ren-fa,Xie Yong,Li Rui,et al.Survey of cyber-physical systems[J].Journal of Computer Research and Development,2012,49(6):1149-1161.(in Chinese)

[4]Gunes V,Peter S,Givargis T,et al.A survey on concepts,applications,and challenges in cyber physical systems[J].KSII Transactions on Internet & Information Systems,2014,8(12):4242-4269.

[5]Eidson J C,Lee E A,Matic S,et al.Distributed real-time software for cyber-physical systems[J].Proceedings of the IEEE,2012,100(1):45-59.

[6]Phan L T X,Lee I.Towards a compositional multi-modal framework for adaptive cyber-physical systems[C]∥IEEE International Conference on Embedded & Real-time Computing Systems &Applications,2011:67-73.

[7]Kang W,Kapitanova K,Son S H.RDDS:A real-time data distribution service for cyber physical systems[J].IEEE Transactions on Industrial Informatics,2012,8(2):393-405.

[8]Jondral F K.Software-defined radio-basics and evolution to cognitive radio[J].Eurasip Journal on Wireless Communications & Networking,2005(3):275-283.

[9]Kim H,Feamster N.Improving network manage-ment with software defined networking[J].IEEE Communications Magazine,2013,51(2):114-119.

[10]Tourrilhes J,Sharma P,Banerjee S,et al.SDN and OpenFlow evolution:A standards perspective[J].Computer,2014,47(11):22-29.

[11]Lin S,He T,Stankovic J A.CPS-IP:Cyber physical systems interconnection protocol[J].ACM SIGBED Review,2008,5(1):22.

[12]Xia F,Wang L,Zhang D,et al.An adaptive MAC protocol for real-time and reliable communications in medical cyber-physical systems[J].Telecommunication Systems,2015,58(2):125-138.

[1]谭朋柳,舒坚,吴振华.一种信息-物理融合系统体系结构[J].计算机研究与发展,2010,47(z2):312-316.

[3]李仁发,谢勇,李蕊,等.信息-物理融合系统若干关键问题综述[J].计算机研究与发展,2012,49(6):1149-1161.

蒋俊(1990-),男,湖北黄石人,硕士生,研究方向为CPS和SDN网络。E-mail:358909613@qq.com

JIANG Jun,born in 1990,MS candidate,his research interests include cyber-physical system, and software defined network.

Data transmission scheme of real-time control CPS based on software defined resources

JIANG Jun,HUANG Chuan-he,HUA Chao,HU Hai-qiao,PENG Hui

(Collaborative Innovation Center of Geospatial Technology,School of Computer,Wuhan University;Wuhan 430072,China)

Abstract:Cyber-Physical System (CPS) is currently one of the forefronts of cross research fields. It has wide application prospect, and its research and development cannot continue without the support of data transmission and management technology. In this paper, we propose a model of CPS based on software defined resources. The allocation and scheduling of resources is implemented through the way of using mapping resource description files. On the basis of this model, we present a data transmission mode of controlling the CPS in real time. This data transmission mode is implemented by middleware. This middleware employs a kind of serialization and deserialization methods in CPS, which is able to meet the requests of cross-platform, across networks and real-time communication in CPS. Besides, the paths of data transmission in CPS are designed in order to improve the efficiency of communication. Experimental results show that the serialization mechanism of data transmission is feasible.

Key words:CPS;software defined resource;real-time system;data transmission scheme;cross platform

作者简介:

doi:10.3969/j.issn.1007-130X.2015.12.009

中图分类号:TP393

文献标志码:A

基金项目:国家自然科学基金资助项目(61373040,61173137);教育部博士点基金资助项目(20120141110073)通信地址:430072 湖北省武汉市武汉大学计算机学院Address:School of Computer,Wuhan University,Wuhan 430072,Hubei,P.R.China

收稿日期:修回日期:2015-10-21

文章编号:1007-130X(2015)12-2250-06

猜你喜欢
跨平台
跨层级网络、跨架构、跨平台的数据共享交换关键技术研究与系统建设
一款游戏怎么挣到全平台的钱?
潜力双跨平台:进阶:谁将跨入下一个“十大”?
跨平台APEX接口组件的设计与实现
基于C++语言的跨平台软件开发的设计
基于C++语言的跨平台软件开发
移动互联网应用跨平台开发
一种虚拟现实应用程序跨平台方法的研究
基于QT的跨平台输电铁塔监控终端软件设计与实现
基于OPC跨平台通信的电机监测与诊断系统