(57)【要約】  サーバサービスを、そのサービスを含む特別な拡張子を有する物理的ファイルにマップされるＵＲＬを介して公開する従来の手段を補足して、サービスに直接にマップされる擬似仮想パスが、サービスを要求するクライアントに提供される。擬似仮想パスは、パスが擬似仮想パスであることを識別する特殊トークンを含む。特殊トークンの後に続く内容は、例えば、サービスに関連する型情報を識別することにより、サービスに直接にマップされる。擬似仮想パスは、アプリケーションプログラミングインタフェースを介して生成されることが可能であり、クライアントに送られる前に、暗号化されることも可能である。
2009508251.tif 000002
【特許請求の範囲】
【請求項１】
サーバコンポーネント（１０４）と、クライアントコンポーネント（１０２）とを含む分散コンピューティングシステムにおいて、前記サーバ（１０４）によって提供されるサービス（１０５）を公開するためのコンピュータによって実施される方法であって、
前記サービス（１０５）を含む物理的ファイルにマップされるのではなく、前記サービス（１０５）に直接にマップされる擬似仮想パス（２４０）を、前記クライアント（１０２）に提供すること、
前記サービス（１０５）を求める要求（１１０）を前記クライアント（１０２）から受信すると、前記要求（１１０）が、前記擬似仮想パス（２４０）を含むかどうかを判定すること、および
前記要求（１１０）が、前記擬似仮想パス（２４０）を含む場合、前記擬似仮想パス（２４０）の中の情報に応じた前記サービス（１０５）を、前記クライアント（１０２）に提供することを含むことを特徴とする方法。
【請求項２】
前記擬似仮想パスは、パスが、前記サービスに直接にマップされる擬似仮想パスであることを示す特殊トークンを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記擬似仮想パスは、前記サービスを表す特殊シンタックスも含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記特殊シンタックスは、前記サービスの型情報を提供することを特徴とする請求項３に記載の方法。
【請求項５】
前記擬似仮想パスは、暗号化されることを特徴とする請求項３に記載の方法。
【請求項６】
前記擬似仮想パスにおける前記特殊シンタックスだけが、暗号化されることを特徴とする請求項５に記載の方法。
【請求項７】
前記擬似仮想パスにおける前記特殊トークンと前記特殊シンタックスがともに、暗号化されることを特徴とする請求項５に記載の方法。
【請求項８】
前記クライアントに擬似仮想パスを提供することは、
前記擬似仮想パスを生成すること、
前記擬似仮想パスをプロキシクラスの中に含めること、および
前記プロキシクラスを求める要求を前記クライアントから受信すると、前記プロキシクラスを前記クライアントに提供することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記サービスに関する前記擬似仮想パスを生成することは、前記サービスをパラメータとして使用してアプリケーションプログラミングインタフェースを呼び出すことを含み、前記アプリケーションプログラミングインタフェースは、前記擬似仮想パスを生成して、戻すことを特徴とする請求項８に記載の方法。
【請求項１０】
前記プロキシクラスは、前記サーバによって公開される少なくとも１つのサービスを識別することを特徴とする請求項８に記載の方法。
【請求項１１】
サーバ（１０４）上の公開されるサービス（１０５）に関する擬似仮想パス（２４０）を生成することと関係するファンクションを含む１つまたは複数のコンピュータ可読媒体上に実現されたアプリケーションプログラミングインタフェースであって、前記擬似仮想パス（２４０）は、前記サービス（１０５）を含む前記サーバ（１０４）上の物理的ファイルにマップされるのではなく、前記公開されるサービス（１０５）に直接にマップされることを特徴とするアプリケーションプログラミングインタフェース。
【請求項１２】
少なくとも１つのサービス（１０５）を提供するコンピュータシステムであって、
（ａ）メモリと、
（ｂ）前記サービス（１０５）に直接にマップされる擬似仮想パス（２４０）を提供するため（３０２）、前記サービスを求める要求（１１０）をクライアント（１０２）から受信すると、前記要求（１１０）が、前記擬似仮想パス（２４０）を含むかどうかを判定するため（３０６）、および前記要求（１１０）が、前記擬似仮想パス（２４０）を含む場合、前記擬似仮想パス（２４０）の中の情報に応じた前記サービス（１０５）を、前記クライアント（１０２）に提供するため（３１２）のコンピュータ実行可能命令を実行する、前記メモリに結合されたプロセッサとを含むことを特徴とするコンピュータシステム。
【請求項１３】
前記擬似仮想パスは、パスが、前記サービスに直接にマップされる擬似仮想パスであることを示す特殊トークンを含むことを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１４】
前記擬似仮想パスは、前記サービスを表す特殊シンタックスも含むことを特徴とする請求項１３に記載のコンピュータシステム。
【請求項１５】
前記特殊シンタックスは、前記サービスの型情報を提供することを特徴とする請求項１４に記載のコンピュータシステム。
【請求項１６】
前記擬似仮想パスは、暗号化されることを特徴とする請求項１４に記載のコンピュータシステム。
【請求項１７】
前記擬似仮想パスにおける前記特殊シンタックスだけが、暗号化されることを特徴とする請求項１６に記載のコンピュータシステム。
【請求項１８】
前記プロセッサは、前記サービスに直接にマップされる擬似仮想パスを提供することを、前記擬似仮想パスを生成すること、前記擬似仮想パスをプロキシクラスの中に含めること、および前記プロキシクラスを求める要求を前記クライアントから受信すると、前記プロキシクラスを前記クライアントに提供することによって行うためのコンピュータ実行可能命令を実行することを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１９】
前記プロセッサは、前記サービスをパラメータとして使用してアプリケーションプログラミングインタフェースを呼び出すことにより、前記サービスに関する前記擬似仮想パスを生成するためのコンピュータ実行可能命令を実行し、前記アプリケーションプログラミングインタフェースは、前記擬似仮想パスを生成して、戻すことを特徴とする請求項１８に記載のコンピュータシステム。
【請求項２０】
前記プロキシクラスは、前記サーバによって公開される少なくとも１つのサービスを識別することを特徴とする請求項１８に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ側サービスフレームワークに関する。
【背景技術】
【０００２】
クライアントコンポーネント（「クライアント」）と、サーバコンポーネント（「サーバ」）とを含むシステムにおいて、サーバは、クライアントが使用することが可能なサービスを公開することを望む可能性がある。従来は、サービスを公開するために、開発者は、サービスのための特別な拡張子を有する特別なファイルを書く。例えば、Ｍｉｃｒｏｓｏｆｔ．ＮＥＴ（商標）プラットフォームにおいて、サーバ上にＡＳＭＸファイルが存在する結果、或るＷｅｂサービスが公開され、特別な拡張子は、ＡＳＭＸである。Ｗｅｂサービスは、一般に、クライアントが、呼び出して、或る情報を得ることを可能にする、サーバ上に存在する１つまたは複数のメソッドを提供する。Ｗｅｂサービスは、通常、ＵＲＬの使用を介して呼び出される。例えば、ＵＲＬ、ｈｔｔｐ：／／ｗｗｗ．ｘｙｚ．ｃｏｍ／ａｐｐ／ｌｏｇｉｎ．ａｓｍｘは、ＸＹＺ．ｃｏｍに関するサーバ上のログインサービスにつながる。通常、このＵＲＬは、サーバ上に存在するＡＳＭＸファイルなどの、或る物理的ファイルを指し示す。クライアントは、サーバ上の、そのＡＳＭＸファイルにつながるＵＲＬを使用することにより、Ｗｅｂサービスを呼び出すことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
サービスを公開するための従来のメソッドを使用すると、そのサービスの開発者は、ＡＳＭＸファイル形式などの、特別なファイルのシンタックスを理解する必要がある。加えて、既存のサーバコードを、公開されたＷｅｂサービスに変換するのに、開発者は、その既存のサーバコードをＡＳＭＸシンタックスに変換する必要がある。このため、クライアントが使用するようにサービスを公開する従来の手段は、わずかとはいえない開発作業を要求する。
【０００４】
背景技術のセクションで既存のシステムのいくつかの問題点を例示し、説明してきたが、本明細書で主張される主題は、説明される問題点のいずれか、またはすべてを解決するための、いずれの特定の実施形態にも限定されないことが、当業者、およびその他の人々に認識されよう。
【課題を解決するための手段】
【０００５】
この概略は、詳細な説明において後段でさらに説明される選定された概念について、簡略化した形態で述べるように提供される。この概略は、主張される主題の重要な特徴を特定することは意図しておらず、また主張される主題の範囲を確定する際の助けとして使用されることも意図していない。
【０００６】
本発明の態様は、サービスの擬似仮想パスを提供することにより、サーバによってクライアントに提供されるサービスを公開するための従来の機構を補足する。擬似仮想パスは、開発者が、特別な拡張子を有する物理的ファイルを作成することなしに、或るサービスを公開することができるようにする。また、そのような擬似仮想パスは、そのサービスに関する情報が、不必要に公開される可能性がないように、暗号化されることも可能である。
【０００７】
本発明の一態様によれば、少なくとも１つのサーバと、１つのクライアントとを含む分散コンピューティング環境において、サーバ上のサービスが、そのサーバが、そのサービスに関する擬似仮想パスを生成することによって公開される。擬似仮想パスは、そのサービスを含む物理的ファイルではなく、そのサービスに直接にマップされる。好ましくは、そのサービスをパラメータとしてとり、そのサービスに関する擬似仮想パスを生成するアプリケーションプログラミングユーザインタフェースが、提供される。
【０００８】
好ましくは、公開されるサービスに関する擬似仮想パスは、サーバに関するプロキシクラスに組み込まれる。プロキシクラスは、サーバによって提供されるサービス、および、そのサービスをどのように呼び出すべきかに関する情報を明らかにすることが可能である。プロキシクラスは、公開されるサービスの記述および型情報を含むことが可能である。プロキシクラスは、例えば、公開されるサービスに関する擬似仮想パスまたは従来のパスを提供することにより、そのサービスにどのようにアクセスすべきかに関する情報を含むことが可能である。或るクライアントが、そのプロキシクラスを求める要求を送信すると、プロキシクラスは、そのクライアントに送信される。クライアントは、プロキシクラスを調べることにより、いずれのサービスを要求すべきかを識別することができる。クライアントは、プロキシクラスの中の、そのサービスに関するパスを使用して、そのサービスを要求することができる。
【０００９】
本発明の別の態様によれば、クライアントからサービス要求を受信すると、サーバは、そのサービス要求が擬似仮想パスを含むかどうかを判定する。サービス要求が、擬似仮想パスを含む場合、サーバは、その要求サービスをクライアントに直接に提供する。通常、擬似仮想パスは、そのパスが擬似仮想パスであることを示す特殊トークンを含む。その特殊トークンの後に続く、パスにおける内容は、サービスを表す特殊シンタックスである。したがって、或るサービス要求が擬似仮想パスを含むかどうかを判定する際、サーバは、パスが、その特殊トークンを含むかどうかを判定する。パスが、擬似仮想パスの存在を識別する特殊トークンを含む場合、サーバは、その特殊トークンの後に続く特殊シンタックスを、サービスを表す情報として扱う。好ましくは、サーバサービスの不必要な公開を防止するため、擬似仮想パスは、プロキシクラスに組み込まれる前に、暗号化されることが可能である。この暗号化は、特殊トークンだけを対象としても、特殊トークンと特殊シンタックスをともに対象としてもよい。
【００１０】
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて解釈されると、以下の詳細な説明を参照して、本発明が、よりよく理解されるにつれ、より容易に理解されよう。
【発明を実施するための最良の形態】
【００１１】
以下の文は、本発明の例示的な実施形態を例示し、説明する。しかし、本発明の趣旨および範囲を逸脱することなく、それらの実施形態に様々な変更が行われることが可能であることが、当業者には認識されよう。
【００１２】
本発明の実施形態は、少なくともプロセッサと、メモリとを含むコンピュータによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈で説明されることが可能である。一般に説明すると、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、ウィジェット、オブジェクト、コンポーネント、データ構造などが含まれる。また、本発明の実施形態は、コンピューティングサービスが、いくつかのエンティティ（「サーバ」）によって、他のエンティティ（「クライアント」）に提供される、分散コンピューティング環境において実施されることも可能である。これらのエンティティは、同一のコンピューティングシステムにローカルであってもよく、あるいは通信ネットワークを介してリンクされる。分散コンピューティング環境では、サービスを提供するプログラムモジュールは、ローカルコンピュータ記憶媒体上、および／またはリモートコンピュータ記憶媒体上に配置されることが可能である。
【００１３】
図１は、少なくとも１つのクライアント１０２と、少なくとも１つのサーバ１０４とを含む例示的な分散コンピューティングシステム１００を示す。サーバ１０４は、クライアント１０２が使用することができる、Ｗｅｂサービスなどの少なくとも１つの公開されるサービス１０５を提供する。Ｗｅｂサービスは、一般に、クライアントが、呼び出して、或る情報を得ることを可能にする、サーバ上に存在する１つまたは複数のメソッドを提供する。以下のコードは、サーバ１０４上で公開される例示的なＷｅｂサービス、ＳｉｍｐｌｅＳｅｒｖｉｃｅを示す。
【００１４】
【表１】
2009508251.tif 000003
【００１５】
サーバ１０４によって提供されるサービス１０５を公開するために、本発明の例示的な実施形態は、プロキシクラス１０８を使用する。プロキシクラス１０８は、クライアント１０２が使用するのに、どのようなサービスが利用可能かについての情報を含むことが可能である。また、プロキシクラス１０８は、サービス１０５の基本的説明、および、そのサービス１０５をどのように呼び出すべきかに関する情報を提供することも可能である。通常、プロキシクラス１０８は、サーバ１０４によって提供されるサービス１０５の表現をクライアント１０２に提供する。プロキシクラスは、サービス１０５に関連する型情報を記述する情報をさらに含むことが可能である。本発明の例示的な実施形態では、サーバ１０４上の、公開される各サービス１０５は、プロキシクラス１０８に関連付けられる。
【００１６】
本発明の例示的な実施形態では、サーバ１０４に関するプロキシクラス１０８へのリンクが、例えば、サーバ１０４によって提供される、公開されるサービス１０５を、クライアント１０２が使用する必要がある可能性があることを知っている、クライアント１０２の開発者により、クライアント１０２に提供される。このため、プロキシクラス１０８の中で記述されるサービス１０５を、クライアント１０２が使用する必要があると、クライアント１０２が判定すると、クライアント１０２は、そのリンクを使用して、そのプロキシクラスを求める要求１０６をサーバ１０４に送信する。すると、サーバ１０４は、プロキシクラス１０８を戻す。クライアント１０２は、プロキシクラス１０８を調べることにより、サーバ１０４によって何が提供されるかを特定する。この調査を介して、クライアント１０２は、公開されるサービス１０５を使用するために、どのようなメソッドをクライアント１０２が呼び出すことができるかを知る。次に、クライアント１０２は、プロキシクラス１０８の中で提供される情報を使用することにより、公開されるサービス１０５を求める要求１１０を行う。例えば、クライアント１０２は、公開されるサービス１０５によって提供される、或る特定のメソッドを呼び出すことができる。
【００１７】
以下のテキストは、公開されるサービス、ＳｉｍｐｌｅＳｅｒｖｉｃｅに関するプロキシクラス１０８の中の例示的な内容を示す。
【００１８】
【表２】
2009508251.tif 000004
【００１９】
本発明の実施形態では、サービス１０５などのサービスに関してプロキシクラス１０８の中に含まれる型情報は、サーバ１０４が、そのサービスを探し出す識別子を提供する。型情報は、例えば、そのサービスの型の名前、そのサービスにつながるＵＲＬ、および／またはそのサービスのメソッド名であることが可能である。例えば、前段で示される、公開されるサービス、ＳｉｍｐｌｅＳｅｒｖｉｃｅに関するプロキシクラス１０８の中の例示的な内容において、公開されるサービス、ＳｉｍｐｌｅＳｅｒｖｉｃｅに関する型情報は、型の名前、Ａｃｍｅ．ＳｉｍｐｌｅＳｅｒｖｉｃｅ、ＵＲＬ「／ａｐｐ／ＡｔｌａｓＳｅｒｖｉｃｅｓ／Ａｃｍｅ／ＳｉｍｐｌｅＳｅｒｖｉｃｅ．ａｓｍｘ」、およびメソッド名「Ｈｅｌｌｏｗ  Ｗｏｒｌｄ」を含む。
【００２０】
やはり、例示的なＳｉｍｐｌｅＳｅｒｖｉｃｅに関するプロキシクラス１０８の中の前述の例示的な内容において示されるとおり、プロキシクラス１０８は、サーバ１０４上の例示的なＳｉｍｐｌｅＳｅｒｖｉｃｅなどの、公開されるサービス１０５につながるパスを含む。本発明の実施形態において、公開されるサービス１０５につながるパスは、従来のパス、擬似仮想パス、または暗号化されたパスであることが可能である。図２Ａ〜図２Ｃは、３つのタイプのパスのそれぞれに関する例を提供する。
【００２１】
通常、従来のパスは、公開されるサービス１０５を含むサーバ１０４上の物理的ファイルにつながる。図２Ａは、例示的な従来のパス２００、ｈｔｔｐ：／／ｓｅｒｖｅｒ／ａｐｐ／ｆｏｌｄｅｒ／ＳｉｍｐｌｅＳｅｒｖｉｃｅ．ａｓｍｘを示す。この従来のパス２００は、サーバ１０４上の物理的ファイル、ＳｉｍｐｌｅＳｅｒｖｉｃｅ．ａｓｍｘを指し示す。
【００２２】
図２Ｂは、例示的な擬似仮想パス２４０を示す。外観では、擬似仮想パス２４０は、従来のパス２００と似通って見える。しかし、擬似仮想パス２４０は、従来のパス２００のように、物理的ファイルに実際にマップされはしない。擬似仮想パス２４０は、実際には、公開されるサービス１０５にマップされる。図２Ｂに示されるとおり、擬似仮想パス２４０は、特殊トークン２４２と、特殊シンタックス２４４とを含む。本発明の実施形態において、特殊トークン２４２、および特殊シンタックス２４４は、サーバ１０４が認識することができる任意のシンタックスまたはフォーマットで作成されることが可能である。例えば、本発明の一部の実施形態では、特殊トークン２４２と特殊シンタックス２４４は、１つのエンティティとして見え、ただし、サーバ１０４は、そのエンティティの中で特殊トークン２４２部分と、特殊シンタックス２４４部分とを認識することができる。例示的な公開されるサービス、ＳｉｍｐｌｅＳｅｒｖｉｃｅに関する例示的なプロキシクラスのための前述のコードは、例示的なＳｉｍｐｌｅＳｅｒｖｉｃｅに関する擬似仮想パスを示す。そのパスは、「／ａｐｐ／ＡｔｌａｓＳｅｒｖｉｃｅｓ／Ａｃｍｅ／ＳｉｍｐｌｅＳｅｒｖｉｃｅ．ａｓｍｘ」と書かれている。このパスにおける「ＡｔｌａｓＳｅｒｖｉｃｅｓ／Ａｃｍｅ」は、このパスが擬似仮想パスであることを示す特殊トークン２４２の役割をする。このパスにおける「ＳｉｍｐｌｅＳｅｒｖｉｃｅ．ａｓｍｘ」は、公開されるＳｉｍｐｌｅＳｅｒｖｉｃｅにマップされる例示的な特殊シンタックス２４４である。
【００２３】
本発明の実施形態において、パスにおける特殊トークン２４２の存在は、そのパスが、物理的ファイルのロケーションにつながる従来のパスの役割ではなく、擬似仮想パス２４０の役割をしていると、サーバ１０４が判定するに役立つ。特殊トークン２４２は、このパスにおける特殊トークン２４２の後に続く内容が、特殊シンタックス２４４であることを示す。特殊シンタックス２４４は、公開されるサービス１０５が何であるかについての記述を提供する。特殊シンタックス２４４は、擬似仮想パス２４０を、サーバ１０４上の物理的ファイルにマップしない。特殊シンタックスは、通常のパスと同じように見えるものの、通常、公開されるサービス１０５に関連する型情報を含む。例えば、型情報は、公開されるサービス１０５の型の名前を開示することが可能である。
【００２４】
平文として示されると、特殊シンタックス２４４の中で開示される型情報は、クライアント１０２が、全くアクセスを有するべきでないサービスメソッドについて、クライアント１０２が推測して、そのようなメソッドを呼び出すことを可能にする可能性がある。例えば、クライアント１０２は、ｈｔｔｐ：／／Ｓｅｒｖｅｒ／Ａｐｐ／Ｓｐｅｃｉａｌ＿Ｔｏｋｅｎ／Ｆｏｒｂｉｄｄｅｎ．ａｓｍｘによって提供されるサービスが、メソッド「Ｆｏｒｂｉｄｄｅｎ（）」を含む可能性があることを推測する可能性があり、クライアント１０２は、メソッド呼び出し「Ｆｏｒｂｉｄｄｅｎ（）」を生成し、現実に、メソッド「Ｆｏｒｂｉｄｄｅｎ（）」が、サービスによって提供されているが、クライアント１０２は、全くアクセスを有するべきではない。
【００２５】
サーバ情報の不必要な開示を防止するのに、本発明の例示的な実施形態は、擬似仮想パス２４０を暗号化する。図２Ｃは、例示的な暗号化されたパス２６０を示す。暗号化されたパス２６０は、従来のパス２００または擬似仮想パス２４０を含むことが可能である。本発明の例示的な実施形態では、暗号化された擬似仮想パスにおける暗号化された内容２６２は、公開されるサービス１０５に直接にマップされる特殊シンタックス２４４だけを含む。本発明の代替の実施形態では、暗号化された擬似仮想パスにおける暗号化された内容２６２は、特殊トークン２４２と特殊シンタックス２４４をともに含む。
【００２６】
本発明の例示的な実施形態では、公開されるサービス１０５を表すのにプロキシクラス１０８の中で、どのようなタイプのパスが使用されるか、例えば、従来のパスが使用されるか、または擬似仮想パスが使用されるかにかかわらず、クライアント１０２が、そのパスについて認識するのは、公開されるサービス１０５に関するＵＬＲだけである。クライアント１０２は、そのパス、すなわち、ＵＲＬをサーバ１０４に送信して、公開されるサービス１０５を要求する。サーバ１０４は、受信されたパスを解釈して、受信されたパスが、従来のパス２００であるか、擬似仮想パス２４０であるか、または暗号化されたパス２６０であるかを判定する。サーバ１０４は、パスにおける暗号化された情報を検出すると、その暗号化された情報を最初に解読する。次に、サーバ１０４は、その解読された情報を使用して、そのパスが、擬似仮想パスであるか、または従来のパスであるかを判定する。例えば、サーバ１０４が、受信されたパスにおいて特殊トークン２４２を検出した場合、サーバ１０４は、受信されたパスが、擬似仮想パス２４０であり、その特殊トークン２４２の後の内容が、公開されるサービス１０５に直接にマップされる特殊シンタックス２４４であると判定する。
【００２７】
図６に示されるとおり、本発明の例示的な実施形態では、サービス１０５が、クライアント１０２によって呼び出されることが可能であるように、サービス１０５を公開するのに、サービス１０５はまず、「ＡＰＩ」（アプリケーションプログラミングインタフェース）６００を介して登録される。ＡＰＩ６００は、サービス１０５に関する擬似仮想パス２４０を作成する。次に、その擬似仮想パス２４０が、サーバ１０４に関するプロキシクラス１０８の中に含められる。図１に示されるとおり、クライアント１０２が、そのプロキシクラス１０８を要求すると、サーバ１０４は、擬似仮想パス２４０を含むプロキシクラス１０８をクライアント１０２に送信する。このため、クライアント１０２は、擬似仮想パス２４０を使用して、公開されるサービス１０５にアクセスすることができる。
【００２８】
図３は、擬似仮想パスを使用してサーバサービスを公開するための例示的なプロセス３００を示す。通常、プロセス３００は、サーバ上で公開される各サービスに関する擬似仮想パスを生成する。公開されるサービスを求める要求をクライアントから受信すると、サーバは、その要求が、擬似仮想パスを含むか、または従来のパスを含むかを判定し、それに応じて、公開されるサービスを供給する。本発明の例示的な実施形態では、図示されるとおり、プロセス３００は、サーバ上の公開されるサービスに関する擬似仮想パスを生成して、可能なクライアントに提供するルーチン３０２を実行することから始まる。図４は、ルーチン３０２の例示的な実施形態を示し、後段で詳細に説明する。代替として、公開されるサービスに関する可能なクライアントは、そのサービスに至る従来のパスを受信してもよい。公開されるサービスにアクセスすることを望むクライアントは、そのサービスを求める要求をサーバに送信する。そのような要求は、擬似仮想パス、従来のパス、あるいは擬似仮想パスまたは従来のパスを含む暗号化されたパスを含むことが可能である。したがって、サーバが、クライアントからサービス要求を受信したと判定すると（判定ブロック３０４を参照）、プロセス３００は、受信されたサービス要求が擬似仮想パスを含むかどうかを判定する別のルーチン３０６を実行することに進む。ブロック３０６を参照されたい。図５は、ルーチン３０６の例示的な実施形態を示し、後段で詳細に説明される。
【００２９】
ルーチン３０６を実行した後、プロセス３００は、クライアントからのサービス要求が、擬似仮想パスを含むかどうかを判定することに進む。判定ブロック３０８を参照されたい。判定ブロック３０８の答えが「いいえ」である場合、プロセス３００は、公開されるサービスに関する物理的ファイルにマップされる従来のパスを含むものとして、そのサービス要求を扱うことに進み、その物理的ファイルをクライアントに提供する。ブロック３１０を参照されたい。その後、プロセス３００は、終了する。判定ブロック３０８の答えが「はい」である場合、サービス要求は、擬似仮想パスを含み、プロセス３００は、その擬似仮想パスの特殊シンタックスにおいて表されるサービスをクライアントに提供することに進む。ブロック３１２を参照されたい。その後、プロセス３００は、終了する。
【００３０】
図４は、サーバ上で公開されるサービスを使用することを意図する任意のクライアントに擬似仮想パスを提供するための例示的なルーチン３０２を示す。ルーチン３０２はまず、公開されるサーバサービスに関する擬似仮想パスを生成する。ブロック４０２を参照されたい。本発明の実施形態において、擬似仮想パスは、様々な手段によって生成されることが可能である。例えば、前述したとおり、公開されるサービスが、そのサービスに関する擬似仮想パスを作成するＡＰＩに送られることが可能である。代替として、擬似仮想パスは、手作業で、またはスクリプトによって作成されることが可能である。
【００３１】
次に、ルーチン３０２は、サービスに関する擬似仮想パスを、サーバによって提供されるサービスを記述するプロキシクラスの中に含める。ブロック４０４を参照されたい。前述したとおり、プロキシクラスは、サーバ上のどのようなサービスが、クライアントが使用するように利用可能であるかについての情報も含むことが可能である。また、プロキシクラスは、サービスの基本的説明、およびサービスをどのように呼び出すべきかについての情報も含むことが可能である。プロキシクラスは、サービスに関連する型情報をさらに含むことが可能である。本発明の例示的な実施形態において、クライアントが、或るサーバに、そのサーバによって提供されるサービスを求める可能性がある場合、そのクライアントの開発者は、そのクライアントに、そのサーバに関するプロキシクラスへのリンクを埋め込む。そのクライアントが、そのサーバによって提供されるサービスを使用することを意図する場合、クライアントは、そのプロキシクラスへのリンクを使用して、そのプロキシクラスを求める要求をサーバに送信する。したがって、ルーチン３０２は、そのプロキシクラスを求める要求をクライアントから受信すると、そのプロキシクラスをクライアントに提供する。ブロック４０６を参照されたい。次に、クライアントは、サービスに関するプロキシクラスの中で提供される情報を使用して、サービス要求をサーバに送信することができる。当業者には認識されるとおり、例示的なルーチン３０２は、公開されるサーバサービスに関する擬似仮想パスを提供する例示的な手段を提供するに過ぎない。代替の手段には、例えば、スクリプトを使用して、公開されるサーバサービスに関する擬似仮想パスを生成して、サーバ上の公開されるサービスを求める要求をクライアントから受信すると、その擬似仮想パスを供給することが含まれることが可能である。
【００３２】
図５は、クライアントによって送信されたサービス要求が、擬似仮想パスを含むかどうかを判定する例示的なルーチン３０６を示す。ルーチン３０６は、サービス要求を解析することから始まる。ブロック５０２を参照されたい。次に、ルーチン３０６は、サービス要求が、暗号化された内容を含むかどうかを判定する。ブロック５０４を参照されたい。サービス要求が、暗号化された内容を含む場合、ルーチン３０６は、その暗号化された内容を解読することに進む。ブロック５０６を参照されたい。判定ブロック５０４の答えが、サービス要求が平文を含むことを意味する「いいえ」である場合、またはルーチン３０６が、暗号化された内容を解読している場合、ルーチン３０６は、サービス要求が、擬似仮想パスの存在を示す特殊トークンを含むかどうかを判定することに進む。ブロック５０８を参照されたい。判定ブロック５０８の答えが、サービス要求が擬似仮想パスを含むことを意味する「はい」である場合、ルーチンは、「真」を戻し、終了する。ブロック５１２を参照されたい。判定ブロック５０８の答えが、サービス要求が擬似仮想パスを含まないことを意味する「いいえ」である場合、ルーチン３０６は、「偽」を戻し、終了する。ブロック５１０を参照されたい。
【００３３】
要約すると、本発明の実施形態は、サーバによって公開されるサービスにクライアントがアクセスする別のアプローチを提供する。擬似仮想パスアプローチは、開発者が、サーバサービスを、そのサービスに関して特別な拡張子を有する特別なファイルを書くことなしに、公開することを可能にする。このため、開発者は、特別なファイルのシンタックスを理解する必要なしに、または既存のサービスコードを、特別なファイルのシンタックスに変換する必要なしに、サーバサービスを公開することができる。その結果、擬似仮想パスアプローチは、サーバサービスを公開するために必要とされる開発作業を減らす。
【００３４】
本発明の態様を、構造上の特徴、および／または方法上の動作に特有の言い回しで説明してきたが、添付の特許請求の範囲において定義される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
【図面の簡単な説明】
【００３５】
【図１】クライアントとサーバとの間の例示的な対話を示すブロック図である。
【図２Ａ】公開されるサーバサービスにつながる例示的な従来のパスを示すブロック図である。
【図２Ｂ】公開されるサーバサービスにつながる例示的な擬似仮想パスを示す図である。
【図２Ｃ】公開されるサーバサービスにつながる例示的な暗号化されたパスを示すブロック図である。
【図３】サーバサービスを公開するための例示的なプロセスを示す流れ図である。
【図４】図３で使用するのに適した、公開されるサービスへの擬似仮想パスマッピングを提供するための例示的なルーチンを示す流れ図である。
【図５】図３で使用するのに適した、サービス要求が擬似仮想パスを含むかどうかを判定するための例示的なルーチンを示す流れ図である。
【図６】擬似仮想パスを生成するための例示的なアプリケーションプログラミングインタフェースを示すブロック図である。
【図１】
2009508251.tif 000005
【図２Ａ】
2009508251.tif 000006
【図２Ｂ】
2009508251.tif 000007
【図２Ｃ】
2009508251.tif 000008
【図３】
2009508251.tif 000009
【図４】
2009508251.tif 000010
【図５】
2009508251.tif 000011
【図６】
2009508251.tif 000012
【国際調査報告】
2009508251.tif 000013
2009508251.tif 000014