CCM

CCM (CORBA Component Model)

CCM provides a server-side component model of CORBA and provides a framework for constructing component environment like EJB on CORBA environment.

Components

There are various definitions of components, it is said that it is generally "unit of reusable software". In M. Collins-Cope et al. Definition, those that satisfy the following four requirements are called components, and this definition seems to be widely used.

Self-completion/self-descriptiveness Independent function exists as standalone, declaratively the interface is defined. In addition, standard methods for operation and operation are defined, and the mechanism for this is clearly defined.
Dynamic functions can be added and changed Properties and events etc can be set and changed from outside the component. Also, a standard method for that is given.
Interface transparency Based on the interface definition, a linkage method at the binary level is given.
Support loose coupling with other components Connected via a framework such as a container or an assembly environment without having a direct communication path with other components.

"A New Distributed Environment in which CORBA Components Open" Junichi Suzuki, Dr. Dobbs Journal Japanese Edition April 1999, pp. 150-158.

Component model

Facet Indicates that the interface of the component is made public to the outside. The client can acquire the published interface by introspection and call the method of the interface.
Receptacle Indicates that the interface of another component can be connected. Receptacle types include Simplex Receptacle that can connect one interface and Multiplex Receptacle that can connect multiple interfaces to the same Receptacle.
Event Source Indicates to issue a specific event. As the type of event notification, there is an Emitter that can notify only one at the same time as Publisher which can make one-to-many notification.
Event Sink Indicates to receive a specific event.
Attribute Indicates the attributes of the component. It has the same meaning as the attribute of a normal CORBA object.

Added keywords for CIDL

  • component
  • consumes
  • emits
  • eventtype
  • finder
  • getraises
  • home
  • import
  • multiple
  • primarykey
  • provides
  • publishes
  • setraises
  • typeid
  • typeprefix
  • uses

XML file for Deployment and Configuration

Descriptor extension
Component Package Descriptor: .cpd
Component Implementation Descriptor: .cid
Implementation Artifact Descriptor: .iad
Component Interface Descriptor (CORBA Component Descriptor): .ccd
Component Domain Descriptor .cdd
Deployment Plan Descriptor (Component Deployment Plan): .cdp
Top Level Package Descriptor package.pcd
ZIP file containing all of above + binaries .cpk

Component declaration

CCM components are declared according to the following syntax using component declarators based on extended IDL.

 component <component_name> [ : <base_name> ]
     [ supports <interface_name> [, <interface_name>] * ]
 {
      <attribute declaration> *;
      <port declaration> *;
 };  

<component_name> following the component describes the name of the component to be declared. As an optional declaration, a component can inherit a single component (<base_name>). It is also possible to have several IDL defined interfaces (<interface_name>) at the same time by support declarator, which are called supported interface. You can declare component attributes (<attribute declaration>) and Ports (<port declaration>) in the body of the component.

This declaration is equivalent to declaring as an interface equivalent interface equivalent to IDL 2 as follows.

 interface <component_name>
     : Components::CCMObject, [<base_name>, <interface_name>, <interface_name>] * ]
 {
 };  

Therefore, <base_name> is the component name and <interface_name> is distinguished as the interface name, but in the equivalent interface they are all interfaces, resulting in these inheritance.

For example, you can declare a HelloWorld component with a Hello interface as follows.

References

  1. 『 CORBA Component Model Tutorial 』 OMG Document ccm/02-04-01
  2. Lightweight CORBA Component Model ptc/04-06-10

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK