(57)【要約】【課題】複数のクライアントがリソースを共用できるようにする。【解決手段】本発明のリソース共用装置１０は、複数のプロキシ１２と、接続リソースアクセス部１６と、キュー管理部２０と、接続オブジェクト管理部２４とを備える。プロキシ１２は、リソース利用クライアント３０からリソース４２の利用要求情報を受け付ける。接続リソースアクセス部１６は、リソース提供サーバ４０にアクセスする。キュー管理部２０は、各プロキシ１２からの利用要求情報を、対応するプロキシ１２に関連付けて利用要求記憶装置２２に書き込む。接続オブジェクト管理部２４は、リソース４２のリソース利用クライアント３０による利用状況を監視し、リソース利用クライアント３０によって利用されていないリソース４２を発見した場合には、利用要求記憶装置２２に書き込まれた利用要求情報に関連付けられたプロキシ１２のうちの何れかにその旨を通知する。【選択図】      図１
2006268714.tif 000002
【特許請求の範囲】
【請求項１】
リソース提供側によって提供されるリソースを、複数のクライアントが共用して利用できるように、前記リソース提供側と前記複数のクライアントとの間を中継するリソース共用装置であって、
アクセスされた前記複数のクライアントから、前記リソースの利用要求情報をそれぞれ受け付ける複数の利用要求受付手段と、
前記リソース提供側にアクセス可能なアクセス手段と、
前記各利用要求受付手段によって受け付けられた利用要求情報を、受け付けた利用要求受付手段に関連付けて記憶装置に書き込む書込手段と、
前記リソース提供側によって提供されるリソースの前記クライアントによる利用状況を監視し、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段のうちの何れかに、前記利用されていないリソースが存在することを通知する監視手段とを備え、
前記監視手段によって通知された利用要求受付手段が、前記アクセス手段に接続することによって、この利用要求受付手段にアクセスしているクライアントが、前記リソースを利用できるようにしたリソース共用装置。
【請求項２】
請求項１に記載のリソース共用装置において、
前記各利用要求受付手段は、前記リソース提供側が前記アクセス手段に提供しているインタフェースと同一仕様のインタフェースを、前記クライアントに提供しているリソース共用装置。
【請求項３】
請求項１又は請求項２に記載のリソース共用装置において、
前記アクセス手段は、前記リソースにアクセスするためのリソースアクセスオブジェクトを、前記リソース毎に備え、
前記監視手段によって通知された利用要求受付手段が、前記利用されていないリソースにアクセスしているリソースアクセスオブジェクトに接続することによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるようにしたリソース共用装置。
【請求項４】
請求項３に記載のリソース共用装置において、
初期化時に、前記書込手段が前記記憶装置に書き込んだ利用要求情報をクリアするとともに、前記アクセス手段の中に、前記リソースアクセスオブジェクトを生成する初期化処理を行う初期化手段を更に備えたリソース共用装置。
【請求項５】
請求項１乃至請求項４のうち何れか１項に記載のリソース共用装置において、
前記記憶装置は、前記書込手段によって書き込まれる利用要求情報を、キュー形式で保持するリソース共用装置。
【請求項６】
請求項３乃至請求項５のうち何れか１項に記載のリソース共用装置において、
前記リソースアクセスオブジェクトに予め識別番号を付与し、
前記利用要求受付手段は、前記クライアントから利用要求情報を受け付ける場合に、前記利用要求情報とともに、前記クライアントが利用したいリソースアクセスオブジェクトの識別番号も受け付け、
前記書込手段は、前記利用要求情報とともに、前記受け付けた識別番号を、前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記監視手段は、前記利用されていないリソースが存在することを通知する際には、このリソースにアクセスしているリソースアクセスオブジェクトの識別番号とともに通知し、
前記監視手段によって通知された利用要求受付手段は、前記通知された識別番号に対応するリソースアクセスオブジェクトに接続することによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるようにしたリソース共用装置。
【請求項７】
請求項１に記載のリソース共用装置において、
前記各利用要求受付手段に対して予め優先度を定めておき、
前記監視手段は、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段に対して、前記優先度の高い順から、前記利用されていないリソースが存在することを通知するようにしたリソース共用装置。
【請求項８】
請求項１乃至請求項７のうち何れか１項に記載のリソース共用装置において、
前記アクセス手段は、前記リソース提供側に遠隔呼出によりアクセス可能であるリソース共用装置。
【請求項９】
請求項１乃至請求項８のうち何れか１項に記載のリソース共用装置において、
前記各利用要求受付手段及び前記リソース提供側は、前記クライアント及びアクセス手段に対してそれぞれＳＯＡＰを用いたインタフェースを提供し、
前記アクセス手段は、前記リソース提供側にＳＳＬコネクションによりアクセス可能であるリソース共用装置。
【請求項１０】
請求項１乃至請求項９のうち何れか１項に記載のリソース共用装置が複数動作している場合、前記複数のリソース共用装置のうち、前記クライアントによって選択されたリソース共用装置が、前記リソース提供側とこのクライアントとの間を中継するようにした請求項１乃至８のうち何れか１項に記載のリソース共用装置。
【請求項１１】
請求項１乃至請求項９のうち何れか１項に記載のリソース共用装置において、
前記アクセス手段を複数備え、前記複数のアクセス手段は、それぞれがリソース提供側にアクセス可能であり、
前記監視手段によって通知された利用要求受付手段が、前記複数のアクセス手段のうち、前記利用されていないリソースにアクセスしているアクセス手段に接続することによって、この利用要求受付手段にアクセスしているクライアントが、前記利用されていないリソースを利用できるようにしたリソース共用装置。
【請求項１２】
請求項１乃至請求項９のうち何れか１項に記載のリソース共用装置において、
前記アクセス手段を複数備え、前記複数のアクセス手段は、それぞれ異なるリソース提供側にアクセス可能であり、
前記利用要求受付手段は、前記アクセスされたクライアントから、前記利用要求情報とともに、前記複数のアクセス手段のうちの何れかを指定する指定入力を受け付け、
前記書込手段は、前記受け付けた指定入力を、前記利用要求情報とともに前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記監視手段は、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられ、かつ前記発見されたリソースにアクセスしているアクセス手段に対する指定入力を行っている利用要求受付手段に対して、前記利用されていないリソースが存在することを通知するようにしたリソース共用装置。
【請求項１３】
請求項１乃至請求項９のうち何れか１項に記載のリソース共用装置において、
前記アクセス手段を複数備えるとともに、
前記監視手段によって、前記クライアントに利用されていないリソースが複数発見された場合には、前記複数のアクセス手段の通信負荷をそれぞれ監視し、この監視結果に基づいて、前記監視手段からの通知に従って前記アクセス手段に接続しようとする利用要求受付手段を、前記通信負荷の小さいアクセス手段に優先的に接続させることによって、前記複数のアクセス手段の負荷分散を図る負荷分散手段を更に備えたリソース共用装置。
【請求項１４】
リソース提供側によって提供されるリソースを、複数のクライアントが共用して利用できるように、前記リソース提供側と前記複数のクライアントとの間を中継するリソース共用装置に適用されるリソース共用方法であって、
前記リソース共用装置に複数備えられた利用要求受付手段のうちの何れかにアクセスした前記クライアントから、前記アクセスされた利用要求受付手段が、前記リソースの利用要求情報を受け付ける利用要求受付ステップと、
前記利用要求受付手段によって受け付けられた利用要求情報を、受け付けた利用要求受付手段に関連付けて、前記リソース共用装置に備えられた記憶装置に書き込む書込ステップと、
前記リソース提供側によって提供されるリソースの前記クライアントによる利用状況を監視し、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段のうちの何れかに、前記利用されていないリソースが存在することを通知する通知ステップと、
前記通知ステップにおいて通知された利用要求受付手段が、前記リソース共用装置に備えられ、前記リソース提供側にアクセス可能であるアクセス手段に接続することによって、この利用要求受付手段にアクセスしているクライアントが、前記リソースを利用できるようにする接続ステップと
を備えたリソース共用方法。
【請求項１５】
請求項１４に記載のリソース共用方法において、
前記アクセス手段は、前記リソースにアクセスするためのリソースアクセスオブジェクトを、前記リソース毎に備え、
前記リソース共用装置の初期化時に、前記記憶装置に書き込まれた利用要求情報をクリアするとともに、前記アクセス手段の中に、前記リソースアクセスオブジェクトを生成する初期化処理を行う初期化ステップを更に備えたリソース共用方法。
【請求項１６】
請求項１４又は請求項１５に記載のリソース共用方法において、
前記記憶装置は、前記書き込まれる利用要求情報を、キュー形式で保持するリソース共用装置。
【請求項１７】
請求項１５又は請求項１６に記載のリソース共用方法において、
前記各リソースアクセスオブジェクトに予め識別番号を付与しておき、
前記利用要求受付ステップでは、前記利用要求受付手段が、前記クライアントから利用要求情報を受け付ける場合に、前記利用要求情報とともに、前記クライアントが利用したいリソースアクセスオブジェクトの識別番号も受け付け、
前記書込ステップでは、前記利用要求情報とともに、前記受け付けた識別番号を、前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記通知ステップでは、前記利用されていないリソースが存在することを通知する際には、このリソースにアクセスしているリソースアクセスオブジェクトの識別番号とともに通知し、
前記接続ステップでは、前記通知ステップで通知された利用要求受付手段が、前記通知された識別番号に対応するリソースアクセスオブジェクトに接続することによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるようにしたリソース共用方法。
【請求項１８】
請求項１４に記載のリソース共用方法において、
前記各利用要求受付手段に対して予め優先度を定めておき、
前記通知ステップでは、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段に対して、前記優先度の高い順から、前記利用されていないリソースが存在することを通知するようにしたリソース共用方法。
【請求項１９】
請求項１４乃至請求項１８のうち何れか１項に記載のリソース共用方法において、
前記リソース共用装置は、アクセス手段を複数備え、前記複数のアクセス手段は、それぞれがリソース提供側にアクセス可能であり、
前記接続ステップでは、前記通知ステップにおいて通知された利用要求受付手段が、前記複数のアクセス手段のうち、前記利用されていないリソースにアクセスしているアクセス手段に接続することによって、この利用要求受付手段にアクセスしているクライアントが、前記利用されていないリソースを利用できるようにしたリソース共用方法。
【請求項２０】
請求項１４乃至請求項１８のうち何れか１項に記載のリソース共用方法において、
前記リソース共用装置は、前記アクセス手段を複数備え、各アクセス手段は、それぞれ異なるリソース提供側にアクセス可能であり、
前記利用要求受付ステップでは、前記利用要求受付手段が、前記アクセスされたクライアントから、前記利用要求情報とともに、前記複数のアクセス手段のうちの何れかを指定する指定入力を受け付け、
前記書込ステップでは、前記受け付けた指定入力を、前記利用要求情報とともに前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記通知ステップでは、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられ、かつ前記クライアントによって利用されていないことが発見されたリソースにアクセスしているアクセス手段に対する指定入力を行っている利用要求受付手段に対して、前記利用されていないリソースが存在することを通知するようにしたリソース共用方法。
【請求項２１】
請求項１４乃至請求項１８のうち何れか１項に記載のリソース共用方法において、
前記リソース共用装置に前記アクセス手段を複数備えるとともに、
前記通知ステップにおいて、前記クライアントに利用されていないリソースが複数発見された場合には、前記複数のアクセス手段の通信負荷をそれぞれ監視し、この監視結果に基づいて、前記監視手段からの通知に従って前記アクセス手段に接続しようとする利用要求受付手段を、前記通信負荷の小さいアクセス手段に優先的に接続させることによって、前記複数のアクセス手段の負荷分散を図るようにしたリソース共用方法。
【請求項２２】
リソース提供側によって提供されるリソースを、複数のクライアントが共用して利用できるように、前記リソース提供側と前記複数のクライアントとの間を中継するリソース共用装置に適用されるプログラムであって、
前記リソース共用装置に複数備えられた利用要求受付手段のうちの何れかにアクセスした前記クライアントから、前記アクセスされた利用要求受付手段が、前記リソースの利用要求情報を受け付ける機能、
前記利用要求受付手段によって受け付けられた利用要求情報を、受け付けた利用要求受付手段に関連付けて、前記リソース共用装置に備えられた記憶装置に書き込む機能、
前記リソース提供側によって提供されるリソースの前記クライアントによる利用状況を監視し、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段のうちの何れかに、前記利用されていないリソースが存在することを通知する機能、
前記通知された利用要求受付手段を、前記リソース共用装置に備えられ、前記リソース提供側にアクセス可能なアクセス手段に接続させることによって、この利用要求受付手段にアクセスしているクライアントが、前記リソースを利用できるようにする機能をコンピュータに実現させるためのプログラム。
【請求項２３】
請求項２２に記載のプログラムにおいて、
前記アクセス手段は、前記リソースにアクセスするためのリソースアクセスオブジェクトを、前記リソース毎に備えており、
前記通知された利用要求受付手段を、前記利用されていないリソースにアクセスしているリソースアクセスオブジェクトに接続させることによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるようにする機能を更にコンピュータに実現させるためのプログラム。
【請求項２４】
請求項２３に記載のプログラムにおいて、
前記リソース共用装置の初期化時に、前記記憶装置に書き込まれた利用要求情報をクリアするとともに、前記リソースアクセスオブジェクトを前記アクセス手段の中に生成する機能を更にコンピュータに実現させるためのプログラム。
【請求項２５】
請求項２２乃至請求項２４のうち何れか１項に記載のプログラムにおいて、
前記書き込む機能は、前記利用要求情報を、前記記憶装置にキュー形式で書き込むプログラム。
【請求項２６】
請求項２３乃至請求項２５のうち何れか１項に記載のプログラムにおいて、
前記各リソースアクセスオブジェクトは予め識別番号が付与されており、
前記受け付ける機能は、前記利用要求受付手段が、前記クライアントから利用要求情報を受け付ける場合に、前記利用要求情報とともに、前記クライアントが利用したいリソースアクセスオブジェクトの識別番号も受け付け、
前記書き込む機能は、前記利用要求情報とともに、前記受け付けた識別番号を、前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記通知する機能は、前記利用されていないリソースが存在することを通知する際には、このリソースにアクセスしているリソースアクセスオブジェクトの識別番号とともに通知し、
前記接続する機能は、前記通知された利用要求受付手段を、前記通知された識別番号に対応するリソースアクセスオブジェクトに接続させることによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるように接続するプログラム。
【請求項２７】
請求項２２に記載のプログラムにおいて、
前記各利用要求受付手段に対して予め優先度が定められており、
前記通知する機能は、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段に対して、前記優先度の高い順から、前記利用されていないリソースが存在することを通知するプログラム。
【請求項２８】
請求項２２乃至請求項２７のうち何れか１項に記載のプログラムにおいて、
前記アクセス手段は、前記リソース提供側に遠隔呼出によりアクセス可能であるプログラム。
【請求項２９】
請求項２８に記載のプログラムにおいて、
前記アクセス手段は、前記リソース提供側にＳＳＬコネクションによりアクセス可能であるプログラム。
【請求項３０】
請求項２２乃至請求項２９のうち何れか１項に記載のプログラムにおいて、
前記リソース共用装置は、アクセス手段を複数備え、前記複数のアクセス手段は、それぞれがリソース提供側にアクセス可能であり、
前記リソースを利用できるようにする機能は、前記利用要求受付手段を、前記複数のアクセス手段のうち、前記利用されていないリソースにアクセスしているアクセス手段に接続させることによって、この利用要求受付手段にアクセスしているクライアントが、前記利用されていないリソースを利用できるようにしたプログラム。
【請求項３１】
請求項２２乃至請求項２９のうち何れか１項に記載のプログラムにおいて、
前記リソース共用装置は、前記アクセス手段を複数備え、各アクセス手段は、それぞれ異なるリソース提供側にアクセス可能であり、
前記受け付ける機能は、前記利用要求受付手段が、前記アクセスされたクライアントから、前記利用要求情報とともに、前記複数のアクセス手段のうちの何れかを指定する指定入力を受け付け、
前記書き込む機能は、前記受け付けた指定入力を、前記利用要求情報とともに前記利用要求受付手段に関連付けて前記記憶装置に書き込み、
前記通知する機能は、前記クライアントによって利用されていないリソースを発見した場合には、前記記憶装置に書き込まれた利用要求情報に関連付けられ、かつ前記クライアントによって利用されていないことが発見されたリソースにアクセスしているアクセス手段に対する指定入力を行っている利用要求受付手段に対して、前記利用されていないリソースが存在することを通知するプログラム。
【請求項３２】
請求項２２乃至請求項２９のうち何れか１項に記載のプログラムにおいて、
前記リソース共用装置に前記アクセス手段を複数備えるとともに、
前記通知する機能によって、前記クライアントに利用されていないリソースが複数発見された場合には、前記複数のアクセス手段の通信負荷をそれぞれ監視し、この監視結果に基づいて、前記監視手段からの通知に従って前記アクセス手段に接続しようとする利用要求受付手段を、前記通信負荷の小さいアクセス手段に優先的に接続させることによって、前記複数のアクセス手段の負荷分散を図る機能を更にコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば電子商取引用のサイトや、オークション用のサイトや、各種データベース用のサイトを提供するようなリソース提供側によって提供されるリソースを、複数のクライアントが共用して利用できるように、リソース提供側と複数のクライアントとの間を中継するリソース共用装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
通常、限られたリソースを複数のアプリケーション、プロセス、スレッドなどで利用するシステムにおいては、複数のリソース利用クライアント間で効率的にリソースを共用するしくみが求められる。ここでの限られたリソースとは例えば、ＳＳＬコネクションやＤＢコネクションなどである。
【０００３】
以下、ＳＳＬを例に説明する。ＳＳＬによる通信では、ＳＳＬセッションを確立するための計算／通信コストが高い。またサーバ側がＳＳＬコネクションの数に制限を加えることもある。例えば、あるサーバとＳＳＬ通信するクライアントアプリケーションが３つあり、ＳＳＬセッション／コネクションは１つしか許されない場合を考える。この場合、各クライアントアプリケーションがＳＳＬセッション／コネクションの確立と破棄を繰り返すよりも、３つのクライアントアプリケーションが１つのＳＳＬコネクションを使い回せれば実行する上で効率的である。
【０００４】
限られたリソースを共有するしくみとしてプーリング機構が実用されている。プーリング機構とは、リソースを集めて管理するためのしくみである。例えば上述のＳＳＬの例では、許される数のＳＳＬコネクションをあらかじめ確立しておき、それらのＳＳＬコネクションをプーリング機構に登録しておく。リソース利用クライアントがＳＳＬ通信する際には、プーリング機構から空いているＳＳＬコネクションを借りて利用する。リソース利用クライアントはＳＳＬ通信が済んだら、そのＳＳＬコネクションをプーリング機構に返す。
【０００５】
ところで、リソース利用クライアントがプーリング機構からリソースを借りようとしたとき、必ずしもリソースに空きがあるとは限らない。リソースが空いていない場合、そのリソースを使って実行しようとしているタスクを実行できない。そのためリソース利用クライアントは、そのタスクの実行を待機しなければならない。タスクの実行を待機する方法としては、以下に示す（ａ）及び（ｂ）の２つの方法が考えられる。
【０００６】
（ａ）は、リソースが開放されるまでリソース利用クライアントが待ち、リソースが空いたらそのリソースを使ってタスクを実行する方法であり、（ｂ）は、リソース利用クライアントはリソースが空くまで待つのではなく、リソース利用クライアントがプーリング機構に対して「リソースが空いたらこのタスクを実行してくれ」と依頼する方法である。
【０００７】
上記（ａ）にてリソースが開放されるまで待つ方法としては、ポーリングとコールバックを使う方法がある。ポーリングでは、リソース利用クライアントは、リソースが空くまでプーリング機構へ問い合わせを繰り返す。このようなポーリングでは、プーリング機構へ問い合わせた時点で、たまたま空いているリソースを借りられる。リソース利用クライアントがリソースを要求した順番や、リソースを必要とする優先度などの制御ができない。
【０００８】
また、コールバックとは、リソース利用クライアントはリソースを使いたい旨をプーリング機構に伝え、リソースが空いたら通知してもらう。このようなコールバックでは、リソース利用クライアントからのリソース利用要求の待ち行列をプーリング機構で管理することができる。そのため、リソースの利用のされ方をプーリング機構で制御できる。すなわち、リソース利用クライアントがリソースを要求した順番や、リソースを必要とする優先度などに応じて、リソースを貸し出す順番を決めることができる。
【０００９】
一方、上記（ｂ）にてリソース利用クライアントがプーリング機構に対してタスクの実行を依頼する方法としては、そのタスク実行依頼をプーリング機構の待ち行列に格納する方法が考えられる。
【００１０】
なお、特許文献１には、上記に関連する技術として、１つのジョブ実行部に対して、複数の端末装置がジョブの実行を要求するような場合に、ジョブ実行部に出力される実行要求の順番を決めるための技術が開示されている。
【特許文献１】特開平８−２８７０２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、このような従来技術のプーリング機構では、以下のような問題がある。
【００１２】
すなわち、リソース共用のために従来技術のプーリング機構を適用すると、リソース利用クライアントはプーリング機構に依存することになり、以下に示すように、リソース利用クライアントがやらねばならない手順が大きく増える。そのため、リソース共有のためのシステム開発コストの増大や、リソース共有要否の条件が変わった場合にシステム変更コストが予想以上に増大するという問題が発生する。
【００１３】
図１２は、リソースを共用する必要がない場合、本来実現したい処理の流れを示す図である。リソース提供サーバ４０が提供するリソースを共用する必要がなければ、リソース利用クライアント３０は、単にリソースを利用する要求をリソース提供サーバ４０に送信する（Ｓ１０１）。この場合、リソース提供サーバ４０が提供するリソースが空いていれば、ステップＳ１０１でなされた要求に応じてリソース提供サーバ４０からリソース利用クライアント３０に対して返却値が返却される（Ｓ１０２）。
【００１４】
しかしながら、リソースが空いていない場合、そのリソースを使って実行しようとしているタスクを実行できない。そのためリソース利用クライアントは、プーリング機構を適用し、上述した（ａ）又は（ｂ）の方法に従って、タスクの実行を待機しなければならない。以下では、プーリング機構の適用により、リソース利用クライアントがやらねばならない手順がどのように増えたのかを、ＳＳＬコネクションの例を用いて、上述した（ａ）及び（ｂ）それぞれについて具体的に説明する。
【００１５】
（ａ）リソース利用クライアントがリソースの開放を待つ場合  
プーリング機構からコールバックのしくみによって空きＳＳＬコネクションを取得して利用する場合について図１３を用いて説明する。この場合、リソース利用クライアント３０は、以下に示すステップＳ１１１〜Ｓ１１７の手続きを実施しなければならない。
【００１６】
ＳＳＬコネクションを利用したい旨をプーリング機構５０に伝える（Ｓ１１１）。プーリング機構５０からＳＳＬコネクション空き通知が届くのを待つ（Ｓ１１２）、プーリング機構５０からＳＳＬコネクション空き通知が届いたら、ＳＳＬコネクションの取得を依頼する（Ｓ１１３〜Ｓ１１４）、取得したＳＳＬコネクションを使ってリソース提供サーバ４０と通信する（Ｓ１１５）、返却値が返却される（Ｓ１１６）、ＳＳＬコネクションをプーリング機構５０に返却する（Ｓ１１７）。
【００１７】
これらステップのうち、リソース利用クライアント３０が本来やりたいことはステップＳ１１５とステップＳ１１６だけである。それ以外のステップは、プーリング機構５０を使うためにやむなく行わねばならない手続きである。そのため、ＳＳＬコネクションを共用するクライアントの開発コストが増える。
【００１８】
またシステム開発当初はリソースの不足を予期しておらず、運用の途中からリソース不足が顕在化してリソース共有のしくみを追加導入するという状況もあり得る。この場合、システムにてそのリソースを利用しているあらゆる箇所にて、上述の追加ステップを実施しなければならず、システム変更コストが高くなる。
【００１９】
（ｂ）リソース利用クライアントがプーリング機構にタスクの実行を依頼する場合  
リソース利用クライアント３０がプーリング機構５０に対して、「ＳＳＬコネクションが空いたらこのメッセージを送信してくれ」と依頼する場合について図１４を用いて説明する。この場合、リソース利用クライアント３０とプーリング機構５０との間では以下の手続きが実施される。すなわち、そのメッセージを送信して欲しい旨をリソース利用クライアント３０がプーリング機構５０に伝える（Ｓ１２１）、プーリング機構５０がＳＳＬコネクションの空きを待つ（Ｓ１２２）、ＳＳＬコネクションが空いたら、プーリング機構５０は、リソース利用クライアント３０から送信を託されたメッセージをリソース提供サーバ４０に送信する（Ｓ１２３）、プーリング機構５０が、送信が完了した旨をリソース利用クライアント３０に通知する（Ｓ１２４）。
【００２０】
上記各ステップにおいて、リソース利用クライアント３０が関与するのはステップＳ１２１とステップＳ１２４である。一方、リソース利用クライアント３０が本来やりたいことは、ＳＳＬ通信でメッセージを送受信することである。そのため、ステップＳ１２１とステップＳ１２４とは、プーリング機構５０を使うためにやむなく行わねばならない手続きである。このように、図１２に示すような単にＳＳＬ通信でメッセージを送受信する場合と比較すると、特にステップＳ１２４の送信完了通知を受け取るしくみをリソース利用クライアント３０に実装するのは開発コストがかかる。
【００２１】
また（ａ）の場合と同様、システム開発当初はリソースの不足を予期しておらず、運用の途中からリソース不足が顕在化してリソース共有のしくみを追加導入するという状況もあり得る。この場合、システムにてそのリソースを利用しているあらゆる箇所にて、上述の追加ステップを実施しなければならず、システム変更コストが高くなる。
【００２２】
本発明はこのような事情に鑑みてなされたものであり、リソースを利用するクライアント側の影響を抑えつつ、複数のクライアントがリソースを共用して利用できるようなリソース共用装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００２４】
すなわち、本発明は、リソース提供側によって提供されるリソースを、複数のクライアントが共用して利用できるように、リソース提供側と複数のクライアントとの間を中継するリソース共用装置、リソース共用装置に適用されるリソース共用方法、及びリソース共用方法を実現するプログラムである。このリソース共用装置には、複数の利用要求受付手段と、記憶装置と、例えばＳＳＬコネクションのような遠隔呼出によってリソース提供側にアクセス可能なアクセス手段と、書込手段と、監視手段と、初期化手段と、負荷分散手段とが備えられている。
【００２５】
クライアントが、このようなリソース共用装置を利用する場合には、まず、複数の利用要求受付手段のうちの何れかにアクセスし、リソースの利用要求情報を入力する。このようにして利用要求受付手段に入力された利用要求情報は、書込手段によって、受け付けた利用要求受付手段に関連付けられて、記憶装置に書き込まれる。
【００２６】
一方、リソース提供側によって提供されるリソースのクライアントによる利用状況は、監視手段によって監視されている。さらにこの監視手段によって、クライアントによって利用されていないリソースが発見された場合には、記憶装置に書き込まれた利用要求情報に関連付けられた利用要求受付手段のうちの何れかに、利用されていないリソースが存在することが通知される。
【００２７】
そして、通知された利用要求受付手段が、アクセス手段に接続することによって、この利用要求受付手段にアクセスしているクライアントは、リソースを利用できるようになる。
【００２８】
このようにすることによって、複数のクライアントがリソースを共用して利用できるようになる。
【００２９】
ここで、各利用要求受付手段は、リソース提供側がアクセス手段に提供しているインタフェースと同一仕様のインタフェース（例えば、ＳＯＡＰ(Simple Object Access Protocol)を用いたインタフェース）を、クライアントに提供するようにしても良い。
【００３０】
また、アクセス手段は、リソースにアクセスするためのリソースアクセスオブジェクトを、リソース毎に備えるようにし、利用されていないソースの存在を通知された利用要求受付手段が、この利用されていないリソースにアクセスしているリソースアクセスオブジェクトに接続することによって、この利用要求受付手段にアクセスしているクライアントが、このリソースアクセスオブジェクトがアクセスしているリソースを利用できるようにしても良い。
【００３１】
さらに、記憶装置に、書き込まれた利用要求情報を保持するキューを備えるようにしてもよい。このキューは、リソース共用装置の初期化時に、初期化手段によってクリアされる。また、上述したリソースアクセスオブジェクトは、リソース共用装置の初期化時に、この初期化手段によって生成される。
【００３２】
また、各リソースアクセスオブジェクトに予め識別番号を付与し、クライアントが、利用要求受付手段から利用要求情報を入力する際に、利用したいリソースアクセスオブジェクトの識別番号も入力することによって、リソースアクセスオブジェクトがアクセスしているリソースを指定することもできる。
【００３３】
また、各利用要求受付手段に対して予め優先度を定めておくことによって、利用されていないリソースが監視手段によって発見され、その旨が利用要求受付手段に通知される場合に、優先度の高い利用要求受付手段から順に通知されるようにすることもできる。
【００３４】
なお、ここでクライアントは、唯一のリソース共用装置へのアクセスのみが許容されている訳ではなく、別のリソース共用装置にアクセスしていても良い。
【００３５】
また、リソース共用装置が備えるアクセス手段は一つに限るものではなく、複数備えていても良い。このようにアクセス手段を複数備え、各アクセス手段を、それぞれ異なるリソース提供側とアクセスさせることによって、リソース共用装置は、複数のリソース提供側とアクセスすることが可能となる。
【００３６】
なお、このように複数のリソース提供側とアクセスしている場合、利用要求受付手段は、クライアントから、利用要求情報とともに、複数のアクセス手段のうちの何れかを指定する指定入力を受け付ける。これによってクライアントは、複数のリソース提供側とアクセスが可能となっているリソース共用装置を使って、所望するリソースにアクセスすることが可能となる。
【００３７】
なお、このようにリソース共用装置がアクセス手段を複数備えた場合には、上述した優先度や、指定入力等の制約の範囲内で、負荷分散手段によって、アクセス手段に接続しようとする利用要求受付手段を、通信負荷の小さいアクセス手段に優先的に接続させることによって、複数のアクセス手段の負荷分散が図られる。
【００３８】
以上のような手段を講じることによって、本発明は、複数のクライアントがリソースを共用できるようになる。しかも、複数のクライアントがリソースを共用することを可能にするための処理をクライアントから隠蔽しながら行うので、クライアントに対して、操作手順の増加をもたらすことはない。このため、クライアントは、リソース共用装置の操作を特に意識する必要は無い。また、リソース共有するためのシステムの開発や、リソース共有要否の条件が変わった場合のためのシステムの変更も不要となる。
【発明の効果】
【００３９】
本発明のリソース共用装置、方法、及びプログラムによれば、複数のクライアントがリソースを共用できるようになる。しかも、複数のクライアントがリソースを共用することを可能にするための処理をクライアントから隠蔽しながら行うので、クライアントに対して、操作手順の増加をもたらすことはない。このため、クライアントは、リソース共用装置の操作を特に意識する必要は無い。また、リソース共有するためのシステムの開発や、リソース共有要否の条件が変わった場合のためのシステムの変更も不要となる。
【発明を実施するための最良の形態】
【００４０】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００４１】
なお、以下の各実施の形態の説明に用いる図中の符号は、図１２乃至図１４と同一部分については同一符号を付して示すことにする。
【００４２】
（第１の実施の形態）  
図１は、本発明の第１の実施の形態に係るリソース共用方法を適用したリソース共用装置の一例を示す機能ブロック図である。
【００４３】
すなわち、本実施の形態に係るリソース共用装置１０は、リソース提供サーバ４０によって提供されるリソース４２を、複数のリソース利用クライアント３０（＃１，＃２，＃３，〜＃ｎ）（以下、代表的に「複数のリソース利用クライアント３０」と称する）が共用して利用できるように、リソース提供サーバ４０と複数のリソース利用クライアント３０との間を中継する装置であって、複数のプロキシ１２（＃１，＃２，＃３，〜＃ｎ）（以下、代表的に「プロキシ１２」と称する）と、接続リソース利用管理部１４と、接続リソースアクセス部１６とを備えている。さらに接続リソース利用管理部１４は、キュー管理部２０と、利用要求記憶装置２２と、接続オブジェクト管理部２４と、ユーザデータ記憶装置２６と、証明書データ記憶装置２８とを備えている。接続リソースアクセス部１６は、リソース提供サーバ４０が提供するリソース４２（＃１〜＃３）のそれぞれに対応している接続オブジェクト１８（＃１〜＃３）を備えている。なお、図１では、リソース４２及び接続オブジェクト１８として３つのみ示しているが、これは一例であり、３つに限定される訳ではない。
【００４４】
プロキシ１２は、リソース利用クライアント３０の数に対応して設けられ、それぞれ対応するリソース利用クライアント３０から、リソース４２の利用要求情報を受け付ける。この場合、リソース利用クライアント３０は、希望する接続オブジェクト１８がある場合には、希望する接続オブジェクト１８の識別番号を利用要求情報に含めて入力する。そして、リソース利用クライアント３０によってなされた利用要求情報を、接続リソース利用管理部１４のキュー管理部２０に送る。また、利用要求情報に待機スレッド指定を含めるようにしても良い。待機スレッド指定とは、要求に合う接続オブジェクト１８が開放されたときに、復帰する待機スレッドを指定するものである。
【００４５】
またプロキシ１２は、リソース利用クライアント３０に対して提供する入力受付用インタフェースとして、リソース提供サーバ４０が提供している入力受付用インタフェースと同一仕様のもの（例えば、ＳＯＡＰを用いたインタフェース）を使用するようにしても良い。こうすることによって、リソース利用クライアント３０を操作するクライアントは、リソース共用装置１０を介してリソース提供サーバ４０にアクセスする場合も、リソース提供サーバ４０に直接アクセスした場合も、同じインタフェースが与えられることになるので、リソース利用クライアント３０は、リソース提供サーバ４０と、リソース共用装置１０のプロキシ１２に対して同一の方法でアクセスでき、リソース共用装置１０を経由してリソース提供サーバ４０にアクセスすることを意識しなくてもよくなる。
【００４６】
キュー管理部２０は、プロキシ１２からの利用要求情報を受けると、この利用要求情報を、この利用要求情報を要求したクライアントのユーザ識別番号と、このクライアントの優先度とともに、利用要求記憶装置２２に書き込む。ここで、利用要求記憶装置２２は、待ち行列の形式でデータの書込み、読み出しが制御される。以下、このようにして制御される利用要求記憶装置２２を利用要求データキューとして説明する。なお、この利用要求データキューは、メモリやＨＤＤなどのハードウェアから構成される。
【００４７】
図２は、利用要求データキュー（利用要求記憶装置２２）に書き込まれた利用要求データのデータ構成例を示す図である。この利用要求データキュー（利用要求記憶装置２２）には、プロキシ１２から出力された順に、優先度、ユーザ識別番号、待機スレッド指定、希望する接続オブジェクト識別番号等の項目が関連付けられたデータが積まれる形式で記憶されている。なお、これは、クライアント毎に優先度が指定されている場合の例である。優先度を指定しない場合には、優先度の欄には何も書き込まれない。また、希望する接続オブジェクト１８の指定がない場合には、希望する接続オブジェクトの欄には何も書き込まれない。
【００４８】
接続オブジェクト管理部２４は、キュー管理部２０と、接続オブジェクト１８との起動時における初期化処理、及び停止処理を行う。初期化処理では、キュー管理部２０に対して、利用要求データキュー（利用要求記憶装置２２）の内容をクリアさせる。また、図３にそのデータ構成例を示すユーザデータ記憶装置２６に書き込まれたユーザ識別番号及びパスワードを用いて、接続リソースアクセス部１６の中に、リソース共用装置１０がリソース提供サーバ４０によって許可されたネットワーク通信接続の数だけ接続オブジェクト１８を生成する。
【００４９】
接続リソースアクセス部１６に生成された接続オブジェクト１８は、接続オブジェクト管理部２４によって、リソース共用装置１０がリソース提供サーバ４０によって許可されたネットワーク通信接続の数だけ生成される。
【００５０】
各接続オブジェクト１８は、このようにして生成されると、証明書データ記憶装置２８に書き込まれたデータであって、図４にそのデータ構成例を示すように発行者、有効期限、ユーザ識別番号の項目からなるデータを用いて、それぞれリソース４２との間に、例えばＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰ接続のような遠隔呼出によるＳＳＬコネクションによるアクセスを確立することによって、リソース４２にログインし、接続を維持する。
【００５１】
また、接続オブジェクト管理部２４は、リソース共用装置１０の各部位の動作を制御するとともに、プロキシ１２と接続オブジェクト１８との接続状況を監視することによって、リソース４２の、リソース利用クライアント３０による利用状況を監視する。そして、リソース利用クライアント３０によって利用されていないリソース４２を発見した場合には、利用要求データキュー（利用要求記憶装置２２）に書き込まれた利用要求データを参照して、何れかのプロキシ１２に対して、利用されていないリソース４２が存在する、すなわち、どのプロキシ１２にも接続されていない接続オブジェクト１８が存在することをキュー管理部２０を介して通知する。これを処理可能通知と称する。この場合、利用要求データキュー（利用要求記憶装置２２）に書き込まれた利用要求データの優先度の順に従って、通知するプロキシ１２を決定する。優先度が指定されていない場合には、利用要求情報を出力した順番に従ってプロキシ１２を決定する。
【００５２】
このようにして接続オブジェクト管理部２４から通知がなされたプロキシ１２が、どのプロキシ１２からも利用されていない接続オブジェクト１８を利用できるようになる。プロキシ１２はクライアントからの依頼を接続オブジェクト１８に送信し、接続オブジェクト１８はこの依頼をリソース４２に送信する。
【００５３】
なお、リソース共用装置１０の各部位の動作を制御する接続オブジェクト管理部２４は、図示しないプログラム記憶領域を備えており、ここに記憶されたプログラムを読み出し、このプログラムにしたがって動作する。なお、このプログラムは、このように自己に記憶される場合に限定されるものではなく、インターネット等の通信ネットワークを介してダウンロードされるようにしてもよい。
【００５４】
ここでプログラム記憶領域としては、磁気ディスク、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
【００５５】
また、プログラム記憶領域からインストールされたプログラムの指示に基づき稼働しているＯＳ（オペレーティングシステム）や、利用要求記憶装置２２、ユーザデータ記憶装置２６、及び証明書データ記憶装置２８を管理するためのソフトウェア、ネットワークソフト等のＭＷ（ミドルウェア）等が本発明の実施の形態を実現するための各処理の一部を実行してもよい。
【００５６】
さらに、上記プログラム記憶領域は、接続オブジェクト管理部２４の一部であっても図示しない独立した媒体であっても良く、更にはＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体であっても良い。
【００５７】
また、この記憶媒体は１つに限らず、複数の媒体から本発明の実施の形態における処理が実行される場合もここでいう記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
【００５８】
なお、ここでいうコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施の形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。また、このコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００５９】
次に、以上のように構成した本実施の形態に係るリソース共用装置の動作について具体例を用いて説明する。
【００６０】
この具体例では、リソース共用装置１０とリソース提供サーバ４０の間の通信においてクライアント認証を伴うＨＴＴＰＳ通信によるＷｅｂサービス（ＳＯＡＰ）接続において、１クライアント１接続に同時接続が制限されている場合について説明する。
【００６１】
例えば、会員限定のオークションサービスをリソース提供サーバ４０が提供しており、クライアントがその同時接続数に応じて利用料を払い、オークションに参加する場合を考える。リソース提供サーバ４０は、オークションサービスへアクセスするための方法としてＳＯＡＰを提供し、ＳＯＡＰを用いてアクセスするインタフェースの情報をＷＳＤＬ(Web Services Description Language)として公開する。ＳＯＡＰ接続のための低レベルのプロトコルとしてＨＴＴＰＳを用いる。ＨＴＴＰＳはクライアント認証をするために，クライアント証明書を要求する。リソース提供サーバ４０は、同一のクライアント証明書を用いた接続は、同時に一つだけに制限する。クライアントは、リソース利用クライアント３０を用いてリソース提供サーバ４０にアクセスするには、アクセス許可を受けた証明書をライセンス料を払って取得する必要がある。
【００６２】
ここでは、リソース利用クライアント３０は、ネットワーク通信接続数とは関係なく複数存在するが、リソース共用装置１０が提供する接続共用機能を使うことで、複数のリソース利用クライアント３０は、同時接続の状態を意識せずにリソース提供サーバ４０を共有できる。そのため，同時接続数はライセンス料を取得した証明書の数に制約されるが、接続共用機能を用いることで、クライアント数は証明書の数に制約されないようになる。
【００６３】
このような接続共用機能を実現するリソース共用装置１０を動作させる場合には、図５の処理流れ図に示すように、まず初期化処理が行われる。
【００６４】
初期化処理では、接続オブジェクト管理部２４によってキュー管理部２０が起動され（Ｓ１）、キュー管理部２０に初期化メッセージが投げられる（Ｓ２）。すると、キュー管理部２０によって、利用要求データキュー（利用要求記憶装置２２）の内容が初期化されクリアされる（Ｓ３）。また、ユーザデータ記憶装置２６に書き込まれたユーザ識別番号及びパスワードを用いて、接続リソースアクセス部１６の中に、リソース共用装置１０がリソース提供サーバ４０によって許可されたネットワーク通信接続の数だけ接続オブジェクト１８が生成される（Ｓ４）。さらに、接続オブジェクト管理部２４によって、生成した接続オブジェクト１８に対して、初期化メッセージを投げられるとともに、ユーザデータ記憶装置２６に書き込まれたユーザ識別番号及びパスワードが渡される（Ｓ５）。
【００６５】
生成された各接続オブジェクト１８では、初期化メッセージを受けると、渡されたユーザ識別番号及びパスワードに対応する証明書が証明書データ記憶装置２８から取得される。そして、この証明書を用いてリソース提供サーバ４０にログインし、セッション状態が維持される（Ｓ６）。
【００６６】
一方、プロキシ１２からは、本リクエスト処理機能が、リソース利用クライアント３０に対して公開ＡＰＩ（Application Program Interface）等により提供される。これによって、リソース共用装置１０によって、リソース提供サーバ４０へのリクエスト送信が仲介される。このとき、リソース利用クライアント３０が、リソース提供サーバ４０に直接アクセスするときと、本実施の形態に係るリソース共用装置１０を介するときとで、アクセスするＡＰＩを同じとしている。このようにするためには、リソース提供サーバ４０が公開するＷＳＤＬから自動生成したＰｒｏｘｙクラスのＡＰＩに対して、インタフェースを変えずに、内部実装を、リソース共用装置１０を用いるように修整すればよい。
【００６７】
図６の処理流れ図に示すように、このＡＰＩを用いてリソース利用クライアント３０から、利用要求情報として例えばＳＯＡＰリクエスト要求がプロキシ１２に入力されると（Ｓ１１、Ｓ１２）、この利用要求情報はキュー管理部２０に送られる（Ｓ１３）。するとキュー管理部２０によって、利用要求データキュー（利用要求記憶装置２２）内の利用要求データとして、プロキシ１２から出力された順に、優先度、ユーザ識別番号、待機スレッド指定、希望する接続オブジェクト等のデータが書き込まれる（Ｓ１４）。このようにして利用要求データキュー（利用要求記憶装置２２）への書き込みが終わると、プロキシ１２は、接続オブジェクト管理部２４からの処理可能通知があるまでは待機状態となる（Ｓ１５）。
【００６８】
ステップＳ１５の待機状態に入ると、接続オブジェクト管理部２４によって、プロキシ１２と接続オブジェクト１８との接続状況が監視される。そして、利用要求情報で希望された接続オブジェクト１８が空いていることが確認され、復帰イベントが発生する（Ｓ１６）まで、現在のスレッドが待機状態とされる。なお、利用要求情報で希望する接続オブジェクト１８の指定がなかった場合には、いずれかの空いている接続オブジェクト１８が確認され、復帰イベントが発生する（Ｓ１６）まで、現在のスレッドが待機状態とされる。この復帰イベントは、接続オブジェクト管理部２４によって、利用要求データキュー内で最も優先度が高い利用要求情報を含むスレッド指定に対してなされる。
【００６９】
このようにしてスレッド指定に対して復帰イベントがなされると、このスレッド指定に対応するキューに記憶されたデータが利用要求データキュー（利用要求記憶装置２２）から削除される（Ｓ１７）。また、プロキシ１２に対して処理可能通知が、接続可能な接続オブジェクト１８の識別番号とともに出力される（Ｓ１８）。なお、利用要求情報で希望する接続オブジェクト１８の指定がなかった場合には、いずれかの空いている接続オブジェクト１８があれば、処理可能通知が、この空いている接続オブジェクト１８の識別番号とともにプロキシ１２に対してなされる（Ｓ１８）。
【００７０】
このようにしてプロキシ１２に処理可能通知が、接続オブジェクト１８の識別番号とともに出力されると、プロキシ１２から、この識別番号に対応する接続オブジェクト１８に対して接続要求が送られ、プロキシ１２と接続オブジェクト１８とが接続される（Ｓ１９）。これによって、このプロキシ１２にアクセスしているリソース利用クライアント３０は、リソース提供サーバ４０を利用できるようになるので、クライアントは、リソース利用クライアント３０から必要な要求内容を入力すると、この要求内容は、プロキシ１２から接続オブジェクト１８に渡され、さらに接続オブジェクト１８からＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰＳの接続セッションを介してリソース提供サーバ４０に入力される（Ｓ２０）。そして、リソース提供サーバ４０からは、この要求内容に応じた情報が、ＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰＳの接続セッションを介して接続オブジェクト１８に送信され、さらにそこからプロキシ１２を介してリソース利用クライアント３０に戻される。
【００７１】
このようにして、リソース利用クライアント３０を利用するクライアントは、リソース提供サーバ４０を利用することができる。そして、リソース利用クライアント３０によるリソース提供サーバ４０の利用が終了すると、プロキシ１２と接続オブジェクト１８との間の接続が切断されるとともに、別のプロキシ１２からの利用要求に処理を渡すために、プロキシ１２からキュー管理部２０に対して、接続オブジェクト１８が開放された旨の通知がなされる（Ｓ２１）。
【００７２】
次に、接続オブジェクト管理部２４によってなされる停止処理時の動作について、図７に示す処理流れ図を用いて説明する。
【００７３】
本実施の形態に係るリソース共用装置１０を停止する場合には、接続オブジェクト管理部２４から停止準備メッセージがキュー管理部２０に送られる（Ｓ３１）。キュー管理部２０に停止準備メッセージが送られると、キュー管理部２０は、新たなリクエスト要求を受け付けない。
【００７４】
次に、ステップＳ３１における停止準備メッセージが送られて３０秒後に、利用要求データキュー（利用要求記憶装置２２）が空である（何も記憶されていない）ことを確認する確認メッセージがキュー管理部２０に送られる（Ｓ３２）。
【００７５】
キュー管理部２０によって確認メッセージが受け取られると、キュー管理部２０によって、利用要求記憶装置２２内の利用要求データキュー（利用要求記憶装置２２）が空であるか否かが確認される（Ｓ３３）。この結果は、キュー管理部２０から接続オブジェクト管理部２４に返される。
【００７６】
ステップＳ３３において、利用要求データキュー（利用要求記憶装置２２）が空であることが確認された場合には、接続オブジェクト管理部２４からキュー管理部２０に対して停止メッセージが出力され、これによってキュー管理部２０によるキュー管理機能が停止される（Ｓ３４）。
【００７７】
一方、ステップＳ３３において、利用要求データキュー（利用要求記憶装置２２）が空でないことが確認された場合には、その確認結果を受け取ってから３０秒後に再度、接続オブジェクト管理部２４からキュー管理部２０に対して、利用要求データキュー（利用要求記憶装置２２）が空であることを確認する確認メッセージが（Ｓ３２）。
【００７８】
このようにして最終的にキュー管理部２０によるキュー管理機能が停止すると、接続オブジェクト管理部２４から各接続オブジェクト１８に対して、リソース提供サーバ４０との接続の切断を要求するログアウト要求が出力される（Ｓ３５）。
【００７９】
そして、ログアウト要求を受け取った各接続オブジェクト１８からは、リソース提供サーバ４０に対してログアウトメッセージが出力される（Ｓ３６）。そして、ログアウトメッセージを受け取ったリソース提供サーバ４０によって、接続オブジェクト１８とリソース４２との各接続が切断される。これによって、各接続オブジェクト１８の動作が停止される（Ｓ３７）。
【００８０】
上述したように、本実施の形態に係るリソース共用方法を適用したリソース共用装置１０においては、上記のような作用により、限られたリソースを複数のクライアントで使い回すことにより、複数のクライアントがリソース提供サーバ４０を共用することを可能にする。
【００８１】
図８は、本実施の形態に係るリソース共用方法を適用したリソース共用装置１０の、リソース利用クライアント３０及びリソース提供サーバ４０との処理関係を示す図である。
【００８２】
図８に示すように、限られたリソースを複数のリソース利用クライアント３０で使い回すために行っているリソース共用装置１０の振る舞いは、リソース利用クライアント３０から隠蔽される。つまり、リソース利用クライアント３０から見ると、リソース提供サーバ４０に直接アクセスする場合（図１２参照）でも、リソース共用装置１０が仲介する場合でも、同じようにリソース提供サーバ４０にアクセスできる。つまり、図１２に示すステップＳ１０１及びステップＳ１０２の処理と、図８に示すステップＳ４１及びステップＳ４４の処理とはそれぞれ同じであり、また、複数のリソース利用クライアント３０がリソース提供サーバ４０を共用することを可能にするための処理であるステップＳ４２及びステップＳ４３を、リソース利用クライアント３０側から隠蔽しながら行うので、クライアントに対して、操作手順の増加をもたらすことない。
【００８３】
このため、クライアントは、リソース共用装置１０の操作を特に意識する必要は無い。また、リソース提供サーバ４０を共有するためのシステムの開発や、リソース共有要否の条件が変わった場合のためのシステムの変更も不要となる。以上により、システムの開発コストの削減が見込める。また、リソース共有要否の条件が変わった場合にも、システムの変更コストを低く抑えることが可能となる。
【００８４】
なお、本実施の形態に係るリソース共用装置１０を利用するリソース利用クライアント３０は、図１に示すように、単一のリソース共用装置１０のプロキシ１２にアクセスしている場合に限られるものではなく、図９に示すように、複数のリソース共用装置１０（＃１，＃２）のプロキシ１２にそれぞれアクセスすることにより、複数のリソース提供サーバ４０（＃１，＃２）を利用することも可能である。
【００８５】
この場合、複数のリソース共用装置１０へのアクセスを要求するリソース利用クライアント３０は、最初にどのリソース共用装置１０にアクセスするのかを指定する。それ以降の動作については、一つのリソース共用装置１０の動作と同様である。
【００８６】
（第２の実施の形態）  
本発明の第２の実施の形態に係るリソース共用方法を適用したリソース共用装置は、第１の実施の形態に係るリソース共用方法を適用したリソース共用装置の変形例である。したがって、同一部位については同一符号を付すとともに、第１の実施の形態と異なる点について説明する。
【００８７】
すなわち、本実施の形態に係るリソース共用方法を適用したリソース共用装置１１は、図１０に示すように、２つの接続リソースアクセス部１６（＃１，＃２）を備えている。各接続リソースアクセス部１６（＃１，＃２）はそれぞれ別のリソース提供サーバ４０（＃１，＃２）に接続するためのものである。
【００８８】
このように複数の接続リソースアクセス部１６を備えた場合、リソース共用装置１１は、プロキシ１２に、接続リソースアクセス部１６の指定を受け付けるＡＰＩを備える。これによって、リソース利用クライアント３０は、プロキシ１２にアクセスした場合に、利用したい接続リソースアクセス部１６を指定することができる。
【００８９】
このように、利用したい接続リソースアクセス部１６の指定入力があった場合には、プロキシ１２は、この指定入力を利用要求情報に含めてキュー管理部２０に送る。すると、キュー管理部２０は、この指定入力も含めて利用要求データキュー（利用要求記憶装置２２）に書き込む。したがって、この場合、利用要求データのデータ構成は、図１１に示すように、図２に示すデータ構成に、リソースアクセス部１６の指定項目を追加したものとなる。そして、接続オブジェクト管理部２４は、この指定された接続リソースアクセス部１６の接続オブジェクト１８に空きが出た場合に、プロキシ１２に対して処理可能通知を送る。
【００９０】
なお、リソース提供サーバ４０（＃１）と、リソース提供サーバ４０（＃２）との違いがクライアントにとって重要でない場合、リソース利用クライアント３０は、接続リソースアクセス部１６を指定しなくても構わない。この場合、図１１に示す接続リソースアクセス部１６の指定欄には何も書き込まれない。そして、接続オブジェクト管理部２４は、接続リソースアクセス部１６（＃１）の中の接続オブジェクト１８か、または接続リソースアクセス部１６（＃２）の中の接続オブジェクト１８かのうちのどちらかに空きの出た場合には、プロキシ１２に対して処理可能通知を行う。
【００９１】
なお、接続リソースアクセス部１６の指定がない場合であって、空の接続オブジェクト１８が、接続リソースアクセス部１６（＃１）及び接続リソースアクセス部１６（＃２）の何れにもあった場合には、接続オブジェクト管理部２４は、接続リソースアクセス部１６（＃１）と接続リソースアクセス部１６（＃２）との通信負荷をそれぞれ監視し、この監視結果に基づいて、通信負荷の小さい接続リソースアクセス部１６にある接続オブジェクト１８に優先的に接続させることによって、両接続リソースアクセス部１６（＃１，＃２）の通信負荷を分散するようにしても良い。
【００９２】
以上のような構成とすることによって、本実施の形態では、第１の実施の形態で奏された作用効果に加えて、１つのリソース共用装置１１によって複数のリソース提供サーバ４０を取り扱うことが可能となる。
【００９３】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００９４】
【図１】第１の実施の形態に係るリソース共用方法を適用したリソース共用装置の一例を示す機能ブロック図。
【図２】利用要求データの一例を示すデータ構成図。
【図３】ユーザデータベースの一例を示すデータ構成図。
【図４】証明書データベースの一例を示すデータ構成図。
【図５】初期化処理の一例を示す処理流れ図。
【図６】処理要求受付処理の一例を示す処理流れ図。
【図７】停止処理の一例を示す処理流れ図。
【図８】第１の実施の形態に係るリソース共用装置の、リソース利用クライアント及びリソース提供サーバとの処理関係を示す図。
【図９】一つのリソース利用クライアントが複数のリソース共用装置を利用する場合を示す構成図。
【図１０】第２の実施の形態に係るリソース共用方法を適用したリソース共用装置の一例を示す機能ブロック図。
【図１１】ユーザデータベースの一例を示すデータ構成図。
【図１２】リソースを共用する必要がない場合の処理流れ図。
【図１３】プーリング機構からコールバックのしくみによって空きＳＳＬコネクションを取得して利用する場合の処理流れ図。
【図１４】リソース利用クライアントがプーリング機構にタスク実行を依頼する場合の処理流れ図。
【符号の説明】
【００９５】
１０、１１…リソース共用装置、１２…プロキシ、１４…接続リソース利用管理部、１６…接続リソースアクセス部、１８…接続オブジェクト、２０…キュー管理部、２２…利用要求記憶装置、２４…接続オブジェクト管理部、２６…ユーザデータ記憶装置、２８…証明書データ記憶装置、３０…リソース利用クライアント、４０…リソース提供サーバ、４２…リソース、５０…プーリング機構
【図１】
2006268714.tif 000003
【図２】
2006268714.tif 000004
【図３】
2006268714.tif 000005
【図４】
2006268714.tif 000006
【図５】
2006268714.tif 000007
【図６】
2006268714.tif 000008
【図７】
2006268714.tif 000009
【図８】
2006268714.tif 000010
【図９】
2006268714.tif 000011
【図１０】
2006268714.tif 000012
【図１１】
2006268714.tif 000013
【図１２】
2006268714.tif 000014
【図１３】
2006268714.tif 000015
【図１４】
2006268714.tif 000016