18
August 20, 2002 Applying RT-Policies in CORBA Component Model Nanbor Wang Department of Computer Science Washington University in St. Louis [email protected]

Applying RT-Policies in CORBA Component Model

  • Upload
    amalie

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Applying RT-Policies in CORBA Component Model. Nanbor Wang Department of Computer Science Washington University in St. Louis [email protected]. Overview. Component composition RTCCM overview Why, where, and how Iterate thru proposed RT Policies in CIAO - PowerPoint PPT Presentation

Citation preview

Page 1: Applying RT-Policies in  CORBA Component Model

August 20, 2002

Applying RT-Policies in CORBA Component Model

Nanbor WangDepartment of Computer ScienceWashington University in St. Louis

[email protected]

Page 2: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Overview

• Component composition• RTCCM overview

– Why, where, and how

• Iterate thru proposed RT Policies in CIAO– What is the right granularity to apply the policy?– When (or where) to specify– Use case scenarios where the RTCCM approach

will/will not work– Does RTCCM approach impose any restrictions

on component developers/system integrators?

Page 3: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Component Packaging

IDL/CIDL Compiler

UserCode

GeneratedCode

IDL

ComponentDescriptor

DefaultProperties

Compiler

SharedLibrary or

Executable

Packaging Tool

ComponentPackage

.zip

Page 4: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Component Assembly

PropertiesDeploymen

tTool

AssemblyArchive

.aar (ZIP)

Assembly Tool

ComponentPackage

ComponentPackage

ComponentPackage

PortConnections

InstanceCreation

...

Page 5: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Composition Example• Application server

– run-time management– service initialization

• CCM Assembly Archive– Assembly descriptor

• Install components– Component

implementations– Component

descriptors– Configuration

property files• Establish connections

Application Server

Motor

modulator

controller

contrl_panel

modulator

position

EmStop

Location

position

Proximity

EmStop

Proximity

EmStop

Motor

Event Channel

Page 6: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Component Compositions

• An assembly descriptor specifies what component implementations are needed by referring to their component descriptors

• A Component descriptor (.csd) records component features and dependencies to other software modules

<!– Associate components with impls --><componentfiles> <componentfile id="Motor"> <fileinarchive name="AB-motor.csd"/> </componentfile>

<componentfile id="Location"> <fileinarchive name="linear-encoder.csd"/> </componentfile>

<componentfile id="Proximity"> <fileinarchive name="p-switch.csd"/> </componentfile>

<componentfile id="controller"> <fileinarchive name="AB-panel-if.csd"/> </componentfile> </componentfiles>

Page 7: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Component Instantiations

<!– Instantiating component homes/instances -->

<partitioning> <processcollocation> ...

<homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> </componentproperties> </componentinstantiation> </homeplacement> ... </processcollocation></partitioning>

• An assembly descriptor specifies how homes and components should be instantiated

• A component property file (.cpf) can be associated with a home or a component instantiation to override default component properties

Page 8: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Connecting Components

Application Server

Motor

modulator

controller

contrl_panel

modulator

position

EmStop

Location

position

Proximity

EmStop

Proximity

EmStop

Motor

Event Channel

<connections> ... <connectinterface> <usesport> <usesidentifier>modulator</usesidentifier> <componentinstantiationref idref=“Controller"/> </usesport> <providesport> <providesidentifier> modulator </providesidentifier> <componentinstantiationref idref=“Motor"/> </providesport> </connectinterface> <connectevent> <consumesport> <consumesidentifier>EmStop</consumesidentifier> <componentinstantiationref idref="Controller"/> </consumesport> <publishesport> <publishesidentifier> EmStop </publishesidentifier> <componentinstantiationref idref="left"/> </publichesport> </connectevent> ...</connections>

• Assembly descriptors also specify how component instances are connected tegether

Page 9: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

RTCCM ≠ CCM + RTCORBA•Plain CCM has no mechanisms to specify and enforce RT policies

•RT policies need to be assured end-to-end for components & connections

•Trying to ensure RT policies are met in components leads to:– Tight couplings among

component implementations– Difficulty in reusing existing

components (without RT knowledge)

– Failure to utilize many RT mechanisms that go beyond component implementations•Component connections

–private connections–pre-connections

•Component collaborations–Thread pools–Thread borrowingRT Application Server (?)

Container

RT-ORB

CORBAComponent

ComponentHome

RTPOA

External

Interfaces

CallbackInterfaces

InternalInterfaces

Container

CORBAComponent

ComponentHome

RTPOA

External

Interfaces

CallbackInterfaces

InternalInterfaces

Why doesn't running a RTORB beneath CCM make

it an RTCCM implementation?

Page 10: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Real-time CCM (RTCCM)

• Abstracting RT CORBA related systemic (QoS) aspects– Specify RT policies of a

component instance– Specify RT policies of a

connection between components

– Allocating & computation and communication resources for components

– Specify sharing & collaboration of resources among components

– Configuring ORB with custom communication mechanisms and options

container

com

ponent

RT-ORB

container

com

ponent

OScustom

transport

Application Server

