2. cXMLの概要

このセクションでは、電子商取引トランザクションで使用する cXML (commerce eXtensible Markup Language) について紹介します。

2.1 XML を実装した cXML
2.2 cXML DTD
2.3 cXML の機能

2.3.1 カタログ
2.3.2 パンチアウト
2.3.3 注文書

2.4 cXML を使用するアプリケーションの種類
2.5 コンテンツの提供方法
2.6 プロファイルトランザクション
2.7 サービス状況応答
2.8 対象者および前提条件
2.9 本マニュアルの文字スタイル

2.1 XML を実装した cXML

XML (eXtensible Markup Language) はメタマークアップ言語で、文書やデータの構造を記述します。また、XML はアプリケーション間でデータの受け渡しをする際の標準言語で、特にインターネットを経由した通信に使用します。
XML ドキュメントでは、タグと値が対になった形式のデータを記述します。次に例を示します。

XML の構造は HTML (HyperText Markup Language) の構造と類似しています。HTML は SGML で定義されたもので、SGML は XML のベースとなったメタ言語です。しかし、XML ドキュメントではすべてのデータがその意味に基づいてタグ付けされているため、HTML ドキュメントと比較して、アプリケーションによるデータの使用と抽出が容易に行えます。XML にはデータ情報しか含まれていませんが、HTML にはデータ情報と表示方法に関する情報の両方が含まれています。各 cXML ドキュメントは、XML DTD (文書型定義) に基づいて作成されます。DTD は、テンプレートとして機能することにより、要素 (element) の正しい順序や入れ子などといった、cXML ドキュメントの内容モデルと属性のデータ型を定義します。cXML 対応の DTD ファイルは、www.cXML.org Web サイトで入手できます。

2.2 cXML DTD

cXML は XML 言語の 1 つであるため、文書型定義 (DTD) によって完全に定義されます。これらの DTD は、cXML 要素の構文と順序を明確に記述したテキストファイルです。アプリケーションは DTD を使用することにより、読み出したり書き込んだりする cXML データを検証できます。各 cXML ドキュメントのヘッダーには、そのドキュメントを定義している DTD の URL が含まれます。cXML アプリケーションはその DTD を入手し、それを使用してドキュメントを検証することができます。トランザクションを最も確実なものにするためには、受信したすべての cXML ドキュメントを検証します。エラーが検出された場合、適切なエラーコードを発行して、送信者が再送信できるようにします。cXML アプリケーションで、受信したすべての cXML ドキュメントを検証しなければいけないわけではありませんが、検証することを推奨します。しかし、すべての cXML ドキュメントは正しく、かつ以下で説明する cXML DTD に準拠している必要があります。

cXML DTD の入手方法

あらゆるバージョンの cXML に対応した DTD は、cXML.org から入手できます。さまざまな種類の cXML ドキュメントが複数の DTD で定義されています。これは、一部のパーサーで高速な検証を可能にするために、サイズを縮小した DTD を使用しているためです。

ここで、version は cXML の完全なバージョン番号です。cXML アプリケーションでは、これらの DTD を使用して、送受信するすべてのドキュメントが検証できます。

DTD のキャッシュ

最高のパフォーマンスを得るためには、cXML アプリケーションは DTD をローカルにキャッシュする必要があります。
cXML の DTD ファイルは公開後に変更されることはないため、期限を設定せずにキャッシュしておくことができます。(DTD は、更新されると新しい URL が割り当てられます。)cXML アプリケーションは、cXML ドキュメントの解析時にドキュメントヘッダーの SYSTEM 識別子を調べ、DTD がまだローカルに格納されていない場合は、その DTD を取得するようにします。ローカルに DTD をキャッシュしておくと、ドキュメントの検証をより高速に行うことができ、cXML.org サイトへのアクセスも減少するという利点があります。環境によっては、cXML アプリケーションが新しいドキュメントを受信する際に、自動的に DTD を取得することが許可されていない場合があります。これらの環境では、DTD を手動で取得してローカルに保存し、cXML.org ではなくローカルの DTD を参照するよう、アプリケーションを設定する必要があります。ただし、cXML ドキュメントを生成する場合は、ローカルの DTD ではなく cXML.org の DTD を参照するようにしておく必要があります。

