JP2017073036A - Information processing device and control method thereof - Google Patents

Information processing device and control method thereof Download PDF

Info

Publication number
JP2017073036A
JP2017073036A JP2015200472A JP2015200472A JP2017073036A JP 2017073036 A JP2017073036 A JP 2017073036A JP 2015200472 A JP2015200472 A JP 2015200472A JP 2015200472 A JP2015200472 A JP 2015200472A JP 2017073036 A JP2017073036 A JP 2017073036A
Authority
JP
Japan
Prior art keywords
class
execution environment
execution
application
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.)
Pending
Application number
JP2015200472A
Other languages
Japanese (ja)
Inventor
学海 畑農
Gakukai Hatano
学海 畑農
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015200472A priority Critical patent/JP2017073036A/en
Publication of JP2017073036A publication Critical patent/JP2017073036A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To resolve incompatibility in an application execution environment.SOLUTION: An information processing device for executing an application operating in a first execution environment, in a second execution environment being partially incompatible with the first execution environment includes: first storage means for storing a first library including a first class in the second execution environment incompatible with the first execution environment, and a second library including a second class for providing a function compatible with a class incompatible in the first execution environment in the second execution environment; and second storage means for storing an execution code and a manifest of an application set in the information processing device. The information processing device includes: determination means for determining the operation compatibility of the application in the second execution environment with reference to the manifest; rewrite means for rewriting the first class of an execution code of the application to the second class in the case that the application is determined to have no operation compatibility in the second execution environment; and execution control means for executing the execution code rewritten by the rewrite means in the second execution environment.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置におけるアプリケーションの管理技術に関するものである。   The present invention relates to an application management technique in an information processing apparatus.

従来、情報処理装置上でアプリケーションを実行する為の“アプリケーション実行環境”とそこで実行される“アプリケーション”においては、アプリケーションをアプリケーション実行環境に合わせて作成することが前提であった。一方、アプリケーション実行環境においては、挙動に関する問題や新たな機能に対応する必要性から新しいバージョンが市場に導入されることがある。その際、従来の挙動との互換性が一部失われる(非互換性)場合がある。このように非互換性を含んだ新しいバージョンのアプリケーション実行環境が導入される場合、アプリケーションにおいても、アプリケーション実行環境の変化に合わせた新しいバージョンが作成されるのが通例である。これにより、新しいバージョンのアプリケーションは、新しいバージョンのアプリケーション実行環境との組合せで不具合なく動作することが可能であった。   Conventionally, an “application execution environment” for executing an application on an information processing apparatus and an “application” executed there are based on the premise that the application is created in accordance with the application execution environment. On the other hand, in an application execution environment, a new version may be introduced to the market due to problems related to behavior and the necessity of dealing with new functions. At that time, a part of compatibility with the conventional behavior may be lost (incompatibility). When a new version of an application execution environment including incompatibility is introduced as described above, it is usual that a new version corresponding to a change in the application execution environment is also created in the application. As a result, the new version of the application can be operated without any problems in combination with the new version of the application execution environment.

しかしながら、近年では、アプリケーションの開発が大規模化し高コストとなってきている。その結果、非互換性を含んだ新しいバージョンのアプリケーション実行環境のが導入されたにも関わらず、それに沿った新しいバージョンのアプリケーションを作成するのが困難なケースがある。そこで、非互換性を含んだ新しいバージョンのアプリケーション実行環境においても既存のアプリケーションを不具合なく動作させることを実現する為の技術が提案されている。   However, in recent years, the development of applications has become large and costly. As a result, even though a new version of an application execution environment including incompatibility has been introduced, it may be difficult to create a new version of an application that conforms to the new version of the application execution environment. Therefore, a technique has been proposed for realizing the existing application to operate without any trouble even in a new version of the application execution environment including incompatibility.

例えば、特許文献1では、新しいバージョンのアプリケーション実行環境において、あらかじめ不具合を生ずる既存のアプリケーションの情報を保持するよう構成している。その上で、そのような既存のアプリケーションが読み込まれた時には、当該アプリケーションの起動前に当該アプリケーションと関連するアドレス空間に対してシムライブラリとフックライブラリを挿入する。フックライブラリは、アプリケーション中のどの位置に変更を導入すべきかの情報を有している。また、シムライブラリは、その位置に導入されるべき変更の内容を示す情報を有している。そして、当該アプリケーションの起動前に、これらのライブラリを参照して当該アプリケーションに導入する必要がある変更を特定し、特定された変更を導入する。これにより変更処理がなされたアプリケーションが起動されることになる。   For example, Patent Document 1 is configured to hold information on an existing application that causes a problem in advance in a new version application execution environment. In addition, when such an existing application is read, a shim library and a hook library are inserted into the address space associated with the application before the application is activated. The hook library has information on where in the application the change should be introduced. In addition, the shim library has information indicating the content of the change to be introduced at that position. Then, before the application is started, a change that needs to be introduced into the application is identified by referring to these libraries, and the identified change is introduced. As a result, the application having undergone the change process is started.

特許第4878715号公報Japanese Patent No. 4878715

しかしながら、上述の従来技術においては、アプリケーション実行環境は、予めどのアプリケーションが不具合を生ずるかについての情報を全て知っている必要があり、その情報をアプリケーション実行環境が予め保持する必要がある。また、アプリケーションを不具合なく実行するために、当該アプリケーションの実行に先立って上述の変更処理を行う必要がある。更に、上述のライブラリの挿入によりリソースが無駄に費やされることがある。そのため、リソース容量や実行速度についての制限が厳しい組み込み向けのアプリケーション実行環境においては上述の従来技術の適用は困難である。   However, in the conventional technique described above, the application execution environment, it is necessary to know all the information about what previously which application generated a problem, it is necessary that information application execution environment held in advance. In addition, in order to execute the application without any trouble, it is necessary to perform the above-described change process before executing the application. Furthermore, resources may be wasted due to the insertion of the library described above. Therefore, it is difficult to apply the above-described conventional technology in an embedded application execution environment in which restrictions on resource capacity and execution speed are severe.

本発明は、このような問題に鑑みてなされたものであり、アプリケーション実行環境における非互換性をより好適に解消可能とする技術を提供することを目的とする。   The present invention has been made in view of such a problem, and an object of the present invention is to provide a technique that can more suitably eliminate incompatibility in an application execution environment.

上述の問題点を解決するため、本発明に係る情報処理装置は以下の構成を備える。すなわち、第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置において、前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、前記情報処理装置にインストールされた前記アプリケーションの実行コードとマニフェストとを格納する第2の格納手段と、前記マニフェストを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定手段と、前記判定手段により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換手段と、前記書換手段による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御手段と、を有する。   In order to solve the above-described problems, an information processing apparatus according to the present invention has the following configuration. That is, in the information processing apparatus that executes an application assumed to operate in the first execution environment in the second execution environment that is at least partially incompatible with the first execution environment, the first execution A first library including a first class in the second execution environment that is incompatible with the environment and a function compatible with the incompatible class in the first execution environment are provided in the second execution environment. A first storage means for storing a second library including a second class; a second storage means for storing an execution code and a manifest of the application installed in the information processing apparatus; and the manifest The determination means for determining the operation compatibility of the application in the second execution environment, and the application by the determination means Rewriting means for rewriting the first class in the execution code of the application to the second class when it is determined that the application does not have operation compatibility in the second execution environment, and rewriting by the rewriting means Execution control means for executing the executed code executed in the second execution environment.

あるいは、第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置において、前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、前記情報処理装置にインストールされた前記アプリケーションの実行コードを格納する第2の格納手段と、前記実行コードに含まれる定数プールを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定手段と、前記判定手段により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換手段と、前記書換手段による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御手段と、を有する。   Alternatively, in the information processing apparatus that executes, in the second execution environment, at least partly incompatible with the first execution environment, the first execution, the application that is supposed to operate in the first execution environment A first library including a first class in the second execution environment that is incompatible with the environment and a function compatible with the incompatible class in the first execution environment are provided in the second execution environment. Included in the execution code, a first storage means for storing a second library including a second class, a second storage means for storing an execution code of the application installed in the information processing apparatus, A determination unit for determining operation compatibility of the application in the second execution environment with reference to the constant pool, and the application by the determination unit. A rewriting unit that rewrites the first class in the execution code of the application to the second class when it is determined that the application does not have operation compatibility in the second execution environment; and Execution control means for executing the rewritten execution code in the second execution environment.

本発明によれば、アプリケーション実行環境における非互換性をより好適に解消可能とする技術を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the technique which can eliminate the incompatibility in an application execution environment more suitably can be provided.

情報処理装置のハードウェア構成を例示的に示す図である。It is a figure which shows the hardware constitutions of information processing apparatus exemplarily. アプリケーション実行環境の構成を例示的に示す図である。It is a figure which shows the structure of an application execution environment as an example. 実行コード格納ファイル及びアプリケーションインストール用ファイルの構成を示す図である。It is a figure which shows the structure of the executable code storage file and the file for application installation. アプリケーションキャッシュの構成を示す図である。It is a figure which shows the structure of an application cache. マニフェストファイルを説明する図である。It is a figure explaining a manifest file. 実行コードファイルの構成を示す図である。It is a figure which shows the structure of an execution code file. 互換性追加ライブラリモジュールの構成を示す図である。It is a figure which shows the structure of a compatibility addition library module. アプリケーションのインストール処理のフローチャートである。It is a flowchart of an application installation process. 新バージョンのアプリケーション実行環境における初回起動時の動作フローチャートである。It is an operation | movement flowchart at the time of the first starting in the new version application execution environment. 互換性に関わる各クラスの内部構成を示す図である。It is a figure which shows the internal structure of each class in connection with compatibility. クラスフィールド及びインスタンスフィールドの構成を示す図である。It is a figure which shows the structure of a class field and an instance field. 第1実施形態に係る各クラスの動作フローチャートである。It is an operation | movement flowchart of each class which concerns on 1st Embodiment. 第2実施形態に係る各クラスの動作フローチャートである。It is an operation | movement flowchart of each class which concerns on 2nd Embodiment. 互換性の問題に関わる引数を説明する図である。It is a figure explaining the argument in connection with a compatibility problem. 第2実施形態におけるインストール処理のフローチャートである。It is a flowchart of the installation process in 2nd Embodiment. 第2実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。It is a flowchart of the process at the time of the first starting of the application execution environment in 2nd Embodiment. 第3実施形態におけるアプリケーションキャッシュの内部構成を示す図である。It is a figure which shows the internal structure of the application cache in 3rd Embodiment. 第3実施形態におけるインストール処理のフローチャートである。It is a flowchart of the installation process in 3rd Embodiment. 第3実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。It is a flowchart of the process at the time of the first starting of the application execution environment in 3rd Embodiment. アプリケーション実行環境の起動処理のフローチャートである。It is a flowchart of the starting process of an application execution environment. アプリケーション実行環境の終了処理のフローチャートである。It is a flowchart of the termination process of an application execution environment. 第4実施形態におけるアプリケーションキャッシュの内部構成を示す図である。It is a figure which shows the internal structure of the application cache in 4th Embodiment. 第4実施形態におけるインストール処理のフローチャートである。It is a flowchart of the installation process in 4th Embodiment. 第4実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。It is a flowchart of the process at the time of the first starting of the application execution environment in 4th Embodiment. アプリケーション実行環境の起動処理のフローチャートである。It is a flowchart of the starting process of an application execution environment.

以下に、図面を参照して、この発明の好適な実施の形態を詳しく説明する。なお、以下の実施の形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。   Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. The following embodiments are merely examples, and are not intended to limit the scope of the present invention.

(第1実施形態)
本発明に係る情報処理装置の第1実施形態として、アプリケーション実行環境をバージョンアップ可能な情報処理装置を例に挙げて以下に説明する。
(First embodiment)
As an information processing apparatus according to a first embodiment of the present invention, an information processing apparatus capable of upgrading an application execution environment will be described below as an example.

<装置構成>
図1は、情報処理装置のハードウェア構成を例示的に示す図である。情報処理装置(IPA:Information Processing Apparatus)102はネットワーク101を介して不図示の外部装置と通信可能に構成されている。
<Device configuration>
FIG. 1 is a diagram exemplarily showing a hardware configuration of an information processing apparatus. An information processing apparatus (IPA: Information Processing Apparatus) 102 is configured to be able to communicate with an external apparatus (not shown) via a network 101.

IPA102は、中央処理装置(CPU)110、ランダムアクセスメモリ(RAM)112、読み出し専用メモリ(ROM)113を含む。また、IPA102は、二次記憶装置接続インターフェース(I/F)114、二次記憶装置115、人間対話デバイス(HID)I/F116、HID117を含む。IPA102は、更に、ネットワークI/F118、入出力(I/O)ポート119、周辺装置120を含む。IPA102内の各部は、システムバス111を介して相互に接続される。また、ネットワークケーブル121は、ネットワークI/F118とネットワーク101を接続する。   The IPA 102 includes a central processing unit (CPU) 110, a random access memory (RAM) 112, and a read only memory (ROM) 113. The IPA 102 includes a secondary storage device connection interface (I / F) 114, a secondary storage device 115, a human interaction device (HID) I / F 116, and an HID 117. The IPA 102 further includes a network I / F 118, an input / output (I / O) port 119, and a peripheral device 120. Each unit in the IPA 102 is connected to each other via the system bus 111. The network cable 121 connects the network I / F 118 and the network 101.

<ソフトウェア構成>
図2Aは、アプリケーション実行環境(AppRE:Application Runtime Environment)の構成を例示的に示す図である。以下では、アプリケーションをAppと呼ぶ。
<Software configuration>
FIG. 2A is a diagram exemplarily showing a configuration of an application execution environment (AppRE: Application Runtime Environment). In the following, the application is called App.

AppRE200は、アプリケーション実行基盤(AppPF:Application Platform)201、アプリケーション管理フレームワーク(AppMFW:Application Management Framework)202、アプリケーションキャッシュ(AppCache:Application Cache)203を含む。   The AppRE 200 includes an application execution platform (AppPF: Application Platform) 201, an application management framework (AppMFW: Application Management Framework) 202, and an application cache (AppCache: Application Cache) 203.

AppPF201は、コード解釈実行モジュール(CIM:Code Interpreter Module)210、実行基盤ライブラリモジュール(PFLM:Platform Library Module)211、互換性追加ライブラリモジュール(CSLM:Compatibility Support Library Module)212を含む。CSLM212は、新バージョンのAppRE200に非対応であるAppの動作を補完する為のモジュールである。   The AppPF 201 includes a Code Interpreter Module (CIM) 210, a Platform Library Module (PFLM) 211, and a Compatibility Support Library Module (CSLM) 212. The CSLM 212 is a module for complementing App operations that are not compatible with the new version of the AppRE 200.

ここで、第1のクラス213は、PFLM211に含まれるクラスであり、AppRE200の旧バージョンとの間での互換性に関わる(すなわち、非互換である)クラスである。   Here, the first class 213 is a class included in the PFLM 211, and is a class related to compatibility with the old version of the AppRE 200 (that is, incompatible).

また、第2のクラス214は、CSLM212に含まれるクラスであり、AppRE200の旧バージョンと第1のクラス213と互換の機能を提供するクラスである。なお、第1のクラス213と第2のクラス214のペアは一組である必要はなく、複数組用意されることもある。   The second class 214 is a class included in the CSLM 212 and provides a function compatible with the old version of the AppRE 200 and the first class 213. The pair of the first class 213 and the second class 214 does not need to be one set, and a plurality of sets may be prepared.

