[1.表示システムSの概要]
以下に、本発明の実施の形態における表示システムについて、図面を参照しながら説明する。図1は本実施形態における表示システムの全体的なシステム構成を示す図であり、図2は本実施形態における表示システムに用いられるサーバ装置の概略構成図であり、図3は本実施形態における表示システムに用いられる端末装置の概略構成図である。
本実施形態における表示システムSは、図1に示すように、サーバ装置1と、このサーバ装置1と通信経路4を介して接続された複数の端末装置(ここでは端末装置2a,2b)と、プロジェクタ3とにより構成されるものであり、複数の端末装置2a,2bで実行されるアプリケーションプログラム(以下、単に「アプリケーション」と称することもある。)によって生成される画像のうち、各端末装置2a,2bの所定表示領域(ここでは、仮想表示領域45a,45b)にある画像の画像データを一つの表示用画像のデータとして合成するとともに、所定条件下で、この表示用画像をプロジェクタ3などの表示装置により表示するシステムである。
また、この表示システムSは、任意の端末装置からサーバ装置1を介して他の端末装置へ、サーバ装置1で生成される表示用画像のうちの所定画像を操作するための操作命令を送信することにより、この操作命令に基づき、表示用画像のうち、自分の端末装置で実行されているアプリケーションによって生成される画像だけでなく、他の端末装置で実行されているアプリケーションによって生成される画像も編集可能としている。
なお、本実施形態においては、サーバ装置1に2台の端末装置が接続されている場合について説明するが、サーバ装置1に接続される端末装置の数はこれに限ったものではない。また、以下において、端末装置2a,2bの任意の一つを表す場合には端末装置2と表現することがある。
ここで、本実施形態における表示システムSにおいて、サーバ装置1は、図2に示すように、画像取得部10と、画像処理部11と、稼動判定部12と、送信処理部13と、操作命令処理部14と、設定部15と、入力部16と、記憶部17とを備えている。
また、端末装置2は、図3に示すように、記憶部20と、画像生成部21と、所定領域画像送信部22と、編集部23と、表示部24と、仮想表示領域設定部25と、操作部26と、操作命令送信部27と、指示部28とを備えている。
以上のように構成される表示システムSの全体概要について、図1〜図5を参照して説明する。なお、図4及び図5は本実施形態における表示システムSの送信処理動作の概要を示す図である。
本実施形態における表示システムSの動作は、主に、サーバ装置1と端末装置2との接続を行うための接続処理動作、サーバ装置1が各端末装置2から取得した複数の画像データを合成して表示用画像のデータを生成する画像処理動作、プロジェクタ3が稼働状態のときにはサーバ装置1からプロジェクタ3へ表示用画像のデータを送信して、プロジェクタ3から表示用画像を拡大投影させる一方、プロジェクタ3が稼働状態でないときには端末装置2へ表示用画像のデータを送信して端末装置2で表示用画像を表示させる送信処理動作、端末装置2からの操作命令に応じて任意のデータファイルを編集させる操作命令処理動作などがある。以下、これらの処理動作を、接続処理動作、画像処理動作、送信処理動作、操作命令処理動作の順に説明する。
(接続処理動作について)
サーバ装置1と端末装置2との接続は、端末装置2の使用者が、操作部26を用いて端末装置2に対して起動操作を行うことによって行う。起動操作が行われると、端末装置2は、操作命令送信部27からサーバ装置1に対して接続要求信号を送信する。サーバ装置1は、接続要求信号を受信すると、複数の端末装置2から取得する画像データの解像度を統一させるため、画像取得部10から端末装置2に対してサーバ装置1で設定されている解像度の情報を送信する。
次に、端末装置2は、受信した解像度の情報に基づき、所定表示領域として仮想表示領域を設ける。この仮想表示領域は、図1に示すように、端末装置2a,2bでは、それぞれの表示部24の表示領域40a,40bに隣接した仮想的な表示領域45a,45bであり、仮想表示領域設定部25により設定されるものである。以下、表示領域40a,40bの任意の一つを表す場合には表示領域40と表現し、仮想表示領域45a,45bの任意の一つを表す場合には仮想表示領域45と表現することがある。なお、本実施形態では、上記のように仮想表示領域45を所定表示領域として設定しているが、この所定表示領域は、例えば、端末装置2に設けられた表示部24の表示領域の一部に設けてもよい。
このように仮想表示領域45を設けた後、端末装置2は、操作命令送信部27よりサーバ装置1に対して起動作業が完了したことを通知する。そして、当該通知を受信したサーバ装置1は、操作命令処理部14から端末装置2に対して接続が完了したことを通知することにより、サーバ装置1と端末装置2との接続処理が完了する。
(画像処理動作について)
サーバ装置1と端末装置2とが接続された後、使用者による操作部26を用いた操作により、端末装置2の有するアプリケーションプログラムの実行操作が行われると、端末装置2は、操作対象となったアプリケーションプログラムを実行し、このアプリケーションのデータファイルに応じた画像データを生成する。
ここで、データファイルとは、端末装置2の有する表計算ソフトウエア、図形作成ソフトウエア等の各種アプリケーションプログラムにより実行されるアプリケーションの保存データファイルであり、各端末装置2の有する記憶部20に記憶されている。
また、このアプリケーションプログラムは、端末装置2において、画像生成部21及び編集部23として機能するものである。すなわち、アプリケーションプログラムは、端末装置2の使用者が操作部26を用いてデータファイルの実行操作を行うと、画像生成部21として、記憶部20に記憶されたデータファイルに基づく画像(例えば、図1において、端末装置2aにより生成された画像30a〜30c、端末装置2bにより生成された画像30d,30e)のデータを生成する。さらに、端末装置2の使用者が操作部26や指示部28を用いて、画像生成部21により生成した画像データに対して所定の操作を行う等により、アプリケーションプログラムは、編集部23として、当該操作に基づいてデータファイルの編集を行う。
このように、端末装置2は、画像生成部21によりデータファイルに基づく画像データを生成すると、この画像データに基づく画像を表示部24によりウィンドウ形式で表示する(以下、このように画像データに基づいてウィンドウ形式で表示される画像を「ウィンドウ画像」と称することがある)。このとき、使用者の操作部26への操作によりウィンドウ画像を仮想表示領域45へ移動させるための入力操作があると、編集部23及び画像生成部21により、表示部24に表示していたウィンドウ画像を移動させて仮想表示領域45に位置させる。端末装置2は、仮想表示領域45にあるウィンドウ画像を検出し、当該検出結果に基づき画像属性情報を更新する。その後、端末装置2は、サーバ装置1に対して更新された画像属性情報を送信する。この画像属性情報とは、仮想表示領域45にあるウィンドウ画像に関する情報であり、仮想表示領域45にある各ウィンドウ画像を識別するための識別情報(ウィンドウID)の他、当該画像の位置やサイズ等の情報であり、詳しくは後述する。
サーバ装置1の画像取得部10は、各端末装置2から画像属性情報を受信すると、画像属性情報管理テーブルの情報を更新する。画像属性情報管理テーブルとは、複数の端末装置2から取得した複数の画像データに関する画像属性情報を管理するためのテーブルであり、サーバ装置1に設けられた記憶部17の所定の領域に記憶される。
次に、サーバ装置1は、画像属性情報管理テーブルの情報に基づいて端末装置2a、2bに対して画像データ要求情報を送信する。この画像データ要求情報に対して、各端末装置2a,2bの所定領域画像送信部22は、仮想表示領域45a,45bにあるウィンドウ画像30c,30eの画像データを通信経路4を介してサーバ装置1に送信する。
端末装置2a、2bからウィンドウ画像30c,30eの画像データを受信したサーバ装置1は、画像処理部11により、各端末装置2a,2bから取得した画像データを画像属性情報管理テーブルの情報に基づいて合成した画像(以下、「表示用画像」と称することもある。)のデータを生成する。
(送信処理動作について)
サーバ装置1は、上述のように表示用画像のデータを生成すると、プロジェクタ3が稼働状態であるか否かを稼動判定部12により判定し、送信処理部13は、当該判定に基づいて、表示用画像のデータ送信を第1モードで行うのか、第2モードで行うのかを決定して、表示用画像のデータを送信する。
ここで、第1モードは表示用画像のデータを表示装置であるプロジェクタ3へ送信する処理モードであり、第2モードは表示用画像のデータを複数の端末装置2a,2bへ送信する処理モードである。
すなわち、プロジェクタ3が稼働状態であるとき、サーバ装置1は、稼動判定部12により、プロジェクタ3の稼働を検出し、図4(a)に示すように、送信処理部13により、表示用画像のデータをプロジェクタ3へ送信する第1モード処理を行う。そして、表示用画像のデータを受信したプロジェクタ3は、表示用画像50をスクリーン等に拡大投影する。
ここで、「稼働状態」とは、プロジェクタ3が画像を投影することができる状態であり、かつサーバ装置1と通信可能に通信経路4に接続されている状態をいう。すなわち、稼動判定部12は、プロジェクタ3が通信経路4を介して表示用画像のデータを受信し、当該表示用画像を拡大投影することができる状態であるときに、プロジェクタ3が稼働状態であると判定する。従って、サーバ装置1の稼動判定部12は、例えば、プロジェクタ3の電源がOFF状態であるときや、プロジェクタ3が通信経路4と接続されていないときなどに、プロジェクタ3が稼働状態ではないと判定する。
このように、プロジェクタ3が稼働状態であるときには、サーバ装置1の画像処理部11により合成した画像データに基づく表示用画像を、通信経路4を介してプロジェクタ3へ送信し、プロジェクタ3によりスクリーン等の大画面上に投影させるので、各端末装置2に表示用画像のデータを送信しないことから、通信経路にかかる負荷を軽減することができる。その結果、多くの端末装置2がサーバ装置1と接続した場合であっても、複数人による情報の共有や共同作業を円滑に行うことができる。なお、第1モードとして表示用画像を送信する装置としてはプロジェクタ3ではなくLCDディスプレイやプラズマディスプレイなどであってもよい。
一方、プロジェクタ3が稼働状態ではないとき、サーバ装置1は、稼動判定部12により、プロジェクタ3の非稼働を検出し、図4(b)に示すように、送信処理部13により、表示用画像のデータを端末装置2a,2bへ送信する第2モード処理を行う。そして、表示用画像のデータを受信した端末装置2a,2bは、それぞれ表示部24に表示用画像を表示する。なお、送信処理部13は、端末装置2と通信できるときに、端末装置2が稼動状態であると判定して、表示用画像を送信する。
なお、各端末装置2a,2bは、その利用者による操作部26への操作により、表示部24へ表示する画像を、第2モード処理で送信されてくる表示用画像とするのか、自装置のアプリケーションプログラムで生成した画像を表示するのかを選択することができ、会議の進行に応じて適宜画面を切り替えながら作業が可能となっている。
このように、プロジェクタ3を非稼働状態とするだけで、遠隔地の会議が可能となり、操作や設定の煩わしさを回避することができる。すなわち、プロジェクタ3が設置されている部屋から遠隔にある場所に各端末装置2a,2bがそれぞれ配置されている場合において、プロジェクタ3を非稼働状態としておけば、端末装置2a,2bを用いた会議を行うことができるのである。
ところで、例えば、図5に示すように、稼働状態にあるプロジェクタ3が設置されている部屋5で参加者が端末装置2a,2bを用いて会議をするようなときに、遠隔地にある端末装置2cを用いてこの会議に参加したいという場合がある。
このようなとき、サーバ装置1の稼動判定部12は、端末装置2cを特定の端末装置として、この端末装置2が稼動状態であるか否かを判定し、サーバ装置1の送信処理部13は、第1モードにおいて、プロジェクタ3に加え、さらに稼動状態であるこの端末装置2cに対して表示用画像のデータの送信を行うことができるようにしている。従って、全員が会議室へ行くことが出来ない場合であっても、遠隔にある端末装置2には表示用画像を表示させることができるので、情報の共有や共同作業を効率的に行うことができる。
ここで、本実施形態における表示システムSでは、サーバ装置1の入力部16を操作して、特定の端末装置の情報を設定入力することができるようにしており、この入力部16から入力された特定の端末装置の情報は記憶部17に記憶される。サーバ装置1の送信処理部13は、第1モードのとき、記憶部17に記憶された情報に基づいて、特定の端末装置を判定して、この特定の端末装置へ表示用画像を送信する。
また、通信経路4がIPネットワークを介した経路であるとき、サーバ装置1の設定部15は、複数の端末装置2a〜2cのうち自サーバ装置1と同一ネットワーク内にある端末装置以外の端末装置を検出して、この端末装置を特定の端末装置として設定する。ここで、「同一ネットワーク」とは、同一ルータのネットワークを意味するものであるが、同一サブネット内のネットワーク、或いは同一の無線LANネットワークなどを「同一ネットワーク」として規定することもできる。また、ローカルネットワークのIPアドレスでアクセスできる範囲を「同一ネットワーク」として規定するようにしてもよい。
図5に示すように、複数の参加者が同じ部屋5に集まって会議をする場合、各参加者の端末装置2a,2b及びサーバ装置1には同じルータ装置(図示せず)又はこのルータ装置に接続されたハブ(HUB)からLAN(Local Area Network)ケーブルが接続されることになる。従って、端末装置2a,2b及びサーバ装置1のIPアドレスには、ルータ装置によって形成されるLANネットワークのIPアドレスが割り当てられる。
例えば、ルータ装置によって形成されるLANネットワークのIPアドレスが「192.168.0.1」〜「192.168.0.254」であるとき、端末装置2a,2b及びサーバ装置1は、これらのIPアドレスのいずれかが割り当てられることになる。一方、遠隔地にある端末装置2cは、サーバ装置1と同一のルータ装置に接続されていないことから、サーバ装置1から見た場合に別のIPアドレスが割り当てられている。そこで、サーバ装置1の設定部15は、この端末装置2cを特定の端末装置として判定し、その判定結果を記憶部17に記憶する。ここでは、サーバ装置1からICMP(Internet Control Message Protocol)のIPパケット(例えば、エコー要求)をリミティッド・ブロードキャストし、それに応答(例えば、エコー応答)した端末装置2を同一ルータ装置に接続された端末装置であると判定し、その判定結果を記憶部17に記憶する。
なお、サーバ装置1の設定部15は、ルータ装置へサーバ装置1からサブネットの情報を要求するICMPのIPパケットを送信し、それに応じてルータ装置から送信されるサブネットの情報に基づいて、端末装置2が同一ルータ装置に接続されているか否かを判定するようにしてもよい。このとき、サーバ装置1の設定部15は、自サーバ装置が接続されるネットワークのIPアドレスの範囲(例えば、「192.168.0.1」〜「192.168.0.254」)を記憶部17に記憶し、このIPアドレスの範囲にないIPアドレスが割り当てられた端末装置を特定の端末装置として特定する。この記憶部17への記憶は、入力部16からの入力によって行うこともできる。
また、サーバ装置1の設定部15は、ローカルネットワークのIPアドレスでアクセスできる端末装置以外の端末装置、すなわちグローバルIPアドレスでしかアクセスできない端末装置2を特定の端末装置として設定するようにしてもよい。
このように、複数の端末装置2のうちIPアドレスが同一ネットワークである端末装置以外の端末装置を特定の端末装置として設定する設定部15を設けることで、遠隔にある端末装置2を自動的に検出することができ、従って、参加者が変わるたびに特定の端末装置をサーバ装置1に設定する作業を行う必要が無く、操作や設定の煩わしさを回避することができる。さらに、特定の端末装置の情報を設定入力する入力部16を設けたので、参加者の参加状況に応じて特定の端末装置を設定することで、情報の共有や共同作業を効率的に行うことができる。
一方、プロジェクタ3が稼働状態にないとき、送信処理部13は、第2モードの処理として、稼動状態にある特定の端末装置である端末装置2cを含む全ての端末装置2a,2b,2cに表示用画像のデータを送信することになる。
ところで、サーバ装置1の画像処理部11は、解像度の異なる複数の表示用画像のデータを生成する。そして、送信処理部13は、端末装置2a,2b,2cへ表示用画像のデータを送信するとき、各端末装置2の表示部24の解像度に応じた表示用画像を選択して、各端末装置2へ送信する。
このようにサーバ装置1は、解像度の異なる表示用画像を複数生成し、送信先に応じた解像度の表示用画像のデータを各端末装置2へ送信するので、各端末装置2では適切な表示を行うことができ、情報の共有や共同作業をより効率的に行うことができる。
(操作命令処理動作について)
本実施形態における表示システムSでは、端末装置2からの要求に応じて任意のデータファイルを編集することができる。すなわち、本実施形態において、サーバ装置1は、表示用画像のうちの任意のウィンドウ画像を操作するための操作命令を端末装置2から取得したとき、操作命令処理部14により、この操作命令による操作対象のウィンドウ画像の画像データを送信した端末装置2へ、この操作命令を送信し、端末装置2は、操作命令を受信したとき、編集部23によりこの操作命令に応じてデータファイルを編集することとしている。
例えば、端末装置2aの使用者による操作部26や指示部28の操作で、表示用画像のうち、端末装置2bの仮想表示領域45bにあるウィンドウ画像に対して所定の操作入力(例えば、ウィンドウ画像の移動)が行われると、端末装置2aは、当該操作入力の情報を取得する。
次に、端末装置2aは操作命令送信部27により、使用者による当該操作が端末装置2aで実行されるのを防ぐため、当該操作入力の情報を破棄して編集部23による編集を阻止し、当該操作入力に対応する操作命令を通信経路4を介してサーバ装置1に送信する。
サーバ装置1は、端末装置2aから操作命令を受信すると、操作命令処理部14により、この操作命令を、送信すべき端末装置2へ振り分ける処理を行う。ここで、端末装置2aの利用者が表示用画像のうち端末装置2bのウィンドウ画像を操作し、当該操作入力に対応する操作命令が端末装置2aから送信されたとき、この操作命令は端末装置2bに送信されるように振り分けられる。
そして、サーバ装置1から操作命令を受信した端末装置2bは、この操作命令に基づく操作入力を再生して、この再生した操作入力に応じて、アプリケーションは編集部23として実行中のデータファイルの編集を行う。
このように、本実施形態における表示システムSでは、サーバ装置1は、表示用画像のうちの所定のウィンドウ画像を操作するための操作命令を取得したとき、この操作命令による操作対象のウィンドウ画像の画像データを送信した端末装置2へ、この操作命令を通信経路4を介して送信し、端末装置2は、サーバ装置1から操作命令を通信経路4を介して受信したとき、この操作命令に応じてデータファイルを編集することとしたため、自分の端末装置2が有するウィンドウ画像のみならず、他の端末装置2からサーバ装置1へその画像データが送信されるウィンドウ画像の編集を行うことができ、複数人による共同作業を円滑に行うことができる。
なお、本実施形態における表示システムSにおいて、端末装置2は、表示用画像を指示するための指示部28を備え、操作命令送信部27は、指示部28が所定操作されたときに、その操作に応じた画像指示命令をサーバ装置1へ送信し、サーバ装置1の画像処理部11は、端末装置2から画像指示命令を受信したとき、この画像指示命令に基づいた位置にポインタ画像を、複数の端末装置2の仮想表示領域45にあるウィンドウ画像の画像データと共に合成することとしている。
すなわち、例えば、図1に示すように、プロジェクタ3で投影されている表示用画像50として、サーバ装置1は、各端末装置2から取得した画像データに基づく合成画像の他、画像指示命令に基づくポインタ画像P1,P2を生成する。かかる構成とすることにより、端末装置2の使用者が、サーバ装置1によって生成される表示用画像域のうちどこを指示しているのかを把握させることができる。
ここで、上述においては、サーバ装置1とプロジェクタ3とを別体なものであるとして説明したが、サーバ装置1の機能をそのまま内蔵したプロジェクタとすることができる。このようにプロジェクタ3にサーバ装置1の機能を内蔵するようにしたので、サーバ装置1とプロジェクタ3とを別体で設置する必要が無く、設置スペースの確保が容易になる。
この場合、プロジェクタ3は、自装置の投影部が稼動状態であるときに、第1モードでこの投影部に対して表示用画像のデータを送信して、投影部から表示用画像をスクリーン等に拡大投影させ、自装置の投影部が稼動状態ではないときに、第2モードで複数の端末装置2に対して表示用画像を送信する。なお、投影部が稼動状態であるか否かは、例えば、投影部を稼動状態にするための投影部稼動スイッチがON状態であるのかOFF状態であるのかにより判定することができる。
[2.表示システムの具体的構成]
以下、上述した表示システムSの具体例について説明する。
(サーバ装置1の構成について)
まず、サーバ装置1の構成について説明する。図6は本実施形態におけるサーバ装置1の構成図であり、図7は本実施形態におけるサーバ装置1に記憶される画像属性情報管理テーブルの一例を示す図であり、図8は本実施形態におけるサーバ装置1によって合成される表示用画像の座標を説明するための図であり、図9は本実施形態におけるサーバ装置1に記憶される接続情報管理テーブルの一例であり、図10は本実施形態におけるサーバ装置1に記憶されるポインタ情報管理テーブルの一例であり、図11は本実施形態におけるサーバ装置1に記憶される特定端末管理テーブルの一例を示す図である。
サーバ装置1は、図6に示すように、各種操作を行うための操作パネル101と、設定情報やデータファイルなどを保持するための不揮発性メモリである記憶部102と、端末装置2と通信するためのインターフェイス103と、このインターフェイス103を介して取得した画像データに所定の処理を施して表示用画像のデータを生成する画像処理回路104と、この画像処理回路104で生成した表示用画像のデータを映像信号の形式で出力する映像信号出力回路105と、サーバ装置1全体を制御する制御部106とを備えている。
操作パネル101には、サーバ装置1において使用者が操作する操作ボタンなどを配置しており、その操作ボタン等の操作内容に応じた制御を制御部106が実行する。
記憶部102は、フラッシュメモリ(Flash Memory)やハードディスクなどから構成され、サーバ装置1に設定されている解像度の情報、ポインタ画像の画像データ、各端末装置2の仮想表示領域45にあるウィンドウ画像の画像データを記憶する他、当該ウィンドウ画像の位置情報、サイズ情報等を管理する画像属性情報管理テーブルを記憶する画像属性情報記憶領域110、サーバ装置1に接続している端末装置2の接続状況を管理する接続情報管理テーブルを記憶する接続情報記憶領域111、ポインタの位置情報等を記憶するポインタ情報管理テーブルを記憶するポインタ情報記憶領域112、第1モードのときに表示用画像を送信する端末装置(特定の端末装置)の情報を管理する特定端末管理テーブルを記憶する特定端末情報記憶領域113などを有する。
インターフェイス103は、IPネットワークを介して外部装置との通信を行うことができるLANインターフェイスであり、端末装置2から画像データや操作命令等を取得したり、外部のコンピュータ装置と通信したりするときに制御部106によって用いられる。なお、LANインターフェイスとして、無線LANインターフェイス或いは有線LANインターフェイスのいずれを用いてもよい。
画像処理回路104は、制御部106による制御に基づいて、インターフェイス103を介して取得した複数の画像データの合成を行って表示用画像のデータを生成する。この表示用画像のデータは、映像信号出力回路105からの映像信号として送信され、或いはインターフェイス103を介して端末装置2へ送信される。
映像信号出力回路105は、画像処理回路104から表示用画像のデータを入力し、コンポジット映像信号(例えばNTSC映像信号)やコンポーネント映像信号(例えばRGB信号)などの映像信号の形式のデータへ変換して出力する。
制御部106は、CPU(Central Processing Unit),ROM(Read Only Memory),RAM(Random Access Memory)などを内蔵しており、CPUがROMに予め格納されたプログラムを読み出して実行することによって、サーバ装置1を、画像取得部、画像処理部、稼働判定部、送信処理部、操作命令処理部、設定部等として機能させる。なお、制御部106のROMは、上述したフラッシュメモリ等の不揮発性メモリであってもよい。
制御部106は画像取得部として、インターフェイス103を介して端末装置2から、当該端末装置2の仮想表示領域45にあるウィンドウ画像の画像データを取得する。また、制御部106は、画像処理回路104と共に画像処理部として機能することにより、複数の端末装置2の仮想表示領域45にあるウィンドウ画像の画像データを合成して表示用画像のデータを生成する。この画像処理部による画像データの合成は、記憶部102に記憶された画像属性情報管理テーブル、及び接続情報管理テーブルに基づいて実行される。
ここで、画像属性情報管理テーブルについて、図7を参照して説明する。
図7に示すように、画像属性情報管理テーブルには、各端末装置2の仮想表示領域45にあるウィンドウ画像を送信した端末装置2(オーナーPC)の名称、当該ウィンドウ画像を表示すべき位置及びサイズに関する情報、画像データのファイル名に関する情報、及び画像処理回路104により複数の画像データを合成する際に、各画像データを重ね合わせる順番(階層レベル)に関する情報が、当該ウィンドウ画像を識別するための情報(ウィンドウID)と関連付けて記憶されている。
各端末装置2の仮想表示領域45にあるウィンドウ画像の位置及びサイズに関する情報は、サーバ装置1で生成される表示用画像50に規定されている座標により表される。すなわち、本実施形態におけるサーバ装置1は、図8に示すように、表示用画像50の縦方向をX方向、横方向をY方向とし、その左上部の頂点を原点として規定している。そして、ウィンドウ画像の位置情報は、仮想表示領域45にある各ウィンドウ画像の左上部の頂点の座標の情報であり、画像のサイズ情報は、当該ウィンドウ画像の幅(W)及び高さ(H)を座標の数値で表した情報であって、この位置情報とサイズ情報とにより、仮想表示領域45にあるウィンドウ画像を表示用画像のどの位置にどのサイズで合成するかを決定することができる。例えば、図8において、ウィンドウ画像30cは、その左上部の頂点が座標(40,200)の位置となり、画像のサイズは、幅(W)250が、高さ(H)が280となる。
また、画像データを送信した端末装置2(オーナーPC)の名称は、図9に示す接続情報管理テーブルと関連付けられている。この接続情報管理テーブルには、図9に示すように、サーバ装置1に接続している端末装置2の名称が、接続状況(サーバ装置1と接続中か非接続中かの別)及び各端末装置2に割り振られたIPアドレスと関連付けられて記憶されている。
また、制御部106は、画像処理部として、端末装置2により送信された画像指示命令に基づいた位置にポインタ画像を、複数の端末装置2の仮想表示領域45にあるウィンドウ画像の画像データと共に合成する。ここで、このポインタ画像の合成は、ポインタ情報管理テーブルの情報に基づき実行されるものである。
ポインタ情報管理テーブルは、図10に示すように、サーバ装置1に接続されている端末装置2に割り当てられるポインタ画像(カーソル画像)の画像ファイル名、及びサーバ装置1で合成される表示用画像50におけるポインタ画像の位置情報が、端末装置2の名称と関連付けられて記憶されている。なお、この図10では、端末装置2cのポインタ画像の位置情報がnoneとなっており、ポインタ位置が仮想表示領域45にないことを示している。
なお、本実施形態では、各端末装置2の仮想表示領域45にあるウィンドウ画像の画像データ毎に異なる階層レベルを割り当て、画像データの合成を、階層レベル順に画像データを重畳合成することによって行うこととしている。すなわち、制御部106は、各端末装置2の仮想表示領域45にあるウィンドウ画像の画像データを合成する際、画像属性情報管理テーブルに記憶されている階層レベルの情報を参照し、この階層レベルが高い順に画像を重ね合わせて出来たような画像の画像データを生成する。
特定端末情報管理テーブルは、図11に示すように、サーバ装置1に接続している端末装置2の名称が、特定端末フラグと関連づけられたテーブルである。この特定端末フラグが「1」である端末装置2が特定の端末装置であることを示す。この特定端末情報管理テーブルは、上述した入力部16からの入力により、或いは設定部15による設定により生成されるものである。
また、制御部106は、インターフェイス103と共に操作命令処理部として機能することにより、画像処理回路104で生成される表示用画像のうちの任意のウィンドウ画像を操作するための操作命令を取得したとき、この操作命令による操作対象のウィンドウ画像の画像データを送信した端末装置2へ、この操作命令を送信する。
ここで、本実施形態においては、操作命令を端末装置2へ送信する際、この操作命令による操作対象のウィンドウ画像の画像データ、及び当該操作命令を送信すべき端末装置2を、画像属性情報管理テーブルの画像属性情報に基づいて判断することとしている。
かかる構成とすることにより、操作対象のウィンドウ画像の画像データを判断するための情報をその操作毎に各端末装置2に対して別途要求する必要がなく、通信経路4にかかる負担を軽減させることができる。
(端末装置2の構成について)
次に、端末装置2の具体的構成の一例について説明する。図12は、本実施形態における端末装置2の構成図である。
本実施形態における端末装置2は、一般のパーソナルコンピュータ或いは専用端末を適用することができ、図12に示すように、表示部であるLCD200、LCD200を駆動するためのグラフィックスコントローラ201と、各種データ等を記憶するハードディスク装置202と、通信経路4を介してサーバ装置1との間で通信を行うためのインターフェイス203と、使用者の操作により所定の情報を入力可能なキーボード206及びマウス207(指示部、操作部に相当)と、端末装置2全体を制御する制御部208とを備えて構成され、これらの各種要素は第1のバス209、第2のバス210を介して相互に接続される。なお、図中、211は、第1のバス209と第2のバス210との間のデータの授受を行うためのバスコントローラである。
ハードディスク装置202は、記憶部として機能するものであり、このハードディスク装置202には、端末装置2のオペレーティングシステム(OS)プログラム、文書作成ソフトウエア、プレゼンテーションソフトウエア、表計算ソフトウエア、図形作成ソフトウエア等の各種アプリケーションプログラムの他、このアプリケーションプログラムにより作製されるデータファイルが格納されている。また、上記アプリケーションプログラムとは別に、本実施形態における表示システムS用の処理プログラムとしての画像共有プログラムが格納されている。
なお、この画像共有プログラムは、例えば、通信経路4に接続されたサーバ(図示せず)から、インターフェイス203を介して、制御部208によりハードディスク装置202にダウンロードされるようにしてもよく、又CD−ROM等の記録媒体に記録されてから記録媒体ドライブ(図示せず)を介して、制御部208によりハードディスク装置202に読み込まれるようにしてもよい。
インターフェイス203は、外部装置との通信を行うことができるLANインターフェイスであり、サーバ装置1との画像データや操作命令等の送受信をするとき、外部のコンピュータ装置と通信したりするときに制御部208によって用いられる。なお、インターフェイス203として無線LANインターフェイス或いは有線のLANインターフェイスを用いることができる。
制御部208は、CPU,ROM,RAMなどを内蔵しており、CPUがハードディスク装置202に格納された画像共有プログラムを読み出して実行することによって、所定領域画像送信部、仮想表示領域設定部、操作命令送信部等として機能する。
また、制御部208は、CPUがハードディスク装置202に記憶した各種アプリケーションプログラムを読み出して実行することによって、画像生成部、編集部として機能する。
制御部208のCPUは、ハードディスク装置202に記憶した各種アプリケーションプログラムを実行して画像生成部として機能し、データファイルに基づいた画像データを生成する。生成された画像データは、表示部としてのLCD200及びグラフィックスコントローラ201によって、当該画像データに基づく画像をウィンドウ形式の画像(ウィンドウ画像)としてLCD200に表示される。
制御部208は、インターフェイス203と共に所定領域画像送信部として機能することによって、画像生成部で生成した画像データに基づくウィンドウ画像の位置が仮想表示領域45にあるときに、そのウィンドウ画像の一部又は全部の画像データを通信経路4を介してサーバ装置1へ送信する。ここで、本実施形態における所定表示領域は、表示部の表示領域40に隣接するように設定された仮想表示領域45であり、この仮想表示領域45は、制御部208のCPUがハードディスク装置202に記憶された画像共有プログラムを実行して仮想表示領域設定部として機能することで設定される。
ここで、本実施形態における表示システムSでは、画像生成部によって編集後のデータファイルに基づいて仮想表示領域45にある画像データが生成される毎に、仮想表示領域45にあるウィンドウ画像の画像データをサーバ装置1へ送信することとしている。かかる構成とすることにより、サーバ装置1で生成される表示用画像をリアルタイムで更新することができるため、複数人による情報の共有や共同作業を円滑に行うことが可能となる。なお、この画像データを送信する場合は、仮想表示領域45にあるウィンドウ画像をキャプチャして得られるBMP(Bit Map)データをJPEG(Joint Photographic Experts Group)データに変換する。このように、サーバ装置1に送信する画像データを圧縮することにより、通信経路4への負荷を軽減させることができる。
また、制御部208は、編集部として機能することにより、サーバ装置1から操作命令を通信経路4を介して受信したとき、この操作命令から操作入力を再生し、この操作入力に応じてデータファイルを編集する。この操作命令の受信は、インターフェイス203により行われる。
また、制御部208は、インターフェイス203と共に操作命令送信部として機能することにより、ポインタが仮想表示領域45に位置している場合に、キーボード206又はマウス207により所定の操作/指示が行われると、その操作/指示に応じた操作命令をサーバ装置1へ送信する。この際、上記操作/指示が自分の端末装置2で実行されることを防ぐために、制御部208は、操作入力情報、或いは指示情報を破棄した後に当該操作命令をサーバ装置1に送信する。なお、ここで「操作」とは、自装置又は他の端末装置のアプリケーションで実行中のデータファイルを編集するための命令であり、「指示」とは、サーバ装置1が生成する表示用画像内を指し示すポインタ画像を表示又はその移動のための命令である。
このようにキーボード206やマウス207を操作部として用いることにより、他の端末装置2の仮想表示領域45にあるウィンドウ画像を操作、編集することができ、また、マウス207を指示部として用いることにより、さらに、端末装置2の使用者が、サーバ装置1によって生成される表示用画像のうちどの領域を指示しているのかを把握させることができる。さらに、当該ウィンドウ画像の操作、指示は、操作対象のウィンドウ画像の画像データを送信した端末装置へ操作命令を送信することによって行われるため、通信経路4に大きな負荷をかけることなくウィンドウ画像の操作を行うことができる。
(サーバ装置1の具体的動作について)
次に、サーバ装置1の具体的動作の一例について、図13〜図16を参照して説明する。図13は、本実施形態におけるサーバ装置1のメイン処理フローチャートである。
図13に示すように、サーバ装置1の電源スイッチ(図示せず)が押下されたとき、サーバ装置1の制御部106は、初期化処理を行う(ステップS100)。この初期化処理は、制御部106のCPUが内部RAMの作業領域確保等の初期設定動作を実行し、内部のROMに記憶したプログラムを実行状態として、制御部106としての機能を動作状態とすることによって行われる。
次に、制御部106は、端末装置2からの接続要求があるか否かを判定する(ステップS101)。端末装置2からの接続要求があるか否かは、制御部106が端末装置2からインターフェイス103を介して接続要求信号を受信したか否かによって判定する。
この処理において、接続要求があると判定すると(ステップS101:YES)、制御部106は、接続要求を行った端末装置2との接続処理を行う(ステップS102)。この接続処理は、サーバ装置1が端末装置2と通信経路4を介して接続するための処理である。具体的には、サーバ装置1の制御部106は、端末装置2から送信された接続要求信号を受信すると、まず、接続情報管理テーブルを更新する。すなわち、制御部106は、接続情報管理テーブルに、サーバ装置1と新たに接続する端末装置2の欄を新たに設け、当該端末装置2のIPアドレス及び接続状態に関する情報を当該端末装置2の名称と関連付けて記憶する。次に、制御部106は、ポインタ情報管理テーブルを更新する。すなわち、制御部106は、ポインタ情報管理テーブルに、サーバ装置1と新たに接続する端末装置2の欄を新たに設け、当該端末装置2に割り当てられたポインタ画像の画像ファイル名及びポインタ画像の位置情報を、当該端末装置2の名称と関連付けて記憶する。そして、制御部106は、接続処理が完了したことを端末装置2に対して通知して、接続処理を終了する。
ステップS102の接続処理が終了したとき、或いは端末装置2からの接続要求がないと判定したとき(ステップS101:NO)、制御部106は画像属性情報が受信されたか否かを判定する(ステップS103)。この処理は、端末装置2から、インターフェイス103を介して画像属性情報が送信されたか否かによって行われるものである。
ステップS103において、画像属性情報が受信されたと判定すると(ステップS103:YES)、制御部106は、画像属性情報の更新処理を行う(ステップS104)。
ここで、画像属性情報の更新処理について説明する。この画像属性情報の更新処理を開始すると、制御部106は、まず、端末装置2から送信される画像属性情報に画像属性情報の追加フラグや削除フラグがセットされているか否かを判定する。追加フラグがセットされているとき、制御部106は、画像属性情報の新規追加が行われたと判定し、仮想表示領域45に新たに位置することとなったウィンドウ画像の画像属性情報を画像属性情報管理テーブルに新たに追加し、さらに、当該ウィンドウ画像の画像データの保存領域を確保する。そして、制御部106は、仮想表示領域45に新たに追加されたウィンドウ画像の階層レベルを「1」とし、その他のウィンドウ画像については、現在割り当てられている階層レベルよりも一つ下の階層に順次繰り下げて更新する。また、削除フラグがセットされているとき、制御部106は、削除対象となっているウィンドウ画像の画像属性情報を画像属性情報管理テーブルから削除するとともに、他のウィンドウ画像の階層レベルを更新する。一方、追加フラグや削除フラグがセットされていないとき、制御部106は、端末装置2から受信した画像属性情報に基づいて画像属性情報の更新(例えば、画像の位置やサイズ等の更新)を行い、更新した画像属性情報に基づくウィンドウ画像の階層レベルを「1」とし、その他のウィンドウ画像の階層レベルを順次繰り下げる。
その後、制御部106は、画像属性情報管理テーブルで画像属性情報を管理している端末装置2のそれぞれに対して、画像属性情報管理テーブルで管理している画像のデータを送信するよう画像送信要求信号を送信する。
このステップS104の処理が終了したとき、或いはステップS103において画像属性情報が受信されていないと判定したとき(ステップS103:NO)、制御部106は、画像配信処理を行う(ステップS105)。この画像配信処理は、複数の端末装置2から取得した画像データに基づいて表示用画像のデータを生成し、この表示用画像のデータを何処で表示させるかを判定し、その判定結果に応じた送信先に、表示用画像のデータを送信する処理である。この処理は、図14におけるステップS200〜S215の処理であり、後述する。
次に、制御部106は、端末装置2から操作命令を受信したか否かを判定する(ステップS106)。この処理において、端末装置2から操作命令を受信したと判定すると(ステップS106:YES)、制御部106は、操作命令の判定を行う(ステップS107)。具体的には、制御部106は、ポインタ情報管理テーブルを参照して、操作命令を送信した端末装置2のポインタの位置情報を取得する。次に、制御部106は、取得したポインタの位置座標を含む画像データを画像属性情報管理テーブルを参照して特定することにより、当該画像データを送信した端末装置2(オーナーPC)を特定する。
ステップS107において操作命令の判定が終了すると、制御部106は、操作命令の送信を行う(ステップS108)。すなわち、ステップS107で特定した端末装置2(オーナーPC)に対して、受信した操作命令をインターフェイス103を介して送信する。
ステップS108の処理を終了したとき、或いはステップS106において、端末装置2から操作命令を受信していないとき(ステップS106:NO)、制御部106は、電源がOFFされたか否かを判定し(ステップS109)、電源がOFFされていないとき(ステップS109:NO)、処理をステップS101に移行する。一方、電源がOFFされたと判定すると(ステップS109:YES)、制御部106は、メイン処理を終了する。
次に、ステップS105における画像配信処理について、図14を参照して具体的に説明する。図14は、本実施形態におけるサーバ装置1の画像配信処理フローチャートである。
図14に示すように、画像配信処理を開始すると、サーバ装置1の制御部106は、ステップS104において送信した画像送信要求信号に応じて端末装置2から送信される画像データをインターフェイス103を介して受信したか否かを判定する(ステップS200)。なお、この画像データは、画像送信要求信号を送信した端末装置2の仮想表示領域45にあるウィンドウ画像の画像データである。
この処理において、端末装置2から送信される画像データを受信したと判定すると(ステップS200:YES)、制御部106は、この画像データを記憶部102に確保した保存領域に保存する。そして、制御部106は、画像属性情報管理テーブルに基づき、画像処理回路104により、各ウィンドウ画像の階層レベルに応じて各ウィンドウ画像を重ね合わせていき、さらにポインタ画像を重ね合わせて、各端末装置2の仮想表示領域45にあるウィドウ画像及びポインタの画像データの合成を行い表示用画像のデータを生成する(ステップS201)。このとき制御部106は、解像度の異なる表示用画像のデータを生成する。このように、制御部106は、複数の端末装置の各所定表示領域にあるウィンドウ画像の画像データを通信経路を介して取得する画像取得部、この画像取得部で取得した複数の画像データを合成して表示用画像を生成する画像処理部として機能する。なお、制御部106は、画像処理回路104を用いずに記憶部102等に予め格納されたプログラムを実行することによりソフトウェアで処理を行ってもよい。
表示用画像の生成が終了すると、制御部106は、共有画面の稼動を検出する(ステップS202)。この処理は、映像信号出力回路105にプロジェクタ3の映像入力回路がケーブル等を介して接続され、プロジェクタ3が映像信号出力回路105から出力される映像信号に基づいた画像を投影表示できる状態であるときに共有画面が稼動状態であると判定する。なお、プロジェクタ3がLANネットワーク対応型のプロジェクタである場合には、操作パネル101への操作などにより、このプロジェクタ3のIPアドレスを予め記憶部102に記憶しておき、このようにIPアドレスを記憶したプロジェクタ3とインターフェイス103及び通信経路4を介して通信できるときに、共用画面が稼動状態であると判定するようにもできる。このように、制御部106は、表示装置であるプロジェクタ3が稼動状態であるか否かを判定する稼動判定部として機能する。
ステップS202の処理において、共用画面の稼動を検出すると(ステップS202:YES)、制御部106は、プロジェクタ(PJ)3が複数検出されたか否かを判定する(ステップS203)。例えば、映像信号出力回路105が複数のプロジェクタ3へ映像信号を供給することができ、この映像信号出力回路105に動作状態の複数のプロジェクタ3が接続されているときに、プロジェクタ3が複数検出されたと判定する。また、プロジェクタ3がLANネットワーク対応型のプロジェクタである場合には、予め記憶部102に複数記憶したIPアドレスを有するそれぞれのプロジェクタ3とインターフェイス103及び通信経路4を介して通信できるときに、プロジェクタ3が複数検出されたと判定する。
プロジェクタ3が複数検出されたとき(ステップS203:YES)、制御部106は、優先度に従い表示用画像のデータを送信するプロジェクタ(PJ)3を決定する(ステップS204)。例えば、映像信号出力回路105に第1〜第3番目までの映像信号送信用のインターフェイスがあるとき、これらのインターフェイスは、第1番目、第2番目、第3番目の順に優先度が低くなるように設定しておく。また、プロジェクタ3がLANネットワーク対応型のプロジェクタである場合には、予め記憶部102にそのIPアドレスと共に優先順位も記憶しておく。そして、インターフェイスの優先順位、或いは記憶部102に記憶した優先順位に応じて、検出された複数のプロジェクタ3のうち表示用画像のデータを送信するプロジェクタ3を決定する。
このように表示用画像のデータを送信するプロジェクタ3を決定したとき、或いはステップS203で複数のプロジェクタ3を検出しなかったとき(ステップS203:NO)、制御部106は、表示用画像をプロジェクタへ映像信号出力回路105を介して送信(出力)し(ステップS205)、当該プロジェクタ(PJ)3から表示用画像をスクリーン等に拡大投影させる。このように制御部106は、表示装置であるプロジェクタ3が稼動状態であるとき、表示用画像のデータをプロジェクタ3へ映像信号出力回路105を介して送信する第1モードの処理を実行する送信処理部として機能する。送信処理部は、このとき送信先に応じた解像度の表示用画像のデータを送信する。
ステップS202において、共有画面の稼動を検出できなかったとき(ステップS202:NO)、制御部106は、同一ルータ装置に接続されている端末装置2を検出する処理を行う(ステップS206)。すなわち、制御部106は、記憶部102の接続情報管理テーブルに記憶している端末装置2のうち、ICMPのIPパケットをリミティッド・ブロードキャストしてそれに応答した端末装置2を同一ルータ装置に接続された端末装置2であると判定する。なお、同一ルータ装置(同一ネットワーク)に接続されている端末装置2の検出は、上述した他の方法を用いてもよい。
この処理において、同一ルータ装置に接続された端末装置2を検出すると(ステップS206:YES)、制御部106は、このように検出した端末装置2が、ポインタ・ウィンドウ未出力の端末装置2であるか否かを判定する(ステップS207)。ここで、ポインタ・ウィンドウ未出力の端末装置2とは、仮想表示領域45にウィンドウ画像及びポインタがなく、ウィンドウ画像の画像データやポインタの位置情報を送信してない端末装置2を意味する。
ステップS207において、同一ルータ装置に接続された端末装置2がポインタ・ウィンドウ未出力の端末装置2であると判定すると(ステップS207:YES)、制御部106は、ウィンドウ画像とポインタを合成した表示用画像をポインタ・ウィンドウ未出力の端末装置2へインターフェイス103を介して送信する(ステップS208)。ここで、制御部106は、ポインタ・ウィンドウ未出力の端末装置2の表示部(LCD200)の解像度に応じた画像サイズの表示用画像を送信する。これにより、端末装置2の表示部の表示サイズに合った適切な画像を表示することができ、情報の共有をより適切に行うことができる。
一方、同一ルータ装置に接続された端末装置2がポインタ・ウィンドウ未出力ではない端末装置2であると判定すると(ステップS207:NO)、制御部106は、ウィンドウ画像のみを合成した表示用画像を生成し(ステップS210)、この表示用画像をポインタ・ウィンドウ未出力でない端末装置2へインターフェイス103を介して送信する(ステップS211)。ここで、制御部106は、ポインタ・ウィンドウ未出力でない端末装置2の表示部(LCD200)の解像度に応じた画像サイズの表示用画像を送信する。これにより、端末装置2の表示部の表示サイズに合った適切な画像を表示することができ、情報の共有をより適切に行うことができる。ここで、ポインタ・ウィンドウ未出力ではない端末装置2とは、仮想表示領域45にウィンドウ画像又はポインタがあり、ウィンドウ画像の画像データ又はポインタの位置情報を送信している端末装置2を意味する。
そして、制御部106は、同一ルータ装置に接続されていると判定した端末装置2の全てに対して(ステップS209:NO,ステップS212:NO)、ステップS207における判定を行って、ステップS208の処理又はステップS210,S211の処理を行う。このように制御部106は、表示装置であるプロジェクタ3が稼動状態でないとき、表示用画像のデータを複数の端末装置2へ送信する第2モードを実行する送信処理部として機能する。
この処理が終了すると(ステップS209:YES,ステップS212:YES)したとき、ステップS206において同一ルータ装置に接続された端末装置2を検出していない(ステップS206:NO)とき、或いはステップS205の処理が終了すると、制御部106は、異なるルータ装置に接続されている端末装置2を検出する処理を行う(ステップS213)。すなわち、制御部106は、記憶部102の接続情報管理テーブルに記憶している端末装置2のうち、ICMPのIPパケットをリミティッド・ブロードキャストしてそれに応答しない端末装置2を異なるルータ装置に接続された端末装置2であると判定する。なお、同一ルータ装置(同一ネットワーク)に接続されているか否かの検出方法として、上述した他の方法を用いてもよい。
この処理において、異なるルータ装置に接続された端末装置2を検出すると(ステップS213:YES)、制御部106は、ウィンドウ画像とポインタを合成した表示用画像を異なるルータ装置に接続された端末装置2へインターフェイス103を介して送信する(ステップS214)。ここで、制御部106は、異なるルータ装置に接続された端末装置2の表示部(LCD200)の解像度に応じた画像サイズの表示用画像を送信する。
この処理が終了したとき、制御部106は、異なるルータ装置に接続された全ての端末装置2に表示用画像の送信(配信)が終了したか否かを判定し(ステップS215)、異なるルータ装置に接続されている端末装置2の全てに対して表示用画像の送信を完了するまで(ステップS215:NO)、ステップS214の処理を繰り返す。
異なるルータ装置に接続されている端末装置2の全てに対して表示用画像の送信を完了したとき(ステップS215:YES)、ステップS213において異なるルータ装置に接続された端末装置2を検出していないと判定したとき(ステップS213)、或いはステップS200において送信した画像送信要求信号に応じて端末装置2から送信される画像データを受信していないと判定したとき(ステップS200:NO)、制御部106は、画像配信処理を終了する。
このように制御部106は、複数の端末装置2のうち特定の端末装置が稼動状態であるか否かを判定し、特定の端末装置が稼動状態であると判定すると、第1モードの処理時に、稼動状態である特定の端末装置に対して表示用画像のデータの送信を行う送信処理部として機能する。また、制御部106は、自装置と同一ネットワーク内(例えば、同一ルータのネットワーク内)にある端末装置2以外の端末装置2を特定の端末装置とする設定部として機能する。また、制御部106は、入力部である操作パネル101から設定入力された特定の端末装置の情報に基づいて特定の端末装置を決定する。なお、制御部106は、送信処理部として、第2モードにおいて特定の端末装置を含む複数の端末装置2の全てに表示用画像のデータを送信する。
(端末装置の具体的動作について)
次に、端末装置2の具体的動作の一例について、図15及び図16を参照して説明する。図15は、本実施形態における端末装置2のメイン処理フローチャートである。
図15に示すように、端末装置2の電源スイッチ(図示せず)が押下されたとき、制御部208のCPUがハードディスク装置202に記憶した画像共有プログラムを読み出して実行し、制御部208としての機能を動作状態とする。そして、サーバ装置1に対して接続要求を行う(ステップS300)。すなわち、制御部208は、インターフェイス203及び通信経路4を介して、サーバ装置1に対して、接続要求信号を送信する。なお、この接続要求信号に対してサーバ装置1から送信される解像度の情報を受信して、ハードディスク装置202に記憶する。また、制御部208は、仮想表示領域設定部25として機能して、受信した解像度の情報に基づき、所定表示領域として仮想表示領域45を作成する。このように仮想表示領域45を作成すると、制御部208は、操作命令送信部27として機能してサーバ装置1に対して起動作業が完了したことを通知する。
次に、制御部208は、仮想表示領域45の情報が更新されたか否かを判定する(ステップS301)。例えば、使用者のマウス207等の操作により、LCD200の表示領域にあるウィンドウ画像が仮想表示領域45へ移動されたとき、制御部208は、仮想表示領域45の情報が更新されたと判定する。また、仮想表示領域45にあるウィンドウ画像が仮想表示領域45外に移動したか、又は削除されたとき、制御部208は、ウィンドウ画像の位置やサイズが変更されたことを検出することにより、仮想表示領域45の情報が更新されたと判定する。
仮想表示領域45の情報が更新されたと判定すると(ステップS301:YES)、制御部208は、処理の結果に応じた画像属性情報を作成し、サーバ装置1に対して通信経路4を介して送信する(ステップS302)。すなわち、仮想表示領域45に新たにウィンドウ画像が追加された場合は、追加されたウィンドウ画像の画像属性情報のうち、当該ウィンドウ画像のウィンドウID、位置情報、サイズ情報、画像データのファイル名の情報、及び画像属性情報の追加フラグデータを含む画像属性情報通知データを作成し、サーバ装置1に送信する。また、仮想表示領域45にあるウィンドウ画像が仮想表示領域45外に移動されたとき、或いは削除されたときは、移動、或いは削除されたウィンドウ画像のウィンドウID、及び画像属性情報の削除フラグデータを含む画像属性情報通知データを作成し、サーバ装置1に送信する。また、画像属性情報が更新されたときは、更新されたウィンドウ画像の画像属性情報を含む画像属性情報通知データを作成し、サーバ装置1に送信する。
ステップS302の処理が終了したとき、或いは、ステップS301において仮想表示領域45の情報が更新されていないと判定すると(ステップS301:NO)、制御部208は、仮想表示領域45に操作入力があるか否かを判定する(ステップS303)。すなわち、制御部208は、キーボード206或いはマウス207によって仮想表示領域45に対して操作入力が行われたか否かを判定する。
この処理において、仮想表示領域45に操作入力があると判定すると(ステップS303:YES)、制御部208は、操作命令を作成する(ステップS304)。すなわち、制御部208は、この操作入力に基づく操作入力情報を取得し、仮想表示領域45にあるポインタの位置情報と操作入力情報とを含む操作命令を生成する。なお、当該操作入力に基づく操作が自分の端末装置2で実行されることを防ぐために、操作入力情報を破棄する。
次に、制御部208は、ステップS304で生成した操作命令を、インターフェイス203及び通信経路4を介して、サーバ装置1へ送信する(ステップS305)。
このステップS305の処理が終了したとき、或いは、ステップS303において、仮想表示領域45に操作入力がないと判定したとき(ステップS303:NO)、制御部208は、サーバ装置1から仮想表示領域45にあるウィンドウ画像の画像データの送信要求があるか否かを判定する(ステップS306)。この画像データの要求は、サーバ装置1が画像属性情報管理テーブルの情報に基づいて端末装置2に対して送信する画像データ要求情報である。
この処理において、サーバ装置1から画像データの送信要求があると判定すると(ステップS306:YES)、制御部208は、当該送信要求に応じた画像データを生成して、インターフェイス203及び通信経路4を介して、当該画像データをサーバ装置1へ送信する(ステップS307)。
ステップS307における画像データの送信が終了したとき、或いはステップS306においてサーバ装置1から画像データの送信要求がないと判定したとき(ステップS306:NO)、制御部208は、受信データ処理を開始する(ステップS308)。この受信データ処理は、サーバ装置1から送信される操作命令や表示用画像のデータを受信する処理である。この処理は、図16におけるステップS400〜S404までの処理であり、後述する。
この受信データ処理が終了すると、制御部208は、その利用者の操作により、画像共有プログラムの終了操作が行われたか否かを判定する(ステップS309)。画像共有プログラムの終了操作が行われていないと判定したとき(ステップS309:NO)、制御部208は、処理をステップS301に移行する。一方、画像共有プログラムの終了操作が行われたと判定すると(ステップS309:YES)、制御部208は、本処理を終了する。
次に、ステップS309における受信データ処理について、図16を参照して具体的に説明する。図16は、本実施形態におけるサーバ装置1の受信データ処理フローチャートである。
図16に示すように、受信データ処理を開始すると、制御部208は、サーバ装置1からインターフェイス203を介して操作命令を受信したか否かを判定する(ステップS400)。
この処理において、操作命令を受信したと判定すると(ステップS400:YES)、制御部208は、受信した操作命令に応じた操作入力を再生することにより、操作の対象となるデータファイルに応じたアプリケーションによる当該操作命令に基づいた編集操作を実行する(ステップS401)。
このステップS401の処理が終了したとき、或いは、ステップS400において操作命令を受信していないと判定したとき(ステップS400:NO)、制御部208は、表示用画像のデータを受信したか否かを判定する(ステップS402)。
ステップS402において、表示用画像のデータを受信したと判定すると(ステップS402:YES)、制御部208は、この表示用画像のデータに基づいた画像をLCD200に表示する(ステップS403)。なお、上述したように、各端末装置2は、その利用者によるマウス207等への操作により、LCD200へ表示する画像を、サーバ装置1から送信される表示用画像と自装置のアプリケーションプログラムで生成した画像のいずれかの画像を選択して表示することができるようにしている。
ステップS403の処理が終了したとき、或いはステップS402において、表示用画像データを受信していないと判定すると(ステップS402:NO)、制御部208は、受信データ処理を終了する。
以上、本発明の実施の形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
例えば、上述においては、サーバ装置1と端末装置2とを接続するときに、端末装置2からサーバ装置1に接続を行うこととしたが、サーバ装置1の記憶部102に予め接続する端末装置2のIPアドレス等の所在情報を記憶しておき、サーバ装置1の制御部106が記憶部102に記憶した情報に基づいて、端末装置2へ接続を要求することによってサーバ装置1と端末装置2とを接続するようにしてもよい。