JP2004118753A - Object sharing program, object sharing method, and information processor - Google Patents
Object sharing program, object sharing method, and information processor Download PDFInfo
- Publication number
- JP2004118753A JP2004118753A JP2002284584A JP2002284584A JP2004118753A JP 2004118753 A JP2004118753 A JP 2004118753A JP 2002284584 A JP2002284584 A JP 2002284584A JP 2002284584 A JP2002284584 A JP 2002284584A JP 2004118753 A JP2004118753 A JP 2004118753A
- Authority
- JP
- Japan
- Prior art keywords
- sharing
- application
- information
- stored
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 59
- 230000010365 information processing Effects 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 38
- 238000001514 detection method Methods 0.000 claims description 24
- 238000009434 installation Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 20
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、それぞれ動的に結合可能に構成された複数のオブジェクトからなる複数のアプリケーションプログラム(本明細書では簡単化のためにアプリケーションと呼ぶことがある)の間でオブジェクトを共用可能にし、それでもってプログラムを記憶する記憶装置の必要容量を削減可能にするオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置に関する。
【0002】
【従来の技術】
昨今、情報処理装置は多様化しており、従来のパーソナルコンピュータ(パソコン)だけでなく、PDA等の個人情報端末も使用されている。情報処理装置でアプリケーションを使用可能にするには、当該アプリケーションを固定磁気ディスク装置又はフラッシュメモリ等の書き換え可能な半導体固定記憶装置に代表される補助記憶装置に記憶させ、更に情報処理装置に必要な設定をするいわゆるインストール操作をした後、当該インストールされたアプリケーションを起動してメインメモリにロードして実行する方法が採られている。
【0003】
最近は、情報家電機器や携帯電話等の機器にもアプリケーションを実行する機能があらかじめ組み込まれている場合が多くなっている。このような機器は組み込みデバイスと呼ばれている。このような組み込みデバイスも、アプリケーションを実行できるので、本明細書では情報処理装置と見なすことにする。
【0004】
情報処理装置にインストールするアプリケーションの数が多い場合、補助記憶装置の容量が大きくても、それらのアプリケーションを記憶させるのに要する容量を削減することが必要となる場合がある。補助記憶装置の容量が小さい場合には、インストールされるアプリケーションの数が少なくても、それらのアプリケーションを記憶するのに要する容量を削減することが必要になる場合がある。
【0005】
従来からアプリケーションを記憶するのに要する容量を削減するためにいろいろな方法が使用された。その代表的な方法は、複数のアプリケーション間で共用可能な複数のプログラム(ライブラリプログラム)を、情報処理装置内のアプリケーション記憶エリアとは関係なく定められた特定のライブラリエリアに記憶して、複数のアプリケーションにより利用可能にすることである。
【0006】
このようなライブラリプログラムを使用する場合、同じ名称のライブラリプログラムでも異なるバージョンのものを同一のライブラリプログラムとして扱うと問題が生じることがある。例えば、既にインストール済みのアプリケーションのバージョンアップ版をインストールする場合あるいは新たにアプリケーションをインストールする場合に、当該アプリケーションが使用するライブラリプログラムのバージョンが、情報処理装置に既にインストールされている同じ名称のライブラリプログラムのバージョンより新しいということがある。この場合、当該新しいバージョンのライブラリプログラムを、旧バージョンのライブラリプログラムを上書きするようにインストールすると、更新される前の旧バージョンのライブラリプログラムを正常に使用していたインストール済みの他のアプリケーションが、更新されたバージョンのライブラリプログラムを使用すると、正常に動作しなくなることがある。
【0007】
この問題を解決するために、上記バージョンアップされたアプリケーションをインストールするときに、上記バージョンアップされたライブラリプログラムを、複数のアプリケーションとは関係なく定められた上記特定のライブラリエリアではなく、上記バージョンアップされたアプリケーションがインストールされたエリアに記憶し、更に、上記新たにインストールされたアプリケーションが上記ライブラリプログラムを参照するときに、当該新たにインストールされたアプリケーション用のエリア内に新たにインストールされた上記ライブラリプログラムにアクセスさせることが提案されている(例えば、特許文献1参照)。
【0008】
複数のアプリケーション間で共用され、共通の領域に記憶された複数のダイナミックリンクライブラリプログラムについて、各アプリケーションが使用するダイナミックリンクライブラリプログラムのバージョンを登録しておき、各アプリケーションがいずれかのダイナミックリンクライブラリプログラムを呼び出したときには、そのアプリケーションに適したバージョンを有するダイナミックリンクライブラリプログラムを呼び出すようにすることも提案されている(例えば、特許文献2参照)。
【0009】
ところで、従来は、インストールすべきアプリケーションを生成するには、独立した複数のソースプログラムをコンパイルして複数のオブジェクトモジュールを得て、それらのオブジェクトモジュールをあらかじめ静的にリンクして単独の実行ファイルを生成しアプリケーションとしてインストールするという方法が多く使用されていた。しかし、近年では、アプリケーションは、それぞれオブジェクト指向言語で記述され、動的に結合可能に形成されたプログラムである複数のオブジェクトにより構成されることが増えてきている。オブジェクトは、ソースプログラムの形態でもよく、ソースプログラムをコンパイルして得られる中間言語プログラムの形態でもよく、あるいはコンパイルされたオブジェクトコードの形態でもよい。
【0010】
このようなアプリケーションを補助記憶装置に記憶して情報処理装置にインストールすると、当該アプリケーションを構成する複数のオブジェクトは複数のディレクトリに記憶される。そのアプリケーションの実行中にアプリケーション内のいずれかのオブジェクトから他の任意のオブジェクトを呼び出すときには、呼び出し先のオブジェクトがメインメモリにロードされ、ロードされたオブジェクトが呼び出し元のオブジェクト及びアプリケーション実行部(例えば、アプリケーションがインタプリタにより逐次解読されて実行されるときには、当該インタプリタ)に動的に結合される。これにより、呼び出し元のオブジェクトが呼び出し先のオブジェクトを利用可能になる。
【0011】
このようなオブジェクト指向言語で記述されたオブジェクトは、特定のアプリケーションでしか使用できないということはなく、他のアプリケーションにも使用できる、いわばアプリケーションの部品オブジェクトとも言えるものである。近年、このような部品オブジェクトを開発して販売する企業も増えてきて、いわゆるオブジェクトコンポーネント化の流れが顕著になってきている。
【0012】
【特許文献1】
特開2001−22569号公報
【特許文献2】
特開2001−154831号公報
【0013】
【発明が解決しようとする課題】
本発明者は、上記のように部品オブジェクトが市場に流通し任意のアプリケーションに組み込まれて使用されるようになっている状況を考えると、情報処理装置の利用者が複数のアプリケーションを同じ情報処理装置にインストールした場合に、それらのアプリケーションの開発者が全く異なっていても、他の開発者により開発され販売された同じ部品オブジェクトがそれらのアプリケーションに使用されていることが起こりうることに気が付いた。更に、本発明者は、これらのアプリケーションの間で一つの部品オブジェクトを共用させ、補助記憶装置に当該部品オブジェクトを複数個記憶しないようにすることができれば、補助記憶容量の必要容量を減らすことができることに気が付いた。
【0014】
更に、本発明者は、組み込みデバイスに関してはオブジェクトを含むアプリケーションが使用される場合が増えているが、組み込みデバイスでは使用可能な補助記憶装置の記憶容量が非常に小さい場合が多いので、上記のように異なるアプリケーション間でオブジェクトを共用させることにより補助記憶装置の消費容量を減らすことが特に望ましいと考えるに至った。
【0015】
このように、オブジェクトを複数のアプリケーション間で共用可能にすることが望ましいが、既に述べた従来技術のような、特定のライブラリエリアに共用されるプログラムを記憶する方法は、オブジェクトの共用管理には望ましくないことに本発明者は気付いた。すなわち、共用されるオブジェクトを特定のライブラリエリアに記憶する方法を使用するには、アプリケーションを構成する複数のオブジェクトの各々について、他のアプリケーションにより共用される可能性があるか否かを決める必要がある。しかし、アプリケーションの開発者は、そのアプリケーションが使用するオブジェクトが、他の開発者により開発される他のアプリケーションにより共用される可能性があるか否かは通常は予測できない。したがって、アプリケーションを構成する複数のオブジェクトのうち共用されるオブジェクトを共用のオブジェクト用の特定のエリアに記憶させるという方法を実質的に採ることができない。
【0016】
本発明の目的は、上記のような事情に鑑みて、それぞれ複数のオブジェクトの集合から構成される複数のアプリケーション間でオブジェクトを共用可能にするオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【0017】
本発明のより具体的な目的は、新たにインストールしたかあるいはこれからインストールしようとするインストール対象のアプリケーションを構成するいずれかのオブジェクトについて、インストール済みの他のいずれかのアプリケーションを構成し上記インストール対象の上記オブジェクトの代わりに使用可能な(共用可能な)オブジェクトを共用させるオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【0018】
本発明の他の具体的な目的は、実行中のいずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求にしたがって、当該ロード要求により指定されたオブジェクト名を有するオブジェクトとして、上記アプリケーション内の上記オブジェクトの代わりに使用可能な(共用可能な)、他のアプリケーションに含まれたオブジェクトをロードして共用させるオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置を提供することである。
【0019】
【課題を解決するための手段】
本願において開示される発明の代表的なものの概要は下記のとおりである。本発明に係るオブジェクト共用化プログラムは、情報処理装置にインストールされる複数のアプリケーションの各々が動的に結合可能に構成された複数のオブジェクトを含み、各アプリケーション内の各オブジェクトは前記情報処理装置に設けられた、メインメモリとは異なる記憶装置内の、当該アプリケーションを記憶するのに使用される一つ又は複数の記憶位置のいずれかに記憶される情報処理装置のためのオブジェクト共用化プログラムであって、以下のステップを前記情報処理装置に実行させるようにプログラムされているものである。
すなわち、前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化ステップ。
【0020】
これにより、インストール対象のアプリケーション内のオブジェクトに対して代わりに使用可能な、他のアプリケーション内の他のオブジェクトがあれば、当該他のオブジェクトを共用させることができる。
【0021】
前記共用化情報の望ましい例は、前記他のオブジェクトが記憶されている前記記憶装置内の記憶位置に関連する共用先記憶位置情報である。なお、上記インストール対象のアプリケーションが、新たに情報処理装置にインストールされたアプリケーションの場合でも、これから情報処理装置にインストールしようとするアプリケーションの場合でも上記発明を適用することがえきる。
【0022】
より具体的には、本発明に係る上記オブジェクト共用化プログラムは、前記情報処理装置にインストール済みの複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、当該オブジェクトの名称と、当該オブジェクトの当該名称以外の他の識別情報と、当該オブジェクトが記憶されている前記記憶装置内の記憶位置に関連する記憶位置情報とを含むオブジェクト管理情報を記憶するオブジェクト管理情報記憶ステップを更に情報処理装置に実行させるようにプログラムされ、前記共用可能オブジェクト検出ステップは、前記情報処理装置にインストール済みの前記複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、前記記憶されたオブジェクト管理情報に含まれた当該オブジェクトの名称と当該名称以外の他の識別情報と、前記インストール対象のアプリケーションに含まれた、代わりに使用可能なオブジェクトの検出が行われる前記オブジェクトに関する、当該オブジェクトの名称と当該名称以外の他の識別情報とに基づいて実行される。
【0023】
これにより、インストール対象のアプリケーション内のオブジェクトについて、他のアプリケーション内の共用可能な他のオブジェクトを、インストール済みのアプリケーションのオブジェクトについて記憶されたオブジェクト管理情報に基づいて迅速に検出することができる。
【0024】
更に具体的には、本発明に係る上記オブジェクト共用化プログラムは、インストール済みの複数のアプリケーションのいずれかをアンインストールする場合、当該アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているときには、当該共用を解除する共用解除ステップ、を前記情報処理装置に更に実行させるようにプログラムされている。
前記共用解除ステップは、前記アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているか否か及び共用されている場合には、当該共用元のオブジェクトを判別する共用元オブジェクト判別ステップと、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトがいずれかの他のオブジェクトにより共用されていると分かった場合、当該共用を解除するための処理を実行する共用解除処理ステップと、を含む。
前記共用解除処理ステップは、前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトを共用する前記他のオブジェクトが記憶されるべき、前記記憶装置内の記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動してそこに記憶させるオブジェクト移動ステップと、前記他のオブジェクトに関連して記憶されていた前記アンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスさせるための共用化情報を無効にする共用化情報無効化ステップと、を含む。
【0025】
こうして、アンインストール時に、オブジェクトの共用を解除してオブジェクトが共用される前の状態を回復することを容易に実現することができる。
【0026】
本発明に係る上記オブジェクト共用化プログラムのより望ましい態様は、いずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求により指定された、前記記憶装置内の記憶位置に記憶された当該オブジェクトが指定するオブジェクト名を有する他のオブジェクトに関連して、当該他のオブジェクトに代えて使用可能な更に他のオブジェクトが前記記憶装置に記憶されている場合に、前記他のオブジェクトに代えて前記更に他のオブジェクトがロードされるように、前記ロード要求を変更するロード要求変更ステップと、前記ロード要求にしたがって前記更に他のオブジェクトが前記メインメモリにロードされた後、当該ロードされた更に他のオブジェクトを前記ロード要求を含んでいる前記要求元のオブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、を前記情報処理装置に更に実行させるようにプログラムされているものである。
【0027】
これにより、ロード要求でロードが要求されたオブジェクトに対する共用先の他のオブジェクトを、当該他のオブジェクトの名称と当該他のオブジェクトが記憶されている記憶位置を指定してロードされるように、ロード要求を変更することが可能になり、共用先のオブジェクトをロード要求されたオブジェクトに代えてロードすることが可能になる。
【0028】
本発明に係る上記オブジェクト共用化プログラムの他の望ましい態様は、実行中のいずれかのアプリケーションに属するいずれかのオブジェクトに含まれたロード要求にしたがって、当該ロード要求に含まれた記憶位置情報により指定される、メインメモリとは異なる記憶装置内の記憶位置から、当該ロード要求により指定されたオブジェクト名を有する他のオブジェクトを前記メインメモリにロードするように、前記ロード要求を実行させるロード要求実行ステップと、前記ロード要求実行ステップにより前記ロード要求が実行させられ前記他のオブジェクトが前記メインメモリにロードされた後に、当該ロードされた他のオブジェクトを、前記ロード要求を含むロード要求元の前記オブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、前記ロード要求に含まれた前記記憶位置情報により指定される前記記憶装置内の記憶位置に記憶され当該ロード要求が指定する前記オブジェクト名を有するオブジェクトに関連して、当該オブジェクトに代えて使用可能な更に他のオブジェクトにアクセスするための共用化情報が記憶されているか否かを判別する共用化情報記憶判別ステップと、を情報処理装置に実行させるようにプログラムされ、更に、前記ロード要求実行ステップは、前記ロード要求によりロードが要求された前記他のオブジェクトに関連して前記共用化情報が記憶されていることが分かった場合には、前記共用化情報により定まる前記記憶装置内の記憶位置から前記オブジェクト名を有する共用先の更に他のオブジェクトがロードされるように、実行させる前記ロード要求を変更するロード要求変更ステップを含む、ものである。
【0029】
これにより、ロード要求でロードが要求された他のオブジェクトの代わりに使用可能な更に他のオブジェクトに関連して当該更に他のオブジェクトにアクセスするための共用化情報が記憶されている場合、当該共用化情報を使用して、当該更に他のオブジェクトを容易にロードさせることができる。
【0030】
【発明の実施の形態】
以下、図面を参照して本発明に係るオブジェクト共用化プログラム、オブジェクト共用化方法及び情報処理装置のいくつかの実施の形態を詳細に説明する。なお、発明の第2の実施の形態以降においては、発明の第1の実施の形態との相違点を主に説明するに止める。
【0031】
<発明の第1の実施の形態>
図1は、本発明に係る情報処理装置の第1の実施の形態の概略ブロック図である。図において、情報処理装置1は、中央処理装置(以下では、単に処理装置と呼ぶことがある)10と、マウス等のポインティングデバイス及びキーボード等文字入力装置とを含む入力装置11と、CRT表示装置や液晶表示装置等の表示装置12と、メインメモリとして使用されるランダムアクセスメモリ(RAM)13と、半導体固定記憶装置(ROM)14と、例えば磁気ディスク記憶装置、光学ディスク記憶装置、磁気光学ディスク記憶装置その他のディスク記憶装置あるいは書き込み可能な半導体固定記憶装置(例えばフラッシュメモリ)その他の半導体記憶装置からなる補助記憶装置15等を備えている。補助記憶装置15には、情報処理装置1にインストールされた複数のアプリケーションが記憶される。
【0032】
処理装置10は、オブジェクト共用化部20を備えている。オブジェクト共用化部20は、インストール部30Aと、アンインストール部30Bと、オブジェクト共用管理部40と、プログラム実行制御部50とを備えている。オブジェクト共用管理部40は、オブジェクト共用設定部400とオブジェクト共用解除部450とを備えている。プログラム実行制御部50は、インタプリタ部500とOS部510とを備えている。
【0033】
オブジェクト共用化部20は、オブジェクト共用化プログラムにより実現される。オブジェクト共用化部20の内部の処理部30A、30B、40、50は、それぞれインストールプログラム、アンインストールプログラム、オブジェクト共用管理プログラム、プログラム実行制御プログラムにより実現される。したがって、オブジェクト共用化部20を実現する上記オブジェクト共用化プログラムは、インストールプログラム、アンインストールプログラム、オブジェクト共用管理プログラム、プログラム実行制御プログラムを含むことになる。更に、インタプリタ部500はインタプリタにより実現され、OS部510はOSにより実現される。
【0034】
オブジェクト共用化部20を実現するオブジェクト共用化プログラムは、本発明に係るオブジェクト共用化プログラムの一つの実施の形態を示し、情報処理装置1は、本発明に係る情報処理装置の一つの実施の形態を示す。情報処理装置1により実行されるオブジェクト共用化のための処理は、本発明に係るオブジェクト共用化方法の一つの実施の形態を使用する。
【0035】
図2は、補助記憶装置15に記憶されている、情報処理装置1にインストールされた複数のアプリケーション60、70、80のプログラム構造の概略を例示する図である。各アプリケーションは、複数のオブジェクト61、62、又は71、72又は81、82を含んでいる。各アプリケーションに対応して更にオブジェクト管理情報63、73又は83が記憶されている。なお、図では、簡単化のために3つのアプリケーションのみが図示されているが、本発明はその数に制限はない。更に、図では、各アプリケーション、例えば60内には2つのオブジェクト61、62のみが示されているが、本発明はその数には限定されない。
【0036】
本実施の形態ではアプリケーションは、オブジェクト指向言語で記述されている。すなわち、アプリケーションを構成する複数のオブジェクトの各々は、オブジェクト指向言語で記述され、動的に結合可能に形成されている。本発明を適用するうえでは、各オブジェクトはソースプログラムでもよく、ソースプログラムをコンパイラでコンパイルして得られる中間語プログラム(中間コードとも呼ばれる)でもよく、あるいはソースプログラムをコンパイラでコンパイルして得られるオブジェクトプログラムでもよいが、本実施の形態では、各オブジェクトは、ソースプログラムをコンパイルして得られる動的に結合可能に形成された中間コードであるとする。本実施の形態では、この中間コードは、後に説明するように、インタプリタにより逐次解読されて実行される。
【0037】
各アプリケーション、例えば60に対するオブジェクト管理情報63は、図2では、簡単化のためにアプリケーション60を示すブロック内に示されているが、オブジェクト管理情報63は、アプリケーション60に対応して記憶されていればよく、その記憶位置がアプリケーションの記憶位置と同じでなければならないことを示すものではない。しかし、オブジェクト管理情報63の記憶位置がアプリケーション60の記憶位置と同じであると、オブジェクト管理情報63の検索が容易である。具体的には、各アプリケーションのオブジェクト管理情報は、当該アプリケーションがインストールされる、後述するオブジェクトルートディレクトリに記憶させるのがよい。
【0038】
各アプリケーションを構成する複数のオブジェクトの一つはメインオブジェクトであり、そのメインオブジェクトは、そのアプリケーションの起動時に最初に起動されるべきオブジェクトである。またメインオブジェクトを含む複数のオブジェクトは一般にツリー構造を有する複数のディレクトリに分散して記憶される。これらのディレクトリのツリー構造の最上層をオブジェクトルートと呼ぶ。このオブジェクトルートがあるディレクトリをオブジェクトルートディレクトリと呼ぶことにする。各ディレクトリには一つ又は複数のオブジェクトが記憶される。利用者は、インストール部30Aを用いてそのアプリケーションをインストールするときには、通常は、当該アプリケーションをインストールすべきディレクトリを指定することができる。インストール部30Aは、利用者が指定したディレクトリをオブジェクトルートディレクトリとして使用し、アプリケーション内の各オブジェクトを、オブジェクトルートディレクトリとの間についての当該アプリケーションが指定する相対パスを有するディレクトリに記憶させる。
【0039】
図3は、アプリケーション60、70、80がそれぞれインストールされる前にそれらのアプリケーションに含まれているオブジェクト管理情報63、73、83の例を示す図である。これらのオブジェクト管理情報は同じ構造を有している。各オブジェクト管理情報には、対応するアプリケーションを構成する複数のオブジェクトの各々に関するいろいろな情報が記憶される。具体的には、オブジェクト管理情報63には、アプリケーション60に含まれる複数のオブジェクトの各々に対して、当該オブジェクトの複数の識別情報と、当該オブジェクトにアクセスするための情報とを記憶するフィールドが設けられている。
【0040】
識別情報を記憶するフィールドとしては、オブジェクト名称631と他の識別情報635をそれぞれ記憶するフィールドが設けられている。他の識別情報635を記憶するフィールドには、例えば、バージョン情報、制作年月日、製造元企業名、使用されている言語の種類を示す言語情報、プログラムサイズ、シリアルナンバー等の複数の識別情報が記憶される。オブジェクトにアクセスするための情報としては、自パス情報632、共用先パス情報633、共用元オブジェクト数634をそれぞれ記憶するフィールドが設けられている。なお、共用元オブジェクト数634は、図3では簡単化のために共用元数と表示されている。また、そのように呼ぶことがある。
【0041】
各オブジェクトに対して記憶された上記複数の情報のうちオブジェクト名称631と他の識別情報635はあらかじめオブジェクト管理情報63内に初期値として記憶されている。当該アプリケーションのオブジェクトの自パス情報632には、当該アプリケーションのオブジェクトルートディレクトリから当該オブジェクトへの相対パス情報があらかじめ初期値として記憶されている。
【0042】
例えば、図3では、、オブジェクトb、cが記憶されるべきディレクトリは、オブジェクトルートディレクトリからの相対パス表現で、それぞれ relative(−1) bbb、relative(−1) cccであることが示されている。ここで、relative(−1)は、1階層下位側にあるディレクトリを示す。オブジェクトaの自パス情報632には何も記憶されていないので、オブジェクトaは、アプリケーション70のオブジェクトルートディレクトリに記憶されるべきであることが分かる。なお、相対パスの表現方法は他の方法でもよいことは言うまでもない。
【0043】
オブジェクト管理情報73にも、各オブジェクトに対してオブジェクト名称731、自パス情報732、共用先パス情報733、共用元オブジェクト数734、他の識別情報735を記憶するフィールドが設けられている。同様に、オブジェクト管理情報83にも、各オブジェクトに対してオブジェクト名称831、自パス情報832、共用先パス情報833、共用元オブジェクト数834、他の識別情報835を記憶するフィールドが設けられている。
【0044】
アプリケーション70を構成する複数のオブジェクトのそれぞれの名称731は、オブジェクトx、y、zであり、オブジェクトy、zの自パス情報732には、相対パス情報relative(−1) bbb、relative(−1) cccがそれぞれ初期値として記憶されている。オブジェクトy、zは、それぞれアプリケーション70のオブジェクトルートディレクトリの下位のディレクトリに記憶されるべきであることが示されている。オブジェクトaの自パス情報732には何も記憶されていないので、オブジェクトaは、アプリケーション70のオブジェクトルートディレクトリに記憶されるべきであることが分かる。オブジェクトx、y、zの他の識別情報735にはオブジェクト名称以外の複数の識別情報があらかじめ記憶されている。
【0045】
アプリケーション80の場合には、アプリケーション80を構成する複数のオブジェクトの名称831は、オブジェクトl、m、nであり、オブジェクトm、nの自パス情報832には、相対パス情報relative(−1) bbb、relative(−1) cccが初期値として記憶されている。オブジェクトm、nは、それぞれオブジェクトルートディレクトリの下位のディレクトリに記憶されるべきことが示されている。オブジェクトaの自パス情報732には何も記憶されていないので、オブジェクトaは、アプリケーション70のオブジェクトルートディレクトリに記憶されるべきであることが分かる。オブジェクトl、m、nの他の識別情報835にもオブジェクトの名称以外の複数の識別情報があらかじめ記憶されている。
【0046】
図4は、図1の情報処理装置で使用されるオブジェクト共用設定部400の概略ブロック図である。オブジェクト共用設定部400は、オブジェクト管理情報記憶部410、共用可能オブジェクト検出部420、共用化情報記憶部430と共用元オブジェクト削除部440を備えている。
【0047】
図5は、オブジェクト共用設定部400の処理の概略フローチャートである。本発明は、あらかじめ複数のアプリケーションがインストールされた状態で追加して新たにアプリケーションがインストールされた場合及びあらかじめ複数のアプリケーションがインストールされた状態で、追加して新たにアプリケーションをこれからインストールしようとする場合のいずれの場合にも適用することができる。したがって、本明細書では、新たにインストールされたアプリケーションあるいはこれからインストールしようとするアプリケーションを区別しないで説明するときには、いずれをもインストール対象のアプリケーションと呼ぶことがあり、当該アプリケーションに含まれたオブジェクトをインストール対象オブジェクトと呼ぶことがある。
【0048】
本実施の形態では、オブジェクト共用管理部40は、新たにアプリケーションが現にインストールされた場合に自動的に動作するようになっているとする。なお、これから新たにアプリケーションをインストールしようとするときにオブジェクト共用管理部40を動作させてアプリケーション間でオブジェクトを共用させる実施の形態は、別の実施の形態として説明する。
【0049】
オブジェクト共用管理部40がインストールされる前に既にインストールされたアプリケーションがある場合には、以下に述べる新たにインストールされたアプリケーションについての処理を個々のインストール済みのアプリケーションについて行い、更に、アプリケーション間でのオブジェクトの共用のための処理を行えばよい。以下では、既にインストール済みのアプリケーションについて以上の処理が終了していると仮定する。
【0050】
さて、オブジェクト共用設定部400は、インストール部30A(図1)により新たにアプリケーションが補助記憶装置15に記憶されてインストールされる毎に起動され、以下の処理を行う。なお、OS部510が、インストールが実行されたことを検出してOS部510により自動的にオブジェクト共用設定部400を起動してもよい。あるいは、インストール部30Aがインストールを行ったときに、インストール部30Aがオブジェクト共用設定部400を起動させるようにしてもよい。あるいは、利用者は、インストール部30Aを起動してアプリケーションを新たにインストールした後に、オブジェクト共用設定部400を起動するための操作をしてもよい。あるいは、オブジェクト共用設定部400は、常時起動された状態にあり、いずれかのアプリケーションが新たにインストールされたか否かを監視し、新たなインストールを検出したときには、上に述べたようにして起動されたときと同じように、以下の処理を行うようにしてもよい。
【0051】
図5において、オブジェクト共用設定部400は、呼び出されると、まず、オブジェクト管理情報記憶部410が呼び出す。オブジェクト管理情報記憶部410は、新たにインストールされたアプリケーションに対するオブジェクト管理情報(例えば63)内に当該アプリケーションを構成する各オブジェクトに対する自パス情報632を更新する。すなわち、それぞれのオブジェクトが記憶されたディレクトリの絶対パス情報が自パス情報として当該アプリケーションに対するオブジェクト管理情報内に記憶される。
【0052】
図6は、アプリケーション60、70、80がそれぞれインストールされた直後のオブジェクト管理情報63、73、83の内容の例を示す。例えばアプリケーション60がインストールされると、オブジェクトaに対する自パス情報632は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図6に示すように、aaa/bbb/ccc に変更される。オブジェクトbに対する自パス情報632は、初期値の相対パス情報relative(−1) bbbから、例えば図6に示すように、オブジェクトbが記憶されたディレクトリの絶対パス情報 aaa/bbb/ccc/bbb に変更される。同様に、オブジェクトcに対する自パス情報632は、初期値の相対パス情報relative(−1) cccから、図6に示すように、オブジェクトcが記憶されたディレクトリの絶対パス情報 aaa/bbb/ccc/ccc に変更される。
【0053】
以下では、アプリケーション60がインストールされた後、当該アプリケーション60に関してオブジェクト共用設定部400が呼び出され、その後にアプリケーション70がインストールされ、当該アプリケーション70に対してオブジェクト共用設定部400が呼び出され、更にその後アプリケーション80がインストールされ、アプリケーション80に関してオブジェクト共用設定部400が呼び出されると仮定する。
【0054】
アプリケーション60がインストールされた後の共用可能オブジェクト検出部420の処理を説明する前に、アプリケーション70、80がそれぞれインストールされた直後のオブジェクト管理情報73と83の内容を先に説明しておく。アプリケーション70がインストールされると、オブジェクトxに対する自パス情報732は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図6に示すように、bbb/bbb/ccc に変更される。オブジェクトbに対する自パス情報732は、初期値の相対パス情報relative(−1) bbbから、例えば図6に示すように、オブジェクトbが記憶されたディレクトリの絶対パス情報bbb/bbb/ccc/bbb に変更される。同様に、オブジェクトcに対する自パス情報732は、初期値の相対パス情報relative(−1) cccから、図6に示すように、オブジェクトcが記憶されたディレクトリの絶対パス情報 bbb/bbb/ccc/ccc に変更される。
【0055】
同様に、アプリケーション80がインストールされると、メインオブジェクトlに対する自パス情報832は、初期値の空白から、オブジェクトルートディレクトリの絶対パス情報、例えば図6に示すように、ccc/bbb/ccc に変更される。オブジェクトmに対する自パス情報832は、初期値の相対パス情報relative(−1) bbbから、例えば図6に示すように、オブジェクトmが記憶されたディレクトリの絶対パス情報 ccc/bbb/ccc/bbb に変更される。同様に、オブジェクトnに対する自パス情報832は、初期値の相対パス情報relative(−1) cccから、図6に示すように、オブジェクトnが記憶されたディレクトリの絶対パス情報 ccc/bbb/ccc/ccc に変更される。
【0056】
さて、図5に戻り、アプリケーション60がインストールされた段階で行われる共用可能オブジェクト検出部420の処理を説明する。なお、アプリケーション70、80のインストールは後に行われると仮定している。共用可能オブジェクト検出部420は、既にインストール済みの多数のアプリケーションに属するオブジェクトのうち、新たにインストールされたアプリケーション60内の各オブジェクトに代えて使用可能な他のオブジェクトがあるか否かを検出する。本明細書では、あるオブジェクトに代えてあるいはその代わりに使用可能なオブジェクトを共用可能なオブジェクトと呼ぶことがある。更に前者の代わりに後者を使用することが決定された場合には、後者を共用先オブジェクトと呼び、前者を共用元オブジェクトと呼ぶことがある。
【0057】
具体的には、まず、新たにインストールされたアプリケーション(今の仮定ではアプリケーション60)内のオブジェクトのうち、オブジェクト共用設定部400での共用設定処理の要否のチェック対象とすべきオブジェクトの選択を試みる(ステップS421)。そのようなオブジェクトが選択できたか否かが判断され(ステップS422)、例えばオブジェクトbが選択できた場合には、上記共用可能なオブジェクトの検出は以下のようにして行われる。
【0058】
まず、上記新たにインストールされたオブジェクトに関して共用可能性を未だチェックしていない、インストール済みの他のオブジェクトの検出を試みる(ステップS423)。そのような未チェックの他のオブジェクトが検出できたか否かが判断され(ステップS424)、そのような未チェックの他のオブジェクトが検出できたときには、当該他のオブジェクトに対するオブジェクト管理情報内の複数の識別情報(具体的には、オブジェクト名と他の識別情報)と、新たにインストールされステップS421で選択されたチェック対象のオブジェクトに対するオブジェクト管理情報63内の対応する複数の識別情報631と635を比較する( ステップS425)。当該比較の結果に基づいて、前者が後者の代わりに使用可能であるか否かが判断される(ステップS426)。
【0059】
ここでは、両者の複数の識別情報が完全に一致するときに、前者が後者の代わりに使用可能であるとする。しかし、バージョン情報、制作年月日等の一部の識別情報のみが異なり、他の識別情報が一致する場合には、異なるバージョン間の互換性に関する情報が別にあらかじめ記憶されていれば、バージョンが異なっていても前者が後者の代わりに使用可能であると判断するようにすることもできる。このようにすれば、他のオブジェクトの代わりに使用可能なオブジェクトとは、当該他のオブジェクトと同一のオブジェクトでなくてもよいことになる。
【0060】
ステップS426において前者が後者の代わりに使用可能でないと判断されたときには(ステップS426でNoの場合)、処理はステップS423に戻り、インストール済みのアプリケーション内の更に未チェックの他のオブジェクトを検出して以上の共用可能性チェック処理を繰り返す。他のインストール済みのアプリケーションのオブジェクトについて以上の共用可能性チェック処理を繰り返しても、ステップS421で選択された新たにインストールされたチェック対象のオブジェクトの代わりに使用可能なインストール済みのオブジェクトが検出されなかったときには、ステップS424において、未チェックのオブジェクトを選択できなかったと判断されるに至る。
【0061】
こうして、ステップS421で選択された新たにインストールされたチェック対象のオブジェクトに対するオブジェクト共用化処理は終了すると、処理はステップS421に戻り、新たにインストールされたアプリケーション内の他のオブジェクトについて以上の処理が繰り返される。
【0062】
一方、ステップS421で選択されたいずれかの新たにインストールされたチェック対象のオブジェクトについて、そのオブジェクトの代わりに使用可能ないずれかのインストール済みのオブジェクトが検出されたとステップS426において判断されたときには、当該新たにインストールされたチェック対象のオブジェクトについて共用可能オブジェクト検出部420の処理が成功裏に終了し、オブジェクト共用設定部400では、共用化情報記憶部430が呼び出される。
【0063】
共用化情報記憶部430は、共用可能オブジェクト検出部420により共用可能なオブジェクトが検出された場合、その新たにインストールされたチェック中のオブジェクトを共用元のオブジェクトに設定し、当該共用可能なオブジェクトを共用先のオブジェクトに設定する処理を行う。具体的には、新たにインストールされたチェック中のオブジェクトに対応する、オブジェクト管理情報63内に、当該共用可能なオブジェクトを共用先オブジェクトに指定するための共用化情報を記憶する。
【0064】
図3に例示したようにオブジェクト管理情報63には、共用化情報として、共用先パス情報633と共用元オブジェクト数634が記憶されるフィールドが設けられている。同様に、他のアプリケーション70に対応するオブジェクト管理情報73にも共用先パス情報733、共用元オブジェクト数734を記憶するフィールドが設けられ、アプリケーション80に対応するオブジェクト管理情報83にも共用先パス情報833、共用元オブジェクト数834を記憶するフィールドが設けられている。アプリケーション、例えば60がインストールされた直後では、対応するオブジェクト管理情報、例えば63内の共用先パス情報、例えば633は空白であり、共用元オブジェクト数、例えば634は初期値として値0を採る。
【0065】
図5に戻り、共用化情報記憶部430が呼び出されると、他のインストール済みのアプリケーションに対応するオブジェクト管理情報内に記憶された当該共用可能なオブジェクトに対する自パス情報を、新たにインストールされたチェック中のオブジェクトに対して記憶された、オブジェクト管理情報63内の共用先パス情報フィールド633に記憶する(ステップS431)。こうして、共用可能なオブジェクトがチェック中のオブジェクトに対する共用先オブジェクトに設定され、チェック中のオブジェクトが共用元オブジェクトに設定されたことになる。この共用先パス情報は、共用元のオブジェクトに代えて、共用先のオブジェクトにアクセスするのを可能にする。このように、共用化情報として、共用先のオブジェクトの補助記憶装置内の記憶位置に関連する情報を使用した場合、共用化情報を用いて共用先のオブジェクトにアクセスすることができるので、共用先のオブジェクトにアクセスして当該オブジェクトを共用元のオブジェクトに代えて使用するための処理が極めて簡単になる。
【0066】
更に、共用先のオブジェクトが属するインストール済みのアプリケーションに対するオブジェクト管理情報内の当該共用先のオブジェクトに対する共用元オブジェクト数を1だけ増大する(ステップS432)。こうして、共用元オブジェクト数が当該共用先のオブジェクトを共用する共用元のオブジェクトの総数を表すことになる。
【0067】
その後、共用元オブジェクト削除部440が呼び出され、共用元オブジェクト削除部440は上記共用元オブジェクトに設定されたオブジェクトが補助記憶装置15に記憶されないようにする。具体的には、当該オブジェクトを補助記憶装置15から削除すればよい。こうして、上記共有元と判断されたオブジェクトについてのオブジェクト共用化処理が終了し、その後、処理はステップS421に移り、新たにインストールされたアプリケーション内の他のオブジェクトについて、共用可能オブジェクト検出部420以降の処理が繰り返されることになる。新たにインストールされたアプリケーション内の全てのオブジェクトについてオブジェクト共用化処理が終了すると、未チェックのオブジェクトがなくなり、選択不成功とステップS422で判断され、オブジェクト共用設定部400の処理が終了する。その後、アプリケーション70、80がインストールされたときにも同様にオブジェクト共用設定部400が実行される。
【0068】
以上のオブジェクト共用設定部400の処理を図3と図6を参照して更に説明する。図3は、既に説明したように、アプリケーション60、70、80がそれぞれインストールされる前のオブジェクト管理情報63、73、83の例を示し、図6は、アプリケーション60、70、80がそれぞれインストールされた直後のオブジェクト管理情報63、73、83の例を示す。
【0069】
まず、アプリケーション60がインストールされたのを契機にしてオブジェクト共用設定部400が起動され、当該アプリケーション60に関してオブジェクト管理情報記憶部410が呼び出され、オブジェクト管理情報記憶部410は、図3のオブジェクト管理情報63内の自パス情報632に絶対パス表現の自パス情報を記憶してオブジェクト管理情報63を図6に示すものに変更する。更に、共用可能オブジェクト検出部420により、アプリケーション60内の各オブジェクトに対して共用可能なオブジェクトが検出される。ここでは、アプリケーション60のいずれのオブジェクトに対しても共用可能なオブジェクトが検出できなかったと仮定する。したがって、オブジェクト管理情報63内の共用先パス情報633は、図6に示すように空白のままで、オブジェクト共用設定部400が終了する。
【0070】
この後にアプリケーション70が新たにインストールされたとする。そのインストールを契機に、オブジェクト共用設定部400が呼び出され、オブジェクト管理情報記憶部410により、当該アプリケーション70に対するオブジェクト管理情報73の内容が図3のものから図6に示したものに変更され、その後、共用可能オブジェクト検出部420がアプリケーション70に関して呼び出され、アプリケーション70内の各オブジェクトx、y、zに対して共用可能なオブジェクトの検出を行う。その結果、共用可能なオブジェクトが検出されると、オブジェクト管理情報73が更新される。
【0071】
図7はアプリケーション70と80に対して共用可能オブジェクト検出部420の処理が実行された後のオブジェクト管理情報73、83の例を、オブジェクト管理情報63と一緒に示す。例えば、共用可能オブジェクト検出部420が、アプリケーション60内のオブジェクトbがアプリケーション70のオブジェクトyの代わりに使用可能であると判断すると、共用化情報記憶部430は、図7に示すように、アプリケーション70に対するオブジェクト管理情報73内のオブジェクトyに対応する共有先パス情報フィールド733に、共有先のオブジェクトbの絶対パス情報である aaa/bbb/ccc/bbb を記憶する。更に、図7に示すように、オブジェクト管理情報63内のオブジェクトbに対する共用元オブジェクト数634の値を、値0から1だけ増大して値1にする。その後、共用元オブジェクト削除部440はオブジェクトyを補助記憶装置15から削除する。
【0072】
同様に、共用可能オブジェクト検出部420が、アプリケーション60内のオブジェクトcがアプリケーション70のオブジェクトzの代わりに使用可能であると判断すると、共用化情報記憶部430は、図7に示すように、アプリケーション70に対するオブジェクト管理情報73内のオブジェクトzに対応する共有先パス情報フィールド733に、共有先のオブジェクトcの絶対パス情報であるaaa/bbb/ccc/ccc を記憶する。更に、オブジェクト管理情報63内のオブジェクトcに対する共用元オブジェクト数634の値を、値0から1だけ増大して値1にする。その後、共用元オブジェクト削除部440はオブジェクトzを補助記憶装置15から削除する。こうして、アプリケーション70に関してオブジェクト共用設定部400が終了する。
【0073】
その後、新たにアプリケーション80がインストールされると、オブジェクト管理情報記憶部410は、アプリケーション80に対応するオブジェクト管理情報83を図3のものから図6に示すものに変更し、共用可能オブジェクト検出部420がアプリケーション80内の各オブジェクトl、m、nに対して共用可能なオブジェクトを検出する。その結果、例えばアプリケーション60のオブジェクトcが、アプリケーション80のオブジェクトmの代わりに使用可能であると判断すると、共用化情報記憶部430は、図7に示すように、アプリケーション80に対するオブジェクト管理情報83内のオブジェクトmに対応する共有先パス情報フィールド833に、共有先のオブジェクトcの絶対パス情報である aaa/bbb/ccc/ccc を記憶する。更に、図7に示すように、オブジェクト管理情報63内のオブジェクトcに対する共用元オブジェクト数634の値を、値1から1だけ増大して値2にする。その後、共用元オブジェクト削除部440はオブジェクトmを補助記憶装置15から削除する。こうして、アプリケーション80に関してオブジェクト共用設定部400が終了する。
【0074】
以上の説明から分かるように、任意のアプリケーションに含まれた複数のオブジェクトが共用できるときには、その一つを共用させ、当該一つのオブジェクト以外のオブジェクトを削除する。したがって、実質同じ内容のオブジェクトは重複して補助記憶装置15に記憶されないので、複数のアプリケーションを記憶するのに必要となる記憶容量を減らすことができる。
【0075】
本実施の形態ではアプリケーションは以下のようにして実行される。既に述べたように、本実施の形態ではアプリケーションは、オブジェクト指向言語で記述されている。各アプリケーションを構成する複数のオブジェクトの各々は、オブジェクト指向言語で記述され動的に結合可能に形成されている。アプリケーションの起動時には、それらの複数のオブジェクトのうちメインオブジェクトがまず起動される。メインオブジェクトは、他のオブジェクトを呼び出すことができ、当該他のオブジェクトも更に他のオブジェクトを呼び出し可能になっている。こうして、アプリケーションに含まれる複数のオブジェクトが他のオブジェクトから適宜呼び出されて実行される。なお、各オブジェクトは、ソースプログラムでもよくあるいはそのソースプログラムをコンパイルして得られる動的結合可能に構成された中間コードでもよいが、本実施の形態では、各オブジェクトは、動的に結合可能に形成された中間コードであり、インタプリタにより逐次解読して実行される。このように、中間コードをインタプリタにより逐次解読して実行させる方法を採ると、中間コード自体は、情報処理装置1とそれを制御するOSに依存しないで生成することができ、同じ中間語コードが、装置構造あるいは使用するOSが異なる他の情報処理装置にもそのまま使用できることになる。更に、オブジェクト間の動的結合もインタプリタにより実現させることが可能になる。
【0076】
図8は、プログラム実行制御部50の概略ブロック図である。プログラム実行制御部50は、インタプリタ部500とOS部510とを含んでいる。インタプリタ部500は、中間コードに含まれた複数の命令を逐次解読して実行するためのプログラムであるインタプリタにより実現される。OS部510は、情報処理装置1の動作を制御するOSにより実現される。インタプリタ部500には、ロード要求部520と動的結合部530を備えている。ロード要求部520は、共用先オブジェクト判別部540と、ロード要求変更部550とを備えている。ロード要求部520は、実行中のアプリケーションがロードを要求したオブジェクトについて、オブジェクト共用設定部400が既に共用先のオブジェクトを設定している場合に、当該共用先のオブジェクトをロードするように、ロード要求を変更する。
【0077】
オブジェクトは、他のオブジェクトのロードを要求するときに、例えばロード命令を発行する。本実施の形態では、ロード命令は、呼び出すべきオブジェクトの名称だけでなく、当該オブジェクトにアクセスするためのパス情報を指定する。パス情報は、例えば呼び出し元のオブジェクトが属するアプリケーションの補助記憶装置15内のオブジェクトルートディレクトリの位置からみた、当該ロードすべきオブジェクトの補助記憶装置15内のディレクトリへの相対パスを用いて指定させることができる。例えば、図6に例示したアプリケーション70の場合、オブジェクトxから他のオブジェクトyをロードするためのロード命令には、例えば下記のロード命令を使用することができる。
【0078】
【数1】
load relative(−1) bbb オブジェクトy
【0079】
ここで、relative(−1) bbb は、オブジェクトルートディレクトリからみて下位側の相対パス bbb のディレクトリを指定する。アプリケーション70のオブジェクトルートディレクトリは、bbb/bbb/ccc であるので、オブジェクトyは、絶対パス bbb/bbb/ccc/bbb により表されるディレクトリからロードされることになる。
【0080】
相対パス情報を使用するのは、ロード命令が要求したオブジェクトが含まれるアプリケーションのインストール時に、当該アプリケーションのオブジェクトルートディレクトリとして、利用者により任意のディレクトリが指定されても、ロードすべきオブジェクトのディレクトリを容易に決めることを可能にするためである。
【0081】
図9は、インタプリタ部500の処理の概略フローチャートである。インタプリタ部500では、次に実行すべき命令がロード命令であるか否かを判別し(ステップS501)、ロード命令でないときには、その命令を解読してその命令が要求する処理を実行する(ステップS502)。一方、次に実行すべき命令がロード命令であるときには、ロード要求部520が呼び出される。
【0082】
ロード要求部520では、まず、共用先オブジェクト判別部540が呼び出される。共用先オブジェクト判別部540は、ロードが要求されたオブジェクトについて、共用先に設定されている他のオブジェクトの検出を試みる。具体的には、共用先オブジェクトの検出は、ロードが要求されたオブジェクトが含まれるアプリケーションに対して記憶されたオブジェクト管理情報73内に、当該ロード命令が指定するオブジェクトに対して共用先パス情報が記憶されているか否かにより判断される。共用先オブジェクト判別部540の処理結果に基づいて、共用先オブジェクトが検出されたか否かが判別される(ステップS521)。
【0083】
ロード命令が指定するオブジェクトに対して共用先のオブジェクトが設定されていないと判断されたときには、当該ロード命令が要求するロードをそのまま実行させる命令をOS部510に対して発行する(ステップS522)。当該オブジェクトがOSによりロードされた後は、動的結合部530が当該ロードされたオブジェクトを、ロード命令を発行した要求元のオブジェクトに動的に結合する。こうして当該要求元のオブジェクトがロードされたオブジェクトを使用できるようになる。
【0084】
ロードすべきオブジェクトに対して共用先オブジェクトが設定されているとステップS521において判断された場合には、ロード要求変更部550が呼び出される。ロード要求変更部550は、共用先のオブジェクトをロードするように、ロード命令を変更する。すなわち、ロード命令内にあったロードすべきオブジェクトに対する相対パス情報を、ロードが要求された共用元のオブジェクトに対応して記憶された共用先パス情報に変更する。ロード命令内のオブジェクト名は変更する必要はない。上記共用先パス情報は絶対パス表示であるので、変更後のロード命令は、共用先のオブジェクトのオブジェクト名とそのオブジェクトへの絶対パスを指定することになる。その後、ステップS522で、変更後のロード命令が要求するロードを実行させる命令をOS部510に対して発行する。
【0085】
例えば、アプリケーション70の実行中に、オブジェクトyのロードを要求するロード命令として先に数1で示した命令が発行されたと仮定する。図7から分かるように、当該オブジェクトyに対してアプリケーション60のオブジェクトbが共用先のオブジェクトとして既に設定されている。
【0086】
上記共用先のオブジェクトに対する共用先パス情報は、図7から分かるように、aaa/bbb/ccc/bbbであるので、上記ロード命令は、ロード要求部520内のロード要求変更部550により下記の命令に変更される。
【0087】
【数2】
load aaa/bbb/ccc/bbb オブジェクトy
【0088】
ここで、オブジェクトyはオブジェクトbと同じオブジェクトであり、上記ロード命令は、アプリケーション60内のオブジェクトbをメインメモリ13にロードすることをOSに要求するロード命令である。ロード要求部520は、この変更後のロード命令に基づいて、オブジェクトcをOSによりメインメモリにロードさせる(ステップS522)。オブジェクトcがメインメモリにロードされた後は、図9に示すように、動的結合部530が当該ロードされたオブジェクトcはロード命令を発行したオブジェクト及びインタプリタ部500に動的に結合する。こうして、当該要求元のオブジェクトはロードされたオブジェクトcを使用できるようになる。このように、共用元のオブジェクトyを補助記憶装置15に記憶しなくても、共用先のオブジェクトcを代わりにロードさせて使用することができる。
【0089】
図10は、オブジェクト共用解除部450の概略ブロック図である。オブジェクト共用解除部450は、いずれかのアプリケーションをアンインストールするときに、当該アプリケーションに含まれたいずれかのオブジェクトを共有先オブジェクトとする共用元オブジェクトが他のインストール済みのアプリケーションに含まれている場合に、共用先のオブジェクトがアンインストールされても、共用元のオブジェクトを正常に使用できるように、その共用を解除する。
【0090】
オブジェクト共用解除部450は、共用元オブジェクト判別部455と共用解除処理部460とを備えている。共用解除処理部460は、オブジェクト移動部470、共用化情報無効化部475と、共用化情報変更部480とを備えている。オブジェクト共用解除部450は、利用者がアンインストール部30Bに対していずれかのアプリケーションをアンインストールする指示を与えたときに、アンインストール部30Bが当該アプリケーションのアンインストールを実行する前に、アンインストール部30Bにより起動される。あるいは、利用者がアンインストール部30Bに対していずれかのアプリケーションのアンインストールを指示する前に、利用者がオブジェクト共用解除部450を起動してアンインストールする予定のアプリケーションを指示し、当該アプリケーションについて共用解除を行わせるようにしてもよい。
【0091】
図11は、オブジェクト共用解除部450の処理の概略フローチャートである。オブジェクト共用解除部450は、起動されると、まず、アンインストールが指示されたアプリケーション内のオブジェクトのうち、オブジェクト共用解除の要否のチェックがまだなされていないチェック対象とすべき一つのオブジェクトの選択を試みる(ステップS451)。選択が成功したか否かが判断され(ステップS452)、選択が成功したと判断されると、当該チェック対象のオブジェクトが属するアプリケーションに対するオブジェクト管理情報内に当該チェック対象のオブジェクトに対して記憶されている共用元オブジェクト数が1以上か否かが判断される(ステップS453)。
【0092】
共用元オブジェクト数が1以上でないときには、チェック対象のオブジェクトに対して共用元オブジェクトがないので、処理はステップS451に戻り、他のチェック対象のオブジェクトを選択させる。共用元オブジェクト数が1以上であるときには、チェック対象のオブジェクトに対して共用元オブジェクトがあるので、共用元オブジェクト判別部455に共用元オブジェクトを一つ検出させる。すなわち、共用元オブジェクト判別部455は、選択されたチェック対象のオブジェクトを共用している他の共用元オブジェクトを一つ判別する。
【0093】
この判別は、例えば、当該チェック対象のオブジェクトが含まれているアプリケーション以外の全てのアプリケーションについて順次それぞれのアプリケーション内のいずれかのオブジェクトに対して、上記選択されたチェック対象のオブジェクトを共用先オブジェクトに設定しているか否かを判別することにより行われる。より具体的には、それぞれのアプリケーションに対応して記憶されたオブジェクト管理情報内に、当該アンインストール予定のチェック対象のオブジェクトに関するパス情報が共有先パス情報として記憶されているか否かにより、上記判別が行われる。
【0094】
共用元オブジェクト判別部455により、上記選択されたチェック対象のオブジェクトを共用する一つの他の共用元オブジェクトが判別されると、当該共用元オブジェクトに対して共用解除処理部460が以下のようにして実行される。まず、オブジェクト移動部470が、上記選択されたチェック対象を共用している共有元のオブジェクトに対応して記憶された自パス情報により指定される補助記憶装置15のディレクトリに、当該チェック対象のオブジェクトを移動する。その後、共用化情報無効化部475が、当該共用元のオブジェクトに対応して記憶されていた共用化情報(具体的には、共用先パス情報)を無効にする。無効にするには、例えば削除すればよい。
【0095】
こうして、共用元であったオブジェクトが属するアプリケーション内には共用されていたオブジェクトが記憶され、かつ、当該アプリケーションに対応するオブジェクト管理情報内には、共用先パス情報は記憶されなくなり、共用元であったオブジェクトは、共用設定がされる前の状態に戻る。したがって、共用元であったオブジェクトとチェック対象の共用先であったオブジェクトとの間の共用が解除される。しかも、チェック対象のオブジェクトがその後アンインストールされても、共用元であったオブジェクトは正常に使用できる。
【0096】
その後、共用解除処理部460は、同じチェック対象のオブジェクトを共用先に指定する他の共用元のオブジェクトがまだ存在するか否かを判断するために、アンインストール対象のアプリケーション内の上記チェック対象のオブジェクトに対応して記憶されている共用元オブジェクト数を1だけ減少する(ステップS461)。減少後の共用元オブジェクト数が1以上であるか否かを判別し(ステップS462)、1以上であるときには、同じチェック対象のオブジェクトを共用先に指定する更に他の共用元のオブジェクトが存在するので、共用元オブジェクト判別部455は、当該更に他の共用元オブジェクトを判別させる。
【0097】
当該更に他の共用元オブジェクトが判別されると、共用化情報変更部480は、当該更に他の共用元のオブジェクトが属するアプリケーションに対応して記憶されているオブジェクト管理情報内の当該更に他の共用元オブジェクトに対する共用先パス情報を、上記削除されたチェック対象のオブジェクトとの共用が解除されたと最初に判別された旧共用元のオブジェクトが記憶されているディレクトリに対するパス情報に変更する。更に、当該最初に判別された旧共用元オブジェクトに対して記憶されている共用元オブジェクト数を1だけ増大し、値1にする(ステップS463)。
【0098】
その後、ステップS461に処理が戻り、アンインストール対象のアプリケーション内の上記チェック対象のオブジェクトに対する共用元オブジェクト数を更に1減じて、ステップS462以降を実行する。ステップS462が最初に実行されたときあるいはその後の繰り返しにより実行されたときに、共用元オブジェクト数が1以下(すなわち0)であると判断されたときには、当該チェック対象のオブジェクトを共用する共用元オブジェクトは存在しないので、処理は、ステップS451に戻り、他のチェック対象のオブジェクトを選択して、ステップS452以降が繰り返される。更に、以上の処理が終了し、共用解除処理の要否のチェックをすべきオブジェクトがなくなったときには(ステップS452においてNoの場合)、オブジェクト共用解除部450は処理を終了する。
【0099】
こうして、2番目以降に判別された旧共用元オブジェクトは、チェック対象の共用先のオブジェクトが削除された後、当該チェック対象のオブジェクトを共用先としていたと最初に判別された旧共用元オブジェクトを共用先オブジェクトとする新たな共用元オブジェクトに変更される。したがって、上記チェック対象の共用先オブジェクトが削除された後でも、上記旧共用元オブジェクトを当該他の共用元オブジェクトに共用させることができる。
【0100】
図12は、アプリケーション60がアンインストールの対象にされ、オブジェクト共用解除部450によるオブジェクト解除処理が実行された後のアプリケーション70、80に対するオブジェクト管理情報73、83の例を、アプリケーション60に対する、削除前のオブジェクト管理情報63と一緒に示す図である。なお、アプリケーション60がアンインストールの対象にされたので、アプリケーション60に対するオブジェクト管理情報63は、アプリケーション60のアンインストール時に削除されるが、図には参考に示されている。
【0101】
オブジェクト共用解除部450について上に述べた処理を図7と図12を参照して説明すると、アプリケーション60がアンインストール対象に選択され、その内のオブジェクトcがステップS451で共用解除処理のチェック対象に選択された場合、共用元オブジェクト判別部455は、オブジェクトcに関するパス情報を共用先パス情報として記憶している他のアプリケーション70のオブジェクトzを共用元のオブジェクトと判断する。その場合には、オブジェクト移動部470は、アプリケーション60のオブジェクトzに対応するフィールド732に記憶された自パス情報で指定されるディレクトリにオブジェクトcをオブジェクトzとして移動する。
【0102】
この移動が終了したときには、オブジェクトcは、その移動により削除される。その後、共用化情報無効化部475は、アプリケーション70に対応するオブジェクト管理情報73内にオブジェクトzに対応してフィールド733に記憶されていた共用先パス情報を削除する。こうして、アプリケーション70のオブジェクトzに対するオブジェクト管理情報73の内容は、図12に示すようになり、オブジェクトzとオブジェクトcの共用は解除される。
【0103】
その後、共用元オブジェクト判別部455により、アンインストール対象のオブジェクトcを共用先に指定する他のオブジェクトがあるか否かが判断される。図7の場合には、アプリケーション80のオブジェクトmが上記アンインストール対象のオブジェクトcを共用している。したがって、ステップS461においてオブジェクトmが同じアンインストール対象のオブジェクトcを共用していると判断され、オブジェクト管理情報83内の当該共用元のオブジェクトmに対するフィールド833に記憶されている共用先パス情報を、削除されたオブジェクトcに関するパス情報から、上記によりオブジェクトcが新たに移動されてオブジェクトzとして記憶されたディレクトリを指定する共用先パス情報に変更させる。こうして、アプリケーション80のオブジェクトmに対するオブジェクト管理情報83の内容は、図12に示すようになり、オブジェクトmとオブジェクトcの共用は解除され、オブジェクトmはオブジェクトzを共用するように設定されたことになる。
【0104】
このように、他のアプリケーションのオブジェクトにより共用されたオブジェクトを含むアプリケーションがアンインストールされたときでも、当該他のアプリケーションの上記共用元のオブジェクトは、正常に使用可能になることが分かる。
【0105】
更に、上記実施の形態では、アプリケーションを新規に情報処理装置にインストールした後に、当該アプリケーションを構成するオブジェクトが、インストール済みの他のアプリケーションに含まれるオブジェクトを共用することができるかを否かを検出するようになっている。このような方法を使用すると、インストール自体は従来のインストール用のプログラムを用いて実行することができるので、本発明を実施するに当たり、従来あるインストール用のプログラムの機能はそのまま使用することができるので、本発明の実施が容易である。
【0106】
<発明の第2の実施の形態>
図13は、アプリケーション60に対するオブジェクト管理情報63の他の例を示す図である。オブジェクト管理情報63では、対応するアプリケーション60を構成するオブジェクトの各々に対応して、当該オブジェクトを共用先のオブジェクトとする共用元オブジェクトに関する共用元パス情報を記憶するためのフィールド636が設けられる。このフィールド636には、対応するオブジェクトを共用先オブジェクトにするように設定された複数の共用元オブジェクトが記憶されている補助記憶装置15内の複数のディレクトリのそれぞれに関する共用元パス情報が記憶される。他のオブジェクト管理情報73、83についても、同様に、共用元パス情報記憶フィールド736、836が設けられる。
【0107】
共用元パス情報は、オブジェクト共用設定部400により設定される。すなわち、新たにインストールされたアプリケーション、例えば70内のオブジェクト、例えばyに関して共用可能な他のオブジェクト、例えばアプリケーション60のオブジェクトcを検出して、オブジェクトyに関して、ステップS431(図5)において、共用化情報として例えば共用先パス情報を、図7に示すように、オブジェクト管理情報73内のオブジェクトyに対するフィールド733に記憶した後に、共用先オブジェクトmに関して、共用化情報として、例えば共用元オブジェクトのそれぞれに関する共用元パス情報を、オブジェクト管理情報63内のオブジェクトcに対するフィールド636に記憶する。
【0108】
その後アプリケーション80がインストールされたときに、オブジェクトmがアプリケーション60のオブジェクトcの共用元オブジェクトに設定されたときには、オブジェクトcの共用元パス情報には、アプリケーション80のオブジェクトmのパス情報を、図13に示す、オブジェクトcに対応するフィールド636に追加して記憶する。したがって、同じ共用先オブジェクトcに関して複数の共用元オブジェクトがある場合、それらの共用元オブジェクトに関する複数のパス情報が同じ共用先オブジェクトに対するフィールド636に記憶される。
【0109】
このようにオブジェクト管理情報63内に各オブジェクトに関して共用元パス情報636が記憶されると、オブジェクト共用解除部450の処理が高速化される。すなわち、図11に示したように、第1の実施の形態では、共用元オブジェクト判別部455により、アンインストール対象にアプリケーションに含まれたオブジェクトを共用先とする共用元のオブジェクトを、インストール済みの全てのアプリケーションに対する複数のオブジェクト管理情報の内容を順次チェックして、アンインストール対象のオブジェクトに関する共用先パス情報が記憶されているか否かにより判別していた。
【0110】
しかし、本実施の形態のように、各アプリケーション内の各オブジェクトに対応してオブジェクト管理情報内に当該オブジェクトを共用先とする共用元のオブジェクトのパス情報が記憶されていれば、当該共用先のオブジェクトをアンインストールする際に、当該オブジェクトに対する共用元オブジェクトのパス情報を、直ちに知ることができ、共用元オブジェクト判別部455の処理時間を大幅に短縮することができる。このように、本実施の形態では、オブジェクト管理情報内に共用元パス情報を記憶すると、オブジェクト管理情報の容量が大きくなるが、共用元オブジェクトのパスを迅速に知ることができる。
【0111】
なお、共用元数634は省略することができ、共用元数634を省略した場合には、共用元パス情報フィールド636として記憶された共用元オブジェクトのパス情報の数を共用元数634の代わりに使用することができる。その場合には、共用元オブジェクトにアンインストール対象にアプリケーションに含まれたオブジェクトを共用元オブジェクトが記憶されるべきディレクトリに移動したときは、当該共用元オブジェクトに関する共用元パス情報を、共用元パス情報フィールド636から削除する。同様に、更に他の共用元オブジェクトについて、共用先パス情報を変更する処理を行う毎に、当該共用元オブジェクトに関する共用元パス情報を共用元パス情報フィールド636から削除する。こうすると、共用元パス情報フィールド636に記憶されている共用元パス情報の数が、共用元数634の代わりに使用できることになる。
【0112】
<発明の第3の実施の形態>
発明の第1の実施の形態では、インストール対象のアプリケーションがインストールされた後に、当該インストールされたアプリケーションに関してオブジェクト共用設定部400が呼び出され、オブジェクト共用のための処理がなされ、いずれかの新規にインストールされたオブジェクトに代えて他のインストール済みのオブジェクトが使用可能であると判断されたときには、当該新規にインストールされたオブジェクトに代えて、当該他のオブジェクトを共用させるように、共用化のための設定を行い、その後に、上記新規にインストールされたオブジェクトが削除された。しかし、本発明は、上記のようにアプリケーションがインストールされた後にオブジェクト共用設定処理が実行される場合に限定されない。本実施の形態は、インストールしようとするアプリケーションをインストールする前にオブジェクト共用設定処理が実行してもよいことを示す。
【0113】
このために、情報処理装置1にインストールされたアプリケーションをインストール対象のアプリケーションとして第1の実施の形態の処理を実行するのではなく、これからインストールしようとするアプリケーションをインストール対象のアプリケーションとして、第1の実施の形態で述べた処理を適用する。すなわち、共用可能オブジェクト検出部420による共用可能オブジェクトの検出は、インストール対象のアプリケーションのインストールの前に実行する。
【0114】
第1の実施の形態では、共用元オブジェクト削除部440は、新たにアプリケーションがインストールされた後に当該アプリケーション内の共用元オブジェクトを削除したが、本実施の形態では、インストール対象のアプリケーションがインストールされる時に、代わりに使用可能な他のオブジェクトが検出されたオブジェクトを補助記憶装置15に記憶されないようにするか、又は第1の実施の形態と同様に、インストール対象のアプリケーションがインストールされた後に、当該共用元オブジェクトを前記記憶装置から削除すればよい。共用化情報記憶部430は、代わりに使用可能な他のオブジェクトが検出された、当該アプリケーションに含まれた共用元のオブジェクトに関連する情報として、共用化情報を当該インストール対象のアプリケーションがインストールされる前又は後に記憶するようにすればよい。
【0115】
第1の実施の形態のようにアプリケーション内の全てのオブジェクトをインストールした後にそのうちの一部のオブジェクトを削除するという方法を採る場合には、インストールの後にオブジェクト共用化を行い、その共用化処理の中で、インストール済みの他のオブジェクトを共用できる新たにインストールしたオブジェクトを削除している。しかし、本実施の形態によれば、インストール済みの他のオブジェクトを共用できるオブジェクトはインストールされないので、アプリケーションのインストール時間が減り、更に、インストール後に削除する時間が必要でないので、オブジェクト共用化処理の時間も減少する。
【0116】
<発明の第4の実施の形態>
図14は、本実施の形態による情報処理装置の概略ブロック図である。本実施の形態では、オブジェクト共用管理部40がインタプリタ部500内に含まれ、オブジェクト共用管理部40の処理を実現するプログラムは、インタプリタ部500を実現するプログラムであるインタプリタ内に含まれる。本実施の形態では、オブジェクト共用管理部40を構成するオブジェクト共用設定部400とオブジェクト共用解除部450もインタプリタ内に含まれるので、オブジェクト共用設定部400とオブジェクト共用解除部450をそれぞれ実現するプログラムとして、情報処理装置1を制御するOS及び情報処理装置1自身の装置構成に依存しないプログラムを使用することができ、種々のOSあるいは装置構成の情報処理装置に本発明を適用する場合に便利である。
【0117】
<発明の第5の実施の形態>
図15は、本発明に係る情報処理装置の本実施の形態の概略ブロック図である。本実施の形態では、オブジェクト共用管理部40は、OS部510内に含まれ、オブジェクト共用管理部40の処理を実現するプログラムは、OS部510を実現するプログラムであるOSに含まれる。本実施の形態では、オブジェクト共用管理部40を構成するオブジェクト共用設定部400とオブジェクト共用解除部450もOS部510内に含まれる。したがって、オブジェクト共用設定部400とオブジェクト共用解除部450をそれぞれ実現するプログラムを内蔵したOSが利用可能であるときに、利用者は、これらのプログラムを作成する必要がなく、本実施の形態は、その点では利用者に便利である。
【0118】
<発明の第6の実施の形態>
本実施の形態では、情報家電機器や携帯電話等の特定用途のアプリケーションを実行する機能があらかじめ組み込まれている、いわゆる組み込みデバイスに本発明を適用した実施の形態を説明する。このような組み込みデバイスは、アプリケーションを実行できるので、本明細書では情報処理装置と見なす。このような組み込みデバイスでも、補助記憶装置15は、フラッシュメモリのような、書き換え可能な不揮発性メモリである場合もある。組み込みデバイスで使用されるプログラムは、インストール時には、更に他の補助記憶装置からコピーして上記書き換え可能な不揮発性メモリ装置に記憶させてインストールしてもよい。上記他の補助記憶装置自身が書き換え可能な不揮発性メモリであってもよい。
【0119】
ROMあるいはその一部に少なくとも一つのオブジェクトを含む複数のアプリケーションが記憶され、それらのアプリケーションに対して本発明にしたがって共用が実現されるときには、それらのプログラムを記憶するのにROMが用いられても、本発明に関しては、ROMも、メインメモリとは別の記憶装置という意味では補助記憶装置と同様である。なお、補助記憶装置15又は上記更に他の補助記憶装置又はその両方又は上記ROMの一部が組み込みデバイス本体から着脱可能に構成されてもよい。組み込みデバイスでは、プログラムを記憶するメモリの容量が小さい場合が多いので、本発明を適用すると、プログラムを記憶するのに必要なメモリ容量を低減することができて便利である。
【0120】
以上に示したいくつかの実施の形態から分かるように、アプリケーション間でそれらに含まれたオブジェクトを共用させることができ、複数のアプリケーションを記憶するのに必要な補助記憶装置の容量を低減することができる。しかも、あらかじめ共用させるオブジェクトと決めていない任意のオブジェクトを共用させることができる。更に、以上の実施の形態では、いずれかのオブジェクトを異なるアプリケーション間で共用させるときに、当該オブジェクトを記憶させるディレクトリを新たに生成しない。したがって、共用されるオブジェクトを新たなディレクトリを生成してそこに記憶するという場合に必要となる、記憶装置の容量の消費がないという利点もある。
【0121】
また、上記実施の形態のように、インストール済みのアプリケーションに関して、そこに含まれたオブジェクトに関するオブジェクト名称その他の識別情報と当該オブジェクトの補助記憶装置内の記憶位置に関するパス情報とを含むオブジェクト管理情報を記憶し、新規にインストールしたオブジェクトに対して、代わりに使用可能なオブジェクト(共用可能なオブジェクト)の検出を、インストール済みの各アプリケーションに対する上記オブジェクト管理情報に基づいて行うという方法を採ることにより、既に複数のアプリケーションがインストールされている状態でも、それらのアプリケーションをアンインストールし再インストールするという処理をしなくても、本発明によるオブジェクト共用化方法を使用できるようになる。
【0122】
また、共用化処理がなされた後に共用先のオブジェクトを含むアプリケーションがアンインストールされたために共用を解除するときには、共用元のオブジェクトをそれが本来記憶されるべきディレクトリに復元させるので、共用が解除されても共用元のオブジェクトを正常に動作させることができる。
【0123】
以上、本発明のいくつかの実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではなく、発明の要旨を変更しない範囲内で、実施の形態を修正あるいは変更してもよいことは言うまでもない。例えば、各アプリケーションに関するオブジェクト管理情報63等は、当該アプリケーションがインストールされたディレクトリに記憶させたが、複数のアプリケーションに対する複数のオブジェクト管理情報63等を、複数のアプリケーションに共通に定めたディレクトリに記憶させてもよい。
【0124】
【発明の効果】
以上、説明したように、本発明の望ましい態様では、それぞれオブジェクト指向言語で記述され、動的に結合可能に形成されたオブジェクトから構成される複数のアプリケーション間でオブジェクトを共用させることができ、それらのアプリケーションに共用されるオブジェクトを重複して補助記憶装置に記憶する必要がなくなり、補助記憶装置の必要容量を低減することができる。
【0125】
本発明の他の望ましい態様では、実行中のいずれかのアプリケーションに属するオブジェクトに含まれたロード要求が要求するロードすべきオブジェクトに代えて、当該オブジェクトの共用先に設定された共用先オブジェクトをロードさせることができるので、共用先のオブジェクトを正常にロードさせてロード要求元のオブジェクトに使用させることが容易に実現できる。
【0126】
本発明の他の望ましい態様では、オブジェクトを共用する複数のアプリケーションの一つがアンインストールされるときにも、共用を解除して、残りのアプリケーションを正常に動作させることができる。
【図面の簡単な説明】
【図1】本発明に係る情報処理装置の第1の実施の形態の概略ブロック図である。
【図2】補助記憶装置に記憶されているインストールされた複数のアプリケーションの概略構成を例示する図である。
【図3】複数のアプリケーションに対する、それぞれがインストールされる前のオブジェクト管理情報の例を示す図である。
【図4】オブジェクト共用設定部の概略ブロック図である。
【図5】オブジェクト共用設定部の処理の概略フローチャートである。
【図6】複数のアプリケーションのそれぞれがインストールされた直後のそれぞれに対するオブジェクト管理情報の例を示す。
【図7】複数のアプリケーションのそれぞれに対して共用可能オブジェクト検出部の処理が実行された後のオブジェクト管理情報の例を示す図である。
【図8】プログラム実行制御部の概略ブロック図である。
【図9】インタプリタ部の処理の概略フローチャートである。
【図10】オブジェクト共用解除部の概略ブロック図である。
【図11】オブジェクト共用解除部の処理の概略フローチャートである。
【図12】アプリケーションがアンインストールの対象にされ、オブジェクト解除処理が実行された後の複数のオブジェクト管理情報の例を示す図である。
【図13】他の実施の形態で使用されるオブジェクト管理情報の例を示す図である。
【図14】本発明に係る情報処理装置の他の実施の形態の概略ブロック図である。
【図15】本発明に係る情報処理装置の更に他の実施の形態の概略ブロック図である。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention enables an object to be shared between a plurality of application programs (herein, for simplicity, sometimes referred to as an application), each of which is composed of a plurality of objects which are configured to be dynamically connectable. The present invention relates to an object sharing program, an object sharing method, and an information processing apparatus that can reduce the required capacity of a storage device that stores a program.
[0002]
[Prior art]
In recent years, information processing apparatuses have been diversified, and not only conventional personal computers (PCs) but also personal information terminals such as PDAs have been used. In order to make an application usable in an information processing device, the application is stored in an auxiliary storage device typified by a rewritable semiconductor fixed storage device such as a fixed magnetic disk device or a flash memory. After performing a so-called installation operation for setting, the installed application is started, loaded into a main memory, and executed.
[0003]
In recent years, devices such as information home appliances and mobile phones often have a function of executing an application incorporated in advance. Such devices are called embedded devices. Since such an embedded device can also execute an application, it is regarded as an information processing apparatus in this specification.
[0004]
When the number of applications to be installed in the information processing device is large, it may be necessary to reduce the capacity required to store those applications even if the capacity of the auxiliary storage device is large. If the capacity of the auxiliary storage device is small, it may be necessary to reduce the capacity required to store those applications even if the number of installed applications is small.
[0005]
Traditionally, various methods have been used to reduce the amount of space required to store applications. A typical method is to store a plurality of programs (library programs) that can be shared by a plurality of applications in a specific library area defined independently of an application storage area in the information processing apparatus, and Making it available to the application.
[0006]
In the case of using such a library program, a problem may occur if different versions of the library program having the same name are treated as the same library program. For example, when installing an upgraded version of an already installed application or installing a new application, the version of the library program used by the application is changed to the library program of the same name already installed in the information processing apparatus. It may be newer than the version. In this case, if the new version of the library program is installed so as to overwrite the old version of the library program, other installed applications that normally used the old version of the library program before the update will be updated. If you use the version of the library program, it may not work properly.
[0007]
In order to solve this problem, when installing the upgraded application, the upgraded library program is not installed in the specific library area defined regardless of a plurality of applications. The newly installed application is stored in an area where the newly installed application is stored, and when the newly installed application refers to the library program, the newly installed library is stored in the newly installed application area. It has been proposed that a program be accessed (for example, see Patent Document 1).
[0008]
For a plurality of dynamic link library programs shared by a plurality of applications and stored in a common area, the version of the dynamic link library program used by each application is registered, and each application is assigned to one of the dynamic link library programs. It has also been proposed to call a dynamic link library program having a version suitable for the application when it is called (for example, see Patent Document 2).
[0009]
By the way, conventionally, to generate an application to be installed, a plurality of independent source programs are compiled to obtain a plurality of object modules, and those object modules are statically linked in advance to form a single executable file. The method of generating and installing it as an application was often used. However, in recent years, an application has been increasingly configured by a plurality of objects which are programs described in an object-oriented language and formed so as to be dynamically connectable. The object may be in the form of a source program, an intermediate language program obtained by compiling a source program, or in the form of compiled object code.
[0010]
When such an application is stored in the auxiliary storage device and installed in the information processing device, a plurality of objects constituting the application are stored in a plurality of directories. When calling any other object from any object in the application during the execution of the application, the called object is loaded into the main memory, and the loaded object is loaded with the calling object and the application execution unit (for example, When an application is sequentially decoded and executed by an interpreter, it is dynamically coupled to the interpreter. This allows the calling object to use the called object.
[0011]
An object described in such an object-oriented language is not only usable in a specific application, but can be used in other applications, and can be said to be a part object of an application. In recent years, the number of companies that develop and sell such component objects has increased, and the flow of so-called object components has become remarkable.
[0012]
[Patent Document 1]
JP 2001-22569 A
[Patent Document 2]
JP 2001-154831 A
[0013]
[Problems to be solved by the invention]
The inventor of the present invention considers a situation in which a component object is distributed in the market as described above and is used by being incorporated in an arbitrary application. Realized that when installed on a device, the same part object developed and sold by other developers could be used in those applications, even if the developers of those applications were completely different. . Further, the present inventor can reduce the required capacity of the auxiliary storage capacity if one application can share one component object between these applications and do not store a plurality of the component objects in the auxiliary storage device. I realized I could do it.
[0014]
Further, the present inventor has found that, although an application including an object is often used for an embedded device, since the storage capacity of an auxiliary storage device that can be used in an embedded device is often very small, the inventor described above. It has been found particularly desirable to reduce the consumption of auxiliary storage by sharing objects between different applications.
[0015]
As described above, it is desirable to make an object sharable among a plurality of applications. However, a method of storing a program that is shared in a specific library area, such as the above-described related art, is difficult for object sharing management. The inventor has noticed that this is undesirable. That is, in order to use the method of storing a shared object in a specific library area, it is necessary to determine whether or not each of a plurality of objects constituting an application is likely to be shared by another application. is there. However, the developer of an application cannot usually predict whether the objects used by the application may be shared by other applications developed by other developers. Therefore, a method of storing a shared object among a plurality of objects constituting the application in a specific area for the shared object cannot be substantially adopted.
[0016]
In view of the above circumstances, an object of the present invention is to provide an object sharing program, an object sharing method, and an information processing apparatus that enable an object to be shared among a plurality of applications each including a set of a plurality of objects. To provide.
[0017]
A more specific object of the present invention is to configure any other installed application for any of the objects constituting the application to be installed newly or to be installed, and It is an object to provide an object sharing program, an object sharing method, and an information processing apparatus for sharing a usable (sharable) object in place of the object.
[0018]
Another specific object of the present invention is to provide, in accordance with a load request included in any object belonging to any running application, an object having the object name specified by the load request in the application. It is an object of the present invention to provide an object sharing program, an object sharing method, and an information processing apparatus that load and share an object included in another application that can be used (sharable) instead of the above object.
[0019]
[Means for Solving the Problems]
The outline of a typical invention disclosed in the present application is as follows. The object sharing program according to the present invention includes a plurality of objects each of which is configured so that each of a plurality of applications installed in the information processing device can be dynamically combined, and each object in each application is stored in the information processing device. An object sharing program for an information processing device provided in one or a plurality of storage locations used for storing the application in a storage device different from the main memory provided. The following steps are programmed to cause the information processing apparatus to execute the following steps.
That is, an object included in an application to be installed in the information processing apparatus or an application to be installed, which is an application newly installed in the information processing apparatus, is loaded into the main memory instead of the object. A sharable object detecting step of detecting other objects included in another installed application that can be used, and detecting another alternative object that can be used for the object included in the application to be installed. In this case, shared information for accessing the other object in place of the object included in the application to be installed is stored, and the other object is And sharing information storing step of shared to the object included in tall target application, stored invalidation step of the objects available the other object is detected instead from being stored in the storage device.
[0020]
Thus, if there is another object in another application that can be used instead of the object in the application to be installed, the other object can be shared.
[0021]
A desirable example of the sharing information is sharing destination storage location information related to a storage location in the storage device where the other object is stored. The present invention can be applied whether the application to be installed is an application newly installed in the information processing apparatus or an application to be installed in the information processing apparatus.
[0022]
More specifically, the object sharing program according to the present invention includes, for each of a plurality of objects included in each of a plurality of applications installed in the information processing apparatus, a name of the object and a name of the object. The information processing apparatus further includes an object management information storage step of storing object management information including identification information other than the name and storage location information related to a storage location in the storage device where the object is stored. The sharable object detection step is programmed to be executed, and the sharable object detection step is included in the stored object management information regarding each of the plurality of objects included in each of the plurality of applications installed in the information processing apparatus. The name of the object The identification information other than the name and the name of the object and other identification information other than the name regarding the object included in the application to be installed and for which an object that can be used instead is detected. It is executed based on.
[0023]
Thus, for the object in the application to be installed, another sharable object in another application can be quickly detected based on the object management information stored for the object of the installed application.
[0024]
More specifically, the object sharing program according to the present invention, when uninstalling any of a plurality of installed applications, any object included in the application to be uninstalled is replaced with another object. When shared by any other object included in the installed application, the program is programmed to further cause the information processing apparatus to execute a sharing release step of releasing the sharing.
The unsharing step includes determining whether any object included in the application to be uninstalled is shared by any other object included in another installed application, and whether the object is shared. In the case, the sharing source object determining step of determining the object of the sharing source, and when it is determined that the object included in the application to be uninstalled is shared by any other object, And a sharing canceling process step of executing a process for canceling the sharing.
The sharing cancellation processing step includes: storing the application to be uninstalled in a storage location in the storage device where the other object sharing the object included in the application to be uninstalled is to be stored; Moving the object included in the application and storing the object therein; and sharing the object for accessing the object included in the application to be uninstalled stored in association with the other object. Invalidating the sharing information to invalidate the information.
[0025]
In this way, at the time of uninstallation, it is easy to cancel the sharing of the object and restore the state before the object is shared.
[0026]
A more desirable aspect of the object sharing program according to the present invention is that the object stored in a storage location in the storage device specified by a load request included in any object belonging to any application is In the case where another object that can be used in place of the other object is stored in the storage device in relation to another object having the specified object name, the other object is used instead of the other object. A load request changing step of changing the load request so that the object is loaded, and after the further object is loaded into the main memory according to the load request, the loaded further object is The requesting object containing the load request Dynamically bound to those which are programmed to the dynamic binding steps to enable, further to the information processing apparatus performed by the requesting object.
[0027]
Thereby, the other object shared with the object requested to be loaded by the load request is loaded by specifying the name of the other object and the storage location where the other object is stored. The request can be changed, and the shared object can be loaded instead of the load-requested object.
[0028]
According to another desirable aspect of the object sharing program according to the present invention, in accordance with a load request included in any object belonging to any running application, the object sharing program is designated by storage location information included in the load request. Executing a load request to load another object having an object name designated by the load request from a storage location in a storage device different from the main memory into the main memory. After the load request is executed by the load request execution step and the other object is loaded into the main memory, the loaded other object is transferred to the load request source object including the load request. Dynamically joins the requesting object Relating to an object stored in a storage location in the storage device specified by the storage location information included in the load request and having the object name specified by the load request. And a sharing information storage determining step of determining whether or not sharing information for accessing yet another object that can be used in place of the object is stored. Being programmed, and further comprising the step of executing the load information when the sharing information is found to be stored in association with the other object requested to be loaded by the load request. From the storage location in the storage device determined by the following, another object of the sharing destination having the object name To be loaded, comprising a load request changing step of changing the load to execute the request, those.
[0029]
Accordingly, when the sharing information for accessing the further other object in relation to the other object that can be used in place of the other object requested to be loaded in the load request is stored, the sharing information is stored. The further information can be easily loaded using the activation information.
[0030]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, some embodiments of an object sharing program, an object sharing method, and an information processing apparatus according to the present invention will be described in detail with reference to the drawings. In the second and subsequent embodiments of the invention, only the differences from the first embodiment of the invention will be mainly described.
[0031]
<First Embodiment of the Invention>
FIG. 1 is a schematic block diagram of a first embodiment of an information processing apparatus according to the present invention. In the figure, an
[0032]
The
[0033]
The
[0034]
The object sharing program for realizing the
[0035]
FIG. 2 is a diagram exemplifying an outline of a program structure of a plurality of
[0036]
In the present embodiment, the application is described in an object-oriented language. That is, each of a plurality of objects constituting the application is described in an object-oriented language and is formed so as to be dynamically connectable. In applying the present invention, each object may be a source program, an intermediate language program (also called an intermediate code) obtained by compiling a source program by a compiler, or an object obtained by compiling a source program by a compiler. Although a program may be used, in the present embodiment, each object is assumed to be an intermediate code which is obtained by compiling a source program and which is dynamically connectable. In the present embodiment, the intermediate code is sequentially decoded and executed by an interpreter as described later.
[0037]
The
[0038]
One of a plurality of objects constituting each application is a main object, and the main object is an object to be activated first when the application is activated. A plurality of objects including the main object are generally stored in a distributed manner in a plurality of directories having a tree structure. The top layer of the tree structure of these directories is called an object root. The directory where the object root is located is called an object root directory. One or more objects are stored in each directory. When installing the application using the
[0039]
FIG. 3 is a diagram illustrating an example of the
[0040]
As fields for storing the identification information, fields for storing the
[0041]
Of the plurality of pieces of information stored for each object, the
[0042]
For example, FIG. 3 shows that the directories in which the objects b and c are to be stored are relative (-1) bbb and relative (-1) ccc, respectively, in a relative path expression from the object root directory. I have. Here, "relative (-1)" indicates a directory one level lower. Since nothing is stored in the
[0043]
The
[0044]
The
[0045]
In the case of the
[0046]
FIG. 4 is a schematic block diagram of the object
[0047]
FIG. 5 is a schematic flowchart of the process of the object
[0048]
In the present embodiment, it is assumed that the object
[0049]
When there is an application already installed before the object
[0050]
The object
[0051]
In FIG. 5, when the object
[0052]
FIG. 6 shows an example of the contents of the
[0053]
Hereinafter, after the
[0054]
Before describing the process of the sharable
[0055]
Similarly, when the
[0056]
Now, returning to FIG. 5, the process of the sharable
[0057]
Specifically, first, among the objects in the newly installed application (the
[0058]
First, an attempt is made to detect another installed object whose sharability has not yet been checked for the newly installed object (step S423). It is determined whether or not such an unchecked other object has been detected (step S424). If such an unchecked other object has been detected, a plurality of objects in the object management information for the other object are determined. The identification information (specifically, the object name and other identification information) is compared with the corresponding plurality of
[0059]
Here, it is assumed that the former can be used instead of the latter when the two or more pieces of identification information completely match. However, if only part of the identification information such as the version information and the production date is different, and the other identification information matches, if the information on compatibility between different versions is separately stored in advance, the version is changed. Even if different, the former can be determined to be usable instead of the latter. In this way, the object that can be used in place of another object does not have to be the same object as the other object.
[0060]
If it is determined in step S426 that the former cannot be used in place of the latter (No in step S426), the process returns to step S423 to detect another unchecked object in the installed application. The above sharability check process is repeated. Even if the above sharability check process is repeated for objects of other installed applications, no installed objects that can be used in place of the newly installed objects to be checked selected in step S421 are not detected. In step S424, it is determined that an unchecked object cannot be selected.
[0061]
When the object sharing process for the newly installed check target object selected in step S421 is completed, the process returns to step S421, and the above process is repeated for the other objects in the newly installed application. It is.
[0062]
On the other hand, when it is determined in step S426 that any installed object that can be used in place of the newly installed check target object selected in step S421 is detected, the process proceeds to step S426. The process of the sharable
[0063]
When a sharable object is detected by the sharable
[0064]
As illustrated in FIG. 3, the
[0065]
Returning to FIG. 5, when the sharing
[0066]
Further, the number of sharing source objects for the sharing destination object in the object management information for the installed application to which the sharing destination object belongs is increased by 1 (step S432). Thus, the number of sharing source objects indicates the total number of sharing source objects sharing the sharing destination object.
[0067]
Thereafter, the sharing source
[0068]
The processing of the object
[0069]
First, when the
[0070]
After that, it is assumed that the
[0071]
FIG. 7 shows an example of the
[0072]
Similarly, when the sharable
[0073]
Thereafter, when the
[0074]
As can be understood from the above description, when a plurality of objects included in an arbitrary application can be shared, one of them is shared and objects other than the one object are deleted. Accordingly, since objects having substantially the same contents are not redundantly stored in the
[0075]
In the present embodiment, the application is executed as follows. As described above, in the present embodiment, the application is described in an object-oriented language. Each of a plurality of objects constituting each application is described in an object-oriented language and is formed so as to be dynamically connectable. When the application is started, the main object is started first among the plurality of objects. The main object can call another object, and the other object can call another object. In this way, a plurality of objects included in the application are appropriately called from other objects and executed. Note that each object may be a source program or an intermediate code which is obtained by compiling the source program and which can be dynamically combined. However, in the present embodiment, each object can be dynamically combined. The formed intermediate code is sequentially decoded and executed by the interpreter. As described above, by adopting a method in which the intermediate code is sequentially decoded by the interpreter and executed, the intermediate code itself can be generated without depending on the
[0076]
FIG. 8 is a schematic block diagram of the program
[0077]
When an object requests the loading of another object, it issues, for example, a load instruction. In the present embodiment, the load instruction specifies not only the name of the object to be called, but also path information for accessing the object. The path information is specified using, for example, a relative path to the directory in the
[0078]
(Equation 1)
load relative (-1) bbb object y
[0079]
Here, “relative (−1) bbb” designates the directory of the relative path bbb on the lower side as viewed from the object root directory. Since the object root directory of the
[0080]
The relative path information is used when the application including the object requested by the load instruction is installed, even if an arbitrary directory is specified by the user as the object root directory of the application, the directory of the object to be loaded is used. This is to make it easy to decide.
[0081]
FIG. 9 is a schematic flowchart of the processing of the
[0082]
In the
[0083]
When it is determined that the object of the sharing destination is not set for the object specified by the load instruction, an instruction to directly execute the load requested by the load instruction is issued to the OS unit 510 (step S522). After the object is loaded by the OS, the
[0084]
If it is determined in step S521 that a sharing destination object has been set for the object to be loaded, the load
[0085]
For example, it is assumed that during execution of the
[0086]
Since the sharing destination path information for the sharing destination object is aaa / bbb / ccc / bbb, as can be seen from FIG. 7, the load instruction is executed by the load
[0087]
(Equation 2)
load aaa / bbb / ccc / bbb object y
[0088]
Here, the object y is the same object as the object b, and the load instruction is a load instruction that requests the OS to load the object b in the
[0089]
FIG. 10 is a schematic block diagram of the object sharing
[0090]
The object
[0091]
FIG. 11 is a schematic flowchart of the process of the object sharing
[0092]
If the number of sharing source objects is not one or more, there is no sharing source object for the object to be checked, and the process returns to step S451 to select another object to be checked. When the number of sharing source objects is one or more, since there is a sharing source object for the object to be checked, the sharing source
[0093]
This determination is made, for example, by sequentially selecting, for all the applications other than the application including the object to be checked, one of the objects in each application, the selected object to be checked is set as the sharing object. This is performed by determining whether or not the setting has been made. More specifically, the above-described determination is made based on whether or not path information on the object to be checked to be uninstalled is stored as sharing destination path information in the object management information stored corresponding to each application. Is performed.
[0094]
When the sharing source
[0095]
In this way, the shared object is stored in the application to which the sharing source object belongs, and the sharing destination path information is not stored in the object management information corresponding to the application. The object returns to the state before the sharing setting was made. Therefore, the sharing between the sharing source object and the check target sharing destination object is released. Moreover, even if the object to be checked is subsequently uninstalled, the object that was the sharing source can be used normally.
[0096]
Thereafter, the sharing
[0097]
When the further sharing object is determined, the sharing
[0098]
Thereafter, the process returns to step S461, and the number of sharing source objects for the check target object in the application to be uninstalled is further reduced by 1, and step S462 and the subsequent steps are executed. When the number of sharing source objects is determined to be 1 or less (that is, 0) when step S462 is first executed or after that, the sharing source object sharing the object to be checked is Does not exist, the process returns to step S451, another object to be checked is selected, and step S452 and subsequent steps are repeated. Further, when the above processing is completed and there is no more object to be checked for the necessity of the sharing release processing (No in step S452), the object
[0099]
In this way, the old shared object determined second or later shares the old shared object first determined that the check target object was shared after the object to be checked is deleted. It is changed to a new sharing source object as the destination object. Therefore, even after the shared object to be checked is deleted, the old shared object can be shared by the other shared object.
[0100]
FIG. 12 shows an example of the
[0101]
The process described above for the object
[0102]
When the movement is completed, the object c is deleted by the movement. Thereafter, the sharing
[0103]
Thereafter, the sharing source
[0104]
As described above, even when an application including an object shared by an object of another application is uninstalled, the object of the sharing source of the other application can be normally used.
[0105]
Furthermore, in the above embodiment, after a new application is installed in the information processing apparatus, it is detected whether or not an object constituting the application can share an object included in another installed application. It is supposed to. When such a method is used, the installation itself can be executed using a conventional installation program, so that the functions of the existing installation program can be used as it is in implementing the present invention. The present invention is easy to implement.
[0106]
<Second Embodiment of the Invention>
FIG. 13 is a diagram showing another example of the
[0107]
The sharing source path information is set by the object
[0108]
Then, when the
[0109]
When the sharing
[0110]
However, as in the present embodiment, if the path information of the sharing source object having the object as the sharing destination is stored in the object management information corresponding to each object in each application, the sharing destination of the sharing destination is stored. When an object is uninstalled, the path information of the sharing source object for the object can be immediately known, and the processing time of the sharing source
[0111]
Note that the number of sharing
[0112]
<Third Embodiment of the Invention>
In the first embodiment of the present invention, after the application to be installed is installed, the object
[0113]
For this reason, the application installed in the
[0114]
In the first embodiment, the sharing source
[0115]
When the method of installing all objects in an application and then deleting some of them is adopted as in the first embodiment, object sharing is performed after installation, and the sharing process is performed. Inside, deletes newly installed objects that can share other installed objects. However, according to the present embodiment, since objects that can share other installed objects are not installed, the installation time of the application is reduced, and the time for deleting after the installation is not required. Is also reduced.
[0116]
<Fourth Embodiment of the Invention>
FIG. 14 is a schematic block diagram of the information processing apparatus according to the present embodiment. In the present embodiment, the object
[0117]
<Fifth Embodiment of the Invention>
FIG. 15 is a schematic block diagram of the present embodiment of the information processing apparatus according to the present invention. In the present embodiment, the object
[0118]
<Sixth Embodiment of the Invention>
In the present embodiment, an embodiment will be described in which the present invention is applied to a so-called embedded device in which a function of executing an application for a specific use such as an information home appliance or a mobile phone is incorporated in advance. Since such an embedded device can execute an application, it is regarded as an information processing apparatus in this specification. Even in such an embedded device, the
[0119]
When a plurality of applications including at least one object are stored in the ROM or a part thereof and sharing is realized for the applications according to the present invention, the ROM may be used to store those programs. According to the present invention, the ROM is the same as the auxiliary storage device in the sense that the storage device is different from the main memory. In addition, the
[0120]
As can be seen from the embodiments described above, objects contained in the applications can be shared, and the capacity of the auxiliary storage device required to store a plurality of applications can be reduced. Can be. In addition, any object that is not determined in advance as an object to be shared can be shared. Further, in the above embodiment, when any object is shared between different applications, a directory for storing the object is not newly generated. Therefore, there is also an advantage that the capacity of the storage device is not consumed, which is required when a new directory is created and the shared object is stored in the new directory.
[0121]
Also, as in the above embodiment, for an installed application, object management information including an object name and other identification information on an object included therein and path information on a storage location of the object in an auxiliary storage device is stored. By adopting a method of storing and newly detecting an object that can be used instead of a newly installed object (a sharable object) based on the object management information for each installed application, Even if a plurality of applications are installed, the object sharing method according to the present invention can be used without performing a process of uninstalling and reinstalling the applications.
[0122]
Also, when the sharing is canceled due to the uninstallation of the application including the sharing destination object after the sharing processing is performed, the sharing source object is restored to the directory where it should be originally stored. However, the sharing source object can be operated normally.
[0123]
Although some embodiments of the present invention have been described above, the present invention is not limited to these embodiments, and may be modified or changed without departing from the spirit of the invention. Needless to say, this may be done. For example, the
[0124]
【The invention's effect】
As described above, in a desirable mode of the present invention, objects can be shared between a plurality of applications each composed of an object described in an object-oriented language and formed to be dynamically connectable. This eliminates the need to duplicately store objects shared by the application in the auxiliary storage device, thereby reducing the required capacity of the auxiliary storage device.
[0125]
In another desirable aspect of the present invention, instead of the object to be loaded requested by the load request included in the object belonging to any of the running applications, the sharing destination object set as the sharing destination of the object is loaded. Therefore, it is possible to easily realize that the sharing destination object is normally loaded and used by the load requesting object.
[0126]
In another desirable aspect of the present invention, even when one of the plurality of applications sharing the object is uninstalled, the sharing can be released and the remaining applications can operate normally.
[Brief description of the drawings]
FIG. 1 is a schematic block diagram of a first embodiment of an information processing apparatus according to the present invention.
FIG. 2 is a diagram illustrating a schematic configuration of a plurality of installed applications stored in an auxiliary storage device.
FIG. 3 is a diagram illustrating an example of object management information for a plurality of applications before each is installed.
FIG. 4 is a schematic block diagram of an object sharing setting unit.
FIG. 5 is a schematic flowchart of a process of an object sharing setting unit.
FIG. 6 shows an example of object management information for each of a plurality of applications immediately after being installed.
FIG. 7 is a diagram illustrating an example of object management information after a process of a sharable object detection unit is performed on each of a plurality of applications.
FIG. 8 is a schematic block diagram of a program execution control unit.
FIG. 9 is a schematic flowchart of processing of an interpreter unit.
FIG. 10 is a schematic block diagram of an object sharing release unit.
FIG. 11 is a schematic flowchart of a process of an object sharing release unit.
FIG. 12 is a diagram illustrating an example of a plurality of pieces of object management information after an application is targeted for uninstallation and object release processing has been executed;
FIG. 13 is a diagram showing an example of object management information used in another embodiment.
FIG. 14 is a schematic block diagram of another embodiment of the information processing apparatus according to the present invention.
FIG. 15 is a schematic block diagram of still another embodiment of the information processing apparatus according to the present invention.
Claims (14)
前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化ステップ。Each of a plurality of applications installed in the information processing device includes a plurality of objects configured to be dynamically connectable, and each object in each application is provided in the information processing device and is different from a main memory. An object sharing program for an information processing device stored in any one or a plurality of storage locations used for storing the application in the device, comprising: An object sharing program characterized in that it is programmed to be executed by a user.
An object included in an application to be installed in the information processing apparatus or an application to be installed, which is an application newly installed in the information processing apparatus, can be loaded into the main memory instead of the object and used. A sharable object detection step for detecting other objects contained in other installed applications;
When another object that can be used instead of the object included in the application to be installed is detected, the other object is accessed in place of the object included in the application to be installed. A sharing information storing step of storing sharing information and sharing the other object with the object included in the application to be installed;
A storage invalidating step of preventing the object in which the other usable object is detected from being stored in the storage device;
前記共用可能オブジェクト検出ステップ、前記共用化情報記憶ステップ及び前記記憶無効化ステップは、前記インストール対象のアプリケーションのインストール後に実行され、
前記記憶無効化ステップは、代わりに使用可能な前記他のオブジェクトが検出された前記オブジェクトを前記記憶装置から削除し、当該削除されたオブジェクトに関連して記憶されていた前記共用化情報は削除しない、
ことを特徴とする請求項1又は2に記載のオブジェクト共用化プログラム。The application to be installed is an application newly installed on the storage device,
The sharable object detection step, the sharing information storage step and the storage invalidation step are executed after installation of the application to be installed,
The storage invalidating step deletes the object in which the other object that can be used instead is detected from the storage device, and does not delete the sharing information stored in association with the deleted object. ,
3. The object sharing program according to claim 1, wherein:
前記共用可能オブジェクト検出ステップは、前記インストール対象のアプリケーションのインストールの前に実行され、
前記記憶無効化ステップは、前記インストール対象のアプリケーションのインストール時に、代わりに使用可能な他のオブジェクトが検出された前記オブジェクトを、前記記憶装置に記憶しないようにするか又は前記インストール対象のアプリケーションのインストール後に、当該オブジェクトを前記記憶装置から削除し、
前記共用化情報記憶ステップは、前記インストール対象のアプリケーションのインストール前又は後に、代わりに使用可能な他のオブジェクトが検出された前記オブジェクトに関連する情報として前記共用化情報を記憶する、
ことを特徴とする請求項1又は2に記載のオブジェクト共用化プログラム。The application to be installed is an application to be installed on the storage device,
The sharable object detection step is performed before installation of the application to be installed,
In the storage invalidating step, when the application to be installed is installed, the object in which another object that can be used instead is detected is not stored in the storage device, or the installation of the application to be installed is not performed. Later, the object is deleted from the storage device,
Before or after installation of the application to be installed, the sharing information storing step stores the sharing information as information relating to the object in which another object that can be used instead is detected,
3. The object sharing program according to claim 1, wherein:
前記共用可能オブジェクト検出ステップは、前記情報処理装置にインストール済みの前記複数のアプリケーションの各々に含まれた複数のオブジェクトの各々に関する、前記記憶されたオブジェクト管理情報に含まれた当該オブジェクトの名称と当該名称以外の他の識別情報と、前記インストール対象のアプリケーションに含まれた、代わりに使用可能なオブジェクトの検出が行われる前記オブジェクトに関する、当該オブジェクトの名称と当該名称以外の他の識別情報とに基づいて実行される、
ことを特徴とする請求項1から4のいずれか一つに記載のオブジェクト共用化プログラム。For each of the plurality of objects included in each of the plurality of applications installed in the information processing apparatus, a name of the object, identification information other than the name of the object, and the object are stored. Programmed to cause the information processing apparatus to further execute an object management information storage step of storing object management information including storage location information related to a storage location in the storage device;
The sharable object detecting step includes, for each of the plurality of objects included in each of the plurality of applications installed in the information processing apparatus, a name of the object included in the stored object management information and Based on other identification information other than the name and the name of the object and other identification information other than the name, regarding the object included in the application to be installed and for which an alternative usable object is detected. Executed
The object sharing program according to any one of claims 1 to 4, wherein:
を前記情報処理装置に更に実行させるようにプログラムされ、
前記共用解除ステップは、
前記アンインストール対象のアプリケーションに含まれたいずれかのオブジェクトが、他のインストール済みのアプリケーションに含まれたいずれかの他のオブジェクトにより共用されているか否か及び共用されている場合には、当該共用元のオブジェクトを判別する共用元オブジェクト判別ステップと、
前記アンインストール対象のアプリケーションに含まれた前記オブジェクトがいずれかの他のオブジェクトにより共用されていると分かった場合、当該共用を解除するための処理を実行する共用解除処理ステップと、
を含み、
前記共用解除処理ステップは、
前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトを共用する前記他のオブジェクトが記憶されるべき、前記記憶装置内の記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動してそこに記憶させるオブジェクト移動ステップと、
前記他のオブジェクトに関連して記憶されていた前記アンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスさせるための共用化情報を無効にする共用化情報無効化ステップと、
を含むことを特徴とする請求項1から5のいずれか一つに記載のオブジェクト共用化プログラム。When uninstalling one of multiple installed applications, any object included in the application to be uninstalled is shared by any other object included in another installed application. The sharing release step of releasing the sharing,
Is programmed to further execute the information processing apparatus,
The sharing cancellation step includes:
Whether any object included in the application to be uninstalled is shared by any other object included in another installed application, and if the object is shared, A sharing object determination step for determining the original object;
When the object included in the application to be uninstalled is found to be shared by any other object, a sharing release processing step of executing a process for releasing the sharing,
Including
The sharing cancellation processing step includes:
The object included in the application to be uninstalled is stored in a storage location in the storage device where the other object sharing the object included in the application to be uninstalled is to be stored. An object moving step for moving and storing the object there,
A sharing information invalidating step of invalidating sharing information for accessing the object included in the uninstallation target application stored in association with the other object;
The object sharing program according to any one of claims 1 to 5, further comprising:
前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトが更に他のオブジェクトにより共用されている場合には、前記いずれかのアンインストール対象のアプリケーションに含まれた前記オブジェクトにアクセスするための前記更に他のオブジェクトに関連して記憶されている他の共用化情報を、前記オブジェクト移動ステップにより前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動して記憶させた前記他のオブジェクトにアクセスさせるための共用化情報に変更し、もって前記更に他のオブジェクトに前記他のオブジェクトを共用させる共用化情報変更ステップ、
を更に含むことを特徴とする請求項6に記載のオブジェクト共用化プログラム。The sharing cancellation step includes:
When the object included in the application to be uninstalled is shared by another object, the object for accessing the object included in the application to be uninstalled is included. Further, the other sharing information stored in relation to another object is accessed by moving the object included in the application to be uninstalled by the object moving step and storing the another object. Changing to sharing information for sharing information, and thereby causing the further object to share the other object,
7. The object sharing program according to claim 6, further comprising:
前記オブジェクト移動ステップは、前記検出された共用化情報が関連して記憶されている前記インストール済みのアプリケーションに含まれた前記共用元のオブジェクトを含む前記アプリケーションに依存して決められている、前記記憶装置内の前記共用元オブジェクトを記憶すべき記憶位置に、前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動する、
ことを特徴とする請求項6又は7に記載のオブジェクト共用化プログラム。The sharing source object determining step includes sharing information for accessing an object included in the application to be uninstalled, stored in association with any object included in any installed application. When the sharing information is detected, the object included in the application to be uninstalled is included in the installed application in which the detected sharing information is stored in association. Determined that the object is shared by
The object moving step is determined depending on the application including the sharing source object included in the installed application in which the detected sharing information is stored in association with the storage. Move the object included in the application to be uninstalled to a storage location in the device where the sharing source object is to be stored,
The object sharing program according to claim 6 or 7, wherein:
を前記情報処理装置に更に実行させるようにプログラムされており、
前記共用元オブジェクト判別ステップは、当該アンインストール対象のアプリケーションに含まれた前記オブジェクトに関連して共用元記憶位置情報が記憶されているか否かにより前記アンインストール対象のアプリケーションに含まれた前記オブジェクトが他のオブジェクトにより共用されているか否か及び共用されている場合には共用元のオブジェクトを判別し、
前記オブジェクト移動ステップは、当該アンインストール対象のアプリケーションに含まれた前記オブジェクトに関連して共用元記憶位置情報が記憶されていると前記共用元オブジェクト判別ステップにより判別されたときに、当該共用元記憶位置情報が指定する前記記憶装置内の記憶位置に前記アンインストール対象のアプリケーションに含まれた前記オブジェクトを移動する、
ことを特徴とする請求項6又は7に記載のオブジェクト共用化プログラム。If any object in any installed application is detected as an alternate available object for any object in any installed application, the installed object will be Relatedly, a sharing source storage location information storing step of storing sharing source storage location information regarding a storage location in the storage device where the sharing source object is to be stored,
Is programmed to further execute the information processing apparatus,
The sharing source object determining step includes determining whether the object included in the application to be uninstalled is determined based on whether or not sharing source storage location information is stored in association with the object included in the application to be uninstalled. Determine whether the object is shared by other objects and if so, determine the object of the sharing source;
The object moving step is performed when the sharing source object determining step determines that sharing source storage location information is stored in association with the object included in the application to be uninstalled. Move the object included in the application to be uninstalled to a storage location in the storage device specified by location information,
The object sharing program according to claim 6 or 7, wherein:
前記ロード要求にしたがって前記更に他のオブジェクトが前記メインメモリにロードされた後、当該ロードされた更に他のオブジェクトを前記ロード要求を含んでいる前記要求元のオブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、
を前記情報処理装置に更に実行させるようにプログラムされていることを特徴とする請求項1から9のいずれか一つに記載のオブジェクト共用化プログラム。In connection with another object having the object name specified by the object stored in the storage location in the storage device specified by the load request included in any object belonging to any application, When another object that can be used in place of another object is stored in the storage device, the load request is changed so that the further object is loaded instead of the other object. A load request change step;
After the further object is loaded into the main memory according to the load request, the further loaded object is dynamically linked to the requesting object including the load request, and A dynamic join step made available by the original object;
10. The object sharing program according to claim 1, wherein the program is further programmed to cause the information processing apparatus to execute the following.
前記ロード要求実行ステップにより前記ロード要求が実行させられ前記他のオブジェクトが前記メインメモリにロードされた後に、当該ロードされた他のオブジェクトを、前記ロード要求を含むロード要求元の前記オブジェクトに動的に結合して当該要求元のオブジェクトにより使用可能にする動的結合ステップと、
前記ロード要求に含まれた前記記憶位置情報により指定される前記記憶装置内の記憶位置に記憶され当該ロード要求が指定する前記オブジェクト名を有するオブジェクトに関連して、当該オブジェクトに代えて使用可能な更に他のオブジェクトにアクセスするための共用化情報が記憶されているか否かを判別する共用化情報記憶判別ステップと、
を情報処理装置に実行させるようにプログラムされ、
前記ロード要求実行ステップは、前記ロード要求によりロードが要求された前記他のオブジェクトに関連して前記共用化情報が記憶されていることが分かった場合には、前記共用化情報により定まる前記記憶装置内の記憶位置から前記オブジェクト名を有する共用先の更に他のオブジェクトがロードされるように、実行させる前記ロード要求を変更するロード要求変更ステップを含む、
ことを特徴とするオブジェクト共用化プログラム。According to a load request included in any object belonging to any of the running applications, from a storage location in a storage device different from the main memory, specified by the storage location information included in the load request, A load request execution step of executing the load request so as to load another object having the object name specified by the load request into the main memory;
After the load request is executed by the load request execution step and the other object is loaded into the main memory, the loaded other object is dynamically transferred to the load request source object including the load request. A dynamic binding step to bind to and make available to the requesting object;
In connection with an object having the object name stored in the storage device specified by the storage position information included in the load request and having the object name specified by the load request, it can be used in place of the object A sharing information storage determining step of determining whether or not sharing information for accessing another object is stored; and
Is programmed to cause the information processing apparatus to execute,
The load request execution step is, when it is found that the sharing information is stored in association with the other object requested to be loaded by the load request, the storage device determined by the sharing information. A load request changing step of changing the load request to be executed so that another object of the sharing destination having the object name is loaded from the storage location in the storage device.
An object sharing program, characterized in that:
前記情報処理装置にインストールされるべきアプリケーションか又は新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出部と、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶部と、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにする記憶無効化部。A storage device different from the main memory for storing a plurality of installed applications; each of the plurality of applications including a plurality of objects configured to be dynamically connectable; The information processing apparatus is stored in one or a plurality of storage locations used for storing the application in the storage device, and further includes:
For an object included in an application to be installed, which is an application to be installed in the information processing apparatus or a newly installed application, an installed installed application that can be used by loading the main memory in place of the object. A sharable object detection unit that detects another object included in another application;
When another object that can be used instead of the object included in the application to be installed is detected, the other object is accessed in place of the object included in the application to be installed. A sharing information storage unit that stores sharing information and shares the other object with the object included in the application to be installed;
A storage invalidating unit that prevents the object in which the other object that can be used instead is detected from being stored in the storage device.
前記情報処理装置にインストールされるべきアプリケーションか又は当該情報処理装置に新たにインストールされたアプリケーションであるインストール対象のアプリケーションに含まれたオブジェクトについて、当該オブジェクトに代えて前記メインメモリにロードして使用可能な、インストール済みの他のアプリケーションに含まれた他のオブジェクトを検出する共用可能オブジェクト検出ステップと、
前記インストール対象のアプリケーションに含まれた前記オブジェクトに関して前記代わりに使用可能な他のオブジェクトが検出された場合、当該インストール対象のアプリケーションに含まれた前記オブジェクトに代えて前記他のオブジェクトにアクセスするための共用化情報を記憶して前記他のオブジェクトを前記インストール対象のアプリケーションに含まれた前記オブジェクトに共用させる共用化情報記憶ステップと、
代わりに使用可能な前記他のオブジェクトが検出された当該オブジェクトが前記記憶装置に記憶されないようにするイ記憶無効化ステップ。Each of a plurality of applications installed in the information processing device includes a plurality of objects configured to be dynamically connectable, and each object in each application is provided in the information processing device and is different from a main memory. An object sharing method for an information processing device stored in one or more storage locations used to store the application in the device, the method including the following steps.
An object included in an application to be installed in the information processing apparatus or an application to be installed, which is an application newly installed in the information processing apparatus, can be loaded into the main memory instead of the object and used. A sharable object detection step for detecting other objects contained in other installed applications;
When another object that can be used instead of the object included in the application to be installed is detected, the other object is accessed in place of the object included in the application to be installed. A sharing information storing step of storing sharing information and sharing the other object with the object included in the application to be installed;
A storage invalidating step for preventing the object from which the other object that can be used instead is detected from being stored in the storage device;
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002284584A JP2004118753A (en) | 2002-09-27 | 2002-09-27 | Object sharing program, object sharing method, and information processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002284584A JP2004118753A (en) | 2002-09-27 | 2002-09-27 | Object sharing program, object sharing method, and information processor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004118753A true JP2004118753A (en) | 2004-04-15 |
Family
ID=32278085
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002284584A Pending JP2004118753A (en) | 2002-09-27 | 2002-09-27 | Object sharing program, object sharing method, and information processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004118753A (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015505627A (en) * | 2012-01-19 | 2015-02-23 | マイクロソフト コーポレーション | Cloud content recognition |
| CN107870745A (en) * | 2016-09-26 | 2018-04-03 | 富士施乐株式会社 | Image processing system |
| JP2019049814A (en) * | 2017-09-08 | 2019-03-28 | 富士ゼロックス株式会社 | Electronic equipment |
| JP2023539879A (en) * | 2020-08-31 | 2023-09-20 | 華為技術有限公司 | Methods and electronic devices for reusing shared libraries |
-
2002
- 2002-09-27 JP JP2002284584A patent/JP2004118753A/en active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015505627A (en) * | 2012-01-19 | 2015-02-23 | マイクロソフト コーポレーション | Cloud content recognition |
| CN107870745A (en) * | 2016-09-26 | 2018-04-03 | 富士施乐株式会社 | Image processing system |
| JP2018055187A (en) * | 2016-09-26 | 2018-04-05 | 富士ゼロックス株式会社 | Image forming apparatus and program |
| JP2019049814A (en) * | 2017-09-08 | 2019-03-28 | 富士ゼロックス株式会社 | Electronic equipment |
| JP7009852B2 (en) | 2017-09-08 | 2022-01-26 | 富士フイルムビジネスイノベーション株式会社 | Electronic device |
| JP2023539879A (en) * | 2020-08-31 | 2023-09-20 | 華為技術有限公司 | Methods and electronic devices for reusing shared libraries |
| JP7788451B2 (en) | 2020-08-31 | 2025-12-18 | 華為技術有限公司 | Method and electronic device for reusing shared libraries |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7703090B2 (en) | Patch un-installation | |
| US5835768A (en) | Computer operating system providing means for formatting information in accordance with specified cultural preferences | |
| US8924922B2 (en) | Pre-compiling hosted managed code | |
| US9928059B1 (en) | Automated deployment of a multi-version application in a network-based computing environment | |
| US6738977B1 (en) | Class sharing between multiple virtual machines | |
| EP3043269B1 (en) | Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform | |
| US6112025A (en) | System and method for dynamic program linking | |
| US6823509B2 (en) | Virtual machine with reinitialization | |
| KR100503077B1 (en) | A java execution device and a java execution method | |
| CN109614165B (en) | Multi-version parallel operation method and device for COM (component object model) component | |
| CN108595186B (en) | Multi-version software management method based on complete function on Feiteng platform | |
| CN108491216A (en) | A kind of method of android system unaware application installation upgrading | |
| EP1625497B1 (en) | Apparatus and methods for restoring synchronization to object-oriented software applications in managed runtime enviroments | |
| CN100568176C (en) | Method and system for file version control management | |
| US6397384B1 (en) | Run-time addition of interfaces | |
| JP2013514569A (en) | Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software | |
| JPH1040107A (en) | System and method for transit time optimization of private variable function calls in a security interpreter | |
| US20050071856A1 (en) | Dynamically loadable stub modules | |
| NZ528277A (en) | Dynamically downloading and executing system services on a wireless device | |
| US8112745B2 (en) | Apparatus and method for capabilities verification and restriction of managed applications in an execution environment | |
| Lagartos et al. | Efficient runtime metaprogramming services for Java | |
| US6336215B1 (en) | Apparatus and method for on-line code only replacement of a running program using checkpoints | |
| JP2004118753A (en) | Object sharing program, object sharing method, and information processor | |
| CN120045244A (en) | Method and equipment for realizing vDSO code memory copy | |
| US20060242491A1 (en) | Method and system for applying patches to a computer program concurrently with its execution |