(57)【要約】【課題】ネットワークシステムを高速かつ高効率でユーザーが利用できるようにすること。【解決手段】ホストサーバーは、ＰＣ環境をエミュレーションして自機ＯＳ上にクライアントＯＳを仮想ＰＣとして起動し、仮想ＰＣ上の画面共有サーバーにクライアント端末上の画面共有クライアントに接続して仮想ＰＣを遠隔操作するネットワークコンピュータシステムにおいて、画面共有クライアントと画面共有サーバーで接続しているクライアント端末のハードウェアリソースを仮想ＰＣが利用する。【選択図】図１
2007193429.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーに前記クライアント端末上で起動する画面共有クライアントに接続することにより前記クライアント端末から前記仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、
前記画面共有クライアントと前記画面共有サーバーで接続している前記クライアント端末のハードウェアリソースを前記仮想ＰＣが利用することを特徴とするネットワークコンピューティングシステム。
【請求項２】
前記画面共有サーバーは前記画面共有クライアントから接続要求があった場合、現在接続中の画面共有クライアントとの接続を切断するとともに利用していたハードウェアリソースの利用を停止し、新たに接続を受けた画面共有クライアントと排他的に接続し、前記仮想ＰＣは新たに接続したクライアント端末のハードウェアリソースの利用を可能な状態にする機能を有することを特徴とする請求項１記載のネットワークコンピューティングシステム。
【請求項３】
さらに接続管理サーバーを構成要素とし、該接続管理サーバーは、前記仮想ＰＣのネットワークアドレスと識別情報をあわせて管理し、
前記クライアント端末上の前記画面共有クライアントが、前記仮想ＰＣ上の前記画面共有サーバーが接続する際に前記識別情報によって、ネットワークアドレスを照合し、接続を補助する機能を有することを特徴とする請求項１または２記載のネットワークコンピューティングシステム。
【請求項４】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作することを特徴とするネットワークコンピュータシステムであって、
前記ホストサーバーは前記画面共有サーバーを起動する機能を有し、
接続管理サーバーは、前記クライアント端末から接続を要求された前記仮想ＰＣが起動していない場合、前記ホストサーバーに対し、要求された前記仮想ＰＣを起動するよう指示する機能を有するとともに、前記仮想ＰＣの前記画面共有サーバーが起動していない場合、前記クライアント端末を一時的に前記ホストサーバーの前記画面共有サーバーに接続するよう接続を制御することにより、前記クライアント端末から前記仮想ＰＣを遠隔操作する機能を有することを特徴とするネットワークコンピューティングシステム。
【請求項５】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーに前記クライアント端末上で起動する画面共有クライアントに接続することにより前記クライアント端末から前記仮想ＰＣを遠隔操作ネットワークコンピュータシステムであって、
各仮想ＰＣにはネットワークコンピューティングシステムのＬＡＮ内でグローバルなネットワークアドレスと同一ホストサーバー上で起動する仮想ＰＣ間のみでの通信が可能な仮想ネットワークで利用可能なネットワークワークアドレスを割り当て、
外部と通信を行う場合は、ＬＡＮのアドレスを用いて通信し、
同一ホストサーバー上で起動する仮想ＰＣ間で通信する場合は、仮想ネットワークのアドレスを用いて仮想ネットワークを介して通信を行うことを特徴とするネットワークコンピューティングシステム。
【請求項６】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーに前記クライアント端末上で起動する画面共有クライアントに接続することにより前記クライアント端末から前記仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、
前記ホストサーバーはＮＡＴ機能を有し、
前記仮想ＰＣはＮＡＴ機能を利用して自身を起動している前記ホストサーバーおよび前記ホストサーバー外部との通信を行う機能を有し、
前記仮想ＰＣが外部と通信を行う場合は、ＮＡＴを介して通信し、
同一ホストサーバー上で起動する仮想ＰＣ間で通信する場合は、仮想ネットワークのアドレスを用いて仮想ネットワークを介して通信を行うことを特徴とするネットワークコンピューティングシステム。
【請求項７】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーに前記クライアント端末上で起動する画面共有クライアントに接続することにより前記クライアント端末から前記仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、
前記ホストサーバーは異なるホストサーバー間の仮想ＰＣが通信するための専用のネットワークアダプタを有し、ホストサーバー同士はこの通信用のネットワーク回線で接続され、
各仮想ＰＣはホストサーバーの前記専用のネットワークアダプタを共有して利用する機能およびネットワークアドレスを割り当てる機能を有し、
異なるホストサーバー上の仮想ＰＣが前記専用回線を介して通信する機能を有することを特徴とするネットワークコンピューティングシステム。
【請求項８】
利用できるポートを制限することにより、前記仮想ＰＣ同士は、許可された通信のみ仮想ネットワーク、もしくは仮想ＰＣ間専用回線を介して行えるよう、通信を制御する機能を有することを特徴とする請求項６または７記載のネットワークコンピューティングシステム。
【請求項９】
前記ホストサーバー上で起動する前記仮想ＰＣのうち１台はローカルアドレスを割り当てられ、前記ホストサーバー外部との通信が可能であるとともに、仮想ＰＣ間ネットワークへのルーティングを行う機能を有することを特徴とする請求項６記載のネットワークコンピューティングシステム。
【請求項１０】
前記仮想ＰＣは必要に応じて、前記ＬＡＮ内でグローバルなネットワークアドレスを取得する機能を有することを特徴とする請求項６、８および９のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１１】
少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、
前記ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、
前記仮想ＰＣ上で起動する画面共有サーバーに前記クライアント端末上で起動する画面共有クライアントに接続することにより前記クライアント端末から前記仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、
前記ホストサーバーのＲＡＭの一部をＲＡＭディスクとして、仮想的な記憶装置とし、該ＲＡＭディスクをネットワークドライブとして共有することにより、前記ホストサーバーとその上で起動する仮想ＰＣ、もしくは同一ホストサーバー上で起動する仮想ＰＣ間で通信を行うことを特徴とする通信方法。
【請求項１２】
請求項１１記載の通信方法によりホストＰＣと仮想ＰＣおよび仮想ＰＣ間で通信する機能を有することを特徴とする請求項６記載のネットワークコンピューティングシステム。
【請求項１３】
前記仮想ＰＣは画面共有クライアントを起動する機能を有し、
第１の仮想ＰＣは第１のクライアント端末の、第２の仮想ＰＣは第２のクライアント端末の画面共有をそれぞれ行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面を共有することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする請求項１から１２のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１４】
前記クライアント端末は画面共有サーバーを起動する機能を有し、
第１の仮想ＰＣは第１のクライアント端末の画面共有を行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする請求項１から１３のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１５】
前記クライアント端末は画面共有サーバーから受信したデータを他の画面共有クライアントに転送するプロキシ機能を有し、
第１の仮想ＰＣは第１のクライアント端末の画面共有を行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面プロキシに接続することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする請求項１から１４のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１６】
前記画面共有サーバーもしくはプロキシは、画面データをマルチキャストで送信する機能を有し、前記画面共有クライアントに対して、自身の画面データを送信するのに利用するマルチキャストアドレスを通知する機能を有することを特徴とする請求項１から１５のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１７】
複数のクライアント端末で仮想ＰＣの画面を共有する場合において、
画面共有サーバーの起動する仮想ＰＣと、接続するクライアント端末及びクライアント端末が画面共有している仮想ＰＣのネットワーク構成を取得し、ネットワーク構成に応じて、画面共有の接続方法を決定する機能を有することを特徴とするネットワークコンピュータシステム。
【請求項１８】
仮想ＰＣだけでなく、ターミナルサービスのクライアントも構成要素として含み、前記クライアント端末上で起動する画面共有クライアントは、プロトコル変換を用いることにより、ターミナルサービスのクライアント上で起動する画面共有サーバーに対しても、前記仮想ＰＣ上で起動する画面共有サーバーと同等に接続する機能を有することを特徴とする請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステム。
【請求項１９】
画像投影手段、ネットワーク接続手段および請求項１から１７のいずれか１項に記載の画面共有クライアントの機能を持つ情報処理部を有し、請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末として機能し、仮想ＰＣの画面を投影することを特徴とする画像投影装置。
【請求項２０】
画像入出力手段、ネットワーク接続手段、画面表示部および請求項１から１７のいずれか１項に記載の画面共有クライアントの機能を持つ情報処理部を有し、請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末として機能し、仮想ＰＣを遠隔操作することを特徴とする画像入出力装置。
【請求項２１】
実際の表示装置に出力することなく、画面データをメモリ上に仮想画面として出力するビデオドライバにより画面データを出力し、
前記メモリから画面データを取得する画面共有サーバーの画面データ取得方法。
【請求項２２】
前記ビデオドライバは、画面データを画面共有サーバーが画面共有クライアントに転送するのと同一の形式でエンコードしてメモリ上に出力する機能を有することを特徴とする請求項２１記載の画面データ取得方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速かつ高効率でユーザーが使い易いネットワークコンピューティングシステムにするための技術に関する。
【背景技術】
【０００２】
従来、画面共有技術として、Ｍｉｃｒｏｓｏｆｔ社のＮｅｔＭｅｅｔｉｎｇ、ＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）が広く知られている。
【０００３】
図３２を用いて、ＶＮＣの動作原理を簡単に説明する。画面共有サーバーは、ＰＣのデスクトップあるいは、その一部の画面データ取得して、これ画面共有をクライアントに送信する。画面共有クライアントは受信した画面データを自身のデスクトップ画面上に表示することにより、画面共有サーバーの起動しているＰＣの画面を共有できるようになっている。
【０００４】
これらのソフトでは、画面共有クライアントから取得したマウス、キーボード等の入力イベントを画面共有サーバーに送信することにより、画面共有クライアントから画面共有サーバーのＰＣの遠隔操作を可能にしている。
【０００５】
Ｍｉｃｒｏｓｏｆｔ社のＲｅｍｏｔｅＤｅｓｋｔｏｐやターミナルサービスは、リモートからデスクトップにログオンするように見えるが、内部ではデスクトップ画面を実際に表示することなく、仮想的なデスクトップ画面上で上記画面共有サーバーを起動させ、リモートのＰＣから画面共有クライアント機能で接続している。
【０００６】
また、仮想ＰＣ技術として、Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣ、ＶＭＷａｒｅ社のＶＭＷａｒｅがある。
【０００７】
図３３を用いて、これらのＰＣ仮想化技術について説明する。仮想ＰＣソフトは、ホストＯＳ上で仮想マシン環境をアプリケーションプログラムの１つとして作り出す機能を有している。この仮想ＰＣ実行環境においてゲストＯＳを起動することができる。ゲストとして起動する仮想ＰＣにおいて、そのハードウェアリソースは、一部は仮想的に作られた仮想ハードウェアとして提供され、一部はホストのリソースを仮想ＰＣ実行環境に仲介制御されてながら利用できるようになっている。
【０００８】
ここで、仮想ＰＣレンタル装置に関する技術が提案されている（例えば、特許文献１参照）。
【０００９】
また、サーバーシステム（レンタルサーバーシステム）に関する、ＤＢシステムをレンタルする場合、ＤＢそのものを複製するとデータ量が大きくなるのでＴｈｉｎＣｌｉｅｎｔ化するＰＣやサーバーシステムをレンタルするのに、仮想ＰＣと画面共有を用いてＰＣもしくはサーバーを管理し、顧客側は画面共有クライアントでアクセスするだけで、ＰＣやサーバーを手軽に一時的に利用できる技術が提案されている（例えば、特許文献２参照）。
【特許文献１】特開２００４−１７１４１２号公報
【特許文献２】特開２００３−２８０９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した従来例においては次のような問題点があった。
【００１１】
ターミナルサービスでは、アプリケーションの利用に関する制限や、ユーザー権限でのアプリケーションのインストールや、ＰＣの設定変更ができない。このようにユーザー各人に１つの完全に設定変更可能なＰＣ環境を提供することが困難であった。
【００１２】
また、各ユーザーに１台ずつのＰＣを提供するのでは、消費電力、ＰＣ買い替え、ＰＣ管理等のコストが生じる。
【００１３】
また、ユーザーは任意の場所において自分のＰＣ環境で作業することが困難であった。
【００１４】
そこで、本発明は、ネットワークコンピューティングシステムを高速かつ高効率でユーザーが利用できるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
請求項１記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、画面共有クライアントと画面共有サーバーで接続しているクライアント端末のハードウェアリソースを仮想ＰＣが利用することを特徴とするネットワークコンピューティングシステムである。
【００１６】
請求項２記載の発明は、請求項１記載のネットワークコンピューティングシステムにおいて、画面共有サーバーは画面共有クライアントから接続要求があった場合、現在接続中の画面共有クライアントとの接続を切断するとともに利用していたハードウェアリソースの利用を停止し、新たに接続を受けた画面共有クライアントと排他的に接続し、仮想ＰＣは新たに接続したクライアント端末のハードウェアリソースの利用を可能な状態にする機能を有することを特徴とする。
【００１７】
請求項３記載の発明は、請求項１または２記載のネットワークコンピューティングシステムにおいて、さらに接続管理サーバーを構成要素とし、接続管理サーバーは、仮想ＰＣのネットワークアドレスと識別情報をあわせて管理し、クライアント端末上の画面共有クライアントが、仮想ＰＣ上の画面共有サーバーが接続する際に識別情報によって、ネットワークアドレスを照合し、接続を補助する機能を有することを特徴とする。
【００１８】
請求項４記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作することを特徴とするネットワークコンピュータシステムであって、ホストサーバーは画面共有サーバーを起動する機能を有し、接続管理サーバーは、クライアント端末から接続を要求された仮想ＰＣが起動していない場合、ホストサーバーに対し、要求された仮想ＰＣを起動するよう指示する機能を有するとともに、仮想ＰＣの画面共有サーバーが起動していない場合、クライアント端末を一時的にホストサーバーの画面共有サーバーに接続するよう接続を制御することにより、クライアント端末から仮想ＰＣを遠隔操作する機能を有することを特徴とするネットワークコンピューティングシステムである。
【００１９】
請求項５記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作ネットワークコンピュータシステムであって、各仮想ＰＣにはネットワークコンピューティングシステムのＬＡＮ内でグローバルなネットワークアドレスと同一ホストサーバー上で起動する仮想ＰＣ間のみでの通信が可能な仮想ネットワークで利用可能なネットワークワークアドレスを割り当て、外部と通信を行う場合は、ＬＡＮのアドレスを用いて通信し、同一ホストサーバー上で起動する仮想ＰＣ間で通信する場合は、仮想ネットワークのアドレスを用いて仮想ネットワークを介して通信を行うことを特徴とするネットワークコンピューティングシステムである。
【００２０】
請求項６記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、ホストサーバーはＮＡＴ機能を有し、仮想ＰＣはＮＡＴ機能を利用して自身を起動しているホストサーバーおよびホストサーバー外部との通信を行う機能を有し、仮想ＰＣが外部と通信を行う場合は、ＮＡＴを介して通信し、同一ホストサーバー上で起動する仮想ＰＣ間で通信する場合は、仮想ネットワークのアドレスを用いて仮想ネットワークを介して通信を行うことを特徴とするネットワークコンピューティングシステムである。
【００２１】
請求項７記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、ホストサーバーは異なるホストサーバー間の仮想ＰＣが通信するための専用のネットワークアダプタを有し、ホストサーバー同士はこの通信用のネットワーク回線で接続され、各仮想ＰＣはホストサーバーの専用のネットワークアダプタを共有して利用する機能およびネットワークアドレスを割り当てる機能を有し、異なるホストサーバー上の仮想ＰＣが専用回線を介して通信する機能を有することを特徴とするネットワークコンピューティングシステムである。
【００２２】
請求項８記載の発明は、請求項６または７記載のネットワークコンピューティングシステムにおいて、利用できるポートを制限することにより、仮想ＰＣ同士は、許可された通信のみ仮想ネットワーク、もしくは仮想ＰＣ間専用回線を介して行えるよう、通信を制御する機能を有することを特徴とする。
【００２３】
請求項９記載の発明は、請求項６記載のネットワークコンピューティングシステムにおいて、ホストサーバー上で起動する仮想ＰＣのうち１台はローカルアドレスを割り当てられ、ホストサーバー外部との通信が可能であるとともに、仮想ＰＣ間ネットワークへのルーティングを行う機能を有することを特徴とする。
【００２４】
請求項１０記載の発明は、請求項６、８および９のいずれか１項に記載のネットワークコンピューティングシステムにおいて、仮想ＰＣは必要に応じて、ＬＡＮ内でグローバルなネットワークアドレスを取得する機能を有することを特徴とする。
【００２５】
請求項１１記載の発明は、少なくとも１台以上のＰＣによって構成されるホストサーバーとクライアント端末を構成要素とするネットワークコンピュータシステムにおいて、ホストサーバーは、ＰＣ環境をエミュレーションすることにより自機のＯＳ上にクライアントＯＳを仮想ＰＣとして起動する機能を有し、かつホストサーバー１台以上の仮想ＰＣを起動する機能を有し、仮想ＰＣ上で起動する画面共有サーバーにクライアント端末上で起動する画面共有クライアントに接続することによりクライアント端末から仮想ＰＣを遠隔操作するネットワークコンピュータシステムであって、ホストサーバーのＲＡＭの一部をＲＡＭディスクとして、仮想的な記憶装置とし、ＲＡＭディスクをネットワークドライブとして共有することにより、ホストサーバーとその上で起動する仮想ＰＣ、もしくは同一ホストサーバー上で起動する仮想ＰＣ間で通信を行うことを特徴とする通信方法である。
【００２６】
請求項１２記載の発明は、請求項６記載のネットワークコンピューティングシステムにおいて、請求項１１記載の通信方法によりホストＰＣと仮想ＰＣおよび仮想ＰＣ間で通信する機能を有することを特徴とする。
【００２７】
請求項１３記載の発明は、請求項１から１２のいずれか１項に記載のネットワークコンピューティングシステムにおいて、仮想ＰＣは画面共有クライアントを起動する機能を有し、第１の仮想ＰＣは第１のクライアント端末の、第２の仮想ＰＣは第２のクライアント端末の画面共有をそれぞれ行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面を共有することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする。
【００２８】
請求項１４記載の発明は、請求項１から１３のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末は画面共有サーバーを起動する機能を有し、第１の仮想ＰＣは第１のクライアント端末の画面共有を行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする。
【００２９】
請求項１５記載の発明は、請求項１から１４のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末は画面共有サーバーから受信したデータを他の画面共有クライアントに転送するプロキシ機能を有し、第１の仮想ＰＣは第１のクライアント端末の画面共有を行っている場合に、第２の仮想ＰＣは画面共有クライアントを起動して第１の仮想ＰＣの画面共有サーバーに接続し、第２の仮想ＰＣが第１の仮想ＰＣの画面プロキシに接続することにより、第２のクライアント端末で第１の仮想ＰＣの画面を共有することを特徴とする。
【００３０】
請求項１６記載の発明は、請求項１から１５のいずれか１項に記載のネットワークコンピューティングシステムにおいて、画面共有サーバーもしくはプロキシは、画面データをマルチキャストで送信する機能を有し、画面共有クライアントに対して、自身の画面データを送信するのに利用するマルチキャストアドレスを通知する機能を有することを特徴とする。
【００３１】
請求項１７記載の発明は、複数のクライアント端末で仮想ＰＣの画面を共有する場合において、画面共有サーバーの起動する仮想ＰＣと、接続するクライアント端末及びクライアント端末が画面共有している仮想ＰＣのネットワーク構成を取得し、ネットワーク構成に応じて、画面共有の接続方法を決定する機能を有することを特徴とするネットワークコンピュータシステム介して通信する機能を有することを特徴とするネットワークコンピューティングシステムである。
【００３２】
請求項１８記載の発明は、請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステムにおいて、仮想ＰＣだけでなく、ターミナルサービスのクライアントも構成要素として含み、クライアント端末上で起動する画面共有クライアントは、プロトコル変換を用いることにより、ターミナルサービスのクライアント上で起動する画面共有サーバーに対しても、仮想ＰＣ上で起動する画面共有サーバーと同等に接続する機能を有することを特徴とする。
【００３３】
請求項１９記載の発明は、画像投影手段、ネットワーク接続手段および請求項１から１７のいずれか１項に記載の画面共有クライアントの機能を持つ情報処理部を有し、請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末として機能し、仮想ＰＣの画面を投影することを特徴とする画像投影装置である。
【００３４】
請求項２０記載の発明は、画像入出力手段、ネットワーク接続手段、画面表示部および請求項１から１７のいずれか１項に記載の画面共有クライアントの機能を持つ情報処理部を有し、請求項１から１７のいずれか１項に記載のネットワークコンピューティングシステムにおいて、クライアント端末として機能し、仮想ＰＣを遠隔操作することを特徴とする画像入出力装置である。
【００３５】
請求項２１記載の発明は、実際の表示装置に出力することなく、画面データをメモリ上に仮想画面として出力するビデオドライバにより画面データを出力し、メモリから画面データを取得する画面共有サーバーの画面データ取得方法である。
【００３６】
請求項２２記載の発明は、請求項２１記載の画面データ取得方法において、ビデオドライバは、画面データを画面共有サーバーが画面共有クライアントに転送するのと同一の形式でエンコードしてメモリ上に出力する機能を有することを特徴とする。
【発明の効果】
【００３７】
本発明によれば、ネットワークコンピューティングシステムを高速かつ高効率でユーザーが利用できるようにすることができる。
【発明を実施するための最良の形態】
【００３８】
次に、本発明の第１の実施の形態について図を参照して詳細に説明する。
【００３９】
図１を参照して本実施の形態におけるネットワークコンピューティングシステムの構成を説明する。
【００４０】
ホストサーバー上では、Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣのような仮想ＰＣソフトが起動しており、複数の仮想ＰＣが起動している。各仮想ＰＣ上には、例えば、ＶＮＣ  Ｓｅｒｖｅｒのような画面共有サーバーが起動している。
【００４１】
また、ホストサーバー上には仮想ＰＣの接続を管理するサービスが起動している。
【００４２】
クライアント端末は、ＶＮＣ  Ｖｉｅｗｅｒのような画面共有クライアントと、接続管理ソフトが起動できる環境になっている。
【００４３】
クライアント端末は上記２つのソフトウェアが起動できることを最小システム要件とする、いわゆるシンクライアントでよく、通常のＰＣで用いるアプリケーションが起動する性能を持っている必要はない。
【００４４】
接続管理サーバーは、主にクライアント端末上で起動する画面共有クライアントと、ホストサーバー上で起動する仮想ＰＣ上で起動する画面共有サーバーが接続するのを仲介する機能を有している。
【００４５】
また、接続管理サーバーでは、仮想ＰＣのネットワークアドレスと所有者の識別子等を関連付けて管理している。
【００４６】
ホストサーバー、クライアント端末、接続管理サーバーはＬＡＮで接続されている。
【００４７】
接続管理サーバーはホストサーバーが兼ねていてもよい。
【００４８】
ホストサーバーは本システム上に複数台あってもよい。
【００４９】
また、ホストサーバーは、図２のように、グリッドコンピューティング技術により複数のＰＣで構築してもよいし、図３のようにＶＭＷａｒｅ社のＶＭＷａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒのように、複数のＰＣで仮想ＰＣ実行環境を構築するソフトウェアを用いて、複数のＰＣからなるホストサーバーを構築してもよい。
【００５０】
以下に、接続までの動作例を示す。
【００５１】
接続管理サーバーは、ユーザーＩＤ、パスワード、ホストサーバーのＩＰアドレス、仮想ＰＣのＩＰアドレス、仮想ＰＣのホスト名を管理しているとする。
【００５２】
仮想端末にはＩＣカードリーダーが備え付けられており、ユーザーは個人情報をＩＣカードに記憶して持ち歩いているとする。
【００５３】
以下の接続管理サーバー動作フローを図４を用いて説明する。
【００５４】
ユーザーはＩＣカードをクライアント端末のカードリーダーに通しパスワードを入力して認証を行い、これが成功すると、クライアント端末の接続管理ソフトは、接続管理サーバーに対して、得られたユーザーＩＤの照合を依頼する。
【００５５】
接続管理サーバーは、問い合わされたユーザーＩＤが有効であるかを検索し、有効なデータが見つかると、クライアント端末に対してユーザーの仮想ＰＣのＩＰアドレスを返信する。
【００５６】
クライアント端末の接続管理ソフトは、画面共有クライアントを起動し、受信したＩＰアドレスの画面共有サーバーに接続するよう指示する。
【００５７】
以下の、仮想ＰＣ動作フローを図５を用いて説明する。
【００５８】
ここで、仮想ＰＣが他のクライアント端末との接続が有効になったままであれば、画面共有サーバーはクライアントを切断する共に、クライアント端末のＣＤ−ＲＯＭドライブ等のリソースを利用している場合はそれらを開放する。このように、ユーザーがクライアント端末から仮想ＰＣに画面共有接続する場合、排他的に接続することによりセキュリティ強度を上げる。
【００５９】
新たに接続を開始したクライアント端末は、画面共有クライアントを仮想ＰＣの画面共有サーバーに接続すると、ホストサーバー上の仮想ＰＣを遠隔操作可能な状態になる。
【００６０】
さらに、クライアント端末のハードウェアリソースを仮想ＰＣから利用できるように設定を行う。クライアント端末の接続管理ソフトは、クライアント端末のハードウェア情報を送信する。例えば、クライアント端末にはフロッピー（登録商標）ディスクドライブ、ＣＤ−ＲＯＭドライブが付属しており、プリンタとスキャナがＵＳＢケーブルで接続されているとする。これらの情報を仮想ＰＣに送信する。仮想ＰＣの接続管理ソフトは、これらの情報を受信すると、ハードウェアの共有を開始する。
【００６１】
例えば、まず仮想ＰＣからフロッピー（登録商標）ディスクドライブの利用要求が、クライアント端末に対してなされると、クライアント端末は、接続中の仮想ＰＣがフロッピー（登録商標）ディスクドライブをネットワークドライブとして利用できるよう設定を行い、仮想ＰＣ側は共有フォルダとしてこのネットワークドライブを利用できるようにし、仮想ＰＣ上でフロッピー（登録商標）ディスクドライブ（通常Ａドライブ）を選択すると、この共有フォルダにアクセスするよう仮想ＰＣの実行環境の設定変更を行う。ＣＤ−ＲＯＭドライブに関しても同様に行う。
【００６２】
また、スキャナはＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ Ｐｌｕｇ＆Ｐｌａｙ）に対応であるとすると、仮想ＰＣはＵＰｎＰを介して、スキャナをネットワークスキャナとして認識して利用できるようにすることができる。
【００６３】
または、クライアント端末のボード上の汎用ＵＳＢハブ自体をＵＰｎＰに対応させることにより、クライアント端末に差し込まれた任意のＵＳＢデバイスをＵＰｎＰにより、仮想ＰＣから操作できるようにすることも可能である。
【００６４】
ＣＤ−ＲＯＭやフロッピー（登録商標）ディスクドライブ等に関しても同様である。
【００６５】
また、図６のように、クライアント端末上にもＰＣ環境をエミュレーションするソフトを実行して仮想ＰＣ環境を構築し、ホストサーバー上の仮想ＰＣソフトと通信することにより、ホストサーバーの仮想ＰＣ実行環境に、クライアント端末のハードウェアリソースをエミュレートし、ネットワークを介して利用できるようにすることで、仮想ＰＣがクライアント端末のハードウェアをネットワークを介したエミュレーションを通じて利用できるようにすることも可能である。つまり、ＴＣＰ／ＩＰ通信を介して、クライアント端末のハードウェアが、恰も仮想ＰＣに接続されているかのようなハードウェアエミュレーションを行うことにより、仮想ＰＣは、クライアント端末のハードウェアリソースを利用することができる。
【００６６】
この場合、クライアント端末は、ＶＭＷａｒｅ  ＥＳＸ  Ｓｅｒｖｅｒでホストとして起動可能な高スペックを満たす必要はなく、特にＣＰＵパワーや大容量メモリを必要としないシンクライアントでも問題なく利用できる。
【００６７】
なお、クライアント端末には、パスワード認証の他にも、指紋、声紋、虹彩、静脈等のバイオメトリクス認証手段を備えても良く、これらの特徴情報を接続管理サーバーに問い合わせて認証を行うようにしてもよい。
【００６８】
仮想ＰＣの設定情報及びそのハードディスクデータは必ずしも仮想ＰＣを起動するホストサーバー上にある必要はなく、ホストサーバーからアクセス可能な他のＰＣ上にあってもよい。
【００６９】
図７のように、ＬｉｎｕｘＯＳが起動しているＰＣ上にＳａｍｂａを起動し、ホストサーバーからファイルアクセスできるようにしておき、仮想ＰＣのデータ（仮想ＰＣの設定情報及びそのハードディスクデータ）を管理することであってもよい。
【００７０】
仮想ＰＣの設定情報及びそのハードディスクデータはホストサーバーとは別のＰＣまたは、複数のＰＣから構成されるネットワークストレージ上に記録されており、現在クライアント端末の近くにあるホストサーバー上で、ユーザーの仮想ＰＣの設定情報を読み込んで仮想ＰＣを起動するようにしてもよい。
【００７１】
または、仮想ＰＣの設定情報及びそのハードディスクデータは、実際に仮想ＰＣを起動するのとは異なる他のホストサーバー上にあってもよい。
【００７２】
上記の本実施の形態によれば、画面共有で仮想ＰＣを遠隔操作しているクライアント端末のＣＤ−ＲＯＭドライブ、フローピーディスクドライブを等のハードウェアリソースを、操作中の仮想ＰＣからアクセスできるようになり、あたかもクライアント端末で起動しているかのように、ハードウェアリソースも含めて仮想ＰＣを自由に利用できるようになる。
【００７３】
また、排他接続制御により、端末から仮想ＰＣへのアクセスが安全になる。また、クライアント端末のハードウェアリソースも同時に管理でき、どの端末からもあたかもクライアント端末で起動しているかのように、ハードウェアリソースも含めて仮想ＰＣを自由に利用できるようになる。
【００７４】
また、接続を管理するサーバーによって、端末から自分の仮想ＰＣへの接続が容易になると共に、ＩＣカードや指紋や動脈情報の認証手段を組み合わせることにより、セキュアな方法で接続することが可能となる。
【００７５】
次に、本発明の第２の実施の形態について説明する。（仮想ＰＣ停止時起動＋ホストサーバーの画面共有サーバー利用）
【００７６】
図８のクライアント端末の動作フローを参照すると、クライアント端末から画面共有の要求を行った時に、ユーザーの仮想ＰＣが起動していない場合、接続管理サーバーは仮想ＰＣを起動するホストサーバーのＩＰアドレスを参照し、そのホストサーバーに対して、ユーザーの仮想ＰＣを起動するように指示を出す。
【００７７】
ホストサーバーは、仮想ＰＣソフトに対し、その仮想を起動するよう指示を出す。
【００７８】
さらに、ユーザーが仮想ＰＣのＢＩＯＳ設定を行いたい場合のように、仮想ＰＣの画面共有サーバーが起動していない状態で仮想ＰＣを遠隔操作したい場合は以下のように動作する。
【００７９】
図９のホストサーバーの動作フロー図を参照すると、ユーザーが画面共有の要求を行い、仮想ＰＣに起動命令を出したが、仮想ＰＣの画面共有サーバーは未起動である場合は、接続管理サーバーは、仮想ＰＣの起動を開始したホストサーバーに対して、画面共有サーバーを起動すると共に、仮想ＰＣの実行画面をホストサーバーのデスクトップ画面に表示するように指示を出す。
【００８０】
ホストサーバーがこれらの指示を実行すると、接続管理サーバーは、クライアント端末に対し、ホストサーバーの画面共有サーバーに接続するよう指示する。
【００８１】
指示を受けたクライアント端末の接続管理ソフトは画面共有クライアントを干すとサーバーの画面共有サーバーに接続させる。
【００８２】
なお、ホストサーバー上で起動する画面共有サーバーは、共有可能領域を制限し、仮想ＰＣの実行画面以外はホストサーバーを操作できないように制限することが望ましい。
【００８３】
さらに、ホストサーバーは、仮想ＰＣの画面共有サーバーの起動を定期的に確認する機能を設け、起動を確認すると、ホストサーバー上の画面共有サーバーとクライアント端末上の画面共有クライアントとの接続を切断し、仮想ＰＣ上の画面共有サーバーと接続を交代するよう、クライアント端末の接続管理ソフトに通知する機能を追加することにより、不要にホストサーバーのリソースを消費しないで済むようにすることができる。
【００８４】
上記の本実施の形態によれば、仮想ＰＣが起動していない場合に、クライアント端末から仮想ＰＣを起動することが可能となる。また、仮想ＰＣの画面共有サーバーが起動していない状態でも、クライアント端末から仮想ＰＣの画面を共有できるようになる。
【００８５】
次に、本発明の第３の実施の形態について説明する。（各仮想ＰＣにアドレス割り当て＋仮想ＮＷ＋仮想ＰＣ間専用回線）
【００８６】
図１０に本実施の形態におけるネットワークコンピューティングシステムの構成図を示す。
【００８７】
各仮想ＰＣは、ホストサーバーのネットワークアダプタを物理的に利用し、ＩＰアドレスとしてＬＡＮの内部で他のＰＣと直接通信が可能なローカルアドレスを取得する。
【００８８】
例えば、Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣでは、ネットワークカードをプロミスキャスモードにし、特別に生成したＭＡＣアドレスで通信できるようにすることにより実現している。本発明でも同様の方法を利用するものとする。
【００８９】
各仮想ＰＣは、この方法により他のＰＣやホストサーバー、及び仮想ＰＣ同士でＴＣＰ／ＩＰレベルの通信を行うものとする。
【００９０】
この方法により、図１０の例のように、ホストサーバー１のＩＰアドレスが１３３．１３９．１．１０である場合に、ネットワークアダプタをプロミスキャスモードを利用して共有することにより、仮想ＰＣ１から３はそれぞれ、１３３．１３９．１．１１から１３３．１３９．１．１３のＩＰアドレスをそれぞれ利用して、通信することができる。
【００９１】
加えて、仮想ＰＣ間でのみ通信可能なネットワークを構築する。Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣでは、「ローカル」ネットワークと呼ばれる機能があり、これはホストサーバーのネットワークアダプタは利用せず、仮想的なネットワークアダプタで、仮想ＰＣ間のみ通信可能なネットワークを構築するものである。同一ホスト上の仮想ＰＣ間の通信はこのローカルネットワークを利用することにより、通信を高速にすることができる。
【００９２】
図１０の例では、仮想ＰＣ１から３はそれぞれ、１６９．２５４．６０．１から１６９．２５４．６０．３のＩＰアドレスをそれぞれ割り当てられ、同一のホストサーバー上で起動している仮想ＰＣ間のみで通信することができる。
【００９３】
特に、第１のローカルアドレスを利用する通信では、仮想ＰＣとクライアント端末の画面共有の通信に利用されるので、ネットワークトラフィックが多いため、ＴＣＰ／ＩＰレベルでホストサーバーのネットワークアダプタを介して通信を行うと、通信速度が低下する可能性がある。そこで、同一ホストサーバー上の仮想ＰＣ間の通信はローカルネットワークで行うことにより、仮想ＰＣとクライアント端末間の画面共有のネットワークトラフィックに妨害されることなく、またネットワークホストサーバーの通信負荷を上げることなく通信することが可能となる。
【００９４】
さらに仮想ＰＣ間専用回線を追加する例を図１１を用いて説明する。
【００９５】
ホストサーバーはさらに第１のネットワークアダプタとは異なる第２のネットワークアダプタを備え、異なるホストサーバー上で起動する仮想ＰＣ同士が通信するための通信経路を設ける。第１の通信方法と同様に、仮想ＰＣは第２のネットワークアダプタを物理的に利用して、外部のネットワークと直接通信を行う。
【００９６】
ホストサーバー１で起動する仮想ＰＣ１から３はそれぞれ、１９２．１６８．９．２１から１９２．１６８．９．２３のＩＰアドレスをそれぞれ利用し、ホストサーバー２で起動する仮想ＰＣ４、５はそれぞれ、１９２．１６８．９．２４、１９２．１６８．９．２５のＩＰアドレスをそれぞれ利用するものとする。
【００９７】
ただし、第２のネットワークアダプタは、ホストＰＣ上の仮想ＰＣ同士が通信を行うための専用のネットワーク回線で他のホストサーバーと接続されており、ホストサーバーがクライアント端末と通信するネットワーク回線とは分離されているとする。異なるホストサーバー上の仮想ＰＣ同士が通信する場合は、第２のネットワークアダプタを利用し、この第２のネットワーク回線を経由して通信する。これにより、仮想ＰＣとクライアント端末間の画面共有のネットワークトラフィックに妨害されることなく通信することが可能となる。
【００９８】
さらに、各ネットワーク毎に通信を許可するＩＰアドレスのフィルタリングを行ったり、ファイヤーウォール設定を行うことにより、特定の通信を禁じたり、特定のネットワーク経路を通じて通信するよう設定することが可能となる。
【００９９】
以下に、図１０に示したネットワークコンピューティングシステムの構成の別例を説明する。図１２のように、ホストサーバーが複数のネットワークアダプタを備え、それぞれ異なるネットワークに接続しており、仮想ＰＣ１と２は、１３３．１３９．１．Ｘ系のネットワークに接続されたネットワークアダプタ１を利用して、１３３．１３９．１．Ｘ系のアドレスで通信し、仮想ＰＣ３は、１３３．１３９．５５．Ｘ系のネットワークに接続されたネットワークアダプタ２を利用して、１３３．１３９．５５．Ｘ系のアドレスで通信するようにし、かつ仮想ＰＣ１から３は、それぞれ１６９．２５４．６０．１から１６９．２５４．６０．３のプライベートアドレスを割り当てられた仮想ＰＣ間のローカルネットワークで通信できるようにすることができる。
【０１００】
この場合、１つのホストサーバー上で、１つのサブネットで利用可能なＩＰアドレス数より多い数の仮想ＰＣを起動することができる。例えば、サブネットマスクが２５５．２５５．２５５．０のネットワークの場合、２５５台以上の仮想ＰＣを、１台のホストサーバー上で起動するとともに、各仮想ＰＣにＬＡＮ内で他のＰＣと直接通信できるローカルアドレスを割り当てることが可能となる。
【０１０１】
上記の本実施の形態によれば、クライアント端末から仮想ＰＣへの通信及び仮想ＰＣ同士の通信が、ＩＰアドレスを指定して直接行うことが可能となり、ユーザーが行う通信、その設定及びネットワーク構築が容易となる。さらに、同一ホストサーバー上の仮想ＰＣ間で仮想ネットワークを構成することにより、仮想ＰＣ間の通信が高速になる。
【０１０２】
また、複数のホストサーバーを、異なるホストサーバー上の仮想ＰＣ間通信が専用で通信を行う回線で接続することにより、異なるホストサーバーで起動する仮想ＰＣ間の通信を拘束にすることができる。
【０１０３】
次に、本発明の第４の実施の形態について説明する。（ＮＡＴ制限＋仮想ＮＷ＋仮想ＰＣ間専用回線＋ルーティング仮想ＰＣ）
【０１０４】
各仮想ＰＣは、ホストサーバーのネットワークアダプタを共有して利用し、外部との通信はホストサーバーによって提供されるＮＡＴを利用する。ＩＰアドレスとしては、ホストサーバーから割り当てられるプライベートアドレスを用い、外部と通信する場合は、ホストサーバーのＮＡＴ機能により、ホストサーバーのＩＰアドレスを付け替えて通信するものとする。
【０１０５】
例えば、Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣでは、「共有ネットワーク」と呼ばれる、ネットワーク構成方法及び「Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒ」を用いてループバックアダプタを用いるネットワーク構成方法がある。
【０１０６】
まずは、「共有ネットワーク」で、ＮＡＴで外部のネットワークから隔離され、仮想ＰＣ同士の通信も不可能なネットワーク構成を行った場合について、図１３を用いて述べる。
【０１０７】
仮想ＰＣ１〜３は、ホストサーバーからそれぞれ１６９．２５４．８．１から１６９．２５４．８．３のＩＰアドレスを割り当てられ、１３３．１３９．１．１０１のＩＰアドレスを持つクライアント端末１等のホストサーバー外部のネットワーク上にある機器と通信する場合は、ホストサーバーのＮＡＴ機能を利用する。この構成の場合、外部の機器からの通信をＮＡＴによって制限でき、且つ同一ホストサーバー上で起動する仮想ＰＣ間ですら直接通信できないので、仮想ＰＣ同士外部のネットワーク機器から攻撃されるのを防いだり、仮想ＰＣ間で勝手な通信を行えないようにすることが可能となり、セキュリティ強度を向上させることができる。
【０１０８】
この外部とはホストサーバーのＮＡＴ機能を利用して通信する共有ネットワークに加えて、仮想ＰＣ間でのみ通信可能なネットワークを構築する。Ｍｉｃｒｏｓｏｆｔ社のＶｉｒｔｕａｌ  ＰＣでは、「ローカル」ネットワークと呼ばれる機能があり、これはホストサーバーのネットワークアダプタは利用せず、仮想的なネットワークアダプタで、仮想ＰＣ間のみ通信可能なネットワークを構築するものである。同一ホスト上の仮想ＰＣ間の通信はこのローカルネットワークを利用することにより、通信を高速にすることができる。
【０１０９】
図１３の例では、仮想ＰＣ１から３はそれぞれ、１６９．２５４．６０．１から１６９．２５４．６０．３のＩＰアドレスをそれぞれ割り当てられ、同一のホストサーバー上で起動している仮想ＰＣ間のみで通信することができる。
【０１１０】
特に、第１のローカルアドレスを利用する通信では、仮想ＰＣとクライアント端末の画面共有の通信に利用されるので、ネットワークトラフィックが多いため、ＴＣＰ／ＩＰレベルでホストサーバーのネットワークアダプタを介して通信を行うと、通信速度が低下する可能性がある。そこで、同一ホストサーバー上の仮想ＰＣ間の通信はローカルネットワークで行うことにより、仮想ＰＣとクライアント端末間の画面共有のネットワークトラフィックに妨害されることなく、またネットワークホストサーバーの通信負荷を上げることなく通信することが可能となる。
【０１１１】
さらに、ホストサーバーは第１のネットワークアダプタとは異なる第２のネットワークアダプタを備え、異なるホストサーバー上で起動する仮想ＰＣ同士が通信するための通信経路を設ける。第１の通信方法と同様に、仮想ＰＣは第２のネットワークアダプタを物理的に利用して、外部のネットワークと直接通信を行う。
【０１１２】
ホストサーバー１で起動する仮想ＰＣ１から３はそれぞれ、１９２．１６８．９．２１から１９２．１６８．９．２３のＩＰアドレスをそれぞれ利用し、ホストサーバー２で起動する仮想ＰＣ４、５はそれぞれ、１９２．１６８．９．２４、１９２．１６８．９．２５のＩＰアドレスをそれぞれ利用するものとする。
【０１１３】
ただし、第２のネットワークアダプタは、ホストＰＣ上の仮想ＰＣ同士が通信を行うための専用のネットワーク回線で他のホストサーバーと接続されており、ホストサーバーがクライアント端末と通信するネットワーク回線とは分離されているものとする。異なるホストサーバー上の仮想ＰＣ同士が通信する場合は、第２のネットワークアダプタを利用し、この第２のネットワーク回線を経由して通信する。これにより、仮想ＰＣとクライアント端末間の画面共有のネットワークトラフィックに妨害されることなく通信することが可能となる。
【０１１４】
さらに、各ネットワーク毎に通信を許可するＩＰアドレスのフィルタリングを行ったり、ファイヤーウォール設定を行うことにより、特定の通信を禁じたり、特定のネットワーク経路を通じて通信するよう設定することが可能となる。
【０１１５】
次に、「Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒ」によって、ネットワークを構成する場合について述べる。
【０１１６】
図１４にそのネットワークコンピューティングシステムの構成図を示す。
【０１１７】
以下、同一ホストサーバー上の仮想ＰＣ間の通信は可能な場合について述べる。まず、Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒについて簡単に説明する。Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒは、仮想的なネットワークアダプタとして機能するネットワークデバイスドライバであり、この仮想ネットワークアダプタによって、ネットワーク接続のエミュレーションができる。さらに、Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒでは、Ｗｉｎｄｏｗｓ（登録商標）のＩＣＳ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｎｅｃｔｉｏｎ  Ｓｈａｒｉｎｇ）サービスを利用することによって、実際のネットワークアダプタを介して外部のネットワークに接続できるようになっている。
【０１１８】
ホストサーバー１上で起動する仮想ＰＣ１から３が、ホストサーバーのループバックアダプタと接続するための仮想ネットワークアダプタのアドレスをそれぞれ、１９２．１６８．０．１１から１９２．１６８．０．１３と割り当てたとすると、これらの仮想ＰＣは、ホストサーバーのループバックアダプタ（ＩＰアドレス１９２．１６８．０．１）とハブで接続されたのと同様に通信が可能になる。さらにＩＣＳを利用することにより、ホストサーバー上の実際のネットワークアダプタを介して通信させることにより、あたかもホストサーバーがルーターのように機能する。Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒでは、実際のルーターのようにポート毎にＮＡＴの割り当てを設定することができるようになっている。
【０１１９】
このループバックアダプタを利用したネットワークでは、仮想ＰＣは同一ホストサーバー上の他の仮想ＰＣ及びホストサーバーと直接通信可能であり、外部のネットワーク機器、例えばクライアント端末１とは、ホストサーバーのＩＣＳ機能を利用した通信が可能となる。
【０１２０】
図１３で説明した例の、共有ネットワークをＭｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒに置換えた以外、ローカルネットワーク及び仮想ＰＣ間ネットワークに関する実施方法は、図１３の例と同一である。
【０１２１】
ローカルネットワークを構築することにより、仮想ＰＣ間の通信を、Ｍｉｃｒｏｓｏｆｔ  Ｌｏｏｐｂａｃｋ  Ａｄｏｐｔｅｒより若干高速化することができる。
【０１２２】
また、仮想ＰＣ間通信用に専用のネットワークを設けることにより、他のホストサーバー上の仮想ＰＣと直接通信することが可能となり、ＩＣＳを利用するよりも高速な通信が可能となる。
【０１２３】
上記の本実施の形態によれば、仮想ＰＣを外部ネットワークからの攻撃に対してセキュアにすることが可能となる。プライベートアドレスを割り当てることにより、１つのホストサーバー上で起動できる仮想ＰＣの台数を上限を増加できる。さらに、同一ホストサーバー上の仮想ＰＣ間で仮想ネットワークを構成することにより、仮想ＰＣ間の通信を高速化することができる。
【０１２４】
また、複数のホストサーバーを、異なるホストサーバー上の仮想ＰＣ間通信が専用で通信を行う回線で接続することにより、異なるホストサーバーで起動する仮想ＰＣ間の通信を拘束にすることができる。
【０１２５】
次に、本発明の第５の実施の形態について説明する。
【０１２６】
上記の第４の実施の形態のような、仮想ＰＣは外部のネットワークと接続するのにホストサーバーのＮＡＴを介して通信する場合、クライアント端末や接続管理サーバー等の外部のネットワークからは、直接仮想ＰＣに対して通信を開始することができないという問題がある。
【０１２７】
特に、共有ネットワークを利用した場合は、ホストサーバーから自身の起動している仮想ＰＣへの通信を開始することができないうえ、仮想ＰＣ同士は全く通信できない。
【０１２８】
ただし、ローカルネットワークでは仮想ＰＣ間通信は特に問題なく行える。
【０１２９】
本実施の形態では、仮想ＰＣのうち少なくとも１つに外部のネットワークと直接通信できるネットワークアドレスを割り当て、この仮想ＰＣがローカルネットワークへルーティングする機能を設けることにより解決する。以下、図１５を用いて説明する。
【０１３０】
仮想ＰＣ３は、第３の実施形態で述べたのと同じ方法で、外部のネットワークと直接通信できるものとする。仮想ＰＣ３は、ホストサーバー上で起動する他のＰＣのローカルネットワーク上でのＩＰアドレスと、受信ポート番号、送信ポート番号を関連付けらて管理し、特定の受信ポートで受信した通信内容を、関連付けられたＩＰアドレスの送信ポートにリダイレクトするよう設定する。
【０１３１】
例えば、クライアント端末１の画面共有クライアントが、仮想ＰＣ３の外部通信用ＩＰアドレス１３３．１３９．１．１３に１５９００番ポートでアクセスして通信の開始を要求すると、これを受信した仮想ＰＣ３は、関連付けられた情報を参照して、仮想ＰＣ１の１６９．２５４．６０．１の５９００番ポートにリダイレクトする。仮想ＰＣ１の画面共有サーバーはこのリダイレクトにより確立された接続により、接続を要求して来たクライアント端末１のＩＰアドレスを取得する。
【０１３２】
すると、仮想ＰＣ１の画面共有サーバーは、共有ネットワークのネットワークアドレスを用いて、ホストサーバー１のＮＡＴを介して、クライアント端末１の画面共有クライアントに対して通信を開始し、接続を確立することができる。
【０１３３】
この方法により、それぞれの仮想ＰＣに外部のネットワークと直接通信できるネットワークアドレスを割り当てるよりも、少ない総メモリリソースで仮想ＰＣとの通信峨可能となる。
【０１３４】
上記の本実施の形態によれば、利用できるポートを制限することにより、仮想ＰＣ間の通信を高速にしたり、セキュリティ強度を向上させることができる。
【０１３５】
また、ＮＡＴにより外部から仮想ＰＣへの接続が不可能な構成において、仮想ＰＣ間ネットワークへルーティングすることにより、外部から仮想ＰＣへの通信が可能になる。
【０１３６】
次に、本発明の第６の実施の形態について説明する。
【０１３７】
上記の第５の実施の形態のような構成で、仮想ＰＣは外部のネットワークと直接通信する必要がある場合のみ、外部のネットワークと直接通信できるネットワークアドレスを割り当て方法について述べる。
【０１３８】
図１５において各仮想ＰＣは図１０と同様、外部のネットワークと直接通信できるネットワークアドレスを利用できるよう設定する。ただし、各仮想ＰＣでは、このネットワークアダプタを無効に設定し、利用できないようにしておく。またこの接続を利用する場合は、ネットワークアドレスは固定アドレスではなく、ＤＨＣＰアドレスを取得するよう設定しておく。
【０１３９】
図１６の動作フローを参照すると、仮想ＰＣが外部のネットワークと直接通信する必要がある場合は、まず、ネットワークアダプタを有効にし、次にＤＨＣＰアドレスの取得を試みる。ＤＨＣＰアドレスが得られなかった場合は、ネットワークアダプタを再び無効にし、利用できないことを通知する。一方、ＤＨＣＰアドレスが取得できた場合は、取得したＤＨＣＰアドレスで外部との通信が可能となる。
【０１４０】
また、図１７の動作フローのように、このＤＨＣＰアドレスの有効時間を制限し、ＤＨＣＰアドレスを自動では連続利用できないようＤＨＣＰサーバーを設定し、仮想ＰＣはＤＨＣＰアドレスが開放され一定時間が経過すると、自動的にこのネットワークアダプタを無効にすることにより、ネットワークを効率良く利用するようにすることができる。
【０１４１】
上記の本実施の形態によれば、必要に応じてローカルアドレスを取得することにより、外部との直接通信を行うことが可能となる。
【０１４２】
次に、本発明の第７の実施の形態について説明する。
【０１４３】
ＲＡＭディスクは、ハードディスクと同様にストレージデバイスとして利用可能なＲＡＭである。読み書きを行う実体はメモリ（ＲＡＭ）であるため、ハードディスクのような複雑なデバイス制御が不要であり、かつアクセスが高速であるため、非常に高速にデータの読み書きを行うことができる。
【０１４４】
ＲＡＭディスクを利用するには、ＰＣＩバス用ＲＡＭボードを用いる方法と、ＰＣのメインメモリをＲＡＭディスクとして認識させるソフトを用いる方法がある。後者の例としては、ＡＲ  Ｓｏｆｔ社の「ＡＲ  ＲＡＭ  Ｄｉｓｋ」や、「えらー１５さん」氏作成による「ＥＲＡＭ」が知られている。
【０１４５】
仮想ＰＣ間の通信にＲＡＭディスクを利用することにより、メガバイト単位の大量のデータのやりとりが高速で行えるようになる。例えば、後述する仮想ＰＣ間で画面データの送信を行う場合に、一方の仮想ＰＣが画面データをＲＡＭディスクに出力し、他方の仮想ＰＣが画面データをＲＡＭディスクから読み込むことにより、仮想ＰＣ間で高速な画面共有が可能となる。
【０１４６】
実際の実施用法としては、ホストサーバー上でＲＡＭディスクを用意し、仮想ＰＣから利用可能できるよう、アクセス権の設定を行う。
【０１４７】
仮想ＰＣは、外部と直接通信可能なネットワークアドレスを割り当てられているか、共有ネットワークか、ループバックアダプタのいずれかのネットワーク構成方法により、ホストサーバーへのＴＣＰ／ＩＰアクセスが可能であるとする。これらのいずれかの設定を行っており、ＲＡＭディスクへのアクセス権があれば、ホストサーバーのＲＡＭディスクをネットワークドライブとして割り当てることが可能となる。
【０１４８】
このネットワークドライブとして割り当てたＲＡＭディスクを、仮想ＰＣ間通信のバッファとしてメモリを共有することが可能となる。
【０１４９】
例えば、図１５でホストサーバー１のＲＡＭのうち２５６ＭバイトがＲＡＭディスクドライブとして、ラベル「Ｒ」ドライブで利用可能であるとして、仮想ＰＣ１及び仮想ＰＣ２はネットワークドライブとして、「￥￥１３３．１３９．１．１０￥Ｒ」フォルダを「Ｚ」ドライブに割り当てることにより、ＲＡＭディスクが「Ｚ」ドライブとして利用可になる。
【０１５０】
別の方法として、仮想ＰＣの設定において、仮想ＰＣの利用するハードディスクとして、このＲＡＭディスクを割り当てておけば、ネットワーク構築方法に依らずに利用することもできる。
【０１５１】
上記の本実施の形態によれば、仮想ＰＣ間及び仮想ＰＣとホストサーバーとの間で、必要に応じて大量のデータを高速に通信することが可能となる。
【０１５２】
次に、本発明の第８の実施の形態について説明する。（仮想ＰＣに複数の端末接続＋マルチキャスト自動設定）
【０１５３】
ネットワークコンピューティングシステムで、仮想ＰＣの画面を複数のクライアント端末で共有する場合である。例えば、会議等において、会議室にクライアント端末が各席に備えられているとする。各参加者は、クライアント端末でログオンすることにより、自分の仮想ＰＣに画面共有によりアクセスする。
【０１５４】
次に、会議を開始する。発表者が自分のクライアント端末上に、自分の仮想ＰＣ上で開いた発表資料を表示する。発表者は他の参加者にも同じ画面を共有してもらうよう操作する。
【０１５５】
今、クライアント端末の接続管理ソフトは、図１８のような機能構成になっており、会議のメンバを管理する機能や、画面共有クライアントの接続の管理や、画面共有クライアントの操作権の付与の制御を行う機能があるとする。また、詳細は後述するが、クライアント端末に画面共有サーバーや画面共有プロキシが起動可能な場合は、その制御が可能であるとする。
【０１５６】
図１９を用いて、接続管理ソフトの接続管理方法の一例について説明する。
【０１５７】
今、クライアント端末１のユーザー（ユーザー１とする）が会議の発表者であるとし、ユーザー２が操作しているクライアント端末２にも同一の画面を共有表示させようとしているとする。クライアント端末１の接続管理ソフトでは、クライアント端末１のＩＰアドレス、のユーザー１の仮想ＰＣ（仮想ＰＣ１とする）のＩＰアドレス、クライアント端末２のＩＰアドレス、ユーザー２の仮想ＰＣ（仮想ＰＣ２とする）のＩＰアドレスを管理している。
【０１５８】
ユーザー１は接続管理ソフトによって、会議の参加者であるユーザー２のクライアント端末２に自分の仮想ＰＣ１の画面を共有表示を指示すると、クライアント端末１と２の接続管理ソフト間で通信が行われ、クライアント端末２の画面共有クライアントは、仮想ＰＣ１の画面共有サーバーに接続するよう指示される。クライアント端末２の画面共有クライアントが仮想ＰＣ１の画面共有サーバーに接続することにより、クライアント端末２にもクライアント端末１と同じく仮想ＰＣ１の画面が表示され、会議の資料を同じ画面で閲覧することが可能となる。
【０１５９】
簡単のためクライアント端末の数を２つで説明したが、クライアント端末数は３台以上であってもよい。
【０１６０】
さらに、この接続形態において、通信を効率良くする方法について述べる。
【０１６１】
ここで、画面共有クライアント／サーバーがブロードキャスト、もしくはマルチキャストによって画面データの受送信が可能であるとする。
【０１６２】
今、クライアント端末１とクライアント端末２が同一のサブネット上にあるとし、そのＩＰアドレスがそれぞれ、１３３．１３９．１．１０１、１３３．１３９．１．１０２であるとすると、クライアント端末１の接続管理ソフトは他の参加者（この例ではクライアント端末２のみ）に対して、画面データをポート番号５９００番にブロードキャストすることを通知する。各クライアント端末はＵＤＰ５９００番でパケットを受信できるよう設定する。すると、仮想ＰＣ１の画面共有サーバーからＩＰアドレス１３３．１３９．１．２５５に対してブロードキャストされた画面データのパケットを受信して、クライアント端末上に仮想ＰＣ１の画面を表示することが可能となる。
【０１６３】
次に、マルチキャストを用いる場合についても同様に説明する。
【０１６４】
クライアント端末１の接続管理ソフトは他の参加者（この例ではクライアント端末２のみ）に対して、画面データをポート番号５９９０番、マルチキャストアドレス２２４．１０．１０．１０でマルチキャストすることを通知する。
【０１６５】
各クライアント端末はＵＤＰ５９９０番でマルチキャストアドレス２２４．１０．１０．１０パケットを受信できるよう設定する。すると、仮想ＰＣ１の画面共有サーバーからポート５９９０番でマルチキャストアドレス２２４．１０．１０．１０に対してマルチキャストされた画面データのパケットを受信して、クライアント端末上に仮想ＰＣ１の画面を表示することが可能となる。
【０１６６】
接続管理ソフトは、他の画面共有サーバーとマルチキャストアドレスやポート番号が重複しないよう適当なアドレスをポートを選択する。あるいは、接続管理サーバーが、マルチキャストアドレスとポート番号を管理し、接続管理ソフトに対して、利用するマルチキャストアドレスとポート番号を指示するようにしてもよい。
【０１６７】
ＩＰｖ４の例で説明したが、ＩＰｖ６であってもよい。また、ＩＰｖ６のマルチキャストを利用すると、ＩＰｖ４の場合よりも通信効率を向上させることができる。
【０１６８】
上記の本実施の形態によれば、マルチキャストを利用して、複数の画面共有クライアントが、画面共有サーバーもしくはプロキシからデータを受信する場合に、画面共有クライアントに対してマルチキャストアドレスやポート番号を通知することによって、ユーザーが特に手動で設定を行わなくても、マルチキャストを用いて、効率良く複数のクライアント端末で共通の仮想ＰＣの画面を共有することを可能にするが可能となる。
【０１６９】
次に、本発明の第９の実施の形態について説明する。（仮想ＰＣ間で画面共有＋マルチキャスト自動設定）
【０１７０】
図２０を用いて、接続管理ソフトの接続管理方法の別例について説明する。
【０１７１】
今、クライアント端末１のユーザー（ユーザー１とする）が会議の発表者であるとし、ユーザー２が操作しているクライアント端末２にも同一の画面を共有表示させようとしているとする。クライアント端末１の接続管理ソフトでは、クライアント端末１のＩＰアドレス、のユーザー１の仮想ＰＣ（仮想ＰＣ１とする）のＩＰアドレス、クライアント端末２のＩＰアドレス、ユーザー２の仮想ＰＣ（仮想ＰＣ２とする）のＩＰアドレスを管理している。
【０１７２】
また、各仮想ＰＣ上でも、クライアント端末と同様に画面共有クライアントと接続管理ソフトが起動可能であるとする。
【０１７３】
ユーザー１は接続管理ソフトによって、会議の参加者であるユーザー２のクライアント端末２に自分の仮想ＰＣ１の画面を共有表示を指示すると、クライアント端末１と仮想ＰＣ２の接続管理ソフト間で通信が行われ、仮想ＰＣ２の画面共有クライアントは、仮想ＰＣ１の画面共有サーバーに接続するよう指示される。仮想ＰＣ２の画面共有クライアントが仮想ＰＣ１の画面共有サーバーに接続することにより、クライアント端末２には、仮想ＰＣ１の画面を共有表示した状態である仮想ＰＣ２の画面が表示されるので、結果として仮想ＰＣ１の画面が表示される。
【０１７４】
クライアント端末１と同じく仮想ＰＣ１の画面が表示され、会議の資料を同じ画面で閲覧することが可能となる。
【０１７５】
仮想ＰＣ１と仮想ＰＣ２が同一ホストサーバー上にあり、通信は高速であるが、クライアント端末１とクライアント端末２がネットワーク上の離れた場所にある場合は、実施例８の通信方法よりもネットワーク効率がよくなることがある。
【０１７６】
また、上記の第８の実施の形態の場合と比べると、クライアント端末の画面共有クライアントの接続先を追加もしくは変更する必要がないことが長所として挙げられる。
【０１７７】
簡単のためクライアント端末の数を２つで説明したが、クライアント端末数は３台以上であってもよい。
【０１７８】
上記の第８の実施の形態の場合と同様に、接続管理ソフトがアドレスやポートの指示を行い、仮想ＰＣ間でブロードキャストやマルチキャストで画面共有するようにしてもよい。
【０１７９】
上記の本実施の形態によれば、仮想ＰＣとクライアント端末の接続を変更することなく、１つの仮想ＰＣ画面を複数のクライアント端末で共有できる。同一のホストサーバー上の仮想ＰＣ間で画面共有する場合に、ホストサーバー上の仮想ネットワーク上で処理することにより、通信効率を向上させることができる。
【０１８０】
また、マルチキャストを利用して、複数の画面共有クライアントが、画面共有サーバーもしくはプロキシからデータを受信する場合に、画面共有クライアントに対してマルチキャストアドレスやポート番号を通知することによって、ユーザーが特に手動で設定を行わなくても、マルチキャストを用いて、効率良く複数のクライアント端末で共通の仮想ＰＣの画面を共有することを可能にするが可能となる。
【０１８１】
次に、本発明の第１０の実施の形態について説明する。（クライアント端末間で画面共有＋マルチキャスト自動設定）
【０１８２】
図２１を用いて、接続管理ソフトの接続管理方法の別例について説明する。
【０１８３】
今、クライアント端末１のユーザー（ユーザー１とする）が会議の発表者であるとし、ユーザー２が操作しているクライアント端末２にも同一の画面を共有表示させようとしているとする。クライアント端末１の接続管理ソフトでは、クライアント端末１のＩＰアドレス、のユーザー１の仮想ＰＣ（仮想ＰＣ１とする）のＩＰアドレス、クライアント端末２のＩＰアドレス、ユーザー２の仮想ＰＣ（仮想ＰＣ２とする）のＩＰアドレスを管理している。
【０１８４】
また、各クライアント端末上でも、画面共有サーバーが起動可能であるとする。
【０１８５】
ユーザー１は接続管理ソフトによって、会議の参加者であるユーザー２のクライアント端末２に自分の仮想ＰＣ１の画面を共有表示を指示すると、クライアント端末１とクライアント端末２の接続管理ソフト間で通信が行われ、まず、クライアント端末１上で画面共有サーバーを起動させる。クライアント端末２の画面共有クライアントは、クライアント端末１の画面共有サーバーに接続するよう指示される。クライアント端末２の画面共有クライアントがクライアント端末１の画面共有サーバーに接続することにより、クライアント端末２には、仮想ＰＣ１の画面を共有表示した状態であるクライアント端末１の画面が表示されるので、結果として仮想ＰＣ１の画面が表示される。
【０１８６】
クライアント端末１と同じく仮想ＰＣ１の画面が表示され、会議の資料を同じ画面で閲覧することが可能となる。
【０１８７】
セキュリティ等、何らかの理由でクライアント端末２が仮想ＰＣ１の画面共有サーバーにアクセスできない場合、仮想ＰＣ２が仮想ＰＣ１を画面共有することもできない場合に、この方法により、クラアイントＰＣ２が仮想ＰＣ１の画面を共有することができるようになる。
【０１８８】
仮想ＰＣ１と仮想ＰＣ２が同一ホストサーバー上にあり、通信は高速であるが、クライアント端末１とクライアント端末２がネットワーク上の離れた場所にある場合は、実施例８の通信方法よりもネットワーク効率がよくなることがある。
【０１８９】
また、上記の第８の実施の形態の場合と比べると、クライアント端末の画面共有クライアントの接続先を追加もしくは変更する必要がないことが長所として挙げられる。
【０１９０】
簡単のためクライアント端末の数を２つで説明したが、クライアント端末数は３台以上であってもよい。
【０１９１】
上記の第８の実施の形態の場合と同様に、接続管理ソフトがアドレスやポートの指示を行い、クライアント端末間でブロードキャストやマルチキャストで画面共有するようにしてもよい。
【０１９２】
上記の本実施の形態によれば、仮想ＰＣとクライアント端末の接続を維持した状態で、１つの仮想ＰＣ画面を複数のクライアント端末で共有できる。複数のクライアント端末で共通の仮想ＰＣの画面を共有する場合において、仮想ＰＣの負荷を減らすと共に、ネットワークの送通信量を減少させ、通信効率を向上させることができる。
【０１９３】
次に、本発明の第１１の実施の形態について説明する。（端末がプロキシ機能＋マルチキャスト自動設定）
【０１９４】
図２２を用いて、接続管理ソフトの接続管理方法の別例について説明する。
【０１９５】
今、クライアント端末１のユーザー（ユーザー１とする）が会議の発表者であるとし、ユーザー２が操作しているクライアント端末２にも同一の画面を共有表示させようとしているとする。クライアント端末１の接続管理ソフトでは、クライアント端末１のＩＰアドレス、のユーザー１の仮想ＰＣ（仮想ＰＣ１とする）のＩＰアドレス、クライアント端末２のＩＰアドレス、ユーザー２の仮想ＰＣ（仮想ＰＣ２とする）のＩＰアドレスを管理している。
【０１９６】
また、各クライアント端末上では、画面共有サーバーから受信した画面データを画面共有クライアントに転送する機能を有する画面共有プロキシが起動可能であるとする。
【０１９７】
ユーザー１は接続管理ソフトによって、会議の参加者であるユーザー２のクライアント端末２に自分の仮想ＰＣ１の画面を共有表示を指示すると、クライアント端末１とクライアント端末２の接続管理ソフト間で通信が行われ、まず、クライアント端末１上で画面共有プロキシを起動させ、プロキシを仮想ＰＣ１の画面共有サーバーに接続させる。
【０１９８】
クライアント端末１及びクライアント端末２の画面共有クライアントは、クライアント端末１の画面共有プロキシに接続するよう指示される。各クライアント端末の画面共有クライアントがクライアント端末１の画面共有プロキシに接続することにより、各クライアント端末には、画面共有プロキシによって転送された仮想ＰＣ１の画面が表示されるので、結果として仮想ＰＣ１の画面が表示される。
【０１９９】
これにより、クライアント端末１、２では共に仮想ＰＣ１の画面が表示され、会議の資料を同じ画面で閲覧することが可能となる。
【０２００】
簡単のためクライアント端末の数を２つで説明したが、クライアント端末数は３台以上であってもよい。
【０２０１】
上記の第８の実施の形態の場合と同様に、接続管理ソフトがアドレスやポートの指示を行い、画面共有プロキシと画面共有クライアント間でブロードキャストやマルチキャストで画面共有するようにしてもよい。
【０２０２】
画面共有クライアントがプロキシ機能を兼ねており、クライアント端末に画面を表示すると同時に、画面共有サーバーから受信した画面データを転送するようにしてもよい。
【０２０３】
これにより、図２２の例でいうと、クライアント端末１で画面共有クライアントが画面共有プロキシに接続する分の余計なオーバーヘッドが省略され、効率が改善される。
【０２０４】
なお、例えば、会議室に画面共有プロキシを起動したＰＣが存在し、会議室内のクライアント端末に対して画面データを転送する機能を有しており、クライアント端末はこのプロキシＰＣからの画面データを受信する構成にしてもよい。
【０２０５】
上記の本実施の形態によれば、クライアント端末に画面共有サーバーから受信したデータを他の画面共有クライアントに転送するプロキシ機能を設けることにより、複数のクライアント端末で共通の仮想ＰＣの画面を共有する場合において、仮想ＰＣの負荷を減らすと共に、ネットワークの送通信量を減少させ、通信効率を向上させることができる。
【０２０６】
次に、本発明の第１２の実施の形態について説明する。（方式切り替え）
【０２０７】
図１０から図１５に示したように、仮想ＰＣ、ホストサーバー、クライアント端末による本ネットワークコンピューティングシステムの構成は、様々な組み合わせが考えられる。複数のクライアント端末で、同一の仮想ＰＣの画面を共有する場合、上記の第８〜１１の実施の形態のうちどの方法で接続するのかにより、通信効率は異なる。
【０２０８】
そこで、ネットワーク構成によりどのように接続するかを接続管理ソフトまたは接続管理サーバーが判断する機能を設けることにより、自動的に適した接続方法を指示できるようになる。
【０２０９】
図２３に、３台のクライアント端末で画面を共有する場合の接続方法を判断するフローの一例を示す。
【０２１０】
まず、仮想ＰＣ１から３が同一のホストサーバー上で起動しているかをチェックする。もし同一ホストサーバー上で起動していれば、実施例９のように仮想ＰＣ間で画面共有を行う。
【０２１１】
次に、仮想ＰＣ１から３が仮想ＰＣ間専用回線で接続されているかをチェックする。もし仮想ＰＣ間専用回線で接続されていれば、実施例９のように仮想ＰＣ間で画面共有を行う。
【０２１２】
それ以外の場合は、クライアント端末１上で画面共有プロキシを起動し、上記の第１１の実施の形態の方法で画面共有プロキシが仮想ＰＣ１の画面共有サーバーに接続し、クライアント端末の画面共有クライアントは画面共有プロキシから転送された画面データを受信するようにする。
【０２１３】
上記の本実施の形態によれば、複数のクライアント端末で共通の仮想ＰＣの画面を共有する場合において、仮想ＰＣとクライアント端末のネットワーク構成からネットワーク効率のよい通信方法を判断し、接続を指示することができるようになり、結果として適した構成通信構成で効率のよい通信ができるようになる。
【０２１４】
次に、本発明の第１３の実施の形態について説明する。（ターミナルクライアント混在プロトコル変換・プロキシ）
【０２１５】
クライアント端末からは仮想ＰＣを遠隔操作するだけでなく、ネットワークコンピューティングシステムに、ターミナルサービスを構成要素として追加し、ターミナルクライアントも仮想ＰＣと同様に遠隔操作したり、複数の端末で画面を共有する方法について述べる。
【０２１６】
一般にＭｉｃｒｏｓｏｆｔ社のＷＴＳ（Ｗｉｎｄｏｗｓ（登録商標）  Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅ）やＣｉｔｒｉｘ社のＭｅｔａＦｒａｍｅ  ＸＰ等のターミナルサービスは、ターミナルクライアントは、画面を複数のＰＣで共有することができない。
【０２１７】
図２４のように、ターミナルクライアント上でＶＮＣ等の画面共有ソフトを起動することにより、複数のＰＣで画面共有することができるが、ターミナルサービス自体が一種の画面共有を利用した遠隔操作であるため、ターミナルクライアントの画面データを画面共有サーバーで取得すると、オーバーヘッドが大きくなってしまい効率が悪い。
【０２１８】
そこで、以下の方法によって、クライアント端末から遠隔操作可能で、かつ複数のクライアント端末で効率よく画面を共有する方法について説明する。
【０２１９】
まず、プロトコル変換プロキシについて説明する。プロトコル変換プロキシは、ターミナルサービスのプロトコルを、本システムで用いている画面共有のプロキシに変換するソフトである。例えば、Ｗｉｎｄｏｗｓ（登録商標）ＴｅｒｍｉｎａｌＳｅｒｖｉｃｅのＲＤＰ（Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ）からＶＮＣのＲＦＢプロトコルに変換する。
【０２２０】
図２５を用いて、クライアント端末１上でプロトコル変換プロキシを起動する場合について説明する。クライアント端末１のユーザー１は仮想ＰＣを所有しているのではなく、ターミナルサービスのアカウントが与えられているとする。
【０２２１】
ユーザー１がクライアント端末１で自分のデスクトップ環境にアクセスする場合、まず、プロトコル変換プロキシがユーザー１のアカウントを所有するターミナルサービスに接続して、ＲＤＰプロトコルでターミナルセッションを確立するともに、ＲＤＰとＲＦＢプロトコル間でプロトコル変換を行う。
【０２２２】
次に、クライアント端末１の画面共有クライアントは、このプロトコル変換プロキシに接続する。これにより、画面共有クライアントは、ターミナルサービス上のユーザー１のセッションにログオンしたのと同様の画面が表示され、また操作可能となる。
【０２２３】
このプロトコル変換プロキシに他のクライアント端末の画面共有クライアントが接続することにより、複数のクライアント端末間で、ターミナルサービスのセッションを共有することが可能となる。また更に、クライアント端末２には画面の共有は許可するが、マウスやキーボードからの入力は受け付けないようにすることにより、操作権の制御を行うことも可能となる。
【０２２４】
また、プロトコル変換プロキシは、ブロードキャストやマルチキャストで画面データを送信できるようにすることにより、複数の画面共有クライアントに対して、効率良く画面データを送信することが可能となる。
【０２２５】
なお、図２６のようにターミナルサービス上に、ユーザー毎のプロトコル変換プロキシを起動してもよい。即ち、仮想ＰＣ＋画面共有サーバーの役割を、ターミナルサービス＋プロトコル変換プロキシが担うことになる。
【０２２６】
また、図２７のように、ホストサーバー上に仮想ＰＣ実行環境とターミナルサービスが混在する方法も可能である。
【０２２７】
仮想ＰＣを利用可能なユーザーは、仮想ＰＣを利用し、ターミナルサービスのユーザーはターミナルサービスのアカウントが与えられているとする。
【０２２８】
ユーザー１はターミナルサービスのアカウントを与えられており、ユーザー２は仮想ＰＣを所有しているとする。ここで、ユーザー１の画面をユーザー２のクライアント端末でも共有して表示する場合について説明する。
【０２２９】
ターミナルサービス上では、ユーザー１のプロトコル変換プロキシ１が起動しており、ターミナルサービスのセッションを確立すると共に、クライアント端末１の画面共有クライアントにプロトコル変換して画面データを転送している。
【０２３０】
ユーザー２はクライアント端末２の画面共有クライアントを自身の仮想ＰＣ２の画面共有サーバーに接続し、仮想ＰＣ２の画面を表示している。
【０２３１】
ユーザー２がユーザー１の画面を共有場合、上記の第９の実施の形態で仮想ＰＣ間で画面共有したのと同じように、仮想ＰＣ２上で画面共有クライアントを起動し、プロトコル変換プロキシ１に接続する。これにより、仮想ＰＣ２上ではユーザー１のターミナルサービスのセッションの画面が共有表示される。よって、仮想ＰＣ２の画面を共有表示しているクライアント端末２上では、ユーザー１のターミナルサービスのセッションの画面が共有表示される。
【０２３２】
上記の本実施の形態によれば、ターミナルクライアントのプロトコルを本システムの画面共有クライアント／サーバーと同一のプロトコルに変換する手段及びプロキシによって変換とデータ中継を行う手段により、仮想ＰＣだけでなく、ターミナルサービスのクライアントも同様に画面共有によって、クライアント端末から接続できる環境を構築することにより、システムを柔軟にすると共に、現状のターミナルサービスで構成されたネットワークコンピュータシステムから本発明のネットワークコンピュータシステムへの移行を容易にする。また、ターミナルクライアントの画面も複数の端末で共有することが可能となる。
【０２３３】
次に、本発明の第１４の実施の形態について説明する。（ＮＷプロジェクタ）
【０２３４】
図２８のように、通常のプロジェクタと本発明のクライアント端末を組み合わせることにより実現できる。
【０２３５】
つまり、小型のＰＣ本体もしくはＰＤＡに画面共有クライアントと接続管理ソフトをインストールし、これに外部表示装置としてプロジェクタを接続し、箱で覆い一体化することでも実現できる。本システムのクライアント端末と同様にホストサーバー上で起動する仮想ＰＣの画面共有サーバーにアクセスして遠隔操作できるようにする。
【０２３６】
これにより、このネットワークプロジェクタを会議室に設置することにより、ユーザーは特にノートＰＣを会議室に持ち込むことなく、自分のＰＣ環境を呼び出して、プレゼンテーションで発表する資料を開き、直ぐに資料をプロジェクタで投影しながら発表することができる。
【０２３７】
また、発表者を交代する場合も、従来ノートＰＣとプロジェクタとを接続していたモニタを差し替えることなく、簡単な認証により、交代が可能となる。
【０２３８】
上記の本実施の形態によれば、プロジェクタが本発明のクライアント端末と同等の画面共有クライアント機能を有するので、ＰＣのモニタケーブルをプロジェクタに接続することなく、クライアント端末機能を持つプロジェクタで自分の仮想ＰＣの画面共有サーバーに接続することができるので、ユーザーは簡単に自分のＰＣの画面をプロジェクタに投影することができる。
【０２３９】
次に、本発明の第１５の実施の形態について説明する。（ＭＦＰ）
【０２４０】
図２９のように、ＲＩＣＯＨのＩＴ機と呼ばれるＭＦＰは、操作パネルとしてＶＧＡのタッチパネル付きの液晶モニタを備えている。このような構成のＭＦＰおいて、ＯＳ上で画面共有クライアント及び接続管理ソフトを起動可能にし、本システムのクライアント端末と同様にホストサーバー上で起動する仮想ＰＣの画面共有サーバーにアクセスして遠隔操作できるようにする。
【０２４１】
これにより、ＭＦＰから自分のＰＣ環境を呼び出して、電子文書やメールを印刷したり、ＭＦＰのスキャナユニットから取り込んだ画像を、自分のＰＣ環境で即時編集できるようになる。
【０２４２】
上記の本実施の形態によれば、ＭＦＰの操作パネルが本発明のクライアント端末と同等の画面共有クライアント機能を有するので、わざわざ自分の席に戻ったり、もしくは他のクライアント端末の所に行って、自分のＰＣを操作することなく、ユーザーはＭＦＰの操作パネルに自分のＰＣを表示させ、追加印刷や、スキャンした画像を文書に貼り付けて印刷を行う等の作業を、その場で行うことができる。
【０２４３】
次に、本発明の第１６の実施の形態について説明する。（ドライバ）
【０２４４】
図３０は、通常のミラードライバの動作原理を説明する図である。
【０２４５】
画面共有サーバーは、一般的に画面データの変化を検出し、その差分を検出して、画面共有クライアントにエンコードして送信するが、実際にＰＣに接続されたモニタに表示するのと同一の処理に掛かる負荷が大きくなり、動作が低速になってしまう。
【０２４６】
Ｕｌｒｒ＠ＶＮＣや、ＰＣ−Ｄｕｏ等の画面共有サーバーソフトでは、実際のモニタを動作させるビデオドライバの前に、フィルタドライバで処理するようにして、フィルタドライバで一旦描画命令をフックして、実際のモニタを動作させるビデオドライバに命令を渡すと共に、同一の命令を画面共有を行うために複製された、物理的には存在しない仮想モニタを用意し、仮想モニタのメモリ上に画像を出力させ、仮想モニタから画面データの差分を検出している。これにより、実際のモニタ出力から画面データを取得するよりも、高速に動作するようにしている。
【０２４７】
本実施の形態では、図３１のように、物理的なモニタに出力することなく、直接仮想モニタに出力させるドライバを用いて、仮想モニタから画面データの差分を検出することにより画面共有を高速化する。
【０２４８】
これにより、実際にはモニタを必要としないＰＣのＣＰＵ及びメモリリソースを節約すると共に、画面共有を高速にすることが可能となる。仮想ＰＣ技術と同様にエミュレーション技術を用いて、ＯＳに対しては、あたかもモニタがハードウェアとして接続されているように認識させるようにする。
【０２４９】
さらに、仮想モニタのビデオドライバそのものに画面共有クライアント／サーバーで用いる画像データのエンコードを実行させる。すわなち、画面共有サーバーの画面データ取得から画像データ圧縮までのプログラムをデバイスドライバ上で実行させるようにする。
【０２５０】
例えば、ＶＮＣの場合直接ＲＦＢ（Ｒｅｍｏｔｅ  Ｆｒａｍｅ  Ｂｕｆｆｅｒ）プロトコルを出力する。すわなち、ＯＳに対しては、ＲＦＢプロトコルによって画面を描画するモニタとして認識されるよう、モニタデバイスのエミュレーションを行う。
【０２５１】
これにより、画面共有サーバーはクライアントからの画面更新要求に対して、要求を更新された画面領域を含む画面データを転送するだけでよくなり、画面共有速度が速くなる。
【０２５２】
また、画面データをＲＦＢプロトコルに変換するのに、ソフトウェアで処理するのではなく、ＬＳＩ等で構成されたハードウェアで行ってもよい。例えば、ＰＣＩのビデオボード上に、画面データの入力信号に対し、ＲＦＢに変換して出力するＬＳＩを搭載して実現する。これにより、画面共有を高速化できる。
【０２５３】
また、以上の方法により、より高速に高度な画面データの圧縮が可能となり、画面共有クライアント／画面共有サーバー間の通信量を減少させることができ、複数の画面共有ペアがある場合のネットワークトラフィックの混雑による通信速度低下を避けることが可能となる。
【０２５４】
上記の本実施の形態によれば、ビデオドライバが実描画を行わないため、高速な画面共有が可能となる。また、ビデオドライバが、画面共有サーバーが画面共有クライアントに送信するのと同一の形式でデータを出力するので、高速な画面共有が可能となる。
【０２５５】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、上記の各実施の形態におけるサーバー、クライアントその他の情報処理装置の機能を実現するためのプログラムを各装置等に読込ませて実行することにより本システムの機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスク等を介して、または伝送媒体であるインターネット、電話回線等を介して伝送波により他のコンピュータシステムに伝送されてもよい。
【０２５６】
上述する各実施の形態は、サーバー、クライアントその他の情報処理装置が別個に接続されているシステム構成について説明したが、各機能が１つのコンピュータシステムとして実現されている構成や機能毎に複数のサーバー装置等が追加された構成にも適用可能であることはもちろんである。
【０２５７】
また、本発明は、会議システムや表示装置を持つネットワーク接続可能なＰＣ周辺機器の高機能化に適用可能である。
【図面の簡単な説明】
【０２５８】
【図１】本発明の第１の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図２】本発明の第１の実施の形態におけるホストサーバーの構成図である。
【図３】本発明の第１の実施の形態におけるホストサーバーの構成図である。
【図４】本発明の第１の実施の形態における接続管理サーバー動作フローを示す図である。
【図５】本発明の第１の実施の形態における仮想ＰＣ動作フローを示す図である。
【図６】本発明の第１の実施の形態におけるネットワーク構成図である。
【図７】本発明の第１の実施の形態におけるネットワーク構成図である。
【図８】本発明の第２の実施の形態におけるクライアント端末の動作フローを示す図である。
【図９】本発明の第２の実施の形態におけるホストサーバーの動作フローを示す図である。
【図１０】本発明の第３の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図１１】本発明の第３の実施の形態におけるネットワークコンピューティングシステムの構成に仮想ＰＣ間専用回線を追加する例を示す図である。
【図１２】本発明の第３の実施の形態におけるネットワークコンピューティングシステムの別例の構成図である。
【図１３】本発明の第４の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図１４】本発明の第４の実施の形態におけるネットワークコンピューティングシステムの別例の構成図である。
【図１５】本発明の第５の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図１６】本発明の第６の実施の形態における処理動作フローを示す図である。
【図１７】本発明の第６の実施の形態における処理動作フローを示す図である。
【図１８】本発明の第８の実施の形態におけるクライアント端末の接続管理ソフトの機能構成図である
【図１９】本発明の第８の実施の形態における接続管理ソフトの接続管理方法を示す図である。
【図２０】本発明の第９の実施の形態における接続管理ソフトの接続管理方法を示す図である。
【図２１】本発明の第１０の実施の形態における接続管理ソフトの接続管理方法を示す図である。
【図２２】本発明の第１１の実施の形態における接続管理ソフトの接続管理方法を示す図である。
【図２３】本発明の第１２の実施の形態における３台のクライアント端末で画面を共有する場合の接続方法を判断するフローを示す図である。
【図２４】本発明の第１３の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図２５】本発明の第１３の実施の形態におけるクライアント端末１上でプロトコル変換プロキシを起動する処理を示す図である。
【図２６】本発明の第１３の実施の形態におけるクライアント端末１上でプロトコル変換プロキシを起動する処理を示す図である。
【図２７】本発明の第１３の実施の形態におけるクライアント端末１上でプロトコル変換プロキシを起動する処理を示す図である。
【図２８】本発明の第１４の実施の形態におけるネットワークコンピューティングシステムの構成図である。
【図２９】本発明の第１５の実施形態におけるＭＦＰの概略構成図である。
【図３０】通常のミラードライバの動作原理を説明する図である。
【図３１】本発明の第１６の実施形態における仮想モニタから画面データの差分を検出する処理動作を示すシーケンス図である。
【図３２】ＶＮＣの動作原理を説明する図である。
【図３３】ＰＣ仮想化技術を説明する図である。
【図１】
2007193429.tif 000003
【図２】
2007193429.tif 000004
【図３】
2007193429.tif 000005
【図４】
2007193429.tif 000006
【図５】
2007193429.tif 000007
【図６】
2007193429.tif 000008
【図７】
2007193429.tif 000009
【図８】
2007193429.tif 000010
【図９】
2007193429.tif 000011
【図１０】
2007193429.tif 000012
【図１１】
2007193429.tif 000013
【図１２】
2007193429.tif 000014
【図１３】
2007193429.tif 000015
【図１４】
2007193429.tif 000016
【図１５】
2007193429.tif 000017
【図１６】
2007193429.tif 000018
【図１７】
2007193429.tif 000019
【図１８】
2007193429.tif 000020
【図１９】
2007193429.tif 000021
【図２０】
2007193429.tif 000022
【図２１】
2007193429.tif 000023
【図２２】
2007193429.tif 000024
【図２３】
2007193429.tif 000025
【図２４】
2007193429.tif 000026
【図２５】
2007193429.tif 000027
【図２６】
2007193429.tif 000028
【図２７】
2007193429.tif 000029
【図２８】
2007193429.tif 000030
【図２９】
2007193429.tif 000031
【図３０】
2007193429.tif 000032
【図３１】
2007193429.tif 000033
【図３２】
2007193429.tif 000034
【図３３】
2007193429.tif 000035