JP2007514990A - サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置 - Google Patents

サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置 Download PDF

Info

Publication number
JP2007514990A
JP2007514990A JP2006534749A JP2006534749A JP2007514990A JP 2007514990 A JP2007514990 A JP 2007514990A JP 2006534749 A JP2006534749 A JP 2006534749A JP 2006534749 A JP2006534749 A JP 2006534749A JP 2007514990 A JP2007514990 A JP 2007514990A
Authority
JP
Japan
Prior art keywords
message
requests
communication path
service
responses
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.)
Pending
Application number
JP2006534749A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007514990A publication Critical patent/JP2007514990A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint
    • 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]
    • 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/56Provisioning of proxy services
    • 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/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】サービス指向アーキテクチャにおいて、既存のプロトコルの待ち時間問題を最小限にするような形でサービス要求および応答を処理するための方法および装置を提供すること。
【解決手段】累積したクライアントサービス要求は、要求の実行順序を指定するワークフロー情報と共に単一のメッセージにパッケージングされ、これがネットワーク接続のサーバ側に伝送される。ネットワーク接続のサーバ側では、個々の要求がワークフロー情報と共にメッセージから抽出され、所期のサービス・プロバイダにルーティングされ、ここでワークフロー情報によって指定された順序で実行される。サービス要求に対する応答は、同様に戻りメッセージにパッケージングされ、これがクライアント側に返送されて、ここで応答がメッセージから抽出され、発信元クライアントにルーティングされる。
【選択図】 図5

Description

本発明は、サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置に関する。とりわけ本発明は、こうした要求を一括(batch)するため、ならびに、サービス指向アーキテクチャにおいてこうした一括された要求を順次および並列に実行するための、方法および装置に関する。
本明細書では、以下の出版物を参照とする(カッコ内の番号を使用)。
1.2001年3月15日、W3C覚書「Webサービス記述言語(WSDL)1.1」
2.2003年3月、ウェリ・ヴァーリ等による「WebSphere バージョン5、Webサービス・ハンドブック」IBM Redbook、SG24−6891−00
3.2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート0:入門」
4.2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート1:メッセージング・フレームワーク」
5.2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート2:付属」
6.2003年3月、アーロン・スコナードによる「SOAPについて」、MSDNライブラリ
7.2000年10月6日、W3C勧告「拡張可能マークアップ言語(XML)1.0(第2版)」
8.2003年1月14日、ピーター・フリン(編集)による「XML FAQバージョン3.01」
9.2003年8月28日出版、Sun Microsystems,Inc「Java API for XML−Based RPC(JAX−RPC)」
10.2002年6月22日、イアン・フォスター等による「グリッドの生理:分散システム統合のためのオープン・グリッド・サービス・アーキテクチャ」
11.2002年7月17日、スティーブ・テュエッケ等による「グリッド・サービスの仕様」第3稿
12.2000年12月11日、W3C覚書「添付ファイル付きSOAPメッセージ」
ここ数年の情報技術の分野におけるさらに重要なイベントの1つが、Webサービスおよびその近い親類であるグリッド・サービスの仕様およびインプリメンテーションの開発である。参照文献[2]の7ページに記載されるように、「Webサービスは、ネットワークを介した記述、公表、配置、および呼出しが可能な、自己完結型のモジュラ・アプリケーションである。Webサービスは、単一の要求応答から完全なビジネス・プロセス対話にまで及ぶ、カプセル化ビジネス機能を実行する。」Webサービスは、Webサービス記述言語(WSDL)[1]などの標準仕様で体系化されている。グリッド・サービス[10、11]は、クライアントがグリッド・サービスと対話する方法を定義する規約セット(インターフェースおよび動作)に準拠するWebサービスとして定義されている。グリッド・サービスは、実際にリモートに配置された使用可能コンピューティング・リソース(アプリケーション、プロセッサなど)がユーザに対するローカル・リソースとして現われる、仮想組織(VO)を作成するために使用されている。
Webサービスのようなサービス指向アーキテクチャでは、サービス・プロバイダは、サービスにアクセスするためのバインディングに使用されるいくつかのトランスポート・プロトコルを提供することができる。これは、クライアントにより良いサービス品質(QOS)機能を提供するために実行される。相互運用性に関する要件に基づいて、ほとんどのサービス指向アーキテクチャは、構造化メッセージを交換するための軽量プロトコルとしてシンプル・オブジェクト・アクセス・プロトコル(SOAP)[3、4、5、6]を使用する。これは、ビルディング・ブロックとして拡張可能マークアップ言語(XML)[7、8]を使用する単純かつ拡張可能なモデルである。これはその単なる応用例ではないが、SOAPはしばしば、リモート・プロシージャ・コール(RPC)の要求および応答(まとめて「要求/応答」)を伝送するための手段として使用される。
SOAPをメッセージ交換メカニズムとして使用することの主な問題点の1つは、その性能の低さである。SOAPプロトコルおよびその処理エンジンの性能問題を解決するために、バイナリXML処理、XMLプロセッサ改良(たとえばプル・パーサ)、プリコンパイル済みメッセージング・フレームワークなどを含む、多数の提案がある。本発明は、SOAPメッセージング・アーキテクチャのサービス要求プロセスにおける待ち時間増加の問題に対処する。このサービス呼び出しに関連する待ち時間の増加は、SOAP RPC固有の性質に拠るものである。通常は、サービス要求が呼び出されると必ず、メッセージがフォーマット化され、SOAP本体でバンドルされて、ワイヤを横切ってサーバに渡される。従来から、リモートRPCが呼び出されるのと同様に、一度に1つのサービスに対処するためにSOAPプロセッサが作成される。これにより、RPC呼び出しの細分性(いくつかの小規模な呼び出しまたは1つの大規模な呼び出しを実行する)によって、分散アーキテクチャにおける待ち時間が増加することになる。
2001年3月15日、W3C覚書「Webサービス記述言語(WSDL)1.1」 2003年3月、ウェリ・ヴァーリ等による「WebSphere バージョン5、Webサービス・ハンドブック」IBM Redbook、SG24−6891−00 2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート0:入門」 2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート1:メッセージング・フレームワーク」 2002年6月26日、W3Cワーキング・ドラフト「SOAPバージョン1.2 パート2:付属」 2003年3月、アーロン・スコナードによる「SOAPについて」、MSDNライブラリ 2000年10月6日、W3C勧告「拡張可能マークアップ言語(XML)1.0(第2版)」 2003年1月14日、ピーター・フリン(編集)による「XML FAQバージョン3.01」 2003年8月28日出版、Sun Microsystems,Inc「XMLベースRPCのためのJava API(JAX−RPC)」 2002年6月22日、イアン・フォスター等による「グリッドの生理:分散システム統合のためのオープン・グリッド・サービス・アーキテクチャ」 2002年7月17日、スティーブ・テュエッケ等による「グリッド・サービスの仕様」第3稿 2000年12月11日、W3C覚書「添付ファイル付きSOAPメッセージ」
したがって、インターネット規模のシステム、大規模なワイド・エリア・ネットワーク、およびグリッドを取り扱う場合の問題点の1つは、サービス呼び出しに関連付けられた待ち時間の増加に対処することである。サービス呼び出しの細分性に関して、賢明な決定(すなわち、より多くの数のより小規模な呼び出しを実行するか、またはより少ない数の大規模な呼び出しを実行するか)を下さなければならない。しかしながらほとんどの分散システムは、(少なくともRPC APIレベルでは)この機能を考慮せずに設計されている。SOAPプロトコルでは、SOAPが一度に1つのサービスを呼び出す単純なRPC呼び出しメカニズムとしてモデル化されている場合と同様の、待ち時間の問題に直面する。これは、データまたはジョブのセットが単一のプログラム実行中に処理される、分散システムに関する呼び出し一括要件には対処していない。
一般に、本発明は、既存のプロトコルの待ち時間問題を最小限にするような形で、サービス指向アーキテクチャにおいてサービスの要求および応答(まとめて、「要求/応答」)を処理するための方法および装置に関する。累積したクライアントサービス要求は単一のメッセージにパッケージングされ、これがネットワーク接続のサーバ側に伝送される。ネットワーク接続のサーバ側では、個々の要求がメッセージから抽出され、所期のサービス・プロバイダにルーティングされる。サービス要求に対する応答は、同様に戻りメッセージにパッケージングされ、これがクライアント側に返送されて、ここで応答がメッセージから抽出され、発信元クライアントにルーティングされる。好ましい実施形態では、個々の要求/応答は、シンプル・オブジェクト・アクセス・プロトコル(SOAP)メッセージへの添付ファイルとして搬送される。さらに好ましくは、各メッセージは要求だけでなく、要求が実行される順番を指定するワークフロー情報(たとえば、所与の要求が並列に実行可能であるか、または順次実行しなければならないか)も含む。このワークフロー情報は、たとえばクライアント・エンドとの追加の双方向(round−trip)通信を必要とせずに、新しい要求の実行を開始することができるように、サーバ・エンドで要求を実行する順序を制御するために使用される。
本発明は、サービス指向アーキテクチャにおける待ち時間増加の問題に対処する。好ましい実施形態では、通信パスの各エンドで通信パスの他方のエンドに伝送するために要求または応答を一括し、通信パスの他方のエンドから受信した要求または応答を抽出する、クライアントおよびサーバでのサービス要求の一括および分離フレームワークを企図する。さらに、本発明の好ましい実施形態は、ワークフロー情報を(サービス呼び出しプロファイルとして)サーバに渡すことによって、呼び出し実行プロセスでのワークフロー定義を企図する。(本明細書では、「ワークフロー情報」は、たとえば要求2は要求1の後に実行される、要求3は要求2と並列に実行できるなど、要求の実行順序を指定する情報を意味する。)最終的に、すべての個々の呼び出しセマンティクスを保持しながら、[12](以下、「添付ファイル仕様付きSOAP」)で定義され、図4に示されたような、SOAPメッセージ交換のためのワイヤ・メッセージ・フォーマット(すなわち、バイト文字列とみなされるメッセージの実際の物理構造)を企図する。(「呼び出しセマンティクス」と言う用語には、ワークフロー情報だけでなく、メッセージ呼び出しのセキュリティ、トランザクション要件、ルーティング、アドレス指定、および他の面に関する情報も含まれる。)
このフレームワークは、いくつかの想定を考慮して定義される。第1に、ほとんどのサービスは、多くの単一の呼び出しではなく1つの要求呼び出しに好適な集合ビジネス論理を利用して定義されることはない、あるいは定義することはできない、またはその両方である。第2に、クライアントからサーバへのビジネス論理ワークフローを構成するサービス呼び出しのバッチの動きにより、高性能となる。第3にクライアントは、呼び出しを一括し、正しいワークフロー・プロセス(会話プロセス)を選択するだけの十分な知性を備える。
本発明を使用すると、低速のSOAP RPCプロトコルを介して要求呼び出しを一括することによって、分散システムでの待ち時間問題が軽減される。これは、クライアントが、ビジネス論理の並列および順次実行を含み、サーバ側で一連の要求を実行することの可能な、ワークフロー・メカニズムを提供するものである。セキュリティ、相関、およびトランザクション要件などの、すべての要求呼び出しセマンティクスを維持する。クライアントは、クライアント側API(JAX−RPCと同様)によって定義されるのと同じプログラミング・パターンに従うことが可能であり、インフラストラクチャはほとんどの複雑性に対処する。このフレームワークは、既存のインフラストラクチャに対する透過性を提供し、クライアントによって要求されたとおりのフォーマットで結果を提供する。これにより、同期または非同期の呼び出しをサポートすることができる。最終的に、障害をクライアントに返送するか、または、あるサービス呼び出しでの障害が他のサービス呼び出しに影響を与える可能性があるワークフロー定義を使用することによって複雑なシナリオをサポートすることができる、単純な呼び出しストラテジに基づいて、障害を処理することができる。
本発明は、好ましくはソフトウェアでインプリメントされるが、ハードウェア、ソフトウェア、またはこの2つの何らかの組み合わせでインプリメントすることも可能である。ソフトウェアでインプリメントされる場合、定義された方法ステップを実行するためにマシンによって実行可能な命令のプログラムを明白に具体化する、マシンによる読み取りか可能なプログラム・ストレージ・デバイス(磁気または光ディスク、あるいは半導体メモリ)の形を取ることができる。
次に、本発明の諸実施形態について、以下の図面を参照しながら単なる例として説明する。
本発明は、要求を一括することにより、サービス呼び出しに関連付けられた待ち時間の増加により良く対処するための、サービス指向アーキテクチャにおけるクライアントおよびサーバ向けのサービス要求一括フレームワークを企図する。このフレームワークは、クライアント側のアプリケーション・プログラミング・インターフェース(API)と、呼び出しを一括するためのクライアント側の要求一括エンジンを提供する。サーバ側のフレームワークは、サービス要求の分解、識別、マッピング、およびディスパッチのための機構を提供する。このフレームワークは、サービス・バインディングのためのトランスポート・メッセージング・プロトコルとして、SOAP(シンプル・オブジェクト・アクセス・プロトコル)を使用する。クライアントの基本設定あるいはポリシーまたはその両方に基づいてサービス呼び出しの順次および並列の実行を管理するためのワークフロー・プロセスも、企図される。
図1は、一括なしの従来のSOAP RPCインプリメンテーションにおける、クライアント−サーバ対話を示す図である。図に示されるように、クライアント102は、SOAP/HTTPプロトコル(すなわち、HTTPトランスポート・バインディングを使用するSOAPメッセージ・プロトコル)を使用して、インターネットなどのネットワーク106を介してサービス・プロバイダ(または単に「サービス」)104と対話する。この従来のインプリメンテーションでは、クライアント102は各呼び出しについて1つのメッセージを送信することにより、サービス・プロバイダ104へのリモート・プロシージャ・コール(RPC)を実行する。同様の形でサービス・プロバイダ104は、各応答について1つのメッセージをクライアント102に返送することにより、これらの呼び出しに応答する。RPCは同期または非同期のいずれかとすることができる。同期呼び出しは、前の呼び出しへの応答が実行されるまで待機しなければならない。これに対して非同期呼び出しは、前の呼び出しへの応答を待つことなく実行することができる。このシナリオでは、同期呼び出しは重複が不可能であるため、伝送プロトコルに何らかのかなりの待ち時間が存在する場合、相当な性能上の損失が生じる可能性がある。
図2は、要求一括を伴う本発明のSOAP RPCインプリメンテーションにおけるクライアント−サーバ対話を示す図である。このインプリメンテーションでは、クライアント102はネットワーク106を介してサービス・プロバイダ104へのリモート・プロシージャ・コール(RPC)を実行し、サービス・プロバイダ104は前の場合と同様に呼び出しに応答する。しかしながら、各呼び出しについて1つのメッセージを送信する代わりに、クライアント102は呼び出しを累積し、累積された呼び出しを含む単一のメッセージを送信する。同様の形でサービス・プロバイダ104は、各応答について1つのメッセージをクライアント102に返送する代わりに応答を累積し、累積された応答を含む単一のメッセージを送信する。図1のシナリオと同様に、RPCは同期または非同期のいずれかとすることができる。しかしながらここでは以下で説明するように、クライアント102は、要求自体と共にサービス・プロバイダ102に送信されるワークフロー情報を伴う、様々な要求の実行に必要な任意の順序を指定することができる。
図1および2のどちらでも、クライアント102は、別々に示されていないクライアント・マシン上の複数のこうしたクライアント(または「サービス要求者」)のうちの1つとすることができる。同様にサービス・プロバイダ104は、サーバ・マシン(または「サーバ」)上の複数のこうしたサービス・プロバイダのうちの1つとすることができる。本明細書に記載されている場合を除き、クライアント102およびサービス・プロバイダ104の詳細なオペレーションは本発明のいかなる部分をも形成するものではないため、図示していない。同様に、クライアント102およびサービス・プロバイダ104が常駐するマシンの詳細なオペレーションも、本発明のいかなる部分をも形成するものではないため、これらのマシンは別々に図示していない。同様に、本明細書に記載されたプロトコルをサポート可能であることは別として、ネットワーク106の詳細なオペレーションも本発明のいかなる部分をも形成するものではないため説明していない。
図3は、従来のSOAPインプリメンテーションにおけるSOAPメッセージ300のデータ・フォーマットを示す図である。図示されたメッセージ300は要求メッセージであるが、応答メッセージも同様にフォーマット化されることになる。図を参照すると、SOAPメッセージ300は、ヘッダ304およびボディ306を含むエンベロープ302からなる。ヘッダ304およびボディ306はそれぞれ、エンベロープ302のようにXMLタグのそれぞれのペアで区切られる。ヘッダ304はオプションであり、ヘッダ・ブロックに編成された様々なタイプの制御情報を含むことができる。これに対して、ボディ306は必須であり、たとえば図に示された単一RPCメソッド呼び出しなどの実際のエンド・ツー・エンド・メッセージを含む。
図3は、SOAPメッセージ300の論理構造を示す。HTTP要求に埋め込まれたSOAP要求メッセージ300の実際のXMLフォーマットは、[2]から選んだ以下の例のようになる場合がある。
Figure 2007514990
この例では、標準HTTPヘッダ(1〜5行目)がSOAPサーバのURLを含み、この場合は/www.messages.com/servlet/rpcrouterである。このURLに関して、Webサービスはurn:NextMessageによって識別される。HTTPヘッダの次に、伝送されるメッセージを含むSOAPエンベロープ302(6〜15行目)が続く。この特定の例では、SOAPエンベロープ302はボディ306(8〜14行目)を含むが、ヘッダ304は含まない。ここでメソッド呼び出しは、SOAPサーバに常駐するurn:Nextmessageと呼ばれるWebサービスのメソッドgetMessage(UserID, Password)への呼び出しのSOAP RPC表現である。10行目のhttp://schemas.xmlsoap.org/soap/encoding/は、クライアント側およびサーバ側の両方でプログラミング言語からXMLへ、およびその逆に、パラメータ値を変換する際に使用されるエンコード方式を指定する。
図4は、本発明のSOAP RPCインプリメンテーションにおけるSOAPメッセージ400のデータ・フォーマットを示す。図示されたメッセージ400は要求メッセージであるが、応答メッセージも同様にフォーマット化されることになる。図を参照すると、前の場合と同様にSOAPメッセージ400は、ヘッダ404およびボディ406を含むエンベロープ402からなる。しかしながら、SOAPメッセージ400は、参照された添付ファイル仕様付きSOAP[12]に定義されるように、1つまたは複数のMIME添付ファイル408(そのうちの2つを図示)をさらに含む。(図4の論理ビューは、エンベロープ402が添付ファイル408を含んでいるものとして示している。しかしながら、[2]に示されるような実際のメッセージ・フォーマットでは、添付ファイル408はエンベロープ402の外部にある。)
図4に示された添付ファイル付きSOAPのフォーマットは、普通であれば個々のSOAPメッセージ300となるものを単一のSOAPメッセージ400にパッケージングするために使用される。好ましい実施形態では、メッセージ400に含まれる個々のSOAPメッセージそれぞれのボディ306(RPC要求または応答に対応する)が、SOAP MIME添付ファイル408として埋め込まれる。SOAPヘッダ404は、すべての個々のSOAPメッセージ・ヘッダ304の集約されたコレクションを含み、MIME添付ファイル408への参照(すなわちポインタ)を含むため、個々のSOAPメッセージ300を再構築することができる。ボディ406は実際のメッセージを含むのではなく、添付ファイル408に関する情報(XMLのエンティティ)を含む。とりわけボディ406は、個々のSOAPメッセージ300のボディ306に対応するMIME添付ファイル408への参照またはポインタを含む。ボディ406内のこれらの参照をヘッダ404内の個々のヘッダ304への参照と組み合わせて使用すると、個々のメッセージ300を再構築することができる。
図5は、本発明の基本サービス呼び出し一括エンジンを示す。図に示されるように、クライアント102は要求一括および応答分離エンジン502を介してネットワーク106と対話し、同様に、サービス104は応答一括および要求分離エンジン504を介してネットワーク106と対話する。単一のクライアント102およびサービス・プロバイダ104のみが示されているが、通常、接続の各エンドでこうしたエンティティ(entity,entitles)は複数存在することができる。その名前からわかるように、要求一括および応答分離エンジン502は、ネットワーク106を介した伝送のために、クライアント102からの個々の要求を複数の要求を含む単一のメッセージ400(図4)にパッケージングし、応答一括および要求分離エンジン504は、サービス104による処理のためにメッセージ400から個々の要求を抽出する。サーバ・バウンド(要求)メッセージ400の場合、これは個々の要求メッセージ300のボディ306を、MIME添付ファイル408として(ボディ406内の添付ファイル408へのポインタと共に)メッセージ400に埋め込むこと、および、メッセージ400のヘッダ404内に個々の要求メッセージ300のヘッダ304を(対応する添付ファイル408へのポインタと共に)入れることを伴うことになる。インバウンド(応答)メッセージ400の場合、これは、単一のヘッダ404から個々のヘッダ304を抽出すること、MIME添付ファイル408から個々のボディ306を抽出すること、および、抽出された構成要素から単一のRPC応答を含むメッセージ300を再構築することを伴うことになる。
同様に復路の場合、応答一括および要求分離エンジン504は、ネットワーク106を介して伝送するために、クライアント104からの個々の応答を複数の応答を含む単一のメッセージ400にパッケージングし、要求一括および応答分離エンジン502は、クライアントによる処理のためにメッセージ400から個々の応答を抽出する。一括および分離エンジン502および504は、それぞれの呼び出し相関関係子506および508の支援によって前述の機能を実行する。クライアント側の呼び出し相関関係子506は応答が適切なクライアント102にルーティングされることを保証し、サーバ側の呼び出し相関関係子508は要求が適切なサービス・プロバイダ104にルーティングされることを保証する。加えてサーバ側のワークフロー・プロセス要素510は、クライアント・エンドから受信したワークフロー情報を使用して、受信した要求の処理の順序を管理する。
本発明は、要求呼び出しの一括の概念を導入すること、および、サーバで要求を順次および並列に実行するために要求メッセージにワークフロー・セマンティクスを追加することによって、通常のSOAP要求呼び出しに関連付けられた待ち時間を削減するためのフレームワークを企図する。主要なアーキテクチャの目標の1つが、クライアント側およびサーバ側で同じAPIおよびSOAPメッセージング・ミドルウェアを使用することによって、クライアント側とサーバ側のインプリメンテーションが損なわれないように維持することである。
前述の概要の項で示したように、本発明は、(1)クライアントおよびサーバでのサービス要求呼び出し一括および分離フレームワーク(図5に示す)、(2)ワークフロー情報を(サービス呼び出しプロファイルとして)サーバに渡し、サーバでそれを実行する、呼び出し実行プロセスに関するワークフロー定義(図5に示す)、ならびに(3)すべての個々の呼び出しセマンティクスを保持しながら、添付ファイル仕様付きSOAP[12]で定義されたようなSOAPメッセージ交換を行うためのワイヤ・メッセージ・フォーマット(図4に示す)、を提供することによって、サービス指向アーキテクチャにおける待ち時間増加の問題に対処する。
これら項目の最初である、サービス要求呼び出しの一括および分離フレームワークは、呼び出し一括要件、ワークフロー関係情報、および要求制御機能を定義するための、クライアント側APIをサポートする。このAPIは、要求一括の開始と、要求一括の終了と、どの呼び出しが並列に実行可能であるか、どの呼び出しが他の呼び出しの結果を待機すべきであるか、どの順序で呼び出しが実行されることになるか、などを含む、呼び出しセマンティクスに関するワークフローの関連付けとを含む。このワークフローは、WSDLセマンティクスへの拡張とするか、または新しいクライアント側のサービス呼び出しポリシー言語(たとえば、サービス呼び出し会話言語)とすることができる。
好ましくは、サービス要求呼び出しの一括および分離フレームワークは、同期化プリミティブおよび呼び出しキューを使用する同期および非同期の両方のクライアント呼び出し、およびメッセージとメッセージ相関関係子との関連付けをサポートする。
クライアント側のフレームワークは、添付ファイル仕様付きSOAPによって定義されたように、SOAPメッセージを作成し、第1のMIME部分、すなわちSOAPボディメッセージを介して識別される良く知られたサーバ側フレームワークにSOAPメッセージを送信する。このSOAPメッセージは、添付ファイル仕様付きSOAPによって定義されたように、すべての関連情報および他のMIME部分(ここではそれぞれが、グループ化された個々のSOAP要求である)へのポインタを含む。
クライアント側フレームワークは、メッセージ相関関係子をサポートするための相関エンジンと協働するため、成功した応答または失敗が正しい要求元に戻される。これがサービス呼び出し応答および失敗を処理し、それらを正しいクライアントにディスパッチする。好ましい実施形態では、これはプラグ可能フレームワークであり、要求呼び出し一括の必要性に基づいて実行可能となる。それぞれの個々の要求のSOAPヘッダ(それぞれの個々の要求はそれぞれが1つまたは複数のヘッダを有する)は、一括された要求の新しいSOAPヘッダにパッケージングされる。これらのSOAPヘッダは、MIME部分をポイントするように修正される。以下で説明するようなサーバ・フレームワークを有することによって、仲介を含むSOAPヘッダ・プロセッサは、SOAPメッセージを容易に解釈し、適切な決定を下すことができる。
サーバ側は、要求を分離し、ワークフロー・エンジンの元でそれらを実行するために、必要なフレームワークを提供する。サーバ側フレームワークは、呼び出しに関連付けられたセマンティクスを理解するために、ワークフロー・エンジンおよび呼び出し相関関係子に関連してプロセスを定義する。これらの呼び出しセマンティクスは、SOAPヘッダ内のSOAPメッセージと共に渡される。このフレームワークはサービス・エンドポイント(一括サービス・インプリメンテーション)とするか、またはサービス・エントリ・ポイントの一部(サーブレットまたはハンドラ)とすることができる。この成果物(artifact)(すなわち、サービス・エントリ・ポイントまたはエンドポイント)は、コンテナ要件に基づいてモデル化および管理される。すなわちサーバ側フレームワークは、要求の分離、実行(同期あるいは並列またはその両方)、結果/失敗のマッピング、および一括された応答処理に対する責務を負う。
前述のように、このワークフロー情報は、クライアント側あるいはサーバ側またはその両方の要求処理エンジンで定義することができる。これは、WSDLに関連付けるか、またはポリシー・ファイルとして別々に定義することができる。このワークフロー情報は単純(メソッドの呼び出しに順序またはセマンティクスがない)とするか、または非常に複雑とすることができる。ワークフロー・エンジンを使用するサーバは、実行を制御する。
SOAPメッセージ交換のための開示されたワイヤ・メッセージ・フォーマットは、本発明の好ましい実施形態の重要な特徴の1つである。これは、各呼び出しに関連付けられたサービス呼び出しセマンティクスを損なうことなく、SOAPメッセージ交換パターンを定義する。図4に示されるように、好ましい実施形態は、添付ファイル仕様付きSOAP[12]で指定されたメッセージ・フォーマットを使用する。それぞれの要求はMIME部分を使用して識別され、SOAPヘッダおよびSOAPボディから参照することができる。SOAPボディは、各メッセージ部分の分離および要求の実行の責務を負うサービス側フレームワークへのRPCメッセージを定義する。各SOAPヘッダ属性は、修正なしに要求に関連付けられたままである。SOAPヘッダおよびMIME部分は、要求および応答/失敗を相関させるために、メッセージと共に相関情報を搬送する。メインのSOAP部分は、ワークフロー管理に必要な追加のプロファイルを搬送することができる。
これはプラグ可能フレームワークであり、当該クライアントは、ワークフロー・プロセスの下でサーバ側での呼び出し一括および要求実行をサポートするために、現在のコードを変更せずに、これと共にその現在のインフラストラクチャを使用することができる。これは呼び出し待ち時間を削減することが可能であり、ジョブを完了するためのサーバへの複数の双方向通信を避けることによって性能を上げることができる。
図6および7は、JAX−RPCハンドラを使用するJava環境における、本発明の一括エンジンの特定のインプリメンテーションを示す。とりわけ、図6は、従来のインプリメンテーションにおけるクライアントからサーバへのメッセージ・フローの一例を示し、図7は、本発明の呼び出し一括を使用したクライアントからサーバへのメッセージ・フローの一例を示す。ここでアーキテクチャは、任意のサービス指向フレームワークを使用した汎用方法で定義され、要求/応答呼び出しの一括およびワークフロー情報プロファイルへの要求セマンティクスの提供のために使用することができる。
初めに図6を参照すると、従来のSOAP RPCインプリメンテーションにおいて、クライアント102はJAX−RPC[9]ハンドラまたはAPI 602を介してネットワーク106とインターフェースし、サービス104はアプリケーション・サーバまたはSOAP呼び出しレシーバ604を介してネットワーク106とインターフェースする。クライアント側では、JAX−RPCハンドラ602はSOAPメッセージ・ハンドラ606と協働して、ネットワーク106を介した伝送のための単一のRPC要求を含むSOAPメッセージ300(図3)を生成する。とりわけ、JAX−RPCハンドラ602はRPC要求を生成し、SOAPメッセージ・ハンドラ606は、メッセージごとに1つの要求306で要求をSOAPメッセージ300(図3)にパッケージングする。同様にサーバ側では、アプリケーション・サーバまたはSOAP呼び出しレシーバ604はSOAPメッセージ・ハンドラ608と協働して、サービス104による処理のために各メッセージ300から単一のRPC要求を抽出する。とりわけ、アプリケーション・サーバ604はSOAPメッセージ300を受信し、SOAPメッセージ・ハンドラ608は各メッセージから個々のRPC呼び出しを抽出する。これらの要素の機能は、サーバからの復路では同様である。サーバ側では、アプリケーション・サーバ604はSOAPメッセージ・ハンドラ608と協働して、ネットワーク106を介した伝送のために単一のRPC応答を含むSOAPメッセージ300を生成する。同様にクライアント側では、JAX−RPCハンドラ602はSOAPメッセージ・ハンドラ606と協働して、クライアント102による処理のために各メッセージ300から単一のRPC応答を抽出する。
図7は、図6に示された従来のインプリメンテーションが本発明に従って修正される方法を示す。クライアント側では、JAX−RPCハンドラ602がSOAP呼び出し一括API 702によって補足され、SOAPメッセージ・ハンドラ606は、クライアントSOAP呼び出し一括送信ハンドラ704、クライアントSOAP呼び出し一括受信ハンドラ708、および呼び出し相関関係子712によって置き換えられる。クライアントSOAP呼び出し一括送信ハンドラ704は、複数の要求406をサーバ側に伝送するための単一のSOAPメッセージ400への添付ファイルとしてパッケージングし、クライアントSOAP呼び出し一括受信ハンドラ708は、呼び出し相関関係子712によって所期のクライアント102へディスパッチするために、戻りメッセージ400から個々の応答を抽出する。
サーバ側では、SOAPメッセージ・ハンドラ608はサーバSOAP呼び出し分離ハンドラ706、サーバSOAP呼び出し一括応答ハンドラ710、呼び出し相関関係子714、および順次および並列の呼び出し処理エンジンまたはワークフロー・マネージャ716によって置き換えられる。サーバSOAP呼び出し分離ハンドラ706は、呼び出し相関関係子714によって所期のサービス・プロバイダ104へディスパッチするために、アプリケーション・サーバ604によって受信されたメッセージ400から個々の要求406を抽出し、サーバSOAP呼び出し一括応答ハンドラ710は、アプリケーション・サーバ604によってクライアント側に返送するために、単一のメッセージ400に応答をパッケージングする。最終的に、順次および並列の呼び出し処理エンジン715は、メッセージ400からのワークフロー情報を使用して、クライアント側から受信した要求400の実行を順序付ける。このようにして、ワークフロー情報が並列に実行可能であると示す要求は並列に実行され、ワークフロー情報が順次実行しなければならないと示す要求は順次実行される。
以上、特定の実施形態について図示および説明してきたが、当業者であれば様々な修正が明らかとなろう。
付録:省略語および頭字語
HTTP Hypertext Transfer Protocol
IIOP Internet Inter−ORB Protocol
IPC Interprocess communication
JAX−RPC Java API for XML−based RPC
JMS Java Messaging Service
MIME Multipurpose Internet Mail Extensions
QOS Quality of service
RDF Resource Description Framework
RMI Remote Method Invocation
RPC Remote procedure call
SLA Service level agreement
SOAP Simple Object Access Protocol
UDDI Universal Description,Discovery and Integration
WSDL Web Service Definition Language
WSIF Web Services Invocation Framework
XML Extensible Markup Language
従来のSOAP RPCインプリメンテーションにおけるクライアント−サーバ対話を示す図である。 本発明のSOAP RPCインプリメンテーションにおけるクライアント−サーバ対話を示す図である。 従来のSOAP RPCインプリメンテーションにおけるSOAPメッセージのデータ・フォーマットを示す図である。 本発明のSOAP RPCインプリメンテーションにおけるSOAPメッセージのデータ・フォーマットを示す図である。 本発明の一実施形態の基本サービス呼び出し一括エンジンを示す図である。 クライアントからサーバへのメッセージ・フローの一例を示す図である。 呼び出し一括を使用したクライアントからサーバへのメッセージ・フローの一例を示す図である。