AppMFW202は、アプリケーションインストール状態管理モジュール220、アプリケーション起動状態管理モジュール221、アプリケーションキャッシュ管理モジュール222、初回起動検知モジュール223を含む。   The AppMFW 202 includes an application installation state management module 220, an application activation state management module 221, an application cache management module 222, and an initial activation detection module 223.

アプリケーションインストール状態管理モジュール(AppDSMM:Application Deployment Status Manager Module)220は、Appのインストールおよびアンインストールを実行しAppのインストール状態を管理する。   An application installation status management module (AppDSMM: Application Deployment Status Manager Module) 220 executes installation and uninstallation of App, and manages the installation state of App.

アプリケーション起動状態管理モジュール221(AppISMM:Application Invocation Status Manager Module)は、Appの起動および停止を処理しAppの起動状態を管理する。   An application invocation status management module 221 (AppISMM: Application Invocation Status Manager Module) processes the activation and termination of App and manages the activation state of App.

アプリケーションキャッシュ管理モジュール(AppCMM:Application Cache Manager Module)222は、アプリケーションファイルセット(AppFS:Application File Set)をAppCache203へ展開し管理する。   An application cache management module (AppCMM: Application Cache Manager Module) 222 develops and manages an application file set (AppFS: Application File Set) in the AppCache 203.

初回起動検知モジュール(ISDM:Initial Startup Detection Module)223は、AppRE200全体が初めて起動されたことを検知する。アプリケーション用区画(AppSec:Application Section)230は、AppFSを展開する為の個別の区画である。Appは、ゼロ、1個、または複数個インストールされることができ、ここではN個のAppがインストールされている状態を図示している。これ以降、便宜上、アプリケーション1用区画をAppSec230−1、アプリケーション2用区画をAppSec230−2、アプリケーションN用区画をAppSec230−Nで表す。順序を特に指定せずAppSecを表す場合には単にAppSec230と表す。   An initial startup detection module (ISDM) 223 detects that the entire AppRE 200 has been started for the first time. An application section (AppSec: Application Section) 230 is an individual section for developing AppFS. App can be installed as zero, one, or plural, and here, N App is illustrated. Hereinafter, for convenience, the application 1 partition is represented by AppSec 230-1, the application 2 partition is represented by AppSec 230-2, and the application N partition is represented by AppSec 230-N. When AppSec is expressed without specifying the order, it is simply expressed as AppSec230.

図2Bは、AppRE200で使用される実行コード格納ファイル(ECAF:Executable Code Archive File)及びアプリケーションインストール用ファイル(AppIF:Application Installation File)の構成を示す図である。   FIG. 2B is a diagram showing a configuration of an executable code storage file (ECAF: Executable Code Archive File) and an application installation file (AppIF: Application Installation File) used in the AppRE 200.

ECAF204は、いくつかの実行コードファイル(EC:Executable Code File)を内包し、マニフェスト(MF:Manifest File)242を付与したものである。   The ECAF 204 includes several executable code files (EC: Executable Code File) and is given a manifest (MF: Manifest File) 242.

ECF241は、実際に実行されるべきプログラムコードを保持しているファイルである。一般的にこのファイルはソフトウェア的な単位であるクラスごとに1つのファイルになっている。一般的にECAFは1つまたは複数のECFを内包している。ここではX個のECFを内包している状態を図示している。以降便宜上、最初(1番目)のECFをECF241−1、2番目のECFをECF241−2、X番目のECFをECF241−Xで表す。順序を特に指定せずECAF204に格納されたECF一般を表す場合には単にECF241で表す。   The ECF 241 is a file that holds program code to be actually executed. Generally, this file is one file for each class which is a software unit. In general, an ECAF includes one or more ECFs. Here, a state in which X ECFs are included is illustrated. Hereinafter, for convenience, the first (first) ECF is represented by ECF 241-1, the second ECF is represented by ECF 241-2, and the X-th ECF is represented by ECF 241-X. When the ECF general stored in the ECAF 204 is expressed without specifying the order, it is simply expressed by the ECF 241.

AppIF205は、ECAF204と同じ構造をしている。AppIF205は、ECAFの中に別のECAF204を内包しているが、そのようなECAF204は許容される。ゆえにAppIF205はECAF204の一種である。   AppIF 205 has the same structure as ECAF 204. The AppIF 205 includes another ECAF 204 in the ECAF, but such ECAF 204 is allowed. Therefore, AppIF 205 is a kind of ECAF 204.

主実行コードファイル(M−ECF:Main Executable Code File)251は、Appの主たる実行コードを保持するファイルである。副実行コードファイル(SubECF:Subordinate Executable Code File)252は、主たる実行コード以外を保持するファイルである。M−ECF251およびSubECF252はECF241の一種である。AppIF205は、M−ECF251を1つしか保持しない。一方、AppIF205は、ゼロ、1個、または複数個のSubECF252を含み得る。ここではY個のSubECFを含んでいる状態を図示している。以降、便宜上、最初(1番目)のSubECFを252−1、2番目のSubECFを252−2、Y番目のSubECFを252−Yで表す。順序を特に指定せずSubECF一般を表す場合には単にSubECF252で表す。   A main execution code file (M-ECF) 251 is a file that holds the main execution code of App. The sub-executable code file (SubECF: Subordinate Executable Code File) 252 is a file that holds data other than the main execution code. M-ECF 251 and SubECF 252 are a kind of ECF241. The AppIF 205 holds only one M-ECF 251. On the other hand, AppIF 205 may include zero, one, or multiple SubECFs 252. Here, a state in which Y pieces of SubECFs are included is illustrated. Hereinafter, for convenience, the first (first) SubECF is represented by 252-1, the second SubECF is represented by 252-2, and the Yth SubECF is represented by 252-Y. When subECF in general is specified without specifying the order, it is simply expressed as SubECF252.

ライブラリ実行コード格納ファイル(LibECAF:Library ECAF)253は、M−ECF251およびSubECF252以外の実行コードを保持したECF241を格納しているECAF204に相当するものである。LibECAF253は、ゼロ、1個、または複数個含まれる。ここではZ個のLibECAFが含まれた状態を図示している。以降、LibECAF1を253−1、ライブラリ実行コード2を253−2、LibECAF・Zを253−Zで表す。順序を特に指定せずLibECAF一般を表す場合には単に253で表す。   A library execution code storage file (LibECAF) 253 corresponds to the ECAF 204 that stores the ECF 241 that holds execution codes other than the M-ECF 251 and the SubECF 252. Zero, one, or a plurality of LibECAFs 253 are included. Here, a state in which Z LibECAFs are included is illustrated. Hereinafter, LibECAF1 is represented by 253-1, library execution code 2 is represented by 253-2, and LibECAF · Z is represented by 253-Z. When the order is not specified and LibECAF in general is represented, it is simply represented by 253.

図2Cは、アプリケーションキャッシュの構成を示す図である。ここでは、AppRE200におけるAppCache203に1以上のAppが保持されている状態を図示している。AppCache203は二次記憶装置115上に確保されており、ここに、AppSec230が設定されている。   FIG. 2C is a diagram illustrating a configuration of the application cache. Here, a state where one or more App is held in AppCache 203 in AppRE 200 is illustrated. AppCache 203 is secured on the secondary storage device 115, and AppSec 230 is set here.

AppSec230は、インストールされるApp用に確保された領域である。AppFS231は、インストールされるAppのAppIF205から展開され配置される。AppFS231は、AppIF205および、LibECAF253−1からLibECAF253−Zまでを有する。LibECAF253はAppIF205から取り出されたものである。   AppSec 230 is an area reserved for the App to be installed. The AppFS 231 is expanded and arranged from the AppIF 205 of the App to be installed. AppFS 231 has AppIF205 and LibECAF253-1 to LibECAF253-Z. LibECAF253 is taken out from AppIF205.

図2Dは、マニフェストファイルを説明する図である。ここでは、AppRE200におけるMF242の内容を例示的に示している。   FIG. 2D is a diagram illustrating a manifest file. Here, the contents of the MF 242 in the AppRE 200 are exemplarily shown.

項目260は、MF242に含まれている項目の例を示しており、項目名261、項目の値262を含む。MF242は、1つまたは複数の項目を保持することができる。AppRE200内では、AppMFW202は、ECAF204について、項目名を指定することにより項目の値を取り出すことが可能なようになっている。例えばこの図の例で言えば、“Manifest−Version”を指定すると“x.x”が取得できるなどである。このような項目と値の組み合わせはAppの開発の過程において決定され、AppIF231が作成される際に、開発者がそれぞれECAF204のMF242に値を記載する。   An item 260 shows an example of an item included in the MF 242, and includes an item name 261 and an item value 262. The MF 242 can hold one or more items. In the AppRE 200, the AppMFW 202 can extract the value of an item by specifying an item name for the ECAF 204. For example, in the example of this figure, “x.x” can be acquired by specifying “Manifest-Version”. Such combinations of items and values are determined in the course of App development, and when the AppIF 231 is created, the developer writes values in the MF242 of the ECAF 204, respectively.

図2Eは、実行コードファイルの構成を示す図である。ここでは、AppRE200におけるECF241の内部構成を示している。   FIG. 2E is a diagram showing a configuration of an execution code file. Here, the internal configuration of the ECF 241 in AppRE 200 is shown.

マジックナンバー271は、ECF241を識別する為に用いられる。バージョン272は、ECF241のバージョンである。定数プール(CP:Constant Pool)273は、ゼロ、1個、または複数の定数定義275を含む。ここでは一例としてM個の定数定義が置かれている状態を図示している。定数定義275は、定数記述子276及び定数値277を含む。ここでは便宜的に、定数定義1を定数定義275−1、定数記述子1を定数記述子276−1、すなわち定数値1を定数値277−1と表す。同様に、定数定義2を定数定義275−2、定数記述子2を定数記述子276−2、定数値2を定数値277−2と表す。定数定義一般を表す場合には275と表し、定数記述子一般を表す場合には276と表し、定数値一般を表す場合には277と表す。コード記述部分(CB:Code Body)274は、実行コードの本体であるコードを記述する。   The magic number 271 is used for identifying the ECF 241. Version 272 is a version of ECF241. A constant pool (CP) 273 includes zero, one, or a plurality of constant definitions 275. Here, as an example, a state in which M constant definitions are placed is illustrated. The constant definition 275 includes a constant descriptor 276 and a constant value 277. Here, for convenience, constant definition 1 is represented as constant definition 275-1, constant descriptor 1 is represented as constant descriptor 276-1, that is, constant value 1 is represented as constant value 277-1. Similarly, constant definition 2 is represented as constant definition 275-2, constant descriptor 2 is represented as constant descriptor 276-2, and constant value 2 is represented as constant value 277-2. When the constant definition is general, it is expressed as 275, when the constant descriptor is general, it is expressed as 276, and when the constant value is general, it is expressed as 277. A code description part (CB: Code Body) 274 describes a code which is a body of an execution code.

図2Fは、互換性追加ライブラリモジュールの構成を示す図である。ここでは、AppRE200におけるCSLM212の内部構成を示している。   FIG. 2F is a diagram illustrating a configuration of a compatibility-added library module. Here, the internal configuration of the CSLM 212 in the AppRE 200 is shown.

CSLM212は、1つまたは複数の互換性追加LibECAF281から構成されている。ここでは一例としてQ個の互換性追加LibECAFが存在するところを図示している。ここでは、最初(1番目)の互換性追加LibECAFをLibECAF281−1、2番目の互換性追加LibECAFをLibECAF281−2、Q番目の互換性追加LibECAFをLibECAF281−Qと表す。互換性追加LibECAF一般を表す場合には互換性追加LibECAF281と表す。   The CSLM 212 is composed of one or more compatibility added LibECAFs 281. Here, as an example, a place where there are Q compatibility-added LibECAFs is illustrated. Here, the first (first) compatibility added LibECAF is represented as LibECAF 281-1, the second compatibility added LibECAF is represented as LibECAF 281-2, and the Qth compatibility added LibECAF is represented as LibECAF 281-Q. When general compatibility added LibECAF is expressed, it is expressed as compatibility additional LibECAF281.

<インストール処理の動作>
図3は、アプリケーションのインストール処理のフローチャートである。すなわち、AppRE200におけるAppMFW202がAppのインストールを実施する際のフローチャートである。
<Operation of the installation process>
FIG. 3 is a flowchart of application installation processing. That is, this is a flowchart when the AppMFW 202 in the AppRE 200 performs the installation of App.

ステップS301では、AppMFW202は、処理を開始する。ステップS302では、AppDSMM220は、ユーザーによりライセンスファイル(LF:License File)が指定されているかどうかを判定する。指定されていない場合にはステップS306へ進む。指定されている場合にはステップS303へ進む。   In step S301, the AppMFW 202 starts processing. In step S302, the AppDSMM 220 determines whether a license file (LF) is specified by the user. If not specified, the process proceeds to step S306. If so, the process proceeds to step S303.

ステップS303では、AppDSMM220は、Appをインストールしようとする利用者によって指定されたAppIF205を読み込む。この場合AppIF205はライセンス処理されている為、AppDSMM220は利用者によって指定されたLFを読み込み、AppIF205を復元する。復元の後ステップS307へ進む。   In step S303, the AppDSMM 220 reads the AppIF 205 designated by the user who intends to install App. In this case, since the AppIF 205 has been licensed, the AppDSMM 220 reads the LF designated by the user and restores the AppIF 205. After restoration, the process proceeds to step S307.

ステップS306では、AppMFW202は、AppIF205を読み込む。完了したらステップS307へ進む。ステップS307では、AppMFW202は、AppCache203にAppFS231を配置する為のAppSec230を作成し、AppIF205をAppSec230に配置する。またAppIF205からLibECAF253を取り出しAppSec230に配置する。   In step S306, the AppMFW 202 reads the AppIF 205. If completed, the process proceeds to step S307. In step S307, the AppMFW 202 creates an AppSec 230 for placing the AppFS 231 in the AppCache 203, and places the AppIF 205 in the AppSec 230. Also, the LibECAF 253 is taken out from the AppIF 205 and placed in the AppSec 230.

ステップS311では、AppMFW202は、AppIF205のMF242にAppRE200の新バージョン対応を示す記述があるかをチェックする。すなわち、動作互換性を判定する。ここでは、MFの“X−OsNameCompliance”という項目の値が“1”であるかどうかをチェックしている。その値が“1”であれば、AppIF205は新バージョン対応である。“1”以外の値であった場合、および“X−OsNameCompliance”という項目自体が存在しない場合については対応の記述がないものとして扱う。AppIF205が新バージョン対応である、ということは含まれているM−ECF251、SubECF252が新バージョン対応である、ということを意味する。対応の記述がない場合にはステップS312へ進む。MF242に対応の記述がある場合にはステップS318へ進む。   In step S <b> 311, the AppMFW 202 checks whether the MF242 of the AppIF 205 has a description indicating correspondence with the new version of the AppRE 200. That is, the operation compatibility is determined. Here, it is checked whether the value of the item “X-OsNameCompliance” of the MF is “1”. If the value is “1”, the AppIF 205 is compatible with the new version. When the value is other than “1” and when the item “X-OsNameCompliance” itself does not exist, it is treated as having no corresponding description. The fact that AppIF 205 is compatible with the new version means that the included M-ECF 251 and SubECF 252 are compatible with the new version. If there is no corresponding description, the process proceeds to step S312. If the MF 242 has a corresponding description, the process proceeds to step S318.

ステップS312では、AppDSMM220は、AppIF205からM−ECF251を取り出す。ステップS313では、AppDSMM220は、M−ECF251のCP273を順番にチェックする。そして、CP273に第1のクラス213のクラス名が存在するかどうかを判定する。存在する場合にはステップS314へ進む。存在しない場合にはステップS316へ進む。   In step S312, the AppDSMM 220 extracts the M-ECF 251 from the AppIF 205. In step S313, the AppDSMM 220 checks the CP 273 of the M-ECF 251 in order. Then, it is determined whether or not the class name of the first class 213 exists in the CP 273. When it exists, it progresses to step S314. If not, the process proceeds to step S316.

ステップS314では、AppDSMM220は、M−ECF251の第1のクラス213のクラス名を含んだ定数定義275を新たな値に書き換える。新たな値として第2のクラス214のクラス名を用いる。例えば、ここで第1のクラス213のクラス名が“legacy.class.System”である場合には、互換性を維持する為に用意する第2のクラス214のクラス名を“inheritclass.System”のように定める。これら二つのクラス名は文字列長が一致するように定めておく。また第2のクラス214のクラス名はAppPF201のPFLM211にすでに存在するクラス名と衝突しないように定めておく。このような第1のクラス213と第2のクラス214の組み合わせが複数ある場合にはこれらの全ての組み合わせにういて同様に処理する。書き換えた後、AppDSMM220は、定数値277を書き換えたM−ECF251をAppIF205内のものと置き換える。   In step S314, the AppDSMM 220 rewrites the constant definition 275 including the class name of the first class 213 of the M-ECF 251 with a new value. The class name of the second class 214 is used as a new value. For example, when the class name of the first class 213 is “legacy.class.System”, the class name of the second class 214 prepared for maintaining compatibility is “inheritclass.System”. Determine as follows. These two class names are determined so that the character string lengths match. The class name of the second class 214 is determined so as not to collide with the class name already existing in the PFLM 211 of the AppPF 201. When there are a plurality of such combinations of the first class 213 and the second class 214, the same processing is performed for all of these combinations. After rewriting, the AppDSMM 220 replaces the M-ECF 251 in which the constant value 277 is rewritten with the one in the AppIF 205.

ステップS316では、AppDSMM220は、SubECF252があれば、それら全てに対して、ここまでにM−ECF251に施した処理と同じ処理を施す。すなわち、CP273に第1のクラス213のクラス名の定数値277が存在する場合には第2のクラス214のクラス名に書き換える。書き換えが行われた場合には書き換えたSubECF252でAppIF205の中のものを置き換える。全てのSubECF252に対するCP273のチェックと必要な置き換え処理を完了したら、ステップS318へ進む。   In step S316, if there is a SubECF 252, the AppDSMM 220 performs the same processing as that performed on the M-ECF 251 so far. That is, when the constant value 277 of the class name of the first class 213 exists in the CP 273, it is rewritten with the class name of the second class 214. When rewriting is performed, the rewritten SubECF 252 is replaced with the one in the AppIF 205. When the check of the CP 273 and the necessary replacement processing for all the SubECFs 252 are completed, the process proceeds to step S318.

ステップS318では、AppDSMM220は、LibECAF253があれば、その最初(1番目)のファイルであるLibECAF253−1のMF242を参照する。そして、MF242にAppRE200の新バージョン対応を示す記述があるかをチェックする。あればステップS324へ進み、なければステップS319へ進む。   In step S318, if there is the LibECAF 253, the AppDSMM 220 refers to the MF 242 of the LibECAF 253-1 that is the first (first) file. Then, it is checked whether or not the MF 242 has a description indicating correspondence with the new version of the AppRE 200. If there is, the process proceeds to step S324, and if not, the process proceeds to step S319.

ステップS319では、AppDSMM220は、LibECAF253−1からECF241−1を取り出す。そして続くステップS320にて、ECF241−1のCP273を順番にチェックする。そして、CP273に第1のクラス213のクラス名が存在するかどうかを判定する。ある場合にはステップS321へ進む。ない場合にはステップS323へ進む。   In step S319, the AppDSMM 220 takes out the ECF 241-1 from the LibECAF 253-1. In subsequent step S320, the CPs 273 of the ECF 241-1 are checked in order. Then, it is determined whether or not the class name of the first class 213 exists in the CP 273. If there is, the process proceeds to step S321. If not, the process proceeds to step S323.

ステップS321では、AppDSMM220は、ECF241−1のCP273内の第1のクラス213のクラス名を、第2のクラス214のクラス名に書き換える。そして書き換えたECF241−1をLibECAF253−1の中のものと置き換える。   In step S321, the AppDSMM 220 rewrites the class name of the first class 213 in the CP 273 of the ECF 241-1 with the class name of the second class 214. Then, the rewritten ECF 241-1 is replaced with the one in the LibECAF 253-1.

ステップS323では、AppDSMM220は、LibECAF253−1に含まれる他のECF241があればそれらに対して同様の処理を施す。全てのECF241に対して処理が終わったらステップS324へ進む。   In step S323, the AppDSMM 220 performs the same processing on any other ECF 241 included in the LibECAF 253-1. When the process is completed for all the ECFs 241, the process proceeds to step S 324.

ステップS324では、LibECAF253−1に施したのと残る全てのLibECAFについて処理を行い、全て終わったらステップS325へ進み処理を終了する。   In step S324, processing is performed for all of the remaining LibECAF applied to LibECAF 253-1. When all the processing is completed, the process proceeds to step S325 to end the processing.

<初回起動時の動作>
図4は、新バージョンのアプリケーション実行環境における初回起動時の動作フローチャートである。ここでは、AppRE200のAppMFW202が、更新後の初回起動時に実施するアップグレード処理のフローチャートである。
<Operation at first startup>
FIG. 4 is an operation flowchart at the first activation in the new version application execution environment. Here, it is a flowchart of the upgrade process executed by AppMFW 202 of AppRE 200 at the first activation after the update.

第1の実行環境であるAppRE200の旧バージョンが存在しており、すでに旧バージョンにおいて(すなわち、第1の実行環境上で)動作することが想定された複数のAppがインストールされた状態で稼働していることが想定する。そのようなAppRE200の旧バージョン(第1の実行環境)が更新され新バージョン(第2の実行環境)に移行した時に、新バージョン上で初めて起動された時に実行される処理について述べる。ステップS401では、AppMFW202は、処理を開始する。   An old version of AppRE 200 that is the first execution environment exists, and it operates in a state in which a plurality of App that are already assumed to operate in the old version (that is, on the first execution environment) are installed. Assuming that A process that is executed when the AppRE 200 is started for the first time when the old version (first execution environment) of the AppRE 200 is updated and shifted to the new version (second execution environment) will be described. In step S401, the AppMFW 202 starts processing.

ステップS402では、AppCMM221は、AppCache203上にすでにAppSec230が存在しているかどうかを判定する。なければステップS412へ進む。ある場合にはステップS403へ進む。   In step S <b> 402, the AppCMM 221 determines whether the AppSec 230 already exists on the AppCache 203. If not, the process proceeds to step S412. If there is, the process proceeds to step S403.

ステップS403では、AppMFW202は、AppSec230−1上のAppIF205のMF242を参照する。ステップS404では、AppMFW202は、MF242に新バージョンに対応していることを示す記述が含まれているかどうかを判定する。含まれている場合にはステップS408へ進む。含まれていなければステップS405へ進む。   In step S403, the AppMFW 202 refers to the MF242 of the AppIF 205 on the AppSec 230-1. In step S404, the AppMFW 202 determines whether or not the MF 242 includes a description indicating that it corresponds to the new version. If it is included, the process proceeds to step S408. If not included, the process proceeds to step S405.

ステップS405では、AppDSMM220は、図3で示したインストール時の処理と同様に、M−ECF251のCP273をチェックする。そして第1のクラス213のクラス名が存在しているかを判定する。ある場合には第2のクラス214のクラス名に書換え、AppIF205の中のものと置換する。ステップS406では、AppDSMM220は、SubECF252についても同様の処理を行う。   In step S405, the AppDSMM 220 checks the CP 273 of the M-ECF 251 as in the installation process shown in FIG. Then, it is determined whether the class name of the first class 213 exists. In some cases, it is rewritten with the class name of the second class 214 and replaced with the one in AppIF 205. In step S <b> 406, the AppDSMM 220 performs the same process for the SubECF 252.

ステップS404もしくはステップS406からステップS408へ進むと、AppSec230−1に配置されているLibECAF253があれば、最初(1番目)のファイルであるLibECAF253−1のMF242を参照する。MF242に新バージョン対応の記述があればステップS410へ進む。なければステップS409へ進む。   When the process proceeds from step S404 or step S406 to step S408, if there is a LibECAF 253 arranged in AppSec 230-1, the MF 242 of the LibECAF 253-1 that is the first (first) file is referred to. If there is a description corresponding to the new version in MF242, the process proceeds to step S410. If not, the process proceeds to step S409.

ステップS409では、AppDSMM220は、LibECAF253−1に含まれるECF241のCP273のチェックを行う。そして必要があれば、それぞれについて第1のクラス213のクラス名から第2のクラス214のクラス名への書換えを実施する。それらECF241の処理が全て完了したらステップS410へ進む。   In step S409, the AppDSMM 220 checks the CP 273 of the ECF 241 included in the LibECAF 253-1. If necessary, rewriting from the class name of the first class 213 to the class name of the second class 214 is performed for each. When all the processes of the ECF 241 are completed, the process proceeds to step S410.

ステップS410では、AppDSMM220は、LibECAF253−2からLibECAF253−Zが存在すれば、それらについて、LibECAF253−1と同様の処理を行う。残りのLibECAF253について処理が全て完了したら、ステップS411へ進む。   In step S410, if there is LibECAF253-2 to LibECAF253-Z, AppDSMM 220 performs the same processing as LibECAF253-1. When all the processing is completed for the remaining LibECAF 253, the process proceeds to step S411.

ステップS411では、AppCMM221は、AppCache203にAppSec230−2からAppSec230−Nが存在しているかをチェックする。存在していれば、それらについても同様の処理を行う。ECF241およびLibECAF253についての処理が全て完了したらステップS412へ進み処理を完了する。   In step S411, the AppCMM 221 checks whether AppSec230-2 to AppSec230-N exist in the AppCache 203. If they exist, the same processing is performed for them. When all the processes for the ECF 241 and the LibECAF 253 are completed, the process proceeds to step S412 to complete the process.

図5Aは、互換性に関わる各クラスの内部構成を示す図である。ここでは、AppRE200の互換性に関わる第1のクラス213および第2のクラス214の内部構成を示している。   FIG. 5A is a diagram illustrating an internal configuration of each class related to compatibility. Here, the internal configurations of the first class 213 and the second class 214 related to the compatibility of the AppRE 200 are shown.

第1のクラス213に備わるクラスフィールド(CFld:Class Field)500は、ゼロ、1個もしくは複数個存在する。ここでは一例としてP個のCFldが存在する状態を図で示している。最初(1番目)のCFldをCFld500−1と表す。同様に、2番目のCFldをCFld500−2、P番目のCFldをCFld500−Pと表す。順序に関係なくCFldを表す場合には単にCFld500と表す。   There are zero, one, or a plurality of class fields (CFld: Class Field) 500 included in the first class 213. Here, as an example, a state where P CFlds are present is illustrated. The first (first) CFld is represented as CFld500-1. Similarly, the second CFld is represented as CFld500-2, and the Pth CFld is represented as CFld500-P. When CFld is expressed regardless of the order, it is simply expressed as CFld500.

第1のクラス213に備わるインスタンスフィールド(IFld:Instance Field)501も、ゼロ、1個または複数個存在する。ここでは一例としてQ個のIFldが存在する状態を図で示している。最初(1番目)のIFldをIFld501−1と表す。同様に、2番目のIFldをIFld501−2、Q番目のIFldをIFld501−Qと表す。順序に関係なくIFldを表す場合には単にIFld501と表す。   There are zero, one, or a plurality of instance fields (IFld: Instance Field) 501 provided in the first class 213. Here, as an example, a state where Q IFlds are present is illustrated. The first (first) IFld is represented as IFld501-1. Similarly, the second IFld is represented as IFld501-2 and the Qth IFld is represented as IFld501-Q. When IFld is expressed regardless of the order, it is simply expressed as IFld501.

第1のクラス213に備わるクラスメソッド(CMthd:Class Method)502も、ゼロ、1個または複数個存在する。ここでは一例としてR個のCMthdが存在する状態を図で示している。最初(1番目)のCMthdをCMthd502−1と表す。同様に、2番目のCMthdをCMthd502−2、R番目のCMthdをCMthd502−Rと表す。順序に関係なくCMthdを表す場合には単にCMthd502と表す。   There are zero, one, or a plurality of class methods (CMthd: Class Method) 502 provided in the first class 213. Here, as an example, a state in which R CMthd exists is shown in the figure. The first (first) CMthd is represented as CMthd 502-1. Similarly, the second CMthd is represented as CMthd502-2, and the Rth CMthd is represented as CMthd502-R. When CMthd is expressed regardless of the order, it is simply expressed as CMthd502.

第1のクラス213に備わるインスタンスメソッド(IMthd:Instance Method)503も、ゼロ、1個または複数個存在する。ここでは一例としてS個のIMthdが存在する状態を図で示している。最初(1番目)のIMthdをIMthd503−1と表す。同様に、2番目のIMthdをIMthd503−2、S番目のIMthdをIMthd503−Sと表す。順序に関係なくIMthdを表す場合には単にIMthd503と表す。   There are zero, one, or a plurality of instance methods (IMthd: Instance Method) 503 provided in the first class 213. Here, as an example, a state in which S IMthd exists is illustrated. The first (first) IMthd is represented as IMthd503-1. Similarly, the second IMthd is represented as IMthd503-2 and the Sth IMthd is represented as IMthd503-S. When IMthd is expressed regardless of the order, it is simply expressed as IMthd503.

第2のクラス214は、第1のクラス213と同数のCFldを備える。第2のクラス214の最初(1番目)のCFldを同様にCFld510−1で表す。2番目以降のCFldも同様にCFld510−2からCFld510−Pと表す。順序に関係なく第2のクラス214のCFldを表す場合は単にCFld510と表す。ここで、第2のクラス214の各CFldは外部参照の為の定義が第1のクラス213のもの一致するように用意されている。IFld、CMthd、IMthdについても同様である。   The second class 214 includes the same number of CFlds as the first class 213. Similarly, the first (first) CFld of the second class 214 is represented by CFld510-1. Similarly, the second and subsequent CFlds are also represented as CFld510-2 to CFld510-P. When the CFld of the second class 214 is expressed regardless of the order, it is simply expressed as CFld510. Here, each CFld of the second class 214 is prepared so that the definition for external reference matches that of the first class 213. The same applies to IFld, CMthd, and IMthd.

図5Bは、クラスフィールド及びインスタンスフィールドの構成を示す図である。ここでは、AppRE200の第2のクラス214のCFld510およびIFld511の値の定義のパターンを示している。   FIG. 5B is a diagram showing the configuration of the class field and the instance field. Here, the definition pattern of the values of CFld510 and IFld511 of the second class 214 of AppRE200 is shown.

