JP5052522B2 - ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法 - Google Patents

ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法 Download PDF

Info

Publication number
JP5052522B2
JP5052522B2 JP2008542771A JP2008542771A JP5052522B2 JP 5052522 B2 JP5052522 B2 JP 5052522B2 JP 2008542771 A JP2008542771 A JP 2008542771A JP 2008542771 A JP2008542771 A JP 2008542771A JP 5052522 B2 JP5052522 B2 JP 5052522B2
Authority
JP
Japan
Prior art keywords
message
string
communicated
intermediate data
data structure
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.)
Expired - Fee Related
Application number
JP2008542771A
Other languages
English (en)
Other versions
JP2009519508A (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.)
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=38110257&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5052522(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009519508A publication Critical patent/JP2009519508A/ja
Application granted granted Critical
Publication of JP5052522B2 publication Critical patent/JP5052522B2/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • 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/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は一般にインターネット/ワールド・ワイド・ウェブなどのネットワーク通信に関し、より具体的には、ウェブ・ベースのサービス(WS)を提供し消費するエンティティに係る通信帯域幅及びオーバーヘッドを縮小するためのシステム及び方法に関する。
ウェブ・サービス(WS)は、遠隔のマシーン上のアプリケーション・ロジックへのプログラム的アクセスを提供するために開発された一組の規格を含んだプログラム・モデルである。このアプリケーション・ロジックは、あらゆるプラットフォーム上のクライアントにより、且つ、あらゆるプログラム言語でアクセス可能である。中核となるウェブ・サービス構築ブロックの一つはSOAP(シンプル・オブジェクト・アクセス・プロトコル)であり、これは、限定的ではないがRPC(リモート・プロシージャ・コール)メッセージをXMLドキュメントとして送信することを可能にしてウェブ・サービスの機能を呼び出す標準的なフレームワークである。WSはインターネット(又はウェブ)上ばかりでなく企業内ネットワーク上でも、同じサイト又は同じ部屋に配置されているマシーンの間でさえも、広く用いられていることが知られている。当初WSはウェブ全域でのアクセス用に設計されたが、現在、WSはイントラネット、即ち企業内ネットワークの中で普及している。
図1(A)は、ロジック・コンポーネントを含む典型的なWSアーキテクチャ10を示す。図1(A)に示すように、ウェブ・サービス・プロバイダ18はウェブ・サービスの展開の関与し、それらを、サービス登録及びウェブ・サービスの発見に関与するウェブ・サービス・ブローカーとともに発行する。具体的には、ブローカーは種々のサービスのタイプ、説明、及び、サービス要求者が必要なサービスを見出して予約する助けとなるサービスのロケーションを列挙する。ウェブ・サービス要求者12は、サービス・ブローカー15を用いてウェブ・サービスのロケーションを見出してサービス呼び出しに関与し、必要なサービスを呼び出し、それをサービス・プロバイダにより実行する。さらに具体的には、非特許文献1に記載されているように、ウェブ・サービス・プロバイダ18は、ウェブ・サービス・ランタイム環境として機能しサービス・プロバイダのホストとして働くサービス・コンテナ28を含む。サービス・コンテナ28は、具体的には、クライアント通信用の環境を定義し、標準化された方法を実施して、ウェブ・サービス定義言語(WSDL)として知られる、ウェブ・サービス記述用の標準的なXMLスキーマ・ベースの仕様を用いてネットワーク・サービスを記述する。さらに、これは、サービス・レジストリ30a、bによりサービス記述の登録を扱う。それらレジストリは、ユニバーサル・ディスクリプション、ディスカバリー及びインテグレーション(UDDI)標準30a(www.UDDI.org)、又は、レジストリ・サービス、対話プロトコル、及びメッセージ定義を定義するebXMLレジストリ30bを実施するレジストリを含み、さらに共有情報に対するストレージとして機能する(www.ebXML.org)。ウェブ・サービス要求者12は、サービス・レジストリを調べて必要なサービスを見出し、それをSOAPメッセージング25を用いてサービス・プロバイダから呼び出すことにより、クライアント・ランタイム環境として機能する、サービス配信コンポーネント22を含む。既知のように、SOAPプロトコルは以下の要素を含む。即ち、SOAPメッセージの他の要素のコンテナとして機能するSOAPエンベロープと、下層のトランスポート・プロトコル用のSOAPトランスポート・バインディングと、メッセージ内のデータを表すための一組のSOAP符号化規則(アプリケーション専用データ・タイプのインスタンスをXMLメッセージにマッピングする)と、アプリケーション対話パターンとを含むが、そのパターンは、殆どの場合RPC規則であって、RPC要求及び応答用の表現を定義し、リモート・プロシージャ・コールをシリアル化する方式として定義されSOAPメッセージとして応答するRPC規則によるものである。(Java、並びに全てのJavaベースの登録商標及びロゴは、米国、他の国、又は両方におけるSun Microsystems社の登録商標である。)
図1(B)は、従来のSOAP RPC実施における例示的なクライアント・サーバ間対話を示す。図1(B)に示すように、クライアント12はサービス・プロバイダ(又は単に「サービス」)18と、インターネットなどのネットワーク99上で、SOAP/HTTPプロトコル(即ち、HTTPトランスポート・バインディングを用いるSOAPメッセージ・プロトコル)を用いて対話する。SOAPメッセージング・プロトコルは、メッセージ25を、サービス・プロバイダ・エンドポイント18とサービス要求者エンドポイント12の間で交換することを可能にする。これは、HTTP(インターネット)メッセージ・トランスポート及び/又はRPC規則によるSOAP使用法である。SOAPはHTTP上でメッセージをどのように交換すべきかを規定するが、HTTPの代わりに任意の通信プロトコル(例えば、SMTP、WebSphere(登録商標)MQ、Raw Sochetなど)又は方法を使用できることを理解されたい。(WebSphereは、米国及び他の国におけるインターナショナル・ビジネス・マシーン社の登録商標である)。この従来の実施においては、クライアント12は、サービス・プロバイダ18へのリモート・プロシージャ・コールを、各々のコール毎に1つのメッセージを送信することにより行う。同様に、サービス・プロバイダ18は、これらのコールに対して、各々の応答毎に1つのメッセージをクライアント12に返信することにより応答する。ウェブ・サービスの主技術は、SOAPメッセージを送信する前にそれを構成すること、及びSOAPメッセージを受信した後にそれを解読することの、それぞれのプロセスである。SOAPメッセージに関するこれらのプロセスは、一般に、DOM(Document Object Model)又は類似のツリー状オブジェクトをメモリ内に造ることによって実施される。このようにして、プロセスは、メッセージのテキスト表現を考慮せずに、SOAPメッセージのツリー表現を用いて実施することができる。
XMLのASCII性質のために、ウェブ・サービスの実施は著しい帯域幅要件と通信オーバーヘッドを組み込む。さらに、WSは自己記述的であり、クライアントとサーバは要求及び応答メッセージの形式と内容を認識することだけが必要である。WSメッセージ形式の定義はメッセージと共に伝送され、外部のメタデータ・リポジトリ又はコード生成ツールは不要である。従って、何れのSOAPメッセージのコンテンツを解析するときにも、オーバーヘッドが当たり前となる。SOAPとXMLを使用することは、非常に大きなメッセージに変換する、即ちTCP/IPスタック内の著しいオーバーヘッドと大きな帯域幅を使用するばかりでなく、SOAPのリッチ構造のために、著しい構文解析オーバーヘッドにもなる。さらにその上、HTTPは、WSの最も普通に用いられるトランスポートであるが、付加的な通信及び構文解析オーバーヘッドを加える。
従来のデスクトップ/サーバ・プラットフォームには、これらのオーバーヘッドの影響は、ギガビット・イーサネット・ネットワーク、より高速のCPU及びより多くのメモリを用いることによって、そして初期のSOAP実施、例えばアパッチ・アクシス・エンジンに存在する性能ボトルネックを除去することにより、十分に補われてきた。残念ながらリソースが限定されたモバイル・プラットフォーム、例えば、携帯電話、PDA、又はラップトップ型コンピュータなどは、これらの解決法からは利益を得ない。ハードウェア指向の解決法は一般に、これらのエネルギーが限定されサイズが限定されたデバイスには適用できないが、何故ならより高速のネットワーク又はCPU,又はより多くのメモリは、より大きな電力を消費するので、所望のフォーム・ファクタに常に適合するとは限らないからである。同様に、SOAPエンジンの実施は、それらのメモリ・フットプリントを縮小するための付加的な最適化を必要とする。
典型的なB2Bウェブ・サービス展開のシナリオにおいては、例えば、ウェブ・サービス・クライアントはサービス・エンド・ポイントに対して幾つかのコールを行うことができ、これらのコールは呼び出し毎には変化しない幾つかのパラメータを有する可能性がある。例えば、数人の買手がウェブ・サービス・コールを用いて売手のウェブ・サービス・エンド・ポイントと対話し、発注書を売手に送信する場合を考えてみよう。各々の発注書は幾つかの欄を有することができ、これらの欄の多くは買手を記述することができるので、特定の買手に対して、各々の呼び出しのために同じにすることになる。この種類のパラメータ繰り返しは、主として、ウェブ・サービスのステートレス特性によるものである。サービス・エンド・ポイントとクライアントの組合せに特有のステートを保存することは、簡単なステートレス・クイックジップ(qzip)型の圧縮によって可能であるよりも優れた、ネットワーク・トラフィックの圧縮比を可能にすることができる。
WSサービス、特にメッセージの圧縮を促進する様々な技術が当技術分野で知られている。そのような技術の例は、例えば、以下に列挙する通りである。
1)非特許文献2は、凡そ同じ速さでqzipの約2倍の圧縮比を達成する、XMLデータ圧縮用ツールXMillを記述している。XMillはデータから構造を分離し、関連データ項目をグループ化し、専用コンプレッサの集合を適用する。しかし、WSメッセージが生成された後にのみ適用できるので、メッセージ待ち時間が増加する。
2)非特許文献3は、XMLを2進コード化されたものと、残りのインラインでコード化されたものとの所定のトークンに分割するWAP Binary XML(WBXML)について記述している。トークン表は送信/受信側の両方に保存される。初めはWAPに対するトークン表だけが使える。SyncML及びDRMREL(デジタル著作権管理著作権表示言語)に対する付加的な表が後で規定される。主要な利点はWBXMLを意識したSAX構文解析プログラムは非常に小さなオーバーヘッドを有することである。主要な欠点は、XMLダイアレクトに対するトークン表は両エンドに存在しなくてはならないので、所定のXMLダイアレクトに対してしか使用できないことである。
非特許文献4は、圧縮するためのテキストから構造を分離して関連するスキーマの利点を利用するMillauについて記述している。インライン・テキストを圧縮しXML基本形を推測する際にWBXMLに拡張される。MillauはWBXMLと同じ欠点を有する。
非特許文献5は、論文の初めの部分でSOAP(.NET及びJava)、RMI−IIOP、Corba、RMI、及びqziped SOAPの帯域幅要件を比較することを記述している。第2の部分は、メッセージと以前のメッセージの間の差分だけを送信する差分SOAP圧縮を記述している。実際には、差分コード化は、初めにWSDLファイルを用いてスケルトン・メッセージの集合を計算し、次に、メッセージと予測されたスケルトンの間の差分を計算し、その差分を送信するように働く。差分コード化において、コード化及びデコードのオーバーヘッドは相当に大きくなる可能性がある。
5)非特許文献6は、圧縮が、特にサーバをオーバーロードにするとき、いかに有益ではないかを記述している。
6)非特許文献7は、典型的な圧縮ツールによると、データを圧縮して送信する方が非圧縮データを送信するよりもいかに大きな電力を費やすかを記述している。ハードウェアを意識した圧縮ツールの最適化が圧縮に費やされる電力を削減する。この論文は圧縮スキームを注意深く選択しなければならないことを示す。
7)非特許文献8は、2つの最適化法、(1)Name Space Equivalency(NPE)、及び(2)WSDL Aware Encoding(WAE)を提案している。NPEは、XMLメッセージを異なるが等価な形式に回復することを可能にする。WAEは、モバイル・デバイス・ゲートウェイを必要とし、これがWSDLファイルに記述されるオペレーションに対するコーディング表を作成する。NPEは有意な圧縮を加えるようには見えず、一方WAEはゲートウェイを必要とする。
8)非特許文献9は、以前に見られた構文構造を識別するために履歴を利用し、一致する構造構文を再使用するXMLパーサ(「Deltarser」)について記述している。Deltarserパーサは受信側ノード上の構文解析オーバーヘッドを縮小するが、帯域幅要件を縮小せず、また送信ノード上のメッセージ生成のオーバーヘッドを縮小しない。
"Developing JavaTM Web Services"(Ramesh Nagappan他、Wiley Publishing,Inc.2003)。 Hartmut Liefke及びDan Suciu、「XMill:an Efficient Compressor for XML Data」(ACM SGMOD 2000)。 WAP Binary XML(WBXML)(http://www.w3.org/TR/wbxml/)1999年6月。 Marc Girardot及びNeel Sundaresan、「Millau:ウェブ上のXMLの効率的な表現及び交換のためのコード化形式」(http://www9.org)2000年5月。 Cristian Werner、Carsten Buschmann、及びStefan Fischer、「差分コード化を用いたSOAPメッセージの圧縮」(ウェブ・サービスに関するIEEE国際会議、2004年7月)。 M.Tian、T.Voigt、T.Naumowicz、H.Ritter、及びJ.Schiller、「モバイル・ウェブ・サービスに関する性能考察」(Elsevier Computer Communication Journal、第27巻、11号、2004年7月1日、ページ1097−1105)。 Kenneth Barr及びKrste Asanovic、「電力を意識した無損失データ圧縮」(Mobisys 2003、2003年5月)。 Naresh Apte、Keith Deutsch、及びRavi Jain、「無線SOAP:モバイル無線ウェブ・サービスの最適化」(ポスター、www2005.org、2005年5月)。 Toshiro Takase、Hisashi Miyasita、Toyotaro Suzumura、及びMichiaki Tatsubori、「バイト・シークエンス記憶に基づく、適応性があり、迅速で、安全なXMLパーサ」(www2005.org、2005年5月)。 W3C(登録商標)Note「ウェブ・サービス記述言語(WSDL)1.1」2001年3月15日。 W3C(登録商標)Recommendation「拡張可能なマークアップ言語(XML)1.0(第2版)」(2000年10月6日)(http://www.w3.org)。 W3C(登録商標)Recommendation、SOAPバージョン1.2、パート0:手引き(2003年6月24日)。 W3C(登録商標)Recommendation、SOAPバージョン1.2、パート1:メッセージング構造(推奨)。 W3C(登録商標)Recommendation、SOAPバージョン1.2、パート2:アジャンクト(推奨)。 W3C(登録商標)Recommendation、SOAPバージョン1.2、パート2:仕様アサーション及びテスト・コレクション(推奨)。 W3C(登録商標)Recommendation、SOAPメッセージ送信最適化機構(2005年1月25日)。 W3C(登録商標)Recommendation、XML−バイナリ最適化パッケージング。 W3C(登録商標)ドキュメント・オブジェクト・モデル(DOM)(http://www.w3.org/DOM/)。
配備されたウェブ・サービス環境において、SOAPメッセージング処理のオーバーヘッドを有意に縮小するための1つ又は複数の最適化法を与えるシステム及び方法が提供されることが好ましい。
配備されたウェブ・サービス環境において、SOAPメッセージング通信のオーバーヘッドを有意に縮小するための1つ又は複数の最適化法を与えるシステム及び方法が提供されることが好ましい。
既存のWS/SOAPメッセージング圧縮スキームよりも有意に低い電力及び待ち時間損失で同等の圧縮をもたらす、WS/SOAPメッセージング圧縮最適化スキームを与えるシステム及び方法が提供されることが好ましい。
本発明は、好ましい実施形態により、配備されたウェブ・サービス環境におけるSOAPメッセージングのオーバーヘッドを有意に縮小するための1つ又は複数の最適化法を与えるシステム、方法及びコンピュータ・プログラムに向けられる。
より具体的には、本発明は、好ましい実施形態により、2つのエンドポイント間のWSトラフィックの反復性を利用して、2つのデバイスのSOAP及びHTTPエンジン内の幾つかの層にわたる一連の最適化法を識別する方法を提供する。より具体的には、両方のデバイスは、それぞれの方向に送受信された最新の「N」個のWS関連バイトの履歴を保持することが好ましい。履歴のサイズは両方向に対して等しい必要はないが、一方向に関する送信及び受信エンドは正確に等しい履歴サイズを使用する必要がある。信頼度が高く順序正しいWSの配布は、2つのエンドが共通履歴に関する一致したビューを有することを保証する。
通信オーバーヘッドは、SOAPメッセージ内の明確に規定された要素を以前のメッセージ内のリファレンスで置き換えることにより縮小することが好ましい。送信及び受信エンドの両方がそれらの履歴バッファ内で、リファレンスをそれらが参照するストリングで置き換えることが好ましい。これは、同じ方向に送信されるその後のメッセージにおける同じ又は類似の圧縮を可能にする。
従って、本発明の1つの態様により、メッセージ通信を行うためのシステム、方法及びコンピュータ・プログラムが提供される。メッセージ通信を行う方法は、送信側デバイスと受信側デバイスのそれぞれにおいて、送信され受信されるメッセージ・ストリングに対応するキャラクタ・ストリングをそれぞれの送信側及び受信側デバイスにストアするための、一定量の第1キャッシュ・ストレージを割り当てるステップと、通信すべきメッセージを表し、送信側デバイスにおける第2キャッシュ・ストレージ内でのストレージに適合する、中間データ構造体を構築するステップと、構築された中間データ構造体に基づいて通信すべきメッセージ・ストリングを構築するステップと、その後の通信を行う各々のメッセージに対して、構築中の最新メッセージに関する構築された中間データ構造体内の部分を、前の通信済みメッセージ・ストリングに対応する構築された中間データ構造体中に存在する類似部分と同一の部分によって識別するステップと、最新の構築された中間データ構造体に基づいて通信を行うべきメッセージ・ストリングを構築し、メッセージ・ストリング中の各々の識別された部分を、前の通信済みメッセージに付随する同一のキャラクタ・ストリング部分に対応する第1キャッシュ・ストレージ内のロケーションに対するリファレンス・インジケータで置き換えるステップと、受信側デバイスにおいて、受信メッセージ・ストリング内のリファレンス・インジケータを識別し、受信側デバイスにおける第1キャッシュ・ストレージ内にストアされた1つ又は複数のキャッシュされた同一のキャラクタ・ストリングで置き換えて受信メッセージを構築するステップとを含み、その際、送信及び受信デバイスにおけるメッセージ通信インフラストラクチャのリソースは保存される。
本発明の1つの実施形態において、中間データ構造体は、1つ又は複数のサブツリー又はツリー断片を含む識別されたストリング部分を有する、メッセージの構造化されたツリー表現を含む。
本発明の1つの実施形態において、送信側及び受信側デバイスにおけるキャッシュ履歴ストレージの割り当ては、デバイス間の初めのハンドシェイク・プロトコルを実施して割り当てられるべき第1キャッシュ・ストレージ量に関する通信を行うステップを含む。さらにこの実施形態に対しては、受信側デバイスにおける第1キャッシュ・ストレージの割当量は、送信側デバイスにおいて割り当てられた第1キャッシュのサイズと少なくとも同じであることが好ましい。
本発明の1つの実施形態において、リファレンス・インジケータは、前の通信済みメッセージ・ストリングに対応する構築された中間データ構造体中に存在する類似のサブツリー又は断片部分に同一の、構築された中間データ構造体中の識別されたサブツリー又は断片部分に対応するシリアル化されたメッセージ・ストリング部分の属性を指示する。
属性は、前の送信済みメッセージの指示、前の通信済みメッセージのツリー表現を識別するメッセージID、識別されたツリーに対応するストリングの長さ、及び、前の通信済みメッセージ内のオフセットの長さのうちの1つ又は複数を含むことができる。
さらに、本発明の1つの実施においては、受信側デバイスにおいて、同一部分の識別は、受信メッセージ・ストリングを構文解析し、受信側デバイスにおける第2キャッシュ・ストレージ内でのストレージのための構造化ツリー表現を構築するステップを含む。構造化ツリー表現はストアされて、次に受信側において受信メッセージを構築するのに用いられる。
有利には、置き換えの候補は通信プロトコル・ヘッダ(例えば、HTTPヘッダ)及びWSメッセージ(例えば、SOAPエンベロープ)の要素を含むことが好ましい。しかし、オペレーション、名称、及びパラメータ又は結果さえも置き換えるさらに進んだ最適化を利用することができる。
別の態様によれば、ウェブ環境においてメッセージ通信を行うための装置が提供され、その装置は、送信側デバイスにおいて受信側デバイスに通信を行うべきWSメッセージ・ストリングを生成するためのウェブ・サービス(WS)スタックの実施をサポートする手段であって、前記の通信を行うメッセージ・ストリングは前記の送信側デバイスにおける第1キャッシュ・ストレージ内にストアされ、且つ、前記の受信側デバイスにおける第1キャッシュ・ストレージ内にストアされる、手段と、受信側デバイスにおいて、この受信側デバイスに通信された受信WSメッセージ要求ストリングに応答するWSスタック実施をサポートする手段とを含み、前記の送信側及び受信側デバイスにおける各々のWSスタック実施は、送信及び受信されたWSメッセージ・ストリング・コンテンツを表す中間データ構造体を構築してストアし、そして構築された中間データ構造体をそれぞれ送信側及び受信側デバイスにおいてローカルにストアし、前記の送信側デバイスにおける前記のWSスタック実施は、通信を行うべきメッセージ・ストリングを最新の構築された中間データ構造体に基づいて構築し、メッセージ・ストリング内の各々の識別された部分を、前の通信済みメッセージに付随する同一のキャラクタ・ストリング部分に対応する前記の第1キャッシュ・ストレージ内のロケーションに対するリファレンス・インジケータで置き換える方法を実施し、前記の受信側デバイスにおける前記のWSスタック実施は、受信メッセージ・ストリング内のリファレンス・インジケータを識別し、そして前記の受信側デバイスにおける前記の第1キャッシュ・ストレージ内ストアされた1つ又は複数のキャッシュされた同一のキャラクタ・ストリング部分で置き換えて受信メッセージを構築するが、その際、前記の送信及び受信デバイスにおけるWSメッセージ通信インフラストラクチャのリソースは保存される。
別の態様によれば、機械により可読であり、且つ、メッセージ通信を行う方法ステップを実行するための機械により実行可能な命令のプログラムを有形に具体化したプログラム・ストレージ・デバイスが提供されるが、このプログラム・ストレージ・デバイスは、送信側デバイスと受信側デバイスのそれぞれにおいて、送信され受信されたメッセージ・ストリングに対応するキャラクタ・ストリングをそれぞれ送信側及び受信側デバイスにおいてストアするための、一定量の第1キャッシュ・ストレージを割り当てるステップと、通信を行うべきメッセージを表し、送信側デバイスにおける第2キャッシュ・ストレージ内でのストレージに適合する、中間データ構造体を構築するステップと、前記の構築された中間データ構造体に基づいて通信を行うべきメッセージ・ストリングを構築するステップと、その後の通信を行う各々のメッセージに対して、構築中の最新のメッセージに関する構築された中間データ構造体中の部分を、前の通信済みメッセージ・ストリングに対応する構築された中間データ構造体中に存在する類似部分に同一の部分によって識別するステップと、通信を行うべきメッセージ・ストリングを前記の最新の構築された中間データ構造体に基づいて構築し、メッセージ・ストリング内の各々の識別された部分を、通信済みの前のメッセージに付随する同一のキャラクタ・ストリング部分に対応する前記の第1キャッシュ・ストレージ内のロケーションに対するリファレンス・インジケータで置き換えるステップと、受信側デバイスにおいて、受信メッセージ・ストリング内のリファレンス・インジケータを識別し、受信側デバイスにおける第1キャッシュ・ストレージ内にストアされた1つ又は複数のキャッシュされた同一のキャラクタ・ストリングで置き換えて受信メッセージを構築するステップとを含み、その際、送信及び受信デバイスにおけるメッセージ通信インフラストラクチャのリソースは保存される。
ここで本発明の好ましい実施形態を、実施例としてだけ、添付の図面を参照しながら説明する。
本発明は、好ましい実施形態により、図1(A)、(B)に示されるような配備されたウェブ・サービス環境においてSOAPメッセージングのオーバーヘッドを有意に縮小するための1つ又は複数の最適化法を与えるシステム、方法及びコンピュータ・プログラムを提供する。本明細書において、印刷形態又はオンラインで入手可能であり、引用により本明細書に組み入れられる、以下の論文を引用する。
1.非特許文献10。
1.非特許文献11。
1.非特許文献12。
1.非特許文献13。
1.非特許文献14。
1.非特許文献15。
1.非特許文献16。
1.非特許文献17。
1.非特許文献18。
SOAPメッセージング・プロトコルに対する第1の随意の拡張によると、特定の方向、例えば送信に関する履歴サイズを提案する第1の要求メッセージ内に新しいHTTP選択肢が設けられる。他の(例えば受信)エンドポイントが拡張を実施するならば、それは、応答方向に関する履歴サイズを伴い、そして場合によっては逆方向に対するより小さな履歴サイズに関する要求を伴って応答することになる。この初めのハンドシェイクはTCPプロトコルに対するSACK(選択的確認)拡張にわずかに類似する。履歴サイズを協定する機能がこのハンドシェイク・プロトコルに加えられている。その後の履歴サイズの調整は、何れかの方向において新しい履歴サイズのバイト数を提案することにより実行される。承認又は拒絶は、応答メッセージ内に表示される。
図2(A)、(B)は、WS受信エンドポイント(WSクライアント)12及びWS送信エンドポイント(WSサーバ)18の両方が本発明の好ましい実施形態の最適化を実施するかどうかを判断して両エンドにおける履歴サイズを同じ値に設定するために用いられるハンドシェイク・プロトコル40を具体的に示す。
図2(A)に示すように、ウェブ・サーバ・クライアント12は初めのハンドシェイク・メッセージ45aにおいて履歴サイズに関する値を提案するが、これは付加的にクライアントが提案した最適化を実施することをサーバに示す。ウェブ・サービス・サーバ18がその最適化を実施して必要な使用可能メモリを有する場合には、それはハンドシェイク応答メッセージ45b内で同じ履歴サイズ又はより小さな値を返す。そうでない場合には、図2(B)に示すように、ウェブ・サービス・サーバ18は提案された履歴サイズを無視する。これを実施するには複数の方法がある。例えば、WSベースの実施は、所定の名称及びシグニチャを有する付加的なオペレーションを利用し、これは最適化を実施する全てのエンドポイントに加えられる。従って、例えば、クライアント12からの第1コールはこのオペレーションのWS呼び出しとなり、サーバ18は履歴サイズに関する値を返す(図2(A))か、又は要求を理解できない、即ち、提案された最適化を実施しない場合にはSOAP障害を返す(図2(B))。この実施は、付加的なWS呼び出しを必要とする不利な点を有する。代替的な実施は、上記の協定に対するプロローグ内に新しいHTTPヘッダ・フィールド又はXMLコメントを用いる。後者の実施には、ハンドシェイク・プロトコル40が第1アプリケーション呼び出しの背に乗るので、付加的なMS呼び出しは必要としない。ハンドシェイク・プロトコル40は、後に対話中に履歴サイズを変更するか又は提案された最適化の使用を終了するのに付加的に用いることができる。それらのシナリオにおいては、後者の実施のうちの一つを用いる場合に、WSサーバにより再協定を開始することができる。
ハンドシェイク・メッセージ45aにおいて協定されるキャッシュの履歴サイズは、「管理された」メモリ、即ち、SOAPメッセージ・ストリング履歴のみをストアするために割り当てられたキャッシュであることを理解されたい。(サブ)ツリーをキャッシュするのに用いられるメモリ(例えば、ツリー・キャッシュ)は、そのコンテンツはストリング・キャッシュ内に保持されるストリングによって決定されるが、このハンドシェイク・プロトコルによっては協定されず、このメモリはクライアント(送信側)及び受信側エンドの両方で同じである必要はない。SOAPメッセージ・ストリング履歴に割り当てられるキャッシュだけが、両エンドで同じサイズを有する必要がある。
図3は、本発明の好ましい実施形態の最適化による、送信側のSOAP/HTTP処理を説明するフローチャートである。
図3において、送信エンドポイントにおけるWSスタックの生成において、1つの実施形態による圧縮が実行される、即ち、SOAPメッセージが構築される際にSOAPメッセージ要素の置き換えが識別される。これは、新しいメッセージを利用可能な履歴と比較することにより機能する典型的なストリング圧縮スキームとは対照的である。より具体的には、送信エンドポイントにおけるSOAPエンジンの種々のコンポーネントは、ローカル履歴においてなお利用可能なSOAPコンポーネントの小履歴を保持することが必要となる。この圧縮は、SOAP発信パスと深く結合するので、SOAPプロトコルのセマンティクスの利点を十分に利用する。この特徴は、既存のスキームよりも有意に低い電力及び待ち時間損失で同等の圧縮をもたらし、より多く通信されればより多く学習される、即ち、十分な履歴が保持される場合より大きく圧縮されるという付加的な利益を伴う。その結果、適合アルゴリズムを用いて履歴サイズを調整することがさらに可能になる、即ち、クライアント側と受信側が、それぞれの側が維持するキャッシュ履歴サイズの量を再協定することができる。しかし、両側が同じ量のメッセージ・ストリング・キャッシュを維持することを理解されたい。このアルゴリズムが働くためには、受信側は送信側と少なくとも同じ量又はより多くの量のキャッシュを維持する必要がある。
1つの実施形態において、SOAPメッセージが図3に示すように生成される送信側において、クライアント・デバイスにおいて実施される方法100は、送信スタッブを呼び出す典型的なステップを含む。実行コード(ルーチン)及びスタッブがその上で動作する本発明の1つの実施形態により修正されたWSスタック・インフラストラクチャはステップ102で確立され、そこでトランザクション(例えば、メソッド呼び出し)をサーバ上のWSオブジェクトへルーティングすることが可能となり、及び/又はサーバ・オブジェクトと対話してウェブ・サービスを呼び出すことが可能になる。次に、ステップ105において、キャッシュ履歴が前のハンドシェイク・プロトコルにより前に協定されている(送信側及び受信側においてDOM(様)ツリー・データ構造体のコンテンツをストアするために)と想定して、ツリー・キャッシュが空であるかどうかの判断がなされる。このキャッシュは、履歴が構築されていないときに第1メッセージが送信される時点又はその前では、空である可能性がある。ツリー・キャッシュがステップ105において空であると判断される場合には、次にステップは、ドキュメントへの動的アクセス及びその更新を可能にする階層的なドキュメント・オブジェクト・モデルDOM(様)ツリー構造体をステップ108において構築し、構築されたツリーをツリー・キャッシュ内にストアするステップを含む。次いで、次のステップ113において、ツリーは、例えば、送信側においてストアされたツリー・データ構造体をオリジナルのメッセージ・データ構造体と同一のコピーに再構築して戻すことができるキャラクタ・ストリームに変換するルーチンを実施することにより、シリアル化することができる。最後にステップ115において、シリアル化されたバイト・ストリームがHTTPヘッダに付加(ラップ)され、要求がサーバに送信される。
再び図3を参照すると、ステップ105において、本発明の好ましい実施形態の最適化修正により、ツリー・キャッシュが空でない、即ち、第1及び/又は前のメッセージから以前に構築されたDOM(様)ツリー・データ構造体又はサブツリー又はツリー断片(例えば、ブランチ)を含んだ履歴を含むと判断される場合には、次のステップは、ステップ120に示されるように、キャッシュ内の既存のツリー構造体から拡張ツリー構造体を構築するステップを含む。拡張ツリー構造体のストリング表現をセーブするのに利用可能なキャッシュ・サイズの量が利用できない場合には、ステップ120において、より古い構築されたツリー又はそれの部分(サブツリー又はツリー断片)を剪定することができる。いずれにしても、拡張ツリー構造体はステップ123に示されるようにセーブされる。この最適化において、存在するキャッシュ・ツリー構造体は、以前のツリーの要素(サブツリー又はツリー断片)を用いて構築され、従って、ツリーをスクラッチから構築する必要性をなくし、処理のためのリソースを保存する。ステップ126に進むと、メッセージを解析してそのストリング表現を構築するステップにおいて、拡張ツリー構造体はシリアル化され、送信に適したデータ・バイトに変換される。しかし、好ましい実施形態の最適化のために、構築されたツリーの全てをシリアル化する必要はない。即ち、以前のメッセージ内で送信されたストリング(例えば、サブツリー又はツリー断片に対応する)が、そのメッセージ部分が送信されたストリング・キャッシュ履歴内の位置を示すバック・リファレンス・ポインタで置き換えられる際に圧縮が施される。そのようなバック・リファレンス・ポインタ又は類似のインジケータは、ストリングの位置に設けられ、キャッシュ履歴内のツリー部分が存在する位置を指示する属性、例えば、前に用いられたサブツリー又はツリー断片データ構造体に付随する構築されたストリングを検索するためにストリング・キャッシュ履歴内をルック・バックするのに要するバイト数、及び、そのサブツリー又はツリー断片のために生成されたキャラクタ量の指示、を有する。このように、圧縮は、ツリー・コンテンツは送信する必要がなく、受信側WSスタック処理がそのキャッシュ履歴内ストアされた正確なコンテンツを検索し関連するメッセージを構築することを可能にする、置き換えられたバック・リファレンス・ポインタのみを送信するように、実施される。次に、ステップ128において、SWメッセージの通信に関与するネットワーク・プロトコル・ヘッダ、例えば、HTTPヘッダを圧縮するステップが実行される。このように、最後に、ステップ129において、圧縮されたHTTPヘッダがシリアル化されたバイト・ストリームに付加され、圧縮された要求が送信される。
1つの実施形態において、HTTPヘッダはSOAPメッセージの重要な部分を表す可能性があるので、HTTPヘッダも圧縮を実行することが有利である。このことは、HTTP要求及び応答メッセージの両方に対して、現在規定される又は想定される全てのHTTPバインドに対して当てはまる。埋め込みシステム用及び比較的簡単な呼び出し用に設計されたSOAPスタックに対して、この部分は、例えば、図5(A)及び(B)に示す例示的なWS呼び出し200の中の例示的なHTTPヘッダ・メッセージ・コンテンツに示されるように、特に大きくなる可能性がある。送信側において、HTTPヘッダは、ストリング圧縮に非常によく似た方法を用いて、しかし遥かに小さなオーバーヘッドで圧縮される。例えば、HTTP圧縮は、修正LZW(Lempel Ziv Welch)アルゴリズムを実施することにより実行されるが、ここで「修正」は、LZWを全体のストリング・キャッシュには適用せず、以前に送信されたHTTPヘッダにのみ適用するステップからなる。この理由は、圧縮を実行するスタック・コンポーネントが、新しいヘッダを比べることができる数個のサブストリング、即ち、以前に送信されたメッセージのヘッダだけが存在することを首尾よく認識するからである。受信側において、圧縮されたヘッダは、それが指示するサブストリング、即ち以前に受信されたメッセージのヘッダで置き換えられ、ウェブ・コンテナ、即ちHTTP処理層に送られ、この層が有するあらゆる情報と共に、サブストリングの処理中にそれに結合される。この付加的な情報は、大部分は(属性、値)の対からなるが、サブストリングのその後の処理を補助するようにセーブされ、この付加された情報の使用により、受信側のHTTP処理のオーバーヘッドが縮小される。このように、図3のステップ129は、圧縮されたHTTPヘッダを付加するステップを意図するものである。
既知のように、DOMパーサは入力ドキュメントからメモリ内にツリー構造体を作成する。DOMは、プログラム及びスクリプトがドキュメントのコンテンツ、構造体及び形式に動的にアクセスして更新することを可能にする、プラットフォーム及び言語に中立的なインタフェースである。これはさらに、XMLドキュメントを、他のさらに特殊化されたインタフェースを実施するノード・オブジェクトの階層として表現するための仕様を与える(http://www.w3.org/DOM/#specs参照)。幾つかの型のノードは、種々の型のチャイルド・ノードを有することができ、他のノードは、ドキュメント構造体内のそれより下には何ももつことのできないリーフ・ノードである。WSスタック実施はDOMインタフェースを用い、DOMパーサはSOAPメッセージを処理する。しかし、他の型の構造化言語パーサ、例えば、SAXパーサを、本発明の趣旨及び範囲から逸脱せずに用いることができる。従って、DOM法はSAXパーサ(Simple API for XML、最新バージョンはSAX2.0.1)の使用により置き換えて入力するSOAPメッセージのツリー表現を構築することができる。
従って、図3をより詳しく拡張すると、ツリー・ベースのAPIはツリー構造体の回りに集中され、従ってツリーのコンポーネント上に、ドキュメント・インタフェース、ノード・インタフェース、ノードリスト・インタフェース、要素インタフェース、Attrインタフェースなどのインタフェースが設けられる。好ましい実施形態の最適化をサポートするWSスタックの実施は、類似のアプローチを用いる。しかし、少なくとも3つの付加的なノード属性、即ち、1)そのノードに根付いたツリーに対応するXMLストリングの長さ、2)メッセージを識別するためにツリーが表示するメッセージID、及び、3)メッセージ内のオフセット、が用いられる。これらの属性は、シリアル化されたサブツリー部分又はツリー断片のデータ表現の代りに加えられるバックポインタを生成するのに用いられる。
ステップ105において評価されるツリー・キャッシュ構造体について詳しく説明すると、ツリー・キャッシュは、最新の数個の送信又は受信されたメッセージ、又はそれらメッセージの断片に対応するツリー/サブツリーの集合であり、新しいメッセージが送信又は受信されると、最も古いメッセージは破棄される。送信側が用いることのできるツリー/メッセージの上限数があり、同様に、受信側が保持すべきメッセージ/ツリーの下限数がある。この2つの数は、協定された履歴サイズよりも大きな累積長を有する最短のメッセージ履歴として決定される。従って、図3のステップ126を詳しく説明すると、ツリー・キャッシュの実施は同一のサブツリーの複数のコピーの保存を避け、既存のツリーから新しいツリー(再使用)の構築を促進する。
従って、ツリーを構築する(ステップ123−126)ための送信側の機能性を詳しく説明すると、新しいメッセージを構成するとき、修正WSスタックはツリー・キャッシュ・コンテンツから可能な限り多くのサブツリーの再使用を試みる。SOAPメッセージ内で、再使用されたサブツリーは以前に送信されたメッセージ内のXMLサブストリングに対するリファレンスに変換される。受信側キャッシュ内にあることが保証されるメッセージに対応するサブツリーだけが、SOAP/XMLメッセージ内のバック・リファレンスを作成するのに用いられる。
図4は、本発明の好ましい実施形態による最適化による受信側SOAP/HTTP処理を説明するフローチャートである。受信側において、SOAPメッセージは図4に示すように受信され、サーバにおいて実施される方法130は、クライアントのSOAPメッセージ(要求)を受信してHTTPヘッダを剥離するステップ(ステップ132)を含む。次に、ステップ135において、HTTPヘッダが圧縮されているかどうかの判断がなされる。ステップ135においてHTTPヘッダが圧縮されていると判断される場合には、次にステップ138において、HTTPヘッダが解凍され、プロセスはステップ140に進み、これは、メッセージが受信されたときにHTTPヘッダに実施される正規の処理を示す。そうではなく、ステップ135においてHTTPヘッダが圧縮されていないと判断される場合には、プロセスはステップ140に進み、これは、メッセージが受信されたときにHTTPヘッダに実施される正規の処理を示す。処理ステップ140の後、ステップ142において、キャッシュ(DOM(様)ツリー・データ構造体コンテンツをストアするための)が空であるかどうかの判断がなされる。このサーバ(受信側)キャッシュは、この特定の送信側からの第1メッセージが受信された時点では、受信側において履歴がまだ構築されていないので、空である可能性がある。ステップ142でツリー・キャッシュが空であると判断される場合には、受信側の処理は、要求ストリングを構文解析してDOM(様)ツリーを構築するステップ(ステップ145)、新しいツリーをツリー・キャッシュ内にセーブするステップ(ステップ146)、及び、要求内のオペレーション/パラメータを識別してWS受信側スタッブを呼び出すステップ(ステップ148)などを含むステップを実行する。クライアントはサーバからの応答を構成する入力メッセージを同様に処理することを理解されたい。
SOAP/HTTPメッセージが受信される受信側において、ステップ142においてツリー・キャッシュ(DOM(様)ツリー・データ構造体コンテンツをストアするための)が空で出ないと判断される場合には、次のステップは、ステップ150において要求ストリングを構文解析してDOM(様)拡張ツリーを構築するステップを含む。しかし、この実施形態において、構築されるツリーは、前のメッセージ(呼び出し)からのローカルなストリング・キャッシュ履歴内に以前にストアされた、以前のキャッシュされた(指示された)サブツリー又はツリー断片データ表現を利用する。好ましい実施形態によれば、受信メッセージに対応するツリーを構築するときに、受信側はキャッシュされたサブツリーを、入力SOAP/XMLメッセージ内のバック・リファレンス・ポインタがあれば、それに指示される通りに用いる。即ち、明示的なXMLコンテンツ受信されるとき、新しいサブツリーが構築され、メッセージを表現するツリー内に挿入される。新しいツリーは、入力メッセージ内のバック・リファレンスによって指示される通りに、受信側キャッシュ内の既存のツリーの大きな部分を再使用することができる。次に、ステップ153に示されるように、新しいDOM(様)拡張ツリー構造体がキャッシュ内にセーブされる。最後に、ステップ156において、オペレーション/パラメータが識別され、ステップ156に示されるようにWS機能性を呼び出すことにより、受信されたメッセージに応答してWS受信側スタッブが呼び出される。
従って、解凍が行われる受信エンドポイントにおいて、本発明の好ましい実施形態により以下の最適化法が提供される。具体的には、あらゆるバック・リファレンス・ポインタがローカル・ストリング・キャッシュ履歴内のストリングで置き換えられ、受信されたメッセージ・ストリーム内に結合される。リファレンスは常に、ローカルSOAPエンジンの入力パスによって以前に構文解析されたストリングによって置き換えられることが好ましい。構文解析された後、ストリングは、それらのHTTP/SOAPレベルのラベル、例えば、URL,EncodingStyleTokenなどで注釈を付けられる。従って、本発明は好ましくは、予め構文解析されたストリングを受信されたWSメッセージの構文解析内に直接結合することを可能にするように入力パスに対する修正を提案する。これは、圧縮されたストリング部分のそれぞれに対して一回だけの構文解析をもたらすことになる。
好ましい実施形態により実施される圧縮操作の非常に簡単な実施例において、ここで図5(A)、(B)を参照すると、WS呼び出し及び応答200における繰返しの型を示す例示的なメッセージ・トレースが具体的に示される。トレースは、TCPMonitorと呼ばれるツールによって取り込まれるが、このツールは、SOAP仕様のオープン・ソース実施でありApacheウェブ・サイト(www.apache.org)から入手できるAxisの一部分である。図5(A)、(B)には、例示的なWS SOAPトラフィックは双方向((A)でクライアントからサーバへ、(B)でサーバからクライアントへ)に通信されるように示されている。図5(A)に示すように、第1要求(クライアントからサーバへ)はHTTPヘッダ、及び、それに続く「add」呼び出しに関するSOAPメッセージ205を含む、演算「add」のこの実施例において、2つの例示的なパラメータは「7」及び「5」である。第2要求(クライアントからサーバへ)において、HTTPヘッダの後に、例示的なパラメータ「3」及び「11」を伴う「mul」演算の第2呼び出しに関するSOAPメッセージ210が続く。図5(B)は、第1「add」呼び出し205、第2「mul」呼び出し210のそれぞれに応答する、それぞれの応答メッセージ(サーバからクライアントへ通信されるメッセージ)215、220を示す。
図6は、図5(A)に示す2つの要求メッセージ205、210のそれぞれのツリー表現255,260を示す。2つの呼び出しの各々における共通のメッセージ断片275(重なり)が示される。メッセージのSOAP部分だけがツリーとして表現される、即ち、HTTPヘッダは表現されないことに注意されたい。属性は要素ノード(円)に結び付けられた正方形ノード265、280として表されている。
図7(A)は、図5(A)の2つのSOAP要求メッセージ205、210に対応するそれぞれのストリング285,290の間の重なり277を示す。修正WSスタックは強調された範囲を、コンパクト・エンコーディングを用いて、バック・リファレンス・ポインタで置き換える。図7(B)は、同じ2つの要求メッセージの間であるが、それらのHTTPヘッダにおける重なり277を示す。この最適化は、WSスタックの両方の部分である、SOAPエンジンをサポートするHTTPエンジンにおける変更を必要とする。
有利なことに、好ましい実施形態による本発明の機構は、入力パスに対する修正を必要とし、CPU時間及びメモリ使用における実質的な節約を生むことが期待され、これはWSメッセージ処理中の実質的な電力節約につながる。
提案された最適化は対称的である必要はないことに注意されたい。デスクトップ/携帯電話の対のように、2つのデバイスが非常に大きく異なるリソース特性を有する場合、或いは、一方向のメッセージが、非常に大きく暗号化された結果のような疑似乱数コンポーネントにより支配される場合には、最適化は一方向においてのみ可能とすることができる。所与の方向における最適化を動作不能にするためには、履歴サイズをゼロに設定する。
本発明は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラムの図を参照しながら説明された。各々の図はコンピュータ・プログラム命令によって実施できることを理解されたい。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、又は機械を製造するための他のプログラム可能データ処理装置のプロセッサに供給することができ、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサにより実行する命令が、本明細書において述べられた機能を実施する手段を作成することができる。
これらのコンピュータ・プログラム命令はまた、コンピュータ又は他のプログラム可能なデータ処理装置に特定の様式で機能するように指示することができるコンピュータ可読メモリ内にストアして、コンピュータ可読メモリ内にストアされた命令が本明細書において述べられた機能を実施する命令手段を含む製品を製造するようにすることができる。
これらのコンピュータ・プログラム命令はまた、コンピュータ可読又は他のプログラム可能なデータ処理装置にロードして、一連の演算ステップをコンピュータ又は他のプログラム可能な装置上で実行させ、コンピュータ又は他のプログラム可能な装置上で実行する命令が本明細書において述べられた機能を実施するステップを与えるコンピュータ実施プロセスを作成することができる。
本発明は、その例証となる好ましい実施形態に関して具体的に示され説明されたが、当業者であれば、添付の特許請求の範囲によってのみ限定されるべき本発明の趣旨及び範囲から逸脱せずに、その形態及び細部に前述及び他の変更を施すことができることを理解するであろう。
本発明が好ましい実施形態によって実施されるウェブ・サービス・アーキテクチャ10(A)及びメッセージング・ダイアグラム(B)を示す。 受信及び送信エンドの両方が本発明の好ましい実施形態の最適化を実施するかどうかを判断して両エンドにおける履歴サイズを同じ値に設定するために用いられるハンドシェイク・プロトコルを示す。 本発明の好ましい実施形態の最適化により、送信側のSOAP/HTTP処理を説明するフローチャートである。 本発明の好ましい実施形態の最適化により、受信側のSOAP/HTTP処理を説明するフローチャートである。 2つの連続したWS呼び出しに関する双方向の通信(クライアントからサーバへ(A)及びサーバからクライアントへ(B))を示すWS SOAPトラフィックを例示する。 本発明の好ましい実施形態による、図5(A)に示される2つの要求メッセージ205、210のそれぞれのツリー表現255、260を示す。 本発明の好ましい実施形態による、図5(A)の要求メッセージ呼び出し205、210内のSOAPメッセージ/HTMLヘッダ内の2つのストリングに対応するそれぞれのストリング285、290の間のそれぞれの重なりを示す。
符号の説明
10:ウェブ・サービス(WS)アーキテクチャ
12:ウェブ・サービス要求者、WS受信エンドポイント(WSクライアント)
15:ウェブ・サービス・ブローカー
18:ウェブ・サービス・プロバイダ、WS送信エンドポイント(WSサーバ)
22:サービス配信コンポーネント
25:SOAPメッセージング
28:サービス・コンテナ
30a、30b:サービス・レジストリ
99:ネットワーク
40:ハンドシェイク・プロトコル
45a:初めのハンドシェイク・メッセージ
45b:ハンドシェイク応答メッセージ
100、130:方法
200:WS呼び出し
202、203:HTTPヘッダ
205:「add」呼び出し(要求メッセージ)
210:「mul」呼び出し(要求メッセージ)
215:呼び出し205に対する応答メッセージ
220:呼び出し210に対する応答メッセージ
255:要求メッセージ205のツリー表現
260:要求メッセージ210のツリー表現
275:共通のメッセージ断片
265、280:正方形ノード(属性)
285:要求メッセージ205のストリング
290:要求メッセージ210のストリング
277:ストリング285と290の重なり
297:2つの要求メッセージ205、210の重なり

