(57)【特許請求の範囲】
【請求項１】
ネットワークを介して情報処理サービスを提供する第１の情報処理装置と前記情報処理サービスを受ける第２の情報処理装置との間に設けられ、前記情報処理サービスに対する付加的なサービスである中間サービスを提供する中間装置であって、
前記情報処理サービスのために前記第１の情報処理装置と前記第２の情報処理装置の間に確立されているセッションの状態を維持するのに必要な状態情報を該第１の情報処理装置または該第２の情報処理装置から取得する状態情報取得手段と、
前記状態情報に基づいて、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記情報処理サービスのデータを、該データに前記中間サービスを適用して転送するための転送ルールを作成する中間サービス管理手段と、
前記転送ルールに従い、前記第１の情報処理装置と前記第２の情報処理装置の間に確立されていた既存の前記セッションの状態を、自身と前記第２の情報処理装置との間で維持しつつ、自身と前記第１の情報処理装置の間に新たなセッションを確立し、前記既存のセッションと前記新たなセッションを用いて前記データを転送する転送制御手段とを有する中間装置。
【請求項２】
前記状態情報取得手段は、前記状態情報の一部として、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記セッションに固有のセッション情報を取得するセッション監視手段を有する、請求項１記載の中間装置。
【請求項３】
前記状態情報取得手段は、前記状態情報の一部として、前記第１の情報処理装置または前記第２の情報処理装置に問い合わせて前記情報処理サービスに固有のサービス固有情報を取得する情報収集手段を有する、請求項１記載の中間装置。
【請求項４】
前記状態情報取得手段は、前記第１の情報処理装置上のアクセス対象の各々を特定するために既に付与されているアクセス対象識別情報を複数の前記アクセス対象について前記第１の情報処理装置または前記第２の情報処理装置に問合せて、得られた複数の該アクセス対象識別情報に共通する規則性を抽出することにより、前記アクセス対象を有する第１の情報処理装置を識別するための装置識別子を前記サービス固有情報の一部として取得する、請求項３記載の中間装置。
【請求項５】
前記転送制御手段は、前記第１の情報処理装置と前記第２の情報処理装置の間の既存のセッションのデータは前記中間サービスを適用せずにそのまま転送する動作モードと、前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立が要求されると、前記第２の情報処理装置および前記第１の情報処理装置の双方とセッションを確立し、該セッションを用いて前記情報処理サービスのデータに前記中間サービスを適用して該データを転送する動作モードとを有している、請求項１記載の中間装置。
【請求項６】
前記状態情報取得手段は、前記第１の情報処理装置および前記第２の情報処理装置に前記セッションを一旦無効にして再確立させるための命令を発する解除制御手段を有し、該命令によりセッションが再確立される過程で前記状態情報を取得する、請求項１記載の中間装置。
【請求項７】
前記中間サービスの内容は、予めオペレータにより登録されている、請求項１記載の中間装置。
【請求項８】
前記情報処理サービスは前記第１の情報処理装置上のリソースに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、前記第２の情報処理装置から前記第１の情報処理装置上の前記リソースに対するアクセスを前記中間装置で読み換えてアクセス先を変換するサービスである、請求項７記載の中間装置。
【請求項９】
前記情報処理サービスは前記第１の情報処理装置上のＷＥＢページに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、複数の前記第１の情報処理装置による前記情報処理サービスを統合して前記第２の情報処理装置に提供するサービスである、請求項７記載の中間装置。
【請求項１０】
前記中間サービスの提供を終了するとき、前記転送制御手段は、
前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立を要求されると、前記第２の情報処理装置と前記第１の情報処理装置の間のデータをそのまま転送することにより、前記中間サービスの適用対象外として前記第１の情報処理装置と前記第２の情報処理装置の間で直接にセッションを確立させ、
既に提供されている前記情報処理サービスについては、自身と前記第１の情報処理装置の間のセッションおよび自身と前記第２の情報処理装置の間のセッションを用いて、前記中間サービスを適用したデータを転送することを、該第２の情報処理装置による該情報処理サービスの利用が終了するまで継続する、請求項１記載の中間装置。
【請求項１１】
ネットワークを介して情報処理サービスを提供する第１の情報処理装置と前記情報処理サービスを受ける第２の情報処理装置との間に中間装置を設け、前記中間装置により、前記情報処理サービスに対する付加的なサービスである中間サービスを提供するサービス提供方法であって、
前記第１の情報処理装置と前記第２の情報処理装置の間に設置された前記中間装置が、前記情報処理サービスのために前記第１の情報処理装置と前記第２の情報処理装置の間に確立されているセッションの状態を維持するのに必要な状態情報を該第１の情報処理装置または該第２の情報処理装置から取得する第１のステップと、
前記中間装置が前記状態情報に基づいて、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記情報処理サービスのデータを、該データに前記中間サービスを適用して転送するための転送ルールを作成する第２のステップと、
前記中間装置が、前記転送ルールに従い、前記第１の情報処理装置と前記第２の情報処理装置の間に確立されていた既存の前記セッションの状態を前記中間装置と前記第２の情報処理装置の間で維持しつつ、前記中間装置と前記第１の情報処理装置の間に新たなセッションを確立し、前記既存のセッションと前記新たなセッションを用いて前記データを転送する第３のステップとを有するサービス提供方法。
【請求項１２】
前記第１のステップにおいて、前記中間装置は、前記状態情報の一部として、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記セッションに固有のセッション情報を取得する、請求項１１記載のサービス提供方法。
【請求項１３】
前記第１のステップにおいて、前記中間装置は、前記状態情報の一部として、前記第１の情報処理装置または前記第２の情報処理装置に問い合わせて前記情報処理サービスに固有のサービス固有情報を取得する、請求項１１記載のサービス提供方法。
【請求項１４】
前記中間装置は、前記第１の情報処理装置上のアクセス対象の各々を特定するために既に付与されているアクセス対象識別情報を複数の前記アクセス対象について前記第１の情報処理装置または前記第２の情報処理装置に問合せて、得られた複数の該アクセス対象識別情報に共通する規則性を抽出することにより、前記アクセス対象を有する第１の情報処理装置を識別するための装置識別子を前記サービス固有情報の一部として取得する、請求項１３記載のサービス提供方法。
【請求項１５】
前記第１のステップにおいて、全ての必要な前記状態情報が取得できないとき、前記中間装置は、前記第１の情報処理装置と前記第２の情報処理装置の間の既存のセッションのデータは前記中間サービスを適用せずにそのまま転送し、前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立が要求されると、前記第２の情報処理装置および前記第１の情報処理装置の双方とセッションを確立し、該セッションを用いて前記情報処理サービスのデータに前記中間サービスを適用して該データを転送する、請求項１１記載のサービス提供方法。
【請求項１６】
第１のステップにおいて、前記中間装置は、前記第１の情報処理装置および前記第２の情報処理装置に前記セッションを一旦無効にして再確立させるための命令を発し、セッションが再確立される過程で前記状態情報を取得する、請求項１１記載のサービス提供方法。
【請求項１７】
前記中間サービスの内容は、予めオペレータにより前記中間装置に登録されている、請求項１１記載のサービス提供方法。
【請求項１８】
前記情報処理サービスは前記第１の情報処理装置上のリソースに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、前記第２の情報処理装置から前記第１の情報処理装置上の前記リソースに対するアクセスを前記中間装置で読み換えてアクセス先を変換するサービスである、請求項１７記載のサービス提供方法。
【請求項１９】
前記情報処理サービスは前記第１の情報処理装置上のＷＥＢページに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、複数の前記第１の情報処理装置による前記情報処理サービスを統合して前記第２の情報処理装置に提供するサービスである、請求項１７記載のサービス提供方法。
【請求項２０】
前記中間サービスの提供を終了するとき、前記中継装置が、前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立を要求されると、前記第２の情報処理装置と前記第１の情報処理装置の間のデータをそのまま転送することにより、前記中間サービスの適用対象外として前記第１の情報処理装置と前記第２の情報処理装置の間で直接にセッションを確立させる第４のステップと、
既に提供されている前記情報処理サービスについては、該中間装置と前記第１の情報処理装置の間のセッションおよび該中間装置と前記第２の情報処理装置の間のセッションを用いて、前記中間サービスを適用したデータを転送することを、該第２の情報処理装置による該情報処理サービスの利用が終了するまで継続する第５のステップとをさらに有する、請求項１１記載のサービス提供方法。
【請求項２１】
ネットワークを介して情報処理サービスを提供する第１の情報処理装置と前記情報処理サービスを受ける第２の情報処理装置との間に設けられるコンピュータに実行させることにより、前記情報処理サービスに対する付加的なサービスである中間サービスを提供させるためのサービス提供プログラムであって、
状態情報取得手段が、前記情報処理サービスのために前記第１の情報処理装置と前記第２の情報処理装置の間に確立されているセッションの状態を維持するのに必要な状態情報を該第１の情報処理装置または該第２の情報処理装置から取得する第１の処理と、
中間サービス管理手段が、前記状態情報に基づいて、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記情報処理サービスのデータを、該データに前記中間サービスを適用して転送するための転送ルールを作成する第２の処理と、
転送制御手段が、前記転送ルールに従い、前記第１の情報処理装置と前記第２の情報処理装置の間に確立されていた既存の前記セッションの状態を自身と前記第２の情報処理装置の間で維持しつつ、自身と前記第１の情報処理装置の間に新たなセッションを確立し、前記既存のセッションと前記新たなセッションを用いて前記データを転送する第３の処理とを前記コンピュータに行わせるサービス提供プログラム。
【請求項２２】
前記第１の処理において、前記状態情報の一部として、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記セッションに固有のセッション情報を取得する、請求項２１記載のサービス提供プログラム。
【請求項２３】
前記第１の処理において、前記状態情報の一部として、前記第１の情報処理装置または前記第２の情報処理装置に問い合わせて前記情報処理サービスに固有のサービス固有情報を取得する、請求項２１記載のサービス提供プログラム。
【請求項２４】
前記第１の情報処理装置上のアクセス対象の各々を特定するために既に付与されているアクセス対象識別情報を複数の前記アクセス対象について前記第１の情報処理装置または前記第２の情報処理装置に問合せて、得られた複数の該アクセス対象識別情報に共通する規則性を抽出することにより、前記アクセス対象を有する第１の情報処理装置を識別するための装置識別子を前記サービス固有情報の一部として取得する、請求項２３記載のサービス提供プログラム。
【請求項２５】
前記第１の処理において、全ての必要な前記状態情報が取得できないとき、前記転送制御手段は、前記第１の情報処理装置と前記第２の情報処理装置の間の既存のセッションのデータは前記中間サービスを適用せずにそのまま転送し、前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立が要求されると、前記第２の情報処理装置および前記第１の情報処理装置の双方とセッションを確立し、該セッションを用いて前記情報処理サービスのデータに前記中間サービスを適用して該データを転送する、請求項２１記載のサービス提供プログラム。
【請求項２６】
第１の処理において、解除制御手段が、前記第１の情報処理装置および前記第２の情報処理装置に前記セッションを一旦無効にして再確立させるための命令を発し、前記状態情報取得手段が、セッションが再確立される過程で前記状態情報を取得する、請求項２１記載のサービス提供プログラム。
【請求項２７】
前記中間サービスの内容は、予めオペレータにより前記中間装置に登録されている、請求項２１記載のサービス提供プログラム。
【請求項２８】
前記情報処理サービスは前記第１の情報処理装置上のリソースに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、前記第２の情報処理装置から前記第１の情報処理装置上の前記リソースに対するアクセスを読み換えてアクセス先を変換するサービスである、請求項２７記載のサービス提供プログラム。
【請求項２９】
前記情報処理サービスは前記第１の情報処理装置上のＷＥＢページに対する前記第２の情報処理装置からのアクセスを可能にするサービスであり、前記中間サービスは、複数の前記第１の情報処理装置による前記情報処理サービスを統合して前記第２の情報処理装置に提供するサービスである、請求項２７記載のサービス提供プログラム。
【請求項３０】
前記中間サービスの提供を終了するとき、転送制御手段が、前記第２の情報処理装置から新たに前記情報処理サービスのセッション確立を要求されると、前記第２の情報処理装置と前記第１の情報処理装置の間のデータをそのまま転送することにより、前記中間サービスの適用対象外として前記第１の情報処理装置と前記第２の情報処理装置の間で直接にセッションを確立させる第４の処理と、
前記転送制御手段が、既に提供されている前記情報処理サービスについては、自身と前記第１の情報処理装置の間のセッションおよび自身と前記第２の情報処理装置の間のセッションを用いて、前記中間サービスを適用したデータを転送することを、該第２の情報処理装置による該情報処理サービスの利用が終了するまで継続する第５の処理をさらに有する、請求項２１記載のサービス提供プログラム。
【請求項３１】
ネットワークを介して情報処理サービスを提供する第１の情報処理装置と前記情報処理サービスを受ける第２の情報処理装置との間において、前記情報処理サービスに対する付加的なサービスである中間サービスを提供させるためにコンピュータにより実行されるサービス提供プログラムであって、
前記情報処理サービスのために前記第１の情報処理装置と前記第２の情報処理装置の間に確立されているセッションの状態を維持するのに必要な状態情報を該第１の情報処理装置または該第２の情報処理装置から取得する第１の処理と、
前記状態情報に基づいて、前記第１の情報処理装置と前記第２の情報処理装置の間で送受信される前記情報処理サービスのデータを、該データに前記中間サービスを適用して転送するための転送ルールを作成する第２の処理と、
前記転送ルールに従い、前記第１の情報処理装置と前記第２の情報処理装置の間に確立されていた既存の前記セッションの状態を自身と前記第２の情報処理装置の間で維持しつつ、自身と前記第１の情報処理装置の間に新たなセッションを確立し、前記転送ルールに従い、前記既存のセッションと前記新たなセッションを用いて前記データを転送する第３の処理とを前記コンピュータに行わせるサービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントおよびサーバに代表されるような情報処理装置間のネットワークに論理的に配置される中間装置に関し、特に、それら情報処理装置が、通信に固有の情報を一時的に保持しつつ、その情報を用いて通信する環境において、情報処理装置によるサービスを拡張する新たなサービスを提供する中間装置に関する。
【背景技術】
【０００２】
複数の情報処理装置がネットワークを介して相互に通信することにより、情報処理装置間でサービスが提供される。【０００３】
例えば、クライアント・サーバシステムでは、クライアントとサーバが相互に通信することにより、サーバはサービスを提供し、クライアントはそのサービスを利用することができる。【０００４】
また、クライアント・サーバシステムにおいて、サーバの提供するサービスを向上させたり、ある種のサービスを提供するためにサーバ間で連携したり、あるサービスを提供するサーバを他のサーバに移行したりなど、サービス提供構成が変更されることがある。このようなサービス提供構成の変更に中間装置が利用されることがある。【０００５】
一方、ピアツーピア（ｐｅｅｒ  ｔｏ  ｐｅｅｒ）システムは、複数のピアと呼ばれる情報処理装置で構成されている。ピアには、クライアントまたはサーバのように役割が固定されておらず、状況に応じて役割が変化する。ピアツーピアシステムの場合でもクライアント・サーバシステムと同様に、ピア間で相互に通信することにより、あるピアがサービスを提供し、あるピアがそのサービスを利用することができる。そして、ピアツーピアシステムでもサービス提供構成の変更の必要が生じることがあり、その変更に中間装置が利用されることがある。【０００６】
また、これらのようなシステムでサービスを実現するために、情報処理装置が、通信のセッションに固有の状態情報を互いに交換して保持しつつ、その状態情報を利用して通信する手順を有する通信プロトコルが用いられることがある。【０００７】
クライアントとサーバが、固有の状態情報を相互に交換して一定期間保持しつつ、その状態情報を利用して通信するシステムの代表的な例として、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、あるいはＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）といったデファクトスタンダードとなっているプロコトルを利用したものがある。【０００８】
これらの通信プロトコルは、クライアントからサーバのストレージリソースにアクセスする形態のリモートファイルアクセスに用いられる。このような通信プロトコルを用いることで、クライアントは、あたかも自身の中のストレージリソースにアクセスするかのように、容易に、サーバのストレージリソースを利用することができる（  特開２００３−２０３０２９号公報、およびＷ．Ｋａｔｓｕｒａｓｈｉｍａ，  Ｓ．Ｙａｍａｋａｗａ，  Ｔ．Ｔｏｒｉｉ，  Ｊ．Ｉｓｈｉｋａｗａ，  Ｙ．Ｋｉｋｕｃｈｉ，  Ｋ．Ｙａｍａｇｕｔｉ，  Ｋ．Ｆｕｊｉｉ  ａｎｄ  Ｔ．Ｎａｋａｓｈｉｍａ，“ＮＡＳ  Ｓｗｉｔｃｈ：  Ａ  Ｎｏｖｅｌ  ＣＩＦＳ  Ｓｅｒｖｅｒ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ，”Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  １２ｔｈ  ＩＥＥＥ／１１ｔｈ  ＮＡＳＡ  Ｇｏｄｄａｒｄ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍｓ  ＆  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ａｐｒｉｌ，２００３．参照）。【０００９】
特開２００３−２０３０２９号公報には、ＮＦＳプロトコル環境において、複数のサーバのストレージリソースをあたかも１つのストレージリソースであるかのように統合してクライアントに提供する方式が提案されている。この方式によれば、通信パケット内の情報を変更して転送するスイッチ装置をクライアントとサーバの間に導入することによって、クライアントおよびサーバに特殊なソフトウェアまたはハードウェアを導入することなく、複数サーバのストレージリソースをあたかも１つのストレージリソースであるかのようにクライアントに提供することができる。【００１０】
また、Ｗ．Ｋａｔｓｕｒａｓｈｉｍａ他の論文には、ＣＩＦＳプロトコルが用いられる環境において、ＮＦＳプロトコル環境と同様に、クライアントおよびサーバに特殊なソフトウェアまたはハードウェアを導入することなく、複数サーバのストレージリソースを統合するスイッチ装置が提案されている。【００１１】
これらの提案するところによれば、クライアントとサーバの間のネットワークに、スイッチ装置に代表される中間装置を配することにより、相互連携機能を持たないサーバ群の提供するサービスを統合できる。そのため、クライアント、またはクライアントを利用するユーザはサーバ装置群の構成を全く意識することなく、各サーバの提供するサービスを容易に利用することができる。また、システム管理者は、システムやサービスの稼動状況に応じて、クライアント側の設定を変更したり、アプリケーションを停止したりすることなく、サーバの追加または削除、サーバ間でのリソースの移行などの保守作業を行うことができる。【００１２】
また、クライアントとサーバが、固有の状態情報を相互に交換して一定期間保持しつつ、その状態情報を利用して通信するシステムの他の代表例として、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を利用したものがある。ＨＴＴＰによれば、クライアントはサーバに格納されているＷｅｂコンテンツを利用可能である。クライアントはサーバにＷｅｂコンテンツを要求し、それに応じてサーバはＷｅｂコンテンツをクライアントに提供する。このクライアントからの要求を適切なサーバに振り分ける機能を持った中間装置は、Ｗｅｂスイッチまたはレイヤ７スイッチと呼ばれる。【００１３】
この種の中間装置は、Ｗｅｂコンテンツの格納場所に応じて要求を振り分けることにより、複数のＷｅｂサーバを統合し、あたかも１台のＷｅｂサーバであるかのようにクライアントに見せることができる。そのため、ＣＧＩを使ったコンテンツやＣＯＯＫＩＥを用いたコンテンツなど、処理の異なるＷｅｂサービス毎にＷｅｂサーバを分けることで、クライアントからの要求による処理負荷を分散させ、かつ、分散された処理を担う各Ｗｅｂサーバとしてその負荷に見合った性能のものを設置することができる。そのため、Ｗｅｂサイトにおいて効率的にシステムを構築し、また、状況の変化に応じてシステムを変更することによりＷｅｂサービス自体を安定的に稼動させることができる。【００１４】
上述したように、リモートファイルアクセスにおいてクライアントからのアクセスを複数のサーバに振り分けたり、Ｗｅｂサービスにおいてクライアントからのアクセスを複数のＷｅｂサーバに振り分けたりするような、中間装置によって提供されるサービスを、以下、中間装置提供サービスと称す。
【発明の開示】
【００１５】
上述したような中間装置を用いたシステムでは、予め中間装置がクライアントとサーバの間に設置され、クライアントのアクセス先が中間装置に設定されており、さらにクライアントが中間装置を経由して通信を開始していることが好ましい。その場合には、クライアント側の設定の変更やアプリケーションの停止などの操作をせずに、サーバ側システムの変更やリソース割り当ての変更の作業を実行できる。
【００１６】
しかし、必ずしもそのようにできない場合がある。例えば、既にクライアントとサーバの間で何らかのサービスが開始されているところに新たに中間装置を導入する場合、サーバ側システムの変更やリソース割り当ての変更をするには、アプリケーションを一旦停止したり、クライアント側の設定を変更したりする必要があった。
【００１７】
クライアントとサーバは相互に固有の状態情報を交換し、それを保持しつつ通信を行なっているので、サービスを提供する中間装置を新たに導入するためには、クライアント上のアプリケーションを一旦停止することによりサーバとクライアントの間の通信を遮断した状態で、クライアントの接続先をサーバから中間装置に変更する必要があった。
【００１８】
また、クライアントとサーバの間に配されていた中間装置を抜き取る場合も、導入時と同様に、クライアント上で稼動していたアプリケーションを一旦停止することによりクライアントとサーバの間の通信を遮断した後に、クライアントの接続先を中間装置からサーバへ変更する必要があった。ここでいう中間装置を抜き取る場合とは、中間装置をリプレースするときや、一時的な用途で利用されていた中間装置を取り除くときなどが考えられる。一時的な用途としては、既存のサーバをリプレースしたり、複数のサーバで提供されていたサービスを１つのサーバに統合したりするために、一時的に中間装置を用いることが考えられる。
【００１９】
本発明の目的は、クライアント上で稼動しているアプリケーションを停止したり、クライアントにおける接続先設定を変更することなく、新規導入および抜き取りをシームレスに実行できる中間装置を提供することである。
【００２０】
上記目的を達成するために、本発明の中間装置は、ネットワークを介して情報処理サービスを提供する第１の情報処理装置とその情報処理サービスを受ける第２の情報処理装置との間に設けられ、情報処理サービスに対する付加的なサービスである中間サービスを提供する中間装置であって、状態情報取得手段、中間サービス管理手段、および転送制御手段を有している。
【００２１】
状態情報取得手段は、情報処理サービスのために第１の情報処理装置と第２の情報処理装置の間に確立されているセッションの状態を維持するのに必要な状態情報を第１の情報処理装置または第２の情報処理装置から取得する。
【００２２】
中間サービス管理手段は、状態情報に基づいて、第１の情報処理装置と第２の情報処理装置の間で送受信される情報処理サービスのデータを、そのデータに中間サービスを適用して転送するための転送ルールを作成する。
【００２３】
転送制御手段は、転送ルールに従い、第１の情報処理装置と第２の情報処理装置の間に確立されていた既存のセッションの状態を、自身と第２の情報処理装置との間で維持しつつ、自身と第１の情報処理装置の間に新たなセッションを確立し、既存のセッションと新たなセッションを用いてデータを転送する。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態におけるシステムの構成を示すブロック図である。
【図２】中間装置の構成を示すブロック図である。
【図３】手順１によって中間装置を導入するときの処理の流れを示すフローチャートである。
【図４】手順２によって中間装置を導入するときの処理の流れを示すフローチャートである。
【図５】手順３によって中間装置を導入するときの処理の流れを示すフローチャートである。
【図６】中間装置を抜き取るときの処理の流れを示すフローチャートである。
【図７】第１の実施例におけるシステムの構成を示すブロック図である。
【図８】ＮＦＳプロトコルにおける各ＮＦＳサーバのファイルハンドルの例を示す表である。
【図９】第３の実施例におけるシステムの構成を示すブロック図である。
【図１０】第４の実施例におけるシステムの構成を示すブロック図である。
【発明を実施するための最良の形態】
【００２５】
本発明の一実施形態について図面を参照して詳細に説明する。【００２６】
図１は、本発明の一実施形態におけるシステムの構成を示すブロック図である。図１を参照すると、本システムは、クライアント１００、中間装置２００、サーバ３００、３０１、およびネットワークスイッチ１５０を有している。図１では、各装置について１つあるいは２つが例示されているが、各装置の数は任意である。【００２７】
クライアント１００、中間装置２００、およびサーバ３００、３０１の各々は、他の機器と通信するためにネットワーク接続用のインタフェースを有している。中間装置２００はネットワーク１と、クライアント１００はネットワーク２と、サーバ３００はネットワーク３と、サーバ３０１はネットワーク４とそれぞれ接続されている。そして、ネットワーク１〜４はネットワークスイッチ１５０の各ポートに接続されている。この構成によりクライアント１００、中間装置２００、およびサーバ３００、３０１は相互に通信可能となっている。【００２８】
図１のネットワーク構成は一例であり、本発明はそれに限定されない。中間装置２００を少なくとも論理的にクライアント１００とサーバ３００、３０１の間に設置可能であればよく、また、中間装置２００が物理的にクライアント１００とサーバ３００、３０１の間に設置されてもよい。【００２９】
サーバ３００、３０１は、ネットワークを介してクライアント１００に対して、ＷＥＢページの利用を可能にするサービス、またはファイルのデータに対するアクセスを可能とするサービスを含む情報処理に関するサービスを提供することができる。以下、サーバによって提供されるサービスを、以下、「情報処理サービス」という。【００３０】
クライアント１００はサーバ３００、３０１にアクセスして、サーバ３００、３０１によって提供される情報処理サービスを利用することができる。【００３１】
ネットワークスイッチ１５０は、各ポート間の通信パケットの転送を行う機能の他、ポートミラーリングに代表されるような通信パケットのコピー転送機能を有している。ポートミラーリングとは、ある経路へ転送する通信パケットを他の経路へも転送する機能である。【００３２】
中間装置２００は、クライアント１００とサーバ３００、３０１との間に設置され、その間の通信パケットを転送すると共に、サーバによる情報処理サービスを向上させるための付加的なサービスを提供する。図２は中間装置２００の構成を示すブロック図である。【００３３】
図２を参照すると、中間装置２００は、ネットワークインターフェース２０１、パケット転送制御部２０２、中間装置提供サービス管理部２０３、セッション監視部２０４、セッション解除制御部２０５、および情報収集部２０６を備えている。【００３４】
パケット転送制御部２０２は、パケットの再構成、またはヘッダの組み換え等を行い、クライアント１００とサーバ３００、３０１の間でデータを転送する。その転送方法は、中間装置で扱われるプロトコル、中間装置によって提供されるサービス（以下、「中間装置提供サービス」という）の種類、および中間装置提供サービスに対してオペレータが行った設定によって定まる。本発明が対象とする中間装置提供サービスには様々な内容のサービスが含まれる。【００３５】
中間装置提供サービスの内容はオペレータによって設定されることが考えられる。動作の一例を示すと、中間装置提供サービスが提供されていない状態では、パケット転送制御部２０２はクライアント１００とサーバ３００、３０１の間のパケットをそのまま転送するだけである。一方、中間装置提供サービスが提供されている状態では、パケット転送制御部２０２は、その転送ルールに従って、クライアント１００とサーバ３００、３０１の間のデータを転送する。このとき、通信パケットのヘッダを付け替えることによりデータを転送してもよく、また、通信パケットで送られるデータを抽出し、新たな通信パケットによりそのデータを転送してもよい。中間装置提供サービスは、サーバ３００、３０１が提供する情報処理サービスに対する付加的なサービスであって、中間装置２００によって提供される。データの転送先は、必ずしも送信元が指定した送信先と一致しない場合がある。【００３６】
この中間装置提供サービスは、中間装置２００がクライアント１００とサーバ３００、３０１の間のデータの転送先やヘッダもしくはデータを操作することにより実現される。そのため、中間装置提供サービスを提供するためには、所定の転送ルールが必要となる。ここで転送ルールとは、上述したように定まる転送方法を実現するための、データ転送に関する規則である。中間装置提供サービスの一例として、クライアント１００からのアクセスを中間装置２００が適切に複数のサーバ３００、３０１に振り分けることにより、クライアント１００に対して複数のサーバ３００、３０１を統合して１つのサーバとして見せるというサービスが挙げられる。【００３７】
中間装置提供サービス管理部２０３は、中間装置提供サービスの提供を制御する。その際、中間装置提供サービス管理部２０３は、オペレータが中間装置提供サービスに対して行った設定に基づき、パケット転送制御部２０２、セッション監視部２０４、セッション解除制御部２０５、または情報収集部２０６で行われるべき処理を決定し、各部に対して処理の実行を命令する。例えば、中間装置２０３は、セッション監視部２０４および情報収集部２０６で収集される情報とオペレータによる設定とに基づいて転送ルールを定め、その転送ルールに従ったデータ転送をパケット転送制御部２０２に指示する。【００３８】
セッション監視部２０４は、クライアント１００とサーバ３００、３０１の間に設定されたセッションの状態を監視すると共に、そのセッション内でやりとりされるデータから、中間装置提供サービスの開始に必要なセッション情報を収集する。ここでセッション情報とは、各通信のセッションに関する固有の状態情報であり、セッションが設定されている間、そのセッションに対してのみ有効である。中間装置２００がサーバ３００とクライアント１００の間にシームレスに入り込んで中間装置提供サービスを開始する場合、それまでサーバ３００とクライアント１００の間で維持されていたセッションの状態を代わりに維持することとなる。そのため、中間装置は、セッションの状態を維持するのに必要な状態情報を取得することが必要である。【００３９】
セッション解除制御部２０５は、セッションを初期化する機能をもったプロトコルを中間装置２００が扱う場合に、クライアント１００およびサーバ３００、３０１に対して、その間で既に確立されているセッションを初期化する命令を送信することができる。その際、セッション解除制御部２０５は、例えば、セッションを強制的に無効にする命令を送信すればよい。クライアント１００およびサーバ３００、３０１がこの命令を実行することによりセッションが初期化される。ここで、セッションの初期化とは、既存のセッションを一旦無効にし、その既存のセッションの状態を引き継ぐ新たなセッションを再び確立することである。【００４０】
情報収集部２０６は、シームレスに中間装置提供サービスを開始するのに必要なサービス固有情報をクライアント１００およびサーバ３００、３０１からネットワーク経由で収集し、セッション監視部２０４で収集されたセッション情報と共に、中間装置提供サービス管理部２０２に送る。ここでサービス固有情報とは、サーバにより提供される情報処理サービスに固有の状態情報であり、複数のセッションに共通で用いられる。【００４１】
（中間装置導入の手順）
中間装置２００の導入手順として、利用されているネットワークプロトコル、中間装置提供サービス、および適用されるシステム環境に応じた、以下に示す３つの手順がある。ただし、中間装置２００がいずれか１つの手順で導入される場合の他、適用先システムによっては複数の手順を組み合わせた手順で中間装置２００が導入されることも考えられる。【００４２】
（手順１）
ここでは、既にクライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を介して通信が行われている状態で中間装置２００をシームレスに導入するときの手順について説明する。また、このとき中間装置２００を導入すると共にサーバ３０１を追加するものとする。さらに、システム管理者などのオペレータによって、中間装置２００で提供しようとする中間装置提供サービスに関する、環境設定や実行内容の設定等は予め中間装置２００に登録されているものとする。このオペレータによって設定登録された情報は、中間装置提供サービス管理部２０３において管理される。【００４３】
手順１の適用対象となる環境は、第三者が、クライアント１００およびサーバ３００上で稼動する情報処理サービスに関連する事象をセッション情報から知ることができる、あるいはできないというものである。中間装置２００は、必要なセッション情報を取得しようとするが、必要な全てのセッション情報が取得できなければ、導入前から確立されていたセッションを導入後に再現することができない。例えば、中間装置２００の導入前からクライアント１００とサーバ３００の間に既に張られているセッションが、クライアント１００とサーバ３００の間のネゴシエーションにより暗号化されている場合が考えられる。その場合、中間装置１００はセッション上でやり取りされる情報を理解することができないため、セッションを再現することができない。【００４４】
図３は、手順１によって中間装置を導入するときの処理の流れを示すフローチャートである。予め、クライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を用いて相互に通信している状況において、図３の手順が開始される。【００４５】
中間装置提供サービス管理部２０３は、オペレータによって指定されたサービス設定から、中間装置提供サービスを実行するために取得する必要のある情報の一覧（以下、「必要情報一覧」という）を作成し、その必要情報一覧をセッション監視部２０４へ登録する（ステップＳ１）。【００４６】
例えば、中間装置２００で扱うべきプロトコルがＴＣＰ（ＴｒａｎｓｍｉｓｓｉｏｎＣｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）であれば、中間装置提供サービス管理部２０３は、次のようにサービスを実行するための必要情報一覧を決める。【００４７】
クライアント１００とサーバ３００間でセッション（ＴＣＰでは「コネクション」とも呼ばれる）が確立されると、クライアント１００およびサーバ３００の各々は、データの通信パケットにシーケンス番号を付加して送信する。また、そのシーケンス番号の付加された通信パケットを受信したクライアント１００またはサーバ３００は、その通信パケットに対して応答するとき、受信パケットに付加されていたシーケンス番号を“１”だけカウントアップして応答の通信パケットに付加する。クライアント１００またはサーバ３００は、その応答の通信パケットを受けると、そこに付加されたシーケンス番号を参照することで、自身の送信した通信パケットが相手に届いたことを確認する。さらに、ＴＣＰは、クライアント１００およびサーバ３００の受信バッファ量や、セッションの確立（開始）または解除（終了）といったセッションの状態をコントロールする機能をも含んでいる。【００４８】
そのため、中間装置２００は、クライアント１００とサーバ３００の間にシームレスに入ってＴＣＰのセッションの途中から通信パケットを転送するためには、シーケンス番号、受信バッファ量、およびセッションの状態をセッション情報から収集し、転送開始前と後で不整合が生じないようなセッション情報を転送の通信パケットに付加する必要がある。この場合、中間装置２００が必要とする情報は、シーケンス番号、受信バッファ量、およびセッションの状態の情報となる。【００４９】
必要な情報が決定されすると、中間装置２００およびサーバ３０１を新たにネットワークスイッチ１５０に接続する。これによりシステムは図１に示した物理構成となる。【００５０】
ネットワークスイッチ１５０は、上述した通信パケットのコピー転送機能を用いて、ネットワーク２とネットワーク３の間に流れている通信パケットを中継装置２００のネットワーク１へ転送するように設定しておく。そして、通信パケットが転送されてくるようになった中間装置２００において、ネットワークインターフェース２０１を経由して得られたデータパケットはセッション監視部２０４に送られる。【００５１】
セッション監視部２０４は、クライアント１００とサーバ３００との間で確立されていた既存のセッションで通信されているセッション情報を解析し、中間装置提供サービス管理部２０３により登録された取得情報一覧と合致するセッション情報を抽出する。そしてセッション監視部２０４は、そのセッション情報を、サーバ３００からクライアント１００へ提供されている情報処理サービスの事象と関連付けて、中間装置提供サービス管理部２０３へ通知する（ステップＳ２）。【００５２】
ここで、取得情報一覧に挙げられている全ての情報を、中間装置２００の導入前から確立されていたセッション群から取得可能か否か判定する（ステップＳ３）。【００５３】
全ての情報が取得可能であれば、中間装置提供サービス管理部２０３は、それらの情報を取得し、取得した情報とオペレータによって指定されたサービス設定とから、通信パケットを適切に転送するため転送ルールを作成し、パケット転送制御部２０２へ登録する（ステップＳ４）。ただし、この時点では、転送ルールは単に登録されただけであり、未だ有効にされていない状態である。【００５４】
ここで、セッション上を流れる通信パケットの経路をクライアント１００からサーバ３００まで直接に到達する経路から、クライアント１００から中間装置２００を経由してサーバ３００に到達する経路へ変更する。その際、ネットワークスイッチ１５０の設定の変更、中間装置２００またはサーバ３００のＩＰアドレスの変更など、ネットワークスイッチ１５０に接続されているネットワークの構成に応じた方法が用いられる。【００５５】
通信パケットの経路が中間装置２００を経由するようになると、既存のセッションのクライアント１００からサーバ３００への通信パケットは、中間装置２００では、ネットワークインターフェース２０１を介してパケット転送制御部２０２に到達するようになる。中間装置２００は、中間装置２００とサーバ３００間に新たにセッションを確立し、クライアント１００からの通信パケットのデータを中間装置２００とサーバ３００間に確立された新たなセッションを用いて転送するとともに、中間装置２００の導入前から確立されていたセッションが切断されないように、予め取得していたセッション情報を元に、セッションを維持する（ステップＳ５）。【００５６】
また、中間装置提供サービス管理部２０３は、クライアント１００と中間装置２００の間のセッション情報と、中間装置２００とサーバ３００の間のセッション情報との整合性が取れるように、パケット転送制御部２０２に新たな転送ルールを追加登録する。【００５７】
中間装置２００の導入前から確立されていた全てのセッションについて、転送ルールが完成し、２つのセッション間で整合性を取ってデータを転送できるようになると、中間装置提供サービス管理部２０３は、パケット転送制御部２０２に対して、予め登録された転送ルールを有効にするように指示する。パケット転送制御部２０２が転送ルールに従ってデータの転送を開始することにより、中間装置提供サービスの提供が開始される。【００５８】
中間装置提供サービスが開始されると、転送ルールにより、クライアント１００からのアクセスを新たに導入されたサーバ３０１へ転送する必要が生じたとき、中間装置２００は、中間装置２００とサーバ３０１の間に新たにセッションを確立してデータの転送を行う（ステップＳ６）。このとき、中間装置２００は、クライアント１００と中間装置２００の間のセッションと、中間装置２００とサーバ３０１の間のセッションとの間で、あるいはさらに中間装置２００と既存のサーバ３００のセッションを加えた３つのセッション間でデータを転送すると共に、それらセッションを維持する。【００５９】
このようにして、中間装置２００は、取得したセッション情報を用いて転送ルールを作成し、その転送ルールに従って、既存のセッションの状態をクライアント１００との間に引継ぎ、かつサーバ３００との間に新たなセッションを確立し、既存のセッションと新たなセッションを用いてデータを転送するので、自身の導入をクライアント１００のユーザに意識させることなく、シームレスに導入されて中間装置提供サービスを開始することができる。【００６０】
また、ステップＳ３の判定において、必要な情報が取得可能でなければ、中間装置提供サービス管理部２０３は、導入前から確立されていたセッションの通信パケットはそのまま転送してセッションを維持するように、パケット転送制御部２０２に指示する。必要な情報が取得可能でない場合とは、例えば、暗号化されているためセッション情報を解読できない場合が考えられる。また、クライアント１００から新たなセッションの確立要求があると、中間装置提供サービス管理部２０２は、クライアント１００との間でセッションを確立すると共に、サーバ３００との間にもセッションを確立し、それら２つのセッション間でデータの転送を行うように、パケット転送制御部２０２に指示する（ステップＳ７）。【００６１】
その結果、中間装置２００において２つのセッション間でデータの転送をしているセッション、すなわち中間装置２００の導入後に確立されたセッションのみが中間装置提供サービスの対象となる。【００６２】
また、このときセッションに暗号化が必要であれば、中間装置２００は、新規のセッションを確立するとき、クライアント１００との間のセッション確立、およびサーバ３００との間のセッション確立において暗号化の認証を行うことで、２つのセッションの間でのデータの転送を可能にする。【００６３】
中間装置提供サービスが開始されると、クライアント１００からの要求により新たに確立されたセッションのみを対象として、サーバ３０１へ転送する必要が生じたとき、中間装置２００は、サーバ３０１との間に新たなセッションを確立してデータの転送を行う（ステップＳ８）。通常、あるセッションが無限期間継続されることはないので、いずれは全てのセッションが中間装置提供サービスの対象となる。【００６４】
このように、全ての必要な状態情報を取得できないとき、中間装置２００は、既存のセッションを対象外として中間装置提供サービスを開始し、かつ既存のセッションをそのまま継続させるので、既存のセッションで情報処理サービスを受けていたクライアント１００のユーザにそれまでのサービスを最後まで継続提供しつつ、シームレスに中間装置２００を導入し、中間装置提供サービスを開始することができる。【００６５】
（手順２）
ここでは、手順１の場合と同様に、既にクライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を介して通信が行われている状態で中間装置２００をシームレスに導入するときの手順について説明する。また、このとき中間装置２００を導入すると共にサーバ３０１を追加するものとする。さらに、システム管理者などのオペレータによって、中間装置２００で提供しようとする中間装置提供サービスに関する、環境設定や実行内容の設定等は予め中間装置２００に登録されているものとする。このオペレータによって設定登録された情報は、中間装置提供サービス管理部２０３において管理される。【００６６】
手順２の対象となる環境は、通信パケットを中間装置２００にて転送するために必要となるサービス固有情報を、既存のプロトコルを用いてクライアント１００またはサーバ３００から直接取得しうる環境である。この場合、中間装置２００は、クライアント１００およびサーバ３００から必要な情報を直接取得しようとする。【００６７】
図４は、手順２によって中間装置を導入するときの処理の流れを示すフローチャートである。予め、クライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を用いて相互に通信している状況において、図４の手順が開始される。【００６８】
中間装置提供サービス管理部２０３は、オペレータによって指定されたサービス設定から、中間装置提供サービスを実行するために取得する必要のあるサービス固有情報の一覧（以下、「必要サービス固有情報一覧」という）を作成し、必要サービス固有情報一覧を情報収集部２０６へ登録する（ステップＳ１０）。【００６９】
ここで、中間装置２００およびサーバ３０１を新たにネットワークスッチ１５０に接続する。これによりシステムは図１に示した物理構成となる。【００７０】
次に、情報収集部２０６は、中間装置提供サービス管理部２０３によって作成された必要サービス固有情報の一覧に記載されているサービス固有情報を、クライアント１００およびサーバ３００、３０１に問い合わせる。この問い合わせには、クライアント１００およびサーバ３００、３０１が予め備えているプロトコルが用いられる。情報収集部２０６は、得られたサービス固有情報を、サーバ３００、３０１からクライアント１００に提供されている情報処理サービスの事象と関連付けて、中間装置提供サービス管理部２０３に通知する（ステップＳ１１）。その情報は中間装置提供サービス管理部２０３に保存される。【００７１】
次に、中間装置提供サービス管理部２０３は、必要サービス固有情報一覧に挙げられている全ての情報が、クライアント１００またはサーバ３００、３０１から取得できたか否か判定する（ステップＳ１２）。【００７２】
全ての必要な情報が取得できていれば、中間装置提供サービス管理部２０３は、保存されたサービス固有情報と、オペレータによって指定されたサービス設定とから、中間装置提供サービスを適用した通信パケットのデータを適切に転送するための転送ルールを作成し、パケット転送制御部２０２に登録する（ステップＳ１３）。【００７３】
ステップＳ１２の判定において、全ての必要な情報が取得できていなければ、中間装置提供サービス管理部２０３は、オペレータの入力による指示によってサービス固有情報を取得した後に（ステップＳ１５）、ステップＳ１３にて、そのサービス固有情報およびオペレータにより予め指定されたサービス設定とから、通信パケットを適切に転送するための転送ルールを作成し、パケット転送制御部２０２に登録する。なお、オペレータの入力により必要なサービス固有情報を登録することすらできない場合、中間装置提供サービスの提供は不可能である。【００７４】
ここで、クライアント１００とサーバ３００間の通信パケットが搬送される経路をクライアント１００からサーバ３００まで直接に到達する経路から、クライアント１００から中間装置２００を経由してサーバ３００に到達する経路へ変更する。その際、ネットワークスイッチ１５０の設定の変更、中間装置２００またはサーバ３００のＩＰアドレスの変更など、ネットワークスイッチ１５０に接続されているネットワークの構成に応じた方法が用いられる。【００７５】
中間装置２００のパケット転送制御部２０２に送られるようになった後、中間装置提供サービスの開始と共に、クライアント１００からの通信パケットは、転送ルールに従ってサーバ３００またはサーバ３０１へ転送される（ステップＳ１４）。【００７６】
（手順３）
ここでは、手順１、２の場合と同様に、既にクライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を介して通信が行われている状態で中間装置２００をシームレスに導入するときの手順について説明する。また、このとき中間装置２００を導入すると共にサーバ３０１を追加するものとする。さらに、システム管理者などのオペレータによって、中間装置２００で提供しようとする中間装置提供サービスに関する、環境設定や実行内容の設定等は予め中間装置２００に登録されているものとする。このオペレータによって設定登録された情報は、中間装置提供サービス管理部２０３において管理される。【００７７】
手順３の対象となる環境は、様々ある通信プロトコルのうち、クライアントやサーバの突然の障害によって無効となったセッションの状態を回復する機能を備えたプロトコルが用いられている環境である。その種の通信プロトコルには、クライアントまたはサーバの障害によりセッションが無効となった後、その障害が回復すると、クライアントとサーバの間でセッションを再確立し、セッションの状態を障害発生前の状態に回復しようとする機能がある。本手順は、既に確立されているセッションの通信パケットの内容からは、必要な状態情報を取得できないような通信プロトコルが用いられている場合に有効である。その場合にも、中間装置２００は、セッションを再確立させ、再確立の過程で必要な状態情報を取得することにより、シームレスに中間装置提供サービスを開始することができる。【００７８】
図５は、手順３によって中間装置を導入するときの処理の流れを示すフローチャートである。予め、クライアント１００とサーバ３００の間でセッションが確立され、ネットワーク２、３を用いて相互に通信している状況において、図５の手順が開始される。【００７９】
中間装置提供サービス管理部２０３は、オペレータによって指定されたサービス設定から、サービスを実行するために必要となる情報の一覧（以下、必要情報一覧）を作成し、その必要情報一覧をセッション監視部２０４へ登録する（ステップＳ２０）。【００８０】
ここで、中間装置２００およびサーバ３０１を新たにネットワークスッチ１５０に接続する。これによりシステムは図１に示した物理構成となる。また、クライアント１００とサーバ３００間の通信パケット搬送の経路をクライアント１００からサーバ３００まで直接に到達する経路から、クライアント１００から中間装置２００を経由してサーバ３００に到達する経路へ変更する。その際、ネットワークスイッチ１５０の設定の変更、中間装置２００またはサーバ３００のＩＰアドレスの変更など、ネットワークスイッチ１５０に接続されているネットワークの構成に応じた方法が用いられる。【００８１】
次に、中間装置２００は、セッション解除制御部２０５からクライアント１００およびサーバ３００に対して、セッションを無効あるいは初期化することを指示する命令を送信する（ステップＳ２１）。このセッションを無効あるいは初期化する命令は、セッションを再確立させるために発せられる。【００８２】
その命令を受け取ったクライアント１００およびサーバ３００は、セッションの回復機能により新たにセッションを確立しようとする。中間装置２００は、セッション回復過程にあるクライアント１００とサーバ３００の間の通信パケットを収集すれば、セッションを確立する当初からセッション情報を全て取得することができる。そのセッション情報の収集作業はセッション監視部２０４にて行われ、集められたセッション情報は中間装置提供サービス管理部２０３に登録される（ステップＳ２２）。【００８３】
中間装置提供サービス管理部２０３は、オペレータによって指定されたサービス設定から、中間装置提供サービスを適用して通信パケットを適切に転送するための転送ルールを作成し、パケット転送制御部２０２へ登録する（ステップＳ２３）。また、そのとき、中間装置提供サービス管理部２０３は、ステップＳ２２で取得したセッション情報を、パケット転送のための補助情報としてパケット転送制御部２０２に通知する。【００８４】
次に、中間装置提供サービス管理部２０３は、中間装置提供サービスの提供を開始する（ステップＳ２４）。これにより、中間装置２００は、クライアント１００およびサーバ３００、３０１の双方との間にセッションを確立し、転送ルールに基づき、異なるセッション間でデータを転送するようになる。【００８５】
（中間装置抜き取りの手順）
ここでは、図１に示した様に中間装置２００がサーバ３００、３０１とクライアント１００との間に一時的に導入されている状態から、その中間装置２００をシームレスに抜き取るときの手順について説明する。【００８６】
図６は、中間装置を抜き取るときの処理の流れを示すフローチャートである。【００８７】
ここでは、一例として、中間装置２００は、サーバ３００によって提供されているサービスを、クライアントに意識させることなく、サーバ３０１に移すために、一時的に導入されたものであるとする。サーバ間の情報処理サービスの移行をクライアントに意識させないために、中間装置２００は、サーバ３００とサーバ３０１の情報処理サービスを統合しつつ、サーバ３００のサービスをサーバ３０１に置き換えることができる。この場合、サーバ間での情報処理サービスの移行が完了すると、中間装置２００は取り除かれる。【００８８】
図６を参照すると、予め、サーバ３００の提供していたサービスが中間装置２００によってサーバ３０１へ移行された後に（ステップＳ３０）、中間装置２００の抜き取りが行われる。【００８９】
中間装置２００のパケット転送制御部２０２は、クライアント１００から通信パケットを受信すると、それが新規なセッションの確立を要求する通信パケットであるか否か判断する（ステップＳ３１）。【００９０】
クライアント１００からの通信パケットが新たなセッションの確立を要求する通信パケットであれば、中間装置２００は、それを中間装置提供サービスの適用外とし、そのまま新たなサーバ３０１へ通信パケットを転送し、自らがセッションを確立することはない（ステップＳ３２）。これにより、新たなセッションは、中間装置２００の介在せずに、クライアント１００とサーバ３０１の間で直接に確立される。【００９１】
一方、クライアント１００からの通信パケットが、既存のセッションのものであれば、中間装置２００は、その通信パケットに対して中間装置提供サービスを適用し、今までどおり、クライアント１００と中間装置２００の間のセッションと、中間装置２００とサーバ３００またはサーバ３０１の間の２つのセッション間でデータを転送し（ステップＳ３３）、ステップＳ３１に戻る。【００９２】
ステップＳ３２の処理の後、パケット転送制御部２０２は、全てのセッションが中間装置提供サービスの適用外となったか否か判断する（ステップＳ３４）。通常、あるセッションが無限期間継続されることはないので、いずれは全てのセッションが中間装置提供サービスの適用外となる。【００９３】
ここで、全てのセッションが中間装置提供サービスの適用外となっていれば、通信パケットの経路を、中間装置２００を経由しない経路へ変更する（ステップＳ３５）。一方、ステップＳ３４の判定で中間装置提供サービスの適用対象のセッションが残っていれば、中間装置２００は、ステップＳ３１に戻り、全てのセッションが中間装置提供サービスの対象外となるまで、そのサービスを継続する。【００９４】
ステップＳ３５が完了すれば、中間装置２００は、ネットワークから切り離しされ、抜き取り可能な状態となる。【００９５】
このように、中間装置２００は、既存のセッションに対してはそのセッションが終了するまで中間装置提供サービスを継続適用し、新規のセッションについては中間装置提供サービスの適用外とし、全てのセッションが中間装置提供サービスの適用外となったことをもって抜き取り可能な状態と判断するので、既存セッションを利用しているユーザ、および新規セッションを利用しているユーザの双方に意識させることなく、クライアント１００とサーバ３００、３０１との間から抜き取られることができる。【００９６】
{第１の実施例}
第１の実施例として、一般に用いられているＮＦＳプロトコル環境に本発明の中間装置を適用した場合を例示する。中間装置提供サービスは、ＮＦＳクライアントからの複数のＮＦＳサーバへのアクセスを統合し、ＮＦＳサーバの数や構成をＮＦＳクライアントのユーザに意識させないというものである。【００９７】
（ＮＦＳプロトコル環境での中間装置のシームレス導入）
ＮＦＳプロトコルにより、ＮＦＳサーバが、自身のストレージリソースへのアクセスを可能とする情報処理サービスをＮＦＳクライアントに提供する環境において、中間装置をシームレスに導入する場合を例示する。この中間装置は、複数のＮＦＳサーバのストレージリソースを統合してＮＦＳクライアントに提供するためのものである。【００９８】
図７は、第１の実施例におけるシステムの構成を示すブロック図である。図７には、中間装置および新たに追加されたＮＦＳサーバが導入された後のシステムの構成が示されている。第１の実施例のシステムはＮＦＳクライアント１０１、中間装置２００、ＮＦＳサーバ３０２、３０３、およびネットワークスイッチ１５０を有している。図７では、各装置について１つあるいは２つが例示されているが、各装置の数は任意である。【００９９】
ＮＦＳクライアント１０１、中間装置２００、ＮＦＳサーバ３００、３０１の各々は、他の機器との通信のためにネットワーク接続用のインタフェースを有している。中間装置２００はネットワーク１と、ＮＦＳクライアント１０１はネットワーク２と、ＮＦＳサーバ３０２はネットワーク３と、ＮＦＳサーバ３０３はネットワーク４とそれぞれ接続されている。そして、ネットワーク１〜４はネットワークスイッチ１５０の各ポートに接続されている。この構成によりＮＦＳクライアント１０１、中間装置２００、およびＮＦＳサーバ３００、３０１は相互に通信可能となっている。【０１００】
ＮＦＳサーバ３０２、３０３は、ネットワークを介してＮＦＳクライアント１０１に情報処理サービスを提供することができる。ＮＦＳサーバ３０２、３０３が提供する情報処理サービスは、ストレージリソースへのアクセスをクライアントに提供するサービスであり、これをデータアクセスサービスと称する。【０１０１】
ＮＦＳクライアント１０１はＮＦＳサーバ３０２、３０３にアクセスして、ＮＦＳサーバ３０２、３０３によって提供されるデータアクセスサービスを利用することができる。【０１０２】
ネットワークスイッチ１５０および中間装置２００は図１、図２に示したものと同様のものである。【０１０３】
（導入手順）
ＮＦＳクライアント１０１とＮＦＳサーバ３０２がＮＦＳプロトコルを用いて互いに通信している環境に対して、中間装置２００とＮＦＳサーバ３０３をシームレスに導入する手順について説明する。ネットワーク２、３には、それらが同一のネットワークドメインとなるようなＩＰアドレスが付与されており、ＮＦＳクライアント１０１とＮＦＳサーバ３０２は、ネットワーク２、３を介してＮＦＳプロトコルにより通信している。【０１０４】
また、中間装置提供サービス管理部２０３では、オペレータによって指定されたサービス設定から、サービスを実行するために必要となるサービス固有の情報の一覧（必要サービス固有情報一覧）を作成し、情報収集部２０６へ登録する。【０１０５】
このような状況において、中間装置２００のネットワーク１と、ＮＦＳサーバ３０３のネットワーク４とをネットワークスイッチ１５０に接続する。そして、ネットワーク１、４に、ネットワーク２、３と同一のネットワークドメインとなるようなＩＰアドレスを付与した後、ネットワーク１、４を起動する。また、中間装置２００およびＮＦＳサーバ３０３へのネットワーク設定も行う。【０１０６】
ネットワーク１、４が起動した後、新たなＮＦＳサーバ３０３は自身のストレージリソースへのアクセスをクライアントに提供するデータアクセスサービスを起動し、ＮＦＳプロトコルによるストレージリソースへのアクセスを可能な状態にする。【０１０７】
中間装置２００およびＮＦＳサーバ３０３のネットワーク設定が終了した後、中間装置２００の情報収集部２０６は、ＮＦＳサーバ３０２とＮＦＳサーバ３０３によって提供されるＮＦＳプロトコルによるデータアクセスサービスを統合するために必要なサービス固有情報をＮＦＳサーバ３０２およびＮＦＳサーバ３０３からＮＦＳプロトコルを用いて収集する。【０１０８】
データアクセスサービスの統合とは、ＮＦＳクライアント１０１が、中間装置２００を介してアクセスすることによって、ＮＦＳサーバ３０２とＮＦＳサーバ３０３が、あたかも１つのＮＦＳサーバ、つまり１つのストレージリソースとしてクライアントに提供されるようにすることである。【０１０９】
これを実現するために、中間装置２００は、ＮＦＳクライアント１０１からのアクセス要求に対して、要求先がどこであるかを判断し、要求先のリソースが格納されているＮＦＳサーバへ要求を転送すればよい。【０１１０】
ＮＦＳプロトコルでは、ディレクトリやファイルといったアクセス対象となるデータオブジェクトを一意に特定するためのＩＤとして、ＮＦＳサーバが生成したファイルハンドルと呼ばれる識別子が用いられる。そして、ＮＦＳクライアントがデータアクセスサービスを利用しようとするとき、ＮＦＳクライアントからの要求には、このファイルハンドルが必ず含まれている。【０１１１】
中間装置２００は、各ファイルハンドルに、自身が統合するＮＦＳサーバの各々の識別子を新たに組み込むことによって、容易に転送先のＮＦＳサーバを特定することができる。【０１１２】
しかし、中間装置２００の導入前から既にＮＦＳクライアント１０１とＮＦＳサーバ３０２の間で通信がされていれば、ＮＦＳサーバ３０２が生成したオリジナルのファイルハンドルがある。中間装置２００は、シームレスな導入を実現するために、オリジナルのファイルハンドルをそのまま継続して使える状態としなければならない。そのため、中間装置２００は、要求に含まれたオリジナルのファイルハンドルから、その要求の転送先であるＮＦＳサーバ３０２またはＮＦＳサーバ３０３を特定しなければならない。【０１１３】
ファイルハンドルの生成方法は、一般的には任意であるが、通常、各ＮＦＳサーバの実装によりパターン化されている。そして、生成されるファイルハンドルは、データオブジェクトを格納しているファイルシステムの情報や、格納しているデバイスの情報を含んでおり、これらの情報は、同一ＮＦＳサーバ内の各ファイルハンドルに共通なデータ列である。中間装置２００は、この複数のファイルハンドルに共通するパターンの規則性を抽出できれば、各ＮＦＳサーバへ通信パケットを転送するために、ＮＦＳサーバを特定する識別子（以下、サーバ識別子と称す）として利用することができる。つまり、データオブジェクトを識別する情報であるファイルハンドルから、そのデータオブジェクトを有するサーバを識別可能なサーバ識別子を抽出すれば、そのサーバ識別子が、サービス固有情報として利用可能となる。中間装置２００は、中間装置提供サービスにおいて通信パケットのデータを転送するために、データオブジェクトのファイルハンドルから宛先サーバを特定する必要がある。サーバ識別子が抽出できていれば、中間装置２００は、既存の全てのファイルハンドルを取得して記録する必要が無く、ファイルハンドルの一部に含まれるサーバ識別子を見るだけで、宛先サーバを特定することができる。その結果、中間装置２００は少ない処理および記憶容量で中間装置提供サービスを実現することができるようになる。【０１１４】
また、ＮＦＳのファイルハンドルのデータ長は、各ＮＦＳサーバにおいて、可変長または固定長である。例えばＮＦＳサーバ間でファイルハンドルのデータ長が異なれば、そのデータ長を、通信パケットを各ＮＦＳサーバへ転送する際のサーバ識別子として用いることができる。【０１１５】
中間装置２００は、ＮＦＳサーバ３０２およびＮＦＳサーバ３０３から、ＮＦＳプロトコルを用いて複数のファイルハンドルを取得しておき、取得したファイルハンドルと、上述したファイルハンドル生成方法とから、データアクセスサービスの統合に必要となるサーバ識別子を抽出する。【０１１６】
図８は、ＮＦＳプロトコルにおける各ＮＦＳサーバのファイルハンドルの例を示す表である。図８のファイルハンドル表４００には、ＡおよびＢという２つのＮＦＳサーバのファイルハンドルのデータパターンのリストが示されている。【０１１７】
ＮＦＳサーバＡのリストによれば、左から３桁目〜６桁目が全てのファイルハンドルに共通の「ｃｆｄｅ」である。また、ＮＦＳサーバＢのリストによれば、左から３桁目〜６桁目が全てのファイルハンドルに共通の「００００」である。このことから、中間装置２００は、３桁目〜６桁目のデータを、サーバの特定を可能にするサーバ識別子として抽出すればよい。【０１１８】
ＮＦＳサーバ３０２およびＮＦＳサーバ３０３から取得したファイルハンドルから、特定パターンまたは特定データ長によるサーバ識別子を抽出できなければ、中間装置２００はＮＦＳサーバ３０２およびＮＦＳサーバ３０３の全てのファイルハンドルを取得し、ファイルハンドルとＮＦＳサーバとを対応付けてテーブル化して、そのテーブルを保持する。そして、中間装置２００は、ＮＦＳクライアント１０１からの通信パケットを受けたときその通信パケットに含まれるファイルハンドルとテーブルを照合することにより、転送先のＮＦＳサーバを特定する。【０１１９】
中間装置２００では、上述のようにしてＮＦＳプロトコルの通信パケットに含まれるＮＦＳサーバのオリジナルのファイルハンドルから適切なＮＦＳサーバを特定できるようにパケット転送制御部２０２へ登録し、データアクセスサービスを統合する中間装置提供サービスのための転送ルールを中間装置提供サービス管理２０３から転送制御部２０２に登録した後、中間装置提供サービスを開始する。そして、その後、クライアント１０１からの通信パケットが中間装置２００を経由するようにネットワーク設定を変更する。図７の例では、ＮＦＳサーバ３０２のネットワーク３に付与されていたＩＰアドレスを中間装置２００のネットワーク１に付与すると共に、ネットワーク３のＩＰアドレスを他のＩＰアドレスへ変更する。また、中間装置２００に対して、ネットワーク３のＩＰアドレスを、ＮＦＳサーバ３０２への通信パケットの転送先アドレスとして登録する。これらの設定変更により、ＮＦＳクライアント１０１からの通信パケットが必ず中間装置２００を経由するように経路が変更される。【０１２０】
一般に、ＮＦＳプロトコルは、その下位プロトコルに当たるトランスポート層に、ＴＣＰまたはＵＤＰ（Ｕｎｉｆｉｅｄ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を用いる。【０１２１】
ＴＣＰでは、一般的には、中間装置２００がＴＣＰセッションを継続させるために、シーケンス番号などの情報が不整合とならないようにする必要がある。これを行わないとＴＣＰセッションが切断されてしまうこととなる。しかし、ＮＦＳプロトコルでは、ＴＣＰがＮＦＳプロトコルと独立して制御されているため、一部例外を除いてＴＣＰのセッションが切断されても、ＴＣＰの上位プロトコルであるＮＦＳプロトコルの制御は影響を受けない。また、ＵＤＰでは、そもそもＵＤＰ自身にセッションという概念がない。【０１２２】
したがって、ＴＣＰであれば、通信パケットの転送先がＮＦＳサーバ３０２から中間装置２００へ変更されたとき、導入前のＮＦＳクライアント１０１とＮＦＳサーバ３０２の間のセッションを切断し、中間装置２００とＮＦＳクライアント１０１の間で新たなセッションを再確立すればよい。また、ＵＤＰであれば、通信パケットの転送先がＮＦＳサーバ３０２から中間装置２００へ変更されたとき、中間装置２００はＮＦＳクライアント１０１からの通信パケットをそのままＮＦＳサーバ３０２に転送すればよい。このように、トランスポート層のプロトコルに関しては、ＮＦＳプロトコルの制御上、不整合を発生させることなく中間装置２００で通信パケットを扱うことができる。【０１２３】
ただし、一部例外として、ＴＣＰを使ってＮＦＳファイルシステムをソフトマウントしている場合、セッションが切断されると、ＮＦＳクライアントはセッション切断をエラーとして検出してしまう。したがって、ＴＣＰでソフトマウントしているＮＦＳクアイアントが存在する場合には、そのＮＦＳクライアントをオペレータにより中間装置２００に予め登録した後、中間装置２００を導入し、スイッチ１５０のポートミラーリングの機能により、ソフトマウントしているＮＦＳクライアントのＴＣＰセッションのセッション情報をセッション監視部２０４において取得し、中間装置提供サービス管理部２０３において転送ルールを作成して、パケット転送制御部２０２に登録しておく必要がある。【０１２４】
上述したように、ＮＦＳクライアント１０１からの通信パケットにはＮＦＳサーバ３０２で生成されたオリジナルのファイルハンドルが含まれている。パケット転送制御部２０２は、ＮＦＳサーバ３０２およびＮＦＳサーバ３０３から取得したファイルハンドル情報から抽出したファイルハンドルの特定パターン、またはＮＦＳサーバ３０２およびＮＦＳサーバ３０３の全てのファイルハンドルが登録されたテーブルを参照して転送先を決定する。【０１２５】
トランスポート層のプロトコルがＴＣＰであれば、中間装置２００は、パケット転送制御部２０２から、ＮＦＳサーバ３０２との間で新たにＴＣＰセッションを確立するか、あるいはソフトマウントしているＮＦＳクライアントのセッションについては、作成した転送ルールによりセッションを引き継ぎ、ＮＦＳクライアント１０１からの通信パケットをＮＦＳサーバ３０２に転送する。トランスポート層のプロトコルがＵＤＰであれば、中間装置２００は、パケット転送制御部２０２を用いて、ＮＦＳクライアント１０１からの通信パケットをそのままＮＦＳサーバ３０２に転送する。【０１２６】
また、中間装置２００は、中間装置提供サービスである、データアクセスサービスを統合するサービスの稼動を開始すると、クライアント１０１から通信パケットを受けたとき、パケット転送制御部２０２において、それぞれのＮＦＳサーバ生成のオリジナルのファイルハンドルを利用して、オペレータが設定した統合サービスの規則（内容）に基づいて適宜転送先をＮＦＳサーバ３０２またはＮＦＳサーバ３０３のいずれかに決定して転送することができる。【０１２７】
これにより、ＮＦＳクライアント１０１はＮＦＳサーバ３０２とＮＦＳサーバ３０３という２つのＮＦＳサーバの存在を意識することなく、１つのＮＦＳサーバとしてアクセスすることが可能となる。つまり、中間装置２００の導入と、それによる中間装置提供サービスであるデータアクセスサービスの統合とがＮＦＳクライアント１０１に対してシームレスに行われる。【０１２８】
{第２の実施例}
第２の実施例として、ＮＬＭ（Ｎｅｔｗｏｒｋ  Ｌｏｃｋ  Ｍａｎａｇｅｒ）プロトコル環境に本発明の中間装置を適用した場合を例示する。中間装置提供サービスの内容は、第１の実施例と同様である。【０１２９】
（ＮＬＭプロトコル環境での中間装置のシームレス導入）
ここでは、中間装置２００が第１の実施例と同様に、ＮＦＳクライアント１０１とＮＦＳサーバ３０２の間にシームレスに導入される例を示す。【０１３０】
ＮＬＭプロトコルは、ファイルのロック機能を提供するプロトコルであり、通常はＮＦＳプロトコルが用いられている環境で用いられる。ＮＦＳプロトコルはロック機能を有していないため、ＮＬＭプロトコルがそれを補完する。ＮＦＳプロトコルおよびＮＬＭプロトコルが利用されている環境において、ファイルをロックするために、ファイルのロックが状態情報としてＮＦＳサーバおよびＮＦＳクライアントに保存される。【０１３１】
この環境に中間装置をシームレスに導入し、ＮＬＭプロトコルのロック制御を不整合なく継続するには、中間装置は導入前のロックの状態情報を全て把握する必要がある。【０１３２】
ファイルのロック状態を知るための機能として、ＮＬＭプロトコルは、ファイルにかけられているロックを検査する命令を有している。中間装置２００は、ＮＦＳクライアント１０１とＮＦＳサーバ３０２の間のネットワークに入り込む前に、この命令を用いて、予めＮＦＳサーバ３０２から提供されている各ファイルに対するロックの状態情報を順次取得することができる。しかし、ＮＦＳサーバ３０２が管理しているファイルの数が膨大な場合、全てのロックの状態情報を取得するには時間がかかる。そのため、各ファイルのロックの状態情報を順次取得している間に、取得済みファイルのロック状態が変わってしまう可能性があり、中間装置２００は、導入時点での全てのファイルのロックの状態情報をロック検査命令によって正確に把握することは困難である。【０１３３】
また、ＮＬＭプロトコルは、ＮＦＳサーバが故障などでリブートした場合に備えて、リブート前に有効であったロックの状態情報を回復する機能を有している。さらに、ＮＬＭプロトコルは、ＮＦＳクライアントが故障などでリブートした場合に備えて、ＮＦＳサーバで保持していたロックの状態情報を破棄する機能を有している。中間装置２００では、この機能を用いることで、中間装置導入前のロックの状態を把握することができる。【０１３４】
（導入手順）
ＮＬＭプロトコルは、一般的にＮＦＳプロトコル利用環境で用いられるため、ここではシステムは図７に示した第１の実施例と同じ構成であるとする。【０１３５】
また、中間装置提供サービス管理部２０３では、オペレータによって指定されたサービス設定から、中間装置提供サービスを実行するために必要となるサービス固有の情報の一覧（必要サービス固有情報一覧）を作成し、セッション監視部２０４へ登録する。【０１３６】
まず、第１の実施例と同様に、中間装置２００およびＮＦＳサーバ３０３をネットワークスイッチ１５０に接続し、ネットワーク設定を変更する。次に、情報収集部２０６は、ＮＦＳプロトコルにより、ＮＦＳサーバ３０２に対してファイルアクセスを行っているＮＦＳクライアントの一覧をＮＦＳサーバ３０２から取得し、中間装置提供サービス管理部２０３へ送信する。このクライアント一覧は、ＮＦＳクライアントのＩＰアドレスおよびコンピュータ名の一覧であり、必ずＮＦＳプロトコルと共に用いられるＭＯＵＮＴプロトコルの命令（ＭＯＵＮＴ＿ＤＵＭＰ）を用いて取得できる。【０１３７】
クライアント一覧が取得された後、第１の実施例と同様にＩＰアドレスを変更して、本来であればＮＦＳサーバ３０２へ送られる通信パケットが中間装置２００へ送られるようにする。この経路変更の設定を行った後、中間装置提供サービス管理部２０３から、ＮＦＳクライアント一覧がセッション解除制御部２０５に送られ、セッション解除制御部２０５からクライアント一覧に含まれているＮＦＳクライアント１０１に対して、ＮＦＳサーバ３０２がリブートしたものとして、リブート前まで有効であったロックが無効となったことを示す通知を送信する。この通知には、ＮＬＭプロトコルと共に用いられるＳＭ（Ｓｔａｔｕｓ  Ｍｏｎｉｔｏｒ）プロトコルに用意されている命令（ＳＭ＿ＮＯＴＩＦＹ）が用いられる。実際にはＮＦＳサーバ３０２はリブートしていないが、中間装置２００は、ＮＦＳサーバ３０２のロック状態を知るために、このＳＭ＿ＮＯＴＩＦＹ命令をダミーで送信する。【０１３８】
このＳＭ＿ＭＯＴＩＦＹ命令を受信したＮＦＳクライアント１０１は、中間装置２００の導入直前の時点で有効であったロックの状態を回復するため、ロックのかかっていた全てのファイルを再びロックするために再ロック要求を、ＮＦＳサーバ３０２に送信する。【０１３９】
この再ロック要求は中間装置２００に送られるので、セッション監視部２０４は、この再ロック要求の内容から、ＮＦＳクライアント１０１がＮＦＳサーバ３０２のファイルに対してかけていた全てのロックの状態を取得し、セッション解除制御部２０５へ登録する。【０１４０】
さらに、セッション解除制御部２０５は、ＳＭプロトコルを用いて、ＮＦＳサーバ３０２にＮＦＳクライアント１０１がリブートしたことを示す命令（ＳＭ＿ＮＯＴＩＦＹ）を送信する。実際にはＮＦＳクライアント１０１はリブートしていないが、中間装置２００は、ＮＦＳサーバ３０２が保持しているロック状態をクリアするために、このＳＭ＿ＮＯＴＩＦＹ命令をダミーで送信する。これによりＮＦＳサーバ３０２に保持されていたロックの状態情報がクリアされる。次に、セッション解除制御部２０５は、登録されているロックの状態情報を元に、ＮＦＳクライアント１０１からの再ロック要求をＮＦＳサーバ３０２へ送る。また、正しくロックが保持できたファイルから、中間装置提供サービス管理部２０３へロックの状態情報が登録される。【０１４１】
なお、ここでは、一例として、中間装置２００は、ＳＭプロトコルによるＮＦＳクライアント１０１がリブートしたことを示すＳＭ＿ＮＯＴＩＦＹ命令をＮＦＳサーバ３０２に送信することとした。しかし、中間装置２００は、それに代えて、ＮＬＭプロトコルに用意されている要求元が保持していたロックをすべて無効にする命令（ＮＬＭ＿ＦＲＥＥＡＬＬ）を用いてもよい。これによってもＮＦＳサーバ３０２が保持している全てのロックを無効にすることができる。【０１４２】
以上の一連の操作により、中間装置２００は、中間装置２００の導入直前に有効であった全てのロック状態情報を取得することができる。これにより、中間装置２００は、自身が把握しているロックの状態と、ＮＦＳサーバ３０２における実際のロックの状態とを整合させることができる。【０１４３】
また、中間装置２００の中間装置提供サービス管理部２０３にて把握しているロックの状態情報は、中間装置提供サービスの一環として利用される。例えば、中間装置２００は、中間装置提供サービスの１つとして、各ＮＦＳサーバのストレージ容量の平滑化やアクセス負荷の分散を目的としてＮＦＳサーバ３０２およびＮＦＳサーバ３０３間でデータを移す処理を行うことが考えられる。その場合、データを移す処理をＮＦＳクライアント１０１に隠蔽しながら実行することが望ましく、データの移行先にはデータ移行元と同じロックの状態を再現する必要がある。そのために中間装置提供サービス管理部２０３はロック状態情報をＮＬＭのパケットの転送ルールへと反映させ、パケット転送制御部２０２へロックの状態情報をパケット転送の補助情報として登録する。【０１４４】
{第３の実施例}
第３の実施例として、ＣＩＦＳプロトコル環境に本発明の中間装置を適用した場合を例示する。中間装置提供サービスの内容は第１および第２の実施例と同様である。【０１４５】
（ＣＩＦＳプロトコル環境での中間装置のシームレス導入）
ここでは、中間装置は複数のＣＩＦＳサーバのストレージリソースの統合を目的として導入されるものとする。新たなＣＩＦＳサーバが導入され、中間装置が既存のＣＩＦＳサーバと新たに導入されたＣＩＦＳサーバとを統合するものである。【０１４６】
図９は、第３の実施例におけるシステムの構成を示すブロック図である。図９には、中間装置２００および新規のＣＩＦＳサーバ３０５が導入された後のシステムの構成が示されている。【０１４７】
図９を参照すると、本実施例のシステムは、ＣＩＦＳクライアント１０２、中間装置２００、ＣＩＦＳサーバ３０４、３０５、およびネットワークスイッチ１５０、１５１を有している。ＣＩＦＳサーバ３０５が新たに導入されたＣＩＦＳサーバである。図９では、各装置について１つあるいは２つが例示されているが、各装置の数は任意である。【０１４８】
ＣＩＦＳクライアント１０２、中間装置２００，ＣＩＦＳサーバ３０４、３０５の各々は、他の機器との通信のためにネットワーク接続用のインタフェースを有している。中間措置２００はネットワーク１およびネットワーク５と、ＣＩＦＳクライアント１０２はネットワーク２と、ＣＩＦＳサーバ３０４はネットワーク３と、ＣＩＦＳサーバ３０５はネットワーク４とそれぞれ接続されている。そして、ネットワーク１〜３はネットワークスイッチ１５０に接続され、ネットワーク４、５はネットワークスイッチ１５１に接続されている。この構成によりＣＩＦＳクライアント１０２、中間装置２００、およびＣＩＦＳサーバ３０４、３０５は相互に通信可能となっている。【０１４９】
ＣＩＦＳサーバ３０４、３０５は、ネットワークを介してＣＩＦＳクライアント１０２に情報処理サービスを提供することができる。ＣＩＦＳサーバ３０２、３０３が提供するサービスは、ストレージリソースへのアクセスをクライアントに提供するサービスであり、これを「データアクセスサービス」と称する。【０１５０】
ＣＩＦＳクライアント１０２はＣＩＦＳサーバ３０４、３０５にアクセスして、ＣＩＦＳサーバ３０４、３０５によって提供されるデータアクセスサービスを利用することができる。【０１５１】
ネットワークスイッチ１５１はネットワークスイッチ１５０と同様のものであり、さらにネットワークスイッチ１５０および中間装置２００は図１、図２に示したものと同様のものである。【０１５２】
（導入手順）
ＣＩＦＳクライアント１０２とＣＩＦＳサーバ３０４の間でＣＩＦＳプロトコルのセッションが確立され、通信が行われている状況において、ＣＩＦＳクライアント１０２とサーバ３０４間のネットワークに中間装置２００をシームレスに導入する手順について説明する。【０１５３】
ここで、ＣＩＦＳクライアント１０２とサーバ３０４が、ネットワークスイッチ１５０に接続されたネットワーク２、３を介してセッションを確立しており、通信している状況であるとする。そして、この状態から、中間装置２００のネットワーク１をネットワークスイッチ１５０に接続し、中間装置２００のネットワーク５およびＣＩＦＳサーバ３０５のネットワーク６をネットワークスイッチ１５１に接続する。【０１５４】
次に、ネットワーク２およびネットワーク３と同一のネットワークドメインとなるようなＩＰアドレスをＣＩＦＳサーバ３０５のネットワーク４に付与する。また、ネットワーク１とネットワーク５の間で中間装置２００がネットワークブリッジとして機能するように中間装置２００にネットワーク設定を行い、ネットワークを稼動させる。【０１５５】
中間装置２００およびＣＩＦＳサーバ３０５へのネットワーク設定を行った後、ＣＩＦＳサーバ３０４のネットワーク３をネットワークスイッチ１５０から抜き取り、ネットワークスイッチ１５１へ接続する。【０１５６】
このネットワーク３の接続の変更により、ＣＩＦＳクライアント１０２からのＣＩＦＳプロトコルによる通信パケットは、ネットワーク１、中間装置２００、ネットワーク５、およびネットワーク３を経由してＣＩＦＳサーバ３０４に送られるようになる。【０１５７】
ＣＩＦＳプロトコルでは、セッションを確立したユーザを識別するために、ＣＩＦＳクライアント１０２とＣＩＦＳサーバ３０４の間でのユーザ認証を行った後、そのセッション内のみで有効なユーザＩＤがＣＩＦＳサーバ３０４によって付与される。これにより、ユーザＩＤは、ユーザの認証情報であるユーザ名およびパスワードを第三者が取得できないような情報となっている。そのため、中間装置２００は、ＣＩＦＳクライアント１０２とＣＩＦＳサーバ３０４の間の通信パケットを収集しても、中間装置２００の導入前に確立されていたセッションのユーザ情報を特定することができない。そこで、中間装置２００は、中間装置導入前に確立されていたセッションについては、中間装置提供サービスの適用対象外として扱う。【０１５８】
一方、中間装置２００の導入後にＣＩＦＳクライアント１０２から新規に確立されるセッションについては、中間装置２００は、セッションを確立するときに送受信される通信パケットからユーザ認証情報を取得することができる。また、中間装置２００は、ＣＩＦＳプロトコルによるセッションが確立されるときに送受信される通信パケットを取得することにより、ＣＩＦＳサーバのファイルにかけられているロックの状態などのセッション情報も漏れなく取得できる。それらを利用すれば、中間装置２００はＣＩＦＳサーバとの間でセッションを確立し、ＣＩＦＳクライアント１０２からの接続先となるＣＩＦＳサーバを、中間装置提供サービスのルールに基づいて変更することができる。このようにして、中間装置２００は、中間装置２００導入後にＣＩＦＳクライアント１０２から新規に確立されるセッションを、中間装置提供サービスの適用対象として扱う。【０１５９】
したがって、中間装置２００では、中間装置提供サービス管理部２０３が、オペレータによって指定されたサービス設定によるパケット転送ルールに加え、中間装置２００の導入前から確立されていたセッションを中間装置提供サービスの適用対象外として、その通信パケットをＣＩＦＳサーバに転送し、一方、中間装置２００の導入後に構築されるセッションを中間装置提供サービスの適用対象として、その通信パケットをＣＩＦＳサーバに転送する転送ルールをパケット転送制御部２０２へ登録することにより、中間装置２００の導入前から構築されていたセッションも中断することなく扱うことができるようになるので、中間装置２００のシームレスな導入が可能となる。【０１６０】
{第４の実施例}
第４の実施例として、オンラインショッピングサイトに本発明の中間装置を適用した場合を例示する。中間装置提供サービスの内容は、複数のＷＥＢサーバで提供されるＷＥＢサービスを統合し、ＷＥＢクライアントのユーザに１つのＷＥＢサービスとして提供するサービスである。例えば、ユーザは複数のオンラインショッピンサイトで販売されている商品を１回のアクセスで購入し、決済することができるというサービスが考えられる。【０１６１】
（オンラインショッピングサイト環境での中間装置のシームレス導入）
ここでは、中間装置はオンラインショッピングサイトを運用している複数のＷＥＢサーバを統合し、個々のショッピングサイトを統合して、１つのショッピングサイトとして見せることを目的として導入されるものとする。【０１６２】
図１０は、第４の実施例におけるシステムの構成を示すブロック図である。本システムは、中間装置２００および、少なくとも２台以上のＷＥＢサーバ３０６、３０７、決済サーバ３０８、少なくとも１台以上のＷＥＢクライアント１０３、およびネットワークスイッチ１５０により構成される。【０１６３】
ＷＥＢクライアント１０３は、ネットワーク２からインターネット７を経由して、図１０のサーバ群にアクセス可能であり、各ＷＥＢサーバからＷＥＢコンテンツを取得して、情報を表示する。【０１６４】
ＷＥＢサーバ３０６、３０７は、ネットワーク３、４を経由してネットワークスイッチ１５０に接続されている。そして、ＷＥＢサーバ３０６、３０７は、オンラインショッピングにおける商品の選択までのＷＥＢコンテンツをＷＥＢクライアント１０３へ提供し、ＷＥＢクライアント１０３の情報と選択された商品情報を関連付けて１つのセッションとして管理する。さらに、ＷＥＢサーバ３０６、３０７は、そのセッション情報を決済サーバ３０８に送る。【０１６５】
決済サーバ３０８は、ネットワーク５を経由してネットワークスイッチ１５０に接続されたＷＥＢサーバである。そして、決済サーバ３０８は、ＷＥＢサーバ３０６、３０７からのセッション情報を受けて、ＷＥＢクライアント１０３へ商品の支払い方法および配送方法を選択するためのＷＥＢコンテンツを提供する。【０１６６】
なお、ＷＥＢクライアント１０３は、ＷＥＢサーバ３０６、３０７との間では、個人を特定するためのログイン作業や、暗号化通信を用いないものとし、決済サーバ３０８へアクセスする際にログイン作業や暗号化通信を用いるものとする。【０１６７】
ネットワークスイッチ１５０、および中間装置２００は、図１、および図２に示したものと同様のものである。【０１６８】
以上のようなシステム上で、ＷＥＢクライアント１０３がオンラインショッピングサイトにアクセスして商品選択を行うとき、中間装置２００は、ＷＥＢサーバ３０６とＷＥＢサーバ３０７のオンラインショッピングサイトを統合し、ＷＥＢクライアント１０３からＷＥＢサーバ３０６および３０７の両方のサイトの商品を選択可能とするような中間装置提供サービスをＷＥＢクライアント１０３へ提供するものとする。【０１６９】
また、中間装置２００には、オンラインショッピングサイトを運用するオペレータにより、予め、ＷＥＢサーバ３０６とＷＥＢサーバ３０７のオンラインショッピングサイト統合のための設定がなされているものとする。例えば、ＷＥＢサーバ３０６で提供される商品選択ページに、ＷＥＢサーバ３０７で提供される商品を追加し、その追加した商品の情報を表示するための設定がなされている。【０１７０】
（導入手順）
ＷＥＢクライアント１０３とＷＥＢサーバ３０６の間でセッションが確立され、通信が行われている状況において、ＷＥＢクライアント１０３とＷＥＢサーバ３０６間のネットワークに中間装置２００をシームレスに導入する手順について説明する。【０１７１】
ここで、ＷＥＢクライアント１０３とＷＥＢサーバ３０６が、ネットワークスイッチ１５０に接続されたネットワーク２、３を介してセッションを確立しており、通信している状況であるとする。そして、この状態から、中間装置２００のネットワーク１をネットワークスイッチ１５０に接続する。【０１７２】
中間装置２００において、中間装置提供サービス管理部２０３は、オペレータによって指定されたサービス設定から、サービスを実行するために必要となる情報の一覧（必要情報一覧）を作成し、セッション監視部２０４へ登録する。この必要情報一覧には、セッションＩＤと商品番号が含まれる。このセッションＩＤは、ＷＥＢクライアント１０３とＷＥＢサーバ３０６の間のセッション情報において各セッションを識別するための識別子である。この商品番号は、ＷＥＢサーバ３０６が提供している商品の中からＷＥＢクライアントが選択した商品を示す番号である。【０１７３】
必要情報一覧が決定した後、中間装置２００を新たにネットワークスッチ１５０に接続する。これによりシステムは図１０に示した物理構成となる。【０１７４】
ネットワークスイッチ１５０は、通信パケットのコピー転送機能を用いて、ネットワーク２とネットワーク３の間に流れている通信パケットを中継装置２００のネットワーク１へ転送するように設定しておく。そして、通信パケットが転送されてくるようになった中間装置２００において、データパケットはネットワークインターフェース２０１を通してセッション監視部２０４に到達する。【０１７５】
セッション監視部２０４は、クライアント１００とサーバ３００の間で確立されていた既存のセッションで通信されているセッション情報を解析する。そして、セッション監視部２０４は、セッション情報から、セッションＩＤと、ＷＥＢクライアント１０３が選択した全ての商品の商品番号とを抽出し、中間装置提供サービス管理部２０３へ送る。【０１７６】
中間装置導入前から確立されていたセッションについての全てのセッションＩＤおよび商品番号を、セッション情報から取得できた場合、中間装置提供サービス管理部２０３は、それら取得した情報と、オペレータによって指定されたサービス設定とから、通信パケットを適切に転送するための転送ルールを作成し、パケット転送制御部２０２へ登録する。この場合の転送ルールとは、商品一覧を表示するＷＥＢコンテンツのＵＲＬアドレスをＷＥＢクライアント１０３が要求したとき、ＷＥＢサーバ３０６とＷＥＢサーバ３０７のＷＥＢコンテンツを統合するためのルールである。この転送ルールによれば、ＷＥＢサーバ３０６のＷＥＢコンテンツが要求されたとき、ＷＥＢサーバ３０７の商品一覧のＷＥＢコンテンツを取得し、ＷＥＢサーバ３０６のコンテンツと統合して１つのＷＥＢコンテンツとしてＷＥＢクライアント１０３へ返送することとなる。【０１７７】
転送ルールが作成されると、セッション上を流れる通信パケットの経路をＷＥＢクライアント１０３からＷＥＢサーバ３０６まで直接に到達する経路から、クライアント１００から中間装置２００を経由してＷＥＢサーバ３０６に到達する経路へ変更する。その際、ネットワークスイッチ１５０の設定の変更、中間装置２００またはサーバ３００のＩＰアドレスの変更など、ネットワークスイッチ１５０に接続されているネットワークの構成に応じた方法が用いられる。【０１７８】
通信パケットの経路が中間装置２００を経由するようになると、ＷＥＢクライアント１０３からサーバ３０６間で確立していたセッション上を流れる通信パケットは、中間装置２００では、ネットワークインターフェース２０１を介してパケット転送制御部２０２に到達する。中間装置２００は、ＷＥＢサーバ３０６との間に新たにセッションを確立し、クライアント１００から送られる通信パケット内のデータを、新たに確立したセッションを用いてＷＥＢサーバ３０６に転送するとともに、中間装置２００の導入前から確立されていたセッションが切断されないように、あらかじめ取得していたセッション情報を元に、セッションを維持する。【０１７９】
さらに、中間装置提供サービス管理部２０３は、ＷＥＢクライアント１０３と中間装置２００の間のセッション情報と、中間装置２００とＷＥＢサーバ３０６の間のセッション情報との整合性が取れるように、パケット転送制御部２０２に新たに転送ルールを追加する。この場合の転送ルールとは、ＷＥＢクライアント１０３とＷＥＢサーバ３０６間で生成されていたセッションＩＤをＷＥＢクライアント１０３と中間装置２００間のセッションで用い、中間装置２００とＷＥＢクライアント１０３の間のセッションＩＤと、中間装置２００とＷＥＢサーバ３０６間のセッションＩＤとの変換を行うためのルールである。【０１８０】
中間装置２００が導入される前から確立されていた全てのセッションが、中間装置２００を経由し、かつＷＥＢクライアント１０３と中間装置２００の間のセッションと、中間装置２００とＷＥＢサーバ３０６の間のセッションとの２つのセッション間で整合性が取れるようになった後、中間装置提供サービス管理部２０３は、予め登録しておいた転送ルールを有効にするようにパケット転送制御部２０２に指示し、中間装置提供サービスを開始する。【０１８１】
中間装置提供サービスの提供が開始された後、ＷＥＢクライアント１０３が、特定のＵＲＬのＷＥＢコンテンツを要求すれば、中間装置２００は、コンテンツ統合の転送ルールにより、ＷＥＢサーバ３０７との間に新たにセッションを確立し、所望のＷＥＢコンテンツを取得するとともに、ＷＥＢサーバ３０６からもＷＥＢコンテンツを取得してそれらを統合する。そして、中間装置２００は、既に選択済みの商品については、選択済みであることを示す情報をＷＥＢコンテンツに記載した後、統合されたＷＥＢコンテンツをＷＥＢクライアント１０３へ返送する。このときも、ＷＥＢクライアント１０３と中間装置２００間、中間装置２００とＷＥＢサーバ３０６間、および中間装置２００とＷＥＢサーバ３０７も含めた３つのセッション間で通信データを置き換えて、セッションを維持する。【０１８２】
また、ＷＥＢクライアント１０３が決済処理を要求すると、中間装置２００は、決済要求をＷＥＢサーバ３０６、３０７に送信し、ＷＥＢサーバ３０６およびＷＥＢサーバ３０７から決済サーバ３０８に送信されるセッションＩＤと商品番号情報を中間装置２００で受け取る。そして、中間装置２００は、クライアントが中間装置導入前に確立していたセッションのセッションＩＤと、ＷＥＢサーバ３０６、３０７からの商品番号とをまとめて、決済サーバ３０８へ転送する。さらに、中間装置２００は、決済サーバ３０８のＷＥＢコンテンツへのＵＲＬを含むＷＥＢコンテンツをＷＥＢクライアント１０３へ返送する。【０１８３】
そして、中間装置２００は、決済サーバ３０８とＷＥＢクライアント１０３間の通信には何も関与しない。
【図１】
0004553150.tif 000002
【図２】
0004553150.tif 000003
【図３】
0004553150.tif 000004
【図４】
0004553150.tif 000005
【図５】
0004553150.tif 000006
【図６】
0004553150.tif 000007
【図７】
0004553150.tif 000008
【図８】
0004553150.tif 000009
【図９】
0004553150.tif 000010
【図１０】
0004553150.tif 000011