630 likes | 745 Views
物联网技术与应用. 第 12 讲. 主讲教师:李玲 学时: 16. 物联网技术与应用. 主 讲 人:李 玲 吉林大学通信工程学院. 第 5 章 物联网中间件. 本章教学内容. 5.1 物联网中间件基本概念. 5.2 物联网中间件关键技术. 5.1 物联网中间件基本概念. 5.1.1 物联网中间件的定义和分类 5.1.2 物联网中间件的基本组成和特点 5.1.3 物联网中间件举例. 5.1.1 物联网中间件的定义和分类. 1. 中间件定义 2 .中间件示意图 3 .中间件发展史
E N D
物联网技术与应用 第12讲 主讲教师:李玲 学时:16
物联网技术与应用 主 讲 人:李 玲 吉林大学通信工程学院
本章教学内容 5.1物联网中间件基本概念 5.2物联网中间件关键技术
5.1 物联网中间件基本概念 5.1.1 物联网中间件的定义和分类 5.1.2 物联网中间件的基本组成和特点 5.1.3 物联网中间件举例
5.1.1 物联网中间件的定义和分类 1. 中间件定义 2.中间件示意图 3.中间件发展史 4.中间件主要特点 5.什么是物联网中间件 6.物联网中间件的分类 7.物联网中间件发展的三个阶段
1.中间件定义 • 是独立的系统软件或服务程序,分布式应用软件借助中间件在不同的技术之间实现资源共享。 • 应用于客户机、服务器的操作系统,管理计算机资源和网络通信。 • 主要功能是连接两个独立应用程序或独立系统的软件,使相连接的系统即使具有不同的接口,利用中间件仍然能相互交换信息。 • 执行中间件的关键途径是信息传递。
3.中间件发展史 最早具有中间件技术思想及功能的软件是IBM的CICS(Customer Information Control System),而CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。 Tuxedo是1984年在当时属于AT&T的贝尔实验室开发完成的,由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。 BEA公司1995年收购Tuxedo才成为一个真正的中间件厂商。IBM的中间件MQSeries也是20世纪90年代的产品,其他许多中间件产品也都是最近几年才成熟起来。
4.中间件主要特点 满足大量应用的需要; 运行于多种硬件和OS平台; 支持分布计算,提供跨网络、硬件和OS平台的透明的应用或服务的交互; 支持标准的协议; 支持标准的接口;
对于应用软件开发,中间件远比操作系统和网络服务更为重要;对于应用软件开发,中间件远比操作系统和网络服务更为重要; • 中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持对外接口定义不变,应用软件几乎不需要任何修改,从而保护企业在应用软件开发和维护中的重大投资。
5.什么是物联网中间件 在物联网中采用中间件技术,以实现多个系统和多种技术之间的资源共享,最终组成一个资源丰富、功能强大的服务系统。
6.物联网中间件的分类 基于目的和实现机制的不同,业内将中间件分为以下几类: 远程过程调用中间件(Remote Procedure Call) 面向消息的中间件(Message-Oriented Middleware) 对象请求代理中间件(Object Request Brokers) 几类中间件可向上提供不同形式的通信服务,在这些基本的通信平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器等。
平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架会调用用户的代码。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架会调用用户的代码。 • 用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
7.物联网中间件发展的三个阶段 应用程序中间件阶段(Application Middleware) 架构中间件阶段(Infrastructure Middleware) 解决方案中间件阶段(Solution Middleware)。
物联网中间件最主要的代表是RFID中间件,其他的还有嵌入式中间件、数字电视中间件、通用中间件、M2M物联网中间件等。物联网中间件最主要的代表是RFID中间件,其他的还有嵌入式中间件、数字电视中间件、通用中间件、M2M物联网中间件等。 RFID中间件扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据。 使用中间件后即使存储RFID标签数据的数据库软件或后端应用程序增加或改由其他软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。
8.RFID中间件的三大类发展阶段 (1)应用程序中间件发展阶段——多以整合、串接RFID读写器为目的,RFID厂商提供简单API,以供用户将后端与RFID读写器串接。用户需要花费许多成本处理前后端系统连接问题。 (2)基础架构中间件发展阶段——是关键阶段,不但已经具备基本数据搜索、过滤等功能,同时也满足企业多对多的连接需求,并具备平台的管理与维护功能。 (3)解决方案中间件发展阶段——未来在RFID标签、读写器与中间件发展成熟过程中,各厂商针对不同领域提出各项创新应用解决方案,如Manhattan Associates提出的RFID in a Box,企业不需为前端RFID硬件和后端应用系统的连接而烦恼,该公司与Alien Thchnology Corp在RFID硬件端合作,发展中间件,针对该公司的900多家已有的供应链客户群发展供应链执行方案。
5.1 物联网中间件基本概念 5.1.1 物联网中间件的定义和分类 5.1.2 物联网中间件的基本组成和特点 5.1.3 物联网中间件举例
5.1.2 物联网中间件的基本组成和特点 基本组成: 实现全球物品的统一编码,给物品打上电子标签。 电子标签里有电子产品编码,是全球唯一的,可以表示A公司B时间C地点生产的D类产品的E件。。。 目前比较主流的电子产品编码有欧美支持的EPC和日本支持的UID编码。 实现每个小的应用环境或系统的标准化以及它们之间的通信,必须设置一个通用的平台和接口,也就是中间件。
以RFID为例,右图描述了中间件在系统中的位置和作用。以RFID为例,右图描述了中间件在系统中的位置和作用。 中间件的引入,使得原先应用软件系统与读写器之间的非标准的、非开放的通信接口,变成应用软件与中间件之间、读写器与中间件之间的标准的、开放的通信接口。同时,中间件具有标准接口使得现有的封闭的RFID系统能够在未来的物联网中实现彼此的电子标签信息的共享。
物联网中间件特点: (1)独立于架构。中间件独立于物联网设备与后端应用程序之间,并能与多个后端应用程序连接,降低维护的复杂性。 (2)数据流。物联网的目的是将实体对象转换为信息环境下的虚拟对象,因此数据处理是中间件的最重要的功能。中间件具有数据搜集、过滤、整合与传递等功能,以便将正确对象信息传到上层应用系统。 (3)处理流。物联网中间件采用程序逻辑及存储转发的功能提供顺序消息流,具有数据流设计与管理的能力。 (4)标准化。
5.1 物联网中间件基本概念 5.1.1 物联网中间件的定义和分类 5.1.2 物联网中间件的基本组成和特点 5.1.3 物联网中间件举例
(1)ASPIRE(欧盟项目) 特征:轻量级、可重新编程、智能、适合当前标准、可升级、安全性高、完整。 ASPIRE的解决办法是完全开源和免版权费用,这大大降低了总的开发成本。 融合了基于RFID的泛在感知领域的一些创新方法。 5.1.3 物联网中间件举例
(2)Hydra 定位于操作系统和应用之间的中间件层。 中间件包含了众多软件组成部分,它们被设计用于处理各种任务,以完成一个有效利用成本的智能物联网应用开发过程。 可以在新的和已经存在的分布式设备网络上协作。提供了便于使用的网络接口控制不同类型的设备。 它是基于语义模式驱动的架构。便于编程,适合设备和服务发现、点对点通信和诊断。 Hydra中间件利于实现环境感知行为和解决在资源受限设备中处理数据的持久性问题。 Hydra安全框架部署了一个规则框架。包括执行组件、决定组件、形成组件、解决冲突组件和Hydra核心语言。 虚拟化结构可应用于不同的设施,以此增加了一个保护层。
本章教学内容 5.1物联网中间件基本概念 5.2物联网中间件关键技术
5.2 物联网中间件关键技术 5.2.1 web服务 5.2.2 嵌入式中间件技术 5.2.3 万维物联网 5.2.4 上下文感知技术
Web服务(Web Services)就是一种可以通过Web描述、发布、定位和调用的模块化应用。 Web服务可以执行多种功能,从简单的请求到复杂的业务过程。 一旦Web服务被部署,其他的应用程序或是Web服务就能够发现并且调用这个部署的服务。 Web是互联网的核心,物联网是互联网的延伸,web服务及技术必将在物联网中间件发展中起到重要作用。 5.2.1 web服务
Web服务(Web Services)向外界提供一个能够通过Web进行调用的API(Application Programming Interface,应用程序编程接口),能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web Services的应用程序叫做客户。 例如,建立一个ASP页面,通过输入地区邮政编码,返回当前的天气状态。客户端要调用该页面了解当前的气温和天气,需要发送HTTP GET请求。 http://host.company.com/weather.asp?zipcode=20171 返回的数据应该是:21,晴
Web Services定义: 建立可互操作的分布式应用程序的平台。Web Services平台是一套标准,它定义了应用程序如何在Web上实现互操作性。Web Services为实现物联网的应用与服务提供了一个基本的框架。 Web Services通过简单对象访问协议(Simple Object Access Protocol,SOAP)来调用。 SOAP是一种轻量级的消息协议,它允许用任何语言编写的任何类型的对象在任何平台之上相互通信。 SOAP消息采用可扩展的标记语言XML进行编码,一般通过HTTP进行传输。通过WSDL(Web Services Description Language)描述调用服务所必需的数据,通过UDDI(Universal Description Discovery and Integration)发现和获得服务的元数据。
SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义的接口和协议联系起来。 接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以用一种统一和通用的方式进行交互。这种具有中立的接口定义的特征称为服务之间的松耦合。
松耦合系统的优势主要有两点: 一是它具有很高的灵活性; 二是当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。
5.2 物联网中间件关键技术 5.2.1 web服务 5.2.2 嵌入式中间件技术 5.2.3 万维物联网 5.2.4 上下文感知技术
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4部分组成,用于实现对其他设备的控制、监视或管理等功能。 嵌入式中间件是在嵌入式应用程序和操作系统、硬件平台之间嵌入的一个中间层,通常定义成一组较为完整的、标准的应用程序接口。为嵌入式应用软件的开发提供跨操作系统和跨硬件平台、层次化、模块化和可扩展的接口。 借助于嵌入式中间件,应用程序可以独立于操作系统和硬件平台,使产品的开放性和可移植性更强,提高了开发效率、减少开发成本。 主要的嵌入式中间件平台有:嵌入式web和Java VM平台。 5.2.2 嵌入式中间件技术服务
1.嵌入式Web 嵌入式Web服务主要具有以下优点。 (1)统一的客户界面:只需要一个通用的Web浏览器解决统一界面的问题; (2)平台独立性:浏览器平台与嵌入式服务器所在硬件平台无关; (3)高可扩展性:服务器端可以在任何需要的时候进行功能的增强与扩展,管理员通过客户端即可完成这些操作,实现远程管理和控制; (4)并行性与分布性:不仅实现跨平台功能,也是多处理机系统和分布式系统,可并发处理多个不同用户的服务请求。
嵌入式Web有两类主要的组成部分:Web服务器和Web客户端。嵌入式Web有两类主要的组成部分:Web服务器和Web客户端。 Web服务器—— 对Web服务器而言,在物理设备上是指存放那些供客户访问的信息资源的计算机或嵌入式系统;在软件上是指能够按照客户的请求将信息资源传送给客户的应用程序。 Web客户端—— 对Web客户端而言,在物理设备上是指客户所使用的本地计算机或者嵌入式设备;在软件上是指能够接受Web服务器上的信息资源并展现给客户的应用程序。
嵌入式Web服务是随着Web应用环境的改变而提出的。因为在应用当中,特别是在嵌入式设备当中,一个Web服务器不可能是很全面的;它必须拥有足够小的容量,并且不影响嵌入式系统的整体性能,但又必须具备一个Web服务器应有的特征。一个典型的嵌入式Web设备模型如下图所示。嵌入式Web服务是随着Web应用环境的改变而提出的。因为在应用当中,特别是在嵌入式设备当中,一个Web服务器不可能是很全面的;它必须拥有足够小的容量,并且不影响嵌入式系统的整体性能,但又必须具备一个Web服务器应有的特征。一个典型的嵌入式Web设备模型如下图所示。 • 嵌入式Web服务器技术的核心是HTTP协议引擎。嵌入式Web服务器通过CGI接口和数据动态显示技术,可以在HTML文件或表格中插入运行代码,供RAM读取/写入数据。
CGI是通用网关接口(Common Gateway Interface)的缩写。它是Web服务器主机与外部扩展应用程序交互的一种标准接口。 • 它提供了将参数传递给程序并将结果返回给浏览器的一种机制。 • Web服务器可以通过CGI读取客户端所需要的动态信息(如数据库)。通过CGI可以提供静态HTML网页无法实现的一些功能,比如基于Web的搜索引擎、基于Web的数据库访问等。 CGI工作流程示意图 CGI程序可以通过以下两种调用方式来获取客户请求的内容: 一是通过URL直接调用; 二通过交互式表单(Form)来调用。
2.JAVA VM 除了利用Web实现中间件外,Java VM(Java虚拟机)以其良好的跨平台特性成为了物联网中间件的重要平台。 引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机扮演了一个“翻译”的工作,把 Java源代码翻译成为对应平台上所支持的机器指令。
Java VM体系结构图 每个JavaVM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另一个是负责执行包含在已装载的类或接口中的指令,叫做运行引擎。 每个JavaVM又包括方法区、Java堆、Java栈、程序计数器和本地方法栈这5个部分,这几个部分和类装载机制与运行引擎机制一起组成Java VM的体系结构。
目前,使用范围最广的Java虚拟机就是Sun公司开发的JRE(Java Runtime Environment, Java运行环境)。它包括Java虚拟机、Java平台核心类和支持文件。JRE不包括开发工具——编译器、调试器和其他工具。如果用户需要开发Java软件,则需要下载JDK(Java Development Kit)。它包括了JRE、Java开发工具和Java基础的类库。除Sun公司外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的 Jrocket,还有GNU组织开发的JDK,等等。
5.2 物联网中间件关键技术 5.2.1 web服务 5.2.2 嵌入式中间件技术 5.2.3 万维物联网 5.2.4 上下文感知技术
近几年来随着物联网的兴起,越来越多的研究正在考虑将Web技术与物联网技术相结合。 基于这样的思想就产生了万维物联网(Web of Things)的概念。 5.2.3 万维物联网
Web of Things具有以下特性: (1)使用HTTP作为应用协议,HTTP不仅是用来连接传感器和网络的传输协议。 (2)通过REST接口(或REST API)将智能设备的同步功能开放出来。 (3)智能设备的异步功能开放采用广为接受的Web聚合标准。 (4)前端利用Web的呈现方式,提供直观、友好的用户体验。 (5)开放平台。
Web of Things的优势: 减少智能设备安装、整合、执行和维护开销; 加快智能设备安装和移除速度; 对智能设备可进行移动和临时安装; 任何时刻、任何地点都可以提供实时信息服务; 增强可视化、可预见、可预报和维护日程的能力; 确保各类应用有效和高效率执行。
Web of Things的基本框架组成: (1)网络节点集成接口(Integration Interface of Network Node) 有两种网络节点集成方法可以将Web嵌入到设备中,使终端设备可以基于REST架构调用Web资源,实现Web of Things。 第一种方式是将设备作为Web的一部分,通过API直接连接Web服务器,调用Web资源。设备本身支持Web各种协议和软件,在设备上直接提供Web API接口,分配URL进行识别和调用。 第二种方式是Web终端通过智能网关接入。通过智能网关接入,将智能网关作为一个中间件。每个智能网关支持Web协议,可以作为REST风格的API接入Web,可以分配到URL接入网络。这种接入方式降低了对网络节点的要求,也得到了广泛的应用。
(2)基于REST风格终端节点(Terminal Nodes Based on REST Style)对智能设备可进行移动和临时安装; • REST(Representational State Transfer,表述性状态转移)是一种针对网络应用的设计和开发方式。REST是面向资源的设计概念,主要设计方案为:将网络上的所有事物都抽象为资源,对每个资源确定一个唯一的资源标识,终端节点系统通过通用的连接器接口API对资源进行操作。 • RSET风格架构的基本操作命令包括GET、PUT、DELETE和POST,采用HTTP协议。通过REST风格的 Web of Things架构设计,可以降低开发的复杂性,提高系统的可伸缩性。 • 基于REST风格的应用开发架构为ROA架构。面向资源的架构ROA是一种把实际问题转换成REST式Web服务的方法,它使URL、HTTP和XML具有跟其他Web应用一样的工作方式。
(3)网络Mashup功能(Web Mashup Function)增强可视化、可预见、可预报和维护日程的能力; • Mashup技术是一种网络应用,将分立的网络资源带有的功能进行融合,也叫功能混搭。 Mashup的目的是将多种功能集成在一起,形成新的应用和功能。融合的单元通常使用XML、 HTML语言形式。一般普通的网络集成需要引入Mashup引擎提供支持XML、HTML语言的内核,将网络资源解析为浏览器可以呈现的形式。同时,Mashup应用于Web of Things,可以将各种功能集成在同一的终端节点设备上,充分利用了网络的资源。
5.2 物联网中间件关键技术 5.2.1 web服务 5.2.2 嵌入式中间件技术 5.2.3 万维物联网 5.2.4 上下文感知技术