中间件的技术及其应用.docx

上传人:b****6 文档编号:7328476 上传时间:2023-01-23 格式:DOCX 页数:17 大小:30.87KB
下载 相关 举报
中间件的技术及其应用.docx_第1页
第1页 / 共17页
中间件的技术及其应用.docx_第2页
第2页 / 共17页
中间件的技术及其应用.docx_第3页
第3页 / 共17页
中间件的技术及其应用.docx_第4页
第4页 / 共17页
中间件的技术及其应用.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

中间件的技术及其应用.docx

《中间件的技术及其应用.docx》由会员分享,可在线阅读,更多相关《中间件的技术及其应用.docx(17页珍藏版)》请在冰豆网上搜索。

中间件的技术及其应用.docx

中间件的技术及其应用

一、概述

1、中间件的概念

随着计算机技术的飞速发展,各种各样的应用软件需要在各种平台之间进行移植,或者一个平台需要支持多种应用软件和管理多种应用系统,软、硬件平台和应用系统之间需要可靠和高效的数据传递或转换,使系统的协同性得以保证。

这些,都需要一种构筑于软、硬件平台之上,同时对更上层的应用软件提供支持的软件系统,而中间件正是在这个环境下应孕而生。

由于中间件技术正处于发展过程之中,因此目前尚不能对它进行精确的定义。

比较流行的定义是:

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通讯。

从中间件的定义可以看出,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,定义中特别强调了其网络通讯功能。

2、中间件特点及优势

通常意义下,中间件应具有以下的一些特点:

满足大量应用的需要;运行于多种硬件和OS平台;支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能;支持标准的协议;支持标准的接口。

程序员通过调用中间件提供的大量API,实现异构环境的通讯,从而屏蔽异构系统中复杂的操作系统和网络协议。

中间件提供客户机与服务器之间的连接服务,这些服务具有标准的程序接口和协议。

针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。

对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

中间件软件管理着客户端程序和数据库或者早期应用软件之间的通讯。

中间件在分布式的客户和服务之间扮演着承上启下的角色,如事务管理、负载均衡以及基于Web的计算等。

利用这些技术有助于减轻应用软件开发者的负担,使他们利用现有的硬件设备、操作系统、网络、数据库管理系统以及对象模型创建分布式应用软件时更加得心应手。

由于中间件能够保护企业的投资,保证应用软件的相对稳定,实现应用软件的功能扩展;同时中间件产品在很大程度上简化了一个由不同硬件构成的分布式处理环境的复杂性,所以它的出现正日益引起用户的关注。

世界著名的咨询机构TheStandishGroup在一份研究报告中归纳了中间件的十大优越性:

(1)应用开发:

TheStandishGroup分析了100个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例;业务逻辑程序和应用逻辑程序仅占总程序量的30%,而基础程序占了70%,使用传统意义上的中间件一项就可以节省25%~60%的应用开发费用。

如是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%。

(2)系统运行:

没有使用中间件的应用系统,其初期的资金及运行费用的投入要比同规模的使用中间件的应用系统多一倍。

(3)开发周期:

基础软件的开发是一件耗时的工作,若使用标准商业中间件则可缩短开发周期50%~75%。

(4)减少项目开发风险:

研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。

企业自己开发内置的基础(中间件)软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。

(5)合理运用资金:

借助标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有统无缝集合。

依靠标准的中间件,可以将老的系统改头换面成新潮的Internet/Intranet应用系统。

(6)应用集合:

依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起进行应用集合。

(7)系统维护:

需要一提的是,基础(中间件)软件的自我开发是要付出很高代价的,此外,每年维护自我开发的基础(中间件)软件的开支则需要当初开发费用的15%~25%,每年应用程序的维护开支也还需要当初项目总费用的10%~20%左右。

而在一般情况下,购买标准商业中间件每年只需付出产品价格的15%~20%的维护费,当然,中间件产品的具体价格要依据产品购买数量及哪一家厂商而定。

(8)质量:

基于企业自我建造的基础(中间件)软件平台上的应用系统,每增加一个新的模块,就要相应地在基础(中间件)软件之上进行改动。

而标准的中间件在接口方面都是清晰和规范的。

标准中间件的规范化模块可以有效地保证应用系统质量及减少新旧系统维护开支。

(9)技术革新:

企业对自我建造的基础(中间件)软件平台的频繁革新是极不容易实现的(不实际的)。

而购买标准的商业中间件,则对技术的发展与变化可以放心,中间件厂商会责无旁贷地把握技术方向和进行技术革新。

(10)增加产品吸引力:

不同的商业中间件提供不同的功能模型,合理使用,可以让你的应用更容易增添新的表现形式与新的服务项目。

从另一个角度看,可靠的商业中间件也使得企业的应用系统更完善,更出众。

具体地说,中间件屏蔽了低层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。

中间件带给应用系统的不只是开发的简单、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。

TheStandishGroup的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。

在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家。

中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。

中间件的这一作用,在技术不断发展之后,使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。

3、中间件的应用领域与分类

随着计算机软件技术的发展,中间件技术也已经日渐成熟,并且出现了不同层次、不同类型的中间件产品。

按照IDC的分类方法,中间件可分为六类。

分别是数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。

数据访问中间件:

是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件;

远程过程调用中间件:

通过这种远程过程调用机制,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程;

消息中间件:

用来屏蔽掉各种平台及协议之间的特性,进行相互通信,实现应用程序之间的协同;

交易中间件:

是在分布、异构环境下提供保证交易完整性和数据完整性的一种环境平台;

对象中间件:

在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,实现对象重用。

目前国内外有不少厂商都开发出自己的中间件产品,其中有全球最大的独立中间件厂商BEA公司,还有像IBM、Oracle和Microsoft、HP、Sun等大厂商也早已涉足电子商务中间件。

面向对象的中间件是对象技术和分布式计算发展的产物,业界普遍认为面向对象是今后中间件发展的主流方向,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求,而这些对象可以位于本地或者远程机器。

面向对象标准原本只有一个,即CORBA(公共对象请求代理体系结构),该标准由包括BEA、IBM、Oracle、Sun和Sybase等公司在内的众多厂商一起制定,从而形成了一个庞大的CORBA联盟势力。

后来,Sun推出了企业级JavaBeans(EJB),用自己易使用的程序模型来对CORBA做出了改进。

微软COM(ComponentObjectModel,组件对象模型)的出现,使面向对象中间件市场里又多了一个标准,这样,面向对象中间件产品实际上形成了两大标准,一是微软的COM,一是JavaBeans。

从宏观上看,中间件可以分为3大类:

数据类:

用于数据的存取、利用和增值,此类中间件用于构建以数据为中心的应用处理类:

把分布在网络结点上的各个应用或处理连接在一起,形成一个统一的分布式应用。

分布式构件类:

支持构件式应用,未来应用的发展方向,目前竞争激烈。

为了更加清晰起见,我们把中间件细分为12种,如下表:

1数据库系统的产品管理数据库连接,抽象网络协议。

一般由数据库厂商或支持多数据库的中间件提供数据库厂商的产品功能较强、性能较好。

而独立于数据库厂商的产品在用于多数据库环境时效率有所降低OracleNet8SybaseNetlib,ProtocolservicesIntersolvSequeLinkclient

2数据库存取APIs支持对数据库存取的编程,可以使用存储过程。

OO数据库常为OO编程语言,如Java/C++提供适应ODMG的接口数据库厂商的APIs可支持对数据库所有功能的存取,因而适合编写OLTP的应用。

而ODBC或JDBC更适合多数据库的环境IBMDB2CLIOracleNet8,CallInterfaceMicrosoftODBC,OLEDBODI’sPSE

3数据迁移、转换用于数据部署、转换、信息增值。

常作为数据仓库解决方案的一部分使完全不同的数据包和遗留的应用能协同工作,但需要建立诸如时间、数据优选和整合、以及资源等要素IBMDataPropagatorSybaseReplicationServerPlatinumInfoPumpD2KTapestry

4底层的同步服务(RPC)使调用远端的过程和在本地一样。

在被调用的处理未完以前,调用进程处于阻塞状态点但的代码抽象,只有在所有的Server都是在线的情形才能工作。

不适合移动或Internet应用DCE-RPC(微软把它用在DOM中)BorlandEnteraNoblenetRPC

5简单的异步消息简单是消息发送和接收,有时扩展到可靠投递、智能路由和名字服务对需要高性能的异步通讯的应用非常有用。

但需要所有的Server都在线PeerlogicPipesMomentumXIPC东方通科技TongLINK

6应用级的消息队列是简单的消息中间件的扩展,增加了队列、脱机处理能力、可靠投递和发布订阅等功能使分布式处理可以在脱机、事件驱动等的方式,适合与电子商务、移动用户、工作流或其他的环境中TIBCORendenousIBMMQSeriesMSMessageQueueLevel8FalconMQ东方通科技TongLINK/Q清华北美TH-MT

7应用协调器通常是应用级消息队列的扩展,增加了许多工具用于建立适合事件服务的集成应用有效地节约集成的时间特别是针对应用包或工作流产品itriaVelocitiActiveSoftware,ActiveWebOberonProsperpNEONNEONetTSIMercator

8COM+/DNA微软的分布式构件平台,使企业应用更加可扩充和可管理从COM发展而来,是构件市场上的主流产品。

尚需要增加针对企业应用的可靠性MS,COM,DCOM,COM+MSMTSMessageQueueServerActiveDirectory(future)

9CORBA平台OMG标准,通过ORB把分布的对象连接成一个逻辑上统一的整体工业组织的标准,可用不同的方式实现,以提高互操作能力IonaOrbixBorland/Visigenic,VisibrokerIBMComponentBrokerBEAIceberg东方通科技TongBroker

10交易监控器用于开发实时的OLTP应用的服务器和API,用于管理交易,共享资源已证明是建造OLTP应用的有效手段。

通常是非面向对象的,带有特有和复杂的APIBEATUXEDOIBMTX系列东方通科技TongEASY清华北美JavaST

11应用服务器针对Internet、Intranet和其他分布式构件应用,提供服务方构件的完整环境与交易监控器类似,只不过是面向对象的、支持构件、具有标准APINetDynamicsIBMCompont–BrokerNetscapeKivaOracleApp.Ser东方通科技TongWEB清华北美WebFirst

12工作流/应用集成大杂烩,把工作流和应用开发技术如消息及分布式构件结合在一起使处理能方便自动地和构件、Script应用、工作流行为结合在一起,同时集成文档和电子邮件LSSFlowmanIBMFlowmarkAction,Technologies,ActionWorksVitriaBusinessAgiliti

二、中间件的技术规范

1、DCE体系

DCE是DistrbutedComputingEnvironment分布式计算环境的缩写,它由OpenSoftwareFondation制定,现在这个组织被称为OpenGroup。

DCE由多个共同在一起工作的组件组成,它们是:

远程过程调用(RPC)、本地和全局目录服务(CDS和GDS)、安全服务、DCE线程、分布式时钟服务(DTS)和分布式文件服务(DFC)。

线程、RPC、CDS、安全服务和DTS组件通常被成为安全核心,并且是组成任何DCE环境所必须的组件,DTS是可选件。

在DCE环境中,还包括用于管理这些组件的管理工具。

DCE被称做中间件或使其具有能力的技术,它不是独立存在的,而是被捆绑在供应商操作系统中,或者由第三方供应商进行集成。

2、DTP模型

DTP模型是X/OPEN组织提出的一种软件结构,这种结构允许多个应用程序去共享多个资源管理器提供的资源,并且具有协调全局事物的能力。

X/OPEN是一个独立的、具有全球影响力的开放系统组织,它得到了世界大多数的最大的信息系统供应商的支持,其根本任何是通过规范开放系统的具体实现,从计算的观点考虑如何让用户获得更大的利益。

X/OPEN的DTP模型由5个基本模块组成:

应用程序(AP):

用于定义事物的边界,并确定组成事物操作的动作。

资源管理器(RM):

如数据库或文件系统用于存取文件。

事物管理器(TP):

给事物分配标识,监督事物的处理过程并负责事物的完成以及协调事物失败的恢复。

通信资源管理器(CRM):

在一个事物管理器内或两个事物管理器之间对通信进行控制。

在这5个模块之间X/OPEN模型定义了这样一些模块与模块之间的接口规范:

应用程序——资源管理器之间已经存在了一些X/OPEN的规范,如SQL和ISAM;在应用程序——事物管理器之间定义了TX接口;在交易管理器——资源管理器之间定义了XA接口;在交易管理器——通信资源管理器之间定义了XA+接口;在应用程序——通信资源管理器之间有3种接口:

TXRPC、XATMI和CPI-C;在通信资源管理器——操作系统提供的底层通信协议之间提供了XAP-TP接口。

3、CORBA

CORBA是CommonObjectRequestBrokerArchitecture的缩写,简称公共对象请求代理结构,它由国际对象管理组织OMG制定,这个组织是一个国际性组织,始建于1989年,现已拥有包括生产厂商与软件开发商800多个会员,其目的是在分布和已构计算机环境下为应用软件的开发提供一个公共框架,使开发出来的软件即面向对象又具有可重用性、可移植性以及可操作性等特点。

有关CORBA的其他功能情况参见下面的第三部分说明。

4、J2EE

J2EE是Java2PlatformEnterpriseEdition的缩写,是一种多层应用模式的结构体系。

