図1は、本発明の共有データ管理システムのクレーム対応図を示したものである。本発明の共有データ管理システム10は、複数の端末11、……11と、所定数の仮想コンピュータサーバ12、……12と、共有データ配信手段13と、ネットワーク配信時間計測手段14と、しきい値超過判別手段15と、集約手段16を備えている。ここで、複数の端末11、……11は、各ユーザごとに用意され、同一のネットワークに接続されて同一の共有データをデータ処理に使用する。所定数の仮想コンピュータサーバ12、……12は、ネットワーク上に固有のアドレスを有してそれぞれ配置され複数の端末11、……11と1対1に対応して仮想的に前記した共有データを保持する仮想コンピュータを任意数ずつソフトウェア的に構成する。共有データ配信手段13は、複数の端末11、……11のいずれかの操作によって前記した共有データに変更が生じるとき、この変更後の前記した共有データを前記した仮想コンピュータの全部に配信する。ネットワーク配信時間計測手段14は、共有データ配信手段13によって前記した共有データが配信されるたびに前記したネットワークを使用した配信に必要な総配信時間を計測する。しきい値超過判別手段15は、ネットワーク配信時間計測手段14により計測した前記した総配信時間が、予め定めたしきい値を超えるか否かを判別する。集約手段16は、しきい値超過判別手段15が前記した総配信時間について前記したしきい値を超えると判別したとき、前記した仮想コンピュータの少なくとも一部を前記仮想コンピュータサーバのいずれかに集約する。
図2は、本発明の共有データ管理方法のクレーム対応図を示したものである。本発明の共有データ管理方法20は、共有データ変更検知ステップ21と、共有データ配信ステップ22と、ネットワーク配信時間計測ステップ23と、しきい値超過判別ステップ24と、集約ステップ25を備えている。ここで、共有データ変更検知ステップ21では、互いに同一のネットワークに接続され同一の共有データをデータ処理に使用する複数の端末のいずれかの操作によって前記した共有データに変更が生じたときこれを検知する。共有データ配信ステップ22では、共有データ変更検知ステップ21によって前記した共有データに変更が生じたことが検知されたとき、この変更後の前記した共有データを、配信する。配信の対象は、ネットワーク上にそれぞれ固有のアドレスを有する所定数の仮想コンピュータサーバで任意数ずつソフトウェア的に構成され、前記した複数の端末と1対1に対応して仮想的に前記した共有データを保持する仮想コンピュータの全部である。ネットワーク配信時間計測ステップ23では、共有データ配信ステップ22によって前記した共有データが配信されるたびに前記したネットワークを使用した配信に必要な総配信時間を計測する。しきい値超過判別ステップ24では、ネットワーク配信時間計測ステップ23により計測した前記した総配信時間が、予め定めたしきい値を超えるか否かを判別する。集約ステップ25では、しきい値超過判別ステップ24で前記した総配信時間が前記したしきい値を超えると判別したとき、前記した仮想コンピュータの少なくとも一部を前記した仮想コンピュータサーバのいずれかに集約する。
図3は、本発明の共有データ管理方法のクレーム対応図を示したものである。本発明の共有データ管理方法30は、複数検知ステップ31と、木構造形成ステップ32を備えている。ここで、複数検知ステップ31では、互いに同一のネットワークに接続された複数の端末と1対1に対応して仮想的に共有データを保持する仮想コンピュータが1つの仮想コンピュータサーバに集約されるときこれを検知する。木構造形成ステップ32では、複数検知ステップ31によって検知された複数の前記した仮想コンピュータのうちの1つを前記した共有データの受信点として残りの仮想コンピュータを前記した共有データを順次下層側に伝達する木構造に形成する。
図4は、本発明の共有データ管理プログラムのクレーム対応図を示したものである。本発明の共有データ管理プログラム40は、コンピュータに、共有データ変更検知処理41と、共有データ配信処理42と、ネットワーク配信時間計測処理43と、しきい値超過判別処理44と、集約処理45を実行させるようにしている。ここで、共有データ変更検知処理41では、互いに同一のネットワークに接続され同一の共有データをデータ処理に使用する複数の端末のいずれかの操作によって前記した共有データに変更が生じたときこれを検知する。共有データ配信処理42では、共有データ変更検知処理41によって前記した共有データに変更が生じたことが検知されたとき、この変更後の前記した共有データを、配信する。配信の対象は、ネットワーク上にそれぞれ固有のアドレスを有する所定数の仮想コンピュータサーバで任意数ずつソフトウェア的に構成され、前記した複数の端末と1対1に対応して仮想的に前記した共有データを保持する仮想コンピュータの全部に対して配信する。ネットワーク配信時間計測処理43では、共有データ配信処理42によって前記した共有データが配信されるたびに前記したネットワークを使用した配信に必要な総配信時間を計測する。しきい値超過判別処理44では、ネットワーク配信時間計測処理43により計測した前記した総配信時間が、予め定めたしきい値を超えるか否かを判別する。集約処理45では、しきい値超過判別処理44で前記した総配信時間が前記したしきい値を超えると判別したとき、前記した仮想コンピュータの少なくとも一部を前記した仮想コンピュータサーバのいずれかに集約する。
図5は、本発明の共有データ管理プログラムのクレーム対応図を示したものである。本発明の共有データ管理プログラム50は、コンピュータに複数検知処理51と、木構造形成処理52を実行させるようにしている。ここで、複数検知処理51では、複数の端末と1対1に対応して仮想的に共有データを保持する仮想コンピュータが1つの仮想コンピュータサーバに集約されるときこれを検知する。木構造形成処理52は、複数検知処理51によって検知された複数の前記した仮想コンピュータのうちの1つを前記した共有データの受信点として残りの仮想コンピュータを前記した共有データを順次下層側に伝達する木構造に形成する。
<発明の実施の形態>
次に本発明の実施の形態を説明する。
図6は、本発明の実施の形態によるシンクライアントシステムの構成を表わしたものである。本実施の形態のシンクライアントシステム100では、ユーザの操作端末としての第1〜第Mのシンクライアント端末1011〜101M(ただし、Mは整数)が、インターネット等のネットワーク102に接続されている。ネットワーク102には、更に、第1〜第Kの仮想PC(Personal Computer)サーバ1031〜103K(ただし、Kは1以上の整数)と、管理サーバ104および資料共有サーバ105が接続されている。
ここで第1〜第Mのシンクライアント端末1011〜101Mは、クライアント端末として、必要最小限の機能を有する物理的な端末となっている。第1〜第Kの仮想PCサーバ1031〜103Kは、プログラムにより動作するコンピュータであり、仮想化ソフトウェアにより、後に説明する仮想パーソナルコンピュータを所望の台数動作させる。管理サーバ104は、これら第1〜第Kの仮想PCサーバ1031〜103Kによって動作する仮想パーソナルコンピュータの管理を行う。資料共有サーバ105は、会議で共有する資料の管理を行う。
図7は、第1の仮想PCサーバの構成の概要を表わしたものである。図6に示した第1〜第Kの仮想PCサーバ1031〜103Kは、たとえば1台のパーソナルコンピュータを仮想化したものであり、ソフトウェアにより実現する機能的な構成が共に実質的に同一となっている。このため、第2〜第Kの仮想PCサーバ1032〜103Kについての構成の図示および説明は省略する。図6と共に説明する。
第1の仮想PCサーバ1031は、仮想PC部1111-1と仮想化ソフトウェア部1121および送受信部1131を備えている。このうち、送受信部1131は、ネットワーク102とデータの送受信を行う。仮想化ソフトウェア部1121は、仮想PC管理部121と、仮想PC移行部122を有している。この仮想化ソフトウェア部1121によって、第1の仮想PCサーバ1031では1つの仮想PC部1111-1が動作している。ただし、仮想化ソフトウェア部1121に対して2つ以上の仮想PC部1111-1、1111-2、……が動作することも可能である。すなわち、第1〜第Kの仮想PCサーバ1031〜103Kによる仮想PC部111の総数は、仮想PCサーバ103の台数「K」と一致する必要はない。
仮想化ソフトウェア部1121は仮想PC部1111-1を動作させるソフトウェアであり、第1の仮想PCサーバ1031の資源としての図示しないコンピュータのCPU(Central Processing Unit)やメモリを仮想PC部1111-1に割り当てる機能を持っている。
仮想化ソフトウェア部1121を構成する仮想PC管理部121は、仮想化ソフトウェア部1121の上で動作している仮想PC部1111-1を管理し、管理サーバ104からの要求に応じて、仮想PC部1111-1の情報を送信する。仮想PC管理部121が管理する情報としては、たとえば仮想PC部1111-1の識別子と、仮想PC部1111-1に割り当てられたIPアドレス、仮想PC部1111-1のCPU利用率、あるいは仮想PC部1111-1のメモリ利用量がある。
仮想PC移行部122は、仮想PC部1111-1を図示しない第2の仮想PCサーバ1032等の他の仮想PC部111に移行させる機能を持つ。仮想PC移行部122は、管理サーバ104からの命令により仮想PC部1111-1の移行を行う。
仮想PC部1111-1は、仮想化ソフトウェア部1121の上で動作する仮想化されたPCであり、前記したコンピュータをエミュレーションしたものである。仮想PC部1111-1は、OS(Operating System)部1241-1と、資料共有クライアント1251-1および仮想送受信部1261-1によって構成されている。
ここでOS部1241-1はOSによって構成されている。資料共有クライアント1251-1は、OS部1241-1の上で動作するアプリケーションソフトウェアとしてのクライアントである。資料共有クライアント1251-1は、資料共有サーバ105と通信することで、同一の会議に参加するユーザに対して資料共有機能を提供する。仮想PC部1111-1は、個別のIPアドレスが割り当てられた仮想送受信部1261-1を有している。仮想送受信部1261-1は、第1の仮想PCサーバ1031の外部と送受信部1131を介して通信することができる。
図8は、図6に示した管理サーバの構成を表わしたものである。管理サーバ104は、図6に示した第1〜第Kの仮想PCサーバ1031〜103Kの管理を行う。管理サーバ104は、必要に応じてこれら仮想PCサーバ1031〜103Kに対して仮想PC部1111-1(図7)等の仮想PC部111の移行を指示するようになっている。図6および図7と共に説明する。
管理サーバ104は、送受信部131と、仮想PCサーバ管理部132と、仮想PCサーバ情報記憶部133と、仮想PC集約判定部134および仮想PC移行命令部135で構成されている。ここで送受信部131は、ネットワーク102とデータの送受信を行う。仮想PCサーバ管理部132は、第1〜第Kの仮想PCサーバ1031〜103Kの仮想PC管理部121から、これらの仮想PCサーバ上で動作している仮想PC部1111-1等の仮想PC部111の情報を収集する。仮想PCサーバ管理部132は、この収集結果を仮想PCサーバ情報記憶部133に格納する。仮想PCサーバ情報記憶部133に記憶される情報には、たとえば次のようなものがある。第1〜第Kの仮想PCサーバ1031〜103Kの識別子、CPU性能値、メモリ容量、これらの仮想PCサーバ103で動作している仮想PC部111の識別子、仮想PC部111に割り当てられたIPアドレス、仮想PC部111のCPU使用率やメモリ使用量。
仮想PC集約判定部134は、資料共有サーバ105から送信されるデータ配信時間と資料共有クライアントのリストを基にして、仮想PC部1111-1等の仮想PC部111を仮想PCサーバ103に集約するかを判断する。集約すると判断した場合、仮想PC集約判定部134は更に集約先の仮想PCサーバ103を決定し、仮想PC移行命令部135に仮想PC部1111-1等の仮想PC部111の移行指示を出す。仮想PC集約判定部134は仮想PC移行命令部135から仮想PC部1111-1等の仮想PC部111の移行完了の通知を受けると、資料共有サーバ105に対して、該当する仮想PC部111を同一の仮想PCサーバ103に移行したことを通知する。
仮想PC移行命令部135は、仮想PC集約判定部134からの指示に基づいて、仮想PC部1111-1等の仮想PC部111の移行を仮想PCサーバ103の仮想PC移行部122に命令する。この命令により、該当するすべての仮想PC部111の移行が完了すると、仮想PC移行命令部135は、移行の完了を仮想PC集約判定部134に通知する。
図9は、資料共有サーバの構成を表わしたものである。資料共有サーバ105は、会議で共有する資料の管理を行うようになっている。図6〜図8と共に説明する。なお、以下の説明では、図7に示した仮想PC部1111-1を特に指定して説明する場合を除いて、「仮想PC部111」と一般的な表記で表示する。OS部1241-1、資料共有クライアント1251-1および仮想送受信部1261-1についても同様である。
資料共有サーバ105は、送受信部141と、資料管理部142と、資料記憶部143と、クライアント管理部144およびクライアント記憶部145で構成されている。ここで、送受信部141は、ネットワーク102とデータの送受信を行う。資料管理部142は、資料の登録や資料に対する操作の同期処理を行う。この処理の結果、ある資料共有クライアント125から資料の操作データが送信されると、資料管理部142は、同じ会議に参加している他の資料共有クライアント125に、操作データを配信する。
資料共有サーバ105は、この操作データ配信時に、グループ化されている資料共有クライアント125が存在するかを判別する。そして、このような資料共有クライアント125が存在する場合には、そのグループのルートになっている資料共有クライアント125だけに操作データとグループの資料共有クライアント125の木構造配置の情報を送信する。
資料記憶部143は、会議で使う共有の資料としての情報を会議ごとに記憶するようになっている。資料記憶部143が記憶する情報としては、たとえば登録されている資料、資料に追記された情報、現在表示している資料およびページがある。
クライアント管理部144は、資料を共有する会議へのクライアントの参加処理や脱退処理を行う。また、クライアント管理部144は資料共有クライアント125のそれぞれに対するデータ配信に要した時間を計測する。そして、同じ会議に参加している資料共有クライアント125のリストと共に管理サーバ104の仮想PC集約判定部134にその計測結果を通知する。この結果として、仮想PC集約判定部134から仮想PC部111の集約通知があった場合、クライアント管理部144は、移行した仮想PC部111をグループ化する。そして、クライアント管理部144は、グループ化された資料共有クライアント125を木構造に配置し、クライアント記憶部145にそれらの情報を格納する。
クライアント記憶部145は、会議ごとに参加している資料共有クライアント125の情報を記憶する。クライアント記憶部145が記憶する情報には、たとえば、資料を共有する会議の識別子、会議室に参加している資料共有クライアント125それぞれの識別子とIPアドレス、グループ識別子、および親となる資料共有クライアント125の識別子がある。
ここでグループ識別子とは、同一仮想PCサーバ103の仮想PC部111上で動作している資料共有クライアント125に設定されるグループを識別する情報である。親となる資料共有クライアント125の識別子は、木構造において自分の親となる資料共有クライアント125の識別子である。
図6に示す第1〜第Mのシンクライアント端末1011〜101Mは、第1〜第Kの仮想PCサーバ1031〜103Kの仮想PC部111と個別に対応付けられ、これら仮想PC部111を遠隔操作するための装置である。第1〜第Mのシンクライアント端末1011〜101Mは、図示しないキーボードやポインティングデバイスとしてのマウス等の入力手段と、モニタ等の出力手段を有している。そして、仮想PC部111の対応するものと、入出力情報を送受信する。このような第1〜第Mのシンクライアント端末1011〜101Mは、一般的な操作端末として構成されているので、それらの図示および説明を省略する。
図10は、資料共有クライアントの構成の概要を表わしたものである。資料共有クライアント125は、図7に示した仮想PC部111で実行されるアプリケーションソフトウェアである。資料共有クライアント125は、送受信部151と、資料操作部152と、資料管理部153と、資料記憶部154と、資料配信部155および表示部156で構成される。図6および図7と共に説明する。
送受信部151は、仮想PCサーバ103の送受信部113を介して、資料共有サーバ105や他の資料共有クライアント125とデータの送受信を行う。資料操作部152は、ユーザに資料を共有する会議(以下、資料共有会議という。)の資料を操作する手段を提供する。資料操作部152は、ユーザの操作によって、操作データを資料管理部153と、資料共有サーバ105の資料管理部142に送信する。
資料管理部153は、資料共有会議で使われる資料等の情報を管理し、資料操作部152および資料共有サーバ105から操作データを受信すると、資料記憶部154に記憶する。また、資料管理部153は、受信した操作データに資料共有クライアント125の木構造配置情報が含まれる場合には、資料配信部155に操作データを渡す。
資料配信部155は、資料管理部153から操作データを受け取ると、資料共有クライアント125の木構造における位置情報に基づいて、同一の資料共有会議に参加する他の資料共有クライアント125に操作データを配信する。表示部156は、資料記憶部154から定期的にデータを読み出して、その図示しないウィンドウに表示する。
以上のような構成の図6に示すシンクライアントシステム100の各種の動作を次に説明する。一例として、図7に示す第1の仮想PCサーバ1031内の資料共有クライアント125が、資料共有会議に参加するもとする。資料共有クライアント125が、資料共有会議に参加すれば、その時点から資料の配信の相手が追加されることになるので、そのための処理が行われることになる。
図11は、資料共有サーバ内のクライアント管理部による資料共有会議への資料共有クライアントの参加処理を表わしたものである。図7および図9と共に説明する。
資料共有サーバ105内のクライアント管理部144は、いずれかの仮想PCサーバ103内の資料共有クライアント125から資料共有の会議への参加要求が送られてくるのを送受信部141を介して待機している(ステップS201)。この例で、第1の仮想PCサーバ1031内の資料共有クライアント125から参加要求が送られてくると(Y)、クライアント管理部144はこの情報をクライアント記憶部145の該当する会議室のメモリ領域に追加記憶する(ステップS202)。
クライアント管理部144は、これに基づいて、資料管理部142に対して、この資料共有クライアント125への資料の配信を指示する(ステップS203)。このとき、該当する資料共有クライアント125を示す識別子が通知される。
次に、クライアント管理部144は、該当する会議に参加している資料共有クライアント125全員の情報を、送受信部141から図8に示す管理サーバ104の仮想PC集約判定部134に送信する(ステップS204)。これは、会議に参加する資料共有クライアント125の数を1つの要因として、それぞれの資料共有クライアント125が動作している仮想PC部111を同一の仮想PCサーバ103に集約する可能性があるからである。以上の一連の処理で、クライアント管理部144による資料共有クライアント125の参加についての一連の処理が終了する(エンド)。
図12は、資料共有サーバ内の資料管理部の処理を表わしたものである。図9と共に説明する。
資料共有サーバ105内の資料管理部142は、クライアント管理部144から資料配信の指示がくるのを待機している(ステップS221)。クライアント管理部144から資料配信の指示がくると(Y)、資料記憶部143から資料共有会議の資料を取り出す(ステップS222)。そして、クライアント記憶部145から通知された資料共有クライアント識別子をもつ資料共有クライアントのIP(Internet Protocol)アドレスを取得する(ステップS223)。次に、資料管理部142は、送受信部141を使用して、資料をこの取得したIPアドレスに送信して(ステップS224)、一連の処理を終了する(エンド)。
次に、資料共有会議に参加している資料共有クライアント125(図7、図10)のいずれかで資料の操作が行われ、資料共有クライアント125の資料操作部152から操作データが資料共有サーバ105の資料管理部142(図9)に送信される場合を説明する。このような場合には、資料共有会議に参加している資料共有クライアント125の全員に、この操作データが配信される必要がある。配信を効率的に行うため、本実施の形態では木構造(ツリー構造)の情報伝達を行うようにしている。
図13は、資料共有サーバにおける資料管理部の処理の様子を表わしたものである。図9および図10と共に説明する。
資料共有サーバ105における資料管理部142は、資料共有クライアント125の資料操作部152から操作データを受信するのを待機している(ステップS241)。操作データを受信したら(Y)、資料管理部142は、この操作データを資料記憶部143に記憶する(ステップS242)。そして、資料管理部142は、会議に参加している資料共有クライアント125についての情報をクライアント記憶部145から取得する(ステップS243)。次に、グループのルートに設定された資料共有クライアント125、およびグループに所属していない各資料共有クライアント125に操作データを配信する(ステップS244)。
ここで、「グループ」とは、図6に示す第1〜第Kの仮想PCサーバ1031〜103Kにおける同一の仮想PCサーバ103J(ただし、1≦J≦K)に集約された仮想PC部111の集合をいう。これは、同一の会議に参加するメンバとしての仮想PC部111の集合である。
このステップS244によるデータ配信に伴って、資料管理部142は、グループの資料共有クライアント125の木構造情報を配信する(ステップS245)。更に資料管理部142は、会議に参加している資料共有クライアントのリストと共にデータ配信時間を図8に示す仮想PC集約判定部134に送信して(ステップS246)、一連の処理を終了する(エンド)。ここで、ステップS244〜ステップS246の処理の順序は適宜変更可能である。
図14は、図13のステップS244で送られてきた操作データを受信する側の資料共有クライアントの資料管理部の処理の様子を表わしたものである。図10と共に説明する。
資料管理部153は、資料共有サーバ105から操作データが送られてくるのを待機している(ステップS261)。送受信部151が操作データを受信すると(Y)、資料管理部153はこの操作データとこれに付随して送られてくる情報を資料記憶部154に記憶する(ステップS262)。受信処理が終了すると、資料管理部153は、資料記憶部154に格納された情報として資料共有クライアントのリストおよび木構造情報が存在するか判別する(ステップS263)。これらの情報が受信されておらず、資料記憶部154に存在しない場合には(N)、処理をそのまま終了する(エンド)。
これに対して、資料共有クライアントのリストおよび木構造情報が存在する場合には(ステップS263:Y)、これらを資料配信部155に送信して(ステップS264)、一連の処理を終了する(エンド)。
図15は、資料共有クライアントの資料配信部の処理の様子を表わしたものである。図10と共に説明する。
資料共有クライアント125の資料配信部155は、資料管理部153が受信した操作データ等の情報における木構造情報に含まれる資料共有クライアント125の数を調べる(ステップS281)。そして、資料共有クライアント125の数が「1」であるか判別する(ステップS282)。これは、資料共有クライアントについてのリストの長さが「1」であるかの判別と同じである。
資料共有クライアント125の数が「1」であった場合には(Y)、資料共有クライアント125のリストに記載されている資料共有クライアントに操作データを送信して(ステップS283)、処理を終了する(エンド)。
この一方で、資料共有クライアント125のリストに記載されている資料共有クライアント125の数が2以上であった場合には(ステップS282:N)、木構造のルートから伸びる各部分木の木構造情報を作成する。このために、部分木の数がr個ある場合には、資料共有クライアント125のリストをr分割することになる(ステップS284)。そして、部分木を示すパラメータRを「1」に初期化して(ステップS285)、第1の部分木(R=1)についての資料共有クライアント125を選択し(ステップS286)、この選択した資料共有クライアント125を資料共有クライアント125のリストから削除する(ステップS287)。次に、ステップS286で選択した資料共有クライアント125に操作データと資料共有クライアント125のリストを送信する(ステップS288)。
この後、部分木を示すパラメータRを「1」だけ加算して(R=R+1)(ステップS289)、その値Rがリストの分割数rを超過したかどうかをチェックする(ステップS290)。Rがリストの分割数rを超過していなければ(N)、第2の部分木(R=2)についての資料共有クライアント125を選択する処理を行う(ステップS286)。以下同様にして、各部分木の木構造情報についての操作データと資料共有クライアント125のリストの送信が行われ、Rがリストの分割数rを超過した時点で(ステップS290:Y)、処理を終了する(エンド)。以上のようにして、木構造の各ルートを構成する資料共有クライアント125に操作データと資料共有クライアント125のリストが送信されることになる。
図16は、管理サーバの仮想PC集約判定部の処理の様子を表わしたものである。図6、図8および図9と共に説明する。
管理サーバ104の仮想PC集約判定部134は、図13のステップS246で資料管理部142から送られてくるデータ配信時間と会議に参加している資料共有クライアント125のリストの受信を待機している(ステップS301)。データ配信時間と会議に参加している資料共有クライアント125のリストを受信すると(Y)、資料共有クライアント125の状態が仮想PCを同一の仮想PCサーバ103に集約するための予め設定した条件を満たすかを判定する(ステップS302)。この結果、条件を満たさない場合には(N)、処理を終了する(エンド)。ここで予め設定した条件とは、たとえばデータ配信時間が予め設定したしきい値を超えるというような条件である。
仮想PC集約判定部134が、予め設定した条件を満たすと判定した場合には(ステップS302:Y)、仮想PCの集約が実行される。そこで、仮想PC集約判定部134は、仮想PCサーバ管理部132を介して仮想PCサーバ103についての情報を取得する(ステップS303)。そして、仮想PCサーバ103の情報と仮想PC集約判定部134の受信した資料共有クライアント125のリストを基にして、資料共有の会議に参加している仮想PC部111がどの仮想PCサーバ103で稼働しているかを把握する(ステップS304)。これを基にして、仮想PC集約判定部134は集約先(移行先)の仮想PCサーバ103を決定し(ステップS305)、仮想PC移行命令部135に対して、所定の仮想PC部111を集約先とした特定の仮想PCサーバ103に移行させるように指示する(ステップ306)。仮想PC移行命令部135から移行完了が通知されると、仮想PC集約判定部134はクライアント管理部144に対して、仮想PC部111を特定の仮想PCサーバ103に集約したことを通知して(ステップS307)、処理を終了する(エンド)。
図17は、管理サーバの仮想PC移行命令部の処理の様子を表わしたものである。図6、図7および図8と共に説明する。
管理サーバ104の仮想PC移行命令部135は、図16のステップS306で仮想PC集約判定部134から仮想PC移行指示を受けるのを待機している(ステップS321)。仮想PC移行命令部135は、仮想PC移行指示を受けると(Y)、該当する仮想PC部111が動作する仮想PCサーバ103の仮想PC移行部122すべてに対して仮想PC部111の移行を指示する(ステップS322)。そして、これら指示した仮想PC移行部122から移行完了が通知されるのを待機する(ステップS323)。
指示した仮想PC移行部122のすべてから移行完了が通知されると(ステップS323:Y)、仮想PC移行命令部135は、仮想PC集約判定部134に移行完了を通知して(ステップS324)、処理を終了する(エンド)。
図18は、資料共有サーバのクライアント管理部による仮想PC部のグループ化とこれに伴う処理の様子を表わしたものである。図6、図8および図9と共に説明する。
資料共有サーバ105のクライアント管理部144は、仮想PC集約判定部134から会議に参加している資料共有クライアント125が動作している仮想PC部111を仮想PCサーバ103に集約したことの通知を待機している(ステップS341)。この通知を受信すると(Y)、クライアント管理部144は、同一の仮想PC部111として動作している資料共有クライアント125をグループ化する(ステップS342)。そして、クライアント管理部144は、これらグループ化した資料共有クライアント125を木構造に配置する(ステップS343)。次に、クライアント管理部144は、これら資料共有クライアント125についてグループ情報と木構造での親となる資料共有クライアント125を親となる資料共有クライアントとして指定する(ステップS344)。そして、ステップS342におけるグループ化情報と、親となる資料共有クライアント情報とをクライアント記憶部145に記憶して(ステップS345)、処理を終了する(エンド)。
ただし、ステップS345では、木構造のルートになっている資料共有クライアント125については、親となる資料共有クライアントの識別子を設定しない。
以上、シンクライアントシステム100の概要について各部の動作を説明した。次に、一例として仮想PCサーバを具体的に挙げて、シンクライアントシステム100の動作を実施例として具体的に説明する。
図19は、シンクライアントシステムの具体例を示したものである。ここでは、説明を簡単にするために、非常に単純化された例を挙げる。シンクライアントシステム100を構成するネットワーク102には、第1〜第4のシンクライアント端末1011〜1014と、第1〜第3の仮想PCサーバ1031〜1033と、管理サーバ104および資料共有サーバ105が接続されている。第1の仮想PCサーバ1031では、仮想化ソフトウェア部1121に対して仮想PC部1111-1が動作している。第2の仮想PCサーバ1032では、仮想化ソフトウェア部1122に対して仮想PC部1112-1が動作している。第3の仮想PCサーバ1033では、仮想化ソフトウェア部1123に対して仮想PC部1113-1と仮想PC部1113-2が動作している。
この図19では、第1〜第3の仮想PCサーバ1031〜1033を簡略化された構成で示している。第1の仮想PCサーバ1031の具体的な構成は、図7で示した通りである。第2、第3の仮想PCサーバ1032、1033についても、図7と実質的な構成は同一である。ただし、仮想PC部1111-1を構成する資料共有クライアント1251-1は、仮想PC部1112-1で資料共有クライアント1252-1と読み替え、OS部1241-1は、仮想PC部1112-1でOS部1242-1と読み替える。仮想PC部1111-1を構成する仮想送受信部1261-1は、仮想PC部1112-1で仮想送受信部1262-1と読み替える。仮想PC部1113-1、1113-2についても、同様の読み替えを行うことにする。
図20は、第1〜第3の仮想PCサーバのそれぞれに割り当てられた仮想PCサーバ識別子を示したものである。たとえば、第1の仮想PCサーバ1031には、仮想PCサーバ識別子S100が割り当てられている。
図21は、各仮想PC部に割り当てられた仮想PC識別子とIPアドレスの関係を表わしたものである。たとえば図19に示す第3の仮想PCサーバ1033について見てみると、仮想PC部1113-1と仮想PC部1113-2が動作しているので、これらに仮想PC識別子とIPアドレスが割り当てられている。仮想PC部1113-1については、仮想PC識別子がVPC031であり、IPアドレスは「192.168.3.1」となっている。もう1つの仮想PC部1113-2については、仮想PC識別子がVPC032であり、IPアドレスは「192.168.4.1」となっている。
図22は、管理サーバの仮想PCサーバ情報記憶部に格納されているテーブル情報の内容を表わしたものである。図8に示す管理サーバ104の仮想PCサーバ情報記憶部133には、図20および図21に示した内容に基づいて、図19に示した第1〜第3の仮想PCサーバ1031〜1033のテーブル情報401が格納されている。これは、各仮想PC部1111-1、1112-1、1113-1、1113-2における仮想PCサーバ識別子、仮想PC識別子およびIPアドレスとなっている。
図19に示したシンクライアントシステム100では、更に次の前提が整っているものとする。まず、第1の前提として、各仮想PC部1111-1、1112-1、1113-1、1113-2で、それぞれ、資料共有クライアント1251-1、1252-1、1253-1、1253-2がアプリケーションとして動作している。
第2の前提として、資料共有クライアント1251-1、1253-1が会議室識別子「001」の資料共有の会議に参加し、資料共有クライアント1252-1が会議室識別子「020」の資料共有の会議に参加している。
図23は、第3の前提としての3つの資料共有クライアントとクライアント識別子の関係を示したものである。資料共有クライアント1251-1、1252-1、1253-1には、この図23に示すようなクライアント識別子C001、C002、C003が割り当てられている。
図24は、第4の前提としての資料共有サーバのクライアント管理部に格納されているテーブルの内容を表わしたものである。図9に示す資料共有サーバ105のクライアント管理部144には、情報411が記憶されている。この情報411は、「001」等の会議室識別子と、「C001」等のクライアント識別子、「192.168.1.1」等のIPアドレスや、ルートおよびグループを対応付けたものである。
第5の前提として、図19に示す第1〜第4のシンクライアント端末1011〜1014が、それぞれ仮想PC部1111-1、1112-1、1113-1、1113-2に1対1に対応付けて接続している。
以上の前提の下で、仮想PC部1113-2でクライアント識別子「C004」が設定された資料共有クライアント1253-2が起動され、ユーザが会議室識別子「001」の会議に参加を要求したとする。資料共有クライアント1253-2は、図9に示す資料共有サーバ105のクライアント管理部144に対して、会議室識別子「001」の会議への参加を要求する。
図9に示す資料共有サーバ105のクライアント管理部144は、資料共有クライアント1253-2から会議への参加要求を受けると、クライアント記憶部145に資料共有クライアント1253-2の情報を追加する(図11ステップS202)。具体的には、会議室識別子「001」、クライアント識別子「C004」、IPアドレス「192.168.4.1」という情報が追加される。
次に、クライアント管理部144は、資料管理部142に資料共有クライアント1253-2の識別子「C004」を通知して、資料共有クライアント1253-2に会議室識別子「001」の会議の資料を配信するように指示する(ステップS203)。
図25は、この資料共有クライアント1253-2が会議室「001」に参加した後の状態での、クライアント記憶部の記憶する情報の内容を表わしたものである。クライアント記憶部145には情報412として、図24に示す情報411の他に、会議室識別子「001」が追加され、ここにクライアント識別子「C004」、IPアドレス「192.168.4.1」が記憶されている。
図9に示す資料共有サーバ105の資料管理部142は、クライアント管理部144から指示を受けると、資料記憶部143から会議室識別子「001」の会議の資料を取り出す(図12ステップS222)。そして、クライアント記憶部145から通知された資料共有クライアント識別子「C004」を持つ資料共有クライアント1253-2のIPアドレス「192.168.4.1」を取得する(ステップS223)。そして、資料管理部142は、送受信部141を使用して、この資料を資料共有クライアント1253-2に送信する(ステップS224)。資料共有クライアント1253-2は、図10に示す資料管理部153がこの受信した資料を資料記憶部154に記憶し、表示部156に表示する。
このようにして資料共有クライアント1253-2が会議室識別子「001」の会議に新たに参加して、資料を受け取った後に、資料共有クライアント1251-1が会議室識別子「001」の会議の資料に操作を行ったとする。この場合、資料共有クライアント1251-1の資料操作部152は、図9に示す資料共有サーバ105の資料管理部142に操作データを送信する。
資料管理部142は、資料共有クライアント1251-1から受信したデータを資料記憶部143に記憶する(図13ステップS242)。次に、資料管理部142は、会議室識別子「001」の会議に参加している資料共有クライアント125についての情報を、図9に示した資料共有サーバ105のクライアント記憶部145から取得する(ステップS243)。この時点では、グループ化された資料共有クライアント125がまだ存在しない。
そこで、資料管理部142は、図25に示す同一の会議室識別子「001」の資料共有クライアント1251-1、1252-1、1253-2に操作データを個別に配信する(ステップS244)。更に資料管理部142は、配信時間と会議室識別子「001」の会議に参加している資料共有クライアントのリストを、図8に示す管理サーバ104の仮想PC集約判定部134に送信する(ステップS246)。
資料共有クライアント1251-1、1252-1、1253-2では、図10に示す資料管理部153が送受信部151を使用して資料共有サーバ105からデータをそれぞれ受信する(図14ステップS261:Y)。資料管理部153は、この受信したデータを資料記憶部154に格納する(ステップS262)。そして、資料共有クライアントの木構造情報が存在するか確認する(ステップS263)。この段階では、木構造情報が存在しない(N)。そこで、資料管理部153は、このまま処理を終了する(エンド)。
一方、図8に示す管理サーバ104の仮想PC集約判定部134は、図13のステップS246でクライアント管理部144から資料共有クライアントのリストとデータ配信時間を受信する(図16ステップS301:Y)。そこで、仮想PC集約判定部134は、この時点で仮想PCを同一の仮想PCサーバ103に集約するべきかの判定を行う(ステップS302)。
本実施例では、データ配信時間が予め設定したしきい値を超えた場合に、仮想PC部111を同一の仮想PCサーバ103に集約すると判定する。もちろん、判定は資料共有サーバ105がデータを配信するクライアント数や、資料共有サーバ105の性能や負荷状況、あるいはネットワーク102の回線速度や利用状況を考慮して行うようにしてもよい。
図16のステップS302で図8に示す管理サーバ104の仮想PC集約判定部134が仮想PC部111を集約させると判定したとする(Y)。この場合、仮想PC集約判定部134は、仮想PCサーバ管理部132を介して仮想PCサーバ103の情報を取得する(ステップS303)。そして、仮想PCサーバ103の情報と、クライアント記憶部145から取得した資料共有クライアントのリストを基にして、資料共有の会議に参加している資料共有クライアント125がどの仮想PCサーバ103で稼働しているかを把握する(ステップS304)。これを基にして、仮想PC集約判定部134は、移行先(集約先)の仮想PCサーバ103を決定する(ステップS305)。
実施例では、集約先の仮想PCサーバ103を次のように求める。
まず、次のように変数A、B、C、Dを定義する。
A……仮想PC部111が動作している仮想PCサーバ103のCPU(Central Processing Unit)の性能値
B……仮想PC部111のCPU利用率
C……仮想PC部111が動作している仮想PCサーバ103のメモリ容量
D……仮想PC部111のメモリ利用量
次に、資料共有クライアント125が動作している各仮想PC部111について、次の(1)式で仮想PC部111のCPU利用値Eを算出する。
E=A×B ……(1)
次に、仮想PCサーバ103ごとに、次の(2)式および(3)式で変数Fおよび変数Gを算出する。ここで、変数Fは仮想PC部111を集約した場合の仮想PCサーバ103のCPU性能余裕値である。また、変数Gは仮想PC部111を集約した場合の仮想PCサーバ103のメモリ残量である。
F=A−ΣE ……(2)
G=C−ΣD ……(3)
そして、図19に示す第1〜第3の仮想PCサーバ1031〜1033の中から、変数Fおよび変数Gがそれぞれのしきい値以上となった仮想PCサーバ103を求めて、仮想PC部111の集約先とする。条件を満たす仮想PCサーバが複数ある場合がある。この場合には、集約において移動させる仮想PC部111の台数が最少となる仮想PCサーバ103を集約先に選定する。
(2)式および(3)式を満たす仮想PCサーバ103が存在しない場合がある。この場合には、仮想PC部111を集約しないとしてもよいし、集約先を複数台の仮想PCサーバ103に分けてもよい。集約先を複数台の仮想PCサーバ103に分ける場合には、全集約パターンの中から集約先となる全仮想PCサーバ1031〜1033が(2)式あるいは(3)式を満たす移行パターンを求め、仮想PC部111の集約パターンとする。集約先を複数台の仮想PCサーバ103に分けた場合には、図18のステップS342において、同じ仮想PCサーバ103に集約された仮想PC部111上で動作している資料共有クライアント125ごとにグループを設定することになる。
本実施例では、仮想PC集約判定部134が集約先として第3の仮想PCサーバ1033を選定したとする。この場合、図8に示す管理サーバ104の仮想PC集約判定部134は、仮想PC移行命令部135に仮想PC部111の移行指示を出す。具体的には、仮想PC集約判定部134は、仮想PC移行命令部135に、図19に示す仮想PC部1111-1を第1の仮想PCサーバ1031から第3の仮想PCサーバ1033に移行させるように指示する(図1ステップS306)。同様に、仮想PC部1112-1を第2の仮想PCサーバ1032から第3の仮想PCサーバ1033に移行させる指示も行われる(ステップS306)。そして、仮想PC移行命令部135から仮想PC部1111-1および仮想PC部1112-1の移行完了が通知されると、クライアント管理部144に資料共有クライアント1251-1、1252-1、1253-2を第3の仮想PCサーバ1033に集約したことを通知する(ステップS307)。
仮想PC移行命令部135は、仮想PC集約判定部134の指示に基づき、該当する仮想PC部111が動作する仮想PCサーバ103の仮想PC移行部122すべてに対して仮想PC部111の移行を指示する(図17ステップS322)。この例の場合には、第1の仮想PCサーバ1031の仮想PC移行部122に対して、仮想PC部1111-1を第3の仮想PCサーバ1033に移行するように指示する。また、第2の仮想PCサーバ1032の仮想PC移行部122に対しては、仮想PC部1112-1を第3の仮想PCサーバ1033に移行するように指示する。
指示を受けた第1の仮想PCサーバ1031および第2の仮想PCサーバ1032の仮想PC移行部122は、仮想PC部1111-1および仮想PC部1112-1をそれぞれ第3の仮想PCサーバ1033に移行する。そして、移行が完了するとこれらを仮想PC集約判定部134に通知する(図17ステップS324)。
図9に示す資料共有サーバ105のクライアント管理部144は、仮想PC移行命令部135から仮想PC部1111-1および仮想PC部1112-1を第3の仮想PCサーバ1033に集約したことを通知される(図18ステップS341)。これを基に、クライアント管理部144は、資料共有クライアント1251-1、1252-1、1253-2をグループ「G001」にグループ化する(ステップS342)。そして、グループ化した資料共有クライアント1251-1、1252-1、1253-2を木構造に配置する(ステップS343)。また、グループ化情報と木構造の情報をクライアント記憶部145に格納する(ステップS345)。
図26は、図18のステップS342で作成された木構造を表わしたものである。クライアント識別子C001が木構造のルートに配置されており、ここからクライアント識別子C002とクライアント識別子C004が枝分かれしている。
図27は、図18のステップS345によりクライアント記憶部に格納された情報を示したものである。クライアント記憶部145には、情報413として、情報412(図25)と比べると、グループ識別子「G001」が各クライアント識別子C001、C002、C004に対して設定されている。これらは、資料共有の会議に参加している資料共有クライアント1251-1、資料共有クライアント1252-1および資料共有クライアント1253-2に対応している。また資料共有クライアント1252-1(クライアント識別子C002)と資料共有クライアント1253-2(クライアント識別子C004)の、親の資料共有クライアントとして資料共有クライアント1251-1(クライアント識別子C001)が設定されている。
次に、資料共有クライアント1253-2で会議室識別子「001」の会議の資料に操作が行われたとする。この場合、資料共有クライアント1253-2の資料操作部152(図10)は、資料共有サーバ105の資料管理部142(図9)に対して操作データを送信する。
資料管理部142は、資料共有クライアント1253-2から受信した操作データを資料記憶部143に記憶する(図13ステップS242)。次に資料管理部142は、クライアント記憶部145から同じ会議室識別子「001」の会議に参加している資料共有クライアント125についての木構造情報を取得する(ステップS243)。そして、資料管理部142は、木構造のルートである資料共有クライアント1251-1にデータとグループ「G001」の木構造の情報を配信する(ステップS244、ステップS245)。また、資料管理部142は、仮想PC集約判定部134(図8)にデータ配信時間と会議室識別子「001」の会議に参加している資料共有クライアントリストを送信する(ステップS246)。木構造情報には、各資料共有クライアントのクライアント識別子およびIPアドレスも含まれる。
図10に示す資料共有クライアント125の資料管理部153は、資料共有サーバ105からデータを受信すると、このデータを資料記憶部154に格納する(図14ステップS262)。ただし、ここでは、図10の資料共有クライアント125を資料共有クライアント1251-1と読み替えるこのにする。データを資料記憶部154に格納した後、資料管理部153は、資料記憶部154に資料共有クライアントの木構造情報が存在するか判別する(ステップS263)。この例では、結果として資料共有クライアントの木構造情報が存在する(Y)。そこで資料管理部153は、操作データと資料共有クライアント125の木構造情報を資料配信部155に渡す(ステップS264)。
資料配信部155は、資料管理部153から操作データと資料共有クライアント125の木構造情報を受け取ると、その木構造情報の長さを調べる(S282)。資料共有クライアント125の木構造情報には、資料共有クライアント1251-1、1252-1、1253-2の情報があるので長さが「3」である。そこで、木構造のルート(資料共有クライアント1251-1)から伸びる各部分木の木構造情報を作成する(ステップS284)。作成した各木構造について、ルートの資料共有クライアント1251-1に対して操作データと木構造情報を送信する(ステップS288)。
本実施例の場合、ステップS284で作成される部分木の木構造は、資料共有クライアント1252-1だけで構成される木構造と、資料共有クライアント1253-2だけで構成される木構造とがある。ステップS288では資料共有クライアント1252-1と資料共有クライアント1253-2に操作データと木構造が配信される。資料共有クライアント1252-1と資料共有クライアント1253-2に対しては、図13のステップS241からステップS244の処理と、図14のステップS261からステップS264の処理図15のステップS281ならびにステップS282の処理を行う。ステップS282において、木構造情報の大きさが「1」であると分かるので、既に説明したステップS283に処理が進むことになる。
以上説明した本実施例では、会議に参加している資料共有クライアント125の数が少ないため、本発明の効果が見えにくい。しかしながら、会議に参加している資料共有クライアント125の数が多くなった場合、グループの木構造のルートクライアントに操作データを配信すると、同じ仮想PCサーバ103に集約された他の資料共有クライアント125にデータが順次配信される。このため、資料共有サーバ105が送信するデータを大きく削減することが可能である。
これは、資料共有の会議に参加している資料共有クライアント125の数がある条件より多くなると、資料共有クライアント125が動作している仮想PCが同一の仮想PCサーバ103に集約されるからである。そして、この場合には、資料共有サーバ105が集約された資料クライアントの1つ(ルート)にデータを送信することで、集約された資料クライアント間でデータの配信が行われるからである。
なお、以上説明した実施の形態および実施例では、集約された仮想PCサーバ103内の複数の仮想PC部111における複数の資料共有クライアント125を、操作データの配信の順路として木構造に配置することにしたが、これに限るものではない。すなわち、1つの仮想PCサーバ103内の仮想PC部111の数が2つの場合には、ネットワーク102を介してその一方の仮想PC部111に操作データを配信し、該当する仮想PCサーバ103内で他方の仮想PC部111にこれを伝達させればよい。1つの仮想PCサーバ103内の仮想PC部111の数が3つ以上の場合でも、時間効率を考えなければ、操作データをこのように直列的な伝達で行ってもよく、この場合でもネットワーク102に対する負荷は減少する。