CIAO (Component-Integrated ACE ORB)


(来源:http://www.intec.com.cn/cooperate/ciao/main10.htm)

概述

组件中间件技术通过更高层次的抽象定义弥补了面向对象中间件技术的一些缺陷,因而在过去的几年中得以广泛流行。通过这种抽象技术,组件模型定义了组件得虚拟边界、定义了组件的发布方法以及组件是与其他组件和客户端进行交互方式。同时,组件中间件的定义也支持运行时环境、封装和发布的机制和标准,所有的这些机制和标准都使得了软件组件的重用变得更加得简单。
使用组件中间件,系统可以使用一种"装配的"方式来搭建,而不是使用传统的工程方法。由此,我们可以在系统生命周期中辨别出系统开发者的不同的角色,他们是:

  • 组件设计者(Component Designer):通过定义组件提供的和依赖的接口来定义组件的功能。
  • 组件实现者(Component Implementer):在组件设计者定义的组件接口的基础上完成组件的内部实现。
  • 组件封装者(Component Packager):将组件和他们的缺省属性封装到软件包中。
  • 组件组装者(Component Assembler):定义如何从组件库中选择相关的组件并将他们组装起来形成系统。
  • 系统发布者(System Deployer):定义组装的系统应如何发布,如组成系统的组件服务器的分配等。

组件整合的ACE ORB(Component-Integrated ACE ORB -- CIAO)是建立在TAO基础上的CORBA 组件模型(CORBA Component Model - CCM)的具体实现。CIAO目前的目标是为开发者提供分布、实时、嵌入式面向组件系统的范例,它将分布式实时嵌入系统的系统特征因素(DRE-critical systemic aspects),例如QoS的要求、RT策略,抽象成组件框架支持的可安装可配置的单元。将这些特征和要求提升为第一层的元数据,将应用系统逻辑中这些非功能性方面的代码分离出来,使得DRE系统的开发更加灵活。同时,因为支持各种各样的非功能性方面的机制很容易被识别出来,因此CIAO同样使得配置和管理系统特征和要求变得更加简单。
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格式。

    获得

    欢迎来到ACE、TAO和CIAO的下载页面。

    • ACE是一个开源的框架,提供了开发高性能、分布式实时嵌入式系统的组件和模式。ACE提供了强大而高效的sockets,信号分离循环,线程技术和同步技术的抽象封装。
    • TAO(The ACE ORB)是在使用ACE框架内的组件和模式构建的CORBA Object Request Broker(ORB)实现。TAO是开源的项目。
    • CIAO(Component Integrated ACE ORB)是在TAO的基础上实现的CORBA对象模型(CCM)。CIAO同样也是开源的。

    Downloading Freely Available Versions of ACE, TAO, and CIAO
    ACE,TAO和CIAOrelease版本和beta版本的开发和发布过程在DOC group的development and release process文档中有详细描述。请查看该文档,以决定那个版本更适合你的情况。在你作出这些决定时,也可以参考DOC group的BUG修改策略(bug fixing policies)。

    最近的Beta工具包。最新版本的ACE,TAO和CIAO的工具包请在下面下
    Filename Description Download
    ACE+TAO+CIAO.tar.gz ACE+TAO+CIAO (tar+gzip format)
    [HTTP] [FTP]
    ACE+TAO+CIAO.tar.bz2 ACE+TAO+CIAO (tar+bzip2 format)
    [HTTP] [FTP]
    ACE+TAO+CIAO.zip ACE+TAO+CIAO (zip format)
    [HTTP] [FTP]
    ACE+TAO.tar.gz ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE+TAO.tar.bz2 ACE+TAO (tar+bzip2 format)
    [HTTP] [FTP]
    ACE+TAO.zip ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-html.tar.gz Doxygen documentation for ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-html.tar.bz2 Doxygen documentation for ACE+TAO (tar+bzip2 format)
    [HTTP] [FTP]
    ACE-html.zip Doxygen documentation for ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE.tar.gz ACE only (tar+gzip format)
    [HTTP] [FTP]
    ACE.tar.bz2 ACE only (tar+bzip2 format)
    [HTTP] [FTP]
    ACE.zip ACE only (zip format)
    [HTTP] [FTP]

    各个工具包的补丁同样可以在这里找到。

    最新的发布版本。最近发布的是ACE 5.4,TAO 1.4,和CIAO 0.4(ACE+TAO+CIAO x.4),请使用下面的链接来下载。
    Filename Description Download
    ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz ACE+TAO+CIAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4+TAO-1.4+CIAO-0.4.zip ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4+TAO-1.4.tar.gz ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4+TAO-1.4.zip ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4-html.tar.gz Doxygen documentation for ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4-html.zip Doxygen documentation for ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4.tar.gz ACE only (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4.zip ACE only (zip format)
    [HTTP] [FTP]

    最新的BFO Beta版本。相应与最新发布的ACE5.4和TAO1.4和ACE5.4.1和TAO1.4.1(ACE+TAO x.4.1),的BFO beta版本的链接如下:
    Filename Description Download
    ACE-5.4.1+TAO-1.4.1+CIAO-0.4.1.tar.gz ACE+TAO+CIAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4.1+TAO-1.4.1+CIAO-0.4.1.zip ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4.1+TAO-1.4.1.tar.gz ACE+TAO (tar+gzip format)
    ACE-5.4.1+TAO-1.4.1.tar.gz ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4.1+TAO-1.4.1.zip ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4.1-html.tar.gz Doxygen documentation for ACE+TAO (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4.1-html.zip Doxygen documentation for ACE+TAO (zip format)
    [HTTP] [FTP]
    ACE-5.4.1.tar.gz ACE only (tar+gzip format)
    [HTTP] [FTP]
    ACE-5.4.1.zip ACE only (zip format)
    [HTTP] [FTP]

    老版本的ACE+TAO可以在这里下载。这个链接有一些以前的主要版本和小版本发布。这个链接包含了ACE+TAO-5.2+1.2版本的所有的发布和beta发布版本。
    ACE+TAO+CIAO的其他资源

    • 下载ACE+TAO的镜像站点(Denmark)。
    • ACE+TAO CVS库请参看这里
    • 访问OCI的匿名cvs服务器
    • 稳定的ACE的商业支持版本请访问Riverace站点
    • 稳定的TAO的商业支持版本请访问OCI站点
    • 一些用户提供了一些可以自动下载、配置甚至编译的ACE或TAO的工具。
      • James CE Johnson 写了一个非常漂亮的perl脚本用以取得最新的ACE beta工具包和设置配置文件。
      • Ajit Sagar写了一个Bourne shell script来在UNIX机器上自动下载和安装ACE。

        编译

        安装CIAO所要做的第一件事情是设置环境变量CIAO_ROOT为$TAO_ROOT/CIAO。请参考ACE Installation notesTAO Installation notes,其中分别对如何设置$ACE_ROOT和$TAO_ROOT进行了说明。
        CIAO被分成了几个部分,因此CIAO不同部分的安装和编译都有各自的要求。

        • 1. CIAO core/tools/examples:CIAO的这些部分包含了以下的一些目录:$CIAO_ROOT/ciao,$CIAO_ROOT/tools,$CIAO_ROOT/examples和$CIAO_ROOT下的所有目录,但是不包括下面两个栏目列出的目录。
        • 2. CIDL Compiler:CIAO的这个部分包括了$CIAO_ROOT/CCF和$CIAO_ROOT/CIDLC
        • 3. CIAO发布和装配框架:CIAO的这个部分包括了$CIAO_ROOT/DnC,我们现在正在完成这部分的实现工作。因此你现在可以忽略这个部分。
          Supported Platforms for CIAO


        下面这张表汇总了可以运行CIAO的平台:
        For CIAO core/tools/examples

        完全支持的平台
        (持续的测试和整日的运行)
        Solaris 2.5, 2.6, 7, and 8, Windows NT/2000/XP (6.x, and 7.1 and Borland C++ Builder 4, 5, and 6), Linux/Intel, Linux/Alpha, VxWorks, LynxOS, Digital UNIX 4.0 and 5.0, IRIX 6.x, 和 QNX Neutrino 2.0
        几乎完全支持的平台
        (周期性测试)
        Windows 9x/ME, HP/UX 10.x and 11.x, AIX 4.x
        部分支持的平台
        (非经常性测试)
        FreeBSD, NetBSD, SunOS 4.x, Chorus
        计划支持的平台 pSoS, MVS, Windows CE, Tandem, SCO, UnixWare

        任何UNIX/POSIX/Win32的变种平台都是ACE的潜在目标平台。如果你有移植问题或在上面描述的平台上编译ACE wrappers有任何问题请给ACE Newsgroup或ACE mailing list发送email。我们将尽快给你解决这些问题。你也可以在bug tracking system中提交错误报告或进一步的需求。
        CIAO可以在网上自由下载ACE是与TAO与CIAO一同发布的。你也许总是需要最近的ACE版本,因为CIAO是紧密跟踪ACE和TAO的变化的。

        Install CIDL Compiler
        你可以选择从这里下载cidlc的应用程序或者自己编译它。
        在Linux上有三种方法编译CIDL:
        1. 使用GNU Make工具。具体细节请见Build.html
        2. 使用ACE Make工具

        • 安装boost_filesystem,boost_regex和Utility Library。具体细节请见Build.html
        • 在 $CIAO_ROOT/CCF 和 $CIAO_ROOT/CIDLC目录下分别键入make。

        3. 使用MPC

        • 安装boost_filesystem,boost_regex和Utility Library。具体细节请见Build.html
        • 在 $CIAO_ROOT/CIDLC 目录下运行 $ACE_ROOT/bin/mwc.pl CIDLC.mwc
        • 在 $CIAO_ROOT/CIDLC 目录下执行make.

        注意:链接时间有点长(在XEON1.90GHZ CPU上,时间超过5分钟,请耐心等待)
        在Windows上有两种方法编译CIDL
        1. 使用已经提供的Visual Studio的项目文件,细节请参看Build.html。
        2. 使用MPC:(暂时还不支持)

        Install CIAO core/tools/examples
        CIAO要求用户使用MPC来生成makefile、项目文件或Solution files。
        注意:如果使用提供的Makefile或项目文件来编译ACE/TAO,所有生成的库文件都将被放在$ACE_ROOT/ace目录下。但是,MPC会在$ACE_ROOT/lib目录下寻找这些库文件,因此,你需要将这些生成的库文件从$ACE_ROOT/ace目录拷贝到$ACE_ROOT/lib目录中。
        要编译CIAO核心/工具/示例前:
        1. 确认ACE和TAO已经编译。


        2. 确认所有的ACE、TAO和其他的生成的库文件都在$ACE_ROOT/lib目录下。编译CIAO需要:

        • ACE
        • TAO
        • TAO_IDL
        • IFR_Client
        • IROTable
        • Valuetype
        • Security
        • ACEXML

        3. 确认在$CIAO_ROOT/bin木犁下有cidlc或cidlc.exe文件,并且其权限是可执行的。
        4. 生成MakeFile文件、Solution文件或项目文件并编译。
        所支持的编译工具,请参看MPC manual。
        如果你指向大致了解CIAO并且编译例子,请在下列目录中执行MPC命令:

        • $CIAO_ROOT/ciao
        • $CIAO_ROOT/tools
        • $CIAO_ROOT/examples

        Linux平台上:
        现在上述目录下执行$ACEROOT/bin/nwc.pl,然后make
        Windows/VC6:
        执行$ACEROOT/bin/nwc.pl,在VC6中打开工程文件,然后编译。
        Windows/VC7:
        执行$ACEROOT/bin/nwc.pl,在VC7中打开工程文件,然后编译。
        Windows/VC71:
        执行$ACEROOT/bin/nwc.pl,在VC71中打开工程文件,然后编译。
        注意:在你不准备使用MPC编译CIDL时才运行nwc.pl。在这种情况下,你可以使用适当的参数来运行nwc.pl。