APP下载

海洋观测复杂虚拟仪器云服务模型设计❋

2018-02-28胡乃军仇志金郭忠文

关键词:副本虚拟仪器组件

刘 超, 胡乃军, 仇志金, 郭忠文

(1.中国海洋大学信息科学与工程学院,山东 青岛 266100; 2.青岛市工商行政管理局信息中心,山东 青岛 266071)

随着人口的快速增长和人类对资源需求量的日益增加,海洋科技的发展和研究越来越受到各国海洋机构和科研人员的广泛关注。针对海洋进行深入的研究不仅需要专业的理论知识,更需要先进的观测技术和数据传输处理技术作为辅助工具,将客观的物理规律和模拟信号转换为数字化的数据进行处理、研究和可视化[1]。

虚拟仪器技术作为数据处理和可视化的主要技术,近些年来一直得到了广泛的应用[2]。虽然虚拟仪器技术通过计算机技术有效的降低了大量使用物理仪器带来的高成本问题,然而其在海洋观测领域有着一定的局限性。第一,现阶段的海洋观测系统大部分是针对特定需求和使用场景进行开发,功能相对单一且固定,在系统设计之初并没有考虑系统重构和功能组合等问题,导致了系统在后期功能扩展和重组过程中遇到困难。第二,大部分海洋观测系统是由不同的科研机构和国家进行开发部署,在开发过程当中,并没有采用标准化的开发模型和数据格式,从而导致了异构的海洋观测系统数据互访问、互操作性差,且系统集成后,数据响应速度下降。第三,虚拟仪器技术只负责数据处理,显示工作,缺乏数据共享的接口。因此,该技术并不适用于现阶段海洋大尺度,大范围的综合监测的需求。第四,系统研发人员需要花费大量的时间针对系统需求进行调研并进行大量的代码调试撰写工作,由于硬件传感器的多样性,系统调试工作也会花费大量的时间和精力。

针对以上问题,需要提出一种新的系统模型来解决目前海洋观测系统领域所面临的问题。该模型需要实现系统功能的自由组合和扩展,并能无缝集成大规模海洋观测系统,且能有效缩短系统开发周期和集成系统响应时间。一些科研工作者在该领域提出了一些解决方案。文献[3-4]在硬件层面上解决了部分问题,有效降低了系统开发成本。在文献[5]中,我们提出了一种可用于集成B/S或C/S分布式异构监测系统的架构,该架构包含多种数据处理显示组件。E. Song等研究人员在IEEE 1451网络化智能传感器标准中,通过定义传感器电子数据表格(Transducer Electronic Data Sheet TEDS)格式和相关通信协议,实现了面向服务的传感器数据互通架构[6]。文献[7-8]提出了多种方法有效解决了虚拟仪器系统的开发效率问题。以上解决方案虽然都对海洋观测系统的开发和集成提供了一些的解决方案,然而,这些方案有些不适用于海洋观测系统的需求,有些则不能有效兼容其他解决方案。

本文提出了海洋观测复杂虚拟仪器云服务模型,该模型包含多种通用软件组件,并能满足前端各类传感器的自动接入需求。该模型可以满足海洋观测领域数据分享需求并能实现大规模海洋观测系统的无缝集成。通过对已有的多类海洋观测系统进行分析和研究,并根据多组件副本自适应算法进一步缩短系统响应时间。我们根据该模型重新开发了已有的海洋观测系统,并设计了配置子系统进一步简化系统开发过程。实际开发过程和功能扩展过程证明该模型有效可行。本文主要贡献如下:

(1)本文从多种已有的不同种类的海洋观测系统抽象并设计出了复杂虚拟仪器模型,该模型可有效解决海洋观测系统的数据互操作和系统集成问题。

(2)本文提出的复杂虚拟仪器模型不仅可实现更加复杂多样的功能,还可以有效解决系统重构问题。

(3)该模型还提供标准化的数据访问接口,可以有效实现数据的共享。

(4)本文设计了多组件副本自适应算法,进一步缩短系统响应时间。

图1 海洋观测复杂虚拟仪器云服务模型架构

1 系统架构

海洋观测复杂虚拟仪器云服务模型系统架构是由多种海洋观测仪器作为物理前端观测被监测的对象。海洋观测仪器由多种传感器构成。物理仪器将获取的模拟信号转换为数据信号通过网络将数据传递给复杂虚拟仪器系统进行数据处理和数据分享,总体架构如图1所示。架构主要包含组成部分及其功能如下:

(1)海洋观测仪器:海洋观测仪器由多种传感器组成,它利用传感器设备获得被观测对象的信息,其信息一般为模拟信号。海洋观测仪器负责将模拟信号转换为数字信号。我们用sij表示每个传感器,其中i为仪器编号,j为传感器该观测仪器中的相对编号。

(2)传感器池:整个系统的数据来源为前端的传感器设备。虽然整个传感器设备包含在观测仪器当中,但对于数据管理系统来说,数据的来源是以传感器为单位,所以通过传感器池来管理传感器数据。获得的数据,用(xisk,t)进行表示,其中x代表具体的数据内容,i为观测对象标识,s为传感器编号,t表示采集到该数据的时间戳,k为动态监测对象编号(如对象为静态该参数为空,详见2.4)。例如,(x2,s3,5,t)则表示为2号检测对象的s3,5号传感器,在t时刻所采集到的数据为x。(3)时间序列化数据管理:该隶属于传感器模块,并将数据转换为可被复杂虚拟仪器模块获取的标准化数据格式。

(4)复杂虚拟仪器:复杂虚拟仪器主要负责对传感器获取到的数据进行采集,并对数据进行处理、显示。复杂虚拟仪器主要包括应用模块、数据管理模块、数据计算分析模块和接口管理模块。我们用大写字母I来表示一个复杂虚拟仪器。

(5)通用数据接口:通用数据接口是复杂虚拟仪器的重要组成部分,主要负责数据的共享工作。数据接口的数据输出格式为标准化数据格式。其数据输出也可作为另一个复杂虚拟仪器设备的输入。

2 模型设计

本章节将对海洋观测复杂虚拟仪器可重构模型进行详细描述,并对模型的重要组成部分进行展开说明。

2.1 对象描述模型

为了适应海洋观测系统多样化的功能需求,本文设计了对象描述模型,该模型可以有效描述各类观测对象。图2展示了对象描述模型的组成部分。观测对象的描述模型由描述条目标题和描述条目内容构成。描述条目标题主要描述观测对象的属性信息,比如描述对象经度,纬度,名称等。描述条目内容则为具体的条目包含的内容,如具体的对象名称,数据等。

图2 对象描述模型

2.2 传感器模型

传感器模型主要包括传感器组模型和传感器数据模型两个重要组成部分。

传感器组即为海洋观测仪器的传感器池描述方式。传感器组由一组传感器组成,协同完成观测任务,一个传感器组通常映射至一个或多个观测对象。传感器组模型主要包括groupId,groupName,groupInfo和parentId四部分内容。groupId为传感器组的唯一标示,即观测仪器ID,groupName为传感器组名称,即观测仪器的名称,groupInfo为传感器组描述信息,主要描述该组传感器的主要功能等信息,parentId表示该传感器组为其他传感器组的子传感器组。其中,根组的parentId为0。传感器组可无限级联。

传感器数据是一系列的时间序列化数据,公式表达为(xis,t)。数据包括原始数据和时间戳两部分。传感器数据通常用可扩展标记语言(Xtensible Markup Language,XML)进行表示。通常表示如下:

以上述XML数据文件为例,整个数据传输过程中,标签所占的字节数接近50%。经分析,该种描述方式并不适用于海洋观测数据的传输。为了提高数据的传输效率,我们根据IEEE 1851国际标准[9]设计过程中得出的经验设计传感器数据模型,如图3所示。我们将多组传感器数据(xis,t)合称为一整个数据条目进行传输,每个数据的时间戳信息和传感器数据用符号“,”进行分隔,不同的数据条目用“@”进行分隔。该方法可有效减少标签数量,从而提高数据传输效率。

图3 传感器数据模型

Fig.3 Sensor data model