Claims (14)

  1. メッセージ通信を行う方法であって、
    送信側デバイスと受信側デバイスとの間でハンドシェイク・プロトコルを実施することにより、それぞれ送信側及び受信側デバイスにおいて送信及び受信SOAPメッセージ・ストリングに対応するキャラクタ・ストリングをストアするための、同じ第1キャッシュ・ストレージの量を割り当てるステップと、
    通信を行うべきメッセージを表し、前記送信側デバイスにおける第2キャッシュ・ストレージ内でのストレージに適合する、中間データ構造体を構築するステップと、
    通信を行うべきメッセージ・ストリングを、前記構築された中間データ構造体に基づいて構築するステップと
    を含み、さらに、各々のその後の通信を行うメッセージに対して、
    構築中の最新のメッセージに対する構築された中間データ構造体中の部分を、前の通信済みメッセージ・ストリングに対応する構築された中間データ構造体中に存在する類似部分と同一の部分により識別するステップと、
    前記最新の構築された中間データ構造体に基づいて通信を行うべきメッセージ・ストリングを構築し、メッセージ・ストリング中の各々の識別された部分を、前記前の通信済みメッセージ・ストリングに付随する同一のキャラクタ・ストリング部分に対応する前記第1キャッシュ・ストレージ内のロケーションに対するリファレンス・インジケータで置き換えるステップと、
    前記受信側デバイスにおいて、受信メッセージ・ストリング内のリファレンス・インジケータを識別し、前記受信側デバイスにおける前記第1キャッシュ・ストレージ内にストアされている1つ又は複数のキャッシュされた同一のキャラクタ・ストリング部分で置き換えて受信メッセージを構築するステップと
    を含み、
    前記送信側及び受信側デバイスにおけるメッセージ通信インフラストラクチャ・リソースは保存される、
    方法。
  2. 通信を行うべきメッセージ・ストリングを前記構築するステップは、前記構築された中間データ構造体をシリアル化してメッセージ・ストリングを形成するステップを含む、請求項1に記載の方法。
  3. 前記中間データ構造体はメッセージの構造化されたツリー表現を含み、前記識別されたストリング部分は1つ又は複数のサブツリー又はツリー断片を含む、請求項2に記載の方法。
  4. 前記リファレンス・インジケータは、前の通信済みメッセージ・ストリングに対応する構築された中間データ構造体中に存在する類似のサブツリー又は断片部分に同一の、構築された中間データ構造体中の識別されたサブツリー又は断片部分に対応するシリアル化されたメッセージ・ストリング部分の属性を指示する、請求項に記載の方法。
  5. 属性は前の送信済みメッセージの指示を含む、請求項に記載の方法。
  6. 属性は前の通信済みメッセージの前記ツリー表現を識別するメッセージIDを含む、請求項4又は5に記載の方法。
  7. 属性は前記識別されたツリーに対応する前記ストリングの長を含む、請求項4乃至6のいずれか1項に記載の方法。
  8. 属性は前記前の通信済みメッセージ内のオフセットの長を含む、請求項4乃至7のいずれか1項に記載の方法。
  9. 前記受信側デバイスにおいて、前記部分を識別するステップは、前記受信メッセージ・ストリングを構文解析して前記受信側デバイスにおける第2キャッシュ・ストレージ内でのストレージのために構造化されたツリー表現を構築するステップを含み、前記構造化されたツリー表現はストアされて、後で前記受信側デバイスにおいて受信メッセージを構築するのに用いられる、請求項に記載の方法。
  10. 新しいメッセージがそれぞれ送信及び受信されるにつれて、前記送信側及び受信側デバイスにおける前記第2キャッシュ・ストレージ内の同一部分の前記ツリー表現を間断なく更新するステップをさらに含む、請求項に記載の方法。
  11. クライアント送信側デバイス及び受信側デバイスの各々において割り当てられる前記第1キャッシュ・ストレージの量は固定され、新しいメッセージが送信又は受信されるとき、より古い1つ又は複数のサブツリー又はツリー断片は、対応するストリング・メッセージが前記第1キャッシュ・ストレージ内にドロップインされるときに破棄される、請求項に記載の方法。
  12. ウェブ環境下でメッセージ通信を行うための装置であって、
    送信側デバイスにおいてウェブ・サービス(WS)スタック実施をサポートして受信側に通信を行うべきWSメッセージ・ストリングを生成する手段であって、前記通信を行うメッセージ・ストリングはSOAPメッセージ・ストリングであって、前記送信側デバイスにおける第1キャッシュ・ストレージ・デバイス内にストアされ、且つ、前記受信側デバイスにおける第1キャッシュ・ストレージ内にストアされる、手段と、
    受信側デバイスにおいてWSスタック実施をサポートして前記受信側デバイスに通信された受信WSメッセージ要求ストリングに応答する手段であって、前記送信側及び受信側デバイスにおける各々の前記WSスタック実施は、送信及び受信されたWSメッセージ・ストリング・コンテンツを表す中間データ構造体を構築しストアし、そして構築された中間データ構造体をそれぞれ送信側及び受信側デバイスにおいてローカルにストアする、手段と、
    前記送信側デバイスにおける前記WSスタック実施が、通信を行うべきメッセージ・ストリングを最新の構築された中間データ構造体に基づいて構築し、メッセージ・ストリング内の各々の識別された部分を、前の通信済みメッセージに付随する同一のキャラクタ・ストリング部分に対応する前記第1キャッシュ・ストレージ内のロケーションに対するリファレンス・インジケータで置き換えるための実施手段と、
    前記受信側デバイスにおける前記WSスタック実施が、受信メッセージ・ストリング内にリファレンス・インジケータを識別し、前記受信側デバイスにおける前記第1キャッシュ・ストレージ内にストアされている1つ又は複数のキャッシュされた同一のキャラクタ・ストリング部分で置き換えるための実施手段と
    を含み、
    前記送信側デバイスにおける第1キャッシュ・ストレージ・デバイス及び前記受信側デバイスにおける第1キャッシュ・ストレージは、前記送信側デバイスと前記受信側デバイスとの間におけるハンドシェイク・プロトコルにより協定された同じサイズを有し、
    前記送信側及び受信側デバイスにおけるWSメッセージ通信インフラストラクチャ・リソースは保存される、
    装置。
  13. 請求項1乃至11のいずれか1項に記載の方法を実施するように動作可能な手段を含む装置。
  14. コンピュータ・プログラムであって、該プログラムがコンピュータ上で動作するとき、請求項1乃至11のいずれか1項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
