物联网中间件基本概念_第1页
物联网中间件基本概念_第2页
物联网中间件基本概念_第3页
物联网中间件基本概念_第4页
物联网中间件基本概念_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章物联网中间件物联网中间件基本概念5.1物联网中间件关键技术5.2物联网中间件编程实例5.3物联网中间件基本概念第1页5.1物联网中间件基本概念

5.1.1物联网中间件定义和分类5.1.2物联网中间件基本组成和特点

5.1.3物联网中间件举例物联网中间件基本概念第2页5.1.1物联网中间件定义和分类

1.中间件定义:独立系统软件或服务程序。应用于客户机、服务器操作系统,管理计算机资源和网络通信。连接两个独立应用程序或独立系统软件,使相连接系统即使含有不一样接口,利用中间件依然能相互交换信息。执行关键路径是信息传递。物联网中间件基本概念第3页2.中间件示意图物联网中间件基本概念第4页3.中间件发展史最早含有中间件技术思想及功效软件是IBMCICS,而CICS不是分布式环境产物,所以人们普通把Tuxedo作为第一个严格意义上中间件产品。

物联网中间件基本概念第5页3.中间件发展史 Tuxedo是1984年在当初属于AT&T贝尔试验室开发完成,因为分布式处理当初并没有在商业应用上取得像今天一样成功,Tuxedo在很长一段时期里只是试验室产品,以后被Novell收购,在经过Novell并不成功商业推广之后,1995年被现在BEA企业收购。物联网中间件基本概念第6页3.中间件发展史 BEA企业1995年收购Tuxedo才成为一个真正中间件厂商。IBM中间件MQSeries也是20世纪90年代产品,其它许多中间件产品也都是最近几年才成熟起来。物联网中间件基本概念第7页4.中间件主要特点满足大量应用需要运行于各种硬件和OS平台支持分布计算,提供跨网络、硬件和OS平台透明应用或服务交互支持标准协议支持标准接口物联网中间件基本概念第8页5.什么是物联网中间件 在物联网中采取中间件技术,以实现多个系统和各种技术之间资源共享,最终组成一个资源丰富、功效强大服务系统。物联网中间件基本概念第9页6.物联网中间件分类 基于目标和实现机制不一样,业内将中间件分为以下几类:远程过程调用中间件(RemoteProcedureCall)面向消息中间件(Message-OrientedMiddleware)对象请求代理中间件(ObjectRequestBrokers)物联网中间件基本概念第10页

几类中间件可向上提供不一样形式通信服务,在这些基本通信平台之上,可构筑各种框架,为应用程序提供不一样领域内服务,如事务处理监控器、分布数据访问、对象事务管理器等。物联网中间件基本概念第11页7.物联网中间件发展三个阶段应用程序中间件阶段(ApplicationMiddleware)

架构中间件阶段(InfrastructureMiddleware)

处理方案中间件阶段(SolutionMiddleware)。物联网中间件基本概念第12页

当前,物联网中间件最主要代表是RFID中间件,其它还有嵌入式中间件、数字电视中间件、通用中间件、M2M物联网中间件等。下面,重点介绍一下RFID中间件。物联网中间件基本概念第13页

RFID中间件饰演RFID标签和应用程序之间中介角色,从应用程序端使用中间件所提供一组通用应用程序接口(API),即能连到RFID读写器,读取RFID标签数据。物联网中间件基本概念第14页 这么一来,即使存放RFID标签数据数据库软件或后端应用程序增加或改由其它软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接维护复杂性问题。物联网中间件基本概念第15页8.RFID中间件三大类发展阶段(1)应用程序中间件发展阶段(2)基础架构中间件发展阶段(3)处理方案中间件(SolutionMiddleware)发展阶段。物联网中间件基本概念第16页

5.1.2物联网中间件基本组成和特点

基本组成:实现全球物品统一编码,给物品打上电子标签。要实现每个小应用环境或系统标准化以及它们之间通信,必须设置一个通用平台和接口,也就是中间件。物联网中间件基本概念第17页以RFID为例,下列图描述了中间件在系统中位置和作用。物联网中间件基本概念第18页物联网特点:(1)独立于架构。(2)数据流。(3)处理流。(4)标准化。物联网中间件基本概念第19页(1)ASPIRE特征:轻量级、可重新编程、智能、适合当前标准、可升级、安全性高、完整。ASPIRE处理方法是完全开源和免版权费用,这大大降低了总开发成本。5.1.3物联网中间件举例

