(第1の実施形態)
次に、本発明に係る実施形態について、図面を参照しながら説明する。図1は、本実施形態に係る分散機器相互制御システムの概念を示す図である。図1に示すように、本実施形態の分散機器相互制御システムは、携帯電話機(MT)10とPC20とが、Bluetooth(登録商標)などの近距離無線通信により接続する。MT10およびPC20上では、それぞれソフトウェアが実行される。MT10上で行なった操作は、MT10上のソフトウェアおよび/またはPC20上のソフトウェアが動作して処理され、MT10上のソフトウェアおよび/またはPC20上のソフトウェアに処理結果が反映される。
同様に、PC20上で行なった操作は、PC20上のソフトウェアおよび/またはMT10上のソフトウェアが動作して処理され、PC20上のソフトウェアおよび/またはMT10上のソフトウェアに処理結果が反映される。このとき、MT10および/またはPC20の画面更新が伴っても、画面更新が伴わなくても良い。MT10およびPC20は、さまざまなアプリケーションが動作するためのプラットフォームを有する。
ここで、本実施形態では、2つの機器として、携帯電話機(MT)10およびPC20を用いて説明するが、その他の機器であっても良い。例えば、家電機器や車載端末などであってもよい。また、2つの機器が相互連携するための通信手段として、Bluetooth(登録商標)などの近距離無線通信手段を用いて説明するが、その他通信手段であってもよい。例えば、USB対応有線通信手段などであってもよい。
図2は、本実施形態に係る分散機器相互制御システムの概略構成を示すブロック図である。MT10の入力部11は、テンキーパッドを有し、ユーザがテンキーパッドを操作することにより、信号を入力することができる。一方、PC20の入力部21は、タッチパネル、キーボード、マウスなどの入力デバイスを有し、ユーザがこれらのデバイスを操作することにより、信号を入力することができる。ユーザが入力部11または21で入力した操作情報は、管理部13または23に転送される。MT10の出力部12およびPC20の出力部22は、液晶画面を有し、情報を画面に表示する。管理部13、23とアプリ部15、25において、アプリケーションの画面表示内容が変更された場合、レンダリング処理結果を受け取って、画像として出力する。
MT10の管理部13およびPC20の管理部23は、当該システム上で動作するアプリケーションの全体管理を行なう。入力部11または21でユーザが入力した操作情報を、該当するアプリ部15または25に転送する。また、アプリ部15または25にてレンダリング内容が変更された場合は、レンダリング処理結果を出力部12または22に転送する。また、管理部13または23は、アプリ部15または25から、対向するアプリ部15または25への転送データとして、「アプリ内データ」を受信した場合は、通信部14または24に転送する。
MT10の通信部14またはPC20の通信部24は、管理部13または23から受信した「アプリ内データ」を相手端末に伝送する。本実施形態では、Bluetooth(登録商標)などの近距離無線通信デバイスを利用したものを示し、かつ、Bluetooth(登録商標)の接続が確立しており、2つの端末でデータ伝送ができる状態にあることを前提とする。また、対向通信部から「アプリ内データ」を受信した場合は、管理部13または23に転送する。
MT10のアプリ部15またはPC20のアプリ部25は、本システム上で動作する任意のアプリケーションである。本システムでは、1以上のアプリケーションが動作していても良い。MT10のインターネット通信部16は、アプリ部15がサーバと連携してデータをダウンロードしたり、データをアップロードしたりする。
図3は、管理部13または23の概略構成を示すブロック図である。管理部13、23は、通信管理部30と、アプリ管理部310と、主管理部320と、から構成される。通信管理部30は、送信データ制御部30a、受信データ制御部30bおよび通信連携部30cから構成され、アプリ管理部310は、アプリ管理テーブル310aを備える。主管理部320は、管理部13、23の全体を管理する。
アプリ連携部310bは、上位のアプリ部15、25と連携するためのインタフェースの役目を果たす。アプリ部15、25からアプリ管理部310へ、あるいは、アプリ管理部310からアプリ部15、25へのデータ転送を行なう。アプリ管理部310は、アプリ管理テーブル310aを参照しながら、アプリ部15、25から転送要求のあるアプリ内データを、相手端末へデータ転送するよう、送信データ制御部30aに通知する。また、受信データ制御部30bから転送要求のあるアプリ内データに関して、アプリ部15、25へデータ転送するよう、アプリ連携部310bに通知する。
通信連携部30cは、通信部14、24と連携しながら、相手端末とのデータ送受信を制御する。送信データ制御部30aは、アプリ管理部310から転送要求のあるアプリ内データに関して、伝送制御しながら、通信連携部30cに伝送データを転送する。伝送制御では、後述するように、2種類の伝送キューを利用する。受信データ制御部30bは、通信連携部30cから転送要求のあるアプリ内データに関して、受信制御しながら、アプリ管理部310に伝送データを転送する。
図4は、図3で示したアプリ管理テーブル310aに登録される際のアプリ管理テーブルの構成例を示す図である。図4に示すアプリ管理テーブルは、アプリ識別子、アプリ名、MTアプリの識別子と、MT10におけるアプリケーションが動作するMT自体の識別子、PCアプリの識別子と、PC20のアプリケーションが動作するPC自体の識別子から構成される。これにより、本管理部13、23上で動作するアプリケーションを複数動作させることができる。また、管理部13、23は、どのアプリケーションから受信したデータであるか、どのアプリケーションに送信すべきデータであるかを把握することができる。
本システム上で動作する任意のアプリケーションは、インターネット通信部16から携帯電話通信網を利用して、ウェブサーバ上からダウンロードする。ダウンロードするアプリケーションは、MT10用およびPC20用の両方であり、ダウンロードしたMT10用アプリは、MT10上の管理部13上に登録される。一方、PC20用アプリは、通信部14、24を介してPC20上の管理部23上に登録される。
また、PC20は、携帯電話通信網を経由してダウンロードせず、USBメモリなどの外部機器を接続してデータをコピーしたり、WiFi(登録商標)などを利用してサーバからダウンロードしたりしてもよい。アプリ情報の登録時、双方の管理部13、23では、登録したアプリの通信相手となるアプリの識別情報とともに、管理しているアプリケーションを「アプリ管理テーブル」に登録する。これにより、相手の管理部13、23は、どのアプリケーションから届いたデータであるか、どのアプリケーションに届けるべきデータであるかを把握することができる。また、携帯電話機内蔵のBluetooth(登録商標)伝送路は1本しか確立できないため、複数のアプリケーションを並行して動作させる場合、複数のアプリケーションのデータを伝送する必要がある。このとき、双方の管理部にて生成するBluetooth(登録商標)伝送データ内に、伝送元と伝送先の情報を埋め込むことによって、1つのデータストリームを生成し、複数アプリの同時起動を可能にする。
次に、アプリ部15または25(送信元アプリ部)から、対向のアプリ部15または25(送信先アプリ部)へのアプリ内データの伝送において、管理部13、23内の各モジュールにおけるデータ処理方法について説明する。図5は、送信元アプリ部が、送信先アプリ部へアプリ内データの送信を要求する時に、送信元アプリ部が管理部(アプリ連携部)に通知するデータ(「第1送信データ」)の構成を示す図である。
「第1送信データ」は、送信元アプリ識別子、送信先アプリ識別子、送信対象となるアプリ内データのデータサイズ、アプリ内データのメモリ上の先頭アドレス、後述する送信キューの識別子および送信完了時通知情報から構成される。ここで、送信元アプリ識別子、および、送信先アプリの識別子は、アプリ管理テーブル310aに記載された情報と同じである。
また、送信完了時通知情報は、アプリ部15、25が対向端末に対してアプリ内データを送信完了した際に、アプリ連携部310bがアプリ部15、25に通知するための情報である。送信完了時通知情報に「null」がある場合は、送信完了通知を、アプリ部15、25に返信しないようにもできる。つまり、アプリケーションの機能によっては、データの送信が完了した際に、その確認メッセージが必要な場合もあれば、必要でない場合も存在する。このため、「null」と指定することで、確認メッセージが必要でないことを指定できるようにできる。これにより、UDP(User Datagram Protocol)のような一方通行のデータ転送を行なうことができる。これは、サンプリング周期が微小なアプリ内データ(例えば100ms以内のセンサデータなど)を伝送する際に有効である。
アプリ連携部310bは、各アプリ部15、25から通知される「第1送信データ」を順次、アプリ管理部310に転送する。アプリ管理部310は、上記「第1送信データ」および「アプリ管理テーブル310a」に基づいて、送信データ制御部30aに転送するデータ「第2送信データ」に変換する。
図6は、アプリ管理部が、送信データ制御部に通知する「第2送信データ」の構成を示す図である。「第2送信データ」は、「第1送信データ」に対して、「送信元端末識別子」、「送信先端末識別子」が追加される。送信データ制御部30aは、「第2送信データ」を後述する送信キューに挿入する。また、送信データ制御部30aは、送信キューから、伝送対象となったデータを読み込み、「通信データパケット」に変換し、通信連携部30cに転送する。なお、送信キューは、2種類存在する。双方のキューからのデータ読み込み方法は後述する。
図7は、通信連携部に通知する「通信データパケット」の構成を示す図である。「通信データパケット」は、「第2送信データ」に対して、「送信完了時通知情報」の代わりに「パケット識別子」が付与される。通信連携部30cは、「通信データパケット」を順次通信部14、24に転送する。これにより、通信部14、24は、Bluetooth(登録商標)などの通信モジュールを利用して、通信データパケットを接続中の送信先端末に伝送する。一方、通信データパケットを受信した送信先端末は、上記と逆方向の処理により、そのデータ本体を、該当するアプリ部15、25に転送する。
図8は、送信データ制御部の概略構成を示す図である。本システムにおいて、携帯電話機内蔵のBluetooth(登録商標)伝送路は、1本しか確立することができない。そのため、複数のアプリケーションが動作していても、1つのみのデータストリームを生成する必要がある。また、複数のアプリケーションにも、さまざまな特徴があり、アプリケーションに応じて種々の動作態様がある。つまり、画像データなどのある程度大きいデータサイズをもつものを相手端末に伝送する場合、あるいは、文字入力時などのセンサ検出データなどの微小なデータサイズをもつものを相手端末に伝送する場合がある。例えば、画像データを伝送している最中に、文字入力を行なう場合、データストリームの構成次第では、画像データの伝送が終了しなければ、文字入力データが伝送されず、文字入力のレスポンスが遅延する可能性がある。
そこで、本実施形態では、データの伝送を効率化させるため、送信データ制御部には2つのキューで構成する。1つは「高速キュー81a」であり、もう1つは「低速キュー81b」である。キュー挿入部82は、双方のキュー81a、81bに対するデータ挿入処理を制御し、キュー読出部83は、双方のキュー81a、81bからのデータ読出処理を制御する。
低速キュー81bは、データ送受信の前に、データ送受信の確認を双方で行なった上で、データ送信を行なうために利用する。一方、高速キュー81aは、低速キュー81bのようにデータ送受信前の確認を行なわず、一方的にデータ送信を行なうために利用する。「アプリ内データ」を伝送するアプリ部15、25からの指定情報を参照して、キュー挿入部82は、受信したデータをどちらのキュー81a、81bに挿入するかを判別し、いずれかのキュー81aまたは81bに蓄積する。
図9は、キュー挿入部82の動作を示すフローチャートである。キュー挿入部82は、まず、処理が終了しているかどうかを判断し(ステップS90)、処理が終了している場合には終了する。一方、ステップS90において、処理が終了していない場合は、データ挿入要求があるかどうかを判断する(ステップS91)。データ挿入要求がない場合は、ステップS90へ遷移し、データ挿入要求がある場合は、高速キューへの挿入要求があるかどうかを判断する(ステップS92)。高速キューへの挿入要求がある場合は、高速キューへの挿入が可能であるかどうかを判断し(ステップS93)、高速キューへの挿入が可能である場合は、データを高速キューに挿入して(ステップS94)、ステップS90へ遷移する。
一方、ステップS93において、高速キューへの挿入が可能でない場合は、エラー応答を行なって(ステップS95)、ステップS90へ遷移する。また、ステップS92において、高速キューへの挿入要求が無い場合は、低速キューへの挿入要求があるかどうかを判断する(ステップS96)。低速キューへの挿入要求がある場合は、低速キューへの挿入が可能であるかどうかを判断し(ステップS97)、低速キューへの挿入が可能である場合は、データを低速キューに挿入して(ステップS98)、ステップS90へ遷移する。
また、ステップS96において、低速キューへの挿入要求が無い場合、およびステップS97において、低速キューへの挿入が可能でない場合は、エラー応答を行なって(ステップS99)、ステップS90へ遷移する。
図10は、キュー読出部83の動作を示すフローチャートである。キュー読出部83は、キュー挿入とは非同期に、それぞれのキューに蓄積されたデータを読み出す。図10に示すように、キュー読出部83は、処理が終了しているかどうかを判断し(ステップS100)、処理が終了している場合には終了する。一方、ステップS100において、処理が終了していない場合は、高速キュー内にデータがあるかどうかを判断し(ステップS101)、高速キュー内にデータがある場合は、高速キューからデータの読み込みを行なう(ステップS102)。一方、ステップS101において、高速キュー内にデータがない場合は、低速キュー内にデータがあるかどうかを判断する(ステップS103)。低速キュー内にデータがない場合は、ステップS100へ遷移し、低速キュー内にデータがある場合は、低速キューからデータの読み込みを行なう(ステップS104)。そして、ステップS102またはステップS104において読み込んだデータを通信連携部30cに転送して(ステップS105)、ステップS100へ遷移する。
なお、本実施形態では、データパケット内に、挿入するキューの種別を指定するような構成としたが、伝送データの特徴、あるいはアプリ開発者の意向により、伝送データに優先度をつけるような構成にしてもよい。優先度は、転送データのデータサイズ、アプリケーションの優先度、データ種別などに基づくものとする。
また、MT10の通信部14とPC20の通信部24との間では、Bluetooth(登録商標)などの近距離無線通信を利用して、一方から他方へデータを転送する。このときのデータ転送制御は、従来のBluetooth(登録商標)のSPP(System Platform Processor)などの規格に従う。
次に、受信したキューの処理について説明する。通信部14、24は、対向端末から受信した「通信データパケット」を、以下のような「第1受信データ」に変換する。図11は、「第1受信データ」の構成を示す図である。図11に示すように、第1受信データは、図7に示した通信データパケットと同様の構成を採る。通信連携部30cは、この第1受信データを受信データ制御部30bに転送する。
図12は、受信データ制御部30bの概略構成を示す図である。受信データ制御部30bは、高速キュー120aと低速キュー120bとを備える。高速キュー120aは、データ送受信前の確認を行なわず、一方的にデータ転送を行なうものである。低速キュー120bは、データ送受信の前に、データ送受信の確認を双方で行なうための者である。キュー挿入部122は、「第1受信データ」を、どちらのキュー120a、120bに挿入するかを判別し、いずれかのキューに蓄積する。
図13は、キュー挿入部122の動作を示すフローチャートである。キュー挿入部122は、まず、処理が終了したかどうかを判断し(ステップS130)、処理が終了した場合は、終了する。一方、ステップS130において、処理が終了していない場合は、データ挿入要求があるかどうかを判断する(ステップS131)。データ挿入要求がない場合はステップS130へ遷移し、データ挿入要求がある場合は、高速キューの挿入要求があるかどうかを判断する(ステップS132)。高速キューの挿入要求がある場合は、高速キューにデータを挿入可能であるかどうかを判断する(ステップS133)。高速キューにデータの挿入が可能である場合は、高速キューにデータを挿入して(ステップS134)、ステップS130へ遷移する。
一方、ステップS133において、高速キューにデータを挿入可能でない場合は、エラー応答を行なって(ステップS135)、ステップS130へ遷移する。また、ステップS132において、高速キューへデータの挿入要求がない場合は、低速キューへのデータの挿入要求があるかどうかを判断する(ステップS136)。低速キューへのデータの挿入要求がある場合は、低速キューへデータを挿入可能であるかどうかを判断する(ステップS137)。低速キューへデータを挿入可能である場合は、低速キューへデータを挿入して(ステップS138)、ステップS130へ遷移する。
一方、ステップS136において、低速キューへのデータの挿入要求がない場合、または、ステップS137において、低速キューへデータを挿入可能でない場合は、エラー応答を行なって(ステップS139)、ステップS130へ遷移する。
一方、キュー読込部121は、キュー挿入とは非同期に、それぞれのキューに蓄積されたデータを読み出す。図14は、キュー読込部121の動作を示すフローチャートである。図14に示すように、キュー読込部121は、処理が終了しているかどうかを判断し(ステップS140)、処理が終了している場合には終了する。一方、ステップS140において、処理が終了していない場合は、高速キュー内にデータがあるかどうかを判断し(ステップS141)、高速キュー内にデータがある場合は、高速キューからデータの読み込みを行なう(ステップS142)。一方、ステップS141において、高速キュー内にデータがない場合は、低速キュー内にデータがあるかどうかを判断する(ステップS143)。低速キュー内にデータがない場合は、ステップS140へ遷移し、低速キュー内にデータがある場合は、低速キューからデータの読み込みを行なう(ステップS144)。そして、ステップS142またはステップS144において読み込んだデータをアプリ管理部310に転送して(ステップS145)、ステップS140へ遷移する。
アプリ管理部310は、受信データ制御部30bから転送された「第1受信データ」および「アプリ管理テーブル」に基づいて、アプリ連携部310bに転送するデータ「第2受信データ」に変換する。図15は、アプリ管理部310が、アプリ連携部310bに転送する「第2受信データ」の構成を示す図である。図15に示すように、第2受信データは、図6に示した第2送信データと同様の構成を採る。アプリ連携部310bは、順次「第2受信データ」をアプリ部15、25に転送する。
次に、以下、送信元アプリ部15または25で発生した伝送データを、送信元管理部13または23、送信先管理部13または23を介して、送信先アプリ部15または25に伝送するまでの動作を、データ種別ごとに説明する。図16は、高速キューを使ってACKを返すとして送信する場合の動作を示すフローチャートである。ここでは、送信元がMT10、送信先がPC20であるとして説明する。
まず、送信元であるMT10における送信元アプリ部15が、送信元管理部13に対して送信要求を行なう(ステップS160)。送信元管理部13は、伝送可能判定を行ない(ステップS161)、この判定結果を送信元アプリ部15へ送信する(ステップS162)。送信元アプリ部15は、送信元管理部13から判定結果を受信する(ステップS163)。次に、ステップS161において、伝送可能である場合は、送信元管理部13は、送信先管理部23に対してデータ送信を行なう(ステップS164)。送信先管理部23は、送信元管理部13からデータを受信すると(ステップS165)、送信先アプリ部25に対して、受信通知を送信する(ステップS166)。送信先アプリ部25は、送信先管理部23から受信通知を受信し(ステップS167)、データを受信する(ステップS168)。
一方、送信元管理部23は、送信元管理部13に対して、ステップS165においてデータ受信が成功したことを通知する受信完了通知を行なう(ステップS169)。送信元管理部13は、送信元管理部23から受信完了通知を受信すると、それを送信元アプリ部15に送信し(ステップS170)、送信元アプリ部15は、受信完了通知を受信する(ステップS171)。
図17は、高速キューを使ってACKを返さないとして送信する場合の動作を示すフローチャートである。ここでは、送信元がMT10、送信先がPC20であるとして説明する。まず、送信元であるMT10における送信元アプリ部15が、送信元管理部13に対して送信要求を行なう(ステップS172)。送信元管理部13は、伝送可能判定を行ない(ステップS173)、この判定結果を送信元アプリ部15へ送信する(ステップS174)。送信元アプリ部15は、送信元管理部13から判定結果を受信する(ステップS175)。次に、ステップS173において、伝送可能である場合は、送信元管理部13は、送信先管理部23に対してデータ送信を行なう(ステップS176)。送信先管理部23は、送信元管理部13からデータを受信すると(ステップS177)、送信先アプリ部25に対して、受信通知を送信する(ステップS178)。送信先アプリ部25は、送信先管理部23から受信通知を受信し(ステップS179)、データを受信する(ステップS180)。
図18は、低速キューを使ってACKを返すとして送信する場合の動作を示すフローチャートである。ここでは、送信元がMT10、送信先がPC20であるとして説明する。
まず、送信元であるMT10における送信元アプリ部15が、送信元管理部13に対して送信要求を行なう(ステップS181)。送信元管理部13は、伝送可能判定を行ない(ステップS182)、この判定結果を送信元アプリ部15へ送信する(ステップS183)。送信元アプリ部15は、送信元管理部13から判定結果を受信する(ステップS184)。次に、ステップS182において、伝送可能である場合は、送信元管理部13は、送信先管理部23に対して送信要求通知を行なう(ステップS185)。送信先管理部23は、送信元管理部13から送信要求通知を受信すると、送信先アプリ部25に対して、送信要求通知を送信する(ステップS186)。送信先アプリ部25は、送信先管理部23から送信要求通知を受信し(ステップS187)、送信要求応答を返す(ステップS188)。
送信先管理部23は、送信先アプリ部25から送信要求応答を受信すると、それを送信元管理部13に送信する(ステップS189)。送信元管理部13は、送信先管理部23から送信要求応答を受信すると(ステップS190)、送信先管理部23に対して、データの送信を行なう(ステップS191)。送信先管理部23は、送信元管理部13からデータを受信すると(ステップS192)、送信先アプリ部25に対して、データの受信通知を送信する(ステップS193)。送信先アプリ部25は、送信先管理部23から受信通知を受信し(ステップS194)、データを受信する(ステップS195)。
また、送信先管理部23は、ステップS192において、データを受信した場合は、送信元管理部13に対して、受信完了通知を送信する(ステップS196)。送信元管理部13は、送信先管理部23から受信完了通知を受信すると、その受信完了通知を送信元アプリ部15に送信する(ステップS197)。送信元アプリ部15は、送信元管理部13から受信完了通知を受信する(ステップS198)。
図19は、低速キューを使ってACKを返さないとして送信する場合の動作を示すフローチャートである。ここでは、送信元がMT10、送信先がPC20であるとして説明する。
まず、送信元であるMT10における送信元アプリ部15が、送信元管理部13に対して送信要求を行なう(ステップS199)。送信元管理部13は、伝送可能判定を行ない(ステップS200)、この判定結果を送信元アプリ部15へ送信する(ステップS201)。送信元アプリ部15は、送信元管理部13から判定結果を受信する(ステップS202)。次に、ステップS200において、伝送可能である場合は、送信元管理部13は、送信先管理部23に対して送信要求通知を行なう(ステップS203)。送信先管理部23は、送信元管理部13から送信要求通知を受信すると、送信先アプリ部25に対して、送信要求通知を送信する(ステップS204)。送信先アプリ部25は、送信先管理部23から送信要求通知を受信し(ステップS205)、送信要求応答を返す(ステップS206)。
送信先管理部23は、送信先アプリ部25から送信要求応答を受信すると、それを送信元管理部13に送信する(ステップS207)。送信元管理部13は、送信先管理部23から送信要求応答を受信すると(ステップS208)、送信先管理部23に対して、データの送信を行なう(ステップS209)。送信先管理部23は、送信元管理部13からデータを受信すると(ステップS210)、送信先アプリ部25に対して、データの受信通知を送信する(ステップS211)。送信先アプリ部25は、送信先管理部23から受信通知を受信し(ステップS212)、データを受信する(ステップS213)。
(第2の実施形態)
第2の実施形態に係る分散機器相互制御システムは、自己アプリケーションに実行すべき機能が存在せず、他の情報処理装置が有する他のアプリケーションに実行すべき機能が存在する場合は、他の情報処理装置に対して、他のアプリケーションを実行する旨の信号を出力する。そして、自己アプリケーションの実行結果を表示し、または他の情報処理装置から入力した他のアプリケーションの実行結果を表示する。
図20は、第2の実施形態に係る管理部13または23の概略構成を示すブロック図である。第1の実施形態に係る管理部13または23の一部の構成が異なる。このため、共通の構成には同じ番号を付すものとする。第2の実施形態に係る管理部13、23は、通信管理部30と、アプリ制御部31と、から構成される。通信管理部30は、送信データ制御部30a、受信データ制御部30bおよび通信連携部30cから構成され、アプリ制御部31は、アプリ制御用ライブラリ部31aおよびアプリ連携部31bから構成される。
アプリ連携部31bは、上位のアプリ部15、25と連携するためのインタフェースの役目を果たす。アプリ部15、25からアプリ制御部31へ、あるいは、アプリ制御部31からアプリ部15、25へのデータ転送を行なう。アプリ制御部31は、アプリ情報32および機能情報33を参照しながら、アプリ部15、25から転送要求のあるアプリ内データを、相手端末へデータ転送するよう、送信データ制御部30aに通知する。また、受信データ制御部30bから転送要求のあるアプリ内データに関して、アプリ部15、25へデータ転送するよう、アプリ連携部31bに通知する。
通信連携部30cは、通信部14、24と連携しながら、相手端末とのデータ送受信を制御する。送信データ制御部30aは、図8に示す第1の実施形態と同様の構成を採り、同様の機能を果たす。そして、アプリ制御部31から転送要求のあるアプリ内データに関して、伝送制御しながら、通信連携部30cに伝送データを転送する。受信データ制御部30bは、図12に示す第1の実施形態と同様の構成を採り、同様の機能を果たす。そして、通信連携部30cから転送要求のあるアプリ内データに関して、受信制御しながら、アプリ制御部31に伝送データを転送する。
アプリ制御用ライブラリ部31aは、上位のアプリ部15、25に登録されたアプリケーションが、本システム上で他のアプリと連携動作するために必要な機能群である。端末間の無線通信接続機能、通信連携部を介したデータ送受信機能、2つの端末に共通なデータフォルダを利用したファイル操作機能、液晶画面への描画機能などを有する。また、機能情報には、各端末が有する機能に関する情報があり、アプリケーションが動作する際、この情報を利用して、自端末上の機能を利用するか、対向端末上の機能を利用するかを決定する。
図21は、図20で示したアプリ情報32に登録される際のアプリ情報テーブルの構成例を示す図である。本システム上で動作する任意のアプリケーションは、インターネット通信部16から携帯電話通信網を利用して、ウェブサーバ上からダウンロードする。ダウンロードするアプリケーションは、MT10用およびPC20用の両方であり、ダウンロードしたMT10用アプリは、MT10上の管理部13上に登録される。一方、PC20用アプリは、通信部14、24を介してPC20上の管理部23上に登録される。
また、PC20は、携帯電話通信網を経由してダウンロードせず、USBメモリなどの外部機器を接続してデータをコピーしたり、WiFiなどを利用してサーバからダウンロードしたりしてもよい。アプリ情報の登録時、双方の管理部13、23では、登録したアプリの通信相手となるアプリの識別情報とともに、管理しているアプリを「アプリ情報テーブル」に登録する。
図21に示すアプリ情報テーブルは、アプリ識別子、アプリ名、MTアプリの識別子と、MT10におけるアプリケーションが動作するMT10自体の識別子、PC20アプリケーションの識別子と、PC20のアプリケーションが動作するPC20自体の識別子から構成される。これにより、本管理部13、23上で動作するアプリケーションを複数動作させることができる。また、管理部13、23は、どのアプリケーションから受信したデータであるか、どのアプリケーションに送信すべきデータであるかを把握することができる。
図22は、図20で示した機能情報33に登録される機能情報テーブルの構成例を示す図である。この機能情報テーブルでは、本システム上で動作させる任意のアプリケーションが動作するのに必要なMT10およびPC20が有している機能を、それぞれ管理する。図22に示すように、機能情報テーブルは、機能識別子、機能名、機能利用に必要なデバイス、機能利用時に必要な入力データ形式、機能利用後の出力データ形式、機能利用にあたっての制約事項(ルール)から構成される。これにより、双方の端末が有する機能情報を参照することができる。アプリ制御用ライブラリ31aおよびアプリ制御部31は、この情報を利用して、上位で動作するアプリケーションが正常に動作するための機能が存在するかどうかを判断する。
次に、図20で示したアプリ制御用ライブラリ31aについて説明する。本システムでは、以下のアプリ制御用ライブラリを想定している。
(1)無線通信接続機能
無線通信接続機能は、双方の端末上で動作するアプリケーション間でデータの送受信を行なうために、近距離無線通信デバイスを利用した接続確立、データ送受信路の確立を行なう。
(2)データ送受信機能
データ送受信機能は、双方の端末上で動作するアプリケーション間で、データの送受信を行なう。
(3)ファイル操作機能
ファイル操作機能は、双方のアプリケーションからアクセス可能なデータフォルダ、およびデータファイルを備え、データファイルに対する編集などのファイル操作を行なう。
(4)描画機能
描画機能は、一方の端末から、自端末の液晶画面への描画だけでなく、対向端末の液晶画面への描画をも行なう。
(5)MT保有機能
MT保有機能は、MTが有する機能やデバイスを利用する。例えば、カメラを利用する機能(カメラを起動する、設定する、撮影する、終了する)、GPSを利用する(GPS機能を起動する、GPS情報を取得する、終了する)、アドレス帳を参照する(アドレス帳を起動する、アドレス帳を検索する、情報を取得する、終了する)、ネットワーク機能を利用する(Webサーバに接続する、Webサーバから該当情報をダウンロードする、通信接続を切断する)などがある。
(6)PC保有機能
PC保有機能は、PCが有する機能やデバイスを利用する。例えば、計算能力を利用する機能(CPUを利用する、メモリを利用する)、入力インタフェースデバイスを利用する機能(タッチパネル、マウス、キーボードなどからの入力を受信する)などがある。
次に、本実施形態におけるアプリケーションの制御方法について説明する。各アプリケーションは、利用したい機能をアプリ制御部31に要求する。このとき、アプリ制御部31は、自端末上に、当該機能を処理できるライブラリを保有しているかどうかをチェックする。自端末上で当該機能を処理できるライブラリを保有している場合、アプリ制御部31にてライブラリ処理した後、その結果を、アプリ部15、25に通知する。
一方、自端末上に当該機能を処理できるライブラリを保有していない場合、対向のアプリ制御部31に、同じ要求を行なう。対向のアプリ制御部31は、自端末上に、当該機能を処理できるライブラリを保有しているかどうかをチェックする。アプリ部15、25を介して、該当するライブラリ処理した後、その結果を、同アプリ制御部31を介して、元アプリ制御部31、および、アプリ部15、25に通知する。
図23は、相手端末上のライブラリを利用する場合のシーケンスチャートである。ここでは、MT10が、PC20のライブラリを利用する場合について説明する。まず、MT10のアプリ部15が、タスク処理を開始する(ステップS71)。次に、アプリ部15がアプリ制御部31(MT)に対してライブラリの呼び出しを要求する(ステップS72)。アプリ制御部31(MT)は、アプリ部15からのライブラリ呼び出しを受けて、呼び出しについて判定を行なう(ステップS73)。すなわち、呼び出しを受けたライブラリが自端末に存在するかどうかを判定する。アプリ制御部31(MT)は、呼び出しを受けたライブラリが自端末に存在しないため、PC20に対して呼び出し転送を行なう(ステップS74)。
一方、PC20のアプリ制御部31(PC)は、MT10のアプリ制御部31(MT)から呼び出し転送を受信すると、呼び出し判定を行なう(ステップS75)。すなわち、アプリ制御部31(PC)は、呼び出しを受けたライブラリが自端末に存在するかどうかを判定する。アプリ制御部31(PC)は、呼び出しを受けたライブラリが自端末に存在するため、アプリ部25に対してライブラリを呼び出し(ステップS76、S77)、ライブラリ処理を行なう(ステップS78)。そして、ライブラリ処理結果をアプリ部25に通知する(ステップS79)。
アプリ部25は、アプリ制御部31(PC)からライブラリ処理結果を受信すると(ステップS80)、結果通知を出力する(ステップS81)。この結果通知は、アプリ制御部31(PC)を経由して、MT10のアプリ制御部31(MT)に送信される(ステップS82)。MT10のアプリ制御部31(MT)は、PC20のアプリ制御部31(PC)からライブラリ処理結果通知を受信すると(ステップS83)、アプリ部15に対して結果通知を行なう。アプリ部15は、アプリ制御部31(MT)から結果通知を受信すると(ステップS84)、タスク処理を終了する(ステップS85)。
なお、以上のように双方で保有するライブラリを利用して処理した結果を、双方の液晶画面に出力表示する場合についても、同様にシーケンスチャートに表すことができる。すなわち、アプリ部15、25は、出力内容を作成した後、アプリ制御部31に表示要求を行なう。このとき、出力する端末が、自端末である場合は、アプリ制御部31は、自端末上に表示されるようにライブラリ処理を行なう。一方、対向端末に出力する場合は、アプリ制御部31は、ライブラリ処理を行ないながら、対向端末の液晶画面に出力する。
以上説明したように、本発明は、第1の実施形態のように、データ送信を行なう際に、高速キューと低速キューとを使い分けることができるものであると共に、第2の実施形態のように、MTにはない機能で、PCにある機能を、MTから実行させることができるものである。従って、第1および第2の実施形態を組み合わせて実施することが可能である。すなわち、第2の実施形態のように、MTにはない機能で、PCにある機能を、MTから実行させる際に、高速キューと低速キューとを使い分けることができる。
このような本発明に係る実施形態を用いて、新たなサービスを提供することができる。すなわち、ユーザが、2つの携帯電話機または、一つの携帯電話機と一つのPCを持ち歩くシーンが想定される。本実施形態によれば、2つの携帯端末の両方から、ユーザインタラクションを可能とするサービスを提供することが可能となる。すなわち、近時、Bluetooth(登録商標)等の近距離無線通信手段を搭載している携帯電話機のニーズが拡大している。このため、携帯電話機が持っている機能で、かつPCが持っていない機能を使う場合に、PCから携帯電話機の機能を用いる。一方、PCが持っている機能で、かつ携帯電話機が持っていない機能を使う場合は、携帯電話機からPCの機能を用いる。本発明は、このような利用態様を実現するものである。さらに、近距離無線通信手段におけるセキュリティを強化するために、携帯電話機、PCおよびユーザの三者が揃ったときにのみ、携帯電話機およびPCが利用可能となる仕組みを提供する。ここでは、例えば、生体認証技術や秘密分散技術を用いる。また、近距離無線通信手段を用いたデータ伝送速度を確保し、特に、データ伝送の遅延を回避する仕組みを提供する。そして、データの優先度に応じて、複数のキュー、例えば、高速キューと低速キューとを使い分けることによって、ユーザインタフェースに関するユーザビリティを向上させる。更に、近距離無線通信手段が常時起動することによる電池の消費量を削減する仕組みを提供する。
これにより、ユーザのいわゆる“2台持ち”の状況となった場合に、ユーザのニーズに十分に応え得るサービスの提供が可能となる。
以上説明したように、本実施形態によれば、他の情報処理装置に対してデータを送信する際に、優先度に対応するキューを選択し、選択したキューに送信するデータを格納し、優先度の高いキューから順次データを読み出すので、予め定められた優先度に応じて効率的に送信データの処理を行なうことが可能となる。特に、他の情報処理装置との伝送路が1本しか確立できない場合に複数のアプリケーションを並行して動作させる場合、1つのデータストリームを生成することで、複数のアプリケーションのデータを送受信することが可能となる。また、MT10またはPC20のいずれか一方は、いずれか他方が有している機能を利用することが可能となる。また、1つのタスクを2つの携帯端末を用いて処理することが可能となる。ユーザは、TPOに応じて利用する携帯端末を自由に選択することが可能となる。