(57)【要約】ユーザマシーンにロードするためのソフトウェアエンジンアプリケーションであり、ここではアプリケーションのコアサービスはアプリケーションがユーザマシーンで動作を開始することを可能にするためユーザマシーンにロードされ、エンジンはそれが決定する優先順位にしたがってアプリケーションのコアではないサービスをロードする。対応する方法およびメモリ管理システムも開示されている。
2004529419.tif 000002
【特許請求の範囲】
【請求項１】
ユーザマシーンにソフトウェアアプリケーションをロードするアプリケーション用のソフトウェアエンジにおいて、アプリケーションのコアサービスはユーザマシーンで動作するためにアプリケーションの開始を可能にするようにユーザマシーンへロードされ、エンジンが結果として、エンジンにより決定された優先順位にしたがってコアではないアプリケーションサービスをロードするソフトウェアエンジン。
【請求項２】
エンジンはコアサービスの一部であり、そのコアサービスと共にロードされる請求項２記載のソフトウェアエンジン。
【請求項３】
エンジンはコアサービスのローディングの完了時に動作を開始する請求項２記載のソフトウェアエンジン。
【請求項４】
優先順位はトップの優先順位を含んでおり、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザマシーンで必要とされる任意のコアではないアプリケーションサービスに与えられる請求項１記載のソフトウェアエンジン。
【請求項５】
コアではないサービスはエンジンにより制御される方法でロードされる請求項１記載のソフトウェアエンジン。
【請求項６】
制御はアプリケーションとのユーザの対話を考慮に入れる請求項５記載のソフトウェアエンジン。
【請求項７】
コアではないサービスをロードする前に、これらはエンジンで登録される請求項５記載のエンジン。
【請求項８】
エンジンはコアではないリクエストされたサービスをロードする前にコアではないサービスの登録リストをチェックする請求項７記載のソフトウェアエンジン。
【請求項９】
少なくともアプリケーションに対する１つのオブジェクトが記憶されることができるキャッシュが設けられる請求項１記載のソフトウェアエンジン。
【請求項１０】
エンジンはキャッシュされたオブジェクトの使用の追跡を維持するメモリ管理モジュールを含んでおり、メモリ管理モジュールは１以上のオブジェクトの割当てを解除することができる請求項９記載のソフトウェアエンジン。
【請求項１１】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項１０記載のソフトウェアエンジン。
【請求項１２】
少なくとも１つのオブジェクトが位置されるオブジェクトリポジトリと、オブジェクト記述とを含んでいる請求項９記載のソフトウェアエンジン。
【請求項１３】
オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項１２記載のソフトウェアエンジン。
【請求項１４】
１以上のオブジェクトの割当て解除は任意のタイムオフセットを含んでいる請求項１０記載のソフトウェアエンジン。
【請求項１５】
オブジェクトリポジトリのオブジェクトのオブジェクト記述が少なくともタイムオフセットに等しい時間に対してゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項１４記載のソフトウェアエンジン。
【請求項１６】
ローディングはインターネットにわたるダウンローディングである請求項１記載のソフトウェアエンジン。
【請求項１７】
ソフトウェアエンジンを使用してユーザマシーンへソフトウェアアプリケーションをロードする方法において、ユーザがアプリケーションと対話することを可能にするためにアプリケーションのコアサービスをユーザマシーンへロードし、エンジンにより決定された優先順位にしたがってアプリケーションのコアではないサービスをロードするステップを含んでいるロード方法。
【請求項１８】
エンジンはコアサービスの一部であり、そのコアサービスと共にロードされる請求項１７記載の方法。
【請求項１９】
エンジンはコアサービスのローディングの完了時に開始する請求項１８記載の方法。
【請求項２０】
コアではないサービスをロードする前に、これらはエンジンで登録される請求項１７記載の方法。
【請求項２１】
優先順位により、トップの優先順位が生成され、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザマシーンで必要とされる任意のコアではないアプリケーションサービスに与えられる請求項１７記載の方法。
【請求項２２】
ユーザがアプリケーションと対話するとき、アプリケーションは少なくとも１つのコアではないサービスをロードするようにエンジンにリクエストし、エンジンは登録をチェックし、少なくとも１つのコアではないサービスにローディングのトップの優先順位を与える請求項２１記載の方法。
【請求項２３】
コアではないサービスのロードはエンジンにより制御される方法である請求項２１記載の方法。
【請求項２４】
制御はアプリケーションとのユーザの対話を考慮に入れている請求項２３記載の方法。
【請求項２５】
アプリケーションのオブジェクトは再使用のためにキャッシュに記憶可能である請求項１７記載の方法。
【請求項２６】
キャッシュされたオブジェクトは１以上のオブジェクトの割当てを解除することができるエンジンのメモリ管理モジュールを使用して追跡される請求項２５記載の方法。
【請求項２７】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項２６記載の方法。
【請求項２８】
オブジェクトはオブジェクト記述と共にキャッシュ中のオブジェクトリポジトリに位置される請求項２５記載の方法。
【請求項２９】
オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項２８記載の方法。
【請求項３０】
割当て解除は任意のタイムオフセットを含んでいる請求項２６記載の方法。
【請求項３１】
オブジェクトリポジトリのオブジェクト記述が少なくともタイムオフセットに等しい時間に対してゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項３０記載の方法。
【請求項３２】
ローディングはインターネットにわたるダウンローディングである請求項１７記載の方法。
【請求項３３】
キャッシュを含んでおり、アプリケーションのオブジェクトは再使用のためにキャッシュに記憶されることが可能であるソフトウェアアプリケーションと共に使用するためのコンピュータメモリ管理システム。
【請求項３４】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項３３記載のシステム。
【請求項３５】
オブジェクトはオブジェクト記述と共にキャッシュのオブジェクトリポジトリ中に位置される請求項３３記載のシステム。
【請求項３６】
オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項３５記載のシステム。
【請求項３７】
キャッシュされたオブジェクトは１以上のオブジェクトの割当てを解除することができるメモリ管理モジュールを使用して追跡される請求項３３記載のシステム。
【請求項３８】
割当て解除は任意のタイムオフセットを含んでいる請求項３７記載のシステム。
【請求項３９】
オブジェクトリポジトリのオブジェクト記述が少なくともタイムオフセットに等しい時間でゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項３８記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアアプリケーションローディング用のソフトウェアエンジンおよび方法、特にそれに限定されないがダウンロード可能なソフトウェアエンジンとソフトウェアアプリケーションのダウンロード方法に関する。本発明はジャバで書かれたソフトウェアアプリケーションに対して特別な応用を有するが、その言語のアプリケーションに限定されず、他の言語で書かれたソフトウェアアプリケーションにも応用可能である。
【背景技術】
【０００２】
例えばジャバのアプリケーションのようなソフトウェアアプリケーションは例えばインターネットにわたってダウンロードされることによりユーザのマシーンへロードされることができる。現在の技術はアプリケーションの使用が開始できる前にアプリケーション全体がダウンロードされることができることを必要とする。これはジャバアプレットまたはスタンドアロンアプリケーションである。ダウンロードされるものはアプリケーションの実行に必要なジャババイトコードのクラスのセットである。アプリケーションが複雑であるならば、多数のクラスがダウンロードされることを必要とされ、したがって多量のコードがダウンロードされることを示唆する。コードの一部はアプリケーションの開始に必要とされる。しかしながら、幾つかのクラスはアプリケーションの開始に使用されないで、ある時間後、ユーザがアプリケーションと対話した後のみに使用され、または全く使用されない。最初にこれらはダウンロードされているので、これらはダウンロード時間とメモリの使用を増加する。これは望ましくない。
【０００３】
最近の提案はhttp://www.javaworld.com/javaworld/javatips/jw-javatips95.htmlで利用可能なJava WorldのTips'N Tricks 、Tip 95中に存在する。しかしながら、これは自動的にそれ自体を付勢するアプリケーションのエンジンではなく各アプリケーションで別々に動作されなければならないユーザマシーンからのダイナミックローディングシステムである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
それ故、本発明の主要な目的はアプリケーションが漸進的にロードされることを可能にするためのエンジンを与えることである。
さらに別の目的は初期ローディングがアプリケーションの開始に必要なアプリケーション部分であるこのようなエンジンを提供することである。
【０００５】
別の目的はアプリケーションの残りが制御された方法でロードされるこのようなエンジンを提供することである。
最終的な目的はアプリケーション性能を改良するためにメモリ管理システムを提供することである。
【課題を解決するための手段】
【０００６】
前述および他の目的を念頭において、本発明はユーザマシーンにロード可能なソフトウェアアプリケーション用のソフトウェアエンジンを提供し、アプリケーションのコアサービスはユーザのマシーンで動作するためにアプリケーションの開始を可能にするようにユーザマシーンへロードされることである。エンジンは結果として、エンジンにより決定された優先順位にしたがってコアではないアプリケーションサービスをロードする。エンジンはコアサービスの一部および好ましくはそのサービスと共にロードされ、コアサービスのローディングによりスタートされる。好ましくはこれはコアサービスのローディングの完了時にスタートする。
【０００７】
優先順位はトップの優先順位を含んでおり、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザのマシーンで必要とされる任意のコアではないアプリケーションサービスに対して与えられる。コアではないサービスはエンジンにより制御される方法でロードされることがこのましい。制御はユーザによるアプリケーションとの対話を考慮してエンジンにより行われる。
【０００８】
好ましくは、コアではないサービスをロードする前に、これらはエンジンにより登録される。さらに好ましくは、エンジンはリクエストされたコアではないサービスをロードする前にコアではないサービスの登録リストをチェックする。エンジンはアプリケーションの一部であってもよい。
【０００９】
少なくともアプリケーションの１つのオブジェクトが記憶されることのできるキャッシュが設けられる。キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作し、少なくとも１つのオブジェクトが位置されるオブジェクトリポジトリと、少なくとも１つのオブジェクト記述を含んでもよい。オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいてもよい。ローディングはインターネットによるダウンロードを含むダウンローディングである。
【００１０】
好ましくは、キャッシュされたオブジェクトの使用の追跡を維持するメモリ管理モジュールも設けられており、メモリ管理モジュールは１以上のオブジェクトの割当てを解除することができる。１以上のオブジェクトの割当て解除は任意のタイムオフセットを含んでいる。オブジェクトリポジトリのオブジェクトのオブジェクト記述が少なくともタイムオフセットに等しい時間でゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去されてもよい。
【００１１】
エンジンは所望ならばメモリ管理モジュールと合体してもよい。代わりに、この２つは相互に独立してもよい。
別の形態では、本発明はソフトウェアエンジンを使用しているユーザマシーンへソフトウェアアプリケーションをロードする方法を提供し、その方法はユーザがアプリケーションと対話することを可能にするためアプリケーションのコアサービスをユーザマシーンへロードし、エンジンにより決定された優先順位にしたがってアプリケーションのコアではないサービスをロードすることを含んでいる。
【００１２】
好ましくは、コアではないサービスをロードする前に、これらはエンジンにより登録される。優先順位はトップの優先順位を含んでおり、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザマシーンで必要とされる任意のコアではないアプリケーションサービスに与えられる。コアではないサービスはエンジンにより制御される方法でロードされることが好ましく、エンジンはユーザによるアプリケーションとの対話を考慮する。
【００１３】
便宜的に、エンジンはローディング前にコアではないサービスの登録リストを作成し、リクエストされたコアではないサービスをロードする前にコアではないサービスの登録リストをチェックしてもよい。
ローディングはダウンロードであり、インターネットにわたってもよい。好ましくは、少なくともアプリケーションの１つのオブジェクトが記憶されることができるキャッシュが設けられる。キャッシュがアプリケーションがユーザマシーンに存在するときのみ動作可能であることがさらに好ましい。
【００１４】
キャッシュはオブジェクトが位置されるオブジェクトリポジトリとオブジェクト記述を含んでもよい。オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプの１以上のものを含んでもよい。
キャッシュされたオブジェクトの使用は１以上のオブジェクトの割当てを解除するメモリ管理モジュールにより追跡され、任意のタイムオフセットの使用を含む。オブジェクトリポジトリのオブジェクト記述が少なくともタイムオフセットに等しい時間に対してゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去されてもよい。割当て解除は特定のオブジェクトがもはや必要ではないことをモジュールがキャッシュオペレーティングシステムに通知するときに行われる。オペレーティングシステムはその後キャッシュからオブジェクトを消去することができ、したがってメモリをフリーにする。フリーにされたメモリはその後、必要な時に使用されることができる。
【発明を実施するための最良の形態】
【００１５】
本発明を良好に理解し、その効果を実践するために、本発明の好ましい実施形態の技術的範囲を限定するためではなく単なる例示により説明し、説明は添付図面を参照する。
説明する実施形態はソフトウェアアプリケーションを漸進的にダウンロードするソフトウェアエンジンまたはフレームワークと、メモリ管理用のメモリ管理モジュールを提供する。これはクライアントマシーンで使用されるメモリの量を管理しながら、大きいアプリケーションがダウンロードされ幾つかのステップで成長することを可能にする。コアクラスの第１のセットはクライアントマシーンにダウンロードされ、残りのアプリケーションクラスはクライアントマシーンの背景タスクによりダウンロードされる。幾つかのクラスが特別なユーザ対話のためにアプリケーションにより必要とされるならば、対応するクラスは高い優先順位でダウンロードされる。このエンジン／フレームワークはしたがってエンジンの背景ローディングと“要求されている”ローディングとを実行する。メモリ管理機能はアプリケーションがクライアントマシーンで使用するメモリリソース量を減少するためにユーザが直接使用しない幾つかのメモリをフリーにする。
【００１６】
最初に図１を参照するため、ネットワーク３により接続されているサーバマシーン１とクライアントマシーン２と、サーバ１からダウンロードされクライアントマシーン２で実行されるジャバアプリケーションのようなジャバアプリケーションが与えられており、本発明はそのアプリケーションをコアアプリケーションと付加的なサービスに分割する。コアアプリケーションはアプリケーションを開始するためにダウンロードを必要とされる全てのアプリケーションコンポーネント（ジャバクラス）である。付加的なサービスはアプリケーションのその後の機能を実行するためダウンロードされる必要なコンポーネントのセットである。１つのサービスはそのアプリケーションの機能に等しい。エンジンはコアアプリケーションの一部であり、好ましくはコアアプリケーションによりロードされ、コアアプリケーションのロードの完了により開始されるようにトリガーされる。
【００１７】
グラフィックアプリケーションの場合、コアアプリケーションはメインスクリーンであり、基本的なオブジェクトはこの第１のスクリーンをユーザに示すために必要とされた。付加的なサービスはアプリケーションの全てのサブスクリーンと、アプリケーションにより転送される基本的なサービスと、ユーザのアプリケーションとの対話の全ての結果からなる。各サービスはそのサービスを実現するのに必要な１以上のジャバクラスの名称により示される。さらにアプリケーションは全ての可能なユーザ対話と、それがトリガーする対応するサービスとの間にリンクを設定する。例えばグラフィックアプリケーションの場合、アプリケーションはボタンのクリックと、開始される対応するサービスとの間に関係を維持する。
【００１８】
ローディングエンジンまたはフレームワークはサーバからジャバクラスをダウンロードできるクライアントタスクである。これはダウンロードされるサービスのリストを維持し、各サービスに必要とされるクラスをダウンロードする。これはリスト中に現れる順序にしたがってクラスをダウンロードする程度に簡単である。クラスのダウンロードの順番は変更されることができる。これはエンジンにより行われ、例えばマシーンのリソースのさらに効率的な使用のため、または既にダウンロードされたアプリケーションクラスがアプリケーションの動作を拡張するため新しいクラスを使用できることを可能にするためのユーザ対話によるものである。そのサービスリストに新しいサービスを付加することができる。ダウンロードエンジンはコアアプリケーションの一部であり、それと共にロードされる。エンジンを含むコアアプリケーションのローディングの完了はエンジンのスタートをトリガーする。しかしながら、所望ならば早期に開始してもよい。エンジンはユーザではなくコアアプリケーションの動作により開始される。ダウンロードエンジンとサーバとの間のリンクは所望ならば暗号化されてもよい。
【００１９】
コアアプリケーションのダウンロードはサーバ１からジャババイトコードをダウンロードして実行するクライアント２により開始される。コアアプリケーションはその後サーバから、付加的なサービスのための説明情報をリクエストする。サーバはこの情報をその記憶媒体４から獲得し、クライアント２へそれを送信する。このステップはサービス情報が既にコアアプリケーションクラスに含まれているならば必要ではない。
【００２０】
ダウンロードエンジンはその後、スタートされる。コアアプリケーションはダウンロードエンジンによりダウンロードされるべきサービスを登録し、これは必要なクラスのダウンロードを開始する。ダウンロードは登録順序を含むエンジンにより決定された任意の順序であってよい。
【００２１】
ユーザがコアアプリケーションと対話するとき、ある付加的なサービスがダウンロードされるのに必要とされる。その場合、コアアプリケーションはダウンロードエンジンに特別なサービスがダウンロードされるのに必要であることを通知する。ダウンロードエンジンは対応するサービスが既にダウンロードされているか否かをチェックする。ダウンロードされていないならば、優先順位の事柄として任意の他のクラスの前の任意の事象でこのサービスのクラスをダウンロードする。サービスに対応するコードはそれ故、ダウンロードされ、アプリケーションはサービスを開始する。図４に示されているように、サービス３がユーザの対話のためにダウンロードされる必要があり、サービス２がダウンロードされるがその時に必要ではないならば、サービス２のダウンロードは中断され、サービス３がダウンロードされる。
【００２２】
ダウンロードエンジンは後続の（図５参照）前述の方法により制御された方法または必要なときにその他の方法で全てのサービスをダウンロードする。一度、コアアプリケーションと全ての登録されたコアではないサービスがダウンロードされると、ユーザがアプリケーションと対話しないのでサービスはもはやダウンロードされる必要はない。それ故、エンジンはさらにコアではないサービスが登録されるのに対して準備または待機する。いつでもローディング順序または優先順位を制御するのはエンジンである。任意の時に、アプリケーションはエンジンにより新しいサービスのダウンロードをリクエストでき、エンジンに付加的なコードをダウンロードさせる。
【００２３】
動作の最後では、ユーザに利用可能なサービス／機能の量はアプリケーションの開始でよりも高いので、アプリケーションは“成長”している。
アプリケーションがクライアントマシーンで開始された後、コアアプリケーションまたはコアアプリケーションプラス幾つかのサービスであるので、ユーザはそれと対話を開始し、アプリケーションにより実現されるサービスをサービスエンジンにリクエストさせる。各サービスはオブジェクトがユーザマシーンのメモリで作成されることを必要とする。このようなオブジェクトはイメージ、データ構造または特別なサービスを転送するジャバオブジェクト、またはその他を含んでいる。一度サービスが完了すると、ジャバの仮想マシーンの不要情報コレクタはオブジェクトにより使用されたメモリをフリーにする。
【００２４】
図６乃至９を参照すると、システムはこのようなオブジェクトをキャッシュするプロセスを提供し、それによってアプリケーションがそれらを作成する必要なくそれらを再使用することが可能である。オブジェクトリポジトリという名称のこのシステムはユーザが規則的に同一のサービスをリクエストするときに性能を増加する。アプリケーションはメモリでオブジェクトを再作成する必要がないのでアプリケーション速度は増加する。例えば、グラフィックアプリケーションの場合、ユーザは質問に回答しようとする。その後、アプリケーションは質問のテキストを有する質問箱と質問マークの形状のアイコンを表示する。アイコンはジャバオブジェクトにより表示され、これはメモリにキャッシュされることができる。ユーザが質問に回答し、質問メッセージ箱が消去された後、アプリケーションがユーザに新しい質問を与える必要があるならば、それを再度作成する代わりに同一のアイコンオブジェクトを使用できる。
【００２５】
オブジェクトリポジトリによりキャッシュされるために、オブジェクトは図７乃至９の“キー１”、“キー２”等の特有のキー（有効なジャバクラスのインスタンス）により識別される必要がある。イメージの場合、これはジャバストリングとして表されるイメージの名称である。
【００２６】
オブジェクト記述は少なくとも以下の情報を含んでいるデータ構造である。
・オブジェクト基準−オブジェクトに対するジャバ基準、
・オブジェクトキー−オブジェクトに関連するキー、
・基準カウンタ−（オブジェクトリポジトリを除く）オブジェクトを現在使用しているサービスの数、
・タイムスタンプ−オブジェクトリポジトリのオブジェクトを呼出した最後の時間／日付値。
【００２７】
オグジェクト基準は図７乃至９の“Ｏｂｊ１”、“Ｏｂｊ２”として示され、基準カウンタは図７乃至９の表の第３の列に示されており、タイムスタンプは第４の列に示されている。
オブジェクトリポジトリは種々のサービスにより再使用されるためシステムによりキャッシュされるオブジェクトの中央リポジトリである。オブジェクトリポジトリはアプリケーションが作動している限り存続するデータ構造のオブジェクト記述を追跡する。このデータ構造はオブジェクトリストと呼ばれる。オブジェクトリポジトリは以下のことを行うことができる。
・オブジェクトリストへ新しいオブジェクト記述を付加する。この動作はこのオブジェクト記述の基準カウンタを増加し、そのタイムスタンプを更新する。
・オブジェクトリストから既存のオブジェクト記述を除去する。
・キーに基づいてオブジェクト記述を発見し、オブジェクト記述に含まれる対応するオブジェクト基準を戻す。この動作はこのオブジェクト記述の基準カウンタを増加し、そのタイムスタンプを更新する。
【００２８】
サービスが特別なオブジェクトを必要とするとき、それは最初にそのオブジェクトに対応する特有のキーを構成し、その後、オブジェクトの特有のキーに基づいてオブジェクトリポジトリからオブジェクトをリクエストする（図７）。図７では、Ｏｂｊ１のリクエストはキー１の参照による。オブジェクトがオブジェクトリポジトリのオブジェクトリストで発見されるならば、それはリクエストを行うサービスへ戻される（図８）。
【００２９】
オブジェクトがオブジェクトリポジトリで発見されないならば、選択された構造に基づいて以下の２つの可能性が生じる。
・オブジェクトリポジトリはキーに基づいてオブジェクトを作成できる。オブジェクトリポジトリはオブジェクトとオブジェクト記述を作成し、オブジェクト記述をそのオブジェクトリストへ追加し、オブジェクト基準をリクエストを行うサービスへ戻し、または
・オブジェクトリポジトリはオブジェクトを作成できない。これは“０”値を呼出しサービスへ戻す。呼出しサービスはその後、オブジェクトを作成し、それをオブジェクトリポジトリへ付加しなければならない。
【００３０】
図９で示されているように、（例えばユーザが質問に回答した後、質問ダイアローグ箱に含まれるイメージに対する）オブジェクトの使用をもはや必要としないことをサービスが決定するとき、オブジェクトに対する基準カウンタを減少するようにオブジェクトリポジトリを呼出す。これはオブジェクトにより占有されるメモリが劇的に増加し、したがってクライアントマシーンのリソースを使用するためである。それ故、メモリ管理モジュールは幾つかのオブジェクトの割当てを解除する。例えば、任意の時間オフセットはアプリケーションにより選択されることができ、オブジェクトリポジトリのオブジェクト記述が時間オフセット以上の時間期間にゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される。ジャバ仮想マシーンの不要情報コレクタはその後、クライアントマシーンのメモリからオブジェクトをクリアする。
【００３１】
このメモリ管理モジュールはクライアントマシーンの過剰な量のリソースを占有せずに、アプリケーションがさらに高い性能レベルを実行することを可能にするためにアプリケーションにより使用されるリソースをフリーにする。
前述の説明では本発明の好ましい実施形態を説明したが、多数の変化または変形が本発明を逸脱せずに行われることが当業者により理解されるであろう。
【図面の簡単な説明】
【００３２】
【図１】システムアーキテクチャを示す図。
【図２】ダウンロードエンジンを示す図。
【図３】第１のサービスダウンロード後のダウンロードエンジンを示す図。
【図４】ダウンロードの順序の変化を示したダウンロードエンジンを示す図。
【図５】ダウンロードプロセスの最後におけるダウンロードエンジンを示す図。
【図６】２つのオブジェクト記述を含んでいるオブジェクトリストを有するオブジェクトリポジトリを示す図。
【図７】メモリ管理モジュールの動作を示す図。
【図８】メモリ管理モジュールの動作を示す図。
【図９】メモリ管理モジュールの動作を示す図。
【図１】
2004529419.tif 000003
【図２】
2004529419.tif 000004
【図３】
2004529419.tif 000005
【図４】
2004529419.tif 000006
【図５】
2004529419.tif 000007
【図６】
2004529419.tif 000008
【図７】
2004529419.tif 000009
【図８】
2004529419.tif 000010
【図９】
2004529419.tif 000011
【国際公開パンフレット】
2004529419.tif 000012
2004529419.tif 000013
2004529419.tif 000014
2004529419.tif 000015
2004529419.tif 000016
2004529419.tif 000017
2004529419.tif 000018
2004529419.tif 000019
2004529419.tif 000020
2004529419.tif 000021
2004529419.tif 000022
2004529419.tif 000023
2004529419.tif 000024
2004529419.tif 000025
2004529419.tif 000026
2004529419.tif 000027
2004529419.tif 000028
2004529419.tif 000029
2004529419.tif 000030
2004529419.tif 000031
2004529419.tif 000032
2004529419.tif 000033
2004529419.tif 000034
【手続補正書】
【提出日】平成15年1月15日(2003.1.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザマシーンにソフトウェアアプリケーションをロードするアプリケーション用のソフトウェアエンジにおいて、アプリケーションのコアサービスはユーザマシーンで動作するためにアプリケーションの開始を可能にするようにユーザマシーンへロードされ、エンジンが結果として、エンジンにより決定された優先順位にしたがってコアではないアプリケーションサービスをロードするソフトウェアエンジン。
【請求項２】
エンジンはコアサービスの一部であり、そのコアサービスと共にロードされる請求項２記載のソフトウェアエンジン。
【請求項３】
エンジンはコアサービスのローディングの完了時に動作を開始する請求項２記載のソフトウェアエンジン。
【請求項４】
優先順位はトップの優先順位を含んでおり、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザマシーンで必要とされる任意のコアではないアプリケーションサービスに与えられる請求項１記載のソフトウェアエンジン。
【請求項５】
コアではないサービスはエンジンにより制御される方法でロードされる請求項１記載のソフトウェアエンジン。
【請求項６】
制御はアプリケーションとのユーザの対話を考慮に入れる請求項５記載のソフトウェアエンジン。
【請求項７】
コアではないサービスをロードする前に、これらはエンジンで登録される請求項５記載のエンジン。
【請求項８】
エンジンはコアではないリクエストされたサービスをロードする前にコアではないサービスの登録リストをチェックする請求項７記載のソフトウェアエンジン。
【請求項９】
少なくともアプリケーションに対する１つのオブジェクトが記憶されることができるキャッシュが設けられる請求項１記載のソフトウェアエンジン。
【請求項１０】
エンジンはキャッシュされたオブジェクトの使用の追跡を維持するメモリ管理モジュールを含んでおり、メモリ管理モジュールは１以上のオブジェクトの割当てを解除することができる請求項９記載のソフトウェアエンジン。
【請求項１１】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項１０記載のソフトウェアエンジン。
【請求項１２】
少なくとも１つのオブジェクトが位置されるオブジェクトリポジトリと、オブジェクト記述とを含んでいる請求項９記載のソフトウェアエンジン。
【請求項１３】
オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項１２記載のソフトウェアエンジン。
【請求項１４】
１以上のオブジェクトの割当て解除は任意のタイムオフセットを含んでいる請求項１０記載のソフトウェアエンジン。
【請求項１５】
オブジェクトリポジトリのオブジェクトのオブジェクト記述が少なくともタイムオフセットに等しい時間に対してゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項１４記載のソフトウェアエンジン。
【請求項１６】
ローディングはインターネットにわたるダウンローディングである請求項１記載のソフトウェアエンジン。
【請求項１７】
ソフトウェアエンジンを使用してユーザマシーンへソフトウェアアプリケーションをロードする方法において、ユーザがアプリケーションと対話することを可能にするためにアプリケーションのコアサービスをユーザマシーンへロードし、エンジンにより決定された優先順位にしたがってアプリケーションのコアではないサービスをロードするステップを含んでいるロード方法。
【請求項１８】
エンジンはコアサービスの一部であり、そのコアサービスと共にロードされる請求項１７記載の方法。
【請求項１９】
エンジンはコアサービスのローディングの完了時に開始する請求項１８記載の方法。
【請求項２０】
コアではないサービスをロードする前に、これらはエンジンで登録される請求項１７記載の方法。
【請求項２１】
優先順位により、トップの優先順位が生成され、トップの優先順位はユーザによるアプリケーションとの対話の結果としてユーザマシーンで必要とされる任意のコアではないアプリケーションサービスに与えられる請求項１７記載の方法。
【請求項２２】
ユーザがアプリケーションと対話するとき、アプリケーションは少なくとも１つのコアではないサービスをロードするようにエンジンにリクエストし、エンジンは登録をチェックし、少なくとも１つのコアではないサービスにローディングのトップの優先順位を与える請求項２１記載の方法。
【請求項２３】
コアではないサービスのロードはエンジンにより制御される方法である請求項２１記載の方法。
【請求項２４】
制御はアプリケーションとのユーザの対話を考慮に入れている請求項２３記載の方法。
【請求項２５】
アプリケーションのオブジェクトは再使用のためにキャッシュに記憶可能である請求項１７記載の方法。
【請求項２６】
キャッシュされたオブジェクトは１以上のオブジェクトの割当てを解除することができるエンジンのメモリ管理モジュールを使用して追跡される請求項２５記載の方法。
【請求項２７】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項２６記載の方法。
【請求項２８】
オブジェクトはオブジェクト記述と共にキャッシュ中のオブジェクトリポジトリに位置される請求項２５記載の方法。
【請求項２９】
オブジェクト記述はオブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項２８記載の方法。
【請求項３０】
割当て解除は任意のタイムオフセットを含んでいる請求項２６記載の方法。
【請求項３１】
オブジェクトリポジトリのオブジェクト記述が少なくともタイムオフセットに等しい時間に対してゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項３０記載の方法。
【請求項３２】
ローディングはインターネットにわたるダウンローディングである請求項１７記載の方法。
【請求項３３】
キャッシュを含み、アプリケーションのオブジェクトは再使用のためにキャッシュ中に記憶されることが可能であるコンピュータメモリ管理システムをさらに含んでいる請求項１記載のソフトウェアエンジン。
【請求項３４】
キャッシュはアプリケーションがユーザマシーンに存在するときのみ動作可能である請求項３３記載のソフトウェアエンジン。
【請求項３５】
オブジェクトはオブジェクト記述と共にキャッシュのオブジェクトリポジトリ中に位置される請求項３３記載のソフトウェアエンジン。
【請求項３６】
オブジェクト記述は、オブジェクト基準、オブジェクトキー、基準カウンタ、タイムスタンプからなるグループから選択された１以上のものを含んでいる請求項３５記載のソフトウェアエンジン。
【請求項３７】
キャッシュされたオブジェクトは１以上のオブジェクトの割当てを解除することができるメモリ管理モジュールを使用して追跡される請求項３３記載のソフトウェアエンジン。
【請求項３８】
割当て解除は任意のタイムオフセットを含んでいる請求項３７記載のソフトウェアエンジン。
【請求項３９】
オブジェクトリポジトリのオブジェクト記述が少なくともタイムオフセットに等しい時間にわたってゼロに等しい基準カウンタを有するならば、対応するオブジェクト記述はオブジェクトリポジトリから除去される請求項３８記載のソフトウェアエンジン。
【国際調査報告】
2004529419.tif 000035
2004529419.tif 000036