説明

通信装置

【課題】依頼処理のためのプログラムの実行による通信装置の各情報及び/又は機能への無断アクセスを防ぐ通信装置を提供する。
【解決手段】オブジェクト指向プログラミング言語により作成された第1のプログラムを実行する通信装置であって、第1のプログラムの実行により、オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、第2のプログラムを待ち受けて、第2のプログラムのインストール処理を行う処理手段と、通信装置に実現され、処理手段は、第2のプログラムが、第1のプログラムのプラグインプログラムではない場合、又は、情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトにより処理手段と通信するものではない場合には、第2のプログラムのインストールを行わない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、他の装置から依頼された処理を行うために、他の装置から受信するプログラムを実行する通信装置に関する。
【背景技術】
【0002】
ある一つの計算処理を多数のコンピュータに分散実行させる仕組みであるグリッドコンピューティングが実用化されている。グリッドコンピューティングにおいて、サーバ装置は、グリッド、つまり、各コンピュータの状況を監視し、計算処理を適切に分割して各コンピュータに分割した計算処理の実行を依頼し、結果を取得する。ここで、非特許文献1は、各コンピュータといった装置に計算処理を依頼する仕組みを提案している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Dijiang Huang, et al.,“MobiCloud: Building Secure Cloud Framework for Mobile Computing and Communication,” In Proc. of the 2010 Fifth IEEE International Symposium on Service Oriented System Engineering(SOSE), 2010年
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年のコンピュータ技術及び通信技術の発達により、例えば、携帯電話等の可搬型装置は、無線により通信できる小型コンピュータと看做すことができる様になっている。また、これら装置には、温度センサやカメラ等の様々な機能が搭載されている。したがって、例えば、多数の地域にいる携帯電話等の装置を所持しているユーザに、当該装置による温度の測定や、当該装置を利用したある条件の画像の撮影を依頼し、測定結果又は撮影した画像等を取得することで様々な情報を効率良く集めることが可能になる。また、グリッドコンピューティングの様に、ある処理を複数の携帯型装置又はデスクトップPCの様な固定型装置に依頼して各装置から処理結果を受け取るシステムにより、大量の処理を短時間で終了させることが可能になる。
【0005】
ここで、何らかの処理を依頼する依頼者が、依頼した処理を実行する通信装置(以後、実行装置と呼ぶ。)に、当該処理のために実行装置で動作させるプログラム(以後、依頼処理用プログラムと呼ぶ。)を送付するシステムを考える。例えば、依頼者が、各地における温度を測定したい場合、実行装置に送付する依頼処理用プログラムは、実行装置の温度センサが測定する温度を取得して依頼者の装置に送信するものとすることができる。この様な構成とすることで、実行装置の所有者又は利用者であり、依頼者からの処理を受諾して実行する者(以後、実行者と呼ぶ。)は、依頼者の意図に沿った処理を簡易に実行することができる。
【0006】
しかしながら、この様なシステムを実現する場合には、依頼処理用プログラムによる不正な処理から実行装置を保護する仕組みが必要となる。ここで、不正な処理とは、依頼する処理とは無関係であり、依頼する処理に必要ではない処理のことである。例えば、上述した温度測定の依頼において、依頼処理用プログラムの実行により、実行装置の電話帳や、発信履歴等へのアクセスを行い、これら情報を外部に送信することは不正な処理である。
【0007】
また、実行者が、依頼された処理を許諾して実行する場合において、その処理の内容を十分に理解していない場合には、依頼処理用プログラムが不正な処理を実行するものではなくとも、実行者が保護したい情報へのアクセスが発生する場合がある。例えば、上述した温度測定の依頼において、依頼処理用プログラムが、後の集計のために温度と共に実行装置の位置情報を取得して送信する様に構成されているものとする。しかしながら、実行者が、温度情報のみを送信するものとして処理の実行を許諾すると、依頼処理用プログラムによる位置情報の送信は、不正な処理ではないが、当該実行者にとっては不正な処理の様に見えることになる。
【0008】
本発明は、上記システムの実現に必要な、依頼処理用プログラムの実行による通信装置の各情報及び/又は機能への無断アクセスを防ぐ通信装置及び当該通信装置としてコンピュータを動作させるプログラムを提供するものである。
【課題を解決するための手段】
【0009】
本発明による通信装置は、オブジェクト指向プログラミング言語により作成された第1のプログラムを実行する通信装置であって、前記第1のプログラムの実行により、ライブラリを保持する情報保持手段と、第2のプログラムを待ち受けて、前記第2のプログラムのインストール処理を行う処理手段と、が前記通信装置に実現され、前記処理手段は、前記第2のプログラムが、前記第1のプログラムのプラグインプログラムではない場合、又は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトにより前記処理手段と通信するものではない場合には、前記第2のプログラムのインストールを行わないことを特徴とする。
【0010】
本発明による通信装置は、オブジェクト指向プログラミング言語により作成された第1のプログラムを実行する通信装置であって、前記第1のプログラムの実行により、前記オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、第2のプログラムを待ち受けて、前記第2のプログラムのインストール処理を行う処理手段と、が前記通信装置に実現され、前記処理手段は、前記第2のプログラムが、前記第1のプログラムのプラグインプログラムではない場合、又は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトにより前記処理手段と通信するものではない場合には、前記第2のプログラムのインストールを行わない、ことを特徴とする。
【0011】
本発明によるプログラムは、オブジェクト指向プログラミング言語により作成された第1のプログラム及び前記第1のプログラムのプラグインプログラムである第2のプログラムを実行する通信装置であって、前記第1のプログラムの実行により、前記オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、処理手段とが前記通信装置に実現され、前記第2のプログラムの実行により、所定の処理を実行する実行手段と、前記実行手段と前記処理手段とのメッセージの中継を行う中継手段とが前記通信装置に実現され、前記中継手段は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトに対応する、ことを特徴とする。
【発明の効果】
【0012】
依頼処理用プログラムの実行による通信装置の各情報や各機能への無断アクセスを禁止することが可能になる。
【図面の簡単な説明】
【0013】
【図1】一実施形態におけるシステム構成図。
【図2】一実施形態における通信装置の構成図。
【図3】一実施形態における通信装置において依頼処理用プログラムを実行した後の構成図。
【図4】一実施形態における依頼処理用プログラム作成のために公開しているライブラリのクラスと、依頼処理用プログラムを示す図。
【図5】一実施形態におけるwrapperメソッドを示す図。
【発明を実施するための形態】
【0014】
図1は、本実施形態におけるシステムの概略的な構成図である。なお、以下の各図において、実施形態の理解に必要ではない構成要素については、簡略化のため図から省略する。図1において、依頼装置1は、依頼者が使用する装置であり、実行装置3は、依頼された処理を行う装置である。また、実行装置3を所持し操作するものを、実行者と呼ぶ。また、サーバ装置2は、依頼装置1と実行装置3とを結びつけるための装置である。依頼装置1と実行装置3は、それぞれ、例えば、パーソナル・コンピュータや、携帯電話等である。依頼装置1は、何らかの処理を実行装置3に依頼する場合、実行装置3で動作するプログラム、つまり、依頼処理用プログラムと、実行装置3に対する要求条件を含む依頼メッセージをサーバ装置2に送信する。サーバ装置2は、実行装置3のデータベースを有し、依頼装置1から依頼メッセージを受信すると、要求条件に合致する実行装置3をデータベースから選択し、選択した実行装置3に、当該依頼メッセージに含まれる依頼処理用プログラムを含む依頼メッセージを送信する。
【0015】
図2は、本実施形態における実行装置3の概略的な構成図である。なお、図2に示す実行装置3の各機能は、本説明においてはデーモンプログラム300と呼ぶプログラムを、通信装置のプロセッサで実行することにより実現されている。なお、デーモンプログラム300及び依頼処理用プログラムは、オブジェクト指向プログラミング言語により作成されている。図2において処理部31は、全体の制御を行うものである。具体的には、依頼処理用プログラムを待ち受け、依頼処理用プログラムを受信した場合には実行者への通知を行い、実行者が依頼処理用プログラムのインストールを許可すると、依頼処理用プログラムのインストール処理を行って、依頼処理用プログラムを起動する。なお、このとき、処理部31は、依頼処理用プログラムの実行優先度を低く設定することで、特定の依頼処理用プログラムが実行装置3のリソースを著しく消費することを防ぐことができる。さらに、処理部31は、依頼処理用プログラムの終了や、その動作の制御を行う。なお、処理部31は、情報保持部32が保持する設定によりこれら制御を行う。なお、実行者が依頼処理用プログラムのインストールを許可しない場合には、処理部31は、依頼を受諾しない旨のメッセージをサーバ装置2に送信する。
【0016】
設定表示部33は、情報保持部32が保持する情報を実行装置3のタッチパネル又はディスプレイに表示し、かつ、実行者が、情報保持部32が保持する情報の設定を行うための入力を受け付ける機能を有する。具体的には、情報保持部32が保持する各種設定に対する入力や、依頼処理用プログラムの制御に関する設定を入力するためのボタン等をタッチパネルに表示する。さらに、何らかの入力が行われた場合には、その内容を情報保持部32が保持する情報に反映させる。なお、以後の説明においては、実行装置3は、タッチパネルにより実行者への表示や、実行者からの入力を受け付けるものとするが、入出力はタッチパネルに限定されない。
【0017】
情報保持部32は、依頼処理用プログラムの動作を制御するための各種設定を保持している。具体的には、実行装置3が有する各情報、例えば、GPSに基づく位置情報、電話帳や通話履歴等の情報に依頼処理用プログラムがアクセスすることの可否に関する設定を保持している。さらに、実行装置3が有するカメラ機能や、温度や加速度などのセンサ機能に依頼処理用プログラムがアクセスすることの可否に関する設定を保持している。また、依頼処理用プログラムが占有できるCPUの使用率や、メモリの使用量の上限を保持することもできる。さらに、同時に起動できる依頼処理用プログラムの最大数や、各依頼処理用プログラムの最大動作時間を保持することもできる。また、新たな依頼処理用プログラムを受信した場合、そのインストールに実行者の確認を必要とするか否かの設定を保持することもできる。例えば、インストールに実行者の確認を必要とする場合には、上述した様に、実行者が明示的にインストールを行うとの操作を行わない限り、処理部31は依頼処理用プログラムをインストールしない。これに対して、インストールに実行者の確認を必要としないとの設定である場合、処理部31は条件に合致する依頼処理用プログラムを受信すると直ちに依頼処理用プログラムをインストールする。
【0018】
情報保持部32は、さらに、起動している依頼処理用プログラムの一覧を表示し、さらに、各依頼処理用プログラムを強制終了させるボタンを設定表示部33に表示させる。例えば、実行者がこの強制終了ボタンを操作すると、処理部31は、対応する依頼処理用プログラムを終了させる。また、情報保持部32は、実行している依頼処理用プログラムの詳細を表示するためのボタンを設定表示部33に表示させる。例えば、実行者がこの詳細表示ボタンを操作すると、情報保持部32は、対応する依頼処理用プログラムについて、起動時刻や、CPUやメモリ等のリソース使用量等を設定表示部33に表示させる。
【0019】
依頼処理表示部34は、依頼処理用プログラムが、タッチパネルに対して何らかの表示を行う場合に、表示する画像を生成し、かつ、タッチパネルから何らかの入力を受けた場合に、その内容を依頼処理用プログラムに通知するものである。なお、依頼処理用プログラムとのメッセージのやり取りは、処理部31経由で行われる。なお、通信装置は、複数の依頼処理用プログラムを実行することができるが、複数の依頼処理用プログラムを実行している場合、依頼処理表示部34は、表示する依頼処理用プログラムを選択するボタン等をタッチパネルに表示し、実行者が選択した依頼処理用プログラムに関する表示を行う。
【0020】
例えば、実行装置3のオペレーティング・システム(OS)がアンドロイド(登録商標)である場合、処理部31は、バックグラウンド処理を行う“Service”クラスのオブジェクトとすることができる。また、画面表示に関連する処理を行う設定表示部33及び依頼処理表示部34は、“Activity”クラスのオブジェクトとすることができる。さらに、情報保持部32は、“Application”クラスのオブジェクトとすることができる。
【0021】
続いて、依頼処理用プログラムについて説明する。図3は、依頼処理用プログラム301をインストールして通信装置のプロセッサが実行した場合における実行装置3の状態を示す図である。本実施形態において、依頼処理用プログラム301は、デーモンプログラム300のプラグインプログラムとする。図3に示す様に、依頼処理用プログラム301を実行することで、第1中継部41、第2中継部42、第1実行部43、第2実行部44が実行装置3に実現される。ここで、第1中継部41は、バックグラウンド処理を行う第1実行部43に対応しており、第2中継部42は、実行者との入出力処理を行い、タッチパネルに表示する表示画面の生成を行う第2実行部44に対応している。なお、第1実行部43と第2実行部44が、依頼に沿った所定の処理を実行する機能ブロックであり、例えば、実行装置3のオペレーティング・システム(OS)がアンドロイド(登録商標)である場合、第1実行部43及び第2実行部44は、独自のクラスのオブジェクトに対応する。これに対して、第1中継部41及び第2中継部42は、後述する様に、本システムの運用者が公開している依頼処理用プログラム作成のためのライブラリのクラスを継承したクラスのオブジェクトに対応する。なお、第1実行部43及び第2実行部44は、情報処理装置の各情報や機能に直接アクセスすることはできず、第1実行部43は、第1中継部41経由でのみ情報処理装置の各情報や機能にアクセスでき、第2実行部44は、第2中継部42経由でのみ情報処理装置の各情報や機能にアクセスできる様に構成される。なお、第1実行部43、第2実行部44、第1中継部41及び第2中継部42が、上記の通り構成されていることをどの様に処理部31が判定するかについては後述する。なお、依頼処理用プログラムが、バックグラウンド処理のみを行うものである場合には、第2中継部42及び第2実行部44は形成されず、依頼処理用プログラムが、画面への表示処理のみを行うものである場合には、第1中継部41及び第1実行部43は形成されない。
【0022】
本実施形態においては、上述した様に、第1実行部43が実行装置3の各情報や各機能にアクセスする場合には、図3に示す様に、必ず、第1中継部41を経由して行う様に構成される。つまり、第1実行部43が行うメッセージの送受信は、必ず、第1中継部41を経由する。同様に、第2実行部44とのメッセージの送受信も、必ず、第2中継部42を経由する様に構成される。よって、第1実行部43及び第2実行部44間でのメッセージの送受信も、第1中継部41及び第2中継部42を経由することになる。なお、メッセージの送受信とは、機能の呼び出しや情報の伝達を指す。
【0023】
上述した通り第1中継部41及び第2中継部42は、本システムの運用者が公開している依頼処理用プログラム作成のためのライブラリのクラスを継承したクラスのオブジェクトに対応する。以後、この依頼処理用プログラム作成のために公開しているライブラリのクラスを“LibPlugin”クラスと呼ぶ。“LibPlugin”クラスの例を図4(A)に示す。図4(A)において、“app”、“act”、“srv”は、それぞれ、情報保持部32、依頼処理表示部34、処理部31に対応し、“LibPlugin”クラスは、これらへのポインタを管理する。なお、図4(A)に示す様に、“app”、“act”、“srv”の属性は“private”であるため、外部のあらゆるオブジェクトからのアクセスは禁止される。なお、startPluginProgram()メソッドは、“LibPlugin”クラスをロードしたときに最初に呼び出されるメソッドである。なお、“LibPlugin”クラスについての情報、つまり、公開するライブラリは、情報保持部32が保持している。つまり、依頼処理用プログラムの作成者は、“LibPlugin”クラスの内容を書き換えることはできない。
【0024】
図4(B)は、依頼処理用プログラムにおける第2中継部42及び第2実行部44として動作させるコード部分の例である。なお、第1中継部41及び第1実行部43として動作させるコード部分についても同様である。図4(B)に示す様に、依頼処理用プログラムの“MyPluginAcitivity”クラスは、“LibPlugin”クラスを継承している。また、図4(B)に示す様に、“MyPluginAcitivity”クラスにおいては、依頼処理を行うための独自の処理をstartPluginProgram()メソッドに記述することで、デーモンプログラム300のプラグインとして動作する。
【0025】
この様に、依頼処理用プログラムを、デーモンプログラム300のプラグインプログラムとし、システムの運用者が公開しているライブラリを継承したクラスとすることで、独自処理に対応する第1実行部43及び第2実行部44が送受するメッセージは、それぞれ、図3に示す様に、必ず第1中継部41及び第2中継部42を経由する構成となる。なお、処理部31は、依頼処理用プログラムが、デーモンプログラムのプラグインプログラムではない場合や、システムの運用者が公開しているライブラリを継承したクラスのオブジェクトにより処理部31と通信するものではない場合には、そのインストールを拒否し、実行者に警告を出力する。
【0026】
この様に、メッセージの送受信を第1中継部41及び第2中継部42を経由する構成としたうえで、第1中継部41及び第2中継部42において、実行装置3が保持する各情報へのアクセスを制限する。これは、第1実行部43及び第2実行部44は、“LibPlugin”クラスのメソッドを介してのみ実行装置3が保持する各情報や機能にアクセスできるため、情報保持部32が保持しているライブラリにより実現できる。つまり、情報保持部32が保持する実行装置3の各情報及び/又は各機能へのアクセス可否を示す情報に従い、実行装置3の各情報及び/又は各機能へのアクセスを制御するプログラム命令を情報保持部32が保持するライブラリに含めることで実現できる。本実施形態においては、アクセスする各情報及び/又は各機能について、wrapperメソッドを用意することで実現する。例えば、図5の“getGPSinfo()メソッドは、呼び出されると、まず、情報保持部32の設定においてGPSによる位置情報へのアクセスが可能であるか否かを判定し、アクセス不可である場合にはアクセス不可を示す戻り値を出力して終了し、アクセス可である場合には、位置情報を戻り値として出力して終了する。この様にすることで、依頼処理用プログラムによる各情報及び/又は各機能へのアクセスを制御することができる。つまり、情報保持部32の設定においてGPSによる位置情報へのアクセスが可能ではない場合、第1中継部41又は第2中継部42は、第1実行部43又は第2実行部44へのGPS情報へのアクセスを拒否する様に動作することになる。
【0027】
また、第1中継部41及び第2中継部42を設けることで、第1実行部43及び第2実行部44の動作を監視できるため、第1実行部43及び第2実行部44が、処理部31に大量のメッセージを送信することや、他の依頼処理用プログラムに不正なメッセージを送信することを防ぐことができる。
【0028】
以上、デーモンプログラム300によりコンピュータを図2に示す通信装置として動作させる。そして、依頼処理用プログラム301をデーモンプログラム300のプラグインとし、公開しているライブラリのクラスを継承したオブジェクトを経由してデーモンプログラム300の各オブジェクトと通信する様に構成する。逆に、デーモンプログラム300により実現される処理部31は、依頼処理用プログラム301が、上記の条件に合致しない場合には、その旨を実行者に通知し、インストールを行わない様に構成される。この構成により、依頼処理用プログラム301の起動、終了、通信装置の各情報へのアクセス、通信装置の計算資源へのアクセスをデーモンプログラム300が制御することが可能になる。

