JP2006163840A - 情報処理装置及びその方法 - Google Patents

情報処理装置及びその方法 Download PDF

Info

Publication number
JP2006163840A
JP2006163840A JP2004354696A JP2004354696A JP2006163840A JP 2006163840 A JP2006163840 A JP 2006163840A JP 2004354696 A JP2004354696 A JP 2004354696A JP 2004354696 A JP2004354696 A JP 2004354696A JP 2006163840 A JP2006163840 A JP 2006163840A
Authority
JP
Japan
Prior art keywords
software module
attribute
module
executed
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004354696A
Other languages
English (en)
Other versions
JP4717426B2 (ja
JP2006163840A5 (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 JP2004354696A priority Critical patent/JP4717426B2/ja
Priority to EP05257486A priority patent/EP1669866A3/en
Priority to CNB2005101277934A priority patent/CN100451964C/zh
Priority to US11/297,029 priority patent/US8418169B2/en
Publication of JP2006163840A publication Critical patent/JP2006163840A/ja
Publication of JP2006163840A5 publication Critical patent/JP2006163840A5/ja
Application granted granted Critical
Publication of JP4717426B2 publication Critical patent/JP4717426B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

【課題】拡張可能なアプリケーションにおけるソフトウェアモジュールの管理方法と同じ方式で、別プロセスで稼動するアプリケーションを管理する。
【解決手段】別プロセスで起動すべきソフトウェアモジュールであることを示す属性をソフトウェアモジュールに付加しておき、そのソフトウェアモジュールを起動する際に、この属性を持ったソフトウェアモジュールかどうかを判定し(S12)、そうであれば別プロセスを生成する。さらにプロセス間連携属性が設定されているかを判定し(S13)、設定されている場合は連携用の通信路を構築しその生成したプロセス上で稼動し(S14)、設定されていない場合はそのまま生成したプロセス上で稼動する(S15)。
【選択図】図6

Description

本発明は、複数のソフトウェアモジュールからなるアプリケーションを備える情報処理装置とその方法に関するものである。
マイクロコンピュータを組み込んで機器制御を行ういわゆる組み込み機器では、マイクロコンピュータで実行されるプログラムは、マスクROMなどに書き込まれており書き換えられないことが多かった。このためプログラムにバグがあった場合にも、そのプログラムを変更できず、バグを抱えたまま稼動しつづけなければならない場合が多かった。そのため、書き換え可能なフラッシュROMなどにプログラムを格納し、プログラムの書き換えに対応できる機器が出てきている。しかしこの場合もプログラム全体を変更することが多く、パーソナルコンピュータのように一部を変更したり、新たな機能を追加したりといったことが気軽に行なえるような構成にはなっていなかった。
記憶容量や処理能力に乏しい組み込み機器においても、パーソナルコンピュータのようにプログラムの更新や新機能の追加を気軽に行ない、組み込み機器でも変化の激しい業務処理に対応し得るものでなければならないようになってきている。そのための技術としてJava技術(Javaはプログラミング言語を含むソフトウェア技術であり、米国Sun Microsystems Inc.の登録商標)を使用し、Javaの持つプログラムの可搬性を利用して、拡張可能なアプリケーションを提供する技術が提案されている(特許文献1及び非特許文献1)。この技術によれば、1つのアプリケーションの上で実行されるため、アプリケーション単位で機能を拡張するに比べてハードウェア資源の要求量が少なくて済む。
非特許文献1のOSGi Service Platform(以下、OSGiと略)は、アプリケーションに追加されるソフトウェアモジュールをバンドルと呼び、バンドルのインストール/起動/終了/更新/アンインストールといったソフトウェアモジュールのライフサイクルを管理する仕様を定義している。またOSGiでは、アプリケーションが停止したときの各バンドルの実行状況を記憶し、アプリケーションの再起動時に各バンドルの状態が停止時の状態に戻される機能も備えている。
特開2000−29713号公報 OSGi Service Platform Specification Release 2, OSGi, 2001
以前は豊富なハードウェア資源を持ち得なかった機器でも、ハードウェア技術の進歩や製造技術の進歩などにより、より豊富な記憶容量、処理能力を得られるようになってきている。それに伴って、機能拡張として後から追加されるソフトウェアモジュールも大規模で複雑な処理を行なうようになってきている。
従来は、ソフトウェアを管理しているオペレーティングシステムからは、ソフトウェアモジュールは一つのアプリケーションとしてしか扱われない。このため、一つのソフトウェアモジュールの不具合による影響を他のソフトウェアモジュールに波及させないために、オペレーティングシステムが元々備えているソフトウェア分離実行機能(ソフトウェアをプロセスとして異なる空間で実行する機能)を使用することができない。そのため、高度な処理を実行することにより不具合を発生させる可能性が高まったソフトウェアモジュールが不具合を起こして、アプリケーション全体を機能不全に陥らせる可能性が高くなっている。
機器のハードウェア資源が豊富になったことにより、より高機能なオペレーティングシステムを機器に導入して複数のアプリケーションを同時に実行できるようになったため、追加機能を別アプリケーション(プロセス)として実行させることにより、問題の解決を図ることができるようになってきた。
しかしながら、一つのアプリケーションに対して機能を拡張するときの操作手順と、別のアプリケーションとして機能を拡張する場合の操作手順とは異なったものになる。従って、同じ拡張機能のライフサイクル管理という目的をもった操作手順が複数存在することになる。また、アプリケーションの追加でのみ機能を追加する場合には、操作方法が変更されるためユーザを混乱させるといった問題や、それまで購入したり開発したりしていた機能拡張用のソフトウェアモジュールが全く使用できなくなり、ソフトウェア資産の継承性が犠牲になってしまうといった問題が存在する。
本発明は上記問題点に鑑みてなされたもので、本願発明の特徴は、1つのプロセス上で多数のアプリケーション実行可能なフレームワークにおいて、指定したアプリケーションを別プロセスとして実行できる機能を付加できる情報処理装置及びその方法を提供することにある。
本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ソフトウェアモジュールを管理するソフトウェアモジュール管理手段を有するアプリケーションを備える情報処理装置であって、
ソフトウェアモジュールのインストール時、当該ソフトウェアモジュールを実行するときに必要となる属性を前記ソフトウェアモジュールに設定するモジュール属性設定手段と、
前記モジュール属性設定手段によって設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照手段と、
前記モジュール属性参照手段により前記属性が、前記ソフトウェアモジュールの実行時に当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を含むと判断された場合、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動するように制御する制御手段と、
を有することを特徴とする。
本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ソフトウェアモジュールを管理するソフトウェアモジュール管理手段を有するアプリケーションを備える情報処理装置であって、
インストールされたソフトウェアモジュールを実行するときに必要となる属性を、前記ソフトウェアモジュールに設定するモジュール属性設定手段と、
前記モジュール属性設定手段によって設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照手段とを有し、
前記属性は、前記ソフトウェアモジュールの実行時に、当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を有している場合、前記ソフトウェアモジュール管理手段は、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動することを特徴とする。
本発明の一態様に係る情報処理方法は以下のような工程を備える。即ち、
ソフトウェアモジュールを管理するソフトウェアモジュール管理工程を有するアプリケーションを備える情報処理方法であって、
ソフトウェアモジュールのインストール時、当該ソフトウェアモジュールを実行するときに必要となる属性を前記ソフトウェアモジュールに設定するモジュール属性設定工程と、
前記モジュール属性設定工程で設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照工程と、
前記モジュール属性参照工程で前記属性が、前記ソフトウェアモジュールの実行時に当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を含むと判断された場合、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動するように制御する制御工程と、
を有することを特徴とする。
本発明の一態様に係る情報処理方法は以下のような工程を備える。即ち、
ソフトウェアモジュールを管理するソフトウェアモジュール管理工程を有するアプリケーションを備える情報処理方法であって、
インストールされたソフトウェアモジュールを実行するときに必要となる属性を、前記ソフトウェアモジュールに設定するモジュール属性設定工程と、
前記モジュール属性設定工程で設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照工程とを有し、
前記属性は、前記ソフトウェアモジュールの実行時に、当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を有している場合、前記ソフトウェアモジュール管理工程では、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動することを特徴とする。
本発明によれば、1つのプロセス上で多数のアプリケーション実行可能なフレームワークにおいて、指定したアプリケーションを別プロセスとして実行できるという効果がある。
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。
[実施の形態1]
図1は、本発明の実施の形態に係るコンピュータ機器の構成を示すブロック図で、このコンピュータ機器は、例えばPCやワークステーションなどの情報処理装置である。
図において、制御部1010はCPUを有し、この機器全体の動作を制御している。一次記憶部1020は、各種データや制御部1010で実行されるソフトウェアを一時的に記憶するための記憶部で、RAMなどで構成されている。二次記憶部1030は、各種データや制御部1010で実行されるソフトウェアを恒久的に記憶している記憶部で、例えばハードディスクなどで構成されている。入力部1040は、ユーザの指示や文字データや画像データを入力するためキーボード、マウス(ポインティングデバイス)、タッチスクリーン、スキャナなどを有する。表示部1050は、オペレータへの指示やデータの内容等を表示する液晶などの表示パネルを有する。ネットワークインターフェース部1060は、LAN等のネットワークを介して他の機器と通信を行なう。バス1070は、上述した各部を接続し、それらの間でのデータや制御信号をやり取りするシステムバスである。
図2は、本実施の形態に係るコンピュータ機器の制御部1010で実行されるソフトウェアの構成を階層を用いて表した図である。
図2において、オペレーティングシステム(OS)2010は、アプリケーションソフトウェアやハードウェア資源を管理し、このOS2010上で各種ソフトウェアが実行される。2020は、ソフトウェアモジュールを拡張可能なJava言語で記述されたアプリケーションであるOSGi Service Platformの仕様を実装したプラットフォームである。Java VM(Java言語を解釈して実行する仮想マシン)2030は、プラットフォーム2020を実行するためのJavaプログラム専用の仮想マシンである。2040はプラットフォーム2020上で実行されるJava言語で記述されたソフトウェアモジュール(以下、バンドル(Bundle)と呼ぶ)であるバンドル群である。2050は、オペレーティングシステム2010上で稼動するその他のアプリケーション群を示している。尚、Java VM2030は、オペレーティングシステム2010からは、その他のアプリケーション群2050に属するアプリケーションと全く同等に扱われる。
図3は、本実施の形態に係るコンピュータ機器においてバンドル2040をインストールする際の処理を説明するフローチャートで、この処理を実行するプログラムは一次記憶部1020に記憶され、制御部1010の制御の下に実行される。
図4(A)は、インストールされるバンドルファイルが暗号化されていないときの形式を説明する図、図4(B)は、Jarファイルの属性を記述しているマニフェストの一例を示す図である。
バンドルファイル4010は、Java言語のJarファイル形式である。このJarファイルは、ZIP形式のアーカイブファイルであり、複数のファイルエントリ4020の列で構成されている。各ファイルエントリ4020は、そのファイルエントリの始まりを示すマジックナンバー4030と、ファイルエントリサイズ4040、ファイル名サイズ4050、ファイル名4060及びファイルコンテンツ4070で表される各フィールドを有している。尚、図4(A)では、説明を簡単にするためにZIPファイルの仕様を簡略化して示している。
このJarファイルの各種属性はマニフェストと呼ばれ、ファイルエントリ内に格納されている。このマニフェストのファイル名は、図4(B)に示すように「META-INF/MANIFEST.MF」であり、このマニフェスト内には属性の名前と、その属性値とのペア形式で属性値が記述されている。
図4(B)において、「Bundle-Activator」は、インストールした後、一番最初に起動するJavaのクラスの名称を定義する。「Bundle-Classpath」は、クラスを探索する際のJarファイルの検索順序を示している。「NeedProcess」は、このバンドルの実行が別のプロセスで実行されることを示している。「Import-Package」は、他のバンドルからExportされているパッケージを使用している際に、それを定義する。「Import-Service」は他のバンドルの一部の機能を他に提供することを示す。
次に図3のフローチャートを参照して、本実施の形態に係るコンピュータ機器におけるバンドル2040のインストール処理を説明する。
まずステップS1で、インストールするように指定されたファイルの格納場所と同じ場所からインストールされたバンドルが既に存在しているか、即ち、そのバンドルファイルが既にインストールされているかを調べる。存在している場合は処理を終了し、存在していない場合はステップS2に進む。ステップS2では、そのバンドルファイルをプラットフォーム2020にインストールし、そのインストールされた、暗号化されているバンドルファイル4010を復号する。この復号に用いる暗号キーは、秘密鍵としてプラットフォーム2020が管理している。
次にステップS3で、ステップS2で復号したバンドルファイル4010を、バンドルを管理するためのディレクトリに格納する。次にステップS4で、プラットフォーム2020上のバンドル管理のためのバンドル管理オブジェクトを生成する。
図5は、本実施の形態に係るバンドル管理オブジェクトの構造を示す図である。
図において、バンドル識別子5010は、個々のバンドルを識別するための識別子である。ロケーション5020は、このバンドルがどこからインストールされたかを示す情報でありURLを使用して表される。ステータス5030は、このバンドルの実行状態を記述している。例えば、インストールされている場合は「INSTALLED」、実行中は「ACTIVE」がセットされる。属性リスト5040は、このバンドルの属性を記述している。即ち、図4(B)に示すマニフェストファイルで記述された属性を記憶している。プロセス識別子5050は、このバンドルが別プロセスとして実行されたときに付与される識別子である。この別プロセスとは、ソフトウェアモジュールがインストールされたアプリケーションが実行されているプロセスとは異なるプロセス上で、そのソフトウェアモジュールが実行されることを意味している。
そして図3のステップS5に進み、ステップS4で生成したバンドル管理オブジェクトの属性リスト5040に、バンドルファイル4010内のマニフェストに記述されていた属性を属性名をキーとして検索できるように全て登録しているハッシュテーブルインスタンスとして設定する。またこのとき、バンドル管理オブジェクトのステータス5030に、このバンドルがインストールされている状態であることを示す状態値(「INSTALLED」)を設定する。
以上説明した処理により、バンドル2040がインストールされる。尚ここで、別プロセスとして実行されるバンドル2050(図2)と、プラットフォーム2020上で実行されるバンドル2040のインストール処理においては、バンドル管理オブジェクトの属性リスト5040に、実行時に別プロセスで実行することを指示するための「NeedProcess」属性を持っているかどうかだけが異なるだけで、インストールの処理としては同じである。
図6は、本実施の形態に係るコンピュータ機器におけるバンドルの起動処理を説明するフローチャートで、この処理を実行するプログラムは一次記憶部1020に記憶され、制御部1010の制御の下で実行される。
まずステップS11で、指定されたバンドルのバンドル管理オブジェクトのステータス5030が「ACTIVE」(実行中)であるかどうかを判定し、「ACTIVE」である場合は既に実行されているので処理を終了する。「ACTIVE」でない場合はステップS12に進み、バンドル管理オブジェクトの属性リスト5040に、別プロセスで実行することを指示する「NeedProcess」が設定されているかどうかを調べる。ここで属性リスト5040はハッシュテーブルインスタンスとして構成されているため、「NeedProcess」属性の名前をキーとして指定することにより、「NeedProcess」属性値を得ることができる。別プロセスで実行することを示す「NeedProcess」属性が設定されている場合はステップS13に進み、そうでない場合はステップS16に進む。ステップS16では、起動しようとしているバンドルは通常のプラットフォーム2020上のバンドルであるため、プラットフォーム2020上のバンドルとしての起動処理を行なう。こうして起動処理が終了すると、バンドル管理オブジェクトのステータス5030に、実行中であることを示す「ACTIVE」状態値を設定する。また、バンドル管理オブジェクトのプロセス識別子5050には、プラットフォーム2020自身のプロセス識別子を設定する。
また別プロセスで実行する場合はステップS13で、ステップS12で得た「NeedProcess」属性値を調べ、起動するバンドルとプラットフォーム2020との間で協調動作が必要かどうかを調べる。協調動作が必要なバンドルには、「NeedProcess」属性値として「Interactive」を指定していなければならない。従って、「NeedProcess」属性として指定されたものが「Interactive」以外である場合は、協調動作が必要ではないと認識してステップS15に進み、別プロセスとして起動する。
一方、ステップS13で、協調動作が必要であると判断した場合はステップS14に進み、連携用の通信路を形成し、別プロセスとして起動する。
図7は、本実施の形態で実施される協調動作を説明する図である。
図において、プラットフォームA7010は、前述のインストール処理において、インストール指示を受けたプラットフォームとする。7020は、このプラットフォームA7010を実行するためのJava VM A(Java仮想マシーンA)である。プラットフォームB7030は、プラットフォームA7010上のバンドルの「NeedProcess」属性値として「Interactive」が指定されている場合に、指定プラットフォームA7010によって協調動作のために生成されたプラットフォームである。7040はプラットフォームB7030を実行するためのJava VM B(Java仮想マシーンB)である。バンドル7050は、プラットフォームA7010にインストールされているが、別プロセス(ここではプラットフォームB7030)で実行され、実行時にプラットフォームA7010と連携するように指定されているバンドルである。
またバンドル7070は、プラットフォームA7010とは別プロセスで実行され、実行時にプラットフォームA7010と連携する必要が無いと指定されてインストールされているバンドルである。7060は、バンドル7070を実行するためのJava VM C(Java仮想マシーンC)である。
このような場合、前述のステップS13では、バンドル7050が、プラットフォームA7010上のバンドルと別プロセスで実行され、かつプラットフォームA7010との協調動作が必要であると認識されることになる。
この場合、プラットフォームB7030が使用する実行環境がまだ構築されていなければ、その実行環境を構築する。こうして構築された実行環境は、プラットフォームA7010内に、バンドル7050のバンドル識別子5010をキーとして参照されるように記憶している。
またプラットフォームB7030が再起動される場合に、プラットフォームB7030の停止時の状態を再現するため、どのようなバンドルがインストールされているかを示す情報、及びプラットフォームB7030が停止した時の各バンドルの状態が記憶されている。この再起動のために記憶されている情報のみを複製し、その他は新規に作成することにより、プラットフォームB7030の実行環境を作成することができる。そして、その複製した再起動のための情報を変更し、バンドル7050の情報だけを残してその他のバンドルの情報を全て削除する。即ち、バンドル7050のみがインストールされて実行されている状態になるような情報が生成される。その情報を用いて、プラットフォームA7010から見て別のプラットフォームであるプラットフォームB7030をJava VM B7040とともに起動する。これにより、バンドル7050のみがインストールされて実装されている別のプラットフォームB7030が起動される。
OSGiでは、バンドルからプラットフォームにアクセスする際のインタフェースを「BundleContext」として、またバンドルを、他のバンドルやプラットフォームからアクセスするためのインタフェースを「Bundle」として定義している。
プラットフォームA7010とプラットフォームB7030との間の連携は、これら2つのインタフェースを基に、Javaのプロセス間通信のための技術であるRMI(Remote Method Invocation)を使用できるように変更されたインタフェースを介して行なわれる。これによりプラットフォームB7030上で実行されるバンドル7050は、あたかもプラットフォームA7010上で実行されるかのように管理される。
OSGiの仕様では、更に、バンドルの持つ一部の機能を他のバンドルに提供するためのサービス機能が定義されている。このサービス機能は、サービスのインタフェースをJavaのインタフェースとして定義し、そのJavaインタフェースを実装したサービスオブジェクトをレジストリに登録し、Javaインタフェースをキーとしてレジストリ内で検索してサービスオブジェクトを受け取り、そのサービスを利用する形態をとっている。
本実施の形態では、別プロセスで実行するバンドルが提供するサービス、又は別プロセスで実行するバンドルが利用するサービスは、プロセス間で通信を行なうため、Remoteインタフェースを実装し、全てのメソッドがRemoteException例外を発生し得るように定義されたインタフェースのみを対象とするという制限を加える。
バンドル管理オブジェクトのプロセス識別子5050には、起動されたプラットフォームB7030のプロセスを識別する識別子が設定される。
図7において、バンドル7070は、図6のステップS12で別プロセスで実行すると判定されるが、ステップS13で、プラットフォームA7010とは連携を取る必要が無いと判断されている。このバンドル7070を起動する場合、プラットフォームA7010を起動する際のクラスパスに、バンドル7070を構成するJarファイルを追加したものをクラスパスとし、「Bundle-Activator」属性として指定されたクラスを、バンドル管理オブジェクトの属性リスト5040から取得する。そして、この取得したクラスをエントリクラスとして指定し、Java VM C7060を起動することによりバンドル7070を起動する。この場合、「Bundle-Activator」として指定されたクラスには、以下のシグネチャを持つメソッドが定義されていなければならない。
public static void main(String [] args)
本実施の形態では、バンドル7070はJava言語で記述されたものとしたが、オペレーティングシステム2010が実行可能な形式であれば、このようなJava言語で記述されたものでなくても良い。この場合、実行可能なバンドルのファイルとしてJarファイルが使用できない場合が多いため、バンドルとしてインストールされたJarファイル内に実行可能ファイルを内包し、実行時にJarファイルから取り出して実行するよう構成することができる。
こうして生成されたプロセスの識別子を、バンドル管理オブジェクトのプロセス識別子5050に設定する。
以上説明したようにして、プラットフォーム上にインストールされているバンドルを起動することができる。
次に、バンドルを停止する際の処理について説明する。
図8は、本実施の形態に係るバンドルの停止処理を説明するフローチャートで、この処理を実行するプログラムは一次記憶部1020に記憶され、制御部1010の制御の下で実行される。
まずステップS21で、バンドル管理オブジェクトのステータス5030が「ACTIVE」(実行中)であるかを調べ、「ACTIVE」でない場合は既に停止しているものとして処理を終了する。「ACTIVE」である場合はステップS22に進み、バンドル管理オブジェクトの属性リスト5040に「NeedProcess」属性が設定されているかどうかを調べる。「NeedProcess」属性が設定されている場合はステップS23へ、そうでない場合はステップS26に進む。ステップS26では、停止しようとしているバンドルは通常のプラットフォーム2020上のバンドル2040であるため、プラットフォーム2020上のバンドルとしての停止処理を行なう。この停止処理が終了すると、バンドル管理オブジェクトのステータスフィールド5030に停止中であることを示す「INSTALLED」状態値を設定する。その後処理を終了する。
一方、ステップS23では、ステップS22で得た「NeedProcess」属性値を調べ、実行されているバンドルとプラットフォームとの間で協調動作が必要となっているどうかを調べる。協調動作が必要な場合はステップS24へ、そうでない場合はステップS25へ進む。ステップS24では、指定されたバンドルが起動されているプラットフォーム(図7の例では、プラットフォームB7030)をバンドル管理オブジェクトのプロセス識別子5050にて識別し、この識別したプラットフォームに対して、プラットフォームのシャットダウン処理を指示する。このプラットフォームのシャットダウン処理では、プラットフォーム上で動いているバンドルの状態を二次記憶部1030に格納し、再起動時に、その状態を回復できるようにし、プラットフォームを停止してステップS25へ進む。ステップS25では、バンドル管理オブジェクトのプロセス識別子5050に記述されているプロセス識別子を使用して、オペレーティングシステム2010に依頼して、そのプロセス識別子で識別されているプロセスを終了してステップS26に進み、プラットフォーム2020上のバンドルとしての停止処理を行なう。
以上のようにしてバンドルの停止処理を行なう。
最後に、バンドルをアンインストールする際の処理について説明する。
図9は、バンドルをアンインストールする際の処理を説明するフローチャートで、この処理を実行するプログラムは一次記憶部1020に記憶され、制御部1010の制御の下で実行される。
まずステップS31で、指定されたバンドルが停止しているかをバンドル管理オブジェクトのステータス5030が「ACTIVE」かどうかにより調べる。ステータス5030に設定されている状態が「ACTIVE」でなければ停止中であると判断してステップS33に進むが、実行中であればステップS32に進み、図8を参照して説明したバンドルの停止処理を行なってステップS33に進む。
ステップS33では、バンドル管理オブジェクトの属性リスト5040に「NeedProcess」属性が設定されているかどうかを調べる。「NeedProcess」属性が設定されている場合はステップS34へ進み、そうでない場合はステップS36へ進む。ステップS34では、ステップS33で得た「NeedProcess」属性値を調べ、指定されたバンドルとプラットフォームとの間で協調動作が必要かどうかを調べる。協調動作が必要な場合はステップS35へ進み、そうでない場合はステップS36に進む。ステップS35では、起動時に生成したプラットフォーム(図7の例では、プラットフォームB7030)用の実行環境を削除してステップS36に進み、フレームワーク上で通常のバンドルのアンインストール処理を行なう。このとき、インストール時に生成したファイルなどバンドルに関連する資源を全て削除する。
以上のようにして、バンドルのアンインストール処理を行なう。
このように、バンドルの属性として別プロセスで実行することが指定されている場合には別プロセスでバンドルを実行させ、管理は拡張可能なアプリケーションで行なうことが可能となる。
[実施の形態2]
次に、本発明の実施の形態2について説明する。
本実施の形態2は、前述の実施の形態1のプラットフォームに対してインストールされておらず、直接オペレーティングシステム2010上で実行可能なアプリケーションとしてインストールされていたものを、プラットフォーム上でアプリケーション管理を可能にする方法を示すものである。従って、コンピュータ機器の構成、ソフトウェアの構成、データ形式等は前述の実施の形態1と同じであるため、その説明を省略する。
図10は、本発明の実施の形態2に係るインストール処理を説明するフローチャートで、この処理を実行するプログラムは一次記憶部1020に記憶され、制御部1010の制御の下で実行される。
まずステップS41で、インストールするように指定されたファイルの格納場所と同じ場所からインストールされているバンドルが既に存在しているかを調べる。存在している場合は処理を終了し、存在していない場合はステップS42に進み、インストールすべきデータを復号する。この復号に使用する暗号化キーは、プラットフォームが記憶している。次にステップS43で、インストールするように指定されたファイルが格納されている位置を調べる。この格納位置はURLで指定されるので、格納されている位置がネットワークで繋がった装置に存在するか否かは、URLのホスト情報を調べることで判別できる。ファイル名ではなくストリームデータとしてインストールすべきバンドルのデータを渡されることがあるが、このときには同一装置内に無いものと認識する。こうしてステップS43で、同一装置内に存在すると判断した場合はステップS44へ進み、そうでなければステップS45に進む。
ステップS44では、指定されたファイルがバンドルファイルであるかどうかを調べる。ここではZIPファイルであり、マニフェストファイルエントリが存在し、バンドル特有のマニフェストヘッダが存在する場合にバンドルファイルであると認識する。そして、バンドルファイルであると判断した場合はステップS45へ進み、そうでない場合はステップS48へ進む。
ステップS45では、復号されたバンドルファイルを、プラットフォームがバンドル管理を行なうためにバンドルファイルを格納しておくディレクトリに格納する。次にステップS46で、通常のバンドルとしてバンドル管理オブジェクトを生成する。この場合ステータス5030は、「INSTALLED」に設定される。そしてステップS47に進む。
一方、ステップS44で、バンドルファイルでないときはステップS48に進み、バンドル管理オブジェクトの属性リスト5040に「NeedProcess」属性を、オペレーティングシステム2010上で実行可能であることを示す「Native」を属性値として持つようにして設定する。こうすることにより、対象となるバンドルが別プロセスで実行され、且つプラットフォームとは連携を取らずに実行されるようになる。ステップS47では、ステップS46又はステップS48で作成したバンドル管理オブジェクトから、バンドルオブジェクトを作成してバンドル管理に使用できるように記憶する。尚、バンドルの起動処理、終了処理、アンインストール処理は、前述の実施の形態1の場合と同等である。
こうすることにより、オペレーティングシステム2010用にインストールされているアプリケーションもフレームワークA7010上で管理することができる。
以上、本発明の実施の形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、または一つの機器からなる装置に適用しても良い。
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
本発明の実施の形態に係るコンピュータ機器の構成を示すブロック図である。 本実施の形態に係るコンピュータ機器の制御部で実行されるソフトウェアの構成を階層を用いて表した図である。 本実施の形態に係るコンピュータ機器においてバンドルをインストールする際の処理を説明するフローチャートである。 インストールされるバンドルファイルが暗号化されていないときの形式を説明する図(A)、図4(B)は、Jarファイルの属性を記述しているマニフェストの一例を示す図である。 本実施の形態に係るバンドル管理オブジェクトの構造を示す図である。 本実施の形態に係るコンピュータ機器におけるバンドルの起動処理を説明するフローチャートである。 本実施の形態で実施される協調動作を説明する図である。 本実施の形態に係るバンドルの停止処理を説明するフローチャートである。 本発明の実施の形態1に係るバンドルをアンインストールする際の処理を説明するフローチャートである。 本発明の実施の形態2に係るインストール処理を説明するフローチャートである。

Claims (12)

  1. ソフトウェアモジュールを管理するソフトウェアモジュール管理手段を有するアプリケーションを備える情報処理装置であって、
    ソフトウェアモジュールのインストール時、当該ソフトウェアモジュールを実行するときに必要となる属性を前記ソフトウェアモジュールに設定するモジュール属性設定手段と、
    前記モジュール属性設定手段によって設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照手段と、
    前記モジュール属性参照手段により前記属性が、前記ソフトウェアモジュールの実行時に当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を含むと判断された場合、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動するように制御する制御手段と、
    を有することを特徴とする情報処理装置。
  2. 前記ソフトウェア管理手段は、更に、前記別に生成されたプロセス上で実行されるソフトウェアモジュールを管理することを特徴とする請求項1に記載の情報処理装置。
  3. 前記モジュール属性設定手段は、前記ソフトウェアモジュール管理手段が管理するアプリケーションと、前記別に生成されたプロセス上で実行される前記ソフトウェアモジュールが連携するか否かを示すプロセス間連携属性を設定でき、
    前記制御手段は、前記モジュール属性参照手段により、ソフトウェアモジュールの起動時に当該ソフトウェアモジュールに前記プロセス間連携属性が設定されていると参照された場合に、前記ソフトウェアモジュールを別プロセスとして起動されるソフトウェアモジュールと連携させることを特徴とする請求項1に記載の情報処理装置。
  4. 前記ソフトウェアモジュール管理手段を有するアプリケーションと異なるアプリケーションとしてインストールされているアプリケーションに、別プロセスで実行するソフトウェアモジュールとしての属性を付与する手段と、
    前記属性が付与されたアプリケーションを、前記ソフトウェアモジュール管理手段による管理対象として取り込む手段とを更に有することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. ソフトウェアモジュールを管理するソフトウェアモジュール管理手段を有するアプリケーションを備える情報処理装置であって、
    インストールされたソフトウェアモジュールを実行するときに必要となる属性を、前記ソフトウェアモジュールに設定するモジュール属性設定手段と、
    前記モジュール属性設定手段によって設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照手段とを有し、
    前記属性は、前記ソフトウェアモジュールの実行時に、当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を有している場合、前記ソフトウェアモジュール管理手段は、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動することを特徴とする情報処理装置。
  6. ソフトウェアモジュールを管理するソフトウェアモジュール管理工程を有するアプリケーションを備える情報処理方法であって、
    ソフトウェアモジュールのインストール時、当該ソフトウェアモジュールを実行するときに必要となる属性を前記ソフトウェアモジュールに設定するモジュール属性設定工程と、
    前記モジュール属性設定工程で設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照工程と、
    前記モジュール属性参照工程で前記属性が、前記ソフトウェアモジュールの実行時に当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を含むと判断された場合、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動するように制御する制御工程と、
    を有することを特徴とする情報処理方法。
  7. 前記ソフトウェア管理工程では、更に、前記別に生成されたプロセス上で実行されるソフトウェアモジュールを管理することを特徴とする請求項6に記載の情報処理方法。
  8. 前記モジュール属性設定工程では、前記ソフトウェアモジュール管理工程が管理するアプリケーションと、前記別に生成されたプロセス上で実行される前記ソフトウェアモジュールが連携するか否かを示すプロセス間連携属性を設定でき、
    前記制御工程では、前記モジュール属性参照工程により、ソフトウェアモジュールの起動時に当該ソフトウェアモジュールに前記プロセス間連携属性が設定されていると参照された場合に、前記ソフトウェアモジュールを別プロセスとして起動されるソフトウェアモジュールと連携させることを特徴とする請求項6に記載の情報処理方法。
  9. 前記ソフトウェアモジュール管理工程を有するアプリケーションと異なるアプリケーションとしてインストールされているアプリケーションに、別プロセスで実行するソフトウェアモジュールとしての属性を付与する工程と、
    前記属性が付与されたアプリケーションを、前記ソフトウェアモジュール管理工程による管理対象として取り込む工程とを更に有することを特徴とする請求項6乃至8のいずれか1項に記載の情報処理方法。
  10. ソフトウェアモジュールを管理するソフトウェアモジュール管理工程を有するアプリケーションを備える情報処理方法であって、
    インストールされたソフトウェアモジュールを実行するときに必要となる属性を、前記ソフトウェアモジュールに設定するモジュール属性設定工程と、
    前記モジュール属性設定工程で設定された属性を、前記ソフトウェアモジュールを起動する際に参照するモジュール属性参照工程とを有し、
    前記属性は、前記ソフトウェアモジュールの実行時に、当該ソフトウェアモジュールがインストールされたプロセスとは異なるプロセス上で実行することを示す別プロセス生成属性を有している場合、前記ソフトウェアモジュール管理工程では、前記ソフトウェアモジュールを別に生成されたプロセス上で実行するよう起動することを特徴とする情報処理方法。
  11. 請求項6乃至10のいずれか1項に記載の情報処理方法を実行することを特徴とするプログラム。
  12. 請求項11に記載のプログラムを記憶することを特徴とする、コンピュータにより読み取り可能な記憶媒体。
JP2004354696A 2004-12-07 2004-12-07 情報処理装置及びその方法 Expired - Fee Related JP4717426B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004354696A JP4717426B2 (ja) 2004-12-07 2004-12-07 情報処理装置及びその方法
EP05257486A EP1669866A3 (en) 2004-12-07 2005-12-06 Management method for managing software module and information processor
CNB2005101277934A CN100451964C (zh) 2004-12-07 2005-12-07 管理软件模块的管理方法和信息处理器
US11/297,029 US8418169B2 (en) 2004-12-07 2005-12-07 Management method for managing software module and information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004354696A JP4717426B2 (ja) 2004-12-07 2004-12-07 情報処理装置及びその方法

Publications (3)

Publication Number Publication Date
JP2006163840A true JP2006163840A (ja) 2006-06-22
JP2006163840A5 JP2006163840A5 (ja) 2008-01-17
JP4717426B2 JP4717426B2 (ja) 2011-07-06

Family

ID=35695882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354696A Expired - Fee Related JP4717426B2 (ja) 2004-12-07 2004-12-07 情報処理装置及びその方法

Country Status (4)

Country Link
US (1) US8418169B2 (ja)
EP (1) EP1669866A3 (ja)
JP (1) JP4717426B2 (ja)
CN (1) CN100451964C (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176759A (ja) * 2006-12-22 2008-07-31 Hitachi Ltd 運用整合性維持方法、システム及びプログラム
JP2010181976A (ja) * 2009-02-03 2010-08-19 Ricoh Co Ltd 情報処理装置、画像形成装置及びプログラムインストール方法
JP2011123570A (ja) * 2009-12-08 2011-06-23 Sumitomo Electric Ind Ltd 情報処理装置、サーバ装置、配布システム、受信方法、プログラムモジュール提供方法
WO2011114655A1 (ja) * 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US8438567B2 (en) 2007-11-07 2013-05-07 Ricoh Company, Ltd. Information processing device and image processing apparatus
WO2013145361A1 (ja) * 2012-03-28 2013-10-03 株式会社日立ソリューションズ OSGi実行装置、OSGiシステム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283991B1 (en) * 1999-03-11 2007-10-16 Microsoft Corporation Caching system for path search optimization
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
US8271864B2 (en) * 2007-07-10 2012-09-18 Anoto Ab Electronic representations of position-coded products in digital pen systems
KR101419833B1 (ko) * 2008-07-18 2014-07-16 삼성전자주식회사 화상형성장치, 서비스 시스템 및 OSGi 기반 서비스설치 방법
US8869112B2 (en) 2010-11-30 2014-10-21 Sap Se System and method for modular business applications
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
US9336027B2 (en) 2010-12-17 2016-05-10 Sap Se System and method for modular business applications
CN102122249B (zh) * 2011-02-22 2013-11-06 中兴通讯股份有限公司 启动java应用的方法及装置
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09245003A (ja) * 1996-03-05 1997-09-19 Digital Vision Lab:Kk 並列分散処理システムおよびその方法
WO2001084303A1 (fr) * 2000-05-04 2001-11-08 Access Co.,Ltd. Procede et systeme de traitement d'informations
JP2001325106A (ja) * 2000-05-16 2001-11-22 Mitsubishi Electric Systemware Corp アプリケーション実行装置及びアプリケーション実行方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2002075538A1 (fr) * 2001-03-19 2002-09-26 Mitsubishi Denki Kabushiki Kaisha Dispositif multimedia monte sur vehicule
US20030115178A1 (en) * 2001-12-19 2003-06-19 Doole Douglas J. Mechanism for invocation of user-defined routines in a multi-threaded database environment
JP2003280926A (ja) * 2002-03-22 2003-10-03 Canon Inc 情報処理装置及びその方法、記憶媒体、プログラム
JP2004318459A (ja) * 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US5943496A (en) * 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
US6865735B1 (en) * 1997-10-07 2005-03-08 University Of Washington Process for rewriting executable content on a network server or desktop machine in order to enforce site specific properties
US6349408B1 (en) 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6067559A (en) * 1998-04-23 2000-05-23 Microsoft Corporation Server architecture for segregation of dynamic content generation applications into separate process spaces
US6622155B1 (en) * 1998-11-24 2003-09-16 Sun Microsystems, Inc. Distributed monitor concurrency control
US6571389B1 (en) * 1999-04-27 2003-05-27 International Business Machines Corporation System and method for improving the manageability and usability of a Java environment
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
US6557168B1 (en) * 2000-02-25 2003-04-29 Sun Microsystems, Inc. System and method for minimizing inter-application interference among static synchronized methods
WO2003010684A1 (en) * 2001-07-26 2003-02-06 Irise, Inc. System and process for gathering, recording and validating requirements for computer applications
US7735080B2 (en) * 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
US7028295B2 (en) * 2001-10-31 2006-04-11 Seiko Epson Corporation Dynamic java class loading for application execution
US20030191823A1 (en) * 2002-04-03 2003-10-09 Aplion Networks, Inc. System and method for providing customizable device capabilities to network equipment in a non-service affecting manner
CN1251079C (zh) * 2002-07-03 2006-04-12 联想(北京)有限公司 实现不同系统之间数据交互的方法
US7398261B2 (en) * 2002-11-20 2008-07-08 Radar Networks, Inc. Method and system for managing and tracking semantic objects
US7437432B2 (en) * 2002-12-12 2008-10-14 International Business Machines Corporation Client device configuration with configuration services providers
US20040123289A1 (en) * 2002-12-20 2004-06-24 Drews Paul C Multi-processing inside a virtual machine
KR100493883B1 (ko) * 2003-01-02 2005-06-10 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
DE10302678A1 (de) * 2003-01-24 2004-07-29 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung von auf dem HAVi-Standard basierten Geräten durch Device Control Module einer OSGi-Plattform
US7398305B2 (en) * 2003-02-06 2008-07-08 International Business Machines Corporation Client device configuration with hooks
US7337436B2 (en) * 2003-02-07 2008-02-26 Sun Microsystems, Inc. System and method for cross platform and configuration build system
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
US20040194059A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method to deploy software using an open service gateway initiative (OSGi) framework
US7647578B2 (en) * 2003-05-15 2010-01-12 National Instruments Corporation Programmatic creation and management of tasks in a graphical program
US7409487B1 (en) * 2003-06-30 2008-08-05 Vmware, Inc. Virtualization system for computers that use address space indentifiers
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7200800B2 (en) * 2003-07-16 2007-04-03 Hewlett-Packard Development Company, L.P. Platform independent file manipulation
US7424722B2 (en) * 2003-08-29 2008-09-09 International Business Machines Corporation Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
US7519964B1 (en) * 2003-12-03 2009-04-14 Sun Microsystems, Inc. System and method for application deployment in a domain for a cluster
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US7716663B2 (en) * 2004-02-26 2010-05-11 International Business Machines Corporation Method, system and program product for controlling native applications using open service gateway initiative (OSGi) bundles
US7523155B2 (en) * 2004-03-18 2009-04-21 International Business Machines Corporation Method, system and program product for using open mobile alliance (OMA) alerts to send client commands/requests to an OMA DM server
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US20050223362A1 (en) * 2004-04-02 2005-10-06 Gemstone Systems, Inc. Methods and systems for performing unit testing across multiple virtual machines
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
US8104034B2 (en) * 2005-11-30 2012-01-24 Red Hat, Inc. Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09245003A (ja) * 1996-03-05 1997-09-19 Digital Vision Lab:Kk 並列分散処理システムおよびその方法
WO2001084303A1 (fr) * 2000-05-04 2001-11-08 Access Co.,Ltd. Procede et systeme de traitement d'informations
JP2001325106A (ja) * 2000-05-16 2001-11-22 Mitsubishi Electric Systemware Corp アプリケーション実行装置及びアプリケーション実行方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2002075538A1 (fr) * 2001-03-19 2002-09-26 Mitsubishi Denki Kabushiki Kaisha Dispositif multimedia monte sur vehicule
US20030115178A1 (en) * 2001-12-19 2003-06-19 Doole Douglas J. Mechanism for invocation of user-defined routines in a multi-threaded database environment
JP2003280926A (ja) * 2002-03-22 2003-10-03 Canon Inc 情報処理装置及びその方法、記憶媒体、プログラム
JP2004318459A (ja) * 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176759A (ja) * 2006-12-22 2008-07-31 Hitachi Ltd 運用整合性維持方法、システム及びプログラム
US8438567B2 (en) 2007-11-07 2013-05-07 Ricoh Company, Ltd. Information processing device and image processing apparatus
JP2010181976A (ja) * 2009-02-03 2010-08-19 Ricoh Co Ltd 情報処理装置、画像形成装置及びプログラムインストール方法
JP2011123570A (ja) * 2009-12-08 2011-06-23 Sumitomo Electric Ind Ltd 情報処理装置、サーバ装置、配布システム、受信方法、プログラムモジュール提供方法
WO2011114655A1 (ja) * 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US9081596B2 (en) 2010-03-16 2015-07-14 Panasonic Intellectual Property Management Co., Ltd. Information processing device, virtual machine creation method, and application distribution system
JP5821034B2 (ja) * 2010-03-16 2015-11-24 パナソニックIpマネジメント株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
WO2013145361A1 (ja) * 2012-03-28 2013-10-03 株式会社日立ソリューションズ OSGi実行装置、OSGiシステム
JP2013206040A (ja) * 2012-03-28 2013-10-07 Hitachi Solutions Ltd OSGi実行装置、OSGiシステム

Also Published As

Publication number Publication date
US20060122962A1 (en) 2006-06-08
EP1669866A3 (en) 2007-11-07
EP1669866A2 (en) 2006-06-14
JP4717426B2 (ja) 2011-07-06
CN1786915A (zh) 2006-06-14
CN100451964C (zh) 2009-01-14
US8418169B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
US8418169B2 (en) Management method for managing software module and information processor
US8136100B1 (en) Software installation and icon management support
US7694277B2 (en) Cross version customization of design environment
US8191060B2 (en) Software installation using template executables
US7930273B1 (en) Version management for application execution environment
US8448161B2 (en) Application tracking for application execution environment
US8171470B2 (en) Software installation and support
JP5663006B2 (ja) ランタイム環境を構築するためのシステムおよび方法
US20130047150A1 (en) Software installation and process management support
CN102279765B (zh) 预编译托存托管代码
US8375381B1 (en) Management user interface for application execution environment
JP4796966B2 (ja) ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi
JP5007046B2 (ja) コンポーネントベースのソフトウェア・プロダクトの保守
US7640542B2 (en) Managing midlet suites in OSGI environment
US20140282548A1 (en) System and method to reconfigure a virtual machine image suitable for cloud deployment
US20080250385A1 (en) Automating the deployment of applications
JP2006323500A (ja) 管理方法及び管理装置
US20130167136A1 (en) Component-based installation
JP2008090840A (ja) ソフトウェア製品の出荷用仮想化ソフトウェアの使用方法
JP7311710B2 (ja) 実行時コンテナ
JP2007206965A (ja) 情報処理装置及び当該装置におけるオブジェクト指向プログラムの実行方法とそのプログラム
US9141385B2 (en) Managing operating system components
JP2008059482A (ja) 情報処理装置、情報処理方法
Waldén Customizing BIOS/UEFI From OS Using EFI Variables
KR100987644B1 (ko) 위젯을 서비스하는 단말기 및 그 위젯 관리방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071126

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110328

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees