JP2008059482A - Information processor and processing method - Google Patents

Information processor and processing method Download PDF

Info

Publication number
JP2008059482A
JP2008059482A JP2006238167A JP2006238167A JP2008059482A JP 2008059482 A JP2008059482 A JP 2008059482A JP 2006238167 A JP2006238167 A JP 2006238167A JP 2006238167 A JP2006238167 A JP 2006238167A JP 2008059482 A JP2008059482 A JP 2008059482A
Authority
JP
Japan
Prior art keywords
software module
bundle
attribute
system library
application
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.)
Withdrawn
Application number
JP2006238167A
Other languages
Japanese (ja)
Inventor
Toyohiko Ushiku
豊彦 牛久
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 JP2006238167A priority Critical patent/JP2008059482A/en
Publication of JP2008059482A publication Critical patent/JP2008059482A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology for actually using a bundle, which is desired for use as a system library, as the system library. <P>SOLUTION: Using a software module management function, attributes necessary for execution of an installed software module 2040 are referred when the software module 2040 is started. The attributes include a system library construction attribute allowing an application 2020 itself to use the software module 2040 as a management target. When the system library construction attribute is referred in starting the software module 2040, the software module management function allows the application 202 to use the target software module 2040. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、ソフトウェアの管理技術に関するものである。   The present invention relates to software management technology.

マイクロコンピュータを組み込んで機器制御を行う、所謂組み込み機器において、マイクロコンピュータ上で実行されるプログラムはROMなどに書き込まれている。そのため、このプログラムは書き換えられないことが多かった。しかし、プログラムにバグがあった場合にはこのプログラムは変更できないので、バグを抱えたまま稼動しつづけなければならない場合も多く見られた。   In a so-called embedded device in which device control is performed by incorporating a microcomputer, a program executed on the microcomputer is written in a ROM or the like. For this reason, this program was often not rewritten. However, this program cannot be changed if there are bugs in the program, so there were many cases where it was necessary to keep running with bugs.

そのため、書き換え可能なフラッシュROMなどにプログラムを格納し、プログラムの書き換えに対応している機器が出てきている。しかしこの場合もプログラム全体を変更することが多く、パーソナルコンピュータのように一部を変更したり、新たな機能を追加したりするといったことが気軽に行えるようにはなっていなかった。   For this reason, there are devices that store programs in a rewritable flash ROM or the like and support program rewriting. However, in this case as well, the entire program is often changed, and it has not been possible to easily change a part or add a new function like a personal computer.

記憶容量や処理能力に乏しい組み込み機器においても、パーソナルコンピュータのようにプログラムの更新や新機能の追加を気軽に行い、組み込み機器でも変化の激しい業務処理に対応しうるものでなければならないようになってきている。   Even in embedded devices with limited storage capacity and processing capacity, it is necessary to easily update programs and add new functions like in a personal computer, and even embedded devices must be able to handle rapidly changing business processes. It is coming.

そのための技術として、Java(登録商標)(Java(登録商標)はプログラミング言語を含むソフトウェア技術であり、米国Sun Microsystems Inc.の登録商標である)の持つプログラムの可搬性を利用して、拡張可能なアプリケーションを提供する技術が提案されている(例えば、特許文献1、非特許文献1を参照)。   As a technology for that purpose, Java (registered trademark) (Java (registered trademark) is a software technology including a programming language, and is a registered trademark of Sun Microsystems Inc., USA) can be expanded using the portability of the program. Have been proposed (see, for example, Patent Document 1 and Non-Patent Document 1).

係る技術によれば、一つのアプリケーションの上で実行されるため、アプリケーション単位で機能拡張するのに比べてハードウェア資源の要求量が少なくて済む。   According to such a technique, since it is executed on one application, the required amount of hardware resources can be reduced as compared with the case where the function is expanded in units of applications.

非特許文献1に開示されているOSGi Service Platform(以下OSGiと略)は、アプリケーションに追加されるソフトウェアモジュールをバンドルと呼び、バンドルのインストール/起動/終了/更新/アンインストールといったソフトウェアモジュールのライフサイクルを管理する仕様を定義している。   In OSGi Service Platform (hereinafter abbreviated as OSGi) disclosed in Non-Patent Document 1, a software module added to an application is called a bundle, and the life cycle of the software module such as install / start / end / update / uninstall the bundle Defines the specifications for managing

また、OSGiでは、アプリケーションが停止したときの各バンドルの実行状況が記憶され、アプリケーションの再起動時に各バンドルの状態が停止時の状態に戻される機能も備えている。
特開2000−29713号公報 「OSGi Service Platform Specification Release 2」, OSGi, 2001
OSGi also has a function of storing the execution status of each bundle when the application is stopped, and returning the state of each bundle to the stop state when the application is restarted.
JP 2000-29713 A “OSGi Service Platform Specification Release 2”, OSGi, 20001

従来技術では、後からインストール/更新できるソフトウェアモジュールによって、他のソフトウェアモジュールに対して新たな機能の提供や、改善された機能の更新などが柔軟に行えるようになっている。しかしながら、この仕組みの恩恵に浴するのは、アプリケーション上で稼動するソフトウェアモジュールのみである。   In the prior art, software modules that can be installed / updated later can flexibly provide new functions or update improved functions to other software modules. However, only software modules that run on the application benefit from this mechanism.

