软件新技术讲座讲稿_第1页
软件新技术讲座讲稿_第2页
软件新技术讲座讲稿_第3页
软件新技术讲座讲稿_第4页
软件新技术讲座讲稿_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、软件新技术讲座讲稿中间件技术及应用中间件的基本概念与作用中间件研究的基本内容中间件的基本技术和发展现状中间件技术的应用一、中间件的基本概念与作用引言软件系统的复杂性不断增长、激烈竞争迫使软件企业提高软件质量、积累和固化知识,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的基于中间件的软件开发(CBSD,Component Based Sortware Development)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。国内外对于这一技术的研究正在不断深入,同时大型的软件

2、公司(sun,microsoft)及软件组织机构(OMG)都推出了支持中间件技术的软件平台。面对高深的中间件技术和繁多的软件平台,这里简要介绍中间件技术的发展和特点,重点阐述和比较了三大主流中间件技术平台,使读者对中间件技术有个全面的了解。 顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能够使应用软件相对独立于计算机硬件和操作系统平台,为当今的大型分布式应用搭起了一个标准的平台,把大型企

3、业分散的系统和技术组合在一起,实现大型企业应用软件系统的集成。中间件技术是伴随网络而发展起来的一种面向对象的技术。中间件=平台通信 这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。中间件 从诞生起,仅仅是五年时间,但发展极其迅速,是有史以来发展最快的软件产品,但在技术上还处于成长阶段,还没有统一的标准和模型,通常都是用C语言以面向对象的技术来实现的,但它的特性已超出面向对象的表达能力,由于它属于可重用构件,目前趋向于用构件技术来实现。中间件 要涉及软件的所有标准、规范和技术,它含有更多的内涵,因为它包括平台功能,自身具有自治性、自主性、隔离性、社

4、会化、激发性、主动性、并发性、认识能力等特性,是近似于Agent(代理)的结构,采用Agent的概念和技术更合适一些,建立模型和规范是促进技术发展的核心措施。中间件 是属于计算机软件中比较底层的内容,它和计算机操作系统的关系是相当密切的,操作系统的一部分功能可以由中间件来实现,一些中间件的功能也可以由操作系统来实现。因此,操作系统和中间件会进一步融合,从而推动计算机软件体系结构的变革。中间件的作用和分类:要说清这个问题,用一个生活中的实例来比喻。把分布式系统看作城市的交通系统,网络看作市区道路,通过交通工具(汽车)实现通信,每分钟将有几万辆车在道路上行驶,如果没有相应的交通设施和管理规划,城市

5、将会乱成一团,发生各种交通事故。通信处理(消息)中间件 首先要修好道路,安装红绿灯,设立交通管理机构,制定出交通规则,也就是我们要建网和制定出通信协议,能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如TongLINK、BEA eLink 、IBM的MQSeries等),称为消息中间件。这是中间件中唯一不可缺少的,是销售额最大的中间件产品,目前在Windows 2000操作系统中已包含了其部分功能。事务处理(交易)中间件 在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。例如在城市就要设置各种运载汽车,完成日常的运载,同时要随时监视汽车的运行,出

6、现故障时,要有排除措施,发生堵塞时要进行调度。在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机器和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件以及数据存取管理中间件三部分组成。东方通科技公司的TongLINK 和TongEASY实现了这个参考模型规定。(1

7、)数据存取管理中间件 在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。(2)Web服务器中间件 浏览器图形用户界面已成为公认规范,然而它的会话能力差、不能作数据写入、受HTTP协议的限制等,就必需进行修改和扩充,形成了 Web服务器中间件,如 SilverStream公司的产品。安全中间件 一些军事、政府和商务部门上网的最大障碍是安全保密问题,而且不能使用国外提供的安全措施(如防火墙、加密、认证等),必需用国产的产品。产生不安全因素是由操作系统

8、引起的,但必需要用中间件去解决,以适应灵活多变的要求。 跨平台和构架的中间件 当前开发大型应用软件通常采用基于构架和构件技术,在分布系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产生了构架中间件,功能最强的是CORBA,可以跨任意平台,但是太庞大;Java Beans较灵活简单,很适合于做浏览器,但运行效率差;DCOM模型主要适合 Windows平台,已广泛使用。实际上国内新建系统主要是UNIX (包括LINUX)和 Windows,因此针对这两个平台建立相应的中间件要实用得多。 专用平台中间件 为特定应用领域设计领域参考模式,建立相应构架,配置相应的构件库和中间件,为

