(57)【要約】【課題】オブジェクト指向言語で記述されたアプリケーション間でオブジェクトを共用させて補助記憶装置の必要記憶容量を減らす。【解決手段】オブジェクト共用管理部４０が、新規インストールされたアプリケーションに含まれた動的に結合可能に構成された複数のオブジェクトの各々について、インストール済みのアプリケーションに含まれた、当該オブジェクトに代えて使用可能な他のオブジェクトの有無をチェックし、当該代わりに使用可能な他のオブジェクトが検出された場合、当該他のオブジェクトを当該チェック中のオブジェクトの共用先オブジェクトに設定し、当該チェック中のオブジェクトを削除する。プログラム実行制御部５０は、呼び出し元オブジェクトが、上記削除されたオブジェクトのロードを要求したとき、共用先のオブジェクトをメインメモリにロードし、呼び出し元のオブジェクトに動的に結合させて使用させる。【選択図】　　　図１
2004118753.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置にインストールされる複数のアプリケーションの各々が動的に結合可能に構成された複数のオブジェクトを含み、各アプリケーション内の各オブジェクトは前記情報処理装置に設けられた、メインメモリとは異なる記憶装置内の、当該アプリケーションを記憶するのに使用される一つ又は複数の記憶位置のいずれかに記憶される情報処理装置のためのオブジェクト共用化プログラムであって、以下のステップを前記情報処理装置に実行させるようにプログラムされていることを特徴とするオブジェクト共用化プログラム。
前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化ステップ。
【請求項２】
前記共用化情報は、前記他のオブジェクトが記憶されている前記記憶装置内の記憶位置に関連する共用先記憶位置情報である、ことを特徴とする請求項１に記載のオブジェクト共用化プログラム。
【請求項３】
前記インストール対象のアプリケーションは、前記記憶装置に新たにインストールされたアプリケーションであり、
前記共用可能オブジェクト検出ステップ、前記共用化情報記憶ステップ及び前記記憶無効化ステップは、前記インストール対象のアプリケーションのインストール後に実行され、
前記記憶無効化ステップは、代わりに使用可能な前記他のオブジェクトが検出された前記オブジェクトを前記記憶装置から削除し、当該削除されたオブジェクトに関連して記憶されていた前記共用化情報は削除しない、
ことを特徴とする請求項１又は２に記載のオブジェクト共用化プログラム。
【請求項４】
前記インストール対象のアプリケーションは、前記記憶装置にインストールされるべきアプリケーションであり、
前記共用可能オブジェクト検出ステップは、前記インストール対象のアプリケーションのインストールの前に実行され、
前記記憶無効化ステップは、前記インストール対象のアプリケーションのインストール時に、代わりに使用可能な他のオブジェクトが検出された前記オブジェクトを、前記記憶装置に記憶しないようにするか又は前記インストール対象のアプリケーションのインストール後に、当該オブジェクトを前記記憶装置から削除し、
前記共用化情報記憶ステップは、前記インストール対象のアプリケーションのインストール前又は後に、代わりに使用可能な他のオブジェクトが検出された前記オブジェクトに関連する情報として前記共用化情報を記憶する、
ことを特徴とする請求項１又は２に記載のオブジェクト共用化プログラム。
【請求項５】
前記情報処理装置にインストール済みの複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、当該オブジェクトの名称と、当該オブジェクトの当該名称以外の他の識別情報と、当該オブジェクトが記憶されている前記記憶装置内の記憶位置に関連する記憶位置情報とを含むオブジェクト管理情報を記憶するオブジェクト管理情報記憶ステップを更に情報処理装置に実行させるようにプログラムされ、
前記共用可能オブジェクト検出ステップは、前記情報処理装置にインストール済みの前記複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、前記記憶されたオブジェクト管理情報に含まれた当該オブジェクトの名称と当該名称以外の他の識別情報と、前記インストール対象のアプリケーションに含まれた、代わりに使用可能なオブジェクトの検出が行われる前記オブジェクトに関する、当該オブジェクトの名称と当該名称以外の他の識別情報とに基づいて実行される、
ことを特徴とする請求項１から４のいずれか一つに記載のオブジェクト共用化プログラム。
【請求項６】
インストール済みの複数のアプリケーションのいずれかをアンインストールする場合、当該アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているときには、当該共用を解除する共用解除ステップ、
を前記情報処理装置に更に実行させるようにプログラムされ、
前記共用解除ステップは、
前記アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているか否か及び共用されている場合には、当該共用元のオブジェクトを判別する共用元オブジェクト判別ステップと、
前記アンインストール対象のアプリケーションに含まれた前記オブジェクトがいずれかの他のオブジェクトにより共用されていると分かった場合、当該共用を解除するための処理を実行する共用解除処理ステップと、
を含み、
前記共用解除処理ステップは、
前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトを共用する前記他のオブジェクトが記憶されるべき、前記記憶装置内の記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動してそこに記憶させるオブジェクト移動ステップと、
前記他のオブジェクトに関連して記憶されていた前記アンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスさせるための共用化情報を無効にする共用化情報無効化ステップと、
を含むことを特徴とする請求項１から５のいずれか一つに記載のオブジェクト共用化プログラム。
【請求項７】
前記共用解除ステップは、
前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトが更に他のオブジェクトにより共用されている場合には、前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスするための前記更に他のオブジェクトに関連して記憶されている他の共用化情報を、前記オブジェクト移動ステップにより前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動して記憶させた前記他のオブジェクトにアクセスさせるための共用化情報に変更し、もって前記更に他のオブジェクトに前記他のオブジェクトを共用させる共用化情報変更ステップ、
を更に含むことを特徴とする請求項６に記載のオブジェクト共用化プログラム。
【請求項８】
前記共用元オブジェクト判別ステップは、インストール済みのいずれかのアプリケーションに含まれたいずれかのオブジェクトに関連して記憶された、前記アンインストール対象のアプリケーションに含まれたオブジェクトにアクセスするための共用化情報を検出し、当該共用化情報が検出されたときに、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトが当該検出された共用化情報が関連して記憶されている前記インストール済みのアプリケーションに含まれた前記オブジェクトに共用されていると判定し、
前記オブジェクト移動ステップは、前記検出された共用化情報が関連して記憶されている前記インストール済みのアプリケーションに含まれた前記共用元のオブジェクトを含む前記アプリケーションに依存して決められている、前記記憶装置内の前記共用元オブジェクトを記憶すべき記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動する、
ことを特徴とする請求項６又は７に記載のオブジェクト共用化プログラム。
【請求項９】
いずれかのインストール対象のアプリケーション内のいずれかのオブジェクトに対して、インストール済みのいずれかのアプリケーション内のいずれかのオブジェクトが代わりに使用可能なオブジェクトとして検出されたときに、当該インストール済みのオブジェクトに関連して、前記共用元のオブジェクトが記憶されるべき前記記憶装置内の記憶位置に関する共用元記憶位置情報を記憶する共用元記憶位置情報記憶ステップ、
を前記情報処理装置に更に実行させるようにプログラムされており、
前記共用元オブジェクト判別ステップは、当該アンインストール対象のアプリケーションに含まれた前記オブジェクトに関連して共用元記憶位置情報が記憶されているか否かにより前記アンインストール対象のアプリケーションに含まれた前記オブジェクトが他のオブジェクトにより共用されているか否か及び共用されている場合には共用元のオブジェクトを判別し、
前記オブジェクト移動ステップは、当該アンインストール対象のアプリケーションに含まれた前記オブジェクトに関連して共用元記憶位置情報が記憶されていると前記共用元オブジェクト判別ステップにより判別されたときに、当該共用元記憶位置情報が指定する前記記憶装置内の記憶位置に前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動する、
ことを特徴とする請求項６又は７に記載のオブジェクト共用化プログラム。
【請求項１０】
いずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求により指定された、前記記憶装置内の記憶位置に記憶された当該オブジェクトが指定するオブジェクト名を有する他のオブジェクトに関連して、当該他のオブジェクトに代えて使用可能な更に他のオブジェクトが前記記憶装置に記憶されている場合に、前記他のオブジェクトに代えて前記更に他のオブジェクトがロードされるように、前記ロード要求を変更するロード要求変更ステップと、
前記ロード要求にしたがって前記更に他のオブジェクトが前記メインメモリにロードされた後、当該ロードされた更に他のオブジェクトを前記ロード要求を含んでいる前記要求元のオブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、
を前記情報処理装置に更に実行させるようにプログラムされていることを特徴とする請求項１から９のいずれか一つに記載のオブジェクト共用化プログラム。
【請求項１１】
前記ロード要求変更ステップは、前記他のオブジェクトに関連して、当該他のオブジェクトに代えて前記更に他のオブジェクトにアクセスするための共用化情報が記憶されている場合に実行され、更に、前記ロード要求は、当該共用化情報に基づいて変更されることを特徴とする請求項１０に記載のオブジェクト共用化プログラム。
【請求項１２】
実行中のいずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求にしたがって、当該ロード要求に含まれた記憶位置情報により指定される、メインメモリとは異なる記憶装置内の記憶位置から、当該ロード要求により指定されたオブジェクト名を有する他のオブジェクトを前記メインメモリにロードするように、前記ロード要求を実行させるロード要求実行ステップと、
前記ロード要求実行ステップにより前記ロード要求が実行させられ前記他のオブジェクトが前記メインメモリにロードされた後に、当該ロードされた他のオブジェクトを、前記ロード要求を含むロード要求元の前記オブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、
前記ロード要求に含まれた前記記憶位置情報により指定される前記記憶装置内の記憶位置に記憶され当該ロード要求が指定する前記オブジェクト名を有するオブジェクトに関連して、当該オブジェクトに代えて使用可能な更に他のオブジェクトにアクセスするための共用化情報が記憶されているか否かを判別する共用化情報記憶判別ステップと、
を情報処理装置に実行させるようにプログラムされ、
前記ロード要求実行ステップは、前記ロード要求によりロードが要求された前記他のオブジェクトに関連して前記共用化情報が記憶されていることが分かった場合には、前記共用化情報により定まる前記記憶装置内の記憶位置から前記オブジェクト名を有する共用先の更に他のオブジェクトがロードされるように、実行させる前記ロード要求を変更するロード要求変更ステップを含む、
ことを特徴とするオブジェクト共用化プログラム。
【請求項１３】
インストールされた複数のアプリケーションを記憶するための、メインメモリとは異なる記憶装置を含み、前記複数のアプリケーションの各々が動的に結合可能に構成された複数のオブジェクトを含み、各アプリケーション内の各オブジェクトは前記記憶装置内の、当該アプリケーションを記憶するのに使用される一つ又は複数の記憶位置のいずれかに記憶され、以下の部分を更に備えることを特徴とする情報処理装置。
前記情報処理装置にインストールされるべきアプリケーションか又は新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出部と、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶部と、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化部。
【請求項１４】
情報処理装置にインストールされる複数のアプリケーションの各々が動的に結合可能に構成された複数のオブジェクトを含み、各アプリケーション内の各オブジェクトは前記情報処理装置に設けられた、メインメモリとは異なる記憶装置内の、当該アプリケーションを記憶するのに使用される一つ又は複数の記憶位置のいずれかに記憶される情報処理装置のためのオブジェクト共用化方法であって、以下のステップを含むもの。
前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにするイ記憶無効化ステップ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、それぞれ動的に結合可能に構成された複数のオブジェクトからなる複数のアプリケーションプログラム（本明細書では簡単化のためにアプリケーションと呼ぶことがある）の間でオブジェクトを共用可能にし、それでもってプログラムを記憶する記憶装置の必要容量を削減可能にするオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置に関する。
【０００２】
【従来の技術】
昨今、情報処理装置は多様化しており、従来のパーソナルコンピュータ（パソコン）だけでなく、ＰＤＡ等の個人情報端末も使用されている。情報処理装置でアプリケーションを使用可能にするには、当該アプリケーションを固定磁気ディスク装置又はフラッシュメモリ等の書き換え可能な半導体固定記憶装置に代表される補助記憶装置に記憶させ、更に情報処理装置に必要な設定をするいわゆるインストール操作をした後、当該インストールされたアプリケーションを起動してメインメモリにロードして実行する方法が採られている。
【０００３】
最近は、情報家電機器や携帯電話等の機器にもアプリケーションを実行する機能があらかじめ組み込まれている場合が多くなっている。このような機器は組み込みデバイスと呼ばれている。このような組み込みデバイスも、アプリケーションを実行できるので、本明細書では情報処理装置と見なすことにする。
【０００４】
情報処理装置にインストールするアプリケーションの数が多い場合、補助記憶装置の容量が大きくても、それらのアプリケーションを記憶させるのに要する容量を削減することが必要となる場合がある。補助記憶装置の容量が小さい場合には、インストールされるアプリケーションの数が少なくても、それらのアプリケーションを記憶するのに要する容量を削減することが必要になる場合がある。
【０００５】
従来からアプリケーションを記憶するのに要する容量を削減するためにいろいろな方法が使用された。その代表的な方法は、複数のアプリケーション間で共用可能な複数のプログラム（ライブラリプログラム）を、情報処理装置内のアプリケーション記憶エリアとは関係なく定められた特定のライブラリエリアに記憶して、複数のアプリケーションにより利用可能にすることである。
【０００６】
このようなライブラリプログラムを使用する場合、同じ名称のライブラリプログラムでも異なるバージョンのものを同一のライブラリプログラムとして扱うと問題が生じることがある。例えば、既にインストール済みのアプリケーションのバージョンアップ版をインストールする場合あるいは新たにアプリケーションをインストールする場合に、当該アプリケーションが使用するライブラリプログラムのバージョンが、情報処理装置に既にインストールされている同じ名称のライブラリプログラムのバージョンより新しいということがある。この場合、当該新しいバージョンのライブラリプログラムを、旧バージョンのライブラリプログラムを上書きするようにインストールすると、更新される前の旧バージョンのライブラリプログラムを正常に使用していたインストール済みの他のアプリケーションが、更新されたバージョンのライブラリプログラムを使用すると、正常に動作しなくなることがある。
【０００７】
この問題を解決するために、上記バージョンアップされたアプリケーションをインストールするときに、上記バージョンアップされたライブラリプログラムを、複数のアプリケーションとは関係なく定められた上記特定のライブラリエリアではなく、上記バージョンアップされたアプリケーションがインストールされたエリアに記憶し、更に、上記新たにインストールされたアプリケーションが上記ライブラリプログラムを参照するときに、当該新たにインストールされたアプリケーション用のエリア内に新たにインストールされた上記ライブラリプログラムにアクセスさせることが提案されている（例えば、特許文献１参照）。
【０００８】
複数のアプリケーション間で共用され、共通の領域に記憶された複数のダイナミックリンクライブラリプログラムについて、各アプリケーションが使用するダイナミックリンクライブラリプログラムのバージョンを登録しておき、各アプリケーションがいずれかのダイナミックリンクライブラリプログラムを呼び出したときには、そのアプリケーションに適したバージョンを有するダイナミックリンクライブラリプログラムを呼び出すようにすることも提案されている（例えば、特許文献２参照）。
【０００９】
ところで、従来は、インストールすべきアプリケーションを生成するには、独立した複数のソースプログラムをコンパイルして複数のオブジェクトモジュールを得て、それらのオブジェクトモジュールをあらかじめ静的にリンクして単独の実行ファイルを生成しアプリケーションとしてインストールするという方法が多く使用されていた。しかし、近年では、アプリケーションは、それぞれオブジェクト指向言語で記述され、動的に結合可能に形成されたプログラムである複数のオブジェクトにより構成されることが増えてきている。オブジェクトは、ソースプログラムの形態でもよく、ソースプログラムをコンパイルして得られる中間言語プログラムの形態でもよく、あるいはコンパイルされたオブジェクトコードの形態でもよい。
【００１０】
このようなアプリケーションを補助記憶装置に記憶して情報処理装置にインストールすると、当該アプリケーションを構成する複数のオブジェクトは複数のディレクトリに記憶される。そのアプリケーションの実行中にアプリケーション内のいずれかのオブジェクトから他の任意のオブジェクトを呼び出すときには、呼び出し先のオブジェクトがメインメモリにロードされ、ロードされたオブジェクトが呼び出し元のオブジェクト及びアプリケーション実行部（例えば、アプリケーションがインタプリタにより逐次解読されて実行されるときには、当該インタプリタ）に動的に結合される。これにより、呼び出し元のオブジェクトが呼び出し先のオブジェクトを利用可能になる。
【００１１】
このようなオブジェクト指向言語で記述されたオブジェクトは、特定のアプリケーションでしか使用できないということはなく、他のアプリケーションにも使用できる、いわばアプリケーションの部品オブジェクトとも言えるものである。近年、このような部品オブジェクトを開発して販売する企業も増えてきて、いわゆるオブジェクトコンポーネント化の流れが顕著になってきている。
【００１２】
【特許文献１】
特開２００１−２２５６９号公報
【特許文献２】
特開２００１−１５４８３１号公報
【００１３】
【発明が解決しようとする課題】
本発明者は、上記のように部品オブジェクトが市場に流通し任意のアプリケーションに組み込まれて使用されるようになっている状況を考えると、情報処理装置の利用者が複数のアプリケーションを同じ情報処理装置にインストールした場合に、それらのアプリケーションの開発者が全く異なっていても、他の開発者により開発され販売された同じ部品オブジェクトがそれらのアプリケーションに使用されていることが起こりうることに気が付いた。更に、本発明者は、これらのアプリケーションの間で一つの部品オブジェクトを共用させ、補助記憶装置に当該部品オブジェクトを複数個記憶しないようにすることができれば、補助記憶容量の必要容量を減らすことができることに気が付いた。
【００１４】
更に、本発明者は、組み込みデバイスに関してはオブジェクトを含むアプリケーションが使用される場合が増えているが、組み込みデバイスでは使用可能な補助記憶装置の記憶容量が非常に小さい場合が多いので、上記のように異なるアプリケーション間でオブジェクトを共用させることにより補助記憶装置の消費容量を減らすことが特に望ましいと考えるに至った。
【００１５】
このように、オブジェクトを複数のアプリケーション間で共用可能にすることが望ましいが、既に述べた従来技術のような、特定のライブラリエリアに共用されるプログラムを記憶する方法は、オブジェクトの共用管理には望ましくないことに本発明者は気付いた。すなわち、共用されるオブジェクトを特定のライブラリエリアに記憶する方法を使用するには、アプリケーションを構成する複数のオブジェクトの各々について、他のアプリケーションにより共用される可能性があるか否かを決める必要がある。しかし、アプリケーションの開発者は、そのアプリケーションが使用するオブジェクトが、他の開発者により開発される他のアプリケーションにより共用される可能性があるか否かは通常は予測できない。したがって、アプリケーションを構成する複数のオブジェクトのうち共用されるオブジェクトを共用のオブジェクト用の特定のエリアに記憶させるという方法を実質的に採ることができない。
【００１６】
本発明の目的は、上記のような事情に鑑みて、それぞれ複数のオブジェクトの集合から構成される複数のアプリケーション間でオブジェクトを共用可能にするオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【００１７】
本発明のより具体的な目的は、新たにインストールしたかあるいはこれからインストールしようとするインストール対象のアプリケーションを構成するいずれかのオブジェクトについて、インストール済みの他のいずれかのアプリケーションを構成し上記インストール対象の上記オブジェクトの代わりに使用可能な（共用可能な）オブジェクトを共用させるオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【００１８】
本発明の他の具体的な目的は、実行中のいずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求にしたがって、当該ロード要求により指定されたオブジェクト名を有するオブジェクトとして、上記アプリケーション内の上記オブジェクトの代わりに使用可能な（共用可能な）、他のアプリケーションに含まれたオブジェクトをロードして共用させるオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【００１９】
【課題を解決するための手段】
本願において開示される発明の代表的なものの概要は下記のとおりである。本発明に係るオブジェクト共用化プログラムは、情報処理装置にインストールされる複数のアプリケーションの各々が動的に結合可能に構成された複数のオブジェクトを含み、各アプリケーション内の各オブジェクトは前記情報処理装置に設けられた、メインメモリとは異なる記憶装置内の、当該アプリケーションを記憶するのに使用される一つ又は複数の記憶位置のいずれかに記憶される情報処理装置のためのオブジェクト共用化プログラムであって、以下のステップを前記情報処理装置に実行させるようにプログラムされているものである。
すなわち、前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化ステップ。
【００２０】
これにより、インストール対象のアプリケーション内のオブジェクトに対して代わりに使用可能な、他のアプリケーション内の他のオブジェクトがあれば、当該他のオブジェクトを共用させることができる。
【００２１】
前記共用化情報の望ましい例は、前記他のオブジェクトが記憶されている前記記憶装置内の記憶位置に関連する共用先記憶位置情報である。なお、上記インストール対象のアプリケーションが、新たに情報処理装置にインストールされたアプリケーションの場合でも、これから情報処理装置にインストールしようとするアプリケーションの場合でも上記発明を適用することがえきる。
【００２２】
より具体的には、本発明に係る上記オブジェクト共用化プログラムは、前記情報処理装置にインストール済みの複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、当該オブジェクトの名称と、当該オブジェクトの当該名称以外の他の識別情報と、当該オブジェクトが記憶されている前記記憶装置内の記憶位置に関連する記憶位置情報とを含むオブジェクト管理情報を記憶するオブジェクト管理情報記憶ステップを更に情報処理装置に実行させるようにプログラムされ、前記共用可能オブジェクト検出ステップは、前記情報処理装置にインストール済みの前記複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、前記記憶されたオブジェクト管理情報に含まれた当該オブジェクトの名称と当該名称以外の他の識別情報と、前記インストール対象のアプリケーションに含まれた、代わりに使用可能なオブジェクトの検出が行われる前記オブジェクトに関する、当該オブジェクトの名称と当該名称以外の他の識別情報とに基づいて実行される。
【００２３】
これにより、インストール対象のアプリケーション内のオブジェクトについて、他のアプリケーション内の共用可能な他のオブジェクトを、インストール済みのアプリケーションのオブジェクトについて記憶されたオブジェクト管理情報に基づいて迅速に検出することができる。
【００２４】
更に具体的には、本発明に係る上記オブジェクト共用化プログラムは、インストール済みの複数のアプリケーションのいずれかをアンインストールする場合、当該アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているときには、当該共用を解除する共用解除ステップ、を前記情報処理装置に更に実行させるようにプログラムされている。
前記共用解除ステップは、前記アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているか否か及び共用されている場合には、当該共用元のオブジェクトを判別する共用元オブジェクト判別ステップと、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトがいずれかの他のオブジェクトにより共用されていると分かった場合、当該共用を解除するための処理を実行する共用解除処理ステップと、を含む。
前記共用解除処理ステップは、前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトを共用する前記他のオブジェクトが記憶されるべき、前記記憶装置内の記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動してそこに記憶させるオブジェクト移動ステップと、前記他のオブジェクトに関連して記憶されていた前記アンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスさせるための共用化情報を無効にする共用化情報無効化ステップと、を含む。
【００２５】
こうして、アンインストール時に、オブジェクトの共用を解除してオブジェクトが共用される前の状態を回復することを容易に実現することができる。
【００２６】
本発明に係る上記オブジェクト共用化プログラムのより望ましい態様は、いずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求により指定された、前記記憶装置内の記憶位置に記憶された当該オブジェクトが指定するオブジェクト名を有する他のオブジェクトに関連して、当該他のオブジェクトに代えて使用可能な更に他のオブジェクトが前記記憶装置に記憶されている場合に、前記他のオブジェクトに代えて前記更に他のオブジェクトがロードされるように、前記ロード要求を変更するロード要求変更ステップと、前記ロード要求にしたがって前記更に他のオブジェクトが前記メインメモリにロードされた後、当該ロードされた更に他のオブジェクトを前記ロード要求を含んでいる前記要求元のオブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、を前記情報処理装置に更に実行させるようにプログラムされているものである。
【００２７】
これにより、ロード要求でロードが要求されたオブジェクトに対する共用先の他のオブジェクトを、当該他のオブジェクトの名称と当該他のオブジェクトが記憶されている記憶位置を指定してロードされるように、ロード要求を変更することが可能になり、共用先のオブジェクトをロード要求されたオブジェクトに代えてロードすることが可能になる。
【００２８】
本発明に係る上記オブジェクト共用化プログラムの他の望ましい態様は、実行中のいずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求にしたがって、当該ロード要求に含まれた記憶位置情報により指定される、メインメモリとは異なる記憶装置内の記憶位置から、当該ロード要求により指定されたオブジェクト名を有する他のオブジェクトを前記メインメモリにロードするように、前記ロード要求を実行させるロード要求実行ステップと、前記ロード要求実行ステップにより前記ロード要求が実行させられ前記他のオブジェクトが前記メインメモリにロードされた後に、当該ロードされた他のオブジェクトを、前記ロード要求を含むロード要求元の前記オブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、前記ロード要求に含まれた前記記憶位置情報により指定される前記記憶装置内の記憶位置に記憶され当該ロード要求が指定する前記オブジェクト名を有するオブジェクトに関連して、当該オブジェクトに代えて使用可能な更に他のオブジェクトにアクセスするための共用化情報が記憶されているか否かを判別する共用化情報記憶判別ステップと、を情報処理装置に実行させるようにプログラムされ、更に、前記ロード要求実行ステップは、前記ロード要求によりロードが要求された前記他のオブジェクトに関連して前記共用化情報が記憶されていることが分かった場合には、前記共用化情報により定まる前記記憶装置内の記憶位置から前記オブジェクト名を有する共用先の更に他のオブジェクトがロードされるように、実行させる前記ロード要求を変更するロード要求変更ステップを含む、ものである。
【００２９】
これにより、ロード要求でロードが要求された他のオブジェクトの代わりに使用可能な更に他のオブジェクトに関連して当該更に他のオブジェクトにアクセスするための共用化情報が記憶されている場合、当該共用化情報を使用して、当該更に他のオブジェクトを容易にロードさせることができる。
【００３０】
【発明の実施の形態】
以下、図面を参照して本発明に係るオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置のいくつかの実施の形態を詳細に説明する。なお、発明の第２の実施の形態以降においては、発明の第１の実施の形態との相違点を主に説明するに止める。
【００３１】
＜発明の第１の実施の形態＞
図１は、本発明に係る情報処理装置の第１の実施の形態の概略ブロック図である。図において、情報処理装置１は、中央処理装置（以下では、単に処理装置と呼ぶことがある）１０と、マウス等のポインティングデバイス及びキーボード等文字入力装置とを含む入力装置１１と、ＣＲＴ表示装置や液晶表示装置等の表示装置１２と、メインメモリとして使用されるランダムアクセスメモリ（ＲＡＭ）１３と、半導体固定記憶装置（ＲＯＭ）１４と、例えば磁気ディスク記憶装置、光学ディスク記憶装置、磁気光学ディスク記憶装置その他のディスク記憶装置あるいは書き込み可能な半導体固定記憶装置（例えばフラッシュメモリ）その他の半導体記憶装置からなる補助記憶装置１５等を備えている。補助記憶装置１５には、情報処理装置１にインストールされた複数のアプリケーションが記憶される。
【００３２】
処理装置１０は、オブジェクト共用化部２０を備えている。オブジェクト共用化部２０は、インストール部３０Ａと、アンインストール部３０Ｂと、オブジェクト共用管理部４０と、プログラム実行制御部５０とを備えている。オブジェクト共用管理部４０は、オブジェクト共用設定部４００とオブジェクト共用解除部４５０とを備えている。プログラム実行制御部５０は、インタプリタ部５００とＯＳ部５１０とを備えている。
【００３３】
オブジェクト共用化部２０は、オブジェクト共用化プログラムにより実現される。オブジェクト共用化部２０の内部の処理部３０Ａ、３０Ｂ、４０、５０は、それぞれインストールプログラム、アンインストールプログラム、オブジェクト共用管理プログラム、プログラム実行制御プログラムにより実現される。したがって、オブジェクト共用化部２０を実現する上記オブジェクト共用化プログラムは、インストールプログラム、アンインストールプログラム、オブジェクト共用管理プログラム、プログラム実行制御プログラムを含むことになる。更に、インタプリタ部５００はインタプリタにより実現され、ＯＳ部５１０はＯＳにより実現される。
【００３４】
オブジェクト共用化部２０を実現するオブジェクト共用化プログラムは、本発明に係るオブジェクト共用化プログラムの一つの実施の形態を示し、情報処理装置１は、本発明に係る情報処理装置の一つの実施の形態を示す。情報処理装置１により実行されるオブジェクト共用化のための処理は、本発明に係るオブジェクト共用化方法の一つの実施の形態を使用する。
【００３５】
図２は、補助記憶装置１５に記憶されている、情報処理装置１にインストールされた複数のアプリケーション６０、７０、８０のプログラム構造の概略を例示する図である。各アプリケーションは、複数のオブジェクト６１、６２、又は７１、７２又は８１、８２を含んでいる。各アプリケーションに対応して更にオブジェクト管理情報６３、７３又は８３が記憶されている。なお、図では、簡単化のために３つのアプリケーションのみが図示されているが、本発明はその数に制限はない。更に、図では、各アプリケーション、例えば６０内には２つのオブジェクト６１、６２のみが示されているが、本発明はその数には限定されない。
【００３６】
本実施の形態ではアプリケーションは、オブジェクト指向言語で記述されている。すなわち、アプリケーションを構成する複数のオブジェクトの各々は、オブジェクト指向言語で記述され、動的に結合可能に形成されている。本発明を適用するうえでは、各オブジェクトはソースプログラムでもよく、ソースプログラムをコンパイラでコンパイルして得られる中間語プログラム（中間コードとも呼ばれる）でもよく、あるいはソースプログラムをコンパイラでコンパイルして得られるオブジェクトプログラムでもよいが、本実施の形態では、各オブジェクトは、ソースプログラムをコンパイルして得られる動的に結合可能に形成された中間コードであるとする。本実施の形態では、この中間コードは、後に説明するように、インタプリタにより逐次解読されて実行される。
【００３７】
各アプリケーション、例えば６０に対するオブジェクト管理情報６３は、図２では、簡単化のためにアプリケーション６０を示すブロック内に示されているが、オブジェクト管理情報６３は、アプリケーション６０に対応して記憶されていればよく、その記憶位置がアプリケーションの記憶位置と同じでなければならないことを示すものではない。しかし、オブジェクト管理情報６３の記憶位置がアプリケーション６０の記憶位置と同じであると、オブジェクト管理情報６３の検索が容易である。具体的には、各アプリケーションのオブジェクト管理情報は、当該アプリケーションがインストールされる、後述するオブジェクトルートディレクトリに記憶させるのがよい。
【００３８】
各アプリケーションを構成する複数のオブジェクトの一つはメインオブジェクトであり、そのメインオブジェクトは、そのアプリケーションの起動時に最初に起動されるべきオブジェクトである。またメインオブジェクトを含む複数のオブジェクトは一般にツリー構造を有する複数のディレクトリに分散して記憶される。これらのディレクトリのツリー構造の最上層をオブジェクトルートと呼ぶ。このオブジェクトルートがあるディレクトリをオブジェクトルートディレクトリと呼ぶことにする。各ディレクトリには一つ又は複数のオブジェクトが記憶される。利用者は、インストール部３０Ａを用いてそのアプリケーションをインストールするときには、通常は、当該アプリケーションをインストールすべきディレクトリを指定することができる。インストール部３０Ａは、利用者が指定したディレクトリをオブジェクトルートディレクトリとして使用し、アプリケーション内の各オブジェクトを、オブジェクトルートディレクトリとの間についての当該アプリケーションが指定する相対パスを有するディレクトリに記憶させる。
【００３９】
図３は、アプリケーション６０、７０、８０がそれぞれインストールされる前にそれらのアプリケーションに含まれているオブジェクト管理情報６３、７３、８３の例を示す図である。これらのオブジェクト管理情報は同じ構造を有している。各オブジェクト管理情報には、対応するアプリケーションを構成する複数のオブジェクトの各々に関するいろいろな情報が記憶される。具体的には、オブジェクト管理情報６３には、アプリケーション６０に含まれる複数のオブジェクトの各々に対して、当該オブジェクトの複数の識別情報と、当該オブジェクトにアクセスするための情報とを記憶するフィールドが設けられている。
【００４０】
識別情報を記憶するフィールドとしては、オブジェクト名称６３１と他の識別情報６３５をそれぞれ記憶するフィールドが設けられている。他の識別情報６３５を記憶するフィールドには、例えば、バージョン情報、制作年月日、製造元企業名、使用されている言語の種類を示す言語情報、プログラムサイズ、シリアルナンバー等の複数の識別情報が記憶される。オブジェクトにアクセスするための情報としては、自パス情報６３２、共用先パス情報６３３、共用元オブジェクト数６３４をそれぞれ記憶するフィールドが設けられている。なお、共用元オブジェクト数６３４は、図３では簡単化のために共用元数と表示されている。また、そのように呼ぶことがある。
【００４１】
各オブジェクトに対して記憶された上記複数の情報のうちオブジェクト名称６３１と他の識別情報６３５はあらかじめオブジェクト管理情報６３内に初期値として記憶されている。当該アプリケーションのオブジェクトの自パス情報６３２には、当該アプリケーションのオブジェクトルートディレクトリから当該オブジェクトへの相対パス情報があらかじめ初期値として記憶されている。
【００４２】
例えば、図３では、、オブジェクトｂ、ｃが記憶されるべきディレクトリは、オブジェクトルートディレクトリからの相対パス表現で、それぞれ　ｒｅｌａｔｉｖｅ（−１）　ｂｂｂ、ｒｅｌａｔｉｖｅ（−１）　ｃｃｃであることが示されている。ここで、ｒｅｌａｔｉｖｅ（−１）は、１階層下位側にあるディレクトリを示す。オブジェクトａの自パス情報６３２には何も記憶されていないので、オブジェクトａは、アプリケーション７０のオブジェクトルートディレクトリに記憶されるべきであることが分かる。なお、相対パスの表現方法は他の方法でもよいことは言うまでもない。
【００４３】
オブジェクト管理情報７３にも、各オブジェクトに対してオブジェクト名称７３１、自パス情報７３２、共用先パス情報７３３、共用元オブジェクト数７３４、他の識別情報７３５を記憶するフィールドが設けられている。同様に、オブジェクト管理情報８３にも、各オブジェクトに対してオブジェクト名称８３１、自パス情報８３２、共用先パス情報８３３、共用元オブジェクト数８３４、他の識別情報８３５を記憶するフィールドが設けられている。
【００４４】
アプリケーション７０を構成する複数のオブジェクトのそれぞれの名称７３１は、オブジェクトｘ、ｙ、ｚであり、オブジェクトｙ、ｚの自パス情報７３２には、相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｂｂｂ、ｒｅｌａｔｉｖｅ（−１）　ｃｃｃがそれぞれ初期値として記憶されている。オブジェクトｙ、ｚは、それぞれアプリケーション７０のオブジェクトルートディレクトリの下位のディレクトリに記憶されるべきであることが示されている。オブジェクトａの自パス情報７３２には何も記憶されていないので、オブジェクトａは、アプリケーション７０のオブジェクトルートディレクトリに記憶されるべきであることが分かる。オブジェクトｘ、ｙ、ｚの他の識別情報７３５にはオブジェクト名称以外の複数の識別情報があらかじめ記憶されている。
【００４５】
アプリケーション８０の場合には、アプリケーション８０を構成する複数のオブジェクトの名称８３１は、オブジェクトｌ、ｍ、ｎであり、オブジェクトｍ、ｎの自パス情報８３２には、相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｂｂｂ、ｒｅｌａｔｉｖｅ（−１）　ｃｃｃが初期値として記憶されている。オブジェクトｍ、ｎは、それぞれオブジェクトルートディレクトリの下位のディレクトリに記憶されるべきことが示されている。オブジェクトａの自パス情報７３２には何も記憶されていないので、オブジェクトａは、アプリケーション７０のオブジェクトルートディレクトリに記憶されるべきであることが分かる。オブジェクトｌ、ｍ、ｎの他の識別情報８３５にもオブジェクトの名称以外の複数の識別情報があらかじめ記憶されている。
【００４６】
図４は、図１の情報処理装置で使用されるオブジェクト共用設定部４００の概略ブロック図である。オブジェクト共用設定部４００は、オブジェクト管理情報記憶部４１０、共用可能オブジェクト検出部４２０、共用化情報記憶部４３０と共用元オブジェクト削除部４４０を備えている。
【００４７】
図５は、オブジェクト共用設定部４００の処理の概略フローチャートである。本発明は、あらかじめ複数のアプリケーションがインストールされた状態で追加して新たにアプリケーションがインストールされた場合及びあらかじめ複数のアプリケーションがインストールされた状態で、追加して新たにアプリケーションをこれからインストールしようとする場合のいずれの場合にも適用することができる。したがって、本明細書では、新たにインストールされたアプリケーションあるいはこれからインストールしようとするアプリケーションを区別しないで説明するときには、いずれをもインストール対象のアプリケーションと呼ぶことがあり、当該アプリケーションに含まれたオブジェクトをインストール対象オブジェクトと呼ぶことがある。
【００４８】
本実施の形態では、オブジェクト共用管理部４０は、新たにアプリケーションが現にインストールされた場合に自動的に動作するようになっているとする。なお、これから新たにアプリケーションをインストールしようとするときにオブジェクト共用管理部４０を動作させてアプリケーション間でオブジェクトを共用させる実施の形態は、別の実施の形態として説明する。
【００４９】
オブジェクト共用管理部４０がインストールされる前に既にインストールされたアプリケーションがある場合には、以下に述べる新たにインストールされたアプリケーションについての処理を個々のインストール済みのアプリケーションについて行い、更に、アプリケーション間でのオブジェクトの共用のための処理を行えばよい。以下では、既にインストール済みのアプリケーションについて以上の処理が終了していると仮定する。
【００５０】
さて、オブジェクト共用設定部４００は、インストール部３０Ａ（図１）により新たにアプリケーションが補助記憶装置１５に記憶されてインストールされる毎に起動され、以下の処理を行う。なお、ＯＳ部５１０が、インストールが実行されたことを検出してＯＳ部５１０により自動的にオブジェクト共用設定部４００を起動してもよい。あるいは、インストール部３０Ａがインストールを行ったときに、インストール部３０Ａがオブジェクト共用設定部４００を起動させるようにしてもよい。あるいは、利用者は、インストール部３０Ａを起動してアプリケーションを新たにインストールした後に、オブジェクト共用設定部４００を起動するための操作をしてもよい。あるいは、オブジェクト共用設定部４００は、常時起動された状態にあり、いずれかのアプリケーションが新たにインストールされたか否かを監視し、新たなインストールを検出したときには、上に述べたようにして起動されたときと同じように、以下の処理を行うようにしてもよい。
【００５１】
図５において、オブジェクト共用設定部４００は、呼び出されると、まず、オブジェクト管理情報記憶部４１０が呼び出す。オブジェクト管理情報記憶部４１０は、新たにインストールされたアプリケーションに対するオブジェクト管理情報（例えば６３）内に当該アプリケーションを構成する各オブジェクトに対する自パス情報６３２を更新する。すなわち、それぞれのオブジェクトが記憶されたディレクトリの絶対パス情報が自パス情報として当該アプリケーションに対するオブジェクト管理情報内に記憶される。
【００５２】
図６は、アプリケーション６０、７０、８０がそれぞれインストールされた直後のオブジェクト管理情報６３、７３、８３の内容の例を示す。例えばアプリケーション６０がインストールされると、オブジェクトａに対する自パス情報６３２は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図６に示すように、ａａａ／ｂｂｂ／ｃｃｃ　に変更される。オブジェクトｂに対する自パス情報６３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｂｂｂから、例えば図６に示すように、オブジェクトｂが記憶されたディレクトリの絶対パス情報　ａａａ／ｂｂｂ／ｃｃｃ／ｂｂｂ　に変更される。同様に、オブジェクトｃに対する自パス情報６３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｃｃｃから、図６に示すように、オブジェクトｃが記憶されたディレクトリの絶対パス情報　ａａａ／ｂｂｂ／ｃｃｃ／ｃｃｃ　に変更される。
【００５３】
以下では、アプリケーション６０がインストールされた後、当該アプリケーション６０に関してオブジェクト共用設定部４００が呼び出され、その後にアプリケーション７０がインストールされ、当該アプリケーション７０に対してオブジェクト共用設定部４００が呼び出され、更にその後アプリケーション８０がインストールされ、アプリケーション８０に関してオブジェクト共用設定部４００が呼び出されると仮定する。
【００５４】
アプリケーション６０がインストールされた後の共用可能オブジェクト検出部４２０の処理を説明する前に、アプリケーション７０、８０がそれぞれインストールされた直後のオブジェクト管理情報７３と８３の内容を先に説明しておく。アプリケーション７０がインストールされると、オブジェクトｘに対する自パス情報７３２は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図６に示すように、ｂｂｂ／ｂｂｂ／ｃｃｃ　に変更される。オブジェクトｂに対する自パス情報７３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｂｂｂから、例えば図６に示すように、オブジェクトｂが記憶されたディレクトリの絶対パス情報ｂｂｂ／ｂｂｂ／ｃｃｃ／ｂｂｂ　に変更される。同様に、オブジェクトｃに対する自パス情報７３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｃｃｃから、図６に示すように、オブジェクトｃが記憶されたディレクトリの絶対パス情報　ｂｂｂ／ｂｂｂ／ｃｃｃ／ｃｃｃ　に変更される。
【００５５】
同様に、アプリケーション８０がインストールされると、メインオブジェクトｌに対する自パス情報８３２は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図６に示すように、ｃｃｃ／ｂｂｂ／ｃｃｃ　に変更される。オブジェクトｍに対する自パス情報８３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｂｂｂから、例えば図６に示すように、オブジェクトｍが記憶されたディレクトリの絶対パス情報　ｃｃｃ／ｂｂｂ／ｃｃｃ／ｂｂｂ　に変更される。同様に、オブジェクトｎに対する自パス情報８３２は、初期値の相対パス情報ｒｅｌａｔｉｖｅ（−１）　ｃｃｃから、図６に示すように、オブジェクトｎが記憶されたディレクトリの絶対パス情報　ｃｃｃ／ｂｂｂ／ｃｃｃ／ｃｃｃ　に変更される。
【００５６】
さて、図５に戻り、アプリケーション６０がインストールされた段階で行われる共用可能オブジェクト検出部４２０の処理を説明する。なお、アプリケーション７０、８０のインストールは後に行われると仮定している。共用可能オブジェクト検出部４２０は、既にインストール済みの多数のアプリケーションに属するオブジェクトのうち、新たにインストールされたアプリケーション６０内の各オブジェクトに代えて使用可能な他のオブジェクトがあるか否かを検出する。本明細書では、あるオブジェクトに代えてあるいはその代わりに使用可能なオブジェクトを共用可能なオブジェクトと呼ぶことがある。更に前者の代わりに後者を使用することが決定された場合には、後者を共用先オブジェクトと呼び、前者を共用元オブジェクトと呼ぶことがある。
【００５７】
具体的には、まず、新たにインストールされたアプリケーション（今の仮定ではアプリケーション６０）内のオブジェクトのうち、オブジェクト共用設定部４００での共用設定処理の要否のチェック対象とすべきオブジェクトの選択を試みる（ステップＳ４２１）。そのようなオブジェクトが選択できたか否かが判断され（ステップＳ４２２）、例えばオブジェクトｂが選択できた場合には、上記共用可能なオブジェクトの検出は以下のようにして行われる。
【００５８】
まず、上記新たにインストールされたオブジェクトに関して共用可能性を未だチェックしていない、インストール済みの他のオブジェクトの検出を試みる（ステップＳ４２３）。そのような未チェックの他のオブジェクトが検出できたか否かが判断され（ステップＳ４２４）、そのような未チェックの他のオブジェクトが検出できたときには、当該他のオブジェクトに対するオブジェクト管理情報内の複数の識別情報（具体的には、オブジェクト名と他の識別情報）と、新たにインストールされステップＳ４２１で選択されたチェック対象のオブジェクトに対するオブジェクト管理情報６３内の対応する複数の識別情報６３１と６３５を比較する（　ステップＳ４２５）。当該比較の結果に基づいて、前者が後者の代わりに使用可能であるか否かが判断される（ステップＳ４２６）。
【００５９】
ここでは、両者の複数の識別情報が完全に一致するときに、前者が後者の代わりに使用可能であるとする。しかし、バージョン情報、制作年月日等の一部の識別情報のみが異なり、他の識別情報が一致する場合には、異なるバージョン間の互換性に関する情報が別にあらかじめ記憶されていれば、バージョンが異なっていても前者が後者の代わりに使用可能であると判断するようにすることもできる。このようにすれば、他のオブジェクトの代わりに使用可能なオブジェクトとは、当該他のオブジェクトと同一のオブジェクトでなくてもよいことになる。
【００６０】
ステップＳ４２６において前者が後者の代わりに使用可能でないと判断されたときには（ステップＳ４２６でＮｏの場合）、処理はステップＳ４２３に戻り、インストール済みのアプリケーション内の更に未チェックの他のオブジェクトを検出して以上の共用可能性チェック処理を繰り返す。他のインストール済みのアプリケーションのオブジェクトについて以上の共用可能性チェック処理を繰り返しても、ステップＳ４２１で選択された新たにインストールされたチェック対象のオブジェクトの代わりに使用可能なインストール済みのオブジェクトが検出されなかったときには、ステップＳ４２４において、未チェックのオブジェクトを選択できなかったと判断されるに至る。
【００６１】
こうして、ステップＳ４２１で選択された新たにインストールされたチェック対象のオブジェクトに対するオブジェクト共用化処理は終了すると、処理はステップＳ４２１に戻り、新たにインストールされたアプリケーション内の他のオブジェクトについて以上の処理が繰り返される。
【００６２】
一方、ステップＳ４２１で選択されたいずれかの新たにインストールされたチェック対象のオブジェクトについて、そのオブジェクトの代わりに使用可能ないずれかのインストール済みのオブジェクトが検出されたとステップＳ４２６において判断されたときには、当該新たにインストールされたチェック対象のオブジェクトについて共用可能オブジェクト検出部４２０の処理が成功裏に終了し、オブジェクト共用設定部４００では、共用化情報記憶部４３０が呼び出される。
【００６３】
共用化情報記憶部４３０は、共用可能オブジェクト検出部４２０により共用可能なオブジェクトが検出された場合、その新たにインストールされたチェック中のオブジェクトを共用元のオブジェクトに設定し、当該共用可能なオブジェクトを共用先のオブジェクトに設定する処理を行う。具体的には、新たにインストールされたチェック中のオブジェクトに対応する、オブジェクト管理情報６３内に、当該共用可能なオブジェクトを共用先オブジェクトに指定するための共用化情報を記憶する。
【００６４】
図３に例示したようにオブジェクト管理情報６３には、共用化情報として、共用先パス情報６３３と共用元オブジェクト数６３４が記憶されるフィールドが設けられている。同様に、他のアプリケーション７０に対応するオブジェクト管理情報７３にも共用先パス情報７３３、共用元オブジェクト数７３４を記憶するフィールドが設けられ、アプリケーション８０に対応するオブジェクト管理情報８３にも共用先パス情報８３３、共用元オブジェクト数８３４を記憶するフィールドが設けられている。アプリケーション、例えば６０がインストールされた直後では、対応するオブジェクト管理情報、例えば６３内の共用先パス情報、例えば６３３は空白であり、共用元オブジェクト数、例えば６３４は初期値として値０を採る。
【００６５】
図５に戻り、共用化情報記憶部４３０が呼び出されると、他のインストール済みのアプリケーションに対応するオブジェクト管理情報内に記憶された当該共用可能なオブジェクトに対する自パス情報を、新たにインストールされたチェック中のオブジェクトに対して記憶された、オブジェクト管理情報６３内の共用先パス情報フィールド６３３に記憶する（ステップＳ４３１）。こうして、共用可能なオブジェクトがチェック中のオブジェクトに対する共用先オブジェクトに設定され、チェック中のオブジェクトが共用元オブジェクトに設定されたことになる。この共用先パス情報は、共用元のオブジェクトに代えて、共用先のオブジェクトにアクセスするのを可能にする。このように、共用化情報として、共用先のオブジェクトの補助記憶装置内の記憶位置に関連する情報を使用した場合、共用化情報を用いて共用先のオブジェクトにアクセスすることができるので、共用先のオブジェクトにアクセスして当該オブジェクトを共用元のオブジェクトに代えて使用するための処理が極めて簡単になる。
【００６６】
更に、共用先のオブジェクトが属するインストール済みのアプリケーションに対するオブジェクト管理情報内の当該共用先のオブジェクトに対する共用元オブジェクト数を１だけ増大する（ステップＳ４３２）。こうして、共用元オブジェクト数が当該共用先のオブジェクトを共用する共用元のオブジェクトの総数を表すことになる。
【００６７】
その後、共用元オブジェクト削除部４４０が呼び出され、共用元オブジェクト削除部４４０は上記共用元オブジェクトに設定されたオブジェクトが補助記憶装置１５に記憶されないようにする。具体的には、当該オブジェクトを補助記憶装置１５から削除すればよい。こうして、上記共有元と判断されたオブジェクトについてのオブジェクト共用化処理が終了し、その後、処理はステップＳ４２１に移り、新たにインストールされたアプリケーション内の他のオブジェクトについて、共用可能オブジェクト検出部４２０以降の処理が繰り返されることになる。新たにインストールされたアプリケーション内の全てのオブジェクトについてオブジェクト共用化処理が終了すると、未チェックのオブジェクトがなくなり、選択不成功とステップＳ４２２で判断され、オブジェクト共用設定部４００の処理が終了する。その後、アプリケーション７０、８０がインストールされたときにも同様にオブジェクト共用設定部４００が実行される。
【００６８】
以上のオブジェクト共用設定部４００の処理を図３と図６を参照して更に説明する。図３は、既に説明したように、アプリケーション６０、７０、８０がそれぞれインストールされる前のオブジェクト管理情報６３、７３、８３の例を示し、図６は、アプリケーション６０、７０、８０がそれぞれインストールされた直後のオブジェクト管理情報６３、７３、８３の例を示す。
【００６９】
まず、アプリケーション６０がインストールされたのを契機にしてオブジェクト共用設定部４００が起動され、当該アプリケーション６０に関してオブジェクト管理情報記憶部４１０が呼び出され、オブジェクト管理情報記憶部４１０は、図３のオブジェクト管理情報６３内の自パス情報６３２に絶対パス表現の自パス情報を記憶してオブジェクト管理情報６３を図６に示すものに変更する。更に、共用可能オブジェクト検出部４２０により、アプリケーション６０内の各オブジェクトに対して共用可能なオブジェクトが検出される。ここでは、アプリケーション６０のいずれのオブジェクトに対しても共用可能なオブジェクトが検出できなかったと仮定する。したがって、オブジェクト管理情報６３内の共用先パス情報６３３は、図６に示すように空白のままで、オブジェクト共用設定部４００が終了する。
【００７０】
この後にアプリケーション７０が新たにインストールされたとする。そのインストールを契機に、オブジェクト共用設定部４００が呼び出され、オブジェクト管理情報記憶部４１０により、当該アプリケーション７０に対するオブジェクト管理情報７３の内容が図３のものから図６に示したものに変更され、その後、共用可能オブジェクト検出部４２０がアプリケーション７０に関して呼び出され、アプリケーション７０内の各オブジェクトｘ、ｙ、ｚに対して共用可能なオブジェクトの検出を行う。その結果、共用可能なオブジェクトが検出されると、オブジェクト管理情報７３が更新される。
【００７１】
図７はアプリケーション７０と８０に対して共用可能オブジェクト検出部４２０の処理が実行された後のオブジェクト管理情報７３、８３の例を、オブジェクト管理情報６３と一緒に示す。例えば、共用可能オブジェクト検出部４２０が、アプリケーション６０内のオブジェクトｂがアプリケーション７０のオブジェクトｙの代わりに使用可能であると判断すると、共用化情報記憶部４３０は、図７に示すように、アプリケーション７０に対するオブジェクト管理情報７３内のオブジェクトｙに対応する共有先パス情報フィールド７３３に、共有先のオブジェクトｂの絶対パス情報である　ａａａ／ｂｂｂ／ｃｃｃ／ｂｂｂ　を記憶する。更に、図７に示すように、オブジェクト管理情報６３内のオブジェクトｂに対する共用元オブジェクト数６３４の値を、値０から１だけ増大して値１にする。その後、共用元オブジェクト削除部４４０はオブジェクトｙを補助記憶装置１５から削除する。
【００７２】
同様に、共用可能オブジェクト検出部４２０が、アプリケーション６０内のオブジェクトｃがアプリケーション７０のオブジェクトｚの代わりに使用可能であると判断すると、共用化情報記憶部４３０は、図７に示すように、アプリケーション７０に対するオブジェクト管理情報７３内のオブジェクトｚに対応する共有先パス情報フィールド７３３に、共有先のオブジェクトｃの絶対パス情報であるａａａ／ｂｂｂ／ｃｃｃ／ｃｃｃ　を記憶する。更に、オブジェクト管理情報６３内のオブジェクトｃに対する共用元オブジェクト数６３４の値を、値０から１だけ増大して値１にする。その後、共用元オブジェクト削除部４４０はオブジェクトｚを補助記憶装置１５から削除する。こうして、アプリケーション７０に関してオブジェクト共用設定部４００が終了する。
【００７３】
その後、新たにアプリケーション８０がインストールされると、オブジェクト管理情報記憶部４１０は、アプリケーション８０に対応するオブジェクト管理情報８３を図３のものから図６に示すものに変更し、共用可能オブジェクト検出部４２０がアプリケーション８０内の各オブジェクトｌ、ｍ、ｎに対して共用可能なオブジェクトを検出する。その結果、例えばアプリケーション６０のオブジェクトｃが、アプリケーション８０のオブジェクトｍの代わりに使用可能であると判断すると、共用化情報記憶部４３０は、図７に示すように、アプリケーション８０に対するオブジェクト管理情報８３内のオブジェクトｍに対応する共有先パス情報フィールド８３３に、共有先のオブジェクトｃの絶対パス情報である　ａａａ／ｂｂｂ／ｃｃｃ／ｃｃｃ　を記憶する。更に、図７に示すように、オブジェクト管理情報６３内のオブジェクトｃに対する共用元オブジェクト数６３４の値を、値１から１だけ増大して値２にする。その後、共用元オブジェクト削除部４４０はオブジェクトｍを補助記憶装置１５から削除する。こうして、アプリケーション８０に関してオブジェクト共用設定部４００が終了する。
【００７４】
以上の説明から分かるように、任意のアプリケーションに含まれた複数のオブジェクトが共用できるときには、その一つを共用させ、当該一つのオブジェクト以外のオブジェクトを削除する。したがって、実質同じ内容のオブジェクトは重複して補助記憶装置１５に記憶されないので、複数のアプリケーションを記憶するのに必要となる記憶容量を減らすことができる。
【００７５】
本実施の形態ではアプリケーションは以下のようにして実行される。既に述べたように、本実施の形態ではアプリケーションは、オブジェクト指向言語で記述されている。各アプリケーションを構成する複数のオブジェクトの各々は、オブジェクト指向言語で記述され動的に結合可能に形成されている。アプリケーションの起動時には、それらの複数のオブジェクトのうちメインオブジェクトがまず起動される。メインオブジェクトは、他のオブジェクトを呼び出すことができ、当該他のオブジェクトも更に他のオブジェクトを呼び出し可能になっている。こうして、アプリケーションに含まれる複数のオブジェクトが他のオブジェクトから適宜呼び出されて実行される。なお、各オブジェクトは、ソースプログラムでもよくあるいはそのソースプログラムをコンパイルして得られる動的結合可能に構成された中間コードでもよいが、本実施の形態では、各オブジェクトは、動的に結合可能に形成された中間コードであり、インタプリタにより逐次解読して実行される。このように、中間コードをインタプリタにより逐次解読して実行させる方法を採ると、中間コード自体は、情報処理装置１とそれを制御するＯＳに依存しないで生成することができ、同じ中間語コードが、装置構造あるいは使用するＯＳが異なる他の情報処理装置にもそのまま使用できることになる。更に、オブジェクト間の動的結合もインタプリタにより実現させることが可能になる。
【００７６】
図８は、プログラム実行制御部５０の概略ブロック図である。プログラム実行制御部５０は、インタプリタ部５００とＯＳ部５１０とを含んでいる。インタプリタ部５００は、中間コードに含まれた複数の命令を逐次解読して実行するためのプログラムであるインタプリタにより実現される。ＯＳ部５１０は、情報処理装置１の動作を制御するＯＳにより実現される。インタプリタ部５００には、ロード要求部５２０と動的結合部５３０を備えている。ロード要求部５２０は、共用先オブジェクト判別部５４０と、ロード要求変更部５５０とを備えている。ロード要求部５２０は、実行中のアプリケーションがロードを要求したオブジェクトについて、オブジェクト共用設定部４００が既に共用先のオブジェクトを設定している場合に、当該共用先のオブジェクトをロードするように、ロード要求を変更する。
【００７７】
オブジェクトは、他のオブジェクトのロードを要求するときに、例えばロード命令を発行する。本実施の形態では、ロード命令は、呼び出すべきオブジェクトの名称だけでなく、当該オブジェクトにアクセスするためのパス情報を指定する。パス情報は、例えば呼び出し元のオブジェクトが属するアプリケーションの補助記憶装置１５内のオブジェクトルートディレクトリの位置からみた、当該ロードすべきオブジェクトの補助記憶装置１５内のディレクトリへの相対パスを用いて指定させることができる。例えば、図６に例示したアプリケーション７０の場合、オブジェクトｘから他のオブジェクトｙをロードするためのロード命令には、例えば下記のロード命令を使用することができる。
【００７８】
【数１】
ｌｏａｄ　ｒｅｌａｔｉｖｅ（−１）　ｂｂｂ　オブジェクトｙ
【００７９】
ここで、ｒｅｌａｔｉｖｅ（−１）　ｂｂｂ　は、オブジェクトルートディレクトリからみて下位側の相対パス　ｂｂｂ　のディレクトリを指定する。アプリケーション７０のオブジェクトルートディレクトリは、ｂｂｂ／ｂｂｂ／ｃｃｃ　であるので、オブジェクトｙは、絶対パス　ｂｂｂ／ｂｂｂ／ｃｃｃ／ｂｂｂ　により表されるディレクトリからロードされることになる。
【００８０】
相対パス情報を使用するのは、ロード命令が要求したオブジェクトが含まれるアプリケーションのインストール時に、当該アプリケーションのオブジェクトルートディレクトリとして、利用者により任意のディレクトリが指定されても、ロードすべきオブジェクトのディレクトリを容易に決めることを可能にするためである。
【００８１】
図９は、インタプリタ部５００の処理の概略フローチャートである。インタプリタ部５００では、次に実行すべき命令がロード命令であるか否かを判別し（ステップＳ５０１）、ロード命令でないときには、その命令を解読してその命令が要求する処理を実行する（ステップＳ５０２）。一方、次に実行すべき命令がロード命令であるときには、ロード要求部５２０が呼び出される。
【００８２】
ロード要求部５２０では、まず、共用先オブジェクト判別部５４０が呼び出される。共用先オブジェクト判別部５４０は、ロードが要求されたオブジェクトについて、共用先に設定されている他のオブジェクトの検出を試みる。具体的には、共用先オブジェクトの検出は、ロードが要求されたオブジェクトが含まれるアプリケーションに対して記憶されたオブジェクト管理情報７３内に、当該ロード命令が指定するオブジェクトに対して共用先パス情報が記憶されているか否かにより判断される。共用先オブジェクト判別部５４０の処理結果に基づいて、共用先オブジェクトが検出されたか否かが判別される（ステップＳ５２１）。
【００８３】
ロード命令が指定するオブジェクトに対して共用先のオブジェクトが設定されていないと判断されたときには、当該ロード命令が要求するロードをそのまま実行させる命令をＯＳ部５１０に対して発行する（ステップＳ５２２）。当該オブジェクトがＯＳによりロードされた後は、動的結合部５３０が当該ロードされたオブジェクトを、ロード命令を発行した要求元のオブジェクトに動的に結合する。こうして当該要求元のオブジェクトがロードされたオブジェクトを使用できるようになる。
【００８４】
ロードすべきオブジェクトに対して共用先オブジェクトが設定されているとステップＳ５２１において判断された場合には、ロード要求変更部５５０が呼び出される。ロード要求変更部５５０は、共用先のオブジェクトをロードするように、ロード命令を変更する。すなわち、ロード命令内にあったロードすべきオブジェクトに対する相対パス情報を、ロードが要求された共用元のオブジェクトに対応して記憶された共用先パス情報に変更する。ロード命令内のオブジェクト名は変更する必要はない。上記共用先パス情報は絶対パス表示であるので、変更後のロード命令は、共用先のオブジェクトのオブジェクト名とそのオブジェクトへの絶対パスを指定することになる。その後、ステップＳ５２２で、変更後のロード命令が要求するロードを実行させる命令をＯＳ部５１０に対して発行する。
【００８５】
例えば、アプリケーション７０の実行中に、オブジェクトｙのロードを要求するロード命令として先に数１で示した命令が発行されたと仮定する。図７から分かるように、当該オブジェクトｙに対してアプリケーション６０のオブジェクトｂが共用先のオブジェクトとして既に設定されている。
【００８６】
上記共用先のオブジェクトに対する共用先パス情報は、図７から分かるように、ａａａ／ｂｂｂ／ｃｃｃ／ｂｂｂであるので、上記ロード命令は、ロード要求部５２０内のロード要求変更部５５０により下記の命令に変更される。
【００８７】
【数２】
ｌｏａｄ　ａａａ／ｂｂｂ／ｃｃｃ／ｂｂｂ　オブジェクトｙ
【００８８】
ここで、オブジェクトｙはオブジェクトｂと同じオブジェクトであり、上記ロード命令は、アプリケーション６０内のオブジェクトｂをメインメモリ１３にロードすることをＯＳに要求するロード命令である。ロード要求部５２０は、この変更後のロード命令に基づいて、オブジェクトｃをＯＳによりメインメモリにロードさせる（ステップＳ５２２）。オブジェクトｃがメインメモリにロードされた後は、図９に示すように、動的結合部５３０が当該ロードされたオブジェクトｃはロード命令を発行したオブジェクト及びインタプリタ部５００に動的に結合する。こうして、当該要求元のオブジェクトはロードされたオブジェクトｃを使用できるようになる。このように、共用元のオブジェクトｙを補助記憶装置１５に記憶しなくても、共用先のオブジェクトｃを代わりにロードさせて使用することができる。
【００８９】
図１０は、オブジェクト共用解除部４５０の概略ブロック図である。オブジェクト共用解除部４５０は、いずれかのアプリケーションをアンインストールするときに、当該アプリケーションに含まれたいずれかのオブジェクトを共有先オブジェクトとする共用元オブジェクトが他のインストール済みのアプリケーションに含まれている場合に、共用先のオブジェクトがアンインストールされても、共用元のオブジェクトを正常に使用できるように、その共用を解除する。
【００９０】
オブジェクト共用解除部４５０は、共用元オブジェクト判別部４５５と共用解除処理部４６０とを備えている。共用解除処理部４６０は、オブジェクト移動部４７０、共用化情報無効化部４７５と、共用化情報変更部４８０とを備えている。オブジェクト共用解除部４５０は、利用者がアンインストール部３０Ｂに対していずれかのアプリケーションをアンインストールする指示を与えたときに、アンインストール部３０Ｂが当該アプリケーションのアンインストールを実行する前に、アンインストール部３０Ｂにより起動される。あるいは、利用者がアンインストール部３０Ｂに対していずれかのアプリケーションのアンインストールを指示する前に、利用者がオブジェクト共用解除部４５０を起動してアンインストールする予定のアプリケーションを指示し、当該アプリケーションについて共用解除を行わせるようにしてもよい。
【００９１】
図１１は、オブジェクト共用解除部４５０の処理の概略フローチャートである。オブジェクト共用解除部４５０は、起動されると、まず、アンインストールが指示されたアプリケーション内のオブジェクトのうち、オブジェクト共用解除の要否のチェックがまだなされていないチェック対象とすべき一つのオブジェクトの選択を試みる（ステップＳ４５１）。選択が成功したか否かが判断され（ステップＳ４５２）、選択が成功したと判断されると、当該チェック対象のオブジェクトが属するアプリケーションに対するオブジェクト管理情報内に当該チェック対象のオブジェクトに対して記憶されている共用元オブジェクト数が１以上か否かが判断される（ステップＳ４５３）。
【００９２】
共用元オブジェクト数が１以上でないときには、チェック対象のオブジェクトに対して共用元オブジェクトがないので、処理はステップＳ４５１に戻り、他のチェック対象のオブジェクトを選択させる。共用元オブジェクト数が１以上であるときには、チェック対象のオブジェクトに対して共用元オブジェクトがあるので、共用元オブジェクト判別部４５５に共用元オブジェクトを一つ検出させる。すなわち、共用元オブジェクト判別部４５５は、選択されたチェック対象のオブジェクトを共用している他の共用元オブジェクトを一つ判別する。
【００９３】
この判別は、例えば、当該チェック対象のオブジェクトが含まれているアプリケーション以外の全てのアプリケーションについて順次それぞれのアプリケーション内のいずれかのオブジェクトに対して、上記選択されたチェック対象のオブジェクトを共用先オブジェクトに設定しているか否かを判別することにより行われる。より具体的には、それぞれのアプリケーションに対応して記憶されたオブジェクト管理情報内に、当該アンインストール予定のチェック対象のオブジェクトに関するパス情報が共有先パス情報として記憶されているか否かにより、上記判別が行われる。
【００９４】
共用元オブジェクト判別部４５５により、上記選択されたチェック対象のオブジェクトを共用する一つの他の共用元オブジェクトが判別されると、当該共用元オブジェクトに対して共用解除処理部４６０が以下のようにして実行される。まず、オブジェクト移動部４７０が、上記選択されたチェック対象を共用している共有元のオブジェクトに対応して記憶された自パス情報により指定される補助記憶装置１５のディレクトリに、当該チェック対象のオブジェクトを移動する。その後、共用化情報無効化部４７５が、当該共用元のオブジェクトに対応して記憶されていた共用化情報（具体的には、共用先パス情報）を無効にする。無効にするには、例えば削除すればよい。
【００９５】
こうして、共用元であったオブジェクトが属するアプリケーション内には共用されていたオブジェクトが記憶され、かつ、当該アプリケーションに対応するオブジェクト管理情報内には、共用先パス情報は記憶されなくなり、共用元であったオブジェクトは、共用設定がされる前の状態に戻る。したがって、共用元であったオブジェクトとチェック対象の共用先であったオブジェクトとの間の共用が解除される。しかも、チェック対象のオブジェクトがその後アンインストールされても、共用元であったオブジェクトは正常に使用できる。
【００９６】
その後、共用解除処理部４６０は、同じチェック対象のオブジェクトを共用先に指定する他の共用元のオブジェクトがまだ存在するか否かを判断するために、アンインストール対象のアプリケーション内の上記チェック対象のオブジェクトに対応して記憶されている共用元オブジェクト数を１だけ減少する（ステップＳ４６１）。減少後の共用元オブジェクト数が１以上であるか否かを判別し（ステップＳ４６２）、１以上であるときには、同じチェック対象のオブジェクトを共用先に指定する更に他の共用元のオブジェクトが存在するので、共用元オブジェクト判別部４５５は、当該更に他の共用元オブジェクトを判別させる。
【００９７】
当該更に他の共用元オブジェクトが判別されると、共用化情報変更部４８０は、当該更に他の共用元のオブジェクトが属するアプリケーションに対応して記憶されているオブジェクト管理情報内の当該更に他の共用元オブジェクトに対する共用先パス情報を、上記削除されたチェック対象のオブジェクトとの共用が解除されたと最初に判別された旧共用元のオブジェクトが記憶されているディレクトリに対するパス情報に変更する。更に、当該最初に判別された旧共用元オブジェクトに対して記憶されている共用元オブジェクト数を１だけ増大し、値１にする（ステップＳ４６３）。
【００９８】
その後、ステップＳ４６１に処理が戻り、アンインストール対象のアプリケーション内の上記チェック対象のオブジェクトに対する共用元オブジェクト数を更に１減じて、ステップＳ４６２以降を実行する。ステップＳ４６２が最初に実行されたときあるいはその後の繰り返しにより実行されたときに、共用元オブジェクト数が１以下（すなわち０）であると判断されたときには、当該チェック対象のオブジェクトを共用する共用元オブジェクトは存在しないので、処理は、ステップＳ４５１に戻り、他のチェック対象のオブジェクトを選択して、ステップＳ４５２以降が繰り返される。更に、以上の処理が終了し、共用解除処理の要否のチェックをすべきオブジェクトがなくなったときには（ステップＳ４５２においてＮｏの場合）、オブジェクト共用解除部４５０は処理を終了する。
【００９９】
こうして、２番目以降に判別された旧共用元オブジェクトは、チェック対象の共用先のオブジェクトが削除された後、当該チェック対象のオブジェクトを共用先としていたと最初に判別された旧共用元オブジェクトを共用先オブジェクトとする新たな共用元オブジェクトに変更される。したがって、上記チェック対象の共用先オブジェクトが削除された後でも、上記旧共用元オブジェクトを当該他の共用元オブジェクトに共用させることができる。
【０１００】
図１２は、アプリケーション６０がアンインストールの対象にされ、オブジェクト共用解除部４５０によるオブジェクト解除処理が実行された後のアプリケーション７０、８０に対するオブジェクト管理情報７３、８３の例を、アプリケーション６０に対する、削除前のオブジェクト管理情報６３と一緒に示す図である。なお、アプリケーション６０がアンインストールの対象にされたので、アプリケーション６０に対するオブジェクト管理情報６３は、アプリケーション６０のアンインストール時に削除されるが、図には参考に示されている。
【０１０１】
オブジェクト共用解除部４５０について上に述べた処理を図７と図１２を参照して説明すると、アプリケーション６０がアンインストール対象に選択され、その内のオブジェクトｃがステップＳ４５１で共用解除処理のチェック対象に選択された場合、共用元オブジェクト判別部４５５は、オブジェクトｃに関するパス情報を共用先パス情報として記憶している他のアプリケーション７０のオブジェクトｚを共用元のオブジェクトと判断する。その場合には、オブジェクト移動部４７０は、アプリケーション６０のオブジェクトｚに対応するフィールド７３２に記憶された自パス情報で指定されるディレクトリにオブジェクトｃをオブジェクトｚとして移動する。
【０１０２】
この移動が終了したときには、オブジェクトｃは、その移動により削除される。その後、共用化情報無効化部４７５は、アプリケーション７０に対応するオブジェクト管理情報７３内にオブジェクトｚに対応してフィールド７３３に記憶されていた共用先パス情報を削除する。こうして、アプリケーション７０のオブジェクトｚに対するオブジェクト管理情報７３の内容は、図１２に示すようになり、オブジェクトｚとオブジェクトｃの共用は解除される。
【０１０３】
その後、共用元オブジェクト判別部４５５により、アンインストール対象のオブジェクトｃを共用先に指定する他のオブジェクトがあるか否かが判断される。図７の場合には、アプリケーション８０のオブジェクトｍが上記アンインストール対象のオブジェクトｃを共用している。したがって、ステップＳ４６１においてオブジェクトｍが同じアンインストール対象のオブジェクトｃを共用していると判断され、オブジェクト管理情報８３内の当該共用元のオブジェクトｍに対するフィールド８３３に記憶されている共用先パス情報を、削除されたオブジェクトｃに関するパス情報から、上記によりオブジェクトｃが新たに移動されてオブジェクトｚとして記憶されたディレクトリを指定する共用先パス情報に変更させる。こうして、アプリケーション８０のオブジェクトｍに対するオブジェクト管理情報８３の内容は、図１２に示すようになり、オブジェクトｍとオブジェクトｃの共用は解除され、オブジェクトｍはオブジェクトｚを共用するように設定されたことになる。
【０１０４】
このように、他のアプリケーションのオブジェクトにより共用されたオブジェクトを含むアプリケーションがアンインストールされたときでも、当該他のアプリケーションの上記共用元のオブジェクトは、正常に使用可能になることが分かる。
【０１０５】
更に、上記実施の形態では、アプリケーションを新規に情報処理装置にインストールした後に、当該アプリケーションを構成するオブジェクトが、インストール済みの他のアプリケーションに含まれるオブジェクトを共用することができるかを否かを検出するようになっている。このような方法を使用すると、インストール自体は従来のインストール用のプログラムを用いて実行することができるので、本発明を実施するに当たり、従来あるインストール用のプログラムの機能はそのまま使用することができるので、本発明の実施が容易である。
【０１０６】
＜発明の第２の実施の形態＞
図１３は、アプリケーション６０に対するオブジェクト管理情報６３の他の例を示す図である。オブジェクト管理情報６３では、対応するアプリケーション６０を構成するオブジェクトの各々に対応して、当該オブジェクトを共用先のオブジェクトとする共用元オブジェクトに関する共用元パス情報を記憶するためのフィールド６３６が設けられる。このフィールド６３６には、対応するオブジェクトを共用先オブジェクトにするように設定された複数の共用元オブジェクトが記憶されている補助記憶装置１５内の複数のディレクトリのそれぞれに関する共用元パス情報が記憶される。他のオブジェクト管理情報７３、８３についても、同様に、共用元パス情報記憶フィールド７３６、８３６が設けられる。
【０１０７】
共用元パス情報は、オブジェクト共用設定部４００により設定される。すなわち、新たにインストールされたアプリケーション、例えば７０内のオブジェクト、例えばｙに関して共用可能な他のオブジェクト、例えばアプリケーション６０のオブジェクトｃを検出して、オブジェクトｙに関して、ステップＳ４３１（図５）において、共用化情報として例えば共用先パス情報を、図７に示すように、オブジェクト管理情報７３内のオブジェクトｙに対するフィールド７３３に記憶した後に、共用先オブジェクトｍに関して、共用化情報として、例えば共用元オブジェクトのそれぞれに関する共用元パス情報を、オブジェクト管理情報６３内のオブジェクトｃに対するフィールド６３６に記憶する。
【０１０８】
その後アプリケーション８０がインストールされたときに、オブジェクトｍがアプリケーション６０のオブジェクトｃの共用元オブジェクトに設定されたときには、オブジェクトｃの共用元パス情報には、アプリケーション８０のオブジェクトｍのパス情報を、図１３に示す、オブジェクトｃに対応するフィールド６３６に追加して記憶する。したがって、同じ共用先オブジェクトｃに関して複数の共用元オブジェクトがある場合、それらの共用元オブジェクトに関する複数のパス情報が同じ共用先オブジェクトに対するフィールド６３６に記憶される。
【０１０９】
このようにオブジェクト管理情報６３内に各オブジェクトに関して共用元パス情報６３６が記憶されると、オブジェクト共用解除部４５０の処理が高速化される。すなわち、図１１に示したように、第１の実施の形態では、共用元オブジェクト判別部４５５により、アンインストール対象にアプリケーションに含まれたオブジェクトを共用先とする共用元のオブジェクトを、インストール済みの全てのアプリケーションに対する複数のオブジェクト管理情報の内容を順次チェックして、アンインストール対象のオブジェクトに関する共用先パス情報が記憶されているか否かにより判別していた。
【０１１０】
しかし、本実施の形態のように、各アプリケーション内の各オブジェクトに対応してオブジェクト管理情報内に当該オブジェクトを共用先とする共用元のオブジェクトのパス情報が記憶されていれば、当該共用先のオブジェクトをアンインストールする際に、当該オブジェクトに対する共用元オブジェクトのパス情報を、直ちに知ることができ、共用元オブジェクト判別部４５５の処理時間を大幅に短縮することができる。このように、本実施の形態では、オブジェクト管理情報内に共用元パス情報を記憶すると、オブジェクト管理情報の容量が大きくなるが、共用元オブジェクトのパスを迅速に知ることができる。
【０１１１】
なお、共用元数６３４は省略することができ、共用元数６３４を省略した場合には、共用元パス情報フィールド６３６として記憶された共用元オブジェクトのパス情報の数を共用元数６３４の代わりに使用することができる。その場合には、共用元オブジェクトにアンインストール対象にアプリケーションに含まれたオブジェクトを共用元オブジェクトが記憶されるべきディレクトリに移動したときは、当該共用元オブジェクトに関する共用元パス情報を、共用元パス情報フィールド６３６から削除する。同様に、更に他の共用元オブジェクトについて、共用先パス情報を変更する処理を行う毎に、当該共用元オブジェクトに関する共用元パス情報を共用元パス情報フィールド６３６から削除する。こうすると、共用元パス情報フィールド６３６に記憶されている共用元パス情報の数が、共用元数６３４の代わりに使用できることになる。
【０１１２】
＜発明の第３の実施の形態＞
発明の第１の実施の形態では、インストール対象のアプリケーションがインストールされた後に、当該インストールされたアプリケーションに関してオブジェクト共用設定部４００が呼び出され、オブジェクト共用のための処理がなされ、いずれかの新規にインストールされたオブジェクトに代えて他のインストール済みのオブジェクトが使用可能であると判断されたときには、当該新規にインストールされたオブジェクトに代えて、当該他のオブジェクトを共用させるように、共用化のための設定を行い、その後に、上記新規にインストールされたオブジェクトが削除された。しかし、本発明は、上記のようにアプリケーションがインストールされた後にオブジェクト共用設定処理が実行される場合に限定されない。本実施の形態は、インストールしようとするアプリケーションをインストールする前にオブジェクト共用設定処理が実行してもよいことを示す。
【０１１３】
このために、情報処理装置１にインストールされたアプリケーションをインストール対象のアプリケーションとして第１の実施の形態の処理を実行するのではなく、これからインストールしようとするアプリケーションをインストール対象のアプリケーションとして、第１の実施の形態で述べた処理を適用する。すなわち、共用可能オブジェクト検出部４２０による共用可能オブジェクトの検出は、インストール対象のアプリケーションのインストールの前に実行する。
【０１１４】
第１の実施の形態では、共用元オブジェクト削除部４４０は、新たにアプリケーションがインストールされた後に当該アプリケーション内の共用元オブジェクトを削除したが、本実施の形態では、インストール対象のアプリケーションがインストールされる時に、代わりに使用可能な他のオブジェクトが検出されたオブジェクトを補助記憶装置１５に記憶されないようにするか、又は第１の実施の形態と同様に、インストール対象のアプリケーションがインストールされた後に、当該共用元オブジェクトを前記記憶装置から削除すればよい。共用化情報記憶部４３０は、代わりに使用可能な他のオブジェクトが検出された、当該アプリケーションに含まれた共用元のオブジェクトに関連する情報として、共用化情報を当該インストール対象のアプリケーションがインストールされる前又は後に記憶するようにすればよい。
【０１１５】
第１の実施の形態のようにアプリケーション内の全てのオブジェクトをインストールした後にそのうちの一部のオブジェクトを削除するという方法を採る場合には、インストールの後にオブジェクト共用化を行い、その共用化処理の中で、インストール済みの他のオブジェクトを共用できる新たにインストールしたオブジェクトを削除している。しかし、本実施の形態によれば、インストール済みの他のオブジェクトを共用できるオブジェクトはインストールされないので、アプリケーションのインストール時間が減り、更に、インストール後に削除する時間が必要でないので、オブジェクト共用化処理の時間も減少する。
【０１１６】
＜発明の第４の実施の形態＞
図１４は、本実施の形態による情報処理装置の概略ブロック図である。本実施の形態では、オブジェクト共用管理部４０がインタプリタ部５００内に含まれ、オブジェクト共用管理部４０の処理を実現するプログラムは、インタプリタ部５００を実現するプログラムであるインタプリタ内に含まれる。本実施の形態では、オブジェクト共用管理部４０を構成するオブジェクト共用設定部４００とオブジェクト共用解除部４５０もインタプリタ内に含まれるので、オブジェクト共用設定部４００とオブジェクト共用解除部４５０をそれぞれ実現するプログラムとして、情報処理装置１を制御するＯＳ及び情報処理装置１自身の装置構成に依存しないプログラムを使用することができ、種々のＯＳあるいは装置構成の情報処理装置に本発明を適用する場合に便利である。
【０１１７】
＜発明の第５の実施の形態＞
図１５は、本発明に係る情報処理装置の本実施の形態の概略ブロック図である。本実施の形態では、オブジェクト共用管理部４０は、ＯＳ部５１０内に含まれ、オブジェクト共用管理部４０の処理を実現するプログラムは、ＯＳ部５１０を実現するプログラムであるＯＳに含まれる。本実施の形態では、オブジェクト共用管理部４０を構成するオブジェクト共用設定部４００とオブジェクト共用解除部４５０もＯＳ部５１０内に含まれる。したがって、オブジェクト共用設定部４００とオブジェクト共用解除部４５０をそれぞれ実現するプログラムを内蔵したＯＳが利用可能であるときに、利用者は、これらのプログラムを作成する必要がなく、本実施の形態は、その点では利用者に便利である。
【０１１８】
＜発明の第６の実施の形態＞
本実施の形態では、情報家電機器や携帯電話等の特定用途のアプリケーションを実行する機能があらかじめ組み込まれている、いわゆる組み込みデバイスに本発明を適用した実施の形態を説明する。このような組み込みデバイスは、アプリケーションを実行できるので、本明細書では情報処理装置と見なす。このような組み込みデバイスでも、補助記憶装置１５は、フラッシュメモリのような、書き換え可能な不揮発性メモリである場合もある。組み込みデバイスで使用されるプログラムは、インストール時には、更に他の補助記憶装置からコピーして上記書き換え可能な不揮発性メモリ装置に記憶させてインストールしてもよい。上記他の補助記憶装置自身が書き換え可能な不揮発性メモリであってもよい。
【０１１９】
ＲＯＭあるいはその一部に少なくとも一つのオブジェクトを含む複数のアプリケーションが記憶され、それらのアプリケーションに対して本発明にしたがって共用が実現されるときには、それらのプログラムを記憶するのにＲＯＭが用いられても、本発明に関しては、ＲＯＭも、メインメモリとは別の記憶装置という意味では補助記憶装置と同様である。なお、補助記憶装置１５又は上記更に他の補助記憶装置又はその両方又は上記ＲＯＭの一部が組み込みデバイス本体から着脱可能に構成されてもよい。組み込みデバイスでは、プログラムを記憶するメモリの容量が小さい場合が多いので、本発明を適用すると、プログラムを記憶するのに必要なメモリ容量を低減することができて便利である。
【０１２０】
以上に示したいくつかの実施の形態から分かるように、アプリケーション間でそれらに含まれたオブジェクトを共用させることができ、複数のアプリケーションを記憶するのに必要な補助記憶装置の容量を低減することができる。しかも、あらかじめ共用させるオブジェクトと決めていない任意のオブジェクトを共用させることができる。更に、以上の実施の形態では、いずれかのオブジェクトを異なるアプリケーション間で共用させるときに、当該オブジェクトを記憶させるディレクトリを新たに生成しない。したがって、共用されるオブジェクトを新たなディレクトリを生成してそこに記憶するという場合に必要となる、記憶装置の容量の消費がないという利点もある。
【０１２１】
また、上記実施の形態のように、インストール済みのアプリケーションに関して、そこに含まれたオブジェクトに関するオブジェクト名称その他の識別情報と当該オブジェクトの補助記憶装置内の記憶位置に関するパス情報とを含むオブジェクト管理情報を記憶し、新規にインストールしたオブジェクトに対して、代わりに使用可能なオブジェクト（共用可能なオブジェクト）の検出を、インストール済みの各アプリケーションに対する上記オブジェクト管理情報に基づいて行うという方法を採ることにより、既に複数のアプリケーションがインストールされている状態でも、それらのアプリケーションをアンインストールし再インストールするという処理をしなくても、本発明によるオブジェクト共用化方法を使用できるようになる。
【０１２２】
また、共用化処理がなされた後に共用先のオブジェクトを含むアプリケーションがアンインストールされたために共用を解除するときには、共用元のオブジェクトをそれが本来記憶されるべきディレクトリに復元させるので、共用が解除されても共用元のオブジェクトを正常に動作させることができる。
【０１２３】
以上、本発明のいくつかの実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではなく、発明の要旨を変更しない範囲内で、実施の形態を修正あるいは変更してもよいことは言うまでもない。例えば、各アプリケーションに関するオブジェクト管理情報６３等は、当該アプリケーションがインストールされたディレクトリに記憶させたが、複数のアプリケーションに対する複数のオブジェクト管理情報６３等を、複数のアプリケーションに共通に定めたディレクトリに記憶させてもよい。
【０１２４】
【発明の効果】
以上、説明したように、本発明の望ましい態様では、それぞれオブジェクト指向言語で記述され、動的に結合可能に形成されたオブジェクトから構成される複数のアプリケーション間でオブジェクトを共用させることができ、それらのアプリケーションに共用されるオブジェクトを重複して補助記憶装置に記憶する必要がなくなり、補助記憶装置の必要容量を低減することができる。
【０１２５】
本発明の他の望ましい態様では、実行中のいずれかのアプリケーションに属するオブジェクトに含まれたロード要求が要求するロードすべきオブジェクトに代えて、当該オブジェクトの共用先に設定された共用先オブジェクトをロードさせることができるので、共用先のオブジェクトを正常にロードさせてロード要求元のオブジェクトに使用させることが容易に実現できる。
【０１２６】
本発明の他の望ましい態様では、オブジェクトを共用する複数のアプリケーションの一つがアンインストールされるときにも、共用を解除して、残りのアプリケーションを正常に動作させることができる。
【図面の簡単な説明】
【図１】本発明に係る情報処理装置の第１の実施の形態の概略ブロック図である。
【図２】補助記憶装置に記憶されているインストールされた複数のアプリケーションの概略構成を例示する図である。
【図３】複数のアプリケーションに対する、それぞれがインストールされる前のオブジェクト管理情報の例を示す図である。
【図４】オブジェクト共用設定部の概略ブロック図である。
【図５】オブジェクト共用設定部の処理の概略フローチャートである。
【図６】複数のアプリケーションのそれぞれがインストールされた直後のそれぞれに対するオブジェクト管理情報の例を示す。
【図７】複数のアプリケーションのそれぞれに対して共用可能オブジェクト検出部の処理が実行された後のオブジェクト管理情報の例を示す図である。
【図８】プログラム実行制御部の概略ブロック図である。
【図９】インタプリタ部の処理の概略フローチャートである。
【図１０】オブジェクト共用解除部の概略ブロック図である。
【図１１】オブジェクト共用解除部の処理の概略フローチャートである。
【図１２】アプリケーションがアンインストールの対象にされ、オブジェクト解除処理が実行された後の複数のオブジェクト管理情報の例を示す図である。
【図１３】他の実施の形態で使用されるオブジェクト管理情報の例を示す図である。
【図１４】本発明に係る情報処理装置の他の実施の形態の概略ブロック図である。
【図１５】本発明に係る情報処理装置の更に他の実施の形態の概略ブロック図である。
【図１】
2004118753.tif 000003
【図２】
2004118753.tif 000004
【図３】
2004118753.tif 000005
【図４】
2004118753.tif 000006
【図５】
2004118753.tif 000007
【図６】
2004118753.tif 000008
【図７】
2004118753.tif 000009
【図８】
2004118753.tif 000010
【図９】
2004118753.tif 000011
【図１０】
2004118753.tif 000012
【図１１】
2004118753.tif 000013
【図１２】
2004118753.tif 000014
【図１３】
2004118753.tif 000015
【図１４】
2004118753.tif 000016
【図１５】
2004118753.tif 000017