例えば、OSGiではアプリケーションの基幹部分をプラットフォームと呼んでいるが、このプラットフォームでは、取り外し可能なソフトウェア・モジュールであるバンドルの提供している機能を使うことができない。   For example, in OSGi, the basic part of the application is called a platform, but on this platform, the functions provided by the bundle, which is a removable software module, cannot be used.

プラットフォーム自身が使うライブラリなどのソフトウェアモジュールを更新しようとすると、プラットフォームが持つバンドルのライフサイクル管理機構を使えずに、全く別の機構を用意する必要がある。   When trying to update software modules such as libraries used by the platform itself, it is necessary to prepare a completely different mechanism without using the life cycle management mechanism of the bundle that the platform has.

OSGiはJava(登録商標)の利用が前提になっているため、プラットフォームの使用するライブラリを変更しようとすると以下のような手順をプラットフォームとは異なるソフトウェアとして実行する必要がある。   Since OSGi is premised on the use of Java (registered trademark), it is necessary to execute the following procedure as software different from the platform when attempting to change the library used by the platform.

(1) ftpなどのファイル転送手段を使って、ライブラリを追加/更新する。更新するためには現在使用中のライブラリファイルのファイル名と異なる名前でインストールする必要がある。   (1) Add / update libraries using file transfer means such as ftp. In order to update, it is necessary to install with a name different from the name of the library file currently in use.

(2) Java(登録商標)のクラスをロードするクラスローダがクラスを探索する順序を規定するクラスパスを新しいライブラリを探索するように構成し直す。   (2) The class loader that defines the order in which a class loader that loads a Java (registered trademark) class is searched for is reconfigured to search for a new library.

(3) (2)で作成したクラスパスを使用してプラットフォームを再起動する。   (3) Restart the platform using the classpath created in (2).

このように、バンドルのライフサイクルと異なる手順で管理しなければならず、システム全体の管理が煩雑なものになると言う問題点が存在する。   As described above, there is a problem that the management of the entire system becomes complicated because it must be managed by a procedure different from the life cycle of the bundle.

本発明は以上の問題に鑑みてなされたものであり、システムライブラリとして使用したいバンドルを、実際にシステムライブラリとして使用する為の技術を提供することを目的とする。   The present invention has been made in view of the above problems, and an object thereof is to provide a technique for actually using a bundle desired to be used as a system library as a system library.

本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。   In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement.

即ち、複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照手段を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照手段が前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする。
That is, an information processing apparatus including an application having a software module management function for managing a plurality of software modules,
Using the software module management function, comprising a reference means for referring to attributes required when executing the installed software module when starting the software module,
As the attribute, it has a system library attribute that makes the software module to be managed available to the application itself,
When the software module is activated, the reference means refers to the system library attribute so that the target software module can be used in the application by the software module management function.

本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。   In order to achieve the object of the present invention, for example, an information processing method of the present invention comprises the following arrangement.

即ち、複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照工程を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照工程で前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする。
That is, an information processing method performed by an information processing apparatus including an application having a software module management function for managing a plurality of software modules,
Using the software module management function, comprising a reference step of referring to attributes required when executing the installed software module when starting the software module,
As the attribute, it has a system library attribute that makes the software module to be managed available to the application itself,
By referring to the system library attribute in the reference step when the software module is activated, the software module management function enables the target software module to be used in the application.

本発明の構成によれば、システムライブラリとして使用したいバンドルを、実際にシステムライブラリとして使用することができる。   According to the configuration of the present invention, a bundle desired to be used as a system library can actually be used as a system library.

以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。   Hereinafter, the present invention will be described in detail according to preferred embodiments with reference to the accompanying drawings.

図1は、本実施形態に係る情報処理に適用可能なコンピュータのハードウェア構成を示すブロック図である。   FIG. 1 is a block diagram showing a hardware configuration of a computer applicable to information processing according to this embodiment.

制御部1010はCPUやMPU等により構成されており、RAM1020に格納されているプログラムやデータを用いて、本コンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。   The control unit 1010 is configured by a CPU, an MPU, and the like, and controls the entire computer using programs and data stored in the RAM 1020 and executes each process described later performed by the computer.

RAM1020は、ハードディスク1030からロードされたプログラムやデータを一時的に記憶するためのエリアを有すると共に、制御部1010が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1020は各種のエリアを適宜提供することができる。   The RAM 1020 has an area for temporarily storing programs and data loaded from the hard disk 1030, and also has a work area used when the control unit 1010 executes various processes. That is, the RAM 1020 can provide various areas as appropriate.

ハードディスク1030には、OS(オペレーティングシステム)や後述する各種のソフトウェア、データなどが保存されている。これらのソフトウェアやデータは制御部1010による制御に従って適宜RAM1020にロードされる。そして制御部1010はこのロードされたソフトウェアやデータを用いて後述する各処理を実行する。   The hard disk 1030 stores an OS (operating system), various software described below, data, and the like. These software and data are appropriately loaded into the RAM 1020 in accordance with control by the control unit 1010. Then, the control unit 1010 executes each process described later using the loaded software and data.

