去年,温家宝总理在政府工作报告中明确提出“加快物联网的研发应用 ,再一次体现了政府高度重视物联网的发展。在国家政策推动下,电信运营商积极介入物联网业务,把物联网作为未来重要的赢利点。
1 物联网体系结构及现有EPC中间件设计特点
物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络。在业界,物联刚一般被公认为分成三个层次,底层是感知和收集前端数据的感知层,中间是传输和处理数据的网络层,最上面是利用经过分析处理的感知数据,为用户提供各种应用服务的应用层。物联网系统架构如图1所示。
图1 物联网体系结构
感知层是物联网发展和应用的基础,主要通过射频识别(RFID)系统实现RFID标签的自动采集和识别。RFID标签附着于可跟踪的物品上,从而实现全球流通,感知器与信息系统相连, 读取标签中的电子代码(Electronic Product Code,EPC),并将其输入网络信息系统。
物联网的网络层将建立在现有的移动通信网络和互联网基础上,对感知层采集上传的数据进行存储、查询、分析、挖掘、理解以及基于感知数据决策和行为,而实现这一系列数据管理和处理的核心是EPC中间件,它作为物联网网络层的重要组成部分,承前启后,为应用层提供各类服务基础。
应用层是物联网发展的目的,软件开发、智能控制技术将会为用户提供丰富多彩的物联网应用,各种行业和家庭应用的开发将会推动物联网的普及,也给整个物联网产业链带来利润。
从物联网体系架构来看,基于现有的资源,运营商的核心竞争力在物联网网络层这部分,既要发挥自己的优势,又要避免被局限在管道的角色上,运营商应该把目光聚焦在EPC中间件上,成为物联网巾间件服务提供商,把控网络层的核心,占据物联网产业链的价值高地。
物联网企业信息交互的EPC中间件设计结合了传统中间件的特点,利用基于CORBAR~RMI的J2EE技术实现.程对象调用,能够最大程度的实现分布式的软件体系:构。在中间件开发的后期,以SOA的形式通WebService发布在企业服务总线上,方便客户端的调用。同时使用J2EE当中的 EJB技术明确的规范了事务操作和事务管理并且有相应J2EE容器来对中间件当中的事务进行管理。
EPC中间件能够屏蔽应用层和网络协议的差异,为各种具体应用提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为下层应用提供了一个相对稳定的上层服务环境。然而,传统中间件所应遵循的一些原则离实际还有较大差距,多数流行的中间件服务使用的API和协议都是专有的,使得应用建立于不同厂家的产品很难实现互操作。有些中间件服务只提供部分平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着服务的延展往往还需重写他们的应用。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在Client方和Server方的功能分配。通常将表示服务放在Cfient方以方便使用显示设备,将数据服务放存 Server方以靠近数据库,但实际应用中也并非总是如此,何况其它应用功能如何分配也是不容易确定的。
针对上述不足,本文提出一个基于云计算平台的EPC中间件体系架构,运营商可以利用云计算平台抽象化计算与存储资源,整合中间件服务,动态的分配给需要使用的各项用户或应用,在其上开发业务应用时只需要按照其应用程序接口规范调用所需资源即可,其使用费用跟总的资源使用量成正比而不像以往跟系统吞吐撮成止比。如此用户只需关心业务逻辑实现,运营商可以把各种应用服务部署到云计算平台运行然后通过云计算平台的控制面板或者接口提供应用服务。
如此一来,物联网中的应用服务程序可通过共享同一个庞大的云计算资源池来获得超大的系统吞吐能力以满足用户在某些情况下所需要的超高计算或者存储资源请求,而付出的代价却只是其总的资源使用量的费用。以上系统的动态扩展与收缩过程并不需要用户干预,系统会自动进行,开发者在其平台上开发时除了按照其规范并遵循程序易于被横向扩展的原则外,跟丌发本地应用程序没有太大区别,这给系统开发者与使用者都带来了很大的实惠,而运营商也可以牢牢的控制中间件服务这一核心环节。
2 改进的EPC中间件体系结构
EPC中间件系统基于云计算平台,主要由边界节点(Es)和内部节点(Is)构成,其中节点间多为异地分布。这一特点决定厂分布式的系统架构应该是一种必然的选择,基于云计算技术的系统结构则能够最人限度地发挥分布式计算的优势。为此,本文提出 一种改进的EPC中间件系统结构,如图2所示。
图2 基于云计算的EPC中间件系统结构
边界节点中,RFID识读器用于接受RFID标签的射频信号,信息初步处理后,通过数据传输接口向相应的内部节点传递。
内部节点由事件管理系统、任务管理系统、接口模块组成。事件管理系统主要用于接收和处理从边界节点得到的信息,并过滤得到所需的数据;任务管理系统负责管理由上级中间件或企业应用程序发送到本级中间件的任务,这些任务代表用户在EPC中间件端运行,运用SOAP服务器负责表明任务管理的功能和接口,它使任务管理器成为可以被所有系统统一访问的SOAP服务;接口模块由面向企业具体应用的接口、EPC信息服务(EPCIS)接口以及ONSH服务接口构成,它是EPC中间件系统与外界交互的通道,通过使用云计算技术,接口模块向外部提供有状态的Web Service,屏蔽了系统内部各子系统实现的差异,统一了EPC中间件与外部环境之间的通信方式,模块内子系统采用SOA的设计思想,使整个模块变得灵活而易于扩展,当外部环境的业务逻辑改变时,只要Web Service接口不变,EPC中间件就无须作调整。
3 云计算的应用
云计算平台提供EPC中间件系统应用服务的基本运行环境,满足服务的定义、服务管理和服务调用等三个方面的要求。运行环境对服务的定义的支持,使用户能进行服务定义来满足业务的需求。服务管理主要提供对服务的组装、编排、监管等功能,以满足特定业务流程的定义。而服务调用则为用户提供的服务调用的统一接口,方便用户使用云计算平台中的服务。但在复杂企业运用方面,云计算并没有很好的软件架构。从本质上说,在抽象层次上,服务位于业务和技术中间。面向服务的软件架构设计一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。面向服务架构(SOA)将其服务的IT架构抽象出来,将其功能以粗粒度的服务形式表示出来,每种服务都清晰地表示其业务价值,那么,这些服务的顾客(可能在公司内部,也可能是公司的某个业务伙伴)就可以得到这些服务,而不必考虑其后台实现的具体技术。更进一步,如果顾客能够发现并绑定可用的服务,那么在这些服务背后的IT系统能够提供更大的灵活性。SOA强调服务第一,业务和IT对齐,为灵活而构建的思想,这些都能很好的帮助云计算平台快速应对服务需求变化。所以考虑采用SOA与云计算相结合的方式,充分发挥各自优势,提供更加开放完善的EPC中间件体系架构。
3.1应用服务定义层设计
服务定义主要为用户提供在平台中定义服务的功能,包括两个方面的含义,其一支持企业的目标和战略的服务设计。SOA的IT与业务对齐的思想可以实现满足云计算的这种需求。其二是从编程角度上看,支持服务的设计与开发,即具体服务的实现。
为了使用SOA构建系统,在应用服务定义层将引用服务组件体系结构(Service Component Architecture,SCA),SCA是一组规范,描述了用于使用面向服务的体系结构来构建应用程序和系统的模型。在SCA中业务功能都是用服务来描述的,通过将这些服务进行组装就可以提供新的业务;在组装的过程中,可能需要新开发一些服务,也可能从企业己有的业务功能中抽取出服务进行重用。通常将构建面向服务的应用程序的步骤分为两大部分:
·组件的实现,提供服务和使用其他服务。
·为了构建业务应用程序对组件集进行的组装,通过将服务引用连接到服务来完成。
在服务定义层将服务实现和服务组装从基础设施功能细节以及用于调用服务的访问方法细节分离开来,我们可以方便的将构件的服务转换为不同的调用协议,实现SOA中对各业务模块间服务整合的功能。SCA组件在业务级别进行操作,只使用非常少的中间件API进行工作,同时它的接口是标准的,主要是WSDL 接口和I a接口,可以通过组件容器提供QoS(quality of service)的服务。
3.2应用服务管理层设计
服务管理主要提供组装服务所需的流程编排服务,统一事件支持, 以及相关的规则服务、任务调度、选择器等。服务管理层提供的服务既可为系统内部服务集成提供支持,也可以以Web Service或API的方式提供给外部程序调用,如服务编排和规则服务等,这也为平台为用户提供了更多服务选择。
SOA中流程往往是跨系统的,通过流程编排与管理来协调服务之间的业务流转,监控服务的运行状况,并通过对流程的优化提高服务对应用的响应时间,降低运营成本。此外,流程编排与管理负责把在流程协调的同时,产生的相关应用开发人员的任务,推送到个人工作台。所以把流程服务提供给最终用户是使用是平台的不可或缺的功能,也是平台的一大特色。
在管理层引入统一事件的支持,提供对业务事件的支持,帮助各服务模块间实现松耦合。业务逻辑发出事件后不需要关心事件消费对象,为业务流程的组合带来了很大的灵活性,而且可以实现服务间非侵入式的集成。在流程管理方面,统一事件支持还提供了业务流程的自动流转的功能。
3.3应用服务调用层设计
提供给外层使用的服务位于该层。提供的服务包括:支持开发用户在平台中开发运用的SDK,可供外部调用的Web Service,平台提供的个性化软件服务,以及满足用户个性化需求的其它服务。
SDK提供在云平台上开发的应用工具,类似传统开发中的API,但这里的SDK是经过深度定制的,提供符合云计算平台的架构的应用服务接口。提供 SDK的主要目的是满足企业对IT的个性化需求。在当前企业自己管理软件的模式中,当企业需要一些个性化的软件时,技术部门就会把这个应用开发出来放到服务器上。如果有云计算平台提供服务时,企业可以借助SDK来开发个性化应用。
SDK提供支持企业应用基本的API,包括存储服务,队列服务,安全认证服务等。此外还提供调用Web Service和封装成Web Service供外部调用的能力。
4 问题和对策
一直以来,安全问题都制约着云计算的发展,是云计算在企业中实施的最大障碍。本文总结了平台面的安全问题并提出了相应的对策。
(1)数据安全。平台中的数据一般通过Internet传输,数据交由云服务管理后需要保住数据的安全,包括数据在服务器端的计算和数据备份问题。一般来说,企业数据都要求高安全性,如客户资料,合同中的投标规则等。但企业把这些数据提交给云计算平台后,企业就失去了对数据的控制权,无法确保数据的安全,增加了数据被泄露的可能性。
针对这个问题,当数据在Internet上的传输时,可以通过建立SSL安全隧道,采用VPN技术等方式来保证数据安全传输;当敏感数据保存到数据库中时也可以通过加密处理有效的保证数据的安全。各企业应用之间的隔离可以通过云计算的虚拟技术实现,保证企业与企业之间的数据隔离开来。
(2)服务质量。面对云计算服务,企业用户通常会对系统可靠性,可用性等方面持怀疑态度,担心出现问题后无法得到服务商的及时解决,诸如此类都影响到了企业中云计算的全面应用。
针对这个问题,可以引入SLA服务水平协议来为用户提供可靠的服务。同时SLA可以进一步对云服务提供商进行约束,提高服务质量,增加企业用户对云服务的信心。
5 结论
运营商布局物联网产业,角色很关键,不能只做信息的透明通道,应该在控制行业信息的基础上拓展行业信息化解决方案,立足传输、传感网络和应用网络开展产业合作,并借助物联网与3G网络结合的机遇在产业链中占据更加重要的位置。