SOAの実装が成功する要件の1つは、サービス メッセージのセマンティックな相互運用性である。このことは、大抵、業界固有のCommon Information Model (CIM)をベースにしたサービス メッセージング/インターフェースを必要とする。CIMは、抽象的なので、多くの場合、このCIMは、様々な理由で拡張されなければならない。その理由には、統合するために、データ要素を追加する必要性から、サービス コンポーネントによって、ビジネス ロジックを実行するのに必要な要素の追加まで、様々である。Gandhi Sivakumar とRam Viswanathanの両氏によって書かれた 、新しい DeveloperWorksの記事では、3つの典型的な層を導入し、各層の特性を記述している。
両氏によると、土台は、コアCIM層で、
... 業界で公開されている生のモデルからできている、例えば、電信業界におけるTeleManagement Forum's Shared Information Data モデル (SID) や金融業界における IFWという名の IBM financial services モデルで、これは、特性と関係を持った抽象的なエンティティを持っている。
この層は、大抵、予め定義済みであるが、少しだけカスタマイズでき、欠けているデータ定義、関係そして、ユニークな名称識別子を加えることができる。この層は、普通、自身のネームスペースに含まれているので、サービス仕様書の作成ツールが、追加のCIM層とは、結合されていない、独立した基礎の層として、この層を保守できる。
コアCIM層は、弱いCIM層によって拡張される、この層は:
... 純粋なビジネス上の存在意味を伝える、拡張されたCIMエンティティを包含する...モデラーは、いつも、サービス インターフェースにおけるこれらの要素の兆候を可視化する必要があり、ビジネスの観点から正当でないなら、含まないようにし、更に、充分抽象的な専門用語によって、それらを表現する必要がある。
弱いCIM層は、追加の特性、オブジェクト、関係、そして、インターフェースを提供する、コアCIM層の拡張である。この層は、サービスの実装に必要な、ビジネス固有のエンティティのほとんどを含んでいるが、コアCIM層にあるものは、含んでいない。この層は、一般的に、もっとも変わりやすい層であり、サービスにもっと機能を加えるために、成長し続ける。
最後に、最弱なCIM層
... 純粋に統合の目的に必要なオブジェクト、特性、インターフェースそして、メソッドを含んでいる。例えば、メッセージ ヘッダーに関連したエンティティ、結果の制御に必要なエンティティで、サービス運用と弱い/コアCIM層を繋いでいる。ここで留意すべきは 、この最終層は、いつも下位の弱い/コアCIM層と共存しなければならないことと、サービス運用を通して繋がっていることである。
この層の目的は、純粋に、統合の実装に必要なエンティティをサポートすることと、機能をコントロールすることである。
記事は、業界固有のCIMモデルをSOAの実装に導入する際の、非常に良く定義された多層なアプローチを提供している。提案されている、コア、サービス固有の拡張そして統合固有の拡張というはっきりした分離によって、セマンティックなSOAモデルの全般的な保守性を一層、高めることになる。