《组件设计讲义2.ppt》由会员分享,可在线阅读,更多相关《组件设计讲义2.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、组件设计华东理工大学华东理工大学 计算机科学与工程系计算机科学与工程系雷向欣雷向欣组件设计第二讲n主要内容vCORBAvEJBvCOM/DCOMCORBAvCORBA是一种标准的面向对象应用程序体系规范。vCORBA最初是对象管理组织(OMG)在1990年11月出版的对象管理体系指南中定义的。vOMG是一个非盈利性的组织成立于1989年,现有500多个成员公司。OMG致力于推广在现有技术基础上集成应用程序的面向对象标准。CORBA的用途 q现在企业所面临的主要问题是需要集成多种工作单元,以使企业能用现有软硬件解决当前的或将来遇到的业务问题。q这个问题的一个重要部分是用较新的桌面环境集成大型机上
2、已有的应用程序。重新创建解决方案则太花时间和金钱。CORBA的用途CORBA提供如下能力:v存取来自现行桌面应用程序的分布信息和资源。v使现有业务数据和系统成为可提供利用的网络资源。v为某一特定业务用的定制的功能和能力来增强现行桌面工具和应用程序。v改变和发展基于网络的系统以反映新的拓扑结构或新资源。CORBA增强了分布式计算 CORBA用如下手段增强分布式(客户机用如下手段增强分布式(客户机/服务器)计算服务器)计算v允许客户机与服务器间灵活变化的关系v支持同步及异步两种通信形式v加入一个称为代理器的中介v允许服务器有多个进程v支持同步及异步两种通信形式允许客户机与服务器间灵活变化的关系q在
3、传统的客户机/服务器术语中,客户集合服务器间的关系是固定的,也就说,客户机总是提供一个执行任务的请求,而服务器总是完成所请求的任务。qCORBA允许这种固定的关系,同时也允许更灵活的关系。实际上,在CORBA内,某个软件可以作为客户机提出一个请求,但同时也可能是下一个请求的服务器。这种灵活的关系是CORBA的面向对象方法的副产品。加入一个称为代理器的中介代理器的加入带来了几个进步:vCORBA客户机和服务器无须直接了解对方vCORBA并不要求客户机和服务器之间是一对一的关系。vCORBA客户机应用程序能在运行时定位新的对象与服务器并与之交互。加入代理器允许服务器有多个进程允许服务器有多个进程q
4、在传统的客户机/服务器环境里,开发者认为客户机与服务器都是单个进程。这在CORBA中并没有必要。q在CORBA中,虽然典型的客户机依然是单个进程,但服务器可以是单个进程也可以不是。支持同步及异步两种通信形式支持同步及异步两种通信形式q同同步步通通信信是指一个软件向另一个软件发送消息,然后等待回答。q异异步步通通信信是指一个软件向另一个软件发送消息,然后继续工作,期待迟些时候会有回答。CORBA把自己的异步通信形式称为延迟同步(deferred synchronous)。CORBA对异步通信的定义实际上是轮询模型(polling model),客户机在此模型重要查询一个操作是否完成。CORBA还
5、定义了一个单向请求(one-way request),即应用程序无需等待请求的完成,也没有返回参数 对象模型vOMG在Object Management Architecture Guide中定义的对象模型描述了对象外部特征的标准语义,其中对象、类型、操作、属性、对象实现等语义与Java、C+、Eiffel等面向对象程序设计语言十分相近。v在该模型中,客户程序通过一个由IDL书写的接口向服务对象提出服务请求。v在OMG的对象模型中,对象可以被创建或撤销。但从客户程序的角度看,并没有什么特别的机制用于创建或撤销对象,对象创建与撤销只是发出请求的结果。客户程序通过对象引用指称新创建的对象。CORB
6、A结合对象模型的优点v由于CORBA使用了对象模型,CORBA把CORBA系统中的所与应用程序都看成是对象及其相关的操作的集合。v网络中底层应用程序所在的位置及其运行的操作系统对客户机来说是透明的。CORBA的面向对象模型提供了许多优点,使应用程序更容易集成到一个分布式系统中。CORBA使用CORBA的面向对象体系结构和方法的一些优点使我们能够实现以下功能:1.在创建系统是使用面向对象设计技术2.重用更多的软件3.使用熟悉的编程语言 CORBA在CORBA系统中,分布式计算和对象模型的结合实现了相互促进。表现在以下两个方面:v分布式计算方面的增强v对象模型方面的增强CORBAv分布式计算方面的
7、增强n对分布式计算环境,CORBA在环境中加入了特定对象的引用。在CORBA中,要完成某个操作,所需要做的仅仅是请求某个有能力完成该操作的对象去完成它。v对象模型方面的增强n对于对象模型,CORBA加入了代理器的概念。代理器使应用程序不需要知道对方在网络上哪个地方和对方是如何工作的就可以进行交互。客户机向代理器发送一个请求,要求在一个对象上执行某个操作。只有代理器需要知道CORBA服务器和客户机在网络上的位置。CORBA体系结构CORBA特点CORBA在在提提高高组组件件重重用用性性、增增强强分分布布计计算功能方面具有的突出特点:算功能方面具有的突出特点:引入对象请求代理ORB;客户程序与服务
8、器程序完全分离;与面向对象的建模概念相结合;引入接口定义语言IDL描述服务对象功能。CORBA和SUNn因为Sun是OMG的创始成员,CORBA标准中的许多内容(例如IDL标准、IIOP标准)是以SUN公司提交的方案为核心制定的,所以nCORBA技术与Java技术存在天然的联系。EJBnSUN公司的Enterprise JavaBeans(EJB)是一个开发和部署分布式服务器端的、带事务处理的、安全的商业组件的规范和结构,软件厂商根据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。Enterprise JavaBeans体系结构 EJBn它具
9、有以下优点:nEJB模型在应用系统业务逻辑和系统功能之间定义了清晰的分界,应用系统开发者只需要关注应用系统本身的业务逻辑,而复杂的低层事务处理、对象持久性、多线程、安全性、资源缓冲池和其它复杂的低层API的详细信息及远程通讯等的管理则交由EJS(Enterprise Java Service)管理。平台独立:能够开发一次,然后在多个平台上展开,不需要重新编写或进行源代码修改。中间件独立:通过使用不同供应商工具的组合构件开发,使建立分布式应用程序成为可能。体系结构独立:体系结构不是在开发时确定的,而是在开发以后的展开时确定.Microsoft的DCOMv目前,Microsoft的分布式组件对象模
10、型DCOM 仅运行于两种操作系统之上:Windows 9X 和Windows NT4。Microsoft 正 在 与 第 三 方 开 发 商 协 作,以 将DCOM 移到其它的操作系统上(包括MVS 和几种UNIX 操作系统)。v 象CORBA 一样,DCOM 是 独 立于语言的,它用Microsoft 的对象描述语言(ODL)通过接口对对象加以描述。COM和DCOMnCOM和DCOM(Distributed Component Object Model)是微软公司提出的组件标准及实现,它使开发人员可以利用COM的通讯机制组装不同开发商提供的组件。vCOM的核心是一组应用程序调用接口(API)
11、,该接口提供了创建组件、组装组件的方法。vDCOM是微软为支持网络环境而对COM进行扩充的结果,它的目标与CORBA类似,都是为了支持不同结点上、不同操作系统、由不同语言实现的对象进行互操作。微软提出DCOM作为未来的Internet计算的模型。组件对象模型(COM)组件对象模型Component Object Model(COM)出发点(定义):v让软件系统S由组件组件C1,C2,组成(COM object)v这些组件C不一定是专门为S所设计的,有些在S之前已存在为这系统所设计的组件将来可被其它系统所用,将来设计的组件还可用来扩充系统S的功能,不需重新编译链接.v组件的内部改变不影响其所参与
12、的系统的功能COM对象COM:v给出了一个关于什么能被称为组件(COM 对象)的规定v提供了一种以系统软件形式存在的基础设施,使得满足其规定的组件能够“互操作”(interoperate).COM对象 多界面(interface),每个界面包含一组方法每个界面有两个名字,一是供程序员识别(如LookUpWord),二是GUID(Globally Unique Identifier,128位),特殊生成,供计算机使用.界面通常由Microsoft的IDL(界面描述语言)描述一旦在发布的软件中实现,界面就再不许修改.每个组件必须实现界面 IUnknown,其它界面必须从它继承.COM对象界面界面界
13、面OMG组织vOMG于1997年月发布的OMA 1997取代了早期(1990年11月)的OMA 1990,该指南定义了面向对象分布式应用程序的总体框架OMA,并介绍了OMG的技术目标与规范制订过程。vOMA是所有CORBA相关规范的概念模型基础。CORBA产品一览n自从CORBA规范颁布后,许多公司推出了遵从CORBA规范的产品,产生了一定的影响。主要产品有:n1)IONA公司的公司的OrbixnIONA 公司是目前最大的CORBA系统软件和服务提供商,其标志产品Orbix是一个基于库的CORBA规范实现,支持Windows、OS/2、各种UNIX等20余种操作平台。它提供了C+语言映射器和C+代码产生器,最近又推出了Orbix的Java版本OrbixWeb。n网址:http:/ JavaBean)是一种面向企业应用,基于Java平台的服务器端标准构件体系结构,用于使用Java程序设计语言建立平台无关的、分布式对象源及面向事务的业务应用系统。主要参考书目1.The Object Management Group,The Common Object Request Broker:Architecture and Specification,Version 2.4.2,2000 2.CORBA企业解决方案,北京:机械工业出版社,2001 3.COM原理THE END!
限制150内