(57)【特許請求の範囲】
【請求項１】
端末に実装され、前記端末に接続されたデバイスを利用するアプリケーション・ソフトウェアと、前記デバイスのインターフェースとの通信を仲介するミドルウェアであって、
前記ミドルウェアは、
前記アプリケーション・ソフトウェアに、前記デバイスのインターフェースからのデータを受け渡し、前記デバイスのインターフェースに、前記アプリケーション・ソフトウェアからのデータを受け渡す物理的ミドルウェアと、
前記物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、
を備え、
前記アプリケーション・ソフトウェアと前記デバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送することを特徴とするミドルウェア。
【請求項２】
前記物理的ミドルウェアが、
前記デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータを前記アプリケーション・ソフトウェアに受け渡し、前記アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータを前記デバイスのインターフェースに受け渡すことを特徴とする請求項１に記載のミドルウェア。
【請求項３】
前記物理的ミドルウェアが、
前記アプリケーション・ソフトウェアからのデータを前記デバイスが受信可能な形式に変換し、前記デバイスのインターフェースからのデータを前記アプリケーション・ソフトウェアが受信可能な形式に変換することを特徴とする請求項２に記載のミドルウェア。
【請求項４】
前記端末は、スマートフォンまたは携帯電話機であることを特徴とする請求項１から３のいずれかに記載のミドルウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末に実装され、端末に接続されたデバイスを利用するアプリケーション・ソフトウェアと、デバイスのドライバとの通信を仲介するミドルウェアに関する。
【背景技術】
【０００２】
従来、携帯電話機やスマートフォン等の端末のアプリケーション・ソフトウェアにデバイスに関する新たなサービスを追加するためには、アプリケーション・ソフトウェアの機能拡張と共に、ミドルウェアの機能拡張も必要であった。そのため、セキュリティを確保するために、機能拡張には、管理者権限、例えば、ａｄｍｉｎ権限やｒｏｏｔ権限が必要となっていた。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、携帯電話機やスマートフォン等の端末の事業者等は、アプリケーション・ソフトウェアの一般開発者に管理者権限を与えていないため、一般開発者は、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を行うことができなかった。その結果、アプリケーション・ソフトウェアの拡張性が失われるという問題点があった。一方、携帯電話機やスマートフォン等の端末の事業者等が、一般開発者に、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を行うことができるように管理者権限を与えてしまうと、セキュリティが確保できなくなるという問題点があった。
【０００４】
そこで、本発明は、上述の課題に鑑みてなされたものであり、一定のセキュリティを保持したまま、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、管理者権限を持たない開発者に可能とするためのミドルウェアを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００６】
（１）  本発明は、端末に実装され、前記端末に接続されたデバイスを利用するアプリ
ケーション・ソフトウェアと、前記デバイスのインターフェースとの通信を仲介するミド
ルウェアであって、前記ミドルウェアは、前記アプリケーション・ソフトウェアに、前記デバイスのインターフェースからのデータを受け渡し、前記デバイスのインターフェースに、前記アプリケーション・ソフトウェアからのデータを受け渡す物理的ミドルウェアと、前記物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、を備え、前記アプリケーション・ソフトウェアと前記デバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送することを特徴とするミドルウェアを提案している。
【０００７】
この発明によれば、ミドルウェアは、アプリケーション・ソフトウェアに、デバイスのインターフェースからのデータを受け渡し、デバイスのインターフェースに、アプリケーション・ソフトウェアからのデータを受け渡す物理的ミドルウェアと、物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、を備え、アプリケーション・ソフトウェアとデバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送する。したがって、アプリケーション・ソフトウェアからデバイスを直接制御することができることにより、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、ミドルウェア内の物理的ミドルウェアのみを変更することで、アプリケーション・ソフトウェアに影響なく、行うことができる。その結果、開発者に管理者権限を与えることなく、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を実現することができ、セキュリティを確保することができる。
【０００８】
（２）本発明は、（１）のミドルウェアについて、前記物理的ミドルウェアが、前記デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータを前記アプリケーション・ソフトウェアに受け渡し、前記アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータを前記デバイスのインターフェースに受け渡すことを特徴とするミドルウェアを提案している。
【０００９】
この発明によれば、ミドルウェア内の物理的ミドルウェアは、デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータをアプリケーション・ソフトウェアに受け渡し、アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータをデバイスのインターフェースに受け渡す。したがって、ミドルウェア内の物理的ミドルウェアは、データ形式が変換された、デバイスのインターフェースからのデータをアプリケーション・ソフトウェアに、データ形式が変換された、アプリケーション・ソフトウェアからのデータをデバイスのインターフェースに、受け渡すことができる。
【００１０】
（３）本発明は、（２）のミドルウェアについて、前記物理的ミドルウェアが、前記アプリケーション・ソフトウェアからのデータを前記デバイスが受信可能な形式に変換し、前記デバイスのインターフェースからのデータを前記アプリケーション・ソフトウェアが受信可能な形式に変換することを特徴とするミドルウェアを提案している。
【００１１】
この発明によれば、ミドルウェア内の物理的ミドルウェアは、アプリケーション・ソフトウェアからのデータをデバイスが受信可能な形式に変換し、デバイスのインターフェースからのデータをアプリケーション・ソフトウェアが受信可能な形式に変換する。したがって、ミドルウェア内の物理的ミドルウェアは、デバイスが受信可能な形式に変換されたデータをアプリケーション・ソフトウェアからデバイスのインターフェースに、アプリケーション・ソフトウェアが受信可能な形式に変換されたデータをデバイスのインターフェースからアプリケーション・ソフトウェアに、受け渡すことができる。
【００１２】
（４）  本発明は、（１）から（３）のミドルウェアについて、前記端末は、スマート
フォンまたは携帯電話機であることを特徴とするミドルウェアを提案している。
【００１３】
この発明によれば、端末を、スマートフォンまたは携帯電話機とすることができる。
【発明の効果】
【００１６】
本発明によれば、一定のセキュリティを保持したまま、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、管理者権限を持たない開発者に可能とするためのミドルウェアを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態における端末の概要構成を示す図である。
【図２】アプリケーション・ソフトウェアを備えた端末と機能デバイスとの間でのデータのやりとりに関する機能の階層構造を示す説明図である。
【発明を実施するための形態】
【００１８】
＜端末ハードウェア構成＞
図１は、本実施形態における端末１の概要構成を示す図である。なお、本実施形態においては、端末１は携帯電話機とするが、デバイスと接続できる端末であればよく、例えば、スマートフォン、ＰＨＳ、ＰＤＡ、ＰＣ、ゲーム機等であってもよい。なお、端末１は、接続するデバイスを内部に備えてもよいし、外部に備えてもよい。なお、本実施形態において、デバイスは端末１の外部に備えられ、端末１とデバイスとは外部接続されているものとする。図１に示すように、端末１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、メモリ１１、操作部１２、表示部１３、通信部１４、赤外線通信部１５、音声出力部１６、マイク１７、およびデバイスインターフェース（以下、デバイスＩ／Ｆとする）１８を備えており、バス１９を介して互いに接続される。
【００１９】
ＣＰＵ１０は、端末１を統括的に制御したり、メモリ１１に記憶された各種プログラムを適宜読み出して実行したりする。後述するアプリケーション・ソフトウェア１１０、２１０、およびミドルウェア１２０、２２０の処理は、このＣＰＵ１０によって実行される。
【００２０】
メモリ１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）または、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってよく、端末１で機能する各種プログラムを記憶する装置である。後述するアプリケーション・ソフトウェア１１０、２１０、ミドルウェア１２０、２２０は、このメモリ１１に記憶されている。
【００２１】
操作部１２は、各種設定や入力操作を行う操作ボタン群、決定操作ボタン等を備えており、操作部１２による入力情報はＣＰＵ１０の制御下で処理される。ここで、操作部１２は、ユーザからの操作入力を感知して、ＣＰＵ１０にバス１９を介して信号を送信する。ＣＰＵ１０は、この信号を受信することで、操作部１２への操作入力があったことを判断する。更に、操作部１２は、端末１が折り畳み式携帯電話機の場合には、折り畳み状態から開く操作をユーザが行った場合に、この「開く」操作を検知するデバイスを含む。
【００２２】
表示部１３は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）や有機ＥＬ（Ｅｌｅｃｔｏｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）によって構成され、各種データを表示する。
【００２３】
音声出力部１６は、電気信号を音声に変換し、イヤホン１６ａまたはスピーカ１６ｂから出力する。例えば、ＣＰＵ１０は、通信部１４により受信した音声情報を再生し、再生した音声を音声出力部１６から出力する。マイク１７は、音声を電気信号に変換し、入力する。通信部１４は、ネットワークを通じて他の端末等と間の情報の通信制御を行う。本実施形態において、端末１は携帯電話機であるので、通信部１４は、無線通信に必要なアンテナおよびアンテナ信号処理回路等を含んで構成される。
【００２４】
赤外線通信部１５は、赤外線によりデータの送信を行う赤外線発光部（図示せず）と、赤外線によりデータの受信を行う赤外線受光部（図示せず）とからなる。赤外線発光部は、ＣＰＵ１０が出力したデジタル信号をレベル変換し、変換した信号を変調し、変調した電気信号を赤外線発光素子により赤外線信号に変換し、出力する。赤外線受光部は、赤外線受光素子により受信した赤外線信号を電気信号に変換し、変換した電気信号をデジタル信号に変換する。本実施形態において、赤外線通信部１５を備える例を示しているが、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）、Ｚ−Ｗａｖｅ（登録商標）といった短距離無線通信機能を有してもよい。また、本実施形態において、赤外線通信部１５は、端末１に内蔵されているとしているが、デバイスＩ／Ｆ１８に装着されてもよい。
【００２５】
デバイスＩ／Ｆ１８は、端末１とデバイス２とを接続し、データの送受信や電源供給等を行う。ここで、デバイスＩ／Ｆ１８としては、例えば、ＵＳＢインターフェース、ＰＣカードインターフェース、ＳＤＩＯインターフェース等が挙げられる。
【００２６】
デバイス２は、プリンタ、音声通信、無線インターフェース、イメージ、ビデオ、汎用メモリ等の独立した諸機能を提供するデバイスであって、例えば、ＳＩＯ、ＳＤＩＯ、ＵＳＢ、ＨＤＭＩ、Ｂｌｕｅｔｏｏｔｈ、Ｚｉｇｂｅｅ、ＷｉＦｉ等である。デバイス２は、端末１に、接続され、本実施形態においては外部接続され、図示しないが、端末１と同様に、デバイスＩ／Ｆを備える。
【００２７】
＜階層構造＞
図２は、ミドルウェアを備えた端末とデバイスとの間におけるデータ通信に関する機能の階層構造を示す説明図である。図２（ａ）には、従来のミドルウェア１２０を備えた端末１００とデバイス２との間におけるデータ通信に関する機能の階層構造を示し、図２（ｂ）には、本発明に係るミドルウェア２２０を備えた端末２００とデバイス２との間におけるデータ通信に関する機能の階層構造を示す。
【００２８】
図２（ａ）を用いて従来のミドルウェア１２０について説明する。本図において、端末１００は、Ｘデバイス２ａおよびＹデバイス２ｂそれぞれと外部接続しているとする。端末１００は、Ｘデバイス２ａを利用し、Ａサービスを提供するＡサービス用アプリケーション・ソフトウェア（以下、Ａサービス用アプリとする）１１０ａと、Ｙデバイス２ｂを利用し、Ｂサービスを提供するＢサービス用アプリケーション・ソフトウェア（以下、Ｂサービス用アプリとする）１１０ｂを備える。以下、Ａサービス用アプリ１１０ａおよびＢサービス用アプリ１１０ｂを区別しない場合には、アプリ１１０とする。
【００２９】
図２（ａ）に示すように、従来のミドルウェア１２０を備えた端末１００では、物理層における信号転送を制御するデバイスＩ／Ｆ１３０が最下層となり、その上にミドルウェア１２０、アプリ１１０の順に配置される。
【００３０】
従来のミドルウェア１２０は、サービスに依存しない共通の処理の命令を記憶している。具体的には、従来のミドルウェア１２０は、外部接続されたデバイス、図２（ａ）においてはＸデバイス２ａおよびＹデバイス２ｂ、の開始処理、終了処理、およびリセット処理等の共通の処理の命令を記憶している。そして、これらの命令はアプリケーションからの指示により実行される。これにより、端末１００にインストールされたアプリ１１０が、Ｘデバイス２ａおよびＹデバイス２ｂのサービスを利用できるようになる。
【００３１】
また、従来のミドルウェア１２０は、各サービス専用の制御を行うためのＡＰＩ、および各サービスを実行する処理の命令を記憶する各サービス専用のミドルウェアを備える。デバイス２に搭載された各サービスの制御は、サービス毎に異なるからである。本実施形態においては、図２に示すように、Ａサービス専用のＡＰＩとして、Ａサービス専用ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）１２１ａ、Ａサービス専用のミドルウェアとしてＡサービス専用ミドルウェア１２２ａを備える。同様に、Ｂサービス専用ＡＰＩ２１ｂ、およびＢサービス専用ミドルウェア１２２ｂを備える。
【００３２】
これらを備えることにより、従来のミドルウェア１２０がデバイスＩ／Ｆ１３０を隠蔽（ラップ）し、すなわち、デバイス２に搭載された各サービスの制御の差異を吸収し、アプリ１１０がサービスを利用することができるようにしていた。具体的には、従来のミドルウェア１２０が、アプリ１１０とデバイスＩ／Ｆ１３０との間で受け渡しされるデータを隠蔽（ラップ）することにより、アプリ１１０からデバイスＩ／Ｆ１３０に、また、デバイスＩ／Ｆ１３０からアプリ１１０に、直接アクセスできないようにしていた。
【００３３】
それによりセキュリティを確保することができていたが、アプリにデバイスに関する新たなサービスを追加するためには、アプリケーション・ソフトウェアの機能拡張と共に、ミドルウェアの機能拡張も必要であった。そのため、管理者権限を持たない開発者は、アプリケーションの機能拡張をおこなうことができなかった。
【００３４】
次に、図２（ｂ）を用いて本発明に係るミドルウェア２２０について説明する。本図において、図２（ａ）と同様に、端末２００は、Ｘデバイス２ａおよびＹデバイス２ｂそれぞれと外部接続しているとする。図２（ｂ）に示すように、図２（ａ）と同様に、本発明に係るミドルウェア２２０を備えた端末２００では、物理層における信号転送を制御するデバイスＩ／Ｆ２３０が最下層となり、その上にミドルウェア２２０、アプリ２１０の順に配置される。
【００３５】
本発明に係るミドルウェア２２０は、従来のミドルウェア１２０と同様に、外部接続されたデバイス、図２においてはＸデバイス２ａおよびＹデバイス２ｂ、の開始処理、終了処理、およびリセット処理等のデバイスに搭載された各サービスに依存しない共通の処理は、ミドルウェア２２０でこれらの処理の命令を用意し、記憶している。これらのミドルウェア２２０に記憶されている命令は、アプリ２１０からの指示に従って、ミドルウェア２２０で実施される。これらの処理は、デバイスで共通であって、デバイスの各サービスに依存しないので、本来のミドルウェア機能にて実装するのが好ましいからである。
【００３６】
しかし、本発明に係るミドルウェア２２０は、従来のミドルウェア１２０と異なり、Ａサービス専用ＡＰＩ１２１ａおよびＢサービス専用ＡＰＩ１２１ｂの替わりに汎用ミドルウェアＡＰＩ２２１を備える。また、Ａサービス専用ミドルウェア１２２ａおよびＢサービス専用ミドルウェア１２２ｂの替わりに、汎用ミドルウェア２２２を備える。この汎用ミドルウェア２２２および汎用ミドルウェアＡＰＩ２２１は、様々なアプリに対応し、本図においては、Ａサービス用アプリ２１０ａ、Ｂサービス用アプリ２１０ｂのいずれにも対応する。
【００３７】
汎用ミドルウェアＡＰＩ２２１は、アプリ２１０の指示に従って起動され、汎用ミドルウェア２２２を制御する。また、汎用ミドルウェア２２２を起動し、汎用ミドルウェア２２２からデータを受け取り、アプリ２１０に受け渡す。
【００３８】
汎用ミドルウェア２２２は、論理的ミドルウェア２２２ａと物理的ミドルウェア２２２ｂから構成される。論理的ミドルウェア２２２ａは、汎用ミドルウェアＡＰＩ２２１の指示によって起動され、対応する物理的ミドルウェア２２２ｂを起動し、制御する。一方、物理的ミドルウェア２２２ｂは、論理的ミドルウェア２２２ａの指示によって起動され、対応するデバイスＩ／Ｆ２３０を起動する。
【００３９】
また、物理的ミドルウェア２２２ｂは、汎用ミドルウェアＡＰＩ２２１および論理的ミドルウェア２２２ａを介して、アプリ２１０から受け取ったデータをデバイスＩ／Ｆ２３０が受信可能な形式に変換する。そして、物理的ミドルウェア２２２ｂは、変換したデータをデバイスＩ／Ｆ２３０に受け渡す。さらに、物理的ミドルウェア２２２ｂは、デバイスＩ／Ｆ２３０から受け取ったデータをアプリ２１０が受信可能な形式に変換し、論理的ミドルウェア２２２ａおよび汎用ミドルウェアＡＰＩ２２１を介して、アプリ２１０に受け渡す。
【００４０】
このように、物理的ミドルウェア２２２ｂがデータの変換を行うことにより、デバイスＩ／Ｆ２３０が異なるデバイスに変更する場合は、汎用ミドルウェア２２２内の物理的ミドルウェア２２２ｂのみを変更することで対応することができる。その結果、汎用ミドルウェアＡＰＩ２２１を変更することなく、すなわち、アプリ２１０への影響なく、デバイスＩ／Ｆが異なるデバイスに変更することができる。
【００４１】
本発明のミドルウェア２２０は、汎用ミドルウェア２２２および汎用ミドルウェアＡＰＩ２２１を備えることにより、従来のミドルウェア１２０と異なって、デバイスＩ／Ｆ２３０との間で受け渡しされるデータを隠蔽（ラップ）せずに転送することができる。それにより、アプリ２１０からデバイスＩ／Ｆ２３０に、また、デバイスＩ／Ｆ２３０からアプリ２１０に、直接アクセスすることができ、デバイス２に搭載された各サービス専用の制御をアプリ２１０から行うことができる。なお、アプリ２１０とデバイスＩ／Ｆ２３０との間で受け渡しされるデータのうち、命令に関するデータは同じまま、データ形式のみを変換して、例えば、カンマで区切られたデータをスペースで区切るようにデータ形式を変換して、転送してもよいし、データ形式も変更せずに転送してもよい。
【００４２】
本発明に係るミドルウェア２２０を端末２００に実装する場合に、従来のミドルウェア１２０の機能をアプリ２１０に備えさせることができる。例えば、図２（ｂ）に示すように、従来のミドルウェア１２０の機能をデバイス制御ライブラリ２１１ａ、２１１ｂとしてアプリ２１０に備えさせることができる。なお、デバイス制御ライブラリは、サービス毎に用意される。
【００４３】
本発明に係るミドルウェア２２０を備えた端末２００において、デバイスＩ／Ｆ２３０を隠蔽する場合には、例えば、上述した制御ライブラリ２１１を用いて、デバイスＩ／Ｆ２３０を隠蔽する。
【００４４】
以上説明したように、本実施形態によれば、本発明に係るミドルウェア２２０は、アプリ２１０とデバイスＩ／Ｆ２３０との間で受け渡しされるデータを隠蔽（ラップ）せずに転送するので、デバイス２に搭載された各サービス専用の制御をアプリ２１０から行うことができる。その結果、デバイスに関する新たなサービスをアプリ２１０に追加するための機能拡張を、ミドルウェア２２０の機能拡張の必要なく、行うことができる。また、ミドルウェア２２０の機能拡張の必要がないため、開発者に管理者権限を与えることなく、デバイスに関する新たなサービスをアプリ２１０に追加するための機能拡張を実現することができ、セキュリティを確保することができる。
【００４５】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００４６】
２００    端末
２ａ      Ｘデバイス
２ｂ      Ｙデバイス
２１０ａ  Ａサービス用アプリ
２１０ｂ  Ｂサービス用アプリ
２２０    ミドルウェア
２２１    汎用ミドルウェアＡＰＩ
２２２    汎用ミドルウェア
２２２ａ  論理的ミドルウェア
２２２ｂ  物理的ミドルウェア
２３０    デバイスＩ／Ｆ
【図１】
0005780416.tif 000002
【図２】
0005780416.tif 000003