第2のクラス214のa番目のCFldであるCFld510−aは、互換性に影響しないCFldである。すなわち第1のクラス213に属する対応するCFld500−aと同一の値のままでよいCFldであるとする。この場合、CFld510−aの値はCFld500−aの値をそのまま参照する。これによりAppがCFld510−aを参照すると、常にCFld500−aと同一の値が得られることとなる。   The CFld 510-a that is the a-th CFld of the second class 214 is a CFld that does not affect compatibility. That is, it is assumed that the CFld may remain the same value as the corresponding CFld500-a belonging to the first class 213. In this case, the value of CFld510-a refers to the value of CFld500-a as it is. Thus, when App refers to CFld 510-a, the same value as CFld 500-a is always obtained.

一方、第2のクラス214のb番目のCFldであるCFld510−bは互換性に影響する。そのため、第1のクラス213の対応するCFld500−bの値とは異なる値を保持する必要がある。独自定義値521は、この場合のCFldCFld510−bの値として定義される。これにより、AppがCFld510−bを参照すると、独自定義値521が得られることとなる。IFldについても同様である。   On the other hand, CFld 510-b, which is the b-th CFld of the second class 214, affects compatibility. Therefore, it is necessary to hold a value different from the value of the corresponding CFld500-b of the first class 213. The uniquely defined value 521 is defined as the value of CFldCFld510-b in this case. Thus, when App refers to CFld 510-b, the uniquely defined value 521 is obtained. The same applies to IFld.

<クラスメソッド実行時の動作>
図6は、第1実施形態に係る各クラスの動作フローチャートである。ここでは、AppRE200の第2のクラス214におけるCMthd512の動作を示している。
<Operation when class method is executed>
FIG. 6 is an operation flowchart of each class according to the first embodiment. Here, the operation of CMthd 512 in the second class 214 of AppRE 200 is shown.

CMthd512−eは互換性に影響しないCMthdである。すなわち第1のクラス213に属する対応するCMthd502−eと同じ振る舞いをするべきCMthdであるとする。CMthd512−eは次のような処理を実施する。   CMthd 512-e is CMthd that does not affect compatibility. That is, it is assumed that the CMthd should behave the same as the corresponding CMthd 502-e belonging to the first class 213. The CMthd 512-e performs the following processing.

AppRE200に保持されているいずれかのAppが、第1のクラス213のCMthd502−eを呼び出すようプログラミングされているとする。そこでAppのCMthd502−eを呼び出すコードを含んでいるECF241が、図3もしくは図4に示した処理によりCP273に書かれた第1のクラス213のクラス名を書き換えられているとする。ここでECF241とは、M−ECF251、SubECF252、もしくはLibECAF253に含まれるもののいずれかである。この時ECF241におけるCMthd502−eの呼び出しは、クラス名が第2のクラス214のクラス名に書き換えられていることによりCMthd512−eの呼び出しに変わっている。これによりCIM210はECFの実行コードを解釈実行する際に、CMthd512−eの呼び出しを処理する。   Assume that any App held in AppRE 200 is programmed to call CMthd 502-e of the first class 213. Accordingly, it is assumed that the ECF 241 including the code for calling the CMthd 502-e of App has rewritten the class name of the first class 213 written in the CP 273 by the processing shown in FIG. 3 or FIG. Here, the ECF 241 is one included in the M-ECF 251, the SubECF 252, or the LibECAF 253. At this time, the call of CMthd 502-e in the ECF 241 is changed to the call of CMthd 512-e because the class name is rewritten to the class name of the second class 214. As a result, the CIM 210 processes the call to CMthd 512-e when interpreting and executing the ECF execution code.

ステップS601では、CIM210は、処理を開始する。すなわち、Appの実行制御を開始する。ステップS602では、CIM210は、CMthd502−eを、CMthd512−eに渡された引数があればそれを渡して呼び出す。ステップS603にてCMthd502−eの戻り値を、CMthd512−eの戻り値として返す。そして、ステップS604へ進んで処理を完了する。処理が完了するとCIM210は、呼び出し元へ戻って処理を続行する。   In step S601, the CIM 210 starts processing. That is, App execution control is started. In step S602, the CIM 210 calls the CMthd 502-e, passing any argument passed to the CMthd 512-e. In step S603, the return value of CMthd 502-e is returned as the return value of CMthd 512-e. Then, the process proceeds to step S604 to complete the process. When the process is completed, the CIM 210 returns to the caller and continues the process.

これらの処理により、AppのCMthd512−eの呼び出し処理は、第1のクラス213のCMthd502−eを呼び出したのと等価となり、Appの動作に影響を与えることはない。   With these processes, the call process of App's CMthd 512-e is equivalent to calling the CMthd 502-e of the first class 213, and does not affect the operation of App.

一方、CMthd512−fは互換性に影響し、第1のクラス213に属する対応するCMthd502−fとは異なる、AppRE200の旧バージョンが返すのと同じ値を返す必要があるとする。この場合、CMthd512−fは次のような処理を実施する。   On the other hand, it is assumed that CMthd 512-f affects compatibility and needs to return the same value as the previous version of AppRE 200, which is different from the corresponding CMthd 502-f belonging to the first class 213. In this case, the CMthd 512-f performs the following processing.

ここでもAppのCMthd502−fを呼び出すコードを含んだECF241が、図3もしくは図4に示した処理によりCP273に書かれた第1のクラス213のクラス名を書き換えられているとする。この時ECF241におけるCMthd502−fの呼び出しはCMthd512−fの呼び出しに変わっている。これによりCIM210は、ECFの実行コードを解釈実行する際に、CMthd512−fの呼び出しを処理する。   Also here, it is assumed that the ECF 241 including the code for calling the App CMthd 502-f has the class name of the first class 213 written in the CP 273 rewritten by the processing shown in FIG. 3 or FIG. At this time, the call of CMthd502-f in ECF241 is changed to the call of CMthd512-f. As a result, the CIM 210 processes the call to CMthd512-f when interpreting and executing the ECF execution code.

ステップS611では、CIM210は、処理を開始する。ステップS612では、CIM210は、引数があれば、渡された引数の値が互換性に関わる引数の値の範囲に含まれているかどうかを判定する。含まれている場合にはステップS615へ進む。それ以外の場合はステップS613へ進む。   In step S611, the CIM 210 starts processing. In step S612, if there is an argument, the CIM 210 determines whether or not the passed argument value is included in the argument value range related to compatibility. If it is included, the process proceeds to step S615. Otherwise, the process proceeds to step S613.

ステップS613では、互換性に問題がない為、CIM210は、CMthd502−fを、CMthd512−fに渡された引数があればその引数を渡して呼び出す。ステップS614でCMthd502−fが戻り値として返してきた値を、戻り値として返し、ステップS617へ進み処理を完了する。   In step S613, since there is no problem in compatibility, the CIM 210 calls the CMthd 502-f by passing the argument passed to the CMthd 512-f, if any. The value returned as the return value by CMthd 502-f in step S614 is returned as the return value, and the process proceeds to step S617 to complete the process.

一方、ステップS615へ進んだ場合には、CIM210は、AppRE200の旧バージョンが返すのと同じ値を返すように、独自の処理を行い、戻り値を算出する。ステップS616では、CIM210は、算出された戻り値をCMthd512−fの戻り値として返す。そしてステップS617へ進み処理を完了する。   On the other hand, when the process proceeds to step S615, the CIM 210 performs an original process so as to return the same value as that returned by the old version of the AppRE 200, and calculates a return value. In step S616, the CIM 210 returns the calculated return value as the return value of the CMthd 512-f. Then, the process proceeds to step S617 to complete the process.

第2のクラス214のIMthd513の動作のパターンについても、CMthd512の動作と基本的に同様であるため詳細な説明は省略する。   The operation pattern of the IMthd 513 of the second class 214 is basically the same as the operation of the CMthd 512, and thus detailed description thereof is omitted.

これらの処理により、CMthd512−fが呼び出されることがAppRE200の旧バージョンにおいて第1のクラス213のCMthd502−fの呼び出しと等価となる。IMthd503−hとIMthd513−hの関係でも同様である。これによりAppRE200が新バージョンであることにより発生する第1のクラス213の互換性に関わる問題は、Appの動作に影響を与えないことになる。   With these processes, calling CMthd512-f is equivalent to calling CMthd502-f of the first class 213 in the old version of AppRE200. The same applies to the relationship between IMthd503-h and IMthd513-h. As a result, the problem related to the compatibility of the first class 213 generated when the AppRE 200 is the new version does not affect the operation of the App.

以上説明したとおり第1実施形態によれば、AppRE200は、互換性に関わる第1のクラス213のクラス名が書かれたECF241を書き換える。そして書き換えたECF241をECAF204もしくはAppIF205の中のものと置き換える。これらクラス名の書き換え処理やECFの置き換え処理は、Appのインストール処理もしくは、新バージョンのAppRE200の初回起動時に実施される。この為、Appが実際に解釈実行される時にはAppの実行に大きな影響を与えることはない。   As described above, according to the first embodiment, the AppRE 200 rewrites the ECF 241 in which the class name of the first class 213 related to compatibility is written. Then, the rewritten ECF 241 is replaced with the one in the ECAF 204 or AppIF 205. The class name rewriting process and the ECF replacement process are performed when the App is installed or when the new version of the AppRE 200 is started for the first time. For this reason, when App is actually interpreted and executed, it does not significantly affect the execution of App.

また、第1実施形態では、第2のクラス214を含んだCSLM212が追加されるだけでありAppREにおいて互換性の為に費やされるモジュールの占有する容量も少ない。また書き換えられるのは互換性に関わる第1のクラス213のクラス名が書かれた定数定義275の定数値277領域だけである。すなわち余分なリソース容量を費やすことがない。   Further, in the first embodiment, only the CSLM 212 including the second class 214 is added, and the capacity occupied by the module for compatibility in the AppRE is small. Also, only the constant value 277 area of the constant definition 275 in which the class name of the first class 213 related to compatibility is rewritten. That is, no extra resource capacity is consumed.

これらの特性により、第1実施形態に係るAppRE200は、リソースの容量や実行速度についての制限が厳しい組込向けのAppRE200である場合にも好適に適用可能である。   Due to these characteristics, the AppRE 200 according to the first embodiment can be suitably applied even when the AppRE 200 is a built-in AppRE 200 in which restrictions on resource capacity and execution speed are severe.

(第2実施形態)
第2実施形態では、MF242を参照し、新バージョンに対応するという記述が含まれているかをチェックする替わりに、ECF241のCP273に含まれる値のみで判定を行う。
(Second Embodiment)
In the second embodiment, the MF 242 is referred to, and instead of checking whether a description corresponding to the new version is included, the determination is performed using only the value included in the CP 273 of the ECF 241.

第1実施形態においては、AppIF205およびECAF204について、そのMF242をチェックしている。MF242にAppRE200の新バージョンに対応する記述があるかを判定し、あるのであれば、ECF241の書き換えは必要ないと判断している。しかしMF242に新バージョンに対応する記述を追加するのは開発者による為、開発者にとっては負担である。更に開発者のヒューマンエラーにより記述が漏れてしまうことがあり得る。その場合、実際にはAppが新バージョンに対応しているにも関わらず、ECF241の書き換えが発生してしまう。すると、本来第2のクラス214を経由する必要はないにも関わらず、常に第2のクラス214を経由してしまい、パフォーマンスに悪影響を与えてしまうという可能性が生じる。   In the first embodiment, the MF 242 of the AppIF 205 and the ECAF 204 is checked. It is determined whether the MF 242 has a description corresponding to the new version of AppRE 200. If there is a description, it is determined that rewriting of the ECF 241 is not necessary. However, since it is up to the developer to add a description corresponding to the new version to MF242, it is a burden on the developer. Furthermore, the description may be leaked due to a human error of the developer. In that case, although the App actually corresponds to the new version, rewriting of the ECF 241 occurs. Then, although it is not necessary to pass through the second class 214, there is a possibility that it will always pass through the second class 214 and adversely affect performance.

<クラスメソッド実行時の動作>
図7は、第2実施形態に係る各クラスの動作フローチャートである。ここでは、第2のクラス214におけるCMthd512−fおよびIMthd513−hの処理を示している。以下の説明においては、第1実施形態(図6)に対して差異のある部分についてのみ説明する。またここで提示されている図7の処理の内容は、図6の処理の内容のうち特別なケースに相当する。
<Operation when class method is executed>
FIG. 7 is an operation flowchart of each class according to the second embodiment. Here, the processes of CMthd 512-f and IMthd 513-h in the second class 214 are shown. In the following description, only parts that are different from the first embodiment (FIG. 6) will be described. Further, the contents of the processing of FIG. 7 presented here correspond to a special case among the contents of the processing of FIG.

CMthd512−fの処理を行う中で、ステップS612において、引数が互換性に関わる範囲に含まれている場合にはステップS801へ進む。   During the process of CMthd512-f, if the argument is included in the range related to the compatibility in step S612, the process proceeds to step S801.

ステップS801では、CIM210は、互換性の為に用意されたCMthd512−fに渡された引数の値に対応する別の値を引数としてCMthd502−fを呼び出す。   In step S801, the CIM 210 calls the CMthd 502-f with another value corresponding to the argument value passed to the CMthd 512-f prepared for compatibility as an argument.

ステップS802では、CIM210は、CMthd502−fの呼び出しから戻ってきた戻り値を受け取り、それをCMthd512−fの戻り値として返す。そしてステップS617へ進んで終了する。   In step S802, the CIM 210 receives a return value returned from the call of CMthd 502-f, and returns it as a return value of CMthd 512-f. Then, the process proceeds to step S617 and ends.

また、IMthd513−hの処理を行う中で、ステップS632において、引数が互換性に関わる範囲に含まれている場合にはステップS811へ進む。   Further, during the process of IMthd513-h, if the argument is included in the range related to the compatibility in step S632, the process proceeds to step S811.

ステップS811では、CIM210は、互換性の為に用意されたIMthd513−hに渡された引数の値に対応する別の値を引数としてIMthd503−hを呼び出す。   In step S811, the CIM 210 calls IMthd503-h with another value corresponding to the value of the argument passed to IMthd513-h prepared for compatibility as an argument.

ステップS812では、CIM210は、IMthd503−hの呼び出しから戻ってきた戻り値を受け取り、それをIMthd513−hの戻り値として返す。そしてステップS637へ進んで終了する。   In step S812, the CIM 210 receives the return value returned from the call of IMthd503-h, and returns it as the return value of IMthd513-h. Then, the process proceeds to step S637 and ends.

図8は、互換性の問題に関わる引数を説明する図である。特に、ここで問題になっている引数の値の一例を示している。   FIG. 8 is a diagram for explaining arguments related to the compatibility problem. In particular, an example of the argument value in question here is shown.

第1のクラス213が“legacy.class.System”であるとする。AppRE200の旧バージョンでは、第1のクラス213の“get()”というCMthdに対して“legacy.prop”という文字列を与えることによりAppが必要な値を獲得していた。以下“legacy.prop”という文字列を“非互換引数A”と呼ぶ。   Assume that the first class 213 is “legacy.class.System”. In the old version of AppRE 200, App obtains a necessary value by giving a character string “legacy.prop” to CMthd “get ()” of the first class 213. Hereinafter, the character string “legacy.prop” is referred to as “incompatible argument A”.

