(57)【要約】【課題】クライアント装置にサービスを提供するサーバ装置において、効率の良いキャッシュ機能を提供する。【解決手段】受信した第１処理要求メッセージの処理を行い、第１処理応答メッセージを生成する要求処理部と、第１処理要求メッセージに基づき生成された第１キーに対応付けて、第１処理応答メッセージをキャッシュするキャッシュ部と、受信した第２処理要求メッセージを解析するメッセージ解析部と、解析結果に基づいて第２キーを生成するキー生成部と、第２キーが第１キーと一致する場合に、キャッシュされた第１処理応答メッセージを返信し、第２キーが第１キーと一致しない場合に、メッセージ解析部の解析結果を要求処理部へ通知して解析結果に基づく処理を行わせ、生成された第２の処理応答メッセージを返信するキャッシュ管理部とを備えるサーバ装置を提供する。【選択図】図２
2005234690.tif 000002
【特許請求の範囲】
【請求項１】
複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、
受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理部と、
前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ部と、
受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、
前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成部と、
前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理部と
を備えるサーバ装置。
【請求項２】
前記キャッシュ管理部は、前記第２のキーが前記第１のキーと一致しない場合に、前記要求処理部により生成された前記第２の処理応答メッセージを、前記第２のキーに対応付けて前記キャッシュ部にキャッシュさせる請求項１記載のサーバ装置。
【請求項３】
前記要求処理部は、
前記複数の要素の内容に基づき、前記処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含む入力オブジェクトを生成する入力オブジェクト生成部と、
前記入力オブジェクトを入力として前記処理関数に定められた処理を行い、前記処理関数の出力パラメータを含む出力オブジェクトを生成するアプリケーション処理部と、
前記出力オブジェクトに基づいて、前記処理応答メッセージを生成する処理応答メッセージ生成部と
を有する請求項１記載のサーバ装置。
【請求項４】
複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、
前記キー生成部は、前記第２の処理要求メッセージについての前記キー要素の内容に基づき、前記第２のキーを生成する
請求項１記載のサーバ装置。
【請求項５】
前記第２の処理要求メッセージに含まれる前記複数の要素のそれぞれの内容が抽出される度に前記メッセージ解析部から関数呼び出しにより呼び出されて、当該関数呼び出しにより通知された前記複数の要素のそれぞれの内容を要素内容データベースに登録する要素内容登録部を更に備え、
前記キー生成部は、前記要素内容データベースに全ての前記キー要素が登録された場合に、前記要素内容データベースに登録された全ての前記キー要素の内容に基づいて、前記第２のキーを生成し、
前記キャッシュ管理部は、前記要素内容データベースに前記複数の要素の全ての内容が登録され、かつ、前記第２のキーが前記第１のキーと一致しない場合に、前記要素内容データベースに登録された前記複数の要素の全ての内容を前記要求処理部へ通知する
請求項１記載のサーバ装置。
【請求項６】
複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、
前記キー生成部は、前記第２の処理要求メッセージについての前記キー要素を前記設定ファイルから取得し、前記設定ファイルから取得した全ての前記キー要素が前記要素内容データベースに登録された場合に、前記第２のキーを生成する
請求項５記載のサーバ装置。
【請求項７】
前記要素内容登録部は、前記第２のキーが前記第１のキーと一致しないと判断した場合に、当該判断以降に前記メッセージ解析部から関数呼び出しにより前記要素の内容が通知される度に、関数呼び出しにより前記要求処理部へ当該要素の内容を通知する請求項５記載のサーバ装置。
【請求項８】
前記キャッシュ管理部は、前記第２のキーが前記第１のキーと一致した場合に、前記メッセージ解析部による前記複数の要素の内容の抽出を中止させる請求項１記載のサーバ装置。
【請求項９】
前記メッセージ解析部により抽出された前記複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化して、当該内容に含まれる要素の名称及び内容を順次前記複数の要素に加える復号化部を更に備え、
前記キー生成部は、前記第２の処理要求メッセージに含まれる、前記復号化部により復号化された要素を加えた前記複数の要素のうち、前記キー要素の内容に基づいて、前記第２のキーを生成する
請求項１記載のサーバ装置。
【請求項１０】
複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置によるサービス方法であって、
受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理段階と、
前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ段階と、
受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析段階と、
前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成段階と、
前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ段階においてキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析段階により抽出された前記複数の要素の内容を前記要求処理段階へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理段階と
を備えるサービス方法。
【請求項１１】
複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置用のプログラムであって、
前記サーバ装置として動作するコンピュータを、
受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理部と、
前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ部と、
受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、
前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成部と、
前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理部と
して機能させるプログラム。
【請求項１２】
請求項１１記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、サービス方法、プログラム及び記録媒体に関する。特に本発明は、複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置、サービス方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、ネットワークに接続されたサーバ装置によりサービスを提供し、クライアント装置側で各種のＷｅｂサービスを組み合わせてソフトウェアを構築可能とするＷｅｂサービスシステムが提供されている。Ｗｅｂサービスシステムにおいては、クライアント装置は、Ｗｅｂサービスに与える引数を記述したＸＭＬ（Extensible Markup Language）文書を含むＳＯＡＰ（Simple Object Access Protocol）要求メッセージをサーバ装置へ送信し、Ｗｅｂサービスの処理を要求する。サーバ装置は、このＳＯＡＰ要求メッセージを入力として、Ｗｅｂサービスの処理を行い、Ｗｅｂサービスの戻り値を記述したＸＭＬ文書を含むＳＯＡＰ応答メッセージをクライアント装置へ返信する。Ｗｅｂサービスシステムによれば、サービス提供者がインターネット上で提供する様々なＷｅｂサービスを組み合わせてソフトウェアを効率良く開発することができ、また、複数の企業の情報システムを連携した分散システムを構築することができる。
【０００３】
Ｗｅｂサービスを提供する一般的なサーバ装置は、ＳＯＡＰ要求メッセージの構文解析を行うストリーミング構文解析器と、構文解析の結果に基づいてＷｅｂサービスの処理を行う要求処理部とを備える。そして、要求処理部は、構文解析の結果に基づいてＷｅｂサービスに与えるパラメータを含むＪａｖａオブジェクト等の入力オブジェクトを生成すると共に、Ｗｅｂサービスの戻り値を含むＪａｖａオブジェクト等の出力オブジェクトをＳＯＡＰ応答メッセージに変換するメッセージ変換部と、メッセージ変換部から入力された入力オブジェクトに基づきサーバアプリケーションの処理を行い、処理結果を出力オブジェクトとしてメッセージ変換部に返すアプリケーション処理部とを有する。
【０００４】
上記のサーバ装置の応答時間を短縮するために、特許文献１及び非特許文献１に示すキャッシング技術が開示されている。
特許文献１は、上記の一般的なサーバ装置におけるストリーミング構文解析器の手前に、キャッシュ機構を設けたサーバ装置を開示する。本サーバ装置においては、キャッシュ機構は、受信したＳＯＡＰ要求メッセージをまず解析し、対応するＳＯＡＰ応答メッセージをキャッシングしているか否かを判断する。そして、対応するＳＯＡＰ応答メッセージがキャッシングされている場合に、キャッシングされたＳＯＡＰ応答メッセージを返信する。一方、対応するＳＯＡＰ応答メッセージがキャッシングされていない場合に、キャッシュ機構は、ＳＯＡＰ要求メッセージをストリーミング構文解析器へ送り、ストリーミング構文解析器及びサーバアプリケーション処理部による処理を行わせる。
【０００５】
非特許文献１は、上記の一般的なサーバ装置における要求処理部内のメッセージ変換部及びアプリケーション処理部の間にキャッシュ機構を設ける方法を開示する。この方法においては、ストリーミング構文解析器は、受信したＳＯＡＰ要求メッセージを解析し、メッセージ変換部は、構文解析の結果に基づいて入力オブジェクトを生成する。次に、キャッシュ機構は、当該入力オブジェクトに対応する出力オブジェクトをキャッシングしているか否かを判断する。そして、対応する出力オブジェクトがキャッシングされている場合、キャッシュ機構は、キャッシングされた出力オブジェクトをメッセージ変換部によりＳＯＡＰ応答メッセージに変換させて返信させる。一方、対応する出力オブジェクトがキャッシングされていない場合、キャッシュ機構は、入力オブジェクトをサーバアプリケーション処理部に送り、Ｗｅｂサービスの処理を行わせる。
【特許文献１】特開２００３−２７１４４１号公報
【非特許文献１】Brian D. Goodman, "Accelerate your Web services with caching", [online], ２００２年１２月１日, International Business Machines,  ［２００４年１月２７日検索］, インターネット
【非特許文献２】Bob Atkinson他, "Web Services Security(WS-Security)", [online], ２００２年５月２３日, International Business Machines, ［２００４年１月２７日検索］, インターネット
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１のキャッシュ方式においては、ストリーミング構文解析器以降の処理の手前にキャッシュ機構を設けるため、キャッシュヒット時の応答時間が非特許文献１と比較し短いという利点を有する。一方、キャッシュ機構は、ＳＯＡＰ要求メッセージをキャッシュのヒット／ミス判定の目的である程度解析するが、キャッシュミス時にはＳＯＡＰ要求メッセージを要求処理部へ贈るため、キャッシュ機構における解析が無駄となり、応答時間が増加してしまう。
【０００７】
非特許文献２のキャッシュ方式においては、キャッシュ機構は、ストリーミング構文解析器及びメッセージ変換部により生成される入力オブジェクトに対応する出力オブジェクトをキャッシュする。このため、キャッシュのヒット／ミス判定のみのためにＳＯＡＰ要求メッセージを解析する必要がなく、キャッシュミス時における応答時間の増加を抑えることができる。一方、キャッシュヒット時においても入力オブジェクトを生成する必要があるため、特許文献１のキャッシュ方式と比較し応答時間が長くなってしまう。
【０００８】
そこで本発明は、上記の課題を解決することのできるサーバ装置、サービス方法、プログラム及び記録媒体を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００９】
本発明の第１の形態によると、複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理部と、前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ部と、受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成部と、前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理部とを備えるサーバ装置と、当該サーバ装置に関するサービス方法、プログラム、及び記録媒体とを提供する。
【００１０】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１１】
本発明によれば、通信ネットワークを介してクライアント装置にサービスを提供するサーバ装置において、効率の良いキャッシュ機能を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１３】
図１は、本実施形態に係るＷｅｂサービスシステム１０の構成を示す。Ｗｅｂサービスシステム１０は、利用者の指示に基づきクライアント側のアプリケーションプログラムを実行する１又は複数のクライアント装置１００と、Ｗｅｂサービス等のサーバ側のアプリケーションプログラムを実行する１又は複数のサーバ装置１１０と、クライアント装置１００及びサーバ装置１１０を接続するインターネット又はイントラネット等の通信ネットワーク１２０とを備える。
【００１４】
各クライアント装置１００は、当該クライアント装置１００上で実行されるクライアントアプリケーションと、１又は複数のサーバ装置１１０上で実行される１又は複数のサーバアプリケーションにより提供されるサービスとを組み合わせて、当該クライアント装置１００の利用者により指定された処理を行う。より具体的には、クライアント装置１００は、処理要求メッセージを通信ネットワーク１２０を介してサーバ装置１１０へ送信し、当該処理要求メッセージに基づくサービスの処理をサーバ装置１１０へ要求する。そしてクライアント装置１００は、サービスの処理を行ったサーバ装置１１０が送信する処理応答メッセージを通信ネットワーク１２０を介して受信して、サーバ装置１１０による処理結果を得る。
【００１５】
各サーバ装置１１０は、通信ネットワーク１２０を介してクライアント装置１００から処理要求メッセージを受信し、当該処理要求メッセージに基づくサービスの処理を行って、処理結果を含む処理応答メッセージを返信する。ここで、処理要求メッセージ及び処理応答メッセージは、複数の要素のそれぞれについて、当該要素の名称及び内容が記述されたＸＭＬ文書等の構造化文書を含むものであり、例えばＳＯＡＰメッセージである。
【００１６】
図２は、本実施形態に係るサーバ装置１１０の構成を示す。サーバ装置１１０は、メッセージ解析部２００と、キャッシュ処理部２１０と、要求処理部２４５とを備え、キャッシュ処理部２１０がメッセージ解析部２００による解析結果を利用してキャッシングを行う。これによりサーバ装置１１０は、キャッシュヒット時の応答時間を特許文献１におけるキャッシュ方式と同等とすることができる。一方、余分な構文解析を行わないことにより、キャッシュミス時の応答時間を、特許文献１におけるキャッシュ方式と比較し短縮することができる。
【００１７】
メッセージ解析部２００は、例えばＳＡＸ（Simple API for XML）等のストリーミング構文解析器の一例であり、受信した処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出する。
キャッシュ処理部２１０は、メッセージ解析部２００により抽出された複数の要素のうち少なくとも１つの内容をキーとして、処理応答メッセージをキャッシュする。キャッシュ処理部２１０は、要素内容登録部２１５と、要素内容データベース（要素内容ＤＢ）２２０と、キー生成部２２５と、設定ファイル格納部２３０と、キャッシュ部２３５と、キャッシュ管理部２４０とを有する。
【００１８】
要素内容登録部２１５は、メッセージ解析部２００により抽出された複数の要素のそれぞれの内容を要素内容ＤＢ２２０に登録する。要素内容ＤＢ２２０は、要素内容登録部２１５により登録された複数の要素のそれぞれの内容を、一時的に保持するバッファである。キー生成部２２５は、要素内容ＤＢ２２０に保持された複数の要素のうち、設定ファイル格納部２３０に格納された設定ファイルにより予め定められたキー要素の内容に基づいて、処理要求メッセージのキーを生成する。キャッシュ部２３５は、処理要求メッセージのキーに対応付けて、既に返信された、当該処理要求メッセージに対応する処理応答メッセージをキャッシュする。
【００１９】
キャッシュ管理部２４０は、新たに受信された処理要求メッセージのキーと一致するキーがキャッシュ部２３５に格納されている場合にキャッシュヒットと判断し、当該キーに対応してキャッシュ部２３５にキャッシュされた処理応答メッセージを要求元のサーバ装置１１０へ返信する。一方、新たに受信された処理要求メッセージのキーと一致するキーがキャッシュ部２３５に格納されている場合にキャッシュミスと判断し、要素内容ＤＢ２２０に保持された複数の要素のそれぞれの内容を要求処理部２４５へ通知する。
【００２０】
要求処理部２４５は、処理要求メッセージに含まれる複数の要素の内容を入力として、Ｗｅｂサービスの処理を行う。要求処理部２４５は、メッセージ変換部２５０と、アプリケーション処理部２７０とを有する。メッセージ変換部２５０は、入力オブジェクト生成部２５５と、処理応答メッセージ生成部２６０とを含む。入力オブジェクト生成部２５５は、キャッシュ処理部２１０から受け取った複数の要素の内容に基づいて、Ｗｅｂサービスの処理を行うサーバアプリケーションに与えるパラメータを含む入力オブジェクトを生成し、アプリケーション処理部２７０へ供給する。処理応答メッセージ生成部２６０は、アプリケーション処理部２７０によるサーバアプリケーションの処理の結果出力される出力オブジェクトを入力し、処理応答メッセージに変換してキャッシュ処理部２１０を介してサーバ装置１１０へ出力する。
【００２１】
アプリケーション処理部２７０は、メッセージ変換部２５０から入力された入力オブジェクトに基づきサーバアプリケーションの処理を行い、処理結果を出力オブジェクトとしてメッセージ変換部２５０に返す。
【００２２】
本実施形態において、以上に示したサーバ装置１１０は、Ｗｅｂサービスを提供するためのミドルウェアのプログラムと、当該ミドルウェア上で実行されるサーバアプリケーションのプログラムとを、１又は複数のサーバコンピュータ上で実行させることにより実現される。
【００２３】
図３は、本実施形態に係るサーバ装置１１０の処理フローを示す。
まず、クライアント装置１００が送信した処理要求メッセージを受信すると（Ｓ３００）、メッセージ解析部２００は、当該処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出してキャッシュ処理部２１０へ通知する（Ｓ３０５）。より具体的には、メッセージ解析部２００は、当該処理要求メッセージに含まれる構造化文書の構文解析を行い、複数の要素のそれぞれの内容を抽出する度に要素内容登録部２１５を実現する関数を呼び出すことにより、各要素の内容をキャッシュ処理部２１０へ通知する。
【００２４】
次に、要素内容登録部２１５は、メッセージ解析部２００から関数呼び出しにより通知された、複数の要素のそれぞれの内容を、要素内容ＤＢ２２０に登録する（Ｓ３１０）。より具体的には、要素内容登録部２１５は、複数の要素のそれぞれの内容が抽出される度にメッセージ解析部２００から関数呼び出しにより呼び出され、当該関数呼び出しにより通知された複数の要素のそれぞれの内容を要素内容ＤＢ２２０に登録する。
【００２５】
次に、キー生成部２２５は、当該処理要求メッセージに含まれる複数の要素のうち、キー要素の内容に基づいて、当該処理要求メッセージのキーを生成する（Ｓ３１５）。
【００２６】
より具体的には、サーバ装置１１０により提供されるサービスの管理者は、サーバ装置１１０が受信する可能性がある複数種類の処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについてのキー要素を指定する設定ファイルを予め作成しておく。ここで、処理要求メッセージの種類とは、例えば処理要求メッセージがＷｅｂサービスに対して要求するコマンド等に基づいて定められる。サービスの管理者は、同一種類の複数の処理要求メッセージに対して同一内容の処理応答メッセージを返信してよい場合に、これらの処理要求メッセージのキーが同一となるようにキー要素を指定しておく。
【００２７】
設定ファイル格納部２３０は、管理者により作成された設定ファイルを格納する。新たに処理要求メッセージが受信されたことを検出すると、キー生成部２２５は、当該処理要求メッセージに含まれる要素の内容等に基づいて、当該処理要求メッセージの種類を判断する。そして、キー生成部２２５は、設定ファイル格納部２３０に格納された設定ファイルから、当該処理要求メッセージについてのキー要素を読み出して、キー要素の内容に基づき当該処理要求メッセージのキーを生成する。例えばキー生成部２２５は、キー要素の内容を、ハッシュ関数を用いて変換する等の手段によりキーを生成する。
【００２８】
このように、キー生成部２２５は、サービスの管理者により予め設定ファイル格納部２３０に格納された設定ファイルに基づいてキー要素を決定するため、処理要求メッセージの種類に応じて適切にキー要素を選択するこができる。ここで、サービスの管理者は、処理要求メッセージの種類が当該処理要求メッセージのある要素の名称又は内容として含まれる場合に、当該要素をキー要素に含めてもよい。この条件によりキー要素が定められるのであれば、処理要求メッセージの種類に応じて異なるキーが生成されるため、キー生成部２２５は、予め処理要求メッセージの種類を判別しなくてもよい。
【００２９】
また、複数の要素のうち一部の要素のみをキー要素として使用する場合には、キー生成部２２５は、まず処理要求メッセージについてのキー要素を設定ファイルから取得する。そしてキー生成部２２５は、設定ファイルから取得した全てのキー要素が要素内容ＤＢ２２０に登録された場合に、要素内容ＤＢ２２０に登録された全てのキー要素の内容に基づいてキーを生成する。これにより、キー生成部２２５及びキャッシュ管理部２４０は、キー要素以外の要素が要素内容ＤＢ２２０に登録されていない状態であっても、キーの生成やキャッシュヒット／ミスの判定を先行して行うことができる。
【００３０】
次に、キャッシュ管理部２４０は、当該キーを用いてキャッシュ部２３５を検索し、当該キーと一致するキーがキャッシュ部２３５に登録されているか否かを判断する。処理応答メッセージに対応付けてキャッシュ部２３５に既に登録されている全てのキーが当該キーと一致しない場合（Ｓ３２０：Ｙｅｓ）、キャッシュ管理部２４０は、メッセージ解析部２００により抽出されて要素内容ＤＢ２２０に格納された、当該処理要求メッセージに含まれる複数の要素の内容を要求処理部２４５へ通知する（Ｓ３２５）。これによりキャッシュ管理部２４０は、要求処理部２４５に、複数の要素の内容に基づく処理を行わせて当該処理要求メッセージに対する処理応答メッセージを生成させる。
【００３１】
ここで、キャッシュ管理部２４０は、メッセージ解析部２００による当該処理要求メッセージの解析が完了し、複数の要素の全ての内容が要素内容ＤＢ２２０に登録されたことを更に条件として、要素内容ＤＢ２２０に登録された複数の要素の全ての内容を一括して要求処理部２４５へ通知してもよい。これにより、複数の要素のそれぞれの内容を順次要求処理部２４５へ通知する場合と比較し、効率良く通知を行うことができる。
【００３２】
次に、入力オブジェクト生成部２５５は、キャッシュ管理部２４０から通知された複数の要素の内容に基づき、当該処理要求メッセージに対応してアプリケーション処理部２７０に入力される入力オブジェクトを生成する（Ｓ３３０）。ここで、入力オブジェクトとは、例えばＪａｖａ（登録商標）のオブジェクト等であり、サーバコンピュータをアプリケーション処理部２７０として機能させるサーバアプリケーションにおける、処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含むオブジェクトである。
【００３３】
次に、アプリケーション処理部２７０は、入力オブジェクトを入力として処理関数に定められたＷｅｂサービス等の処理を行い、出力オブジェクトを生成する（Ｓ３３５）。ここで、出力オブジェクトとは、例えばＪａｖａ（登録商標）のオブジェクト等であり、処理関数の出力パラメータを含むオブジェクトである。
【００３４】
次に、処理応答メッセージ生成部２６０は、アプリケーション処理部２７０から出力オブジェクトを受け取り、出力オブジェクトに基づいて、当該処理要求メッセージに対応する処理応答メッセージを生成する（Ｓ３４０）。次に、キャッシュ管理部２４０は、処理応答メッセージ生成部２６０により生成された当該処理応答メッセージを受け取り、要求処理部２４５により生成された当該処理応答メッセージを、キー生成部２２５により生成されたキーに対応付けて、キャッシュ部２３５にキャッシュさせる（Ｓ３４５）。そして、キャッシュ管理部２４０は、要求処理部２４５により生成された当該処理応答メッセージを返信する（Ｓ３５０）。
【００３５】
以上の処理により、クライアント装置１００から第１の処理要求メッセージを受信した場合に、当該第１の処理要求メッセージに対応する第１の処理応答メッセージが、当該第１の処理要求メッセージについての第１のキーに対応付けてキャッシュ部２３５にキャッシュされる。
【００３６】
また、Ｓ３２０において、当該キーが、処理応答メッセージがキャッシュ部２３５に既に登録されているいずれかの処理要求メッセージのキーと一致した場合（Ｓ３２０：Ｎｏ）に、キャッシュ管理部２４０は、当該処理要求メッセージに対する処理応答メッセージとして、当該キーと一致したキーに対応付けてキャッシュ部２３５にキャッシュされた処理応答メッセージを読み出し（Ｓ３５５）、クライアント装置１００へ返信する（Ｓ３５０）。これにより、第１の処理要求メッセージが、第１のキーに対応付けてキャッシュ部２３５にキャッシュされている場合において、第２の処理要求メッセージのキーである第２のキーが第１のキーと一致した場合に、第２の処理要求メッセージに対する処理応答メッセージとして、第１のキーに対応付けてキャッシュ部２３５にキャッシュされた第１の処理応答メッセージを返信することができる。
【００３７】
更にキャッシュ管理部２４０は、Ｓ３２０において、当該キーが、処理応答メッセージがキャッシュ部２３５に既に登録されているいずれかの処理要求メッセージのキーと一致した場合（Ｓ３２０：Ｎｏ）に、メッセージ解析部２００による複数の要素の内容の抽出処理を中止させてもよい。これにより、キャッシュヒット時に当該処理要求メッセージの解析が無駄に続けられるのを防止することができる。
【００３８】
以上に示したサーバ装置１１０によれば、キャッシュ処理部２１０は、メッセージ解析部２００による処理要求メッセージの解析結果を利用して、キャッシングを行うことができる。ここで、特許文献１においても処理要求メッセージから各要素の内容を抽出してキーを生成する処理が必要となるため、本実施形態に係るサーバ装置１１０は、キャッシュヒット時の応答時間を特許文献１と略同等に保つことができる。一方、キャッシュミス時において、本実施形態に係るサーバ装置１１０は、処理要求メッセージを要求処理部２４５に転送するのではなく、メッセージ解析部２００による解析結果を要求処理部２４５へ通知する。このため、キャッシュミス時においては、再度処理要求メッセージの解析を行う必要がなく、特許文献１と比較し応答時間を短縮することができる。
【００３９】
なお、要素内容登録部２１５は、当該キーがキャッシュ部２３５に登録されているキーと一致しないと判断した場合に、Ｓ３２５において、当該判断以降にメッセージ解析部２００から関数呼び出しにより要素の内容が通知される度に、関数呼び出しにより要求処理部２４５へ当該要素の内容を直接通知してもよい。これにより、キャッシュミスが確定した以降にメッセージ解析部２００から通知された要素の内容を、要素内容ＤＢ２２０及びキャッシュ管理部２４０を経ることなく効率良く要求処理部２４５へ渡すことができる。
【００４０】
図４は、本実施形態に係る処理要求メッセージ４００の一例を示す。本実施形態に係る処理要求メッセージ４００は一例としてＳＯＡＰメッセージであり、ＨＴＴＰ等のプロトコルにより通信ネットワーク１２０を介して当該処理要求メッセージ４００を通信させるために付加されたプロトコルバインディングヘッダ４１０と、処理要求メッセージ４００の本体を含むＳＯＡＰエンベロープ４２０とを備える。
【００４１】
ＳＯＡＰエンベロープ４２０は、クライアント装置１００及びサーバ装置１１０のＳＯＡＰ処理系同士の間で渡される情報をＸＭＬ文書として記述したＳＯＡＰヘッダ４３０と、要求処理部２４５に渡すべきパラメータをＸＭＬ文書として記述したＳＯＡＰメッセージ本体４４０とを有する。ここでＳＯＡＰメッセージ本体４４０は、要求処理部２４５に渡すべきパラメータを定義する複数の要素４５０を含む。各要素４５０は、要素４５０の名称を含み当該要素４５０の定義の開始を示す開始タグ４６０と、当該要素４５０の内容を記述した内容データ４８０と、当該要素４５０の定義の終了を示す終了タグ４７０との組により定義される。
【００４２】
メッセージ解析部２００は、処理要求メッセージ４００の先頭から順に構文解析を行い、ＳＯＡＰエンベロープ４２０の先頭タグや終了タグの検出時、ＳＯＡＰヘッダ４３０の先頭タグや終了タグの検出時、ＳＯＡＰメッセージ本体４４０の先頭タグや終了タグの検出時、開始タグ４６０や終了タグ４７０の検出時、及び／又は内容データ４８０の検出時に、これらをキャッシュ処理部２１０に通知する。より具体的には、メッセージ解析部２００は、検出内容に応じたイベントをキャッシュ処理部２１０に通知する。
【００４３】
要素内容登録部２１５は、終了タグ４７０を検出した旨のイベントを通知されると、開始タグ４６０の検出時に通知された当該要素４５０の名称と、当該イベントにより通知された当該要素４５０の内容との組を要素内容ＤＢ２２０へ登録する。
【００４４】
図５は、本実施形態に係る入力クラス５００の一例を示す。複数の要素のそれぞれの内容をキャッシュ処理部２１０から通知されると、入力オブジェクト生成部２５５は、処理要求メッセージに対応する入力クラス５００に基づいて、入力オブジェクトを生成する。そして、入力オブジェクト生成部２５５は、入力オブジェクト中の複数の各変数に、当該変数に対応する要素の内容を代入する。
【００４５】
例えば、処理要求メッセージが「element1」から「elementn」を含む場合、入力オブジェクト生成部２５５は、当該処理要求メッセージに対応して「element1」から「elementn」に対応する変数を含む入力クラス５００をインスタンス化して、入力オブジェクトを生成する。次に、入力オブジェクト生成部２５５は、処理要求メッセージ中の各要素４５０の内容データ４８０を、変数「element1」から「elementn」にそれぞれ代入する。そして、入力オブジェクト生成部２５５は、各要素４５０の内容データ４８０が代入された入力オブジェクトをアプリケーション処理部２７０へパラメータとして渡すことにより、処理要求メッセージに記述された各要素の内容をアプリケーション処理部２７０へ渡す。
【００４６】
処理要求メッセージ４００を入力オブジェクトに変換する処理は、処理要求メッセージ４００から各要素の内容を抽出する処理と、入力オブジェクトを生成して各要素の内容を対応する変数に代入する処理に分割できる。本実施形態に係るサーバ装置１１０は、メッセージ解析部２００によって処理要求メッセージ４００から各要素の内容を抽出する処理が行われた結果を利用してキャッシングを行うと共に、各要素の内容を要素内容ＤＢ２２０にバッファリングしてキャッシュミス時に要求処理部２４５に渡す。これによりサーバ装置１１０は、キャッシュミス時において処理要求メッセージを再度解析する必要がなく、応答時間を短縮することができる。
【００４７】
図６は、本実施形態に係る出力クラス６００の一例を示す。アプリケーション処理部２７０は、入力オブジェクト生成部２５５から入力された入力オブジェクトに含まれる各変数の値に基づいて、Ｗｅｂサービス等のサーバアプリケーションの処理を行う。次に、アプリケーション処理部２７０は、出力クラス６００をインスタンス化して出力オブジェクトを生成する。そして、アプリケーション処理部２７０は、要求元のクライアント装置１００へ返信すべき戻り値を、出力オブジェクトの各変数に代入し、処理応答メッセージ生成部２６０へ渡す。
【００４８】
図７は、本実施形態に係る処理応答メッセージ７００の一例を示す。本実施形態に係る処理応答メッセージ７００は、一例としてＳＯＡＰメッセージである。プロトコルバインディングヘッダ７１０、ＳＯＡＰエンベロープ７２０、ＳＯＡＰヘッダ７３０、ＳＯＡＰメッセージ本体７４０、要素７５０、開始タグ７６０、終了タグ７７０、及び内容データ７８０は、以下に示す点を除き、プロトコルバインディングヘッダ４１０、ＳＯＡＰエンベロープ４２０、ＳＯＡＰヘッダ４３０、ＳＯＡＰメッセージ本体４４０、要素４５０、開始タグ４６０、終了タグ４７０、及び内容データ４８０とそれぞれ同様の機能を有するため、以下相違点を除き説明を省略する。
【００４９】
処理応答メッセージ生成部２６０は、アプリケーション処理部２７０から出力オブジェクトを受け取ると、当該出力オブジェクトに含まれる各変数の名称及び値を、要素７５０中の開始タグ７６０及び終了タグ７７０と内容データ７８０とに変換し、ＸＭＬ文書形式のＳＯＡＰメッセージ本体７４０を生成する。すなわち例えば、処理応答メッセージ生成部２６０は、出力オブジェクトの変数「elemento1」を、「elemento1の値」等に変換する作業等を行い、ＸＭＬ文書形式のＳＯＡＰメッセージ本体７４０を生成する。そして処理応答メッセージ生成部２６０は、生成したＳＯＡＰメッセージ本体７４０にプロトコルバインディングヘッダ７１０、ＳＯＡＰエンベロープ７２０の枠組、及びＳＯＡＰヘッダ７３０を付加して処理応答メッセージを生成する。
【００５０】
キャッシュ管理部２４０は、処理応答メッセージ生成部２６０により生成された処理応答メッセージをキャッシングする。ここで、非特許文献１のように出力オブジェクトをキャッシングした場合には、キャッシュヒット時においても出力オブジェクトから処理応答メッセージを生成する必要が生じるが、本実施形態に係るサーバ装置１１０は、キャッシュ部２３５から直接処理応答メッセージを得ることができるため、応答時間を短縮することができる。
【００５１】
図８は、本実施形態の変形例に係るサーバ装置１１０の構成を示す。本実施形態に係るサーバ装置１１０における、図２と同一の符号を付した部材は、図２中の対応する部材と同様の機能及び構成を採るため、以下相違点を除き説明を省略する。
【００５２】
本変形例に係るサーバ装置１１０は、メッセージ解析部２００とキャッシュ処理部２１０の間に復号化部８００を更に備え、処理要求メッセージに含まれる１又は複数の要素の内容が暗号化されている場合に、復号化部８００により当該内容を復号化する。このように暗号化された内容を含む処理要求メッセージとしては、例えば非特許文献２に開示されたWS-Security（Web services Security）仕様に基づくＳＯＡＰメッセージが挙げられる。
そして、キャッシュ処理部２１０は、復号化された要素の内容を含む複数の要素の内容をキャッシュ処理部２１０へ通知し、キャッシュ処理部２１０及び要求処理部２４５の処理を行わせる。
【００５３】
図９は、本実施形態の変形例に係るサーバ装置１１０の処理フローを示す。
まず、サーバ装置１１０内のメッセージ解析部２００は、図３のＳ３００と同様にして、少なくとも１つの要素の内容が暗号化された処理要求メッセージを受信する。次に、メッセージ解析部２００は、Ｓ３０５と同様にして、当該処理要求メッセージを解析し、当該処理要求メッセージに含まれる複数の要素の内容を順次抽出する。
【００５４】
復号化部８００は、メッセージ解析部２００により抽出された複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化する（Ｓ９１０）。そして、復号化部８００は、復号化された複数の要素の内容を順次キャッシュ処理部２１０へ通知する。より具体的には、復号化部８００は、各要素の内容をメッセージ解析部２００から通知される度に、当該内容が暗号化されている場合には復号化する。そして、復号化部８００は、複数の要素のそれぞれ毎に要素内容登録部２１５を実現する関数を呼び出すことにより、各要素の内容を順次キャッシュ処理部２１０へ通知する。
【００５５】
ここで、復号化部８００は、要素の内容を復号化すると、当該要素の子の要素として定義された複数の要素についての開始タグ４６０、終了タグ４７０、及び内容データ４８０の組を得る場合がある。この場合、復号化部８００は、復号化した内容に含まれる要素の名称及び内容を、順次複数の要素に加えてキャッシュ処理部２１０へ通知する。すなわち例えば、処理要求メッセージが「要素１」及び「要素２」を含み、「要素１」を復号化して「要素１−１」及び「要素１−２」が得られた場合、復号化部８００は、「要素１」、「要素１−１」、「要素１−２」及び「要素２」の内容をキャッシュ処理部２１０へ順次通知する。
【００５６】
そして、サーバ装置１１０は、復号化部８００により復号化された要素を加えた複数の要素について、図３のＳ３１０からＳ３５５に示した処理を行う。
【００５７】
本変形例に係るサーバ装置１１０によれば、処理要求メッセージに含まれる少なくとも１つの要素が暗号化されている場合においても、当該要素の内容を復号化してキーとすることを可能とし、適切にキャッシングを行うことができる。また、キャッシュ処理部２１０は、復号化された複数の要素の内容を要求処理部２４５へ通知するため、復号化部８００により復号化された要素の内容をキャッシュ処理部２１０及び要求処理部２４５の両方で使用することができ、効率良くキャッシングを行うことができる。
【００５８】
図１０は、本実施形態に係るコンピュータ９００のハードウェア構成を示す。本実施形態に係るコンピュータ９００は、ホスト・コントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、グラフィック・コントローラ１０７５、及び表示装置１０８０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホスト・コントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスク・ドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５９】
ホスト・コントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィック・コントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィック・コントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６０】
入出力コントローラ１０８４は、ホスト・コントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、ＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ１０４０は、コンピュータ９００内のＣＰＵ１０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介してハードディスクドライブ１０４０に提供する。
【００６１】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスク・ドライブ１０５０、及び入出力チップ１０７０の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ９００が起動時に実行するブート・プログラムや、コンピュータ９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介してハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク・ドライブ１０５０や、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【００６２】
ＲＡＭ１０２０を介してハードディスクドライブ１０４０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ１０２０を介してコンピュータ９００内のハードディスクドライブ１０４０にインストールされ、ＣＰＵ１０００において実行される。
【００６３】
コンピュータ９００にインストールされ、コンピュータ９００をサーバ装置１１０として機能させるプログラムは、メッセージ解析モジュールと、キャッシュ処理モジュールと、要求処理モジュールとを備える。また当該プログラムは、復号化モジュールを更に備えてもよい。これらのプログラム又はモジュールは、ＣＰＵ１０００等に働きかけて、コンピュータ９００を、メッセージ解析部２００と、キャッシュ処理部２１０と、要求処理部２４５と、復号化部８００としてそれぞれ機能させる。
【００６４】
キャッシュ処理モジュールは、要素内容登録モジュールと、キー生成モジュールと、キャッシュ管理モジュールとを有する。これらのプログラム又はモジュールは、ＣＰＵ１０００等に働きかけて、コンピュータ９００を、要素内容登録部２１５と、キー生成部２２５と、キャッシュ管理部２４０としてそれぞれ機能させる。
【００６５】
要求処理モジュールは、入力オブジェクト生成モジュール及び処理応答メッセージ生成モジュールを含むメッセージ変換モジュールと、アプリケーション処理モジュールとを有する。これらのプログラム又はモジュールは、ＣＰＵ１０００等に働きかけて、コンピュータ９００を、入力オブジェクト生成部２５５及び処理応答メッセージ生成部２６０を含むメッセージ変換部２５０と、アプリケーション処理部２７０としてそれぞれ機能させる。
【００６６】
以上に示したプログラム又はモジュールは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ９００に提供してもよい。
【００６７】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００６８】
以上に説明した実施形態によれば、以下の各項目に示すサーバ装置、サービス方法、プログラム及び記録媒体が実現される。
【００６９】
（項目１）複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置であって、受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理部と、前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ部と、受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成部と、前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理部とを備えるサーバ装置。
【００７０】
（項目２）前記キャッシュ管理部は、前記第２のキーが前記第１のキーと一致しない場合に、前記要求処理部により生成された前記第２の処理応答メッセージを、前記第２のキーに対応付けて前記キャッシュ部にキャッシュさせる項目１記載のサーバ装置。
（項目３）前記要求処理部は、前記複数の要素の内容に基づき、前記処理要求メッセージに対応する処理を行う処理関数の入力パラメータを含む入力オブジェクトを生成する入力オブジェクト生成部と、前記入力オブジェクトを入力として前記処理関数に定められた処理を行い、前記処理関数の出力パラメータを含む出力オブジェクトを生成するアプリケーション処理部と、前記出力オブジェクトに基づいて、前記処理応答メッセージを生成する処理応答メッセージ生成部とを有する項目１記載のサーバ装置。
【００７１】
（項目４）複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、前記キー生成部は、前記第２の処理要求メッセージについての前記キー要素の内容に基づき、前記第２のキーを生成する項目１記載のサーバ装置。
（項目５）前記第２の処理要求メッセージに含まれる前記複数の要素のそれぞれの内容が抽出される度に前記メッセージ解析部から関数呼び出しにより呼び出されて、当該関数呼び出しにより通知された前記複数の要素のそれぞれの内容を要素内容データベースに登録する要素内容登録部を更に備え、前記キー生成部は、前記要素内容データベースに全ての前記キー要素が登録された場合に、前記要素内容データベースに登録された全ての前記キー要素の内容に基づいて、前記第２のキーを生成し、前記キャッシュ管理部は、前記要素内容データベースに前記複数の要素の全ての内容が登録され、かつ、前記第２のキーが前記第１のキーと一致しない場合に、前記要素内容データベースに登録された前記複数の要素の全ての内容を前記要求処理部へ通知する項目１記載のサーバ装置。
【００７２】
（項目６）複数種類の前記処理要求メッセージのそれぞれに対応して、当該処理要求メッセージについての前記キー要素を指定する設定ファイルを格納する設定ファイル格納部を更に備え、前記キー生成部は、前記第２の処理要求メッセージについての前記キー要素を前記設定ファイルから取得し、前記設定ファイルから取得した全ての前記キー要素が前記要素内容データベースに登録された場合に、前記第２のキーを生成する項目５記載のサーバ装置。
【００７３】
（項目７）前記要素内容登録部は、前記第２のキーが前記第１のキーと一致しないと判断した場合に、当該判断以降に前記メッセージ解析部から関数呼び出しにより前記要素の内容が通知される度に、関数呼び出しにより前記要求処理部へ当該要素の内容を通知する項目５記載のサーバ装置。
（項目８）前記キャッシュ管理部は、前記第２のキーが前記第１のキーと一致した場合に、前記メッセージ解析部による前記複数の要素の内容の抽出を中止させる項目１記載のサーバ装置。
【００７４】
（項目９）前記メッセージ解析部により抽出された前記複数の要素のそれぞれの内容を受信し、当該内容が暗号化されている場合に復号化して、当該内容に含まれる要素の名称及び内容を順次前記複数の要素に加える復号化部を更に備え、前記キー生成部は、前記第２の処理要求メッセージに含まれる、前記復号化部により復号化された要素を加えた前記複数の要素のうち、前記キー要素の内容に基づいて、前記第２のキーを生成する項目１記載のサーバ装置。
【００７５】
（項目１０）複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置によるサービス方法であって、受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理段階と、前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ段階と、受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析段階と、前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成段階と、前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ段階においてキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析段階により抽出された前記複数の要素の内容を前記要求処理段階へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理段階とを備えるサービス方法。
【００７６】
（項目１１）複数の要素のそれぞれについて、当該要素の名称及び内容が記述された構造化文書を含む処理要求メッセージを受信し、当該処理要求メッセージに基づく処理を行って処理応答メッセージを返信するサーバ装置用のプログラムであって、前記サーバ装置として動作するコンピュータを、受信した第１の前記処理要求メッセージに含まれる前記複数の要素の内容に基づく処理を行って、第１の前記処理応答メッセージを生成する要求処理部と、前記第１の処理要求メッセージに含まれる前記複数の要素のうち、予め定められた少なくとも１つのキー要素の内容に基づき生成された第１のキーに対応付けて、前記第１の処理応答メッセージをキャッシュするキャッシュ部と、受信した第２の前記処理要求メッセージを解析し、前記複数の要素の内容を順次抽出するメッセージ解析部と、前記第２の処理要求メッセージに含まれる前記複数の要素のうち、前記キー要素の内容に基づいて、第２のキーを生成するキー生成部と、前記第２のキーが前記第１のキーと一致する場合に、前記第２の処理要求メッセージに対する前記処理応答メッセージとして、前記キャッシュ部にキャッシュされた前記第１の処理応答メッセージを返信し、前記第２のキーが前記第１のキーと一致しない場合に、前記メッセージ解析部により抽出された前記複数の要素の内容を前記要求処理部へ通知し、前記複数の要素の内容に基づく処理を行わせて前記第２の処理応答メッセージを生成させ、生成された前記第２の処理応答メッセージを返信するキャッシュ管理部として機能させるプログラム。
（項目１２）項目１１記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施形態に係るＷｅｂサービスシステム１０の構成を示す。
【図２】本発明の実施形態に係るサーバ装置１１０の構成を示す。
【図３】本発明の実施形態に係るサーバ装置１１０の処理フローを示す。
【図４】本発明の実施形態に係る処理要求メッセージ４００の一例を示す。
【図５】本発明の実施形態に係る入力クラス５００のクラス定義の一例を示す。
【図６】本発明の実施形態に係る出力クラス６００のクラス定義の一例を示す。
【図７】本発明の実施形態に係る処理応答メッセージ７００の一例を示す。
【図８】本発明の実施形態の変形例に係るサーバ装置１１０の構成を示す。
【図９】本発明の実施形態の変形例に係るサーバ装置１１０の処理フローを示す。
【図１０】本発明の実施形態に係るコンピュータ９００のハードウェア構成を示す。
【符号の説明】
【００７８】
１０  Ｗｅｂサービスシステム
１００  クライアント装置
１１０  サーバ装置
１２０  通信ネットワーク
２００  メッセージ解析部
２１０  キャッシュ処理部
２１５  要素内容登録部
２２０  要素内容ＤＢ
２２５  キー生成部
２３０  設定ファイル格納部
２３５  キャッシュ部
２４０  キャッシュ管理部
２４５  要求処理部
２５０  メッセージ変換部
２５５  入力オブジェクト生成部
２６０  処理応答メッセージ生成部
２７０  アプリケーション処理部
４００  処理要求メッセージ
４１０  プロトコルバインディングヘッダ
４２０  ＳＯＡＰエンベロープ
４３０  ＳＯＡＰヘッダ
４４０  ＳＯＡＰメッセージ本体
４５０  要素
４６０  開始タグ
４７０  終了タグ
４８０  内容データ
５００  入力クラス
６００  出力クラス
７００  処理応答メッセージ
７１０  プロトコルバインディングヘッダ
７２０  ＳＯＡＰエンベロープ
７３０  ＳＯＡＰヘッダ
７４０  ＳＯＡＰメッセージ本体
７５０  要素
７６０  開始タグ
７７０  終了タグ
７８０  内容データ
８００  復号化部
９００  コンピュータ
１０００  ＣＰＵ
１０１０  ＲＯＭ
１０２０  ＲＡＭ
１０３０  通信インターフェイス
１０４０  ハードディスクドライブ
１０５０  フレキシブルディスク・ドライブ
１０６０  ＣＤ−ＲＯＭドライブ
１０７０  入出力チップ
１０７５  グラフィック・コントローラ
１０８０  表示装置
１０８２  ホスト・コントローラ
１０８４  入出力コントローラ
１０９０  フレキシブルディスク
１０９５  ＣＤ−ＲＯＭ
【図１】
2005234690.tif 000003
【図２】
2005234690.tif 000004
【図３】
2005234690.tif 000005
【図４】
2005234690.tif 000006
【図５】
2005234690.tif 000007
【図６】
2005234690.tif 000008
【図７】
2005234690.tif 000009
【図８】
2005234690.tif 000010
【図９】
2005234690.tif 000011
【図１０】
2005234690.tif 000012