精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Java>>J2EE>>wangf: DCOM/EJB/CORBA

主题:wangf: DCOM/EJB/CORBA
发信人: wangf()
整理人: zjxyz(2001-06-16 10:31:33), 站内信件
DCOM/EJB/CORBA实际上是一类分布式计算规范,本质上仍然基于Client/Server结
构,既然基于C/S结构,CORBA是由ORB系统构成一个服务器系统
,EJB由EJB容器(或服务器)组成EJB的服务系统,而DCOM和Windows系统紧密结合
,通过Windows NT的服务来实现。

由OMG推出的CORBA于20世纪90年代初诞生,Microsoft和Sun都是其成员。Micros
oft从1994年开始酝酿COM计划,最初的COM由OLE演变而来,和分
布式计算没有太大的联系,只是一个组件重用的规范。随着INTERNET和计算机网
络的迅速发展,分布式计算在企业应用中逐渐扮演重要角色,MS
于是将COM升级为DCOM,DCOM的Client/Server遵循RPC协议,RPC是ANSI DCE的子
集,但是由于种种原因,DCE并没有很好的普及。

CORBA规范目前已经发展成为2.2版本,最初的版本并没有包含IDL到java的映射,
直到2.1版本才实现。即将推出的3.0版本,考虑了和EJB的互操
作问题。CORBA的客户和服务遵循的是IIOP协议,该协议基于TCP/IP。

EJB是Sun于20实际90年代末推出的Java企业级解决方案和分布式计算的重要组成
部分,EJB的服务和客户则是建立在RMI之上的。

DCOM由COM发展而来,而后为了支持电子商务,增加了事务处理特性,这在Windo
ws NT下是通过MTS实现的,随着Windows 2000的发布,这一特性
已经集成到COM+当中,而COM+是Windows 2000 DNA的基础设施。COM+和Widnows 
2000操作系统紧密结合,不仅是一个分布式计算系统,还是一个
适合于事务处理的系统,并且集成了许多新的特性,如内存数据库、消息订阅、
异步消息队列等,有兴趣者可参考<<深入理解COM+>>一书。
DCOM和CORBA实际上有较大的类似之处,DCOM继承了CORBA的接口定义语言,但是
DCOM主要使用C++语言编写(Microsoft称可以使用VB/VJ++编写,
但这些工具写出的COM/DCOM,效率低,处理能力有限),而且植根于Windows操作
系统,所以不能成为跨平台的解决方案。


CORBA的本质是基于组件模型的分布式系统,其核心是ORB。CORBA可以使用多种语
言实现,如C/C++/COBOL等,但是直到2.1版,OMG才发布了用J
ava实现CORBA的规范。CORBA的好处在于跨语言和跨平台,得到业界广泛的支持。
作为大陆仅有的OMG成员东南大学,在这方面的研究走在全国
前列,并且实现了国产的ORB系统,它是免费发送的。另外,CORBA国内的电信和
金融领域,已经有成功使用的案例。这证明国内的CORBA研究也
正在进行中。

EJB这个东西是Sun为了推行Java的企业级解决方案而推出的,主要得到Sun极其盟
友阵营的支持,另外,Sun也有意使它成为UNIX系统的分布式
解决方案,但是到目前为止,EJB只能用Java实现,并且运行在JVM当中,而DCOM
/CORBA对象均以编译好的二进制代码存在,所以EJB对象在执行
速度上就比不上DCOM/CORBA,但是EJB依托Java这个利器,似乎前景看好。
EJB服务器端的运行需要一个EJB容器,它实现了Sun的EJB规范,每个EJB对象由E
JB容器响应客户请求并实例化,在这里EJB容器实际上起到一个
代理作用,EJB对象暴露的接口之一是home,客户通过请求home的create方法,从
而获得一个EJB对象实例。

DCOM/EJB/CORBA都是一脉相承的东西,至少他们处于同一个层面,都封装了逻辑
处理,使得开发这可以集中精力开发他们的商业逻辑,而无需要
担心诸如安全之类的问题,从这个意义上讲,DCOM/EJB/CORBA都是电子商务时代
的基础设施,当然COM+/EJB就更接近于以上的比喻了。

以上为本人的一点看法,谬误之处,请各位指正。

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.117.75]

[关闭][返回]