一方、AppRE200の新バージョンでは、非互換引数Aを“get()”に与えると旧バージョンで得られたものと全く違う値が返ってくるようになっている。その代わりに、AppRE200の新バージョンでは “alternative.prop”という文字列を用意する。以下“alternative.prop”という文字列を“互換引数B”と呼ぶ。Appは“get()”に対して互換引数Bを与えることにより、従来は非互換引数Aにより得られていた値を得ることができるようになった。このように、App自身が互換引数Bを使用するように構成されている場合には、AppRE200のバージョンに関する互換性の問題を回避できる。しかしApp自身がこのような処理に対応していない場合には、第1のクラス213のクラス名から第2のクラス214のクラス名への書き換えが必要である。   On the other hand, in the new version of AppRE 200, when an incompatible argument A is given to “get ()”, a value completely different from that obtained in the old version is returned. Instead, the new version of AppRE 200 prepares a character string “alternative.prop”. Hereinafter, the character string “alternative.prop” is referred to as “compatible argument B”. App can obtain the value obtained by the incompatible argument A in the past by giving the compatible argument B to “get ()”. Thus, when the App itself is configured to use the compatibility argument B, the compatibility problem regarding the version of the AppRE 200 can be avoided. However, when App itself does not support such processing, it is necessary to rewrite the class name of the first class 213 to the class name of the second class 214.

ここでAppRE200はCSLM212に含まれる第2のクラス214である“inheritclass.System”を用意している。この第2のクラス214のクラス名は第1のクラス213の“get()”に対応するCMthdである“get()”を保持している。そして、この第2のクラス214の“get()”に非互換引数Aという文字列を引き渡すと、必要な値を得ることができる。すなわち、旧バージョンにおいて第1のクラス213の“get()”に非互換引数Aという文字列を引き渡した時に得られる値と同じ値が得られるようになっている。   Here, the AppRE 200 prepares “inheritclass.System” which is the second class 214 included in the CSLM 212. The class name of the second class 214 holds “get ()” which is CMthd corresponding to “get ()” of the first class 213. Then, when a character string called the incompatible argument A is passed to “get ()” of the second class 214, a necessary value can be obtained. That is, in the old version, the same value as that obtained when the character string “incompatible argument A” is delivered to “get ()” of the first class 213 is obtained.

旧バージョンと同じ動作を期待するAppは、AppMFW202によって実行コード241を書き換えられた場合のことを考える。Appにおいて第1のクラス213の“get()”を呼び出していたコードは、第2のクラス214の“get()”を呼び出すように変更される。すると非互換引数Aに対して、Appが期待していた値Aが返ってくる。これにより互換性が保たれる。   An App that expects the same operation as the previous version considers a case where the execution code 241 is rewritten by the AppMFW 202. The code that was calling “get ()” of the first class 213 in App is changed to call “get ()” of the second class 214. Then, the value A expected by App is returned for the incompatible argument A. This maintains compatibility.

一方、すでに新バージョンのAppRE200に対応済みのAppは第1のクラス213の“get()”に対して互換引数Bを引き渡すことで互換性を確保している。すると、そのようなAppのECF241では互換引数Bが文字列定数として保持されることになる。従って、CP273に第1のクラス213のクラス名があっても互換引数Bの文字列が保持されているECF241は書き換える必要がないことが分かる。一方、CP273に第1のクラス213のクラス名があり、更に文字列定数として互換引数Bを持っていないECF241はクラス名の書き換えが必要であることになる。   On the other hand, App already compatible with the new version of AppRE 200 ensures compatibility by passing the compatibility argument B to “get ()” of the first class 213. Then, in such an ECF 241 of App, the compatible argument B is held as a character string constant. Therefore, it can be seen that even if the CP 273 has the class name of the first class 213, it is not necessary to rewrite the ECF 241 in which the character string of the compatible argument B is held. On the other hand, the CP 273 has the class name of the first class 213 and the ECF 241 that does not have the compatible argument B as a character string constant needs to be rewritten.

<インストール処理の動作>
図9は、第2実施形態におけるインストール処理のフローチャートである。ここでは、AppRE200のAppMFW202が、Appをインストールする処理を示している。以下の説明では第1実施形態(図3)に対して差異のある部分についてのみ説明する。
<Operation of the installation process>
FIG. 9 is a flowchart of the installation process in the second embodiment. Here, AppMFW 202 of AppRE 200 shows processing for installing App. In the following description, only parts that are different from the first embodiment (FIG. 3) will be described.

ステップS313では、AppMFW202は、CP273に第1のクラス213のクラス名を表す定数値277が存在するかチェックする。ある場合にはステップS1001へ進む。なければステップS1002へ進む。ステップS1001では、AppMFW202は、CP273に互換性に関わる第1のクラス213のメソッド703に渡される引数を表すような定数値277が存在しているかをチェックする。なければステップS314へ進む。あればステップS1002へ進む。ステップS314では、AppMFW202は、CP273内の第1のクラス213のクラス名を第2のクラス214のクラス名に書き換える。その後ステップS1002へ進む。   In step S313, the AppMFW 202 checks whether a constant value 277 representing the class name of the first class 213 exists in the CP 273. If there is, the process proceeds to step S1001. If not, the process proceeds to step S1002. In step S <b> 1001, the AppMFW 202 checks whether there is a constant value 277 representing an argument passed to the method 703 of the first class 213 related to compatibility with the CP 273. If not, the process proceeds to step S314. If there is, the process proceeds to step S1002. In step S314, the AppMFW 202 rewrites the class name of the first class 213 in the CP 273 with the class name of the second class 214. Thereafter, the process proceeds to step S1002.

ステップS313、ステップS1001、あるいはステップS314からステップS1002に到達すると、AppMFW202は、SubECF252についても順に同様の処理を行う。全てのSubECF252について処理が完了したらステップS319へ進む。   When the process reaches step S1002 from step S313, step S1001, or step S314, AppMFW 202 performs the same processing for the SubECF 252 in order. When the process is completed for all the SubECFs 252, the process proceeds to step S 319.

ステップS319では、AppMFW202は、LibECAF253−1からECF241−1を取り出す。ステップS320では、AppMFW202は、ECF241−1のCPに第1のクラス213のクラス名があるかをチェックする。あればステップS1003へ進む。なければステップS1004へ進む。ステップS1003では、AppMFW202は、ここで問題となっている互換性に関わる第1のクラス213のメソッド703に渡される引数を表すような定数値277がCP273内に存在しているかをチェックする。なければステップS321へ進む。ある場合にはステップS1004へ進む。ステップS321では、AppMFW202は、CP273内の第1のクラス213のクラス名を第2のクラス214のクラス名に書き換える。その後ステップS1004へ進む。   In step S319, the AppMFW 202 extracts the ECF 241-1 from the LibECAF 253-1. In step S320, the AppMFW 202 checks whether the CP of the ECF 241-1 has the class name of the first class 213. If there is, the process proceeds to step S1003. If not, the process proceeds to step S1004. In step S1003, the AppMFW 202 checks whether a constant value 277 representing an argument to be passed to the method 703 of the first class 213 related to the compatibility in question here exists in the CP 273. If not, the process proceeds to step S321. If there is, the process proceeds to step S1004. In step S321, the AppMFW 202 rewrites the class name of the first class 213 in the CP 273 with the class name of the second class 214. Thereafter, the process proceeds to step S1004.

ステップS320、ステップS1003、ステップS321からステップS1004へ進んできたら、ステップS1004では、AppMFW202は、同様の処理を、2番目のECFであるECF241−2からX番目のECFであるECF241−Xまで施す。残りの全てのECF241について処理が完了したら処理はステップS1005へ進む。   After proceeding from step S320, step S1003, and step S321 to step S1004, in step S1004, AppMFW 202 performs the same processing from ECF 241-2 that is the second ECF to ECF 241-X that is the Xth ECF. When the process is completed for all remaining ECFs 241, the process proceeds to step S1005.

ステップS1005では、AppMFW202は、LibECAF253−2からLibECAF253−Zまでについて、LibECAF253−1と同様の処理を行う。すべてのLibECAF253の処理が完了したらステップS325へ進み、処理を完了する。   In step S1005, AppMFW 202 performs the same processing as LibECAF253-1, from LibECAF253-2 to LibECAF253-Z. When the processing of all LibECAF 253 is completed, the process proceeds to step S325, and the processing is completed.

<初回起動時の動作>
図10は、第2実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。ここでは、AppRE200のAppMFW202が、更新後の初回起動時に実施するアップグレード処理を示している。以下の説明では第1実施形態(図4)に対して差異のある部分のみ説明する。
<Operation at first startup>
FIG. 10 is a flowchart of the process at the first activation of the application execution environment in the second embodiment. Here, the upgrade process executed by the AppMFW 202 of the AppRE 200 at the first activation after the update is shown. In the following description, only differences from the first embodiment (FIG. 4) will be described.

ステップS402では、AppMFW202は、AppCache203上にすでにAppSec230が存在するかどうかをチェックする。なければステップS412へ進み、あればステップS1101へ進む。   In step S <b> 402, the AppMFW 202 checks whether the AppSec 230 already exists on the AppCache 203. If not, the process proceeds to step S412, and if there is, the process proceeds to step S1101.

ステップS1101では、AppMFW202は、AppSec230−1に配置されたAppIF205を参照する。ステップS1102では、AppMFW202は、AppIF205に含まれるM−ECF251について、図9で示したインストールの処理時にECF241に対して行ったのと同様の処理を行う。   In step S1101, the AppMFW 202 refers to the AppIF 205 arranged in the AppSec 230-1. In step S1102, the AppMFW 202 performs a process similar to that performed on the ECF 241 during the installation process illustrated in FIG. 9 for the M-ECF 251 included in the AppIF 205.

ステップS1103では、AppMFW202は、AppIF205のSubECF252が存在すれば、それらに順番に、同様の処理を施す。全てのSubECF252に対する処理が完了したらステップS1104へ進む。   In step S1103, if there is a SubECF 252 of the AppIF 205, the AppMFW 202 performs the same processing on the AppIF 205 in order. When the processing for all the SubECFs 252 is completed, the process proceeds to step S1104.

ステップS1104では、AppMFW202は、AppSec230−1に配置されたLibECAF253−1が存在すればそれを参照する。ステップS1105では、AppMFW202は、LibECAF253−1に含まれるECF241のそれぞれについて、同様の処理を実施する。全てのECF241について処理が完了したらステップS1106へ進む。   In step S1104, the AppMFW 202 refers to the LibECAF 253-1 arranged in the AppSec 230-1 if it exists. In step S1105, the AppMFW 202 performs the same processing for each of the ECFs 241 included in the LibECAF 253-1. When the process is completed for all the ECFs 241, the process proceeds to step S 1106.

ステップS1106では、AppMFW202は、更に、AppSec230−1にLibECAF253−2からLibECAF253−Yが存在すれば、同様の処理を行う。全てのLibECAF253について処理が完了したらステップS1107へ進む。   In step S1106, the AppMFW 202 performs the same process if the LibECAF 253-2 to the LibECAF 253-Y exist in the AppSec 230-1. When the process is completed for all the LibECAFs 253, the process proceeds to step S1107.

ステップS1107では、AppMFW202は、AppSec230−2からAppSec230−Nが存在すれば、そこに展開されているAppFS231について同様の処理を行う。更にAppFS231に展開されているLibECAF253についても、含まれているECF241に対して同様の処理を行う。AppMFW202は、展開されている全てのAppSec230に対して処理が完了したらステップS412へ進み処理を完了する。   In step S1107, if there is AppSec 230-2 to AppSec 230-N, AppMFW 202 performs the same processing for AppFS 231 expanded there. Further, the same processing is performed on the included ECF 241 with respect to the LibECAF 253 deployed in the AppFS 231. When the AppMFW 202 completes the processing for all the deployed AppSecs 230, the process proceeds to step S412 to complete the processing.

以上説明したとおり第2実施形態によれば、AppRE200は、ECF241のCP273に含まれる値に基づいてECF241書き換えを行うか否かを判定する。これにより、あるAppがAppRE200の新バージョンに対する対応を行ったかどうかを、開発者が意識してMF242に値を記載する必要がない。これにより、開発者の負担が軽減される。また、開発者が誤ってMF242に新バージョン対応の記述を追加することを忘れた場合にも、対応済のECF241についての無駄な書き換えを抑止できる。   As described above, according to the second embodiment, the AppRE 200 determines whether to rewrite the ECF 241 based on the value included in the CP 273 of the ECF 241. Thereby, it is not necessary for the developer to write a value in the MF 242 with awareness of whether a certain App has responded to the new version of the AppRE 200. This reduces the developer's burden. In addition, even if the developer forgets to add a description corresponding to the new version to the MF 242, it is possible to suppress unnecessary rewriting of the already-corresponding ECF 241.

(第3実施形態)
第3実施形態では、書き換える前のECF241を維持する形態について説明する。実際の運用においては、AppRE200を新バージョンに切り替えた後、IPA102の処理能力等の問題で旧バージョンのAppRE200に戻す場合がある。このような場合第1及び第2実施形態においては、ECF241は新バージョンとの互換性のために書き換えられていることから、旧バージョンのAppRE200では正常に動作しない場合がある。
(Third embodiment)
In the third embodiment, a mode for maintaining the ECF 241 before rewriting will be described. In actual operation, after switching the AppRE 200 to the new version, there are cases where it is returned to the old version of the AppRE 200 due to a problem such as the processing capability of the IPA 102. In such a case, in the first and second embodiments, since the ECF 241 is rewritten for compatibility with the new version, the old version of the AppRE 200 may not operate normally.

そこで、第3実施形態では、書き換える前のECF241を維持する構成について説明する。一般に、AppRE200の新バージョンから旧バージョンへの切り替えの際にはIPA102のシャットダウンと起動が行われる。そこで、IPA102のシャットダウン時において、次回のIPA102の起動時にAppRE200が旧バージョンに戻っていても問題がないようにする構成する。具体的には、シャットダウン時に、次回にAppを実行する際に書き換え前のECF241を保持したECAF204が実行される状態に変更する。一方で、新バージョンのAppRE200は、起動時に、次回にAppを実行する際に書き換え後のECF241を保持したECAF204が実行される状態に変更する。これにより、AppRE200が旧バージョンに戻された際にも問題なくAppが実行されるようにする。   Therefore, in the third embodiment, a configuration for maintaining the ECF 241 before rewriting will be described. In general, the IPA 102 is shut down and activated when switching from the new version of the AppRE 200 to the old version. Therefore, when the IPA 102 is shut down, there is no problem even if the AppRE 200 returns to the previous version when the IPA 102 is started next time. Specifically, at the time of shutdown, the ECAF 204 holding the ECF 241 before rewriting is changed to the state in which the ECF 241 before rewriting is executed next time. On the other hand, the new version of the AppRE 200 changes to a state in which the ECAF 204 holding the rewritten ECF 241 is executed when the App is executed next time at the time of activation. As a result, App can be executed without any problem even when the AppRE 200 is returned to the previous version.

図11は、第3実施形態におけるアプリケーションキャッシュの内部構成を示す図である。ここでは、AppCache203の内容を示している。   FIG. 11 is a diagram illustrating an internal configuration of an application cache according to the third embodiment. Here, the contents of AppCache 203 are shown.

複製AppIF1401は、AppIF205の保持しているECF251及びECF252に対して書き換えを行った場合に、その書き換えたファイルを格納する為に作成されたAppIFの複製である。複製LibECAF1402は、LibECAF253の保持しているECF241に対して書き換えを行った場合に、その書き換えたファイルを格納する為に作成されたLibECAFの複製である。すなわち、AppCache203の一部区画は複製格納手段として機能する。   The copy AppIF 1401 is a copy of AppIF created to store the rewritten file when the ECF 251 and the ECF 252 held by the AppIF 205 are rewritten. The copy LibECAF 1402 is a copy of the LibECAF created to store the rewritten file when the ECF 241 held by the LibECAF 253 is rewritten. That is, a part of the AppCache 203 functions as a copy storage unit.