物联网中间件基本概念第20页(2)Hydra定位于操作系统和应用之间中间件层。中间件包含了众多软件组成部分,它们被设计用于处理各种任务,以完成一个有效利用成本智能物联网应用开发过程。能够在新和已经存在分布式设备网络上协作。5.1.3物联网中间件举例

物联网中间件基本概念第21页(2)Hydra它是基于语义模式驱动架构。Hydra中间件利于实现环境感知行为和处理在资源受限设备中处理数据持久性问题。Hydra安全框架布署了一个规则框架。虚拟化结构。5.1.3物联网中间件举例

物联网中间件基本概念第22页5.2物联网中间件关键技术

5.2.1web服务5.2.2嵌入式中间件技术

5.2.3万维物联网5.2.4上下文感知技术物联网中间件基本概念第23页Web服务(WebServices)就是一个能够经过Web描述、公布、定位和调用模块化应用。Web服务能够执行各种功效,从简单请求到复杂业务过程。一旦Web服务被布署,其它应用程序或是Web服务就能够发觉而且调用这个布署服务。5.2.1web服务

物联网中间件基本概念第24页

Web服务(WebServices)向外界提供一个能够经过Web进行调用API(ApplicationProgrammingInterface,应用程序编程接口),能够用编程方法经过Web来调用这个应用程序。我们把调用这个WebServices应用程序叫做客户。物联网中间件基本概念第25页WebServices举例:

创建一个WebServices,功效是返回当前天气情况。物联网中间件基本概念第26页WebServices定义:

建立可互操作分布式应用程序平台。WebServices平台是一套标准,它定义了应用程序怎样在Web上实现互操作性。WebServices为实现物联网应用与服务提供了一个基本框架。物联网中间件基本概念第27页 WebServices经过简单对象访问协议(SimpleObjectAccessProtocol,SOAP)来调用。

SOAP是一个轻量级消息协议,它允许用任何语言编写任何类型对象在任何平台之上相互通信。

物联网中间件基本概念第28页 SOA(Service-OrientedArchitecture,面向服务体系结构)是一个组件模型,它将应用程序不一样功效单元经过这些服务之间定义接口和协议联络起来。物联网中间件基本概念第29页 接口是采取中立方式进行定义,它应该独立于实现服务硬件平台、操作系统和编程语言。这使得构建在各种这么系统中服务能够用一个统一和通用方式进行交互。这种含有中立接口定义特征称为服务之间松耦合。物联网中间件基本概念第30页松耦合系统优势主要有两点:一点是它含有很高灵活性另一点是当组成整个应用程序每个服务内部结构和实现逐步地发生改变时,它能够继续存在物联网中间件基本概念第31页 嵌入式系统是以应用为中心,以计算机技术为基础,而且软硬件可裁剪,适合用于应用系统对功效、可靠性、成本、体积、功耗有严格要求专用计算机系统。5.2.2嵌入式中间技术服务

物联网中间件基本概念第32页 嵌入式中间件是在嵌入式应用程序和操作系统、硬件平台之间嵌入一个中间层,通常定义成一组较为完整、标准应用程序接口。。物联网中间件基本概念第33页1.嵌入式Web嵌入式Web服务主要含有以下优点。(1)统一客户界面(2)平台独立性(3)高可扩展性(4)并行性与分布性物联网中间件基本概念第34页1.嵌入式WebWeb服务器

对Web服务器而言,在物理设备上是指存放那些供客户访问信息资源计算机或嵌入式系统;在软件上是指能够按照客户请求将信息资源传送给客户应用程序。物联网中间件基本概念第35页1.嵌入式WebWeb客户端 对Web客户端而言,在物理设备上是指客户所使用当地计算机或者嵌入式设备;在软件上是指能够接收Web服务器上信息资源并展现给客户应用程序。物联网中间件基本概念第36页 嵌入式Web服务器技术关键是HTTP协议引擎。嵌入式Web服务器经过CGI接口和数据动态显示技术,能够在HTML文件或表格中插入运行代码,供RAM读取/写入数据。物联网中间件基本概念第37页经典嵌入式Web服务器系统模型物联网中间件基本概念第38页 CGI是通用网关接口(CommonGatewayInterface)缩写。它是Web服务器主机与外部扩展应用程序交互一个标准接口。

它提供了将参数传递给程序并将结果返回给浏览器一个机制。物联网中间件基本概念第39页CGI工作流程示意图物联网中间件基本概念第40页 CGI程序能够经过以下两种调用方式来获取客户请求内容: 一是经过URL直接调用 二经过交互式表单(Form)来调用。物联网中间件基本概念第41页1.JAVAVM 除了利用Web实现中间件外,JavaVM(Java虚拟机)以其良好跨平台特征成为了物联网中间件主要平台。物联网中间件基本概念第42页Java编译执行流程图物联网中间件基本概念第43页 每个Java

VM都有两种机制,一个是装载含有适当名称类(类或是接口),叫做类装载子系统;另一个是负责执行包含在已装载类或接口中指令,叫做运行引擎。物联网中间件基本概念第44页 每个Java

VM又包含方法区、Java堆、Java栈、程序计数器和当地方法栈这5个部分,这几个部分和类装载机制与运行引擎机制一起组成JavaVM体系结构。物联网中间件基本概念第45页JavaVM体系结构图物联网中间件基本概念第46页 近几年来伴随物联网兴起,越来越多研究正在考虑将Web技术与物联网技术相结合。 基于这么思想就产生了万维物联网(WebofThings)概念。5.2.3万维物联网

物联网中间件基本概念第47页WebofThings含有以下特征:(1)使用HTTP作为应用协议,HTTP不但是用来连接传感器和网络传输协议。(2)经过REST接口(或RESTAPI)将智能设备同时功效开放出来。物联网中间件基本概念第48页(3)智能设备异步功效开放采取广为接收Web聚合标准。(4)前端利用Web展现方式,提供直观、友好用户体验。(5)开放平台。物联网中间件基本概念第49页 经过WebofThings,可认为物联网应用带来了众多便利,以以下举其几点优势:降低智能设备安装、整合、执行和维护开销;加紧智能设备安装和移除速度;对智能设备可进行移动和临时安装;任何时刻、任何地点都可以提供实时信息服务;增强可视化、可预见、可预报和维护日程能力;确保各类应用有效和高效率执行。物联网中间件基本概念第50页WebofThings基本框架由以下3部分组成:(1)网络节点集成接口(IntegrationInterfaceofNetworkNode)(2)基于REST格调终端节点(TerminalNodesBasedonRESTStyle)对智能设备可进行移动和暂时安装;(3)网络Mashup功效(WebMashupFunction)增强可视化、可预见、可预报和维护日程能力;物联网中间件基本概念第51页基于REST格调WebofThings架构物联网中间件基本概念第52页 上下文感知技术是用来描述一个信息空间和物理空间相融合主要支撑技术,它能够使用户可用计算环境和软件资源动态地适应相关历史状态信息,从而依据环境改变自动地采取符适用户需要或者设定行动。5.2.4上下文感知技术

物联网中间件基本概念第53页 上下文感知系统首先必须知道整个物理环境、计算环境、用户状态等方面静态和动态信息,即上下文(context)。 上下文能力获取依赖于上下文感知技术,主要包含上下文采集、建模、推理及融合等。上下文感知技术是实现服务自发性和无缝移动性关键。物联网中间件基本概念第54页(1)上下文采集 上下文应用领域不一样,上下文采集方法也有所不一样。通常情况下,有3种方法:传感类上下文、派生出上下文(依据信息统计和用户设定)、明确提供上下文。 采集技术属于物联网感知层技术。物联网中间件基本概念第55页(2)上下文建模 要正确地利用上下文信息,必须对取得上下文信息进行建模。上下文信息模型反应了设计者对上下文了解,决定了使用什么方法把物理世界里面一些无意义和无规律数据转化成计算世界里逻辑结构语言,为实现上下文正确运行打下基础。物联网中间件基本概念第56页(3)上下文推理 系统中全部上下文信息组成上下文知识库,基于这些知识库,能够进行上下文推理。 实现推理普通有两种方式,一是将逻辑规则用程序编码实现,二是采取基于规则推理系统。物联网中间件基本概念第57页(4)上下文融合 在上下文感知计算中,要取得连续上下文处理方法,必须联合相关上下文服务从而聚集上下文信息,称为上下文融合。 这种上下文融合类似于当前已被广泛应用传感器融合,其关键在于处理不一样上下文服务边界之间无缝融合。物联网中间件基本概念第58页5.3物联网中间件编程实例5.3.1利用RubyonRails开发基于 REST格调中间件5.3.2用J2EE开发WebService中间件物联网中间件基本概念第59页5.3.1利用RubyonRails开发基于REST格调中间件RubyonRails,简称RoR或Rails,是一个使用Ruby语言写开源网络应用框架,能使开发变得愈加轻易,当前我们用其致力于Web应用开发、布署和维护。物联网中间件基本概念第60页

像其它Web框架一样,Rails采取MVC开发框架。但相比于其它框架,Rails愈加简单易用。这是因为:1、Ruby语言特征:自然、介绍、快速,有丰富类库,而且全方面地支持面向对象程序设计。物联网中间件基本概念第61页2、Rails基本设计标准:“不要重复你自己”(Don’tRepeatYourself,简称DRY)以及“通例重于配置”。

物联网中间件基本概念第62页Rails是一个灵敏框架,它强调与客户交互,随时准备“响应改变”。 Rails提倡测试驱动开发,全部Rails应用内嵌对于测试支持。物联网中间件基本概念第63页1.

RubyonRails开发环境搭建RubyonRails能够运行在各种操作系统下,其平台是独立。总来说,要安装运行一个Rails应用需要以下组件。物联网中间件基本概念第64页

(1)Ruby解释器:我们在此使用Ruby-1.8.6。这个版本解析器能够很好满足Rails以及后续一些RubyGems要求。物联网中间件基本概念第65页

(2)RubyGems:它是一个标准Ruby程序包管理器,能够很方便在线安装各种Ruby程序包,包含Rails等。物联网中间件基本概念第66页

(3)RubyonRails框架:为简单起见,我们采取gem自动进行安装,在撰写本书时Rails最新版本为2.3.8。物联网中间件基本概念第67页(4)数据库:Rails最新版本默认是采取SQLite3数据库,在此为了通用性考虑,我们采取最惯用MySQL数据库。物联网中间件基本概念第68页

(5)一些必要库:采取MySQL数据库只需要安装mysqlgem包即可。假如使用Rails默认数据库则需安装sqlite3-rubygem包。物联网中间件基本概念第69页

下面我们主要介绍在Windows下安装布署Rails详细过程。因为很多程序针对Windows平台都有很方便一键式安装,所以在Windows下安装Rails还是很轻松。物联网中间件基本概念第70页

(1)安装Ruby解释器。能够从Ruby官网(/en/downloads/)上下载Ruby-1.8.6One-Click安装包。

为了检验是否安装成功,能够从Windows开始菜单点击“运行”,输入“cmd”,开启Windows命令提醒符,然后输入“ruby–v”(回车),如能正确显示Ruby程序版本号则证实安装成功。物联网中间件基本概念第71页

(2)安装RubyGems。能够从RubyForge(/)或是RubyGems官网(/)上下载最新安装包。下载完成后将该压缩包进行解压,我们假设解压后根目录为${dir}目录;然后开启命令提醒符,并切换到${dir}中,然后输入rubysetup.rb运行RubyGems安装程序。为了验证是否安装成功,能够从Windows命令提醒符中输入“gem–v”(回车);如能正确显示RubyGems版本号则安装成功。物联网中间件基本概念第72页(3)安装RubyonRails。在命令提醒符中输入“geminstallrails”(回车),然后将会在线安装Rails程序以及Rails一些依赖包。安装完成后能够经过“rails–v”命令查看Rails版本号来验证是否安装成功。物联网中间件基本概念第73页(4)MySQL数据库。在MySQL官网上下载最新MySQL-5.1版本安装程序,然后进行安装即可。详细安装过程也可参考官方安装说明(/doc/refman/5.1/

zh/installing.html)。物联网中间件基本概念第74页(5)安装mysqlgem包。在命令提醒符中输入“geminstallmysql”进行在线安装。物联网中间件基本概念第75页

至此Rails安装过程就已经全部完成。在Linux下安装也大同小异,主要是安装Ruby和mysql时略有不一样,其它安装步骤都和Windows下安装相同。物联网中间件基本概念第76页2.RubyonRails编程实例下面章节将简单介绍一个关于温度Rails物联网中间件实例。Rails是一个网络应用框架,它能够很方便地处理各种应用请求,客户端和Rails服务器之间采取统一REST接口,它们经过HTTP协议来向服务器端发送请求。物联网中间件基本概念第77页

※本示例系统整体架构图如图5-8所表示。在该示例中温度传感器也认为是Rails服务器一个客户端,它会实时地向服务器端发送数据,服务器会把这些数据处理后保留到数据库中以供浏览器或其它客户端调用。服务器另一个客户端是浏览器或是手机Widget应用,这些客户能够向服务器端发送请求来获取自己所关心数据。物联网中间件基本概念第78页

本示例中采取REST方式来进行服务器端设计,我们将温度(temperature)看做一个资源,每个资源有对应id、温度值、更新时间、设备名称等信息。本示例中对于温度资源操作只包含Put和Get两种操作,这两种操作分别经过HTTPPost和Get请求来完成。详细为温度传感器经过Post请求向服务器上传温度数据,而浏览器经过Get请求来从服务器取得温度数据统计。物联网中间件基本概念第79页

对于REST中其它资源操作如Update、Destroy等操作在本示例中能够不需要,所以进行了省略。RubyonRails是支持全部REST操作,能够经过scaffold来进行实现。假定对于这种资源Put操作对应HTTPPost请求,请求URL为{root_

dir}/temperature/post_temperature;获取资源Get操作对应HTTPGet请求,请求URL为{root_dir}/temperature/index。物联网中间件基本概念第80页

在此示例中采取mysql数据库,其实因为Rails对于不一样数据库接口有很好封装和适配,采取不一样数据库不会对代码产生太大影响。针对该示例,数据库中只建立一张表来进行数据存放。表结构如表5-1所表示,其中id字段用于标识每条统计,value字段统计温度值,time字段统计上传时间,device_id字段统计上传数据设备标识。物联网中间件基本概念第81页图5-8温度传感中间件系统架构示意图表5-1温度表结构idvaluetimedevice_id物联网中间件基本概念第82页(1)建立工程。

建立一个名称为smart_sensor工程,首先在命令提醒符中进入待建工程目录,在此使用F:\example目录,然后输入rails--database=mysqlsmart_sensor,如图5-9所表示。图5-9建立smart_sensor工程本示例实现步骤包含以下几步:物联网中间件基本概念第83页

此时修改smart_sensor\config\database.yml文件,在这个文件中会有3个数据库配置选项,分别为development、test、production,在此只修改development选项即可,修改成以下格式。 development: adapter:mysql encoding:utf8 reconnect:false database:smart_sensor_development pool:5 username:root password:mysql host:localhost(2)建立数据库。物联网中间件基本概念第84页

需要修改主要是username和password,修改成mysql数据库用户名和密码即可。然后在命令行根目录smart_sensor下执行rakedb:create来建立数据库,数据库名称默认为smart_sensor_development,如图5-10所表示。下面命令如没有尤其说明均是在smart_sensor根目录下执行。图5-10建立数据库物联网中间件基本概念第85页

下面需要建立基本数据表,在Rails中数据表是由一个Model来管理,能够用Rails命令来建立基本Model。在根目录下输入rubyscript\generatemodeltemperature,如图5-11所表示。图5-11建立基本Model(3)建立基本Model类。物联网中间件基本概念第86页此时在db\migrate目录下会生成一个xxx_create_temperatures.rb文件,打开该文件并修改成以下结果。这里主要是设置数据表各个字段类型以及其它细节。物联网中间件基本概念第87页classCreateTemperatures<ActiveRecord::Migrationdefself.upcreate_table:temperaturesdo|t|