入力部1040はキーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示を制御部1010に対して入力することができる。   The input unit 1040 includes a keyboard, a mouse, and the like, and various instructions can be input to the control unit 1010 by an operator of the computer.

表示部1050はCRTや液晶画面等により構成されており、制御部1010による処理結果を画像や文字などでもって表示することができる。   The display unit 1050 is configured by a CRT, a liquid crystal screen, or the like, and can display a processing result by the control unit 1010 using an image, text, or the like.

ネットワーク部1060は、LANやインターネット等のネットワークに本コンピュータを接続するためのものであり、本コンピュータはこのネットワーク部1060を介してネットワークに接続されている各装置とのデータ通信を行うことができる。   The network unit 1060 is for connecting the computer to a network such as a LAN or the Internet, and the computer can perform data communication with each device connected to the network via the network unit 1060. .

1070は上述の各部を繋ぐバスである。   Reference numeral 1070 denotes a bus connecting the above-described units.

図2は、ハードディスク1030に保存されているソフトウェアの階層構造を示す図である。同図において2010は、ソフトウェアやハードウェア資源を管理するオペレーティングシステム(OS)である。2020は、ソフトウェアモジュールを拡張することができるJava(登録商標)言語で記述されたアプリケーションであるOSGi Service Platformの仕様を実装したプラットフォームである。2030は、プラットフォーム2020を実行するためのJava(登録商標) VM(Java(登録商標)言語を解釈・実行する仮想マシン)である。2040は、プラットフォーム2020上で実行可能なJava(登録商標)言語で記述されたソフトウェアモジュール(以下、バンドルと呼称する)の集合である。2050は、Java(登録商標) VM 2030上でプラットフォーム2020を実行するために必要なシステムライブラリである。   FIG. 2 is a diagram illustrating a hierarchical structure of software stored in the hard disk 1030. In the figure, reference numeral 2010 denotes an operating system (OS) that manages software and hardware resources. 2020 is a platform on which the specification of OSGi Service Platform, which is an application written in Java (registered trademark) language, which can extend software modules, is implemented. Reference numeral 2030 denotes a Java (registered trademark) VM (virtual machine that interprets and executes a Java (registered trademark) language) for executing the platform 2020. Reference numeral 2040 denotes a set of software modules (hereinafter referred to as bundles) described in the Java (registered trademark) language that can be executed on the platform 2020. Reference numeral 2050 denotes a system library necessary for executing the platform 2020 on the Java (registered trademark) VM 2030.

図4は、バンドルのファイルが暗号化されていない状態におけるこのファイルの構成例を示す図である。   FIG. 4 is a diagram illustrating a configuration example of the file in a state where the bundle file is not encrypted.

4010はバンドルのファイル本体である。このファイル4010は、Java(登録商標)言語のJarファイル形式になっている。JarファイルはZIP形式のアーカイブファイルであり、複数のファイルエントリ4020により構成されている。   Reference numeral 4010 denotes a bundle file body. This file 4010 is in the Jar file format of Java (registered trademark) language. The Jar file is a ZIP archive file and is composed of a plurality of file entries 4020.

各ファイルエントリ4020は、ファイルエントリの始まりを示すマジックナンバー4030と、ファイルエントリのサイズ4040と、ファイル名のサイズ4050と、ファイル名4060と、ファイルコンテンツ4070により構成されている。なお、同図では説明を簡単にするために、ZIPファイルの仕様を簡略化している。   Each file entry 4020 includes a magic number 4030 indicating the start of the file entry, a file entry size 4040, a file name size 4050, a file name 4060, and a file content 4070. In the figure, the specification of the ZIP file is simplified to simplify the explanation.

Jarファイルの各種属性はマニフェストと呼ばれるファイルエントリ内に格納されている。マニフェストのファイル名は"META-INF/MANIFEST.MF"であり、マニフェスト内には属性の名前とその値のペアとして属性値が記述される。   Various attributes of a Jar file are stored in a file entry called a manifest. The manifest file name is “META-INF / MANIFEST.MF”, and the attribute value is described as a pair of the attribute name and its value in the manifest.

先ず、バンドルをハードディスク1030にインストールする場合に、制御部1010が行う処理について、同処理のフローチャートを示す図3を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部1010に実行させるためのプログラムやデータはハードディスク1030に保存されている。このプログラムやデータは制御部1010による制御に従って適宜RAM1020にロードされる。そして制御部1010がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。   First, processing performed by the control unit 1010 when a bundle is installed on the hard disk 1030 will be described below with reference to FIG. 3 showing a flowchart of the processing. Note that programs and data for causing the control unit 1010 to execute processing according to the flowchart of FIG. The program and data are loaded into the RAM 1020 as appropriate under the control of the control unit 1010. When the control unit 1010 executes processing using the loaded program and data, the computer executes each processing described below.

先ず、ステップS3010では、インストールするように指定されたバンドルファイルの格納場所と同じ場所からインストールされたバンドルファイルが既に存在しているか否かをチェックする。バンドルの格納場所は、例えば、ネットワーク上における外部装置内である。この場合、ネットワーク部1060を介してバンドルをハードディスク1030にインストールすることになる。   First, in step S3010, it is checked whether or not a bundle file installed from the same location as the storage location of the bundle file designated to be installed already exists. The bundle storage location is, for example, in an external device on the network. In this case, the bundle is installed in the hard disk 1030 via the network unit 1060.

このチェックの結果、存在している場合には本処理を終了する。一方、存在していない場合には処理をステップS3020に進める。   If it exists as a result of this check, this processing is terminated. On the other hand, if it does not exist, the process proceeds to step S3020.

ステップS3020では、プラットフォームにインストールされた暗号化されているバンドルファイル4010を復号する。復号に用いる暗号キーは、秘密鍵としてプラットフォームが管理しているものである。   In step S3020, the encrypted bundle file 4010 installed on the platform is decrypted. The encryption key used for decryption is managed by the platform as a secret key.

次にステップS3030では、ステップS3020で復号したプラットフォーム4010をハードディスク1030内に保存する。より詳しくは、ハードディスク1030内に設けられた「バンドル管理を行うためにバンドルを格納しておくディレクトリ」に格納する。   In step S3030, the platform 4010 decrypted in step S3020 is stored in the hard disk 1030. More specifically, the information is stored in a “directory for storing bundles for bundle management” provided in the hard disk 1030.

次にステップS3040では、インストールしたバンドルをプラットフォーム上において管理するためのバンドル管理オブジェクトを生成する。図5は、バンドル管理オブジェクトの構成例を示す図である。   In step S3040, a bundle management object for managing the installed bundle on the platform is generated. FIG. 5 is a diagram illustrating a configuration example of a bundle management object.

同図において5010は、インストールしたバンドルに固有のバンドル識別子であり、それぞれのバンドルで異なる。5020はバンドルがどこからインストールされたのかを示すURLによって指定されるバンドルロケーション情報である。5030はバンドルの実行状態を示すステータスである。5040はバンドルの属性を示す属性リストである。   In the figure, reference numeral 5010 denotes a bundle identifier unique to the installed bundle, and is different for each bundle. Reference numeral 5020 denotes bundle location information specified by a URL indicating where the bundle is installed from. Reference numeral 5030 denotes a status indicating the execution state of the bundle. Reference numeral 5040 denotes an attribute list indicating bundle attributes.

係るバンドル管理オブジェクトは、インストールするバンドル毎に作成されるものである。   Such a bundle management object is created for each bundle to be installed.

図3に戻って、次にステップS3050では、ステップS3040で生成したバンドル管理オブジェクト中の属性リスト5040に、バンドルファイル4010内のマニフェストに記述されていた属性を、属性名をキーとして検索できるように全て登録しているハッシュテーブルインスタンスとして設定する。このときバンドルのマニフェストにシステムライブラリ化することを示すSystemLibrary属性が設定されていれば属性リスト5040にこの属性が設定される。そして、バンドル管理オブジェクトのステータス5030に、バンドルがインストールされている状態であることを示すINSTALLED状態値を設定する。   Returning to FIG. 3, in step S3050, the attribute list 5040 in the bundle management object generated in step S3040 can be searched for the attribute described in the manifest in the bundle file 4010 using the attribute name as a key. Set as all registered hash table instances. At this time, if the SystemLibrary attribute indicating the system library is set in the bundle manifest, this attribute is set in the attribute list 5040. Then, an INSTALLED state value indicating that the bundle is installed is set in the status 5030 of the bundle management object.

以上説明した処理でもって、バンドルをインストールすることができる。   With the process described above, the bundle can be installed.

次に、このようにしてインストールしたバンドルを起動する場合に、制御部1010が行う処理について、同処理のフローチャートを示す図6を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部1010に実行させるためのプログラムやデータはハードディスク1030に保存されている。このプログラムやデータは制御部1010による制御に従って適宜RAM1020にロードされる。そして制御部1010がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。   Next, processing performed by the control unit 1010 when starting the bundle installed in this way will be described below with reference to FIG. 6 showing a flowchart of the processing. Note that programs and data for causing the control unit 1010 to execute processing according to the flowchart of FIG. The program and data are loaded into the RAM 1020 as appropriate under the control of the control unit 1010. Then, when the control unit 1010 executes a process using the loaded program or data, the computer executes each process described below.

先ずステップS6010では、起動指定されたバンドルに対応するバンドル管理オブジェクトのステータス5030を参照する。そして、このステータス5030がACTIVEであるか否かをチェックする。このチェックの結果、ACTIVEである場合には、このバンドルは既に実行されているので本処理を終了する。一方、ACTIVEではない場合には、処理をステップS6020に進める。   First, in step S6010, the status 5030 of the bundle management object corresponding to the bundle designated for activation is referred to. Then, it is checked whether or not the status 5030 is ACTIVE. If the result of this check is ACTIVE, this bundle is already executed, and this processing is terminated. On the other hand, if it is not ACTIVE, the process proceeds to step S6020.