【特許請求の範囲】
【請求項1】
オブジェクト指向プログラミング言語により作成された第1のプログラムを実行する通信装置であって、前記第1のプログラムの実行により、
前記オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、
第2のプログラムを待ち受けて、前記第2のプログラムのインストール処理を行う処理手段と、
が前記通信装置に実現され、
前記処理手段は、前記第2のプログラムが、前記第1のプログラムのプラグインプログラムではない場合、又は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトにより前記処理手段と通信するものではない場合には、前記第2のプログラムのインストールを行わない、
通信装置。
【請求項2】
前記情報保持手段は、前記通信装置が有する各情報又は各機能へのアクセス可否を示す情報を保持し、
前記情報保持手段が保持するライブラリは、各情報又は各機能へのアクセス可否を示す情報に従い前記通信装置が有する各情報又は各機能へのアクセスを制御するプログラム命令を含む、
請求項1に記載の通信装置。
【請求項3】
前記第2のプログラムの実行により生成される表示画面を前記通信装置のディスプレイに表示する表示手段が前記第1のプログラムの実行により前記通信装置に実現され、
前記表示手段は、複数の第2のプログラムを実行している場合、前記通信装置のユーザが選択した第2のプログラムにより生成された表示画面を前記通信装置の前記ディスプレイに表示する、
請求項1又は2に記載の通信装置。
【請求項4】
オブジェクト指向プログラミング言語により作成された第1のプログラム及び前記第1のプログラムのプラグインプログラムである第2のプログラムを実行する通信装置であって、
前記第1のプログラムの実行により、前記オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、処理手段とが前記通信装置に実現され、
前記第2のプログラムの実行により、所定の処理を実行する実行手段と、前記実行手段と前記処理手段とのメッセージの中継を行う中継手段とが前記通信装置に実現され、
前記中継手段は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトに対応する、
通信装置。
【請求項5】
前記実行手段は、バックグラウンド処理を行う1つ以上の第1実行手段又は入出力処理を行う1つ以上の第2実行手段を含み、
前記中継手段は、前記1つ以上の第1実行手段と前記処理手段との中継を行う1つの第1中継手段、又は、前記1つ以上の第2実行手段と前記処理手段との中継を行う1つの第2中継手段を含む、
請求項4に記載の通信装置。
【請求項6】
前記実行手段は、バックグラウンド処理を行う1つ以上の第1実行手段及び入出力処理を行う1つ以上の第2実行手段を含み、
前記中継手段は、前記1つ以上の第1実行手段と前記処理手段との中継を行う1つの第1中継手段、及び、前記1つ以上の第2実行手段と前記処理手段との中継を行う1つの第2中継手段を含み、
前記1つ以上の第1実行手段と前記1つ以上の第2実行手段とのメッセージの送受信は、前記第1中継手段及び前記第2中継手段を経由して行われる、
請求項5に記載の通信装置。
【請求項7】
オブジェクト指向プログラミング言語により作成されたプログラムであって、
前記オブジェクト指向プログラミング言語により作成されたライブラリを保持する情報保持手段と、
所定の処理を実行する依頼処理用プログラムを待ち受けて、前記依頼処理用プログラムのインストール処理を行う処理手段と、
してコンピュータを機能させ、
前記処理手段は、前記依頼処理用プログラムが、前記プログラムのプラグインプログラムではない場合、又は、前記情報保持手段が保持するライブラリのクラスを継承したクラスのオブジェクトにより前記処理手段と通信するものではない場合には、前記依頼処理用プログラムのインストールを行わない、
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−92883(P2013−92883A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−234141(P2011−234141)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】