2.3 cXML の機能

 cXML を使用することで、バイヤー企業、サプライヤ、サービスプロバイダ、および仲介組織は、オープンスタンダードな単一の言語による通信が可能となります。企業間の電子商取引 (B2B e コマース) が成功するためには、汎用性が高く柔軟なプロトコルが鍵となります。cXML は明確で厳密に定義された言語で、電子商取引を目的として設計されました。cXML は大量の製品を扱うバイヤー企業やサプライヤに特に適しています。cXML によるトランザクションは、ドキュメントで構成されます。これらのドキュメントは、定義済みのタグの間に値を記述する単純なテキストファイルです。cXML ドキュメントは、そのほとんどがビジネスで従来から使用されているハードコピーのドキュメントに類似しています。最も一般的な cXML ドキュメントの種類は、次のとおりです。

  • カタログ
  • パンチアウト
  • 注文書

以下の項で、これらの cXML ドキュメントについて説明します。

2.3.1 カタログ

カタログは、製品およびサービスの内容をバイヤー企業に伝達するためのファイルです。カタログには、サプライヤが提供する製品およびサービス、さらにその価格が記載されており、サプライヤからバイヤーに対して行う伝達手段の中心となるものです。サプライヤがカタログを作成すると、調達アプリケーションを使用するバイヤー企業は、そのサプライヤが提供する製品およびサービスを参照し、購入できるようになります。調達アプリケーションはカタログを読み込み、調達アプリケーションのデータベースに保存します。バイヤー企業がカタログを承認すると、カタログコンテンツはユーザーが参照できるようになり、ユーザーは品目を選択して、購入申請を作成します。

図 1: 製品およびサービスのコンテンツをバイヤー企業に送信

サプライヤは、数量単位、価格設定、配送方法に関係なく、どのような製品またはサービスに対してもカタログを作成できます。カタログの各品目には、必須の基本情報と、複数の言語による説明などの高度なカタログ機能を使用する任意設定情報を記載できます。

2.3.2 パンチアウト

パンチアウトは、実装が容易な、インターネット経由で動作する対話型セッションのためのプロトコルです。パンチアウトでは、同期式の cXML メッセージを使用してリアルタイムでアプリケーション間の通信を行うため、リモートサイトの間でシームレスな対話が実現できます。パンチアウトには次の 3 種類があります。

  • 調達パンチアウト
  • パンチアウト連鎖
  • プロバイダパンチアウト
調達パンチアウト

調達パンチアウトは、サプライヤにとって静的なカタログファイルに代わるものです。パンチアウトサイトは、Web サイト上で動作するリアルタイムの対話型カタログです。電子商取引の Web サイトを運営するサプライヤは、サイトを変更してパンチアウトに対応させることができます。パンチアウトサイトは、cXML を使用して、インターネット経由で調達システムと通信します。

パンチアウトサイトの場合、調達アプリケーションでは、製品や価格設定の詳細が表示される代わりにボタンが表示されます。ユーザーがこのボタンをクリックすると、サプライヤの Web サイトのページがユーザーのブラウザに表示されます。サプライヤがこのページをどのように実装するかにより異なりますが、ユーザーは、製品の参照、設定内容の指定、配達方法の選択などを行うことができます。このページでの操作が完了したら、ユーザーはその注文情報を調達アプリケーションに転送するボタンをクリックします。購入する製品の構成や価格は、ユーザーの購入申請に表示されます。次の例は、ユーザーとサプライヤ Web サイト間の対話型パンチアウトセッションを示しています。

図 2: ユーザーとサプライヤ Web サイト間の対話型パンチアウトセッション

サプライヤの Web サイトには、あらかじめ合意した個別契約に基づく製品および価格が表示できます。

パンチアウト連鎖

パンチアウト連鎖とは、複数のパンチアウトがかかわっている調達パンチアウトのことです。cXML のパスルーティングにより、この機能が実現されました。

図 3: パンチアウト連鎖

cXML のパスルーティングを使用することにより、オーダーとそれに伴うメッセージを、見積り作成に関与するマーケットプレイスとサプライヤに返すことができます。パスルーティングは最終オーダーをすべての関係組織に通知し、それに続くパンチアウトは、マーケットプレイスに代わり、オーダーを分割する方法を調達アプリケーションに指示します。

プロバイダパンチアウト