ステップS6020では、ステップS6010で参照したバンドル管理オブジェクトの属性リスト5040を参照する。そして、この属性リスト5040にSystemLibrary属性が設定されているか否かをチェックする。属性リスト5040はハッシュテーブルとして構成されているため、SystemLibrary属性の名前をキーとして指定することでSystemLibrary属性値を得る。そして、SystemLibrary属性が設定されている場合には処理をステップS6040に進めるし、設定されていない場合には処理をステップS6030に進める。   In step S6020, the bundle management object attribute list 5040 referred to in step S6010 is referred to. Then, it is checked whether or not the SystemLibrary attribute is set in the attribute list 5040. Since the attribute list 5040 is configured as a hash table, the SystemLibrary attribute value is obtained by specifying the name of the SystemLibrary attribute as a key. If the SystemLibrary attribute is set, the process proceeds to step S6040. If the SystemLibrary attribute is not set, the process proceeds to step S6030.

ステップS6030では、起動しようとしているバンドルは通常のプラットフォーム2020上のバンドルであるため、プラットフォーム2020上のバンドルとしての起動処理を行う。起動処理が終了すると、このバンドルのバンドル管理オブジェクトのステータス5030に実行中であることを示すACTIVE状態値を設定する。   In step S6030, since the bundle to be activated is a bundle on the normal platform 2020, activation processing as a bundle on the platform 2020 is performed. When the activation process ends, an ACTIVE state value indicating that the bundle management object of this bundle is being executed is set in the status 5030.

一方、ステップS6040では、起動しようとしているバンドルのファイルを上記ステップS3030で保存した際のパスを取得し、この取得したパスを後述するサブクラスパス管理テーブルの末尾に登録する。   On the other hand, in step S6040, the path when the bundle file to be activated is stored in step S3030 is acquired, and the acquired path is registered at the end of a subclass path management table described later.

図7Aは、サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルへのパスの登録処理を説明する図である。同図において、7010はサブクラスパス管理テーブルである。7020はサブクラスパス管理テーブル7010を永続的に記憶しておくためにハードディスク1030内に保存されているサブクラスパス記憶ファイルである。また同図左側に示す如く、サブクラスパス管理テーブル7010に登録されている最後のエントリの位置は、lastポインタが指し示している。   FIG. 7A is a diagram illustrating a configuration example of a subclass path management table and explaining a process of registering a path in the subclass path management table. In the figure, reference numeral 7010 denotes a subclass path management table. Reference numeral 7020 denotes a subclass path storage file stored in the hard disk 1030 in order to permanently store the subclass path management table 7010. Also, as shown on the left side of the figure, the last pointer indicates the position of the last entry registered in the subclass path management table 7010.

ここで、ステップS6040においてパスをこのサブクラスパス管理テーブル7010に登録する場合には先ず、このlastポインタの位置を1つ後方にずらす。同図の中央にはこの状態を示している。次に、現在lastポインタが指し示している位置に、起動しようとしているバンドルのファイルを上記ステップS3030で保存した際のパスを登録する。同図右側にはこの状態を示している。   Here, when a path is registered in the subclass path management table 7010 in step S6040, first, the position of the last pointer is shifted backward by one. This state is shown in the center of the figure. Next, the path when the file of the bundle to be activated is stored in step S3030 is registered at the position indicated by the last pointer. This state is shown on the right side of the figure.

そして最後に、このサブクラスパス管理テーブル7010に登録されている内容をクラスパス形式の文字列に変換し、サブクラスパス記憶ファイル7020に格納する。もちろん、このサブクラスパス記憶ファイル7020は、ハードディスク1030内に保存されているものである。そして、バンドル管理オブジェクトのステータス5030に実行中であることを示すACTIVE状態値を設定する。   Finally, the contents registered in the subclass path management table 7010 are converted into a character string in the class path format and stored in the sub class path storage file 7020. Of course, the subclass path storage file 7020 is stored in the hard disk 1030. Then, an ACTIVE state value indicating that the bundle management object is being executed is set in the status 5030 of the bundle management object.

以上説明した処理でもって、バンドルを起動することができる。   With the process described above, the bundle can be activated.

次に、実行中のバンドルを停止させるために、制御部1010が行う処理について、同処理のフローチャートを示す図8を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部1010に実行させるためのプログラムやデータはハードディスク1030に保存されている。このプログラムやデータは制御部1010による制御に従って適宜RAM1020にロードされる。そして制御部1010がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。   Next, processing performed by the control unit 1010 to stop the bundle being executed will be described below with reference to FIG. 8 showing a flowchart of the processing. Note that programs and data for causing the control unit 1010 to execute processing according to the flowchart of FIG. The program and data are loaded into the RAM 1020 as appropriate under the control of the control unit 1010. When the control unit 1010 executes processing using the loaded program and data, the computer executes each processing described below.

先ずステップS8010では、停止対象のバンドルのバンドル管理オブジェクトのステータス5030を参照する。そしてこのステータス5030がACTIVEであるか否かをチェックする。このチェックの結果、このステータス5030がACTIVEではない場合には、既に停止しているものとして本処理を終了する。一方、このステータス5030がACTIVEである場合には、処理をステップS8020に進める。   First, in step S8010, the status 5030 of the bundle management object of the bundle to be stopped is referred to. Then, it is checked whether or not the status 5030 is ACTIVE. If the status 5030 is not ACTIVE as a result of this check, it is assumed that the status 5030 has already stopped, and this processing is terminated. On the other hand, if the status 5030 is ACTIVE, the process proceeds to step S8020.

ステップS8020では、停止対象であるバンドルのバンドル管理オブジェクトの属性リスト5040にSystemLibrary属性が設定されているか否かをチェックする。このチェックの結果、SystemLibrary属性が設定されている場合には処理をステップS8040に進める。一方、設定されていない場合には、処理をステップS8030に進める。   In step S8020, it is checked whether the SystemLibrary attribute is set in the attribute list 5040 of the bundle management object of the bundle to be stopped. As a result of this check, if the SystemLibrary attribute is set, the process advances to step S8040. On the other hand, if it is not set, the process proceeds to step S8030.

ステップS8030では、停止対象であるバンドルは通常のバンドルであるため、通常の停止処理を行う。停止処理が終了すると、このバンドル管理オブジェクトのステータス5030に停止中であることを示すINSTALLED状態値を設定する。そして本処理を終了する。   In step S8030, since the bundle to be stopped is a normal bundle, normal stop processing is performed. When the stop process ends, an INSTALLED state value indicating that the bundle management object is stopped is set in the status 5030 of this bundle management object. Then, this process ends.

一方、ステップS8040では、停止対象のバンドルがインストールされたパスをサブクラスパス管理テーブル7010から削除する。   On the other hand, in step S8040, the path where the bundle to be stopped is installed is deleted from the subclass path management table 7010.

図7Bは、サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルからパスを削除する処理について説明する図である。   FIG. 7B is a diagram illustrating a configuration example of the subclass path management table and explaining processing for deleting a path from the subclass path management table.

先ず、同図左側に示す如く、サブクラスパス管理テーブル7010に登録しているパスの中から、停止対象となっているバンドルのパスを検索する。ここでは検索する対象として「BundleB.jar」を例に取り説明する。「BundleB.jar」を検索すると、このエントリをサブクラスパス管理テーブル7010から削除する。同図中央は、この削除を行った後のサブクラスパス管理テーブル7010を示している。   First, as shown on the left side of the figure, the bundle path to be stopped is searched from the paths registered in the subclass path management table 7010. Here, “BundleB.jar” will be described as an example of a search target. When searching for “BundleB.jar”, this entry is deleted from the subclass path management table 7010. The center of the figure shows the subclass path management table 7010 after this deletion.

そして同図右側に示す如く、削除したエントリ以降のパスの格納位置を1つずつ前方にずらすと共に、lastポインタの位置を1つ前に移動させる。   Then, as shown on the right side of the figure, the storage positions of the paths after the deleted entry are shifted forward one by one, and the position of the last pointer is moved forward by one.

そして最後に、このサブクラスパス管理テーブル7010に登録されている内容をクラスパス形式の文字列に変換し、サブクラスパス記憶ファイル7020に格納する。そして、バンドル管理オブジェクトのステータス5030に停止中であることを示すINSTALLED状態値を設定する。   Finally, the contents registered in the subclass path management table 7010 are converted into a character string in the class path format and stored in the sub class path storage file 7020. Then, an INSTALLED state value indicating that the bundle management object is stopped is set in the status 5030 of the bundle management object.

以上説明した処理でもって、実行中のバンドルを停止させることができる。   With the processing described above, the bundle being executed can be stopped.

次に、上記一連の処理後、本コンピュータを再起動させる場合に、制御部1010が行う処理について説明する。   Next, processing performed by the control unit 1010 when the computer is restarted after the above series of processing will be described.

通常のJava(登録商標)プログラムを実行するJava(登録商標) VM 2030は、そのプログラムが使用するライブラリをクラスパスと呼ばれるファイルパス情報として設定してからそのプログラムを起動する。このクラスパスは、Java(登録商標) VM 2030を起動する起動コマンドjavaのコマンドパラメータとして与えられる。   The Java (registered trademark) VM 2030 that executes a normal Java (registered trademark) program sets the library used by the program as file path information called a class path, and then starts the program. This class path is given as a command parameter of a start command java for starting Java (registered trademark) VM 2030.

以下にjavaコマンドのコマンドラインの例を示す。これは、初期クラスパスをa.jar; b.jar; c.jarとし、x.y.zクラスをメインクラスとして起動する際のものである。   Here is an example command line for the java command: This is when starting with the initial class path as a.jar; b.jar; c.jar and the x.y.z class as the main class.

java −classpath a.jar;b.jar;c.jar x.y.z
通常、クラスを検索する際に、このコマンドパラメータとして指定されたクラスパスによって追加されたライブラリは、本コンピュータに必要なシステムライブラリの次に検索される。
java −classpath a.jar; b.jar; c.jar xyz
Normally, when searching for a class, the library added by the class path specified as the command parameter is searched next to the system library necessary for the computer.

図7Cは、本コンピュータを再起動する際の処理の流れを模式的に示した図である。   FIG. 7C is a diagram schematically showing the flow of processing when the computer is restarted.

バンドルの起動/終了時に設定/変更されたサブクラスパス記憶ファイル7020からライブラリのファイルパスを取得し、システムライブラリとコマンドパラメータで指定されたクラスパスの間に挿入する。係る処理により、システムライブラリ群7030を構築する。   The library file path is acquired from the subclass path storage file 7020 set / changed at the time of starting / ending the bundle, and inserted between the system library and the class path specified by the command parameter. Through such processing, a system library group 7030 is constructed.

