分布式对象标准介绍-分布式对象标准介绍.ppt
分布式对象标准介绍企业要构建多层分布式系统,必须遵循分布式标准,基于什么样的标准将直接影响到企业应用系统的开放性和可扩展性。目前业界分布式对象技术主要有三种架构标准:Microsoft的COM/DCOM/COM+OMG组织的CORBA。SunMicrosystems的EnterpriseJavaBeans/RMICOM/DCOM/COM+ COM/DCOM/COM+是Windows环境专属的分布式对象架构,虽有协作厂商移植至少数UNIX平台,但与Windows平台上的版本仍有相当程度的差异性,为部门级(DepartmentLevel)分布式运算的主要架构,支持平台种类有限,无法满足企业级的需求。我们的经验表明: 即使在纯windows平台下,COM/DCOM/COM+对多种语言编程的支持也是比较差的,基本上可以认为是一个“Windows平台上的分布式C++”。在Windows下使用C++开发COM应用,可以无限制的应用任何COM的功能。VisualBasic语言对COM自动化之外的COM功能几乎不支持。VisualJava语言,众所周知,Microsoft和Sun为此进行了一场诉讼大战,现在已经是一个不再发展的语言了,当前版本对JAVA/COM集成的支持很有限。Delphi语言,据说支持得不错;但是接触不多,不敢断言。CORBA公用对象请求代理 CORBA标准是由800多个大型软、硬件公司参与的OMG(ObjectManagementGroup)组织所制定,获得IBM、SunMicrosystems、Oracle、Sybase、Borland、Novell、Netscape等大型IT厂商的支持。CORBA规范是众多厂商平台上软件对象间沟通的桥梁,遵循CORBA标准能够有效保障用户的技术投资。CORBA的对象管理架构OMA如下页图所示,包含下列几个重要部分:对象请求代理(ObjectRequestBroker,简称ORB)公共对象服务(CommonObjectServices)公共设施(CommonFacilities)应用程序对象(ApplicationObjects)CORBAA体系架构CORBAA体系架构概述对象请求代理(ORB) 整个CORBA应用的骨干,负责从客户端对象接受请求、将请求发送给服务端对象,并将服务端对象的响应反馈到客户端对象。软件厂商只要遵循应用对象与ORB间沟通的接口定义语言(InterfaceDefinitionLanguage,IDL),便能够以对象的型态提供服务或享用服务,ORB如同一个软件的总线(Softwarebus),结合应用程序对象,让开发人员完全不需考虑异构平台、异构通讯协议或不同程序语言间的差异。因此,CORBA标准具有操作系统的中立性及开发语言的中立性特点。也就是说,CORBA对象并不局限于某一特定系统平台(WindowsNT或Unix),CORBA的开发也不局限于某一特定的开发语言(开发人员可以使用C/C++、Java、ObjectPascal或Smalltalk)。公共对象服务(CommonObjectServices)
以对象型态提供许多公用的服务,例如:事件传递管理、交易管理、对象命名、安全管理、数据交换等.公共设施(CommonFacilities)
提供资源管理、网络管理等多种服务。EnterpriseJavaBean(EJB)RMI与EnterpriseJavaBean(EJB)是以Java程序语言为主体的分布式对象架构,新版本的EJB规范与OMG的CORBA规范也逐渐集成。对于EJB体系架构我们未曾应用,所以也不敢多讲了。?但是就JAVA语言来说,根据我们的测试表明,某些对实时性要求较高的应用不应采用JAVA,因为JAVA应用有一个最大的缺点就是它的运行时效率是不确定的,例如:根据我们的测试,JAVA虚拟机的内存垃圾收集过程(何时启动此过程是应用不可控制的)有时可以持续1-2秒的时间,而在此时间内,所有此应用的工作均被停止。这可能对我们系统中的某些应用是不可接受的。不同框架之间的互操作COMCORBA
尽管CORBA制订了COM/CORBA互操作规范,但是目前的实现并不理想。COMJAVA
不用说EJB,仅仅是JAVA语言和COM的集成就有很大的问题。CORBAEJB 新版本的EJB规范与OMG的CORBA规范逐渐集成:编程语言层面上的IDL/JAVA语言的双向映射协议级的基于IIOP(ORB使用)的RMI(EJB使用)规范。一些基本的CORBA术语对象(Object)
一个可识