2.3 复杂虚拟仪器模型

复杂虚拟仪器模型由多个虚拟仪器引擎构成以实现更复杂的功能。复杂虚拟仪器可以实现数据获取、数据显示、数据管理、数据分析、相关对象信息管理和组件重构功能。复杂虚拟仪器从观测仪器获取数据,并由虚拟仪器引擎完成数据显示工作,数据还可由数据处理分析组件进行进一步加工。最重要的是,复杂虚拟仪器模型包含对外通用数据接口,该接口可对外共享包括观测数据、统计结果和观测对象信息等内容。图4中的主要部件描述如下:

(1)数据、接口管理模块

该模块的数据管理部分主要负责系统的数据管理和数据处理。部分数据在显示之前需要进行相应的处理,由实际参数计算得到逻辑参数,逻辑参数可直接由虚拟仪器引擎进行显示。

实际参数为传感器测得的实际数据,我们假设t时刻数据有m个,其数据集合X表示为:

X={(x1s,t),(x2s,t)…(xis′,t)…(x1s′,t)(x2s′,t)…}

单个计算函数表示为f,整个复杂虚拟仪器的n个计算函数集合F表示为:

F={f1,f2,f3………fn},其中n<=m,

计算得出数据为逻辑参数,我们假设t时刻输出有n个(与函数个数相同),其中n<=m,其数据集合Y表示为:

Y={(y1,t)(y2,t)………(yn,t)}。

每一个逻辑参数输出对应一个计算函数,该计算结果来源于一个或多个实际参数,其计算过程表示为:

(yi,t)=fi(Xi),(i=1,2……n),

其中Xi为集合X的子集。值得一提的是,同一个传感器数据可以作为多个逻辑参数的输入,所以每个输入子集Xi可以存在交集。

一个复杂虚拟仪器I可表示为:

I=(X,Y,F)。

复杂虚拟仪器可通过改变集合F进行重构。

数据管理模块还负责将最终的数据结果存储在数据库中。并针对不同的观测对象存储虚拟仪器引擎映射。

接口管理模块主要是对整个复杂虚拟仪器的对外接口进行管理,将包括复杂虚拟仪器逻辑参数Y在内的相关数据进行分享,数据通过Web Service,MQ和FTP等多种方式对外提供。

图4 复杂虚拟仪器模型

(2)虚拟仪器引擎模块

该模块主要负责将标准化的逻辑参数进行可视化的显示,在加载多样化的数据之前,引擎先读取存储在数据库中的虚拟仪器引擎映射文件,并根据映射文件动态加载相应的组件,组件包括曲线,风场,浪流,表格,甚至是视频图像。当需要改变复杂虚拟仪器主要功能时,可改变虚拟仪器引擎进行重构。其数据结构见图5。

图5 虚拟仪器引擎EL图

(3)数据计算分析组件

除了数据展示功能之外,复杂虚拟仪器还提供数据计算分析模块,该模块可根据用户的计算需求动态调用组件。研发人员需按照本文提出的标准化数据格式设计计算分析组件,存入数据组件库,以供用户进行检索。

(4)通用数据接口

传统的虚拟仪器技术虽然取代了物理仪器的数据显示功能,然而虚拟仪器并不能提供传统仪器的数据输出功能。通用数据接口由接口模块统一进行管理,对外提供数据接口,它不仅能够提供传统物理仪器的观测数据输出功能,还能获取监测对象信息,传感器信息,甚至还能以代码的形式获取虚拟仪器引擎组件和数据计算分析组件。

2.4 映射模型

该模型描述了观测对象和物理传感器,物理传感器与逻辑参数,逻辑参数与复杂虚拟仪器之间的映射关系。主要映射关系描述如下:

(1)观测对象与传感器

首先,我们将观测对象分为静态对象和动态对象。静态对象是指,观测对象与特定的传感器组(观测仪器)关系绑定,例如某个观测仪器固定监测某个海域的温盐信息。动态对象是指观测目标与观测仪器关系不固定,如测速传感器测量过往船只的速度信息。综上,观测对象与传感器的映射模型属于一对多或多对一的关系。

(2)传感器与逻辑参数

传感器与其所测量得到的实际参数关系等价,所以这里我们只考虑传感器参数与逻辑参数的映射。根据2.3的计算模型可知,逻辑参数的数量小于等于传感器的数量,所以传感器与逻辑参数的映射关系为一对一或多对一。

图6 映射模型

(3)逻辑参数与复杂虚拟仪器

逻辑参数可以重复的被多个复杂虚拟仪器获取并显示。同样,一个复杂虚拟仪器也可显示多个数据源的逻辑参数。所以,整个逻辑参数与复杂虚拟仪器的映射关系为一对多或多对一。

参数模型映射如图6所示,O为观测对象集合,其子集为Oi,元素为oi。同理可得其他传感器、逻辑参数和复杂虚拟仪器的符号描述规律,为了避免混淆复杂虚拟仪器子集为Isub,i。其参数映射函数为MOS(),MSY(),MYI()。下面我们讨论如下情况:

当映射关系呈现多对一或一对一时,我们可以很容易得到公式如下:

s=MOS(Oi),

y=MSY(Si),

I=MYI(Yi)。

其中每个函数的输入为各个部分的集合,输出为其映射对象的ID编号。

由于一个函数只能有一类输出对象,所以当一对多时,我们无法输出多个参数组成的列表对象。因此,我们引入中间函数array[]=Temp(int parameter)解决该问题。当系统运行映射函数查找映射关系时,如果为多对一的关系时,我们将其映射组合存储在数据库当中,并为该映射关系编号。当输入参数为一个元素时,我们采用如下方式进行描述:

Si=TEMP[MOS(o)],

Isub,i=TEMP[MYI(y)]。

所以,当函数M为多对一的关系时,想要检索反向映射关系,则需使用函数组合TEMP[M-1()]。同理,当函数M为一对多的关系时,我们则可直接使用函数M-1()。算法如下:

AlgorithmMappingAlgorithmINPUT:(i)SOURCE[],(ii)M; //SOURCE:映射关系查询源端对象集合(可仅有一个元素);M:调用函数OUTPUT:TARGET[]; //匹配目标端对象集合(可仅有一个元素)switch(M) caseOS:F=MOS;break; caseSY:F=MSY;break; caseYI:F=MYI;break caseSO:F=MOS-1;break; caseYS:F=MSY-1;break; caseIY:F=MYI-1;break;endswitch; //选定目标函数并赋值到函数指针Fif(SOURCE[].count>1) TARGET[].ADD(F(SOURCE[])); ReturnTARGET[]; //如果为多源对象,则映射目标一定为单目标elseif(SOURCE[].count=1&&

SOURCE[].count!=0) flag=F(SOURCE[0]); if(isObject(flag)=true) returnTARGET[].add(flag); //如果flag为对象编号,则直接输出对象 else tempTarget[]=TEMP(flag) foreach(iiintempTarget) TARGET[].add(i); endfor; //将目标对象添加至目标对象数组 ReturnTARGET[]; //如果flag为映射编号,则输出对象数组 endif;endif;

3 多组件副本自适应算法设计

3.1 集成模型

海洋观测逐渐向大范围、大尺度智能观测方向转变,由此带来了海洋观测系统大规模集成问题。传统系统由于非标准化的开发过程和没有合适的开发模型导致了系统集成困难。海洋观测复杂虚拟仪器可以通过集成操作来实现系统的无缝集成和系统重构[10]。

由于有了标准化的数据格式和映射模型,该模型可直接将整个集成系统的输入、功能计算函数、输出和虚拟仪器组件取并集。公式表达如下:

其中n≤m。集成后的复杂虚拟仪器表示为:

Inew={Xnew,Ynew,Fnew},

Ynew=Fnew(Xnew)。

3.2 算法设计

在系统大规模集成之后,多种同类数据组件只会在系统中保留一份副本,当外部系统获取数据及其数据组件时,会加剧系统的负担从而导致系统响应变慢等问题。针对代码副本存储问题,我们对计算函数取交集:

对于Finter设计多组件副本自适应算法以响应大量外部系统访问问题。算法步骤如下:

(1)系统检测组件请求队列长度,当队列长度大于阈值k时,设空闲时间为0,执行步骤3,然后执行步骤2;

(2)当副本数量为大于初始值a且空闲时间大于T时,清除多余副本,并返回步骤1,否则直接返回步骤1;

(3)对组件副本进行复制,并对副本所在服务器进行编号;

(4)针对队列请求编号,用哈希函数进行处理,并对副本数量取模,并根据取模结果在相应服务器请求组件,返回步骤1;

AlgorithmSelf-AdaptionAlgorithmINPUT:(i)REQUEUE;(ii)COMPONENT; //REQUEUE:请求队列,COMPONENT:组件数组while(system.ifRunning()=true) while(REQUEUE.count<=k) if(COMPONENT.replica.count>a&& restTime>T) COMPONENT.replica.delete(); endif; restTime=addTime(restTime); endwhile; //在不忙碌时段清除组件副本 restTime=0; //系统忙碌 COMPONENT.replica.creat(); n=COMPONENT.count(); //创建副本存储在相应编号服务器,并记录副本数量 foreach(rinREQUEUE) m=hash(r)modn; server[m].processQueue.add(r); endforeach; //将请求分配至各个服务器处理队列 restTime=startCount(); //重新开始计时;endwhile;

4 性能分析与应用实例

4.1 性能分析

针对大规模大范围集成的海洋观测系统,随着系统集成范围的增加,同时迸发请求的可能性大幅增加。当多个用户在同一时刻对某一数据组件进行请求时,系统会动态加载复杂虚拟仪器代码组件,并对数据进行显示。我们对多组件副本自适应算法进行仿真。我们在系统中存放单一副本,并采用随机迸发请求的方式对系统进行请求,请求数量见图7。并统计远程客户端响应时间,仿真结果见图8。

设置整个带宽可以同时满足5个组件请求。所以当请求大于5时,在原始系统下,组件加载速度大致计算方式表达如下:

[请求数量/5]×单位响应时间。

当采用自适应算法之后。当T为10 s时,由于本仿真设定的迸发请求为每20 s一次,每次响应结束时间到下一次组件请求之前,时间大于T,组件副本已被删除,所以当下次请求到来时,系统又会临时生成副本,造成响应时间相应的延长。当T为20 s时,下次数据请求迸发到来之前,数据副本还在系统中,所以下一时刻请求数量变化不大的情况下,由于没有组件副本复制的过程,系统响应时间会下降。即使请求数量增加,由于系统已经存在一定的副本数量,也会大幅缩短副本复制时间。

图7 随机迸发请求数量

图8 仿真结果

由此,我们得出大致结论,当T增加时,系统在面临高迸发请求时,会大大缩短系统响应时间。但T增加也会导致系统存储资源被过多的占用。

4.2 应用实例

为了验证海洋观测复杂虚拟仪器云服务模型,我们通过云平台配置子系统,快速配置了海洋观测系统OceanSense[11],并对集成、级联模型进行了验证。整个系统包含18个前端监测节点和2个近岸节点。整个数据采用多跳的方式传递至近岸节点,近岸节点通过ethernet将数据传递给复杂虚拟仪器系统。

整个系统利用复杂虚拟仪器云服务模型,采用配置系统客户端进行系统配置操作。基于模型中的标准化对象描述格式、传感器描述格式、传感器数据格式及映射模型和映射算法,系统可通过无代码的形式进行开发。整个配置系统采用组件式拖拽管理和参数配置的方式进行系统开发。配置子系统界面见图9。

图9 配置系统

图10 海洋观测复杂虚拟仪器通用客户端

整个系统通过模型的集成操作,并采用统一的通用客户端,对数据组件进行加载,并完成数据显示工作。系统界面如图11所示。我们将每一个浮标看做一个复杂虚拟仪器,整个海域1系统集成了两个复杂虚拟仪器。系统通用客户端动态加载两个复杂虚拟仪器组件,每个复杂虚拟仪器包含两个引擎。换句话说,该系统可同时显示4组相关数据。当需要访问其他复杂虚拟仪器时,系统只需动态加载其他组件,即可完成数据显示工作。

通过对以上场景的开发、应用和集成,对海洋观测复杂虚拟仪器云服务模型的可行性进行验证。

5 总结与展望

本文总结了科研团队多年来的海洋观测系统研发经验,抽象得出了海洋观测复杂虚拟仪器云服务模型,可实现系统的定制化开发和大规模集成。整个系统可通过动态加载虚拟仪器组件,并自由接入前端传感器以适应复杂多变的海洋观测需求。本文设计的多组件副本自适应算法,可有效的缩短系统的相应时间。

本文提出了一个可大规模集成异构海洋观测系统的模型,并可简化开发步骤。但仍有缺点和不足。我们的后续工作包括:(1)进一步将该模型扩展至其他领域;(2)采用机器学习的方法,研究历史请求数据,设计智能多组件副本自适应算法;(3)进一步研究组件技术,研发多种可用于其他领域系统的通用组件。

[1] 郁鸿胜. 发达国家海洋战略对中国海洋发展的借鉴[J]. 中国发展, 2013, 13(3): 70-75. YU Hongsheng. The Reference of the Development Countries’ Ocean Strategies to China Oceanic Development[J]. China Development, 2013, 13(3): 70-75.

[2] Orovic I, Orlandic M, Stankovic S. A Virtual Instrument for Time-Frequency Analysis of Signals With Highly Nonstationary Instantaneous Frequency[J]. Instrumentation and Measurement Ieee Transactions on, 2011, 60(3): 791-803.

[3] Gao R, Fan Z. Architectural design of a sensory node controller for optimized energy utilization in sensor networks[J]. Ieee Transactions on Instrumentation and Measurement, 2006, 55(2): 415-428.

[4] Kansal A, Hsu J, Zahedi S. Power management in energy harvesting sensor networks[J]. Acm Transactions on Embedded Computing Systems, 2006, 6(4): 32.

[5] Guo Z, Chen P, Zhang H. IMA: An Integrated Monitoring Architecture With Sensor Networks[J]. Ieee Transactions on Instrumentation and Measurement, 2012, 61(5): 1287-1295.

[6] Song E, Lee K. Service-oriented sensor data interoperability for IEEE 1451 smart transducers[C]. Conference Record Ieee Instrumentation and Measurement Technology Conference, 2009.

[7] Bertocco M, Cappellazzo S, Carullo A. Virtual environment for fast development of distributed measurement applications[J]. Vims 2001 2001 Ieee International Workshop on Virtual and Intelligent Measurement Systems, 2003, 52(3): 681-685.

[8] Winiecki W, Karkowski M. A new Java-based software environment for distributed measuring systems design[J]. Ieee Transactions on Instrumentation and Measurement, 2002, 51(6): 1340-1346.

[9] Guo Z, Zhang H. IEEE P1851:Standard for design criteria of integrated sensor-based test applications for household appliances[S]. IEEE Standards Association, 2012.

[10] 胡克勇. 面向海洋传感网的软件开发模型及关键技术研究[D]. 青岛:中国海洋大学, 2014. HU Keyong. Research of Ocean Sensor Web Oriented Software Development Model and Key Technologies[D]. Qingdao: Ocean University of China, 2014.

[11] Jiang M, Guo Z, Hong F. OceanSense: A practical wireless sensor network on the surface of the sea[C]. Seventh Annual Ieee International Conference on Pervasive Computing and Communications Workshops, 2009: 1-5.

猜你喜欢

副本虚拟仪器组件
无人机智能巡检在光伏电站组件诊断中的应用
一种嵌入式软件组件更新方法的研究与实现
U盾外壳组件注塑模具设计
使用卷影副本保护数据
面向流媒体基于蚁群的副本选择算法①
一种基于可用性的动态云数据副本管理机制
PCB 刻制机功能开发及在虚拟仪器实验室建设中的应用
虚拟仪器及其在电工电子实验中的应用
一种基于虚拟仪器的电控柴油机实验台的设计
虚拟仪器技术在农业装备测控中的应用