JP4366040B2 - ネットワークサービスシステム、サーバ及びプログラム - Google Patents
ネットワークサービスシステム、サーバ及びプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer 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
【発明の属する技術分野】
本発明は、コンピュータによるデータ処理において、所定のアドレスがどのメモリ領域に属するかを判別する処理を効率的に行う方法に関する。
【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)
- ネットワークを介して接続されたサーバとクライアントとを備えたネットワークサービスシステムにおいて、
前記クライアントは、
予め定められた正規化規則にしたがって正規化されたXML文書を含む処理要求を前記サーバに送信する送信手段と、
前記サーバから前記処理要求に対する応答を受信する受信手段と、
前記サーバから受信した応答に含まれるデータをキャッシュする記憶手段と、
前記記憶手段にキャッシュされているキャッシュデータの情報を付加情報として前記処理要求に付加する情報付加手段とを備え、
前記サーバは、
前記クライアントに対して前記処理要求および前記応答の送受信を行う送受信手段と、
前記処理要求に対する処理を実行する処理手段と、
前記送受信手段により受信した前記処理要求に含まれる前記XML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該XML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該XML文書に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成されたデータを前記送受信手段により当該処理要求の要求元へ送信し、かつ当該XML文書をキーとして当該生成されたデータを当該記憶装置にキャッシュする代理手段とを備え、
前記代理手段は、受信した前記処理要求に付加されている前記付加情報が特定するキャッシュデータと自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするネットワークサービスシステム。 - ネットワークを介して接続されたサーバとクライアントとを備えたネットワークサービスシステムにおいて、
前記クライアントは、
予め定められた正規化規則にしたがって正規化されたXML文書として処理要求を生成し、当該処理要求に当該XML文書のハッシュ値を付加する処理要求生成手段と、
前記ハッシュ値が付加された前記処理要求を前記サーバに送信し、当該サーバから当該処理要求に対する応答を受信する送受信手段と、
前記サーバから受信した応答に含まれるデータをキャッシュする記憶手段とを備え、
前記処理要求生成手段は、前記記憶手段にキャッシュされているキャッシュデータであって前記処理要求と同一の処理要求に対する応答として取得したキャッシュデータのハッシュ値を付加情報として前記処理要求にさらに付加し、
前記サーバは、
前記クライアントに対して前記処理要求および前記応答の送受信を行う送受信手段と、
前記処理要求に対する処理を実行する処理手段と、
前記送受信手段により受信した前記処理要求に付加されている前記ハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該ハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該ハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成されたデータを前記送受信手段により当該処理要求の要求元へ送信し、かつ当該ハッシュ値をキーとして当該生成されたデータを当該記憶装置にキャッシュする代理手段とを備え、
前記代理手段は、受信した前記処理要求に付加されている前記キャッシュデータのハッシュ値と自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするネットワークサービスシステム。 - ネットワークを介してWebサービスを提供するサーバにおいて、
クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信部と、
前記送受信部により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化部と、
前記処理要求に対する処理を実行する処理部と、
正規化された前記第1のXML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信部により前記処理要求の要求元へ送信し、当該第1のXML文書に対応するキャッシュデータが存在しない場合に、前記処理部の処理により生成された第2のXML文書を前記送受信部により当該処理要求の要求元へ送信し、かつ当該第1のXML文書をキーとして当該第2のXML文書を当該記憶装置にキャッシュする応答処理部とを備え、
前記応答処理部は、受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータの情報に基づいて特定されるキャッシュデータと、自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが当該クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするサーバ。 - ネットワークを介してWebサービスを提供するサーバにおいて、
クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信部と、
前記送受信部により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化部と、
前記第1のXML文書のハッシュ値が当該処理要求に付加されているか否かを調べ、付加されていない場合に当該第1のXML文書のハッシュ値を計算するハッシュ値計算部と、
前記処理要求に対する処理を実行する処理部と、
正規化された前記第1のXML文書のハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信部により前記処理要求の要求元へ送信し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理部の処理により生成された第2のXML文書を前記送受信部により当該処理要求の要求元へ送信し、かつ当該第1のXML文書のハッシュ値をキーとして当該第2のXML文書を当該記憶装置にキャッシュする応答処理部とを備え、
前記応答処理部は、受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータのハッシュ値と、自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信することを特徴とするサーバ。 - コンピュータを、
クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信手段と、
前記送受信手段により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化手段と、
前記処理要求に対する処理を実行する処理手段と、
正規化された前記第1のXML文書をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該第1のXML文書に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成された第2のXML文書を前記送受信手段により当該処理要求の要求元へ送信し、かつ当該第1のXML文書をキーとして当該第2のXML文書を当該記憶装置にキャッシュし、さらに受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータの情報に基づいて特定されるキャッシュデータと、自装置の前記記憶装置から検索されたキャッシュデータとが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが当該クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信する応答処理手段として
機能させるためのプログラム。 - コンピュータを、
クライアントに対して処理要求および当該処理要求に対する応答の送受信を行う送受信手段と、
前記送受信手段により受信された前記処理要求に含まれる第1のXML文書が予め定められた正規化規則にしたがって正規化されているか否かを調べ、正規化されていない場合に当該第1のXML文書を正規化する正規化手段と、
前記第1のXML文書のハッシュ値が前記処理要求に付加されているか否かを調べ、付加されていない場合に当該第1のXML文書のハッシュ値を計算するハッシュ値計算手段と、
前記処理要求に対する処理を実行する処理手段と、
正規化された前記第1のXML文書のハッシュ値をキーとして記憶装置にキャッシュされているキャッシュデータを検索し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在する場合に、当該キャッシュデータを前記送受信手段により前記処理要求の要求元へ送信し、当該第1のXML文書のハッシュ値に対応するキャッシュデータが存在しない場合に、前記処理手段の処理により生成された第2のXML文書を前記送受信手段により当該処理要求の要求元へ送信し、かつ当該第1のXML文書のハッシュ値をキーとして当該第2のXML文書を当該記憶装置にキャッシュし、さらに受信した前記処理要求に付加されている、前記クライアントにキャッシュされているキャッシュデータのハッシュ値と、自装置の前記記憶装置から検索されたキャッシュデータのハッシュ値とが同一である場合に、当該処理要求の要求元に対して当該キャッシュデータに代えて当該キャッシュデータが前記クライアントにキャッシュされているキャッシュデータと同一であることを示す通知を送信する応答処理手段として
機能させるためのプログラム。
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)
| 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)
| 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 |
-
2002
- 2002-03-07 JP JP2002061651A patent/JP4366040B2/ja not_active Expired - Fee Related
-
2003
- 2003-03-05 US US10/382,610 patent/US7660844B2/en not_active Expired - Lifetime
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 |