(57)【要約】【課題】廉価で簡易な構成によりマルチユーザかつマルチタスクで同一ＡＰの動作を実現できるようにすることを課題とする。【解決手段】ネットワーク３を介してＳＢＣクライアント２Ａ１からＳＢＣサーバ群１に対してＡＰ起動要求が送信されると、ＳＢＣサーバ群１では最適なＡＰ実行環境をもつＳＢＣサーバが決定される。たとえば、最適なＡＰ実行環境をＳＢＣサーバ１０Ａ１がもっていた場合には、そのＳＢＣサーバ１０Ａ１上でＡＰが動作して画面情報が生成され、ＳＢＣクライアント２Ａ１に対してその画面情報が転送される。ＳＢＣクライアント２Ａ１では、ＳＢＣサーバ１０Ａ１から転送されてきた画面情報に基づいて画面２Ｂ１が表示形成される。【選択図】      図１
2004192348.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークには複数のクライアントとそれぞれが少なくとも１つのアプリケーションプログラムを具備した複数のサーバとが接続され、前記クライアントが要求する前記アプリケーションプログラムを前記サーバ上で実行させるサーバベースドコンピューティングに適用されるサーバのためのプログラムであって、
前記クライアントから前記アプリケーションプログラムの起動要求を受け付ける第一ステップと、
前記起動要求が受け付けられた場合、前記複数のサーバに対して前記起動要求の対象となる前記アプリケーションプログラムの実行環境を判断する第二ステップと、
前記判断された実行環境に基づいて前記複数のサーバから起動可能なサーバを決定する第三ステップと、
前記決定されたサーバに対して前記起動要求の対象となる前記アプリケーションプログラムを起動させる第四ステップと、
を備えることを特徴とするサーバベースドコンピューティングに適用されるサーバのためのプログラム。
【請求項２】
前記第四ステップで起動された前記アプリケーションプログラムに基づく画面情報を前記起動要求元の前記クライアントに送信する第五ステップをさらに有することを特徴とする請求項１に記載のサーバベースドコンピューティングに適用されるサーバのためのプログラム。
【請求項３】
ネットワークには複数のクライアントとそれぞれが少なくとも１つのアプリケーションプログラムを具備した複数のサーバとが接続され、前記クライアントが要求する前記アプリケーションプログラムを前記サーバ上で実行させるサーバベースドコンピューティング方法であって、
前記複数のサーバのいずれか１つが前記クライアントから前記アプリケーションプログラムの起動要求を受け付ける第一ステップと、
前記起動要求を受け付けた前記サーバ自身および前記他のサーバに対して前記起動要求の対象となる前記アプリケーションプログラムの実行環境を判断する第二ステップと、
前記判断された実行環境に基づいて前記複数のサーバから起動可能なサーバを決定する第三ステップと、
前記起動要求を受け付けた前記サーバから前記決定されたサーバに対して前記起動要求の対象となる前記アプリケーションプログラムを起動させる第四ステップと、
を含むことを特徴とするサーバベースドコンピューティング方法。
【請求項４】
前記決定されたサーバから前記起動要求元の前記クライアントに対して前記第四ステップで起動された前記アプリケーションプログラムに基づく画面情報を送信する第五ステップをさらに有することを特徴とする請求項３に記載のサーバベースドコンピューティング方法。
【請求項５】
ネットワークには複数のクライアントとそれぞれが少なくとも１つのアプリケーションプログラムを具備した複数のサーバとが接続され、前記クライアントが要求する前記アプリケーションプログラムを前記サーバ上で実行させるサーバベースドコンピューティングシステムであって、
前記第一サーバは、
前記クライアントから前記アプリケーションプログラムの起動要求を受け付ける起動受付手段と、
前記起動受付手段により前記起動要求を受け付けた場合、自身および前記他のサーバに対して前記起動要求の対象となる前記アプリケーションプログラムの実行環境を判断するための情報を収集するサーバ間同期手段と、
前記サーバ間同期手段で収集された情報に基づいて自身および前記他のサーバから実行可能なサーバを決定する決定手段と、
前記決定手段により自身が実行可能なサーバであると決定された場合には、自身で前記起動要求の対象となる前記アプリケーションプログラムを起動する第一起動手段と、
前記決定手段により前記他のサーバが実行可能なサーバであると決定された場合には、前記決定されたサーバに対して前記起動要求の対象となる前記アプリケーションプログラムの起動を指示する起動指示手段と、
を備え、
前記第二サーバは、
前記サーバ間同期手段に応じて前記起動要求の対象となる前記アプリケーションプログラムの実行環境を判断するための情報を前記第一サーバに提供する提供手段と、
前記起動指示手段により前記アプリケーションプログラムの起動が指示された場合、前記起動要求の対象となる前記アプリケーションプログラムを起動する第二起動手段と、
を備えることを特徴とするサーバベースドコンピューティングシステム。
【請求項６】
前記第一サーバは、
前記第一起動手段により前記起動要求の対象となる前記アプリケーションプログラムを起動した場合、起動要求元の前記クライアントに対して前記起動したアプリケーションプログラムに基づく画面情報を送信する第一送信手段と、
を備え、
前記第二サーバは、
前記第二起動手段により前記起動要求の対象となる前記アプリケーションプログラムを起動した場合、起動要求元の前記クライアントに対して前記起動したアプリケーションプログラムに基づく画面情報を送信する第二送信手段と、
を備えることを特徴とする請求項５に記載のサーバベースドコンピューティングシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえば、サーバベースドコンピューティングに適用されるサーバのためのプログラム、サーバベースドコンピューティング方法およびサーバベースドコンピューティングシステムに関する。
【０００２】
【従来の技術】
ネットワークにクライアントおよびサーバを接続させ、クライアントの要求するアプリケーションプログラム（以下にＡＰと称する）をサーバ側で実行するシステムは、一般に、サーバベースドコンピューティング（以下に、ＳＢＣと称する）と呼ばれている。
【０００３】
このＳＢＣを実現するシステムとしては、たとえば、マイクロソフト社(Microsoft corporation)のWindows（登録商標） Terminal Service、サイトリックスシステムズ社（Citrix Systems, Inc.）のMetaFrame（登録商標）、グラフオン社(GraphOn corporation)のGoGlobal（登録商標）、ＡＴ＆Ｔケンブリッジ研究所(AT&T Laboratories Cambridge)のオープンソースソフトウェアであるVNC（登録商標）が有名である。
【０００４】
ここで、従来のＳＢＣシステムについて説明する。以下の説明では、ＳＢＣシステムに適用されるサーバ、クライアントをそれぞれＳＢＣサーバ、ＳＢＣクライアントと呼ぶ。図８は従来のＳＢＣシステムを示すブロック図である。従来のＳＢＣシステムは、図８に示したように、ネットワーク３０１には１台のＳＢＣサーバ１０１とＬ（Ｌは自然数）台のＳＢＣクライアント２０１Ａ１〜２０１ＡＬとを接続させた構成である。
【０００５】
ＳＢＣサーバ１０１は、ＳＢＣクライアントに対して表示画面を形成するための画面情報を提供するためにＭ（Ｍは自然数）個の画面処理ユニット１０２Ａ１〜１０２ＡＭを備えている。各画面処理ユニット１０２Ａ１〜１０２ＡＭは外部のファイルシステム１０３に接続され、そのファイルシステム１０３よりＡＰが使用するファイルなどの資源を提供される。
【０００６】
また、ＳＢＣクライアント２０１Ａ１〜２０１ＡＬは、主としてＳＢＣサーバ１０１より転送されてくる画面情報に基づいて表示画面を形成する機能を備えている。すなわち、ＳＢＣクライアント２０１Ａ１、・・・、２０１ＡＬは、それぞれ主として画面２０１Ｂ１、・・・、２０１ＢＬを備えている。
【０００７】
つぎに従来の動作について説明する。図９および図１０は従来のＳＢＣシステムの動作を説明するフローチャートである。まず、図９において、ＳＢＣクライアント２０１Ａ１からＳＢＣサーバ１０１にアクセスしたときの流れについて説明する。ＳＢＣクライアント２０１Ａ１では、図示せぬがユーザにより操作入力部が操作され、所望のＡＰが選択される（ステップＳ４１）。
【０００８】
ＡＰが選択されると、ＳＢＣサーバ１０１に対してその選択されたＡＰの起動要求が発信される（ステップＳ４２）。ＳＢＣサーバ１０１では、ＳＢＣクライアント２０１Ａ１で選択されたＡＰの起動要求が受け付けられると（ステップＳ５１）、ＡＰが起動する（ステップＳ５２）。ファイルシステム１０３からはＡＰ対応のファイルが読み出される。
【０００９】
ＡＰ起動後、たとえば画面処理ユニット１０２Ａ１により画面表示のためにＡＰに基づいて画面処理が行われる。この画面処理により形成される表示画面の情報、すなわち、画面情報は起動要求元のＳＢＣクライアント２０１Ａ１に転送される（ステップＳ５３）。以降は、ＳＢＣクライアント２０１Ａ１より終了指示が届くまで、ステップＳ５３のＡＰ動作および画面転送が繰り返し実行される（ステップＳ５４のＮＯルート）。
【００１０】
ＳＢＣクライアント２０１Ａ１では、ＳＢＣサーバ１０１より画面情報が転送されてくると、その画面情報に基づいて画面２０１Ｂ１が表示形成される。そして、ユーザによりさらにＡＰ動作のための操作が受け付けられると、その操作情報がＳＢＣサーバ１０１に転送される（ステップＳ４３）。以降は、ＳＢＣサーバ１０１と通信しながらＡＰ動作の操作および転送画面の表示が繰り返し実行される（ステップＳ４４のＮＯルート）。
【００１１】
ＳＢＣクライアント２０１Ａ１では、ユーザより終了操作が受け付けられると（ステップＳ４４のＹＥＳルート）、ＳＢＣサーバ１０１に対して終了指示が送信される。これにより、ＡＰ動作に基づく表示画面の受信動作が終了する（ステップＳ４５）。このとき、ＳＢＣサーバ１０１では、ＳＢＣクライアント２０１Ａ１よりＡＰ動作の終了指示が受け付けられると（ステップＳ５４のＹＥＳルート）、ＡＰ動作が終了する（ステップＳ５５）。
【００１２】
このように、ＳＢＣサーバ１０１では、ＳＢＣクライアント２０１Ａ１からのＡＰ起動要求に基づいて自身でＡＰを起動させ、ＡＰ動作に基づく表示画面の画面情報をＳＢＣクライアント２０１Ａ１に供給する処理が実行される。ＳＢＣクライアント２０１Ａ１側の処理は、ＳＢＣサーバ１０１から供給される画面情報に基づいて表示画面を形成するだけで済む。このような形態のクライアントを一般にシン・クライアント（Thin Client）と称する。
【００１３】
なお、近年、ＷＥＢを利用したＳＢＣが提案されている（たとえば、特許文献１参照）。
【００１４】
【特許文献１】
特開平１０−２４０５３１号公報（第１３−１６頁、第４−７図）
【００１５】
【発明が解決しようとする課題】
ところで、図９で示すＡＰ動作中に他のＳＢＣクライアント（たとえばＳＢＣクライアント２０１ＡＬ）から同一のＡＰに対する起動要求が入る場合がある。この場合には、図１０に示したように、ＳＢＣクライアント２０１Ａ１では、図９で説明したように、ＳＢＣサーバ１０１のＡＰ動作（ステップＳ７１）によりすでにＡＰ画面が表示されている（ステップＳ６１）。このとき、ＳＢＣクライアント２０１ＡＬから同一ＡＰの起動要求がＳＢＣサーバ１０１に対してなされると（ステップＳ８１）、ＳＢＣサーバ１０１ではそのＡＰ起動要求に基づいて同一ＡＰを起動させようとする。
【００１６】
ところが、ＳＢＣサーバ１０１では、同一ＡＰに対して複数のＳＢＣクライアントから同時に起動要求されてもＡＰ起動を先行させているＳＢＣクライアント対応ですでにＡＰ動作中であることから同一ＡＰを並行して動作させることは不可能な場合があった。その結果、ＳＢＣサーバ１０１では、すでに動作中のＡＰについても挙動に異常が発生してしまう場合があった（ステップＳ７２）。
【００１７】
ＳＢＣクライアント２０１ＡＬでは、ＳＢＣサーバ１０１からは起動要求したＡＰの画面情報を得ることができず、エラー表示もしくはＡＰ挙動異常となってＡＰの実行が不可能となった（ステップＳ８２）。一方、すでにＡＰ動作に基づく画面表示を行っていたＳＢＣクライアント２０１Ａ１では、ＳＢＣサーバ１０１側のＡＰ動作異常により正常にＡＰを実行させることが困難となった（ステップＳ６２）。
【００１８】
この一例として、たとえばWindows（登録商標）のＳＢＣシステムがある。マルチユーザかつマルチタスクを想定していないＯＳ（オペレーティングシステム）で動作するＡＰの中には、１台のＰＣ（パーソナルコンピュータ）で同時に同じＡＰを起動できないという制約がある場合があった。この制約は、主にＡＰが利用するファイルなどの資源を排他的に利用することを前提にして作成されているために課せられている。
【００１９】
ファイルなどの資源を排他的に利用することを前提にして作成されているＡＰをＳＢＣ環境で動作させる場合、同時には１クライアントでしか動作させることができなかった。この制約は、ＳＢＣ製品がＳＢＣサーバでＡＰを動作させた結果を仮想的な画面に展開して、その画面の情報をＳＢＣクライアントに転送することにより実現させているためである。
【００２０】
そのため、このようなＡＰをＳＢＣ製品で複数のＳＢＣクライアントの要求に応じて動作させるためには、ＡＰを修正してＡＰの資源をＳＢＣクライアントごとに別に設けるなどの対処が必要であった。
【００２１】
ところが、ＡＰの修正を行うためには、一般的にはＡＰのソースコードが必要となるだけではなく、修正にはかなりの稼動が必要であった。
【００２２】
本発明の目的は、廉価で簡易な構成によりマルチユーザかつマルチタスクで同一ＡＰの動作を実現することが可能なＳＢＣに適用されるサーバのためのプログラム、ＳＢＣ方法およびＳＢＣシステムを提供することにある。
【００２３】
【課題を解決するための手段】
上述した課題を解決し、上記目的を達成するため、本発明の第一の態様は、ネットワークには複数のクライアントとそれぞれが少なくとも１つのＡＰを具備した複数のサーバとが接続され、前記クライアントが要求する前記ＡＰを前記サーバ上で実行させるＳＢＣに適用されるサーバのためのプログラムであって、前記クライアントから前記ＡＰの起動要求を受け付ける第一ステップと、前記起動要求が受け付けられた場合、前記複数のサーバに対して前記起動要求の対象となる前記ＡＰの実行環境を判断する第二ステップと、前記判断された実行環境に基づいて前記複数のサーバから起動可能なサーバを決定する第三ステップと、前記決定されたサーバに対して前記起動要求の対象となる前記ＡＰを起動させる第四ステップと、を備えることを特徴とするものである。
【００２４】
この第一の態様によれば、前記第四ステップで起動された前記ＡＰに基づく画面情報を前記起動要求元の前記クライアントに送信する第五ステップをさらに有するようにしてもよい。
【００２５】
本発明の第二の態様は、ネットワークには複数のクライアントとそれぞれが少なくとも１つのＡＰを具備した複数のサーバとが接続され、前記クライアントが要求する前記ＡＰを前記サーバ上で実行させるＳＢＣ方法であって、前記複数のサーバのいずれか１つが前記クライアントから前記ＡＰの起動要求を受け付ける第一ステップと、前記起動要求を受け付けた前記サーバ自身および前記他のサーバに対して前記起動要求の対象となる前記ＡＰの実行環境を判断する第二ステップと、前記判断された実行環境に基づいて前記複数のサーバから起動可能なサーバを決定する第三ステップと、前記起動要求を受け付けた前記サーバから前記決定されたサーバに対して前記起動要求の対象となる前記ＡＰを起動させる第四ステップと、を含むことを特徴とするものである。
【００２６】
この第二の態様によれば、前記決定されたサーバから前記起動要求元の前記クライアントに対して前記第四ステップで起動された前記ＡＰに基づく画面情報を送信する第五ステップをさらに有するようにしてもよい。
【００２７】
本発明の第三の態様は、ネットワークには複数のクライアントとそれぞれが少なくとも１つのＡＰを具備した複数のサーバとが接続され、前記クライアントが要求する前記ＡＰを前記サーバ上で実行させるＳＢＣシステムであって、前記第一サーバは、前記クライアントから前記ＡＰの起動要求を受け付ける起動受付手段と、前記起動受付手段により前記起動要求を受け付けた場合、自身および前記他のサーバに対して前記起動要求の対象となる前記ＡＰの実行環境を判断するための情報を収集するサーバ間同期手段と、前記サーバ間同期手段で収集された情報に基づいて自身および前記他のサーバから実行可能なサーバを決定する決定手段と、前記決定手段により自身が実行可能なサーバであると決定された場合には、自身で前記起動要求の対象となる前記ＡＰを起動する第一起動手段と、前記決定手段により前記他のサーバが実行可能なサーバであると決定された場合には、前記決定されたサーバに対して前記起動要求の対象となる前記ＡＰの起動を指示する起動指示手段と、を備え、前記第二サーバは、前記サーバ間同期手段に応じて前記起動要求の対象となる前記ＡＰの実行環境を判断するための情報を前記第一サーバに提供する提供手段と、前記起動指示手段により前記ＡＰの起動が指示された場合、前記起動要求の対象となる前記ＡＰを起動する第二起動手段と、を備えることを特徴とするものである。
【００２８】
この第三の態様によれば、前記第一サーバは、前記第一起動手段により前記起動要求の対象となる前記ＡＰを起動した場合、起動要求元の前記クライアントに対して前記起動したＡＰに基づく画面情報を送信する第一送信手段と、を備え、前記第二サーバは、前記第二起動手段により前記起動要求の対象となる前記ＡＰを起動した場合、起動要求元の前記クライアントに対して前記起動したＡＰに基づく画面情報を送信する第二送信手段と、を備えるようにしてもよい。
【００２９】
【発明の実施の形態】
以下に添付図面を参照して、本発明のＳＢＣに適用されるサーバのためのプログラム、ＳＢＣ方法およびＳＢＣシステムにかかる一実施の形態を詳細に説明する。
【００３０】
まず、全体構成について説明する。本実施の形態においても、ＳＢＣに適用されるサーバ、クライアントをそれぞれＳＢＣサーバ、ＳＢＣクライアントと呼ぶ。図１は本発明の一実施の形態によるＳＢＣシステムの一構成例を示すブロック図である。本実施の形態によるＳＢＣシステムは、図１に示したように、ＳＢＣサーバ群１とＳＢＣクライアント２Ａ１、・・・、２ＡＬとをネットワーク３に接続させた構成である。なお、ネットワーク３は、インターネット、ＬＡＮ（ローカル・エリア・ネットワーク）などの通信回線を示す。
【００３１】
ＳＢＣサーバ群１は、特殊なハードウェアなどによる同期や接続を行わず、通常のＰＣを通常のネットワークで接続した疎な集合体（ここではサーバプールと呼ぶ）であり、Ｎ（Ｎは２以上の自然数）個のＳＢＣサーバ１０Ａ１、・・・、１０ＡＮにより構成される。このＳＢＣサーバ群１は、図１の例では、各ＳＢＣサーバ１０Ａ１、・・・、１０ＡＮに接続されるファイルシステム２０Ａ１、・・・、２０ＡＮを有している。ファイルシステム２０Ａ１、・・・、２０ＡＮについては、ＳＢＣサーバ群１の外部記憶装置としてもよいことはいうまでもない。ファイルシステム２０Ａ１、・・・、２０ＡＮは、それぞれ対応するＳＢＣサーバに接続された構成であり、ファイルなどを格納する機能を有している。このファイルシステム２０Ａ１、・・・、２０ＡＮは、それぞれＳＢＣサーバとは独立した構成でもよく、あるいは、ＳＢＣサーバに従属した構成でもよい。
【００３２】
ＳＢＣサーバ１０Ａ１、・・・、１０ＡＮはいずれも廉価な装置でよく、たとえばパーソナルコンピュータ程度の処理能力であっても十分である。ＳＢＣサーバ１０Ａ１、・・・、１０ＡＮはそれぞれネットワーク３に接続され、ＡＰに基づく画面情報を直接クライアントに提供できる通信機能を有している。本実施の形態では、たとえばＳＢＣサーバ１０Ａ１がＳＢＣクライアント２Ａ１、・・・、２ＡＬからのＡＰ起動要求を受付ける窓口として機能する。ＳＢＣサーバ群１において、ＳＢＣサーバ１０Ａ１は、他のＳＢＣサーバと通信回線で接続され、最適なＡＰ実行環境を有するＳＢＣサーバを決定するためにデータ通信を行う機能を有している。
【００３３】
ＳＢＣクライアント２Ａ１、・・・、２ＡＬは、それぞれネットワーク３に接続され、ＳＢＣサーバ群１との通信を行う機能を有している。ＳＢＣクライアント２Ａ１、・・・、２ＡＬは、それぞれＳＢＣサーバ群１から提供される画面情報に基づく画面２Ｂ１、・・・、２ＢＬを表示形成する機能を有している。ＳＢＣクライアント２Ａ１、・・・、２ＡＬは、いずれも少なくとも表示、操作、通信の機能を有していればよい。
【００３４】
つぎに、本実施の形態によるＳＢＣシステムの個々の構成について詳述する。まず、ＳＢＣサーバ群１について説明する。図２は本発明の一実施の形態によるＳＢＣサーバの一構成例を示すブロック図である。ここでは、ＳＢＣサーバ群１の代表例としてＳＢＣサーバ１０Ａ１を例に挙げるが、他のＳＢＣサーバも同様の構成を有する。
【００３５】
ＳＢＣサーバ１０Ａ１は、図２に示したように、制御信号、アドレス信号、データなどを伝送させるバス１８を有しており、このバス１８を介して各ユニット間の通信を確立させる構成である。このＳＢＣサーバ１０Ａ１は、他のＳＢＣサーバとのインタフェースを司るサーバ接続インタフェース２３とファイルシステム２０Ａ１とのインタフェースを司るＦＳ接続インタフェース２４とを有している。
【００３６】
ＳＢＣサーバ１０Ａ１の制御系は、たとえば、図２に示したように、制御全体を司るＣＰＵ１９、自サーバ全体の制御を行うためのプログラムを記憶したＲＯＭ２０、各種の動作において生成されるデータを格納するＲＡＭ２１、電源オフ時も各種ＡＰ、データなどを保存しておくＨＤＤ（ハード・ディスク・ドライブ）２２により構成される。
【００３７】
このＨＤＤ２２は、外部よりインストールされた各種ＡＰ（クライアントから起動要求されるＡＰなど）を格納するためのプログラム格納領域２２Ａ、各種ＡＰ実行時に必要な保存用のパラメータなどのデータを格納するためのデータ格納領域２２Ｂなどを備えている。
【００３８】
ＳＢＣサーバ１０Ａ１の通信系は、たとえば、図２に示したように、通信回線を介してネットワーク３に接続し、通信を行うための通信制御部１１、たとえば音声データに基づいて音声を処理する音声処理部１２により構成される。
【００３９】
ＳＢＣサーバ１０Ａ１の入出力系は、たとえば、図２に示したように、各種ＡＰの実行によってメニュー、処理結果などを画面に表示する表示部１３、この表示部１３に供給するビデオ画像データを記憶するＶＲＡＭ（ビデオＲＡＭ）１４、画像データに基づいて画像処理を行う画像処理部１５、ボタン、スイッチなどを配してユーザからの操作を受け付ける操作入力部１６、ＣＤやＤＶＤを駆動させて音楽、映像を再生するためのデータを取り込んだり、各種ＡＰを読み出すためのディスクドライブ１７により構成される。
【００４０】
上述した入出力系について、音声処理部１２、表示部１３、操作入力部１６、ディスクドライブ１７は新しいＡＰのインストール作業、保守、画像情報に音声、音響などの情報を付加する用途では有益に機能する構成である。
【００４１】
つづいて、クライアントについて説明する。図３は本発明の一実施の形態によるクライアントの一構成例を示すブロック図である。ここでは、クライアントの代表例としてＳＢＣクライアント２Ａ１を例に挙げるが、他のＳＢＣサーバも同様の構成を有する。
【００４２】
ＳＢＣクライアント２Ａ１は、図３に示したように、制御信号、アドレス信号、データなどを伝送させるバス３０を有しており、このバス３０を介して各ユニット間の通信を確立させる構成である。
【００４３】
ＳＢＣクライアント２Ａ１の制御系は、たとえば、図３に示したように、制御全体を司るＣＰＵ３５、自サーバ全体の制御を行うためのプログラムを記憶したＲＯＭ３６、各種の動作において生成されるデータを格納するＲＡＭ３７により構成される。
【００４４】
ＳＢＣクライアント２Ａ１の通信系は、たとえば、図３に示したように、通信回線を介してネットワーク３に接続し、通信を行うための通信制御部３１、たとえば音声データに基づいて音声を処理する音声処理部３９により構成される。
【００４５】
ＳＢＣクライアント２Ａ１の入出力系は、たとえば、図３に示したように、ＳＢＣサーバより転送されてくる起動ＡＰの画面情報に基づく画面を表示する表示部３２、この表示部３２に供給するビデオ画像データを記憶するＶＲＡＭ（ビデオＲＡＭ）３３、画像情報に基づいて画像処理を行う画像処理部３４、ボタン、スイッチなどを配してユーザからの操作を受け付ける操作入力部３８により構成される。
【００４６】
なお、本実施の形態では、ネットワーク３を介していることから画面情報を一旦画像処理して表示のためのビデオ画像データに変換する作業が必要となるが、画面情報としてＶＲＡＭの内容そのものやビデオ出力に準じるような情報を利用してＳＢＣサーバ群１とＳＢＣクライアント間を接続するシステムの場合には、大掛かりな画像処理を行う構成は不要となる。
【００４７】
上述した入出力系について、本実施の形態では、ＳＢＣサーバから転送されてくる画面情報に基づく表示画面を形成することが主となることから、音声処理部３９はＳＢＣサーバから提供される画面情報に音声・音響などの情報が付加された場合には有益に機能する構成である。
【００４８】
つぎに、ＳＢＣサーバ群１の機能について詳述する。図４は本発明の一実施の形態によるＳＢＣシステムを機能的に説明するためのブロック図である。図４に示した機能ブロックは、各ＳＢＣサーバ１０Ａ１、・・・、１０ＡＮにプログラムとして搭載させてもよく、ファームウェアもしくはハードウェアとして搭載させてもよい。
【００４９】
まず、ＳＢＣサーバ１０Ａ１は、たとえば図４に示したように、ＡＰ画面処理部１０Ｂ１、ＡＰ起動要求受付部１０Ｃ１、負荷状況把握部１０Ｄ１、ＡＰ状況把握部１０Ｅ１、サーバ間同期部１０Ｆ１などにより構成される。ＳＢＣサーバ１０Ａ２は、たとえば図４に示したように、ＡＰ画面処理部１０Ｂ２、ＡＰ起動要求受付部１０Ｃ２、負荷状況把握部１０Ｄ２、ＡＰ状況把握部１０Ｅ２、サーバ間同期部１０Ｆ２などにより構成される。ＳＢＣサーバ１０Ａｎ（ｎは１以上、Ｎ以下の自然数）は、たとえば図４に示したように、ＡＰ画面処理部１０Ｂｎ、ＡＰ起動要求受付部１０Ｃｎ、負荷状況把握部１０Ｄｎ、ＡＰ状況把握部１０Ｅｎ、サーバ間同期部１０Ｆｎなどにより構成される。
【００５０】
以下にＳＢＣサーバ１０Ａ１を代表例として説明する。他のＳＢＣサーバはＳＢＣサーバ１０Ａ１と同様の構成のため、説明を省略する。ＳＢＣサーバ１０Ａ１において、ＡＰ画面処理部１０Ｂ１は、起動要求のあったＡＰを読み出して起動要求元のクライアントに対して提供する画面情報を生成する機能を有している。
【００５１】
ＡＰ起動要求受付部１０Ｃ１は、各ＳＢＣクライアント２Ａ１、・・・、２ＡＬからのＡＰ起動要求を受け付けてサーバ間同期部１０Ｆ１に通知するとともに、ＡＰの実行環境に適したＳＢＣサーバに対してそのＡＰ起動要求を転送する機能を有している。なお、起動要求には、クライアントを識別するための情報、起動対象ＡＰのユーザ利用権限を示す情報などが含まれている。ＡＰ起動要求受付部１０Ｃ１からサーバ間同期部１０Ｆ１への通知は、ＡＰの実行環境の適したＳＢＣサーバを確認するための要求である。
【００５２】
負荷状況把握部１０Ｄ１は、自サーバのＣＰＵの余裕、メモリ空き状況などを調査する機能を有している。負荷状況には、具体的には、自サーバのメモリに余裕があるかどうか、自サーバの処理（ＣＰＵ）に余裕があるかどうか、自サーバの記憶容量（ＨＤＤ）に余裕があるかどうかなどの状況が含まれる。
【００５３】
ＡＰ状況把握部１０Ｅ１は、自サーバの各種ＡＰのインストール状況を調査する機能を有している。ＡＰ状況には、具体的には、起動対象のＡＰが自サーバにインストールされているかどうか、自サーバで起動対象のＡＰのライセンスを取得しているかどうか、クライアント（利用者）が起動対象のＡＰを利用する権限を有しているかどうかなどの状況が含まれる。たとえば、ＡＰがどのようなライセンス形態であるかなどの情報は、ＡＰ状況把握部に保持されている。
【００５４】
サーバ間同期部１０Ｆ１は、他のＳＢＣサーバのサーバ間同期部に連絡をとり、他のＳＢＣサーバの負荷状況把握部、ＡＰ状況把握部による調査結果を収集する。このサーバ間同期部１０Ｆ１は、他のＳＢＣサーバからの収集結果に基づいてＡＰの実行環境の適したＳＢＣサーバをＡＰ起動要求受付部１０Ｃ１に通知する機能を有している。
【００５５】
以上のＳＢＣサーバ群１の構成において、ネットワーク３を介してたとえばＳＢＣクライアント２Ａ１からＳＢＣサーバ群１に対してＡＰ起動要求が送信されると、ＳＢＣサーバ１０Ａ１が窓口となってＡＰ起動要求受付部１０Ｃ１により受付が行われる。ここでは、ＳＢＣサーバ１０Ａ１を窓口としたが本発明はこれに限定されるものではなく、他のＳＢＣサーバを窓口として設定したり、複数のＳＢＣサーバに同時に要求を送信するように設定してもよい。ＡＰ起動要求受付部１０Ｃ１では、サーバ間同期部１０Ｆ１に対して他のＳＢＣサーバから負荷状況およびＡＰ状況の調査が指示される。
【００５６】
たとえばＳＢＣサーバ１０Ａ２では、サーバ間同期部１０Ｆ１からの調査の指示に従ってサーバ間同期部１０Ｆ２が調査を受け持つことになる。その結果、サーバ間同期部１０Ｆ２には自サーバの負荷状況把握部１０Ｄ２、ＡＰ状況把握部１０Ｅ２からそれぞれ負荷状況、ＡＰ状況が収集される。その収集された情報は、サーバ間同期部１０Ｆ２より調査結果としてサーバ間同期部１０Ｆ１に送られる。他のＳＢＣサーバ１０Ａｎでも同様にしてサーバ間同期部１０Ｆｎより調査結果がサーバ間同期部１０Ｆ１に送られる。
【００５７】
サーバ間同期部１０Ｆ１に十分な調査結果が揃うか、あるいは、あらかじめ設定された時間が経過すると、サーバ間同期部１０Ｆ１にて各ＳＢＣサーバの負荷状況、ＡＰ状況が比較され、最適なＡＰ実行環境をもつＳＢＣサーバが決定される。たとえば、最適なＡＰ実行環境をＳＢＣサーバ１０Ａｎがもっていた場合には、ＡＰ起動要求受部１０Ｃ１からＳＢＣサーバ１０ＡｎのＡＰ起動要求受部１０Ｃｎに対してＳＢＣクライアント２Ａ１からの起動要求が転送される。
【００５８】
ＡＰ起動要求受部１０ＣｎにＡＰ起動要求が転送されると、自サーバでのＡＰ起動がＡＰ画面処理部１０Ｂｎに指示される。そのＡＰ画面処理部１０ＢｎによりＡＰが動作して画面情報が生成され、ＳＢＣクライアント２Ａ１に対してその画面情報が転送される。ＳＢＣクライアント２Ａ１では、ＳＢＣサーバ１０Ａ１から転送されてきた画面情報に基づいて画面が表示形成される。
【００５９】
つぎに、最適なＡＰ実行環境を判断する手法について説明する。図５は本発明の一実施の形態において評価値と適合能力との対応関係を関数で示す図であり、図６は本発明の一実施の形態において適合可能なＳＢＣサーバを判断するための表を示す図である。
【００６０】
図５において、縦軸は余裕の尺度を評価値で表すための指標であり、横軸は余裕と必要資源の差を表した指標である。図５に示した評価関数のグラフは、余裕が少なくなると評価値が低くなることを示している。すなわち、資源に余裕がないときには、大きなマイナス値となり、余裕があるときには漸減するプラス値となる。
【００６１】
図６には、メモリ、ＣＰＵ、ＨＤＤについて図５に示した評価関数に基づく評価値が示されている。図６の例では、ＡＰのために必要な資源は、メモリ（ＲＡＭに相当する）、ＣＰＵ、ＨＤＤに対してそれぞれ１０、５、２の評価値をとっている。また、ＳＢＣサーバ１０Ａ１の空き能力は、メモリ、ＣＰＵ、ＨＤＤに対してそれぞれ２０、１０、１０の評価値をとっている。その他のＳＢＣサーバ１０Ａｎの空き能力は、メモリ、ＣＰＵ、ＨＤＤに対してそれぞれ３０、５、１０の評価値をとっている。
【００６２】
たとえば、ＳＢＣサーバ１０Ａ１と１０Ａｎとを比較すると、メモリの余裕についてはＳＢＣサーバ１０Ａｎのほうが優位となり、ＣＰＵの余裕についてはＳＢＣサーバ１０Ａ１のほうが優位となることが示されている。なお、ＨＤＤの余裕は同等であることが示されている。
【００６３】
以上を踏まえ、ＳＢＣサーバに対して最適なＡＰ実行環境を表すサーバ適合度Ｃが判断される。この場合には、以下の式を適用する。すなわち、メモリの適合度をＡ１、メモリに対する重みをＢ１、ＣＰＵの適合度をＡ２、ＣＰＵに対する重みをＢ２、ＨＤＤの適合度をＡ３、ＨＤＤに対する重みをＢ３とし、Ｂ１＞Ｂ２＞Ｂ３とすると、
Ｃ＝Ａ１×Ｂ１＋Ａ２×Ｂ２＋Ａ３×Ｂ３
となる。このようにして、ＡＰが快適に動作するために必要とされるメモリ、ＣＰＵ、ＨＤＤの余裕が全ＳＢＣサーバについて判断される。
【００６４】
つぎに、動作について説明する。図７は本発明の一実施の形態によるＳＢＣシステムの動作を説明するフローチャートである。以下、ＳＢＣクライアント２Ａ１からのＡＰ起動要求に対してＳＢＣサーバ１０Ａｎが対応する流れで説明する。なお、ＳＢＣクライアント２Ａ１、・・・、２ＡＬは、それぞれＡＰ起動要求を出して画面情報を受け取ると、その画面情報に基づいて表示画面を形成する従来と同様の動作に留まるものである。
【００６５】
図７において、ＳＢＣクライアント２Ａ１では、まずユーザの操作によりＡＰの選択ならびにそのＡＰ起動が指示される（ステップＳ１１）。ＡＰ選択後、ＡＰの起動要求がＳＢＣサーバ１０Ａ１へ送られる（ステップＳ１２）。このとき、ＡＰを起動要求するための情報には、クライアントを識別するための情報、クライアントのライセンス情報、ユーザの利用権限を示す情報などが含まれる。
【００６６】
ＳＢＣサーバ１０Ａ１では、ＳＢＣクライアント２Ａ１よりＡＰ起動要求が受信されると、そのＡＰ起動要求の受付が行われる（ステップＳ２１）。すなわち、この受付によりまず自サーバの情報収集すなわち負荷状況およびＡＰ状況の調査が実行される（ステップＳ２２）。
【００６７】
さらに、他のＳＢＣサーバに対しても負荷状況およびＡＰ状況の調査指示が出され、負荷状況およびＡＰ状況の収集が実行される（ステップＳ２３）。このとき、ＳＢＣサーバ１０Ａｎでは、ＳＢＣサーバ１０Ａ１からの指示に従い、自サーバの情報収集すなわち負荷状況およびＡＰ状況の調査が実行される。そして、その収集結果はＳＢＣサーバ１０Ａ１へ送信される（ステップＳ３１）。
【００６８】
そして、自サーバおよび他のＳＢＣサーバの負荷状況およびＡＰ状況が確認され、図５および図６で説明した評価がなされ、ＡＰ実行環境が最適のＳＢＣサーバが決定される（ステップＳ２４）。たとえばＳＢＣサーバ１０ＡｎがＡＰ起動対象のサーバとして決定されると、ＳＢＣサーバ１０Ａｎに対してＡＰ起動が命じられる（ステップＳ２５）。
【００６９】
ＳＢＣサーバ１０Ａｎでは、ＡＰ起動指示が受け付けられると（ステップＳ３２）、まず起動要求元のＳＢＣクライアント２Ａ１との通信が接続される（ステップＳ３３）。そして、起動要求対象のＡＰが読み出されて起動される。ＡＰが動作を開始すると、ＡＰ実行に基づいて表示画面用のデータが生成され、画面情報としてＳＢＣクライアント２Ａ１へ転送される（ステップＳ３４）。
【００７０】
ＳＢＣクライアント２Ａ１では、ＳＢＣサーバ１０Ａｎから転送されてくる画面情報が受信され、その画面情報に基づいて画面が表示形成される。このとき、ユーザの操作により表示画面に対して操作入力がなされると、そのＡＰ動作に対する操作情報がＳＢＣサーバ１０Ａｎへ送られる（ステップＳ１４）。以降、ユーザから終了操作が入力されるまでは、ステップＳ１４の処理が繰り返し実行される（ステップＳ１５のＮＯルート）。
【００７１】
そして、ユーザにより終了操作が入力されると（ステップＳ１５のＹＥＳルート）、ＳＢＣサーバ１０Ａｎに対して終了指示が通知され、接続が解除される。ＳＢＣクライアント２Ａ１では、このようにしてＡＰ対応の動作は終了する（ステップＳ１６）。
【００７２】
ＳＢＣサーバ１０Ａｎでは、ＳＢＣクライアント２Ａ１からの終了指示の通知が受け付けられると（ステップＳ３５のＹＥＳルート）、ＳＢＣクライアント２Ａ１との接続が解除され、ＡＰ動作が終了する（ステップＳ３６）。
【００７３】
たとえば、ＳＢＣクライアント２Ａ１のステップＳ１４とＳＢＣサーバ１０ＡｎのステップＳ３１とにより、ＡＰ動作が継続している間に、他のクライアントより同一ＡＰに対して起動要求が入った場合には、ＳＢＣサーバ１０Ａ１の処理は、図７と同様の手順で最適な実行環境をもつＳＢＣサーバを決定して起動対象のＡＰを実行させる流れとなる。この場合には、２つのＳＢＣサーバが同一ＡＰを独立して動作させることになる。以降はクライアントから同一ＡＰの起動要求がある度に同様の手順となり、負荷状況とＡＰ状況との関係からＡＰ実行の可否が判断される。
【００７４】
以上説明したように、本実施の形態によれば、ＡＰの修正を一切行う必要はなく、マルチユーザかつマルチタスクで動作させることを想定していないＡＰについて同時に複数個のＳＢＣ環境の上で並列動作させることが可能である。すなわち、ＳＢＣサーバを複数台のＰＣで実現したサーバプールの構成としたので、本実施の形態によるＳＢＣシステムは廉価かつ簡易な構成となる。この構成によりマルチユーザかつマルチタスクで同一ＡＰの動作を実現することが可能である。
【００７５】
また、クライアントからのＡＰ起動要求があると、現在ＡＰがどのＳＢＣサーバで動作しているのかどのＳＢＣサーバにＡＰがインストールされているのかを管理することができるので、適切にＡＰを利用できる制御を実現することが可能である。一例として、マルチユーザかつマルチタスクで動作することを想定しているＡＰであっても、現在負荷が低いＳＢＣサーバでＡＰを動作させるように負荷分散させる制御を実現することが可能である。
【００７６】
さらに、クライアントからは自身がどのＳＢＣサーバに接続して画面情報を取得しているのかを意識する必要がなく、一台のＳＢＣサーバでシステムを動作させているようなＳＢＣを実現することが可能である。
【００７７】
【発明の効果】
以上説明したように、本発明によれば、廉価で簡易な構成によりマルチユーザかつマルチタスクで同一ＡＰの動作を実現することが可能なＳＢＣに適用されるサーバのためのプログラム、ＳＢＣ方法およびＳＢＣシステムを提供できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるＳＢＣシステムの一構成例を示すブロック図である。
【図２】本発明の一実施の形態によるＳＢＣサーバの一構成例を示すブロック図である。
【図３】本発明の一実施の形態によるクライアントの一構成例を示すブロック図である。
【図４】本発明の一実施の形態によるＳＢＣシステムを機能的に説明するためのブロック図である。
【図５】本発明の一実施の形態において評価値と適合能力との対応関係を関数で示す図である。
【図６】本発明の一実施の形態において適合可能なＳＢＣサーバを判断するための表を示す図である。
【図７】本発明の一実施の形態による動作を説明するフローチャートである。
【図８】従来のＳＢＣシステムを示すブロック図である。
【図９】従来の動作（１）を説明するフローチャートである。
【図１０】従来の動作（２）を説明するフローチャートである。
【符号の説明】
１  ＳＢＣサーバ群
２Ａ１,２ＡＬ  クライアント
２Ｂ１,２ＢＬ  画面
３  ネットワーク
１０Ａ１,１０ＡＮ  ＳＢＣサーバ
１０Ｂ１,１０ＢＮ  画面処理
２０Ａ１,２０ＡＮ  ファイルシステム
１１  通信制御部
１３  表示部
１４  ＶＲＡＭ
１５  画像処理部
１６  操作入力部
１８  バス
１９  ＣＰＵ
２０  ＲＯＭ
２１  ＲＡＭ
２２  ＨＤＤ
２２Ａ  プログラム格納領域
２２Ｂ  データ格納領域
２３  サーバ接続インタフェース
２４  ＦＳ接続インタフェース
３０  バス
３１  通信制御部
３２  表示部
３３  ＶＲＡＭ
３４  画像処理部
３５  ＣＰＵ
３６  ＲＯＭ
３７  ＲＡＭ
３８  操作入力部
３９  音声処理部
１０Ｂ１,１０Ｂ２,１０Ｂｎ  ＡＰ画面処理部
【図１】
2004192348.tif 000003
【図２】
2004192348.tif 000004
【図３】
2004192348.tif 000005
【図４】
2004192348.tif 000006
【図５】
2004192348.tif 000007
【図６】
2004192348.tif 000008
【図７】
2004192348.tif 000009
【図８】
2004192348.tif 000010
【図９】
2004192348.tif 000011
【図１０】
2004192348.tif 000012