当前位置:编程学习 > JSP >>

5.2 分布式应用开发技术概述

答案:5.2 分布式应用开发技术概述
目前分布对象技术已经成为建立应用框架(Application Framework)和软构件(Software Component)的核心技术,在开发大型分布式应用系统中表现出强大的生命力,并形成了三项具有代表性的主流技术,即OMG的CORBA(Common Object Request Broker Architecture)、Microsoft的ActiveX/DCOM (Distributed Compound Object Model)和SUN公司的Java/RMI。
5.2.1  CORBA、DCOM、RMI
1.CORBA
----OMG是一个非盈利性国际组织,致力于使CORBA成为"无所不在的中间件"。1989年成立时仅有8家公司参与,而今天已经是拥有900多个机构成员的"议会式"标准化组织,世界上几乎所有最有影响的计算机公司(如IBM、Microsoft和HP等)、著名的工商企业(如Boeing、Citibank和FordMotor等)和大学研究机构都是这个组织的成员。OMG所制定的分布对象计算标准规范包括CORBA/IIOP 、对象服务、公共实施和领域接口规范。遵照这些规范开发出的分布计算软件环境可以在几乎所有的主流硬件平台和操作系统上运行。现在,CORBA/IIOP已成为Internet上实现对象互访的技术标准,OMG的IIOP也已成为许多公司(如Oracle、Netscape、Sun和IBM等)进行系统集成的基本协议。1995年以来,基于CORBA软件的企业级应用发展迅猛,大有覆盖DCE之势。目前世界上有一定影响的CORBA软件制造商已有10多家。
2.DCOM
ActiveX/DCOM是由Microsoft推出的对象构件模型,最初用于集成Microsoft的办公软件,目前已发展成为Microsoft世界的应用系统集成标准,并集中反映在其产品ActiveX中。在分布计算技术上,OMG的优势比Microsoft至少领先2~3年。目前,只有OMG的技术能够支持异构环境中大型分布式应用的开发,而Microsoft的DCOM技术尚不能胜任。Microsoft的优势主要表现在应用和市场能力上。从未来市场策略考虑,Microsoft决定支持OMG提出的OLE/COM与CORBA的互操作标准,从而使COM的对象能够与CORBA的对象进行通信。今后3~5年内,OMG和Microsoft的分布对象技术将共存,并在许多方面相互渗透。
3.RMI
--- -按照Sun和Javasoft对Java的界定,Java是一个应用程序开发平台,它提供了可移植、可解释、高性能和面向对象的编程语言及运行环境。RMI(RemoteMethodInvocation)是分布在网络中的各类Java对象之间进行方法调用的ORB机制。CORBA技术与Java技术存在天然的联系,因为Sun是OMG的创始成员,CORBA标准中的许多内容(例如IDL标准、IIOP标准)是以SUN公司提交的方案为核心制定的。CORBA与Java/RMI的主要区别在于以下两个方面:
·    程序设计语言无关性是CORBA的重要设计原则,而Java/RMI依赖于Java语言和Java虚拟机;
·    Java/RMI技术的最大成就是使对象能够在Internet上迁移和执行,而CORBA2.0标准中只考虑对象的远程访问,没有对象作为"值"传递的承诺。
----由于这两个技术的天然联系和各自的优势,CORBA技术与Java技术的融合已成为必然。
5.2.2  发展趋势
----与Internet技术结合是分布对象技术值得重视的发展趋势。Internet技术的发展,特别是90年代中期WWW技术的广泛应用,给分布对象技术的应用开辟了更广阔的空间,Object Web成为人们关注的新热点。从技术的角度看,WWW应用已经经历了Hypertext Web和Interactive Web两种形态,但都存在很大的局限性,突出地表现为应用接入能力受到限制。Java的出现为在浏览器上运行程序提供了新的途径,标志着ObjectWeb时代的开始。就以网络为中心的分布式应用的发展而言,这种把对象下载到浏览器中执行的机制也有局限。主要表现在大量的遗留应用不是用Java写的,自然无法下载到浏览器中运行;同时,某些重要的应用,包括信息共享与管理类的应用(如数据库系统)以及信息采集与信号监测应用(如实施网络管理的Agent)在逻辑上不能下载到客户端运行;另外,需要"减肥"的客户机可能难以承受越来越庞大的应用系统。尽管Java的RMI解决了访问异地Java对象的问题,但如何管理和访问异地其他大量非Java对象的问题并没有解决。另外,JavaRMI没有提供分布对象事务管理等服务。1996年下半年,Java与CORBA开始携手,共同奠定ObjectWeb时代的技术基础。
----何谓ObjectWeb?对此目前并没有公认的定义,但可以从应用和技术两个角度给出一定意义上的解释。
----1.应用内涵
----ObjectWeb是继HypertextWeb和InteractiveWeb之后新的Web应用,包括"保守的"和"理想的"两类应用形态。
·    保守的应用形态
用户能够按照对象设计者的思路自由、便捷地在Internet上操纵感兴趣的对象;
·    理想的应用形态
用户能够按照自己的需要自由、便捷地在Internet上操纵感兴趣的对象。
----与HypertextWeb和InteractiveWeb比较,Objec tWeb应用给用户的突出感受是操纵的实体不再局限于含有"超链"的文档,作用于实体的操作行为不再局限于"下载"一类的文件传输行为。下面给出两个应用(虽然目前还没有成熟的应用,但实现该应用的技术途径已经成熟)的简单陈述,以帮助对bjectWeb的理解。
---  -(1)开放的Internet/Intranet管理
----  典型的分布式系统管理采用Agent/Manager体系结构,Agent运行在被管理的设备(如服务器、路由器和智能交换机等)上,Manager通过与Agent的交互实施分布式系统管理。但问题是Manager不能管理采用新标准的新设备,这对于Internet管理是不合适的。开放的Internet/Intranet管理有两方面的含义:第一是指Agent能够在Internet上公布其管理功能的接口,并接受任何合法的Manager按照标准的远程对象访问协议(如CORBA/IIOP)所进行的访问;第二是指Manager能够访问任何时刻加入Internet的Agent,只要该Agent支持Internet上标准的远程对象访问协议,并在加入Internet时按照标准的协议公布其接口。这时,Manager就是管理对象的浏览器。我们注意到Sun公司前不久公布的Jini能够实现该应用构思。
- -- -(2)Web组合文档
--- -传统的组合文档(如MicroSoft的Office95)是台式应用,没有跨网络引用组件的功能。而目前流行的Web浏览器基于超文本结构,不能像组合文档一样自由组合和操作对象。Web组合文档较之传统的组合文档增加了跨网络引用组件的能力,这意味着复杂的组合文档应用能够在手持PC或其他瘦客户机上运行。例如,一个汽车设计专家在远离自己的设计中心讲学时,能够通过随身携带的笔记本计算机,现场演示从设计中心服务器上选择若干汽车部件,修改后组合一种新型的汽车,并现场调用设计中心的仿真系统对新设计的汽车进行各种仿真演示。
---- 2。技术内涵
--- -ObjectWeb技术主要包括对象开发技术和对象访问技术。从当前技术现状看,ObjectWeb技术成分如表1.1所示。
表1-1 ObjectWeb技术构成
    Hypertest Web/Interactive Web    ObjectWeb
