以下に、本発明に係る実施形態に係る接続装置100について、図面を参照して説明する。
図1に、本発明に係る実施形態に係る接続装置100の概略を示す。接続装置100は、後述する他の装置(図示せず)と、有線、無線のいずれかの方法あるいはこれらの組み合わせにより通信することが可能となっている。なお、例えば移動体通信を介したインターネット、無線LAN(Local Area Network)を介した広域ネットワーク、USB(登録商標)ケーブル等の有線通信、Bluetooth(登録商標)等の近距離無線、HDMI(High−Definition Multimedia Interface:登録商標)ケーブル等の有線通信、の各種通信方法を用いて、接続装置100に他の装置が接続される。
また、接続装置100は、典型的には、車両等の移動体に搭載される。ただし、車両等の移動体に搭載されるものに限定されず、建物内に配置されるものであってもよいし、利用者が携帯可能な大きさ、形状を有するものであってもよい。
また、接続装置100と通信を介して接続可能な他の装置は、本実施形態においては、携帯電話機器等の端末であり、例えばスマートフォンやフィーチャーフォンであるが、これに限られることはない。例えば、PDA(Personal Digital Assistance)、ノートパソコン、タブレットパソコン、ウェアラブルパソコン、冷蔵庫やテレビジョン等の家電機器等その他の情報処理装置であってもよい。
本実施形態においては、接続装置100と、他の装置とは、操作者の指示に従って無線通信可能な状態になると、あるいは操作者がUSBケーブルやHDMIケーブル等の物理線をつなげると、通信のための接続を確立させる。
ここで、他の装置は、接続装置100に対して、例えばハンズフリー通信を行うことや、音楽ファイル等を送信することが可能である。もちろん、これに限られず、ストリーミングデータを再生するよう指示してストリーミングデータを送信することも可能であるし、あるいは旅程計画等に含まれる位置情報や経路情報を送信することも可能である。
接続装置100は、制御部110と、記憶部120と、移動体通信部130と、無線LAN通信部131と、USB通信部132と、Bluetooth通信部133と、HDMI通信部134と、を備える。
制御部110は、様々な処理を行う中心的ユニットである。例えば各種センサやGPS受信装置、FM多重放送受信装置等から出力される情報に基づいて現在地を算出するものであってもよい。また、得られた現在地の情報に基づいて、表示に必要な地図データを記憶部等から読み出し、表示情報を生成するものであってもよい。
また、制御部110は、例えば、読み出した地図データをグラフィックス展開し、地図データ等を用いて、現在地又はユーザから指示された出発地と、目的地(または、経由地や立ち寄り地)と、を結ぶ最適な経路である推奨経路を探索するものであってもよい。なお、制御部110は、このような処理に限定されず、他の処理を実施するものであってもよい。
接続装置100の制御部110は、各デバイス間をバス110Eで接続した構成である。制御部110は、数値演算及び各デバイスを制御するといった様々な処理を実行するCPU(Central Processing Unit)110Aと、記憶装置を含んで構成される記憶部120から読み出した地図データ、音楽データなどを格納するRAM(Random Access Memory)110Bと、プログラムやデータを格納するROM110Cと、各種ハードウェアを制御部110と接続するためのI/F(インターフェース)110Dと、を有する。
なお、接続装置100は、制御部110等で生成されたグラフィックス情報を表示するユニットであるディスプレイ等を備えるものであってもよい。例えば、ディスプレイは、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイなどで構成される。
記憶部120は、HDD(Hard Disk Drive)やSSD(Solid
State Drive)、不揮発性メモリカードといった、少なくとも読み書きが可能な記憶媒体で構成される記憶装置により実現される。
記憶部120は、アプリ通信方式記憶部121と、アプリ種別優先度記憶部122と、通信共用可否記憶部123と、通信状態記憶部124と、を含む。
図2は、アプリ通信方式記憶部121の構成例を示す図である。アプリ通信方式記憶部121には、接続装置100において実行されるプロセスであるアプリケーションソフトウェアごとに、使用可能な通信方式を特定可能に対応付けられて格納される。すなわち、アプリ通信方式記憶部121は、プロセスごとに使用可能な通信方式を特定する使用通信方式情報を格納しているといえる。なお、本実施形態においては、説明を簡略化するためにアプリケーションソフトウェアの実行単位はプロセスであるものとして表現しているが、これに限られるものではない。例えば、アプリケーションソフトウェアが複数のプロセスにより実現される場合には、複数のプロセスをまとめてアプリケーションとして識別されるものであってよい。また、一つのプロセス内に複数のアプリケーションソフトウェアの起動単位が混在する場合には、各アプリケーションソフトウェアの起動単位で認識されるものであってもよい。
アプリ通信方式記憶部121には、アプリ識別子121Aと、アプリ名121Bと、アプリ種別121Cと、通信方式121Dと、が含まれる。
アプリ識別子121Aは、アプリケーションソフトウェアを接続装置100上で一意に特定する情報である。アプリ名121Bは、アプリ識別子121Aにて特定されるアプリケーションソフトウェアの正式名称、通称、略称等の名称である。
アプリ種別121Cは、アプリ識別子121Aにて特定されるアプリケーションソフトウェアの種別を特定する情報である。例えば、アプリ種別121Cには、接続装置100と他の装置との通信の制御系、ナビゲーション系、オーディオ系、音声認識系、その他の種別のいずれかが格納される。この種別は、これに限られず、アプリ種別121Cには、例えば、継続して通信する必要があるようなリアルタイム通信系プロセスと、所定のタイミングで通信すれば足りるような間欠通信系プロセスと、を区別可能な種別を特定する情報が格納されるものであってもよい。
通信方式121Dは、アプリ識別子121Aにて特定されるアプリケーションソフトウェアが使用する通信方式を特定する情報である。通信方式121Dには、例えば、Bluetooth通信におけるSPP(Serial Port Profile)、A2DP(Advanced Audio Distribution Profile)、HFP(Hands−Free Profile)等のプロファイルが含まれる。また例えば、通信方式121Dには、IEEE802.11a/b/g/n等の無線LAN通信におけるインフラストラクチャ通信、アドホック通信等の区別、あるいはUSB、携帯電話網等の移動体通信、HDMI等の各種の通信方式が含まれる。
図3は、アプリ種別優先度記憶部122の構成例を示す図である。アプリ種別優先度記憶部122には、接続装置100において実行されるプロセスであるアプリケーションソフトウェアを分類する種別ごとに、通信方式の使用が競合する場合の優先度を特定する情報が対応付けて格納される。すなわち、アプリ種別優先度記憶部122は、プロセスの種類ごとに予め割り当てられた優先度を特定する種別優先度情報を格納しているといえる。アプリ種別優先度記憶部122には、アプリ種別122Aと、優先度122Bと、が含まれる。
アプリ種別122Aは、アプリ種別121Cと同様に、アプリケーションソフトウェアの種別を特定する情報である。優先度122Bは、アプリ種別122Aごとに、排他的に同一の通信方式を使用する必要がある場合(例えば、共用を許可しない通信方式である場合)に、他のアプリケーションソフトウェアのプロセスとの間でいずれのプロセスが優先的に通信を使用可能であるのかを判定するための情報であり、例えば優先度の値が小さいほど優先して使用可能であることを示す情報である。
図4は、通信共用可否記憶部123の構成例を示す図である。通信共用可否記憶部123には、接続装置100において使用可能な通信方式ごとに、同一の通信方式について同期間に複数のプロセスからの使用を許可するものである(共用可能である)か否かを特定する情報が対応付けて格納される。すなわち、通信共用可否記憶部123は、同期間において複数のプロセス間で通信方式が共用可能か否かを特定する共用可否情報を格納しているといえる。通信共用可否記憶部123には、通信方式123Aと、共用可否123Bと、が含まれる。
通信方式123Aには、通信方式121Dと同様に、例えば、Bluetooth通信におけるSPP、A2DP、HFP等のプロファイル等が含まれる。また例えば、通信方式123Aには、IEEE802.11a/b/g/n等の無線LAN通信におけるインフラストラクチャ通信、アドホック通信等の区別、あるいはUSB、携帯電話網等の移動体通信、HDMI等の各種の通信方式が含まれる。
共用可否123Bは、通信方式123Aにより特定される通信方式ごとに、共用が可能であるか否かを特定する情報である。
図5は、通信状態記憶部124の構成例を示す図である。通信状態記憶部124には、接続装置100において使用可能な通信方式ごとに、接続可能な他の装置との通信が使用可能であるか否か、また実際に他の装置との通信を行っているプロセスがどのプロセスであるのかを特定する情報が対応付けて格納される。通信状態記憶部124には、通信方式124Aと、使用可否124Bと、アプリ識別子124Cと、アプリ種別124Dと、が含まれる。
通信方式124Aには、通信方式121Dと同様に、例えば、Bluetooth通信におけるSPP、A2DP、HFP等のプロファイル等が含まれる。また例えば、通信方式124Aには、IEEE802.11a/b/g/n等の無線LAN通信におけるインフラストラクチャ通信、アドホック通信等の区別、あるいはUSB、携帯電話網等の移動体通信、HDMI等の各種の通信方式が含まれる。
使用可否124Bは、通信方式124Aにより特定される通信方式ごとに、接続可能な他の装置との間で共通して使用可能であるか否かを特定する情報である。例えば、接続装置100においてBT−SPP3による通信、すなわちBluetoothのSPPプロファイルによる通信の3つ目のコネクションによる通信が可能である場合に、他の装置が2つ目までのコネクションにしか対応できない場合には、BT−SPP3の使用可否124Bには使用不可を示す「不可」の情報が格納される。
アプリ識別子124Cは、通信方式124Aを使用しているプロセスにより実現されるアプリケーションソフトウェアを特定する情報である。アプリ種別124Dは、アプリ識別子124Cにて特定されるアプリケーションソフトウェアの種別を特定する情報である。
図1に戻って説明する。図示しないが、接続装置100は、音声入力装置としてマイクロフォンと、音声出力装置としてスピーカと、各種入力装置としてコントローラやタッチパネル、出力装置としてディスプレイや印刷装置、各種センサ装置として衛星波受信装置やジャイロセンサ、加速センサ、車速センサ、外部情報取得装置として可搬記憶媒体等に格納された情報を読み取る記憶媒体読取装置等を備えるものであってもよい。
移動体通信部130は、所定の周波数による電波の送受信が可能なアンテナ150を介して携帯電話網の基地局等と通信を行う。移動体通信部130は、所定の周波数帯域における通信に対応する。
無線LAN通信部131は、所定の周波数による電波の送受信が可能なアンテナ151を介して、IEEE802.11a/b/g/n等の無線LAN通信を行い、他の装置との通信を可能とする。
USB通信部132は、USB1.0、2.0、3.0等のUSB規格を用いて、USBケーブルにより接続された他の装置との通信を可能とする。
Bluetooth通信部133は、所定の周波数による電波の送受信が可能なアンテナ153を介して、Bluetoothの各種プロファイルを用いて、無線通信により他の装置との通信を可能とする。
HDMI通信部134は、HDMI規格を用いて、HDMIケーブル等により接続された他の装置との通信を可能とする。
すなわち、移動体通信部130、無線LAN通信部131、USB通信部132、Bluetooth通信部133、HDMI通信部134は、互いに異なる通信方式により他の装置との通信を行う複数の通信部であるといえる。
制御部110には、接続装置100自身の起動管理等、基本的な制御を行う基本制御部101と、実行されるプロセスごとに通信方式を割り当てる制御を行う通信方式割当制御部102と、が含まれる。
通信方式割当制御部102は、実行を開始するプロセスについて、そのプロセスが使用可能な通信方式をアプリ通信方式記憶部121から検索して特定し、使用可能な通信方式が共用可能か否かを通信共用可否記憶部123から検索して特定する。使用可能な通信方式が共用可能でなく、かつ、そのプロセスと異なる実行中のプロセスがその通信方式を既に使用している場合には、通信方式割当制御部102は、実行中のプロセスと実行を開始するプロセスとの優先度をアプリ種別優先度記憶部122を検索して特定し、優先度の高低に応じてその通信方式を使用するプロセスを決定して割り当てる。
すなわち、通信方式割当制御部102は、実行を開始するプロセスについて、プロセスが使用可能な通信方式を、使用通信方式情報を用いて特定し、通信方式が共用可能でなく、かつ、そのプロセスと異なる実行中のプロセスがその通信方式を既に使用している場合に、実行中のプロセスと実行を開始するプロセスとの優先度に応じて通信方式を使用するプロセスを割り当てる通信方式割当制御部であるともいえる。
上記した制御部110の各機能部、すなわち基本制御部101、通信方式割当制御部102は、CPU110Aが所定のプログラムを読み込み実行することにより構築される。そのため、RAM110Bには、各機能部の処理を実現するためのプログラムが記憶されている。
なお、上記した各構成要素は、接続装置100の構成を、理解を容易にするために、主な処理内容に応じて分類したものである。そのため、構成要素の分類の仕方やその名称によって、本願発明が制限されることはない。接続装置100の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
また、各機能部は、ハードウェア(ASIC、GPUなど)により構築されてもよい。また、各機能部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
[動作の説明]次に、接続装置100が実施する起動管理処理の動作について説明する。図6に示す起動管理処理は、接続装置100が起動を開始すると開始される。
まず、通信方式割当制御部102は、通信方式の使用可否を特定する(ステップS001)。具体的には、通信方式割当制御部102は、接続装置100が使用可能な通信方式を基本制御部101に問い合わせて、使用可能な通信方式を特定する。基本制御部101は、この問い合わせに対して、移動体通信部130、無線LAN通信部131、USB通信部132、Bluetooth通信部133、HDMI通信部134のそれぞれに通信可能であるか否か問い合わせを行い、その結果に応じて使用可否を特定する。
そして、通信方式割当制御部102は、外部機器の変更の有無を判定する(ステップS002)。具体的には、通信方式割当制御部102は、他の装置(外部機器)を検出し、前回のチェック時に接続されていた装置と同じである場合には変更が無いと判定し、異なる場合には、変更があると判定する。
外部機器に変更がない場合(ステップS002にて「No」の場合)には、通信方式割当制御部102は、後述するステップS007に制御を進める。
外部機器に変更がある場合(ステップS002にて「Yes」の場合)には、通信方式割当制御部102は、外部機器との接続が開始されているか否かを判定する(ステップS003)。具体的には、通信方式割当制御部102は、変更があった外部機器との通信が確立されているか否かを判定する。外部機器との接続が開始されていない場合(ステップS003にて「No」の場合)には、通信方式割当制御部102は、後述するステップS010に制御を進める。
通信方式割当制御部102は、外部機器が対応できる通信方式を特定する(ステップS004)。具体的には、通信方式割当制御部102は、他の装置に対して一つまたは複数の通信方式で接続を試みて、使用可能な通信方式を用いて、当該他の装置に対して使用可能な通信方式を知らせるよう指示する。そして、通信方式割当制御部102は、他の装置から使用可能な通信方式を得る。または、通信方式割当制御部102は、外部の所定のサーバー等から、当該他の装置の型番情報等に基づき、通信可能に対応している通信方式の一覧を取得するようにしてもよい。
そして、通信方式割当制御部102は、接続装置100が使用可能な通信方式のうち、外部機器が対応できる通信方式を使用可と設定する(ステップS005)。具体的には、通信方式割当制御部102は、ステップS001において特定した接続装置100が使用可能な通信方式と、ステップS004において他の装置から得た使用可能な通信方式と、をマッチングさせ、共通して使用可能な通信方式について通信状態記憶部124の使用可否124Bを「可」に設定し、それ以外の通信方式については「不可」に設定する。
そして、通信方式割当制御部102は、通信状態記憶部124に外部機器との接続に用いた通信方式を登録する(ステップS006)。具体的には、通信方式割当制御部102は、ステップS004において他の装置と通信を行った際に用いた通信方式に関し、通信状態記憶部124のアプリ識別子124Cに通信方式割当制御部102自身のアプリ識別子を格納させる。また、通信方式割当制御部102は、通信方式割当制御部102のアプリ種別をアプリ通信方式記憶部121のアプリ種別121Cを検索して特定し、当該通信方式を使用するプロセスのアプリ種別124Dに格納する。
そして、通信方式割当制御部102は、起動対象のアプリがあるか否かを判定する(ステップS007)。具体的には、通信方式割当制御部102は、基本制御部101に問い合わせて、開始指示のあったプロセスの存在を検出した場合には、ステップS008を開始させ、検出しない場合には、ステップS002に制御を戻す。
そして、通信方式割当制御部102は、アプリ起動処理を実施する(ステップS008)。具体的には、通信方式割当制御部102は、後述するアプリ起動処理を開始する。
そして、通信方式割当制御部102は、通信状態記憶部124に、起動したアプリに割り当てた通信方式を登録する(ステップS009)。具体的には、通信方式割当制御部102は、ステップS008においてプロセスを起動させた場合には、起動させたプロセスに割り当てた通信方式について、使用するプロセスにより実現されるアプリケーションソフトウェアのアプリ識別子と、アプリ種別と、を特定し、アプリ識別子124Cと、アプリ種別124Dと、にそれぞれ格納する。そして、通信方式割当制御部102は、制御をステップS002に戻す。
なお、ステップS003にて「No」の場合には、通信方式割当制御部102は、接続が終了した外部機器について、対応できる通信方式について使用不可と設定する(ステップS010)。具体的には、通信方式割当制御部102は、接続が終了した他の装置について使用可能としていた通信方式については、通信状態記憶部124の使用可否124Bに「不可」の情報を格納し、別の装置との接続に備える。そして、通信方式割当制御部102は、制御をステップS007へ進める。
以上が、起動管理処理の処理フローである。起動管理処理によれば、接続する他の装置に合わせて、使用可能な状態にある通信方式を特定することができるといえる。
図7は、アプリ起動処理の処理フローを示す図である。アプリ起動処理は、起動管理処理のステップS008において開始される。
まず、通信方式割当制御部102は、起動させるアプリの種別と通信方式を特定する(ステップS101)。具体的には、通信方式割当制御部102は、起動させるプロセスにより実現されるアプリケーションソフトウェアを特定し、そのアプリ種別と、使用する通信方式と、を、アプリ通信方式記憶部121のアプリ種別121C、通信方式121Dを読み出して特定する。
そして、通信方式割当制御部102は、通信方式は共用不可かつ競合するか否かを判定する(ステップS102)。具体的には、通信方式割当制御部102は、ステップS101にて特定した通信方式が、共用可能か否かを通信共用可否記憶部123を参照して特定する。また、通信方式割当制御部102は、ステップS101にて特定した通信方式について、通信状態記憶部124のアプリ識別子124Cに他のプロセスのアプリ識別子が格納されている場合には、競合すると特定する。
通信方式が共用可または競合しない場合(ステップS102にて「No」の場合)には、通信方式割当制御部102は、起動させる対象のアプリを、起動させる(ステップS103)。そして、通信方式割当制御部102は、アプリ起動処理を終了させる。
通信方式が共用不可かつ競合する場合(ステップS102にて「Yes」の場合)には、通信方式割当制御部102は、競合する通信方式のアプリ種別は一般以外、または起動させるアプリより優先度が上であるか否かを判定する(ステップS104)。具体的には、通信方式割当制御部102は、競合する通信方式を使用しているプロセスのアプリ種別124Dを参照して、その種別が一般(すなわち、間欠的に通信が可能であればよい種別)以外であるか、または、起動させる対象のプロセスにより実現されるアプリケーションソフトウェアのアプリ種別の優先度と比較して優先度が上回るか、のいずれかが成立するか否かを判定する。
競合する通信方式のアプリ種別が一般であって、かつ、起動させるアプリと比較して優先度が同じかそれ以下である場合(ステップS104にて「No」の場合)には、通信方式割当制御部102は、競合する通信方式を使用するアプリで用いる通信路を開放し、起動対象のアプリを起動させ、利用者に通知を行う(ステップS105)。具体的には、通信方式割当制御部102は、競合する通信方式を使用するプロセスが使用する移動体通信部130、無線LAN通信部131、USB通信部132、Bluetooth通信部133、HDMI通信部134、のいずれかについて、通信を終了するよう指示し、あらたに起動するプロセスからの通信要求を受け付けるよう指示する。そして、通信方式割当制御部102は、接続装置100に接続されているディスプレイに、既存のプロセスが使用する通信を切断して、プロセスを起動させた旨のメッセージを出力させる。そして、通信方式割当制御部102は、アプリ起動処理を終了させる。
競合する通信方式のアプリ種別は一般以外、または起動させるアプリより優先度が上である場合(ステップS104にて「Yes」の場合)には、通信方式割当制御部102は、競合するアプリの通信終了の是非を利用者に確認する(ステップS106)。具体的には、通信方式割当制御部102は、接続装置100に接続されているディスプレイに、既存のプロセスが使用する通信を切断して、対象のプロセスを起動させるか否かを選択入力させる旨のメッセージを出力させ、選択入力を受け付ける。
そして、通信方式割当制御部102は、既存のプロセスの終了が不許可であったか否かを判定する(ステップS107)。具体的には、通信方式割当制御部102は、ステップS106において受け付けた選択入力の内容が、終了を許可しないものであったか否かを判定する。終了を許可しないものではなかった場合には、通信方式割当制御部102は、ステップS105へ制御を進める。
終了が不許可であった場合(ステップS107において「Yes」の場合)には、通信方式割当制御部102は、起動させるアプリの起動失敗を通知する(ステップS108)。具体的には、通信方式割当制御部102は、接続装置100に接続されているディスプレイに、起動させるプロセスの通信方式が既存のプロセスと競合したため、起動させることに失敗した旨のメッセージを出力させる。そして、通信方式割当制御部102は、アプリ起動処理を終了させる。
以上が、アプリ起動処理の処理フローである。アプリ起動処理によれば、アプリケーションソフトウェアのプロセス起動時において、当該アプリケーションソフトウェアが使用する通信方式について通信可能でない場合に、その優先度等に応じて適切に通信方式を割り当てて起動させることができるといえる。
図8は、アプリ起動処理のステップS106において表示させる、既存のプロセスが使用する通信を切断して、対象のプロセスを起動させるか否かを選択入力させる旨のメッセージの表示画面200の例を示す図である。
メッセージの表示画面200は、メッセージ表示領域201と、メッセージに対する肯定指示入力領域202と、否定指示入力領域203と、を含む。メッセージ表示領域201には、既存のプロセスが使用する通信を切断して、対象のプロセスを起動させるか否かを選択入力させる旨のメッセージが文字列として表示される。例えば、「XXXX通信について競合するアプリID○○○○の通信を切断して起動しますか?」等のメッセージが表示される。肯定指示入力領域202は、メッセージに対して肯定・同意を示す入力を受け付ける領域である。否定指示入力領域203は、メッセージに対して否定・反意を示す入力を受け付ける領域である。
図9は、アプリ起動処理のステップS105において表示させる、通信方式において競合する既存のプロセスが使用する通信を切断して対象のプロセスを起動させたことを知らせる旨のメッセージの表示画面250の例を示す図である。
メッセージの表示画面250は、メッセージ表示領域251と、メッセージに対する確認指示入力領域252を含む。メッセージ表示領域251には、既存のプロセスが使用する通信を切断して、対象のプロセスを起動させた旨を知らせるメッセージが文字列として表示される。例えば、「XXXX通信について競合するアプリID○○○○の通信を切断して起動しました。」等のメッセージが表示される。確認指示入力領域252は、メッセージに対して確認したことを示す入力を受け付ける領域である。
以上が、第一の実施形態に係る接続装置100の構成および処理内容である。第一の実施形態によれば、接続装置100に接続された他の機器が使用可能な通信方式の範囲内で、アプリケーションソフトウェア間で通信方式の競合が発生する場合には、アプリケーションソフトウェアの種別に応じた優先度に基づき、適切に通信方式を割り当てて起動させることができる。すなわち、第一の実施形態によれば、通信路を介して通信を行う複数のアプリケーションソフトウェアを円滑に実行させることができるといえる。
ただし、本発明は、上記の実施形態に制限されない。上記の第一の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。
以下、本発明に係る変形例について説明する。例えば、第一の実施形態においては、アプリケーションソフトウェア毎に、使用する通信方式が高々一つ定められている物であったが、これに限られず、一つまたは複数定められているものであってもよい。このような第二実施形態について、図10、11を用いて説明する。なお、第二実施形態は、第一実施形態と基本的に同様の構成を備えるため、差異のある部分について説明する。
図10は、第二実施形態に係るアプリ通信方式記憶部121´のデータ構造を示す図である。アプリ通信方式記憶部121´は、第一実施形態に係るアプリ通信方式記憶部121の通信方式121Dに代えて、主通信方式121E、主通信方式121Eによって通信できない場合に代替しうる別の通信方式である第二通信方式121Fと、さらに別の第三通信方式121Gと、を備える。あるいは、さらに第四、第五の通信方式等、別の通信方式を備えるものであってもよい。
図11は、第二実施形態に係るアプリ起動処理の処理フローを示す図である。第二実施形態に係るアプリ起動処理のフローは、基本的に第一の実施形態におけるアプリ起動処理のフローと同様であるが、以下の点において相違する。
ステップS101においては、通信方式を一つ選択するものとし、ステップS102にてYesの場合(通信方式は共用不可かつ競合)の場合には、通信方式割当制御部102は、競合する通信方式のアプリ種別が互いに異なるか否かを判定する(ステップS204)。具体的には、通信方式割当制御部102は、競合する通信方式のプロセスについてそのアプリ種別124Dを取得し、起動させるプロセスについてのアプリ種別121Cと比較して、互いに同一か、互いに異なるか、を判定する。互いに同一である場合には、通信方式割当制御部102は、ステップS105へ制御を進め、競合するプロセスの通信路を開放する。
競合する通信方式のアプリ種別が互いに異なる場合(ステップS204において「Yes」の場合)には、通信方式割当制御部102は、起動させるアプリが他の通信方式に非対応であるか否かを判定する(ステップS205)。具体的には、通信方式割当制御部102は、起動させるプロセスについて、アプリ通信方式記憶部121´を参照して、代替する通信方式の存在を確認する。通信方式割当制御部102は、代替する通信方式が存在する場合には他の通信方式に対応しており、存在しない場合には他の通信方式に非対応であると判定する。対応している場合には、通信方式割当制御部102は、制御をステップS101に戻し、未選択の代替する通信方式を特定する。
起動させるアプリが他の通信方式に非対応である場合(ステップS205において「Yes」の場合)には、通信方式割当制御部102は、競合する通信方式を用いるアプリの種別が一般以外であるか否かを判定する(ステップS206)。具体的には、通信方式割当制御部102は、競合する通信方式を用いるプロセスのアプリ種別が「一般」すなわち間欠的な通信でよい種別以外であるか否かを判定する。アプリ種別が間欠的な通信でよいものである場合には、通信方式割当制御部102は、制御をステップS105に進める。アプリ種別が、間欠的な通信を許容するもの以外である場合には、通信方式割当制御部102は、制御をステップS106へ進める。
以上が、第二の実施形態に係るアプリ起動処理の処理フローである。第二の実施形態に係るアプリ起動処理によれば、起動させるアプリケーションソフトウェアが複数の通信方式に対応するものであれば、競合する通信方式の使用をなるべく避けて、別の通信方式を用いて起動することができるといえる。すなわち、第二の実施形態によれば、起動させるプロセスが使用可能な通信方式のうち、そのプロセスと異なる別の実行中のプロセスが通信方式のいずれかまたは複数を既に使用している場合に、起動させるプロセスには未使用の通信方式を使用する通信方式として割り当てることができるといえる。
また例えば、第二の実施形態においては、起動させるアプリケーションソフトウェアが複数の通信方式に対応するものであれば、競合する通信方式の使用をなるべく避けて、別の通信方式を用いて起動するものであったが、これに限られず、競合する通信方式を用いるプロセスがリアルタイムに通信を行う必要の有るアプリ種別(例えば、制御部)である場合に、競合する通信方式を用いるプロセスに対して、競合する通信方式以外の通信方式に変更をさせるものであってもよい。このような第三実施形態について、図12を用いて説明する。なお、第三実施形態は、第二実施形態と基本的に同様の構成を備えるため、差異のある部分について、図12、13を用いて説明する。
図12に示すように、アプリ起動処理のステップS206において、競合するアプリの種類が一般以外である場合(ステップS206において「Yes」の場合)には、通信方式割当制御部102は、競合するアプリの種別は制御部以外であるか否かを判定する(ステップS306)。具体的には、通信方式割当制御部102は、競合する通信方式を用いるプロセスにより実現されるアプリケーションソフトウェアのアプリ種別が「制御部」すなわちリアルタイム通信を必要とする種別以外であるか否かを判定する。「制御部」の場合には、通信方式割当制御部102は、図13に示す処理へ制御を進める。「制御部」以外の場合には、通信方式割当制御部102は、ステップS106へ制御を進める。
図13は、第三の実施形態に係るアプリ起動処理の処理フローの一部を示す図である。
まず、通信方式割当制御部102は、「制御部」が使用可能な通信方式を特定する(ステップS311)。具体的には、通信方式割当制御部102は、競合する通信方式を用いるプロセスについて、使用可能な通信方式を、アプリ通信方式記憶部121´を参照して特定する。
そして、通信方式割当制御部102は、「制御部」が使用可能な通信方式に、未使用の通信方式があるか否かを判定する(ステップS312)。
未使用の通信方式がない場合(ステップS312において「No」の場合)には、通信方式割当制御部102は、使用可能な通信方式のうち、共用可能な通信方式があるか否かを判定する(ステップS313)。具体的には、通信方式割当制御部102は、通信共用可否記憶部123を参照して、共用可否123Bが「可」である通信方式が使用可能な通信方式に含まれるか否かを判定する。共用可能な通信方式がない場合には、通信方式割当制御部102は、図12のアプリ起動処理のステップS106へ制御を進める。
未使用の通信方式がある場合(ステップS312において「Yes」の場合)または共用可能な通信方式がある場合(ステップS313にて「Yes」の場合)には、通信方式割当制御部102は、競合する通信方式を使用する「制御部」が使用している通信方式を、未使用の通信方式または使用されているが共用可能な通信方式に変更する(ステップS314)。
そして、通信方式割当制御部102は、起動対象のアプリケーションソフトウェアに係るプロセスを起動させる(ステップS315)。そして、通信方式割当制御部102は、図12のアプリ起動処理を終了させる。
以上が、第三の実施形態に係るアプリ起動処理の処理フローである。第三の実施形態に係るアプリ起動処理によれば、起動させるアプリケーションソフトウェアが複数の通信方式に対応するものであれば、競合する通信方式の使用をなるべく避けて、別の通信方式を用いて起動することができるだけでなく、競合する通信方式を使用するアプリケーションソフトウェアが複数の通信方式に対応するものであれば、競合する通信方式以外の通信方式の使用に切り替えて通信の継続を確保することで、起動させるアプリケーションおよび既に起動しているアプリケーションの両方の通信を確保して起動することができるといえる。
すなわち、第三の実施形態によると、実行中のプロセスが、継続して通信する必要が有るプロセスの種類である場合には、実行中のプロセスが使用可能な通信方式のうち、そのプロセスと異なる別の実行中のプロセスが通信方式のいずれかまたは複数を既に使用している場合に、実行中のプロセスが使用する通信方式を、未使用の通信方式へ変更することができる、といえる。
また例えば、第二の実施形態においては、起動させるアプリケーションソフトウェアが複数の通信方式に対応するものであれば、競合する通信方式の使用をなるべく避けて、別の通信方式を用いて起動するものであったが、これに限られず、起動させるアプリケーションソフトウェアが共用可能な通信方式に対応している場合には、共用可能な通信方式を優先して使用するものであってもよい。このような第四実施形態について、図14、図15を用いて説明する。なお、第四実施形態は、第二実施形態と基本的に同様の構成を備えるため、差異のある部分について、説明する。
図14に示すように、アプリ起動処理のステップS101を行って未選択の通信方式特定したのち、起動するアプリケーションソフトウェアが共用可能な通信方式を使用不可能であるか否かを判定する(ステップS402)。具体的には、通信方式割当制御部102は、起動するアプリケーションソフトウェアが使用する通信方式について、通信共用可否記憶部123を参照して、共用可能な通信方式が含まれているか否かを判定する。含まれていない場合には、通信方式割当制御部102は、制御をステップS102に進める。
共用可能な通信方式が含まれている場合(ステップS402にて「No」の場合)には、通信方式割当制御部102は、共用可能な通信方式を優先してアプリを起動させる(ステップS403)。具体的には、通信方式割当制御部102は、ステップS101にて特定した通信方式を用いて、起動させるアプリケーションソフトウェアのプロセスを開始させる。そして、通信方式割当制御部102は、アプリ起動処理を終了させる。
以上が、第四の実施形態に係るアプリ起動処理の処理フローである。第四の実施形態に係るアプリ起動処理によれば、起動させるアプリケーションソフトウェアが共用可能な通信方式に対応するものであれば、競合する通信方式があったとしても共用可能な通信方式であれば共用して起動することができるといえる。
図15は、アプリ起動処理のステップS403において表示させる、共用可能な通信方式を用いて対象のプロセスを起動させたことを知らせる旨のメッセージの表示画面300の例を示す図である。
メッセージの表示画面300は、メッセージ表示領域301と、メッセージに対する確認指示入力領域302を含む。メッセージ表示領域301には、いずれか共用可能な通信方式を使用して、対象のプロセスを起動させた旨を知らせるメッセージが文字列として表示される。例えば、「起動するアプリID○○○○の通信方式をYYYY通信にて起動しました。」等のメッセージが表示される。確認指示入力領域302は、メッセージに対して確認したことを示す入力を受け付ける領域である。
以上が、第四の実施形態である。第四の実施形態によれば、起動させるプロセスが共用可能な通信方式を使用可能である場合には、その共用可能な通信方式を、使用する通信方式として割り当てることができるため、プロセスの起動に係る計算量を減らして起動速度を高めることができる。
また例えば、第四の実施形態においては、起動させるアプリケーションソフトウェアが共用可能な通信方式に対応している場合には、共用可能な通信方式を優先して使用するものであったが、これに限られず、競合する通信方式を使用するアプリケーションソフトウェアが未使用の通信方式を使用することが可能なものである場合には、競合するアプリケーションソフトウェアの通信方式を変更して、起動させるアプリケーションソフトウェアのプロセスを起動させるものであってもよい。このような第五実施形態について、図16、図17を用いて説明する。なお、第五実施形態は、第四実施形態と基本的に同様の構成を備えるため、差異のある部分について、説明する。
図16に示すように、アプリ起動処理のステップS102において、通信方式が競合すると判定された場合(ステップS102にて「Yes」の場合)には、通信方式割当制御部102は、競合する通信方式のアプリは他の未使用通信方式を使用不可であるか否かを判定する(ステップS502)。具体的には、通信方式割当制御部102は、競合するアプリケーションソフトウェアが使用する通信方式について、通信共用可否記憶部123および通信状態記憶部124のアプリ識別子124Cを参照して、他の未使用の通信方式であって、使用可能な状態にある通信方式が含まれていないか否かを判定する。含まれていない場合には、通信方式割当制御部102は、制御をステップS204に進める。
競合するアプリケーションソフトウェアが使用可能な他の通信方式に、使用可能な状態にある通信方式が含まれている場合(ステップS502にて「No」の場合)には、通信方式割当制御部102は、競合するアプリの通信方式を変更後にアプリを起動させる(ステップS503)。具体的には、通信方式割当制御部102は、競合する通信方式を使用するプロセスが使用する移動体通信部130、無線LAN通信部131、USB通信部132、Bluetooth通信部133、HDMI通信部134、のいずれかについて、通信を終了するよう指示し、あらたに起動するプロセスからの通信要求を受け付けるよう指示する。そして、通信方式割当制御部102は、競合するアプリに対して、使用可能な状態にある別の通信方式を、使用する通信方式として割り当てる。そして、通信方式割当制御部102は、接続装置100に接続されているディスプレイに、既存のプロセスが使用する通信を切断して、プロセスを起動させた旨のメッセージを出力させる。そして、通信方式割当制御部102は、アプリ起動処理を終了させる。
以上が、第五の実施形態に係るアプリ起動処理の処理フローである。第五の実施形態に係るアプリ起動処理によれば、競合する通信方式を使用するアプリケーションソフトウェアが使用可能な状態にある他の通信方式に対応するものであれば、競合する通信方式を使用するアプリケーションソフトウェアの通信方式を変更し、起動対象のアプリケーションを起動させることができるといえる。
図17は、アプリ起動処理のステップS503において表示させる、競合する通信方式を使用するプロセスの通信方式を変更後に起動対象のプロセスを起動させたことを知らせる旨のメッセージの表示画面400の例を示す図である。
メッセージの表示画面400は、メッセージ表示領域401と、メッセージに対する確認指示入力領域402を含む。メッセージ表示領域401には、競合する通信方式を使用するプロセスの通信方式を変更後に起動対象のプロセスを起動させた旨を知らせるメッセージが文字列として表示される。例えば、「XXXX通信について競合するアプリ○○○○の通信方式をYYYY通信に変更しました。」等のメッセージが表示される。確認指示入力領域402は、メッセージに対して確認したことを示す入力を受け付ける領域である。
以上が、第五の実施形態である。第五の実施形態によれば、稼働中の競合する通信方式を用いるプロセスを他の使用可能な状態にある通信方式に切り替え、起動対象のプロセスにとって都合の良い通信方式で適切に起動させることができるといえる。いいかえると、第五の実施形態によれば、実行中のプロセスが使用可能な通信方式のうち、そのプロセスと異なる別の実行中のプロセスがその通信方式のうちいずれかまたは複数を既に使用している場合に、実行中のプロセスが使用する通信方式を、未使用の通信方式へ変更することができる、といえる。
以上、本発明の実施形態について、第一〜第五の実施形態を挙げて説明した。しかし、これに限られず、上記実施形態に記載した特徴的な処理について、他の実施形態と組み合わせるものであってもよいし、別の機器に適用する(例えば、接続装置100をプリンターに適用する等)ことも可能である。また、このような機能を実現する通信方式割当制御部102について、ハードウェア部品として流通するものであってもよいし、ソフトウェアプログラムあるいはソフトウェアプログラムが格納されたパソコンで読取可能な記憶媒体として流通するものであってもよい。
本発明は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。上記課題を解決すべく、本発明に係る接続装置は、プロセスの種類ごとに予め割り当てられた優先度を特定する種別優先度情報と、上記プロセスごとに使用可能な通信方式を特定する使用通信方式情報と、同期間において上記通信方式が複数の上記プロセス間で共用可能か否かを特定する共用可否情報と、を記憶する記憶部と、互いに異なる上記通信方式により他の装置との通信を行う複数の通信部と、実行を開始する上記プロセスについて該プロセスが使用可能な通信方式を上記使用通信方式情報を用いて特定し、特定した通信方式が共用可能でなく、かつ、実行を開始する上記プロセスと異なる実行中のプロセスが該通信方式を既に使用している場合において、該実行中のプロセスの種類が所定の種類であって、上記実行を開始するプロセスよりも優先度が同じか低いならば、上記実行中のプロセスが使用する通信方式の通信路を開放するとともに、上記実行を開始するプロセスを起動させ上記特定した通信方式を使用するよう割り当てる通信方式割当制御部と、を備えることを特徴とする。