(57)【要約】      （修正有）【課題】  ＪＭＳトピック名でワイルドカードを使用するための方法、装置、およびコンピュータで使用可能な媒体を提供する。【解決手段】トピック・ストックＩＤとトピック・ワイルドカード標識とを含むＩＤによって識別されたメッセージに関する保管メッセージをＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＩＮＤＩ）に送信するステップと、そのトピック・ストックＩＤを有する任意のトピックに新しいメッセージを保管するようミドルウェアに指示する実装メッセージをＪＮＤＩからミドルウェアに送信し、その実装メッセージにより、ミドルウェアはそのトピック・ストックＩＤとトピック・ワイルドカード標識とを含む特殊なトピックを作成し、すべてのトピックの照会が行われ、今後の新しいメッセージを振り向けるためにブローカに対する再使用可能動的メッセージ・フロー命令が生成される。【選択図】  図４
2007200308.tif 000002
【特許請求の範囲】
【請求項１】
トピック・ストックＩＤとトピック・ワイルドカード標識とを含むＩＤによって識別されたトピックに関する保管要求をＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）に送信するステップと、
前記トピック・ストックＩＤを有する任意のトピックに新しいメッセージを保管するようミドルウェアに指示する実装メッセージを前記ＪＮＤＩから前記ミドルウェアに送信するステップとを含み、
前記実装メッセージにより、
生成された動的フローへの入口点として動作する特殊なトピックを前記ミドルウェアが作成し、
前記トピック・ストックＩＤを含むすべてのトピックの照会が行われ、
今後、関連する新しいメッセージのコピーを公開者から前記トピック・ストックＩＤを有する前記トピックのそれぞれに振り向けるためにブローカに対する再使用可能な動的メッセージ・フロー命令が生成される、
コンピュータで実行可能な方法。
【請求項２】
動的に生成された前記フローを実行させるように、Ｊａｖａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ（ＪＭＳ）公開者からブローカに要求を送信するステップ
をさらに含む、請求項１に記載のコンピュータで実行可能な方法。
【請求項３】
プロセッサと、
コンピュータ・プログラム・コードとを備え、
前記コンピュータ・プログラム・コードは、
トピック・ストックＩＤとトピック・ワイルドカード標識とを含むＩＤによって識別されたトピックに関する保管要求をＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）に送信するステップと、
前記トピック・ストックＩＤを有する任意のトピックに新しいメッセージを保管するようミドルウェアに指示する実装メッセージを前記ＪＮＤＩから前記ミドルウェアに送信するステップとを前記プロセッサに実行させ、
前記実装メッセージにより、
生成された動的フローへの入口点として動作する特殊なトピックを前記ミドルウェアが作成し、
前記トピック・ストックＩＤを含むすべてのトピックの照会が行われ、
今後、関連の新しいメッセージのコピーを公開者から前記トピック・ストックＩＤを有する前記トピックのそれぞれに振り向けるためにブローカに対する再使用可能動的メッセージ・フロー命令が生成される
システム。
【請求項４】
動的に生成された前記フローを実行させるように、前記命令が、
Ｊａｖａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ（ＪＭＳ）公開者からブローカに要求を送信させるよう構成される、請求項３に記載のシステム。
【請求項５】
コンピュータで実行可能なコンピュータプログラムであり、
実行されることにより前記コンピュータに、
トピック・ストックＩＤとトピック・ワイルドカード標識とを含むＩＤによって識別されたトピックに関する保管要求をＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）に送信するステップと、
前記トピック・ストックＩＤを有する任意のトピックに新しいメッセージを保管するようミドルウェアに指示する実装メッセージを前記ＪＮＤＩから前記ミドルウェアに送信するステップを実行させ、
前記実装メッセージにより、
生成された動的フローへの入口点として動作する特殊なトピックを前記ミドルウェアが作成し、
前記トピック・ストックＩＤを含むすべてのトピックの照会が行われ、
今後、関連の新しいメッセージのコピーを公開者から前記トピック・ストックＩＤを有する前記トピックのそれぞれに振り向けるためにブローカに対する再使用可能動的メッセージ・フロー命令が生成されるコンピュータプログラム。
【請求項６】
動的に生成された前記フローを実行させるように、  Ｊａｖａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ（ＪＭＳ）公開者からブローカに要求を送信するステップをさらに実行させる請求項５に記載のコンピュータプログラム。
【請求項７】
リモート・ロケーションのサーバからクライアント・コンピュータに配備可能である、請求項５に記載のコンピュータプログラム。
【請求項８】
オンデマンド方式でサービス・プロバイダからカスタマに提供される、請求項５に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータおよび同様の技術の分野に関し、特に、この分野で使用されるソフトウェアに関する。
【背景技術】
【０００２】
公開および加入（Ｐ＆Ｓ：Publishand Subscribe）は、ハブ・アーキテクチャを実現するためにメッセージングで使用されるアーキテクチャである。Ｐ＆Ｓでは、トピック（topic）および加入（subscription）という概念を使用する。たとえば、図１に示す通り、公開者（publisher）１０２は、一般に「トピック」１０６として知られるデータベースに文書１０４を公開する。すなわち、公開者１０２は多数の文書１０４を公開することができ、その文書は「トピック」として知られる共通データベース内に収集される。「トピック」は、「コンピュータ・アーキテクチャ」、「政治」、「株式市場」などの任意のトピック名（好ましくは記述的なもの）にすることができる。
【０００３】
加入者（subscriber）１０８ａ〜１０８ｎは、トピック１０６に加入し、公開者１０２によってトピック１０６に公開された文書１０４（メッセージ）のコピーを受信することができる。
【０００４】
Ｐ＆ＳはＪａｖａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ（ＪＭＳ）などの多くの技術で実現される。ＪＭＳは、ネットワーク内のコンピュータ間のメッセージング通信をサポートする、オペレーティング・システム（ＯＳ：OperatingSystem）が認知不能な（agnostic）アプリケーション・プログラム・インターフェース（ＡＰＩ：ApplicationProgram Interface）である。ＪＭＳでは、公開者１０２がどの「トピック」に公開資料を送信すべきかを把握したい場合、公開者１０２は、命名／ファイリング・システムとしてＪＭＳ内でＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＩＮＤＩ）を使用する場合が多い。したがって、公開者１０２は、ＪＮＤＩ内にリストされたトピックをルックアップし、選択されたトピック１０６に自分の公開資料／メッセージを公開する。しかし、このシナリオが示唆するように、ＪＮＤＩ内にどのトピック名が存在するかまたはどのトピック名を使用すべきかあるいはその両方を公開者１０２が把握していない場合、問題が発生する。
【０００５】
特定のトピックを見つけるという問題の他に、それぞれが独自の加入者１０８のセットを有する可能性のある複数のトピック１０６に公開したい公開者１０２にとっては、もう１つの問題が発生する。公開者１０２がＪＮＤＩから所望のトピックをすべて見つけられる場合でも、このような個別選択を行うために必要な手動プログラミングは困難なものである。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の問題に対する解決策の必要性を認識し、本発明は、メッセージを公開すべき適切なトピックを見つけるためにＪＭＳトピック名でワイルドカード（wildcard）を使用するように設計されたコンピュータで実行可能な方法、システム、およびコンピュータで使用可能な媒体を対象とする。
【課題を解決するための手段】
【０００７】
この方法は、メッセージが送信されるトピックに関する要求をＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）に送信することを含む。要求されたトピックは、１つまたは複数のワイルドカードを含むトピック名によって識別される。実装メッセージ（implementationmessage）によりミドルウェアは、メッセージのコピーを各トピックに送信することになる特殊なメッセージ・フローを生成する。このフローへの入力そのものは特殊な生成トピックになる。アプリケーションがメッセージの公開に取りかかる場合、公開されるメッセージはこの特殊な生成トピックに送信されることになる。次に、生成された特殊なメッセージ・フローは、その特殊なメッセージ・フロー内のそれぞれの特殊な生成トピックにメッセージのコピーを送信することになる。
【０００８】
本発明の上記ならびに追加の目的、特徴、および利点は、以下の詳細な説明で明らかになるであろう。
【０００９】
本発明に特有と思われる新規な特徴は特許請求の範囲に示されている。しかし、本発明そのもの、ならびにその好ましい使用態様、その他の目的および利点は、添付図面に併せて読んだときに、例示的な一実施形態に関する以下の詳細な説明を参照することにより、最も良く理解できるであろう。
【発明を実施するための最良の形態】
【００１０】
次に、図２に関して説明すると、複数のトピック・データ構造にメッセージのコピーを保管するために記述された環境内で本発明によって実行されるステップを描写するスイム・レーン（swim-lane）図２００が描写されている。ステップ１で、Ｊａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ＪＭＳ）プログラム２０２は、ワイルドカードを使用して公開のためのトピックに関する要求をＪａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）２０４に送信する。例示的なコードは以下のものにすることができる。
Topictopic = jndiContext.lookup(“jms/Hero*Topic”)
【００１１】
ステップ２で、ＪＮＤＩ２０４は、実装要求（＼getSpecialTopicImplementation＼）をミドルウェア２０６（SpecialTopicImplementation）に送信し、特殊なトピックが要求されることをミドルウェア２０６に通知する。次に（ステップ３で）、ＪＮＤＩ２０４は、トピック・ストックＩＤ（「Hero」）ならびにトピック・ワイルドカード標識（「*」は保管メッセージによって定義されないその他の条件を示す）を含む特殊な動的トピック名をブローカ２０８が作成するための命令（＼createSpecialTopic＼）をブローカ２０８に送信する。
【００１２】
ブローカ２０８は特殊な動的トピック名を作成し、次に（ステップ４で）ミドルウェア２０６はその名前にストック・トピック（「Hero」）を有するすべてのトピックについてブローカ２０８に対して照会を行う。ブローカ２０８はこのようなトピックをすべて返し、ミドルウェア２０６は新たに作成した動的メッセージ・フロー命令を再使用のために生成し（ステップ５）、そのトピック名に「Hero」を含むすべてのトピックについて照会する。一実施形態では、この動的メッセージ・フロー命令は今後の使用のためにローカルにキャッシュされる。
【００１３】
ミドルウェア２０６は、再使用可能動的メッセージ・フロー命令をブローカ２０８に配備し（ステップ６）、すべてのトピックに対するフローへの動的入口点をＪＭＳプログラム２０２に返す。したがって、公開者１０２（図１に示す）が新しいメッセージ（文書、論文、記事、公開資料、アプリケーション・データなど）をミドルウェア２０６に公開する場合（ステップ７）、ミドルウェア２０６はメッセージをブローカ２０８に転送し（ステップ８）、トピックの名前の少なくとも一部にトピック・ストックＩＤ（たとえば、「Hero」）を有するすべてのトピックにそのメッセージを転送するようブローカ２０８に指示する。したがって、トピックの名前に「Hero」を含む各トピックに対して新しいメッセージを公開させるために、前に生成された特殊なフローが再使用される。上述のように特殊な動的トピック名を使用することにより、関連がありそうなすべてのトピックに新しいメッセージを手動で再作成する必要はない。一実施形態では、動的で特殊なトピック名を含むメッセージ・フロー文書の生成は、ビジネス・プロセス実行言語（ＢＰＥＬ：BusinessProcess Execution Language）スクリプトを使用して実行される。ＢＰＥＬメッセージ・フロー文書は、新しい動的で特殊なトピック名（ステップ３で生成される）からメッセージを読み取り、そのメッセージを各関連トピックに転送するフローを含む。
【００１４】
図２はどの点でフローが生成されるかを記述しているが、図３はどのようにフローが生成されるかを記述している。イニシエータ・ブロック（initiatorblock）３０２の後、トピック名によるトピックに関する要求がＪＭＳプログラムで受信される（ブロック３０４）。トピック要求がワイルドカードを含まないトピックに関するものである場合（照会ブロック３０６）、明確に命名されたトピックに対して通常通りメッセージが送信され（ブロック３０８）、プロセスは終了する（ターミネータ・ブロック（terminatorblock）３２４）。
【００１５】
しかし、あるトピックに関する要求がそのトピック名にワイルドカードを含む場合（照会ブロック３０６）、ミドルウェアは動的フローへの入口点として特殊な動的トピックを生成する（ブロック３１０）。次に、渡されたワイルドカード名トピック名を使用するストック・トピック名を有するすべてのトピックについてＪＭＳブローカに照会する（ステップ３１２）。次に、フローが生成され、任意選択で今後の使用のためにブローカに保管される（ブロック３１４）。次に、ＪＭＳプログラムは、ミドルウェア２０６（図２に示す）にメッセージを公開し、この新しい動的トピックにそのメッセージを送信するようブローカに指示し（ブロック３１６）、それにより次にＪＭＳブローカはフローを実行し、ワイルドカードを使用する名前の基準に適合するトピックのそれぞれにメッセージのコピーを送信することになる（ブロック３１８）。次に、ブローカは各トピックについて標準的な公開加入技術を実行することになる（ターミネータ・ブロック３２０）。
【００１６】
次に、図４に関して説明すると、本発明を使用可能な例示的なクライアント・コンピュータ４０２のブロック図が描写されている。クライアント・コンピュータ４０２は、システム・バス４０６に結合されたプロセッサ・ユニット４０４を含む。ビデオ・アダプタ４０８は、ディスプレイ４１０を駆動／サポートし、同じくシステム・バス４０６に結合されている。システム・バス４０６は、バス・ブリッジ４１２を介して入出力（Ｉ／Ｏ）バス４１４に結合されている。入出力インターフェース４１６は入出力バス４１４に結合されている。入出力インターフェース４１６は、キーボード４１８、マウス４２０、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）ドライブ４２２、フレキシブル・ディスク・ドライブ４２４、およびフラッシュ・ドライブ・メモリ４２６を含む、様々な入出力装置との通信を提供する。入出力インターフェース４１６に接続されたポートのフォーマットは、ユニバーサル・シリアル・バス（ＵＳＢ：Universal Serial Bus）ポートを含むがこれに限定されない、コンピュータ・アーキテクチャの当業者にとって既知のものであれば、どのようなものでもよい。
【００１７】
クライアント・コンピュータ４０２は、システム・バス４０６に結合されたネットワーク・インターフェース４３０を使用して、ネットワーク４２８を介してサービス・プロバイダ・サーバ５０２と通信することができる。ネットワーク４２８は、インターネットなどの外部ネットワーク、あるいはイーサネットまたは仮想私設網（ＶＰＮ：Virtual Private Network）などの内部ネットワークにすることができる。ネットワーク４２８を使用して、クライアント・コンピュータ４０２は、本発明を使用してサービス・プロバイダ・サーバ５０２にアクセスすることができる。
【００１８】
ハード・ディスク・インターフェース４３２もシステム・バス４０６に結合されている。ハード・ディスク・インターフェース４３２はハード・ディスク４３４とのインターフェースを取る。好ましい一実施形態では、ハード・ディスク４３４は、同じくシステム・バス４０６に結合されているシステム・メモリ４３６にデータを追加する。システム・メモリ４３６に追加するデータとしては、クライアント・コンピュータ４０２のオペレーティング・システム（ＯＳ）４３８とアプリケーション・プログラム４４４とを含む。
【００１９】
ＯＳ４３８は、アプリケーション・プログラム４４４などのリソースへの透過的なユーザ・アクセスを可能にするためのシェル４４０を含む。一般に、シェル４４０は、インタープリタならびにユーザとオペレーティング・システムとの間のインターフェースを提供するプログラムである。より具体的には、シェル４４０は、コマンド行ユーザ・インターフェース内にまたはファイルから入力されたコマンドを実行する。したがって、シェル４４０（ＵＮＩＸ（商標）で呼ばれるもの）は、Ｗｉｎｄｏｗｓ（商標）ではコマンド・プロセッサとも呼ばれ、一般に、オペレーティング・システム・ソフトウェア階層の最高レベルであり、コマンド・インタープリタとして機能する。シェルは、システム・プロンプトを提供し、キーボード、マウス、またはその他のユーザ入力媒体によって入力されたコマンドを解釈し、処理のために解釈したコマンド（複数も可）をオペレーティング・システムの適切な下位レベル（たとえば、カーネル４４２）に送信する。シェル４４０はテキストベースで行指向（line-oriented）のユーザ・インターフェースであるが、本発明は図形、音声、ジェスチャなどのその他のユーザ・インターフェース・モードも等しく適切にサポートすることに留意されたい。
【００２０】
描写されている通り、ＯＳ４３８は、メモリ管理、プロセスおよびタスク管理、ディスク管理、ならびにマウスおよびキーボード管理を含む、ＯＳ４３８の他の部分およびアプリケーション・プログラム４４４によって必要とされる本質的なサービスの提供を含む、ＯＳ４３８に関する下位レベルの機能を含むカーネル４４２も含む。
【００２１】
アプリケーション・プログラム４４４はブラウザ４４６を含む。ブラウザ４４６は、ハイパーテキスト転送プロトコル（ＨＴＴＰ：HyperText Transfer Protocol）メッセージングを使用してワールド・ワイド・ウェブ（ＷＷＷ：World Wide Web）クライアント（すなわち、クライアント・コンピュータ４０２）がインターネットへのネットワーク・メッセージを送受信できるようにし、したがって、サービス・プロバイダ・サーバ５０２との通信を可能にするプログラム・モジュールおよび命令を含む。
【００２２】
クライアント・コンピュータ４０２のシステム・メモリ内のアプリケーション・プログラム４４４は動的加入探索プログラム（ＤＳＤＰ：Dynamic Subscription DiscoveryProgram）４４８も含む。ＤＳＤＰ４４８は、図２〜図３に記載されているプロセスを実現するためのコードを含む。一実施形態では、クライアント・コンピュータ４０２は、サービス・プロバイダ・サーバ５０２からＤＳＤＰ４４８をダウンロードすることができる。
【００２３】
クライアント・コンピュータ４０２内に描写されているハードウェア・エレメントは、網羅的であることが意図されておらず、むしろ本発明によって必要とされる本質的なコンポーネントを協調するための典型的なものである。たとえば、クライアント・コンピュータ４０２は、磁気カセット、デジタル・ビデオ・ディスク（ＤＶＤ：Digital Versatile Disk）、ベルヌーイ（Bernoulli）カートリッジなどの代替メモリ記憶装置を含むことができる。上記その他の変形例は、本発明の精神および範囲に含まれることが意図されている。
【００２４】
上記の通り、ＤＳＤＰ４４８は、図５に例示的な形式で示されているサービス・プロバイダ・サーバ５０２からクライアント・コンピュータ５０２にダウンロードすることができる。サービス・プロバイダ・サーバ５０２は、システム・バス５０６に結合されたプロセッサ・ユニット５０４を含む。ビデオ・アダプタ５０８もシステム・バス５０６に結合されている。ビデオ・アダプタ５０８はディスプレイ５１０を駆動／サポートする。システム・バス５０６は、バス・ブリッジ５１２を介して入出力（Ｉ／Ｏ）バス５１４に結合されている。入出力インターフェース５１６は入出力バス５１４に結合されている。入出力インターフェース５１６は、キーボード５１８、マウス５２０、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）ドライブ５２２、フレキシブル・ディスク・ドライブ５２４、およびフラッシュ・ドライブ・メモリ５２６を含む、様々な入出力装置との通信を提供する。入出力インターフェース５１６に接続されたポートのフォーマットは、ユニバーサル・シリアル・バス（ＵＳＢ）ポートを含むがこれに限定されない、コンピュータ・アーキテクチャの当業者にとって既知のものであれば、どのようなものでもよい。
【００２５】
サービス・プロバイダ・サーバ５０２は、システム・バス５０６に結合されたネットワーク・インターフェース５３０を使用して、ネットワーク４２８を介してクライアント・コンピュータ４０２と通信することができる。ネットワーク４２８へのアクセスにより、サービス・プロバイダ・サーバ５０２はＤＳＤＰ４４８を実行するかまたはＤＳＤＰ４４８をクライアント・コンピュータ４０２にダウンロードするかあるいはその両方を行うことができる。
【００２６】
システム・バス５０６は、ハード・ディスク５３４とのインターフェースを取るハード・ディスク・インターフェース５３２にも結合されている。好ましい一実施形態では、ハード・ディスク５３４は、同じくシステム・バス５０６に結合されているシステム・メモリ５３６にデータを追加する。システム・メモリ５３６に追加するデータとしては、シェル５４０とカーネル５４２とを含むサービス・プロバイダ・サーバ５０２のオペレーティング・システム５３８を含む。シェル５４０は、上位レベルのオペレーティング・システム層に組み込まれ、クライアント・コンピュータ４０２に配備可能なブラウザ５４６および上述のＤＳＤＰ４４８のコピーを含むアプリケーション・プログラム５４４などのリソースへの透過的なユーザ・アクセスを可能にするために使用される。
【００２７】
サービス・プロバイダ・サーバ５０２内に描写されているハードウェア・エレメントは、網羅的であることが意図されておらず、むしろ本発明によって必要とされる本質的なコンポーネントを協調するための典型的なものである。たとえば、サービス・プロバイダ・サーバ５０２は、フラッシュ・ドライブ、磁気カセット、デジタル・ビデオ・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジなどの代替メモリ記憶装置を含むことができる。上記その他の変形例は、本発明の精神および範囲に含まれることが意図されている。
【００２８】
本発明の好ましい一実施形態では、サービス・プロバイダ・サーバ５０２は本発明に関連する機能（ＤＳＤＰ４４８の実行を含む）のすべてを実行し、したがって、クライアント・コンピュータ４０２をしれ自体のリソースの使用から解放することにさらに留意されたい。
【００２９】
それに代わって、本発明の少なくともいくつかの態様は、プログラム（program product）を収容するコンピュータで使用可能な媒体で実現可能であることを理解されたい。本発明に関する機能を定義するプログラムは、非書込み可能記憶媒体（たとえば、ＣＤ−ＲＯＭ）、書込み可能記憶媒体（たとえば、ハード・ディスク・ドライブ、読取り／書込みＣＤ−ＲＯＭ、光メディア）、ランダム・アクセス・メモリ（ＲＡＭ）などのシステム・メモリであるがこれに限定されないもの、ならびにイーサネット、インターネット、ワイヤレス・ネットワーク、および同様のネットワーク・システムを含むコンピュータ・ネットワークおよび電話網などの通信媒体を無制限に含む、様々な信号伝送媒体を介してデータ記憶システムまたはコンピュータ・システムに配布することができる。したがって、このような信号伝送媒体は、本発明で方法機能を指示するコンピュータ可読命令を伝達するかまたはコード化するときに、本発明の代替諸実施形態を表すことを理解されたい。さらに、本発明は、本明細書に記載したハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組み合わせあるいはそれらと同等のものの形をした手段を有するシステムによって実現可能であることは言うまでもないことである。
【００３０】
ソフトウェア配備
したがって、本明細書に記載した方法、特に図２〜図３に示し記載した方法は、サービス・プロバイダ・サーバ５０２（図５に示す）からクライアント・コンピュータ４０２（図４に示す）にプロセス・ソフトウェアとして配備することができる。
【００３１】
次に、図６〜図７を参照すると、ステップ６００はプロセス・ソフトウェアの配備を開始する。第１に、プロセス・ソフトウェアが実行されるときに１つまたは複数のサーバ上に常駐することになるプログラムが存在するかどうかを判断する（照会ブロック６０２）。これに該当する場合、実行可能コードを含むことになるサーバが識別される（ブロック６０４）。この１つまたは複数のサーバに関するプロセス・ソフトウェアは、ファイル転送プロトコル（ＦＴＰ：File Transfer Protocol）または他の何らかのプロトコルを介してあるいは共用ファイル・システムの使用によるコピーにより、サーバの記憶装置に直接転送される（ブロック６０６）。次にプロセス・ソフトウェアがサーバ上にインストールされる（ブロック６０８）。
【００３２】
次に、１つまたは複数のサーバ上のプロセス・ソフトウェアに対してユーザにアクセスさせることによりプロセス・ソフトウェアを配備すべきかどうかに関する判断が行われる（照会ブロック６１０）。ユーザがサーバ上のプロセス・ソフトウェアにアクセスすべきである場合、プロセス・ソフトウェアを保管することになるサーバ・アドレスが識別される（ブロック６１２）。
【００３３】
プロセス・ソフトウェアを保管するためにプロキシ・サーバを構築すべきかどうかの判断が行われる（照会ブロック６１４）。プロキシ・サーバは、Ｗｅｂブラウザなどのクライアント・アプリケーションと実サーバとの間に位置するサーバである。これは、実サーバに対するすべての要求を解釈し、それ自体がその要求を履行できるかどうかを確認する。履行できない場合、その要求を実サーバに転送する。プロキシ・サーバの２つの主な利点は、パフォーマンスを改善することと、要求をフィルタに掛けることである。プロキシ・サーバが必要である場合、そのプロキシ・サーバがインストールされる（ブロック６１６）。プロセス・ソフトウェアは、ＦＴＰなどのプロトコルを介してサーバに送信されるか、またはファイル共用を介してソース・ファイルからサーバ・ファイルに直接コピーされる（ブロック６１８）。他の実施形態では、プロセス・ソフトウェアを収容しているサーバにトランザクションを送信し、サーバにそのトランザクションを処理させ、プロセス・ソフトウェアを受信してそれをサーバのファイル・システムにコピーすることになるであろう。プロセス・ソフトウェアがサーバに保管されると、ユーザはそのクライアント・コンピュータを介してサーバ上のプロセス・ソフトウェアにアクセスし、そのクライアント・コンピュータのファイル・システムにコピーする（ブロック６２０）。他の実施形態では、サーバにプロセス・ソフトウェアを各クライアントに自動的にコピーさせ、各クライアント・コンピュータでそのプロセス・ソフトウェア用のインストール・プログラムを実行させることになる。ユーザは、自分のクライアント・コンピュータ上でプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック６２２）、次にプロセスを終了する（ターミネータ・ブロック６２４）。
【００３４】
照会ステップ６２６では、電子メールを介してユーザにプロセス・ソフトウェアを送信することにより、プロセス・ソフトウェアを配備すべきかどうかの判断が行われる。プロセス・ソフトウェアが配備されることになるユーザ・セットは、ユーザのクライアント・コンピュータのアドレスによってまとめて識別される（ブロック６２８）。プロセス・ソフトウェアは、ユーザのクライアント・コンピュータのそれぞれに電子メールを介して送信される（ブロック６３０）。次に、ユーザは電子メールを受信し（ブロック６３２）、電子メールから自分のクライアント・コンピュータ上のディレクトリにプロセス・ソフトウェアを切り離す（ブロック６３４）。ユーザは、自分のクライアント・コンピュータ上でプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック６２２）、次にプロセスを終了する（ターミネータ・ブロック６２４）。
【００３５】
最後に、プロセス・ソフトウェアがユーザのクライアント・コンピュータ上のユーザ・ディレクトリに直接送信されることになるどうかに関する判断が行われる（照会ブロック６３６）。送信される場合、ユーザ・ディレクトリが識別される（ブロック６３８）。プロセス・ソフトウェアはユーザのクライアント・コンピュータのディレクトリに直接転送される（ブロック６４０）。これは、ファイル・システム・ディレクトリを共用し、次に送信側のファイル・システムから受信側ユーザのファイル・システムにコピーすること、あるいはそれに代わって、ファイル転送プロトコル（ＦＴＰ）などの転送プロトコルを使用することなどのいくつかの方法であるがこれらに限定されないもので実行することができる。ユーザは、プロセス・ソフトウェアのインストールに備えて自分のクライアント・ファイル・システム上のディレクトリにアクセスする（ブロック６４２）。ユーザは、自分のクライアント・コンピュータ上でプロセス・ソフトウェアをインストールするプログラムを実行し（ブロック６２２）、次にプロセスを終了する（ターミネータ・ブロック６２４）。
【００３６】
ＶＰＮ配備
本発明のソフトウェアは、第三者のＶＰＮサービスが安全な配備手段（secure deployment vehicle）として提供される場合またはＶＰＮが具体的な配備のために必要に応じてオンデマンドで構築される場合に、サービスの一部として第三者に配備することができる。
【００３７】
仮想私設網（ＶＰＮ）は、さもなければ無保護または信頼されないネットワークによる接続を保護するために使用できる技術を任意に組み合わせたものである。ＶＰＮは、セキュリティを改善し、運用コストを削減する。ＶＰＮは、複数のリモート・サイトまたはユーザをまとめて接続するために、公衆網、通常はインターネットを使用する。専用回線などの専用の実世界接続を使用する代わりに、ＶＰＮは、インターネットを介して企業の私設網からリモート・サイトまたは従業員に経路指定された「仮想」接続を使用する。ＶＰＮの存続期間が支払額に基づいて所与の期間または所与の配備数に限られている場合、ＶＰＮによるソフトウェアへのアクセスは、プロセス・ソフトウェアの配布または実行のためにＶＰＮを具体的に構築することにより（すなわち、ソフトウェアは他の場所に常駐する）、１つのサービスとして提供することができる。
【００３８】
プロセス・ソフトウェアは、リモート・アクセスＶＰＮまたはサイト間（site-to-site）ＶＰＮにより配備し、アクセスし、実行することができる。リモート・アクセスＶＰＮを使用する場合、プロセス・ソフトウェアは、第三者のサービス・プロバイダによる企業の私設網とリモート・ユーザとの間の安全な暗号化接続を介して配備し、アクセスし、実行される。エンタープライズ・サービス・プロバイダ（ＥＳＰ：enterprise service provider）は、ネットワーク・アクセス・サーバ（ＮＡＳ：network access server）を設定し、自分のコンピュータ用のデスクトップ・クライアント・ソフトウェアをリモート・ユーザに提供する。在宅勤務者は、フリーダイヤル番号にダイヤルするかあるいはケーブルまたはＤＳＬモデムを介して直接接続してＮＡＳに到達し、自分のＶＰＮクライアント・ソフトウェアを使用して企業ネットワークにアクセスし、プロセス・ソフトウェアにアクセスし、それをダウンロードして実行することができる。
【００３９】
サイト間ＶＰＮを使用する場合、プロセス・ソフトウェアは、インターネットなどの公衆網により企業の複数の固定サイト同士を接続するために使用される専用機器および大規模暗号化の使用により配備し、アクセスし、実行される。
【００４０】
プロセス・ソフトウェアは、１つのパケット全体を他のパケット内に入れ、それをネットワークにより送信するプロセスであるトンネリング（tunneling）を介してＶＰＮによりトランスポートされる。外側のパケットのプロトコルは、ネットワークと、そのパケットがネットワークに出入りするトンネル・インターフェースと呼ばれる両方のポイントによって理解される。
【００４１】
このようなＶＰＮ配備のためのプロセスは図８〜図１０に記載されている。イニシエータ・ブロック７０２は仮想私設網（ＶＰＮ）プロセスを開始する。リモート・アクセス用のＶＰＮが必要であるかどうかを確認するための判断が行われる（照会ブロック７０４）。必要ではない場合、照会ブロック７０６に移行する。必要である場合、リモート・アクセスＶＰＮが存在するかどうかを判断する（照会ブロック７０８）。
【００４２】
リモート・アクセスＶＰＮが存在する場合、ブロック７１０に移行する。存在しない場合、企業の私設網と企業のリモート・ユーザとの間の安全な暗号化接続を提供することになる第三者プロバイダを識別する（ブロック７１２）。企業のリモート・ユーザが識別される（ブロック７１４）。次に、第三者プロバイダは、ネットワーク・アクセス・サーバ（ＮＡＳ）をセットアップし（ブロック７１６）、それによりリモート・ユーザがフリーダイヤル番号にダイヤルするかあるいはブロードバンド・モデムを介して直接接続して、リモート・アクセスＶＰＮ用のデスクトップ・クライアント・ソフトウェアにアクセスし、それをダウンロードしてインストールできるようにする（ブロック７１８）。
【００４３】
リモート・アクセスＶＰＮが構築された後またはそれが前にインストールされている場合、リモート・ユーザは、ＮＡＳにダイヤルするかあるいはケーブルまたはＤＳＬモデムを介してＮＡＳ内に直接接続することにより、プロセス・ソフトウェアにアクセスすることができる（ブロック７１０）。これにより、プロセス・ソフトウェアがアクセスされる企業ネットワーク内に入ることができる（ブロック７２０）。プロセス・ソフトウェアは、トンネリングを介してネットワークによりリモート・ユーザのデスクトップにトランスポートされる。すなわち、プロセス・ソフトウェアは複数パケットに分割され、データとプロトコルとを含む各パケットは他のパケット内に入れられる（ブロック７２２）。プロセス・ソフトウェアは、リモート・ユーザのデスクトップに到着すると、パケットから除去され、再構成され、リモート・ユーザのデスクトップ上で実行される（ブロック７２４）。
【００４４】
次に、サイト間アクセス用のＶＰＮが必要であるかどうかを確認するための判断が行われる（照会ブロック７０６）。必要ではない場合、プロセスの終了に移行する（ターミネータ・ブロック７２６）。必要である場合、サイト間ＶＰＮが存在するかどうかを判断する（照会ブロック７２８）。サイト間ＶＰＮが存在する場合、ブロック７３０に移行する。存在しない場合、サイト間ＶＰＮを確立するために必要な専用機器をインストールする（ブロック７３８）。次に、ＶＰＮ内に大規模暗号化を構築する（ブロック７４０）。
【００４５】
サイト間ＶＰＮが構築された後またはそれが前に確立されている場合、ユーザは、ＶＰＮを介してプロセス・ソフトウェアにアクセスする（ブロック７３０）。プロセス・ソフトウェアは、トンネリングを介してネットワークによりサイト・ユーザにトランスポートされる（ブロック７３２）。すなわち、プロセス・ソフトウェアは複数パケットに分割され、データとプロトコルとを含む各パケットは他のパケット内に入れられる（ブロック７３４）。プロセス・ソフトウェアは、リモート・ユーザのデスクトップに到着すると、パケットから除去され、再構成され、サイト・ユーザのデスクトップ上で実行される（ブロック７３６）。次に、プロセスはターミネータ・ブロック７２６で終了する。
【００４６】
ソフトウェア統合
本明細書に記載したプロセスを実現するためのコードから構成されるプロセス・ソフトウェアは、アプリケーション、オペレーティング・システム、およびネットワーク・オペレーティング・システムのソフトウェアと共存するようにプロセス・ソフトウェアを準備し、プロセス・ソフトウェアが機能する環境内のクライアントおよびサーバ上にプロセス・ソフトウェアをインストールすることにより、クライアント、サーバ、およびネットワーク環境に統合することができる。
【００４７】
第１のステップは、プロセス・ソフトウェアが配備されることになるネットワーク・オペレーティング・システムを含み、プロセス・ソフトウェアによって必要とされるかまたはプロセス・ソフトウェアとともに機能するクライアントおよびサーバ上にあるソフトウェアを識別することである。これは、ネットワーキング機能を追加することにより基本オペレーティング・システムを強化するソフトウェアであるネットワーク・オペレーティング・システムを含む。
【００４８】
次に、ソフトウェア・アプリケーションおよびバージョン番号が識別され、プロセス・ソフトウェアとともに機能するようテストされたソフトウェア・アプリケーションおよびバージョン番号のリストと比較されることになる。欠落しているかまたは正しいバージョンと一致しないソフトウェア・アプリケーションは、正しいバージョン番号でアップグレードされる。パラメータ・リストがプロセス・ソフトによって必要とされるパラメータ・リストと一致することを保証するために、プロセス・ソフトウェアからソフトウェア・アプリケーションにパラメータを渡すプログラム命令がチェックされる。逆に、パラメータがプロセス・ソフトウェアによって必要とされるパラメータと一致することを保証するために、ソフトウェア・アプリケーションからプロセス・ソフトウェアに渡されるパラメータがチェックされる。ネットワーク・オペレーティング・システムを含むクライアントおよびサーバ・オペレーティング・システムが識別され、プロセス・ソフトウェアとともに機能するようテストされたオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアのリストと比較されることになる。テストされたオペレーティング・システムおよびバージョン番号のリストと一致しないオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアは、クライアントおよびサーバ上で必要なレベルまでアップグレードされる。
【００４９】
プロセス・ソフトウェアが配備されるソフトウェアがプロセス・ソフトウェアとともに機能するようテストされた正しいバージョン・レベルにあることを保証した後、クライアントおよびサーバ上にプロセス・ソフトウェアをインストールすることによって統合が完了する。
【００５０】
このプロセスの高レベルの記述のために、次に図１１〜図１２を参照する。イニシエータ・ブロック８０２はプロセス・ソフトウェアの統合を開始する。第１に、１つまたは複数のサーバ上で実行されることになるプロセス・ソフトウェア・プログラムが存在するかどうかを判断する（ブロック８０４）。これに該当しない場合、統合は照会ブロック８０６に移行する。これに該当する場合、サーバ・アドレスが識別される（ブロック８０８）。プロセス・ソフトウェアによってテストされたオペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）をそれぞれのバージョン番号とともに含むソフトウェアを収容しているかどうかを確認するためにサーバがチェックされる（ブロック８１０）。また、ブロック８１０でプロセス・ソフトウェアによって必要とされるソフトウェアのうち、欠落しているものがあるかどうかを判断するためにもサーバがチェックされる。
【００５１】
バージョン番号がプロセス・ソフトウェアによってテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号と一致するかどうかの判断が行われる（ブロック８１２）。すべてのバージョンが一致し、必要なソフトウェアがいずれも欠落していない場合、統合は照会ブロック８０６で続行される。
【００５２】
１つまたは複数のバージョン番号が一致しない場合、一致しないバージョンは１つまたは複数のサーバ上で正しいバージョンによって更新される（ブロック８１４）。さらに、必要なソフトウェアが欠落している場合、それはブロック８１４に示すステップで１つまたは複数のサーバ上で更新される。サーバ統合は、プロセス・ソフトウェアをインストールすることによって完了する（ブロック８１６）。
【００５３】
照会ブロック８０６に示すステップは、ブロック８０４、８１２、または８１６に示すいずれかのステップに続くものであり、クライアント上で実行されることになるプロセス・ソフトウェアのプログラムが存在するかどうかを判断する。いかなるプロセス・ソフトウェア・プログラムもクライアント上で実行されない場合、統合はターミネータ・ブロック８１８に移行し、終了する。これに該当しない場合、ブロック８２０に示す通り、クライアント・アドレスが識別される。
【００５４】
プロセス・ソフトウェアによってテストされたオペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）をそれぞれのバージョン番号とともに含むソフトウェアを収容しているかどうかを確認するためにクライアントがチェックされる（ブロック８２２）。また、ブロック８２２によって記載されたステップでプロセス・ソフトウェアによって必要とされるソフトウェアのうち、欠落しているものがあるかどうかを判断するためにもクライアントがチェックされる。
【００５５】
バージョン番号がプロセス・ソフトウェアによってテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号と一致するかどうかの判断が行われる（照会ブロック８２４）。すべてのバージョンが一致し、必要なソフトウェアがいずれも欠落していない場合、統合はターミネータ・ブロック８１８に移行し、終了する。
【００５６】
１つまたは複数のバージョン番号が一致しない場合、一致しないバージョンはクライアント上で正しいバージョンによって更新される（ブロック８２６）。加えて、必要なソフトウェアが欠落している場合、それはクライアント上で更新される（同じくブロック８２６）。クライアント統合は、クライアント上でプロセス・ソフトウェアをインストールすることによって完了する（ブロック８２８）。統合はターミネータ・ブロック８１８に移行し、終了する。
【００５７】
オンデマンド
プロセス・ソフトウェアは共用され、柔軟な自動化方式で複数のカスタマに同時に供応する。これは標準化され、カスタマイズをほとんど必要とせず、スケーラブルであって、従量料金制度（pay-as-you-go）モデルでオンデマンドで容量を提供する。
【００５８】
プロセス・ソフトウェアは、１つまたは複数のサーバからアクセス可能な共用ファイル・システム上に保管することができる。プロセス・ソフトウェアは、データとアクセスされたサーバ上のＣＰＵ単位（CPU unit）を使用するサーバ処理要求とを含むトランザクションを介して実行される。ＣＰＵ単位とは、サーバの中央演算処理装置上の分数、秒数、時間数などの時間単位である。さらに、アクセスされたサーバは、ＣＰＵ単位を必要とする他のサーバの要求を行うことができる。ＣＰＵ単位は、１つの使用測定値（measurement of use）のみを表す一例である。その他の使用測定値としては、ネットワーク帯域幅、メモリ使用率、記憶域使用率、パケット転送、完全なトランザクションなどを含むがこれらに限定されない。
【００５９】
複数のカスタマが同じプロセス・ソフトウェア・アプリケーションを使用する場合、それぞれのトランザクションは、トランザクションに含まれるパラメータのうち、固有のカスタマおよびそのカスタマ用のサービスのタイプを識別するパラメータによって区別される。各カスタマ用のサービスに使用されるＣＰＵ単位およびその他の使用測定値のすべてが記録される。任意の１つのサーバへのトランザクションの数がそのサーバのパフォーマンスに影響を及ぼし始める数に到達すると、容量を増加し、ワークロードを分担するために、他のサーバがアクセスされる。同様に、ネットワーク帯域幅、メモリ使用率、記憶域使用率などのその他の使用測定値がパフォーマンスに影響を及ぼすほど容量に近づくと、ワークロードを分担するために追加のネットワーク帯域幅、メモリ使用率、記憶域などが追加される。
【００６０】
各サービスおよびカスタマに使用される使用測定値は、プロセス・ソフトウェアの共用実行を提供するサーバのネットワーク内のどこかで処理された各サービスごとに各カスタマに関する使用測定値を合計する収集サーバに送信される。合計された使用単位の測定値には定期的に単価が掛けられ、その結果得られるプロセス・ソフトウェア・アプリケーション・サービスの総コストは、それに代わってカスタマに送信されるかまたはカスタマによってアクセスされたＷｅｂサイト上に示され、その後、カスタマはサービス・プロバイダに支払額を送金する。
【００６１】
他の実施形態では、サービス・プロバイダは、銀行または金融機関にあるカスタマ口座（customer account）から直接支払を要求する。
【００６２】
他の実施形態では、サービス・プロバイダもプロセス・ソフトウェア・アプリケーションを使用するカスタマのカスタマである場合、支払額の移転を最小限にするために、サービス・プロバイダに支払うべき支払額はサービス・プロバイダが支払うべき支払額に調整される。
【００６３】
次に、図１３〜図１４に関して説明すると、イニシエータ・ブロック９０２はオンデマンド・プロセスを開始する。固有のカスタマＩＤと、要求されたサービス・タイプと、サービスのタイプをさらに指定する任意のサービス・パラメータとを含むトランザクションが作成される（ブロック９０４）。次に、トランザクションがメイン・サーバに送信される（ブロック９０６）。オンデマンド環境では、メイン・サーバは最初は唯一のサーバである可能性があり、その後、容量が消費されるにつれて、他のサーバがオンデマンド環境に追加される。
【００６４】
オンデマンド環境内のサーバの中央演算処理装置（ＣＰＵ）の容量に対して照会が行われる（ブロック９０８）。トランザクションのＣＰＵ要件が見積もられ、次にオンデマンド環境内のサーバ使用可能ＣＰＵ容量がトランザクションのＣＰＵ要件と比較され、トランザクションを処理するために任意のサーバ内に十分なＣＰＵ使用可能容量が存在するかどうかを確認する（ブロック９１０）。十分なサーバＣＰＵ使用可能容量が存在しない場合、トランザクションを処理するために追加のサーバＣＰＵ容量が割り振られる（ブロック９１２）。すでに十分な使用可能ＣＰＵ容量が存在していた場合、トランザクションは選択されたサーバに送信される（ブロック９１４）。
【００６５】
トランザクションを実行する前に、その環境がトランザクションを処理するために十分な使用可能容量を備えているかどうかを判断するために、残りのオンデマンド環境についてチェックが行われる。この環境容量は、ネットワーク帯域幅、プロセッサ・メモリ、記憶域などであるがこれらに限定されないものから構成される（ブロック９１６）。十分な使用可能容量が存在しない場合、オンデマンド環境に容量が追加される（ブロック９１８）。次に、トランザクションを処理するために必要なソフトウェアがアクセスされ、メモリにロードされ、次にトランザクションが実行される（ブロック９２０）。
【００６６】
使用状況測定値（usage measurement）が記録される（ブロック９２２）。使用状況測定値は、トランザクションを処理するために使用される、オンデマンド環境内の機能の一部分から構成される。記録されるものは、ネットワーク帯域幅、プロセッサ・メモリ、記憶域、およびＣＰＵサイクルなどの機能であるがこれらに限定されないものの使用状況である。使用状況測定値は、合計され、単価が掛けられ、要求側カスタマへの課金として記録される（ブロック９２４）。
【００６７】
オンデマンド・コストをＷｅｂサイトにポストすることをカスタマが要求した場合（照会ブロック９２６）、オンデマンド・コストがポストされる（ブロック９２８）。オンデマンド・コストを電子メールを介してカスタマ・アドレスに送信することをカスタマが要求した場合（照会ブロック９３０）、これらのコストはカスタマに送信される（ブロック９３２）。オンデマンド・コストをカスタマ口座から直接支払うことをカスタマが要求した場合（照会ブロック９３４）、支払額がカスタマ口座から直接受信される（ブロック９３６）。次に、オンデマンド・プロセスはターミネータ・ブロック９３８で終了する。
【００６８】
好ましい一実施形態に関して本発明を詳細に示し説明してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに形式および詳細において様々な変更が可能であることを理解するであろう。さらに、本明細書および特許請求の範囲で使用する「コンピュータ」または「システム」または「コンピュータ・システム」または「コンピューティング・デバイス」という用語は、パーソナル・コンピュータ、サーバ、ワークステーション、ネットワーク・コンピュータ、メイン・フレーム・コンピュータ、ルータ、交換機（switch）、携帯情報端末（ＰＤＡ：Personal Digital Assistant）、電話、ならびにデータの処理、送信、受信、収集、または保管、あるいはこれらの組み合わせを行うことができる任意の他のシステムを含むがこれらに限定されない任意のデータ処理システムを含む。
【図面の簡単な説明】
【００６９】
【図１】従来技術の「公開および加入」アーキテクチャを示す図である。
【図２】複数のトピック・データ・ソースに同じメッセージを追加するために本発明で実行されるステップの「スイム・レーン」記述を示す図である。
【図３】ワイルドカードを使用して異なるトピック・データ・ソースにメッセージを送信するために本発明で実行される例示的なステップの流れ図である。
【図４】本発明を実現可能な例示的なクライアント・コンピュータを示す図である。
【図５】図４に示すクライアント・コンピュータのユーザのために、本発明を実行するためのソフトウェアの配備または実現あるいはその両方を行える例示的なサーバを示す図である。
【図６】図２〜図３に示し説明したステップを実行可能なソフトウェアを配備するために実行されるステップの流れ図である。
【図７】図２〜図３に示し説明したステップを実行可能なソフトウェアを配備するために実行されるステップの流れ図である。
【図８】図２〜図３に示し説明したステップを実行可能なソフトウェアを仮想私設網（ＶＰＮ）内に配備するために実行されるステップの流れ図である。
【図９】図２〜図３に示し説明したステップを実行可能なソフトウェアを仮想私設網（ＶＰＮ）内に配備するために実行されるステップの流れ図である。
【図１０】図２〜図３に示し説明したステップを実行可能なソフトウェアを仮想私設網（ＶＰＮ）内に配備するために実行されるステップの流れ図である。
【図１１】図２〜図３に示し説明したステップを実行可能なソフトウェアをコンピュータ・システムに統合するために実行されるステップを示す流れ図である。
【図１２】図２〜図３に示し説明したステップを実行可能なソフトウェアをコンピュータ・システムに統合するために実行されるステップを示す流れ図である。
【図１３】オンデマンド・サービス・プロバイダを使用して図２〜図３に示し説明したステップを実行するために実行されるステップを示す流れ図である。
【図１４】オンデマンド・サービス・プロバイダを使用して図２〜図３に示し説明したステップを実行するために実行されるステップを示す流れ図である。
【符号の説明】
【００７０】
４０２：クライアント・コンピュータ
４０４：プロセッサ・ユニット
４０６：システム・バス
４０８：ビデオ・アダプタ
４１０：ディスプレイ
４１２：バス・ブリッジ
４１４：入出力バス
４１６：入出力インターフェース
４１８：キーボード
４２０：マウス
４２２：ＣＤ−ＲＯＭドライブ
４２４：フレキシブル・ディスク・ドライブ
４２６：フラッシュ・ドライブ・メモリ
４２８：ネットワーク
４３０：ネットワーク・インターフェース
４３２：ハード・ディスク・インターフェース
４３４：ハード・ディスク
４３６：システム・メモリ
４３８：オペレーティング・システム
４４０：シェル
４４２：カーネル
４４４：アプリケーション・プログラム
４４６：ブラウザ
４４８：動的加入探索プログラム（ＤＳＤＰ）
５０２：サービス・プロバイダ・サーバ
【図１】
2007200308.tif 000003
【図２】
2007200308.tif 000004
【図３】
2007200308.tif 000005
【図４】
2007200308.tif 000006
【図５】
2007200308.tif 000007
【図６】
2007200308.tif 000008
【図７】
2007200308.tif 000009
【図８】
2007200308.tif 000010
【図９】
2007200308.tif 000011
【図１０】
2007200308.tif 000012
【図１１】
2007200308.tif 000013
【図１２】
2007200308.tif 000014
【図１３】
2007200308.tif 000015
【図１４】
2007200308.tif 000016