9、应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。 网络中间件 它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。 另外,人们希望实现不同业务逻辑、不同功能的中间件能够集成在一起,像一个完整的系统那样协调一致的工作。这些集成的中间件服务应该封装在一个框架中,即应用程序服务器之集成框架。计算机网络的发展一日千里,中间件技术要得到发展,离不开网络。可以预言,中间件技术的发展,将有机的结合操作系统、系统集成以及网络技术的发展,成为推动软件技术革命的中坚力量。2当前支持服务器端中间件技术的平台考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2E

10、E和Microsoft DNA 2000。它们都是支持服务器端中间件技术开发的平台,都有其各自特点。(1)OMG的CORBACORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系

11、统中的软总线;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的ORB产品,如BEAM3,IBM Component Broker,有分布对象厂商推出的产品,如IONAObix和OOCObacus等.CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBA Component Model)。Internet集成特性包括了针对II

12、OP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(Naming Service)。服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。CORBA CCM (CORBA Component Model)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。CORBA构件模型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范,它主要包括如下三项内容:a.抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构;b.构件

13、容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成;c.构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内容标准。总之,CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。(2)Sun的J2EE为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2EE规范

14、, J2EE的目标是:提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java的开发服务器端中间件的标准。在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE同时支持RMI和 IIOP,而在服务器端分布式应用的构造形式,则包括了Java Servlet、JSP(Java Server Page)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有Write once,run anywhere的特性,使得J2EE技术在发布计算领域得到了快速发展。J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA 2

15、000也一样,但最大的区别是DNA 2000是一个产品, J2EE是一个规范,不同的厂家可以实现自己的符合J2EE规范的产品, J2EE规范,是众多厂家参与制定的,它不为Sun所独有, 而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。EJB是Sun推出的基于Java的服务器端构件规范,J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。Sun EJB技术是在Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。它基于Java语言,提供了基于Java二进制字节代码的重用方式。EJB给出了系统的服务器端分布构件

16、规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。从企业应用多层结构的角度, EJB是业务逻辑层的中间件技术,与Java Beans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。从Internet技术应用的角度,EJB和Servlet, JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会

