JP2009508251A - サーバ側サービスフレームワーク - Google Patents

サーバ側サービスフレームワーク Download PDF

Info

Publication number
JP2009508251A
JP2009508251A JP2008531130A JP2008531130A JP2009508251A JP 2009508251 A JP2009508251 A JP 2009508251A JP 2008531130 A JP2008531130 A JP 2008531130A JP 2008531130 A JP2008531130 A JP 2008531130A JP 2009508251 A JP2009508251 A JP 2009508251A
Authority
JP
Japan
Prior art keywords
service
virtual path
pseudo
client
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008531130A
Other languages
English (en)
Other versions
JP4929285B2 (ja
Inventor
ティン−ハオ ヤン
エッボ ディビッド
コザリ ニキル
カルバート サイモン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009508251A publication Critical patent/JP2009508251A/ja
Application granted granted Critical
Publication of JP4929285B2 publication Critical patent/JP4929285B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

サーバサービスを、そのサービスを含む特別な拡張子を有する物理的ファイルにマップされるURLを介して公開する従来の手段を補足して、サービスに直接にマップされる擬似仮想パスが、サービスを要求するクライアントに提供される。擬似仮想パスは、パスが擬似仮想パスであることを識別する特殊トークンを含む。特殊トークンの後に続く内容は、例えば、サービスに関連する型情報を識別することにより、サービスに直接にマップされる。擬似仮想パスは、アプリケーションプログラミングインタフェースを介して生成されることが可能であり、クライアントに送られる前に、暗号化されることも可能である。

Description

本発明は、サーバ側サービスフレームワークに関する。
クライアントコンポーネント(「クライアント」)と、サーバコンポーネント(「サーバ」)とを含むシステムにおいて、サーバは、クライアントが使用することが可能なサービスを公開することを望む可能性がある。従来は、サービスを公開するために、開発者は、サービスのための特別な拡張子を有する特別なファイルを書く。例えば、Microsoft.NET(商標)プラットフォームにおいて、サーバ上にASMXファイルが存在する結果、或るWebサービスが公開され、特別な拡張子は、ASMXである。Webサービスは、一般に、クライアントが、呼び出して、或る情報を得ることを可能にする、サーバ上に存在する1つまたは複数のメソッドを提供する。Webサービスは、通常、URLの使用を介して呼び出される。例えば、URL、http://www.xyz.com/app/login.asmxは、XYZ.comに関するサーバ上のログインサービスにつながる。通常、このURLは、サーバ上に存在するASMXファイルなどの、或る物理的ファイルを指し示す。クライアントは、サーバ上の、そのASMXファイルにつながるURLを使用することにより、Webサービスを呼び出すことができる。
サービスを公開するための従来のメソッドを使用すると、そのサービスの開発者は、ASMXファイル形式などの、特別なファイルのシンタックスを理解する必要がある。加えて、既存のサーバコードを、公開されたWebサービスに変換するのに、開発者は、その既存のサーバコードをASMXシンタックスに変換する必要がある。このため、クライアントが使用するようにサービスを公開する従来の手段は、わずかとはいえない開発作業を要求する。
背景技術のセクションで既存のシステムのいくつかの問題点を例示し、説明してきたが、本明細書で主張される主題は、説明される問題点のいずれか、またはすべてを解決するための、いずれの特定の実施形態にも限定されないことが、当業者、およびその他の人々に認識されよう。
この概略は、詳細な説明において後段でさらに説明される選定された概念について、簡略化した形態で述べるように提供される。この概略は、主張される主題の重要な特徴を特定することは意図しておらず、また主張される主題の範囲を確定する際の助けとして使用されることも意図していない。
本発明の態様は、サービスの擬似仮想パスを提供することにより、サーバによってクライアントに提供されるサービスを公開するための従来の機構を補足する。擬似仮想パスは、開発者が、特別な拡張子を有する物理的ファイルを作成することなしに、或るサービスを公開することができるようにする。また、そのような擬似仮想パスは、そのサービスに関する情報が、不必要に公開される可能性がないように、暗号化されることも可能である。
本発明の一態様によれば、少なくとも1つのサーバと、1つのクライアントとを含む分散コンピューティング環境において、サーバ上のサービスが、そのサーバが、そのサービスに関する擬似仮想パスを生成することによって公開される。擬似仮想パスは、そのサービスを含む物理的ファイルではなく、そのサービスに直接にマップされる。好ましくは、そのサービスをパラメータとしてとり、そのサービスに関する擬似仮想パスを生成するアプリケーションプログラミングユーザインタフェースが、提供される。
好ましくは、公開されるサービスに関する擬似仮想パスは、サーバに関するプロキシクラスに組み込まれる。プロキシクラスは、サーバによって提供されるサービス、および、そのサービスをどのように呼び出すべきかに関する情報を明らかにすることが可能である。プロキシクラスは、公開されるサービスの記述および型情報を含むことが可能である。プロキシクラスは、例えば、公開されるサービスに関する擬似仮想パスまたは従来のパスを提供することにより、そのサービスにどのようにアクセスすべきかに関する情報を含むことが可能である。或るクライアントが、そのプロキシクラスを求める要求を送信すると、プロキシクラスは、そのクライアントに送信される。クライアントは、プロキシクラスを調べることにより、いずれのサービスを要求すべきかを識別することができる。クライアントは、プロキシクラスの中の、そのサービスに関するパスを使用して、そのサービスを要求することができる。
本発明の別の態様によれば、クライアントからサービス要求を受信すると、サーバは、そのサービス要求が擬似仮想パスを含むかどうかを判定する。サービス要求が、擬似仮想パスを含む場合、サーバは、その要求サービスをクライアントに直接に提供する。通常、擬似仮想パスは、そのパスが擬似仮想パスであることを示す特殊トークンを含む。その特殊トークンの後に続く、パスにおける内容は、サービスを表す特殊シンタックスである。したがって、或るサービス要求が擬似仮想パスを含むかどうかを判定する際、サーバは、パスが、その特殊トークンを含むかどうかを判定する。パスが、擬似仮想パスの存在を識別する特殊トークンを含む場合、サーバは、その特殊トークンの後に続く特殊シンタックスを、サービスを表す情報として扱う。好ましくは、サーバサービスの不必要な公開を防止するため、擬似仮想パスは、プロキシクラスに組み込まれる前に、暗号化されることが可能である。この暗号化は、特殊トークンだけを対象としても、特殊トークンと特殊シンタックスをともに対象としてもよい。
本発明の以上の態様、および付随する利点の多くは、添付の図面と併せて解釈されると、以下の詳細な説明を参照して、本発明が、よりよく理解されるにつれ、より容易に理解されよう。
以下の文は、本発明の例示的な実施形態を例示し、説明する。しかし、本発明の趣旨および範囲を逸脱することなく、それらの実施形態に様々な変更が行われることが可能であることが、当業者には認識されよう。
本発明の実施形態は、少なくともプロセッサと、メモリとを含むコンピュータによって実行される、プログラムモジュールなどの、コンピュータ実行可能命令の一般的な文脈で説明されることが可能である。一般に説明すると、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、ウィジェット、オブジェクト、コンポーネント、データ構造などが含まれる。また、本発明の実施形態は、コンピューティングサービスが、いくつかのエンティティ(「サーバ」)によって、他のエンティティ(「クライアント」)に提供される、分散コンピューティング環境において実施されることも可能である。これらのエンティティは、同一のコンピューティングシステムにローカルであってもよく、あるいは通信ネットワークを介してリンクされる。分散コンピューティング環境では、サービスを提供するプログラムモジュールは、ローカルコンピュータ記憶媒体上、および/またはリモートコンピュータ記憶媒体上に配置されることが可能である。
図1は、少なくとも1つのクライアント102と、少なくとも1つのサーバ104とを含む例示的な分散コンピューティングシステム100を示す。サーバ104は、クライアント102が使用することができる、Webサービスなどの少なくとも1つの公開されるサービス105を提供する。Webサービスは、一般に、クライアントが、呼び出して、或る情報を得ることを可能にする、サーバ上に存在する1つまたは複数のメソッドを提供する。以下のコードは、サーバ104上で公開される例示的なWebサービス、SimpleServiceを示す。
Figure 2009508251
サーバ104によって提供されるサービス105を公開するために、本発明の例示的な実施形態は、プロキシクラス108を使用する。プロキシクラス108は、クライアント102が使用するのに、どのようなサービスが利用可能かについての情報を含むことが可能である。また、プロキシクラス108は、サービス105の基本的説明、および、そのサービス105をどのように呼び出すべきかに関する情報を提供することも可能である。通常、プロキシクラス108は、サーバ104によって提供されるサービス105の表現をクライアント102に提供する。プロキシクラスは、サービス105に関連する型情報を記述する情報をさらに含むことが可能である。本発明の例示的な実施形態では、サーバ104上の、公開される各サービス105は、プロキシクラス108に関連付けられる。
本発明の例示的な実施形態では、サーバ104に関するプロキシクラス108へのリンクが、例えば、サーバ104によって提供される、公開されるサービス105を、クライアント102が使用する必要がある可能性があることを知っている、クライアント102の開発者により、クライアント102に提供される。このため、プロキシクラス108の中で記述されるサービス105を、クライアント102が使用する必要があると、クライアント102が判定すると、クライアント102は、そのリンクを使用して、そのプロキシクラスを求める要求106をサーバ104に送信する。すると、サーバ104は、プロキシクラス108を戻す。クライアント102は、プロキシクラス108を調べることにより、サーバ104によって何が提供されるかを特定する。この調査を介して、クライアント102は、公開されるサービス105を使用するために、どのようなメソッドをクライアント102が呼び出すことができるかを知る。次に、クライアント102は、プロキシクラス108の中で提供される情報を使用することにより、公開されるサービス105を求める要求110を行う。例えば、クライアント102は、公開されるサービス105によって提供される、或る特定のメソッドを呼び出すことができる。
以下のテキストは、公開されるサービス、SimpleServiceに関するプロキシクラス108の中の例示的な内容を示す。
Figure 2009508251
本発明の実施形態では、サービス105などのサービスに関してプロキシクラス108の中に含まれる型情報は、サーバ104が、そのサービスを探し出す識別子を提供する。型情報は、例えば、そのサービスの型の名前、そのサービスにつながるURL、および/またはそのサービスのメソッド名であることが可能である。例えば、前段で示される、公開されるサービス、SimpleServiceに関するプロキシクラス108の中の例示的な内容において、公開されるサービス、SimpleServiceに関する型情報は、型の名前、Acme.SimpleService、URL「/app/AtlasServices/Acme/SimpleService.asmx」、およびメソッド名「Hellow World」を含む。
やはり、例示的なSimpleServiceに関するプロキシクラス108の中の前述の例示的な内容において示されるとおり、プロキシクラス108は、サーバ104上の例示的なSimpleServiceなどの、公開されるサービス105につながるパスを含む。本発明の実施形態において、公開されるサービス105につながるパスは、従来のパス、擬似仮想パス、または暗号化されたパスであることが可能である。図2A〜図2Cは、3つのタイプのパスのそれぞれに関する例を提供する。
通常、従来のパスは、公開されるサービス105を含むサーバ104上の物理的ファイルにつながる。図2Aは、例示的な従来のパス200、http://server/app/folder/SimpleService.asmxを示す。この従来のパス200は、サーバ104上の物理的ファイル、SimpleService.asmxを指し示す。
図2Bは、例示的な擬似仮想パス240を示す。外観では、擬似仮想パス240は、従来のパス200と似通って見える。しかし、擬似仮想パス240は、従来のパス200のように、物理的ファイルに実際にマップされはしない。擬似仮想パス240は、実際には、公開されるサービス105にマップされる。図2Bに示されるとおり、擬似仮想パス240は、特殊トークン242と、特殊シンタックス244とを含む。本発明の実施形態において、特殊トークン242、および特殊シンタックス244は、サーバ104が認識することができる任意のシンタックスまたはフォーマットで作成されることが可能である。例えば、本発明の一部の実施形態では、特殊トークン242と特殊シンタックス244は、1つのエンティティとして見え、ただし、サーバ104は、そのエンティティの中で特殊トークン242部分と、特殊シンタックス244部分とを認識することができる。例示的な公開されるサービス、SimpleServiceに関する例示的なプロキシクラスのための前述のコードは、例示的なSimpleServiceに関する擬似仮想パスを示す。そのパスは、「/app/AtlasServices/Acme/SimpleService.asmx」と書かれている。このパスにおける「AtlasServices/Acme」は、このパスが擬似仮想パスであることを示す特殊トークン242の役割をする。このパスにおける「SimpleService.asmx」は、公開されるSimpleServiceにマップされる例示的な特殊シンタックス244である。
本発明の実施形態において、パスにおける特殊トークン242の存在は、そのパスが、物理的ファイルのロケーションにつながる従来のパスの役割ではなく、擬似仮想パス240の役割をしていると、サーバ104が判定するに役立つ。特殊トークン242は、このパスにおける特殊トークン242の後に続く内容が、特殊シンタックス244であることを示す。特殊シンタックス244は、公開されるサービス105が何であるかについての記述を提供する。特殊シンタックス244は、擬似仮想パス240を、サーバ104上の物理的ファイルにマップしない。特殊シンタックスは、通常のパスと同じように見えるものの、通常、公開されるサービス105に関連する型情報を含む。例えば、型情報は、公開されるサービス105の型の名前を開示することが可能である。
平文として示されると、特殊シンタックス244の中で開示される型情報は、クライアント102が、全くアクセスを有するべきでないサービスメソッドについて、クライアント102が推測して、そのようなメソッドを呼び出すことを可能にする可能性がある。例えば、クライアント102は、http://Server/App/Special_Token/Forbidden.asmxによって提供されるサービスが、メソッド「Forbidden()」を含む可能性があることを推測する可能性があり、クライアント102は、メソッド呼び出し「Forbidden()」を生成し、現実に、メソッド「Forbidden()」が、サービスによって提供されているが、クライアント102は、全くアクセスを有するべきではない。
サーバ情報の不必要な開示を防止するのに、本発明の例示的な実施形態は、擬似仮想パス240を暗号化する。図2Cは、例示的な暗号化されたパス260を示す。暗号化されたパス260は、従来のパス200または擬似仮想パス240を含むことが可能である。本発明の例示的な実施形態では、暗号化された擬似仮想パスにおける暗号化された内容262は、公開されるサービス105に直接にマップされる特殊シンタックス244だけを含む。本発明の代替の実施形態では、暗号化された擬似仮想パスにおける暗号化された内容262は、特殊トークン242と特殊シンタックス244をともに含む。
本発明の例示的な実施形態では、公開されるサービス105を表すのにプロキシクラス108の中で、どのようなタイプのパスが使用されるか、例えば、従来のパスが使用されるか、または擬似仮想パスが使用されるかにかかわらず、クライアント102が、そのパスについて認識するのは、公開されるサービス105に関するULRだけである。クライアント102は、そのパス、すなわち、URLをサーバ104に送信して、公開されるサービス105を要求する。サーバ104は、受信されたパスを解釈して、受信されたパスが、従来のパス200であるか、擬似仮想パス240であるか、または暗号化されたパス260であるかを判定する。サーバ104は、パスにおける暗号化された情報を検出すると、その暗号化された情報を最初に解読する。次に、サーバ104は、その解読された情報を使用して、そのパスが、擬似仮想パスであるか、または従来のパスであるかを判定する。例えば、サーバ104が、受信されたパスにおいて特殊トークン242を検出した場合、サーバ104は、受信されたパスが、擬似仮想パス240であり、その特殊トークン242の後の内容が、公開されるサービス105に直接にマップされる特殊シンタックス244であると判定する。
図6に示されるとおり、本発明の例示的な実施形態では、サービス105が、クライアント102によって呼び出されることが可能であるように、サービス105を公開するのに、サービス105はまず、「API」(アプリケーションプログラミングインタフェース)600を介して登録される。API600は、サービス105に関する擬似仮想パス240を作成する。次に、その擬似仮想パス240が、サーバ104に関するプロキシクラス108の中に含められる。図1に示されるとおり、クライアント102が、そのプロキシクラス108を要求すると、サーバ104は、擬似仮想パス240を含むプロキシクラス108をクライアント102に送信する。このため、クライアント102は、擬似仮想パス240を使用して、公開されるサービス105にアクセスすることができる。
図3は、擬似仮想パスを使用してサーバサービスを公開するための例示的なプロセス300を示す。通常、プロセス300は、サーバ上で公開される各サービスに関する擬似仮想パスを生成する。公開されるサービスを求める要求をクライアントから受信すると、サーバは、その要求が、擬似仮想パスを含むか、または従来のパスを含むかを判定し、それに応じて、公開されるサービスを供給する。本発明の例示的な実施形態では、図示されるとおり、プロセス300は、サーバ上の公開されるサービスに関する擬似仮想パスを生成して、可能なクライアントに提供するルーチン302を実行することから始まる。図4は、ルーチン302の例示的な実施形態を示し、後段で詳細に説明する。代替として、公開されるサービスに関する可能なクライアントは、そのサービスに至る従来のパスを受信してもよい。公開されるサービスにアクセスすることを望むクライアントは、そのサービスを求める要求をサーバに送信する。そのような要求は、擬似仮想パス、従来のパス、あるいは擬似仮想パスまたは従来のパスを含む暗号化されたパスを含むことが可能である。したがって、サーバが、クライアントからサービス要求を受信したと判定すると(判定ブロック304を参照)、プロセス300は、受信されたサービス要求が擬似仮想パスを含むかどうかを判定する別のルーチン306を実行することに進む。ブロック306を参照されたい。図5は、ルーチン306の例示的な実施形態を示し、後段で詳細に説明される。
ルーチン306を実行した後、プロセス300は、クライアントからのサービス要求が、擬似仮想パスを含むかどうかを判定することに進む。判定ブロック308を参照されたい。判定ブロック308の答えが「いいえ」である場合、プロセス300は、公開されるサービスに関する物理的ファイルにマップされる従来のパスを含むものとして、そのサービス要求を扱うことに進み、その物理的ファイルをクライアントに提供する。ブロック310を参照されたい。その後、プロセス300は、終了する。判定ブロック308の答えが「はい」である場合、サービス要求は、擬似仮想パスを含み、プロセス300は、その擬似仮想パスの特殊シンタックスにおいて表されるサービスをクライアントに提供することに進む。ブロック312を参照されたい。その後、プロセス300は、終了する。
図4は、サーバ上で公開されるサービスを使用することを意図する任意のクライアントに擬似仮想パスを提供するための例示的なルーチン302を示す。ルーチン302はまず、公開されるサーバサービスに関する擬似仮想パスを生成する。ブロック402を参照されたい。本発明の実施形態において、擬似仮想パスは、様々な手段によって生成されることが可能である。例えば、前述したとおり、公開されるサービスが、そのサービスに関する擬似仮想パスを作成するAPIに送られることが可能である。代替として、擬似仮想パスは、手作業で、またはスクリプトによって作成されることが可能である。
次に、ルーチン302は、サービスに関する擬似仮想パスを、サーバによって提供されるサービスを記述するプロキシクラスの中に含める。ブロック404を参照されたい。前述したとおり、プロキシクラスは、サーバ上のどのようなサービスが、クライアントが使用するように利用可能であるかについての情報も含むことが可能である。また、プロキシクラスは、サービスの基本的説明、およびサービスをどのように呼び出すべきかについての情報も含むことが可能である。プロキシクラスは、サービスに関連する型情報をさらに含むことが可能である。本発明の例示的な実施形態において、クライアントが、或るサーバに、そのサーバによって提供されるサービスを求める可能性がある場合、そのクライアントの開発者は、そのクライアントに、そのサーバに関するプロキシクラスへのリンクを埋め込む。そのクライアントが、そのサーバによって提供されるサービスを使用することを意図する場合、クライアントは、そのプロキシクラスへのリンクを使用して、そのプロキシクラスを求める要求をサーバに送信する。したがって、ルーチン302は、そのプロキシクラスを求める要求をクライアントから受信すると、そのプロキシクラスをクライアントに提供する。ブロック406を参照されたい。次に、クライアントは、サービスに関するプロキシクラスの中で提供される情報を使用して、サービス要求をサーバに送信することができる。当業者には認識されるとおり、例示的なルーチン302は、公開されるサーバサービスに関する擬似仮想パスを提供する例示的な手段を提供するに過ぎない。代替の手段には、例えば、スクリプトを使用して、公開されるサーバサービスに関する擬似仮想パスを生成して、サーバ上の公開されるサービスを求める要求をクライアントから受信すると、その擬似仮想パスを供給することが含まれることが可能である。
図5は、クライアントによって送信されたサービス要求が、擬似仮想パスを含むかどうかを判定する例示的なルーチン306を示す。ルーチン306は、サービス要求を解析することから始まる。ブロック502を参照されたい。次に、ルーチン306は、サービス要求が、暗号化された内容を含むかどうかを判定する。ブロック504を参照されたい。サービス要求が、暗号化された内容を含む場合、ルーチン306は、その暗号化された内容を解読することに進む。ブロック506を参照されたい。判定ブロック504の答えが、サービス要求が平文を含むことを意味する「いいえ」である場合、またはルーチン306が、暗号化された内容を解読している場合、ルーチン306は、サービス要求が、擬似仮想パスの存在を示す特殊トークンを含むかどうかを判定することに進む。ブロック508を参照されたい。判定ブロック508の答えが、サービス要求が擬似仮想パスを含むことを意味する「はい」である場合、ルーチンは、「真」を戻し、終了する。ブロック512を参照されたい。判定ブロック508の答えが、サービス要求が擬似仮想パスを含まないことを意味する「いいえ」である場合、ルーチン306は、「偽」を戻し、終了する。ブロック510を参照されたい。
要約すると、本発明の実施形態は、サーバによって公開されるサービスにクライアントがアクセスする別のアプローチを提供する。擬似仮想パスアプローチは、開発者が、サーバサービスを、そのサービスに関して特別な拡張子を有する特別なファイルを書くことなしに、公開することを可能にする。このため、開発者は、特別なファイルのシンタックスを理解する必要なしに、または既存のサービスコードを、特別なファイルのシンタックスに変換する必要なしに、サーバサービスを公開することができる。その結果、擬似仮想パスアプローチは、サーバサービスを公開するために必要とされる開発作業を減らす。
本発明の態様を、構造上の特徴、および/または方法上の動作に特有の言い回しで説明してきたが、添付の特許請求の範囲において定義される主題は、前述した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、前述した特定の特徴および動作は、特許請求の範囲を実施する例示的な形態として開示される。
クライアントとサーバとの間の例示的な対話を示すブロック図である。 公開されるサーバサービスにつながる例示的な従来のパスを示すブロック図である。 公開されるサーバサービスにつながる例示的な擬似仮想パスを示す図である。 公開されるサーバサービスにつながる例示的な暗号化されたパスを示すブロック図である。 サーバサービスを公開するための例示的なプロセスを示す流れ図である。 図3で使用するのに適した、公開されるサービスへの擬似仮想パスマッピングを提供するための例示的なルーチンを示す流れ図である。 図3で使用するのに適した、サービス要求が擬似仮想パスを含むかどうかを判定するための例示的なルーチンを示す流れ図である。 擬似仮想パスを生成するための例示的なアプリケーションプログラミングインタフェースを示すブロック図である。

Claims (20)

  1. サーバコンポーネント(104)と、クライアントコンポーネント(102)とを含む分散コンピューティングシステムにおいて、前記サーバ(104)によって提供されるサービス(105)を公開するためのコンピュータによって実施される方法であって、
    前記サービス(105)を含む物理的ファイルにマップされるのではなく、前記サービス(105)に直接にマップされる擬似仮想パス(240)を、前記クライアント(102)に提供すること、
    前記サービス(105)を求める要求(110)を前記クライアント(102)から受信すると、前記要求(110)が、前記擬似仮想パス(240)を含むかどうかを判定すること、および
    前記要求(110)が、前記擬似仮想パス(240)を含む場合、前記擬似仮想パス(240)の中の情報に応じた前記サービス(105)を、前記クライアント(102)に提供することを含むことを特徴とする方法。
  2. 前記擬似仮想パスは、パスが、前記サービスに直接にマップされる擬似仮想パスであることを示す特殊トークンを含むことを特徴とする請求項1に記載の方法。
  3. 前記擬似仮想パスは、前記サービスを表す特殊シンタックスも含むことを特徴とする請求項2に記載の方法。
  4. 前記特殊シンタックスは、前記サービスの型情報を提供することを特徴とする請求項3に記載の方法。
  5. 前記擬似仮想パスは、暗号化されることを特徴とする請求項3に記載の方法。
  6. 前記擬似仮想パスにおける前記特殊シンタックスだけが、暗号化されることを特徴とする請求項5に記載の方法。
  7. 前記擬似仮想パスにおける前記特殊トークンと前記特殊シンタックスがともに、暗号化されることを特徴とする請求項5に記載の方法。
  8. 前記クライアントに擬似仮想パスを提供することは、
    前記擬似仮想パスを生成すること、
    前記擬似仮想パスをプロキシクラスの中に含めること、および
    前記プロキシクラスを求める要求を前記クライアントから受信すると、前記プロキシクラスを前記クライアントに提供することを含むことを特徴とする請求項1に記載の方法。
  9. 前記サービスに関する前記擬似仮想パスを生成することは、前記サービスをパラメータとして使用してアプリケーションプログラミングインタフェースを呼び出すことを含み、前記アプリケーションプログラミングインタフェースは、前記擬似仮想パスを生成して、戻すことを特徴とする請求項8に記載の方法。
  10. 前記プロキシクラスは、前記サーバによって公開される少なくとも1つのサービスを識別することを特徴とする請求項8に記載の方法。
  11. サーバ(104)上の公開されるサービス(105)に関する擬似仮想パス(240)を生成することと関係するファンクションを含む1つまたは複数のコンピュータ可読媒体上に実現されたアプリケーションプログラミングインタフェースであって、前記擬似仮想パス(240)は、前記サービス(105)を含む前記サーバ(104)上の物理的ファイルにマップされるのではなく、前記公開されるサービス(105)に直接にマップされることを特徴とするアプリケーションプログラミングインタフェース。
  12. 少なくとも1つのサービス(105)を提供するコンピュータシステムであって、
    (a)メモリと、
    (b)前記サービス(105)に直接にマップされる擬似仮想パス(240)を提供するため(302)、前記サービスを求める要求(110)をクライアント(102)から受信すると、前記要求(110)が、前記擬似仮想パス(240)を含むかどうかを判定するため(306)、および前記要求(110)が、前記擬似仮想パス(240)を含む場合、前記擬似仮想パス(240)の中の情報に応じた前記サービス(105)を、前記クライアント(102)に提供するため(312)のコンピュータ実行可能命令を実行する、前記メモリに結合されたプロセッサとを含むことを特徴とするコンピュータシステム。
  13. 前記擬似仮想パスは、パスが、前記サービスに直接にマップされる擬似仮想パスであることを示す特殊トークンを含むことを特徴とする請求項12に記載のコンピュータシステム。
  14. 前記擬似仮想パスは、前記サービスを表す特殊シンタックスも含むことを特徴とする請求項13に記載のコンピュータシステム。
  15. 前記特殊シンタックスは、前記サービスの型情報を提供することを特徴とする請求項14に記載のコンピュータシステム。
  16. 前記擬似仮想パスは、暗号化されることを特徴とする請求項14に記載のコンピュータシステム。
  17. 前記擬似仮想パスにおける前記特殊シンタックスだけが、暗号化されることを特徴とする請求項16に記載のコンピュータシステム。
  18. 前記プロセッサは、前記サービスに直接にマップされる擬似仮想パスを提供することを、前記擬似仮想パスを生成すること、前記擬似仮想パスをプロキシクラスの中に含めること、および前記プロキシクラスを求める要求を前記クライアントから受信すると、前記プロキシクラスを前記クライアントに提供することによって行うためのコンピュータ実行可能命令を実行することを特徴とする請求項12に記載のコンピュータシステム。
  19. 前記プロセッサは、前記サービスをパラメータとして使用してアプリケーションプログラミングインタフェースを呼び出すことにより、前記サービスに関する前記擬似仮想パスを生成するためのコンピュータ実行可能命令を実行し、前記アプリケーションプログラミングインタフェースは、前記擬似仮想パスを生成して、戻すことを特徴とする請求項18に記載のコンピュータシステム。
  20. 前記プロキシクラスは、前記サーバによって公開される少なくとも1つのサービスを識別することを特徴とする請求項18に記載のコンピュータシステム。
JP2008531130A 2005-09-12 2006-08-22 サーバ側サービスフレームワーク Expired - Fee Related JP4929285B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71605505P 2005-09-12 2005-09-12
US60/716,055 2005-09-12
US11/318,226 2005-12-23
US11/318,226 US20070078927A1 (en) 2005-09-12 2005-12-23 Server-side service framework
PCT/US2006/032881 WO2007032871A2 (en) 2005-09-12 2006-08-22 Server-side service framework

Publications (2)

Publication Number Publication Date
JP2009508251A true JP2009508251A (ja) 2009-02-26
JP4929285B2 JP4929285B2 (ja) 2012-05-09

Family

ID=37865430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008531130A Expired - Fee Related JP4929285B2 (ja) 2005-09-12 2006-08-22 サーバ側サービスフレームワーク

Country Status (13)

Country Link
US (1) US20070078927A1 (ja)
EP (1) EP1934821A4 (ja)
JP (1) JP4929285B2 (ja)
KR (1) KR20080055794A (ja)
CN (1) CN101263481B (ja)
AU (1) AU2006291366B2 (ja)
BR (1) BRPI0615661A2 (ja)
CA (1) CA2618619A1 (ja)
MX (1) MX2008003412A (ja)
NO (1) NO20080598L (ja)
RU (1) RU2412471C2 (ja)
SG (1) SG165367A1 (ja)
WO (1) WO2007032871A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086148A (zh) * 2018-08-01 2018-12-25 山东浪潮通软信息科技有限公司 一种跨平台调用Web Service服务的方法
JP7447407B2 (ja) * 2019-08-19 2024-03-12 ヤマハ株式会社 通信管理サーバ、通信管理システムおよび通信管理方法
CN113961311A (zh) * 2021-10-27 2022-01-21 阿波罗智联(北京)科技有限公司 业务数据处理方法、装置、电子设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998034386A1 (en) * 1997-02-03 1998-08-06 Oracle Corporation Web request broker controlling multiple processes
US20030167355A1 (en) * 2001-07-10 2003-09-04 Smith Adam W. Application program interface for network software platform
JP2005043958A (ja) * 2003-07-22 2005-02-17 Seiko Epson Corp 駐車管理装置、駐車管理システム及びプログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930255A (en) * 1995-01-31 1999-07-27 Canon Kabushiki Kaisha Method of setting a relaying path in a communication network
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US6710786B1 (en) * 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6247056B1 (en) * 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6049877A (en) * 1997-07-16 2000-04-11 International Business Machines Corporation Systems, methods and computer program products for authorizing common gateway interface application requests
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6453362B1 (en) * 1998-08-12 2002-09-17 International Business Machines Corporation Systems, methods and computer program products for invoking server applications using tickets registered in client-side remote object registries
JP4146983B2 (ja) * 1999-02-26 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
CA2280588C (en) * 1999-08-20 2005-07-05 Leonard W. Theivendra Code wrapping to simplify access to and use of enterprise java beans
US6529983B1 (en) * 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6587888B1 (en) * 1999-12-15 2003-07-01 Networks Associates Technology, Inc. Dynamic software wrapper
US7716163B2 (en) * 2000-06-06 2010-05-11 Microsoft Corporation Method and system for defining semantic categories and actions
US6954778B2 (en) * 2000-07-12 2005-10-11 Microsoft Corporation System and method for accessing directory service via an HTTP URL
US7512972B2 (en) * 2002-09-13 2009-03-31 Sun Microsystems, Inc. Synchronizing for digital content access control
US7206807B2 (en) * 2003-01-21 2007-04-17 Bea Systems, Inc. Asynchronous invoking a remote web service on a server by a client who passes on a received invoke request from application code residing on the client
EP2365666A1 (en) * 2003-02-03 2011-09-14 Nippon Telegraph And Telephone Corporation Data transfer apparatus and data transfer system
US20050015491A1 (en) * 2003-05-16 2005-01-20 Markel Corporation Systems, methods, and articles of manufacture for dynamically providing web services
US7363487B2 (en) * 2003-07-01 2008-04-22 International Business Machines Corporation Method and system for dynamic client authentication in support of JAAS programming model
JP2005043938A (ja) * 2003-07-22 2005-02-17 Fuji Xerox Co Ltd アクセス制御装置およびその方法
US7529824B2 (en) * 2003-10-14 2009-05-05 International Business Machines Corporation Method for selecting a service binding protocol in a service-oriented architecture
US8135851B2 (en) * 2003-12-19 2012-03-13 Stmicroelectronics, Inc. Object request broker for accelerating object-oriented communications and method
US20050160153A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corp. Publishing multipart WSDL files to URL
WO2007001206A1 (fr) * 2005-07-27 2007-01-04 Gaman Vadim Anatolievich Systeme d'information client-serveur et procede permettant d'obtenir une interface graphique

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998034386A1 (en) * 1997-02-03 1998-08-06 Oracle Corporation Web request broker controlling multiple processes
JP2001511269A (ja) * 1997-02-03 2001-08-07 オラクル・コーポレイション 多数のプロセスを制御するウェブ要求ブローカ
US20030167355A1 (en) * 2001-07-10 2003-09-04 Smith Adam W. Application program interface for network software platform
JP2005043958A (ja) * 2003-07-22 2005-02-17 Seiko Epson Corp 駐車管理装置、駐車管理システム及びプログラム

Also Published As

Publication number Publication date
WO2007032871A3 (en) 2007-05-03
KR20080055794A (ko) 2008-06-19
MX2008003412A (es) 2008-03-27
WO2007032871A2 (en) 2007-03-22
EP1934821A4 (en) 2009-08-19
RU2008109232A (ru) 2009-10-10
AU2006291366B2 (en) 2011-03-10
JP4929285B2 (ja) 2012-05-09
RU2412471C2 (ru) 2011-02-20
EP1934821A2 (en) 2008-06-25
NO20080598L (no) 2008-04-01
SG165367A1 (en) 2010-10-28
CN101263481B (zh) 2012-02-01
CA2618619A1 (en) 2007-03-22
BRPI0615661A2 (pt) 2011-05-24
US20070078927A1 (en) 2007-04-05
CN101263481A (zh) 2008-09-10
AU2006291366A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
US7620934B2 (en) System and method for a Web service definition
US5727145A (en) Mechanism for locating objects in a secure fashion
US6701374B2 (en) Method and apparatus for dynamic proxy insertion in network traffic flow
US7523223B2 (en) Web control simulators for mobile devices
US7487513B1 (en) Web service archive
US8250522B2 (en) Method and system for generating a web services meta model on the java stack
US7694140B1 (en) Web service client extensions
US20070174420A1 (en) Caching of web service requests
US8290152B2 (en) Management system for web service developer keys
JP2004504657A (ja) 分散コンピューティング環境でのセキュア・メッセージングを用いるリモート・メソッド・コール
CA2599893A1 (en) Method and apparatus to select and deliver portable portlets
JP2004348743A (ja) ポストキャッシュ置換
CN104052746A (zh) 异构应用单点登录系统及其单点登录方法
US7418720B2 (en) Interprocess communication mechanism for heterogeneous computer process
JP4929285B2 (ja) サーバ側サービスフレームワーク
US7885997B2 (en) Data processing method, program, device, message structure, message generation method, and message transmission method
KR101190597B1 (ko) 로봇 소프트웨어 컴포넌트를 위한 메소드 포트 장치 및 구성 방법
JP2004515833A (ja) データ表現言語メッセージベースの分散コンピューティング環境と他の環境との間のブリッジング
CN100428166C (zh) 对客户端调用远程接口访问ejb进行处理的方法和装置
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
JP2004519040A (ja) 部分的ページ再生成に影響を与えるページ生成コードを強化する方法および装置
US20120159346A1 (en) Method and System Enabling Co-operating of Web Apparatus and Flash Apparatus
US8032657B2 (en) Preservation of type information between a client and a server
US10834167B1 (en) Client side navigation compositor
Jusoh Integrating stand-alone Web-based spatial information systems into integrated spatial information system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120213

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350