JP2008542771A 2005-12-05 2006-11-30 ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法 Expired - Fee Related JP5052522B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/293,909 US7808975B2 (en) 2005-12-05 2005-12-05 System and method for history driven optimization of web services communication
US11/293,909 2005-12-05
PCT/EP2006/069171 WO2007065850A2 (en) 2005-12-05 2006-11-30 System and method for history driven optimization of web services communication

Publications (2)

Publication Number Publication Date
JP2009519508A JP2009519508A (ja) 2009-05-14
JP5052522B2 true JP5052522B2 (ja) 2012-10-17

Family

ID=38110257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008542771A Expired - Fee Related JP5052522B2 (ja) 2005-12-05 2006-11-30 ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法

Country Status (11)

Country Link
US (2) US7808975B2 (ja)
EP (1) EP1969814B1 (ja)
JP (1) JP5052522B2 (ja)
KR (1) KR101027299B1 (ja)
CN (1) CN101341724B (ja)
AT (1) ATE426992T1 (ja)
BR (1) BRPI0619763B1 (ja)
CA (1) CA2640838A1 (ja)
DE (1) DE602006005963D1 (ja)
TW (1) TWI377819B (ja)
WO (1) WO2007065850A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7808975B2 (en) * 2005-12-05 2010-10-05 International Business Machines Corporation System and method for history driven optimization of web services communication
US7836396B2 (en) * 2007-01-05 2010-11-16 International Business Machines Corporation Automatically collecting and compressing style attributes within a web document
US8125986B2 (en) * 2007-01-19 2012-02-28 International Business Machines Corporation Method for enabling secure usage of computers using a mechanism lockdown
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US20100043065A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Single sign-on for web applications
CN101557297B (zh) * 2009-05-14 2011-06-22 中兴通讯股份有限公司 一种基于互联网的开放式电信业务生成系统及方法
US8161109B2 (en) * 2009-07-15 2012-04-17 Red Hat, Inc. Client side culling of dynamic resources
US10971032B2 (en) * 2010-01-07 2021-04-06 John Allan Baker Systems and methods for providing extensible electronic learning systems
US8621016B2 (en) 2010-11-09 2013-12-31 International Business Machines Corporation Adaptive differential propagation of soap messages
EP2557752B1 (de) * 2011-08-11 2017-09-27 Siemens Aktiengesellschaft Verfahren und vorrichtung zum herstellen einer end-zu-end-kommunikation zwischen zwei netzwerken
US9276998B2 (en) * 2011-10-06 2016-03-01 International Business Machines Corporation Transfer of files with arrays of strings in soap messages
US9232022B2 (en) 2013-06-27 2016-01-05 Aol Inc. Systems and methods for reduced bandwidth data transmission between network connected devices
JP2015052821A (ja) * 2013-09-05 2015-03-19 株式会社東芝 通信装置および通信方法
EP3056997A4 (en) * 2013-10-08 2017-04-19 Sony Corporation Server device, client device, information processing method, and recording medium
JP6386074B2 (ja) * 2014-03-21 2018-09-05 ピーティーシー インコーポレイテッド バイナリ動的restメッセージを使用したシステム及び方法
WO2015144234A1 (en) * 2014-03-27 2015-10-01 Hewlett-Packard Development Company, L.P. Scheduling downloads
US20160248823A1 (en) * 2015-02-24 2016-08-25 Investcloud Inc Messaging protocol
US11032379B2 (en) * 2015-04-24 2021-06-08 Citrix Systems, Inc. Secure in-band service detection
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10616109B1 (en) * 2016-04-14 2020-04-07 United Services Automobile Association (Usaa) System and method for web service atomic transaction (WS-AT) affinity routing
CN105938489A (zh) * 2016-04-14 2016-09-14 北京思特奇信息技术股份有限公司 一种压缩详单的存储和展示方法及系统
CN109213694B (zh) 2017-06-30 2023-04-25 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备
US11165730B2 (en) 2019-08-05 2021-11-02 ManyCore Corporation Message deliverability monitoring

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3368883B2 (ja) * 2000-02-04 2003-01-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
JP3990115B2 (ja) * 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
FR2825222A1 (fr) * 2001-05-23 2002-11-29 Thomson Licensing Sa Dispositif et procedes de transmission et de mise en oeuvre d'instructions de controle pour acces a des fonctionnalites d'execution
US20050060431A1 (en) * 2003-09-12 2005-03-17 Lewontin Stephen Paul System, apparatus, and method for using reduced web service messages
US20050144137A1 (en) * 2003-12-24 2005-06-30 Kumar B. V. Protocol processing device and method
JP4433807B2 (ja) * 2004-01-27 2010-03-17 パナソニック電工株式会社 信号合成処理装置及び調光制御システム
US7509387B2 (en) * 2004-04-07 2009-03-24 Nokia Corporation System, apparatus, and method for using reduced Web service messages
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
WO2006080026A1 (en) * 2005-01-27 2006-08-03 Infosys Technologies Limited Protocol processing device and method
US7808975B2 (en) * 2005-12-05 2010-10-05 International Business Machines Corporation System and method for history driven optimization of web services communication
US7533111B2 (en) * 2005-12-30 2009-05-12 Microsoft Corporation Using soap messages for inverse query expressions

