(57)【特許請求の範囲】
【請求項１】
クライアント・サーバシステムに配置されるソフトウェア・アプリケーションによって使用される資源を管理する方法であって、前記方法は、サーバシステムからクライアント・コンピュータへ送られた資源管理プログラムによって実行され、
クライアント・コンピュータに実装される前記ソフトウェア・アプリケーションによって使用される資源を変更する要求を、前記クライアント・コンピュータからサーバシステムへ送るステップであって、前記要求は前記クライアント・コンピュータのユーザに関連づけられたユーザ識別子を含み、前記ソフトウェア・アプリケーションはツールバー・グラフィカルインタフェースおよび言語属性を有するステップ（ａ）と、
前記ソフトウェア・アプリケーションの前記言語属性を、前記ユーザ識別子に関連づけられた保存されたユーザ選好に従って変更するために必要とされる１つ以上の資源のグループを識別する選好パラメータを、前記サーバシステムから前記クライアント・コンピュータに受け取るステップ（ｂ）と、
前記クライアント・コンピュータにより、前記選好パラメータを使用して、前記必要とされる資源のグループの各資源が前記クライアント・コンピュータ上にローカルに格納されているか否かを判断するステップ（ｃ）と、
前記資源のグループを使用して前記ツールバー・グラフィカルインタフェースを実行時に変更し、前記ソフトウェア・アプリケーションの前記言語属性に対する変更を反映させるために、前記クライアント・コンピュータ上にローカルに格納されていない、必要とされる資源のグループからの資源を、前記サーバシステムから取得するステップ（ｄ）と
を備える方法。
【請求項２】
前記アプリケーションが前記資源のグループにアクセスすることを可能にするために、前記クライアント・コンピュータの前記資源管理プログラムによって、前記取得された必要とされる資源のグループのポインタを前記ソフトウェア・アプリケーションに渡すステップ（ｅ）
を更に備える請求項１に記載の方法。
【請求項３】
前記ステップ（ｅ）は、
前記ソフトウェア・アプリケーションによってエクスポーズされた機能を呼び出すステップと、
前記必要とされる資源のグループのポインタを前記ソフトウェア・アプリケーションによってエクスポーズされた機能へ引き数として渡すステップ
を含む請求項２に記載の方法。
【請求項４】
前記クライアント・コンピュータの前記資源管理プログラムによって、前記クライアント・コンピュータ上でユーザ・インタフェースを生成するステップ（ｆ）
を更に備える請求項２に記載の方法。
【請求項５】
前記ステップ（ｆ）は、
前記ソフトウェア・アプリケーションを前記資源のグループにリンクするステップと、
前記資源のグループから前記クライアント・コンピュータのメモリに文字列とイメージデータをロードするステップと、
前記文字列とイメージデータを利用してユーザ・インタフェースを生成するステップとを有する請求項４に記載の方法。
【請求項６】
前記クライアント・コンピュータのメモリ空間に前記必要とされる資源のグループを格納するステップ（ｅ）と、
前記アプリケーションが前記資源のグループにアクセスすることを可能にするために、前記クライアント・コンピュータの前記資源管理プログラムによって、前記必要とされる資源のグループのポインタを前記ソフトウェア・アプリケーションへ渡すステップ（ｆ）と
を更に備える請求項１に記載の方法。
【請求項７】
前記クライアント・コンピュータの前記資源管理プログラムによって、前記必要とされる資源のグループの前記資源を使用する前記クライアント・コンピュータ上にユーザ・インタフェースを生成するステップ（ｇ）を更に備える請求項６に記載の方法。
【請求項８】
前記ソフトウェア・アプリケーションが、ユーザの所望の地域を示す特性を示し、
前記選好パラメータは、前記要求に適応するために必要とされる地域特有の資源のグループに関連付けられている、請求項７に記載の方法。
【請求項９】
クライアント・コンピュータ上に格納されたソフトウェア・アプリケーションのユーザ・インタフェースをカスタマイズするように構成されたクライアント・コンピュータであって、前記ソフトウェア・アプリケーションはツールバー・グラフィカルインタフェースおよび言語属性を有し、
前記クライアント・コンピュータは、ソフトウェアで実行される資源管理プログラムで動作するプロセッサーを備え、
前記資源管理プログラムは、
前記ソフトウェア・アプリケーションの前記言語属性を、前記クライアント・コンピュータのユーザに関連づけられたユーザ識別子に関連づけられた保存されたユーザ選好に従って変更するために必要とされる１つ以上の資源のグループを識別する選好パラメータを、通信リンクを介して前記クライアント・コンピュータに接続されたサーバシステムから受け取り、
前記選好パラメータに関連づけられた、前記必要とされる１つ以上の資源のグループが前記クライアント・コンピュータ上に格納されているか否かを判断し、
前記資源のグループを使用して前記ツールバー・グラフィカルインタフェースを実行時に変更し、前記ソフトウェア・アプリケーションの前記言語属性に対する変更を反映させるために、前記必要とされる資源のグループを利用して、前記ソフトウェア・アプリケーションが前記ソフトウェア・アプリケーションのユーザ・インタフェースを生成できるように、前記クライアント・コンピュータ上にローカルに格納されていない前記必要とされる資源のグループの資源を前記サーバシステムから取得する
ことを特徴とするクライアント・コンピュータ。
【請求項１０】
前記クライアント・コンピュータは、ユーザから生じた選好変更の要求に応じて、前記サーバシステムから前記選好パラメータを受け取る請求項９に記載のクライアント・コンピュータ。
【請求項１１】
前記選好は地域の設定である請求項１０に記載のクライアント・コンピュータ。
【請求項１２】
前記選好は言語の設定である請求項１０に記載のクライアント・コンピュータ。
【請求項１３】
前記ユーザ・インタフェースの前記生成はさらに、前記ソフトウェア・アプリケーションによってエクスポーズされた機能を呼び出し、前記必要とされる資源のグループのポインタを、前記ソフトウェア・アプリケーションによってエクスポーズされた機能に引き数として渡し、これにより、前記ソフトウェア・アプリケーションが、前記必要とされる資源のグループにリンクし、前記資源のグループから前記クライアント・コンピュータのメモリに文字列およびイメージデータをロードし、さらに前記文字列とイメージデータを利用して前記カスタマイズされたユーザ・インタフェースを生成することが可能になる請求項９に記載のクライアント・コンピュータ。
【請求項１４】
前記ソフトウェア・アプリケーションはブラウザー・アプリケーションであり、
前記ブラウザー・アプリケーションは前記ツールバー・グラフィカルインタフェースを有し、
前記要求は、前記ツールバー・グラフィカルインタフェースの言語属性を変更する要求である、請求項１に記載の方法。
【請求項１５】
前記ソフトウェア・アプリケーションはブラウザー・アプリケーションであり、
前記サーバシステムは、前記ブラウザー・アプリケーションにウェブサイトを提供するように構成され、
前記方法は、前記サーバシステム上のユーザプロファイル・データベースを維持するステップをさらに有し、
前記ユーザプロファイル・データベースは、少なくとも１つのカスタマイズ可能なオプションを含み、
前記ステップ（ａ）は、前記カスタマイズ可能なオプションを前記ユーザが変更することを許可するステップを含む、請求項３に記載の方法。
【請求項１６】
前記要求は、ユーザ・インタフェースのために前記言語属性を変更する要求であり、
前記選好パラメータは、ユーザ・インタフェース選好を識別する、請求項１に記載の方法。
【請求項１７】
前記資源管理プログラムは資源を資源固有の資源識別子へ関連付けるＩＤマップのライブラリを有し、
前記方法は、前記クライアント・コンピュータの前記資源管理プログラムによって、前記選好パラメータに関連づけられた資源識別子を前記ＩＤマップから取り込むステップをさらに有する、請求項１６に記載の方法。
【請求項１８】
前記資源は、言語に特有な資源であり、
言語に特有なユーザ・インタフェースを前記ソフトウェア・アプリケーションが生成する、請求項４に記載の方法。
【請求項１９】
前記ステップ（ｂ）は、前記選好パラメータを受け取る前に、
前記サーバシステム内のユーザプロファイル・データベースにアクセスするステップと、
前記ユーザプロファイル・データベースに格納されている言語設定を変更するステップと、
前記変更された言語設定に基づいて、前記選好パラメータを設定するステップと
を有する請求項１８に記載の方法。
【請求項２０】
前記ステップ（ｂ）は、前記選好パラメータを受け取る前に、
前記サーバシステム内のユーザプロファイル・データベースに格納されている言語設定に関連づけられた利用者識別子を使用して、前記サーバシステムにログオンするステップと、
前記格納されている言語設定に基づいて前記選好パラメータを設定するステップと
を有する請求項１８に記載の方法。
【請求項２１】
前記ステップ（ｇ）は、
前記言語に特有な資源へのポインタを前記ソフトウェア・アプリケーションに渡すステップと、
前記言語に特有な資源に前記ソフトウェア・アプリケーションをリンクするステップと、
前記資源のグループから前記クライアント・コンピュータのメモリに文字列とイメージデータをロードするステップと、
前記文字列及びイメージデータを使用して、前記言語に特有なユーザ・インタフェースを生成するステップと
を有する請求項１８に記載の方法。
【請求項２２】
前記ステップ（ｂ）は、前記クライアント・コンピュータ上の前記資源管理プログラムが前記選好パラメータを受け取るステップをさらに有する、請求項１８に記載の方法。
【請求項２３】
前記資源管理プログラムは、前記ソフトウェア・アプリケーションと一体化している、請求項２２に記載の方法。
【請求項２４】
前記資源管理プログラムは、前記ソフトウェア・アプリケーションと分離している、請求項２２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション・プログラムの資源を管理する方法およびシステムに関する。特に本発明は、コンピュータに格納された少なくとも１つのアプリケーションの資源を動的に管理し、少なくとも１つのアプリケーションの操作およびインタフェースのカスタマイズをユーザ選好の変更に応じて許容する方法およびシステムに関する。
【０００２】
【従来の技術】
一般にソフトウェア・アプリケーションは多くのファイルで構成され、その全てのファイルはアプリケーションの全体の機能性とユーザ・インタフェースを提供するために連携して機能する。アプリケーションは、実行可能プログラム、スクリプトおよび（または）ダイナミックリンクライブラリ（ＤＬＬ）等のライブラリ、あるいはこれらの任意の組合せであり、アプリケーションの機能性およびインタフェース特性を支える資源と共に供給されてもよい。
【０００３】
現在、アプリケーションの機能の１つ以上を提供するために、実行可能なコードおよび（または）データのライブラリであるＤＬＬが、プログラマによって一般に使用されている。アプリケーションは、当該アプリケーションと共にしばしば配布されるＤＬＬに動的にリンクする。ある場合には、ＤＬＬは複数のアプリケーション間で共有されてもよく、あるいはオペレーティング・システムによって利用可能になってもよい。
【０００４】
したがって、ＤＬＬ、およびＤＬＬにリンクするようにプログラムされるアプリケーション・コードはいずれも、適切に機能するために、アプリケーション実行時のコンピュータ上に存在しなければならない。ここに使用されるように、用語「資源」あるいは「複数資源」はその通常の意味に従って使用され、文字列および（または）アプリケーションによって処理されたイメージデータを含んでいるライブラリを一般に指す。例えば、それらは、ユーザ・インタフェースの一部を生成するために必要なものである。
【０００５】
アプリケーションの資源は、例えば１つ以上のＤＬＬ、テキストファイル、実行可能プログラム、あるいはあらゆるタイプのデータ・ファイルに包含されてもよい。しかしながら、インターネットおよび（または）ワールドワイド・ウェブ（「ウェブ」）などグローバルな通信ネットワークの出現により、ますます、コンピュータ・アプリケーションの世界的な配信が著しく増加した。ウェブ・ベースのアプリケーション・プロバイダは、電子ファイル転送プロトコルを用いて、様々な国のユーザへアプリケーションを配信することができる。確かに、これらのアプリケーションには、追加の資源を必要とする更新とパッチが必要になる。
【０００６】
さらに、ユーザはアプリケーションの操作に関する異なった好みを有するようになりうる。現在、実行可能プログラム、アクティブＸコントロール等のアプリケーションは、アプリケーションが処理されるクライアント・コンピュータにダウンロードされる。しかしながら多くの場合、アプリケーションは、株式相場、ニュース、及び電子メールなどの情報あるいはコンテンツを取り込むためにインターネットあるいは他の通信ネットワークにアクセスする。そのような「ウェブ・ベースの」アプリケーションは、情報を遠隔のデータベースからリアルタイムあるいはほぼリアルタイムに抽出し表示する能力を持つことによる多様な機能のおかげで普及した。
【０００７】
そのようなウェブ・ベースのアプリケーションを望むユーザは、一般に、オンライン・アプリケーション／コンテンツ・プロバイダに登録し、典型的にクライアント・コンピュータと呼ばれるユーザのコンピュータにアプリケーションをダウンロードする。登録処理中に、ユーザは、アプリケーションの操作およびインタフェースをカスタマイズできるように個人の情報あるいは好みを入力するように要求される場合がある。例えば、異なる国々のユーザは、アプリケーションがグラフィカルユーザインタフェース（ＧＵＩ）を生成しユーザと通信するためにどの言語（つまり英語、ドイツ語、フランス語など）を使用するかについての好みを持っているかもしれない。
【０００８】
実際、多くの場合で、各々ある類似しているカスタマイズ可能な側面を持ちうる一連のアプリケーションをユーザはダウンロードするかもしれない。更に、これらのアプリケーションは同じ資源を利用するかもしれないし、同様の更新に順応するかもしれない。このような資源を管理するための、そしてアプリケーションの操作およびインタフェースのカスタマイズを可能にするための現在知られた方法及びシステムは、欠点を有している。
【０００９】
例えば、既知のプログラミング方法は、アプリケーションを再開することなしに、既存の資源を有効に更新又はパッチしたり、最初からアプリケーションに組み込まれていない新しい資源を統合することができない。したがって、これらの方法及びシステムは、異なるユーザの好みに対するアプリケーションをカスタマイズを満足に可能にしない。
【００１０】
さらに、既知の方法およびシステムでは、アプリケーション／コンテンツ・プロバイは、効率的に単一の国際的なアプリケーションを配信することができない。ある既知の方法およびシステムは、アプリケーションをカスタマイズするための資源がアプリケーション自体に組み込まれて（あるいはハードコード化されて）各々のコピーと共に配信されることを必要とする。しかしながらこの方法は、あいにくアプリケーションのサイズを増加させてしまい、ダウンロード及びインストールの時点でアプリケーションに組み入れられなかった資源を処理できない。
【００１１】
これらのウェブ・ベースのアプリケーションは一般にリモートサーバからファイル転送プロトコル（ＦＴＰ）を利用してダウンロードされるので、増加したファイルサイズはファイル転送性能に悪影響を及ぼす。また、この増加した時間要素は、必要なネットワーク・オーバーヘッドを増加させることに加え、それをダウンロードするユーザにとって障害となり得る。
【００１２】
別の既知の方法は、個々の特定の好みのサポートを備えたアプリケーションの個別のバージョンの開発を要求する。例えば言語選好の場合には、開発者は、アプリケーションが配信されるすべての地域に個別のバージョンを供給できる。しかしながら、多数のバージョンを維持することは、多大な時間を必要とし、開発者とユーザへのコスト増加につながる。
【００１３】
さらに、別の既知の解決法は、ユーザのインターネット・ブラウザー内で実行される、クライアント側スクリプト又はサーバ側ソフトウェア・アプリケーションを構築することである。使用の際は、ユーザの特定の選好に対応する、記述された(scripted)アプリケーションのバージョンだけがダウンロードされる。選好の変更は、記述されたアプリケーションの個別のバージョンのダウンロードを促す。
【００１４】
しかしながら、そのような記述されたアプリケーションは、例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔのように、スクリプトを書く言語の機能性および拡張性によって制限され、しばしば動作及びシステム機能へのアクセスにおいて、完全なアプリケーション言語と同等の速度を有しない。ユーザに対する処理能力を有効にすると、選好変更が要求される度に、記述されたアプリケーションをクライアント・コンピュータにダウンロードしなければならないので、記述されたアプリケーションあるいはサーバ側アプリケーションの性能に悪影響を及ぼすことにもなり得る。
【００１５】
結局、サーバ側アプリケーションは、物理的なサーバ空間、メモリ、および処理パワーに対する制限により拡張性を制限される。したがって、１つ以上のアプリケーションの資源をより効率的に管理する方法およびシステムの提供に対する要望及び満たされないニーズがある。
【００１６】
さらに望まれながらも満たされていないニーズは、実行時に機能して、有効に維持され得るアプリケーション資源のカスタマイゼーションを可能にすることである。更に、アプリケーションをコンパクトに保ちつつその有効性を維持する一方で、更新、パッチ、およびアプリケーション資源へ統合されるさらなるカスタマイズ可能なオプションを実現するシステム及び方法を提供することは、望まれながらも満たされていないニーズである。
【００１７】
【発明が解決しようとする課題】
そこで本発明は、上記の課題を解決することのできるアプリケーション・プログラムの資源を管理する方法およびシステムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組合せにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【００１８】
【課題を解決するための手段】
本発明の目的は、従来技術の課題を解決するシステムおよび方法を提供することである。
【００１９】
特に、アプリケーションの資源を動的に管理し利用者選好の変化に応じてウェブ・ベースのアプリケーションの動作およびインタフェースをカスタマイズするシステム及び方法が提供される。
【００２０】
本発明によれば、資源管理プログラムは、資源がクライアント・コンピュータ上にローカルに格納されない場合にサーバからそれらの資源を取得するために、およびそのような資源を求める要求に応じて、固有の資源識別子によって資源を識別するようにプログラムされる。いったん取得されると、資源管理プログラムは資源をアプリケーションへ渡す。
【００２１】
一般に「プル」型と呼ばれる１つの有利な実施例において、資源を処理し、かつ資源管理プログラムからその資源あるいは資源グループを要請する要求をアプリケーションは認識する。資源管理プログラムは次に、資源の入手可能性を判断し、それがローカルで利用不可能な場合、サーバシステムからそれを取得する。
【００２２】
一般に「プッシュ」型と呼ばれる別の有利な実施例では、サーバシステムは選好変更要求を受け取り、また資源管理プログラムは、サーバシステムとの次の通信で、選好変更に関連づけた選好パラメータを受け取る。
【００２３】
その後、対応する資源がローカルに格納されているかどうか判断するために、資源管理プログラムはその資源識別子のマップの中を調べる。１つ以上の資源がローカルに格納されていない場合、資源管理プログラムは、サーバシステムから、選好パラメータに対応する資源のグループ全体と、特定の不足している資源とのいずれかを取得する。
【００２４】
一方、資源管理プログラムはローカルに格納された資源をアプリケーションへ渡す。その後、資源管理プログラムは、サーバシステムから取得されたすべての資源を必要に応じてアプリケーションに渡す。
【００２５】
ここで使用される用語「アプリケーション」は、クライアント・サーバアーキテクチャーのクライアント側に置かれたコンピュータによって実質的に実行されるソフトウェア・プログラムを一般に指す。用語「ウェブ・ベースのアプリケーション」は、動作用のデータを少なくとも部分的に遠隔サーバから引き出すアプリケーション、及びクライアントから遠隔の、サーバの場所、あるいはクライアントが接続されるネットワーク中の１ヶ所以上の場所における遠隔サーバあるいは他のコンピューティングまたは格納デバイスからのデータを受け取ることができるアプリケーションを一般に指す。
【００２６】
そのようなアプリケーションは、本発明の目的ために、従来技術において既知のあらゆるプログラミング言語でコード化されていてもよい。さらに、アプリケーションは、従来技術において既知のあらゆる方法、例えばファイル・ダウンロード、電子メール、あるいは相互に接続された装置のネットワークを使用してデータを転送する他のファイル転送プロトコルによってクライアント側に配信されてもよい。
【００２７】
更に、そのようなアプリケーションは、コンパクトディスク、フロッピー（登録商標）ディスク、テープなど、あらゆる従来技術で認識された装置読み取り可能な記憶媒体上に配信されてもよい。本発明は、アプリケーションの特定の状況を処理するために必要な資源がアプリケーションの実行時にクライアント・コンピュータ上に存在するかどうか判断するためにクライアント・コンピュータ上に格納された資源管理プログラムを利用する。使用に際して、対象アプリケーションがクライアント・コンピュータに最初にダウンロードされる場合、資源管理プログラムもダウンロードされ、クライアント・コンピュータ上に格納される。
【００２８】
資源管理プログラムはアプリケーションの不可欠（integral）な部分かもしれないし、あるいは「イン・プロセス」コンポーネント・オブジェクト・モデル（「ＣＯＭ」）サーバ（ＤＬＬ）又は「アウト・オブ・プロセス」ＣＯＭサーバ（.ｅｘｅ）のように独自のライブラリとして独立しているかもしれない。しかしながら、それぞれの場合において、ダウンロードされたアプリケーションは、資源管理プログラムと共に動作して、その動作用に必要な資源が同様にダウンロードされたか、さもなくば、クライアント・コンピュータ上に存在しているか否かを判断するようにプログラムされる。
【００２９】
本発明によれば、全体として、資源管理プログラムは、資源を固有の資源識別子へ関連づけるＩＤマップのライブラリを含んでいる。資源識別子は、例えば資源グループＩＤ、リソースＩＤ、日付ＩＤ、バージョンＩＤ等、またはこれらの任意の組合せを含む英数字コードであってもよい。１つの有利な実施例では、サーバシステムは、クライアント・コンピュータからネットワーク経由で選好変更の要求を受け取る。要求に基づいて、サーバシステムは要求に適応するために必要な資源を判断する。
【００３０】
次に、サーバシステムはネットワーク経由で資源管理プログラムに選好パラメータを通知する。代わりに、サーバシステムとの次の通信を備えた資源管理プログラムは、選好変更に関連づけられた選好パラメータをサーバシステムから取得する。資源管理プログラムは、グループ識別子に関連づけられた資源がクライアント・コンピュータ上に格納されているか否かを判断するために選好パラメータを利用する。
【００３１】
資源グループの各資源がクライアント・コンピュータ上で発見される場合、資源管理プログラムは、クライアント・コンピュータの処理メモリに資源をロードし、資源をアプリケーションへ渡す。１つ以上の資源がクライアント・システム上で見つからない場合、資源管理プログラムは、サーバシステムから全資源グループ及びその特定の資源のいずれかを資源の固有の識別子を使用して取得する。代わりに、そのアプリケーションは、資源または資源グループの要求を認識し、かつ資源を取得する資源管理プログラムに通知するようにプログラム可能である。
【００３２】
本実施例では、グループのうちの１つだけが必要な場合に、アプリケーションは、特定の言語、地域あるいは選好（例えば言語、地域など）に対応付けられた固有のグループＩＤ、あるいは固有のリソースＩＤを識別できる。本発明の利点は、資源の新バージョンが作成されるか、新しい地域がサポートされるとともに、アプリケーション・プロバイダがこれらの追加の資源を必要に応じて資源管理プログラムに配信できることである。
【００３３】
例えば、ウェブ・ベースのアプリケーションに追加の資源を提供するアプリケーション・プロバイダは、追加の資源をクライアント・コンピュータにダウンロード可能な状態にしてもよい。いったん資源管理プログラムによって取得されると、資源は、管理プログラムのメモリ空間あるいはクライアント・コンピュータにおけるアプリケーションのメモリ空間のいずれかに格納されることが望ましい。しかしながら、資源はサーバシステム上に格納され、必要に応じてクライアント・コンピュータのメモリに一時的にロードされてもよい。
【００３４】
本発明は、アプリケーション・ユーザおよびアプリケーション供給者の両方に利益をもたらす。アプリケーション供給者にとっては、新しい資源あるいは資源のバージョンは、アプリケーションの完全に新たなバージョンをリリースする必要なく、既存のアプリケーションに組み込むことが可能である。さらに、ウェブ・ベースのアプリケーションの場合には、新しい資源が利用可能である旨をサーバシステムから管理プログラムに通知することができる、そのために、ユーザの利用を邪魔することなくクライアント・コンピュータに新しい資源をダウンロードすることができる。
【００３５】
アプリケーションは、追加の資源について通知を受けるか、あるいは追加の資源がいつ必要かを管理プログラムに問い合わせることを知っているので、実行時に再起動することなくシームレスにカスタマイズできる。アプリケーション用の資源は本質的にデータのライブラリなので、資源はアプリケーションのカスタマイズ可能な特徴にしばしば対応付けられる。
【００３６】
管理プログラムは、アプリケーション・プロバイダが、特定のカスタマイズ可能なオプションに関する資源一式をリモートサーバに格納することを有利に可能にする。管理プログラムを利用することにより、アプリケーション・プロバイダは、ユーザに一定のカスタマイズ可能な選好設定を選ばせることができる。動作において、ユーザは特定の選好設定、例えばユーザ・インタフェースを生成するために使用する言語等の変更を要求してもよい。
【００３７】
要求に応じて、アプリケーションは、上述のように、新しい言語でユーザ・インタフェースを生成するために必要な資源がクライアント・コンピュータにダウンロードされたかどうかを判断する。ダウウンロードされていない場合、アプリケーションは実施される形態に応じて、追加の資源が必要であることを資源管理プログラムに通知するか（すなわち、資源管理プログラムのエクスポーズ（ｅｘｐｏｓｅｄ) 機能を呼び出す）、あるいは資源管理プログラムからの通知を待つ。資源管理プログラムは次に、ウェブ対応のアプリケーション例において、遠隔サーバから必要な資源を取得する。
【００３８】
さらに管理プログラムは、詳細な説明において図面に対応付けて更に描写したように、同じクライアント・コンピュータの追加ユーザがアプリケーションおよびユーザ・インタフェースを彼らの特定の好みにカスタマイズすることを可能にする。更に、カスタマイズ性能を提供するのに必要な資源のすべてをハードコード（ｈａｒｄ−ｃｏｄｅ)する必要がないのでアプリケーションがスリム化され、これによりユーザはダウンロード時間およびディスクスペースを節約し、アプリケーションの再起動の必要性を回避する。
【００３９】
本発明の別の実施例では、資源管理プログラムは、クライアント・コンピュータ上に格納された複数のアプリケーションのための資源を管理する。本実施例によれば、複数のアプリケーションのための資源を管理する方法は概して、資源の識別子のマッピング、アプリケーションをカスタマイズする要求のサーバシステムへの受付、クライアント・コンピュータ上に格納された資源管理プログラムへの識別子の通信、識別子に関連づけられた資源がクライアント・コンピュータ上に格納されているか否かの判断、及び、資源がクライアント・コンピュータ上に格納されていない場合の資源の取得を備える。
【００４０】
次に、資源を共有するそれぞれのアプリケーションは、資源の利用可能性（つまり特定のアプリケーションによるリンクのアクセス可能性）についての通知を受ける。さらに、１つ以上のアプリケーションの資源を管理するためのクライアント・サーバシステムは概して、１つ以上のアプリケーションと共に利用される複数の資源を格納した記憶装置を有するサーバシステムと、１つ以上のアプリケーションおよび管理プログラムを格納したクライアント・コンピュータとを備える。
【００４１】
クライアント・コンピュータは管理プログラムと相互に機能し合い、アプリケーション・モジュールがクライアント・コンピュータにダウンロードされる場合に、アプリケーション・モジュールを管理プログラムと共に登録する。本発明の他の目的および特徴は、添附図面を用いた以下の詳細な説明から明らかである。
【００４２】
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【００４３】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。また、図面は単なる一例であり、図中用いられる同一の参照符号は、複数の図に渡って同じ要素を示す。
【００４４】
本発明によれば、１つ以上のアプリケーション用の資源を管理するシステム及び方法が提供される。本発明は、動作中に１つ以上のアプリケーションの資源が更新、補完、またはパッチされることを可能にする。更に、本発明は、追加の資源がダウンロード及び１つ以上のアプリケーションからアクセスされることを有利に可能にし、これにより、パッケージアプリケーションの国際化を可能にする。
【００４５】
概ね図１から１０を参照し、本発明に用いられる資源管理プログラム７５は、アプリケーション７０の操作のコードの配信の前後あるいは同時に提供される。好ましくは、アプリケーション７０がロードされるか、クライアント・コンピュータ５０にダウンロードされる時に、資源管理プログラム７５もクライアント・コンピュータ５０にロードされる。
【００４６】
あるいは、資源管理プログラム７５は、アプリケーション７０の内部に不可欠な部分としてハードコード（ｈａｒｄ−ｃｏｄｅｄ）されてもよい。したがって、更に説明するように、管理プログラム７５は独立型プログラムであってもよいし、あるいはアプリケーション７０内に統合されてもよい。既に定義したように、用語「資源」は文字列およびイメージデータを含んでいるライブラリを一般に指し、例えば、アプリケーションのユーザ・インタフェースを生成するためにアプリケーション７０によって処理される。動作中、アプリケーションは、アプリケーション７０を処理するために、必要に応じて静的又は動的に資源７２にリンクする。
【００４７】
ここで図１は、本発明を利用したシステムアーキテクチャーの有利な一実施例の全体図を示す。アプリケーション／コンテンツ・プロバイダのサーバシステム１０は、公知のネットワークインターフェイスを介してグローバル通信ネットワーク１００に接続される。複数のクライアント・コンピュータ５０はネットワーク１００を介してサーバシステム１０に相互接続される。サーバシステム１０は、ネットワークを経由してクライアント・コンピュータ５０に配信されたコンテンツおよびデータを格納するために、１つ以上の記憶装置１５、２０を有する。サーバシステム１０はさらに、インテル・ペンティアム（登録商標）ＩＩＩゼノンプロセッサー等のプロセッサー、メモリ（ＲＡＭ、ＲＯＭ）、クロック、及び従来技術（図示せず）で公知のサーバシステムに一般に含まれる他のコンポーネントを有する。
【００４８】
記憶装置１５、２０はあらゆる公知の装置読み取り可能な記憶媒体である。あるいは、限定を伴わない例として、ハードディスク、光学ドライブ、又はテープドライブように従来公知の媒体である。サーバシステム１０の特定の構成は本発明に重要ではない。したがって、サーバシステム１０は詳細に表現しない。ネットワーク１００は好ましくはインターネットである。しかしながら当業者であれば、ネットワークはデータ通信が可能な既知あるいは今後知られるあらゆる通信ネットワーク、例えばイントラネット、ローカルエリアネットワーク、広域ネットワーク、あるいは２点間接続プロトコル（ＰＰＰ）、無線アプリケーション・プロトコル（ＷＡＰ）、および同種のものを使用する他のネットワークであってもよいと認識されるであろう。
【００４９】
図２を更に参照して、本発明に係るクライアント・コンピュータ５０の内部構成が示される。クライアント・コンピュータ５０は、オペレーティング・システムを備え、そして好ましくはマイクロソフト・インターネット・エクスプローラまたはネットスケープ・ナビゲーターのようなブラウザーを実行するあらゆタイプのパーソナル・コンピュータ又はネットワーク・コンピュータである。クライアント・コンピュータ５０は通常、サーバシステム１０からアプリケーション７０をダウンロードするためにネットワーク１００にアクセスする。その後、アプリケーション７０はクライアント・コンピュータ５０上に格納され処理される。
【００５０】
クライアント・コンピュータ５０は、クライアント・コンピュータ５０の様々なコンポーネント間のデータの通信を促進し、さらにクライアント・コンピュータ５０と外部の装置およびシステムとの間のネットワークインターフェイス６８を介した通信を促進する、内部バス６４を有する。プロセッサー６６は、クライアント・コンピュータ５０内において、アプリケーション・プログラムを含むデータを処理するためにバス６４につながれる。
【００５１】
クライアント・コンピュータ５０はさらに、プロセッサー６６によって通知された命令を受信及び格納するためにバス６４につながれた主記憶６０、例えばＲＡＭ又は他の等価なダイナミックメモリ記憶装置を有する。プロセッサーによる使用に備えて静的データと命令とを格納するために、読み出し専用メモリ（ＲＯＭ）もバス６４に連結される。
【００５２】
様々な入出力装置５４、５６、５８は、クライアント・コンピュータ５０と共に提供され、限定しない例として、ディスプレイ５４（例えば陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など）、および入力装置５６（例えばキーボード、マウス、タッチパッド、またはライトペン）が挙げられる。例えば磁気ディスク装置および磁気ディスク、ＣＤ−ＲＯＭドライブおよびＣＤ−ＲＯＭ、ＤＶＤあるいは他の同等品のような二次記憶装置５８は、プロセッサー６６、主記憶６０およびネットワークインターフェイス６８との通信のためにバス６８につながれる。特定のハードウェア・コンビネーション／構成は本発明に重要でなく、設計の問題として、ここに教示された機能パラメータの範囲内で変更されてもよい。
【００５３】
再び図１を参照すると、ユーザ（図示せず）は、一般にクライアント・コンピュータ５０を利用してネットワーク１００にアクセスする。上述のように、ネットワーク１００はインターネットに限定されることは無いが、本発明はワールドワイド・ウェブ又はインターネットの利用に関して記述される。クライアント・コンピュータ５０はネットワークインターフェイス６５を介した伝送媒体、限定しない例として同軸ケーブル、銅線あるいは光ファイバーケーブルを経由して、ネットワーク１００に接続する。クライアント・コンピュータ５０とネットワーク１００の間の通信は、さらにワイヤレス、衛星あるいは携帯電話インタフェースを経由してもよい。
【００５４】
ネットワークインターフェイス６８は、クライアント・コンピュータ５０と、コンテンツ／アプリケーション・プロバイダ（図示せず）によって提供されるサーバシステム１０との間の双方向通信を利用可能にする。コンテンツと情報は、ネットワーク１００を経由してクライアント・コンピュータ５０にダウンロードされる。この場合、例えばＨＴＭＬ、ＤＨＴＭＬ、ＸＭＬ、スクリプト言語等のような、様々な既知のフォーマットのハイパーテキスト転送プロトコル（ＨＴＴＰ）が利用される。
【００５５】
ブラウザー・アプリケーションはクライアント・コンピュータ５０上に格納され、サーバシステム１０からダウンロードされたコードを解釈して、ユーザが対話に用いるＧＵＩを生成するようにプログラムされる。限定しない例として、アプリケーション７０および関連資源７２は、好ましくは既知のハイパーテキスト転送プロトコル（ＨＴＴＰ）を利用してダウンロードされる。いったんダウンロードされると、アプリケーション７０はユーザによって立ち上げられる。あるいは、アプリケーション７０は自己解凍及び自己実行型であってもよい。
【００５６】
以下に説明するように、資源７２は、アプリケーション７０が必要な時に利用可能なように、クライアント・コンピュータ５０上に格納される。アプリケーション７０の資源７２を管理する方法は図３を参照し、本発明の実施例に従って表現される、そして３００として通常指定される。ステップ３０２において、ユーザがクライアント・コンピュータ５０をネットワーク１００経由でアプリケーション・プロバイダのサーバシステム１０にリンクさせた後、ユーザはプロバイダのサーバシステム１０からアプリケーション７０をダウンロードする。アプリケーション７０は、アプリケーション７０の不可欠な部分として、あるいは独立のコンポーネントとして提供される資源管理プログラム７５と共にダウンロードされる。
【００５７】
ダウンロードが完了すると、アプリケーション７０及び資源管理プログラム７５は、ステップ３０４において、手動でのインストール・プログラムの立ち上げにより、あるいは自動の自己実行型ファイルの立ち上げによりインストールされる。資源管理プログラム７５はクライアント・コンピュータ５０上の、資源管理プログラム７５の動作のために確保されたメモリ空間中に、ローカルに格納されることが望ましい。資源管理プログラム７５は、イン・プロセスＣＯＭサーバ（例えばＤＬＬ）又はアウト・オブ・プロセスＣＯＭサーバ（例えばＥＸＥ）のような動的ライブラリであることが望ましい。
【００５８】
上述のように、資源管理プログラム７５はアプリケーション７０内に統合されてもよい。いずれの場合も、資源管理プログラム７５は、クライアント・コンピュータ５０にダウンロードされ、アプリケーション７０に関連する資源７２ごとの固有の識別子を識別し、マップし、かつ格納するようにプログラムされる。要するに、資源管理プログラム７５は、固有の識別子の資源７２への関連のマップを確保する。上述のように、有利な一実施例において、資源管理プログラム７５は、ステップ３０６で、アプリケーション７０と共にダウンロードされる資源７２ごとの固有の識別子のマップを確保する。このようにして、資源管理プログラム７５はアプリケーション７０に利用可能なすべての資源７２をいつでも識別することができる。
【００５９】
ステップ３０８でさらに記載されるように、入力を促されることにより、資源管理プログラム７５はステップ３１０において、資源７２を取得し、アプリケーション７０が必要に応じて資源７２にリンクできるように、資源７２へのポインタを含んだ通知メッセージをアプリケーション７０に送信する。固有の識別子は、例えばソフトウェア識別子および固有の数値の組合せのように、固有の文字、数字、あるいは管理プログラム７５によって読み取り可能な他のデータの列としてフォーマットされる。限定しない一例として、固有の識別子は様々なレベルの識別子、例えば局地的識別子、グループ識別子および独自の資源識別子を含む。固有の識別子が更に日付およびバージョン識別子の少なくともいずれかを含むことにより、資源管理プログラム７５は資源７２の最新バージョンを識別できる。
【００６０】
一方で、単一の固有の識別子は、資源７２を特定の地域、言語あるいはグループと同一であるとして識別するのに必要なコードを含み、各々の資源７２に割り当てられことができる。ここで使用されるように、用語「要求」は、資源識別子の通信および他のタイプの通信を可能にするためにクライアント・コンピュータ５０とサーバシステム１０との間でネットワーク１００を介して送信されるメッセージまたはデータを指す。
【００６１】
ここで資源に動的にリンクする過程を説明する。有利な一実施例において、上述のように資源７２を取得した場合に、資源管理プログラム７５は機能をアプリケーション７０によってエクスポーズされた機能を呼び出し、アプリケーション７０に引数として資源７２を渡す。
【００６２】
当業者は、リンク手順が、限定せずにポインタ、アドレス等の利用を含む多くの方法で行なわれてもよいことを認識するであろう。そのため、アプリケーション７０は、資源管理プログラム７５から追加の資源７２が利用可能であるという通知を受け取るようにプログラムされる。
【００６３】
追加の資源７２が必要な状態（すなわち、特定の選好設定に対応したユーザ・インタフェースを生成するために資源が必要な状態）では、アプリケーション７０は、上述のように、資源７２にリンクするので、資源７２内に含まれている文字列およびイメージデータはアプリケーション７０によってアクセス及び利用が可能である。ダウンロード及び通知の手順は、通常比較的短いので、資源７２は実質的にダウンロードされた直後にアクセス可能になる。このように本発明によれば、アプリケーション７０は、実質的にリアルタイムに更新あるいはカスタマイズされることが可能である。
【００６４】
更に、アプリケーション７０は、資源管理プログラム７５から通知を受け取る（あるいは新しい資源７２の管理プログラムに、アプリケーション７０がその資源７２を求めていつ促されるかを確認する）ようにプログラムされるので、新しい資源７２が利用可能になったことに応じてアプリケーション７０を再実行する必要がない。したがって、資源７２はアプリケーション７０の実行中に利用可能である。
【００６５】
ここで、図４を参照して、さらに別の有利な実施例において、アプリケーション７０は、資源管理プログラム７５によってエクスポーズされた機能を呼び出して資源７２を取得する。この取得に際して、資源管理プログラム７５はアプリケーション７０に資源７２を返す。アプリケーション７０は、ステップ４０２でのように、資源７２へのリンクが必要なたびに、資源７２の必要性を認識し、資源管理プログラム７５に問い合わせるようにプログラムされる。ステップ４０４において、アプリケーション７０は資源管理プログラム７５によってエクスポーズされた機能を呼び出す。
【００６６】
資源がクライアント・コンピュータ５０上に格納されているとステップ４０６において資源管理プログラム７５が判断する場合、資源管理プログラム７５はステップ４０８Ａにおいて、資源７２をアプリケーション７０に渡す。しかしながら、資源７２が見つからない場合、資源７２はステップ４０８Ｂにおいて、サーバシステム１０から取得またはダウンロードされる。いずれの場合においても、資源管理プログラム７５は、資源７２へのリンクを可能にするためにアプリケーション７０にポインタを返す。
【００６７】
資源７２が必要なたびに資源管理プログラム７５に問い合わせることは手順を遅くする可能性があるので、新たに利用可能な資源７２をアプリケーションに渡し、アプリケーション７０のメモリ空間に資源７２のコピーを格納することが望ましい。このように、アプリケーション７０は、資源管理プログラム７５からのレスポンスを待たずに、利用可能な資源７２にリンクする命令を処理できる。しかしながら当業者であれば、資源７２がサーバシステム１０上に格納され、必要な場合にのみクライアント・コンピュータ５０にダウンロードされてもよいことを認識するであろう。そのため、ユーザ・インタフェースの生成に必要な場合に、資源７２は、クライアント・コンピュータ５０の処理メモリ空間に単に一時的にロードされる。
【００６８】
ここに記載された様々な実施例を用いて示され記載されるように、図３の方法は本発明に従って様々なアプリケーションに適応されてもよい。例えば、本発明の好ましい一実施例は、最新の資源をダウンロードする方法に適応されてもよい。例示のために、動作中に、資源管理プログラム７５は更新された資源７２のアプリケーション・プロバイダから追加の資源７２が必要であることを通知される。
【００６９】
他の方法では、ユーザは、サーバシステム１０から最新の資源７２をダウンロードすることを要求してもよい。資源管理プログラム７５は、日付またはバージョンのＩＤを含み得る資源７２の固有識別子を比較することにより、クライアント・コンピュータ５０上に資源７２のどのバージョンがローカル保存されているか判断する。いったん取得されると、資源７２は上述のようにリンクされる。
【００７０】
図５において、アプリケーション７０の動作又はインタフェースをカスタマイズする方法は、本発明の実施例に従って記載され、通常５００として引用される。ステップ５０２で、予めにアプリケーション・プロバイダに登録したユーザは、サーバシステム１０によって認識可能なパスワードあるいは他の固有の識別子を利用して、アプリケーション・プロバイダのサイトにログインする。前述の事前の登録において、ユーザは、アプリケーション／コンテンツ・プロバイダから一定の個人情報および選好設定、例えば限定しない例としての言語選好を入力するように促されてもよい。この情報は、サーバシステム１０上のデータベースに格納される。
【００７１】
ステップ５０４において、サーバ・データベースから選好設定値あるいは他の同様なカスタマイズ可能な情報を取得するために、固有のユーザ識別子がサーバシステム１０によって利用される。ステップ５０６において、資源グループ７２に関連づけられたアクセス・コードまたはグループＩＤが、クライアント・コンピュータ５０に伝達され、資源管理プログラム７５によって識別される。ステップ５０８において、資源管理プログラム７５は、ユーザの登録された好みに従ってアプリケーション・インタフェースを表示するために必要な資源７２の利用可能性を判断する。
【００７２】
資源７２が利用可能な場合、ステップ５１０において資源管理プログラムは、カスタマイズされた機能のアプリケーション７０による生成を可能にするために、資源を上述のようにアプリケーション７０へ渡す。しかしながら、資源７２がまだ利用可能でない場合、資源管理プログラム７５はステップ５１２において、必要とされる資源７２をサーバシステム１０から取得する。
【００７３】
本発明をこのように利用することにより、異なる好みを持つ数人の登録されたユーザは、アプリケーションの動作およびインタフェースを再カスタマイズする必要なく、同じアプリケーション７０を利用できる。例えば、第１のユーザは英語選好で登録してもよい。当該ユーザがアプリケーション７０を立ち上げるたびに、図６の例に示されるように、英語パラメータに対応した資源を利用してユーザ・インタフェースは生成される。
【００７４】
スペインの言語選好を登録した第２のユーザが、第１のユーザと同じクライアント・コンピュータ５０を利用してアプリケーション・プロバイダのウェブサイトにログオンすると、図９に示されるように、ユーザ・インタフェースは動的にスペイン語でロードする。動作中、上述のように、資源管理プログラム７５がサーバシステム１０との次の通信で、新たなスペイン語のパラメータを受信できるように、サーバシステム１０は第２のユーザの選好セッティングを取得する。そのパラメータを使用して、資源管理プログラム７５は、スペイン語のインタフェースを生成するために必要とされる資源７２がローカルに格納されているか否かを判断する。
【００７５】
資源７２がローカルに格納されていない場合、資源管理プログラム７５はサーバシステム１０からそれらを取得する。このように、本発明は、同一のクライアント・コンピュータ５０の複数のユーザのためのユーザ・インタフェースを動的にロードできる。さらに、リソース・ファイルは通常比較的小さいので、クライアント・コンピュータ５０に素早くダウンロードでき、実行時にアプリケーション７０にシームレスに組み入れられる。
【００７６】
図３−５を参照すると、単体のアプリケーション７０に関して表現され記述されたが、２つ以上のアプリケーション７０の資源を管理するためにも本発明の方法を適応できることが理解されよう。単なる例示として、特定の言語選好へのユーザ・インタフェースのカスタマイズは、特定のクライアント・コンピュータ５０上に格納されたいくつかのアプリケーション７０に適用可能であってもよい。そのため、いくつかのアプリケーション７０の資源７２を管理するために本発明の資源管理プログラム７５を使用すれば、アプリケーション７０はまとめて、国際化できる。
【００７７】
したがって、図１、２および６−１０をさらに参照すると、アプリケーション７０をカスタマイズする典型的な方法、特にアプリケーション７０を国際化する方法が示され、そしてここに記述される。図１および６に示すように、コンテンツ・プロバイダのウェブサイトは、ネットワーク１００を経由してクライアント・コンピュータ５０の表示装置５４に届けられる。マイクロソフト・インターネット・エクスプローラまたはネットスケープ・ナビゲーターのようなブラウザー・アプリケーション１１０は、ウィンドウ１１５中のユーザ・インタフェースを生成するために、画像、ＨＴＭＬコード等、スクリプト言語（例えばＪａｖａ（登録商標）Ｓｃｒｉｐｔ、ＶＢＳｃｒｉｐｔなど）およびアプレット等の形式をなすダウンロードされたコンテンツを解釈する。
【００７８】
コンポーネント・オブジェクト・モデル（ＣＯＭ）技術、例えばＡｃｔｉｖｅＸコントロールまたはプラグ・イン等は、ツールバー１３０に示すように、ブラウザー・インタフェースの一部を制御及び修正、あるいは制御又は修正する。このようなブラウザー・インタフェース・オーバレイは、出願人の継続米国出願０９／４２９，５８５号に開示されており、そのすべての開示内容は、本明細書中において参照され、組込まれる。
【００７９】
ツールバー１３０内におけるツールの特定のインタフェースを生成するために、ＣＯＭアプリケーションはＤＬＬのようなライブラリ資源にリンクする。例えば、図６および７の中で示されるように、ボタン１３２、ドロップ・ダウンメニュー１３４、およびメッセージボックス１３６中で英語が利用される。しかしながら、上述のように、同一のアプリケーション７０の別のユーザ、あるいは異なる国々のユーザにとっては、言語設定を彼らの好む言語に合わせて変更することが望ましいであろう。
【００８０】
図８をさらに参照すると、アプリケーション／コンテンツ・プロバイダはユーザに選好設定スクリーン１２０を提示する。本例において、ユーザは言語設定をスペイン語１９０に変更している。しかしながら、当業者には、本発明を利用した特定のタイプの選好設定（例えば言語、インタフェース色、ボタン・タイプ、利用可能なツールなど）は設計選択の問題であることが認識されるであろう。従って、本発明は、本発明に係る資源管理プログラム７５で作動するようにプログラムされた１つ以上のアプリケーション７０に関連するカスタマイズ可能な選好セッティングの任意の数に適応できる。
【００８１】
再び図８を参照すると、ユーザが好みの設定を選択した場合、ユーザは、設定変更を完了するために例えば「完了」ボタン１２２をクリックする。
【００８２】
図９および１０を更に参照すると、ボタン１３２、ドロップ・ダウンメニュー１３４およびメッセージボックス１３６における英語をスペイン語が置き換える。ユーザが選好設定を変更できる特定の方法は発明に重要ではない。また、ここでの記載はそのような方法の１つを単に例示しているにすぎない。
【００８３】
図６−１０を再び参照すると、ツールバー１３０は、例えばＡｃｔｉｖｅＸコントロール又はプラグ・インを含む資源７２にリンク及びアクセスするアプリケーション７０の実行により生成される。資源７２はツールバー１３０のユーザ・インタフェースおよび機能を生成するのに必要なコードを含んでいる。使用中、アプリケーション７０は資源７２と協働して、ＡｃｔｉｖｅＸコントロール又はプラグ・インの機能がツールバー１３０に付加されるブラウザー１１０内にシェルを生成する。限定的でない例として、ツールバー１３０のユーザ・インタフェースを構築するために処理されたデータは、インタフェースを生成するのに必要なＡｃｔｉｖｅＸコントロールかプラグ・インを含んでいる１つ以上の資源７２によって定義される。例えば、英語である図６−８中の文字列は、資源７２のうちの１つに格納され、ツールバー１３０のユーザ・インタフェースを生成するために、必要に応じてアプリケーション７０に提供される。
【００８４】
同様に、図７におけるメッセージボックス１３６中の文字列は、資源７２のうちの１つに格納され、特定のメッセージボックスを生成するために、必要に応じてアプリケーション７０に提供される。ブラウザー・ウィンドウ１１５中に例示した、アプリケーション・プロバイダのウェブサイトを介して、ユーザは選好設定を選択できる。選好設定は、様々なタイプのカスタマイズ可能なオプション、例えば限定的でない例としての言語等を含んでもよいことが当業者によって認識されるであろう。
【００８５】
図８に関して、ユーザは、その言語選好を英語からスペイン語に変更する選択をする。一旦、ユーザがその選択の変更および確認を完了すると、サーバシステム１０は、要求に答えるために必要な資源のグループに対応付けられたグループ識別子をクライアント・コンピュータに送信するか（図６−１０に関連して上述のように）、あるいは資源管理プログラム７５が資源に対応する選好パラメータをサーバシステム１０から受け取る（図５に関連して記載のように）。グループ識別子を受け取ると、資源管理プログラム７５は、グループ識別子を利用して、グループ識別子に対応付けられた資源グループがクライアント・コンピュータ上にローカルに格納されているかどうかを判断する。
【００８６】
他の実施例において、資源管理プログラム７５が地域又は言語選好に関連付けられた選好パラメータを受け取る場合、資源管理プログラムは、グループ識別子に対応付けられた資源がクライアント・コンピュータ上にローカルに保存されているか否かを判断するために、資源管理プログラム７５が有する、資源への識別子のマップ中において、対応する資源識別子を調べる。したがって、スペインの言語ツールバー１３０を生成するために必要とされる資源７２のグループ７２が、クライアント・コンピュータ５０上で見つからない場合、資源管理プログラム７５はサーバシステムからそれらを取得し、ブラウザー・アプリケーション７０に必要とされている資源７２のグループを渡す。これにより、上述のように、アプリケーションが資源７２のグループにアクセスすることが可能になる。
【００８７】
このようにして、アプリケーション７０は資源のグループにリンクし、クライアント・コンピュータ５０のメモリに文字列とイメージデータとをロードし、スペイン語でツールバー１３０を生成することができる。選好設定を変更するための資源７２がサーバシステム１０上に格納されているので、アプリケーション７０中にハードコードされた個々の特定の選好設定のために、資源７２の全ライブラリを含むことなく、簡素化されたユーザ・アプリケーション７０をクライアント・コンピュータ５０に配信することができる。
【００８８】
代わりに、資源７２は、実行中にアプリケーション７０へ有利にダウンロードされ動的に統合される。
【００８９】
さらに、資源管理プログラム７５が１つ以上のアプリケーション７０用のための資源７２を管理できるので、各アプリケーション７０は、利用者選好の変化に応じてカスタマイズできる。そのため、ユーザに不都合を与えることなく、アプリケーションは国際化され、カスタマイズされ、更新され、あるいはシームレスな方法でパッチされることができる。
【００９０】
そのため、アプリケーション７０が国際化され、カスタマイズされ、更新され、かつ／またはパッチされる場合に、アプリケーション７０を再起動する必要がない。
【００９１】
ユーザに提供される利便性及び機能性が向上するので、本発明は、ウェブサイトがユーザによるウェブサイトのアクセス頻度を増加させる手段を提供する。好ましい本実施例によれば、ユーザプロファイル・データベース２０はサーバシステム１０上で維持されて、ブラウザー・アプリケーションにウェブサイトを提供する。ユーザプロファイル・データベースは少なくとも１つのカスタマイズ可能なオプションを含んでいる。
【００９２】
本明細書中で用いられる用語「カスタマイズ可能なオプション」あるいは「選好」は、ユーザがそのなかから選択でき、サーバシステム上のユーザプロファイルに格納されるオプションを指す。サーバシステムは、上述のように、ユーザがカスタマイズ可能なオプションを変更することを可能にする。カスタマイズ可能なオプションの変更に応じて、クライアント・コンピュータはクライアント・コンピュータ上のブラウザー・インタフェースを上述の方法で生成する。
【００９３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることができる。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【図１】  本発明の有利な一実施例におけるシステムアーキテクチャーの全体図である。
【図２】  ネットワークに接続され、本発明が実施され得るクライアント・コンピュータの構成を示すブロック図である。
【図３】  本発明の有利な一実施例に係るアプリケーションの資源を管理する方法を示すフローチャートである。
【図４】  本発明の有利な一実施例に従ってアプリケーション更新をシームレスにまとめる方法を示すフローチャートである。
【図５】  本発明の有利な一実施例に従ってアプリケーションの動作およびインタフェースをカスタマイズする方法のフローチャートである。
【図６】  本発明の実施例に従ってアプリケーションを国際化する方法の典型的なスクリーンショットである。
【図７】  本発明の実施例に従ってアプリケーションを国際化する方法の典型的なスクリーンショットである。
【図８】  本発明の実施例に従ってアプリケーションを国際化する方法の典型的なスクリーンショットである。
【図９】  本発明の実施例に従ってアプリケーションを国際化する方法の典型的なスクリーンショットである。
【図１０】  本発明の実施例に従ってアプリケーションを国際化する方法の典型的なスクリーンショットである。
【図１】
0004865979.tif 000002
【図２】
0004865979.tif 000003
【図３】
0004865979.tif 000004
【図４】
0004865979.tif 000005
【図５】
0004865979.tif 000006
【図６】
0004865979.tif 000007
【図７】
0004865979.tif 000008
【図８】
0004865979.tif 000009
【図９】
0004865979.tif 000010
【図１０】
0004865979.tif 000011