对象    超文本    COM对象,Java对象、CORBA对象、各类组件
对象访问    HTTP/CGI    DCOM、RMI、CORBA/IIOP、HTTP/CGI
----"对象"与"对象访问"的关系可以用"货物运输系统"来类比。"对象"是ObjectWeb上的"货"。Internet上已存在大量的超文本,相对而言COM对象、Java对象、CORBA对象和各类组件则少得多。由于台式环境中的COM对象非常丰富,今后几年DCOM对象可能首先会在Internet上丰富起来。按照Java技术现在的发展势头,Internet上的Java对象也会很快多起来。由于CORBA对象具有语言、操作系统和硬件平台无关性的特点,它是最容易将大量的遗留应用和C++、Smalltalk对象带入ObjectWeb的技术;随着Java与CORBA的携手,Java对象又会成为CORBA对象的特例;COM对象与CORBA对象的互操作标准已经制定。CORBA对象将迎来大发展的时期。
----  "对象访问"技术是ObjectWeb上的"车"。HTTP用于下载HTML页面和JavaApplet。Microsoft的对象RPC、RMI和CORBA/IIOP协议分别是远程访问DCOM对象、Java对象和CORBA对象的协议。从访问异地应用的意义上讲,HTTP/CGI也可视为一种对象访问协议,只是功能和性能存在很大局限。RMI与CORBA正在逐步融合,有人称融合后的对象访问技术为Java/CORBA。今后一个时期,在ObjectWeb领域占主导地位的技术将是ActiveX/DCOM和Java/CORBA。ActiveX/DCOM的应用丰富,占据了PC用户的绝对优势,一旦大力投入ObjectWeb的开发,市场优势不可阻挡。Java/CORBA的技术优于ActiveX/DCOM,发展势头和潜力不可低估。也许,在ObjectWeb领域ActiveX/DCOM与Java/CORBA的关系会像操作系统领域NT与Unix的关系一样。发展Java/CORBA的当务之急是应用开发,把握未来的最好办法是创造未来
5.2.3 三种主流技术比较
1.CORBA
CORBA有几个基本的优点:与开发语言无关的独立性,与开发者无关的独立性和与操作系统无关的独立性。CORBA的ORB在当前每一种主流操作系统上均有实现(仅就Microsoft的各种操作系统来说,CORBA获得的支持甚至超越了DCOM)。除此之外,CORBAORB可以访问多种语言实现的对象(包括C++、COBOL、Smalltalk和Java)。借助于IIOP,某一开发者(比如说Visigenic)开发的CORBAORB能够获取,操作远程的由其他的开发者(比如说IONA)开发的对象。JavaORB允许客户端在没有安装任何特别软件的情况下实现Java客户端应用程序。(JavaORB的类可与小应用一起动态下载,也可能与浏览器易做图在一起。)
2.DCOM:Microsoft的法宝
目前,Microsoft的分布式组件对象模型(Distributed Componont Object Model)仅运行于两种操作系统之上:Windows95和WindowsNT4。Microsoft正在与第三方开发商协作,以将D

上一个:中间件与jsp
下一个:5.3 CORBA技术及实例

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,