なお、図では複製AppIF1401及び複製LibECAF1402がそれぞれのECF241に対応して存在するように示しているが、実際にはこれらは書き換えが発生した場合にのみ作成されるものである。またECAF204の名称変更は複製AppIF1401及び複製LibECAF1402が作成された場合にのみ行われるものである。   In the figure, the duplicate AppIF 1401 and the duplicate LibECAF 1402 are shown to exist corresponding to the respective ECFs 241, but in actuality, these are created only when rewriting occurs. The name change of the ECAF 204 is performed only when the copy AppIF 1401 and the copy LibECAF 1402 are created.

もともとはAppFS231にはAppIF205とLibECAF253が格納されている。第3実施形態では、AppMFW202が各ECAF204に含まれるECF241を書き換えることがある。それらを書き換えた場合に、それをECAF204の複製(すなわち書換え前、置換前のECAF204)を作成しそちらの元のファイルと置き換える。すなわち、そのような場合にはAppIF205の複製である複製AppIF1401や、LibECAFの複製である複製LibECAF1402が作成される。   Originally, AppIF 205 and LibECAF 253 are stored in AppFS 231. In the third embodiment, the AppMFW 202 may rewrite the ECF 241 included in each ECAF 204. When they are rewritten, a copy of ECAF 204 (that is, ECAF 204 before rewriting and before replacement) is created and replaced with the original file. That is, in such a case, a duplicate AppIF 1401 that is a duplicate of AppIF 205 and a duplicate LibECAF 1402 that is a duplicate of LibECAF are created.

そしてこのような複製AppIF1401及び複製LibECAF1402を作成する場合には元のECAF204を別名に名称変更する。その上でこれら元のECAF204に付与されていた元の名称を複製AppIF1401及び複製LibECAF1402に与える。   When such a duplicate AppIF 1401 and a duplicate LibECAF 1402 are created, the original ECAF 204 is renamed to another name. After that, the original names given to these original ECAFs 204 are given to the duplicate AppIF 1401 and the duplicate LibECAF 1402.

<インストール処理の動作>
図12は、第3実施形態におけるインストール処理のフローチャートである。ここでは、AppRE200のAppMFW202が、Appをインストールする処理を示している。以下の説明においては、第1実施形態(図3)に対すて差異のある部分についてのみ説明する。
<Operation of the installation process>
FIG. 12 is a flowchart of the installation process in the third embodiment. Here, AppMFW 202 of AppRE 200 shows processing for installing App. In the following description, only the parts that differ from the first embodiment (FIG. 3) will be described.

ステップS313では、AppMFW202は、CP273に第1のクラス213のクラス名があるかをチェックする。ある場合にはステップS313へ進む。ない場合にはステップS1503へ進む。ステップS314では、AppMFW202は、M−ECF251のCP273内の第1のクラス213のクラス名を第2のクラス214のクラス名に書き換える。   In step S313, the AppMFW 202 checks whether the CP 273 has the class name of the first class 213. If there is, the process proceeds to step S313. If not, the process proceeds to step S1503. In step S <b> 314, the AppMFW 202 rewrites the class name of the first class 213 in the CP 273 of the M-ECF 251 with the class name of the second class 214.

ステップS1501では、AppMFW202は、AppIF205の名称を変更する。その上で、AppIF205の複製AppIF1401をAppIF205に与えられていた名称で作成する。そして書き換えたM−ECF251を、AppIFの複製1401の中の元のファイルと置き換える。   In step S1501, the AppMFW 202 changes the name of the AppIF 205. Then, a duplicate AppIF 1401 of AppIF 205 is created with the name given to AppIF 205. Then, the rewritten M-ECF 251 is replaced with the original file in the AppIF copy 1401.

ステップS313もしくはステップS1501からステップS1503へ進むと、AppMFW202は、SubECF252についても同様の処理を行う。全てのSubECF252について処理が完了したらステップS318へ進む。   When the process proceeds from step S313 or step S1501 to step S1503, the AppMFW 202 performs the same process for the SubECF 252. When the process is completed for all the SubECFs 252, the process proceeds to step S 318.

ステップS320では、AppMFW202は、最初(1番目)のECFであるECF241−1のCP273に第1のクラス213のクラス名が存在するかをチェックする。存在する場合にはステップS321へ進む。なければステップS1506へ進む。   In step S320, the AppMFW 202 checks whether the class name of the first class 213 exists in the CP 273 of the ECF 241-1 that is the first (first) ECF. If it exists, the process proceeds to step S321. If not, the process proceeds to step S1506.

ステップS321では、AppMFW202は、ECF241−1のCP273の第1のクラス213のクラス名を第2のクラス214のクラス名へ書き換えたら、ステップS1504へ進む。   In step S321, when the AppMFW 202 rewrites the class name of the first class 213 of the CP 273 of the ECF 241-1 to the class name of the second class 214, the process proceeds to step S1504.

ステップS1504では、AppMFW202は、LibECAF253−1の名称を変更し、その上でLibECAF253−1の元の名称で複製LibECAF1402−1を作成する。その後書き換えを行ったECF241−1で、複製LibECAF1402−1の中のファイルを置き換える。   In step S1504, the AppMFW 202 changes the name of the LibECAF 253-1 and creates a duplicate LibECAF 1402-1 with the original name of the LibECAF 253-1. Thereafter, the rewritten ECF 241-1 replaces the file in the duplicate LibECAF 1402-1.

ステップS320もしくはステップS1504からステップS1506へ進むと、AppMFW202は、LibECAF253−1に含まれる残りのECF253があれば、それらについて同様の処理を行う。全てのLibECAF253について処理が完了したらステップS1507へ進む。   When the process proceeds from step S320 or step S1504 to step S1506, the AppMFW 202 performs the same processing for any remaining ECFs 253 included in the LibECAF 253-1. When the processing is completed for all the LibECAFs 253, the process proceeds to step S1507.

ステップS318もしくはステップS1506からステップS1507へ進むと、AppMFW202は、LibECAF253−2からLibECAF253−Zについても同様の処理を実行する。これらの処理を全てのLibECAF253に対して実行し終わったらステップS325へ進み処理を完了する。   When the process proceeds from step S318 or step S1506 to step S1507, the AppMFW 202 executes the same processing for the LibECAF 253-2 to the LibECAF 253-Z. When these processes have been executed for all LibECAFs 253, the process proceeds to step S325 to complete the processes.

<初回起動時の動作>
図13は、第3実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。ここでは、AppRE200のAppMFW202が、更新後の初回起動時に実施するアップグレード処理を示している。以下では、第1実施形態(図4)との差異がある部分についてのみ説明する。
<Operation at first startup>
FIG. 13 is a flowchart of the process at the first activation of the application execution environment in the third embodiment. Here, the upgrade process executed by the AppMFW 202 of the AppRE 200 at the first activation after the update is shown. Below, only the part which has a difference with 1st Embodiment (FIG. 4) is demonstrated.

ステップS404では、AppMFW202は、AppIF205のMF242に新バージョン対応の記述があるか否かをチェックし、あればステップS408へ進む。なければステップS1601へ進む。   In step S404, the AppMFW 202 checks whether there is a description corresponding to the new version in the MF242 of the AppIF 205, and if so, the process proceeds to step S408. If not, the process proceeds to step S1601.

ステップS1601では、AppMFW202は、M−ECF251のCP273に第1のクラス213のクラス名が含まれているかをチェックする。含まれている場合には文字列を第2のクラス214のクラス名に書き換える。そしてAppIF205の名称を変更する。そしてAppIF205の元の名称で、AppIF205の複製である複製AppIF1401を作成する。そして複製AppIF1401に含まれるM−ECF251を書き換えたものと置き換える。   In step S1601, the AppMFW 202 checks whether the CP 273 of the M-ECF 251 includes the class name of the first class 213. If it is included, the character string is rewritten with the class name of the second class 214. Then, the name of AppIF 205 is changed. A copy AppIF 1401 that is a copy of AppIF 205 is created with the original name of AppIF 205. Then, the M-ECF 251 included in the duplicate AppIF 1401 is replaced with a rewritten one.

ステップS1602では、AppMFW202は、SubECF252があれば、それらに対して同様の処理を行う。全てのSubECF252の処理が完了したらステップS408へ進む。   In step S1602, if there is the SubECF 252, the AppMFW 202 performs the same process on the SubECF 252. When the processing of all the SubECFs 252 is completed, the process proceeds to step S408.

ステップS408では、AppMFW202は、LibECAF253−1のMF242に新バージョン対応の記述があるかどうかをチェックする。ある場合にはステップS1604へ進む。ない場合にはステップS1603へ進む。   In step S408, the AppMFW 202 checks whether there is a description corresponding to the new version in the MF242 of the LibECAF 253-1. If there is, the process proceeds to step S1604. If not, the process proceeds to step S1603.

ステップS1603では、AppMFW202は、LibECAF253−1に含まれるECF241のそれぞれについて、同様の処理を実行する。LibECAF253−1に含まれる全てのECF241について処理が完了したらステップS1604へ進む。   In step S1603, the AppMFW 202 performs the same process for each of the ECFs 241 included in the LibECAF 253-1. When the process is completed for all the ECFs 241 included in the LibECAF 253-1, the process advances to step S1604.

ステップS1604では、AppMFW202は、AppSec230−1に配置されている他のLibECAFがあればそれらに対して同様の処理を行う。AppSec230−1に配置されたLibECAF253全ての処理が完了したらステップS1605へ進む。   In step S1604, if there is another LibECAF arranged in AppSec 230-1, the AppMFW 202 performs the same process on them. When the processing of all the LibECAFs 253 arranged in the AppSec 230-1 is completed, the process proceeds to step S1605.

ステップS1605では、AppMFW202は、他のAppSec230が存在すればそれらAppSec230−2からAppSec230−Nまでについて同様の処理を行う。これらの処理を全てのAppSec230に対して実行し終わったらステップS412へ進み処理を完了する。   In step S1605, if there is another AppSec 230, the AppMFW 202 performs the same process from AppSec 230-2 to AppSec 230-N. When these processes are completed for all AppSecs 230, the process proceeds to step S412 to complete the process.

<起動処理時の動作>
図14は、アプリケーション実行環境の起動処理のフローチャートである。ここでは、AppRE200の起動時にAppMFW202が実行する処理を示している。AppRE200およびAppMFW202は他にも起動時に実行する処理を備えているが、ここでは第3実施形態に関わる部分だけを抜き出したものを示している。AppRE200は、通常はIPA102に電源が投入された際にその起動処理の一環として起動される。ただし、場合によっては利用者の手動、もしくはAppRE200自身の再起動が必要な状況に置いて自動的に起動されることがあり得る。ステップS1701から処理を開始する。
<Operation during startup processing>
FIG. 14 is a flowchart of activation processing of the application execution environment. Here, a process executed by the AppMFW 202 when the AppRE 200 is activated is shown. The AppRE 200 and the AppMFW 202 have other processes that are executed at the time of startup, but only the part related to the third embodiment is shown here. The AppRE 200 is normally activated as part of its activation process when the IPA 102 is powered on. However, in some cases, it may be automatically started in a situation where the user needs to manually restart the AppRE 200 itself. The process starts from step S1701.

ステップS1702では、AppMFW202は、AppCache203にAppSec230が作成されているかどうかをチェックする。なければステップS1707へ進む。作成されていればステップS1703へ進む。   In step S1702, the AppMFW 202 checks whether the AppSec 230 has been created in the AppCache 203. If not, the process proceeds to step S1707. If it has been created, the process advances to step S1703.

ステップS1703では、AppMFW202は、AppSec230−1の中に存在するファイル205及び253の中に、複製AppIF1401及び複製LibECAF1402を有するファイルがあるかどうかをチェックする。存在していればステップS1704へ進む。いなければステップS1705へ進む。   In step S1703, the AppMFW 202 checks whether there are any files having the duplicate AppIF 1401 and the duplicate LibECAF 1402 in the files 205 and 253 existing in the AppSec 230-1. If it exists, the process proceeds to step S1704. If not, the process proceeds to step S1705.

ステップS1704では、AppMFW202は、複製AppIF1401及び複製LibECAF1402が存在するファイルについて、元のファイル名称で存在している元のファイル205及びファイル253を別の名称に名称変更する。そしてそれらに対応する複製AppIF1401及び複製LibECAF1402を、それらの元のファイルにつけられていたファイル名に名称変更する。   In step S1704, the AppMFW 202 renames the original file 205 and the file 253 existing under the original file names to different names for the files where the duplicate AppIF 1401 and the duplicate LibECAF 1402 exist. Then, the names of the duplicate AppIF 1401 and the duplicate LibECAF 1402 corresponding to them are renamed to the file names assigned to the original files.

ステップS1705では、AppMFW202は、残りのAppSec230が存在すればそれらに対しても同様の処理を行う。   In step S1705, if there is a remaining AppSec 230, the AppMFW 202 performs the same process on the remaining AppSec 230.

ステップS1706では、AppMFW202は、Appをそれぞれ起動する。ステップS1707では、AppMFW202は、処理が完了する。   In step S1706, the AppMFW 202 activates each App. In step S1707, the AppMFW 202 completes the process.

<終了処理時の動作>
図15は、アプリケーション実行環境の終了処理のフローチャートである。ここでは、AppRE200の終了時にAppMFW202が実行する処理を示している。AppRE200およびAppMFW202は他にも終了時に実行する処理を備えているが、ここでは第3実施形態に関わる部分だけを抜き出したものを示している。AppRE200は、通常はIPA102に対して電源断処理が実施された際にその電源断(シャットダウン)処理の一環として終了する。ただし、場合によっては利用者の手動、もしくはAppRE200自身の再起動が必要な状況に置いて自動的に終了することがあり得る。ステップS1801では、AppMFW202は、処理を開始する。
<Operation during termination processing>
FIG. 15 is a flowchart of the termination process of the application execution environment. Here, a process executed by the AppMFW 202 when the AppRE 200 ends is shown. The AppRE 200 and the AppMFW 202 include other processes that are executed at the end of the process. Here, only the part related to the third embodiment is extracted. The AppRE 200 normally ends as part of the power-off (shutdown) process when the power-off process is performed on the IPA 102. However, depending on the case, it may be automatically terminated in a situation where the user needs to manually restart the AppRE 200 itself. In step S1801, the AppMFW 202 starts processing.

ステップS1802では、AppMFW202は、全てのAppの終了処理が完了するのを待つ。ステップS1803では、AppMFW202は、AppCache203に作成されたAppSec230が存在するかをチェックする。存在していなければステップS1807へ進む。存在していればステップS1804へ進む。   In step S1802, the AppMFW 202 waits for completion of all App termination processes. In step S1803, the AppMFW 202 checks whether there is an AppSec 230 created in the AppCache 203. If it does not exist, the process proceeds to step S1807. If it exists, the process proceeds to step S1804.

ステップS1804では、AppMFW202は、AppSec230−1に配置されたファイルの中に複製が存在しているものがあるかどうかをチェックする。存在していればステップS1805へ進む。存在していなければステップS1806へ進む。ステップS1805では、AppMFW202は、複製が存在するファイルそれぞれについて、以下の処理を実行する。すなわち、複製AppIF1401及び複製LibECAF1402についてその名称を別名に名称変更し、元のファイル205及びファイル253の名称を、本来の名称に変更する。   In step S1804, the AppMFW 202 checks whether any of the files arranged in the AppSec 230-1 includes a copy. If it exists, the process proceeds to step S1805. If it does not exist, the process proceeds to step S1806. In step S1805, the AppMFW 202 executes the following processing for each file in which a copy exists. That is, the names of the duplicate AppIF 1401 and the duplicate LibECAF 1402 are renamed to different names, and the names of the original file 205 and the file 253 are changed to original names.

