2. 构件体系结构
构件安装在哪里?CORBA构件容器(container)提供了一个健壮持久的、事务化的、安全的、分布的事件处理机制来安装和存放构件,构件如果存放在每一个客户端必然会“超重”,因此只需要为服务器一侧编写基于CCM的构件。客户一侧的应用可以由CORBA对象组成和划分模块,但是它不需要包含CCM构件。
服务器端构件
与客户端的GUI构件相比,服务器端构件是一个新的软件商品。服务器端的构件运行环境称为“容器”,它用两个主要的服务支持构件的安装:
首先,容器提供构件的企业服务:构件状态的一致性;事务性;安全性和事件处理,这样做使得CCM构件的编程更加容易,因为这些服务的形式是运行时型(run-time)而非代码时型(coding-time),通过高层接口存取CCM生成的代码。
其次,容器管理服务器端资源、主要的内存和CPU存取,方法是构建开发者选择的模式,激活和休眠构件的代码。这样允许应用CCM应用提供Internet点击率(企业级实例的数目)服务,也就是说CCM应用具备伸缩性。
3. CORBA和CCM构件技术
开放的CCM规格说明是OMG的构件模型,用于开发商创建服务器端的企业级应用。除了以CORBA为基础之外,CCM还使用了Enterprise JavaBeans(EJB)的基础体系结构。CCM的扩充使得Java超出了程序设计语言的范畴,它使得构件创建者不再花费大量的时间到应用框架环境的复杂特性上,千辛万苦的结果却是一个锁定在特定技术的应用软件,CCM让软件人员创建可迁移的、可复用的软件构件。CCM规格说明要求应用服务器提供基于CCM构件依赖的宿主服务,它也使得应用服务器开发商能够提供构件驻留环境是一个健壮的、可伸缩的、安全的以及事务化的环境,由于这些服务是用OMG的接口定义语言IDL 描述CORBA技术的接口,因此不会限定在任何应用服务器提供商的实现技术。CMM构件原则上可以用与IDL之间存在特殊映射(由OMD定义)的程序设计语言实现,目前C++和Java都扩展实现了特定CCM IDL映射。
CORBA技术是流行的电子商务应用构建环境,CORBA services在容器中定义了大量的类,把分布式环境扩充成为企业级应用。CCM的CORBA基础包括:OMG接口定义语言(OMGIDL,是ISO标准),对象和参数的强类型(集成到Java和C++的类型系统),无缝的跨网络平台异常处理,以及对多线程的支持。
下面介绍实现语言的有关情况。CORBA是一个多语言环境。CMM标准指定的所有的服务器端服务都通过OMG IDL接口提供。虽然OMG IDL可以映射到八种程序设计语言,但是CCM扩展部分到目前只映射到两种语言:Java和C++,也就是说,在CORBA构件可以用这两种语言的一种编写,而在CCM客户端可以用C、C++、Java、Ada、COBOL、Smalltalk、Lisp、PL/1,或者脚本语言Python和IDLscript编程,客户可以用这些语言直接调用CCM服务器的操作。
下面介绍Enterprise JavaBeans的集成情况。CCM规格说明从两个层次定义构件:基本部分和扩充扩充。基本CCM构件和EJBs 版本1.1的功能完成相同,扩充的CCM构件增加了大量的功能,包括事件处理、多接口和导航、分段的持久性等等。基本的构件环境利用了EJB的并行能力,EJBs之间的互操作性通过IIOP实现,它所定义的环境使EJBs和CCM构件组装成集成应用。
CORBA规范中和构件相关的部分是:
- Corba IDL定义构件接口
- 基本Corba客户端—构件模型
- IIOP为不同Corba供应商提供互操作性的标准;
- Life Cycle Service定义构件如何实例化;
- Naming Service定义如何共享构件实例;
- Security Service定义客户段和构件实例共同工作的安全性;
- Transaction Service, 定义如何控制分布式事务;