説明

ミドルウェア

【課題】一定のセキュリティを保持したまま、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、管理者権限を持たない開発者に可能とするためのミドルウェアを提供すること。
【解決手段】端末200に実装され、端末200に接続されたデバイス2を利用するサービス用アプリ210と、デバイス2のインターフェース230との通信を仲介するミドルウェア220が、サービス用アプリ210とデバイス2のインターフェース230との間で受け渡しされるデータを隠蔽することなしに転送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末に実装され、端末に接続されたデバイスを利用するアプリケーション・ソフトウェアと、デバイスのドライバとの通信を仲介するミドルウェアに関する。
【背景技術】
【0002】
従来、携帯電話機やスマートフォン等の端末のアプリケーション・ソフトウェアにデバイスに関する新たなサービスを追加するためには、アプリケーション・ソフトウェアの機能拡張と共に、ミドルウェアの機能拡張も必要であった。そのため、セキュリティを確保するために、機能拡張には、管理者権限、例えば、admin権限やroot権限が必要となっていた。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、携帯電話機やスマートフォン等の端末の事業者等は、アプリケーション・ソフトウェアの一般開発者に管理者権限を与えていないため、一般開発者は、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を行うことができなかった。その結果、アプリケーション・ソフトウェアの拡張性が失われるという問題点があった。一方、携帯電話機やスマートフォン等の端末の事業者等が、一般開発者に、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を行うことができるように管理者権限を与えてしまうと、セキュリティが確保できなくなるという問題点があった。
【0004】
そこで、本発明は、上述の課題に鑑みてなされたものであり、一定のセキュリティを保持したまま、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、管理者権限を持たない開発者に可能とするためのミドルウェアを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【0006】
(1) 本発明は、端末に実装され、前記端末に接続されたデバイスを利用するアプリケーション・ソフトウェアと、前記デバイスのインターフェースとの通信を仲介するミドルウェアであって、前記アプリケーション・ソフトウェアと前記デバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送することを特徴とするミドルウェアを提案している。
【0007】
この発明によれば、ミドルウェアは、アプリケーション・ソフトウェアとデバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送する。したがって、アプリケーション・ソフトウェアからデバイスを直接制御することができることにより、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、ミドルウェアの機能拡張の必要なく、行うことができる。また、ミドルウェアの機能拡張の必要がないため、開発者に管理者権限を与えることなく、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を実現することができ、セキュリティを確保することができる。
【0008】
(2)本発明は、(1)のミドルウェアについて、前記アプリケーション・ソフトウェアに、前記デバイスのインターフェースからのデータを受け渡し、前記デバイスのインターフェースに、前記アプリケーション・ソフトウェアからのデータを受け渡すことを特徴とするミドルウェアを提案している。
【0009】
この発明によれば、ミドルウェアは、アプリケーション・ソフトウェアに、デバイスのインターフェースからのデータを受け渡し、デバイスのインターフェースに、アプリケーション・ソフトウェアからのデータを受け渡す。したがって、ミドルウェアは、アプリケーション・ソフトウェアにデバイスのインターフェースからのデータを、また、デバイスのインターフェースにアプリケーション・ソフトウェアからのデータを、加工することなしに受け渡すことができる。
【0010】
(3)本発明は、(1)のミドルウェアについて、前記デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータを前記アプリケーション・ソフトウェアに受け渡し、前記アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータを前記デバイスのインターフェースに受け渡すことを特徴とするミドルウェアを提案している。
【0011】
この発明によれば、ミドルウェアは、デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータをアプリケーション・ソフトウェアに受け渡し、アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータをデバイスのインターフェースに受け渡す。したがって、ミドルウェアは、データ形式が変換された、デバイスのインターフェースからのデータをアプリケーション・ソフトウェアに、データ形式が変換された、アプリケーション・ソフトウェアからのデータをデバイスのインターフェースに、受け渡すことができる。
【0012】
(4) 本発明は、(1)から(3)のミドルウェアについて、前記ミドルウェアは、
前記アプリケーション・ソフトウェアからのデータを前記デバイスが受信可能な形式に変換し、前記デバイスのインターフェースからのデータを前記アプリケーション・ソフトウェアが受信可能な形式に変換する物理的ミドルウェアと、前記物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、を備えることを特徴とするミドルウェアを提案している。
【0013】
この発明によれば、ミドルウェアは、アプリケーション・ソフトウェアからのデータをデバイスが受信可能な形式に変換し、デバイスのインターフェースからのデータをアプリケーション・ソフトウェアが受信可能な形式に変換する物理的ミドルウェアと、物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、を備える。したがって、ミドルウェア内の物理的ミドルウェアのみを変更することにより、アプリケーション・ソフトウェアに影響なく、異なるデバイスへの対応が可能となる。
【0014】
(5) 本発明は、(1)から(4)のミドルウェアについて、前記端末は、スマートフォンまたは携帯電話機であることを特徴とするミドルウェアを提案している。
【0015】
この発明によれば、端末を、スマートフォンまたは携帯電話機とすることができる。
【発明の効果】
【0016】
本発明によれば、一定のセキュリティを保持したまま、デバイスに関する新たなサービスをアプリケーション・ソフトウェアに追加するための機能拡張を、管理者権限を持たない開発者に可能とするためのミドルウェアを提供することができる。
【図面の簡単な説明】
【0017】
【図1】本実施形態における端末の概要構成を示す図である。
【図2】アプリケーション・ソフトウェアを備えた端末と機能デバイスとの間でのデータのやりとりに関する機能の階層構造を示す説明図である。
【発明を実施するための形態】
【0018】
<端末ハードウェア構成>
図1は、本実施形態における端末1の概要構成を示す図である。なお、本実施形態においては、端末1は携帯電話機とするが、デバイスと接続できる端末であればよく、例えば、スマートフォン、PHS、PDA、PC、ゲーム機等であってもよい。なお、端末1は、接続するデバイスを内部に備えてもよいし、外部に備えてもよい。なお、本実施形態において、デバイスは端末1の外部に備えられ、端末1とデバイスとは外部接続されているものとする。図1に示すように、端末1は、CPU(Central Processing Unit)10、メモリ11、操作部12、表示部13、通信部14、赤外線通信部15、音声出力部16、マイク17、およびデバイスインターフェース(以下、デバイスI/Fとする)18を備えており、バス19を介して互いに接続される。
【0019】
CPU10は、端末1を統括的に制御したり、メモリ11に記憶された各種プログラムを適宜読み出して実行したりする。後述するアプリケーション・ソフトウェア110、210、およびミドルウェア120、220の処理は、このCPU10によって実行される。
【0020】
メモリ11は、ROM(Read Only Memory)または、RAM(Random Access Memory)であってよく、端末1で機能する各種プログラムを記憶する装置である。後述するアプリケーション・ソフトウェア110、210、ミドルウェア120、220は、このメモリ11に記憶されている。
【0021】
操作部12は、各種設定や入力操作を行う操作ボタン群、決定操作ボタン等を備えており、操作部12による入力情報はCPU10の制御下で処理される。ここで、操作部12は、ユーザからの操作入力を感知して、CPU10にバス19を介して信号を送信する。CPU10は、この信号を受信することで、操作部12への操作入力があったことを判断する。更に、操作部12は、端末1が折り畳み式携帯電話機の場合には、折り畳み状態から開く操作をユーザが行った場合に、この「開く」操作を検知するデバイスを含む。
【0022】
表示部13は、LCD(Liquid Crystal Display)や有機EL(Electoro Luminescence)によって構成され、各種データを表示する。
【0023】
音声出力部16は、電気信号を音声に変換し、イヤホン16aまたはスピーカ16bから出力する。例えば、CPU10は、通信部14により受信した音声情報を再生し、再生した音声を音声出力部16から出力する。マイク17は、音声を電気信号に変換し、入力する。通信部14は、ネットワークを通じて他の端末等と間の情報の通信制御を行う。本実施形態において、端末1は携帯電話機であるので、通信部14は、無線通信に必要なアンテナおよびアンテナ信号処理回路等を含んで構成される。
【0024】
赤外線通信部15は、赤外線によりデータの送信を行う赤外線発光部(図示せず)と、赤外線によりデータの受信を行う赤外線受光部(図示せず)とからなる。赤外線発光部は、CPU10が出力したデジタル信号をレベル変換し、変換した信号を変調し、変調した電気信号を赤外線発光素子により赤外線信号に変換し、出力する。赤外線受光部は、赤外線受光素子により受信した赤外線信号を電気信号に変換し、変換した電気信号をデジタル信号に変換する。本実施形態において、赤外線通信部15を備える例を示しているが、例えば、Bluetooth(登録商標)、ZigBee(登録商標)、Z−Wave(登録商標)といった短距離無線通信機能を有してもよい。また、本実施形態において、赤外線通信部15は、端末1に内蔵されているとしているが、デバイスI/F18に装着されてもよい。
【0025】
デバイスI/F18は、端末1とデバイス2とを接続し、データの送受信や電源供給等を行う。ここで、デバイスI/F18としては、例えば、USBインターフェース、PCカードインターフェース、SDIOインターフェース等が挙げられる。
【0026】
デバイス2は、プリンタ、音声通信、無線インターフェース、イメージ、ビデオ、汎用メモリ等の独立した諸機能を提供するデバイスであって、例えば、SIO、SDIO、USB、HDMI、Bluetooth、Zigbee、WiFi等である。デバイス2は、端末1に、接続され、本実施形態においては外部接続され、図示しないが、端末1と同様に、デバイスI/Fを備える。
【0027】
<階層構造>
図2は、ミドルウェアを備えた端末とデバイスとの間におけるデータ通信に関する機能の階層構造を示す説明図である。図2(a)には、従来のミドルウェア120を備えた端末100とデバイス2との間におけるデータ通信に関する機能の階層構造を示し、図2(b)には、本発明に係るミドルウェア220を備えた端末200とデバイス2との間におけるデータ通信に関する機能の階層構造を示す。
【0028】
図2(a)を用いて従来のミドルウェア120について説明する。本図において、端末100は、Xデバイス2aおよびYデバイス2bそれぞれと外部接続しているとする。端末100は、Xデバイス2aを利用し、Aサービスを提供するAサービス用アプリケーション・ソフトウェア(以下、Aサービス用アプリとする)110aと、Yデバイス2bを利用し、Bサービスを提供するBサービス用アプリケーション・ソフトウェア(以下、Bサービス用アプリとする)110bを備える。以下、Aサービス用アプリ110aおよびBサービス用アプリ110bを区別しない場合には、アプリ110とする。
【0029】
図2(a)に示すように、従来のミドルウェア120を備えた端末100では、物理層における信号転送を制御するデバイスI/F130が最下層となり、その上にミドルウェア120、アプリ110の順に配置される。
【0030】
従来のミドルウェア120は、サービスに依存しない共通の処理の命令を記憶している。具体的には、従来のミドルウェア120は、外部接続されたデバイス、図2(a)においてはXデバイス2aおよびYデバイス2b、の開始処理、終了処理、およびリセット処理等の共通の処理の命令を記憶している。そして、これらの命令はアプリケーションからの指示により実行される。これにより、端末100にインストールされたアプリ110が、Xデバイス2aおよびYデバイス2bのサービスを利用できるようになる。
【0031】
また、従来のミドルウェア120は、各サービス専用の制御を行うためのAPI、および各サービスを実行する処理の命令を記憶する各サービス専用のミドルウェアを備える。デバイス2に搭載された各サービスの制御は、サービス毎に異なるからである。本実施形態においては、図2に示すように、Aサービス専用のAPIとして、Aサービス専用API(Application Program Interface)121a、Aサービス専用のミドルウェアとしてAサービス専用ミドルウェア122aを備える。同様に、Bサービス専用API21b、およびBサービス専用ミドルウェア122bを備える。
【0032】
これらを備えることにより、従来のミドルウェア120がデバイスI/F130を隠蔽(ラップ)し、すなわち、デバイス2に搭載された各サービスの制御の差異を吸収し、アプリ110がサービスを利用することができるようにしていた。具体的には、従来のミドルウェア120が、アプリ110とデバイスI/F130との間で受け渡しされるデータを隠蔽(ラップ)することにより、アプリ110からデバイスI/F130に、また、デバイスI/F130からアプリ110に、直接アクセスできないようにしていた。
【0033】
それによりセキュリティを確保することができていたが、アプリにデバイスに関する新たなサービスを追加するためには、アプリケーション・ソフトウェアの機能拡張と共に、ミドルウェアの機能拡張も必要であった。そのため、管理者権限を持たない開発者は、アプリケーションの機能拡張をおこなうことができなかった。
【0034】
次に、図2(b)を用いて本発明に係るミドルウェア220について説明する。本図において、図2(a)と同様に、端末200は、Xデバイス2aおよびYデバイス2bそれぞれと外部接続しているとする。図2(b)に示すように、図2(a)と同様に、本発明に係るミドルウェア220を備えた端末200では、物理層における信号転送を制御するデバイスI/F230が最下層となり、その上にミドルウェア220、アプリ210の順に配置される。
【0035】
本発明に係るミドルウェア220は、従来のミドルウェア120と同様に、外部接続されたデバイス、図2においてはXデバイス2aおよびYデバイス2b、の開始処理、終了処理、およびリセット処理等のデバイスに搭載された各サービスに依存しない共通の処理は、ミドルウェア220でこれらの処理の命令を用意し、記憶している。これらのミドルウェア220に記憶されている命令は、アプリ210からの指示に従って、ミドルウェア220で実施される。これらの処理は、デバイスで共通であって、デバイスの各サービスに依存しないので、本来のミドルウェア機能にて実装するのが好ましいからである。
【0036】
しかし、本発明に係るミドルウェア220は、従来のミドルウェア120と異なり、Aサービス専用API121aおよびBサービス専用API121bの替わりに汎用ミドルウェアAPI221を備える。また、Aサービス専用ミドルウェア122aおよびBサービス専用ミドルウェア122bの替わりに、汎用ミドルウェア222を備える。この汎用ミドルウェア222および汎用ミドルウェアAPI221は、様々なアプリに対応し、本図においては、Aサービス用アプリ210a、Bサービス用アプリ210bのいずれにも対応する。
【0037】
汎用ミドルウェアAPI221は、アプリ210の指示に従って起動され、汎用ミドルウェア222を制御する。また、汎用ミドルウェア222を起動し、汎用ミドルウェア222からデータを受け取り、アプリ210に受け渡す。
【0038】
汎用ミドルウェア222は、論理的ミドルウェア222aと物理的ミドルウェア222bから構成される。論理的ミドルウェア222aは、汎用ミドルウェアAPI221の指示によって起動され、対応する物理的ミドルウェア222bを起動し、制御する。一方、物理的ミドルウェア222bは、論理的ミドルウェア222aの指示によって起動され、対応するデバイスI/F230を起動する。
【0039】
また、物理的ミドルウェア222bは、汎用ミドルウェアAPI221および論理的ミドルウェア222aを介して、アプリ210から受け取ったデータをデバイスI/F230が受信可能な形式に変換する。そして、物理的ミドルウェア222bは、変換したデータをデバイスI/F230に受け渡す。さらに、物理的ミドルウェア222bは、デバイスI/F230から受け取ったデータをアプリ210が受信可能な形式に変換し、論理的ミドルウェア222aおよび汎用ミドルウェアAPI221を介して、アプリ210に受け渡す。
【0040】
このように、物理的ミドルウェア222bがデータの変換を行うことにより、デバイスI/F230が異なるデバイスに変更する場合は、汎用ミドルウェア222内の物理的ミドルウェア222bのみを変更することで対応することができる。その結果、汎用ミドルウェアAPI221を変更することなく、すなわち、アプリ210への影響なく、デバイスI/Fが異なるデバイスに変更することができる。
【0041】
本発明のミドルウェア220は、汎用ミドルウェア222および汎用ミドルウェアAPI221を備えることにより、従来のミドルウェア120と異なって、デバイスI/F230との間で受け渡しされるデータを隠蔽(ラップ)せずに転送することができる。それにより、アプリ210からデバイスI/F230に、また、デバイスI/F230からアプリ210に、直接アクセスすることができ、デバイス2に搭載された各サービス専用の制御をアプリ210から行うことができる。なお、アプリ210とデバイスI/F230との間で受け渡しされるデータのうち、命令に関するデータは同じまま、データ形式のみを変換して、例えば、カンマで区切られたデータをスペースで区切るようにデータ形式を変換して、転送してもよいし、データ形式も変更せずに転送してもよい。
【0042】
本発明に係るミドルウェア220を端末200に実装する場合に、従来のミドルウェア120の機能をアプリ210に備えさせることができる。例えば、図2(b)に示すように、従来のミドルウェア120の機能をデバイス制御ライブラリ211a、211bとしてアプリ210に備えさせることができる。なお、デバイス制御ライブラリは、サービス毎に用意される。
【0043】
本発明に係るミドルウェア220を備えた端末200において、デバイスI/F230を隠蔽する場合には、例えば、上述した制御ライブラリ211を用いて、デバイスI/F230を隠蔽する。
【0044】
以上説明したように、本実施形態によれば、本発明に係るミドルウェア220は、アプリ210とデバイスI/F230との間で受け渡しされるデータを隠蔽(ラップ)せずに転送するので、デバイス2に搭載された各サービス専用の制御をアプリ210から行うことができる。その結果、デバイスに関する新たなサービスをアプリ210に追加するための機能拡張を、ミドルウェア220の機能拡張の必要なく、行うことができる。また、ミドルウェア220の機能拡張の必要がないため、開発者に管理者権限を与えることなく、デバイスに関する新たなサービスをアプリ210に追加するための機能拡張を実現することができ、セキュリティを確保することができる。
【0045】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0046】
200 端末
2a Xデバイス
2b Yデバイス
210a Aサービス用アプリ
210b Bサービス用アプリ
220 ミドルウェア
221 汎用ミドルウェアAPI
222 汎用ミドルウェア
222a 論理的ミドルウェア
222b 物理的ミドルウェア
230 デバイスI/F

【特許請求の範囲】
【請求項1】
端末に実装され、前記端末に接続されたデバイスを利用するアプリケーション・ソフトウェアと、前記デバイスのインターフェースとの通信を仲介するミドルウェアであって、
前記アプリケーション・ソフトウェアと前記デバイスのインターフェースとの間で受け渡しされるデータを隠蔽することなしに転送することを特徴とするミドルウェア。
【請求項2】
前記アプリケーション・ソフトウェアに、前記デバイスのインターフェースからのデータを受け渡し、
前記デバイスのインターフェースに、前記アプリケーション・ソフトウェアからのデータを受け渡すことを特徴とする請求項1に記載のミドルウェア。
【請求項3】
前記デバイスのインターフェースからのデータのデータ形式を変換して、変換されたデータを前記アプリケーション・ソフトウェアに受け渡し、
前記アプリケーション・ソフトウェアからのデータのデータ形式を変換して、変換されたデータを前記デバイスのインターフェースに受け渡すことを特徴とする請求項1に記載のミドルウェア。
【請求項4】
前記ミドルウェアは、
前記アプリケーション・ソフトウェアからのデータを前記デバイスが受信可能な形式に変換し、前記デバイスのインターフェースからのデータを前記アプリケーション・ソフトウェアが受信可能な形式に変換する物理的ミドルウェアと、
前記物理的ミドルウェアを起動し、制御する論理的ミドルウェアと、
を備えることを特徴とする請求項1から3のいずれかに記載のミドルウェア。
【請求項5】
前記端末は、スマートフォンまたは携帯電話機であることを特徴とする請求項1から4のいずれかに記載のミドルウェア。

【図1】
image rotate

【図2】
image rotate