コンテンツアセンブリメカニズム(CAM)[ 1 ]は、XML構造への機械処理可能な情報コンテンツの流れを相互運用可能かつ決定論的に記述する情報交換を作成および管理するためのXMLベースの標準です。CAMはOASISコンテンツアセンブリ技術委員会の成果物です。
CAMのアプローチは、国家情報交換モデル(NIEM)のアプローチと整合しており、情報交換パッケージ文書(IEPD)の作成を支援します。
CAMプロセッサツールを使用すると、XSDスキーマ構造定義から現実的なXMLサンプルを作成できます。これらのXMLサンプルは、相互運用性テストで使用するテストケースをシミュレートしたり、実際のビジネス情報交換で使用するテンプレートを決定したりするために役立ちます。
CAMが解決しようとしている最も重要な課題は、ビジネス情報交換におけるよりシンプルで信頼性の高い相互運用性を実現することです。今日のインターネットを介した電子商取引は、自動化や統合の度合いが極めて限られています。正確で簡潔かつ検証可能な情報交換定義を共有できる能力は、より簡単で安価なグローバル商取引を実現するための重要な次のステップとなります。
CAMは、オープンソースソリューションによって生み出される臨界質量を通じて、情報交換の効果的な管理を支える決定的な標準として台頭しつつある。
OASIS標準規格の幅広い定義が、CAMオープンソースツールセットとアプローチを用いて文書化、検証、強化されています。現在までに、EDXL、CIQ、EMLなどがこれに該当します。CAMの利用は、PESC、MISMO、STAR Automotive、CAQHといった外部の業界団体にも拡大しており、さらにstratML、LEXS、NIEMなどの政府機関でも利用されています。
各グループは、全体的な標準規格のローカライズを迅速に検証・採用できる方法で推進するという共通の課題に直面しています。CAMを使用することで、既存のXSDスキーマ作業を基に、ローカライズテンプレート、XMLテストケース、Webサービスで使用する新しいサブセットスキーマを迅速に開発し、再利用可能な要望リストやコンテンツヒントを作成できます。さらに、CAMテンプレートは、XSDスキーマ定義から直接ドメイン辞書を構築し、個々のテンプレートとマスター辞書定義との相互参照スプレッドシートを生成するために使用されます。
これらの機能はすべて、 XMLに基づいたビジネス情報交換を利用した実装の質と速度、および相互運用性を向上させることを目的としています。
2003年1月に初めて会合を開いたOASISコンテンツアセンブリ技術委員会(CAM TC)は、「実装者が、生の業界標準スキーマインスタンスを実際のビジネス情報コンテンツ、コンテキスト、ロールと組み合わせ、有効で一貫性のあるXMLドキュメントインスタンスを生成するために必要な、ビジネスプロセスのコンテキストとローカライズされた実装ビジネスルールを統合する手段を提供できるような、XMLにおける汎用的なメカニズムの仕様を作成すること」を目的として設立された。
OASISは、ビジネスプロセスメカニズム、業界標準スキーマ、レジストリシステム、およびスキーマメカニズムに関する仕様を策定しています。CAM仕様は、これら4つのコンポーネントを一貫性のある標準的な方法で統合し、OASIS仕様に基づいたアセンブリ実装手順を公開することを可能にします。これにより、業界団体の活動が促進され、これらの仕様すべてに一貫して準拠したソフトウェアツールの開発が可能になります。
CAMに先立つ当初の作業は、 ebXMLイニシアチブの後期にebXMLレジストリ作業の派生として開始されました。このワーキンググループは「BRIM」(Business Registry Interface Model)と呼ばれ、レジストリコンテンツアセンブリサービスとコンテンツ構文ストレージ仕様に重点が置かれていました(CEFACTのBRIMリファレンスを参照)。さらに、BRIMの作業は、ビジネスプロセス向けのコアコンポーネントメッセージアセンブリ(CCMA)を実現することも目的としていました。この作業は、必要なXML開発をより容易にするため、2002年末にOASISに移管されました。
CAM V1.1の実装と展開は、本稿執筆時点(2009年1月)で進行中であり、JavaとXSLTを使用したオープンソースソリューションも含まれています。
CAMのスクリプト用テンプレート構文は、分かりやすく、人間が読みやすく、宣言的な設計になっています。
CAMは、既存のいくつかの標準規格に基づいて構築されています。
CAMテンプレートは、ヘッダーセクション、構造セクション、ビジネスルールセクション、および拡張機能セクションという4つの主要セクションで構成されています。
これらはXML構文で以下のように要約できます。
<CAM CAMlevel= "1" version= "1.1" > <Header/> <AssemblyStructure/> <BusinessUseContext/> <Extension/> <!-- オプション、繰り返し可能 --> </CAM>ヘッダーセクションの目的は、CAMプロセスが参照するプロパティとパラメーターを宣言することです。アセンブリ構造セクションの目的は、特定のビジネス情報交換に必要なコンテンツ構造を記述することです。
アセンブリ構造が定義されたら、次のステップはそのコンテンツに適用されるコンテキストルールを定義することです。この手法では、XPathターゲットロケーター参照を使用して構造の一部を特定し、その目的のために用意された構造述語のいずれかを使用してアサーションを適用します。
これらのビジネスコンテキストルールには2つのセクションがあります。通常適用されるデフォルトルールと、特定のルールブロックが真と評価された場合にのみ適用される条件付きルールです。ルールはXPath 2.0構文と、CAMが提供する構造述語セットを使用して表現され、構造とその情報コンテンツモデルの制御が簡素化されます。
CAM関数の述語には以下が含まれます。 excludeAttribute()、useAttribute() excludeElement()、useChoice() excludeTree()、useElement() makeOptional()、useTree() makeMandatory()、useAttributeByID() makeRepeatable()、useChoiceByID() setChoice()、useElementByID() setId()、useTreeByID() setLength()、startBlock() setLimit()、endBlock() setValue()、checkCondition() setDateMask()、makeRecursive() setStringMask()、setUID() setNumberMask()、restrictValues() datatype() または setDataType()、restrictValuesByUID() setRequired()、orderChildren() allowNulls()、setDefault() setNumberRange()
拡張機能セクションでは、コードリストの値などのその他の項目を定義できます。
CAMテンプレート方式の詳細については、OASIS標準規格であるOASIS CAM v1.1規格を参照してください。
CAM仕様は、ブループリントテンプレートとXSLTエキスパンダーツールを使用したコンテンツアセンブリをサポートするために、正規XML辞書を含むように拡張されています。これらの例としては、NIEMドメイン辞書、OASIS EDXL辞書、およびEML辞書が挙げられます。これらの機能の概要については、「OASIS CAMブループリントと辞書クイックガイド」を参照してください。
CAMテンプレート形式は、UML / XMIやマインドマップなどの構造コンポーネントモデルの生成もサポートしています。これは、CAMテンプレートの構造、ルール、およびドキュメントコンポーネントをXMIまたはMMモデル形式に変換するXSLT変換によって実現されます。