物联网技术与应用第5章ppt课件_第1页
物联网技术与应用第5章ppt课件_第2页
物联网技术与应用第5章ppt课件_第3页
物联网技术与应用第5章ppt课件_第4页
物联网技术与应用第5章ppt课件_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

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

文档简介

第5章 物联网中间件,5.1 物联网中间件基本概念,5.1.1 物联网中间件的定义和分类 5.1.2 物联网中间件的基本组成和特点 5.1.3 物联网中间件举例,5.1.1 物联网中间件的定义和分类,1.中间件定义: 独立的系统软件或服务程序。 应用于客户机、服务器的操作系统,管理计算机资源和网络通信。 连接两个独立应用程序或独立系统的软件,使相连接的系统即使具有不同的接口,利用中间件仍然能相互交换信息。 执行的关键途径是信息传递。,2中间件示意图,3中间件发展史,最早具有中间件技术思想及功能的软件是IBM的CICS,而CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。,TUXEDO名字的由来:Transaction for UNIXhas been Extended for Distributed Operation,即被分布式操作扩展之后的UNIX事务系统 。,Tuxedo是一个客户机/服务器的“中间件”产品,它在客户机和服务器之间进行调节,以保证正确地处理事务。Tuxedo是一个事务处理(TP)监督器,它管理联机事务处理(OLTP)系统操作的事务。,4中间件主要特点,满足大量应用的需要 运行于多种硬件和OS平台 支持分布计算,提供跨网络、硬件和OS平台的透明的应用或服务的交互 支持标准的协议 支持标准的接口,5什么是物联网中间件,在物联网中采用中间件技术,以实现多个系统和多种技术之间的资源共享,最终组成一个资源丰富、功能强大的服务系统。,6物联网中间件的分类,基于目的和实现机制的不同,业内将中间件分为以下几类: 远程过程调用中间件(Remote Procedure Call) 面向消息的中间件(Message-Oriented Middleware) 对象请求代理中间件(Object Request Brokers),几类中间件可向上提供不同形式的通信服务,在这些基本的通信平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器等。,7物联网中间件发展的三个阶段,应用程序中间件阶段(Application Middleware) 架构中间件阶段(Infrastructure Middleware) 解决方案中间件阶段(Solution Middleware)。,目前,物联网中间件最主要的代表是RFID中间件,其他的还有嵌入式中间件、数字电视中间件、通用中间件、M2M物联网中间件等。下面,重点介绍一下RFID中间件。,RFID中间件扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据。,这样一来,即使存储RFID标签数据的数据库软件或后端应用程序增加或改由其他软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。,8RFID中间件的三大类发展阶段,(1)应用程序中间件发展阶段 (2)基础架构中间件发展阶段 (3)解决方案中间件(Solution Middleware)发展阶段。,5.1.2 物联网中间件的基本组成和特点,基本组成: 实现全球物品的统一编码,给物品打上电子标签。 要实现每个小的应用环境或系统的标准化以及它们之间的通信,必须设置一个通用的平台和接口,也就是中间件。,以RFID为例,下图描述了中间件在系统中的位置和作用。,物联网特点: (1)独立于架构。 (2)数据流。 (3)处理流。 (4)标准化。,(1)ASPIRE 特征:轻量级、可重新编程、智能、适合当前标准、可升级、安全性高、完整。 ASPIRE的解决办法是完全开源和免版权费用,这大大降低了总的开发成本。,5.1.3 物联网中间件举例,(2)Hydra 定位于操作系统和应用之间的中间件层。 中间件包含了众多软件组成部分,它们被设计用于处理各种任务,以完成一个有效利用成本的智能物联网应用开发过程。 可以在新的和已经存在的分布式设备网络上协作。,5.1.3 物联网中间件举例,(2)Hydra 它是基于语义模式驱动的架构。 Hydra中间件利于实现环境感知行为和解决在资源受限设备中处理数据的持久性问题。 Hydra安全框架部署了一个规则框架。 虚拟化结构。,5.1.3 物联网中间件举例,5.2 物联网中间件关键技术,5.2.1 web服务 5.2.2 嵌入式中间件技术 5.2.3 万维物联网 5.2.4 上下文感知技术,Web服务(Web Services)就是一种可以通过Web描述、发布、定位和调用的模块化应用。 Web服务可以执行多种功能,从简单的请求到复杂的业务过程。 一旦Web服务被部署,其他的应用程序或是Web服务就能够发现并且调用这个部署的服务。,5.2.1 web服务,Web服务(Web Services)向外界提供一个能够通过Web进行调用的API(Application Programming Interface,应用程序编程接口),能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web Services的应用程序叫做客户。,Web Services举例:,创建一个Web Services,功能是返回当前的天气情况。,Web Services定义: 建立可互操作的分布式应用程序的平台。Web Services平台是一套标准,它定义了应用程序如何在Web上实现互操作性。Web Services为实现物联网的应用与服务提供了一个基本的框架。,Web Services通过简单对象访问协议(Simple Object Access Protocol,SOAP)来调用。 SOAP是一种轻量级的消息协议,它允许用任何语言编写的任何类型的对象在任何平台之上相互通信。,SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义的接口和协议联系起来。,接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以用一种统一和通用的方式进行交互。这种具有中立的接口定义的特征称为服务之间的松耦合。,松耦合系统的优势主要有两点: 一点是它具有很高的灵活性 另一点是当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在,嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。,5.2.2 嵌入式中间技术服务,嵌入式中间件是在嵌入式应用程序和操作系统、硬件平台之间嵌入的一个中间层,通常定义成一组较为完整的、标准的应用程序接口。,1嵌入式Web,嵌入式Web服务主要具有以下优点。 (1)统一的客户界面 (2)平台独立性 (3)高可扩展性 (4)并行性与分布性,1嵌入式Web,Web服务器 对Web服务器而言,在物理设备上是指存放那些供客户访问的信息资源的计算机或嵌入式系统;在软件上是指能够按照客户的请求将信息资源传送给客户的应用程序。,1嵌入式Web,Web客户端 对Web客户端而言,在物理设备上是指客户所使用的本地计算机或者嵌入式设备;在软件上是指能够接受Web服务器上的信息资源并展现给客户的应用程序。,嵌入式Web服务器技术的核心是HTTP协议引擎。嵌入式Web服务器通过CGI接口和数据动态显示技术,可以在HTML文件或表格中插入运行代码,供RAM读取/写入数据。,典型的嵌入式Web服务器系统模型,CGI是通用网关接口(Common Gateway Interface)的缩写。它是Web服务器主机与外部扩展应用程序交互的一种标准接口。 它提供了将参数传递给程序并将结果返回给浏览器的一种机制。,CGI工作流程示意图,CGI程序可以通过以下两种调用方式来获取客户请求的内容: 一是通过URL直接调用 二通过交互式表单(Form)来调用。,1JAVA VM,除了利用Web实现中间件外,Java VM(Java虚拟机)以其良好的跨平台特性成为了物联网中间件的重要平台。,Java编译执行流程图,每个Java VM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另一个是负责执行包含在已装载的类或接口中的指令,叫做运行引擎。,每个Java VM又包括方法区、Java堆、Java栈、程序计数器和本地方法栈这5个部分,这几个部分和类装载机制与运行引擎机制一起组成Java VM的体系结构。,Java VM体系结构图,近几年来随着物联网的兴起,越来越多的研究正在考虑将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的基本框架由以下3部分组成: (1)网络节点集成接口(Integration Interface of Network Node) (2)基于REST风格终端节点(Terminal Nodes Based on REST Style)对智能设备可进行移动和临时安装; (3)网络Mashup功能(Web Mashup Function)增强可视化、可预见、可预报和维护日程的能力;,基于REST风格的Web of Things架构,上下文感知技术是用来描述一种信息空间和物理空间相融合的重要支撑技术,它能够使用户可用的计算环境和软件资源动态地适应相关的历史状态信息,从而根据环境的变化自动地采取符合用户需要或者设定的行动。,5.2.4 上下文感知技术,上下文感知系统首先必须知道整个物理环境、计算环境、用户状态等方面的静态和动态信息,即上下文(context)。 上下文能力的获取依赖于上下文感知技术,主要包括上下文的采集、建模、推理及融合等。上下文感知技术是实现服务自发性和无缝移动性的关键。,(1)上下文采集 上下文的应用领域不同,上下文的采集方法也有所不同。通常情况下,有3种方法:传感类上下文、派生出的上下文(根据信息记录和用户设定)、明确提供的上下文。 采集技术属于物联网感知层的技术。,(2)上下文建模 要正确地利用上下文信息,必须对获得的上下文信息进行建模。上下文信息模型反映了设计者对上下文的理解,决定了使用什么方法把物理世界里面的一些无意义和无规律的数据转化成计算世界里的逻辑结构语言,为实现上下文的正确运行打下基础。,(3)上下文推理 系统中的所有上下文信息构成上下文知识库,基于这些知识库,可以进行上下文的推理。 实现推理一般有两种方式,一是将逻辑规则用程序编码实现,二是采用基于规则的推理系统。,(4)上下文融合 在上下文感知计算中,要获得连续的上下文的解决方法,必须联合相关的上下文服务从而聚集上下文信息,称为上下文融合。 这种上下文的融合类似于目前已被广泛应用的传感器融合,其关键在于处理不同上下文服务边界之间的无缝融合。,5.3 物联网中间件编程实例,5.3.1利用Ruby on Rails开发基于 REST风格的中间件 5.3.2 用J2EE开发Web Service中间件,5.3.1利用Ruby on Rails开发基于 REST风格的中间件,Ruby on Rails,简称RoR或Rails,是一个使用Ruby语言写的开源网络应用框架,能使开发变得更加容易,目前我们用其致力于Web应用的开发、部署和维护。,像其他Web框架一样,Rails采用MVC的开发框架。但相比于其他框架,Rails更加简单易用。这是因为: 1、Ruby语言的特性:自然、简介、快速,有丰富的类库,并且全面地支持面向对象的程序设计。,2、Rails的基本设计原则: “不要重复你自己”(Dont Repeat Yourself,简称DRY)以及“惯例重于配置”。,Rails是一种敏捷的框架,它强调与客户的交互,随时准备“响应变化”。 Rails提倡测试驱动开发,所有的Rails应用内嵌对于测试的支持。,1 Ruby on Rails开发环境搭建,Ruby on Rails可以运行在各种操作系统下,其平台是独立的。总的来说,要安装运行一个Rails应用需要下列组件。,(1)Ruby解释器:我们在此使用Ruby-1.8.6。这个版本的解析器可以很好的满足Rails以及后续一些Ruby Gems的要求。,(2)RubyGems:它是一个标准的Ruby程序包管理器,可以很方便的在线安装各种Ruby程序包,包括Rails等。,(3)Ruby on Rails框架:为简单起见,我们采用gem自动进行安装,在撰写本书时Rails的最新版本为2.3.8。,(4)数据库:Rails的最新版本默认是采用SQLite 3的数据库,在此为了通用性考虑,我们采用最常用的MySQL数据库。,(5)一些必要的库:采用MySQL数据库只需要安装mysql gem包即可。如果使用Rails默认的数据库则需安装sqlite3-ruby gem包。,下面我们主要介绍在Windows下安装部署Rails的具体过程。由于很多程序针对Windows平台都有很方便的一键式安装,所以在Windows下安装Rails还是很轻松的。,(1)安装Ruby解释器。可以从Ruby官网(/en/downloads/)上下载Ruby-1.8.6 One-Click的安装包。 为了检验是否安装成功,可以从Windows的开始菜单点击“运行”,输入“cmd”,启动Windows 命令提示符,然后输入“ruby v”(回车),如能正确显示Ruby程序的版本号则证明安装成功。,(2)安装RubyGems。可以从RubyForge(/)或是RubyGems的官网(/)上下载最新的安装包。下载完成后将该压缩包进行解压,我们假设解压后根目录为$dir目录;然后启动命令提示符,并切换到$dir中,然后输入ruby setup.rb运行RubyGems的安装程序。为了验证是否安装成功,可以从Windows命令提示符中输入“gem v”(回车);如能正确显示RubyGems的版本号则安装成功。,(3)安装Ruby on Rails。在命令提示符中输入“gem install rails”(回车),然后将会在线安装Rails的程序以及Rails的一些依赖包。安装完成后可以通过“rails v”命令查看Rails的版本号来验证是否安装成功。,(4)MySQL数据库。在MySQL官网上下载最新的MySQL-5.1版本的安装程序,然后进行安装即可。具体安装过程也可参考官方的安装说明(/doc/refman/5.1/ zh/installing.html)。,(5)安装mysql gem包。在命令提示符中输入“gem install mysql”进行在线安装。,至此Rails的安装过程就已经全部完成。在Linux下的安装也大同小异,主要是安装Ruby和mysql时略有不同,其他安装步骤都和Windows下安装相同。,2Ruby on Rails编程实例,下面的章节将简单介绍一个关于温度的Rails物联网中间件实例。Rails是一个网络应用框架,它可以很方便地处理各种应用请求,客户端和Rails服务器之间采用统一的REST接口,它们通过HTTP协议来向服务器端发送请求。, 本示例的系统整体架构图如图5-8所示。在该示例中温度传感器也认为是Rails服务器的一个客户端,它会实时地向服务器端发送数据,服务器会把这些数据处理后保存到数据库中以供浏览器或其他客户端调用。服务器的另一种客户端是浏览器或是手机Widget应用,这些客户可以向服务器端发送请求来获取自己所关心的数据。, 本示例中采用REST的方式来进行服务器端的设计,我们将温度(temperature)看做一种资源,每个资源有相应的id、温度值、更新时间、设备名称等信息。本示例中对于温度资源的操作只包括Put和Get两种操作,这两种操作分别通过HTTP的Post和Get请求来完成。具体为温度传感器通过Post请求向服务器上传温度数据,而浏览器通过Get请求来从服务器获得温度数据的记录。,对于REST中的其他资源操作如Update、Destroy等操作在本示例中可以不需要,所以进行了省略。Ruby on Rails是支持所有的REST操作的,可以通过scaffold来进行实现。假定对于这种资源的Put操作对应HTTP的Post请求,请求的URL为root_ dir/temperature/post_temperature;获取资源的Get操作对应HTTP的Get请求,请求的URL为root_dir/temperature/index。, 在此示例中采用mysql数据库,其实由于Rails对于不同数据库接口有很好的封装和适配,采用不同的数据库不会对代码产生太大影响。针对该示例,数据库中只建立一张表来进行数据的存储。表的结构如表5-1所示,其中id字段用于标识每条记录,value字段记录温度值,time字段记录上传的时间,device_id字段记录上传数据的设备标识。,图5-8,温度传感中间件系统架构示意图,表5-1,温度表结构,(1)建立工程。 建立一个名称为smart_sensor的工程,首先在命令提示符中进入待建工程的目录,在此使用F:example目录,然后输入rails-database=mysql smart_sensor,如图5-9所示。,图5-9,建立smart_sensor工程,本示例的实现步骤包括以下几步:,此时修改smart_sensorconfigdatabase.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)建立数据库。,需要修改的主要是username和password,修改成mysql数据库的用户名和密码即可。然后在命令行根目录smart_sensor下执行rake db:create来建立数据库,数据库名称默认为smart_sensor_development,如图5-10所示。下面的命令如没有特别说明均是在smart_sensor根目录下执行的。,图5-10,建立数据库,下面需要建立基本的数据表,在Rails中数据表是由一个Model来管理的,可以用Rails的命令来建立基本的Model。在根目录下输入ruby script generate model temperature,如图5-11所示。,图5-11,建立基本的Model,(3)建立基本的Model类。,此时在dbmigrate目录下会生成一个xxx_create_temperatures.rb的文件,打开该文件并修改成如下结果。这里主要是设置数据表的各个字段的类型以及其他细节。,class CreateTemperatures 4, :scale = 1 t.datetime :time eger :device_id t.timestamps end end def self.down drop_table :temperatures end end,然后执行rake db:migrate命令将temperatures表的结构写入数据库。,控制器的功能主要是对外部的请求进行处理并返回相应的结果。此处可以通过Rails的基本命令来建立基本的控制器。在根目录下输入命令ruby scriptgenerate controller temperature index,如图5-12所示。,图5-12,生成基本的控制器,(4)建立temperature控制器。,class TemperatureController temperatures end end,然后修改appcontrollerstemperature_controller.rb文件以真正实现该示例需要的方法。在此我们将实现index方法以输出所有的temperature数据,并且增加一个添加数据的方法以把传感器发来的数据存入数据库,具体修改如下。,#process the post request and store the data in the database def post_temperature begin # construct an instance of Temperature a_temperature=Temperature.new( :value =params:value, :time =params:time, :device_id =params:device_id) #store a_temperature in the database a_temperature.save rescue #return Fail if fails store the data render :text = “Fail“ return end #return OK if all success render :text = “OK“ return end end,这里增加了两个方法,index和post_temperature。其中index方法用于输出当前存入数据库的所有温度的记录,post_temperature方法是用来处理传感器发来的提交数据的请求,并把这些温度数据存入数据库,执行成功则返回“OK”,否则返回“Fail”。,在此因为index方法会返回一个html文件,来控制返回结果的显示。在Rails中会在views目录下对返回的页面文件进行集中的管理。在此需要修改appviews temperatureindex.html.erb文件,修改结果如下。,(5)修改view页面。, Listing temperatures ,为了让Rails当收到某个请求时知道该调用哪个控制器下的哪个方法来进行处理,在此需要修改Rails的路由以符合该示例的要求。在Rails中修改路由也十分简单,只需要修改configroutes.rb文件即可。在该文件的最后已经有两条默认的路由格式,需要修改这些路由规则以符合我们的需要,具体如下。,map.connect temperature/post_temperature, :controller = “temperature“, :action = “post_temperature“, :conditions = :method = :post map.connect :controller/:action map.connect :controller/:action.:format,(6)修改路由。,当收到发往 temperature/post_temperature这个路径的Post请求时调用temperature控制器的post_temperature方法来进行处理。 当收到:controller/:action格式的路由时,则将第一个参数作为controller,第二个作为action。例如发送temperature/index,此时则会采用temperature控制器的index方法来进行处理。,这里解释一下这3条路由分别的含义。,前面与(2)相同,另外增加了:format参数用来控制返回的格式,例如发送temperature/index.html则采用temperature控制器的index方法,采用html格式的返回结果。如果发送temperature/index.xml则以xml格式返回结果。路由的匹配规则是从上向下依次进行匹配,如果遇到匹配的规则,则采用该规则,并且停止向下匹配。,在此我们采用外部客户主动POST数据的方式来向Server发送请求。Rails中为了避免恶意的POST数据,采用了认证授权的机制来防止这种攻击,类似我们现在采用的POST的方式进行上传数据,则会引发Rails ActionController:Invalid AuthenticityToken异常,并且不会对我们的POST操作进行处理。我们在此需要禁用该认证机制,方法也很简单,只要修改appcontrollersapplication_controller.rb文件即可,修改结果如下。,(7)修改控制器的认证过滤器。,class ApplicationController ActionController:Base helper :all # include all helpers, all the time protect_from_forgery # See ActionController:RequestForgeryProtection for details #allow upload the data directly skip_before_filter :verify_authenticity_token # Scrub sensitive parameters from your log # filter_parameter_logging :password end,接下来我们对本实例的功能进行测试,包括两部分:数据上传和数据显示。 数据上传。 我们采用Curl来发送HTTP的POST请求。Curl工具是Linux下的默认工具,现在也有Windows版的,可以直接在Curl的官网进行下载(http:/curl.haxx.se/download.html),在此我们选用Win32-Generic的禁用SSL的版本。,(8)功能测试。,首先开启一个终端,在根目录下输入ruby script/server,启动WEBrick的服务器。然后在curl的解压目录下输入curl d“value=25.8&time=2010-06-09%2009:30:21&device_id=T1101” http:/localhost:3000/temperature/post_temperature。然后可以收到来自服务器端的OK的返回,如图5-13所示。同时也可以查看服务器终端的log来分析请求处理的过程。,图5-13,发送POST请求,首先在根目录下输入ruby srcript/server来启动服务器(如果已经启动服务器可跳过此步骤)。然后在浏览器地址栏输入http:/localhost:3000/temperature或http:/localhost:3000/ temperature/index.html来显示当前数据库中保存的温度数据,如图5-14所示。 你也可以采用XML的格式来显示这些数据,只需要在浏览器地址栏输入http:/localhost:3000/ temperature/index.xml即可,如图5-15所示。, 数据显示。,图5-14,HTML显示当前数据库中的数据,图5-15,XML显示当前数据库中的数据,5.3.2 用J2EE开发Web Service中间件,J2EE(Java 2 Platform Enterprise Edition)是一套全然不同于传统应用开发的技术架构,包含诸多组件,可简化和规范应用系统的开发与部署,进而提高可移植性、安全性与重复利用价值。,5.3.2 用J2EE开发Web Service中间件,J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有相通的标准与规格,让各种依循J2EE架构的不同平台之间存在良好的兼容性,解决了过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。,轻量级J2EE组件SSH(Struts、 Spring 、Hibernate)是目前J2EE快速开发的最佳组合。 Struts实现了MVC模式的非常成熟的Web应用组件,广泛应用于各种Web应用系统的表现层中。Hibernate是成熟的ORM组件,主要用于实现数据持久化功能,最大作用在于构筑了面向对象Java语言与关系型数据库之间的桥梁,使得可以直接通过对Java对象的持久化操作完成对数据的持久化操作。,Spring则作为轻量级J2EE框架,其核心是一个功能强大的IoC容器,在此容器的基础上又提供了对AOP的支持,以及对持久层和表现层的封装实现。简而言之,Struts用来做控制,是MVC模式的控制层;Hibernate用来做持久化,也是数据库层,对数据库进行封装;Spring用来整合J2EE各层之间的中间层,提高了层与层之间的松耦合,使得各层之间成为对立的模块。,1J2EE开发环境搭建,J2EE快速开发的最佳组合SSH架构,其中以Struts为例,实现了J2EE开发Web Service案例。需要安装和配置的软件,包括Tomcat、Struts及其插件等,具体实现步骤如下。,Tomcat服务器现有最新版本6.0.29,可在/download-60.cgi官方网站下载。对于Windows操作系统,可以下载zip格式或者exe格式两种格式文件。zip格式文件解压即可使用,也可以选择其他格式的文件,以6.0.18版本为例,如图5-16所示。,(1)版本与下载地址。,Tomcat安装过程包括以下几个步骤。,图5-16,Tomcat服务器下载界面,安装Tomcat后,在“我的电脑”-“属性”-“高级”-“环境变量”-“系统变量”中添加以下环境变量(假定Tomcat安装在c:tomcat)。,(2)配置环境变量。,CATALINA_HOME:c:tomcat CATALINA_BASE:c:tomcat TOMCAT_HOME:c:tomcat,然后修改环境变量classpath,把Tomcat安装目录commonlib下的servlet.jar加载到classpath中,修改后的classpath如下所示。,classpath=.;%JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar; %CATALINA _HOME%libservlet-api.jar,见到Tomcat欢迎页面,则说明安装成功,可进入下一步骤。,(3)启动Tomcat,IE中访问http:/localhost:8080。,Tomcat安装目录的webapps,可以见到ROOT、examples、tomcat-docs之类Tomcat自带的文件目录,并拷贝ROOT目录下的WEB-INF目录。 在webapps目录下新建一个目录,命名myapp,并将上一步拷贝的WEB-INF目录粘贴到此目录下。 在myapp下新建jsp测试页面,文件名为index.jsp,文件内容如下。,(4)创建属于自己的jsp app目录。,重启Tomcat。 打开浏览器,输入http:/localhost:8080/myapp/index.jsp,如果页面上显示出当前的时间,则说明安装配置成功。, Now time is: ,Struts的安装过程包括以下几个步骤。 版本和下载网址 Struts最新版本是2.0.12,官方网站下载地址/download.cgi#struts2012,下载struts-2.0.12-all.zip(91MB)即可,其他文件均包含在此文档中。,(5)测试Javabean。,由于struts1.x和struts2有很大区别,而现今许多书都是针对struts1.x所写。在struts1.x版本中struts-config.xml是重要的配置文件,而在struts2中,它变成了struts.xml,而且文件的描述内容和struts-config.xml也有所差异,所以须小心谨慎。而且许多资料一开始就直接用IDE环境(如MyEclipse)来呈现Struts功能框架,使得我们在理解Struts框架时,也会有些疑惑。, 安装与配置,因为Tomcat服务器可用记事本等小型的文本编辑器来实现jsp编写,而如果读者没有集成完备、功能强大的MyEclipse IDE,可能还需要下载和安装,这样必然会让人觉得比较麻烦和费时。实际上,只要弄清楚了Struts结构,完全可以用记事本来实现Struts的功能框架。 下面的章节将

温馨提示

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

评论

0/150

提交评论