中间件技术综述
中间件技术综述
![中间件技术综述](https://img.taocdn.com/s3/m/2cd28ef8700abb68a982fbd0.png)
中间件技术综述摘要:介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。
指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。
关键词:统一软件开发平台、中间件技术1 引言随着Internet网络应用技术的发展,基于客户机/服务器(Client/Server)模式的系统设计方法己被广泛地应用于各种类型软件系统的设计与开发中。
其编程方式改变了传统的应用程序设计和系统实现方式。
为此人们提出了一种介于客户端和服务器端的软件--中间件(Middleware)。
中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。
于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”伴随产生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。
2 中间件技术2.1 中间件的分类由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义。
因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。
基于不同中间件的目的和实现机制的不同,一般将中间件主要分为以下几类:远程过程调用中间件(remote procedure call middle-ware);面向消息的中间件(message oriented middleware);对象请求代理(object request broker);事务处理监控(transaction processing monitor);数据库中间件(database middleware);专用中间件(proprietary middleware)。
其中,前3类中间件称为管道,它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等,在这些基本的通讯服务之上,可构筑各种平台,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问等。
物联网中间件研究综述
![物联网中间件研究综述](https://img.taocdn.com/s3/m/b6bbfc360a4c2e3f5727a5e9856a561252d321f5.png)
物联网中间件研究综述来源:作者:周健刘天成时间:2011-05-06 浏览次数:150一、前言物联网(Internet of Things)概念于1999年由美国麻省理工学院的Kevin Ashton教授提出。
早期的物联网是依托RFID技术的物流网络,但是随着技术和应用的发展,物联网的内涵已发生较大变化。
国际电信联盟(ITU-T)在2005年发布的物联网报告中提到,通过一些关键技术,将现有互联网渗透到物理世界,构成物联网。
这些关键技术包括RFID、传感器、机器人技术、嵌入式智能和纳米技术。
物联网是继计算机、互联网和移动通信之后引发新一轮信息产业浪潮的核心领域,发达国家已纷纷开展物联网领域的规划布局。
日韩2004年提出"无处不在的信息社会"战略(U计划),欧盟委员会2009年提出"欧盟物联网行动计划",美国2006年至2009年分别提出“智能微尘”、“信息物理融合系统”、“智慧地球”等战略,我国也于2009年提出“感知中国”,并将物联网正式纳入“十二五”规划五大战略产业之一。
物联网已经开始在军事、工业、农业、环境监测、建筑、医疗、空间和海洋探索等领域投入应用。
二、相关定义目前,业界存在着许多与物联网相关或类似的概念,如M2M、智慧地球、泛在网、信息物理融合系统等。
它们与物联网的定义或者“略有”差异,或者被“解释”为物联网的子集或超集:物联网是指通过各种信息传感设备,如传感器、射频识别(RFID)技术、全球定位系统、红外感应器、激光扫描器、气体感应器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,与互联网结合形成的一个巨大网络。
其目的是实现物与物、物与人,所有的物品与网络的连接,方便识别、管理和控制。
M2M的全称是机器对机器(Machine to Machine)、人对机器(Man to Machine)以及机器对人(Machine to Man),移动网络对机器(Mobile to Machine)、机器对移动网络(Machine to Mobile)等多种不同类型的智能设备有机的结合在一起。
中间件技术的简介
![中间件技术的简介](https://img.taocdn.com/s3/m/074e3921a5e9856a56126072.png)
中间件技术的简介1.1两层结构与三层结构长期以来,我们一直使用着"客户端/服务器"的两层结构,这种两层的结构曾让无数人为之兴奋和惊叹,即客户端提供用户界面、处理业务逻辑,数据库服务器接受客户端SQL 语句并对数据库进行查询,更新等操作,然后操作结果返回给客户端,如图所示。
在一个比较简单的计算机应用系统中,采用两层体系结构的确给人们带来了相当的灵活性。
但随着计算机应用水平的飞速发展、企业信息化水平的不断深入、企业客户的不断增加,以及新业务的不断出现,越来越多的用户对计算机应用系统提出了更高的要求:1.要能够同时支持成千上万乃至更多用户的并发服务请求2.由单一的局域网向跨多个网络协议的广域网扩展3.不仅要支持一般的信息管理,而且还要支持关键业务的联机交易处理4.从支持单一的系统平台和数据源转向支持异构的多系统平台和多数据源面对用户的新需求,二层结构的应用模式由于采用客户机与服务器直接联接的方式形成了其固有的一些缺陷:1.难以维护client/server结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署的时候比较容易,但难于升级或改进,而且经常基于某种专有的协议(通常是某种数据库协议)。
它使得重用业务逻辑和界面逻辑变得非常困难。
2.难以扩展随着系统的升级,系统复杂程度大大增加,难以扩展,另外它是一个封闭的系统,很难与其他的应用系统实现互操作。
3.安全性差客户端程序可以直接访问数据库,可通过编程语言或数据库提供的工具直接对数据库进行操作,不安全4. 性能不好客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至当机。
三层结构为解决传统二层模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层应用模式应运而生,三层结构以中间层管理大量的客户端并为其联接、集成多种异构的服务器平台,通过有效的组织和管理,在极为宽广的范围内将客户机与服务器进行高效组合。
中间件技术的综述
![中间件技术的综述](https://img.taocdn.com/s3/m/26b4cef8534de518964bcf84b9d528ea81c72fd8.png)
1什么是中间件为解决分布异构问题,人们提出了中间件(middleware)的概念。
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
图1中间件也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:1)满足大量应用的需要2)运行于多种硬件和OS 平台3)支持分布计算,提供跨网络、硬件和OS 平台的透明性的应用或服务的交互4)支持标准的协议5)支持标准的接口由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
2主要中间件的分类中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。
但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。
由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。
基于目的和实现机制的不同,我们将平台分为以下主要几类:1)远程过程调用(Remote Procedure Call)2)面向消息的中间件(Message-Oriented Middleware)3)对象请求代理(Object Request Brokers)它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM 等。
中间件综述
![中间件综述](https://img.taocdn.com/s3/m/35bf2a5b852458fb770b5685.png)
中间件综述[摘要]:介绍中间件的起源、概念及主要研究内容;借鉴国内外经验,谈中间件的研发、测试和评估方法;最后,结合中间件在近年来遇到的问题展望其未来。
[关键词]:中间件;分布式系统;软件体系结构引言随着应用程序规模的扩大,网络的出现,计算机的应用范围更为广阔,许多应用程序需要在网络环境下的异构平台上运行。
在这种分布异构环境中,通常存在多种软、硬件平台。
对如何集成已有系统并能在新的程序开发中运用已有成果的思考与探索促进了中间件的产生。
国内在中间件领域的起步阶段正是整个世界范围内中间件的初创时期,我们并不比国外晚多少,甚至某些技术还处于世界先进水平。
1.中间件概念和分类1.1什么是中间件首先,中间件是一类软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其通信功能。
文献[1]给出了中间件的定义:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
图1、中间件示意图世界著名咨询机构The Standish Group归纳了中间件的十大优越性。
简要地说:缩短开发周期,节约开发成本,提高开发质量,降低开发失败率,压缩系统初期建设成本,保证已有投资,简化应用集成,减少维护成本,保证技术连续性以求发展与突破,增强产品活力;具体地说:首先,从厂商和用户的角度上,中间件的引入不仅使得开发简便、周期缩短,也减少了系统的运行、管理和维护的工作量,更减少了总体费用(一半左右),这样就实现了厂商和用户的双赢。
其次,从技术发展的角度上,中间件屏蔽了底层操作系统的复杂性,使开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,便于将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
中间件作为一个软件层,其重要作用是要将应用软件集成起来像一个整体协调工作,保证我们可以实现粒度相对更大的软件复用。
中间件的研究综述
![中间件的研究综述](https://img.taocdn.com/s3/m/edb38c3d915f804d2b16c182.png)
中间件的研究综述计算机技术和网络技术的飞速发展,许多应用程序需在网络环境的异构平台上运行。
在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。
如何把这些系统集成起来并开发新的应用是一个现实而困难的问题,于是“中间件”技术就应运而生。
中间件是一种独立的系统软件或服务程序,位于应用与操作系统之间,屏蔽底层操作系统、网络以及数据库的异构性和复杂性,简化网络分布应用的开发、管理和维护,实现了应用逻辑与系统服务关注点的分离。
1 中间件的定义为了解决分布异构问题,提出了中间件的概念。
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图中间件示意图1所示,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
IDC(互联网数据中心)对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
国外学术界给中间件的定义:中间件是一种软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作)这时允许各应用成分之下所涉及的“系统结构、操作系统、通信协议、数据库和其他应用服务”各不相同。
这一定义可形象地表示成如图中间件示意图22中间件的分类2.1 数据访问中间件数据访问中间件是指一切连接应用程序和数据库的软件。
面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的资源,数据访问中间件的使用是解决异质平台、异质环境、异质数据库的统一访问、统一存取的最佳方案。
在分布式系统中,重要的数据都集存放在数据服务器中,它们可以是关系型、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或者压缩存放,数据访问中间件是在这种系统中建立数据应用资源互操作的模式,实现异构环境下的数据库联接或文件系统联接的中间件,从而为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
中间件技术
![中间件技术](https://img.taocdn.com/s3/m/7a8c55f67c1cfad6195fa760.png)
顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于 顾名思义,中间件是处于应用软件和系统软件之间的一类软件, 硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件, 硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方 与服务方之间的连接件,是需要进行二次开发的中间产品。 与服务方之间的连接件,是需要进行二次开发的中间产品。 应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。 应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前 的计算机系统多是单机系统,多个用户是通过联机终端来访问的, 的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的 概念。网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共 的计算服务模式, 概念。网络出现后,产生了 的计算服务模式 享数据库服务器和打印服务器等等。随着网络的更进一步发展, 享数据库服务器和打印服务器等等。随着网络的更进一步发展,许多软件需要 在不同厂家的网络产品、硬件平台、网络协议异构环境下运行, 在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也 从局域网发展到广域网。在这种情况下, 从局域网发展到广域网。在这种情况下,Client/Server模式的局限性也就暴露 模式的局限性也就暴露 出来了,于是中间件应运而生。 出来了,于是中间件应运而生。中间件是位于操作系统和应用软件之间的通用 服务, 服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议 的异构性,使应用软件能够比较平滑地运行于不同平台上。 的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载 平衡、连接管理和调度方面起了很大的作用, 平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提 满足了关键业务的需求。 升,满足了关键业务的需求。
中间件技术发展概述
![中间件技术发展概述](https://img.taocdn.com/s3/m/79b0b70282c4bb4cf7ec4afe04a1b0717fd5b301.png)
中间件技术发展概述中间件技术主要用来支撑分布式软件的开发,在大型分布式软件系统中中间件技术发挥着极其重要的作用。
但是中间件技术也并不是一夜成名的,像任何其他技术一样它的发展也是经历了一个比较漫长的过程的,本文将带你走进中间件技术的世界,让你了解中间件技术的发展过程,以及为什么要使用中间件?为什么会出现中间件集群?希望本文能够让你体会到中间件技术的魅力。
1. 分布式软件的三层/多层结构:最早的分布式软件主要是基于两层结构的,所谓的两层结构指的是整个软件的系统架构只分为客户端和服务端(C/S)两层,在两层结构中,简单地将软件系统划分为服务器层和客户层,服务器层又称为数据层。
在服务器层,一般放置一个数据库服务器,上面安装一个数据库管理系统,存放系统用到的持久数据。
而客户层则实现系统的主要业务功能,实现时需要访问数据库中存放的数据,一般会有多个客户端同时访问数据库服务。
这时的系统结构比较简单,就是多个客户端程序共享一个数据库。
其结构图如下:两层结构下,客户程序直接访问数据库,并且用户界面代码和业务逻辑代码交织在一起,这些导致两层结构存在以下重要的缺陷:第一,客户端的负担比较重。
第二,客户端的可移植性不好。
第三,系统的可维护性不好。
第四,数据的安全性不好。
鉴于以上原因,人们提出了如下图所示的三层结构:三层结构中软件开发的主要工作量在中间层,中间层包括除用户界面代码与持久数据之外的几乎所有系统代码,是整个软件系统的核心。
在三层结构中,客户层和数据层已被严格定义,但中间层并未明确定义。
中间层可以包括所有与应用程序的界面和持久数据存储无关的处理。
假定将中间层划分成许多服务程序是符合逻辑的,那么将每一主要服务都视为独立的层,则三层结构就成为了n 层结构。
典型地,可将业务逻辑层分离出实现数据持久化操作的持久层,用于实现对于持久数据操作的封装,从而形成由客户层、业务逻辑层、持久层与数据层构成的四层结构。
2.构件技术的出现。
数字电视的中间件技术
![数字电视的中间件技术](https://img.taocdn.com/s3/m/7bd47a29915f804d2b16c11d.png)
数字电视中间件是指位于数字电视机顶盒内部实时操作系统与应用程序之间的软件部分,它以应用程序接口API的形式存在,整个API集合被存储在机顶盒的闪存FLASH中。
针对机顶盒的应用程序基于API进行开发,能够支持丰富的应用。
采用中间件系统,可以跨越技术、标准等复杂的内容,用简单的方法定制具有自己特色的应用软件,从而在提高开发效率、减少开发成本的同时能够跟上技术的发展,将应用的开发变得更加简捷,使产品的开放性和可移植性更强。
虽然中间件对机顶盒硬件资源的要求较高,但在开发大量应用时成本大大下降。
1数字电视的中间件技术中间件技术是一个纯软件系统技术,它也是一个比较笼统的概念。
一般地说,它是建立在数字电视接收设备驱动层之上,为交互应用提供一个完整的应用编程接口的软件系统。
它包含一系列的功能,如内存管理、通信管理、图形系统管理、SI数据装载、系统资源管理以及与前端系统间的通信及控制等。
目前,比较成熟的商用中间件产品有OpenTv的EN2、Liberate的TV Navigator for DTV、Enreach的EnreachTV for DTV、Canal Plus的Mediahighway以及NDS的NDS Core等。
目前,在我国已经有一定市场份额的中间件生产厂商主要有Canal Plus、NDS和OpenTv等几家。
法国Canal Plus的Mediahighway是欧洲中间件系统的代表,其最早采用的编程语言是一种解释执行的私有语言。
后来,Canal Plus采用Java语言和标准的数据下载协议DSMCC Object Carousel(即DSMCC对象轮盘传输),重新进行系统设计和制定编程接口,成功地将Java 引入数字电视机顶盒中,Canal Plus的中间件产品在欧洲有广阔的市场。
英国的NDS 的中间件解决方案主要是基于HTML,利用HTML网页浏览器也能实现一定的互动性。
目前,NDS也正在研究基于Java的解决方案。
中间件消息通信技术概要
![中间件消息通信技术概要](https://img.taocdn.com/s3/m/33b5ca36ee06eff9aef80771.png)
中间件消息通信技术概要一、中间件中间件,就是介于应用系统与系统软件之间的一类软件,它使用系统软件所提供的基础功能,衔接于应用系统的不同部分,能够达到资源共享和功能共享的目的。
消息中间件,是中间件众多产品分类中一个重要部分。
它能够适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。
消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。
二、几种通信技术的比较1、CPI-CCPI-C是一种同步对话通信模式。
参加通信的一方发起一次对话,同时控制信息流动。
数据既可以由发送者传递到接受者,也可以反向流动。
参加通信的两个程序需要跟踪对话的状态,如果异常发生导致连接中断,则需要发送方重建并恢复这次通话。
通信双方既可以处于主从地位,也可以处于对等地位。
也就是说,CPI-C既支持客户端-服务器环境,也支持对等通信方式。
虽然CPI-C在一般情况下是一种同步通信类型,但是在一定环境中,如CIC S,可以通过“临时数据队列”实现一定程度的异步。
TCP/IP,SNA都支持CPI-C。
由于需要应用程序参与错误的检测与恢复,CPI-C的编程接口相当复杂。
2、RPCRPC,即远程过程调用,也是一种同步,对话方式的类型。
一个调用程序向服务器提成申请,该调用被负责通信的转接器发往远端系统。
调用者与被调用者关系是固定的,很难实现对等通信。
与CPI-C一样,通信错误需要应用程序自己维护。
另外在申请服务得到响应之前,服务申请者被阻隔,这不仅是应用的瓶颈所在,更有可能遭受拒绝式服务攻击。
3、MQI(Message Queue Interface)消息队列接口为程序提供了一种异步通信方式。
一个程序以一个队列作为中转与另一个程序相互通信,这个队列向对于该程序而言既可以是本地,也可以是远程。
当程序A与程序B进行通信时,A只需要将消息放入一条与B相通信的队列即可,至于消息何时,以何种协议,何种方式到达程序B与A没有关系。
中间件_1综述
![中间件_1综述](https://img.taocdn.com/s3/m/cfd2d0ee524de518964b7d11.png)
山东大学计算机科学与技术学院
消息中间件
(Message-Oriented Middleware,
MOM)
山东大学计算机科学与技术学院
动机:RPC调用的缺点 (1)客户端与服务器端需要同时在线; (2)客户端需要知道服务器端的调用接口,若调用接口发生改
变,客户端需要做相应变化,如通过ODBC连接访问数据库,客户 端需要知道远程数据库的类型,若类型发生改变,还需要重新装 载相应的驱动程序。
( Coordiantor), 其 他 节 点 称 为 事 务 参 与 者 (Participants)。协调者掌握提交或撤消事务的决定 权,而其它参与者则各自负责本地数据的更新,并向协 调者提出撤消或提交子事务的意向。一般一个结点对应
一个子事务。
山东大学计算机科学与技术学院
常见的TPM产品有
BEA的Tuxedo Microsoft的MTS SUN的JTS OMG的OTS 东方通的TongLINK/TongEasy
结点或结点间通信的失效都可能导致分布式事务的失败。 因此,为了保证事务的完整性,分布式事务通常采用两 阶段提交协议(Two Phase Commitment Protocol,简称 2PC)来提交。 两阶段提交协议的思路是 TM向所有RM发出正式提交请 求之前,先询问所有RM是否已准备好提交,仅当所有的 RM都给出肯定的回答时,TM才发出提交的请求;如果其 中有一个RM给出否定地回答,TM就指示所有的RM进行回 卷。
山东大学计算机科学与技术学院
远程过程调用中间件
山东大学计算机科学与技术学院
本地过程调用的扩展,可透明地调用远地提供的服务 数据表示、可靠传递、服务定位等 分布式计算环境,DCE
山东大学计算机科学与技术学院
中间件技术的综述
![中间件技术的综述](https://img.taocdn.com/s3/m/4608bc2e76a20029bc642d80.png)
中间件技术的综述作者:崔力升来源:《科技视界》 2014年第3期崔力升(信阳职业技术学院,河南信阳 464000)【摘要】计算机技术迅速发展。
从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出现,使计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。
这一切都对新一代的软件开发提出了新的需求。
【关键词】中间件;面向对象;计算机技术1 什么是中间件为解决分布异构问题,人们提出了中间件(middleware)的概念。
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。
针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:1)满足大量应用的需要2)运行于多种硬件和OS平台3)支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互4)支持标准的协议5)支持标准的接口由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
2主要中间件的分类中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。
但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。
由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。
基于目的和实现机制的不同,我们将平台分为以下主要几类:1)远程过程调用(Remote Procedure Call)2)面向消息的中间件(Message-Oriented Middleware)3)对象请求代理(Object Request Brokers)它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。
第一章:中间件技术介绍
![第一章:中间件技术介绍](https://img.taocdn.com/s3/m/dd49a9252f60ddccda38a01a.png)
第一章第一章::中间件技术介绍中间件技术介绍1.1 两层结构与三层结构两层结构与三层结构长期以来,我们一直使用着"客户端/服务器"的两层结构,这种两层的结构曾让无数人为之兴奋和惊叹,即客户端提供用户界面、处理业务逻辑,数据库服务器接受客户端SQL 语句并对数据库进行查询,更新等操作,然后操作结果返回给客户端,如图所示。
在一个比较简单的计算机应用系统中,采用两层体系结构的确给人们带来了相当的灵活性。
但随着计算机应用水平的飞速发展、企业信息化水平的不断深入、企业客户的不断增加,以及新业务的不断出现,越来越多的用户对计算机应用系统提出了更高的要求:1. 要能够同时支持成千上万乃至更多用户的并发服务请求 2. 由单一的局域网向跨多个网络协议的广域网扩展3. 不仅要支持一般的信息管理,而且还要支持关键业务的联机交易处理 4. 从支持单一的系统平台和数据源转向支持异构的多系统平台和多数据源面对用户的新需求,二层结构的应用模式由于采用客户机与服务器直接联接的方式形成了其固有的一些缺陷: 1. 难以维护难以维护client/server 结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署的时候比较容易,但难于升级或改进,而且经常基于某种专有的协议(通常是某种数据库协议)。
它使得重用业务逻辑和界面逻辑变得非常困难。
2.难以扩展难以扩展随着系统的升级,系统复杂程度大大增加,难以扩展,另外它是一个封闭的系统,很难与其他的应用系统实现互操作。
3.安全性差安全性差客户端程序可以直接访问数据库,可通过编程语言或数据库提供的工具直接对数据库进行操作,不安全4. 4. 性能不好性能不好性能不好客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至当机。
三层结构三层结构为解决传统二层模式与应用需求日益突出的矛盾,以交易中间件为基础框架的三层应用模式应运而生,三层结构以中间层管理大量的客户端并为其联接、集成多种异构的服务器平台,通过有效的组织和管理,在极为宽广的范围内将客户机与服务器进行高效组合。
中间件综述
![中间件综述](https://img.taocdn.com/s3/m/4315d4d880eb6294dd886c17.png)
对 象在 异构 网络 问分 布和 共 享 。 中问件 的主 要 目的是 帮助解 决 许 多有 关应 用连 接 和互 操 作 的 ' 题 。然而 口 ] 中 间件 不 是万 能 药
( } 理 和 实践 之 间 存 在着 差 距 许 多流 行的 1 原
以及 异 构 平 台 问通 信 的基 础 。 2 世 纪 9 中 间 件采 用 专 有实 现 从 而 使得 应用 依赖 干 单 一提 在 o o
个 典 型 例 子 就 是 Det航 空 货 物 装 卸 系 统 这 个 系 l a
专 鹂磅 专 栏
M oM 最 适 台 于 事 件 驱 动 的 应 用 。 当 一 个 事 件 客 户 应 用 将 通 知 服 务 器 应 采 取 某 些 动 作 的
责 任 移 交给 Mo 应 用全 权 处 理 Mo 也 很 适合 M M
解 决 这 三 个 1 题 的 关 键 是 完 全 理 解 应 用 1 题 以 口 ] 口 ]
l蜩
l 『 应用编程接 nf ・ AI 】 中 件 c 舒布式系统服磬: 牛台接 口
]
及 使 分 布式 应 用 成 为可 能 的 中 问件 的价 值 。为了确 定 所 需 中 问 件 的类 型 开 发 者必 须 明确所 需功 能
程 方法 融 活 ( MI R )等 。 中间件 是 存在 于网 络 某一 系统 节点 上 的f 于应 r 用 操1 乍系统 和 网络 服 务 之 间 的 是 中 间件 =
{ } 管 中 间件 提 升 了编 程 分 布 式应 用 的抽 象 3尽
1 如图 I 示 。 牛 所
套 分 布 式 软 层 攻 但 仍 给 应 用 开 发 者 留 下 了 设计 上 的 艰 难 选 择 例 如 开 发 者 仍然 必 额决 定 在 一 个分 布 式应 用 中 使 用 功能 是 放 在 客 户端 还 是服 务 器 端 。
中间件技术概述第1讲精品PPT课件
![中间件技术概述第1讲精品PPT课件](https://img.taocdn.com/s3/m/7863dd995fbfc77da269b1ee.png)
• TongLINK/Q是面向消息的中间件。 TongLINK/Q的主要功能是在不同的网络协议、 不同的操作系统和不同的应用程序之间提供可 靠的消息传送。
layer
通过中间件技术实现了: (1)解决测试系统中硬件的 替换和升级需要庞大的软件 更新费用的问题; (2)实现仪器的可互换性和 提供测试程序的重用性; (3)为应用层提供了统一的 标准接口
System under m easurem ent
SU M layer
交易中间件在银行业务中的应用
银行等金融系统网络传输量大,金额等关键数据类较 多,各地网点总数多等,因此常常出现传输过程中交 易数据的丢失和改变,造成客户端与服务端的交易不 完整或数据不一致。通过交易中间件来控制数据的一 致性和完整性。
中间件技术
早期计算机系统的特点
• 大而昂贵 • 系统之间缺乏联系,系统间相互对立
技术革新
• 高性能微处理器的高速发展
– 摩尔定律:集成电路上可容纳的晶体管数目, 约每隔18个月便会增加一倍,性能也将提升 一倍
• 网络的发明和发展
– 吉尔德定律:主干网的带宽将每6个月增加 一倍
结果
高性能微处理 器的高速发展
• 1995年,JAVA之父James Gosling发明JAVA语 言,JAVA提供了跨平台的通用的网络应用服 务,成为今天中间件的核心技术之一。
• 2001年,微软发布.NET,中间件演变为.NET 和JAVA两大技术阵营。
中间件产生的背景 计算环境:分布、异构、动态 应用需求:通信、协同、融合
中间件技术
![中间件技术](https://img.taocdn.com/s3/m/dbca37da4bfe04a1b0717fd5360cba1aa8118cec.png)
高效、可靠、灵活的传输功能
通过预建连接、多路复用、流量控制、压缩传输、断点重传、传输优先级管理、服务(类)驱动等机制来保 证实现。
谢谢观看
在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操 作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程 调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具 有一定的局限性。
国际数据集团(IDC)在日前发表的一份报告中预计今后五年中间件市场将快速成长。IDC预计全球中间件和 商业软件收入将从1999年的27亿美元增长到2004年的近97亿美元,增长255%。据GlobalSight公司预计,全球电 子商务市场到2001年将达到1.2万亿美元。 ForresterResearch则估计,仅仅是BtoB电子商务,到2003年的年 收入就将达到1.3万亿美元。而业内人士认为,未来基于 Internet的电子商务业务将有79%建筑在中间件的基础 之上。无疑,这将带来一个潜力巨大的市场。
问题
中间件能够屏蔽操作系统和络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领 域的需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。 中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应 用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制 了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着 技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面 临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和server方的功能分配。通常将表示服务放 在client以方便使用显示设备,将数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如 何分配也是不容易确定的。
中间件技术原理与应用初学者必看
![中间件技术原理与应用初学者必看](https://img.taocdn.com/s3/m/9ff21f733868011ca300a6c30c2259010302f355.png)
中间件技术原理与应用初学者必看中间件技术是指位于客户端和服务器之间的一类软件技术,它可以提供一种可重用的、通用的、模块化的软件包,用于解决不同系统之间的通信和交互问题。
中间件技术的应用非常广泛,包括分布式系统、网络通信、消息传递等领域。
对于初学者来说,了解中间件技术的原理和应用是非常重要的。
1.远程过程调用(RPC):RPC是一种实现方法调用的技术,它允许程序在不同的计算机上通过网络进行通信,类似于本地函数调用。
通过RPC,可以实现分布式系统中不同节点之间的函数调用和数据传输。
2. 消息队列(Message Queue):消息队列是一种基于发布/订阅模式的通信机制,在消息队列中,消息的发送者将消息发布到队列中,而消息的接收者可以从队列中订阅并接收消息。
这种通信方式可以解耦消息的发送者和接收者,实现松耦合的系统设计。
3. 服务代理(Service Proxy):服务代理是一种通过代理服务器实现远程服务访问的技术,通过服务代理,客户端可以像访问本地服务一样访问远程服务。
服务代理可以屏蔽底层具体的实现细节,使得客户端和服务器之间的通信更加简洁和高效。
4. 连接池(Connection Pool):连接池是一种管理数据库连接的机制,通过连接池可以提高数据库的访问效率和并发性。
连接池可以预先创建一定数量的数据库连接,并将这些连接缓存在连接池中,当客户端需要访问数据库时,直接从连接池中获取连接,而不是每次都重新创建连接,从而减少了连接的创建和销毁的开销。
1.分布式系统:中间件技术可以帮助分布式系统实现节点之间的通信和协调,提供分布式系统的可靠性、扩展性和可管理性。
例如,分布式数据库系统、分布式缓存系统等都可以使用中间件技术来实现。
2.网络通信:中间件技术可以用于实现网络协议栈的各层功能,提供网络通信的基础设施。
例如,HTTP协议就是一种应用层的中间件,它提供了基于TCP/IP协议的高层抽象,使得应用程序可以简单地通过HTTP协议进行通信。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间件技术综述摘要:介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。
指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。
关键词:统一软件开发平台、中间件技术1 引言随着Internet网络应用技术的发展,基于客户机/服务器(Client/Server)模式的系统设计方法己被广泛地应用于各种类型软件系统的设计与开发中。
其编程方式改变了传统的应用程序设计和系统实现方式。
为此人们提出了一种介于客户端和服务器端的软件--中间件(Middleware)。
中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。
于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”伴随产生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。
2 中间件技术2.1 中间件的分类由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义。
因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。
基于不同中间件的目的和实现机制的不同,一般将中间件主要分为以下几类:远程过程调用中间件(remote procedure call middle-ware);面向消息的中间件(message oriented middleware);对象请求代理(object request broker);事务处理监控(transaction processing monitor);数据库中间件(database middleware);专用中间件(proprietary middleware)。
其中,前3类中间件称为管道,它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等,在这些基本的通讯服务之上,可构筑各种平台,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问等。
2.2 中间件的技术发展现状分析应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。
以前的计算机系统大多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。
网络出现后,产生了c/s的计算服务模式,多个客户端可以共享数据库服务和打印服务器等。
随着网络的进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。
在这种情况下,中间件作为前端客户机和后端服务器之间的一个中间层,为应用程序处理提供了强大的功能,它一般包含应用逻辑,负责接收客户端的应用请求,对请求做出响应处理后将请求交给后端服务器,并负责将服务器的处理结果返回给客户端,从而使客户端变得精干。
中间件的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。
中间件还可以放在客户机和服务器之间的多层应用服务中。
具体地说,中间件消除了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
中间件已经成为了联结分布式计算环境中各个相对独立系统的胶合剂。
中间件一般遵守公开的接口标准,所以它们可以被重用,并能被多个应用程序所共享。
外界所能知道的就是它们的接口,可以通过中间件的接口获得系统服务。
根据性能和维护的需求、工作量、网络带宽以及其它因素,可以在网络上灵活地部署这些中间件。
与此同时,中间件在配置管理、性能管理、负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。
2.3 中间件的优缺点可以将中间件的优点概括为以下几个方面。
1)可重用性。
许多应用程序可共享和重用封装在构件中的功能,简化应用集成,可以缩短应用程序的开发周期,提高应用程序的开发质量,保证技术进步的连续性。
2)灵活性。
从桌面计算环境到功能更强的网络服务器,随处都可分配工作,有利于协调系统性能和网络带宽。
3)可管理性。
将大型复杂的工程细分为简单、安全的构件工程,增强应用程序的生命力。
4)易维护性。
中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发的应用软件集成起来,使得彼此成为一个无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。
将业务逻辑部署在中央服务器上,而不是分散在用户桌面上,有助于处理各种变化,并缩短解决方案的时间开销,减少维护费用。
5)经济性。
节约应用程序的开发成本,降低开发的失败率,减少系统初期的建设成本。
6)标准性。
由于标准接口对于可移植性和标准协议对于互操作性的双重作用,中间件已成为许多标准化工作的主要部分。
对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改。
但是,因为分布式应用程序的异构结构以及复杂的通信机制,开发和配置仍是一个主要问题。
使用中间件环境的目的是隐藏分布式系统的异构性,并提供一个在分布式组件间通信的平台。
然而,大多数中间件往往忽视了系统管理功能,不能对分布式应用进行有效的配置管理、性能管理、账户管理、失效管理和安全管理。
然而,一个应用系统质量的好坏,不仅在于系统的开发,更重要的是开发后对系统的管理和维护。
据统计,软件用户80 ~90 的开销与软件的管理和维护有关。
因此,加强中间件的管理功能已成为分布式应用的关键。
虽然分布式系统技术进步很快,体系结构也相对比较独立,但是相对于单机系统的软件开发来说,分布式系统的软件开发还是很复杂的。
一方面,这种复杂性来自于构建分布式系统的组件的多样化,另一方面,来自于组件之间关系的复杂性。
比如可用资源的管理,分布组件的通信以及失效设施的处理。
所以,需要寻找一个建立分布式应用的有效机制。
环顾目前支持分布式应用程序开发和配置的在线工具,可以发现一些明显的缺点。
工具软件大多数基于某个中间件平台,并且只是工作在同一个运行环境中。
而且,大多数应用实现只是集中于分布式程序的某些方面,缺少建立不同工具的系统化观念。
同时,工具的扩展性和与其它工具的交互性都存在着难于将具体细节标准化、接口不完全开放等问题。
中间件所应遵循的一些原则离实际还有很大距离。
多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,不同厂家之间很难实现互操作。
有些中间件服务只提供某些平台的实现,从而限制了应用在异构系统之间的移植。
应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,由于技术的更新往往需要重写以前的应用。
尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在Client方和Server方的功能分配。
通常将表示服务放在Client以方便使用请示表述和回显,将数据服务放在Server以方便逻辑分析和数据库操作。
但是在一些特定应用场合,其应用功能分配并不是很容易确定的。
2.4 发展趋势分布式计算中间件能够提供良好的开发平台和通信支持,但是它们大多缺少对分布式应用的良好管理功能。
然而,一个应用系统质量的好坏,不仅在于系统的开发,更重要的是开发后对系统的管理和维护。
因此,加强中间件的管理功能已成为分布计算的关键所在,也是国内外分布式计算研究的热点问题。
中间件的应用趋势是朝着多样性和复杂性的方向发展。
同样,基于中间件环境管理工具的发展也基本相同。
目前已经有软件企业提出了监控和管理中间件的多层系统管理模型框架,从应用层、中间件层和运行环境层3个层次对中间件进行监控和管理。
其中,减少开发代价的主要方法是使用中间件平台。
这些平台提供的机制,从底层计算结构中抽象出来,并且能够或多或少地在应用组件之间透明的通信。
这方面的研究以快速有效地开发配置分布式应用程序以及在软件配置后,分布式应用程序的管理,错误状态的检测为发展方向,进一步控制运行时分布式应用程序的行为。
目前,中间件技术的主流仍是消息中间件和面向对象中间件,国内外对于这一技术的研究正在不断深入,同时大型的软件公司,如:Sun,Microsoft(分布式组件对象模型DCOM),NI(美国National Instruments公司的虚拟仪器软件产品LabWindows/CVI中的DataSocket就是一种通信中间件。
它将网络通信的复杂性从客户端和服务端分离出来,客户端和服务端可以不用关心网络通信的实现细节)及软件组织机构OMG(通用对象请求代理体系结构CORBA)都推出了支持中间件技术的软件平台。
中间件的另一个发展动向是向Internet的延伸,随着Web技术的飞速发展,可以预见,未来的中间件必将和网络技术紧密相关。
3 总结随着个人计算机的普及以及网络通信技术的发展,分布计算逐渐成为计算机技术的主流。
为了使用户能够透明、有效地使用分布在网络上的信息资源和计算资源,分布中间件成为实现分布计算的关键技术之一。
中间件属于计算机软件中比较底层的内容,它和计算机操作系统的关系相当密切,操作系统的一部分功能可以由中间件来实现,一些中间件的功能由操作系统来实现。
因此,操作系统和中间件会进一步融合,从而推动计算机软件体系结构的变革。
4 结束语本文主要介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。
指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。
参考文献:[1] 张海腾、李定主使用中间件构筑三层结构计算机工程与应用 2003[2] 王成良、邱节中间件技术现状与展望电脑知识与技术 2007[3] 高素春中间件概述辽宁财专学报 2003。