Also Published As

Publication number Publication date
EP1969814A2 (en) 2008-09-17
US7808975B2 (en) 2010-10-05
BRPI0619763B1 (pt) 2019-09-03
TWI377819B (en) 2012-11-21
EP1969814B1 (en) 2009-03-25
TW200737855A (en) 2007-10-01
CA2640838A1 (en) 2007-06-14
CN101341724A (zh) 2009-01-07
US8107463B2 (en) 2012-01-31
US20080256171A1 (en) 2008-10-16
US20070127440A1 (en) 2007-06-07
BRPI0619763A2 (pt) 2016-08-16
ATE426992T1 (de) 2009-04-15
CN101341724B (zh) 2012-07-04
JP2009519508A (ja) 2009-05-14
KR101027299B1 (ko) 2011-04-06
WO2007065850A3 (en) 2007-08-09
DE602006005963D1 (de) 2009-05-07
WO2007065850A2 (en) 2007-06-14
KR20080084974A (ko) 2008-09-22

Similar Documents

Publication Publication Date Title
JP5052522B2 (ja) ウェブ・サービス通信の履歴を駆使した最適化のためのシステム及び方法
JP4982501B2 (ja) 無線装置と通信するためにデータを圧縮/解凍するための方法及び装置
EP1741257B1 (en) System, apparatus, and method for using reduced web service messages
Govindaraju et al. Requirements for and evaluation of RMI protocols for scientific computing
JP2006209745A (ja) 文書のバイナリシリアライゼーションの方法およびシステム
US8224980B2 (en) Adaptive parsing and compression of SOAP messages
JP2005510804A (ja) 拡張可能マークアップ言語(xml)ドキュメントを処理するシステムおよび方法
JP2005174120A (ja) Webサービス接続処理方法とシステム、およびプログラム
Werner et al. Compressing soap messages by using pushdown automata
Rosu A-soap: Adaptive soap message processing and compression
US20120110204A1 (en) Envelope attachment for message context
CN103856396B (zh) 插件间的报文传递方法及装置、代理插件
CA2464833A1 (en) Method and apparatus for accessing legacy data in a standardized environment
Werner et al. XML compression for web services on resource-constrained devices
Berzosa Macho A context-and template-based data compression approach to improve resource-constrained IoT systems interoperability.
Zoitl et al. Utilizing binary XML representations for improving the performance of the IEC 61499 configuration interface
Kangasharju An XML Messaging Service for Mobile Devices
Ozden A Binary Encoding for Efficient XML Processing
CN118138622A (zh) 基于Fury序列化和soft通信协议的Node.js RPC框架实现方法
Macho for the degree of Doctor of Philosophy
Govindaraju et al. On the Performance of Remote Method Invocation for Large-Scale Scientific Applications
Kangasharju Mobile XML Messaging
Devaram SOAP Optimization Via Parameterized Caching
Li et al. High Performance approach for server side soaP Processing
Maniampadavathu Message Optimization Enhanced Logger System.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090828

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110930

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20111003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120618

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: 20120703

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: 20120724

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees