JP6413691B2 - データ通信装置、データ通信方法、及びデータ通信プログラム - Google Patents

データ通信装置、データ通信方法、及びデータ通信プログラム Download PDF

Info

Publication number
JP6413691B2
JP6413691B2 JP2014235639A JP2014235639A JP6413691B2 JP 6413691 B2 JP6413691 B2 JP 6413691B2 JP 2014235639 A JP2014235639 A JP 2014235639A JP 2014235639 A JP2014235639 A JP 2014235639A JP 6413691 B2 JP6413691 B2 JP 6413691B2
Authority
JP
Japan
Prior art keywords
service
application
profile
data communication
characteristic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014235639A
Other languages
English (en)
Other versions
JP2016100712A (ja
Inventor
篠宮 聖彦
聖彦 篠宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014235639A priority Critical patent/JP6413691B2/ja
Priority to US14/944,787 priority patent/US9756199B2/en
Priority to CN201510794211.1A priority patent/CN105635940B/zh
Publication of JP2016100712A publication Critical patent/JP2016100712A/ja
Application granted granted Critical
Publication of JP6413691B2 publication Critical patent/JP6413691B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00281Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal
    • H04N1/00307Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a telecommunication apparatus, e.g. a switched network of teleprinters for the distribution of text-based information, a selective call terminal with a mobile telephone apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/0032Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a medium handling apparatus, e.g. a sheet sorter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Description

本発明は、データ通信装置、データ通信方法、及びデータ通信プログラムに関する。
従来から、無線通信を用いてデバイス間を接続する技術が用いられている。デバイス間を接続する無線通信の規格として、Bluetooth(登録商標)が提案されている。
Bluetooth(登録商標)を用いてデバイス間を接続する際には、ペリフェラル(周辺機器:例えばキーボード等)と、セントラル(周辺機器を利用するデバイス:例えばスマートフォン等)と、が同じプロファイルが設定されている場合に接続可能としている。ところで、従来のデバイスでは、予め定められたプロファイルをファームウェアに格納した上で、製品として提供されている。
プロファイルは、機器の種類ごとに策定されたプロトコルの利用方法が定められたものである。このため、ペリフェラル側のデバイスで複数のプロファイルが設定されているものはあまり多くなかった。また、デバイスに、途中で機能を追加するためにはファームウェアを更新する必要があると共に、プロファイルを途中で追加することは難しかった。
近年、Bluetooth 4.0には、LE(Low Energy)という通信方式が提案されている。LEでは、GATT(Generic Attribute Profile)というプロファイルが組み込まれている。これにより、デバイスとの通信を定義するプログラムを後から追加することが可能となった。
しかしながら、GATT(Generic Attribute Profile)というプロファイルで複数のサービスを提供している場合に、デバイスとの通信を定義するプログラムを用いて、サービスの追加や変更等を行う際に、整合性を取るのが難しく、自由にカスタマイズするのが難しいという問題が生じていた。
本発明は、上記に鑑みてなされたものであって、サービスの追加や変更を容易にするデータ通信装置、データ通信方法、及びデータ通信プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明のデータ通信装置は、近距離無線通信の規格に従って通信を行う通信部と、近距離無線通信の規格に従った、プロトコルの利用手法が定義されたプロファイルのうち、複数のサービスを設定可能であり且つ当該サービスに対して識別情報を対応付けている第1のプロファイルを記憶する記憶部と、アプリケーションがインストールされる場合に、前記第1のプロファイルに対して、当該アプリケーションが利用するサービスを、当該サービスに対応付けられた識別情報に基づいて追加又は更新を行う調停部と、を備える。
本発明によれば、プロトコルの利用手法が定義されたプロファイルを用いた複数の機器間のための無線通信規格に従った無線通信で、サービスの追加や変更を容易にするという効果を奏する。
図1は、実施形態のデータ通信システムの構成の例を示す図である。 図2は、実施形態のMFPのハードウェア構成を例示した図である。 図3は、実施形態のMFPのソフトウェア構成を例示した図である。 図4は、実施形態の操作部の機能構成を例示した図である。 図5は、実施形態のMFPのBluetooth(登録商標)で利用するプロファイル及びサービスの構成例を示した図である。 図6は、実施形態のGATTプロファイルを構成するサービスのデータフォーマットを例示した図である。 図7は、実施形態の操作部内の調停モジュールが行う制御の例を示した図である。 図8は、実施形態のGATTプロファイルに登録されたサービスが有する各項目を例示した図である。 図9は、実施形態のGATTプロファイルに登録されたサービスをXML形式で例示した図である。 図10は、実施形態の操作部で行われるデータフローを例示した図である。 図11は、実施形態のMFPとスマートフォンとの間で行われる処理を示したシーケンス図である。 図12は、実施形態のアドバタイズメント・パケットのデータ構造例を示した図である。 図13は、実施形態のMFPにアプリケーションをインストールする際に行われる登録を示したシーケンス図である。 図14は、実施形態の操作部にアプリケーションが追加される際に行われる処理を示した図である。 図15は、キャラクタリスティックの登録処理を示した図である。 図16は、実施形態のMFPでアプリケーションのアンインストールで、サービスの削除の際に行われる通信を示したシーケンス図である。 図17は、実施形態のMFPでアプリケーションのアンインストールで、キャラクタリスティックの削除の際に行われる通信を示したシーケンス図である。 図18は、実施形態の操作部における、プログラムのアンインストールに伴うサービスの削除処理の手順を示すフローチャートである。 図19は、キャラクタリスティックの削除処理を示した図である。
以下に添付図面を参照して、データ通信装置、データ通信方法、及びデータ通信プログラムの実施形態を詳細に説明する。
図1は、実施形態のデータ通信システム100の構成の例を示す図である。図1に示されるように、データ通信システム100は、MFP1と、スマートフォン5と、で構成されている。MFP1、及びスマートフォン5は、それぞれ無線通信インターフェースを備えている。当該無線通信インターフェースは、用途に応じてプロトコルの利用手法が定義されたプロファイルが複数の機器で対応している場合に当該複数の機器間の通信が可能な近距離無線通信の規格に従ったものであり、本実施形態ではBluetooth(登録商標)に従ったものとする。
図1に示す例では、MFP1がペリフェラル(周辺機器)側とし、スマートフォン5がセントラル(周辺機器を利用するデバイス)側とする。
本実施形態のMFP1は、アプリケーションをインストールすることで、インストールされたアプリケーションに基づく機能によるサービスを提供することが可能となる。例えば、新しいスキャナアプリケーションをインストールすることで、当該アプリケーションが有する新しいスキャナモードの情報や、カウンタ情報や、ジョブ履歴など、従来参照できなかったデータの提供が可能となる。当該データを提供するためのサービスは、Bluetooth(登録商標)のプロファイルに対して、新しいサービスとして追加しても良いし、従来のサービスの一部として追加拡張を行っても良い。
本実施形態は、新しいサービスの追加や、従来のサービスの一部として追加拡張を行うためのプロファイルとして、GATTプロファイルを用いる例とする。
GATT(Generic Attribute Profile)プロファイルは、デバイスとの通信定義するプログラムを後から追加可能なプロファイルであって、サービス、キャラクタリスティック、ディスクリプタと称される3つの要素で構成されている。当該GATTプロファイルは、一つ又は複数のサービスを設定可能とする。そして、GATTプロファイルのサービスの追加や一部拡張を行うことで、新しい機能の追加や機能の変更を実現できる。
GATTプロファイルにおいて、サービスはプロファイルの一機能を表している。本実施形態では、XML形式のファイルを用いることで、サービスは、複数の入れ子になっているサービスと複数のキャラクタリスティックから構成される。
また、キャラクタリスティックは、単一の値を持った属性情報を表している。キャラクタリスティックは、キャラクタリスティック自体の値、値へのアクセス方法を定義するプロパティ、複数のディスクリプタで構成されている。
ディスクリプタはキャラクタリスティックに付加情報が必要な際に用いられる属性情報を表している。なお、キャラクタリスティックによってはディスクリプタは定義されていない場合がある。
本実施形態において、サービス及びディスクリプタを特定するために、サービス及びディスクリプタの各々に対してユニークな識別情報であるUUID(Universally Unique Identifier)を付与している。
次に、MFP1のハードウェア構成の例について説明する。図2は、実施形態のMFP1のハードウェア構成を例示した図である。図2に示すように、MFP1は、本体部10と操作部20とを備える。本体部10は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種の機能を実現する。操作部20は、ユーザの操作に応じた情報を受け付ける。なお、ユーザの操作に応じた情報とは、例えば画面の座標値を示す信号等とする。
本体部10及び操作部20は、接続I/F16、専用の通信路30、及び接続I/F26を介して相互に通信可能に接続されている。通信路30は、例えばUSB(Universal Serial Bus)規格を用いることができるが、有線か無線かを問わず任意の規格でよい。
本体部10は、操作部20で受け付けた操作に応じた動作を行う。また、本体部10は、図示されていないクライアントPC(パーソナルコンピュータ)等の外部装置とも通信可能であり、外部装置から受信した指示(印刷指示等)に応じた動作を行うこともできる。
本体部10のハードウェア構成について説明する。図2に示されるように、本体部10は、CPU11、ROM12、RAM13、HDD(ハードディスクドライブ)14、通信I/F15、接続I/F16、及びエンジン部17を備える。CPU11、ROM12、RAM13、HDD14、通信IF15、接続IF16及びエンジン部17はシステムバス18を介して相互に接続されている。
CPU11は本体部10の動作を統括的に制御する。CPU11はRAM13をワークエリア(作業領域)としてROM12又はHDD14等に格納されたプログラムを実行することで、本体部10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能等の各種機能を実現する。
通信I/F15は、ネットワーク35と接続するためのインターフェースとする。接続I/F16は、通信路30を介して操作部20と通信するためのインターフェースとする。
エンジン部17はコピー機能、スキャナ機能、ファクス機能及びプリンタ機能を実現させるための、汎用的な情報処理及び通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ、用紙等のシート材への印刷を行うプロッタ、ファクス通信を行うFAX部等を備えている。エンジン部17は、更に、印刷済みシート材を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置)のような特定のオプションを実現するためのハードウェアを備えていてもよい。
次に操作部20のハードウェア構成について説明する。図2に示すように、操作部20は、CPU21、ROM22、RAM23、フラッシュメモリ24、通信I/F25、接続I/F26、操作パネル27、及び外部接続I/F28を備える。CPU21、ROM22、RAM23、フラッシュメモリ24、通信IF25、接続IF26、操作パネル27及び外部接続I/F28は、システムバス29を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21はRAM23をワークエリア(作業領域)としてROM22又はフラッシュメモリ24等に格納されたプログラムを実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示等を実現する。
通信I/F25は、ネットワーク35と接続するためのインターフェースとする。また、通信I/F25は、BLEモジュール25Aを備えている。BLEモジュール25Aは、BLE(Bluetooth 4.0 low energy)規格準拠に対応したモジュールとする。通信I/F25は、BLEモジュール25Aを搭載することで、近距離無線通信の規格に従って、BLE規格準拠に対応した他のデバイスとの間で無線通信を行う通信部として機能する。本実施形態は、用途に応じてプロトコルの利用手法が定義されたプロファイルが複数の機器で対応している場合に当該複数の機器間の通信が可能な近距離無線通信の規格として、BLE規格を用いた例について説明するが、他の通信規格を用いても良い。
接続I/F26は、通信路30を介して本体部10と通信するためのインターフェースとする。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば受け付けた操作に応じた情報、MFP1の動作状況を示す情報、設定状態などを示す情報など)を表示する。本実施形態の操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに制限するものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成してもよい。さらに、これに加えて又はこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けてもよい。
外部接続I/F28は、ICカードリーダー3と接続するためのインターフェースとする。
次に、MFP1のソフトウェア構成について説明する。図3は、本実施形態のMFP1のソフトウェア構成を例示した図である。図3に示されるように、本体部10は、アプリ層101と、サービス層102と、OS層103と、を備えている。アプリ層101、サービス層102及びOS層103の実体は、ROM12やHDD14等(図2参照)に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェアを実行することにより、各種の機能が提供される。
アプリ層101のソフトウェアは、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下の説明では、単に「アプリ」と称する場合がある)である。例えばアプリとしては、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層102のソフトウェアは、アプリ層101とOS層103との間に介在し、アプリに対し、本体部10が備えるハードウェア資源を利用するためのインターフェースを提供するためのソフトウェアである。より具体的には、ハードウェア資源に対する動作要求の受付、動作要求の調停を行う機能を提供するためのソフトウェアである。サービス層102が受け付ける動作要求としては、スキャナによる読み取りやプロッタによる印刷等の要求が考えられる。
なお、サービス層102によるインターフェースの機能は、本体部10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち操作部20のアプリ層201(アプリ)も、サービス層102のインターフェース機能を介して、本体部10のハードウェア資源(例えば図2のエンジン部17)を利用した機能を実現することができる。
OS層103のソフトウェアは、本体部10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム)である。サービス層102のソフトウェアは、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103のソフトウェアによりコマンドが実行されることで、ハードウェア資源は、アプリの要求に従った動作を行う。
同様に、操作部20は、アプリ層201と、サービス層202と、OS層203とを有する。操作部20が備えるアプリ層201、サービス層202、及びOS層203も、階層構造については本体部10と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体部10とは異なる。アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体部10が備える機能(コピー機能、スキャナ機能、ファクス機能及びプリンタ機能)に関する操作や表示を行うためのUI(ユーザインターフェース)の機能を提供するためのソフトウェアである。
なお、本実施形態では、機能の独立性を保つために、本体部10のOS層103のソフトウェアと、操作部20のOS層203のソフトウェアが互いに異なる。つまり、本体部10と操作部20は、別々のオペレーティングシステムで互いに独立して動作する。例えば、本体部10のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20のOS層203のソフトウェアとしてAndroid(登録商標)を用いることを可能とする。
以上のように、実施形態のMFP1において、本体部10と操作部20は別々のオペレーティングシステムで動作するため、本体部10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。異なる装置間の通信として例えば、操作部20が受け付けた情報(ユーザからの指示内容)を本体部10へ伝達する動作(コマンド通信)や、本体部10が操作部20へイベントを通知する動作等がある。ここでは操作部20が本体部10へコマンド通信を行うことにより、本体部10の機能を使用できる。また、本体部10から操作部20に通知するイベントには、本体部10における動作の実行状況や、本体部10で設定された情報等が挙げられる。
また、本実施形態では、操作部20に対する電力供給は、本体部10から通信路30を経由して行われている。このため、操作部20の電源制御を、本体部10の電源制御とは別に(独立して)行うことができる。
次に、操作部20の機能構成について説明する。図4は、操作部20の機能構成を例示した図である。図4に示される例では、操作部20は、上層から順に、アプリ層201と、サービス層202と、OS層203と、ハードウェア層204と、により構成されている。
アプリ層201には、インストーラ401と、第1のアプリケーション402と、第2のアプリケーション403と、第3のアプリケーション404と、第5のアプリケーション405と、を備えている。
インストーラ401は、UIを介して、ユーザからのアプリケーションのインストール(追加)を制御する。
新しいアプリケーションがアプリ層201にインストールされる際に、当該アプリケーションは、サービス層202の調停モジュール412に対して、GATTプロファイルに対するサービスの登録を要求する。
本実施形態の調停モジュール412は、このような登録要求に従って、Bluetooth(登録商標)の無線通信を行うために、GATTプロファイルにサービスを追加する。そして、調停モジュール412に対してサービスの登録要求したアプリケーションは、GATTプロファイルに登録されたサービスを用いて無線通信が可能となる。さらには、調停モジュール412からの様々な通知を受け取ることが可能となる。
サービス層202は、アプリケーション管理部411と、調停モジュール412と、を備えている。
アプリケーション管理部411は、アプリ層201にインストールされた各アプリケーションの起動状態又は停止状態であるかを管理する。そして、アプリケーション管理部411は、各アプリケーションの状態を、調停モジュール412に通知する。つまり、アプリケーション管理部411は、インストールされたプログラムが起動しているかを検出する検出部として機能する。
調停モジュール412は、UUID重複チェック機能421と、GATTサービス制御部422と、GATTデータ制御部423と、GATTサービス停止/再開機能424と、GATTデータ停止/再開機能425と、保存機能426と、通知機能427と、GATTデータ送受信機能428と、を備えている。
本実施形態の調停モジュール412は、インストールされたアプリケーションからの要求に従って、GATTプロファイルに対してサービスやキャラクタリスティック等の追加を行う。
ところで、本実施形態では、MFP1のアプリ層201にインストールされるアプリケーションが使用するサービス及びキャラクタリスティック毎にUUIDを対応付けている。
図5は、本実施形態のMFP1のBluetooth(登録商標)で利用するプロファイル及びサービスの構成例を示した図である。MFP1は、複数のプロファイルを備えることができるものとする。そして、図5に示される例では、第1のプロファイル501、第2のプロファイル502、及び第3のプロファイル503が備えられている。プロファイルとしては、例えば、HID、HFP、HSP,A2DP、SPP、GATT等とする。
図5に示される例では、第2のプロファイル502が、GATTプロファイルであって複数のサービスを構成可能な例とする。そして、サービスより下層にはキャラクタリスティック(以下、データとも称する)が一つ又は複数個定義可能としている。
調停モジュール412は、アプリケーションのインストールに伴って、サービス(例えば、第3のサービス521)の追加や、サービスの一部拡張、換言すればデータ(例えば、第3のキャラクタリスティック531)の追加を可能としている。
図6は、GATTプロファイルを構成するサービスのデータフォーマットを例示した図である。図6に示されるように、サービスの定義(“Service Definition”)として、“Service Declaration”601と、キャラクタリスティックの定義(“Characteristic Definition”)602と、を含んでいる。
サービスには、“Attribute Handle”、“Attribute Type”、“Attribute Value”611、“Attribute Permissions”が定義されている。“Attribute Value”611には、サービスに割り当てられたUUID(Universally Unique Identifier)が設定されている。
キャラクタリスティックには、“Attribute Handle”、“Attribute Type”、“Attribute Value”、“Attribute Permission”が定義されている。“Attribute Type”612には、キャラクタリスティックに割り当てられたUUID(Universally Unique Identifier)が設定されている。
例えば、“Characteristic Value Definition”613を追加することで、既存のサービスに対して、キャラクタリスティックを追加できる。また、追加された“Characteristic Value Definition”613も、“Attribute Type”614に、キャラクタリスティックに割り当てられたUUID(Universally Unique Identifier)が設定されている。
本実施形態では、各アプリケーションが利用するサービス及びキャラクタリスティック毎に、UUIDが予め定められている。このため、アプリケーションをインストールする際に、他のアプリケーションのサービスやキャラクタリスティックと重複することなく、サービスやキャラクタリスティックの追加を実現している。次に、図4に戻り、調停モジュール412の各構成について説明する。
図4に戻り、調停モジュール412が、GATTプロファイルに対して、インストールされるアプリケーションが利用するサービスを、当該サービスに対応付けられたUUIDに基づいて追加又は更新を行う調停部として機能する。
本実施形態では、調停モジュール412がサービスの追加又は更新を行う際に、UUID重複チェック機能421が、GATTプロファイルに格納されているサービスに付与されているUUIDと重複しているか否かを判定する。
そして、UUID重複チェック機能421が、インストールされるアプリケーションが利用する第1のサービスと同じUUIDが割り当てられた他のサービスがGATTプロファイルに格納されてないと判定した(重複していないと判定された)場合に、調停モジュール412のGATTサービス制御部422は、当該第1のサービスを、GATTプロファイルに追加する。
本実施形態では、異なるアプリケーションが利用する異なるサービスについて同じUUIDが割り当てられないようにしているが、機能が同じアプリケーションが複数インストールされる場合や、既にインストール済みのアプリケーションをバージョンアップする場合に、同じUUIDのサービスが追加されることも考えられる。このような場合には、当該サービスの更新するのが望ましい。
そこで、UUID重複チェック機能421が、インストールされるアプリケーションが利用する第1のサービスと同じUUIDが割り当てられた他のサービスがGATTプロファイルに格納されていると判定した(重複していると判定された)場合に、調停モジュール412のGATTサービス制御部422は、当該第1のサービスを用いて、GATTプロファイルに格納されている他のサービスを更新する。ただし、本実施形態では、追加許可が設定されている場合に限り、更新可能としている。
このように、本実施形態は、UUID重複チェック機能421が、アプリケーションがインストールされる際に、当該アプリケーションが利用するサービスのUUIDとキャラクタリスティックのUUIDとが、すでにGATTプロファイルに登録されているサービスのUUIDとキャラクタリスティックのUUIDとが、重複するか否かを判定している。
GATTサービス制御部422は、アプリケーションに従って、GATTプロファイルのサービスを制御する。例えば、アプリケーションがインストールされる場合に、GATTプロファイルに対して、当該サービスの追加や既存サービスの更新(拡張)等を行う。
GATTデータ制御部423は、アプリケーションに従って、当該アプリケーションが利用するキャラクタリスティックを制御する。例えば、アプリケーションがインストールされる場合に、GATTプロファイルに対して、当該キャラクタリスティックの追加等を行う。
保存機能426は、フラッシュメモリ24に対する保存を行う。例えば、保存機能426は、アプリケーションと、当該アプリケーションが利用するサービス及びキャラクタリスティックのUUIDと、を対応付けて保存する。
ハードウェアであるフラッシュメモリ24は、プロファイルを記憶する記憶部として機能する。本実施形態では、少なくともGATTプロファイルが格納されているが、他のプロファイルが格納されていても良い。さらには、フラッシュメモリ24は、後述する管理テーブルを記憶する。
インストールされたアプリケーションには、プロセス名(プロセスID)が割り当てられており、インストールする際に、当該プロセス名(プロセスID)も登録される。そして、調停モジュール412の保存機能426は、当該プロセス名(プロセスID)と共に、プロセス名(プロセスID)とUUIDとを対応付けて(図示しない)管理テーブルに登録することで、どのようなサービスが存在するのかを把握できると共に、UUIDの重複確認が可能となる。このように、本実施形態では、管理テーブルにおいて、アプリケーションと、サービスと、の対応関係を管理している。さらに、管理テーブルは、アプリケーションと、キャラクタリスティックとの対応関係を管理しても良い。
本実施形態では、管理テーブルに、アプリケーション(プロセスID)と、サービス(UUID)及びキャラクタリスティックと、の対応関係を保持することで、セントラルからデータ(キャラクタリスティック)の書き込み要求がきた場合に起動すべきアプリケーションを特定できる。そして、通知機能427は、特定されたアプリケーションが起動した後、当該アプリケーションに対して、書き込み要求があったことを通知する。その際に、書き込まれたデータ等を送信しても良い。
さらには、アプリケーションをアンインストールする際に、削除対象となるサービス及びキャラクタリスティックを特定できる。さらに、アプリケーションの起動状態に応じて、当該サービスの停止/起動を制御できる。
GATTサービス停止/再開機能424は、アプリケーション管理部411が検出したアプリケーションの状態に応じて、当該アプリケーションが使用するサービスの停止又は再開を制御する。
GATTデータ停止/再開機能425は、アプリケーション管理部411が検出したアプリケーションの状態に応じて、当該アプリケーションが使用するキャラクタリスティックの停止又は起動を制御する。
このように、本実施形態のGATTサービス停止/再開機能424及びGATTデータ停止/再開機能425は、アプリケーションが起動している間に限り、当該アプリケーションに関連するサービス及びキャラクタリスティックが利用できるように制御する。
さらに、MFP1本体が省エネ移行、復帰やプロセスの起動、停止を行うタイミングにおいて、GATTサービス停止/再開機能424は、各サービスの起動、停止制御を行う。同様に、MFP1本体が省エネ移行、復帰やプロセスの起動、停止を行うタイミングにおいて、GATTデータ停止/再開機能425は、各キャラクタリスティックの起動、停止制御を行う。
本実施形態では、セントラル側(例えば、スマートフォン5)から、GATTプロファイルのデータ(キャラクタリスティック)に対して書き込み(Write権限ありデータの場合)要求が発生した場合には、通信I/F25及びBluetoothスタック431を介して調停モジュール412にその旨が通知される。
そして、調停モジュール412は、書き込み要求があったGATTプロファイルのデータ(キャラクタリスティック)から、当該キャラクタリスティックを有するサービスを特定する。そして、調停モジュール412は、サービスと、アプリケーションと、の対応関係を管理している管理テーブルから、どのアプリケーションが利用するかを特定する。そして、調停モジュール412が、当該アプリケーションの起動制御を行った上で、当該データの書き込みを制御する。
当該書き込み制御は、GATTプロファイルに設定されたキャラクタリスティックのタイプが、Read属性だけではなく、Write属性を持つものが対象とされる。Write属性を有する場合に、ペリフェラル側からセントラル側にデータを書き込みできる。
通知機能427は、アプリ層201に格納されている各アプリケーションに対して通知を行う。
例えば、通知機能427は、調停モジュール412が、セントラル側からアクセスがあったことを、Bluetoothスタック431を介して検出した場合に、通知機能427は、当該アクセスの対象であるアプリケーションに対して起動するように通知を行う。
GATTデータ送受信機能428は、Bluetoothスタック431を介して、外部機器との間でデータの送受信を可能とする。
OS層203には、Bluetoothスタック431が格納されている。Bluetoothスタック431は、操作部20においてBluetooth(登録商標)を利用するためのドライバであって、GATTプロファイルを含む複数のプロファイルに対応している。例えば、Bluetoothスタック431は、当該GATTプロファイルを利用することで、GATTプロファイルに登録された各種サービスを提供できる。以降、Bluetoothスタック431がGATTプロファイルを利用した際に、呼び出し可能なライブラリを、BluetoothGattとも称する。
例えば、Bluetoothスタック431は、GATTデータ送受信機能428からの要求に従って、通信I/F25を介して送信制御を行う送信制御部として機能する。例えば、Bluetoothスタック431は、GATTデータ送受信機能428からの要求に従って、通信I/F25を介して、外部の機器に対してアドバタイジング・パケットの送信制御を行う。
また、Bluetoothスタック431は、GATTデータ送受信機能428からの要求に従って、GATTデータ送受信機能428からの要求に従って、通信I/F25を介して外部の機器からの情報の受信制御を行う受信制御部として機能しても良い。
図7は、操作部20内の調停モジュール412が行う制御の例を示した図である。図7に示されるように、調停モジュール412が、MFP1の省エネ移行、及び復帰を行うタイミングに合わせて、各アプリケーション(例えば、キーボードアプリ)や、各サービス(例えば、スマホ向けMFPサービス、その他ペリフェラルサービス)の起動、停止を行う。この制御に、調停モジュール412の通知機能427を用いても良い。また、省エネ移行拒否などの処理は、調停モジュール412が代表して行うことで、各サービスの省エネ復帰処理のタイミングをあわせることができる。また、各サービスの負荷を低減できる。
また、操作部20が、セントラルとペリフェラルの2つの機能を持つ場合には、セントラル及びペリフェラルの同時動作ができない。このため、調停モジュール412は、操作部20全体を停止させてから切り替えることで、動作モードの不整合が発生しないようにする。さらに、調停モジュール412は、実行中のサービスがある場合に、当該サービス停止拒否をしたり、モード切替(例えば、ペリフェラルからセントラルに切り替え)を拒絶したりする。
図8は、本実施形態のGATTプロファイルに登録されたサービスが有する各項目(キャラクタリスティック)を例示した図である。図8に示される例では、MFP1のIPアドレスや無線LANの接続情報を渡せるため、Bluetooth(登録商標)からWi-Fi Directにハンドオーバーする機能に必要な項目(キャラクタリスティック)の一部が示されている。また、図8に示されるように、本実施形態では、項目毎にUUIDが対応付けられている。さらに、本実施形態では、項目毎にtype(変数の型)、properties、permissions(例えばWrite権限、Read権限、実行権限)、Value(固定値)が対応付けられている。
図9は、GATTプロファイルに登録されたサービスをXML形式で例示した図である。図9に示される例のうち、領域901には、図8で示されたサービスが登録されている。図9に示されるXML形式を用いることで、キャラクタリスティックのValueやTypeを指定できる。さらには、アプリケーションが、調停モジュール412に登録するデータとして、XML形式を用いることで、カスタマイズしやすいフォーマットで提供可能となる。
図10は、本実施形態の操作部20で行われるデータフローを例示した図である。図10に示される例では、アプリケーション等で利用されるサービス1000が、BluetoothGattを用いて、スマートフォン5との間でデータの送受信をする例とする。
まず、(1)サービス1000が、BluetoothGatt1001に対して、“startBroadcast”を出力し、ブロードキャストの開始を指示する。そして、(2)BluetoothGatt1001は、指示に従って、アドバタイズメント・パケットを設定する。次に、(3)BluetoothGatt1001は、ブロードキャストの開始を指示する。そして、(4)BLEモジュール25Aは、デバイスを発見するためのアドバタイズメント・パケットをブロードキャストする。
そして、(5)アドバタイズメント・パケットを受信したスマートフォン5は、接続リクエストを送信する。
次に、(6)BluetoothGatt1001は、BLEモジュール25Aから、接続イベントを受け付ける。(7)BluetoothGatt1001は、サービス1000に対して、“onConnectionStateChange”を受け渡す。これにより、(8)サービス1000は、BluetoothGatt1001に“connect”を出力する。これにより、サービス1000と、スマートフォン5と、の間に接続がなされたことになる。
そして、(9)BluetoothGatt1001は、BLEモジュール25Aに対して、“CommandComplete”を受け渡す。これにより、(10)BLEモジュール25Aは、スマートフォン5に対して、接続完了を通知する。
その後、(11)スマートフォン5は、サービス及びキャラクタリスティック(Service/Characteristic)を要求する。そして、(12)BLEモジュール25Aは、BluetoothGatt1001に、サービスのイベントを受け渡す。(13)BluetoothGatt1001は、サービス1000に対して、“onCharacteristicReadRequest”を受け渡す。これにより、当該サービスのキャラクタリスティックが読み込まれる。
そして、(14)サービス1000は、BluetoothGatt1001に対して、“sendResponse”を受け渡す。これにより、読み込まれたキャラクタリスティックが受け渡される。
そして、(15)BluetoothGatt1001は、サービスの応答をBLEモジュール25Aに出力する。次に、(16)BLEモジュール25Aは、スマートフォン5に、サービス及びキャラクタリスティック(Service/Characteristic)の応答を送信する。
上述したデータフローにより、通信を確立した上で、キャラクタリスティック(データ)の受け渡しを可能とする。
次に、MFP1のデータを取得する際に行われる処理について説明する。図11は、本実施形態のMFP1とスマートフォン5との間で行われる処理を示したシーケンス図である。図11に示される例では、スマートフォン5がセントラル側となり、MFP1がペリフェラル側となる。
まず、スマートフォン5は、GATTプロファイルの“Primary Service Discovery”機能である“Discovery Service By UUID”サブプロシージャーを利用して、MFP1が提供するサービス(例えば、ジョブ状態、カウンタ情報、センサー情報など)として規定されたUUIDを用いてサービスの検索を要求する(ステップS1101)。
次に、MFP1は、要求されたサービスと、提供しているサービスとが一致した場合に、当該サービスのハンドルを、スマートフォン5に受け渡す(ステップS1102)。
そして、スマートフォン5は、GATTプロファイルの“Discovery Characteristic by UUID”サブプロシージャーを利用して、キャラクタリスティックの検索を要求する(ステップS1103)。
次に、MFP1は、要求されたキャラクタリスティックと、提供しているキャラクタリスティックとが一致した場合に、当該キャラクタリスティックのハンドルを、スマートフォン5に受け渡す(ステップS1104)。
そして、スマートフォン5は、GATTプロファイルの“Characteristic Value Read”機能の“Read Characteristic Value”サブプロシージャーを利用して、取得したMFP1のキャラクタリスティックのハンドルから、MFP1のデータの取得を要求する(ステップS1105)。
そして、MFP1は、要求されたデータを、スマートフォン5に受け渡す(ステップS1106)。そして、上述した処理を、キャラクタリスティックのUUID毎に繰り返して、必要なデータを取得する。
上述したように、セントラル側からアクセスがあった場合、調停モジュール412は、受け渡されたUUIDを基づいて、管理テーブルで対応付けられているアプリケーション(プロセスID)を特定する。当該アプリケーションが起動していない場合、調停モジュール412は、当該アプリケーションを起動させ、サービスハンドルを受け渡す。同じサービスでもキャラクタリスティックごとに異なるアプリケーションがデータ管理をしている場合、調停モジュール412は、次に受け渡されるキャラクタリスティックのUUIDに基づいて、対応付けられているアプリケーションを特定する。
調停モジュール412は、アプリケーション管理部411から、各アプリケーションが起動しているかを示す情報を取得できる。セントラル側から、GATTプロファイルで定義されたデータ(キャラクタリスティック)の書き込み要求があった際に、取得した情報に基づいて、通知すべきアプリケーションが起動していないと判断した場合に、通知機能427が、当該アプリケーションを起動するように通知を行う。その後に、通知機能427は、起動したアプリケーションに対して、データの書き込み要求を通知する。
調停モジュール412は、アプリケーションのインストールに伴って、サービスやキャラクタリスティックが変更された場合、Bluetooth(登録商標)のアドバタイズメント・パケットで、セントラル(クライアント側)に通知する。
図12は、本実施形態のアドバタイズメント・パケットのデータ構造例を示した図である。図12に示されるデータ構造のうち、majorバージョン欄1901又はminorバージョン欄1902を、サービスやキャラクタリスティックの変更に用いる。例えば、1bit目が1の場合には、MFP1が電源ONしてから変更があったことを示している。また、変更されるごとに数値を1つインクリメントし、変更履歴がクライアント側で管理できるようにしてもよい。
次に、MFP1にアプリケーションをインストールする際に行われる処理について説明する。図13は、本実施形態のMFP1にアプリケーションをインストールする際に行われる登録を示したシーケンス図である。
まず、インストールされるアプリケーションが、調停モジュール412に対して、当該アプリケーションのサービス登録を要求する(ステップS1201)。その際に、サービスを示すUUIDの他に、プロセス名(プロセスID)も受け渡される。これにより、サービス及びキャラクタリスティックと、プロセスと、の対応付けが可能となる。
その後、調停モジュール412が、アプリケーションに対して、サービスのUUIDが重複されているか否かに基づく登録可否を通知する(ステップS1202)。図13に示す例では登録可能と判断された例とする。
そして、アプリケーションは調停モジュール412に対して、サービスを構成するキャラクタリスティックの登録を要求する(ステップS1203)。その際に、キャラクタリスティックを示すUUIDの他に、当該キャラクタリスティックを示すXML形式のデータも受け渡される。これにより、GATTプロファイルに、アプリケーションが利用するサービスを構成するキャラクタリスティックが追加される。なお、登録可能か否か判断する処理手順については後述する。
その後、調停モジュール412が、アプリケーションに対して、キャラクタリスティックのUUIDが重複されているか否かに基づく登録可否を通知する(ステップS1204)。
上述した処理手順により、調停モジュール412にアプリケーションに関するデータが登録される。
次に、操作部20にアプリケーションが追加される際に行われる処理について説明する。図14は、本実施形態の操作部20に上述した処理を示した図である。
まず、インストーラ401が、アプリ層201に対するアプリケーションのインストール要求を受け付ける(ステップS1301)。
次に、調停モジュール412が、インストールされるアプリケーションから、サービスの登録要求を受け付けたか否かを判定する(ステップS1302)。受け付けていない場合(ステップS1302:No)、再びステップS1302の処理を行う。
一方、調停モジュール412が、インストールされるアプリケーションから、サービスの登録要求を受け付けたと判定した場合(ステップS1302:Yes)、UUID重複チェック機能421が、登録要求を受け付けたサービスのUUIDと、既存サービスのUUIDとが、一致しているか否かを判定する(ステップS1303)。
UUID重複チェック機能421が、一致していると判定した場合(ステップS1303:No)、通知機能427が、インストールされるアプリケーションに、サービスの登録通知を行う(ステップS1304)。そして、GATTサービス制御部422が、GATTプロファイルに対して、保存機能426を介して、アプリケーションから受け取った新規サービス用のXMLファイルに基づいて、新しいサービスの追加処理を行う(ステップS1305)。
次に、調停モジュール412は、インストールされるアプリケーションから、キャラクタリスティックの登録要求があるか否かを判定する(ステップS1306)。キャラクタリスティックの登録要求を受け付けたと判定した場合(ステップS1306:Yes)、キャラクタリスティックの登録処理を行う(ステップS1307)。キャラクタリスティックの登録要求を受け付けなかったと判定した場合(ステップS1306:No)、又はステップS1307の処理を行った後、ステップS1314の処理に遷移する。
一方、ステップS1303において、UUID重複チェック機能421が、登録要求を受け付けたサービスのUUIDと、既存サービスのUUIDとが、一致していると判定した場合(ステップS1303:Yes)、UUID重複チェック機能421は、当該既存のサービスに、追加許可が設定されているか否かを判定する(ステップS1308)。追加許可が設定されていない場合(ステップS1308:No)、インストールされるアプリケーションに対してエラー通知を行う(ステップS1309)。
一方、UUID重複チェック機能421が、当該既存のサービスに、追加許可が設定されていると判定した場合(ステップS1308:Yes)、通知機能427が、インストールされるアプリケーションに対して、サービスの登録通知を行う(ステップS1310)。
その後、調停モジュール412は、インストールされるアプリケーションから、キャラクタリスティックの登録要求があるか否かを判定する(ステップS1311)。キャラクタリスティックの登録要求を受け付けたと判定した場合(ステップS1311:Yes)、キャラクタリスティックの登録処理を行う(ステップS1312)。キャラクタリスティックの登録要求を受け付けなかったと判定した場合(ステップS1311:No)、又はステップS1312の処理を行った後、GATTサービス制御部422が、GATTプロファイルに対して、保存機能426を介して、既存サービスに対し、アプリケーションから受け取った新規サービス用のXMLファイルに基づいてサービスの追加拡張処理を行う(ステップS1313)。
その後、GATTデータ送受信機能428が、サービスに変更があったことをアドバタイズメント・パケットに追加する(ステップS1314)。
その後、Bluetoothスタック431が、通信I/F25を介して、アドバタイズメント・パケットをセントラル側の機器に送信する(ステップS1315)。なお、アドバタイズメント・パケットの送信先を制限するものではなく、例えば、ブロードキャストしても良い。
次に、ステップS1307及びS1312のキャラクタリスティックの登録処理について説明する。図15は、キャラクタリスティックの登録処理を示した図である。なお、図15で示される例では、図14で示したように、キャラクタリスティックの登録要求があった場合に行われる処理とする。
まず、UUID重複チェック機能421が、登録要求を受け付けたキャラクタリスティックのUUIDと、既存サービスのキャラクタリスティックのUUIDとが、一致しているか否かを判定する(ステップS1401)。一致していないと判定した場合(ステップS1401:No)、ステップS1404に遷移する。
一方、UUID重複チェック機能421が、一致していると判定した場合(ステップS1401:Yes)、UUID重複チェック機能421は、当該既存のサービスのキャラクタリスティックに、追加許可が設定されているか否かを判定する(ステップS1402)。追加許可が設定されていない場合(ステップS1402:No)、インストールされるアプリケーションに対してエラー通知を行う(ステップS1403)。
一方、UUID重複チェック機能421が、当該既存のサービスのキャラクタリスティックに、追加許可が設定されていると判定した場合(ステップS1402:Yes)、ステップS1404に遷移する。
そして、通知機能427が、インストールされるアプリケーションに対して、キャラクタリスティックの登録通知を行う(ステップS1404)。
そして、GATTデータ制御部423が、GATTプロファイルに対して、保存機能426を介して、キャラクタリスティックの追加処理を行う(ステップS1405)。
その後、GATTデータ送受信機能428が、キャラクタリスティックに変更があったことをアドバタイズメント・パケットに追加する(ステップS1406)。
本実施形態では、アプリケーションのアンインストールが行われる際に、GATTプロファイルから、当該アプリケーションのサービス及びキャラクタリスティックの削除を行う。
次に、アプリケーションのアンインストールでサービスの削除の際に行われる通信について説明する。本実施形態では、調停モジュール412は、アプリケーション管理部411からアプリケーションのアンインストール情報を取得できる。取得手法としては、例えば、アンインストール時にイベント通知を受け取る等が考えられる。
図16は、本実施形態のMFP1でアプリケーションのアンインストールで、サービスの削除の際に行われる通信を示したシーケンス図である。
まず、アンインストールされるアプリケーションが、調停モジュール412に対して、当該アプリケーションのサービス削除を要求する(ステップS1501)。その際に、サービスを示すUUIDが受け渡される。これにより、調停モジュール412はサービスの削除を実現できる。
その後、調停モジュール412が、アプリケーションに対して、UUIDに基づいたサービスの削除の完了通知を出力する(ステップS1502)。
図17は、本実施形態のMFP1でアプリケーションのアンインストールで、キャラクタリスティックの削除の際に行われる通信を示したシーケンス図である。
まず、アンインストールされるアプリケーションが、調停モジュール412に対して、当該アプリケーションのサービスが有するキャラクタリスティックの削除を要求する(ステップS1601)。その際に、キャラクタリスティックを示すUUIDが受け渡される。これにより、調停モジュール412はサービスの削除を実現できる。
その後、調停モジュール412が、アプリケーションに対して、UUIDに基づいたキャラクタリスティックの削除の完了通知を出力する(ステップS1602)。
そして、当該処理は、アプリケーションのサービスが有するキャラクタリスティックの数だけ繰り返される(例えば、ステップS1603,S1604)。
次に、本実施形態の操作部20における、プログラムのアンインストールに伴うサービスの削除処理について説明する。図18は、本実施形態の操作部20における上述した処理の手順を示すフローチャートである。
まず、調停モジュール412が、アンインストールされるアプリケーションから、サービスの削除要求を受け付けたか否かを判定する(ステップS1701)。受け付けていない場合(ステップS1701:No)、再びステップS1701の処理を行う。
一方、調停モジュール412が、インストールされるアプリケーションから、サービスの削除要求を受け付けたと判定した場合(ステップS1701:Yes)、GATTサービス制御部422は、サービス停止かサービス削除かのどちらを行うのかを設定したパラメータを参照する(ステップS1702)。
そして、GATTサービス制御部422は、当該パラメータに従って、サービス削除するか否かを判定する(ステップS1703)。サービスを削除すると判定した場合(ステップS1703:Yes)、ステップS1705に遷移する。
一方、GATTサービス制御部422は、サービス停止と判定した場合、換言すればサービス削除ではない場合(ステップS1703:No)、アプリケーションからサービスの削除要求と共に受け取ったUUIDで示されるサービスのデータを一時的に保存する(ステップS1704)。保存先としてはフラッシュメモリ24等とする。本実施形態のように保存しておくことで、当該サービスの再開時に利用することが可能となる。
さらに、調停モジュール412は、インストールされるアプリケーションから、キャラクタリスティックの削除要求を受け付けたか否かを判定する(ステップS1705)。受け付けていない場合(ステップS1705:No)、ステップS1707に遷移する。
一方、調停モジュールが、インストールされるアプリケーションから、キャラクタリスティックの削除要求を受け付けたと判定した場合(ステップS1705:Yes)、キャラクタリスティックの削除処理を行う(ステップS1706)。
その後、GATTサービス制御部422は、GATTプロファイルから、受け取ったUUIDで示されるサービスの削除処理を行う(ステップS1707)。
次に、通知機能427が、アンインストールされるアプリケーションに対して、サービスの削除通知を行う(ステップS1708)。
その後、GATTデータ送受信機能428が、サービスに変更があったことをアドバタイズメント・パケットに追加する(ステップS1709)。このように、サービスが削除された場合に、アドバタイズメント・パケットに変化があったことを示すフラグを設定する。これにより、セントラル側は、この通知が送信された際に、データを再取得すべきか否かを判断できる。
そして、Bluetoothスタック431が、通信I/F25を介して、アドバタイズメント・パケットをセントラル側の機器に送信する(ステップS1710)。なお、アドバタイズメント・パケットの送信先を制限するものではなく、例えば、ブロードキャストしても良い。
次に,図18のステップS1706のキャラクタリスティックの削除処理について説明する。図19は、キャラクタリスティックの削除処理を示した図である。なお、図19で示される例では、図18で示したように、キャラクタリスティックの削除要求があった場合に行われる処理とする。
まず、UUID重複チェック機能421が、削除要求を受け付けたキャラクタリスティックのUUIDと、既存サービスのキャラクタリスティックのUUIDとが、一致しているか否かを判定する(ステップS1801)。一致していないと判定した場合(ステップS1801:No)、ステップS1807に遷移する。
一方、UUID重複チェック機能421が、一致していると判定した場合(ステップS1801:Yes)、UUID重複チェック機能421は、当該既存のサービスのキャラクタリスティックに、削除許可が設定されているか否かを判定する(ステップS1802)。削除許可が設定されていない場合(ステップS1802:No)、アンインストールされるアプリケーションに対してエラー通知を行う(ステップS1803)。
一方、UUID重複チェック機能421が、当該既存のサービスのキャラクタリスティックに、削除許可が設定されていると判定した場合(ステップS1802:Yes)、GATTデータ制御部423は、キャラクタリスティック停止かキャラクタリスティック削除かのどちらを行うのかを設定したパラメータを参照する(ステップS1804)。
そして、GATTデータ制御部423は、当該パラメータに従って、キャラクタリスティックを削除するか否かを判定する(ステップS1805)。キャラクタリスティックを削除すると判定した場合(ステップS1805:Yes)、ステップS1807に遷移する。
一方、GATTデータ制御部423は、キャラクタリスティック停止と判定した場合、換言すればキャラクタリスティック削除ではない場合(ステップS1805:No)、アプリケーションからキャラクタリスティックの削除要求と共に受け取ったUUIDで示されるキャラクタリスティックのデータを一時的に保存する(ステップS1806)。保存先としてはフラッシュメモリ24等とする。本実施形態のように保存しておくことで、当該キャラクタリスティックの再開時に利用することが可能となる。
その後、GATTデータ制御部423は、GATTプロファイルから、受け取ったUUIDで示されるキャラクタリスティックの削除処理を行う(ステップS1807)。
その後、GATTデータ送受信機能428が、キャラクタリスティックに変更があったことをアドバタイズメント・パケットに追加する(ステップS1808)。このように、キャラクタリスティックが削除された場合に、アドバタイズメント・パケットに変化があったことを示すフラグを設定する。これにより、セントラル側は、この通知が送信された際に、データを再取得すべきか否かを判断できる。
本実施形態は、アンインストールされたアプリケーションが利用するサービス及びキャラクタリスティックをフラッシュメモリ24に保存した後、アプリケーションの再インストール等が行われた際に、調停モジュール412が、フラッシュメモリ24に保存されていたサービスやキャラクタリスティックのデータを、GATTプロファイルに追加する。
例えば、調停モジュール412は、再インストールするアプリケーションから受け渡されたUUIDに基づいて、フラッシュメモリ24に一時保存されているか否かを確認する。そして、一時保存されていたことを確認した場合に、一時保存されていたサービスや、キャラクタリスティックをGATTプロファイルに追加する。
本実施形態の操作部20においては、上述した構成を備えることで、ファーム(OS)を変更することなく、サービスの追加や更新を可能とする。さらには、サービス及びキャラクタリスティックに対してユニークな識別情報(UUID)を付与した上で、重複しないように管理することとした。これにより、データ構造の変更等のカスタマイズを容易にすると共に、機能拡張を容易にできる。
本実施形態では、アプリケーションが利用するサービス毎に、ユニークなUUIDを割り当てている。これにより、本実施形態のMFP1の操作部20に、インストールされるアプリケーションと、当該アプリケーションを利用するサービスとの対応関係を管理できる。これにより、アプリケーションをインストールする際に、当該アプリケーションが利用する機能に対応したサービスの追加が容易になる。
さらには、アプリケーションが利用するサービスをUUIDで管理することで、既に格納されたサービスの機能拡張(一部分の追加拡張)が容易になる。これにより、例えば、新スキャナアプリをインストールすることで、当該アプリケーションが有する新しいスキャナモードの情報や、スキャンのカウンタ情報や、ジョブ履歴など、新たなサービスを、従来のサービスに追加できる。
そのため、MFP1のファーム(OS)を更新しなくても、Bluetooth(登録商標)のGATTプロファイルに対して、任意のデータを追加、変更できる。従って、データ送信の機能拡張が容易となるため、後からの機能の拡張性を向上させることができる。
本実施形態の操作部20では、サービス間の調停を行うことができる。調停とは、追加したいサービスと同じUUIDを持つ既存のサービスがある場合に行われる制御とする。本実施形態においては、調停モジュール412は、調停として、新サービスへの置換、既存サービスの保持、差分データの追加等を行う。
以上に説明したMFP1の各部の機能 は、CPU(11または21)が、記憶装置(例えばROM12、HDD14、ROM22、フラッシュメモリ24等)に格納されたプログラムを実行することにより実現されるが、これに限らず、例えば上記MFP1の各部の機能のうちの少なくとも一部が専用のハードウェア回路(例えば半導体集積回路等)で実現されてもよい。
また、上述の実施形態では、本体部10と操作部20は、別々のオペレーティングシステムで互いに独立して動作しているが、これに限らず、例えば本体部10と操作部20が同じオペレーティングシステムで動作する形態であってもよい。
また、上述した実施形態のMFP1で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等の不揮発性の記録媒体に予め組み込んで提供するように構成してもよい。
なお、上記実施形態では、本発明のMFPを、コピー機能、プリンタ機能、スキャナ機能およびファクシミリ機能のうち少なくとも2つの機能を有する複合機に適用した例を挙げて説明するが、複写機、プリンタ、スキャナ装置、ファクシミリ装置等の画像形成装置であればいずれにも適用することができる。
1…MFP
3…ICカードリーダー
5…スマートフォン
101…アプリ層
102…サービス層
103…OS層
201…アプリ層
202…サービス層
203…OS層
204…ハードウェア層
401…インストーラ
402…第1のアプリケーション
403…第2のアプリケーション
404…第3のアプリケーション
405…第4のアプリケーション
411…アプリケーション管理部
412…調停モジュール
421…UUID重複チェック機能
422…GATTサービス制御部
423…GATTデータ制御部
424…GATTサービス停止/再開機能
425…GATTデータ停止/再開機能
426…保存機能
427…通知機能
428…GATTデータ送受信機能
431…Bluetoothスタック
特開2013−126003号公報