ステップS1806では、AppMFW202は、AppSec230−2からAppSec230−Nが存在していれば、それらに対して同様の処理を実施する。それら全てに対する処理が完了したらステップS1807へ進み処理を完了する。   In step S1806, if there is AppSec 230-2 to AppSec 230-N, AppMFW 202 performs the same processing on them. When the processing for all of them is completed, the process proceeds to step S1807 to complete the processing.

以上説明したとおり第3実施形態によれば、AppRE200は、図15の終了処理を行った時点から次回の起動時に図14の起動処理を実行するまでの間、元のファイル205及びファイル253が元のファイル名を保持する。   As described above, according to the third embodiment, the AppRE 200 stores the original file 205 and the file 253 in the original period from the time when the end process of FIG. 15 is performed until the start process of FIG. Holds the file name.

IPA102上にてAppRE200のバージョンの入れ替えが発生する場合、AppRE200自体は開始する前もしくは終了した後の状態に置かれる。この為AppRE200のバージョンの入れ替えが発生した時点では元のファイル205及びファイル253が元のファイル名を保持している。ここでAppRE200が旧バージョンであった場合には、当該旧バージョンのAppRE200は元のファイル205及びファイル253を実行することとなる。これは元のファイル205及びファイル253が元のファイル名を保持しているからである。   When the exchange of the AppRE 200 version occurs on the IPA 102, the AppRE 200 itself is placed in a state before starting or after finishing. Therefore, the original file 205 and the file 253 retain the original file name when the version change of the AppRE 200 occurs. If the AppRE 200 is an old version, the old version of the AppRE 200 executes the original file 205 and the file 253. This is because the original file 205 and the file 253 hold the original file name.

このように、第3実施形態では、AppRE200を旧バージョンに戻した場合においてもAppを正常に実行することが可能となる。   As described above, in the third embodiment, App can be normally executed even when AppRE 200 is returned to the previous version.

(第4実施形態)
第4実施形態では、書き換える前のECAF205及び253およびそれらの複製AppIF1401及び複製LibECAF1402に対して、元の名前でのアクセスが可能になるようなハードリンクを起動前後に付与する形態について説明する。
(Fourth embodiment)
In the fourth embodiment, a description will be given of a form in which hard links are provided before and after activation so that the ECAFs 205 and 253 before rewriting and their duplicate AppIF 1401 and duplicate LibECAF 1402 can be accessed with their original names.

上述の第3実施形態では、元のファイル205及びファイル253に元のファイル名を付与する処理を、AppRE200のシャットダウン処理の一環で実施していた。正常にAppRE200をシャットダウンできた場合においては問題は起こらない。しかしながら、シャットダウンを正常に実行できなかった場合には問題が生じる。例えば、IPA102の置かれる環境等によってはIPA102に対する電源供給が突然断たれることにより、正常なシャットダウン処理を経ないままIPA102が停止してしまう事態があり得る。その場合、次にIPA102に電源が投入された時、第3実施形態ではAppRE200は複製AppIF1401及び複製LibECAF1402に元のファイル名が付与された状態で開始することになる。そのため、AppRE200が旧バージョンに戻っていた場合、ECF241の書き換えが行われたAppについては正常に動作しない可能性がある。   In the third embodiment described above, the process of assigning the original file name to the original file 205 and the file 253 is performed as part of the shutdown process of the AppRE 200. There is no problem if AppRE 200 can be shut down normally. However, a problem occurs when the shutdown cannot be performed normally. For example, depending on the environment where the IPA 102 is placed, the power supply to the IPA 102 may be suddenly cut off, and the IPA 102 may stop without performing a normal shutdown process. In this case, when the IPA 102 is turned on next time, in the third embodiment, the AppRE 200 starts with the original file names assigned to the duplicate AppIF 1401 and the duplicate LibECAF 1402. For this reason, when the AppRE 200 has returned to the previous version, there is a possibility that the App for which the ECF 241 has been rewritten does not operate normally.

図16は、第4実施形態におけるアプリケーションキャッシュの内部構成を示す図である。ここでは、AppCache203の内容を示している。以下では、図11との差異部分についてのみ説明する。   FIG. 16 is a diagram showing an internal configuration of the application cache in the fourth embodiment. Here, the contents of AppCache 203 are shown. Only the difference from FIG. 11 will be described below.

第4実施形態においては、AppRE200は、ECAF205及びECAF352もしくは複製AppIF1401及び複製LibECAF1402を実行する際に、元の名前で参照されるハードリンクを通じて行う。なお、ここでは、IPA102が採用しているファイルシステムにおいては、1つのファイルの実体に対してファイル名が異なる複数のハードリンクを張ることが可能であることを想定している。このハードリンクを張る処理(リンク生成ともいう)は、ファイルシステムおよびIPA102の基本ソフトによってアトミックに実行される。   In the fourth embodiment, the AppRE 200 performs the ECAF 205 and the ECAF 352 or the duplicate AppIF 1401 and the duplicate LibECAF 1402 through a hard link referred to by the original name. Here, in the file system adopted by the IPA 102, it is assumed that a plurality of hard links having different file names can be attached to the substance of one file. This process of creating a hard link (also referred to as link generation) is executed atomically by the file system and the basic software of the IPA 102.

アプリケーションインストール用実行対象リンク1901は、AppIF205もしくはその複製である複製AppIF1401を実際に実行時に読み込む際にその参照に使用されるハードリンクである。ライブラリ実行コード格納実行対象リンク1902は、LibECAF253もしくはその複製である複製LibECAF1402を実際に実行時に読み込む際にその参照に使用されるハードリンクである。   The application installation execution target link 1901 is a hard link used for reference when the AppIF 205 or a duplicate AppIF 1401 that is a duplicate of the AppIF 205 is actually read at the time of execution. The library execution code storage execution target link 1902 is a hard link that is used for reference when the LibECAF 253 or a duplicate LibECAF 1402 that is a duplicate thereof is actually read at the time of execution.

ここでは、説明を簡単にするため、複製AppIF1401及び複製LibECAF1402や実行対象リンク1901及び実行リンク1902が、元のECAF205及びECAF253に対して常に存在する例を図示している。ただし、必ずしも元のECAF205及び253に対して内部のECF241の書き換えが起こるわけではなく、そのようなケースでは複製や実行対象リンクは作成されない。   Here, in order to simplify the description, an example in which the duplicate AppIF 1401 and the duplicate LibECAF 1402, the execution target link 1901, and the execution link 1902 always exist with respect to the original ECAF 205 and ECAF 253 is illustrated. However, the internal ECF 241 is not necessarily rewritten with respect to the original ECAFs 205 and 253, and in such a case, a copy or an execution target link is not created.

<インストール処理の動作>
図17は、第4実施形態におけるインストール処理のフローチャートである。ここでは、AppRE200のAppMFW202がAppをインストールする処理を示している。以下では、図3に対する差異部分についてのみ説明を加える。
<Operation of the installation process>
FIG. 17 is a flowchart of the installation process in the fourth embodiment. Here, the AppMF 200 202 of the AppRE 200 shows a process of installing App. In the following, only the differences from FIG. 3 will be described.

ステップS313では、AppMFW202は、CP273に第1のクラス213のクラス名が存在するかをチェックし、存在する場合にはステップS314へ進む。ない場合にはステップS2004へ進む。   In step S313, the AppMFW 202 checks whether the class name of the first class 213 exists in the CP 273. If it exists, the process proceeds to step S314. If not, the process proceeds to step S2004.

ステップS314の処理後、ステップS2001では、AppMFW202は、AppIF205の複製AppIF1401を作成し、別名を与える。書き換えたM−ECF251で複製AppIF1401の中のファイルを置き換え、AppIF205のファイル名を変更する。そして元のAppIF205に対してAppIF205の元の名称を備えた実行対象リンク1901を張る。   After the process of step S314, in step S2001, the AppMFW 202 creates a copy AppIF 1401 of the AppIF 205 and gives an alias. The file in the duplicate AppIF 1401 is replaced with the rewritten M-ECF 251 and the file name of the AppIF 205 is changed. Then, an execution target link 1901 having the original name of the AppIF 205 is set to the original AppIF 205.

ステップS313もしくはステップS2001からステップS2004進むと、AppMFW202は、SubECF252についてもそれぞれ同様の処理を行う。全てのSubECF205の処理が終わったらステップS318へ進む。   When the process proceeds from step S313 or step S2001 to step S2004, the AppMFW 202 performs the same processing on the SubECF 252 respectively. When all the SubECFs 205 have been processed, the process proceeds to step S318.

ステップS318では、AppMFW202は、LibECAF253−1のMF242に新バージョン対応の記述があるかをチェックする。あればステップS2009へ進む。なければステップS319へ進む。ステップS320では、AppMFW202は、LibECAF253−1のECF241−1のCP273に第1のクラス213のクラス名が存在する場合にはステップS321へ進む。存在しない場合にはステップS2008へ進む。ステップS321では、AppMFW202は、ECF241−1のCP273の第1のクラス213のクラス名を第2のクラス214のクラス名に書き換える。   In step S318, the AppMFW 202 checks whether there is a description corresponding to the new version in the MF242 of the LibECAF 253-1. If there is, the process proceeds to step S2009. If not, the process proceeds to step S319. In step S320, the AppMFW 202 proceeds to step S321 when the class name of the first class 213 exists in the CP 273 of the ECF 241-1 of the LibECAF 253-1. If not, the process proceeds to step S2008. In step S321, the AppMFW 202 rewrites the class name of the first class 213 of the CP 273 of the ECF 241-1 with the class name of the second class 214.

ステップS2005では、AppMFW202は、LibECAF253−1の複製である複製LibECAF1402−1を別名で作成し、書き換えたECF241−1でその中のファイルを置き換える。その後、LibECAF253−1の名称を別名に変更し、LibECAF253−1の元のファイル名を用いて、LibECAF253−1に対する実行対象リンク1902−1を張る。   In step S2005, the AppMFW 202 creates a duplicate LibECAF 1402-1 that is a duplicate of the LibECAF 253-1 with another name, and replaces the file therein with the rewritten ECF 241-1. Thereafter, the name of the LibECAF 253-1 is changed to another name, and the execution target link 1902-1 for the LibECAF 253-1 is set up using the original file name of the LibECAF 253-1.

ステップS2008では、AppMFW202は、LibECAF253−1に含まれる残りのECF241についても同様の処理を行う。全てのECF253に対して実行し終わったらステップS2009へ進む。   In step S2008, the AppMFW 202 performs the same process for the remaining ECFs 241 included in the LibECAF 253-1. When the execution is completed for all the ECFs 253, the process proceeds to step S2009.

ステップS318もしくはステップS2008からステップS2009へ進むと、AppMFW202は、区画に展開されたLibECAFについても同様の処理を実行する。全てのLibECAFに対して処理が完了したらステップS325へ進み処理を完了する。   When the process proceeds from step S318 or step S2008 to step S2009, the AppMFW 202 executes the same process for the LibECAF expanded in the partition. When the process is completed for all LibECAFs, the process proceeds to step S325 to complete the process.

<初回起動時の動作>
図18は、第4実施形態におけるアプリケーション実行環境の初回起動時の処理のフローチャートである。ここでは、AppRE200のAppMFW202が、更新後の初回起動時に実施するアップグレード処理を示している。以下では、図4との差異部分についてのみ説明を加える。
<Operation at first startup>
FIG. 18 is a flowchart of processing at the first activation of the application execution environment in the fourth embodiment. Here, the upgrade process executed by the AppMFW 202 of the AppRE 200 at the first activation after the update is shown. Hereinafter, only the differences from FIG. 4 will be described.

ステップS404にてAppIF205のMF242に新バージョン対応の記述があればステップS408へ進む。なければステップS2101へ進む。   If there is a description corresponding to the new version in the MF 242 of the AppIF 205 in step S404, the process proceeds to step S408. If not, the process proceeds to step S2101.

ステップS2101ではM−ECF251のCP273に第1のクラス213のクラス名が含まれているかをチェックする。含まれている場合には文字列を第2のクラス214のクラス名に書き換える。AppIF205の複製である複製AppIF1401を作成する。そして複製AppIF1401に含まれるM−ECF251を書き換えたものと置き換える。そしてAppIF205の名称を変更する。そしてAppIF205の元の名称で、AppIF205に対する実行対象リンク1902を張る。   In step S2101, it is checked whether the CP 273 of the M-ECF 251 includes the class name of the first class 213. If it is included, the character string is rewritten with the class name of the second class 214. A duplicate AppIF 1401 that is a duplicate of AppIF 205 is created. Then, the M-ECF 251 included in the duplicate AppIF 1401 is replaced with a rewritten one. Then, the name of AppIF 205 is changed. Then, the execution target link 1902 for the AppIF 205 is established with the original name of the AppIF 205.

ステップS2102では同様のことをSubECF252があればそれらに対して行う。全てのSubECF252に対して処理が完了したらステップS408へ進む。   In step S2102, the same is performed on the SubECF 252 if there is one. When the process is completed for all the SubECFs 252, the process proceeds to step S 408.

ステップS408では、LibECAF253−1のMF242に新バージョン対応の記述があるかどうかをチェックする。ある場合にはステップS2104へ進む。ない場合にはステップS2103へ進む。   In step S408, it is checked whether there is a description corresponding to the new version in the MF242 of the LibECAF 253-1. If there is, the process proceeds to step S2104. If not, the process proceeds to step S2103.

ステップS2103では、LibECAF253−1に含まれるECF241のそれぞれについて同様の処理を実行する。LibECAF253−1に含まれる全てのECF241について処理が完了したらステップS2104へ進む。   In step S2103, the same processing is executed for each of the ECFs 241 included in the LibECAF 253-1. When the process is completed for all the ECFs 241 included in the LibECAF 253-1, the process advances to step S2104.

ステップS2104ではAppSec230−1に配置されている他のLibECAFがあればそれらに対して同様の処理を実行する。AppSec230−1に配置されたLibECAF253全てに対して処理が完了したらステップS2105へ進む。   In step S2104, if there are other LibECAFs arranged in AppSec 230-1, similar processing is executed for them. When the processing is completed for all the LibECAFs 253 arranged in AppSec 230-1, the process proceeds to step S2105.

ステップS2105では他のAppSec230が存在すればそれらAppSec230−2からAppSec230−Nまでについて同様の処理を実行する。全てのAppSec230に対して処理を実行し終わったらステップS412へ進む。ステップS412にて処理を完了する。   In step S2105, if there is another AppSec 230, the same processing is executed for those AppSec 230-2 to AppSec 230-N. When the process is completed for all AppSecs 230, the process proceeds to step S412. In step S412, the process is completed.

<起動処理時の動作>
図19は、アプリケーション実行環境の起動処理のフローチャートである。ここでは、AppRE200のAppMFW202がAppを起動する際に行う処理を示している。ステップS2201では、AppMFW202のAppISMM221は処理を開始する。
<Operation during startup processing>
FIG. 19 is a flowchart of an application execution environment startup process. Here, a process performed when the AppMFW 202 of the AppRE 200 starts App is shown. In step S2201, the AppISMM 221 of the AppMFW 202 starts processing.

