文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.07.009
中文引用格式:于洪波,刘鸿飞,方丽英,等. 基于Web服务的物联接入系统设计[J].电子技术应用,2015,41(7):33-36,43.
英文引用格式:Yu Hongbo,Liu Hongfei,Fang Liying,et al. Design of Internet of Things access system based on Web services[J].Application of Electronic Technique,2015,41(7):33-36,43.
0 引言
多元感知设备随传感器技术的发展逐渐推动物联网(Internet of Things,IoT)产业的发展,并已正式被列为国家五大新兴战略产业之一。物联网是嵌入式系统、网络和控制系统的集成,由计算系统和执行器的嵌入式系统等异构系统组成。随着非标准化感知设备在物联网应用中的大规模接入,多元通信协议、异构设备信息、复杂节点管理等异构问题成为物联网应用中的挑战,应用开发者不仅需要关注用户的需求业务,也需要以模型化方式处理底层的基础化数据[1-2]。国内外对这种碎片化异构接入问题的研究主要侧重于针对具体的物联网相关技术来进行底层数据采集与融合,如采用中间件技术利用融合器消除针对ZigBee和RFID的异构接入问题[3]。但是目前针对平台化业务扩展以及融合互联网业务的物联接入系统的相关研究较少,也没有统一的碎片化异构处理模型。本文提出一种基于Web服务的物联接入系统的设计模式,该系统在物联网技术的客户端服务器(Client/Server,C/S)架构的基础上,将单一化基础操作业务进行面向服务架构(Service-Oriented Architecture,SOA)建模,再利用Web技术进行模型化服务的实现。整个系统封装整套感知设备物联接入流程与基础数据处理,实现应用业务与感知设备之间的无缝交互。
1 物联接入系统模型
物联网系统为三层架构,包括感知层、网络层和应用层[4],本文基于Intel ATOM处理器和Fedora操作系统,以SOA模式,将程序运行流程建模为若干接入服务模型。物联接入系统将上下位机封装在同一系统内部,将三层架构业务贯通,通过USB、RS485等硬件接口及其协议直接获取感知层的物理实体数据,通过核心处理模块完成碎片化异构数据的解析,通过Web应用接口联通具体信息化业务。
1.1 面向服务模型
传统物联网的接入系统针对单一业务的一种或一类设备进行针对性较强的闭环控制,底层控制业务细节描述较多,耦合度较高,不利于扩展应用。SOA架构的引入可以将程序流程抽象为服务模型,并实现物联网业务松耦合,将具体的闭环控制流程转换为粗粒度服务逻辑,便于服务模型以组件形式进行代码实现与部署[5]。引入SOA的物联接入系统模型如图1所示,模型扩宽单一业务的闭环控制系统为一种直接基于Web端服务配置的接入设备管控平台,在实际物联接入系统中将通过HTTP协议请求的人机交互界面称为上位机,并作为服务提供者;将通过操控线程实际管理接入设备的接入控制器称为下位机,并作为服务消费者。二者之间的交互业务为封装在消息管道中的一系列服务,该服务通过服务代理进行规约,来面向不同的基础操作。服务代理以文本和数据表的形式存储在数据库服务器中,通过此种文件类协议对服务进行分发和约束。在服务提供者、服务消费者和服务代理之间的SOA模型构建完成后,上位机可直接通过订阅发布模式,统一下发需求指令,消息管道中的各类服务在协同完成操控接入设备任务后,将所需返回的统一化数据进行反馈,完成这个接入基础化操作流程。接入设备的碎片化异构问题通过各类服务按照代理规约的处理协议进行消除。
1.2 硬件结构模型
物联接入系统核心处理模块采用Intel公司ATOM芯片作为核心处理器(CPU),1 GB同步随机存储器(DDR SDRAM),8 GB固态硬盘(SSD);外围设备提供串行数据收发的USB接口,支持界面开发调试的VGA接口;网络设备内置网卡,并提供WLAN模块和Ethernet以太网口。CPU采用双发射复杂指令集(CISC),可处理规模较为庞大的工程。系统移植Fedora Linux操作系统,该操作系统安全性能高,目录结构精简,并且适合多平台开发操作。系统硬件结构模型如图2所示。控制台、中央处理单元以及RS485总线接口和USB接口均集成在以ATOM中央处理单元为核心的植入Fedora操作系统的嵌入式控制设备上。控制台与中央处理单元虽然在同一硬件系统之中,但是中央处理单元偏重于描述嵌入式系统对基础信号与数据的基于CISC的运算处理,而控制台侧重于描述在可视化界面下通过浏览器的人机交互接口以及SOA模型关于服务在消息管道中的交互流程。由于Web服务可扩展性良好,因此可以通过HTTP协议从远程PC端或其他嵌入式终端对本系统进行访问。对于底层感知设备,支持RS485的总线型感知设备直接与RS485总线接口相连接,根据RS485通信帧格式进行交互;支持ZigBee协议的感知设备可与ZigBee终端进行绑定,若干ZigBee终端借由通过协议栈构建的自组网络将无线感知设备的数据统一汇总到ZigBee协调器,并通过协调器的USB接口传输到本系统。
2 物联接入系统设计
根据Web服务的物联接入系统模型,分别设计SOA模型与系统上位机、下位机及其交互过程的结构流程。设计基于RS485和ZigBee协议的接入流程,完成整体系统的软硬件对接工作。
2.1 SOA模型的组件设计
如图3所示,Web服务根据具体应用需求抽象为消息形式,通过统一化发布模式在SOA模型组件中下发,持久化在数据库内的配置数据以交互协议的身份对下发的消息进行规约,规约过程通过修改原始信息帧格式以及添加状态码等方式,将统一的消息分割为相互独立的服务,实现业务解耦过程。独立服务中嵌入执行器描述性指令,在下发指令时向线程池申请线程,并通过多线程并发方式将指令信息以各种执行器的执行模式下发到控制器。控制器直接与感知层物联接口相连,可将各执行过程中的数据以串行输出的形式写入到实际设备中,完成对应用的实际设备的管理。设备的接入与数据回馈过程与之流程相反,因而通过SOA模型组件可以实现具体应用于实际设备接入管理过程中的数据透传。
2.2 系统软件设计
根据物联接入系统模型的划分,按照上位机、下位机和消息管道分别进行软件设计。
2.2.1 上位机软件设计
上位机采用Java语言进行设计,结合J2EE框架实现Web服务管理前后台,通过Tomcat轻量级服务器发布,可通过浏览器直接访问。上位机软件流程如图4所示,主要实现Web服务的动态配置以及接入管理数据的消息流形式下发,其间不仅要监听本地的配置响应,还侦听远程访问中的基于HTTP协议的请求数据流。此外,上位机也实时接收下位机上传的物联接入数据,实现更上层的具体应用的业务逻辑支持及可视化数据展示等功能。
2.2.2 下位机软件设计
下位机采用C++语言进行设计,通过Linux操作系统下的多线程库pthread进行类库支持,通过GCC标准编译器进行源码编译,最后通过与附加文件的连接,直接在嵌入式系统中生成可执行文件。下位机软件流程如图5所示,主要通过侦听消息通道获取上位机下发的操作流消息。如表1所示,根据配置数据库约定的协议规则解析拆分消息为控制字数据,标定服务类型的数据直接持久化在ROM中,并扫描存储注册设备的文件信息,如存在合法接入的设备,则将控制字中实际用于操作设备的字节进行分发。
2.2.3 消息管道软件设计
消息管道遵循管道过滤器设计模式[6],以松耦合框架技术,融合消息过滤机制实现。消息管道将数据以过滤器链形式上传下发。消息管道如图6所示,将程序初始化完毕即与上位机对接并轮询扫描配置文件中的系统内通信协议,并据此以规则分配服务,该分配过程通过框架维护的独立代码类实现。服务过滤器以组件形式集成于框架之中,并与相关代码类动态组合,按不同服务封装为不同执行的描述信息。过滤器采用多层结构,分别负责数据编解码、数据读写、数据安全认证、数据套接字传输。通过过滤器链的服务各自排队申请线程池中的资源,得到资源的服务即刻向下触发服务,该过程通过多线程调度,可并发执行。
2.3 系统实现
根据基于Web服务的SOA模型以及物联接入系统的设计流程,在嵌入式环境下的操作系统中,利用Java Web技术实现上位机与消息管道功能,利用C++与多线程技术实现下位机功能。系统对接完毕后,感知层实际设备接入部分,分别利用Z-Stack协议栈实现ZigBee星型自组网,利用ModBus协议下的差分信号开关端子实现RS485接口。通过硬件接口利用无线和有线方式收集各类感知设备的接入信息。实测表明,本系统可正确实现从Web界面到感知设备之间所有管控操作流程,将感知层、网络层、应用层之间的基础性操作以服务方式有效封装。
3 结论
本文提出了一种基于Web服务的SOA模型,并将该模型的建模思想利用嵌入式编程和Web编程技术通过松耦合类模式实现,各服务间通过软件接口进行动态对接。用户可根据具体应用需求在Web端进行服务流程以及系统内通信协议的配置,之后利用系统的处理流程直接按需操控感知层的接入设备并触发具体的需求,对基础接入流程中的各类碎片化信息异构进行了有效消除。本系统实现用户-业务-实体之间的三元域交互,在物联网应用场景下有一定的通用性和扩展性。
参考文献
[1] Wen Yingyou,Li Zhi.A service-integrated sensor network middleware applied to industrial solutions of IoT related[J].Telecommunication Systems,2013,53(1):61-68.
[2] 沈苏彬,范曲立,宗平,等.物联网的体系结构与相关技术研究[J].南京邮电大学学报(自然科学版),2009,29(6):1-11.
[3] 李杰.物联网中无线传感器节点和RFID数据融合的方法[J].电子设计工程,2011,19(7):103-106.
[4] Fan Chunxiao,Wen Zhigang,Wang Fan,et al.A middleware of Internet of Things(IoT) based on ZigBee and RFID[C].IET International Conference on Communication Technology and Application,ICCTA,2011:605-609.
[5] Li Peng,Dong Junping,Wen Junhao,et al.A SOA-based servcie discovery framework in Internet of Things[J].Journal of Convergence Information Technology,2011,6(9):310-315.
[6] 邵华钢,程劲,王辉,等.面向物联网的系统及其中间件设计[J].计算机工程,2010,36(17):84-86.