The CCM
CCM components are the basic building blocks in a CCM system. A major contribution of CCM derives from standardizing the component development cycle using CORBA as its middleware infrastructure. Component developers using CCM define the IDL interfaces that component implementations will support.
Methods used to overcome the inadequacies of the original CORBA object model?
Facets: Facets, also known as provided interfaces, are interfaces that a component provides, yet which are not necessarily related to its supported interfaces via inheritance. Facets allow component to expose different views to its clients by providing different interfaces that can be invoked.
For instance, the Stock_Quote interface provides a stock price querying capability to the component.
Receptacles: These allow components to "hook" themselves together. Component systems contain many components that work together to provide the client functionality. The receptacle allows a component to declare its dependency to an object reference that it must use. Receptacles provide the mechanics to specify interfaces required for a component to function correctly.
The Stock_Exchange component uses the SEC (Securities and Exchange Commission) interface to function correctly.
Event sources/sinks: Components can also interact by monitoring asynchronous events. A component declares its interest to publish or subscribe to events by specifying event sources and event sinks in its definition.
For example, the Stock_Exchange component can be an event sink that processes Buy_Offers and Sell_Offers events and it can be an event source that publishes Price_Change events.
Attributes: To enable component configuration, CCM extends the notion of attributes defined in the traditional CORBA object model. Attributes can be used by configuration tools to preset configuration values of a component.
These new port mechanisms significantly enhance component reusability when compared to the traditional CORBA object model. For instance, an existing component can be replaced by a new component that extends the original component definition by adding new interfaces without affecting existing clients of the component.
Life Cycle Management: To standardize the component life cycle management interface, CCM introduces the home IDL keyword that specifies the life cycle management strategy of each component. A client can access the home interface to control the life cycle of each component instance it uses. For example, the home interface can create and remove components instances.