Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4366040B2 - ネットワークサービスシステム、サーバ及びプログラム - Google Patents
[go: Go Back, main page]

JP4366040B2 - ネットワークサービスシステム、サーバ及びプログラム - Google Patents

ネットワークサービスシステム、サーバ及びプログラム Download PDF

Info

Publication number
JP4366040B2
JP4366040B2 JP2002061651A JP2002061651A JP4366040B2 JP 4366040 B2 JP4366040 B2 JP 4366040B2 JP 2002061651 A JP2002061651 A JP 2002061651A JP 2002061651 A JP2002061651 A JP 2002061651A JP 4366040 B2 JP4366040 B2 JP 4366040B2
Authority
JP
Japan
Prior art keywords
xml document
cache data
processing request
processing
request
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
JP2002061651A
Other languages
English (en)
Other versions
JP2003271441A (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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002061651A priority Critical patent/JP4366040B2/ja
Priority to US10/382,610 priority patent/US7660844B2/en
Publication of JP2003271441A publication Critical patent/JP2003271441A/ja
Application granted granted Critical
Publication of JP4366040B2 publication Critical patent/JP4366040B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータによるデータ処理において、所定のアドレスがどのメモリ領域に属するかを判別する処理を効率的に行う方法に関する。
【0002】
【従来の技術】
ウェブブラウザでインターネット上のウェブページ(HTML文書)を表示する場合、ウェブページの取得要求(リクエスト)に対する応答時間(レスポンスタイム)を向上させるために、最近取得したウェブページをキャッシュすることが行われている。
ウェブブラウザにおいてウェブページを取得して表示するために用いられるHTTP GETによるリクエストは、返送されるHTML文書(レスポンス)がURL(Uniform Resource Locators)によって一意に定まる。そのため、ウェブブラウザ(クライアントマシン)またはプロキシ(サーバマシン)にURLをキーとして当該HTML文書を保存(キャッシュ)しておき、同一のURLを指定したリクエストに対して、サーバアプリケーションまでアクセスすることなく、保存されているHTML文書を返すことによって、応答時間を短縮することができた。
【0003】
ウェブブラウザでHTML文書をキャッシュする場合、過去にアクセスしたウェブページを、クライアントマシンのローカルディスク上に保存しておく。そして、次に同じURL(ウェブページ)にアクセスする場合には、HTTPのIf-Modified-Sinceヘッダに、保存してあるウェブページのタイムスタンプを付けてリクエストを送る。サーバがウェブブラウザ(クライアント)のキャッシュに対応している場合、サーバは、受信したリクエストに付加されたタイムスタンプの時刻以降に要求されたウェブページが更新されたかどうかを調べる。そして更新されていないならば、ステータスコードが304(Not Modified)でボディが空のレスポンスを返す。この場合、ウェブブラウザには、ローカルディスクに保存されているウェブページが表示される。一方、当該ウェブページがタイムスタンプの時刻以降に更新されている場合、通常と同じ応答、すなわち要求されたウェブページのHTML文書を返送する。
【0004】
プロキシでHTML文書をキャッシュする場合、サーバマシンの記憶装置に、URLをキーとしてHTML文書を保存しておき、当該URLを指定したリクエストに対して、プロキシが記憶装置から保存されているHTML文書を読み出し、サーバアプリケーションにアクセスすることなく当該HTML文書を返送する。この場合、このキャッシュに保存されている内容は常に最新に保たれていることが前提となる。
【0005】
【発明が解決しようとする課題】
ところで、今日、ウェブサービスのようなXML文書を入出力とするネットワークサービスが普及しつつある。しかし、この種のサービスを提供する場合、URL(あるいはURI(Uniform Resource Identifiers))でレスポンスが一意に決定できるとは限らない。ウェブサービスなどでは、リクエストに含まれるXML文書の内容によって返すべきXML文書の内容(サービス)が異なる場合が多いためである。
したがって、このようなXML文書を入出力とするシステムでは、URLをキーとしてXML文書をキャッシュすることが困難である。
【0006】
また、リクエストに含まれるXML文書のリテラル表現をキーとして、レスポンスのXML文書をキャッシュする方法が考えられる。しかし、サーバアプリケーションのサービスにとって意味が同じXML文書であっても、XML文書そのものの文字列の表現が幾通りにも及び、キーとなるリテラル表現が異なる場合があるため、効率的にキャッシュにヒットさせることができない。
【0007】
そこで本発明は、XMLを用いたウェブワークサービスのように、異なる表現で意味内容が等しいリクエストが可能であるようなネットワークサービスにおいて、効率的なキャッシュシステムを実現することを目的とする。
【0008】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、所定の処理要求に対する応答をキャッシュされたデータを用いて行う、次のようなデータ処理方法として実現される。すなわち、このデータ処理方法は、第1の処理要求に含まれるデータファイルをキーとして、この第1の処理要求に対する応答に用いられるデータを記憶装置にキャッシュするステップと、このデータをキャッシュした後になされた第2の処理要求に対し、この第2の処理要求に含まれるデータファイルをキーとして、記憶装置にキャッシュされたデータを検索し、この第2の処理要求に対応するデータがキャッシュされていたならば、キャッシュされているデータを用いて第2の処理要求に対する応答を行うステップとを含むことを特徴とする。
【0009】
ここで詳しくは、このデータをキャッシュするステップは、第1の処理要求に含まれるデータファイルを正規化するステップと、正規化されたデータファイルをキーとしてこの応答に用いられるデータをキャッシュするステップとを含む。そして、第2の処理要求に対する応答を行うステップは、第2の処理要求に含まれるデータファイルを正規化するステップと、正規化されたデータファイルをキーとしてキャッシュされているデータを検索するステップとを含む。
また、第1、第2の処理要求に含まれるデータファイルを抽出して正規化するのではなく、予め所定の正規化規則に則したデータファイルを含む処理要求を作成することとしても良い。このデータファイルは、XML文書とすることができる。
【0010】
さらに好ましくは、データをキャッシュするステップは、第1の処理要求に、この第1の処理要求に含まれるデータファイルのハッシュ値が付加されているかどうかを調べ、付加されていなければこのハッシュ値を計算するステップと、第1の処理要求から取得した、または計算により得たデータファイルのハッシュ値をキーとして応答に用いられるデータをキャッシュするステップとを含む。そして、第2の処理要求に対する応答を行うステップは、第2の処理要求に、この第2の処理要求に含まれるデータファイルのハッシュ値が付加されているかどうかを調べ、付加されていなければ当該ハッシュ値を計算するステップと、第2の処理要求から取得した、または計算により得たデータファイルのハッシュ値をキーとしてキャッシュされているデータを検索するステップとを含む。このように、データファイルそのものではなく、このデータファイルを圧縮したハッシュ値をキーとして用いることにより、記憶装置におけるキャッシュサイズを縮小することができる。
【0011】
また、上記の目的を達成する本発明は、ネットワークを介して接続されたサーバとクライアントとを備えたネットワークサービスシステムとして実現することができる。このシステムにおいて、クライアントは、所定のXML文書を含む処理要求をサーバに送信し、サーバは、この処理要求に対して応答を返送すると共に、この処理要求に含まれるXML文書を加工し、加工されたXML文書をキーとして応答の内容をキャッシュすることを特徴とする。
【0012】
このシステムにおいて、好ましくは、サーバは、XML文書に対する加工として、XML文書を所定の正規化規則にて正規化する。さらには、このXML文書のハッシュ値を計算し、このハッシュ値をキーとして応答の内容をキャッシュする。
一方、クライアントは、所定の正規化規則に則ったテンプレートを用いてXML文書を含む処理要求を作成し、サーバへ送信する。
また、クライアントは、処理要求に対するサーバからの応答を、この処理要求に含まれるXML文書をキーとして記憶装置にキャッシュする構成とすることもできる。この場合、この処理要求と同一内容の処理要求を行う際に、この処理要求のXML文書をキーとして記憶装置を検索し、キャッシュされている応答を用いて処理を行う。
【0013】
さらに、上記の目的を達成する他の本発明は、ネットワークを介してサービスを提供する、次のように構成されたサーバとして実現される。すなわち、このサーバは、クライアントから受信した要求に対する応答を生成するアプリケーションと、この要求に含まれているデータファイルをキーとして、前記要求に対する応答を登録するキャッシュテーブルと、このデータファイルをキーとしてキャッシュテーブルを検索し、前記要求に対応する応答(レスポンスファイル)がキャッシュされている場合に、キャッシュされている当該応答を前記クライアントに返送し、前記要求に対応する応答(レスポンスファイル)がキャッシュされていない場合に、前記アプリケーションに処理を渡すと共に前記アプリケーションにて生成された応答を前記キャッシュテーブルに登録する応答処理部とを備えることを特徴とする。
【0014】
より好ましくは、このサーバは、要求に含まれているデータファイルを所定の正規化規則にて正規化する正規化部をさらに備える構成とすることができる。この場合、キャッシュテーブルは、正規化部にて正規化されたデータファイルをキーとして応答(レスポンスファイル)を登録し、応答処理部は、正規化部にて正規化されたデータファイルをキーとしてキャッシュテーブルを検索する。
同様に、このサーバは、要求に含まれているデータファイルのハッシュ値を計算するハッシュ値計算部をさらに備える構成とすることができる。この場合、キャッシュテーブルは、ハッシュ値計算部にて計算されたデータファイルのハッシュ値をキーとして応答(レスポンスファイル)を登録し、応答処理部は、ハッシュ値計算部にて計算されたデータファイルのハッシュ値をキーとしてキャッシュテーブルを検索する。
【0015】
また、上記の目的を達成する他の本発明は、ネットワークを介してサーバから提供されるサービスを享受する、次のように構成されたクライアントとして実現される。このクライアントは、所定の正規化規則に基づいて正規化されたXML文書を含む要求を作成する処理部と、この処理部にて作成された要求に含まれるXML文書のハッシュ値を計算し、要求のヘッダに付加するハッシュ値計算部と、ヘッダにXML文書のハッシュ値を付加された要求をサーバへ送信する送信部とを備えることを特徴とする。
ここで、この処理部は、より好ましくは、正規化規則に則ったテンプレートを用いてXML文書を含む要求を作成する。
【0016】
さらに、本発明の他のクライアントは、所定の正規化規則に則って正規化されたXML文書を含む要求を作成すると共にこの要求に対する前記サーバからの応答に対する処理を実行する処理部と、この処理部にて作成された要求をサーバへ送信し、このサーバからの応答を受信する送受信部と、要求に含まれるXML文書をキーとして、サーバからの応答を登録するキャッシュテーブルとを備える構成とすることができる。そして、この処理部は、XML文書をキーとしてキャッシュテーブルを検索し、要求に対応する応答(レスポンスファイル)がキャッシュされている場合に、キャッシュされているこの応答(レスポンスファイル)を用いて処理を実行することを特徴とする。
【0017】
また、本発明は、コンピュータを制御して上記のサーバあるいはクライアントとして機能させるプログラムとして実現することができる。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【0018】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
本発明は、ネットワークサービスにおける同じ意味のリクエストのリテラル表現を1つに統一することにより、効率的なキャッシュシステムを実現する。なお、本発明は、異なる表現で意味内容が等しいリクエストが可能であるようなネットワークサービスに対して一般的に利用できるが、本実施の形態では、XML文書を入出力とするウェブサービスに適用する場合を例として説明する。
【0019】
図1は、本実施の形態によるウェブサービスシステムの全体構成を示す図である。
図1を参照すると、本実施の形態のウェブサービスシステムは、サービスを提供するサーバ100と、サービスを利用するクライアント200とを備える。サーバ100とクライアント200とはインターネットなどのウェブベースのネットワークを介して接続されている。
サーバ100を構成するサーバマシンは、ワークステーションやパーソナルコンピュータなどのネットワーク機能を備えたコンピュータ装置にて実現され、提供サービスに関わる処理を行うサーバアプリケーション110と、キャッシュシステムを実現するためのプロキシ120とを備える。また、クライアント200は、ワークステーションやパーソナルコンピュータなどのネットワーク機能を備えたコンピュータ装置にて実現され、提供されるサービスを享受するためのクライアントアプリケーション210を備える。
【0020】
本実施の形態では、同じ意味のXML文書のリテラル表現を1つに統一する方法として、正規化されたテンプレートを用いる。
サーバ100は、提供サービスが受け付けることのできるリクエストのXML文書に対し、変更可能な部分を変数で置き換えたテンプレートを用意する(このテンプレート自体もXML文書である)。クライアント200は、このテンプレートの変数部分を埋めることでリクエストのXML文書を作成する。このように、テンプレートに従ってリクエストのXML文書が構成されることにより、同じ意味のXML文書の表現が1つに定まるため、このXML文書をキーとするキャッシュのヒット率を向上させることができる。
【0021】
本実施の形態において、テンプレートに用いられるXML文書の正規化には、W3Cで定められたXML−c14nが基本的に用いられると共に、サーバアプリケーション110にて提供されるサービスの内容(XML文書)に応じて固有の規則を設定することができる。例えば、XML文書において、要素名に関係なく、(1)開始タグから開始タグ、(2)終了タグから開始タグ、(3)終了タグから終了タグのいずれかの部分であって、かつその部分が全て空白(改行、タブなどを含む)である場合に、その空白を削除する正規化規則や、名前空間接頭辞を統一する正規化規則を設けることができる。
図2は、上記の空白を削除する正規化規則を示す図である。図2(A)のXML文書における空白部分のうち、上記の(1)、(2)、(3)の各部分に該当する空白が、図2(B)の該当個所に示されている。
なお、上述した空白を削除する正規化規則及び名前空間接頭辞を統一する正規化規則は、種々のアプリケーションに対してある程度汎用的に用いることができる規則である。
【0022】
図3は、XML文書の具体例と、当該XML文書の正規化及びテンプレートの例を示す図である。
図3において、図3(B)に示す正規化されたXML文書は、見やすくするために適宜改行しているが、実際には改行コードも正規化により削除される。また、名前空間接頭辞は、出現する順に、ns1、ns2、・・・としている。さらに、名前空間の宣言の属性(xmlns:ns*=".....")は、初めて出現する要素に付けられる。
また、図3(C)に示すテンプレートにおいて、変数は記号「$」で囲まれる(図の太字部分)。元のXML文書の中に記号「$」が存在する場合は、記号「$$」で置き換える。また、変数名に記号「$」を含んではならない。さらに、変数に代入可能な文字列は、XML1.0で定められている文字データとする(文字データ ::= [^<&]* - ([^<&]* '))>' [^<&]*))。
【0023】
本実施の形態では、上述したテンプレートを用いて定形によるリクエストのXML文書を作成し、このXML文書をキーとすることにより、効率的なキャッシュを実現するものであるが、クライアント200から送信されるリクエストのXML文書が正規化されていない場合でも、当該リクエストを受け取ったサーバ100において当該リクエストのXML文書を正規化する処理を行うことにより、本実施の形態によるキャッシュを利用することが可能である。
また、キャッシュシステムにおいて、キャッシュデータを保存するサーバ100またはクライアント200の記憶装置におけるキャッシュサイズを縮小するため、キーとしてXML文書をそのまま用いるのではなくハッシュ値を用いることができる。
【0024】
この場合、クライアント200からリクエストにXML文書のハッシュ値を付与して送信することとすれば、サーバ100でのハッシュ値計算に要する処理コストを削減することができる。
また、クライアント200が1度取得したレスポンスのXML文書をキャッシュしておき、2度目のリクエストからは、当該レスポンスのXML文書のハッシュ値をリクエストともに送付することとする。そして、サーバ100からのレスポンスが1度目と同じである場合、サーバ100はレスポンスが同じであること示す情報だけを返信し、クライアント200は当該情報に応じてキャッシュされているXML文書を使用すれば足りる。これにより、レスポンスを返すコストも削減し、ネットワーク上のトラフィックを軽減することができる。
【0025】
図4は、図1に示したウェブサービスシステムにおいて、上述した本実施の形態のキャッシュシステムを実現するためのサーバ100の構成を示す図である。
図4を参照すると、サーバ100において、プロキシ120は、サーバアプリケーション110とクライアント200との間に介在し、クライアント200からのリクエストを受信すると共に、クライアント200に対してレスポンスを返送する。そして、受信したリクエストのXML文書を正規化する正規化部121と、正規化されたXML文書のハッシュ値を計算するハッシュ値計算部122と、キャッシュを用いた応答またはサーバアプリケーション110にアクセスする応答処理部123とを備えると共に、レスポンスのXML文書をキャッシュするためのキャッシュテーブル124と、クライアント200との間でデータの送受信を行う送受信部125とを備える。
図4に示す構成において、正規化部121、ハッシュ値計算部122及び応答処理部123は、プログラム制御されたCPUにて実現される仮想的なソフトウェアブロックである。CPUを制御するプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供する。また、キャッシュテーブル124は、サーバ100を構成するサーバマシンの記憶装置に構築されている。
【0026】
図5は、キャッシュテーブル124の構成例を示す図である。
図5を参照すると、キャッシュテーブル124は、リクエスト(XML文書)のハッシュ値、レスポンス(XML文書)のハッシュ値、レスポンスコンテンツ(XML文書)という3つのコラムを有して構成される。図示のように、XML文書を入出力とするシステムでは、1つのURLに対して、異なる記述のリクエストがなされ異なるレスポンスが返されることもあれば、異なるURLに対して同一のリクエスト(ハッシュ値が9PgwNGgkTDs…)がなされ、共通のレスポンス(ハッシュ値がWaX21pBkj1Zd0…)が返されることもある。
【0027】
図6は、図4に示すように構成されたサーバ100のプロキシ120の動作を説明するフローチャートである。
図6に示すように、プロキシ120は、クライアント200からリクエストを受信すると(ステップ601)、まず当該リクエストのXML文書が正規化されているかどうかを調べ、正規化されていなければ、正規化部121により正規化処理を行う(ステップ602、603)。
次に、当該リクエストのヘッダに当該リクエストのXML文書のハッシュ値が存在するかどうかを調べ、存在しなければ、ハッシュ値計算部122により当該XML文書のハッシュ値を計算する(ステップ604、605)。そして、ヘッダから取得、またはステップ605で生成されたハッシュ値をキーとしてキャッシュテーブル124を検索する(ステップ606)。
【0028】
該当するレスポンスのXML文書がキャッシュされていたならば、プロキシ120は、次に、リクエストのヘッダにレスポンスのXML文書のハッシュ値が存在するかどうかを調べる(ステップ607、608)。そして、ハッシュ値が存在するならば、当該ハッシュ値がキャッシュテーブル124に登録されている該当するレスポンスのXML文書のハッシュ値と一致するかどうかを調べ(ステップ609)、一致しているならば、空のレスポンスを要求元のクライアント200へ返す(ステップ610)。
リクエストのヘッダにレスポンスのXML文書のハッシュ値が存在しない場合、及びハッシュ値が存在するがキャッシュテーブル124に登録されているハッシュ値と一致しない場合は、キャッシュテーブル124に登録されている該当するレスポンスコンテンツ(XML文書)を要求元のクライアント200へ返送する(ステップ608、609、611)。
【0029】
一方、ステップ606の検索で、キャッシュテーブル124から該当するレスポンスのXML文書が検出されなかったならば、プロキシ120は、サーバアプリケーション110にアクセスして当該リクエストを送り、応答を待つ(ステップ607、612)。
ここで、サーバアプリケーション110は、提供するサービスに応じて、データベースを検索するなどの処理を行いレスポンスのXML文書を作成し、プロキシ120に返す。
プロキシ120は、サーバアプリケーション110から受け取ったレスポンスを要求元のクライアント200へ返送すると共に、キャッシュテーブル124に登録する(ステップ613)。
【0030】
図7は、本実施の形態のキャッシュシステムを実現するためのクライアント200の構成を示す図である。
図7を参照すると、クライアント200において、クライアントアプリケーション210は、送信するリクエストのXML文書を生成すると共に受信したレスポンスのXML文書を処理する処理部211と、送信しようとするリクエストのヘッダにXML文書が正規化されていることを示す情報を付加する正規化情報付加部212と、正規化されたXML文書のハッシュ値を計算するハッシュ値計算部213と、サーバ100との間でデータの送受信を行う送受信部214とを備える。また、クライアント200は、サーバ100のプロキシ120に設けられたキャッシュテーブル124と同様の構成を有するキャッシュテーブル220を備えても良い。
図7に示す構成において、処理部211、正規化情報付加部212及びハッシュ値計算部213は、プログラム制御されたCPUにて実現される仮想的なソフトウェアブロックである。CPUを制御するプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供する。また、キャッシュテーブル220は、クライアント200を構成するクライアントマシンのローカルディスク上に構築されている。
【0031】
図8、図9は、図7に示すように構成されたクライアント200のクライアントアプリケーション210の動作を説明するフローチャートである。ここでは、クライアント200がキャッシュテーブル220を備えている場合の動作について説明する。
リクエストを送信する際の動作を説明する図8を参照すると、クライアントアプリケーション210は、まず処理部211により、テンプレートを用いてリクエスト(XML文書及びヘッダ)を作成する(ステップ801)。ここで、テンプレートはサーバ100において作成され、予めクライアント200に提供されている。
【0032】
クライアントアプリケーション210は、次に、正規化情報付加部212により、リクエストのヘッダに、当該XML文書が正規化されていることを示す情報(Is-Canonicalized: true)を付加する(ステップ802)。そして、ハッシュ値計算部213により、当該リクエストのXML文書のハッシュ値を計算し、得られたハッシュ値をキーとしてキャッシュテーブル220を検索する(ステップ803)。そして、当該リクエストに対するレスポンスのXML文書がキャッシュされていたならば、検出された該当するレスポンスのXML文書のハッシュ値を当該リクエストのヘッダに付加し、(ステップ804、805)。さらにステップ803で計算されたリクエストのXML文書のハッシュ値を当該リクエストのヘッダに付加して(ステップ806)、サーバ100へ送信する(ステップ807)。
また、ステップ803の検索で、キャッシュテーブル220から該当するレスポンスのXML文書が検出されなかったならば、ステップ803で計算されたリクエストのXML文書のハッシュ値を当該リクエストのヘッダに付加して(ステップ804、806)、サーバ100へ送信する(ステップ807)。
【0033】
次に、サーバ100からレスポンスを受信した際の動作を説明する図9を参照すると、クライアントアプリケーション210の処理部211は、まず受信したレスポンスが空メッセージかどうかを確認する(ステップ901、902)。
そして、空メッセージでなければ、キャッシュテーブル220の該当エントリを更新した後(ステップ903)、当該レスポンスのXML文書に対する処理を行う(ステップ904)。
一方、当該レスポンスが空メッセージであった場合は、キャッシュされているレスポンスコンテンツ(XML文書)を使用することができるので、これを読み出して処理を行う(ステップ905、904)。
【0034】
図10は、本実施の形態のウェブサービスシステムにおいて、クライアント200から送信されるリクエストの例を示す図である。
図示のように、リクエストのヘッダには、当該リクエストのXML文書のハッシュ値(Request-Hash)、当該リクエストに対するレスポンスのXML文書のハッシュ値(Response-Hash)、及び当該リクエストのXML文書が正規化されていることを示す情報(Is-Canonicalized)が記述されている。
図11は、図10のリクエストに対するレスポンスの例を示す図である。
図示のレスポンスは、リクエストのヘッダに記述されているレスポンスのXML文書のハッシュ値がサーバ100のキャッシュテーブル124に登録されているハッシュ値と一致した場合の例であり、レスポンスのボディは空である。
【0035】
次に、本実施の形態において送受信されるXML文書の種々の態様に基づいて、サーバ100のプロキシ120による処理、及びクライアント200のクライアントアプリケーション210による処理の手順を説明する。
<プロキシ120の動作>
態様1:プロキシ120が、Request-Hash=なし、Response-Hash=なし、Is-Canonicalized=falseのヘッダを持つリクエストを受けた場合(クライアント200がキャッシュを意識していない場合)。
プロキシ120は、受信したリクエストのXML文書を正規化し、そのハッシュ値を計算し、キャッシュテーブル124におけるリクエストのハッシュ値を検索する。
そして、一致するキャッシュデータが存在すれば、当該エントリにおけるリクエストのハッシュ値及びレスポンスのハッシュ値を含むヘッダを生成し、当該エントリのレスポンスコンテンツに当該ヘッダを付加して要求元のクライアント200に返す。
一方、一致するキャッシュデータが存在しないならば、リクエストをサーバアプリケーション110に送り、レスポンスを受け取る。そして、当該レスポンスを要求元のクライアント200に返送すると共に、当該レスポンスに関する情報をキャッシュテーブル124に新規に登録する。
【0036】
態様2:プロキシ120がRequest-Hash=なし、Response-Hash=なし、Is-Canonicalized=trueのヘッダを持つリクエストを受けた場合(クライアント200がテンプレートを用いてXML文書を作成しリクエストを送った場合)。
プロキシ120は、受信したリクエストのXML文書のハッシュ値を計算し、キャッシュテーブル124におけるリクエストのハッシュ値を検索する。
そして、態様1と同様に、一致するキャッシュデータが存在すれば、当該エントリにおけるリクエストのハッシュ値及びレスポンスのハッシュ値を含むヘッダを生成し、当該エントリのレスポンスコンテンツに当該ヘッダを付加して要求元のクライアント200に返す。
また、一致するキャッシュデータが存在しないならば、リクエストをサーバアプリケーション110に送り、レスポンスを受け取る。そして、当該レスポンスを要求元のクライアント200に返送すると共に、当該レスポンスに関する情報をキャッシュテーブル124に新規に登録する。
【0037】
態様3:プロキシ120がRequest-Hash=あり、Response-Hash=なし、Is-Canonicalized=trueのヘッダを持つリクエストを受けた場合(クライアント200がテンプレートを用いてXML文書を作成し、ハッシュ値Request-Hashをヘッダに付加してリクエストを送った場合)。
プロキシ120は、受信したリクエストのヘッダに付加されている当該リクエストのXML文書のハッシュ値をキーとしてキャッシュテーブル124を検索する。
そして、態様1と同様に、一致するキャッシュデータが存在すれば、当該エントリにおけるリクエストのハッシュ値及びレスポンスのハッシュ値を含むヘッダを生成し、当該エントリのレスポンスコンテンツに当該ヘッダを付加して要求元のクライアント200に返す。
また、一致するキャッシュデータが存在しないならば、リクエストをサーバアプリケーション110に送り、レスポンスを受け取る。そして、当該レスポンスを要求元のクライアント200に返送すると共に、当該レスポンスに関する情報をキャッシュテーブル124に新規に登録する。
【0038】
態様4:プロキシ120がRequest-Hash=あり、Response-Hash=あり、Is-Canonicalized=trueのヘッダを持つリクエストを受けた場合(クライアント200が一度送ったことのあるリクエストを再度送る場合)。
プロキシ120は、受信したリクエストのヘッダに付加されている当該リクエストのXML文書のハッシュ値をキーとしてキャッシュテーブル124を検索する。
そして、一致するキャッシュデータが存在すれば、当該リクエストのヘッダに付加されているレスポンスのXML文書のハッシュ値を、キャッシュテーブル124の該当エントリに登録されているハッシュ値と比較する。このハッシュ値が一致するならば、ステータスコード204(No Content)をレスポンスコンテンツなしで要求元のクライアント200に返す。
一方、このハッシュ値が一致しないならば、該当エントリに登録されている当該リクエスト及びそのレスポンスのXML文書のハッシュ値をレスポンスのヘッダに付加し、レスポンスコンテンツを要求元のクライアント200に返す。
また、リクエストのXML文書のハッシュ値をキーとするキャッシュテーブル124の検索において、一致するキャッシュデータが存在しないならば、リクエストをサーバアプリケーション110に送り、レスポンスを受け取る。そして、当該レスポンスを要求元のクライアント200に返送すると共に、当該レスポンスに関する情報をキャッシュテーブル124に新規に登録する。
【0039】
<クライアントアプリケーション210の動作>
態様5:クライアントアプリケーション210がキャッシュを意識しない場合。
クライアントアプリケーション210は、サーバアプリケーション110が受けることのできるリクエストを送る(XML文書の作成にテンプレートが使用されず、XML文書の正規化もされていない)。レスポンスのヘッダには、Request-Hash、Response-Hash等の情報が含まれるが無視する。この動作はプロキシ120における態様1の場合の動作に対応する。
【0040】
態様6:クライアントアプリケーション210がテンプレートを用いてリクエストを作成し、クライアント200のキャッシュテーブル220は設けられていない場合。
クライアントアプリケーション210は、テンプレートを用いてリクエストを作成し、リクエストのヘッダにおけるIs-Canonicalizedの値をtrueにして当該リクエストをサーバ100へ送る。レスポンスのヘッダには、Request-Hash, Response-Hash等の情報が含まれるが無視する。この動作はプロキシ120における態様2の場合の動作に対応する。
【0041】
態様7:クライアントアプリケーション210がテンプレートを用いてリクエストを作成し、クライアント200のキャッシュテーブル220が設けられている場合。
クライアントアプリケーション210は、テンプレートを用いてリクエストを作成し、リクエストのヘッダにおけるIs-Canonicalizedの値をtrueにする。そして、リクエストのXML文書のハッシュ値を計算し、その値をキーとしてキャッシュテーブル220を検索する。
ここで、一致するキャッシュデータが存在すれば、得られたリクエストのXML文書のハッシュ値と当該リクエストに対するレスポンスのXML文書のハッシュ値とを、作成したリクエストのヘッダに付加してサーバ100へ送る。サーバ100からのレスポンスで空メッセージ(204 No Content)が返ってきた場合、キャッシュテーブル220から得られたレスポンスコンテンツを今回のリクエストに対するレスポンスとして使用する。
レスポンスが空のメッセージではない場合(200 OK)、取得したレスポンスコンテンツを処理に用いると共に、当該レスポンスのヘッダにはRequest-Hash、Response-Hashの情報が含まれるので、これと取得したレスポンスコンテンツとを用いてキャッシュテーブル220を更新する。
この動作はプロキシ120における態様4の場合の動作に対応する。
【0042】
一方、キャッシュテーブル220の検索で、一致するキャッシュデータが存在しない場合、当該リクエストのXML文書のハッシュ値(Request-Hash)のみをヘッダに付けてサーバ100へ送る。サーバ100からのレスポンスに含まれるレスポンスコンテンツを処理に用いると共に、このレスポンスのヘッダにはRequest-Hash、Response-Hashなどの情報が含まれるので、これと取得したレスポンスコンテンツとをキャッシュテーブル220に登録する。
この動作はプロキシ120における態様3の場合の動作に対応する。
【0043】
以上の説明では、キャッシュのキーとしてリクエスト及びレスポンスのXML文書のハッシュ値を用いる場合について説明した。上述したように、キーとしてXML文書そのものを用いるのではなく、これを圧縮したハッシュ値を用いることにより、サーバ100やクライアント200の記憶装置に格納されるキャッシュサイズを縮小することができる。また、態様4、7に示すように、サーバ100からクライアント200へ空のメッセージ(ハッシュ値のみ)を送信する場合には、ネットワークにおけるトラフィックの軽減にも寄与する。
【0044】
次に、本実施の形態を用いた具体的なウェブサービスシステムの例について説明する。
図12は、本実施の形態を適用した製品情報提供サービスシステムの全体構成を示す図である。
図12を参照すると、本システムは、製品供給会社であるB社に構築されたサーバ100と、B社のビジネスパートナーであるA1、A2、A3社がそれぞれ有するクライアント200とで構成され、サーバ100と各クライアント200とは、インターネットで接続されている。
【0045】
B社のサーバ100は、サーバアプリケーション110とプロキシ120とを備えると共に、サーバアプリケーション110が使用するデータベース130を備えている。本システムにおけるサーバアプリケーション110は、クライアント200からのリクエストに応じてデータベース130を参照し、必要な製品情報を取得してレスポンスを返す。
A1、A2、A3社のクライアント200は、それぞれクライアントアプリケーション210を備えている。
【0046】
図12に示すシステムにおいて、B社は、自社の製品の情報(使用、価格、在庫など)をウェブサービスとしてビジネスパートナー(A1、A2、A3社)に公開している。また、A1、A2、A3社は、B社のウェブサービスにアクセスすることでB社の製品の情報を入手できる。
ここで、B社のウェブサービスは、多くの会社からのリクエストを受け付けるために大きな負荷がかかる可能性がある。したがって、レスポンスの組立やデータベース130へのアクセスが行われる、サーバアプリケーション110の処理を軽減するため、プロキシ120によるキャッシュを用いた応答処理が行われる。なお、B社が自社のウェブサービスに関する仕様(WSDL(Web Services Description Language))を公開しておくことによって、汎用のウェブサービス用のクライアントアプリケーション210を用いてアクセスすることが可能となる。
一方、所定の会社(例えばA3社)が非常に頻繁にB社にアクセスする場合、B社が自社のキャッシュシステムに応じたテンプレートをA3社に提供し、このテンプレートを使ってリクエストを作成してもらうことにより、一層効率的にキャッシュシステムを利用することができる。この場合、B社のキャッシュシステムに専用のクライアントアプリケーション210をA3社に使ってもらうことが好ましい。
【0047】
【発明の効果】
以上説明したように、本発明によれば、異なる表現で意味内容が等しいリクエストが可能であるようなネットワークサービスにおいて、効率的なキャッシュシステムを実現することができる。
【図面の簡単な説明】
【図1】 本実施の形態によるウェブサービスシステムの全体構成を示す図である。
【図2】 本実施の形態におけるXML文書の正規化規則の例を示す図である。
【図3】 本実施の形態にて用いられるXML文書の具体例と、当該XML文書の正規化及びテンプレートの例を示す図である。
【図4】 本実施の形態によるキャッシュシステムを実現するためのサーバの構成を示す図である。
【図5】 本実施の形態で用いられるキャッシュテーブルの構成例を示す図である。
【図6】 本実施の形態によるサーバのプロキシの動作を説明するフローチャートである。
【図7】 本実施の形態によるキャッシュシステムを実現するためのクライアントの構成を示す図である。
【図8】 本実施の形態によるクライアントのクライアントアプリケーションの動作を説明するフローチャートであり、リクエストを送信する際の動作を説明する図である。
【図9】 本実施の形態によるクライアントのクライアントアプリケーションの動作を説明するフローチャートであり、レスポンスを受信した際の動作を説明する図である。
【図10】 本実施の形態におけるクライアントから送信されるリクエストの例を示す図である。
【図11】 図10のリクエストに対するレスポンスの例を示す図である。
【図12】 本実施の形態を適用した製品情報提供サービスシステムの全体構成を示す図である。
【符号の説明】
100…サーバ、110…サーバアプリケーション、120…プロキシ、121…正規化部、122…ハッシュ値計算部、123…応答処理部、124…キャッシュテーブル、125…送受信部、200…クライアント、210…クライアントアプリケーション、211…処理部、212…正規化情報付加部、213…ハッシュ値計算部、214…送受信部、220…キャッシュテーブル

Claims (6)

  1. ネットワークを介して接続されたサーバとクライアントとを備えたネットワークサービスシステムにおいて、
    前記クライアントは、
    予め定められた正規化規則にしたがって正規化されたXML文書を含む処理要求を前記サーバに送信する送信手段と、
    前記サーバから前記処理要求に対する応答を受信する受信手段と、
    前記サーバから受信した応答に含まれるデータをキャッシュする記憶手段と、
    前記記憶手段にキャッシュされているキャッシュデータの情報を付加情報として前記処理要求に付加する情報付加手段とを備え、
    前記サーバは、
    前記クライアントに対して前記処理要求および前記応答の送受信を行う送受信手段と、
    前記処理要求に対する処理を実行する処理手段と、
    前記送受信手段により受信した前記処理要求に含まれる前記XML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該XML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該XML文書に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成されたデータを前記送受信手段により当該処理要求の要求元へ送信し、かつ当該XML文書をキーとして当該生成されたデータを当該記憶装置にキャッシュする代理手段とを備え
    前記代理手段は、受信した前記処理要求に付加されている前記付加情報が特定するキャッシュデータと自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするネットワークサービスシステム。
  2. ネットワークを介して接続されたサーバとクライアントとを備えたネットワークサービスシステムにおいて、
    前記クライアントは、
    予め定められた正規化規則にしたがって正規化されたXML文書として処理要求を生成し、当該処理要求に当該XML文書のハッシュ値を付加する処理要求生成手段と、
    前記ハッシュ値が付加された前記処理要求を前記サーバに送信し、当該サーバから当該処理要求に対する応答を受信する送受信手段と、
    前記サーバから受信した応答に含まれるデータをキャッシュする記憶手段とを備え、
    前記処理要求生成手段は、前記記憶手段にキャッシュされているキャッシュデータであって前記処理要求と同一の処理要求に対する応答として取得したキャッシュデータのハッシュ値を付加情報として前記処理要求にさらに付加し、
    前記サーバは、
    前記クライアントに対して前記処理要求および前記応答の送受信を行う送受信手段と、
    前記処理要求に対する処理を実行する処理手段と、
    前記送受信手段により受信した前記処理要求に付加されている前記ハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該ハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該ハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成されたデータを前記送受信手段により当該処理要求の要求元へ送信し、かつ当該ハッシュ値をキーとして当該生成されたデータを当該記憶装置にキャッシュする代理手段とを備え
    前記代理手段は、受信した前記処理要求に付加されている前記キャッシュデータのハッシュ値と自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするネットワークサービスシステム。
  3. ネットワークを介してWebサービスを提供するサーバにおいて、
    クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信部と、
    前記送受信部により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化部と、
    前記処理要求に対する処理を実行する処理部と、
    正規化された前記第1のXML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信部により前記処理要求の要求元へ送信し、当該第1のXML文書に対応するキャッシュデータが存在しない場合に、前記処理部の処理により生成された第2のXML文書を前記送受信部により当該処理要求の要求元へ送信し、かつ当該第1のXML文書をキーとして当該第2のXML文書を当該記憶装置にキャッシュする応答処理部とを備え、
    前記応答処理部は、受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータの情報に基づいて特定されるキャッシュデータと、自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが当該クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするサーバ。
  4. ネットワークを介してWebサービスを提供するサーバにおいて、
    クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信部と、
    前記送受信部により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化部と、
    前記第1のXML文書のハッシュ値が当該処理要求に付加されているか否かを調べ、付加されていない場合に当該第1のXML文書のハッシュ値を計算するハッシュ値計算部と、
    前記処理要求に対する処理を実行する処理部と、
    正規化された前記第1のXML文書のハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信部により前記処理要求の要求元へ送信し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理部の処理により生成された第2のXML文書を前記送受信部により当該処理要求の要求元へ送信し、かつ当該第1のXML文書のハッシュ値をキーとして当該第2のXML文書を当該記憶装置にキャッシュする応答処理部とを備え、
    前記応答処理部は、受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータのハッシュ値と、自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするサーバ。
  5. コンピュータを、
    クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信手段と、
    前記送受信手段により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化手段と、
    前記処理要求に対する処理を実行する処理手段と、
    正規化された前記第1のXML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該第1のXML文書に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成された第2のXML文書を前記送受信手段により当該処理要求の要求元へ送信し、かつ当該第1のXML文書をキーとして当該第2のXML文書を当該記憶装置にキャッシュし、さらに受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータの情報に基づいて特定されるキャッシュデータと、自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが当該クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信する応答処理手段として
    機能させるためのプログラム。
  6. コンピュータを、
    クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信手段と、
    前記送受信手段により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化手段と、
    前記第1のXML文書のハッシュ値が前記処理要求に付加されているか否かを調べ、付加されていない場合に当該第1のXML文書のハッシュ値を計算するハッシュ値計算手段と、
    前記処理要求に対する処理を実行する処理手段と、
    正規化された前記第1のXML文書のハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成された第2のXML文書を前記送受信手段により当該処理要求の要求元へ送信し、かつ当該第1のXML文書のハッシュ値をキーとして当該第2のXML文書を当該記憶装置にキャッシュし、さらに受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータのハッシュ値と、自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信する応答処理手段として
    機能させるためのプログラム。
JP2002061651A 2002-03-07 2002-03-07 ネットワークサービスシステム、サーバ及びプログラム Expired - Fee Related JP4366040B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002061651A JP4366040B2 (ja) 2002-03-07 2002-03-07 ネットワークサービスシステム、サーバ及びプログラム
US10/382,610 US7660844B2 (en) 2002-03-07 2003-03-05 Network service system and program using data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002061651A JP4366040B2 (ja) 2002-03-07 2002-03-07 ネットワークサービスシステム、サーバ及びプログラム

Publications (2)

Publication Number Publication Date
JP2003271441A JP2003271441A (ja) 2003-09-26
JP4366040B2 true JP4366040B2 (ja) 2009-11-18

Family

ID=29195836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002061651A Expired - Fee Related JP4366040B2 (ja) 2002-03-07 2002-03-07 ネットワークサービスシステム、サーバ及びプログラム

Country Status (2)

Country Link
US (1) US7660844B2 (ja)
JP (1) JP4366040B2 (ja)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003058483A1 (en) 2002-01-08 2003-07-17 Seven Networks, Inc. Connection architecture for a mobile network
US7047488B2 (en) 2002-07-19 2006-05-16 Open Invention Network Registry driven interoperability and exchange of documents
US7565399B1 (en) * 2002-08-26 2009-07-21 Netapp, Inc. Caching web objects transformed by a pipeline of adaptation services
US8468126B2 (en) 2005-08-01 2013-06-18 Seven Networks, Inc. Publishing data in an information community
US7917468B2 (en) 2005-08-01 2011-03-29 Seven Networks, Inc. Linking of personal information management data
US7853563B2 (en) 2005-08-01 2010-12-14 Seven Networks, Inc. Universal data aggregation
US20040193691A1 (en) * 2003-03-31 2004-09-30 Chang William I. System and method for providing an open eMail directory
US8606860B2 (en) * 2003-03-31 2013-12-10 Affini, Inc. System and method for providing filtering email messages
DE10356724B3 (de) * 2003-12-02 2005-06-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Verringern des Transportvolumens von Daten in Datennetzen
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
DE102004004345A1 (de) * 2004-01-29 2005-08-18 Abb Research Ltd. System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
JP4114873B2 (ja) 2004-02-17 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ装置、サービス方法、プログラム及び記録媒体
JP2005242427A (ja) * 2004-02-24 2005-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
FI119301B (fi) * 2004-02-27 2008-09-30 Metso Paper Inc Menetelmä ja järjestelmä paperinvalmistukseen liittyvien koneiden, prosessien, automaatiojärjestelmien ja laitteiden kunnossapidossa
US7739301B2 (en) * 2004-03-17 2010-06-15 Netapp, Inc. Method and apparatus for improving file system proxy performance and security by distributing information to clients via file handles
US7949666B2 (en) * 2004-07-09 2011-05-24 Ricoh, Ltd. Synchronizing distributed work through document logs
US7590803B2 (en) 2004-09-23 2009-09-15 Sap Ag Cache eviction
US7441271B2 (en) 2004-10-20 2008-10-21 Seven Networks Method and apparatus for intercepting events in a communication system
US8001175B2 (en) * 2004-10-22 2011-08-16 International Business Machines Corporation Facilitating server response optimization
US8195947B2 (en) * 2004-11-10 2012-06-05 Cisco Technology, Inc. Method and system for conveying alternate acceptable canonicalizations of a digitally signed piece of electronic mail
US7706781B2 (en) 2004-11-22 2010-04-27 Seven Networks International Oy Data security in a mobile e-mail service
FI117152B (fi) 2004-12-03 2006-06-30 Seven Networks Internat Oy Sähköpostiasetusten käyttöönotto matkaviestimelle
US7971001B2 (en) 2004-12-28 2011-06-28 Sap Ag Least recently used eviction implementation
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7873787B2 (en) * 2005-01-26 2011-01-18 International Business Machines Corporation Caching controls/policies for structured markup objects
US7877703B1 (en) 2005-03-14 2011-01-25 Seven Networks, Inc. Intelligent rendering of information in a limited display environment
US7974952B1 (en) * 2005-04-18 2011-07-05 Emc Corporation Tracking file system changes for backup
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US7831634B2 (en) * 2005-04-29 2010-11-09 Sap Ag Initializing a cache region using a generated cache region configuration structure
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7581066B2 (en) * 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US7703006B2 (en) * 2005-06-02 2010-04-20 Lsi Corporation System and method of accelerating document processing
WO2006136660A1 (en) 2005-06-21 2006-12-28 Seven Networks International Oy Maintaining an ip connection in a mobile network
US20060294383A1 (en) * 2005-06-28 2006-12-28 Paula Austel Secure data communications in web services
US7966412B2 (en) 2005-07-19 2011-06-21 Sap Ag System and method for a pluggable protocol handler
US7698321B2 (en) * 2005-09-30 2010-04-13 At&T Intellectual Property I, L.P. Methods, systems, and products for updating web content
US7987509B2 (en) * 2005-11-10 2011-07-26 International Business Machines Corporation Generation of unique significant key from URL get/post content
JP2007156546A (ja) * 2005-11-30 2007-06-21 Toshiba Corp コンテンツリスト提供装置およびコンテンツリスト提供方法
US20070174420A1 (en) * 2006-01-24 2007-07-26 International Business Machines Corporation Caching of web service requests
US7464226B2 (en) * 2006-02-23 2008-12-09 Lars Andreas Reinertsen Fractional caching
US7769395B2 (en) 2006-06-20 2010-08-03 Seven Networks, Inc. Location-based operations and messaging
US8479004B2 (en) 2006-08-31 2013-07-02 Ricoh Co., Ltd Paper-based document logging
JP2008092384A (ja) * 2006-10-04 2008-04-17 Nec Corp 個人データ保護システム、携帯端末装置及びそれに用いる個人データ保護方法並びにそのプログラム
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US8006094B2 (en) 2007-02-21 2011-08-23 Ricoh Co., Ltd. Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes
JP4989259B2 (ja) * 2007-03-06 2012-08-01 株式会社日立製作所 署名情報処理方法、そのプログラムおよび情報処理装置
US20080243688A1 (en) * 2007-03-28 2008-10-02 Hart Peter E Method and Apparatus for Recording Transactions with a Portable Logging Device
US8996483B2 (en) 2007-03-28 2015-03-31 Ricoh Co., Ltd. Method and apparatus for recording associations with logs
US8693494B2 (en) 2007-06-01 2014-04-08 Seven Networks, Inc. Polling
US8805425B2 (en) 2007-06-01 2014-08-12 Seven Networks, Inc. Integrated messaging
US8364181B2 (en) 2007-12-10 2013-01-29 Seven Networks, Inc. Electronic-mail filtering for mobile devices
US9002828B2 (en) 2007-12-13 2015-04-07 Seven Networks, Inc. Predictive content delivery
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US8862657B2 (en) 2008-01-25 2014-10-14 Seven Networks, Inc. Policy based content service
US20090193338A1 (en) 2008-01-28 2009-07-30 Trevor Fiatal Reducing network and battery consumption during content delivery and playback
US8612945B2 (en) 2008-05-13 2013-12-17 Nec Corporation XML processing device, XML processing method, and XML processing program
US8787947B2 (en) 2008-06-18 2014-07-22 Seven Networks, Inc. Application discovery on mobile devices
US9747340B2 (en) 2008-06-19 2017-08-29 Microsoft Technology Licensing, Llc Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US8078158B2 (en) 2008-06-26 2011-12-13 Seven Networks, Inc. Provisioning applications for a mobile device
US9286293B2 (en) * 2008-07-30 2016-03-15 Microsoft Technology Licensing, Llc Populating and using caches in client-side caching
US8185733B2 (en) 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
US8909759B2 (en) 2008-10-10 2014-12-09 Seven Networks, Inc. Bandwidth measurement
EP2599003B1 (en) 2010-07-26 2018-07-11 Seven Networks, LLC Mobile network traffic coordination across multiple applications
US8838783B2 (en) 2010-07-26 2014-09-16 Seven Networks, Inc. Distributed caching for resource and mobile network traffic management
GB2495066B (en) 2010-07-26 2013-12-18 Seven Networks Inc Mobile application traffic optimization
US9077630B2 (en) 2010-07-26 2015-07-07 Seven Networks, Inc. Distributed implementation of dynamic wireless traffic policy
US8566596B2 (en) * 2010-08-24 2013-10-22 Cisco Technology, Inc. Pre-association mechanism to provide detailed description of wireless services
US8166164B1 (en) 2010-11-01 2012-04-24 Seven Networks, Inc. Application and network-based long poll request detection and cacheability assessment therefor
US9330196B2 (en) 2010-11-01 2016-05-03 Seven Networks, Llc Wireless traffic management system cache optimization using http headers
WO2012060995A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US9060032B2 (en) 2010-11-01 2015-06-16 Seven Networks, Inc. Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic
US9021048B2 (en) 2010-11-01 2015-04-28 Seven Networks, Inc. Caching adapted for mobile application behavior and network conditions
WO2012061430A2 (en) 2010-11-01 2012-05-10 Michael Luna Distributed management of keep-alive message signaling for mobile network resource conservation and optimization
US8484314B2 (en) 2010-11-01 2013-07-09 Seven Networks, Inc. Distributed caching in a wireless network of content delivered for a mobile application over a long-held request
US8843153B2 (en) 2010-11-01 2014-09-23 Seven Networks, Inc. Mobile traffic categorization and policy for network use optimization while preserving user experience
EP2636268B1 (en) 2010-11-22 2019-02-27 Seven Networks, LLC Optimization of resource polling intervals to satisfy mobile device requests
GB2495463B (en) 2010-11-22 2013-10-09 Seven Networks Inc Aligning data transfer to optimize connections established for transmission over a wireless network
WO2012094675A2 (en) 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
GB2504411A (en) 2011-04-19 2014-01-29 Seven Networks Inc Shared resource and virtual resource management in a networked environment
WO2012149221A2 (en) 2011-04-27 2012-11-01 Seven Networks, Inc. System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief
GB2505585B (en) 2011-04-27 2015-08-12 Seven Networks Inc Detecting and preserving state for satisfying application requests in a distributed proxy and cache system
US8984581B2 (en) 2011-07-27 2015-03-17 Seven Networks, Inc. Monitoring mobile application activities for malicious traffic on a mobile device
US8918503B2 (en) 2011-12-06 2014-12-23 Seven Networks, Inc. Optimization of mobile traffic directed to private networks and operator configurability thereof
EP2789137A4 (en) 2011-12-06 2015-12-02 Seven Networks Inc SYSTEM OF REDUNDANT GROUPED MACHINES FOR PROVISION OF FAILSAFE MECHANISMS FOR MOBILE TRANSPORT MANAGEMENT AND NETWORK RESOURCE STORAGE
WO2013086455A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation
WO2013086447A1 (en) 2011-12-07 2013-06-13 Seven Networks, Inc. Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol
US9021021B2 (en) 2011-12-14 2015-04-28 Seven Networks, Inc. Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system
WO2013090834A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic
WO2013090821A1 (en) 2011-12-14 2013-06-20 Seven Networks, Inc. Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization
US8909202B2 (en) 2012-01-05 2014-12-09 Seven Networks, Inc. Detection and management of user interactions with foreground applications on a mobile device in distributed caching
US20130179489A1 (en) * 2012-01-10 2013-07-11 Marcus Isaac Daley Accelerating web services applications through caching
US9203864B2 (en) 2012-02-02 2015-12-01 Seven Networks, Llc Dynamic categorization of applications for network access in a mobile network
WO2013116852A1 (en) 2012-02-03 2013-08-08 Seven Networks, Inc. User as an end point for profiling and optimizing the delivery of content and data in a wireless network
US20130262704A1 (en) * 2012-04-03 2013-10-03 Google Inc. System and method for improving delivery of content over a network
US8812695B2 (en) 2012-04-09 2014-08-19 Seven Networks, Inc. Method and system for management of a virtual network connection without heartbeat messages
US10263899B2 (en) 2012-04-10 2019-04-16 Seven Networks, Llc Enhanced customer service for mobile carriers using real-time and historical mobile application and traffic or optimization data associated with mobile devices in a mobile network
US8775631B2 (en) 2012-07-13 2014-07-08 Seven Networks, Inc. Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications
US9161258B2 (en) 2012-10-24 2015-10-13 Seven Networks, Llc Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion
US20140177497A1 (en) 2012-12-20 2014-06-26 Seven Networks, Inc. Management of mobile device radio state promotion and demotion
US9241314B2 (en) 2013-01-23 2016-01-19 Seven Networks, Llc Mobile device with application or context aware fast dormancy
US8874761B2 (en) 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US9326185B2 (en) 2013-03-11 2016-04-26 Seven Networks, Llc Mobile network congestion recognition for optimization of mobile traffic
US9065765B2 (en) 2013-07-22 2015-06-23 Seven Networks, Inc. Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network
US10819562B2 (en) * 2018-07-24 2020-10-27 Zscaler, Inc. Cloud services management systems utilizing in-band communication conveying situational awareness
CN110489694A (zh) * 2019-07-30 2019-11-22 阿里巴巴集团控股有限公司 用于处理高并发请求的方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970005607B1 (ko) 1992-02-28 1997-04-18 삼성전자 주식회사 청취공간 특성 보정장치
JPH0895592A (ja) 1994-09-21 1996-04-12 Nippon Telegr & Teleph Corp <Ntt> パターン認識方法
JP3264141B2 (ja) 1995-05-29 2002-03-11 株式会社日立製作所 音環境シミュレータ
JP3795610B2 (ja) 1997-01-22 2006-07-12 株式会社東芝 信号処理装置
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US6782379B2 (en) * 2000-12-22 2004-08-24 Oblix, Inc. Preparing output XML based on selected programs and XML templates
US20020184340A1 (en) * 2001-05-31 2002-12-05 Alok Srivastava XML aware logical caching system

Also Published As

Publication number Publication date
US20030236857A1 (en) 2003-12-25
JP2003271441A (ja) 2003-09-26
US7660844B2 (en) 2010-02-09

Similar Documents

Publication Publication Date Title
JP4366040B2 (ja) ネットワークサービスシステム、サーバ及びプログラム
US6789170B1 (en) System and method for customizing cached data
US7103714B1 (en) System and method for serving one set of cached data for differing data requests
US7076608B2 (en) Invalidating cached data using secondary keys
US7634570B2 (en) Managing state information across communication sessions between a client and a server via a stateless protocol
US9842174B2 (en) Using document templates to assemble a collection of documents
US7072984B1 (en) System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US6356906B1 (en) Standard database queries within standard request-response protocols
US7908269B2 (en) Method, system, and software for transmission of information
US8589484B2 (en) Method for optimizing a web content proxy server and devices thereof
US9703885B2 (en) Systems and methods for managing content variations in content delivery cache
US9111003B2 (en) Scalable derivative services
US20040006653A1 (en) Method and system for wrapping existing web-based applications producing web services
US20020184340A1 (en) XML aware logical caching system
US20020188435A1 (en) Interface for submitting richly-formatted documents for remote processing
US20020152286A1 (en) Method and apparatus for handling requests for content in a network data processing system
US20120124175A1 (en) Atom-based really simple syndication (rss) content reader system and method, and atom-based rss content providing system and method
US7085807B2 (en) System and method for providing links to available services over a local network by a thin portal service configured to access imaging data stored in a personal imaging repository
US20030191858A1 (en) Response time of transformed documents based on caching and dynamic transformation
US7797376B1 (en) Arrangement for providing content operation identifiers with a specified HTTP object for acceleration of relevant content operations
US8949375B2 (en) Data processing of media file types supported by client devices
US20020107986A1 (en) Methods and systems for replacing data transmission request expressions
JP2000285052A (ja) Url変換方法および装置
US20060026510A1 (en) Method for optimizing markup language transformations using a fragment data cache
US20210357465A1 (en) Method and System for High Speed Serving of Webpages

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070228

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070420

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070525

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090528

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090731

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090819

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090824

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

Free format text: PAYMENT UNTIL: 20120828

Year of fee payment: 3

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees