以下、図面を参照して、本発明の実施形態を詳細に説明する。図1は、本発明の実施形態における、情報処理システムの構成の一例を示す図である。
図1に示す通り、本発明の情報処理システムは、サーバ200と、クライアント端末100(クライアント端末100A、クライアント端末100B、クライアント端末100C、クライアント端末100D/以下、総称としてクライアント端末100と記載)とが、ネットワーク101を介して通信可能に接続され、構成されている。
サーバ200は、クライアント端末100を用いたウェブ会議を実行するための各種機能を備えている。例えば、ウェブ会議用のルームの作成・記憶、クライアント端末100の識別情報と各クライアント端末から受信する、例えば、会議参加者であるユーザを撮像した画像データであるカメラ画像(会議画像/映像)、及びその対応付け情報の記憶、当該画像データの各クライント端末への送信処理の制御等を行うものである。
クライアント端末100は、カメラ機能及びタッチパネル機能(操作部)を備える端末である。ユーザからの操作に応じて(例えば認証情報の入力・送信指示に応じて)サーバ200へログインし、当該カメラが撮像して取得した映像としての画像データ(会議画像/映像/動的なデータ)を、逐次、サーバ200を介して、同一のルームに入室中(会議に参加中)の他のクライアント端末100に送信する。
また、カメラから取得した画像データの他に、当該クライアント端末100に記憶されているデータ、例えば写真画像や、PDFファイル等の文書データ等の静的なデータを、サーバ200を介して他のクライアント端末100に送信して共有するデータ共有機能を備える。
当該静的なデータを他のクライアント端末100に送信する場合、例えば、全てのクライアント端末100は当該静的なデータを表示画面に表示する制御を行う。データ共有機能では、複数のクライアント端末間で共有中のデータは、当該複数のクライアント端末100において同じ状態のデータ(共有画像)が表示される。つまり、クライアント端末100Aにおいて共有画像が拡大された場合、他の端末(クライアント端末100B〜100D)において表示中の共有画像も同じ拡大位置・拡大率で拡大処理がされることとなる。
この際、全ての端末からの当該表示中の共有画像(例えば文書データの画像)に対する操作・編集を有効にしてしまうと、操作(各操作に応じた処理(表示制御))が競合してしまう可能性があるため、ここでは、データ共有を開始したクライアント端末100をホストとして、当該ホスト端末のみが、当該共有中のデータに対する編集を行えるよう制御する。
操作の競合の一例として、複数の端末から同時に拡操作、及び縮小操作がされた場合があげられる。
具体的には、例えば、クライアント端末100Aが文書資料を拡大して閲覧したいユーザからの操作に応じて共有中の文書データの拡大処理を行い、直後に、クライアント端末100Bが文書資料を縮小して閲覧したいユーザからの操作に応じて共有中の文書データの縮小処理を行った場合である。
この場合、当該拡大された画像がクライアント端末100Aからサーバ200を介して各クライアント端末100に送信されて各クライアント端末100にて表示された直後に、縮小された画像がクライアント端末100Bからサーバ200を介して各クライアント端末100に送信されて各クライアント端末100にて表示されるため、最終的に各クライアント端末100の表示画面に表示されるデータは縮小処理後のデータであり、クライアント端末100Aの操作者であるユーザは所望していた拡大処理後の文書データを見ることが出来なくなってしまう。
操作の競合は当該拡大・縮小操作に限られるものではない。例えば、ページ送り等の操作においても、ページを進めた直後にページが戻る処理が行われる等の操作の競合も考えられる。
ここでは、上記のような操作の競合(当該操作に応じた画像の表示処理の競合)を防止するため、各クライアント端末100は、データ共有を開始したクライアント端末100をホストとして、当該ホスト端末のみが、当該共有中のデータに対する編集を行えるように制御するものとする。
図1においては、例えば、データ共有処理におけるホスト端末=クライアント端末100Aとし、クライアント端末100B〜100Dの各端末をホストに対するクライアント端末とする。以上が図1の、本発明の実施形態における、情報処理システムの構成の一例についての説明である。
次に図2を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。図2は、本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器への表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
また、本発明の実施形態において、クライアント端末100のCRT210は、タッチパネル機能を有するものとする。CRT210がタッチパネル機能を有する場合、当該CRT210は入力装置としても機能し、入力コントローラにタッチパネル機能で検出した(ディスプレイで受け付けた)タッチ操作の情報を入力情報として伝達するものとする。つまり、入力コントローラ205は、CRT210からの入力制御を行う。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したネットワーク101)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
212は加速度センサであり、例えばクライアント端末100の加速度を検出する。尚、加速度センサが外部装置としてクライアント端末100等の装置に取り付けられている場合、例えば、加速度センサ212は入力コントローラ209と通信することで検出した加速度の情報をクライアント端末100に伝達する。以上が図2の、本発明の実施形態における、各種装置のハードウェア構成の一例についての説明である。
次に図3を参照して、本発明の実施形態における、各種装置の機能構成の一例について説明する。図3は、本発明の実施形態における、各種装置の機能構成の一例を示す図である。
入室要求部301は、サーバ200に作成され記憶されたルーム(ウェブ会議用の会議室)に対する、クライアント端末100(クライアント端末100でサーバ200にログイン中のユーザ)の入室要求をする要求部である。
画像データ送受信部302は、クライアント端末100に設置されたカメラ装置が撮像した映像(画像データ)を、サーバ200を介して他のクライアント端末に送信し、当該他のクライアント端末からサーバ200を介して送信された画像データを受信する送受信部である。
画像データ表示部311は、当該画像データ送受信部302で送受信した画像データ、及び、後述するデータ送受信部で送受信される共有データを表示する表示画面(例えば、図8の表示画面800等)を表示する表示部である。
ここで図8を参照して、会議画像の表示画面の一例について説明する。親画面801は、表示画面800において、他のクライアント端末からのカメラ画像、またはデータ共有機能により他端末と共有中のデータの画像を表示する画面(表示部)であり、表画面8800におけるメインの画面である。
子画面802、子画面803、子画面804、子画面805は、他のクライアント端末からのカメラ画像を縮小表示する画面であり、表画面8800におけるサブの画面である。子画面802〜805には、他のクライアント端末からのカメラ画像の他に、データ共有機能の起動アイコンや、チャット機能の起動アイコン等が表示される。「退室」ボタン806は、入室中のルームから退出するためのボタンである。
図3の説明に戻る。画面ID記憶部303は、当該クライアント端末100の表示画面に表示される複数の画像データ表示部(画面)の識別情報であるIDを記憶する記憶部である。当該記憶部は、当該画面IDと、当該送受信部で送受信した画像データを対応付けて記憶し、クライアント端末100は、当該対応付けられた画面IDの示す画面に、当該対応付けられた画像データ(会議画像)を表示する。
共有データ特定部304は、データ共有機能で他のクライアント端末と共有する(同期して表示する)データである共有画像を、ユーザの操作に応じて特定する特定部である。データ送受信部305は、当該共有画像を、サーバ200を介して他のクライアント端末に送信し、当該他のクライアント端末からサーバ200を介して送信された共有画像を受信する送受信部である。
操作対象画面特定部306は、ユーザから操作を受け付けた画面が、表示画面に表示された複数の画面のうち、いずれの画面化を特定する特定部である。操作種別特定部307は、ユーザから受け付けた操作の種別を特定する特定部である。操作の種別とは、例えば、タップ、ダブルタップ、スワイプ、ピンチイン、ピンチアウト等の操作である。
尚、当該操作の種別は上記の内容に限られるものではない。例えばマウス装置を用いたクリック、ダブルクリック、ドラッグ&ドロップ等の操作であってもよい。
画面状態記憶部308は、表示画面に表示された複数の画面の状態を記憶する記憶部である。画面の状態とは、例えば、当該画面に表示されている画像が(当該画面の画面IDと対応付けて記憶されている画像データが)、共有画像のデータか、カメラ装置で撮像された結果送受信されている会議画像の画像データか、を示す。
画像入替処理部309は、ユーザからの操作に応じて、表示画面に表示されている複数の画面間で、表示中の画像を入れ替える処理を行う。具体的には、子画面のタップ操作(入替操作)を受け付けた場合に(入替操作受付手段に該当)、親画面との表示画像の入替処理を行う。
入替禁止通知部310は、ユーザから操作を受け付けた画面の画像データの当該入替処理が禁止されている場合に、当該入替が禁止されている旨をユーザに通知する通知処理部である。具体的には、親画面に共有画像が表示されている場合に親画面と子画面の表示画像の入替処理を禁止し、子画面に対するタップ操作を受け付けた場合に、当該タップ操作を受け付けた子画面を振動させることで、当該子画面と親画面の表示画像の入替が禁止されている旨を通知する。
入退室管理部321は、サーバ200の外部メモリに記憶されているウェブ会議室(ルーム)に対するユーザ(クライアント端末100)の入退室の状態を記憶する記憶部である。具体的には、クライアント端末100からの入室要求を受け、入室を許可した場合に、サーバ200にログイン中の、当該要求元のクライアント端末100から取得したログインユーザのユーザIDを、当該ルームの識別情報と対応付けて記憶し、当該ユーザがルームから退出した場合に、当該ログインユーザのユーザIDを当該ルームと対応付けて記憶したテーブルより削除する。
画像データ受信部322は、各クライアント端末100から送信されたカメラ画像を受信する受信部である。画像データ記憶部323は、当該受信したカメラ画像を、各クライアント端末(ユーザID)毎に一時記憶する記憶部である。画像データ送信部324は、当該カメラ画像の送信元(取得元)のクライアント端末100が入室中のルームと同じルームに入室中の各クライアント端末に、当該カメラ画像を随時送信する。
共有データ受信部325は、ホストとしてのクライアント端末100から、共有する共有画像(写真の画像データ、文書データ等)を受信する受信部である。共有データ記憶部326は、当該受信した共有画像を一時記憶する記憶部である。共有データ送信部327は、当該共有画像の送信元のクライアント端末100が入室中のルームと同じルームに入室中の各クライアント端末に、随時、当該共有画像を送信する。以上が図3の、本発明の実施形態における、各種装置の機能構成の一例についての説明である。
次に図10を参照して、本発明の実施形態における、表示画面の表示処理の流れについて説明する。図10は、本発明の実施形態における、表示画面の表示処理の流れを示すフローチャートである。
クライアント端末100のCPU201は、ユーザからの指示に応じて会議アプリケーションを起動し(ステップS1001)、サーバ200にログインすべく、予め当該会議アプリケーションに登録済のユーザ情報をサーバ200に送信する。つまりログイン要求を送信する(ステップS1002)。
ここでいうユーザ情報とは、図7のユーザ情報700のような情報である。ユーザ情報700は、ユーザID701、ユーザ名702、パスワード703等から構成される。ユーザID701はユーザを一意に識別する識別情報であり、ユーザ名702は当該ユーザIDに対応するユーザの名称である。パスワード703は、サーバ200へのログインに用いられる、当該ユーザID701に対応するパスワードである。
サーバ200のCPU201は、当該ユーザ情報700を含むログイン要求を受信し(ステップS1003)、当該ユーザ情報(具体的にはユーザIDとパスワード)を用いたログイン処理を行って、当該ログイン処理の結果をクライアント端末100に送信する(ステップS1004)。
クライアント端末100のCPU201は、当該ログイン結果を受信する(ステップS1005)。ここではログインが成功急いたものとして以降の説明を行う。
クライアント端末100のCPU201は、ログイン成功の結果、表示画面に表示される不図示のルーム選択画面から、入室するルームの選択指示を受け付け、当該選択されたルームへの入室要求をサーバ200に送信する。
サーバ200のCPU201は、当該入室要求を受信し、入室処理を実行する(ステップS1007)。つまり、サーバ200の外部メモリに予め記憶されているルームの識別情報(図7のルーム情報710におけるルームID711)に対応付けて、当該ルームに入室したログインユーザのユーザID(ユーザID712)を記憶する。
その後、当該入室処理の結果(いずれのルームにユーザが入室したかの情報/ルーム情報710)をクライアント端末100に送信する。当該ルーム情報の送信の際、サーバ200の外部メモリに、当該ルームのルームIDに紐づいて、当該ルーム使用にあたり各クライアント端末100が使用可能な通信帯域の上限値、音声品質の上限値、会議画像の解像度の上限値等が記憶されている場合、当該上限値の値を共に送信する。
クライアント端末100は、当該上限値の値を受信した場合、以降の会議画像の送信、音声の送信を当該上限値以下に変更して、サーバ200を介して、他のクライアント端末100に対して送信するものとする。
クライアント端末100のCPU201は、当該入室結果の情報を受信する(ステップS1009)。そして、カメラ装置を起動して、撮像処理を実行する(ステップS1010)。
クライアント端末100のCPU201は、撮像処理で撮像することにより取得したカメラ画像(撮像画像/会議画像)をサーバ200に送信し(ステップS1011/撮像画像送信手段、画像送信手段に該当)、サーバ200のCPU201は、当該カメラ画像を受信して(ステップS1011/画像受信手段に該当)、カメラ画像をユーザIDと対応付けて外部メモリに記憶する。例えば、図7の会議画像対応付け情報730に示すように、ユーザID731にログインユーザのユーザID701を挿入し、会議画像732に、クライアント端末100から受信中の映像であるカメラ画像を順次記憶していく処理を行う。
尚、会議画像732に記憶されるカメラ画像は、所定のデータ量(データ容量/フレーム数)のみであり、順次、同ルームに入室中の他のユーザのクライアント端末100に送信する。つまり、ルーム情報710の、当該カメラ画像の送信元のユーザIDとは異なるユーザIDを特定し、当該送信元のユーザIDとは異なるユーザIDに対応するクライアント端末100に対して、当該会議画像732に記憶されるカメラ画像を送信する。
ユーザIDとクライアント端末の対応付けをした情報は、入室処理完了時にサーバ200のCPU201によって生成され、サーバ200の外部メモリに記憶されているものとする。例えば、入室中のユーザのユーザIDと、入室指示に伴ってクライアント端末100からサーバ200が受信した、クライアント端末100の識別情報(例えばIPアドレス)とを対応付けて記憶した情報である。
サーバ200のCPU201は、ユーザが入室中のルームと同じルームに入室中の他のユーザを、ルーム情報710を参照して特定し、当該他のユーザのユーザID731と、当該ユーザID731に対応する会議画像732のカメラ画像を、クライアント端末100に送信する(ステップS1014)。つまり、会議画像対応付け情報730を送信する。
この際、不図示の、当該ルームへのユーザの入室順を、共にクライアント端末100に送信する。当該ルームへのユーザの入室順の情報は、当該ルームにユーザが入室する毎にサーバ200のCPU201が生成し、外部メモリに記憶しているものとする。
クライアント端末100のCPU201は、当該他ユーザのカメラ画像を受信し(ステップS1015)、自端末のユーザを含めた、同ルームに入室中のユーザ数分、当該ユーザに対応する会議画像の画面(表示部/フレーム/図8でいう親画面801〜子画面805等)のIDである画面ID(図7のステータス740及び画面ID741)を生成して、当該画面IDと同ルームに入室中のユーザの各ユーザIDを対応付けて記憶する。例えば、図7のステータス740の、ユーザID742にと当該ユーザIDを記憶する。また、会議画像対応付け情報730を外部メモリに記憶する(取得元記憶手段に該当)。
ここでは、親画面801、子画面802、子画面803、子画面804、子画面805の順に画面IDを生成して記憶するものとする。また、画面ID(数値)は、生成順が速いほど小さく、生成順が後になるほど大きくなるものとする。
クライアント端末100のCPU201は、画面IDを小さい順に取得して、ステップS1015で受信したユーザの入室順に、各ユーザIDを画面IDに対応付けて記憶する。つまり、最初に入室したユーザのユーザIDを親画面に対応付けて記憶する。
ステータス740は、クライアント端末100の外部メモリに記憶される、表示画面800中の各画面の状態(ステータス)を示す情報である。尚、共有フラグ743は、画面ID741の示す画面が、データ共有機能で共有される共有画像の表示部として使用されている状態か否かを示すフラグである。データ共有フラグ743=0の場合、画面ID741の示す画面は会議画像の表示部として使用されている状態である。また、当該共有フラグ743=1の場合、画面ID741の示す画面は共有画像の表示部として使用されている状態である。
ホストフラグ744は、当該画面ID741の示す画面が、データ共有機能で共有される共有画像の表示部として使用されている場合に、当該画面を表示中の端末が、共有画像の共有元であるホスト端末であるか否かを示す。ホストフラグ744=1の場合、当該ステータス740を記憶しているクライアント端末100=ホスト端末(共有画像の共有元)であり、ホストフラグ744=0の場合、当該ステータス740を記憶しているクライアント端末100=ホスト端末に対するクライアント端末(共有画像の共有先)である。
フルスクリーンフラグ745は、当該画面ID741の示す画面が、フルスクリーン表示状態か否かを示す。フルスクリーンフラグ745=1の場合、フルスクリーン表示の状態(図9に図示)であり、フルスクリーンフラグ745=0の場合、通常表示(図8に図示)の状態である。画面種別746は、当該ステータス740の示す画面が親画面か子画面かを示す。尚、最も小さい画面ID(最初に生成された画面ID)に対応する画面種別746には、親画面であることを示す値が挿入され、その他の画面IDに対応する画面種別746には、子画面であることを示す値が挿入される。
クライアント端末100のCPU201は、ステータス740の、画面IDとユーザIDとの対応付けに従って、ユーザIDに対応した画像データと画面IDとと対応付けて記憶する(ステップS1017)。例えば、図7の、画面対応付け情報760を生成する。画面対応付け情報760の画面ID761は、表示画面800中の各画面(親画面801〜子画面805等)の識別情報である。
会議画像762及び共有画像763は、画面ID761に対応付けて記憶される、当該画面ID761の示す画面に表示する画像である。当該画面ID761の示す画面には、会議画像762又は共有画像763のどちらか一方が表示されるため、会議画像762にカメラ画像の実データが記憶中の場合は、共有画像763にはnullの値が挿入され、実データは記憶されない。また、共有画像763に共有画像の実データが記憶中の場合は、会議画像762にはnullの値が挿入され、実データは記憶されないものとする。
クライアント端末100のCPU201は、ステータス740及び画面対応付け情報760の情報に従って図8の表示画面800を生成し(ステップS1018)、表示画面に表示する(ステップS1019)。以上が図10の、本発明の実施形態における、表示画面の表示処理の流れについての説明である。
次に、図4を参照して、本発明の実施形態における、ホスト端末におけるデータ共有処理の流れについて説明する。図4は、本発明の実施形態における、ホスト端末におけるデータ共有処理の流れを示すフローチャートである。
尚、図4以降の説明においては、クライアント端末100A〜クライアント端末100Dは、ユーザからの操作指示に応じて既にサーバ200にログイン済であり、同一のルームに入室中であるものとする。
ステップS401で、クライアント端末100AのCPU201は、ユーザからの指示を受け付け、当該受け付けた指示がデータ共有の開始指示か判定する(ステップS402)。つまり、表示画面800に表示されたデータ共有機能の起動アイコンに対するタップ指示を受け付けたか判定する。
受け付けた指示がデータ共有の開始指示であると判定した場合(ステップS402でYES)、データ共有を開始する旨をサーバ200に通知する(ステップS403)。
サーバ200のCPU201は当該通知を受信し(ステップS415)、外部メモリに記憶している、図8のホスト情報720のホストID721(ホスト端末/ホストユーザを識別するための識別情報)を、当該データ共有の開始の通知に含まれるユーザIDに更新する(ステップS416)。ホスト情報720は、会議室(ルーム/ルームID)毎に生成され、記憶されているものとする。ルーム生成直後は、ホストID721、共有画像722共にnullの値を挿入し、空欄であるものとする。共有画像722には、データ共有で共有する文書等の画像データが記憶される。
サーバ200のCPU201は、当該ホストID721、及び当該データ共有の開始の通知を、ルーム内の他のクライアント端末(クライアント端末100B〜100D)に通知して(ステップS417)処理を終了する。当該データ共有開始通知を受信するクラインと端末の以降の処理については、図5の説明で後述する。
一方、ステップS403でデータ共有の開始の通知をしたクライアント端末100AのCPU201は、親画面801の画面IDに対応付けて外部メモリに記憶された、図7のステータス740を参照して、親画面の画面ID741に対応するデータ共有フラグ743の値を0から1に変更する(ステップS404)。データ共有フラグ743は、親画面に表示される情報が共有画像である旨を示すフラグである。また、ホストフラグ744の値を1に変更する。
その後、クライアント端末100AのCPU201は、共有するデータの選択のために、当該クライアント端末100Aに記憶されたデータ選択用のアプリケーションの選択画面を表示画面に表示する(ステップS405)。当該データ選択用のアプリケーションは、予め、クライアント端末100Aの外部メモリに登録・記憶されているものとする。
ここでいうデータ選択用アプリケーションとは、例えば、当該会議アプリケーションが閲覧できない写真画像を記憶・閲覧するためのアプリケーションや、文書データの記憶・閲覧用のアプリケーション等である。
クライアント端末100AのCPU201は、例えば写真閲覧用アプリケーションの選択を受け付けると、当該写真閲覧用アプリケーションのAPIに対して、当該写真閲覧用アプリケーションの写真選択画面の表示要求を送信する(ステップS407)。
写真閲覧用アプリケーションのAPIは、当該表示要求を写真閲覧用アプリケーションに伝達し、当該伝達を受けた写真閲覧用アプリケーションは(ステップS418)写真の選択画面を表示画面に表示する(ステップS419)。
クライアント端末100AのCPU201は、ユーザからの指示を受け付け(ステップS420/共有画像選択受付手段)、受け付けた指示がデータ(ここでは写真画像)の選択指示か判定する(ステップS421)。
受け付けた指示がデータの選択指示でない場合(ステップS421でNO)、受け付けた指示が当該写真の選択画面の終了指示と判定し、処理をステップS401の前に戻す。
受け付けた指示がデータの選択指示である場合(ステップS421でYES)、写真閲覧用アプリケーションは、選択を受け付けたデータ(写真画像)の情報を会議アプリケーションに送信し(ステップS422)、処理を図4のステップS401に戻す。会議アプリケーションはこれを受信して(ステップS408)、図7の画面対応付け情報760中の、親画面の画面ID761に対応する共有画像763に、共有画像(写真画像)を挿入する。
尚、親画面への共有画像の挿入がされる場合、当該挿入処理以前に当該親画面に表示されていた会議画像を表示するための子画面を追加で生成し(つまり、画面ID741を1つ追加し)、当該追加された子画面に、当該挿入処理以前に当該親画面に表示されていた会議画像を挿入する処理を行う(ステップS428)。
クライアント端末100AのCPU201は、ステップS408で受信したデータをサーバ200に送信し(ステップS409/共有画像送信手段に該当)、サーバ200のCPU201はこれを受信して(ステップS423/画像受信手段に該当)、図7のホストID721と対応付けて、共有画像722に記憶する(ステップS424)。その後、処理を図5のステップS508に移行する。ステップS508以降の処理については、図5の説明で後述する。
クライアント端末100AのCPU201は、ステップS401で受け付けた指示がデータ共有の開始指示でないと判定した場合(ステップS402でNO)、受け付けた指示が、表示画像の切り替え指示(親画面と子画面の表示画像の入替処理の指示)か判定する(ステップS413)。
受け付けた指示が、表示画像の切り替え指示である場合(ステップS413でYES)、指示を受け付けた画面と他の親画面または子画面と表示画像の切替処理(入替処理)を行う(ステップS414)。当該表示画像の切替処理の詳細については図6の説明で後述する。
受け付けた指示が、表示画像の切り替え指示でない場合(ステップS413でNO)、受け付けた指示がデータ共有機能の終了指示か判定する(ステップS410)。
尚、図7のデータ共有フラグ743=0の場合、データ共有が行われていないためステップS410の処理はスキップして、処理をステップS412に移行する。
受け付けた指示がデータ共有機能の終了指示である場合(ステップS410でYES)、データ共有の終了通知をサーバ200に送信する(ステップS411)。サーバ200のCPU201は当該通知を受信し(ステップS425)、ホストID721の値をnullに更新して(ステップS426)、当該データ共有機能の終了通知を、クライアント端末100B〜クライアント端末100Dに送信する(ステップS427)。当該通知を受信して以降のクライアント端末100B〜クライアント端末100Dの処理は図5の説明で後述する。
受け付けた指示がデータ共有機能の終了指示でない場合(ステップS410でNO)、クライアント端末100AのCPU201は、受け付けた指示が会議アプリケーションの終了指示か判定する(ステップS412)。例えば、「退室」ボタン806のタップ指示を受け付けたか判定する。
受け付けた指示が会議アプリケーションの終了指示である場合(ステップS412でYES)、処理を終了し、受け付けた指示が会議アプリケーションの終了指示でない場合(ステップS412でNO)、例えば、クライアント端末100Aの本体に設置された音声ボリュームの増大・減少操作を受け付けた場合、当該操作指示に従った処理を実行して、処理をステップS401の前に戻す。
尚、受け付けた指示が会議アプリケーションの終了指示である場合であって、図7のデータ共有フラグ743=1で、且つ、ホストフラグ744=1の場合、つまり、データ共有の処理が行われている場合であって、自端末がホスト端末である場合、ステップS411のデータ共有の終了通知の処理を実行後、アプリケーションを終了するものとする。以上が図4の、本発明の実施形態における、ホスト端末におけるデータ共有処理の流れについての説明である。
次に図5を参照して、本発明の実施形態における、データ共有処理の流れについて説明する。図5は、本発明の実施形態における、データ共有処理の流れを示すフローチャートである。
尚、図5のステップS501の時点において、クライアント端末100B〜100Dの各端末は、図10の処理を完了し、表示画面800を表示中であるものとする。ここでは一例として、クライアント端末100Bを処理主体として説明する。
クライアント端末100BのCPU201は、サーバ200から通知を受信し(ステップS501)、受信した通知がデータ共有の開始通知か判定する(ステップS502)。データ共有の開始通知であると判定した場合(ステップS502でYES)、外部メモリに記憶されている図7のステータス740を参照して、親画面の画面ID741に対応するデータ共有フラグ743の値を0から1に変更する(ステップS503)。
クライアント端末100BのCPU201は、親画面801に、サーバに接続して共有画像を取得中である旨を示す「接続中」の文字を挿入し、親画面801に表示されていた会議画像を表示するための子画面を追加で生成し(つまり、ステータス740及び画面ID741を1つ追加し)、当該追加された子画面に、当該親画面に表示されていた会議画像を対応付けて記憶する処理を行い(ステップS504/追加生成した画面IDと同じ画面IDを有する画面対応付け情報760の生成及び会議画像762への会議画像の挿入処理を行い)、新たに表示画面810(図8に図示)を生成する。
クライアント端末100BのCPU201は、共有画像の取得要求をサーバ200に送信し(ステップS507)、サーバ200のCPU201は当該要求を受信して(ステップS508)、クライアント端末100Bに共有画像をホストIDと共に送信する(ステップS509)。つまり、ホスト情報720を送信する。
クライアント端末100BのCPU201は、共有画像を受信する(ステップS510)。そして、図7の画面対応付け情報760中の、親画面の画面ID761に対応する共有画像763に、受信した共有画像(写真画像)を挿入し、表示画面を表示画面820(図8に図示)の状態に更新して表示する(ステップS511)。また、ホスト情報720を外部メモリに記憶する。
クライアント端末100BのCPU201は、ステップS502において、ステップS501で受信した通知が、データ共有の開始通知でないと判定した場合(ステップS502でNO)、受信した通知が、データ共有の終了通知か判定する(ステップS512)。
受信した通知が、データ共有の終了通知でないと判定した場合(ステップS512でNO)、処理をステップS501の前に戻す。受信した通知が、データ共有の終了通知であると判定した場合(ステップS512でYES)、親画面の画面IDに対応付けられたデータ共有フラグ743の値を0に変更する(ステップS513)。
また、ステップS504で新規に生成した子画面を削除し、当該子画面の画面ID761に対応付けて記憶されていた会議画像762を、親画面の画面ID761に対応付けて記憶する。つまり、表示画面の状態を図8の表示画面800の状態に戻して表示する(ステップS514)。以上が図5の、本発明の実施形態における、データ共有処理の流れについての説明である。
次に図6を参照して、本発明の実施形態における、画面表示切替処理の流れについて説明する。図6は、本発明の実施形態における、画面表示切替処理の流れを示すフローチャートである。図6の処理は、図4のステップS414の詳細な処理であり、全てのクライアント端末100の共通処理であるものとする。
クライアント端末100のCPU201は、受け付けた指示がピンチ操作(ピンチイン又はピンチアウトの操作)か判定する(ステップS601)、受け付けた指示がピンチ操作である場合(ステップS601でYES)、当該ピンチ操作を受け付けた画面が表示画面800中の親画面801か、子画面802〜805か判定する(ステップS602)。
当該ピンチ操作を受け付けた画面が表示画面800中の子画面であった場合(ステップS602でNO)、当該ピンチ操作を受け付けた子画面を振動させることで、当該ピンチ操作による動作が禁止されていることを通知する(ステップS603)。こうすることで、画面に対するタップ操作は有効であるが(クライアント端末100はタップ操作を検知しているが)、当該操作が禁止されているために、当該操作に対応する処理が行われないことをユーザに通知することができる。
当該ピンチ操作を受け付けた画面が表示画面800中の親画面801であった場合(ステップS602でYES)、操作内容がピンチイン操作か判定する(ステップS604)。操作内容がピンチイン操作である場合(ステップS604でYES)、当該親画面に表示された画像を拡大表示し(ステップS606)、操作内容がピンチアウト操作である場合(ステップS604でNO)、当該親画面に表示された画像を縮小表示する(ステップS605)。
クライアント端末100のCPU201は、受け付けた操作がピンチ操作でない場合(ステップS601でNO)、受け付けた操作がダブルタップの操作か判定し(ステップS607)、ダブルタップの操作でないと判定した場合(ステップS607でNO)、受け付けた操作をタップ操作であると判定して、処理をステップS608に進める。
クライアント端末100のCPU201は、タップ操作を受け付けた画面が親画面か子画面か判定し(ステップS608)、タップ操作を受け付けた画面が親画面であると判定した場合、当該親画面の画面IDを外部メモリより取得して、当該親画面の画面IDを備えるステータス740を取得し、参照する(ステップS609)。
当該ステータスのフルスクリーンフラグ745=1か判定し(つまり、操作を受け付けた親画面がフルスクリーン表示の状態か判定し/ステップS610)、フルスクリーン表示の状態の場合(ステップS610でYES)、当該表示画面に表示されたツールバーを隠す表示処理を行い(図9の表示画面900から表示画面910への表示状態の遷移処理を行い)、フルスクリーン表示の状態でない場合(ステップS610でNO)、当該親画面を振動させる表示制御処理を行う。
クライアント端末100のCPU201は、タップ操作を受け付けた画面が子画面であると判定した場合(ステップS608の判定)、当該子画面の画面ID、及び、親画面の画面IDを外部メモリより取得して、各画面IDを備える各ステータス740を取得する(ステップS613)。
そして、親画面のステータス740のデータ共有フラグ=1か判定し(つまり、親画面に共有画像が表示中か判定し/ステップS614/画像種別特定手段に該当)、親画面のステータス740のデータ共有フラグ=0の場合(つまり、親画面に会議画像が表示中の場合)、当該操作を受け付けた子画面と、親画面とに表示されている画像を切り替える(入れ替える)ことを決定し、当該決定に従って画像の入替処理を行う。
具体的には、それぞれの画面IDを備えるステータス740のユーザID742の値を交換して更新し、また、当該交換の処理に応じて、画面対応付け情報760の当該ユーザIDに対応する会議画像762を交換して更新する。そして、当該更新した情報を基に表示画面を更新・生成して表示する(ステップS618)。
親画面のステータス740のデータ共有フラグ=1の場合(つまり、親画面に共有画像が表示中の場合)、タップ操作を受け付けた子画面と親画面の表示画像の入替を行わないことを決定し、ホストフラグ744=1か判定し(つまり、操作を受け付けたクライアント端末100がデータ共有のホスト端末か判定し/ステップS615)、ホストフラグ744=1の場合、つまりホスト端末である場合(ステップS615でYES)、当該タップ操作を受け付けた共有画像上の位置に、共有画像上の注目点を示すマークを付与する、共有画像の編集処理を行う(ステップS616)。
尚、当該共有画像の編集処理が行われた場合、クライアント端末100のCPU201は、当該編集後の共有画像をサーバ200に送信し、サーバ200のCPU201は、当該編集された共有画像を記憶して、他のクライアント端末100に表示させるべく送信する。
尚、当該編集処理は上述したマークの付与に限られるものではない。例えばスワイプの操作を受け付けた場合、当該スワイプの軌跡に沿って線を書き込む処理を行うようにしてもよい。
ホストフラグ744=0の場合、つまりホスト端末でない場合(ステップS615でNO)、当該タップ操作を受け付けた子画面を振動させる表示制御を行う。
クライアント端末100のCPU201は、受け付けた操作がダブルタップ操作であると判定した場合(ステップS607でYES)、操作を受け付けた画面が親画面か子画面か判定する(ステップS619)。操作を受け付けた画面が子画面であると判定した場合、処理をステップS615に移行する。
操作を受け付けた画面が親画面であると判定した場合、当該親画面の画面IDを外部メモリより取得して、当該親画面の画面IDを備えるステータス740を取得して参照する(ステップS620)。
当該ステータスのフルスクリーンフラグ745=1か判定し(つまり、操作を受け付けた親画面がフルスクリーン表示の状態か判定し/ステップS621)、フルスクリーン表示の状態の場合(ステップS621でYES)、フルスクリーンフラグ745を0に変更し、表示画面の状態を図8の表示画面800のような通常表示の状態に移行する(ステップS622)。
フルスクリーン表示の状態でない場合(ステップS621でNO)、フルスクリーンフラグ745を1に変更し、表示画面の状態を図9の表示画面900のようなフルスクリーン表示の状態に移行する(ステップS623)。以上が図6の、本発明の実施形態における、画面表示切替処理の流れについての説明である。
尚、上述の説明においては、親画面に会議画像を表示中に子画面に対するタップ操作を受け付けた場合、当該子画面と親画面の表示画像を入れ替え、親画面に共有画像を表示中に子画面に対するタップ操作を受け付けた場合、当該子画面を振動させて、当該操作による処理(表示画像の入替処理)が禁止されている旨をユーザに通知するものとしたが、例えば、図7のモード情報750のような情報を用いて、子画面に対するタップ操作を受け付けた時点でのモードが、共有画像表示中である共有モードか、会議画像のみ表示中である会議モードかを判定し、共有モード中は表示画像の入替を禁止し、会議モード中は表示画像の入替を許可するようにしてもよい。
以下、モード情報750を用いた本発明の実施形態について説明する。
モード情報750は、不図示のルーム生成処理時に、サーバ200のCPUによって生成され、記憶されているものとする。ルームID751はルームの識別情報であり、モードフラグ752は、ウェブ会議のモードが、共有画像表示中である共有モードか、会議画像のみ表示中である会議モードかを示す。ここでは、モードフラグ752=1の場合、共有モード、モードフラグ752=0の場合、会議モードであるものとする。モード情報750生成時、デフォルトで、モードフラグ752には0の値が挿入されるものとする。
モード情報750を用いた表示切替処理(図6)の制御を行う場合、図10のステップS1008においてサーバ200のCPU201は、クライアント端末100にモード情報750を送信する。
また、図4のステップS404で、クライアント端末100AのCPU201は、モード情報750のモードフラグ752の値を1に変更する。データ共有の終了指示を受け付けた場合は、モードフラグ752の値を0に変更する。
ステップS417で、サーバ200のCPU201は、モード情報750のモードフラグ752の値を1に変更するよう、同ルームに入室中の他のクライアント端末100(100B〜100D)に通知する。
図5のステップS503で、クライアント端末100BのCPU201は、モード情報750のモードフラグ752の値を1に変更する(画像種別判定手段に該当)。ステップS513では、モード情報750のモードフラグ752の値を0に変更する。
図6のステップS613では、モード情報750もあわせて取得し、ステップS614では、モードフラグ752が1か0か判定する。モードフラグ752=1の場合、処理をステップS615に移行し、モードフラグ752=0の場合、処理をステップS618に移行する。以上が、モード情報750を用いた本発明の実施形態の説明である。
尚、上述した実施形態の説明においては、図4のステップS406、S407で親画面に表示された画像の拡大・縮小処理を行っているが、例えば、会議画像のように、会議相手の顔を確認できればよい場合に比べて、共有画像のように、資料等を表示する場合には拡大・縮小等の操作で詳細を確認するケースが考えられる。しかしながら、常にピンチ操作による拡大・縮小処理を有効にしていては、例えばタブレット端末のように、端末をユーザが手に持って使用している場合等、不意に画面に手が触れてしまうことが考えられ、その度に画面の表示が拡大・縮小されていては、ユーザは画面に手を触れないように注意を払う必要があり、非常に煩わしい。
これに対し、例えば、親画面に表示されている画像の種類(画像種別/会議画像か、共有画像か)に応じて、拡大・縮小処理の有効・無効を切り替えるようにしてもよい。
つまり、図6のステップS602で、受け付けた操作が親画面に対するピンチ操作であると判定した場合に、外部メモリより、親画面のステータス740を取得して参照し、ステータス740のデータ共有フラグ743=1の場合(つまり共有画像表示中の場合)は、拡大・縮小のいずれの処理もすることなく処理を終了し、データ共有フラグ743=0の場合(つまり会議画像表示中の場合)は、処理をステップS405に移行するようにしてもよい。
こうすることで、画面に表示されている画像の種類に応じて、拡大・縮小操作の有効・無効を切り替えることができ、ユーザは、当該操作に応じた拡大・縮小処理が必要な場合に、当該操作に応じた処理を端末に実行させることが出来る。
また、上述した実施形態においては、画面IDとユーザIDの対応付け、及び、当該対応付けに従った画面IDと会議画像の対応付けは、ユーザのルームへの入室順に行うものとしたが、当該会議画像には、クライアント端末100の操作者であるユーザの会議画像も含まれるため、当該操作者であるユーザがルームへの最初の入室者である場合は、親画面(大きく画像が表示される画面)に、操作者自身の画像が表示されてしまうこととなる。
ウェブ会議の場合、ユーザが所望する会議画像は、会議相手の画像であると推測されるため、例えば、画面IDとユーザIDの対応付け、及び、当該対応付けに従った画面IDと会議画像の対応付けについては、当該対応付けの処理を行うクライアント端末100のユーザのユーザIDを除いて行い、末尾の子画面(最も大きい数値を画面IDに持つ子画面)に当該クライアント端末100のユーザの画像を挿入するようにしてもよい。
また、共有画像に対する編集、操作権限が何れのユーザにあるかを、各クライアント端末100のユーザに確認可能にするため、共有画像の表示中には、いずれのユーザが当該共有画像の提供者(共有元)であるか識別可能に表示し、ユーザに通知するようにしてもよい。
例えば、共有画像表示中は、ホスト端末から送信される会議画像(ホスト端末のユーザの画像)を子画面の先頭に配置するようにすることが考えられる。具体的には、クライアント端末100B(その他100C、100D)が、図5のステップS501で受信した、データ共有の開始通知に含まれるホストIDを参照して(共有元特定手段に該当)、ステップS504の画面IDとユーザIDの対応付け情報の更新、及び、画面IDと会議画像の対応付け情報の更新の際に、親画面に対する共有画像の対応付けを行い、当該親画面に共有画像が対応付けられた場合に(画像種別判定手段に該当)、当該ホストIDの示すユーザIDを子画面の先頭の画面IDと対応付けて更新することを決定し(優先度決定手段に該当)、当該更新した情報を基に、表示画面810を生成することで実現可能である。
また、上述した実施形態においては、共有画像を親画面に挿入して表示する際、当該親画面に表示されていた会議画像は、子画面の末尾に追加するものとしたが(図8参照)、例えば、親画面に表示されていた会議画像を、最初の子画面(図8でいう子画面802)に繰り下げ、以降、子画面に表示されていた各会議画像を、1つ後ろの画面IDを備える子画面に表示するよう、画面IDとユーザID、及び画面IDと会議画像の対応付け情報を更新するようにしてもよい。
以上説明したように、本発明によれば、画面間で表示画像を入れ替える場合に、画面に表示されている画像の種類に応じて、当該画像の入れ替え可否を切り替えることが可能となる。
尚、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。