基于SOA的物联网平台开发
扫描二维码
随时随地手机看文章
引言
近年来,物联网技术得到了突飞猛进的发展。但在实际应用中,许多物联网项目仍然面临着各种困难。在实际落地时,项目往往采用平台+应用的设计策略。其中,平台的作用尤为重要,但实际上,许多物联网项目在建设过程中,由于平台设计不够完善,致使随着项目建设的深入,暴露出越来越多的问题,造成项目无法顺利按照预想的设计完成。
针对当前物联网平台设计上的一些缺陷,我们提出了基于SOA的平台设计理念,来解决物联网项目中平台的设计问题。
1物联网平台
1.1物联网平台概述
在IT项目中,平台可以分为技术平台和业务平台两类。前者是一系列通用开发组件的集合及项目开发框架等技术要素。本文主要讨论用于支撑物联网业务的业务平台。一般来说,业务平台应具有两个原则:一是平台的支撑作用;二是平台的业务无关性。前者保证了整个业务系统的层次划分,和具体业务不相关的功能,应放置到平台层面,使得应用系统能够重点关注自身的业务逻辑,而不必关心通用功能或底层功能;而后者则保证了平台的支撑作用。一般来说,平台应满足开闭原则(OCP),即对扩展开放,对修改关闭。平台一旦完成之后,不应该随着上层应用的变动而频繁、大规模地修改自身。但同时,平台必须保证其开放性,即在一定的范围内,能够通过扩展自身实现对各种新的业务进行支撑。
1.2物联网平台设计的误区
在采用“平台+应用”的建设策略时,平台的建设往往存在两个误区:
(1)试图建设一个能够支持所有物联网业务或某一行业所有业务的平台
这种平台的建设策略,是希望能够支撑尽可能多的具体业务。一般来说,在物联网项目的整体建设中,都希望能够规划出这样一个平台,一方面,使得上层应用能够尽可能专注于自身业务逻辑的开发;另一方面,也希望借着本次或本期项目的建设,能够为后续新业务的扩展,奠定一个平台基础。但事实上,试图建设一个能够支持尽可能多的业务的平台,往往导致该平台只能完成最基本的一些服务。为了能够尽可能实现通用,平台会逐渐削弱自己,越来越多的功能被上移到应用层,最终仅保留了最底层的服务,从而失去了平台的支撑作用。
(2)平台过分参与了业务应用
这种误区会造成了一个应用对一个平台的结果。这种架构,固然对于系统层次划分、合作开发等方面有所帮助。但它削弱了平台的通用支撑作用,使得平台对后续扩展的支持变得很差。同时,在实际开发中,哪些功能放到应用中,哪些功能放到平台中,成为一个棘手的问题,稍不留神就会打乱集成系统的体系结构,最终使得平台成为一个有名无实的组件。
针对上述问题,本文提出了基于SOA的物联网平台开发策略,用以解决平台建设过程中的种种问题。后文将具体描述基于SOA的物联网平台开发策略。
2基于SOA的物联网平台建设策略
2.1物联网平台的组成
物联网业务涵盖的范围非常广,开发一个能够支撑所有应用的物联网平台是不现实的。但从行业的角度来说,每个行业内部各种具体的业务还是具有一定的共性,能够将这些共同的东西沉淀到平台中。以智能物流行业为例,我们提出物流行业的物联网平台,应当包含如下的组件,具体如图1所示。
该平台需要承担8个方面的作用:
(1)支撑作用:平台需要提供应用依赖的基础组件库,包括报表、日志、权限、工作流、安全等组件。
(2)统计分析作用:平台需要提供统计分析功能,用于分析商品流通数据、物流运输异常记录等,主要提供给税收和海关等政府部门。
(3)数据中心作用:平台需要提供数据中心的作用,存储和维护行业数据和管理数据。
(3)数据采集作用:平台需要提供统一的数据采集与转换功能,实现对下层具体数据采集设备的屏蔽,即一个综合采集中间件。
(5)决策支撑作用:平台需要提供决策支撑作用,用于指导行业的正规运营。
(6)企业管理作用:平台需要提供企业管理的功能,对企业加入物联网运营、获取物联网资源等提供指导和管理。
(7)门户作用:平台需要提供门户作用,对外发布政策法规、行业情况以及其他信息服务,也可以提供用户注册和资源下载等服务。
(8)运维作用:系统运维,主要是设备的远程维护和管理。
图1物联网平台应当包含的组件图
2.2基于SOA的平台组织
在SOA体系中,处于核心位置的基础设施是企业服务总线(ESB),所有的功能点以服务的形式向ESB注册,由ESB来提供基于标准的连接服务,包括动态查找、选择服务、消息传递、路由及转换、协议转换等。
显然,采用了SOA之后,基础设施(如ESB)已经构成
了相比'物联网平台”更加底层的平台。因此,从SOA体系来看,“平台”服务与“应用”服务可以等同起来,都仅仅是SOA架构中的平级服务而已,从而解决了平台扩展性与业务支撑上面的矛盾。基于SOA的物联网业务体系结构如图2所示。
而对于每个组件(或系统)来说,也通过SOA的架构来进行整合。从逻辑上讲,整个系统构成一个ESB级联的结构,在实际实施时,根据项目需要,也可以考虑只部署一套ESB系统。
这种组织方式,可成功实现平台的OCP原则。下面以数据采集中间件为例论述该架构的开放扩展特性。
对于物联网系统来说,数据采集层是重要的一层,是各类上层业务的基础。对于物流行业来说,常见的数据采集方式有RFID、条码、GPS、抓拍识别等。数据采集体系建设上,往往涉及基础设施建设、设备架设施工。因此,采集层设备稳定性较高,一般来说只可能出现新增采集设备或采集方式,不大可能出现大规模整体方案替换的场景,最多也就是逐步演进。因此,可以说采集中间件部分是相对稳定的。
基于SOA的采集中间件体系如图3所示。
在综合采集中间件系统中,各个设备的驱动、中间件自身业务、外部访问接口等,都以服务的方式构建,并挂载到子系统内部的ESB上。各个部分的扩展性支撑机制如下:
(1)设备驱动服务
每个设备驱动应包含设备的链路维护、通信协议、原始数据收集等功能。当增加一种新的设备到系统时,只需要增加对应的设备驱动服务即可。
(2)中间件自身业务服务
中间件自身应包含一部分的数据转换、过滤、分组、去重等业务。这些业务也通过服务的形式发布到ESB上,由ESB负责将对应设备驱动服务产生的数据路由到对应的中间件业务上。
(3)外部访问接口服务
经中间件处理后的数据,应以统一的方式上报给上层业务。数据访问接口是连接中间件自身ESB和大系统ESB的门户(如果物理上无ESB级联,则外部访问接口只起到逻辑上的作用)。由ESB负责将处理好的数据路由到对应的发布接口。随着后续业务的增多,当需要新的接口形式时,可以扩展或增加新的外部接口服务。
由此可见,基于SOA的体系成功适应了物联网平台的扩展性和支撑性要求。实践证明,这种架构能够使得物联网平台的体系更加清晰,为后续深入和扩展打好基础。
2.2物联网平台的部署
由于SOA架构天生就适应了分布式的部署方式,它使得物联网平台能够跟随实际项目的要求进行更加灵活的部署,总体来说,可以存在两种部署方式:
(1)与应用结合的部署方式
对于规模较小、业务较单一的项目,可以采用这种方式。即“一个平台-一个应用”的方式。这种部署方式下,物联网平台不独立运营,而是与应用一起发布到一台服务器,或一个小型服务器集群上。可以考虑选用较为轻量级的ESB产品来进行整合。服务间的相互调用,宜采用各种轻量级的调用方式,甚至本地调用,服务注册等功能(如UDDI)可以省去。这种部署方式同样保留了SOA的种种优势,同时不会使得整个系统变得过分臃肿。
(2)独立运营的物联网平台
对于大型业务,后续扩展可能性较大的项目,宜采用独立运营物联网平台的方式进行部署。物联网平台单独运营于一个服务器集群之上,并由专门的运营团队进行日常维护。物联网平台除保证完善的支撑业务功能外,还要实现完善的安全机制和服务注册机制。所有外部服务(具体业务应用)通过完善的远程调用机制(如WebService)来实现与平台服务或其他外部应用服务的交互。
综上所述,基于SOA的物联网平台是非常灵活的,能够实际项目特点,选择合适的部署方式。同时,两种部署方式也能够方便地进行转换。
3结语
本文结合相关经验,对基于SOA的物联网平台设计进行了详细讨论,以物流行业综合采集中间件为例,讨论了物联网平台扩展性与支撑性通过SOA的实现策略。为各类物联网项目的建设,提供了一定的经验参考。
20211222_61c3481b7a2ba__基于SOA的物联网平台开发