(57)【要約】【課題】  従来の技術では、クライアントと複数のサーバを含めた一連のセッション維持方法に対する配慮が無いため、分散オブジェクト環境において従来技術の方法で実現しようとすると、クライアントとサーバ、及びサーバ間で各々セッションを維持することになり、実装の複雑さと障害回復手順の難しさが挙げられる。【解決手段】  クライアントから中間サーバを経由して末端サーバまでの間、セッション維持を意識しているサーバのみ特定のサーバで処理するためのインタフェースとしてセッション維持情報を設ける。セッション維持情報は、サーバから返るときにサーバがセッションの維持が必要とする付加する。この情報に基づいて中間サーバから次のサーバを呼び出すときに、サーバ選択手段によりセッション維持情報を参照して、特定のサーバを呼び出すか否か判断する。【選択図】  図１
2006059321.tif 000002
【特許請求の範囲】
【請求項１】
同一サービスを提供する複数のサーバを有し、クライアント、中間サーバ、及び末端サーバのように三階層以上の計算機から成る分散オブジェクト環境におけるセッション維持方法において、
第一の計算機から呼び出された第二の計算機が、第三の計算機を呼び出すとき、第二の計算機は少なくともサーバ名、サーバ位置情報、セッション状態の一つを含むセッション維持情報を参照し、指定された第三の計算機を呼び出すことを特徴とする分散オブジェクト環境におけるセッション維持方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散オブジェクト環境におけるセッション維持方法である。
【背景技術】
【０００２】
従来のセッション維持方法としては、メインフレームと端末、及びワールド・ワイド・ウェブ（ＷＷＷ）サーバとクライアントのＷＷＷブラウザなどに代表されるような多対一のクライアント・サーバシステムで実現されているように、一つのサーバでセッション維持を管理していた。
【０００３】
例えば、ＷＷＷサーバとクライアント間では、特開平１０−２５７０４８で示されるように、初回の認証時にユーザＩＤとパスワードをテーブルに保存しておき、クッキーの識別子にそのテーブルのポインタを設定することで,以降のセッション維持中にはポインタを使用して、再認証を不要とするとともに継続の問合わせに対する応答を返す。
【０００４】
【特許文献１】特開平１０−２５７０４８公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術では、クライアントと複数のサーバを含めた一連のセッション維持方法に対する配慮が無いため、分散オブジェクト環境において従来技術の方法で実現しようとすると、クライアントとサーバ、及びサーバ間で各々セッションを維持することになり、実装の複雑さと障害回復手順の難しさが挙げられる。
【０００６】
前記のＷＷＷサーバとクライアント間でのセッション維持方法では、一つのクライアントからセッション維持中の一つのＷＷＷサーバに直接要求を出すことが前提であり、また一つのクライアントからの一回の要求で複数の複数のＷＷＷサーバとのセッション維持を行うことができない。従って、上記技術を分散オブジェクト環境に適用する場合,クライアントとセッションを維持するサーバを直接呼び出すことができないときには適用できない。また,クライアントと複数のサーバ間で同時に複数のセッションを維持することができない。なお、上記技術を用いてクライアントからセッション維持中のサーバまでの全ての経路を構成するクライアントと複数のサーバ間で各々セッションを維持することも考えられるが、特定する必要の無いサーバまで固定化して経路が一つに特定されることから、障害発生時に例えば別の経路を使用するなどの柔軟な回復手段が図れない。
【課題を解決するための手段】
【０００７】
クライアントから末端サーバまでの間、セッション維持を意識しているサーバのみ特定のサーバで処理するためのインタフェースとして、複数のサーバとセッションを維持できるように複数のレコードから構成されるセッション維持情報を設け、クライアントとサーバ間で送受信する入出力情報中に保持する手段を設ける。クライアントからの要求時に各々処理する複数のサーバが各々セッションの維持が必要だと判断したときに自サーバのセッション維持情報を付加するセッション維持情報追加手段と、セッションの維持が不要になったときに自サーバのセッション維持情報を削除するセッション維持情報削除手段を設ける。クライアントからのある要求時にセッション維持情報が返された場合にはこれを保存する手段と、次回の要求時に先に返されたセッション維持情報を入力情報に付加する手段を設ける。この情報に基づいて中間サーバから次のサーバを呼び出すときにセッション維持情報を参照するためのサーバ選択手段を設け、特定のサーバを呼び出すか否か判断する。
【発明の効果】
【０００８】
本発明によれば、分散オブジェクト環境で高信頼性のセッション維持を容易に実現できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明による分散オブジェクト環境におけるセッション維持方法の一実施例を図面により詳細に説明する。
【００１０】
図１は本発明が適用された分散オブジェクト環境の構成を示すブロック図、図２は本発明の一実施例であるセッション維持情報９の構成例を説明する図、図３は中間サーバ２のサーバ選択手段４を使用した次サーバの呼出し処理を説明するフローチャート、図４は末端サーバ３の処理を説明するフローチャート、図５は中間サーバ２又は末端サーバ３の構成を示すサーバ１３の構成例を説明する図、図６はサーバ選択手段４の処理を説明するフローチャート、図７はセッション維持情報追加手段１４の処理を説明するフローチャート、図８はセッション維持情報削除手段１５の処理を説明するフローチャートである。図１において、１はクライアント、２は中間サーバ、３は末端サーバ、５はクライアントの要求、６はクライアントの要求５に対する末端サーバの応答、７はクライアントのセッション維持中要求、８はクライアントのセッション維持中要求７に対する末端サーバの応答、９はセッション維持情報である。図２において、１０はサーバ名、１１はサーバ位置情報、１２は継続中情報である。図５において、１３は中間サーバ２又は末端サーバ３の構成を示すサーバ、４はサーバ選択手段、１４はセッション維持情報追加手段、１５はセッション維持情報削除手段である。
【００１１】
本発明が適用される分散オブジェクト環境は、図１と図５に示すように、複数のクライアント１と、複数の中間サーバ２と、複数の末端サーバ３と、クライアントからの始めての要求５と、クライアントの要求５に対する末端サーバの応答６と、クライアントからのセッション維持中の要求７と、クライアントからのセッション維持中の要求７に対する末端サーバの応答８と、セッション維持情報９と、中間サーバ２又は末端サーバ３を示すサーバ１３中のサーバ選択手段４と、セッション維持情報追加手段１４と、セッション維持情報削除手段１５で構成される。
【００１２】
セッション維持情報９は、図２に示すように、セッション維持中であるサーバのサーバ名１０と、当該サーバが存在するホストやアドレスなどを有するサーバ位置情報１１と、継続を開始するために必要なサーバ情報である継続中情報１２で構成される。
【００１３】
本発明が適用される分散オブジェクト環境におけるセッション維持方法の処理の流れを、図１と図２と図５を用いて説明する。クライアント１は、システムから中間サーバ２の位置情報を取得して、任意の中間サーバ２を呼び出す。クライアント１からセッション維持情報９の無い要求を受け取った中間サーバ２は、任意の末端サーバ３を呼び出す（５）。要求を処理した末端サーバ３は、セッション維持が必要な処理の場合に末端サーバ３のセッション維持情報９をセッション維持情報追加手段１４で生成し入出力情報に付加してクライアント１に返す（６）。応答を受け取ったクライアント１はセッション維持情報９を保存しておき、次の要求の入力情報付加して要求する。この場合、前に呼び出した中間サーバ２、又は再びシステムから位置情報を取得した中間サーバ２の何れかを呼び出す。この時、呼び出した中間サーバ２が障害などの要因により、呼出しに失敗した場合には、他の中間サーバ２を呼び出して再実行が可能である。クライアント１からセッション維持情報９の有る要求を受け取った中間サーバ２は、サーバ選択手段４により入出力情報中のセッション維持情報９を参照して、次に呼び出す末端サーバ３がセッション維持中であるか否かサーバ名１０を参照して、該当した場合にはサーバ位置情報１１を使用して特定の末端サーバ３を呼び出す。この時、呼び出した末端サーバ３が障害などの要因により、呼出しに失敗した場合には、他の末端サーバ３を呼び出して再実行が可能である。末端サーバ３は、自サーバがセッション維持中で呼び出されたか否かを、サーバ選択手段４により入力情報中のセッション維持情報９のサーバ名１０とサーバ位置情報１１を参照して、該当した場合には更に継続中情報１２を参照して、先に継続中として中断していた処理を続行する（７）。処理が終了した末端サーバ３は、セッション維持が不要な場合、セッション維持情報削除手段１５により入出力情報中の末端サーバ３が生成したセッション維持情報９を削除してクライアント１に応答を返す（８）。
【００１４】
次に、前述のように構成される本発明の一実施例において、中間サーバ２の処理終了後にサーバ選択手段４によるサーバ選択処理を図３に示すフローチャートを参照して説明する。
【００１５】
始めに、クライアント１からの要求にセッション維持情報９が有るか否かをサーバ選択手段４を使用して判定する（ステップ１００）。
【００１６】
セッション維持情報９が有り、呼び出すサーバ名１０が有る場合には、サーバ位置情報１１を使用して末端サーバ３を呼び出す（ステップ１１０、１２０）。
【００１７】
ステップ１００でセッション維持情報９が無い場合、又はステップ１１０で呼び出すサーバ名１０が無い場合には、次に呼び出す末端サーバ３の位置情報をシステムから取得して、末端サーバ３を呼び出す（ステップ１３０）。
【００１８】
次に、前述のように構成される本発明の一実施例において、末端サーバ３の処理を図４に示すフローチャートを参照して説明する。
【００１９】
始めに、クライアント１からの要求にセッション維持情報９が有るか否かをサーバ選択手段４を使用して判定する（ステップ２００）。
【００２０】
セッション維持情報９が有る場合、自サーバ名が有るか否かを判定する（ステップ２１０）。
【００２１】
自サーバ名が有る場合は、サーバ位置情報１１が自サーバの位置情報と一致しているか否かを判定して、一致していないときにはサーバ位置情報１１のサーバを呼び出す（ステップ２３０、２４０）。
【００２２】
セッション維持情報９が無い場合、又はサーバ名１０に自サーバ名が無い場合は、新規の要求として新しい資源を確保して処理を実行する（ステップ２２０）。
【００２３】
自サーバ名が有りかつサーバ位置情報１１が自サーバの位置情報と一致している場合は、継続中情報１２を参照して、確保済みの資源を使用して継続処理を実行する（ステップ２５０）。
【００２４】
自サーバで処理を実行し終了するとき、セッション維持が必要であるか否かを判断して（ステップ２６０）、必要であればセッション維持情報追加手段１４を使用して自サーバのセッション維持情報を入出力情報に付加し（ステップ２７０）、必要でない場合はセッション維持情報削除手段１５を使用して自サーバのセッション維持情報を入出力情報から削除する（ステップ２８０）。
【００２５】
次に、前述のように構成される本発明の一実施例において、サーバ選択手段４の処理を図６に示すフローチャートを参照して説明する。
【００２６】
セッション維持情報９が存在するか否か判定する（ステップ３００）。
【００２７】
指定されたサーバ名がセッション維持情報９の中に存在するか検索する（ステップ３１０）。
【００２８】
指定されたサーバ名が存在するか否か判定して（ステップ３２０）、存在する場合はサーバ名１０に対応するサーバ位置情報１１と継続中情報１２を返す（ステップ３３０）。
【００２９】
次に、前述のように構成される本発明の一実施例において、セッション維持情報追加手段１４の処理を図７に示すフローチャートを参照して説明する。
【００３０】
指定されたサーバ名がセッション維持情報９の中に存在するか検索する（ステップ４００）。
【００３１】
指定されたサーバ名が存在するか否か判定して（ステップ４１０）、存在する場合はサーバ名１０に対応する継続中情報１２を指定された継続中情報で更新し（ステップ４２０）、存在しない場合はセッション維持情報９中にエントリを一つ追加して指定されたサーバ名１０、サーバ位置情報１１、及び継続中情報１２を設定する（ステップ４３０）。
【００３２】
次に、前述のように構成される本発明の一実施例において、セッション維持情報削除手段１５の処理を図８に示すフローチャートを参照して説明する。
【００３３】
指定されたサーバ名がセッション維持情報９の中に存在するか検索する（ステップ５００）。
【００３４】
指定されたサーバ名が存在するか否か判定して（ステップ５１０）、存在する場合はサーバ名１０に対応するエントリをセッション維持情報９から削除する（ステップ５２０）。
【００３５】
更に、本発明の一実施例では、セッション維持中の末端サーバ３は、クライアント１の障害などにより一定の時間が経過しても継続の要求が発行されない場合、自動的に継続中の状態を解放して、他のクライアント１からの要求を処理可能とする。
【図面の簡単な説明】
【００３６】
【図１】本発明が適用された分散オブジェクト環境の構成を示すブロック図である。
【図２】本発明の一実施例であるセッション維持情報９の構成例を説明する図である。
【図３】中間サーバ２のサーバ選択手段４を使用した次サーバの呼出し処理を説明するフローチャートである。
【図４】末端サーバ３の処理を説明するフローチャートである。
【図５】本発明の一実施例である中間サーバ２又は末端サーバ３を示すサーバ１３の構成例を説明する図である。
【図６】サーバ選択手段４の処理を説明するフローチャートである。
【図７】セッション維持情報追加手段１４の処理を説明するフローチャートである。
【図８】セッション維持情報削除手段１５の処理を説明するフローチャートである。
【符号の説明】
【００３７】
１…クライアント、
２…中間サーバ、
３…末端サーバ、
４…サーバ選択手段、
５…クライアントの要求、
６…クライアントの要求５に対する末端サーバの応答、
７…クライアントのセッション維持中要求、
８…クライアントのセッション維持中要求７に対する末端サーバの応答、
９…セッション維持情報、
１０…サーバ名、
１１…サーバ位置情報、
１２…継続中情報、
１３…サーバ、
１４…セッション維持情報追加手段、
１５…セッション維持情報削除手段、
【図１】
2006059321.tif 000003
【図２】
2006059321.tif 000004
【図３】
2006059321.tif 000005
【図４】
2006059321.tif 000006
【図５】
2006059321.tif 000007
【図６】
2006059321.tif 000008
【図７】
2006059321.tif 000009
【図８】
2006059321.tif 000010