JP2000155686A - 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム - Google Patents

分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム

Info

Publication number
JP2000155686A
JP2000155686A JP11116931A JP11693199A JP2000155686A JP 2000155686 A JP2000155686 A JP 2000155686A JP 11116931 A JP11116931 A JP 11116931A JP 11693199 A JP11693199 A JP 11693199A JP 2000155686 A JP2000155686 A JP 2000155686A
Authority
JP
Japan
Prior art keywords
program
client
providing
component
receiving
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
JP11116931A
Other languages
English (en)
Inventor
Peter W Madany
ピーター ダブリュウ マダニー
Richard Tuck
リチャード タック
Nedim Fresko
ネディム フレスコ
Hania Gajewska
ハニア ガジェウスカ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000155686A publication Critical patent/JP2000155686A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

(57)【要約】 【課題】クライアントサーバ間で、接続を何度も行う必
要がなく、且つ、接続スピードを速くし、接続待ち時間
を短縮することができる分散システムで用いられるプロ
グラム実行方法、その装置及びその手順を記憶したコン
ピュータ読み書き可能な記憶媒体並びにコンピュータシ
ステムを提供すること。 【解決手段】サーバで実行中のタスクは、クライアント
上で遠隔実行用のプログラムコードをパッケージする要
求を受信すると(310)、既にクライアントにあるソフト
ウエアコンポーネントを決定する(320)。そのタスク
は、この情報を用いて、そのパッケージを作成する別個
のタスクに対する一組のインストラクションを公式化す
る(330)。作成されたパッケージは、クライアントへ転
送され、これによりプログラムが開始される(340)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散コンピュータ
システムに関するものであり、更に詳しくは、遠隔実行
用のコンピュータプログラムをパッケージする方法及び
その装置に関するものである。
【0002】
【従来の技術】今日においては、インターネットは、情
報交換の重要な媒体である。インターネットは、一般大
衆の間で非常にポピュラーになっているが、そもそも政
府や学術団体により使用される内部接続のコンピュータ
システム(又はネットワーク)として始まったものであ
る。ネットワークの初期の問題は、内部接続のコンピュ
ータは、それぞれ全く同じではないという事実に起因し
たものであった。すなわち、これらのコンピュータで
は、異なるオペレーティングシステム、異なるハードウ
エアが使用されていた。このような異種間ネットワーク
は、コミュニケーション上の問題を呈した。しかしなが
ら、この問題は、TCP/IPやHTTP等のプロトコルを含む、
業界標準規格を定めることにより解決された。これらの
プロトコルが定められたことにより、内部接続された種
々のマシンがスタティックテキスト形態やグラフィック
ドキュメント形態の情報を共有できるようになった。
【0003】しかしながら、これらのプロトコルは、イ
ンターネットの進化の過程において、2つのステップを
表現したにすぎない。ユーザは、インターネットへ接続
される種々のコンピュータの間で、情報文書を交換する
ことができるが、C言語又はC++のような伝統的な言語−
特定のプロセッサ(例えば、インテルPentiumプロセッ
サ)又は特定のオペレーティングシステム(例えば、Wind
ows 95, DOS)とインターフェースできるように設計され
る−で記述された実行形態のアプリケーションプログラ
ムを交換することができない。この問題は、Javaプログ
ラミング言語及びそのランタイムシステムの出現で解決
された。
【0004】Javaプログラミング言語は、オブジェクト
指向プログラミング言語であり、その詳細は、例えば、
Mary Campione, Kathy Walrath共著によるAddison-Wesl
ey:1996年版"The JavaTM Tutorial"において説明されて
いる。重要なことには、Javaプログラミング言語は、プ
ラットフォームから独立したインタープリタ型言語であ
る。すなわち、そのユーティリティは、ある特定のコン
ピュータシステムに制限されるものではない。Javaプロ
グラミング言語を使用して、ソフトウェア開発者は、Ja
vaソースコードと通称される形態でプログラムを作成す
る。その開発者がプログラムを作成し終わると、Javaコ
ンパイラでバイトコードと呼ばれる中間フォームへコン
パイルする。Javaソースコード及びバイトコードは、両
者共に、プラットフォームから独立したものである。
【0005】コンパイル済みバイトコードは、Java仮想
マシン(JVM)やJavaクラスライブラリを含むJavaランタ
イム環境(JRE)等の仮想マシン(VM)を含む互換性あるラ
ンタイムシステムを使用した全てのコンピュータシステ
ム上で実行可能である。Java仮想マシンについては、Ti
m Lindholm, Frank Yellin共著のAddison-Wesley:1996
年版"The Java Virtual Machine Specification"に、そ
の詳細が述べられている。Java仮想マシンは、バイトコ
ードと使用中の特定のコンピュータシステムとの間でイ
ンタープリタとして機能する。プラットフォームから独
立したバイトコード及びJava仮想マシンを使用すれば、
Javaプログラミング言語で書かれたプログラムは、全て
のコンピュータシステム上で実行可能である。これは、
インターネット等の異種間接続コンピュータシステムで
あるネットワーク間で特に有用である。
【0006】Javaプログラムの実行前には、ある不可欠
なクラスをプログラム実行用のコンピュータのメモリ中
へロードしておく必要がある。これらのクラスは、コン
ピュータのハードディスクからロードされ得るものであ
ればよいが、サーバからネットワークを介して転送され
るものの方が一般的ではある。これらのクラスは、プロ
グラム実行時に合わせてロードされるものである。言換
すれば、それらは、要求に応じてロードされるものであ
り、プログラム実行に際しては、最初に参照されるもの
である。このようなロードが起こる場合には、そのクラ
スのいずれかが必要な時はいつでも、全体のクラスをロ
ードするのが通例である。
【0007】従来のアプローチによれば、ユーザがマシ
ン上で遠隔サーバ常駐のプログラムの実行要求を送出す
ると、メインメソッドを含むクラスファイルがサーバか
らネットワークを介してクライアントへロードされる。
このクラスファイルは、プログラムのバイトコードを含
むものである。仮想マシンは、プログラムのメインメソ
ッドを起動させ実行を開始する。
【0008】実行は、プログラムがコンポーネント、例
えば、"F"であるコンポーネントを参照するまで続けら
れる。この参照に対する応答では、コンポーネントFを
含む全体のクラスがサーバ上のクラスファイルからクラ
イアントへネットワークを介して転送される。参照され
たコンポーネントFが使用されると、実行は、他のコン
ポーネント、例えば、"G"であるコンポーネントを参照
するまで続けられる。この参照に対する応答では、コン
ポーネントGを含む全体のクラスがサーバ上のクラスフ
ァイルからクライアントへネットワークを介して転送さ
れる。その後、実行は、そのまま続けられ完了する。実
行が完了すると最後に、ネットワーク上のクライアント
サーバ間の接続が切断されることになる。
【0009】
【発明が解決しようとする課題】しかしながら、このよ
うな従来のアプローチによれば、2つの重大な欠点があ
る。第1に、プログラムの実行全体において、クライア
ントサーバ間で繰り返し接続を必要とする。このように
長時間の接続が必要になると、モービル・コンピューテ
ィング等には適当ではない。第2に、従来のアプローチ
は、コンポーネント(例えば、コンポーネントF)が参照
されるときは常に、その参照されたコンポーネントを含
む全体のクラスがサーバからロードされることを要求す
る。しかしながら、最終的に使用されるクラスのコンポ
ーネントがほんの僅かであるとすれば、未使用のコンポ
ーネントをサーバからクライアントに転送するのに必要
なバンド幅は、浪費されることになる。これでは、クラ
イアントサーバ間で、制限されたバンド幅を伴う状況で
は、接続スピードが遅くなったり、接続の待ち時間が多
くなるといった問題を引き起こす。
【0010】従って、実行開始前にプログラム全体の必
要なコンポーネントのみをパッケージし、それをクライ
アントに転送することにより、上記の問題を解決するシ
ステムが求められている。従来より、プレパッケージソ
フトウエアは、遠隔実行用として、Cobol, C又はFortan
等、マシン互換性を要求するコンパイル済みのコンピュ
ータ言語を採用してきた。一方、そうしたプレパッケー
ジソフトウエアは、必要なコンポーネントを親クラスか
ら抽出する等の付加利益を提供するJavaプログラミング
言語等のオブジェクト指向言語を採用したものではなか
った。
【0011】本発明の解決しようとする課題は、クライ
アントサーバ間で、接続を何度も行う必要がなく、且
つ、接続スピードを速くし、接続待ち時間を短縮するこ
とができる分散システム中におけるプログラム実行方法
及びその装置、分散システム中におけるプログラム実行
手順を記憶したコンピュータ読み書き可能な記憶媒体及
びコンピュータシステムを提供することにある。
【0012】
【課題を解決するための手段】上記課題を解決するため
に、本発明に係る分散システム中におけるプログラム実
行方法は、クライアント上で遠隔実行されるプログラム
のパッケージ要求を受信する受信工程と、プログラム中
で参照され、前記クライアントに対して全ての有効なク
ラスを識別する識別工程と、識別されたクラスへの少な
くとも1つの参照付けを含むインストラクションをリン
ケージエディタへ提供する提供工程とを備えたことを要
旨とするものである。
【0013】また、本発明に係る分散システム中におけ
るプログラム実行装置は、クライアント上で遠隔実行さ
れるプログラムのパッケージ要求を受信する受信手段
と、プログラム中で参照され、前記クライアントに対し
て全ての有効なクラスを識別する識別手段と、識別され
たクラスへの少なくとも1つの参照付けを含むインスト
ラクションをリンケージエディタへ提供する提供手段と
を備えたことを要旨とするものである。
【0014】また、本発明に係る分散システム中におけ
るプログラム実行手順を記憶したコンピュータ読み書き
可能な記憶媒体は、分散システムで実行させるためのプ
ログラムコンポーネントのパッケージ手順を記憶したコ
ンピュータ読み書き可能な記憶媒体であって、当該手順
が、クライアント上で遠隔実行されるプログラムのパッ
ケージ要求を受信する受信手順と、プログラム中で参照
され、前記クライアントに対して全ての有効なクラスを
識別する識別手順と、識別されたクラスへの少なくとも
1つの参照付けを含むインストラクションをリンケージ
エディタへ提供する提供手順とを備えたことを要旨とす
るものである。
【0015】また、本発明に係るコンピュータシステム
は、プロセッサ、メモリ及び仮想マシンタスクを含むラ
ンタイム環境を備えたクライアントマシンと、プロセッ
サ、メモリ、インタフェースタスク及びコンポーネント
ファイルを備えたサーバマシンと、前記クライアントマ
シンと前記サーバマシンとを接続するネットワークとを
備えたことを要旨とするものである。
【0016】
【発明の実施の形態】以下に、本発明に係る好適な一実
施の形態を図面を参照して説明する。尚、以下の説明に
おいては、同一又は略同一の部材については可能な限り
全図を通して同一の符号を付している。
【0017】1. 概要 本発明の一実施形態に係るシステム及び方法は、一般的
に複数のクライアントと単一又は複数のサーバとを有す
る分散コンピュータシステムにおいて動作するものであ
る。一例として、プログラムを実行するためにシーク中
のクライアントが、サーバに対してそのプログラムを走
らせるのに必要なソフトウエアをパッケージする要求を
出すものが挙げられる。この要求を公式化するに際して
は、クライアントは、そのプログラム中に含まれるべき
コンポーネントを指定する。
【0018】サーバで実行中のタスク(インタフェース
タスク)は、この要求を受信すると、クライアントマシ
ンの既存のソフトウエアコンポーネントを決定する。イ
ンタフェースタスクは、この情報を用いてリンケージエ
ディタと称される別個のタスクに対して一組のインスト
ラクションを公式化する。これらのインストラクション
は、被実行プログラムの名前、クライアントに既存のパ
ッケージ不要なコンポーネント、そのパッケージ中に含
めるようにクライアントマシンが指定した全てのソフト
ウエアコンポーネントを含むものである。
【0019】リンケージエディタは、この情報を受信す
ると、サーバ上に存在し、且つ、プログラム実行に必要
な全てのソフトウエアコンポーネントを含む出力ファイ
ルを生成する。この出力ファイルは、他のソフトウエア
コンポーネントに対する参照用プログラムを繰り返し解
析し、親クラスからそれらのコンポーネントを抽出する
ことによって生成される。リンケージエディタは、でき
あがった出力ファイルをインタフェースタスクへ送信
し、その要求を出したクライアントへ転送する。これに
より、プログラムの実行が開始されることになる。
【0020】2. 専門用語 初めに、以下の詳細な説明は、Javaプログラミング言語
に基づいたものである。従って、ここで使用される専門
用語について簡単に定義しておくが、以下で説明される
原則が他のプログラミング言語にあてはまる原則である
ことは、いわゆる当業者にとっては、自明である。
【0021】Javaアプリケーションプログラムは、単一
又は複数のクラス定義からなるものであり、各クラス定
義は、バイトコード及びその他の情報を含む固有の .cl
assファイルにコンパイルされたものである。"クラス"
は、データ("フィールド"),そのデータを操作する"メソ
ッド", 及び付随的情報の集合である。その付随的情報
は、例えば、共有データ構造, スーパークラスの名前,
及び実装インタフェースを含むものである。ここに使わ
れるように、"コンポーネント"は、メソッド若しくはフ
ィールド又はその両方にあてはまるものである。"オブ
ジェクト"は、クラスによって提供されたひな形を使用
することによって生成されるものであり、いわば、クラ
スの"インスタンス"である。Javaアプリケーションプロ
グラムは、メインメソッドを定義するクラスを必ず1つ
含むものであり、そのクラスは、Javaインタプリタがプ
ログラムを実行する開始ポイントを表すことになる。そ
うしたアプリケーションプログラムは、Javaインタプリ
タ、すなわち、Java仮想マシンによって実行することが
できる。
【0022】スタンドアロンのアプリケーションプログ
ラムと対比すると、Javaアプレットは、メインメソッド
を含まないため、その結果、Javaインタプリタにより直
接実行することができない。その代わり、Javaアプレッ
トは、ウェブブラウザ等の既に実行中のJavaアプリケー
ションによってロードされるクラスである。従って、Ja
vaアプリケーションは、いつでもアプレットの種々のメ
ソッドを起動させることができる。
【0023】ここで使用されるように、"プログラム"
は、単独で使用される場合には、アプリケーションプロ
グラム, Javaアプレット, プロセス, 又はその他のソフ
トウェアコードにあてはまるものである。"タスク"は、
コンピュータプロセッサ上で実行されるプログラムとし
て用いられる。"パッケージ"は、プログラム実行のため
に必要な、コンポーネント, 付随的情報, 又はその他の
データを含むものとして用いられる。
【0024】尚、説明を簡単にするために、以下の本発
明に係る一実施の形態についての説明は、アプリケーシ
ョンプログラムが実行中であるという仮定に基づくもの
とする。しかしながら、本発明がアプレット及びその他
のソフトウエアコードの実行をも包含するものであるこ
とは、いわゆる当業者にとって自明のことである。
【0025】3. アーキテクチャ 図1は、分散コンピュータシステムにおいてJavaプログ
ラミング言語が使用されるクライアントサーバの構成を
示したものである。システムは、サーバ160等の単一又
は複数のサーバと、クライアント100, 155等の単一又は
複数のクライアントとにより構成され、ネットワーク15
0によって内部接続されている。ソフトウエアデベロッ
パーは、Javaプログラミング言語を使用してプログラム
を作成し、サーバ160に記憶されるバイトコード115にコ
ンパイルする。一般的には、サーバ160は、Javaプログ
ラムにより使用される多くのクラスファイル125を含ん
でいる。クライアント100がJavaプログラムを実行した
いときは、サーバ160へ要求を送出する。その応答とし
て、サーバ160は、プログラムのバイトコード115をクラ
イアント100へ転送する。クライアント100では、バイト
コード115は、ランタイム環境110上で実行を行い、バイ
トコード115とクライアント100上のプロセッサとの間で
インタプリタとして機能する。
【0026】図2は、典型的な実行可能プログラムにお
けるコンポーネントの参照を示したブロック構成を示し
たものである。本実施例においては、プログラム200
は、コンポーネントA 210, コンポーネントB 220, コン
ポーネントC 230, 及びコンポーネントD 240から成る4
つのコンポーネントを参照する。参照されたコンポーネ
ントは、次々と、他のコンポーネントを参照する。例え
ば、コンポーネントB 220は、コンポーネントB1 250を
参照する。同様に、コンポーネントC 230は、コンポー
ネントA 210及びコンポーネントC1 270を参照する。次
に、コンポーネントC1 270は、コンポーネントC1A 280
を参照する。あるコンポーネントによる他のコンポーネ
ントへのこのような参照は、ディペンデンシーと称され
る。参照された各コンポーネントは、ロードされ、プロ
グラムの実行中使用される。
【0027】4. タイムチャート 図3は、本発明の一実施形態におけるリンク及び実行の
タイミングを説明するためのタイムチャートを示したも
のである。ユーザが要求を送出するとプロセスが開始さ
れ、クライアント100上でプログラムが実行される(ポイ
ント310)。これに応答して、サーバ160は、そのプログ
ラムを実行するのにどのコンポーネント及びディペンデ
ンシーが必要かを決定する(ポイント320)。これらの必
要な各コンポーネントは、付随的情報に従い、サーバ16
0からクライアント100へネットワーク150を介して転送
される(ポイント330)。このポイントではプログラム実
行に要求される全てのコンポーネント及びクラスがサー
バ160からクライアント100へ転送されるため、サーバク
ライアント間の接続は、ターミネートされることにな
る。
【0028】次に、プログラムの実行が開始され(ポイ
ント340)、コンポーネントA 210が参照される(ポイント
350)。そのコンポーネントは、既にクライアント100へ
ロードされているからであるが(ポイント330)、サーバ1
60からクライアント100へ、そのコンポーネントを別個
に転送する必要はない。同様に、コンポーネントB 220
が参照されるときには(ポイント360)、既にサーバ160か
らクライアント100へ転送済みであるため、更に転送す
る必要はない。従って、実行は、割り込まれることなく
終了することになる(ポイント370)。
【0029】図3に示したように、本発明の一実施形態
に係るプロセスは、クライアント100に対し、これがプ
ログラムのロードが終了するまでの間、サーバ160との
接続維持を要求するものである(ポイント300からポイン
ト330)。必要なコンポーネントと付随的クラス情報とが
一旦ロードされると(ポイント330)、クライアント100
は、サーバ160との接続を切断する。そして、プログラ
ム実行中は(ポイント340からポイント370)、クライアン
ト100とサーバ160とを接続する必要がない。更に、サー
バ160は、プログラム実行の本質的要素となるコンポー
ネント及び付随的要素のみをクライアント100へ転送す
るものである(ポイント330)。このように、不要なコン
ポーネントの転送を除去することにより、バンド幅をよ
り効率的に使用することが可能になる。
【0030】5. インタフェースタスク及びリンクエデ
ィタのアーキテクチャ 図4は、サーバクライアント間におけるインターフェー
スタスク及びリンケージエディタを説明するためのブロ
ック構成を示したものである。クライアント100は、ネ
ットワーク150を介してサーバ160と接続されている。サ
ーバ160は、メモリ482を含み、そのメモリは、Javaクラ
スファイルを含む。メモリ482としては、例えば、ラン
ダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、
ハードディスクドライブ又はコンパクトディスクリード
オンリメモリ(CD-ROM)等が好適なものとして挙げられ
る。サーバ160上における実行には、2つのタスク、すな
わち、インタフェースタスク484とリンケージエディタ4
87とがある。クライアント100上でプログラムを実行す
るのに必要なJavaコードをパッケージする要求は、サー
バ160に対して送出される。サーバ160では、インタフェ
ースタスク484により、この要求が受信される。インタ
フェースタスク484は、次々と、一組のパッケージイン
ストラクションを公式化して、それらをリンケージエデ
ィタ487へ送信する。リンケージディタ487は、サーバ16
0上での実行に必要な全てのコンポーネントを含むパッ
ケージを作成し、そのパッケージをインタフェースタス
ク484へ送信する。インタフェースタスク484は、このパ
ッケージを受信するとそれをクライアント100へ送信
し、クライアント100は、そのパッケージを使用してプ
ログラムを実行する。
【0031】6. インタフェースタスク 図5は、本発明の一実施形態におけるパッケージプロセ
スにおいてインタフェースタスクによって実行される工
程を示したフローチャートである。プロセスの開始点で
は、インタフェースタスク484(サーバ160上で実行)は、
名前付クライアント(例えばクライアント100)上で実行
するJavaプログラムをパッケージする要求を受信する
(ステップ510)。Javaプログラムは、Javaクラス及びコ
ンポーネントの集合として指定されたものである。いく
つかのクラスファイルの配置は、予め定められたもので
ある。その他の必要なクラスの配置は、Javaプログラム
をパッケージする要求に含まれている。
【0032】この要求の応答では、インタフェースタス
ク484は、一組のインストラクションをリンケージエデ
ィタ用に公式化する。これらのインストラクションの一
部として、インタフェースタスクは、リンケージエディ
タ487にそのプログラムの開始点を通知する(ステップ51
5)。これにより、どのコンポーネントが必要かを決定す
るための開始ポイントがリンケージエディタに対して与
えられることになる。
【0033】インタフェースタスク484は、クライアン
ト100上に既に現れている全てのクラスをリンケージエ
ディタ487に通知する(ステップ520)。この情報を提供す
ることにより、インタフェースタスクは、不要なパッケ
ージ処理を回避する。従って、リンケージエディタ487
は、クライアント100上に既存のコンポーネントをパッ
ケージする必要がなくなる。これにより、出力ファイル
のサイズを最小化でき、バンド幅を節約することができ
る。この情報は、コンポーネントのパッケージ要求の一
部としてインタフェースタスクへ提供される(ステップ5
10)。これに代えて、この情報は、既に提供されたとこ
ろから、サーバ160のメモリ482内に記憶させるようにし
てもよい。この工程を正確に操作することにより、クラ
イアント100上の既存のクラスは、サーバ160上のものと
一致することになる。
【0034】インタフェースタスク484は、プログラム
パッケージに追加されるべき全ての付加コンポーネント
をリンケージエディタ487に通知する(ステップ530)。こ
れは重要なことである。コンポーネントがリンケージ工
程から除外されるとすれば、そのコンポーネントを含む
クラスは、既にクライアント100上に存在するからであ
る。一方、除外されたコンポーネントは、クライアント
100上で有効でないその他のコンポーネントを参照すれ
ばよく、リンケージエディタ487によりパッケージへ追
加される必要がある。クラスがクライアント100上に既
存であるという理由から除外されたコンポーネントに加
え、プログラム的には発見されないいくつかのディペン
デンシーが存在することがある。インタフェースタスク
484へは、通常、コンポーネントのパッケージ要求の一
部として全ての付加的コンポーネントが通知される(ス
テップ510)。
【0035】例えば、メソッド quicksort は、リンケ
ージ工程から除外されるが、これは、そのメソッド su
n.misc.Sort を含むクラスが既にクライアント100上へ
ロード済みだからである。メソッド quicksort が起動
されると、パラメータの一つがメソッド doCompare を
保有するオブジェクトとなる。Quicksort は、doCompar
eを起動するものであるが、未だ、クライアント100へは
ロードされていない。従って、インタフェースタスク48
4は、メソッド doCompare が付加的コンポーネントとし
てロードされるように、リンケージエディタ487へ通知
しなければならない。
【0036】次に、インタフェースタスク484は、要求
されたJavaクラスファイルの検索用の配置リストをリン
ケージエディタ487へ通知する(ステップ540)。インタフ
ェースタスク484は、これらのインストラクションをリ
ンケージエディタ487へ送信し(ステップ550)、図5に示
したように出力ファイルを生成する。インタフェースタ
スク484は、出力ファイルを受信し、それをクライアン
ト100へ送信し(ステップ560)、これによりプロセスが終
了する。
【0037】7. リンケージエディタ 図6は、本発明の一実施形態に係るプログラム実行工程
を示したフローチャートであり、出力ファイルのパッケ
ージ工程においてリンケージエディタ487によって実行
される工程を示したフローチャートである。尚、以下の
説明は、図2に示した実施の形態に適用されるものであ
る。
【0038】プロセスの開始時では、リンケージエディ
タ487(通常、サーバ160で実行)は、インタフェースタス
ク484から一組のインストラクションを受信する。リン
ケージエディタ487は、実行プログラムの開始ポイント
でリストを生成して初期化する(ステップ605)。このリ
ストは、"コンポーネントリスト"と称されるものであ
り、リンケージエディタ487によりロードされるべき必
要な各コンポーネントに対する参照を含むものである。
【0039】次に、リンケージエディタ487は、次の項
目(最初は、メインメソッド)をそのコンポーネントリス
トから選択する(ステップ610)。リンケージエディタ487
は、その選択されたコンポーネントがリンケージ工程か
ら除外する項目リストにあるかどうかをチェックする
(ステップ615)。コンポーネントが除外項目リストにあ
る場合には、クライアント100又はその他のサーバ等の
別個のソースから読み出すことができる。メインメソッ
ドが除外リスト上にない場合には、リンケージエディタ
487は、チェックを行い、選択されたコンポーネントが
既にリンケージ工程にロードされているかどうかを決定
する(ステップ620)。メインメソッドが予めロードされ
ていない場合には、リンケージエディタ487は、ロード
されるコンポーネントを含むクラスファイルを配置する
が、このとき、リンケージエディタ487に対するインス
トラクションにおいてサーバにより提供されたファイル
配置リストを用いて行う(ステップ625)。リンケージエ
ディタ487は、そのクラスファイルを読み出し、そのク
ラスファイルに関連付けられる全ての付随的情報を抽出
し、また、そのクラスファイルから選択されたコンポー
ネントを抽出し、更に、抽出された付随的情報及びコン
ポーネントを出力ファイルに追加する(ステップ630)。
このような場合、リンケージエディタ487は、全体のク
ラスをロードするのではなく、必要なコンポーネント及
び付随的情報のみを抽出するものである。
【0040】抽出されたコンポーネントをロードした
後、リンケージエディタ487は、無効なメソッドがある
かどうかをチェックする(ステップ632)。この工程につ
いては、図7を参照して更に説明する。リンケージエデ
ィタ487は、抽出されたコンポーネントを解析して、そ
の他のコンポーネントを参照するかどうかを決定する
(ステップ635)。換言すれば、リンケージエディタ487
は、抽出されたコンポーネントをディペンデンシーとし
て解析する。本実施例によれば、メインメソッドは、4
つのコンポーネントA, B, C, Dを参照する。抽出された
コンポーネント(メイン)がディペンデンシーを含む場合
(ステップ640)、それらのディペンデンシーは、コンポ
ーネントリスト(ステップ645)に追加され、上述のプロ
セスが繰り返されることになる(ステップ610)。
【0041】メインメソッドについての上述したプロセ
スと同じプロセスは、コンポーネントA, B, C, Dへ受け
継がれる。インタフェースタスク484がリンケージエデ
ィタ487にパッケージ工程から除外するように命令した
クラスにコンポーネントDが含まれていると仮定すると
(既にクライアント100で有効だからである)、コンポー
ネントDは、出力ファイルから除外されることになる(ス
テップ615)。一方、コンポーネントA, B, Cは、各クラ
スから(それらのクラスに関連付けられた付随的情報に
応じて)抽出され、出力ファイルへ追加される(ステップ
625-630)。それらのコンポーネントが抽出され解析され
ると、リンケージエディタ487は、コンポーネントBがコ
ンポーネントB1を、コンポーネントCがコンポーネントA
及びC1を参照することを発見することになる(ステップ6
35)。これにより、コンポーネントB1, A及びC1は、コン
ポーネントリストへ追加され(ステップ635)、上述した
プロセスは、再び繰り返されることになる(ステップ61
0)。
【0042】この新たな繰り返しにおいては、コンポー
ネントAは抽出されないが、これは、既に出力ファイル
に追加されているからである(ステップ620)。一方、コ
ンポーネントB1及びC1は、そのクラスに関連付けられた
付随的情報に従って各クラスから抽出され、出力ファイ
ルへ追加される(ステップ625-630)。リンケージエディ
タ487は、コンポーネントC1がコンポーネントC1Aを参照
することをその後発見すると(ステップ635)、それをコ
ンポーネントリストへ追加する(ステップ645)。プロセ
スは、コンポーネントC1Aが各クラスから抽出される
間、更にもう一度繰り返され(そのクラスの付随的情報
に従って)、出力ファイルに追加される(ステップ625-63
0)。
【0043】このように繰り返しプロセスを使用するこ
とにより、リンケージエディタ487は、サーバ160に存在
し、且つ、プログラム実行に必要な全てのコンポーネン
ト(及び付随的情報)を含む出力ファイルを作成する。リ
ンケージエディタ487は、この出力ファイルをインタフ
ェースタスク484へ送信し(ステップ655)、プロセスが終
了する。
【0044】図7は、本発明の一実施形態に係るプログ
ラム実行工程を示したフローチャートであり、無視され
たメソッドをチェックするためにリンケージエディタ48
7によって実行される工程を示したフローチャートであ
る。無視は、メソッドのスーパークラスの実装とサブク
ラスの実装とを入れ替えるテクニックである。無視され
たメソッドをチェックするには、リンケージエディタ48
7は、まず、抽出されたコンポーネントがメソッドなの
かデータなのかを決定する(ステップ705)。この理由
は、無視の送出がメソッドがコンポーネントであるとき
にのみ関係するものであり、抽出されたコンポーネント
がデータである場合には、何もする必要はないからであ
る。一方、抽出されたコンポーネントがメソッドである
時には、リンケージエディタ487は、そのメソッドがコ
ンストラクタ(すなわち、それがオブジェクトを作成す
るものであるか)であるかどうかを決定する(ステップ71
0)。
【0045】その抽出されたメソッドがコンストラクタ
ではない場合には、リンケージエディタ487は、そのメ
ソッドが静的であるかどうかを決定する(ステップ71
5)。それが静的である場合には、何もする必要がない。
その理由は、静的メソッドは、無視され得ないからであ
る。そのメソッドが静的でない場合には、リンケージエ
ディタ487は、その抽出されたメソッドが無視されてい
るかどうかをチェックする。特に、リンケージエディタ
487は、既にコンストラクタがロードされた全てのサブ
クラス(抽出されたメソッドのクラス)を検索する。それ
らのサブクラスの内、どれかがその抽出されたメソッド
を無視するメソッドを保有している場合には、その無視
されたメソッドは、そのコンポーネントリストに追加さ
れることになる(ステップ720)。
【0046】その抽出されたメソッドがコンストラクタ
である場合には、リンケージエディタ487は、その抽出
されたメソッドのクラスを検索し、それが既にロードさ
れたメソッドを無視する全てのメソッドを含むものであ
るかどうかを決定する。特に、リンケージエディタ487
は、その抽出されたコンポーネントを含むクラスを非静
的メソッド(静的メソッドは無視できない)として検索す
る(ステップ725)。それらの非静的メソッドの内、どれ
かがその抽出されたコンポーネントクラスのスーパーク
ラスから既にロードされたメソッドを無視するものであ
る場合には(ステップ730)、無視された非静的メソッド
がそのコンポーネントリストへ追加されることになる
(ステップ735)。上述したアプローチは、無視されたメ
ソッドに限定されるものではなく、Javaインタフェース
を構成するメソッドであれば適用され得るものである。
【0047】8. クライアント処理 図8は、本発明の一実施形態に係るプログラム実行工程
を示したフローチャートであり、プログラムを実行する
ためにクライアントによって実行される工程を示したフ
ローチャートである。まず、クライアント100は、指定
されたプログラムの実行開始の要求を送出する(ステッ
プ810)。この要求に応答して、クライアント100は、サ
ーバ160からプログラム実行に必要な全てのコンポーネ
ントを含むするパッケージされたファイル(すなわち、
上述した出力ファイル)を受信する(ステップ820)。クラ
イアント100は、提供されたコンポーネントをクライア
ント100上の既存のものへ追加する(ステップ830)。特
に、クライアント100は、そのパッケージされたファイ
ルからその情報を読み出して、内部的データストラクチ
ャを構築し、これらのデータストラクチャをそのクラス
名のリストへリンクする。次に、クライアント100は、
プログラムの実行を開始し(ステップ840)、必要なクラ
ス名を解析する。そして、そのプロセスは終了する。
【0048】9. 結論 上述したシステムは、プログラム実行のために必要なコ
ンポーネントのみをパッケージしてその実行の開始前に
クライアントへ配布するものである。上述した一実施の
形態は、本発明の要旨を説明するものであり、従って、
本発明は、これに限定されるものではなく、多くの変形
例が可能である。例えば、上述したインプリメンテーシ
ョンは、ソフトウエアを含むものであるが、本発明は、
ハードウエアとソフトウエアとの組み合わせ又はハード
ウエアのみによってもインプリメントされ得るものであ
る。
【0049】本発明に係る方法及び装置は、一般的な分
散システム及びJavaプログラミング環境において用いら
れるものであり、本発明がその他のシステム及びプログ
ラミング環境において実現され得るものであることは、
いわゆる当業者にとっては自明のことである。更に、本
発明の要旨は、メモリに記憶されているものとして説明
がなされているが、これらの要旨は、その他の種類のコ
ンピュータ読み書き可能なメディア、例えば、ハードデ
ィスク、フロッピーディスク又はCD-ROM等の補助記憶装
置、インターネットからのキャリアウエイブ、又はRAM
やROM等のその他の形態によっても実現され得るもので
あることは、いわゆる当業者にとっては自明のことであ
る。
【0050】
【発明の効果】本発明に係る分散システム中におけるプ
ログラム実行方法によれば、クライアント上で遠隔実行
されるプログラムのパッケージ要求を受信する受信工程
と、プログラム中で参照され、前記クライアントに対し
て全ての有効なクラスを識別する識別工程と、識別され
たクラスへの参照付けをリンケージエディタへ提供する
提供工程とを備えたものであるから、クライアントサー
バ間で、接続を何度も行う必要がなく、且つ、接続スピ
ードを速くし、接続待ち時間を短縮することができる。
【0051】本発明に係る分散システムで実行させるた
めのプログラムコンポーネントのパッケージ手順を記憶
したコンピュータ読み書き可能な記憶媒体は、クライア
ント上で遠隔実行されるプログラムのパッケージ要求を
受信する受信手順と、プログラム中で参照され、前記ク
ライアントに対して全ての有効なクラスを識別する識別
手順と、識別されたクラスへの参照付けをリンケージエ
ディタへ提供する提供手順とを備えたものであるから、
クライアントサーバ間で、接続を何度も行う必要がな
く、且つ、接続スピードを速くし、接続待ち時間を短縮
することができる。
【0052】本発明に係る分散システム中におけるプロ
グラム実行装置によれば、クライアント上で遠隔実行さ
れるプログラムのパッケージ要求を受信する受信手段
と、プログラム中で参照され、前記クライアントに対し
て全ての有効なクラスを識別する識別手段と、識別され
たクラスへの参照付けをリンケージエディタへ提供する
提供手段とを備えたものであるから、クライアントサー
バ間で、接続を何度も行う必要がなく、且つ、接続スピ
ードを速くし、接続待ち時間を短縮することができる。
【0053】本発明に係るコンピュータシステムによれ
ば、プロセッサ、メモリ及び仮想マシンタスクを含むラ
ンタイム環境を備えたクライアントマシンと、プロセッ
サ、メモリ、インタフェースタスク及びコンポーネント
ファイルを備えたサーバマシンと、前記クライアントマ
シンと前記サーバマシンとを接続するネットワークとを
備えたものであるから、クライアントサーバ間で、接続
を何度も行う必要がなく、且つ、接続スピードを速く
し、接続待ち時間を短縮することができる。
【図面の簡単な説明】
【図1】図1は、典型的なクライアントサーバ構成を示
した図であり、仮想マシンを含むランタイム環境を使用
する遠隔プログラム実行を説明するための図である。
【図2】図2は、典型的な参照されたコンポーネントと
その依存状態に応じた実行可能なオブジェクト指向プロ
グラムの構成を示したブロック図である。
【図3】図3は、本発明の一実施形態におけるリンクと
実行とのタイミングを説明するためのタイムチャートを
示した図である。
【図4】図4は、ブロック図であり、サーバクライアン
ト間での典型的なインターフェースとリンケージエディ
タとを説明するための図である。
【図5】図5は、本発明の一実施形態に係るプログラム
実行工程を示したフローチャートであり、パッケージプ
ロセスでのインタフェースタスクによって実行される工
程を示したフローチャートである。
【図6】図6は、本発明の一実施形態に係るプログラム
実行工程を示したフローチャートであり、出力ファイル
をパッケージするリンケージエディタによって実行され
る工程を示したフローチャートである。
【図7】図7は、本発明の一実施形態に係るプログラム
実行工程を示したフローチャートであり、必要なメソッ
ドを追加する工程を示したフローチャートである。
【図8】図8は、本発明の一実施形態に係るプログラム
実行工程を示したフローチャートであり、プログラムを
実行するためにクライアントによって実行される工程を
示したフローチャートである。
【符号の説明】
100, 155 クライアント 110 ランタイム環境 115 バイトコード 125 クラスファイル 150 ネットワーク 160 サーバ 200 プログラム 210 コンポーネントA 220 コンポーネントB 230 コンポーネントC 240 コンポーネントD 250 コンポーネントB1 270 コンポーネントC1 280 コンポーネントC1A 484 インタフェースタスク 482 メモリ 487 リンケージエディタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 タック リチャード アメリカ合衆国 94114 カリフォルニア 州、サンフランシスコ、ヒルストリート 343 (72)発明者 フレスコ ネディム アメリカ合衆国 94122−2667 カリフォ ルニア州、サンフランシスコ、アパートメ ント #2、5thアベニュー 1366 (72)発明者 ガジェウスカ ハニア アメリカ合衆国 94062 カリフォルニア 州、ウッドサイド、スカイロンダドライブ 52

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 クライアント上で遠隔実行されるプログ
    ラムのパッケージ要求を受信する受信工程と、 プログラム中で参照され、前記クライアントに対して全
    ての有効なクラスを識別する識別工程と、 識別されたクラスへの参照付けをリンケージエディタへ
    提供する提供工程とを備えたことを特徴とする分散シス
    テム中におけるプログラム実行方法。
  2. 【請求項2】 前記識別工程は、更に、 メモリに記憶された情報に基づいて全ての有効なクラス
    を確認する確認工程を備えたことを特徴とする請求項1
    に記載される分散システム中におけるプログラム実行方
    法。
  3. 【請求項3】 前記識別工程は、更に、 前記プログラムをパッケージする要求に含まれる情報に
    基づいて全ての有効なクラスを確認する確認工程を備え
    たことを特徴とする請求項1に記載される分散システム
    中におけるプログラム実行方法。
  4. 【請求項4】 前記提供工程は、更に、 前記プログラムに含まれるコンポーネントへの参照付け
    を受信する第1受信工程と、 前記コンポーネントに対するファイル配置への参照付け
    を受信する第2受信工程と、 前記コンポーネント及びファイル配置の同一性を前記リ
    ンケージエディタへ提供する提供工程とを備えたことを
    特徴とする請求項1に記載される分散システム中におけ
    るプログラム実行方法。
  5. 【請求項5】 前記提供工程は、更に、 前記プログラムの開始ポイントを決定する決定工程と、 前記開始ポイントの同一性を前記リンケージエディタへ
    提供する提供工程とを備えたことを特徴とする請求項1
    に記載される分散システム中におけるプログラム実行方
    法。
  6. 【請求項6】 前記提供工程は、更に、 前記プログラムパッケージへ付加するために追加コンポ
    ーネントへの参照付けを受信する受信工程と、 前記追加コンポーネントの同一性を前記リンケージエデ
    ィタへ提供する提供工程とを備えたことを特徴とする請
    求項1に記載される分散システム中におけるプログラム
    実行方法。
  7. 【請求項7】 前記追加コンポーネント用のファイル配
    置の同一性を前記リンケージエディタへ提供する提供工
    程を備えたことを特徴とする請求項6に記載される分散
    システム中におけるプログラム実行方法。
  8. 【請求項8】 更に、 前記リンケージエディタからパッケージを受信する受信
    工程と、 前記クライアントへ前記パッケージを送信する送信工程
    とを備えたことを特徴とする請求項1に記載される分散
    システム中におけるプログラム実行方法。
  9. 【請求項9】 更に、 前記クライアント上に既に配置されたコンポーネントへ
    パッケージコンポーネントを付加する付加工程を備えた
    ことを特徴とする請求項8に記載される分散システム中
    におけるプログラム実行方法。
  10. 【請求項10】 分散システムで実行させるためのプロ
    グラムコンポーネントのパッケージ手順を記憶したコン
    ピュータ読み書き可能な記憶媒体であって、当該手順
    が、 クライアント上で遠隔実行されるプログラムのパッケー
    ジ要求を受信する受信手順と、 プログラム中で参照され、前記クライアントに対して全
    ての有効なクラスを識別する識別手順と、 識別されたクラスへの参照付けをリンケージエディタへ
    提供する提供手順とを備えたことを特徴とするコンピュ
    ータ読み書き可能な記憶媒体。
  11. 【請求項11】 前記識別手順は、更に、 メモリに記憶された情報に基づいて全ての有効なクラス
    を確認する確認手順を備えたことを特徴とする請求項1
    0に記載されるコンピュータ読み書き可能な記憶媒体。
  12. 【請求項12】 前記識別手順は、更に、 前記プログラムをパッケージする要求に含まれる情報に
    基づいて全ての有効なクラスを確認する確認手順を備え
    たことを特徴とする請求項10に記載されるコンピュー
    タ読み書き可能な記憶媒体。
  13. 【請求項13】 前記提供手順は、更に、 前記プログラムに含まれるコンポーネントへの参照付け
    を受信する第1受信手順と、 前記コンポーネントに対するファイル配置への参照付け
    を受信する第2受信手順と、 前記コンポーネント及びファイル配置の同一性を前記リ
    ンケージエディタへ提供する提供手順とを備えたことを
    特徴とする請求項10に記載されるコンピュータ読み書
    き可能な記憶媒体。
  14. 【請求項14】 前記提供手順は、更に、 前記プログラムの開始ポイントを決定する決定手順と、 前記開始ポイントの同一性を前記リンケージエディタへ
    提供する提供手順とを備えたことを特徴とする請求項1
    0に記載されるコンピュータ読み書き可能な記憶媒体。
  15. 【請求項15】 前記提供手順は、更に、 前記プログラムパッケージへ付加するために追加コンポ
    ーネントへの参照付けを受信する受信手順と、 前記追加コンポーネントの同一性を前記リンケージエデ
    ィタへ提供する提供手順とを備えたことを特徴とする請
    求項10に記載されるコンピュータ読み書き可能な記憶
    媒体。
  16. 【請求項16】 前記追加コンポーネント用のファイル
    配置の同一性を前記リンケージエディタへ提供する提供
    工程を備えたことを特徴とする請求項15に記載される
    コンピュータ読み書き可能な記憶媒体。
  17. 【請求項17】 更に、 前記リンケージエディタからパッケージを受信する受信
    手順と、 前記クライアントへ前記パッケージを送信する送信手順
    とを備えたことを特徴とする請求項10に記載されるコ
    ンピュータ読み書き可能な記憶媒体。
  18. 【請求項18】 更に、 前記クライアント上に既に配置されたコンポーネントへ
    パッケージコンポーネントを付加する付加手順を備えた
    ことを特徴とする請求項17に記載されるコンピュータ
    読み書き可能な記憶媒体。
  19. 【請求項19】 クライアント上で遠隔実行されるプロ
    グラムのパッケージ要求を受信する受信手段と、 プログラム中で参照され、前記クライアントに対して全
    ての有効なクラスを識別する識別手段と、 識別されたクラスへの参照付けをリンケージエディタへ
    提供する提供手段とを備えたことを特徴とする分散シス
    テム中におけるプログラム実行装置。
  20. 【請求項20】 プロセッサ、メモリ及び仮想マシンタ
    スクを含むランタイム環境を備えたクライアントマシン
    と、 プロセッサ、メモリ、インタフェースタスク及びコンポ
    ーネントファイルを備えたサーバマシンと、 前記クライアントマシンと前記サーバマシンとを接続す
    るネットワークとを備えたことを特徴とするコンピュー
    タシステム。
JP11116931A 1998-03-20 1999-03-18 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム Pending JP2000155686A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/044,900 1998-03-20
US09/044,900 US6493870B1 (en) 1998-03-20 1998-03-20 Methods and apparatus for packaging a program for remote execution

Publications (1)

Publication Number Publication Date
JP2000155686A true JP2000155686A (ja) 2000-06-06

Family

ID=21934939

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11116931A Pending JP2000155686A (ja) 1998-03-20 1999-03-18 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム

Country Status (4)

Country Link
US (1) US6493870B1 (ja)
EP (1) EP0950949A3 (ja)
JP (1) JP2000155686A (ja)
CN (1) CN1154040C (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503866A (ja) * 2000-06-16 2004-02-05 ネクスウエイブ・ソルーションズ モジュラーコンピュータシステムおよび関連方法
WO2005096139A1 (en) * 2004-04-01 2005-10-13 Vaakya Technologies Private Limited System and method for program execution
US7493616B2 (en) 2001-05-30 2009-02-17 Research In Motion Limited Mobile communication device application processing system

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999031584A1 (de) * 1997-12-17 1999-06-24 Fujitsu Siemens Computers Gmbh Verfahren zum umsetzen eines systemaufrufs
US7512664B1 (en) * 1999-01-28 2009-03-31 Texas Instruments Incorporated System and method for loading resolved java class files to a client device
US6296366B1 (en) * 1999-03-01 2001-10-02 Gregory Lee Hopps Lighted decorative article having meridian-configured loops and method for visually signaling location of gift packages
US6775536B1 (en) * 1999-11-03 2004-08-10 Motorola, Inc Method for validating an application for use in a mobile communication device
US6546554B1 (en) * 2000-01-21 2003-04-08 Sun Microsystems, Inc. Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US7155490B1 (en) * 2000-03-01 2006-12-26 Freewebs Corporation System and method for providing a web-based operating system
US6742026B1 (en) * 2000-06-19 2004-05-25 International Business Machines Corporation System and method for providing a distributable runtime
US7219304B1 (en) * 2000-06-19 2007-05-15 International Business Machines Corporation System and method for developing and administering web applications and services from a workflow, enterprise, and mail-enabled web application server and platform
US6925593B1 (en) 2000-09-08 2005-08-02 Corel Corporation Method and apparatus for transferring data during automated data processing
US6938030B1 (en) 2000-09-08 2005-08-30 Corel Corporation Method and apparatus for facilitating accurate automated processing of data
US6944865B1 (en) 2000-09-08 2005-09-13 Corel Corporation Method and apparatus for saving a definition for automated data processing
US6850956B1 (en) 2000-09-08 2005-02-01 Corel Inc. Method and apparatus for obtaining and storing data during automated data processing
US6961922B1 (en) * 2000-09-08 2005-11-01 Corel Corporation Method and apparatus for defining operations to be performed during automated data processing
US7853833B1 (en) 2000-09-08 2010-12-14 Corel Corporation Method and apparatus for enhancing reliability of automated data processing
US7747673B1 (en) * 2000-09-08 2010-06-29 Corel Corporation Method and apparatus for communicating during automated data processing
US7296238B1 (en) 2000-09-08 2007-11-13 Corel Corporation Method and apparatus for triggering automated processing of data
US6868193B1 (en) 2000-09-08 2005-03-15 Corel Inc. Method and apparatus for varying automated data processing
JP2002092366A (ja) * 2000-09-11 2002-03-29 Nec Corp Cpu時間売買方法及びcpu時間売買システムにおける管理サーバ
US7243346B1 (en) * 2001-05-21 2007-07-10 Microsoft Corporation Customized library management system
US7389515B1 (en) 2001-05-21 2008-06-17 Microsoft Corporation Application deflation system and method
US7099663B2 (en) * 2001-05-31 2006-08-29 Qualcomm Inc. Safe application distribution and execution in a wireless environment
US6748396B2 (en) * 2001-06-01 2004-06-08 International Business Machines Corporation Independent class loader for dynamic class loading
DE60139485D1 (de) * 2001-10-31 2009-09-17 Hewlett Packard Co Vorrichtung und Verfahren zur Datenverarbeitung
EP1313010A1 (de) * 2001-11-19 2003-05-21 Siemens Aktiengesellschaft Verfahren zum Übermitteln eines Programms, zugehöriges Programm und zugehörige Vorrichtung
US20030121024A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation System and method for building a runtime image from components of a software program
US7178140B2 (en) * 2002-02-28 2007-02-13 Sun Microsystems, Inc. Speeding up application downloading from a remote server
US8166185B2 (en) * 2002-03-05 2012-04-24 Hewlett-Packard Development Company, L.P. System and method for enterprise software distribution
US6983449B2 (en) 2002-03-15 2006-01-03 Electronic Data Systems Corporation System and method for configuring software for distribution
US7590618B2 (en) * 2002-03-25 2009-09-15 Hewlett-Packard Development Company, L.P. System and method for providing location profile data for network nodes
US7290215B2 (en) * 2002-06-03 2007-10-30 Microsoft Corporation Dynamic wizard interface system and method
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US7480895B2 (en) * 2003-11-24 2009-01-20 International Business Machines Corporation Web application development tool
US8140614B2 (en) * 2005-06-02 2012-03-20 International Business Machines Corporation Distributed computing environment with remote data collection management
US9298448B2 (en) * 2013-05-21 2016-03-29 Red Hat, Inc. System and method for run time dependency resolution
CN103473089A (zh) * 2013-09-02 2013-12-25 深圳市华傲数据技术有限公司 一种分布式java程序运行方法、装置和系统
CN103595790B (zh) * 2013-11-14 2017-01-04 华为技术有限公司 设备远程访问的方法、瘦客户端和虚拟机
CN113312109A (zh) * 2021-06-24 2021-08-27 广州市思力智慧互联网科技有限公司 一种项目打包方法、装置及计算机设备

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237688A (en) * 1987-11-18 1993-08-17 International Business Machines Corporation Software packaging structure having hierarchical replaceable units
US5473772A (en) * 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
GB2242293A (en) * 1990-01-05 1991-09-25 Apple Computer Apparatus and method for dynamic linking of computer software components
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
US5603031A (en) 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5590331A (en) * 1994-12-23 1996-12-31 Sun Microsystems, Inc. Method and apparatus for generating platform-standard object files containing machine-independent code
US5666501A (en) * 1995-03-30 1997-09-09 International Business Machines Corporation Method and apparatus for installing software
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
DE19535519C2 (de) * 1995-09-25 1999-03-04 Ibm Verfahren zur Reduzierung des Umfanges von Computerprogrammen
JPH09134282A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd プログラム作成方法
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US6526565B1 (en) * 1995-12-21 2003-02-25 International Business Machines Corporation Packaging algorithm for providing object oriented applications having reduced footprints
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US6112025A (en) * 1996-03-25 2000-08-29 Sun Microsystems, Inc. System and method for dynamic program linking
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US5790796A (en) * 1996-06-14 1998-08-04 Symantec Corporation Polymorphic package files to update software components
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5911071A (en) * 1996-09-13 1999-06-08 Sun Microsystems, Inc. Persistent programming system and method for deploying self-containing executable applications
US5950010A (en) * 1996-11-25 1999-09-07 J.D. Edwards World Source Co. System and method for customized application package building and installation
US6065046A (en) * 1997-07-29 2000-05-16 Catharon Productions, Inc. Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network
GB2329490B (en) * 1997-09-19 2002-06-05 Ibm Remote application design
US5966702A (en) * 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
US6349344B1 (en) * 1997-12-16 2002-02-19 Microsoft Corporation Combining multiple java class files into a run-time image
US6199196B1 (en) * 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US6336122B1 (en) * 1998-10-15 2002-01-01 International Business Machines Corporation Object oriented class archive file maker and method
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
US6279030B1 (en) * 1998-11-12 2001-08-21 International Business Machines Corporation Dynamic JAVA™ class selection and download based on changeable attributes
US6247175B1 (en) * 1998-12-22 2001-06-12 Nortel Networks Limited Method and apparatus for identifying and removing unused software procedures

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004503866A (ja) * 2000-06-16 2004-02-05 ネクスウエイブ・ソルーションズ モジュラーコンピュータシステムおよび関連方法
US7493616B2 (en) 2001-05-30 2009-02-17 Research In Motion Limited Mobile communication device application processing system
US8627316B2 (en) 2001-05-30 2014-01-07 Blackberry Limited Mobile communications device application processing system
WO2005096139A1 (en) * 2004-04-01 2005-10-13 Vaakya Technologies Private Limited System and method for program execution

Also Published As

Publication number Publication date
EP0950949A2 (en) 1999-10-20
CN1233009A (zh) 1999-10-27
US6493870B1 (en) 2002-12-10
CN1154040C (zh) 2004-06-16
EP0950949A3 (en) 2007-03-14

Similar Documents

Publication Publication Date Title
JP2000155686A (ja) 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム
JP2000029714A (ja) 分散システム中における実行用プログラムコンポ―ネントのパッケ―ジ方法、実行用プログラムコンポ―ネントのパッケ―ジプログラムを記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム
US6446070B1 (en) Method and apparatus for dynamic distributed computing over a network
EP1076290B1 (en) Method for on-demand network application download and execution
US7131122B1 (en) Apparatus, system and method for detecting old version of an applet in a client brower's JVM
US7093243B2 (en) Software mechanism for efficient compiling and loading of java server pages (JSPs)
US6305012B1 (en) Method and apparatus for dynamic selection of instructions for compiling using tags
EP1451682B1 (en) Platform-independent selective ahead-of-time compilation
US6295643B1 (en) Method and apparatus for improving java virtual machine performance using persistent execution information
US6272674B1 (en) Method and apparatus for loading a Java application program
US6877163B1 (en) Method and system for dynamic proxy classes
US20020147855A1 (en) Method and system for cross platform, parallel processing
KR20010041293A (ko) 원격 메소드 호출을 위한 방법 및 장치
US20030033443A1 (en) Virtual machine integration application program interface
EP1104564A2 (en) Method and apparatus of translating and executing native code in a virtual machine environment
JPH11242597A (ja) Javaバイトコードデータのフローグラフの生成方法
KR20010034542A (ko) 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치
WO1999008182A1 (en) Method and apparatus for static and dynamic generation of information on a user interface
US6633864B1 (en) Method and apparatus for multi-threaded based search of documents
KR20010041226A (ko) 분산 시스템에서 원격 프로시져 호출에 연관된 프로세싱을 수행하기 위한 다운로드 가능한 스마트 플락시
JPH10269072A (ja) アプリケーション開発方法
JP2002132502A (ja) 言語機能解釈による分散オブジェクト自動生成システム及び方法
Pandrangi Little Smalltalk in Java

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090630