以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、第1の実施形態による電子会議システムを示す。図1に示す電子会議システム100は、ネットワーク102を介して相互に接続され、各々所定のロケーションに配置される複数のノート型パーソナルコンピュータ(以下、コンピュータ装置と参照する。)110a〜110eを含む。コンピュータ装置110には、デスクトップ画面またはアプリケーション・ウィンドウ画面をコンピュータ間で共有するための画面共有アプリケーションが実装されており、各コンピュータ装置110は、画面提供をする共有サーバまたは画面提供を受ける共有クライアントのいずれかまたは両方として動作することができる。
ロケーションは、図1に示す例では、第1会議室104、第2会議室106またはサテライトオフィス108であり、本実施形態の電子会議システム100は、離間したロケーション間における電子会議の開催を支援する。なお、要旨に直接関係しないため詳細な説明は割愛するが、コンピュータ装置110には、上述した画面共有アプリケーションが備える機能として、または他の実施形態では当該画面共有アプリケーションとは別のアプリケーションの機能として、インスタント・メッセージ、音声、映像その他マルチメディア・データの送受信を遠隔的に行うことが可能に構成されている。
電子会議システム100は、さらに、上述した各ロケーションに配置される複数のディスプレイ装置120a〜120dを含む。ディスプレイ装置120は、それぞれ、同一のロケーションに配置されるいずれかのコンピュータ装置110に、例えばVGA、D−Sub(D-Subminiature)、DVI(Digital Visual Interface)、DisplayPort(登録商標)、HDMI(High-Definition Multimedia Interface)などのディスプレイ・ケーブルを介して接続されており、そのコンピュータ装置110のデスクトップ画面を映像出力している。図1に示す例では、コンピュータ装置110aとディスプレイ装置120aとが直接接続されている。これらのディスプレイ装置120は、各ロケーションにおいて、コンピュータ装置110の操作者以外の会議出席者がデスクトップ画面を見ることができるよう利用される。
本実施形態の電子会議システム100は、さらに画面共有管理サーバ130を含む。画面共有管理サーバ130は、コンピュータ装置間に形成される画面の共有関係を管理するための画面共有管理アプリケーションが実装されており、上述したコンピュータ装置110間の画面共有の関係を成立等するためのやり取りを仲介する。
本実施形態において、ひとつの電子会議は、画面共有セッション(以下、単にセッションという。)と呼ばれる単位で管理され、各コンピュータ装置110は、画面提供をする共有サーバ、画面提供を受ける共有クライアント、またはこれらの両方としてこのセッションに参加することができる。以下、セッションに参加しているコンピュータ装置を指して参加ノードといい、参加ノードのうち共有サーバとして動作するコンピュータ装置を指して共有サーバということがあり、共有クライアントとして動作するコンピュータ装置を指して共有クライアントということがあり、両方として動作するコンピュータ装置を指して共有エージェントということもある。
画面共有管理サーバ130は、例えば参加ノードから画面提供の申し出を受信した場合、当該参加ノードを共有サーバとしてセッションを管理し、他の参加ノードにその旨を通知する。また画面共有管理サーバ130は、参加ノードからの所定の共有サーバを指定した画面共有の依頼を受信した場合、この参加ノードと共有サーバとのやり取りを仲介して、デスクトップ画面等の共有関係の成立を支援する。また画面共有管理サーバ130は、参加ノードからの追加の画面提供の申し出や画面切替の依頼に応答して、他の参加ノードとのやり取りを仲介し、画面の共有関係の成立、解消、変更を支援する。
なお、図1には、画面共有管理サーバ130の仲介のもと成立された共有関係が例示されている。この例では、コンピュータ装置110aが、プレゼンテーション・アプリケーションなどによりデスクトップ画面上に資料を提示し、該コンピュータ装置110aのデスクトップ画面が、ディスプレイ装置120aに映像出力されている。そして、コンピュータ装置110aは、共有サーバとして動作し、そのデスクトップ画面が、その共有クライアントとして動作するコンピュータ装置110c,110eに提供されている。これらコンピュータ装置110c,110eは、ネットワーク102を介してコンピュータ装置110aのデスクトップ画面の画面データを受信し、自身のディスプレイに表示している。さらに、コンピュータ装置110cは、上述したディスプレイ・ケーブルを介して接続されるディスプレイ装置120cに、コンピュータ装置110aのデスクトップ画面を出力している。
同様に、コンピュータ装置110bは、ドキュメント・アプリケーション等によりデスクトップ画面上で電子会議の議事録を編集し、そのデスクトップ画面がディスプレイ装置120bに出力されている。そして、コンピュータ装置110bは共有サーバとして動作し、そのデスクトップ画面が、その共有クライアントとして動作するコンピュータ装置110dに提供される。コンピュータ装置110dは、上述したディスプレイ・ケーブルを介して接続されるディスプレイ装置120dに、コンピュータ装置110bのデスクトップ画面を出力している。
このように本実施形態の電子会議システム100において、画面の共有関係は、複数の共有サーバと、該共有サーバに対する複数の共有クライアントとの多対多の関係が定義可能なセッションにより管理される。以下、セッションの作成、セッションの削除、セッションへの参加、セッションからの脱退、画面共有関係の形成、画面共有関係の解消および画面共有関係の変更などの処理について、詳細を説明する。
図2は、第1の実施形態の電子会議システム100において実現される機能ブロックを示す。図2に示すように、電子会議システム100は、コンピュータ装置110上に実現される画面共有アプリケーション112と、画面共有管理サーバ130上に実現される画面共有管理アプリケーション132とを含む。なお、図2に示す機能ブロックには、画面の共有関係が形成されている2つのコンピュータ装置110a,110cを示してある。
画面共有管理サーバ130の画面共有管理アプリケーション132は、セッション情報記憶部134と、セッション管理部136と、メッセージ仲介部138とを含む。コンピュータ装置110の画面共有アプリケーション112は、セッション処理部114と、メッセージ交換部116と、画面データ送受信部118とを含む。
画面共有管理サーバ130のセッション情報記憶部134は、例えばデータベースとして構成され、上述した複数の参加ノードによるセッションを記述し、画面提供をする共有サーバと、この画面提供を受ける共有クライアントとの間の関係を多対多で定義可能なセッション情報を記憶する。上記セッション情報は、詳細は後述するが、さらに各コンピュータ装置110のIPアドレス、ポート番号、通信プロトコルなどの通信設定情報を含む。なお、セッション情報記憶部134は、本実施形態の記憶手段を提供する。セッション管理部136は、コンピュータ装置110上の画面共有アプリケーション112から送信される各種リクエストに応答して、セッション情報記憶部134のセッション情報を使用しながら、各種リクエストを処理する。
コンピュータ装置110のセッション処理部114は、画面共有管理サーバ130のセッション管理部136に対応する機能部であり、セッション管理部136と通信し、各種リクエストを発行し、各種処理を依頼する。なお、セッション処理部114は、本実施形態の依頼送信手段を提供する。
セッション管理部136は、より詳細には、セッション情報提供部140と、セッション情報更新部142と、リクエスト処理部144とを含んで構成される。リクエスト処理部144は、コンピュータ装置110から受信する各種リクエストに対応する処理を行い、レスポンスを返す。
本実施形態で発行される各種リクエストとしては、詳細は後述するが、(1)セッションの新規作成を依頼するセッション作成リクエスト、(2)セッションへの参加を依頼するセッション参加リクエスト、(3)セッションの開始を依頼するセッション開始リクエスト、(4)セッションの終了を依頼するセッション終了リクエスト、(5)共有サーバとして画面提供を申し出る画面提供リクエスト、(6)共有クライアントがさらに共有サーバとして画面提供を申し出る画面追加リクエスト、(7)セッションからの脱退を依頼するセッション脱退リクエスト、(8)共有サーバから画面提供を受ける依頼をする画面共有リクエスト、(9)共有サーバの切替えを依頼する画面切替リクエスト、(10)画面共有の停止を依頼する画面共有停止リクエストを挙げることができる。
リクエスト処理部144は、上記(1)〜(7)のリクエストについては、そのリクエストが含む内容にてセッション情報を更新するべく、セッション情報更新部142に処理を渡し、適時当該リクエストに対するレスポンスを返す。一方、上記(8)〜(10)のリクエストについては、当該リクエストに関し相手方の承諾または確認を得るべく、リクエスト処理部144は、受信したリクエストを相手方の参加ノードに転送し、相手方の参加ノードからの当該リクエストに対するレスポンスを受信した場合に、それを発行元の参加ノードに転送する。またこの場合に、リクエスト処理部144は、合意が得られた更新内容を反映させるべく、適宜セッション情報更新部142に処理を渡す。リクエスト処理部144は、本実施形態の転送手段を提供する。
セッション情報更新部142は、上記リクエストの内容に従ってセッション情報記憶部134内のセッション情報を更新する。セッション情報提供部140は、当該参加ノードが参加しているセッションのセッション情報を提供する。セッション情報の提供を受けた参加ノードのセッション処理部114は、そのセッション情報に従って、ユーザ通知などを行う。セッション情報提供部140およびセッション情報更新部142は、それぞれ、本実施形態の提供手段および更新手段を提供する。
なお、本実施形態において、セッション情報を提供するとは、少なくとも提供先の参加ノードに関連するセッション情報を当該参加ノード側で構成することができる情報を提供することをいい、必ずしもセッション情報のすべての情報を提供することを意味しない。例えば、セッション参加直後には、参加ノードに関連するセッション情報すべてを配信し、以後、変更部分を適宜配信するようにすることができる。また、セッションに関連する情報であっても、提供先の参加ノードが無関係な情報については配信しないようにすることもできる。
画面共有管理サーバ130のメッセージ仲介部138は、インスタント・メッセージまたはSIP(Session Initiation Protocol)などの手法により、同一セッション内の参加ノード間のメッセージ交換を仲介する。このようなメッセージには、セッションの作成者からのセッションへの招待メッセージなどを挙げることができる。他の実施形態では、メッセージ仲介部138がSMTPサーバなどとして構成され、電子メールを介して上記メッセージ交換してもよい。
メッセージ交換部116は、画面共有管理サーバ130のメッセージ仲介部138に対応するコンピュータ装置110上の機能部であり、メッセージ仲介部138を経由させて、同一セッションに参加する他の参加ノードとのインスタント・メッセージの交換を処理する。メッセージ交換部116は、コンピュータ装置110の操作者からの指示に応答して、他の参加ノードへのメッセージを送信し、または、他の参加ノードからのメッセージを受信して、ディスプレイ画面表示などにより操作者に提示する。
コンピュータ装置110の画面データ送受信部118は、参加ノード間でデスクトップ画面またはアプリケーション画面の共有関係が成立した場合に、その画面データの送受信を行う。コンピュータ装置110が共有サーバとして動作する場合には、画面データ送受信部118は、当該コンピュータ装置110のディスプレイへの描画命令を取得することで局所的な更新領域の画像を生成し、適宜コマ落とし、圧縮等の処理を施して画面データとし、この画面データを相手の共有クライアントに宛てて送信する。共有クライアント側の画面データ送受信部118では、この画像データを受信して、デコード、更新領域の表示を行う。
また、共有クライアントからの共有サーバのデスクトップ画面のリモート操作が許可される場合には、共有クライアント側の画面データ送受信部118は、マウスやキーボードなどの入力コマンドを共有サーバ側の画面データ送受信部118へ送信し、共有サーバ側の画面データ送受信部118は、その入力コマンドを実行することができる。
コンピュータ装置110および画面共有管理サーバ130の上記各機能部は、それぞれ、図示しないCPU(Central Processing Unit)が、ROM(Read Only Memory)やHDD(Hard Disk Drive)、SSD(Solid State Drive)などの記録媒体から制御プログラムを読み出し、RAM(Random Access Memory)等の作業空間に展開することにより、適切なオペレーティング・システム(以下、OSと参照する。)上で実現される。以下、図3〜図12に示すフローチャートおよびデータ構造を参照しながら、第1の実施形態の画面共有システムにおいて実行される各種処理の詳細について説明する。
[セッションの作成、開始およびセッションへの参加]
図3は、第1の実施形態の電子会議システム100においてコンピュータ装置110a,110cおよび画面共有管理サーバ130間で実行される、セッション作成からセッション参加までの処理を示すフローチャートである。
図3に示す処理は、ステップS100で、コンピュータ装置110aが操作者からのセッション作成指示を受領したことに応答して開始される。なお、コンピュータ装置110aの操作者は、所定のユーザ名およびユーザIDを使用して本電子会議システム100にログインしており、操作者によるセッション作成指示にはセッション名の指定が含まれているものとする。
ステップS101では、コンピュータ装置110aのセッション処理部114aは、上記指示に応答して、画面共有管理サーバ130にセッション作成リクエストを送信し、画面共有管理サーバ130はこれを受信する。セッション作成リクエストは、セッション名(例えばMeeting1)と、ユーザID(例えばuser1@xxx.xx.xx)と、ユーザ名(例えばuser1)と、画面データの受信をするためのIPアドレス(例えば xxx.xxx.xxx.123)、ポート番号(例えば8000)およびプロトコル(例えばTCP)を含む通信設定情報とを内容として含む。なお、通信設定情報も、コンピュータ装置110a内に予め設定されているものとする。
ステップS102では、リクエスト処理部144からセッション情報更新部142へ処理が渡され、セッション情報更新部142は、当該リクエストの内容に従って、セッション情報記憶部134のセッション情報中に新規セッションに関連するレコードを作成する。図4は、本実施形態の画面共有管理サーバ130が保持するセッション情報のデータ構造を示す。図4(A)は、セッション情報のうちのセッション管理テーブルのデータ構造を例示し、図4(B)は、セッション情報のうちの参加ノード情報のデータ構造を例示する。
図4(A)に示すように、セッション管理テーブル200Aには、上記セッション作成リクエストに応答して、セッションを一意に識別するセッションIDと、指定のセッション名と、セッション状態とを含むレコードが作成される。セッション状態のカラムには、開催前(early)、開催中(active)、開催終了(terminated)などのセッションの状態を示す値が入力され、作成直後であれば、例えば開催前(early)が入力される。セッション管理テーブル200Aには、さらに、当該セッションIDのデータ中に、依頼元のコンピュータ装置110aに対応する上記ユーザID(例えばuser1@xxx.xx.xx)のレコードが追加され、当該コンピュータ装置110aが参加ノードとして登録されている。
各参加ノード毎に作成されるレコードは、通信方向と、通信と、共有画面タイプとのカラムが設けられる。通信方向のカラムには、その参加ノードが共有サーバ(sendonly)であるか、共有クライアント(recvonly)であるか、共有エージェント(sendrecv)であるかを示す値が入力され、参加直後で特に指定がなければ、いずれにも該当しないことを示すデフォルトの値(−)が入力される。通信のカラムには、詳細は後述するが、画面の共有関係が記述されるものであり、作成直後ではデフォルトの値(−)が入力される。共有画面タイプのカラムには、その参加ノードが共有ノードとして動作する場合に、その共有画面のコンテンツの種類を識別する値が入力されるものであり、作成直後ではデフォルトの値(−)が入力される。参加ノード情報210については、図4(B)に示すように、参加ノード毎に、ユーザID、ユーザ名、IPアドレス、ポート番号およびプロトコルが入力される。
再び図3を参照する。セッション情報の内容が更新されると、ステップS103では、リクエスト処理部144へ処理が戻され、リクエスト処理部144は、セッション作成リクエストに対するレスポンスをコンピュータ装置110aに返信し、コンピュータ装置110aはこれを受信する。このレスポンスは、新規作成されたセッションに関連するセッション情報を含むことができる。ステップS104では、レスポンスを受信したコンピュータ装置110aでは、セッション処理部114aが、そのセッションIDを画面共有アプリケーション112aの画面上に表示する。
ステップS105で、コンピュータ装置110aが操作者からの所望の相手方を指定する招待指示を受領すると、ステップS106では、メッセージ交換部116aは、画面共有管理サーバ130のメッセージ仲介部138を介して、所望の相手方のコンピュータ装置110cに対し、セッションIDを含むセッションへの招待メッセージを送信する。このとき、相手方が複数あれば、その相手方全員に招待メッセージが送信される。なお、複数の参加ノードへ招待メッセージを送信する場合、画面共有管理サーバ130へ一つの招待メッセージが送信され、画面共有管理サーバ130で各参加ノードに招待メッセージをフォークするよう構成してもよい。ステップS107では、招待メッセージを受信したコンピュータ装置110cでは、メッセージ交換部116cが、セッションへの招待を画面共有アプリケーション112cの画面上に表示する。
ステップS108で、コンピュータ装置110cが操作者からのセッション参加の指示を受領すると、ステップS109で、セッション処理部114cは、上記指示に応答して、画面共有管理サーバ130にセッション参加リクエストを送信し、画面共有管理サーバ130はこれを受信する。セッション参加リクエストは、上述したセッション作成リクエストと同様に、招待されたセッションのセッション名(例えばMeeting1)と、コンピュータ装置110cのユーザID(例えばuser3@xxx.xx.xx)およびユーザ名(例えばuser3)と、画面データの受信をするための通信設定情報とを含む。
セッション参加リクエストを受信した画面共有管理サーバ130では、ステップS110で、セッション情報更新部142に処理が渡され、セッション情報更新部142は、当該リクエストの内容に従って、セッション情報記憶部134内のセッション情報を更新する。この更新では、セッションIDで識別されるデータ中にコンピュータ装置110cを参加ノードとして新たなレコードが作成される。
ステップS111では、セッション情報更新部142からリクエスト処理部144へ処理が渡され、リクエスト処理部144は、セッション参加リクエストに対するレスポンスをコンピュータ装置110cに返信する。このセッション参加レスポンスには、当該コンピュータ装置110cが参加したセッションに関連するセッション情報が含まれる。セッション参加レスポンスを受信したコンピュータ装置110cでは、ステップS112で、セッション処理部114cは、参加が完了した旨を画面共有アプリケーション112cの画面上に表示する。
一方、画面共有管理サーバ130では、ステップS113で、セッション情報提供部140へ処理が渡され、セッション情報提供部140は、当該セッションの参加ノードであるコンピュータ装置110aに対し、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。セッションに複数の参加ノードが存在する場合には、少なくとも新規参加のコンピュータ110c以外の他の参加ノードに更新セッション情報通知が送信される。更新セッション情報通知を受信したコンピュータ装置110aでは、ステップS114で、セッション処理部114aが、セッション情報の更新を検知し、その更新箇所から新規参加者があったことを検知し、画面共有アプリケーション112aの画面上に表示する。
招待メッセージを受信した他のコンピュータ装置110も同様に、それぞれ、ステップS107からステップS114の同様の処理フローを行うことにより、所定のセッションに参加することができる。図2に示した例では、コンピュータ装置110b,110d,110eも同様にセッションに参加する。
[画面の共有関係の成立]
図5は、第1の実施形態の電子会議システム100においてコンピュータ装置110a,110cおよび画面共有管理サーバ130間で実行される、画面の共有関係を成立させるための処理を示すフローチャートである。以下、セッションに参加するコンピュータ装置110a〜コンピュータ装置110eを便宜上、参加ノードA〜参加ノードEと参照する。また、図5においては、代表例として、参加ノードAが共有サーバとなり、参加ノードCが参加ノードの相手方の共有クライアントとなる場合について説明するが、他の参加ノード間の画面の共有関係についても同様である。
図5に示す処理は、ステップS200で、参加ノードAが操作者からの画面提供をする旨の指示を受領したことに応答して開始される。なお、参加ノードAのデスクトップ上には、共有しようとする所望のプレゼンテーションの画面が表示されているものとする(図13(A))。ステップS201では、参加ノードAのセッション処理部114aは、上記指示に応答して、画面提供を申し出る画面提供リクエストを画面共有管理サーバ130に送信し、画面共有管理サーバ130は、これを受信する。画面提供リクエストは、ユーザID(例えばuser1@xxx.xx.xx)と、共有サーバとなる旨を示す通信方向(sendonly)と、共有画面タイプ(例えばmaterial)とを含み、その内容でセッション情報の変更を依頼するリクエストである。
画面提供リクエストを受信した画面共有管理サーバ130では、ステップS202で、リクエスト処理部144からセッション情報更新部142へ処理が渡され、セッション情報更新部142は、当該リクエストの内容に従って、セッション情報記憶部134のセッション情報を更新する。すなわち、ユーザIDのレコードにおいて、通信方向および共有画面タイプが、それぞれ「sendonly」および「material」に書き換えられる。
セッション情報が更新されると、セッション情報更新部142からリクエスト処理部144へ処理が戻される。ステップS203では、リクエスト処理部144は、画面提供リクエストに対するレスポンスを参加ノードAに返信する。ステップS204では、セッション情報提供部140へ処理が渡され、セッション情報提供部140は、当該セッションに参加する参加ノードに対し、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。ステップS205では、参加ノードCのセッション処理部114cは、セッション情報の更新を検知し、その更新箇所から参加ノードA(user1)が画面提供の申し出をし、共有サーバとして動作していることを検知し、共有サーバおよびその共有画面タイプを画面共有アプリケーション112cの画面上に表示する。ここでは、共有サーバを提示する際に共有画面タイプが提示されるので、参加ノード側では、画面共有を開始する前に、どのような内容であるかをある程度知ることができるようになる。
ステップS206で、参加ノードCが操作者からの提示の共有サーバ(参加ノードA)を相手方とした画面共有の指示を受領すると、ステップS207では、セッション処理部114は、上記指示に応答して、指定の共有サーバ(参加ノードA)を相手方とした画面共有リクエストを画面共有管理サーバ130に送信し、画面共有管理サーバ130のリクエスト処理部144は、その指定された参加ノードAに画面共有リクエストを転送する。
画面共有リクエストを受信した参加ノードAでは、ステップS208で、セッション処理部114aが、画面共有の依頼元のユーザIDまたはユーザ名を画面上に表示し、操作者からの画面共有の許諾を受ける。ステップS209では、参加ノードAのセッション処理部114aは、画面共有管理サーバ130を介して画面共有リクエストに対するレスポンスを依頼元の参加ノードCに送信し、参加ノードCがこれを受信する。
ステップS210では、参加ノードAでは、画面データ送受信部118aが、提供されたセッション情報中の通信設定を参照して、画面共有リクエストの送信元の参加ノードCに向けて画面データの送信を開始する。一方、レスポンスを受信した参加ノードCでは、ステップS211で、画面データ送受信部118cが、参加ノードAから送信された画面データの受信を開始する。これにより、共有サーバとして動作する参加ノードAと、共有クライアントとして動作する参加ノードCとのピア・ツー・ピアの画面の共有関係が確立される(図13(A))。
画面共有レスポンスを転送した画面共有管理サーバ130では、リクエスト処理部144が、当該画像共有リクエストおよび画像共有レスポンスの内容から画面共有関係が成立したことを検知し、セッション情報更新部142へ処理を渡す。ステップS212では、セッション情報更新部142は、セッション情報記憶部134内のセッション情報を更新し、セッション情報提供部140へ処理を渡す。より具体的には、セッション情報更新部142は、参加ノードC(user3)を共有クライアント(recvonly)とし、参加ノードAおよび参加ノードCの通信カラムにこの画面の共有関係を記述する。
ステップS213では、セッション情報提供部140は、当該セッションの参加ノードに対し、適宜、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信することができる。これにより、他の参加ノードも、参加ノードAおよび参加ノードC間で画面の共有関係が成立したことを知ることができる。
図5に示すフローと同様に、参加ノードA(user1)から参加ノードE(user5)への共有関係がさらに形成され、参加ノードB(user2)から参加ノードD(user4)への共有関係が形成されると、図6(A)に示すセッション管理テーブル200Bの状態となる。図6(A)に示すセッション管理テーブル200Bでは、通信方向のカラムには、参加ノードA(user1)および参加ノードB(user2)が共有サーバ(sendonly)として動作し、参加ノードC〜参加ノードE(user3〜user5)が共有クライアント(recvonly)として動作していることが示されている。さらに図6(A)には、通信カラムに、参加ノードA(user1)から参加ノードC(user3)および参加ノードE(user5)への画面データの流れ、参加ノードB(user2)から参加ノードD(user4)への画面データの流れが共有関係として記述されていることが理解される。
[画面の共有関係の切替]
図7は、第1の実施形態の電子会議システム100において参加ノードA、参加ノードCおよび画面共有管理サーバ130間で実行される、画面の共有関係を切替処理を示すフローチャートである。なお、図7に示す処理が開始される時点では、参加ノードCは、参加ノードAを共有サーバとする共有クライアントとして動作している(図13(A))。図7においては、代表例として、参加ノードCが、共有サーバである参加ノードAに代わり共有サーバとなる場合について説明するが、他の参加ノードについても同様である。
図7に示す処理は、ステップS300で、参加ノードCが操作者からの画面切替の指示を受領したことに応答して開始される。この画面切替の指示は、共有サーバである参加ノードA(user1)を指定して、その共有クライアントである当該参加ノードCが代わりに共有サーバとして動作する旨の申し出である。このような画面切替は、共有クライアントとして動作していた参加ノードの操作者が、一時的に資料をデスクトップ画面を使用して他の参加ノードに提示したい場合等に好適に行われるものである。
ステップS301では、参加ノードCのセッション処理部114cは、上記指示に応答して、画面共有管理サーバ130に画面切替を要求する画面切替リクエストを送信する。画面共有管理サーバ130では、リクエスト処理部144は、受信した画面切替リクエストをその指定される相手方である参加ノードAに転送する。この画面提供リクエストには、指定の共有サーバのユーザID(例えばuser1@xxx.xx.xx)と、切替先のユーザID(例えばuser3@xxx.xx.xx)との指定が含まれる。
画面切替リクエストを受信した参加ノードAでは、ステップS302で、セッション処理部114aが、画面切替の要求および依頼元のユーザIDを画面上に表示し、操作者からの画面共有の許諾を受ける。ステップS303では、参加ノードAのセッション処理部114aは、画面共有管理サーバ130を介して画面切替リクエストに対するレスポンスを依頼元の参加ノードCに送信し、参加ノードCが受信する。
画面切替レスポンスを転送した画面共有管理サーバ130では、リクエスト処理部144は、当該画像切替リクエストおよび画像切替レスポンスの内容に従い、画面切替の合意が成立したことを検知し、セッション情報更新部142へ処理を渡す。ステップS304では、セッション情報更新部142は、セッション情報記憶部134内のセッション情報を更新し、セッション情報提供部140へ処理を渡す。ここでは、参加ノードCが共有サーバ(sendonly)となり、参加ノードAが共有クライアント(recvonly)となる旨でセッション情報が更新され、参加ノードAの共有クライアントとして動作していた参加ノードは、参加ノードCの共有クライアントとして書き換えられる。ステップS305では、セッション情報提供部140は、当該セッションの参加ノードに対し、適宜、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。
ステップS303で参加ノードAがレスポンスを返信すると、ステップS306へ処理が進められる。ステップS306では、参加ノードAのセッション処理部114aは、自己を共有サーバとしていた共有クライアント(参加ノードC、参加ノードE)に対し、共有サーバが自己から参加ノードCに切り替えられ旨の画面切替通知を送信する。なお、ここでは複数の参加ノードへ画面切替通知を送信しているが、画面共有管理サーバ130へは一つの画面切替通知が送信され、画面共有管理サーバ130で各参加ノードに画面切替通知をフォークするよう構成してもよい。
画面切替通知を受信した参加ノードC(ここでは、参加ノードAを共有サーバとしていた参加ノードCについて説明するが、参加ノードEについても同様の処理が行われる。)は、ステップS307で、画面共有管理サーバ130を介して画面共有停止リクエストを自身の共有サーバとして動作している参加ノードAに送信する。画面共有停止リクエストを受信した参加ノードAは、ステップS308で、画面共有管理サーバ130を介して画面共有停止レスポンスを返信し、参加ノードCはこれを受信する。レスポンスを受信した参加ノードCでは、ステップS309で、画面データ送受信部118cが、参加ノードAから送信される画面データの受信を停止する。一方、レスポンスを返信をした参加ノードAでは、ステップS310で、画面データ送受信部118aが、画面共有停止リクエストの送信元の参加ノードCに向けた画面データの送信を停止する。これにより、共有サーバとして動作していた参加ノードAと、共有クライアントとして動作していた参加ノードCとの画面共有が解消される。
参加ユーザA(ここでは、新たに参加ノードCを共有サーバとして画面共有を要求する参加ノードAについて説明するが、参加ノードEについても同様の処理が行われる。)は、ステップS311で、共有サーバCを相手方とした画面共有リクエストを画面共有管理サーバ130に送信する。画面共有管理サーバ130では、リクエスト処理部144は、受信した画面共有リクエストをその指定される相手方である参加ノードCに転送する。
画面共有リクエストを受信した参加ノードCでは、ステップS312で、セッション処理部114cが、画面共有の依頼元のユーザIDをユーザ通知し、操作者からの画面共有の許諾を適宜受ける。ステップS313では、参加ノードCのセッション処理部114cは、画面共有管理サーバ130を介して画面共有リクエストに対するレスポンスを依頼元の参加ノードAに送信する。
ステップS314では、参加ノードCでは、画面データ送受信部118cが、提供されたセッション情報中の通信設定を参照して、画面共有リクエストの送信元の参加ノードAに向けて画面データの送信を開始する。一方、レスポンスを受信した参加ノードAでは、ステップS315で、画面データ送受信部118aが、参加ノードCから送信された画面データの受信を開始する。これにより、参加ノードAの共有クライアントとして動作していた参加ノードCが、参加ノードAを代替して共有サーバとして動作し、参加ノードAを基点とした共有関係から参加ノードCを基点とした共有関係へ変更される(図13(B))。
図6(B)は、図6(A)に示す状態から上記フローにより、参加ノードAと参加ノードCとの共有関係が交換された状態を示す。図6(B)に示すセッション管理テーブル200Cでは、参加ノードA(user1)および参加ノードC(user3)が、それぞれ共有クライアント(recvonly)および共有サーバ(sendonly)に変更され、参加ノードA(user1)、参加ノードC(user3)および参加ノードE(user5)の通信カラムは、参加ノードC(user3)から参加ノードA(user1)および参加ノードE(user5)への画面データの流れに変更されていることが理解される。
[追加の画面の共有関係の成立]
図8は、第1の実施形態の電子会議システム100において参加ノードE、参加ノードCおよび画面共有管理サーバ130間で実行される、追加の画面の共有関係を成立させるための処理を示すフローチャートである。なお、図8に示す処理が開始される時点では、参加ノードEおよび参加ノードAは、参加ノードCを共有サーバとする共有クライアントとして動作している。
図8に示す処理は、ステップS400で、参加ノードEが操作者からの追加の画面提供をする旨の指示を受領したことに応答して開始される。なお、参加ノードEのデスクトップ上には、共有サーバである参加ノードCのデスクトップ画面が縮小されてウィンドウ画面上に表示され、他のウィンドウにおいて所望のプレゼンテーションの画面が表示されているものとする(図13(C)の参加ノードE側画面)。ステップS401では、参加ノードEのセッション処理部114eは、上記指示に応答して、追加の画面提供を申し出る画面追加リクエストを画面共有管理サーバ130に送信し、画面共有管理サーバ130はこれを受信する。画面追加リクエストには、ユーザID(例えばuser5@xxx.xx.xx)と、共有エージェントとなる旨を示す通信方向(sendrecv)と、共有画面タイプ(例えばmaterial)とが含まれている。
画面追加リクエストを受信した画面共有管理サーバ130では、ステップS402で、セッション情報更新部142は、当該リクエストの内容に従って、セッション情報記憶部134のセッション情報を更新し、ステップS403で、リクエスト処理部144は、画面追加リクエストに対するレスポンスを参加ノードEに返信する。ステップS404で、セッション情報提供部140は、当該セッションの参加ノードに対し、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。ステップS405で、参加ノードCのセッション処理部114cは、セッション情報の更新を検知し、その更新箇所から参加ノードE(user5)が追加の画面提供の申し出をし、共有エージェントとして動作していることを検知し、共有エージェントおよびその共有画面タイプを画面共有アプリケーション112cの画面上に表示する。
ステップS406で、参加ノードCが操作者からの参加ノードEを相手方とした画面共有の指示を受領すると、ステップS407〜ステップS413の処理が行われる。ステップS407〜ステップS413の処理が、図5に示したステップS207〜ステップS213の処理と同様であるため、詳細な説明は割愛するが、これにより、共有エージェントとして動作する参加ノードEと、参加ノードCとの画面共有が確立される。同様に、参加ノードAが操作者からの参加ノードEを相手方とした画面共有の指示を受領すると、共有エージェントとして動作する参加ノードEと、参加ノードAとの画面共有が確立される。
図9は、上記図8に示したフローにより、参加ノードEと他の参加ノードとの間で新たに共有関係が形成された状態を示す。図9に示すセッション管理テーブル200Dでは、参加ノードE(user5)および参加ノードC(user3)が共有エージェント(sendrecv)に変更され、参加ノードE(user5)から参加ノードC(user3)および参加ノードA(user1)への画面データの流れが通信のカラムに新たに追加されていることが理解される。
なお、参加ノードA、参加ノードCおよび参加ノードEの画面の共有関係は、図13(C)に示された状態となる。参加ノードEは、共有エージェントとして、参加ノードCから画面提供を受けてウィンドウ上に表示する一方で、参加ノードCに対しデスクトップ画面の画面提供を行っているが、参加ノードCから画面提供を受けて表示する画面領域を除外したデスクトップ領域を参加ノードCに対し提供することができる。
[画面の共有関係の解消]
図10は、第1の実施形態の電子会議システム100において参加ノードE、参加ノードCおよび画面共有管理サーバ130間で実行される、図8に示すフローにより追加された共有画面を削除する処理を示すフローチャートである。なお、図10に示す処理が開始される時点では、参加ノードEは、参加ノードCから画面提供を受けるとともに、参加ノードCおよび参加ノードAへ画面提供する共有エージェントとして動作している。図10を参照して代表例を説明するが、他の参加ノード間の共有関係についても同様に適用できる。
図10に示す処理は、ステップS500で、参加ノードEが操作者からの追加した共有画面の削除の指示を受領したことに応答して開始される。ステップS501では、参加ノードEのセッション処理部114eは、上記指示に応答して、画面共有管理サーバ130を介して画面共有停止リクエストを参加ノードCに送信する。この画面共有停止リクエストには、参加ノードEのユーザIDと、その相手方の参加ノードのユーザIDとが含まれる。
なお、参加ノードEの共有クライアントとして動作する参加ノードが複数ある場合には、それらの参加ノードにも画面共有停止リクエストが送信される。ここでは、参加ノードAにも画面共有停止リクエストが送信される。また、複数の参加ノードへ画面共有停止リクエストを送信する場合、画面共有管理サーバ130へは一つの画面共有停止リクエストが送信され、画面共有管理サーバ130で各参加ノードに画面共有停止リクエストをフォークするよう構成してもよい。
画面共有停止リクエストを受信した参加ノードC(ここでは、参加ノードEの画面提供を受ける参加ノードCについて説明するが、参加ノードAについても同様の処理が行われる。)では、ステップS502で、セッション処理部114cが画面共有管理サーバ130を介して画面共有停止レスポンスを返信し、ステップS503で、画面データ送受信部118cが、参加ノードEから送信される画面データの受信を停止する。
一方、レスポンスを受信した参加ノードEでは、ステップS504で、画面データ送受信部118eが、参加ノードC(同様に参加ノードA)に向けた画面データの送信を停止する。これにより、共有サーバとして動作していた参加ノードEと、共有クライアントとして動作していた参加ノードC(同様に参加ノードA)との画面共有が解消される。
画面共有停止レスポンスを転送した画面共有管理サーバ130では、リクエスト処理部144は、当該画像共有停止リクエストおよび画像共有停止レスポンスの内容から画面共有関係が解消したことを検知し、セッション情報更新部142へ処理を渡す。ステップS505では、セッション情報更新部142は、セッション情報記憶部134内のセッション情報を更新し、セッション情報提供部140へ処理を渡す。ここでは、参加ノードEは、共有クライアント(recvonly)として動作する旨で更新される。ステップS506では、セッション情報提供部140は、当該セッションの参加ノードに対し、適宜、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。
[セッション脱退]
図11は、第1の実施形態の電子会議システム100において参加ノードEがセッションから脱退する処理を示すフローチャートである。なお、図11に示す処理が開始される時点では、参加ノードEは、参加ノードCからの画面提供を受ける共有クライアントとして動作している。図11を参照して代表例を説明するが、他の参加ノードについても同様に適用できる。
図11に示す処理は、ステップS600で、参加ノードEが操作者からのセッション脱退の指示を受領したことに応答して開始される。参加ノードEが共有クライアントとして画面提供を受けているため、ステップS601では、セッション処理部114eは、上記指示に応答して、まず、画面共有管理サーバ130を介して画面共有停止リクエストを相手方の共有サーバである参加ノードCに送信する。なお、ここでは、共有クライアント側からの画面共有停止リクエストであるため、共有サーバへ送信するのみとするが、参加ノードが共有サーバまたは共有エージェントとして動作していた場合には、自身の画面提供を受ける各共有クライアントの参加ノードにも当該リクエストを送信することができる。同様に、参加ノードEが複数の画面提供を受けていた場合には、各共有サーバまたは共有エージェントへ送信することができる。
画面共有停止リクエストを受信した参加ノードCは、ステップS602で、画面共有管理サーバ130を介して画面共有レスポンスを返信し、ステップS603で、参加ノードEへの画面データの送信を停止する。一方、レスポンスを受信した参加ノードEは、ステップS604で、参加ノードCからの画面データの受信を停止する。これにより、共有サーバとして動作していた参加ノードCと、当該参加ノードEとの画面共有が解消される。
ステップS605では、参加ノードEは、セッション脱退リクエストを画面共有管理サーバ130に送信する。ステップS606では、画面共有管理サーバ130のリクエスト処理部144は、参加ノードEにセッション脱退レスポンスを応答し、ステップS607で、画面共有管理サーバ130のセッション情報更新部142は、当該リクエストの内容に従って、セッション情報記憶部134のセッション情報を更新する。すなわち、参加ノードE(user5)のレコードを削除し、参加ノードE(user5)との通信を記述する他の参加ノードのデータも修正する。
セッション情報が更新されると、ステップS608では、セッション情報提供部140は、当該セッションの参加ノードに対し、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。これにより、参加ノードEがセッションから途中で脱退したことが他の参加ノードに知られることとなる。
[セッション終了フロー]
図12は、第1の実施形態の電子会議システム100においてセッションを終了させる処理を示すフローチャートである。なお、図12に示す処理が開始される時点では、参加ノードAは、共有クライアントとして動作し、参加ノードCは、参加ノードAの共有サーバとして動作している。
図12に示す処理は、ステップS700で、参加ノードAが操作者からのセッション終了の指示を受領したことに応答して開始される。ステップS701では、参加ノードAのセッション処理部114aは、上記指示に応答して、画面共有管理サーバ130にセッション終了リクエストを送信し、画面共有管理サーバ130はこれを受信する。このセッション終了リクエストには、終了させるセッションのセッションIDと、開催終了を示す状態値(terminated)を含む。
画面共有管理サーバ130のリクエスト処理部144は、ステップS702で、参加ノードAにレスポンスを返信し、ステップS703で、終了が指定されるセッションの参加ノードに対し、セッション終了通知を送信する。参加ノードAが共有クライアントとして画面提供を受けているため、参加ノードAでは、ステップS704で、セッション処理部114aが、画面共有管理サーバ130を介して、共有サーバである参加ノードCに画面共有停止リクエストを送信する。なお、ここでは共有サーバへ送信するのみとしているが、参加ノードAが共有サーバまたは共有エージェントとして動作していた場合には、自身の画面提供を受ける各共有クライアントの参加ノードにもリクエストを送信することができる。
画面共有停止リクエストを受信した参加ノードCは、ステップS705で、画面共有管理サーバ130を介して画面共有停止レスポンスを返信し、ステップS706で、参加ノードAへの画面データの送信を停止する。一方、レスポンスを受信した参加ノードAは、ステップS707で、参加ノードCからの画面データの受信を停止する。これにより、共有サーバとして動作していた参加ノードCと、共有クライアントとして動作していた参加ノードAとの画面共有が解消される。
画面共有停止レスポンスを転送した画面共有管理サーバ130では、リクエスト処理部144は、セッション脱退リクエストに続くやり取りからセッションを閉じてよいことを検知し、セッション情報更新部142へ処理を渡す。ステップS708では、セッション情報更新部142は、セッション情報記憶部134内のセッション情報を更新する。
なお、図12は、参加ノード側から明示的なセッション終了の指示があった場合のセッション終了フローを示すが、他の実施形態では、所定の時刻が到来したことに応答して、またはセッションから参加ノード全部が脱退したことに応答して、画面共有管理サーバ側からセッション終了フローを開始することもできる。
上述した第1の実施形態によれば、画面共有管理サーバ130は、複数の共有サーバおよび複数の共有クライアント間の多対多の共有関係が定義可能なセッション情報を使用して、参加ノード間における共有関係の成立、解消、変更の手続を仲介することができる。画面共有管理サーバ130が保持するセッション情報は、共有関係の成立、解消、変更の手続中に随時更新しつつ、最新のセッション情報がセッションの参加ノード間で共有されることとなる。このため、各参加ノード間の多対多の画面共有関係を容易に構築することができ、また変更することができるため、複数のディスプレイを活用した遠隔会議を行う際の煩雑な作業を削減し、遠隔会議が効率的に行われるよう支援することができる。
以下、図14〜図16を参照しながら、第2の実施形態による電子会議システム300について説明する。図14は、第2の実施形態による電子会議システムを示す。図14に示す電子会議システム300は、ネットワーク302を介して相互に接続される複数のコンピュータ装置310a〜310c、複数のディスプレイ装置320a,320bおよび共有管理サーバ330に加えて、さらに、ネットワーク302に接続する端末装置350a〜350cと、タッチパネル・ディスプレイ装置360a,360bとを含んで構成される。
コンピュータ装置310およびディスプレイ装置320の構成は、第1の実施形態と同様の構成であるが、第2の実施形態では、コンピュータ装置310aがディスプレイ装置320aに直接接続されておらず、ディスプレイ装置320aには、端末装置350cが接続されている。端末装置350は、ユーザインターフェースを備えないが、コンピュータ装置310と同様に、デスクトップ画面またはアプリケーション・ウィンドウ画面をコンピュータ間で共有するための画面共有アプリケーションが実装されており、共有サーバまたは共有クライアントのいずれかまたは両方として動作することができる。
端末装置350は、利用者が直接操作をすることができないが、端末装置350a,350bには、タッチパネル・ディスプレイ装置360a,360bがそれぞれ接続されており、タッチパネル・ディスプレイ装置360に対する操作が端末装置350にフィードバックされるように構成されている。これにより、マウスなどのポインティング・デバイスを接続することなしに、端末装置350を制御することができるよう構成されている。
端末装置350には、例えばペイント・アプリケーションがインストールされており、タッチパネル・ディスプレイ装置360をタッチすることで、絵を描くことができ、ホワイトボードの機能を電子的に実現している。なお、第2の実施形態における説明では、デスクトップ画面全体ではなく、所定のアプリケーション画面を共有対象とする。これに対応して、セッション管理テーブル内の共有画面タイプには、アプリケーションを識別するアプリケーション名が入力される。
以下、説明の便宜のため、端末装置350aおよびタッチパネル・ディスプレイ装置360aを合わせて電子ホワイトボード370aと参照し、端末装置350b等についても同様とする。また、説明する実施形態では、端末装置350とタッチパネル・ディスプレイ装置360とは、それぞれ個別の装置として構成されているが、他の実施形態では、これらを組み合わせて一体の電子ホワイトボード370として構成してもよい。
第2の実施形態の画面共有管理サーバ330は、第1の実施形態と同様に、画面共有管理アプリケーションが実装されており、コンピュータ装置、端末装置間に形成される画面の共有関係をセッションにより管理する。
[セッションの事前設定]
図15は、第2の実施形態における画面共有管理サーバ330が保持するセッション管理テーブルのデータ構造を示す。図15(A)は、「meeting2」のセッションが開始される前の、セッション管理テーブル400Aの状態を示す。図15(A)に示す例では、所定のコンピュータ装置310および電子ホワイトボード370が、セッション開始前から予め参加ノードとしてセッションに登録される。また、いくつかの参加ノードには、通信方向、共有画面タイプの値が事前指定されている。
第2の実施形態におけるセッション管理テーブル400には、さらに、各セッションのレコードに時間のカラムが設けられており、ここには、そのセッションの開始予定時刻および終了予定時刻を入力することができる。
[セッション自動開始および自動終了]
図16は、第2の実施形態の電子会議システム300においてコンピュータ装置310および画面共有管理サーバ330間で実行される、セッションを開始する処理を示すフローチャートである。以下、セッションに参加するコンピュータ装置310a、電子ホワイトボード370a、コンピュータ装置310b、電子ホワイトボード370b、コンピュータ装置310c、端末装置350cを、それぞれ参加ノードA〜参加ノードFと参照する。また、図15においては、代表例として、参加ノードAに対する処理のみが示されているが、他の参加ノードについても同様である。
図16に示す処理は、画面共有管理サーバ330が、特定のセッション(meeting2)のセッション開始時刻が到来したことに応答して、ステップS800から開始する。ステップS801では、画面共有管理サーバ330は、当該セッションの参加ノードの通信設定情報を読み出し、その参加ノード(図16に示す例では参加ノードA)にセッション招待リクエストを送信する。セッション招待リクエストは、当該セッションに対応するセッション情報を含むものである。
セッション招待リクエストを受信した参加ノードAは、ステップS802で、セッション招待リクエストに対するレスポンスを画面共有管理サーバ330へ返信し、ステップS803で、当該リクエストが含むセッション情報に従って、現在の状態を画面共有アプリケーションの画面上等に表示する。このように第2の実施形態では、予め設定したセッション開始予定時刻に合わせて、セッションに参加ノードを自動的に招待することができる。なお、図16に示したものと同様のフローにより、セッション終了時刻が到来したことに応答して、自動的にセッションを終了させることもできる。
[画面の共有関係の成立1]
以下、第2の実施形態の電子会議システム300における画面の共有関係を成立させるための処理の流れについて説明する。図17は、第2の実施形態の電子会議システムにおいて参加ノード(コンピュータ装置310a:user1@xxx.xx.xx)、参加ノードF(端末装置350c:user6@xxx.xx.xx)および画面共有管理サーバ330間で実行される、画面の共有関係を成立させるための処理を示すフローチャートである。なお、図17に示すフローチャートは、図5に示したものと類似するため、詳細な説明は省略する。
図17に示す処理は、ステップS900で、参加ノードAが操作者からの画面提供をする旨の指示を受領したことに応答して開始される。ステップS901では、参加ノードAは、上記指示に応答して、画面共有管理サーバ330に画面提供リクエストを送信する。画面提供リクエストを受信した画面共有管理サーバ330は、ステップS902で、当該リクエストの内容に従って、セッション情報を更新する。例えば、ユーザIDのレコードの通信方向と、共有画面タイプとが、「sendonly」および「presentation」(プレゼンテーション・アプリケーションを識別する)に書き換えられる。
セッション情報が更新されると、ステップS903では、画面共有管理サーバ330は、画面提供レスポンスを参加ノードAに返信し、ステップS904で、当該セッションに参加する参加ノードに対し、セッション情報のうちの少なくとも更新部分を含む更新セッション情報通知を送信する。ステップS905では、更新セッション情報通知を受信した参加ノードFは、セッション情報の更新を検知し、その更新箇所から参加ノードA(user1)がプレゼンテーション・アプリケーション(presentation)の画面の提供の申し出をし、共有サーバ(sendonly)として動作していることを検知し、所与の条件に合致するか否かを判断する。参加ノードFは、直接操作をすることができないため、この所与の条件とは、画面提供の申し出に応答した画面共有の開始を条件付けるものである。例えば、セッション情報の通信方向が「sendonly」または「sendrecv」であり、かつ、共有画面タイプが「presentation」である参加ノードに関する情報を受信した場合に、自動的に画面共有を開始し、当該参加ノードに対し画面共有リクエストを送信するよう条件付けることができる。
ステップS905の判断の結果、画面共有を行う旨が判定されると、ステップS906では、上記判定に対応して、参加ノードAを相手方とした画面共有リクエストを画面共有管理サーバ130に送信し、画面共有管理サーバ130は、画面共有リクエストを参加ノードAに転送する。なお、以降のステップS907〜ステップS912処理は、図5に示したステップS208〜ステップS213と同様であるため、説明を割愛するが、この処理により、共有サーバとして動作する参加ノードAと、共有クライアントとして動作する参加ノードFとのピア・ツー・ピアの画面の共有関係が確立される。ひいては、コンピュータ装置310aとディスプレイ装置320aとを直接接続することなしに、コンピュータ装置310aの画面をディスプレイ装置320aに映像出力させることが可能となる。
[画面の共有関係の成立2]
また、参加ノードB(電子ホワイトボード370a:user2@xxx.xx.xx)および参加ノードD(電子ホワイトボード370b:user4@xxx.xx.xx)も同様に、ユーザが直接操作するものではないため、所与の条件により、画面提供の申し出に応答した画面共有の開始を条件付けることができる。この所与の条件は、例えば、セッション情報における参加ノードの通信方向が「sendonly」または「sendrecv」であり、かつ、共有画面タイプが「paint」(ペイント・アプリケーション)の場合に画面共有を自動的に開始するよう条件を定めることができる。
上記条件が参加ノードDに設定されている場合、図15(A)に示すセッション管理テーブル400Aにおいて、参加ノードBの通信方向が「sendonly」だり、かつ共有画面タイプが「paint」であるため、セッション開始時に招待リクエストを受信した際に、参加ノードBおよび参加ノードD間で、参加ノードBを共有サーバとし参加ノードDを共有クライアントとした共有関係が成立することとなる。
図14に示す関係が成立した場合には、図15(B)に示すセッション管理テーブル400Bの状態となる。図15(B)に示すセッション管理テーブル400Bでは、通信方向のカラムには、参加ノードA(user1)および参加ノードB(user2)が共有サーバ(sendonly)として動作し、参加ノードC〜参加ノードF(user3〜user6)が共有クライアント(recvonly)として動作していることが示されている。さらに図15(B)には、通信カラムに、参加ノードA(user1)から参加ノードC(user3)、参加ノードE(user5)および参加ノードF(user6)への画面データの流れ、参加ノードB(user2)から参加ノードD(user4)への画面データの流れが共有関係として記述されていることが理解される。
以上説明したように、本実施形態によれば、情報処理装置間の多対多の画面共有を管理し、上記共有関係を効率的に形成することを可能とする画面共有システム、管理サーバ、情報処理装置、画面共有管理方法、プログラムおよび記録媒体を提供することができる。
本実施形態の上記機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能な印刷制御プログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用効果を奏する限り、本発明の範囲に含まれるものである。