《软件中间件.ppt》由会员分享,可在线阅读,更多相关《软件中间件.ppt(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ShanghaiJiaoTongUniversity讲师:沈备军博士Module:Distributed Computing Middleware分布计算中间件分布计算中间件高级专题高级专题2DistributedComputingMiddleware沈备军本节内容w概述w分布对象中间件wWeb服务中间件3DistributedComputingMiddleware沈备军开发分布系统面临的问题 w网络通信分布系统往往建立在传输层之上w协调同步,激活/去活,并发等w可靠性通信可靠性,事务性,容错性等w伸缩性访问透明性,位置透明性,迁移透明性,复制透明性等w异构性平台异构,编程语言异构等4Dist
2、ributedComputingMiddleware沈备军中间件的定义 wIEEE中间件通过提供简单、一致、集成的分布编程环境,简化分布应用的设计、编程和管理。本质上,中间件是一个分布软件层(或平台),抽象了底层分布环境(网络、主机、操作系统、编程语言)的复杂性和异构性。wCMU-SEI中间件是一组支持软件连接的服务的集合,允许在一个或多个主机上运行的多个过程通过网络进行交互。w美国国家自然基金委员会中间件是连接分布在Internet或局域网上的多个应用的软件。具体而言,中间件是一组驻留在网络与传统应用之间的一组服务,用以管理安全、访问以及信息交换。5DistributedComputingM
3、iddleware沈备军中间件的分类 1)数据访问中间件允许应用程序和本地或者异地的数据库进行通信,并提供一系列的应用程序接口(如ODBC、JDBC等)。该类中间件技术上最成熟,但局限于与数据库相关的应用。2)消息中间件可以屏蔽平台和协议上的差异进行远程通信,实现应用程序之间的协同,如IBM的MQSeries、BEA的MessageQ等、其优点在于提供高可靠的同步和异步通信,缺点在于不同的消息中间件产品之间不能互操作,开放性差3)远程过程调用RPC中间件该类中间件解决了平台异构的问题,但编程复杂且不支持异步操作。Gartner Group将目前可用的主流中间件划分为五类:6Distribute
4、dComputingMiddleware沈备军中间件的分类 (2)4)事务中间件是在分布、异构环境下提供保证事务完整性和数据完整性的一种平台,如BEA的TUXEDO和IBM的CICS。事务中间件的优势在于对关键业务的支持,但机制复杂、对用户要求较高。5)对象中间件在分布、异构的网络计算环境中,可以将各种分布对象有机地结合在一起,完成系统的快速集成,是中间件技术发展的主流。主流的对象中间件包括CORBA、RMI和DCOM。7DistributedComputingMiddleware沈备军中间件的发展趋势 w支持基于构件的软件开发对象中间件=构件中间件,如J2EE/EJB、CORBA/CCM、C
5、OM+/.NETw支持Internet应用Internet中间件技术WebServicesw支持移动应用-移动计算中间件w支持自治计算XML、工作负载管理、软件Agent技术等,下一代中间件的主要特性之一w支持服务质量中间件的QoS,包括QoS规约、映射和执行等w支持自反(Reflection)机制“黑盒”=”白盒”,两种基本能力:introspection与intercession8DistributedComputingMiddleware沈备军本节内容w概述w分布对象中间件分布对象中间件 wWeb服务中间件9DistributedComputingMiddleware沈备军构件接口技术的
6、基本概念从构件的开发和使用角度看:构件使用者构件构件接口接口构件开发者开发开发使用使用10DistributedComputingMiddleware沈备军构件接口技术的基本概念从构件的运行角度看:构件构件运行协议运行协议构件运行环境的构件运行环境的标准化将更好地标准化将更好地支持构件之间的支持构件之间的互操作互操作 构件运行的环境构件运行的环境(container)协议保证了构协议保证了构件的易移植性件的易移植性 11DistributedComputingMiddleware沈备军构件接口技术的基本概念从构件的部署和维护角度看:构件构件部署和维护部署和维护 部署和维护的工具部署和维护的工具
7、构件运行的环境构件运行的环境(App ServerApp Server)部署和维护的部署和维护的工具应符合一工具应符合一定的标准。定的标准。12DistributedComputingMiddleware沈备军企业应用构架企业应用构架 -n-tier C/S 架构架构 HTML,ScriptLanguages,.JSP,Servlets,CGI,.EJB,CORBA,COM+NativelanguagesClient/BrowserWeb ServerApplication Server 1LegendSystemDatabaseServerApplication Server n客户机表示层
8、业务服务层后端系统13DistributedComputingMiddleware沈备军应用服务器 -服务器端的构件容器和中间件服务 w获得多层体系结构的优点是需要代价的,服务器端存在着诸如构件的生命周期管理、多层次间的负载平衡、同一构件的多客户并发访问控制、安全认证等一系列复杂问题。w解决这些问题需要专家级别的中间件知识和行业规范w应用服务器的诞生就是为了让人们能够共享这样的服务,而不需要自己去开发。w应用服务器为构件提供了服务器端的运行环境,提供常用的中间件服务,比如资源缓冲,网络操作等等14DistributedComputingMiddleware沈备军构件接口模型-服务器端构件容器的
9、标准化及其与构件的接口协议 w应用服务器在保证可靠性和可扩展性的前提下,提供了构件所需要的运行环境和中间服务。但仅此不够,我们还需要一个统一的服务器端构件接口模型。w构件接口模型为构件的应用服务器及其部署工具提供了一个接口标准,并完善地定义应用服务器和构件本身之间的接口,从而保证了构件的易移植性。15DistributedComputingMiddleware沈备军构件接口模型-三种主流的模型wMicrosoft:DNA/COM+DistributedinterNetApplicationArchitecture/CommonObjectMode+wOMG:OMA/CORBAObjectMan
10、agementArchitecture/CommonObjectRequestBrokerArchitecturewSun:J2EE/EJBJava2PlatformEnterpriseEdition/EnterpriseJavaBean16DistributedComputingMiddleware沈备军EJB/J2EE 技术1J2EE概述1)Java平台的发展历程2)J2EE核心技术3)J2EE应用开发过程中的不同角色2EJB技术1)EJB简介2)EJB的体系结构3)EJB的编程模型4)EJB构件的开发17DistributedComputingMiddleware沈备军Java平台的发展
11、历程 wJava平台的第一个参考实现是JDK。但JDK并未支持服务器端构件开发。w为了提供服务器端部署的企业级服务,Sun公司开始开发一些EnterpriseAPI。这些服务包括命名和查找服务,事务服务,和EJB1.0APIw为了解决EnterpriseAPI的问题,Sun公司提出了三个不同的Java平台:J2ME(Java2Platform,MicroEdition)、J2SE(Java2Platform,StandardEdition)和J2EE(Java2Platform,EnterpriseEdition)。18DistributedComputingMiddleware沈备军J2EE
12、核心技术-n-tier 应用架构RMI客户机表示层业务服务层后端系统浏览器应用程序浏览器AppletWeb/HTTP服务器JSPsServlets分布式CORBA对象遗产系统数据库应用服务器Java IDLJNDIJDBCJMSEJBEJBEJBEJB19DistributedComputingMiddleware沈备军J2EE核心技术 J2EE1.3/EJB2.0 规约Java2Platform,EnterpriseEdition(J2EE)v1.3JSPs和Servlets安全认证服务/JAASJava2Platform,StandardEdition(J2SE)v1.3JavaIDL/I
13、IOPRMI/JRMPJDBC核心HTTPJavaSecurityJDBC扩展RMI/IIOP命名目录接口JNDIXML/JAXP消息服务JMS交易管理JTS/JTAConnectors会话、实体、消息驱动等类型EJB的容器BMP和CMP机制EJB2.0EJB部署EJBQLEJB异常处理机制20DistributedComputingMiddleware沈备军J2EE核心技术 -EJB(Enterprise JavaBeans)wEJB是J2EE规约中最重要的部分。wEJB提供了让客户端使用远程的分布式对象的框架,极大地简化了具有良好的可扩充性的企业级软件的开发。wEJB规约规定了EJB构件(
14、指符合EJB规约的构件)如何与EJB容器(container)进行交互,而EJB容器则提供诸如目录服务、事务管理、安全、连接池管理、容错等服务。21DistributedComputingMiddleware沈备军J2EE核心技术 -RMI 和 RMI-IIOP wJavaRMI(RemoteMethodInvocation)是EJB构件和客户端的通信API,它和Java语言本身紧密结合,允许进程间通信并提供其他通信相关的服务。wRMI-IIOP是一个可移植的RMI扩展,它利用OMG的IIOP(InternetInter-ORBProtocal)协议作为通信协议,IIOP对J2EE与CORBA
15、系统集成也是必需的。22DistributedComputingMiddleware沈备军J2EE核心技术 -JNDI wJNDI(JavaNamingandDirectoryInterface)是命名和目录服务的标准。wEJB依赖JNDI通过网络来查找分布式构件。wJNDI是客户端代码连接EJB构件所必需的关键技术。23DistributedComputingMiddleware沈备军J2EE核心技术 -JDBC wJDBC(JavaDatabaseConnectivity)同ODBC一样,隐蔽了程序访问数据库的细节,允许程序员使用相同的接口来访问各种不同的数据库。wJDBC是使用纯Java
16、写的,它可以跨平台的访问各种数据库。24DistributedComputingMiddleware沈备军J2EE核心技术 -JTA和JTS JTA :Java Transaction API JTS:Java Transaction Service 25DistributedComputingMiddleware沈备军J2EE核心技术 -JMS wJMS(JavaMessagingService)是一套与面向消息的中间件(MOM)通信的API。JMSisanAPIthatdescribesaninterfacetoclient/servermessagingsystems.Client/se
17、rvermessagingsystemsarecommonlyreferredtoasmessage-orientedmiddleware(MOM)wJMS同时支持点对点的消息队列服务和发布-订阅消息服务。wJMS支持可靠消息传递、消息传递事务、持续消息等特性。wJMS是实现EJB中消息驱动Bean的基础。26DistributedComputingMiddleware沈备军J2EE核心技术 -JSP 和 Servlets wJSP:JavaServerPagesw客户端请求JSP页面时,服务器会先对该页面中的Java代码进行处理,将返回的HTML送还给客户端。wwServlet是一种扩展We
18、bServer功能的Java代码,是服务器端的程序,在用户请求时执行。wServlet是纯粹的Java代码,但它可以输出合法的HTML代码。27DistributedComputingMiddleware沈备军J2EE核心技术 -JCA JCA:Java Connector ArchitectureJava Connector Architecture JCA定义了J2EE平台连接异构的企业信息系统EIS的标准架构。28DistributedComputingMiddleware沈备军J2EE核心技术 -XML wXML(eXtensibleMarkupLanguage,广泛标记语言)是由万维
19、网联盟(W3C)制订、得到业界广泛支持的标准,被专门设计为描述数据的标准元语言。w在Java中可以使用JAXP(JavaAPIforXMLParsing)来对XML文件进行解析。wwJ2EE中的许多配置文件使用了XML。29DistributedComputingMiddleware沈备军J2EE应用开发过程中的不同角色应用组装者容器提供者服务器提供者应用部署者系统管理员EJBEJB模块模块部署描述部署描述JAR模块模块EJB JAR模块模块J2EE应用应用部署描述部署描述WEB WAR模块模块EAR应用应用构件开发者EJB构件构件DevelopPackageEnterprise Applic
20、ation Server(Vendor Implementation of J2EE APIs/Services)Enterprise Application Container(J2EE Container)DevelopDevelopPackageDeployManage30DistributedComputingMiddleware沈备军EJB的架构对象池EJB客户机业务方法创建、删除、查找Bean实现EJB部署描述Bean代理。Home接口Remote接口EJB服务器EJB容器31DistributedComputingMiddleware沈备军EJB架构 -EJB客户机 wEJB客户
21、机是指请求EJB构件服务的应用程序。EJB规约为创建EJB构件的客户接口定义了一套标准。这套标准主要包括:EJBHome接口:EJBHome接口为客户机创建、删除、查找EJBRemote接口对象的句柄提供了相应的操作。EJB客户机使用JNDI来查找对EJBHome接口的引用。EJBRemote接口:EJB客户机通过EJBRemote接口调用EJB构件的业务方法。RMI/IIOP或RMI/JRMP协议:RMI/IIOP或RMI/JRMP是EJB客户机与EJB服务器进行通信的标准协议,这些底层的分布式通信机制对于EJB客户机和EJB构件开发者都是透明的。32DistributedComputing
22、Middleware沈备军EJB架构 -EJB服务器 wEJB服务器为使用EJB构件的应用程序提供操作环境,并提供所有必需的服务,来支持EJB架构。wEJB规约为每个支持Java的应用程序服务器定义了一个标准模型。任何厂商都可以使用此模型来实现对EJB构件的支持。w多种系统(如TP监视器、CORBA运行系统、COM运行系统、数据库系统、Web服务器系统或其它基于服务器的运行系统)都可以调整到能够支持易移植的EJB构件。33DistributedComputingMiddleware沈备军EJB架构 -EJB服务器的主要功能w管理EJB容器(EJB容器则管理Bean)w提供对操作系统服务的存取w
23、提供Java相关的服务,尤其是-通过JNDI访问命名空间-基于OTS的事务处理服务34DistributedComputingMiddleware沈备军EJB架构 -EJB容器 EJB构件并不在 EJB 服务器的顶部直接执行。一个称为EJB容器的中间件在EJB服务器环境中运行,EJB 容器为EJB构件提供操作环境。主要来说,EJB容器管理了以下的系统级问题:持久性(Persistence):容器决定何时载入储存状态,又可分为CMP(Container-Managed Persistence)和BMP(Bean-Managed Persistence)。生成周期管理(Life Cycle Man
24、agement):容器管理EJB构件的实例,使EJB构件实现最大的效能和内存利用率。容器能够激活和失效EJB构件,管理实例池,等等。事务管理(Transaction Management):容器负责管理分布式事务处理的复杂问题。安全性(Security):部署描述文件定义了客户能够访问的不同的应用函数。容器只允许授权的客户访问这些函数。远程连接(Remote Connectivity):容器为远程连接管理底层的通信问题,而且对EJB构件的开发者和客户都隐蔽了通信问题。35DistributedComputingMiddleware沈备军EJB的编程模型 -EJB构件的分类w会话(Session
25、)Bean无状态会话(StatelessSession)Bean:仅对单个用户提供服务,并不保留任何程序状态。系统结束时其生成周期也同时结束。有状态会话(StatefulSession)Bean:提供与单个用户的交互,为每个用户记录各自的状态,但系统结束时其生命周期也同时结束。w实体(Entity)Bean:提供了持久数据的操作与表示。可以同时与多个客户机进行交互,系统结束时其运行状态仍能保留。w消息驱动(MessageDriven)Bean:不能由客户端直接获得其引用而调用其方法,只能由系统消息来启动。在EJB v2.0规约中,EJB构件分为3种类型:36DistributedComputi
26、ngMiddleware沈备军EJB构件的开发w本机接口(HomeInterface):本机接口主要提供与构件的生命周期相关的方法,如建立、销毁、查找等。w远程接口(RemoteInterface):远程接口则表示构件所实现的业务功能。wBean类(BeanClass):每一个远程接口都有一个实现类,该实现类实现了远程接口中所定义的业务方法。所有的EJB构件都有3个基本组成部分:37DistributedComputingMiddleware沈备军EJB构件的开发-实体Bean的例子38DistributedComputingMiddleware沈备军EJB构件的开发-JAR归档文件w一个EJ
27、B构件的远程接口、本机接口及自身的类文件及其控制信息(部署描述文件、环境属性文件和清单文件)将被封装成一个JAR文件。部署描述文件:容器为EJB构件自动处理持久性、事务、一致性及访问控制等工作。EJB规约提供了一种说明这些操作是如何处理的机制,这就是XML格式的部署描述文件。环境属性文件:环境属性作为键-值对存储在一个文件中,可通过java.util.Properties访问此文件。清单文件是标识EJB构件及其相关文件所必需的。39DistributedComputingMiddleware沈备军EJB构件的开发-部署wEJB构件是在称为部署(Deploy)的特定过程中被安装的,由容器提供对部
28、署过程的支持。w在部署时,容器分析JAR文件的内容,并采取必要的操作使此构件可用。这些操作包括:生成实现构件的本地和远程接口的新Java类;将本地接口实现绑定到JNDI命名空间中;生成桩和骨架类,这是支持RMI通信所必需的;生成BeanClass的子类,加入容器专用的代码;w部署时由容器生成的类通常是容器专用的,而不像JAR文件那样具有易移植性。40DistributedComputingMiddleware沈备军EJB构件的开发-客户端编程CustomerHome home;Object ref;/通过JNDI得到服务器上bean的引用ref=jndiContext.lookup(java:
29、comp/env/ejb/Customer);/将引用的类型转换到Customerhome=PortableRemoteObject.narrow(ref,CustomerHome.class);/用本机接口生成实例并将其引用传给远程接口Customer customer=home.create(customerID);/用户通过远程接口执行所需的工作customer.setName(someName);41DistributedComputingMiddleware沈备军EJB应用开发实例 -服务器端Arithadd()ArithBeanejbCreate()ejbRemove()ejbAc
30、tivate()ejbPassivate()setSessionContext()add()ArithHomecreate()EJBHomegetEJBMetaData()getHomeHandle()remove()remove()(fromejb)EJBObjectgetEJBHome()getHandle()getPrimaryKey()isIdentical()remove()(fromejb)SessionBeanejbActivate()ejbPassivate()ejbRemove()setSessionContext()(fromejb)42DistributedComputi
31、ngMiddleware沈备军EJB应用开发实例-Arith.javapackage j2eetest;import javax.ejb.*;import java.util.*;import java.rmi.*;public interface Arith extends javax.ejb.EJBObject public int add(int a,int b)throws RemoteException;43DistributedComputingMiddleware沈备军EJB应用开发实例-ArithHome.javapackage j2eetest;import javax.ej
32、b.*;import java.util.*;import java.rmi.*;public interface ArithHome extends javax.ejb.EJBHome public Arith create()throws CreateException,RemoteException;44DistributedComputingMiddleware沈备军EJB应用开发实例-ArithBean.javapackage j2eetest;import javax.ejb.*;public class ArithBean implements SessionBean Sessi
33、onContext sessionContext;public void ejbCreate()throws CreateException public void ejbRemove()public void ejbActivate()public void ejbPassivate()public void setSessionContext(SessionContext sessionContext)this.sessionContext=sessionContext;public int add(int a,int b)return a+b;45DistributedComputing
34、Middleware沈备军EJB应用开发实例 -客户端ArithHomecreate():j2eetest.Arith(fromj2eetest)Jsp1Beanaa:int=234bb:int=567Init():voidsetA(a:String):voidsetB(b:String):voidgetRes():StringgetInitialContext():javax.naming.Context-arithHomeArithadd(a:int,b:int):int(fromj2eetest)-arith46DistributedComputingMiddleware沈备军EJB应用
35、开发实例-Jsp1Bean.javapublic void Init()try Context ctx=getInitialContext();/look up jndi name Object ref=ctx.lookup(Arith);/cast to Home interface arithHome=(ArithHome)PortableRemoteObject.narrow(ref,ArithHome.class);arith=arithHome.create();catch(Exception e)e.printStackTrace();47DistributedComputingM
36、iddleware沈备军EJB应用开发实例-Jsp1Bean.java private Context getInitialContext()throws Exception String url=t3:/localhost:7001;Properties properties=null;try properties=new Properties();properties.put(Context.INITIAL_CONTEXT_FACTORY,weblogic.jndi.WLInitialContextFactory);properties.put(Context.PROVIDER_URL,u
37、rl);return new InitialContext(properties);catch(Exception e)throw e;-res=arith.add(aa,bb);48DistributedComputingMiddleware沈备军COM+技术wCOM+技术的发展历程w微软分布式网络应用体系结构WindowsDNAwCOM+基本结构wCOM+主要特点49DistributedComputingMiddleware沈备军COM+技术的发展历程 wCOM(ComponentObjectModel)起源于OLE(ObjectLinkingandEmbedding,对象连接和嵌入);
38、w当时的OLE使用一种称为动态数据交换(DynamicDataExchange,简称DDE)机制来支持程序之间的通信,而DDE建立在Windows消息机制基础上,稳定性和效率都很差;wCOM定义了客户与构件之间互操作的标准,包括规约与实现两部分。规约部分定义了构件之间的通信机制,这些规约不依赖于任何特定的语言和操作系统。实现部分即COM库,为COM规约的具体实现提供一些核心服务。w以COM技术为基础的OLE后改名为ActiveX。w随着NT4.0的发布,COM技术需要延伸到分布计算环境,这就产生了所谓的DCOM(DistributedCOM,分布构件对象模型)。50DistributedCom
39、putingMiddleware沈备军COM+技术的发展历程(续)wDCOM用网络协议来代替本地进程之间的通信,并针对分布环境提供了一些新的特性,例如位置透明、网络安全性、跨平台调用等。wCOM/DCOM技术为基于构件的软件开发提供了基础。但是,如果用它来开发企业级应用系统,显然还需要功能强大的基础设施,这些基础设施将为构件提供基本的运行和部署环境。w为了满足企业级应用的需求,微软公司推出了一种微软事务服务器(MicrosoftTransactionServer,简称MTS)。wMTS把应用系统的客户程序、应用构件和各种资源有机结合起来,弥补了COM/DCOM的不足,为分布式企业应用提供了一种
40、服务器端的构件运行和部署环境。wMTS是从NT4.0+SP4的OptionPack开始,随Windows操作系统免费提供的。51DistributedComputingMiddleware沈备军COM+技术的发展历程(续)w随着因特网应用的日益广泛,企业级应用的体系结构越来越重要。为了使Windows真正成为企业应用平台,微软公司又推出了WindowsDNA(DistributedinterNetApplicationsArchitecture,分布式网络应用体系结构)。wWindowsDNA是一个完整的、多层的新一代企业应用体系结构,它包含工具、数据库、操作系统、编程模型和应用服务等。w在新
41、的企业应用体系结构下,微软公司希望进一步把COM、DCOM和MTS统一起来,形成真正适合于企业级应用的构件技术,这就是COM+。wCOM+仍然以COM/DCOM为基础,包含了MTS。wCOM+是一种中间件技术的规约,其要点是提供建立在操作系统上的、支持分布式企业级应用的“服务”。wCOM+是在20世纪末随着Windows2000发布才面世的。52DistributedComputingMiddleware沈备军微软分布式网络应用架构Windows DNAwWindowsDNA是一个服务器端的开发平台,包含了以下产品:WindowsNT/2000:操作系统,为所有微软公司技术提供运行环境和支持。
42、DCOM:支持分布式构件的核心技术。MSMQ(MicrosoftMessageQueue):消息队列产品,支持构件间的异步通信。MTS(MicrosoftTransactionServer):管理构件的应用服务器。MicrosoftWolfpack:支持集群服务器的软件。MicrosoftSQLServer:一个关系型数据库管理系统。MicrosoftIIS(InternetInformationServer):Web服务器。MicrosoftManagementConsole:部署和管理工具。COM+技术是以上产品(尤其是DCOM、MTS、还有MSMQ的一部分)的相互结合。53Distrib
43、utedComputingMiddleware沈备军COM+的架构COM+的核心是改进的COM/DCOM和MTS的集成,但是COM+增加了一些非常重要的构件服务,比如负载平衡、驻留内存数据库、事件模型、队列服务等。COM+还提供了一个比MTS 更好的构件管理环境COM+Explorer,用来设置COM+应用和COM+构件的属性信息。另外,COM+还支持所谓的申述式编程模型(declarative programming model),它允许开发人员以较通用的方式开发构件,而一些细节则留到部署时再确定。COM+COM+目录负载平衡驻留内存数据库对象池新的事件模型构件管理和部署JIT激活事务支持资
44、源分发管理安全模型易于管理MTSCOM基于接口的编程模型基本的构件服务远程支持分布式构件服务DCOM54DistributedComputingMiddleware沈备军COM+主要特点(1)真正的异步通信COM+底层提供了队列构件服务,允许客户和构件进行异步通信。(2)事件服务新的事件机制利用系统服务简化了事件模型,避免了COM可连接对象机制的琐碎细节,使事件源和事件接收方实现事件功能更加灵活。(3)灵活性动态负载平衡以及驻留内存数据库、对象池等系统服务为COM+的灵活性提供了技术基础。(4)可管理和可部署性COM+的申述式编程模型和构件管理环境支持应用系统在开发完成后的管理和部署。(5)易
45、于开发COM+开发模型比以前的COM构件开发更为简化。55DistributedComputingMiddleware沈备军CORBA概述wCORBA:CommonObjectRequestBrokerArchitecture,公共对象请求代理体系结构,由OMG制定的分布对象模型。w要点:通过IDL定义接口,使用不同编程语言、不同编译器实现的构件,可以通过ORB连接,形成一个跨平台的应用。wCORBA产品:CORBA是一套规约,而不是一个产品,开发商可以开发不同的产品来实现CORBA规约。著名的产品有IONA公司的Orbix、Inprise公司的VisiBroker、IBM公司的Compone
46、ntBroker等。56DistributedComputingMiddleware沈备军CORBA发展w第一代:第一代:CORBA规约的第一代主要集中在为分布式对象定义一个基础,其核心是ORB和IDL。wCORBA 2.0:1995年颁布,增加了ORB互操作性规约,主要是基于TCP/IP的IIOP协议(InternetInter-ORBProtocal,因特网ORB互联协议)。wCORBA 2.1:1997年颁布,增加了COM/CORBA互操作规范。wCORBA 2.2:1998年颁布,增加了易移植的对象适配器(PortableObjectAdapter,简称POA)和IDL到Java语言的
47、映射规约。wCORBA3.0草案:草案:1999年提交,打算在2001年正式发布。57DistributedComputingMiddleware沈备军CORBA 3.0wCORBA3.0以前的版本只注意到对象本身,而没有进一步考虑可部署的、由应用服务器管理的构件。wCORBA3.0增加了CCM(CORBAComponentModel)wCCM步微软公司的COM+和Sun公司的EJB的后尘,这三者的核心概念是相似的。它们均提供容器作为构件的运行环境,而诸如事务处理、安全处理、事件处理、持久性等公共服务都是通过公共API访问。w但是,目前还没有成熟的、完全实现CORBA3.0规约的产品。58Di
48、stributedComputingMiddleware沈备军OMA基准模型应用对象公共设施对象服务对象请求代理ORB 该模型描述了分布式对象系统的基本成分,有四个主要层次:应用对象(application objects)、公共设施(common facilities)、对象请求代理(ORB)和对象服务(object services)。59DistributedComputingMiddleware沈备军OMA基准模型1)对象服务是一组系统级的对象,为实现和管理对象提供了基本的功能,包括名字、生存周期服务、事务服务、安全服务等等。2)ORB是核心,它提供了一种机制,使得对象可以透明地发送请
49、求和接受响应。3)公共设施是适用于众多应用领域的通用构件,例如信息管理、系统管理、任务管理和用户界面等。4)应用对象是专用于特定领域的应用构件,OMG没有为它制定标准。60DistributedComputingMiddleware沈备军ORB的架构ORB CoreORB CoreGIOP/IIOPDynamic Invocation InterfaceIDLStubeClientInterface RepositoryObject ImplementationIDLSkeletonObject AdapterDynamic Skeleton InterfaceORBInterfaceImpl
50、ementationRepositoryIDL CompilerOperation()输出参数+回送值输入参数61DistributedComputingMiddleware沈备军CORBA应用开发 客户机程序开发者ORB库IDLcompilier客户机客户机桩服务器程序开发者ORB库IDLcompilier服务器服务器骨架IDL典型的CORBA应用开发过程62DistributedComputingMiddleware沈备军本节内容w概述w分布对象中间件wWeb服务中间件服务中间件 63DistributedComputingMiddleware沈备军产生背景WebServices的产生具有