Claims (10)

  1. 近距離無線通信の規格に従って通信を行う通信部と、
    前記近距離無線通信の規格に従った、プロトコルの利用手法が定義されたプロファイルのうち、複数のサービスを設定可能であり且つ当該サービスに対して識別情報を対応付けている第1のプロファイルを記憶する記憶部と、
    アプリケーションがインストールされる場合に、前記第1のプロファイルに対して、当該アプリケーションが利用するサービスを、当該サービスに対応付けられた識別情報に基づいて追加又は更新を行う調停部と、
    を備えるデータ通信装置。
  2. 前記調停部は、さらに、インストールされる前記アプリケーションが利用する第1のサービスと同じ識別情報が割り当てられた他のサービスが、前記第1のプロファイルに格納されてない場合に、当該第1のサービスを、前記第1のプロファイルに追加する、
    請求項1に記載のデータ通信装置。
  3. 前記調停部は、さらに、前記アプリケーションが利用する第1のサービスと同じ識別情
    報が割り当てられた他のサービスが、前記第1のプロファイルに格納されている場合に、当該第1のサービスを用いて、前記第1のプロファイルに格納されている他のサービスを更新する、
    請求項1又は2に記載のデータ通信装置。
  4. インストールされた前記アプリケーションが起動しているかを検出する検出部を、さらに備え、
    前記調停部は、さらに、前記検出部が検出した前記アプリケーションの起動状態に従って、当該アプリケーションに対応する、前記第1のプロファイルに格納されているサービスを制御する、
    請求項1乃至3のいずれか一つに記載のデータ通信装置。
  5. 前記調停部は、さらに、前記第1のプロファイルで定義されている、属性情報の書き込み要求がなされた場合に、当該属性情報を利用する前記アプリケーションに対して、通知を行う、
    請求項1乃至4のいずれか一つに記載のデータ通信装置。
  6. 前記調停部により、当該アプリケーションが利用するサービスの追加又は更新が行われた場合に、前記通信部を介して、外部の機器に対してサービスが変更されたことを送信する制御を行う送信制御部を、さらに備える、
    請求項1乃至5のいずれか一つに記載のデータ通信装置。
  7. 前記調停部は、さらに、前記アプリケーションがアンインストールされる際に、当該アプリケーションが利用するサービスを、前記第1のプロファイルから削除する、
    請求項1乃至6のいずれか一つに記載のデータ通信装置。
  8. 前記調停部は、さらに、前記アプリケーションがアンインストールされる際に、当該アプリケーションが利用するサービスのデータを、前記記憶部に保存する、
    請求項7に記載のデータ通信装置。
  9. データ通信装置で行われるデータ通信方法であって、
    前記データ通信装置が、近距離無線通信の規格に従った、プロトコルの利用手法が定義されたプロファイルのうち、複数のサービスを設定可能であり且つ当該サービスに対して識別情報を対応付けている第1のプロファイルを記憶する記憶部を、備え、
    前記近距離無線通信の規格に従って通信を行い、
    アプリケーションがインストールされる場合に、前記第1のプロファイルに対して、当該アプリケーションが利用するサービスを、当該サービスに対応付けられた識別情報に基づいて追加又は更新を行う、
    データ通信方法。
  10. 近距離無線通信の規格に従って通信を行う通信ステップと、
    前記近距離無線通信の規格に従った、プロトコルの利用手法が定義されたプロファイルのうち、複数のサービスを設定可能であり且つ当該サービスに対して識別情報を対応付けている第1のプロファイルを記憶部に記憶する記憶ステップと、
    アプリケーションがインストールされる場合に、前記第1のプロファイルに対して、当該アプリケーションが利用するサービスを、当該サービスに対応付けられた識別情報に基づいて追加又は更新を行う調停ステップと、
    をコンピュータに実行させるためのデータ通信プログラム。