プロバイダパンチアウトを使用すると、アプリケーションはリモートアプリケーションにパンチアウトすることができ、リモートアプリケーションはクレジットカードの検証、ユーザー認証、新規登録などのサービスをパンチアウトしたアプリケーションに提供できます。

2.3.3 注文書

バイヤー企業は、サプライヤに注文書を送信して契約の履行を要求します。次の例は、サプライヤに送信される注文書を示しています。

図 4: サプライヤに送信される注文書

cXML は、柔軟性があり、実装コストが低く、さまざまなデータや添付ファイルを広範にサポートしているため、注文書の受け渡し形式として、ほかの形式 (ANSI X12 EDI 850 など) よりも優れています。

2.4 cXML を使用するアプリケーションの種類

cXML は、どのような電子商取引アプリケーションでも使用できます。現在、バイヤー企業、さまざまな購買グループ、サプライヤ、およびアプリケーションベンダによって使用されています。以下の項では、現在 cXML を使用している主要なアプリケーションの種類について説明します。

購買アプリケーション

SAP Ariba Buying、SAP Ariba Buying and Invoicing、Ariba Buyer などの購買アプリケーションでは、外部トランザクションに cXML を使用しています。購買コミュニティのユーザーは、購買マネージャにより承認されれば、これらのアプリケーションを使用して、契約に基づく製品およびサービスをサプライヤから購入できます。購入申請は、最初に購買コミュニティのマネージャによって承認され、承認済みの注文書は cXML ドキュメントとしてインターネット上でいくつかの仲介組織を介してサプライヤに転送されます。

ネットワークハブ

Ariba Network などのネットワークハブは、バイヤーとサプライヤを接続する Web ベースのサービスです。これらの Web サービスは、カタログの検証とバージョン管理、カタログの公開と受信登録、注文書の自動ルーティング、および注文書履歴などの機能を提供します。ネットワークハブは、さまざまな組織間で受け渡しされる Request と Response を認証し、ルーティングすることにより、その仲介機能を果たします。これらの組織間の通信は、すべてインターネット上で cXML を使用して行われます。

パンチアウトカタログ

前項で説明したように、パンチアウトカタログはサプライヤの Web サイトで使用する対話型カタログです。パンチアウトカタログは、バイヤーのパンチアウトセッションを管理する ASP (Active Server Pages)、JavaScript、または CGI (Common Gateway Interface) などのプログラミング言語で記述された Web サーバーアプリケーションにより実現されます。パンチアウトカタログは、購買アプリケーションからパンチアウト要求を受け取り、バイヤー企業を識別してから、該当する製品と価格を HTML フォーマットで表示します。次にユーザーは品目を選択して、設定を行い、必要であればオプションを選択します。パンチアウトセッションの終了時に、パンチアウトサイトはユーザーが選択した内容を cXML フォーマットで購買アプリケーションに送信します。

オーダー受信システム

オーダー受信システムは、バイヤー企業から送信された注文書を受け付けて処理するサプライヤサイトのアプリケーションです。オーダー受信システムには、在庫管理システム、オーダーフルフィルメントシステム、またはオーダー処理システムなどのような自動システムの機能も持たせることができます。cXML の注文書から情報を抽出するのは単純な処理のため、比較的容易に既存のオーダー受信システムにこれらの機能を付加することができます。

2.5 コンテンツの提供方法

調達アプリケーションは、自社のユーザーに対して製品およびサービスの内容を表示します。サプライヤの販売プロセスにおいて、バイヤーに対して製品やサービスをいかに表示するかは重要なため、顧客がどのように製品やサービスを参照するかに関して、サプライヤは制御したいと考えます。また、バイヤー企業は、契約に確実に準拠した上で、コンテンツへのアクセスと検索を容易に行えるようにしたいと考えます。バイヤー企業とサプライヤは、製品とサービスの内容の表示に関して、複数の方法から選択できます。使用する個別の方法は、バイヤー企業とサプライヤとの間で達した合意と、取引される製品またはサービスの性質によって決定されます。次の表に、一般的に調達される製品とサービスのカテゴリ例、およびそれらのコンテンツの好ましい提供方法を一覧表示します。

