JP2003177932A - アプリケーションを実行するためのJava(登録商標)クラスのダイナミックローディング - Google Patents

アプリケーションを実行するためのJava(登録商標)クラスのダイナミックローディング

Info

Publication number
JP2003177932A
JP2003177932A JP2002318634A JP2002318634A JP2003177932A JP 2003177932 A JP2003177932 A JP 2003177932A JP 2002318634 A JP2002318634 A JP 2002318634A JP 2002318634 A JP2002318634 A JP 2002318634A JP 2003177932 A JP2003177932 A JP 2003177932A
Authority
JP
Japan
Prior art keywords
module
core module
application
downloading
core
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
Application number
JP2002318634A
Other languages
English (en)
Inventor
Chia-Hsin Li
リー チャシン
Steve Nelson
ネルソン スティーブ
Brian Chan
チャン ブライアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of JP2003177932A publication Critical patent/JP2003177932A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【課題】 アプリケーションを実行するためのJava
(登録商標)クラスのダイナミックローディング 【解決手段】 分散型ネットワークでアプリケーション
をダウンロードするための方法で、コアモジュールをダ
ウンロードすることから始まる。コアモジュールは実行
可能プログラムのエンジンを稼動させるのに必要なクラ
スを含む。コアモジュールがインストールされると、瞬
時にユーザ機能が実行可能になる。インストールされた
コアモジュールにはさらに、コアモジュールと関連して
いないクラスを要求し、前記実行可能プログラムの非コ
アモジュールを調べて要求されたクラスを探し、前記実
行可能プログラムがユーザ機能を提供しながら要求され
たクラスを保有している非コアモジュールを汎用コンピ
ュータにダウンロードするためのコードが入っている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には実行可
能プログラムをダウンロードするためのメソッド及び装
置に関し、より具体的にはインターネットから実行可能
プログラムをダウンロードする際のスピードアップを図
るために最適且つインテリジェントモードを提供するた
めの方法及び装置に関する発明である。
【0002】
【従来の技術】インターネットの爆発的な成長で職場や
家庭でいろんなことができるようになっている。アプリ
ケーションやソフトウエア、とりわけJava(登録商
標)関連アプリケーションをダウンロードできれば、職
場や家庭でのパーソナルコンピュータの機能性がさらに
向上することは間違いない。しかしながら、インターネ
ットからプログラムをダウンロードするスピードが遅い
ことが大きな障害となって、ユーザがせっかくのそうし
た機能をありがたいと思えなくなっている。
【0003】図1に、インターネットから実行可能プロ
グラムをダウンロードしてインターネットエクスプロー
TMやネットスケープナビゲータTMなどウエブブラウザ
でJava(登録商標)アプリケーションを実行する従
来のやり方を示す。サーバ102にハイパーテキストマ
ークアップ言語(HTML)ページ104がある。HTMLペー
ジ104をインターネット106経由でウエブブラウザ
110を用いてクライアント108にダウンロードす
る。ActiveXコントロール112は、クライアント10
8にダウンロードされて、ウエブブラウザ110によっ
て実行させられる。ActiveXコントロールは、オブジェ
クトのリンクと埋め込み(OLE)コントロール(OCX)1
14と、Java(登録商標)プログラムとクラスファ
イルを含むzipファイル116と、OCX 114とzipファ
イル116をインストールするのに必要な情報をシステ
ムに供する.infファイルとを有する。一旦ActiveX 11
2コントロールが実行されれば、zipファイル116か
らJava(登録商標)プログラムが実行される。OC
X、zipファイル及び.infファイルは、.cabファイルの中
にパッケージングされている。従って、ActiveXが、.ca
bファイルをインストールすると共にzipファイルを解凍
することで、ウエブブラウザを介していろいろなJav
a(登録商標)アプリケーションが実行される。
【0004】Java(登録商標)アプリケーションを
実行する前には.cabファイルを全てダウンロードしなけ
ればならないため、非常に速いインターネットアクセス
を使用できない限りは、アプリケーションをダウンロー
ドする従来の方法では遅れを避けることはできず、ユー
ザはインターネット経由でのアプリケーションのダウン
ロードを諦めてしまう。例えば、典型的な.cabファイル
は、56Kのダイアルアップモデムを使用してダウンロ
ード、インストールすると5分以上かかる。仮にクラス
の中にユーザが使用しないものが含まれていても、zip
ファイルに入っているクラス全部がダウンロードされる
までは使用できない。ソフトウエアの機能が追加された
り拡張されたりすると、それに伴って.cabファイルも大
きくなるので、それだけ待ち時間も長くなる。
【0005】問題はアプリケーションの初期ダウンロー
ドにあるのだが、それだけでなくアプリケーションの修
正にも問題は及ぶ。例えば、既存のプログラムに1キロ
バイトの変更を加えて、新しいバージョンやアップデー
トを作る場合、ユーザはそのアプリケーション全てをダ
ウンロードするか、改訂されたアプリケーションが入っ
たディスク又はフレキシブルディスクをメールオーダで
発注しなければならない。ソフト会社は、コストを抑え
ようとして、新しいアプリケーションや改訂版をコンパ
クトディスク(CD)やフレキシブルディスクで発送する
よりも、ユーザにインターネット経由でファイルをダウ
ンロードさせようとしている。
【0006】場合によってはパッチを提供することも可
能性としてはあるが、パッチの管理が手におえなくな
る。例えば、多数のパッチをインストールすると、新し
いパッチはインストールされているが古いパッチがイン
ストールされていなかったとか、新しいパッチのあとに
古いパッチがインストールされた、といった問題が生じ
る。このような状況ではプログラムが正常に機能しなく
なり、その後パッチが発行されるとそれに伴って問題が
大きくなっていく。このように、パッチのインストール
管理の問題があるため、パッチは実行可能な代替案にな
らない。
【0007】
【特許文献1】米国特許第6,067,582号
【特許文献2】米国特許第5,500,941号
【特許文献3】米国特許第5,555,416号
【特許文献4】米国特許第6,131,192号
【特許文献5】米国特許第5,805,891号
【特許文献6】米国特許第5,790,796号
【特許文献7】米国特許第5,974,454号
【特許文献8】米国特許第6,154,680号
【特許文献9】米国特許第5,732,275号
【特許文献10】米国特許第6,023,586号
【特許文献11】米国特許第4,864,569号
【特許文献12】米国特許第5,485,601号
【特許文献13】米国特許第5,754,858号
【0008】
【発明が解決しようとする課題】そのために、従来技術
の抱える問題を解決して、ユーザがアプリケーションの
機能を利用できるようにした状態で、素早くかつ効率よ
くインターネットからアプリケーションをダウンロード
する方法を提供することが求められている。
【0009】
【課題を解決するための手段】広義に言えば、本発明
は、インターネットでアプリケーションを効率よくダウ
ンロードするための方法及び装置を提供することによ
り、こうしたニーズに応えるものである。なお、本発明
は、プロセスとして、装置として、システムとして、或
いはデバイスとして、といった具合に、いろいろな方法
で実現することができる。本発明のいくつかの実施例を
以下に説明する。
【0010】一実施例では、汎用コンピュータで実施さ
れるコンピュータ実行型の方法を提供する。このコンピ
ュータ実行型の方法は、ネットワーク型ストレージから
汎用コンピュータへの実行可能プログラムのダウンロー
ドを可能とする。この方法は、コアモジュールをダウン
ロードから始まる。ここで、コアモジュールは、実行可
能プログラムのエンジンを稼動させるのに必要なクラス
を有している。コアモジュールをインストールすると同
時にユーザ機能が実行可能になる。インストールされた
コアモジュールには、実行可能プログラムのユーザ機能
が使用できる状態で、コアモジュールと関連していない
クラスを要求し、実行可能プログラムの非コアモジュー
ルを調べて要求されたクラスがあるか探し、そして要求
されたクラスを保有している非コアモジュールを汎用コ
ンピュータにダウンロードするためのコードが含まれて
いる。
【0011】別の実施例では、マルチスレッド環境でア
プリケーションのモジュールをダウンロードする方法を
提供する。このダウンロードは、アプリケーションのコ
アモジュールが実行されている状態で行なわれ、ユーザ
アプリケーションがアプリケーション機能と対話するの
を可能にする。コアモジュールによって実施されるこの
方法は、第2のモジュールをダウンロードしながら、第
1のモジュールが要求されることから始まる。次に、第
2のモジュールのダウンロードが一時停止される。次
に、第1のモジュールがダウンロードされる。そして、
第1のモジュールのダウンロードが完了したら、第2の
モジュールのダウンロードが再開されるので、コアモジ
ュールによって提供されるユーザアプリケーションでの
対話は、実行中のアプリケーションにより可能なままで
ある。さらに、アプリケーションを実行しながらのバッ
クグラウンド・インストールが終了すると、第1のモジ
ュール及び第2のモジュールが提供する機能も使用でき
るようになる。
【0012】また別の実施例では、汎用コンピュータで
アプリケーションを実行しながら、分散型ネットワーク
で汎用コンピュータにアプリケーション用のモジュール
をダウンロードする方法を提供する。この方法はアプリ
ケーションの選択を可能にすることから始まる。次に、
選択したアプリケーションのエンジンを稼動させるコア
モジュールを識別する。そして、コアモジュールをダウ
ンロードしてインストールする。次に、アプリケーショ
ンの非コアモジュールと関係する機能の選択が可能にな
る。非コアモジュールと関連付けられた機能を選択する
と、選択された非コアモジュールが汎用コンピュータ上
でローカルで使用できるようになっているかどうかを判
定し、非コアモジュールがローカルで使用できない場合
には、分散型ネットワークから非コアモジュールをダウ
ンロードしてインストールする。このような判定、ダウ
ンロード、インストールといった作業は、ユーザがコア
モジュールのインストールされた機能にアクセスして対
話形式で実施することができる。
【0013】さらに別の実施例では、汎用コンピュータ
にアプリケーションプログラムをインストールするため
のコンピュータ実行型の方法を提供する。この方法は、
コアモジュールが汎用コンピュータ上でローカルに利用
できるかどうか判定することから始まる。この判定作業
には、コアモジュールが汎用コンピュータ上でローカル
に利用できる場合に、そのコアモジュールが最新バージ
ョンかどうか判定することも含まれる。また、コアモジ
ュールが入っていない場合、あるいは入っているが最新
バージョンでない場合には、コアモジュールをダウンロ
ードすることも含まれる。コアモジュールとは、アプリ
ケーションのエンジンを稼動させるのに必要なクラスを
保有するモジュールである。続いて、コアモジュールが
インストールされる。コアモジュールがインストールさ
れると、直ちにユーザ機能が実行可能となる。次に、非
コアモジュールの必要性を予測する。予測されたコアモ
ジュールは、アプリケーションプログラムを実行しなが
らダウンロードされる。
【0014】また別の実施例では、コンピュータプログ
ラムをネットワークから汎用コンピュータにダウンロー
ドする方法を提供する。このコンピュータプログラムは
コンパートメント化されたモジュールになっている。こ
の方法は、コアモジュールをダウンロードすることから
始まる。コアモジュールには、コンピュータプログラム
のエンジンを稼動させるのに必要なクラスが入ってい
る。次に、コアモジュールがインストールされる。コア
モジュールがインストールされると、直ちにユーザ機能
が実行可能となる。次に、優先順位リストに従って非コ
アモジュールがダウンロードされる。ユーザが特徴的機
能を要求すると、ダウンロードされなかったあるいは現
在ダウンロード中でない非コアモジュールの一つが要求
される。次に、優先順位リストに従った非コアモジュー
ルのダウンロードが休止されて、特徴的機能を保有する
非コアモジュールの一つがダウンロードされインストー
ルされる。その後、優先順位に従った非コアモジュール
のダウンロードが再開される。
【0015】別の実施例では、アプリケーションをダウ
ンロードするための装置を提供する。この装置は、アプ
リケーションを実行するためのコード化された命令を保
持する記憶装置を備えている。ユーザに対してアプリケ
ーションの機能を表示するためにモニタを備えている。
アプリケーションの機能はアプリケーションのモジュー
ルと関連付けられており、モジュールはアプリケーショ
ンの機能を実施するためのコード化された命令を保有し
ている。プロセッサも備えている。プロセッサはそのコ
ード化された命令を処理するように構成されており、コ
ード化された命令はアプリケーションのコアモジュール
をダウンロードしてインストールするように構成されて
いる。コアモジュールは、アプリケーションのエンジン
を稼動させることができると共にユーザのアプリケーシ
ョンとの対話を直ちに可能にし、ユーザが非コアモジュ
ールと関連付けられたアプリケーションの機能の一つを
選択すると、その非コアモジュールがダウンロードされ
てインストールされ、コアモジュールが提供する機能と
共に直ちに使用できるようになる。
【0016】また別の実施例では、ネットワークから実
行可能プログラムをダウンロードするためのプログラム
命令を有するコンピュータ可読媒体を提供する。一つの
模式的なコンピュータ可読媒体は、コアモジュールをダ
ウンロードするためのプログラム命令を含んでおり、コ
アモジュールには実行可能プログラムのエンジンを稼動
させるのに必要なクラスが入っている。このコンピュー
タ可読媒体は、コアモジュールをインストールするため
のプログラム命令を含む。インストールされたコアモジ
ュールにはさらに、コアモジュールと関連付けられてい
ないクラスを要求し、非コアモジュールを調べて要求さ
れたクラスを探し、実行可能プログラムがユーザ機能を
提供しながら要求されたクラスを有する非コアモジュー
ルをダウンロードするプログラム命令が入っている。
【0017】本発明の効果は数多い。最も顕著な効果
は、分散型ネットワークを介して実行可能プログラムを
効率よくダウンロードできることである。プログラムの
エンジンを稼動させるのに必要なコードを含んだコアモ
ジュールをダウンロードすることにより、ユーザは、ダ
イアルアップ接続でプログラムをダウンロードする場合
でも、大きな遅延なしにプログラムを実行することがで
きる。さらに、ユーザがダウンロードしなければならな
いモジュールを予測する、又はバックグラウンドでモジ
ュールをダウンロードする機能により、ユーザには意識
させずに、いっそうの柔軟性及び効率性を実現できるよ
うになる。
【0018】本発明の原理を例を挙げて説明していた添
付の図面と共に以下に述べる詳細な説明から本発明のそ
の他の態様及び効果は明らかになる。
【0019】
【発明の実施の形態】本発明をアプリケーションの効率
的且つ順序だったダウンロードのための装置及び方法と
して説明する。アプリケーションのエンジンを稼動させ
るのに必要なクラスを保有するコアモジュールがまず始
めにダウンロードされる。次に、アプリケーションが実
行中に、残りの非コアモジュールがバックグラウンドで
ダウンロードされ、必要に応じて実行中のプログラムに
自動的にアップロードされる。しかしながら、当業者で
あれば、これら詳細な説明の一部又は全てを知らなくて
も本発明が実施可能なことは明らかである。その他の場
合は、本発明が不要に不明瞭にならないよう、よく知ら
れたプロセスオペレーションについては詳細な説明を省
いた。
【0020】本発明の実施例は、中央に位置するソース
(例えば、ハードウエアやソフトウエアのベンダ)から
エンドユーザにアプリケーション・コンポーネントを効
率よくインターネットで配布するための方法並びに装置
を提供するものである。一実施例では、ユーザがウエブ
サイトをアクセスして異なるアプリケーションやオプシ
ョンを選択することができる。本明細書で使用されてい
るように、アプリケーションやコンポーネントの効率的
なハンドリング及びダウンロードを可能にする例は、ア
プリケーションやアプリケーション・コンポーネントの
種類を問わず共通である。しかしながら、説明を簡単に
するため、プリンタ及びプリンタユーザが利用できるア
プリケーションのオプションについて説明する。こうし
たアプリケーションやオプションは、例えば、ベンダの
ウエブサイトから入手することができる。本実施例で
は、プリンタ用アプリケーションとは、グリーティング
カードを作成したり、招待状を作成したり、本カバーを
作成したり、アートテンプレートを作成したり、名刺を
作成したり、包装紙を作成したり、ギフトボックスを作
成したりするためのアプリケーションである。ユーザが
一つのアプリケーションのオプションを選択すると、そ
のアプリケーションのオプションにはさらに選択可能な
サブオプションが用意されている。例えば、「グラフィ
ックをグリーティングカードに付け加える」といった、
コンテントを追加するようなオプションを選択すること
ができる。
【0021】一実施例では、プログラムに必要となる選
択オプションの全て、もしくはそのグループが識別さ
れ、ソフトウエアクラスのモジュールが選択オプション
ごとに、あるいは選択オプショングループごとに作成さ
れる。これらのモジュールは、各モジュールが特定のプ
ログラム処理を実行するのに必要な全クラスを保有する
ように選択される。例えば、1番目のモジュールはグラ
フィカルユーザインタフェース(GUI)を生成するため
のクラスを全て含み、2番目のモジュールはイメージを
選択してダウンロードするためのクラスを含み、3番目
のモジュールは印刷のためのクラスを含み、4番目のモ
ジュールはイメージを回転したりカットしたりするのに
必要なクラスを含む、といった具合に。また一例として
は、少なくとも一つのモジュールがアプリケーションの
エンジンを稼動させるのに必要なコアクラスを含んでい
なければならない。コアモジュールはコマンドラインか
ら命令を受ける。もしくは、コアモジュールは、GUIモ
ジュールをダウンロード、インストールして、より便利
なインタフェースをユーザに提供するのが好ましい。
【0022】プログラム・ダウンロードのスピードアッ
プを図るために、実行可能プログラムをダウンロードす
る際、コアモジュールだけを最初にダウンロードする。
そして次に、そのコアモジュールがGUIモジュールをダ
ウンロードしてインストールするので、ユーザに対して
様々なプログラムのオプションが提示される。例えば、
プログラムの実行中にユーザがコアモジュールの含まれ
ないオプションを選択すると、コアモジュールは、選択
されたオプションを実行するモジュールがローカルに利
用できるかどうかを確認する(例えば、ユーザのドライ
ブにあるのかネットワークドライブにあるのか)。一例
として、要求されたモジュールがローカルに利用できな
い場合は、必要なモジュールがインターネットからダウ
ンロードされて、実行中のプログラムに自動的にアップ
ロードされる。もしも要求されたモジュールが以前にダ
ウンロードされていた場合には、コアモジュールは、そ
のモジュールのバージョンがコアモジュールのバージョ
ンよりも古いかどうかを確認する。そのモジュールのバ
ージョンがコアモジュールよりも古くなければ、そのロ
ーカルのモジュールが使用され、コアモジュールのバー
ジョンより古かった場合は、新しいモジュールがインタ
ーネットからダウンロードされる。
【0023】別の実施例では、アプリケーションが、現
在のユーザ選択に基づいて、この先必要になりそうなモ
ジュールを予測し、コアモジュールが必要とすると思わ
れる追加モジュールを、バックグラウンドでダウンロー
ドする。例えば、ユーザがアプリケーションを使って画
像のダウンロード及び編集行なっている場合は、コアモ
ジュールは、ユーザは、編集したイメージを印刷するだ
ろうと予期することができる。この場合、ユーザが編集
を終える前にプリントモジュールがダウンロードされ
る。つまり、ユーザが使用できるアプリケーション機能
には全く影響を与ることなく、インターネット経由でよ
り速く、より効率的に実行可能ファイルをダウンロード
することができる。また別の実施例では、ユーザのアプ
リケーション操作に関する統計的な分析に基づき次にダ
ウンロードされるべきモジュールを予測するため、一見
関係がないように思われるようなプログラムをバックグ
ラウンドでのダウンロードにリンクすることができる。
【0024】図2に、本発明の一実施例における、イン
ターネットからアプリケーションをダウンロードするた
めの方法の概要を説明したフローチャート122を示
す。まず、オペレーション124でウエブサイトをアク
セスし、アプリケーションのオプションを提供する。先
に述べたように、アプリケーション及びそのオプション
は、一つ以上の実体的な処理として実行可能なアプリケ
ーションであればどの様なものでも構わない。パーソナ
ルコンピュータと接続されたプリンタの例では、アプリ
ケーションは、グリーティングカードの作成、招待状の
作成、本のカバーの作成、アートテンプレートの作成、
名刺の作成、包装紙の作成、ギフトボックスの作成、と
いった機能を有している。次にオペレーション126へ
進み、オプションのリストからコンテントカテゴリを選
択する。ここで、ユーザが、オペレーション124で提
示されたアプリケーションの一つを選択すると、コンテ
ントカテゴリのリストがユーザに提示される。例えば、
ユーザがグリーティングカードの作成を選択すると、グ
リーティングカードに用いるコンテントカテゴリのリス
トが示される。花の飾り、プリント、映画スターの写
真、といったグリーティングカードの作成に適したイメ
ージを任意の数だけ表示できることは言うまでもない。
次に、オペレーション128で、選択したコンテントカ
テゴリのイメージオプションが表示される。一例とし
て、このイメージはデータベースに保持される。次に、
オペレーション130に進み、選択されたイメージのID
を記録する。このイメージは、後でJava(登録商
標)アプリケーションで使用するために保持される。
【0025】続いて、オペレーション132で、プリン
タ情報及び用紙情報が収集される。例えば、プリンタの
機種名、用紙サイズ、マージン情報などが収集される。
次に、オペレーション134で、ブートストラップロー
ダがダウンロードされる。ここで、ウエブブラウザ
は、.cabファイルをダウンロードしてインストールす
る。.cabファイルとは、Java(登録商標)アプリケ
ーション及びJava(登録商標)アプリケーションと
関連付けられた様々なモジュールをロードするのに用い
ることができるファイルである。次に、オペレーション
136に進み、ユーザにセキュリティオプションを提示
する。一例として、ユーザがセキュリティオプションを
拒絶した場合は、そこでこの処理は終了する。ユーザが
セキュリティオプションを受け入れた場合は、オペレー
ション138へ進み、ウエブブラウザがブートストラッ
プローダ、すなわち、.cabファイルの解凍とインストー
ルを行なう。次に、オペレーション140で、ブートス
トラップローダを実行する。一例として、ブートストラ
ップローダはActiveXコントロールの形になっている。
次にオペレーション142に進み、ブートストラップロ
ーダがJava(登録商標)ローダを起動する。例え
ば、Java(登録商標)ローダは.cabファイルの中に
含まれている。以下により詳細に説明するが、ユーザの
インターネット接続が比較的遅い場合でも、Java
(登録商標)ローダにより、所望のアプリケーションの
ダウンロードを効率よくスピーディに行なえるようにな
る。すなわち、処理に必要なコンポーネントを全てダウ
ンロードした場合でも、アプリケーションを直ちに利用
できるようになる。
【0026】図3に、本発明の実施例における、Jav
a(登録商標)ローダがアプリケーション及びそのコン
ポーネントをダウンロードしてインストールする高レベ
ルの方法をフローチャート144として示す。この方法
は、まずオペレーション146として、オペレーション
124(図2)でアプリケーションが使用したモジュー
ルのリストをダウンロードする。一例として、モジュー
ルリストには、モジュール名及びモジュールのバージョ
ン情報が入っている。モジュールリストの一例を図4に
示し、以下にその詳細を説明する。
【0027】図4に示すブロック図158は、図3のオ
ペレーション146でダウンロードされたモジュールの
リストの一例である。なお、ブロック図158に示した
モジュールリストは、単に複数のモジュールを示しただ
けで、ソフトウエア・アプリケーション及びその使用状
況により、モジュール数は幾つであってもよい。図4
は、これを前提として、アプリケーション160、コア
モジュール及び複数の非コアモジュールを図示したもの
である。ここで、コアモジュールのバージョン1(16
2)がコアモジュールのバージョン2(164)に置き
換えられている。従って、一例として、図3のオペレー
ション146でダウンロードされたモジュールのリスト
には、コアモジュールの最新バージョン、つまり、バー
ジョン2(164)しか入っていない。なお、コアモジ
ュールのバージョン1が図示されているが、これは説明
のためである。図4のリストにはさらに、ブロック16
6〜174として表わされたモジュール1〜5が入って
いる。本発明の一実施例では、アプリケーションの使用
したモジュールのリストと、ローカルシステムにあるモ
ジュールと比較して、システムがダウンロードを要求し
ているモジュールがどれかを判断する。
【0028】図3に戻ると、次にオペレーション148
へ進み、モジュールがローカルシステムに存在している
かどうかを確認するため、Java(登録商標)ローダ
がリストに載っている各モジュールを検査する。例え
ば、図4のモジュール164〜174のそれぞれを調べ
て、これらがローカルシステムに存在するかどうかを判
定する。次に、オペレーション150へ進み、オペレー
ション148で識別された旧バージョンのモジュールが
アンインストールされる。例えば、アプリケーションを
以前に使用した際にロードしたコアバージョン1(16
2)がローカルシステムに存在している場合は、ここで
その旧バージョンがアンインストールされる。さらに、
非コアモジュールの旧バージョンがローカルシステムに
入っていた場合もアンインストールされる。ただし別の
例として、非コアモジュールの旧バージョンが共有モジ
ュールだった場合には、その非コアモジュールはアンイ
ンストールされない。
【0029】次に、決定のオペレーション152に進
み、コアモジュールの最新バージョンがシステムに入っ
ているかどうかの判定を行なう。コアモジュールの最新
バージョンがシステムに入っていなければ、オペレーシ
ョン154でコアモジュールの最新バージョンがダウン
ロードされ、インストールされる。本発明の一実施例で
は、コアモジュールが、エントリポイントの入ったクラ
スを保有している。本発明の別の実施例では、Java
(登録商標)ローダが、コアモジュールのダウンロード
を開始するために、エントリポイントが入っているクラ
スを要求する。コアモジュールの最新バージョンがロー
カルシステムに存在していれば、オペレーション156
に進み、アプリケーションが起動される。
【0030】図5に、本発明の一実施例として、アプリ
ケーションの実行中に、必要に応じてモジュールをダウ
ンロードしてインストールする方法を説明するフローチ
ャート176を示す。オペレーション178では、ロー
カルシステムでアプリケーションが稼動している。な
お、ユーザがアプリケーションを実行していろいろな機
能を使用すると、結局はコアモジュール以外のモジュー
ルが必要になる。プリンタを例にすると、印刷や、編集
や、フォーマット設定といったオペレーションは、コア
モジュールに入っていないクラスを必要とすることがあ
る。次に、オペレーション180に進み、要求されたク
ラスを保有しているモジュールを特定する。次に、オペ
レーション182に進み、要求されたクラスを保有して
いるモジュールをダウンロードしてローカルシステムに
インストールする。図4を例にして言えば、アプリケー
ションのある機能を実行するのにモジュール4(17
2)が必要な場合には、モジュール4(172)のダウ
ンロードとインストールが行なわれる。次にオペレーシ
ョン184へ進み、ダウンロードしたモジュールのクラ
スが提供する特徴的機能が実行される。オペレーション
184の後、オペレーション178に戻り、アプリケー
ションは稼動し続ける。言うまでもなく、一実施例で
は、アプリケーションのコンポーネントは概してバック
グラウンドで動いている。また、ユーザは、自分の意思
でいつでもアプリケーションを終了することができる。
【0031】図6に、本発明の一実施例における、アプ
リケーション用モジュールのダウンロードについてより
詳細に説明したフローチャート186を示す。まず、オ
ペレーション188で、Java(登録商標)仮想マシ
ン(JVM: Java(登録商標) Virtual Machine)か
らのリクエストを受け取る。例えば、一例として、最初
にアプリケーションを起動すると、クラスローダがJa
va(登録商標)仮想マシンから、「メインクラスを稼
動させろ」というリクエストを受け取る。また別の実施
例では、メインクラスはコアモジュールの中に保有され
る。なお、Java(登録商標)仮想マシンは、クラス
と関わりがあるだけでモジュールとは関係していない。
一方、クラスローダはクラスをモジュールの中にマッピ
ングを行なう。
【0032】次に、オペレーション190に進み、その
クラスが入ったモジュールを見つける。オペレーション
190については図7を参照しながら別途詳しく説明す
る。次に、決定のオペレーション192では、オペレー
ション190で見つけたモジュールがローカルシステム
に入っているかどうかが判定される。ローカルシステム
にモジュールが入っていなければ、オペレーション19
4で、そのモジュールがダウンロードされ、インストー
ルされる。ローカルシステムにそのモジュールが入って
いれば、オペレーション192からオペレーション19
6へ進み、必要とするクラスオブジェクトをモジュール
から入手する。
【0033】図6の方法で、モジュールからクラスオブ
ジェクトを取得したら、オペレーション188に戻る。
一実施例では、このクラスオブジェクトをJava(登
録商標)仮想マシンにリターンする。なお、ローカルシ
ステムにアプリケーションを最初にロードすると、エン
トリポイントが入っているクラスが次々と次のクラスを
求めてくるため、相互に関係するクラスが全てロードさ
れるまでこの作業が繰り返される。例えば、エントリポ
イントを有するメインクラスがコアモジュールの中にマ
ッピングされるとする。一例として、クラスAはエント
リポイントを含んでいるので、起動と同時にJava
(登録商標)仮想マシンはクラスAを要求する。する
と、クラスAはクラスBを要求し、といった具合に、コア
モジュールを構成する相互に関係したクラスが全てロー
ドされるまでこれが繰り返される。
【0034】上記の例は、特徴的機能を可能にする他の
非コアモジュールにもあてはまる。コアモジュールを構
成するクラスをインストールしさえすれば、ユーザは特
徴的機能を要する処理を実行することができる。プリン
タ及びそのアプリケーションの例では、ユーザは好きな
ようにグラフィックスを回転させたり、印刷することが
できる。回転ボタンや印刷ボタンを起動すると、コード
が、その様な機能を実施可能にするクラスをJava
(登録商標)仮想マシンに要求する。Java(登録商
標)仮想マシンは特徴的機能に必要なクラスを要求し、
必要なクラス及び相互に関係するクラスについてオペレ
ーション188〜196が繰り返される。図8〜10を
参照してさらに詳しく説明するが、別の実施例では、ユ
ーザが要求する前に、バックグラウンドで特徴的機能を
実施可能にするモジュールをダウンロードすることもで
きる。
【0035】図7に、図6のオペレーション190の詳
細を説明するフローチャート190を示す。フローチャ
ート190は、まずオペレーション198で、Java
(登録商標)仮想マシンがクラスローダにクラスのロー
ドを要求する。次に、オペレーション200に進み、イ
ンストールされたモジュールを調べて要求されたクラス
を探す。当業者であれば、データ構造を調べて要求され
たクラスを探すのに様々な技法があることを理解してい
るであろう。次に、オペレーション202に進み、要求
されたクラスが見つかったかどうかを判定する。要求さ
れたクラスが既にローカルシステムにインストールされ
たモジュール内にあれば、オペレーション204でその
クラスがJava(登録商標)仮想マシンにリターンさ
れる。
【0036】クラスが見つからなかった場合は、オペレ
ーション206に進み、どのモジュールがその要求され
たクラスを保有しているのかをサーバに問合せる。例え
ば、各クラスは、クラス毎にサーバにあるモジュールと
関連付けがなされている。すなわち、サーバは、クラス
をモジュールと対応させるデータ構造となっている。従
って、本発明の一実施例では、要求されたクラスを保有
しているモジュールを特定することができる。次に、オ
ペレーション208に進み、要求されたクラスを保有す
るモジュールがダウンロードされる。一例として、図6
で説明したように、相互に関係しているクラス単位で次
々にモジュールがダウンロードされる。また別の例で
は、ダウンロードされたモジュールのインストールも行
なわれる。以下に示した表1(TABLE 1)は、本発明の
一実施例における、モジュールをインストールするため
のコードの例である。コードは、インストールの機能さ
え果たせればどんな形でも良いことは言うまでもない。
【0037】表1
【0038】図8に示すのは、本発明の一実施例におけ
て、メインアプリケーションが起動した後、マルチスレ
ッド環境で、バックグラウンド・ダウンロードを行なう
方法を説明したフローチャート210である。なお、フ
ローチャート210の方法を、図7で説明した方法を使
用してマルチスレッド環境で実行することもできる。フ
ローチャート210は、まずオペレーション212で、
ダウンロードすべきモジュールのリストをアクセスす
る。一実施例では、モジュールリストに、モジュールを
バックグラウンド環境でダウンロードする際の順番を表
わす優先順位リストが入っている。図9を参照して、模
式的な優先順位リストについて以下に説明する。
【0039】図9は、本発明の一実施例において、ダウ
ンロードするアプリケーションモジュールの優先順位リ
ストを表わすブロック図224である。ブロック図22
4に示すように、アプリケーションを含む各モジュール
には優先順位が割り当てられている。例えば、コアモジ
ュール(Mc)226は、優先度が最も高い、優先順位1
が割り当てられている。コアモジュールは先ず始めにダ
ウンロードされなければならないため、Mcが高い最優順
位となっている。残りのモジュールM1〜M5にはそれぞれ
優先順位2〜6が割り当てられている。一例として、優
先順位リストはネットワーク型ソースサーバに保有され
ている(例えば、ネットワーク型ソースサーバはアプリ
ケーション及びそのモジュールを保有する)。後で説明
するが、ローカルシステムには、以前アプリケーション
を実行したときにインストールされたモジュールがいく
つか残っているかもしれない。その場合は、ダウンロー
ドマネージャが、ダウンロードしなければならないモジ
ュールのリストで初期化されるので、ダウンロードマネ
ージャが既にインストールされているモジュールをダウ
ンロードすることはない。このモジュールのリストは、
本発明の一実施例である図4に示す優先順位を有するモ
ジュールのリストでもよい。
【0040】図8に戻る。一旦優先順位リストがオペレ
ーション122でアクセスされると、次に、決定のオペ
レーション214に進み、そこで全てのモジュールがロ
ーカルシステムにダウンロードされているかどうかをチ
ェックする。この段階で、図3、図4、図9において説
明したモジュールのリストを調べて、ダウンロードしな
ければならないモジュールがあればどれをダウンロード
するかを判定する。リストに載っているモジュールが全
てローカルシステムにダウンロードされていれば、オペ
レーション216で終了する。リストに載っている全て
のモジュールがダウンロードされていなければ、オペレ
ーション218へ進み、ダウンロードするモジュール名
を取得する。例えば、Mc及びM2がすでにローカルシステ
ムにインストールされていれば、残りのモジュールで優
先順位が一番高いのはM1だから、M1のモジュール名をオ
ペレーション218で取得する。オペレーション218
で取得したモジュール名に対応するモジュールが、オペ
レーション220でダウンロードされる。ダウンロード
されたモジュールは、オペレーション222でインスト
ールされる。なお、本発明の一実施例では、表1に示し
たような、モジュールをインストールためのコードが、
オペレーション222で実行される。全てのモジュール
をダウンロードし終わるまで、一連のオペレーション2
14〜222が繰り返される。
【0041】図10に、図7に示したオペレーション2
08をより詳細に説明したフローチャート208を示
す。本発明の一実施例においては、オペレーション20
8で、ダウンロードマネージャ・ロジックによって、マ
ルチスレッド環境でのモジュールのダウンロードが行な
われる。フローチャート208は、まずオペレーション
232で、ダウンロードマネージャがダウンロードすべ
きモジュールを要求する。なお、ここではクラスローダ
がコントロールする。次に、決定のオペレーション23
4へ進み、ダウンロードマネージャがダウンロードして
いるモジュールが、要求されているモジュールかどうか
を判定する。ダウンロードマネージャがダウンロードし
ているモジュールが要求されているモジュールだった場
合には、オペレーション236に進み、ダウンロードマ
ネージャがそのモジュールのダウンロードを完了するの
を待つ。なお、このオペレーションでは、当業者に公知
の一般的な休止の技法を用いることができる。
【0042】一方、図10の決定オペレーション234
で、ダウンロードマネージャがダウンロードしているモ
ジュールが要求されたモジュールでなかった場合は、今
行なっているダウンロードを中止するオペレーション2
40に進む。例えば、ユーザがイメージを回転させたい
時は、機能のモジュール4(M4)が必要である。しかし
ながら、ダウンロードマネージャは、モジュールはモジ
ュール3(M3)をダウンロードしている。この場合は、
オペレーション240でM3のダウンロードが一時停止さ
れ、バンド幅でM3と競合しないでM4をダウンロードでき
るようにする。本発明の一実施例である、この決定オペ
レーションを含むダウンロードマネージャ・ロジック
は、ユーザが優先順位リストで決められたモジュールの
メソディカルダウンロードを中断したときにだけ起動さ
れる。次に、オペレーション242へ進み、要求された
モジュールをダウンロードする。上記の例では、M3が一
時停止されているのでM4がダウンロードされる。一例で
は、M3をダウンロードしていたコードの別のインスタン
ス生成を用いてM4のダウンロードを行う。次に、オペレ
ーション244で、要求されたモジュールがインストー
ルされる。それから、オペレーション246へ進み、中
断されたダウンロードのスレッドが再開される。上記の
例では、M4がインストールされると、直ちにM3のダウン
ロードが再開される。次に、オペレーション248へ進
み、図8に示した、モジュールをダウンロードするオペ
レーション220を実行する。
【0043】下に示した表2(TABLE 2)は、本発明の
一実施例におけるクラスローダのコードの一例である。
言うまでもなく、コードは、クラスロード機能を完了で
きるものであれば、任意の形で構わない。
【0044】表2
【0045】
【発明の効果】上に説明した本発明は、パーソナルコン
ピュータと連動してオペレーティングシステム上で実行
されるアプリケーションプログラムという一般的な環境
を想定して説明したが、特定の処理を実行したり、特定
のアブストラクトなデータタイプを実行するその他のル
ーチン、プログラム、コンポーネント、データ構造など
で、本発明を実現できることは容易に理解できるはずで
ある。さらに、本発明は、ハンドヘルド型デバイス、マ
イクロプロセッサシステム、マイクロプロセッサベース
の又はプログラミング可能なコンシューマエレクトロニ
クス、ミニコンピュータ、メインフレームコンピュータ
等の、他のコンピュータシステムの構成で実施すること
もできる。本発明はまた、通信ネットワークを介してリ
ンクされた遠隔処理装置が処理を実行する、分散型コン
ピューティング環境で実施することもできる。
【0046】上述の実施例を念頭に置くと、本発明は、
コンピュータシステムに保持されたデータを必要とする
様々なコンピュータ実行型オペレーションに用いること
ができるのが分かる。こうしたオペレーションとは物理
的数量の物理的操作を要する演算である。必ずしもそう
とは限らないが、一般的な話として、こうした数量は、
保持、転送、結合、比較、その他の操作を行なうことが
できる電気信号又は磁気信号の形になっている。さら
に、実行される操作は、生成、識別、判定、或いは比較
と称されることが多い。
【0047】本発明の一部をなす本明細書で説明したオ
ペレーションはいずれも有益なマシンオペレーションで
ある。本発明は、こうしたオペレーションを実行するた
めのデバイス又は装置にも関する。装置は要求された目
的のために特別に構築することができるし、コンピュー
タに保持されたコンピュータプログラムにより選択的に
起動又は構成された汎用コンピュータでも構わない。と
りわけ、本明細書で教示するところに従って作成したコ
ンピュータプログラムで多種多様な汎用のマシンを使用
してもよいし、必要なオペレーションを実行するもっと
専用の装置を構築する方がいっそう便利かもしれない。
【0048】本発明は、コンピュータ可読コードとして
コンピュータ可読媒体に実装することもできる。コンピ
ュータ可読媒体は、コンピュータシステムで読み取り可
能にデータを保持することができれば、どの様なデータ
記憶装置でもよい。コンピュータ可読媒体の例として
は、ハードドライブ、ネットワーク接続型ストレージ
(NAS)、リードオンリーメモリ、ランダムアクセスメ
モリ、CD-ROM、CD-R、CD-RW、磁気テープ、その他のオ
プティカル及びノンオプティカルデータ記憶装置などが
ある。コンピュータ可読コードを分散して保持すると共
に実行できるように、コンピュータ可読媒体をネットワ
ーク接続コンピュータシステムで分散することもでき
る。
【0049】明確になるように本発明を或る程度まで詳
細に説明してきたが、添付した特許請求の範囲内で変更
及び変形が可能なことは明らかである。従って、本発明
の実施例は例として考慮すべきであって、限定して考え
るべきものではない。また、本発明は本明細書で述べた
詳細な説明に限定されるものではなく、添付した特許請
求の範囲及び同等の範囲内において変更可能である。
【図面の簡単な説明】
【図1】 Java(登録商標)アプリケーションを実
行するウエブブラウザで、インターネットから実行可能
プログラムをダウンロードする従来の方法。
【図2】 本発明における、インターネットからアプリ
ケーションをダウンロードするための方法を示すフロー
チャート。
【図3】 本発明における、Java(登録商標)ロー
ダがアプリケーションをダウンロードしてインストール
する高レベルの方法を示すフローチャート。
【図4】 図3のオペレーション146でダウンロード
されたモジュールのリストを示す図。
【図5】 本発明における、アプリケーションを実行し
ながら必要に応じてモジュールをダウンロードしてイン
ストールする方法を示すフローチャート。
【図6】 本発明における、アプリケーション用モジュ
ールのダウンロードを詳細に説明したフローチャート。
【図7】 図6のオペレーション190をより詳細に説
明したフローチャート。
【図8】 本発明における、メインアプリケーション起
動後に、マルチスレッド環境でバックグラウンド・ダウ
ンロードを行なう方法を示すフローチャート。
【図9】 本発明における、アプリケーション用にダウ
ンロードされるモジュールの優先順位リストを示す図。
【図10】 図7のオペレーション208をより詳細に
説明したフローチャート。
【符号の説明】
102 サーバ 104 HTMLページ 106 インターネット 108 クライアント 110 ウエブブラウザ 112 ActiveXコントロール 114 OCX 116 zipファイル 118 .infファイル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブライアン チャン アメリカ合衆国 カリフォルニア州 パロ アルト市 エールストリート2330 Fターム(参考) 5B076 BA04 BB06

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 汎用コンピュータを用いて実行されるコ
    ンピュータ実行型の方法で、当該コンピュータ実行型の
    方法は、ネットワーク型ストレージから前記汎用コンピ
    ュータへの実行可能プログラムのダウンロードを可能と
    し、前記方法は、 前記実行可能プログラムのエンジンを稼動させるのに必
    要なクラスを含んだモジュールであるコアモジュールを
    ダウンロードし、 前記コアモジュールをインストールしてユーザ機能を実
    施可能とし、 前記インストールされたコアモジュールは、 前記コアモジュールと関係しないクラスを要求し、 前記実行可能プログラムの非コアモジュールを調べて前
    記要求されたクラスを探し、 前記実行可能プログラムがユーザ機能を提供しながら、
    前記要求されたクラスを保有する非コアモジュールを前
    記汎用コンピュータにダウンロードするためのコードを
    有することを特徴とする。
  2. 【請求項2】 前記非コアモジュールは、前記汎用コン
    ピュータ及びネットワーク型ソースサーバの一つのスト
    レージに保有されていることを特徴とする請求項1に記
    載の方法。
  3. 【請求項3】 前記コアモジュールはコマンドラインか
    ら命令を受けとることを特徴とする請求項1に記載の方
    法。
  4. 【請求項4】 前記コアモジュールのインストールに
    は、 ユーザにプログラムオプションを提供するグラフィカル
    ユーザインターフェース・モジュールをダウンロードし
    てインストールすることが含まれることを特徴とする請
    求項1に記載の方法。
  5. 【請求項5】 前記インストールされたコアモジュール
    用のコードは、ユーザの前記実行可能プログラムとの対
    話に基づいて要求される非コアモジュールを予測するた
    めのコードを含むことを特徴とする請求項1に記載の方
    法。
  6. 【請求項6】 マルチスレッド環境でアプリケーション
    のモジュールをダウンロードするための方法で、当該ダ
    ウンロードは前記アプリケーションのコアモジュールの
    実行中に行なわれ、前記コアモジュールはユーザアプリ
    ケーションの前記アプリケーション機能と対話を有効に
    維持し時すると共に、 前記コアモジュールは、 第2のモジュールをダウンロードしながら第1のモジュ
    ールを要求し、 前記第2のモジュールのダウンロードを一時停止し、 前記第1のモジュールをダウンロードし、 前記第1のモジュールのダウンロード終了後に前記第2
    のモジュールのダウンロードを再開し、 前記第1のモジュール及び前記第2のモジュールのバッ
    クグラウンドでのインストールが完了すると直ちに前記
    第1モジュール及び第2モジュールが提供する機能が使
    用可能となることを特徴とする。
  7. 【請求項7】 前記バックグラウンド・インストールは
    優先順位リストに従って進められることを特徴とする請
    求項6に記載の方法。
  8. 【請求項8】 前記第1のモジュール及び第2のモジュ
    ールはインターネットを介してダウンロードされること
    を特徴とする請求項6に記載の方法。
  9. 【請求項9】 前記アプリケーションはプリンタと共に
    使用されることを特徴とする請求項6に記載の方法。
  10. 【請求項10】 前記アプリケーションプログラムはベ
    ンダのウエブサイトからアクセスされることを特徴とす
    る請求項6に記載の方法。
  11. 【請求項11】 汎用コンピュータでアプリケーション
    を実行しながら、分散型ネットワークから前記汎用コン
    ピュータにアプリケーション用モジュールをダウンロー
    ドするための方法で、前記方法は、 アプリケーションの選択を可能にするステップと、 前記選択されたアプリケーションのエンジンを稼動させ
    るためのコアモジュールを識別するステップと、 前記コアモジュールをダウンロードしてインストールす
    るステップと、 前記アプリケーションの非コアモジュールと関係する機
    能の選択を可能にするステップと、 前記非コアモジュールと関係する前記機能が選択される
    と、 前記非コアモジュールが前記汎用コンピュータ上でロー
    カルに利用できるかどうか判定し、 前記非コアモジュールがローカルに利用できない場合は
    前記分散型ネットワークから前記非コアモジュールをダ
    ウンロード、インストールするステップとを有し、 前記判定、前記ダウンロード及び前記インストールは、
    前記コアモジュールにインストールされた機能にユーザ
    がアクセスし対話しながら実行されることを特徴とす
    る。
  12. 【請求項12】 前記コアモジュールの識別は、 前記コアモジュールが、前記汎用コンピュータ上でロー
    カルに利用可能かどうか判定することを含むことを特徴
    とする請求項11に記載の方法。
  13. 【請求項13】 前記アプリケーションの選択はさら
    に、 ベンダのウエブサイトから前記アプリケーションへのア
    クセスを含むことを特徴とする請求項11に記載の方
    法。
  14. 【請求項14】 前記判定、前記ダウンロード及び前記
    インストールは、ダウンロードマネージャの有するロジ
    ックによって可能となることを特徴とする請求項11に
    記載の方法。
  15. 【請求項15】 汎用コンピュータにアプリケーション
    プログラムをインストールするためのコンピュータ実行
    型の方法で、前記方法は、 前記汎用コンピュータ上でローカルにコアモジュールを
    使用できるかどうかを判定し、前記判定は、 前記コアモジュールが前記汎用コンピュータ上でローカ
    ルに利用できる場合には、そのコアモジュールが最新バ
    ージョンかどうかを判定し、 前記コアモジュールが使用できない又は前記コアモジュ
    ールが最新バージョンでない場合には、前記方法はさら
    に、 前記アプリケーションプログラムのエンジンを稼動させ
    るのに必要なクラスを有する前記コアモジュールをダウ
    ンロードしてインストールすると共に当該コアモジュー
    ルがインストールされると同時にユーザ機能を実施可能
    とし、 非コアモジュールの必要性を予測すると共に前記アプリ
    ケーションを実行しながら、前記予測された非コアモジ
    ュールをダウンロードすることを特徴とする。
  16. 【請求項16】 前記非コアモジュールの必要性の予測
    は、ユーザ選択又はユーザのアプリケーション操作の統
    計分析に基づくことを特徴とする請求項15に記載の方
    法。
  17. 【請求項17】 前記予測した非コアモジュールのダウ
    ンロードはマルチスレッド環境で行なわれることを特徴
    とする請求項15に記載の方法。
  18. 【請求項18】 前記コアモジュールが最新バージョン
    かどうかの判定はさらに、 前記汎用コンピュータ上でローカルに利用できるコアモ
    ジュールが最新バージョンでない場合には、そのコアモ
    ジュールをアンインストールすることを特徴とする請求
    項15に記載の方法。
  19. 【請求項19】 ネットワークから汎用コンピュータ
    に、コンパートメント化されたモジュールからなるコン
    ピュータプログラムをダウンロードするための方法で、
    前記方法は、 前記コンピュータプログラムのエンジンを稼動させるの
    に必要なクラスを含むコアモジュールをダウンロード及
    びインストールすると共に、当該コアモジュールがイン
    ストールされると同時にそのユーザ機能を実施可能と
    し、 優先順位リストに従って非コアモジュールをダウンロー
    ドし、 ユーザの特徴的機能を要求に基づき、ダウンロードされ
    ない又はダウンロード中でない非コアモジュールの一つ
    を要求し、 前記優先順位リストに従った非コアモジュールのダウン
    ロードを休止し、 前記非コアモジュールのうちの前記特徴的機能を保有す
    るコアモジュールをダウンロード及びインストールし、 前記優先順位リストに従った前記非コアモジュールのダ
    ウンロードを再開することを特徴とする。
  20. 【請求項20】 前記コンピュータプログラムのダウン
    ロードは、マルチスレッド環境で行なわれることを特徴
    とする請求項19に記載の方法。
  21. 【請求項21】 前記優先順位リストは、ネットワーク
    型ソースサーバ上に保有されていることを特徴とする請
    求項19に記載の方法。
  22. 【請求項22】 前記非コアモジュールのダウンロード
    は、前記コンピュータプログラムがユーザ機能を提供し
    た状態で、バックグラウンドで行なわれることを特徴と
    する請求項19に記載の方法。
  23. 【請求項23】 前記コンピュータプログラムのダウン
    ロードは、Java(登録商標)ローダによって行なう
    ことを特徴とする請求項19に記載の方法。
  24. 【請求項24】 ブートストラップローダがJava
    (登録商標)ローダを起動することを特徴とする請求項
    23に記載の方法。
  25. 【請求項25】 アプリケーションをダウンロードする
    ための装置で、 前記アプリケーションを実行するためのコード化された
    命令を保持する記憶装置を有し、 ユーザにアプリケーション機能を表示するモニタを有
    し、前記アプリケーション機能は前記アプリケーション
    のモジュールと関連付けられると共に前記モジュールは
    前記アプリケーション機能を実行する前記コード化され
    た命令を保有し、 前記コード化された命令を処理するプロセッサを有し、 前記コード化された命令は前記アプリケーションのコア
    モジュールをダウンロードしてインストールし、 前記コアモジュールは前記アプリケーションのエンジン
    を稼動すると共にともに直ちにユーザが前記アプリケー
    ションと対話できるようにし、 前記ユーザが非コアモジュールと関係するアプリケーシ
    ョン機能を選択すると、前記非コアモジュールをダウン
    ロード及びインストールして、前記コアモジュールの機
    能と共にその機能を使用可能とすることを特徴とする。
  26. 【請求項26】 前記コード化された命令は、前記アプ
    リケーションのモジュールをダウンロードする優先順位
    リストを含むことを特徴とする請求項25に記載の装
    置。
  27. 【請求項27】 前記アプリケーションはインターネッ
    トでダウンロードされることを特徴とする請求項25に
    記載の装置。
  28. 【請求項28】 前記モジュールは、ユーザの前記アプ
    リケーションとの対話に基づく予測によりダウンロード
    されることを特徴とする請求項25に記載の装置。
  29. 【請求項29】 前記アプリケーションはプリンタと共
    に使用するものであることを特徴とする請求項25に記
    載の装置。
  30. 【請求項30】 ネットワークから実行可能プログラム
    をダウンロードするためのプログラム命令を有するコン
    ピュータ可読媒体で、 前記実行可能プログラムのエンジンを稼動させるのに必
    要なクラスを含むコアモジュールをダウンロードするプ
    ログラム命令を有し、 前記コアモジュールをインストールするプログラム命令
    を有すると共に前記インストールされたコアモジュール
    はさらに、 前記コアモジュールと関係しないクラスを要求し、 非コアモジュールを調べて前記要求されたクラスを探
    し、 前記実行可能プログラムがユーザ機能を提供しながら、
    前記要求されたクラスを保有する非コアモジュールをダ
    ウンロードするプログラム命令を含むことを特徴とする
    コンピュータ可読媒体。
  31. 【請求項31】 前記インストールされたコアモジュー
    ルはさらに、 前記コアモジュールと関連していないクラスの要求を、
    ユーザの前記実行可能プログラムとの対話を基に予測す
    るプログラム命令を含むことを特徴とする請求項30に
    記載のコンピュータ可読媒体。
  32. 【請求項32】 前記予測は、観察したユーザのアプリ
    ケーション操作の統計分析に基づくことを特徴とする請
    求項31に記載のコンピュータ可読媒体。
  33. 【請求項33】 非コアモジュールをダウンロードする
    前記プログラム命令は、マルチスレッド環境で実行され
    ることを特徴とする請求項30に記載のコンピュータ可
    読媒体。
  34. 【請求項34】 前記実行可能プログラムは、前記プロ
    グラムのモジュールをダウンロードする順番を判定する
    ための優先順位リストを含むことを特徴とする請求項3
    0に記載のコンピュータ可読媒体。
JP2002318634A 2001-10-31 2002-10-31 アプリケーションを実行するためのJava(登録商標)クラスのダイナミックローディング Pending JP2003177932A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/999,658 US7028295B2 (en) 2001-10-31 2001-10-31 Dynamic java class loading for application execution
US09/999658 2001-10-31

Publications (1)

Publication Number Publication Date
JP2003177932A true JP2003177932A (ja) 2003-06-27

Family

ID=25546582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002318634A Pending JP2003177932A (ja) 2001-10-31 2002-10-31 アプリケーションを実行するためのJava(登録商標)クラスのダイナミックローディング

Country Status (3)

Country Link
US (1) US7028295B2 (ja)
JP (1) JP2003177932A (ja)
CN (1) CN1266598C (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007519071A (ja) * 2003-10-23 2007-07-12 マイクロソフト コーポレーション ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi
JP2010506249A (ja) * 2006-10-02 2010-02-25 ソニー エリクソン モバイル コミュニケーションズ, エービー ストリームミング化されたユーザインタフェース・エフェクトを利用する携帯装置及びサーバ
WO2013111245A1 (ja) * 2012-01-24 2013-08-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
US8930944B2 (en) 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
JP2017513169A (ja) * 2015-03-23 2017-05-25 シャオミ・インコーポレイテッド テーマアプリケーションのロード方法及びデバイス
WO2018146994A1 (ja) * 2017-02-08 2018-08-16 グローリー株式会社 現金処理システム
JP2021168103A (ja) * 2020-04-10 2021-10-21 アップル インコーポレイテッドApple Inc. アクティビティを有効化するユーザインタフェース
US11782573B2 (en) 2020-04-10 2023-10-10 Apple Inc. User interfaces for enabling an activity
US11836725B2 (en) 2014-05-29 2023-12-05 Apple Inc. User interface for payments

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7178144B2 (en) * 2002-04-23 2007-02-13 Secure Resolutions, Inc. Software distribution via stages
US20030233483A1 (en) * 2002-04-23 2003-12-18 Secure Resolutions, Inc. Executing software in a network environment
US7401133B2 (en) 2002-04-23 2008-07-15 Secure Resolutions, Inc. Software administration in an application service provider scenario via configuration directives
US20040073903A1 (en) * 2002-04-23 2004-04-15 Secure Resolutions,Inc. Providing access to software over a network via keys
US20050278419A1 (en) * 2004-06-14 2005-12-15 Morris Robert P System and method for linking resources with actions
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
WO2007073777A1 (en) * 2005-12-27 2007-07-05 Telecom Italia S.P.A. Method of managing services in a communication network
JP4881023B2 (ja) * 2006-02-01 2012-02-22 キヤノン株式会社 情報処理装置及び当該装置におけるオブジェクト指向プログラムの実行方法とそのプログラム
US20080005160A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Assembly Sensitive Dynamic Classloading Of .Net Types in J#
US8769522B2 (en) * 2006-08-21 2014-07-01 Citrix Systems, Inc. Systems and methods of installing an application without rebooting
EP3056487B1 (en) 2006-10-11 2018-02-21 President and Fellows of Harvard College Synthesis of enone intermediate
GB2456019A (en) * 2007-12-31 2009-07-01 Symbian Software Ltd Loading dynamic link libraries in response to an event
US20090249327A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Method for metering an extensible license for java applications
US20090267909A1 (en) * 2008-04-27 2009-10-29 Htc Corporation Electronic device and user interface display method thereof
US20090288080A1 (en) * 2008-05-13 2009-11-19 Partridge Lucas W Method of Delivering Software Over a Network
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US9323438B2 (en) 2010-07-15 2016-04-26 Apple Inc. Media-editing application with live dragging and live editing capabilities
US9665836B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
US8849638B2 (en) 2010-08-10 2014-09-30 X Systems, Llc System and method for analyzing data
US9652726B2 (en) 2010-08-10 2017-05-16 X Systems, Llc System and method for analyzing data
US9665916B2 (en) 2010-08-10 2017-05-30 X Systems, Llc System and method for analyzing data
US9176979B2 (en) * 2010-08-10 2015-11-03 X Systems, Llc System and method for analyzing data
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
CN102486734A (zh) * 2010-12-03 2012-06-06 上海宝信软件股份有限公司 一种富客户端应用系统
US9043782B2 (en) * 2010-12-28 2015-05-26 Microsoft Technology Licensing, Llc Predictive software streaming
US8954477B2 (en) 2011-01-28 2015-02-10 Apple Inc. Data structures for a media-editing application
US20120198319A1 (en) * 2011-01-28 2012-08-02 Giovanni Agnoli Media-Editing Application with Video Segmentation and Caching Capabilities
US9997196B2 (en) 2011-02-16 2018-06-12 Apple Inc. Retiming media presentations
US11747972B2 (en) 2011-02-16 2023-09-05 Apple Inc. Media-editing application with novel editing tools
CN102360297B (zh) * 2011-06-30 2013-09-25 四川长虹电器股份有限公司 在线应用加载的方法
CN104166572B (zh) * 2011-12-12 2017-12-19 北京奇虎科技有限公司 软件安装方法及计算设备
CN102426533B (zh) * 2011-12-12 2014-10-01 奇智软件(北京)有限公司 软件安装方法及装置
CN104166573B (zh) * 2011-12-12 2018-01-16 北京奇虎科技有限公司 软件安装方法及装置
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging
CN105228710B (zh) 2013-01-17 2018-04-27 索尼电脑娱乐公司 信息处理设备和文件管理方法
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
CN105094830B (zh) * 2015-07-31 2019-07-09 小米科技有限责任公司 一种执行目标功能的方法和装置
CN109460250B (zh) * 2018-09-25 2022-03-08 平安科技(深圳)有限公司 一种应用程序的生成方法及设备
CN112035180A (zh) * 2020-08-19 2020-12-04 北京城市网邻信息技术有限公司 一种自动化实例加载方法、装置、电子设备及存储介质
CN112214443B (zh) * 2020-10-22 2021-12-03 上海壁仞智能科技有限公司 设置于图形处理器中的二次卸载装置和方法
CN112230931B (zh) 2020-10-22 2021-11-02 上海壁仞智能科技有限公司 适用于图形处理器的二次卸载的编译方法、装置和介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864569A (en) * 1987-11-25 1989-09-05 Westinghouse Electric Corp. Software verification and validation configuration management system
US5485601A (en) * 1992-05-14 1996-01-16 Ching; Hugh Completely automated and self-generating software system
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5500941A (en) * 1994-07-06 1996-03-19 Ericsson, S.A. Optimum functional test method to determine the quality of a software system embedded in a large electronic system
US5805891A (en) * 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
US5732275A (en) * 1996-01-11 1998-03-24 Apple Computer, Inc. Method and apparatus for managing and automatically updating software programs
US5754858A (en) * 1996-05-01 1998-05-19 Microsoft Corporation Customizable application project generation process and system
US5790796A (en) * 1996-06-14 1998-08-04 Symantec Corporation Polymorphic package files to update software components
US6067582A (en) * 1996-08-13 2000-05-23 Angel Secure Networks, Inc. System for installing information related to a software application to a remote computer over a network
US6154680A (en) * 1997-10-07 2000-11-28 Zone Automation Inc. Control systems and methods utilizing object oriented hardware elements
US5974454A (en) * 1997-11-14 1999-10-26 Microsoft Corporation Method and system for installing and updating program module components
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software
US6131192A (en) * 1998-06-18 2000-10-10 Microsoft Corporation Software installation
US6433794B1 (en) * 1998-07-31 2002-08-13 International Business Machines Corporation Method and apparatus for selecting a java virtual machine for use with a browser
US6066182A (en) * 1998-11-05 2000-05-23 Platinum Technology Ip, Inc. Method and apparatus for operating system personalization during installation
US6718549B1 (en) * 1999-05-05 2004-04-06 Microsoft Corporation Methods for managing the distribution of client bits to client computers
US6836886B2 (en) * 2001-03-19 2004-12-28 Autodesk, Inc. Method and apparatus for delivering electronic information
US20020188434A1 (en) * 2001-06-12 2002-12-12 Pauline Shulman System and method for providing cross-development application design tools and services via a network
US20030088710A1 (en) * 2001-07-05 2003-05-08 Sukhwinder Sandhu Simulation environment software

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007519071A (ja) * 2003-10-23 2007-07-12 マイクロソフト コーポレーション ソフトウェアアプリケーションをプログレッシブインストールするためのシステムおよび方法およびapi
US8930944B2 (en) 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
JP2010506249A (ja) * 2006-10-02 2010-02-25 ソニー エリクソン モバイル コミュニケーションズ, エービー ストリームミング化されたユーザインタフェース・エフェクトを利用する携帯装置及びサーバ
US9889376B2 (en) 2012-01-24 2018-02-13 Sony Interactive Entertainment Inc. Information processing apparatus and information processing system
US10967262B2 (en) 2012-01-24 2021-04-06 Sony Interactive Entertainment Inc. Information processing apparatus and information processing system for permitting a first user to join in executing game software of a second user over a network
JPWO2013111245A1 (ja) * 2012-01-24 2015-05-11 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
JP2016006687A (ja) * 2012-01-24 2016-01-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびアプリケーションソフトウェアのダウンロード方法
CN104066486B (zh) * 2012-01-24 2017-03-08 索尼电脑娱乐公司 信息处理设备和信息处理系统
US9682323B2 (en) 2012-01-24 2017-06-20 Sony Corporation Information processing apparatus and information processing system for permitting a first user to access game software of a second user over a network
WO2013111245A1 (ja) * 2012-01-24 2013-08-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
CN104066486A (zh) * 2012-01-24 2014-09-24 索尼电脑娱乐公司 信息处理设备和信息处理系统
US10406443B2 (en) 2012-01-24 2019-09-10 Sony Interactive Entertainment Inc. Information processing apparatus and information processing system
US11547936B2 (en) 2012-01-24 2023-01-10 Sony Interactive Entertainment Inc. Information processing apparatus and information processing system
US11836725B2 (en) 2014-05-29 2023-12-05 Apple Inc. User interface for payments
JP2017513169A (ja) * 2015-03-23 2017-05-25 シャオミ・インコーポレイテッド テーマアプリケーションのロード方法及びデバイス
JP2018128832A (ja) * 2017-02-08 2018-08-16 グローリー株式会社 現金処理システム
US10762737B2 (en) 2017-02-08 2020-09-01 Glory Ltd. Cash processing system
WO2018146994A1 (ja) * 2017-02-08 2018-08-16 グローリー株式会社 現金処理システム
JP2021168103A (ja) * 2020-04-10 2021-10-21 アップル インコーポレイテッドApple Inc. アクティビティを有効化するユーザインタフェース
JP7250741B2 (ja) 2020-04-10 2023-04-03 アップル インコーポレイテッド アクティビティを有効化するユーザインタフェース
US11782573B2 (en) 2020-04-10 2023-10-10 Apple Inc. User interfaces for enabling an activity

Also Published As

Publication number Publication date
US20030097400A1 (en) 2003-05-22
CN1266598C (zh) 2006-07-26
CN1416057A (zh) 2003-05-07
US7028295B2 (en) 2006-04-11

Similar Documents

Publication Publication Date Title
JP2003177932A (ja) アプリケーションを実行するためのJava(登録商標)クラスのダイナミックローディング
JP2003177916A (ja) ダイナミッククラスパッケージング
US8510734B2 (en) Streaming optimized virtual application images
Zheng et al. Integrating containers into workflows: A case study using makeflow, work queue, and docker
RU2398263C2 (ru) Способ, система и устройство, обеспечивающие предварительный просмотр документа
US7890554B2 (en) Apparatus and method of exporting file systems without first mounting the file systems
JP4936629B2 (ja) ネットワークベースのソフトウェア拡張機能
CN110096333B (zh) 一种基于非易失内存的容器性能加速方法
US7886292B2 (en) Methodology of individualized software deployment for hardware-independent personal computer mass development
JP2005174283A (ja) コンピュータプラットフォームのプログラミングインターフェース
JP2003528391A (ja) ファイルコンテンツの追加的なコピーを記憶する必要無しに、ファイル属性への変更を記憶するための方法及び装置
RU2369896C2 (ru) Система и способ для представления элементов пользователю с использованием контекстного представления
JPH10105410A (ja) インターネット−イネーブル型ポートフォリオ・マネージャ・システム及び方法
JPH11120117A (ja) グローバル・ファイル・システムを基礎とした、クラスタ上の装置を可視的にするシステムおよび方法
JPH1069376A (ja) ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
JPH11120116A (ja) コンピュータ・クラスタ上の物理装置への透過的なグローバル・アクセスを行うシステムおよび方法
JP2002207697A (ja) Htmlフォーム・エレメントを動的に表示するシステムおよび方法
US8819196B2 (en) Selection and configuration of servers
EP4018302A1 (en) Hydration of applications
US20070061697A1 (en) Text based markup language resource interface
US20120151467A1 (en) Providing com access to an isolated system
JP2009093633A (ja) 複数の検索を実行するためのコンピュータ実装方法、データ処理システム及びコンピュータ・プログラム
CN113791714A (zh) 一种软件系统图标库的方法
JPH10320340A (ja) クライアントサーバシステムにおける、メッセージ制御方法ならびに装置、及び同方法がプログラムされ記録、伝播する記録媒体もしくは通信媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051013

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090402

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090428