ステップS2202では、AppISMM221は、AppCMM222を通じて起動しようとするAppのAppSec230をチェックする。AppSec230内にECAFの複製AppIF1401及び複製LibECAF1402が存在していればステップS2203へ進む。存在しない場合にはステップS2208へ進む。   In step S2202, the AppISMM 221 checks the AppSec 230 of the App to be activated through the AppCMM 222. If an ECAF duplicate AppIF 1401 and duplicate LibECAF 1402 exist in the AppSec 230, the process advances to step S2203. If it does not exist, the process proceeds to step S2208.

ステップS2203では、AppISMM221は、複製AppIF1401及び複製LibECAF1402の存在するファイルそれぞれについて以下のステップS2204を繰り返し処理する。   In step S2203, the AppISMM 221 repeatedly performs the following step S2204 for each of the files in which the duplicate AppIF 1401 and the duplicate LibECAF 1402 exist.

ステップS2204では、AppISMM221は、ECAFの実行対象リンク1901及び実行対象リンク1902を、複製AppIF1401及び複製LibECAF1402それぞれに対して張る。全ての複製の存在するECAF204に対して処理が完了したらステップS2205へ進む。   In step S2204, the AppISMM 221 extends the ECAF execution target link 1901 and the execution target link 1902 to the replication AppIF 1401 and the replication LibECAF 1402, respectively. When the processing is completed for the ECAF 204 in which all copies exist, the process advances to step S2205.

ステップS2205では、AppISMM221は、Appを起動し当該Appが完全に起動するまで待機する。ステップS2206では、AppISMM221は、全ての複製AppIF1401及び複製LibECAF1402の存在するファイルそれぞれについて、以下のステップS2207を繰り返し実行する。   In step S2205, the AppISMM 221 activates App and waits until the App is completely activated. In step S2206, the AppISMM 221 repeatedly executes the following step S2207 for each file in which all the duplicate AppIF 1401 and duplicate LibECAF 1402 exist.

ステップS2207では、AppISMM221は、ECAFの実行対象リンク1901及び実行対象リンク1902を、複製ではなく元のファイル205及びファイル253それぞれに対して張る。全ての複製AppIF1401及び複製LibECAF1402の存在するファイルについて処理が完了したら、ステップS2209に進んで処理を終了する。   In step S2207, the AppISMM 221 extends the ECAF execution target link 1901 and the execution target link 1902 to the original file 205 and the file 253, respectively, instead of copying. When the processing is completed for the files in which all the duplicate AppIF 1401 and duplicate LibECAF 1402 exist, the process advances to step S2209 to end the process.

ステップS2208では、AppISMM221は、Appを起動し、ステップS2209にて処理を終了する。   In step S2208, AppISMM 221 starts App, and ends the process in step S2209.

以上説明したとおり第4実施形態によれば、AppRE200のAppMFW202は、Appの起動時に図19の処理を実施する。これにより、AppCache203の上では実行対象リンク1901及び実行対象リンク1902は、元のファイル205及びファイル253に張られていることになる。このため、IPA102が正常にシャットダウン出来ず、かつ、旧バージョンのAppRE200で起動した場合においても、好適にAppを動作させることが可能となる。   As described above, according to the fourth embodiment, the AppMFW 202 of the AppRE 200 performs the process of FIG. 19 when App is started. As a result, the execution target link 1901 and the execution target link 1902 are stretched over the original file 205 and the file 253 on the AppCache 203. For this reason, even when the IPA 102 cannot be shut down normally and started up with the old version of the AppRE 200, the App can be operated appropriately.

(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other examples)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

200:アプリケーション実行環境; 201:アプリケーション実行基盤; 202:アプリケーション管理フレームワーク; 203:アプリケーションキャッシュ; 210:コード解釈実行モジュール; 211:実行基盤ライブラリモジュール; 212:互換性追加ライブラリモジュール; 213:第1のクラス; 214:第2のクラス   200: Application execution environment; 201: Application execution base; 202: Application management framework; 203: Application cache; 210: Code interpretation execution module; 211: Execution base library module; 212: Compatibility additional library module; 214: Second class

Claims (10)

第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置であって、
前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、
前記情報処理装置にインストールされた前記アプリケーションの実行コードとマニフェストとを格納する第2の格納手段と、
前記マニフェストを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定手段と、
前記判定手段により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換手段と、
前記書換手段による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御手段と、
を有することを特徴とする情報処理装置。
An information processing apparatus that executes, in a second execution environment that is at least partially incompatible with the first execution environment, an application that is assumed to operate on the first execution environment,
A first library including a first class in the second execution environment that is incompatible with the first execution environment, and a function compatible with the incompatible class in the first execution environment. First storage means for storing a second library including a second class provided in the execution environment;
Second storage means for storing an execution code and a manifest of the application installed in the information processing apparatus;
Determining means for referring to the manifest to determine operation compatibility of the application in the second execution environment;
Rewriting means for rewriting the first class in the execution code of the application to the second class when the determination means determines that the application does not have operation compatibility in the second execution environment; ,
Execution control means for executing the execution code rewritten by the rewriting means in the second execution environment;
An information processing apparatus comprising:
第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置であって、
前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、
前記情報処理装置にインストールされた前記アプリケーションの実行コードを格納する第2の格納手段と、
前記実行コードに含まれる定数プールを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定手段と、
前記判定手段により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換手段と、
前記書換手段による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御手段と、
を有することを特徴とする情報処理装置。
An information processing apparatus that executes, in a second execution environment that is at least partially incompatible with the first execution environment, an application that is assumed to operate on the first execution environment,
A first library including a first class in the second execution environment that is incompatible with the first execution environment, and a function compatible with the incompatible class in the first execution environment. First storage means for storing a second library including a second class provided in the execution environment;
Second storage means for storing an execution code of the application installed in the information processing apparatus;
Determining means for determining operation compatibility of the application in the second execution environment with reference to a constant pool included in the execution code;
Rewriting means for rewriting the first class in the execution code of the application to the second class when the determination means determines that the application does not have operation compatibility in the second execution environment; ,
Execution control means for executing the execution code rewritten by the rewriting means in the second execution environment;
An information processing apparatus comprising:
前記書換手段は、前記アプリケーションの実行コードにおける前記第1のクラスのクラス名の文字列を前記第2のクラスのクラス名の文字列に書き換える
ことを特徴とする請求項1又は2に記載の情報処理装置。
The information according to claim 1, wherein the rewriting unit rewrites a character string of the class name of the first class in the execution code of the application into a character string of the class name of the second class. Processing equipment.
前記第2の格納手段に格納された実行コードを、前記書換手段による書き換えが行われた実行コードに置換する置換手段と、
前記置換手段による置換前の実行コードを前記第2の格納手段に格納された実行コードのファイル名とは異なるファイル名で格納する複製格納手段と、
前記情報処理装置の終了処理の際に、前記複製格納手段に格納された実行コードのファイル名を前記第2の格納手段に格納された実行コードのファイル名に変更する変更手段と、
を更に有し、
前記変更手段は、更に、前記情報処理装置の起動処理の際に前記第2の実行環境で起動した場合、前記複製格納手段に格納された実行コードのファイル名を前記第2の格納手段に格納された実行コードのファイル名とは異なるファイル名に変更する
ことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
Replacement means for replacing the execution code stored in the second storage means with the execution code rewritten by the rewriting means;
Copy storage means for storing the execution code before replacement by the replacement means with a file name different from the file name of the execution code stored in the second storage means;
Changing means for changing the file name of the execution code stored in the copy storage means to the file name of the execution code stored in the second storage means during the termination process of the information processing apparatus;
Further comprising
The changing means further stores the file name of the execution code stored in the duplicate storage means in the second storage means when the information processing apparatus is activated in the second execution environment during the activation processing of the information processing apparatus. 4. The information processing apparatus according to claim 1, wherein the file name is changed to a file name different from the file name of the executed code.
前記第2の格納手段に格納された実行コードを、前記書換手段による書き換えが行われた実行コードに置換する置換手段と、
前記置換手段による置換前の実行コードを格納する複製格納手段と、
前記情報処理装置の終了処理の際に、前記複製格納手段に格納された実行コードに対するハードリンクを前記第2の格納手段に格納された実行コードのファイル名で生成するリンク生成手段と、
を更に有する
ことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
Replacement means for replacing the execution code stored in the second storage means with the execution code rewritten by the rewriting means;
Copy storage means for storing the execution code before replacement by the replacement means;
A link generation unit that generates a hard link for the execution code stored in the copy storage unit with the file name of the execution code stored in the second storage unit during the termination process of the information processing apparatus;
The information processing apparatus according to claim 1, further comprising:
前記情報処理装置が前記第2の実行環境での初回の起動であるか否かを検知する検知手段を更に有し、
前記書換手段は、前記第2の実行環境での初回の起動であると検知された場合に前記書き換えを行う
ことを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
A detector that detects whether or not the information processing apparatus is the first activation in the second execution environment;
6. The information processing apparatus according to claim 1, wherein the rewriting unit performs the rewriting when it is detected that the activation is the first time in the second execution environment.
アプリケーションを前記第2の格納手段にインストールするインストール手段を更に有し、
前記インストール手段は、アプリケーションごとに前記第2の格納手段に個別の区画を作成してインストールを行い、
前記判定手段は、前記判定をアプリケーションごとに実行する
ことを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
Installation means for installing the application in the second storage means;
The installation means creates and installs a separate partition in the second storage means for each application,
The information processing apparatus according to claim 1, wherein the determination unit performs the determination for each application.
第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置の制御方法であって、
前記情報処理装置は、
前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、
前記情報処理装置にインストールされた前記アプリケーションの実行コードとマニフェストとを格納する第2の格納手段と、
を有しており、
前記制御方法は、
前記マニフェストを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定工程と、
前記判定工程により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換工程と、
前記書換工程による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御工程と、
を含むことを特徴とする情報処理装置の制御方法。
An information processing apparatus control method for executing an application assumed to operate on a first execution environment in a second execution environment that is at least partially incompatible with the first execution environment,
The information processing apparatus includes:
A first library including a first class in the second execution environment that is incompatible with the first execution environment, and a function compatible with the incompatible class in the first execution environment. First storage means for storing a second library including a second class provided in the execution environment;
Second storage means for storing an execution code and a manifest of the application installed in the information processing apparatus;
Have
The control method is:
A determination step of determining operation compatibility of the application in the second execution environment with reference to the manifest;
A rewriting step of rewriting the first class in the execution code of the application to the second class when the determination step determines that the application does not have operation compatibility in the second execution environment; ,
An execution control step of executing the execution code rewritten by the rewriting step in the second execution environment;
A method for controlling an information processing apparatus, comprising:
第1の実行環境上で動作することが想定されたアプリケーションを前記第1の実行環境と少なくとも一部が非互換の第2の実行環境で実行する情報処理装置の制御方法であって、
前記情報処理装置は、
前記第1の実行環境と非互換である前記第2の実行環境における第1のクラスを含む第1のライブラリと、前記第1の実行環境における非互換のクラスと互換の機能を前記第2の実行環境において提供する第2のクラスを含む第2のライブラリと、を格納する第1の格納手段と、
前記情報処理装置にインストールされた前記アプリケーションの実行コードを格納する第2の格納手段と、
を有しており、
前記制御方法は、
前記実行コードに含まれる定数プールを参照して、前記第2の実行環境における前記アプリケーションの動作互換性を判定する判定工程と、
前記判定工程により前記アプリケーションが前記第2の実行環境における動作互換性を有していないと判定された場合、前記アプリケーションの実行コードにおける前記第1のクラスを前記第2のクラスに書き換える書換工程と、
前記書換工程による書き換えが行われた実行コードを前記第2の実行環境で実行する実行制御工程と、
を含むことを特徴とする情報処理装置の制御方法。
An information processing apparatus control method for executing an application assumed to operate on a first execution environment in a second execution environment that is at least partially incompatible with the first execution environment,
The information processing apparatus includes:
A first library including a first class in the second execution environment that is incompatible with the first execution environment, and a function compatible with the incompatible class in the first execution environment. First storage means for storing a second library including a second class provided in the execution environment;
Second storage means for storing an execution code of the application installed in the information processing apparatus;
Have
The control method is:
A determination step of determining operation compatibility of the application in the second execution environment with reference to a constant pool included in the execution code;
A rewriting step of rewriting the first class in the execution code of the application to the second class when the determination step determines that the application does not have operation compatibility in the second execution environment; ,
An execution control step of executing the execution code rewritten by the rewriting step in the second execution environment;
A method for controlling an information processing apparatus, comprising:
コンピュータを、請求項1乃至7の何れか1項に記載の情報処理装置の各手段として機能させるためのプログラム。   The program for functioning a computer as each means of the information processing apparatus of any one of Claims 1 thru | or 7.
JP2015200472A 2015-10-08 2015-10-08 Information processing device and control method thereof Pending JP2017073036A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015200472A JP2017073036A (en) 2015-10-08 2015-10-08 Information processing device and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015200472A JP2017073036A (en) 2015-10-08 2015-10-08 Information processing device and control method thereof

Publications (1)

Publication Number Publication Date
JP2017073036A true JP2017073036A (en) 2017-04-13

Family

ID=58537284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015200472A Pending JP2017073036A (en) 2015-10-08 2015-10-08 Information processing device and control method thereof

Country Status (1)

Country Link
JP (1) JP2017073036A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220327096A1 (en) * 2021-04-09 2022-10-13 Fujitsu Limited Computer-readable recording medium storing incompatibility detection program, incompatibility detection method, and incompatibility detection apparatus
WO2022254504A1 (en) * 2021-05-31 2022-12-08 富士通株式会社 Information processing program, information processing method and information processing device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220327096A1 (en) * 2021-04-09 2022-10-13 Fujitsu Limited Computer-readable recording medium storing incompatibility detection program, incompatibility detection method, and incompatibility detection apparatus
WO2022254504A1 (en) * 2021-05-31 2022-12-08 富士通株式会社 Information processing program, information processing method and information processing device

Similar Documents

Publication Publication Date Title
US6378127B1 (en) Software installation and validation using custom actions
JP5007046B2 (en) Maintaining component-based software products
US8752039B1 (en) Dynamic upgrade of operating system in a network device
JP5663006B2 (en) System and method for building a runtime environment
EP1974264B1 (en) Method and system for sharing files among different virtual machine images
US5675804A (en) System and method for enabling a compiled computer program to invoke an interpretive computer program
US7814476B2 (en) Systems and methods for updating software
CN101387956B (en) Method and apparatus for expandably implementing non functional logic
CN101681294B (en) Method and system for memory transaction grouping
US7523472B2 (en) Method and systems for DLL/COM redirection
EP3267308B1 (en) Application loading method and device
US20070168956A1 (en) System and method for representing user processes as software packages in a software package management system
JP2007128522A (en) System and method for representing system capabilities as software packages in software package management system
CN106605212A (en) Modular co-versioning in a dynamically linked runtime environment
JP2005509194A (en) Method and apparatus for creating and using pre-internalized program files
US20140366045A1 (en) Dynamic management of composable api sets
CN103677937A (en) Method and device for upgrading and running software
JP2017073036A (en) Information processing device and control method thereof
CN101571801A (en) Service expansion system and method
US20160062801A1 (en) Image forming apparatus and resource management method
US9753775B2 (en) Resource management apparatus and resource management method
US20060031821A1 (en) Divided compiling program application functionality for software development
CN100547550C (en) Install and be written into the system and method for installation system supervisory routine behind the operating system of user
Keuler et al. A light-weight load-time weaving approach for OSGi
TWI777636B (en) Method, device, and computer program product for composing modular firmware