商品特性コンテンツの提供方法
事務用品、
社内用品
静的なコンテンツ、
安定した価格
静的カタログ
ラボサプライ、
MRO (保守、修理、運用)、
電子部品
使い勝手のよい規格化が必要垂直商品ポータルへのパンチアウト
書籍、
化学薬品
多品目サプライヤが運営するサイトにパンチアウト
コンピュータ、
ネットワーク装置、
周辺機器
さまざまな構成が可能サプライヤが提供する設定ツールにパンチアウト
サービス、
印刷物
高度に可変な属性を持つコンテンツサプライヤサイトの電子フォームにパンチアウト

バイヤー企業は、コンテンツを組織内にローカルに格納することも、パンチアウトを使用してインターネット経由でリモートコンテンツにアクセスすることもできます。cXML カタログは、その両方の手段をサポートしています。この表が示すように、パンチアウトは柔軟性のある枠組みを提供します。この枠組みの中で、サプライヤは商品またはバイヤーに応じてカスタマイズされたコンテンツを提供できます。このような方法でコンテンツを取り扱う目的は、バイヤーとサプライヤが最も合理的な方法でカタログデータをやり取りできるようにすることです。

2.6 プロファイルトランザクション

プロファイルトランザクションでは、特定の cXML サーバーがどのトランザクションを受信できるかについての基本情報をやり取りします。すべての cXML サーバーは、このトランザクションをサポートする必要があります。それは、アプリケーション間のバックエンド統合を行うためで、それにより cXML サーバーの機能がクライアントのシステムで使用可能になります。このトランザクションは、ProfileRequest および ProfileResponse という 2 つのドキュメントで構成されます。この 2 つのドキュメントを組み合わせて使用し、サポートする cXML バージョンとトランザクション、およびそれらのトランザクションに対するオプションを含むサーバー機能を検索します。

注記
cXML 1.1 以降のすべてのサーバーは、プロファイルトランザクションを受け付けなければなりません。

ProfileRequest

この ProfileRequest ドキュメントにはコンテンツがありません。このドキュメントは、cXML サーバーにそのままルーティングされます。

ProfileResponse

サーバーは、ProfileResponse ドキュメントを使用して応答します。3rofiOe5esponse ドキュメントには、cXML サーバーがサポートするトランザクション、その所在地 (URL)、および指定されたオプションを文字列で記述します。

2.7 サービス状況応答

送信された cXML を受け付けた URL から、状況コード 200 を持つ Response が作成されて、返信されます。HTTP GET がサービスサイトに送られると、サービスは動的に作成された有効な cXML Response ドキュメントで応答します。サービスの HTTP URL は、cXML Request ドキュメントを受信できればどこでも可能です。

2.8 対象者および前提条件

本マニュアルは、cXML を使用してアプリケーションを設計するアプリケーション開発者を対象に作成されています。cXML は汎用性のあるオープンスタンダードな言語で、以下のトランザクションで使用します。

  • 電子商取引ネットワークハブ
  • 電子製品カタログ
  • パンチアウトカタログ
  • 購買アプリケーション
  • バイヤー
  • サプライヤ
  • 電子商取引サービスプロバイダ

読者は電子商取引の概念、HTTP インターネット通信規格、および XML 形式に関する実践的な知識が必要です。本マニュアルでは、特定の購買アプリケーションまたはネットワークハブの使用方法については説明しません。

2.9 本マニュアルの文字スタイル

cXML 要素 (element) および cXML 属性は、モノタイプのフォントで表記します。これらの名前には大文字と小文字の区別があります。どちらの名前にも大文字と小文字が混在していますが、要素名は大文字で始まり、属性名は小文字で始まります。たとえば、MyElement は cXML 要素で、myAttribute は cXML 属性です。次の表に、本マニュアルで使用している表記規則を示します。

書体または記号意味
AaBbCc123ユーザーが置換しなければならないテキストは等幅のイタリックで表記します。http://server:port/inspector
AaBbCc123ユーザーインターフェイスとして表示されるコントロール名、メニュー名、およびメニュー項目名[ファイル] メニューから [編集] を選択します。
AaBbCc123ファイル名、ディレクトリ名、パラメータ、CSV ファイルのフィールド、コマンド行、およびコード例ProfileRequest ドキュメントは、バイヤーからネットワークハブに送信されます。
AaBbCc123マニュアルのタイトル詳細については、『Acme 設定の概要』を参照してください。