整个规范由SUN公司提出,它将业务逻辑从系统服务功能和用户界面中分离出去,放置在客户层和应用基础设施这两层之间的中间层,是目前应用的最为广泛的面向Web的应用系统结构规范。

有关J2EE的其他功能情况参见下面的第三部分说明。

5、互联网相关技术规范

Web(WorldWideWeb)是一种网络化的信息资源,它依赖于3个机制,使这些信息资源可以面对广大的使用者。

1)一种唯一的命名机制,为网上的资源进行定位,如:

URI。

2)一种通信规程,以便在网上可以存取这些被命名的资源,如:

HTTP。

3)混合文本,以便更好地驾御这些信息资源,如:

HTML。

URI(UniversalResourceIdentifier)全局资源标识,一种命名机制,它将在网上的一个资源的定位分为3个部分:

用于存取资源的通信方式的名称,如HTTP、FTP;保存有资源的机器的名称,如:

;资源本身的名称,也就是存取这些资源的路径。

HTTP(HyperTextTransferProtocol)是一种用于分布式、相互协作、混合型媒体的信息系统的应用层的通信规程。

使用这一规程,除了可以在信息系统中取得资料外,还可以进行资料查询,对前端进行更新以及进行HTML(HyperTextMarkupLanguage)是一种网上使用的出版语言,它可以为作者提供这样的功能:

在在线出版的文档中包括标题、文本、表格、列表和照片等;按下鼠标后,通过混合文本链路查找文本;与远端的服务为进行联机事物处理建立表格,以便进行信息查找、预定和订购产品等操作;在文档中直接包含独立页面、影像资料与声音资料等。

这些规范都是web技术的基础,除了这些技术规范以外,还有一些规范也非常重要,它的用途是实现企业与企业间通过Web实现数据交换。

这些规范是XML、SOAP、UDDI和WSDL。

XML(ExtensibleMarkupLanguage)通过提供更灵活和更容易被接收的信息标识方法来改进Web的功能。

XML被称为可扩展的标注语言,它不像HTML是一种单一的、预先定义的语言,XML是一种用于描述其他语言的语言,使用XML,你可以定义你自己的、不受到类型限制的、其他类型的文档。

SOAP(SimpleObjectAccessProtocol)是一种轻量级规程,用于在没有控制中心、分布式的环境中交换信息。

它以XML为基础,由4个部分组成:

一个信封,定义了是什么信息和如何对它进行处理的框架;一组编码规则,用于描述应用定义的数据类型的表示示例;一组表示远程过程调用和应答的规则方式,以及一组捆绑方式,这种方式用于使用低层通信规程交换信息。

SOAP具有与其他规则相结合的可能性。

UDDI(UniversalDescription,DiscoveryandIntegration)是一个规范,这个规范用于Web服务以分布式、以Web为基础的信息的注册。

UDDI同时也是一个这样的规范的实现的公用的可接入的集合,这个规范是是某个企业的Web服务所能提供的内容用登记信息的方式提供出来,以便其他企业可以发现这些服务。

Web服务是Web技术的下一步发展方向,它可以允许可编程的被放置在Web上,其他方可以使用分布式的方式进行存取。

WSDL(WebServiceDescriptionLanguage)是一组包含面向文档或面向过程消息的端点操作信息的xml格式网络服务描述;操作和消息首先被抽象的描述,然后捆绑到具体的网络规程和消息格式中,以便定义端点,相关的具体端点被组合进抽象的端点中(服务)。

WSDL可以捆绑描述与SOAP、HTTPGET/POST和MIME相关。

三、主流中间件技术平台

下面重点阐述和比较了三大主流中间件技术平台,使读者加深对中间件技术理解。

1、当前支持服务器端中间件技术的平台

考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2EE和MicrosoftDNA2000。

它们都是支持服务器端中间件技术开发的平台,但都有其各自的特点,将分别阐述如下。

(1)OMG的CORBA

CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。

CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。

COBRA标准主要分为3个层次:

对象请求代理、公共对象服务和公共设施。

最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的"软总线";在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。

目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的ORB产品,如BEAM3,IBMComponentBroker,有分布对象厂商推出的产品,如IONAObix和OOCObacus等.

CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBAComponentModel)。

Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(NamingService)。

服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。

CORBACCM(CORBAComponentModel)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。

CORBA构件模型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范,它主要包括如下三项内容:

a、抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构;

b、构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成;

c、构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内容标准。

总之,CORBA的特点是大而全,互操作性和开放性非常好。

CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。

在具体的应用中使用不是很多。

(2)Sun的J2EE

为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2E

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1