(機能ブロック図、及びシステム構成図)
図1は、近接無線通信(非接触通信)機能を有する無線通信装置の機能ブロック図の一例を示す図である。101は無線通信装置全体を示している。
図1において、通信制御部(102)は、近接無線転送を用いて無線でデータを送受信する際の無線リンクの確立及び切断、並びにデータ伝送制御を行う。近接無線転送の方式としては、TransferJet、NFC等を適用することができる。本実施形態における近接無線通信では、接続要求及び接続応答の送受信が完了した時点で無線リンクの確立(接続)が完了し、データ通信が可能な状態になるものとする。
実施処理メッセージ作成部(103)は、ユーザからの指示に応じた処理を示すメッセージ(以下、実施処理メッセージ)を作成する。例えば、ユーザにより送信データの選択、及び該データの送信指示操作が行われた場合、「PUSH送信」を示す実施処理メッセージを作成する。この実施処理メッセージは、データ送信を行うことを示すデータ送信通知と言い換えることもできる。実施処理メッセージ確認部(104)は、相手装置から受信した実施処理メッセージの内容を確認し、相手装置がデータの送信を行おうとしているかを判断する。
データ受信判断部(105)は、実施処理メッセージ以外のデータ受信があったことを判断する。ユーザインタフェース部(106)は、画像、操作メニュー、データ送信状況、及びその他各種情報を表示すると共に、ユーザによる各種操作を受付ける。アプリケーション部(107)はユーザインタフェース部(106)によるユーザ指示を受けて送信、又は受信アプリケーションを起動し、各アプリケーションの処理を行う。アプリケーションマネージャ部(108)は、アプリケーション部(107)と接続制御部(102)との間におけるメッセージの仲介を行い、アプリケーション部(107)における送信、受信アプリケーションの起動、終了等の制御を行う。
記憶部(108)は、送信対象のデータ、相手装置から受信したデータ、及びその他各種情報を記憶する。例えば、自装置がデータ送信の優先側、非優先側のいずれで動作するかを示す情報、アプリケーションの起動順に関する情報、等が記憶される。計時部(109)は、実施処理メッセージを送信した後、相手装置からの実施処理メッセージの受信を待機する一定時間を計時するタイマ(実施処理タイマ)などに用いる。
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上記機能ブロックは一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
図2は、本実施形態におけるデータ送受信システムを示した図である。無線通信装置1(201)と無線通信装置2(203)は、近接無線転送インタフェース(202,204)により互いに通信可能である。無線通信装置1(201)、無線通信装置2(203)共に図1の構成を有する。なお、近接無線転送インタフェースは、機器に内蔵されていてもケーブル等により外付けされていても構わない。
(両方の無線通信装置が実施処理通知を行う場合のシーケンス)
図3は本実施形態におけるシーケンスの一例を示した図である。図3では、無線通信装置1(201)と無線通信装置2(203)の両方においてデータ送信操作が行われた場合のシーケンスを示している。
無線通信装置1(201)において、ユーザによるユーザインタフェース(106)の操作により送信データの選択(指定)、及び送信指示が行われると(F301)、アプリケーション部(107)は送信アプリケーションを起動する(F302)。送信アプリケーションが起動された後、ユーザは無線通信装置1(201)と無線通信装置2(203)との距離が所定の通信範囲内になるように近づける。
無線通信装置1(201)のアプリケーション部(107)は、PUSH送信の要求をアプリケーションマネージャ部(108)に送信する(F303)。なお、ユーザインタフェース(106)からアプリケーションマネージャ部(108)にPUSH要求を送り、アプリケーションマネージャ部(108)が、アプリケーション部に対して送信アプリケーションの起動指示を送信する、という流れでも構わない。PUSH要求を受信したアプリケーションマネージャ部(108)は、接続要求を接続制御部(102)へ送る(F304)。
また、無線通信装置2(203)でも同様の処理が行われるものとする(F305、F306、F307、F308)。アプリケーションマネージャ部(108)からの接続要求を受けた無線通信装置1(201)、無線通信装置2(203)の接続制御部(102)は、キャリアセンスを行い、早いもの勝ちで接続要求を相手装置へ送信する。ここでは、無線通信装置2(203)からの接続要求が先に送信されたものとして説明する(F309)。
無線通信装置1(201)は接続要求を受信すると、接続応答を無線通信装置2(203)に対して送信する(F310)。なお、本実施形態における近接無線通信では、一方の装置から送信された接続要求に対する他方からの接続応答が受信された時点で、無線リンクの接続が完了する。無線リンク接続が完了すると、両装置はデータの送受信が可能な状態となる。
無線通信装置2(203)は接続応答を受信すると、自装置が優先側となると判断し、その旨を記憶部(108)に記憶させる。一方、無線通信装置1(201)は、先に相手装置から接続要求を受信すると、自装置が非優先側になると判断し、その旨を記憶部(108)に記憶させる。ここで、優先/非優先側とは、送信しようとするデータがある場合に相手装置よりも先にデータの送信を行う権利があるか否か、ということを示している。
無線通信装置2(203)の接続制御部(102)は接続応答を受信すると、アプリケーションマネージャ部(108)に対し、接続応答を通知する(F311)。無線通信装置2(203)のアプリケーションマネージャ部(108)は、接続応答を受信すると、「PUSH送信」を示す実施処理メッセージを接続制御部(102)に送る(F312)。無線通信装置2(203)の接続制御部(102)は、アプリケーションマネージャ部(108)から受信した実施処理メッセージを無線通信装置2(203)へ送信(F313)する。
実施処理メッセージ(F313)を受信した無線通信装置1(201)の接続制御部(102)は、アプリケーションマネージャ部(108)に対し、該実施処理メッセージを通知する(F314)。無線通信装置1(201)の実施処理メッセージ確認部(104)は、メッセージの確認を行い、無線通信装置2(203)の要求する処理が「PUSH送信」であると判断する。そして、無線通信装置1(201)のアプリケーションマネージャ部(108)は、送信アプリケーションを終了して受信アプリケーションを起動するよう指示するための制御メッセージをアプリケーション部(107)に通知する(F315)。無線通信装置1(201)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、起動中の送信アプリケーションを終了し、受信アプリケーションを起動する(F320)。そして、データ送信の優先側である無線通信装置2(203)からのPUSH送信に備える。
また、無線通信装置1(201)のアプリケーションマネージャ部(108)は、「PUSH処理」を示す実施処理メッセージを接続制御部(102)に対して送信する(F316)。接続制御部(102)は、無線通信装置2(203)に対して実施処理メッセージを送信する(F317)。
実施処理メッセージ(F317)を受信した無線通信装置2(203)の接続制御部(102)は、アプリケーションマネージャ部(108)に対し、該実施処理メッセージを通知する(F318)。無線通信装置2(203)の実施処理メッセージ確認部(104)は、メッセージの確認を行い、無線通信装置1(201)の要求する処理が「PUSH処理」であると判断する。そして、無線通信装置2(203)のアプリケーションマネージャ部(108)は、起動中の送信アプリケーションによりデータ送信を開始するよう指示するための制御メッセージをアプリケーション部(107)に通知する(F319)。該制御メッセージには、データの送信を行った後に送信アプリケーションを終了し、受信アプリケーションを起動するよう制御するための指示も含まれる。無線通信装置2(203)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、起動中の送信アプリケーションを用いて無線通信装置1(201)に対するPUSH送信を開始する(F321)。なお、図示はしていないが、PUSH送信処理においては、受信側の装置は1単位、もしくは複数単位のデータを受信する毎に確認応答であるACKを返信している。
無線通信装置2(203)のアプリケーション部(107)は、PUSH送信が完了するとPUSH完了通知を送信する(F322)。そして、送信アプリケーションを終了させると共に、受信アプリケーションを起動し(F324)、データ送信の非優先側である無線通信装置1(201)からのPUSH送信に備える。
また、無線通信装置1(201)のアプリケーション部(107)では、PUSH完了通知(F322)を受信すると、受信アプリケーションを終了させ、送信アプリケーションを再起動させる(F323)。そして、無線通信装置1(201)のアプリケーション部(107)は、ユーザにより選択済みのデータの無線通信装置2(203)に対するPUSH送信を開始する(F325)。PUSH送信が完了すると、無線通信装置1(201)のアプリケーション部(107)はPUSH完了通知を送信し(F326)、送信アプリケーションを終了させる(F327)。また、無線通信装置2(203)のアプリケーション部(107)は、PUSH完了通知(F326)を受信すると、受信アプリケーションを終了する(F328)。
無線通信装置1(201)、無線通信装置2(203)のアプリケーション部(107)は、夫々送信、受信アプリケーションを終了すると、終了通知メッセージをユーザインタフェース部(106)へ通知する(F329、F330)。そして、該終了通知メッセージを受けた夫々のユーザインタフェース部(106)は、データ送信の完了を示す旨を表示(報知)する。なお、音声等によりユーザに報知する構成としてもよい。なお、データの受信も完了した旨も報知するようにしてもよい。
このように、無線通信装置2(203)のアプリケーション部(107)は、自機器からのデータ送信が完了したタイミングでは終了通知メッセージをユーザインタフェース部(106)へ送信しない。よって、自機器のデータ送信が完了したとしても、相手装置からのデータ送信が完了するまではその旨がユーザインタフェース部(106)に表示されない。従って、先にデータ送信が完了した装置のユーザが、データ通信が全て完了したと勘違いして相手装置との距離を離してしまうといった事態を回避することができる。
次に、一方のみにおいてデータ送信操作が行われた場合のシーケンスについて説明する。図4は、無線通信装置2(203)においてデータ送信のためのユーザ操作が行われ、無線通信装置1(201)と近づけられた場合のシーケンスを示した図である。
無線通信装置2(203)において、ユーザによるユーザインタフェース(106)の操作により送信データの選択(指定)、及び送信指示が行われると(F401)、アプリケーション部(107)は送信アプリケーションを起動する(F402)。送信アプリケーションが起動された後、ユーザは無線通信装置2(203)と無線通信装置1(201)との距離が所定の範囲内になるよう近づける。
無線通信装置2(203)のアプリケーション部(107)は、PUSH送信の要求をアプリケーションマネージャ部(108)に送信する(F403)。PUSH要求を受信したアプリケーションマネージャ部(108)は、接続要求を接続制御部(102)へ送る(F404)。
無線通信装置2(203)の接続制御部(201)は、接続要求を無線通信装置1(201)に対して送信する(F405)。無線通信装置1(201)は接続要求を受信すると、接続応答を無線通信装置2(203)に対して送信する(F406)。無線通信装置2(203)は接続応答を受信すると、自装置が優先側となると判断し、その旨を記憶部(108)に記憶させる。一方、無線通信装置1(201)は、相手装置から接続要求を受信すると、自装置が非優先側になると判断し、その旨を記憶部(108)に記憶させる。
無線通信装置2(203)の接続制御部(102)は接続応答を受信すると、アプリケーションマネージャ部(108)に対し、接続応答を通知する(F407)。
無線通信装置2(203)のアプリケーションマネージャ部(108)は、接続応答を受信すると、「PUSH送信」を示す実施処理メッセージを接続制御部(102)に対して送信する(F408)。接続制御部(102)は無線通信装置1(201)に対して実施処理メッセージを送信する(F409)。実施処理メッセージ(F409)を受信した無線通信装置1(201)の接続制御部(102)は、アプリケーションマネージャ部(108)に対し、該実施処理メッセージを通知する(F410)。無線通信装置1(201)の実施処理メッセージ確認部(104)は、メッセージの確認を行い、無線通信装置2(203)の要求する処理が「PUSH送信」であると判断する。そして、無線通信装置1(201)のアプリケーションマネージャ部(108)は、受信アプリケーションを起動するよう指示するための制御メッセージをアプリケーション部(107)に通知する(F411)。無線通信装置1(201)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、受信アプリケーションを起動し(F416)、無線通信装置2(203)からのPUSH送信に備える。
また、無線通信装置1(201)のアプリケーションマネージャ部(108)は、実施処理メッセージを接続制御部(102)に対して送信し(F412)、接続制御部(102)は無線通信装置2(203)に対して実施処理メッセージを送信する(F413)。なお、無線通信装置1(201)においてはユーザによるデータ送信、受信のいずれの操作も行われていないため、実施処理メッセージの内容は「NULL」とする。
実施処理メッセージ(F413)を受信した無線通信装置2(203)の接続制御部(102)は、アプリケーションマネージャ部(108)に対し、該実施処理メッセージを通知する(F414)。無線通信装置2(203)の実施処理メッセージ確認部(104)は、メッセージの確認を行い、無線通信装置1(201)の要求する処理が特にないと判断する。そして、無線通信装置2(203)のアプリケーションマネージャ部(108)は、起動中の送信アプリケーションによりデータ送信を開始するよう指示するための制御メッセージをアプリケーション部(107)に対して通知する (F415)。無線通信装置2(203)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、起動中の送信アプリケーションを用いて無線通信装置1(201)に対するPUSH送信を開始する(F417)。
無線通信装置2(203)のアプリケーション部(107)は、PUSH送信が完了するとPUSH完了通知を送信し(F418)、送信アプリケーションを終了する(F420)。また、無線通信装置1(201)のアプリケーション部(107)では、PUSH完了通知(F418)を受信すると、受信アプリケーションを終了させる(F419)。無線通信装置1(201)、無線通信装置2(203)のアプリケーション部(107)は、夫々受信、送信アプリケーションを終了すると、終了通知メッセージをユーザインタフェース部(106)へ通知する(F421、F422)。そして、該終了通知メッセージを受けた夫々のユーザインタフェース部(107)は、データ通信の完了を示す旨を表示(報知)する。なお、音声等によりユーザに報知する構成としてもよい。
なお、上記説明では、無線通信装置1(201)においてユーザによるデータの受信操作が行われていない場合について説明したが、受信操作が行われた場合も処理が大きく変わることはない。ユーザによりデータの受信指示が行われた場合は、無線通信装置1(201)のアプリケーション部(107)は、F416ではなく最初に受信アプリケーションを起動する。そして、アプリケーションマネージャ部(108)は実施処理メッセージ(F410)を受信すると、アプリケーション部(107)に対してデータの受信開始を指示するための制御メッセージ(F411)を送信することになる。
以上、図3、4を用いて説明したように、本実施形態では、無線通信装置においてユーザによるデータ送信操作が行われた場合、無線リンクの接続が完了したとしても即座にデータ送信を開始せずに、まずは相手装置との間で実施処理メッセージの送受信を行う。そして、相手装置から受信した実施処理メッセージの内容を確認し、相手装置もデータ送信を行おうとしていることを認識した場合には、データの送信順を決定し、該決定結果に基づいてアプリケーションの制御を行う。データの送信順の決定方法としては、例えば、接続応答を受信した装置(即ち接続要求を送信した装置)が先にデータ送信を行い、接続要求を受信した装置(即ち接続応答を送信した装置)がその後にデータ送信を行うと決定する。
また、相手装置からデータ送信通知である実施処理メッセージが送られてこない場合は、自装置のみデータ送信を行うものと判断し、データ送信を開始する。また、一方の装置でユーザがデータ受信操作を行わなくても、相手装置からの実施処理メッセージを受けて受信アプリケーションを起動するので、データの送信側のみで操作を行えば近接無線通信によるデータ通信を行うことができる。よって、双方の装置が上述の実施処理通知を行う機能を有していれば、確実にユーザの希望するデータ伝送を完了させることができる。
1対1でデータ通信を行うシステムにおいては、送信対象のデータが指定された状態で相手装置との無線リンクが確立した場合、携帯電話の赤外線通信のように、自装置からのデータ送信が完了した時点で無線リンクを切断してしまうことが考えられる。一方、本実施形態によれば、送信対象のデータが指定された状態で無線リンクが確立した場合でも、相手装置からもデータ送信通知があれば自装置からのデータ送信が完了したとしても無線リンクを切断せずに相手装置からのデータ送信に備える。従って、両方の装置で送信対象のデータが指定された状態で近接された場合でも、エラーを回避して互いにデータ通信を行うことができる。
(一方の無線通信装置が実施処理通知を行わない場合のシーケンス)
次に、上述の実施処理通知を行う装置と、実施処理通知を行わない装置(以下、レガシ装置とする)との間でデータ通信を行う場合について説明する。以下の説明では、無線通信装置1(201)はレガシ装置であり、図1のブロック構成における一部の機能(103、104、105等)を有していないものとする。
図5は、無線通信装置2(203)においてデータ送信操作が行われ、無線通信装置1(201)においてデータ受信操作が行われた場合のシーケンスを示した図である。
無線通信装置1(201)において、ユーザのユーザインタフェース(106)の操作によりデータの受信が指示される(F501,S1101)と、アプリケーション部(107)は受信アプリケーションを起動する(F502)。
無線通信装置2(203)において、ユーザのユーザインタフェース(106)の操作により送信データの選択(指定)、及び送信指示が行われると(F503)、アプリケーション部(107)は送信アプリケーションを起動する(F504)。送信アプリケーションが起動された後、ユーザは無線通信装置2(203)と無線通信装置1(201)との距離が所定の範囲内になるよう近づける。
無線通信装置2(203)のアプリケーション部(107)は、PUSH送信の要求をアプリケーションマネージャ部(108)に送信する。PUSH要求を受信したアプリケーションマネージャ部(108)は、接続要求を接続制御部(102)へ送る(F505)。PUSH要求を受信したアプリケーションマネージャ部(108)は、接続要求を接続制御部(102)へ送る(F506)。
無線通信装置2(203)の接続制御部(201)は、接続要求を無線通信装置1(201)に対して送信する(F507)。無線通信装置1(201)は接続要求を受信すると、無線通信装置2(203)に対して接続応答を送信する(F508)。無線通信装置2(203)は接続応答を受信すると、自装置が優先側となると判断し、その旨を記憶部(108)に記憶させる。
無線通信装置2(203)の接続制御部(102)は接続応答を受信すると、アプリケーションマネージャ部(108)に対し、接続応答を通知する(F509)。無線通信装置2(203)のアプリケーションマネージャ部(108)は、接続応答を受信すると、「PUSH送信」を示す実施処理メッセージを接続制御部(102)に送る(F510)。接続制御部(102)は無線通信装置1(201)に対して実施処理通知を送信する(F511)。
ここで、無線通信装置1(201)はレガシ装置のため、実施処理メッセージを理解できず、無線通信装置2(203)に対して実施処理メッセージの応答は行わない。また、無線通信装置1(201)ではデータの受信操作が行われたため、無線通信装置1(201)からデータの送信も行わない。
その結果、無線通信装置2(203)の計時部(109)は、実施処理タイマのタイムアウトを検知することとなり、アプリケーションマネージャ部(108)にタイムアウト通知を送信する(F512)。アプリケーションマネージャ部(108)は、相手装置からのデータ送信は行われないと判断し、起動中の送信アプリケーションによりデータ送信を開始するよう指示するための制御メッセージをアプリケーション部(107)に対して通知する(F513)。無線通信装置2(203)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、起動中の送信アプリケーションを用いて無線通信装置1(201)に対するPUSH送信を開始する(F514)。
無線通信装置2(203)のアプリケーション部(107)は、PUSH送信が完了するとPUSH完了通知を送信し(F515)、送信アプリケーションを終了する(F517)。また、無線通信装置1(201)のアプリケーション部(107)では、PUSH完了通知(F515)を受信すると、受信アプリケーションを終了させる(F516)。無線通信装置1(201)、無線通信装置2(203)のアプリケーション部(107)は、夫々受信、送信アプリケーションを終了すると、終了通知メッセージをユーザインタフェース部(106)へ通知する(F518、F519)。そして、該終了通知メッセージを受けた夫々のユーザインタフェース部(107)は、データ送信の完了を示す旨を表示(報知)する。なお、音声等によりユーザに報知する構成としてもよい。
図6は、無線通信装置2(203)だけではなく、レガシ装置である無線通信装置1(201)においてもデータ送信操作が行われた場合のシーケンスを示した図である。
無線通信装置2(203)から無線通信装置1(201)に対する実施処理メッセージが送信されるまでの処理(F601〜F613)については図3のシーケンスにおけるF301〜F313と同様なので、ここでの説明を省略する。
無線通信装置1(201)はレガシ装置のため、実施処理メッセージ(F613)を理解できず、無線通信装置2(203)に対して実施処理メッセージの応答は行わない。無線通信装置1(201)は、優先側である無線通信装置2(203)からのデータ送信がないと判断し、PUSHによるデータ送信を開始する(F614)。
しかしながら、無線通信装置2(203)では受信アプリケーションが起動されていないため、無線通信装置2(203)の接続制御部(102)は無線通信装置1(201)からのデータをアプリケーション部(107)へは送信せず、PUSH送信が成功しない。無線通信装置1(201)は、送信したデータに対する無線通信装置2(203)からの確認応答(ACK信号)が受信できないので、送信データの再送を行う。
無線通信装置2(203)の接続制御部(102)は、何らかのデータを受信をしていることは分かるため、受信通知をアプリケーションマネージャ部(108)に送信する(F615)。
無線通信装置2(203)の計時部(109)で稼動中だった実施処理タイマがタイムアウトすると、アプリケーションマネージャ部(108)にタイムアウト通知が送信される(F616)。アプリケーションマネージャ部(108)は、接続制御部(102)からの受信通知を受信済みであるため、相手装置はレガシ装置であり、該相手装置からのデータ送信が行われていると判断する。そして、相手装置から送信されるデータの受信処理を行うために、送信アプリケーションを終了して受信アプリケーションを起動するよう指示するための制御メッセージをアプリケーション部(107)に通知する(F617)。無線通信装置2(203)のアプリケーション部(107)は、受信した制御メッセージの内容に従い、起動中の送信アプリケーションを終了し、受信アプリケーションを起動する(F618)。
無線通信装置2(203)の受信アプリケーションが起動すると、無線通信装置1(201)から送信されたデータは無線通信装置2(203)のアプリケーション部まで到達するようになり、PUSH送信が正常に行われる(F619)。
なお、上記説明において無線通信装置2(203)のアプリケーションマネージャ部(108)は実施処理タイマのタイムアウトを待ってから(F616)、受信アプリケーションの起動指示を行っていた(F617)。しかしながら、必ずしもタイムアウトになるまで実施処理メッセージの受信を待機する必要はなく、接続制御部(102)からの受信通知(F615)を受信したタイミングで受信アプリケーションの起動指示を送信するようにしてもよい。また、その際は、受信通知を受信した時点で起動中の実施処理タイマを停止するようにしてもよい。こうすることにより、タイムアウトまで待機するよりも線通信装置1(201)からのデータの受信開始タイミングを早くすることができるので、データ受信完了までの時間も短縮される。
データの送信が終了した無線通信装置1(201)は、PUSH完了通知を無線通信装置2(203)に送信し(F620)、送信アプリケーションを終了する(F621)。またPUSH完了通知を受信した無線通信装置2(203)では、受信アプリケーションを終了する(F622)。
無線通信装置1(201)、無線通信装置2(203)のアプリケーション部(107)は、夫々送信、受信アプリケーションを終了すると、終了通知メッセージをユーザインタフェース部(106)へ通知する(F623、F624)。該終了通知メッセージを受けた無線通信装置1(201)のユーザインタフェース部(106)は、データ送信の完了を示す旨を表示(報知)する。なお、音声等によりユーザに報知する構成としてもよい。一方、該終了通知メッセージを受けた無線通信装置2(203)のユーザインタフェース部(106)は、相手装置からのデータ受信は完了したが、自装置からのデータ送信は完了していないことを示すメッセージを表示する。なお、データ送信を完了させたい場合は再度データの送信操作(データの送信指示を行ってから送信先の装置へ近づける)を行うようユーザに促すメッセージを表示させてもよい。
以上、図5、6を用いて説明したように、本実施形態では、相手装置から実施処理メッセージが送られて来ない場合も即座にデータの送信を開始せず、相手装置からのデータ送信があるか否かを確認してから自装置からのデータ送信を行う。所定時間が経過しても相手装置から実施処理メッセージが送信されず、更に他のデータも送信されてこない場合は自装置からのデータ送信を開始することにより、データの送信処理を確実に行うことができる。
相手装置から実施処理メッセージが送信されず他のデータが送信されてきた場合は、データの受信処理に切替えることにより、少なくとも相手装置からのデータの受信は確実に行うことができる。つまり、両装置共にデータ送信操作が行われた場合、いずれのデータ送信処理もエラーとなることが考えられるが、本実施形態によれば少なくとも一方のデータ送信は完了させることができる。また、データの送信ができなかったもう一方の装置においても、再度データの送信操作を行うよう促すメッセージが表示されるので、ユーザは改めてデータ送信操作を行うことによりデータ送信を完了させることができ、ユーザの利便性を向上させることができる。
(動作フローチャート)
次に各無線通信装置の処理フローについて説明する。図8は、処理が開始された後、優先側と非優先側のどちらになるかが決定されるまでの処理フローを示した図である。
まず、無線通信装置は、ユーザによるデータの送信操作が行われるか(S801)、データの受信操作が行われるか(S803)、もしくはユーザ操作が行われない状態で相手装置からの接続要求を受信したか(S806)、によって処理が分かれる。
ユーザにより送信データの選択(指定)、及び送信指示が行われると(S801のYes)、無線通信装置は送信アプリケーションを起動する(S802)。その後、ユーザが無線通信装置と相手装置とを近づけると、無線通信装置は相手装置から先に接続要求が送られてくるかを確認し(S807)、接続要求を受信しなければ相手装置に対して接続要求を送信する(S808)。無線通信装置は、接続要求を送信後、相手装置から接続応答が送信されるのを待機し(S809)、接続応答を受信したら自装置が優先側になると決定し(S810)、図9の処理に進む。なお、図3〜図6のシーケンスにおける無線通信装置2(203)が上記処理を行っている。
S807において、相手装置から先に接続要求を受信した場合、該相手装置に対して接続応答を送信する(S811)。この場合、無線通信装置は自装置が非優先側になると決定し(S812)、図10の処理に進む。なお、図3のシーケンスにおける無線通信装置1(201)が上記処理を行っている。
ユーザによりデータの受信指示が行われた場合(S801のNo、S803のYes)、無線通信装置は受信アプリケーションを起動し(S804)、相手装置からの接続要求の受信を待機する(S805)。そして、相手装置から接続要求を受信したら、該相手装置に対して接続応答を送信し(S811)、自装置が非優先側になると決定した後に(S812)、図10の処理に進む。
ユーザによる送信操作、受信操作のいずれも行われていない状態で相手装置から接続要求を受信した場合(S801のNo、S803のNo、S806のYes)、該相手装置に対して接続応答(S811)を送信する。そして、自装置が非優先側になると決定し(S812)、図10の処理に進む。なお、図4のシーケンスにおける無線通信装置1(201)が上記処理を行っている。
図9は、優先側に決定された無線通信装置が行う処理フローを示した図である。
まず、優先側に決定された無線通信装置は、相手装置に対して実施処理メッセージを送信する(S901)。ここでは、データ送信通知である「PUSH送信」を示す実施処理メッセージが送信される。そして該無線通信装置は、実施処理タイマによる計時を開始する(S902)。
該タイマがタイムアウトする前に相手装置から実施処理メッセージを受信した場合は(S903のNo、S904のYes,S905のYes)、受信した実施処理メッセージの内容を確認する(S907)。相手装置からの実施処理メッセージの内容が自装置と同じく「PUSH送信」である場合、自装置がデータ送信の優先側であるので、自装置が先にデータ送信を行ってから相手装置からのデータを受信することを決定する(S908)。
相手装置からの実施処理メッセージの内容が「NULL」の場合、相手装置はデータ送信を要求していないため、無線通信装置は自装置からのデータ送信のみを行う、と判断する(S909)。なお、相手装置からの実施処理メッセージに「NULL」が含まれている場合に限らず、実施処理メッセージの内容がデータの受信要求である場合も同様にデータ送信のみを行う、と判断する。
S902で起動したタイマがタイムアウトする前に相手装置から実施処理メッセージ以外のデータを受信した場合(S903のNo、S904のYes、S905のNo)、その旨を記憶しておく(S906)。
S902で起動したタイマがタイムアウトすると(S903のYes)、それ以前に相手装置から実施処理メッセージ以外のデータを受信したかを確認する(S910)。実施処理メッセージ以外のデータを受信していれば、相手装置からのデータ受信のみ行うと判断する(S911)。実施処理メッセージ以外のデータを受信していなければ(S910のNo)、自装置からのデータ送信のみ行う、と判断する(S912)。S908、S909、S911、S912でデータの送信、受信のどちらを行うか、又はデータ送信の順序を決定すると、図7の処理に進む。
なお、上記説明では、実施処理メッセージ以外のデータを受信した場合でも(S905のNo)、実施処理タイマがタイムアウトするのを待っていたが(S903のYes)、タイムアウトするまで待たなくてもよい。すなわち、実施処理メッセージ以外のデータを受信した時点で(S905のNo)、実施処理タイマによる計時を停止し、相手装置からのデータ受信のみ行うと決定(S911)するようにしてもよい。このようにすることにより、データ通信開始までの時間をより短縮することができる。
図10は、非優先側に決定された無線通信装置が行う処理フローを示した図である。
まず、非優先側に決定された無線通信装置は、相手装置から実施処理メッセージが送信されてくるのを待機する(S1001)。相手装置から送信された実施処理メッセージを受信すると、その内容を確認し(S1002)、該相手装置に対して実施処理メッセージを送信する(S1003)。ここで、自装置においてもユーザによるデータ送信操作が行われていた場合は、データ送信通知である「PUSH送信」を示す実施処理メッセージを送信する。ユーザによるデータの受信操作が行われていた場合、又はユーザによる送信操作、受信操作のいずれも行われていない場合は、「NULL」を含む実施処理メッセージを送信する。なお、「NULL」の代わりに、データの受信要求を示す実施処理メッセージを送信してもよい。
「PUSH送信」を示す実施処理メッセージを送信した場合、自装置が非優先側であるため、先に相手装置からのデータを受信してから自装置のデータを送信する、と判断する(S1004)。「NULL」を含む実施処理メッセージ、又はデータの受信要求を示す実施処理メッセージを送信した場合、相手装置からのデータ受信のみ行う、と判断する(S1005)。
相手装置から実施処理メッセージが送信されず(S1001のNo)、他のデータが送信されてきた場合は(S1006)、相手装置は実施処理通知機能を有していないということである。従ってこの場合は、自装置からのデータ送信は行わず、相手装置から送信されるデータの受信のみ行うと判断する(S1005)。
S1004、S1005においてデータの送信順、又はデータ受信のみ行うか否かを決定すると、図7の処理に進む。
図7は、図9又は図10の処理により決定した送受信の役割、及び送信順に基づいてデータの送信、又は受信を行う際の処理フローを示した図である。
図9のS908で自装置がデータ送信してから相手装置からのデータ受信を行うと決定された場合、S701に進み、データのPUSH送信を開始する。PUSH送信が終了すると、無線通信装置はPUSH完了通知を送信し(S702)、送信アプリケーションを終了する(S703)。そして、無線通信装置は、受信アプリケーションを起動して相手装置から送信されるデータの受信を開始する(S704)。相手装置からのPUSH完了通知を受信すると(S705)、無線通信装置は受信アプリケーションを終了する(S706)。
図10のS1004で相手装置からのデータを受信してから自装置のデータ送信を行うと決定された場合、S707に進み、起動中の送信アプリケーションを終了する。そして、無線通信装置は受信アプリケーションを起動し、相手装置から送信されるデータの受信を開始する(S708)。相手装置からのPUSH完了通知を受信すると(S709)、無線通信装置は受信アプリケーションを終了すると共に(S710)、送信アプリケーションを再起動する(S711)。そして、無線通信装置はデータのPUSH送信を開始し(S712)、PUSH送信が終了するとPUSH完了通知を送信した後に(S713)、送信アプリケーションを終了する(S714)。
図9のS909又はS912にて自装置のみデータ送信を行うと決定された場合は、S715に進み、起動中の送信アプリケーションを用いてデータのPUSH送信を開始する。PUSH送信が終了すると、無線通信装置はPUSH完了通知を送信し(S716)、送信アプリケーションを終了する。
図10のS911又は図10のS1005にて相手装置からのデータ受信のみ行うと決定された場合は、S718に進む。そして無線通信装置は、受信アプリケーションを未起動であれば起動し、相手装置から送信されるデータの受信を開始する。相手装置からPUSH完了通知が送信されると(S719)、無線通信装置は受信アプリケーションを終了する(S720)。
そして、S706、S714、S717、S720にて送信、又は受信アプリケーションが終了すると、無線通信装置はデータ通信が完了した旨を表示し(S721)、処理を終了する。なお、データの送信操作が行われたのにも拘らず、相手装置が実施処理通知機能を有していないためデータの受信のみ行った場合は、S721にて相手装置からのデータ受信は完了したが、自装置からのデータ送信は完了していないことを示すメッセージを表示する。また、データ送信を完了させたい場合は再度データの送信操作(データの送信指示を行ってから送信先の装置へ近づける)を行うようユーザに促すメッセージを表示させてもよい。
以上説明したように、本実施形態によれば、ユーザによるデータ送信操作が行われた場合、無線リンク接続が完了しデータ送信が可能な状態になっても、即座にデータ送信を開始せず、相手装置もデータの送信を要求しているかを確認する。
なお、上記説明では、近接無線通信システムのユースケースとして、ユーザが送信データの選択、及び送信指示を行ってから相手装置と近接させることによりデータ通信を行う場合について説明したが、送信指示が行われない場合も考えられる。例えば、送信対象のデータが選択された状態、もしくは送信対象のデータのみディスプレイに表示されている状態で無線リンクが確立すると、該選択中、もしくは表示中のデータを相手装置に送信する、といったユースケースも考えられる。このようなユースケースの場合であっても、本発明は適用可能である。なお、この場合は、無線リンクが確立した際に選択中、もしくは表示中のデータが、送信対象として指定されたデータということになる。
また、上記説明では、接続要求及び接続応答を送受信することにより無線リンク接続が完了後、実施処理メッセージの送受信を行うものとして説明したが、接続要求及び接続応答に実施処理メッセージを含めて送信するようにしてもよい。例えば、接続要求及び接続応答の両方にデータ送信を示す情報が含まれていれば、優先側である接続要求の送信元装置が先にデータ送信を行い、非優先側である接続応答の送信元装置がその後にデータ送信を行うと決定される。そして、決定した結果に応じて送信、受信アプリケーションの制御を行う。こうすることにより、実施処理メッセージを別途送受信する場合に比べ、データ送信を開始するまでの時間が短縮されるので、結果としてデータ通信完了までの時間も短縮することができる。
また、上記説明では、ユーザによる送信データの選択、及び送信指示が行われると送信アプリケーションのみ起動されるものとして説明したが、受信アプリケーションも起動するようにしても構わない。この場合、相手装置からデータ送信通知を受信した場合は、自装置からのデータ送信が完了したとしてもアプリケーションを終了せず、起動中の受信アプリケーションにより相手装置からのデータ受信に備える。そして、相手装置からのデータ送信が完了した時点で受信アプリケーションを終了するようにすればよい。このようにすることにより、送信、受信アプリケーションの起動及び終了を簡単に制御することができる。
また、上記説明では、接続要求を送信した装置が先に実施処理通知を送信する場合について説明したが、接続応答を送信した装置が先に実施処理通知を送信する構成にしてもよい。
また、本実施形態の機能を実現するソフトウェアのコンピュータプログラムを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。