(57)【要約】【課題】ユーザ端末からの要求に応じたアプリケーションの実行を、複数のサーバノードにより効率的に行うことができる仕組みを得る。【解決手段】複数のサーバノード１をネットワーク３を介してユーザ端末２と接続可能に構成したサーバベースドコンピューティングシステムにおいて、同期制御部１０５が、各サーバノード１が保持しているアプリケーション１０７の情報及び各サーバノード１の負荷情報などを含む構成情報を取得し、取得した構成情報に基づいて、複数のサーバノード１のうちからユーザ端末２から実行要求されたアプリケーション１０７を実行するための選択条件に適合するサーバノード１を選択してアプリケーション１０７の処理を分散させて実行することとした。【選択図】        図１
2004287889.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してユーザ端末と相互に接続可能に構成され、上記ユーザ端末とのＩ／Ｏ操作に関する情報の処理を実行するデスクトップセッションサーバノードと、上記ユーザ端末からの要求により保持しているアプリケーションプログラムの実行処理のうちＩ／Ｏ操作以外の処理を実行するアプリケーションセッションサーバノードとを有し、
上記デスクトップセッションサーバノードは、
上記ユーザが行ったアプリケーションプログラムの実行を指示する指示情報を受け付ける受付手段と、
上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける制御手段と、
上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する画面制御手段とを有し、
上記アプリケーションセッションサーバノードは、
上記振り分けられたアプリケーションプログラムの実行要求に基づいて、アプリケーションプログラムを実行し、当該実行結果情報を上記デスクトップセッションを実行するサーバノードに通知する実行制御手段を有する、
ことを特徴とする分散処理システム。
【請求項２】
上記制御手段は、上記ユーザ端末からアプリケーションプログラムの実行要求がされるごとに、上記サーバノードにアプリケーションプログラムの実行処理を振り分ける処理を行う、
請求項１記載の分散処理システム。
【請求項３】
上記デスクトップセッションサーバノードは、アプリケーションプログラムに応じて処理を振り分けるサーバノードの条件を定めた選択条件を記憶する選択条件テーブルを更に有し、
上記制御手段は、上記選択条件テーブルを参照し、ユーザから要求されたアプリケーションに対応する選択条件に適合するサーバノードに対してアプリケーションプログラムの実行処理を振り分ける、
請求項１又は２記載の分散処理システム。
【請求項４】
上記選択条件は複数存在し、上記選択条件テーブルにはアプリケーションプログラムごとに各選択条件を適用する優先順位情報が記憶されており、
上記制御手段は、上記選択条件テーブルを参照して、実行要求されたアプリケーケーションプログラムに対応する各選択条件のうち、優先順位が高い選択条件から順に当該選択条件に適合するサーバノードが存在するか否かの判別処理を行う、
請求項１〜３のいずれかの項に記載の分散処理システム。
【請求項５】
上記選択条件は、
上記デスクトップセッションサーバノードが、実行要求されたアプリケーションプログラムを保持しており、かつ、当該デスクトップセッションサーバノードの負荷が所定の範囲内にある場合には、当該デスクトップセッションサーバノードを優先的に選択する条件、
又は、既に実行要求されたものと同じアプリケーションプログラムを実行しているサーバノードがある場合には当該サーバノードを優先して選択する条件、
又は、デスクトップセッションサーバノードが実行要求されたアプリケーションプログラムを保持している場合には当該デスクトップセッションサーバノードを無条件に選択する条件、
又は、特定のサーバノードが実行要求されたアプリケーションプログラムが主にアクセスするデバイス装置を有する場合には当該サーバノードを選択する条件、
のうちの少なくとも一つの条件である、
請求項４に記載の分散処理システム。
【請求項６】
ネットワークを介して端末と接続可能に構成された複数のサーバノードにより構成され、上記各サーバノードがアプリケーションプログラムを保持してこれを実行し、上記端末は上記アプリケーションプログラムの実行に関するＩ／Ｏ操作情報を処理するように構成されたシステムの上記サーバノードとして使用される装置であって、
上記端末からのアプリケーションプログラムの実行の指示情報を受け付ける受付手段と、
上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいて上記複数のサーバノードの中からいずれかのサーバノードをアプリケーションセッションを実行するサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける制御手段と、
アプリケーションプログラムの実行要求が振り分けられた場合に、実行要求されたアプリケーションプログラムを実行する実行制御手段と、
上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する画面制御手段と、
を有することを特徴とする分散処理用装置。
【請求項７】
ネットワークを介してユーザ端末と相互に接続可能に構成され、上記ユーザ端末とのＩ／Ｏ操作に関する情報の処理を実行するデスクトップセッションサーバノードと、上記ユーザ端末からの要求により保持しているアプリケーションプログラムの実行処理のうちＩ／Ｏ操作以外の処理を実行するアプリケーションセッションサーバノードとを有するシステムにより実行される方法であって、
上記デスクトップセッションサーバノードが、上記ユーザが行ったアプリケーションプログラムの実行を指示する指示情報を受け付ける処理と、
上記デスクトップセッションサーバノードが、アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得する処理と、
上記デスクトップセッションサーバノードが、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける処理と、
上記アプリケーションセッションサーバノードが、振り分けられたアプリケーションプログラムの実行要求に基づいてアプリケーションプログラムを実行し、当該実行結果情報を上記デスクトップセッションサーバノードに通知する処理と、
上記デスクトップセッションサーバノードが、上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する処理と、
を有することを特徴とする分散処理方法。
【請求項８】
コンピュータを、ネットワークを介して端末と接続可能に構成された複数のサーバノードにより構成され、上記各サーバノードがアプリケーションプログラムを保持してこれを実行し、上記端末は上記アプリケーションプログラムの実行に関するＩ／Ｏ操作情報を処理するように構成されたシステムの上記サーバノードとして機能させるためのコンピュータプログラムであって、
コンピュータに対して、
上記端末からのアプリケーションプログラムの実行の指示情報を受け付ける処理と、
上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいて上記複数のサーバノードの中から、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションを実行するサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける処理と、
アプリケーションプログラムの実行要求が振り分けられた場合に、実行要求されたアプリケーションプログラムを実行する処理と、
上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する処理と、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｓｅｒｖｅｒ  Ｂａｓｅｄ  Ｃｏｍｐｕｔｉｎｇ（サーバベースドコンピューティング：以下、単に「ＳＢＣ」という。）に関する技術であって、特にユーザから実行要求されたアプリケーションプログラム（以下、単に「アプリケーション」又は「ＡＰ」という。）の実行を、複数のサーバノードのうちから適切なサーバノードで実行するための技術に関する。
【０００２】
【従来の技術】
データの分散処理としては、従来からクライアント−サーバ型システムが良く知られており、企業や公共的な場所など様々な場所及びシステムで使用されている。このようなクライアント−サーバ型のシステムでは、クライアント端末にアプリケーションをインストールしておき、これをクライアント端末側で実行していた。
【０００３】
しかし、このようなクライアント−サーバ型のシステムでは、アプリケーションのレスポンスがクライアント端末のスペックに大きく依存するとともに、アプリケーションのバージョンアップやインストールを行う際には、全てのクライアント端末に対して同じ作業を繰り返して行う必要があるなどの問題があった。また、サーバ−クライアント間のデータ通信量が多いため、サーバが遠隔地に存在する場合、クライアント端末と通信を行う際に、通信コスト等が高くなることや、レスポンスが遅くなるなどの問題があった。
【０００４】
このような問題を解決するため、最近では、ＳＢＣシステムが提案されている。
このＳＢＣシステムでは、ネットワークを介してユーザ端末等と接続可能な１台のサーバ側でのみアプリケーションを実行させ、ユーザ端末側は当該アプリケーションの実行に関するマウスクリック、キーボードストロークといった指示情報及び画面遷移などの画面情報のみを実行処理させるようになっている。
このようなＳＢＣシステムを適用した一例として、ネットワークを介して接続されたサーバと端末からなるＳＢＣシステムにおいて、サーバ側にプリンタ装置に印刷出力させるためのＩＰＰプリンタドライバを備えさせ、これにより指定されたプリンタ装置へネットワークを介して印刷出力させる技術などがある（例えば、特許文献１）。
【０００５】
このようなＳＢＣシステムでは、レスポンスはサーバのスペックに比例するだけで、ユーザ端末のスペックに依存しないため、ユーザ端末は比較的安価で汎用的なコンピュータ端末を利用できるという利点があった。
また、アプリケーションのバージョンアップも、サーバ側でアプリケーションを更新すればよいため効率的であるし、さらにネットワークにはマウスクリック、キーストロークといった指示情報や、画面遷移情報のみが流れるだけなので、これらのデータ量は比較的小さいため広帯域な通信回線を必要としないという利点があった。
【０００６】
【特許文献１】
特開２００２−２９７３４６号公報
【０００７】
【発明が解決しようとする課題】
しかし、従来のＳＢＣシステムでは、複数のクライアント端末に対してサーバが１台であったため、このサーバに処理が集中してしまいシステムのレスポンスが悪くなってしまうという問題があった。即ち、従来のＳＢＣシステムでは、サーバのスペックに全て依存していたため、ユーザ端末側も高々サーバ１台分のＣＰＵ性能しか享受できていないという問題があった。そのため、従来のＳＢＣシステムでは、サーバのＣＰＵの性能を高くしたりディスク容量を大きくしようとすると、サーバ自体高性能なものにする必要がありシステム構築費が高くなるという問題があった。さらに、例えば、アプリケーションのバージョンアップやアプリケーション数の増加や、接続されるユーザ端末数の増加などが変化した場合、これに応じて適切な処理能力を有するサーバに切り替えることはほとんど不可能であり、従来のシステムではこのようにシステムスケールに応じてフレキシブルに対応できないという問題があった。
【０００８】
また、一般にコンピュータにより分散処理を行う場合、複数の異なるノードで同一のアプリケーションを実行すると、同じプロセス空間を２つのノードのメモリ上に展開しなければならないため、システム全体としてはメモリの利用効率が悪くなってしまうという問題があった。また、アプリケーションは、ディスク操作やデバイスへのアクセスなどの特性がそれぞれ異なり、ある特定のノードで動作させることが最も効率的である場合があり、従来はこれらのことが十分には考慮されていなかった。
【０００９】
本発明は上述の問題点を解決するためになされたものであって、ＳＢＣシステムにおいて、端末からの要求に応じたアプリケーションの実行を、複数のサーバノードにより効率的に行うことができる仕組みを提供することを課題とする。
【００１０】
【課題を解決するための手段】
上述の課題を解決するため、本発明の一の観点にかかる分散処理システムは、ネットワークを介してユーザ端末と相互に接続可能に構成され、上記ユーザ端末とのＩ／Ｏ操作に関する情報の処理を実行するデスクトップセッションサーバノードと、上記ユーザ端末からの要求により保持しているアプリケーションプログラムの実行処理のうちＩ／Ｏ操作以外の処理を実行するアプリケーションセッションサーバノードとを有し、上記デスクトップセッションサーバノードは、上記ユーザが行ったアプリケーションプログラムの実行を指示する指示情報を受け付ける受付手段と、上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける制御手段と、上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する画面制御手段とを有し、上記アプリケーションセッションサーバノードは、振り分けられたアプリケーションプログラムの実行要求に基づいて、アプリケーションプログラムを実行し、当該実行結果情報を上記デスクトップセッションを実行するサーバノードに通知する実行制御手段を有することを特徴とする。
【００１１】
Ｉ／Ｏ操作とは、入力、出力に関する操作であり、例えば、アプリケーションの実行に関するマウスクリック、キーボードストロークといった指示情報及び画面遷移などの画面情報に関するものである。
上記構成情報は、共有ファイルとして保持されているか或いは制御手段が接続可能な他のコンピュータ端末から各コンピュータ端末が保持しているアプリケーションの情報及び各コンピュータ端末の負荷情報を収集することにより取得することができる。
【００１２】
上記制御手段は、上記ユーザ端末からアプリケーションプログラムの実行要求がされるごとに、上記サーバノードにアプリケーションプログラムの実行処理を振り分ける処理を行うようにしてもよい。
【００１３】
また、上記デスクトップセッションを実行するサーバノードは、アプリケーションプログラムに応じて処理を振り分けるサーバノードの条件を定めた選択条件を記憶する選択条件テーブルを更に有し、上記制御手段は、上記選択条件テーブルを参照し、ユーザから要求されたアプリケーションに対応する選択条件に適合するサーバノードに対してアプリケーションプログラムの実行処理を振り分けるようにしてもよい。
【００１４】
また、上記選択条件は複数存在し、上記選択条件テーブルにはアプリケーションプログラムごとに各選択条件を適用する優先順位情報が記憶されており、上記制御手段は、上記選択条件テーブルを参照して、実行要求されたアプリケーションプログラムに対応する各選択条件のうち、優先順位が高い選択条件から順に当該選択条件に適合するサーバノードが存在するか否かの判別処理を行うようにしてもよい。
【００１５】
また、上記選択条件は、上記デスクトップセッションサーバノードが、実行要求されたアプリケーションプログラムを保持しており、かつ、当該デスクトップセッションサーバノードの負荷が所定の範囲内にある場合には、当該デスクトップセッションサーバノードを優先的に選択する条件、又は、既に実行要求されたものと同じアプリケーションプログラムを実行しているサーバノードがある場合には当該サーバノードを優先して選択する条件、又は、デスクトップセッションサーバノードが実行要求されたアプリケーションプログラムを保持している場合には当該デスクトップセッションサーバノードを無条件に選択する条件、又は、特定のサーバノードが実行要求されたアプリケーションプログラムが主にアクセスするデバイス装置を有する場合には当該サーバノードを選択する条件のうちの少なくとも一つの条件であってもよい。
【００１６】
また、上記サーバノードは、コモディティなパーソナルコンピュータにより構成してもよい。
【００１７】
本発明の一の観点にかかる分散処理用装置は、ネットワークを介して端末と接続可能に構成された複数のサーバノードにより構成され、上記各サーバノードがアプリケーションプログラムを保持してこれを実行し、上記端末は上記アプリケーションプログラムの実行に関するＩ／Ｏ操作情報を処理するように構成されたシステムの上記サーバノードとして使用される装置であって、上記端末からのアプリケーションプログラムの実行の指示情報を受け付ける受付手段と、上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいて上記複数のサーバノードの中からいずれかのサーバノードをアプリケーションセッションサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける制御手段と、アプリケーションプログラムの実行要求が振り分けられた場合に、実行要求されたアプリケーションプログラムを実行する実行制御手段と、上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する画面制御手段とを有することを特徴とする。
【００１８】
本発明にかかる分散処理方法は、ネットワークを介してユーザ端末と相互に接続可能に構成され、上記ユーザ端末とのＩ／Ｏ操作に関する情報の処理を実行するデスクトップセッションサーバノードと、上記ユーザ端末からの要求により保持しているアプリケーションプログラムの実行処理のうちＩ／Ｏ操作以外の処理を実行するアプリケーションセッションサーバノードとを有するシステムにより実行される方法であって、上記デスクトップセッションサーバノードが、上記ユーザが行ったアプリケーションプログラムの実行を指示する指示情報を受け付ける処理と、上記デスクトップセッションサーバノードが、アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得する処理と、上記デスクトップセッションサーバノードが、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける処理と、上記アプリケーションセッションサーバノードが、振り分けられたアプリケーションプログラムの実行要求に基づいてアプリケーションプログラムを実行し、当該実行結果情報を上記デスクトップセッションサーバノードに通知する処理と、上記デスクトップセッションサーバノードが、上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する処理とを有することを特徴とする。
【００１９】
本発明にかかるコンピュータプログラムは、コンピュータを、ネットワークを介して端末と接続可能に構成された複数のサーバノードにより構成され、上記各サーバノードがアプリケーションプログラムを保持してこれを実行し、上記端末は上記アプリケーションプログラムの実行に関するＩ／Ｏ操作情報を処理するように構成されたシステムの上記サーバノードとして機能させるためのコンピュータプログラムであって、コンピュータに対して、上記端末からのアプリケーションプログラムの実行の指示情報を受け付ける処理と、上記アプリケーションプログラムの実行指示がされた場合に、少なくとも上記ネットワークを介して相互に接続可能となっているサーバノードを特定する情報及び当該サーバノードが保持しているアプリケーションプログラムの情報を含む構成情報を取得し、取得した構成情報に基づいて上記複数のサーバノードの中から、取得した構成情報に基づいていずれかのサーバノードをアプリケーションセッションを実行するサーバノードとして選択し、上記アプリケーションプログラムの実行処理を振り分ける処理と、アプリケーションプログラムの実行要求が振り分けられた場合に、実行要求されたアプリケーションプログラムを実行する処理と、上記アプリケーションプログラムの実行結果情報に基づいて、上記ユーザ端末が表示するための画面情報を生成して上記端末に送信する処理とを実行させることを特徴とする。
【００２０】
【発明の実施の形態】
以下、図面を参照して本発明にかかる分散処理システム及びコンピュータプログラムを適用したシステムの一実施形態について説明する。
図１に示したシステムは、複数のサーバノード１（サーバノードＡ、Ｂ、Ｃ・・・）と、各サーバノード１とネットワーク３を介して接続可能に構成されたユーザ端末２から構成されている。
【００２１】
ユーザ端末２は、アプリケーションの実行を要求するユーザが使用するための端末である。このユーザ端末２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭやＲＯＭなどのメモリ及び記憶装置を備えたいわゆるパーソナルコンピュータや通信可能なＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）端末などにより構成することができる。
また、ユーザ端末２には画面情報を表示出力するためのディスプレイや、アプリケーション実行等のための指示情報を入力するためのキーボードやマウスなどのポインティングデバイスが接続されている。ユーザ端末２は、ネットワークを介してデータ通信を行うためのプログラム、サーバノード１から送信された画面情報などをディスプレイなどに表示するためのプログラム、キーボードやポインティングデバイスから入力された指示情報を処理するためのプログラムなどを保持し、ＣＰＵがこれらプログラムを実行して処理を実行できるように構成されている。このような構成により、ユーザ端末２は、サーバノード１に対して、ネットワーク３を介して指示情報を送信したり、サーバノード１から送信された画面情報をディスプレイ上に表示することができる。
なお、本システムでは、ユーザ端末２は１台である必要ななく、複数台のユーザ端末２が接続可能に構成してもよい。
【００２２】
ネットワーク３としては、例えば、インターネット、有線又は無線のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、電話回線網、所定の専用回線網などで構成することができる。
【００２３】
サーバノード１は、コモディティないわゆるパーソナルコンピュータにより構成することができ、これらサーバノード１は、ＣＰＵ、ＣＰＵが実行コンピュータプログラム等を記憶するＲＡＭ及びＲＯＭなどの内部メモリ及びハードディスクドライブなどの外部記憶装置などにより図１に示した機能ブロックを構成することができる。
図１に示した機能ブロックは、データ記憶部１００、接続制御部１０１、ユーザ制御部１０２、仮想デスクトップ制御部１０３、構成制御部１０４、同期制御部１０５、アプリケーション（ＡＰ）制御部１０６、アプリケーション１０７から構成されている。
【００２４】
データ記憶部１００は、選択条件テーブル、構成情報ファイル、その他所定のデータを記憶することができる記憶部である。
選択条件テーブルは、アプリケーション１０７を実行するサーバノード１を選択する際の選択条件と、アプリケーション１０７ごとの各選択条件の優先度を記憶したテーブルである。この選択条件テーブルには、例えば、図２に示すように各アプリケーション名と、アプリケーション１０７を実行するサーバノード１を選択する際の選択条件と、各アプリケーション名に関連付けて各選択条件の優先度を表す重み付け情報が記憶できるようになっている。この重み付け情報は、図示の例では、例えば、ＣＡＤ００１というアプリケーション１０７の場合には、負荷優先が４、重畳優先が５、ローカル選択が９、特定サーバ優先が３と設定されていることから、最も優先度か高いローカル選択の選択条件に適合するサーバノード１が優先され、この条件に適合するサーバノード１が無い場合に、次に優先度の高い重畳優先によりサーバノード１の選択処理を行うということを表している。
【００２５】
ここで、負荷優先は、ユーザ端末２のデスクトップ情報（画面情報）を制御するデスクトップセッションを実行しているサーバノード１（以下、「デスクトップセッションサーバノード」という。）の負荷が所定の範囲内である場合にはこのサーバノード１を優先的に選択するという条件である。また重畳優先は、既にどこかのサーバノード１で当該アプリケーション１０７を実行している場合には、そのアプリケーション１０７を実行しているサーバノード１を優先的に選択するという条件である。ローカル優先は、デスクトップセッションサーバ１が当該アプリケーション１０７を保持している場合にはそのデスクトップサーバ１を優先的に選択するという条件である。また特定サーバ優先は、特定のサーバノード１が実行要求されたアプリケーション１０７が主にアクセスするデバイス装置を有する場合には当該サーバノード１を選択する条件であり、例えば、アプリケーション１０７のファイルサーバを兼ねているサーバノード１がある場合には当該サーバノード１を優先的に選択するという条件である。
【００２６】
また、構成情報は、少なくともネットワーク３を介して相互に接続可能となっているサーバノード１を特定する情報（例えば、ＩＰアドレスなど）及び当該サーバノード１が保持しているアプリケーション１０７の情報を含んでいる。また構成情報としては、この他に各サーバノード１の負荷情報、各サーバノード１で実行されているアプリケーション１０７の情報、アプリケーション１０７のファイルサーバとなっているサーバノード１を特定する情報、ユーザ端末２に対してデスクトップセッション又はＡＰセッションを実行しているサーバノード１を特定する情報などを含んでいる。この構成情報は、各サーバノード１の共有ファイルとして保持することもできる。
【００２７】
接続制御部１０１は、ユーザ端末２からの接続要求を受け付け、ユーザ端末２とのセッションの確立及びセッションの永続化を行うための処理を行う。これらの処理としては、例えば、接続制御部１０１は、ユーザ端末２からの接続要求を受け付けたり、アカウントの特性取得、接続状態の取得、セッション状態の報告や、確立したセッションを永続化するための処理を行うことができる。また、接続制御部１０１は、セッション開始日時、終了日時、セッション優先度、キャッシュ、接続先アプリケーション、セッションの利用量などを制御する処理を行う。
また、接続制御部１０１は、他のサーバノード１とネットワーク３を介して接続する処理を行うことができる。
【００２８】
ユーザ制御部１０２は、ユーザに関する情報を処理する。具体的には、ユーザ制御部１０２は、ユーザアカウント及びパスワードの認証処理を行い、ユーザとのセッション開設の可否を判別することができる。
また、ユーザ制御部１０２は、ユーザごとのセッション条件、ロール名、グループなどを判別する処理を行うようにしてもよい。
【００２９】
仮想デスクトップ制御部１０３は、ユーザ端末２に表示させる仮想デスクトップの画面情報を処理する。
この仮想デスクトップ制御部１０３は、ユーザ端末２からの指示情報や、指定されたアプリケーション１０７の実行結果などに基づいてユーザ端末２のディスプレイに表示する画面情報を生成し、これをユーザ端末２に送信して仮想デスクトップとして表示させるための処理を行う。この画面情報には、例えば、所定のアプリケーション１０７などを表すアイコンなどのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）情報や、ユーザ端末２の操作にともなう画面遷移情報などが含まれる。
【００３０】
構成制御部１０４は、構成情報を取得する処理を行う。具体的には、自サーバノード１の構成情報、例えば、自サーバノード１が保持しているアプリケーション１０７の名称、バージョンなどのアプリケーション１０７に関する情報や、ＣＰＵの周波数などのスペック、メモリ及びハードディスクドライブの容量などの静的情報や、ＣＰＵの負荷状況やメモリの空領域などの動的な負荷情報を取得することができる。
【００３１】
同期制御部１０５は、本発明にかかる制御手段を構成し、デスクトップセッション、ＡＰセッションを実行するサーバノード１を選択し処理を振り分ける処理を行う。具体的には、同期制御部１０５は、他のサーバノード１が保持しているアプリケーション１０７に関する情報及び各サーバノード１の負荷情報を含む構成情報を、他のサーバノード１に対してブロードキャストなどにより構成情報を取得し、取得した構成情報及び構成制御部１０４により取得した自サーバノード１の構成情報に基づいて、これらサーバノード１のうちからユーザ端末２から実行要求されたアプリケーション１０７を実行する選択条件に適合するサーバノード１を選択する処理を行う。
【００３２】
アプリケーション制御部１０６は、自サーバノード１で保持しているアプリケーション１０７に関する情報（アプリケーション名、バージョン、ライセンス数など）を管理する。また、アプリケーション制御部１０６は、ユーザからのアプリケーション実行要求に基づき、アプリケーション１０７を実行し、その実行結果情報を仮想デスクトップ制御部１０３に通知する処理を行う。
【００３３】
アプリケーション１０７は、各サーバノード１が保持している各種アプリケーションプログラムである。なお、１台のサーバノード１が複数種類のアプリケーション１０７を保持していてもよい。また、複数のサーバノード１が同じ種類のアプリケーション１０７を保持していてもよく任意である。
【００３４】
次に、本発明にかかる方法の一実施形態について説明する。
本実施形態では、ユーザ端末２とのＩ／Ｏ操作の処理を実行するサーバノード１をデスクトップセッションサーバノード、ユーザ端末２からの要求に応じてアプリケーション１０７のＩ／Ｏ操作以外の処理を実行するサーバノード１をＡＰセッションサーバノードとする。そして、最初にデスクトップセッションサーバノードを選択した後、このデスクトップセッションサーバノードを介して、アプリケーションセッションの処理を行う場合について説明する。
【００３５】
図３にデスクトップセッションを実行する際のサーバノード１の処理を示す。図３において、まず、ユーザがユーザ端末２を使用して、ネットワーク３を介して所定のサーバノード１に接続し、ユーザアカウント、パスワードなどのアクセス情報を通知してアクセス要求を行うと、サーバノード１の接続制御部１０１は、ユーザ端末２からのアクセス要求を受け付ける（Ｓ１０１）。
なお、ユーザが最初にアクセスするサーバノード１は、予めユーザ毎に決めておいてもよい。また各サーバノード１のＩＰアドレスなどの情報を記憶したサーバリストを予めユーザ端末２が保持しておき、このサーバリストの中から順にアクセス可能なサーバノード１を選んでアクセスするようにしてもよい。
【００３６】
接続制御部１０１は、アクセス要求を受け付けると、同期制御部１０５に対してどのサーバノード１がデスクトップセッションを開設するかの調整を行うように依頼する（Ｓ１０２）。
【００３７】
同期制御部１０５は、まず構成制御部１０４に対して自サーバノード１の負荷情報の取得を要求する（Ｓ１０３）。
構成制御部１０４は、要求に基づいて自サーバノード１のＣＰＵの負荷状況やメモリの空領域、アクセスしているセッション数などの負荷情報を取得して、同期制御部１０５に通知する（Ｓ１０４）。
【００３８】
同期制御部１０５は、構成制御部１０４から通知された負荷情報に基づいて、自サーバノード１の負荷が所定範囲内であるか否か判別する（Ｓ１０５）。
この判別は、例えば、予め所定の値のＣＰＵの負荷率や、セッション数などを定めておき、この値に達しているか否か判別することにより行うことができる。
判別の結果、所定範囲内の負荷である場合には、同期制御部１０５は、自サーバノード１をデスクトップセッションサーバとして選択して、接続制御部１０１及びユーザ制御部１０２に通知する（Ｓ１０６）。
【００３９】
ユーザ制御部１０２は、ユーザから通知されたアカウント及びパスワードの認証を行い、アクセス要求してきたユーザがデスクトップセッションを開設できるユーザか否か判別する（Ｓ１０７）。
判別の結果、アカウント及びパスワードが適正でない場合には、ユーザ制御部１０２はエラーメッセージなどをユーザ端末２に通知して処理を終了する。
また、判別の結果、アカウント及びパスワードが適正である場合には、ユーザ制御部１０２はその旨接続制御部１０１に通知し、接続制御部１０１はユーザ端末２とのセッションを開設する（Ｓ１０８）。
この際、接続制御部１０１は、セッションの開始日時、セッション接続先などの情報をログとしてデータ記憶部１００などに記憶するようにしてもよい。
【００４０】
ユーザ端末２とのセッションが確立されると、仮想デスクトップ制御部１０３が当該ユーザの画面情報を生成し、これを接続制御部１０１を介して、ユーザ端末２に送信して（Ｓ１０９）、デスクトップセッション開設の処理が完了する。これにより、ユーザ端末２は送信された画面情報ををディスプレイ上に表示することができる。
【００４１】
なお、この際、仮想デスクトップ制御部１０３が、ユーザごとにどのアプリケーション１０７のアイコンを表示するかなどの付加情報をユーザ端末２に通知し、ユーザ毎に所定のアイコンなどが表示されるようにしてもよい。
【００４２】
引き続き、図４において、上述のＳ１０５の判別の結果、所定範囲を超える負荷である場合には、同期制御部１０５は、接続制御部１０１を介して、ネットワーク３を介して相互に接続可能となっている他のサーバノード１に対して各サーバノード１の負荷情報の取得を要求する（Ｓ１１０）。
要求に応じて他のサーバノード１の構成制御部１０４及び同期制御部１０５が負荷情報を取得して送信すると、同期制御部１０５は、接続制御部１０１を介して他サーバノード１の負荷情報を受け取り、その中から適切な負荷状態にあるサーバノード１をデスクトップセッションサーバとして選択する（Ｓ１１１）。この選択は、例えば、同期制御部１０５が収集した負荷情報のうち、最も負荷が軽いサーバノード１を選択するようにしてもよいし、所定時間内にレスポンスがあったサーバノード１のうちから負荷が所定範囲内のサーバノード１を選択してもよく任意である。
【００４３】
そして、同期制御部１０５は、接続制御部１０１を介して選択したサーバノード１に対してユーザからのアクセス要求（ユーザアカウント、パスワードなど）を転送し（Ｓ１１２）、処理を終了する。
なお、これにより選択されたサーバノード１は、上述のＳ１０７以下と同様な処理を行いユーザ端末２とデスクトップセッション開設のための処理を行う。
【００４４】
次に、図５を参照して、ＡＰセッションの処理について説明する。
図５において、ユーザが仮想デスクトップ上に表示されたアイコンをクリックしたり、コンソール画面からアプリケーション１０７の実行要求を行う（Ｓ２０１）と、デスクトップセッションサーバノード１の仮想デスクトップ制御部１０３が、仮想デスクトップ上よりユーザからのアプリケーション実行要求を受け付ける（Ｓ２０２）。仮想デスクトップ制御部１０３は、アプリケーション１０７の実行要求を受け付けると、同期制御部１０５に対してどのサーバノード１がＡＰセッションを開設するか調整を依頼する（Ｓ２０３）。
【００４５】
なお、アプリケーション１０７の実行要求を受け付けた際に、ユーザ制御部１０２が当該ユーザが実行要求したアプリケーション１０７を利用できるユーザか否か、またアプリケーションのどの機能まで利用できるユーザか否かなどを判別させるようにしてもよい。
【００４６】
仮想デスクトップ制御部１０３から依頼を受けると、同期制御部１０５は、まず構成制御部１０４に対して自サーバノード１が保持しているアプリケーション１０７のアプリケーション名、バージョン、ライセンス数や、ＣＰＵなどの負荷情報を含む構成情報の取得を要求する（Ｓ２０４）。
また同時に、同期制御部１０５は、接続制御部１０１を介して、他のサーバノード１に対して構成情報の取得を要求する（Ｓ２０５）。
【００４７】
要求を受けた構成制御部１０４は、アプリケーション制御部１０６から自サーバノード１が保持しているアプリケーション名、バージョン、ライセンス数などの情報を取得すると共に、自サーバノード１のＣＰＵの負荷状況やメモリの空領域、実行しているセッション数などの負荷情報を取得して構成情報を生成し、要求元の同期制御部１０５に対して通知する（Ｓ２０６）。
【００４８】
同期制御部１０５は、データ記憶部１００に記憶されている選択条件テーブルを参照して、ユーザから実行要求されたアプリケーション１０７の選択条件を特定し、構成情報に基づいて特定した選択条件に適合したサーバノード１を選択する（Ｓ２０７）。この選択条件の特定は、同期制御部１０５が選択条件テーブルの各選択条件に対する重み付けを参照して重み付け順位が高い選択条件から順に選択するようになっている。
そして、同期制御部１０５は、選択したサーバノード１の接続制御部１０１に対して、ユーザ端末２とＡＰセッションを開設するように要求する（Ｓ２０８）。
【００４９】
ＡＰセッション開設要求を受けたサーバノード１の接続制御部１０１は、ユーザ端末２に対するＡＰセッション開設要求をデスクトップセッションサーバノード１に通知する（Ｓ２０９）。
デスクトップセッションサーバノード１の接続制御部１０１は、受信したＡＰセッション開設要求をユーザ端末２へ転送する（Ｓ２１０）。
ユーザ端末２は、ＡＰセッション開設要求に応じて、ユーザアカウントやパスワードなどの所定の情報を含むセッション情報をデスクトップセッションサーバノード１に送信する（Ｓ２１１）。
【００５０】
デスクトップセッションサーバノード１の接続制御部１０１は、ユーザから送信されたセッション情報をＡＰセッション開設要求を行ったサーバノード１へ転送する（Ｓ２１２）。
引き続き図６において、ＡＰセッションサーバノード１では、受信したユーザからのセッション情報に基づいて、ユーザのＡＰ利用権限やＡＰのライセンス数確認などのセッション開設のための処理を行い、ＡＰセッションの開設をデスクトップセッションサーバノード１へ通知する（Ｓ２１３）。
【００５１】
ユーザ端末２との間でＡＰセッションが実行されると、デスクトップセッションサーバノード１の同期制御部１０５は、このサーバノード１が当該ユーザとＡＰセッションを実行している旨の情報を構成情報に付加して更新する（Ｓ２１４）。
また、同期制御部１０５は、ＡＰセッションを実行しているサーバノード１のアプリケーション制御部１０６に対してユーザからのアプリケーション実行要求を転送する（Ｓ２１５）。
【００５２】
アプリケーション実行要求を受けたＡＰセッションサーバノード１のアプリケーション制御部１０６は、ユーザから要求されたアプリケーション１０７を起動し、そのデスクトップ表示情報などのアプリケーション起動情報をデスクトップセッションサーバノード１の仮想デスクトップ制御部１０３に送信する（Ｓ２１６）。
【００５３】
仮想デスクトップ制御部１０３は、アプリケーション制御部１０６から受信したアプリケーション起動情報に基づいて、ユーザの仮想デスクトップ上に表示するデスクトップ画面情報を生成し、これをユーザ端末２に送信する（Ｓ２１７）。
これにより、ユーザ端末２は、受信したデスクトップ画面情報に基づき、ディスプレイ上にアプリケーション１０７の起動画面を表示する（Ｓ２１８）。
【００５４】
アプリケーション起動画面上で、ユーザがポインティングデバイスなどで所定のアプリケーション１０７の機能の実行などの操作を行うと（Ｓ２１９）、デスクトップセッションサーバノード１の仮想デスクトップ制御部１０３がその操作情報を受信する（Ｓ２２０）。
【００５５】
仮想デスクトップ制御部１０３は、構成情報を参照して、当該アプリケーション１０７について当該ユーザとＡＰセッションを実行しているサーバノード１を特定し、当該サーバノード１に対してユーザからの操作情報を転送する（Ｓ２２１）。
ユーザからの操作情報を受信したＡＰセッションを実行しているサーバノード１のアプリケーション制御部１０６は、ユーザの操作情報に基づいたアプリケーション１０７を実行し、その実行結果をデスクトップセッションサーバとしてのサーバノード１に返信する（Ｓ２２２）。
【００５６】
ユーザとデスクトップセッションサーバノード１の仮想デスクトップ制御部１０３は、送信された実行結果情報に基づいてユーザの仮想デスクトップ情報を更新して、これをユーザ端末２に送信し（Ｓ２２３）、ユーザ端末２では更新されたデスクトップ画面を表示する（Ｓ２２４）。
以下、ユーザにより当該アプリケーション１０７に対する処理が継続されるごとに、上述のＳ２１９〜Ｓ２２４の処理が繰り返して行われる。
【００５７】
そして、ユーザがアプリケーション１０７による処理の終了操作を行い（Ｓ２２５）、この操作情報がデスクトップセッションサーバノード１の仮想デスクトップ制御部１０３を介してＡＰセッションサーバノード１に転送されると（Ｓ２２６）、ＡＰセッションを実行していたサーバノード１は、アプリケーション制御部１０６が起動していたアプリケーション１０７を終了するとともに、ユーザとの間のＡＰセッションを終了する（Ｓ２２７）。
これにより、デスクトップセッションサーバノード１は、当該ユーザのＡＰセッション終了した旨、構成情報を更新する（Ｓ２２８）。
【００５８】
なお、ユーザから新たなアプリケーション処理要求があった場合、即ち、同じアプリケーション１０７に対する実行要求があった場合又は異なるアプリケーション１０７に対する実行要求があった場合のいずれも、ＡＰセッションごとに上述のＳ２０１以下の処理を行う。これによりセッション毎に適切なサーバノード１にアプリケーションセッションの処理を振り分けることができるようになる。
【００５９】
なお、上述の例では、デスクトップセッションサーバノード１とＡＰセッションサーバノード１が異なる例について説明したが、１台のサーバノード１がデスクトップセッション及びセッションを実行するようにしてもよい。この場合には上述のＡＰセッションサーバノード１の処理をデスクトップセッションサーバノード１が実行することとなる。
【００６０】
次に、上述のＳ２０７の処理で、ユーザから要求されたアプリケーション１０７の選択条件に基づいてＡＰセッションを実行するサーバノード１を選択する際の、デスクトップセッションサーバノード１の詳細な処理について図７を参照して説明する。
図７において、同期制御部１０５は、データ記憶部１００の選択条件テーブルを参照して、ユーザから実行要求されたアプリケーション１０７について最も優先度が高い、即ち重み付けの値が最も大きい選択条件を選択する（Ｓ３００）。
【００６１】
Ｓ３００の処理により負荷優先選択が優先的に指定されていると判別された場合には、負荷優先選択処理を実行する（Ｓ３１１）。
この負荷優先選択が選択された場合には、同期制御部１０５は、当該デスクトップセッションサーバノード１が、ユーザから要求された実行可能なアプリケーション１０７を保持しており、かつ、その負荷が所定範囲内か否か判別する（Ｓ３１２）。
ここに実行可能なアプリケーション１０７とは、アプリケーション１０７の種類やバージョン、ライセンス数などの条件を満たしているアプリケーション１０７をいう。また、基準となる負荷の大きさは、予めＣＰＵやメモリの空き領域など所定の値を設定しておくことができる。
【００６２】
判別の結果、当該デスクトップセッションサーバノード１が、ユーザから要求された実行可能なアプリケーション１０７を保持しており、かつ、その負荷が所定範囲内である場合には、同期制御部１０５は当該デスクトップセッションサーバノード１をＡＰセッションサーバとして選択する（Ｓ３１３）。
【００６３】
判別の結果、デスクトップセッションサーバノード１が、ユーザから要求されたアプリケーション１０７を保持していない場合、又は負荷が所定の範囲以上である場合には、同期制御部１０５は、上述のＳ３００の処理に戻って次に優先度の高い、即ち重み付けの値が大きい選択条件を選択する。
【００６４】
また、Ｓ３００の処理により重畳優先方式が優先的に指定されていると判別された場合には、重畳優先選択処理を実行する（Ｓ３２１）。
重畳優先選択方式が選択された場合には、同期制御部１０５は、ユーザから実行要求されたアプリケーション１０７を既に起動・実行しているサーバノード１が存在するか否か判別する（Ｓ３２２）。
判別の結果、ユーザから実行要求されたアプリケーション１０７を実行しているサーバノード１が存在する場合には、当該同一のアプリケーション１０７を実行しているサーバノード１をＡＰセッションサーバとして選択する（Ｓ３２３）。これにより、メモリのテキスト領域とデータ領域のうち、静的なテキスト領域を共有することができる。
一方、判別の結果、ユーザから要求されたアプリケーション１０７を起動・実行しているサーバノード１が存在しないと判別された場合には、同期制御部１０５は、上述のＳ３００の処理に戻って次に優先度の高い、即ち重み付けの値が大きい選択条件を選択する。
【００６５】
また、Ｓ３００の処理によりローカル優先方式が優先的に指定されていると判別された場合には、ローカル優先選択処理、即ちデスクトップセッションサーバノード１を優先的に選択する処理を実行する（Ｓ３３１）。
ローカル優先選択方式が選択された場合には、同期制御部１０５がアプリケーション制御部１０６に対して問合せを行い、当該デスクトップセッションサーバ１が、ユーザにより実行要求された実行可能なアプリケーション１０７を保持しているか判別する（Ｓ３３２）。
その結果、当該デスクトップセッションサーバノード１が、ユーザが実行要求した実行可能なアプリケーション１０７を有している場合には、無条件にデスクトップセッションサーバノード１をＡＰセッションサーバとして選択する（Ｓ３３３）。
また、判別の結果、当該デスクトップセッションサーバノード１が、ユーザが実行要求した実行可能なアプリケーション１０７を有していない場合には、上述のＳ３００の処理に戻って次に優先度の高い、即ち重み付けの値が大きい選択条件を選択する。
【００６６】
また、Ｓ３００の処理により特定サーバ優先方式が優先的に指定されていると判別された場合には、特定サーバ優先選択処理を実行する（Ｓ３４１）。
特定サーバ優先選択方式が選択された場合には、同期制御部１０５は、例えば、当該アプリケーション１０７のファイルサーバを兼ねているサーバノード１を特定する（Ｓ３４２）。この特定は、構成情報に含まれているアプリケーション１０７に関する情報から特定できるようにする。
そして、同期制御部１０５は、当該ファイルサーバを兼ねているサーバノード１をＡＰセッションサーバとして選択して（Ｓ３４３）、処理を終了する。
【００６７】
このように、ＳＢＣシステムにおいて、同期制御部１０５が、各サーバノード１が保持しているアプリケーション１０７の情報及び各サーバノード１の負荷情報を含む構成情報を取得し、取得した構成情報に基づいて、複数のサーバノード１のうちからユーザ端末２から実行要求されたアプリケーション１０７を実行するための選択条件に適合するアプリケーションセッションサーバノード１を選択してアプリケーション１０７を実行するようにしたことから、適切なサーバノード１にアプリケーション１０７の処理を分散させることができる。
これにより、従来のように１台のサーバに処理が集中することを防ぐことができ、ユーザはいわば接続可能なサーバノード１の数分のＣＰＵ性能を享受することができ、システム全体の処理性能を高めることができる。また、必要に応じてサーバノード１が増減されても、構成情報のうちの接続可能なサーバノード１の情報を更新するだけでよいから、システムスケールに応じてフレキシブルに対応できる。
【００６８】
また、仮想デスクトップサーバノード１の同期制御部１０５が、アプリケーションセッションごとに、当該アプリケーション１０７を実行するアプリケーションセッションサーバを選択するようにしたことから、ユーザ毎にサーバノード１を割り当てる場合に比べて、特定のサーバノード１に負荷が集中することを防止でき、システム全体として効率を向上させることができる。
【００６９】
仮想デスクトップ制御部１０３により、ユーザに対して仮想デスクトップ画面を表示するようにしたことから、ユーザから見たシステム構成は仮想化されて常に変わらないため、ＡＰセッションサーバ１が複数存在してもユーザとしても全く意識する必要がなく、使いやすいシステムを提供することができる。
また、アプリケーション１０７の実行中の処理のうちＩ／Ｏ操作を伴う部分はデスクトップセッションサーバノード１が処理し、それ以外のＩ／Ｏ操作を伴わない部分についてはＡＰセッションサーバ１に処理を振り分けることができ、セッションの動的な負荷分散の処理が可能となり、時間の経過によるシステムの負荷状態の変化に柔軟かつ適切に対応できる。
また、デスクトップセッションサーバノード１は、Ｉ／Ｏ操作を伴わない部分を構成情報を参照して他の適切なサーバノード１へ転送して処理することにより、例えば、アプリケーションセッションサーバノード１が異常を検出した場合には、他のサーバノード１へ処理を依頼して処理を継続するようにしてもよい。
【００７０】
選択条件テーブルにアプリケーション１０７ごとに各選択条件を適用する優先順位情報を記憶しておき、同期制御部１０５により、選択条件テーブルを参照して、ユーザにより実行要求されたアプリケーションプログラム１０７に対応する各選択条件のうち、優先順位が高い選択条件から順に当該選択条件に適合するサーバノード１が存在するか否かの判別処理を行うようにしたことから、各アプリケーション１０７の特性に応じて適切なサーバノード１を優先的に選択して、ＡＰセッションを実行させることができ、システム全体としての効率を向上させることができる。
【００７１】
また、選択条件として、上述の負荷優先選択条件によれば、デスクトップセッションサーバ１の負荷が所定範囲内のときだけアプリケーションセッションを振り分けることができ、デスクトップセッションサーバ１に負荷が集中することを防止できる。
【００７２】
選択条件として、上述の重畳優先選択条件によれば、メモリのテキスト領域とデータ領域のうち、静的なテキスト領域を共有することができるため、従来のように同じプロセス空間を２つのノードのメモリ上に展開することが無くなり、システム全体としてメモリの利用効率を高めることができる。
【００７３】
選択条件として、上述のローカル優先選択条件、或いは、特定サーバ優先選択条件によれば、アプリケーション１０７を実行する際に要求されるディスク操作やデバイスへのアクセスなどの特性、或いはどのサーバノード１が当該アプリケーション１０７のファイルサーバとなっているかなどを考慮して、最適なサーバノード１を選択して処理を振り分けることができる。
【００７４】
また、サーバノード１としてコモディティないわゆるパーソナルコンピュータを使用することで、システム全体の構築費用を低く抑えることができるし、システム開発も短期間で効率的に開発することができる。
【００７５】
本実施形態のサーバノード１用のコンピュータプログラムを、コンピュータ読み取り可能な媒体（ＦＤ、ＣＤ−ＲＯＭ等）に格納して配布してもよいし、搬送波に重畳し、通信ネットワークを介して配信することも可能である。
【００７６】
【発明の効果】
本発明によれば、端末からの要求に応じたアプリケーションの実行を、複数のサーバノードにより効率的に行うことができる。
【図面の簡単な説明】
【図１】本発明にかかる分散処理システム及びコンピュータプログラムを適用したシステムの一実施形態の概略構成図。
【図２】本実施形態にかかる選択条件テーブルの一例を示した図。
【図３】本実施形態にかかるデスクトップセッションを開設するまでのサーバノードの処理の流れを示した処理フロー。
【図４】図３に引き続き本実施形態にかかるデスクトップセッションを開設するまでのサーバノードの処理の流れを示した処理フロー。
【図５】本実施形態にかかるＡＰセッションを開設するまでのシステム全体の処理の流れを示した処理フロー。
【図６】図５に引き続き本実施形態にかかるＡＰセッションを開設するまでのシステム全体の処理の流れを示した処理フロー。
【図７】本実施形態にかかる選択条件を選択する際のデスクトップセッションサーバノードの処理の流れを示した処理フロー。
【符号の説明】
１      サーバノード
２      ユーザ端末
３      ネットワーク
１００  データ記憶部
１０１  接続制御部
１０２  ユーザ制御部
１０３  仮想デスクトップ制御部
１０４  構成制御部
１０５  同期制御部
１０６  アプリケーション（ＡＰ）制御部
１０７  アプリケーション
【図１】
2004287889.tif 000003
【図２】
2004287889.tif 000004
【図３】
2004287889.tif 000005
【図４】
2004287889.tif 000006
【図５】
2004287889.tif 000007
【図６】
2004287889.tif 000008
【図７】
2004287889.tif 000009