CCM は CORBA のサーバーサイドのコンポーネントモデルを提供するとともに、CORBA 環境上に EJB のようなコンポーネント環境を構築するためのフレームワークを提供する。
コンポーネントの定義には様々あり、一般的に「再利用可能なソフトウェアの単位」であると言われている。 M.Collins-Cope らにある定義では、以下の4つの要件を満たすものをコンポーネントと呼び、この定義が広く用いられているようである。
『 CORBA components が開く新しい分散環境 』 鈴木 純一/著, ドクター・ドブズ・ジャーナル日本語版 1999 年 4 月号、pp.150-158.
CCM のコンポーネントは、拡張 IDL に基づき component 宣言子を用いて以下の構文に従って宣言される。
component <component_name> [ : <base_name> ] [ supports <interface_name> [, <interface_name>] * ] { <attribute declaration> *; <port declaration> *; };
component に続く <component_name> は宣言するコンポーネントの名前を記述する。 オプション的な宣言として、コンポーネントは一つのコンポーネント( <base_name> )を継承することがでる。 また、support 宣言子により同時にいくつかの IDL で定義したインターフェース( <interface_name> )を持つこともでき、これらは supported interface と呼ばれる。 コンポーネントの本体には、コンポーネントの属性( <attribute declaration> ) や Ports ( <port declaration> )を宣言することができる。
この宣言は IDL2 と等価なインターフェース equivalent interface として以下のように宣言するのと等価である。
interface <component_name> : Components::CCMObject, [<base_name>, <interface_name>, <interface_name>] * ] { };
したがって、<base_name> はコンポーネント名であり、<interface_name> はインターフェース名として区別されるが、equivalent interface においてこれらはすべて interface となり、これらの継承に帰着される。
例えば、以下のように Hello インターフェースをもった HelloWorld コンポーネントを宣言することができます。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
CCM (CORBA Component Model)
CCM は CORBA のサーバーサイドのコンポーネントモデルを提供するとともに、CORBA 環境上に EJB のようなコンポーネント環境を構築するためのフレームワークを提供する。
コンポーネント
コンポーネントの定義には様々あり、一般的に「再利用可能なソフトウェアの単位」であると言われている。 M.Collins-Cope らにある定義では、以下の4つの要件を満たすものをコンポーネントと呼び、この定義が広く用いられているようである。
『 CORBA components が開く新しい分散環境 』 鈴木 純一/著, ドクター・ドブズ・ジャーナル日本語版 1999 年 4 月号、pp.150-158.
コンポーネントモデル
CIDL のための追加されたキーワード
Deployment と Configuration のための XMLファイル
コンポーネントの宣言
CCM のコンポーネントは、拡張 IDL に基づき component 宣言子を用いて以下の構文に従って宣言される。
component に続く <component_name> は宣言するコンポーネントの名前を記述する。 オプション的な宣言として、コンポーネントは一つのコンポーネント( <base_name> )を継承することがでる。 また、support 宣言子により同時にいくつかの IDL で定義したインターフェース( <interface_name> )を持つこともでき、これらは supported interface と呼ばれる。 コンポーネントの本体には、コンポーネントの属性( <attribute declaration> ) や Ports ( <port declaration> )を宣言することができる。
この宣言は IDL2 と等価なインターフェース equivalent interface として以下のように宣言するのと等価である。
したがって、<base_name> はコンポーネント名であり、<interface_name> はインターフェース名として区別されるが、equivalent interface においてこれらはすべて interface となり、これらの継承に帰着される。
例えば、以下のように Hello インターフェースをもった HelloWorld コンポーネントを宣言することができます。
参考文献