(57)【要約】【課題】パブリック仮想ＩＰとプライベート仮想ＩＰとが割り当てられたサーバ装置において、更新版のウェブアプリケーションへの切り替えを短時間で行うことができるようにする。【解決手段】第１のノード３０１に紐付く第１のプライベート仮想ＩＰとパブリック仮想ＩＰとを対応づけた第１のＮＡＴ情報から、第２のノード３０２に紐付く第２のプライベート仮想ＩＰとパブリック仮想ＩＰとを対応づけた第２のＮＡＴ情報へと、ＮＡＴテーブル記憶部１０に記憶されるＮＡＴテーブルの内容を更新するＮＡＴテーブル更新部１５を備え、現用版のウェブアプリケーションが第１のノード３０１で稼働しているときに、更新版のウェブアプリケーションを第２のノード３０２にあらかじめ実装しておき、その後にＮＡＴテーブルの内容を更新するだけで、更新版のウェブアプリケーションへの切り替えを行うことができるようにする。【選択図】図２
2017173995.tif 000002
【特許請求の範囲】
【請求項１】
パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとが割り当てられたサーバ装置であって、
上記パブリック仮想ＩＰアドレスと上記プライベート仮想ＩＰアドレスとを対応づけたＮＡＴテーブルを記憶するＮＡＴテーブル記憶部と、
現用版のウェブアプリケーションが実装された第１のノードに紐付く第１のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第１のＮＡＴ情報から、更新版のウェブアプリケーションが実装された第２のノードに紐付く第２のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第２のＮＡＴ情報へと、上記ＮＡＴテーブル記憶部に記憶される上記ＮＡＴテーブルの内容を更新するＮＡＴテーブル更新部とを備えたことを特徴とするサーバ装置。
【請求項２】
クライアントとの間で接続されたセッションをレスポンス後も維持するキープアライブ機能がオンとされているときに、ウェブアプリケーションの更新要求があった場合、接続が維持されているセッションを切断するセッション制御部を更に備え、
上記ＮＡＴテーブル更新部は、上記セッション制御部により上記セッションが切断された後、上記ＮＡＴテーブルの内容を更新することを特徴とする請求項２に記載のサーバ装置。
【請求項３】
上記セッション制御部は、上記セッションを切断する際に、キープアライブ受け入れを拒否するように上記第１のノードに指示することを特徴とする請求項２に記載のサーバ装置。
【請求項４】
パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとが割り当てられたサーバ装置と、当該サーバ装置に対してプライベートネットワーク側に接続された複数のノードとを備えて成るクラウドシステムであって、
上記サーバ装置は、
上記パブリック仮想ＩＰアドレスと上記プライベート仮想ＩＰアドレスとを対応づけたＮＡＴテーブルを記憶するＮＡＴテーブル記憶部と、
現用版のウェブアプリケーションが実装された第１のノードに紐付く第１のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第１のＮＡＴ情報から、更新版のウェブアプリケーションが実装された第２のノードに紐付く第２のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第２のＮＡＴ情報へと、上記ＮＡＴテーブル記憶部に記憶される上記ＮＡＴテーブルの内容を更新するＮＡＴテーブル更新部とを備えたことを特徴とするクラウドシステム。
【請求項５】
クライアントとの間で接続されたセッションをレスポンス後も維持するキープアライブ機能がオンとされているときに、ウェブアプリケーションの更新要求があった場合、接続が維持されているセッションを切断するセッション制御部を更に備え、
上記ＮＡＴテーブル更新部は、上記セッション制御部により上記セッションが切断された後、上記ＮＡＴテーブルの内容を更新することを特徴とする請求項４に記載のクラウドシステム。
【請求項６】
上記第１のノードおよび上記第２のノードは、上記セッションの確立後に上記クライアントから送られてくるリクエストに含まれるキープアライブ設定要求を拒否することにより、上記キープアライブ機能が常にオフとなるようにすることを特徴とする請求項４に記載のクラウドシステム。
【請求項７】
パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとが割り当てられたサーバ装置において、適用するウェブアプリケーションを切り替えるための方法であって、
上記サーバ装置のＮＡＴテーブル更新部が、上記ウェブアプリケーションの切替要求を受け付けたか否かを判定する第１のステップと、
上記サーバ装置のＮＡＴテーブル更新部が、上記切替要求を受け付けた場合、現用版のウェブアプリケーションが実装された第１のノードに紐付く第１のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第１のＮＡＴ情報から、更新版のウェブアプリケーションが実装された第２のノードに紐付く第２のプライベート仮想ＩＰアドレスと上記パブリック仮想ＩＰアドレスとを対応づけた第２のＮＡＴ情報へと、ＮＡＴテーブル記憶部に記憶されるＮＡＴテーブルの内容を更新する第２のステップとを有することを特徴とするウェブアプリケーション切り替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置、クラウドシステムおよびウェブアプリケーション切り替え方法に関し、特に、パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとを割り当てたサーバ装置およびこれを用いたクラウドシステム、当該サーバ装置におけるウェブアプリケーションの切り替え方法に関するものである。
【背景技術】
【０００２】
近年、インターネット上のサーバ装置にウェブアプリケーションを実装し、クライアントからの要求に応じてサーバ装置がウェブアプリケーションを実行することにより、所与のサービスをクライアントに提供するクラウドシステムが広く使われている。クラウドシステムでは、マルチテナント機能を実現するために、サーバ装置に割り当てる仮想ＩＰアドレス体系をパブリックとプライベートとに分割し、パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとを対応づけてＮＡＴ（Network Address Translation）することで通信を可能としている。
【０００３】
パブリック仮想ＩＰアドレス（以下、パブリック仮想ＩＰと略す）は、クライアント側（インターネット側）のパブリックネットワークと通信するための仮想ＩＰアドレスである。プライベート仮想ＩＰアドレス（以下、プライベート仮想ＩＰと略す）は、サーバ側（ＬＡＮ側）のプライベートネットワークと通信するための仮想ＩＰアドレスである。プライベート仮想ＩＰは自由に割り当てることが可能であり、これによってマルチテナンシーの管理が容易となるようになされている。
【０００４】
ところで、ウェブアプリケーションは、バージョンアップやセキュリティ対策など、種々の理由で適宜更新することが必要となる。しかしながら、従来は、更新版のウェブアプリケーションをサーバ装置に適用するための切り替えを手動で行っていたため、比較的長い時間のサービス停止が発生していた。
【０００５】
また、ウェブアプリケーションを更新するに当たっては、事前に動作の正当性を検証しておく必要があるが、その検証のために現用版（本番系）のウェブアプリケーションを停止できないため、検証系といった別の環境を準備して、更新版のウェブアプリケーションの開発に対応することが殆どである。この場合、検証系は本番系とは別の環境であるため、更新版のウェブアプリケーションを検証系の環境から本番系の環境に移行すると、検証系では正しく動作していたのが、本番系では正しく動作しなくなってしまうという問題が発生することもあった。
【０００６】
なお、現用系サーバから予備系サーバへのサーバ切り替えを行うことが可能な技術が知られている（例えば、特許文献１参照）。この特許文献１に記載のネットワークシステムでは、ネットワークに接続された特定のサーバコンピュータのアドレスを他のサーバコンピュータのアドレスとして仮想的に設定して、特定のサーバコンピュータのサーバ機能を他のサーバコンピュータによって代替するサーバ切り替えを行う。また、特定のサーバコンピュータとクライアントコンピュータとの間で送受信されるパケットを、サーバ切り替えされた他のサーバコンピュータとクライアントコンピュータとの間で送受信されるパケットに変換する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−２３０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上述のような問題を解決するために成されたものであり、パブリック仮想ＩＰとプライベート仮想ＩＰとが割り当てられたサーバ装置において、更新版のウェブアプリケーションへの切り替えを短時間で行うことができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
上記した課題を解決するために、本発明では、パブリック仮想ＩＰアドレスとプライベート仮想ＩＰアドレスとを対応づけたＮＡＴテーブルを記憶するＮＡＴテーブル記憶部を備えたサーバ装置において、現用版のウェブアプリケーションが実装された第１のノードに紐付く第１のプライベート仮想ＩＰアドレスとパブリック仮想ＩＰアドレスとを対応づけた第１のＮＡＴ情報から、更新版のウェブアプリケーションが実装された第２のノードに紐付く第２のプライベート仮想ＩＰアドレスとパブリック仮想ＩＰアドレスとを対応づけた第２のＮＡＴ情報へと、ＮＡＴテーブル記憶部に記憶されるＮＡＴテーブルの内容を更新するようにしている。
【発明の効果】
【００１０】
上記のように構成した本発明によれば、現用版のウェブアプリケーションが第１のノードで稼働しているときに、更新版のウェブアプリケーションを第２のノードにあらかじめ実装しておき、その後にＮＡＴテーブルの内容を更新するだけで、更新版のウェブアプリケーションへの切り替えを行うことができる。また、更新版のウェブアプリケーションを、切り替え前に動作の正当性を検証済みの第２のノードにおいて引き続き使用するため、切り替え後に動作環境が変わって不具合を起こすことがなく、そのための修正などで時間が取られてしまうこともない。これにより、現用版から更新版へのウェブアプリケーションの切り替えを短時間で行うことができる。
【図面の簡単な説明】
【００１１】
【図１】第１および第２の実施形態によるサーバ装置を適用したクラウドシステムの全体構成例を示す図である。
【図２】第１の実施形態によるサーバ装置の機能構成例を示すブロック図である。
【図３】第２の実施形態によるサーバ装置の機能構成例を示すブロック図である。
【図４】第２の実施形態によるサーバ装置および第１，第２のノードの動作例を示すシーケンス図である。
【図５】第２の実施形態によるサーバ装置および第１，第２のノードの他の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、第１の実施形態によるサーバ装置を適用したクラウドシステムの全体構成例を示す図である。図１に示すクラウドシステムは、第１の実施形態によるサーバ装置１００、当該サーバ装置１００に対してインターネット側のパブリックネットワークに接続されたクライアント２００、サーバ装置１００に対してＬＡＮ側のプライベートネットワークに接続された第１および第２のノード３０１，３０２を備えて構成されている。
【００１３】
サーバ装置１００は、パブリック仮想ＩＰアドレス（以下、パブリック仮想ＩＰと略す）とプライベート仮想ＩＰアドレス（以下、プライベート仮想ＩＰと略す）とが割り当てられた仮想サーバ装置である。第１の実施形態では、サーバ装置１００に対して１つのパブリック仮想ＩＰを割り当てるとともに、２つのプライベート仮想ＩＰを割り当てている。
【００１４】
これに対して、第１および第２のノード３０１，３０２は、プライベートＩＰアドレス（以下、プライベートＩＰと略す）が割り当てられたノードであり、例えばウェブアプリケーションが実装された実サーバ装置（Ｗｅｂサーバ）である。第１の実施形態において、第１のノード３０１は、現用版のウェブアプリケーションが実装された実サーバであり、第２のノード３０２は、更新版のウェブアプリケーションが実装された実サーバであるものとする。
【００１５】
ウェブアプリケーションの切り替えが行われる前は、クライアント２００からサーバ装置１００を介して第１のノード３０１に対してアクセスが行われ、クライアント２００からの要求に応じて第１のノード３０１が所与のサービスを提供する。ここで提供するサービスは、現用版のウェブアプリケーションによって実行されるものである。
【００１６】
クライアント２００からサーバ装置１００を介して第１のノード３０１に対してアクセスが行われる際に、サーバ装置１００は、クライアント２００から指定されたパブリック仮想ＩＰを第１のノード３０１のプライベートＩＰ（以下、第１のプライベートＩＰという）に変換するＮＡＴを行うことにより、両者間の通信を実現している。
【００１７】
一方、ウェブアプリケーションの切り替えが行われた後は、クライアント２００からサーバ装置１００を介して第２のノード３０２に対してアクセスが行われ、クライアント２００からの要求に応じて第２のノード３０２が所与のサービスを提供する。ここで提供するサービスは、更新版のウェブアプリケーションによって実行されるものである。
【００１８】
クライアント２００からサーバ装置１００を介して第２のノード３０２に対してアクセスが行われる際に、サーバ装置１００は、クライアント２００から指定されたパブリック仮想ＩＰを第２のノード３０２のプライベートＩＰ（以下、第２のプライベートＩＰという）に変換するＮＡＴを行うことにより、両者間の通信を実現している。
【００１９】
図２は、第１の実施形態によるサーバ装置１００の機能構成例を示すブロック図である。図２に示すように、サーバ装置１００は、記憶媒体としてＮＡＴテーブル記憶部１０を備えている。また、サーバ装置１００は、その機能構成として、パブリック側通信部１１、プライベート側通信部１２、アドレス変換部１３、ＮＡＴテーブル更新部１５および操作受付部１６を備えている。
【００２０】
上記各機能ブロック１１〜１３，１５，１６は、ハードウェア、ＤＳＰ（Digital Signal Processor）、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック１１〜１３，１５，１６は、実際にはコンピュータのＣＰＵ、ＲＡＭ、ＲＯＭなどを備えて構成され、ＲＡＭやＲＯＭ、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。
【００２１】
ＮＡＴテーブル記憶部１０は、サーバ装置１００に割り当てられたパブリック仮想ＩＰとプライベート仮想ＩＰとを対応づけたＮＡＴテーブルを記憶する。現用版のウェブアプリケーションが実装された第１のノード３０１を使用している場合、ＮＡＴテーブル記憶部１０には、パブリック仮想ＩＰと、第１のノード３０１に紐付く第１のプライベート仮想ＩＰとを対応づけた第１のＮＡＴテーブル（特許請求の範囲の第１のＮＡＴ情報に相当）が記憶される。第１のプライベート仮想ＩＰには、第１のプライベートＩＰが紐付けられている。
【００２２】
一方、更新版のウェブアプリケーションが実装された第２のノード３０２を使用する状態に切り替えられた場合、ＮＡＴテーブル記憶部１０には、パブリック仮想ＩＰと、第２のノード３０２に紐付く第２のプライベート仮想ＩＰとを対応づけた第２のＮＡＴテーブル（特許請求の範囲の第２のＮＡＴ情報に相当）が記憶される。第２のプライベート仮想ＩＰには、第２のプライベートＩＰが紐付けられている。
【００２３】
パブリック側通信部１１は、パブリック仮想ＩＰを用いて、クライアント２００との間で通信を行う。プライベート側通信部１２は、プライベート仮想ＩＰを用いて、第１のノード３０１または第２のノード３０２との間で通信を行う。通常は、プライベート側通信部１２は、現用版のウェブアプリケーションが実装された第１のノード３０１との間で通信を行う。
【００２４】
アドレス変換部１３は、ＮＡＴテーブル記憶部１０に記憶されているＮＡＴテーブルに基づいて、パブリック仮想ＩＰとプライベートＩＰとの間でアドレスの変換を行う。現用版のウェブアプリケーションが実装された第１のノード３０１を使用している場合、アドレス変換部１３は、ＮＡＴテーブル記憶部１０に記憶されている第１のＮＡＴテーブルに基づいて、パブリック仮想ＩＰと第１のプライベートＩＰとの間でアドレスの変換を行う。
【００２５】
一方、更新版のウェブアプリケーションが実装された第２のノード３０２を使用する状態に切り替えられた場合、アドレス変換部１３は、ＮＡＴテーブル記憶部１０に記憶されている第２のＮＡＴテーブルに基づいて、パブリック仮想ＩＰと第２のプライベートＩＰとの間でアドレスの変換を行う。
【００２６】
ＮＡＴテーブル更新部１５は、現用版のウェブアプリケーションが実装された第１のノード３０１に紐付く第１のプライベート仮想ＩＰとパブリック仮想ＩＰとを対応づけた第１のＮＡＴテーブルから、更新版のウェブアプリケーションが実装された第２のノード３０２に紐付く第２のプライベート仮想ＩＰとパブリック仮想ＩＰアドレスとを対応づけた第２のＮＡＴテーブルへと、ＮＡＴテーブル記憶部１０に記憶されるＮＡＴテーブルの内容を更新する。
【００２７】
このＮＡＴテーブル更新部１５によるＮＡＴテーブルの更新は、ウェブアプリケーションの切替要求を行うためのユーザ操作を操作受付部１６が受け付けたときに実行する。その切り替えの前提として、ユーザは、現用版のウェブアプリケーションが実装されている第１のノード３０１が使用されているときに、更新版のウェブアプリケーションを第２のノード３０２にあらかじめ実装しておき、第２のＮＡＴテーブルもあらかじめ作成しておく。
【００２８】
そして、第２のノード３０２に対する更新版のウェブアプリケーションの実装が済んで、その検証も終わった後に、ユーザは、第２のＮＡＴテーブルをサーバ装置１００に入力して、ウェブアプリケーションの切替を指示する操作を行う。このユーザ操作を操作受付部１６が受け付けると、ＮＡＴテーブル更新部１５は、ウェブアプリケーションの切替要求を操作受付部１６から受けて、ＮＡＴテーブル記憶部１０に記憶されている第１のＮＡＴテーブルを、上記入力された第２のＮＡＴテーブルに書き換える。
【００２９】
ＮＡＴテーブル記憶部１０に記憶されるＮＡＴテーブルの書き換えが行われた後は、クライアント２００からのアクセスは、第１のノード３０１に代えて第２のノード３０２に対して行われるようになる。これにより、更新版のウェブアプリケーションによってクライアント２００に対してサービスの提供が実施されることとなる。
【００３０】
以上詳しく説明したように、第１の実施形態では、パブリック仮想ＩＰとプライベート仮想ＩＰとを割り当てたサーバ装置１００において、現用版のウェブアプリケーションが実装された第１のノード３０１に紐付く第１のプライベート仮想ＩＰとパブリック仮想ＩＰとを対応づけた第１のＮＡＴテーブルから、更新版のウェブアプリケーションが実装された第２のノード３０２に紐付く第２のプライベート仮想ＩＰとパブリック仮想ＩＰとを対応づけた第２のＮＡＴテーブルへと、ＮＡＴテーブル記憶部１０に記憶されるＮＡＴテーブルの内容を更新するようにしている。
【００３１】
このように構成した第１の実施形態によれば、ＮＡＴテーブル記憶部１０におけるＮＡＴテーブルの内容を更新するだけで、第１のノード３０１に実装されている現用版のウェブアプリケーションから、第１のノード３０１の稼動中に第２のノード３０２にあらかじめ実装しておいた更新版のウェブアプリケーションへの切り替えを行うことができる。また、更新版のウェブアプリケーションを、切り替え前に動作の正当性を検証済みの第２のノード３０２において引き続き使用するため、切り替え後に動作環境が変わって不具合を起こすことがなく、そのための修正などで時間が取られてしまうこともない。これにより、現用版から更新版へのウェブアプリケーションの切り替えを短時間で行うことができる。
【００３２】
（第２の実施形態）
次に、本発明の第２の実施形態を図面に基づいて説明する。第２の実施形態は、ＨＴＴＰのキープアライブ機能の影響によってＮＡＴテーブルの切り替えが不能となる問題を解決するためのものである。キープアライブ機能とは、クライアント２００からのアクセスに応じて第１のノード３０１との間で接続されたＴＣＰセッションを、クライアント２００へのレスポンスを行った後も維持する機能である。
【００３３】
キープアライブ機能がオフの場合は、ＨＴＴＰのリクエストとレスポンスとの組が１つのＴＣＰセッション内で行われる。すなわち、第１のノード３０１とのセッションの確立後、クライアント２００からのリクエストに応じて、サーバ装置１００を介して第１のノード３０１からのレスポンスをクライアント２００に返信すると、セッションは切断される。したがって、クライアント２００からサーバ装置１００を介して第１のノード３０１に複数のリクエストを行う場合は、都度セッションの確立と切断が繰り返される。
【００３４】
これに対して、キープアライブ機能がオンの場合は、１つのセッション内で、複数のリクエストとレスポンスとの組が実行され得る。すなわち、第１のノード３０１とのセッションの確立後、クライアント２００からリクエストがない状態で所定のタイムアウトを経過した場合、または、リスエストの合計数が所定回数に達した場合に、第１のノード３０１からサーバ装置１００を介してクライアント２００にＦＩＮパケットを送信することにより、セッションが切断される。
【００３５】
このように、キープアライブ機能が有効である場合、一度のＴＣＰ接続で複数のリクエストを処理するため、タイムアウトになるか最大リクエスト数を超えるまで同じＴＣＰ接続を利用し続けることになる。このため、そのＴＣＰ接続が継続されているときに、ＮＡＴテーブル記憶部１０に記憶されるＮＡＴテーブルを書き換えても、その変更が反映されない。
【００３６】
すなわち、ＮＡＴテーブル記憶部１０に記憶されているＮＡＴテーブルを動的に書き換えることで、第１のノード３０１から第２のノード３０２に通信を切り替えたいのであるが、ＴＣＰセッションの確立時にのみＮＡＴテーブル上のアドレス変換ルールを評価する仕様となっているため、キープアライブ機能が有効な確立済みのセッションには、ＮＡＴルールの更新が適用されないのである。キープアライブ機能が有効な場合、タイムアウト時間が経過するか、最大リクエスト数に達した時点でセッション確立をやり直すため、その時点でＮＡＴルールは切り替わるが、意図したタイミングとならないという問題がある。第２の実施形態では、この問題を以下に述べる手段によって解決している。
【００３７】
図３は、第２の実施形態によるサーバ装置１００’の機能構成例を示すブロック図である。なお、この図３において、図２に示した符号と同一の符号を付したものは同一の機能を有するものであるので、ここでは重複する説明を省略する。図３に示すように、第２の実施形態によるサーバ装置１００’は、セッション制御部１４を更に備えている。また、ＮＡＴテーブル更新部１５に代えてＮＡＴテーブル更新部１５’を備えている。
【００３８】
セッション制御部１４は、ウェブアプリケーションの切替要求を行うためのユーザ操作を操作受付部１６が受け付けたときに、キープアライブ機能によって維持されているセッションを切断する。
【００３９】
具体的には、現用版のウェブアプリケーションが実装された第１のノード３０１が使用されている場合（ウェブアプリケーション更新前の状態）、第１のノード３０１は、セッションの確立後にクライアント２００から送られてくるリクエストに含まれるキープアライブ設定要求を受け入れることにより、キープアライブ機能をオンとする。
【００４０】
その後、セッション制御部１４は、ウェブアプリケーションの切替要求を行うためのユーザ操作に応じてＮＡＴテーブル更新部１５’がＮＡＴテーブルの内容を更新する際に、セッションの切断およびキープアライブ受け入れの拒否を第１のノード３０１に指示する。そして、セッション制御部１４は、この指示に応じて第１のノード３０１から出力されたＦＩＮパケットをクライアント２００に送信することにより、接続が維持されているセッションを切断する。
【００４１】
なお、セッション制御部１４から第１のノード３０１に対するキープアライブ受け入れ拒否の指示は、その後にＮＡＴテーブル更新部１５’によって行われるＮＡＴテーブル更新までの間に、別のクライアントからの新規リクエストが到達した場合に、キープアライブ無効の動作とすることで都度セッションを切断するようにするためのものである。
【００４２】
ＮＡＴテーブル更新部１５’は、セッション制御部１４によりセッションが切断された後、ＮＡＴテーブル記憶部１０に記憶されている第１のＮＡＴテーブルを第２のＮＡＴテーブルに書き換える。
【００４３】
ＮＡＴテーブルの書き換え後に、クライアント２００からサーバ装置１００’へのアクセスによりセッションが再度確立される。このとき、ＮＡＴテーブル記憶部１０内の書き換えられた第２のＮＡＴテーブルの内容が新たなＮＡＴルールとして反映されるため、第２のノード３０２との間でセッションが確立する。その後、クライアント２００から送られてくるリクエストに含まれるキープアライブ設定要求に応じて、第２のノード３０２がその要求を許可することにより、キープアライブ機能が再びオンとなる。それ以降は第２のノード３０２への通信が行われるようになる。
【００４４】
図４は、上記のように構成した第２の実施形態によるサーバ装置１００’および第１，第２のノード３０１，３０２の動作例を示すシーケンス図である。現用版のウェブアプリケーションが実装された第１のノード３０１が使用されているときに、クライアント２００からサーバ装置１００’に対してアクセスがあると、クライアント２００と第１のノード３０１との間にセッションが確立される（ステップＳ１）。このとき、ＮＡＴテーブル記憶部１０に記憶されている第１のＮＡＴテーブルの内容が評価され、ＮＡＴルールとして適用される。
【００４５】
その後、クライアント２００からサーバ装置１００’を介して第１のノード３０１に対して、キープアライブ設定要求を含むリクエストが送信され（ステップＳ２）、そのリクエスト対して第１のノード３０１がキープアライブ受け入れを含むレスポンスを返すことにより、キープアライブ機能がオンとなる（ステップＳ３）。それ以降、ステップＳ１で確立されたセッション内で、クライアント２００と第１のノード３０１との間で複数のリクエストとレスポンスとの組が実行される（ステップＳ４〜Ｓ７）。
【００４６】
その後、ウェブアプリケーションの切替要求を行うためのユーザ操作を操作受付部１６が受け付けると、セッション制御部１４は、ＮＡＴテーブルの更新準備を開始する（ステップＳ８）。そして、セッション制御部１４は、セッションの切断およびキープアライブ受け入れの拒否を第１のノード３０１に指示する（ステップＳ９）。
【００４７】
次いで、セッション制御部１４は、上記の指示に応じて第１のノード３０１から出力されたＦＩＮパケットをクライアント２００に送信することにより、接続が維持されているセッションを切断する（ステップＳ１０）。このセッション切断後に、ＮＡＴテーブル更新部１５’は、ＮＡＴテーブル記憶部１０に記憶されている第１のＮＡＴテーブルを第２のＮＡＴテーブルに書き換える（ステップＳ１１）。
【００４８】
ＮＡＴテーブルの書き換え後に、クライアント２００からサーバ装置１００’へのアクセスがあると、ＮＡＴテーブル記憶部１０に書き換えられた第２のＮＡＴテーブルの内容が評価され、ＮＡＴルールとして適用される結果、クライアント２００と第２のノード３０２との間にセッションが確立される（ステップＳ１２）。
【００４９】
その後、クライアント２００からサーバ装置１００’を介して第２のノード３０２に対して、キープアライブ設定要求を含むリクエストが送信され（ステップＳ１３）、そのリクエストに対して第２のノード３０２がキープアライブ受け入れを含むレスポンスを返すことにより、キープアライブ機能がオンとなる（ステップＳ１４）。それ以降、ステップＳ１２で確立されたセッション内で、クライアント２００と第２のノード３０２との間で複数のリクエストとレスポンスとの組が実行される（ステップＳ１５〜Ｓ１６）。
【００５０】
以上詳しく説明したように、第２の実施形態によれば、ＨＴＴＰのキープアライブ機能がオンに設定されている場合であっても、ユーザがウェブアプリケーションの切り替え要求操作を行ってから遅滞なく、ＮＡＴテーブル記憶部１０に書き換えた第２のＮＡＴテーブルを反映させて第１のノード３０１から第２のノード３０２へと通信を切り替えることができる。
【００５１】
なお、上記第２の実施形態では、キープアライブ機能を常時オンとしておき、ウェブアプリケーションの切り替え時に一時的にキープアライブ機能をオフとする例について説明したが、本発明はこれに限定されない。例えば、セッションの確立後にクライアント２００から送られてくるリクエスト内のキープアライブ設定要求を拒否することにより、キープアライブ機能が常にオフとなるようにしてもよい。
【００５２】
図５は、この場合におけるサーバ装置１００’および第１，第２のノード３０１，３０２の動作例を示すシーケンス図である。キープアライブ機能を常にオフとする場合は、図５のステップＳ２１〜Ｓ２４、ステップＳ２５〜Ｓ２８のように、クライアント２００からサーバ装置１００’にアクセスが行われる都度、セッションの確立と切断が行われる。なお、この場合、セッション切断のためのＦＩＮパケットは、キープアライブ受け入れ拒否を含むレスポンスをクライアント２００がサーバ装置１００’から受信する都度、クライアント２００側から送信される。
【００５３】
このような状態でユーザがウェブアプリケーションの切り替え要求操作を行うと、その時点でセッションは切断されているか、接続されていてもすぐに切断されるので、ＮＡＴテーブル更新部１５’はＮＡＴテーブルの書き換えを直ちに行うことができる（ステップＳ２９）。
【００５４】
ＮＡＴテーブルの書き換え後に、クライアント２００からサーバ装置１００’へのアクセスがあると、ＮＡＴテーブル記憶部１０に書き換えられた第２のＮＡＴテーブルの内容が評価され、ＮＡＴルールとして適用される結果、クライアント２００と第２のノード３０２との間にセッションが確立される（ステップＳ３０）。
【００５５】
その後、クライアント２００からサーバ装置１００’を介して第２のノード３０２に対して、キープアライブ設定要求を含むリクエストが送信され（ステップＳ３１）、そのリクエストに対して第２のノード３０２がキープアライブ受け入れ拒否を含むレスポンスを返すことにより、キープアライブ機能がオフとなる（ステップＳ３２）。したがって、ステップＳ３０で確立されたセッション内で、クライアント２００と第２のノード３０２との間で１回のリクエストとレスポンスとの組が実行されると（ステップＳ３１，Ｓ３２）、クライアント２００からＦＩＮパケットが送出され、セッションは切断される（ステップＳ３３）。
【００５６】
また、上記第１および第２の実施形態では、第１，第２のノード３０１，３０２がそれぞれＷｅｂサーバである場合の例について説明したが、本発明はこれに限定されない。例えば、第１，第２のノード３０１，３０２をロードバランサまたはクラスタサーバとしてもよい。
【００５７】
その他、上記第１および第２の実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５８】
１０  ＮＡＴテーブル記憶部
１４  セッション制御部
１５，１５’  ＮＡＴテーブル更新部
１００，１００’  サーバ装置
２００  クライアント
３０１  第１のノード
３０２  第２のノード
【図１】
2017173995.tif 000003
【図２】
2017173995.tif 000004
【図３】
2017173995.tif 000005
【図４】
2017173995.tif 000006
【図５】
2017173995.tif 000007