Claims (15)

  1. クライアントがサービス・プロバイダにサービス要求を発行し、前記サービス要求への応答を前記サービス・プロバイダから受信する、サービス指向アーキテクチャにおいて、要求および応答を処理する方法であって、前記クライアントおよび前記サービス・プロバイダは通信パスの第1および第2のエンドでエンティティを構成し、
    前記通信パスの一方のエンドで、前記通信パスの他方のエンドにあるエンティティに伝送するために複数の要求または応答を累積するステップと、
    前記累積された複数の要求または応答を含む単一のメッセージを生成するステップと、
    前記累積された複数の要求または応答を含む前記生成されたメッセージを、前記通信パスの他方のエンドにある前記エンティティに伝送するステップと、
    を有する、方法。
  2. 前記生成されたメッセージが、SOAP添付ファイルとして前記累積された複数の要求または応答を含むSOAPメッセージである、請求項1に記載の方法。
  3. 前記メッセージが前記通信パスの前記第1のエンドから伝送され、要求を含むものであって、
    前記サービス・プロバイダによって生成されたサービス要求への複数の応答を含む前記通信パスの前記第2のエンドからのメッセージを受信するステップと、
    前記通信パスの前記第1のエンドで処理するために前記受信されたメッセージから個々の応答を抽出するステップと、
    をさらに有する、請求項1に記載の方法。
  4. 前記メッセージが前記通信パスの前記第1のエンドから伝送され、要求を含むものであって、
    前記通信パスの前記第2のエンドで前記メッセージを受信するステップと、
    前記通信パスの前記第2のエンドで処理するために前記受信されたメッセージから個々の要求を抽出するステップと、
    をさらに有する、請求項1に記載の方法。
  5. 前記メッセージが前記要求の実行順序を指定するワークフロー情報を含み、
    前記要求を前記ワークフロー情報によって指定された順序で実行するステップをさらに有する、請求項4に記載の方法。
  6. 前記ワークフロー情報が、前記メッセージ内の要求が順次実行されるかまたは並列に実行されるかを指定し、前記要求が、前記ワークフロー情報によって指定されたように順次または並列に実行される、請求項5に記載の方法。
  7. クライアントがサービス・プロバイダにサービス要求を発行し、前記サービス要求への応答を前記サービス・プロバイダから受信する、サービス指向アーキテクチャにおいて、要求および応答を処理する方法であって、前記クライアントおよび前記サービス・プロバイダは通信パスの第1および第2のエンドでエンティティを構成し、
    前記通信パスの一方のエンドで、複数の要求または応答を含む前記通信パスの他方のエンドからのメッセージを受信するステップと、
    前記通信パスの前記一方のエンドで処理するために前記受信されたメッセージから個々の要求または応答を抽出するステップと、
    を有する、方法。
  8. 前記メッセージが前記通信パスの前記第2のエンドで受信され、前記要求の実行順序を指定するワークフロー情報と共に要求を含むものであって、
    前記ワークフロー情報によって指定された順序で前記要求を実行するステップをさらに有する、請求項7に記載の方法。
  9. クライアントがサービス・プロバイダにサービス要求を発行し、前記サービス要求への応答を前記サービス・プロバイダから受信する、サービス指向アーキテクチャにおいて、要求および応答を処理するための装置であって、前記クライアントおよび前記サービス・プロバイダは通信パスの第1および第2のエンドでエンティティを構成し、
    前記通信パスの一方のエンドで、前記通信パスの他方のエンドにあるエンティティに伝送するために複数の要求または応答を累積するための手段と、
    前記累積された複数の要求または応答を含む単一のメッセージを生成するための手段と、
    前記累積された複数の要求または応答を含む前記生成されたメッセージを、前記通信パスの他方のエンドにある前記エンティティに伝送するための手段と、
    を有する、装置。
  10. 前記メッセージが前記通信パスの前記第1のエンドから伝送され、要求を含むものであって、
    前記サービス・プロバイダによって生成されたサービス要求への複数の応答を含む前記通信パスの前記第2のエンドからのメッセージを受信するための手段と、
    前記通信パスの前記第1のエンドで処理するために前記受信されたメッセージから個々の応答を抽出するための手段と、
    をさらに有する、請求項9に記載の装置。
  11. 前記メッセージが前記通信パスの前記第1のエンドから伝送され、要求を含むものであって、
    前記通信パスの前記第2のエンドで前記メッセージを受信するための手段と、
    前記通信パスの前記第2のエンドで処理するために前記受信されたメッセージから個々の要求を抽出するための手段と、
    をさらに有する、請求項9に記載の装置。
  12. 前記メッセージが前記要求の実行順序を指定するワークフロー情報を含み、
    前記要求を前記ワークフロー情報によって指定された順序で実行するための手段をさらに有する、請求項11に記載の装置。
  13. クライアントがサービス・プロバイダにサービス要求を発行し、前記サービス要求への応答を前記サービス・プロバイダから受信する、サービス指向アーキテクチャにおいて、要求および応答を処理するための装置であって、前記クライアントおよび前記サービス・プロバイダは通信パスの第1および第2のエンドでエンティティを構成し、
    前記通信パスの一方のエンドで、複数の要求または応答を含む前記通信パスの他方のエンドからのメッセージを受信するための手段と、
    前記通信パスの前記一方のエンドで処理するために前記受信されたメッセージから個々の要求または応答を抽出するための手段と、
    を有する、装置。
  14. 前記メッセージが前記通信パスの前記第2のエンドで受信され、前記要求の実行順序を指定するワークフロー情報と共に要求を含むものであって、
    前記ワークフロー情報によって指定された順序で前記要求を実行するための手段をさらに有する、請求項13に記載の装置。
  15. マシンによる読み取りが可能であり、請求項1から8のいずれかに記載の方法ステップを実行するためにマシンによって実行可能な命令のプログラムを有形に具体化する、プログラム・ストレージ・デバイス。
