JP4114873B2 - サーバ装置、サービス方法、プログラム及び記録媒体 - Google Patents

サーバ装置、サービス方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP4114873B2
JP4114873B2 JP2004040202A JP2004040202A JP4114873B2 JP 4114873 B2 JP4114873 B2 JP 4114873B2 JP 2004040202 A JP2004040202 A JP 2004040202A JP 2004040202 A JP2004040202 A JP 2004040202A JP 4114873 B2 JP4114873 B2 JP 4114873B2
Authority
JP
Japan
Prior art keywords
processing
key
unit
message
request message
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
JP2004040202A
Other languages
English (en)
Other versions
JP2005234690A (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 JP2004040202A priority Critical patent/JP4114873B2/ja
Priority to CN200510007984.7A priority patent/CN100518183C/zh
Priority to US11/058,510 priority patent/US7512691B2/en
Publication of JP2005234690A publication Critical patent/JP2005234690A/ja
Application granted granted Critical
Publication of JP4114873B2 publication Critical patent/JP4114873B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、サーバ装置、サービス方法、プログラム及び記録媒体に関する。特に本発明は、複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置、サービス方法、プログラム及び記録媒体に関する。
従来、ネットワークに接続されたサーバ装置によりサービスを提供し、クライアント装置側で各種のWebサービスを組み合わせてソフトウェアを構築可能とするWebサービスシステムが提供されている。Webサービスシステムにおいては、クライアント装置は、Webサービスに与える引数を記述したXML(Extensible Markup Language)文書を含むSOAP(Simple Object Access Protocol)要求メッセージをサーバ装置へ送信し、Webサービスの処理を要求する。サーバ装置は、このSOAP要求メッセージを入力として、Webサービスの処理を行い、Webサービスの戻り値を記述したXML文書を含むSOAP応答メッセージをクライアント装置へ返信する。Webサービスシステムによれば、サービス提供者がインターネット上で提供する様々なWebサービスを組み合わせてソフトウェアを効率良く開発することができ、また、複数の企業の情報システムを連携した分散システムを構築することができる。
Webサービスを提供する一般的なサーバ装置は、SOAP要求メッセージの構文解析を行うストリーミング構文解析器と、構文解析の結果に基づいてWebサービスの処理を行う要求処理部とを備える。そして、要求処理部は、構文解析の結果に基づいてWebサービスに与えるパラメータを含むJavaオブジェクト等の入力オブジェクトを生成すると共に、Webサービスの戻り値を含むJavaオブジェクト等の出力オブジェクトをSOAP応答メッセージに変換するメッセージ変換部と、メッセージ変換部から入力された入力オブジェクトに基づきサーバアプリケーションの処理を行い、処理結果を出力オブジェクトとしてメッセージ変換部に返すアプリケーション処理部とを有する。
上記のサーバ装置の応答時間を短縮するために、特許文献1及び非特許文献1に示すキャッシング技術が開示されている。
特許文献1は、上記の一般的なサーバ装置におけるストリーミング構文解析器の手前に、キャッシュ機構を設けたサーバ装置を開示する。本サーバ装置においては、キャッシュ機構は、受信したSOAP要求メッセージをまず解析し、対応するSOAP応答メッセージをキャッシングしているか否かを判断する。そして、対応するSOAP応答メッセージがキャッシングされている場合に、キャッシングされたSOAP応答メッセージを返信する。一方、対応するSOAP応答メッセージがキャッシングされていない場合に、キャッシュ機構は、SOAP要求メッセージをストリーミング構文解析器へ送り、ストリーミング構文解析器及びサーバアプリケーション処理部による処理を行わせる。
非特許文献1は、上記の一般的なサーバ装置における要求処理部内のメッセージ変換部及びアプリケーション処理部の間にキャッシュ機構を設ける方法を開示する。この方法においては、ストリーミング構文解析器は、受信したSOAP要求メッセージを解析し、メッセージ変換部は、構文解析の結果に基づいて入力オブジェクトを生成する。次に、キャッシュ機構は、当該入力オブジェクトに対応する出力オブジェクトをキャッシングしているか否かを判断する。そして、対応する出力オブジェクトがキャッシングされている場合、キャッシュ機構は、キャッシングされた出力オブジェクトをメッセージ変換部によりSOAP応答メッセージに変換させて返信させる。一方、対応する出力オブジェクトがキャッシングされていない場合、キャッシュ機構は、入力オブジェクトをサーバアプリケーション処理部に送り、Webサービスの処理を行わせる。
特開2003−271441号公報 Brian D. Goodman, "Accelerate your Web services with caching", [online], 2002年12月1日, International Business Machines, [2004年1月27日検索], インターネット Bob Atkinson他, "Web Services Security(WS-Security)", [online], 2002年5月23日, International Business Machines, [2004年1月27日検索], インターネット
特許文献1のキャッシュ方式においては、ストリーミング構文解析器以降の処理の手前にキャッシュ機構を設けるため、キャッシュヒット時の応答時間が非特許文献1と比較し短いという利点を有する。一方、キャッシュ機構は、SOAP要求メッセージをキャッシュのヒット/ミス判定の目的である程度解析するが、キャッシュミス時にはSOAP要求メッセージを要求処理部へ贈るため、キャッシュ機構における解析が無駄となり、応答時間が増加してしまう。
非特許文献2のキャッシュ方式においては、キャッシュ機構は、ストリーミング構文解析器及びメッセージ変換部により生成される入力オブジェクトに対応する出力オブジェクトをキャッシュする。このため、キャッシュのヒット/ミス判定のみのためにSOAP要求メッセージを解析する必要がなく、キャッシュミス時における応答時間の増加を抑えることができる。一方、キャッシュヒット時においても入力オブジェクトを生成する必要があるため、特許文献1のキャッシュ方式と比較し応答時間が長くなってしまう。
そこで本発明は、上記の課題を解決することのできるサーバ装置、サービス方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
本発明の第1の形態によると、複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、受信した前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、前記処理応答メッセージを生成する要求処理部と、前記処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成されたキーに対応付けて、当該処理要求メッセージに対する前記処理応答メッセージをキャッシュするキャッシュ部と、新たに受信した前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、新たに受信した前記処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、キーを生成するキー生成部と、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致する場合に、新たに受信した前記処理要求メッセージに対する前記処理応答メッセージとして、当該キーに対応付けて前記キャッシュ部にキャッシュされた前記処理応答メッセージを返信し、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記処理応答メッセージを生成させ、生成された前記処理応答メッセージを返信するキャッシュ管理部とを備えるサーバ装置と、当該サーバ装置に関するサービス方法、プログラム、及び記録媒体を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明によれば、通信ネットワークを介してクライアント装置にサービスを提供するサーバ装置において、効率の良いキャッシュ機能を提供することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るWebサービスシステム10の構成を示す。Webサービスシステム10は、利用者の指示に基づきクライアント側のアプリケーションプログラムを実行する1又は複数のクライアント装置100と、Webサービス等のサーバ側のアプリケーションプログラムを実行する1又は複数のサーバ装置110と、クライアント装置100及びサーバ装置110を接続するインターネット又はイントラネット等の通信ネットワーク120とを備える。
各クライアント装置100は、当該クライアント装置100上で実行されるクライアントアプリケーションと、1又は複数のサーバ装置110上で実行される1又は複数のサーバアプリケーションにより提供されるサービスとを組み合わせて、当該クライアント装置100の利用者により指定された処理を行う。より具体的には、クライアント装置100は、処理要求メッセージを通信ネットワーク120を介してサーバ装置110へ送信し、当該処理要求メッセージに基づくサービスの処理をサーバ装置110へ要求する。そしてクライアント装置100は、サービスの処理を行ったサーバ装置110が送信する処理応答メッセージを通信ネットワーク120を介して受信して、サーバ装置110による処理結果を得る。
各サーバ装置110は、通信ネットワーク120を介してクライアント装置100から処理要求メッセージを受信し、当該処理要求メッセージに基づくサービスの処理を行って、処理結果を含む処理応答メッセージを返信する。ここで、処理要求メッセージ及び処理応答メッセージは、複数の要素のそれぞれについて、当該要素の名称及び内容が記述されたXML文書等の構造化文書を含むものであり、例えばSOAPメッセージである。
図2は、本実施形態に係るサーバ装置110の構成を示す。サーバ装置110は、メッセージ解析部200と、キャッシュ処理部210と、要求処理部245とを備え、キャッシュ処理部210がメッセージ解析部200による解析結果を利用してキャッシングを行う。これによりサーバ装置110は、キャッシュヒット時の応答時間を特許文献1におけるキャッシュ方式と同等とすることができる。一方、余分な構文解析を行わないことにより、キャッシュミス時の応答時間を、特許文献1におけるキャッシュ方式と比較し短縮することができる。
メッセージ解析部200は、例えばSAX(Simple API for XML)等のストリーミング構文解析器の一例であり、受信した処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出する。
キャッシュ処理部210は、メッセージ解析部200により抽出された複数の要素のうち少なくとも1つの内容をキーとして、処理応答メッセージをキャッシュする。キャッシュ処理部210は、要素内容登録部215と、要素内容データベース(要素内容DB)220と、キー生成部225と、設定ファイル格納部230と、キャッシュ部235と、キャッシュ管理部240とを有する。
要素内容登録部215は、メッセージ解析部200により抽出された複数の要素のそれぞれの内容を要素内容DB220に登録する。要素内容DB220は、要素内容登録部215により登録された複数の要素のそれぞれの内容を、一時的に保持するバッファである。キー生成部225は、要素内容DB220に保持された複数の要素のうち、設定ファイル格納部230に格納された設定ファイルにより予め定められたキー要素の内容に基づいて、処理要求メッセージのキーを生成する。キャッシュ部235は、処理要求メッセージのキーに対応付けて、既に返信された、当該処理要求メッセージに対応する処理応答メッセージをキャッシュする。
キャッシュ管理部240は、新たに受信された処理要求メッセージのキーと一致するキーがキャッシュ部235に格納されている場合にキャッシュヒットと判断し、当該キーに対応してキャッシュ部235にキャッシュされた処理応答メッセージを要求元のサーバ装置110へ返信する。一方、新たに受信された処理要求メッセージのキーと一致するキーがキャッシュ部235に格納されてない場合にキャッシュミスと判断し、要素内容DB220に保持された複数の要素のそれぞれの内容を要求処理部245へ通知する。
要求処理部245は、処理要求メッセージに含まれる複数の要素の内容を入力として、Webサービスの処理を行う。要求処理部245は、メッセージ変換部250と、アプリケーション処理部270とを有する。メッセージ変換部250は、入力オブジェクト生成部255と、処理応答メッセージ生成部260とを含む。入力オブジェクト生成部255は、キャッシュ処理部210から受け取った複数の要素の内容に基づいて、Webサービスの処理を行うサーバアプリケーションに与えるパラメータを含む入力オブジェクトを生成し、アプリケーション処理部270へ供給する。処理応答メッセージ生成部260は、アプリケーション処理部270によるサーバアプリケーションの処理の結果出力される出力オブジェクトを入力し、処理応答メッセージに変換してキャッシュ処理部210を介してサーバ装置110へ出力する。
アプリケーション処理部270は、メッセージ変換部250から入力された入力オブジェクトに基づきサーバアプリケーションの処理を行い、処理結果を出力オブジェクトとしてメッセージ変換部250に返す。
本実施形態において、以上に示したサーバ装置110は、Webサービスを提供するためのミドルウェアのプログラムと、当該ミドルウェア上で実行されるサーバアプリケーションのプログラムとを、1又は複数のサーバコンピュータ上で実行させることにより実現される。
図3は、本実施形態に係るサーバ装置110の処理フローを示す。
まず、クライアント装置100が送信した処理要求メッセージを受信すると(S300)、メッセージ解析部200は、当該処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出してキャッシュ処理部210へ通知する(S305)。より具体的には、メッセージ解析部200は、当該処理要求メッセージに含まれる構造化文書の構文解析を行い、複数の要素のそれぞれの内容を抽出する度に要素内容登録部215を実現する関数を呼び出すことにより、各要素の内容をキャッシュ処理部210へ通知する。
次に、要素内容登録部215は、メッセージ解析部200から関数呼び出しにより通知された、複数の要素のそれぞれの内容を、要素内容DB220に登録する(S310)。より具体的には、要素内容登録部215は、複数の要素のそれぞれの内容が抽出される度にメッセージ解析部200から関数呼び出しにより呼び出され、当該関数呼び出しにより通知された複数の要素のそれぞれの内容を要素内容DB220に登録する。
次に、キー生成部225は、当該処理要求メッセージに含まれる複数の要素のうち、キー要素の内容に基づいて、当該処理要求メッセージのキーを生成する(S315)。
より具体的には、サーバ装置110により提供されるサービスの管理者は、サーバ装置110が受信する可能性がある複数種類の処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについてのキー要素を指定する設定ファイルを予め作成しておく。ここで、処理要求メッセージの種類とは、例えば処理要求メッセージがWebサービスに対して要求するコマンド等に基づいて定められる。サービスの管理者は、同一種類の複数の処理要求メッセージに対して同一内容の処理応答メッセージを返信してよい場合に、これらの処理要求メッセージのキーが同一となるようにキー要素を指定しておく。
設定ファイル格納部230は、管理者により作成された設定ファイルを格納する。新たに処理要求メッセージが受信されたことを検出すると、キー生成部225は、当該処理要求メッセージに含まれる要素の内容等に基づいて、当該処理要求メッセージの種類を判断する。そして、キー生成部225は、設定ファイル格納部230に格納された設定ファイルから、当該処理要求メッセージについてのキー要素を読み出して、キー要素の内容に基づき当該処理要求メッセージのキーを生成する。例えばキー生成部225は、キー要素の内容を、ハッシュ関数を用いて変換する等の手段によりキーを生成する。
このように、キー生成部225は、サービスの管理者により予め設定ファイル格納部230に格納された設定ファイルに基づいてキー要素を決定するため、処理要求メッセージの種類に応じて適切にキー要素を選択するこができる。ここで、サービスの管理者は、処理要求メッセージの種類が当該処理要求メッセージのある要素の名称又は内容として含まれる場合に、当該要素をキー要素に含めてもよい。この条件によりキー要素が定められるのであれば、処理要求メッセージの種類に応じて異なるキーが生成されるため、キー生成部225は、予め処理要求メッセージの種類を判別しなくてもよい。
また、複数の要素のうち一部の要素のみをキー要素として使用する場合には、キー生成部225は、まず処理要求メッセージについてのキー要素を設定ファイルから取得する。そしてキー生成部225は、設定ファイルから取得した全てのキー要素が要素内容DB220に登録された場合に、要素内容DB220に登録された全てのキー要素の内容に基づいてキーを生成する。これにより、キー生成部225及びキャッシュ管理部240は、キー要素以外の要素が要素内容DB220に登録されていない状態であっても、キーの生成やキャッシュヒット/ミスの判定を先行して行うことができる。
次に、キャッシュ管理部240は、当該キーを用いてキャッシュ部235を検索し、当該キーと一致するキーがキャッシュ部235に登録されているか否かを判断する。処理応答メッセージに対応付けてキャッシュ部235に既に登録されている全てのキーが当該キーと一致しない場合(S320:Yes)、キャッシュ管理部240は、メッセージ解析部200により抽出されて要素内容DB220に格納された、当該処理要求メッセージに含まれる複数の要素の内容を要求処理部245へ通知する(S325)。これによりキャッシュ管理部240は、要求処理部245に、複数の要素の内容に基づく処理を行わせて当該処理要求メッセージに対する処理応答メッセージを生成させる。
ここで、キャッシュ管理部240は、メッセージ解析部200による当該処理要求メッセージの解析が完了し、複数の要素の全ての内容が要素内容DB220に登録されたことを更に条件として、要素内容DB220に登録された複数の要素の全ての内容を一括して要求処理部245へ通知してもよい。これにより、複数の要素のそれぞれの内容を順次要求処理部245へ通知する場合と比較し、効率良く通知を行うことができる。
次に、入力オブジェクト生成部255は、キャッシュ管理部240から通知された複数の要素の内容に基づき、当該処理要求メッセージに対応してアプリケーション処理部270に入力される入力オブジェクトを生成する(S330)。ここで、入力オブジェクトとは、例えばJava(登録商標)のオブジェクト等であり、サーバコンピュータをアプリケーション処理部270として機能させるサーバアプリケーションにおける、処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含むオブジェクトである。
次に、アプリケーション処理部270は、入力オブジェクトを入力として処理関数に定められたWebサービス等の処理を行い、出力オブジェクトを生成する(S335)。ここで、出力オブジェクトとは、例えばJava(登録商標)のオブジェクト等であり、処理関数の出力パラメータを含むオブジェクトである。
次に、処理応答メッセージ生成部260は、アプリケーション処理部270から出力オブジェクトを受け取り、出力オブジェクトに基づいて、当該処理要求メッセージに対応する処理応答メッセージを生成する(S340)。次に、キャッシュ管理部240は、処理応答メッセージ生成部260により生成された当該処理応答メッセージを受け取り、要求処理部245により生成された当該処理応答メッセージを、キー生成部225により生成されたキーに対応付けて、キャッシュ部235にキャッシュさせる(S345)。そして、キャッシュ管理部240は、要求処理部245により生成された当該処理応答メッセージを返信する(S350)。
以上の処理により、クライアント装置100から第1の処理要求メッセージを受信した場合に、当該第1の処理要求メッセージに対応する第1の処理応答メッセージが、当該第1の処理要求メッセージについての第1のキーに対応付けてキャッシュ部235にキャッシュされる。
また、S320において、当該キーが、処理応答メッセージがキャッシュ部235に既に登録されているいずれかの処理要求メッセージのキーと一致した場合(S320:No)に、キャッシュ管理部240は、当該処理要求メッセージに対する処理応答メッセージとして、当該キーと一致したキーに対応付けてキャッシュ部235にキャッシュされた処理応答メッセージを読み出し(S355)、クライアント装置100へ返信する(S350)。これにより、第1の処理要求メッセージが、第1のキーに対応付けてキャッシュ部235にキャッシュされている場合において、第2の処理要求メッセージのキーである第2のキーが第1のキーと一致した場合に、第2の処理要求メッセージに対する処理応答メッセージとして、第1のキーに対応付けてキャッシュ部235にキャッシュされた第1の処理応答メッセージを返信することができる。
更にキャッシュ管理部240は、S320において、当該キーが、処理応答メッセージがキャッシュ部235に既に登録されているいずれかの処理要求メッセージのキーと一致した場合(S320:No)に、メッセージ解析部200による複数の要素の内容の抽出処理を中止させてもよい。これにより、キャッシュヒット時に当該処理要求メッセージの解析が無駄に続けられるのを防止することができる。
以上に示したサーバ装置110によれば、キャッシュ処理部210は、メッセージ解析部200による処理要求メッセージの解析結果を利用して、キャッシングを行うことができる。ここで、特許文献1においても処理要求メッセージから各要素の内容を抽出してキーを生成する処理が必要となるため、本実施形態に係るサーバ装置110は、キャッシュヒット時の応答時間を特許文献1と略同等に保つことができる。一方、キャッシュミス時において、本実施形態に係るサーバ装置110は、処理要求メッセージを要求処理部245に転送するのではなく、メッセージ解析部200による解析結果を要求処理部245へ通知する。このため、キャッシュミス時においては、再度処理要求メッセージの解析を行う必要がなく、特許文献1と比較し応答時間を短縮することができる。
なお、要素内容登録部215は、当該キーがキャッシュ部235に登録されているキーと一致しないと判断した場合に、S325において、当該判断以降にメッセージ解析部200から関数呼び出しにより要素の内容が通知される度に、関数呼び出しにより要求処理部245へ当該要素の内容を直接通知してもよい。これにより、キャッシュミスが確定した以降にメッセージ解析部200から通知された要素の内容を、要素内容DB220及びキャッシュ管理部240を経ることなく効率良く要求処理部245へ渡すことができる。
図4は、本実施形態に係る処理要求メッセージ400の一例を示す。本実施形態に係る処理要求メッセージ400は一例としてSOAPメッセージであり、HTTP等のプロトコルにより通信ネットワーク120を介して当該処理要求メッセージ400を通信させるために付加されたプロトコルバインディングヘッダ410と、処理要求メッセージ400の本体を含むSOAPエンベロープ420とを備える。
SOAPエンベロープ420は、クライアント装置100及びサーバ装置110のSOAP処理系同士の間で渡される情報をXML文書として記述したSOAPヘッダ430と、要求処理部245に渡すべきパラメータをXML文書として記述したSOAPメッセージ本体440とを有する。ここでSOAPメッセージ本体440は、要求処理部245に渡すべきパラメータを定義する複数の要素450を含む。各要素450は、要素450の名称を含み当該要素450の定義の開始を示す開始タグ460と、当該要素450の内容を記述した内容データ480と、当該要素450の定義の終了を示す終了タグ470との組により定義される。
メッセージ解析部200は、処理要求メッセージ400の先頭から順に構文解析を行い、SOAPエンベロープ420の先頭タグや終了タグの検出時、SOAPヘッダ430の先頭タグや終了タグの検出時、SOAPメッセージ本体440の先頭タグや終了タグの検出時、開始タグ460や終了タグ470の検出時、及び/又は内容データ480の検出時に、これらをキャッシュ処理部210に通知する。より具体的には、メッセージ解析部200は、検出内容に応じたイベントをキャッシュ処理部210に通知する。
要素内容登録部215は、終了タグ470を検出した旨のイベントを通知されると、開始タグ460の検出時に通知された当該要素450の名称と、当該イベントにより通知された当該要素450の内容との組を要素内容DB220へ登録する。
図5は、本実施形態に係る入力クラス500の一例を示す。複数の要素のそれぞれの内容をキャッシュ処理部210から通知されると、入力オブジェクト生成部255は、処理要求メッセージに対応する入力クラス500に基づいて、入力オブジェクトを生成する。そして、入力オブジェクト生成部255は、入力オブジェクト中の複数の各変数に、当該変数に対応する要素の内容を代入する。
例えば、処理要求メッセージが「element1」から「elementn」を含む場合、入力オブジェクト生成部255は、当該処理要求メッセージに対応して「element1」から「elementn」に対応する変数を含む入力クラス500をインスタンス化して、入力オブジェクトを生成する。次に、入力オブジェクト生成部255は、処理要求メッセージ中の各要素450の内容データ480を、変数「element1」から「elementn」にそれぞれ代入する。そして、入力オブジェクト生成部255は、各要素450の内容データ480が代入された入力オブジェクトをアプリケーション処理部270へパラメータとして渡すことにより、処理要求メッセージに記述された各要素の内容をアプリケーション処理部270へ渡す。
処理要求メッセージ400を入力オブジェクトに変換する処理は、処理要求メッセージ400から各要素の内容を抽出する処理と、入力オブジェクトを生成して各要素の内容を対応する変数に代入する処理に分割できる。本実施形態に係るサーバ装置110は、メッセージ解析部200によって処理要求メッセージ400から各要素の内容を抽出する処理が行われた結果を利用してキャッシングを行うと共に、各要素の内容を要素内容DB220にバッファリングしてキャッシュミス時に要求処理部245に渡す。これによりサーバ装置110は、キャッシュミス時において処理要求メッセージを再度解析する必要がなく、応答時間を短縮することができる。
図6は、本実施形態に係る出力クラス600の一例を示す。アプリケーション処理部270は、入力オブジェクト生成部255から入力された入力オブジェクトに含まれる各変数の値に基づいて、Webサービス等のサーバアプリケーションの処理を行う。次に、アプリケーション処理部270は、出力クラス600をインスタンス化して出力オブジェクトを生成する。そして、アプリケーション処理部270は、要求元のクライアント装置100へ返信すべき戻り値を、出力オブジェクトの各変数に代入し、処理応答メッセージ生成部260へ渡す。
図7は、本実施形態に係る処理応答メッセージ700の一例を示す。本実施形態に係る処理応答メッセージ700は、一例としてSOAPメッセージである。プロトコルバインディングヘッダ710、SOAPエンベロープ720、SOAPヘッダ730、SOAPメッセージ本体740、要素750、開始タグ760、終了タグ770、及び内容データ780は、以下に示す点を除き、プロトコルバインディングヘッダ410、SOAPエンベロープ420、SOAPヘッダ430、SOAPメッセージ本体440、要素450、開始タグ460、終了タグ470、及び内容データ480とそれぞれ同様の機能を有するため、以下相違点を除き説明を省略する。
処理応答メッセージ生成部260は、アプリケーション処理部270から出力オブジェクトを受け取ると、当該出力オブジェクトに含まれる各変数の名称及び値を、要素750中の開始タグ760及び終了タグ770と内容データ780とに変換し、XML文書形式のSOAPメッセージ本体740を生成する。すなわち例えば、処理応答メッセージ生成部260は、出力オブジェクトの変数「elemento1」を、「elemento1の値」等に変換する作業等を行い、XML文書形式のSOAPメッセージ本体740を生成する。そして処理応答メッセージ生成部260は、生成したSOAPメッセージ本体740にプロトコルバインディングヘッダ710、SOAPエンベロープ720の枠組、及びSOAPヘッダ730を付加して処理応答メッセージを生成する。
キャッシュ管理部240は、処理応答メッセージ生成部260により生成された処理応答メッセージをキャッシングする。ここで、非特許文献1のように出力オブジェクトをキャッシングした場合には、キャッシュヒット時においても出力オブジェクトから処理応答メッセージを生成する必要が生じるが、本実施形態に係るサーバ装置110は、キャッシュ部235から直接処理応答メッセージを得ることができるため、応答時間を短縮することができる。
図8は、本実施形態の変形例に係るサーバ装置110の構成を示す。本実施形態に係るサーバ装置110における、図2と同一の符号を付した部材は、図2中の対応する部材と同様の機能及び構成を採るため、以下相違点を除き説明を省略する。
本変形例に係るサーバ装置110は、メッセージ解析部200とキャッシュ処理部210の間に復号化部800を更に備え、処理要求メッセージに含まれる1又は複数の要素の内容が暗号化されている場合に、復号化部800により当該内容を復号化する。このように暗号化された内容を含む処理要求メッセージとしては、例えば非特許文献2に開示されたWS-Security(Web services Security)仕様に基づくSOAPメッセージが挙げられる。
そして、キャッシュ処理部210は、復号化された要素の内容を含む複数の要素の内容をキャッシュ処理部210へ通知し、キャッシュ処理部210及び要求処理部245の処理を行わせる。
図9は、本実施形態の変形例に係るサーバ装置110の処理フローを示す。
まず、サーバ装置110内のメッセージ解析部200は、図3のS300と同様にして、少なくとも1つの要素の内容が暗号化された処理要求メッセージを受信する。次に、メッセージ解析部200は、S305と同様にして、当該処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出する。
復号化部800は、メッセージ解析部200により抽出された複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化する(S910)。そして、復号化部800は、復号化された複数の要素の内容を順次キャッシュ処理部210へ通知する。より具体的には、復号化部800は、各要素の内容をメッセージ解析部200から通知される度に、当該内容が暗号化されている場合には復号化する。そして、復号化部800は、複数の要素のそれぞれ毎に要素内容登録部215を実現する関数を呼び出すことにより、各要素の内容を順次キャッシュ処理部210へ通知する。
ここで、復号化部800は、要素の内容を復号化すると、当該要素の子の要素として定義された複数の要素についての開始タグ460、終了タグ470、及び内容データ480の組を得る場合がある。この場合、復号化部800は、復号化した内容に含まれる要素の名称及び内容を、順次複数の要素に加えてキャッシュ処理部210へ通知する。すなわち例えば、処理要求メッセージが「要素1」及び「要素2」を含み、「要素1」を復号化して「要素1−1」及び「要素1−2」が得られた場合、復号化部800は、「要素1」、「要素1−1」、「要素1−2」及び「要素2」の内容をキャッシュ処理部210へ順次通知する。
そして、サーバ装置110は、復号化部800により復号化された要素を加えた複数の要素について、図3のS310からS355に示した処理を行う。
本変形例に係るサーバ装置110によれば、処理要求メッセージに含まれる少なくとも1つの要素が暗号化されている場合においても、当該要素の内容を復号化してキーとすることを可能とし、適切にキャッシングを行うことができる。また、キャッシュ処理部210は、復号化された複数の要素の内容を要求処理部245へ通知するため、復号化部800により復号化された要素の内容をキャッシュ処理部210及び要求処理部245の両方で使用することができ、効率良くキャッシングを行うことができる。
図10は、本実施形態に係るコンピュータ900のハードウェア構成を示す。本実施形態に係るコンピュータ900は、ホスト・コントローラ1082により相互に接続されるCPU1000、RAM1020、グラフィック・コントローラ1075、及び表示装置1080を有するCPU周辺部と、入出力コントローラ1084によりホスト・コントローラ1082に接続される通信インターフェイス1030、ハードディスクドライブ1040、及びCD−ROMドライブ1060を有する入出力部と、入出力コントローラ1084に接続されるROM1010、フレキシブルディスク・ドライブ1050、及び入出力チップ1070を有するレガシー入出力部とを備える。
ホスト・コントローラ1082は、RAM1020と、高い転送レートでRAM1020をアクセスするCPU1000及びグラフィック・コントローラ1075とを接続する。CPU1000は、ROM1010及びRAM1020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ1075は、CPU1000等がRAM1020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置1080上に表示させる。これに代えて、グラフィック・コントローラ1075は、CPU1000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ1084は、ホスト・コントローラ1082と、比較的高速な入出力装置である通信インターフェイス1030、ハードディスクドライブ1040、CD−ROMドライブ1060を接続する。通信インターフェイス1030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ1040は、コンピュータ900内のCPU1000が使用するプログラム及びデータを格納する。CD−ROMドライブ1060は、CD−ROM1095からプログラム又はデータを読み取り、RAM1020を介してハードディスクドライブ1040に提供する。
また、入出力コントローラ1084には、ROM1010と、フレキシブルディスク・ドライブ1050、及び入出力チップ1070の比較的低速な入出力装置とが接続される。ROM1010は、コンピュータ900が起動時に実行するブート・プログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ1050は、フレキシブルディスク1090からプログラム又はデータを読み取り、RAM1020を介してハードディスクドライブ1040に提供する。入出力チップ1070は、フレキシブルディスク・ドライブ1050や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
RAM1020を介してハードディスクドライブ1040に提供されるプログラムは、フレキシブルディスク1090、CD−ROM1095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM1020を介してコンピュータ900内のハードディスクドライブ1040にインストールされ、CPU1000において実行される。
コンピュータ900にインストールされ、コンピュータ900をサーバ装置110として機能させるプログラムは、メッセージ解析モジュールと、キャッシュ処理モジュールと、要求処理モジュールとを備える。また当該プログラムは、復号化モジュールを更に備えてもよい。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、メッセージ解析部200と、キャッシュ処理部210と、要求処理部245と、復号化部800としてそれぞれ機能させる。
キャッシュ処理モジュールは、要素内容登録モジュールと、キー生成モジュールと、キャッシュ管理モジュールとを有する。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、要素内容登録部215と、キー生成部225と、キャッシュ管理部240としてそれぞれ機能させる。
要求処理モジュールは、入力オブジェクト生成モジュール及び処理応答メッセージ生成モジュールを含むメッセージ変換モジュールと、アプリケーション処理モジュールとを有する。これらのプログラム又はモジュールは、CPU1000等に働きかけて、コンピュータ900を、入力オブジェクト生成部255及び処理応答メッセージ生成部260を含むメッセージ変換部250と、アプリケーション処理部270としてそれぞれ機能させる。
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク1090、CD−ROM1095の他に、DVDやPD等の光学記録媒体、MD等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
以上に説明した実施形態によれば、以下の各項目に示すサーバ装置、サービス方法、プログラム及び記録媒体が実現される。
(項目1)複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、受信した第1の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第1の前記処理応答メッセージを生成する要求処理部と、前記第1の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成された第1のキーに対応付けて、前記第1の処理応答メッセージをキャッシュするキャッシュ部と、受信した第2の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、前記第2の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第2のキーを生成するキー生成部と、前記第2のキーが前記第1のキーと一致する場合に、前記第2の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第1の処理応答メッセージを返信し、前記第2のキーが前記第1のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第2の処理応答メッセージを生成させ、生成された前記第2の処理応答メッセージを返信するキャッシュ管理部とを備えるサーバ装置。
(項目2)前記キャッシュ管理部は、前記第2のキーが前記第1のキーと一致しない場合に、前記要求処理部により生成された前記第2の処理応答メッセージを、前記第2のキーに対応付けて前記キャッシュ部にキャッシュさせる項目1記載のサーバ装置。
(項目3)前記要求処理部は、前記複数の要素の内容に基づき、前記処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含む入力オブジェクトを生成する入力オブジェクト生成部と、前記入力オブジェクトを入力として前記処理関数に定められた処理を行い、前記処理関数の出力パラメータを含む出力オブジェクトを生成するアプリケーション処理部と、前記出力オブジェクトに基づいて、前記処理応答メッセージを生成する処理応答メッセージ生成部とを有する項目1記載のサーバ装置。
(項目4)複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、前記キー生成部は、前記第2の処理要求メッセージについての前記キー要素の内容に基づき、前記第2のキーを生成する項目1記載のサーバ装置。
(項目5)前記第2の処理要求メッセージに含まれる前記複数の要素のそれぞれの内容が抽出される度に前記メッセージ解析部から関数呼び出しにより呼び出されて、当該関数呼び出しにより通知された前記複数の要素のそれぞれの内容を要素内容データベースに登録する要素内容登録部を更に備え、前記キー生成部は、前記要素内容データベースに全ての前記キー要素が登録された場合に、前記要素内容データベースに登録された全ての前記キー要素の内容に基づいて、前記第2のキーを生成し、前記キャッシュ管理部は、前記要素内容データベースに前記複数の要素の全ての内容が登録され、かつ、前記第2のキーが前記第1のキーと一致しない場合に、前記要素内容データベースに登録された前記複数の要素の全ての内容を前記要求処理部へ通知する項目1記載のサーバ装置。
(項目6)複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、前記キー生成部は、前記第2の処理要求メッセージについての前記キー要素を前記設定ファイルから取得し、前記設定ファイルから取得した全ての前記キー要素が前記要素内容データベースに登録された場合に、前記第2のキーを生成する項目5記載のサーバ装置。
(項目7)前記要素内容登録部は、前記第2のキーが前記第1のキーと一致しないと判断した場合に、当該判断以降に前記メッセージ解析部から関数呼び出しにより前記要素の内容が通知される度に、関数呼び出しにより前記要求処理部へ当該要素の内容を通知する項目5記載のサーバ装置。
(項目8)前記キャッシュ管理部は、前記第2のキーが前記第1のキーと一致した場合に、前記メッセージ解析部による前記複数の要素の内容の抽出を中止させる項目1記載のサーバ装置。
(項目9)前記メッセージ解析部により抽出された前記複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化して、当該内容に含まれる要素の名称及び内容を順次前記複数の要素に加える復号化部を更に備え、前記キー生成部は、前記第2の処理要求メッセージに含まれる、前記復号化部により復号化された要素を加えた前記複数の要素のうち、前記キー要素の内容に基づいて、前記第2のキーを生成する項目1記載のサーバ装置。
(項目10)複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置によるサービス方法であって、受信した第1の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第1の前記処理応答メッセージを生成する要求処理段階と、前記第1の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成された第1のキーに対応付けて、前記第1の処理応答メッセージをキャッシュするキャッシュ段階と、受信した第2の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析段階と、前記第2の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第2のキーを生成するキー生成段階と、前記第2のキーが前記第1のキーと一致する場合に、前記第2の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ段階においてキャッシュされた前記第1の処理応答メッセージを返信し、前記第2のキーが前記第1のキーと一致しない場合に、前記メッセージ解析段階により抽出された前記複数の要素の内容を前記要求処理段階へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第2の処理応答メッセージを生成させ、生成された前記第2の処理応答メッセージを返信するキャッシュ管理段階とを備えるサービス方法。
(項目11)複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置用のプログラムであって、前記サーバ装置として動作するコンピュータを、受信した第1の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第1の前記処理応答メッセージを生成する要求処理部と、前記第1の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成された第1のキーに対応付けて、前記第1の処理応答メッセージをキャッシュするキャッシュ部と、受信した第2の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、前記第2の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第2のキーを生成するキー生成部と、前記第2のキーが前記第1のキーと一致する場合に、前記第2の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第1の処理応答メッセージを返信し、前記第2のキーが前記第1のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第2の処理応答メッセージを生成させ、生成された前記第2の処理応答メッセージを返信するキャッシュ管理部として機能させるプログラム。
(項目12)項目11記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
本発明の実施形態に係るWebサービスシステム10の構成を示す。 本発明の実施形態に係るサーバ装置110の構成を示す。 本発明の実施形態に係るサーバ装置110の処理フローを示す。 本発明の実施形態に係る処理要求メッセージ400の一例を示す。 本発明の実施形態に係る入力クラス500のクラス定義の一例を示す。 本発明の実施形態に係る出力クラス600のクラス定義の一例を示す。 本発明の実施形態に係る処理応答メッセージ700の一例を示す。 本発明の実施形態の変形例に係るサーバ装置110の構成を示す。 本発明の実施形態の変形例に係るサーバ装置110の処理フローを示す。 本発明の実施形態に係るコンピュータ900のハードウェア構成を示す。
符号の説明
10 Webサービスシステム
100 クライアント装置
110 サーバ装置
120 通信ネットワーク
200 メッセージ解析部
210 キャッシュ処理部
215 要素内容登録部
220 要素内容DB
225 キー生成部
230 設定ファイル格納部
235 キャッシュ部
240 キャッシュ管理部
245 要求処理部
250 メッセージ変換部
255 入力オブジェクト生成部
260 処理応答メッセージ生成部
270 アプリケーション処理部
400 処理要求メッセージ
410 プロトコルバインディングヘッダ
420 SOAPエンベロープ
430 SOAPヘッダ
440 SOAPメッセージ本体
450 要素
460 開始タグ
470 終了タグ
480 内容データ
500 入力クラス
600 出力クラス
700 処理応答メッセージ
710 プロトコルバインディングヘッダ
720 SOAPエンベロープ
730 SOAPヘッダ
740 SOAPメッセージ本体
750 要素
760 開始タグ
770 終了タグ
780 内容データ
800 復号化部
900 コンピュータ
1000 CPU
1010 ROM
1020 RAM
1030 通信インターフェイス
1040 ハードディスクドライブ
1050 フレキシブルディスク・ドライブ
1060 CD−ROMドライブ
1070 入出力チップ
1075 グラフィック・コントローラ
1080 表示装置
1082 ホスト・コントローラ
1084 入出力コントローラ
1090 フレキシブルディスク
1095 CD−ROM

Claims (12)

  1. 複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、
    受信した前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、前記処理応答メッセージを生成する要求処理部と、
    前記処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成されたキーに対応付けて、当該処理要求メッセージに対する前記処理応答メッセージをキャッシュするキャッシュ部と、
    新たに受信した前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、
    新たに受信した前記処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、キーを生成するキー生成部と、
    新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致する場合に、新たに受信した前記処理要求メッセージに対する前記処理応答メッセージとして、当該キーに対応付けて前記キャッシュ部にキャッシュされた前記処理応答メッセージを返信し、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記処理応答メッセージを生成させ、生成された前記処理応答メッセージを返信するキャッシュ管理部と
    を備えるサーバ装置。
  2. 前記キャッシュ管理部は、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記要求処理部により生成された前記処理応答メッセージを、新たに受信した前記処理要求メッセージのキーに対応付けて前記キャッシュ部にキャッシュさせる請求項1記載のサーバ装置。
  3. 前記要求処理部は、
    前記複数の要素の内容に基づき、前記処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含む入力オブジェクトを生成する入力オブジェクト生成部と、
    前記入力オブジェクトを入力として前記処理関数に定められた処理を行い、前記処理関数の出力パラメータを含む出力オブジェクトを生成するアプリケーション処理部と、
    前記出力オブジェクトに基づいて、前記処理応答メッセージを生成する処理応答メッセージ生成部と
    を有する請求項1記載のサーバ装置。
  4. 複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、
    前記キー生成部は、新たに受信した前記処理要求メッセージについての前記キー要素の内容に基づき、キーを生成する
    請求項1記載のサーバ装置。
  5. 新たに受信した前記処理要求メッセージに含まれる前記複数の要素のそれぞれの内容が抽出される度に前記メッセージ解析部から関数呼び出しにより呼び出されて、当該関数呼び出しにより通知された前記複数の要素のそれぞれの内容を要素内容データベースに登録する要素内容登録部を更に備え、
    前記キー生成部は、前記要素内容データベースに全ての前記キー要素が登録された場合に、前記要素内容データベースに登録された全ての前記キー要素の内容に基づいて、キーを生成し、
    前記キャッシュ管理部は、前記要素内容データベースに前記複数の要素の全ての内容が登録され、かつ、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記要素内容データベースに登録された前記複数の要素の全ての内容を前記要求処理部へ通知する
    請求項1記載のサーバ装置。
  6. 複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、
    前記キー生成部は、新たに受信した前記処理要求メッセージについての前記キー要素を前記設定ファイルから取得し、前記設定ファイルから取得した全ての前記キー要素が前記要素内容データベースに登録された場合に、キーを生成する
    請求項5記載のサーバ装置。
  7. 新たに受信した前記処理要求メッセージに含まれる前記複数の要素のそれぞれの内容が抽出される度に前記メッセージ解析部から関数呼び出しにより呼び出されて、当該関数呼び出しにより通知された前記複数の要素のそれぞれの内容を要素内容データベースに登録する要素内容登録部を更に備え、
    前記キー生成部は、前記要素内容データベースに全ての前記キー要素が登録された場合に、前記要素内容データベースに登録された全ての前記キー要素の内容に基づいて、キーを生成し、
    前記要素内容登録部は、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しないと判断した場合に、当該判断以降に前記メッセージ解析部から関数呼び出しにより前記要素の内容が通知される度に、関数呼び出しにより前記要求処理部へ当該要素の内容を通知する請求項1に記載のサーバ装置。
  8. 前記キー生成部は、新たに受信した前記処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素が抽出された場合に、前記キー要素の内容に基づいて、キーを生成し、
    前記キャッシュ管理部は、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致するか否かの判定を前記メッセージ解析部が全ての要素の内容を抽出する前に行い、
    新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致した場合に、前記メッセージ解析部による前記複数の要素の内容の抽出を中止させる請求項1記載のサーバ装置。
  9. 前記メッセージ解析部により抽出された前記複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化して、当該内容に含まれる要素の名称及び内容を順次前記複数の要素に加える復号化部を更に備え、
    前記キー生成部は、新たに受信した前記処理要求メッセージに含まれる、前記復号化部により復号化された要素を加えた前記複数の要素のうち、前記キー要素の内容に基づいて、キーを生成する
    請求項1記載のサーバ装置。
  10. 複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置によるサービス方法であって、
    受信した前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、前記処理応答メッセージを生成する要求処理段階と、
    前記処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成されたキーに対応付けて、当該処理要求メッセージに対する前記処理応答メッセージをキャッシュするキャッシュ段階と、
    新たに受信した前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析段階と、
    新たに受信した前記処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、キーを生成するキー生成段階と、
    新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致する場合に、新たに受信した前記処理要求メッセージに対する前記処理応答メッセージとして、当該キーに対応付けて前記キャッシュ段階においてキャッシュされた前記処理応答メッセージを返信し、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記メッセージ解析段階により抽出された前記複数の要素の内容を前記要求処理段階へ通知し、前記複数の要素の内容に基づく処理を行わせて前記処理応答メッセージを生成させ、生成された前記処理応答メッセージを返信するキャッシュ管理段階と
    を備えるサービス方法。
  11. 複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置用のプログラムであって、
    前記サーバ装置として動作するコンピュータを、
    受信した前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、前記処理応答メッセージを生成する要求処理部と、
    前記処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも1つのキー要素の内容に基づき生成されたキーに対応付けて、当該処理要求メッセージに対する前記処理応答メッセージをキャッシュするキャッシュ部と、
    新たに受信した前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、
    新たに受信した前記処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、キーを生成するキー生成部と、
    新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれかのキーと一致する場合に、新たに受信した前記処理要求メッセージに対する前記処理応答メッセージとして、当該キーに対応付けて前記キャッシュ部にキャッシュされた前記処理応答メッセージを返信し、新たに受信した前記処理要求メッセージのキーがキャッシュされたいずれのキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記処理応答メッセージを生成させ、生成された前記処理応答メッセージを返信するキャッシュ管理部と
    して機能させるプログラム。
  12. 請求項11記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
JP2004040202A 2004-02-17 2004-02-17 サーバ装置、サービス方法、プログラム及び記録媒体 Expired - Fee Related JP4114873B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004040202A JP4114873B2 (ja) 2004-02-17 2004-02-17 サーバ装置、サービス方法、プログラム及び記録媒体
CN200510007984.7A CN100518183C (zh) 2004-02-17 2005-02-04 服务器设备和服务方法
US11/058,510 US7512691B2 (en) 2004-02-17 2005-02-15 Message request response server and processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004040202A JP4114873B2 (ja) 2004-02-17 2004-02-17 サーバ装置、サービス方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2005234690A JP2005234690A (ja) 2005-09-02
JP4114873B2 true JP4114873B2 (ja) 2008-07-09

Family

ID=35007824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004040202A Expired - Fee Related JP4114873B2 (ja) 2004-02-17 2004-02-17 サーバ装置、サービス方法、プログラム及び記録媒体

Country Status (3)

Country Link
US (1) US7512691B2 (ja)
JP (1) JP4114873B2 (ja)
CN (1) CN100518183C (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205216A1 (en) * 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
KR100759815B1 (ko) * 2005-12-08 2007-09-20 한국전자통신연구원 패스토큰 기반 웹 서비스 캐싱 방법
US20070150441A1 (en) * 2005-12-23 2007-06-28 Morris Robert P Methods, systems, and computer program products for associating policies with tuples using a pub/sub protocol
US7949720B2 (en) * 2006-01-31 2011-05-24 Microsoft Corporation Message object model
US20090137259A1 (en) * 2007-11-26 2009-05-28 Huawei Technologies Co., Ltd. Method and apparatus for sending message delivery reports
EP2073490A1 (en) * 2007-12-20 2009-06-24 Alcatel Lucent Devices and method for invocation of a sequence of web services by means of a single request based message
JP5014212B2 (ja) * 2008-03-14 2012-08-29 キヤノン株式会社 メッセージ通信装置及びその制御方法及びコンピュータプログラム
US20100333151A1 (en) * 2009-06-30 2010-12-30 Gemstar Development Corporation Cross platform entertainment architecture
US8402049B2 (en) 2010-05-27 2013-03-19 International Business Machines Corporation Metadata cache management
US20130179489A1 (en) * 2012-01-10 2013-07-11 Marcus Isaac Daley Accelerating web services applications through caching
EP2819367A1 (en) * 2013-06-28 2014-12-31 Thomson Licensing Method for retrieving, by a client terminal, a content part of a multimedia content
CN108418679B (zh) * 2017-02-10 2021-06-29 阿里巴巴集团控股有限公司 一种多数据中心下处理密钥的方法、装置及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE9700622D0 (sv) * 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
JP4163870B2 (ja) 2001-12-28 2008-10-08 富士通株式会社 構造化文書変換装置
JP4366040B2 (ja) 2002-03-07 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
US7093073B2 (en) * 2003-06-26 2006-08-15 International Business Machines Corporation Systems and methods for adjusting caching policies for web service requests

Also Published As

Publication number Publication date
CN100518183C (zh) 2009-07-22
JP2005234690A (ja) 2005-09-02
US7512691B2 (en) 2009-03-31
US20060075117A1 (en) 2006-04-06
CN1658549A (zh) 2005-08-24

Similar Documents

Publication Publication Date Title
US7512691B2 (en) Message request response server and processor
US10025758B2 (en) Support for non-native file types in web application environment
JP4366040B2 (ja) ネットワークサービスシステム、サーバ及びプログラム
JP5315062B2 (ja) セッションを管理するウェブサーバおよびその方法
US7926065B2 (en) Method and system for dynamically specifying a format for data provided by a web service invocation
US8539464B2 (en) Distributed just-in-time compilation
US9071570B2 (en) Method and apparatus to select and deliver portable portlets
WO2008116760A2 (en) Method and apparatus for processing extensible markup language security messages using delta parsing technology
CN110138818B (zh) 传递参数的方法、网站应用、系统、装置以及服务后端
JP6016808B2 (ja) Webアクセスを実装するための方法およびサーバシステム
US8140575B2 (en) Apparatus, method, and program product for information processing
US9305032B2 (en) Framework for generating programs to process beacons
JP2004362183A (ja) プログラム管理方法及び実施装置並びに処理プログラム
Choi et al. An efficient embedded Web server for Web-based network element management
JP5039946B2 (ja) クライアント装置およびサーバ装置の間の通信を中継する技術
JP2008134906A (ja) 業務プロセス定義生成方法、装置及びプログラム
WO2023092580A1 (zh) 页面显示方法、装置、存储介质及电子设备
CN114489622A (zh) 静态资源管理方法、Node.js应用、电子设备和存储介质
JPH1115723A (ja) マルチメディアデータ供給方法及びマルチメディアデータサーバ
US9164781B2 (en) Client bundle resource creation
US9727397B2 (en) Container-less JSP template
JP2004272317A (ja) プログラム管理方法及びシステム並びにその処理プログラムを格納した記憶媒体
CN111797337B (zh) 导出页面的生成方法及装置
CN112433752B (zh) 页面解析方法、装置、介质及电子设备
JP2006202176A (ja) 文書管理システムおよび文書管理方法

Legal Events

Date Code Title Description
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20071210

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080204

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080408

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080411

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

Free format text: PAYMENT UNTIL: 20110425

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees