基于SWE 的第三方资源动态适配接入技术的研究
2021-08-03范如意柳先辉
范如意,柳先辉
(同济大学电子与信息工程学院,上海 201804)
1 研究背景
随着当今时代的发展,互联网已经深入融合进各个行业,企业未来的发展趋势朝着协同制造互联网的方向迈进。通过互联网获取各种资源从而对变化的市场做出及时调整,优化产业结构是未来的顶级生态系统。未来的制造业不仅要满足市场需求,更要应对网络信息的变化有快速高效的响应机制[1]。这不仅要求有一个系统有效的网络协同合作模式,同时其中最重要的是对资源的变化的感知能力,以及对已经变化后的资源的适应性调节[2]。
基于此,传感网整合架构(Sensor Web enablement,SWE)项目组致力于通过制定相应的信息和服务标准[3],屏蔽底层异构性,建立一个基于Web 的、能够统一共享和访问任意传感资源(包括传感器、传感器系统、传感器观测数据和传感器服务等)的“传感器万维网”[4]。SWE 协议主要作用是对传感器信息提供一套统一的查询服务,方便用户对资源信息查询和更新,它通过中间件与传感器进行通信,从而屏蔽了底层的差异性。主要的工作流程是:(1)各个传感器接入中间层;(2)中间层将接入的传感器协议转换成统一的SWE 协议。网络协同制造的进展中,需要大量的传感器对所需资源监测和响应,然而由于各种传感器之间的属性、协议等不同,传感器感知到数据变化时,将该数据接入到SWE 服务,需要耗费大量的人力来完成协议的转换。因此,要想满足网络协同制造的目标,需要对上述过程进行优化,尽量减少人力的参与,对资源的动态变化进行适配接入,满足对异构数据的自动适配接入,提高不同资源的接入效率转换精度[5]。本文的第三方资源主要以数据信息的形式存在,将传感器部分替换成能够感知数据的智能感应器。智能感应器感应到资源信息的变化,自适应的生成适配器,将数据转换成符合SWE 协议标准的数据,进一步将数据接入到协同制造资源池中供客户获取,快速实现资源发现和互联共享。
2 相关研究
美国有学者设计并实现了一种硬件设备Pack,这种设备通过集成传感器的元数据和驱动等信息,然后将这种设备内置在传感器中实现传感器和元数据的固态绑定。当检测到资源信息发生变化时,系统会自动从Pack 中检索发生变化的信息并且自动完成传感器的适配[6]。但是,由于硬件的解决办法只能针对特定的内容进行检测,并不能达到广泛的适用。如何从软件层面来寻求方法弥合服务层和传感器层之间的自适应鸿沟,进一步实现动态适配,是很多科研学者一直关心的话题。国外学者设计了一种概念模型,这种模型将传感器抽象出来,只提供相应的接口和描述,从底层屏蔽相关技术细节,然后将服务层和传感器层通过代理进行通信,实现两者之间信息传递[7]。这种模型只是提出了概念,具体的实现方法未知,现有阶段的很多“动态适应”方法仍然需要大量的人工参与,在某些场合达不到传感器观测的实时性。传感器动态适配的难点很大部分在于以下几方面:首先,传感器的数据协议不统一,需要指定具体的数据协议;其次,传感器的加载时间和其指令协议不好确定;这些难点导致动态适配的巨大挑战性[8]。基于以上,如何在当前研究的基础上进一步加深对传感器自动适配的研究,从而弥补当前传感器层和服务层之间的“互操作鸿沟”,实现传感器的动态适配,是当下研究的关键。
Kafka 作为一种高吞吐量的分布式发布订阅系统[9],通过负载均衡实时处理大规模数据的流入,根据订阅主题分散到各个主题中,它的优点有高吞吐量、低延迟、可扩展性、可靠性和高并发等。Kafka Connect 是Kafka 的另一重要功能[10],它作为一种流处理工具使得Kafka 可以作为一个中间件在系统间可靠且高效的传输数据,它可以快速地将大量数据集合移入和移出Kafka,Kafka Connect 的具体工作流程是,首先将企业或者网络上的大量数据以流的方式导入到导入Kafka 中,接下来Kafka 对数据进行分散等处理之后将数据传递到其他系统供查询使用。
3 自适应资源智能感应器信息模型
本文针对以上提出的问题,对传统的异构传感器进行抽象,建立一种面向SWE 数据接入的自适应智能感应器信息模型 (Adaptive sensor information model,ASIM)。要想实现该模型,首先需要提供一些关于智能感应器的必要信息,比如,各个感应器自身属性的信息,感应器在使用过程中由于环境的不同其观测能力达不到峰值,这点需要根据实际经验提供给模型,在工作过程中还需要能够实时定位到感应器的位置信息。上述信息能够提供给模型辨识感应器的能力,但是要想完成自适应调整还需要包含传输过程中的数据协议和感应器的数据表达相关的元数据信息等[11]。
为了实现上述将异构资源自适应接入SWE 的需求,使用SWE 元数据描述ASIM,增加双向通信协议,一方负责与智能感应器协议进行连接,另一方接入到SWE 协议,同时对数据属性进行表达和数据本身的解译,使得最终得到的数据能被SWE 协议识别。
3.1 自适应资源智能感应器动态适配接入方法
由于不同的协议在传输之间需要进行适配,智能感应器所在资源层的协议多样,难以与SWE 服务所在应用层直接进行适配,因此提出一个双向协议转换层,将资源适配接入方法在本层实现,其在智能感应器一端接入各种不同协议,在SWE 服务层一端输出经过转换后的统一SWE 协议[12]。协议转换层由数据处理组件和数据管理组件组成。数据处理组件对接入的异构数据进行动态处理,数据管理组件对数据进行监督等,提供符合SWE 协议标准的数据,图1 所示为生成适配器流程。
图1 生成适配器流程
添加智能感应器时,系统自动生成适配器的步骤如下:(1)将相应的智能感应器部署到系统中,系统根据智能传感器实例化出模型;(2)将实例后的智能感应器根据实例信息进行注册;(3)在传感器信息管理器中注册对应智能传感器信息,添加该注册信息并进行维护;(4)在现有的方法数据库中查询示例,将查询到的内容输入到适配器生成模块,该模块会根据通信接口和数据模式动态的组合、配置这些抽象方法从而生成适配器;(5)智能感应器与适配器根据中间的协议转换层建立通信连接,从而进行数据协议和数据结构的转换;(6)通过数据解析器将数据进行解析,并将解析出来的数据接入到数据管理器对其进行统一管理;(7)数据服务管理器将数据接入到SWE 服务接口,数据服务管理器会根据SWE 的需要提取出智能感应器和数据管理器中的数据,将得到的数据按照 SWE 规范融合,最终得到适配SWE 服务的异构感知数据。
3.2 适配器结构
由上文介绍可知,适配器的主要生成依据是当前实例化的信息模型。适配器由于要处理两种不同的协议,因此需要封装协议层软件和基本的数据解译方法对数据进行解译。下图所示为适配器的总体结构,其主要由解析层、数据业务层、会话层组成。其中各部分的功能如下:会话层处在智能感应器和解析层之间,由多种连接器组成,在工作过程中可以为不同的智能感应器选择合适的连接器进行通信连接。解析层具有识别不同数据封装形式的功能,并依据识别到的结果在数据库中选择对应的解析方法,进一步将得到的方法进行组合,形成逻辑译码器。数据业务层管理数据的交互,将得到的数据实时提交。图2 表示适配器结构。
图2 适配器结构
3.3 动态适配机制
异构资源数据如果动态适配的接入该模型,首先应该在智能感应器和适配器之间通过中间件建立通信连接。动态适配器的生成主要取决于两部分:(1)智能感应器实例属性;(2)本地方法数据库方法多样性。其具体的生成步骤分为以下三部分:
1)获取智能感应器的数据协议;
2)根据所得到的协议来对智能感应器的数据结构和自动解析方法动态组合过程指导;
3)据以上步骤动态生成具有具体智能感应器协议特征的动态适配器。
因此,要想在实际使用过程中根据各种不同的智能感应器生成自适应适配器,本地数据库方法内容的全面性与否有至关重要的作用,一个最基本的本地方法库至少要包含一些通用性的数据解析方法以实现对数据的解析功能,满足智能感应器与适配器之间通信的相关方法也应包含其中[11]。动态生成适配器流程如下:(1)实例化信息模型,将用于表示智能感应器属性的信息保存,根据得到的信息模型创建对应的适配器类文件;(2)根据反射(reflective)方法动态的对上述创建出的类操作,取出类的相关属性,据此创建与之对应的成员变量和其set、get方法;(3)用get 方法读取由读取能力信息、输出数据结构和字段标识组成的字段结点,在本地方法数据库中查询该结点,根据查询到的结果实时添加与智能感应器相适应的连接方法和译码方法;(4)结点信息每次读取之后会由标志位判断当前是否读取完毕,读取完毕则创建与数据业务层交互的方法,并将资源提交给数据业务层;如果没有读取完毕,则重复读取直至该过程结束;(5)根据得到的类的属性创建构造函数,并在主函数调用该构造函数通过虚拟机编译成Class 文件,保存该文件。
图3 动态生成适配器流程
协同制造链能够充分利用企业现有的制造资源和社会制造资源[13],根据市场需求迅速的与其它企业组成网络化制造动态联盟开展复杂零件的异地协同制造。图4 为使用本文提出的动态适配机制来对感应第三方资源的变化,然后进行资源解析,从而动态的生成适配器,然后将资源数据更新,传递给网络协同资源池供更多的企业或者个人共享该资源的更新,进一步针对变化的资源以及现实条件做出相应抉择,实现整个网络的互联共享和企业之间的协同制造。第一部分的第三方资源在现实中会存在大量的并发问题从而导致系统的处理速度变慢,采用Kafka Connect 来对数据进行管理,它可以快速有效的对数据进行传输,大体上流程是首先将第三方资源数据传入到Kafka,然后将处理后的数据导入到对应智能感应器部分,实现数据有序管理。
图4 第三方资源动态适配接入示例
3.4 资源更新适配接入
本文的第三方资源包含人才资源、技术资源、创新资源等内容,就类型而言,这些数据呈现多种多样的趋势,其来源主要是公共机构网站和私企收集的[13]。在数据传输过程中用到的协议包含可靠传输TCP 协议、不可靠传输UDP 协议、HTTP 协议等。传输过程中为保证安全可靠,需要将数据进行封装,常用的有三十二进制、json 格式数据、xml 格式数据等[14]。表1 为实际过程中数据的具体信息,系统根据实际提供的信息加载Socket 链接方法和相应封装数据的译码方法,按照本文提出的方法动态生成适配器。生成适配器之后会将输入的数据转换成能接入数据管理层的格式。数据管理层会对数据进行重组,生成统一标准的SWE 元数据。
表1 实例化资源结点信息
图5 将本文所提出的方法应用于浙江省技术资源管理,面向协同制造技术资源共享模式,针对实现资源互联共享与开展技术协同服务的需要,通过资源感知、资源动态组织、资源分解与在组织以及资源共享撮合服务为核心内容的资源互联共享技术[15]。实现具体流程如下:(1)使用本文所提出的异构信息传感器模型对所有资源的状态和质量以及资源属性进行检测;(2)ASIM 中定义了参数信息可以对资源进行描述和定位;(3)将所发现的资源通过度量和过滤实现资源的动态组织;(4)通过适配器中解析层将资源分解,根据不同的资源封装格式,选择对应的解译方法;(5)资源解析曾解析后的资源会接入数据管理层,其对数据进行统一管理并与SWE 交换信息,遵循SWE 标准对数据进行重新构造,对资源进行自适应动态再组织。
图5 浙江省技术资源管理动态适配图
以上应用结果显示,本文提出的方法能较快的对更新的资源信息进行感知,从而对异构资源解析成统一格式接入到网络协同制造资源池中,实现资源的互联共享。
4 结束语
本文主要围绕第三方资源实时更新、优质资源动态发布的需求,研究第三方资源动态适配接入技术。通过感应器对人才资源、技术资源、培训资源、服务资源和创新资源等第三方技术资源进行实时监测,在对发生调整的资源信息进行解析之后,动态生成适配器,适配器对数据结构进行转化接入到网络协同制造技术资源池。完成众创资源的互联共享的渠道,提高资源快速发现、高效组织以及高效利用的能力。