In CCM, the OMG IDL has been extended to define
a component type with multiple interfaces and properties.
Component is a new basic meta-type in CORBA that
can be represented in interface repository.
CCM model has two levels of Components viz.
- Basic, providing
support for basic features needed to componentize
a CORBA Application.
provides a richer set of features for supporting
multiple interfaces in a Component, Event Sources
and Sinks, and Configurable attributes for Components.
Component abstract Model
As shown in
above Figure Extended Components support a variety
of surface features called ports, which are of
five different kinds
which are named interfaces provided by a Component
exposing a subset of the interfaces supported
by a Component to a Client. Facet represents
the access point of the component's functional
are named connection points where external Components
can connect to. The connected references can
be either Facets or callback references or simple
object references. The receptacles are used
for connecting component instances together
to expose a richer behaviour of component through
delegation. A component may support a special
type receptacle that can be connected multiple
- Event Sources,
are connection points, which emit events for
a particular type. CCM defines two port namely
publishes and emits to produce events.
- Event Sinks,
are connection points, which accept an Event
of a particular type.
are named values which can be accessed and set
through accessor and mutator methods. Attributes
are useful for performing Component Configuration.
The Event Model supported by Extended CCM Components
is a simple Push Model.
The K2 IDL2
(idl2) pre-processor recognizes newly added keywords
for ports and generates the corresponding equivalent
IDL 2.x code. Also, the K2 CIDL compiler (cidl2cpp)
generates the supporting Component Implementation
Framework (CIF) code necessary to write an extended
component and deploy it within the K2 Component
As shown in
above figure the facets and receptacles can connected
to together to provide synchronous connections.
The emitters and consumers also can be connected
together to provide asynchronous connections between
two components. The above process of composing
components is known as component assembly. The
assembly can be achieved using graphical user
interface tool that interacts with user to capture
assembly information. The tool can be used to
deploy the component assembly into a runtime environment,
which handles automatic connection of components.
In some cases the application client may perform
assembly for additional configuration purposes
before executing operations on component.
A sample Vending
Machine example is available in the evaluation
version to demonstrate component inter-connections