そして、このようにして生成したシステムライブラリ群7030を本コンピュータのクラスをロードするシステムクラスローダ7040の構築時に与え、バンドルのファイルをシステムクラスのサーチパスに加える。   Then, the system library group 7030 generated in this way is given when the system class loader 7040 for loading the computer class is constructed, and the bundle file is added to the system class search path.

即ち、プラットフォーム上で実行可能な言語でもって記述されたソフトウェアモジュール群のうち、ライブラリ化するソフトウェアモジュールについてはその記憶場所を示すパスをリストに登録する。そして、この登録処理後に本コンピュータを起動する場合には、このリストに登録されたパスを起動コマンドのコマンドパラメータとして与えてから、この起動コマンドを用いて本コンピュータを起動する。   That is, among software module groups described in a language that can be executed on the platform, a path indicating the storage location is registered in the list for a software module to be made into a library. When the computer is started after the registration process, the path registered in the list is given as a command parameter of the start command, and the computer is started using the start command.

以上説明した処理でもって、本コンピュータを再起動させることができる。   The computer can be restarted by the processing described above.

OSGiでは、プラットフォームをシャットダウンするときの各バンドルの状態を記憶しておき、再度プラットフォームが起動されたときに記憶されていた状態に戻す仕様になっている。例えば、プラットフォームのシャットダウン時に起動されていたバンドルはプラットフォームの立ち上げ時に自動的に起動される。この起動の手順は上述したバンドルの起動手順と全く同じため、サブクラスパス管理テーブル7010は空の状態で初期化しておけば、バンドルの起動処理によって自動的に再構築される。   OSGi is designed to store the state of each bundle when the platform is shut down and to return to the state stored when the platform is started again. For example, a bundle that was activated when the platform was shut down is automatically activated when the platform is started. Since this activation procedure is exactly the same as the above-described bundle activation procedure, if the subclass path management table 7010 is initialized in an empty state, it is automatically reconstructed by the bundle activation process.

以上の説明により、本実施形態によれば、システムライブラリとして使用したいバンドルのファイルを、実際にシステムライブラリとして使用することができるようになる。   As described above, according to the present embodiment, a bundle file to be used as a system library can be actually used as a system library.

また通常、プラットフォームを構成するクラスは、コマンドパラメータとして指定されるクラスパス上に指定されるライブラリに格納されることが多い。例えば、プラットフォームを構成するクラス群の一部のクラスを入れ替えてバージョンアップを図りたいと言うときを考えてみる。この場合、入れ替えるクラスからなるバンドルのファイルを生成し、SystemLibrary属性を設定して通常のバンドルと全く同じようにインストールして起動さえしておけば、次に起動した時には、バージョンアップしたクラスが使用可能になっている。   In general, the classes constituting the platform are often stored in a library designated on a class path designated as a command parameter. For example, suppose that you want to upgrade a version by replacing some of the classes that make up the platform. In this case, if you create a bundle file consisting of the classes to be replaced, set the SystemLibrary attribute, install and start it just like a normal bundle, the upgraded class will be used the next time it starts It is possible.

<その他の実施形態>
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
<Other embodiments>
Needless to say, the object of the present invention can be achieved as follows. That is, a recording medium (or storage medium) that records a program code of software that implements the functions of the above-described embodiments is supplied to a system or apparatus. Then, the computer (or CPU or MPU) of the system or apparatus reads and executes the program code stored in the recording medium. In this case, the program code itself read from the recording medium realizes the functions of the above-described embodiment, and the recording medium on which the program code is recorded constitutes the present invention.

また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Further, by executing the program code read by the computer, an operating system (OS) or the like running on the computer performs part or all of the actual processing based on the instruction of the program code. Needless to say, the process includes the case where the functions of the above-described embodiments are realized.

さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。   Furthermore, it is assumed that the program code read from the recording medium is written in a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer. After that, based on the instruction of the program code, the CPU included in the function expansion card or function expansion unit performs part or all of the actual processing, and the function of the above-described embodiment is realized by the processing. Needless to say.

本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。   When the present invention is applied to the recording medium, program code corresponding to the flowchart described above is stored in the recording medium.

本発明の実施形態に係る情報処理に適用可能なコンピュータのハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the computer applicable to the information processing which concerns on embodiment of this invention. ハードディスク1030に保存されているソフトウェアの階層構造を示す図である。3 is a diagram illustrating a hierarchical structure of software stored in a hard disk 1030. FIG. バンドルをハードディスク1030にインストールする場合に、制御部1010が行う処理のフローチャートである。10 is a flowchart of processing performed by the control unit 1010 when a bundle is installed in the hard disk 1030. バンドルのファイルが暗号化されていない状態におけるこのファイルの構成例を示す図である。It is a figure which shows the structural example of this file in the state where the file of a bundle is not encrypted. バンドル管理オブジェクトの構成例を示す図である。It is a figure which shows the structural example of a bundle management object. インストールしたバンドルを起動する場合に、制御部1010が行う処理のフローチャートである。It is a flowchart of the process which the control part 1010 performs when starting the installed bundle. サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルへのパスの登録処理を説明する図である。It is a figure explaining the registration process of the path | pass to this subclass path management table while showing the example of a structure of a subclass path management table. サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルからパスを削除する処理について説明する図である。It is a figure explaining the process which deletes a path | pass from this subclass path management table while showing the example of a structure of a subclass path management table. 本コンピュータを再起動する際の処理の流れを模式的に示した図である。It is the figure which showed typically the flow of the process at the time of restarting this computer. 実行中のバンドルを停止させるために、制御部1010が行う処理のフローチャートである。It is a flowchart of the process which the control part 1010 performs in order to stop the bundle under execution.

