(57)【要約】【課題】維持およびネットワークを介した交換が容易な、アプリケーション状態表現のための方法、コンピュータ・データ構造、およびコンピュータ・システムを提供する。【解決手段】ある実施形態は、ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）のサブストリングによって表現されるアプリケーション状態情報を管理するための方法およびシステムを提供する。このサブストリングは複数の入れ子データ配列を含む。ＵＲＩパーサおよびＵＲＩジェネレータが、アプリケーション状態情報をオブジェクト表現とＵＲＩストリング表現との間で変換する。望ましくは、ＵＲＩは統一リソース位置指定子（ＵＲＬ）であり、アプリケーション状態情報はウェブ・アプリケーションによって提供され、ＵＲＩストリング表現にはＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ）が使われる。【選択図】図７
2013506175.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）に基づいてアプリケーション状態情報を提供する、コンピュータ処理方法であって、前記方法は、
前記ＵＲＩを表現する文字のストリングを提供するステップと、
前記ストリングを構文解析し、独立データ配列によって前記アプリケーション状態情報を表現するサブストリングを得るステップと、
前記独立データ配列を構文解析し、前記独立データ配列のエレメントを得るステップと、
を含み、
前記方法は、
前記得られたエレメントの一つを従属データ配列として識別するステップと、
前記従属データ配列を構文解析し、前記従属データ配列のエレメントを得るステップと、
前記データ配列のエレメントによって表現された前記アプリケーション状態情報を提供するステップと、
で特徴付けられる方法。
【請求項２】
得られた前記データ配列の前記エレメントのさらなるいくつかを、さらなる従属データ配列として再帰的に識別するステップと、
前記さらなる従属データ配列を構文解析して、前記さらなる従属データ配列のエレメントを得るステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記エレメントの一つから、アプリケーションによって実行されるプログラム・コード部分を読み出すステップであって、前記プログラム・コード部分はある関数に関連付けられている、前記読み出すステップと、
前記関数を呼び出すことによって前記プログラム・コード部分を実行するステップと、
をさらに含む、先行の請求項１〜２のいずれかに記載の方法。
【請求項４】
前記データ配列の各々の前記エレメントは、順序付けられた値群、およびキーと値とのペア群の一つを含み、前記キー群は文字のストリングであり、前記値群は、文字のストリング群、数値群、論理項群、および空値群の一つであり、前記ＵＲＩを表現する前記ストリングの、前記アプリケーション状態情報を表現する前記サブストリング部分と、前記データ配列群部分と、前記キー群部分と、前記値群部分とは、特殊文字によって分離される、先行の請求項１〜３のいずれかに記載の方法。
【請求項５】
前記ＵＲＩのフラグメント部分は、前記アプリケーション状態情報を表現する前記サブストリングを含む、先行の請求項１〜４のいずれかに記載の方法。
【請求項６】
前記アプリケーション状態情報の表現には、ＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ）が用いられる、先行の請求項１〜５のいずれかに記載の方法。
【請求項７】
前記ＵＲＩが統一リソース位置指定子（ＵＲＬ）である、先行の請求項１〜６のいずれかに記載の方法。
【請求項８】
アプリケーション状態情報に基づいて、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を提供する、コンピュータ処理方法であって、前記方法は、
前記アプリケーション状態情報を提供するステップと、
前記アプリケーション状態情報に基づいて、一つの独立データ配列と一つ以上の従属データ配列とを有する複数の入れ子データ配列を、前記複数の入れ子データ配列の他のデータ配列のエレメントとして前記従属データ配列を再帰的に挿入することによって構築するステップと、
前記複数の入れ子データ配列によって前記アプリケーション状態情報を表現する文字のサブストリングを生成するステップと、
前記生成されたサブストリングを挿入することによって、変更されたＵＲＩを表現する文字のストリングを生成するステップと、
前記ＵＲＩを提供するステップと、
を含む方法。
【請求項９】
コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によって、アプリケーション状態情報を管理するコンピュータ処理方法であって、前記方法は、
前記ＵＲＩに基づき、前記請求項１に記載のステップよってアプリケーション状態情報を提供するステップと、
アプリケーションによって、アプリケーション状態情報を処理するステップと、
前記アプリケーション状態情報に基づき、前記請求項８に記載のステップによってＵＲＩを提供するステップと、
を含む方法。
【請求項１０】
アプリケーション状態情報に関するコンピュータ・データ構造であって、前記データ構造は、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を含み、前記ＵＲＩは文字のストリングで表現され、前記ストリングは、アプリケーションの前記アプリケーション状態情報を、一つの独立データ配列と一つ以上の従属データ配列とを有する複数の入れ子データ配列によって表現するサブストリングを含み、前記従属データ配列の各々は、前記複数の入れ子データ配列の別のデータ配列のエレメントである、構造。
【請求項１１】
前記エレメントの一つは、前記アプリケーションによって実行されるプログラム・コード部分を含む、請求項１０に記載の構造。
【請求項１２】
コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）に基づいて、アプリケーション状態情報を提供するためのコンピュータ・システムであって、前記システムは、
前記ＵＲＩを表現する文字のストリングを提供するためのＵＲＩマネージャと、
前記ストリングを構文解析して、独立データ配列によって前記アプリケーション状態情報を表現しているサブストリングを得、前記独立データ配列を構文解析して、前記独立データ配列のエレメントを得るためのＵＲＩパーサと、
を含み、
前記システムは、
前記得られたエレメントの一つを従属データ配列として識別し、前記従属データ配列を構文解析して、前記従属データ配列のエレメントを得、前記データ配列のエレメントによって表現される前記アプリケーション状態情報を提供するための前記ＵＲＩパーサの適合手段、
をさらに含むことによって特徴付けられるシステム。
【請求項１３】
アプリケーション状態情報に基づいて、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を提供するためのコンピュータ・システムであって、前記システムは、
前記アプリケーション状態情報を提供するアプリケーションと、
前記アプリケーション状態情報に基づいて、一つの独立データ配列と一つ以上の従属データ配列とを含む複数の入れ子データ配列を、前記複数の入れ子データ配列の他のデータ配列のエレメントとして前記従属データ配列を再帰的に挿入することによって構築し、前記複数の入れ子データ配列によって前記アプリケーション状態情報を表現する文字のサブストリングを生成し、前記生成されたサブストリングを挿入することによって前記ＵＲＩを表現する文字のストリングを生成し、前記ＵＲＩを提供するためのＵＲＩジェネレータと、
を含むシステム。
【請求項１４】
コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によってアプリケーション状態情報を管理するためのコンピュータ・システムであって、前記システムは、
前記ＵＲＩを表現する文字のストリングに基づき、請求項１２によってアプリケーション状態情報を提供するためのＵＲＩパーサと、
前記アプリケーション状態情報を処理するアプリケーションと、
前記アプリケーション状態情報に基づき、請求項１３によってＵＲＩを提供するＵＲＩジェネレータと、
を含むシステム。
【請求項１５】
コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によってアプリケーション状態情報を管理するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、中に具現されたコンピュータ可用プログラム・コードを有するコンピュータ可用媒体を含み、前記コンピュータ可用プログラム・コードは、前記先行の請求項１〜９のいずれかに記載の前記ステップを遂行するよう構成される、コンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統一リソース識別子（ＵＲＩ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）に基づいてアプリケーション状態情報を提供するためのコンピュータ処理方法と、アプリケーション状態情報に基づいてＵＲＩを提供するためのコンピュータ処理方法と、ＵＲＩによってアプリケーション状態情報を管理するためのコンピュータ処理方法と、アプリケーション状態情報に関するコンピュータ・データ構造と、ＵＲＩに基づいてアプリケーション状態情報を提供するためのコンピュータ・システムと、アプリケーション状態情報に基づいてＵＲＩを提供するためのコンピュータ・システムと、ＵＲＩによってアプリケーション状態情報を管理するためのコンピュータ・システムと、ＵＲＩによってアプリケーション状態情報を管理するためのコンピュータ・プログラム製品とに関する。
【背景技術】
【０００２】
ＩＢＭ（ＩＢＭ社の登録商標）のｚ／ＯＳ（ＩＢＭ社の登録商標）Ｒｅｓｏｕｒｃｅ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｆａｃｉｌｉｔｙ（ＲＭＦ）は、パフォーマンスの測定および管理を提供する。この製品は、オペレーティング・システムｚ／ＯＳ（ＩＢＭ社の登録商標）およびメインフレーム環境に対するパフォーマンス・データを収集し、システムのパフォーマンスをモニタする。ｚ／ＯＳＲＭＦ分散型データ・サーバ（ＤＤＳ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｓｅｒｖｅｒ）は、パフォーマンス・データに対するウェブ・フロントエンドを提供し、これらデータはウェブ・ブラウザを用いて表示することができる。モニタされる対象となるシステムの各リソースは、さまざまな評価指標に関連付けられ、これらは、ソフトウエア、または、例えばプロセッサなどのハードウエア構成要素の利用度の何らかの特性の測定量である。詳細については、ＵＲＬ、ｈｔｔｐ：／／ｗｗｗ−０３．ｉｂｍ．ｃｏｍ／ｓｅｒｖｅｒｓ／ｅｓｅｒｖｅｒ／ｚｓｅｒｉｅｓ／ｚｏｓ／ｒｍｆ／の製品ドキュメント・ページ、および、例えば、ｆｔｐ：／／ｆｔｐ．ｓｏｆｔｗａｒｅ．ｉｂｍ．ｃｏｍ／ｅｓｅｒｖｅｒ／ｚｓｅｒｉｅｓ／ｚｏｓ／ｒｍｆ／の中のドキュメント、ＲＭＦ＿ＭｏｎｉｔｏｒＩＩＩ＿ＤａｔａＰｏｒｔａｌ．ｐｄｆおよびＲＭＦＮｅｗｓｌｅｔｔｅｒ１５．ｐｄｆドキュメントを参照。
【０００３】
一般に、ウェブ・ブラウザまたはウェブ・クライアントは、インターネット（ワールド・ワイド・ウェブまたはｗｗｗ）あるいはイントラネットなどのネットワークを介し、ＲＭＦＤＤＳなどのウェブ・サーバにアクセスすることができる。これを行うため、統一リソース位置指定子（ＵＲＬ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が、識別可能なリソースを利用できるコンピュータ・ネットワーク中の場所を特定することができる。ウェブ・クライアントは、ＵＲＬを使って、ウェブ・サーバから情報をダウンロードし、ダウンロードされたコンテンツをウェブ・ページとして閲覧し、ハイパーリンクを使ってこれらの間をナビゲートすることができる。ウェブ・アプリケーションは、通常、ウェブ・サーバによってサーバ側で実行されるアプリケーション・プログラムである。ダウンロードされるコンテンツには、ウェブ・クライアントによってクライアント側で実行される、ウェブ・アプリケーション・プログラムの部分を包含させることができる。
【０００４】
以下のセクションでは、ＵＲＬ、ウェブ・アプリケーション、および、例えばＪａｖａＳｃｒｉｐｔ（Ｒ）などのスクリプト言語の基礎を説明する。統一リソース識別子（ＵＲＩ）は、ＵＲＬの一般化であって、インターネット（ｗｗｗ）またはイントラネット中のリソースを識別または命名するのに使われる。かかる識別によって、プロトコルを用い、ネットワークを介してリソースとのやり取りが可能になる。ＵＲＩは文字のストリングから成る。ＵＲＩシンタックスは、原則的に、コロン文字で終わるＵＲＩスキーム名および階層的スキーム特有部分を提供する。ＵＲＩスキームは、またプロトコルともいわれる。ＵＲＩスキーム名の例には「ｈｔｔｐ：」、「ｆｔｐ：」などがある。階層的部分は、通常、二重のフォワード・スラッシュ（「／／」）で始まり、オーソリティ部分および随意のパスが続く。ＵＲＩの各部分を「ｈｔｔｐ：／／ｕｓｅｒ：ｐａｓｓｗｏｒｄ＠ｅｘａｍｐｌｅ．ｃｏｍ：８０３７／ｏｖｅｒ／ｔｈｅｒｅ／ｉｎｄｅｘ．ｄｔｂ？ｎａｍｅ＝ｆｅｒｒｅｔ＃ｎｏｓｅ」を例にして説明する。オーソリティ部分は、「＠」で終わる随意のユーザ情報部分（「ｕｓｅｒ：ｐａｓｓｗｏｒｄ」）と、ホスト名（「ｅｘａｍｐｌｅ．ｃｏｍ」）、すなわちドメイン名またはＩＰアドレスと、コロン（「：」）が先行する随意のポート番号（「８０３７」）とを保持する。パス部分（「／ｏｖｅｒ／ｔｈｅｒｅ／ｉｎｄｅｘ．ｄｔｂ」）は、フォワード・スラッシュ（「／」）で隔てられた一連のセグメントである。クエリー（「？ｎａｍｅ＝ｆｅｒｒｅｔ」）は、クエッション・マーク（「？」）で隔てられた随意の部分で、追加の識別情報を包含し、本質的に階層的なものではない。クエリー・ストリングのシンタックスは一般的には定義されていないが、多くは、セミコロン（「；」）で隔てられた、またはアンパサンド（「＆」）で隔てられた＜キー＞＝＜値＞の対のシーケンスとして編成される。アンカー部分としても知られる、いわゆるフラグメント（「＃ｎｏｓｅ」）は随意的部分で、前の部分とはハッシュ（「＃」）で隔てられる。このフラグメントは、例えば、ＵＲＩの残りの部分によって識別されたＨＴＭＬドキュメントの一部など、追加の識別情報を保持する。ＵＲＩのこれらの部分をどのように配置し相互に隔てるかは、スキームに特有であって、別のプロトコルでは異なり得る。ＵＲＩは、統一リソース位置指定子（「ＵＲＬ」）または統一リソース名（「ＵＲＮ」（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｎａｍｅ））として分類することができる。ＵＲＮは、アイテムの身元を定義し、ＵＲＬはその場所を見出す方法を提供する。いわゆるＵＬＩ参照は、全体のＵＲＩ、またはスキーム特有部分の一つ以上の後続コンポーネントの形を取ることができる。ＵＲＩ参照は、ウェブ・ドキュメントのマークアップ言語中で頻繁に使われる。詳細については、リンクｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ｕｎｉｆｏｒｍ＿Ｒｅｓｏｕｒｃｅ＿Ｉｄｅｎｔｉｆｉｅｒ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＵＲＩ＿ｓｃｈｅｍｅ、およびリンクｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ３９８６を参照。
【０００５】
クライアント側のスクリプトは、ＪａｖａＳｃｒｉｐｔ記述言語が使用可能であって、多くの場合ＨＴＭＬドキュメント内に埋め込まれている。しかし、これらを別のファイルに収容することもでき、ドキュメントはそのファイルを参照する。要求を受けて、必要なファイルが、それらが在駐するウェブ・サーバによってユーザのコンピュータに送信される。ウェブ・ブラウザがスクリプトを実行し、次いでスクリプトからの一切の可視のアウトプットを含め、ドキュメントを表示する。また、クライアント側のスクリプトには、ユーザが、例えば、特定のボタンをクリックする、または特定のテキストを入力するなど、ある特定の方法でドキュメントと相互作用した場合に、ウェブ・ブラウザがフォローする命令を包含させることもできる。これらの命令は、必ずしも、サーバとの追加の通信を必要としない。ＪａｖａＳｃｒｉｐｔ記述言語は、該言語が関数を第一級オブジェクトとして取り扱うので、第一級関数を備えたダイナミック・プログラミング言語として位置付けられる。あるプログラミング言語が、他のプログラミング言語ならばコンパイル時に遂行するかもしれないような多くの共通の動作をランタイムに実行する場合、その言語はダイナミックであるといわれる。これらの動作には、新規コードを加えることによって、またはオブジェクトおよび定義を拡張することによって、または型システムを修正することによって、全てプログラム実行中に、プログラムを拡張することを含めることができよう。第一級オブジェクトは固有のアイデンティティを有するエンティティである。これは、具体的には、ランタイムにおいて構成可能であり、変数として格納可能であるという意味を含む。ＪａｖａＳｃｒｉｐｔ記述言語は、ＨＴＭＬおよびＸＭＬドキュメント中のオブジェクトを表現しこれらと相互作用するための、プラットフォーム間共通で言語依存性のない表現規約であるドキュメント・オブジェクト・モデル（ＤＯＭ：Ｄｏｃｕｍｅｎｔ  ＯｂｊｅｃｔＭｏｄｅｌ）をサポートすることができる。詳細については、リンクｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／ＪａｖａＳｃｒｉｐｔ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／Ｄｙｎａｍｉｃ＿ｐｒｏｇｒａｍｍｉｎｇ＿ｌａｎｇｕａｇｅ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／Ｆｉｒｓｔ−ｃｌａｓｓ＿ｆｕｎｃｔｉｏｎ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／Ｆｉｒｓｔ−ｃｌａｓｓ＿ｏｂｊｅｃｔ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／Ｓｃｒｉｐｔｉｎｇ＿ｌａｎｇｕａｇｅ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／／Ｃｌｉｅｎｔ−ｓｉｄｅ＿ｓｃｒｉｐｔｉｎｇ、およびリンクｈｔｔｐ：／／ｊａｖａ．ｓｕｎ．ｃｏｍ、およびｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＤＯＭを参照。
【０００６】
ＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）は軽量の、テキスト・ベースで言語依存性のないコンピュータ・データ交換フォーマットであり、これは構造化されたデータの直列化に用いられ、そのデータはネットワークを介して送信可能である。ＪＳＯＮの設計目標は、それを最小化し、携帯可能で、テキスト的で、ＪａｖａＳｃｒｉｐｔのサブセットとすることにあった。ＪＳＯＮは、４つのプリミティブ・データ型（ストリング（Ｓｔｒｉｎｇ）、数値（Ｎｕｍｂｅｒ）、ブール値（Ｂｏｏｌｅａｎ）、および  空値（ｎｕｌｌ））と、２つの構造化データ型（オブジェクト（Ｏｂｊｅｃｔ）および配列（Ａｒｒａｙ））とを表現することができる。ストリングは、ゼロ個以上の一連のユニコード文字である。配列は、ベクトルまたはリストとも呼ばれ、ゼロ個以上の順序付けられた一連の数値である。文献などでは連想配列またはマップとしても知られるオブジェクトは、ゼロ個以上の、キー−値ペアとも呼ばれる名前−値ペアの非順序集合であって、この名前はストリングであり、この値はストリング、数値、ブール値、空値、別のオブジェクト、または配列である。多種多様のプログラミング言語に対し、ＪＳＯＮデータを構文解析または生成するためのコードは容易に利用可能である。
【０００７】
ＪＳＯＮの主要なアプリケーションは、ＡＪＡＸ（「Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ」（非同期ＪａｖａＳｃｒｉｐｔおよびＸＭＬ））ウェブ・アプリケーション・プログラミング中にあり、ＪＳＯＮはＸＭＬフォーマット使用の代替として機能している。ＡＪＡＸは、クライアント側で、双方向ウェブ・アプリケーションまたはリッチ・インターネット・アプリケーションを生成するため用いられる、相互に関連するウェブ開発技法の一群である。ウェブ・アプリケーションは、ＡＪＡＸを使って、現存のウェブ・ページの表示および動作に干渉することなく、バックグラウンドで非同期に、ウェブ・サーバからデータを読み出すことができる。詳細は、リンクｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ａｓｓｏｃｉａｔｉｖｅ＿ａｒｒａｙ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＪａｖａＳｃｒｉｐｔ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＪＳＯＮ、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ａｊａｘ＿（ｐｒｏｇｒａｍｍｉｎｇ）、およびリンクｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ４６２７で閲覧することができる。
【０００８】
あらゆる重要なアプリケーション・プログラムは、そのオペレーティング状態を管理しなければならず、これはアプリケーション状態とも呼ばれる。このアプリケーション状態は、アプリケーション・プログラムが遂行し、おそらくはコミットしているアクション、およびさらに実行することになる活動を反映する。一般に、アプリケーション状態は、一組の変数で表し、これを保存して後で読み出すことができる。ウェブ・アプリケーションは、自分のアプリケーション状態を保存するため２〜３の技法を用い、これらはサーバ側とクライアント側とに分類することができる。多くの場合、双方の型が使われる。セキュリティが関わる場合のウェブ・アプリケーションに対してはサーバ側の保存が使われる。例えば、オンライン・バンキング・アプリケーションは、コミットされた取引をウェブ・サーバ中に保存する。ウェブ・サーバは、ウェブ・ブラウザによってテキストの小片をユーザのコンピュータに保存するため、ブラウザ・クッキーまたはＨＴＴＰクッキーとしても知られるクッキーを生成する。詳しくは、クッキーは、ユーザの選好、サーバ・ベースのセッションの中で使用された情報、またはウェブサイトによって使用された他のデータなど、いくつかの情報を包含する一つ以上の名前−値ペアから成る。この一意的クッキー・ストリングは、ウェブ・アプリケーションの状態を識別し、ウェブ・サーバに保存される。あらゆるＨＴＴＰ要求において、ウェブ・ブラウザは、ウェブ・サーバにこのクッキーを送信する。サーバは、クッキーをクライアントのウェブ・アプリケーションの状態に関連付けることができ、通常、ＨＴＴＰ応答を返信し、これにはクッキーの更新を包含させることができる。
【０００９】
しかしながら、多くのウェブ・アプリケーションにおいて、セキュリティは小さな役割をはたしているだけである。こういった場合、ウェブ・アプリケーションの状態を、ウェブ・ブラウザ中のＵＲＬの中に格納するのが便利である。ウェブ・クライアントは、情報を読み出すために、ウェブ・サーバにＵＲＬを送信する。例えば、ＵＲＬ、「ｈｔｔｐ：／／ｍｙｓｈｏｐ．ｃｏｍ／ｓｅａｒｃｈ？ｃａｔｅｇｏｒｙ＝ｃａｒｓ＆ｃｏｌｏｒ＝ｒｅｄ＆ｍａｘａｇｅ＝４」では、車歴４年以下で赤色の車を見付けるための検索基準が、クエリー・ストリング中に格納されている。アプリケーション・ユーザは、後にこの同じクエリー情報を有するリソースにアクセスするために、そのＵＲＬストリングをウェブ・クライアント中に格納し、これを別のウェブ・クライアントにコピーし、またはこれを別のアプリケーション・ユーザに送信することができる。
【００１０】
データベース・クエリーが非常に複雑な場合には、ＵＲＬ中のクエリー・ストリングは非常に長くなり、読み取りまたは修正が難しくなる。ウェブ・アプリケーションまたはユーザがクエリー・ストリングを変更した場合は、ウェブ・クライアントの変更されたＵＲＬを反映させるため、ウェブ・サーバにＨＴＴＰ要求を必ず送信しなければならない。ウェブ・サーバは、要求された情報を取り出してＨＴＴＰ応答を返信する。これには、余分なデータ処理リソースと時間とがかかる。
【００１１】
特許文献１は、アプリケーションの状態を識別し通信するためのドラッガブル・メカニズムを教示している。アプリケーション状態情報を識別するメタデータは、ＵＲＬのフラグメント部分に、アンパサンド（「＆」）で隔てられた一連の＜キー＞＝＜値＞ペアによって表現される。このメタデータは、新しいアプリケーション状態を反映するために所定の時間間隔で更新される。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許出願第２００９／００１５５９９号
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかして、本発明の諸実施形態の目的は、複雑なアプリケーション状態であっても、維持しネットワークを介して交換することが容易な表現法を有する方法、コンピュータ・データ構造、およびコンピュータ・システムを提供することである。
【課題を解決するための手段】
【００１４】
本発明の第一態様によって、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）に基づいてアプリケーション状態情報を提供する、コンピュータ処理方法が提供される。上記ＵＲＩを表現する文字のストリングが提供される。そのストリングが構文解析され、独立データ配列によってアプリケーション状態情報を表現するサブストリングが得られる。この独立データ配列が構文解析されて、独立データ配列のエレメントが得られる。得られたエレメントの一つが、従属データ配列として識別される。この従属データ配列が構文解析されて、該従属データ配列のエレメントが得られる。このデータ配列のエレメントによって表現されたアプリケーション状態情報が提供される。
【００１５】
望ましくは、得られたデータ配列のエレメントのさらなるいくつかが、さらなる従属データ配列として再帰的に識別される。さらなる従属データ配列が構文解析されて、さらなる従属データ配列のエレメントが得られる。これらエレメントの一つから、プログラム・コード部分が読み出され、アプリケーションによって実行される。このプログラム・コード部分は、ある関数と関連付けられており、その関数を呼び出すことによって実行される。データ配列の各々のエレメントは、順序付けられた値群、およびキーと値とのペア群の一つを含む。このキー群は、文字のストリングであり、値群は、文字のストリング群、数値群、論理項群、および空値群の一つである。ＵＲＩを表現するストリングは、特殊文字によって、アプリケーション状態情報を表現するサブストリングと、データ配列群と、キー群と、値群とに分離される。このＵＲＩのフラグメント部分は、アプリケーション状態情報を表現するサブストリングを含む。アプリケーション状態情報の表現には、ＪａｖａＳｃｒｉｐｔオブジェクト表記法（ＪＳＯＮ）が用いられる。このＵＲＩは統一リソース位置指定子（ＵＲＬ）である。
【００１６】
本発明の第二態様によって、アプリケーション状態情報に基づいてコンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を提供する、コンピュータ処理方法が提供される。アプリケーション状態情報が提供される。このアプリケーション状態情報に基づいて、一つの独立データ配列と一つ以上の従属データ配列とを有する複数の入れ子データ配列が、該複数の入れ子データ配列の他のデータ配列のエレメントとして従属データ配列を再帰的に挿入することによって構築される。複数の入れ子データ配列による、アプリケーション状態情報を表現する文字のサブストリングが生成される。該生成されたストリングを挿入することによって、ＵＲＩを表現する文字のストリングが生成され、そのＵＲＩが提供される。
【００１７】
望ましくは、これらエレメントの一つに、アプリケーションが実行するためのプログラム・コード部分が格納される。このプログラム・コード部分は、ある関数と関連付けられる。
【００１８】
本発明の第三態様によって、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によって、アプリケーション状態情報を管理するコンピュータ処理方法が提供される。ＵＲＩに基づき、第一態様によってアプリケーション状態情報が提供される。アプリケーションが、アプリケーション状態情報を処理する。アプリケーション状態情報に基づき、第二態様によってＵＲＩが提供される。
【００１９】
本発明の第四態様によって、アプリケーション状態情報に関するコンピュータ・データ構造が提供される。このデータ構造は、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を含む。このＵＲＩは文字のストリングで表現され、該ストリングは、アプリケーションのアプリケーション状態情報を、一つの独立データ配列と一つ以上の従属データ配列とを有する複数の入れ子データ配列によって表現するサブストリングを含む。これら従属データ配列の各々は、複数の入れ子データ配列の別のデータ配列のエレメントである。
【００２０】
望ましくは、エレメントの一つは、アプリケーションが実行するためのプログラム・コード部分を含む。このプログラム・コード部分は関数と関連付けられている。
【００２１】
本発明の第五態様によって、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）に基づいて、アプリケーション状態情報を提供するためのコンピュータ・システムが提供される。ＵＲＩマネージャが、ＵＲＩを表現する文字のストリングを提供する。ＵＲＩパーサが、ストリングを構文解析して、独立データ配列によってアプリケーション状態情報を表現しているサブストリングを得、独立データ配列を構文解析して、該独立データ配列のエレメントを得る。ＵＲＩパーサは、得られたエレメントの一つを従属データ配列として識別し、その従属データ配列を構文解析して、該従属データ配列のエレメントを得、そのデータ配列のエレメントによって表現されるアプリケーション状態情報を提供する。
【００２２】
本発明の第六態様によって、アプリケーション状態情報に基づいて、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）を提供するためのコンピュータ・システムが提供される。アプリケーションが、アプリケーション状態情報を提供する。そのアプリケーション状態情報に基づいて、ＵＲＩジェネレータが、一つの独立データ配列と一つ以上の従属データ配列とを含む複数の入れ子データ配列を、該複数の入れ子データ配列の他のデータ配列のエレメントとして従属データ配列を再帰的に挿入することによって構築し、該ジェネレータは、複数の入れ子データ配列によってアプリケーション状態情報を表現する文字のサブストリングを生成し、生成されたサブストリングを挿入することによってＵＲＩを表現する文字のストリングを生成し、そのＵＲＩを提供する。
【００２３】
本発明の第七態様によって、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によってアプリケーション状態情報を管理するためのコンピュータ・システムが提供される。ＵＲＩパーサが、ＵＲＩを表現する文字のストリングに基づき、第五態様によってアプリケーション状態情報を提供する。アプリケーションが、そのアプリケーション状態情報を処理する。ＵＲＩジェネレータが、アプリケーション状態情報に基づき、第六態様によってＵＲＩを提供する。
【００２４】
本発明の実施形態の第八態様によって、コンピュータ・ネットワーク中のリソースを識別する統一リソース識別子（ＵＲＩ）によってアプリケーション状態情報を管理するためのコンピュータ・プログラム製品が提供される。本コンピュータ・プログラム製品は、コンピュータ可用媒体を含み、その中に具現されたコンピュータ可用プログラム・コードを有する。このコンピュータ可用プログラム・コードは、本発明の実施形態の諸態様による方法のステップを遂行するよう構成される。ＵＲＩを表現する文字のストリングが提供される。このストリングが構文解析され、独立データ配列によってアプリケーション状態情報を表現するサブストリングが得られる。この独立データ配列が構文解析されて、独立データ配列のエレメントが得られる。得られたエレメントの一つが、従属データ配列として識別される。その従属データ配列が構文解析されて、従属データ配列のエレメントが得られる。このデータ配列のエレメントによって表現されたアプリケーション状態情報が提供される。
【００２５】
本発明の技法を介してさらなる特質および利点が実現される。本発明の他の実施形態および態様が本明細書に詳細に記載され、これらは本発明の一部と見なされる。本発明の利点および特質をより良く理解するために、以下の説明および図面を参照する。
【００２６】
本発明と見なされる主題は、具体的に指摘され、本明細書に添付の請求項で明確に請求されている。本発明の前述および他の目的、特質および利点は、添付の図面と併せ以下の詳細な説明によって明らかになろう。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態による、アプリケーション状態情報を提供する方法のフロー・チャートを示す。
【図２】本発明の実施形態による、アプリケーション状態情報を提供する方法のフロー・チャートを示す。
【図３】本発明の実施形態による、アプリケーション状態情報を提供する方法のフロー・チャートを示す。
【図４】本発明の実施形態による、統一リソース識別子を提供する方法のフロー・チャートを示す。
【図５】本発明の実施形態による、統一リソース識別子を提供する方法のフロー・チャートを示す。
【図６】本発明の実施形態による、アプリケーション状態情報を管理する方法のフロー・チャートを示す。
【図７】本発明の実施形態による、アプリケーション状態情報を管理するためのシステムのブロック図を示す。
【図８】本発明の実施形態による、ウェブ・アプリケーションによってアプリケーション状態情報を管理する方法のフロー・チャートを示す。
【図９】本発明の実施形態による、データ構造の抽象ブロック図を示す。
【図１０】本発明の実施形態による、アプリケーション状態情報のフォーマット済み表現を示す。
【図１１】本発明の実施形態による、アプリケーション状態情報のフォーマット済み表現を示す。
【図１２】本発明の実施形態による、アプリケーション状態情報のフォーマット済み表現を示す。
【図１３】本発明の実施形態による、アプリケーション状態情報を含むＵＲＬを示す。
【図１４】本発明の実施形態による、アプリケーション状態情報のオブジェクト表現を生成するためのＪａｖａＳｃｒｉｐｔコードを示す。
【図１５】図１５ａおよび１５ｂは、本発明の実施形態による、アプリケーション状態情報のＵＲＩ表現を構文解析および生成するためのＪａｖａＳｃｒｉｐｔコードを示す。
【発明を実施するための形態】
【００２８】
本発明のある好適な実施形態は、ＵＲＬストリング中にアプリケーション状態情報を格納する技法を改良する。例えば、「ｈｔｔｐ：／／ｍｙｓｈｏｐ．ｃｏｍ／ｓｅａｒｃｈ？ｃａｔｅｇｏｒｙ＝ｃａｒｓ＆ｃｏｌｏｒ＝ｒｅｄ＆ｍａｘａｇｅ＝４」などのように、アプリケーション状態情報をＵＲＬのクエリー・ストリング中に格納する代わりに、本好適な実施形態は、例えば、「ｈｔｔｐ：／／ｍｙｓｈｏｐ．ｃｏｍ／ｓｅａｒｃｈ＃｛ｃａｔｅｇｏｒｙ：“ｃａｒｓ”，ｃｏｌｏｒ：“ｒｅｄ”，ｍａｘａｇｅ：“４”｝」といったように、同じ情報をＵＲＬのフラグメントまたはアンカー部分に表現する。逆に、ＵＲＬから格納されたアプリケーション状態情報を読み出すこともできる。
【００２９】
従来技術では、クエリー・ストリングは、キー−値ペアの集合を有するフラットな配列構造に限定される。このキーおよび値は、プリミティブ型、すなわち、ストリング、数値、およびブール値だけを持つことができる。これらの値は複合化されていない。本好適な実施形態によれば、アプリケーション状態情報はＪＳＯＮに直列化されて、ＵＲＬ中に格納される。ＪＳＯＮは、任意に入れ子されたデータ構造を表現することが可能で、複雑なアプリケーション状態情報に対応することができる。
【００３０】
一般に、例えばＪＳＯＮなどを用いるデータ配列のストリング表現は、データ配列およびそのエレメントを明瞭に識別するため、以下の要求事項を有する。データ配列の開始部と終了部を事前定義された区切り文字のペアで標識し、これにより、どのエレメントが一緒に属しているかを示さなければならない。エレメントの間の事前定義された分離記号によって、ストリング中でのエレメントの開始部および終了部を示す。さらに、文字のストリング中のキーまたはインデックスを明瞭に区切るため、事前定義された、キーまたはインデックス分離記号を使うことができる。ＪＳＯＮの場合には、これら区切り文字または区切り記号は、以下に述べるように単一の特殊文字である。
【００３１】
ＡＪＡＸウェブ・アプリケーションにおいては、ハッシュ文字（「＃」）によって隔てられたフラグメント部分の前の、ＵＲＬのストリングは、ウェブ・サーバから全ページを再ロードしないで変更することはできない。しかしながら、フラグメント部分の修正によるならば、ウェブ・クライアントがウェブ・サーバと交信することなく、クライアント側のウェブ・アプリケーションがそのアプリケーション状態をローカルに更新することは可能である。このアプリケーション状態の更新は、必ずしも、ウェブ・ブラウザ中のページの見掛けの表現の変化を意味しない。
【００３２】
ウェブ・ブラウザまたはクライアント・アプリケーションは、ユーザを別のページまたはページ内の別の位置との間で行き来させるためのナビゲーション・エレメントを提供することができる。ユーザが設定可能リンクをクリックすると、ウェブ・ブラウザは、保存されたロケーションに行くことができる。ブラウザ履歴機能は、アプリケーション状態をＵＲＬに格納しないＡＪＡＸアプリケーションに優る本好適な実施形態の利点である。
【００３３】
本好適な実施形態は、窓アプリケーションをフレーム・アプリケーション中に組み込むためのＡＰＩを提供する。フレーム・アプリケーションは、窓アプリケーションを起動し、対応するＵＲＬ中にそのアプリケーション状態に対するパラメータを指定することができる。また、フレーム・アプリケーションは、ＵＲＬを容易に修正し、別の起動ターゲットを定義することができる。
【００３４】
ユーザまたは技術サポート・エンジニアは、アプリケーション・シナリオを再現するために、特定のアプリケーション状態を復元するための全情報を含む、特定のＵＲＬをたやすく用いることができる。
【００３５】
本好適な実施形態の目的は、ウェブ・フロントエンドがパフォーマンス・デスクトップ（ＰｅｒｆＤｅｓｋｓ）をカスタム化するための機能を提供できる、例えば、ＩＢＭ（ＩＢＭ社の登録商標）のｚ／ＯＳ（ＩＢＭ社の登録商標）リソース測定機能（ＲＭＦ）などの特定の環境中で実行されることにある。パフォーマンス・デスクトップは、複数のパフォーマンス評価指標（Ｍｅｔｒｉｃ）を含む、ウェブ・クライアント・ビューである。これらの評価指標は、評価指標グループ（ＭｅｔｒｉｃＧｒｏｕｐ）に割り当てることができる。これら階層的コンポーネント（ＰｅｒｆＤｅｓｋｓ、ＭｅｔｒｉｃＧｒｏｕｐ、Ｍｅｔｒｉｃ）の各々には、別々のカスタム化可能な属性を持たせることができる。例えば、各コンポーネントに対して表示される名前を指定することができる。評価指標もしくは評価指標グループまたはその両方は、パフォーマンス・デスクトップに加えたりまたは削除したりすることができる。評価指標には、ウェブ・ブラウザから読み出される情報の量を指定する、フィルタ情報を含めることができる。ウェブ・クライアント・アプリケーションは、パフォーマンス・デスクトップのカスタム化のためのユーザ・ダイアログを提供し、カスタム化の変更を、ウェブ・クライアントの可視データ中および変更されたＵＲＬ中に動的に反映する。
【００３６】
図１〜図３は、統一リソース識別子（ＵＲＩ）に基づいてアプリケーション状態情報を提供する方法のフロー・チャートを示す。ステップ１０１において、ＵＲＩ管理コンポーネントとも呼ばれることもあるＵＲＩマネージャが、ＵＲＩを表現する文字のストリングを提供する。ステップ１０２で、ＵＲＩパーサが、そのストリングを構文解析して、アプリケーション状態情報を表現するサブストリングを得る。ステップ１０３において、ＵＲＩパーサは、独立データ配列を表現しているこのアプリケーション状態情報のサブストリングを構文解析する。この構文解析により、その独立データ配列のエレメントが得られる。図２は、上記構文解析ステップ１０３のサブステップを示す。ステップ１１１で独立データ配列を構文解析している間に、ＵＲＩパーサは、ステップ１１２において一つのエレメントを従属データ配列として識別し、ステップ１１３でこの従属データ配列を構文解析して、従属データ配列のエレメント群を得る。図１に戻りステップ１０４において、ＵＲＩパーサは、これらデータ配列のエレメント群によって表現されるアプリケーション状態情報を提供する。図３は、独立データ配列および入れ子になった従属データ配列群に適用される、構文解析ステップ１０３の別のサブステップを示す。ＵＲＩパーサは、再帰的手順でデータ配列を構文解析する。ＵＲＩパーサは、ステップ１２１において、データ配列の第一エレメントの存否判定を試み、ステップ１２２で、エレメントが存在するかどうかを確認する。その結果が「いいえ（なし）」であれば、図３の構文解析手順は終了する。結果が「はい（あり）」の場合、ＵＲＩパーサは、ステップ１２３においてそのエレメントが従属データ配列かどうかを検査する。従属データ配列である場合、ＵＲＩパーサは、ステップ１２４で、図３のサブステップを再帰的に遂行することによって、その従属データ配列を構文解析する。従属データ配列でない場合、すなわち、該エレメントがプリミティブ・データ型を有するときは、ＵＲＩパーサは、ステップ１２５において、そのエレメントをアプリケーション状態情報に加える。ステップ１２４および１２５双方の後、ステップ１２６において、ＵＲＩパーサは、データ配列の次のエレメントの存否判定を試み、オペレーションは、ステップ１２２に戻り、次のエレメントが存在するかどうかが確認される。
【００３７】
図４〜図５は、アプリケーション状態情報に基づいてＵＲＩを提供する方法のフロー・チャートを示す。ステップ２０１において、アプリケーションが、アプリケーション状態情報を提供する。ステップ２０２で、ＵＲＩジェネレータが、アプリケーション状態情報のサブストリングを生成する。ステップ２０２の詳細なサブステップが、図５に記載されている。ＵＲＩジェネレータは、独立データ配列を表現するサブストリングを構築して、再帰的手順を開始する。ステップ２１１において、ＵＲＩジェネレータは、アプリケーション状態情報に基づいてデータ配列の第一エレメントの存否判定を試み、ステップ２１２でエレメントが存在するかどうかを検査する。その結果が「いいえ（なし）」の場合、ＵＲＩジェネレータは図５の手順を終了する。結果が「はい（あり）」の場合、ＵＲＩジェネレータは、ステップ２１３においてそのエレメントが従属データ配列を表現しているかどうかを確認する。表現している場合、ステップ２１４でＵＲＩジェネレータは、図５に示されたサブステップを再帰的に遂行することによってその従属データ配列を表現するサブストリングを構築する。表現していない場合には、ステップ２１５で、ＵＲＩジェネレータはそのエレメントをアプリケーション状態情報サブストリングに挿入する。ステップ２１４および２１５双方の後、ステップ２１６において、ＵＲＩジェネレータは、アプリケーション状態情報に基づいてデータ配列の次のエレメントの存否判定を試み、オペレーションは、ステップ２１２に戻り、このエレメントが存在するかどうかが確認される。
【００３８】
図６は、ＵＲＩによってアプリケーション状態情報を管理する方法のフロー・チャートを示す。ステップ３０１において、ＵＲＩパーサが、ＵＲＩに基づいてアプリケーション状態情報を提供する。ステップ３０２で、アプリケーションが、そのアプリケーション状態情報を処理する。アプリケーション状態情報は変更され得る。ステップ３０３において、ＵＲＩジェネレータが、アプリケーション状態情報に基づいてＵＲＩを提供する。
【００３９】
図７は、アプリケーション状態情報を管理するためのシステムのブロック図を示す。本システムは、ウェブ・サーバ４０１と、ウェブ・クライアント４０２と、場合によって外部ウェブ・クライアント４０３とを含む。ウェブ・クライアントは、ウェブ・クライアントとウェブ・サーバとの間のインタフェースを提供するウェブ・アプリケーション・マネージャ４０４を有する。ウェブ・アプリケーション・マネージャは、ウェブ・クライアント中のウェブ・アプリケーションの実行を制御し、ウェブ・サーバ上に所在するリソースを識別する統一リソース位置指定子（ＵＲＬ）を管理する。ウェブ・クライアントは、ＵＲＬを表示するアドレス・フィールドを提示することができ、ユーザがＵＲＬを読み取り、変更できるようにする。ウェブ・アプリケーション・マネージャは、このＵＲＬを格納し、それをステップ４０５でウェブ・サーバに送信して、ステップ４０６でウェブ・コンテントを受信し、該コンテントは、ウェブ・クライアントによってウェブ・アプリケーション４０８として実行されるスクリプトを包含する。ステップ４０７において、ウェブ・アプリケーション・マネージャがそのウェブ・アプリケーションを開始する。ウェブ・アプリケーションは、ＵＲＬパーサ４１０およびＵＲＬジェネレータ４１６を有するアプリケーション状態マネージャ４０９を含む。ウェブ・アプリケーションが開始されると、ＵＲＬマネージャ４０４、すなわちウェブ・アプリケーション・マネージャが、ステップ４０９においてＵＲＬストリングを提供する。ＵＲＬパーサは、ＵＲＬストリングをアプリケーション状態オブジェクトに変換し、ステップ４１１で、それをウェブ・アプリケーションのアプリケーション特有部分４１２に提供する。このアプリケーション特有部分は、プログラム・ロジック４１３を実行し、グラフィカル・ユーザ・インタフェース４１４を介してユーザと情報を交換する。アプリケーション特有部分は、通常は変更されたアプリケーション状態を反映している、アプリケーション状態オブジェクトを提供する４１５。ＵＲＬジェネレータは、このアプリケーション状態オブジェクトをＵＲＬストリングに変換して、ステップ４１７でそれをＵＲＬマネージャに提供し、ＵＲＬマネージャは、そのＵＲＬをウェブ・アプリケーションの最新状態として格納する。このＵＲＬは、以前に格納されていたＵＲＬと異なり得る。ウェブ・クライアントのユーザは、アドレス・フィールドにおいてこのＵＲＬを読み取りまたは修正することができる。ステップ４１８で、別のウェブ・クライアント４０３が、該ＵＲＬを使用し格納されたアプリケーション状態を使って、このウェブ・アプリケーションを開始することができ、逆のケースも可能である。また、ステップ４０５で、このＵＲＬをウェブ・サーバ４０１に再送信し、ステップ４０６において、ウェブ・アプリケーションをウェブ・クライアント４０２に再ロードすることもできる。
【００４０】
図８は、ウェブ・アプリケーションによってアプリケーション状態情報を管理する方法のフロー・チャートを示す。ステップ５０１において、ウェブ・クライアントは、ウェブ・サーバにＨＴＴＰ要求を送信し、これにはウェブ・サーバ中のリソースを識別するためのＵＲＬが含まれる。次いでステップ５０２で、ウェブ・クライアントはＨＴＴＰ応答を受信し、これには、クライアント側でウェブ・アプリケーションとして実行されるスクリプトが包含される。ステップ５０３において、ウェブ・クライアントがそのウェブ・アプリケーションを起動する。ステップ５０４で、ウェブ・アプリケーションは、ＵＲＬがアプリケーション状態情報を含んでいるかどうかを確認する。「はい（含んでいる）」の場合、ウェブ・アプリケーションは、ステップ５０５で、そのＵＲＬを構文解析し、ステップ５０６において実行中のアプリケーションにアプリケーション状態オブジェクトを提供し、該アプリケーションは、ステップ５０７でユーザとの対話処理を行うことができる。「いいえ（含まれていない）」の場合、ウェブ・アプリケーションは、構文解析ステップ５０５をスキップする。ウェブ・アプリケーションは、ステップ５０８において、そのアプリケーション状態を変更し、ステップ５０９で変更されたＵＲＬを生成し、ステップ５１０においてそのＵＲＬを提供することができる。その後、アプリケーションはステップ５０６での実行を続ける。ステップ５０１に戻って、提供されたＵＲＬもウェブ・サーバに再送信することができ、またはステップ５１１でコピーして、ブックマークとして保管する、もしくは別のウェブ・クライアントに使用させることができる。
【００４１】
図９は、アプリケーション状態情報を表現するＵＲＩストリングの抽象ブロック図を示す。ＵＲＩストリング６０１は、ＵＲＩスキーム名および階層的スキーム特有部分を有する第一サブストリング６０２、およびアプリケーション状態情報を表現する第二サブストリング６０３を含む。第二サブストリング６０３がハッシュ（「＃」）文字から開始される場合、その第二サブストリングは、フラグメントまたはアンカー部分と呼ばれる。第二サブストリング６０３は、独立データ配列を表現する。そのエレメントの一部は従属データ配列６０４および６０５であり、これらはさらなる従属データ配列６０６、６０７、および６０８を包含し得る。
【００４２】
図１０〜図１２は、ライン７０１〜７７０中に、アプリケーション状態情報のフォーマット済み表現を示す。この例は「Ｍｙ  Ｓｔｏｒａｇｅ  Ｃｏｎｓｏｌｅ（私のストレージ・コンソール）」で、ＲＭＦパフォーマンス・デスクトップを単純化したものである。ある特定のストレージ・コンソール構成は、２つのグループ・メンバー、「Ｉｍｐｏｒｔａｎｔ  Ｓｔｏｒａｇｅ  Ｉｎｄｉｃａｔｏｒｓ（重要保管インジケータ）」および「Ｎｏｎ−ｃｒｉｔｉｃａｌ  Ｉｎｄｉｃａｔｏｒｓ（非重要インジケータ）」を有する。これらグループ・メンバーの各々は、評価指標を有し、これら指標は、可視フラグ、フィルタ・オブジェクト、および随意的フォーマッタ機能を指定することができる。このフォーマット済み表現は、入れ子にされた複数のデータ配列を含む。ＪＳＯＮは、配列およびオブジェクトと呼ばれる、データ配列に対する二つの構造化基本データ型を備えている。配列は、カンマで隔てられ角括弧で囲まれた、順序付けられた一連の値である。一例が、ライン７０４〜７６９中の２つのエレメントを有する配列「ｇｒｏｕｐｓ」であり、これらエレメントは、整数インデックス「ｇｒｏｕｐｓ［０］」（ライン７０６〜７４５）および同「ｇｒｏｕｐｓ［１］」（ライン７４６〜７６９）によって識別される。両エレメントとも構造化データ型のオブジェクトを有し、これについて以下に説明する。別の例は、２つのエレメントを有するライン７６０〜７６４の配列「ｖａｌｉｄＫｅｙｓ」であり、これらのエレメントは、プリミティブ・データ型ストリングを有する。オブジェクトは、カンマで隔てられ波括弧で囲まれた、キー−値ペアまたは名前−値ペアの集合である。図１０〜図１２は、かかる多くの例を示しており、ライン７０１〜７７０中の、「ｓｔａｔｅ」と呼ばれるトップ・レベルの独立データ配列は多くのキー−値ペアを有する。キーはストリング型である。値は、ライン７０２および７０３中のキー「ｖｉｅｗＩｄ」および「ｌａｂｅｌ」に対するものはストリングであり、キー「ｇｒｏｕｐｓ」に対するものは配列である。この値は、論理項、すなわち、例えばライン７２１、７５２、および７５７中などのｔｒｕｅ（真）またはｆａｌｓｅ（偽）とすることができる。これは、ライン７１５および７１６に示される「１２．９」および「２０」といった数値にすることもできる。数値は、整数、小数、または浮動小数点数とすることができる。あるいは、この値は、例えばライン７２２および７５３中のようなｎｕｌｌ（空値）とすることもできる。
【００４３】
ｍｅｔｒｉｃＩｄ＝”２３４５６”を有する評価指標は、ライン７２３〜７４２中にキー−値ペアを包含し、その中のキー「ｆｏｒｍａｔｔｅｒ」はＪａｖａＳｃｒｉｐｔ関数をポイントし、その値は関数型であり、プログラム・コード部分を含む。関数自体はアノニマスである。関数へのポインタだけが変数「ｆｏｒｍａｔｔｅｒ」に格納される。この例における関数は、インプットとして与えられた整数「ｎ」をフォーマットする。アウトプットは、インプットの数値「ｎ」および追加の色情報を包含するＨＴＭＬストリング（”＜ｓｐａｎ  ｓｔｙｌｅ＝＼”ｃｏｌｏｒ：＄｛ｃｏｌｏｒ｝；＼”＞”＋Ｓｔｒｉｎｇ（ｎ）＋”＜／ｓｐａｎ＞”）である。この数値が１より小さい場合、緑色で表示される。数値が１に等しければ、「ｃｏｌｏｒ：」属性の値は「黄色」である。１より大きな数値に対しては、その数値は赤色を有する。
【００４４】
図１３は、ハッシュ（「＃」）文字の後に、図１０〜図１２に示されたアプリケーション状態情報を表現するサブストリングを含む、ＵＲＬストリングを示す。
【００４５】
図１４は、図１０〜図１２に示されたアプリケーション状態情報のオブジェクト表現を生成するためウェブ・アプリケーションの一部を実行する、ＪａｖａＳｃｒｉｐｔコードの一部のライン９０１〜９１１を示す。各代入記号（「＝」）は、ＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅ」にエレメントを追加する。入れ子のエレメントの識別名はドット（「．」）で隔てられている。空白の波括弧（「｛｝」）は、初期オブジェクト、すなわち、キー−値ペアを包含するデータ配列を生成する。一組の空白角括弧（「［ ］」）は初期配列、すなわち、順序付けられた一連の値を包含するデータ配列を生成する。オブジェクトの値は、それぞれのキーに割り当てられる。例えば、ライン９０２において、値「ｄ２ａｆ５ｂｅａ」はキー「ｓｔａｔｅ．ｖｉｅｗＩｄ」に割り当てられる。値群がある配列に割り当てられる場合、これらは整数インデックスで識別される。例えば、ライン９０８で、初期オブジェクト（「｛｝」）が、インデックス「［０］」による第一の値として、配列「ｓｔａｔｅ．ｇｒｏｕｐｓ［０］．ｍｅｔｒｉｃｓ」に割り当てられ、ライン９１１では、別の初期オブジェクト（「｛｝」）が、インデックス「［１］」による第二の値として、同じ配列に割り当てられる。
【００４６】
図１５ａは、ＵＲＬパーサを実行するＪａｖａＳｃｒｉｐｔコードを示す。関数「ｒｅｓｔｏｒｅＳｔａｔｅ」が、ＵＲＬを表現するストリングを構文解析し、アプリケーション状態情報を表現するＪａｖａＳｃｒｉｐｔオブジェクトを提供する。ライン１００１の関数の定義は、ＵＲＬに基づいてアプリケーション状態が復元されるので、「ｒｅｓｔｏｒｅＳｔａｔｅ（状態復元）」と呼ばれる。ライン１００２において、ＪａｖａＳｃｒｉｐｔオブジェクト「ｗｉｎｄｏｗ．ｌｏｃａｔｉｏｎ．ｈａｓｈ」は、ＵＲＬのフラグメント部分に戻り、それをストリング「ｓｔａｔｅＳｔｒ」に書き込む。ライン１００３で、空白のＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」が生成される。後続のサブ関数呼び出しは、ライン１００４〜１００９中にｔｒｙブロックで囲まれている。ライン１００５で、関数「ｒｅｓｔｏｒｅＳｔａｔｅ」は、ストリング「ｓｔａｔｅＳｔｒ」がｎｕｌｌでなく空白でないことを検証する。空白の場合には、ＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」は変わらない、すなわち、ｎｕｌｌ（空値）である。空白でない場合、関数「ｒｅｓｔｏｒｅＳｔａｔｅ」は、ライン１００６において、ストリング「ｓｔａｔｅＳｔｒ」の最初の文字、すなわちハッシュ（「＃」）分離記号を除去する。次いで、ライン１００７で、ネイティブのＪａｖａＳｃｒｉｐｔ関数である「ｅｖａｌ（）」が呼び出され、これがストリング「ｓｔａｔｅＳｔｒ」を非直列化し、非直列化された情報をＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」に書き込む。ライン１０１０〜１０１１のキャッチ・ブロックには、いかなる追加的例外処理も含まれていない。ライン１０１０に例外がインプットされた場合、ＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」はｎｕｌｌのままにされる。評価ステップがうまく行った場合、ライン１０１２で、関数「ｒｅｓｔｏｒｅＳｔａｔｅ」は、得られたＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」を返す。ＵＲＬが無効なオブジェクトを含んでいるか、オブジェクトを含まない場合、あるいは、例外がインプットされた場合、該関数は空値を返す。
【００４７】
図１５ｂは、ＵＲＬジェネレータを実行するＪａｖａＳｃｒｉｐｔコードを示す。関数「ｓｔｏｒｅＳｔａｔｅ」が、アプリケーション状態情報を表現するＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」に基づいて、ＵＲＬを表現するストリングを生成し、格納する。ライン１０２１の関数の定義は、アプリケーション状態情報が格納されるので、「ｓｔｏｒｅＳｔａｔｅ（状態格納）」と呼ばれる。ライン１０２２において、ＵＲＬのフラグメント部分を識別するハッシュ文字（「＃」）一つを有するストリング「ｓｔａｔｅＳｔｒ」が生成される。ライン１０２３で、関数「ｓｔｏｒｅＳｔａｔｅ」は、ＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」がｎｕｌｌでなく空白でないかどうかを検証する。空白の場合には、ストリング「ｓｔａｔｅＳｔｒ」は初期値のまま、すなわち、ハッシュ文字（「＃」）だけを包含する。空白でない場合、それに続くサブ関数呼び出しが、ライン１０２４〜１０２６中のｔｒｙブロックで囲まれている。ライン１０２５で、ネイティブのＪａｖａＳｃｒｉｐｔ関数である「ｔｏＳｏｕｒｃｅ（）」が呼び出され、これがＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」を直列化し、直列化された情報をストリング「ｓｔａｔｅＳｔｒ」に加える。ライン１０２７〜１０２８のキャッチ・ブロックには、いかなる追加的例外処理も含まれていない。ライン１０２７に例外がインプットされた場合、ＪａｖａＳｃｒｉｐｔオブジェクト「ｓｔａｔｅＯｂｊ」が無効なので、ストリング「ｓｔａｔｅＳｔｒ」も初期状態のままである。ライン１０３２において、得られたストリング「ｓｔａｔｅＳｔｒ」は、ＪａｖａＳｃｒｉｐｔオブジェクト「ｗｉｎｄｏｗ．ｌｏｃａｔｉｏｎ．ｈａｓｈ」に書き込まれ、これにより、ＵＲＬのフラグメント部分が設定される。
【００４８】
ライン１０２５の直列化関数「ｔｏＳｏｕｒｃｅ（ ）」は、一部のウェブ・ブラウザではサポートされていない。従って、本好適な実施形態は、Ｄｏｊｏ  ｔｏｏｌｋｉｔ（登録商標）が提供するオープン・ソース実装を利用している。詳細については、リンクｈｔｔｐ：／／ｗｗｗ．ｄｏｊｏｔｏｏｌｋｉｔ．ｏｒｇ／を参照。
【００４９】
本発明の別の実施形態では、アプリケーション状態情報を直列化するためにＪＳＯＮ以外のフォーマットを、およびウェブ・ブラウザでウェブ・アプリケーションを実行するためにＪａｖａＳｃｒｉｐｔ以外のプログラミング言語を用いることができる。拡張マークアップ言語（ＸＭＬ：Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）は、複数の入れ子データ配列の表現を提供することができ、これはＪＳＯＮの表現と同じ構造を有する。ＸＭＬドキュメントを構成する文字群は、マークアップとコンテントとに分けられる。マークアップを構成する全てのストリングは、文字「＜」で始まり次の「＞」で終わるか、あるいは文字「＆」で始まり文字「；」で終わるかのいずれかである。マークアップでない文字のストリングはコンテントである。タグは、「＜」で始まり「＞」で終わるマークアップ構成である。アプリケーション状態情報のＸＭＬベースの表現は、見かけ上ＪＳＯＮよりも格段に長い。詳細については、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／ＸＭＬ、およびｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／を参照。
【００５０】
別の実施形態では、ＵＲＩパーサおよびＵＲＩジェネレータを実装するためにネイティブのＪａｖａを用いることができる。Ｊａｖａの方法は、インプット・ストリング「ｓｔａｔｅＳｔｒ」が提供されている場合にはＪａｖａオブジェクト「ｓｔａｔｅＯｂｊ」を返すことができ、その逆も可能である。この実装では、アプリケーション・プログラミング・インターフェースを用いることができ、該インタフェースが、ＸＭＬドキュメントからドキュメント・オブジェクト・モデル（ＤＯＭ）のツリーを生成するパーサと、そのオブジェクト・ツリーのエレメントへのアクセス方法とを提供してくれる。ＤＯＭオブジェクト・ツリーには、ｏｒｇ．ｗ３ｃ．ｄｏｍ．Ｄｏｃｕｍｅｎｔインタフェースに適合する方法を使ってアクセスすることができる。逆に、適切な方法を呼び出すことによって、ＤＯＭオブジェクト・ツリーに基づいてＸＭＬドキュメントを生成することもできる。
【００５１】
さらに別の実施形態では、ＪａｖａＳｃｒｉｐｔ以外のスクリプト言語を用いることができ、それらの言語でも、プログラム・コード部分を、変数と関連付ければ、ランタイムで動的に実行することができる。例として、スクリプト言語Ｐｙｔｈｏｎ（Ｒ）およびＰｅｒｌ（Ｒ）がある。Ｐｙｔｈｏｎでは、ｅｖａｌ関数があたかもそれがＰｙｔｈｏｎ表現であるかのようにストリングを評価する。このストリングには、リテラル、単純な式、または組み込み関数を包含させることができる。Ｐｅｒｌが、実行するためのファイル、またはコマンドラインのオプションとしてストリングが与えられた場合、Ｐｅｒｌは、そのコンテンツを構文解析し、構文エラーをチェックして問題がなければそれを実行する必要がある。Ｐｅｒｌは、これらの機能を、ｅｖａｌ命令を介してプログラマが利用できるようにする。コンパイラ・ベースのプログラミング言語Ｃ／Ｃ＋＋に対しては、プログラム・コード部分のランタイムでの評価はないが、Ｃアプリケーションとリンクして、インタプリタ型言語のようにＣまたはＣ＋＋をサポートできる、パブリック・ドメインおよび商業的な多くのインタプリタがある。しかしながら、Ｊａｖａでは、実行中に新規コードの生成および評価はできない。次善策として、Ｊａｖａコンパイラをプログラムで呼び出すことができる。詳細については、「ｈｔｔｐ：／／ｅｆｆｂｏｔ．ｏｒｇ／ｚｏｎｅ／ｌｉｂｒａｒｙｂｏｏｋ−ｃｏｒｅ−ｅｖａｌ．ｈｔｍ」、および「ｈｔｔｐ：／／ｄｏｃｓｔｏｒｅ．ｍｉｋ．ｕａ／ｏｒｅｌｌｙ／ｐｅｒｌ／ａｄｖｐｒｏｇ／ｃｈ０５＿０１．ｈｔｍ」で閲覧することができる。
【００５２】
ウェブ・アプリケーションの実行はウェブ・クライアントに限定されるものではなく、ウェブ・サーバにおいても実施することができる。また、アプリケーション状態情報を格納しているＵＲＩ、さらに具体的にはＵＲＬまたはＵＲＮは、任意の種類のウェブ関連のアプリケーションで、内部的に、すなわち、ウェブ・サーバまたはウェブ・クライアント内部でも使用することができる。ＵＲＩは、ウェブ中の任意の通信パートナの間で、例えば、２つのウェブ・サーバの間、および２つのウェブ・クライアントの間で交換することができる。
【００５３】
本発明は、パフォーマンス・モニタおよび管理コンソールに限定されるものでなく、ネットワーク中で情報技術リソースを識別する必要がある、任意のアプリケーション分野において実施することができる。
【００５４】
本明細書で使用する用語は、特定の実施形態を説明する目的のためだけのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある（ａ、ａｎ）」、および「該（ｔｈｅ）」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことを意図されている。さらに、本明細書で用いられる「含む（ｃｏｍｐｒｉｓｅ）」もしくは「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」またはその両方は、述べられた機能、完全体、ステップ、オペレーション、エレメント、またはコンポーネント、あるいはこれらの複数の存在を特定するが、一つ以上の他の機能、完全体、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在を排除するものでないことがさらに理解されよう。
【００５５】
添付の請求項中の全てのミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションのエレメントの、対応する構造、材料、処置および均等物は、具体的に請求された他の請求エレメントと組み合わせて機能を遂行するための、一切の構造、材料または処置を包含することが意図されている。本発明の記述は、例示および説明目的で提示されたもので、網羅的であること、または本発明を開示した形態に限定することは意図されていない。当業者には、本発明の範囲および精神から逸脱することのない多くの修改および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えたさまざまな実施形態のため、本発明を理解できるようにするため、選択し説明されたものである。
【００５６】
当業者ならよく理解するであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態（ファームウエア、常駐ソフトウエア、マイクロコードなどを含む）、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれる、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、内部に具体化されたコンピュータ可読プログラム・コードを有する一つ以上のコンピュータ可読媒体（群）中に具現されたコンピュータ・プログラム製品の形を取ることもできる。
【００５７】
一つ以上のコンピュータ可読媒体（群）の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的な、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）またはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。
【００５８】
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現されたコンピュータ可読のプログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではないが、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
【００５９】
コンピュータ可読媒体中に具現されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
【００６０】
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合せで記述することができる。このプログラム・コードは、全体をユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロン・ソフトウエア・パッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅａｒｅａ ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うことができる。
【００６１】
本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフロー・チャート説明図もしくはブロック図またはその両方を参照しながら本発明の態様を上記で説明した。フロー・チャート説明図もしくはブロック図またはその両方の各ブロック、および、フロー・チャート説明図もしくはブロック図またはその両方中のブロックの組み合せは、コンピュータ・プログラム命令によって実行可能であることが理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フロー・チャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施するための手段を生成するようにすることができる。
【００６２】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令できるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フロー・チャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施する命令群を包含する製品を形成するようにすることができる。
【００６３】
同様に、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、これらコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーション・ステップを実行させてコンピュータ実装のプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フロー・チャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施するためのプロセスを提供するようにすることもできる。
【００６４】
図中のフロー・チャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フロー・チャートまたはブロック図中の各ブロックは、所定の論理機能（群）を実行するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることに留意すべきである。例えば、連続して示された２つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時には、これらブロックが逆の順序で実行されることもあり得る。また、ブロック図もしくはフロー・チャート説明図またはその両方の各ブロック、およびブロック図もしくはフロー・チャート説明図またはその両方中のブロックの組み合わせは、特定の機能または処理を実施する、特殊用途のハードウエア・ベースのシステム、または特殊用途のハードウエアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
【００６５】
上記説明では、本発明の特定の実施形態を参照してきたが、当業者は、添付の請求項に定義された範囲の本発明の原理および精神から逸脱することなく、これらの実施形態に変更を加えることが可能なことをよく理解していよう。
【図１】
2013506175.tif 000003
【図２】
2013506175.tif 000004
【図３】
2013506175.tif 000005
【図４】
2013506175.tif 000006
【図５】
2013506175.tif 000007
【図６】
2013506175.tif 000008
【図７】
2013506175.tif 000009
【図８】
2013506175.tif 000010
【図９】
2013506175.tif 000011
【図１０】
2013506175.tif 000012
【図１１】
2013506175.tif 000013
【図１２】
2013506175.tif 000014
【図１３】
2013506175.tif 000015
【図１４】
2013506175.tif 000016
【図１５】
2013506175.tif 000017
【国際調査報告】
2013506175.tif 000018
2013506175.tif 000019
2013506175.tif 000020