资源描述
TaiYuan University of Technology物联网工程设计物联网工程设计1TaiYuan University of Technology第七章第七章 物联网软件设计物联网软件设计最少学时:最少学时:6学时;学时;知识点知识点 :物联网软件的特点和分类;物联网软件的特点和分类;物联网感知层核心技术及软件设计;物联网感知层核心技术及软件设计;物联网接入层核心技术及软件设计;物联网接入层核心技术及软件设计;物联网应层核心技术及软件设计;物联网应层核心技术及软件设计;物联网中间件分类及设计;物联网中间件分类及设计;学习目标:学习目标:掌握物联网软件的特点和分类;掌握物联网软件的特点和分类;掌握物联网感知层核心技术及软件设计;掌握物联网感知层核心技术及软件设计;熟悉物联网接入层核心技术及软件设计;熟悉物联网接入层核心技术及软件设计;掌握物联网应层核心技术及软件设计方法和步骤;掌握物联网应层核心技术及软件设计方法和步骤;熟悉并能撰写合格的软件设计报告;熟悉并能撰写合格的软件设计报告;2TaiYuan University of Technology第七章第七章 物联网软件设计物联网软件设计3物联网软件技术的发展离不开系统架构和硬件的支持。完整的物联网系统包含感知层、传输层和应用层(包括处理子层和应用领域子层),涉及的技术基础技术基础包括:标准化、感知材料和标识技术、安全和隐私、功率和能量存储技术、发现和搜索技术、组网激素、通信技术、数据流及数据处理技术、软件和算法等。物联网软件设计也分散在这些层次中,协助硬件一起完成特定层次功能。本章简要介绍物联网各层涉及的软件的设计方法、特点和注意事项。TaiYuan University of Technology主要内容主要内容4物联网软件设计概述物联网软件设计概述物联网应用层软件设计方法物联网应用层软件设计方法物联网中间件技术物联网中间件技术面向构件及服务的设计技术面向构件及服务的设计技术以以APP为中心的物联网软件生态系统为中心的物联网软件生态系统物联网部署物联网部署物联网应用软件设计与部署案例教学物联网应用软件设计与部署案例教学物联网感知层核心技术与软件设计物联网感知层核心技术与软件设计物联网接入层核心技术与软件设计物联网接入层核心技术与软件设计TaiYuan University of Technology7.5 7.5 物联网中间件技术物联网中间件技术传统的中间件是一种独立的系统软件或服务程序,是伴随着网络技术的产生、发展而兴起的,为网络分布式计算环境提供通信服务、交换服务、语义互操作服务等系统之间的协同集成服务,解决系统之间的互连互通和资源共享问题。在物联网中采用中间件技术,是为实现多个系统和多种技术之间的资源共享,最终组成一个资源丰富、功能强大的服务系统。从本质上看,物联网中间件是物联网应用的共性需求(全面感知、互联互通和智能处理),与已存在的各种中间件及信息处理技术,包括信息感知技术、下一代网络技术、人工智能与自动化技术的聚合与技术提升。TaiYuan University of Technology7.5 7.5 物联网中间件技术物联网中间件技术目前阶段,一方面,受限于底层不同的网络技术和硬件平台,物联网中间件研究主要还集中在底层的感知和互联互通方面底层的感知和互联互通方面,现实目标包括屏蔽底层硬件及网络平台差异,支持物联网应用开发、运行时共享和开放互联互通,保障物联网相关系统的可靠部署与可靠管理等内容;另一方面,当前物联网应用复杂度和规模还处于初级阶段,物联网中间件支持大规模物联网应用还存在环境复杂多变、异构物理设备、远距离多样式无线通信、大规模部署、海量数据融合、复杂事件处理、综合运维管理等诸多仍未克服的障碍诸多仍未克服的障碍。7.5.1 中间件概述7.5.2 物联网中间件分类7.5.3 基于中间件的物联网应用软件设计案例TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术77.5.1 中间件概述IDC曾经给中间件的定义:一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,位于客户机服务器的操作系统之上,管理计算资源和网络通信主机一主机一 中间件中间件分布式应用分布式应用中间件中间件APIAPI操作系统操作系统APIAPI操作系统操作系统处理处理 存储存储 通信通信主机二主机二 中间件中间件分布式应用分布式应用中间件中间件APIAPI操作系统操作系统APIAPI操作系统操作系统处理处理存储存储通信通信图图7-6 7-6 中间件在应用系统中的位置中间件在应用系统中的位置TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术87.5.1 中间件概述许多物联网体系架构中,经常把中间件单独划分一层,位于感知层与网络层或网络层与应用层之间。物联网中采用中间件技术,可以实现多个系统和多种技术之间的资源共享,最终组成资源丰富、功能强大的服务系统,最大限度地发挥物联网系统的作用。物联网中间件的主要作用主要作用在于将实体对象转换为信息环境下的虚拟对象,因此数据处理是中间件最重要的功能。同时,中间件具有数据的搜集、过滤、整合与传递等特性,以便将正确的对象信息传到后端的应用系统。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术97.5.1 中间件概述物联网中间件的特点(1)独立于架构。中间件独立于物联网设备与后端应用程序之间,并能与多个后端应用程序连接,降低维护的复杂性;(2)数据流。物联网的目的是将实体对象转换为信息环境下的虚拟对象,因此数据处理是中间件最重要的功能。(3)处理流。物联网中间件采用程序逻辑及存储转发功能提供顺序信息流,具有数据流设计与管理的能力。(4)标准化。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术107.5.1 中间件概述 按照技术发展的阶段划分,物联网中间件发展主要分成3个阶段应用程序中间件应用程序中间件阶段;架构中间件架构中间件阶段;解决方案中间件解决方案中间件阶段;目前,物联网中间件最主要的代表是RFID中间件,其他的还有嵌入式中间件、数字电视中间件、通用中间件等。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术117.5.1 中间件概述 RFID中间件RFID中间件是RFID标签和应用程序之间的中介,从应用程序端使用中间件提供的一组通用的API,能够读写RFID标签。RFID中间件在系统中的位置和作用参见下图7-17所示。RFID中间件是为了实现每个小的应用环境或系统的标准化以及它们之间的通信,在后台应用软件和读写器之间设置的一个通用的平台和接口。TaiYuan University of Technology图7-18 典型的嵌入式Web服务器系统模型7.5 7.5 物联网物联网中间件技术中间件技术127.5.1 中间件概述 嵌入式中间件位于嵌入式操作系统、数据库与应用软件之间的一种软件,使用嵌入式操作系统所提供的基本功能和服务,并为上层的应用系统提供运行开发环境。嵌入式系统的优点在于软件和硬件的可裁剪性,结构灵活性、稳定性和经济性。嵌入式中间件有两个重要的平台:嵌入式Web和Java VM平台。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术137.5.1 中间件概述 数字电视中间件指位于数字电视机顶盒内部实时操作系统与应用程序之间的软件部分;以应用程序接口API的形式存在,整个API集合被存储在机顶盒的闪存FLASH中,针对机顶盒的应用程序基于API进行开发,能够支持丰富的应用。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术147.5.1 中间件概述下面以RFID中间件的发展为例,简单介绍其3个发展阶段:应用程序中间件阶段应用程序中间件阶段多以整合、串接RFID读写器为目的,RFID厂商提供简单的API,以供用户将后端与RFID读写器串接,用户需要花费较多成本处理前后端之间的连接问题;架构中间件阶段架构中间件阶段是RFID中间件发展的关键阶段,不但已经具备基本的数据搜索、过滤功能,同时也满足企业多对多的连接需求,并具备平台的管理与维护功能;解决方案中间件阶段解决方案中间件阶段是在RFID标签、读写器与中间件发展成熟过程中,各厂商针对不同领域提出的创新应用解决方案,如Manhattan Associates提出的RFID in a Box,企业不需再为前端的RFID硬件和后端应用系统的连接而烦恼,该公司与Alien Technology Corp在RFID硬件端合作,发展中间件,针对该公司的900多家已有的供应链客户群发展供应链执行方案。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术157.5.2 物联网中间件分类按物联网底层感知及互联互通,和面向大规模物联网应用两方面介绍当前物联网中间件的相关研究现状:物联网底层感知与互联互通方面:EPC中间件相关规范、OPC中间件相关规范已经过多年的发展,相关商业产品在业界已被广泛接受和使用;WSN中间件,以及面向开放互联的OSGi中间件,正处于研究热点;大规模物联网应用方面:面对海量数据实时处理等的需求,传统面向服务的中间件技术将难以发挥作用,而事件驱动架构、复杂事件处理CEP中间件则是物联网大规模应用的核心研究内容之一。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术167.5.2 物联网中间件分类(一)EPC(Electronic Product Code)中间件EPC中间件是电子产品标签和应用程序之间的中介。应用程序使用EPC中间件所提供的一组通用应用程序接口,读取RFID标签数据。EPC中间件的标准接口,可以解决应用程序和RFID标签之间多对多连接的维护复杂性等问题。EPC电子标签标准化标准化方面,美国在世界领先成立了EPC Global(电子产品代码环球协会)。EPC Global主要针对RFID编码及应用开发规范方面进行研究,其主要职责主要职责是在全球范围内对各个行业建立和维护EPC网络,保证供应链各环节信息的自动、实时识别采用全球统一标准。国际上,目前比较知名的EPC中间件厂商有IBM、Oracle、SAP、Microsoft、Sun(Oracle)、Sybase、BEA(Oracle)等的相关产品。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术177.5.2 物联网中间件分类(二)OPC(OLE for Process Control,用于过程控制的OLE)中间件OPC是一个面向开放工控系统的工业标准,基于微软的OLE(Active X)、COM(构件对象模型)和DCOM(分布式构件对象模型)技术,包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统,现已成为工业界系统互联的默认方案。OPC是连接数据源(OPC服务器)和数据使用者(OPC应用程序)之间的软件接口标准。OPC Client/Server运行关系示意图TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术187.5.2 物联网中间件分类(三)WSN中间件相比RFID和OPC中间件产品的成熟度和业界广泛应用程度,WSN中间件还处于初级研究阶段,所需解决的问题也更为复杂。WSN中间件主要用于支持基于无线传感器应用的开发、维护、部署和执行,其中包括复杂高级感知任务的描述机制,传感器网络通信机制,传感器节点之间协调以在各传感器节点上分配和调度该任务,对合并的传感器感知数据进行数据融合以得到高级结果,并将所得结果向任务指派者进行汇报等机制。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术197.5.2 物联网中间件分类(三)WSN中间件针对WSN中间件的上述目标,目前的WSN中间件研究提出了诸如分布式数据库、虚拟共享元组空间、事件驱动、服务发现与调用、移动代理等许多不同的设计方法。1、分布式数据库基于分布式数据库设计的WSN中间件把整个WSN网络看成一个分布式数据库,用户使用类SQL的查询命令以获取所需的数据。分布式数据库方法把整个网络抽象为一个虚拟实体,屏蔽了系统分布式问题,使开发人员摆脱了对底层问题的关注和繁琐的单节点开发。然而,建立和维护一个全局节点和网络抽象需要整个网络信息,这也限制了此类系统的扩展。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术207.5.2 物联网中间件分类(三)WSN中间件2、虚拟共享元组空间指分布式应用利用一个共享存储模型,通过对元组的读、写和移动以实现协同。在虚拟共享元组空间中,数据被表示为称为元组的基本数据结构,所有的数据操作与查询看上去像是本地查询和操作一样。虚拟共享元组空间通信范式在时空上都是去耦的,不需要节点的位置或标志信息,非常适合具有移动特性的WSN,并具有很好的扩展性。但它的实现对系统资源要求也相对较高,与分布式数据库类似,考虑到资源和移动性等的约束,把传感器网络中所有连接的传感器节点映射为一个分布式共享元组空间并非易事。典型实现包括TinyLime,Agilla等。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术217.5.2 物联网中间件分类(三)WSN中间件3、事件驱动基于事件驱动的WSN中间件支持应用程序指定感兴趣的某种特定的状态变化。当传感器节点检测到相应事件的发生就立即向相应程序发送通知。应用程序也可指定一个复合事件,只有发生的事件匹配了此复合事件模式才通知应用程序。4、服务发现基于服务发现机制的WSN中间件,可使得上层应用通过使用服务发现协议,来定位可满足物联网应用数据需求的传感器节点。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术227.5.2 物联网中间件分类(三)WSN中间件-5、移动代理移动代理(或移动代码)可以被动态注入并运行在传感器网络中。这些可移动代码可以收集本地的传感器数据,然后自动迁移或将自身拷贝至其他传感器节点上运行,并能够与其他远程移动代理(包括自身拷贝)进行通信。除上述提到的WSN中间件类型外,还有许多针对WSN特点而设计的其他方法。另外,在无线传感器网络环境中,WSN中间件和传感器节点硬件平台(如ARM,Atmel等)、适用操作系统(TinyOS,ucLinux,Contiki OS,Mantis OS,SOS,SenOS,MagnetOS,PEEROS,AmbitentRT,Bertha等)、无线网络协议栈(包括链路、路由、转发、节能)、节点资源管理(时间同步、定位、电源消耗)等功能联系紧密。但由于篇幅关系,本文对上述内容不做赘述。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术237.5.2 物联网中间件分类(四)OSGi(Open Services Gateway initiative)中间件OSGi是一个1999年成立的开放标准联盟,旨在建立一个开放的服务规范,一方面,为通过网络向设备提供服务建立开放的标准,另一方面,为各种嵌入式设备提供通用的软件运行平台,以屏蔽设备操作系统与硬件的区别。OSGi规范基于JAVA技术,可为设备的网络服务定义一个标准的、面向组件的计算环境,并提供已开发的象HTTP服务器、配置、日志、安全、用户管理、XML等很多公共功能标准组件。OSGi组件可以在无需网络设备重启下被设备动态加载或移除,以满足不同应用的不同需求。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术247.5.2 物联网中间件分类(五)复杂事件处理CEP中间件复杂事件处理(Complex Event Progressing)技术是90 年代中期由斯坦福大学的David Luckham 教授所提出是一种新兴的基于事件流的技术,它将系统数据看作不同类型的事件,通过分析事件间的关系如:成员关系、时间关系以及因果关系,包含关系等,建立不同的事件关系序列库,即规则库,利用过滤、关联、聚合等技术,最终由简单事件产生高级事件或商业流程。不同的应用系统可以通过它得到不同的高级事件。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术257.5.2 物联网中间件分类(五)复杂事件处理CEP中间件(续)复杂事件处理代表一个新的开发理念和架构,具有很多特征,例如分析计算是基于数据流而不是简单数据的方式进行的。它不是数据库技术层面的突破,而是整个方法论的突破。目前,复杂事件处理中间件主要面向金融、监控等领域,包括IBM流计算中间件InfoSphere Streams,以及Sybase、Tibico等的相关产品。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术267.5.2 物联网中间件分类(六)其他相关中间件国际电信联盟对物联网提出的任何时刻、任何地点、任意物体之间互联,无所不在的网络和无处不在的计算的发展愿景,在某种程度上,与普适计算的核心思想是一致的。普适计算(Ubiquitous computing 或 pervasive computing),是一个强调和环境融为一体的计算概念,而计算机本身则从人们的视线里消失。在普适计算的模式下,人们能够在任何时间、任何地点、以任何方式进行信息的获取与处理。有关普适计算中间件及物联网应用方面的研究内容,可参阅其他相关文献。另外,由于行业应用的不同,即使是RFID应用,也可能因其在商场、物流、健康医疗、食品回溯等领域的不同,而具有不同的应用架构和信息处理模型。针对智能电网,智能交通,智能物流,智能安防,军事应用等领域的物联网中间件,也是当前物联网中间件研究的热点内容。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术277.5.2 物联网中间件分类(七)物联网国际研究项目中间件 ASPIREASPIRE旨在将RFID应用渗透到中小型企业。为了达到这样的目的,ASPIRE完全改变了现有的RFID应用开发模式,它引入并推进一种完全开放的中间件(即设置一个通用的平台和接口,以实现每个小的应用环境或系统的标准化以及它们之间的通信),同时完全有能力支持原有模式中核心部分的开发。ASPIRE的解决办法是完全开源和免版权费用,这大大降低了总的开发成本。欧盟欧盟HydraHydra物联网中间件项目致力于开发可广泛部署的智能网络嵌入式中间件平台,使之可运行于新的或已存在的分布式有线/无线网络设备中。HydraHydra是定位于操作系统和应用之间的中间件,包含了设计用于处理各种任务的众多软件组成成分,以完成一个有效利用成本低智能物联网应用开发过程。TaiYuan University of Technology7.5 7.5 物联网物联网中间件技术中间件技术287.5.2 物联网中间件分类(七)物联网国际研究项目中间件欧洲IOT-A(Internet of Things Architecture)项目致力于当前物连网向未来物联网的转变,以及物联网业务流程建模、原型实现,并对物联网工业应用作出贡献。其具体内容包括搭建物联网系统互操作模型,建立有效的服务层响应机制,提供基于开放协议的服务协议,定义官方物联网体系结构以及设备平台组件等。TaiYuan University of Technology7.6 7.6 物联网物联网中间件技术中间件技术297.5.3 基于中间件的物联网应用软件设计案例基于中间件的体系结构基于中间件的体系结构指的是通过中间件隐藏硬件和网络平台的复杂性和异质性的架构。本节针对医疗保健应用提供了一个基于中间件的物联网体系架构,为嵌入式设备和节点,如计算机或数据服务器,提供简单、统一的配置和操作。该模型把整个系统看作一个分布式系统,把任何计算设备,无论硬件还是操作系统,都看作为一个节点,该架构要求每个节点有必须包含一个独立于设备的中间件,并给出基于该中间件进行应用实例开发的架构和方法。TaiYuan University of Technology7.6 7.6 物联网物联网中间件技术中间件技术307.5.3 基于中间件的物联网应用软件设计案例一个简单的医疗保健应用场景:(中间件需求)在医疗保健这个特殊场景中,通常需要在被治疗者身上设置包含若干传感器的嵌入式设备节点,在某个突发实例触发对数据的使用需求之前,每个节点都需要存储数据。该场景中,节点的存储和处理能力是最重要的方面,以供决策支持系统使用。例如,如果患者去医院并使用人体感应器来监测一天的心跳,节点必须能存储它一天收集的数据,并且只有当患者返回医院时才卸载检节点测到的数据。考虑上面的场景,我们可从中提取出几个中间件需求:数据采数据采集和处理集和处理、系统配置系统配置作为功能性需求,而异质性、互操作性和适应性被视为非功能性需求。TaiYuan University of Technology7.6 7.6 物联网物联网中间件技术中间件技术317.5.3 基于中间件的物联网应用软件设计案例数据采集和处理数据采集和处理:数据必须被获取和存储、处理(例如,格式适应、过滤),转移、进一步加工或合并并交付给用户。异质性异质性:中间件应当模块化并基于驱动程序和接口,这些允许它运行在不同的硬件和软件平台。互操作性互操作性:必须为所有的节点提供标准的接口来访问数据(不同的节点必须被抽象并使用通用API以相同的方式访问)。灵活性灵活性:中间件必须具有灵活性和适应性。每个应用上下文(例如血压、血糖水平的测量)将要求一个稍微不同的操作、采样率和响应时间的组合。系统配置系统配置和适应性适应性:部署系统应该是必要的,配置系统,系统应该就启动和运行。在其他情况下,可能有必要使用共同的方言和调用标准API函数,编程应用程序的一部分。针对上述医疗保健应用场景及中间件需求的物联网体系结构TaiYuan University of Technology7.6 7.6 物联网物联网中间件技术中间件技术327.5.3 基于中间件的物联网应用软件设计案例架构中定义了节点构件(NCeH),该节点构件必须被包括在所有节点装置,包括计算机和数据服务器中。该节点构件NCeH主要目的是提供一些机制来处理节点的引用、异质性和平台和通信协议的独立性。该例中血糖仪装备有节点组件NCeH二进制文件,运行Android的智能手机装备有面向Android的NCeH,而服务器运行NCeH的Linux版本。用户发送配置命令(每秒读葡萄糖;发送到智能手机,存储1天;发送到服务器)。每个关键词-葡萄糖、智能手机、服务器-使用一种简单的机制来定义。其中物联网中间件NCeH的一种体系结构可以参考下图所示。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术 构件构件是系统中实际存在的可更换部分,代表系统中的一部分物理实施,其发展在某种程度上极大依赖于中间件技术,同时,构件技术是支持复用的核心技术。服务服务相当于构件化编程模型中的构件。面向服务的架构是一种松耦合的软件构件技术,将应用程序的不同功能模块化,并通过标准化的接口和调用方式联系起来,实现快速可重用的系统开发和部署。面向服务的架构模型使得构建在不同系统中的同类服务可以通过统一和通用的方式进行交互。本节讨论构件化架构构件化架构或面向服务架构面向服务架构方式设计开发物联网系统时的相关设计技术。337.6.1 面向构件的物联网应用设计7.6.2 面向服务的物联网应用设计TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术347.6.1 面向构件的物联网应用设计构件具有以下几个特点:(1)自描述自描述:构件必须能够识别其属性、存取方法和事件,这些信息可以使开发环境将第三方软件构件无缝地结合起来;(2)可定制可定制:允许提供一个典型的图形方式环境,软件构件的属性只能通过控制面板来设置;(3)可集成可集成:构件必须可以被编程语言直接控制。构件也可以和脚本语言或者与从代码级访问构件的环境连接,这个特点使得软件构件可以在非可视化开发项目中使用;(4)连接机制连接机制:构件必须能产生事件或者具有让程序员从语义上实现相互连接的其他机制。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术357.6.1 面向构件的物联网应用设计构件技术是由基于面向对象技术而发展起来的,与面向对象的设计中的对象相类似,但它们之间存在很大差异,构件不是对象,只是与对象类似。物联网应用范围、规模及种类的多样性使得物联网应用环境具有开放、动态和难控等特性,也造成构成系统的软件实体也具有异构、智能和自主等特点。我们把适应环境变化,且能够自主进行决策的构件称为自主构件自主构件一方面,从构件角度来看,自主构件与普通构件相同,它具有相对独立的功能,能够被复用和组装,成为系统的有机构成成分。另一方面,从自主性的角度来看,自主构件行为受到自身策略的驱动向外提供服务,并且可以在运行时刻收集系统的信息,感知变化从而做出决策。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术367.6.1 面向构件的物联网应用设计针对物联网应用环境的特点,构成物联网应用的构件不能只被看作被动的受管对象,而应将其建模为具有主动能力的软件实体,即自主构件自主构件。自主构件同时具备了构件以及 Agent的关键性质,从能力要求来看,除了对外提供服务,自主构件区别于传统构件的能力主要:(1)功能性功能性:能对外提供服务,可以通过调用外部构件的服务来实现自身的功能性需求;并具有质量属性评估的功能。(2)自决策性自决策性:对功能性和非功能性目标的实现和改进具有决策能力。(3)自适应性自适应性:自主构件对于不同应用环境具有适应能力,在不同场景下,对外所展现的行为会有所不同。能够决定如何选择和使用外部资源(依赖服务),并规范依赖服务的行为。(4)交互性交互性和协同性协同性:能参与交互和合作,多个自主构件可以协作完成复杂的任务。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术377.6.1 面向构件的物联网应用设计自主构件的功能模块自主构件的功能模块构成一个执行循环:“监控分析决策执行”来动态的监控环境变化并做出实时响应。以上4部分使用的数据作为共享的知识存储在知识库中,共享的知识包括网络拓扑信息、系统日志、策略库等。在开放物联网环境中,构件所依赖的服务质量和数量、链接的状态等都是动态变化的。理想状态下,具有自适应能力的构件能够在网络环境不断变化的情况下,无需外界进行显式控制,就能调整其自身内部行为或结构保证正常对外提供服务。自主构件将数据、操作、质量属性封装在一起。自主构件是部署在网络上、能被第三方复用的软件实体。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术387.6.1 面向构件的物联网应用设计自主构件自主构件主要由以下 8 个部分组成:(1)接口接口:即自主构件对外部提供的服务接口。主要由感知器和效应器 2 个接口组成,用于感知环境和作用于环境。(2)质量属性质量属性:影响质量的各种因素的评估函数;(3)内部数据内部数据:由数据名、类型,以及允许的取值范围定义。往往用于记录自主构件内部和外部环境的动态变化。(4)外部依赖服务外部依赖服务:定义了自主构件对外部计算资源的依赖,以及对计算资源的计算能力和服务质量的期待。(5)交互对象交互对象:定义了自主构件在合作过程中,对交互对象的期望列表。(6)交互协议交互协议:定义自主构件能够支持的交互方式。(7)动作动作:定义了自主构件的具体行为。(8)决策决策:决定是否采取行动,以及如何采取行动,以便更好地实现自身的目标。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术397.6.1 面向构件的物联网应用设计自主构件自主构件的基本构成及其运行机理TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术407.6.1 面向构件的物联网应用设计自主构件自主构件的生命周期经过设计、实施、测试、验证,经过安装和配置,自主构件需要向系统注册安装和配置信息,以便在进行后续自决策时使用。安装配置完成后,自主构件进入自己的生命周期。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术417.6.2 面向服务的物联网应用设计面向服务的体系结构(Service Oriented Architecture,SOA)是一种构件模型,可以根据需求通过网络对松散耦合的粗粒度应用构件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA是软件工程中提出来旨在提高软件构件重用功能的体系架构,但其特征无疑同样适合于物联网系统的体系结构设计与开发。SOA的5大基本特征为构件的功能重用提供了解决的办法。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术427.6.2 面向服务的物联网应用设计服务之间通过简单、精确定义的接口进行通信服务之间通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型。粗粒度性粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了。松耦合性松耦合性:松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合的关系。位置透明性位置透明性:位置透明性要求SOA系统中的所有服务对于其调用者来说都是位置透明的。协议无关性协议无关性:协议无关性要求每一个服务都可以通过不同的协议来调用。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术437.6.2 面向服务的物联网应用设计本节以一个基于服务的物联网EPCIS设计来介绍面向服务的物联网应用设计。本节的物联网流程即按照EPCglobal框架设计 RFID读写器读取商品标签中的EPC码并传送到RFID过滤收集中间件,中间件负责收集从识读器上传的数据。在EPCIS捕获应用程序和EPCIS存储系统之间定义EPCIS信息捕获接口,捕获中间件的事件报告,并存储到EPCIS存储系统,在EPCIS存储系统和EPCIS访问系统之间定义EPCIS查询接口,负责查询EPCIS事件报告。上述流程可知,EPC信息系统处于系统最高抽象层次,负责和RFID过滤收集中间件进行交互TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术447.6.2 面向服务的物联网应用设计分析:EPCIS访问系统相当于电子商务中的供应商,EPCIS存储系统相当于电子商务中经营规模较大的经销商,经销商从供应商购买商品后出售,售出商品后,经销商的系统接收RFID过滤收集中间件从读写器读来的数据存到数据库,为经销商查询商品销售情况提供依据,供应商可以从经销商处及时、准确了解到自己所订阅商品的销售情况,从而及时调整生产,避免产量过剩或者不足。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术457.6.2 面向服务的物联网应用设计设计:用两个系统分别代表供应商和经销商。在EPCIS的实现中引入面向服务的架构设计后,经销商经销商登录供应商的系统选购完商品并提交订单后,订单中的商品信息自动存储在以本次订单号为文件名的XML文件中,系统将根据订单号获取订单中商品信息的操作发布为服务,经销商根据订单号去调用这个服务就可以获取本次购物袋商品信息。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术467.6.2 面向服务的物联网应用设计设计(续):供应商供应商登录经销商的系统,填写订阅请求表单,需要填写的订阅信息为商品编号、商品名称、开始时间、结束时间,提交订阅表单后得到一个订阅号。经销商端的系统跟过滤收集中间件相连,售出商品时,识读器扫描售出商品的标签中的商品信息,经过ALE中间件的处理后传递到经销商,经销商系统根据供应商的订阅信息,将订阅商品的信息存储在以订阅单号为文件名的XML文件中,并根据订阅单号获取订阅商品信息,发布为服务,供应商根据订阅单号直接调用该服务就可以得到该订阅商品信息。供应商和经销商这两个系统之间交互是以相互调用服务的形式进行交互,真正实现了SOA中的松耦合。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术477.6.2 面向服务的物联网应用设计实现:经销商系统中需要录入商品的属性为商品编码、商品名称、商品种类、商品价格、商品数量,则供应商在暴露的获取商品清单的服务中的商品应包括这些内容,由于这个服务中商品的属性来自商品清单XML文件,则商品清单XML文件里也应包括这些属性,并以元素名代表这些属性,元素的内容为商品的属性。供应商系统中需要订阅的商品属性为商品编码、商品名称、商品种类、商品价格、商品数量、交易地点、交易时间。则经销商在获取订阅商品信息的服务中也应该包括这些内容,由于该服务中商品的属性来自订阅商品XML文件,则订阅商品XML文件也应包括这些属性,以元素名代表这些属性,元素的内容为商品的属性。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术487.6.2 面向服务的物联网应用设计实现(续):Web Services作为SOA的实现技术,充分利用Web分布式编程模型的松散耦合性,允许各种平台和各种编程语言的应用程序彼此交换数据,从而将其无缝地整合在一起。Web Services涉及到的技术有SOAP,WSDL和UDDI。SOAP基于两种已经广泛使用的技术:HTTP和XML,其中HTTP用于SOAP消息传输,而XML文档则是SOAP的编码模式,SOAP可以非常方便地解决异构系统中互相通信的问题。一条SOAP消息就是一份特定的XML文档,包含如下三个元素:必需的根元素,可选的元素,包含SOAP消息的头消息,必需的元素,包括所有的调用和响应消息。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术497.6.2 面向服务的物联网应用设计实现(续):WSDL文档是一份与平台无关的XML文档,详细定义了Web Services的位置、所提供的操作以及调用这些操作的方式,Web Services调用者根据该WSD文档调用Web Services的服务。WSDL模型充分运用了规范和实现分离的原则,将Web Services的服务和实现分成两个部分定义。第一部分定义了服务接口,由元素和元素组成,而元素则包含任意数量的子元素,每个子元素代表一个允许远程调用的操作。第二部分定义了服务实现,由和两个元素组成,其中元素定义了使用特定的通信协议,而元素则包含了一系列的元素,把绑定机制、服务访问协议和端点地址结合在一起。TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术507.6.2 面向服务的物联网应用设计实现(续):基于服务的EPCIS实现可以采用Apache的CXF开源框架来简化用户开发Web Services操作,并可与JavaEE项目实现无缝整合,因此选用Java中的Struts2+Spring3+Hiberate3框架实现供应商和经销商这两个系统,并通过CXF框架为这两个系统增加Web服务功能来实现上述设计。其中,Web服务的发布需要首先声明一个接口,再通过具体类来实现该接口。接口和实现类的代码如下所示:/获取商品清单服务的接口WebServicepublic interface OrderWs public List getCommodities(String id,String username,String password);TaiYuan University of Technology7.6 7.6 面向构件及服务的设计面向构件及服务的设计技术技术517.6.2 面向服务的物联网应用设计实现(续):/获取商品清单服务的实现WebService(endpointInterface=“com.service.ws.order.OrderWs”,serviceName=“OrderWs”)public class OrderWsImp implements OrderWs public List getCommodities(String orderid,String username,String password)/具体实现代码(略)其中具体实现代码就是解析文件“订单号.xml”中元素的内容,得到订单中的商品信息。在Spring配置文件ApplicationContex.xml中利用CFX框架提供的元素,用下面一行代码 就能将getCommodities方法暴露成获取清单的服务(前提是将该元素的元素包含在配置文件ApplicationContex.xml中)TaiYuan University of Technology7.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统以APP应用程序为中心的软件生态系统指的是使用软件生态系统作为软件架构。这种架构有两部分主要的构成要素,一部分是基础软件模块APP应用程序;另一部分是管理和运行这些应用程序的环境。其中,APP也表示最主要的实体类型。以APP为中心的软件生态系统当前最成功的应用是在移动领域。然而,这些平台的成功已经导致建立应用商店的一个广泛的领域,并通过一系列的产品,甚至延伸到近期SMART平台的电子病历(EMR)领域。527.7.1 以APP为中心的软件生态系统架构7.7.2 APP与构件之间的比较7.7.3 APP与服务之间的比较7.7.4 APP环境7.7.5 以APP为中心的物联网软件系统实例TaiYuan University of Technology7.7.1 以APP为中心的软件生态系统架构以APP为中心的软件生态系统的众多组成中,存在两个普通的元素:一组一组APP以及用来管理和执行这些APP的环境环境。这两个子系统构成了以APP为中心的软件生态系统的体系结构。一个应用程序APP是一种小型、单一用途的软件工具。APP在概念上与大型、单一厂商的软件即服务(SaaS)所提供的产品的模块或插件类似。但是,一个APP比插件或模块更加独立于其环境:APP一般与APP环境中的基础的、通用的功能没有没有依赖。537.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.1 以APP为中心的软件生态系统架构一般地,如果一个模块或插件满足以下要求,就可以被认为是APP:(1)APP具有用户界面。也就是说,APP的设计是为与系统的人类用户交互的。他们还可以通过该APP环境彼此互动。(2)APP在其生态系统中服务于一个或几个目的(如电子邮件,日历,待办事项列表)。(3)APP是可以被APP环境发现和加载的。这些因素也有助于从组件和服务中区分APP。在软件模块的抽象层次,APP可能被认为是在和服务相似的抽象层次,而组件存在于较低层。547.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.2 APP与构件之间的比较APP对构件就像构件和对象的对比:是上面抽象的统一层次。APP可以由构件,以及对象、功能和原始程序代码来组成。构件存储他们的大部分数据,而APP几乎不存储自己的数据。不是在内部存储数据,APP操作的数据是存储在共享数据总线上,由APP环境提供,以方便与类似用途的APP之间共享。不像构件,APP通过在一个APP环境中托管以组合成更大的软件系统。构件的组合通常需要在各个构件之间配置一系列的接口调用。557.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.3 APP与服务之间的比较APP和服务在软件模块抽象层次中处于同一层。然而,APP和服务在链接数据和可执行代码时采用相反的方法。服务一般要求数据在服务之间来回传输;在Web服务的情况下,这种传输的发生是通过数据网络向远程服务的主机。另一方面,使用APP需要传送可执行代码,即APP,到包含数据的执行环境。APP和服务这两者都是由对象、组件、功能和源程序代码组成。和APP不同,服务是通过一组数据的链接的转换而集成和组合成较大的解决方案。567.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.4 APP环境一个以APP为中心的软件生态系统的APP环境提供发现、管理和执行APP的必要资源。APP的发现往往是通过一个集中的Web服务-APP商店来管理。App Store中包含的环境的安装,配置和删除APP的能力构成了它来管理它所包含的APP的能力。而APP被执行时,环境提供到共享数据存储、外部通信(如网络服务)、以及访问连接到该应用环境中的物理设备的接口,例如相机,GPS接收器和加速计。577.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.4 APP环境在APP为中心的软件体系结构中,数据在APP之间通过由环境提供的共享数据总线共享数据总线共享。共享数据总线的使用允许特定类型的APP的多个实例在生态系统中存在,允许用户选择他们更喜欢使用的实例。例如,苹果公司的iOS应用环境提供访问日历数据库,应用程序可以用它来管理日历数据(如约会)。IOS设备的用户可能会从各种日历管理应用程序选择,根据自己的喜好,如对于给定的用户接口的偏好。587.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.4 APP环境由APP环境提供的共享数据总线共享数据总线还可以使得APP即使没有相互之间的直接调用时,也能响应其他APP的活动。返回到IOS中的日历数据示例,一个APP可以监视在不久的将来的约会,与导航和GPS APP交互来确定从设备当前地点旅行到预约地点所需的时间,并且当设备用户需要开始动身到他们的下一个约会时触发警报。在这个例子中,用户不必直接将他们的约会输入到警报APP。取而代之的是,报警APP对共享数据总线上的日历数据作出反应。值得注意的是,在以APP为中心的软件生态系统环境的描述中没有包含生态系统环境对于单一设备的描述。如果共享数据总线,就像在Web 3.0资源描述框架总线或无线传感器网络,能够跨越多个设备,在多个物理设备的APP应用程序仍然可以被认为是相同的APP环境的一部分。597.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.5 以APP为中心的物联网软件系统实例需求需求:我经常去家门口的一家餐馆吃饭,而且每次去,点的餐食基本都一样。但现在的问题是,每次去都要排队、点餐、交钱,然后拿餐牌、找座位、等待。显然这是一个重复乏味的过程,如果能够通过自动化的物联网应用,使得这个过程简化或者自动化,那就很理想了。解决方案解决方案:我们开发一种通用的智能手环,智能手环上运行物联网操作系统。手环除了具备通用的闹钟提醒、身体生物指标测量和报告等功能外,还具备RFID功能,该功能的打开与否,由用户控制,比如甩一下手环、按一个按钮等。在餐馆门口,安装一套ID识别设备,一旦一个带手环的人进入餐馆,并打开了RFID功能,就立即被检测到。检测设备把进入者的ID上报给后端服务器,后端服务器进一步判断这个人是否已经有消费记录。如果没有,OK,遵循通常的点餐、交钱、等待等流程,但是这个过程中,后台系统会建立针对这个人的档案,并记录其点餐列表、等待时间、座位号等信息。607.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.5 以APP为中心的物联网软件系统实例解决方案(续)解决方案(续):如果这个人第二次来就餐,那好了,运行在手环上的APP(由餐馆开发并上传到M2M APP Store,由用户安装到手环上)会立即震动提醒消费者,并通过自带的小屏幕,自动把上一次点的餐食列表等信息呈现给消费者,让消费者确认是否点同样的餐食。如果确认点同样的餐食,则消费者只需要找个空闲的位置坐下,然后等待即可,手环上的APP会自动检测出座位号,并联系餐馆的后台服务器下订单。吃完后,通过手环确认一下,可自动完成支付,甚至可以对本次消费满意度点评。显然,排队、点餐、交钱等过程完全省略了,大大提升了就餐方便程度。617.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.5 以APP为中心的物联网软件系统实例实现实现:实现这个过程,最关键的一点就是,手环上需要运行一个餐馆特定的APP,这个APP能够跟RFID联动,并跟餐馆后台交互,完成就餐过程的自动化。这样的APP可能有多个,因为你可能要去很多餐馆就餐。如果没有物联网操作系统的支持,这是无法做到的。或者说也可以做到,但是你的手腕上需佩戴很多手环,一个餐馆一个。这样的话,你的职业也变了,变成餐馆的活体广告牌了。627.7 7.7 以以APPAPP为中心的为中心的物联网物联网软件生态系统软件生态系统TaiYuan University of Technology7.7.5 以APP为中心的物联网软件系统实例分析分析:这个餐饮行业的应用,几乎把上面生态模型中的每个模块都涉及到了:手环与餐馆检测系统的交互,属于端端通信,手环上运行的APP,需要从M2M APP St
展开阅读全文