通信装置、通信装置の制御方法、およびプログラム
【課題】相手装置と近接させることによって無線リンクを確立してデータ通信を行う通信装置において、双方或いは片方の装置が要求する処理に衝突が生じた場合に、必要な処理ステップ数を低減する。
【解決手段】相手装置と無線リンクを確立して通信する通信装置であって、通信装置が無線リンクを確立するための接続要求を相手装置へ送信し且つ相手装置が接続要求を通信装置へ送信したことによる要求衝突の発生を、相手装置との無線リンクが確立される際に検出する検出部と、通信装置が要求する処理と相手装置が要求する処理の処理順序を接続要求に含まれる情報に基づいて決定する決定部と、要求衝突が検出された場合、決定部により決定された処理順序で相手装置と通信して処理を実施する通信部と、を備える。
【解決手段】相手装置と無線リンクを確立して通信する通信装置であって、通信装置が無線リンクを確立するための接続要求を相手装置へ送信し且つ相手装置が接続要求を通信装置へ送信したことによる要求衝突の発生を、相手装置との無線リンクが確立される際に検出する検出部と、通信装置が要求する処理と相手装置が要求する処理の処理順序を接続要求に含まれる情報に基づいて決定する決定部と、要求衝突が検出された場合、決定部により決定された処理順序で相手装置と通信して処理を実施する通信部と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信装置の制御方法、およびプログラムに関し、特に相手装置との距離が所定の範囲内になるように近接されることにより1対1で無線リンクを確立してデータ通信を行う通信装置、通信装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
近年、NFC(Near Field Communication)やTransferJet(登録商標)などの非接触通信(近接無線通信)が知られている。これらの非接触通信は、通信距離が非常に短く、通信を行う機器同士を数cm以内(例えばNFCは10cm以内、TransferJet(登録商標)は3cm以内)に近づけると無線リンクが接続され、逆に遠ざけると無線リンクが切断されるように制御される。
【0003】
なお、TransferJet(登録商標)では機器同士が1対1でデータ通信を行うことを想定しており、現在ではユースケース等が記載されたホワイトペーパーが公開されている(非特許文献1参照)。非特許文献1には、TransferJet(登録商標)ではユーザが互いの機器を近接させることによりデータの送信が可能であることが開示されている。TransferJet(登録商標)でのデータ送信のための方法としては、ユーザが送信データの選択等の操作を行ってから相手機器に近づけることでデータ通信を行うという方法が考えられる。非接触通信では機器間の距離が少しでも通信範囲外に離れると無線リンクが切断してしまうため、無線リンクの接続を維持したまま送信データの選択等の操作を行うことは困難だからである。非特許文献1には、このようなデータの送信を行う際に、2機器間でデータ送信を実施することの合意を取るためのネゴシエーションを行うことも開示されている。
【0004】
また、このネゴシエーションを利用して、双方の機器が互いにデータを送信し合うための技術も開示されている(特許文献1参照)。具体的なデータ通信方法を以下に説明する。ユーザが両方の機器を操作して送信対象データを選択し、送信アプリケーションを起動する。その状態で、機器同士を無線接続した際に機器間で送信対象データの有無を示す情報を交換することにより、両方の機器が互いにデータを送信し合うことを認識し、連続して夫々のデータ送信を実施する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−283751号公報
【非特許文献】
【0006】
【非特許文献1】“Worlds are About to Touch”[online][平成23年4月13日検索]、インターネット<URL:http://www.transferjet.org/tj/transferjet_whitepaper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1によるデータ通信方法の場合、接続要求の競合の有無に関わらず、送信対象データが無い場合においても、送信対象データが無いことを示す情報を相手装置に通知する。従って、機器同士を無線接続してから実際にデータ送信を行うまでの間、夫々の機器で送信対象データの有無を示す情報の送信/受信と、情報を解析するための処理とが必要となる。
【0008】
しかしながら、TransferJet(登録商標)などの非接触通信では、CPU能力の乏しい携帯型の端末に搭載される場合が多いことから、処理ステップを極力少なくすることが要求される。
【0009】
上記の課題に鑑み、本発明は、相手装置と近接させることによって無線リンクを確立してデータ通信を行う通信装置において、双方或いは片方の装置が要求する処理に衝突が生じた場合に、必要な処理ステップ数を低減する技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成する本発明に係る通信装置は、
相手装置と無線リンクを確立して通信する通信装置であって、
前記通信装置が無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、前記相手装置との無線リンクが確立される際に検出する検出手段と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定手段と、
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施する通信手段と、
を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、相手装置と近接させることによって無線リンクを確立してデータ通信を行う通信装置において、双方或いは片方の装置が要求する処理に衝突が生じた場合に、必要な処理ステップ数を低減することができる。
【図面の簡単な説明】
【0012】
【図1】第1実施形態に係る通信装置の機能ブロック図。
【図2】第1および第2実施形態に係る通信装置を備えるシステム構成図。
【図3】第1および第2実施形態の処理手順を示すフローチャート。
【図4】第1および第2実施形態の処理手順を示すフローチャート。
【図5】第1実施形態の処理手順を示すフローチャート。
【図6】第1および第2実施形態の処理手順を示すフローチャート。
【図7】第1実施形態のシーケンス図。
【図8】第1実施形態のシーケンス図。
【図9】第2実施形態に係る通信装置の機能ブロック図。
【図10】第2実施形態の処理手順を示すフローチャート。
【図11】第2実施形態の処理手順を示すフローチャート。
【図12】第2実施形態の表示例を示す図。
【発明を実施するための形態】
【0013】
(第1実施形態)
図1を参照して、近接無線通信(非接触通信)機能を有する第1実施形態に係る通信装置101の機能ブロック図の一例を説明する。通信装置101は、所定の距離範囲に存在する相手装置と無線リンクを確立してデータを通信する。通信装置101は、通信制御部102と、接続要求衝突制御部103と、制御メッセージ作成部104と、制御メッセージ確認部105と、ユーザインタフェース部106と、アプリケーション部107と、アプリケーションマネージャ部108と、記憶部109と、処理実施順序決定部110と、複数処理実施確認部111と、計時部112とを備える。
【0014】
通信制御部102は、近接無線転送を用いて無線でデータを送受信する際の無線リンクの確立及び切断、並びにデータ伝送制御を行う。近接無線転送の方式としては、TransferJet(登録商標)、NFC等を適用することができる。本実施形態における近接無線通信では、接続要求及び接続応答の送受信が完了した時点で無線リンクの確立(接続)が完了し、データ通信が可能な状態になるものとする。なお、接続要求を送信した側の装置をマスタと呼び、接続応答を送信した側の装置をスレーブと呼ぶものとする。
【0015】
接続要求衝突制御部103は、自装置と相手装置との両方が接続要求を送信したことを検出し、接続要求の衝突を検出した場合は、装置毎にユニークに割り振られた装置ID(装置識別情報)の大小を比較した結果に応じてどちらか一方の装置が接続応答を送信しスレーブとする。
【0016】
制御メッセージ作成部104は、相手装置に制御を要求するための要求メッセージと、相手装置からの制御要求に応答する応答メッセージとを作成する。本実施形態では、マスタ側の装置が要求メッセージを送信でき、スレーブ側の装置が応答メッセージを送信できるものとする。また、要求メッセージとして、接続要求、切断要求、実施処理取得要求、および処理実施要求を定義し、また応答メッセージとして、接続応答および実施処理取得応答を定義する。接続要求は、相手装置に対して近接無線通信の接続を要求するメッセージである。切断要求は、相手装置に対して近接無線通信の切断を要求するメッセージである。実施処理取得要求は、スレーブに対して実施処理取得応答を要求するメッセージである。処理実施要求は、実施する処理を示す情報を含み、スレーブに対して処理の実施を要求するメッセージである。接続応答は、相手装置に対して近接無線通信のリンクが確立したことを通知するメッセージである。実施処理取得応答は、スレーブにおけるユーザ(操作者)からの指示に応じた処理を示すメッセージである。上記の処理実施要求や実施処理取得応答のメッセージには、「PUSH送信」や「PUSH受信」といったデータ転送の方向を示す情報が含まれる。その他に、「OBEX」や「SCSI」といったデータ転送プロトコルを示す情報、「画像ファイル」や「文章ファイル」といったデータの種類を示す情報、「画像再生」や「画像印刷」といったデータ転送以外の動作を示す情報などを含めてもよい。
【0017】
制御メッセージ確認部105は、相手装置から受信した制御メッセージの内容を確認する。ユーザインタフェース部106は、画像、操作メニュー、データ送信状況、及びその他各種情報を表示すると共に、ユーザ(操作者)による各種操作を受付ける。アプリケーション部107は、ユーザインタフェース部106によるユーザ指示を受けて送信、又は受信等のアプリケーションを起動し、各アプリケーションの処理を行う。また、各アプリケーションはアプリケーションマネージャ部108に対してアプリケーションが終了したことを通知することもできる。アプリケーションマネージャ部108は、アプリケーション部107と通信制御部102との間におけるメッセージの仲介を行い、アプリケーション部107におけるアプリケーションの起動の制御や終了通知の受付を行う。
【0018】
記憶部109は、送信対象のデータ、相手装置から受信したデータ、及びその他各種情報を記憶する。例えば、記憶部109には、自装置がデータ送信のマスタ側、スレーブ側のいずれで動作するかを示す情報、接続要求の衝突を検出したことを示す情報、アプリケーションの起動順に関する情報、等が記憶される。
【0019】
処理実施順序決定部110は、自装置側でユーザから指示された処理と、相手装置側で指示された処理との実施順序を接続要求に含まれる情報に基づいて決定する。複数処理実施確認部111は、両方の装置の処理を実施する場合に、2つの処理を実施することを、ユーザインタフェース部106を用いてユーザに確認する。計時部112は、通信制御部102によるリンク確立の継続時間を計時するタイマなどに用いる。
【0020】
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上述した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
【0021】
図2は、本実施形態における通信装置を備えるシステムの構成を示した図である。無線通信装置201と無線通信装置203とは、近接無線転送インタフェース202、近接無線転送インタフェース204により互いに通信可能である。無線通信装置201、および無線通信装置203は、共に図1の機能ブロック構成を有する。なお、近接無線転送インタフェースは、機器に内蔵されていてもケーブル等により外付けされていても構わない。
【0022】
図3乃至図6は本実施形態における動作の手順を示すフローチャートである。また、図7は無線通信装置201と無線通信装置203との両方においてデータ送信操作が行われた場合のシーケンスを示す。そして、図8は、無線通信装置201においてデータ送信操作が行われた場合のシーケンスを示す。以下では、図3乃至図6のフローチャートと、図7および図8のシーケンスについて説明する。
【0023】
なお、以下の説明では、無線通信装置201に着目し、無線通信装置201を自装置として、無線通信装置203を相手装置として定義して説明するが、どちらの装置が自装置か相手装置かは問わず動作が可能である。
【0024】
まず図3と、図4乃至6との関係を説明する。図3では初期状態として、自装置201と相手装置203とは、近接無線転送インタフェース202および近接無線転送インタフェース204による近距離無線通信ができない十分遠い距離に配置されているものとする。図3において、全体処理が開始すると、まずS301において、接続処理が行われる。この接続処理の詳細が図4に示される。接続処理が終了した後に、S302において、接続要求衝突制御部103は、接続要求の衝突が発生したか否かを判定する。接続要求の衝突が発生したと判定された場合(S302;YES)、S303へ進む。一方、接続要求の衝突が発生していないと判定された場合(S302;NO)、S304へ進む。S303において、複数処理が実施される。この複数処理実施の詳細が図5に示される。S304において、単一処理が実施される。この複数処理実施の詳細が図6に示される。S303またはS304の後に、全体処理が終了する。
【0025】
図4では、接続処理が開始すると、S401において、自装置201は、ユーザインタフェース106の操作により送信データの選択、及び送信指示等の処理に関する指示が行われたか否かを判定する。指示が行われたと判定された場合(S401;YES)、S402へ進む。一方、指示が行われていないと判定された場合(S401;NO)、S409へ進む。
【0026】
S402において、自装置201の通信制御部102は、自装置201の装置ID情報を含んだ接続要求を相手装置203へ送信する。その状態でユーザが自装置201と相手装置203とが所定の距離範囲内になるように両装置を近づけると、S403において、自装置201の通信制御部102は、相手装置203からの接続要求を受信したか否かを判定する。接続要求を受信したと判定された場合(S403;YES)、S404へ進む。一方、接続要求を受信していないと判定された場合(S403;NO)、S407へ進む。
【0027】
S404において、自装置201の接続要求衝突制御部103は、接続要求が衝突したと判断し、自装置の装置IDが、相手装置203から受信した接続要求に含まれる装置IDよりも大きいか否かを判定する。自装置201の装置IDが相手装置203の装置IDよりも大きいと判定された場合(S404;YES)、S405へ進む。一方、自装置201の装置IDが相手装置203の装置IDよりも小さいと判定された場合(S404;NO)、S406へ進む。
【0028】
S405において、自装置201の接続要求衝突制御部103は、接続要求が衝突したことを示す情報と自装置201がマスタであることを示す情報とを記憶部109に格納し、接続処理を終了する。S406において、自装置201の接続要求衝突制御部103は、接続要求が衝突したことを示す情報と自装置201がスレーブであることを示す情報とを記憶部109に格納し、接続処理を終了する。
【0029】
そしてS407において、自装置201の通信制御部102は、相手装置203からの接続応答を受信したか否かを判定する。接続応答を受信したと判定された場合(S407;YES)、S408へ進む。一方、接続応答を受信していないと判定された場合(S407;NO)、S403へ戻る。
【0030】
S408において、自装置201の通信制御部102は、自装置201がマスタであることを示す情報を記憶部109に格納し、接続処理を終了する。S409において、自装置201の通信制御部102は、相手装置203からの接続要求を受信したか否かを判定する。
【0031】
接続要求を受信したと判定された場合(S409;YES)、S410へ進む。一方、接続要求を受信していないと判定された場合(S409;NO)、S401へ戻る。
【0032】
S410において、自装置201の通信制御部102は、相手装置203に対して接続応答を送信する。その後、S411において、自装置201の通信制御部102は、自装置201がスレーブであることを示す情報を記憶部109に格納し、接続処理を終了する。
【0033】
図4に示される接続処理が終了すると、図3のS302において、接続要求衝突制御部103は記憶部109を参照し、接続要求の衝突の有無を判定する。接続要求の衝突が有った場合(S302;YES)、双方の装置でユーザによる処理の指示があったと考えられるため、S303へ進み、図5に示される複数の処理を実施するプロセスを開始する。
【0034】
一方、接続要求の衝突が無かった場合(S302;NO)は、一方の装置でのみユーザによる処理の指示があったと考えられるため、S304へ進み、図6に示される単一の処理を実施するプロセスを開始する。
【0035】
まず、図5のフローチャートを参照して、複数処理実施プロセスの動作手順を説明する。
【0036】
S501において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S501;YES)、S502へ進む。一方、自装置がスレーブであると判定された場合(S501;NO)、S513へ進む。
【0037】
S502において、自装置201の通信制御部102は、制御メッセージ作成部104が作成した実施処理取得要求メッセージを相手装置203に対して送信する。
【0038】
S503において、自装置201の通信制御部102は、実施処理取得応答メッセージを受信したか否かを判定する。実施処理取得応答メッセージを受信したと判定された場合(S503;YES)、S504へ進む。一方、実施処理取得応答メッセージを受信していないと判定された場合(S503;NO)、受信するまで待機する。
【0039】
S504において、自装置201の制御メッセージ確認部105は、受信された実施処理取得応答メッセージから相手装置203で指示された処理を確認する。次に、S505において、自装置201の処理実施順序決定部110は、マスタ側(自装置201側)で指示された処理を先に実施し、スレーブ側(相手装置203側)で指示された処理を後で実施するように処理順序を決定する。
【0040】
なお、処理実施中にユーザによるユーザインタフェース部106の操作が必要ない処理を先に実施し、処理実施中のユーザ操作が必要な処理を後で実施するように処理順序を決定してもよい。その他に、両方の装置における送信対象のデータサイズの大小に応じて実施順を決定してもよい。例えば、データサイズが小さい方の処理を先に行うように処理順序を決定してもよい。これらの場合、接続要求に、ユーザによるユーザインタフェース部106の操作の必要の有無を示す操作情報や、データサイズを示すサイズ情報が含まれてもよい。
【0041】
S506において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部104が作成した処理実施要求メッセージを相手装置203に対して送信する。
【0042】
S507において、さらに、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をすることにより、アプリケーション部107は自装置201で指示された処理に対応するアプリケーションを起動し、処理が実施される。
【0043】
S508において、処理が終了すると、自装置201のアプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。
【0044】
S509において、自装置201の通信制御部102は、相手装置203で指示された処理を示す情報を含む処理実施要求メッセージを相手装置203に対して送信する。さらに、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。
【0045】
そして、S510において、自装置201のアプリケーション部107は、相手装置203で指示された処理に対応するアプリケーションを起動し、処理を実施する。S511において、自装置201のアプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。
【0046】
S512において、自装置201の通信制御部102は、相手装置203に対して切断要求を送信する。その後、複数処理実施プロセスを終了する。
【0047】
S513において、自装置201の通信制御部102は、相手装置203から要求メッセージを受信したか否かを判定する。相手装置203から要求メッセージを受信したと判定された場合(S513;YES)、S514へ進む。一方、相手装置203から要求メッセージを受信していないと判定された場合(S513;NO)、受信するまで待機する。
【0048】
S514において、自装置201の制御メッセージ確認部105は、要求メッセージの内容を確認する。要求メッセージの内容が実施処理取得要求であった場合、S515へ進む。要求メッセージの内容が処理実施要求であった場合、S516へ進む。要求メッセージの内容が切断要求であった場合、複数処理実施プロセスを終了する。
【0049】
S515において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部104が作成した実施処理取得応答メッセージを相手装置203に対して送信する。その後、S513へ戻る。
【0050】
またS516において、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。そして、アプリケーション部107は、処理実施要求に示された処理に対応するアプリケーションを起動する。
【0051】
S517において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。その後、S513へ戻る。 さらに、図7を参照して、複数処理実施プロセスのシーケンスについて説明する。ここでは、一例として自装置201をマスタ側として、相手装置203をスレーブ側として説明する。また、自装置201で指示された処理は自装置201から相手装置203へのデータPUSHとし、相手装置203で指示された処理は相手装置203から自装置201へのデータPUSHとする。
【0052】
まず、自装置201から相手装置203へ実施処理取得要求が送信されると(F701)、相手装置203は、相手装置203から自装置201へのデータPUSHの処理を示す実施処理取得応答を自装置201へ送信する(F702)。
【0053】
次に、自装置201は、処理実施順序決定部110により決定された処理の実施順序に従って、自装置201で指示された処理を示す処理実施要求を送信する(F703)。
【0054】
その結果、双方の装置において、自装置201から相手装置203へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F704)。
【0055】
自装置201で指示されたPUSHの処理が完了すると、自装置201から相手装置203に対してPUSH完了通知を送信する(F705)。さらに、自装置201は、相手装置203で指示された処理を示す処理実施要求を相手装置203へ送信し(F706)、双方の装置において、相手装置203から自装置201へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F707)。
【0056】
相手装置203で指示されたPUSHの処理が完了すると、相手装置203は自装置201へPUSH完了通知を送信し(F708)、自装置201は相手装置(203)へ切断要求を送信する(F709)。以上で処理が終了する。 次に、図6を参照して、単一処理実施プロセスの動作手順について説明する。
【0057】
S601において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S601;YES)、S602へ進む。一方、自装置がスレーブであると判定された場合(S601;NO)、S606へ進む。
【0058】
S602において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部(104)が作成した処理実施要求メッセージを相手装置203に対して送信する。
【0059】
S603において、さらに、自装置201のアプリケーションマネージャ部108がアプリケーション部107に対して処理開始の通知をすることにより、アプリケーション部107は、自装置201で指示された処理に対応するアプリケーションを起動し、処理を実施する。
【0060】
S604において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。S605において、自装置201の通信制御部102は、相手装置203に対して切断要求を送信する。その後、単一処理実施プロセスを終了する。
【0061】
一方、自装置がスレーブであると判定された場合(S601;NO)、S606以降の処理を行うが、それらは、複数処理実施プロセスにおけるスレーブの動作と基本的に同じである。複数処理実施プロセスにおけるスレーブの動作と異なる点は、相手装置203からの実施処理取得要求メッセージの受信がないため、図5のS515のような実施処理取得応答に関する動作は必要ないことである。
【0062】
S606において、自装置201の通信制御部102は、相手装置203から要求メッセージを受信したか否かを判定する。相手装置203から要求メッセージを受信したと判定された場合(S606;YES)、S514へ進む。一方、相手装置203から要求メッセージを受信していないと判定された場合(S606;NO)、受信するまで待機する。
【0063】
S607において、自装置201の制御メッセージ確認部105は、要求メッセージの内容を確認する。要求メッセージの内容が処理実施要求であった場合、S608へ進む。要求メッセージの内容が切断要求であった場合、単一処理実施プロセスを終了する。S608において、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。そして、アプリケーション部107は、処理実施要求に示された処理に対応するアプリケーションを起動する。
【0064】
S609において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。その後、S606へ戻る。 さらに、図8を参照して単一処理実施プロセスのシーケンスについて説明する。
【0065】
ここでは、一例として自装置201をマスタ側とし、相手装置203をスレーブ側とし、自装置201で指示された処理は自装置201から相手装置203へのデータPUSHとする。
【0066】
まず、自装置201で指示された処理を示す処理実施要求を送信し(F801)、双方の装置において自装置201から相手装置203へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F802)。自装置201で指示されたPUSHの処理が完了すると、自装置201から相手装置203へPUSH完了通知を送信し(F803)、切断要求を送信する(F804)。
【0067】
以上説明したように、本実施形態によれば、接続要求の衝突の有無に応じて、実施する処理の数を判定することにより、ユーザから指示された全ての処理を最小限の処理ステップで実現する。
【0068】
なお、本実施形態では、接続要求の衝突の有無により実施する処理の数を判定するタイミングを複数処理実施プロセス及び単一処理実施プロセスを開始する前としているが、それ以外のタイミングで判定を行ってもよい。例えば、接続処理が完了した場合に(S301)、マスタは即座に単一処理実施プロセスを開始し(S304)、単一処理実施プロセス終了後に接続要求の衝突が有った場合は、連続してスレーブで指示された処理を実施する、などの方法が考えられる。
【0069】
また、本実施形態で定義した制御メッセージ以外のメッセージに、ユーザから指示された処理を示す情報を含めてもよい。例えば、実施可能な処理のリストを通知するメッセージを用いる場合に、そのメッセージにユーザから指示された処理を示す情報を含める、などの方法が考えられる。
【0070】
(第2実施形態)
図9を参照して、近接無線通信(非接触通信)機能を有する第2実施形態に係る通信装置901の機能ブロック図の一例を説明する。通信装置901は、通信制御部902と、接続要求衝突制御部903と、制御メッセージ作成部904と、制御メッセージ確認部905と、ユーザインタフェース部906と、アプリケーション部907と、アプリケーションマネージャ部908と、記憶部909と、処理実施順序決定部910と、複数処理実施確認部911と、計時部912とを備える。
【0071】
以下では、図1を参照して説明した第1実施形態の機能ブロックとの差異のみについて説明する。複数処理実施確認部911は、両方の装置の処理を実施する場合に、2つの処理を実施することを、ユーザインタフェース部906を用いてユーザに確認する。計時部912は、通信制御部902によるリンク確立状態の継続時間を計時するタイマなどに用いる。本実施形態におけるシステム構成は図2と同様である。
【0072】
図3、図4、図6、図10、および図11のフローチャートを参照して、本実施形態における動作手順を説明する。
【0073】
以下では、第1実施形態の動作フローチャート(図3乃至図7)との差異点を主に説明する。初期状態として、自装置201と相手装置203とは、近接無線転送インタフェース202、近接無線転送インタフェース204による近距離無線通信ができない十分遠い距離に配置されており、図3のS301および図4に示される接続処理を開始した状態である。双方の装置でユーザインタフェース106の操作により送信データの選択、及び送信指示等の処理に関する指示が行われた状態で、ユーザは自装置201と相手装置203との距離が所定の通信範囲内になるように近づける。
【0074】
S301において接続処理が行われ、接続要求の衝突があったと判定された場合(S302;Yes)、S303および図10に示される複数処理実施プロセスが開始する。
【0075】
この本実施形態に係る複数処理実施プロセスについて、図10のフローチャートを参照して説明する。
【0076】
S1001において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S1001;YES)、S1002へ進む。一方、自装置がスレーブであると判定された場合(S1001;NO)、S1015へ進む。
【0077】
S1002乃至S1005の各処理は、第1実施形態で説明したS502乃至S505の各処理と同様であるため、説明を省略する。
【0078】
S1006において、自装置201の複数処理実施確認部911は、双方の装置で指示された複数の処理を連続的に実施してもよいか否かをユーザに確認する。このユーザ確認処理の詳細について、図11のフローチャートを参照して説明する。
【0079】
S1101において、自装置201の複数処理実施確認部911は、ユーザインタフェース部906に複数処理の実施を行うか否かを確認するための表示を行う。本実施形態では、図12に示されるように、実施する処理の内容と順序を表示し、「OK」か「Cancel」かのユーザによる選択を受け付ける。この選択受付処理は、表示画面上でタッチパネルにより受け付けてもよい。その他にも、送信対象のファイルに関する情報やファイル転送に要する時間などを表示してもよい。
【0080】
次に、S1102において、自装置201の計時部912は、リンク確立状態の継続時間の計時を開始する。
【0081】
S1103において、自装置201の複数処理実施確認部911は、計時開始から所定時間以上が経過しているか否かを判定する。
【0082】
所定時間が経過していると判定された場合(S1103;YES)、S1104へ進む。一方、所定時間が経過していないと判定された場合(S1103;NO)、S1105へ進む。
【0083】
S1104において、自装置201の複数処理実施確認部911は、複数処理実施を行うことを示す情報(「OK」)を記憶部909に格納し、ユーザ確認処理を終了する。S1105において、自装置201の通信制御部902は、相手装置203とのリンクが切断しているか否かを判定する。リンクが切断していると判定された場合(S1105;YES)、S1106へ進む。一方、リンクが切断していないと判定された場合(S1105;NO)、S1107へ進む。
【0084】
S1106において、自装置201の複数処理実施確認部911は、複数処理実施を行わないことを示す情報(「Cancel」)を記憶部909に格納し、ユーザ確認処理を終了する。S1107において、自装置201の複数処理実施確認部911は、ユーザインタフェース部906の操作によってユーザが「OK」或いは「Cancel」の選択を行ったか否かを判定する。
【0085】
ユーザが「OK」を選択した場合、S1108へ進む。ユーザが「Cancel」を選択した場合、S1109へ進む。そして、ユーザが選択をしていない場合、S1103へ戻る。
【0086】
S1108において、自装置201の複数処理実施確認部911は、複数処理実施を行うことを示す情報(「OK」)を記憶部909に格納し、ユーザ確認処理を終了する。S1109において、自装置201の複数処理実施確認部911は、複数処理実施を行わないことを示す情報(「Cancel」)を記憶部909に格納し、ユーザ確認処理を終了する。
【0087】
図11のフローチャートの処理が終了すると、S1007へ進む。S1007において、自装置201の複数処理実施確認部911は、複数処理実施を行うか否かを、記憶部909を参照して判定する。複数処理実施を行うと判定された場合(S1007;YES)、S1008へ進む。一方、複数処理実施を行わないと判定された場合(S1007;NO)、S1014へ進む。
【0088】
S1008乃至S1014の各処理は、第1実施形態で説明したS506乃至S512の各処理と同様であるため、説明を省略する。 一方、自装置がスレーブである場合は、S1015乃至S1019の各処理を行うが、これらの処理は、第1実施形態で説明したS513乃至S517の各処理と同様であるため、説明を省略する。
【0089】
以上説明したように、本実施形態によれば、両方の装置においてユーザによるデータ送信操作が行われた場合、無線リンク接続が完了しデータ送信が可能な状態になっても、即座にデータ送信を開始せず、複数処理を連続的に実施してよいかをユーザに確認する。
【0090】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【技術分野】
【0001】
本発明は、通信装置、通信装置の制御方法、およびプログラムに関し、特に相手装置との距離が所定の範囲内になるように近接されることにより1対1で無線リンクを確立してデータ通信を行う通信装置、通信装置の制御方法、およびプログラムに関する。
【背景技術】
【0002】
近年、NFC(Near Field Communication)やTransferJet(登録商標)などの非接触通信(近接無線通信)が知られている。これらの非接触通信は、通信距離が非常に短く、通信を行う機器同士を数cm以内(例えばNFCは10cm以内、TransferJet(登録商標)は3cm以内)に近づけると無線リンクが接続され、逆に遠ざけると無線リンクが切断されるように制御される。
【0003】
なお、TransferJet(登録商標)では機器同士が1対1でデータ通信を行うことを想定しており、現在ではユースケース等が記載されたホワイトペーパーが公開されている(非特許文献1参照)。非特許文献1には、TransferJet(登録商標)ではユーザが互いの機器を近接させることによりデータの送信が可能であることが開示されている。TransferJet(登録商標)でのデータ送信のための方法としては、ユーザが送信データの選択等の操作を行ってから相手機器に近づけることでデータ通信を行うという方法が考えられる。非接触通信では機器間の距離が少しでも通信範囲外に離れると無線リンクが切断してしまうため、無線リンクの接続を維持したまま送信データの選択等の操作を行うことは困難だからである。非特許文献1には、このようなデータの送信を行う際に、2機器間でデータ送信を実施することの合意を取るためのネゴシエーションを行うことも開示されている。
【0004】
また、このネゴシエーションを利用して、双方の機器が互いにデータを送信し合うための技術も開示されている(特許文献1参照)。具体的なデータ通信方法を以下に説明する。ユーザが両方の機器を操作して送信対象データを選択し、送信アプリケーションを起動する。その状態で、機器同士を無線接続した際に機器間で送信対象データの有無を示す情報を交換することにより、両方の機器が互いにデータを送信し合うことを認識し、連続して夫々のデータ送信を実施する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−283751号公報
【非特許文献】
【0006】
【非特許文献1】“Worlds are About to Touch”[online][平成23年4月13日検索]、インターネット<URL:http://www.transferjet.org/tj/transferjet_whitepaper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1によるデータ通信方法の場合、接続要求の競合の有無に関わらず、送信対象データが無い場合においても、送信対象データが無いことを示す情報を相手装置に通知する。従って、機器同士を無線接続してから実際にデータ送信を行うまでの間、夫々の機器で送信対象データの有無を示す情報の送信/受信と、情報を解析するための処理とが必要となる。
【0008】
しかしながら、TransferJet(登録商標)などの非接触通信では、CPU能力の乏しい携帯型の端末に搭載される場合が多いことから、処理ステップを極力少なくすることが要求される。
【0009】
上記の課題に鑑み、本発明は、相手装置と近接させることによって無線リンクを確立してデータ通信を行う通信装置において、双方或いは片方の装置が要求する処理に衝突が生じた場合に、必要な処理ステップ数を低減する技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記の目的を達成する本発明に係る通信装置は、
相手装置と無線リンクを確立して通信する通信装置であって、
前記通信装置が無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、前記相手装置との無線リンクが確立される際に検出する検出手段と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定手段と、
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施する通信手段と、
を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、相手装置と近接させることによって無線リンクを確立してデータ通信を行う通信装置において、双方或いは片方の装置が要求する処理に衝突が生じた場合に、必要な処理ステップ数を低減することができる。
【図面の簡単な説明】
【0012】
【図1】第1実施形態に係る通信装置の機能ブロック図。
【図2】第1および第2実施形態に係る通信装置を備えるシステム構成図。
【図3】第1および第2実施形態の処理手順を示すフローチャート。
【図4】第1および第2実施形態の処理手順を示すフローチャート。
【図5】第1実施形態の処理手順を示すフローチャート。
【図6】第1および第2実施形態の処理手順を示すフローチャート。
【図7】第1実施形態のシーケンス図。
【図8】第1実施形態のシーケンス図。
【図9】第2実施形態に係る通信装置の機能ブロック図。
【図10】第2実施形態の処理手順を示すフローチャート。
【図11】第2実施形態の処理手順を示すフローチャート。
【図12】第2実施形態の表示例を示す図。
【発明を実施するための形態】
【0013】
(第1実施形態)
図1を参照して、近接無線通信(非接触通信)機能を有する第1実施形態に係る通信装置101の機能ブロック図の一例を説明する。通信装置101は、所定の距離範囲に存在する相手装置と無線リンクを確立してデータを通信する。通信装置101は、通信制御部102と、接続要求衝突制御部103と、制御メッセージ作成部104と、制御メッセージ確認部105と、ユーザインタフェース部106と、アプリケーション部107と、アプリケーションマネージャ部108と、記憶部109と、処理実施順序決定部110と、複数処理実施確認部111と、計時部112とを備える。
【0014】
通信制御部102は、近接無線転送を用いて無線でデータを送受信する際の無線リンクの確立及び切断、並びにデータ伝送制御を行う。近接無線転送の方式としては、TransferJet(登録商標)、NFC等を適用することができる。本実施形態における近接無線通信では、接続要求及び接続応答の送受信が完了した時点で無線リンクの確立(接続)が完了し、データ通信が可能な状態になるものとする。なお、接続要求を送信した側の装置をマスタと呼び、接続応答を送信した側の装置をスレーブと呼ぶものとする。
【0015】
接続要求衝突制御部103は、自装置と相手装置との両方が接続要求を送信したことを検出し、接続要求の衝突を検出した場合は、装置毎にユニークに割り振られた装置ID(装置識別情報)の大小を比較した結果に応じてどちらか一方の装置が接続応答を送信しスレーブとする。
【0016】
制御メッセージ作成部104は、相手装置に制御を要求するための要求メッセージと、相手装置からの制御要求に応答する応答メッセージとを作成する。本実施形態では、マスタ側の装置が要求メッセージを送信でき、スレーブ側の装置が応答メッセージを送信できるものとする。また、要求メッセージとして、接続要求、切断要求、実施処理取得要求、および処理実施要求を定義し、また応答メッセージとして、接続応答および実施処理取得応答を定義する。接続要求は、相手装置に対して近接無線通信の接続を要求するメッセージである。切断要求は、相手装置に対して近接無線通信の切断を要求するメッセージである。実施処理取得要求は、スレーブに対して実施処理取得応答を要求するメッセージである。処理実施要求は、実施する処理を示す情報を含み、スレーブに対して処理の実施を要求するメッセージである。接続応答は、相手装置に対して近接無線通信のリンクが確立したことを通知するメッセージである。実施処理取得応答は、スレーブにおけるユーザ(操作者)からの指示に応じた処理を示すメッセージである。上記の処理実施要求や実施処理取得応答のメッセージには、「PUSH送信」や「PUSH受信」といったデータ転送の方向を示す情報が含まれる。その他に、「OBEX」や「SCSI」といったデータ転送プロトコルを示す情報、「画像ファイル」や「文章ファイル」といったデータの種類を示す情報、「画像再生」や「画像印刷」といったデータ転送以外の動作を示す情報などを含めてもよい。
【0017】
制御メッセージ確認部105は、相手装置から受信した制御メッセージの内容を確認する。ユーザインタフェース部106は、画像、操作メニュー、データ送信状況、及びその他各種情報を表示すると共に、ユーザ(操作者)による各種操作を受付ける。アプリケーション部107は、ユーザインタフェース部106によるユーザ指示を受けて送信、又は受信等のアプリケーションを起動し、各アプリケーションの処理を行う。また、各アプリケーションはアプリケーションマネージャ部108に対してアプリケーションが終了したことを通知することもできる。アプリケーションマネージャ部108は、アプリケーション部107と通信制御部102との間におけるメッセージの仲介を行い、アプリケーション部107におけるアプリケーションの起動の制御や終了通知の受付を行う。
【0018】
記憶部109は、送信対象のデータ、相手装置から受信したデータ、及びその他各種情報を記憶する。例えば、記憶部109には、自装置がデータ送信のマスタ側、スレーブ側のいずれで動作するかを示す情報、接続要求の衝突を検出したことを示す情報、アプリケーションの起動順に関する情報、等が記憶される。
【0019】
処理実施順序決定部110は、自装置側でユーザから指示された処理と、相手装置側で指示された処理との実施順序を接続要求に含まれる情報に基づいて決定する。複数処理実施確認部111は、両方の装置の処理を実施する場合に、2つの処理を実施することを、ユーザインタフェース部106を用いてユーザに確認する。計時部112は、通信制御部102によるリンク確立の継続時間を計時するタイマなどに用いる。
【0020】
なお、全ての機能ブロックはソフトウェアもしくはハードウェア的に相互関係を有するものである。また、上述した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、何れかの機能ブロックが更に複数の機能を行うブロックに分かれてもよい。
【0021】
図2は、本実施形態における通信装置を備えるシステムの構成を示した図である。無線通信装置201と無線通信装置203とは、近接無線転送インタフェース202、近接無線転送インタフェース204により互いに通信可能である。無線通信装置201、および無線通信装置203は、共に図1の機能ブロック構成を有する。なお、近接無線転送インタフェースは、機器に内蔵されていてもケーブル等により外付けされていても構わない。
【0022】
図3乃至図6は本実施形態における動作の手順を示すフローチャートである。また、図7は無線通信装置201と無線通信装置203との両方においてデータ送信操作が行われた場合のシーケンスを示す。そして、図8は、無線通信装置201においてデータ送信操作が行われた場合のシーケンスを示す。以下では、図3乃至図6のフローチャートと、図7および図8のシーケンスについて説明する。
【0023】
なお、以下の説明では、無線通信装置201に着目し、無線通信装置201を自装置として、無線通信装置203を相手装置として定義して説明するが、どちらの装置が自装置か相手装置かは問わず動作が可能である。
【0024】
まず図3と、図4乃至6との関係を説明する。図3では初期状態として、自装置201と相手装置203とは、近接無線転送インタフェース202および近接無線転送インタフェース204による近距離無線通信ができない十分遠い距離に配置されているものとする。図3において、全体処理が開始すると、まずS301において、接続処理が行われる。この接続処理の詳細が図4に示される。接続処理が終了した後に、S302において、接続要求衝突制御部103は、接続要求の衝突が発生したか否かを判定する。接続要求の衝突が発生したと判定された場合(S302;YES)、S303へ進む。一方、接続要求の衝突が発生していないと判定された場合(S302;NO)、S304へ進む。S303において、複数処理が実施される。この複数処理実施の詳細が図5に示される。S304において、単一処理が実施される。この複数処理実施の詳細が図6に示される。S303またはS304の後に、全体処理が終了する。
【0025】
図4では、接続処理が開始すると、S401において、自装置201は、ユーザインタフェース106の操作により送信データの選択、及び送信指示等の処理に関する指示が行われたか否かを判定する。指示が行われたと判定された場合(S401;YES)、S402へ進む。一方、指示が行われていないと判定された場合(S401;NO)、S409へ進む。
【0026】
S402において、自装置201の通信制御部102は、自装置201の装置ID情報を含んだ接続要求を相手装置203へ送信する。その状態でユーザが自装置201と相手装置203とが所定の距離範囲内になるように両装置を近づけると、S403において、自装置201の通信制御部102は、相手装置203からの接続要求を受信したか否かを判定する。接続要求を受信したと判定された場合(S403;YES)、S404へ進む。一方、接続要求を受信していないと判定された場合(S403;NO)、S407へ進む。
【0027】
S404において、自装置201の接続要求衝突制御部103は、接続要求が衝突したと判断し、自装置の装置IDが、相手装置203から受信した接続要求に含まれる装置IDよりも大きいか否かを判定する。自装置201の装置IDが相手装置203の装置IDよりも大きいと判定された場合(S404;YES)、S405へ進む。一方、自装置201の装置IDが相手装置203の装置IDよりも小さいと判定された場合(S404;NO)、S406へ進む。
【0028】
S405において、自装置201の接続要求衝突制御部103は、接続要求が衝突したことを示す情報と自装置201がマスタであることを示す情報とを記憶部109に格納し、接続処理を終了する。S406において、自装置201の接続要求衝突制御部103は、接続要求が衝突したことを示す情報と自装置201がスレーブであることを示す情報とを記憶部109に格納し、接続処理を終了する。
【0029】
そしてS407において、自装置201の通信制御部102は、相手装置203からの接続応答を受信したか否かを判定する。接続応答を受信したと判定された場合(S407;YES)、S408へ進む。一方、接続応答を受信していないと判定された場合(S407;NO)、S403へ戻る。
【0030】
S408において、自装置201の通信制御部102は、自装置201がマスタであることを示す情報を記憶部109に格納し、接続処理を終了する。S409において、自装置201の通信制御部102は、相手装置203からの接続要求を受信したか否かを判定する。
【0031】
接続要求を受信したと判定された場合(S409;YES)、S410へ進む。一方、接続要求を受信していないと判定された場合(S409;NO)、S401へ戻る。
【0032】
S410において、自装置201の通信制御部102は、相手装置203に対して接続応答を送信する。その後、S411において、自装置201の通信制御部102は、自装置201がスレーブであることを示す情報を記憶部109に格納し、接続処理を終了する。
【0033】
図4に示される接続処理が終了すると、図3のS302において、接続要求衝突制御部103は記憶部109を参照し、接続要求の衝突の有無を判定する。接続要求の衝突が有った場合(S302;YES)、双方の装置でユーザによる処理の指示があったと考えられるため、S303へ進み、図5に示される複数の処理を実施するプロセスを開始する。
【0034】
一方、接続要求の衝突が無かった場合(S302;NO)は、一方の装置でのみユーザによる処理の指示があったと考えられるため、S304へ進み、図6に示される単一の処理を実施するプロセスを開始する。
【0035】
まず、図5のフローチャートを参照して、複数処理実施プロセスの動作手順を説明する。
【0036】
S501において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S501;YES)、S502へ進む。一方、自装置がスレーブであると判定された場合(S501;NO)、S513へ進む。
【0037】
S502において、自装置201の通信制御部102は、制御メッセージ作成部104が作成した実施処理取得要求メッセージを相手装置203に対して送信する。
【0038】
S503において、自装置201の通信制御部102は、実施処理取得応答メッセージを受信したか否かを判定する。実施処理取得応答メッセージを受信したと判定された場合(S503;YES)、S504へ進む。一方、実施処理取得応答メッセージを受信していないと判定された場合(S503;NO)、受信するまで待機する。
【0039】
S504において、自装置201の制御メッセージ確認部105は、受信された実施処理取得応答メッセージから相手装置203で指示された処理を確認する。次に、S505において、自装置201の処理実施順序決定部110は、マスタ側(自装置201側)で指示された処理を先に実施し、スレーブ側(相手装置203側)で指示された処理を後で実施するように処理順序を決定する。
【0040】
なお、処理実施中にユーザによるユーザインタフェース部106の操作が必要ない処理を先に実施し、処理実施中のユーザ操作が必要な処理を後で実施するように処理順序を決定してもよい。その他に、両方の装置における送信対象のデータサイズの大小に応じて実施順を決定してもよい。例えば、データサイズが小さい方の処理を先に行うように処理順序を決定してもよい。これらの場合、接続要求に、ユーザによるユーザインタフェース部106の操作の必要の有無を示す操作情報や、データサイズを示すサイズ情報が含まれてもよい。
【0041】
S506において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部104が作成した処理実施要求メッセージを相手装置203に対して送信する。
【0042】
S507において、さらに、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をすることにより、アプリケーション部107は自装置201で指示された処理に対応するアプリケーションを起動し、処理が実施される。
【0043】
S508において、処理が終了すると、自装置201のアプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。
【0044】
S509において、自装置201の通信制御部102は、相手装置203で指示された処理を示す情報を含む処理実施要求メッセージを相手装置203に対して送信する。さらに、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。
【0045】
そして、S510において、自装置201のアプリケーション部107は、相手装置203で指示された処理に対応するアプリケーションを起動し、処理を実施する。S511において、自装置201のアプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。
【0046】
S512において、自装置201の通信制御部102は、相手装置203に対して切断要求を送信する。その後、複数処理実施プロセスを終了する。
【0047】
S513において、自装置201の通信制御部102は、相手装置203から要求メッセージを受信したか否かを判定する。相手装置203から要求メッセージを受信したと判定された場合(S513;YES)、S514へ進む。一方、相手装置203から要求メッセージを受信していないと判定された場合(S513;NO)、受信するまで待機する。
【0048】
S514において、自装置201の制御メッセージ確認部105は、要求メッセージの内容を確認する。要求メッセージの内容が実施処理取得要求であった場合、S515へ進む。要求メッセージの内容が処理実施要求であった場合、S516へ進む。要求メッセージの内容が切断要求であった場合、複数処理実施プロセスを終了する。
【0049】
S515において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部104が作成した実施処理取得応答メッセージを相手装置203に対して送信する。その後、S513へ戻る。
【0050】
またS516において、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。そして、アプリケーション部107は、処理実施要求に示された処理に対応するアプリケーションを起動する。
【0051】
S517において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。その後、S513へ戻る。 さらに、図7を参照して、複数処理実施プロセスのシーケンスについて説明する。ここでは、一例として自装置201をマスタ側として、相手装置203をスレーブ側として説明する。また、自装置201で指示された処理は自装置201から相手装置203へのデータPUSHとし、相手装置203で指示された処理は相手装置203から自装置201へのデータPUSHとする。
【0052】
まず、自装置201から相手装置203へ実施処理取得要求が送信されると(F701)、相手装置203は、相手装置203から自装置201へのデータPUSHの処理を示す実施処理取得応答を自装置201へ送信する(F702)。
【0053】
次に、自装置201は、処理実施順序決定部110により決定された処理の実施順序に従って、自装置201で指示された処理を示す処理実施要求を送信する(F703)。
【0054】
その結果、双方の装置において、自装置201から相手装置203へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F704)。
【0055】
自装置201で指示されたPUSHの処理が完了すると、自装置201から相手装置203に対してPUSH完了通知を送信する(F705)。さらに、自装置201は、相手装置203で指示された処理を示す処理実施要求を相手装置203へ送信し(F706)、双方の装置において、相手装置203から自装置201へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F707)。
【0056】
相手装置203で指示されたPUSHの処理が完了すると、相手装置203は自装置201へPUSH完了通知を送信し(F708)、自装置201は相手装置(203)へ切断要求を送信する(F709)。以上で処理が終了する。 次に、図6を参照して、単一処理実施プロセスの動作手順について説明する。
【0057】
S601において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S601;YES)、S602へ進む。一方、自装置がスレーブであると判定された場合(S601;NO)、S606へ進む。
【0058】
S602において、自装置201の通信制御部102は、自装置201で指示された処理を示す情報を含む、制御メッセージ作成部(104)が作成した処理実施要求メッセージを相手装置203に対して送信する。
【0059】
S603において、さらに、自装置201のアプリケーションマネージャ部108がアプリケーション部107に対して処理開始の通知をすることにより、アプリケーション部107は、自装置201で指示された処理に対応するアプリケーションを起動し、処理を実施する。
【0060】
S604において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。S605において、自装置201の通信制御部102は、相手装置203に対して切断要求を送信する。その後、単一処理実施プロセスを終了する。
【0061】
一方、自装置がスレーブであると判定された場合(S601;NO)、S606以降の処理を行うが、それらは、複数処理実施プロセスにおけるスレーブの動作と基本的に同じである。複数処理実施プロセスにおけるスレーブの動作と異なる点は、相手装置203からの実施処理取得要求メッセージの受信がないため、図5のS515のような実施処理取得応答に関する動作は必要ないことである。
【0062】
S606において、自装置201の通信制御部102は、相手装置203から要求メッセージを受信したか否かを判定する。相手装置203から要求メッセージを受信したと判定された場合(S606;YES)、S514へ進む。一方、相手装置203から要求メッセージを受信していないと判定された場合(S606;NO)、受信するまで待機する。
【0063】
S607において、自装置201の制御メッセージ確認部105は、要求メッセージの内容を確認する。要求メッセージの内容が処理実施要求であった場合、S608へ進む。要求メッセージの内容が切断要求であった場合、単一処理実施プロセスを終了する。S608において、自装置201のアプリケーションマネージャ部108は、アプリケーション部107に対して処理開始の通知をする。そして、アプリケーション部107は、処理実施要求に示された処理に対応するアプリケーションを起動する。
【0064】
S609において、処理が終了すると、アプリケーション部107からアプリケーションマネージャ部108へ処理終了の通知がなされる。その後、S606へ戻る。 さらに、図8を参照して単一処理実施プロセスのシーケンスについて説明する。
【0065】
ここでは、一例として自装置201をマスタ側とし、相手装置203をスレーブ側とし、自装置201で指示された処理は自装置201から相手装置203へのデータPUSHとする。
【0066】
まず、自装置201で指示された処理を示す処理実施要求を送信し(F801)、双方の装置において自装置201から相手装置203へのデータPUSHの処理を実施するための送信、受信アプリケーションが起動し、処理が実施される(F802)。自装置201で指示されたPUSHの処理が完了すると、自装置201から相手装置203へPUSH完了通知を送信し(F803)、切断要求を送信する(F804)。
【0067】
以上説明したように、本実施形態によれば、接続要求の衝突の有無に応じて、実施する処理の数を判定することにより、ユーザから指示された全ての処理を最小限の処理ステップで実現する。
【0068】
なお、本実施形態では、接続要求の衝突の有無により実施する処理の数を判定するタイミングを複数処理実施プロセス及び単一処理実施プロセスを開始する前としているが、それ以外のタイミングで判定を行ってもよい。例えば、接続処理が完了した場合に(S301)、マスタは即座に単一処理実施プロセスを開始し(S304)、単一処理実施プロセス終了後に接続要求の衝突が有った場合は、連続してスレーブで指示された処理を実施する、などの方法が考えられる。
【0069】
また、本実施形態で定義した制御メッセージ以外のメッセージに、ユーザから指示された処理を示す情報を含めてもよい。例えば、実施可能な処理のリストを通知するメッセージを用いる場合に、そのメッセージにユーザから指示された処理を示す情報を含める、などの方法が考えられる。
【0070】
(第2実施形態)
図9を参照して、近接無線通信(非接触通信)機能を有する第2実施形態に係る通信装置901の機能ブロック図の一例を説明する。通信装置901は、通信制御部902と、接続要求衝突制御部903と、制御メッセージ作成部904と、制御メッセージ確認部905と、ユーザインタフェース部906と、アプリケーション部907と、アプリケーションマネージャ部908と、記憶部909と、処理実施順序決定部910と、複数処理実施確認部911と、計時部912とを備える。
【0071】
以下では、図1を参照して説明した第1実施形態の機能ブロックとの差異のみについて説明する。複数処理実施確認部911は、両方の装置の処理を実施する場合に、2つの処理を実施することを、ユーザインタフェース部906を用いてユーザに確認する。計時部912は、通信制御部902によるリンク確立状態の継続時間を計時するタイマなどに用いる。本実施形態におけるシステム構成は図2と同様である。
【0072】
図3、図4、図6、図10、および図11のフローチャートを参照して、本実施形態における動作手順を説明する。
【0073】
以下では、第1実施形態の動作フローチャート(図3乃至図7)との差異点を主に説明する。初期状態として、自装置201と相手装置203とは、近接無線転送インタフェース202、近接無線転送インタフェース204による近距離無線通信ができない十分遠い距離に配置されており、図3のS301および図4に示される接続処理を開始した状態である。双方の装置でユーザインタフェース106の操作により送信データの選択、及び送信指示等の処理に関する指示が行われた状態で、ユーザは自装置201と相手装置203との距離が所定の通信範囲内になるように近づける。
【0074】
S301において接続処理が行われ、接続要求の衝突があったと判定された場合(S302;Yes)、S303および図10に示される複数処理実施プロセスが開始する。
【0075】
この本実施形態に係る複数処理実施プロセスについて、図10のフローチャートを参照して説明する。
【0076】
S1001において、自装置201は、記憶部109を参照して自装置201がマスタであるか否かを判定する。自装置201がマスタであると判定された場合(S1001;YES)、S1002へ進む。一方、自装置がスレーブであると判定された場合(S1001;NO)、S1015へ進む。
【0077】
S1002乃至S1005の各処理は、第1実施形態で説明したS502乃至S505の各処理と同様であるため、説明を省略する。
【0078】
S1006において、自装置201の複数処理実施確認部911は、双方の装置で指示された複数の処理を連続的に実施してもよいか否かをユーザに確認する。このユーザ確認処理の詳細について、図11のフローチャートを参照して説明する。
【0079】
S1101において、自装置201の複数処理実施確認部911は、ユーザインタフェース部906に複数処理の実施を行うか否かを確認するための表示を行う。本実施形態では、図12に示されるように、実施する処理の内容と順序を表示し、「OK」か「Cancel」かのユーザによる選択を受け付ける。この選択受付処理は、表示画面上でタッチパネルにより受け付けてもよい。その他にも、送信対象のファイルに関する情報やファイル転送に要する時間などを表示してもよい。
【0080】
次に、S1102において、自装置201の計時部912は、リンク確立状態の継続時間の計時を開始する。
【0081】
S1103において、自装置201の複数処理実施確認部911は、計時開始から所定時間以上が経過しているか否かを判定する。
【0082】
所定時間が経過していると判定された場合(S1103;YES)、S1104へ進む。一方、所定時間が経過していないと判定された場合(S1103;NO)、S1105へ進む。
【0083】
S1104において、自装置201の複数処理実施確認部911は、複数処理実施を行うことを示す情報(「OK」)を記憶部909に格納し、ユーザ確認処理を終了する。S1105において、自装置201の通信制御部902は、相手装置203とのリンクが切断しているか否かを判定する。リンクが切断していると判定された場合(S1105;YES)、S1106へ進む。一方、リンクが切断していないと判定された場合(S1105;NO)、S1107へ進む。
【0084】
S1106において、自装置201の複数処理実施確認部911は、複数処理実施を行わないことを示す情報(「Cancel」)を記憶部909に格納し、ユーザ確認処理を終了する。S1107において、自装置201の複数処理実施確認部911は、ユーザインタフェース部906の操作によってユーザが「OK」或いは「Cancel」の選択を行ったか否かを判定する。
【0085】
ユーザが「OK」を選択した場合、S1108へ進む。ユーザが「Cancel」を選択した場合、S1109へ進む。そして、ユーザが選択をしていない場合、S1103へ戻る。
【0086】
S1108において、自装置201の複数処理実施確認部911は、複数処理実施を行うことを示す情報(「OK」)を記憶部909に格納し、ユーザ確認処理を終了する。S1109において、自装置201の複数処理実施確認部911は、複数処理実施を行わないことを示す情報(「Cancel」)を記憶部909に格納し、ユーザ確認処理を終了する。
【0087】
図11のフローチャートの処理が終了すると、S1007へ進む。S1007において、自装置201の複数処理実施確認部911は、複数処理実施を行うか否かを、記憶部909を参照して判定する。複数処理実施を行うと判定された場合(S1007;YES)、S1008へ進む。一方、複数処理実施を行わないと判定された場合(S1007;NO)、S1014へ進む。
【0088】
S1008乃至S1014の各処理は、第1実施形態で説明したS506乃至S512の各処理と同様であるため、説明を省略する。 一方、自装置がスレーブである場合は、S1015乃至S1019の各処理を行うが、これらの処理は、第1実施形態で説明したS513乃至S517の各処理と同様であるため、説明を省略する。
【0089】
以上説明したように、本実施形態によれば、両方の装置においてユーザによるデータ送信操作が行われた場合、無線リンク接続が完了しデータ送信が可能な状態になっても、即座にデータ送信を開始せず、複数処理を連続的に実施してよいかをユーザに確認する。
【0090】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【特許請求の範囲】
【請求項1】
相手装置と無線リンクを確立して通信する通信装置であって、
前記通信装置が無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、前記相手装置との無線リンクが確立される際に検出する検出手段と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定手段と、
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施する通信手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記通信手段は、前記要求衝突が検出されず且つ前記通信装置により前記接続要求が送信された場合、前記相手装置と通信して前記通信装置が要求する処理を実施することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記通信装置が要求する処理と前記相手装置が要求する処理とを実施するか否かを選択させるための操作を受け付ける受付手段をさらに備えることを特徴とする請求項1または2に記載の通信装置。
【請求項4】
前記通信装置と前記相手装置との前記無線リンクが確立している継続時間を計時する計時手段をさらに備え、
前記継続時間が所定時間よりも長い場合、前記通信手段は前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施し、前記継続時間が前記所定時間より短く且つ前記通信装置により前記接続要求が送信された場合、前記通信手段は前記相手装置と通信して前記通信装置が要求する処理を実施することを特徴とする請求項1乃至3の何れか1項に記載の通信装置。
【請求項5】
前記接続要求には前記通信装置または前記相手装置の装置識別情報が含まれており、
前記決定手段は、前記装置識別情報に基づいて前記通信装置または前記相手装置のそれぞれをマスタまたはスレーブとし、前記通信装置が要求する処理と前記相手装置が要求する処理のうち、前記マスタとなる装置が要求する処理を先に実施するように前記処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項6】
前記接続要求には、前記通信装置が要求する処理または前記相手装置が要求する処理を実施する際に、操作者による操作が行われるか否かを示す操作情報が含まれており、
前記決定手段は、前記操作情報に基づいて、前記通信装置が要求する処理と前記相手装置が要求する処理のうち、前記操作者による操作が行われない処理を先に実施するように処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項7】
前記接続要求には前記通信装置が要求する処理または前記相手装置が要求する処理を実施する際に、当該処理のために送信するデータサイズを示すサイズ情報が含まれており、
前記決定手段は、前記サイズ情報に基づいて前記データサイズが小さい方の処理を先に実施するように処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項8】
相手装置と無線リンクを確立して通信する通信装置の制御方法であって、
前記通信装置が前記無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、無線リンクが確立される際に検出する検出工程と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定工程と、
前記要求衝突が検出された場合、前記決定工程において決定された処理順序で前記相手装置と通信して処理を実施する通信工程と、
を備えることを特徴とする通信装置の制御方法。
【請求項9】
請求項8に記載の通信装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項1】
相手装置と無線リンクを確立して通信する通信装置であって、
前記通信装置が無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、前記相手装置との無線リンクが確立される際に検出する検出手段と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定手段と、
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施する通信手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記通信手段は、前記要求衝突が検出されず且つ前記通信装置により前記接続要求が送信された場合、前記相手装置と通信して前記通信装置が要求する処理を実施することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記要求衝突が検出された場合、前記決定手段により決定された処理順序で前記通信装置が要求する処理と前記相手装置が要求する処理とを実施するか否かを選択させるための操作を受け付ける受付手段をさらに備えることを特徴とする請求項1または2に記載の通信装置。
【請求項4】
前記通信装置と前記相手装置との前記無線リンクが確立している継続時間を計時する計時手段をさらに備え、
前記継続時間が所定時間よりも長い場合、前記通信手段は前記決定手段により決定された処理順序で前記相手装置と通信して処理を実施し、前記継続時間が前記所定時間より短く且つ前記通信装置により前記接続要求が送信された場合、前記通信手段は前記相手装置と通信して前記通信装置が要求する処理を実施することを特徴とする請求項1乃至3の何れか1項に記載の通信装置。
【請求項5】
前記接続要求には前記通信装置または前記相手装置の装置識別情報が含まれており、
前記決定手段は、前記装置識別情報に基づいて前記通信装置または前記相手装置のそれぞれをマスタまたはスレーブとし、前記通信装置が要求する処理と前記相手装置が要求する処理のうち、前記マスタとなる装置が要求する処理を先に実施するように前記処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項6】
前記接続要求には、前記通信装置が要求する処理または前記相手装置が要求する処理を実施する際に、操作者による操作が行われるか否かを示す操作情報が含まれており、
前記決定手段は、前記操作情報に基づいて、前記通信装置が要求する処理と前記相手装置が要求する処理のうち、前記操作者による操作が行われない処理を先に実施するように処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項7】
前記接続要求には前記通信装置が要求する処理または前記相手装置が要求する処理を実施する際に、当該処理のために送信するデータサイズを示すサイズ情報が含まれており、
前記決定手段は、前記サイズ情報に基づいて前記データサイズが小さい方の処理を先に実施するように処理順序を決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
【請求項8】
相手装置と無線リンクを確立して通信する通信装置の制御方法であって、
前記通信装置が前記無線リンクを確立するための接続要求を前記相手装置へ送信し且つ前記相手装置が前記接続要求を前記通信装置へ送信したことによる要求衝突の発生を、無線リンクが確立される際に検出する検出工程と、
前記通信装置が要求する処理と前記相手装置が要求する処理の処理順序を前記接続要求に含まれる情報に基づいて決定する決定工程と、
前記要求衝突が検出された場合、前記決定工程において決定された処理順序で前記相手装置と通信して処理を実施する通信工程と、
を備えることを特徴とする通信装置の制御方法。
【請求項9】
請求項8に記載の通信装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【図1】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【公開番号】特開2012−231429(P2012−231429A)
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2011−100129(P2011−100129)
【出願日】平成23年4月27日(2011.4.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願日】平成23年4月27日(2011.4.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]