[第1実施例]
図1を参照して、この発明の一実施例である無線通信システム10は、電子黒板12、複数のクライアント端末14、および無線LANのアクセスポイント装置16を含む電子黒板システムであって、会議室または教育現場などの複数のユーザが集まる環境に適用される。この無線通信システム10では、電子黒板12と複数のクライアント端末14とは、1つのアクセスポイント装置16を介して無線接続される。そして、サーバとして機能する電子黒板12と複数のクライアント端末14との間で、画面の共有または操作などを行ったり、ファイルの送受信を行ったりする。
電子黒板12は、インタラクティブ・ホワイトボード(IWB:Interactive Whiteboard)とも呼ばれ、表示面上にタッチパネル20が設けられた大型のディスプレイ22、およびこれらを制御する制御装置(コンピュータ)24を備える。電子黒板12のディスプレイ22は、会議室または教室などにおいて、会議参加者または受講者が見易い壁際などの位置に配置される。以下、電子黒板12の構成の一例について説明する。
図2に示すように、電子黒板12の制御装置24は、汎用のコンピュータであって、CPU30を含む。CPU30には、バス44を介してRAM32、HDD34、タッチパネル制御回路36、ディスプレイ制御回路38、および無線通信回路40などが接続される。また、タッチパネル制御回路36にはタッチパネル20が接続され、ディスプレイ制御回路38にはディスプレイ22が接続される。
なお、電子黒板12の制御装置24は、タッチパネル20およびディスプレイ22を保持する筐体に内蔵されていてもよいし、筐体の外部に別体として設けられていてもよい(つまり外付けのコンピュータであってもよい)。
CPU30は、電子黒板12の全体的な制御を司ると共に、無線通信システム10の全体的な制御を司る。RAM32は、CPU30のワーク領域およびバッファ領域として用いられる。HDD34は、不揮発性のメモリであり、電子黒板12のオペレーティングシステムおよび各種のアプリケーションソフトウェア等の制御プログラムを記憶したり、電子黒板12および無線通信システム10で使用する各種のデータを記憶したりする。たとえば、HDD34に記憶される制御プログラムには、無線LAN環境下において他のコンピュータと画面共有を行うための画面共有プログラム(たとえば、シャープ株式会社製の会議支援ソフトである「タッチディスプレイリンク」)が含まれる。
CPU30は、HDD34から読み出した制御プログラムおよびデータをRAM32に書き込み(記憶して)、RAM32に記憶された制御プログラムに従って電子黒板12を構成する各部の制御を実行する。ただし、HDD34に代えて、ROMまたはフラッシュメモリのような他の不揮発性のメモリを設けるようにしてもよい。
タッチパネル制御回路36は、タッチパネル20に必要な電圧などを付与すると共に、タッチパネル20のタッチ有効範囲内でのタッチ操作(タッチ入力)を検出して、そのタッチ操作の位置を示すタッチ座標データをCPU30に出力する。CPU30は、タッチパネル制御回路36から入力されたタッチ座標データに基づいて、ユーザが描画した手書きの文字または図形などの画像データを生成したり、ユーザがどの機能ボタンをタッチしたかを判断したりする。
タッチパネル20は、ディスプレイ22の表示面上に設けられる汎用のタッチパネルであり、静電容量方式、電磁誘導方式、抵抗膜方式および赤外線方式などの任意の方式のものを用いることができる。この第1実施例では、タッチパネル20としては、静電容量方式のタッチパネルが用いられる。ユーザは、電子ペンまたは指先などでタッチパネル20を操作する。なお、電子黒板12には、他の入力手段として、タッチパネル20とは別に、操作パネルのようなハードウェアキーが設けられたり、ハードウェアのキーボード等が接続されたりすることがある。
ディスプレイ制御回路38は、GPUおよびVRAMなどを含む。GPUは、CPU30の指示の下、RAM32に記憶された描画データ74aおよび画像生成データ74b(図7参照)を用いて、ディスプレイ22に表示するための表示画像データをVRAMに生成し、生成した表示画像データをディスプレイ22に出力する。したがって、ディスプレイ22には、たとえば、ユーザがタッチ操作によって入力した文字または図形などの画像が表示される。
ディスプレイ22としては、たとえばLCDまたはEL(Electro-Luminescence)ディスプレイなどを用いることができる。
無線通信回路40は、有線または無線で接続されるアクセスポイント装置16を介して、クライアント端末14との間で電波による無線通信を行う。すなわち、無線通信回路40は、クライアント端末14への通信データを無線信号(電波信号)に変調してアンテナから送信し、また、クライアント端末14からの無線信号を同じアンテナで受信して通信データに復調する。
図1に戻って、クライアント端末14は、ノートPC、タブレット端末またはスマートフォン等の汎用のモバイル端末であって、表示面上にタッチパネル50が設けられたディスプレイ52を備える。クライアント端末14としては、基本的には、会議参加者または受講者が、会議室内または教室内に各自で持ち込む端末が想定される。ただし、クライアント端末14には、携帯可能なモバイル端末だけでなく、据置型の端末が含まれていても構わない。また、クライアント端末14は、必ずしもタッチパネル50を備える必要もなく、キーボード、タッチパッドまたはマウス等の他の入力手段を備えるだけでもよい。
以下、クライアント端末14の構成の一例について説明するが、ディスプレイ52が大型ではない点を除いて、電子黒板12の構成とほぼ同様であるので、重複する説明は省略ないし簡略化する。
図3に示すように、クライアント端末14は、クライアント端末14の全体的な制御を司るCPU54を含む。CPU54には、バス66を介してRAM56、HDD58、タッチパネル制御回路60、ディスプレイ制御回路62、および通信回路64などが接続される。また、タッチパネル制御回路60にはタッチパネル50が接続され、ディスプレイ制御回路62にはディスプレイ52が接続される。CPU54は、HDD58から読み出したオペレーティングシステムおよび各種のアプリケーションソフト等の制御プログラムならびにデータをRAM56に書き込み、RAM56に記憶された制御プログラムに従ってクライアント端末14を構成する各部の制御を実行する。
たとえば、HDD58に記憶される制御プログラムには、無線LAN環境下において他のコンピュータと画面共有を行うための画面共有プログラムが含まれる。
また、HDD58に記憶される制御プログラムには、アクセスポイント(AP)として動作するためのAP化プログラムが含まれる。つまり、クライアント端末14は、無線LANのアクセスポイントとして動作するためのSoftAP機能を有する。ただし、必ずしも電子黒板12に無線接続される全てのクライアント端末14がSoftAP機能を備えている必要はない。
このような無線通信システム10では、上述のように、電子黒板12と複数のクライアント端末14とが、アクセスポイント装置16を介して無線接続される。そして、画面共有プログラム等を利用して、電子黒板12と複数のクライアント端末14との間で、Wi-Fi方式などに従った無線通信により、画面の共有または操作などを行ったり、ファイルの送受信を行ったりする。
以下、画面共有プログラムの基本的な機能について説明するが、画面共有プログラムは公知技術であるため、ここでは簡単な説明に留める。なお、この無線通信システム10においては、電子黒板12の制御装置24がサーバ(ホスト)であり、各クライアント端末14がクライアントであるので、その前提で説明する。
画面共有プログラムを開始する際には、電子黒板12(制御装置24)では、ホストとして画面共有プログラムが起動される。一方、各クライアント端末14では、クライアントとして画面共有プログラムが起動される。この際、各クライアント端末14において、接続先のホスト(つまり電子黒板12)を指定して接続要求を行うと、無線接続の確立に必要な各種の認証処理が実行され、電子黒板12と各クライアント端末14との間にアクセスポイント装置16を介した無線接続が確立される。
電子黒板12と各クライアント端末14との間に無線接続が確立した状態で、画面共有に関する操作が行われると、それに応じた処理が実行される。たとえば、ホストである電子黒板12においてディスプレイ22の画面操作を行った場合には、その画面情報(画面共有データ)が、アクセスポイント装置16経由の無線LANを通じて、各クライアント端末14に伝達(送信)されることで、各クライアント端末14のディスプレイ52にその画面が共有されて映し出される。また、送信された画面情報は、各クライアント端末14において保存される。ここで、画面情報とは、プレゼンテーションソフト等の画面に表示されている画像データ、およびユーザが画面上に描画した手書きの文字や図形などの画像データのことである。
また、画面共有プログラムでは、各クライアント端末14においてディスプレイ52の画面上に書き込んだ文字などの画面情報を、電子黒板12のディスプレイ22に反映させることもできるし、電子黒板12のディスプレイ22に反映させずに、書き込んだクライアント端末14のディスプレイ52のみに表示することもできる。前者の機能は、たとえば、学校の教師が電子黒板12において算数の問題などを出し、生徒がその問題に対する答えをクライアント端末14において書き込み、その書き込んだ答えを電子黒板12のディスプレイ22に反映させて教師および他の生徒が確認するというような場合に利用される。後者の機能は、たとえば、教師が電子黒板12において板書した内容に対して、生徒がクライアント端末14において独自にメモ書きを添えて保存するというような場合に利用される。
さらに、画面共有プログラムでは、画面共有だけでなく、電子黒板12から各クライアント端末14に対してファイルデータを配布するファイル共有も可能である。
ここで、電子黒板12(制御装置24)に対して多数のクライアント端末14が無線接続されると、アクセスポイント装置16が輻輳状態になって、電子黒板12とクライアント端末14との通信が遅くなり、画面共有が途切れたり、画面の更新が遅れたりする恐れが生じる。
そこで、この第1実施例では、電子黒板12に対して多数のクライアント端末14が無線接続される場合、その中から数台のクライアント端末14を選択して無線LANのアクセスポイントとして動作させることによって、無線LANの接続を分散させる。つまり、クライアント端末14をアクセスポイント化してデータの伝送路を増やすことによって、アクセスポイント装置16が輻輳状態となることを防止する。
なお、電子黒板12に無線接続されているクライアント端末14のうち、アクセスポイントとして動作させるクライアント端末14を「第1クライアント端末14a」と記載し、アクセスポイントとして動作させない残りのクライアント端末14を「第2クライアント端末14b」と記載する。ただし、これらを区別する必要がない場合には、まとめて「クライアント端末14」と記載する。
具体的には、電子黒板12のCPU30は、電子黒板12に無線接続されているクライアント端末14の総台数が所定台数以上(たとえば、20台以上)であるときに、その総台数に応じた所定台数のクライアント端末14を第1クライアント端末14aとして選択し、残りのクライアント端末14を第2クライアント端末14bとする。
第1クライアント端末14aの台数と第2クライアント端末14bの台数との割合は、特に限定されないが、1:4〜6程度が好ましい。この第1実施例では、1台の第1クライアント端末14aに対して、5台の第2クライアント端末14bが割り当てられるように、第1クライアント端末14aの台数を決定する。なお、クライアント端末14の総台数が6の倍数でない場合には、第2クライアント端末14bの台数を少なくして調整するとよい。
たとえば、図1に示すように電子黒板12に対して50台のクライアント端末14が無線接続されている場合には、図4に示すように、第1クライアント端末14aの台数は9台に決定され、50台のクライアント端末14の中から9台の第1クライアント端末14aが選択(選別)される。そして、残りの41台のクライアント端末14が第2クライアント端末14bとされる。なお、図4では、分かり易いように、第1クライアント端末14aに選別されたものには、丸印を付している。
第1クライアント端末14aは、クライアント端末14の中からランダムに選択してもよいが、この第1実施例では、コンピュータとして性能の高いクライアント端末14を第1クライアント端末14aとして選択する。クライアント端末14の中には、アクセスポイントとして動作させるのに不十分な性能しか有していないものもあり、性能の低いクライアント端末14をアクセスポイントとして動作させると、クライアント端末14がフリーズする等の不具合が生じる恐れがあるからである。
具体的には、各クライアント端末14は、自身の性能情報を抽出して記憶している。電子黒板12の制御装置24は、各クライアント端末14に対してそのクライアント端末14自身の性能情報を送信するよう指示し、各クライアント端末14から性能情報を収集して記憶する。ここで、クライアント端末14の性能情報としては、搭載CPUの種類およびクロック数のスピード等から判定されるCPU能力、CPU使用率、メモリ容量(RAM)およびメモリ使用率などの情報が含まれる(図8参照)。
そして先ず、電子黒板12の制御装置24は、CPU能力の高いクライアント端末14を第1クライアント端末14aとして優先的に選択する。CPU能力としては、搭載CPU(CPU54)の種類などに基づいて独自に数値化したものを用いてもよいし、既存の性能評価ツール(たとえば、Windows(登録商標)のエクスペリエンス インデックス)による評価値を用いてもよい。また、CPU能力が高いものでも、他のタスクを実行している場合には能力が落ちているので、CPU使用率も考慮する。たとえば、CPU使用率が10%の場合には、CPU能力に対して未使用率である90%を掛け合わせたものを実際のCPU能力として用いる。そして、実際のCPU能力の高いクライアント端末14から順に、第1クライアント端末14aとして選択する。なお、CPU使用率が80%以上のクライアント端末14は、AP化すると不具合が生じる可能性が高いので、第1クライアント端末14aの候補から除外するものとする。
また、CPU能力の同じクライアント端末14が存在する場合には、搭載メモリ(RAM56)の容量の大きいものを優先して選択する。この場合にも、メモリ使用率を考慮するとよい。つまり、メモリ容量に対してメモリの未使用率を掛け合わせたものを実際のメモリ容量として用い、CPU能力が同じならば、実際のメモリ容量の大きいクライアント端末14から順に、第1クライアント端末14aとして選択する。
また、クライアント端末14の性能情報には、AP化機能の有無、およびAP化の承認に関する情報なども含まれる。AP化機能が無い、つまりAP化プログラムがインストールされていないクライアント端末14は、CPU能力が高くても、第1クライアント端末14aの候補から除外される。また、この第1実施例では、各クライアント端末14のユーザが、自身のクライアント端末14をアクセスポイントとして利用されることを承認するか否かを選択できるようにされる。そして、AP化の承認がない(AP化を拒否された)クライアント端末14は、CPU能力が高くても、第1クライアント端末14aの候補から除外される。たとえば、AP化を許可する状態を初期状態としておき、ユーザが自身のクライアント端末14をAP化されることを拒否する場合には、ユーザが入力操作を行うことによって、拒否する状態に設定変更するようにされる。ただし、ユーザの認否によらず、電子黒板12が強制的に第1クライアント端末14aを選択するようにしてもよい。
電子黒板12の制御装置24は、所定台数の第1クライアント端末14aを選択すると、続いて、図5に示すように、第1クライアント端末14aのそれぞれに対して、第2クライアント端末14bを組分け(グルーピング)する。この第1実施例では、1台の第1クライアント端末14aに対して、第2クライアント端末14bを5台ずつ振り分けて、9つのグループを形成する。この際、クライアント端末14の総台数が6の倍数でない場合、つまり第2クライアント端末14bに端数がでる場合には、第2クライアント端末14bをバランスよく振り分けるようにする。
なお、上述のクライアント端末14の性能情報(図8参照)には、各クライアント端末14が利用可能な無線LANの規格(無線対応規格)に関する情報が含まれており、同じグループに組分けされるクライアント端末14は、利用可能な無線LANの規格が少なくとも1つは共通するようにされる。
各第1クライアント端末14aに対する第2クライアント端末14bの組分けが終了すると、電子黒板12の制御装置24は、各クライアント端末14に対して設定情報を送信する。具体的には、第1クライアント端末14aに対しては、第1クライアント端末14aである旨、つまりAP機能をオンにする指示(コマンド)を含む設定情報を送信し、第1クライアント端末14aをアクセスポイントとして動作させるための属性設定を行う。また、設定情報として、その第1クライアント端末14aと同じグループに組分けされた第2クライアント端末14bの情報(組分け情報)、および無線設定の情報なども送信する。
第1クライアント端末14aに送信される無線設定の情報には、第1クライアント端末14aが電子黒板12との間、および同じグループに組分けされた第2クライアント端末14bとの間の無線通信において使用する無線LANの規格および周波数帯などの情報を含む。各第1クライアント端末14aにおける無線設定は、同じでもよいが、なるべく重複しないように設定される。たとえば、電子黒板12の制御装置24は、この無線通信システム10の環境内に存在する電波の周波数および強度を検出(取得)し、環境内における他の電子機器の通信電波および漏洩電波などが、妨害電波とならない無線LANの規格および周波数帯を抽出する。そして、抽出した無線LANの規格および周波数帯の中から、それらがなるべく重複しないように、各第1クライアント端末14aで使用する無線LANの規格および周波数帯を選択し、その無線設定の情報を第1クライアント端末14aに送信する。これによって、各第1クライアント端末14aは、互いに電波干渉することなく、無線通信を行うことができる。ただし、各第1クライアント端末14aにおいて選択される無線LANの規格は、同じグループに組分けされた全てのクライアント端末14が共通して利用可能な無線LANの規格とされる。
一方、第2クライアント端末14bに対しては、電子黒板12の制御装置24は、第2クライアント端末14bである旨、その第2クライアント端末14bと同じグループに組分けされた第1クライアント端末14aの情報(組分け情報)、および同じグループに組分けされた第1クライアント端末14aとの間の無線設定の情報などを含む、設定情報を送信する。電子黒板12の制御装置24から送信された設定情報は、各クライアント端末14において記憶される。
電子黒板12の制御装置24から設定情報を送信された各クライアント端末14は、その設定情報に基づいて動作する。具体的には、各第1クライアント端末14aのCPU54は、電子黒板12の制御装置24からのAP機能をオンにする指示に基づき、後述するAPフラグ84d(図9参照)をオンに設定して、第1クライアント端末14aをアクセスポイントとして動作させるためのAP化プログラム(アプリケーションソフト)を起動させる。なお、各第2クライアント端末14bでは、APフラグ84dはオフのままとされる。
また、同じグループに組分けされた第1クライアント端末14aと各第2クライアント端末14bとの間では、各クライアント端末14のCPU54が、無線接続の確立に必要な各種の認証処理を実行する。この認証処理が終了すると、同じグループに組分けされた第1クライアント端末14aと各第2クライアント端末14bとの間に、電子黒板12から送信された無線設定に応じた無線接続が確立される。これによって、図6に示すように、第2クライアント端末14bのそれぞれは、同じグループに組分けされた第1クライアント端末14aおよびアクセスポイント装置16を介して、電子黒板12との間で無線通信を実行することが可能になる。また、第1クライアント端末14aは、アクセスポイントとして機能する共に、アクセスポイント装置16を介して、電子黒板12との間で無線通信を実行する。
このように、複数のクライアント端末14の一部(第1クライアント端末14a)をアクセスポイントとして動作させることによって、アクセスポイントが1ヵ所(アクセスポイント装置16)に集中することなく、各第1クライアント端末14aに分散される。上述の例では、1台のアクセスポイント装置16に50台のクライアント端末14が繋がっていたものが、9台の第1クライアント端末14aに低減される。したがって、アクセスポイント装置16が輻輳状態となることを防止でき、電子黒板12と複数のクライアント端末14との間の無線接続を円滑に実行できる。
上述のような電子黒板12の動作は、制御装置24のRAM32に記憶された制御プログラムをCPU30が実行することにより実現される。
図7は、図1に示したRAM32のメモリマップ70の一例を示す。図7に示すように、RAM32は、プログラム記憶領域72およびデータ記憶領域74を含む。プログラム記憶領域72には、操作検出プログラム72a、表示プログラム72b、通信プログラム72c、画面共有プログラム72d、端末台数検出プログラム72e、AP台数決定プログラム72f、端末選別プログラム72g、端末組分けプログラム72h、および無線設定選択プログラム72iなどの制御プログラムが記憶される。
操作検出プログラム72aは、タッチパネル制御回路36から出力された座標データに基づいて、電子黒板12のタッチパネル20上(ディスプレイ22の表示面)にユーザが文字または図形などを描画している操作を検出したり、電子黒板12のディスプレイ22の表示面に表示された機能ボタン領域に含まれる各種のアイコンまたはボタンに対する操作を検出したりするためのプログラムである。ただし、操作検出プログラム72aは、電子黒板12の制御装置24に接続されたハードウェアのキーボードないしマウス、或いは電子黒板12に設けられたハードウェアの操作ボタンからの入力を検出するためのプログラムでもある。
表示プログラム72bは、タッチパネル制御回路36から出力されたタッチ座標データ(描画データ74a)および画像生成データ74bに基づいて表示画像データを生成し、ユーザが入力した文字または図形などを含む画面をディスプレイ22に表示するためのプログラムである。また、クライアント端末14から送信された表示画像データに基づく画面をディスプレイ22に表示するためのプログラムでもある。
通信プログラム72cは、アクセスポイント装置16を介して、クライアント端末14などの他のコンピュータと無線LANによる通信を行うためのプログラムである。
画面共有プログラム72dは、ホスト用の画面共有プログラムであって、クライアント端末14との間で、画面の共有または操作などを行ったり、ファイルの送受信を行ったりするためのプログラムである。
端末台数検出プログラム72eは、自身(電子黒板12)に無線接続されているクライアント端末14の台数を検出するためのプログラムである。
AP台数決定プログラム72fは、自身に無線接続されているクライアント端末14の台数に基づいて、アクセスポイントとして動作させる第1クライアント端末14aの台数を決定するためのプログラムである。
端末選別プログラム72gは、自身に無線接続されているクライアント端末14の中から、AP台数決定プログラム72fによって決定された台数分の第1クライアント端末14aを選択するためのプログラムである。この第1実施例では、端末選別プログラム72gは、各クライアント端末14の性能情報を収集する。そして、コンピュータとして性能の高いクライアント端末14を第1クライアント端末14aとして選別し、残りのクライアント端末14を第2クライアント端末14bとして選別する。
端末組分けプログラム72hは、第1クライアント端末14aのそれぞれに対して、第2クライアント端末14bを組分けするためのプログラムである。
無線設定選択プログラム72iは、各第1クライアント端末14aが使用する、つまりクライアント端末14の各グループで使用する無線LANの規格および周波数帯などの無線設定を選択するためのプログラムである。たとえば、無線設定選択プログラム72iは、無線通信システム10の環境内に存在する他の電子機器の通信電波などと重複しない無線LANの規格および周波数帯を抽出する。そして、その抽出した無線LANの規格および周波数帯の中から、各第1クライアント端末14aが使用する無線設定同士がなるべく重複しないように、各第1クライアント端末14aが使用する無線設定を選択する。
また、データ記憶領域74には、描画データ74a、画像生成データ74b、端末性能データ74cおよびAP台数設定データ74dなどのデータが記憶される。
描画データ74aは、操作検出プログラム72aに従って検出されたタッチ座標の時系列データである。たとえば、描画データ74aは、タッチパネル20を用いてユーザによって手書き入力された文字および図形などについてのタッチ座標データであり、タップによる点またはドラッグ(スライド)による線を、点または線ごとに管理する。
画像生成データ74bは、ディスプレイ22に表示する各種の画面に対応する表示画像データを生成するためのポリゴンデータまたはテクスチャデータ等のデータである。また、画像生成データ74bには、各種のアイコン(ボタン)についての画像データも含まれる。
端末性能データ74cは、端末選別プログラム72gに従って各クライアント端末14から収集されて、第1クライアント端末14aを選択する際に利用される、各クライアント端末14の性能情報についてのデータである。図8は、端末性能データ74cに従う端末性能テーブルの一例を示す。
図8に示すように、端末性能テーブルでは、端末IDに対応付けて、CPU能力、CPU使用率、メモリ容量、メモリ使用率、無線対応規格、AP化機能の有無、およびAP化の承認などが記載される。
端末IDの欄には、クライアント端末14の識別情報が記述される。たとえば、端末IDとしては、クライアント端末14が有するMACアドレスを使用することができる。ただし図8では、簡単のため、端末IDを3桁の数字で表している。
CPU能力の欄には、CPU54の種類およびクロック数のスピード等から判定されるCPU54の基本能力の高さが記述される。図8では、一例として、CPU54の種類などに基づいて独自に数値化した基本能力を表しており、ここでは数値が大きい程、基本能力が高いことを示す。また、CPU使用率の欄には、現在使用されているCPU能力の割合が記述される。上述の端末選別プログラム72gは、CPU使用率を考慮した実際のCPU能力(つまり、CPU能力×(100−CPU使用率))の高いクライアント端末14を第1クライアント端末14aとして優先的に選択する。
メモリ容量(RAM)の欄には、RAM56の基本容量(最大容量)が記述される。また、メモリ使用率の欄には、現在使用されているRAM56の容量の割合が記述される。上述の端末選別プログラム72gは、実際のCPU能力が同じ場合には、メモリ使用率を考慮した現在使用できるメモリ容量(つまり、メモリ能力×(100−メモリ使用率))の大きいクライアント端末14を第1クライアント端末14aとして優先的に選択する。
無線対応規格の欄には、クライアント端末14が対応している、つまり利用可能な無線LANの規格が記述される。なお、図8において、「11a/g/n」は、IEEE802.11a、IEEE802.11gおよびIEEE802.11nの3つの規格に対応していることを表しており、「11a/g」は、IEEE802.11aおよびIEEE802.11gの2つの規格に対応していることを表している。
AP化機能の有無の欄には、AP化機能の有無、つまりAP化プログラムがインストールされているかいないかの情報が記述される。また、AP化の承認の欄には、アクセスポイントとして利用されることについてのユーザの承認があるか否か、つまりAP化することがユーザに許可されているか拒否されているかの情報が記述される。上述の端末選別プログラム72gは、AP化機能が無いまたはAP化の承認が無いクライアント端末14を第1クライアント端末14aの候補から除外し、AP化機能が有りかつAP化の承認が有るクライアント端末14の中から、第1クライアント端末14aを選択する。つまり、AP化機能が無いまたはAP化の承認が無いクライアント端末14は、第2クライアント端末14bとして選別される。
図7に戻って、データ記憶領域74に記憶されるAP台数設定データは、何台のクライアント端末14ごとに第1クライアント端末14aを設定するかについてのデータ、つまり第1クライアント端末14aの台数と第2クライアント端末14bの台数との割合についてのデータである。
なお、データ記憶領域74には、上記の各制御プログラムの実行に必要な他のデータが記憶されたり、各制御プログラムの実行に必要なタイマ(カウンタ)またはレジスタが設けられたりする。
また、上述のようなクライアント端末14の動作は、図3に示すRAM56に記憶された制御プログラムをCPU54が実行することにより実現される。なお、電子黒板12と同様の内容については、その説明を省略または簡略化する。
図9は、RAM56のメモリマップ80の一例を示す。図9に示すように、RAM56は、プログラム記憶領域82およびデータ記憶領域84を含む。プログラム記憶領域82には、操作検出プログラム82a、表示プログラム82b、通信プログラム82c、画面共有プログラム82d、AP化プログラム82e、および性能情報取得プログラム82fなどの制御プログラムが記憶される。
操作検出プログラム82aは、タッチパネル制御回路60から出力された座標データに基づいて、クライアント端末14のタッチパネル50上にユーザが文字または図形などを描画している操作を検出したり、クライアント端末14のディスプレイ52の表示面に表示された機能ボタン領域に含まれる各種のアイコンまたはボタンに対する操作を検出したりするためのプログラムである。
表示プログラム82bは、タッチパネル制御回路60から出力されたタッチ座標データ(描画データ84a)および画像生成データ84bに基づいて表示画像データを生成し、ユーザが入力した文字または図形などを含む画面をディスプレイ52に表示するためのプログラムである。また、電子黒板12から送信された表示画像データに基づく画面をディスプレイ52に表示するためのプログラムでもある。
通信プログラム82cは、アクセスポイント装置16を介して、電子黒板12などの他のコンピュータと無線LANによる通信を行うためのプログラムである。また、第2クライアント端末14bとして選別された後は、通信プログラム82cは、第1クライアント端末14aおよびアクセスポイント装置16を介して、電子黒板12と無線LANによる通信を行うためのプログラムである。
画面共有プログラム82dは、クライアント用の画面共有プログラムであって、画面共有プログラムのホストである電子黒板12との間で、画面の共有または操作などを行ったり、ファイルの送受信を行ったりするためのプログラムである。
AP化プログラム82eは、自身が無線LANのアクセスポイントとして動作するためのプログラムである。
性能情報取得プログラム82fは、自身の性能情報、つまり自身の端末ID、CPU能力、CPU使用率、メモリ容量、メモリ使用率、無線対応規格、AP化機能の有無、およびAP化の承認などの情報を抽出するためのプログラムである。
また、データ記憶領域84には、描画データ84a、画像生成データ84b、性能データ84cおよびAPフラグ84dなどのデータが記憶される。
描画データ84aは、操作検出プログラム82aに従って検出されたタッチ座標の時系列データである。また、画像生成データ84bは、ディスプレイ52に表示する各種の画面に対応する表示画像データを生成するためのポリゴンデータまたはテクスチャデータ等のデータである。
性能データ84cは、性能情報取得プログラム82fによって取得された端末IDおよびCPU能力などの自身の性能情報についてのデータである。
APフラグ84dは、自身が第1クライアント端末14aであるか第2クライアント端末14bであるかを判断するためのフラグ、つまりAP機能を起動させるか否かを判断するためのフラグである。このAPフラグ84dは、電子黒板12の制御装置24からの指示に応じてオン/オフが切り替えられる。
次に、上述のような無線通信システム10において実行される無線通信処理について、フロー図を用いて説明する。図10は、電子黒板12のCPU30が実行するサーバ(ホスト)側の無線通信処理の一例を示すフロー図である。図11は、各クライアント端末14のCPU54が実行するクライアント端末側の無線通信処理の一例を示すフロー図である。
図10に示すように、電子黒板12のCPU30は、ホスト用の画面共有プログラムが起動されると、このサーバ側の無線通信処理を開始する。先ず、ステップS1では、接続中のクライアント端末14の台数を検出する。つまり、CPU30は、アクセスポイント装置16を介して自身と無線接続されているクライアント端末14の台数を検出する。
次のステップS3では、ステップS1で検出した接続中のクライアント端末14の台数が所定台数(たとえば20台)以上であるか否かを判断する。ステップS3で“NO”の場合、つまり接続中のクライアント端末14の台数が所定台数未満の場合には、そのままステップS17に進み、各クライアント端末14との間で、アクセスポイント装置16を介した無線通信により、画面の共有または操作などの画面共有処理を行ったり、ファイルの送受信を行ったりする。一方、ステップS3で“YES”の場合、つまり接続中のクライアント端末14の台数が所定台数以上の場合には、ステップS5に進む。
ステップS5では、接続中のクライアント端末14の総台数(第1所定台数)に基づき、アクセスポイントとして動作させる第1クライアント端末14aの台数(第2所定台数)を決定する。たとえば、CPU30は、6台のクライアント端末14につき1台の第1クライアント端末14aとなる割合で、第1クライアント端末14aの台数を算出する。
次のステップS7では、接続中のクライアント端末14の性能情報を取得する。たとえば、CPU30は、接続中の各クライアント端末14に対して、性能情報を送信させるための要求信号(性能問い合わせ)を送信し、それに応じて各クライアント端末14から送信される性能情報を収集する。
続くステップS9では、ステップS7で取得した各クライアント端末14の性能情報に基づき、ステップS5で決定した台数分の第1クライアント端末14aを選択する。たとえば、CPU30は、AP化機能が有りかつAP化の承認が有るクライアント端末14の中から、CPU能力の高い第2所定台数分のクライアント端末14を第1クライアント端末14aとし、残りのクライアント端末14を第2クライアント端末14bとして選別する。
続くステップS11では、第1クライアント端末14aと第2クライアント端末14bとの組分けを決定する。たとえば、CPU30は、1台の第1クライアント端末14aに対して5台の第2クライアント端末14bが同じグループとなるように組分けする。
続く、ステップS13では、第1クライアント端末14aに対して設定情報を送信する。すなわち、CPU30は、AP機能をオンにする指示、同じグループに組分けされた第2クライアント端末14bの情報、および使用する周波数などの無線設定などを第1クライアント端末14aに対して送信する。また、ステップS15では、第2クライアント端末14bに対して設定情報を送信する。すなわち、CPU30は、同じグループに組分けされた第1クライアント端末14aの情報、および使用する周波数などの無線設定などを第2クライアント端末14bに対して送信する。
ステップS13およびステップS15の処理により、後述する図11に示すように、第1クライアント端末14aは、アクセスポイントとして動作するようになる。また、同じグループに組分けされた第1クライアント端末14aと第2クライアント端末14bとの間で無線接続を確立するための処理が実行される。すなわち、第2クライアント端末14bのそれぞれは、同じグループに組分けされた第1クライアント端末14aおよびアクセスポイント装置16を介して、電子黒板12との間で無線通信を実行するようになる。
ステップS13およびステップS15の処理が終了すると、処理はステップS17に進み、画面共有処理などを行う。すなわち、CPU30は、各第1クライアント端末14aとの間では、アクセスポイント装置16を介した無線通信により、また、各第2クライアント端末14bとの間では、第1クライアント端末14aおよびアクセスポイント装置16を介した無線通信により、画面の共有または操作などの画面共有処理などを行ったり、ファイルの送受信を行ったりする。
また、ステップS19では、終了コマンドが有るか否かを判断する。すなわち、CPU30は、ホスト用の画面共有プログラムを終了するための終了コマンドがユーザ(電子黒板12の操作者)によって入力されたか否かを判断する。ステップS19で“NO”の場合、つまり終了コマンドが無い場合には、処理はステップS17に戻り、画面共有処理を続ける。
一方、ステップS19で“YES”の場合、つまり終了コマンドが有る場合には、処理はステップS21に進み、第1クライアント端末14aに対してAP機能をオフにする指示を送信し、この全体処理を終了する。つまり、会議終了時などに画面共有プログラムを終了するときには、第1クライアント端末14aのAP機能はオフに戻される。
続いて、図11を参照して、各クライアント端末14側の処理について説明する。図11に示すように、各クライアント端末14のCPU54は、クライアント端末用の画面共有プログラムが起動されると、このクライアント端末側の無線通信処理を開始する。先ず、ステップS31では、端末IDおよびCPU能力などの自身の性能情報についてのデータを抽出してRAM56等に記憶する。
次のステップS33では、サーバ(電子黒板12)から性能問い合わせが有るか否かを判断する。ステップS33で“NO”の場合、つまり電子黒板12から性能問い合わせが無い場合には、そのままステップS45に進み、電子黒板12との間で、アクセスポイント装置16を介した無線通信により、画面の共有または操作などの画面共有処理を行ったり、ファイルの送受信を行ったりする。一方、ステップS33で“YES”の場合、つまり電子黒板12から性能問い合わせが有る場合には、ステップS35に進む。このステップS35では、電子黒板12に対して自身の性能情報を送信する。
続くステップS37では、電子黒板12から第1クライアント端末14aとしての設定情報を受信したか否かを判断する。つまり、CPU54は、AP機能をオンにする指示を含む設定情報を電子黒板12から受信したか否かを判断する。
ステップS37で“YES”の場合、つまり電子黒板12からの設定情報が第1クライアント端末14aとしてのものである場合には、ステップS39に進む。このステップS39では、ステップS37で受信した設定情報に基づき自身のAP機能をオンにする、つまりAPフラグ84dをオンに設定して、AP化プログラムを起動させる。また、同じグループに組分けされた各第2クライアント端末14bとの間で無線接続を確立する。
一方、ステップS37で“NO”の場合、つまり電子黒板12からの設定情報が第1クライアント端末14aとしてのものでない場合には、ステップS41に進む。ステップS41では、電子黒板12から第2クライアント端末14bとしての設定情報を受信したか否かを判断する。
ステップS41で“NO”の場合、つまり電子黒板12からの設定情報が第2クライアント端末14bとしてのものでない場合には、ステップS45に進む。また、ステップS41で“YES”の場合、つまり電子黒板12からの設定情報が第2クライアント端末14bとしてのものである場合には、ステップS43に進む。このステップS43では、ステップS37で受信した設定情報に基づき、同じグループに組分けされた各第1クライアント端末14aとの間で無線接続を確立する。
ステップS39またはステップS43の処理により、同じグループに組分けされた第1クライアント端末14aと第2クライアント端末14bとの間で無線接続を確立されると、処理はステップS45に進む。
ステップS45では、第1クライアント端末14aは、自身がアクセスポイントとして動作すると共に、アクセスポイント装置16を介して電子黒板12との間で無線通信を実行し、画面の共有または操作などの画面共有処理を行ったり、ファイルの送受信を行ったりする。また、第2クライアント端末14bは、第1クライアント端末14aおよびアクセスポイント装置16を介して電子黒板12との間で無線通信を実行し、画面の共有または操作などの画面共有処理を行ったり、ファイルの送受信を行ったりする。
また、ステップS47では、終了コマンドが有るか否かを判断する。すなわち、CPU54は、クライアント端末用の画面共有プログラムを終了するための終了コマンドがユーザ(当該クライアント端末14の操作者)によって入力されたか否かを判断する。ステップS47で“NO”の場合、つまり終了コマンドが無い場合には、処理はステップS45に戻り、画面共有処理を続ける。一方、ステップS47で“YES”の場合、つまり終了コマンドが有る場合には、この全体処理を終了する。
この第1実施例によれば、電子黒板12に接続されるクライアント端末14の総台数に応じて、クライアント端末14の一部をアクセスポイント化してアクセスポイント数(つまりデータの伝送路)を増やすので、アクセスポイント装置16が輻輳状態となることを防止でき、電子黒板12と複数のクライアント端末14との間の無線接続を円滑に実行できる。
また、第1実施例によれば、コンピュータとしての性能が高いクライアント端末14を第1クライアント端末14aとして優先して選択するので、第1クライアント端末14aをアクセスポイント化しても、第1クライアント端末14aにフリーズ等の不具合が発生することを防止できる。
さらに、第1実施例によれば、各第1クライアント端末14a(つまり各グループ)における無線設定は、他の電子機器および他の第1クライアント端末14a等となるべく重複しないように選択されるので、各クライアント端末14は、電波干渉することなく、より適切に電子黒板12と無線通信を行うことができる。
[第2実施例]
第2実施例の無線通信システム10は、サーバ(電子黒板12)に無線接続されているクライアント端末14の台数が変化したときに、その変化後の接続台数に応じて、アクセスポイントとして動作させる第1クライアント端末14aを追加または削減する点が、上述の第1実施例と異なる。それ以外は、第1実施例の無線通信システム10と同じであるため、第1実施例と異なる内容について説明し、重複した説明については省略することにする。
簡単に説明すると、上述の第1実施例では、画面共有プログラムが起動されると、先ず、接続中のクライアント端末14の台数を検出し、その後は、クライアント端末14の接続台数に変動はないものとして画面共有処理などを実行するようにした。これに対して、第2実施例では、画面共有プログラムの起動中は接続中のクライアント端末14の台数を所定時間毎に検出する(つまり常時監視しておく)。そして、クライアント端末14の接続台数が変化したときに、その変化後の接続台数に応じて、第1クライアント端末14aを追加選択または選択解除するよう属性の設定変更を行う。この際、既に形成されている第1クライアント端末14aおよび第2クライアント端末14bのグループの組分けは、その変更が最小限となるようにされることが好ましい。
たとえば、電子黒板12に無線接続されるクライアント端末14の台数が増えた(追加接続された)場合であって、図5に示すように第2クライアント端末14bが所定台数に満たない(空きがある)グループが有るときには、新たに無線接続されたクライアント端末14は、その空きが有るグループに第2クライアント端末14bとして組分けされる。一方、電子黒板12に無線接続されるクライアント端末14の台数が増えた場合であって、第2クライアント端末14bが所定台数に満たないグループが無いときには、たとえば、全ての第2クライアント端末14bの中で、最もコンピュータとして性能の高いものを第1クライアント端末14aとして属性変更(追加選択)する。そして、新たに無線接続されたクライアント端末14は、追加選択した第1クライアント端末14aとで新たなグループを形成するようにされる。
また、たとえば、電子黒板12に無線接続されるクライアント端末14の台数が減った(接続解除された)場合であって、かつその減ったクライアント端末14が第1クライアント端末14aである場合には、全ての第2クライアント端末14bの中で、最もコンピュータとして性能の高いものを第1クライアント端末14aとして追加選択する。そして、その減った第1クライアント端末14aと無線接続されていた各第2クライアント端末14bは、追加選択した第1クライアント端末14aと新たなグループを形成するようにされる。
さらに、たとえば、電子黒板12に無線接続されるクライアント端末14の台数が減った場合であって、かつその減ったクライアント端末14が所定台数以上の第2クライアント端末14bである場合には、全ての第1クライアント端末14aの中で、最もコンピュータとして性能の低い第1クライアント端末14aの、第1クライアント端末14aとしての属性設定を解除(選択解除)し、第2クライアント端末14bに属性変更する。そして、その選択解除された第1クライアント端末14aと無線接続されていた各第2クライアント端末14bは、空きが有るグループに第2クライアント端末14bとして組分けされる。一方、電子黒板12に無線接続されるクライアント端末14の台数が減った場合であって、かつその減ったクライアント端末14が所定台数未満の第2クライアント端末14bである場合には、たとえば、第2クライアント端末14bが減るだけで、他のグループ構成は変更しないようにされる。
図12は、第2実施例の無線通信システム10において、電子黒板12のCPU30が実行するサーバ側の無線通信処理の一例を示すフロー図である。
具体的には、図12に示すように、電子黒板12のCPU30は、図10のステップS19に続いて、ステップS51の処理を実行する。つまり、CPU30は、ステップS19で“NO”の場合、ステップS51において、接続中のクライアント端末14の台数に変化が有るか否かを判断する。ステップS51で“NO”の場合、つまり接続中のクライアント端末14の台数に変化が無い場合には、そのままステップS17に戻る。一方、ステップS51で“YES”の場合、つまり接続中のクライアント端末14の台数に変化がある場合には、ステップS5に戻る。なお、続くステップS5〜S15の処理においては、第1クライアント端末14aの選択および第1クライアント端末14aと第2クライアント端末14bとの組分け等を1からやり直してもよいが、上述のように、既に形成されている第1クライアント端末14aおよび第2クライアント端末14bのグループの組分けは、その変更が最小限となるようにされる。
この第2実施例によれば、第1実施例と同様に、電子黒板12に接続されるクライアント端末14の総台数に応じて、クライアント端末14の一部をアクセスポイント化してデータの伝送路を増やすので、アクセスポイント装置16が輻輳状態となることを防止でき、電子黒板12と複数のクライアント端末14との間の無線接続を円滑に実行できる。
また、第2実施例によれば、無線通信システム10の動作中にクライアント端末14の台数が変化したときにも適切に対応できる。
[第3実施例]
第3実施例の無線通信システム10は、第2クライアント端末14bのアクセス先が電子黒板12ではなく、第1クライアント端末14aである点が、上述の第1実施例と異なる。それ以外は、第1実施例の無線通信システム10と同じであるため、第1実施例と異なる内容について説明し、重複した説明については省略することにする。
簡単に説明すると、上述の第1実施例では、第2クライアント端末14bのアクセス先は、第1クライアント端末14aおよびアクセスポイント装置16を介した、電子黒板12であった。これに対して、第3実施例では、図13に示すように、第2クライアント端末14bのアクセス先は、第1クライアント端末14aである。この際、第1クライアント端末14aは、第2サーバとして機能し、データの流れ自体が第1クライアント端末14aによって中継される。つまり、電子黒板12との間のデータ通信は、第1クライアント端末14aのみが行い、第2クライアント端末14bは、同じグループに組分けされた第1クライアント端末14aとの間でデータ通信を行う。
この第3実施例よれば、電子黒板12にアクセスするクライアント端末14の台数自体を減らすことによって、電子黒板12の制御装置24(サーバ)にかかる負荷を下げることができる。このような効果は、特に、電子黒板12から各クライアント端末14にファイルデータを配布する場合に大きく発揮される。
ここで、この第3実施例のように、第1クライアント端末14aが第2サーバとして機能する場合には、第1クライアント端末14aは、必ずしもアクセスポイントとして動作する必要はなく、第1クライアント端末14aのAP機能はオフのままでもよい。この場合、電子黒板12のCPU30は、第1クライアント端末14aをアクセスポイントとして動作させるための属性設定を行う代わりに、第1クライアント端末14aを第2サーバとして動作させるための属性設定を行う。
なお、上述の各実施例では、無線通信システムの一例として、電子黒板を含む電子黒板システムを示したが、この発明に係る無線通信システムは、必ずしも電子黒板を含む必要はない。つまり、この無線通信システムにおけるサーバは、電子黒板が備えるコンピュータに限定されず、大型のディスプレイまたはタッチパネル等を備えない汎用のパーソナルコンピュータ等であってもよい。
さらに、上述の実施例で挙げた具体的な数値、画面構成等は一例であり、実際の製品に応じて適宜変更することが可能である。