JP2014235639A 2014-11-20 2014-11-20 データ通信装置、データ通信方法、及びデータ通信プログラム Active JP6413691B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014235639A JP6413691B2 (ja) 2014-11-20 2014-11-20 データ通信装置、データ通信方法、及びデータ通信プログラム
US14/944,787 US9756199B2 (en) 2014-11-20 2015-11-18 Adding or updating at least one service of a generic attribute profile
CN201510794211.1A CN105635940B (zh) 2014-11-20 2015-11-18 数据通信设备、以及数据通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014235639A JP6413691B2 (ja) 2014-11-20 2014-11-20 データ通信装置、データ通信方法、及びデータ通信プログラム

Publications (2)

Publication Number Publication Date
JP2016100712A JP2016100712A (ja) 2016-05-30
JP6413691B2 true JP6413691B2 (ja) 2018-10-31

Family

ID=56011466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014235639A Active JP6413691B2 (ja) 2014-11-20 2014-11-20 データ通信装置、データ通信方法、及びデータ通信プログラム

Country Status (3)

Country Link
US (1) US9756199B2 (ja)
JP (1) JP6413691B2 (ja)
CN (1) CN105635940B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6590486B2 (ja) * 2015-02-18 2019-10-16 キヤノン株式会社 プログラム、方法、通信端末
JP6405263B2 (ja) * 2015-02-18 2018-10-17 キヤノン株式会社 印刷装置、携帯端末、印刷システム、及びその制御方法とプログラム
US10372388B2 (en) 2016-03-31 2019-08-06 Canon Kabushiki Kaisha Communication system, communication device, and control method
JP6312733B2 (ja) * 2016-03-31 2018-04-18 キヤノン株式会社 情報処理装置、通信装置、制御方法及びプログラム
US10165612B2 (en) * 2016-06-16 2018-12-25 I/O Interconnected, Ltd. Wireless connecting method, computer, and non-transitory computer-readable storage medium
US9906893B2 (en) * 2016-06-16 2018-02-27 I/O Interconnect, Ltd. Method for making a host personal computer act as an accessory in bluetooth piconet
JP6880719B2 (ja) * 2016-12-27 2021-06-02 カシオ計算機株式会社 通信装置、通信方法、電子時計及びプログラム
CN111052850B (zh) * 2017-08-18 2023-12-08 惠普发展公司,有限责任合伙企业 设备之间的关联
JP7022555B2 (ja) * 2017-10-05 2022-02-18 キヤノン株式会社 情報処理装置、データ移行方法、およびプログラム
JP7073072B2 (ja) * 2017-10-17 2022-05-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP7234978B2 (ja) 2020-02-28 2023-03-08 カシオ計算機株式会社 通信装置、通信システム、通信方法及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333173A (ja) * 2002-05-15 2003-11-21 Brother Ind Ltd コードレス電話システム、コードレス電話システムの電話機、並びにコードレス電話システムの端末装置
WO2008149713A2 (ja) * 2007-06-07 2008-12-11 Canon Kabushiki Kaisha プログラム起動装置及び方法
US8499079B2 (en) * 2008-06-23 2013-07-30 Apple Inc. Apparatus and methods for providing service discovery over alternate transports
JP2010135910A (ja) * 2008-12-02 2010-06-17 Canon Inc ユーザー設定情報管理システム、ユーザー設定情報管理方法、プログラム、記憶媒体
JP2010205057A (ja) * 2009-03-04 2010-09-16 Ricoh Co Ltd 通信制御装置,画像形成装置,プログラム,および記録媒体
JP5820624B2 (ja) * 2011-06-03 2015-11-24 アプリックスIpホールディングス株式会社 ワイヤレスコントローラおよびワイヤレスコントロール方法
JP5930689B2 (ja) 2011-12-13 2016-06-08 アルパイン株式会社 近距離無線通信システム
KR20140077435A (ko) * 2012-12-14 2014-06-24 삼성전자주식회사 모바일 단말의 소프트웨어 업데이트 서비스 방법 및 장치
WO2015157756A1 (en) * 2014-04-11 2015-10-15 Stride Tool Inc. Smart hvac manifold system
CN104022805B (zh) * 2014-06-06 2017-01-04 深圳市爱美家电子科技有限公司 一种主从端蓝牙设备连接方法及装置

