# CIAO - Component-Integrated ACE ORB

## Introduction

CIAO is TAO's implementation of CORBA Component Model (CCM) specially optimized for distributed real-time embedded (DRE) systems. This page contains links to other documents and resources for building and using CIAO.

## The CIAO Project

- The main CIAO project page.
- Installation instructions for CIAO
- CIAO Status (aka. release notes.)
- CIAO CIDL Compiler Options
- CIAO Environment Variables
- CIAO Logging Facility
- CIAO NEWS

## CCM-defined Interface Diagrams

Here is a set of UML diagrams that we use to figure out the relationship among all the different interfaces in CCM. You can browse the related part from the following list:

- Basic component interfaces
- Home and configuration interfaces
- Basic container interfaces
- Extended container interfaces
- Deployment and configuration (DAnCE) interfaces

All these diagrams are generated from the CCM.vsd Visio file (The same file in Visio V.5 format is here.) and OpenOffice source file DAnCE-Dynamic.sxd

## CIAO's D&C Framework (DAnCE) part-by-part

DAnCE's implementation is based on the OMG's Deployment and Configuration Specification version [ptc/2003-07-08]. Here is a list of the major actors of CIAO runtime that a user should be aware of.

- NodeManager: A daemon process responsible for managing NodeApplications that reside in the same physical node.

- NodeApplicationManager: A infrastructure component responsible for deploying locality-constrained applications onto a node. A NodeApplicationManager is usually created by NodeManager.

- NodeApplication: A component server instance spawned by NodeApplicationManager.

- ExecutionManager: Infrastructure component responsible for executing an component-based DRE application based on the information from DeploymentPlan.

- DomainApplicationManager: Domain-oriented auxiliary component created and used by ExecutionManager to deploy the component-based DRE application at the domain level.
- PlanLauncher: Executor component responsible for parsing the XML-based deploymentplan and passing the plan to ExecutionManager for execution.
  To understand the runtime inter-relationships of various CIAO actors, you may click here to see a sequence diagram that gives you a clear representation of what's happening when you start a DAnCE-based DRE application. Special thanks to Friedhelm Wolf who initiated and contributed most part of this diagram.

## CIAO CCM tutorials

There are several tutorials to help you understand CIAO and CCM:

- Tutorial on the CORBA Component Model (CCM). This tutorial presents an overview of the CORBA Component Model (CCM), describing its key features and illustrating how to write CCM applications in C++.

- `$(CIAO_ROOT)/DAnCE/examples/Hello.` This example illustrates how to build and deploy a CIAO based application step-by-step. There is also a detailed documentation explaining this example avalable in both PDF and PowerPoint format.
- $(CIAO_ROOT)/docs/tutorials/Quoter/Simple. This example illustrates the implementation of the "famous" Quoter example in the CIAO world. Please refer to README for more information.

- $(CIAO_ROOT)/docs/tutorials/COSMIC/. This is a step-by-step tutorial on how to use CoSMIC to generate deployment descriptors requied by the above Quoter example