(57)【特許請求の範囲】
【請求項１】
分散システムのサーバが、クライアントから前記サーバのＯＲＢ（Object Request Broker）に対する所定のプロトコルのリクエストを受け取ると、前記リクエストからメソッド名情報を取得し、このメソッド名から、メソッドの属性情報を蓄積する記憶手段を参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、
前記メソッドの属性情報を基に、コネクションに優先順位を付けてテーブル上で登録管理し、
前記所定のプロトコルのコネクションの優先順位情報を基に、所定のプロトコルのコネクション数を制御することで、前記ＯＲＢが動作する際に消費するリソースである所定のプロトコルのコネクションの利用数を最適化する、
ことを特徴とするコネクション管理方法。
【請求項２】
ＣＯＲＢＡ（Common  Object  Request  Broker  Architecture；共通オブジェクト・リクエスト・ブローカー・アーキテクチャ）システムのサーバが、クライアントから前記サーバのＯＲＢ（Object  Request  Broker）に対するＩＩＯＰ（Internet  Inter-ORB  Protocol）リクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から、メソッドの属性情報を蓄積する記憶手段を参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、
前記メソッドの属性情報に基に、コネクションに優先順位を付けてテーブル上で登録管理し、
前記ＩＩＯＰコネクションの優先順位情報を基に、ＩＩＯＰコネクション数を制御することで、前記ＯＲＢが動作する際に消費するリソースであるＩＩＯＰのコネクションの利用数を最適化する、
ことを特徴とするＩＩＯＰコネクション管理方法。
【請求項３】
所定の時間毎に、前記テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位に従い前記テーブルのエントリを検索し、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態のコネクションを切断するとともに前記テーブルから該当するコネクションのエントリを削除し、コネクション数を前記規定値以下とする、ことを特徴とする請求項２記載のＩＩＯＰコネクション管理方法。
【請求項４】
メソッドの属性情報を蓄積する第１の記憶手段と、
ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクションを管理するための優先順位テーブルを記憶する第２の記憶手段と、
クライアントからサーバのＯＲＢ（Object  Request  Broker）に対するＩＩＯＰリクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から前記第１の記憶手段を参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に、前記コネクションに優先順位を付けて、前記優先順位テーブルの更新又は前記優先順位テーブルへの新規登録を管理する手段と、
前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を越えた場合、前記優先順位テーブルから、所定の条件に該当するコネクションを選択して該コネクションを切断し、前記ＯＲＢが動作する際に消費するリソースであるＩＩＯＰのコネクションの利用数を最適化するよう制御する手段と、
を備えたことを特徴とするＩＩＯＰコネクション管理システム。
【請求項５】
所定の時間毎に、前記優先順位テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位に従い前記テーブルのエントリを検索して、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態にあるコネクションを切断するとともに前記テーブルから該当するコネクションのエントリを削除し、コネクション数を前記規定値以下とするように制御する手段を備えた、ことを特徴とする請求項４記載のＩＩＯＰコネクション管理システム。
【請求項６】
メソッドの属性情報を蓄積する第１の記憶手段と、
所定のプロトコルのコネクションを管理するための優先順位テーブルを記憶する第２の記憶手段と、
クライアントとのネットワーク通信接続を制御するネットワーク制御部と、
ＯＲＢ（Object Request Broker）と、
前記ＯＲＢと前記ネットワーク制御部との間に介挿されるコネクション管理手段と、
所定時間毎に前記コネクション管理手段に通知を行うタイマーと、
を備え、
前記コネクション管理手段が、クライアントからサーバのＯＲＢ（Object Request Broker）に対する所定のプロトコルのリクエストを受け取ると、前記リクエストからメソッド名情報を取得し、このメソッド名から前記第１の記憶手段を参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に、前記コネクションに、優先順位を付けて、前記優先順位テーブル上への更新又は登録を管理する手段と、
前記タイマーからの通知を受けて、所定の時間毎に、前記優先順位テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位に従い前記テーブルのエントリを検索し、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態のコネクションを切断するとともに前記テーブルから該当するコネクションのエントリを削除し、コネクション数を前記規定値以下とするように制御する手段と、
を備えたことを特徴とするサーバ装置。
【請求項７】
メソッドの属性情報を蓄積する第１の記憶手段と、
ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクションを管理するための優先順位テーブルを記憶する第２の記憶手段と、
クライアントとのネットワーク通信接続を制御するネットワーク制御部と、
ＯＲＢ（Object  Request  Broker）と、
前記ＯＲＢと前記ネットワーク制御部との間に介挿されるＩＩＯＰコネクション管理手段と、
所定時間毎に前記ＩＩＯＰコネクション管理手段に通知を行うタイマーと、
を備え、
前記ＩＩＯＰコネクション管理手段が、クライアントからサーバのＯＲＢ（Object  Request  Broker）に対するＩＩＯＰリクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から前記第１の記憶手段を参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に、前記コネクションに、優先順位を付けて、前記優先順位テーブル上への更新又は登録を管理する手段と、
前記タイマーからの通知を受けて、所定の時間毎に、前記優先順位テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位に従い前記テーブルのエントリを検索し、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態のコネクションを切断するとともに前記テーブルから該当するコネクションのエントリを削除し、コネクション数を前記規定値以下とするように制御する手段と、
を備えたことを特徴とするサーバ装置。
【請求項８】
ＯＲＢ（Object  Request  Broker）と、クライアントとの間のネットワーク通信を制御するネットワーク制御手段と、メソッドの情報を記憶する記憶手段と、ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクション管理手段と、前記クライアントのポート番号とクライアントのホスト名よりなるＩＩＯＰコネクションデータ、メソッド名、メソッド属性、ＴＴＬ（Time-To-Live）、リプライフラグ（応答フラグ）の各フィールドをエントリ毎に含む優先順位テーブルと、を備えたサーバと、クライアントとを備えたシステムであって、
前記サーバのネットワーク制御手段は、前記クライアントから接続要求を受けると、前記クライアント間にコネクションを張り、前記コネクションを経由して、前記クライアントからＣＯＲＢＡリクエストを受け取ると、ＩＩＯＰコネクション情報とＣＯＲＢＡリクエスト情報を前記ＩＩＯＰコネクション管理手段へ渡し、
前記ＩＩＯＰコネクション管理手段では、前記ネットワーク制御手段からの情報データを受け取り、前記クライアントからのメソッド名を抽出し、前記メソッド名をキーとして、前記メソッドの属性が非同期型であるか同期型であるかを前記記憶手段を検索して調べ、さらに、前記クライアントのポート番号とクライアントのホスト名をキーとして、前記優先順位テーブルを検索して、当該ＣＯＲＢＡリクエストが送信されたＩＩＯＰコネクションが登録されているか否かを調べ、
ＩＩＯＰコネクションが登録されている場合には、前記メソッドの属性に基づき前記優先順位テーブルの更新処理を行い、
前記ＩＩＯＰコネクションが登録されていない場合には、前記メソッドの属性に基づき前記優先順位テーブルに登録処理を行い、
さらに前記ＩＩＯＰコネクション管理手段は、前記優先順位テーブルの更新又は登録処理の完了の後に、前記ＩＩＯＰリクエストを前記ＯＲＢに渡し、
前記ＯＲＢは受け取ったＩＩＯＰリクエストに対してＣＯＲＢＡ仕様に準拠した処理を実行する、
ことを特徴とするＩＩＯＰコネクション管理システム。
【請求項９】
前記ＩＩＯＰコネクション管理手段が、前記メソッドの属性に基づき前記優先順位テーブルの更新処理を行うにあたり、
前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、前記優先順位テーブルの該当エントリのＴＴＬ値は変更せずに、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に移動し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」加算し、リプライフラグを継続（"CONTINUE"）に設定して、前記優先順位テーブルのキューの最後尾に移動するように制御する手段と、
前記ＩＩＯＰコネクション管理手段が、前記メソッドの属性に基づき前記優先順位テーブルの登録処理を行うにあたり、
前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、ＴＴＬ値を「０」に設定して、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に保存し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」に設定して、リプライフラグを継続（"CONTINUE"）に設定し、前記優先順位テーブルのキューの最後尾に保存する手段を備えた、ことを特徴とする請求項８記載のＩＩＯＰコネクション管理システム。
【請求項１０】
ＩＩＯＰリクエストで送られてきたメソッドの属性が同期通信の場合、前記ＯＲＢは処理結果をクライアントに返信するためにＩＩＯＰコネクション管理手段に処理結果を渡し、
前記ＩＩＯＰコネクション管理手段は、前記ＯＲＢから処理結果を受け取ると、その処理結果の元であるメソッドが登録されているエントリを前記優先順位テーブルから検索して、該当エントリのリプライフラグを完了（"DONE"）に変更した後に、前記ネットワーク制御手段を介して処理結果をクライアントへ送信し、
一定時間毎にＩＩＯＰコネクション管理手段へ割り込みを上げるタイマー手段から、割り込みを受け取ると、前記ＩＩＯＰコネクション管理手段は、前記優先順位テーブルのＴＴＬ値の変更処理を行い、その際、前記優先順位テーブルをキューの上位から順次に検索していき、前記優先順位テーブルの各ＴＴＬ値を「１」減算し、
次に、前記優先順位テーブルに登録されているエントリ数を読み出し、この値と、予め設定されている最大ＩＩＯＰコネクション数を比較し、前記エントリ数が前記最大ＩＩＯＰコネクション数よりも大の場合には、前記優先順位テーブルのキューの上位側から検索し、ＴＴＬ値が「０」であり、且つ、リプライフラグが完了（"DONE"）のエントリが存在する場合、該コネクションを切断するために、前記ネットワーク制御手段に対して、該当コネクションの切断処理を依頼し、前記優先順位テーブルから該当エントリを削除し、前記優先順位テーブルに登録されているエントリ数が最大ＩＩＯＰコネクション数以下とする、ことを特徴とする請求項８又は９に記載のＩＩＯＰコネクション管理システム。
【請求項１１】
（ａ）サーバにおいてネットワーク制御手段が、クライアントから接続要求を受けると、前記クライアント間にコネクションを張り、前記コネクションを経由して、前記クライアントからＣＯＲＢＡ（Common  Object  Request  Broker  Architecture）リクエストを受け取ると、ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクション情報とＣＯＲＢＡリクエスト情報を、前記ネットワーク制御手段とＯＲＢとの間に設けられたＩＩＯＰコネクション管理手段へ渡し、
（ｂ）前記ＩＩＯＰコネクション管理手段では、前記ネットワーク制御手段からの情報データを受け取り、前記クライアントからのメソッド名を抽出し、前記メソッド名をキーとして、前記メソッドの属性が非同期型であるか同期型であるかを、メソッド情報を記憶した記憶手段を検索して調べ、さらに、前記クライアントのポート番号とクライアントのホスト名をキーとして、クライアントのポート番号とクライアントのホスト名よりなるＩＩＯＰコネクションデータ、メソッド名、メソッド属性、ＴＴＬ（Time-To-Live）、リプライフラグの各フィールドをエントリ毎に含む優先順位テーブルを検索して、当該ＣＯＲＢＡリクエストが送信されたＩＩＯＰコネクションが登録されているか否かを調べ、
（ｃ）ＩＩＯＰコネクションが登録されている場合には、前記メソッドの属性に基づき前記優先順位テーブルの更新処理を行い、その際、前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、前記優先順位テーブルの該当エントリのＴＴＬ値は変更せずに、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に移動し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」加算して、リプライフラグを継続（"CONTINUE"）に設定し、前記優先順位テーブルのキューの最後尾に移動し、
（ｄ）前記ＩＩＯＰコネクションが登録されていない場合には、前記メソッドの属性に基づき前記優先順位テーブルに登録処理を行い、その際、
前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、ＴＴＬ値を「０」に設定して、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に保存し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」に設定して、リプライフラグを継続（"CONTINUE"）に設定して、前記優先順位テーブルのキューの最後尾に保存し、
（ｅ）前記ＩＩＯＰコネクション管理手段は前記優先順位テーブルの更新又は登録処理を完了の後に、前記ＩＩＯＰリクエストをＯＲＢ（Object  Request  Broker）に渡し、
（ｆ）前記ＯＲＢは受け取ったＩＩＯＰリクエストに対してＣＯＲＢＡ仕様に準拠した処理を実行する、
ことを特徴とするＩＩＯＰコネクション管理方法。
【請求項１２】
（ｇ）ＩＩＯＰリクエストで送られてきたメソッドの属性が同期通信の場合、前記ＯＲＢは処理結果をクライアントに返信するためにＩＩＯＰコネクション管理手段に処理結果を渡し、
（ｈ）前記ＩＩＯＰコネクション管理手段は、前記ORBから処理結果を受け取ると、その処理結果の元であるメソッドが登録されているエントリを前記優先順位テーブルから検索して、該当エントリのリプライフラグを完了（"DONE"）に変更した後に、前記ネットワーク制御手段を介して処理結果をクライアントへ送信し、
（ｉ）前記ＩＩＯＰコネクション管理手段は、一定時間毎に前記ＩＩＯＰコネクション管理手段へ割り込みを上げるタイマー手段から、割り込みを受け取ると、前記ＩＩＯＰコネクション管理手段は、前記優先順位テーブルのＴＴＬ値の変更処理を行い、その際、前記優先順位テーブルをキューの上位側から順次に検索していき、前記優先順位テーブルの各ＴＴＬ値を「１」減算し、
（ｊ）次に、前記優先順位テーブルに登録されているエントリ数を読み出し、この値と、予め設定されている最大ＩＩＯＰコネクション数を比較し、前記エントリ数が前記最大ＩＩＯＰコネクション数よりも大の場合には、前記優先順位テーブルのキューの上位側から検索し、ＴＴＬ値が「０」であり、且つ、リプライフラグが完了（"DONE"）のエントリが存在する場合、該コネクションを切断するために、前記ネットワーク制御手段に対して、該当コネクションの切断処理を依頼するとともに、前記優先順位テーブルから該当エントリを削除し、前記優先順位テーブルに登録されているエントリ数が最大ＩＩＯＰコネクション数以下とする、ことを特徴とする請求項１１記載のＩＩＯＰコネクション管理方法。
【請求項１３】
クライアントとネットワーク接続するサーバ装置が、
メソッドの属性情報を蓄積するレポジトリと、
予め定められた所定のプロトコルのコネクションを管理するための優先順位テーブルと、
クライアントとのネットワーク通信接続を制御するネットワーク制御部と、
ＯＲＢ（Object Request Broker）と、
前記ＯＲＢと前記ネットワーク制御部との間に、前記所定のプロトコルのコネクション管理機能と、
所定時間毎に前記コネクション管理機能に通知を行うタイマーと、
を備え、
前記コネクション管理機能が、
（ａ）前記クライアントから前記ＯＲＢ（Object Request Broker）に対する前記所定のプロトコルのリクエストを受け取ると、前記リクエストからメソッド名情報を取得し、このメソッド名から前記レポジトリを参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に、前記コネクションに、優先順位を付けて、前記優先順位テーブル上への更新又は登録を管理する処理と、
（ｂ）前記タイマーからの通知を受けて、所定の時間毎に、前記優先順位テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位の順に前記テーブルを検索し、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態のコネクションを切断するとともに前記テーブルから該当するコネクションを削除し、コネクション数を前記規定値以下とするように制御する処理と、
を具備し、
前記コネクション管理機能の前記（ａ）及び（ｂ）の処理を前記サーバ装置のコンピュータで実行させるプログラムを記録した記録媒体。
【請求項１４】
クライアントとネットワーク接続するサーバ装置が、
メソッドの属性情報を蓄積するレポジトリと、
ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクションを管理するための優先順位テーブルと、
クライアントとのネットワーク通信接続を制御するネットワーク制御部と、
ＯＲＢ（Object  Request  Broker）と、
前記ＯＲＢと前記ネットワーク制御部との間に、ＩＩＯＰコネクション管理機能と、
所定時間毎に前記ＩＩＯＰコネクション管理手段に通知を行うタイマーと、
を備え、
前記ＩＩＯＰコネクション管理機能が、
（ａ）前記クライアントから前記ＯＲＢ（Object  Request  Broker）に対するＩＩＯＰリクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から前記レポジトリを参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に、前記コネクションに、優先順位を付けて、前記優先順位テーブル上への更新又は登録を管理する処理と、
（ｂ）前記タイマーからの通知を受けて、所定の時間毎に、前記優先順位テーブルに登録されているコネクションの接続時間管理情報（Time-To-Live値）を更新管理するとともに、前記優先順位テーブルに登録されているコネクション数が予め定められた規定値を超えているとき、前記優先順位の順に前記テーブルを検索し、接続時間管理情報が時間超過状態を示しており、且つ処理完了状態のコネクションを切断するとともに前記テーブルから該当するコネクションを削除し、コネクション数を前記規定値以下とするように制御する処理と、
を具備し、
前記ＩＩＯＰコネクション管理機能の前記（ａ）及び（ｂ）の処理を前記サーバ装置のコンピュータで実行させるプログラムを記録した記録媒体。
【請求項１５】
ＯＲＢ（Object  Request  Broker）と、クライアントとの間のネットワーク通信を制御するネットワーク制御手段と、メソッドの情報を記憶する記憶手段と、ＩＩＯＰ（Internet  Inter-ORB  Protocol）コネクション管理手段と、前記クライアントのポート番号とクライアントのホスト名よりなるＩＩＯＰコネクションデータ、メソッド名、メソッド属性、ＴＴＬ（Time-To-Live）、リプライフラグを含む優先順位テーブルと、を備えたサーバと、クライアントとを備えたＣＯＲＢＡ（Common  Object  Request  Broker  Architecture）仕様のシステムであって、
（ａ）前記サーバにおいて前記ネットワーク制御手段は、前記クライアントから接続要求を受けると、前記クライアント間にコネクションを張り、前記コネクションを経由して、前記クライアントからＣＯＲＢＡ（Common  Object  Request  Broker  Architecture）リクエストを受け取ると、ＩＩＯＰコネクション情報とＣＯＲＢＡリクエスト情報を前記ＩＩＯＰコネクション管理手段へ渡し、
前記ＩＩＯＰコネクション管理手段において、
（ｂ）前記ネットワーク制御手段からの情報データを受け取り、前記クライアントからのメソッド名を抽出し、前記メソッド名をキーとして、前記メソッドの属性が非同期型であるか同期型であるかを、メソッド情報を記憶した記憶手段を検索して調べ、さらに、前記クライアントのポート番号とクライアントのホスト名をキーとして、クライアントのポート番号とクライアントのホスト名よりなるＩＩＯＰコネクションデータ、メソッド名、メソッド属性、ＴＴＬ、リプライフラグを含む優先順位テーブルを検索して、当該ＣＯＲＢＡリクエストが送信されたＩＩＯＰコネクションが登録されているか否かを調べ、
（ｃ）ＩＩＯＰコネクションが登録されている場合には、前記メソッドの属性に基づき前記優先順位テーブルの更新処理を行い、その際、前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、前記優先順位テーブルの該当エントリのＴＴＬ値は変更せずに、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に移動し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」加算して、リプライフラグを継続（"CONTINUE"）に設定し、前記優先順位テーブルのキューの最後尾に移動し、
（ｄ）前記ＩＩＯＰコネクションが登録されていない場合には、前記メソッドの属性に基づき前記優先順位テーブルに登録処理を行い、その際、
前記記憶手段から読み出したメソッドの属性が、非同期型の場合には、ＴＴＬ値を「０」に設定し、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に保存し、
前記記憶手段から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を「１」に設定して、リプライフラグを継続（"CONTINUE"）に設定して、前記優先順位テーブルのキューの最後尾に保存し、
（ｅ）前記優先順位テーブルの更新又は登録処理を完了の後に、前記ＩＩＯＰリクエストをＯＲＢに渡し、
前記ＯＲＢにおいて、
（ｆ）前記ＩＩＯＰコネクション管理手段から受け取ったＩＩＯＰリクエストに対してＣＯＲＢＡ仕様に準拠した処理を実行し、前記ＩＩＯＰリクエストで送られてきたメソッドの属性が同期通信の場合、前記ＯＲＢは処理結果をクライアントに返信するために前記ＩＩＯＰコネクション管理手段に処理結果を渡して前記クライアントに通知する、
前記（ａ）乃至（ｆ）の一連の処理を実行する前記ネットワーク制御手段、前記ＩＩＯＰコネクション管理手段、及び前記ＯＲＢを前記サーバで機能させるためのプログラムを記録した記録媒体。
【請求項１６】
請求項１５記載の記録媒体において、
（ｇ）前記ＩＩＯＰコネクション管理手段は、前記ＯＲＢから処理結果を受け取ると、その処理結果の元であるメソッドが登録されているエントリを前記優先順位テーブルから検索して、該当エントリのリプライフラグを完了（"DONE"）に変更した後に、前記ネットワーク制御手段を介して処理結果をクライアントへ送信し、
（ｈ）前記ＩＩＯＰコネクション管理手段は、一定時間毎に前記ＩＩＯＰコネクション管理手段へ割り込みを上げるタイマー手段から、割り込みを受け取ると、前記優先順位テーブルのＴＴＬ値の変更処理を行い、その際、前記優先順位テーブルをキューの上位から順次に検索していき、前記優先順位テーブルの各ＴＴＬ値を「１」減算し、
（ｉ）次に、前記ＩＩＯＰコネクション管理手段は、前記優先順位テーブルに登録されているエントリ数を読み出し、この値と、予め設定されている最大ＩＩＯＰコネクション数を比較し、前記エントリ数が前記最大ＩＩＯＰコネクション数よりも大の場合には、前記優先順位テーブルのキューの上位から検索し、ＴＴＬ値が「０」であり、且つ、リプライフラグが完了（"DONE"）のエントリが存在する場合、該コネクションを切断するために、前記ネットワーク制御手段に対して、該当コネクションの切断処理を依頼し、前記優先順位テーブルから該当エントリを削除し、前記優先順位テーブルに登録されているエントリ数が最大ＩＩＯＰコネクション数以下とする、
前記（ｇ）乃至（ｉ）の一連の処理を実行する前記ネットワーク制御手段、前記ＩＩＯＰコネクション管理手段、及び前記ＯＲＢを前記サーバで機能させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散オブジェクト指向システムに関し、特に、共通オブジェクトリクエストブローカーアーキテクチャ（Common  Object  Request  Broker  Architecture；ＣＯＲＢＡ）仕様のシステムにおけるリソース管理に好適とされるシステム及び方法並びに記録媒体に関する。
【０００２】
【従来の技術】
従来のＣＯＲＢＡを用いたシステムでは、ＣＯＲＢＡクライアントからＣＯＲＢＡサーバへＩＩＯＰ（Internet  Inter-ORB  Protocol）リクエストが発行された場合、クライアント側、サーバ側のいずれのＯＲＢ（Object  Request  Broker：オブジェクトリクエストブローカー）も、ＩＩＯＰコネクションについて特別な制御は行っていない。
【０００３】
一般的なＩＩＯＰコネクションの処理手順として、クライアントがＩＩＯＰリクエストを発行する前に、サーバに対してのＩＩＯＰコネクション接続処理と、クライアントが終了処理をする際のＩＩＯＰコネクション切断処理が行われるだけであり、一度接続されたＩＩＯＰコネクションは、クライアントが終了するまでは、接続されたままである。
【０００４】
【発明が解決しようとする課題】
上記した従来のシステムは次のような問題点を有している。
【０００５】
すなわち、ＩＩＯＰコネクションには、環境(OSやマシンスペックなど)にも依存しているが最大数というものがあり、小規模のシステムを構築する場合には特に問題はないが、大規模システムにおいてクライアント数が増加すると、サーバ側のＩＩＯＰコネクション数も増加するため、ＩＩＯＰコネクションの制御無しでは、不要なＩＩＯＰコネクションをそのままに利用しつづけることになり、ＩＩＯＰコネクションリソースを無駄使いすることになる。
【０００６】
なお、ＣＯＲＢＡシステムに関する刊行物として、例えば特開平８−３２８９８６号公報には、分散オブジェクトシステムにおいて、オブジェクト間の接続形成と終了をする方法と装置として、接続終了メッセージがクライアントによってサーバに対して送られたリクエストに対してサーバプロセスが以後は応答しない旨を表示し、サーバプロセスが過負荷状態又は申込超過状態であることの判定に応答して、接続が終了させられる構成が開示されている。また、特開平１０−１２４４７０号公報には、サービスを求めるクライアントからのヘッダーとメッセージを含むリクエストを処理するメソッドが、長いと判定された場合に該リクエストに含まれるメッセージを読み取る前に、サーバ側エンドポイントにおいて全ての接続を表示している接続リストから当該接続を削除し、該リクエストに含まれている前記メッセージを読み取った後に、前記削除された接続を前記接続リストへ加え戻すようにして、コンピューティングのオーバヘッドを図るメソッド、装置が開示されている。
【０００７】
しかしながら、上記各公報に記載されたシステムは、上記した問題点の認識を欠いており、上記問題点を解消するための具体的な手段については記載されていない。
【０００８】
したがって本発明は、上記問題点に鑑みてなされたものであって、その目的は、ＩＩＯＰコネクションを管理しＩＩＯＰコネクションリソースの有効利用を図るシステムを提供することにある。
【０００９】
【課題を解決するための手段】
前記目的を達成する本発明に係るシステムは、サーバが、クライアントから、前記サーバのＯＲＢに対するＩＩＯＰリクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から、メソッドの属性情報を蓄積するリポジトリを参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に前記コネクションに優先順位を付けて管理し、前記ＯＲＢが動作する際に消費するリソースであるＩＩＯＰのコネクションの利用数を最適化するものである。
【００１０】
本発明に係るシステムは、メソッドの属性情報を蓄積する記憶手段と、ＩＩＯＰコネクションを管理する管理テーブルと、サーバが、クライアントから、前記サーバのＯＲＢに対するＩＩＯＰリクエストを受け取ると、前記ＩＩＯＰリクエストからメソッド名情報を取得し、このメソッド名から前記リポジトリを参照して、前記メソッドが同期型、非同期型のいずれであるかを調べ、前記メソッドの属性情報を基に前記コネクションに、優先順位を付けて前記テーブル上への更新又は登録を管理する手段と、前記ＯＲＢが動作する際に消費するリソースであるＩＩＯＰのコネクションの利用数を最適化するよう制御する手段と、を備える。
【００１１】
【発明の実施の形態】
本発明の実施の形態について説明する。本発明は、ＣＯＲＢＡクライアントからＣＯＲＢＡサーバに対して発行されるメソッドをサーバ側で監視し、サーバ側に蓄積されている各メソッドが同期型又は非同期型を示す属性情報を基に、各コネクションに優先順位を付けることで、ＯＲＢが動作する際に消費するリソースである、ＩＩＯＰのコネクションの利用数を最適化する。
【００１２】
本発明の一実施の形態においては、図１を参照すると、ＯＲＢ（１３）とネットワーク制御部１１との間にＩＩＯＰコネクション管理手段（１２）を備えている。このＩＩＯＰコネクション管理手段（ＩＩＯＰコネクション管理エンジン１２）は、ＯＲＢ（１３）とネットワーク制御手段（１１）の間のＩＩＯＰリクエストを監視し、ＩＩＯＰリクエストの内容から、ＩＩＯＰコネクションの優先順位を決定し、この情報を基に、ＩＩＯＰコネクション数の制御する。ＯＲＢが消費するＩＩＯＰのコネクション数の最適化を可能にする。
【００１３】
本発明は、好ましい一実施の形態において、サーバ（１）が、ＯＲＢ（１３）と、クライアント（２）とのネットワーク通信を制御するネットワーク制御手段（１１）と、メソッドの情報を記憶する記憶手段（１４）と、ＩＩＯＰコネクション管理手段（１２）と、クライアントのポート番号とクライアントのホスト名よりなるＩＩＯＰコネクションデータ、メソッド名、メソッド属性、ＴＴＬ（Time-To-Live；生存時間）、リプライフラグ（応答フラグ）の各フィールドを一エントリあたり有する優先順位テーブル（１２１）と、を備え、サーバのネットワーク制御手段（１１）は、クライアント（２）から接続要求を受けると、クライアント間にコネクションを張り、該コネクションを経由して、該クライアント（２）からＣＯＲＢＡリクエストを受け取ると、ＩＩＯＰコネクション情報とＣＯＲＢＡリクエスト情報をＩＩＯＰコネクション管理手段（１２）へ渡す。
【００１４】
ＩＩＯＰコネクション管理手段（１２）はネットワーク制御手段（１１）からの情報データを受け取り、クライアント（２）からのメソッド名を抽出し、前記メソッド名をキーとして、前記メソッドの属性が非同期型であるか同期型であるかを記憶手段（１４）を検索して調べ、さらに、クライアント（２）のポート番号とクライアントのホスト名をキーとして、優先順位テーブル（１２１）を検索して、当該ＣＯＲＢＡリクエストが送信されたＩＩＯＰコネクションが登録されているか否かを調べる。
【００１５】
ＩＩＯＰコネクション管理手段（１２）は、検索の結果、ＩＩＯＰコネクションが登録されている場合には、前記メソッドの属性に基づき優先順位テーブル（１２１）の更新処理を行い、前記ＩＩＯＰコネクションが登録されていない場合には、前記メソッドの属性に基づき優先順位テーブル（１２１）に登録処理を行う。
【００１６】
ＩＩＯＰコネクション管理手段（１２１）は優先順位テーブル（１２１）の更新又は登録処理を完了の後に、ＩＩＯＰリクエストをＯＲＢ（１３）に渡し、ＯＲＢは受け取ったＩＩＯＰリクエストに対してＣＯＲＢＡ仕様に準拠した処理を実行する。
【００１７】
ＩＩＯＰコネクション管理手段（１２）は、メソッドの属性に基づき前記優先順位テーブルの更新処理を行うにあたり、記憶手段（１４）から読み出したメソッドの属性が、非同期型の場合には、優先順位テーブル（１２１）の該当エントリのＴＴＬ値は変更せずに、リプライフラグを完了（"DONE"）に設定して、前記優先順位テーブルのキューの最後尾に移動し、記憶手段（１４）から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を１加算処理をして、リプライフラグを継続（"CONTINUE"）に設定して、優先順位テーブル（１２１）のキューの最後尾に移動するように制御する。
【００１８】
またＩＩＯＰコネクション管理手段（１２）は、メソッドの属性に基づき前記優先順位テーブルの登録処理を行うにあたり、記憶手段（１４）から読み出したメソッドの属性が、非同期型の場合には、ＴＴＬ値を０に設定して、リプライフラグを完了（"DONE"）に設定して、優先順位テーブル（１２１）のキューの最後尾に保存し、記憶手段（１４）から読み出したメソッドの属性が、同期型の場合には、ＴＴＬ値を１に設定して、リプライフラグを継続（"CONTINUE"）に設定して、優先順位テーブル（１２１）のキューの最後尾に保存する。
【００１９】
ＯＲＢ（１３）は、ＩＩＯＰリクエストで送られてきたメソッドの属性が同期通信の場合、処理結果をクライアントに返信するためにＩＩＯＰコネクション管理手段（１２）に処理結果を渡す。
【００２０】
ＩＩＯＰコネクション管理手段（１２）は、ＯＲＢから処理結果を受け取ると、その処理結果の元であるメソッドが登録されているエントリを優先順位テーブル（１２１）から検索して、該当エントリのリプライフラグを完了（"DONE"）に変更した後に、ネットワーク制御手段（１１）を介して処理結果をクライアントへ送信する。ＩＩＯＰコネクション管理手段（１２）は、一定時間毎にＩＩＯＰコネクション管理手段（１２）へ割り込みを上げるタイマー手段（１５）から、割り込みを受け取ると、優先順位テーブル（１２１）のＴＴＬ値の変更処理を行い、その際、優先順位テーブル（１２１）をキューの上位から順次に検索していき、優先順位テーブル（１２１）の各ＴＴＬ値を１減算し、次に、前記優先順位テーブルに登録されているエントリ数を読み出し、この値と、予め記憶部（１２２）に設定されている最大ＩＩＯＰコネクション数を比較し、前記エントリ数が前記最大ＩＩＯＰコネクション数よりも大の場合には、優先順位テーブル（１２１）のキューの上位から検索し、ＴＴＬ値が０で、かつ、リプライフラグが完了（"DONE"）のエントリが存在する場合、該コネクションを切断するために、ネットワーク制御手段（１１）に対して、該当コネクションの切断処理を依頼し、前記優先順位テーブルから該当エントリを削除し、優先順位テーブル（１２１）に登録されているエントリ数が最大ＩＩＯＰコネクション数以下とする。
【００２１】
【実施例】
上記した本発明の実施の形態について更に詳細に説明すべく、本発明の実施例について図面を参照して説明する。図１は、本発明の一実施例の構成を示す図である。図１を参照すると、本発明の一実施例において、ユーザから要求された処理を実行するためのメソッドを発行するクライアント２と、クライアント２から発行されたメソッドを処理するサーバ１と、を備え、サーバ１は、ネットワーク制御部１１と、ＩＩＯＰコネクション管理エンジン１２と、オブジェクト・リクエスト・ブローカー(ＯＲＢ)１３と、インターフェース・リポジトリ１４と、タイマー１５と、を備えている。
【００２２】
ネットワーク制御部１１は、ＯＳ（オペレーティングシステム）レベルでサーバ１に接続するネットワーク機器の制御を行い、サーバ・クライアント間のコネクションに関する接続・切断処理、データの送受信を制御する。
【００２３】
ＩＩＯＰコネクション管理エンジン１２は、サーバ・クライアント間のＩＩＯＰコネクションを監視し、ネットワークを経由して送信されるＩＩＯＰリクエストと、インターフェース・リポジトリ１４に蓄積されている情報を基に、ＩＩＯＰコネクションの最適化処理を行う。ＩＩＯＰコネクション管理エンジン１２は、優先順位テーブル１２１と最大ＩＩＯＰコネクション数蓄積部１２２を備える。
【００２４】
優先順位テーブル１２１は、図７に示すように、ＩＩＯＰコネクションデータ(クライアント側のポート（port）番号とクライアントのホスト名)、メソッド名、メソッドの属性、ＴＴＬ時間、リプライ（rely）・フラグの情報を記憶している。
【００２５】
最大ＩＩＯＰコネクション数蓄積部１２２には、サーバ１がシステム的に利用できるＩＩＯＰコネクション数の最大値が格納されている。
【００２６】
ＯＲＢ１３は、ネットワーク制御部１１とＩＩＯＰコネクション管理エンジン１２を経由して、サーバ・クライアント間でやりとりされるＣＯＲＢＡリクエストを処理する。
【００２７】
インターフェース・リポジトリ１４は、クライアント２から発行されるメソッドの情報をと蓄積する記憶装置である。
【００２８】
インターフェース・リポジトリ１４に蓄積されているメソッドの属性情報の種類としては、非同期型、同期型の２つがある。
【００２９】
このうち非同期型は、クライアントから発行されるＣＯＲＢＡリクエストに対してサーバの処理結果の応答を必要としない。
同期型は、クライアントから発行されるＣＯＲＢＡリクエストに対してサーバの処理結果の応答を必要とする。
【００３０】
タイマー１５は、一定時間ごとに、ＩＩＯＰコネクション管理エンジン１２へ割り込みを上げる。
【００３１】
図２乃至図６は、本発明の一実施例の処理を説明するための流れ図である。図１乃至図６を参照して、本発明の一実施例の動作について説明する。
【００３２】
サーバ１のネットワーク制御部１１は、クライアント２から接続要求を受けると、クライアント２間にコネクションを張る。そのコネクションを経由して、ＣＯＲＢＡリクエストを受け取ると、そのデータを上位のＩＩＯＰコネクション管理エンジン１２へＣＯＲＢＡリクエストを渡す(図２のステップＡ１)。
【００３３】
ＩＩＯＰコネクション管理エンジン１２はそのデータからクライアント１からのメソッド名に関するデータを取り出す(図２のステップＡ２)。
【００３４】
ＩＩＯＰコネクション管理エンジン１２は取り出したメソッド名をキーに、そのメソッドの属性が非同期型であるか同期型であるかをインターフェース・リポジトリ１４に蓄積されているメソッドの属性を読み出ことで調べる(図２のステップＡ３)。
【００３５】
ＩＩＯＰコネクション管理エンジン１２は、優先順位テーブル１２１を検索して(図２のステップＡ４)、クライアントのポート番号とクライアントのホスト名をキーとして、当該ＣＯＲＢＡリクエストが送信されたＩＩＯＰコネクションが登録されているか否かを調べる(図２のステップＡ５)。
【００３６】
ＩＩＯＰコネクションが登録されている場合には、優先順位テーブル１２１の更新処理を行う(図３のステップＢ１、Ｂ２)。
【００３７】
インターフェース・リポジトリ１４から読み出したメソッドの属性が、非同期通信型の場合には、ＴＴＬ値は変更せずに、リプライ（reply）フラグを"DONE"（完了）に設定して、優先順位テーブル１２１のキューの最後尾に移動する(図３のステップＢ３)。
【００３８】
インターフェース・リポジトリ１４から読み出したメソッドの属性が同期通信型の場合には、ＴＴＬ値を１加算処理をして、リプライ（reply）フラグを"CONTINUE"（継続）に設定して、優先順位テーブル１２１のキューの最後尾に移動する(図３のステップＢ４)。
【００３９】
一方、図２のステップＡ５の判定で、コネクションが登録されていない場合には、優先順位テーブル１２１に登録処理を行う(図４のステップＣ１)。
【００４０】
インターフェース・リポジトリ１４から読み出したメソッドの属性が非同期通信型の場合には、ＴＴＬ値を0に設定して、リプライ（reply）フラグを"DONE"に設定して、優先順位テーブル１２１のキューの最後尾に保存する(図４のステップＣ２)。
【００４１】
インターフェース・リポジトリ１４から読み出したメソッドの属性が同期通信型の場合には、ＴＴＬ値を１に設定して、リプライ（reply）フラグを"CONTINUE"に設定して、優先順位テーブル１２１のキューの最後尾に保存する(図４のステップＣ３)。
【００４２】
ＩＩＯＰコネクション管理エンジン１２は、優先順位テーブル１２１の登録・更新作業を完了の後に、ＩＩＯＰリクエストをＯＲＢ１３に渡す。
【００４３】
ＯＲＢ１３は受け取ったＩＩＯＰリクエストに対してＣＯＲＢＡ仕様に準拠した処理を実行する。
【００４４】
ＩＩＯＰリクエストで送られてきたメソッドの属性が同期通信の場合、ＯＲＢ１３は処理結果をクライアント１に返信するためにＩＩＯＰコネクション管理エンジン１２に処理結果を渡す。
【００４５】
ＩＩＯＰコネクション管理エンジン１２はＯＲＢ１３から処理結果を受け取ると、その処理結果の元であるメソッドが登録されているエントリを優先順位テーブル１２１から検索して、該当エントリのリプライ（reply）フラグを"DONE"に変更した後に、ネットワーク制御部１１に処理結果を渡す。
【００４６】
ネットワーク制御部１１は処理結果をクライアント２へ送信する。
【００４７】
タイマー１５は一定時間毎にＩＩＯＰコネクション管理エンジン１２へ割り込みを上げ、ＩＩＯＰコネクション管理エンジン１２はタイマー１５からの割り込みを受け取ると、次の２つの処理を行う。
【００４８】
はじめに優先順位テーブル１２１のＴＴＬ値の変更処理を行う。
【００４９】
ＩＩＯＰコネクション管理エンジン１２は優先順位テーブル１２１をキューの上位から順次に検索していき、優先順位テーブル１２１の各ＴＴＬ値を１減算する(図５のステップＤ１)。
【００５０】
次に、切断依頼処理を行う。
【００５１】
ＩＩＯＰコネクション管理エンジン１２は、優先順位テーブル１２１に登録されているエントリ数を読み出して(図５のステップＤ２)、この値と最大ＩＩＯＰコネクション数蓄積部１２２の値を比較する(図５のステップＤ３)。
【００５２】
優先順位テーブル１２１に登録されているエントリ数が最大ＩＩＯＰコネクション数蓄積部１２２の値を下まわっている場合には、処理を終了する。
【００５３】
優先順位テーブル１２１に登録されているエントリ数が最大ＩＩＯＰコネクション数蓄積部１２２の値より大きい場合には、ＩＩＯＰコネクション管理エンジン１２は優先順位テーブル１２１のキューの上位から検索を行い(図６のステップＥ２)、ＴＴＬ値が0で、かつ、リプライ（reply）フラグが"DONE"であるエントリが存在する場合には(図６のステップＥ３のYes)、そのコネクションを切断するために、ネットワーク制御部１３に対して、該当コネクションの切断処理を依頼した後(図６のステップＥ４)、該当エントリの削除処理を実行する(図６のステップＥ５)。
【００５４】
一連の処理を優先順位テーブル１２１に登録されているエントリ数が最大ＩＩＯＰコネクション数蓄積部１２２の値以下になるか(図６のステップＥ６)、優先順位テーブル１２１を全て検索し終えるまで繰り返す。
【００５５】
【発明の効果】
以上説明したように、本発明によれば下記記載の効果を奏する。
【００５６】
本発明の第１の効果は、ＯＲＢに接続されるＩＩＯＰコネクションの優先順位を一意に決定し、ＩＩＯＰコネクションを管理することができる、ということである。
【００５７】
その理由は、本発明においては、クライアントからサーバに対してＣＯＲＢＡリクエストが送られてきた際に、サーバ側で保持している各メソッドの特徴を示す属性情報を利用して各ＩＩＯＰコネクションの接続状態の重要度を決定を行う構成としているためである。
【００５８】
本発明の第２の効果は、システムが有する最大コネクション数の範囲内でＩＩＯＰコネクションを有効に活用できる、ということである。
【００５９】
その理由は、本発明においては、優先順位を基に不要なＩＩＯＰコネクションを一意に決定して切断することで、システムが有する最大コネクション数の範囲内でＩＩＯＰコネクションを有効に活用できるようにしたためである。
【図面の簡単な説明】
【図１】本発明の一実施例の構成を示すブロック図である。
【図２】本発明の一実施例の処理手順を示すフローチャートである。
【図３】本発明の一実施例の処理手順を示すフローチャートである。
【図４】本発明の一実施例の処理手順を示すフローチャートである。
【図５】本発明の一実施例の処理手順を示すフローチャートである。
【図６】本発明の一実施例の処理手順を示すフローチャートである。
【図７】本発明の一実施例における優先順位テーブルの構成の一例を示す図である。
【符号の説明】
１  サーバ
２  クライアント
１１  ネットワーク制御部
１２  ＩＩＯＰコネクション管理エンジン
１３  ＯＲＢ（オブジェクト・リクエスト・ブローカー）
１４  インタフェース・リポジトリ
１５  タイマー
１２１  優先順位テーブル
１２２  最大ＩＩＯＰコネクション数蓄積部
【図１】
0003707326.tif 000002
【図２】
0003707326.tif 000003
【図３】
0003707326.tif 000004
【図４】
0003707326.tif 000005
【図５】
0003707326.tif 000006
【図６】
0003707326.tif 000007
【図７】
0003707326.tif 000008