(57)【要約】  特定のバージョンもしくはＥＤＩ構築ブロックの変更履歴、またはＥＤＩスキーマの２つのバージョンのＥＤＩ構築ブロック間の差分を決定および表示するために、ＥＤＩスキーマを構成するＥＤＩ構築ブロックのツリー構造の解析を実行する、ツリーベースＥＤＩデータディクショナリ差分解析ツールが提供される。２つのＥＤＩスキーマ間で行われた変更を直観的に表すため、ツリーベース差分解析を利用するツールによって、ＥＤＩ構築ブロックを超えるさらなる抽象概念からの干渉なしに、ＥＤＩ構築ブロック自体に関する変更として差分が表示される。既存スキーマオブジェクトを編集し、それら編集されたスキーマオブジェクトの変更履歴を拡張することによって、ツールは、ユーザーが新しいスキーマバージョンを生成することも可能にする。
2010504592.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の変更について電子データ交換（ＥＤＩ）スキーマを解析するための方法であって、
ＥＤＩトランザクションセット定義（ＴＳＤ）情報の少なくとも１つのツリーベース表現を受信するステップと、
前記ＥＤＩ  ＴＳＤ情報に含まれる複数のＥＤＩスキーマ要素を決定するステップと、
前記複数のＥＤＩスキーマ要素のうちの少なくとも１つのＥＤＩスキーマ要素について、前記少なくとも１つのＥＤＩスキーマ要素を以前のバージョンから変更した少なくとも１つの変更を決定するステップと
を含むことを特徴とする方法。
【請求項２】
前記少なくとも１つのＥＤＩスキーマ要素に対する変更のリストとして前記少なくとも１つの変更を表示するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つのＥＤＩスキーマ要素に対する前記少なくとも１つの変更を要素ごとに表示するステップ
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記決定するステップは、前記少なくとも１つのＥＤＩスキーマ要素のプロパティに対する少なくとも１つの変更を決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記決定するステップは、前記少なくとも１つのＥＤＩスキーマ要素に対する前記少なくとも１つの変更に基づいて、前記ＥＤＩ  ＴＳＤ情報の前記ツリーベース表現に対する少なくとも１つの構造変更を決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記決定するステップは、前記ＥＤＩ  ＴＳＤ情報の前記ツリーベース表現における１つの位置から別の位置に少なくとも１つのＥＤＩスキーマ要素を移動する「move」コマンドに基づいて、少なくとも１つの変更を決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記決定するステップは、少なくとも１つのスキーマを構成する、データタイプ、単純データ要素、複合データ要素、セグメント、またはループのうちの少なくとも１つに対する少なくとも１つの変更を決定するステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
請求項１に記載の方法を実行するためのコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【請求項９】
請求項１に記載の方法を実行するための手段を含むことを特徴とするコンピューティングデバイス。
【請求項１０】
複数のＥＤＩスキーマを複数のＥＤＩスキーマ要素として保存するデータストアとインタフェースをとるためのサーバオブジェクトであって、
第１のツリーベース構造として表されたＥＤＩスキーマの指示されたバージョンを前記データストアから受信し、前記指示されたバージョンを第２のツリーベース構造として表された前記ＥＤＩスキーマの第２のバージョンと比較し、前記第１のツリーベース構造を構成する複数のＥＤＩスキーマ要素のうちの少なくとも１つのＥＤＩスキーマ要素と前記第２のツリーベース構造を構成する複数のＥＤＩスキーマ要素のうちの少なくとも１つのＥＤＩスキーマ要素の間の少なくとも１つの差分を決定する、差分解析コンポーネントと、
前記第１および第２のツリーベース構造を取り出すために、前記差分解析コンポーネントに代わって前記データストアとインタフェースをとるためのインタフェースコンポーネントと
を含むことを特徴とするサーバオブジェクト。
【請求項１１】
前記データストアは、リレーショナルデータストアであり、前記第１および第２のツリーベース構造が、リレーショナルフォーマットで表されることを特徴とする請求項１０に記載のサーバオブジェクト。
【請求項１２】
前記第１および第２のツリーベース構造の前記複数のＥＤＩスキーマ要素は、ＥＤＩデータタイプ、ＥＤＩ単純データ要素、ＥＤＩ複合データ要素、ＥＤＩセグメント、またはＥＤＩループのうちの少なくとも１つを含むことを特徴とする請求項１０に記載のサーバオブジェクト。
【請求項１３】
前記第１のツリーベース構造または第２のツリーベース構造をそれぞれ受信するのに先立って、前記指示されたバージョンまたは前記第２のバージョンの少なくとも一方を前記複数のＥＤＩスキーマ要素の拡張マークアップ言語（ＸＭＬ）表現から変換する変換コンポーネント
をさらに含むことを特徴とする請求項１０に記載のサーバオブジェクト。
【請求項１４】
前記少なくとも１つの差分は、ＥＤＩスキーマ要素の生成、ＥＤＩスキーマ要素の変更、またはＥＤＩスキーマ要素の削除のうちの少なくとも１つを含むことを特徴とする請求項１０に記載のサーバオブジェクト。
【請求項１５】
電子データ交換（ＥＤＩ）トランザクションセット定義（ＴＳＤ）のための編集ツールであって、
少なくとも１つのＥＤＩ  ＴＳＤを構成する複数のＥＤＩスキーマ要素の少なくとも１つのツリーベース表現を受信し、前記複数のＥＤＩスキーマ要素のうちの少なくとも１つのＥＤＩスキーマ要素を以前に変更した、少なくとも１つの変更を決定する、変更解析コンポーネントと、
前記少なくとも１つのＥＤＩ  ＴＳＤを表示し、前記少なくとも１つのＥＤＩスキーマ要素に対する前記少なくとも１つの変更を表示する、ユーザーインタフェースコンポーネントと
を含むことを特徴とする編集ツール。
【請求項１６】
前記ユーザーインタフェースコンポーネントは、前記少なくとも１つのＥＤＩ  ＴＳＤを構成する前記複数のＥＤＩスキーマ要素のツリーベースビューを含むことを特徴とする請求項１５に記載のユーザーインタフェース。
【請求項１７】
前記ユーザーインタフェースコンポーネントは、前記少なくとも１つのＥＤＩ  ＴＳＤの新しいバージョンを生成するために、前記複数のＥＤＩスキーマ要素のうちのＥＤＩスキーマ要素の編集を可能にすることを特徴とする請求項１５に記載のユーザーインタフェース。
【請求項１８】
前記ユーザーインタフェースコンポーネントは、前記少なくとも１つのＥＤＩ  ＴＳＤを構成する前記複数のＥＤＩスキーマ要素に関連するプロパティのプロパティ値の編集を可能にするプロパティ編集コンポーネントを含むことを特徴とする請求項１５に記載のユーザーインタフェース。
【請求項１９】
前記プロパティ編集コンポーネントは、名前（Ｎａｍｅ）値、ノードのタイプ（Ｔｙｐｅ）、説明（Ｄｅｓｃｒｉｐｔｉｏｎ）、要素のカーディナリティ（Ｃａｒｄｉｎａｌｉｔｙ）またはコンポーネントフィールドの数（Ｃｏｕｎｔ）のうちの少なくとも１つのプロパティ値を編集することを特徴とする請求項１８に記載のユーザーインタフェース。
【請求項２０】
前記ユーザーインタフェースコンポーネントは、前記複数のＥＤＩスキーマ要素の階層構造を編集する構造編集コンポーネントを含むことを特徴とする請求項１５に記載のユーザーインタフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、バージョン変更など、データストア内の電子データ交換（ＥＤＩ：ｅｌｅｃｔｒｏｎｉｃ  ｄａｔａ  ｉｎｔｅｒｃｈａｎｇｅ）スキーマ間の差分の解析および表示に関する。
【背景技術】
【０００２】
従来から、１つの組織から別の組織への任意の種類のビジネスデータの通信を自動化された方法で実施するために、組織は互いに、ＥＤＩを用いて、実質的に無限の種類の構造化メッセージを送信できるようになっている。この点に関して、ひとたびセットアップが適切に行われると、ＥＤＩメッセージは、パートナー、ビジネスサブユニット、買手などとの間の様々な通信を自動化するために使用でき、それによって、書類への記入や、大量の書類の保管などに関連するオーバヘッドを実質的に削減することができる。例えば、ＥＤＩを用いた場合、組織は、事前定義されたスキーマに従った仕方で電子フォームに記入するだけで、後は、電子フォームに関連するメッセージのメッセージング、保存／記録保持、および妥当性確認は、自動的に行われる。
【０００３】
したがって、ＥＤＩメッセージは、与えられたＥＤＩメッセージインスタンスをどのように解釈するかを、すなわち、ＥＤＩメッセージが正しく構造化され、適切な情報を備えていることをどのように評価するかを、ＥＤＩシステムに命令する、関連するＥＤＩスキーマを有する。この点に関して、トランザクションセット定義（ＴＳＤ：ｔｒａｎｓａｃｔｉｏｎ  ｓｅｔ  ｄｅｆｉｎｉｔｉｏｎ）とも呼ばれる、数千のＥＤＩメッセージタイプが存在する。例えば、特定のタイプのＥＤＩメッセージ、例えば、購買注文がＥＤＩシステムによって生成される場合、そのＥＤＩメッセージは、購買注文スキーマに従った方法で生成される。今日、ＥＤＩメッセージ用のスキーマを表すために、ＸＭＬスキーマ定義（ＸＳＤ：ＸＭＬ  Ｓｃｈｅｍａ  Ｄｅｆｉｎｉｔｉｏｎ）、外部データ表現（ＸＤＲ：ｅｘｔｅｒｎａｌ  ｄａｔａ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）、および文書タイプ定義（ＤＴＤ：ｄｏｃｕｍｅｎｔ  ｔｙｐｅ  ｄｅｆｉｎｉｔｉｏｎ）が、一般に使用される。この点に関して、ＸＳＤ、ＸＤＲ、およびＤＴＤは、特定の種類のＥＤＩメッセージ用のスキーマを記述するために生成される、スキーマファイルである。今日、ＸＳＤ、ＸＤＲ、およびＤＴＤファイルは、ＥＤＩシステムにおけるＥＤＩメッセージの妥当性確認および生成に関連して使用される、個別ファイルとして保存される。
【０００４】
しかし、ＥＤＩメッセージングの価値を最大化しようとする場合、組織は、ＥＤＩシステムのために、多くのスキーマを、それどころか同じスキーマの多くのバージョンをも保存しておくことがある。例えば、スキーマの数が数十を超えはじめると、それらのスキーマの保存要件およびバージョン管理は、取るに足りないことではなくなる。これには多くの理由がある。数百または数千のＥＤＩスキーマの間の差分、および同じバージョンの間の差分を理解しようと試みることは、最も控えめに言っても、難しく複雑である。
【０００５】
例えば、多くのスキーマは、異なるバージョンに基づいて、時間につれて進化するので、２つのバージョンの間の差分が何であるかを迅速および効率的に決定して、例えば、与えられた状況の組にとって正しいバージョンを選択するために、それらのバージョンを解析できることが望ましい。今日、同じＥＤＩスキーマの２つのバージョンを比較するための唯一の方法は、ネイティブフォーマット（典型的にはＸＭＬ）のスキーマファイルを見ながら、ユーザーが行単位の差分の比較を実行できるように、２つの別々のスキーマファイルを並べて表示することである。
【０００６】
例えば、同じＸＭＬ表現によるトランザクションセット定義（ＴＳＤ）の２つの異なるバージョン１８００ａおよび１８００ｂが、図１８に並べて示されている。２つのバージョンの間の差分は、バージョン１８００ａの「5」からバージョン１８００ｂの「2」へのmaxLength値の変更Ｃ１として示されている。同様に、異なるバージョン１８１０ａおよび１８１０ｂでは、ＸＭＬで表現されたＥＤＩ  ＴＳＤのelement nameが、名前を「RFFField1」から「ReferenceField1」に変更するといった、１８１０ａから１８１０ｂへの変更Ｃ２を受けている。しかし、行単位の差分解析によってこれらの差分を見つけることは、スキーマ表現の複雑さのせいで骨が折れる。これはＸＳＤによく習熟していることをユーザーに要求するが、それは余りにも負担が大きい。より容易な方法が存在すべきである。
【０００７】
第１に、このような差分解析は、ＥＤＩスキーマ要素からＸＭＬフォーマット情報のみをユーザーが抜き出すために、ＸＭＬおよびＸＳＤを読み理解する完全な能力を要求するので困難である。これは誤りを引き起こしがちであり、すなわち、ユーザーは人的検査によってすべての変更が見つけられたと決して確信することができない。加えて、バージョンとバージョンの間の変更点が多数になる場合、または複雑な構造変更を含む場合、行単位比較技法はどれも、はなはだしく不適切である。
【０００８】
加えて、ＥＤＩスキーマは、多くのＥＤＩ要素から構成されるが、それらは、異なるビジネス上の必要に従ってカスタマイズされる。したがって、問題となるＥＤＩ要素に関してスキーマ間の差分の直観的理解がユーザーに提示されるように、ＸＭＬファイルの行ではなく、それらのＥＤＩ要素に関してＥＤＩスキーマ間の差分を解析するＥＤＩシステムを有することが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、ＥＤＩ通信システムにおけるＥＤＩスキーマのバージョン管理の現最新段階における精巧さの欠如に鑑みて、データディクショナリ内のＥＤＩスキーマ間の差分の改善された理解のための、改良されたツールおよび記憶管理システムを提供するのが望ましい。ＥＤＩメッセージングの最新段階における上記およびその他の不完全性は、以下でより詳細に説明される本発明の様々な例示的で非限定的な実施形態の説明に基づいて明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記のことがらに鑑みて、特定のバージョンもしくはＥＤＩ構築ブロックの変更履歴、またはＥＤＩスキーマの２つのバージョンのＥＤＩ構築ブロック間の差分を決定および表示するために、ＥＤＩスキーマを構成するＥＤＩ構築ブロックのツリー構造の解析を実行する、ツリーベースＥＤＩデータディクショナリ差分解析ツールが提供される。２つのＥＤＩスキーマ間で行われた変更を直観的に表すため、様々な非限定的な実施形態では、ツリーベース差分解析を利用するツールによって、ＥＤＩ構築ブロックを超えるさらなる抽象概念からの干渉なしに、ＥＤＩ構築ブロック自体に関する変更として差分が表示される。例えば、ＥＤＩディクショナリストアに保存された、既存スキーマオブジェクトを編集し、それら編集されたスキーマオブジェクトの変更履歴を拡張することによって、ツールは、ユーザーが新しいスキーマバージョンを生成することも可能にする。
【００１１】
この後でより詳細な説明および添付の図面の中に現れる例示的で非限定的な様々な実施形態の基本的または一般的な理解を可能にする助けとなるように、ここでは簡略化された要約が提供される。しかし、この要約は、包括的または網羅的な概要として意図されてはいない。この要約の唯一の目的は、以下に続くより詳細な説明に対する前置きとして、簡略化された形式で、本発明の様々な例示的で非限定的な実施形態に関するいくつかの概念を提示することである。
【００１２】
本発明によるＥＤＩスキーマの差分を解析するためのシステムおよび方法が、添付の図面を参照しながらさらに説明される。
【図面の簡単な説明】
【００１３】
【図１】本発明の差分解析技法による、ＥＤＩ  ＴＳＤの例示的なツリーベース表現を示す図である。
【図２】本発明の様々な技法に従って追跡および表示される、ＥＤＩスキーマの第１のバージョンからＥＤＩスキーマの第２のバージョンへの変更を示すブロック図である。
【図３】本発明の様々な非限定的な実施形態による、リレーショナルデータベース内の再使用可能およびバージョン管理可能な記憶ブロックの一態様を示す図である。
【図４】多くのバージョンを保存することの冗長性を最小化するための、バージョンからバージョンへの変更についての保存表現を示す図である。
【図５】本発明の非限定的な実施形態による、リレーショナルフォーマットで表されたＥＤＩスキーマデータ用のディクショナリに関する例示的なData Typeテーブルを示す図である。
【図６】本発明の非限定的な実施形態による、リレーショナルフォーマットで表されたＥＤＩスキーマデータ用のディクショナリに関する例示的なObject Referenceテーブルを示す図である。
【図７】本発明の非限定的な実施形態による、リレーショナルフォーマットで表されたＥＤＩスキーマデータ用のディクショナリに関する例示的なChange Log Journalテーブルを示す図である。
【図８】本発明の変更解析技法による、ツリーベース表現に対する構造変更の一代表例を示すブロック図である。
【図９】本発明による、ＥＤＩスキーマオブジェクトに対する変更がリレーショナルデータストア内で表される方法についての例示的なテーブルビューである。
【図１０】本発明に従って提供される、変更解析コンポーネントと対応するユーザーインタフェースの対話を示す例示的なシステム図である。
【図１１】本発明の差分解析能力を使用するための例示的で非限定的なプロセスを示すフローチャートである。
【図１２】本発明の差分解析能力を使用するための例示的で非限定的なプロセスを示すフローチャートである。
【図１３】本発明の差分解析能力を使用するための例示的で非限定的なプロセスを示すフローチャートである。
【図１４Ａ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｂ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｃ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｄ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｅ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｆ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｇ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｈ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１４Ｉ】本発明のツリーベース差分解析技法による、ＥＤＩスキーマのバージョンの選択から、ＥＤＩスキーマのＥＤＩオブジェクトを編集し、新しいバージョンと第２のバージョンの間の差分を示すまでの、非限定的なＵＩスクリーンショットの例示的な流れを示す図である。
【図１５】サーバを有するホーム組織とホーム組織のトレーディングパートナーの間の代表的ＥＤＩ通信システムの例示的なブロック図である。
【図１６】ハブおよびスポークアーキテクチャを含む代表的ＥＤＩシステムの例示的なブロック図である。
【図１７】複数のＥＤＩトランザクションを含むインターチェンジデータ構造を表す例示的なブロック図である。
【図１８】行ベース差分解析に伴う問題を表すブロック図である。
【図１９】本発明がその中で実施される、例示的で非限定的なネットワーク環境を表すブロック図である。
【図２０】本発明がその中で実施される、例示的で非限定的なコンピューティングシステムまたは動作環境を表すブロック図である。
【発明を実施するための形態】
【００１４】
概要
今日のＥＤＩ通信システムにおける、ＥＤＩスキーマに対する変更を解析および表現するための適切なツールの欠如に鑑みて、様々な非限定的な実施形態において、本発明は、ＥＤＩ構築ブロック間の差分を決定するために、ＥＤＩスキーマを構成するＥＤＩ構築ブロックのツリー構造の解析を実行する、ツリーベースＥＤＩデータディクショナリ差分解析ツールを提供する。差分解析ツールは、同じＥＤＩスキーマの２つのバージョン間の差分を決定するために、使用することができる。２つのＥＤＩスキーマ間で行われた変更を直観的に表現するため、ツリーベース差分解析を利用し、ユーザーがＥＤＩ構築ブロックに基づいてスキーマを編集し、それによって新しいバージョンさえも生成することを可能にするツールによって、ＥＤＩ構築ブロックに対する変更として差分を表示することが可能となる。
【００１５】
さらなる背景として、各ＥＤＩメッセージタイプは、関連するＴＳＤを有し、ＴＳＤは、ループ（Ｌｏｏｐ）、セグメント（Ｓｅｇｍｅｎｔ）、複合（Ｃｏｍｐｏｓｉｔｅ）、単純フィールド（Ｓｉｍｐｌｅ  Ｆｉｅｌｄ）、およびデータタイプ（Ｄａｔａ  Ｔｙｐｅ）などの、より小さな構築ブロックから構成される。ＴＳＤは、時間につれて変更を受ける。本発明の様々な非限定的な実施形態では、ユーザーが時間につれて行われるこれらの変更を解析し、それらをバージョン管理するのに役立つ、ツールが提供される。ツールは、変更によって影響を受けるＥＤＩデータ要素に関して、バージョン間の変更を直観的に表現する。
【００１６】
したがって、ツリーベース差分解析ツールは、行単位の比較のみを実行する既存の行ベースシステムの短所を排除し、ＸＭＬなど、ＥＤＩスキーマを表現するために適用されるどのような付加的なタイプ体系とも独立な、ＥＤＩスキーマ概念に関する変更の正確で的確な表示を提供し、影響を受けるＥＤＩ構築ブロックに関して２つのスキーマ間の変更を自動的に表示する簡単なユーザーインタフェースを用いて、推測作業を排除する。したがって、差分は、差分の検査をユーザーにとって直観的なものにするより高いレベルのユーザー構造によって追跡される。
【００１７】
様々な非限定的な実施形態では、移動（ｍｏｖｅ）は、第１のクラスのコマンドとして扱われ、ユーザーを混乱させるカットアンドペースト（ｃｕｔ  ａｎｄ  ｐａｓｔｅ）のようには扱われない。他の非限定的な実施形態では、データの１つのマスタコピーが維持され、その後、本発明のツリーベース変更解析を利用する場合、マスタからのすべての変更は、データを構成するＥＤＩ構築ブロックに対する異なる操作として追跡される。これは、効率的な保存、および迅速で効率的なＥＤＩスキーマの異なるバージョンの正確な再構成をもたらす。
【００１８】
リレーショナルストア内のツリー構造としてのＥＤＩスキーマ要素
様々な非限定的な実施形態において、本発明は、ＥＤＩスキーマをバージョン管理し、編集し、表示するためのツールを提供する。言及されたように、ＥＤＩシステムには、ＥＤＩメッセージタイプを表現する数千のＴＳＤが存在する。ＥＤＩを用いた場合、ＴＳＤは、名前空間とルートノード名の組み合わせである、DocTypeによって識別される。より形式的には、これは、以下の関係によって、すなわち、DocType = TargetNamespace #' RootNodeNameによって記述される。
【００１９】
Ｘ１２スキーマは、以下の形式、すなわち、X12_{Version}_{TsId}によって表現される。このＸ１２形式では、すべてのスキーマは、「X12」で開始するルートノード名を有する。次に「Version」は、文書のバージョンを表し、これは、コンフィグレーションまたはインスタンスドリブンである動的な情報部分である。最後に「TsId」は、処理される文書のトランザクション識別子であり、常に入力インスタンスから読み取られる。
【００２０】
Ｅｄｉｆａｃｔスキーマは、以下の形式、すなわち、Efact_{Version}_{Tsid}によって表現される。したがって、すべてのＥｄｉｆａｃｔスキーマは、「Efact」で開始するルートノード名を有する。「Version」は、文書のバージョンを表し、「Version」は、インスタンスドリブンである動的な情報部分であり、すなわち、Ｅｄｉｆａｃｔスキーマの場合、コンフィグレーションドリブンは、選択肢とはならない。「TsId」はやはり、処理される文書のトランザクション識別子であり、常に入力インスタンスから読み取られる。
【００２１】
ＥＤＩスキーマは、ルートノードから成る。各ルートノードは、子として一連のループおよびセグメントを有することができる。ループは、入れ子になったサブループ、またはセグメントを含むことができる。例示的なＴＳＤの階層的ツリー構造が、図１に示されている。これから説明される本発明の実施形態における再使用の最低レベルでは、データタイプ１３０ａ、１３０ｂ、１３０ｃ、１３０ｄ、１３０ｅ、１３０ｆが、異なるスキーマＴＳＤにわたって再使用される。次に、データタイプを含む単純データ要素（Ｓｉｍｐｌｅ  Ｄａｔａ  Ｅｌｅｍｅｎｔ）１１２ａ、１１２ｂ、１１２ｃ、１１２ｄ、１１２ｅなどが、次のレベルに存在する。複合データ要素（Ｃｏｍｐｏｓｉｔｅ  Ｄａｔａ  Ｅｌｅｍｅｎｔ）１１０ａおよび１１０ｂは、単純データ要素１１２ｂ、１１２ｃおよび単純データ要素１１２ｄ、１１２ｅなど、異なる単純データ要素をそれぞれ含む。セグメント１００ａは、単純データ要素１１２ａおよび複合データ要素１１０ａを含む。セグメント１００ｂは、複合データ要素１１０ｂを含む。最後に、ループ１２０ａは、ループ１２０ｂおよびセグメント１００ａを含み、ループ１２０ｂは、セグメント１００ｂをさらに含む。
【００２２】
より形式的な用語では、ＥＤＩ文書スキーマは、以下の構造を含む。
【００２３】
【表１】
2010504592.tif 000003
【００２４】
これらのより形式的な用語では、図１のＥＤＩスキーマのセグメント１００ａ、１００ｂなどは、したがって、データ要素の集まりである複合データ要素を含む、ＥＤＩデータ要素（「Data Element」）を含む。データ要素は、名前と、その最小発生数および最大発生数と、データタイプ、例えば、英数字を意味する「AN」または数字を意味する「N」とを含む。データ要素のデータタイプは、最小長と、最大長と、名前（例えば、ＵＯＭ−測定単位）と、名前の値（例えば、ｋｇ、ｍｌ、ｃｃ、ｌｂｓなど）とを含むように定義される。
【００２５】
より具体的には、Ｘ１２データタイプは、以下のいずれかとすることができる。
Nn−ｎ≧０によって規定される暗黙の小数点を有する整数タイプ。
ID−任意選択の長さ制限を有する列挙データタイプ。
AN−長さ制限を有する英数字データタイプ。
R−実数。
Date−日付データタイプ。
Time−時間データタイプ。
【００２６】
またＥｄｉｆａｃｔデータタイプは、以下のいずれかとなるように定義される。
A−長さ制限を有する英字データタイプ。
N−長さ制限を有する数字データタイプ。
ID−任意選択の長さ制限を有する列挙データタイプ。
AN−長さ制限を有する英数字データタイプ。
【００２７】
背景技術において言及されたように、かつては、これらの構造は、ＸＳＤ、ＸＤＲ、ＤＴＤなどで、すなわち、別個のファイルとして表現されていた。しかし、これは、リレーショナル形式のストレージがデータの保存のために生みだした能力を利用していない。この点に関して、本発明の例示的で非限定的な態様では、ＥＤＩスキーマおよび関連するＥＤＩデータ要素は、以下でより詳細に説明されるように、リレーショナルスキーマとして保存され、すなわちリレーショナルデータベース内にリレーショナルファイルとして、例えば、ＭｉｃｒｏｓｏｆｔのＡｃｃｅｓｓファイル（ＭＤＢフォーマット）として保存される。図１のＥＤＩスキーマのツリー構造は、リレーショナルフォーマットでの効率的な保存に向いており、その点で、リレーショナルデータ構造は、階層的ツリーデータを表現するのによく適している。
【００２８】
したがって、概要において上述されたように、例示的で非限定的な一発明において、本発明は、構造化問合せ言語（ＳＱＬ）フォーマットなど、リレーショナルストレージ内のＥＤＩデータを表現する、ＥＤＩスキーマ用のデータディクショナリを構築する。結果として、ＥＤＩ  ＴＳＤは、他のＴＳＤによって効率的に再使用される、より小さな部分に分解される。したがって、本発明の例示的な一実施形態によれば、再使用されるＥＤＩ構築ブロックは、データタイプと、データタイプを含む単純データ要素と、他の単純データ要素を含む複合データ要素と、単純および／または複合要素を含むセグメントと、他のループおよび／またはセグメントを含むループとを含む。
【００２９】
ループ、セグメント、単純データ要素、複合データ要素、および／またはデータタイプのいずれもが、ＥＤＩスキーマ構築ブロックとして再使用される。本発明の別の例示的で非限定的な態様では、例えば、変更されたビジネス上の必要性を反映するために、各ＥＤＩ構築ブロックは、時間につれて進化し、変更されることを許される。例えば、ビジネスが、アメリカからヨーロッパに移動し、ＥＤＩスキーマ内で表されるＵＯＭ（測定単位）をポンドからキログラムに切り替えなければならないこともある。そのような場合、ＥＤＩスキーマの構築ブロックは、ＥＤＩスキーマを表すデータストアにとって意味のある方法で変更されるので、そのような変更が行われた後、今日では、バージョン情報を保存する方法が存在しない。
【００３０】
別の例では、図２のＥＤＩ８５０スキーマ（例えば購買注文スキーマ）の例示的な原バージョン２００に示されるように、スキーマは、ゼロによって指示されるように、現在は日付／時間参照（ＤＴＭ）要件をもたない、再使用可能およびバージョン管理可能な構築ブロック２０２を含む。しかし、その後、ＤＴＭを使用して購買注文を開始することを顧客が要求した場合、スキーマは、バージョン２１０および構築ブロック２１２をもたらすように変更されなければならない。本発明によれば、構築ブロック２１２は、構築ブロック２０２の変形となり、ＥＤＩ構築ブロック２０２の編集は、構築ブロック自体に関して実行され、構築ブロック２０２から構築ブロック２１２への変更は、本発明の差分解析技法を使用して、速やかに表示される。
【００３１】
したがって、本発明は、構築ブロックの各コピーについて、それが変更された場合に、情報をバージョン管理することを可能にし、複数のバージョンが独立に使用されることを可能にする。したがって、バージョン管理された本発明のＥＤＩスキーマ構築ブロックを用いて、第１のＴＳＤには、ＲｅｆＬｏｏｐと名づけられたループ構築ブロックの第１のバージョンを使用させることが可能であり、一方、第２のＴＳＤは、ＲｅｆＬｏｏｐの第２のバージョンを使用することができる。実際、バージョン管理されたＥＤＩスキーマ構築ブロックを用いて、単一のＴＳＤは、ＲｅｆＬｏｏｐの第１および第２のバージョンの両方を別々に使用することができる。この状況は、図３のリレーショナルデータストア３００に保存された、本発明のデータディクショナリにおいて図説されており、ＲｅｆＬｏｏｐ  Ｖ１は、ＴＳＤ１およびＴＳＤ３において使用され、ＲｅｆＬｏｏｐ  Ｖ２は、ＴＳＤ２およびＴＳＤ３において使用されている。
【００３２】
この点に関して、本発明は、スキーマに対する２つの種類の変更、すなわち、プロパティに対する変更および構造に対する変更についてのバージョン管理をサポートする。例えば、プロパティに対する変更は、プロパティの最小発生数、最大発生数、または名前に対する変更とすることができる。スキーマの構造に対する変更は、新しい子要素の挿入、スキーマの１つの位置から別の位置への既存の子要素の移動、ループ順序の再配置などを含むことができる。
【００３３】
したがって、上で様々な非限定的な実施形態において説明されたように、本発明は、ＥＤＩデータディクショナリ要素の保存およびそれらのバージョン管理を可能にする。様々な非限定的な実施形態では、各要素は、セーブされ、セーブされたバージョンから再生成される、オブジェクトとして扱われる。オブジェクトに対するすべての変更は、changeListと呼ばれる一意識別子によって追跡される。非限定的な一実施では、単一のchangeListが、複数のオブジェクトを変更することができる。
【００３４】
図４に例示的に示されるように、一実施形態では、第１のバージョン４００から開始して、次に第２のバージョンを取得するために変更４１０を追加し、次に第３のバージョンを取得するために変更４２０をさらに施し、以降も同様にすることによって、バージョンが再構成される。
【００３５】
したがって、各オブジェクトは、関連するバージョン番号を有する。本発明の例示的で非限定的な一実施形態では、オブジェクトが最初に生成される場合、バージョン番号の１が与えられる。そのオブジェクトに対する後のすべての変更は、差分情報としてシステムにセーブされ、すなわち、オブジェクト全体の新しいコピーをセーブするのとは対照的に、変更の本質がシステムにセーブされる。これは、効率的な保存をもたらす。さもないと、時間が経つにつれて、オブジェクトの数百のバージョンが存在する場合、同じＥＤＩ構築ブロック情報のあまりにも大量の重複が存在することになる。
【００３６】
言及されたように、本発明によれば、オブジェクト、すなわち、ＥＤＩスキーマ構築ブロックは、リレーショナルフォーマットで保存される。そのようなオブジェクトを表す、Field Name５１０および関連するData Type５２０を有する、例示的なテーブル構造５００が、図５に部分的に表示されている。各data type５２０は、name５１０を有する。他のカラムは、任意選択のdescription、EdiMessageTypeなどを含むことができる。本発明に従って付加的に保存されるフィールドは、上述のバージョン管理の１つまたは複数の態様をサポートするための以下のフィールド、すなわち、
CreatedByChangeList−当該オブジェクトを生成した変更リスト番号
OpenedByChangeList−当該オブジェクトが現在編集されているかどうか
LatestVersion−当該オブジェクトの最新バージョン
を含む。
【００３７】
本発明の例示的で非限定的な一実施形態では、バージョン管理されるすべてのオブジェクトは、上記の３つのアトリビュートを共有するが、他のプロパティは、オブジェクト固有である。例えば、DataTypeオブジェクトとSimpleFieldオブジェクトは、上記の３つのアトリビュートを共有するが、他のプロパティについては異なっている。
【００３８】
オブジェクト参照に関して、本発明によれば、オブジェクトは、様々な場所で使用される。したがって、セグメントは、ループまたは別のＴＳＤによって再使用される。オブジェクトが使用される場合は常に、それに対して参照が行われ、その後、それが、図６に表されるオブジェクト参照テーブル６００などのテーブルに保存される。オブジェクトの各使用は、ベースオブジェクトの識別子をそのバージョンとともに指し示す。
【００３９】
変更ログは、複数のオブジェクトを変更することができる。changeListによって変更されたすべてのオブジェクトは、changeLogJournalに格納される。変更ログジャーナルテーブル７００の例示的な構造が、図７に表示されている。テーブル７００は、オブジェクトのオブジェクト識別子と、変更を引き起こしたchangeList番号と、オブジェクトの新しいバージョンとを獲得する。加えて、各変更は、オブジェクト上で実行された操作のタイプを示す。一実施形態では、これは、オブジェクトの生成と、オブジェクトの変更と、オブジェクトの削除とを含む。
【００４０】
別の例示的で非限定的な態様において、本発明は、構造等価解析（ｓｔｒｕｃｔｕｒａｌ  ｅｑｕｉｖａｌｅｎｃｅ  ａｎａｌｙｓｉｓ）を通して、ＸＭＬスキーマからの再使用可能部分の抽出を可能にする。ＥＤＩペイロードをＸＭＬデータとしてモデル化することは、多くの利点を有することが理解できる。しかし、ＸＭＬスキーマの使用は、多くの熟練および専門知識を必要とする。したがって、本発明のディクショナリシステムは、上述の技法に従ってリレーショナルシステム内に保存されたＴＳＤからＸＭＬスキーマを生成するための、ネイティブ能力を有する。その結果、ユーザーは、有利なことに、ＸＭＬ規則に忠実であるためにＥＤＩデータを超えた多くの特別な情報およびフォーマットを含むが、ＸＭＬスキーマよりもはるかに理解が容易なＴＳＤを扱うように解放される。
【００４１】
本発明に従って保存されたＥＤＩスキーマからＸＭＬスキーマをネイティブに生成できるのに加えて、ユーザーは、外部ＸＭＬスキーマを本発明のディクショナリシステムにインポートすることもできる。インポートプロセスの最中、ＸＭＬスキーマは、構文解析され、例えば、図１に関して上述されたような、データタイプ、単純要素、複合要素などの、より小さな部分に分割される。これら構築ブロックの各々について、システムは、構築ブロックの構造をリレーショナルデータストア内にすでに存在する構造と比較する。受け取った文書が既存スキーマの変形に相当する場合、受け取ったＥＤＩスキーマとデータディクショナリ内のそのＥＤＩスキーマの別バージョンとの間の差分を表示するために、本発明の差分解析ツールが使用される。
【００４２】
ＥＤＩデータディクショナリのための差分解析
本発明の他の例示的で非限定的な態様では、上述のようなＥＤＩデータディクショナリ内に保存されたツリーベース構造上で差分解析を実行する、ユーザーフレンドリなデータディクショナリエディタが提供される。この点に関して、ＸＭＬスキーマは、使用および操作が難しい。ＥＤＩペイロードはＸＭＬスキーマに基づいてモデル化されるが、ＥＤＩデータには、ＸＭＬスキーマ構造の僅かな部分だけが関係するに過ぎない。したがって、本発明によれば、ＸＭＬスキーマ構造から捨象し、それらをユーザーから隠蔽でき、関連するＥＤＩ構造だけを提示する、ＴＳＤエディタが提供される。同じスキーマの２つのバージョン間で決定された変更について、ＥＤＩスキーマツリー構造の関連ノードに対する変更だけが、ユーザーに表示される。
【００４３】
詳細に上述されたように、各ＥＤＩメッセージタイプは、ループ、セグメント、複合、単純フィールド、およびデータタイプなど、より小さな構築ブロックから構成される、関連するＴＳＤを有する。（ＥＤＩスキーマ要素、ＴＳＤ要素、ディクショナリ要素、オブジェクト、ツリーノードなどとも呼ばれる）これらの構築ブロックは、グローバル定義のディクショナリから使用される。典型的には、ディクショナリ内には数千の要素が存在し、変更された取引パートナー契約を反映して、それらは時間につれて変更を受ける。したがって、行ベースシステムの推測作業の必要性および他の短所を排除し、変更の正確で的確な表示を提供する、ツリーベース差分解析ツールが提供される。差分は、ＥＤＩスキーマ要素にマップされるより高いレベルのユーザー構造によって追跡され、それが、ユーザーによるスキーマ内の差分の解析を非常に簡単にする。これらの差分は、与えられた差分が（例えば、与えられたプロパティの最大値を変更したことによる）ツリー要素のプロパティに対する変更であるかどうか、または与えられた差分が（例えば、ノードのリレーションシップを他のノードに移動したことによる）ツリー自体の構造に対する変更であるかどうかに関して、さらに表される。
【００４４】
また、別の非限定的な態様では、「Move」コマンドは、「Cut and Paste」とは対照的に、第１のクラスのコマンドとして扱われるが、それは、Cut and Pasteは、時々ユーザーに混乱を起こさせるからである。これは、Cut and Pasteは、（１）cut、remove、またはdeleteアクションと、（２）paste、add、またはcopyアクションの、２つの概念アクションとして考えられるからである。２つのアクションは、両方のアクションが一緒に行われるかどうか、または別々のものとして意図されたかどうかに関して、紛らわしいことがあるが、move（単一の概念アクション）は、それらが一緒のものとして意図されたかどうかに関して、どのような曖昧性も除去する。
【００４５】
図４に関連して上で言及されたように、一実施形態では、異なるバージョンの効率的な保存および正確な再構成のため、本発明は、データの１つのマスタコピーと、データに対する異なる操作としての、そのデータに対するすべての追跡された変更とを維持する。
【００４６】
したがって、ディクショナリ要素は時間につれて変更されるので、既存バージョンがそれ以前のバージョンとどのように異なるかについての理解を得るために、変更イメージを提供する、ツールを有することが重要である。
【００４７】
現在の差分解析ツールを用いた場合、背景技術において説明されたように、ＴＳＤは通常、ＸＭＬスキーマの形式で表現される。ＴＳＤに対するどのような変更も、ＸＭＬスキーマ（ＸＳＤ）ファイルの１つまたは複数の行に対する変更を引き起こす。その場合、人々は、変更を解析するために汎用差分ツールを使用する。しかし、これらは、階層についての概念をもたない行ベースツールであり、したがって、ＸＳＤによって表されたＥＤＩスキーマツリーの構成要素を理解することができない。この点に関して、ＴＳＤは階層的エンティティであり、したがって、変更を追跡するために行ベースツールを使用することは、よい選択ではない。
【００４８】
ＥＤＩデータディクショナリが、ループ、セグメント、複合など本質的に階層的な項目を含むこと、および各要素が、プロパティと、子（他の子を含むことができ、以降も同様）のリストとを含むことを認識して、本発明は、ＥＤＩデータディクショナリ用の階層的差分解析ツールを提供する。この点に関して、本発明は、ＴＳＤの階層的性質を理解し、ＸＳＤで提示されることもある、ＥＤＩスキーマを表す任意の基礎をなすタイプ体系の複雑さを隠蔽もする、データディクショナリエディタを提供する。開始文書、時間、またはバージョンを与えると、ツールは、任意のＴＳＤ、またはＥＤＩデータディクショナリの他の任意の構成要素に対して行われた変更を表示する。
【００４９】
上でそれとなく言及されたように、オブジェクトに適用される変更、コマンド、操作などには、（１）プロパティ変更、（２）構造変更の、大きく分けて２つのタイプが存在する。プロパティ変更は、オブジェクトに関連するプロパティを変更し、その階層状態は変更しない。様々な実施形態では、以下のタイプのプロパティ変更のいずれもがサポートされる。
NameEdit−オブジェクトの名前に対する変更
DescriptionEdit−オブジェクトに関連するユーザーコメントに対する変更
MinOccursEdit−最小発生カーディナリティ値（ｍｉｎｉｍｕｍ  ｏｃｃｕｒｓ  ｃａｒｄｉｎａｌｉｔｙ  ｖａｌｕｅ）の変更
MaxOccursEdit−最大発生カーディナリティ値（ｍａｘｉｍｕｍ  ｏｃｃｕｒｓ  ｃａｒｄｉｎａｌｉｔｙ  ｖａｌｕｅ）の変更
DataTypeNameEdit−データタイプの名前の変更
MinLengthEdit−フィールドの最小長の変更
MaxLengthEdit−フィールドの最大長の変更
TableEntryAdd−エントリがいつ許容値のリストに追加されたか
TableEntryRemove−エントリがいつ許容値のリストから削除されたか
【００５０】
代わりに、構造変更は、全体的な階層内でのオブジェクトの位置を変更する。ノード４が親ノード２から親ノード３に移動された場合の、階層ツリー８００から階層ツリー８１０への変更として、構造変更が示されている。ノード２およびノード３に関する子のリストは、結果としてともに変更される。様々な実施形態では、以下のタイプの構造変更のいずれもがサポートされる。
InsertChild−新しい子がいつオブジェクトに追加されたか
RemoveChild−既存の子がいつオブジェクトから削除されたか
MoveChild−子がいつ同じ親の１つの位置から他の位置に移されたか
【００５１】
システムは、上記の変更のタイプに関して、図９のテーブル９００に示されるオブジェクトのように、オブジェクトに対して行われたすべての変更を追跡する。変更前後の適時を含む、任意の時点において、ユーザーは、より高い次のバージョンを有するオブジェクトにラベル付けするようシステムに求めることができる。任意の時点において、ユーザーは、異なるバージョンからなる履歴を見ることができ、オブジェクトの各バージョンを再生成することができる。加えて、ユーザーは、オブジェクトの任意の２つのバージョンを開き、差分を見ることができる。差分は、変更をより解析し易くするために、簡単な言葉で表示される。したがって、基礎をなすＴＳＤを表現するＸＭＬスクリプトの代わりに、ユーザーは、「Minimum length of a field has changed from 5 to 2」または「the name of an object has changed from RFFField1 to ReferenceField1」などで、変更を理解する。これは、背景技術において提示された、ＸＭＬスキーマの専門知識を有する者にとってさえ読むのが難しい、図１８の並置されたＸＭＬバージョンとは対照的である。
【００５２】
図１０は、ＥＤＩデータディクショナリ１０００内のＥＤＩ構築ブロックのツリーベース表現と対話する、変更解析コンポーネント１０１０の例示的で非限定的な一実施形態を示すブロック図である。変更解析コンポーネント１０１０は、ユーザーインタフェース１０２０を介してユーザーによってアクセスされることが可能で、ユーザーインタフェース１０２０は、変更解析コンポーネント１０１０によって決定された変更を表示する。例えば、ユーザーインタフェース１０２０を介して、ユーザーは、バージョン間の差分を見るために、異なるスキーマバージョンが表示されるように要求することができ、または選択された特定のバージョンの変更履歴を要求することができる。表示されたバージョンは、ＥＤＩ構築ブロックに基づいてさらに編集可能であり、編集に基づいて追加バージョンを生成するように、編集されたどのＥＤＩ構築ブロックの変更履歴もシステムによって取得される。
【００５３】
図１１のフローチャートは、ＥＤＩスキーマのバージョンに対する変更履歴を表示するための例示的で非限定的なプロセスを示している。１１００において、ＥＤＩスキーマ構造の１つまたは複数のツリーベース表現が、ＥＤＩディクショナリストアから取り出される。１１１０において、ＥＤＩスキーマ構造の指示されたツリーベース表現のＥＤＩオブジェクトの１つまたは複数（もしくは全部）が、差分解析のために選択される。１１２０において、ディクショナリストアの適切な変更テーブルを参照した後、選択されたＥＤＩオブジェクトに対する変更の履歴が表示される。変更の履歴は、ＸＳＤ表現などによって導入される、ＥＤＩオブジェクトを覆う付加的なラッパ（ｗｒａｐｐｅｒ）を表示することなく、変更によって影響を受けるＥＤＩオブジェクトがよく分かる方法で表示される。
【００５４】
図１２のフローチャートに示されるように、ＥＤＩスキーマにおける差分を迅速に決定するためにバージョンを比較する例示的なプロセスについて、１２００において、ＥＤＩスキーマ構造の２つ以上のツリーベース表現が、ＥＤＩディクショナリストアから取り出される。１２１０において、ＥＤＩオブジェクトのツリーベース差分解析に基づいて、２つ以上のツリーベース表現のＥＤＩオブジェクト間の差分が決定される。その後、ＥＤＩオブジェクト自体に基づいた簡単な仕方で、異なるツリーベース表現のＥＤＩオブジェクト間の差分を表示するために、例示的なユーザーインタフェースが使用される。変更履歴と同様に、差分は、ＸＳＤ表現などによって導入される、ＥＤＩオブジェクトを覆う付加的なラッパを表示することなく表示される。したがって、２つのバージョン間の差分は、容易に確かめられる。
【００５５】
図１３は、１つまたは複数のＥＤＩオブジェクトを編集して、ＥＤＩスキーマの新しいバージョンを生成する例示的なプロセスをさらに示している。１３００において、ユーザーは、ＥＤＩスキーマ構造の指示されたツリーベース表現のＥＤＩオブジェクトを表示上で編集する。１３１０において、それらの変更が、ディクショナリストア内に保存される。１３２０において、変更に基づいた新しいバージョンをユーザーがセーブする場合、新しいバージョンは、その変更履歴とともに、本発明のツールを用いて再表示でき、ＥＤＩに固有の理解（ｎａｔｉｖｅ  ＥＤＩ  ｕｎｄｅｒｓｔａｎｄｉｎｇ）が得られるように、ＥＤＩ要素に対する変更を示す。
【００５６】
図１４Ａから図１４Ｉのスクリーンショットは、本発明の変更解析ツールを使用して、スキーマの新しいバージョンを開き、編集し、セーブし、その後、新しいバージョンを原バージョンと簡単容易に比較するための、一連のスクリーンショットによって表される非限定的なユーザーインタフェース（ＵＩ）との例示的な対話を示している。例えば、図１４Ａのスクリーンショット１４００は、部分１４０２にスキーマが何も表されておらず、スキーマがないことを示している、例示的なホーム画面を示している。図１４ＢのＵＩ１４１０を介して、スキーマ１４１２のいずれか１つがファイルシステムによって選択でき、それは、任意選択的に図１４ＣのＵＩ１４２０を介して確認される。開かれると（インポートされると）、図１４ＤのＵＩ１４３０に示されるように、例えば、名前、説明、バージョン、およびデータタイプなど、スキーマについてのいくつかの基本情報が表示される。この点に関して、開かれたスキーマがスキーマの第１のバージョンであることに留意されたい。
【００５７】
図１４ＥのＵＩ１４４０は、図１４Ｄで開かれたスキーマをより詳細に見たものを示している。ＵＩ１４４０は、（未展開で示された）ＥＤＩスキーマの実際のツリー構造を示す部分１４４２を含んでいる。部分１４４４は、ＥＤＩスキーマのプロパティのリストを示し、部分１４４６は、ＥＤＩスキーマの対応するプロパティ値のリストを示している。図１４ＦのＵＩ１４５０は、部分１４４２のツリー構造を要素すなわちオブジェクトBGM02に展開したものを示している。部分１４５４は、要素BGM02のプロパティのリストを示し、部分１４５６は、プロパティの編集可能値のリストを示している。例えば、図１４Ｆに示されるようにMaximum Lengthの値が値「35」から「5」に変更され、その後、変更をセーブしたと仮定すると、値の１つを編集することは、例示的なＵＩ１４６０によって示されるように、変更に対する説明を関連づける要求を引き起こす。
【００５８】
スキーマオブジェクトの変更履歴は、その後、そのスキーマオブジェクトに関連づけられた変更履歴に取り込まれ、その後、スキーマの第１のバージョンまで遡るスキーマの変更履歴を含むリストとして、図１４Ｈの例示的なＵＩ１４７０を介して表示される。ツールがＥＤＩ要素のレベルで機能して、どのような追加の複雑さもユーザーに与えないように、ＥＤＩ  ＴＳＤのＥＤＩ要素を表すためのＸＳＤまたは他のファイルフォーマットはどれも、ツールのユーザーから隠蔽されることに留意されたい。
最後に、本発明の差分解析コンポーネントの出力が、図１４Ｉの例示的なＵＩ１４８０の表示上で認められる。２つのツリーベース構造、すなわち、スキーマの第１のバージョンと、Maximum Lengthプロパティが35から5に変更された時に生成されたスキーマの第２のバージョンが、ＥＤＩオブジェクトの視覚的比較のために、それぞれ部分１４８２および１４８４にツリーとして表示される。部分１４８６は、第２のバージョンの様々なスキーマプロパティを示し、部分１４８８は、第２のバージョンを生成するために第１のバージョンから発生した変更を表示している。例えば、部分１４８８は、ツリー構造のノードBGM02のMaximum Lengthが35から5に変更されたことを簡単な仕方で述べている。本発明の一実施形態では、変更によって影響を受けたノードは、スキーマ間で同じであるノードから区別するために、強調表示または他の方法で目立つようにされる。このようにして、ユーザーは、スキーマのバージョン間の関連する差分がどれであるかを速やかに決定することができ、または他の方法で、ディクショナリストア内のどのスキーマの変更履歴でも見ることができる。
【００５９】
ＥＤＩメッセージングシステムに関する補足的背景
ＥＤＩは、人的介入を極力省いた電子的手段による、１つのコンピュータまたはコンピュータアプリケーションから別のそれらへの、合意されたメッセージング規格による、構造化情報の交換である。ＥＤＩは、承認されたフォーマット規格またはスキーマに基づいて、企業がコンピュータ対コンピュータでビジネス情報を交換する方法の１つである。例えば、世界中の数百万の会社は、通商を行うために、ＥＤＩを使用して、ビジネス取引（例えば、購買注文、積荷送り状／航空貨物受取証、または送り状など）に関するデータを送信および保存する。
【００６０】
したがって、ＥＤＩは、ビジネス取引データの伝送のために国内または国際規格団体によって合意された特定の交換方法に関係する、「承認された」フォーマット規格を使用した、ビジネス情報のコンピュータ対コンピュータの交換として定義される。ＥＤＩメッセージングの１つの典型的な応用例は、商品およびサービスの自動購入であるが、ＥＤＩメッセージはどれか特定の種類のビジネスデータに決して限定されない。この点に関して、世界中の数百万の会社は、通商を行うためにＥＤＩを使用する。原フォーマットでは、ＥＤＩデータは、区切りファイル（ｄｅｌｉｍｉｔｅｄ  ｆｉｌｅ）として（自己記述タグ（ｓｅｌｆ  ｄｅｓｃｒｉｂｉｎｇ  ｔａｇ）を用いずに）送信され、したがって、符号化規則は、対象アプリケーションが首尾よく構文解析を行い、情報を下流の処理で消費できるよう保証するために、非常に厳格なフォーマット規則を実施する。
【００６１】
互いに文書を送信または受信する組織は、ＥＤＩ用語では、「トレーディングパートナー（ｔｒａｄｉｎｇ  ｐａｒｔｎｅｒ）」と呼ばれる。トレーディングパートナーは、送信される具体的な情報と、それがどのように使用されるべきかに合意する。サービスプロバイダは、世界中の「ビジネスパートナー」を接続および統合するために、（トレーディンググリッド（ｔｒａｄｉｎｇ  ｇｒｉｄ）としても知られる）グローバルプラットフォームを提供する。サービスプロバイダは、様々な構成者間のＥＤＩ（またはＸＭＬ）文書の交換を透過的および容易にする、統合プラットフォームを提供する。これらのプロバイダは、エラーを低減し、サプライチェーン性能を改善するために、文書の追跡および調整も行う。
【００６２】
ＥＤＩ変換ソフトウェアは、内部システムと共通規格の間のインタフェースを提供し、「着信（ｉｎｂｏｕｎｄ）」文書と「発信（ｏｕｔｂｏｕｎｄ）」文書の両方に適用される。変換ソフトウェアは、他の方法、またはＥＤＩにもしくはＥＤＩから変換されるファイルフォーマットも利用することができる。
【００６３】
ＥＤＩファイルの構造化情報は、拡張マークアップ言語（ＸＭＬ）を用いても表現でき、その反対も可能であることが、当業者であれば理解できよう。同等のＸＭＬと比べて周知度のいくぶん低いＥＤＩの使用にもかかわらず、ＥＤＩファイルはそれでも、世界の大多数の電子商取引で使用されているデータフォーマットである。
【００６４】
図１５に示されるホーム組織１５５０用の例示的なＥＤＩシステムでは、一般に、様々なアプリケーション１５２２ａ、１５２２ｂなどが、データベース１５２０ａ、１５２０ｂなどによって受け入れられた、自動保存されたビジネス記録と対話できるように、ホーム組織１５５０の外部とネットワーク層１５４０を介して対話し、データベース１５２０ａ、１５２０ｂなどとインタフェースをとるために、ＭｉｃｒｏｓｏｆｔのＢｉｚＴａｌｋ  Ｓｅｒｖｅｒなどのサーバソフトウェア１５１０が配備される。ＥＤＩファイル、またはＥＤＩファイルのＸＭＬ表現は、ネットワーク層１５４０のインターネットＩＮまたは無線ローカルエリアネットワーク（ＷＬＡＮ）もしくは付加価値ネットワーク（ＶＡＮ）１５００を介し、ファイヤウォールＦＷを通して受信することができ、そのようなＥＤＩ／ＸＭＬメッセージは、様々なトレーディングパートナー１５３０、すなわち、パートナー１、パートナー２、・・・、パートナーＮのいずれからも受信することができる。サーバ１５１０は、ＥＤＩファイルまたはそのＸＭＬ表現のどのような必要な変換および構文解析も処理することができ、ＳＱＬなどデータベース固有フォーマットへのまたはデータベース固有フォーマットからのどのような変換も処理することができる。
【００６５】
一般に、ＥＤＩメッセージが受信された場合、ＥＤＩメッセージを受信したサーバは、ＥＤＩメッセージの受信の確認に関して、そのトレーディングパートナーに返答することができる。サーバは、ＥＤＩメッセージがスキーマに従って無効であるかどうかを規定し、無効である場合、その理由を規定し、またはサーバは、ＥＤＩメッセージが受け入れられたこと、エラーがあるが受け入れられたこと、もしくは拒否されたことを規定する。
【００６６】
インターネットＩＮは、ＥＤＩトランザクションが、トレーディングパートナー間ではるかに効率的な方法で送信されることを可能にする。インターネットＩＮは、広く受け入れられ、使用される、高速でコスト効率がよい開放型の環境を、企業および政府機関に提供する。
【００６７】
ＶＡＮ１５００は、トレーディングパートナー間の電子データの転送を実施する機構である。ＶＡＮ１５００は、企業主体が任意の時点にＥＤＩフォーマットデータをトレーディングパートナーの１つに送信することを可能にする、郵便局または専用パイプと見なすことができる。ＶＡＮ１５００は、送信されたトランザクションのファイルを、宛先のトレーディングパートナーが後の時点にそれを取り込むまで保持する。
【００６８】
ＥＤＩ規格は、下位レベルの技術とは独立であるように設計され、ファイル転送プロトコル（ＦＴＰ）、テルネット、および電子メールなどのインターネットプロトコルばかりでなく、付加価値ネットワーク（ＶＡＮ）などの私設ネットワークも使用して送信することができる。ＥＤＩ文書は、同一の組織機能のために使用されるペーパー文書に通常見出されるのと同じデータを含む。例えば、ＥＤＩ倉庫出荷指図（ｓｈｉｐ−ｆｒｏｍ−ｗａｒｅｈｏｕｓｅ  ｏｒｄｅｒ）は、小売業者への製品の出荷を倉庫に伝えるために、製造業者によって使用される。当該指図は一般に、送付先、請求先、製品番号リスト（例えば、ＵＰＣコード）、および数量を有する。当該指図は、当事者がそれを含むことに合意した場合は、他の情報も有することができる。しかし、ＥＤＩは、取引に直接関係するビジネスデータだけに限られておらず、医療（患者記録、検査結果など）、運送（コンテナおよび輸送方式情報など）、土木建築など、すべての分野を、すなわち、第１の主体が別の主体とのデータ交換を自動化したいと望むことがあるあらゆる場面を包含する。
【００６９】
典型的なＥＤＩトランザクションモデルでは、大規模企業主体またはＥＤＩ統合ブローカが、多くのパートナーと取引し、様々なＥＤＩフォーマットおよびスキーマの多くのＥＤＩトランザクションデータを処理する技術的能力を有する。これらの主体は、「ハブ（ｈｕｂ）」としても知られ、「スポーク（ｓｐｏｋｅ）」としても知られる１つまたは複数の供給者と取引する。スポークの各々は一般に、１つのハブだけを扱うことが可能な相対的に小規模な企業主体である。
【００７０】
スポークがＥＤＩを介してハブとの取引を開始しようと試みる前に、ハブは一般に、スポークがＥＤＩトランザクションをＥＤＩスキーマに従って適切にフォーマットできるように、様々なＥＤＩスキーマをスポークに送信する。
【００７１】
図１６は、本発明の例示的で非限定的な実施形態による、ＥＤＩトランザクションを実行するためのシステムを示すブロック図である。ＥＤＩトランザクションを実行するためのシステム１６００が示されている。システム１６００は、１つまたは複数のスポーク（例えば、スポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎ）に結合され、それらと通信する、ハブ１６０２を含む。一実施形態では、ハブ１６０２は、スポーク１６０４にサービスするために、コンピュータ実行可能命令を実行するための１つまたは複数のプロセッサ（例えば、プロセッサ１６０６）または処理ユニットを提供する、サーバコンピュータまたはコンピューティングデバイスを含む。一例では、スポーク１６０４は、図２０に示されたようなコンピュータ１６３０に含まれまたは結合される１つまたは複数のコンポーネントを有する、コンピューティングデバイスを含む。
【００７２】
一例では、ハブ１６０２は、ＥＤＩスキーマ１６１０など、１つまたは複数のＥＤＩスキーマを保存するためのメモリ領域１６０８も含む。最初、ハブ１６０２とスポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎは、両者の間でトランザクションデータを送信するために使用されるＥＤＩフォーマットまたは規格に関する合意を確立する。当事者が使用する特定のＥＤＩフォーマットまたは規格を決定すると、ハブ１６０２は、スポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎに送信される適切なＥＤＩスキーマを選択する。別の例では、ハブ１６０２は、スポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎに対して、購買注文、積荷証券、送り状、または給料支払簿など、すべてのタイプのトランザクション用にすべてのＥＤＩスキーマを選択することを選ぶこともできる。
【００７３】
ハブ１６０２とスポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎの間の通信は、私的または公的通信ネットワーク、有線または無線ネットワークとすることができるが、スポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎは一般に、ハブ１６０２から送信された大量のＥＤＩスキーマを処理するためのハードウェア資源を欠いている。加えて、スポーク１６０４−１、１６０４−２、１６０４−３、...、１６０４−Ｎのためのコンピューティングネットワーク通信のタイプおよび帯域幅は、データサイズが数ギガバイトに達する、数千のＥＤＩスキーマによって課されるそのような要求を処理するようには備わっていない。
【００７４】
次に、図１７は、組織が、複数のＥＤＩメッセージを含む、ＥＤＩメッセージ用のある種のカートン（ｃａｒｔｏｎ）である、インターチェンジ（ｉｎｔｅｒｃｈａｎｇｅ）１７００を生成できることを示している。インターチェンジ１７００は一般に、ヘッダを含み、ヘッダは、文書タイプと、文書の発信元と、文書の送付先と、日付と、時間と、任意のパスワード情報と、バージョン情報と、識別情報などを含む。次に、インターチェンジ１７００は、カートン内で概念的にエンベロープ（ｅｎｖｅｌｏｐｅ）として示された、一連の購買注文１７０２と、リターンマシンオーソライゼーション（ＲＭＡ：ｒｅｔｕｒｎ  ｍａｃｈｉｎｅ  ａｕｔｈｏｒｉｚａｔｉｏｎ）１７０４とを列挙する。次に、各エンベロープは、概念的に１つまたは複数の個別ＥＤＩファイルまたはメッセージを表す。例えば、購買注文１７０２は、個別の購買注文ＰＯ１、ＰＯ２を含み、ＲＭＡ１７０４は、ＲＭＡ  ＲＭＡ１、ＲＭＡ２を含むなどである。
【００７５】
次に、カートン−＞エンベロープ−＞メッセージ間のこの概念的な関係に対応する、フラットファイルネイティブＥＤＩフォーマットが存在する。概念的表現に対応するシェル１７１７によって示されるように、ＩＳＡ＜−＞ＩＥＡインデントレベルは、インターチェンジ（カートン）の開始および終了を表す。ＧＳおよびＧＥインデントレベルは、カートン内の任意のエンベロープの開始および終了を表し、ＳＴおよびＳＥインデントレベルは、エンベロープ内の任意のメッセージの開始および終了を表し、すなわち、任意のＳＴとＳＥの間には、ＰＯ１ペイロード、ＰＯ２ペイロード、ＲＭＡ１ペイロード、およびＲＭＡ２ペイロードなど、個別のメッセージペイロードが存在する。
【００７６】
ＥＤＩを使用することにはいくつかの利点が存在し、そのすべてが、ユーザーに異なる利益を提供する。ＥＤＩを使用することの最も顕著な利益の１つは、それが提供する時間節約能力である。会社全体に情報のハードコピーを配布するプロセスを排除することによって、電子データへの容易なアクセスは、部署相互の伝達を簡素化する。また、別の時間節約利点は、すべての情報の起源を追跡し、したがって、情報源と通信するのに費やされる時間を著しく短縮する機能である。
【００７７】
この情報システムのユーザーの別の利益は、組織にかかるコストの総計的な節約である。初期セットアップコストは高く思えるかもしれないが、長期的に得られる全体的な節約は、その価値を保証する。規模に関わらず、どのような事業でも、ハードコピー印刷および文書輸送コストは累積する。ＥＤＩは、処理コストおよびペーパー文書の組織に関連する作業者生産性を削減する、情報のペーパーレス交換を可能にする。
【００７８】
ＥＤＩは、ペーパーベース情報交換よりも強力な別の利点も有し、それは、情報の正確さと関連がある。情報がすでに電子的に保存されている場合、データはすでにシステムに入力されているので、ＥＤＩは、正確さをチェックし、必要な訂正を行うための組織能力をスピードアップする。また、ペーパーベース方法とは異なり、ＥＤＩは、任意の時点で情報を送信および受信する機能を可能にし、それによって、迅速および効率的に通信するための組織能力を大幅に改善する。
【００７９】
ＥＤＩを使用することの難点は、初期セットアップである。インプリメンテーション、カスタマイズ、およびトレーニングから発生する準備費用および時間は、高額になる。しかし、ＥＤＩシステムは、本発明のバッチングメンバーシップ評価技法（ｂａｔｃｈｉｎｇ  ｍｅｍｂｅｒｓｈｉｐ  ｅｖａｌｕａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅ）を使用することなどによって、改善され続けるので、そのような難点は、使い易さが増すにつれて消滅する。
【００８０】
ＥＤＩ文書のためのＥＤＩＦＡＣＴおよびＸ１２規格
ＥＤＩメッセージを生成し、受信／処理するために使用できる、主要な２組のＥＤＩ規格が、すなわち、ＵＮ／ＥＤＩＦＡＣＴ（「ＥＤＩＦＡＣＴ」）の言い換えである、行政、商業、および運輸のための国連電子データ交換（Ｕｎｉｔｅｄ  Ｎａｔｉｏｎｓ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄａｔａ  Ｉｎｔｅｒｃｈａｎｇｅ  ｆｏｒ  Ａｄｍｉｎｉｓｔｒａｔｉｏｎ，Ｃｏｍｍｅｒｃｅ  ａｎｄ  Ｔｒａｎｓｐｏｒｔ）と、米国規格協会（ＡＮＳＩ）の公認標準化委員会（ＡＳＣ：Ａｃｃｒｅｄｉｔｅｄ  Ｓｔａｎｄａｒｄｓ  Ｃｏｍｍｉｔｔｅｅ）Ｘ１２（「Ｘ１２」）が存在する。両方とも世界中で使用されているが、北米では、Ｘ１２の方が、ＥＤＩＦＡＣＴよりも普及している傾向にある。これらの規格は、送り状および購買注文などの文書およびフォームの交換で使用される、フォーマット、キャラクタセット、およびデータ要素を規定し、例えば、購買注文は、ＥＤＩＦＡＣＴでは「ＯＲＤＥＲＳ」と、Ｘ１２では「８５０ｓ」と呼ばれる。
【００８１】
どちらが選択されても、それらの規格は、特定の文書にとって情報のどの部分が必須であり、どの部分が任意選択であるかを指図し、文書構造についての規則を与える。この点に関して、任意選択部分については、２つのＥＤＩ文書は、同じ規格に従いながら、異なる情報の組を含むことができる。例えば、食品会社は、特定の製品の賞味期限を示すことができ、一方、衣料製造業者は、色およびサイズ情報を送信するように選択することができる。
【００８２】
以下は、説明を専ら目的とした、ＥＤＩＦＡＣＴメッセージの一例であって、例えば、製品入手可能性要求に回答するために使用でき、
【００８３】
【表２】
2010504592.tif 000004
【００８４】
ここで、以下の記号は、以下の意味を有し、
は、セグメント終止符（ｓｅｇｍｅｎｔ  ｔｅｒｍｉｎａｔｏｒ）、
+は、データ要素分離符（ｄａｔａ  ｅｌｅｍｅｎｔ  ｓｅｐａｒａｔｏｒ）、
:は、コンポーネントデータ要素分離符（ｃｏｍｐｏｎｅｎｔ  ｄａｔａ  ｅｌｅｍｅｎｔ  ｓｅｐａｒａｔｏｒ）、
*は、反復分離符（ｒｅｐｅｔｉｔｉｏｎ  ｓｅｐａｒａｔｏｒ）、
?は、解除文字（ｒｅｌｅａｓｅ  ｃｈａｒａｃｔｅｒ）である。
【００８５】
上記セグメントのいくつかに含まれる情報を説明すると、「UNH+1+PAORES:VV3:1:IA'」によって示される、上記の例示的なＥＤＩファイルのセグメントは、ヘッダセグメントである。ヘッダセグメントは、すべてのＥＤＩメッセージの先頭で必要とされる。この特定のファイルセグメントを用いて、メッセージ名およびバージョンが、PAORES VV3、改訂第１版として規定され、それは、組織ＩＡＴＡによって定義された。「IFT+3+NO MORE FLIGHTS'」によって示される、上記の例示的なＥＤＩファイルのセグメントは、テキスト「NO MORE FLIGHTS」を含む「対話型自由テキスト（Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｒｅｅ  Ｔｅｘｔ）」セグメントである。「UNT+13+1'」によって示される、上記の例示的なＥＤＩファイルのセグメントは、末尾セグメントであり、それによって、送信メッセージが１３個のセグメントを含むことを示す。
【００８６】
ＥＤＩＦＡＣＴファイルは、階層構造を有する。最上位レベル要素は、メッセージに関連する。メッセージは、一連のグループおよびセグメントである。グループまたはセグメントは、必須（Ｍ）または条件的（Ｃ）とすることができ、その反復を規定でき、例えば、ＣＶＶＶＶは、セグメントまたはグループの０回からＶＶＶＶまでの反復を示すが、ＭＶＶＶＶは、１回からＶＶＶＶまでの反復を示す。
【００８７】
グループは、メッセージと同様に、一連のセグメントまたはグループである。グループの下位の第１のセグメント／グループは、必須でなければならない。状況の論理が条件的であることを要求する場合は、代わりにグループ自体が条件的にされるべきである。
【００８８】
例示的なネットワークおよび分散環境
当業者であれば、本発明が、任意のコンピュータまたは他のクライアントもしくはサーバデバイスに関連して実施でき、それらが、コンピュータネットワークの部分として、または分散コンピューティング環境内に配備でき、任意の種類のデータストアに接続できることを理解することができる。この点に関して、本発明は、任意の数のメモリまたはストレージユニットと、任意の数のストレージユニットまたはボリュームにわたって発生する任意の数のアプリケーションおよびプロセスとを有する、任意のコンピュータシステムまたは環境に関し、それは、本発明によるＥＤＩスキーマにおける変更を解析するためのプロセスに関連して使用することができる。本発明は、リモートまたはローカルストレージを有する、ネットワーク環境内または分散コンピューティング環境内に配備されるサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明は、プログラミング言語機能と、リモートまたはローカルサービスおよびプロセスに関連して情報を生成し、受信し、送信するための、解釈および実行能力とを有する、スタンドアロンコンピューティングデバイスにも適用することができる。
【００８９】
分散コンピューティングは、コンピューティングデバイスおよびシステムの間の交換によって、コンピュータリソースおよびサービスの共用を提供する。これらのリソースおよびサービスは、情報の交換と、ファイルなどのオブジェクトのためのキャッシュ記憶およびディスク記憶とを含む。分散コンピュータは、ネットワーク接続性を利用し、クライアントがそれらの集団的能力を活用して企業全体に利益を与えることを可能にする。この点に関して、様々なデバイスは、本発明のＥＤＩスキーマにおける変更を解析するためのシステムおよび方法に関係する、アプリケーション、オブジェクト、またはリソースを有することができる。
【００９０】
図１９は、例示的なネットワークまたは分散コンピューティング環境の概略図である。分散コンピューティング環境は、コンピューティングオブジェクト１９１０ａ、１９１０ｂなどと、コンピューティングオブジェクトまたはデバイス１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどとを含む。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを含むことができる。オブジェクトは、ＰＤＡ、オーディオ／ビデオデバイス、ＭＰ３プレーヤ、パーソナルコンピュータなど、同じまたは異なるデバイスの部分を含むことができる。各オブジェクトは、通信ネットワーク１９４０によって、別のオブジェクトと通信することができる。このネットワーク自体は、図１９のシステムにサービスを提供する、他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができ、複数の相互接続ネットワークを表すことができる。本発明の一態様によれば、各オブジェクト１９１０ａ、１９１０ｂなど、または１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどは、本発明によるＥＤＩスキーマにおける変更を解析するためのシステムおよび方法での使用に適した、ＡＰＩ、または他のオブジェクト、ソフトウェア、ファームウェア、および／もしくはハードウェアを使用する、アプリケーションを含むことができる。
【００９１】
１９２０ｃなどのオブジェクトは、別のコンピューティングデバイス１９１０ａ、１９１０ｂなど、または１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどにおいてホストされてよいことも理解できる。したがって、示された物理環境は、接続デバイスをコンピュータとして示すが、そのような説明は、単に例示的なものに過ぎず、代替として、物理環境は、ＰＤＡ、テレビ、ＭＰ３プレーヤなどの様々なデジタルデバイスを含むように示され、または説明されることができ、それらのデジタルデバイスはいずれも、インタフェースおよびＣＯＭオブジェクトなど、様々な有線および無線サービス、ソフトウェアオブジェクトを利用することができる。
【００９２】
分散コンピューティング環境をサポートする、様々なシステム、コンポーネント、およびネットワーク構成が存在する。例えば、コンピューティングシステムは、有線または無線システムによって、ローカルネットワークまたは広域分散ネットワークによって、互いに接続することができる。現在、ネットワークの多くは、インターネットに結合され、インターネットは、広域分散コンピューティング用のインフラストラクチャを提供し、多くの異なるネットワークを包含する。インフラストラクチャのいずれもが、本発明によるＥＤＩスキーマにおける変更の解析に付随して行われる例示的な通信のために使用できる。
【００９３】
インターネットは一般に、コンピュータネットワークの分野ではよく知られた、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）というプロトコルスイートを利用する、ネットワークおよびゲートウェイの集まりと言われる。インターネットは、ユーザーがネットワークを介して対話し、情報を共用することを可能にする、ネットワークプロトコルを実行するコンピュータによって相互接続された、地理的に分散したリモートコンピュータネットワークのシステムとして説明することができる。そのような広域分散情報共用のため、インターネットなどのリモートネットワークは、これまでは一般に、開放型システムに進化してきており、開発業者は、それを用いて、特に制限なしに専門的な操作またはサービスを実行するためのソフトウェアアプリケーションを設計することができる。
【００９４】
したがって、ネットワークインフラストラクチャは、クライアント／サーバ、ピアツーピア、またはハイブリッドアーキテクチャなど、多数のネットワークトポロジを可能にする。「クライアント」は、それが関係しない別のクラスまたはグループのサービスを使用する、クラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち、大まかに言って、１組の命令またはタスクである。クライアントプロセスは、他のプログラムまたはサービス自体についてのいかなる作業詳細も「知る」必要なしに、要求したサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワークシステムでは、クライアントは通常、別のコンピュータ、例えば、サーバによって提供される、共用ネットワークリソースにアクセスする、コンピュータである。図１９の説明では、一例として、コンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどが、クライアントと見なすことができ、コンピュータ１９１０ａ、１９１０ｂなどが、サーバと見なすことができ、その場合、サーバ１９１０ａ、１９１０ｂなどは、クライアントコンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどに対して後で複製されるデータを維持するが、状況に応じて、どのコンピュータも、クライアント、サーバ、またはその両方と見なすことができる。これらのコンピューティングデバイスのいずれも、データを処理することができ、または本発明によるＥＤＩスキーマの変更の解析に関係するサービスもしくはタスクを要求することができる。
【００９５】
サーバは一般に、インターネットまたは無線ネットワークインフラストラクチャなど、リモートまたはローカルネットワークを介してアクセス可能な、リモートコンピュータシステムである。クライアントプロセスは、第１のコンピュータシステムにおいてアクティブであることができ、サーバプロセスは、第２のコンピュータシステムにおいてアクティブであることができ、通信媒体を介して互いに通信し、したがって、分散された機能を提供し、複数のクライアントがサーバの情報収集能力を利用することを可能にする。本発明による変更を解析するための技法に従って利用されるソフトウェアオブジェクトはどれも、複数のコンピューティングデバイスまたはオブジェクトにわたって分散することができる。
【００９６】
クライアントとサーバは、プロトコル層によって提供される機能を利用して、互いに通信する。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールドワイドウェブ（ＷＷＷ）すなわち「ウェブ」と併せて使用される、一般的なプロトコルである。一般に、インターネットプロトコル（ＩＰ）アドレスなどのコンピュータネットワークアドレス、またはユニバーサルリソースロケータ（ＵＲＬ）などの他の参照が、サーバまたはクライアントコンピュータを互いに識別するために使用できる。ネットワークアドレスは、ＵＲＬアドレスと呼ばれることもある。通信は、通信媒体を介して提供することができ、例えば、クライアントとサーバは、高容量通信のため、ＴＣＰ／ＩＰ接続を介して互いに結合することができる。
【００９７】
したがって、図１９は、本発明がその中で利用できる、サーバがネットワーク／バスを介してクライアントコンピュータと通信する、例示的なネットワークまたは分散環境を示す。より詳細には、本発明によれば、多くのサーバ１９１０ａ、１９１０ｂなどが、ＬＡＮ、ＷＡＮ、イントラネット、ＧＳＭネットワーク、インターネットなどの通信ネットワーク／バス１９４０を介して、ポータブルコンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク機器、またはＶＣＲ、ＴＶ、オーブン、照明、ヒータなどの他のデバイスなど、多くのクライアントまたはリモートコンピューティングデバイス１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどと相互接続される。したがって、本発明は、それに関連してＥＤＩスキーマをバージョン管理することが望ましい、任意のコンピューティングデバイスに適用できることが企図されている。
【００９８】
通信ネットワーク／バス１９４０がインターネットであるネットワーク環境では、例えば、サーバ１９１０ａ、１９１０ｂなどは、クライアント１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどが、ＨＴＴＰなど多くの知られたプロトコルのいずれかを介して通信する、ウェブサーバとすることができる。サーバ１９１０ａ、１９１０ｂなどは、分散コンピューティング環境に特徴的なように、クライアント１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどとして働くこともできる。
【００９９】
言及されたように、通信は適宜、有線もしくは無線またはそれらの組み合わせとすることができる。クライアントデバイス１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどは、通信ネットワーク／バス１４を介して通信してもよく、またはしなくてもよく、関連する独立の通信を有することができる。例えば、ＴＶまたはＶＣＲの場合、それらの制御に対してネットワーク態様があってもよく、またはなくてもよい。各クライアントコンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなど、およびサーバコンピュータ１９１０ａ、１９１０ｂなどは、様々なアプリケーションプログラムモジュールまたはオブジェクト１３５ａ、１３５ｂ、１３５ｃなどを備えることができ、ファイルもしくはデータストリームがそれらにわたって保存でき、またはファイルもしくはデータストリームの部分がそれらに対してダウンロード、送信、もしくは移行される、様々なタイプのストレージ要素またはオブジェクトへの接続またはアクセスを備えることができる。コンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどのいずれか１つまたは複数は、本発明に従って処理またはセーブされたデータを保存するためのデータベースまたはメモリ１９３０など、データベース１９３０または他のストレージ要素の保守および更新を担当することができる。したがって、本発明は、コンピュータネットワーク／バス１９４０にアクセスし、対話することができる、クライアントコンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなどと、クライアントコンピュータ１９２０ａ、１９２０ｂ、１９２０ｃ、１９２０ｄ、１９２０ｅなど、および他の同様のデバイス、ならびにデータベース１９３０と対話することができる、サーバコンピュータ１９１０ａ、１９１０ｂなどを有する、コンピュータネットワーク環境で利用することができる。
【０１００】
例示的なコンピューティングデバイス
言及されたように、本発明は、ＥＤＩスキーマにおける差分を解析することが望ましい、任意のデバイスに適用される。したがって、すべての種類のハンドヘルド、ポータブル、および他のコンピューティングデバイスおよびコンピューティングオブジェクトが、本発明に関連して使用されるものと企図されていること、すなわち、どこであれ、デバイスは、ＥＤＩ通信システムと対話でき、または他の方法でＥＤＩデータを受信し、処理し、もしくは保存できることを理解されたい。したがって、以下で図２０において説明される以下の汎用リモートコンピュータは、単なる一例に過ぎず、本発明は、ネットワーク／バス相互運用性および対話を有する任意のクライアントを用いて実施することができる。したがって、本発明は、非常に僅かなまたは最低限のクライアントリソースしか関係しないネットワークホストサービスの環境において、例えば、機器内に配置されたオブジェクトなど、クライアントデバイスがネットワーク／バスへの単なるインタフェースとして働くネットワーク環境において、実施することができる。
【０１０１】
必ずしも必要ではないが、本発明は、デバイスもしくはオブジェクトに対するサービスの開発業者による使用のために、オペレーティングシステムを介して部分的に実施することができ、および／または本発明のコンポーネントに関連して動作するアプリケーションソフトウェア内に含まれることができる。ソフトウェアは、クライアントワークステーション、サーバ、または他のデバイスなど、１つまたは複数のコンピュータによって実行される、プログラムモジュールなど、コンピュータ実行可能命令という一般的文脈において説明することができる。当業者であれば、本発明が、他のコンピュータシステム構成およびプロトコルを用いても実施できることを理解されよう。
【０１０２】
したがって、図２０は、本発明が実施される、適切なコンピューティングシステム環境２０００ａの一例を示しているが、上で明確にされたように、コンピューティングシステム環境２０００ａは、メディアデバイス用の適切なコンピューティング環境の単なる一例であり、本発明の使用または機能の範囲に関して何らかの限定を暗示することを意図していない。コンピューティング環境２０００ａは、例示的な動作環境２０００ａに示されたコンポーネントのいずれか１つまたは組み合わせに関して何らかの依存性または必要性を有すると解釈されるべきでもない。
【０１０３】
図２０を参照すると、本発明を実施するための例示的なリモートデバイスは、コンピュータ２０１０ａの形態をとる汎用コンピューティングデバイスを含む。コンピュータ２０１０ａの構成要素は、処理ユニット２０２０ａと、システムメモリ２０３０ａと、システムメモリを始めとする様々なシステムコンポーネントを処理ユニット２０２０ａに結合するシステムバス２０２１ａとを含むことができるが、それらに限定されない。システムバス２０２１ａは、様々なバスアーキテクチャのいずれかを使用する、メモリバスもしくはメモリコントローラ、周辺バス、およびローカルバスを含む、複数のタイプのバス構造のいずれかとすることができる。
【０１０４】
コンピュータ２０１０ａは一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ２０１０ａによってアクセスされる任意の利用可能媒体とすることができる。限定することなく例を挙げると、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実施される、揮発性および不揮発性、着脱可能および着脱不能媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくは他のメモリ技術、ＣＤＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶、もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用でき、コンピュータ２０１０ａによってアクセスされる他の任意の媒体を含むが、それらに限定されない。通信媒体は一般に、搬送波または他の転送機構などの変調データ信号で、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報配送媒体を含む。
【０１０５】
システムメモリ２０３０ａは、読み取り専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）など、揮発性および／または不揮発性メモリの形態をとるコンピュータ記憶媒体を含むことができる。基本入出力システム（ＢＩＯＳ）は、起動中などにコンピュータ２０１０ａ内の要素間の情報転送を助ける基本ルーチンを含み、メモリ２０３０ａ内に記憶することができる。メモリ２０３０ａは一般に、処理ユニット２０２０ａから直ちにアクセス可能な、および／または処理ユニット２０２０ａによって目下処理されている、データおよび／またはプログラムモジュールも含む。限定することなく例を挙げると、メモリ２０３０ａは、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも含むことができる。
【０１０６】
コンピュータ２０１０ａは、他の着脱可能／着脱不能、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例えば、コンピュータ２０１０ａは、着脱不能な不揮発性磁気媒体から読み取り、もしくは当該媒体に書き込むハードディスクドライブ、着脱可能な不揮発性磁気ディスクから読み取り、もしくは当該ディスクに書き込む磁気ディスクドライブ、および／またはＣＤ−ＲＯＭもしくは他の光媒体などの、着脱可能な不揮発性光ディスクから読み取り、もしくは当該ディスクに書き込む光ディスクドライブを含むことができる。例示的な動作環境で使用できる、他の着脱可能／着脱不能、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどを含むが、それらに限定されない。ハードディスクドライブは一般に、インタフェースなどの着脱不能メモリインタフェースを介してシステムバス２０２１ａに接続され、磁気ディスクドライブまたは光ディスクドライブは一般に、インタフェースなどの着脱可能メモリインタフェースによってシステムバス２０２１ａに接続される。
【０１０７】
ユーザーは、キーボード、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイスなどの入力デバイスを介して、コマンドおよび情報をコンピュータ２０１０ａに入力することができる。他の入力デバイスは、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、またはスキャナなどを含むことができる。上記および他の入力デバイスはしばしば、システムバス２０２１ａに結合されるユーザー入力２０４０ａおよび関連インタフェースを介して、処理ユニット２０２０ａに接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの、他のインタフェースおよびバス構造によって接続されてもよい。グラフィックスサブシステムも、システムバス２０２１ａに接続することができる。モニタまたは他のタイプの表示デバイスも、出力インタフェース２０５０ａなどのインタフェースを介して、システムバス２０２１ａに接続され、当該インタフェースは次に、ビデオメモリと通信することができる。モニタに加えて、コンピュータは、出力インタフェース２０５０ａを介して接続できる、スピーカおよびプリンタなどの、他の周辺出力デバイスも含むことができる。
【０１０８】
コンピュータ２０１０ａは、リモートコンピュータ２０７０ａなどの１つまたは複数の他のリモートコンピュータへの論理接続を使用して、ネットワークまたは分散環境で動作することができ、当該リモートコンピュータは同様に、デバイス２０１０ａとは異なる媒体能力を有することができる。リモートコンピュータ２０７０ａは、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスもしくは他の共通ネットワークノード、または他の任意のリモート媒体消費もしくは伝送デバイスとすることができ、コンピュータ２０１０ａに関連して上述された要素のいずれかまたはすべてを含むことができる。図２０に示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）などのネットワーク２０７１ａを含むが、他のネットワーク／バスも含むことができる。そのようなネットワーク環境は、家庭、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。
【０１０９】
ＬＡＮネットワーク環境で使用される場合、コンピュータ２０１０ａは、ネットワークインタフェースまたはアダプタを介して、ＬＡＮ２０７１ａに接続される。ＷＡＮネットワーク環境で使用される場合、コンピュータ２０１０ａは一般に、インターネットなどのＷＡＮを介した通信を確立するためのモデムまたは他の手段などの、通信コンポーネントを含む。内蔵または外付けとすることができるモデムなどの通信コンポーネントは、入力２０４０ａのユーザー入力インタフェースまたは他の適切な機構を介して、システムバス２０２１ａに接続することができる。ネットワーク環境では、コンピュータ２０１０ａに関連して示されたプログラムモジュールまたはその部分は、リモートメモリ記憶デバイスに保存されてもよい。示され説明されたネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用できることが理解されよう。
【０１１０】
例示的な分散コンピューティングアーキテクチャ
パーソナルコンピューティングおよびインターネットへと収斂する趨勢に鑑みて、様々な分散コンピューティングフレームワークが開発されてきた。個人およびビジネスユーザーは同様に、コンピューティング活動をますますウェブブラウザまたはネットワーク指向なものにする、アプリケーションおよびコンピューティングデバイス用のシームレスに相互運用可能なウェブ対応のインタフェースを提供されている。
【０１１１】
例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）のマネージドコードプラットフォーム、すなわち．ＮＥＴは、ウェブベースのデータストレージおよびダウンロード可能なデバイスソフトウェアなど、サーバと、構築ブロックサービスとを含む。一般的に言って、．ＮＥＴプラットフォームは、（１）全範囲のコンピューティングデバイスを協働させ、それらすべての上でユーザー情報を自動的に更新および同期させる機能、（２）ＨＴＭＬよりもＸＭＬをより多く使用することによって可能にされた、ウェブページのための増強された対話能力、（３）例えば、電子メールなどの様々なアプリケーションまたはＯｆｆｉｃｅ．ＮＥＴなどのソフトウェアの管理のための、カスタマイズされたアクセス、ならびに中央開始ポイント（ｃｅｎｔｒａｌ  ｓｔａｒｔｉｎｇ  ｐｏｉｎｔ）からユーザーへの製品およびサービスの配送を特徴とするオンラインサービス、（４）情報へのアクセスの効率性および容易性ばかりでなく、ユーザーとデバイスの間の情報の同期も高める、中央集中データ記憶、（５）電子メール、ファックス、および電話など、様々な通信媒体を統合する機能、（６）開発業者向けの、再使用可能モジュールを生成する機能であって、それによって、生産性を高め、プログラミングエラーの数を減少させる、機能、（７）さらに、他の多くのクロスプラットフォームおよび言語統合機能を提供する。
【０１１２】
本明細書におけるいくつかの例示的な実施形態は、コンピューティングデバイス上に存在する、アプリケーションプログラミングインタフェース（ＡＰＩ）などの、ソフトウェアに関連して説明されるが、本発明の１つまたは複数の部分は、本発明によるＥＤＩスキーマにおける変更を解析するための装置、方法などが、．ＮＥＴコードなどのマネージドコードによって可能にされる言語およびサービスのすべてに、また同様に、他の分散コンピューティングフレームワークに含まれ、それらにおいてサポートされ、それらを介してアクセスされるように、オペレーティングシステム、または「ミドルマン（ｍｉｄｄｌｅ  ｍａｎ）」オブジェクト、制御オブジェクト、ハードウェア、ファームウェア、中間言語命令もしくはオブジェクトなどを介して、実施されてもよい。
【０１１３】
アプリケーションおよびサービスが、本発明によるＥＤＩスキーマにおける変更を解析するためのツール、システム、および方法を使用することを可能にする、例えば、適切なＡＰＩ、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能ソフトウェアオブジェクトなど、本発明を実施する複数の方法が存在する。本発明は、ＡＰＩ（または他のソフトウェアオブジェクト）の観点からの本発明の使用ばかりでなく、ＥＤＩスキーマを受け取り、本発明に従ってＥＤＩスキーマおよび関連する変更を解析および／または表示する、ソフトウェアまたはハードウェアオブジェクトからの本発明の使用も企図している。したがって、本明細書で説明される本発明の様々な実施は、完全にハードウェア的な態様、部分的にハードウェア的で部分的にソフトウェア的な態様、およびソフトウェア的な態様を有することができる。
【０１１４】
「例示的（ｅｘｅｍｐｌａｒｙ）」という語は、本明細書では、一例、事例、または実例を提供することを意味するために使用される。疑いを避けるために言えば、本明細書で開示される主題は、そのような例によって限定されない。加えて、「例示的」として本明細書で説明される態様または設計はいずれも、他の態様または設計よりも好ましいまたは有利であると必ずしも解釈される必要はなく、当業者に知られた等価で例示的な構造および技法を排除することも意味しない。さらに、「含む（ｉｎｃｌｕｄｅｓ）」、「有する（ｈａｓ）」、「含む（ｃｏｎｔａｉｎｓ）」といった用語および他の類似の語が、詳細な説明または特許請求の範囲で使用される限りにおいては、疑いを避けるために言えば、そのような用語は、開移行語（ｏｐｅｎ  ｔｒａｎｓｉｔｉｏｎ  ｗｏｒｄ）としての「含む（ｃｏｍｐｒｉｓｉｎｇ）」という用語と同様に、どのような付加的な要素または他の要素も排除することなく、包含的であることが意図される。
【０１１５】
上で言及されたように、本発明の例示的な実施形態は、様々なコンピューティングデバイスおよびネットワークアーキテクチャに関連して説明されたが、基礎をなす概念は、ＥＤＩスキーマをバージョン管理することが望ましい、いずれのコンピューティングデバイスまたはシステムにも適用することができる。例えば、本発明の差分解析コンポーネントおよび／またはユーザーインタフェースツールは、デバイス上の別個のオブジェクトとして、別のオブジェクトの部分として、再使用可能なコントロールとして、サーバからダウンロード可能なオブジェクトとして、デバイスまたはオブジェクトとネットワークの間の「ミドルマン」として、分散オブジェクトとして、ハードウェアとして、メモリにおいて、上記のいずれかの組み合わせとして提供されて、コンピューティングデバイスのオペレーティングシステムに適用されることができる。例示的なプログラミング言語、名前、および例が、本明細書では様々な選択肢の代表として選択されるが、これらの言語、名前、および例は、限定的であることを意図していない。当業者であれば、本発明の様々な実施形態によって達成されるのと同一、類似、または等価の機能を達成する、オブジェクトコードおよび用語法を提供する多くの方法が存在することを理解されよう。
【０１１６】
言及されたように、本明細書で説明される様々な技法は、ハードウェアもしくはソフトウェア、または適切ならば両方の組み合わせに関連して実施することができる。本明細書で使用される「コンポーネント」、「システム」などの用語は同様に、ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連エンティティを指すことを意図している。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド（ｔｈｒｅａｄ  ｏｆ  ｅｘｅｃｕｔｉｏｎ）、プログラム、および／またはコンピュータとすることができるが、それらに限定されない。実例を挙げれば、コンピュータ上で実行中のアプリケーションとコンピュータは両方とも、コンポーネントとすることができる。１つまたは複数のコンポーネントは、プロセスおよび／または実行スレッド内に存在することができ、コンポーネントは、１つのコンピュータ上に局在させること、および／または２つ以上のコンピュータ間に分散させることができる。
【０１１７】
したがって、本発明の方法および装置、または本発明のある態様もしくは部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意の機械可読記憶媒体などの有形な媒体内で実施される、プログラムコード（すなわち命令）の形態をとることができ、プログラムコードがコンピュータなどの機械にロードされ、機械によって実行された場合、その機械は本発明を実施するための装置となる。プログラム可能コンピュータ上でのプログラムコード実行の場合、コンピューティングデバイスは一般に、プロセッサと、プロセッサによって可読な（揮発性および不揮発性メモリおよび／または記憶要素を含む）記憶媒体と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。例えば、データ処理ＡＰＩまたは再使用可能コントロールなどの使用を通して本発明の差分解析能力を実施または利用できる、１つまたは複数のプログラムが、コンピュータシステムと通信するために、好ましくは高水準手続きまたはオブジェクト指向プログラミング言語で実施される。しかし、プログラムは、それが望ましい場合は、アセンブリまたは機械語で実施することもできる。いずれの場合も、言語は、コンパイル言語またはインタプリタ言語とすることができ、ハードウェア実施と組み合わされてよい。
【０１１８】
本発明の方法および装置は、電気配線もしくはケーブル、光ファイバ、または他の任意の伝送形態など、何らかの伝送媒体を介して伝送されるプログラムコードの形態で実施される、通信を介して実施することもでき、プログラムコードが受信され、ＥＰＲＯＭ、ゲートアレイ、プログラマブル論理回路（ＰＬＤ）、クライアントコンピュータなどの機械にロードされ、機械によって実行された場合、その機械は本発明を実施するための装置となる。汎用プロセッサ上で実施される場合、プログラムコードは、本発明の機能を呼び出すために動作する特有の装置を提供するために、プロセッサと結合する。加えて、本発明と関連して使用される任意のストレージ技法は常に、ハードウェアとソフトウェアの組み合わせとすることができる。
【０１１９】
さらに、開示された主題は、本明細書で詳説された態様を実施するために、コンピュータまたはプロセッサベースデバイスを制御する、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせを生産する、標準的なプログラミングおよび／またはエンジニアリング技法を使用する、システム、方法、装置、または製造品として実施することができる。「製造品」（または代替として「コンピュータプログラム製品」）という用語は、本明細書で使用される場合、任意のコンピュータ可読デバイス、搬送体、または媒体から取得可能なコンピュータプログラムを包含することを意図している。例えば、コンピュータ可読媒体は、磁気記憶デバイス（例えば、ハードディスク、フロッピー（登録商標）ディスク、磁気ストリップ、・・・）、光ディスク（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、・・・）、スマートカード、およびフラッシュメモリデバイス（例えば、カード、スティック）を含むことができるが、それらに限定されない。加えて、電子メールを送信および受信する際に、またはインターネットもしくはローカルエリアネットワーク（ＬＡＮ）などのネットワークにアクセスする際に使用されるような、コンピュータ可読電子データを搬送するために、搬送波が利用できることが知られている。
【０１２０】
上述のシステムは、複数のコンポーネント間の対話に関して説明された。そのようなシステムおよびコンポーネントは、それらのコンポーネントもしくは特定のサブコンポーネント、特定のコンポーネントもしくはサブコンポーネントのいくつか、および／または追加のコンポーネント、ならびに様々な順列および組み合わせによる上記のものを含むことができることを理解することができる。サブコンポーネントは、（階層的に）親コンポーネント内に含まれる代わりに、他のコンポーネントと通信可能に結合されたコンポーネントとして実施することもできる。加えて、１つまたは複数のコンポーネントは、集約機能を提供する単一のコンポーネントとなるように結合されてよく、または複数の別々のサブコンポーネントに分割されてよく、統合された機能を提供するために、管理層など、いずれか１つまたは複数の中間層が提供されて、そのようなサブコンポーネントに通信可能に結合できることに留意されたい。本明細書で説明されるコンポーネントはいずれも、本明細書では特に説明されていないが、当業者によって一般に知られている、１つまたは複数の他のコンポーネントとも対話することができる。
【０１２１】
上述の例示的なシステムに鑑みて、開示された主題に従って実施される方法は、図１１、図１２、および図１３のフローチャートを参照してよりよく理解されよう。説明を簡潔にする目的で、方法は一連のブロックとして示され、説明されたが、いくつかのブロックは、本明細書で示され、説明されたのとは異なる順序および／または他のブロックと同時に発生できるので、特許請求される主題が、ブロックの順序に限定されないことを理解および認識されたい。フローチャートによって非順次すなわち分岐フローが示されるが、同一または同様の結果を達成する他の様々な分岐、フローパス、およびブロックの順序が実施されてよいことが理解できる。さらに、すべてが示されたわけではないブロックが、これ以降で説明される方法を実施するために必要とされることもある。
【０１２２】
さらに、理解されるように、開示された上記のシステムおよび下記の方法の様々な部分は、人工知能または知識ベースもしくはルールベースコンポーネント、サブコンポーネント、プロセス、手段、方法、または機構（例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアン信念ネットワーク、ファジー論理、データ融合エンジン、クラシファイア、・・・）を含むことができ、あるいはそれらから成ることができる。そのようなコンポーネントは、とりわけ、実行されるある種の機構またはプロセスを自動化し、それによって、システムおよび方法の部分をより適応的にするばかりでなく、効率的および知的にすることもできる。
【０１２３】
本発明は、様々な図の好ましい実施形態に関連して説明されたが、本発明から逸脱することなく本発明と同じ機能を実行するために、他の類似の実施形態も使用できること、または変更および追加が説明された実施形態に施せることを理解されたい。例えば、本発明の例示的なネットワーク環境は、ピアツーピアネットワーク環境などのネットワーク環境に関連して説明されるが、当業者であれば、本発明がそれに限定されないこと、本出願で説明された方法が、有線かそれとも無線かに関わらず、ゲームコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなど、どのようなコンピューティングデバイスまたは環境にも適用でき、通信ネットワークを介して接続され、ネットワークを介して対話する、任意の数のそのようなコンピューティングデバイスに適用できることを理解されよう。さらに、特に無線ネットワークデバイスの数が急増し続けているので、ハンドヘルドデバイスオペレーティングシステムおよび他の特定用途向けオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されることが強調されるべきである。
【０１２４】
例示的な実施形態は、特定のプログラミング言語構造に関連して本発明を利用することに関するが、本発明は、そのように限定されることなく、ＥＤＩスキーマを解析するための方法を提供するために、任意の言語で実施されてよい。またさらに、本発明は、複数の処理チップもしくはデバイス内またはそれらの間で実施することができ、ストレージも同様に、複数のデバイス間で実施することができる。したがって、本発明は、いずれか単一の実施形態に限定されるべきでなく、添付の特許請求の範囲による広さおよび範囲で解釈されるべきである。
【図１】
2010504592.tif 000005
【図２】
2010504592.tif 000006
【図３】
2010504592.tif 000007
【図４】
2010504592.tif 000008
【図５】
2010504592.tif 000009
【図６】
2010504592.tif 000010
【図７】
2010504592.tif 000011
【図８】
2010504592.tif 000012
【図９】
2010504592.tif 000013
【図１０】
2010504592.tif 000014
【図１１】
2010504592.tif 000015
【図１２】
2010504592.tif 000016
【図１３】
2010504592.tif 000017
【図１４Ａ】
2010504592.tif 000018
【図１４Ｂ】
2010504592.tif 000019
【図１４Ｃ】
2010504592.tif 000020
【図１４Ｄ】
2010504592.tif 000021
【図１４Ｅ】
2010504592.tif 000022
【図１４Ｆ】
2010504592.tif 000023
【図１４Ｇ】
2010504592.tif 000024
【図１４Ｈ】
2010504592.tif 000025
【図１４Ｉ】
2010504592.tif 000026
【図１５】
2010504592.tif 000027
【図１６】
2010504592.tif 000028
【図１７】
2010504592.tif 000029
【図１８】
2010504592.tif 000030
【図１９】
2010504592.tif 000031
【図２０】
2010504592.tif 000032
【国際調査報告】
2010504592.tif 000033
2010504592.tif 000034