JP2006534749A 2003-10-14 2004-10-05 サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置 Pending JP2007514990A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/685,205 US20050080930A1 (en) 2003-10-14 2003-10-14 Method and apparatus for processing service requests in a service-oriented architecture
PCT/EP2004/052443 WO2005041035A1 (en) 2003-10-14 2004-10-05 Method and apparatus for processing service requests in a service-oriented architecture

Publications (1)

Publication Number Publication Date
JP2007514990A true JP2007514990A (ja) 2007-06-07

Family

ID=34423137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006534749A Pending JP2007514990A (ja) 2003-10-14 2004-10-05 サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置

Country Status (6)

Country Link
US (1) US20050080930A1 (ja)
EP (1) EP1683013A1 (ja)
JP (1) JP2007514990A (ja)
CN (1) CN1867898A (ja)
TW (1) TW200517917A (ja)
WO (1) WO2005041035A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280130A (ja) * 2006-04-07 2007-10-25 Microsoft Corp クライアントサーバシステム
JP2009535871A (ja) * 2006-04-28 2009-10-01 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ アウトオブボックス・サービスのカスケーディング
JP2012027910A (ja) * 2010-07-09 2012-02-09 Thomson Licensing クライアント及びサーバにおけるリモートプロシージャコールハンドラを動作させる方法並びに当該クライアント及びサーバを含むコンピュータシステム
JP2014013583A (ja) * 2008-06-26 2014-01-23 Qualcomm Incorporated マルチプロセッサデバイスにおけるデータ転送および受信の期間中のコンテキストスイッチングを低減するための方法および装置
JP2018530796A (ja) * 2016-08-09 2018-10-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 複数のスレッドを実行するための装置および方法

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7912938B2 (en) * 2003-04-11 2011-03-22 Hewlett-Packard Development Company, L.P. Correlation of web service interactions in composite web services
CA2446082A1 (en) * 2003-10-22 2005-04-22 Ibm Canada Limited - Ibm Canada Limitee Single file serialization for physical and logical meta-model information
US7647415B1 (en) * 2004-02-25 2010-01-12 Sun Microsystems, Inc. Dynamic web services stack
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US9268607B2 (en) 2004-03-13 2016-02-23 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
JP4574197B2 (ja) * 2004-03-16 2010-11-04 キヤノン株式会社 データ処理方法、プログラム、及び、装置
US20050270970A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Failsafe service oriented architecture
US20060031354A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture
US20050273847A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Programmable message processing stage for a service oriented architecture
US20050278335A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Service oriented architecture with alerts
US20060080419A1 (en) * 2004-05-21 2006-04-13 Bea Systems, Inc. Reliable updating for a service oriented architecture
US20050273517A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with credential management
US20060031353A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamic publishing in a service oriented architecture
US20060007918A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Scaleable service oriented architecture
US20060031433A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Batch updating for a service oriented architecture
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US20060031481A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture with monitoring
US20050264581A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Dynamic program modification
US20050278374A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Dynamic program modification
US7653008B2 (en) 2004-05-21 2010-01-26 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20050267947A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture with message processing pipelines
US20050273502A1 (en) * 2004-05-21 2005-12-08 Patrick Paul B Service oriented architecture with message processing stages
US20060031432A1 (en) * 2004-05-21 2006-02-09 Bea Systens, Inc. Service oriented architecture with message processing pipelines
US20050273520A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with file transport protocol
US20050273516A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamic routing in a service oriented architecture
US20050273497A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with electronic mail transport protocol
US20050267892A1 (en) * 2004-05-21 2005-12-01 Patrick Paul B Service proxy definition
US20060069791A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Service oriented architecture with interchangeable transport protocols
US20060031930A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US20060159077A1 (en) * 2004-08-20 2006-07-20 Vanecek George Jr Service-oriented middleware for managing interoperability of heterogeneous elements of integrated systems
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7546613B2 (en) * 2004-09-14 2009-06-09 Oracle International Corporation Methods and systems for efficient queue propagation using a single protocol-based remote procedure call to stream a batch of messages
JP4487725B2 (ja) * 2004-10-25 2010-06-23 株式会社島津製作所 分析データ処理システム及び分析装置
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US7809848B1 (en) * 2005-03-15 2010-10-05 Oracle America, Inc. System and method for aggregating NFS requests
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
WO2006112981A2 (en) 2005-03-16 2006-10-26 Cluster Resources, Inc. Automatic workload transfer to an on-demand center
EP1872249B1 (en) 2005-04-07 2016-12-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US7937703B2 (en) * 2005-09-27 2011-05-03 International Business Machines Corporation Stateless server-side automation of web service requests using dynamically generated web service interfaces
JP4635821B2 (ja) * 2005-10-24 2011-02-23 富士ゼロックス株式会社 情報処理装置、情報処理方法、及びプログラム
US7881251B2 (en) * 2006-08-18 2011-02-01 General Motors Llc Lightweight protocol for use in a TCP/IP communications network
EP1895411A1 (en) * 2006-08-24 2008-03-05 Siemens Aktiengesellschaft Method and system for execution of a process
US10896393B2 (en) * 2006-12-19 2021-01-19 International Business Machines Corporation Autonomic control of calibration for pointing device
US8010654B2 (en) * 2006-12-21 2011-08-30 International Business Machines Corporation Method, system and program product for monitoring resources servicing a business transaction
US20080155042A1 (en) * 2006-12-26 2008-06-26 Gaby Heinle Method For Communication And Collaboration Over A Network
US8996394B2 (en) * 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment
US8185916B2 (en) 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus
US8224840B2 (en) 2007-08-28 2012-07-17 International Business Machines Corporation Sensing and responding to service discoveries
US8141151B2 (en) * 2007-08-30 2012-03-20 International Business Machines Corporation Non-intrusive monitoring of services in a service-oriented architecture
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8505038B2 (en) * 2008-01-28 2013-08-06 Blue Coat Systems, Inc. Method and system for enhancing MS exchange (MAPI) end user experiences in a split proxy environment
US20090313628A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Dynamically batching remote object model commands
US8413107B2 (en) * 2008-07-15 2013-04-02 Hewlett-Packard Development Company, L.P. Architecture for service oriented architecture (SOA) software factories
US8037122B2 (en) * 2008-09-19 2011-10-11 Oracle International Corporation Processing of service-oriented tasks within a grid computing environment
US8886787B2 (en) * 2009-02-26 2014-11-11 Microsoft Corporation Notification for a set of sessions using a single call issued from a connection pool
US8412784B2 (en) 2009-03-03 2013-04-02 Microsoft Corporation Storage model for maintaining structured document fidelity
CN101604239B (zh) * 2009-07-16 2011-12-21 浪潮电子信息产业股份有限公司 一种基于请求响应的存储管理软件架构方法
CN101997851B (zh) * 2009-08-17 2014-04-09 中兴通讯股份有限公司 访问服务端的目录的方法、客户端、服务端及系统
US20110055373A1 (en) * 2009-08-30 2011-03-03 International Business Machines Corporation Service identification for resources in a computing environment
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
TWI410871B (zh) * 2009-12-18 2013-10-01 China Steel Corp Universal interface module
US9367371B2 (en) 2010-02-05 2016-06-14 Paypal, Inc. Widget framework, real-time service orchestration, and real-time resource aggregation
CN102291460B (zh) * 2011-08-15 2013-10-09 华北电力大学 基于Web Service的信息资源访问方法
CN103164256A (zh) * 2011-12-08 2013-06-19 深圳市快播科技有限公司 一种实现单机支持高并发处理方法及系统
CN103297395B (zh) * 2012-02-24 2016-08-24 阿里巴巴集团控股有限公司 一种互联网业务的实现方法、系统以及装置
US9621635B1 (en) * 2012-07-31 2017-04-11 Niantic, Inc. Using side channels in remote procedure calls to return information in an interactive environment
KR101384564B1 (ko) * 2012-11-29 2014-04-17 (주)투비소프트 데이터셋 전송 프로토콜을 이용한 다중 요청 처리 방법
WO2014123884A1 (en) * 2013-02-07 2014-08-14 Interdigital Patent Holdings, Inc. Methods and apparatuses for restful batch services
CN103345420B (zh) * 2013-06-03 2017-12-22 百度在线网络技术(北京)有限公司 批量调用api接口的方法、系统和装置
CN104486440B (zh) * 2014-12-25 2018-03-02 浪潮电子信息产业股份有限公司 一种基于消息总线的云计算管理软件交互方法
CN105117230B (zh) * 2015-08-31 2018-08-10 深圳神州数码云科数据技术有限公司 一种双端任务处理方法
US10013416B1 (en) 2015-12-18 2018-07-03 Amazon Technologies, Inc. Language based solution agent
EP3241343B1 (en) * 2016-03-17 2018-11-28 Google LLC Multi-provider data provision with request batching
US10382370B1 (en) * 2016-08-11 2019-08-13 Amazon Technologies, Inc. Automated service agents
CN107920094B (zh) * 2016-10-08 2021-07-16 阿里巴巴集团控股有限公司 数据获取方法、装置、服务器及网络设备
US10484313B1 (en) 2016-10-28 2019-11-19 Amazon Technologies, Inc. Decision tree navigation through text messages
US10469665B1 (en) 2016-11-01 2019-11-05 Amazon Technologies, Inc. Workflow based communications routing
US10574723B2 (en) * 2016-11-30 2020-02-25 Nutanix, Inc. Web services communication management
CN107623788B (zh) * 2017-09-22 2020-10-27 海南飞特同创科技有限公司 应用启动速度的提高方法、装置及计算机可读存储介质
CN109688174A (zh) * 2017-10-18 2019-04-26 北京京东尚科信息技术有限公司 一种基于多代理商服务的虚拟业务实现方法和装置
US10437634B1 (en) 2018-04-16 2019-10-08 Microsoft Technology Licensing Llc Independently threading API calls to service a request
CN111552578B (zh) * 2020-04-30 2023-08-04 成都新潮传媒集团有限公司 一种第三方接口调用方法及装置
WO2022004258A1 (en) * 2020-07-03 2022-01-06 Hitachi Astemo, Ltd. SYSTEM AND METHOD FOR EFFICIENT AND DETERMINISTIC SERVICE-ORIENTED COMMUNICATION OVER PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) BUS

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675890A (ja) * 1992-08-26 1994-03-18 Chugoku Nippon Denki Software Kk クライアント・サーバ間の要求データ応答データ授受方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321274B1 (en) * 1996-06-28 2001-11-20 Microsoft Corporation Multiple procedure calls in a single request
US6480853B1 (en) * 1999-03-08 2002-11-12 Ericsson Inc. Systems, methods and computer program products for performing internet searches utilizing bookmarks
US6640244B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Request batcher in a transaction services patterns environment
US6874010B1 (en) * 1999-10-01 2005-03-29 Accenture Llp Base service architectures for netcentric computing systems
US20030182364A1 (en) * 2002-03-14 2003-09-25 Openwave Systems Inc. Method and apparatus for requesting and performing batched operations for web services

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675890A (ja) * 1992-08-26 1994-03-18 Chugoku Nippon Denki Software Kk クライアント・サーバ間の要求データ応答データ授受方式

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280130A (ja) * 2006-04-07 2007-10-25 Microsoft Corp クライアントサーバシステム
JP2009535871A (ja) * 2006-04-28 2009-10-01 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ アウトオブボックス・サービスのカスケーディング
JP2014013583A (ja) * 2008-06-26 2014-01-23 Qualcomm Incorporated マルチプロセッサデバイスにおけるデータ転送および受信の期間中のコンテキストスイッチングを低減するための方法および装置
JP2012027910A (ja) * 2010-07-09 2012-02-09 Thomson Licensing クライアント及びサーバにおけるリモートプロシージャコールハンドラを動作させる方法並びに当該クライアント及びサーバを含むコンピュータシステム
US9154269B2 (en) 2010-07-09 2015-10-06 Thomson Licensing Method for operating a remote procedure call handler in a client and a server and computer system comprising the same
JP2018530796A (ja) * 2016-08-09 2018-10-18 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 複数のスレッドを実行するための装置および方法
US10606673B2 (en) 2016-08-09 2020-03-31 Huawei Technologies Co., Ltd. Apparatus and method for running plurality of threads