17、话 Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到Write once,run anywhere,开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。(3)Microsoft DNA 2000Microsoft DNA 2000 (Distributed internet Applications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,

18、以及改造Back Office系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。在服务器端, DNA 2000提供了ASP、COM、Cluster等的应用支持。目前, DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA 2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中, DNA 2000得到了众多应用开发商的采用和支持。DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DN

19、A使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。 以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提供了中间件开发的基础,如VC,VB, Delphi等都支持DCOM,包括OLE DB在内新的数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。首先, DCOM/COM/COM+的构件仍然采用普通的COM (Component Object Mo

20、del)模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和 DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等, DCOM/COM/COM+将COM、DCOM、MTS的功能有机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且, DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多

21、家开发工具更有吸引力。但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台(如Unix、Linux)上不能发挥作用。3.相关性比较分析目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即CORBA CCM (CORBA Component Model)技术、SUN的EJB (Enterprise JavaBean)技术和DNA 2000中的COM/DCOM/COM+技术。对于以上三个分布计算平台,有以下三个方面进行分析:集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具

22、生成的各类商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力;可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密集成; 可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自

23、有自己的侧重和特点,其实在它们之间也有很大的相通性和互补性。例如,EJB提供了一个概念清晰、结构紧凑的分布计算模型和构件互操作的方法,为构件应用开发提供了相当的灵活性。但由于它还处于发展初期,因此其形态很难界定。CORBA CCM是一种集成技术,而不是编程技术。它提供了对各种功能模块进行构件化处理并将它们捆绑在一起的粘合剂。EJB和CORBA在很大的程度是可以看作为互补的。这个适应WEB应用的发展要求,许多厂商多非常重视促进EJB和CORBA技术的结合,将来RMI可能建立在IIOP之上。CORBA不只是对象请求代理ORB,也是一个非常完整的分布式对象平台。CORBA可以扩展EJB在网络、语言、

24、组件边界、操作系统中的各种应用。目前许多平台都能实现 EJB构件和CORBA构件的互操作。同EJB和CORBA之间相互之间方便的互操作性相比, DOCM和CORBA之间的互操作性要相对复杂些,虽然 DCOM和CORBA极其类似。DOCM的接口指针大体相当于CORBA的对象引用。为了实现CORBA和DCOM的互操作, OMG在CORBA 3.0的规范中,加入了有关的CORBA和DCOM互操作的实现规范,并提供了接口方法。因为商业利益的原因,在EJB和DCOM之间基本没有提供互操作方法。二.中间件实现电子商务的基础软件如果没有中间件,在世界范围内掀起的电子商务浪潮绝不会发展到今天如火如荼的局面。从

25、应用的角度来看,电子商务网络应用体系的内涵是各种现有应用的不断扩充和新应用形式的不断增加,迫使企业的IT部门需要解决越来越多的需求,尤其是对分布式网络应用的需求,诸如跨越不同硬件平台、不同的网络环境、不同的数据库系统之间互操作等等,这些问题只靠传统的系统软件或Web工具软件提供的功能已经不能满足要求,作为电子商务网络应用体系的中间平台也就应运而生了。电子商务的本质就是对处于分布环境中的各种计算机系统进行交流协调,从而开创新的商业运作模式。网络通信,尤其是互联网技术,是电子商务的通信基础,而管理和传输系统之间的业务信息、协调各个系统的处理模块的中间管理服务系统,是保证电子商务应用成功的关键。电子

26、商务应用服务器、通用业务网关、支付网关、通信平台和安全平台,统一纳入电子商务中间件构架的范畴。从技术角度看,电子商务将由Internet/Intranet技术、传统IT技术以及具体的业务处理所构成。但是,系统的建立将会面临许多新的问题,包括应用系统能不能快速地建立,能不能适应大用户数、高处理量要求,能不能提供高效率、高可靠性、高可用性等等关键任务的要求,能不能满足安全需要等等。以上这些问题,只是依靠简单的Web技术是不够的。目前常用的Web技术由于早期更多的是面向信息发布,因此存在并发访问瓶颈、难扩展、效率低、安全等诸多问题,不能满足电子商务的需要。为了很好地解决这些问题,需要以Web的低层技

27、术为基础,规划出一个整体的应用框架,并提供一个支持平台,用于Internet应用的开发、部署和管理,并能籍此解决上述各种问题。这已经发展成为一个能广泛适应的标准的支撑层,成为Internet应用的基础设施(Infrastructure),这一支撑层实际上是基于Internet的中间件,也就是应用服务器。同时,由于企业并不能把业务一不跨到Internet上,而必须同传统的应用系统结合,因此也必须通过中间件来集成Web应用和传统应用,实现完整的电子商务。在这种情况下,电子商务应用应包含以下层次:浏览器:这是进入电子商务的通道。电子商务应用平台:提供电子商务不同应用类型的生成工具软件,如网上商店、网

28、络支付、虚拟社区等等。 电子商务交换平台:对内集成企业内部的各种与电子商务相关的业务系统,对外连接商业合作伙伴,如银行、供应商、客户、配送结构,完成各种不同业务系统之间数据转换和整和。 电子商务基础平台:用来支持大量Internet客户的并发访问,使应用开发商快速开发出灵活多变的电子商务应用,尽快把信息系统和商务活动放到Internet中。电子商务交换平台和电子商务基础平台中都不能没有中间件的存在。可以说,没有中间件就不能支撑今天的网络应用。电子商务中间件构架是一种电子商务应用集成的关键件,不管电子商务应用分布在什么硬件平台上,使用了什么数据库系统,透过了什么复杂的网络,电子商务应用的互连和互

29、操作是电子商务中间件构架首先要解决的问题。在通信方面,电子商务中间件构架要支持各种通信协议和通信服务模式,传输各种数据内容,数据格式翻译、流量控制、数据加密、数据压缩等等;在电子商务中间件构架核心,要解决名字服务、安全控制、并发控制、可靠性和效率保证等;在电子商务应用开发方面,要能提供基于不同平台的丰富的开发接口,支持流行的开发工具和异构互连接口标准等;在管理方面,解决电子商务中间件构架本身的配置、监控、调谐,为电子商务应用的易用易管理提供保证。 其次,针对不同的Web应用环境,对电子商务中间件构架有各种不同的要求。对工作流应用,需要根据条件以及条件满足状态,将信息、响应状态从一个应用传递到另

30、一个应用;对联机事务处理,需要保证分布式的数据一致性、不停机作业、大量并发的高效率;对于一个数据采集系统需要保证可靠传输等等。 目前中国电子商务发展还处于初级阶段,企业还是主要来做网站和发布信息,真正交易才刚刚开始。 三.中间件- 构筑复杂分布式应用的关键技术随着企业的IT环境越来越纷繁复杂,企业中可能会拥有多种操作系统、不同的数据库、异构的网络环境以及数个应用等,那么如何把它们结合成一个有机的协同工作整体,真正实现企业跨平台分布式应用呢?中间件便是解决之道,它用自己的复杂换取了企业应用的简单。那么,复杂的中间件到底包含哪些种类?分别完成什么功能呢?九十年代初客户机/服务器计算模式开始成为主流

31、技术,将数据统一存储在数据服务器上,而有关的业务逻辑都在客户端实现,即所谓胖终端的解决方案,这种两层结构的模式大大阻碍着系统的发展,单一的服务器结构紧密地依赖供应商;数据存取受到限制;难以扩展到大企业广域网或国际互联网;也难以管理客户端的机群。随着用户业务需求的增长及Internet/Intranet的普及,将以三层或四层体系结构取而代之。三层结构就是把用户端的业务逻辑独立出来,并与数据库服务器中存储过程合并在一起,构成应用层,以提高计算能力,实现灵活性。在这种结构中用户端仅仅是处理图形用户界面(GUI),而目前趋势是采用具有交互功能的浏览器,即形成瘦终端的工作方式,为此,中间又增加了一层,称

32、为Web服务器层,形成了四层体系结构。这类多层结构的分布系统,各服务器和终端机之间都是通过网络连接起来的,并有大量信息和数据进行传递。对每个应用系统而言,在设计和实现时需要开发的,仅是在应用服务器上的业务逻辑部分的软件,除此之外,还必须要设计处理分布系统所特有的功能的软件,而目前的系统软件(操作系统和支撑软件)都不支持。为此出现了中间件,它是处于系统软件和应用软件之间的一批软件。使设计者集中设计与应用有关的部分,大大简化了设计和维护工作。通过大量应用和实践,中间件已有一批成熟的产品,并成为设计分布系统时不可缺少的软件。仅仅几年时间,中间件以迅雷不及掩耳的速度迅猛发展,每年的市场销售额均是成倍的

33、增长。四基于CORBA/WEB技术- 构建三层体系结构的应用.问题提出在应用系统开发过程中,CLIENT/SERVER体系结构得到了广泛的应用 。其特点是,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。但CLIENT/SERVER结构存在着很多体系结构上的问题,比如:当客户端数目激增时,服务器端的性能会因为负载过重而大大衰减;一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便;大量的数据传输增加了网络的负载等等。 随着分布式对象技术的逐渐成熟,多层分布式应用体系结构得到了越来越多的应用。应用系统只有

34、向多层分布式转变,才能最终解决CLIENT/SERVER结构存在的问题。在多层架构下,应用可以分布在不同的系统平台上,通过分布式技术实现异构平台间对象的相互通信。将应用系统集成于分布式系统之上,能极大地提高系统的可扩展性。在多层分布式应用中,在客户端和服务器之间加入了一层或多层应用服务程序,这种程序称为“应用服务器”。开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务

35、逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。2. 方兴未艾的CORBA - 一直以来,面向对象的技术(Object Orientation,OO)是软件界努力追求的目标,传统的对象技术通过封装、继承及多态提供了良好的代码重用功能。但是这些对象只存在于一个程序中,外面的世界并不知道它们的存在,也无法访问它们。要解决这些问题就需要提供一个标准的构件框架,使不同厂家的软件通过不同的地址空间、网络和操作系统交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。因此有关对象中间件的标准相继问世,像OMG组织(Object Management Group)的公用对象请

36、求代理程序结构(Common Object Request Broker Architecture,CORBA)、Microsoft的构件对象模型(Componet Object Model,COM)以及IBM公司的系统对象模型(System Object Model,SOM)等,这些标准都极大地促进了对象中间件技术的发展。 CORBA概要描述 - CORBA是OMG组织在1991年提出的公用对象请求代理程序结构的技术规范。CORBA有很广泛的应用,它易于集成各厂商的不同计算机,从大型机一直到微型内嵌式系统的终端桌面,是针对大中型企业应用的优秀的中间件。最重要的是,它使服务器真正能够实现高速度

37、、高稳定性处理大量用户的访问。现在很多大型网站后端的服务器都运行CORBA,其中有些网站您可能每天都在访问。 - CORBA的底层结构是基于面向对象模型的,由OMG 接口描述语言(OMG Interface Definition Language,OMG IDL)、对象请求代理 (Object Request Broker,ORB)和IIOP标准协议(Internet Inter-ORB Protocol,也称网络ORB交换协议)3个关键模块组成。 - 使用接口描述语言编写的对象接口,使得与语言无关的独立性成为可能。IDL使得所有CORBA 对象以一种方式被描述,仅仅需要一个由本地语言(C/C

38、+、CORBA或Java)到IDL的“桥梁”。CORBA对象的互通信要以对象请求代理为中介,这种互通信可以在多种流行通信协议(如TCP/IP或IPX/SPX)之上实现。在TCP/IP上,来自于不同开发商的ORB用IIOP标准协议进行通讯。 - 为了保持CORBA的商业中立性和语言中立性,必须有一个中介,存在于像C+ CORBA 服务器代码和Java CORBA客户机这样的实体中间,这就是IDL。一个底层对象的若干相关方法和属性被IDL集入一个单一接口。一旦IDL接口定义完成,它可以Stub码或框架代码的形式编译成所选用的语言。在所有的ORB中都有IDL编译器。 - 注意的是,IDL不同于其他的

39、面向对象程序设计语言,我们不能用它指定所定义的类或方法的具体实现。因此,仅仅将它作为一种定义底层对象接口的语言要好得多。 ORB接口结构 - 为了创建一个遵从CORBA规范的应用程序,ORB是CORBA必须提供的。没有ORB,CORBA应用程序就无法工作。CORBA ORB最显著的功能,是对应用程序或是其他ORB的请求予以响应。ORB实现细节对软件开发者的透明的。 - 在CORBA应用程序运行期间,ORB可能被请求做许多不同的事情,包括查找并调用远程计算机上的对象、负责不同编程语言之间的参数转换( 如C+到Java)、用动态方法调用激活远程对象等等。 - 图1所示为一个独立的ORB的结构,箭头

40、说明ORB的调用关系。为了提出一个请求,客户端可以使用动态调用接口(Dynamic Invocation)或者客户端的Stub程序。客户端也可以直接和ORB交互。 - 对象的实现(Object Implementation)通过IDL静态骨架(IDL Static Skeleton)或动态骨架(Dynamic Skeleton)的调用来接受请求。 - 图所示为一个远程调用过程。为了调用远程的对象实例,客户端首先获取它的对象参数。客户端在进行远程请求时使用与本地请求相同的代码,只不过用对象参数代替了远程实例。当ORB检测对象参数并发现目标是远程对象的时候,它会调度这些参数,把请求转移到网络上,从

41、而连接到远程对象的ORB上。ORB可以从对象参数中判断出目标对象是远程的,客户端却做不到这一点。当客户端发出请求时,对象参数不用去分辨目标对象的位置。这保证了对象位置的透明性CORBA的这些基本原理简化了分布式对象的计算机应用的设计。 基于CORBA应用的优点 - 使用CORBA到底有什么好处呢?就像不同部门间需要协同工作来获取最大利润一样,不同的计算机应用之间也需要协同工作。CORBA能完成这些任务。它是开放式的、独立于厂商、用于网络上计算机应用的底层结构。任何厂家、计算机、操作系统、编程语言及网络环境下的基于CORBA的应用均使用IIOP标准协议,所以任何基于CORBA的应用均能协同工作。

42、 - 在小型的Client/Server模式的应用系统中使用CORBA,能给系统提供可靠的、标准的底层结构。可以使用CORBA来构建、运行在不同平台上的、用不同编程语言实现的客户端及服务器端的应用程序。如果企业广泛使用基于CORBA的应用,会带来巨大的商业利益。企业中的不同的应用系统都有不同的功能,能够处理不同的数据,这些系统如果能结合起来协同工作,就会产生更大的商业价值。如果应用系统都是用CORBA来实现,就可以容易地移植到网上,企业内部可以通过网络协同工作,产品订货单就会滚滚而来了。 - 随着业务的不断扩展,公司的电子商务站点的负载会不断增大,总有一天负载量会超过系统预先设计的支持能力。可

43、以使用CORBA来制作基于对象模型的服务器端的应用系统,解决系统负载的问题。考虑到当前的负载及以后可能达到的负载情况,可以选择ORB,它可以在多个服务器之间实现负载均衡。它是基于OMG可移动对象适配器的,当系统负载较重时(比如运行基于Web的应用),可以更充分地利用系统硬件资源。 - 如果应用系统需要很高的稳定性(比如股票或证券方面的应用),可以利用CORBA提供的容错机制。CORBA的容错机制不仅能实现负载均衡,还能使每一个对象同时在两个或多个服务器上运行,当其中的一个出现故障时,系统能自动切换到另一个服务器。如果多个服务器的硬件配置相同,服务器会拥有很高的稳定性。 - CORBA对象可以用

44、任何一种CORBA软件开发商所支持的语言,如C、C+、Java、Ada和Small talk等等来编写。同样,CORBA对象可以运行在任何一种CORBA软件开发商所支持的平台上,如Solaris、Windows 95/NT、Open VMS、Digital Unix、HP-UX 等。这意味着可以在Windows 95下运行Java应用程序,同时动态调入并使用C+对象,而实际上该对象可能存储于一个在Internet上的Unix Web服务器上。 - 目前,对于较为流行的编程语言(包括C+、Smalltalk、Java和Ada 95),已经有了许多第三方的ORB。随着其他语言的逐渐流行,CORBA

45、开发商毫无疑问地要做出相应的ORB来支持它们。 CORBA应用前景 - 成上千万的站点依赖于CORBA搭建企业应用、Internet应用及其他应用,有许多成功使用CORBA的案例。- CNN(美联社)正在使用一个基于CORBA事件服务的应用系统。系统用于把那些不同来源的、不同格式的、不同类型的机器上的大量新闻资料分发给所有的新闻编辑。新闻编辑再利用一个自动过滤程序来审核这些发来的消息,并把那些与自己工作方向相符合的重要稿件做上标志,过滤出来。波音公司把接收订单、制造、交货和维修4个最重要的制造系统方面的应用集成在一个综合的CORBA底层结构上,这些系统担负着飞机生产的整个过程。Charles

46、Schwab公司构建了一个基于CORBA的商业应用,利用该系统来与5000个客户保持联系,处理的业务额高达数亿美元。 - 对象中间件技术发展迅速,各大软硬件厂商都在积极参与有关标准的制定和产品开发工作,像IBM、HP、DEC、AT&T、ICL、Microsoft等都制定了相应的战略。许多对象中间件的专门厂商也相继诞生,未来的对象中间件市场将会出现群雄逐鹿的局面。 CORBA,它是分布计算机技术的发展结果,CORBA技术的成功在于,它除了能够解决由于多个系统层次上的异构带来的“孤岛”问题,还在理论和技术上扩展了客户/服务器的模式,使系统具有良好的可伸缩性,便于系统的开发与升级,保护已有投资。CO

47、RBA体系的主要内容包括以下几部分:(1)对象请求代理ORB(Object Request Broker):负责对象在分布环境中透明地收发请求和响应,它是构建分布对象应用、在异构或同构环境下实现应用间互操作的基础。 (2) 对象服务(Object Services):为使用和实现对象而提供的基本对象集合,这些服务应独立于应用领域。主要的CORBA服务有:名录服务(Naming Service)、事件服务(Event Service)、生命周期服务(Life Cycle Service)、关系服务(Relationship Service)、事务服务(Transaction Service)等。

48、这些服务几乎包括分布系统和面向对象系统的各个方面,每个组成部分都非常复杂。 (3) 公共设施(Common Facilitites):向终端用户提供一组共享服务接口,例如系统管理、组合文档和电子邮件等。 (4) 应用接口(Application Interfaces):由销售商提供的可控制其接口的产品,相应于传统的应用层表示,处于参考模型的最高层。 (5) 领域接口(Domain Interfaces):为应用领域服务而提供的接口。如OMG组织为PDM系统制定的规范。CORBA制定了一套对象间通信的协议。通信介质被称为ORB ( Object Request Broker ),它负责在对象之间

49、传递消息。如果对象在同一台机器上,ORB可以来优化消息的传递,如果在不同的机器上,则使用IIOP或GIOP协议(可以建立在任何网络通信协议之上)。IIOP(Internet Inter-ORB Protocol)就是基于IP协议,为方便Internet上的CORBA应用而设计的。 ORB是CORBA应用的基础,不同的公司可以开发出不同的ORB。但由于大家使用相同的通信协议,因此基于不同ORB实现的应用之间可以无缝通信。如下图: ORB通信注意,这里的stub类似与DCOM中的proxy,而这里的skeleton则类似与DCOM中的stub。 CORBA为了真正做到分布式的对象系统,仅有一个OR

50、B是远远不够的。CORBA还必须定义大量的对象和伪对象才能满足分布式的对象系统下程序员的要求。 CORBA的产生有其特定的背景,它是在面向对象的技术兴起,客户/服务器模式普遍得到应用的前提下,为屏蔽通信和实现细节的需求,继承已有系统,消除“孤岛”现象而产生的。它弥补了传统分布处理系统的不足,具有很多新的特色:(1)引入代理(Broker)概念。代理起到如下作用:完成对客户方提出的抽象服务请求的映射;自动发现和找到服务器;自动设定路由,实现服务方程序的执行。 (2)客户方程序与服务方程序完全分离。用传统的客户/服务器方式有很大的不同,客户将不再与服务方发生直接的联系,而仅需要与代理发生联系,客户

51、与服务器方都可方便升级。(3)提供“软件总线”机制。任何应用系统只要提供符合CORBA系统定义的一组接口规范,就可以方便的集成到CORBA系统中,这个接口规范独立于任何实现语言和环境。如此,客户应用于服务对象之间可以透明地交互运行,实现应用软件在“软件总线”上的“即插即用”。 (4) 分层的设计原则和实现方式。CORBA系统的底层核心是一个精练的系统,各种复杂系统和应用可以由核心扩展和延伸。CORBA技术是先进技术发展的结果,它将面向对象的概念揉合到分布计算中,使得CORBA规范成为开放的、基于客户/服务器模式的、面向对象的分布计算的工业标准。3CORBA 与 WWW 相结合WWW技术迅速发展

52、,它已不再仅仅是超媒体信息的浏览工具,以逐步成为人们进行事务处理的前端。由于分布对象的计算技术,特别是CORBA技术对于提高WEB的网络计算能力有着无可比拟的巨大作用,CORBA与WWW技术迅速融合,产生诱人的技术前景。 CORBA与WWW结合,构架出真正的三层体系结构。这种三层的体系结构,以分布对象技术为基础构架,增加了应用层,将客户层与资源层隔开,降低了Web服务器的负载,避免了Web服务器的性能缺陷对整个性能的影响。并且具有连接缓冲,负载均衡,安全管理等功能,从而提高了Web应用整体的灵活性,可伸缩性,可扩展性。该结构中,CORBA客户方程序从Web服务器上下载执行,与应用服务器上的CO

53、RBA应用对象通过IIOP(Internet-Inter-ORB Protocol)协议进行通讯,调用其指定的操作。 CORBA应用对象首先对客户的请求进行认证和解释,根据客户请求的内容,或是直接访问资源层的数据库,或是与网络上的其它CORBA对象交互,共同完成客户请求。CORBA-WEB体系与ActiveX,JAVA RMI(Remote Method Invocation)比较起来,有明显优势。在CORBA与Web的结合技术上,JAVA是CORBA结合Web的一个很好的切入点。CORBA规范中定义了IDL/Java的映射,CORBA产品提供商则根据规范开发了Java ORB。JAVA OR

54、B不仅能开发分布式的JAVA应用,更重要的是它能够开发WEB的CORBA应用。Java ORB是基于CORBA的Java应用的中心,Java客户,包括Applet和Application,通过桩(Stub)代码向本地的Java ORB发出请求,本地ORB再与服务器方的Java ORB进行IIOP通讯,服务方ORB根据请求的内容调用相关的骨架(Skeleton)代码由指定的对象实现来完成请求,并将请求结果按原路返回给客户。Java ORB作为信息中介的桥梁,负责远程对象请求的生成、编码、传输等工作。五中间件技术 相关产品分类及其发展趋势2003年,中间件技术继续保持稳步增长的势头。作为许多大型软

55、件厂商的核心战略,中间件技术已逐步走向成熟。从用户的角度看,新建的信息系统不基于中间件的已经很少,中间件技术及其应用已经渐入佳境。国内中间件的应用状况与国际上大致相同,但中间件市场的增长与我国的经济增长一样,仍比全球的增长要强劲一些。1需求导致技术格局多样化 中间件技术已经成为应用系统的支撑。相对于操作系统与数据库而言,中间件与应用系统的关系更为密切,因此,应用系统的发展与中间件技术的发展互为因果。应用系统的需求就是中间件技术发展的风向标。从2003年应用发展的情况看,许多传统的领域如金融、电信等大型企业的核心业务系统的建设已基本完成,基本数据源已经形成,并继续向互联网领域过渡。新的业务系统如

56、决策系统、增值业务系统等将逐步展开。而在政府领域及中小企业领域,信息系统的发展相对滞后,其基础业务系统的建立正在进行或刚刚开始。同时,信息系统建设的地域性差异很大,沿海地区与内陆地区都有很大差异。由于不同的应用系统类型需要不同的中间件技术,应用发展的不均衡性也导致中间件技术的多样化发展。中间件的分类方法繁多,为了便于说明问题,根据2003年前后的发展状况,把中间件分为两大类:一类是底层中间件,用于支撑单个应用系统或解决单一类问题,包括交易中间件(TPM)、应用服务器(WAS)、消息中间件(MOM)、数据访问中间件(UDA)等;另一类是高层中间件,更多用于系统整合,包括企业应用集成中间件(EAI

57、 Suites)、工作流中间件(Workflow)、门户中间件(Portal)等,它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于底层中间件运行。这些种类的中间件,根据应用的场景及发展轨迹的不同,将继续保持多样化发展,并不断衍生出新的格局。2底层中间件持续走稳 在强势行业新应用中,特别是在政府、中小企业的基础应用系统的建设中,底层中间件将得到更广泛的应用。 作为B/S结构应用基础设施,应用服务器在市场上大行其道。由于应用服务器的标准完备,所遵循的主要规范EJB及J2EE逐渐走向成熟,提供此类产品的厂商又众多,因此竞争也最激烈,其市场价格也会持续走低,继续保持“物品化”的趋向即产品价格平稳走低,利润增长依赖于增值服务。 应用服务器由于基本上继承了交易中间件和消息中间件的功能特性,在采用B/S结构及非传统编程语言(C、C+等)的应用中,应用服务器在逐渐蚕食交易中间件及消息中间件的一部分市场,导致后两种中间件在B/S市场中增长放缓。 作为历史最长、最成熟的中间件,交易中间件在对效率、可靠性等方面要求严格的关键任务系统中仍具有明显优势,在金融、电信、证券等许多行业的核心业务还无法采用B/S结构的情况下,仍将占有重要地位。 消息中间件的定位、功能及稳定性非常出色,在需要数据可靠传输的系统中牢牢占据一席之地。同时,在各行业的单一应用系统建立起来以后,应用整合已成为新一轮

温馨提示

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

评论

0/150

提交评论