Also Published As

Publication number Publication date
CN105635940A (zh) 2016-06-01
JP2016100712A (ja) 2016-05-30
CN105635940B (zh) 2020-01-07
US9756199B2 (en) 2017-09-05
US20160150105A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
JP6413691B2 (ja) データ通信装置、データ通信方法、及びデータ通信プログラム
US9898231B2 (en) System and method of mobile printing using near field communication
JP6244861B2 (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
KR101337160B1 (ko) 정보 처리 장치, 정보 처리 방법 및 기억 매체
JP6206586B2 (ja) 画像形成装置及び画像形成方法
JP7086754B2 (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US20160182610A1 (en) Information processing system, information processing apparatus, and information processing method
KR101763018B1 (ko) 시스템, 인쇄 장치, 제어 방법 및 컴퓨터 판독가능한 기록 매체
JP2009049481A (ja) 画像形成装置
KR20110135522A (ko) 관리장치 및 관리장치의 장치드라이버 관리방법
JP2014203268A (ja) 情報処理装置及び制御方法
US8810815B2 (en) Image reading system, image reading apparatus, and control methods and programs thereof
JP6326795B2 (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
US9606761B2 (en) Information processing apparatus for controlling an output process and method for the same
JP2017054334A (ja) コンテンツ指定プログラム及び携帯端末
JP2009282775A (ja) アプリケーションプラットフォーム
JP6057740B2 (ja) 画像形成装置、情報処理方法及びプログラム
US20190132459A1 (en) Information processing apparatus, information processing system, and method of processing information
JP2015049862A (ja) 情報処理装置、システム、方法およびプログラム
JP6520405B2 (ja) 携帯端末、コンテンツ指定プログラム、及び出力プログラム
JP6520403B2 (ja) 携帯端末及び出力プログラム
JP6677335B2 (ja) 携帯端末、コンテンツ指定プログラム、及び出力プログラム
JP2020107357A (ja) 起動元プログラム、及び端末装置
JP2023153904A (ja) 情報処理装置
TWI442245B (zh) 互動式系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180917

R151 Written notification of patent or utility model registration

Ref document number: 6413691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151