TAO(The ACE ORB)简介
TAO是一种开源的CORBA的实现。它是基于对象管理组织(OMG)标准CORBA参考模型,并通过自适应通讯环境(ACE)提供的软件概念和框架构建而成。这是一项中间件技术,这种技术使通用网络编程任务自动化,包括以下方面:
1.注册,定位和激活;
2.对象请求的多路分发;
3.分帧及错误处理;
4.参数编码和解码;和
5.操作的多路分解
ACE/TAO的实现语言是C和C++。用ACE/TAO构建服务器和客户端的过程超出了本指南的范围,但有几个概念还是值得重提:
1. 接口(Interface)定义在OMG 标准的.idl文件中。用TAO_IDL实用程序,TAO可以自动通过.idl文件生成C++的静态存根(stubs)和框架(skeletions),二者分别用于服务器端和客户端.
2.程序员实现在生成的I.cpp静态存根中的接口,再使用惯用的CORBA技术来编写客户端和服务端的代码来进行实现。
3. ACE/TAO提供了一个make实用程序,这个实用程序可以跨平台的管理项目的创建和编译。程序员编写的.mpc文件,定义了所创建的项目所需的源代码,Perl语言脚本创建makefile文件或Visual Sutdio的解决方案。在Linux上,可以生成GC++项目,命令是 mwc.pl -type gcace。在Windows上,产生Visual studio.net 2003解决方案的命令是:mwc.pl -type VC71
CIAO(Component-Integrated ACE ORB)简介
组件整合的ACE ORB(Component-Integrated ACE ORB -- CIAO)是建立在TAO基础上的CORBA 组件模型(CORBA Component Model - CCM)的具体实现。CIAO目前的目标是为开发者提供分布、实时、嵌入式面向组件系统的范例,它将分布式实时嵌入系统的系统特征因素(DRE-critical systemic aspects),例如QoS的要求、RT策略,抽象成组件框架支持的可安装可配置的单元。将这些特征和要求提升为第一层的元数据,将应用系统逻辑中这些非功能性方面的代码分离出来,使得DRE系统的开发更加灵活。同时,因为支持各种各样的非功能性方面的机制很容易被识别出来,因此CIAO同样使得配置和管理系统特征和要求变得更加简单。
CIAO 系统架构图如下:
CIAO将会成为由CoSMIC 支持的缺省的平台具体化模型。CoSMIC是支持一系列模型整合计算(MIC)和OMG的模型驱动架构(MDA)的一系列工具。因为很多的非功能性方面能够通过以组件元数据的方式来定义和实现,因此CoSMIC可以很容易并且很正确地实现这些非功能性需求,而不必去过多担心分布式实时嵌入系统非功能性代码正确性的验证问题。
CoSMIC和CIAO的结合给下一代软件开发提供了一个很好的范例。
文档
介绍
CIAO是TAO的CORBA组件模型(CCM)的实现,特别对分布式实时嵌入式系统进行了优化。这一页中包含了使用CIAO的一些文档和资源的链接。
CIAO项目
- CIAO项目主页
- 项目状态
- 实现新的组件页中解释了当实现一个组件时所有的用户定义的由工具生成的文件的意义
- 我们所知道的需要做的事情列表
- 配置名字/值列表。此列表列举了CIAO将传入各种不同CCM机制的所有的配置值。这一页中的信息对CIAO的最终用户来说是不可见的,最终用户页包括模型工具的开发者。这些信息对大多数用户有影响的方面是这些配置信息如何表示成各种各样的XML描述和CIDL规范。
- CIAO使用一些环境变量来管理内部的行为。
CCM-defined Interface Diagrams
这里有一些UML图,我们用这些图表示了CCM中不同接口间的关系。可以从下面的链接浏览相关的部分。
- 基本组件接口
- Home接口和配置接口
- 基本容器接口
- 扩展容器接口
- 发布和安装接口
所有这些图都是从CCM.vsd VISIO文件中生成的
CIAO part-by-part
下面这个列表是用户应该了解的CIAO的主要组成部分。
- Daemon:一个CIAO的Daemon是每个主机一个的Daemon进程,它的功能是用来创建和产生ComponentServer。
- ComponentServer:ComponentServer是CIAO的核心部分。它负责组件/Home的创建。
- AssemblyDeployer:AssemblyDeployer负责开启组件编译的过程。
- AssemblyManager:AssemblyManager是组件编译过程的核心部分。
- Static Configurator:CIAO的Static Configurator扮演一个预处理器的角色,讲XML描述的文件解析成主应用能够理解的中间语言。这减少的静态编译应用程序的初始化时间。其主要目标是RTOS,就像VxWorks一样,但是因为需要共享对象或DLL而缺乏灵活性。
CIAO CCM tutorials
这里有一些用户指南可以帮助你理解CIAO和CCM:
- CORBA Component Model(CCM)用户指南。这个用户指南提供了一个CORBA对象模型的概述,描述了CCM的关键属性并举例说明了如何在C++中编写CCM应用。
- $(CIAO_ROOT)/docs/tutorial/Hello. 这个例子显示了CIAO中组件/组件HOME的创建和删除的底层信息。
- $(CIAO_ROOT)/examples/Hello. 这个例子描述了如何一步一步地创建一个基于CIAO的应用。这个例子的细节文档同样有PDF格式和PowerPoint格式。