# Using the Real-time Extension in CIAO

### Abstract

The real-time extension support in CIAO enables application developers to deploy real-time applications by specifying real-time configurations as XML descriptors without modifying the component implementation. In fact, embedding the real-time configuration policies in component implementations decrease the reusability of the software components. Different types of real-time policy can be applied at different stage of the component development lifecycle, e.g.,

- Component implementation
- Component packaging
- Application composition
- Target platform configuration
- Deployment configuration

Real-time policies can also be applied to various scope in an applications, e.g., many real-time policies can be associate with some or all of the following ORB mechanisms:

- ORBs
- POAs
- Threads
- Object references

### CIAO's Real-time Extension

CIAO extends CCM's assembly descriptor to support the specifications of real-time policies. This mechanism allows you to allocate resources that are global to a RTComponentServer and to define real-time policies required by a component installation. Currently, CIAO support configuration of certain real-time policies at the POA level, i.e., in CCM's terminology, the container level. These policies include:

1. Priority Model Policy
2. Threadpool Policy
3. Banded Connection Policy

The kind of resources that are global to a RT component server that CIAO real-time extension specifies include:

1. Threadpool
2. Threadpool with lanes
3. Connection bands

### Using the CIAO Real-time Extension

Application developers can define the aforementioned Real-Time extension Descriptor (.rtd file) that CIAO defines to allocate resources and specify real-time policies. The Document Type Definition (DTD) for the real-time extension description is defined in this file. Each .RTD file specifies the required resources and the policy definitions within a RTComponentServer. A RTComponentServer can be associated to a .RTD file. This is done by using the "extension" element with "class" attributed set to "RT-CAD-EXT", within a processcollocation or hostcollocation element. Here is an example: `

      <processcollocation>
        .
        .
        .
       <extension class="RT-CAD-EXT" origin="CIAO">somefile.rtd</extension>
        .
      </processcollocation>

` Each .RTD file contains the two major subelements:

- <rtresources>: defines all the RT resources the assciating RTComponentServer should provide.
- <rtpolicysets>: defines named collections of policies (<rtpolicyset>) that apply to component installations in the RTComponentServer.

The <rtpolicyset>'s defined in the .RTD file can be associated to a component installation, i.e., a component placement within the RTComponentServer to which the .RTD file is associated. For example, `

       <homeplacement>
         .
         .
         ,
        <extension class="RT-POLICY-SET"
                     origin="CIAO">A_POLICY_NAME</extension>
         .
       </homeplacement>

`

### Future Addition

As mentioned earlier, RT policies can be applied at various stages of component-based deployment lifecycle and at different scope. For example, applying RTpolicies at the ORB level, or at the object reference level of a component receptacle. These extensions involve at least, extending the "appropriate" XML descriptor definition and extending the CIAO runtime, including core and/or the CIDL generated code to configure the policies. How other RT-related policies can be added will be reviewed in my thesis available shortly.

Last modified: Sun Nov 30 19:23:25 Mountain Standard Time 2003