构件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户
的内部操作细节。这个封装体就常常地被称作构件。构件是可复用的软件组成成份,可被用来构造其他软件。它可以是被封装的对象类、类树、一些功能软件工程中
的构件模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。
构件模型是对构件本质特征的抽象描述。已形成三个主要流派,分别是 OMG(Object Management
Group,对象管理组织)的CORBA(Common Object Request Broker
Architecture,公共对象请求代理体系结构)、Sun的EJB(Enterprise
JavaBean,企业级Java组件)和Microsoft的DCOM(Distribute Component Object
Model,分布式构件对象模型)。这些实现模型将构件的接口与实现进行了有效的分离,提供了构件交互的能力,从而增加了重用的机会,并适应了目前网络环
境下大型软件系统的需要。 (1)CORBA
CORBA体系结构是OMG为解决分布式处理环境中硬件和软件系统的互连而提出的一种解决方案,OMG是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
CORBA 的核心是对象请求代理ORB(Object Request
Broker,对象请求代理),它提供对象定位、对象激活和对象通讯的透明机制。客户发出要求服务的请求,而对象则提供服务,ORB把请求发送给对象、把
输出值返回给客户。ORB的服务对客户而言是透明的,客户不知道对象驻留在网络中何处、对象是如何通讯、如何实现以及如何执行的,只要他持有对某对象的对
象引用,就可以向该对象发出服务请求。 CORBA使用IDL(Interface Description
Language,接口定义语言)用于描述组件将呈现出来的接口。CORBA又规定了从IDL到特定程序语言,如C++或Java,实现的映射。这个映射
精确的描述了CORBA资料类型是如何被用户端和服务器端实现的。标准映射的有Ada、C、C++、Smalltalk、Java、以及Python。
(2)EJB
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序。凭借Java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。
EJB又可分为会话Bean(Session Bean),实体Bean(Entity
Bean)和消息驱动Bean(MessageDriven Bean)。 Session
Bean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session
Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。
Entity
Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity
Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity
Bean时,容器会自动将Entity Bean的状态和数据库同步。 MessageDriven
Bean是EJB2.0中引入的新的企业Bean,它基于JMS(Java Message
Service,Java消息服务)消息,只能接收客户端发送的JMS消息然后处理。MDB(MessageDriven
Bean,消息驱动Bean)实际上是一个异步的无状态Session
Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间
的等待一个方法调用直到返回结果。
DCOM是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。Microsoft的DCOM
扩展了COM(Component Object
Model,组件对象模型技术),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,你的应用程序就可以在
位置上达到分布性,从而满足你的客户和应用的需求。 (3)COM/DCOM/COM+ Microsoft的COM定义了构件和它们的客户
之间互相作用的方式,使得构件和客户端无需任何中介构件就能相互联系。DCOM扩展了COM,使其能够支持在局域网、广域网甚至Internet上不同计
算机的对象之间的通信。使用DCOM,应用系统就可以在位置上达到分布性,从而满足客户和应用的需求。因为DCOM是COM的无缝扩展,所以可以将基于
COM的应用、构件、工具和知识转移到标准化的分布式计算领域中。在做分布式计算时,DCOM处理网络协议的低层次的细节问题,从而使开发人员能够集中精
力解决用户所要求的问题。DCOM具有语言无关性,任何语言都可以用来创建
COM构件。 DCOM具有位置独立性,也就是说,DCOM使得构件的位
置对用户来说完全透明,用户无需知道构件的具体位置,无论构件是位于客户的同一个进程中,还是位于地球的另一端。在任何情况下,客户连接和调用构件的方法
都是一样的。DCOM不仅无需改变源码,而且无需重新编译程序。仅仅使用一个简单的再配置动作,就可以改变构件之间相互连接的方式。
COM+并不
是COM的新版本,我们可以把它理解为COM的新发展,或者为COM更高层次上的应用。COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有
内容。COM+倡导了一种新的概念,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,
把所有组件的底层细节留给操作系统。
COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现,已经成为Microsoft
系统平台策略和软件发展策略的一部分。COM+继承了COM几乎全部的优势,同时又避免了COM实现方面的一些不足。COM+紧紧地与操作系统结合起来,
通过系统服务为应用程序提供全面的服务。