(57)【要約】【課題】  システムライブラリとして使用したいバンドルを、実際にシステムライブラリとして使用する為の技術を提供すること。【解決手段】  ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュール２０４０を実行するときに必要となる属性を、ソフトウェアモジュール２０４０を起動する際に参照する。属性として、管理対象となるソフトウェアモジュール２０４０をアプリケーション２０２０自身に利用可能とするシステムライブラリ化属性を持つ。ソフトウェアモジュール２０４０が起動されるときにシステムライブラリ化属性を参照することで、ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュール２０４０をアプリケーション２０２０で使用可能とする。【選択図】  図２
2008059482.tif 000002
【特許請求の範囲】
【請求項１】
複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照手段を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照手段が前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする情報処理装置。
【請求項２】
システムライブラリ化属性を有するソフトウェアモジュールを停止する場合、停止された後、当該ソフトウェアモジュールを前記アプリケーションで使用可能とはしない手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照工程を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照工程で前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする情報処理方法。
【請求項４】
コンピュータに請求項３に記載の情報処理方法を実行させるためのプログラム。
【請求項５】
請求項４に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの管理技術に関するものである。
【背景技術】
【０００２】
マイクロコンピュータを組み込んで機器制御を行う、所謂組み込み機器において、マイクロコンピュータ上で実行されるプログラムはＲＯＭなどに書き込まれている。そのため、このプログラムは書き換えられないことが多かった。しかし、プログラムにバグがあった場合にはこのプログラムは変更できないので、バグを抱えたまま稼動しつづけなければならない場合も多く見られた。
【０００３】
そのため、書き換え可能なフラッシュＲＯＭなどにプログラムを格納し、プログラムの書き換えに対応している機器が出てきている。しかしこの場合もプログラム全体を変更することが多く、パーソナルコンピュータのように一部を変更したり、新たな機能を追加したりするといったことが気軽に行えるようにはなっていなかった。
【０００４】
記憶容量や処理能力に乏しい組み込み機器においても、パーソナルコンピュータのようにプログラムの更新や新機能の追加を気軽に行い、組み込み機器でも変化の激しい業務処理に対応しうるものでなければならないようになってきている。
【０００５】
そのための技術として、Java（登録商標）（Java（登録商標）はプログラミング言語を含むソフトウェア技術であり、米国Sun Microsystems Inc.の登録商標である）の持つプログラムの可搬性を利用して、拡張可能なアプリケーションを提供する技術が提案されている（例えば、特許文献１、非特許文献１を参照）。
【０００６】
係る技術によれば、一つのアプリケーションの上で実行されるため、アプリケーション単位で機能拡張するのに比べてハードウェア資源の要求量が少なくて済む。
【０００７】
非特許文献１に開示されているOSGi Service Platform（以下OSGiと略）は、アプリケーションに追加されるソフトウェアモジュールをバンドルと呼び、バンドルのインストール／起動／終了／更新／アンインストールといったソフトウェアモジュールのライフサイクルを管理する仕様を定義している。
【０００８】
また、OSGiでは、アプリケーションが停止したときの各バンドルの実行状況が記憶され、アプリケーションの再起動時に各バンドルの状態が停止時の状態に戻される機能も備えている。
【特許文献１】特開２０００−２９７１３号公報
【非特許文献１】「OSGi Service Platform Specification Release ２」, OSGi, ２00１
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来技術では、後からインストール／更新できるソフトウェアモジュールによって、他のソフトウェアモジュールに対して新たな機能の提供や、改善された機能の更新などが柔軟に行えるようになっている。しかしながら、この仕組みの恩恵に浴するのは、アプリケーション上で稼動するソフトウェアモジュールのみである。
【００１０】
例えば、OSGiではアプリケーションの基幹部分をプラットフォームと呼んでいるが、このプラットフォームでは、取り外し可能なソフトウェア・モジュールであるバンドルの提供している機能を使うことができない。
【００１１】
プラットフォーム自身が使うライブラリなどのソフトウェアモジュールを更新しようとすると、プラットフォームが持つバンドルのライフサイクル管理機構を使えずに、全く別の機構を用意する必要がある。
【００１２】
OSGiはJava（登録商標）の利用が前提になっているため、プラットフォームの使用するライブラリを変更しようとすると以下のような手順をプラットフォームとは異なるソフトウェアとして実行する必要がある。
【００１３】
（１）  ftpなどのファイル転送手段を使って、ライブラリを追加／更新する。更新するためには現在使用中のライブラリファイルのファイル名と異なる名前でインストールする必要がある。
【００１４】
（２）  Java（登録商標）のクラスをロードするクラスローダがクラスを探索する順序を規定するクラスパスを新しいライブラリを探索するように構成し直す。
【００１５】
（３）  （２）で作成したクラスパスを使用してプラットフォームを再起動する。
【００１６】
このように、バンドルのライフサイクルと異なる手順で管理しなければならず、システム全体の管理が煩雑なものになると言う問題点が存在する。
【００１７】
本発明は以上の問題に鑑みてなされたものであり、システムライブラリとして使用したいバンドルを、実際にシステムライブラリとして使用する為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００１９】
即ち、複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照手段を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照手段が前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする。
【００２０】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００２１】
即ち、複数のソフトウェアモジュールを管理するソフトウェアモジュール管理機能を有するアプリケーションを備える情報処理装置が行う情報処理方法であって、
前記ソフトウェアモジュール管理機能を用いて、インストールされたソフトウェアモジュールを実行するときに必要となる属性を、ソフトウェアモジュールを起動する際に参照する参照工程を備え、
前記属性として、管理対象となるソフトウェアモジュールをアプリケーション自身に利用可能とするシステムライブラリ化属性を持ち、
ソフトウェアモジュールが起動されるときに前記参照工程で前記システムライブラリ化属性を参照することで、前記ソフトウェアモジュール管理機能により、対象となるソフトウェアモジュールを前記アプリケーションで使用可能とする
ことを特徴とする。
【発明の効果】
【００２２】
本発明の構成によれば、システムライブラリとして使用したいバンドルを、実際にシステムライブラリとして使用することができる。
【発明を実施するための最良の形態】
【００２３】
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００２４】
図１は、本実施形態に係る情報処理に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【００２５】
制御部１０１０はＣＰＵやＭＰＵ等により構成されており、ＲＡＭ１０２０に格納されているプログラムやデータを用いて、本コンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。
【００２６】
ＲＡＭ１０２０は、ハードディスク１０３０からロードされたプログラムやデータを一時的に記憶するためのエリアを有すると共に、制御部１０１０が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１０２０は各種のエリアを適宜提供することができる。
【００２７】
ハードディスク１０３０には、ＯＳ（オペレーティングシステム）や後述する各種のソフトウェア、データなどが保存されている。これらのソフトウェアやデータは制御部１０１０による制御に従って適宜ＲＡＭ１０２０にロードされる。そして制御部１０１０はこのロードされたソフトウェアやデータを用いて後述する各処理を実行する。
【００２８】
入力部１０４０はキーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示を制御部１０１０に対して入力することができる。
【００２９】
表示部１０５０はＣＲＴや液晶画面等により構成されており、制御部１０１０による処理結果を画像や文字などでもって表示することができる。
【００３０】
ネットワーク部１０６０は、ＬＡＮやインターネット等のネットワークに本コンピュータを接続するためのものであり、本コンピュータはこのネットワーク部１０６０を介してネットワークに接続されている各装置とのデータ通信を行うことができる。
【００３１】
１０７０は上述の各部を繋ぐバスである。
【００３２】
図２は、ハードディスク１０３０に保存されているソフトウェアの階層構造を示す図である。同図において２０１０は、ソフトウェアやハードウェア資源を管理するオペレーティングシステム（ＯＳ）である。２０２０は、ソフトウェアモジュールを拡張することができるJava（登録商標）言語で記述されたアプリケーションであるOSGi Service Platformの仕様を実装したプラットフォームである。２０３０は、プラットフォーム２０２０を実行するためのJava（登録商標） VM（Java（登録商標）言語を解釈・実行する仮想マシン）である。２０４０は、プラットフォーム２０２０上で実行可能なJava（登録商標）言語で記述されたソフトウェアモジュール（以下、バンドルと呼称する）の集合である。２０５０は、Java（登録商標） VM ２０３０上でプラットフォーム２０２０を実行するために必要なシステムライブラリである。
【００３３】
図４は、バンドルのファイルが暗号化されていない状態におけるこのファイルの構成例を示す図である。
【００３４】
４０１０はバンドルのファイル本体である。このファイル４０１０は、Java（登録商標）言語のJarファイル形式になっている。JarファイルはZIP形式のアーカイブファイルであり、複数のファイルエントリ４０２０により構成されている。
【００３５】
各ファイルエントリ４０２０は、ファイルエントリの始まりを示すマジックナンバー４０３０と、ファイルエントリのサイズ４０４０と、ファイル名のサイズ４０５０と、ファイル名４０６０と、ファイルコンテンツ４０７０により構成されている。なお、同図では説明を簡単にするために、ZIPファイルの仕様を簡略化している。
【００３６】
Jarファイルの各種属性はマニフェストと呼ばれるファイルエントリ内に格納されている。マニフェストのファイル名は"META-INF／MANIFEST.MF"であり、マニフェスト内には属性の名前とその値のペアとして属性値が記述される。
【００３７】
先ず、バンドルをハードディスク１０３０にインストールする場合に、制御部１０１０が行う処理について、同処理のフローチャートを示す図３を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部１０１０に実行させるためのプログラムやデータはハードディスク１０３０に保存されている。このプログラムやデータは制御部１０１０による制御に従って適宜ＲＡＭ１０２０にロードされる。そして制御部１０１０がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００３８】
先ず、ステップＳ３０１０では、インストールするように指定されたバンドルファイルの格納場所と同じ場所からインストールされたバンドルファイルが既に存在しているか否かをチェックする。バンドルの格納場所は、例えば、ネットワーク上における外部装置内である。この場合、ネットワーク部１０６０を介してバンドルをハードディスク１０３０にインストールすることになる。
【００３９】
このチェックの結果、存在している場合には本処理を終了する。一方、存在していない場合には処理をステップＳ３０２０に進める。
【００４０】
ステップＳ３０２０では、プラットフォームにインストールされた暗号化されているバンドルファイル４０１０を復号する。復号に用いる暗号キーは、秘密鍵としてプラットフォームが管理しているものである。
【００４１】
次にステップＳ３０３０では、ステップＳ３０２０で復号したプラットフォーム４０１０をハードディスク１０３０内に保存する。より詳しくは、ハードディスク１０３０内に設けられた「バンドル管理を行うためにバンドルを格納しておくディレクトリ」に格納する。
【００４２】
次にステップＳ３０４０では、インストールしたバンドルをプラットフォーム上において管理するためのバンドル管理オブジェクトを生成する。図５は、バンドル管理オブジェクトの構成例を示す図である。
【００４３】
同図において５０１０は、インストールしたバンドルに固有のバンドル識別子であり、それぞれのバンドルで異なる。５０２０はバンドルがどこからインストールされたのかを示すURLによって指定されるバンドルロケーション情報である。５０３０はバンドルの実行状態を示すステータスである。５０４０はバンドルの属性を示す属性リストである。
【００４４】
係るバンドル管理オブジェクトは、インストールするバンドル毎に作成されるものである。
【００４５】
図３に戻って、次にステップＳ３０５０では、ステップＳ３０４０で生成したバンドル管理オブジェクト中の属性リスト５０４０に、バンドルファイル４０１０内のマニフェストに記述されていた属性を、属性名をキーとして検索できるように全て登録しているハッシュテーブルインスタンスとして設定する。このときバンドルのマニフェストにシステムライブラリ化することを示すSystemLibrary属性が設定されていれば属性リスト５０４０にこの属性が設定される。そして、バンドル管理オブジェクトのステータス５０３０に、バンドルがインストールされている状態であることを示すINSTALLED状態値を設定する。
【００４６】
以上説明した処理でもって、バンドルをインストールすることができる。
【００４７】
次に、このようにしてインストールしたバンドルを起動する場合に、制御部１０１０が行う処理について、同処理のフローチャートを示す図６を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部１０１０に実行させるためのプログラムやデータはハードディスク１０３０に保存されている。このプログラムやデータは制御部１０１０による制御に従って適宜ＲＡＭ１０２０にロードされる。そして制御部１０１０がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００４８】
先ずステップＳ６０１０では、起動指定されたバンドルに対応するバンドル管理オブジェクトのステータス５０３０を参照する。そして、このステータス５０３０がACTIVEであるか否かをチェックする。このチェックの結果、ACTIVEである場合には、このバンドルは既に実行されているので本処理を終了する。一方、ACTIVEではない場合には、処理をステップＳ６０２０に進める。
【００４９】
ステップＳ６０２０では、ステップＳ６０１０で参照したバンドル管理オブジェクトの属性リスト５０４０を参照する。そして、この属性リスト５０４０にSystemLibrary属性が設定されているか否かをチェックする。属性リスト５０４０はハッシュテーブルとして構成されているため、SystemLibrary属性の名前をキーとして指定することでSystemLibrary属性値を得る。そして、SystemLibrary属性が設定されている場合には処理をステップＳ６０４０に進めるし、設定されていない場合には処理をステップＳ６０３０に進める。
【００５０】
ステップＳ６０３０では、起動しようとしているバンドルは通常のプラットフォーム２０２０上のバンドルであるため、プラットフォーム２０２０上のバンドルとしての起動処理を行う。起動処理が終了すると、このバンドルのバンドル管理オブジェクトのステータス５０３０に実行中であることを示すACTIVE状態値を設定する。
【００５１】
一方、ステップＳ６０４０では、起動しようとしているバンドルのファイルを上記ステップＳ３０３０で保存した際のパスを取得し、この取得したパスを後述するサブクラスパス管理テーブルの末尾に登録する。
【００５２】
図７Ａは、サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルへのパスの登録処理を説明する図である。同図において、７０１０はサブクラスパス管理テーブルである。７０２０はサブクラスパス管理テーブル７０１０を永続的に記憶しておくためにハードディスク１０３０内に保存されているサブクラスパス記憶ファイルである。また同図左側に示す如く、サブクラスパス管理テーブル７０１０に登録されている最後のエントリの位置は、ｌａｓｔポインタが指し示している。
【００５３】
ここで、ステップＳ６０４０においてパスをこのサブクラスパス管理テーブル７０１０に登録する場合には先ず、このｌａｓｔポインタの位置を１つ後方にずらす。同図の中央にはこの状態を示している。次に、現在ｌａｓｔポインタが指し示している位置に、起動しようとしているバンドルのファイルを上記ステップＳ３０３０で保存した際のパスを登録する。同図右側にはこの状態を示している。
【００５４】
そして最後に、このサブクラスパス管理テーブル７０１０に登録されている内容をクラスパス形式の文字列に変換し、サブクラスパス記憶ファイル７０２０に格納する。もちろん、このサブクラスパス記憶ファイル７０２０は、ハードディスク１０３０内に保存されているものである。そして、バンドル管理オブジェクトのステータス５０３０に実行中であることを示すACTIVE状態値を設定する。
【００５５】
以上説明した処理でもって、バンドルを起動することができる。
【００５６】
次に、実行中のバンドルを停止させるために、制御部１０１０が行う処理について、同処理のフローチャートを示す図８を用いて以下説明する。なお、同図のフローチャートに従った処理を制御部１０１０に実行させるためのプログラムやデータはハードディスク１０３０に保存されている。このプログラムやデータは制御部１０１０による制御に従って適宜ＲＡＭ１０２０にロードされる。そして制御部１０１０がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行することになる。
【００５７】
先ずステップＳ８０１０では、停止対象のバンドルのバンドル管理オブジェクトのステータス５０３０を参照する。そしてこのステータス５０３０がACTIVEであるか否かをチェックする。このチェックの結果、このステータス５０３０がACTIVEではない場合には、既に停止しているものとして本処理を終了する。一方、このステータス５０３０がACTIVEである場合には、処理をステップＳ８０２０に進める。
【００５８】
ステップＳ８０２０では、停止対象であるバンドルのバンドル管理オブジェクトの属性リスト５０４０にSystemLibrary属性が設定されているか否かをチェックする。このチェックの結果、SystemLibrary属性が設定されている場合には処理をステップＳ８０４０に進める。一方、設定されていない場合には、処理をステップＳ８０３０に進める。
【００５９】
ステップＳ８０３０では、停止対象であるバンドルは通常のバンドルであるため、通常の停止処理を行う。停止処理が終了すると、このバンドル管理オブジェクトのステータス５０３０に停止中であることを示すINSTALLED状態値を設定する。そして本処理を終了する。
【００６０】
一方、ステップＳ８０４０では、停止対象のバンドルがインストールされたパスをサブクラスパス管理テーブル７０１０から削除する。
【００６１】
図７Ｂは、サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルからパスを削除する処理について説明する図である。
【００６２】
先ず、同図左側に示す如く、サブクラスパス管理テーブル７０１０に登録しているパスの中から、停止対象となっているバンドルのパスを検索する。ここでは検索する対象として「ＢｕｎｄｌｅＢ．ｊａｒ」を例に取り説明する。「ＢｕｎｄｌｅＢ．ｊａｒ」を検索すると、このエントリをサブクラスパス管理テーブル７０１０から削除する。同図中央は、この削除を行った後のサブクラスパス管理テーブル７０１０を示している。
【００６３】
そして同図右側に示す如く、削除したエントリ以降のパスの格納位置を１つずつ前方にずらすと共に、ｌａｓｔポインタの位置を１つ前に移動させる。
【００６４】
そして最後に、このサブクラスパス管理テーブル７０１０に登録されている内容をクラスパス形式の文字列に変換し、サブクラスパス記憶ファイル７０２０に格納する。そして、バンドル管理オブジェクトのステータス５０３０に停止中であることを示すINSTALLED状態値を設定する。
【００６５】
以上説明した処理でもって、実行中のバンドルを停止させることができる。
【００６６】
次に、上記一連の処理後、本コンピュータを再起動させる場合に、制御部１０１０が行う処理について説明する。
【００６７】
通常のJava（登録商標）プログラムを実行するJava（登録商標） VM ２０３０は、そのプログラムが使用するライブラリをクラスパスと呼ばれるファイルパス情報として設定してからそのプログラムを起動する。このクラスパスは、Java（登録商標） VM ２０３０を起動する起動コマンドjavaのコマンドパラメータとして与えられる。
【００６８】
以下にjavaコマンドのコマンドラインの例を示す。これは、初期クラスパスをa.jar; b.jar; c.jarとし、x.y.zクラスをメインクラスとして起動する際のものである。
【００６９】
java −classpath a.jar;b.jar;c.jar x.y.z
通常、クラスを検索する際に、このコマンドパラメータとして指定されたクラスパスによって追加されたライブラリは、本コンピュータに必要なシステムライブラリの次に検索される。
【００７０】
図７Ｃは、本コンピュータを再起動する際の処理の流れを模式的に示した図である。
【００７１】
バンドルの起動／終了時に設定／変更されたサブクラスパス記憶ファイル７０２０からライブラリのファイルパスを取得し、システムライブラリとコマンドパラメータで指定されたクラスパスの間に挿入する。係る処理により、システムライブラリ群７０３０を構築する。
【００７２】
そして、このようにして生成したシステムライブラリ群７０３０を本コンピュータのクラスをロードするシステムクラスローダ７０４０の構築時に与え、バンドルのファイルをシステムクラスのサーチパスに加える。
【００７３】
即ち、プラットフォーム上で実行可能な言語でもって記述されたソフトウェアモジュール群のうち、ライブラリ化するソフトウェアモジュールについてはその記憶場所を示すパスをリストに登録する。そして、この登録処理後に本コンピュータを起動する場合には、このリストに登録されたパスを起動コマンドのコマンドパラメータとして与えてから、この起動コマンドを用いて本コンピュータを起動する。
【００７４】
以上説明した処理でもって、本コンピュータを再起動させることができる。
【００７５】
OSGiでは、プラットフォームをシャットダウンするときの各バンドルの状態を記憶しておき、再度プラットフォームが起動されたときに記憶されていた状態に戻す仕様になっている。例えば、プラットフォームのシャットダウン時に起動されていたバンドルはプラットフォームの立ち上げ時に自動的に起動される。この起動の手順は上述したバンドルの起動手順と全く同じため、サブクラスパス管理テーブル７０１０は空の状態で初期化しておけば、バンドルの起動処理によって自動的に再構築される。
【００７６】
以上の説明により、本実施形態によれば、システムライブラリとして使用したいバンドルのファイルを、実際にシステムライブラリとして使用することができるようになる。
【００７７】
また通常、プラットフォームを構成するクラスは、コマンドパラメータとして指定されるクラスパス上に指定されるライブラリに格納されることが多い。例えば、プラットフォームを構成するクラス群の一部のクラスを入れ替えてバージョンアップを図りたいと言うときを考えてみる。この場合、入れ替えるクラスからなるバンドルのファイルを生成し、SystemLibrary属性を設定して通常のバンドルと全く同じようにインストールして起動さえしておけば、次に起動した時には、バージョンアップしたクラスが使用可能になっている。
【００７８】
＜その他の実施形態＞
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００７９】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施形態に係る情報処理に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図２】ハードディスク１０３０に保存されているソフトウェアの階層構造を示す図である。
【図３】バンドルをハードディスク１０３０にインストールする場合に、制御部１０１０が行う処理のフローチャートである。
【図４】バンドルのファイルが暗号化されていない状態におけるこのファイルの構成例を示す図である。
【図５】バンドル管理オブジェクトの構成例を示す図である。
【図６】インストールしたバンドルを起動する場合に、制御部１０１０が行う処理のフローチャートである。
【図７Ａ】サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルへのパスの登録処理を説明する図である。
【図７Ｂ】サブクラスパス管理テーブルの構成例を示すと共に、このサブクラスパス管理テーブルからパスを削除する処理について説明する図である。
【図７Ｃ】本コンピュータを再起動する際の処理の流れを模式的に示した図である。
【図８】実行中のバンドルを停止させるために、制御部１０１０が行う処理のフローチャートである。
【図１】
2008059482.tif 000003
【図２】
2008059482.tif 000004
【図３】
2008059482.tif 000005
【図４】
2008059482.tif 000006
【図５】
2008059482.tif 000007
【図６】
2008059482.tif 000008
【図７Ａ】
2008059482.tif 000009
【図７Ｂ】
2008059482.tif 000010
【図７Ｃ】
2008059482.tif 000011
【図８】
2008059482.tif 000012