#establishthedatatablet.decimal:value,:precision=>4,:scale=>1t.datetime:timeeger:device_idt.timestampsendenddefself.downdrop_table:temperaturesendend

然后执行rakedb:migrate命令将temperatures表结构写入数据库。物联网中间件基本概念第88页

控制器功效主要是对外部请求进行处理并返回对应结果。此处能够经过Rails基本命令来建立基本控制器。在根目录下输入命令rubyscript\generatecontrollertemperatureindex,如图5-12所表示。图5-12生成基本控制器(4)建立temperature控制器。物联网中间件基本概念第89页

classTemperatureController<ApplicationController#listallthetemperaturesinthedatabasedefindex@temperatures=Temperature.allrespond_todo|format|format.html#index.html.erbformat.xml{render:xml=>@temperatures}endend

然后修改app\controllers\temperature_controller.rb文件以真正实现该示例需要方法。在此我们将实现index方法以输出全部temperature数据,而且增加一个添加数据方法以把传感器发来数据存入数据库,详细修改以下。物联网中间件基本概念第90页

#processthepostrequestandstorethedatainthedatabasedefpost_temperaturebegin#constructaninstanceofTemperaturea_temperature=Temperature.new(:value=>params[:value],:time=>params[:time],:device_id=>params[:device_id])#storea_temperatureinthedatabasea_temperature.saverescue#returnFailiffailsstorethedatarender:text=>"Fail"returnend#returnOKifallsuccessrender:text=>"OK"returnendend物联网中间件基本概念第91页这里增加了两个方法,index和post_temperature。其中index方法用于输出当前存入数据库全部温度统计,post_temperature方法是用来处理传感器发来提交数据请求,并把这些温度数据存入数据库,执行成功则返回“OK”,不然返回“Fail”。物联网中间件基本概念第92页

在此因为index方法会返回一个html文件,来控制返回结果显示。在Rails中会在views目录下对返回页面文件进行集中管理。在此需要修改app\views\

temperature\index.html.erb文件,修改结果以下。(5)修改view页面。物联网中间件基本概念第93页<divid="temperature-list"><h1>Listingtemperatures</h1><table><%fortemperaturein@temperatures%><tr><td> <%=temperature.id%></td><td> <%=temperature.value%></td><td> <%=temperature.time%></td><td> <%=temperature.device_id%></td></tr><%end%></table></div>物联网中间件基本概念第94页

为了让Rails当收到某个请求时知道该调用哪个控制器下哪个方法来进行处理,在此需要修改Rails路由以符合该示例要求。在Rails中修改路由也十分简单,只需要修改config\routes.rb文件即可。在该文件最终已经有两条默认路由格式,需要修改这些路由规则以符合我们需要,详细以下。

map.connect'temperature/post_temperature',:controller=>"temperature",

:action=>"post_temperature",:conditions=>{:method=>:post} map.connect':controller/:action' map.connect':controller/:action.:format’(6)修改路由。物联网中间件基本概念第95页

①当收到发往temperature/post_temperature这个路径Post请求时调用temperature控制器post_temperature方法来进行处理。

②当收到:controller/:action格式路由时,则将第一个参数作为controller,第二个作为action。比如发送temperature/index,此时则会采取temperature控制器index方法来进行处理。这里解释一下这3条路由分别含义。物联网中间件基本概念第96页

③前面与(2)相同,另外增加了:format参数用来控制返回格式,比如发送temperature/index.html则采取temperature控制器index方法,采取html格式返回结果。假如发送temperature/index.xml则以xml格式返回结果。路由匹配规则是从上向下依次进行匹配,假如碰到匹配规则,则采取该规则,而且停顿向下匹配。

物联网中间件基本概念第97页

在此我们采取外部客户主动POST数据方式来向Server发送请求。Rails中为了防止恶意POST数据,采取了认证授权机制来预防这种攻击,类似我们现在采取POST方式进行上传数据,则会引发RailsActionController::Invalid

AuthenticityToken异常,而且不会对我们POST操作进行处理。我们在此需要禁用该认证机制,方法也很简单,只要修改app\controllers\application_controller.rb文件即可,修改结果以下。(7)修改控制器认证过滤器。物联网中间件基本概念第98页classApplicationController<ActionController::Basehelper:all#includeallhelpers,allthetimeprotect_from_forgery#SeeActionController::RequestForgeryProtectionfordetails

#allowuploadthedatadirectlyskip_before_filter:verify_authenticity_token

#Scrubsensitiveparametersfromyourlog#filter_parameter_logging:passwordend物联网中间件基本概念第99页

接下来我们对本实例功效进行测试,包含两部分:数据上传和数据显示。

①数据上传。

我们采取Curl来发送HTTPPOST请求。Curl工具是Linux下默认工具,现在也有Windows版,能够直接在Curl官网进行下载(http://curl.haxx.se/download.html),在此我们选取Win32-Generic禁用SSL版本。(8)功效测试。物联网中间件基本概念第100页

首先开启一个终端,在根目录下输入rubyscript/server,开启WEBrick服务器。然后在curl解压目录下输入curl–d“value=25.8&time=-06-09%:30:21&device_id=T1101”

http://localhost:3000/temperature/post_temperature。然后能够收到来自服务器端OK返回,如图5-13所表示。同时也能够查看服务器终端log来分析请求处理过程。图5-13发送POST请求物联网中间件基本概念第101页

首先在根目录下输入rubysrcript/server来开启服务器(假如已经开启服务器可跳过此步骤)。然后在浏览器地址栏输入http://localhost:3000/temperature或http://localhost:3000/

temperature/index.html来显示当前数据库中保留温度数据,如图5-14所表示。

你也能够采取XML格式来显示这些数据,只需要在浏览器地址栏输入http://localhost:3000/

temperature/index.xml即可,如图5-15所表示。②数据显示。物联网中间件基本概念第102页图5-14HTML显示当前数据库中数据物联网中间件基本概念第103页图5-15XML显示当前数据库中数据物联网中间件基本概念第104页5.3.2用J2EE开发WebService中间件J2EE(Java2PlatformEnterpriseEdition)是一套全然不一样于传统应用开发技术架构,包含很多组件,可简化和规范应用系统开发与布署,进而提升可移植性、安全性与重复利用价值。物联网中间件基本概念第105页5.3.2用J2EE开发WebService中间件 J2EE关键是一组技术规范与指南,其中所包含各类组件、服务架构及技术层次,都有相通标准与规格,让各种依循J2EE架构不一样平台之间存在良好兼容性,处理了过去企业后端使用信息产品彼此之间无法兼容,企业内部或外部难以互通窘境。物联网中间件基本概念第106页

轻量级J2EE组件SSH(Struts、Spring

、Hibernate)是当前J2EE快速开发最正确组合。 Struts实现了MVC模式非常成熟Web应用组件,广泛应用于各种Web应用系统表现层中。Hibernate是成熟ORM组件,主要用于实现数据持久化功效,最大作用在于构筑了面向对象Java语言与关系型数据库之间桥梁,使得能够直接经过对Java对象持久化操作完成对数据持久化操作。物联网中间件基本概念第107页 Spring则作为轻量级J2EE框架,其关键是一个功效强大IoC容器,在此容器基础上又提供了对AOP支持,以及对持久层和表现层封装实现。简而言之,Struts用来做控制,是MVC模式控制层;Hibernate用来做持久化,也是数据库层,对数据库进行封装;Spring用来整合J2EE各层之间中间层,提升了层与层之间松耦合,使得各层之间成为对立模块。物联网中间件基本概念第108页1.J2EE开发环境搭建J2EE快速开发最正确组合SSH架构,其中以Struts为例,实现了J2EE开发WebService案例。需要安装和配置软件,包含Tomcat、Struts及其插件等,详细实现步骤以下。物联网中间件基本概念第109页Tomcat服务器现有最新版本6.0.29,可在/download-60.cgi官方网站下载。对于Windows操作系统,能够下载zip格式或者exe格式两种格式文件。zip格式文件解压即可使用,也能够选择其它格式文件,以6.0.18版本为例,如图5-16所表示。(1)版本与下载地址。Tomcat安装过程包含以下几个步骤。物联网中间件基本概念第110页图5-16Tomcat服务器下载界面物联网中间件基本概念第111页

安装Tomcat后,在“我电脑”->“属性”->“高级”->“环境变量”->“系统变量”中添加以下环境变量(假定Tomcat安装在c:\tomcat)。(2)配置环境变量。CATALINA_HOME:c:\tomcatCATALINA_BASE:c:\tomcatTOMCAT_HOME:c:\tomcat

然后修改环境变量classpath,把Tomcat安装目录common\lib下servlet.jar加载到classpath中,修改后classpath以下所表示。 classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA

_HOME%\lib\servlet-api.jar物联网中间件基本概念第112页见到Tomcat欢迎页面,则说明安装成功,可进入下一步骤。(3)开启Tomcat,IE中访问http://localhost:8080。物联网中间件基本概念第113页Tomcat安装目录webapps,能够见到ROOT、examples、tomcat-docs之类Tomcat自带文件目录,并拷贝ROOT目录下WEB-INF目录。

在webapps目录下新建一个目录,命名myapp,并将上一步拷贝WEB-INF目录粘贴到此目录下。

在myapp下新建jsp测试页面,文件名为index.jsp,文件内容以下。(4)创建属于自己jspapp目录。物联网中间件基本概念第114页

重启Tomcat。

打开浏览器,输入http://localhost:8080/myapp/index.jsp,假如页面上显示出当前时间,则说明安装配置成功。 <html> <body> <center> Nowtimeis:<%=new java.util.Date()%> </center> </body> </html>物联网中间件基本概念第115页Struts安装过程包含以下几个步骤。①版本和下载网址Struts最新版本是2.0.12,官方网站下载地址/download.cgi#struts,下载struts-2.0.12-all.zip(91MB)即可,其它文件均包含在此文档中。(5)测试Javabean。物联网中间件基本概念第116页

因为struts1.x和struts2有很大区分,而现今许多书都是针对struts1.x所写。在struts1.x版本中struts-config.xml是主要配置文件,而在struts2中,它变成了struts.xml,而且文件描述内容和struts-config.xml也有所差异,所以须小心慎重。而且许多资料一开始就直接用IDE环境(如MyEclipse)来展现Struts功效框架,使得我们在了解Struts框架时,也会有些疑惑。②安装与配置物联网中间件基本概念第117页

因为Tomcat服务器可用记事本等小型文本编辑器来实现jsp编写,而假如读者没有集成完备、功效强大MyEclipseIDE,可能还需要下载和安装,这么必定会让人以为比较麻烦和费时。实际上,只要搞清楚了Struts结构,完全能够用记事原来实现Struts功效框架。

下面章节将以HelloInternet为例,来引领读者进入J2EE开发WebService大门,并在今后深入研究与开发中,结合物联网背景,开发出更多功效丰富物联网创新应用。物联网中间件基本概念第118页2.J2EE编程实例用J2EE实现WebService实例时,以Struts框架实现工程Struts2_HelloInternet为例,详细实现过程及步骤以下。物联网中间件基本概念第119页(1)在webapps目录下建立目录Struts2_HelloInternet,完善目录结构,如图5-17所表示。图5-17J2EE实例框架图物联网中间件基本概念第120页(2)在Lib目录中添加以下jar文件:commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.12.jar,xwork-2.0.6.jar。物联网中间件基本概念第121页(3)配置Web.xml文件,内容以下。<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.4"

xmlns="/xml/ns/j2ee"

xmlns:xsi="//XMLSchema-instance"

xsi:schemaLocation="/xml/ns/j2ee

/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Struts2.0HelloInternet</display-name><!--配置web.xml文件,对标签filter、filter-mapping、welcome-file-list进行相关配置--><filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>

</web-app>物联网中间件基本概念第122页(4)配置struts.xml文件,内容以下。<!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><!--配置struts.xml文件--><struts><includefile="struts-default.xml"/><packagename="tutorial"extends="struts-default">

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论