Claims (5)

複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照手段を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照手段が前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする情報処理装置。
An information processing apparatus including an application having a software module management function for managing a plurality of software modules,
Using the software module management function, comprising a reference means for referring to attributes required when executing the installed software module when starting the software module,
As the attribute, it has a system library attribute that makes the software module to be managed available to the application itself,
When the software module is activated, the reference means refers to the system library attribute, so that the software module management function enables the target software module to be used in the application. apparatus.
システムライブラリ化属性を有するソフトウェアモジュールを停止する場合、停止された後、当該ソフトウェアモジュールを前記アプリケーションで使用可能とはしない手段を備えることを特徴とする請求項1に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising: a unit that does not make the software module usable in the application after the software module having the system library attribute is stopped. 複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照工程を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照工程で前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする情報処理方法。
An information processing method performed by an information processing apparatus including an application having a software module management function for managing a plurality of software modules,
Using the software module management function, comprising a reference step of referring to attributes required when executing the installed software module when starting the software module,
As the attribute, it has a system library attribute that makes the software module to be managed available to the application itself,
By referring to the system library attribute in the reference step when the software module is activated, the software module management function enables the target software module to be used in the application. Method.
コンピュータに請求項3に記載の情報処理方法を実行させるためのプログラム。   A program for causing a computer to execute the information processing method according to claim 3. 請求項4に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。   A computer-readable storage medium storing the program according to claim 4.
JP2006238167A 2006-09-01 2006-09-01 Information processor and processing method Withdrawn JP2008059482A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006238167A JP2008059482A (en) 2006-09-01 2006-09-01 Information processor and processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006238167A JP2008059482A (en) 2006-09-01 2006-09-01 Information processor and processing method

Publications (1)

Publication Number Publication Date
JP2008059482A true JP2008059482A (en) 2008-03-13

Family

ID=39242104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006238167A Withdrawn JP2008059482A (en) 2006-09-01 2006-09-01 Information processor and processing method

Country Status (1)

Country Link
JP (1) JP2008059482A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009294773A (en) * 2008-06-03 2009-12-17 Ricoh Co Ltd Information processor, information processing method, information processing program and recording medium
JP2010066903A (en) * 2008-09-09 2010-03-25 Ricoh Co Ltd Information processor, program registration/start method and registration/start program
WO2010052979A1 (en) * 2008-11-05 2010-05-14 ソニー株式会社 Information processing device, information processing method, and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009294773A (en) * 2008-06-03 2009-12-17 Ricoh Co Ltd Information processor, information processing method, information processing program and recording medium
JP2010066903A (en) * 2008-09-09 2010-03-25 Ricoh Co Ltd Information processor, program registration/start method and registration/start program
WO2010052979A1 (en) * 2008-11-05 2010-05-14 ソニー株式会社 Information processing device, information processing method, and program
JP2010113474A (en) * 2008-11-05 2010-05-20 Sony Corp Information processing device, information processing method, and program

Similar Documents

Publication Publication Date Title
US9773017B2 (en) Method of configuring a virtual application
US7210131B2 (en) Method and system for migrating computer state
US8418169B2 (en) Management method for managing software module and information processor
US20110145807A1 (en) Method and device for updating a computer application
JPH10283189A (en) Built-in executable application, computer readable storage medium, preparation method for built-in executable application and preparation system therefor
US8112745B2 (en) Apparatus and method for capabilities verification and restriction of managed applications in an execution environment
JP2007206965A (en) Information processor and method for executing object-oriented program in the same device and its program
JP2014515858A (en) Method and apparatus for recombining executing instructions
JP2001356912A (en) Install/update/uninstall system of software
TW201721412A (en) Selecting and loading firmware volumes
RU2554851C2 (en) Capturing and loading operating system states
JP2006065462A (en) Software system, software stopping method, program, and storage medium
JP2008059482A (en) Information processor and processing method
KR102067974B1 (en) Image forming apparatus and method for deleting application
WO2017036197A1 (en) Method and device for managing network element model
JP2017126293A (en) Information processing apparatus and resource management method
US9940334B2 (en) Image forming apparatus and control method thereof
JP2009266149A (en) Job management program and job management apparatus
JP2016051395A (en) Image forming apparatus and resource management method
CN112486511A (en) Method for generating operating system installation mirror image through web
CN107153554B (en) Information processing apparatus and library management method
US20090044195A1 (en) method for performing tasks based on differences in machine state
US20230099057A1 (en) Techniques for managing software applications
Waldén Customizing BIOS/UEFI From OS Using EFI Variables
JP2004362331A (en) Information processor and program

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20091110