Also Published As

Publication number Publication date
CN1867898A (zh) 2006-11-22
WO2005041035A1 (en) 2005-05-06
TW200517917A (en) 2005-06-01
US20050080930A1 (en) 2005-04-14
EP1683013A1 (en) 2006-07-26

Similar Documents

Publication Publication Date Title
JP2007514990A (ja) サービス指向アーキテクチャにおいてサービス要求を処理するための方法および装置
US8200764B2 (en) System and method for achieving highly scalable real-time collaboration applications using HTTP
EP1993260B1 (en) Shortcut in reliable communication
EP1438674B1 (en) System for integrating java servlets with asynchronous messages
US7529824B2 (en) Method for selecting a service binding protocol in a service-oriented architecture
US8205007B2 (en) Native format tunneling
JP4594621B2 (ja) 分散コンピューティング環境における集約サービスの供給
EP1463259B1 (en) Method, system and computer program for transmitting and receiving messages through a customizable communication channel
US7912895B2 (en) System and method for managing service interactions
US8849892B2 (en) Method and system for brokering messages in a distributed system
JP4681968B2 (ja) サービス要求装置、サービス要求方法、サービス要求プログラム、及び記録媒体
US20040045004A1 (en) System for runtime web service to java translation
US20070022199A1 (en) Method, Apparatus, and Program Product For Providing Web Service
EP1233590A1 (en) Content provider for a computer system
Mockford Web services architecture
US7685258B2 (en) Disconnectible applications
JP2004246747A (ja) 既存サービスのラッピング方法および装置
Kang et al. Android RMI: a user-level remote method invocation mechanism between Android devices
US20030212587A1 (en) Apparatus and methods for coordinating Web services using role based interpretation of coordination plans
WO2008025828A1 (en) Business process and system with integrated network quality of service management
JP5548433B2 (ja) Webサービス基盤システム
JP2000132522A (ja) 分散オブジェクト通信処理方法、分散オブジェクトシステム、及び分散オブジェクト通信プログラムを記録した記録媒体
Guthrie et al. Asp. net http runtime
Shamsi et al. Foundations of a generic framework for Distributed Applications
Alonso SOAP

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101207