JP2018097898A - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP2018097898A JP2018097898A JP2018021630A JP2018021630A JP2018097898A JP 2018097898 A JP2018097898 A JP 2018097898A JP 2018021630 A JP2018021630 A JP 2018021630A JP 2018021630 A JP2018021630 A JP 2018021630A JP 2018097898 A JP2018097898 A JP 2018097898A
- Authority
- JP
- Japan
- Prior art keywords
- application
- runtime
- unit
- application program
- information processing
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 37
- 238000003672 processing method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 150
- 230000008569 process Effects 0.000 claims abstract description 144
- 230000004913 activation Effects 0.000 claims description 23
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 32
- 230000005540 biological transmission Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
開示の技術は、情報処理装置、情報処理方法およびプログラムに関する。 The disclosed technology relates to an information processing apparatus, an information processing method, and a program.
近年、3G/LTE(Long Term Evolution)/ホットスポットの充実に伴い、例えばスマートフォンなどの情報処理装置が、常時ネットワークに接続できる環境が整ってきている。 In recent years, with the enhancement of 3G / LTE (Long Term Evolution) / hotspots, an environment in which an information processing apparatus such as a smartphone can be always connected to a network has been established.
このような環境を活かし、アプリケーションサーバ(アプリストア)から情報処理装置に、必要なタイミングでアプリケーションプログラムを配信して、情報処理装置に実行させる情報処理システムが開発されている。また、アプリケーションサーバに登録されたアプリケーションプログラムを、利用者からの要求に応じて、情報処理装置に提供する情報処理システムも開発されている。当該システムに於いて、情報処理装置は、アプリケーションサーバから配信されるアプリケーションプログラムをダウンロードして、例えばフラッシュメモリなどにインストールすることとなる。 Taking advantage of such an environment, an information processing system has been developed in which an application program is distributed from an application server (application store) to an information processing apparatus at a necessary timing and executed by the information processing apparatus. An information processing system has also been developed that provides an application program registered in an application server to an information processing apparatus in response to a request from a user. In the system, the information processing apparatus downloads an application program distributed from the application server and installs it in, for example, a flash memory.
ところで、アプリケーションプログラムには、OS(Operating System)が直接解釈・実行可能な形式のもの(ネイティブアプリと呼ぶ)の他に、OSが直接解釈・実行可能なランタイムと、ランタイムが解釈可能なリソースとで構成されたもの(ハイブリッドアプリと呼ぶ)がある。ここで言うリソースとは、例えばHTMLやJava(登録商標)scriptで記述されたプログラムである。ハイブリッドアプリとしては、例えばPhoneGapなどがある。ハイブリッドアプリは、リソース部分はOSに依存しないため、OSに依存するランタイムだけを入れ替えることによって、互いに異なるOS上で動作するアプリケーションプログラムを開発者が簡単に作成できるメリットがある。 By the way, the application program includes a format that can be directly interpreted / executed by the OS (Operating System) (called a native application), a runtime that can be directly interpreted / executed by the OS, and a resource that can be interpreted by the runtime. There is something (called a hybrid app) that consists of The resource referred to here is a program described in, for example, HTML or Java (registered trademark) script. An example of a hybrid application is PhoneGap. Since the hybrid application does not depend on the OS for the resource part, there is an advantage that a developer can easily create an application program that operates on different OSs by replacing only the runtime depending on the OS.
このようなハイブリッドアプリを、特定のOSが動作する情報処理装置に配布する場合、通常、対象となるOSに対応したランタイムとリソースとを一体化してコンパイルし、対象OSのネイティブアプリ形式に変換したものを配布する。 When such a hybrid application is distributed to an information processing apparatus that operates a specific OS, the runtime and resources corresponding to the target OS are usually compiled and converted into the native application format of the target OS. Distribute things.
ところが、複数種のハイブリッドアプリを同一の情報処理装置にインストールする場合、同じランタイムがすべてのハイブリッドアプリに含まれているため、保存領域を無駄に多く消費してしまう。また、OSによっては、ネイティブアプリをインストールする際に必ず利用者への同意を促す画面を表示し、利用者の操作が必要となるものがある。例えば、Androidでは、アプリのインストール時に、該アプリが使用するデバイス(GPSや加速度センサなど)の使用を許可するかどうかの画面を表示し、利用者が同意ボタンを押して初めてアプリケーションプログラムをインストールすることができる。これは、悪意のあるアプリケーションプログラムをインストールすることを防ぐために、セキュリティ上有意義な方法であるが、利用者の操作が必要なため、多くのインストール操作を行うようなシステムでは使い勝手が悪くなる問題がある。一般的なハイブリッドアプリは、ネイティブアプリ形式に変換された形で配布されるため、同様の問題を抱えることになる。 However, when a plurality of types of hybrid apps are installed in the same information processing apparatus, the same runtime is included in all hybrid apps, so that a large amount of storage space is consumed. Also, depending on the OS, when installing a native application, a screen that prompts the user for consent is displayed, and a user operation is required. For example, in Android, when an application is installed, a screen asking whether to allow use of a device (GPS, acceleration sensor, etc.) used by the application is displayed, and the application program is installed only after the user presses the consent button. Can do. This is a meaningful method in terms of security in order to prevent malicious application programs from being installed, but it requires user operations, so there is a problem in that it is difficult to use in a system that performs many installation operations. is there. Since a general hybrid application is distributed after being converted into a native application format, it has the same problem.
従って、多くのハイブリッドアプリを自動インストール・実行させるようなシステムを考えたとき、保存領域の非効率な消費と利用者の操作の増加による使い勝手に課題がある。 Therefore, when considering a system that automatically installs and executes many hybrid applications, there are problems in terms of inefficient consumption of storage areas and usability due to an increase in user operations.
開示の技術は、利用者の操作を促すことなく、かつ、アプリケーションプログラムの保存領域の消費を抑制することができる情報処理装置を提供する。 The disclosed technology provides an information processing apparatus capable of suppressing consumption of an application program storage area without prompting a user operation.
開示の技術の一観点によれば、複数の異なるアプリケーションプログラムに対する複数のアプリリソース及び前記複数のアプリリソースの各々に用いられるランタイムを格納する格納部と、前記複数の異なるアプリケーションプログラムに含まれる各アプリケーションプログラムの起動指示ごとに、メモリ内に前記各アプリケーションプログラムの各々に対応した複数のプロセス空間を生成するメモリ管理部と、前記ランタイムを前記複数のプロセス空間のそれぞれに読み込むランタイム読み込み部と、前記各アプリケーションプログラムに対応した各アプリリソースを、前記ランタイムが読み込まれた複数のプロセス空間のうち対応するプロセス空間に読み込むアプリリソース読み込み部と、前記複数のプロセス空間のそれぞれに読み込まれたアプリリソース及びランタイムから、前記各アプリケーションプログラムのプロセスを生成するプロセス生成部と、前記複数のプロセス空間上で生成された前記各アプリケーションプログラムのプロセスを実行するプロセス実行部と、を備え、前記ランタイムは、オペレーティングシステムが解釈及び実行可能なネイティブアプリケーションプログラムであり、前記複数のアプリケーションプログラムの各々は、前記ランタイムと、前記ランタイムが解釈可能なリソースとで構成されたハイブリッドアプリケーションプログラムであり、前記アプリケーションプログラムをダウンロードする際にユーザへの確認表示の生成処理を実行し、前記複数のアプリリソースをダウンロードする際、前記確認表示の前記生成処理を実行しない情報処理装置が提供される。 According to one aspect of the disclosed technology, a storage unit that stores a plurality of application resources for a plurality of different application programs and a runtime used for each of the plurality of application resources, and each application included in the plurality of different application programs For each program start instruction, a memory management unit that generates a plurality of process spaces corresponding to each of the application programs in a memory, a runtime reading unit that reads the runtime into each of the plurality of process spaces, Each application resource corresponding to an application program is read into the corresponding process space among the plurality of process spaces loaded with the runtime, and loaded into each of the plurality of process spaces. A process generation unit that generates the process of each application program from the application resource and the runtime, and a process execution unit that executes the process of each application program generated on the plurality of process spaces, the runtime Is a native application program that can be interpreted and executed by an operating system, and each of the plurality of application programs is a hybrid application program that includes the runtime and resources that the runtime can interpret. An information process that generates a confirmation display to the user when downloading the application, and does not execute the generation process of the confirmation display when downloading the plurality of application resources. Apparatus is provided.
開示の技術によれば、利用者の操作を促すことなく、かつ、アプリケーションプログラムの保存領域の消費を抑制することができる。 According to the disclosed technology, it is possible to suppress consumption of the storage area of the application program without prompting the user to operate.
以下、図面を参照して、一実施形態を説明する。 Hereinafter, an embodiment will be described with reference to the drawings.
図1は、一実施形態にかかる情報処理システムの概略図である。 FIG. 1 is a schematic diagram of an information processing system according to an embodiment.
図1に示すように、本実施形態にかかる情報処理システムは、携帯端末100とアプリサーバ200を備える。携帯端末100とアプリサーバ200は、ネットワーク300により相互に接続されている。携帯端末100は、ランタイムを実行環境として、アプリリソースを実行することで、アプリケーション(アプリ)を実現する。以下、「アプリケーション(アプリ)」を、CPU101がアプリケーションプログラムを実行することで実現される機能として説明する。
As shown in FIG. 1, the information processing system according to the present embodiment includes a mobile terminal 100 and an application server 200. The mobile terminal 100 and the application server 200 are connected to each other via a
(携帯端末100のハードウェア構成)
図2は、一実施形態にかかる携帯端末100のハードウェア構成の概略図である。
(Hardware configuration of portable terminal 100)
FIG. 2 is a schematic diagram of a hardware configuration of the mobile terminal 100 according to the embodiment.
本実施形態では、携帯端末100として、例えばスマートフォンやタブレットPC(Personal Computer)などを想定している。 In the present embodiment, as the mobile terminal 100, for example, a smartphone or a tablet PC (Personal Computer) is assumed.
図2に示すように、本実施形態にかかる携帯端末100は、CPU(Central Processing Unit)101、メインメモリ102、補助メモリ103、RF(Radio Frequency)回路104、アンテナ105、LCD(Liquid Crystal Display)106、タッチスクリーン107、各種センサ108を備える。
As shown in FIG. 2, a mobile terminal 100 according to the present embodiment includes a CPU (Central Processing Unit) 101, a main memory 102, an
CPU101、メインメモリ102、補助メモリ103、RF回路104、LCD106、タッチスクリーン107、各種センサ107は、例えばバスB1により相互に接続されている。
The
CPU101は、携帯端末100の各種ハードウェアを制御する。さらに、CPU101は、補助メモリ103に格納された各種プログラムを、メインメモリ102に読み込むとともに、該メインメモリ102に読み込んだ各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。
The
メインメモリ102は、CPU101により実行される各種プログラムを格納する。さらに、メインメモリ102は、CPU101のワークエリアとして使用され、CPU101による処理に必要な各種データを記憶する。メインメモリ102としては、例えばRAM(Random Access Memory)などを用いても良い。
The main memory 102 stores various programs executed by the
補助メモリ103は、携帯端末100を動作させる各種プログラムを格納している。各種プログラムとしては、例えば、CPU101により実行されるアプリケーションプログラム1000、アプリマネージャー1500、鍵マネージャー1600、これらの実行環境であるOS1100、アプリサーバ200からダウンロードするアプリリソース1200a、1200bやランタイム1300などが格納される。さらに、各種プログラムとして、アプリサーバ200からダウンロードするアプリケーションプログラムを格納しても良い。
The
OS1100の種類は、特に限定されるものではないが、本実施形態では、Android(登録商標)を使用することとする。OS1100は、CPU101により実行されることで、後述するメモリ管理部112、ランタイム読み込み部113、プロセス実行部117、アクセス管理部118を実現する。
The type of the OS 1100 is not particularly limited, but Android (registered trademark) is used in the present embodiment. The OS 1100 is executed by the
ランタイム1300は、OS1100が直接解釈・実行可能な所謂ネイティブアプリであって、アプリリソース1200a、1200bと共にコンパイルされることで、所謂ハイブリッドアプリを構成する。ランタイム1300は、CPU101により実行されることで、後述するアプリリソース読み込み部114及びプロセス生成部116を実現する。さらに、ランタイム1300は、I/Oドライバ1300Dを含む。I/Oドライバ1300Dは、CPU101により実行されることで、後述する復号化部115を実現する。なお、本実施形態では、I/Oドライバ1300Dをランタイム1300に含めているが、本発明は、これに限定されるものではない。
The runtime 1300 is a so-called native app that can be directly interpreted and executed by the OS 1100 and is compiled with the app resources 1200a and 1200b to constitute a so-called hybrid app. The runtime 1300 is executed by the
アプリマネージャー1500は、ランチャー1500a及びダウンローダ1500bを含む(図2では省略)。ランチャー1500aは、CPU101により実行されることで、後述するアプリ起動指示受け付け部110及びランチャー部111を実現する。ダウンローダ1500bは、CPU101により実行されることで、後述するダウンロード部121を実現する。鍵マネージャー1600は、CPU101により実行されることで、鍵管理部120を実現する。
The application manager 1500 includes a
補助メモリ203としては、例えば、ハードディスクやフラッシュメモリ等の不揮発メモリを用いても良い。アプリリソース1200a、1200b及びランタイム1300の詳細は、後述することとする。 As the auxiliary memory 203, for example, a nonvolatile memory such as a hard disk or a flash memory may be used. Details of the application resources 1200a and 1200b and the runtime 1300 will be described later.
RF回路104は、CPU101により制御され、アンテナ105から他の無線通信装置に高周波信号を送信する。さらに、RF回路104は、アンテナ105により受信された高周波信号をベースバンド信号に変換して、該ベースバンド信号をCPU101に出力する。
The RF circuit 104 is controlled by the
LCD106は、CPU101により制御され、利用者に画像情報を表示する。タッチスクリーン107は、LCD106の表示画面に貼り付けられ、例えば利用者の指先などによる接触位置を検出する。タッチスクリーン107は、タッチパネルと呼ばれることもある。
The
各種センサ108は、それぞれCPU101により制御され、携帯端末100の状態情報を取得する。センサ108としては、例えば、加速度センサ、ジャイロセンサ、照度センサ、地磁気センサ、傾きセンサ、加圧センサ、接近センサ、温度センサ、3G、無線LAN、GPSモジュール、などを用いても良い。
The various sensors 108 are controlled by the
(アプリサーバ200のハードウェア構成)
図3は、一実施形態にかかるアプリサーバ200のハードウェア構成の概略図である。
(Hardware configuration of application server 200)
FIG. 3 is a schematic diagram of a hardware configuration of the application server 200 according to the embodiment.
図3に示すように、本実施形態にかかるアプリサーバ200は、CPU201、主記憶装置202、システムコントローラ203、ネットワークコントローラ204、ディスクコントローラ205、補助記憶装置206を備える。 As shown in FIG. 3, the application server 200 according to the present embodiment includes a CPU 201, a main storage device 202, a system controller 203, a network controller 204, a disk controller 205, and an auxiliary storage device 206.
CPU201、主記憶装置202、システムコントローラ203、ネットワークコントローラ204、ディスクコントローラ205は、例えばバスB2により相互に接続されている。 The CPU 201, the main storage device 202, the system controller 203, the network controller 204, and the disk controller 205 are connected to each other by, for example, a bus B2.
CPU201は、アプリサーバ200の各種ハードウェアを制御する。さらに、CPU201は、補助記憶装置206に格納された各種プログラムを、主記憶装置202に読み込むとともに、該主記憶装置202に読み込んだ各種プログラムを実行することで、各種機能を実現する。各種機能の詳細は、後述することとする。 The CPU 201 controls various hardware of the application server 200. Further, the CPU 201 implements various functions by reading various programs stored in the auxiliary storage device 206 into the main storage device 202 and executing the various programs read into the main storage device 202. Details of the various functions will be described later.
主記憶装置202は、CPU201により実行される各種プログラムを格納する。さらに、主記憶装置202は、CPU201のワークエリアとして使用され、CPU201による処理に必要な各種データを格納する。主記憶装置202としては、例えば、RAMを用いても良い。 The main storage device 202 stores various programs executed by the CPU 201. Further, the main storage device 202 is used as a work area for the CPU 201 and stores various data necessary for processing by the CPU 201. For example, a RAM may be used as the main storage device 202.
システムコントローラ203は、CPU201及び主記憶装置202の双方に接続されている。システムコントローラ203は、CPU201及び主記憶装置202間のデータ送信や、CPU201及びバス208間のデータ送信を制御する。さらに、システムコントローラ203は、バス208を介して、ネットワークコントローラ204及びディスクコントローラ205に接続されている。 The system controller 203 is connected to both the CPU 201 and the main storage device 202. The system controller 203 controls data transmission between the CPU 201 and the main storage device 202 and data transmission between the CPU 201 and the bus 208. Further, the system controller 203 is connected to the network controller 204 and the disk controller 205 via the bus 208.
ネットワークコントローラ204は、ネットワーク300を介して、携帯端末100に接続され、携帯端末100との間で各種データの送受信を実行する。
The network controller 204 is connected to the mobile terminal 100 via the
補助記憶装置206は、ディスクコントローラ205に接続されている。補助記憶装置206は、各種プログラムを格納している。各種プログラムとしては、例えば、CPU201により実行されるアプリケーションプログラム2000、アプリケーションプログラム2000の実行環境であるOS2100、携帯端末100にダウンロードされるアプリリソース1200a、1200bやランタイム1300などが格納される。OS2100が直接解釈・実行可能な形式のアプリケーションプログラム(ネイティブアプリ)を携帯端末100にダウンロードする場合、該アプリケーションプログラム(ネイティブアプリ)を格納しても良い。補助記憶装置206としては、例えば、ハードディスクなどを用いても良い。 The auxiliary storage device 206 is connected to the disk controller 205. The auxiliary storage device 206 stores various programs. As the various programs, for example, an application program 2000 executed by the CPU 201, an OS 2100 that is an execution environment of the application program 2000, application resources 1200a and 1200b downloaded to the mobile terminal 100, a runtime 1300, and the like are stored. When an application program (native application) in a format that can be directly interpreted / executed by the OS 2100 is downloaded to the mobile terminal 100, the application program (native application) may be stored. For example, a hard disk may be used as the auxiliary storage device 206.
(アプリケーションプログラム1400a、1400bの構成)
ここでは、所謂ハイブリッドアプリとしてのアプリケーションプログラム1400a、1400bの構成を説明する。
(Configuration of application programs 1400a and 1400b)
Here, the configuration of application programs 1400a and 1400b as so-called hybrid applications will be described.
図4は、一実施形態にかかるアプリケーションプログラム1400a、1400bの模式図であって、(a)(b)は、互いに異なるアプリケーション用のアプリケーションプログラム1400a、1400bを示している。 FIG. 4 is a schematic diagram of the application programs 1400a and 1400b according to the embodiment. (A) and (b) show application programs 1400a and 1400b for different applications.
図4(a)、(b)に示すように、携帯端末100により実行されるアプリケーションプログラム1400a、1400bは、所謂ハイブリッドアプリであって、アプリケーションごとに作成されるアプリリソース1200a、1200bと、アプリケーションに共通のランタイム1300と、を含む。 As shown in FIGS. 4A and 4B, application programs 1400a and 1400b executed by the mobile terminal 100 are so-called hybrid applications, and application resources 1200a and 1200b created for each application, A common runtime 1300.
アプリリソース1200a、1200bは、例えばアプリ開発者により開発されるプログラムファイルである。これらのアプリリソース1200a、1200bは、OS1100が解釈可能な実行形式ではないため、OS1100には単なるデータファイルとして認識される。アプリリソース1200a、1200bは、例えばHTMLやJava(登録商標)scriptなどで記述される。 The application resources 1200a and 1200b are program files developed by an application developer, for example. Since these application resources 1200a and 1200b are not executable formats interpretable by the OS 1100, the OS 1100 recognizes them as simple data files. The application resources 1200a and 1200b are described in, for example, HTML or Java (registered trademark) script.
ランタイム1300は、アプリリソース1200a、1200bを、アプリケーションプログラムとして実行するための実行環境を携帯端末100に提供する。ランタイム1300は、所謂ネイティブアプリであって、OS1100が解釈可能な実行形式であるため、OS1100にはアプリケーションプログラムとして認識される。 The runtime 1300 provides the mobile terminal 100 with an execution environment for executing the application resources 1200a and 1200b as application programs. The runtime 1300 is a so-called native application, and is an execution format that can be interpreted by the OS 1100, so that the OS 1100 recognizes it as an application program.
(携帯端末100の機能ブロック)
図5は、一実施形態にかかる携帯端末100の機能ブロックの概略図である。
(Functional block of mobile terminal 100)
FIG. 5 is a schematic diagram of functional blocks of the mobile terminal 100 according to the embodiment.
図5に示すように、本実施形態にかかる携帯端末100は、アプリ起動指示受け付け部110、ランチャー部111、メモリ管理部112、ランタイム読み込み部113、アプリリソース読み込み部114、復号化部115、プロセス生成部116、プロセス実行部117、アクセス管理部118、鍵管理部120、ダウンロード部121、格納部123、鍵ストア124を備える。
As illustrated in FIG. 5, the mobile terminal 100 according to the present embodiment includes an application activation
アプリ起動指示受け付け部110、ランチャー部111、メモリ管理部112、ランタイム読み込み部113、アプリリソース読み込み部114、復号化部115、プロセス生成部116、プロセス実行部117、アクセス管理部118、鍵管理部120、ダウンロード部121、格納部123、鍵ストア124は、何れもCPU101が、メインメモリ102に読み込まれた各種プログラムを実行することで実現される。
Application start
アプリ起動指示受付部110は、アプリサーバ200からのアプリ起動指示を受け付けて、ランチャー部111に通知する。アプリ起動指示は、アプリリソース1200a、1200bを指定して、該アプリリソース1200a、1200bの起動を指示するものである。
The application activation
ランチャー部111は、アプリ起動指示受け付け部110からのアプリ起動指示に基づき、指定されたアプリリソース1200aもしくは1200bを引数として、ランタイム1300の起動指示を出力する。さらに、ランチャー部111は、指定されたアプリリソース1200a、1200bを復号化する為の鍵を鍵管理部120に要求する。但し、本実施形態は、これに限定されるものではなく、例えばランチャー部111は、利用者によるアイコンへのタップを契機に、該アイコンに対応するアプリリソース1200a、1200bを引数として、ランタイム1300の起動指示を出力しても良い。
Based on the application activation instruction from the application activation
メモリ管理部112は、ランタイム1300の起動指示に基づき、指定されたアプリリソース1200aもしくは1200bを実行するためのプロセス空間をメインメモリ102に生成する。プロセス空間とは、CPU101により実行されるプログラムのプロセスごとに隔離されたセキュアなメモリ空間である。
The memory management unit 112 generates a process space in the main memory 102 for executing the designated application resource 1200 a or 1200 b based on the activation instruction of the runtime 1300. The process space is a secure memory space isolated for each process of the program executed by the
ランタイム読み込み部113は、メモリ管理部112により生成されたプロセス空間に、格納部123に格納されたランタイム1300を読み込む。
The
アプリリソース読み込み部114は、ランタイム読み込み部113からの指示に基づき、ランタイム1300が読み込まれたプロセス空間に、指定されたアプリリソース1200aもしくは1200bを読み込む。さらに、アプリリソース読み込み部114は、プロセス実行部117から指示に基づき、ランタイム1300が読み込まれたプロセス空間に、リソースを読み込むこともある。
Based on an instruction from the
復号化部115は、鍵管理部120から引き渡される鍵を復号化する。さらに、復号化部115は、ランタイム1300の一部として動作して、プロセス空間に読み込まれたアプリリソース1200aもしくは1200bを、復号化された鍵を用いて、プロセス空間の内部で復号化する。 The decryption unit 115 decrypts the key delivered from the key management unit 120. Furthermore, the decryption unit 115 operates as a part of the runtime 1300, and decrypts the application resource 1200a or 1200b read into the process space inside the process space using the decrypted key.
プロセス生成部116は、プロセス空間に読み込まれたアプリリソース1200aもしくは1200b及びランタイム1300を一体化してコンパイルすることで、アプリケーションプログラム1400aもしくは1400bのプロセスを生成する。 The process generation unit 116 generates a process of the application program 1400a or 1400b by integrating and compiling the application resource 1200a or 1200b and the runtime 1300 read into the process space.
プロセス実行部117は、プロセス空間に生成されたアプリケーションプログラム1400aもしくは1400bのプロセスを実行する。さらに、プロセス実行部117は、プロセスの実行時に必要なリソースの読み込みを、プロセス実行中にアプリリソース読み込み部114に指示することもある。
The process execution unit 117 executes the process of the application program 1400a or 1400b generated in the process space. Further, the process execution unit 117 may instruct the application
アクセス管理部118は、アクセス権テーブルTのアクセス権に基づき、プロセス実行部117もしくはアプリリソース読み込み部114によるファイルアクセスを許可もしくは制限する。ファイルアクセスとは、格納部123に格納されたアプリリソース1200a、1200b及び各種アプリケーションプログラムへの読み込み/書き込み/実行の何れかである。
The access management unit 118 permits or restricts file access by the process execution unit 117 or the application
鍵管理部120は、ランチャー部111からの要求に基づき、アプリリソース1200aもしくは1200bを復号化する為の鍵を鍵ストア124から取得する。鍵ストア124から取得された鍵は、鍵管理部120に保管される。さらに、鍵管理部120は、例えば携帯端末100に固有の情報を基に生成した鍵などを用いて、鍵ストア124から取得した鍵を暗号化して復号化部115に引き渡す。なお、鍵の引き渡しには、例えばOS1100により提供されるプロセス間通信の機能を利用しても良い。本実施形態では、OS1100としてAndroidを利用しているので、例えばAndroidのIntent機能を利用しても良い。
Based on the request from the
ダウンロード部121は、アプリサーバ200から送信されるアプリリソース1200aもしくは1200bを、送受信部122から受け取り、格納部123のデータ領域Rdに配置する。さらに、ダウンロード部121は、アプリリソース1200a、1200bの他に、例えばアプリサーバ200に格納された、ネイティブアプリとしてのランタイムやアプリケーションプログラムなどを、送受信部122から受け取り、格納部123に配置しても良い。但し、ネイティブアプリとしてのランタイムやアプリケーションプログラムなどは、格納部123のデータ領域Rdとは異なるアプリ領域に格納される。
The
なお、アプリサーバ200からアプリリソース1200a、1200bのURL1700が送信された場合、ダウンロード部121は、アプリリソース1200a、1200bの送信依頼の送信を送受信部122に指示しても良い。
Note that when the
送受信部122は、アプリサーバ200から送信された、暗号化されたアプリリソース1200aを受信する。なお、アプリサーバ200からアプリリソース1200a、1200bのURL1700が送信された場合、送受信部122は、ダウンロード部121からの指示に基づき、URL1700により指定されたアプリリソース1200a、1200bの送信依頼をアプリサーバ200に送信する。トークンがある場合は、送受信部122は、トークンを付加情報として付けて送信しても良い。
The transmission / reception unit 122 receives the encrypted application resource 1200 a transmitted from the application server 200. When the
格納部123は、例えば携帯端末100の補助メモリ103に構築される。格納部123は、例えばアプリケーションプログラム1000、OS1100、アプリリソース1200a、1200b、ランタイム1300などを格納する。さらに、格納部123に格納されるファイルには、OS1100が提供するアクセス権が設定される。
The
鍵ストア124は、例えば携帯端末100の補助メモリ103に構築される。鍵ストア124は、アプリリソース1200a、1200bを復号化する為の鍵を格納する。鍵ストア124内に保存される鍵は、ハードウェアの機能などを使って、他のデータに比べて安全に保護されていることが望ましい。例えば、ARMが持つTRUSTZONE機能を用いることにより、悪意のあるソフトウェアが鍵を取り出せないようにすることができる。
The key store 124 is constructed in the
なお、本実施形態では、鍵ストア124を補助メモリ103に構築しているが、本発明は、これに限定されるものではない。例えば、アプリリソース1200aもしくは1200bが格納される補助メモリ103とは別個にメモリチップを容易して、該メモリチップに鍵ストア124を構築しても良い。
In the present embodiment, the key store 124 is constructed in the
(アクセス権テーブルT)
ここでは、OS1100がアプリケーションプログラムに設定するアクセス権を説明する。
(Access right table T)
Here, an access right set in the application program by the OS 1100 will be described.
図6は、一実施形態にかかるアクセス権テーブルTの模式図である。 FIG. 6 is a schematic diagram of the access right table T according to the embodiment.
図6に示すように、本実施形態にかかるアクセス権テーブルTは、アプリケーションプログラムのUserIDと、アプリケーションプログラムへのアクセス権(アクセスコントロール)と、を紐づける。本実施形態では、OS1100としてAndroidを使用しているので、UserIDには、アプリケーションの名前(「Runtime」や「App」など)に紐づけられた一意な名前が割り当てられている。例えば、「Runtime」には「app−12345」が、「App」には「appp−67890」という名前が割り当てられているとする。なお、図中の「r」、「w」、「x」は、それぞれ読み込み可能、書き込み可能、実行可能を示している。 As shown in FIG. 6, the access right table T according to the present embodiment associates the UserID of the application program with the access right (access control) to the application program. In this embodiment, since Android is used as the OS 1100, a unique name associated with the name of the application (such as “Runtime” or “App”) is assigned to UserID. For example, “App-12345” is assigned to “Runtime”, and “app-67890” is assigned to “App”. Note that “r”, “w”, and “x” in the figure indicate readable, writable, and executable, respectively.
例えば、アクセス権テーブルTの枠Wに着目すると、UserIDが「app−12345」であるアプリケーションプログラム、即ちランタイム1300には、User(所有者)のアクセス権として、「r」、「w」、「x」が割り当てられている。従って、ランタイム1300のUserであれば、即ちランタイム1300のプロセスであれば、格納部123に格納されたランタイム1300への読み込み/書き込み/実行の何れのアクセスも許可されることとなる。
For example, paying attention to the frame W of the access right table T, the application program whose User ID is “app-12345”, that is, the runtime 1300 has “r”, “w”, “ x "is assigned. Therefore, if it is a user of the runtime 1300, that is, if it is a process of the runtime 1300, any read / write / execution access to the runtime 1300 stored in the
(アプリサーバ200の機能ブロック)
図7は、一実施形態にかかるアプリサーバ200の機能ブロックの概略図である。
(Function block of application server 200)
FIG. 7 is a schematic diagram of functional blocks of the application server 200 according to an embodiment.
図7に示すように、本実施形態にかかるアプリサーバ200は、アプリ受付部211、アプリ鍵生成部212、アプリ暗号化部213、アプリ配置部214、鍵暗号化部215、プッシュ制御部216、送受信部217、格納部218を備える。 As shown in FIG. 7, the application server 200 according to the present embodiment includes an application reception unit 211, an application key generation unit 212, an application encryption unit 213, an application placement unit 214, a key encryption unit 215, a push control unit 216, A transmission / reception unit 217 and a storage unit 218 are provided.
アプリ受付部211、アプリ鍵生成部212、アプリ暗号化部213、アプリ配置部214、鍵暗号化部215、プッシュ制御部216、送受信部217は、何れもCPU201が、主記憶装置202に読み込まれた各種プログラムを実行することで実現される。 The application reception unit 211, application key generation unit 212, application encryption unit 213, application placement unit 214, key encryption unit 215, push control unit 216, and transmission / reception unit 217 are all read by the CPU 201 into the main storage device 202. This is realized by executing various programs.
アプリ受付部211は、例えばアプリ開発者により開発されたアプリリソース1200a、1200bの登録を受け付ける。アプリ受付部211は、アプリリソースの他に、ネイティブアプリとしてのアプリケーションプログラムの登録を受け付けても良い。 For example, the application reception unit 211 receives registration of application resources 1200a and 1200b developed by an application developer. The application reception unit 211 may receive registration of an application program as a native application in addition to application resources.
アプリ鍵生成部212は、指定されたアプリリソース1200a、1200bを暗号化する為の鍵を生成する。鍵は、アプリリソース1200a、1200b及び送信先の携帯端末100に固有の情報に基づいて生成され、個々のアプリケーションと送信先の携帯端末100ごとに固有の鍵となる。暗号化の方式は、特に限定されるものではない。 The application key generation unit 212 generates a key for encrypting the specified application resources 1200a and 1200b. The key is generated based on information unique to the application resources 1200a and 1200b and the destination mobile terminal 100, and is a key unique to each application and the destination mobile terminal 100. The encryption method is not particularly limited.
アプリ暗号化部213は、アプリ鍵生成部212により生成された鍵を用いて、アプリリソース1200a、1200bを暗号化する。 The application encryption unit 213 encrypts the application resources 1200a and 1200b using the key generated by the application key generation unit 212.
アプリ配置部214は、アプリ暗号化部213により暗号化されたアプリリソース1200a、1200bを格納部218に配置する。 The application placement unit 214 places the application resources 1200 a and 1200 b encrypted by the application encryption unit 213 in the storage unit 218.
鍵暗号化部215は、携帯端末100に固有の情報を基に生成した鍵を用いて、アプリリソース1200a、1200bを暗号化する為の鍵そのものを暗号化する。 The key encryption unit 215 encrypts the key itself for encrypting the application resources 1200a and 1200b using a key generated based on information unique to the mobile terminal 100.
プッシュ制御部216は、例えば携帯端末100のセンサから取得した位置情報やコンテキスト情報などに基づき、アプリリソース1200a、1200bもしくは該アプリリソース1200a、1200bのURL1700と、アプリ鍵生成部212で生成した鍵の送信を送受信部217に指示する。さらに、付加情報として、指定されたアプリケーションを取得するためのトークン情報を付加しても良い。
The push control unit 216 uses the
送受信部217は、例えばプッシュ制御部216からの指示に基づき、格納部218に格納されたURL1700もしくはアプリリソース1200a、1200bと、これらを復号化する為の鍵を携帯端末100に送信する。
For example, based on an instruction from the push control unit 216, the transmission / reception unit 217 transmits the
格納部218は、例えばアプリサーバ200の補助記憶装置206に構築される。格納部218は、例えばアプリケーションプログラム2000、OS2100、アプリリソース1200a、1200bなどを格納する。さらに、格納部218は、ランタイム1300を格納しても良い。 The storage unit 218 is constructed in the auxiliary storage device 206 of the application server 200, for example. The storage unit 218 stores, for example, the application program 2000, the OS 2100, the application resources 1200a and 1200b, and the like. Further, the storage unit 218 may store the runtime 1300.
(携帯端末100のCPU101によるアプリリソースのダウンロード)
図8は、一実施形態にかかる携帯端末100のCPU101によるアプリリソース1200a、1200bのダウンロードのフローチャートである。
(Download application resources by
FIG. 8 is a flowchart of downloading application resources 1200a and 1200b by the
図8に示すように、送受信部122は、アプリサーバ200から送信されたアプリケーションのURL1700を受信したかどうか判断する(ステップS121)。
As illustrated in FIG. 8, the transmission / reception unit 122 determines whether the
ここで、アプリケーションのURL1700を受信したと判断されたら(ステップS121のYes)、ダウンロード部121は、該URL1700により指定されるアプリリソース(ここでは、アプリリソース1200aとする)のダウンロード要求の送信を、送受信部122に指示する(ステップS122)。
If it is determined that the
一方、アプリケーションのURL1700を受信したと判断されなければ(ステップS121のNo)、送受信部122は、アプリケーションのURL1700を受信したかどうかの判断を継続する(ステップS121)。
On the other hand, if it is not determined that the
なお、アプリサーバ200は、アプリケーションのURL100の送信と同時に、アプリリソース1200aを複合化する為の鍵も送信する。送受信部122は、アプリサーバ200から送信された鍵を、鍵管理部120に引き渡す。そして、鍵管理部120は、送受信部122から引き渡された鍵を鍵ストア124に格納する(ステップS126)。このとき、鍵管理部120は、携帯端末100に固有の鍵を用いて、アプリサーバ200から引き渡された鍵を復号化してから、鍵ストア124に格納する。 The application server 200 also transmits a key for decrypting the application resource 1200a simultaneously with the transmission of the URL 100 of the application. The transmission / reception unit 122 delivers the key transmitted from the application server 200 to the key management unit 120. Then, the key management unit 120 stores the key delivered from the transmission / reception unit 122 in the key store 124 (step S126). At this time, the key management unit 120 decrypts the key delivered from the application server 200 using a key unique to the mobile terminal 100 and stores the decrypted key in the key store 124.
次に、送受信部122は、ダウンロード部121からのダウンロード要求に基づき、指定されたアプリリソース1200aの送信依頼をアプリサーバ200に送信する(ステップS123)。トークンがある場合、トークンも付加情報として付けて送信しても良い。これにより、アプリサーバ200は、指定されたアプリリソース1200aを、携帯端末100に送信する。
Next, based on the download request from the
なお、アプリサーバ200から送信されるアプリリソース1200aは、アプリリソース1200a及び携帯端末100に固有の鍵で暗号化されている。このため、携帯端末100の送受信部122は、暗号化されたアプリリソース1200aを受け取ることとなる(ステップS124)。そして、送受信部122は、アプリリソース1200aをダウンロード部121に引き渡す。
Note that the application resource 1200 a transmitted from the application server 200 is encrypted with a key unique to the application resource 1200 a and the mobile terminal 100. For this reason, the transmission / reception unit 122 of the portable terminal 100 receives the encrypted application resource 1200a (step S124). Then, the transmission / reception unit 122 delivers the application resource 1200 a to the
次に、ダウンロード部121は、送受信部122から引き渡されたアプリリソース1200aを格納部123に格納する(ステップS125)。このとき、携帯端末100は、アプリリソース1200aを、単なるデータファイルと認識するため、格納部123のデータ領域Rdに配置することとなる。
Next, the
但し、それぞれのデータファイルには、ランタイム1300をUser(所有者)とするアクセス権を設定する。このため、ランタイム1300のプロセスでなければ、格納部123のデータ領域Rdに格納されたデータファイルにアクセスすることができない。逆に言えば、ランタイム1300のプロセスであれば、如何なるプロセスであっても、格納部123のデータ領域Rdに格納されたデータファイルにアクセスすることができる。
However, an access right with the runtime 1300 as the User (owner) is set for each data file. For this reason, a data file stored in the data area Rd of the
以上でアプリリソース1200aのダウンロードが終了する。 The application resource 1200a is thus downloaded.
アプリリソースのダウンロードは、アプリケーションの実行指示のたびに実施される。このため、例えばアプリリソース1200aのダウンロード後、さらに他のアプリケーション(ここでは、アプリリソース1200bのアプリケーションとする)の実行指示が行われた場合、同様の手順を経て、格納部123にアプリリソース1200bが格納される。このときも、アプリリソース1200bは、単なるデータファイルとして認識されるため、アプリリソース1200aが格納されているデータ領域Rdに格納されることとなる。
Downloading application resources is performed every time an application execution instruction is issued. For this reason, for example, when an instruction to execute another application (here, the application resource 1200b) is issued after the application resource 1200a is downloaded, the application resource 1200b is stored in the
以上のように、本実施形態にかかる携帯端末100では、アプリサーバ200から複数のアプリリソース1200a、1200bをダウンロードする場合、全てのアプリリソース1200a、1200bが、データファイルとして共通のデータ領域Rdに格納され、それぞれのデータファイルにランタイム1300をUser(所有者)とするアクセス権が設定されることとなる。 As described above, in the mobile terminal 100 according to the present embodiment, when a plurality of application resources 1200a and 1200b are downloaded from the application server 200, all the application resources 1200a and 1200b are stored in the common data area Rd as data files. Thus, an access right that sets the runtime 1300 as a User (owner) is set for each data file.
なお、ここでは、アプリサーバ200から送信されたアプリケーションのURL1700に基づき、携帯端末100がアプリサーバ200にダウンロード要求を送信しているが、本発明は、これに限定されるものではない。例えば、携帯端末100のセンサから取得した位置情報やコンテキスト情報などに基づき、アプリサーバ200が必要と判断したアプリリソース1200a、1200bを携帯端末100に送信しても良い。即ち、アプリサーバ200の判断に基づき、必要なアプリリソース1200a、1200bが携帯端末100に送信される場合、前述のステップS121〜ステップ124が省略されることとなる。
Here, based on the
(携帯端末100のCPU101によるアプリケーションの実行)
図9は、一実施形態にかかる携帯端末100のCPU101によるアプリケーションの実行のフローチャートである。図10は、一実施形態にかかる格納部123に格納されたファイルへのアクセス制限を説明するための模式図である。図11は、一実施形態にかかる格納部123に格納されたファイルへのアクセス制限を説明するための模式図である。
(Execution of application by
FIG. 9 is a flowchart of application execution by the
以下の説明は、携帯端末100の格納部123にアプリリソース1200a、1200b及びランタイム1300が格納されていることを想定する。
In the following description, it is assumed that the application resources 1200 a and 1200 b and the runtime 1300 are stored in the
図9に示すように、先ず、アプリ起動指示受付部110は、例えばアプリサーバ200から送信されたアプリケーション(ここでは、アプリリソース1200aのアプリケーションとする)の起動指示を受け付けたかどうか判断する(ステップS101)。アプリサーバ200からアプリリソース1200aが送信されるときに、アプリケーションの起動指示を受け付けたと判断しても良い。
As illustrated in FIG. 9, first, the application activation
ここで、アプリケーションの起動指示を受け付けたと判断されたら(ステップS101のYes)、アプリ起動指示受付部110は、ランチャー部111にアプリ実行指示を出力する(ステップS102)。
If it is determined that an application activation instruction has been received (Yes in step S101), the application activation
一方、アプリケーションの起動指示を受け付けたと判断しなければ(ステップS101のNo)、アプリ起動指示受付部110は、アプリケーションの起動指示を受け付けたかどうかの判断を継続する(ステップS101)。
On the other hand, if it is not determined that an application activation instruction has been received (No in step S101), the application activation
次に、ランチャー部111は、アプリ起動指示受付部110からのアプリ実行指示に基づき、指定されたアプリリソース1200aのファイル名を引数として、ランタイム1300の起動指示を出力する(ステップS103)。
Next, the
さらに、ランチャー部111は、指定されたアプリリソース1200aを復号化する為の鍵を鍵管理部120に要求する(ステップS107)。
Further, the
次に、メモリ管理部112は、ランタイム1300及びアプリリソース1200aを実行するためのプロセス空間M1をメインメモリ102に生成する(ステップS104)。 Next, the memory management unit 112 generates a process space M1 for executing the runtime 1300 and the application resource 1200a in the main memory 102 (step S104).
次に、ランタイム読み込み部113は、メモリ管理部112により生成されたプロセス空間M1に、格納部123に格納されたランタイム1300を読み込む(ステップS105)。これにより、プロセス空間M1にランタイム1300のプロセスが生成される。
Next, the
次に、アプリリソース読み込み部114は、ランタイム1300が読み込まれたプロセス空間M1に、さらにアプリリソース1200aを読み込む(ステップS106)。
Next, the application
そして、これらと並行して、鍵管理部120は、ランチャー部111からの要求に基づき、アプリリソース1200aを復号化する為の鍵を鍵ストア124から取得する(ステップS108)。さらに、鍵管理部120は、鍵ストア124から取得した鍵を暗号化する。暗号化された鍵は、例えばOS1100のプロセス間通信の機能を利用して、復号化部115に引き渡される。暗号化の方式は、特に限定されるものではない。 In parallel with these, the key management unit 120 acquires a key for decrypting the application resource 1200a from the key store 124 based on the request from the launcher unit 111 (step S108). Further, the key management unit 120 encrypts the key acquired from the key store 124. The encrypted key is delivered to the decryption unit 115 using the inter-process communication function of the OS 1100, for example. The encryption method is not particularly limited.
次に、復号化部115は、鍵管理部120から引き渡された鍵を復号化するとともに(ステップS109)、復号化された鍵を用いて、プロセス空間M1に読み込まれたアプリリソース1200aを復号化する(ステップS110)。即ち、アプリリソース1200aは、プロセス空間M1に読み込まれた後に復号化(平文化)される。 Next, the decryption unit 115 decrypts the key delivered from the key management unit 120 (step S109), and decrypts the application resource 1200a read into the process space M1 using the decrypted key. (Step S110). That is, the application resource 1200a is decrypted (plain culture) after being read into the process space M1.
次に、プロセス生成部116は、復号化部115により復号化されたアプリリソース1200a及びランタイム1300を一体化してコンパイルすることで、プロセス空間M1に、アプリケーションプログラム1400aのプロセスP1を生成する(ステップS111)。 Next, the process generation unit 116 generates the process P1 of the application program 1400a in the process space M1 by integrating and compiling the application resource 1200a and the runtime 1300 decrypted by the decryption unit 115 (step S111). ).
プロセスP1は、アプリリソース1200a及びランタイム1300により構成されるハイブリッドアプリとしてのアプリケーションプログラム1400aのプロセスである。しかし、OS1100は、アプリリソース1200aを単なるデータとして認識するため、プロセスP1をランタイム1300のプロセスであると認識する。 The process P1 is a process of the application program 1400a as a hybrid application configured by the application resource 1200a and the runtime 1300. However, since the OS 1100 recognizes the application resource 1200a as simple data, the OS 1100 recognizes the process P1 as a process of the runtime 1300.
次に、プロセス実行部117は、アプリケーションプログラム1400aのプロセスP1を実行する(ステップS112)。 Next, the process execution unit 117 executes the process P1 of the application program 1400a (step S112).
次に、アクセス管理部118は、プロセス実行部117により実行されるプロセスP1が、格納部123に格納されたファイルへのアクセスを伴うものか判断する(ステップS113)。 Next, the access management unit 118 determines whether the process P1 executed by the process execution unit 117 accompanies access to the file stored in the storage unit 123 (step S113).
ここで、プロセスP1がアプリリソース(例えばアイコン画像など)へのアクセスを伴うものであると判断されたら(ステップS113のYes)、アクセス管理部118は、アクセス権テーブルTのアクセス権を参照して、ファイルへのアクセスを許可するかどうか判断する(ステップS114)。 Here, if it is determined that the process P1 involves access to an application resource (for example, an icon image) (Yes in step S113), the access management unit 118 refers to the access right in the access right table T. Whether to permit access to the file is determined (step S114).
一方、プロセスP1がアプリリソースへのアクセスを伴うものであると判断されなければ(ステップS113のNo)、プロセス実行部117は、アプリケーションプログラム1400aのプロセスP1の実行を継続する(ステップS112)。 On the other hand, if it is not determined that the process P1 accompanies access to the application resource (No in step S113), the process execution unit 117 continues to execute the process P1 of the application program 1400a (step S112).
プロセスP1がアプリリソースへのアクセスを伴うものであると判断され(ステップS113のYes)、かつ、アプリリソースへのアクセスを許可すると判断された場合(ステップS114のYes)、プロセス実行部117は、アプリリソースへのアクセス、例えば格納部123に格納されたアプリリソースへの読み込み/書き込み/実行の何れかを実行する(ステップS115)。
If it is determined that the process P1 involves access to the application resource (Yes in step S113) and it is determined that access to the application resource is permitted (Yes in step S114), the process execution unit 117 Access to the application resource, for example, reading / writing / execution of the application resource stored in the
本実施形態にかかる携帯端末100は、アプリケーションの実行ごとに、以上の一連の処理を実施する。このため、例えばアプリケーションプログラム1400aのプロセスP1の生成後に、別のアプリケーション(ここでは、アプリリソース1200bのアプリケーションとする)が実行された場合、さらにアプリケーションプログラム1400bのプロセスP2が生成される。しかも、アプリケーションプログラム1400a、1400bのプロセスP1、P2は、何れもランタイム1300のプロセスと認識される。 The mobile terminal 100 according to the present embodiment performs the series of processes described above every time the application is executed. For this reason, for example, when another application (here, an application of the application resource 1200b) is executed after the generation of the process P1 of the application program 1400a, a process P2 of the application program 1400b is further generated. Moreover, the processes P1 and P2 of the application programs 1400a and 1400b are all recognized as processes of the runtime 1300.
従って、プロセスP1及びプロセスP2は、図10に矢印Aで示すように、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bの双方へのアクセスが許可される。これを放置すると、例えばプロセスP1が悪意のあるプロセスである場合、該プロセスP1が、格納部123に格納されたアプリリソース1200bに不正アクセスして、該アプリリソース1200bを改竄するようなことも起こり得る。
Therefore, the process P1 and the process P2 are permitted to access both the application resources 1200a and 1200b stored in the data area Rd of the
そこで、本実施形態では、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bを、互いに異なる鍵で別個に暗号化している。しかも、プロセスP1は、自身のアプリリソース1200aを復号化する為の鍵しか持たず、プロセスP2は、自身のアプリリソース1200bを復号化する為の鍵しか持たない。
Therefore, in the present embodiment, the application resources 1200a and 1200b stored in the data area Rd of the
このため、プロセスP1は、格納部123のデータ領域Rdに格納されたアプリリソース1200bへの読み込み/書き込み/実行の何れも行うことができない。同様に、プロセス2は、格納部123のデータ領域Rdに格納されたアプリリソース1200aへの読み込み/書き込み/実行の何れも行うことができない。
For this reason, the process P1 cannot perform any of reading / writing / execution to the application resource 1200b stored in the data area Rd of the
これにより、携帯端末100にダウンロードしたアプリリソースが、携帯端末100内で悪意ある動作をするものであっても、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bを、例えば不正アクセスなどの脅威から保護することができる。
As a result, even if the application resource downloaded to the mobile terminal 100 performs a malicious operation within the mobile terminal 100, the application resources 1200a and 1200b stored in the data area Rd of the
また、アプリリソース読み込み部114は、ランタイム1300のプロセスとして、アプリリソース1200a、1200bの読み込みを実行する。このため、ランタイム1300のプロセスは、図11に矢印Bで示すように、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bの双方へのアクセスが許可される。
Further, the application
ところが、本実施形態では、前述のように、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bを、互いに異なる鍵で別個に暗号化している。しかも、ランタイム1300のプロセスは、指定されたアプリリソース1200aもしくは1200bを復号化する為の鍵しか持たない。
However, in the present embodiment, as described above, the application resources 1200a and 1200b stored in the data area Rd of the
このため、アプリリソース1200aを引数として起動されたランタイム1300のプロセスは、格納部123のデータ領域Rdに格納されたアプリリソース1200bへの読み込みを行うことができない。同様に、アプリリソース1200bを引数として起動されたランタイム1300のプロセスは、格納部123のデータ領域Rdに格納されたアプリリソース1200aへの読み込みを行うことができない。
For this reason, the process of the runtime 1300 activated with the application resource 1200 a as an argument cannot read into the application resource 1200 b stored in the data area Rd of the
これにより、携帯端末100がアプリケーションプログラム1400aを実行しようとしたときに、ランタイム1300のプロセスが、格納部123のデータ領域Rdに格納されたアプリリソース1200bを読み込むことがない。逆に、携帯端末100がアプリケーションプログラム1400bを実行しようとしたときに、ランタイム1300のプロセスが、格納部123のデータ領域Rdに格納されたアプリリソース1200aを読み込むことがない。即ち、本実施形態にかかる携帯端末100は、指定されたアプリケーションを、確実に実行することができる。
Thereby, when the mobile terminal 100 tries to execute the application program 1400a, the process of the runtime 1300 does not read the application resource 1200b stored in the data area Rd of the
本実施形態によれば、アプリサーバ200からアプリリソース1200a、1200bをダウンロードして、携帯端末100にプレインストールされたランタイム1300上で実行することで、アプリケーションプログラム1400a、1400bのプロセスP1、P2を生成している。 According to the present embodiment, the application resources 1200a and 1200b are downloaded from the application server 200 and executed on the runtime 1300 preinstalled in the mobile terminal 100, thereby generating the processes P1 and P2 of the application programs 1400a and 1400b. doing.
このため、アプリサーバ200からダウンロードするデータ量を、ランタイム1300の分量だけ削減することができる。しかも、携帯端末100は、アプリリソース1200a、1200bをアプリケーションプログラムとして認識しないので、アプリリソース1200a、1200bをダウンロードする際に、携帯端末100の利用者への確認表示(同意ボタンなど)が発生することがない。従って、携帯端末100の利用者への煩わしさ感の低減と、携帯端末100の保存領域の非効率な消費と、を実現することができる。 Therefore, the amount of data downloaded from the application server 200 can be reduced by the amount of the runtime 1300. Moreover, since the mobile terminal 100 does not recognize the application resources 1200a and 1200b as application programs, when the application resources 1200a and 1200b are downloaded, a confirmation display (such as an agreement button) to the user of the mobile terminal 100 occurs. There is no. Therefore, it is possible to realize a reduction in annoyance to the user of the mobile terminal 100 and inefficient consumption of the storage area of the mobile terminal 100.
さらに、本実施形態によれば、アプリリソース1200a、1200bを実行するたびに、互いに隔離されたプロセス空間M1、M2を生成して、それぞれのプロセス空間M1、M2にランタイム1300及びアプリリソース1200a、1200bを1つずつ読み込む。即ち、プロセス空間M1、M2に複数のアプリリソース1200a、1200bが読み込まれることがない。このため、複数のアプリリソース1200a、1200b同士がプロセス空間M1、M2内で干渉することがない。 Furthermore, according to the present embodiment, each time the application resources 1200a and 1200b are executed, the process spaces M1 and M2 that are isolated from each other are generated, and the runtime 1300 and the application resources 1200a and 1200b are generated in the process spaces M1 and M2, respectively. Are read one by one. That is, a plurality of application resources 1200a and 1200b are not read into the process spaces M1 and M2. For this reason, a plurality of application resources 1200a and 1200b do not interfere with each other in the process spaces M1 and M2.
また、本実施形態によれば、格納部123のデータ領域Rdに格納されたアプリリソース1200a、1200bを、互いに異なる鍵で別個に暗号化している。しかも、それぞれのプロセスP1、P2は、自身のアプリリソース1200a、1200bを復号化する為の鍵しか与えられない。このため、プロセスP1、P2は、格納部123のデータ領域Rdに格納されたアプリリソースのうち、自身のアプリリソースしかアクセスすることができない。これにより、携帯端末100の格納部123に格納されたアプリリソース1200a、1200bを、例えば悪意あるアプリリソースに起因する不正アクセスなどの脅威から保護することができる。
Further, according to the present embodiment, the application resources 1200a and 1200b stored in the data area Rd of the
しかも、ランタイム1300により実現されるアプリリソース読み込み部114、復号化部115、プロセス生成部116と、アプリマネージャー1500により実現されるランチャー部111及びダウンロード部121と、鍵マネージャー1600により実現される鍵管理部120と、を追加するだけで(即ち、既存のOS1100を利用したまま)、前述の機能を得ることができる。
Moreover, the application
(変形例)
図12は、一実施形態の変形例にかかる情報処理システムの概略図である。
(Modification)
FIG. 12 is a schematic diagram of an information processing system according to a modification of the embodiment.
前述の実施形態では、アプリサーバ200がアプリリソースを格納する機能及びアプリリソースをプッシュする機能を備えていたが、本発明は、これに限定されるものではない。 In the above-described embodiment, the application server 200 has a function of storing application resources and a function of pushing application resources. However, the present invention is not limited to this.
例えば、図12に示すように、アプリサーバ200の代わりに、アプリリソースを格納する機能及びアプリリソースをプッシュする機能を備えていないアプリサーバ200Aを用いても良い。この場合、アプリリソースを格納する格納部218を備えるアプリストア400と、アプリリソースのプッシュを制御するプッシュ制御部216を備えるプッシュサーバ500と、を別途に用意して、それぞれネットワーク300で接続すれば良い。
For example, as shown in FIG. 12, instead of the application server 200, an application server 200A that does not have a function for storing application resources and a function for pushing application resources may be used. In this case, if an application store 400 including a storage unit 218 for storing application resources and a push server 500 including a push control unit 216 for controlling the push of application resources are separately prepared and connected via the
100: 携帯端末(情報処理装置)
102: メインメモリ(メモリ)
112: メモリ管理部
113: ランタイム読み込み部
114: アプリリソース読み込み部
115: 復号化部
116: プロセス生成部
117: プロセス実行部
120: 鍵管理部
123: 格納部
124: 鍵ストア
200: アプリサーバ
200A: アプリサーバ
300: ネットワーク
400: アプリストア
500: プッシュサーバ
M1: プロセス空間
M2: プロセス空間
P1: プロセス
P2: プロセス
1200a: アプリリソース
1200b: アプリリソース
1300: ランタイム
100: Mobile terminal (information processing device)
102: Main memory (memory)
112: Memory management unit 113: Runtime reading unit 114: Application resource reading unit 115: Decryption unit 116: Process generation unit 117: Process execution unit 120: Key management unit 123: Storage unit 124: Key store 200: Application server 200A: Application server 300: Network 400: App store 500: Push server M1: Process space M2: Process space P1: Process P2: Process 1200a: Application resource 1200b: Application resource 1300: Runtime
Claims (8)
前記複数の異なるアプリケーションプログラムに含まれる各アプリケーションプログラムの起動指示ごとに、メモリ内に前記各アプリケーションプログラムの各々に対応した複数のプロセス空間を生成するメモリ管理部と、
前記ランタイムを前記複数のプロセス空間のそれぞれに読み込むランタイム読み込み部と、
前記各アプリケーションプログラムに対応した各アプリリソースを、前記ランタイムが読み込まれた複数のプロセス空間のうち対応するプロセス空間に読み込むアプリリソース読み込み部と、
前記複数のプロセス空間のそれぞれに読み込まれたアプリリソース及びランタイムから、前記各アプリケーションプログラムのプロセスを生成するプロセス生成部と、
前記複数のプロセス空間上で生成された前記各アプリケーションプログラムのプロセスを実行するプロセス実行部と、
を備え、前記ランタイムは、オペレーティングシステムが解釈及び実行可能なネイティブアプリケーションプログラムであり、前記複数のアプリケーションプログラムの各々は、前記ランタイムと、前記ランタイムが解釈可能なリソースとで構成されたハイブリッドアプリケーションプログラムであり、前記アプリケーションプログラムをダウンロードする際にユーザへの確認表示の生成処理を実行し、前記複数のアプリリソースをダウンロードする際、前記確認表示の前記生成処理を実行しない情報処理装置。 A storage unit for storing a plurality of application resources for a plurality of different application programs and a runtime used for each of the plurality of application resources;
A memory management unit that generates a plurality of process spaces corresponding to each of the application programs in a memory for each start instruction of each application program included in the plurality of different application programs;
A runtime loading unit for loading the runtime into each of the plurality of process spaces;
An application resource reading unit that reads each application resource corresponding to each application program into a corresponding process space among a plurality of process spaces loaded with the runtime;
A process generation unit for generating a process of each application program from an application resource and a runtime read in each of the plurality of process spaces;
A process execution unit for executing processes of the application programs generated on the plurality of process spaces;
The runtime is a native application program that can be interpreted and executed by an operating system, and each of the plurality of application programs is a hybrid application program that includes the runtime and resources that the runtime can interpret. An information processing apparatus that executes a generation process of confirmation display to a user when downloading the application program and does not execute the generation process of the confirmation display when downloading the plurality of application resources.
前記格納部は、暗号化されたアプリリソースを格納し、
前記アプリリソース読み込み部は、前記ランタイムが読み込まれたプロセス空間に、前記暗号化されたアプリリソースを読み込み、
前記情報処理装置は、さらに、
前記暗号化されたアプリリソースを復号化するための鍵を管理する鍵管理部と、
前記プロセス空間に読み込まれた前記暗号化されたアプリリソースを、前記鍵を用いて復号化する復号化部と、を備える情報処理装置。 In the information processing apparatus according to claim 1,
The storage unit stores encrypted application resources,
The app resource reading unit reads the encrypted app resource into the process space in which the runtime is read,
The information processing apparatus further includes:
A key management unit for managing a key for decrypting the encrypted application resource;
An information processing apparatus comprising: a decryption unit that decrypts the encrypted application resource read into the process space using the key.
前記鍵管理部は、前記鍵を暗号化して、前記復号化部に引き渡し、
前記復号化部は、前記鍵管理部から引き渡された鍵を復号化するとともに、前記復号化された鍵を用いて、前記プロセス空間に読み込まれた前記暗号化されたアプリリソースを復号化する情報処理装置。 In the information processing apparatus according to claim 2,
The key management unit encrypts the key and passes it to the decryption unit,
The decryption unit decrypts the key delivered from the key management unit, and decrypts the encrypted application resource read into the process space using the decrypted key. Processing equipment.
前記各アプリケーションプログラムの起動指示に基づき、前記鍵管理部に前記鍵を要求する鍵要求部を備え、
前記鍵管理部は、前記鍵要求部から前記鍵を要求されたことを契機に、前記鍵を前記復号化部に引き渡す情報処理装置。 The information processing apparatus according to claim 3, further comprising:
A key request unit that requests the key to the key management unit based on an activation instruction of each application program,
The key management unit is an information processing apparatus that delivers the key to the decryption unit when the key request unit requests the key.
前記格納部は、互いに異なる鍵を用いて暗号化された複数のアプリリソースを格納する情報処理装置。 In the information processing apparatus according to any one of claims 2 to 4,
The storage unit is an information processing apparatus that stores a plurality of application resources encrypted using different keys.
複数の異なるアプリケーションプログラムに含まれる各アプリケーションプログラムの起動指示ごとに、メモリ内に前記各アプリケーションプログラムに対応した複数のプロセス空間を生成する工程と、
前記複数の異なるアプリケーションプログラムに対する複数のアプリリソース及び前記複数のアプリリソースの各々に用いられるランタイムを格納する格納部から、前記複数のプロセス空間のそれぞれに前記ランタイムを読み込む工程と、
前記各アプリケーションプログラムに対応した各アプリリソースを、前記ランタイムが読み込まれた前記複数のプロセス空間のうち対応するプロセス空間に読み込む工程と、
前記複数のプロセス空間のそれぞれに読み込まれたアプリリソース及びランタイムから、前記各アプリケーションプログラムのプロセスを生成する工程と、
前記複数のプロセス空間上で生成された前記各アプリケーションプログラムのプロセスを実行する工程と、
を備え、前記ランタイムは、オペレーティングシステムが解釈及び実行可能なネイティブアプリケーションプログラムであり、前記複数のアプリケーションプログラムの各々は、前記ランタイムと、前記ランタイムが解釈可能なリソースとで構成されたハイブリッドアプリケーションプログラムであり、前記アプリケーションプログラムをダウンロードする際にユーザへの確認表示の生成処理を実行し、前記複数のアプリリソースをダウンロードする際、前記確認表示の前記生成処理を実行しない情報処理方法。 In an information processing method executed by a computer,
Generating a plurality of process spaces corresponding to each application program in a memory for each start instruction of each application program included in a plurality of different application programs;
Loading the runtime into each of the plurality of process spaces from a storage unit storing a plurality of application resources for the plurality of different application programs and a runtime used for each of the plurality of application resources;
Loading each application resource corresponding to each application program into a corresponding process space among the plurality of process spaces loaded with the runtime;
Generating a process for each application program from an application resource and a runtime read into each of the plurality of process spaces;
Executing the process of each application program generated on the plurality of process spaces;
The runtime is a native application program that can be interpreted and executed by an operating system, and each of the plurality of application programs is a hybrid application program that includes the runtime and resources that the runtime can interpret. An information processing method that executes a generation process of confirmation display to a user when downloading the application program and does not execute the generation process of the confirmation display when downloading the plurality of application resources.
前記アプリリソースを読み込む工程では、暗号化されたアプリリソースを前記プロセス空間に読み込み、
前記情報処理方法は、さらに、
前記プロセス空間に読み込まれたアプリリソースを復号化する工程を備える情報処理方法。 In the information processing method according to claim 6,
In the step of reading the application resource, the encrypted application resource is read into the process space,
The information processing method further includes:
An information processing method comprising a step of decrypting an application resource read into the process space.
前記プロセッサに、
複数の異なる前記アプリケーションプログラムに含まれる各アプリケーションプログラムの起動指示ごとに、メモリ内に前記各アプリケーションプログラムに対応した複数のプロセス空間を生成し、
前記複数の異なるアプリケーションプログラムに対する複数のアプリリソース及び前記複数のアプリリソースの各々に用いられるランタイムを格納する格納部から、前記複数のプロセス空間のそれぞれに前記ランタイムを読み込ませ、
前記各アプリケーションプログラムに対応した各アプリリソースを、前記ランタイムが読み込まれた前記複数のプロセス空間のうち対応するプロセス空間に読み込ませ、
前記複数のプロセス空間のそれぞれに読み込ませたアプリリソース及びランタイムから、前記各アプリケーションプログラムのプロセスを生成させ、
前記複数のプロセス空間上で生成された前記各アプリケーションプログラムのプロセスを実行させ、前記ランタイムは、オペレーティングシステムが解釈及び実行可能なネイティブアプリケーションプログラムであり、前記複数のアプリケーションプログラムの各々は、前記ランタイムと、前記ランタイムが解釈可能なリソースとで構成されたハイブリッドアプリケーションプログラムであり、前記アプリケーションプログラムに対するアプリリソースがダウンロードされる際にユーザへの前記確認表示の前記生成処理が実行されない、プログラム。 In a program to be executed by a processor of an information processing apparatus that executes a generation process of confirmation display to a user when an application program is downloaded,
In the processor,
For each start instruction of each application program included in a plurality of different application programs, generate a plurality of process spaces corresponding to each application program in the memory,
A plurality of application resources for the plurality of different application programs and a storage unit storing a runtime used for each of the plurality of application resources, the runtime is read into each of the plurality of process spaces;
Each application resource corresponding to each application program is loaded into a corresponding process space among the plurality of process spaces loaded with the runtime,
From the application resource and runtime loaded in each of the plurality of process spaces, the process of each application program is generated,
A process of each of the application programs generated on the plurality of process spaces is executed, and the runtime is a native application program that can be interpreted and executed by an operating system, and each of the plurality of application programs includes the runtime and A hybrid application program configured with resources that can be interpreted by the runtime, and the generation process of the confirmation display to the user is not executed when an application resource for the application program is downloaded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018021630A JP6547865B2 (en) | 2018-02-09 | 2018-02-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018021630A JP6547865B2 (en) | 2018-02-09 | 2018-02-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012124554A Division JP2013250739A (en) | 2012-05-31 | 2012-05-31 | Information processor, information processing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018097898A true JP2018097898A (en) | 2018-06-21 |
JP6547865B2 JP6547865B2 (en) | 2019-07-24 |
Family
ID=62632941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018021630A Expired - Fee Related JP6547865B2 (en) | 2018-02-09 | 2018-02-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6547865B2 (en) |
-
2018
- 2018-02-09 JP JP2018021630A patent/JP6547865B2/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
吉岡 梅, FLASH CS5.5ではじめる IPHONE/ANDROIDアプリ開発入門, vol. 第1版, JPN6016003293, 25 June 2011 (2011-06-25), pages 第10−13頁 * |
海上 忍: "著作権の基礎知識から最新の音楽・動画の楽しみ方まで デジタル著作権の正体", MAC FAN, vol. 第16巻 第11号, JPN6016003294, 1 November 2008 (2008-11-01), JP, pages 第72−77頁 * |
Also Published As
Publication number | Publication date |
---|---|
JP6547865B2 (en) | 2019-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9230085B1 (en) | Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services | |
US10521214B2 (en) | Methods and systems for upgrade and synchronization of securely installed applications on a computing device | |
EP2859498B1 (en) | Trusted security zone access to peripheral devices | |
JP5576983B2 (en) | Secure boot and configuration of subsystems from non-local storage | |
US9330253B2 (en) | Apparatus and method for processing application package in portable terminal | |
EP2669838B1 (en) | Information processing apparatus and information processing method | |
JP6858256B2 (en) | Payment application separation methods and devices, as well as terminals | |
JP5920021B2 (en) | Control program and terminal | |
CN103890717A (en) | Providing a function of a basic input/output system (BIOS) in a privileged domain | |
US10592680B2 (en) | Data accessibility control | |
JP2005159905A (en) | Data storing device and communication terminal | |
US11233661B2 (en) | Device and method for authenticating application in execution environment in trust zone | |
EP2533150B1 (en) | Methods and devices for controlling access to computing resources | |
KR101223981B1 (en) | Virtualization apparatus and server for securly executing applications and method therefor | |
CN112416622A (en) | Clipboard data protection method and device, computer equipment and storage medium | |
JP6547865B2 (en) | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM | |
CN110140124B (en) | Packet applications share data using the same key | |
JP2009169868A (en) | Storage area access device and method for accessing storage area | |
US20240089259A1 (en) | Remote authorization control system, resource access apparatus, authentication apparatus, remote authorization control method and program | |
KR101552556B1 (en) | Method for Preventing Mobile Application Decompiled and Program Publishing Server for Storing Launcher therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20180528 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181214 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190610 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6547865 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |