第7章软件、服务和算法技术学习任务环境感知型中间件嵌入式软件微型操作系统Clicktoaddtitleinhere123本章主要涉及:学习任务面向服务架构物联网海量数据存储与查询物联网数据融合及路由Clicktoaddtitleinhere456本章主要涉及:7.1.1中间件概述•中间件(middleware)是一类连接软件组件和应用的计算机软件,它包括一组服务,以便于运行在一台或多台机器上的多个软件通过网络进行交互。•该技术所提供的互操作性,推动了一致分布式体系架构的演进。该架构通常用于支持分布式应用程序并简化其复杂度,它包括web服务器、事务监控器和消息队列软件。7.1.1中间件概述中间件7.1.1中间件概述•中间件在操作系统、网络和数据库之上,应用软件的下层。•简单地讲,中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。7.1.1中间件概述操作系统、数据库管理系统、中间件的类比7.1.1中间件概述•中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软件共享资源提供支撑。•广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。7.1.2中间件的体系框架与核心模块•在物联网中采用中间件技术,以实现多个系统和多种技术之间的资源共享,最终组成一个服务系统。7.1.3中间件的分类①企业服务总线(EnterpriseServiceBus)②事务处理(TransactionProcessing)监控器③分布式计算环境(DistributedComputingEnvironment)④远程过程调用(RemoteProcedureCall)⑤对象请求代理(ObjectRequestBroker)⑥数据库访问中间件(DatabaseAccessMiddleware)⑦信息传递(MessagePassing)⑧基于XML的中间件(XML-BasedMiddleware)7.1.4物联网中间件的设计•目前,物联网中间件最主要的代表是RFID中间件,其他的还有嵌入式中间件、数字电视中间件、通用中间件、M2M物联网中间件等。7.1.2中间件的体系框架与核心模块•RFID中间件扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据。•这样一来,即使存储RFID标签数据的数据库软件或后端应用程序增加或改由其他软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。7.2嵌入式软件•嵌入式软件就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。7.2.1嵌入式系统1.嵌入式系统的定义•嵌入式系统是指用于执行独立功能的专用计算机系统。•它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,•共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。7.2.1嵌入式系统2.嵌入式操作系统目前流行的嵌入式操作系统可以分为两类:•一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的WindowsCE及其新版本,SUN公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。7.2.1嵌入式系统•另一类是实时操作系统,如WindRiver公司的VxWorks,ISI的pSOS,QNX系统软件公司的QNX,ATI的Nucleus,中国科学院凯思集团的Hopen嵌入式操作系统等,•这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。7.2.2嵌入式软件的应用1.概述•嵌入式软件与嵌入式系统是密不可分的,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”,•一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,•用于实现对其他设备的控制、监视或管理等功能。7.2.2嵌入式软件的应用•而嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,•同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。7.2.2嵌入式软件的应用2.应用•我们常见的移动电话、掌上电脑、数码相机、机顶盒、MP3等都是用嵌入式软件技术对传统产品进行智能化改造的结果。•嵌入式软件在中国的定位应该集中在国防工业和工业控制、消费电子、通信产业。•首先一个市场是数字电视市场。•第二个市场是移动通信市场。•第三个市场是掌上电脑(PDA)。7.2.3嵌入式软件的分类1.嵌入式操作系统•嵌入式操作系统EOS(EmbeddedOperatingSystem)是一种用途广泛的系统软件,•负责嵌入系统的全部软、硬件资源的分配、调度工作,控制、协调并发活动,它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。7.2.3嵌入式软件的分类•现在国际上有名的嵌入式操作系统有WindowsCE、PalmOS、Linux、VxWorks、pSOS、QNX、OS-9、LynxOS等,已进入我国市场的国外产品有WindRiver、Microsoft、QNX和Nuclear等。•我国嵌入式操作系统的起步较晚,国内此类产品主要是基于自主版权的Linux操作系统,其中以中软Linux、红旗Linux、东方Linux为代表。7.2.3嵌入式软件的分类2.嵌入式支撑软件•支撑软件是用于帮助和支持软件开发的软件,通常包括数据库和开发工具,其中以数据库最为重要。•嵌入式数据库技术已得到广泛的应用,随着移动通信技术的进步,人们对移动数据处理提出了更高的要求,嵌入式数据库技术已经得到了学术、工业、军事、民用部门等各方面的重视。7.2.3嵌入式软件的分类3.嵌入式应用软件•嵌入式应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于用户任务可能有时间和精度上的要求,因此有些嵌入式应用软件需要特定嵌入式操作系统的支持。•嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要尽可能地进行优化,以减少对系统资源的消耗,降低硬件成本。7.2.4嵌入式软件发展趋势•嵌入式系统被描述为:“以应用为中心、软件硬件可裁剪的、适应应用系统对功能、可靠性、成本、体积、功耗等严格综合性要求的专用计算机系统”,由嵌入式硬件和嵌入式软件两部分组成。•硬件是支撑,软件是灵魂,几乎所有的嵌入式产品中都需要嵌入式软件来提供灵活多样、而且应用特制的功能。7.2.4嵌入式软件发展趋势•目前的因特网技术只联接了5%左右的计算装置,大量的嵌入式设备急需网络连接来提升其服务能力和应用价值。•同时,以人为中心的普适计算技术正推动新一轮的信息技术的革命。计算无所不在,嵌入式设备将以各种形态分布在人类的生存环境中,提供更加人性化、自然化的服务。•互联网的深度联网和普适计算纵向普及所带来的计算挑战,将推动嵌入式软件技术向纵深发展,催生了新型嵌入式软件技术。7.3.1传感器节点微型操作系统(1)节点操作系统的发展•操作系统是传感器节点软件系统的核心,为适应传感器网络的特殊环境,节点操作系统与其它使用在计算机或服务器上的操作系统有极大的区别。节点操作系统VS其他操作系统7.3.1传感器节点微型操作系统•由上图可清楚地看出,节点操作系统是极其微型化的。节点操作系统的发展近年来取得快速发展,主要发展过程请参看下图。节点操作系统发展史7.3.1传感器节点微型操作系统(2)TinyOS•TinyOS由加州伯克莱分校开发,是目前无线传感网络研究领域使用最为广泛的节点操作系统。TinyOS使用的开发语言是:nesC•nesC语言是专门为资源极其受限、硬件平台多样化的传感节点设计的开发语言,使用nesC编写的应用程序是基于组件的,组件之间的交互必须通过使用接口。7.3.1传感器节点微型操作系统常用微型节点操作系统对比7.3.2其它常见微型操作系统1.WinPE•Windows预先安装环境(MicrosoftWindowsPreinstallationEnvironment,简称WindowsPE或WinPE)•是简化版的WindowsXP、WindowsServer2003或WindowsVista。•WinPE是以光盘或其他可携设备作媒介。7.3.2其它常见微型操作系统2.MenuetOS•MenuetOS是英国软件工程师VilleMikaelTurjanmaa开发的,完全由x86汇编语言于2000年写成的一款开放源码的32位操作系统。•最新的版本可以从其官方网站下载。全部使用汇编语言7.3.2其它常见微型操作系统3.SkyOS•SkyOS拥有现代操作系统要求的多处理器支持,虚拟内存,多任务多线程等等功能,更令人耳目一新的是它漂亮的GUI系统SkyGI。•首个SkyOS系统于1997年底发布。•SkyOS操作系统并不开放源代码,收费并且用户不可以自由地获取7.3.2其它常见微型操作系统4.ReactOS•ReactOS®完全兼容Windows®XP的操作系统。•ReactOS旨在通过使用类似构架和提供完整公共接口实现与NT以及XP操作系统二进制下的应用程序和驱动设备的完全兼容。•简单地说,ReactOS目标就是用您的硬件设备去运行您的应用程序。•任何人都可以免费使用的FOSS操作系统!!7.3.2其它常见微型操作系统5.TriangleOS•TriangleOS是荷兰人WimCools用C和汇编写出来的32位操作系统。6.Visopsys•Visopsys由加拿大人AndrewMcLaughlin开发,有独特的GUI,开放源码。最新的Visopsys可以从其官方网站下载。7.3.2其它常见微型操作系统7.StormOS•StormOS是由立陶宛的Thunder于2002年开始开发的,有简单的GUI,装在一张软盘上。8.实验室中的操作系统•这些系统多由高校中的实验室开发,作试验研究之用,如德国的DROPS等,7.4面向服务架构•面向服务的体系结构(service-orientedarchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。•接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。7.4.1面向服务架构简介•在SOA架构风格中,服务是最核心的抽象手段,业务被划分(组件化)为一系列粗粒度的业务服务和业务流程。业务服务相对独立、自包含、可重用,由一个或者多个分布的系统所实现,而业务流程由服务组装而来。•一个服务定义了一个与业务功能或业务数据相关的接口,以及约束这个接口的契约,如服务质量要求、业务规则、安全性要求、法律法规的遵循、关键业绩指标(KeyPerformanceIndicator,KPI)等。7.4.1面向服务架构简介•接口和契约采用中立、基于标准的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言。•这使得构建在不同系统中的服务可以以一种统一的和通用的方式进行交互、相互理解。•除了这种不依赖于特定技术的中立特性,通过服务注册库(ServiceRegistry)加上企业服务总线(EnterpriseServiceBus)来支持动态查询、定位、路由和中介(Mediation)的能力,使得服务之间的交互是动态的,位置是透明的。7.4.1面向服务架构简介•S