以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
[第1の実施形態]
図1は、本実施形態の通信システム100の構成を示す図である。通信システム100は、情報処理装置101と通信装置151を含む。本実施形態では、情報処理装置としてスマートフォン、通信装置としてプリンターを例に挙げて説明する。なお、情報処理装置101として、本実施形態ではスマートフォンを例示するが、これに限定されず、携帯端末、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラ等、種々のものを適用可能である。また、通信装置151として、本実施形態ではプリンターを例示するが、これに限定されず、情報処理装置101と無線通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンターであれば、インクジェットプリンター、フルカラーレーザビームプリンター、モノクロプリンター等を適用可能である。また、プリンターのみならず複写機やファクシミリ装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA、デジタルカメラ、音楽再生デバイス、テレビ等が適用されても良い。その他、複写機能、FAX機能、印刷機能等の複数の機能を備える複合機(MFP:Multifunction Peripheral)が適用されても良い。
まず、情報処理装置101と、情報処理装置101と通信装置151の構成について図1のブロック図を参照しながら説明する。また、本実施形態では、以下の構成を例に説明するが、図1に示す構成に限定されるものではなく、情報処理装置101と通信装置151が各実行可能な機能に応じたブロックが適宜含まれても良い。
情報処理装置101は、入力インタフェース102、CPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース107、表示部108、通信部109、近距離無線通信部110を含む。なお、これらはシステムバスを介して互いに接続されている。入力インタフェース102は、ユーザからのデータ入力や、機能の実行指示を受け付けるためのインタフェースであり、キーボードやボタン、タッチパネル等の操作部(不図示)を介して、ユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。なお、後述の表示部108と操作部とは、少なくとも一部が一体であってもよく、例えば、画面の出力とユーザからの操作の受け付けを同一の画面において行うような形態としても良い。
CPU103は、システム制御部であり、情報処理装置101全体を統括的に制御する。また、例えば、情報処理装置101の表示部108の表示制御をする。ROM104は、CPU103が実行する制御プログラムやデータテーブル、組込みオペレーティングシステム(OS)プログラム等の固定データを記憶する。本実施形態では、ROM104に記憶されている各制御プログラムは、例えば、ROM104に記憶されている組込みOSの管理下で、スケジューリングやタスクスイッチ、割込み処理等のソフトウェア実行制御を行う。
RAM105は、バックアップ電源を必要とするSRAM(Static Random Access Memory)やDRAM等で構成される。なお、RAM105は、不図示のデータバックアップ用の1次電池によってデータが保持されていてもよい。その場合、RAM105は、プログラム制御変数等の重要なデータを揮発させずに記憶することができる。また、情報処理装置101の設定情報や情報処理装置101の管理データ等を格納するメモリエリアもRAM105に設けられている。また、RAM105は、CPU103の主メモリやワークメモリとしても用いられる。
外部記憶装置106は、印刷実行機能を提供するアプリケーション、通信装置151が解釈可能な印刷情報を生成する印刷情報生成プログラム等を記憶する。また、外部記憶装置106は、通信部109を介して通信装置151との間で送受信する情報送受信制御プログラム等の各種プログラムや、これらのプログラムが使用する各種情報を記憶する。
出力インタフェース107は、表示部108がデータの表示や情報処理装置101の状態情報を表示するための制御を行うインタフェースである。表示部108は、LED(発光ダイオード)やLCD(液晶ディスプレイ)などで構成され、データの表示や情報処理装置101の状態情報を表示する。なお、表示部108上に、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキーを備えるソフトキーボードを設置することで、表示部108を介してユーザからの入力を受け付けても良い。
通信部109は、通信装置151等の外部装置との間でデータ通信を実行する。例えば、通信部109は、通信装置151内のアクセスポイント(不図示)に接続して通信装置151との間でデータ通信を実行する。なお、通信部109は、通信装置151とダイレクトに無線通信を行うように構成されても良い。また、情報処理装置101や通信装置151の外部に存在する外部アクセスポイント、例えばアクセスポイント131を介して相互に無線通信を行うように構成されても良い。無線通信方式としては、例えば、Wi−Fi(Wireless Fidelity)(登録商標)やBluetooth(登録商標)等がある。また、アクセスポイント131として、例えば、無線LANルータ等の機器が用いられる。なお、本実施形態において、情報処理装置101と通信装置151とが外部アクセスポイント131を介さずにダイレクトに接続する方式をダイレクト接続方式という。また、情報処理装置101と通信装置151とが外部アクセスポイント131を介して接続する方式をインフラストラクチャー接続方式という。
近距離無線通信部110は、通信装置151等と近距離で無線接続し、データ通信を実行するための構成であり、通信部109とは異なる通信方式によって通信を行う。近距離無線通信部110は、通信装置151内の近距離無線通信部157と無線接続が可能である。なお、本実施形態では、近距離無線通信部110の通信方式として、通信可能距離が通信部109の通信方式より短いBluetooth Low Energy(BLE)が用いられる。すなわち、近距離無線通信部110は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。なお、マイコンは、RAMとフラッシュメモリが搭載されている。なお、近距離無線通信部110の通信方式として、例えば、NFC(Near Filed Communication)やWi−Fi Awareが用いられても良い。
通信装置151は、ROM152、RAM153、CPU154、プリントエンジン155、通信部156、近距離無線通信部157、操作部158を含む。なお、これらはシステムバスを介して互いに接続されている。通信部156は、通信装置151内部のアクセスポイントとして、情報処理装置101等の装置と接続するためのアクセスポイントを含む場合もある。通信部156は、情報処理装置101とダイレクトに無線通信を行うように構成されても良い。また、通信部156は、アクセスポイント131を介して情報処理装置101と相互に無線通信を行うように構成されても良い。無線通信方式としては、例えば、Wi−FiやBluetooth等がある。また、通信部156は、アクセスポイントとして機能するハードウェアを備えても良いし、アクセスポイントとして機能させるためのソフトウェアによりアクセスポイントとして動作するようにしても良い。近距離無線通信部157は、情報処理装置101等と近距離で無線接続し、データ通信を実行するための構成であり、通信部156とは異なる通信方式によって通信を行う。近距離無線通信部157は、情報処理装置101内の近距離無線通信部110と無線接続が可能である。本実施形態では、近距離無線通信部157の通信方式として、Bluetooth Low Energy(BLE)が用いられる。すなわち、近距離無線通信部157は、BLEユニットを有する。BLEユニットは、無線通信の処理を行うマイクロプロセッサであるマイコンと、無線通信によるデータの送受信を行う無線通信回路を含む。なお、マイコンは、RAMとフラッシュメモリが搭載されている。なお、近距離無線通信部157の通信方式として、例えば、NFCやWi−Fi Awareが用いられても良い。
RAM153は、バックアップ電源を必要とするSRAMやDRAM等で構成される。なお、RAM153は、不図示のデータバックアップ用の1次電池によってデータが保持されても良い。その場合、RAM153は、プログラム制御変数等の重要なデータを揮発させずに記憶することができる。また、通信装置151の設定情報や通信装置151の管理データ等を記憶するメモリエリアもRAM153に設けられている。また、RAM153は、CPU154の主メモリやワークメモリとしても用いられ、各種の情報を記憶する他、情報処理装置101等から受信した印刷情報を一旦記憶する受信バッファとしても機能する。
ROM152は、CPU154が実行する制御プログラムやデータテーブル、OSプログラム等の固定データを記憶する。本実施形態では、ROM152に記憶されている各制御プログラムは、ROM152に記憶されている組込みOSの管理下で、スケジューリングやタスクスイッチ、割込み処理等のソフトウェア実行制御を行う。
CPU154は、通信装置151のシステム全体を統括的に制御する。例えば、RAM153に保存された情報や情報処理装置101等から受信した印刷ジョブに基づき、プリントエンジン155を制御することにより、インク等の記録剤を用いて紙等の記録媒体上に画像形成し、印刷結果を出力させる。この時、情報処理装置101等から送信される印刷ジョブは、送信データ量が大きく高速な通信が求められるので、通信装置151は、近距離無線通信部157よりも高速に通信可能な通信部156を介して受信する。また、例えば、情報処理装置151の表示制御をする。なお、通信装置151には、外付けHDDやSDカード等のメモリがオプション機器として装着されてもよく、通信装置151に記憶される情報は、当該メモリに記憶されるようにしても良い。
操作部158は、ハードウェアキーやLED、液晶パネルを含み、ユーザからの操作指示を受付けたり、装置情報やジョブ情報等を表示する。
本実施形態では、情報処理装置101がマスタ装置として動作し、通信装置151がスレーブ装置として動作する。ここでは、一例として、情報処理装置101と通信装置151との処理分担を上記のように説明したが、特にこの分担形態に限らず他の分担形態であっても良い。
次に、情報処理装置101と通信装置151との間で行われる、BLE規格におけるアドバタイズ情報の送信及びGATT(Generic Attribute Profile)通信の開始要求の受信の処理について、図2を参照しながら説明する。本実施形態では、通信装置151の近距離無線通信部157がスレーブ機器として動作し、近距離無線通信部157が上記の処理を行うものとする。
近距離無線通信部157は、BLE通信において、2.4GHzの周波数帯を40チャネル(0〜39ch)に分割して通信を行う。近距離無線通信部157は、40チャネルのうち、37〜39番目のチャネルをアドバタイズ情報の送信やBLE接続の開始要求の受信に利用し、0〜36番目のチャネルをBLE接続後のデータ通信に利用する。図2では、縦軸が近距離無線通信部157の消費電力を示し、横軸が時間を示しており、1つのチャネルを利用してアドバタイズ情報を送信する際の消費電力を各処理別に示している。
Tx205は、アドバタイズ情報をブロードキャストする処理(以下、送信処理ともいう)における総消費電力を示す。Rx206は、BLE接続の開始要求を受信するための受信器を有効にしておく処理(以下、受信処理ともいう)における総消費電力を示している。送信電力202は、送信処理による瞬間消費電力を示している。また、受信電力203は、受信処理による瞬間消費電力を示している。また、マイコン動作電力201は、近距離無線通信部157内のマイコンが動作している場合の瞬間消費電力を示している。なお、Tx205とRx206の前後や間にもマイコンが動作しているのは、送信/受信処理の実行や停止のためには事前にマイコンが起動している必要があるからである。また、アドバタイズ情報の送信を複数チャネルで行う場合は、アドバタイズ情報の送信を行うチャネルの数分、消費電力が増える。また、マイコンが動作を行っておらず、近距離無線通信部157が省電力状態となっている間は、スリープ電力204が近距離無線通信部157の瞬間消費電力となる。このように、近距離無線通信部157は、所定のチャネルを用いて送信処理を行った後、同一のチャネルを用いて一定時間受信処理を行うことで、情報処理装置101からBLE接続の開始要求が送信されるのを待つ。
近距離無線通信部157は、図3に示すように、アドバタイズ情報の送信処理と受信処理を、37〜39チャネルの各チャネル別に3回繰り返した後、マイコンの動作を停止させ、一定時間省電力状態になる。以下、所定のチャネルによるアドバタイズ情報の送信処理と受信処理の組み合わせをアドバタイズと言う。また、所定のチャネルによってアドバタイズ情報を送信する時間間隔、すなわち、あるチャネルによってアドバタイズ情報を送信し、同じチャネルによって次にアドバタイズ情報を送信するまでの時間間隔をアドバタイズ間隔という。なお、1回目のアドバタイズを行ってから省電力状態になるまでに繰り返すアドバタイズの回数は、3回以下であれば任意に変更可能である。
ここで、情報処理装置101で実行される所定のアプリケーションにおいて、通信装置151の状態、および所定のアプリケーションの状態に基づき、実行することを推奨する機能をユーザに提示する処理について説明する。
所定のアプリケーションとは、通信装置151の接続先のアクセスポイントの設定を行ったり、通信装置151に処理の実行指示をしたりするためのアプリケーションである。本実施形態では、所定のアプリケーションは、通信装置151に情報処理装置101内の画像データや文書データ等を印刷させるための印刷用アプリケーション(以下、印刷用アプリともいう)を例に挙げて説明する。なお、印刷用アプリケーションは、通信装置151の接続先のアクセスポイントを設定する機能や印刷機能以外に、他の機能を備えていても良い。例えば、印刷用アプリケーションは、通信装置151がスキャン機能を備えている場合に、通信装置151の原稿台(不図示)にセットされた原稿をスキャンさせる機能を備えても良い。また、印刷用アプリケーションは、通信装置151の他の設定を行う機能、通信装置151の状態を確認する機能、通信装置151の操作説明を表示する機能等を備えていても良い。
また、本実施形態において、印刷用アプリケーションは、情報処理装置101の近距離無線通信部110を介して、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報の受信を検知し、アドバタイズ情報を取得可能である。さらに、印刷用アプリケーションは、GATT通信を行うことにより、通信装置151から通信装置151の状態や設定内容等を示す状態情報を取得可能である。なお、アドバタイズ情報が状態情報を含む場合は、アドバタイズ情報を受信すれば、GATT通信を行わずに、状態情報を取得可能である。
図4は、印刷用アプリケーションの起動中に表示部108に表示される画面の表示状態の一例を示す図である。すなわち、図4は、印刷用アプリケーションが提供する画面である。図4(A)は起動画面400であり、写真画像の印刷や文書の印刷、スキャン等、通信装置151が実行可能な機能を利用することができる。図4では、プリンター情報画面を表示する機能を呼び出すプリンターボタン401、写真画像の印刷機能を呼び出す写真印刷ボタン402、文書の印刷機能を呼び出す文書印刷ボタン403が示されている。また、起動画面400には、スキャン機能を呼び出すスキャンボタン404、登録プリンター一覧画面420を表示する機能を呼び出すプリンター変更ボタン405が示されている。
図4(B)は、起動画面400のプリンターボタン401がタップ(押下)された場合に表示されるプリンター情報画面410であり、選択されている通信装置151の状態を表示したり、通信装置151の操作説明を表示することができる。プリンターの状態ボタン411がタップされると、通信装置151のRAM153に記憶され、プリンターのエラー状態やインク残量などのプリンターの状態を提示するWebページ(以降、RemoteUIページという)を表示する。RemoteUIページの表示は、印刷用アプリケーション内や、インターネットブラウザを別途起動して、インターネットブラウザ上で表示するようにしても良い。操作説明ボタン412がタップされると、通信装置151の操作説明を表示する機能を呼び出す。操作説明の表示においては、印刷用アプリケーションが情報処理装置101の外部記憶装置106等に記憶された操作説明コンテンツを表示しても良い。または、インターネット上の所定のサーバーにWebページとして操作説明コンテンツを記憶しておき、印刷用アプリケーションがこれを取得して表示しても良い。Webページ上の操作説明コンテンツは、印刷用アプリケーション内で表示しても良いし、インターネットブラウザを別途起動して、インターネットブラウザ上で表示しても良い。
図4(C)は、起動画面400のプリンター変更ボタン405がタップされた時に表示される登録プリンター一覧画面420であり、印刷用アプリケーションに登録済みの通信装置151のリストを表示している。本実施形態では、印刷用アプリケーションに複数の通信装置151を登録しておき、ユーザが適宜切り替えて利用することができる。図4(C)では、プリンター選択ボタン(プリンターAボタン421、プリンターBボタン422)が表示されており、プリンター選択ボタンのいずれかを選択することにより、処理を実行させるプリンターを選択することができる。図4(C)の例では、登録済みのプリンターのうち、「プリンターA」にチェックマークを表示することで、ユーザが現在選択中の通信装置151が「プリンターA」であることを示している。また、プリンターの登録ボタン423がタップされると、登録済みの通信装置151とは別の通信装置151を検出して登録する機能を実行するための検出プリンター一覧画面430を表示する。
図4(D)は、登録プリンター一覧画面420のプリンターの登録ボタン423がタップされた場合に表示される検出プリンター一覧画面430である。印刷用アプリケーションで検出プリンター一覧画面430を表示すると、情報処理装置101は、アクセスポイント131を介して接続されている通信装置151を検出して、検出プリンター一覧に順次表示していく。なお、このとき登録済みの通信装置も検出される。図4(D)では、プリンター431、プリンター432、プリンター433、プリンター434の合計4台の通信装置151が検出されたことを示している。ユーザにより一覧から登録したいプリンターがタップされると、印刷用アプリケーションで選択可能な通信装置151として登録し、前述の登録プリンター一覧画面420のリストに追加する。その際、通信装置151のMACアドレス等の識別子を用いて、印刷用アプリケーションに登録した個々の通信装置151を管理する。
情報処理装置101は、印刷用アプリケーションに通信装置151を登録する際に、登録する通信装置151の通信部156を介して、通信装置151が備える機能の情報(Capability情報)を通信装置151から取得する。そして、情報処理装置101は、取得したCapability情報を、登録した通信装置151を識別するMACアドレス等と関連付けて保持する。Capability情報には、通信装置151が備えている機能のリスト(印刷機能、スキャン機能、コピー機能、RemoteUI機能など)や、それぞれの機能の設定可能値などが含まれる。例えば、印刷機能であれば、印刷可能な用紙サイズや用紙種別の設定値リスト、カラー印刷やモノクロ印刷の可否、両面印刷の可否などの情報である。なお、Capability情報は、通信装置151が備えるBLE通信ユニットから発信されるアドバタイズ情報に含まれていれば、アドバタイズ情報を受信することにより、取得することができる。また、BLE通信ユニットによりGATT通信を行うことにより、取得することもできる。
また、プリンターセットアップボタン435がタップされると、未検出の通信装置151の接続先のアクセスポイントの設定を行うことができる。GATT通信で情報処理装置101からアクセスポイントの接続情報を通信装置151に送ることで、通信装置151から情報処理装置101が接続しているアクセスポイントを設定することができる。未検出の通信装置151の接続先として、情報処理装置101が接続しているアクセスポイントを設定することにより、前述の検出プリンター一覧画面430を表示した際に印刷用アプリケーションにおいて、未検出だった通信装置151が検出されるようになる。また、通信装置151の接続先のアクセスポイントの設定を行うことで、通信装置151を印刷用アプリケーションから検出できるようになる。また、ユーザーが登録プリンター一覧画面420からプリンターを選択することで通信装置151の備える機能を印刷用アプリケーションから利用できるようになる。印刷用アプリケーションは、通信装置151の近距離無線通信部157から送信されるアドバタイズ情報を受信したり、必要に応じてGATT通信を行ったりすることにより、通信装置151の状態情報などを受信する。
ここで、情報処理装置101と通信装置151とが、BLE通信方式によってネットワーク接続を行う方法について説明する。以下の説明において、通信装置151は、所定の間隔でアドバタイズ情報を送信するアドバタイザであるものとする。また、情報処理装置101は、周辺にあるアドバタイザから送信されるアドバタイズ情報を待ち受けるスキャナであるものとする。なお、以下の処理は、ペアリング処理が完了した後、BLE接続が切断された場合に実行される。
まず、近距離無線通信部157は、アドバタイズ情報の送信を行う。情報処理装置101は、近距離無線通信部110が近距離無線通信部157から送信されたアドバタイズ情報を受信することで、通信装置151の存在を認識することができる。
情報処理装置101は、通信装置151を認識し、通信装置151と接続することを決定したら、接続要求情報を通信装置151に送信する。具体的には、近距離無線通信部110が、BLEによるネットワーク接続を確立する接続イベントに遷移するための要求であるCONNECT_REQを送信する。近距離無線通信部157がCONNECT_REQを受信すると、情報処理装置101及び通信装置151は、接続イベントに遷移する準備をする。具体的には、近距離無線通信部110及び近距離無線通信部157が、それぞれCPU103及びCPU154にBLE接続イベントに遷移する準備が完了した旨を通知する。その後、情報処理装置101及び通信装置151はそれぞれスキャナとアドバタイザからマスタとスレーブに遷移し、マスタである情報処理装置101とスレーブである通信装置151は、BLE接続を確立する。なお、BLE規格では、マスタは、スレーブと「1:多」のスター型のトポロジーを形成することができる。情報処理装置101と通信装置151は、BLE接続を確立したら、以後、GATT通信方式によってデータ通信を行うことができる。
ここで、本実施形態でBLE通信の際に実行するペアリング処理の詳細について説明する。まず、情報処理装置101は、後述の印刷アプリが起動され、印刷アプリによって表示される初期画面(ホーム画面)が表示部108に表示された場合、特定の装置情報を有するアドバタイズ情報のサーチを開始する。なお、特定の装置情報とは、例えば、印刷アプリに対応する装置(プリンタ等)のUUIDやMACアドレス等である。そして、情報処理装置101は、特定の装置情報を有するアドバタイズ情報を受信すると、当該アドバタイズ情報を送信した装置(ここでは、通信装置151)に、BLE接続要求(CONNECT_REQ)を送信し、装置間でBLE接続を確立する。そして、情報処理装置101は、通信装置151とのペアリングを完了していない場合は、ユーザにペアリングを促すための画面を表示部108に表示する。そして、情報処理装置101は、ペアリングの実行をユーザに指示された場合、セキュリティーマネージャプロトコルによる通信により、通信装置151に、ペアリング要求を送信する。なお、ぺアリングが終了するまで、装置間の通信は、セキュリティーマネージャプロトコルによって行われるものとする。通信装置151は、ペアリング要求を受信すると、表示部に、図12(a)に示すようなPINコード表示画面200を表示する。PINコード表示画面200には、PINコード201と、ペアリング処理をキャンセルするためのCancelボタン212が表示される。
そして、情報処理装置101は、ペアリング要求を送信すると、表示部108に、図12(b)に示すようなPINコード入力画面210を表示する。PINコード入力画面210には、ユーザによるPINコード201の入力を受け付けるためのPINコード入力領域211が表示される。また、PINコード入力画面210には、入力されたPINコード201を通信装置151に送信するためのOKボタン213と、ペアリング処理をキャンセルするためのCancelボタン212が表示される。PINコード入力領域211にPINコード201が入力された状態で、OKボタン213が押下されると、情報処理装置101は、入力されたPINコード201を含む情報を通信装置151に送信する。通信装置151は、受信した情報に含まれるPINコード201が、PINコード表示画面200に表示したPINコード201と一致するか否かを判定し、一致すると判定した場合は、情報処理装置101にペアリングを許可する。具体的には、通信装置151は、PINコード201をもとに所定の方法で作成されたリンクキーを、BLE規格のSMP(Security Manager Protocol)を利用して情報処理装置101と交換する。交換されたリンクキーは、情報処理装置101の持つ記憶領域(ROM104等)と通信装置151の持つ記憶領域(ROM152等)にそれぞれ保存される。これによりペアリングが完了し、以降、装置間でBLE通信を実行することが許可される。なお、情報処理装置101は、ペアリングが完了すると、PINコード表示画面200を非表示とし、元の画面を再度表示する。
ペアリング完了後は、情報処理装置101は、通信装置151に対してGATT通信要求を送信する際には、ペアリング処理時に記憶領域に保存したリンクキーを通信装置151に通知する。通信装置151は、GATT通信要求を受信した場合、ペアリング処理時に記憶領域に保存したリンクキーと通知されたリンクキーを比較して、GATT通信要求を発信している装置が、ペアリング済みの装置であるかを確認する。そして、通信装置151は、ペアリング済みの装置であると確認できた場合は、情報処理装置101とのGATT通信による情報の読み書きを開始する。これにより、情報処理装置101は、一旦通信装置151とのペアリング処理を完了しておけば、以降はユーザによるPINコードの入力なしに通信装置151とのGATT通信を実行することができる。なお、上述では、PINコード入力領域211に、PINコード入力画面210に表示されているPINコード201をユーザに入力させる形態を説明したが、この形態に限定されない。例えば、PINコード201を固定の(ユーザが任意に変更できない)情報とし、印刷アプリのインストールと共に情報処理装置101に格納される形態とすることで、ユーザの入力なしにPINコード201が通信装置151に通知される形態としてもよい。また、ペアリング処理が開始されるタイミングも上述の形態に限定されず、例えば、印刷アプリを介してユーザが印刷を指示したタイミングや、接続設定処理においてBLE接続が行われる前のタイミング等であっても良い。
図5は、情報処理装置101が通信装置151から送信されるアドバタイズ情報の受信を検知したときに、通信装置151の状態、および所定のアプリケーションの状態に基づき、実行を推奨する機能を提示する処理を示すフローチャートである。言い換えれば、推奨する機能の実行に誘導するダイアログ(誘導画面)を提示する処理を示すフローチャートである。図5に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラムをRAM105に読み出して実行することにより実現される。
まず、S501にて、CPU103は、上述した方法により、受信したアドバタイズ情報を送信した通信装置151とのGATT通信を開始する。次に、S502では、CPU103は、GATT通信により通信装置151の状態や設定内容等を示す状態情報を取得し、S503にて、通信装置151とのGATT通信を終了する。ここで、S502で取得する通信装置151の状態情報は、例えば、以下のような情報を含む。
・機種名
・MACアドレス
・販売地域情報
・画面ID
・接続先アクセスポイント情報
機種名は、通信装置151の機種名であり、MACアドレスは、通信装置151のMACアドレスである。また、販売地域情報は、販売地域についての情報を示す。また、画面IDは、通信装置151の表示部(不図示)の表示内容を識別するIDである。通信装置151のコピー機能やネットワーク設定機能などの各機能が選択された場合に、通信装置151の表示部に表示される内容ごとにIDを割り当てておく。接続先アクセスポイント情報は、通信装置151の接続先アクセスポイントが設定済みか未設定であるかを示す情報である。設定済みの場合は、接続先アクセスポイントのSSID(Service Set Indentifier)などの情報を含むようにしても良い。
次に、S504では、通信装置151の状態情報、および印刷用アプリケーションの設定状態に基づき、印刷用アプリケーション上で提示する機能を選択する。なお、S504での処理については、後述する。次に、S505では、CPU103は、S504で提示機能を選択したか否かを判定する。ここで、選択したと判定された場合、S506にて、CPU103は、選択された機能をユーザに提示し、選択していないと判定された場合、CPU103は、図5の処理を終了する。ここで、S506においては、選択した機能をユーザに提示するものとしたが、例えば、選択された機能が一意に確定するような場合などには、選択された機能を実行するようにしても良い。
ここで、本実施形態では、印刷用アプリケーションが起動している状態のときにアドバタイズ情報が受信される。したがって、図5は、印刷用アプリケーションが起動しているときにアドバタイズ情報を受信したタイミングで実行されるが、これに限定されるものではない。例えば、情報処理装置101がアドバタイズ情報を受けた場合、印刷用アプリケーションを起動させて、図5に示す処理を実行するようにしてもよい。
図6は、S504において、通信装置151の状態情報、および印刷用アプリケーションの設定状態に基づき、印刷用アプリケーション上で提示する機能を選択する処理を示すフローチャートである。まず、S600にて、通信装置151から取得した画面IDに基づき、通信装置151の表示部に表示されている内容は操作説明表示が必要かどうかを判定する。すなわち、画面IDに基づいて、操作説明表示が必要な画面であるか否かを判定する。例えば、メニューの選択肢が多かったり、操作手順が多い場合などには、操作説明表示が必要と判定する。この場合は、Webページで操作手順等をユーザに提示することで、ユーザビリティが向上するためである。具体例としては、通信装置151の表示部において、例えば、コピー実行画面やメンテナンス画面が表示されている場合は、操作説明表示が必要と判定する。操作説明表示が必要であると判定された場合は、S601へ進む。一方、S600で操作説明表示が不要であると判定された場合、S602へ進む。
S601では、CPU103は、コンテンツが記憶されているサーバーアドレスや、画面IDに対応するページを表示するための識別子、通信装置151から取得した機種名や販売地域情報等に基づき、操作説明WebページのURLを生成する。図7は、操作説明のためのWebページのURLの構成の一例を示す図である。通常、通信装置151は機種毎に操作方法が異なる。したがって、URLは、機種名を示す識別子をパラメータとして含むものとし、機種名により表示内容を切り替えることができるようにする。また、販売地域により、機能や操作方法等が異なる場合があるので、URLは、販売地域を示す識別子をパラメータとして含むものとする。さらに、URLは、画面IDを示す識別子をパラメータとして含む。画面IDを示す識別子により、ユーザが通信装置151を操作するために、通信装置151のどの機能を選択しているかを判別することができる。このように生成された操作説明のためのWebページのURLをインターネットブラウザ等で表示することで、ユーザが操作しようとしている通信装置151の操作説明を提示することができる。S601では、CPU103は、このようにして生成した操作説明のためのWebページのURLをRAM105に保持させ、「操作説明の表示」機能をユーザへの提示機能リストに追加し、S602へ進む。
S602では、CPU103は、通信装置151から取得した接続先アクセスポイント情報に基づき、印刷用アプリケーションの「プリンターセットアップ」機能をユーザに提示するか否かを判定する。具体的には、通信装置151の接続先アクセスポイントが未設定かを判定する。S602では、通信装置151から取得した接続先アクセスポイント情報が「設定済み」を示す場合は、提示機能リストに「プリンターセットアップ」を追加せずに、S604に進む。この場合は、通信装置151の接続先のアクセスポイントの設定をユーザに促す必要がないためである。一方、通信装置151から取得した接続先アクセスポイント情報が「未設定」を示す場合は、S603に進み、印刷用アプリケーションの「プリンターセットアップ」機能をユーザへの提示機能リストに追加し、図6の処理を終了する。このように、通信装置151から取得した接続先アクセスポイント情報が「未設定」を表す場合は、通信装置151の接続先のアクセスポイントの設定をユーザに促すことにより、印刷用アプリケーションで通信装置151を検出可能にする。
S604では、CPU103は、通信装置151から取得したMACアドレスが、印刷用アプリケーションに未登録であるか否かを判定する。この判定は、通信装置151から取得したMACアドレスが、印刷用アプリケーションに登録されている通信装置151の中に存在するか否かに基づいて行われる。未登録でないと判定された場合は、S606に進み、未登録であると判定された場合は、S605に進む。S604で未登録であると判定された場合には、S605で、印刷用アプリケーションの「プリンターの登録」機能を、ユーザへの提示機能リストに追加し、図6の処理を終了する。このように、ユーザにアクセスポイント131を介して接続されている通信装置151の検出を促すことにより、印刷用アプリケーションで通信装置151を利用可能にする。
S606に進む場合、S604の判定結果により通信装置151が印刷用アプリケーションに既に登録済みである。S606にて、CPU103は、通信装置151から取得したMACアドレスに該当する登録済みの通信装置151のCapability情報に基づき、RemoteUI機能を備えているか否かを判定する。RemoteUI機能を備えていないと判定された場合、図6の処理を終了する。一方、RemoteUI機能を備えていると判定された場合、S607に進む。
S607では、CPU103は、RemoteUIページを表示するためのURLを生成し、「プリンターの状態を表示」機能を提示機能リストに追加する。RemoteUIページのURLは、通信装置151のIPアドレスから構成される。そこで、S607では、CPU103は、印刷用アプリケーションが受信したアドバタイズ情報を送信している通信装置151のIPアドレスを特定する。
まず、印刷用アプリケーションは、情報処理装置101の通信部109からアクセスポイント131を介して接続されているネットワーク上に、例えば、Wi−Fiにより、ブロードキャストを送信する。そして、ネットワーク上に接続されている通信装置151のIPアドレスを検出する。次に、CPU103は、検出したIPアドレスに該当する通信装置151のMACアドレスを通信装置151から取得し、アドバタイズ情報を送信した通信装置151から取得したMACアドレスと合致するか否かを判定する。MACアドレスが合致した場合、アドバタイズ情報を送信している通信装置151のIPアドレスを特定できる。このようにして、CPU103は、印刷用アプリケーションが受信したアドバタイズ情報を送信している通信装置151のIPアドレスを特定し、特定したIPアドレスに基づき、RemoteUIページのURLを生成する。RemoteUIページのURLは、通信装置のIPアドレスが例えば、192.168.11.10の場合、「https://192.168.11.10/」となる。そして、CPU103は、生成したRemoteUIページのURLをRAM105に保持させ、「プリンターの状態を表示」機能を提示機能リストに追加し、図6の処理を終了する。
図6のフローチャートでは、表示画面において提示する機能に優先順位を設けている。例えば、提示機能リストにプリンターセットアップが追加された場合、プリンターの登録、プリンターの状態を追加しない。また、提示機能リストにプリンターの登録が追加された場合、プリンターの状態を追加しない。このように、優先順位を決めることで、図8に示すような提示機能選択ダイアログで提示する機能の数を抑えることができる。なお、図6のフローチャートは、通信装置151の状態情報、および印刷用アプリケーションの設定状態に基づき、印刷用アプリケーション上で提示する機能を選択する処理について説明するものであるが、判定条件や選択する機能等は図6の内容に限定されるものではない。例えば、プリンターセットアップ、プリンターの登録、プリンターの状態のうち2以上を追加できるようにしてもよい。また、これらの優先順位を変更してもよい。
図8は、S506において、CPU103が「操作説明を表示」機能と「プリンターセットアップ」機能を選択した場合の設定画面の表示の一例を示す図である。また、図6で示すフローチャートの処理に対応させると、S600でYesと判定され、S602でYesと判定された場合を示している。図8には、図4(A)で示した印刷用アプリケーションの起動画面400を表示中に、提示機能選択ダイアログ800を表示している様子を示している。なお、提示機能選択ダイアログ800を表示するタイミングは、起動画面400の表示中に限定されるものではなく、印刷用アプリケーションの起動中に表示する画面であればよく、例えば、図4(A)〜図4(D)のいずれの画面の表示中でも良い。
提示機能選択ダイアログ800上の「操作説明を表示」ボタン801がタップされると、CPU103は、インターネットブラウザを別途起動し、S601で生成された操作説明WebページのURLに基づくWebページをインターネットブラウザに表示する。ここで表示される内容は、通信装置151の操作パネルにネットワークに関する画面が表示されている場合には、ネットワーク設定方法に関する詳細な説明情報が表示される。また、例えば、コピー画面が表示されている場合には、コピー機能に関する詳細な説明情報が表示される。なお、前述した通り、操作説明の表示形態はこれに限定されるものではない。また、プリンターセットアップボタン802がタップされると、検出プリンター一覧画面430の「プリンターセットアップ」ボタン435がタップされた場合と同様に、CPU103は、通信装置151の接続先のアクセスポイントの設定を行う。また、キャンセルボタン803がタップされると、CPU103は、提示機能選択ダイアログ800を閉じて、印刷用アプリケーションの起動画面400を表示した状態に戻る。
このように、本実施形態では、通信装置151の状態と、印刷用アプリケーションの設定状態に基づき、ユーザに実行を推奨すると判断した機能を印刷用アプリケーションで提示する。このような構成により、ユーザが実行する可能性の高い印刷用アプリケーションの各機能を探す手間や操作を省略することができ、ユーザの利便性を向上させることができる。
なお、本実施形態では、通信装置151の状態と、印刷用アプリケーションの設定状態に基づき、ユーザに実行を推奨すると判断した機能を選択する提示機能選択ダイアログ800を提示する構成としたが、この構成に限定されない。例えば、ユーザに実行を推奨すると判断した機能が1つのみの場合には、提示機能選択ダイアログ800を表示することなく、実行する機能の説明等を一定時間表示した後に、選択した機能を実行する構成としても良い。このような構成により、さらにユーザ操作を省略し、利便性をより向上させることができる。
また、GATT通信で取得する通信装置151の状態情報に、印刷用アプリケーションで機能を提示するか否かを決定する情報を含めるようにしても良い。例えば、ユーザが印刷用アプリケーションで機能を提示したい時に押下するための「アプリケーションガイドボタン」等を通信装置151に設ける構成とする。ユーザにより「アプリケーションガイドボタン」が押下された場合、印刷用アプリケーションで機能を提示する機能自体を有効化する情報として、通信装置151の状態情報に含める構成とする。このような構成により、ユーザが能動的に印刷用アプリケーションでの操作誘導を行いたいと判断した場合にのみ、ユーザに実行を推奨すると判定した機能を印刷用アプリケーションで提示することが可能となる。すなわち、ユーザに実行を推奨する機能へ誘導するダイアログを提示することが可能となる。
[第2の実施形態]
第1の実施形態においては、GATT通信で取得した通信装置151の状態と、印刷用アプリケーションの設定状態に基づき、ユーザに実行を推奨すると判断した機能を印刷用アプリケーションで提示する構成について説明した。
これに対し、本実施形態では、通信装置151が送信するアドバタイズ情報に通信装置151の状態情報を含める構成について説明する。これにより、印刷用アプリケーションで機能を提示しなくてよい場合に、GATT通信を行うことを省略することができる。
図9は、印刷用アプリケーションが通信装置151から送信されるアドバタイズ情報の受信を検知したときに、通信装置151の状態、および所定のアプリケーションの状態に基づき、ユーザに実行を推奨する機能を提示する処理を示すフローチャートである。図9に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラムをRAM105に読み出して実行することにより実現される。S901〜S906の処理は、S501〜S506の処理と同様であるので、その説明を省略する。
S910では、CPU103は、通信装置151が送信するアドバタイズ情報に含まれる通信装置151の状態情報に基づき、GATT通信による通信装置151の状態情報の取得が必要であるか否か(要否)を判定する。本実施形態では、図示しないが、ユーザが印刷用アプリケーションで機能を提示したい場合に押下可能な「アプリケーションガイドボタン」等を通信装置151に設ける。そして、ユーザにより「アプリケーションガイドボタン」が押下された場合に、印刷用アプリケーションで機能を提示する機能を有効とする。また、押下されていない場合に、印刷用アプリケーションで機能を提示する機能を無効とする。これらの有効もしくは無効の情報は、アドバタイズ情報の通信装置151の状態情報に含める。
S910で、アドバタイズ情報に含まれる通信装置151の状態情報に、印刷用アプリケーションで機能を提示する機能が有効と設定されていた場合、GATT通信が必要であると判定され、S901に進む。一方、アドバタイズ情報に含まれる通信装置151の状態情報に、印刷用アプリケーションで機能を提示する機能が無効と設定されていた場合、GATT通信が不要であると判定し、S904に進む。なお、S901〜S906は、S501〜S506と同様であるため、説明を省略する。
このように、本実施形態では、通信装置151が送信するアドバタイズ情報にも通信装置151の状態情報を含める構成とする。そして、アドバタイズ情報に含まれる通信装置151の状態情報に基づき、GATT通信を行う前にGATT通信が必要であるか否かを判定する。このような構成により、印刷用アプリケーションで機能を提示しなくてよい場合にGATT通信を行うことを省略することが可能となる。そのため、ユーザが能動的に印刷用アプリでの操作誘導を行おうとしていない場合には、不要なGATT通信を行う必要がなく、通信装置151の近距離無線通信部157の消費電力を抑制することができる。
なお、通信装置151が送信するアドバタイズ情報に含まれる通信装置151の状態情報として、印刷用アプリケーションで機能を提示する機能が有効か無効かの情報を設定することについて説明したが、これに限定されない。例えば、アドバタイズ情報に接続先アクセスポイント情報が未設定であるか否かの情報を含めるようにして、アドバタイズ情報に接続先アクセスポイント情報が未設定である場合に、S904では「プリンターセットアップ」の提示を選択する構成としてもよい。即ち、アドバタイズ情報に含まれる通信装置151の状態情報も、S904でユーザへの提示機能を選択するための判断条件に加える構成としてもよい。このような構成により、GATT通信を行うことなく、ユーザに実行を推奨すると判定した機能を印刷用アプリケーションで提示することができ、ユーザに機能を提示するまでの時間を短縮することが可能となる。その結果、ユーザに実行を推奨する機能へ誘導するダイアログを提示することができ、ユーザの利便性をより向上させることができる。
[第3の実施形態]
第1の実施形態においては、GATT通信で取得した通信装置151の状態と、印刷用アプリケーションの設定状態に基づき、ユーザに実行を推奨すると判定した機能を印刷用アプリケーションで提示する構成について説明した。これに対し、本実施形態では、通信装置151が送信するアドバタイズ情報に通信装置151の状態情報を含める構成について説明する。これにより、GATT通信を行うことなく、印刷用アプリケーションの設定状態に基づき、実行を推奨すると判定した機能を印刷用アプリケーションで提示することができる。
まず、情報処理装置101は、通信装置151から発信されたアドバタイズ情報を受信する。アドバタイズ情報は、通信装置151の状態や設定内容等を示す状態情報を含むものとする。アドバタイズ情報に含まれる通信装置151の状態情報は、例えば、以下のような情報を含む。
・機種名
・MACアドレス
・画面ID
機種名は、通信装置151の機種名であり、MACアドレスは、通信装置151のMACアドレスである。また、画面IDは、通信装置151の表示部(不図示)の表示内容を識別するIDである。通信装置151のコピー機能やネットワーク設定機能などの各機能が選択された場合に、通信装置151の表示部に表示される内容ごとにIDを割り当てておく。接続先アクセスポイント情報は、通信装置151の接続先アクセスポイントが設定済みか未設定であるかを示す情報である。設定済みの場合は、接続先アクセスポイントのSSID(Service Set Indentifier)などの情報を含むようにしても良い。
次に、情報処理装置101は、アドバタイズ情報により得られた情報に基づいて、上述した図6に示すフローを実行する。
次に、CPU103は、図6に示すフローにより、提示機能を選択したか否かを判定する。ここで、選択したと判定された場合、CPU103は、選択された機能をユーザに提示する。その後、GATT通信を行い、選択された機能の詳細情報を受信する。例えば、プリンターセットアップが選択された場合、GATT通信により、セットアップの情報を少なくとも取得する。これにより、実施形態1で記載したようなアクセスポイントの設定や、その他のセットアップの処理が実行できる。一方、選択していないと判定された場合、CPU103は、処理を終了する。
これにより、ユーザに実行を推奨する機能の実行を誘導するダイアログを提示することが可能となる。本実施形態によれば、選択された機能をユーザに提示する際には、GATT通信を実行する必要がない。したがって、ユーザが意図しないタイミングでペアリング処理が表示されることがない。また、処理が必要となったタイミングでGATT通信をするので、ペアリング処理を実行してもユーザの利便性を低下させることがない。また、機能を選択した後に、GATT通信することにより、GATT通信で取得する情報量を少なくすることができる。
[第4の実施形態]
上記の各実施形態においては、通信装置151の状態、および所定のアプリケーションの状態に基づき、ユーザに実行を推奨する機能を提示機能選択ダイアログに表示する構成について説明した。これに対し、本実施形態では、印刷用アプリケーションの表示中の画面に応じて、ユーザに実行させることを推奨する機能を選択した後に、その選択内容をさらに変更する処理について説明する。
例えば、図4(D)の印刷用アプリケーションの検出プリンター一覧画面430(「プリンターセットアップ」機能を実行可能)をユーザ操作等で表示されている時に、図8の「操作説明を表示」機能を提示されないようになる。これにより、よりユーザ操作に適した提示をすることができる。この場合、ユーザは、検出プリンター一覧画面430で実行可能な操作を行おうとして印刷用アプリケーションを操作している可能性が高いためである。
図10は、本実施形態における、通信装置151の状態、および所定のアプリケーションの状態に基づき、ユーザに実行させることを推奨する機能を、印刷用アプリケーションの表示中の画面に応じて変更する処理を示すフローチャートである。図10に示すフローチャートは、例えば、CPU103がROM104や外部記憶装置106等に記憶されたプログラムをRAM105に読み出して実行することにより実現される。
まず、S1010にて、CPU103は、上述した方法により、受信したアドバタイズ情報を送信した通信装置151とのGATT通信を開始する。そして、S1001へ進む。S1001〜S1005の処理は、S501〜S505の処理と同様であるので、その説明を省略する。
S1005で提示機能を選択した場合(S1005でYes)、S1020へ進む。S1020では、CPU103は、S1004で選択したユーザに提示する機能について、印刷用アプリケーションの表示中の画面に応じて、提示機能の選択内容を変更する処理を行う。そして、S1006にて、CPU103は、変更された選択内容に基づき、提示機能を表示する。
図11は、S1020で行う、印刷用アプリケーションの表示中の画面に応じて、提示機能の選択内容を変更する処理を示すフローチャートである。S1101では、CPU103は、印刷用アプリケーションによる表示中の画面で実行可能な機能をリストアップして保持する。ここで、表示中の画面とは、印刷用アプリケーションが通信装置151から送信されるアドバタイズ情報の受信を検知した時に情報処理装置101の表示部108が表示している画面を示す。例えば、図4(B)で示す印刷用アプリケーションのプリンター情報画面410が表示中の画面である場合、実行可能な機能は「プリンターの状態」機能、「操作説明」機能がリストアップされる。また、図4(D)で示す印刷用アプリケーションの検出プリンター一覧画面430が表示中の画面である場合、実行可能な機能は「プリンターセットアップ」機能のみがリストアップされる。
S1102では、CPU103は、S1101でリストアップされた表示中の画面で実行可能な機能を全て確認したか否かを判定する。ここで、全て確認済みであると判定された場合、S1106に進む。一方、未確認の機能があると判定された場合は、S1103へ進む。S1103では、CPU103は、S1101でリストアップされた表示中の画面で、着目する実行可能な機能(確認対象機能)が、S1004で選択した提示機能に含まれているか否かを判定する。確認対象機能が提示機能として選択されていない場合は(S1103でNO)、S1105に進み、次の機能について判定を行う。一方、確認対象機能が提示機能として選択されている場合は(S1103でYes)、S1104に進む。
S1104では、CPU103は、確認対象機能を優先表示機能リストに追加する。ここで、優先表示機能リストとは、表示中の画面で実行可能な機能であり、かつ、S1004で選択した提示機能のリストである。したがって、ユーザが実行する可能性がより高い印刷用アプリケーションの機能と判定した機能リストであるといえる。次に、S1105に進み、S1101でリストアップされた表示中の画面で実行可能な機能のうち、次の機能に着目してS1102に戻る。
S1106では、CPU103は、優先表示機能リストに提示機能があるか否かを判定する。優先表示機能リストに提示機能がないと判定された場合(S1106でNo)、即ち、優先表示機能リストにどの機能も追加されなかった場合は、CPU103は、提示機能の内容を変更せずに図11の処理を終了する。この場合は、S1004で選択した機能をそのままユーザに提示する。一方、優先表示機能リストに提示機能があると判定された場合(S1106でYes)、即ち、優先表示機能リストに追加された機能がある場合は、S1107へ進む。S1107では、CPU103は、S1004で選択された提示機能の内容を破棄し、優先表示機能リストの内容で上書きし、図11の処理を終了する。これにより、S1006にて表示される、提示する機能の選択内容が変更される。このように、優先表示機能リストに提示機能が追加されることで、ユーザが実行する可能性がより高い印刷用アプリケーションの機能が抽出される。
このように、本実施形態では、印刷用アプリケーションの表示中の画面に応じて、提示機能の選択内容を変更することで、ユーザが実行する可能性がより高い印刷用アプリケーションの機能を優先的にユーザに提示することが可能となる。すなわち、ユーザが実行する可能性がより高い機能を誘導するダイアログを提示することが可能となる。このような構成により、ユーザに提示する機能の選択肢を減らすことが可能となり、ユーザの利便性をより向上させることができる。
また、本実施形態では、印刷用アプリケーションの表示中の画面に応じて、提示機能の選択内容を変更する構成としたが、この構成に限定されない。例えば、提示機能の選択内容を変更する処理において、表示中の画面から遷移可能な画面で実行可能な機能を、優先して選択する構成としても良い。また、提示機能として選択対象となる機能に優先順位を設けたり、さらに、通信装置151の状態や印刷用アプリケーションの設定内容に応じて、上記の優先順位を個別に設定したりるようにしても良い。このような構成により、通信装置151や印刷用アプリケーションの機能の差異等に応じて、ユーザが実行する可能性がより高い機能として提示する内容を詳細に決定することが可能となり、ユーザの利便性をより向上させることができる。
(その他の実施形態)
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウエア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウエアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。