(57)【要約】実行可能プログラムがＲＡＭ（１０）内にロードされるとき、ＲＡＭは、当初、ローダ・モジュール（１２ａ）、プログラム（１０）、エンジン（２２）、および暗号化されたリソース（２４）、たとえば暗号化された．ＤＬＬファイルを含んでいる。プログラム（１４）が実行されるとき、ローダ・モジュール（１２ａ）がエンジン（２２）を呼び出し、それがプログラム（１４）によって要求されるサブルーチン・リソースにアクセスし、システム内においてすでに要求に応じられる状態にあるリソースを識別し、すでに要求に応じられる状態にあるリソースはロードし、かつ要求に応じられる状態にないリソースは暗号解除してロードする。これは、プログラム（１４）が実行されるごとに、要求されたサブルーチンがプログラム（１４）に対して要求に応じられる状態となることを保証する。【選択図】図３
2004504668.tif 000002
【特許請求の範囲】
【請求項１】
実行の間に少なくとも１つのサブルーチンに対するアクセスを必要とする実行可能プログラムを含むコンピュータ・ソフトウエアであって、さらに前記サブルーチンもしくは各サブルーチンを暗号化された形式で含み、さらに前記暗号化されたサブルーチンを、少なくともアクセスが要求されたときに実行可能形式に変換する暗号解除ルーチンを含むものとするソフトウエア。
【請求項２】
前記暗号解除ルーチンが、前記プログラムの実行時に常に実行され、それによって前記サブルーチンがそれぞれの機会ごとに実行可能形式で再形成されるものとする請求項１記載のソフトウエア。
【請求項３】
前記暗号解除ルーチンが、再形成したサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成し、前記アドレス・テーブルが、必要時にサブルーチンをロケートしてアクセスするために、前記プログラムによってアクセス可能であるものとする請求項１または２記載のソフトウエア。
【請求項４】
前記暗号解除ルーチンが、前記ソフトウエアを実行するシステム内においてすでに要求に応じられる状態にあるサブルーチンの存在を検出し、サブルーチンがすでに要求に応じられる状態にあるときには前記実行可能プログラムにそれを使用させるべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
【請求項５】
前記暗号解除ルーチンが、すでに要求に応じられる状態にあるサブルーチンに関するアドレスを前記アドレス・テーブル内に組み込むべく動作可能であり、それによって前記サブルーチンの別のコピーを暗号解除する必要がなくなるものとする請求項４および５記載のソフトウエア。
【請求項６】
前記暗号解除ルーチンが、サブルーチンの各種バージョンの間を弁別し、それによって前記システム内に異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
【請求項７】
さらに、前記実行可能プログラムの暗号化されたコピーを組み込んでおり、前記暗号解除ルーチンが、前記プログラムの実行可能コピーを暗号解除するべく動作可能であるとする先行するいずれかの請求項に記載のソフトウエア。
【請求項８】
前記暗号解除ルーチンが、前記ソフトウエア内に含まれている暗号化されていないコピーが改ざんされているとして検出された場合に、前記実行可能プログラムのコピーを暗号解除するべく動作可能であるとする請求項７記載のソフトウエア。
【請求項９】
暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする先行するいずれかの請求項に記載のソフトウエア。
【請求項１０】
プログラムが記録されたコンピュータ可読メディアであって、前記プログラムが、先行するいずれかの請求項に従ったコンピュータ・ソフトウエアを包含するものとするコンピュータ可読メディア。
【請求項１１】
ソフトウエアを実行するべく動作可能なプロセッシング手段、および請求項１〜９のいずれかに従ったコンピュータ・ソフトウエアの少なくとも一部品を包含するものとするコンピュータ・システム。
【請求項１２】
実行可能プログラムを実行するべく動作可能なコンピュータ・システムであって：
前記実行可能プログラムを表すコンピュータ可読コードを含む第１のストア手段；
実行のためのコードをロードするべく動作可能なローディング手段；
前記実行可能プログラムによって、その実行間に要求されるサブルーチンを識別するべく動作可能な識別手段；
前記識別手段によって識別された前記サブルーチンまたは各サブルーチンを表すコンピュータ可読コードを含む第２のストア手段；および、
前記サブルーチンが前記システム内のどこにも要求に応じられる状態にない場合に、前記サブルーチンまたは各サブルーチンを前記第２のストア手段からロードするべく動作可能な第２のローディング手段；
を備えるコンピュータ・システム。
【請求項１３】
前記識別手段および第２のローディング手段が、前記実行可能プログラムの実行が開始されるごとに動作され、それによってそれぞれの機会ごとに前記サブルーチンを要求に応じられる状態にするものとする請求項１２記載のシステム。
【請求項１４】
前記第２のローディング手段が、要求に応じられる状態にされたサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成し、前記アドレス・テーブルが、必要時にサブルーチンをロケートしてアクセスするために、前記実行可能プログラムによってアクセス可能であるものとする請求項１２または１３記載のシステム。
【請求項１５】
前記第２のローディング手段が、前記システム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、かつサブルーチンがすでに要求に応じられる状態にあるときには前記実行可能プログラムにそれを使用させるべく動作可能であるとする請求項１２〜１４のいずれかに記載のシステム。
【請求項１６】
前記第２のローディング手段が、前記システム内のどこかにおいて要求に応じられる状態にあるサブルーチンに関するアドレスを前記アドレス・テーブル内に組み込むべく動作可能であるとする請求項１５および１４に記載のシステム。
【請求項１７】
前記第２のローディング手段が、サブルーチンの各種バージョンの間を弁別し、それによって前記システム内のどこかに異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする請求項１２〜１６のいずれかに記載のシステム。
【請求項１８】
前記第２のストア手段が、さらに、実行可能プログラムを表すコンピュータ可読コードを含んでおり、前記第２のローディング手段が、前記システム内のどこにも前記実行可能プログラムが要求に応じられる状態にない場合には、前記第２のストア手段から前記実行可能プログラムをロードするべく動作可能であるとする請求項１２〜１７のいずれかに記載のシステム。
【請求項１９】
前記実行可能プログラムが、前記第２のストア手段内に暗号化された形式で保持されており、前記システム内のどこかにおいて要求に応じられる状態にある前記実行可能プログラムのコピーが改ざんされているとして検出された場合に、前記第２のローディング手段が、前記コピーを暗号解除するべく動作可能であるとする請求項１８記載のシステム。
【請求項２０】
暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする請求項１２〜１９のいずれかに記載のシステム。
【請求項２１】
コンピュータ・ソフトウエアの部品をインストールする方法であって：
１．　実行間に少なくとも１つのサブルーチンに対するアクセスを必要とするタイプの実行可能プログラムをインストールすること；
２．　前記サブルーチンの暗号化されたコピーを暗号解除すること；および、
３．　前記実行可能プログラムによるアクセスのために前記暗号解除されたコピーをインストールすること；
を包含する方法。
【請求項２２】
前記暗号解除するステップおよび前記インストールするステップが、前記実行可能プログラムの実行が必要とされるごとに実行されるものとする前記請求項２１記載の方法。
【請求項２３】
さらに、すでにインストールされており、前記実行可能プログラムに対して要求に応じられる状態にあるサブルーチンを識別するステップ、およびそのように要求に応じられる状態にない前記サブルーチンまたはほかの必要とされるサブルーチンのみを暗号解除し、インストールするステップを包含するものとする前記請求項２１または２２記載の方法。
【請求項２４】
前記すでに要求に応じられる状態にあるサブルーチンを識別するステップが、サブルーチンの各種バージョンの間を弁別し、それによって異なるバージョンのみがすでに要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除することを含むものとする前記請求項２３記載の方法。
【請求項２５】
さらに、改ざんに関して前記実行可能プログラムを評価するステップ、および改ざんが検出された場合に、前記実行可能プログラムの別のコピーを使用のために暗号解除をしてインストールするステップを包含するものとする請求項２１〜２４のいずれかに記載の方法。
【請求項２６】
暗号化および暗号解除が、圧縮または伸張テクニックを含むかそれからなるものとする請求項２１〜２５のいずれかに記載の方法。
【請求項２７】
実質的にこの明細書に、添付図面の参照を伴って記載されているようなコンピュータ・ソフトウエア・プロダクト。
【発明の詳細な説明】
【０００１】
本発明は、コンピュータ・ソフトウエアに関し、より詳細には、コンピュータ・ソフトウエアのインストレーションのための構成に関する。
【０００２】
最近のコンピュータ・ソフトウエア、特にスプレッドシートおよびワード・プロセッサ等のアプリケーションは、高度に複雑化しており、メイン実行可能プログラムによって必要時に呼び出されるサブルーチンを多用する。多くの場合、これらのサブルーチンは、ほかのアプリケーションによっても必要になることがある。たとえば、プリント・サブルーチン、あるいはファイルを開く、ファイルを閉じるといったことに関するサブルーチンは、各種の異なるアプリケーションによる使用が可能になっていることがある。したがって、システム・メモリ内のスペースを節約するために、これらのサブルーチンを、可能な場合には共有することが提案されている。つまり、新しいアプリケーションをインストールするとき、その新しいアプリケーションがシステム内にすでに要求に応じられる状態にあるリソースをチェックし、使用可能な場合にはそれらを使用することが提案されている。また、新しいアプリケーションが、システム内に要求に応じられると見つけたものより新しいバージョンのサブルーチンを必要とする場合には、その新しいアプリケーションのインストール時に、より新しいバージョンがインストールされることになる。
【０００３】
これは、アプリケーション間にコンフリクトをもたらす。すでにシステム上にあるアプリケーションが、そのサブルーチンの、より古いバージョン、つまり新しいアプリケーションによって要求されたそれより新しいバージョンによって今上書きされてしまったバージョンを必要とすることがある。これによって、現存するアプリケーションの動作が予測不能、もしくは動作不能になる可能性がある。
【０００４】
本発明は、これらの困難の解決を求める。
【０００５】
本発明は、実行の間に少なくとも１つのサブルーチンに対するアクセスを必要とする実行可能プログラムを含むコンピュータ・ソフトウエアを提供し、当該ソフトウエアは、さらにそのサブルーチンもしくは各サブルーチンを暗号化された形式で含み、さらに暗号化されたサブルーチンを、少なくともアクセスが要求されたときに実行可能形式に変換する暗号解除ルーチンを含むものとする。
【０００６】
好ましくは暗号解除ルーチンが、プログラムの実行時に常に実行され、それによってそれぞれの機会ごとにサブルーチンが実行可能形式で再形成されるものとする。好ましくは暗号解除ルーチンが、サブルーチンをロケートしてアクセスするために、プログラムによってアクセス可能であるアドレス・テーブルを生成する。暗号解除ルーチンは、好ましくはソフトウエアを実行するシステム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、サブルーチンがすでに要求に応じられる状態にあるときには実行可能プログラムにそれを使用させるべく動作可能であるものとする。暗号解除ルーチンは、すでに要求に応じられる状態にあるサブルーチンに関するアドレスをアドレス・テーブル内に組み込むべく動作可能であるとしてもよく、それによってサブルーチンの別のコピーを暗号解除する必要をなくすことができる。
【０００７】
暗号解除ルーチンは、好ましくはサブルーチンの各種バージョンの間を弁別し、それによってシステム内に異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする。
【０００８】
このソフトウエアは、好ましくはさらに、実行可能プログラムの暗号化されたコピーを組み込んでおり、暗号解除ルーチンは、プログラムの実行可能コピーを暗号解除するべく動作可能であるとする。好ましくは暗号解除ルーチンが、ソフトウエア内に含まれている暗号化されていないコピーが改ざんされているとして検出された場合に、実行可能プログラムのコピーを暗号解除するべく動作可能であるとする。
【０００９】
好ましくは暗号化および暗号解除が、圧縮または伸張テクニックを含むか、それからなるものとする。
【００１０】
本発明は、上記のコンピュータ・ソフトウエアを含むデータ・ストレージ・デバイスも提供する。
【００１１】
また本発明は、ソフトウエアを実行するべく動作可能なプロセッシング手段、および上記のコンピュータ・ソフトウエアの少なくとも一部品を包含するコンピュータ・システムも提供する。
【００１２】
さらに本発明は、実行可能プログラムを実行するべく動作可能なコンピュータ・システムを提供し、当該システムは：
実行可能プログラムを表すコンピュータ可読コードを含む第１のストア手段；
実行のためのコードをロードするべく動作可能なローディング手段；
実行可能プログラムによって、その実行間に要求されるサブルーチンを識別するべく動作可能な識別手段；
識別手段によって識別された前述のサブルーチンまたは各サブルーチンを表すコンピュータ可読コードを含む第２のストア手段；および、
サブルーチンがシステム内のどこにも要求に応じられる状態にない場合に、前述のサブルーチンまたは各サブルーチンを第２のストア手段からロードするべく動作可能な第２のローディング手段；を備える。
【００１３】
好ましくは識別手段および第２のローディング手段が、実行可能プログラムの実行が開始されるごとに動作され、それによってそれぞれの機会ごとにサブルーチンを要求に応じられる状態にするものとする。第２のローディング手段は、要求に応じられる状態にされたサブルーチンのロケーションを識別するエントリをアドレス・テーブル内に作成することが可能であり、このアドレス・テーブルは、必要時にサブルーチンをロケートしてアクセスするために、実行可能プログラムによるアクセスが可能である。好ましくは第２のローディング手段が、システム内にすでに要求に応じられる状態にあるサブルーチンの存在を検出し、かつサブルーチンがすでに要求に応じられる状態にあるときには、実行可能プログラムにそれを使用させるべく動作可能であるとする。第２のローディング手段は、システム内のどこかにおいて要求に応じられる状態にあるサブルーチンに関するアドレスをアドレス・テーブル内に組み込むべく動作可能であるとすることができる。第２のローディング手段は、好ましくはサブルーチンの各種バージョンの間を弁別し、それによってシステム内のどこかに異なるバージョンのみが要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除するべく動作可能であるとする。
【００１４】
第２のストア手段は、さらに、実行可能プログラムを表すコンピュータ可読コードを含むことが可能であり、第２のローディング手段は、システム内のどこにも実行可能プログラムが要求に応じられる状態にない場合に、第２のストア手段から実行可能プログラムをロードするべく動作可能である。この実行可能プログラムは、第２のストア手段内に暗号化された形式で保持することができ、第２のローディング手段は、システム内のどこかにおいて要求に応じられる状態にある実行可能プログラムのコピーが改ざんされているとして検出された場合に、コピーを暗号解除するべく動作可能である。
【００１５】
暗号化および暗号解除が、圧縮または伸張テクニックを含むか、それからなるものとすることができる。
【００１６】
さらに本発明は、コンピュータ・ソフトウエアの部品をインストールする方法を提供し、当該方法は：
１．　実行間に少なくとも１つのサブルーチンに対するアクセスを必要とするタイプの実行可能プログラムをインストールすること；
２．　サブルーチンの暗号化されたコピーを暗号解除すること；および、
３．　実行可能プログラムによるアクセスのために暗号解除されたコピーをインストールすること；を包含する。
【００１７】
暗号解除するステップおよびインストールするステップは、好ましくは実行可能プログラムの実行が必要とされるごとに実行されるものとする。
【００１８】
さらにこの方法は、すでにインストールされており、実行可能プログラムに対して要求に応じられる状態にあるサブルーチンを識別するステップ、およびそのように要求に応じられる状態にない前述の、またはほかの必要とされるサブルーチンのみを暗号解除し、インストールするステップを包含する。この、すでに要求に応じられる状態にあるサブルーチンを識別するステップは、好ましくはサブルーチンの各種バージョンの間を弁別し、それによって異なるバージョンのみがすでに要求に応じられる状態にある場合には、暗号化されたバージョンを暗号解除することを含む。
【００１９】
この方法は、さらに、改ざんに関して実行可能プログラムを評価するステップ、および改ざんが検出された場合に、実行可能プログラムの別のコピーを使用のために暗号解除をし、インストールするステップを包含することができる。
【００２０】
好ましくは暗号化および暗号解除は、圧縮または伸張テクニックを含むか、それからなるものとする。
【００２１】
以下、図面を参照し、例示のみを目的として本発明の例についてより詳細に説明する。
【００２２】
ソフトウエアのインストールのための構成を説明する前に、本発明を実施することができるデータ・プロセッシング・システムの基本的コンポーネントについて述べておくことはまず有用である。図１は、入力／出力デバイス３が接続されたプロセッサ２を含むコンピュータ・システム１を示している。プロセッサ２には、プロセッシングの間に使用するためのランダム・アクセス・メモリ（ＲＡＭ）４も備えられている。５には、追加のメモリ容量が提供されており、たとえばハード・ドライブによって提供される。このコンピュータ・システムは、たとえばＩＢＭ　ＰＣタイプ、あるいはその等価物のコンピュータとすることができる。
【００２３】
ソフトウエア・アプリケーションを、必要になるまでドライブ５上にストアしておき、その後、その使用が必要となったときにＲＡＭ４にインストールすることは広く実践されている。これは、プロセッサ２によるソフトウエアへのアクセス速度を改善し、したがってプロセッサ２による、より高速なプロセッシングが可能になる。図２は、図１に示されているタイプのデバイスのプロセッサによる使用のためにアプリケーション（ワード・プロセッサ・アプリケーション等）がインストールされたＲＡＭ１０のセクションを表している。この図は、アプリケーションの各種コンポーネントを高度に簡略化し、略図形式で示している。そこに含まれているローダ１２は、アプリケーションが最初に開かれたときのその初期オペレーションを実施するコードのブロックである。プログラムの本体は、ＲＡＭ１０内の１４にインストールされる。このプログラム１４は、前述したように、サブルーチンを含むファイルに対するアクセスを必要とする。それらは、一般に．ＤＬＬファイルと呼ばれており、各種のアプリケーションによって共有されている。そのため．ＤＬＬファイル１６は、ＲＡＭ１０内のほかの場所にあるものとして図に示されている。プログラム１４と．ＤＬＬファイル１６の間の領域１８は、別のアプリケーションのインストールといった、ほかの使用のために空いている。
【００２４】
ＲＡＭ１０には、インポート・アドレス・テーブル（ＩＡＴ）２０も含まれている。これは、．ＤＬＬファイル１６のロケーションを識別するテーブルであり、それによりプログラム１４からこれらのファイル１６が要求されたとき、プロセッサ２は、ＩＡＴ２０内のこれらのファイルのロケーションをルックアップすることによってそれらのファイル１６にアクセスすることができる。ＩＡＴは、ハード・ドライブからＲＡＭ１０にアプリケーションがコピーされ、その後、最初に実行がローダ１２に渡されたとき、ローダ１２によって作成される。ローダ１２は、いずれの．ＤＬＬファイルがアプリケーションによって要求されているかをチェックし、それらをハード・ドライブ上において見つけ出し、それらをＲＡＭ１０にロードして、各．ＤＬＬおよびＲＡＭ内のそのロケーションを識別するＩＡＴ２０を作成する。
【００２５】
図３ａ、３ｂ、および３ｃは、本発明に従ってアプリケーションのロードが可能になる方法を示している。これらについては、アプリケーションがロードされるときに実行されるステップのシーケンスを示した図４のフローチャートに関連して理解することができる。図示されているステップは、本発明に関連する部分だけである。ここで理解する必要があるが、本発明に関連していないそのほかのステップが、ロードの一部として図示のステップの前、間、あるいは後に実行されることもある。
【００２６】
ＲＡＭ１０の初期ロードの結果は、図３ａに示されている状態になる。ローダ・モジュール１２ａが適正な位置に収められ（図４のステップ１００）、概略でそれは図２のローダ１２に対応している。またプログラム１４も、図２のインストレーションに対応する位置にインストールされる（ステップ１０２）。しかしながら、図３ａで注意を要することは、図２においてＩＡＴ２０に関して使用されているメモリの領域が、図３ａにおいては空となっていることである。
【００２７】
本発明によれば、初期ロードの一部として、エンジン２２と呼ばれる追加の実行可能コードのブロックがＲＡＭ１０内のプログラム１４の下、つまり領域１８の一部にインストールされる（ステップ１０４）。ほかのファイル２４は、エンジン２２に関連付けされており、それとともにロードされる（ステップ１０６）。これらのファイルは、図１の．ＤＬＬファイル１６の暗号化されたバージョンである。暗号化は、圧縮もしくはより安全な暗号化テクニックによるものとすることができる。これらのファイル２４は、図３ａにおいてカッコ内に識別されており、暗号化されているそれらの特性を略図的に示している。
【００２８】
前述した初期ロードの後、実行がローダ・モジュール１２ａに渡される（ステップ１０８）。つまり、プロセッサ２のプログラム・ポインタがローダ・モジュール１２ａの先頭のメモリアドレスをポイントする。図３ｂは、その後、ＲＡＭ１０内に生じる変化を図示している。アプリケーションの初期化の一部として、ローダ１２が、エンジン２２を起動する（ステップ１１０）。エンジン２２は、２つの機能を提供する。第１においては、エンジン２２がアプリケーションによって要求されるリソース（つまり、この例の場合であれば．ＤＬＬファイル）を識別し（ステップ１１２）、かつシステム内においてすでに要求に応じられる状態のリソースを識別する（ステップ１１４）。デフォルトにより、このステップ１１４は、要求に応じられる状態にないリソースについての識別も行う。この単純な例においては、サブルーチン．ＤＬＬ１が要求されており、かつハード・ドライブ５上において要求に応じられる状態にあるが、サブルーチン．ＤＬＬ２は、要求されているがハード・ドライブ上において要求に応じられる状態にないものと仮定する。したがってエンジン２２は、ハード・ドライブ上において．ＤＬＬ１をロケートし、それをＲＡＭ１０上にコピーし（ステップ１１６）、サブルーチン．ＤＬＬ１ならびにそのロケーションを識別する適切なエントリをＩＡＴ２０内に作成する（ステップ１１８）ことによって、ＩＡＴ２０の構築を開始することが可能になる。この結果、図３ｂに示されている状態になる。
【００２９】
このプロセスの一部として、エンジン２２は、必要とされているサブルーチンであって、すでにハード・ドライブから要求に応じられる状態となっていないか、適切なバージョンが要求に応じられる状態にないサブルーチンの識別を行う（ステップ１１４）。この単純な例においては、当初サブルーチン．ＤＬＬ２が、要求に応じられる状態にない。したがってエンジン２２は、（．ＤＬＬ２）として示された暗号化されたファイルにアクセスし（ステップ１２０）、．ＤＬＬ２のコピーを暗号解除するべく動作する（ステップ１２２）。暗号解除したコピーは、続いてインストールされ（ステップ１２４）、プログラム１４の要求に応じられる状態になる。これにおいても、エンジン２２が、ファイル．ＤＬＬ２の存在ならびにロケーションを識別する適切なエントリをＩＡＴ２０内に作成する（ステップ１２６）。
【００３０】
したがって、上記のようにエンジン２２が完全に実行された後は、ＲＡＭ１０が図３ｃに示されている状態になる。このアプリケーションのインストレーションは、図２に示されているインストレーションに等価となり、ローダ１２ａ、プログラム１４、プログラムをサブルーチンに向けるためのＩＡＴ２０、およびＤＬＬサブルーチン１６の完全なセットが存在する。それに加えて、この時点においては、図２の空のエリア１８の一部がエンジン２２および暗号化された（．ＤＬＬ）ファイルによって満たされているが、これらは、プログラム１４の実行が開始した後は呼び出されない。以上により、この時点で１６において入手可能であり、ＩＡＴ２０内に識別されている、プログラム１４が必要とするリソースを用いて、今やプログラム１４の実行を開始することが可能になる（ステップ１２８）。
【００３１】
エンジン２２および暗号化された（．ＤＬＬ）ファイルを、最初にＲＡＭ１０内にインストールされるソフトウエアに組み込むことによって、次のような有用な技術的効果を達成することができる。すなわち、アプリケーションが、そのオペレーションに必要なサブルーチンの完全なセットを伴うという意味において独立言語型になる。これらは、好ましくはスペースを節約するために圧縮された形式とし、さらにセキュリティのために暗号化されるものとすることができる。それらがすでに要求に応じられる状態となっていない場合、あるいは適正なバージョンが要求に応じられる状態にない場合には、上記と同様にそれらのインストールが可能である。さらに、アプリケーションの実行ごとに、ローダ・モジュールが実行されてエンジン２２を呼び出すとき、必要に応じてインストールされることになる。つまり、アプリケーションの適正なオペレーションは、ほかのアプリケーションが共有．ＤＬＬファイルの修正、置換または上書きをいかに積極的に行ったとしても、異なるアプリケーションのインストレーションまたはオペレーションによって影響されることはない。別のアプリケーションのアクティビティの結果として、あるいはそのほかの理由により、要求に応じられなくなった共有ファイルは、アプリケーションが次に実行されるとき、暗号化された（．ＤＬＬ）ファイルから復元される。
【００３２】
エンジン２２および暗号化された（．ＤＬＬ）ファイルのオペレーションは、ウィルス攻撃またはそのほかの改ざんに対するある程度の保護も提供する。エンジン２２は、ハード・ドライブから見たところ要求に応じられる状態のサブルーチンの改ざんを評価し、改ざんが見つかるか疑われる場合には、まあたらしい、暗号化されていないコピーを（．ＤＬＬ）ファイルからインストールするべくプログラムすることができる。
【００３３】
本発明をさらに拡張すると、メイン・プログラム１４内において改ざんが見つかるか疑われる場合に、プログラム１４の完全でまあたらしいコピーが暗号解除され、インストールされることを意図して、エンジン２２を、再びメイン・プログラム１４の暗号化されたコピーとともに提供することができる。
【００３４】
これらの説明から明らかになろうが、本発明の範囲から逸脱することなく上記の構成に対して多くの変形ならびに修正を行うことが可能である。詳細に述べれば、当業者にとっては、このテクニックが非常に広範な言語において、各種広範な暗号化、暗号解除、圧縮、または伸張テクニックを使用して実施可能なことが明らかであろう。
【００３５】
以上の明細においては、特に重要であると思われる本発明の特徴に注意が注がれるべく努めているが、出願人が、特定の強調が置かれているか否かによらず、図面を参照した、および／またはそれに示されている上記のあらゆる特許性のある特徴、もしくは特徴の組み合わせに関する保護を主張していることが理解されるものとする。
【図面の簡単な説明】
【図１】本発明が実施されると見られるデータ・プロセッシング・デバイスの簡略化した概略図である。
【図２】先行する提案に従ってインストールされるアプリケーションを伴うＲＡＭを示している。
【図３】（ａ）、（ｂ）および（ｃ）は、本発明に従ったＲＡＭ内へのアプリケーションのインストラクションに関するステップを示している。
【図４】アプリケーションがロードされるときに実行されるステップのシーケンスを示したフローチャートである。
【図１】
2004504668.tif 000003
【図２】
2004504668.tif 000004
【図３】
2004504668.tif 000005
【図４】
2004504668.tif 000006
【国際公開パンフレット】
2004504668.tif 000007
2004504668.tif 000008
2004504668.tif 000009
2004504668.tif 000010
2004504668.tif 000011
2004504668.tif 000012
2004504668.tif 000013
2004504668.tif 000014
2004504668.tif 000015
2004504668.tif 000016
2004504668.tif 000017
2004504668.tif 000018
2004504668.tif 000019
2004504668.tif 000020
2004504668.tif 000021
2004504668.tif 000022
2004504668.tif 000023
2004504668.tif 000024
【国際公開パンフレット（コレクトバージョン）】
2004504668.tif 000025
2004504668.tif 000026
【国際調査報告】
2004504668.tif 000027
2004504668.tif 000028