(57)【要約】【課題】システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とすること。【解決手段】プロキシプロセス２１からプロキシプロセス１１へアプリケーション２２１に関する情報であるアプリケーション情報２３１を送信する。プロキシプロセス１１は、アプリケーション情報２３１を管理情報記憶部１３へ登録し、ＷＥＢサーバ３０からのサービス提供要求を代表して受信し、アプリケーション情報２３１に基づきアプリケーション２２１の実行の依頼をプロキシプロセス２１へ行う。プロキシプロセス２１は、アプリケーション情報２３１に基づきアプリケーション２２１を実行する。【選択図】図１
2009245118.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバが第１のアプリケーションを、第２のアプリケーションサーバが第２のアプリケーションをそれぞれ実行することにより当該サービスを提供するアプリケーションサービス提供システムであって、
前記第１のアプリケーションサーバは、
前記第１のアプリケーション及び第２のアプリケーションに関するアプリケーション情報を記憶する管理情報記憶部と、
前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記第１のアプリケーション及び第２のアプリケーションを実行させる第１のプロキシプロセスとを備え、
前記第１のプロキシプロセスは、
前記第２のアプリケーションサーバから前記第２のアプリケーションに関するアプリケーション情報を受信し、前記管理情報記憶部へ登録する登録手段と、
前記提供要求を受信し、前記管理情報記憶部に格納された前記第２のアプリケーションに関するアプリケーション情報に基づいて前記第２のアプリケーションサーバへ前記第２のアプリケーションの実行を依頼する実行依頼手段とを備え、
前記第２のアプリケーションサーバは、
前記第２のアプリケーションに関するアプリケーション情報を前記第１のアプリケーションサーバに対して送信する管理情報送信手段と、
前記実行依頼手段による依頼に基づき前記第２のアプリケーションを実行する実行手段とを備えるアプリケーションサービス提供システム。
【請求項２】
前記第２のアプリケーションサーバは、
前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記実行手段により前記第１のアプリケーション及び第２のアプリケーションを実行させる第２のプロキシプロセスをさらに備え、
前記管理情報送信手段は、前記第２のプロキシプロセスに関するプロセス情報を前記第１のプロキシプロセスへ送信し、
前記登録手段は、前記第２のプロキシプロセスから受信した前記プロセス情報を前記管理情報記憶部へ登録し、
前記実行依頼手段は、前記管理情報記憶部に格納された前記プロセス情報を参照し、前記第２のプロキシプロセスへ前記第２のアプリケーションの実行を依頼することを特徴とする、請求項１に記載のアプリケーションサービス提供システム。
【請求項３】
前記第１のプロキシプロセスは、前記登録手段により新規なプロセス情報が登録された場合、前記第２のプロキシプロセスへ前記第１のプロキシプロセスに関するプロセス情報、及び、前記第１のアプリケーションに関するアプリケーション情報を送信することを特徴とする、請求項２に記載のアプリケーションサービス提供システム。
【請求項４】
前記第１のプロキシプロセスは、
前記第１のアプリケーション又は前記第２のアプリケーションが起動又は中断する旨の通知を受信した場合、前記管理情報記憶部において前記第１のアプリケーション又は前記第２のアプリケーションに関するアプリケーション情報を更新する更新手段をさらに備え、
前記更新手段により前記第１のアプリケーションに関するアプリケーション情報が更新された場合、前記管理情報記憶部に格納された当該更新されたアプリケーション情報を前記第２のプロキシプロセスへ送信することを特徴とする、請求項３に記載のアプリケーションサービス提供システム。
【請求項５】
前記実行依頼手段は、前記提供要求を受信した場合、前記管理情報記憶部に格納された前記第１のアプリケーションに関するアプリケーション情報に基づいて前記第１のアプリケーションを実行させることを特徴とする、請求項１乃至４のいずれか１項に記載のアプリケーションサービス提供システム。
【請求項６】
前記第１のアプリケーションサーバは、
前記第１のアプリケーションの実行コード、及び設定パラメータを記憶するアプリケーション情報記憶部と、
前記第１のアプリケーションの処理を中断する前に、前記アプリケーション情報記憶部から前記第１のアプリケーションの実行コード、及び設定パラメータを取得し、前記第２のアプリケーションサーバへ送信する第１の送信手段と、
前記第１のアプリケーションの処理を中断した後に、前記第１のアプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信手段と、をさらに備え、
前記第２のアプリケーションサーバは、
前記第１の送信手段から前記実行コード、及び前記設定パラメータを受信し、前記第２の送信手段から前記実行状態情報を受信し、前記実行状態情報に基づいて当該第１のアプリケーションの処理を再開する処理再開手段と、をさらに備える請求項１乃至５のいずれか１項に記載のアプリケーションサービス提供システム。
【請求項７】
ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバ及び第２のアプリケーションサーバによってアプリケーションを実行することにより当該サービスを提供するアプリケーションサービス提供システムであって、
前記第１のアプリケーションサーバは、
前記アプリケーションの実行コード、及び設定パラメータを記憶するアプリケーション情報記憶部と、
前記アプリケーションの処理を中断する前に、前記アプリケーション情報記憶部から前記アプリケーションの実行コード、及び設定パラメータを取得し、前記第２のアプリケーションサーバへ送信する第１の送信手段と、
前記アプリケーションの処理を中断した後に、前記アプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信手段と、を備え、
前記第２のアプリケーションサーバは、
前記第１の送信手段から前記実行コード、及び前記設定パラメータを受信し、前記第２の送信手段から前記実行状態情報を受信し、前記実行状態情報に基づいて当該アプリケーションの処理を再開する処理再開手段と、を備えるアプリケーションサービス提供システム。
【請求項８】
前記第１のアプリケーションサーバは、
前記アプリケーションの実行を管理する第１のプロキシプロセスと、
前記アプリケーションの処理を中断した旨を前記第１のプロキシプロセスへ通知する中断通知手段と、をさらに備え、
前記第２のアプリケーションサーバは、
前記アプリケーションの実行を管理する第２のプロキシプロセスと、
前記処理再開手段により当該アプリケーションの処理を再開した旨を前記第２のプロキシプロセスへ通知する再開通知手段と、をさらに備える請求項７に記載のアプリケーションサービス提供システム。
【請求項９】
前記第１のアプリケーションサーバは、
前記アプリケーションの処理を中断した後に、当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部へ格納する実行状態情報格納手段をさらに備え、
前記第２の送信手段は、前記実行状態情報格納手段により格納された当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部から取得して、前記第２のアプリケーションサーバへ送信することを特徴とする、請求項７又は８に記載のアプリケーションサービス提供システム。
【請求項１０】
前記第１の送信手段は、前記アプリケーションを前記第２のアプリケーションサーバへ移行する指示に応じて実行されることを特徴とする、請求項７乃至９のいずれか１項に記載のアプリケーションサービス提供システム。
【請求項１１】
ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバが第１のアプリケーションを、第２のアプリケーションサーバが第２のアプリケーションをそれぞれ実行することにより当該サービスを提供するアプリケーションサービス提供方法であって、
前記第２のアプリケーションサーバから前記第１のアプリケーションサーバへ前記第２のアプリケーションに関するアプリケーション情報を送信する管理情報送信ステップと、
前記第１のアプリケーションサーバにおいて、前記送信するステップにより送信された前記第２のアプリケーションに関するアプリケーション情報を受信し、当該アプリケーション情報を管理情報記憶部へ登録する登録ステップと、
前記第１のアプリケーションサーバにおいて、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記管理情報記憶部に格納された前記第２のアプリケーションに関するアプリケーション情報に基づいて前記第２のアプリケーションサーバへ前記第２のアプリケーションの実行を依頼する実行依頼ステップと、
前記第２のアプリケーションサーバにおいて、前記実行依頼ステップによる依頼に基づき前記第２のアプリケーションを実行する実行ステップとを備えるアプリケーションサービス提供方法。
【請求項１２】
前記管理情報送信ステップは、前記第２のアプリケーションサーバにおいて前記実行手段により前記第２のアプリケーションを実行させるプロキシプロセスに関するプロセス情報をさらに送信し、
前記登録ステップは、前記プロキシプロセスに関するプロセス情報を受信し、当該プロセス情報を前記管理情報記憶部へ登録し、
前記実行依頼ステップは、前記管理情報記憶部に格納された前記プロセス情報を参照し、前記プロキシプロセスへ前記第２のアプリケーションの実行を依頼することを特徴とする、請求項１１に記載のアプリケーションサービス提供方法。
【請求項１３】
前記登録ステップにより新規なプロセス情報が登録された場合、前記管理情報記憶部に格納された前記第１のアプリケーションサーバにおいて前記第１のアプリケーションを実行させるプロキシプロセスに関するプロセス情報、及び、前記第１のアプリケーションに関するアプリケーション情報を送信する送信ステップをさらに備える、請求項１２に記載のアプリケーションサービス提供方法。
【請求項１４】
前記第１のアプリケーション又は前記第２のアプリケーションが起動又は中断する旨の通知を受信した場合、前記管理情報記憶部において前記第１のアプリケーション又は前記第２のアプリケーションに関するアプリケーション情報を更新する更新ステップをさらに備え、
前記送信ステップは、前記更新ステップにより前記第１のアプリケーションに関するアプリケーション情報が更新された場合、前記管理情報記憶部に格納された当該更新されたアプリケーション情報を送信することを特徴とする、請求項１３に記載のアプリケーションサービス提供方法。
【請求項１５】
前記実行依頼ステップは、前記第１のアプリケーションサーバにおいて、前記提供要求を受信した場合、前記管理情報記憶部に格納された前記第１のアプリケーションに関するアプリケーション情報に基づいて前記第１のアプリケーションを実行させることを特徴とする、請求項１１乃至１４のいずれか１項に記載のアプリケーションサービス提供方法。
【請求項１６】
ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバ及び第２のアプリケーションサーバによってアプリケーションを実行することにより当該サービスを提供するアプリケーションサービス提供システムにおけるアプリケーション移行方法であって、
前記アプリケーションの処理を中断する前に、前記アプリケーションの実行コード、及び設定パラメータを前記第２のアプリケーションサーバへ送信する第１の送信ステップと、
前記アプリケーションの処理を中断した後に、前記アプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信ステップと、
前記第１の送信ステップから前記実行コード、及び前記設定パラメータを受信し、前記第２の送信ステップから前記実行状態情報を受信し、前記実行状態情報に基づいて当該アプリケーションの処理を再開する処理再開ステップと、を備えるアプリケーション移行方法。
【請求項１７】
前記アプリケーションの処理を中断した旨を前記第１のアプリケーションサーバにおいて前記アプリケーションの実行を管理するプロキシプロセスへ通知する中断通知ステップと、
前記処理再開ステップにより当該アプリケーションの処理を再開した旨を前記第２のアプリケーションサーバにおいて前記アプリケーションの実行を管理するプロキシプロセスへ通知する再開通知手段ステップと、をさらに備える請求項１６に記載のアプリケーション移行方法。
【請求項１８】
前記アプリケーションの処理を中断した後に、当該アプリケーションの実行状態情報をアプリケーション情報記憶部へ格納する実行状態情報格納ステップをさらに備え、
前記第２の送信ステップは、前記実行状態情報格納ステップにより格納された当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部から取得して、前記第２のアプリケーションサーバへ送信することを特徴とする、請求項１６又は１７に記載のアプリケーション移行方法。
【請求項１９】
前記第１の送信ステップは、前記アプリケーションを前記第２のアプリケーションサーバへ移行する指示に応じて実行されることを特徴とする、請求項１６乃至１８のいずれか１項に記載のアプリケーション移行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバ、及び、第２のアプリケーションサーバが備える複数のアプリケーションを実行することにより当該サービスを提供するアプリケーション提供システム、及びアプリケーション提供方法に関し、特に、第１のアプリケーションサーバで実行されるアプリケーションを第２のアプリケーションサーバへ移行するアプリケーション移行方法に関する。
【背景技術】
【０００２】
サーバによるビジネスアプリケーションサービスを提供しているＷｅｂシステムにおいては、当該Ｗｅｂシステムが提供するサービスを停止させることなく、システムを継続稼働させることが要求される。
【０００３】
近年、Ｗｅｂシステムとして標準的なＷＥＢサーバ、ＡＰ（Application）サーバ、及びＤＢ（Database）サーバという３層構成において、ＷＥＢサーバ、及びＤＢサーバのそれぞれについては、一般的に、負荷分散の仕組みが普及している。また、アプリケーションサーバの負荷分散の仕組みについては、特許文献１、特許文献２に開示されている。
【０００４】
特許文献１に開示されるクラスタリング方法は、同一のサービスを提供可能な複数のサーバと、このサーバの少なくとも一つが提供するサービスを利用するクライアントを有し、サーバに割り当てられた固有のサーバ名と対応するアドレスを管理するネームサーバがあり、クライアントからのアドレスの問い合わせに対し、第１のサーバから応答がない場合、第２のサーバへアドレスを問い合わせるものである。
【０００５】
特許文献２に開示される高可用性計算機システムは、少なくとも２台のサーバが共有ディスクを共有し、運用系から待機系へ切り替える基本の高可用性機構と、基本とは別の高可用性機構を備えた高可用性計算機システムである。そして、予め運用系の設定情報を待機系のローカルハードディスクへコピーしておき、運用系、及び共有ディスクが共に障害となった場合、待機系から共有ディスクを切断し、待機系のローカルハードディスクから単独で起動し、復旧を行うものである。
【特許文献１】特開２０００−３５７１６０号公報
【特許文献２】特開２００６−２２７７７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、同一の環境を複数のサーバ（アプリケーションサーバ）に用意する必要がある。また、特許文献２では、共有ディスクに保存されない設定情報を運用系と待機系のアプリケーションサーバ間で同期を取る必要があるがその方法については、開示されていない。
【０００７】
そのため、複数のアプリケーションサーバ間の同期を取る等のメンテナンスが煩雑である、という問題点がある。ここで、メンテナンスとは、アプリケーションサーバ、及びアプリケーションの追加、及び削除、並びに移行等を指す。また、一方のアプリケーションサーバから他方のアプリケーションサーバでアプリケーションを実行させることが困難である。
【０００８】
本発明では、このような問題点を解決するためになされたものであり、システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とするアプリケーションサービス提供システム、アプリケーションサービス提供方法、及びアプリケーションサービス移行方法の提供をすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様にかかるアプリケーションサービス提供システムは、ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバが第１のアプリケーションを、第２のアプリケーションサーバが第２のアプリケーションをそれぞれ実行することにより当該サービスを提供するものである。前記第１のアプリケーションサーバは、前記第１のアプリケーション及び第２のアプリケーションに関するアプリケーション情報を記憶する管理情報記憶部と、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記第１のアプリケーション及び第２のアプリケーションを実行させる第１のプロキシプロセスとを備え、前記第１のプロキシプロセスは、前記第２のアプリケーションサーバから前記第２のアプリケーションに関するアプリケーション情報を受信し、前記管理情報記憶部へ登録する登録手段と、前記提供要求を受信し、前記管理情報記憶部に格納された前記第２のアプリケーションに関するアプリケーション情報に基づいて前記第２のアプリケーションサーバへ前記第２のアプリケーションの実行を依頼する実行依頼手段とを備え、前記第２のアプリケーションサーバは、前記第２のアプリケーションに関するアプリケーション情報を前記第１のアプリケーションサーバに対して送信する管理情報送信手段と、前記実行依頼手段による依頼に基づき前記第２のアプリケーションを実行する実行手段とを備える。
【００１０】
これにより、サービスの提供要求を代表して受信するアプリケーションサーバにおいて、他のアプリケーションサーバのアプリケーション情報を管理することにより、当該アプリケーション情報に基づき、他のアプリケーションサーバのアプリケーションを実行させることができる。そのため、サービス提供要求を継続しつつ、複数の第２のアプリケーションサーバの入れ替えを容易に行うことができる。
【００１１】
また、前記第２のアプリケーションサーバは、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記実行手段により前記第１のアプリケーション及び第２のアプリケーションを実行させる第２のプロキシプロセスをさらに備え、前記管理情報送信手段は、前記第２のプロキシプロセスに関するプロセス情報を前記第１のプロキシプロセスへ送信し、前記登録手段は、前記第２のプロキシプロセスから受信した前記プロセス情報を前記管理情報記憶部へ登録し、前記実行依頼手段は、前記管理情報記憶部に格納された前記プロセス情報を参照し、前記第２のプロキシプロセスへ前記第２のアプリケーションの実行を依頼することが望ましい。
【００１２】
これにより、プロキシプロセス間の通信によりアプリケーションの実行が可能となり、同機能のプロキシプロセスを備えたアプリケーションサーバによるシステムの拡張が可能となる。そのため、複数のアプリケーションを実行するアプリケーションサーバ間で管理情報の同期を取ることができ、アプリケーションサーバのメンテナンスをシステムへの影響を最小限にして行うことができる。
【００１３】
また、前記第１のプロキシプロセスは、前記登録手段により新規なプロセス情報が登録された場合、前記第２のプロキシプロセスへ前記第１のプロキシプロセスに関するプロセス情報、及び、前記第１のアプリケーションに関するアプリケーション情報を送信することが望ましい。これにより、追加されたアプリケーションサーバ、プロキシプロセスに対して、管理情報の同期が可能となる。
【００１４】
また、前記第１のプロキシプロセスは、前記第１のアプリケーション又は前記第２のアプリケーションが起動又は中断する旨の通知を受信した場合、前記管理情報記憶部において前記第１のアプリケーション又は前記第２のアプリケーションに関するアプリケーション情報を更新する更新手段をさらに備え、前記更新手段により前記第１のアプリケーションに関するアプリケーション情報が更新された場合、前記管理情報記憶部に格納された当該更新されたアプリケーション情報を前記第２のプロキシプロセスへ送信するとよい。これにより、アプリケーションの起動、中断を管理し、他のアプリケーションサーバへ通知することで、アプリケーションサーバ間で、各々のアプリケーションの状態を共有することができる。
【００１５】
さらに、前記実行依頼手段は、前記提供要求を受信した場合、前記管理情報記憶部に格納された前記第１のアプリケーションに関するアプリケーション情報に基づいて前記第１のアプリケーションを実行させるとよい。これにより、自己のアプリケーションサーバ内のアプリケーションと、他のアプリケーションサーバ内のアプリケーションとを等価的に分散実行することができ、代表して受信するアプリケーションサーバを柔軟に変更できる。
【００１６】
また、前記第１のアプリケーションサーバは、前記第１のアプリケーションの実行コード、及び設定パラメータを記憶するアプリケーション情報記憶部と、前記第１のアプリケーションの処理を中断する前に、前記アプリケーション情報記憶部から前記第１のアプリケーションの実行コード、及び設定パラメータを取得し、前記第２のアプリケーションサーバへ送信する第１の送信手段と、前記第１のアプリケーションの処理を中断した後に、前記第１のアプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信手段と、をさらに備え、前記第２のアプリケーションサーバは、前記第１の送信手段から前記実行コード、及び前記設定パラメータを受信し、前記第２の送信手段から前記実行状態情報を受信し、前記実行状態情報に基づいて当該第１のアプリケーションの処理を再開する処理再開手段と、をさらに備えるとよい。これにより、稼働するアプリケーションサーバ間での実行中のアプリケーションの移行をシステムへの影響を最小限にして、行うことができる。
【００１７】
本発明の第２の態様にかかるアプリケーションサービス提供システムは、ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバ及び第２のアプリケーションサーバによってアプリケーションを実行することにより当該サービスを提供するものである。前記第１のアプリケーションサーバは、前記アプリケーションの実行コード、及び設定パラメータを記憶するアプリケーション情報記憶部と、前記アプリケーションの処理を中断する前に、前記アプリケーション情報記憶部から前記アプリケーションの実行コード、及び設定パラメータを取得し、前記第２のアプリケーションサーバへ送信する第１の送信手段と、前記アプリケーションの処理を中断した後に、前記アプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信手段と、を備え、前記第２のアプリケーションサーバは、前記第１の送信手段から前記実行コード、及び前記設定パラメータを受信し、前記第２の送信手段から前記実行状態情報を受信し、前記実行状態情報に基づいて当該アプリケーションの処理を再開する処理再開手段と、を備えるものである。
【００１８】
これにより、稼働するアプリケーションサーバ間での実行中のアプリケーションの移行をシステムへの影響を最小限にして、行うことができる。
【００１９】
また、前記第１のアプリケーションサーバは、前記アプリケーションの実行を管理する第１のプロキシプロセスと、前記アプリケーションの処理を中断した旨を前記第１のプロキシプロセスへ通知する中断通知手段と、をさらに備え、前記第２のアプリケーションサーバは、前記アプリケーションの実行を管理する第２のプロキシプロセスと、前記処理再開手段により当該アプリケーションの処理を再開した旨を前記第２のプロキシプロセスへ通知する再開通知手段と、をさらに備えることが望ましい。これにより、アプリケーションの実行を管理するプロキシプロセスへ当該アプリケーションの中断、及び再開を通知することで、プロキシプロセスによりアプリケーションの移行の状況を管理できる。
【００２０】
また、前記第１のアプリケーションサーバは、前記アプリケーションの処理を中断した後に、当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部へ格納する実行状態情報格納手段をさらに備え、前記第２の送信手段は、前記実行状態情報格納手段により格納された当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部から取得して、前記第２のアプリケーションサーバへ送信することが望ましい。これにより、アプリケーションの中断時点の実行状態情報を転送することができる。
【００２１】
また、前記第１の送信手段は、前記アプリケーションを前記第２のアプリケーションサーバへ移行する指示に応じて実行されることが望ましい。これにより、任意のタイミングで柔軟に移行が可能となる。
【００２２】
本発明の第１の態様にかかるアプリケーションサービス提供方法は、ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバが第１のアプリケーションを、第２のアプリケーションサーバが第２のアプリケーションをそれぞれ実行することにより当該サービスを提供するものである。前記第２のアプリケーションサーバから前記第１のアプリケーションサーバへ前記第２のアプリケーションに関するアプリケーション情報を送信する管理情報送信ステップと、前記第１のアプリケーションサーバにおいて、前記送信するステップにより送信された前記第２のアプリケーションに関するアプリケーション情報を受信し、当該アプリケーション情報を管理情報記憶部へ登録する登録ステップと、前記第１のアプリケーションサーバにおいて、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバを代表して前記提供要求を受信し、前記管理情報記憶部に格納された前記第２のアプリケーションに関するアプリケーション情報に基づいて前記第２のアプリケーションサーバへ前記第２のアプリケーションの実行を依頼する実行依頼ステップと、前記第２のアプリケーションサーバにおいて、前記実行依頼ステップによる依頼に基づき前記第２のアプリケーションを実行する実行ステップとを備える。
【００２３】
これにより、サービスの提供要求を代表して受信するアプリケーションサーバにおいて、他のアプリケーションサーバのアプリケーション情報を管理することにより、当該アプリケーション情報に基づき、他のアプリケーションサーバのアプリケーションを実行させることができる。そのため、サービス提供要求を継続しつつ、複数の第２のアプリケーションサーバの入れ替えを容易に行うことができる。
【００２４】
また、前記管理情報送信ステップは、前記第２のアプリケーションサーバにおいて前記実行手段により前記第２のアプリケーションを実行させるプロキシプロセスに関するプロセス情報をさらに送信し、前記登録ステップは、前記プロキシプロセスに関するプロセス情報を受信し、当該プロセス情報を前記管理情報記憶部へ登録し、前記実行依頼ステップは、前記管理情報記憶部に格納された前記プロセス情報を参照し、前記プロキシプロセスへ前記第２のアプリケーションの実行を依頼することが望ましい。
【００２５】
これにより、プロキシプロセス間の通信によりアプリケーションの実行が可能となり、同機能のプロキシプロセスを備えたアプリケーションサーバによるシステムの拡張が可能となる。そのため、複数のアプリケーションを実行するアプリケーションサーバ間で管理情報の同期を取ることができ、アプリケーションサーバのメンテナンスをシステムへの影響を最小限にして行うことができる。
【００２６】
また、前記登録ステップにより新規なプロセス情報が登録された場合、前記管理情報記憶部に格納された前記第１のアプリケーションサーバにおいて前記第１のアプリケーションを実行させるプロキシプロセスに関するプロセス情報、及び、前記第１のアプリケーションに関するアプリケーション情報を送信する送信ステップをさらに備える、請求項１２に記載のアプリケーションサービス提供方法。
これにより、追加されたアプリケーションサーバ、プロキシプロセスに対して、管理情報の同期が可能となる。
【００２７】
また、前記第１のアプリケーション又は前記第２のアプリケーションが起動又は中断する旨の通知を受信した場合、前記管理情報記憶部において前記第１のアプリケーション又は前記第２のアプリケーションに関するアプリケーション情報を更新する更新ステップをさらに備え、前記送信ステップは、前記更新ステップにより前記第１のアプリケーションに関するアプリケーション情報が更新された場合、前記管理情報記憶部に格納された当該更新されたアプリケーション情報を送信することが望ましい。これにより、アプリケーションの起動、中断を管理し、他のアプリケーションサーバへ通知することで、アプリケーションサーバ間で、各々のアプリケーションの状態を共有することができる。
【００２８】
また、前記実行依頼ステップは、前記第１のアプリケーションサーバにおいて、前記提供要求を受信した場合、前記管理情報記憶部に格納された前記第１のアプリケーションに関するアプリケーション情報に基づいて前記第１のアプリケーションを実行させることが望ましい。これにより、自己のアプリケーションサーバ内のアプリケーションと、他のアプリケーションサーバ内のアプリケーションとを等価的に分散実行することができ、代表して受信するアプリケーションサーバを柔軟に変更できる。
【００２９】
本発明の第２の態様にかかるアプリケーション移行方法は、ネットワークを介したサービスの提供要求に対して、第１のアプリケーションサーバ及び第２のアプリケーションサーバによってアプリケーションを実行することにより当該サービスを提供するアプリケーションサービス提供システムにおけるものである。前記アプリケーションの処理を中断する前に、前記アプリケーションの実行コード、及び設定パラメータを前記第２のアプリケーションサーバへ送信する第１の送信ステップと、前記アプリケーションの処理を中断した後に、前記アプリケーションの実行状態を示す実行状態情報を前記第２のアプリケーションサーバへ送信する第２の送信ステップと、前記第１の送信ステップから前記実行コード、及び前記設定パラメータを受信し、前記第２の送信ステップから前記実行状態情報を受信し、前記実行状態情報に基づいて当該アプリケーションの処理を再開する処理再開ステップと、を備えるものである。これにより、稼働するアプリケーションサーバ間での実行中のアプリケーションの移行をシステムへの影響を最小限にして、行うことができる。
【００３０】
また、前記アプリケーションの処理を中断した旨を前記第１のアプリケーションサーバにおいて前記アプリケーションの実行を管理するプロキシプロセスへ通知する中断通知ステップと、前記処理再開ステップにより当該アプリケーションの処理を再開した旨を前記第２のアプリケーションサーバにおいて前記アプリケーションの実行を管理するプロキシプロセスへ通知する再開通知手段ステップと、をさらに備えることが望ましい。これにより、アプリケーションの実行を管理するプロキシプロセスへ当該アプリケーションの中断、及び再開を通知することで、プロキシプロセスによりアプリケーションの移行の状況を管理できる。
【００３１】
また、前記アプリケーションの処理を中断した後に、当該アプリケーションの実行状態情報をアプリケーション情報記憶部へ格納する実行状態情報格納ステップをさらに備え、前記第２の送信ステップは、前記実行状態情報格納ステップにより格納された当該アプリケーションの実行状態情報を前記アプリケーション情報記憶部から取得して、前記第２のアプリケーションサーバへ送信することが望ましい。これにより、アプリケーションの中断時点の実行状態情報を転送することができる。
【００３２】
また、前記第１の送信ステップは、前記アプリケーションを前記第２のアプリケーションサーバへ移行する指示に応じて実行されることが望ましい。これにより、任意のタイミングで柔軟に移行が可能となる。
【発明の効果】
【００３３】
本発明により、システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とするアプリケーションサービス提供システム、アプリケーションサービス提供方法、及びアプリケーションサービス移行方法の提供をすることができる。
【発明を実施するための最良の形態】
【００３４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００３５】
発明の実施の形態１．
図１は、本発明の実施の形態１にかかるアプリケーションサービス提供システム１００の構成の一例を示すブロック図である。アプリケーションサービス提供システム１００は、アプリケーションサーバ１０と、アプリケーションサーバ２０と、Ｗｅｂサーバ３０と、ネットワーク４０と、端末５０とを備える。Ｗｅｂサーバ３０と端末５０とは、ネットワーク４０を介して接続されている。ネットワーク４０は、インターネット、公衆網、専用線、移動体通信網等の通信ネットワークであればよい。尚、アプリケーションサービス提供システム１００には、アプリケーションサーバ１０、及びアプリケーションサーバ２０にデータベースサーバをさらに接続してもよい。
【００３６】
アプリケーションサービス提供システム１００は、Ｗｅｂサーバ３０において、ネットワーク４０を介して端末５０からサービスの提供要求を受け付け、Ｗｅｂサーバ３０によりアプリケーションサーバ１０、及びアプリケーションサーバ２０を用いて複数のアプリケーションを分散して実行し、当該複数のアプリケーションの実行結果を集約して当該サービスとして端末５０へ返信するものである。
【００３７】
ここで、アプリケーションサービス提供システム１００で対象とするアプリケーションは、何らかのスケールファクターに比例した処理が必要とされ、並列実行が可能なものとする。
【００３８】
当該対象とするアプリケーションとは、例えば、遠隔データ収集を行うアプリケーションである。遠隔データ収集を行う場合、収集データ対象が増えるに従って処理量が増えるが、複数のアプリケーションサーバで分担してデータを収集するように実行することで、分散処理を行うことができる。または、当該対象とするアプリケーションとは、大規模なデータ検索を行うアプリケーションであり、検索範囲を分割してそれぞれのアプリケーションサーバにおいて検索を実行することができる。
【００３９】
そのため、当該対象とするアプリケーションは、分散処理を行うアプリケーションサーバの台数を増やすだけで、容易に処理量を増やし、処理効率を高めることができるものである。
【００４０】
尚、アプリケーションサーバの台数は、アプリケーションサーバ１０、及びアプリケーションサーバ２０の２台に限定されない。例えば、アプリケーションサーバの台数は、１０台程度で分散されていればよい。
【００４１】
Ｗｅｂサーバ３０は、アプリケーションサーバ１０、及びアプリケーションサーバ２０と接続されている。Ｗｅｂサーバ３０は、汎用的なコンピュータシステムであり、図示しない構成として、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及び不揮発性記憶装置を備える。Ｗｅｂサーバ３０は、ＣＰＵがＲＡＭ、ＲＯＭ，又は不揮発性記憶装置に格納されたＯＳ（Operating System）、ＷＥＢサーバプログラムを読み込み、実行する。これにより、Ｗｅｂサーバ３０は、ＷＥＢサーバとして動作するものである。
【００４２】
また、Ｗｅｂサーバ３０は、端末５０からのサービス提供要求を受信し、アプリケーションサーバ１０、及びアプリケーションサーバ２０のいずれかへ当該サービス提供要求を送信し、当該サービス提供要求の返信内容を端末５０へ返信する。ここで、Ｗｅｂサーバ３０は、予め、アプリケーションサーバ１０、及びアプリケーションサーバ２０へマルチキャスト配信により応答要求を送信し、最初に応答のあったアプリケーションサーバ１０に対して以後の当該サービス提供要求を送信するものとする。また、最初に応答のあったアプリケーションサーバ１０が何らかの障害により、当該サービス提供要求に応答ができない場合、Ｗｅｂサーバ３０は、再度、マルチキャスト配信により応答要求を送信し、応答するアプリケーションサーバ２０に対して、当該サービス提供要求を再送することで、当該サービスの提供を維持するものとする。
【００４３】
アプリケーションサーバ１０は、プロキシプロセス１１と、アプリケーション１２１と、アプリケーション１２２と、管理情報記憶部１３とを備える。また、アプリケーションサーバ２０は、アプリケーションサーバ１０と同等の機能を有するアプリケーションサーバである。また、プロキシプロセス２１、アプリケーション２２１、アプリケーション２２２、管理情報記憶部２３は、それぞれプロキシプロセス１１、アプリケーション１２１、アプリケーション１２２、管理情報記憶部１３と同等の構成であるため、説明を省略する。尚、アプリケーションサーバ１０、及びアプリケーションサーバ２０で稼働するアプリケーションの数はこれに限定されない。例えば、アプリケーションサービス提供システム１００では、１０から２０程度のアプリケーションを並列実行させてもよい。
【００４４】
管理情報記憶部１３は、プロセス情報１３１と、アプリケーション情報１３２とを記憶する記憶装置である。プロセス情報１３１は、後述するプロキシプロセス１１に関する情報である。プロセス情報１３１とは、例えば、プロキシプロセス１１の識別情報、プロキシプロセス１１が稼働するアプリケーションサーバ１０のネットワークアドレス等の接続情報であればよい。
【００４５】
また、アプリケーション情報１３２は、後述するアプリケーション１２１、及びアプリケーション１２２に関する情報である。アプリケーション情報１３２とは、例えば、アプリケーション１２１、及びアプリケーション１２２の識別情報、管理するプロキシプロセス１１の識別情報、又は、アプリケーション１２１、及びアプリケーション１２２への接続情報であればよい。尚、プロセス情報１３１、及びアプリケーション情報１３２の具体例については、図３で後述する。
【００４６】
また、管理情報記憶部２３に格納されたプロセス情報２３１は、プロキシプロセス２１
に関する情報であり、アプリケーション情報２３２は、アプリケーション２２１、及びアプリケーション２２２に関する情報である。
【００４７】
プロキシプロセス１１は、アプリケーションサーバ１０、及びアプリケーションサーバ２０を代表してＷｅｂサーバ３０からのサービス提供要求を受信し、管理情報記憶部１３に格納されたプロセス情報１３１、及びアプリケーション情報１３２を参照し、アプリケーション１２１、及びアプリケーション１２２、並びに、後述するプリケーション２２１、及びアプリケーション２２２を実行させるＷＥＢアプリケーションである。特に、プロキシプロセス１１は、後述するプロキシプロセス２１を介して、アプリケーション２２１、及びアプリケーション２２２を実行させる。また、プロキシプロセス１１は、アプリケーション１２１、アプリケーション１２２、アプリケーション２２１、及びアプリケーション２２２の実行結果を集約して、Ｗｅｂサーバ３０へ返信する。これにより、Ｗｅｂサーバ３０は、プロキシプロセス１１により、一つのアプリケーションサーバに対して、処理を依頼することで、複数台のアプリケーションサーバに対する処理を行わせることができる。
【００４８】
また、プロキシプロセス１１は、Ｗｅｂサーバ３０からの応答要求に対して、応答する。これにより、Ｗｅｂサーバ３０は、最初に応答したプロキシプロセス１１をサービス提供要求の送信先として特定するため、複数のプロキシプロセスの中から当該サービス提供要求の窓口を一つに定めることができる。尚、ここでは、プロキシプロセス１１が当該サービス提供要求に対する窓口であるが、プロキシプロセス２１がＷｅｂサーバ３０からの応答要求に対して最初に応答することで当該サービス提供要求に対する窓口となるが可能である。
【００４９】
また、プロキシプロセス１１は、他のプロキシプロセスであるプロキシプロセス２１と相互に通信を行う。プロキシプロセス１１、及びプロキシプロセス２１は、お互いのプロセス情報、及びアプリケーション情報を交換し、登録することで、お互いのアプリケーションへのアクセスが可能である。例えば、プロキシプロセス１１は、起動時に、管理情報記憶部１３に格納されたプロセス情報１３１、及びアプリケーション情報１３２をプロキシプロセス２１へ送信する。また、プロキシプロセス１１は、管理情報記憶部２３に格納されたプロセス情報２３１、及びアプリケーション情報２３２をプロキシプロセス２１から受信し、管理情報記憶部１３に登録する。さらに、プロキシプロセス１１は、アプリケーション１２１、又はアプリケーション１２２の実行が中断、又は再開されたことを検知、又は通知を受信し、アプリケーション情報１３２を更新する。同時に、プロキシプロセス１１は、更新されたアプリケーション情報１３２をプロキシプロセス２１へ送信する。そして、プロキシプロセス２１から更新されたアプリケーション情報２３２を受信した場合、管理情報記憶部１３を更新する。このように、プロキシプロセスは、複数のプロキシプロセスの間で、自己のプロセス情報、及びアプリケーション情報と、他のプロセス情報、及びアプリケーション情報の同期を取ることができ、最新状態を共有することができる。
【００５０】
尚、プロキシプロセス１１は、ＷＥＢアプリケーションの起動時において、アプリケーションサーバ１０に接続された他のアプリケーションサーバに対して、マルチキャスト通信により、管理情報記憶部１３に格納されたプロセス情報１３１、及びアプリケーション情報１３２を配信する。これにより、予め通信相手のプロキシプロセスを登録しておく必要がなく、複数のプロキシプロセスと相互の通信が可能となる。また、プロキシプロセス１１は、ＷＥＢアプリケーションの停止時に、プロキシプロセス１１が停止する旨をプロキシプロセス２１へ通知するようにしてもよい。また、プロキシプロセス１１は、プロキシプロセス２１からプロキシプロセス２１が停止する旨を受信した場合、管理情報記憶部１３に格納されたプロセス情報２３１、及びアプリケーション情報２３２を削除してもよい。これにより、管理情報記憶部１３には、利用可能なプロキシプロセス、及びアプリケーションの情報が格納されることとなる。
【００５１】
尚、プロキシプロセス１１とプロキシプロセス２１との間の通信は、例えば、ＲＰＣ（Remote Procedure Call）や、ＲＭＩ（Remote Method Invocation）などで実現すればよい。その場合、プロセス情報１３１、及びプロセス情報２３１に、ＲＰＣ、又はＲＭＩで必要とされるパラメータを含めて管理すればよい。
【００５２】
アプリケーション１２１、及びアプリケーション１２２は、当該サービスを実現するアプリケーションソフトウェアであり、プロキシプロセス１１により起動されるものである。また、アプリケーション１２１、及びアプリケーション１２２は、同様の機能であるため、分散して処理を実行することができる。
【００５３】
尚、アプリケーションサーバ１０の構成についての説明は、図２で詳述する。
【００５４】
端末５０は、ネットワーク４０に接続された汎用的なコンピュータシステムであるクライアント端末である。端末５０は、図示しない構成として、ＣＰＵ、ＲＡＭ、ＲＯＭ、及び不揮発性記憶装置を備える。端末５０は、ＣＰＵがＲＡＭ、ＲＯＭ，又は不揮発性記憶装置に格納されたＯＳ、ＷＥＢブラウザプログラムを読み込み、実行する。これにより、端末５０は、Ｗｅｂサーバ３０に対して、サービス提供要求を送信し、上述した複数のアプリケーションによる実行結果を受信することができる。
【００５５】
図２は、本発明の実施の形態１にかかるアプリケーションサーバ１０の構成を示すブロック図である。尚、アプリケーションサーバ２０の構成は、図２と同様のため、図示、及び説明を省略する。アプリケーションサーバ１０は、ＣＰＵ１４と、通信部１５と、メモリ１６と、不揮発性記憶装置１７とを備える。
【００５６】
メモリ１６は、図１の管理情報記憶部１３に相当し、プロセス情報テーブル１６１と、アプリケーション情報テーブル１６２という管理情報を記憶する揮発性の記憶装置である。尚、メモリ１６は、図示しない構成として、ＯＳ、プロキシプロセスプログラム１７１、アプリケーションプログラム１７２を記憶している。メモリ１６は、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置であればよい。また、図３は、本発明の実施の形態１にかかる管理情報の一例を示す図である。
【００５７】
プロセス情報テーブル１６１は、図１のプロセス情報１３１を管理するための格納領域である。図３（ａ）は、プロセス情報テーブル１６１の構成例を示す図である。図３（ａ）に示すように、プロセス情報テーブル１６１は、プロキシプロセスの識別情報であるＩＤを示す属性と、当該プロキシプロセスが稼働するアプリケーションサーバのＩＰアドレスを示す属性とから構成される。これにより、プロキシプロセス１１は、プロキシプロセス２１を含む他のプロキシプロセスとの通信が可能となる。
【００５８】
アプリケーション情報テーブル１６２は、図１のアプリケーション情報１３２を管理するための格納領域である。図３（ｂ）は、アプリケーションテーブルの構成例を示す図である。図３（ｂ）に示すように、アプリケーション情報テーブル１６２は、アプリケーションの識別情報であるＩＤを示す属性と、当該アプリケーションが所属する、すなわち、当該アプリケーションを管理するプロキシプロセスのＩＤを示す属性とから構成される。これにより、プロキシプロセス１１は、各アプリケーションが所属するプロキシプロセスのＩＤを特定することができ、各プロキシプロセスに対して、所属するアプリケーションの実行を依頼することができる。
【００５９】
尚、プロセス情報テーブル１６１、及びアプリケーション情報テーブル１６２の構成は図３に限定されない。例えば、プロセス情報テーブル１６１は、ＲＰＣ、又はＲＭＩで必要とされる接続情報をさらに管理してもよい。また、アプリケーション情報テーブル１６２は、プロキシプロセスのＩＤの代わりに、当該アプリケーションが稼働するアプリケーションサーバのＩＰアドレスを示す属性であってもよく、併せて、当該アプリケーションを実行させるための各種接続情報を管理してもよい。
【００６０】
図２に戻って説明する。ハードディスク１７は、プロキシプロセスプログラム１７１と、アプリケーションプログラム１７２とを記憶する不揮発性の記憶装置である。プロキシプロセスプログラム１７１は、図１のプロキシプロセス１１の処理が記述された実行形式のプログラムコード（以下、実行コード）である。アプリケーションプログラム１７２は、図１のアプリケーション１２１の処理が記述された実行コードである。尚、メモリ１６は、図示しない構成として、ＯＳ、アプリケーション１２２の実行コード、並びに、プロキシプロセスプログラム１７１、及びアプリケーションプログラム１７２のための設定パラメータファイル等を記憶している。尚、ハードディスク１７は、フラッシュメモリ等の不揮発性の記憶装置であってもよい。
【００６１】
制御部１４は、アプリケーションサーバ１０における各種処理、すなわち、各種プログラムの処理、通信部１５、メモリ１６、及びハードディスク１７へのアクセス、等を制御する。通信部１５は、Ｗｅｂサーバ３０、及びアプリケーションサーバ２０との間のデータの送受信等の通信を行う。
【００６２】
図４は、プロキシプロセスによる管理情報の更新処理を示すシーケンス図である。ここでは、アプリケーションサーバ２０においてプロキシプロセス２１が稼働している状態で、アプリケーションサーバ１０において、プロキシプロセス１１が起動される場合における管理情報の初期登録の流れについて説明する。
【００６３】
まず、プロキシプロセス１１は、アプリケーションサーバ１０において起動される（Ｓ１０１）。すなわち、アプリケーションサーバ１０の制御部１４は、ハードディスク１７のプロキシプロセスプログラム１７１をメモリ１６へ読み込む。これにより、アプリケーションサーバ１０において、プロキシプロセス１１として動作する。また、このとき、プロセス情報テーブル１６１には、プロキシプロセス１１のプロセス情報１３１のみが格納され、アプリケーション情報テーブル１６２には、アプリケーション１２１、及びアプリケーション１２２のアプリケーション情報１３２のみが格納されている。尚、以下では、プロセス情報テーブル１６１、及びアプリケーション情報テーブル１６２を管理情報記憶部１３として説明する。
【００６４】
次に、プロキシプロセス１１は、プロキシプロセス２１へ自己のプロセス情報、及び自己のアプリケーションサーバのアプリケーション情報を通知する（Ｓ１０２）。すなわち、プロキシプロセス１１は、管理情報記憶部１３に格納されている自己のプロセス情報であるプロセス情報１３１、及び自己のアプリケーションであるアプリケーション情報１３２を読み出し、通信部１５からマルチキャスト通信により、プロセス情報１３１、及びアプリケーション情報１３２の配信を行う。ここでは、アプリケーションサーバ１０とアプリケーションサーバ２０は接続されているため、アプリケーションサーバ１０からプロキシプロセス２１へプロセス情報１３１、及びアプリケーション情報１３２が送信される。
【００６５】
続いて、プロキシプロセス２１は、受信したプロセス情報１３１、及びアプリケーション情報１３２を登録する（Ｓ１０３）。すなわち、プロキシプロセス２１は、プロキシプロセス１１からプロセス情報１３１、及びアプリケーション情報１３２を受信し、管理情報記憶部２３へ登録する。これにより、プロキシプロセス２１は、プロキシプロセス１１へアプリケーション１２１、及びアプリケーション１２２の実行依頼が可能となる。
【００６６】
その後、プロキシプロセス２１は、プロキシプロセス１１へ自己のプロセス情報、及び自己のアプリケーションサーバのアプリケーション情報を通知する（Ｓ１０４）。すなわち、すなわち、プロキシプロセス２１は、管理情報記憶部２３に格納されているプロセス情報１３１を参照し、管理情報記憶部２３に格納されている自己のプロセス情報であるプロセス情報２３１、及び自己のアプリケーションであるアプリケーション情報２３２を読み出し、プロセス情報２３１、及びアプリケーション情報２３２をプロキシプロセス１１へ送信する。
【００６７】
そして、プロキシプロセス１１は、受信したプロセス情報２３１、及びアプリケーション情報２３２を登録する（Ｓ１０５）。すなわち、プロキシプロセス１１は、プロキシプロセス２１からプロセス情報２３１、及びアプリケーション情報２３２を受信し、管理情報記憶部１３へ登録する。これにより、プロキシプロセス１１は、プロキシプロセス２１へアプリケーション２２１、及びアプリケーション２２２の実行依頼が可能となる。
【００６８】
尚、ステップＳ１０４、及びＳ１０５は、ステップＳ１０３において、新規なプロセス情報が登録された場合のみ、行うようにしてもよい。これにより、冗長な通信を省略し、通信コストを下げることができる。
【００６９】
また、図４の処理が終了した後、アプリケーションサーバ１０において、メンテナンス作業、又は、障害対応により、アプリケーションの追加、入れ替え、又は削除の更新が発生した場合、ステップＳ１０２、及びＳ１０３により、更新されたアプリケーション情報のみを通知することにより、プロキシプロセス１１からプロキシプロセス２１へアプリケーション情報の更新処理が可能となる。さらに、アプリケーション１２１、又はアプリケーション１２２が中断、又は再開された場合も同様である。これにより、アプリケーションサーバ１０のアプリケーションの状態管理が可能となる。
【００７０】
また、プロキシプロセス１１の停止においては、プロキシプロセス１１の停止処理の直前に、プロキシプロセス１１からプロキシプロセス２１へプロセス情報１３１について停止される旨を通知することで、プロキシプロセス２１において、管理情報記憶部２３からプロセス情報１３１を削除等することにより、プロキシプロセスの状態管理を行うことも可能である。
【００７１】
また、上述したことは、アプリケーションサーバ２０における、プロキシプロセス２１、アプリケーション２２１、及びアプリケーション２２２についても同様の処理により状態管理が行えるであることは勿論である。
【００７２】
図５は、プロキシプロセスによるアプリケーション実行処理を示すフローチャート図である。ここでは、プロキシプロセス１１がＷｅｂサーバ３０からのサービス提供要求を受信するものとする。また、図４で示すようなプロキシプロセス１１とプロキシプロセス２１の間でプロセス情報、及びアプリケーション情報の同期が完了しているものとする。
【００７３】
まず、プロキシプロセス１１は、Ｗｅｂサーバ３０からサービス提供要求を受信する（Ｓ１１）。次に、プロキシプロセス１１は、当該サービス提供要求に基づき、アプリケーション情報、及び他のプロセス情報を取得する（Ｓ１２）。具体的には、プロキシプロセス１１は、メモリ１６からアプリケーション情報テーブル１６２に格納されたアプリケーション情報１３２、及びアプリケーション情報２３２を取得する。そして、プロキシプロセス１１は、アプリケーション情報２３２に対応するプロキシプロセスのＩＤからプロセス情報２３１を取得する。
【００７４】
その後、プロキシプロセス１１はステップＳ１３、及びＳ１４を並行して行う。まず、プロキシプロセス１１は、自己のアプリケーションを実行させる（Ｓ１３）。すなわち、プロキシプロセス１１は、アプリケーション情報１３２に基づき、アプリケーション１２１、及びアプリケーション１２２を並列実行させる。
【００７５】
また、プロキシプロセス１１は、他のプロキシプロセスが管理するアプリケーションについて、当該アプリケーションの実行依頼をする（Ｓ１４）。すなわち、プロキシプロセス１１は、アプリケーション情報２３２に基づき、アプリケーション２２１、及びアプリケーション２２２を並列実行させるように、プロセス情報２３１に基づき、プロキシプロセス２１へ実行依頼を送信する。
【００７６】
尚、ステップＳ１４を受けて、プロキシプロセス２１は、受信したアプリケーション情報２３２に基づき、アプリケーション２２１、及びアプリケーション２２２を並列実行させる。そして、プロキシプロセス２１は、アプリケーション２２１、及びアプリケーション２２２の実行結果をプロキシプロセス１１へ返信する。
【００７７】
その後、プロキシプロセス１１は、それぞれ実行させたアプリケーションからの実行結果を受信する（Ｓ１５）。すなわち、プロキシプロセス１１は、アプリケーション２２１、及びアプリケーション２２２からそれぞれの実行結果を受信し、プロキシプロセス２１を介して、アプリケーション２２１、及びアプリケーション２２２の実行結果を受信する。
【００７８】
そして、プロキシプロセス１１は、実行結果を集約し、Ｗｅｂサーバ３０へ返信する（Ｓ１６）。
【００７９】
これにより、本発明の実施の形態１にかかるプロキシプロセス１１、及びプロキシプロセス２１により、アプリケーションの分散実行が可能となる。
【００８０】
このように、本発明の実施の形態１にかかるアプリケーションサービス提供システム１００により、アプリケーションサーバ１０、及びアプリケーションサーバ２０で稼働するプロキシプロセス１１、及びプロキシプロセス２１のいずれかにより、サービス提供要求を処理することができる。また、プロキシプロセス１１とプロキシプロセス２１の間でプロセス情報、及びアプリケーション情報を同期できるため、アプリケーションサーバ１０と同等の構成を有する他のアプリケーションサーバを追加、変更、削除した場合であっても、システムを止めることなく稼働することができる。そのため、本発明の実施の形態１により、システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とすることができる。
【００８１】
発明の実施の形態２．
続いて、本発明の実施の形態２にかかるアプリケーション移行方法の実施例を以下に例示する。本発明の実施の形態２では、本発明の実施の形態１で例示したアプリケーションサービス提供システム１００の変形例として、一つのサービス提供要求に対して実行されるアプリケーションがあるアプリケーションサーバにおいて当該アプリケーションが実行中であっても、他のアプリケーションサーバへ移行して継続して処理を実行するためのアプリケーション移行方法である。例えば、一つのサービス提供要求に対して複数の異なるアプリケーションを複数のアプリケーションサーバにおいて並列実行する場合、一方のアプリケーションサーバで実行されるアプリケーションは、他方のアプリケーションサーバには予め導入されているとは限らない。その場合、単に他方のアプリケーションサーバへ当該アプリケーションを導入するだけでは、実行中の当該アプリケーションの処理を継続することはできない。それは、アプリケーションサーバにおいて、当該アプリケーションの実行時にメモリ上に内部情報が生成されるためである。ここで、内部情報とは、例えば、当該アプリケーションの実行時の内部変数、一時的に保存するデータや、当該アプリケーション起動時のセッションＩＤ等の起動毎に異なる入力値等である。そこで、本発明の実施の形態２では、システムの可用性を確保しつつ、アプリケーションの実行時にメモリ上に生成される内部情報を含めて、他のアプリケーションサーバに移行する方法を示す。
【００８２】
図６は、本発明の実施の形態２にかかるアプリケーションサービス提供システム２００の構成の一例を示すブロック図である。アプリケーションサービス提供システム２００は、図１に比べ、アプリケーションサーバ１０、及びアプリケーションサーバ２０が移行元アプリケーションサーバ１０ａ、及び移行先アプリケーションサーバ２０ａに変更されたものである。そして、移行元アプリケーションサーバ１０ａは、アプリケーション１２３と、移行手段１８を備え、移行先アプリケーションサーバ２０ａは、アプリケーション２２３と、移行手段２８とを備える。尚、その他の構成については、図１と同様のため、説明を省略する。以下では、図１との違いについてのみ説明する。
【００８３】
アプリケーション１２３は、アプリケーション２２３とは別機能のアプリケーションソフトウェアである。但し、アプリケーション１２３、及びアプリケーション２２３は、それぞれ起動時に当該アプリケーションのメモリ上の実行状態である内部情報がファイル出力された内部情報出力ファイルが存在する場合、当該内部情報出力ファイルを読み込み、実行することが可能である。また、アプリケーション１２３、及びアプリケーション２２３は、処理の中断指示を受け付け、中断時のメモリ上の内部情報をファイル出力することが可能である。
【００８４】
アプリケーション１２３は、プロキシプロセス１１により起動され、ここでは、アプリケーション情報１３２は、アプリケーション１２３に関する情報である。同様に、アプリケーション２２３は、プロキシプロセス２１により起動され、ここでは、アプリケーション情報２３２は、アプリケーション２２３に関する情報である。尚、移行元アプリケーションサーバ１０ａ、及び移行先アプリケーションサーバ２０ａで稼働するアプリケーションの数はこれに限定されない。
【００８５】
移行手段１８は、アプリケーション１２３の実行コード、設定パラメータファイル、内部情報ファイルを移行先アプリケーションサーバ２０ａへ送信する処理、及び、アプリケーション１２３の中断、又は再開の旨をプロキシプロセス１１へ通知する処理を行うアプリケーションソフトウェアである。また、移行手段２８は、移行手段１８から送信された各種情報を受信する処理、及び、移行手段１８と同様の通知する処理を行うアプリケーションソフトウェアである。尚、移行手段１８、及び移行手段２８は同機能のアプリケーションソフトウェアであればよい。
【００８６】
図７は、本発明の実施の形態２にかかるアプリケーションサーバ１０ａの構成を示すブロック図である。尚、アプリケーションサーバ２０ａの構成は、図７と同様のため、図示、及び説明を省略する。移行元アプリケーションサーバ１０ａは、図２のアプリケーションサーバ１０と比べ、メモリ１６、及びハードディスク１７がメモリ１６ａ、及びハードディスク１７ａに置き換わったものである。尚、その他の構成については、図２と同様のため、説明を省略する。以下では、図２との違いについてのみ説明する。
【００８７】
メモリ１６ａは、メモリ１６と比べ、実行コード１６３と、パラメータ１６４と、実行中の内部情報１６５とをさらに記憶する揮発性の記憶装置である。また、ハードディスク１７ａは、ハードディスク１７と比べ、アプリケーションプログラム１７２がアプリケーションプログラム１７２ａに置き換わり、パラメータファイル１７３と、中断時の内部情報出力ファイル１７４と、移行プログラム１７５とをさらに記憶する不揮発性の記憶装置である。
【００８８】
アプリケーションプログラム１７２ａは、図６のアプリケーション１２３の処理が記述された実行コードである。また、パラメータファイル１７３は、アプリケーションプログラム１７２ａの起動時の入力となる設定値の集合が記述されたファイルである。アプリケーションプログラム１７２ａ、及びパラメータファイル１７３は、制御部１４によりハードディスク１７ａから読み込まれ、実行コード１６３、及びパラメータ１６４としてメモリ１６ａへ格納されることにより、アプリケーション１２３として実行される。このとき、アプリケーション１２３が実行されることにより、メモリ１６ａにアプリケーション１２３の実行状態を示す実行中の内部情報１６５が生成される。また、中断時の内部情報出力ファイル１７４は、アプリケーション１２３の中断時に実行中の内部情報１６５がメモリ１６ａからハードディスク１７ａへ出力されたものである。
【００８９】
移行プログラム１７５は、図６の移行手段１８の処理が記述された実行コードである。移行プログラム１７５は、制御部１４によりハードディスク１７ａから読み込まれ、メモリ１６ａに格納されることにより、移行手段１８として実行される。
【００９０】
図８は、本発明の実施の形態２にかかるアプリケーションの処理を示すフローチャート図である。ここでは、移行元アプリケーションサーバ１０ａにおいて実行されるアプリケーション１２３について例示するが、移行先アプリケーションサーバ２０ａにおいて実行されるアプリケーション２２３についても同様の処理となる。
【００９１】
まず、アプリケーション１２３は、起動時に、パラメータファイル１７３、及び中断時の内部情報出力ファイル１７４を入力とする（Ｓ２１）。すなわち、制御部１４は、ハードディスク１７ａからアプリケーションプログラム１７２ａを読み込み、メモリ１６ａへ格納することで、アプリケーション１２３として起動する。そして、アプリケーション１２３は、ハードディスク１７ａに格納されたパラメータファイル１７３、及び中断時の内部情報出力ファイル１７４を入力として、初期化処理を行う。尚、中断時の内部情報出力ファイル１７４がハードディスク１７ａに存在しない場合は、アプリケーション１２３は、パラメータファイル１７３に含まれるデフォルト値を用いて初期処理を行う。
【００９２】
次に、アプリケーション１２３は、メインのアプリケーションの処理を実行する（Ｓ２２）。尚、ステップＳ２２は、アプリケーション毎に処理内容が異なる。
【００９３】
その後、アプリケーション１２３は、当該処理の中断するための中断指示の有無を確認する（Ｓ２３）。すなわち、アプリケーション１２３は、外部からの中断指示の入力を受け付けるインタフェースを備えており、任意のタイミングで、当該中断指示の有無を確認する。中断指示がないと判定された場合、ステップＳ２２へ戻り、中断指示があると判定された場合、ステップＳ２４へ進む。
【００９４】
アプリケーション１２３は、処理の中断を行う（Ｓ２４）。例えば、プロキシプロセス１１により実行中の処理に対して割り込みを発生させて、当該処理を中断する。
【００９５】
その後、アプリケーション１２３は、中断時の内部情報をファイル出力する（Ｓ２５）。すなわち、アプリケーション１２３は、メモリ１６ａに格納された実行中の内部情報１６５を読み出し、ハードディスク１７ａへ中断時の内部情報出力ファイル１７４として格納する。
【００９６】
図９は、本発明の実施の形態２にかかるアプリケーション移行方法を示すシーケンス図である。ここでは、移行手段１８、及び移行手段２８により、移行元アプリケーションサーバ１０ａで実行中のアプリケーション１２３を移行先アプリケーションサーバ２０ａへ移行する例を説明する。
【００９７】
まず、移行手段１８は、アプリケーションプログラム１７２ａ、及びパラメータファイル１７３を移行手段２８へ送信する（Ｓ２０１）。すなわち、移行手段１８は、アプリケーション１２３が実行中の状態において、アプリケーション１２３の実行コード、及びパラメータであるアプリケーションプログラム１７２ａ、及びパラメータファイル１７３をハードディスク１７ａから読み出し、通信部１５から移行先アプリケーションサーバ２０ａへ送信する。また、このとき、移行先アプリケーションサーバ２０ａでは、移行手段２８がアプリケーションプログラム１７２ａ、及びパラメータファイル１７３を受信し、移行先アプリケーションサーバ２０ａ内のハードディスク（不図示）へ格納する。
【００９８】
次に、移行手段１８は、実行中のアプリケーション１２３に中断指示を行う（Ｓ２０２）。このとき、アプリケーション１２３は、図８のステップＳ２３により、中断指示ありと判定され、ステップＳ２４によりアプリケーション１２３の処理が中断される。また、これにより、メモリ１６ａ上の実行中の内部情報１６５の更新がなくなる。
【００９９】
そして、移行手段１８は、プロキシプロセス１１へアプリケーション１２３の処理が中断した旨を通知する（Ｓ２０３）。このとき、プロキシプロセス１１は、管理情報記憶部１３に格納されたアプリケーション情報１３２を更新する。そのため、プロキシプロセス１１は、以後のサービス提供要求に対して、アプリケーション１２３を実行させない。また、プロキシプロセス１１は、更新されたアプリケーション情報１３２を他のプロキシプロセスへ通知する。これにより、以後のサービス提供要求において、プロキシプロセス１１以外のプロキシプロセスが窓口となった場合でも、アプリケーション１２３が移行元アプリケーションサーバ１０ａにおいては実行できないことが伝わるため、アプリケーション１２３についての実行依頼はプロキシプロセス１１には来ない。
【０１００】
また、アプリケーション１２３は、中断時のアプリケーション１２３の内部情報をハードディスク１７ａへ保存する（Ｓ２０４）。すなわち、図８のステップＳ２５と同様に、アプリケーション１２３は、メモリ１６ａに格納された実行中の内部情報１６５をハードディスク１７ａに中断時の内部情報出力ファイル１７４として格納する。尚、ステップＳ２０３、Ｓ２０４は、並列実行されて構わない。
【０１０１】
その後、移行手段１８は、中断時の内部情報出力ファイル１７４を移行手段２８へ送信する（Ｓ２０５）。すなわち、移行手段１８は、アプリケーション１２３が中断後の状態において、アプリケーション１２３の内部情報である中断時の内部情報出力ファイル１７４をハードディスク１７ａから読み出し、通信部１５から移行先アプリケーションサーバ２０ａへ送信する。また、このとき、移行先アプリケーションサーバ２０ａでは、移行手段２８が中断時の内部情報出力ファイル１７４を受信し、移行先アプリケーションサーバ２０ａ内のハードディスクへ格納する。これにより、移行先アプリケーションサーバ２０ａには、アプリケーション１２３を実行するための実行コード、パラメータ、及び内部情報が取得されたことになる。
【０１０２】
そして、移行手段２８は、内部情報に基づいて、アプリケーションの実行を再開する（Ｓ２０６）。すなわち、図８のステップＳ２１と同様にして、移行先アプリケーションサーバ２０ａにおいて、アプリケーション１２３が起動される。そして、このとき、移行元アプリケーションサーバ１０ａにおける中断時のメモリ１６ａ内の実行中の内部情報１６５に相当する中断時の内部情報出力ファイル１７４を読み込み、中断時点の処理から継続して再開される。
【０１０３】
最後に、移行手段２８は、プロキシプロセス２１へアプリケーション１２３の処理が再開した旨を通知する（Ｓ２０７）。このとき、プロキシプロセス２１は、管理情報記憶部２３に格納されたアプリケーション情報１３２を更新する。そのため、プロキシプロセス２１は、以後のサービス提供要求に対して、アプリケーション１２３を実行させることができる。また、プロキシプロセス２１は、更新されたアプリケーション情報１３２を他のプロキシプロセスへ通知する。以後のサービス提供要求において窓口となったプロキシプロセスにも、アプリケーション１２３が移行先アプリケーションサーバ２０ａにおいて実行可能となったことが伝わる為、アプリケーション１２３についての実行依頼がプロキシプロセス２１にされることとなる。
【０１０４】
このように、本発明の実施の形態２にかかるアプリケーション移行方法により、アプリケーション１２３の処理の中断を図９のステップＳ２０２乃至Ｓ２０６の期間とすることができる。
【０１０５】
一般的に、アプリケーションの実行環境としては、実行コード、パラメータ、及び内部情報が存在する。この中で、実行コードであるアプリケーションプログラム１７２ａ、及びパラメータであるパラメータファイル１７３は、アプリケーション１２３の起動前からハードディスク１７ａに格納済みであり、通常の実行においては更新されない。また、内部情報である実行中の内部情報１６５は、通常の実行においてメモリ１６ａ上に生成、及び更新され、アプリケーション１２３の実行終了後は、メモリ１６ａから削除され、残されない。しかしながら、アプリケーション１２３の実行状態として必要なものであるため、実行中のアプリケーション１２３を移行するためには、併せて移行する必要がある。
【０１０６】
そのため、実行中のアプリケーション１２３の処理を継続したまま移行するためには、実行コード１６３、パラメータ１６４、及び実行中の内部情報１６５をセットにして、移行する必要がある。また、実行中の内部情報１６５は、アプリケーション１２３が中断した後でなければ、データ内容が確定できない。よって、本来であればアプリケーション１２３の中断後に、実行中の内部情報１６５をファイル出力し、これらをまとめて送信する必要がある。そのため、送信時間が長くなり、システムの中断時間も長くなり、可用性が低くなる。
【０１０７】
そこで、アプリケーション１２３の実行中であっても変更されないアプリケーションプログラム１７２ａ、及びパラメータファイル１７３については、図９のステップＳ２０１に示すように、アプリケーション１２３の中断前に、移行手段１８により送信する。また、アプリケーション１２３の中断後でないとデータ内容が確定しない実行中の内部情報１６５については、図９のステップ２０２乃至Ｓ２０５に示すように、アプリケーション１２３の中断後に、中断時点での最新の内部情報をメモリ１６ａからハードディスク１７ａへファイル出力し、その後、送信することとした。これにより、実行コード、パラメータ、及び内部情報を併せて送信することに比べ、送信時間を短くすることができる。つまり、アプリケーションの中断時間を最小限に抑えることができる。
【０１０８】
また、本発明の実施の形態２により、高価なＲＡＩＤ（Redundant Arrays of Inexpensive Disks）ディスクや、専用の高速ネットワークを用いる必要がなく、システムの可用性を維持することができる。そのため、本発明の実施の形態２により、システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とすることができる。
【０１０９】
その他の発明の実施の形態．
本発明の実施の形態１にかかるアプリケーションサービス提供システム１００では、各アプリケーションサーバが同等の機能を有するものとしたがこれに限定されない。例えば、窓口となる窓口プロキシプロセスが実行されるアプリケーションサーバ以外のアプリケーションサーバについては、当該窓口プロキシプロセスからの実行依頼を受け付けて自己のアプリケーションを実行する機能と、自己のアプリケーション情報を当該プロキシプロセスへ通知する機能を有する従属プロキシプロセスを備えるサーバが複数存在してもよい。この場合、当該サーバにおける追加、削除については、窓口プロキシプロセスが管理することができ、従属プロキシプロセスを備えるサーバを柔軟に増設が可能となり、システムの可用性を維持しつつ、複数のアプリケーションサーバ間のメンテナンスを容易とすることができる。
【０１１０】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施の形態１にかかるアプリケーションサービス提供システム１００の構成の一例を示すブロック図である。
【図２】本発明の実施の形態１にかかるアプリケーションサーバ１０の構成を示すブロック図である。
【図３】本発明の実施の形態１にかかる管理情報の一例を示す図である。（ａ）は、プロセステーブルの構成例を示す図である。（ｂ）は、アプリケーションテーブルの構成例を示す図である。
【図４】プロキシプロセスによる管理情報の更新処理を示すシーケンス図である。
【図５】プロキシプロセスによるアプリケーション実行処理を示すフローチャート図である。
【図６】本発明の実施の形態２にかかるアプリケーションサービス提供システム２００の構成の一例を示すブロック図である。
【図７】本発明の実施の形態２にかかるアプリケーションサーバ１０ａの構成を示すブロック図である。
【図８】本発明の実施の形態２にかかるアプリケーションプログラムの処理を示すフローチャート図である。
【図９】本発明の実施の形態２にかかるアプリケーション移行方法を示すシーケンス図である。
【符号の説明】
【０１１２】
１００  アプリケーションサービス提供システム
１０  アプリケーションサーバ
１１  プロキシプロセス
１２１  アプリケーション
１２２  アプリケーション
１３  管理情報記憶部
１３１  プロセス情報
１３２  アプリケーション情報
１４  制御部
１５  通信部
１６  メモリ
１６１  プロセス情報テーブル
１６２  アプリケーション情報テーブル
１７  ハードディスク
１７１  プロキシプロセスプログラム
１７２  アプリケーションプログラム
２０  アプリケーションサーバ
２１  プロキシプロセス
２２１  アプリケーション
２２２  アプリケーション
２３  管理情報記憶部
２３１  プロセス情報
２３２  アプリケーション情報
３０  Ｗｅｂサーバ
４０  ネットワーク
５０  端末
２００  アプリケーションサービス提供システム
１０ａ  移行元アプリケーションサーバ
１２３  アプリケーション
１８  移行手段
２０ａ  移行先アプリケーションサーバ
２２３  アプリケーション
２８  移行手段
１６ａ  メモリ
１６３  実行コード
１６４  パラメータ
１６５  実行中の内部情報
１７ａ  ハードディスク
１７２ａ  アプリケーションプログラム
１７３  パラメータファイル
１７４  中断時の内部情報出力ファイル
１７５  移行プログラム
【図１】
2009245118.tif 000003
【図２】
2009245118.tif 000004
【図３】
2009245118.tif 000005
【図４】
2009245118.tif 000006
【図５】
2009245118.tif 000007
【図６】
2009245118.tif 000008
【図７】
2009245118.tif 000009
【図８】
2009245118.tif 000010
【図９】
2009245118.tif 000011