以下、本発明を実施するための形態について、電子黒板、電子黒板が行う処理方法等を図面を参照しながら説明する。
<本実施形態のネットワーク構造>
図1(a)は、本実施形態の画像処理システム1のネットワーク構造を説明する図の一例である。画像処理システム1は木構造のネットワーク構造を有している。すなわち、複数の電子黒板2が段階的に層をなす階層構造を形成している。木構造は、階層構造の一種であり、ノード(電子黒板2)からノード(電子黒板2)へと枝分かれを繰り返す構造をいう。
本実施形態では、子機1〜3(符号は2c)がそれぞれ親機2pとの通信を開始して親機2pが有する設定情報を子機1が取得し子機1に設定する。子機2,3についても同様である。また、孫機1〜3(符号は2g)は子機1との通信を開始して子機1が有する設定情報を取得し孫機1に設定する。孫機2、3についても同様である。
図1(b)は、本実施形態のネットワーク構造と比較される比較例を示す図である。図1(b)では親機2pが子機1〜子機3に設定情報を設定し、子機1が孫機2gに設定情報を設定する。このような構成では、親機2pは子機1〜3に設定情報を設定しなければならず、子機1は設定情報を孫機1〜3に設定しなければならず、1台の電子黒板2が行う負荷が大きい。
これに対し、図1(a)に示す本実施形態の同期方法では、1台の電子黒板2は自分から見て直上の電子黒板2とだけ通信して設定情報を取得すればよいので、各電子黒板2が設定情報を同期する際の負荷を抑制することができる。また、それぞれの電子黒板2は自分から見て直下の電子黒板の設定情報の更新に関する情報を有する必要がない。また、設定情報を提供する直上の電子黒板2は直下の電子黒板2からの要求に応じて設定情報を送信するという比較的、負荷が低い処理を行えばよいので、複数の電子黒板2(図では3台)を直下に持つことができる。すなわち、電子黒板2を直列に接続する(デイジーチェーン)必要がない。これにより、比較的小さい負荷で、かつ、比較的短時間に全ての電子黒板2が設定情報を同期することができる。
<プログラムのバージョンの考慮>
図2は、プログラムのバージョンが考慮された設定情報の同期を模式的に説明する図の一例である。図2では、子機1の電子黒板2(子機2c)に着目して、同期までの手順を簡単に説明する。
(1)電子黒板2は、設定情報を同期する前にプログラムのバージョンが直上の電子黒板2と同じかどうかチェックする。
(2)バージョンが異なる場合、プログラムとインストーラーのファイルを電子黒板2からダウンロードし、共通インストーラー又は自機と同じインストーラーであるか否かを電子黒板2が判定する。共通インストーラーは電子黒板2の機種に関係なく動作するインストーラーである。
(3)共通インストーラー又は自機と同じインストーラーを持っている場合、電子黒板2は親機2pからダウンロードしたプログラムをインストールする(バージョンアップする)。
(4)親機2pとプログラムのバージョンが同じ場合、又は、インストールによりプログラムのバージョンが同じになると、電子黒板2は設定情報を電子黒板2と同期させる。
したがって、本実施形態の電子黒板2は、直上の電子黒板2とプログラムのバージョンが異なっていて、さらに電子黒板2と直上の電子黒板2の機種が異なっていても、直上の電子黒板2が共通インストーラーを有する場合、プログラムをバージョンアップできる。プログラムのバージョンが異なることで仮に異なる項目を有する設定情報を直上の電子黒板2が有していても、直下の電子黒板2が設定情報を同期させることができる。
また、本実施形態の画像処理システム1によれば、各電子黒板2の機種が異なっていても、設定情報だけでなくプログラムのバージョンを同期させることができる。したがって、管理者などが親機に共通インストーラーを設定しておけば、異なる機種が含まれていても全ての電子黒板2がプログラムをバージョンアップできる。
<用語について>
プログラムとはコンピュータの運用に関する手順やコンピュータが処理する情報をいう。プログラムはソフトウェアと称されるものの1つ又はソフトウェアと同等のものとして扱われる。プログラムは、電子黒板2が実現すべき機能をコンピュータが解読できる言語で指示する情報であり、プログラムは機能指示記述情報ということができる。具体的には、アプリケーションプログラムやファームウェア、OS(Operating System)等と呼ばれる場合があるが、これらには限られない。
また、1台の電子黒板2で例えばOSとアプリケーションプログラムのように複数のプログラムが動作する場合がある。本実施形態では、複数のプログラムを区別せずに、全てのプログラムがバージョンアップされてもよいし、一部のプログラムがバージョンアップされてもよいものとする。
また、プログラムの導入とは、コンピュータ(電子黒板2)においてプログラムを使用可能な状態にする処理や作業のことをいう。導入の他、組み込む、設定する又はインストールすると表現される場合がある。本実施形態ではインストールという用語で説明する。
また、設定情報とは電子黒板2の動作に関する設定をいう。例えば、電子黒板2が適切に動作するための設定、電子黒板2の動作を許可又は制限するための設定、各機能のオン/オフの設定、ネットワークを介してインターネットや他の機器と通信するための設定、などを含む。設定情報の具体的内容は図18などで説明される。
木構造のネットワーク構造は少なくとも三階層以上であることが好ましいが、二階層でもよい。三階層以上とは、最も深い階層が三階層以上であればよく、2階層以下の枝が存在してもよい。また、1つの階層の電子黒板2の数は3つに限られず、1つの階層の電子黒板2の数は電子黒板2の数と階層の深さを考慮して適宜決定される。
以下では、説明の便宜上、子機1〜3の層を子機層C、孫機1〜3の層を孫機層Gという。また、子機1から見た親機2pのように直接的に上位の電子黒板2を直上の電子黒板2といい、親機2pからみた子機1のように直接的に下位の電子黒板2を直下の電子黒板2という。
また、例えば親機2pから見た子機1〜3及び孫機1〜3(更に下位の電子黒板を含む)を相対的に下位の電子黒板2という。また、例えば孫機1からみた子機1及び親機2pの電子黒板2を相対的に上位の電子黒板2という。
<システムの概要>
図3は、本実施形態の画像処理システム1の全体構成図である。なお、図3では、説明を簡略化するために、2台の電子黒板2a,2b及びこれに付随する電子ペン4a,4b等を示しているだけであって、3台以上の電子黒板や電子ペン等を利用してもよい。
図3に示されているように、画像処理システム1は、複数の電子黒板2a,2b、複数の電子ペン4a,4b、USBメモリ5a,5b、ノートPC(Personal Computer)6a,6b、テレビ(ビデオ)会議端末7a,7b、及びPC8を有する。また、電子黒板2a,2b、及びPC8は、通信ネットワーク9を介して通信可能に接続されている。更に、複数の電子黒板2a,2bには、それぞれディスプレイ3a,3bが設けられている。
また、電子黒板2aには、電子ペン4aによって生じたイベント(ディスプレイ3aに電子ペン4aのペン先、又は、電子ペン4aのペン尻のタッチ)による描画された画像を、ディスプレイ3aに表示させることができる。なお、電子ペン4aだけでなく、ユーザの手Ha等によって生じたイベント(拡大、縮小、ページめくり等のジェスチャ)に基づいて、ディスプレイ3a上に表示されている画像を変更させることもできる。
また、電子黒板2aには、USBメモリ5aが接続可能であり、電子黒板2aはUSBメモリ5aからPDF等の電子ファイルを読み出したり、電子黒板2aはUSBメモリ5aに電子ファイルを記録したりすることができる。また、電子黒板2aには、DisplayPort(登録商標)、DVI(Digital Visual Interface)、HDMI(登録商標。High-Definition Multimedia Interface)及びVGA(Video Graphics Array)等の規格による通信が可能なケーブル10a1を介して、ノートPC6aが接続されている。そして、電子黒板2aは、ディスプレイ3aに対する接触によってイベントを発生させ、このイベントを示すイベント情報を、マウスやキーボード等の入力装置からのイベントと同様に、ノートPC6aに送信する。同じく、電子黒板2aには、上記規格による通信が可能なケーブル10a2を介して、テレビ(ビデオ)会議端末7aが接続されている。なお、ノートPC6a、及びテレビ会議端末7aは、Bluetooth(登録商標)等の各種無線通信プロトコルに準拠した無線通信により、電子黒板2aと通信してもよい。
一方、電子黒板2bが設置されている他の拠点では、上記と同様に、ディスプレイ3bを備えた電子黒板2b、電子ペン4b、USBメモリ5b、ノートPC6b、テレビ会議端末7b、ケーブル10b1、ケーブル10b2が利用される。更に、ユーザの手Hb等によって生じたイベントに基づいて、ディスプレイ3b上に表示されている画像を変更させることもできる。
これにより、一の拠点で電子黒板2aのディスプレイ3a上に描画された画像は、他の拠点で電子黒板2bのディスプレイ3b上にも表示され、逆に他の拠点で電子黒板2bのディスプレイ3b上に描画された画像は、一の拠点で電子黒板2aのディスプレイ3a上に表示される。このように、画像処理システム1では、遠隔地において同じ画像を共有する遠隔共有処理を行うことができるため、遠隔地での会議等に用いると、非常に便利である。
なお、以下では、複数の電子黒板のうち任意の電子黒板を示す場合には「電子黒板2」と示す。複数のディスプレイのうち任意のディスプレイを示す場合には「ディスプレイ3」と示す。複数の電子ペンのうち任意の電子ペンを示す場合には「電子ペン4」と示す。複数のUSBメモリのうち任意のUSBメモリを示す場合には「USBメモリ5」と示す。複数のノートPCのうち任意のノートPCを示す場合には「ノートPC6」と示す。複数のテレビ会議端末のうち任意のテレビ会議端末を示す場合には「テレビ会議端末7」と示す。また、複数のユーザの手のうち任意の手を示す場合には「手H」と示す。複数のケーブルのうち任意のケーブルを示す場合には「ケーブル10」と示す。
また、本実施形態では、画像処理装置の一例として、電子黒板を説明するが、これに限るものではなく、画像処理装置の他の例として、電子看板(デジタルサイネージ)、スポーツや天気予報等で利用されるテレストレータ、又は、遠隔画像(映像)診断装置等であってもよい。また、情報処理端末の一例として、ノートPC6を説明するが、これに限るものではなく、情報処理端末の他の例として、デスクトップ型PCやタブレット型PC、PDA、デジタルビデオカメラ、デジタルカメラ、ゲーム機等の画像フレームを供給可能な端末であってもよい。更に、通信ネットワークには、インターネット、LAN(Local Area Network)、携帯電話通信網等が含まれる。また、本実施形態では、記録媒体の一例として、USBメモリを説明するが、これに限るものではなく、記録媒体の他の例として、SDカード等の各種記録メディアであってもよい。
<電子黒板のハードウェア構成>
続いて、図4を用いて、本実施形態の電子黒板のハードウェア構成を説明する。なお、図4は、電子黒板のハードウェア構成図である。
図4に示されているように、電子黒板2は、電子黒板2全体の動作を制御するCPU101、IPL等のCPU101の駆動に用いられるプログラムを記憶したROM102、CPU101のワークエリアとして使用されるRAM103、電子黒板2用のプログラム等の各種データを記憶するSSD104、通信ネットワーク9との通信を制御するネットワークコントローラ105、及び、USBメモリ5との通信を制御する外部記憶コントローラ106を備えている。
また、電子黒板2は、ノートPC6のディスプレイに対して映像情報を静止画又は動画として表示させるキャプチャデバイス111、グラフィクスを専門に扱うGPU(Graphics Processing Unit)112、及び、GPUからの出力画像をディスプレイ3やテレビ会議端末7へ出力するために画面表示の制御及び管理を行うディスプレイコントローラ113を備えている。
更に、電子黒板2は、接触センサ115の処理を制御するセンサコントローラ114、ディスプレイ3上に電子ペン4やユーザの手H等が接触したことを検知する接触センサ115を備えている。この接触センサ115は、赤外線遮断方式による座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、ディスプレイ3の上側両端部に設置された2つ受発光装置が、ディスプレイ3に平行して複数の赤外線を放射し、ディスプレイ3の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。接触センサ115は、物体によって遮断された2つの受発光装置が放射した赤外線のID(Identification)をセンサコントローラ114に出力し、センサコントローラ114が、物体の接触位置である座標位置を特定する。なお、以下に示す全ての各IDは、識別情報の一例である。
また、接触センサ115としては、赤外線遮断方式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2の抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネルなどの種々の検出手段を用いてもよい。
また、電子黒板2は、電子ペンコントローラ116を備えている。この電子ペンコントローラ116は、電子ペン4と通信することで、ディスプレイ3へのペン先のタッチやペン尻のタッチの有無を判定する。なお、電子ペンコントローラ116が、電子ペン4のペン先及びペン尻だけでなく、電子ペン4のユーザが握る部分や、その他の電子ペンの部分のタッチの有無を判定するようにしてもよい。
更に、電子黒板2は、CPU101、ROM102、RAM103、SSD104、ネットワークコントローラ105、外部記憶コントローラ106、キャプチャデバイス111、GPU112、センサコントローラ114、及び電子ペンコントローラ116を、図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン120を備えている。
なお、電子黒板2用のプログラムは、CD−ROM等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
<電子黒板の機能構成>
続いて、図5〜図8を用いて、電子黒板の機能構成について説明する。なお、先ずは、図5を用いて、電子黒板2の全体的な機能構成について説明する。図5は、電子黒板の機能ブロック図である。
電子黒板2は、図4に示されているハードウェア構成及びプログラムによって、図5に示されている各機能構成を有する。電子黒板2は、最初に遠隔共有処理を開始する「主催装置」となり得ると共に、既に開始されている遠隔共有処理に後から参加する「参加装置」にもなり得る。また、電子黒板2は、大きく分けて、クライアント部20及びサーバ部90の両方によって構成されている。クライアント部20及びサーバ部90は、電子黒板2の1台の筐体内で実現される機能である。そして、電子黒板2が主催装置となる場合には、この電子黒板2では、クライアント部20とサーバ部90が実現される。また、電子黒板2が参加装置となる場合には、この電子黒板2では、クライアント部20は実現されるが、サーバ部90は実現されない。即ち、図3において、電子黒板2aが主催装置で、電子黒板2bが参加装置となる場合、電子黒板2aのクライアント部20は、同じ電子黒板2a内に実現されたサーバ部90を介して、他の電子黒板2bのクライアント部20と通信を行う。一方、電子黒板2bのクライアント部20は、他の電子黒板2a内に実現されたサーバ部90を介して、他の電子黒板2aのクライアント部と通信を行う。
〔クライアント部20の機能構成〕
続いて、主に図5から図7を用いて、クライアント部20の機能構成について説明する。クライアント部20は、映像取得部21、座標検知部22、自動調整部23、接触検知部24、イベント振分部25、操作処理部26、ジェスチャ処理部27、映像重畳部28、画像処理部30、及び通信制御部60を有する。
このうち、映像取得部21は、ケーブル10に接続された映像出力機器の出力画像を取得する。映像取得部21は、映像出力機器から画像信号を受信すると、この画像信号を解析して、この画像信号によって形成される映像出力機器の表示画像である画像フレームの解像度や、この画像フレームの更新頻度などの画像情報を導出し、画像取得部31に出力する。
座標検知部22は、ディスプレイ3上でユーザによって生じたイベント(ディスプレイ3上にユーザの手Hがタッチされた動作等)の座標位置(入力位置)を検出する。また、座標検知部22は、タッチされた面積も検出する。
自動調整部23は、電子黒板2の起動時(再起動時と表現してもよい)に起動され、座標検知部22が適切な値を出力できるように、光センサ方式により座標を検知する座標検知部22がセンサーカメラの画像を処理する際のパラメータを調整する。
接触検知部24は、ユーザによって生じたイベント(ディスプレイ3上に電子ペン4のペン先又は電子ペン4のペン尻が押下(タッチ)された動作等)を検出する。
イベント振分部25は、座標検知部22によって検知されたイベントの座標位置と接触検知部24によって検出された検出結果を、ストローク描画、UI操作、及びジェスチャ操作の各イベントに振り分ける。ここで、「ストローク描画」は、ディスプレイ3上に図8に示されている後述のストローク画像(B)が表示されている場合に、ユーザがディスプレイ3上で電子ペン4を押下し、この押下した状態で電子ペン4を移動させ、最終的にディスプレイ3上から電子ペン4を離すまでのイベントである。このストローク描画により、例えば、アルファベット「S」や「T」等がディスプレイ3上に描画される。なお、この「ストローク描画」には、画像を描画するだけでなく、既に描画された画像を削除したり、描画された画像を編集したりするイベントも含まれる。
「UI操作」は、ディスプレイ3上に図8に示されている後述のUI画像(A)が表示されている場合に、ユーザが電子ペン4又は手Hによって所定の位置を押下したイベントである。このUI操作により、例えば、電子ペン4により描画される線の色や幅等が設定される。
「ジェスチャ操作」は、ディスプレイ3上に図8に示されている後述のストローク画像(B)が表示されている場合に、ユーザが手Hでディスプレイ3上をタッチしたり移動させたりするイベントである。このジェスチャ操作により、例えば、ユーザがディスプレイ3に手Hをタッチさせた状態で手Hを移動させることで、画像の拡大(若しくは縮小)、表示領域の変更、又は、ページ切り換え等を行うことができる。
操作処理部26は、イベント振分部25によってUI操作と判定されたものから、イベントが発生されたUIの要素にしたがって、各種操作を実行する。このUIの要素としては、例えば、ボタン、リスト、チェックボックス、テキストボックスが挙げられる。ジェスチャ処理部27は、イベント振分部25によってジェスチャ操作と判定されたものに対応した操作を実行する。
映像重畳部28は、後述の表示重畳部36で重畳された画像を映像として表示部29に対して表示する。表示部29はディスプレイ3により実現される表示機能を示す。また、映像重畳部28は、映像出力機器(ノートPC6等)からの映像に対して、他の映像出力機器(テレビ会議端末7等)から送られて来た映像をピクチャーインピクチャーする。更に、映像重畳部28は、ピクチャーインピクチャーされて表示部29の一部に表示された映像を、表示部29の全体に表示させるための切り替えを行う。
画像処理部30は、図8に示されているような各画像レイヤの重畳処理等を行う。この画像処理部30は、画像取得部31、ストローク処理部32、UI画像生成部33、背景生成部34、レイアウト管理部35、表示重畳部36、ページ処理部37、ファイル処理部40、ページデータ記憶部300、及び遠隔ライセンス管理テーブル310を有している。
このうち、画像取得部31は、映像取得部21で取得された映像から、各フレームを画像として取得する。画像取得部31は、この画像のデータを、ページ処理部37に出力する。この画像は、図8に示されている映像出力機器(ノートPC6等)からの出力画像(C)に相当する。
ストローク処理部32は、イベント振分部25によって割り振られたストローク描画に係るイベントに基づいて、画像を描画したり、描画された画像を削除したり、描画された画像を編集する。このストローク描画による画像は、図8に示されているストローク画像(B)に相当する。また、このストローク描画に基づいた画像の描画、削除、編集の各結果は、後述の操作データとして、操作データ記憶部840に記憶される。
UI画像生成部33は、電子黒板2に予め設定されているUI(ユーザインターフェース)画像を生成する。このUI画像は、図8に示されているUI画像(A)に相当する。
背景生成部34は、ページ処理部37がページデータ記憶部300から読み出したページデータのうちのメディアデータを、ページ処理部37から受信する。背景生成部34は、この受信したメディアデータを表示重畳部36に出力する。また、このメディアデータによる画像は、図8に示されている背景画像(D)に相当する。背景画像(D)のパターンは、無地、グリッド表示等である。
レイアウト管理部35は、表示重畳部36に対して、画像取得部31、ストローク処理部32、及びUI画像生成部33(又は背景生成部34)から出力された各画像のレイアウトを示すレイアウト情報を管理している。これにより、レイアウト管理部35は、表示重畳部36に対して、出力画像(C)及びストローク画像(B)を、UI画像(A)及び背景画像(D)中のどの位置に表示させるか又は非表示にさせるかを指示することができる。
表示重畳部36は、レイアウト管理部35から出力されたレイアウト情報に基づき、画像取得部31、ストローク処理部32、及びUI画像生成部33(背景生成部34)から出力された各画像のレイアウトを行う。
ページ処理部37は、ストローク画像(B)のデータと出力画像(C)のデータを、1つのページデータにまとめてページデータ記憶部300に記憶する。ストローク画像(B)のデータは、図8に示されているストローク配列データIDで示されるストローク配列データ(各ストロークデータ)として、ページデータの一部を成す。出力画像(C)のデータは、図8に示されているメディアデータIDで示されているメディアデータとして、ページデータの一部を成す。そして、このメディアデータは、ページデータ記憶部300から読み出されると、背景画像(D)のデータとして取り扱われる。
また、ページ処理部37は、一旦記憶されたページデータのうちのメディアデータを、背景生成部34を介して表示重畳部36に送信することで、映像重畳部28が背景画像(D)をディスプレイ3に再表示させることができる。また、ページ処理部37は、ページデータのうちのストローク配列データ(各ストロークデータ)を、ストローク処理部32に戻すことで、ストロークの再編集ができる状態にすることができる。更に、ページ処理部37は、ページデータを削除したり複製したりすることもできる。
即ち、ページ処理部37がページデータ記憶部300にページデータを記憶する時点でディスプレイ3上に表示されている出力画像(C)のデータは、一旦、ページデータ記憶部300に記憶され、その後にページデータ記憶部300から読み出される際には、背景画像(D)を示すメディアデータとして読みされる。そして、ページ処理部37は、ページデータ記憶部300から読み出したページデータのうち、ストローク画像(B)を示すストローク配列データを、ストローク処理部32に出力する。また、ページ処理部37は、ページデータ記憶部300から読み出したページデータのうち、背景画像(D)を示すメディアデータを、背景生成部34に出力する。
表示重畳部36は、 画像取得部31からの出力画像(C)、ストローク処理部32からのストローク画像(B)、UI画像生成部33からのUI画像(A)、及び、背景生成部34からの背景画像(D)を、レイアウト管理部35によって指定されたレイアウトにしたがって重畳する。これにより、図8に示されているように、各画像が重なってもユーザが見える順に、UI画像(A)、ストローク画像(B)、出力画像(C)、及び背景画像(D)の各レイアの構成となっている。
また、表示重畳部36は、図8に示されている画像(C)と画像(D)を切り替えて、画像(A)及び画像(B)に対して排他的に重畳することも可能である。例えば、当初、画像(A)、画像(B)及び画像(C)が表示されている状態で、電子黒板2と映像出力機器(ノートPC6等)との間のケーブル10が抜かれた場合には、レイアウト管理部35の指定によって、画像(C)を重畳対象から外し、画像(D)を表示させることができる。この場合に、また、表示重畳部36は、表示の拡大、表示の縮小、表示領域の移動処理も行う。
ページデータ記憶部300は、表1に示されているようなページデータを記憶する。
表1は、ページデータを概念的に示す。ページデータは、ディスプレイ3に表示される1ページ分のデータ(ストローク配列データ(各ストロークデータ)及びメディアデータ)である。なお、ページデータに含まれるパラメータの種類が多いため、ここでは、表1〜表4に分けて、ページデータの内容を説明する。
ページデータは、表1に示されているように、任意の1ページを識別するためのページデータID、このページの表示を開始した時刻を示す開始時刻、ストロークやジェスチャ等によるページの内容の書き換えが行われなくなった時刻を示す終了時刻、電子ペン4やユーザの手Hによるストロークによって生じたストローク配列データを識別するためのストローク配列データID、及びメディアデータを識別するためのメディアデータIDが関連付けて記憶されている。ストローク配列データは、後述の図8に示されているストローク画像(B)がディスプレイ3上に表示されるためのデータである。メディアデータは、後述の図8に示されている背景画像(D)がディスプレイ3上に表示されるためのデータである。
このようなページデータにより、例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合は一筆書きとなるため、ストロークデータIDが1つで一文字のアルファベット[S]が示される。ところが、ユーザが電子ペン4によってアルファベット「T」を描く場合、二筆書きとなるため、ストロークデータIDが2つで一文字のアルファベット「T」が示されることになる。
また、ストローク配列データは、表2に示されているように詳細な情報を示している。表2は、ストローク配列データを概念的に示す。表2に示されているように、1つのストローク配列データは、複数のストロークデータによって表される。そして、1つのストロークデータは、このストロークデータを識別するためのストロークデータID、1つのストロークの書き始めの時刻を示す開始時刻、1つのストロークの書き終わりの時刻を示す終了時刻、ストロークの色、ストロークの幅、及び、ストロークの通過点の配列を識別するための座標配列データIDを示している。
更に、この座標配列データは、表3に示されているように詳細な情報を示している。表3は、座標配列データを概念的に示す。表3に示されているように、座標配列データは、ディスプレイ3上の1点(X座標値、Y座標値)、この1点を通過したときのストロークの開始時刻からの差分の時刻(ms)、及び、この1点における電子ペン4の筆圧の各情報を示している。即ち、表3に示されている1点の集まりが、表2に示されている1つの座標配列データで示されている。例えば、ユーザが電子ペン4によってアルファベット「S」を描く場合、一筆書きとなるが、「S」を描き終えるまでに、複数の通過点を通過するため、座標配列データは、これら複数の通過点の情報を示している。
また、表1に示されているページデータのうちのメディアデータは、表4に示されているように詳細な情報を示している。
表4は、メディアデータを概念的に示す。表4に示されているように、メディアデータは、表1に示されているページデータにおけるメディアデータID、メディアデータのデータ種類、ページ処理部37からページデータ記憶部300にページデータが記憶された記録時刻、ページデータによってディスプレイ3上に表示される画像の位置(X座標値、Y座標値)及び画像のサイズ(幅、高さ)、並びにメディアデータの内容を示すデータが関連付けられて示されている。このうち、ページデータによってディスプレイ3上に表示される画像の位置は、ディスプレイ3の左上端の座標を(X座標値,Y座標値)=(0,0)とした場合に、ページデータによって表示される画像の左上端の位置を示している。
また、図5に戻って説明する。遠隔ライセンス管理テーブル310は、遠隔共有処理を実行するために必要なライセンスデータを管理する。この遠隔ライセンス管理テーブル310では、表5に示されているように、電子黒板2のプロダクトID、認証に用いられるライセンスID、及びライセンスの有効期限が関連付けて管理されている。
(ファイル処理部40の機能構成)
続いて、図6を用いて、図5に示されているファイル処理部40の機能構成を説明する。なお、図6は、ファイル処理部の機能ブロック図である。ファイル処理部40は、リカバリ処理部41、ファイル入力部42a、ファイル出力部42b、ファイル変換部43、ファイル送信部44、アドレス帳入力部45、バックアップ処理部46、バックアップ出力部47、設定管理部48、設定ファイル入力部49a、及び設定ファイル出力部49bを有している。更に、ファイル処理部40は、アドレス帳管理テーブル410、バックアップデータ記憶部420、設定ファイル記憶部430、及び接続先管理テーブル440を有している。
このうち、リカバリ処理部41は、電子黒板2が異常終了した後に、異常終了を検知し、未保存のページデータを復旧する。例えば、正常終了の場合は、ページデータがPDFファイルとしてファイル処理部40を介してUSB5に記録されるが、電源がダウンした等の異常終了の場合は、ページデータがページデータ記憶部300に記録されたままになっている。そのため、再び、電源オンになった際に、リカバリ処理部41は、ページデータ記憶部300からページデータを読み出すことで復旧させる。
ファイル入力部42aは、USBメモリ5から、PDFファイルを読み込み、各ページをページデータとしてページデータ記憶部300に記憶する。ファイル変換部43は、ページデータ記憶部300に記憶されているページデータを、PDF形式のファイルに変換する。
ファイル出力部42bは、ファイル変換部43によって出力されたPDFファイルをUSBメモリ5に記録する。
ファイル送信部44は、ファイル変換部43によって生成されたPDFファイルを、電子メールに添付して送信する。このファイルの送信先は、表示重畳部36によってディスプレイ3上にアドレス帳管理テーブル410の内容を表示し、ファイル送信部44がユーザによるタッチパネル等の入力装置の操作により、宛先の選択を受け付けることによって決定される。アドレス帳管理テーブル410には、表6に示されているように、宛先の名前及び宛先の電子メールのメールアドレスが関連付けて管理されている。
また、ファイル送信部44が、ユーザによるタッチパネル等の入力装置の操作により、宛先としてのメールアドレスの入力を受け付けることもできる。
アドレス帳入力部45は、USBメモリ5から電子メールアドレスの一覧ファイルを読み込み、アドレス帳管理テーブル410に管理する。
バックアップ処理部46は、ファイル出力部42bによって出力されたファイルや、ファイル送信部44によって送信されたファイルを、バックアップデータ記憶部420に記憶することでバックアップする。なお、ユーザがバックアップ設定しない場合は、バックアップの処理は行われない。バックアップデータは、表7に示されているように、PDF形式で記憶される。
バックアップ出力部47は、バックアップされたファイルをUSBメモリ5に記憶する。この記憶の際には、ユーザによるタッチパネル等の入力装置の操作により、セキュリティのためにパスコードが入力される。
設定管理部48は、電子黒板2の各種設定情報を設定ファイル記憶部430に記憶したり読み出したりして管理する。この各種設定情報としては、例えば、ネットワーク設定、日付や時刻の設定、地域や言語の設定、メールサーバの設定、アドレス帳の設定、接続先リストの設定、バックアップに関する設定が挙げられる。なお、ネットワーク設定は、例えば、電子黒板2のIPアドレスの設定、ネットマスクの設定、デフォルトゲートウェイの設定、又はDNS(Domain Name System)の設定等である。
設定ファイル出力部49bは、電子黒板2の各種設定情報を、設定ファイルとしてUSBメモリ5に記録させる。なお、設定ファイルはセキュリティによって、ユーザは中身を見ることができない。
設定ファイル入力部49aは、USBメモリ5に記憶されている設定ファイルを読み込み、各種設定情報を電子黒板の各種設定に反映させる。
アドレス帳入力部50は、USBメモリ5から遠隔共有処理の接続先IPアドレスの一覧ファイルを読み込み、接続先管理テーブル440に管理する。接続先管理テーブル440の一例を表8に示す。
接続先管理テーブル440は、電子黒板2が遠隔共有処理に参加しようとする参加装置である場合、この参加装置のユーザが主催装置としての役割を果たす電子黒板のIPアドレスを入力する手間を削減するために、予め管理しておくためのテーブルである。この接続先管理テーブル440では、参加されることが可能な主催装置としての電子黒板2が設置されている拠点の名称、及び主催装置としての電子黒板2のIPアドレスが関連付けて管理されている。
なお、接続先管理テーブル440は、無くてもよい。但し、この場合には、参加装置のユーザは、主催装置との間で遠隔要求処理の開始するために、タッチパネル等の入力装置によって、主催装置のIPアドレスを入力する必要がある。そのため、参加装置のユーザは、電話や電子メール等によって、主催装置のユーザから、主催装置のIPアドレスを知得する。
(通信制御部60の機能構成)
次に、図7を用いて、通信制御部60の機能構成について説明する。図7は、サーバ部90とクライアント部20の機能ブロック図の一例である。通信制御部60は、通信ネットワーク9を介して、他の電子黒板2と行う通信や、サーバ部90における後述の通信制御部70と行う通信を制御する。そのため、通信制御部60は、遠隔開始処理部61、遠隔参加処理部62、遠隔画像送信部63、遠隔画像受信部64、遠隔操作送信部65、遠隔操作受信部66、及び参加拠点管理テーブル610を有している。
このうち、遠隔開始処理部61は、同じ電子黒板2のサーバ部90に対して、新たに遠隔共有処理を開始する要求を行い、サーバ部90から要求の結果を受信する。この場合、遠隔開始処理部61は、遠隔ライセンス管理テーブル310を参照し、ライセンス情報(プロダクトID、ライセンスID、及び有効期限)が管理されている場合には、遠隔共有処理を開始する要求を行うことができる。但し、ライセンス情報が管理されていない場合には遠隔共有処理を開始する要求を行うことができない。
参加拠点管理テーブル610は、電子黒板が主催装置である場合、現在、遠隔共有処理に参加している参加装置としての電子黒板を管理するテーブルである。参加拠点管理テーブル610の一例を表9に示す。
この参加拠点管理テーブル610では、参加中の電子黒板2が設置されている拠点の名称及び当該電子黒板2のIPアドレスが関連付けて管理されている。
遠隔参加処理部62は、通信ネットワーク9を介して、既に遠隔共有処理を開始している主催装置としての電子黒板2のサーバ部90における遠隔接続要求受信部71に対して、遠隔共有処理への参加要求を行う。この場合も、遠隔参加処理部62は、遠隔ライセンス管理テーブル310を参照する。また、遠隔参加処理部62が、既に開始されている遠隔共有処理に参加する場合には、接続先管理テーブル440を参照して、参加先の電子黒板2のIPアドレスを取得する。なお、遠隔参加処理部62によって接続先管理テーブルが参照されず、ユーザによるタッチパネル等の入力装置の操作により参加先の電子黒板2のIPアドレスが入力されてもよい。
遠隔画像送信部63は、映像取得部21から画像取得部31を介して送られて来た出力画像(C)を、サーバ部90に送信する。
遠隔画像受信部64は、サーバ部90から、他の電子黒板2に接続された映像出力機器からの画像データを受信し、表示重畳部36に出力することで、遠隔共有処理を可能にする。
遠隔操作送信部65は、遠隔共有処理に必要な各種操作データをサーバ部90に送信する。この各種操作データとしては、例えば、ストロークの追加、ストロークの削除、ストロークの編集(拡大、縮小、移動)、ページデータの記憶、ページデータの作成、ページデータの複製、ページデータの削除、表示されているページの切り替え等に関するデータが挙げられる。また、遠隔操作受信部66は、サーバ部90から、他の電子黒板2で入力された操作データを受信し、画像処理部30に出力することで、遠隔共有処理を行う。
〔サーバ部の機能構成〕
続いて、図7を用いて、サーバ部90の機能構成について説明する。サーバ部90は、各電子黒板2に設けられており、いずれの電子黒板2であっても、サーバ部としての役割を果たすことができる。そのため、サーバ部90は、通信制御部70、及びデータ管理部80を有している。
(通信制御部70の機能構成)
次に、図7を用いて、通信制御部70の機能構成について説明する。
通信制御部70は、同じ電子黒板2内のクライアント部20における通信制御部70、及び通信ネットワーク9を介して他の電子黒板2内のクライアント部20における通信制御部70との通信を制御する。データ管理部80は、操作データや画像データ等を管理する。
更に詳細に説明すると、通信制御部70は、遠隔接続要求受信部71、遠隔接続結果送信部72、遠隔画像受信部73、遠隔画像送信部74、遠隔操作受信部75、及び遠隔操作送信部76を有している。
このうち、遠隔接続要求受信部71は、遠隔開始処理部61からの遠隔共有処理の開始要求を受信したり、遠隔参加処理部62からの遠隔共有処理に対する参加要求を受信したりする。遠隔接続結果送信部72は、遠隔開始処理部61へ遠隔共有処理の開始要求の結果を送信したり、遠隔参加処理部62へ遠隔共有処理に対する参加要求の結果を送信したりする。
遠隔画像受信部73は、遠隔画像送信部63からの画像データ(出力画像(C)のデータ)を受信し、後述の遠隔画像処理部82に送信する。遠隔画像送信部74は、遠隔画像処理部82から画像データを受信し、遠隔画像受信部64に対して、この画像データを送信する。
遠隔操作受信部75は、遠隔操作送信部65からの操作データ(ストローク画像(B)等のデータ)を受信し、後述の遠隔操作処理部83に送信する。遠隔操作送信部76は、遠隔操作処理部83から操作データを受信し、遠隔操作受信部66に対して、この操作データを送信する。
(データ管理部の機能構成)
次に、図7を用いて、データ管理部80の機能構成について説明する。データ管理部80は、遠隔接続処理部81、遠隔画像処理部82、遠隔操作処理部83、操作合成処理部84、及びページ処理部85を有している。更に、サーバ部90は、パスコード管理部810、参加拠点管理テーブル820、画像データ記憶部830、操作データ記憶部840、及びページデータ記憶部850を有している。
このうち、遠隔接続処理部81は、遠隔共有処理の開始、及び遠隔共有処理の終了を行う。また、遠隔接続処理部81は、遠隔接続要求受信部71が、遠隔開始処理部61から遠隔共有処理の開始要求と共に受信したライセンス情報、又は、遠隔参加処理部62から遠隔共有処理の参加要求と共に受信したライセンス情報に基づいて、ライセンスの有無やライセンスの期間内であるかを確認する。更に、遠隔接続処理部81は、クライアント部としての他の電子黒板2からの参加要求が予め定められた参加可能数を超えていないかを確認する。
更に、遠隔接続処理部81は、他の電子黒板2から遠隔共有処理に対する参加要求があった際に送られて来たパスコードが、パスコード管理部810で管理されているパスコードと同じであるか否かを判定し、同じである場合には、遠隔共有処理の参加を許可する。なお、このパスコードは、新たに遠隔共有処理を開始する際に、遠隔接続処理部81によって発行され、遠隔共有処理に参加しようとする参加装置としての電子黒板2のユーザが、主催装置としての電子黒板2のユーザから、電話や電子メール等により伝えられる。これにより、遠隔共有処理に参加しようとする参加装置のユーザが、タッチパネル等の入力装置によって参加装置にパスコードを入力して参加要求することで、参加が許可されることになる。なお、セキュリティよりもユーザの使い勝手を優先して、ライセンス状況の確認だけで、パスコードの確認を省略してもよい。
また、電子黒板2が主催装置の場合、遠隔接続処理部81は、参加装置の遠隔参加処理部62から通信ネットワーク9を介して送られて来た参加要求に含まれる参加拠点情報を、サーバ部90の参加拠点管理テーブル820に記憶する。そして、遠隔接続処理部81は、参加拠点管理テーブル820に記憶されている遠隔拠点情報を読み出し、遠隔接続結果送信部72に送信する。遠隔接続結果送信部72は、同じ主催装置のクライアント部20における遠隔開始処理部61に遠隔拠点情報を送信する。遠隔開始処理部61は、参加拠点管理テーブルに610に、遠隔拠点情報を記憶する。これにより、主催装置では、クライアント部20及びサーバ部90の両方で、遠隔拠点情報を管理することになる。
遠隔画像処理部82は、遠隔共有処理中の各電子黒板2のクライアント部(主催装置である自己の電子黒板のクライアント部を含む)に接続された映像出力機器(ノートPC6等)からの画像データ(出力画像(C))を受信して画像データ記憶部830に記憶すると共に、主催装置である自己の電子黒板2のサーバ部90に届いた時間順で遠隔共有処理すべき画像データの表示順を判定する。また、遠隔画像処理部82は、参加拠点管理テーブル820を参照し、遠隔共有処理に参加中の全ての電子黒板2のクライアント部20(主催装置である自己の電子黒板のクライアント部を含む)に、通信制御部70(遠隔画像送信部74)を介して、上記判定した順番で画像データを送信する。
遠隔操作処理部83は、遠隔共有処理中の各電子黒板2のクライアント部(主催装置である自己の電子黒板のクライアント部を含む)で描画されたストローク画像等の各種操作データ(ストローク画像(B)等)を受信し、主催装置である自己の電子黒板2のサーバ部90に届いた時間順で遠隔共有処理すべき画像の表示順を判定する。なお、各種操作データは、上記の各種操作データと同じである。また、遠隔操作処理部83は、参加拠点管理テーブル820を参照し、遠隔共有処理中の全ての電子黒板2のクライアント部20(主催装置である自己の電子黒板のクライアント部を含む)に操作データを送信する。
操作合成処理部84は、遠隔操作処理部83から出力された各電子黒板2の操作データを合成し、この合成結果としての操作データを、操作データ記憶部840に記憶すると共に遠隔操作処理部83に戻す。この操作データは、遠隔操作送信部76から、主催装置である電子黒板のクライアント部、及び参加装置である電子黒板のクライアント部のそれぞれに送信されることで、各電子黒板2で同じ操作データに係る画像が表示される。操作データの一例を表10に示す。
操作データは、表10に示されているように、SEQ(Sequence)、操作データの操作名、操作データの送信元である電子黒板2のIPアドレス及びクライアント部(サーバ部)のPort No.、操作データの送信先である電子黒板2のIPアドレス及びクライアント部(サーバ部)のPort No,、操作データの操作種類、操作データの操作対象、並びに操作データの内容を示すデータが関連付けられて示されている。例えば、SEQ1では、主催装置である電子黒板(IPアドレス:192.0.0.1)のクライアント部(Port No.:50001)でストロークが描画されると、同じ主催装置である電子黒板(IPアドレス:192.0.0.1)のサーバ部(Port No.:50000)に操作データが送られたことが示されている。この場合の操作種類は「STROKE」、操作対象はページデータID「p005」、及び、操作データの内容を示すデータはストロークを示すデータである。また、SEQ2では、主催装置である電子黒板(IPアドレス:192.0.0.1)のサーバ部(Port No.:50000)から、参加装置である他の電子黒板(IPアドレス:192.0.0.1)のクライアント部(Port No.:50001)に、操作データが送られたことが示されている。
なお、操作合成処理部84は、この操作合成処理部84に操作データが入力された順に合成を行うため、通信ネットワーク9が混雑していなければ、各電子黒板2のユーザによるストローク順に、遠隔共有処理中の全ての電子黒板2のディスプレイ3にストローク画像(B)が表示される。
ページ処理部85は、クライアント部20の画像処理部30におけるページ処理部37と同様の機能を有し、サーバ部90でも、表1から表3に示されているページデータを、ページデータ記憶部850に記憶する。なお、ページデータ記憶部850は、画像処理部30におけるページデータ記憶部300と同じ内容であるため、その説明を省略する。
<実施形態の処理又は動作>
続いて、図9及び図10を用いて、本実施形態の処理又は動作について説明する。なお、図9及び図10は、各電子黒板の処理を示したシーケンス図である。図9及び図10に示す実施形態では、電子黒板2aが遠隔共有処理を主催する主催装置(サーバ部及びクライアント部)としての役割を果たしており、電子黒板2b,2cが遠隔共有処理に参加する参加装置(クライアント部)としての役割を果たす場合について説明する。また、ここでは、電子黒板2a,2b,2cには、それぞれディスプレイ3a,3b,3cが接続され、更に、それぞれノートPC6a,6b,6cが接続されている。また、電子黒板2a,2b,2cでは、それぞれ電子ペン4a,4b,4cが使用される。
(参加の処理)
まずは、図9を用いて、電子黒板2b,2cが遠隔共有処理に参加するための処理について説明する。
ユーザが電子黒板2aの電源スイッチをオンにすると、電子黒板2aのクライアント部20が起動する。そして、ユーザがタッチパネル等の入力装置によってサーバ部90を起動させる操作をすると、クライアント部20の遠隔開始処理部61から同じ電子黒板2aのサーバ部90における遠隔接続要求受信部71に、サーバ部90の処理を開始させる指示を出力する。これにより、電子黒板2aでは、クライアント部20だけでなくサーバ部90も各種処理を開始可能となる(ステップS21)。
次に、電子黒板2aのクライアント部20におけるUI画像生成部33が電子黒板2aとの接続を確立するための接続情報を生成し、映像重畳部28が、UI画像生成部33から表示重畳部36を介して得た接続情報をディスプレイ3aに表示させる(ステップS22)。
この接続情報には、主催装置のIPアドレス、及び今回の遠隔共有処理のために生成されたパスコードが含まれている。この場合、パスコード管理部810に記憶されているパスコードは、図7に示されている遠隔接続処理部81によって読み出され、遠隔接続結果送信部72、遠隔開始処理部61の順に送信される。更に、パスコードは、遠隔開始処理部61を含む通信制御部60から、図5に示されている画像処理部30に送信され、最終的にUI画像生成部33に入力される。これにより、接続情報には、パスコードが含まれる。そして、接続情報は、電子黒板2aのユーザによって、電話や電子メールにより、電子黒板2b,2cのユーザに伝えられる。なお、接続先管理テーブル440があれば、接続情報には、主催装置のIPアドレスが含まれていなくても、参加装置は参加要求を行うことができる。
次に、電子黒板2b,2cでは、各ユーザによるタッチパネル等の入力装置の操作によって接続情報の入力を受け付けると、電子黒板2a,2bのクライアント部20における遠隔参加処理部62が、接続情報のIPアドレスに基づき、通信ネットワーク9を介して、電子黒板2aのサーバ部90における通信制御部70に対してパスコードを送信して参加要求を行う(ステップS23,S24)。これにより、通信制御部70の遠隔接続要求受信部71は、各電子黒板2b,2cから、参加要求(パスコードを含む)を受信し、このパスコードを遠隔接続処理部81に出力する。
次に、遠隔接続処理部81は、各電子黒板2b,2cから受信したパスコードに対し、パスコード管理部810で管理されているパスコードを用いて認証する(ステップS25)。
そして、遠隔接続結果送信部72が、各電子黒板2b,2cのクライアント部20に認証結果を通知する(ステップS26,S27)。
ステップS25の認証により、各電子黒板2b,2cが正当な電子黒板であると判定されていた場合には、主催装置である電子黒板2aと、参加装置である電子黒板2b,2cとの遠隔共有処理の通信が確立され、各電子黒板2b,2cのクライアント部20における遠隔参加処理部62が、それぞれ他の電子黒板との間の遠隔共有処理の開始を可能にする(ステップS28,S29)。
(出力画像の表示)
続いて、図9を用いて、遠隔共有処理における出力画像(C)が表示される処理について説明する。
まず、電子黒板2bは、ディスプレイ3bに出力画像(C)を表示する(ステップS30)。具体的には、電子黒板2bの画像取得部31が、ノートPC6bから映像取得部21を介して、ノートPC6bで表示されている出力画像(C)のデータを受信し、表示重畳部36及び映像重畳部28を介してディスプレイ3bに送信することで、ディスプレイ3bは出力画像(C)を表示する。
次に、電子黒板2bの画像取得部31を含む画像処理部30が、遠隔画像送信部63に出力画像(C)のデータを送信することで、遠隔画像送信部63を含む通信制御部60が通信ネットワーク9を介して、主催装置である電子黒板2aの通信制御部70に出力画像(C)のデータを送信する(ステップS31)。これにより、電子黒板2aの遠隔画像受信部73は、出力画像(C)のデータを受信し、遠隔画像処理部82に出力することで、遠隔画像処理部82が画像データ記憶部830に出力画像(C)のデータを記憶する。
次に、主催装置である電子黒板2aは、ディスプレイ3aに出力画像(C)を表示する(ステップS32)。具体的には、電子黒板2aの遠隔画像処理部82は、遠隔画像受信部73から受信した出力画像(C)のデータを、遠隔画像送信部74に出力する。遠隔画像送信部74は、同じ主催装置である電子黒板2aのクライアント部20における遠隔画像受信部64に、出力画像(C)のデータを出力する。遠隔画像受信部64は、表示重畳部36に出力画像(C)のデータを出力する。表示重畳部36は、映像重畳部28に出力画像(C)のデータを出力する。映像重畳部28はディスプレイ3aに出力画像(C)のデータを出力する。これにより、ディスプレイ3aは、出力画像(C)を表示する。
次に、主催装置としての電子黒板2aのサーバ部90における遠隔画像送信部74を含む通信制御部70は、通信ネットワーク9を介して、出力画像(C)のデータの送信元である電子黒板2b以外の電子黒板2cの通信制御部60に出力画像(C)のデータを送信する(ステップS33)。これにより、参加装置である電子黒板2cの遠隔画像受信部64は、出力画像(C)のデータを受信する。
次に、電子黒板2cは、ディスプレイ3cに出力画像(C)を表示する(ステップS34)。具体的には、電子黒板2cの遠隔画像受信部64が、上記ステップS33によって受信された出力画像(C)のデータを、電子黒板2cの表示重畳部36に出力する。表示重畳部36は、映像重畳部28に出力画像(C)のデータを出力する。映像重畳部28はディスプレイ3cに出力画像(C)のデータを出力する。これにより、ディスプレイ3cは、出力画像(C)を表示する。
なお、出力画像(C)のデータだけでなく、UI画像(A)、及びストローク画像(B)の各データが、映像重畳部28に入力されている場合には、表示重畳部36により、重畳画像(A,B,C)が生成され、映像重畳部28はディスプレイ3cに重畳画像(A,B,C)のデータを出力する。また、テレビ会議端末7から映像重畳部28に、テレビ会議用の映像(E)のデータが送られて来ている場合には、映像重畳部28は、重畳画像(A,B,C)にピクチャーインピクチャーによりテレビ会議用の映像(E)のデータを重畳して、ディスプレイ3cに出力する。
(重畳画像の表示)
続いて、図10を用いて、遠隔共有処理における重畳画像が表示される処理について説明する。
まず、電子黒板2bは、ユーザが電子ペン4bを用いて電子黒板2bにストローク画像(B)を描画する(ステップS41)。
次に、電子黒板2bの表示重畳部36は、図8に示されているように、UI画像(A)、及び出力画像(C)に対して、ストローク画像(B)を重畳し、映像重畳部28が電子黒板2bのディスプレイ3b上に、重畳された重畳画像(A,B,C)を表示させる(ステップS42)。具体的には、電子黒板2bのストローク処理部32が座標検知部22及び接触検知部24からイベント振分部25を介して、操作データとしてのストローク画像(B)のデータを受信し、表示重畳部36に送信する。これにより、表示重畳部36は、UI画像(A)、及び出力画像(C)に対して、ストローク画像(B)を重畳することができ、映像重畳部28が電子黒板2bのディスプレイ3b上に重畳画像(A,B,C)を表示させることができる。
次に、電子黒板2bのストローク処理部32を含む画像処理部30が、遠隔操作送信部65にストローク画像(B)のデータを送信することで、電子黒板2bの遠隔操作送信部65は、通信ネットワーク9を介して、主催装置である電子黒板2aの通信制御部70にストローク画像(B)のデータを送信する(ステップS43)。
これにより、電子黒板2aの遠隔操作受信部75は、ストローク画像(B)のデータを受信し、遠隔操作処理部83に出力することで、遠隔操作処理部83が操作合成処理部84にストローク画像(B)のデータを出力する。このようにして、電子黒板2bで描画されたストローク画像(B)のデータは、描画される度に、主催装置である電子黒板2aの遠隔操作処理部83に順次送信される。このストローク画像(B)のデータは、表2等に示されているストロークデータID毎に示されるデータである。よって、例えば、上記したように、ユーザが電子ペン4によってアルファベット「T」を描く場合は二筆書きとなるため、2つのストロークデータIDのそれぞれで示されるストローク画像(B)のデータが順次送信される。
次に、主催装置である電子黒板2aは、ディスプレイ3aに、電子黒板2bから送られて来たストローク画像(B)のデータが含まれた重畳画像(A,B,C)を表示する(ステップS44)。具体的には、電子黒板2aの操作合成処理部84は、遠隔操作処理部83を介して順次送られて来た複数のストローク画像(B)のデータを合成して、操作データ記憶部840に記憶すると共に遠隔操作処理部83に戻す。これにより、遠隔操作処理部83は、操作合成処理部84から受信した、合成後のストローク画像(B)のデータを、遠隔操作送信部76に出力する。遠隔操作送信部76は、同じ主催装置である電子黒板2aのクライアント部20における遠隔操作受信部66に、合成後のストローク画像(B)のデータを出力する。遠隔操作受信部66は、画像処理部30における表示重畳部36に、合成後のストローク画像(B)のデータを出力する。よって、表示重畳部36は、UI画像(A)、及び出力画像(C)に対して、合成後のストローク画像(B)を重畳する。最後に、映像重畳部28が、表示重畳部36によって重畳された重畳画像(A,B,C)をディスプレイ3a上に表示させる。
次に、主催装置としての電子黒板2aのサーバ部90における遠隔操作送信部76を含む通信制御部70は、通信ネットワーク9を介して、ストローク画像(B)のデータの送信元である電子黒板2b以外の電子黒板2cの通信制御部60に、合成後のストローク画像(B)のデータを送信する(ステップS45)。これにより、参加装置である電子黒板2cの遠隔操作受信部66は、合成後のストローク画像(B)のデータを受信する。
次に、電子黒板2cは、ディスプレイ3cに重畳画像(A,B,C)を表示する(ステップS46)。具体的には、電子黒板2cの遠隔操作受信部66が、上記ステップS45によって受信された合成後のストローク画像(B)のデータを、電子黒板2cの画像処理部30に出力する。画像処理部30の表示重畳部36は、UI画像(A)、及び出力画像(C)の各データと、合成後のストローク画像(B)のデータを重畳し、映像重畳部28に重畳画像(A,B,C)のデータを出力する。映像重畳部28は、ディスプレイ3cに重畳画像(A,B,C)のデータを出力する。これにより、ディスプレイ3cは、重畳画像(A,B,C)を表示する。
なお、上記処理では、ディスプレイ3上に出力画像(C)が表示されているが、この出力画像(C)に代えて、背景画像(D)を表示してもよい。また、出力画像(C)と背景画像(D)との排他的な関係をやめて、出力画像(C)と背景画像(D)との両方を同時にディスプレイ3上に表示させてもよい。
(参加の終了)
続いて、図10を用いて、参加装置が遠隔共有処理への参加を終了する処理について説明する。図10に示す実施形態では、電子黒板2cが参加を終了する処理が示されている。
まず、電子黒板2cでは、ユーザによるタッチパネル等の入力装置の操作によって参加の終了要求を受け付けると、遠隔参加処理部62は、主催装置としての電子黒板2aのサーバ部90における通信制御部70に、参加の終了要求を行う(ステップS47)。これにより、通信制御部70の遠隔接続要求受信部71は、電子黒板2cから、参加の終了要求を受信し、遠隔接続処理部81に、電子黒板2cのIPアドレスと共に参加の終了要求を出力する。そして、電子黒板2aの遠隔接続処理部81は、遠隔接続要求受信部71から送られて来たIPアドレスに基づいて、参加拠点管理テーブル820から、参加の終了要求を行った電子黒板2cのIPアドレス及び電子黒板2cが設置されている拠点の名称を削除し、遠隔接続結果送信部72に、電子黒板2cのIPアドレス及び削除した旨の通知を出力する。
次に、遠隔接続結果送信部72を含んだ通信制御部70が、通信ネットワーク9を介して、電子黒板2cのクライアント部20における通信制御部60に、参加の終了を指示する(ステップS48)。これにより、電子黒板2cにおける通信制御部60の遠隔参加処理部62が、遠隔共有処理の通信を切断することで、参加の終了処理を行うことで、参加が終了する(ステップS49)。
<インストーラーを用いたプログラムのインストール>
図2にて説明したように、木構造のネットワーク構造において直下の電子黒板2が直上の電子黒板2からプログラムのバージョンが自機と同じかどうかを判定し、同じでなければプログラムファイルを取得して、プログラムのバージョンアップ処理を行う。インストーラーの実体はプログラムであり、プログラムを電子黒板2に導入する導入プログラムと称することができる。
まず、図11を用いてインストーラーについて説明する。図11(a)〜(c)はプログラムファイルの構成を模式的に示す。プログラムファイル5005は、インストーラー5011とプログラム5012を有するファイルである。プログラムファイルの符号5005は直下の電子黒板2が有する場合に符号2005となるが、説明の便宜上、符号5005とする。プログラムファイル5005は例えば圧縮ファイルであり、電子黒板2が解凍することでインストーラー5011とプログラム5012に分離される。なお、このプログラム5012が実際には複数の部品(モジュール等と呼ばれる)により構成されていてもよい。
インストーラー5011は、電子黒板2の決まったフォルダー(ディレクトリと呼ばれる場合がある)にある古いバージョンのプログラムを削除して、このフォルダーにプログラムファイル5005のプログラム5012を複写する。また、レジストリから古いバージョンのプログラムの情報を削除して、新しいプログラム5012の情報を設定する。レジストリには、どのフォルダーにどのプログラムのファイルが保存されており、どのファイルと関連づけが行われたかなどが登録されている。
インストーラー5011は機種ごとに異なる。図11では、機種A用、機種B用、及び、機種C用のインストーラー5011が図示されている。本実施形態において電子黒板2の機種とは、同じインストーラー5011が動作するかどうかに基づいて判定される。ある電子黒板2で動作したインストーラー5011が別の電子黒板2で正常に動作しない場合、ある電子黒板2と別の電子黒板2は異なる機種である。また、インストーラー5011が正常に動作しない要因の1つにOSの種類が異なることやOSのバージョンが異なることが挙げられる。OSの種類(例えば、Windows(登録商標)とLinux(登録商標))が異なれば動作できるインストーラー5011も異なる。また、OSのバージョンが異なる場合、例えばレジストリなどの設定が異なる場合があり動作できるインストーラー5011も異なる場合がある。
したがって、メーカの開発者などは電子黒板2のOSの種類やバージョンを考慮して機種が異なると判定し、機種ごとにインストーラー5011を開発する。
なお、OSの種類やバージョンが異なることが、電子黒板2の型番、外観(例えばディスプレイサイズ)、又は、開発世代が異なることと同じ意味となる場合があり、この場合、機種は型番、外観、又は、開発世代によって定まると表現できる。
次に、図11(d)(e)に基づき、共通インストーラー5013について説明する。共通インストーラー5013も同様にプログラムであり、導入プログラムと称することができるが、機種に共通であるため共通導入プログラムと称する。
図1(a)のネットワーク構造の電子黒板2の中に異なる機種の電子黒板2が混在している場合、相対的に下位の電子黒板2がプログラムをバージョンアップできないおそれがある。一方、同一の機種のみでネットワーク構造の電子黒板2が構成されるように管理者等が機種を選別することは現実的でない場合がある。
そこで、本実施形態では共通インストーラー5013が用いられる。図11(d)は共通インストーラー5013を有するプログラムファイル5005を示し、図11(e)は共通インストーラー5013の構造を模式的に示す。図示するように、共通インストーラー5013は、機種別のインストーラー(機種A用、機種B用、機種C用)5011を有する。すなわち、ネットワーク構造の電子黒板2に含まれる全て又は少なくとも複数の機種に対応したインストーラー5011を有している。なお、機種が3つなのは一例であって、2つでもよいし4つ以上でもよい。
直下の電子黒板2は、共通インストーラー5013が実行される電子黒板2の機種を判定し、判定した機種に適合するインストーラー5011を電子黒板2に実行させる。例えば、機種Aの場合はインストーラー(機種A用)5011を実行させ、機種Bの場合はインストーラー(機種B用)5011を実行させ、機種Cの場合はインストーラー(機種C用)5011を実行させる。なお、親機2pが共通インストーラー5013を有していない場合はこの限りでない。
共通インストーラー5013がネットワーク構造の電子黒板2に含まれる全ての機種に対応していれば、共通インストーラー5013が親機にインストールされることでネットワーク構造の全ての電子黒板2のプログラムがバージョンアップされる。これにより、直上の電子黒板2とプログラムのバージョンと直下の電子黒板2のプログラムのバージョンが一致するので、直下の電子黒板2は直上の電子黒板2から設定情報を取得できる。したがって、ネットワーク構造の全ての電子黒板2が設定情報を同期させることができる。
図12は、プログラムファイル5005のファイル名とプログラムファイル5005が有するインストーラー5011の関係を示す図の一例である。図12にはインストーラー5011とファイル名が対応付けられている。例えば、共通インストーラー5013を含むプログラムファイル5005のファイル名は####_#_1.zip、機種A用のインストーラー5011を含むプログラムファイル5005のファイル名は####_#_2.zip、機種B用のインストーラー5011を含むプログラムファイル5005のファイル名は####_#_3.zip、機種C用のインストーラー5011を含むプログラムファイル5005のファイル名は####_#_4.zipである。このようにファイル名を参照することでプログラムファイル5005が有するインストーラー5011が判定可能になっている。なお、ファイル名のどこにインストーラー5011の種類が反映されるかは一例であり、例えば拡張子に反映されていてもよい。また、メタデータのようにプログラムファイル5005に添付された又は含まれる別のファイルにインストーラー5011又は共通インストーラー5013が対応する機種に関する情報が含まれていてもよい。
図13は、画像処理システム1のネットワーク構造を説明する図の一例である。各電子黒板2は通信ネットワーク9を介して接続されている。図13のネットワーク構造は、プログラムのバージョンアップ処理及び設定情報の同期に関する多段の階層構造を説明するための図であり、1つの電子黒板2は直上の電子黒板2以外の電子黒板2と画像データ等を通信することが可能である。しかしながら、本実施形態のプログラムのバージョンアップ処理及び設定情報の同期処理は、図13に示すように木構造のネットワーク構造において実行される。
なお、直上と直下の電子黒板2は通信ネットワーク9でなくUSBケーブルなどで接続されていてもよい。また、有線で接続されていても無線で接続されていてもよい。
図13に示す設定管理者PC500は、電子黒板2に設定情報を設定したり管理する設定管理者が操作するPCである。設定管理者は電子黒板2が設置されている企業などの担当者であるが、電子黒板2のサービスエンジニアが設定管理者でもよい。
設定管理者は設定管理者PC500を操作して、新しいバージョンのプログラムが含まれるプログラムファイル及び後述する設定情報を親機2pに設定する。このプログラムファイルには好ましくは共通インストーラー5013が含まれるが、少なくとも親機2pの機種に適合するインストーラーが含まれる。親機2pにだけ新しいバージョンのプログラム及び設定情報が設定されると、親機2pと子機層C及び孫機層Gの全ての電子黒板2が同期してプログラムのバージョンが同じになり、同じ設定情報が子機層C及び孫機層Gの全ての電子黒板2に設定される。なお、プログラムのバージョンアップの他、バージョンダウンしてもよいが、以下では新しいバージョンのプログラムが設定されるとして説明する。
設定管理者PC500ではブラウザソフトウェアが動作し、ブラウザソフトウェアが親機2pと通信してHTMLやJavaScript(登録商標)で記述された画面情報を取得する。設定管理者PC500は後述する設定情報設定画面をディスプレイに表示する。これにより、設定管理者は設定情報を設定しまた入力することができる。
また、プログラムを配信するサーバに電子黒板2がアクセスして、親機2pの電子黒板2が新しいバージョンのプログラムを取得してもよい。設定情報についても同様に、設定管理者がサーバに設定情報を設定し、親機2pの電子黒板2がサーバから設定情報を取得してもよい。
また、設定管理者は設定管理者PC500を操作して後述する通信情報を子機層C及び孫機層Gの電子黒板2に設定する。通信情報は、直下の電子黒板2が直上の電子黒板2と通信するための情報である。このため、設定管理者PC500は後述する通信情報設定画面をディスプレイに表示する。これにより、設定管理者は直下の電子黒板2が直上の電子黒板2と通信するための通信情報を設定しまた入力することができる。
図14は、親機2p、子機2c、及び孫機2gで動作する機能の概略を説明する図の一例である。親機2pではプログラム提供部170が動作し、子機1ではプログラム管理部160とプログラム提供部170が動作する。子機層Cの電子黒板2が親機2pから新しいバージョンのプログラムを取得する場合、子機層Cの電子黒板2でプログラム管理部160が動作する。孫機層Gの電子黒板2から新しいバージョンのプログラムを要求された場合、子機層Cの電子黒板2でプログラム提供部170が動作する。孫機層Gと図示されていないが曾孫機層との関係においても同様である。
プログラム提供部170は、直下の電子黒板2からの要求に応じて新しいバージョンのプログラムが含まれるプログラムファイルを直下の電子黒板2に提供する。プログラム管理部160は、直上の電子黒板2とプログラムのバージョンが同じかどうかを判定し、異なっている場合に、プログラムファイルに含まれるインストーラー5011が共通インストーラー5013又は自機の機種用のインストーラー5011か否かを判定する。インストーラー5011が共通インストーラー5013又は自機の機種用のインストーラー5011である場合、共通インストーラー5013又はインストーラー5011を実行させ、プログラムをバージョンアップする。
また、親機2pでは設定提供部150が動作し、子機1では設定提供部150と設定取得部180が動作する。子機層Cの電子黒板2が親機2pから設定情報を取得する場合、子機層Cの電子黒板2で設定取得部180が動作する。孫機層Gの電子黒板2から設定情報を要求された場合は子機層Cの電子黒板2で設定提供部150が動作する。孫機層Gと図示されていないが曾孫機層との関係においても同様である。
<設定管理者PCのハードウェア構成>
図15は、設定管理者PC500のハードウェア構成図の一例である。設定管理者PC500は、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203及び補助記憶装置204を備える。更に、設定管理者PC500は、入力部205、ディスプレイI/F206及び通信I/F207を備える。なお、設定管理者PC500の各部は、バス208を介して相互に接続されている。したがって、設定管理者PC500は情報処理装置としての機能を有する。
CPU201は、補助記憶装置204に格納された各種プログラム、OS(Operating System))を実行する。ROM202は不揮発性メモリである。ROM202は、補助記憶装置204に格納された各種プログラムを、CPU201が実行するために必要なプログラム、データ等を格納する。
RAM203は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の主記憶装置である。CPU201によって実行される際に補助記憶装置204に格納された各種プログラムがRAM203に展開され、RAM203はCPU201の作業領域となる。
補助記憶装置204は、CPU201により実行される各種プログラム及び各種プログラムがCPU201により実行される際に利用される各種データベースを記憶する。補助記憶装置204は例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性メモリである。なお、各種データベースについては後述する。
入力部205は、オペレータが設定管理者PC500に各種指示を入力するためのインタフェースである。例えば、キーボード、マウス、タッチパネル、音声入力装置などである。更に、USB I/Fなど記録媒体等の装着部を有していてもよい。
ディスプレイI/F206は、CPU201からの要求により、設定管理者PC500が有する各種情報をカーソル、メニュー、ウィンドウ、文字、又は画像などの形態でディスプレイ210に表示する。ディスプレイI/F206は、例えばグラフィックチップやディスプレイI/Fである。
通信I/F207は、ネットワークNを介して、電子黒板2と通信を行うネットワークI/Fである。
<プログラム管理部の機能について>
図16は、プログラム提供部170とプログラム管理部160の詳細な機能ブロック図の一例である。なお、直上の電子黒板2のプログラム管理部160と直下の電子黒板2のプログラム提供部170は説明の便宜上省略されている。
<<プログラム提供部>>
プログラム提供部170は、通信部171、プログラム情報提供部172及び記憶読出部179を有している。これら各機能部は、図4に示されるSSD104に格納されているプログラム(すなわち、すでにインストールされているプログラム)をCPU101が実行して図4に示される各構成要素のいずれかを制御することで実現される機能又は手段である。
また、プログラム提供部170は、図4に示されるSSD104、ROM102又はRAM103のいずれか1つ以上により構築される記憶部2000にアクセス可能である。記憶部2000には、インストール済みバージョン2004、プログラムファイル2005、及び機種情報2006が記憶されている。インストール済みバージョン2004は、電子黒板2に現在インストールされているプログラムのバージョンである。機種情報2006は直上の電子黒板2の機種に関する情報である。機種情報2006は機種を判定可能な情報であればよい。機種がOSの種類に依存する場合はOSの種類、機種がOSのバージョンに依存する場合はOSのバージョン、機種が外観に依存する場合は外観に関する情報、機種が型番に依存する場合は型番、機種が開発世代に依存する場合は開発世代等が機種情報2006である。プログラムファイル2005は上記のようにプログラムとインストーラー5011又は共通インストーラー5013が格納されたファイルである。一般には、複数の部品(例えばモジュールと呼ばれる場合がある)が1つのフォルダーに又は階層的に格納されている。プログラムファイル2005は圧縮されていてもよいし、実行形式でもよい。プログラムファイル2005の複数の部品の1つにはテキストデータなどでバージョンが記述されており、電子黒板2はプログラムファイル2005が有するバージョンを読み出すことができる。
記憶部2000のプログラムファイル2005は、設定管理者が記憶させる場合、プログラムを配信するサーバからダウンロードされた場合、直上の電子黒板2に対し更に直上の電子黒板2から送信される場合がある。
プログラムファイル2005が有するプログラムのバージョンと、インストール済みバージョン2004は同じ場合と異なっている場合がある。プログラムファイル2005を用いてプログラムが電子黒板2にインストールされた場合、プログラムファイル2005が有するプログラムのバージョンと、インストール済みバージョン2004は同じである。設定管理者やプログラムを配信するサーバ等がプログラムファイル2005を記憶部2000に記憶させた直後から電子黒板2がこのプログラムファイル2005を用いてプログラムをインストールするまでは、プログラムファイル2005が有するプログラムのバージョンと、インストール済みバージョン2004は異なっている。
(プログラム提供部170の機能について)
通信部171は、図4に示したCPU101やネットワークコントローラ105等により実現され、直下の電子黒板2と各種情報の送受信を行う。なお、以降の説明では、プログラム情報提供部172が通信部171により直下の電子黒板2と通信する場合でも、「通信部171を介して」という記載を省略する場合がある。
プログラム情報提供部172は、直下の電子黒板2からインストールされているプログラムのバージョンの問い合わせを受けると、記憶読出部179を介してインストール済みバージョン2004を記憶部2000から読み出して直下の電子黒板2に送信する。また、プログラム情報提供部172は、直下の電子黒板2からプログラムファイル2005を要求されると、記憶読出部179を介してプログラムファイル2005を記憶部2000から読み出して直下の電子黒板2に送信する。
記憶読出部179は記憶部2000に記憶されている各種の情報を読み出したり記憶させたりする。なお、以下の説明では、記憶読出部179が記憶部2000から各種の情報を読み出したり記憶させたり場合でも、説明の便宜上、「記憶読出部179を介して」という説明を省略する場合がある。
<<プログラム管理部160>>
プログラム管理部160は、通信部161、バージョン確認部162、プログラムインストール部163、直上バージョン判定部164、プログラム取得部165、機種判定部166及び、記憶読出部169を有している。これら各機能部は、図4に示されるSSD104に格納されているプログラムをCPU101が実行して図4に示される各構成要素のいずれかを制御することで実現される機能又は手段である。
また、プログラム管理部160は、図4に示されるSSD104、ROM102又はRAM103のいずれか1つ以上により構築される記憶部5000にアクセス可能である。記憶部5000には、インストール済みバージョン5004、プログラムファイル5005、機種情報5006が記憶され、更に通信情報記憶部5002が構築されている。インストール済みバージョン5004、プログラムファイル5005及び機種情報5006については直上の電子黒板2と同じものである。記憶部5000のプログラムファイル5005は、直上の電子黒板2から送信されたものである。通信情報記憶部5002が記憶している情報については後述する。
(プログラム管理部160の機能について)
通信部161は、図4に示したCPU101やネットワークコントローラ105等により実現され、直上の電子黒板2と各種情報の送受信を行う。なお、以降の説明では、直下の電子黒板2が通信部161により直上の電子黒板2と通信する場合でも、「通信部161を介して」という記載を省略する場合がある。
直上バージョン判定部164は、直上の電子黒板2にインストールされているプログラムのバージョン(インストール済みバージョン2004)を直上の電子黒板2から取得して、自機である直下の電子黒板2にインストールされているプログラムのバージョン(インストール済みバージョン5004)と同じかどうかを判定する。この判定により、直上の電子黒板2と設定情報を同機してよいか否かを判定できる。同じであると判定すると、直上バージョン判定部164は後述する設定要求部183に設定情報の同期を許可する。
プログラム取得部165は、直上の電子黒板2とプログラムのバージョンが異なっていると判定されると、直上の電子黒板2からプログラムファイル2005を取得して、記憶部5000にプログラムファイル5005として記憶させる。すでにプログラムファイル5005が記憶部5000に記憶されている場合は上書きする。
バージョン確認部162は、記憶部5000に記憶されているプログラムファイル5005が有するプログラムのバージョンと、インストール済みバージョン5004を比較して、異なっている場合にインストールの必要があると判定する。プログラムファイル5005が有するプログラムのバージョンの方が、インストール済みバージョン5004より新しい場合にだけインストールの必要があると判定してもよい。
機種判定部166は、記憶部5000の機種情報5006を読み出して、プログラムファイルのインストーラー5011を実行可能か否か判定する。プログラムファイルには図12にて説明したようにプログラムファイルが有するインストーラー5011又は共通インストーラー5013を判定可能な情報が含まれているため、プログラムファイルと機種情報5006を比較することでインストーラー5011又は共通インストーラー5013を実行可能かどうか判定できる。
プログラムインストール部163は、機種判定部166がインストーラー5011を実行可能であると判定すると、プログラムファイル5005のインストーラー5011又は共通インストーラー5013を自機である電子黒板2で動作させる。
記憶読出部169は記憶部5000に記憶されている各種の情報を読み出したり記憶させたりする。なお、以下の説明では、記憶読出部169が記憶部5000から各種の情報を読み出したり記憶させたり場合でも、説明の便宜上、「記憶読出部169を介して」という説明を省略する場合がある。
<<設定提供部の機能について>>
図17は、設定取得部180と設定提供部150の詳細な機能ブロック図の一例である。直下の電子黒板2も設定提供部150を有するが説明の便宜上省略されており、直上の電子黒板2も設定取得部180を有するが説明の便宜上省略されている。
設定提供部150は、通信部151、設定受付部152、MD作成部153、情報提供部154、及び、記憶読出部155を有している。これら各機能部は、図4に示されるSSD104に格納されているプログラムをCPU101が実行して図4に示される各構成要素のいずれかを制御することで実現される機能又は手段である。
また、設定提供部150は、図4に示されるSSD104、ROM102又はRAM103のいずれか1つ以上により構築される記憶部2000にアクセス可能である。記憶部2000には、設定情報記憶部2001、認証情報記憶部2002、及びMD記憶部2003が記憶されている。まず、記憶部2000に記憶されている情報について説明する。なお、図17の記憶部2000は図16の記憶部2000と同じものであるが、異なっていてもよい。
表11は認証情報記憶部2002に記憶されている認証情報の一例を示す。表11では認証情報としてパスコードが登録されている。直上の電子黒板2は、直下の電子黒板2が送信したパスコードが認証情報記憶部2002に記憶されているパスコードと一致するか否かに応じて直下の電子黒板2を認証する。なお、認証方法としてパスコードを用いるのでなく電子証明書を使用して認証してもよい。
表12は設定情報記憶部2001に記憶されている設定情報の一例を示す。表12では設定情報種類、設定情報設定日時、及び、ファイル名が登録されている。本体動作用の設定情報は現在、有効な設定情報を示す。設定情報設定日時は設定情報が電子黒板2に設定された日時を示す。ファイル名は設定情報が格納されたファイルのファイル名である。
表13はMD記憶部2003に記憶されているハッシュ値(メッセージダイジェスト:Message Digest)の一例を示す。MD記憶部2003には本体動作用の設定情報のメッセージダイジェストが記憶される。メッセージダイジェストとしてはハッシュ値が一般的であるが、設定情報がわずかでも変わると変わる性質を有する情報であってもよい。電子黒板2は設定情報が設定されると、設定情報からハッシュ値を生成しMD記憶部2003に記憶させる。ハッシュ値は、設定情報の同期が必要かどうかを直下の電子黒板2が判定するために使用される。
(設定提供部150の機能について)
通信部151は、図4に示したCPU101やネットワークコントローラ105等により実現され、直下の電子黒板2及び設定管理者PC500と各種情報の送受信を行う。例えば、設定管理者PC500に設定情報設定画面の画面情報を送信し、直下の電子黒板2に設定情報を送信する。なお、通信プロトコルには、HTTP、HTTP/2、又は、SPDY等が用いられるが、通信プロトコルはどのようなものでもよい。また、以降の説明では、設定提供部150が通信部151により設定取得部180と通信する場合でも、「通信部151を介して」という記載を省略する場合がある。
設定受付部152は、図4に示したCPU101等により実現され、Webサーバ及びWebアプリとして機能し、設定管理者PC500に送信する設定情報設定画面の画面情報をHTMLやJavaScript(登録商標)などで作成する。
MD作成部153は、図4に示したCPU101等により実現され、設定情報からメッセージダイジェストを作成し記憶読出部155を介してMD記憶部2003に記憶させる。
情報提供部154は、図4に示したCPU101等により実現され、直下の電子黒板2からの要求に応じて設定情報を直下の電子黒板2に提供する。
記憶読出部155は、図4に示したCPU101、SSD104、RAM103等により実現され、記憶部2000に各種情報を記憶させたり、記憶部2000から各種情報を読み出したりする処理を行う。なお、以降の説明では、記憶部2000に記憶されている情報を設定提供部150が読み書きする場合でも、「記憶読出部155を介して」という記載を省略する場合がある。
<<設定取得部180の機能について>>
設定取得部180は、通信部181、設定受付部182、設定要求部183、MD比較部184、記憶読出部185、情報取得部186、MD作成部187、及び、エラーコード表示部188を有している。これら各機能部は、図4に示されるSSD104に格納されているプログラムをCPU101が実行して図4に示される各構成要素のいずれかを制御することで実現される機能又は手段である。
また、設定取得部180は、図4に示されるSSD104、ROM102又はRAM103のいずれか1つ以上により構築される記憶部5000にアクセス可能である。記憶部5000には、設定情報記憶部5001、通信情報記憶部5002及びMD記憶部5003が記憶されている。設定情報記憶部5001に記憶される設定情報、MD記憶部5003に記憶されるメッセージダイジェスト(ハッシュ値)は直上の電子黒板2と同じである。なお、図17の記憶部5000は図16の記憶部5000と同じものであるが、異なっていてもよい。
表14は通信情報記憶部5002に記憶されている通信情報の一例を示す図である。通信情報は、直下の電子黒板2が直上の電子黒板2と通信するための情報である。本実施形態ではIPアドレスとパスコードが通信情報として記憶されている。これらは、後述するように設定管理者が設定管理者PC500を操作して、各電子黒板2(親となる電子黒板2を除く)に設定する。設定管理者は図13のような多段階(三階層以上)の木構造のネットワーク構造を想定して、各電子黒板2から見て直上の電子黒板2のIPアドレスとパスコードを設定する。なお、図示する通信情報は一例に過ぎず、ポート番号等が含まれてもよい。
(設定取得部180の機能について)
通信部181は、図4に示したCPU101やネットワークコントローラ105等により実現され、直上の電子黒板2及び設定管理者PC500と各種情報の送受信を行う。例えば、設定管理者PC500に通信情報設定画面の画面情報を送信し、直上の電子黒板2から設定情報を受信する。なお、通信プロトコルには、HTTP、HTTP/2、又は、SPDY等が用いられるが、通信プロトコルはどのようなものでもよい。また、以降の説明では、設定取得部180が通信部181により設定提供部150と通信する場合でも、「通信部181を介して」という記載を省略する場合がある。
設定受付部182は、図4に示したCPU101等により実現され、Webサーバ及びWebアプリとして機能し、設定管理者PC500に送信する通信情報設定画面の画面情報をHTMLやJavaScript(登録商標)などで作成する。
設定要求部183は、図4に示したCPU101等により実現され、直上バージョン判定部164が直上の電子黒板2とインストールされているプログラムのバージョンが同じであると判定すると、直上の電子黒板2と設定情報を同期する処理を開始する。同期を開始するタイミングは、表15の同期情報に設定されている。また、設定要求部183は通信を始めると設定要求部183は直上の電子黒板2からハッシュ値を取得する。
MD比較部184は、図4に示したCPU101等により実現され、記憶部5000のMD記憶部5003に記憶されているハッシュ値と、直上の電子黒板2から取得したハッシュ値を比較する。
情報取得部186は、図4に示したCPU101等により実現され、MD比較部184による比較の結果、ハッシュ値が異なる場合、直上の電子黒板2から設定情報を取得する。記憶読出部185を介して取得した設定情報を記憶部5000の設定情報記憶部5001に記憶させる。
MD作成部187は、図4に示したCPU101等により実現され、記憶部5000の設定情報記憶部5001に本体動作用の設定情報が記憶されると、設定情報からメッセージダイジェストを作成し記憶読出部185を介してMD記憶部5003に記憶させる。
エラーコード表示部188は、図4に示したCPU101等により実現され、設定情報の同期処理に関するエラーコード等をディスプレイ3又は設定管理者PC500に表示させる。
記憶読出部185は、図4に示したCPU101、SSD104、RAM103等により実現され、記憶部5000に各種情報を記憶させたり、記憶部5000から各種情報を読み出したりする処理を行う。なお、以降の説明では、記憶部5000に記憶されている情報を設定取得部180が読み書きする場合でも、「記憶読出部185を介して」という記載を省略する場合がある。
<<設定管理者PCの機能について>>
設定管理者PC500は、通信部221、操作受付部222、表示制御部223、及び、記憶読出部229を有している。これら各機能部は、補助記憶装置204に格納されているブラウザソフトウェア7001をCPU201が実行して図15に示される各構成要素のいずれかを制御することで実現される機能又は手段である。
また、設定管理者PC500は、図15に示される補助記憶装置204、ROM202又はRAM203のいずれか1つ以上により構築される記憶部7000にアクセス可能である。記憶部7000には、ブラウザソフトウェア7001が記憶されている。ブラウザソフトウェア7001と同様の通信機能を備えたアプリケーションが記憶されていてもよい。
(設定管理者PCの機能について)
通信部221は、図15に示したCPU201や通信I/F207等により実現され、電子黒板2と各種情報の送受信を行う。例えば、設定管理者が入力した設定情報や通信情報を電子黒板2に送信する。
操作受付部222は、図15に示したCPU201や入力部205等により実現され、設定管理者の各種の操作を受け付ける。具体的には、設定情報や通信情報などの入力を受け付ける。
表示制御部223、図15に示したCPU201やディスプレイI/F206等により実現され、ディスプレイ210に、設定情報設定画面や通信情報設定画面を表示させる。具体的には、電子黒板2から送信されるHTMLやJavaScript(登録商標)などの画面情報を解釈し、これらの画面を表示する。
記憶読出部229は、図15に示したCPU201、ROM202、RAM203等により実現され、記憶部7000に各種情報を記憶させたり、記憶部7000から各種情報を読み出したりする処理を行う。
<設定情報設定画面>
図18(a)は、設定管理者PC500のディスプレイ210に表示される設定情報設定画面501の一例を示す図である。設定情報設定画面501にはシステム設定ボタン502、セキュリティ設定ボタン503、ネットワーク設定ボタン504、及び、日付と日時設定ボタン505が表示される。「1〜4」の数字は項目番号である。設定管理者はそれぞれのボタンを押下して詳細な設定を行う。以下、各ボタンで設定される設定情報について説明する。
・システム設定…拠点名、自動シャットアウト時間、自動再起動時刻、自動スタンバイ時間、同期に関する情報等が設定される。
・セキュリティ設定…ユーザが入力可能又は制限されるメールアドレスのドメイン(両方が設定されると入力可能ドメインが有効になる)、メールアドレスの直接入力の禁止、パスコードの最小桁数、パスコードの生成タイミング、パスコードの表示制限等が設定される。補足すると「パスコードの生成タイミング」とは電子黒板2がパスコードを自動で生成する場合に、生成するタイミング(起動時)や生成する時刻などをいう。したがって、電子黒板2はパスコードを自動で生成できる他、設定管理者が任意に設定できる。
・ネットワーク設定…IPアドレス、サブネットマスク、デフォルトゲートウェイ、DNSに関する設定等が設定される。
・日付と日時設定…タイムゾーン、時刻サーバとの同期の有無などが設定される。
同期のタイミングが電子黒板2の再起動時である場合、システム設定の自動再起動時刻により設定管理者は同期のタイミングを設定できる。この他、同期のタイミングとして任意の時刻を設定してよい。同期のタイミングは設定情報に含まれ各電子黒板2の間で共有されるので、直下の電子黒板2は共通のタイミングで直上の電子黒板2から設定情報を取得できる。
なお、図18(a)は設定情報の一例を示したに過ぎず、設定管理者は他にも数多くの項目を設定可能である。原則的に、設定情報設定画面501で設定可能な情報は設定情報に含まれるが、同期が好ましくない情報は例外的に同期の対象から除かれる。例えば、ネットワーク設定は、IPアドレスやサブネットマスクを含むが、IPアドレスを同期させると全ての電子黒板2が同じIPアドレスを保持してしまうため同期対象から除かれる。サブネットマスクも全ての電子黒板2で同じとは限らないので同期の対象から除かれる。
設定管理者PC500は設定内容を受け付け、設定情報設定画面501を表示させている電子黒板2に送信する。これにより、設定提供部150は設定情報記憶部2001に設定情報を登録する。
なお、直上の電子黒板2の設定受付部152が図18(a)のような設定情報設定画面501を電子黒板2のディスプレイ3に表示し、設定管理者からの設定を受け付けることも可能である。
<<システム設定画面>>
図18(b)は、設定管理者PC500のディスプレイに表示されるシステム設定画面601の一例を示す図である。システム設定画面601はシステム設定ボタン502が押下かされると表示される。システム設定画面601には、チェックボックス602と共に「機器設定を同期する」というメッセージが表示される。設定管理者は直下の電子黒板2に直上の電子黒板2と設定情報を同期させる場合、チェックボックス602をONにする。
なお、親機2p(直上の電子黒板2)のチェックボックス602もONである。これは、親機2pが設定情報を提供しないことを可能とするためである。
チェックボックス602がONになると、同期項目6021と同期タイミング6022を設定管理者が設定可能になる。同期項目6021には、図18(a)の項目番号が個別に選択可能な状態で表示される。同期タイミング6022には、再起動時、電源オフ時、又は、時刻が選択可能な状態で表示される。
チェックボックス602の設定は後述する表15の「同期」に反映される。同期項目6021の設定は同じく「同期項目」に反映される。同期タイミング6022の設定は同じく「同期タイミング」に反映される。
また、システム設定画面601には、チェックボックス607と共に「自動バージョンアップする」というメッセージが表示される。設定管理者は電子黒板2が直上の電子黒板2からプログラムファイルを取得してプログラムをバージョンアップさせる場合にチェックボックス607をONに設定する。上記のように設定情報を同期させるためにプログラムをバージョンアップさせる必要が生じる場合があるが、ユーザがプログラムをバージョンアップさせたくない場合もありうる。この場合は、設定管理者はチェックボックス607をOFFに設定することができる。
チェックボックス607がONになると、バージョンアップ許可表示のチェックボックス608を設定管理者が設定可能になる。設定管理者がチェックボックス607をONに設定した場合でも、チェックボックス608がONであることで、プログラムのバージョンアップの前に電子黒板2は後述するダイアログをディスプレイ3に表示させる。これにより、バージョンアップの前にユーザがバージョンアップするかどうかを確認できる。
なお、親機2p(直上の電子黒板2)のチェックボックス608もONである。これは、親機2pがプログラムファイル2005を提供しないことを可能とするためである。
システム設定を電子黒板2に設定する場合、設定管理者はOKボタン620を押下し、システム設定を電子黒板2に設定しない場合、設定管理者はキャンセルボタン621を押下する。設定管理者PC500は設定内容を受け付け、システム設定画面601を表示させている電子黒板2に送信する。これにより、設定受付部182は設定情報記憶部5001に設定情報を登録する。
なお、電子黒板2の設定受付部182が図18(b)のようなシステム設定画面601を電子黒板2のディスプレイ3に表示し、設定管理者からの設定を受け付けることも可能である。
表15は、設定管理者により設定された設定情報の内容の一例を模式的に示す(表12の設定情報の具体例)。表15では、項目番号ごとに項目と内容が登録されている。
このうち、システム設定には、設定情報の同期に関する設定として、「同期」、「同期タイミング」及び「同期項目」が登録されている。「同期」は同期処理を行う場合にON、同期しない場合にOFFが設定される。「同期タイミング」は、電子黒板2が同期するタイミングが設定される。「同期項目」は設定情報が有するいくつかの項目のうち同期する項目の番号が設定される。「同期タイミング」には再起動時の他、電源オフの直後又は予め定められた時刻(例えば、毎日4時)などがある。
また、プログラムのバージョンアップに関する設定として、「自動バージョンアップ」「バージョンアップ許可表示」が登録されている。「自動バージョンアップ」はバージョンアップを自動で行う場合にON、バージョンアップしない場合にOFFとなる。「バージョンアップ許可表示」は後述するダイアログが表示される場合にONとなり、表示されない場合にOFFとなる。
<<通信情報設定画面>>
図19は、設定管理者PC500のディスプレイに表示される通信情報設定画面701の一例を示す図である。通信情報設定画面701にはIPアドレス入力欄702とパスコード入力欄703が表示される。設定管理者は通信情報設定画面701を表示させている電子黒板2からみて直上の電子黒板2のIPアドレスをIPアドレス入力欄702に入力する。同様に、パスコード入力欄703にパスコードを入力させる。
通信情報を電子黒板2に設定する場合、設定管理者はOKボタン704を押下し、通信情報を電子黒板2に設定しない場合、設定管理者はキャンセルボタン705を押下する。設定管理者PC500は設定内容を受け付け、システム設定画面601を表示させている電子黒板2に送信する。これにより、設定受付部182は通信情報記憶部5002に通信情報を登録する。
なお、電子黒板2の設定受付部182が図19のような通信情報設定画面701を電子黒板2のディスプレイ3に表示し、設定管理者からの設定を受け付けることも可能である。
<インストール手順>
図20は、画像処理システム1が新しいバージョンのプログラムを同期する手順を示すシーケンス図の一例である。なお、図20では、子機層Cの任意の子機2cと孫機層Gの任意の孫機2gの処理を説明する。
S1:設定管理者は設定管理者PC500を操作して新しいバージョンのプログラムファイル2005を親機2pに設定する。プログラムファイル2005が格納されたUSBメモリを設定管理者が親機2pに装着して、記憶部2000にコピーしてもよい。プログラムを配信するサーバから親機2pがダウンロードしてもよい。
S2:親機2pはプログラムファイル2005を記憶部2000に記憶させておき、次回の起動時、プログラムファイル2005のプログラムを自機にインストールする。インストールすることで、親機2pと子機2cのプログラムのバージョンが異なる状況が生じる。設定管理者が強制的にインストールすることも可能である。
S3:子機2cの直上バージョン判定部164は子機2cが起動すると、親機2pのプログラムのバージョンをチェックする。まず、親機2pにインストールされているプログラムのバージョンと(インストール済みバージョン2004)を要求する。
S3.1:次に、子機2cの直上バージョン判定部164は、ステップS3で取得した親機2pにインストールされているプログラムのバージョンと(インストール済みバージョン2004)、子機2cにインストールされているプログラムのバージョン(インストール済みバージョン5004)が同じかどうかを判定する。図20では、異なっていたものとして説明するが、一致している場合は以下の処理は行われない。
S4:子機2cのプログラム取得部165はプログラムファイル2005を親機2pに要求する。なお、通信情報記憶部5002に記憶されているパスコードを親機2pに送信してログインする。
S5:親機2pのプログラム情報提供部172は、記憶部2000に記憶されているプログラムファイル2005を子機2cに送信する。
S6:子機2cのプログラム取得部165は取得したプログラムファイル2005を記憶部5000にプログラムファイル5005として記憶させておき、子機2cの次回起動時、機種判定部166は、プログラムファイルのインストーラー5011が自機に適合しているか否かを判定する。詳細は図21にて説明する。ここでは、プログラムファイルのインストーラー5011が自機に適合しているものとして説明するが、適合していない場合、以下の処理は行われない。
S7:機種が適合している場合、プログラムインストール部163は、プログラムファイル5005のプログラムを自機にインストールする。インストールすることで、子機2cと孫機2gのプログラムのバージョンが異なるので、孫機2gも同様にプログラムをバージョンアップできる。
したがって、以降のステップS8〜S12の処理はステップS3〜S7と同様でよい。 <<プログラムのバージョンアップ処理>>
図21は、親機以外の電子黒板2がプログラムをバージョンアップする手順を詳細に説明するフローチャート図の一例である。図21の処理は電子黒板2が起動することでスタートする。この起動は、システム設定画面601における再起動時の設定により再起動した場合、又は、ユーザが起動させた場合のいずれでもよい。
まず、電子黒板2のバージョン確認部162は、自機にインストールされているプログラムのバージョンと、記憶部5000に記憶されているプログラムファイル5005のプログラムのバージョンが同じかどうかを判定する(S10)。自機にインストールされているプログラムのバージョンとは、記憶部5000に記憶されているインストール済みバージョン5004である。
ステップS10の判定がNoの場合、プログラムをインストール可能かどうか判定するため機種判定部166は自機の機種情報5006を記憶部5000から読み出す(S20)。
次に、機種判定部166は、プログラムファイルが共通インストーラー5013を有するか否かを判定する。共通インストーラー5013でない場合、機種情報5006と同じ機種に対応したインストーラー5011をプログラムファイルが有するか否かを判定する(S30)。
ステップS30の判定がYesの判定、電子黒板2はインストーラー5011を実行可能なので処理はステップS60に進む。
ステップS30の判定がNoの判定、電子黒板2はインストーラー5011又は共通インストーラー5013を実行可能できないので、例えば機種判定部166は記憶部5000のプログラムファイルを削除する(S40)。記憶部5000にプログラムファイルが記憶されていても実行できないため削除することで記憶容量を有効に活用できる。
次に、機種判定部166はメッセージをディスプレイ3に表示する(S50)。このメッセージは、例えば「プログラムをバージョンアップできません」のようなメッセージである。これにより、管理者等はメッセージを目視して、プログラムのバージョンが直上の電子黒板2と異なるがバージョンアップできないことを把握できる。
次に、プログラムインストール部163は図24に示すようなダイアログを表示するか否かを判定する(S60)。すなわち、図18(b)の設定画面でチェックボックス608がチェックされているかどうかを判定する。
ステップS60の判定がNoの場合、図24に示すようなダイアログを表示せずにインストールが行われる(S80)。
ステップS60の判定がYesの場合、プログラムインストール部163は図24に示すようなダイアログを表示し、ユーザからアップデートするという操作を受け付けたか否かを判定する(S70)。具体的には、ダイアログが表示されている状態で座標検知部22が検知した座標をイベント振分部25がUI操作と判定する。操作処理部26はUI操作された座標に基づきユーザからアップデートするという操作を受け付ける。
なお、ダイアログが表示されたがユーザがなんら操作を行わないと、スタンバイ時間の経過によりスタンバイ状態になるか、又は、シャットダウン時間の経過によりシャットダウンされる。
ステップS70の判定がNoの場合、プログラムがインストールされないので、電子黒板2は、その他の起動していない機能を起動させる(起動処理を継続する)。この後、処理は図22に移行する。
ステップS70の判定がYesの場合、電子黒板2のプログラムインストール部163は記憶部5000に記憶されているプログラムファイル5005を用いてプログラムのインストールを行う(S80)。
次いで、直下の電子黒板2にプログラムファイル5005を提供できるように、プログラムファイル5005を記憶部5000から記憶部2000にコピーする(S90)。なお、記憶部5000のプログラムファイル5005を提供してもよく、この処理を行わなくてもよい。
プログラムをインストールすると電子黒板2は再起動する(S100)。これは、通常のコンピュータと同様に起動中は置き換えられないファイルを置き換えるためである。再起動により、処理はステップS10に戻るが、再起動後はステップS10でYesと判定される。
一方、ステップS10の判定がYesの場合、電子黒板2はプログラムのダウンロード処理のスレッドを作成する(S110)。このスレッドは、例えばプログラムのダウンロードの手順が記述されたものである。スレッドを作成しておくことで電子黒板2はプログラムをダウンロードできるまで繰り返しスレッドを実行できる。
続いて図22を用いて、プログラムのダウンロード処理、設定情報の同期処理について説明する。図22は、電子黒板2が起動後に行う処理を説明する図の一例である。図22の処理は、図21の処理の終了後、必要な機能が起動すると実行される。
まず、電子黒板2の直上バージョン判定部164は直上の電子黒板2と自機のプログラムのバージョンが同じかどうかを判定する(S210)。すなわち、通信情報記憶部5002に記憶されている通信情報を用いて直上の電子黒板2と通信し、インストール済みバージョン2004を取得する。そして、直上の電子黒板2のインストール済みバージョン2004と自機のインストール済みバージョン5004を比較する。
ステップS210の判定がYesの場合、直上の電子黒板2から設定情報を取得してよいので、電子黒板2の設定取得部180が設定情報の同期を行う(S250)。この詳細については後述される。
設定情報を同期した場合、電子黒板2はシャットダウンする(S260)。シャットダウンにより、設定情報のうち再起動しないと有効にならない設定がある場合に該設定を有効にすることができる。
ステップS110の判定がNoの場合、設定情報の同期の前にプログラムのバージョンを一致させる必要があるため、プログラム取得部165はプログラムのダウンロード処理のスレッドを実行する(S220)。
まず、プログラム取得部165は直上の電子黒板2からプログラムファイルをダウンロードできるかどうかを判定する(S230)。判定内容として例えば以下の条件が挙げられる。
(i)直上の電子黒板2がプログラムファイル2005を保持している。
(ii)直上の電子黒板2が同期設定を有効にしている。
(iii)直上の電子黒板2がプログラムの更新設定を有効にしている。
(i)が条件となるのは直上の電子黒板2がプログラムファイル2005を保持していないと直下の電子黒板2が取得できないためである。(ii)が条件となるのは直上の電子黒板2が設定情報を提供しないように設定されている場合は、プログラムファイル2005を取得することができないためである。(iii)が条件となるのは直上の電子黒板2がプログラムファイル2005を提供しないように設定されている場合は、プログラムファイル2005を取得できないからである。なお、(ii)、(iii)の条件はなくてもよく、(i)の条件さえ満たせば、プログラム取得部165が直上の電子黒板2からプログラムファイルをダウンロードできると判定してよい。
ステップS230の判定がNoの場合、プログラム取得部165は定期的にステップS130の判定を繰り返す。これにより、直上及び直下の電子黒板2の負荷を大きくすることなく、ダウンロードが可能になるとプログラムファイルをダウンロードできる。なお、定期的とは固定でなくてよいが、例えば数分〜1時間などの間隔である。また、正確な間隔で繰り返されなくてもよいし、不定期な間隔で繰り返されてもよい。
ステップS230の判定がYesの場合、プログラム取得部165は直上の電子黒板2からプログラムファイル2005をダウンロードする(S240)。ダウンロードしたプログラムファイル2005は記憶部5000にプログラムファイル5005として記憶され、次回の起動時にインストールされる。
以上のように、直上の電子黒板2のインストール済みバージョン2004と自機のインストール済みバージョン5004が同じ場合には、設定情報を同期できる。異なる場合には直上の電子黒板2からプログラムファイル5005をダウンロードして直下の電子黒板2にインストールすることができる。これにより、直上と直下の電子黒板2にインストールされているプログラムのバージョンが同じになるので、設定情報を同期できる。
<<インストーラーの実行>>
図23は図21のステップS80において実行される、インストーラー5011の選択に関する手順を示すフローチャート図の一例である。
電子黒板2のプログラムインストール部163はプログラムファイルが共通インストーラー5013を有するか否かを判定する(S80−1)。
ステップS80−1の判定がNoの場合、プログラムインストール部163はインストーラー5011を実行すればよいので処理はステップS80−4に進む。
ステップS80−1の判定がYesの場合、共通インストーラー5013が有するインストーラー5011のうちどのインストーラー5011を実行するか判定するため、プログラムインストール部163は機種情報5006を記憶部5000から読み出す(S80−2)。
そして、この機種情報5006で記述された機種と同じインストーラー5011を選択する(S80−3)。
プログラムインストール部163は共通インストーラー5013又はステップS80−3で選択されたインストーラー5011を実行する(S80−4)。
このようにプログラムファイルが共通インストーラー5013を有する場合、自機の機種に適合したインストーラー5011をインストールできる。
<<ダイアログ>>
図24は、システム設定画面601でチェックボックス608がONの場合にディスプレイ3に表示されるダイアログ801の一例を示す図である。ダイアログ801は、「新しいプログラムを利用可能です。プログラムをアップデートしますか?」という記述802と、「アップデートする」ボタン803及び「アップデートしない」ボタン804が表示されている。
ユーザが「アップデートする」ボタン803を押下すると、図21のステップS30でYesと判定され、電子黒板2はプログラムをバージョンアップする。「アップデートしない」ボタン804を押下すると、図21のステップS30でNoと判定され、電子黒板2はプログラムをバージョンアップしない。
<設定情報の同期手順>
続いて、設定情報の同期手順を説明する。図25は、画像処理システム1が設定情報を同期する手順を示すシーケンス図の一例である。なお、図25では、子機層Cの任意の子機2cと孫機層Gの任意の孫機2gの処理を説明する。
S1:上記のように設定管理者が設定情報画面を操作して設定情報を親機2pに設定する。
S2:親機2pの設定受付部152は設定情報を受け付けて、本体動作用の設定情報として設定情報記憶部2001に記憶させる。また、設定情報設定日時を更新する。
S3:親機2pのMD作成部153は本体動作用の設定情報からメッセージダイジェスト(ハッシュ値)を作成し、MD記憶部2003に記憶させる。これにより、親機2pが子機2cにメッセージダイジェスト(ハッシュ値)を送信できる。
S4:子機2cの設定要求部183は、例えば電子黒板2が再起動したため設定情報を同期するタイミングであることを検出すると、通信情報記憶部5002に記憶されているIPアドレスの親機2pと通信しパスコードを親機2pに送信してログインする。ログインできた場合、設定要求部183はハッシュ値を要求する。
なお、親機2pと子機2cの電子黒板2は互いに整合性がとれた同期手順で動作する必要がある。このような同期手順をプロトコルと称することにする。プロトコルにはバージョンが定められており、子機2cは親機2pと同じバージョンのプロトコルで同期処理することが好ましい。以上から、プロトコルのバージョン及びパスコードが一致している場合に子機2cにハッシュ値が送信される。ステップS4の処理では、プロトコルのバージョン及びパスコードが一致したものとする。
また、当然ながら、親機2pの電源がOFFであったり、親機2pに何らかの不具合が生じていたりする場合、子機2cはハッシュ値を取得できない。これらのため、親機2pから設定情報を取得できない場合、子機2cの設定要求部183はエラーを記録する。詳細は図26にて説明する。
S5:親機2pの通信部151はMD記憶部2003に記憶されているメッセージダイジェスト(ハッシュ値)を子機2cに送信する。
S6:子機2cの設定要求部183はメッセージダイジェスト(ハッシュ値)を受信し、MD比較部184が親機2pのハッシュ値とMD記憶部5003に記憶されているハッシュ値と比較する。ハッシュ値を比較することで設定情報の全体を比較するよりも通信負荷を低減できる。ここでは2つのハッシュ値が一致しないものとして説明する。一致しないことは親機2pの本体動作用の設定情報が更新されていること(子機2cの設定情報よりも新しいこと)を示す。ハッシュ値でなく例えば、設定情報のシリアル番号を比較してもよい。この場合、親機2p又は設定管理者が設定情報にシリアル番号を付与しておき、子機2cは設定情報の同期の際、シリアル番号も同期しておく。シリアル番号が一致しない場合、子機2cは親機2pの設定情報が更新されていると判定できる。あるいは、ハッシュ値でなく設定情報そのものを比較してもよい。この場合、設定情報が異なっていれば子機2cはそのまま更新できる。
なお、親機2pが子機2cのハッシュ値を取得して親機2pが比較してもよい。この場合、親機2pの負荷が増大するがハッシュ値の比較がそれほど大きな負荷をもたらすものでない場合、親機2pが比較することも可能である。
S7:ハッシュ値が一致しない場合、子機2cの情報取得部186は親機2pに対し設定情報を要求する。ハッシュ値が一致しなければ設定情報を要求しないので、親機2pと子機2cの負荷が増大することを抑制できる。
S8:親機2pの通信部151は、設定情報記憶部2001から読み出された本体動作用の設定情報を子機2cに送信する。
S9:子機2cの通信部181は設定情報を受信し、情報取得部186は親機2pから取得した設定情報を設定情報記憶部5001の本体動作用の設定情報として記憶させる。また、設定情報設定日時を更新する。
S10:子機2cのMD作成部187は設定情報からメッセージダイジェスト(ハッシュ値)を作成し、MD記憶部5003に記憶させる。これにより、子機2cが孫機2gにメッセージダイジェスト(ハッシュ値)を送信できる。
以上のような処理により、親機2pと子機2cの設定情報が同期される。次に、孫機2gの設定要求部183が設定情報を同期するタイミングであることを検出すると、ステップS11〜S17に示すように孫機2gが子機2cと同じ処理を実行する。
このように、直下の電子黒板2は自分の設定情報を更新するという処理を行えばよく、直上の電子黒板2が直下の複数の電子黒板2に設定情報を設定するよりも電子黒板2の負荷を低減できる。
なお、孫機2gが設定情報を取得するタイミングは子機2cよりも1サイクル遅れることになる。これは、孫機2gが起動した時、子機2cは設定情報を同期している途中であるためハッシュ値が一致し、孫機2gは同期の必要がないと判定するためである。したがって、例えば、同期のタイミングが1日に1回(電子黒板2の再起動が1日に1回)であるとすると、孫機2gが設定情報を取得するタイミングは子機2cよりも1日遅れる。しかし、このようにタイミングが遅れて同期するので、各電子黒板2は自機の同期と直下の電子黒板2への設定情報の送信を同じタイミングで行う必要がない。よって、負荷が高くなることを抑制しやすい。このような遅れに不都合がある場合、自動的な再起動の回数を1日に複数回に設定管理者が設定しておくこと、ユーザや設定管理者が手動で再起動することなどが考えられる。
<<子機の動作手順>>
図26は、直下の電子黒板2が設定情報を更新する手順を示すフローチャート図の一例である。図26は主に図25のステップS4の処理を説明する。
上記のように子機2cの設定要求部183は親機2pに対しハッシュ値を要求する(S10)。この要求に対し、親機2pの通信部151はハッシュ値又はエラーの内容に応じたエラーコードを子機2cに送信する。したがって、子機2cはハッシュ値又はエラーコードを取得できる。
子機2cの設定要求部183はハッシュ値を取得できたか否かを判定する(S20)。ハッシュ値を取得できた場合(S20のYes)、上記のように子機2cの情報取得部186が設定情報を取得する(S30)。
ハッシュ値を取得できない場合(S20のNo)、子機2cの設定要求部183はエラーコードを記憶部5000に記録する(S40)。エラーコードには以下のような種類がある。
・400…プロトコルのバージョンが一致していない
・401…パスコードが一致していない
また、子機2cの設定要求部183は親機2pが応答しない場合(電源オフなどのため)、応答なしを意味する402のエラーコードを記録する。これにより、エラーコード表示部188がエラーコードを電子黒板2のディスプレイ3又は設定管理者PC500に表示させることができる。
<エラーコードの表示>
図27(a)は、設定管理者PC500のディスプレイに表示される設定情報設定画面501の一例を示す図である。なお、図27(a)では図18(a)との相違点を主に説明する。エラーコード表示部188は設定情報記憶部5001に記憶されている設定情報設定日時506と同期状況507を、設定情報設定画面501に表示する。同期状況にエラーと表示されるため、設定管理者は同期できなかったことを把握できる。また、エラーコード(エラーの内容)が表示されるので同期できなかった理由も把握できる。
図27(b)は、電子黒板2のディスプレイ3に表示されるエラーコードの一例を示す図である。電子黒板2のディスプレイ3には、手書きや消しゴムなどのツールアイコン欄511、ページの切り替えなどを行うためのページツール欄512などが表示される。これらと共に、電子黒板2のエラーコード表示部188はディスプレイ3の例えば右上などに設定情報記憶部5001に記憶されている設定情報設定日時506と同期状況507を表示する。
表示するタイミングとしては、電子黒板2の起動直後の数秒程度とすることで、ユーザが電子黒板2を使用することを阻害しにくい。ユーザはエラーコードが表示されたことを設定管理者に知らせるので、設定管理者が同期できなかったことや同期できない理由を調査できる。
以上説明したように、本実施例の画像処理システム1は、直下の電子黒板2が直上の電子黒板2と設定情報を同期することを繰り返すことで、全ての電子黒板2の設定情報を同期させることができる。
なお、設定管理者は木構造の頂点の電子黒板2に設定情報を設定する他、親機2pによりも相対的に下位の電子黒板2に設定情報を設定してよい。この場合、設定管理者が設定情報を設定した電子黒板2よりも下位の電子黒板2が設定情報を同期できる。また、親機2pの階層に2台以上の親機2pが存在してもよい。この場合、設定管理者は2台の親機2pにそれぞれ設定情報を設定する。
<共通インストーラーの推奨>
共通インストーラー5013がネットワーク構造の全ての電子黒板2の機種に対応している場合、親機2pが共通インストーラー5013を有することで相対的に下位の全ての電子黒板2がバージョンアップできる。
例えば、図28のような状況を考える。図28は親機2p、子機2c、孫機2gの機種の一例を示す。親機2pと子機2cは機種Aであるが、孫機2gの機種は機種Bである。したがって、親機2pと子機2cは機種A用のインストーラー5011でプログラムをバージョンアップできるが、孫機2gはいつまでもプログラムをバージョンアップできない。この場合、孫機2gはメッセージを表示するが、更に親機にも共通インストーラー5013をインストールすべき旨が表示されれば、孫機2gがプログラムをバージョンアップできないことに対し管理者が親機を見るだけで対処できる。そこで、親機2p、子機2c及び孫機2gは以下のように動作する。
図29は、親機2pが共通インストーラー5013を要求する旨を表示するまでの手順を示すフローチャート図の一例である。
まず、孫機2gの機種判定部166がインストーラー5011を実行できないと判定する(S10)。この処理については図21のステップS30で説明した。
このステップS10でNoと判定されるのは、共通インストーラー5013がプログラムファイルに含まれない場合なので、機種判定部166は共通インストーラー5013を要求する旨を直上の子機に通知する(S20)。
子機2cの通信部181は親機2pに対し共通インストーラー5013を要求する旨を直上の子機に通知する(S30)。
親機2pの通信部181は共通インストーラー5013を要求する旨を受信し、親機2pはディスプレイ3に共通インストーラー5013を要求する旨を表示する(S40)。親機2pは例えば、「ネットワーク構造にプログラムをバージョンアップできない電子黒板があります。共通インストーラー5013を設定してください。」などのメッセージを表示する。したがって、ネットワーク構造に一台でもプログラムをバージョンアップできない電子黒板2が存在すれば親機2pが共通インストーラー5013の設定を促進するメッセージを表示できる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
本実施形態では、電子黒板2の設定情報を例にして同期処理を説明したが、電子黒板2以外の装置が設定情報を更新してもよい。例えば、プロジェクター、画像形成装置(複写機、プリンター、スキャナ装置、MFP(Multi-Function Peripherals))、テレビ会議端末などにも適用できる。
また、本実施形態では同期される設定情報の一例を説明したが、設定情報は上記した情報に限られない。例えば、電子黒板2と接続されているプリンターで印刷する場合の印刷設定(印刷認証の有無、パスワード、暗号化の有無)、地域と言語の設定、登録データの管理に関する設定(電子黒板2が有する情報の読み出しと書き出しの制限に関する設定)、カラープロファイルの設定、及び、電子黒板2のユーザのユーザ情報(ユーザ名、メールアドレスなど電子黒板2がメールを送信する際の宛先)等が設定情報に含まれてよい。また、電子黒板2以外の装置が同期する場合は、装置に特有の情報を同期してよい。
また、図16,17などの構成例は、電子黒板2による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。電子黒板2の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
また、図16,17の記憶部2000、5000に図示される各記憶部の1つ以上はネットワーク上に存在していてもよい。
なお、プログラム取得部165は取得手段の一例であり、機種判定部166は第一の判定手段の一例であり、プログラムインストール部163は導入手段の一例であり、直上バージョン判定部164は第二の判定手段の一例であり、情報取得部186は設定情報取得手段の一例であり、記憶部2000は記憶手段の一例であり、バージョン確認部162は第三の判定手段の一例であり、親機2pは他の電子黒板の一例であり、孫機2gは第二の電子黒板の一例である。通信情報記憶部5002は通信情報記憶手段の一例であり、ストローク画像は可視情報の一例であり、ディスプレイ3は表示装置の一例である。