(57)【要約】本発明は、１または２以上の部分を有するマークアップ言語ファイルを処理するシステムおよび方法に向けられている。詳細には、システムは、ハイパー・テキスト・トランスファー・プロトコルを用いて、第一のマークアップ言語ファイルをダウンロードし、第一のマークアップ言語ファイルを、そのユニフォーム・リゾース・ロケーションあるいはユーザーが作動させているシステム上のローカル・ファイルの名前によって、参照する。第一のマークアップ言語ファイルは、第一のマークアップ言語ファイルの１または２以上の部分のために、パースされる。第一のマークアップ言語ファイルの各部分は、フォルダー、サブ・フォルダーおよびファイルを含み、第一のマークアップ言語ファイルの構造に従うディレクトリ構造中に保存される。
2004530173.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上の部分を有するマークアップ言語ファイルを処理する方法であって、
ハイパー・テキスト・トランスファー・プロトコルを用いて、第一のマークアップ言語ファイルをダウンロードし、前記第一のマークアップ言語ファイルを、そのユニフォーム・リゾース・ロケーションあるいはユーザーが作動させているシステム上のローカル・ファイルの名前によって、参照し、
前記第一のマークアップ言語ファイルの１または２以上の部分のために、前記第一のマークアップ言語ファイルをパースし、
前記第一のマークアップ言語ファイルの各部分を、フォルダー、サブ・フォルダーおよびファイルを含み、前記第一のマークアップ言語ファイルの構造に従うディレクトリ構造中に保存することを特徴とするマークアップ言語ファイルの処理方法。
【請求項２】
相対的なユニフォーム・リゾース・ロケーションが存在するときに、前記相対的なユニフォーム・リゾース・ロケーションを、自動的に、絶対的なユニフォーム・リゾース・ロケーションに変換することを特徴とする請求項１に記載のマークアップ言語ファイルの処理方法。
【請求項３】
１または２以上のオブジェクトの選択、観察あるいは他の処理を可能にするコマンド言語セットを提供し、前記コマンド言語セットが、選択、観察あるいは他の処理のための複数のコマンドを含んでいることを特徴とする請求項１に記載のマークアップ言語ファイルの処理方法。
【請求項４】
前記コマンド言語セットが、フォルダーのコンテンツをリストするコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項５】
前記コマンド言語セットが、フォルダーを変更するコマンドと、フォルダーのサブ・フォルダーを設計する構文法を含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項６】
前記コマンド言語セットが、ファイルのコンテンツをリストするコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項７】
前記コマンド言語セットが、ハイパー・テキスト・マークアップ言語タグの属性をリストするコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項８】
前記コマンド言語セットが、任意のパス・ネームのワイルドカードを用いるためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項９】
前記コマンド言語セットが、ファイルのディレクトリ・パス・ネームが参照されたときに、ローカル変数として、ファイルのコンテンツを処理する方法を含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１０】
前記コマンド言語セットが、ファイルのディレクトリ・パス・ネームが参照されたときに、ローカル変数として、フォルダーの属性を処理する方法を含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１１】
前記コマンド言語セットが、前記ディレクトリ構造中に、新たなフォルダーを作成するためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１２】
前記コマンド言語セットが、前記ディレクトリ構造中に、新たなファイルを作成するためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１３】
前記コマンド言語セットが、前記ディレクトリ構造中に、フォルダーをコピーするためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１４】
前記コマンド言語セットが、前記ディレクトリ構造中に、フォルダーを再帰的にコピーするためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１５】
前記コマンド言語セットが、前記ディレクトリ構造中に、ファイルをコピーするためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１６】
前記コマンド言語セットが、前記ディレクトリ構造中に、ファイルを再帰的にコピーするためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１７】
前記コマンド言語セットが、前記ディレクトリ構造中のフォルダーの名前を変えるためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１８】
前記コマンド言語セットが、前記ディレクトリ構造中のファイルの名前を変えるためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項１９】
前記コマンド言語セットが、コマンドの出力のリダイレクションによって、新たなファイルを生成するためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項２０】
前記コマンド言語セットが、ファイル値をセットするためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項２１】
前記コマンド言語セットが、修正された第一のマークアップ言語ファイルを、ディスクに保管するためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項２２】
前記コマンド言語セットが、修正された第一のマークアップ言語ファイルを、標準的な出力装置に出力するためのコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項２３】
前記コマンド言語セットが、コマンドのセットのサブ・セットを含む１または２以上の実行可能なバッチ・ファイルを生成することを可能にするコマンドを含んでいることを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【請求項２４】
前記ファイルの変数および属性と協働して、処理するためのローカル変数を定義するステップを備えたことを特徴とする請求項２３に記載のマークアップ言語ファイルの処理方法。
【請求項２５】
ループ処理を生成するためのコマンドを含んでいることを特徴とする請求項２４に記載のマークアップ言語ファイルの処理方法。
【請求項２６】
前記バッチ・ファイル内の新たな特定の記憶場所にジャンプし、新たな記憶場所で、実行処理を再開するためもコマンドを含んでいることを特徴とする請求項２４に記載のマークアップ言語ファイルの処理方法。
【請求項２７】
タグ変数に対するリファレンスを含み、ＨＴＭＬによってフォーマットされたドキュメントあるいはＸＭＬによってフォーマットされたドキュメントを生成し、フォルダー、サブ・フォルダーあるいはファイルのコンテンツを、第二のマークアップ言語ドキュメントから、マークアップ言語ドキュメントに挿入するステップを備えたことを特徴とする請求項３に記載のマークアップ言語ファイルの処理方法。
【発明の詳細な説明】
【０００１】
【関連する発明についての情報】
本件出願は、２００１年６月１５日に、「ウェブ・ベース・コラボレイティブ・データ収集システム」という発明の名称で出願され、単独発明者として、ジェフ・デイビソンの名が挙げられたアメリカ特許出願の一部継続出願であり、２０００年６月２６日に、「ＸＭＬエネーブル・エージェント」という発明の名称で出願され、単独発明者として、ジェフ・デイビソンの名が挙げられたアメリカ仮特許出願６０／２１４，０６７の優先権を主張するものである。このアメリカ仮特許出願は、引用によって、全体として、本発明に組み込まれ、本明細書において、「ＸＭＬエージェント仮出願」と呼ばれる。また、本件出願は、２０００年９月２６日に、「エミリーＸＭＬポータル」という発明の名称で出願され、単独発明者として、ジェフ・デイビソンの名が挙げられたアメリカ仮特許出願６０／２３５，４５８の優先権を主張するものであり、このアメリカ仮特許出願は、引用によって、全体として、本発明に組み込まれ、本明細書において、「ＸＭＬポータル仮出願」と呼ばれる。
【０００２】
【発明の背景】
本発明は、コンピュータシステムに関するものであり、とくに、サーバーからデータを集め、クライアント上で、そのデータを記憶し、処理するシステムに関するものである。
【０００３】
現代社会においては、インターネットおよびワールド・ワイド・ウェブの進歩にともなって、今や、多くのビジネスが、オンライン上で、処理されている。これらのビジネスは、企業間取引き（「Ｂ２Ｂ」）・オンライン処理において、他のビジネスをかかわっている。Ｂ２Ｂは、異なる独立した企業間における多様な情報交換をいう。たとえば、Ｂ２Ｂは、ある病院から、他の病院への患者の記録を転送する場合や、価格データを、販売システムのある独立した販売代理店に転送する場合を含み得る。Ｂ２Ｂはまた、異なる銀行間の財務記録などのデリケートな情報を転送することも含んでいる。
【０００４】
Ｂ２Ｂという語は、しばしば、どうにでも解釈できるように用いられる。たとえば、Ｂ２Ｂを、企業の内部業務と関連させて、理解することは適当でない。企業内部における内部的なワークフローは、Ｂ２Ｂシステムに類似しているが、企業内部においては、アドミニストレーターは、ポリシーおよびプロトコルを決定することができるので、同一組織内の処理は容易に管理することができる。これに対して、Ｂ２Ｂシステムは、どのように、処理がおこなわれるべきかを指示する「ボス」を有していない。
【０００５】
また、Ｂ２Ｂは、企業と一般消費者との間の取引き（Ｂ２Ｃ）とは、明瞭に異なっている。Ｂ２Ｂと、Ｂ２Ｃとは、共通の側面を共有しているが、Ｂ２Ｂは、主として、禁止可能性および競合性によって、動機付けられているのに対して、Ｂ２Ｃは、魅力的で、かつ、大衆向けの訴えのような側面を有している。Ｂ２Ｂは、高い程度の標準化を要求するが、Ｂ２Ｃには、そのような要求はない。
【０００６】
Ｂ２Ｂに関連する問題点は、企業による商品の電子的購入によって、明らかに例証されている。Ｂ２Ｂのこの「ｅ−コマース」モデルは、一般的に、Ｂ２Ｂに関連する数多くの問題点と落とし穴を包含している。ｅ−コマースのシナリオにおいては、企業（買い手）は、他の企業（供給元）から、アイテムを購入する。ｅ−コマース取引きを完了するために必要な情報交換には、電子的な商品カタログの交換、購入注文の生成および商品配達の確認が含まれる。
【０００７】
大企業が、頻繁に、かつ、定期的に、商品の購入を望んでいる例示的な場合について考えると、商品は、ほぼ等価な多様な売り手から供給される。商品は、主として、各供給元の価格および供給スケジュールによって、区別される。問題を複雑化するため、供給元の数が多く、商品の価格と供給回数が絶えず変化するものとする。
【０００８】
この状況は、州政府のエージェンシーや連邦政府のエージェンシー、などの多くの現実に存在する世界的な組織や、競合的な購入プラクティスを用いる企業によって、実証されている。過去においては、この種の購入のためには、売り手のカタログを組み合わせるという骨の折れる作業が必要であった。このようなシステムでは、努力をしてさえも、しばしば、最良の価格と供給を逃し、販売が中止された商品や売り切れた商品に出くわすことになる。売り主と商品のリストを、アップ・トゥ・デートなものに維持することは困難である。
【０００９】
Ｂ２Ｂ−ｅコマースにおいては、機械読み取り可能な電子的商品カタログを用いることによって、これらの欠陥の修正が図られる。これらの電子的カタログは、リアルタイムに、情報を、ｅコマース購入プログラムに提供する。これにより、部品番号、商品記述および価格などの情報が、利用可能になり、供給者により、自動的にアップ・トゥ・デートされるのとになる。
【００１０】
購入注文および商品カタログのフォーマットは、Ｂ２Ｍシステムの潜在的なトラブル・スポットである。ほとんどの場合、購入者は、供給元に、その供給元の電子的商品カタログを、購入者のクライアント・ソフトウエアによって使用可能なフォーマットで提供することを要求する。クライアント・プログラムは、種々の供給元の間における価格、納品および他のパラメータを比較するように構成されているのが通常であるので、このことは、２以上の供給元が存在する場合に、重要なことになる。購入者は、また、購入者のクライアント・プログラムによって生成された購入注文を、供給者が認識し、正しく所有することを要求するであろう。したがって、Ｂ２Ｂ−ｅコマースシステムを実行する上で、優先的に解決すべき問題は、商品カタログと購入注文の互換性の問題である。ことに、異種の独立した多くの組織の間で、フォーマットおよびプロトコルについてのコンセンサスを得ることが、問題である。
【００１１】
Ｂ２Ｂプロセスに対し、参加組織の内部業務に根本的な影響を与える標準カタログや標準購入注文などのスタンダードを強いるということは実現不可能である。Ｂ２Ｂ−ｅコマースシステムは、企業の個々のポリシーに、安価に重ね合わすことが可能な場合に限って、動作可能である。組織の内部業務に、ドラスティックな変化を生じさせようとするＢ２Ｂシステムは、いずれも、参加者が、注意深く作られた内部システムを、「競合的なエッジ」の一部と見るという単純な理由によって、受け入れられないという大きな危険を冒すことになる。さらに、購入者は、ｅコマースの採用を望む場合にも、供給元は、指示をするアドミニストレーターが不在で、ｅコマースのコストが見合うまで、ｅコマースの採用に抵抗するということもあるであろう。
【００１２】
【発明の要約】
本発明は、ウェブ・ベース・サーバからデータを集めて、ウェブ・ベース・クライアントに送信し、ウェブ・ベース・クライアント上で、そのデータを記憶するシステムに向けられたものである。
【００１３】
本発明の好ましい実施態様においては、イネーブラー・エージェントが、データマッピング機能を用いて、データを、第１のデータモデルから第２のデータモデルに変換するように構成されている。
【００１４】
本発明の別の実施態様においては、イネーブラー・エージェントが、データ・リクエスト内に含まれたソース特定情報を参照することによって、適用すべきデータマッピング機能を決定するように構成されている。
【００１５】
本発明の別の実施態様においては、イネーブラー・エージェントが、データを、構造化データフォーマットから、マークアップ言語フォーマットに変換するように構成されている。
【００１６】
本発明の別の実施態様においては、イネーブラー・エージェントが、完全に、ウェブからの管理が可能に構成されている。
【００１７】
本発明の別の実施態様においては、データ・コレクタが、ＵＲＬのリストをポーリングして、前記ＵＲＬによって指示されたデータサーバから、アップ・トゥ・デートされたデータを得るように構成されている。
【００１８】
本発明の別の実施態様においては、データ・コレクタが、データサーバ上に記憶されているあらかじめ定義されたクエリーを用いて、前記データサーバ上に記憶されたデータにアクセスするように構成されている。
【００１９】
本発明の別の実施態様においては、データ・コレクタが、完全に、ウェブからの管理が可能に構成されている。
【００２０】
本発明の別の実施態様においては、データ・コレクタが、データを、マークアップ言語フォーマットから、構造化データフォーマットに変換するように構成されている。
【００２１】
本発明の別の実施態様においては、データ・コレクタが、第２のイネーブラー・エージェントを用いて、データ・コレクタに関連するデータベースにアクセス可能なモジュール・コンポーネントによって構成されている。
【００２２】
【好ましい実施態様についての詳細な説明】
好ましい実施態様につき、説明を加えるのに先立って、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）と呼ばれるエマージェンシー・スタンダードの簡単なバックグラウンドに触れておくことが有用である。ＸＭＬは、ウェブ・ページが書き込まれる言語であるＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）と類似したものである。しかしながら、ＸＭＬは、どのようにタグを命名するかという点、および、どのようにデータ・コンテンツを構成することができるかという点で、ＨＴＭＬよりもよりフレキシブルである。ＨＴＭＬのように、ＸＭＬは、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）を用いて、ウェブサイトから得ることができる。ＸＭＬは、（人間によっては、やや読み取りやすくないが、）プログラムによって、より読み取りやすいという点で、ＨＴＭＬに対して、小さな利点を有している。ＸＭＬは、主として、ウェブからデータを引き出すプログラムの構成を簡易化することができるため、ホットな話題となっている。また、ＸＭＬは、Ｂ２Ｂシステムの構築する際の手助けとなる数少ないスタンダードの１つである。
【００２３】
ｅ−コマース購入システムを実行するために、コミューニケーション・プロトコルとして、ＨＴＭＬを用い、基礎データフォーマットとして、ＸＭＬを用いる簡易なサーバー・クライアント・アーキテクチャを構築することができる。かかるシステムの２つの基本的なコンポーネントは、ＸＭＬサーバーとＸＭＬクライアントである。
【００２４】
ＸＭＬサーバーは、供給元側に置かれ、購入者側のＸＭＬクライアントプログラムが、機械読み取り可能な商品カタログを、リアルタイムに、取り込むことを許容する。サーバー・プログラムは、商品を、潜在的な購入者に「宣伝」する。サーバーはまた、商品のオンライン購入を可能にするコンポーネントを有していてもよい。
【００２５】
ＸＭＬクライアントコンポーネントは、購入者側に置かれ、種々のＸＭＬサーバーから、ネットワーク上で、商品カタログを取り込む。クライアント・プログラムのジョブは、供給者のリストをスキャンし、宣伝された最も有利な価格と供給オプションを決定する。クライアントはまた、電子的購入注文を、供給者に送付することによって、実際に、商品の購入をおこなうように、構成することもできる。
【００２６】
これらの２つのコンポーネントは、Ｂ２Ｂ−ｅコマース・モデルのビルディングブロックを形成する。ＸＭＬサーバーは、ＸＭＬクライアントによって読み取られる商品カタログを提供する。ＸＭＬサーバー・プログラムは、ＨＴＭＬドキュメントより、むしろ、ＸＭＬドキュメントを提供するＨＴＭＬサーバーである。ＸＭＬクライアント・プログラムは、ウェブ・ブラウザがＨＴＭＬを読み取るのと同様にして、ＸＭＬデータを読み取るプログラムであるが、特別の図的表現方式を備えている。
【００２７】
ＸＭＬサーバとクライアントの関係を示す図面が、図１に示されている。供給者側のＸＭＬサーバー１１０は、その企業の商品を記述した電子的商品カタログ情報を提供するサーバー・データベース１１２と、購入者に送信するために、このデータを処理するイネーブラー・エージェント１０２を備えている。購入者側のＸＭＬクライアント・サーバー１２０上のデータ・コレクタ１２２は、この情報を受け取り、クライアント・データベース１２２に記憶させる。この情報が受け取られると、購入者側のクライアント１２０上の購入注文プログラムなどのデータベース・ツール１３０が、購入注文を供給者側の注文プロセッサ（図示せず）に送るなどの種々の機能のために、このデータにアクセスすることができる。
【００２８】
図１においては、１つのＸＭＬサーバーおよび１つのＸＭＬクライアントだけが図示されているが、各ＸＭＬクライアント・プログラムは、多数のＸＭＬサーバー・リレーションシップを有していてもよく、各ＸＭＬサーバーは、多数のＸＭＬクライアント・リレーションシップを有していてもよい。購入者の数が供給者の数より少ない場合には、おそらくは、各サーバーのＸＭＬクライアントの数は、数百に達し、各クライアントのＸＭＬサーバーの数は、数千に達するであろう。
【００２９】
本発明の実施態様にかかるウェブ・ベース・データ通信システムは、２つの基本的な機能ユニットを有している。第１の機能ユニットは、上述したＸＭＬサーバー１１０などのサーバー側に設けられたイネーブラー・エージェント１０２である。第２の機能ユニットは、上述したＸＭＬクライアント１２０などのクライアント側に設けられたデータ・コレクタ１０４である。イネーブラー・エージェント１０２は、サーバー・データベース１１２と協力して、サーバー・データベースから、標準的な機種依存フォーマットのデータを提供するように動作する。データ・コレクタ１０４は、クライアント・データベース１２２と協力して、標準的な機種依存フォーマットのデータを受け取り、クライアント・データベース１２２に記憶させるように動作する。データ通信システムは、一対一の環境、一対多数の環境、多数対一の環境、あるいは多数対多数の環境のいずれかの環境で、動作する。各サーバーは、データを、１または２以上のクライアントに送信する。各クライアントは、１または２以上のサーバーからデータを受け取る。
【００３０】
議論を簡易化し、明確なものとするため、上述のように、Ｂ２Ｂ−ｅコマース・モデルのデータ収集システムのインプリメンテーションに焦点を当てて、説明を加えることとする。しかしながら、データの通信は、ｅコマースに限定されるものではない。このシステムは、独立したエンティティ間で、情報を伝達する必要がある他の数多くの状況をカバーするように、一般化することができる。たとえば、かかるシステムが、病院という環境で、どのように動作するかを考えられたい。
【００３１】
病院は、その組織内のデータベースにアクセス可能な種々のイネーブラー・エージェントを有している。特殊な作業グループに、それに適合した種々のクライアントが設けられる。以下のシステムが実施されるであろう。
【００３２】
患者サーバー。イネーブラー・エージェントは、ドクターに対し、患者の現在の健康状態を示す患者記録を提供する。一般に、イネーブラー・エージェントは、患者の状態についての情報を必要としている病院クライアント・プログラムに、データを提供する。
【００３３】
ドクター・クライアント。ドクター・ポータル・ソフトウエアは、ドクターが、新たな検査と投薬のための注文を出すことを可能にする。この注文は商品の購入注文と類似しているが、この注文は、供給者側の出荷部門によるアクションではなく、病院の看護婦と技術者によるアクションを開始させる。
【００３４】
アドミニストレータークライアント。病院管理ポータルは、患者の保険用紙（ドクターによって指示された検査および投薬を含む）を、保険会社に提出されることを可能にする。
【００３５】
保険会社サーバー。病院および患者が使用する種々の保険会社の各々において、イネーブラー・エージェントは、病院に、保険情報を提供して、アドミニストレータークライアントの使用に供する。これにより、アドミニストレーターは、保険データを精査して、オンラインで、保険請求を提出することが可能になる。
【００３６】
商品ではなく、患者に関する特別のデータカタログが用いられるという点と、システムによって、生成される注文のタイプが、購入ではなく、医療検査と処方箋に関するものである点だけが、Ｂ２Ｂモデルに対する大きな変更点である。その他の点では、システムは、上述したＢ２Ｂ−ｅコマース・システムと同様に動作する。
イネーブラー・エージェント
図１を参照すると、データ収集システムの第１のコンポーネントは、イネーブラー・エージェント１０２である。イネーブラー・エージェント１０２は、サーバー１１０上で、作動し、データ供給者によって、制御される。イネーブラー・エージェント１０２は、サーバー・データベース１１２と協同して、動作するウェブ・ベースのアプリケーションである。サーバー・データベース１１２は、データを、特定のデータ保存フォーマットで保存する。代表的なデータ保存フォーマットには、ＳＱＬ、可変フォーマットの単層ファイル、ＣＯＲＢＡデータベース、ＸＭＬドキュメントおよびＨＴＭＬドキュメントがある。特定のデータ保存フォーマットで保存されるとともに、データは、特定のデータモデルにしたがって、保存される。データモデルの詳細は、データ供給者の必要性と希望に応じて、決定され、本発明において、不可欠のものではない。
【００３７】
図２Ａおよび図２Ｂは、特定のデータ供給者、この場合には、自転車の供給者が、自転車のパーツを記述したデータのモデルを、どのように作るかを示した例である。データ・モデルには、商品テーブル２１０と、パーツ・テーブル２２０とが含まれている。商品テーブル２１０内に含まれているデータには、自転車製造業者が販売する完全に組み立てられたすべての商品のリストが含まれている。商品テーブル２１０には、一連の商品レコード２１１が含まれており、自転車製造業者が販売する個々の商品についてのデータが保存される。商品テーブル２１０は、テーブル中のレコードをそれぞれ、ただ一つに特定する商品キー・フィールド２１２を含んでいる。商品キー・フィールド２１２は、商品テーブル２１０を、サーバー・データベース内の他のテーブルに、内部的に関連づけるために用いられる。商品テーブル２１０はまた、モデル番号・フィールド２１４、ディスクリプション・フィールド２１６およびプライス・フィールド２１８を有しており、商品テーブル２１０内の各商品レコードを記述する種々のデータ・アイテムを含んでいる。
【００３８】
パーツ・テーブル２２０内に含まれるデータには、自転車製造業者が販売するすべてのパーツのリストが含まれている。パーツ・テーブル２２０には、一連のパーツ・レコード２２１が含まれており、自転車製造業者が販売する個々のパーツについてのデータが保存される。パーツ・テーブル２２０は、パーツ・テーブル２２０中のレコードをそれぞれ、ただ一つに特定するパーツ・キー・フィールド２２２を含んでいる。パーツ・キー・フィールド２２２は、パーツ・テーブル２２０を、サーバー・データベース内の他のテーブルに、内部的に関連づけるために用いられる。パーツ・キー・フィールド２２２はまた、商品テーブル２１０の商品キーフィールド２１２を参照するフォーリン・キー・フィールド２２４を含んでいる。このフィールドは、パーツ・テーブル２２０内の各パーツ・レコード２２１を、商品テーブル２１０内の商品レコード２１１にリンクさせる。パーツ・テーブル２２０の残りの部分は、パーツ番号・フィールド２２６、パーツ・ディスクリプション・フィールド２２８およびプライス・フィールド２２９を有しており、それぞれ、パーツ・テーブル２２０内の各パーツ・レコード２２１を記述するデータを含んでいる。
【００３９】
図１に戻って、イネーブラー・エージェント１０２は、ユーザーからのデータ・リクエストに応答して、サーバー・データベース１１２から、データを検索する。ユーザーは、人間でも、人間によって制御されるコンピュータ・プロセスであっても、また、自動化されたコンピュータ・プロセスであってもよい。好ましい実施態様においては、ユーザーは、クライアント１２０側に設けられたデータ・コレクタ１０４である。
【００４０】
リクエストは、検索すべきデータを特定する情報を含んでいる。リクエストは、種々の方法で、伝達することができる。好ましい実施態様においては、リクエストは、データ・コレクタ１０４から伝達されるＵＲＬである。他の実施態様においては、リクエストは、電子メール・メッセージである。さらに他の実施態様においては、リクエストは、データ・コレクタ１０４によって、あるいは、他のコンピュータ・プロセスによって、伝達されるアプリケーションに特化したメッセージである。
【００４１】
好ましい実施態様においては、リクエストは、あらかじめ生成されたデータベース・クエリーを特定する情報を含んでおり、クエリーはサーバー１１０に記憶されている。代表的なリクエストは、以下のフォームと取ったＵＲＬである。
ｈｔｔｐ：／／（ｈｏｓｔｓｐｅｃ）／ｍｌｅ‐ｃｇｉ／ｘｍｌ？（ｑｕｅｒｙｎａｍｅ）
このＵＲＬにおいて、（ｈｏｓｔｓｐｅｃ）は、そのリクエストが向けられる特定のサーバーを特定する値である。代表的な（ｈｏｓｔｓｐｅｃ）の値は、ｗｗｗｗ．ｓｕｐｐｌｉｅｒ．ｃｏｍ．である。（ｈｏｓｔｓｐｅｃ）と（ｑｕｅｒｙｎａｍｅ）の間のＵＲＬの部分は、あらかじめ生成されたデータベース・クエリーが記憶されているサーバーの特定のロケーションを特定する情報である。この情報は、たとえば、あらかじめ生成されたクエリーを含むファイルあるいはディレクトリーを示すものである。
【００４２】
このＵＲＬにおいて、（ｑｕｅｒｙｎａｍｅ）は、そのリクエストが呼び出そうとしている特定のデータベース・クエリーを、ただ一つに特定する値である。この（ｑｕｅｒｙｎａｍｅ）の値は、サーバー上のクエリーにマップされた任意の識別子あるいはキーワードである。代表的なマッピング・スキームは、各クエリーを別のファイルに保存し、ＵＲＬの（ｑｕｅｒｙｎａｍｅ）セクションに保存されたファイルの名前を提供して、ＵＲＬ中のクエリーを参照する。たとえば、上述した自転車の製造業者データモデルは、価格によって分類されたパーツ・テーブルの全体を検索する“ＰａｒｔｓＢｙＰｒｉｃｅ”という名前のクエリーと、自転車に使用されているパーツに対応するパーツ・テーブル内のすべてのレコードを検索する“ＢｉｃｙｃｌｅＰａｔｓ”という名前のクエリーを有している。
【００４３】
本実施態様においては、アドミニストレーターは、一組のデータベース・クエリーをあらかじめ生成し、サーバー上に記憶する。アドミニストレーターは、種々の方法を用いて、これらのクエリーを生成する。アドミニストレーターは、マニュアルで、クエリーを書くこともできる。アドミニストレーターはまた、クエリー・デザイン・ツールを用いて、高レベルモデルから、クエリー言語で、クエリーを生成することもできる。クエリー・デザイン・ツールは、サーバー・データベースを生成するために使用される特定のサーバー・データベース・ソフトウエアに対応付けられたコンポーネントであってもよく、また、サード・パーティーあるいはスタンドアロン型のパッケージであってもよい。好ましい実施態様においては、アドミニストレーターは、イネーブラー・エージェント・ソフトウエアを伴ったウエブ・ベース・エディターを用いて、クエリーを生成する。
【００４４】
一旦、クエリーが生成されると、クエリーはサーバー上に保存される。好ましい実施態様においては、クエリーは、サーバー上の別個のファイル内に保存される。これによって、イネーブラー・エージェントに、上述したように、クエリーに対応付けられたキーボードを含むＵＲＬが提供されているときに、イネーブラー・エージェントが、適当なクエリーを、速やかに、かつ、容易に捜し出すことを可能にする。クエリーはまた、他のフォーマットで、保存することもできる。たとえば、単一ファイルが、関連するクエリーのライブラリを含んでいてもよい。この例では、イネーブラー・エージェントは、ライブラリ・ファイルをパースして、リクエストにおいて指定された特定のクエリーを捜し出す。
【００４５】
図３に示されるように、あらかじめ定義されたクエリーに応答して、データ・コレクターに、データを提供する方法は、ＵＲＬを生成するデータ・リクエスターとともに、ステップ３０５を開始する。リクエスター側のマシン上のＨＴＴＰサーバーは、ステップ３１０において、ネットワークを通じて、ＵＲＬを、供給者のサーバーに送る。供給者側のＨＴＴＰサーバーは、ＵＲＬに含まれている情報に基づいて、ＵＲＬが、イネーブラー・エージェントに対するリクエストであると決定し、ステップ３１５において、ＵＲＬが、イネーブラー・エージェントに送られる。この送信は、ＵＲＬを、サーバー・プラットフォーム上の特定のディスクファイルおよびディレクトリーにマップするＨＴＴＰのファンクションである。たとえば、アパッチＨＴＴＰサーバーは、アパッチ・コンフィギュレーション・ファイル内の“Ａｌｉａｓ” ディレクトリーを用いる。イネーブラー・エージェントは、ステップ３２０において、ＵＲＬをパースし、クエリー識別子を抽出する。ステップ３２５において、イネーブラー・エージェントは、このクエリー識別子を用いて、クエリー識別子と関連付けられたクエリーを捜し出す。クエリーは、供給元側のサーバー上に保存されている。ステップ３３０において、イネーブラー・エージェントは、上述したクエリー識別子を用いて、データベースに問い合わせをする。サーバー・データベースは、ステップ３３５において、クエリーのコンテンツに基づいて、演算結果のセットを生成する。演算結果のセットは、クエリーのパラメターに対応するサーバー・データベースの種々のテーブルからの複数のロウからなっている。演算結果のセットは、ステップ３４０において、サーバー・データベースから、イネーブラー・エージェントに送り返される。この段階では、演算結果のセットは、まだ、サーバー・データベースによって用いられた構造化データ保存フォーマットによって、表わされている。イネーブラー・エージェントは、ステップ３４５において、構造化データ保存フォーマット化されたデータを、マークアップ言語データに変換し、マークアップ言語フォーマット化されたドキュメントを生成する。イネーブラー・エージェントは、次いで、ステップ３５０において、このドキュメントを、供給元サイトにあるＨＴＴＰサーバーに送る。最後に、供給元のＨＴＴＰサーバーが、ステップ３５５において、マークアップ言語ドキュメントを、リクエスターに発送する。
【００４６】
他の好ましい実施態様においては、リクエストは、リクエストの時点で、生成されたデータベース・クエリーを有している。本実施態様にかかる代表的なリクエストは、以下のＵＲＬである。
ｈｔｔｐ：／／（ｈｏｓｔｓｐｅｃ）／ｍｌｅ−ｃｇｉ／ｘｍｌ？ｐｏｓｔ
このＵＲＬにおいて、（ｈｏｓｔｓｐｅｃ）は、上述のように定義されている。このＵＲＬは、ＨＴＴＰ  ＰＯＳＴコマンドを用いて、リクエストをＨＴＴＰサーバーに送る１つの方法である。これによって、ＨＴＭＬ・インプット・ディレクティブを用いて、ＨＴＭＬドキュメントに含まれた引き数（アーギュメント）を、イネーブラー・エージェントに送ることが可能になる。インプット・ディレクティブは、ＨＴＭＬの標準コンポーネントであり、入力を、種々のフォームで、ＨＴＴＰサーバーに送ることを可能にする。本実施態様においては、インプット・コマンドは、ＳＱＬクエリー、あるいは、ＸＭＬドキュメントに変換されるべきデータに対するリクエストを直接に指定するその他の方法を含んでいる。他の実施態様においては、引き数（アーギュメント）は、それらを、第二のＵＲＬの一部に組み込むことによって、イネーブラー・エージェントに送られる。第二のＵＲＬの例としては、次のものが挙げられる。
ｈｔｔｐ：／／（ｈｏｓｔｓｐｅｃ）／ｍｌｅ−ｃｇｉ／ｘｍｌ？ｐｏｓｔ？（ｓｑｌｓｔａｔｅｍｅｎｔ）．
サーバーは、この付加的な情報を用いて、クエリーが適切に実行され、リクエストをしているユーザーが、サーバー・データベースにアクセスができるように、保証する。この情報が提供されないときは、リクエストは、イネーブラー・エージェントのアドミニストレーターによって構成されたデフォルト値を用いて、処理される。アドミニストレーターは、以下に説明を加えるウェブ・ベースのインターフェイスを用いて、イネーブラー・エージェントを構成することができ、あるいは、アドミニストレーターは、マニュアルで、コンフィギュレーション・ファイルを編集するようにしてもよい。
【００４７】
図４を参照すると、ステップ６０５において、ユーザーによって生成されたクエリーに応答して、データを検索する方法が開始されるとともに、データ・リクエスターによって、クエリーが組み立てられる。次いで、ステップ６１０において、クエリーは、ＨＴＴＰ「ポスト」コマンドを供給者側のＨＴＴＰサーバーに送信することによって、サーバーに提出される。「ポスト」コマンドは、クエリーと、ユーザー名やパスワードなどのクエリーを処理するために必要な付加的なパラメータを含んでいる。ステップ６１５において、供給者側のＨＴＴＰサーバーは、ＵＲＬをパースし、「ポスト」コマンドを、イネーブラー・エージェントに送る。イネーブラー・エージェントは、入力されたＵＲＬから、クエリーを抽出するＣＧＩスクリプトを実行し、ステップ６２０において、クエリーを、供給者側のデータベースに送る。ステップ６２５において、サーバー・データベースは、クエリーのコンテンツに基づいて、演算結果のセットを生成する。この演算結果のセットは、クエリーのパラメターに対応するサーバー・データベースの種々のテーブルからの複数のロウからなっている。
【００４８】
演算結果のセットは、ステップ６３０において、サーバー・データベースから、イネーブラー・エージェントに送り返される。この段階では、演算結果のセットは、まだ、サーバー・データベースによって用いられた構造化データ保存フォーマットによって、表わされている。イネーブラー・エージェントは、ステップ６３５において、構造化データ保存フォーマット化されたデータを、マークアップ言語データに変換し、マークアップ言語フォーマット化されたドキュメントを生成する。イネーブラー・エージェントは、次いで、ステップ６４０において、このドキュメントを、供給元サイトにあるＨＴＴＰサーバーに送る。最後に、供給元のＨＴＴＰサーバーが、ステップ６４５において、マークアップ言語ドキュメントを、リクエスターに発送する。
【００４９】
マークアップ言語フォーマットがＸＭＬである実施態様においては、イネーブラー・エージェントは、図５に示された方法を用いて、構造化データ保存フォーマット化されたデータを、ＸＭＬフォーマットに変換する。この方法を、図２Ａおよび図２Ｂに示されたデータベースのクエリーに適用することによって生成された代表的なＸＭＬドキュメントが、図６に示されている。イネーブラー・エージェントは、サーバー・データベースから、演算結果のセットを受け、ステップ４０５において、クエリー識別子タグを生成する。代表的なクエリー識別子タグ５０２として、上述したクエリー“ＢｉｃｙｃｌｅＰａｒｔｓ”についてのものが示されている。ステップ４１０において、イネーブラー・エージェントは、演算結果のセットを調べて、処理すべき次のデータベース・レコードを得る。
【００５０】
レコードが処理されて、残っていると仮定すると、イネーブラー・エージェントは、処理すべき次のレコードを選択し、ステップ４１５において、レコード・コンテナー・タグを生成する。レコード・コンテナー・タグには、クライアント・データベースのどのレコードかを明確に特定する値が割り当てられる。代表的なレコード・コンテナー・タグ５０４として、上述した “ＢｉｃｙｃｌｅＰａｒｔｓ” クエリーによって生成された演算結果のセットの第一のレコードについてのものが示されている。レコード・コンテナー・タグ５０４は、図２Ａおよび図２Ｂに示されるように、レコードのキー・フィールド２２２の値に対応する「１」の値を有している。
【００５１】
次いで、イネーブラー・エージェントは、ステップ４２０において、処理されているレコードのフィールドをパースする。フィールドが処理されて、残っていると仮定すると、イネーブラー・エージェントは、処理すべき次のフィールドを選択し、ステップ４２５において、フィールド・エントリー・タグを生成する。フィールド・エントリー・タグには、デフォルトによって、指定されたクエリーにより照合された対応するテーブル・コラムの名前が与えられる。アドミニストレーターは、ウェブ・ベースのセットアップ・スクリーンを用いて、これらのデフォルト・タグ名を変更し、異なる名前を付与することができる。フィールド値が、フィールド・エントリー・タグに挿入された後、フィールド・エントリー・タグが閉じられる。代表的なフィールド・エントリー・タグ５０６として、上述した“ＢｉｃｙｃｌｅＰａｒｔｓ” クエリーによって生成された演算結果のセットの第一のレコードの“キー”フィールドについてのものが示されている。フィールド・エントリー・タグ５０６は、図２Ａおよび図２Ｂに示されるように、パーツ・テーブル２２０の第一のレコードのキー・コラムの値に対応して、「１」の値を有している。
【００５２】
一旦、フィールド・エントリー・タグが閉じられると、制御はステップ４２０に戻り、次のフィールドが処理される。演算結果のセットの第一のレコードのすべてのフィールドが処理されると、イネーブラー・エージェントは、ステップ４３０において、レコード・コンテナー・タグのエンドを生成する。代表的なレコード・コンテナー・タグ５０８のエンドとして、上述したクエリー“ＢｉｃｙｃｌｅＰａｒｔｓ”に対する演算結果のセットの第一のレコードについてのものが示されている。次いで、制御はステップ４１０に戻り、演算結果のセットの次のレコードが処理される。演算結果のセットのすべてのレコードの処理が完了すると、ステップ４３５において、最後のＸＭＬタグが生成され、ＸＭＬドキュメントが閉じられる。代表的な終了タグとして、上述した“ＢｉｃｙｃｌｅＰａｒｔｓ” クエリーの演算結果のセットについてのものが示されている。演算結果のセットのために、任意的に、データ・タイプ・ダイアグラムを生成することもできる。このデータ・タイプ・ダイアグラムは、演算結果のセットのレコードの各フィールド内に保存されているデータのタイプを指定するものである。表１は、“ＢｉｃｙｃｌｅＰａｒｔｓ” クエリーについての代表的なデータ・タイプを示している。
【００５３】
【表１】
2004530173.tif 000003
この変換方法を用いて、正しく、適格なＸＭＬドキュメントが、データベースのフィールド名およびアドミニストレーターによってセットアップされたコンフィギュレーション・データの組み合わせから、直接に構成される。
【００５４】
イネーブラー・エージェントはまた、データ収集システムのセットアップ、オペレーションおよびデバッギングを促進するために、ユーティリティ・プログラムのコレクションを有している。代表的なユーティリティ・プログラムは、ＨＴＭＬフォーマットでのクエリーの結果を表示するクエリー・ビューワ、上述したあらかじめ定義されたクエリーを構成する際に、アドミニストレーターを助けるクエリー・エディターと、サーバー・データベース、ユーザーが生成したクエリーを提供するデフォルト・ログイン名、ユーザーが生成したクエリーを提供するデフォルト・パスワードおよび他のパラメーターを含むサーバーのデフォルト・サーバー名などのユーザーが基本ログインパラメーターを構成することを可能にするデータベース・パラメーター・エディターと、トラスティッド・ホストのリスト、ユーザーの一致を認証するために用いられる認証機構およびイネーブラー・エージェントが、あらかじめ定義されたクエリー、ユーザーが定義したクエリーあるいは双方のいずれを受け取るかをどうかを指定するシステムの許容動作モードのリストなどのイネーブラー・エージェントのセキュリティー・パラメーターを構成する際に、アドミニストレーターを助けるセキュリティー・パラメーター・プログラムと、イネーブラー・エージェントの動作をテストするために用いることができる単純なウェブ・ベースのＸＭＬおよびＨＴＭＬクライアントを提供するタグ・ブラウザ・プログラムとを含んでいる。このユーティリティ・プログラムのリストは代表的なものであるが、これに限定されるものではない。特定の実施態様の特定のインプリメンテーション・パラメーターに応じて、他のユーティリティ・プログラムを提供することもできる。
【００５５】
図７を参照すると、イネーブラー・エージェントの本実施態様にかかるクエリー・ビューワ・スクリーン７０が、ウェブ・ベースのＣＧＩスクリプトとして、提供されている。クエリー・ビューワ・スクリーン７０は、ウェブ・ブラウザ・プログラム７２の内部の第一のＵＲＬ７１を活動化することによって、表示される。クエリー・ビューワ・スクリーン７０は、ユーザーが、ＨＴＭＬフォーマットで表示されるべき特定のクエリーを選択することを可能にする。スクリーンは、問い合わせられたデータを、表形式で示し、ユーザーが、プルダウン・メニュー７４を用いて、特定のクエリーを選択することを可能にする。種々のクエリーが、ユーザーが利用できるように、プルダウン・メニュー７４の中に用意されている。クエリーは、図８に示されるクエリー・エディター・ツールによって、構成される。
【００５６】
クエリー・ビューワ・スクリーン７０は、デバッグおよび解析のために、システムを可視化する簡単な方法を提供する。このスクリーンによって表示されるテーブル７６は、クエリーの演算結果から自動的に生成される。テーブル７６は、クエリー結果を、ユーザーに戻されるＨＴＭＬドキュメントにフォーマットされたコンポーネントにパースすることによって、クエリー結果から生成される。テーブル７６の頂部は、クエリーによって指定された種々のフィールド７８を表わし、データ・コレクターによって、読み取られた種々のマークアップ言語フォーマット・タグに対応している。
【００５７】
問い合わせられた情報を可視化するのに加えて、クエリー・ビューワ・スクリーン７０は、クエリー・エディター・スクリーンによって、プルダウン・メニュー７４から生成された種々のクエリーのリストを、ユーザーに提供する。さらに、クエリー・パラメーター・スクリーンを呼び出すボタン７７を活動化することによって、クエリーのために、データベース・パラメーターを構成することもできる。ボタン７９は、活動化されると、データベースに、クエリーを提出する。
【００５８】
クエリー・ビューワ・スクリーン７０のユーザーは、（１）プルダウン・メニュー７４から、クエリーを選択し、（２）ボタン７７を活動化して、値をポップアップするフォームに入れ、必要なデータベース・パラメーターを提供し、次いで、（３）ボタン７９を活動化して、クエリーをデータベースに提出することによって、特定のクエリーを見ることができる。クエリー結果は、戻されて、ＨＴＭＬフォーマットに自動的に変換され、クエリー・ビューワ・スクリーン７０に表示される。
【００５９】
図８を参照すると、イネーブラー・エージェントの本実施態様にかかるクエリー・エディター・スクリーン８０は、ウェブ・ベースのＣＧＩスクリプトとして、提供されている。クエリー・エディター・スクリーン８０は、第二のＵＲＬ８１を活動化することによって、ウェブ・ブラウザ７２内に表示される。クエリー・エディター・スクリーン８０は、ユーザーが、クエリー・ビューワ・スクリーン７０（図７）のプルダウン・メニュー７４中の特定のアイテムに関連付けられたクエリーを構成することを可能にする。クエリー・エディター・スクリーン８０は、ユーザーが、クエリーを生成し、修正変更し、デレートすることを可能にし、これらのクエリーをクエリー・ビューワ・スクリーン７０（図７）のプルダウン・メニュー７４中のアイテムと関連付けることを可能にする。
【００６０】
クエリー・エディター・スクリーン８０は、ユーザーが、ＳＱＬなどの構造化データ保存フォーマットで、クエリーを入力するテキスト・ウィンドウ８２を含んでいる。クエリー・エディター・スクリーン８０はまた、スクリーン８０に機能性（ファンクショナリティー）を与えるボタン８３のパレットを含んでいる。これらのボタンは、活動化されたときに、テキスト・ウィンドウ８２のコンテンツを、長期保存のために、セーブさせるセーブ・ボタン８４と、活動化されたときに、ユーザーに、テキスト・ウィンドウ８２のコンテンツに関連付けられるべき識別子の入力を促し、コンテンツを長期保存のために、セーブするセーブ・アズ・ボタン８５と、活動化されたときに、ユーザーに、クエリー識別子を生じさせるように促し、クエリー識別子に関連付けられたクエリーを検索し、テキスト・ウィンドウ８２上に表示させるリロード・ボタン８６と、進行中のオペレーションをキャンセルするキャンセル・ボタン８７を含んでいる。たとえば、ユーザーが、長いクエリーを活動化し、クエリーのオペレーションを停止させたい場合には、ユーザーはキャンセル・ボタン８７をクリックする。これらは、ボタン・パレット８３の代表的な構成要素である。所望の機能性（ファンクショナリティー）に応じて、ボタン・パレット８３に、他のボタンを含ませることもできる。
【００６１】
クエリー・エディター・スクリーン８０は、クエリー（クライアントや、プリビレッジを有していないユーザーには見えない）と、クエリー結果のアソシエーションを容易にする。各クエリーは、サーバー上のオウンファイル内に備わっている。このファイルは、クエリー・エディター・スクリーン８０あるいは標準のテキスト・ファイル・エディターによって、修正変更することができる。
【００６２】
図９を参照すると、イネーブラー・エージェントの本実施態様にかかるデータベース・パラメーター・スクリーン９０は、ウェブ・ベースのＣＧＩスクリプトとして、提供されている。データベース・パラメーター・スクリーン９０は、第三のＵＲＬ９１を活動化することによって、ウェブ・ブラウザ７２内に表示される。データベース・パラメーター・スクリーン９０は、システムの種々のパラメーターを構成する上での多方面にわたるユーティリティーを提供する。このスクリーンは、ドライバー・プログラムや、タイムアウト、パスワード、セキュリティ・アイテムなどのクエリーを生成するのに必要な値を指定する中央の部分を提供する。このスクリーンはまた、現在のクエリーのデータ・ソースへのマッピングを修正変更することを容易にする。このスクリーンは、典型的には、プリビレッジを有しているユーザーによって利用される。
【００６３】
データベース・パラメーター・スクリーン９０は、ユーザーが、データベースのために必要なパラメーターを入力するテキスト・ボックス９２を有している。用いられるべきパラメーターは、データ収集システムの生成者によって選ばれた特定のデータベース・パッケージによって決まる。
【００６４】
データベース・パラメーター・スクリーン９０はまた、スクリーンに機能性（ファンクショナリティー）を与えるボタン・パレット９２を有している。これらのボタンには、活動化されたときに、ユーザーによる変更をデータベースに保存させるコミット・ボタン９３と、活動化されたときに、クエリーを含むウィンドウをポップアップさせ、クエリーの編集を可能にするエディット・クエリー・ボタン９４と、活動化されたときに、何の変更も加えることなく、データベース・パラメーター・スクリーン９０を閉じるキャンセル・ボタン９５とが含まれている。これらは、ボタン・パレット９２の代表的な構成要素である。所望の機能性（ファンクショナリティー）に応じて、ボタン・パレット９２に、他のボタンを含ませることもできる。
【００６５】
イネーブラー・エージェントは、種々のサポート・ツールおよびサポート機能を含む包括的なシステムに向けられている。代表的なサポート・ツールには、ユーザーが、サード・パーティーＨＴＴＰサーバーを必要とすることなく、イネーブラー・エージェントを動作させることを可能にする組込み型ＨＴＴＰサーバーと、プリビレッジを有しているユーザーが、テーブルを、サーバー・データベース上に挿入し、アップデートすることを可能にし、以下に説明を加えるエミリー・フレームワーク言語や、ＨＴＴＰクライアントなどの外部ソフトウエアによって、テーブルがロードされることを可能にする標題音楽のインターフェースを提供するデータベース・インサート・アップデート・ユーティリティーと、ユーザーが、システムのための新たな機能性（ファンクショナリティー）および機能を生成することを可能にするエミリー・フレームワーク・スクリプティング言語・開発キットと、マークアップ言語ドキュメントおよびＰＤＦファイルの形のオンライン・ドキュメンテーションで、システムをインストールし、構成し、作動させ、維持するに十分なドキュメンテーションがある。
エミリー・フレームワーク・スクリプティング言語
図１２を参照すると、任意のエミリー・スクリプティング言語によって実行される典型的な方法を示すフローダイアグラムが示されている。エミリー・スクリプティング言語は、１また２以上のタグ付きの部分を有するマークアップ言語ファイルを処理するために用いることもできる。この方法は、ステップ１２００において、第一のマークアップ言語ファイルを開き、ステップ１２１０において、第一のマークアップ言語ファイルを１または２以上の部分にパースするように構成されている。言語インタプリターは、次いで、ステップ１２０２において、第一のマークアップ言語ファイルの各部分を、電子メモリ内の１または２以上のオブジェクトに保存する。
【００６６】
エミリー言語の一部が、ＣＡＴコマンドあるいはＤＩＲコマンドを含んでいてもよい。そのようなコマンドが、ステップ１２０６において、言語インタプリターによって、受け取られると、インタプリターは、１または２以上のオブジェクトを選択に供し、ステップ１２０８において、１または２以上の対応するフォルダーおよびスクリーン上のサブ・フォルダ内において、観察あるいは他の処理を実行する。１または２以上のフォルダーは、第一のマークアップ言語ファイルのサブ部分の配列に応じて、サブ・フォルダーを有する階層リスト内に、提供されてもよい。ここに、各フォルダーは、配列、サブ配列あるいは第一のマークアップ言語ファイルを含むオブジェクトを表わしている。
【００６７】
エミリー言語は、選択を可能にし、１または２以上のオブジェクトの観察および他の処理のためにセットされたコマンド言語を有している。セットされたコマンド言語は、選択、観察および他の処理のための複数のコマンドを有している。コマンドのサブ・セットは、第一のマークアップ言語ファイルの１または２以上のフォルダー、サブ・フォルダー、部分、サブ部分を処理するための１または２以上のコマンドを含んでいてもよく、サブ・セットは、コマンドのセットのサブ・セットを含む１または２以上の実行可能なバッチ・ファイルを含んでいてもよい。１または２以上の実行可能なバッチ・ファイルは、第二のマークアップ言語ファイルに含まれていてもよく、実行可能なバッチ・ファイル中のコマンドのサブ・セットは、第二のマークアップ言語ファイル中の第一のマークアップ言語ファイルの部分を含む１または２以上のオブジェクトを含むコマンドを有していてもよい。
【００６８】
言語インタプリターは、ステップ１２１０において、第一あるいは第二のマークアップ言語ファイル中のオブジェクトをセットあるいはアップデートするための１または２以上のＳＥＴあるいはＵＰＤＡＴＥコマンドを受信することができる。そのようなコマンドを受信したときは、言語インタプリターは、ステップ１２１２において、受信したコマンドにしたがって、オブジェクトをアップデートする。
【００６９】
ステップ１２１４において、ＰＯＳＴあるいはＳＡＶＥコマンドを受信したときは、マークアップ言語ファイルのそれぞれをアップデートするための前記他の処理の一部として、ステップ１２１６において、１または２以上のコマンドを含むコマンドのサブ・セット（これらの１または２以上のコマンドは、受信した１または２以上のコマンドに基づいて、１または２以上のオブジェクトをアップデートするためのインストラクションを含んでいる）を受信し、受信した１または２以上のコマンドにしたがって、１または２以上のオブジェクトに含まれている１または２以上の部分をアップデートし、１または２以上のオブジェクト内に含まれている部分を、アップデートされた言語ファイルのそれぞれに保存するステップを実行することができる。
【００７０】
あるいは、第二のマークアップ言語ファイルを、ＵＲＬによって特定されたネットワークノードに提供する前記他の処理の一部として、１または２以上のコマンド（これらの１または２以上のコマンドは、受信した１または２以上のコマンドに基づいて、１または２以上のオブジェクトをアップデートするためのインストラクションを含んでいる）を受信し、受信した１または２以上のコマンドにしたがって、１または２以上のオブジェクトに含まれている１または２以上の部分をアップデートし、第二のマークアップ言語ファイルを、ＵＲＬによって特定されたネットワークノードに提供するステップを実行することもできる。
【００７１】
あるいは、第一のマークアップ言語ファイルは、データ入力を受け入れる１または１以上の部分を含んでいてもよく、この場合には、前記他の処理は、前記データ入力を受信し、前記データ入力を、データ入力を受け入れる１または２以上の部分を含むオブジェクト内に保存し、前記データ入力を、前記マークアップ。ファイルに送ることによって、前記データ入力の受信および送信をおこなうように構成されている。前記データ入力の少なくとも一部は、受信ステップの後、保存ステップの前に、処理されてもよい。この代替的な処理は、たとえば、リモート・データベース上のクエリーを実行するためのＳＧＬあるいはクエリーをリモート・データベースに送るためのＳＱＬを受信するために、利用することもできる。
【００７２】
マークアップ言語ドキュメントをパースし、ローカル・コンピュータ・システムに提供する方法は、２つのフェーズに分けられる。すなわち、マークアップ言語ドキュメントをウェブ・サーバーあるいはローカル・ファイル・システムからコピーする第一のダウンロード・フェーズと、これに続き、一旦、ダウンロードされたマークアップ言語ドキュメントがパースされ、ドキュメント・オブジェクトのさらなる操作のためのリンクされたリストとして、ローカル・コンピュータ・システムに提供される第二の分析フェーズに分けられる。この第一のフェーズは、マークアップ言語パーサー・プレゼンター・モジュールのフェーズ２が活動を始めた場合に、開始され、終了する。フェーズ２は、マークアップ言語パーサー・プレゼンター・モジュールが、各ドキュメント・オブジェクトを、ローカル・コンピュータのメモリスペース内の仮想の根、枝あるいは葉オブジェクトにマップしたときに、開始される。
【００７３】
マークアップ言語パーサー・プレゼンター・モジュールは、その構文法が、代表的なコマンドライン・プロセッサーに類似する単一のコマンドを用いて、呼び出される。たとえば、マークアップ言語パーサー・プレゼンター・モジュールの機能は、以下のステートメントによって、提供される。
ｏｐｅｎ“ｈｔｔｐ：／／ｗｗｗ．ｖｃｓｙ．ｃｏｍ”
ここに、ＵＲＬは、「オープン」コマンドに対する引き数として、提供される。
【００７４】
マークアップ言語パーサー・プレゼンター・モジュールのある実施態様においては、マークアップ言語ドキュメント・ソースは、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）であり、ダウンロードは、ＨＴＴＰを用いて、実行され、ネットワーク上で割り当てられたＵＲＬ（ユニフォーム・リゾース・ロケーター）によって、マークアップ言語ドキュメントを参照する。マークアップ言語パーサー・プレゼンター・モジュールは、ローカル・ドキュメントの処理もまた意図している。ローカル・ドキュメントは、マークアップ言語パーサー・プレゼンター・モジュールが実行しているローカル・コンピュータ・システム上に存在している。したがって、別の実施態様にかかるマークアップ言語パーサー・プレゼンター・モジュールは、ローカル・ファイル名を用いて、ローカル・システム上のドキュメントの処理を予測する。ローカル・ドキュメントの処理は、ＨＴＴＰを用いて、ウェブ・サーバーから、ドキュメントをコピーすることも、ＵＲＬによって、ドキュメントを参照することも要求しない。この場合には、「オープン」構文が、代わりに、提供されるべき有効なローカル・ファイルのパス名を要求する。
【００７５】
ｏｐｅｎ“ｃ：？ＤＯＣＳ？ｒｅｓｕｍｅ．ｈｔｍ”
あるいは、
ｏｐｅｎ“／ｕｓｒ／ｄａｔａ／ｒｅｓｕｍｅ．ｈｔｍ”
マークアップ言語パーサー・プレゼンター・モジュールは、コマンド・ラインをパースする。マークアップ言語パーサー・プレゼンター・モジュールは、マークアップ言語ドキュメント・ソースがＨＴＴＰであるかどうかを決定する。ソース・ドキュメントが、ＨＴＴＰドキュメントではない場合には、フェーズ２が続行される。ソース・マークアップ言語ドキュメントが、ＨＴＴＰドキュメントである場合には、処理を再開する。ＨＴＴＰリクエスト・ステータスが、転送が要求されていることを表示している場合には、マークアップ言語パーサー・プレゼンター・モジュールは、そのドキュメントに対する新たなＵＲＬを得て、もう一度し、ダウンロード・フェーズを開始させる。マークアップ言語パーサー・プレゼンター・モジュールが、転送が要求されていないと判断したときは、処理が続行される。ＨＴＴＰリクエストによって、エラーが生成されたときは、マークアップ言語パーサー・プレゼンター・モジュールが打ち切られる。ＨＴＴＰエラーの例には、４０４、ＵＲＬが見つからないなどがある。一旦、ユーザーが、実行可能なＵＲＬを特定したときは、マークアップ言語パーサー・プレゼンター・モジュールの処理が、再び、開始されるが、ユーザーが、モジュールを実行した後にのみ、マークアップ言語パーサー・プレゼンター・モジュールの処理が再開される。ＨＴＴＰリクエストによって、エラーが生成されないときは、処理が続行される。マークアップ言語パーサー・プレゼンター・モジュールは、ソース・ドキュメントが、ＨＴＴＰドキュメントかどうかを決定する。ソース・マークアップ言語ドキュメントが、ＨＴＴＰドキュメントである場合には、ドキュメントが分析フェーズに転送される前に、各相対的ＵＲＬは、絶対的なＵＲＬに変換される。
【００７６】
マークアップ言語パーサー・プレゼンター・モジュールの分析フェーズが開始される。分析フェーズの目標は、マークアップ・ドキュメントを処理するフレーム・ワークの機能モジュールおよびホスト処理システムにプレゼンテーションするために、仮想データ構造を生成することにある。好ましい実施態様においては、プレゼンテーションを実現するために、連結されたリスト・データ構造の使用が意図される。
【００７７】
連結されたリストは、リストのデータ・エレメントを「連鎖する」ために、ポインターを用いる動的データ構造の一タイプである。リストのデータ・エレメントは、ノードと呼ばれる。連結されたリストは、リニアであってもよく、その場合には、各ノードは、直列状に、隣り合った一方のノードのみに対するポインターを含んでいる。したがって、データ・エレメントのリニア・データをトラバースするために、あたかも、一段、一段、はしごを登るように、リストの各データ・エレメントを走査することが必要である。
【００７８】
ツリー構造は、連結されたリストの一タイプであり、ノードが、階層状にな並び、ルート・ノードを含んでいる。このタイプの連結されたリストを記述するために用いられるツリー・アナロジーは、分岐ノードおよび葉ノードに及んでいる。連結されたリストは、転置されたツリーのように見える。特筆すべきは、葉ノードは、他のノードおよび各ツリーに一つしかなく、他のあらゆるノードによって、ポイントされるルート・ノードに対するポインターを含んではいないことである。
【００７９】
マークアップ言語パーサー・プレゼンター・モジュールの好ましい実施態様においては、ノードがソース・マークアップ・ドキュメントのオブジェクトであるツリーとしてのフレーム・ワークに対するマークアップ・ドキュメントの一対一マッピングあるいはプレゼンテーションが意図されている。結果として生じるツリーは、その葉オブジェクトとして、ソース・マークアップ・ドキュメントの複数のタグおよび複数の属性を有し、その分岐オブジェクトとして、複数の属性もしくは他の複数のタグまたは属性と複数のタグを含むソース・マークアップ・ドキュメントのタグのみを有しているであろう。最後に、ツリーのルート・オブジェクトは、他の複数の分岐オブジェクトあるいは他の複数の葉オブジェクトに対するポインターを含んでいるであろうが、後者は稀である。ルート・オブジェクトは、それによって、ドキュメントが記載されるマークアップ言語を指定するマークアップ・ドキュメント中の第一のタグから、しばしば派生する。ある実施態様においては、マークアップ言語は、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）であり、別の実施態様においては、拡張可能なマークアップ言語（ＸＭＬ）であるが、他のかかるマークアップ言語も、フレーム・ワークの範囲内である。
【００８０】
パースされたマークアップ・ドキュメントは、ＨＴＭＬフォーマットから、ノードの階層レベルに、取り出される。ノード・レベル？は、ツリーのルート・ノードを示している。ルート・ノードは、＜ＨＴＭＬ＞タグから、導出される。同様に、ノード・レベル１のＨＥＡＤ分岐オブジェクトは、＜ＨＥＡＤ＞タグから、導出される。ツリーの階層配列は、ＨＴＭＬドキュメント中のタグの階層配列を厳密に反映している。クロージング・タグ・エレメント＜ＨＴＭＬ＞は、ＨＴＭＬタグである。
【００８１】
マークアップ言語・ドキュメントを、結果として生じるルート・オブジェクト、分岐オブジェクトおよび葉オブジェクトにマッピングして、仮想ディレクトリ・ツリー・プレゼンテーションを作り上げるときに、マークアップ言語パーサー・プレゼンター・モジュールは、複数のルールに従う。これらのルールは、さらに、結果として生じる連結されたリスト中の同じディレクトリ・ツリー・オブジェクトに、マップされないように保証する。換言すれば、結果として生じる連結されたリスト・ノード・オブジェクトは、各マークアップ言語パーサー・プレゼンター・モジュール・ドキュメント・オブジェクトを、唯一のものとして、特定しなければならない。それは、各マークアップ言語・ドキュメントは、同じタグの複数のインスタンスを含んでいるからである。したがって、タグあるいはサブ・タグは、同じ名前の１以上のサブ・タグを含むことができる。与えられたドキュメント・タグは、多値の属性を有することがないので、逆に、属性は、つねに、唯一であることが保証されている。一つのルールは、必要があれば、インスタンス番号を用いることによって、異なるタグの同じ名前のサブ・タグが唯一性を保持するようになっている。したがって、ディレクトリ・ツリーにマップされたときに、タグは、その名前が、マークアップ言語・ドキュメント中のそのタグの逐次的な出現に関連付けられた唯一のインスタンス番号を含んでいる葉オブジェクトとして、具体化される。属性ドキュメント・オブジェクトは、同様な唯一性の要求を有している。ディレクトリ・ツリーにマップされたときに、名前付き葉オブジェクトとなる属性ドキュメント・オブジェクトは、インスタンス・葉オブジェクト・タグ・ネームに関連付けられているため、唯一性を満足する。
【００８２】
マークアップ・ドキュメントをマップし、プレゼンテーションする上述の方法は、連続するマークアップ言語・ドキュメント・処理フレームワークによるさらなる処理の基礎を設ける。
【００８３】
マークアップ言語・ドキュメントを処理するためのフレーム・ワークを提供するこの方法およびシステムの第二のモジュールは、マークアップ言語・コマンド・プロセッサーである。マークアップ言語・コマンド・プロセッサーの一部を形成するコマンドのグループは、アクセス・コマンド・グループである。それは、このグループ中のコマンドは、メモリ中のツリーの物理的な構造を変えるようなアクションを実行しないからである。ツリー構造を変えるように設計された関連したコマンドの第二のグループについては、後述する。
【００８４】
マークアップ言語パーサー・プレゼンター・モジュールは、コマンド・プロセッサーが呼び出される前に、ドキュメントをパースし、開く。マークアップ言語パーサー・プレゼンター・モジュール・ドキュメントが、上述したマークアップ言語パーサー・プレゼンター・モジュールを用いて、所望のように、プレゼンテーションされなかった場合には、マークアップ言語・コマンド・プロセッサー方法は、ある実施態様においては、活動を一時的に停止し、メモリ中に、実行可能なツリー構造が作り上げられるまで待つ。マークアップ言語・コマンド・プロセッサーが、メモリ中の実行可能なツリー構造に出会った場合には、マークアップ言語・コマンド・プロセッサーは、インタプリターとして、動作し、Ｕｎｉｘのようなテキスト・ベース・オペレーティング・システムのコマンド・プロセッサーな核とほぼ同様なコマンド・ラインから入力されたユーザーを処理する。
【００８５】
ある実施態様においては、マークアップ言語・コマンド・プロセッサーは、処理を向上させ、より大きいユーザー・フレキシビリティを可能にする現代のコマンド処理システムにおいて、一般的なワイルドカード・キャラクター、転送記号、フィルターおよび他のコマンド・ライン機能をパースする能力を有している。注目に値する特徴は、サイクル、ループあるいは他の反復処理コマンド・インストラクションなど、コンピュータ・プログラミング制御構造の分野の当業者にとって周知の可変インダイレクションである。プログラマーによく知られたものは、ＤＯ−ＮＥＸＴ制御構造、ＦＯＲ−ＷＨＩＬＥ制御構造およびＲＥＰＥＡＴ−ＵＮＴＩＬ制御構造があり、これらはすべて、インデックス変数に依存し、処理を制御し、処理を終了させるものである。たとえば、プログラマー・ユーザーは、ＨＴＭＬドキュメントの特異的テーブル・エレメントのコンテンツを表示したいと考えるかもしれない。これを実現したコマンド・ラインの例には、次のようなものがあり得る。
ｅｃｈｏ ＄ｈｔｍｌ／ｂｏｄｙ／＄ｔａｂｌｅ：＄Ｉ／ｔｒ：＄ｊ／ｔｄ：＄ｋ”
可変インダイレクションが要求されているかどうかを決定するため、コマンド・プロセッサーは、インスタンス値を採用しているタグの名前を探索するコマンド・ラインをパースする。この場合には、ユーザーは、コマンド・プロセッサーがエコーすること、すなわち、標準出力デバイス（通常は、モニター）上に、プレゼンテーションされたＨＴＭＬドキュメントの本体の「＄ｉ」番目のテーブルの「＄ｊ」番目の行の「＄ｋ」番目の列のコンテンツを表示することを希望している。もちろん、ある反復制御構造は、（インデックス変数として作用する）変数の有効なインスタンス値による再帰的置換を制御しなければならない。したがって、置換後のコマンド・ラインは次のように見える。
【００８６】
ｅｃｈｏ ＄ｈｔｍｌ／ｂｏｄｙ／Ｔａｂｌｅ：２／ｔｒ：３／ｔｄ：２
これは、ドキュメントの２番目のテーブルの３番目の行の２番目の列を表示している。
【００８７】
マークアップ言語・コマンド・プロセッサーは、有効なコマンド言語セットから、コマンドを受け入れる。マークアップ言語・コマンド・プロセッサーは、まず、通常は、コマンド・ラインをパースして、適当なコマンド構文および／またはワイルドカードが使用されているかどうかをチェックすることによって、各コマンドをデコードする。
【００８８】
一旦、コマンドがデコードされると、マークアップ言語・コマンド・プロセッサーは、そのコマンドに関連付けられているあらかじめコーディングされたルートを実行することによって、そのコマンドを処理する。一般的なコマンド・ラインの取り決めに続き、所望のように、コマンドが実行されなければならない。
【００８９】
アングル・ブラケット中に現われるボールド・システム指示メッセージは、特定の指示メッセージに関連付けられたコマンドによって認識可能なコマンドを、ユーザーが自由に発行することができることを表示するシステム指示メッセージ（しばしば、ホストシステムの文字セットからの単一のキャラクターにすぎない）を、ユーザーが、標準出力デバイス上で見るであろうことを意味している。これは、ホストシステムが、１以上の指示メッセージを、ユーザーに提供することができ、ユーザーが、混乱することなく、確実に、ローカル・オペレーティングシステム・コマンドを、マークアップ言語・コマンド・プロセッサー・指示メッセージに入力し、マークアップ言語・コマンド・プロセッサー・指示メッセージを、ローカル・オペレーティングシステム・コマンドに入力することができるからである。コマンド自体は、アングル・ブラケット（◇）中に現われ、ユーザーが、マークアップ言語・コマンド・プロセッサー・コマンド・セットから、有効なコマンド名を提供しなければならないことを表示し、コマンド・ライン引き数、オプション、ワイルドカードなどの前に、まず、コマンド名が、コマンド・ラインに入力されることを表示する。コマンド・ライン引き数は、スペースによって分離され、「ａｒｇ２」から「ａｒｇ１」を分離する垂直のバーは、「ａｒｇ１」および「ａｒｇ２」の一方が選択されなければならないことを意味している。ユーザーは、引き数として、「ａｒｇ１」も「ａｒｇ２」も提供しないと決めることができる。従来のマークアップ言語・コマンド・プロセッサー構文法の挿入句的な引き数記述エレメントは、引き数の記述を示す。括弧内のアイテムは、コマンド中の定数あるいは変数によって、（括弧を含めて、）置換されなければならない。引き数の範囲あるいはタイプは、通常は、コマンドの説明的な記述のコンテキスト中で、明確にされるであろう。最後に、省略符号が、引き数の繰り返しを示すために用いられる。省略符号が続くコマンドは、（それぞれが、２５６のキャラクターよりなっている）複数の引き数が、最大、１０２４キャラクターまで、続くことを表示している。引き数の範囲あるいはタイプは、つねに、コマンドの説明的な記述のコンテキスト中で、明確にされるであろう。
【００９０】
以下は、上述した構文法のルールに適合するマークアップ言語コマンドのシステム・アクセス・グループからのコマンドの一例である。
％ｅｘｅｃ［‐ｆｏｒｃｅ １ −ｅｒｒｏｒ］（ｃｏｍｍａｎｄ）
パーセント記号は、マークアップ言語・コマンド・指示メッセージを表わしている。ｅｘｅｃは、コマンドの名前である。‐ｆｏｒｃｅ引き数および−ｅｒｒｏｒ引き数を含む四角の括弧は任意である。（コマンドの）挿入句的な引き数は、要求された引き数であり、この場合には、ユーザーは、引き数として、スクリプト・ファイルを含む有効なオペレーティング・システム・コマンドを、ｅｘｅｃコマンドに提供しなければならない。たとえば、オペレーティング・システムが、Ｕｎｉｘバリアントであったときは、
％ｅｘｅｃ ？ｅｒｒｏｒ １ｓ
が、マークアップ言語・コマンド・プロセッサーに、ユニックス「リスト・カレント・ディレクトリ」コマンド（１ｓ）を実行し、例外として、その１ｓコマンドのエラー出力を解釈するように命じる。
【００９１】
そのコマンドが、ディレクトリ構造から、指定されたルート・オブジェクトあるいは分岐オブジェクトのコンテンツを表示するように求める要求である場合には、マークアップ言語・コマンド・プロセッサーは、提供された仮想的な連結されたリスト・ツリー構造をトラバースし、そのコマンドに提供された指定された引き数に含まれ、あるいは、引き数に属しているツリー中で見出されたすべてのタグ（分岐オブジェクト）のリスティングを、標準的なディスプレイにリターンする。そのコマンドが、現在、ワーキングしている分岐オブジェクトを、ある分岐オブジェクトから別の分岐オブジェクトに変更するように求める要求である場合には、マークアップ言語・コマンド・プロセッサーは、提供された仮想的な連結されたリスト・ツリー構造をトラバースし、（ユーザーによって、引き数として、そのコマンドに提供された）要求された分岐オブジェクトを、あたかも、連結されたリストのルート・オブジェクトであるかのように、ユーザーに見えるようにする。そのコマンドが、タグ（すなわち、属性葉オブジェクトとは対照的に、マークアップ言語・ドキュメント中のタグから生成された連結されたリスト中の葉オブジェクト）のコンテンツをリストするように求める要求である場合には、マークアップ言語・コマンド・プロセッサーは、（ユーザーによって、「ａｒｇ１」として、そのコマンドに提供された）要求されたタグと一致するものを探索する連結されたリストをトラバースする。一致するものが見つかったときは、マークアップ言語・コマンド・プロセッサーは、（シーク・ポジション）相対コンテンツ・ポインターを用いて、そのタグのコンテンツを特定し、標準的なディスプレイ・デバイスにリターンする。
【００９２】
そのコマンドが、属性（すなわち、タグ・葉オブジェクトとは対照的に、マークアップ言語・ドキュメント中のタグから生成された葉オブジェクト）のコンテンツをリストするように求める要求である場合には、マークアップ言語・コマンド・プロセッサーは、その連結されたリストをトラバースする。
【００９３】
マークアップ言語・パーサー・オープナーのホスト・インターフェイス・ファンクション・モジュールは、上述したマークアップ言語・パーサー・オープナーのモジュールの方法と協働して、ホスト・プログラミング言語が、その引き数がホスト言語の現在のファンクショナリティであるプログラムを生成することを可能にする一連の方法である。この意味において、これらの方法は、ホスト・プログラミング言語の経験を積んだプログラマーによって、使用可能な機能として、利用することができる。ホスト・インターフェイス・ファンクション・モジュールによって提供される機能は、所定のＡＰＩファンクション・コールを用いて、実行される。
【００９４】
ホスト・プログラミング言語で、コードを書き込むプログラマーが、ホスト・インターフェイス・ファンクション・モジュールを呼び出すために用いるステップが続く。まず、ホスト・インターフェイス・ファンクション・モジュールが、ホスト・プロセッシング・システムから、コマンドを受け取る。ホスト・インターフェイス・ファンクション・モジュールは、ホスト・プロセッシング・システムが、コマンドの認識に失敗したときには、何時でも、ホスト・インターフェイス・ファンクションを呼び出すファンクション・コールを、ホスト・プログラミング言語が作り出すことを可能にするコール・レベル・インターフェイスとして、実行される。このコール・レベル・インターフェイスは、パラメーターの受渡しを促進することによって、ホスト・プログラミング言語と、マークアップ言語・パーサー・オープナーのホスト・インターフェイス・ファンクション・モジュールとの間での通信を可能にするメカニズムである。すなわち、認識されたコマンドは、ホスト・インターフェイス・ファンクション・モジュールに、ホスト・インターフェイス・ファンクションのパラメーターとして、渡される。ホスト・インターフェイス・ファンクションを用いて、渡されるコマンドの種類は、マークアップ言語・パーサー・オープナー・モジュールの「オープン」コマンドだけでなく、マークアップ言語アクセス・グループあるいは葉オブジェクト・生成・修正グループからのコマンドであれば、いかなるコマンドであってもよい。
【００９５】
したがって、プログラマーは、マークアップ言語・パーサー・オープナーのあらゆるファンクショナリティを、自らのホスト言語プログラムに埋め込むことができ、マークアップ言語・パーサー・オープナーの方法を呼び出す必要が生じたときに、ホスト・プロセッシング言語によって、ホスト・インターフェイス・ファンクション・モジュールに対する適当なコールを生成することができる。ホスト・プログラミング言語が、ＰＥＲＬやＴＣＬなどのユニックス・プラットフォーム上のスクリプティング言語である場合には、ユーザーは、ユーザーの意のままに、ファンクショナリティを呼び出すことができるプログラムを、自由に、コンパイルし、あるいは、書き込むことができる。たとえば、視覚障害のあるユーザーが、自らのブラウザのホームページ（すなわち、ユーザーが、ブラウザを立ち上げたときには、何時でも、自動的にロードされるデフォルト・ウェブ・ページ）のバックグラウンドを、コントラストを上げるために、白に変更したいと望むことがある。これを実現するためには、ユーザーは、単に、自分自身あるいは他の誰かが書いたあらかじめコンパイルされたスクリプトあるいはあらかじめ解釈されたスクリプトを実行するだけでよい。実行中、ホスト・プロセッシング・システムは、スクリプト・コマンドを渡して、ウェブ・ページのバックグラウンドを開き、白に変えるであろう。ホスト・インターフェイス・モジュールのようなホスト・インターフェイス・メカニズムがない場合には、ユーザーは、まず、「オープン」コマンドを含み、続いて、「セット」コマンドを含む以下のように見えるであろう１または２以上の複雑なマークアップ言語・パーサー・オープナー・コマンドを、手動で発行しなければならない。
【００９６】
ｏｐｅｎ ｈｔｔｐ：／／ｗｗｗ．ｓｔｏｃｋｑｕｏｔｅｓｇａｌｏｒｅ．ｃｏｍ
ｓｅｔ ＄ｈｔｍｌ／ｂｏｄｙ／＾ｂｇｃｏｌｏｒ＝”ｗｈｉｔｅ”
ホスト・インターフェイス・ファンクション・モジュールがあれば、コードのこれらの２ラインのファンクショナリティを、プログラムの初期化あるいはブラウザの立ち上げ時に、ユーザーのために、自動的に実行されるスクリプト内に、手動による介入なしに、含ませることができる。さらに、数多くのユーザーはプログラマーではなく、このファンクショナリティをを自ら実行する意欲も知識も持ち合わせていないであろう。また、ホスト・インターフェイス・ファンクション・モジュールのスクリプティング・インターフェイス能力を用いれば、サード・パーティ・ソフトウエア・ベンダーは、フリーウェアとして、オフザシェルフ・ソフトウエアにバンドルされたスクリプトを、ダウンロード可能なスクリプトとして、あるいは、ソフトウエア配布の他の考えられる態様で、書き込んで、配布することができる。
【００９７】
ＨＩＦモジュールは、メモリを用いて、特定のコマンドの出力を保存する。たとえば、マークアップ言語・コマンド・プロセッサー・コマンド・セットから、特定のコマンドが呼び出され、ホスト・インターフェイス・ファンクション・モジュールによって実行される場合には、そのコマンドは、通常、ステータス・メッセージあるいはエラー・レベル・コードを、標準的な出力デバイス（通常は、モニター）に発行し、ステータス・メッセージあるいはエラー・レベル・コードは、メモリに転送される。システム・コールを作り出すホスト・プロセッシング・システム上で、実行されているスクリプト・プログラムには、しばしば、ホスト・インターフェイス・ファンクションによって、リターンされたメッセージあるいはコードの結果に基づいて、さらに、インストラクションを処理することが要求される。したがって、メッセージあるいはコードは、耐メモリ性を有していることが必要であり、スクリプトやプログラムは、ディスプレイ・デバイスから、メッセージあるいはコードにアクセスすることはできない。
【００９８】
ホスト・インターフェイス・ファンクション方法は、パラメーターとして、ホスト・インターフェイス・ファンクションに渡されたコマンドが、上述した既知のコマンドに一致するかどうかを決定する。もし、一致しない場合には、ホスト・インターフェイス・ファンクション・モジュールは、あたかも、それが、ハードディスク・ドライブあるいはＣＤＲＯＭなどのホスト・ストレージ・システム上に記憶された外部コマンドあるいは外部プログラム（すなわち、外部で、実行可能なファイル）であるかのように、そのコマンドを実行する。外部コマンドあるいは外部プログラムの出力は、再び、メモリ中の記憶場所に転送され、それによって、ホスト・プロセッシング・システム上で、実行されているスクリプトあるいはプログラムは、さらなる処理のために、コマンド出力あるいはプログラム出力にアクセスすることができるようになる。
【００９９】
ホスト・インターフェイス・ファンクション・モジュールによって、エラー・コードがリターンされた場合には、ホスト・プロセッシング言語は、エラー条件を読み、解釈し、処理する。換言すれば、エラー条件の処理は、ホストの責務であって、ホスト・インターフェイス・モジュールの責務ではない。ホスト・インターフェイス・モジュールは、特定のエラーを処理するために、とくに書かれたユーザーに提供されたホスト・プロセッシング言語ルーティンに提供する。しかしながら、ホスト・システムのユーザー・プログラマーは、リターン可能なエラーのそれぞれに対するエラー処理ルーティンの使用可能度を確保するという責務を負っている。
【０１００】
マークアップ言語ドキュメントを処理するフレーム・ワークを提供する第六のモジュールは、ＣＧＩスクリプト生成モジュールである。ＣＧＩスクリプトは、ウェブ設計者が、ユーザーに提供されたデータのウェブ・サーバー上におけるリアルタイム処理を実行するために生成されるありふれたウェブ・サーバー・ソフトウエア・コンポーネントである。ＣＧＩスクリプトの出力は、スクリプトを実行しているウェブ・サーバーが、処理後に、ユーザーのブラウザに受け渡すマークアップ言語ドキュメントである。おそらく、ＣＧＩスクリプトは、フォームの処理に、最も一般的に使用される。
【０１０１】
ＣＧＩスクリプト生成モジュールは、ユーザー・プログラマーが、フレキシビリティを、詳述したマークアップ・ドキュメント・プロセッシング・フレーム・ワークのモジュールに組み込むことを可能にすることによって、上述のＣＧＩ処理スキームをアーギュメントする。たとえば、ＣＧＩスクリプト生成モジュールは、タグ変数に対するリファレンスを含み、マークアップ言語によってフォーマットされたドキュメントの生成を可能にする。換言すれば、ＣＧＩスクリプト生成モジュールと、別のマークアップ・ドキュメント・プロセッシング・フレーム・ワーク・モジュールとのインタラクションによって、すなわち、ローカル変数として、葉オブジェクトを表現する方法によって、ＨＴＭＬ、ＸＭＬあるいは他のマークアップ言語ドキュメント中に、タグ変数が含まれるようにすることを可能にする。
【０１０２】
タグ変数が含まれるようにすることによる明らかな利点は、マークアップ・ドキュメント中に、他のドキュメントから、葉オブジェクトのコンテンツを挿入することにある。
【０１０３】
したがって、ＣＧＩスクリプトによって、プロセッシングから、リターンされたドキュメントは、上述したマークアップ言語・パーサー・オープナー・モジュールの呼出しによって、メモリに永続的に保持されている連結されたリスト・ツリー構造中で（おそらくは、可変の表記法および／またはインダイレクションを用いて）見出されたタグあるいは属性値に対するリファレンスを含むことができる。
【０１０４】
ＣＧＩスクリプト生成モジュールは、フレキシビリティを有しているため、プログラマーは、バックグラウンドの色が、ユーザーのホームページのバックグラウンドの色と一致しているマークアップ言語ドキュメントをリターンするＣＧＩスクリプトを生成することができる。これを実現するためには、ＣＧＩスクリプトにより、次の構文法を用いて、その本体タグが、ホームページのバックグラウンドに対するリファレンスを含むドキュメントが生成される。
【０１０５】
ＢＯＤＹ  ＢＧＣＯＬＯＲ＝＄ＨＴＭＬ／ＢＯＤＹ／＾ＢＧＣＯＬＯＲ
このファンクショナリティを用いることなく、ＣＧＩスクリプトを生成する場合には、リターンされたドキュメントのバックグラウンドの色を、既知の値、たとえば、白に設定し得るにとどまる。したがって、白一色の色覚異常のユーザーは、白のバックグラウンド上に、黒のレタリングのコントラストを好み、他の視覚障害のあるユーザーは、ピンクのバックグラウンドを好むかもしれない。ＣＧＩスクリプト生成モジュールは、上述のように、各ユーザーが、それぞれ、自らのブラウザ・ホームページが、好みのバックグラウンドの色に設定されていると仮定すると、いずれのユーザーをも満足させるスクリプトの生成を可能なものとする。
【０１０６】
その結果、たとえば、視覚障害者団体の要望に応えたいと望んでいる障害者を意識したサイトの設計者は、視覚障害のあるユーザーによって処理されたフォームが、各ユーザーの具体的なカラー・コントラストの要望に応じて、つねに、カラー・コントラストの高いドキュメントをリターンすることを保証するために、この技術を用いるであろう。
【０１０７】
この例は、マークアップ・ドキュメントを処理する方法に組み込まれた莫大なプログラマーのフレキシビリティの実例にすぎない。
【０１０８】
データ・コレクター
戻って、図１を参照すると、Ｂ２Ｂシステムの第二の機能ユニットは、データ・コレクター１０４として構成されている。データ・コレクター１０４は、購入者によって制御されるサーバー１２０で稼動するコンピュータ・プログラムとして構成されている。データ・コレクター１０４は、購入者の制御のもとで、クライアント・データベース１２２と連携して、動作する。クライアント・データベースは、特定のデータ保存フォーマットで、データを保存する。代表的なデータ保存フォーマットとしては、ＳＱＬ、可変フォーマットの単層ファイル、ＣＯＲＢＡデータベース、ＸＭＬドキュメントおよびＨＴＭＬドキュメントが挙げられる。データは、特定のデータ保存フォーマットで保存されるとともに、購入者の必要性と希望に応じて、決定された所有権を主張できるデータ・モデルにしたがって、保存される。この所有権を主張できるデータ・モデルは、上述したように、供給者によって用いられる所有権を主張できるデータ・モデルとは、典型的に異なっている。クライアント・データベース１２２はまた、クライアント・データベース１２２に保存されたデータを処理し、データをユーザーに提供するために用いられるデータベース・ツールのスーツに関連付けられている。
【０１０９】
図１３は、特定の購入者、この場合には、自転車のディストリビューターが、どのようにして、在庫を示すデータを作るかの例を示すものである。データは、テーブル１４００中に保存されている。自転車のディストリビューターは、数多くの供給者から、商品を取り寄せる。自転車のディストリビューターは、商品の供給元を特定する情報を含む供給者ＩＤコラムを生成している。購入者のデータベース中に保存されたレコードを、供給者からのカタログデータをリンクさせるため、供給者レコード番号フィールド１４２０が提供される。キー・フィールド１４３０は、購入者のデータベース中のレコードをただ一つに特定するローカルに保存されたフィールドである。供給者パーツ番号フィールド１４４０は、パーツを特定するために、供給者によって用いられる供給者からの情報を含んでいる。この値はまた、供給者レコード番号フィールド１４２０を用いる代わりに、供給者によって提供されたデータと購入者のデータベースとの間のリンキング値としても用いられることに留意されたい。
【０１１０】
ディスクリプション・フィールド１４５０および卸売り価格フィールド１４６０は、購入者のデータベース内に保存されたカタログアイテムに関する付加的な情報を含んでいる。この例では、フィールド１４２０、１４４０、１４５０および１４６０はすべて、供給者のデータベースからダウンロードされたデータを含んでいる。供給者ＩＤフィールド１４１０には、供給者の名前が含まれている。後述のように、この値は、供給者からダウンロードすることができ、あるいは、購入者によって、ローカルに供給される。キー・フィールド１４３０の値は、ローカルに決定される。図１４の代表的な購入者は、その在庫注文テーブル１４００に、上述した３つの供給者“Ｃａｒ  Ｃｏ．”、“Ｔｒｕｃｋ  Ｃｏ．”および“Ｂｉｋｅ  Ｃｏ．”からのデータをロードする。
【０１１１】
図１に戻ると、データ・コレクター１０４は、データ・リクエストをサーバー１１０に送信し、サーバー１１０から、リクエストされたデータを含む応答を受信して、リクエストされたデータをクライアント・データベース１２２内に保存する。
【０１１２】
データ・リクエストは、種々の方法で、送信することができる。好ましい実施態様においては、データ・リクエストは、データ・コレクター１０４によって、サーバー１１０に送信されたＵＲＬである。別の実施態様においては、データ・リクエストは、サーバー１１０に送られた電子メールメッセージあるいはデータ・コレクター１０４によって、あるいは、別のコンピュータ処理によって、サーバー１１０に送られたアプリケーションに特化したメッセージである。さらに他の実施態様においては、サーバー１１０が、データ・リクエストを起動し、演算結果は、ネットワークを介して、データ・コレクター１０４に入れられる。
【０１１３】
データ・リクエストは、検索されるべきデータを特定する情報を含んでいる。好ましい実施態様においては、リクエストは、あらかじめ生成され、サーバー１１０に保存されたデータベース・クエリーを特定する情報を含んでいる。本実施態様のあらかじめ定義されたクエリーの詳細は、イネーブラー・エージェントの項で、上述した。
【０１１４】
図１４に戻ると、データ・サーバーからデータを検索する方法は、ＵＲＬを生成するデータ・リクエスターを用いて、ステップ１５１０から開始される。クライアント上のＨＴＴＰサーバーは、ステップ１５２０において、供給者側のサーバーに、ネットワークを通じて、ＵＲＬを送る。供給者は、ステップ１５３０において、データ演算結果のセットを送り返す。この演算結果のセットは、マークアップフォーマットの形で、送り返される。データ・コレクターは、マークアップ言語にフォーマットされた演算結果のセットを、サーバーから受け取り、ステップ１５４０において、演算結果のセットを、クライアント・データベースによって用いられる特定の構造化データベースフォーマットに変換する。最後のステップは、データ・コレクターが、ステップ１５５０において、演算結果のセットからの情報を用いて、クライアント・データベースをアップデートするステップを備えている。
【０１１５】
データ・コレクターは、いくつかの異なる方法で、ステップ１５１０のＵＲＬを生成することができる。好ましい実施態様においては、データ・コレクターは、データ・コレクターが通信する種々の供給者のリスティングを含んでいる。あるいは、データ・コレクターは、ユーザーに、ＵＲＬを提供するように促す。クライアントからのリクエストを必要とすることなく、サーバーが、クライアントに演算結果のセットを送るように構成された実施態様においては、図１４の方法のステップ１５１０および１５２０は省略される。
【０１１６】
データ・コレクターが、供給者のＵＲＬのリストを保持しているように構成された実施態様においては、スケジューリング・システムが、供給者のデータベースに問い合わせをするためのＵＲＬを自動的に提供するために使用される。ＵＲＬのリストは、それぞれが、問い合わせるべきＵＲＬに対応する一連のレコードを含むデータベース・テーブルに保持されている。代表的なＵＲＬ保存テーブルは図１５に示されている。
【０１１７】
ＵＲＬコラム１６１０は、データ・コレクターによってポーリングされるサーバーのＵＲＬを含んでいる。Ｓｙｓ  Ｄｅｓｃｒコラム１６２０は、サーバーについての任意の付加的情報を含んでいる。Ｌａｓｔ  Ｐｏｌｌｅｄコラム１６３０は、新たなデータのために、サーバーが最後にポーリングされたことについてのデータおよびその時間を含んでいる。Ｓｙｓ  Ｓｔａｔｕｓコラム１６４０は、最後にポーリングされたときのデータ・サーバーにステータスを示すステータス・コードを含んでいる。本実施態様において、許容できるステータス・コードが、表２にリストアップされている。
【０１１８】
【表２】
2004530173.tif 000004
キー・フィールド１６５０は、レコードを、拡張された供給者関連のデータなどのクライアントのシステムの他のデータにリンクさせるために用いられる唯一の識別子である。典型的には、その値は、１から単調に増大する。
【０１１９】
ＵＲＬデータが生成されると、購入者が、データのためにポーリングすることを望むＵＲＬが、テーブルに入れられる。ユーザーは、ＵＲＬを直接にテーブルに供給するか、あるいは、好ましくは、ウエブ・ベースフォームあるいはＣＧＩスクリーンを用いて、ＵＲＬをＵＲＬテーブルに入れる。
【０１２０】
ＵＲＬデータテーブルに、少なくとも１つのＵＲＬが入れられると、ポーリング・スケジュールが生成される。このスケジュールは、最小限、新たなデータのために、ＵＲＬがポーリングされる速度を決定する。ポーリング・スケジュールはまた、外部プログラムを実行するなどの他の周期的な動作を実行するために、用いることができる。ポーリング・スケジュールは、データ・コレクターのアドミニストレーターによって、購入者の特定のニーズに基づいて、セットアップされる。好ましくは、このセットアップは、ウエブ・ベースのＣＧＩスクリーンを用いて、実行される。
【０１２１】
ポーリング・スケジュールが定義されると、実際のＵＲＬポーリングが実行される。自動化されたプロセスは、アドミニストレーターによって定義されたパラメーターに基づいて、ポーリング・スケジュールによって、定期的にトリガーされる。ポーリング・ファンクションは、ＵＲＬテーブルに保存されたＵＲＬのリストにしたがって、進められ、ＵＲＬをクライアント上のＨＴＴＰサーバーに送信する。その結果、ズ１４のステップ１５１０において、述べたように、ＵＲＬが生成される。
【０１２２】
ＵＲＬリスト中のＵＲＬによって特定されたサーバーをポーリングする方法は、図１６に示されている。この方法は、データ・コレクターが、ＵＲＬテーブルを開いたとき、ステップ１７００において、開始される。典型的には、データ・コレクターは、ポーリング・スケジュールからのコマンドに応答して、ＵＲＬテーブルを開く．あるいは、データ・コレクターは、ユーザーや、クライアント上で動作する他の処理からのコマンドに応答して、ＵＲＬテーブルを開くこともできる。
【０１２３】
ＵＲＬテーブルが開かれると、ポーリングは、ＵＲＬテーブル中の項目にしたがって、進められる。ステップ１７１０において、処理すべきロウが残っているかどうかがチェックされる。その結果、すべてのＵＲＬがポーリングされているときは、ステップ１７９０において、方法は終了する。
【０１２４】
まだ、ポーリングすべきＵＲＬがあると場合には、方法はステップ１７３０に進み、ＵＲＬテーブルの現在使われているロウから、ＵＲＬの値が読み取られる。ステップ１７３０において、この値は、クライアント上のＨＴＴＰサーバーに送られ、次いで、ネットワークを通じて、供給者側のＨＴＴＰサーバーに送られる。供給者側のサーバーのステータスに応じて、表２に示されている異なった応答の１つが、ステップ１７４０において、サーバーから送り返される。ステップ１７５０において、チェックが実行され、サーバーがオンラインになっており、データが送信可能になっていることが確認される。チェックがうまくいった場合には、ステップ１７７０において、データの転送が開始される。もし、チェックが失敗した場合には、ステップ１７６０において、失敗の理由がＵＲＬテーブルに記録される。
【０１２５】
データの転送が開始された場合、あるいは、サーバーが利用不能で、データが送り返された場合には、ポーリングは、ステップ１７８０において、ポーリング時間を記録する。次いで、方法はステップ１７１０に戻り、次のロウの処理が開始される。クライアント側に存在するＨＴＴＰサーバーは、実際のデータ転送を処理する。ＨＴＴＰサーバーを用いて、データを転送する方法は、当業者には周知であり、本発明において、重要なものではない。
【０１２６】
データ・コレクターが、そこからデータを収集している種々のデータ供給者をポーリングするにしたがって、入力されたデータ・ドキュメントが収集される。データ・コレクターは、入力されたデータ・ドキュメントを、送信された際のマークアップ言語フォーマットから、クライアント・データベースによって用いられる構造化データ保存フォーマットに変換する。図１４のステップ１５４０に示されるように、この変換は、図６に示された代表的なＸＭＬデータファイルに適用されたように、図１７に示された方法の後に実行される。
【０１２７】
図１７に示されたデータ変換方法は、ステップ１８００において、開始され、データ・コレクターは、ＸＭＬデータ・ファイルを受信する。ステップ１８０５において、データ・コレクターは、クエリー・ロウをパースし、データ・ドキュメントのデータ供給者を特定する。ステップ１８１０において、データ・コレクターは、入力されたドキュメント中に含まれているデータのために、適当なターゲット・データベースを決定する。多数のターゲットが存在する場合には、データ・コレクターは、たとえば、クエリー・ロウ５０２に含まれている値を、クライアントに保存されているＵＲＬテーブル中に保存されている値と照合することによって、どのテーブルがそのデータを保存しているかを決定する。
【０１２８】
ステップ１８１５において、データ・コレクターは、データ・マップを特定し、種々のＸＭＬタグのコンテンツを対応するデータベース項目に関連付けるために用いる。処理の特定の要求にしたがって、このデータ・マップは、データベース・フィールドと、単純なフィールド・タグの相関関係にあり、あるいは、大きなマルチ・テーブル・リレーショナル・データベース・システム内の１つのテーブルあるいは多数の異なったテーブル内のレコードに対し、複雑なレコード・タグの関数であってもよい。単純なシステムにおいては、データ・マップは省略され、種々のタグが、同じ名前を有するデータベース項目に直接マップされる。ＸＭＬドキュメント内に、データタイプ情報が提供されている場合には、この情報もまた、パースされ、後の使用のために、保存される。典型的には、データタイプ情報は、新たなテーブルが生成されて、入力されたデータが保存される際に、用いられる。
【０１２９】
最初のセットアップ情報が処理されると、データ・コレクターは、そのファイルにしたがって、進められ、ファイルに保存されたレコードおよびフィールドをアンパックする。ステップ１８２０において、変換されるべきレコードが残っているかが、チェックされる。その結果、すべてのレコードが変換されているときは、方法はステップ１８６３に進み、ＸＭＬデータ・ドキュメント内に、もはや現われないレコードを、クライアント・データベースから削除し、データベース・テーブルを閉じ、ファイルのバックアップコピーを保存するなどの必要なファイル・クリーンアップが実行される。方法は、次いで、ステップ１８６５において、終了する。
【０１３０】
変換されるべきレコードが残っている場合には、ステップ１８２５において、現在使われているレコード識別子が、データ・コレクターによって、読み取られる。このステップにおいては、データ・マップもチェックされ、このタグのために定義されたマッピングがあるかどうかが、チェックされる。次いで、ステップ１８３０において、現在使われているレコード・タグに対応するレコードのために、適当なターゲット・データベース項目が探索される。ステップ１８３５において、対応するレコードが見つかったか否かが、チェックされる。現在使われているレコード・タグに対応するレコードがない場合には、データ・コレクターは、ステップ１８４０において、データベースに、現在使われているレコード・タグを保存するための新たなレコードを生成するように指示するコマンドを、データベースに向けて、発する。
【０１３１】
新たなレコードが生成された場合、あるいは、対応するレコードが見つかった場合には、現在使われているレコード・タグに関連付けられたフィールド・タグのコレクションがパースされる。レコードに関連付けられたすべてのフィールド・タグがパースされると、制御が、ステップ１８２０に戻って、新たなレコードが処理される。パースされるべきフィールドが残っている場合には、ステップ１８５０において、データ・コレクターによって、フィールド・タグが読み取られる。ステップ１８５５において、データ・コレクターは、ＸＭＬデータ・ドキュメント中のフィールド・タグを、データベース・レコード内の適当なフィールドに移す。データ・マップが利用できる場合には、データ・コレクターは、データ・マップ内で定義されたマッピングを、フィールド・タグとデータベース・フィールドの間に、マッピングを作るために使用する。そうでない場合には、データ・コレクターは、フィールド・タグと同じ名前を有するデータベース・フィールドに対するフィールド・タグのリンキングをデフォルトする。適当なフィールドが特定されたときは、ステップ１８６０において、フィールド・タグの値が、データベース・フィールドに書き込まれる。次いで、制御は、ステップ１８４５に戻り、次のフィールド・タグが処理される。
【０１３２】
データ・コレクターに、他の機能を組み込むこともできる。たとえば、ある実施態様においては、データ・コレクターは、アラームシステムを有している。このアラームシステムは、データベース項目のコンテンツが変化したときに、アラームをトリガーする。アドミニストレーターは、たとえば、レコードのためのプライス・フィールドの値が変化したとき、あるいは、新たなレコードがデータベースに加えられたときに、トリガーされるアラームをセットアップすることができる。図１７を参照すると、新たに保存された値が、以前の値と同じではない場合には、新たなレコード生成されるステップ１８４０およびフィールドの値が保存されたステップ１８６０において、アラームシステムが呼び出され、ならびに／または、システムから、もう使用されていないデータが削除されるステップ１８０３において、アラームシステムが呼び出される。
【０１３３】
アラームシステムは、アクション・ノティフィケーションシステムと相互に作用する（対話する）。アクション・ノティフィケーションシステムによって、アドミニストレーターは、特定のアラームがトリガーされたときに実行される１または２以上のアクションを定義することができる。たとえば、新たなレコードがデータベースに追加されたときに、電子メールメッセージが、購入者組織中の選ばれたユーザーに送られ、新たに利用可能になった商品が宣伝される。他のアクションとしては、外部プログラムの実行、ＨＴＴＰポスト・オペレーションの実行、エミリー・スクリプトあるいはサード・パーティースクリプトの実行が挙げられる。
【０１３４】
データ・コレクターはまた、データ・コレクターのセットアップを促進し、データ・コレクターを動作させるため、ユーティリティ・プログラムを含んでいる。好ましい実施態様においては、これらのプログラムは、ウェブ・ベースのＣＧＩスクリプトとして、実現されている。代表的なユーティリティ・プログラムとしては、ユーザーが、ポーリングされるべきＵＲＬを指定し、特定のＵＲＬから、データのためのデータ・マップを定義し、クライアント・データベースに保存されている種々のデータ項目のためのアラームをセットアップし、このアラームによって、トリガーされる通知をセットアップし、データ・コレクション・システムの他のユーザーのためのシステム・ログイン・アカウントをセットアップし、データ・コレクターを構成し、維持するために必要な他のアクティビティを実行することを可能にするスクリーンが挙げられる。所定の実施態様における特定の要求にしたがって、他のセットアップ・コンフィギュレーション・スクリーンを設けることもできる。
【０１３５】
上述した管理ツールに加えて、データ・コレクション・システムは、任意に、データベース操作ツールのスーツを有していてもよい。ある実施態様においては、これらのツールは、それによって、ユーザーが、クライアント・データベース上のあらかじめ定義されたクエリーをランして、ユーザーが、データベースを検索することを可能にするウェブ・ベースのサーチエンジン、それによって、ユーザーが、クライアント・データベースからのデータを表示する単純なマークアップ言語スクリーンを作ることを可能にするウェブ・ベースのスクリーン・クリエーター、それによって、データベース上で、より複雑なオペレーションを実行するために、あるいは、ダイナミック・スクリーンを生成するために、ユーザーが、スクリプティング言語内に、スクリプトを生成することを可能にするスクリプト・エディターおよび／またはそれによって、クライアント・データベースをアップデートするために、あるいは、クライアント・データベース・アイテムを、他のＨＴＴＰサーバーに送るために、ユーザーが、マークアップ言語フォームを生成することを可能にするフォーム・クリエーターを含んでいる。これらのツールは、データ・コレクション・システムの一部として、提供されても、ユーザーによって提供されるサード・パーティー・アプリケーションプログラムであってもよい。代表的なサード・パーティー・アプリケーションプログラムとしては、ＡＳＰ、Ｃｏｌｄ  ＦｕｓｉｏｎあるいはＩＳＱＬが挙げられる。どのようなデータベース操作ツールを選ぶかは、当業者にとって、単なる設計上の選択にすぎず、本発明において、重要なことではない。
【０１３６】
ある実施態様においては、データ・コレクターはまた、使用を、権限がある人に制限し、データベースを保護するために、セキュリティ機能を備えている。これらの機能としては、管理／セキュリティ・コンソール・プログラムが挙げられる。このコンソール・プログラムは、好ましくは、選ばれた管理権を有する人だけが利用できるウェブ・ベースではないアプリケーションとして構成される。たとえば、コンソール・プログラムは、特殊なマシーン上に保有されたプログラムであっても、また、クライアントマシーン上の保護されたディレクトリー内に位置していてもよい。コンソール・プログラムはまた、ウェブ・ベースのスクリーンや、一連のスクリーンであってもよい。
【０１３７】
コンソール・プログラムによって、アドミニストレーターは、埋め込み型ＨＴＴＰサーバー上だけでなく、データ・コレクターおよびこれに関連するツール・キットの種々のスクリーン上に、パスワードおよび許可をセットすることが可能になる。コンソール・プログラムによって、アドミニストレーターは、ＨＴＴＰ認証を用いることが可能になり、ポップ・アップ・ログイン・インターフェースを備えたデータ・コレクターに関連するスクリーンあるいはディレクトリーを保護することができる。コンソール・プログラムはまた、（ＩＰアドレスあるいはネットワークによって）信用ホスト・リストをセットアップし、維持するために、ユーティリティを備えている。信用ホスト・リストは、クライアント内の種々のファイルおよびスクリーンへのアクセスが許されたホスト・マシーンのリストである。
【０１３８】
システム・アーキテクチャーの概要
図１０を参照すると、ある実施態様においては、コンピュータ・システム１０２０は、複数のユーザー・ステーション１０２４に接続されたホスト・コンピュータ１０２２を備えている。ある実施態様においては、ユーザー・ステーション１０２４は、それぞれ、たとえば、パーソナル・コンピュータ、ポータブル・ラップトップ・コンピュータあるいは１または２以上のアプリケーション、すなわち、プログラムを保存し、独立して、実行することができるパーソネル・データ・アシスタント（“ＰＤＡ”）などの適当なデータ・ターミナルを備えている。データ・ターミナルは、これらに限定されるものではない。簡単にする目的で、ユーザー・ステーション１０２４のいくつかが、ローカル・エリア・ネットワーク（“ＬＡＮ”）１０２５を介して、ホスト・コンピュータ１０２２に接続されている。他のユーザー・ステーション１０２４は、公共電話交換網（“ＰＳＴＮ”）１０２８および／または無線ネットワーク１０３０を介して、ホスト・コンピュータ１０２２に遠隔接続されている。
【０１３９】
ある実施態様においては、ホスト・コンピュータ１０２２は、データ保存システム１０３１と連携して、動作する。ここに、データ保存システム１０３１は、ホスト・コンピュータ１０２２が容易にアクセスすることができるデータベース１０３２を含んでいる。
【０１４０】
別の実施態様においては、データベース１０３２が、ホスト・コンピュータ側に存在し、ホスト・コンピュータのＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭもしくは他のメモリ・チップおよび／またはホスト・コンピュータのハードディスク内に保存されていてもよい。さらに他の実施態様においては、データベース１０３２は、ホスト・コンピュータ１０２２によって、１または２以上のフロッピー・ディスク、フレキシブル・ディスク、磁気テープ、他の磁気記録メディア、ＣＤ−ＲＯＭ、他の光記録メディア、パンチカード、紙穿孔テープ、孔のパターンを備えた他の物理メディアあるいはコンピュータが読み取ることができる他のメディアから、読み取られるように構成することもできる。
【０１４１】
他の実施態様においては、ホスト・コンピュータ１０２２は、上述したように、種々のメディアに保存された２以上のデータベース１０３２にアクセス可能に構成されている。
【０１４２】
図１１を参照すると、ある実施態様においては、各ユーザー・ステーション１０２４およびホスト・コンピュータ１０２２（以下、総称して、「プロセッシング・ユニット」と呼ぶ）は、ジェネラル・アーキテクチャー１１０２によって構成されている。プロセッシング・ユニットは、インストラクション、メッセージおよびデータ、ひとまとめにして、情報を通信するバス１１０３あるいは他の通信機構と、バス１１０３に接続され、情報を処理する１または２以上のプロセッサー１１０４とを備えている。プロセッシング・ユニットはまた、バス１１０３に接続され、ダイナミックなデータおよび１または２以上のプロセッサー１１０４によって実行されるべきインストラクションを記憶するランダム・アクセス・メモリ（ＲＡＭ）あるいは他のダイナミック・ストレージ・デバイスなどのメインメモリ１１０８を備えている。メインメモリ１１０８はまた、変数あるいは１または２以上のプロセッサー１１０４によって、インストラクションが実行されている間の他の中間的な情報などの一時データを記憶するために、用いてもよい。
【０１４３】
プロセッシング・ユニットは、さらに、バス１１０３に接続され、１または２以上のプロセッサー１１０４のためのスタティックなデータやインストラクションを記憶するリード・オンリー・メモリ（ＲＯＭ）１１０９あるいは他のスタティック・ストレージ・デバイスを備えていてもよい。１または２以上のプロセッサー１１０４のためのデータやインストラクションを記憶するために、磁気記録ディスクや光記録ディスクなどのストレージ・デバイス１１１０が設けられて、バス１１０３に接続されていてもよい。
【０１４４】
プロセッシング・ユニットは、バス１１０３を介して、ユーザーに情報を表示するカソード・レイ・チューブ（ＣＲＴ）などのディスプレイ・デバイス１１１１を備えていてもよい。ここに、ディスプレイ・デバイス１１１１は、ＣＲＴに限定されるものではない。アルファベット・キーなどのキーを有する入力デバイス１１１２が、情報および１または２以上のプロセッサー１１０４のために選択されたコマンドを通信するために、バス１１０３に接続されている。他のタイプのユーザー入力デバイスとして、１または２以上のプロセッサー１１０４に方向情報および選択されたコマンドを通信し、ディスプレイ１１１１上でのカーソルの動きを制御するマウス、トラックボール、フィンガーパッド、カーソル方向キーなどのカーソル制御デバイスを備えたデバイスを用いることもできる。
【０１４５】
本発明の１つの実施態様によれば、各プロセッシング・ユニットは、メインメモリ１１０８に含まれている１または２以上のインストラクションの１または２以上のシーケンスを実行するそれぞれの１または２以上のプロセッサー１１０４によって、特有のオペレーションを実行する。かかるインストラクションは、ＲＯＭ１１０９あるいはストレージ・デバイス１１１０などの他のコンピュータが利用可能なメディアから、メインメモリ１１０８に読み出すこともできる。メインメモリ１１０８に含まれている一連のインストラクションを実行することによって、１または２以上のプロセッサー１１０４は、ここに述べた処理を実行する。別の実施態様においては、ソフトウエア・インストラクションに代えて、あるいは、ソフトウエア・インストラクションとともに、ハードウェア回路を用いて、本発明を実施することもできる。したがって、本発明の実施態様は、特定のハードウェア回路および／またはソフトウエアの組み合わせに限定されるものではない。
【０１４６】
本発明において、「コンピュータが利用可能なメディア」とは、情報を提供し、あるいは、１または２以上のプロセッサーによって使用することができるあらゆるメディアを指している。そのようなメディアは、不揮発性メディア、揮発性メディアおよび送信メディアなど、数多くの形を取り得るが、これらに限定されるものではない。不揮発性メディア、すなわち、電力が存在しなくても、情報を保持することができるメディアとしては、ＲＯＭ１１０９が挙げられる。揮発性メディア、すなわち、電力が存在しないと、情報を保持することができないメディアとしては、メインメモリ１１０８が挙げられる。送信メディアとしては、同軸ケーブル、銅線および光ファイバーが挙げられ、これらは、バス１１０３を構成するワイヤを含んでいる。送信メディアはまた、搬送波、すなわち、周波数、振幅あるいは位相が変調されて、情報信号を送信可能な電磁波の形を取ることもできる。さらに、たとえば、送信メディアは、電波および赤外線通信中に生成される音波あるいは光波の形を取ることもできる。
【０１４７】
コンピュータが利用可能なメディアの一般的な種類としては、フロッピー・ディスク、フレキシブル・ディスク、ハードディスク、磁気テープ、他の磁気記録メディア、ＣＤ−ＲＯＭ、他の光記録メディア、パンチカード、紙穿孔テープ、孔のパターンを備えた他の物理メディア、ＲＡＭ，ＲＯＭ、ＰＲＯＭ（プログラム可能なリード・オンリー・メモリ）、ＦＬＡＳＨ−ＥＰＲＯＭを含むＥＰＲＯＭ（消去可能で、プログラム可能なリード・オンリー・メモリ）、他のメモリ。チップあるいはカートリッジ、搬送波、１または２以上のプロセッサー１１０４が情報を検索することができる他のメディアが挙げられる。
【０１４８】
種々のコンピュータが利用可能なメディアは、１または２以上のインストラクションの１または２以上のシーケンスを、実行させるために、１または２以上のプロセッサー１１０４に提供するために用いられてもよい。たとえば、インストラクションは、最初に、遠隔コンピュータの磁気ディスクに提供される。遠隔コンピュータは、インストラクションをダイナミック・メモリにロードし、次いで、モデムを用いて、インストラクションを、電話線を介して、送信することができる。プロセッシング・ユニットに接続されたモデムは、電話線上のインストラクションを検索し、赤外線送信機を用いて、電話線を介して、送信されたインストラクションを、対応する赤外線信号に変換することができる。バス１１０３に接続された赤外線検出器（図示せず）は、インストラクションを、メインメモリ１１０８に運ぶことができ、メインメモリ１１０８から、１または２以上のプロセッサー１１０４がインストラクションを検索し、実行することができる。メインメモリ１１０８によって受け取られたインストラクションは、１または２以上のプロセッサー１１０４によって、実行される前あるいは後に、任意に、ストレージ・デバイス１１１０に保存することができる。
【０１４９】
各プロセッシング・ユニットはまた、バス１１０３に接続された通信インターフェース１１１４を備えていてもよい。通信インターフェース１１１４は、ユーザー・ステーション１０２４のそれぞれとホスト・コンピュータ１０２２との間での双方向通信を提供する。それぞれのプロセッシング・ユニットの通信インターフェース１１１４は、インストラクション、メッセージおよびデータを含む種々のタイプの情報を表わすデータストリームを含む電気的な信号、電磁気な信号あるいは光学的な信号を送信し、受信する。
【０１５０】
通信リンク１１１５は、ユーザー・ステーション１０２４のそれぞれと、ホスト・コンピュータ１０２２をリンクさせる。通信リンク１１１５は、ＬＡＮ１０２５として構成することができ、その場合には、通信インターフェース１１１４は、ＬＡＮカードによって構成される。あるいは、通信リンク１１１５を、ＰＳＴＮ１０２８によって構成することもでき、その場合には、通信インターフェース１１１４は、統合ディジタル通信サービス網（ＩＳＤＮ）カードあるいはモデムによって構成される。さらに他の実施態様においては、通信リンク１１１５は、無線ネットワーク１０３０によって構成することもできる。
【０１５１】
プロセッシング・ユニットは、メッセージ、データおよびプログラム、すなわち、アプリケーション、コードを含むインストラクションを、それぞれの通信リンク１１１５および通信インターフェース１１１４を介して、送信し、受信することができる。受信されたプログラム・コードは、受信されたときに、１または２以上のプロセッサー１１０４によって処理され、および／または、後に処理するため、ストレージ・デバイス１１１０あるいは他の関連する不揮発性メディアに保存されてもよい。このように、プロセッシング・ユニットは、メッセージ、データおよび／またはプログラム・コードを、搬送波の形で受信することができる。
【０１５２】
本明細書においては、特定の実施態様を参照して、本発明につき、説明を加えた。しかしながら、本発明の広汎な精神および範囲を逸脱することなく、種々の修正および変更が可能であることはいうまでもない。たとえば、本明細書において、記載されたプロセス・フロー・ダイアグラム中に示された処理アクションの特定の順序および組み合わせは、単なる例示であると理解すべきであり、本発明は、異なった処理アクションもしくは付加的な処理アクションを用いて、または、処理アクションの異なる組み合わせもしくは順序を用いて、実施することができる。したがって、本明細書および図面は、限定的なものとしてではなく、例示的なものと理解されるべきであり、本発明は、以下の請求の範囲とそれらの均等物にしたがって、解釈される場合を除き、制限的あるいは限定的に解釈されるべきものではない。
【図面の簡単な説明】
【図１】
図１は、本発明の実施態様におけるクライアントとサーバの関係を示す図面である。
【図２】
図２Ａおよび２Ｂは、データ・サプライアのための代表的なデータモデルを示す図面である。
【図３】
図３は、データをデータ・コレクタに提供する本発明の実施態様にかかる第一の方法のフローチャートである。
【図４】
図４は、データを、構造化データストレイジフォーマットから、マークアップ言語フォーマットに変換する本発明の実施態様にかかる方法のフローチャートである。
【図５】
図５は、図４の方法を用いて、構成した代表的なＸＭＬデータ・ドキュメントを示す図面である。
【図６】
図６は、データをデータ・コレクタに提供する本発明の実施態様にかかる第二の方法のフローチャートである。
【図７】
図７は、本発明の実施態様にかかるクエリ・ビュアー・スクリーンを示す図面である。
【図８】
図８は、本発明の実施態様にかかるクエリ・エディター・スクリーンを示す図面である。
【図９】
図９は、本発明の実施態様にかかるパラメター・エディター・スクリーンを示す図面である。
【図１０】
図１０は、本発明の実施態様にかかるコンピュータシステムを示す図面である。
【図１１】
図１１は、本発明の実施態様にかかるプロセッシング・ユニットを示す図面である。
【図１２】
図１２は、任意のエミリー・スクリプティング言語を用いて、データをパースする本発明の実施態様にかかる方法を示すフローチャートである。
【図１３】
図１３は、本発明の実施態様にかかる購入者のための代表的なデータ・モデルを示す図面である。
【図１４】
図１４は、本発明の実施態様にかかるデータを収集する方法を示すフローチャートである。
【図１５】
図１５は、本発明の実施態様にかかる代表的なＵＲＬテーブルを示す図面である。
【図１６】
図１６は、本発明の実施態様にかかるデータ・ソースをポーリングする方法を示すフローチャートである。
【図１７】
図１７は、データを、マークアップ言語フォーマットから、構造化データストレイジフォーマットに変換する本発明の実施態様にかかる方法のフローチャートである。
【符号の説明】
７０  クエリー・ビューワ・スクリーン
７１  第一のＵＲＬ
７２  ウェブ・ブラウザ・プログラム
７４  プルダウン・メニュー
７６  テーブル
７７  ボタン
７８  フィールド
７９  ボタン
８０  クエリー・エディター・スクリーン
８１  第二のＵＲＬ
８２  テキスト・ウィンドウ
８３  ボタン・パレット
８４  セーブ・ボタン
８５  セーブ・アズ・ボタン
８６  リロード・ボタン
８７  キャンセル・ボタン
９０  データベース・パラメーター・スクリーン
９１  第三のＵＲＬ
９２  テキスト・ボックス
９３  コミット・ボタン
９４  エディット・クエリー・ボタン
９５  キャンセル・ボタン
１０２  イネーブラー・エージェント
１０４  データ・コレクタ
１１０  ＸＭＬサーバー
１１２  サーバー・データベース
１２０  ＸＭＬクライアント・サーバー
１２２  データ・コレクタ
１３０  データベース・ツール
２１０  商品テーブル
２１１  商品レコード
２１２  商品キー・フィールド
２１４  モデル番号・フィールド
２１６  ディスクリプション・フィールド
２１８  プライス・フィールド
２２０  パーツ・テーブル
２２１  パーツ・レコード
２２２  パーツ・キー・フィールド
２２４  フォーリン・キー・フィールド
２２６  パーツ番号・フィールド
２２８  パーツ・ディスクリプション・フィールド
２２９  プライス・フィールド
５０２  クエリー識別子タグ
５０４  レコード・コンテナー・タグ
５０６  フィールド・エントリー・タグ
５０８  レコード・コンテナー・タグ
１０２０  コンピュータ・システム
１０２２  ホスト・コンピュータ
１０２４  ユーザー・ステーション
１０２５  ローカル・エリア・ネットワーク（“ＬＡＮ”）
１０２８  公共電話交換網（“ＰＳＴＮ”）
１０３０  無線ネットワーク
１０３１  データ保存システム
１０３２  データベース
１１０２  ジェネラル・アーキテクチャー
１１０３  バス
１１０４  プロセッサー
１１０８  メインメモリ
１１０９  リード・オンリー・メモリ（ＲＯＭ）
１１１０  ストレージ・デバイス
１１１１  ディスプレイ・デバイス
１１１２  入力デバイス
１１１４  通信インターフェース
１１１５  通信リンク
１４００  テーブル
１４１０  供給者ＩＤフィールド
１４２０  供給者レコード番号フィールド
１４３０  キー・フィールド
１４４０  供給者パーツ番号フィールド
１４５０  ディスクリプション・フィールド
１６１０  ＵＲＬコラム
１６２０  Ｓｙｓ  Ｄｅｓｃｒコラム
１６３０  Ｌａｓｔ  Ｐｏｌｌｅｄコラム
１６４０  Ｓｙｓ  Ｓｔａｔｕｓコラム
１６５０  キー・フィールド
【図１】
2004530173.tif 000005
【図２】
2004530173.tif 000006
【図３】
2004530173.tif 000007
【図４】
2004530173.tif 000008
【図５】
2004530173.tif 000009
【図６】
2004530173.tif 000010
【図７】
2004530173.tif 000011
【図８】
2004530173.tif 000012
【図９】
2004530173.tif 000013
【図１０】
2004530173.tif 000014
【図１１】
2004530173.tif 000015
【図１２】
2004530173.tif 000016
【図１３】
2004530173.tif 000017
【図１４】
2004530173.tif 000018
【図１５】
2004530173.tif 000019
【図１６】
2004530173.tif 000020
【図１７】
2004530173.tif 000021
【国際公開パンフレット】
2004530173.tif 000022
2004530173.tif 000023
2004530173.tif 000024
2004530173.tif 000025
2004530173.tif 000026
2004530173.tif 000027
2004530173.tif 000028
2004530173.tif 000029
2004530173.tif 000030
2004530173.tif 000031
2004530173.tif 000032
2004530173.tif 000033
2004530173.tif 000034
2004530173.tif 000035
2004530173.tif 000036
2004530173.tif 000037
2004530173.tif 000038
2004530173.tif 000039
2004530173.tif 000040
2004530173.tif 000041
2004530173.tif 000042
2004530173.tif 000043
2004530173.tif 000044
2004530173.tif 000045
2004530173.tif 000046
2004530173.tif 000047
2004530173.tif 000048
2004530173.tif 000049
2004530173.tif 000050
2004530173.tif 000051
2004530173.tif 000052
2004530173.tif 000053
2004530173.tif 000054
2004530173.tif 000055
2004530173.tif 000056
2004530173.tif 000057
2004530173.tif 000058
2004530173.tif 000059
2004530173.tif 000060
2004530173.tif 000061
2004530173.tif 000062
2004530173.tif 000063
2004530173.tif 000064
2004530173.tif 000065
2004530173.tif 000066
2004530173.tif 000067
2004530173.tif 000068
2004530173.tif 000069
2004530173.tif 000070
2004530173.tif 000071
2004530173.tif 000072
2004530173.tif 000073
2004530173.tif 000074
2004530173.tif 000075
2004530173.tif 000076
2004530173.tif 000077
2004530173.tif 000078
2004530173.tif 000079
2004530173.tif 000080
2004530173.tif 000081
【国際調査報告】
2004530173.tif 000082