SOA ベースの統合環境で共通情報モデル (CIM) が持つさまざまな様相

サービス指向アーキテクチャー (SOA: Service Oriented Architecture) ベースのアーキテクチャー・スタイルは、共通情報モデル (CIM: Common Information Model) を組み合わせると複雑になってきます。これは、統合のためにデータ要素を追加で組み込んだり、サービス・コンポーネントがビジネス・ロジックを実行するために必要となる要素を組み込んだりと、さまざまな理由から実際には設計者が CIM を拡張しなければならないためです。このような拡張によってコアとなる CIM にどのような影響が及ぼされるかを理解すれば、CIM を容易に管理できるようになります。この記事ではコア CIM および拡張 CIM に関するさまざまな側面を説明します。

Gandhi Sivakumar , Senior IT Architect, IBM

Gandhi Sivakumar Gandhi Sivakumar は複雑な SOA ベースの統合プロジェクトに取り組む、IBM Certified Senior IT Architect です。Gandhi は IBM Academy のメンバーで、IBM の多くのコミュニティーを主導しています。また、技術革新に深い興味を持っており、多数の特許を申請しています。



2010年 8月 24日

概要

拡張 CIM の二分法

拡張 CIM は、大きくは 2 つの層に分類することができます。1 つは「Weaker CIM」、もう 1 つは「Weakest CIM」です。異なるカテゴリーの要素を提供するこの 2 つの層は、それぞれに固有の特性を持ち、互いに分離されている必要があります。

SOA ベースのアーキテクチャー・スタイルで、業界固有の共通情報モデル (CIM: Common Information Model) を組み合わせたサービスを作成するには、CIM を拡張する必要があります。これは、CIM は概念上のものであり、大抵の場合は直接実装するには不適切であることから、属性、オブジェクト、関係、操作、インターフェースなどのレベルでの拡張が必要になってくるためです。つまり、標準的な SOA ベースの環境には、コア CIM と拡張 CIM が存在することになります。拡張 CIM はさらに、Weaker CIM と Weakest CIM に二分することができます。この 2 つの層はそれぞれに固有のカテゴリーのエントリー・ポイントを所有し、特性も異なるため、別々に管理する必要があります。一般に、1 つのサービスにはこの 3 つすべての層のエンティティーが含まれることに注意してください。


CIM 層の概要

図 1 に、CIM ベースの SOA 環境内にあるさまざまな層を示します。各層に示されているシャボン玉のような丸印はその層へのエントリー・ポイントです。各層には、上位にあるどの層からもエントリー・ポイントを介してアクセスすることができます。つまり、各層は特定のカテゴリーに限定されていますが、その層と接している上位の層だけが関係するわけではないのです。以降のセクションで、それぞれのエントリー・ポイントについて詳しく説明します。

図 1. CIM 層
CIM 層

コア CIM 層

コア CIM 層は、業界が公開しているそのままのモデルからなります。例えば、電気通信業界では TMF (TeleManagement Forum) の SID (Shared Information Data) モデル、金融業界では IFW という名前が付けられた、属性および関係を持つ抽象エンティティーが含まれる IBM の金融サービス・モデルなどです。

コア CIM の特性

  • コア CIM はほぼ静的な層ですが、不足している部分が見つかった場合には、設計者がこの層をカスタマイズすることもできます。
  • 不足しているケースとして考えられるのは、データ定義が欠如しているケースや、さまざまな関係において一意に決まる名前を使用した ID が欠如しているケースなどです。
  • このような CIM モデルからサービス仕様を生成するツールは、別の基本層でその不足部分を管理する必要があります。つまり、拡張層/サービス運用層に対してエントリー・ポイントを提供する一方で、基本層を分離することによって、将来、基本層の新しいバージョンが出たときに置き換えられるようにするということです。
  • エントリー・ポイントは、コア CIM のオブジェクト、そしてオブジェクトの属性、関係、オブジェクトのインターフェースを介してアクセスを提供します。Weaker CIM はこのすべてのカテゴリーにアクセスすることができますが、Weakest CIM 層とサービス層は専用のインターフェースを持っているかどうかに関わらず、コア CIM のオブジェクトまたは関連インターフェースにしかアクセスすることができません。以下に記載するのは、コア CIM のオブジェクトにアクセスする場合の典型的な例です。
    • TMF が指定する SID 内では、GeographicAddress オブジェクト (コア CIM) に含まれる Weaker CIM の AddressDetails 属性によって非構造化アドレスが有効にされます (図 2 を参照)。
    • サービス操作による Address オブジェクト (コア CIM) へのアクセスを RetrieveAddressDetailsRequest やそのレスポンスで実現します (図 3 を参照)。
    • 例えばトランザクション ID やシステム詳細を含めるための TransactionDefinition オブジェクトなど、統合に固有の要素 (Weakest CIM) に対するアクセスを実現します。ただし、アクセスは図 4 に示すようにサービス操作を介して行われます (注: 上記の例で説明したように、Weakest CIM には複雑な要素を含めることはできないまでも、基本要素を含めることはできます)。
図 2. GeographicAddress
GeographicAddress
図 3. RetrieveAddressDetailsRequest
RetrieveAddressDetailsRequest
図 4. TransactionDefinition
TransactionDefinition

Weaker CIM 層

この層には、純粋なビジネスの意味を伝達して存続させるための拡張 CIM エンティティーが含まれます。ここで強調する言葉は、「ビジネスの意味」です。というのも、モデル設計者は、ビジネスの観点から正当化されない限り、ビジネス要素をサービス・インターフェースに組み込むのではなく、ビジネス要素の表明をサービス・インターフェースで視覚化し、さらに十分に抽象化された用語で表現する必要があるからです。

Weaker CIM には以下のエンティティーを含めることができます。

  • 属性
  • オブジェクト
  • 関係
  • IFW などのモデルに含まれるインターフェースおよびメソッド・レベル

Weaker CIM の特性

  • この層は動的であり、ビジネスに固有の拡張エンティティーの大部分がここに含まれます。
  • 有効化ツールはこの層を他とは切り離して管理する必要がありますが、サービス運用層に対するエントリー・ポイントは一緒に管理します。
  • エントリー・ポイントは、サービス操作がオブジェクト、メソッド、インターフェースを介して、操作対象にアクセスできるようにします。以下は典型的なアクセス例です。
    • サービス操作 SearchPhoneNumberRequest による TelephoneNumber オブジェクトへのアクセスを可能にします (図 5 を参照)。
図 5. SearchPhoneNumberRequest
SearchPhoneNumberRequest
  • サービス操作がメソッドを介してアクセスできるようにします。図 6 は、IFW モデルから抜粋した例で、InvolvedPartyInformationMaintenance サービスには Weaker CIM 層の getPassportRegistrationInformation メソッドが必要です。
図 6. getPassportRegistrationInformation メソッド
getPassportRegistrationInformation メソッド

Weakest CIM 層

最後に紹介する CIM 層には、単に統合するために必要なオブジェクト、属性、インターフェース、およびメソッドが含まれます。例えば、メッセージ・ヘッダー関連のエンティティーや、結果を操作するために必要なエンティティー、そしてサービス操作と Weaker/コア CIM 層に接続するためのエンティティーです。注意する点として、この最後の層は常に下位の Weaker CIM 層およびコア CIM 層と共存する必要がありますが、これらの層にはサービス操作を介して接続されます。

Weakest CIM の特性

  • この層も動的ですが、Weaker CIM と比べ、その拡大速度は極めてゆっくりしています。
  • この層は純粋に、統合を促進し、関数を制御するエンティティーを保持することを目的としています。
  • 下位層の抽出を可能にするために、ツールはこの層を他とは切り離して管理する必要があります。
  • エントリー・ポイントは、以下の例のように、サービス操作がスタンドアロンの基本要素、オブジェクト、またはインターフェースとメソッドを介して、操作対象にアクセスできるようにします。
    • コントローラーの基本要素 returnResult で返される結果の数を指定することによって、RetrieveAddressResponse サービス操作にアクセスします (図 7 を参照)。
図 7. RetrieveAddressResponse
RetrieveAddressResponse
  • TransactionDefinition (Weakest CIM オブジェクト) にアクセスする ITransactionDefinition (インターフェース) を指定することによってサービス操作へのアクセスを有効にします (図 8 を参照)。前述のとおり、Weakest CIM は単独で存在することはできず、常に下位層に依存しますが、その結合はサービス操作を介して行われます。
図 8. ITransactionDefinition
ITransactionDefinition

まとめ

CIM 層を論理的および物理的に分離することが、SOA ベースの環境で疎結合を実現する鍵となります。さらに層の分離では上位層が利用するためのエントリー・ポイントを定義することから、管理が容易なエンタープライズ向けエコシステムのコアの部分が作成されます。

参考文献

学ぶために

製品や技術を入手するために

  • ご自分に最適な方法で IBM 製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

議論するために

  • My developerWorks コミュニティーに加わってください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者が主導するブログ、フォーラム、グループ、ウィキを調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and web services
ArticleID=548910
ArticleTitle=SOA ベースの統合環境で共通情報モデル (CIM) が持つさまざまな様相
publish-date=08242010