
第4章--中间件技术.ppt
59页第4章 中间件技术,4.1 中间件,随着网络应用的日益普及,软件应用的规模和范围无限扩展,许多应用程序需要在网络环境的异构平台上运行,由此带来的问题也越来越明显,如不同的硬件平台、不同的网络环境、不同数据库之间的相互操作;多种应用模式并存、系统效率过低、传输不可靠、数据加密、开发周期过长等等,单纯依赖传统的系统软件或工具软件提供的功能已无法满足要求另外,当客户机服务器方式的应用逐渐推广到企业级的关键任务环境时,便出现了一些问题,如系统可扩展性差、解析度低、维护代价高、安全性差、系统间通信功能较弱为解决这些问题中间件技术应运而生4.1.1 中间件简介,“中间件”这一术语最早出现在20世纪80年代后期,主要用于描述网络连接管理软件 在20世纪90年代中期,随着网络技术快速发展,中间件的概念日益普及中间件在学术界和产业界均得到长期、广泛的研究与实践,尽管目前尚没有统一的中间件定义,但对于中间件的意义与内涵已有基本共识 表4-1所示是国际上各种组织对中间件的描述表4-1 国际各组织对中间件的描述,一般说来,中间件有两层含义 从狭义的角度,中间件英文为Middleware,它是表示网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,通过API形式提供一组软件服务,可使得网络环境下的若干进程、程序或应用可以方便地交流信息和有效地进行交互与协同。
简言之,中间件主要解决异构网络环境下分布式应用软件的通信、互操作和协同问题,它可屏蔽并发控制、事务管理和网络通信等各种实现细节,提高应用系统的易移植性、适应性和可靠性从广义的角度,中间件在某种意义上可以理解为中间层软件,通常是指处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发提供更为直接和有效的支撑 中间件体系结构如图4-1所示图4-1 中间件体系结构,中间件的主旨是简化分布系统的构造,其基本思想是:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量在构造分布系统的过程中,开发人员经常会遇到网络通信、同步、激活/去活、并发、可靠性、事务性、容错性、安全性、伸缩性、异构性等问题 基于目的和实现机制的不同,实现的功能有如下分类1.远程过程调用 2.面向消息处理 面向消息指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成通过提供消息传递和消息排队模型,而面向消息的处理可在分布环境下扩展进程间的通信,并支持多通信协议、语言、应用程序、硬件和软件平台。
目前流行的面向消息的中间件产品有IBM的MQSeries、BEA的MessageQ等 消息传递和排队技术有以下3个特点:,(1)通信程序可在不同的时间运行程序,可不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系,所以它们不必同时运行消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息2)对应用程序的结构在不同的应用场合中,通信程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合多种通信方式的构造并没有增加应用程序的复杂性3)程序将消息放入消息队列或从消息队列中取出消息来进行通信,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等任务,程序不直接与其他程序通话,并且程序也不涉及网络通信的复杂性4.1.2 传统中间件:主要技术与产品,随着分布式应用的快速发展,各种中间件技术和产品不断涌现 由于中间件技术和产品正在快速的发展,要精确地给出其完整的分类目前尚有一定的困难 表4-2所示主要对一些典型的中间件技术和产品加以介绍表4-2 中间件产品与特征,4.1.3 中间件关键实现技术,1.面向消息中间件 2.面向对象中间件,图4-2 消息中间件,4.2 中间件三层模式,从传统的二层结构到现在的多层结构,软件系统的发展经历了翻天覆地的变化。
传统的应用系统模式是“主机/终端” 或“客户机/服务器(Client/Server)”客户机/服务器系统的结构是指把一个大型的计算机应用系统变为多个能够互为独立的子系统,而服务器便是整个应用系统资源的存储与管理中心,多台客户机则各自处理相应的功能,共同实现完整的应用随着Internet的发展壮大,这些传统模式已经不能适应新的环境,于是就产生了新的分布式应用系统,即所谓的“浏览器/服务器”的结构、“瘦客户机”模式在Client/Server结构模式中,客户端直接连接到数据库服务器,由二者分担业务处理,这样的体系有以下的缺点1)Client与Server直接连接,安全性低非法用户容易通过Client直接闯入中心数据库,造成数据损失2)大量的数据直接通过Client/Server传送,在业务高峰期容易造成网络流量剧增,网络容易发生堵塞3)Client程序庞大,并且随着业务规则的变化,需要随时更新Client短程序,大大增加维护量,造成维护工作困难随着Internet的发展,企业的信息系 统和以往相比已发生了很大的变化 企业级的应用已不再满足于单机系统和简单的客户/服务器系统,而是向着三层和多层体系结构的分布式环境不断迈进。
所谓三层结构,就是在原有的“两层结构”(客户端和服务器端)之间增加了一层组件,这层组件包括事务处理逻辑应用服务、数据库查询代理/数据库等随着这层组件的增加,两层结构向三层结构转变后,客户端和服务器端的负载就相应减轻了,跨平台、传输不可靠等问题也得到了解决 增加的这层组件就是我们所说的“中间件”图4-3 中间件三层模式系统结构图,4.3 中间件技术在Web数据库中的应用,一般来说,通过Web实现对数据库的访问,在整个系统中关键的技术是中间件的解决方案,是目前使用最多的一种,体系结构如图4-4所示图4-4 体系结构图,中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务 由于驻留在Web服务器上,因而中间件软件能够调用作为Web服务器和数据库服务器中“传输机制”的外部程序或“编码”,并将执行查询等以HTML页面或纯文本的形式将信息返回给最终用户数据库服务器负责管理驻留在数据库服务器中的数据 下面是当前几种流行的支持跨平台的Web解决方案1.ASP 2.JDBC技术 3.CGI 4.JSP,4.4 支持无线传感器网络的中间件,传感器网络是固定式分布的,首先,这些传感器分布在一个物理空间和主要通过无线连接。
这个特点增加了整个系统的不可靠性其次,传感器网络具有动态的可用性 无论是通过空间移动性,还是增加新的传感器,或现有传感器的丢失,都会引起可用传感器设置随时间而改变 最后,传感器网络资源的限制 网络带宽和传感器的能量限制传感器通常由电池供电,传感器网络与无线网络连接,但提供更少的带宽和小于有线网络的可靠连接 本节将介绍一种典型的中间件,即MAN (Middleware Applications and Networks),通 过它来了解中间件的组成和原理及如何使用MAN中间件可以接收应用需求描述,监控网络状况,优化传感器和网络配置以达到应用寿命最大化 为了完成这个目标,应用程序通过专门的包含基于应用中状态变化的图形将需求发送给MAN基于这些信息,MAN对如何控制网络和传感器作出决定以平衡应用QoS和能量效率,从而延长应用的寿命 MAN结构如图4-5所示,传感器网络应用、MAN和传感器网络之间的关系,如图4-6所示图4-5 MAN结构,图4-6 传感器网络应用、MAN和传感器网络之间的关系,图4-7 MAN组成,图4-8 MAN、应用、传感器和部分API之间的相互作用,4.5 物联网与中间件,物联网中的中间件处于物联网的集成服务器端和感知层、传输层的嵌入式设备中。
服务器端中间件称为物联网业务基础中间件,一般都是基于传统的中间件(应用服务器、ESB/MQ等)构建,加入设备连接和图形化组态展示等模块;嵌入式中间件是一些支持不同通信协议的模块和运行环境中间件的特点是它固化了很多通用功能,但在具体应用中多半需要二次开发来实现个性化的行业业务需求,因此所有物联网中间件都要提供快速开发工具4.5.1 物联网中间件的特点,从中间件分类的角度来说,物联网中间件是一种面向消息的中间件(Message Oriented Middleware,MOM) 物联网中间件处于物联网的集成服务器端和感知层、传输层的嵌入式设备中服务器端中间件称为物联网业务基础中间件(很多时候也叫框架(Framework)或平台(Platform),一般都基于传统的中间件(应用服务器、ESB/MQ 等)构建,加入设备连接和图形化组态展示等模块 嵌入式中间件是一些支持不同通信协议的模块和运行环境在RFID中物联网中间件具有以下特点 (1)应用架构独立 (2)分布数据存储 (3)数据加工处理,4.5.2 未来发展趋势,中间件技术近年取得了很大的成功,不仅成为产业界开发分布系统的首选,也吸引了学术界的众多研究。
随着应用的普及和研究的深入,以及Internet的发展,目前中间件的发展面临以下4大趋势趋势一是中间件的外延将不断扩展变厚 趋势二是中间件的平台化 趋势三是中间件支持云计算 趋势四是支持后端平台的深度融合总而言之,中间件的发展代表了Internet的发展,一体化、深度融合将是未来中间件的关键词,它既能支持基于Internet的数据管理、异构计算、平台服务,也能实现对应用、平台的睿智洞察、自适应、自管理,还能支持开放式的按需集成,最终支撑一体化的Internet平台图4-9 中间件发展趋势图,目前的中间件研究热点如下 1.支持基于构件的软件开发 2.支持Internet应用与Web服务 3.支持移动应用 4.支持反射机制,5.支持服务质量 6.支持网格计算 7.支持自治计算,。





![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)






