(第1実施形態)
[システム構成]
図1は、本実施形態に係る情報処理システムのシステム構成図である。
この情報処理システム1は、端末2、ユニットPC(Personal Computer)3、及び情報処理装置4を備える。
このうち、端末2は、一つの空間で共同作業を行う各ユーザが操作するスマートフォン、ノート型PC、及びタブレット端末等であり、ネットワーク5を介して情報処理装置4に接続される。ネットワーク5は特に限定されない。例えば、無線LANやBluetooth(登録商標)等により端末2と情報処理装置4とを接続し得る。
ユニットPC3は、ネットワーク5に接続されたPCであり、カメラ6やプロジェクタ7を制御する。この例では、赤外線ペン8のペン先から出る赤外線をカメラ6で捕捉し、そのペン先の軌跡をユニットPC3が取得することにより、ユーザが赤外線ペン8で描いた文字や図形等の描画情報をユニットPC3が生成する。
また、プロジェクタ7は、各ユーザが共同作業を行うための画面を壁に投影するデバイスである。なお、プロジェクタ7に代えてタッチパネルディスプレイ9を使用してもよい。その場合は、タッチパネルディスプレイ9にユーザが指やペンを触れることによりシステムに入力を行うため、カメラ6と赤外線ペン8は不要となる。
一方、情報処理装置4は、ネットワーク5を介して端末とユニットPCに接続されたサーバ等のコンピュータであり、各ユーザの共同作業に有用な様々なアプリケーションプログラムを実行する。そのアプリケーションプログラムを実行することでプロジェクタ7から様々なオブジェクトが壁に表示され、その場にいる各ユーザがオブジェクトを見ながら作業を行うことができる。なお、以下では、このように情報処理装置4が実行するアプリケーションプログラムのことを単にサーバアプリとも呼ぶ。
図2は、この情報処理システム1について模式的に示す図である。
図2の例では、複数のユーザが集まる空間の側壁10aにカメラ6を設置し、机11の上面をカメラ6で撮像する。この状態でユーザが机11の上面に赤外線ペン8で文字や図形を描くことにより、赤外線ペン8から出た赤外光Rがカメラ6で捕捉され、ユニットPC3(図1参照)が文字や図形等の描画情報を取得できる。なお、机11に画面を投影するためのプロジェクタを設け、机11を表示画面として利用してもよい。更に、プロジェクタ7に代えてタッチパネルディスプレイ9(図1参照)を用いる場合には、前述のようにカメラ6は不要となる。
また、この空間の天井面10bにはプロジェクタ7が設置されており、そのプロジェクタによって空間の前壁10cに画面12が大きく映し出される。なお、前壁10cを撮像するためのカメラを設け、前壁10cにユーザがペンで描いた筆跡をそのカメラで捕捉し、その筆跡をシステムに入力するようにしてもよい。
その画面12には、サーバアプリによって様々なオブジェクト13が表示される。以下では、サーバアプリを実行することにより画面12に表示されるオブジェクトのことをアプリオブジェクト13と呼ぶ。アプリオブジェクト13は、第2のオブジェクトの一例であって、テキストや画像等のデータを入力可能なオブジェクトである。
情報処理装置4が実行するサーバアプリには様々あるが、以下ではデータを入力することが可能なアプリオブジェクト13を表示するサーバアプリを想定する。そのようなサーバアプリとしてデジタル付箋がある。デジタル付箋は、ユーザがテキストのデータを入力したときに、付箋を表す矩形の内側にそのテキストを表示するアプリケーションプログラムである。
アプリオブジェクト13が表示されている状態でユーザが赤外線ペン8でテキストを書くと、そのテキストがアプリオブジェクト13内に表示されることになる。
このように赤外線ペン8でもアプリオブジェクト13にデータを入力することは可能であるが、本実施形態では入出力の手段の拡充を図るために、以下のように端末2からアプリオブジェクト13にデータを入力可能にする。
[入出力制御方法]
図3は、本実施形態に係る入出力制御方法について説明するための模式図である。
図3に示すように、画面12には、前述のアプリオブジェクト13の他に端末オブジェクト17も表示される。端末オブジェクト17は、第1のオブジェクトの一例であって、複数の端末2と一対一に対応したオブジェクトである。ここでは、二つの端末2の一方をユーザUAが操作し、他方の端末2をユーザUBが操作するものとする。
本実施形態では、アプリオブジェクト13と端末オブジェクト17との位置関係を利用して、端末2とアプリオブジェクト13との間における入出力を制御する。
まず、ユーザUAの操作に応じて情報処理装置4が行う入出力の制御について説明する。
(ステップa1)
最初に、ユーザUAが、自身の端末2に対応した端末オブジェクト17を画面12上で移動させることにより、その端末オブジェクト17をアプリオブジェクト13に重ねる。なお、アプリオブジェクト13と端末オブジェクト17は各々の一部のみが重なっていればよく、両者を完全に重ねる必要はない。また、画面12上で端末オブジェクト17を移動させるには、例えば赤外線ペン8で端末オブジェクト17をドラッグすればよい。
情報処理装置4は、このようにアプリオブジェクト13と端末オブジェクト17との重なりを検知すると、端末2からアプリオブジェクト13へのデータの転送を許可する。
(ステップa2)
次に、ユーザUAが、自身の端末2にテキストを入力する。例えば、端末2がスマートフォンである場合には、端末2のソフトウェアキーボードを利用してユーザUAが端末2にテキストを入力する。この例では、テキストとして「Agenda」をユーザUAが入力する。
(ステップa3)
そして、端末2から情報処理装置4にテキスト「Agenda」が転送され、そのテキスト「Agenda」がアプリオブジェクト13に入力される。
このような入出力制御方法によれば、ユーザUAが端末2の入力機能を利用してアプリオブジェクト13にデータを入力できる。そのため、アプリオブジェクト13への入力デバイスとして端末2を活用でき、情報処理システム1にデータを入力するデバイスを拡充できる。更に、ユーザUAが使い慣れた端末2を使用できることで、ユーザUAにとって使い勝手がいい情報処理システム1を提供できる。
しかも、アプリオブジェクト13への入力が可能となるのはアプリオブジェクト13と端末オブジェクト17とが重なっている場合のみであり、両者が重なっていない場合には端末2からアプリオブジェクト13に入力ができない。そのため、アプリオブジェクト13から端末オブジェクト17を離すことにより、端末2とアプリオブジェクト13との間のデータの転送経路を簡単に遮断できる。その結果、ユーザUAが、アプリオブジェクト13への入力以外の用途に端末2を使用することができ、情報処理システム1の利便性を更に高めることができる。
更に、端末2と端末オブジェクト17とが一対一に対応しているため、ユーザUAが入力可能なアプリオブジェクト13を、ユーザUAに対応した端末オブジェクト17に重なっているアプリオブジェクト13に限定できる。これにより、例えばユーザUAが、他人であるユーザUBの端末オブジェクト17に重なっているアプリオブジェクト13に誤ってデータを入力してしまうのを防止できる。
なお、この例では端末2の入力機能としてソフトウェアキーボードを利用したが、以下のように端末2のテキスト変換機能を利用してデータの入力を行ってもよい。これについて、ユーザUBの操作を例にしながら説明する。
(ステップb1)
最初に、ユーザUBが、自身の端末2に対応した端末オブジェクト17をアプリオブジェクト13に重ねる。これにより、ステップa1と同様に、情報処理装置4が、端末2からアプリオブジェクト13へのデータの転送を許可する。
(ステップb2)
次に、ユーザUBが自身の端末2に音声を入力する。これにより、端末2のテキスト変換機能により音声がテキストに変換される。ここでは、変換によってテキスト「I will readjust the meeting schedule.」が生成されたものとする。
(ステップb3)
そして、端末2から情報処理装置4にテキスト「I will readjust the meeting schedule.」が転送され、そのテキスト「I will readjust the meeting schedule.」がアプリオブジェクト13に入力される。
このような入出力制御方法によれば、端末2のテキスト変換機能を利用してアプリオブジェクト13にデータを入力できるため、アプリオブジェクト13へのデータの入力手段を更に拡充することができる。
図3の例では端末2としてスマートフォンを利用したが、以下のように端末2としてノート型PCを利用してもよい。
図4は、端末2としてノート型PCを利用する場合の入出力制御方法について説明するための模式図である。
図4に示すように、この場合は、ユーザUが端末2の物理キーボードを操作することにより、端末2にテキスト「Next Agenda」を入力する。このとき、画面12上でアプリオブジェクト13と端末オブジェクト17とが重なっていれば、端末オブジェクト17にテキスト「Next Agenda」が入力される。
なお、端末2からアプリオブジェクト13にテキストを転送するタイミングは特に限定されない。例えば、端末2に一文字を入力し終えたタイミングでその文字をアプリオブジェクト13に転送してもよい。また、端末2に複数の文字を入力した後に送信ボタン2xをユーザUが押下することにより、これらの文字をまとめてアプリオブジェクト13に転送してもよい。
また、端末オブジェクト17の形態も特に限定されない。
図5は、端末オブジェクト17の形態の別の例について模式的に説明するための図である。
図5に示すように、この例では、端末2にインストールされている複数の端末アプリを表すアイコン17a、17b、17cを端末オブジェクト17の一部として表示する。なお、以下では、端末2にインストールされているアプリケーションプログラムのことを単に端末アプリと呼ぶ。
例えば、アイコン17aは、音声を入力可能な端末アプリ「アプリA」を表すアイコンである。また、アイコン17bは、画面を入力可能な端末アプリ「アプリB」を表すアイコンである。そして、アイコン17cは、テキストを入力可能な端末アプリ「アプリC」を表すアイコンである。
このようにアイコン17a、17b、17cを端末オブジェクト17に表示する場合の入出力制御方法について、ユーザUの操作を例にしながら説明する。なお、以下の説明では、アプリオブジェクト13がデジタル付箋である場合を想定する。
(ステップc1)
まず、ユーザUが、「アプリC」を表すアイコン17cを端末オブジェクト17に重ねる。
このとき、情報処理装置4は、「アプリC」とアプリオブジェクト13の各々に同一形式のデータを入力することができる場合には、端末2からアプリオブジェクト13へのデータの転送を許可する。この例では、アプリオブジェクト13はテキストを入力可能なデジタル付箋であり、「アプリC」もテキストを入力可能な端末アプリである。よって、情報処理装置4は、端末2からアプリオブジェクト13へのデータの転送を情報処理装置4が許可する。
一方、「アプリA」に入力される音声は、デジタル付箋であるアプリオブジェクト13には入力することができない。よって、「アプリA」を表すアイコン17aが端末オブジェクト17に重ねられた場合は、情報処理装置4は、端末2からアプリオブジェクト13へのデータの転送を許可しない。
(ステップc2)
次に、ユーザUが端末2の「アプリC」を起動し、起動後に「アプリC」にテキストを入力する。端末2がスマートフォンである場合には、端末2のソフトウェアキーボードを利用してユーザUが「アプリC」にテキストを入力すればよい。また、この例では、テキストとして「Agenda」をユーザUが入力する。
(ステップc3)
そして、端末2から情報処理装置4にテキスト「Agenda」が転送され、そのテキスト「Agenda」がアプリオブジェクト13に入力される。
この入出力制御方法によれば、アプリオブジェクト13におけるのと同一形式のデータを入力可能な「アプリC」がアプリオブジェクト13に重ねられた場合のみ端末2からアプリオブジェクト13へのデータの転送を許可する。よって、アプリオブジェクト13に入力することができない形式のデータをユーザUが端末2に入力するのを防止できる。
[機能構成]
次に、本実施形態に係る情報処理システム1の各部の機能構成について説明する。
<端末2の機能構成>
図6は、本実施形態に係る端末2の機能構成図である。
図6に示すように、端末2は、入力部21、端末機能管理部22、端末連携部23、アプリケーション管理部24、及び送受信部25を有する。
このうち、入力部21は、端末2に各種のデータを入力する処理部である。例えば、タッチパネル、マイク、及びカメラ等により入力部21を実現できる。
端末機能管理部22は、入力部21から入力されたデータを取得すると共に、端末2が備える入出力機能の一覧を管理する処理部である。例えば、端末2がキーボード、マイク、カメラ、及び加速度センサの各入力機能と、スピーカによる出力機能とを備えている場合を考える。この場合の入出力機能の一覧は、「キーボード」、「マイク」、「カメラ」、「加速度センサ」、及び「スピーカ」となる。
端末機能管理部22は、これらの入出力機能の一覧を端末機能情報として管理する。
アプリケーション管理部24は、端末2にインストールされている端末アプリの一覧を示す端末アプリ情報を管理する処理部である。
端末連携部23は、端末機能管理部22に対して端末情報を要求し、その端末情報を取得する。また、端末連携部23は、アプリケーション管理部24に対して端末アプリ情報を要求し、その端末アプリ情報を取得する。更に、端末連携部23は、入力部21に入力されたデータを端末機能管理部22を介して取得し、それを送受信部25に転送する。
この例では、端末連携部23は、端末アプリ情報と端末機能情報とを含む連携情報を生成する。その連携情報には、情報処理装置4が端末2を認証するときにユーザが端末2に入力したパスワードも含まれる。
送受信部25は、端末連携部23に対して種々の情報を要求し、その情報をネットワーク5に送信する処理部である。そのような情報としては、入力部21から入力されたデータや、端末連携部23が生成した連携情報がある。
<ユニットPC3の機能構成>
図7は、本実施形態に係るユニットPC3の機能構成図である。
図7に示すように、ユニットPC3は、センサ認識部31、表示部32、及び送受信部33を有する。
このうち、センサ認識部31は、カメラ6で捕捉した赤外線ペン8の軌跡を認識して、ユーザが描画した文字や図形等の描画情報を生成する処理部である。また、表示部32は、情報処理装置4が生成した種々の表示情報に応じたオブジェクトをプロジェクタ7に表示させる処理を行う処理部である。なお、プロジェクタ7に代えてタッチパネルディスプレイ9を使用する場合は、タッチパネルディスプレイ9にユーザが指やペンを触れることでシステムに入力を行うため、前述のようにカメラ6と赤外線ペン8は不要となる。また、この場合は、表示部32は、情報処理装置4が生成した種々の表示情報に応じたオブジェクトをタッチパネルディスプレイ9に表示させる処理を行う。更に、この場合は、タッチパネルディスプレイ9においてユーザの指等が触れた部位をセンサ認識部31が認識することにより、タッチパネルディスプレイ9にユーザが描画した文字や図形等の描画情報をセンサ認識部31が生成する。
送受信部33は、センサ認識部31が生成した描画情報をネットワーク5を介して情報処理装置4に送信する処理部である。更に、送受信部33は、情報処理装置4が生成した各種の表示情報をネットワーク5を介して受信し、その表示情報をプロジェクタ7に送信する。
<情報処理装置4の機能構成>
図8は、本実施形態に係る情報処理装置4の機能構成図である。
図8に示すように、情報処理装置4は、位置認識部41、アプリケーション管理部42、端末機能割当部43、表示情報生成部44、端末連携部45、送受信部46、及び記憶部47を備える。
このうち、位置認識部41は、センサ認識部31(図7参照)が生成した描画情報を送受信部46から取得する。そして、位置認識部41は、その描画情報に基づいて赤外線ペン8のペン先の位置を示す位置情報を生成し、その位置情報をアプリケーション管理部42に通知する。
更に、位置認識部41は、アプリオブジェクト13と端末オブジェクト17とが画面12上で重なっているかどうかを検知する。そして、両者が重なっていることを検知した場合には、位置認識部41は、アプリオブジェクト13と端末オブジェクト17との重なりを検知したことを示す検知情報を生成し、その検知情報をアプリケーション管理部42に通知する。
アプリケーション管理部42は、種々のアプリを実行する処理部であって、管理部42aと許可部42bとを有する。
このうち、管理部42aは、情報処理装置4にインストールされているサーバアプリを管理する処理部である。管理部42aがそのサーバアプリを実行することにより、画面12にアプリオブジェクト13が表示されることになる。更に、管理部42aは、サーバアプリの一覧を示すサーバアプリ情報を作成し、それを端末機能割当部43に通知する。
また、管理部42aは、赤外線ペン8の位置を示す位置情報を位置認識部41から取得し、ユーザが手書きで描いた文字をサーバアプリに入力する。例えば、サーバアプリがデジタル付箋の場合には、ユーザが描いた文字がそのデジタル付箋に入力されることになる。
更に、管理部42aは、端末2にインストールされている端末アプリの一覧を端末機能割当部43から取得し、これらの端末アプリを管理する。
許可部42bは、端末2の認証が成功したことを示す認証成功情報を端末連携部45から取得した場合に、端末2とアプリオブジェクト13との間におけるデータの転送を許可する。
例えば、許可部42bは、アプリオブジェクト13と端末オブジェクト17とが画面12上で予め定められた位置関係にあるかを判断する。そして、両者がその位置関係にある場合に、許可部42bは、管理部42aが実行しているサーバアプリと端末2との間におけるデータの転送路を確立することにより、端末2とアプリオブジェクト13との間におけるデータの転送を許可する。
データの転送を許可するときのアプリオブジェクト13と端末オブジェクト17との位置関係は特に限定されない。この例では、許可部42bは、位置認識部41から前述の検知情報を取得し、その検知情報に基づいてアプリオブジェクト13と端末オブジェクト17とが図3のように重なっているかを判断する。そして、両者が重なっている場合には、許可部42bは、端末2とアプリオブジェクト13との間におけるデータの転送を許可する。
許可部42bによるデータの転送の許可の方法も特に限定されない。この例では、端末2からアプリオブジェクト13へのデータの転送を許可する関数としてallow_input()を用意する。また、アプリオブジェクト13から端末2へのデータの転送を許可する関数としてallow_output()を予め用意しておく。
そして、許可部42bが関数allow_input()を実行することにより端末2からアプリオブジェクト13へのデータの転送を許可する。また、許可部42bが関数allow_output()を実行することによりアプリオブジェクト13から端末2へのデータの転送を許可する。
なお、図5のように端末アプリのアイコン17a〜17cをアプリオブジェクト13に重ねる場合には、許可部42bは、端末2から通知された端末アプリ情報も利用する。この場合は、許可部42bは、端末アプリとアプリオブジェクト13の各々に同一形式のデータを入力できる場合に端末2からアプリオブジェクト13へのデータの転送を許可し、そうでない場合には転送を許可しない。
また、端末機能割当部43は、端末2の入力機能や出力機能をサーバアプリに割り当てる処理部である。
端末機能割当部43は、端末2の入力機能や出力機能をサーバアプリに割り当てることにより、端末2とアプリオブジェクト13との間におけるデータの転送を行う処理部である。
割り当てに際しては、端末機能割当部43は、管理部42aからサーバアプリ情報を取得すると共に、端末連携部45を介して端末2から連携情報を取得する。そして、端末機能割当部43は、サーバアプリ情報に含まれるサーバアプリと、連携情報に含まれる端末2の入力機能や出力機能を特定する。その後、端末機能割当部43は、これらの機能を、当該機能をサポートするサーバアプリに割り当てる。一例として、入力機能が「テキスト入力」である場合には、端末機能割当部43は、テキスト入力が可能な付箋等のサーバアプリに端末2の入力機能を割り当てる。
なお、図5のように端末アプリのアイコン17a〜17cを画面12に表示する場合には、端末機能割当部43は、連携情報に含まれる端末アプリを特定する。そして、端末機能割当部43は、特定した端末アプリの一覧を管理部42aに通知する。
表示情報生成部44は、前述のアプリオブジェクト13と端末オブジェクト17とを画面12に表示する表示情報を生成する処理部である。例えば、表示情報生成部44は、実行中のサーバアプリが生成した画像データを管理部42aから取得し、その画像データに基づいてアプリオブジェクト13を画面12に表示するための表示情報を生成する。なお、机11(図2参照)に画面を投影するためのプロジェクタを設けて机11を表示画面として利用する場合には、机11上の表示画面にアプリオブジェクト13と端末オブジェクト17を表示してもよい。
その表示情報には、端末オブジェクト17を画面に表示するための情報も含まれる。但し、表示情報生成部44は、許可部42bがデータの転送を許可した端末2に対応した端末オブジェクト17を画面12に表示させる表示情報を生成し、未許可の端末2に対応した端末オブジェクト17は画面12に表示させない。
なお、図5のように端末アプリのアイコン17a〜17cを画面12に表示する場合には、表示情報生成部44は、管理部42aから端末アプリの一覧を取得する。そして、表示情報生成部44は、これらの端末アプリを画面12に表示するための表示情報を生成する。
そして、このように生成された表示情報は、送受信部46からユニットPC3宛てに送信される。
端末連携部45は、端末2と情報処理装置4とを連携させる処理部であって、取得部45aと認証部45bとを有する。
このうち、取得部45aは、送受信部46を介して端末2から連携情報を取得する。その連携情報には、前述の端末アプリ情報と端末機能情報の他に、ユーザが端末2に入力したパスワードも含まれる。
更に、取得部45aは、許可部42bによって端末2の入力機能を利用したデータの転送が許可されている場合に、端末2に入力されたデータを取得し、それをアプリケーション管理部42に転送する。また、許可部42bによって端末2の出力機能を利用したデータの転送が許可されている場合には、取得部45aは、アプリケーション管理部42からデータを取得し、それを端末2に転送する。これにより、アプリケーション管理部42が管理しているサーバアプリと端末2との間でデータが転送されることになる。
そして、認証部45bは、連携情報に含まれるパスワードを利用して端末2の認証を行う。例えば、認証部45bは、自身が発行したワンタイムパスワードと、連携情報に含まれるパスワードを比較する。そして、両者が一致した場合には、認証部45bは、認証が成功したことを示す認証成功情報を端末機能割当部43に通知する。
また、送受信部46は、ネットワーク5との間で種々のデータの送受信を行う処理部である。
記憶部47は、管理部42aが生成した端末管理情報49を記憶する。
図9は、その端末管理情報49の一例を示す図である。
図9に示すように、端末管理情報49は、「端末ID」、「機能」、「端末アプリ」、及び「データの転送方向」の各々を対応づけた情報である。
このうち、「端末ID」は、複数の端末2の各々を一意に識別する識別子であり、認証部45bによる認証が成功したときに管理部42aが生成する。また、「機能」は、端末機能情報に含まれる端末2の入力機能や出力機能である。そして、「端末アプリ」は、端末アプリ情報に含まれる端末アプリである。「データの転送方向」は、端末2とアプリオブジェクト13との間でデータが転送される方向を表す。例えば、そのデータが端末2からアプリオブジェクト13に入力される場合には「データの転送方向」は「入力」となり、これとは逆方向にデータが転送される場合には「データの転送方向」は「出力」となる。
[シーケンス図]
次に、端末2とアプリオブジェクト13との間でデータが転送されるまでの処理の流れについて説明する。
図10は、本実施形態に係る入出力制御方法のシーケンス図である。
まず、ステップS1において、端末2の端末連携部23が、端末機能管理部22から端末機能情報を取得する。前述のように、端末機能情報は、端末2が備える「キーボード」や「マイク」等の入出力機能の一覧を示す情報である。
次に、ステップS2に移り、端末2の端末連携部23が、アプリケーション管理部24から端末アプリ情報を取得する。端末アプリ情報は、前述のように端末2にインストールされている端末アプリの一覧を示す情報である。
次いで、ステップS3に移り、端末2の端末連携部23が、情報処理装置4の端末連携部45に対して接続リクエストを通知する。
その通知を受けた端末連携部45の認証部45bは、ステップS4において端末2の認証を行い、その認証が成功した場合には認証成功情報を端末連携部23に返す。その認証は、前述のように認証部45bが発行したワンタイムパスワードと、ユーザが端末2に入力したパスワードとを比較することにより行い得る。
そして、認証が成功した場合には、ステップS5に移り、端末連携部23が情報処理装置4の端末機能割当部43に連携情報を通知する。その連携情報には、前述のように端末機能情報と端末アプリ情報とが含まれる。
次に、ステップS6に移り、端末機能割当部43がアプリケーション管理部42に端末情報を通知する。
そして、ユーザの操作によって、アプリオブジェクト13と端末オブジェクト17とが重なると、それを示す検知情報がステップS7においてアプリケーション管理部42に通知される。
次に、ステップS8に移り、許可部42bが、端末2とアプリオブジェクト13との間におけるデータの転送を許可する。そして、許可部42bは、データの転送が許可されたことを示す許可情報を端末2のアプリケーション管理部24に通知する。これにより、端末2は、ユーザがデータの入力を行うのを待ち受ける状態となる。
そして、ステップS9に移り、ユーザが端末2にデータを入力する。そのデータは、端末2からアプリケーション管理部42に転送され、アプリオブジェクト13内に表示される。
以上により、端末2とアプリオブジェクト13との間でデータが転送されるまでの処理を終える。
本実施形態では、ステップS4において端末2の認証が一度成功した場合には、端末2がネットワーク5に接続されている限り、その端末2に対して更に認証を行うことはない。
例えば、画面12上で端末オブジェクト17やアプリオブジェクト13が移動して、端末オブジェクト17に重なるアプリオブジェクト13が別のアプリオブジェクト13に切り替わることがある。そのような場合でも、許可部42bは、端末オブジェクト17に対応する端末2が認証済みのときは、別のアプリオブジェクト13と端末2との間におけるデータの転送を許可する。
これにより、アプリオブジェクト13に端末オブジェクト17を重ねる度に端末2の認証を行う必要がなく、認証に要する計算量を低減することができる。
[フローチャート]
次に、本実施形態に係る入出力制御方法の処理の流れについて説明する。
<連携時の処理>
図11は、端末2と連携するときの情報処理装置4の処理の流れを示すフローチャートである。
まず、ステップS21において、認証部45bが端末2の認証を行う。
そして、その認証が成功した場合にはステップS22に移り、表示情報生成部44が、端末2に対応した端末オブジェクト17(図3参照)を表示するための表示情報を生成する。これにより、画面12に端末オブジェクト17が表示されることになる。なお、その端末オブジェクト17の内側に、図5のように端末アプリに対応したアイコン17a、17b、17cを表示してもよい。
以上により、端末2と連携するときの情報処理装置4の処理を終える。
<機能を割り当てる時の処理>
図12は、端末2の機能をサーバアプリに割り当てるときの処理の流れを示すフローチャートである。
まず、ステップS22において、許可部42bが、アプリオブジェクト13と端末オブジェクト17との重なりを検知したかどうかを判断する。ここでYESと判断した場合にはステップS23に移る。
ステップS23においては、許可部42bが、既に端末2とアプリオブジェクト13との間におけるデータの転送を許可したかどうかを判断する。ここでYESと判断された場合には、既にデータの転送が可能な状態にあるため処理を終える。
一方、ステップS23においてNOと判断された場合にはステップS24に移り、許可部42bが端末2とアプリオブジェクト13との間におけるデータの転送を許可し、処理を終える。
また、ステップS22において、アプリオブジェクト13と端末オブジェクト17とが重なっていないためNOと判断された場合にはステップS25に移る。
ステップS25においては、許可部42bが、既に端末2とアプリオブジェクト13との間におけるデータの転送を許可したかどうかを判断する。ここでNOと判断された場合には、データの転送が許可されていない状態にあるため、特に処理を行わずにステップS22に戻る。
一方、ステップS25においてYESと判断された場合には、アプリオブジェクト13と端末オブジェクト17とが重なっていないにも関わらずデータの転送が許可されていることになる。
よって、この場合はステップS26に移り、許可部42bがデータの転送の許可を取り消し、処理を終える。
以上により、端末2の機能をサーバアプリに割り当てるときの処理を終える。
<端末側の入力時の処理>
図13は、端末2のソフトウェアキーボードを用いて入力を行うときの処理の流れを示すフローチャートである。
まず、ステップS31において、ユーザが端末2を操作することにより、端末2にインストールされているメモ帳等のテキスト入力アプリを起動する。
次に、ステップS32に移り、ユーザが端末2のソフトウェアキーボードを操作することにより、テキスト入力アプリに適当なテキストを入力する。
そして、ステップS33に移り、テキスト入力アプリの送信ボタンをユーザが押下することにより、端末2が情報処理装置4にテキストを送信する。なお、一文字の入力が完了する度にその文字を情報処理装置4に自動的に送信するテキスト入力アプリを利用してもよい。その場合にはテキスト入力アプリに送信ボタンがないため、ステップS33を省略してもよい。
以上により、ソフトウェアキーボードを利用して入力を行うときの処理を終える。
図14は、端末2の音声入力機能を利用して入力を行うときの処理の流れを示すフローチャートである。
まず、ステップS35において、ユーザが端末2を操作することにより、端末2にインストールされているメモ帳等のテキスト入力アプリを起動する。
次に、ステップS36に移り、ユーザが、端末2の入力モードをテキスト入力モードから音声入力モードに切り替える。
そして、ステップS37に移り、ユーザが端末2に対して発話をすることにより音声入力を行う。
その後に、ステップS38に移り、テキスト入力アプリの送信ボタンをユーザが押下することにより、端末2が情報処理装置4にテキストを送信する。なお、図13の例と同様に、一文字の入力が完了する度にその文字を情報処理装置4に自動的に送信するテキスト入力アプリを用いる場合にはステップS38を省略してもよい。
以上により、音声入力機能を利用して入力を行うときの処理を終える。
図15は、端末2の物理キーボードを用いて入力を行うときの処理の流れを示すフローチャートである。
まず、ステップS41において、ユーザが端末2を操作することにより、端末2にインストールされているメモ帳等のテキスト入力アプリを起動する。
次に、ステップS42に移り、ユーザが端末2の物理キーボードを操作することにより、テキスト入力アプリに適当なテキストを入力する。
そして、ステップS43に移り、テキスト入力アプリの送信ボタンをユーザが押下することにより、端末2が情報処理装置4にテキストを送信する。なお、一文字の入力が完了する度にその文字を情報処理装置4に自動的に送信するテキスト入力アプリを利用する場合にはステップS43を省略してもよい。以上により、物理キーボードを利用して入力を行うときの処理を終える。
[変形例]
次に、第1実施形態の変形例について説明する。
・第1例
図16(a)〜(c)は、第1例について説明するための模式図である。
図16(a)の例では、アプリオブジェクト13に入力領域13aを設ける。入力領域13aは、テキストや画像等のデータを入力するための領域であって、HTMLでアプリオブジェクト13を作成する場合にはHTMLのフレームで入力領域13aを実現できる。
なお、入力領域13aはアプリオブジェクト13の一部領域でもよいし、アプリオブジェクト13の全領域を入力領域13aとしてもよい。
また、この場合は、前述のようにアプリオブジェクト13に端末オブジェクト17を重ねることにより、端末2に入力したデータが入力領域13aに入力される。
一方、図16(b)の例では、アプリオブジェクト13に二つの入力領域13a、13bを設ける。この場合は、アプリオブジェクト13に端末オブジェクト17が重ねられたときに二つの入力領域13a、13bのどちらにデータを入力するのか任意性が残る。
そこで、この例では、許可部42bが、二つの入力領域13a、13bのうちで端末オブジェクト17に最も近い入力領域13aを選択し、その入力領域13aと端末2との間でデータの転送を許可する。これにより、二つの入力領域13a、13bのどちらと端末2との間でデータを転送すべきかの任意性を排除できる。
なお、このように入力領域13aが選択された場合、データの入力を促すプロンプトを入力領域13aに表示してもよい。そのようなプロンプトとして、以下では入力領域13aを強調表示するフォーカスを採用する。
また、ユーザが、データの入力先として入力領域13aよりも入力領域13bを選択したい場合もある。その場合は、図16(c)に示すように、例えば赤外線ペン8等でユーザが入力領域13bを選択し、入力領域13aから入力領域13bにフォーカスを移動させればよい。そして、許可部42bが、このように選択された入力領域13bと端末2との間でデータの転送を許可すればよい。
・第2例
図17は、第2例について説明するための模式図である。
この例では、複数のアプリオブジェクト13が重ねられている場合を想定する。この場合は、許可部42bは、これらのアプリオブジェクト13のうちの一つに端末オブジェクト17が重ねられたときに、全てのアプリオブジェクト13と端末2との間でデータの転送を許可する。
例えば、アプリオブジェクト13がデジタル付箋の場合に、ユーザが端末2にテキスト「abc」を入力した場合を考える。その場合には、相互に重なる全てのアプリオブジェクト13にテキスト「abc」が入力されることになる。
これにより、データの転送を複数のアプリオブジェクト13ごとに行う必要がなくなり、端末2との間でデータの転送を行う時間を短縮できる。
また、テキスト「abc」が入力されたアプリオブジェクト13を並び替えることにより、テキスト「abc」が入力されたアプリオブジェクト13を各ユーザに配布することもできる。
・第3例
図18は、第3例について説明するための模式図である。
この例では、二つの異なる端末2に対応した二つの端末オブジェクト17の各々が一つのアプリオブジェクト13に重ねられた場合を想定している。この場合は、二つの端末2のどちらとアプリオブジェクト13との間でデータの転送を行うべきかの任意性がある。
そこで、この例では、許可部42bが、二つの端末オブジェクト17のうちで最初にアプリオブジェクト13に重ねられた方を選択し、その端末オブジェクト17とアプリオブジェクト13との間でデータの転送を許可する。
これにより、二つの端末2のどちらとアプリオブジェクト13との間でデータを転送すべきかの任意性を排除できる。
・第4例
図19は、第4例について説明するための模式図である。
この例では、ユーザUが端末2のカメラを利用して静止画の撮影を行い、これにより得られた撮影画像50をアプリオブジェクト13に転送する場合を想定している。この場合は、表示情報生成部44が、アプリオブジェクト13内に撮影画像50が表示されるような表示情報を生成する。これにより、テキストだけでなく、撮影画像50を表す画像データも端末2とアプリオブジェクト13との間で転送することができ、ユーザの利便性を向上させることができる。
・第5例
図20は、第5例について説明するための模式図である。
この例では、ユーザUが端末2を傾けたり揺らしたりしたときに、それに応じた動きをアプリオブジェクト13に行わせることを想定している。この場合は、端末2に内蔵されている加速度センサを利用することにより、自装置の加速度を示す加速度データを端末2が取得する。そして、許可部42bが、端末2からアプリオブジェクト13への加速度データの転送を許可する。更に、表示情報生成部44が、アプリオブジェクト13がその加速度に応じた動きを行うように表示情報を生成する。
これにより、端末2の動きに合わせてアプリオブジェクト13も動くようになるため、アプリオブジェクト13を活用する方途を拡大することができる。
・第6例
図21は、第6例について説明するための模式図である。
この例では、ユーザUが、赤外線ペン8等でアプリオブジェクト13に「Hello」を表すテキストデータを入力した場合を想定している。この場合は、許可部42bが、アプリオブジェクト13から端末2へのテキストデータの転送を許可する。そして、端末2に端末アプリとしてインストールされているテキスト読み上げプログラムにより、そのテキストデータが音声に変換されて、端末2のスピーカから音声が出力される。
このようにアプリオブジェクト13から端末2にテキストデータを出力することで端末2を出力デバイスとして活用することができ、情報処理システム1のデータの出力先となるデバイスを拡充できる。
(第2実施形態)
本実施形態では、画面12に表示されているアプリオブジェクト13の個数が多い場合に、データを入力する入力対象のアプリオブジェクト13をユーザが簡単に選択できる入出力制御方法について説明する。
[入出力制御方法]
図22は、本実施形態に係る入出力制御方法について説明するための模式図である。なお、図22において、第1実施形態で説明したのと同じ要素には第1実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図22に示されるように、本実施形態においても、端末2の認証が成功すると、その端末2に対応した端末オブジェクト17が表示される。
但し、第1実施形態とは異なり、本実施形態では、端末2とアプリオブジェクト13との間でデータの転送を許可するために、アプリオブジェクト13が端末オブジェクト17に重ねられることを要しない。その代わり、本実施形態では、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13を、端末2との間でデータの転送を行う入力対象の候補とする。
例えば、図22においてユーザUAの端末2に対応した端末オブジェクト17を考える。この場合、枠61の内側にあるアプリオブジェクト13が、端末オブジェクト17との距離Rdが閾値L以下となる位置関係を満たすため入力対象の候補となる。一方、枠61の外側にあるアプリオブジェクト13はその位置関係を満たさないため入力対象の候補とはならない。なお、距離Rdは、アプリオブジェクト13と端末オブジェクト17との中心間距離でもよいし、これらのオブジェクト同士の最短距離でもよい。
そして、ユーザUAは、端末2を操作することにより、枠61の内側にある複数のアプリオブジェクト13のうちの一つを入力対象として選択する。入力対象の選択は、例えば、端末2のtabキー等を押下することで実現できる。
本実施形態では、このようにユーザが選択できる入力対象を枠61の内側にあるアプリオブジェクト13のみに制限するため、その制限がない場合と比較してユーザが選択可能なアプリオブジェクトの個数を低減できる。よって、枠61内の目的のアプリオブジェクト13を選択するまでにユーザが端末2のtabキー等を押下する回数を低減でき、アプリオブジェクト13を選択するときのユーザの負担を軽減できる。
また、第1実施形態と同様にアプリオブジェクト13への入力デバイスとして端末2を活用できるため、情報処理システム1にデータを入力するデバイスを拡充できる。
距離Rdに対する閾値Lは特に限定されない。但し、閾値Lが大きすぎると、枠61内に含まれるアプリオブジェクト13の個数が増えてしまい、アプリオブジェクト13を選択するときのユーザの負担軽減を図るのが難しくなる。一方、閾値Lが小さすぎると、枠61内に含まれるアプリオブジェクト13が少なくなり過ぎてしまい、ユーザが選択可能なアプリオブジェクト13が限られてしまう。これらの点に鑑みて、適度の個数のアプリオブジェクト13が枠61に含まれるように閾値Lを設定するのが好ましい。
同様に、ユーザUBに対応した端末オブジェクト17についても、枠62内において当該端末オブジェクト17との距離Rdが閾値L以下となるアプリオブジェクト13が、ユーザUBが選択可能なアプリオブジェクト13となる。
なお、各端末2が移動して枠61、62内にあるアプリオブジェクト13が切り替わることがある。その場合でも、第1実施形態と同様に、各端末2の認証が一度成功している場合には、各端末2に対して再び認証をすることなしに、各枠61、62内のアプリオブジェクト13と各端末2との間のデータの転送が許可される。
更に、第1実施形態の図5で説明したように、端末アプリに対応したアイコン17a〜17cを画面12に表示してもよい。その場合は、各アイコン17a〜17cとの距離Rdが閾値L以下となるアプリオブジェクト13が、各端末2との間でデータの転送を行う候補となる。なお、第1実施形態と同様に、アイコン17a〜17cに対応した端末アプリとアプリオブジェクト13とに同一形式のデータを入力できる場合にのみ転送を許可するのが好ましい。これにより、アプリオブジェクト13に入力することができない形式のデータをユーザが端末2に入力するのを防止することができる。
[機能構成]
次に、本実施形態に係る情報処理システムの各部の機能構成について説明する。なお、端末2とユニットPC3の各々の機能構成は第1実施形態と同じであるため、以下では情報処理装置4の機能構成についてのみ説明する。
図23は、本実施形態に係る情報処理装置4の機能構成図である。なお、図23において、第1実施形態で説明したのと同じ要素には第1実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図23に示すように、情報処理装置4は、第1実施形態で説明した位置認識部41、アプリケーション管理部42、端末機能割当部43、表示情報生成部44、端末連携部45、送受信部46、及び記憶部47を有する。この他に、情報処理装置4は、距離計算部71と候補決定部72とを有する。
このうち、位置認識部41は、画面12における端末オブジェクト17の位置を認識し、その位置を示す端末位置情報73を記憶部47に格納する。
図24は、端末位置情報73を模式的に示す図である。
図24に示すように、端末位置情報73は、端末2を識別する端末IDと、その端末2に対応した端末オブジェクト17の位置とを対応付けた情報である。図24の例では、端末オブジェクト17の位置として、画面12に設定したxy座標における端末オブジェクト17のx座標とy座標を採用する。
再び図23を参照する。
位置認識部41は、画面12におけるアプリオブジェクト13の位置を認識し、その位置を示すアプリオブジェクト位置情報を距離計算部71に通知する。
距離計算部71は、そのアプリオブジェクト位置情報と端末位置情報73とに基づいて、端末オブジェクト17とアプリオブジェクト13との距離Rdを計算する処理部である。
候補決定部72は、距離計算部71が計算した距離Rdが閾値L以下となるアプリオブジェクト13の各々を端末2との間でデータを転送する候補とし、その候補をアプリケーション管理部42の許可部42bに通知する。閾値Lは、記憶部47における距離情報74に予め格納される。
図25は、その距離情報74について模式的に示す図である。
図25に示すように、距離情報74は、距離Rdに対する閾値Lを記憶した情報である。
再び図23を参照する。
候補決定部72は、更にオブジェクト管理情報75を記憶部47に格納する。
図26は、オブジェクト管理情報75を模式的に示す図である。
図26に示すように、オブジェクト管理情報75は、候補とした各アプリオブジェクト13と端末2とを対応付けた情報である。図25の例では、アプリオブジェクト13を一意に識別する識別子obj1、obj2、…を候補決定部72が付与する。そして、これらのアプリオブジェクト13の画面12上での位置を候補決定部72がオブジェクト管理情報75に格納する。なお、その位置は、例えば画面12に設定したxy座標系におけるx座標とy座標である。
また、この例では、候補決定部72が、候補とした各アプリオブジェクト13にオブジェクト選択フラグを設定する。オブジェクト選択フラグは、アプリオブジェクト13がデータの入力を受け付ける状態にあるかどうかを示すフラグである。
例えば、オブジェクト選択フラグが「1」のアプリオブジェクト13には入力を促すフォーカスが表示されており、そのアプリオブジェクト13にデータを入力することができる。一方、オブジェクト選択フラグが「0」のアプリオブジェクト13は、データの入力を受け付ける状態になく、データを入力することができない。
再び図23を参照する。
端末連携部45は、第1実施形態で説明した取得部45aと認証部45bの他に、受付部45cを有する。受付部45cは、候補決定部72によって候補とされた複数のアプリオブジェクト13のうちの一つを入力対象として選択するオブジェクト選択要求を端末2から受け付ける処理部である。例えば、ユーザが端末2を操作することにより、端末2から情報処理装置4にそのオブジェクト選択要求が通知される。
そのオブジェクト選択要求は、端末連携部45から候補決定部72に通知される。その通知を受けた候補決定部72は、前述のオブジェクト管理情報75のオブジェクト選択フラグを更新する。例えば、候補決定部72は、選択通知で選択されたアプリオブジェクト13のオブジェクト選択フラグを「1」にし、それ以外のオブジェクト選択フラグを「0」にする。
アプリケーション管理部42の許可部42bは、候補決定部72から通知された候補のうち、オブジェクト選択フラグが「1」のアプリオブジェクト13に対して端末2との間でデータの転送を許可する。なお、オブジェクト選択フラグが「0」のアプリオブジェクト13に対しては、許可部42bはデータの転送を許可しない。
候補決定部72が許可部42bに通知する候補は、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13である。本実施形態では、そのような位置関係を満たすアプリオブジェクト13のうち、上記のようにオブジェクト選択フラグが「1」のアプリオブジェクト13に対して、許可部42bがデータの転送を許可することになる。
[端末2の操作方法]
次に、本実施形態における端末2の操作方法について説明する。
図27及び図28は、本実施形態における端末2の操作方法について説明するための模式図である。
図27に示すように、この例では、ユーザUAの端末2に、画面12を縮小したミニチュア画面80が表示される。端末2には、更に矢印キー81、確定キー82、及び次移動キー83も表示される。
この状態では、枠61の内側にあるアプリオブジェクト13が端末2との間でデータの転送を行う候補となる。なお、画面12に枠61を表示するか否かは特に限定されない。但し、表示情報生成部44が、このように候補とそれ以外のアプリオブジェクト13とを分ける枠61を表示する表示情報を生成することにより、選択可能なアプリオブジェクト13をユーザUAが把握することができる。
また、枠61の内側にあるアプリオブジェクト13のうち、オブジェクト選択フラグ(図26参照)が「1」となっているものには、データの入力をユーザUAに促すプロンプトが表示される。そのようなプロンプトとして、例えばアプリオブジェクト13を強調表示するフォーカスを採用し得る。
そのフォーカスを移動するには、図28に示すように次移動キー83を押下すればよい。
また、図28の状態でユーザが確定キー82を押下すると、フォーカスが表示されているアプリオブジェクト13を入力対象として選択するオブジェクト選択要求が端末2から情報処理装置4に通知される。なお、このように確定キー82の押下を契機とするのではなく、アプリオブジェクト13にフォーカスが表示された時点で、そのアプリオブジェクト13を入力対象として選択するオブジェクト選択要求を自動的に端末2から情報処理装置4に通知してもよい。
図29は、ユーザUAの他に、ユーザUBの端末2に対応する端末オブジェクト17が画面12に表示されている場合を例示する図である。
この場合は、枠62の内側にあるアプリオブジェクト13がユーザUBの端末2との間でデータの転送を行う候補となる。
また、枠62内で、フォーカスを移動させるには、ユーザUBが端末2の次移動キー83(図28参照)を押下すればよい。これにより、枠62の内側でフォーカスが移動していき、入力を行いたいアプリオブジェクト13をユーザUBが選択することができる。
次に、画面12で端末オブジェクト17を移動させる場合について説明する。
図30は、画面12で端末オブジェクト17を移動させる方法について説明するための模式図である。
ユーザの中には、自身の端末オブジェクト17を画面12内で移動させたいと考えるユーザもいる。その場合には、図30に示すように、端末オブジェクト17の移動先を向いた矢印キー81をユーザが押下する。これにより、端末オブジェクト17の移動を要求する移動要求が端末2から情報処理装置4に通知される。そして、その通知を受けた表示情報生成部44が、画面12上で端末オブジェクト17が移動するように表示情報を更新し、画面12上で端末オブジェクト17が移動することになる。
また、このような端末オブジェクト17の移動に伴い枠61も移動し、枠61内にあるアプリオブジェクト13も変わっていく。なお、画面12に表示されている端末オブジェクト17を赤外線ペン8などの入力デバイスで直接移動させてもよい。
これにより、ユーザUAが選択可能なアプリオブジェクト13を変更することができ、画面12内にあるアプリオブジェクト13のうちでユーザUAが入力を希望するアプリオブジェクト13を選択することが可能となる。
[フローチャート]
次に、本実施形態に係る入出力制御方法の処理の流れについて説明する。
<入力対象の候補を抽出するときの処理>
図31は、入力対象の候補から一つを抽出するときの処理の流れを示すフローチャートである。
まず、ステップS51において、位置認識部41が、画面12における端末オブジェクト17の位置を認識し、その位置を示す端末位置情報73を記憶部47に格納する。
次に、ステップS52に移り、候補決定部72が、距離計算部71が計算した距離Rdが閾値L以下となるアプリオブジェクト13の各々を、端末2との間でデータを転送する入力対象の候補として抽出する。
次いで、ステップS53に移り、候補決定部72が、抽出したアプリオブジェクト13から入力対象を一つ適宜選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図26参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。また、そのアプリオブジェクト13にフォーカスが表示され、そのアプリオブジェクト13が端末2からデータの入力を待ち受ける状態となる。
以上により、入力対象の候補から一つを抽出するときの処理を終える。
<端末オブジェクトが移動したときの処理>
図32は、端末オブジェクト17が移動したときの処理の流れを示すフローチャートである。
まず、ステップS55において、位置認識部41が、端末オブジェクト17が動いたかどうかを判断する。ここで、NOと判断された場合には処理を終える。
一方、ステップS55でYESと判断された場合にはステップS56に移る。
ステップS56においては、位置認識部41が、端末オブジェクト17の位置を示す端末位置情報73を更新する。このように更新すると、端末オブジェクト17との距離Rdが閾値L以下となるアプリオブジェクト13も変わるため、端末2との間でデータを転送する候補のアプリオブジェクト13が変わる。
そこで、次のステップS57においては、距離計算部71が、更新された端末位置情報73を利用して、端末オブジェクト17とアプリオブジェクト13との距離Rdを再計算する。
そして、候補決定部72が、距離Rdが閾値L以下となったアプリオブジェクト13を新たに抽出し、端末2との間でデータを転送する候補を更新する。
次いで、ステップS58に移り、候補決定部72が、抽出したアプリオブジェクト13から入力対象を一つ適宜選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図26参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。そして、そのアプリオブジェクト13にフォーカスが表示され、入力対象となるアプリオブジェクト13が更新されることになる。
以上により、端末オブジェクト17が移動したときの処理を終える。
<オブジェクト選択要求を受けたときの処理>
図33は、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13のうちの一つを入力対象として選択するオブジェクト選択要求を端末2から受けたときの処理の流れを示すフローチャートである。
まず、ステップS61において、受付部45cが端末2からオブジェクト選択要求を受け付ける。
前述のように、オブジェクト選択要求は、確定キー82の押下(図28参照)や、アプリオブジェクト13にフォーカスが表示されたことを契機として受付部45cに通知される。
次いで、ステップS62に移り、候補決定部72が、そのオブジェクト選択要求に対応したアプリオブジェクト13を選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図26参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。そして、そのアプリオブジェクト13にフォーカスが表示され、入力対象となるアプリオブジェクト13が更新されることになる。
以上により、オブジェクト選択要求を受けたときの処理を終える。
(第3実施形態)
第2実施形態では、図30に示したように、画面12上で端末オブジェクト17を動かしたときに、端末オブジェクト17と各アプリオブジェクト13との距離Rdを距離計算部71が再計算した。本実施形態では、そのような再計算を不要とすることにより、計算量を低減できる入出力制御方法について説明する。
[入出力制御方法]
図34は、本実施形態に係る入出力制御方法について説明するための模式図である。なお、図34において、第1実施形態や第2実施形態で説明したのと同じ要素にはこれらの実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図34に示すように、本実施形態では、画面12上の全てのアプリオブジェクト13を予め複数のクラスタC01〜C04に分ける。
そして、これらのクラスタC01〜C04のうち、端末オブジェクト17に最も近いクラスタC01に属する各々のアプリオブジェクト13を、端末2との間でデータを転送する候補とする。
これによれば、候補を抽出するために各アプリオブジェクト13と端末オブジェクト17との距離を算出する必要がないため、第2実施形態よりも計算量を低減することができる。
また、第1実施形態や第2実施形態と同様にアプリオブジェクト13への入力デバイスとして端末2を活用できるため、情報処理システム1にデータを入力するデバイスを拡充することもできる。
[機能構成]
次に、本実施形態に係る情報処理システムの各部の機能構成について説明する。なお、端末2とユニットPC3の各々の機能構成は第1実施形態と同じであるため、以下では情報処理装置4の機能構成についてのみ説明する。
図35は、本実施形態に係る情報処理装置4の機能構成図である。なお、図35において、第1実施形態や第2実施形態で説明したのと同じ要素にはこれらの実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図35に示すように、情報処理装置4は、第1実施形態で説明した位置認識部41、アプリケーション管理部42、端末機能割当部43、表示情報生成部44、端末連携部45、送受信部46、及び記憶部47を有する。この他に、情報処理装置4は、クラスタリング部91、距離計算部92、及び候補決定部93を備える。
このうち、クラスタリング部91は、複数のアプリオブジェクト13の各々を複数のクラスタC01〜C04に分ける処理部である。このようにクラスタC01〜C04に分ける際、クラスタリング部91は、記憶部47に格納されている閾値情報94とクラスタ数情報95とを参照する。
図36(a)は、閾値情報94を模式的に示す図である。
図36(a)に示すように、閾値情報94は、画面12に表示されている全てのアプリオブジェクト13の総数の閾値Tを記憶した情報である。その総数が閾値T以上の場合に、クラスタリング部91が、前述のようにアプリオブジェクト13の各々を複数のクラスタに分ける。
閾値Tは、画面12内のアプリオブジェクト13の総数が、ユーザがアプリオブジェクト13を選択するのが困難になる程度に多いかという観点から予め決定される。図36(a)の例では、アプリオブジェクト13の総数が36個以上の場合にクラスタ分けを行う。
一方、画面12に表示されている全てのアプリオブジェクト13の総数が閾値T未満の場合には、クラスタリング部91はクラスタ分けを行わない。この場合には、候補決定部93が、第2実施形態の方法で入力対象のアプリオブジェクト13を決定することになる。
図36(b)は、クラスタ数情報95を模式的に示す図である。
図36(b)に示すように、クラスタ数情報95は、クラスタ数Ncの値を格納した情報である。クラスタ数Ncはクラスタの個数であり、この例では全てのアプリオブジェクト13が四つのクラスタに分けられる。また、クラスタ分けを行うためのアルゴリズムも特に限定されず、例えばnearest neighbor法やk-means法等でクラスタ分けを行い得る。
再び図35を参照する。
距離計算部92は、クラスタC01〜C04の各々と端末オブジェクト17との距離を計算する処理部である。その距離は、クラスタC01〜C04の各々の中心と端末オブジェクト17の中心との距離でもよいし、各クラスタC01〜C04と端末オブジェクト17との最小距離でもよい。
候補決定部93は、距離計算部92が計算した距離を利用して、複数のクラスタC01〜C04のうちで端末オブジェクト17に最も近いクラスタC01を選択する。そして、候補決定部93は、そのクラスタC01に属する各々のアプリオブジェクト13を端末2との間でデータを転送する候補とし、その候補をアプリケーション管理部42の許可部42bに通知する。
更に、候補決定部93は、オブジェクト管理情報96を記憶部47に格納する。
図37は、本実施形態に係るオブジェクト管理情報96を模式的に示す図である。
図37に示すように、オブジェクト管理情報96は、端末2に最も近いクラスタ、当該クラスタに含まれる各アプリオブジェクト13、及び端末2を対応付けた情報である。
図37の例では、アプリオブジェクト13を一意に識別する識別子obj1、obj2、…を候補決定部93が付与する。そして、これらのアプリオブジェクト13の画面12上での位置を候補決定部93がオブジェクト管理情報96に格納する。
また、本実施形態では、候補決定部93が、候補とした各アプリオブジェクト13にオブジェクト選択フラグを設定する。オブジェクト選択フラグは、第2実施形態で説明したように、アプリオブジェクト13がデータの入力を受け付ける状態にあるかどうかを示すフラグである。
再び図35を参照する。
候補決定部93は、端末連携部45の受付部45cからオブジェクト選択要求を受けたときに、オブジェクト管理情報96のオブジェクト選択フラグを更新する。そのオブジェクト選択要求は、第2実施形態で説明したように、候補とされた複数のアプリオブジェクト13のうちの一つを入力対象として選択する要求である。例えば、候補決定部93は、選択通知で選択されたアプリオブジェクト13のオブジェクト選択フラグ(図37参照)を「1」にし、それ以外のオブジェクト選択フラグを「0」にする。
アプリケーション管理部42の許可部42bは、候補決定部93から通知された候補のうち、オブジェクト選択フラグが「1」のアプリオブジェクト13に対して端末2との間でデータの転送を許可する。なお、オブジェクト選択フラグが「0」のアプリオブジェクト13に対しては、許可部42bはデータの転送を許可しない。
候補決定部93が許可部42bに通知する候補は、クラスタC01〜C04(図34参照)のうちで端末オブジェクト17に最も近いクラスタC01に属するアプリオブジェクト13である。本実施形態では、そのような位置関係を満たすアプリオブジェクト13のうち、上記のようにオブジェクト選択フラグが「1」のアプリオブジェクト13に対して、許可部42bがデータの転送を許可することになる。
[端末2の操作方法]
複数のクラスタC01〜C04の中からユーザが希望するクラスタを選択できると便利である。そこで、以下では、このようにクラスタを選択する方法について説明する。
図38〜図41は、本実施形態における端末2の操作方法について説明するための模式図である。なお、図38〜図41において、第2実施形態で説明したのと同じ要素には第2実施形態におけるのと同じ要素を付し、以下ではその説明を省略する。
まず、図38に示す位置に端末オブジェクト17が位置している場合を考える。この場合は、クラスタC01が、端末オブジェクト17に最も近いクラスタとなる。
なお、表示情報生成部44(図35参照)が、各クラスタC01〜C04を示す枠が画面12に表示されるような表示情報を生成し、ユーザUがクラスタC01〜C04を視認できるようにしてもよい。その場合、表示情報生成部44が、端末オブジェクト17に最も近いクラスタC01を示す枠を、他のクラスタC02〜C04を示す枠よりも強調表示するような表示情報を生成してもよい。これにより、ユーザUが、入力対象のアプリオブジェクト13が属するクラスタC01を視認できるようになる。
次に、図39に示すように、ユーザUが、端末2の次移動キー83を押下する。これにより、複数のクラスタC01〜C04のうちで、クラスタC01に隣接するクラスタC02を選択するクラスタ選択要求が端末2から情報処理装置4に通知される。そして、その通知を受けた表示情報生成部44が、クラスタC02が端末オブジェクト17に最も近いクラスタになるように、画面12上で端末オブジェクト17を移動させる表示情報を生成する。これにより、画面12上で端末オブジェクト17が移動する。これと共に、候補決定部93が、クラスタC02を選択し、そのクラスタC02に含まれるアプリオブジェクト13を入力対象の候補とする。
次に、図40に示すように、ユーザUが、端末2の確定キー82を押下する。これにより、クラスタを確定するクラスタ確定指示が端末2から情報処理装置4に通知され、クラスタC02を選択した状態が確定する。また、クラスタC02に含まれる複数のアプリオブジェクト13の一つにフォーカスが表示され、そのアプリオブジェクト13にデータを入力することが可能な状態となる。
続いて、図41に示すように、ユーザUが次移動キー83を押下する。これにより、クラスタC02内にあるアプリオブジェクト13のうちの一つを選択するオブジェクト選択要求が端末2から情報処理装置4に通知される。その通知を受けると、表示情報生成部44が、クラスタC02内でフォーカスが移動するように表示情報を生成する。そして、許可部42bが、フォーカスがあるアプリオブジェクト13と端末2との間におけるデータの転送を許可する。その結果、ユーザが希望するアプリオブジェクト13に端末2からデータを入力することができるようになる。
なお、図38〜図41の例では、複数のクラスタのうちの一つを選択するクラスタ選択要求を受けた場合について説明したが、画面12上で端末オブジェクト17の移動を要求する移動要求を受けた場合も同様の処理を行えばよい。その場合には、端末オブジェクト17の移動に伴って、複数のクラスタC01〜C04のうちで端末オブジェクト17に最も近いクラスタを選択する処理を候補決定部93が行えばよい。
[フローチャート]
次に、本実施形態に係る入出力制御方法の処理の流れについて説明する。
<クラスタに分けるときの処理>
図42は、画面12に含まれているアプリオブジェクト13を複数のクラスタに分けるときの処理の流れを示すフローチャートである。
まず、ステップS71において、位置認識部41が、画面12における端末オブジェクト17の位置を認識し、その位置を示す端末位置情報73を記憶部47に格納する。
次に、ステップS72に移り、クラスタリング部91が、画面12に表示されている全てのアプリオブジェクト13の総数が閾値T以上かどうかを判断する。その閾値Tとして、例えば閾値情報94(図36(a))に格納されている値を使用し得る。
ここでYESと判断された場合には、ステップS73に移り、クラスタリング部91が複数のアプリオブジェクト13の各々をクラスタC01〜C04に分ける。そのクラスタの数Ncは、例えば、クラスタ数情報95に格納された値の「4」とする。
次に、ステップS74に移り、候補決定部93が、複数のクラスタC01〜C04のうちで端末オブジェクト17に最も近いクラスタC01を選択し、処理を終える。
一方、ステップS72においてNOと判断された場合にはステップS75に移る。
ステップS75においては、第2実施形態の図22で例示した方法で候補決定部93が入力候補のアプリオブジェクト13を決定する。その方法では、候補決定部93が、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13を入力対象の候補とする。その閾値Lとして、例えば距離情報74(図25参照)に格納されている値を採用し得る。
続いて、ステップS76に移り、候補決定部93が、候補としたアプリオブジェクト13のうちから一つを入力対象として適宜選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図37参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。また、そのアプリオブジェクト13にフォーカスが表示され、そのアプリオブジェクト13が端末2からデータの入力を待ち受ける状態となる。
以上により、アプリオブジェクト13を複数のクラスタに分けるときの処理を終える。
<端末オブジェクトが移動又はクラスタ選択要求があったときの処理>
次に、端末オブジェクト17が移動又はクラスタ選択要求があったときの処理について説明する。
図43は、端末オブジェクトが移動又はクラスタ選択要求があったときの処理の流れを示すフローチャートである。
まず、ステップS81において、クラスタリング部91が、端末オブジェクト17が移動したか、又はクラスタ選択要求があったかを判断する。図39に示したように、ユーザUが端末2の次移動キー83を押下することにより、複数のクラスタのうちの一を選択するクラスタ選択要求が端末2から情報処理装置4に通知される。
ステップS81においてNOと判断された場合には処理を終える。
一方、ステップS81においてYESと判断された場合にはステップS82に移る。
ステップS82においては、候補決定部93が、複数のクラスタのうち、端末オブジェクト17に最も近いクラスタを選択する。
次に、ステップS83に移り、候補決定部93が、ステップS82で選択したクラスタに含まれるアプリオブジェクト13を、端末2との間でデータの転送を行う入力対象の候補とする。
次いで、ステップS84に移り、候補決定部93が、ステップS82で選択したクラスタに含まれるアプリオブジェクト13の個数が閾値以上かどうかを判断する。一つのクラスタに含まれるアプリオブジェクト13の個数が多すぎると、所望のアプリオブジェクト13にフォーカスを移動させるためにユーザが次移動キー83(図41参照)を何度も押下しなければならず、ユーザの負担が増える。よって、ステップS84で使用する閾値は、ユーザの負担を減らすという観点から予め定めておき、記憶部47に格納しておけばよい。
ここで、YESと判断された場合にはステップS85に移る。ステップS85では、クラスタリング部91が、ステップS82で選択したクラスタに含まれる複数のアプリオブジェクト13を更に複数のクラスタに分け、一つのクラスタに含まれるアプリオブジェクト13の個数を減らす。
次いで、ステップS86に移り、候補決定部93が、ステップS85で生成した複数のクラスタのうちで端末オブジェクト17に最も近いクラスタを選択する。そして、処理を終える。
一方、ステップS84においてNOと判断された場合にはステップS87に移る。
ステップS87においては、第2実施形態の図22で例示した方法で候補決定部93が入力候補のアプリオブジェクト13を決定する。例えば、候補決定部93は、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13を入力対象の候補とする。
続いて、ステップS88に移り、候補決定部93が、候補としたアプリオブジェクト13のうちから一つを適宜選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図37参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。また、そのアプリオブジェクト13にフォーカスが表示され、そのアプリオブジェクト13が端末2からデータの入力を待ち受ける状態となる。
以上により、端末オブジェクト17が移動又はクラスタ選択要求があったときの処理を終える。
<クラスタを確定させるときの処理>
次に、クラスタを確定させるときの処理について説明する。
図44は、クラスタを確定させるときの処理の流れを示すフローチャートである。
まず、ステップS91において、複数のクラスタのうちの一つを選択した状態が確定しているかどうかをクラスタリング部91が判断する。図40を参照して説明したように、ユーザUが端末2の確定キー82を押下するとクラスタを選択した状態が確定する。
ここでYESと判断された場合にはステップS92に移る。
ステップS92では、情報処理装置4が、一つのクラスタ内にある複数のアプリオブジェクト13のうちの一つを選択するオブジェクト選択要求を端末2から受け付ける。
次に、ステップS93に移り、候補決定部93が、そのオブジェクト選択要求に対応したアプリオブジェクト13を選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図37参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。そして、そのアプリオブジェクト13にフォーカスが表示され、入力対象となるアプリオブジェクト13が更新されることになる。
以上により、ステップS91でYESと判断された場合の処理を終える。
一方、ステップS91でNOと判断された場合にはステップS94に移る。
ステップS94においては、情報処理装置4が、端末2からクラスタ選択要求を受け付ける。
次に、ステップS95に移り、端末2からクラスタ確定指示があったかどうかをクラスタリング部91が判断する。図40を参照して説明したように、クラスタ確定指示は、一つのクラスタが選択された状態を確定させる指示であって、ユーザUが端末2の確定キー82を押下することで端末2から情報処理装置4に通知される。
ここでNOと判断された場合にはステップS96に移る。
ステップS96においては、候補決定部93が、複数のクラスタのうちで端末オブジェクト17に最も近いクラスタを選択する。
一方、ステップS95においてYESと判断された場合にはステップS97に移る。
ステップS97では、クラスタ確定指示で確定させたクラスタが更に複数のクラスタを内包している場合、それらのクラスタのうちで端末オブジェクト17に最も近いクラスタを候補決定部93が選択する。
次に、ステップS98に移り、候補決定部93が、ステップS97で選択したクラスタに含まれている複数のアプリオブジェクト13の中に、オブジェクト選択フラグ(図37参照)が「1」となっているものがあるかを確認する。そして、オブジェクト選択フラグが「1」のアプリオブジェクト13がある場合に、候補決定部93は、そのクラスタを選択した状態を確定させる。なお、オブジェクト選択フラグが「1」のアプリオブジェクト13がない場合は、候補決定部93は、クラスタの選択が未確定の状態にする。
以上により、クラスタを確定させるときの処理を終える。
(第4実施形態)
第3実施形態では、図34に示したように、画面12に表示されている全てのアプリオブジェクト13をクラスタリングの対象にした。これに対し、本実施形態では以下のようにしてクラスタリングの対象となるアプリオブジェクト13の個数を減らし、計算量を低減する。
[入出力制御方法]
図45は、本実施形態に係る入出力制御方法について説明するための模式図である。なお、図45において、第1〜第3実施形態で説明したのと同じ要素にはこれらの実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図45に示すように、本実施形態では、画面12において端末オブジェクト17との距離Rdが閾値L以下の範囲Qにあるアプリオブジェクト13を抽出する。そして、その範囲Q内においてのみ、各アプリオブジェクト13を複数のクラスタC01、C02に分ける。
そして、クラスタC01、C02のうち端末オブジェクト17に最も近いクラスタC01を選択し、そのクラスタC01に属するアプリオブジェクト13を端末2との間でデータの転送を行う候補とする。
これにより、画面12内の全てのアプリオブジェクト13をクラスタに分ける第3実施形態と比較して、クラスタリングの対象となるアプリオブジェクト13の個数が減るため、クラスタリングに要する計算量を低減できる。
更に、第1〜第3実施形態と同様にアプリオブジェクト13への入力デバイスとして端末2を活用できるため、情報処理システム1にデータを入力するデバイスを拡充することもできる。
[機能構成]
次に、本実施形態に係る情報処理システムの各部の機能構成について説明する。なお、端末2とユニットPC3の各々の機能構成は第1実施形態と同じであるため、以下では情報処理装置4の機能構成についてのみ説明する。
図46は、本実施形態に係る情報処理装置4の機能構成図である。なお、図46において、第1〜第3実施形態で説明したのと同じ要素にはこれらの実施形態におけるのと同じ符号を付し、以下ではその説明を省略する。
図46に示すように、情報処理装置4は、第1実施形態で説明した位置認識部41、アプリケーション管理部42、端末機能割当部43、表示情報生成部44、端末連携部45、送受信部46、及び記憶部47を有する。この他に、情報処理装置4は、距離計算部101、クラスタリング部102、及び候補決定部103を有する。
このうち、距離計算部101は、画面12におけるアプリオブジェクト13の位置を示すアプリオブジェクト位置情報を位置認識部41から取得する。そのアプリオブジェクト位置情報と端末位置情報73とに基づいて、距離計算部101は、端末オブジェクト17とアプリオブジェクト13との距離Rdを計算する。
クラスタリング部102は、距離計算部101から距離Rdを取得して、その距離Rdが閾値L以下となるアプリオブジェクト13を抽出する。そして、クラスタリング部102は、抽出したアプリオブジェクト13を複数のクラスタC01、C02に分ける。
クラスタ分けを行うためのアルゴリズムは特に限定されない。例えば、クラスタリング部102は、nearest neighbor法やk-means法等でクラスタ分けを行い得る。
候補決定部103は、複数のクラスタC01、C02のうち、端末オブジェクト17に最も近いクラスタC01を特定する。更に、候補決定部103は、特定したクラスタC01に属する各アプリオブジェクト13を端末2との間でデータを転送する複数の候補とし、その候補をアプリケーション管理部42の許可部42bに通知する。
また、候補決定部103は、オブジェクト管理情報104を記憶部47に格納する。
図47は、本実施形態に係るオブジェクト管理情報104を模式的に示す図である。
図47に示すように、オブジェクト管理情報104は、候補のアプリオブジェクト13と端末2とを対応付けた情報である。本実施形態では、各端末2とクラスタとを対応付けると共に、候補決定部103が各クラスタにクラスタ選択フラグを付与する。
クラスタ選択フラグは、複数のクラスタのうちで選択されたクラスタを示すフラグである。デフォルトでは、複数のクラスタのうちで端末2に最も近いクラスタのクラスタ選択フラグが「1」となる。例えば、端末IDがAの例では、クラスタC01が端末2に最も近いため、クラスタC01のクラスタ選択フラグが「1」となる。そして、残りのクラスタC02のクラスタ選択フラグは「0」となる。
更に、候補決定部103は、候補とした各アプリオブジェクト13にオブジェクト選択フラグを設定する。図26の例と同様に、オブジェクト選択フラグが「1」のアプリオブジェクト13には入力を促すフォーカスが表示されており、そのアプリオブジェクト13にデータを入力することができる。一方、オブジェクト選択フラグが「0」のアプリオブジェクト13は、データの入力を受け付ける状態になく、データを入力することができない。
また、候補決定部103は、画面12上でのアプリオブジェクト13の位置をオブジェクト管理情報104に格納する。
再び図46を参照する。
アプリケーション管理部42の許可部42bは、候補決定部103から通知された候補のうち、オブジェクト選択フラグが「1」のアプリオブジェクト13に対して端末2との間でデータの転送を許可する。なお、オブジェクト選択フラグが「0」のアプリオブジェクト13に対しては、許可部42bはデータの転送を許可しない。
候補決定部103が許可部42bに通知する候補は、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13のうち、端末オブジェクト17に最も近いクラスタC01に属するアプリオブジェクト13である。本実施形態では、そのような位置関係を満たすアプリオブジェクト13のうち、上記のようにオブジェクト選択フラグが「1」のアプリオブジェクト13に対して、許可部42bがデータの転送を許可することになる。
[フローチャート]
次に、本実施形態に係る入出力制御方法の処理の流れについて説明する。
<クラスタに分けるときの処理>
図48は、アプリオブジェクト13を複数のクラスタに分けるときの処理の流れを示すフローチャートである。
まず、ステップS101において、位置認識部41が、画面12における端末オブジェクト17の位置を認識し、その位置を示す端末位置情報73(図24参照)を記憶部47に格納する。
次に、ステップS102に移り、クラスタリング部102が、端末オブジェクト17との距離Rdが閾値L以下のアプリオブジェクト13を抽出する。
続いて、ステップS103に移り、クラスタリング部102が、抽出したアプリオブジェクトの総数が閾値T以上かどうかを判断する。閾値Tは、ステップS102で抽出した複数のアプリオブジェクト13の個数が、ユーザがアプリオブジェクト13を選択するのが負担になるほど多いかという観点から決定される。例えば、その閾値Tとして、閾値情報94(図36(a)参照)に格納されている値を使用し得る。
ステップS103においてYESと判断された場合には、ステップS104に移り、クラスタリング部102が、抽出したアプリオブジェクト13の各々をクラスタC01、C02に分ける。そのクラスタの数Ncは、例えば、クラスタ数情報95(図36(b)参照)に格納された値を利用して決定し得る。
次に、ステップS105に移り、候補決定部103が、複数のクラスタC01、C02のうちで端末オブジェクト17に最も近いクラスタC01を選択し、そのクラスタC01のクラスタ選択フラグ(図47参照)を「1」にする。そして、候補決定部103が、クラスタC01に属する複数のアプリオブジェクト13の各々を、端末2との間でデータを転送する候補とする。
一方、ステップS103においてNOと判断された場合にはステップS106に移る。
ステップS106においては、候補決定部103が、ステップS102で抽出したアプリオブジェクト13のうちから一つを入力対象として適宜選択する。そして、候補決定部103が、選択したアプリオブジェクト13のオブジェクト選択フラグ(図47参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。また、そのアプリオブジェクト13にフォーカスが表示され、そのアプリオブジェクト13が端末2からデータの入力を待ち受ける状態となる。
以上により、アプリオブジェクト13を複数のクラスタに分けるときの処理を終える。
<端末オブジェクトが移動したときの処理>
次に、端末オブジェクト17が移動したときの処理について説明する。
図49は、端末オブジェクトが移動したときの処理の流れを示すフローチャートである。
まず、ステップS111において、位置認識部41が、端末オブジェクト17が移動したかどうかを判断する。ここでNOと判断された場合には処理を終える。
一方、ステップS111においてYESと判断された場合にはステップS112に移る。
ステップS112においては、位置認識部41が、端末オブジェクト17の位置を示す端末位置情報73を更新する。
次に、ステップS113に移り、距離計算部101が、更新された端末位置情報73を利用して、端末オブジェクト17とアプリオブジェクト13との距離Rdを再計算する。
そして、クラスタリング部102が、距離Rdが閾値L以下となったアプリオブジェクト13を抽出する。そのアプリオブジェクト13は、端末2との間でデータを転送する入力対象の候補である。これにより、本ステップでは、入力対象のアプリオブジェクト13が更新されることになる。
次に、ステップS114に移り、クラスタリング部102が、入力対象の候補となるアプリオブジェクト13の個数が閾値以上かどうかを判断する。ここでNOと判断された場合には、各アプリオブジェクト13の個数が少ないため、これらのアプリオブジェクト13から一つを選択するのはユーザにとって面倒ではない。よって、この場合にはクラスタリングを行わずにステップS117に移る。
ステップS117においては、候補決定部103が、候補としたアプリオブジェクト13のうちから一つを入力対象として適宜選択する。そして、候補決定部103が、選択したアプリオブジェクト13のオブジェクト選択フラグ(図47参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。また、そのアプリオブジェクト13にフォーカスが表示され、そのアプリオブジェクト13が端末2からデータの入力を待ち受ける状態となる。
一方、ステップS114でYESと判断された場合にはステップS115に移る。
ステップS115においては、クラスタリング部102が、ステップS113で抽出したアプリオブジェクト13の各々をクラスタC01、C02に分ける。
次に、ステップS116に移り、候補決定部103が、複数のクラスタC01、C02のうちで端末オブジェクト17に最も近いクラスタC01を選択し、そのクラスタC01のクラスタ選択フラグ(図47参照)を「1」にする。そして、候補決定部103が、クラスタC01に属する複数のアプリオブジェクト13の各々を、端末2との間でデータを転送する候補とする。
以上により、端末オブジェクト17が移動したときの処理を終える。
<クラスタを確定させるときの処理>
次に、クラスタを確定させるときの処理について説明する。
図50は、クラスタを確定させるときの処理の流れを示すフローチャートである。
まず、ステップS121において、複数のクラスタのうちの一つを選択した状態が確定しているかどうかをクラスタリング部102が判断する。第3実施形態の図40に示したように、ユーザUが端末2の確定キー82を押下するとクラスタを選択した状態が確定する。
ここでYESと判断された場合にはステップS122に移る。
ステップS122では、情報処理装置4が、一つのクラスタ内にある複数のアプリオブジェクト13のうちの一つを選択するオブジェクト選択要求を端末2から受け付ける。
次に、ステップS123に移り、候補決定部103が、そのオブジェクト選択要求に対応したアプリオブジェクト13を選択し、そのアプリオブジェクト13のオブジェクト選択フラグ(図47参照)に「1」をセットする。これにより、許可部42bが、「1」がセットされたアプリオブジェクト13と端末2との間におけるデータの転送を許可する。そして、そのアプリオブジェクト13にフォーカスが表示され、入力対象となるアプリオブジェクト13が更新されることになる。
以上により、ステップS121でYESと判断された場合の処理を終える。
一方、ステップS121でNOと判断された場合にはステップS124に移る。
ステップS124においては、情報処理装置4が、端末2からクラスタ選択要求を受け付ける。
次に、ステップS125に移り、端末2からクラスタ確定指示があったかどうかをクラスタリング部102が判断する。第3実施形態の図40を参照して説明したように、クラスタ確定指示は、一つのクラスタが選択された状態を確定させる指示であって、ユーザUが端末2の確定キー82を押下することで端末2から情報処理装置4に通知される。
ここでNOと判断された場合にはステップS126に移る。
ステップS126においては、候補決定部103が、複数のクラスタのうちで端末オブジェクト17に最も近いクラスタを選択する。
一方、ステップS125においてYESと判断された場合にはステップS127に移る。
ステップS127においては、クラスタリング部102が、ステップS124のクラスタ選択要求で選択されたクラスタに含まれる複数のアプリオブジェクト13を特定する。
次に、ステップS128に移り、候補決定部103が、ステップS127で特定した複数のアプリオブジェクト13のうちから一つを適宜選択する。
次いで、ステップS129に移り、候補決定部103が、ステップS124のクラスタ選択要求で選択されたクラスタのクラスタ選択フラグ(図47参照)に「1」をセットし、そのクラスタが選択された状態を確定させる。
以上により、クラスタを確定させるときの処理を終える。
(ハードウェア構成)
次に、第1〜第4実施形態に係る端末2、ユニットPC3、及び情報処理装置4のハードウェア構成について説明する。
[端末2のハードウェア構成]
図51は、端末2のハードウェア構成の一例を示す図である。
図51に示すように、端末2は、無線装置2a、カメラ2b、マイク2c、スピーカ2d、加速度センサ2e、タッチパネル2f、プロセッサ2g、及びメモリ2hを備える。これらの各部はバス2jによって相互に接続される。
このうち、無線装置2aは、アンテナ2kを用いて情報処理装置4と無線通信を行うハードウェアであって、その無線装置2aによって送受信部25(図6参照)が実現される。
また、カメラ2bは、図19のように撮影画像50を取得するハードウェアである。マイク2cは、図3においてユーザUBが行うような音声入力をするためのハードウェアである。そして、スピーカ2dは、図21のように端末2から音声を出力させるときに使用するハードウェアである。また、加速度センサ2eは、図20のように端末2の加速度データを取得するデバイスである。
一方、タッチパネル2fは、入力デバイスと表示デバイスとを兼ねたディスプレイである。そのタッチパネル2fには、例えば図27〜図30に示したようなミニチュア画面80、矢印キー81、確定キー82、及び次移動キー83等が表示される。
そして、これらカメラ2b、マイク2c、スピーカ2d、加速度センサ2e、及びタッチパネル2fにより入力部21(図6参照)が実現される。
また、プロセッサ2gは、端末2の各部を制御したり、メモリ2hと協働して端末プログラムを実行したりするCPU(Central Processing Unit)等のハードウェアである。プロセッサ2gとメモリ2hがその端末プログラムを実行することにより、図6の端末機能管理部22、端末連携部23、アプリケーション管理部24、及び送受信部25の各部が実現される。
また、メモリ2hは、例えばDRAM(dynamic Random Access Memory)であって、その上に端末プログラムが展開される。
[ユニットPC3のハードウェア構成]
図52は、ユニットPC3のハードウェア構成の一例を示す図である。
図52に示すように、ユニットPC3は、入力装置3a、出力装置3b、プロセッサ3c、メモリ3d、及びネットワークインターフェース3eを有する。これらの各部は、バス3fによって相互に接続される。
このうち、入力装置3aは、カメラ6(図7参照)の画像データが入力されるハードウェアである。また、出力装置3bは、プロジェクタ7(図7参照)に種々の映像信号を出力するためのハードウェアである。
そして、プロセッサ3cは、ユニットPC3の各部を制御したり、メモリ3dと協働してPCプログラムを実行したりするCPU等のハードウェアである。プロセッサ3cとメモリ3dがそのPCプログラムを実行することにより、図7のセンサ認識部31と表示部32とが実現される。
また、メモリ3dは、例えばDRAMであって、その上に前述のPCプログラムが展開される。
更に、ネットワークインターフェース3eは、ユニットPC3をネットワーク5に接続するためのインターフェースである。そのネットワークインターフェース3eにより、送受信部33(図7参照)が実現されることになる。
[情報処理装置4のハードウェア構成]
図53は、情報処理装置4のハードウェア構成の一例を示す図である。
図53に示すように、情報処理装置4は、記憶装置4a、メモリ4b、プロセッサ4c、及びネットワークインターフェース4dを有する。これらの各部は、バス4eにより相互に接続される。
このうち、記憶装置4aは、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性のストレージデバイスであり、情報処理装置4が実行する各種のサーバアプリ120と、本実施形態に係る入出力制御プログラム121とを記憶する。
なお、入出力制御プログラム121をコンピュータが読み取り可能な記録媒体4fに記録させておき、プロセッサ4cに記録媒体4fの入出力制御プログラム121を読み取らせるようにしてもよい。
そのような記録媒体4fとしては、例えばCD-ROM(Compact Disc - Read Only Memory)、DVD(Digital Versatile Disc)、及びUSB(Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体4fとして使用してもよい。これらの記録媒体4fは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
更に、公衆回線、インターネット、及びLAN等に接続された装置に入出力制御プログラム121を記憶させておき、プロセッサ4cがその入出力制御プログラム121を読み出して実行するようにしてもよい。
一方、メモリ4bは、DRAM等のようにデータを一時的に記憶するハードウェアであって、その上に前述のサーバアプリ120や入出力制御プログラム121が展開される。
プロセッサ4cは、情報処理装置4の各部を制御したり、メモリ4bと協働してサーバアプリ120と入出力制御プログラム121を実行したりするCPU等のハードウェアである。
このようにメモリ4bとプロセッサ4cとが協働して入出力制御プログラム121を実行することにより、第1〜第4実施形態における情報処理装置4の各部が実現される。例えば、第1〜第4実施形態(図8、図23、図35、図46)の位置認識部41、アプリケーション管理部42、端末機能割当部43、表示情報生成部44、及び端末連携部45が実現される。また、これらの実施形態の記憶部47(図8、図23、図35、図46参照)は、記憶装置4aとメモリ4bによって実現される。
また、第2〜第4実施形態における距離計算部71、92、101、候補決定部72、93、103、及びクラスタリング部91、102も、プロセッサ4cが入出力制御プログラム121を実行することにより実現される。
更に、ネットワークインターフェース4dは、情報処理装置4をネットワーク5に接続するためのインターフェースである。そのネットワークインターフェース4dにより、送受信部46(図8、図23、図35、図46参照)が実現される。
以上説明した各実施形態に関し、更に以下の付記を開示する。
(付記1) ネットワークを介して端末と接続される情報処理装置であって、
前記端末に対応した第1のオブジェクトと、データを入力可能な第2のオブジェクトとを画面に表示する表示情報を生成する生成部と、
前記第1のオブジェクトと前記第2のオブジェクトとが予め定められた位置関係にある場合に、前記端末と前記第2のオブジェクトとの間における前記データの転送を許可する許可部と、
を有することを特徴とする情報処理装置。
(付記2) 前記位置関係は、前記第1のオブジェクトが前記第2のオブジェクトに重なる関係であることを特徴とする付記1に記載の情報処理装置。
(付記3) 前記許可部は、複数の前記第2のオブジェクト同士が重なっている場合には、複数の前記第2のオブジェクトのいずれか一と前記第1のオブジェクトとが前記位置関係にあるときに、複数の前記第2のオブジェクトの全てと前記端末との間で前記転送を許可することを特徴とする付記2に記載の情報処理装置。
(付記4) 複数の前記端末の各々に対応した複数の前記第1のオブジェクトの各々が前記第2のオブジェクトに重ねられている場合には、前記許可部は、最初に前記第2のオブジェクトに重ねられた前記第1のオブジェクトと前記第2のオブジェクトとの間で前記転送を許可することを特徴とする付記2に記載の情報処理装置。
(付記5) 前記第2のオブジェクトは、入力された前記データを入力する入力領域を複数有し、
前記許可部は、複数の前記入力領域のうちで、前記第1のオブジェクトに最も近い前記入力領域と前記端末との間で前記転送を許可することを特徴とする付記2に記載の情報処理装置。
(付記6) 前記データは、前記端末の加速度を示す加速度データであり、
前記生成部は、前記第2のオブジェクトが前記加速度に応じた動きを行うように前記表示情報を生成することを特徴とする付記1に記載の情報処理装置。
(付記7) 前記データは、前記端末で撮影された撮影画像を示す画像データであり、
前記生成部は、前記第2のオブジェクト内に前記撮影画像が表示されるように前記表示情報を生成することを特徴とする付記1に記載の情報処理装置。
(付記8) 前記位置関係は、前記第1のオブジェクトと前記第2のオブジェクトとの距離が閾値以下にある関係であることを特徴とする付記1に記載の情報処理装置。
(付記9) 前記位置関係にある前記第2のオブジェクトが複数存在するときに、当該複数の第2のオブジェクトのうちの一つを選択する選択要求を前記端末から受け付ける受付部を更に有し、
前記許可部は、前記選択要求によって選択された前記第2のオブジェクトと前記端末との間で前記転送を許可することを特徴とする付記8に記載の情報処理装置。
(付記10) 前記生成部は、前記位置関係にある前記第2のオブジェクトと、前記位置関係にない前記第2のオブジェクトとを分ける枠が前記画面に表示されるように前記表示情報を生成することを特徴とする付記9に記載の情報処理装置。
(付記11) 前記位置関係にある前記第2のオブジェクトが複数存在するときに、当該複数の第2のオブジェクトの各々を複数のクラスタに分けるクラスタリング部と、
複数の前記クラスタのうち、前記第1のオブジェクトに最も近い前記クラスタに属する複数の前記第2のオブジェクトから一つを選択する選択要求を前記端末から受け付ける受付部とを更に有し、
前記許可部は、前記選択要求によって選択された前記第2のオブジェクトと前記端末との間で前記転送を許可することを特徴とする付記8に記載の情報処理装置。
(付記12) 前記位置関係にある前記第2のオブジェクトが複数存在するときに、複数の前記第2のオブジェクトの各々を複数のクラスタに分けるクラスタリング部を更に有し、
前記位置関係は、前記第2のオブジェクトが、複数の前記クラスタのうちで前記第1のオブジェクトに最も近い前記クラスタに属する関係であることを特徴とする付記1に記載の情報処理装置。
(付記13) 前記第1のオブジェクトに最も近い前記クラスタに属する複数の前記第2のオブジェクトのうちの一つを選択する選択要求を前記端末から受け付ける受付部を更に有し、
前記許可部は、前記選択要求によって選択された前記第2のオブジェクトと前記端末との間で前記転送を許可することを特徴とする付記12に記載の情報処理装置。
(付記14) 前記生成部は、複数の前記クラスタのうちの一を選択するクラスタ選択要求を前記端末から受け付けたときに、選択された前記クラスタが前記第1のオブジェクトに最も近い前記クラスタになるように、前記画面上で前記第1のオブジェクトを移動させる前記表示情報を生成することを特徴とする付記12に記載の情報処理装置。
(付記15) 前記生成部は、複数の前記クラスタの各々を示す複数の枠が前記画面に表示されるように前記表示情報を生成することを特徴とする付記12に記載の情報処理装置。
(付記16) 前記端末の認証を行う認証部を更に有し、
前記許可部は、前記認証が一度成功した場合には、前記第1のオブジェクトと前記位置関係にある前記第2のオブジェクトが別の前記第2のオブジェクトに切り替わった場合であっても、前記別の第2のオブジェクトと前記端末との間における前記データの転送を許可することを特徴とする付記1に記載の情報処理装置。
(付記17) 前記生成部は、前記端末が実行するアプリケーションプログラムに対応したアイコンが前記第1のオブジェクトの一部として前記画面に表示されるように前記表示情報を生成し、
前記許可部は、前記アイコンと前記第2のオブジェクトとが前記位置関係にあり、かつ前記アプリケーションプログラムと前記第2のオブジェクトの各々に同一形式の前記データを入力できる場合に、前記端末と前記第2のオブジェクトとの間で前記転送を許可することを特徴とする付記1に記載の情報処理装置。
(付記18) ネットワークを介して端末と接続されるコンピュータに、
前記端末に対応した第1のオブジェクトと、データを入力可能な第2のオブジェクトとを画面に表示する表示情報を生成する処理と、
前記第1のオブジェクトと前記第2のオブジェクトとが予め定められた位置関係にある場合に、前記端末と前記第2のオブジェクトとの間における前記データの転送を許可する処理と、
を実行させるための入出力制御プログラム。
(付記19) ネットワークを介して端末と接続されるコンピュータが、
前記端末に対応した第1のオブジェクトと、データを入力可能な第2のオブジェクトとを画面に表示する表示情報を生成する処理と、
前記第1のオブジェクトと前記第2のオブジェクトとが予め定められた位置関係にある場合に、前記端末と前記第2のオブジェクトとの間における前記データの転送を許可する処理と、
を実行することを特徴とする入出力制御方法。