ORBPlugins

•Solution: Configure RT-policies/mechanisms using CCM’s metadata

Page 11: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

RTCCM Component Packaging

IDL/CIDL Compiler

UserCode

GeneratedCode

IDL

ComponentDescriptor

DefaultProperties

Compiler

SharedLibrary or

Executable

Packaging Tool

ComponentPackage

.zip

Page 12: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

RTCCM Component Assembly

PropertiesDeploymen

tTool

AssemblyArchive

.aar (ZIP)

Assembly Tool

ComponentPackage

ComponentPackage

ComponentPackage

PortConnections

InstanceCreation

...

ResourceAllocations

ORBExtensions

PriorityMappings

Page 13: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Component-Integrated ACE ORB (CIAO)

1.Component default priority model

2.Override component priority model

3.Priority level of a component instance

4.Defining thread pools5.Associate thread pools with

component instances6.Specify queuing policies7.Specify pre-connections8.Specify private connections9.Configure ORB components

•Custom protocols•Priority mappingsRT Application Server

Container

RT-ORB

CORBAComponent

ComponentHome

RTPOA

External

Interfaces

CallbackInterfaces

InternalInterfaces

Container

CORBAComponent

ComponentHome

RTPOA

External

Interfaces

CallbackInterfaces

InternalInterfaces

1

2

8

6

3

Thread Pool A

Priority30

Priority60

4

55

7

9

•CIAO’s will make RT policies an integral part of deployment metadata

Page 14: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

RTCCM Descriptor Examples

• Component default priority model

<corbacomponent> ... <ciao:prioritymodelpolicy name=“priority_model_policy" value=“SERVER_DECLARED” priority=“20”/> ... </corbacomponent>

<partitioning> <processcollocation> ... <homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> <ciao:rtprioritylevel value="60"/> <ciao:rtprioritymodel value="CLIENT_PROPAGATED"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> <ciao:rtprioritylevel value="60"/> <ciao:rtprioritymodel value="CLIENT_PROPAGATED"/> </componentproperties> </componentinstantiation> </homeplacement> ... </processcollocation></partitioning>

• Override component priority model

• Specify the priority level of a component instance

• Associate component instances with customized protocols

Page 15: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCMORB-level (component server instance)

Descriptors • Define thread pools• Plug in custom

protocol support• Define protocol

configuration• Plug in custom

priority mapping• Define priority-

banded connection policies

• Define QoS aggregates

<componentassembly> ... <partitioning> <ciao:createthreadpool id="tp_a" priority="30" number="10"/> <ciao:createthreadpoolwithlane id="tp_l"> <ciao:prioritylevel lane="30" number="3"/> <ciao:prioritylevel lane="60" number="3"/> <ciao:prioritylevel lane="80" number="10"/> </ciao:createthreadpool> <ciao:dependson type=“pluggable_protocol” id=“shmiop”/> <ciao:tcpprotocolproperties> <ciao:protocolproperties name=“no_delay” value=“true”/> <ciao:protocolproperties name=“send_buffer_size” value=“32768”/> </ciao:tcpprotocolproperties> <ciao:dependson type=“custom_priority_mapping” id=“lynxos_vme3”/>

Page 16: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

RTCCM Descriptor Examples (cont.)

<homeplacement id="ProximityHome"> <componentfileref idref="Proximity"/> <componentinstantiation id="left"> <componentproperties> <fileinarchive name="left-switch.cpf"/> <ciao:usethreadpool idref="tp_a"/> </componentproperties> </componentinstantiation> <componentinstantiation id="right"> <componentproperties> <fileinarchive name="right-switch.cpf"/> <ciao:usethreadpool idref="tp_a“/> </componentproperties> </componentinstantiation> </homeplacement> <homeplacement id=“controlerhome”> <componentfileref idref=“controller”/> <componentinstantiation id=“control_module”> <componentproperties> <fileinarchive name=“controller.cpf”/> <ciao:usethreadpoolwithlane idref=“tp_l”/> </componentproperties> </componentinstantiation> </homeplacement>

• Associate thread pools with components

• Associate QoS aggregates with connections

Page 17: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Connection Policies

• Establishing pre-connections

• Establishing private connections

<connections> ... <connectinterface ciao:preconnect=“true” ciao:private=“true”> <usesport> <usesidentifier>modulator</usesidentifier> <componentinstantiationref idref="Motor"/> </usesport> <providesport> <providesidentifier> modulator </providesidentifier> <componentinstantiationref idref="Controller"/> </providesport> </connectinterface>

<connectevent ciao:preconnect=“true” ciao:connband=“highest”> <consumesport> <consumesidentifier>EmStop</consumesidentifier> <componentinstantiationref idref="Controller"/> </consumesport> <publishesport> <publishesidentifier> EmStop </publishesidentifier> <componentinstantiationref idref="left"/> </publichesport> </connectevent> ...</connections>

Page 18: Applying RT-Policies in  CORBA Component Model

Washington University, St. Louis

Nanbor Wang Applying RT-Policies in CCM

Other policies?

• Other RT policies?