(57)【要約】【課題】クライアントがＳＢＣ技術を用いてＳＢＣサーバ上でアプリケーションを遠隔利用している時に、クライアントに手間をかけることなく他のＳＢＣサーバに処理を移行し、アプリケーションを継続的に利用することを可能とする。【解決手段】ＳＢＣクライアント１００がプロキシサーバ２００を介してＳＢＣサーバ３００ａ上でアプリケーション３０５ａを遠隔利用し、その後、必要に応じてプロキシサーバ２００が、ＳＢＣクライアント１００との間でステートレスなＳＢＣプロトコルのコネクションを維持して、ＳＢＣクライアント１００が利用するＳＢＣサーバをＳＢＣサーバ３００ａからＳＢＣサーバ３００ｂに切り替えるようにしたものである。【選択図】    図１
2004295334.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションソフトウェアを実行可能な第１のサーバ装置と、
前記アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、
ネットワークを通じて、前記第１のサーバ装置と前記第２のサーバ装置のうち、いずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末と、
前記クライアント端末と、前記第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続する第３のサーバ装置とを具備し、
前記第３のサーバ装置は、前記クライアント端末が前記第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、前記クライアント端末との間の接続を保持するとともに、前記第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段を備えることを特徴とする電子計算システム。
【請求項２】
前記第３のサーバ装置は、
さらに、前記第１のサーバ装置と前記第２のサーバ装置の運用状態を監視する監視手段を備え、
前記制御手段は、前記監視手段の監視結果に応じて、前記クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする請求項１に記載の電子計算システム。
【請求項３】
さらに、前記制御手段の指示により、アプリケーションソフトウェアを実行中の第１のサーバ装置の処理状態を示す情報を記憶手段に記録する保存手段と、
前記制御手段の指示により、前記保存手段によって前記記憶手段に保存された情報に基づいて、アプリケーションソフトウェアを前記第２のサーバ装置に実行させ、前記第１のサーバ装置で実行していた処理状態を復元する復元手段とを備えることを特徴とする請求項１または請求項２に記載の電子計算システム。
【請求項４】
アプリケーションソフトウェアを実行可能な第１のサーバ装置と、前記アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、前記第１のサーバ装置と前記第２のサーバ装置のうちいずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末との間を仲介して両者を接続するサーバ装置であって、
前記クライアント端末が前記第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、前記クライアント端末との間の接続を保持するとともに、前記第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段を備えることを特徴とするサーバ装置。
【請求項５】
さらに、前記第１のサーバ装置と前記第２のサーバ装置の運用状態を監視する監視手段を備え、
前記制御手段は、前記監視手段の監視結果に応じて、前記クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする請求項４に記載のサーバ装置。
【請求項６】
ネットワークを通じたクライアント端末からの要求に応じて、アプリケーションソフトウェアを実行するサーバ装置において、
クライアント端末からの要求に応じて実行しているアプリケーションソフトウェアの動作状態を示す情報を記憶手段に記録する保存手段と、
前記記憶手段に保存された情報に基づいて、アプリケーションソフトウェアの動作状態を復元して動作させる復元手段とを備えることを特徴とするサーバ装置。
【請求項７】
アプリケーションソフトウェアを実行可能な第１のサーバ装置と、前記アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、前記第１のサーバ装置と前記第２のサーバ装置のうちいずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末との間を仲介して両者を接続するサーバ装置のプログラムであって、
前記クライアント端末が前記第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、前記クライアント端末との間の接続を保持するとともに、前記第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段として、前記サーバ装置を機能させるためのプログラム。
【請求項８】
さらに、前記第１のサーバ装置と前記第２のサーバ装置の運用状態を監視する監視手段として機能させ、
前記制御手段は、前記監視手段の監視結果に応じて、前記クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって前記第２のサーバ装置を前記クライアント端末に接続して、前記第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする請求項７に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＳＢＣ（Ｓｅｒｖｅｒ−Ｂａｓｅｄ  Ｃｏｍｐｕｔｉｎｇ）技術により、クライアントがネットワークを通じて、サーバ側のアプリケーションソフトウェアを遠隔利用する電子計算システムに関する。
【０００２】
【従来の技術】
近年、いわゆるＳＢＣ技術により、ネットワーク内のＳＢＣサーバで稼動する任意のアプリケーションを、ネットワークに接続された単一のＳＢＣクライアントのＳＢＣブラウザから遠隔利用できる電子計算システムが開発されている（例えば、特許文献１参照）。
【０００３】
図３を参照して、ＳＢＣ技術を適用した従来の電子計算システムについて説明する。
１０は、例えばパーソナルコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）などのＳＢＣクライアントの端末装置であって、ＳＢＣ技術を採用したＳＢＣブラウザソフトウェア１１を搭載している。
２０は、ＳＢＣ技術を採用したＳＢＣサーバであって、ＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）の他に、アプリケーションソフトウェア（ＡＰＬ）２２（以下、アプリケーションと略称する）と、上記ＯＳとアプリケーション２２との中間に位置し、ＯＳよりも高度で具体的なサービス（機能）を提供するＳＢＣミドルウェア２１を備える。
また、ＳＢＣクライアント１０とＳＢＣサーバ２０は、それぞれネットワークＮＷを通じて互いに通信するためのハードウェアおよびソフトウェアを備える。
【０００４】
第１のステップＳ１として、ＳＢＣクライアント１０では、ＳＢＣサーバ２０上のアプリケーション２２を遠隔利用する場合、ユーザによりマウス、キーボード、タブレット、ジョイスティック、その他任意の入力装置（図示しない）を使って入力操作がなされる。これ対して、ＳＢＣブラウザソフトウェア１１は、ユーザによる入力操作情報を、ネットワークＮＷを介してＳＢＣサーバ２０上で稼動するＳＢＣミドルウェア２１に送信する。
【０００５】
第２のステップＳ２として、ＳＢＣサーバ２０では、ＳＢＣミドルウェア２１が、ネットワークＮＷを通じてＳＢＣブラウザソフトウェア１１から受信した入力操作情報を、ＳＢＣミドルウェア１１上で稼動するアプリケーション２２に受け渡す。
【０００６】
第３のステップＳ３として、ＳＢＣサーバ２０では、アプリケーション２２が、上記入力操作情報に基づいた処理を実行し、実行結果である画面更新情報をＳＢＣミドルウェア２１に供給する。
【０００７】
第４のステップＳ４として、ＳＢＣサーバ２０では、ＳＢＣミドルウェア２１が、アプリケーション２２から受け取った画面更新情報を、ネットワークＮＷを介してＳＢＣクライアント１０に転送する。これに対して、ＳＢＣクライアント１０では、ＳＢＣブラウザソフトウェア１１が上記画面更新情報の内容を画面上に表示させる。
【０００８】
以上のように、ＳＢＣ技術を適用した電子計算システムでは、高負荷のアプリケーションをＳＢＣクライアント１０ではなくＳＢＣサーバ２０側で実行し、その実行画面だけをクライアントに送信する。
これによりＳＢＣクライアント１０は、あたかも自分の端末にインストールされたアプリケーションを実行するかのように、ＳＢＣサーバ２０内のアプリケーションを利用することができる。
【０００９】
ＳＢＣクライアント１０とＳＢＣサーバ２０との関係は基本的に１対１対応であり、複数のＳＢＣクライアント１０が存在する場合、各クライアントはそれぞれ単独でＳＢＣサーバ２０内のアプリケーションを利用する。
ＳＢＣクライアント１０は、入力操作に対応した実行画面をサーバから受け取るだけなので、ＰＤＡなどの低性能の端末からでも複雑なアプリケーションを実行することができる。
【００１０】
したがって、ユーザは、ＳＢＣサーバ２０上のアプリケーション２２を、ＳＢＣクライアント１０にインストールされたアプリケーションのごとく利用することができる。
なお、ＳＢＣサーバ２０上のアプリケーション２２としては、ＳＢＣミドルウェア２１が対応するＯＳ上で動作し得るアプリケーションであればよく、例えば、エディタソフト、ＤＴＰソフト、ＣＡＤソフト、ゲームソフトなど、基本的にどのようなアプリケーションでもほぼ対応可能である。
【００１１】
ところが、ＳＢＣ技術を適用した従来の電子計算システムは、現在のネットワークサービスの主流であるＷｅｂシステムと比較すると、サービスの可用性の面で明らかに劣ってしまう。
ここでいう可用性は、クライアントが一旦サーバに接続しサービスを受けている途中に、サーバ障害時や負荷分散のために他のサーバにシームレスに接続を切り替えることを意味している。当然、接続を切り替えるだけではなく、今までのクライアントの作業に支障をきたしてはならない。
【００１２】
このような可用性を高める技術は、Ｗｅｂシステムにおいては多数のベンダーにより開発されているが、ＳＢＣ技術を適用した従来の電子計算システムでは実現されていない。
というのは、Ｗｅｂシステムに比べＳＢＣシステムは、上記の仕組みを実現しにくい特徴を有するためである。
【００１３】
例えば、Ｗｅｂシステムで使用されるＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）プロトコルは、一般に「トランザクション型」と呼ばれ、ｒｅｑｕｅｓｔ／ｒｅｓｐｏｎｓｅで１つの処理が終わるというものである。
また、サーバ側では、一般に「ステートレス」と呼ばれ、ＨＴＴＰトランザクションについての情報を保存しない仕組みになっている。このような特徴を持つため、ＷｅｂクライアントとＷｅｂサーバの間にスイッチ等の機器を導入しさえずれば、いつでも接続するＷｅｂサーバを切り替えることができ、サービスの運用・管理の面でも優れている。
【００１４】
それに比べて、ＳＢＣシステムで使用されるＳＢＣプロトコルは、一般に「ストリーム型」と呼ばれ、１つのパケットで１つの処理が終わるというものではなく、絶えずネットワーク上を情報が流れ続ける。
また、ＳＢＣサーバ側では、一般的に「ステートフル」と呼ばれ、ＳＢＣサーバ側のアプリケーションの状態は常に変化している。そのため、クライアントが一旦ＳＢＣサーバに接続してアプリケーションの利用をはじめると、基本的に接続中は別のＳＢＣサーバに切り替えることができない。Ｗｅｂシステムで適用されるスイッチ等をＳＢＣクライアントとＳＢＣサーバの間に導入しても、あまり意味をなさない。
【００１５】
上記の理由により、ＳＢＣ技術を適用した従来の電子計算システムでは、可用性を高める技術である負荷分散やフェイルオーバを適用することができない。
このため、可用性が低く、クライアントが一旦サーバに接続しサービスを受けている途中に、サーバ障害時や負荷分散のために他のサーバにシームレスに接続を切り替えることできなかったり、接続を切り替える際に、クライアントの作業継続に支障をきたす虞があるという問題があった。
【００１６】
【特許文献１】
特開２００２−２２２１７６公報（第３−５頁、図１）。
【００１７】
【発明が解決しようとする課題】
従来の電子計算システムでは、可用性が低く、クライアントが一旦サーバに接続しサービスを受けている途中に、サーバ障害時や負荷分散のために他のサーバにシームレスに接続を切り替えることできなかったり、接続を切り替える際に、クライアントの作業継続に支障をきたす虞があるという問題があった。
【００１８】
この発明は上記の問題を解決すべくなされたもので、クライアントがＳＢＣ技術を用いてＳＢＣサーバ上でアプリケーションを遠隔利用している時に、クライアントに手間をかけることなく他のＳＢＣサーバに処理を移行し、アプリケーションを継続的に利用することが可能な電子計算システムを提供することを目的とする。
【００１９】
【課題を解決するための手段】
上記の目的を達成するために、請求項１に係わる本発明は、アプリケーションソフトウェアを実行可能な第１のサーバ装置と、アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、ネットワークを通じて、第１のサーバ装置と第２のサーバ装置のうち、いずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末と、クライアント端末と、第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続する第３のサーバ装置とを具備し、第３のサーバ装置は、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段を具備して構成するようにした。
【００２０】
上記構成の電子計算システムでは、クライアント端末と、第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続する第３のサーバ装置が、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００２１】
したがって、上記構成の電子計算システムによれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、クライアント端末に手間をかけることなく第２のサーバ装置に処理を移行し、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００２２】
また、請求項２に係わる本発明は、第３のサーバ装置が、第１のサーバ装置と第２のサーバ装置の運用状態を監視する監視手段を備え、制御手段が、監視手段の監視結果に応じて、クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする。
【００２３】
上記構成の電子計算システムでは、第１のサーバ装置と第２のサーバ装置の運用状態に応じて、クライアント端末が利用するサーバ装置を切り替えて、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００２４】
したがって、上記構成の電子計算システムによれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、例えば第１のサーバ装置が高負荷になったり、あるいは障害が生じたりすると、これを検出して第２のサーバ装置に処理を移行できるので、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００２５】
そして、請求項３に係わる本発明は、制御手段の指示により、アプリケーションソフトウェアを実行中の第１のサーバ装置の処理状態を示す情報を記憶手段に記録する保存手段と、制御手段の指示により、保存手段によって記憶手段に保存された情報に基づいて、アプリケーションソフトウェアを第２のサーバ装置に実行させ、第１のサーバ装置で実行していた処理状態を復元する復元手段とを備えることを特徴とする。
【００２６】
上記構成の電子計算システムでは、アプリケーションソフトウェアを実行中の第１のサーバ装置の処理状態を示す情報を記憶手段に記録しておき、その後、記憶手段に保存された情報に基づいて、アプリケーションソフトウェアを第２のサーバ装置に実行させ、第１のサーバ装置で実行していた処理状態を復元するようにしている。
【００２７】
したがって、上記構成の電子計算システムによれば、第１のサーバ装置上のアプリケーションソフトウェアの動作を中断させても、その動作を第２のサーバ装置上で復元できるので、クライアント端末は継続的に処理を実行させることができる。
【００２８】
また、請求項４に係わる本発明は、アプリケーションソフトウェアを実行可能な第１のサーバ装置と、アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、第１のサーバ装置と第２のサーバ装置のうちいずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末との間を仲介して両者を接続するサーバ装置であって、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段を具備して構成するようにした。
【００２９】
上記構成のサーバ装置では、クライアント端末と、第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続し、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００３０】
したがって、上記構成のサーバ装置によれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、クライアント端末に手間をかけることなく第２のサーバ装置に処理を移行し、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００３１】
また、請求項５に係わる本発明は、第１のサーバ装置と第２のサーバ装置の運用状態を監視する監視手段を備え、制御手段が、監視手段の監視結果に応じて、クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする。
【００３２】
上記構成のサーバ装置では、第１のサーバ装置と第２のサーバ装置の運用状態に応じて、クライアント端末が利用するサーバ装置を切り替えて、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００３３】
したがって、上記構成のサーバ装置によれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、例えば第１のサーバ装置が高負荷になったり、あるいは障害が生じたりすると、これを検出して第２のサーバ装置に処理を移行できるので、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００３４】
そして、請求項６に係わる本発明は、ネットワークを通じたクライアント端末からの要求に応じて、アプリケーションソフトウェアを実行するサーバ装置において、クライアント端末からの要求に応じて実行しているアプリケーションソフトウェアの動作状態を示す情報を記憶手段に記録する保存手段と、記憶手段に保存された情報に基づいて、アプリケーションソフトウェアの動作状態を復元して動作させる復元手段とを備えることを特徴とする。
【００３５】
上記構成のサーバ装置では、実行中のアプリケーションソフトウェアの処理状態を示す情報を記憶手段に記録する機能と、記憶手段に保存された情報に基づく処理状態を復元して、アプリケーションソフトウェアを実行する機能とを備えている。
【００３６】
したがって、上記構成のサーバ装置によれば、アプリケーションソフトウェアの動作を中断させても、その動作を記憶手段の情報に基づいて復元できるので、クライアント端末は継続的に処理を実行させることができる。
【００３７】
そしてまた、請求項７に係わる本発明は、アプリケーションソフトウェアを実行可能な第１のサーバ装置と、アプリケーションソフトウェアと同じアプリケーションソフトウェアを実行可能な第２のサーバ装置と、第１のサーバ装置と第２のサーバ装置のうちいずれか一方に選択的にアプリケーションソフトウェアを実行させるクライアント端末との間を仲介して両者を接続するサーバ装置のプログラムであって、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させる制御手段として、サーバ装置を機能させるようにプログラムを構成した。
【００３８】
上記構成のプログラムでは、クライアント端末と、第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続し、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００３９】
したがって、上記構成のプログラムによれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、クライアント端末に手間をかけることなく第２のサーバ装置に処理を移行し、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００４０】
さらに、請求項８に係わる本発明は、第１のサーバ装置と第２のサーバ装置の運用状態を監視する監視手段を備え、制御手段が、監視手段の監視結果に応じて、クライアント端末との間の接続を保持し、アプリケーションソフトウェアを実行中の第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させることを特徴とする。
【００４１】
上記構成のプログラムでは、第１のサーバ装置と第２のサーバ装置の運用状態に応じて、クライアント端末が利用するサーバ装置を切り替えて、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
【００４２】
したがって、上記構成のプログラムによれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、例えば第１のサーバ装置が高負荷になったり、あるいは障害が生じたりすると、これを検出して第２のサーバ装置に処理を移行できるので、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００４３】
【発明の実施の形態】
以下、図面を参照して、この発明の一実施形態について説明する。
図１は、この発明の一実施形態に係わる電子計算システムの構成を示すものである。
ＳＢＣクライアント１００は、例えばパーソナルコンピュータやＰＤＡなどの端末装置であって、ＳＢＣ技術を採用したＳＢＣブラウザソフトウェア（以下、ＳＢＣブラウザと略称する）１１０を搭載している。
また、ＳＢＣクライアント１００は、ネットワークＮＷを通じて、後述するプロキシサーバ２００に接続するための対プロキシサーバ入出力部１２０を備えている。ＳＢＣクライアント１００は、ＳＢＣブラウザ１１０および対プロキシサーバ入出力部１２０により、プロキシサーバ２００に対してサービスを要求する。
【００４４】
プロキシサーバ２００は、後述するＳＢＣサーバ３００ａおよびＳＢＣサーバ３００ｂのプロキシサーバであって、図示しない記憶部に記憶された制御プログラムにしたがって各部が動作するものであり、ネットワークＮＷを通じてＳＢＣクライアント１００と通信するための対クライアント入出力部２０１や、プロキシ機能を実現するために、プロキシ部として、仮想ＳＢＣサーバ２２０と仮想ＳＢＣクライアント２３０を備える。仮想ＳＢＣサーバ２２０は、ＡＰＬ画面配信部２２１とＡＰＬ操作受信部２２２とを備え、仮想ＳＢＣクライアント２３０は、ＡＰＬ画面受信部２３１とＡＰＬ操作配信部２３２と初期接続部２３３とを備える。
【００４５】
そして、プロキシサーバ２００は、対クライアント入出力部２０１を通じて、アクセスしてきたＳＢＣクライアント１００についてクライアント認証を行う。このクライアント認証手続きにおいて、プロキシサーバ２００は、クライアント認証部２０２が、ＳＢＣクライアント１００のクライアントＩＤ、パスワード、クライアントＩＰアドレスなどを受け取る。クライアント認証部２０２は、記憶部２１０のアカウントデータベース２１１から、予め登録してあるクライアントＩＤとパスワードを照合して正しければ認証を完了してＳＢＣクライアント１００に認証が完了した旨を通知する。
【００４６】
そして、クライアント認証部２０２は、クライアント認証が成功したならば、セッション管理部２０３にセッションＩＤ、クライアントＩＤ、クライアントＩＰアドレス等を通知する。これに対して、セッション管理部２０３は、これらの情報を記憶部２１０のセッションデータベース２１２に記録する。そして、セッション管理部２０３は、ＳＢＣサーバ管理部２０４から接続可能なＳＢＣサーバのＩＰアドレスを取得する。なお、ＳＢＣサーバ管理部２０４は、接続可能なＳＢＣサーバのＩＰアドレスをＳＢＣサーバ管理データベース２１４で管理している。そして、セッション管理部２０３は、ＳＢＣサーバ管理部２０４から取得したＳＢＣサーバのＩＰアドレスを初期接続部２３３に通知する。
【００４７】
初期接続部２３３は、対サーバ入出力部２４１を通じて、セッション管理部２０３から通知されたＳＢＣサーバＩＰアドレスのＳＢＣサーバに接続し、これに対してＳＢＣクライアント１００から要求されたサービスを要求する。ここでは、ＳＢＣサーバ３００ａにサービスの要求を行ったものとする。
【００４８】
上記要求が与えられたＳＢＣサーバ３００ａは、ＳＢＣミドルウェア３０１ａが、初期接続部２３３からのサービス要求に応じて、この要求されたサービスに対応するアプリケーションソフトウェア（ＡＰＬ）３０５ａ（以下、アプリケーションと略称する）を起動する。そして、ＳＢＣミドルウェア３０１ａは、起動されたアプリケーション３０５ａの実行中の画面情報を対サーバ入出力部２４１を通じてプロキシサーバ２００に送信する。
【００４９】
これに対して、プロキシサーバ２００では、ＳＢＣサーバ３００ａから送られた画面情報がＡＰＬ画面受信部２３１にて受信され、このようにして受信したアプリケーション３０５ａの画面情報をＡＰＬ画面配信部２２１に供給する。ＡＰＬ画面配信部２２１は、セッション管理部２０３を通じて、セッションデータベース２１２から該当するクライアント、すなわちＳＢＣクライアント１００のＩＰアドレスを取得する。そして、ＡＰＬ画面配信部２２１は、取得したＩＰアドレスに基づいて、対クライアント入出力部２０１を通じ、ＳＢＣクライアント１００に画面情報を配信する。
【００５０】
これに対してＳＢＣクライアント１００では、対プロキシサーバ入出力部１２０を通じてＳＢＣブラウザ１１０が画面情報を受信して、アプリケーション３０５ａの実行中の画面を表示し、画面が遷移する。
以後、ＳＢＣブラウザ１１０を通じてユーザが操作した操作情報は、対プロキシサーバ入出力部１２０および対クライアント入出力部２０１を通じて、ＡＰＬ操作受信部２２２にて受信され、そして、ＡＰＬ操作配信部２３２および対サーバ入出力部２４１を介して、ＳＢＣサーバ３００ａに配信される。そして、上述したような画面情報のやりとりが、プロキシサーバ２００を介してＳＢＣクライアント１００とＳＢＣサーバ３００ａとの間で繰り返しなされる。
【００５１】
一方、ＳＢＣサーバ３００ａでは、サーバ監視部３０２ａが、定期的にプロキシサーバ２００のＳＢＣサーバ管理部２０４に対して、ＳＢＣサーバ監視情報を送信する。このＳＢＣサーバ監視情報には、ＳＢＣサーバ３００ａにかかっている負荷、エラー情報、接続しているクライアント数、ＳＢＣサーバ３００ａのＩＰアドレス等の情報が含まれる。
【００５２】
これに対して、プロキシサーバ２００では、ＳＢＣサーバ管理部２０４が、ＳＢＣサーバ３００ａから上記サーバ監視情報を受信する。そして、ＳＢＣサーバ管理部２０４は、このサーバ監視情報に基づいて、あるパラメータが予め設定された（あるいは自動的に変動する）閾値を超えた場合、すなわちＳＢＣクライアント１００によるアプリケーション３０５ａの利用に支障が生じていると判断した場合に、ＳＢＣサーバ情報通知部２０５を制御して、ＳＢＣクライアント１００に対してＳＢＣサーバ３００ａから他のサーバへの処理を移行（引っ越し）を提案する。なお、ここで、支障が生じる場合の一例としては、ＳＢＣサーバ３００ａのＣＰＵ使用率が８０％を超えた場合や、ＳＢＣサーバ３００ａに接続しているクライアント数が１０人を超えた場合などが考えられる。
【００５３】
プロキシサーバ２００では、ＳＢＣサーバ管理部２０４が、該当のＳＢＣサーバ、すなわちＳＢＣサーバ３００ａに接続しているＳＢＣクライアントのＩＰアドレスを取得するために、セッション管理部２０３に対して問い合わせを行う。そして、ＳＢＣサーバ管理部２０４は、セッション管理部２０３から上記ＩＰアドレスを取得すると、これに基づいてＳＢＣサーバ情報通知部２０５および対クライアント入出力部２０１を介し、ＳＢＣクライアント１００に対して、利用するＳＢＣサーバの引っ越しを提案するメッセージ画面の情報を送信する。
【００５４】
これに対して、ＳＢＣクライアント１００は、対プロキシサーバ入出力部１２０が上記メッセージ画面の情報を受信すると、図２に示すように、自己の表示装置に、ＳＢＣブラウザ１１０の表示Ｂに重ねて上記メッセージ画面Ｍを表示して、ユーザに対して、ＳＢＣサーバ３００ａの利用を中断して、他のＳＢＣサーバに処理を移行させるかを問う。
【００５５】
ユーザは、ＳＢＣクライアント１００の入力装置（図示しない）を操作し、ＳＢＣブラウザ１１０を通じて、上記の問いかけに対して、認容または却下の指示を与える。この指示を受け付けたＳＢＣブラウザ１１０は、対プロキシサーバ入出力部１２０を通じて、プロキシサーバ２００に上記指示を通知する。
【００５６】
プロキシサーバ２００では、対クライアント入出力部２０１を通じて上記指示をＳＢＣサーバ管理部２０４が受信し、上記指示が認容を決定するものである場合は、引っ越し元であるＳＢＣサーバ３００ａに対して、上記許容の指示を通知する。
【００５７】
これに対して、ＳＢＣサーバ３００ａは、上記許容の指示をＳＢＣミドルウェア３０１ａが受信し、ＡＰＬ状態保存部３０３ａに通知する。
なお、ＡＰＬ状態保存部３０３ａは、ＳＢＣクライアント１００が現在使用しているファイルの状態を保存し、ＳＢＣクライアント１００によるアプリケーション３０５ａの使用状況を記録するためのクライアントプロファイルを作成する機能を有する。
【００５８】
具体的に、上記クライアントプロファイルには、クライアントＩＤ、セッションＩＤ、アプリケーション名、使用ファイル名等の情報が記載されている。ＳＢＣクライアント１００が現在使用しているファイルの状態を保存する手法としては、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションの場合、Ｍｉｃｒｏｓｏｆｔ（登録商標）社が提唱するＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）技術を用いることにより、アプリケーションに手を加えることなく、アプリケーションの外部から使用ファイル等を保存することができる。
【００５９】
また、ＳＢＣクライアント１００のアプリケーションの使用状況を記録するためには、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションの場合、Ｍｉｃｒｏｓｏｆｔ（登録商標）社が提供するＮａｔｉｖｅＡＰｌやＷｉｎ３２ＡＰｌを利用することによりＳＢＣクライアント１００に関する様々な属性を取得することができる。
【００６０】
ＳＢＣミドルウェア３０１ａから許容の通知を受けたＡＰＬ状態保存部３０３ａは、依頼を受けたＳＢＣクライアント１００のために、アプリケーション３０５ａが処理しているファイル（ＡＰＬファイル４０１）等の状態を共有ディスク４００に保存するとともに、ＳＢＣクライアント１００のアプリケーション３０５ａの使用状況を表すユーザプロファイル４０２（クライアントＩＤ、アプリケーション名、アクセスしているファイル名、セッションＩＤ等が記載されているファイル）を作成し共有ディスク４００に保存する。このような処理が終了すると、ＡＰＬ状態保存部３０３ａは、処理が終了した旨をプロキシサーバ２００に通知する。この旨はセッション管理部２０３に通知される。
【００６１】
これに対して、セッション管理部２０３は、プロキシ部（仮想ＳＢＣサーバ２２０と仮想ＳＢＣクライアント２３０）に対して、ＳＢＣクライアント１００とプロキシサーバ２００との間のコネクションの維持命令を行う。これに対して、仮想ＳＢＣサーバ２２０と仮想ＳＢＣクライアント２３０は、上記維持命令に従って、ＳＢＣクライアント１００とプロキシサーバ２００との間のコネクションを維持する。
【００６２】
そして、セッション管理部２０３は、ＳＢＣサーバ管理部２０４に対して、引っ越し先として最適なＳＢＣサーバのＩＰアドレスを求める。これに対して、ＳＢＣサーバ管理部２０４は、ＳＢＣサーバ管理データベース２１３を参照して、最適な引っ越し先のＳＢＣサーバのＩＰアドレスを検出し、これをセッション管理部２０３に通知する。
【００６３】
そして、セッション管理部２０３は、ＳＢＣサーバ管理部２０４から通知されるＳＢＣサーバ３００ｂのＩＰアドレスを初期接続部２３３に通知する。なお、ここでは、最適な引っ越し先のＳＢＣサーバとして、ＳＢＣサーバ３００ｂが検出された場合を例に挙げて説明する。
【００６４】
ＳＢＣサーバ３００ｂは、ＳＢＣサーバ３００ａと同じ構成からなる。すなわち、ＳＢＣミドルウェア３０１ａと３０１ｂ、サーバ監視部３０２ａと３０２ｂ、ＡＰＬ状態保存部３０３ａと３０３ｂ、ＡＰＬ状態復元部３０４ａと３０４ｂ、アプリケーション３０５ａと３０５ｂは、それぞれ同じ構成で同じ動作により同じ機能を発揮する。
【００６５】
初期接続部２３３は、セッション管理部２０３から通知を受けると、対サーバ入出力部２４１を通じてＳＢＣサーバ３００ｂに対して、これから接続する旨および該当クライアントプロファイル名（ＳＢＣクライアント１００）等を通知する。これらの情報は、ＡＰＬ状態復元部３０４ｂに通知される。
【００６６】
ＡＰＬ状態復元部３０４ｂは、切り替え先のＳＢＣサーバから直接アクセスできる共有ディスク４００やネットワーク越しにアクセスできるディスク（図示しない）に保存しているクライアントプロファイルを読み込み、そのプロファイルに記載してある内容のアプリケーションから保存したファイルを読み込み、引っ越し前の状態に復元する機能を有するものである。
【００６７】
通知を受けたＡＰＬ状態復元部３０４ｂは、共有ディスク４００から該当のＡＰＬファイル４０１やユーザプロファイル４０２を読み込み、アプリケーション３０５ｂを制御して、ＳＢＣサーバ３００ａで中断していた動作状態を復元する。
【００６８】
一方、初期接続部２３３は、対サーバ入出力部２４１を通じて、引っ越し先のＳＢＣサーバ３００ｂと接続する。この接続と、ＳＢＣクライアント１００とプロキシサーバ２００との間に維持していたコネクションとにより、ＳＢＣクライアント１００に対するサービスを再開し、アプリケーション３０５ｂを動作させ、ＳＢＣサーバの引っ越しがなされる。
【００６９】
以上のように、上記構成の電子計算システムでは、ＳＢＣクライアント１００がプロキシサーバ２００を介してＳＢＣサーバ３００ａ上でアプリケーション３０５ａを遠隔利用し、その後、必要に応じてプロキシサーバ２００が、ＳＢＣクライアント１００との間でステートレスなＳＢＣプロトコルのコネクションを維持して、ＳＢＣクライアント１００が利用するＳＢＣサーバをＳＢＣサーバ３００ａからＳＢＣサーバ３００ｂに切り替えるようにしている。
【００７０】
したがって、上記構成の電子計算システムによれば、ＳＢＣクライアント１００がＳＢＣサーバ３００ａ上でアプリケーションを遠隔利用している時に、クライアント１００に手間をかけることなく他のＳＢＣサーバ３００ｂに処理を移行し、アプリケーションの利用を継続することができ、また１つのＳＢＣサーバに負荷が集中してしまうことを防止できる。
【００７１】
また上記構成の電子計算システムでは、プロキシサーバ２００が、ＳＢＣクライアント１００によるＳＢＣサーバ３００ａ上でのアプリケーション３０５ａの利用状況を保存し、これに基づいて、他のＳＢＣサーバ３００ｂ上に中断した利用状況を復元するようにしてる。
したがって、上記構成の電子計算システムによれば、他のＳＢＣサーバ３００ｂに処理を移行しても、中断した利用状況が復元できるので、アプリケーションを継続的に利用することができる。
【００７２】
さらに、上記構成の電子計算システムでは、ＳＢＣクライアント１００が遠隔利用しているＳＢＣサーバ３００ａの運用状態をプロキシサーバ２００が監視し、ＳＢＣサーバ３００ａが例えば高負荷状態になると、プロキシサーバ２００がＳＢＣクライアント１００に対して、遠隔利用するＳＢＣサーバを切り替える提案を行い、この提案にＳＢＣクライアント１００が同意した場合に、ＳＢＣサーバを切り替えるようにしている。
したがって、上記構成の電子計算システムによれば、ＳＢＣクライアント１００の意思により、遠隔利用しているＳＢＣサーバを切り替えるようにしているので、例えばサービス的かつビジネス的な種々の要素を取り入れることが可能となる。
【００７３】
例えば、プロキシサーバ２００からＳＢＣクライアント１００に対する問いかけとしては、「現在、あなた様が接続しているＳＢＣサーバは大変混みあっております。別のサーバに引っ越しなさいますか？」や「今接続しているＳＢＣサーバよりサービス料の安いＳＢＣサーバが空いています。そちらに引っ越しなさいますか？」等が考えられる。
また、ＳＢＣサーバのメンテナンス時に、ＳＢＣサーバを利用しているＳＢＣクライアントに対して何らかの特典を提示して、他のＳＢＣサーバを運用してもらう場合にも利用することができる。
【００７４】
なお、この発明は上記実施形態そのままに限定されるものではなく、実施段階ではその用紙を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【００７５】
その一例として例えば、上記実施の形態では、ＳＢＣサーバ３００ａ，３００ｂに、サーバ監視部３０２ａと３０２ｂ、ＡＰＬ状態保存部３０３ａと３０３ｂ、ＡＰＬ状態復元部３０４ａと３０４ｂを備えるようにしたが、これらや共有ディスク４００に相当する機能をプロキシサーバに設けるようにしてもよい。
その他、この発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【００７６】
【発明の効果】
以上述べたように、この発明では、クライアント端末と、第１のサーバ装置あるいは第２のサーバ装置との間を仲介して両者を接続する第３のサーバ装置が、クライアント端末が第１のサーバ装置にアプリケーションソフトウェアを実行させている場合に、クライアント端末との間の接続を保持するとともに、第１のサーバ装置に代わって第２のサーバ装置をクライアント端末に接続して、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
したがって、この発明によれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、クライアント端末に手間をかけることなく第２のサーバ装置に処理を移行し、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止可能な電子計算システム、サーバ装置およびプログラムを提供できる。
【００７７】
またこの発明では、第１のサーバ装置と第２のサーバ装置の運用状態に応じて、クライアント端末が利用するサーバ装置を切り替えて、第２のサーバ装置にアプリケーションソフトウェアを実行させるようにしている。
したがって、この発明によれば、クライアント端末が第１のサーバ装置上でアプリケーションソフトウェアを遠隔利用している時に、例えば第１のサーバ装置が高負荷になったり、あるいは障害が生じたりすると、これを検出して第２のサーバ装置に処理を移行できるので、アプリケーションソフトウェアの利用を継続することができ、また１つのサーバ装置に負荷が集中してしまうことを防止できる。
【００７８】
さらに、この発明では、アプリケーションソフトウェアを実行中の第１のサーバ装置の処理状態を示す情報を記憶手段に記録しておき、その後、記憶手段に保存された情報に基づいて、アプリケーションソフトウェアを第２のサーバ装置に実行させ、第１のサーバ装置で実行していた処理状態を復元するようにしている。
したがって、この発明によれば、第１のサーバ装置上のアプリケーションソフトウェアの動作を中断させても、その動作を第２のサーバ装置上で復元できるので、クライアント端末は継続的に処理を実行させることができる。
【図面の簡単な説明】
【図１】この発明に係わる電子計算システムの一実施形態の構成を示す回路ブロック図。
【図２】図１に示した電子計算システムのＳＢＣクライアントの表示装置における表示例を示す図。
【図３】従来の電子計算システムの構成を示す図。
【符号の説明】
１００…ＳＢＣクライアント、１１０…ＳＢＣブラウザ、１２０…対プロキシサーバ入出力部、２００…プロキシサーバ、２０１…対クライアント入出力部、２０２…クライアント認証部、２０３…セッション管理部、２０４…ＳＢＣサーバ管理部、２０５…ＳＢＣサーバ情報通知部、２１０…記憶部、２１１…アカウントデータベース、２１２…セッションデータベース、２１３…サーバ管理データベース、２１４…サーバ管理データベース、２２０…仮想ＳＢＣサーバ、２２１…ＡＰＬ画面配信部、２２２…ＡＰＬ操作受信部、２３０…仮想ＳＢＣクライアント、２３１…ＡＰＬ画面受信部、２３２…ＡＰＬ操作配信部、２３３…初期接続部、２４１…対サーバ入出力部、３００ａ…ＳＢＣサーバ、３００ｂ…ＳＢＣサーバ、３０１ａ…ＳＢＣミドルウェア、３０２ａ…サーバ監視部、３０３ａ…ＡＰＬ状態保存部、３０４ａ…ＡＰＬ状態復元部、３０５ａ…アプリケーション（ＡＰＬ）、３０１ｂ…ＳＢＣミドルウェア、３０２ｂ…サーバ監視部、３０３ｂ…ＡＰＬ状態保存部、３０４ｂ…ＡＰＬ状態復元部、３０５ｂ…アプリケーション（ＡＰＬ）、４００…共有ディスク、４０１…ＡＰＬファイル、４０２…ユーザプロファイル、ＮＷ…ネットワーク。
【図１】
2004295334.tif 000003
【図２】
2004295334.tif 000004
【図３】
2004295334.tif 000005