JP2002521745A - モジュールのストリーミング - Google Patents

モジュールのストリーミング

Info

Publication number
JP2002521745A
JP2002521745A JP2000561545A JP2000561545A JP2002521745A JP 2002521745 A JP2002521745 A JP 2002521745A JP 2000561545 A JP2000561545 A JP 2000561545A JP 2000561545 A JP2000561545 A JP 2000561545A JP 2002521745 A JP2002521745 A JP 2002521745A
Authority
JP
Japan
Prior art keywords
module
computer
application
modules
sequence
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.)
Granted
Application number
JP2000561545A
Other languages
English (en)
Other versions
JP4607320B2 (ja
Inventor
ラズ ユリ
フォルク ヤフーダ
メラメード シュミュエル
Original Assignee
アプストリーム インコーポレーテッド
ラズ ユリ
フォルク ヤフーダ
メラメード シュミュエル
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 アプストリーム インコーポレーテッド, ラズ ユリ, フォルク ヤフーダ, メラメード シュミュエル filed Critical アプストリーム インコーポレーテッド
Publication of JP2002521745A publication Critical patent/JP2002521745A/ja
Application granted granted Critical
Publication of JP4607320B2 publication Critical patent/JP4607320B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 第1コンピュータと第2コンピュータとの間でモジュールを伝送するためのコンピュータ実装方法が開示される。第1コンピュータでは、モジュールセットは利用可能なモジュールのコレクションからモジュールのシーケンスを選択することにより形成される。選択されたモジュールのそれぞれは、第2コンピュータで動作しているアプリケーションと関連付けられている。選択されたモジュールは次に、第1コンピュータから第2コンピュータに透過的にストリーミングできる。モジュールの選択は、予め定められた選択基準に従って行われ、第2コンピュータの実行環境とは独立している。第2コンピュータで、受信されたモジュールが、実行中のアプリケーションに統合され得る。第1コンピュータと第2コンピュータとの間でモジュールを伝送するためのシステムもまた提示される。開示のシステムは、第1コンピュータおよび第2コンピュータを含む。第1コンピュータは、アプリケーションを実行するための手段、アプリケーションが動作している間に、アプリケーションと関連付けられたモジュールのシーケンスを受信するための手段、および受信されたシーケンス内の第1モジュールをアプリケーションに統合するための手段を含む。第2コンピュータは、アプリケーションと関連付けられたモジュールのコレクションをストアするための手段、このコレクションからモジュールのシーケンスを選択するための手段、および第1コンピュータから第2コンピュータに選択されたシーケンスを転送するための手段を含む。

Description

【発明の詳細な説明】
【0001】 (背景情報) クライアントサーバ環境で、クライアントコンピュータは、サーバと通信を行
ってそのサーバにストアされた情報に遠隔アクセスすることができる。サーバと
クライアントコンピュータとの間での情報の転送は、標準プロトコルおよびソフ
トウェアを使用して提供することができる。例えば、クライアントコンピュータ
にあるハイパーテキストマークアップ言語(HTML)ブラウザアプリケーショ
ンが、HTTPサーバからウェブページを受信するのに、TCP/IPおよびハ
イパーテキストトランスファプロトコル(HTTP)を使用して、公衆インター
ネットを介して通信することができる。ウェブページは、フォーマットされたテ
キスト、ならびに埋め込まれたグラフィックスやサウンドなどのマルチメディア
エレメントを含み得る。これらのマルチメディアエレメントが、クライアントに
よってダウンロードされて、ブラウザアプリケーションまたは「プラグイン」ブ
ラウザコンポーネントによってユーザに提示されるということが可能である。例
としてのブラウザアプリケーションは、ネットスケープナビゲータ(Netsc
ape Navigator)4.0(登録商標)およびマイクロソフトインタ
ーネットエクスプローラ(Microsoft Internet Explo
rer)4.0(商標)を含む。
【0002】 クライアントコンピュータで使用されるブラウザアプリケーションは、ストリ
ーミング(streaming)データ伝送プロトコルを使用してオーディオ情報および
ビデオ情報を受信するのに、プラグインソフトウェアを使用することができる。
ストリーミングプロトコルは、情報が受信されるのにつれて、それがクライアン
トコンピュータによって提示されるということを可能にする。例えば、フルモー
ションビデオを、サーバからクライアントにフレームの線形ストリームとして送
信することができる。クライアントに各フレームが着信するごとに、それがリア
ルタイムのフルモーションビデオ表示を生成するように表示され得る。オーディ
オストリーミングおよびビデオストリーミングは、クライアントが、クライアン
トアプリケーションにすべてのストリームが着信するのを待つことなく、情報を
提示することを可能にする。オーディオストリーミングおよびビデオストリーミ
ングは、例えば、リアルネットワーク社(RealNetwork,Inc.)
からのリアルオーディオ(RealAudio)(登録商標)およびリアルビデ
オ(RealVideo)(商標)によって提供される。
【0003】 また、ブラウザアプリケーションは、HTMLベースのウェブページの外観を
向上させるのに、実行可能なソフトウェアアプレットを使用することができる。
アプレットは、クライアントからの要求に応じてサーバからクライアントに送信
されるソフトウェアプログラムである。代表的なアプレット使用では、HTML
ベースのウェブページが、ブラウザアプリケーションにアプレットを要求させ、
そのアプレットの実行を開始させるHTTPコマンドを含んでいる。したがって
、アプレットは、ユーザと対話してデータの収集や処理を行うことができ、ネッ
トワークを介してデータを通信することができ、結果をコンピュータ出力デバイ
ス上に表示することができる。アプレットは、クライアントコンピュータにある
ブラウザアプリケーションによって提供されるランタイム環境で実行するプログ
ラミング言語で構築することができる。例えば、サンマイクロシステム社からの
Java(登録商標)プログラミング言語は、Javaアプレットをウェブサー
バにストアし、Javaインタープリタによる実行のためにウェブページに添付
することができるようにする。Javaアプレットは、複数のJavaクラスで
形成され得る。Javaクラスは、動的に生成された、そのクラスを実行する要
求(モジュール実行要求)に応答して、サーバからダウンロードすることができ
る実行可能なJavaコードを含む。実行中のアプレットがあるクラスによって
提供される機能にアクセスしようとしたとき、そのJavaクラスがJavaイ
ンタープリタで利用可能ではない場合、Javaインタープリタは、サーバから
動的にそのクラスをリトリーブすることができる。マイクロソフト Visua
l Basic(登録商標)、またはマイクロソフト Visual C++(
登録商標)などの、他のプログラミング言語もまた、マイクロソフト Acti
veX(商標)コントロールなど、アプレット様式のソフトウェアモジュールを
作成するのに使用することができる。
【0004】 また、ダウンロード可能なアプレットを、大きく複雑なプログラムを開発する
のに使用することができる。例えば、複雑な財務プログラムをアプレットのコレ
クションから構築することができる。こうした財務プログラムでは、ユーザから
情報を集め、支払を計算し、利率を計算し、また印刷された報告書を生成するの
に別々のアプレットを使用することができる。特定のプログラム機能がユーザに
よって要求されると、その要求された機能と関連するアプレットが、サーバから
リトリーブされ得る。ただし、ソフトウェアアプリケーションのサイズが増大す
るのにつれて、ネットワークを介してそのモジュールをリトリーブするのに関連
する遅延も同様に増大して、エンドユーザにとって許容できないものとなり得る
。したがって、コンピュータ間でのソフトウェアの伝送の改善が望まれる。
【0005】 (概要) 本発明は、第1コンピュータと第2コンピュータとの間で、データモジュール
をストリームとして伝送するための方法およびシステムを含む。モジュールは、
そのモジュール間に「自然な」順序が存在するかどうかに関わらず、ストリーム
として伝送することができる。例えば、データストリーム内容を判断するのに、
データの自然な線形順序を頼りにするストリーミングアプリケーションとは異な
り、開示のストリーミングメカニズムは、線形データ順序に従って動作するよう
に拘束されていない。代わりに、ストリームとして伝送されるデータモジュール
は、特定のデータ内容とは独立していることが可能な予め定められた基準を使用
して、選択される。
【0006】 例としての適用では、開示のストリーミングメカニズムは、ソフトウェアモジ
ュールのユーザ依存ストリーミングを提供することができる。例えば、ホームバ
ンキングアプリケーションが、モジュール#1から#5を含み得る。第1バンキ
ングアプリケーションユーザは、メニュースクリーンでのユーザ自身の入力選択
に基づいて、1−3−4−5の順序でモジュールにアクセスすることができ、第
2ユーザは、2−4−1の順序でモジュールにアクセスすることができる。こう
したバンキングアプリケーションの場合、ストリーミングシーケンスを決定する
ために使用される予め定められた基準が、各ユーザのモジュール使用パターンを
詳述することができる。アプリケーションのユーザと関連付けられた予め定めら
れた基準は、第1ユーザがこのバンキングアプリケーションにアクセスしている
とき、好ましいストリーミングシーケンス1−3−4−5を指定するが、第2ユ
ーザがアプリケーションにアクセスしているときには、好ましいシーケンス2−
4−1を指定するということができる。したがって、ストリームとして伝送され
るシーケンスは、履歴上のユーザ依存アクセスパターンに適合することが可能で
ある。他のタイプの予め定められた基準もまた、使用することができる。開示の
ストリーミングメカニズムはまた、ハイパーテキストマークアップ言語データ、
バイナリグラフィックス、およびテキストなどの非実行データ(non-executable
data)をストリームとして伝送するのにも使用することができる。
【0007】 一般的に一態様では、本発明は、第1コンピュータから第2コンピュータにモ
ジュールを伝送するコンピュータ実装方法を備えている。第1コンピュータで、
利用可能なモジュールのコレクションからモジュールのシーケンスを選択するこ
とによって、モジュールセットが形成される。選択されたモジュールのそれぞれ
は、第2コンピュータで動作しているアプリケーションと関連付けられる。選択
されたモジュールは、第1コンピュータから第2コンピュータに、透過的に(tr
ansparently)ストリーミングすることができる。モジュールの選択は、予め定
められた選択基準に従って行われ、第2コンピュータの実行環境とは独立してい
る。
【0008】 本発明の実装は、次の特徴のうちの1つまたは2つ以上を含むことが可能であ
る。モジュールは、ハイパーテキストマークアップ言語、および/またはプログ
ラムコードなどの、非実行データを含み得る。選択基準は、ストリーミング制御
データベースにストアすることができる。ストリーミング制御データベースは、
加重された値をコレクション内の選択されたモジュールの間での遷移と関連付け
る遷移レコード(transition record)を含むことができる。遷移レコード情報
の処理は、パス決定アルゴリズムを使用することなどによって、モジュールのシ
ーケンスを決定するのに使用することができる。ストリーミング制御データベー
スは、それぞれがモジュールの予め定められたシーケンスを識別するリスト記録
を含むことができる。モジュールの選択は、リスト記録を選択することによって
行うことができる。モジュールのシーケンスを選択することは、第2コンピュー
タから第1コンピュータにデータを送信して、シーケンス内の各モジュールを識
別する、または実行中のアプリケーションのステータスを識別することを含み得
る。例えば、ステータスを識別するデータは、一連のユーザ入力値を含み得る。
【0009】 また、実装は、次の特徴のうちの1つまたは2つ以上を含み得る。モジュール
セットのストリーミングには、割込みが行われることが可能で、第2シーケンス
が決定され、この第2シーケンスのストリーミングが発生することが有り得る。
モジュールセットのストリーミングには、第2コンピュータから第1コンピュー
タに送信される、特定のモジュールに対する要求によって割込みが行われ得る。
例えば、Javaアプレットが、既にストリームとして第2コンピュータに伝送
されたものではないJavaクラスにアクセスしようとすることによって、Ja
vaクラスのストリームに割込みを行うことが有り得る。モジュールのシーケン
スのストリーミングが行われ、実行中のアプリケーションとは独立に第2コンピ
ュータにストアされ得る。つまり、実行中のアプリケーションは、ストリーミン
グを開始する必要がなく、ストリーミングに気付いている必要がない。ストリー
ミングされたモジュールはその後、ストリーミングされたモジュール内のロジッ
クとアプリケーション内のロジックを相互接続することによって、第2コンピュ
ータにあるアプリケーションに統合することができる。
【0010】 また、実装は、次の特徴のうちの1つまたは2つ以上を含み得る。アプリケー
ションは、割込みステートメントを含み得る。割込みステートメントの実行は、
制御を実行プログラムに引き渡し得る。実行(エグゼキュタ)プログラムは、割
込みステートメントに応答し、実行中アプリケーションの処理の永久停止(終了
)を妨げることによって、プログラムコードデバッガの方式で機能する。この後
、実行プログラムは、割込みステートメントを(一般的に、置換ロジックのブロ
ックの一部として)ストリーミングされたモジュールからの置換ロジックによっ
て置え換えることによって、ストリーミングされたモジュール内のロジックをア
プリケーションのロジックに統合することができる。この後、アプリケーション
は、一般的に、割込みステートメントと入れ替えられた置換ロジックを実行する
ことによって、動作を継続する。また、アプリケーションは、ストリーミングさ
れたモジュール内のロジックによって置き換えることができるスタブプロシージ
ャ(procedure)を含み得る。スタブプロシージャの置き換えは、スタブプロシ
ージャコードを除去して、ストリーミングされたモジュールからのロジックでそ
れを置き換えることによるなど、直接的であることも、またはストリーミングさ
れたモジュール内のロジックに対するリンクを作成することによるなど、オペラ
ティブであることも可能である。
【0011】 一般的に別の態様では、本発明は、コンピュータ読取可能媒体上に常駐するコ
ンピュータプログラムを特徴とする。このコンピュータプログラムは、コンピュ
ータに、アプリケーションと関連付けられたモジュールのコレクションにアクセ
スさせ、モジュール選択基準をストアするデータベースにアクセスさせ、そのモ
ジュール選択基準に従ってそのコレクションからモジュールのシーケンスを選択
することによってモジュールセットを形成させ、このモジュールセットを透過的
に第2コンピュータにストリーミングさせるための命令を含んでいる。また、プ
ログラムの実装は、コンピュータに、コレクションから第1モジュールをリトリ
ーブさせ、この第1モジュールを第2コンピュータに送信させるための命令も含
み得る。
【0012】 一般的に別の態様では、本発明は、コンピュータ読取可能媒体上に常駐するコ
ンピュータプログラムを特徴とする。このプログラムは、コンピュータに、アプ
リケーションを実行させ、実行中のアプリケーションと関連付けられたモジュー
ルを透過的に受信させ、この受信されたモジュールを実行中のアプリケーション
に統合させるための命令を含んでいる。
【0013】 一般的に別の態様では、本発明は、コンピュータ間で情報モジュールを転送す
るためのシステムを備えている。このシステムは、第1コンピュータおよび第2
コンピュータを含む。第1コンピュータは、アプリケーションを実行するための
手段、アプリケーションが実行されている間にそのアプリケーションと関連付け
られたモジュールのシーケンスを受信するための手段、および受信されたシーケ
ンス内の第1モジュールをアプリケーションに統合するための手段を含む。第2
コンピュータは、アプリケーションと関連付けられたモジュールのコレクション
をストアするための手段、このコレクションからモジュールのシーケンスを選択
するための手段、およびこの選択されたシーケンスを第1コンピュータから第2
コンピュータに転送するための手段を含む。
【0014】 また実装は、次の利点のうちの1つまたは2つ以上を含む。アプリケーション
、コードモジュール、またはデータモジュールをダウンロードしているときに経
験する遅延を短縮することができる。ソフトウェアおよびデータモジュールを、
特定のエンドユーザの要求に従って、クライアントワークステーションに予測的
に配信することができる。モジュールがサーバからクライアントにストリームと
して伝送される順序を、動的に決定することができる。モジュール配信シーケン
スのコレクションを特定のアプリケーションまたはユーザと関連付けることがで
き、また、そのシーケンスを動的に更新することができる。モジュール配信シー
ケンスを、ソフトウェア使用の個別パターン、またはモジュール使用と関連付け
られた、ストアされている統計に基づいて決定することができる。アプリケーシ
ョンの実行の間に、モジュールストリーミングに割込みを行い、それを変更する
ことができる。実装は、以下の記載と特許請求の範囲から明らかになるとおり、
追加または代替の利点を含み得る。
【0015】 (詳細な説明) 図1を参照すると、ワイドエリアネットワーク100が示されている。ネット
ワーク100において、クライアントコンピュータ101は、リンク103およ
び104上でデータネットワーク130にデータを送ることによって、サーバコ
ンピュータ102と通信することができる。データネットワーク130は、クラ
イアント101とサーバ102との間でデータを送ることができる複数のノード
131〜134を含むことができる。クライアントコンピュータ101は、TC
P/IP、HTTP、および他のプロトコルを使用して、データを送信し、受信
することができる。例えば、クライアント101は、HTTPを使用して、サー
バ102からウエッブページを要求することができる。
【0016】 サーバ102からクライアント101に送られたウエッブページおよびマルチ
メディアデータは、それらに関連付けられた自然線形シーケンスを有することが
できる。ビデオデータの自然シーケンスは、ビデオフレームの線形な順序であり
、一方テキストの自然シーケンスは、テキストのページがドキュメント内で構成
されている順序である。自然線形シーケンスを有するデータは、サーバからクラ
イアントにストリームし、ダウンロードの遅延を最小にすることができる。スト
リーミングシステムでは、線形シーケンスのより前のアイテムを処理および/ま
たは表示しながら、後続のアイテムをクライアントコンピュータにダウンロード
することができる。アイテムの処理および/または表示が完了したとき、処理ま
たは表示または完全に受信した「ストリーミングされた」アイテムが、直ちに開
始することができる。アイテムが要求されるとき、ストリーミングされたアイテ
ムの受信は、完全または部分的に終了しているので、そのストリームされたアイ
テムを要求するユーザまたはクライアントアプリケーションは、低減されたダウ
ンロードの遅延を知覚することになる。例えば、ドキュメントの第1ページをユ
ーザが検索する場合、第1ページを読みながら第2ページをダウンロードするこ
とができる。ユーザがドキュメントの第2ページを読み続ける場合、ハードディ
スクドライブ上のキャッシュエリア内などのクライアントのところでページは利
用可能となり、追加のダウンロードの遅延なしで読むことができる。
【0017】 ソフトウエアの実行は、予想可能な自然線形順序に従わない可能性がある。ソ
フトウエアは、ジャンプ命令文、ブレイク命令文、プロシージャコール、および
実行コードのセクション内で突然実行を転送させる他のプログラミング構造体を
含むことができる。相互に関係付けられたコードモジュール(コードセグメント
、コードクラス、アプレット、プロシージャ、およびコードライブラリなど)の
処理中にトラバース(traverse)された実行パスは、しばしば非線形で、ユーザ
に依存するようになり、アプリケーションプログラムを実行する度に変化するこ
とができ、また様々なデータアイテムの状態に応じて変化することができる。自
然な順序は欠如している可能性があるが、モジュールをストリームする有利な順
序を決定することができる。その順序は、コンピュータの内部構造または内部オ
ペレーティングシステム(実行環境)の考慮事項に依存しない基準を用いて決定
することができる。
【0018】 図2を参照すると、ソフトウエアアプリケーション200は、「A」から「H
」の複数のモジュールを含むことができる。モジュール「A」から「H」は、J
avaクラス、C++プロシージャライブラリ、またはサーバのところでストア
することができる他のコードモジュールとすることができる。またモジュール「
A」から「H」のいくつかは、ハードディスクキャッシュ内やクライアントコン
ピュータにストアされているソフトウエアライブラリの部分として、クライアン
トコンピュータのところでストアすることができる。クライアントコンピュータ
がアプリケーション200の実行を開始するとき、モジュール「A」などの第1
モジュールは、サーバからダウンロードすることができ、クライアント410の
ところで実行を開始することができる。モジュール「A」が処理されているとき
、その中に含まれているプログラミング命令文は、例えばモジュール「E」にブ
ランチすることができる。モジュール「E」がまだクライアントのところに存在
しない場合、モジュール「A」の実行を中断し、モジュール「E」をサーバから
検索(リトリーブ)することができ、次いでモジュール「E」のコードの実行を
開始することができる。そのようなシナリオでは、ユーザは、サーバからモジュ
ール「E」をリトリーブすることに関連付けられたモジュールダウンロードの遅
延を経験することになる。
【0019】 ユーザが経験するモジュールダウンロードの遅延を最小にするために、モジュ
ール「E」を、透過的にサーバからクライアントコンピュータにストリームする
ことができる。透過的なストリーミングにより、他の相互に関係付けられたモジ
ュール「A」を実行しながら、将来のモジュールの使用を予測し、モジュールを
ダウンロードすることが可能となる。図4を参照すると、透過的なストリーミン
グを提供する例示的ソフトウエア構造400が示されている。ソフトウエア構造
400は、ストアされたソフトウエアモジュールのデータベース403を有する
サーバ401を含む。サーバ401は、通信リンク上で、透過的にソフトウエア
モジュール405のストリームをクライアントコンピュータ410に送信するこ
とができる。通信リンクは、アナログモデム接続、デジタル加入者ライン接続、
ローカルエリアネットワーク接続、またはサーバ401とクライアント410の
間のその他のタイプのデータ接続とすることができる。特定のソフトウエアモジ
ュールがクライアント410のところで実行されているとき、追加のモジュール
が、サーバ401からクライアント410に送られる。動的なストリーミングの
実装では、サーバとクライアントの間でモジュールをストリームする順序は、使
用されている特定のクライアントコンピュータ410に基づいて、クライアント
コンピュータのユーザに基づいて、および他の動的に決定される因子に基づいて
変更することができる。
【0020】 図3を参照すると、アプリケーションモジュール「A」から「H」の実行順序
は、モジュールの線形シーケンスではなく、有向グラフ300に類似することが
できる。例えば、グラフ300で示すように、モジュール「A」を実行した後、
モジュール「B」、「D」、または「E」のところで実行を続けることができる
。モジュール「B」を実行した後、モジュール「C」または「G」のところで実
行を続けることができる。続いて、実行パスは、追加のモジュールへと進み、以
前に実行したモジュールに戻ることができる。
【0021】 サーバ401は、ストリーム制御情報402を使用して、サーバ401からク
ライアント410にモジュールをストリームする順序を決定することができる。
例えば、ストリーム制御情報402は、有向グラフ300によって表されている
ようなソフトウエアモジュール間の予測された実行フローを含むことができる。
ダウンロードしたモジュールをクライアント410によって実行するとき、クラ
イアントは、制御データ415をサーバ401に送り、モジュールをサーバ40
1からクライアント410にストリームする順序を、動的にアップデートおよび
変更することができる。制御データ415を使用して、サーバ401から特定の
モジュールを要求し、アプリケーションプログラムの現在の実行状態に関するデ
ータを送り、クライアントのローカル記憶装置411にあるモジュールの現在の
目録(inventory)を詳述し、およびユーザの入力選択と、プログラム実行の統
計と、クライアントコンピュータ410およびその実行ソフトウエアに関して得
られた他のデータとを報告することができる。
【0022】 ストリーム405内で、サーバ401からクライアント410に送られたモジ
ュールのシーケンスは、ストリーム制御ファイル402を用いて決定することが
できる。ストリーム制御ファイル402は、クライアント410のところで必要
となるモジュールを予測するために、サーバが使用するデータを含むことができ
る。グラフをベースとする実装では、制御ファイル402は、有向グラフのノー
ドとしてモジュールを表すことができる。また制御ファイル402は、モジュー
ル間の可能な実行の移動を、ノードを相互接続する頂点(「エッジ(edge)」)
として表すことができる。表1を参照すると、重み付きのグラフの実装では、ス
トリーム制御ファイル402は、モジュール間の可能な移動を表す頂点のリスト
を含むことができる。例えば、表1は、グラフ300(図3)の「A」から「H
」のモジュール間の全ての可能な移動を表す頂点を列挙している。表1の各頂点
は、モジュール間で特定の遷移が生じる相対的な可能性を示す重みの値を含む。
表1の例では、重みの値がより大きいと、移動の可能性がより低いことを示す。
サーバ401は、最短パスのグラフ・トラバース・アルゴリズム(graph traver
sal algorithm)(また「最低コスト」アルゴリズムとしても知られている)を
適用して、現在実行しているモジュールに基づいて、所望のモジュールストリー
ミングシーケンスを決定することができる。最短パスアルゴリズムの例は、19
87年のMischa Schwartz、Addison Wesleyによ
るTelecommunications Networks:Protoco
ls、Modeling and Analysisの§6に見出すことができ
る。
【0023】
【表1】
【0024】 例えば、表2は、モジュール「A」と表1の残りのモジュールの間の最小パス
の重みを表す。
【0025】
【表2】
【0026】 表2に示す重みの値に基づいて、サーバ401は、モジュール「A」の実行中
に、モジュールストリームシーケンス「B」、「C」、「E」、「G」、「H」
、「D」、「F」が有利であることを決定することができる。制御データ415
によって報告された可能性があるように、決定されたシーケンス内の特定のモジ
ュールが既にクライアント402のところに存在する場合は、サーバ401は、
モジュール405のストリームからそのモジュールを削除することができる。シ
ーケンス「B」、「C」、「E」、「G」、「H」、「D」、「F」の実行中に
、モジュール「A」の実行が完了し、他のモジュールの実行が開始する場合、サ
ーバは、シーケンス「B」、「C」、「E」、「G」、「H」、「D」、「F」
の引渡しに割り込み、現時点の実行モジュールに基づいて新しいシーケンスを計
算し、新しく計算したストリーミングシーケンスに基づいてストリーミングを再
開することができる。例えば、実行がモジュール「A」からモジュール「B」に
移動する場合、モジュール「B」が現在実行しているモジュールであることを示
す制御データ415を、クライアント410からサーバ401に送ることができ
る。モジュール「B」がまだクライアント401のところで利用可能でない場合
は、サーバ401は、クライアントへのモジュール「B」の引渡しを終了し、新
しいモジュールストリーミングシーケンスを決定することになる。最短パスのル
ーティングアルゴリズムを、開始点とするモジュール「B」に基づいて、表1の
エッジに適用することにより、表3に示すように、モジュール「B」とグラフ3
00(図3)の他のモジュールの間の最小パスの重みを決定することができる。
【0027】
【表3】
【0028】 表3に示す最短パスの重みに基づいて、サーバ401は、モジュールストリー
ミングシーケンス「C」、「G」、「E」および「H」が有利であることを決定
することができる。
【0029】 また、他のアルゴリズムを使用して、モジュールのストリーミングシーケンス
を決定することができる。例えば、より重い重みの付いたエッジが、グラフに示
すモジュール間の好ましいパスであることを示している重み付きのグラフ300
を使用することができる。表4では、より大きな値を割り当てられた重みの値は
、モジュール間の好ましい移動を示す。例えば、エッジ(A、B)、(A、D)
、および(A、E)は、モジュールAからの3つの可能な移動である。エッジ(
A、B)は、エッジ(A、D)および(A、E)より大きな重みの値を有してい
るので、好ましく、したがって、モジュール「A」が開始点である場合、モジュ
ール「D」または「E」の前にモジュール「B」をストリームすることが好まし
い可能性がある。例えば、エッジの重みの値は、特定のモジュールがクライアン
トによって要求された回数の履歴カウント、コードモジュールの相対送信時間、
またはシステムアドミニストレータによって経験的に決定され、サーバ401で
表402にストアされている値、とすることができる。他のエッジの重みの計算
方法を使用することもできる。
【0030】
【表4】
【0031】 好ましいパス(重く重み付けしたエッジを第1とする)の実装では、より大き
な重みの値を有しているグラフ300のエッジが好まれる。以下の例示的アルゴ
リズムを使用して、好ましいパスの実装でのモジュールストリーミングシーケン
スを決定することができる。
【0032】 1:2つの空の順序付けしたセットを作成する: i)「S」がノード識別子であり、「W」がノード「S」に到達するように
トラバースすることができるエッジの重みである対(S、W)をストアする候補
セット ii)決定されたコードモジュールのストリームをストアするストリームセ
ット 2:Sを開始ノードとする。 3:ノードSをストリームセットに添付し、候補セットから任意の対(S 、W)を除去する。 4:重みWを有するエッジ(S、S)によってノードSから到達する
ことができる各ノードSに対し: { Sがストリームセットのメンバでない場合、候補セットに対(S、W )を追加する。 Sが候補セットの複数の対に現われる場合、最大重み(S、W)の対を
除いて、全ての対を候補セットから除去する。 } 5:候補セットが空でない場合、 候補セットから最大重みの対(S、W)を選択する。 S=Sとする。 ステップ3で反復する。
【0033】 例えば、表5に示すように、ノード「A」のところで開始し、上記のアルゴリ
ズムを表4のエッジに提供することにより、ストリームセット{A、B、C、E
、H、G、D、F}が作成される。
【0034】
【表5】
【0035】 実装は、代替のアルゴリズムを選択して、ストリームセットを計算するするこ
とができる。
【0036】 また、アプリケーションストリーミングを用いて、アプリケーションまたはモ
ジュールのサブセクションをストリームすることができる。例えば、C、C++
、フォートラン、パスカル、またはアセンブリ言語で書かれているアプリケーシ
ョンなどのコンパイルされたアプリケーションのサブセクションは、サーバ40
1からクライアント410にストリームすることができる。図5Aを参照すると
、アプリケーション500は、メインコードモジュール501およびコードライ
ブラリ510ならびに515などの複数のコードモジュールを含むことができる
。メインモジュール501は、アプリケーションが開始されるとき実行されるプ
ログラムコードを含む。コードライブラリ510および515は、ヘッダデータ
511および516、並びに、メインモジュール501および他のライブラリプ
ロシージャから直接または間接的に呼び出される実行可能なプロシージャ512
〜514および517〜519を含むことができる。
【0037】 マイクロソフトウィンドウズ95/マイクロソフトビジュアルC++の実装で
は、メインコードモジュール501は、コンパイルされたC++「メイン」プロ
シージャを含むことができ、ライブラリモジュール510および515は、コン
パイルされたC++オブジェクトコードプロシージャを有する動的リンクライブ
ラリとすることができる。ヘッダデータ511および516は、動的にライブラ
リ510および515をメインモジュール510とリンクするために、オペレー
ティングシステムのリンクプロシージャが使用する記号名を含むことができる。
またヘッダデータは、ライブラリ内の各プロシージャの位置(location)を示す
ことができる。ジャンプの表の実装では、コーリングプロシージャは、ヘッダ5
11または516内の予め定められた位置にジャンプし、そこから追加コードお
よび/またはデータにアクセスし、結果的に続いてプロシージャの開始にジャン
プすることによって、ライブラリプロシージャ512〜514、517〜519
にアクセスすることができる。
【0038】 アプリケーションのコードモジュールおよびライブライ内のデータおよびプロ
シージャは、何百または何千というバイトの長さとすることができる。アプリケ
ーションを実行する前に、クライアントは、モジュールおよびライブラリの長い
セットの検索を必要とすることがある。モジュールおよびライブラリのセットの
サイズを低減することによって、アプリケーション実行前に経験された当初の遅
延を低減することができる。アプリケーション500のストリーミングの実装に
おいて、アプリケーションのコードモジュールのサブセクション内のコードを除
去し、短縮したストリーミングの「スタブ」プロシージャで置き換えることがで
きる。アプリケーションコードをストリーミングスタブプロシージャで置き換え
ることにより、モジュールサイズおよび関連付けられた送信の遅延を低減するこ
とができる。例えば、図5Aおよび5Bを参照すると、コードライブラリ510
は、長さが4キロバイト(Kバイト)であるヘッダ511と、それぞれ32Kバ
イト、16Kバイト、および8Kバイトであるプロシージャ512〜514を含
むことができる。図5Bおよび5Cを参照すると、ライブラリ510のサイズを
低減するために、プロシージャコード512〜514をライブラリ510から除
去し、サーバ401(図4)のところでストリーミングコードモジュールデータ
ベース403にストアすることができる。除去されたプロシージャコード512
〜514は、「スタブ」プロシージャ515〜517によって置き換えられ、結
果的に、ライブラリ510の代わりに、アプリケーションモジュール501およ
び520とリンクすることができる、サイズが低減したコードライブラリ530
を得る。ライブラリ530のヘッダデータ511は、アップデートされたジャン
プ、またはスタブプロシージャ515〜517がプロシージャ512〜514の
リンクタイム代用物として作用することを可能とするリンク情報を含むことがで
きる。
【0039】 サーバ401は、メインモジュール501と、ライブラリモジュール520と
、「ストリームされた」ライブラリ530とを送ることによって、クライアント
410にアプリケーション500のストリーミング可能なバージョンを提供する
ことができ、いくつかの実装では、アプリケーション500に対する要求に応答
して、クライアント410に、ストリーミングサポートファイル535を提供す
ることができる。ストリーミングサポートファイル535は、サーバ401とク
ライアント410との間で、コードストリーミングを容易にするために、スタブ
515〜517によってアクセスされるプロシージャを含む。クライアント41
0のところで、モジュール501、520、530、および535をリンクし、
結果的に得られるアプリケーションの実行を開始することができる。メインモジ
ュール501および様々な呼び出されたプロシージャをクライアント410のと
ころで実行するとき、データベース403にストアされたコードモジュールを、
サーバ401からクライアント410にストリームすることができる。データを
ストリーム403に含め、ストリームされたコードモジュールに関連付けられた
スタブプロシージャ414〜417を識別することができる。ストリームされた
モジュールがクライアントのところで受信されるとき、それらは、実行アプリケ
ーションと統合される。
【0040】 添付されたモジュールの実装では、ストリームされたコードモジュールは、受
信したモジュールを対応するライブラリまたはコードファイルに添付することに
よって、実行アプリケーションと統合される。例えば、図5Cおよび5Dを参照
すると、モジュール512〜514がサーバからクライアントにストリームされ
るとき、それらはライブラリファイル530に添付され、それにより、増大され
たライブラリファイル540を形成する。モジュール512〜514をサーバ4
01からストリームし、ファイル530に添付するとき、ヘッダデータ511ま
たはスタブデータ515〜516はアップデートされ、したがって、現時点で添
付されたモジュールは、呼び出し(コーリング)プロシージャからアクセスする
ことができる。例えば、図5Dを参照すると、追加の「ジャンプ」を、各スタブ
プロシージャ515〜517とそれに関連付けられた添付のモジュール512〜
514の間で追加することができる。代替として、ヘッダデータ511をアップ
デートし、スタブ515〜517の代わりに、プロシージャ512〜514をア
クセス可能とすることができる。スタブ置換の実装では、モジュールがサーバ4
01から受信されるとき、スタブ515〜516はプロシージャモジュール51
2〜514で置き換えられる。スタブ置換は、置換コードが受信されるとき、コ
ードモジュールまたはライブラリ内で、残りのスタブまたはプロシージャの位置
を変更あるいは再構成することを要求する可能性がある。実装は、ストリームさ
れたコードを実行アプリケーションおよびモジュールと統合するさらに他の方法
を使用することができる。
【0041】 いくつかのシナリオでは、上記の例ではスタブ515〜517によって置き換
えられているプロシージャコード512〜514などの除去されたコードは、そ
れをサーバ401からストリームし、モジュール530と統合する前に、必要と
する可能性がある(他のプロシージャによって呼び出される)。そのような場合
では、スタブコード515〜516は、ストリーミングサポートライブラリ53
5内でストリーミング機能にアクセスし、必要なプロシージャを獲得することが
できる。そのために、ストリーミングサポートライブラリ535は、制御データ
415をサーバ401に送り、必要なプロシージャを要求することができる。応
答して、サーバ401は、現在のモジュールストリーム405を中止して、要求
されたモジュールを送ることができる。要求されたモジュールを受信する際に、
ストリーミングサポートライブラリ535内のプロシージャを使用して、受信し
たモジュールをアプリケーションと統合し、要求されたモジュールの実行を続け
ることができる。その後サーバは、要求されたモジュールまたはクライアントか
ら受信された他の制御データ415に基づいて、新しいモジュールストリームを
決定することができる。
【0042】 コードモジュールは、スタブプロシージャを使用せずに、サイズを低減するこ
とができる。例えば、図4、5A、5B、および5Eを参照すると、割込みが駆
動された実装では、プロシージャコード512〜514をコードライブラリ51
0から除去し、データベース403にストアすることができる。次いで、ヘッダ
情報511並びに除去されたプロシージャコード512〜514のサイズおよび
位置を示すデータを、クライアント410に送信することができる。クライアン
ト410は、除去されたプロシージャコード512〜514の代わりに、一連の
割込み命令文を添付することによって、新しいライブラリ550を構築すること
ができる。アプリケーション500を実行するとき、コードライブラリ550を
ライブラリ510の代用とし、プログラム500の実行を開始することができる
。プログラム500を実行するとき、除去されたプロシージャコード512〜5
14をクライアント410にストリームし、ローカルデータベース411にスト
アする。アプリケーション500が、プロシージャコード512〜514を実行
することを試みる場合、代わりに、プロシージャコード512〜514と置き換
わっている割込み命令文の1つを実行することができる。停止(halt)命令文の
実行は、プログラム500の実行を中止し、制御をストリーミングエグゼキュタ
プログラム415に転送する。
【0043】 エグゼキュタ415は、従来のランタイムオブジェクトコードデバッガの技術
と同様のインターフェース技術を実施し、それにより、エグゼキュタ415は、
アプリケーション500によって生成された割込みをインターセプトし、処理す
ることが可能となる。エグゼキュタ415によって割込みがインターセプトされ
るとき、クライアントの実行プラットフォーム(オペレーティングシステム)割
込み処理機能の部分としてエグゼキュタ415に提供されたデータを使用して、
割込みが実行されたモジュール550と、モジュール内の割込みコードのアドレ
スを識別することができる。次いでエグゼキュタ415は、割込み位置に関連付
けられたプロシージャコード512〜514が、クライアントに送られたモジュ
ールストリーム415の部分として受信されたかを決定する。適切なプロシージ
ャコードが受信されている場合、エグゼキュタ515は、識別した割込みを対応
するコードで置き換える。例えば、プロシージャ512〜514を、クライアン
ト410にストリームされる4キロバイトのコードモジュールに分割することが
できる。割込み命令文が、アプリケーション500によって実行されるとき、エ
グゼキュタ415は、割込みをインターセプトし、割込み命令文を含む適切な4
キロバイトのコードブロックを決定し、決定されたコードブロックを受信したコ
ードモジュールで置き換える。適切なコードモジュールがまだ受信されていない
場合、明確な要求をクライアント410からサーバ401に送り、コードモジュ
ールを検索した後、ライブラリ550に挿入することができる。その後エグゼキ
ュタ415は、遭遇した割込みのアドレスのところでアプリケーション500を
再開することができる。
【0044】 また実装は、モジュールまたはライブラリの全体をストリームすることができ
る。例えばコードライブラリ510および515をサーバ401からクライアン
ト410にストリームする間、メインコードモジュール501をサーバ401か
ら受信し、クライアント410のところで実行を開始することができる。ストリ
ームされたモジュールを実行モジュールと統合することは、クライアント410
の動的モジュールリンク機能(facility)によって提供することができる。例え
ば、マイクロソフトビジュアルC++6.0によって提供される遅延インポート
ローディングを使用して、ストリームされたモジュール510および515を、
実行モジュール501と統合することができる。ストリームされたモジュールの
動的リンクは、ストリームされたモジュールをローカルハードディスクドライブ
上またはクライアント410のリンクローディング機能によってアクセス可能な
他の格納装置の位置にストアすることによって、容易にすることができる。例示
的な実装では、クライアント410のオペレーティングシステムのリンク機能を
変更することによって、ストリーミングが容易になり、したがって、モジュール
がまだクライアント401にストリームされていない場合、リンク機能は、制御
データ415をサーバ401に送ることができる。
【0045】 保護メモリのコンピュータシステムでは、実行アプリケーションコードおよび
データの直接操作が限定されている可能性がある。そのようなシステムでは、ス
トリームされたモジュールを実行アプリケーションと統合することをサポートす
るために、「カーネル」レベルのプロセスまたはプロシージャを必要とする可能
性がある。そのような場合、ストリーミングサポート535は、クライアントが
アプリケーション500を要求する前に、クライアント410のところで、サポ
ートプロシージャをインストールすることによって、予め準備することができる
【0046】 ストリームセットを決定する他の方法を使用することができる。リストをベー
スとする実装では、ストリーミング制御ファイルは、モジュールストリーミング
シーケンスの予め定められたリストを含むことができる。例えば、ストリーミン
グ制御ファイル402は、第1ユーザに関連付けられたモジュールストリーミン
グシーケンスのリストと、第2ユーザに関連付けられた第2モジュールストリー
ミングシーケンスのリストとを含むことができる。クライアント410からサー
バ401に送られた制御データ415は、クライアント410のところで、現在
のユーザを識別することができる。サーバに対しユーザが識別された後は、サー
バは、ユーザの関連付けられたストリーミングシーケンスのリストに従って、ソ
フトウエアモジュールをストリームすることができる。ユーザベースのストリー
ミングデータは、ユーザの過去の行動を使用してそのユーザがアクセスするモジ
ュールの順序を予測することができる場合に有利である可能性がある。
【0047】 グラフベースのストリーミング制御ファイルの実装では、ノードを接続するエ
ッジの重みは、静的または動的に決定することができ、またこれまでの使用デー
タの収集に基づいて決定することができる。例えば、プログラマ制御の実装では
、ソフトウエアのプログラマは、プログラマのソフトウエアコードと予期される
アプリケーションの使用パターンの知識に基づいて、ノード間の特定の移動が生
じる可能性を推定する。代替として、アプリケーションプロファイリングプログ
ラムを使用して、様々なアプレット、クラス、またはコードモジュール間の移動
を記録するランタイム実行データを収集し、それにより、特定の移動が生じる可
能性を決定することができる。クライアントフィードバックの実装では、モジュ
ール実行中に、クライアント410からサーバ401に送られた制御データ41
5を使用して、モジュール使用の統計的データベースを構築し、そのデータベー
スに基づいて、モジュールをストリーミングする順序を決定する。
【0048】 クライアント制御のストリーミングの実装では、ストリーミング制御データ4
02をクライアント410に配置し、クライアント410からサーバ401に送
られた制御データ415を使用して、連続してサーバからモジュールのストリー
ムを要求することができる。例えば、クライアントコンピュータ410が第1モ
ジュールを実行している間、バックグラウンドプロセスは、制御データ415を
サーバに送り、クライアントコンピュータ410のハードディスク411上でバ
ッファすることができる追加のモジュールを要求することが可能である。クライ
アント制御のストリーミングの実装は、存在するHTTPサーバおよびHTTP
プロトコルを使用して、クライアント410からサーバ401に要求を送り、サ
ーバ401からクライアント410にソフトウエアモジュールを送ることができ
る。さらに、ソフトウエアモジュールのストリーミングは、上記の説明で強調さ
れているが、ハイパーテキストマークアップ言語、2進グラフィックファイル、
およびテキストなどの非実行データは、モジュールの収集としてストリームする
ことができる。
【0049】 実装は、「ハンドシェーキング」プロシージャを含むことができ、それにより
、アプリケーション実行の開始時に、サーバ401とクライアント410の間で
制御データ415が送られる。ハンドシェーキングデータは、クライアントおよ
びサーバのところにあるアプリケーションモジュールの在庫を含むことができる
。そのようなハンドシェーキングデータにより、クライアント410とサーバ4
01の両方が、それぞれのソフトウエアモジュールの在庫を決定し、その在庫情
報に基づいて、ソフトウエアモジュールのストリームを最適化することが可能と
なる。
【0050】 履歴(ヒストリ)に依存する実装では、サーバまたはクライアントは、モジュ
ール間の一連の移動に関するデータをストアし、移動の履歴に基づいて、新しい
モジュールのストリームを計算することができる。例えば、図3を参照すると、
モジュール「G」がパスA−B−Gによって到達された場合、サーバまたはクラ
イアントは、次が「H」であるモジュール「E」をストリームすることを決定す
ることができる。他方、モジュール「G」がパスA−B−C−Gによって到達さ
れた場合、ストリーミングシーケンスは、モジュール「H」のみを含むことがで
きる。
【0051】 本発明は、コンピュータハードウエア、ファームウエア、ソフトウエア、デジ
タル電子回路において、またはそれらの組み合わせで実施することができる。本
発明の装置は、プログラム可能なプロセッサで実行するためのマシン読取り可能
記憶装置内に有形で組み込まれているコンピュータプログラム製品において実施
することができる。また、本発明の方法のステップは、入力データに関して動作
し、および出力を作成することによって本発明の機能を実施するために、命令プ
ログラムを実行するプログラム可能なプロセッサによって実施することができる
【0052】 本発明は、データストアシステムからデータと命令を受信し、およびデータス
トアシステムにデータと命令を送信するために結合されている少なくとも1つの
プログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも
1つの出力デバイスとを含むプログラム可能なシステム上で実行可能である1つ
または2つ以上のコンピュータで実施することが有利である可能性がある。各コ
ンピュータプログラムは、高水準手続プログラミング言語またはオブジェクト指
向のプログラミング言語、あるいは所望であればアセンブリ言語または機械言語
で実施することができる。いずれの場合でも、言語は、コンパイルされた言語ま
たは解釈された言語とすることができる。例として、適切なプロセッサは、汎用
および専用のマイクロプロセッサの両方を含む。一般に、プロセッサは、読取り
専用メモリおよび/またはランダムアクセスメモリから命令およびデータを受信
する。
【0053】 有形に組み込んでいるコンピュータプログラムの命令およびデータに適したス
トレージデバイスは、例としてEPROM、EEPROM、およびフラッシュメ
モリデバイスなどの半導体メモリデバイス、内部ハードディスクおよび取外し可
能ディスクなどの磁気ディスク、光磁気ディスク、およびCD−ROMディスク
を含む、不揮発性メモリの全ての形態を含む。上記のいずれも、専用に設計され
たASIC(特定用途向け集積回路)によって補足し、またはその内部に組み込
むことができる。
【図面の簡単な説明】
【図1】 コンピュータネットワークを示す図である。
【図2】 コンピュータソフトウェアアプリケーションモジュールを示す図である。
【図3】 本発明による、有向グラフである。
【図4】 本発明による、サーバおよびクライアントを示す図である。
【図5A】 本発明による、アプリケーションコード構成要素を示す図である。
【図5B】 本発明による、アプリケーションコード構成要素を示す図である。
【図5C】 本発明による、アプリケーションコード構成要素を示す図である。
【図5D】 本発明による、アプリケーションコード構成要素を示す図である。
【図5E】 本発明による、アプリケーションコード構成要素を示す図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,US,UZ,VN,YU,Z A,ZW (71)出願人 シュミュエル メラメード イスラエル ラマット−ガン ネイヴェ ヤフシュア 35 (72)発明者 ユリ ラズ アメリカ合衆国 07410 ニュージャージ ー州 フェアローン ヒルサイド テラス 36−02 (72)発明者 ヤフーダ フォルク イスラエル テル−アビブ レンブラント ストリート 10 (72)発明者 シュミュエル メラメード イスラエル ラマット−ガン ネイヴェ ヤフシュア 35 Fターム(参考) 5B076 BB06 【要約の続き】 よび受信されたシーケンス内の第1モジュールをアプリ ケーションに統合するための手段を含む。第2コンピュ ータは、アプリケーションと関連付けられたモジュール のコレクションをストアするための手段、このコレクシ ョンからモジュールのシーケンスを選択するための手 段、および第1コンピュータから第2コンピュータに選 択されたシーケンスを転送するための手段を含む。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 アプリケーションと関連付けられたモジュールのコレクショ
    ンをストアする第1コンピュータから、前記アプリケーションを実行するための
    実行環境を提供する第2コンピュータにモジュールを伝送するコンピュータ実装
    方法であって、 前記実行環境とは独立している予め定められた基準に従って、前記コレクショ
    ンからモジュールのシーケンスを選択することによってモジュールセットを形成
    し、 前記第1コンピュータから前記第2コンピュータにモジュールセットを透過的
    にストリーミングすることを特徴とする方法。
  2. 【請求項2】 透過的にストリーミングする際に、前記第2コンピュータで
    アプリケーションを実行している間に、前記第1コンピュータから前記第2コン
    ピュータにシーケンスでモジュールを送信することを特徴とする請求項1に記載
    の方法。
  3. 【請求項3】 前記コレクション内の少なくとも1つのモジュールは、非実
    行データを備えることを特徴とする請求項1に記載の方法。
  4. 【請求項4】 前記コレクション内の少なくとも1つのモジュールは、プロ
    グラムコードを備えることを特徴とする請求項1に記載の方法。
  5. 【請求項5】 前記予め定められた基準は、ストリーミング制御データベー
    スを備えることを特徴とする請求項1に記載の方法。
  6. 【請求項6】 前記ストリーミング制御データベースは遷移レコードを備え
    、 前記遷移レコードは、前記コレクション内の選択されたモジュールの遷移に加
    重された値を関連付け、 シーケンスを選択する際に、遷移レコード値に基づいてモジュールの順序付け
    られたセットを選択することを特徴とする請求項5に記載の方法。
  7. 【請求項7】 遷移レコード値に基づいて選択する際に、パス決定アルゴリ
    ズムを使用して遷移レコード情報を処理することを特徴とする請求項6に記載の
    方法。
  8. 【請求項8】 前記ストリーミング制御データベースは、複数のリスト記録
    を備え、 前記複数のリスト記録のそれぞれは、前記コレクション内のモジュールのシー
    ケンスを識別し、 シーケンスを選択する際に、前記複数のリスト記録のうちの1つを選択するこ
    とを特徴とする請求項5に記載の方法。
  9. 【請求項9】 モジュールのシーケンスを選択する際に、前記第2コンピュ
    ータで選択し、透過的にストリーミングする際に、 前記コレクション内の第1モジュールを識別する選択データを第1コンピュー
    タで受信し、 前記第1モジュールを第2コンピュータに伝送し、 前記コレクション内の第2モジュールを識別する第2選択データを前記第1コ
    ンピュータで受信し、 前記第2モジュールを前記第2コンピュータに伝送することを特徴とする請求
    項1に記載の方法。
  10. 【請求項10】 さらに、前記モジュールセットの透過的なストリーミング
    に割込みを行い、 前記予め定められた基準に従ってモジュールの第2シーケンスを選択すること
    によって第2モジュールを形成し、 前記第1コンピュータから前記第2コンピュータに前記第2モジュールセット
    を透過的にストリーミングすることを特徴とする請求項1に記載の方法。
  11. 【請求項11】 さらに、前記第2コンピュータから前記第1コンピュータ
    にステータスデータを伝送し、 前記ステータスデータに基づいて前記第2モジュールセットを決定することを
    特徴とする請求項10に記載の方法。
  12. 【請求項12】 前記ステータスデータは、ユーザ入力を示すデータを備え
    ることを特徴とする請求項10に記載の方法。
  13. 【請求項13】 前記割込みの際に、 前記第2コンピュータから前記第1コンピュータにモジュール要求を送信し、 前記第1コンピュータから前記第2コンピュータに要求されたモジュールを伝
    送することを特徴とする請求項10に記載の方法。
  14. 【請求項14】 前記モジュール要求は、前記モジュール内のコードを実行
    しようとする試みに応答して送信されることを特徴とする請求項13に記載の方
    法。
  15. 【請求項15】 プログラムはJavaアプレットであり、 モジュール要求を送信し、要求されたモジュールを伝送する際に、前記第1コ
    ンピュータからJavaクラスを動的にロードすることを特徴とする請求項13
    に記載の方法。
  16. 【請求項16】 透過的にストリーミングする際に、 前記アプリケーションが実行されている間に前記モジュールセット内の第1モ
    ジュールを受信し、 前記第1モジュールを前記第2コンピュータにあるローカル記憶媒体上にスト
    アし、 前記方法はさらに、 前記第1モジュールを前記アプリケーションに統合することを特徴とする請求
    項1に記載の方法。
  17. 【請求項17】 前記第1モジュールを統合する際に、前記第1モジュール
    内に含まれるロジックを前記アプリケーション内に含まれるロジックに統合する
    ことを特徴とする請求項16に記載の方法。
  18. 【請求項18】 前記アプリケーションは割込みステートメントを備え、 前記第1モジュールに含まれるロジックは、実行可能な置換コードを備え、 前記第1モジュールを統合する際に、 前記割込みステートメントを実行し、 実行プログラムを呼び出し、 前記割込みステートメントを前記置換コードで置き換え、 前記置換コードを実行することを特徴とする請求項17に記載の方法。
  19. 【請求項19】 前記アプリケーションは第1スタブ手続きを備え、 前記モジュールセットは第1コードシーケンスを備え、 前記モジュールセットを統合する際に、前記第1スタブ手続きをオペラティブ
    に前記第1コードシーケンスで置き換えることを特徴とする請求項17に記載の
    方法。
  20. 【請求項20】 オペラティブに置き換える際に、アプリケーションから第
    1コードシーケンスにアプリケーション実行が移ることを可能にするように、第
    1スタブ手続きを変更することを特徴とする請求項19に記載の方法。
  21. 【請求項21】 コンピュータ可読メディア上に常駐するコンピュータプロ
    グラムであって、コンピュータに、 アプリケーションと関連付けられたモジュールのコレクションにアクセスさせ
    、 モジュール選択基準をストアするデータベースにアクセスさせ、 前記モジュール選択基準に従って前記コレクションからモジュールのシーケン
    スを選択することによってモジュールセットを形成させ、 前記モジュールセットを第2コンピュータに透過的にストリーミングさせる命
    令を備えることを特徴とするプログラム。
  22. 【請求項22】 コンピュータに透過的にストリーミングさせる前記命令は
    、前記コンピュータに、 前記コレクションから第1モジュールをリトリーブさせ、 前記第1モジュールを前記第2コンピュータに送信させる命令をさらに備える
    ことを特徴とする請求項21に記載のコンピュータプログラム。
  23. 【請求項23】 コンピュータ読取可能媒体上に常駐するコンピュータプロ
    グラムであって、コンピュータに、 アプリケーションを実行させ、 前記実行中のアプリケーションと関連付けられたモジュールを透過的に受信さ
    せ、 前記受信されたモジュールを前記実行中のアプリケーションとは独立にストア
    させ、 前記受信されたモジュールを前記実行中のアプリケーションに統合させる命令
    を備えることを特徴とするプログラム。
  24. 【請求項24】 第1コンピュータおよび第2コンピュータを備える、コン
    ピュータ間で情報モジュールを転送するためのシステムであって、 1) 前記第1コンピュータは、 a.アプリケーションを実行するための手段と、 b.前記アプリケーションが動作している間に、前記アプリケーションと関連
    付けられたモジュールのシーケンスを受信するための手段と、 c.前記受信されたシーケンス内の第1モジュールを前記アプリケーションに
    統合するための手段と を備え、 2) 前記第2コンピュータは、 a.前記アプリケーションと関連付けられたモジュールのコレクションをスト
    アするための手段と、 b.前記コレクションからモジュールのシーケンスを選択するための手段と、 c.前記第1コンピュータから前記第2コンピュータに選択された前記シーケ
    ンスを転送するための手段と を備えることを特徴とするシステム。
JP2000561545A 1998-07-22 1999-07-15 モジュールのストリーミング Expired - Fee Related JP4607320B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/120,575 US6311221B1 (en) 1998-07-22 1998-07-22 Streaming modules
US09/120,575 1998-07-22
PCT/US1999/016055 WO2000005637A2 (en) 1998-07-22 1999-07-15 Streaming modules

Publications (2)

Publication Number Publication Date
JP2002521745A true JP2002521745A (ja) 2002-07-16
JP4607320B2 JP4607320B2 (ja) 2011-01-05

Family

ID=22391192

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000561545A Expired - Fee Related JP4607320B2 (ja) 1998-07-22 1999-07-15 モジュールのストリーミング

Country Status (7)

Country Link
US (2) US6311221B1 (ja)
EP (1) EP1097416A4 (ja)
JP (1) JP4607320B2 (ja)
AU (1) AU5104699A (ja)
CA (1) CA2361342A1 (ja)
IL (1) IL141015A0 (ja)
WO (1) WO2000005637A2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280813A (ja) * 2003-03-03 2004-10-07 Fisher Rosemount Syst Inc 分散データのアクセス方法及びプロセス制御システムのための装置
JP2006518499A (ja) * 2003-01-16 2006-08-10 サン・マイクロシステムズ・インコーポレイテッド 装置にロードするためのプログラムデータの順序付け
JP2009123064A (ja) * 2007-11-16 2009-06-04 Toshiba Corp 計算機システム
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
JP2011525003A (ja) * 2008-05-16 2011-09-08 シマンテック コーポレーション 安全なアプリケーションストリーミング
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
JP2015507787A (ja) * 2011-12-15 2015-03-12 マイクロソフト コーポレーション 自律ネットワーク・ストリーミング

Families Citing this family (194)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US6848105B1 (en) * 1998-12-30 2005-01-25 Microsoft Corporation Method and system for identifying program module functionality needed by a computer when disconnected from a network
US6698011B1 (en) * 1999-01-29 2004-02-24 Intel Corporation Isolation of program translation failures
US7283991B1 (en) * 1999-03-11 2007-10-16 Microsoft Corporation Caching system for path search optimization
US6748440B1 (en) * 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US7007096B1 (en) 1999-05-12 2006-02-28 Microsoft Corporation Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules
US8055894B2 (en) * 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US6594773B1 (en) * 1999-11-12 2003-07-15 Microsoft Corporation Adaptive control of streaming data in a graph
US9076448B2 (en) * 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
JP2001357312A (ja) * 1999-11-24 2001-12-26 Sega Corp 情報処理装置、ファイルサーバ、課金管理システムおよび課金管理方法並びにプログラムを記録した記録媒体
US6711619B1 (en) * 1999-12-15 2004-03-23 Hewlett-Packard Development Company, L.P. Method, system, and apparatus for distributing and using computer-based applications over a network
US6721723B1 (en) * 1999-12-23 2004-04-13 1St Desk Systems, Inc. Streaming metatree data structure for indexing information in a data base
US6983315B1 (en) 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
US20020056120A1 (en) * 2000-01-21 2002-05-09 Mcternan Brennan J. Method and system for distributing video using a virtual set
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143252A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155731A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143714A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143250A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US8230482B2 (en) * 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173848A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US6965926B1 (en) * 2000-04-10 2005-11-15 Silverpop Systems, Inc. Methods and systems for receiving and viewing content-rich communications
US20050091511A1 (en) * 2000-05-25 2005-04-28 Itay Nave Useability features in on-line delivery of applications
US7010567B1 (en) * 2000-06-07 2006-03-07 Alpine Electronic, Inc. Map-data distribution method, and map-data distribution server and client
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6883168B1 (en) * 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US6757894B2 (en) 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi Network streaming of multi-application program code
US20020087883A1 (en) * 2000-11-06 2002-07-04 Curt Wohlgemuth Anti-piracy system for remotely served computer applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US20020083183A1 (en) * 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US8831995B2 (en) 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7043524B2 (en) 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7451196B1 (en) 2000-12-15 2008-11-11 Stream Theory, Inc. Method and system for executing a software application in a virtual environment
JP2002182921A (ja) * 2000-12-18 2002-06-28 Fujitsu Ltd 業務処理システム、業務処理装置、および業務処理ダウンロードプログラム記憶媒体
EP1217799B1 (en) * 2000-12-22 2007-01-24 Sun Microsystems, Inc. Server side execution of application modules in a client and server system
US20020095509A1 (en) * 2001-01-17 2002-07-18 World Channel Inc. Streaming booster and the method thereof
US20020129351A1 (en) * 2001-03-07 2002-09-12 Nexusedge Technologies Pty. Ltd. Software engine and method for software application loading
FI20010817A (fi) * 2001-04-20 2003-02-14 Nokia Corp Menetelmä informaation esittämiseksi elektroniikkalaitteen näytöllä ja elektroniikkalaite
US7185290B2 (en) * 2001-06-08 2007-02-27 Microsoft Corporation User interface for a system and process for providing dynamic communication access and information awareness in an interactive peripheral display
US20020186257A1 (en) * 2001-06-08 2002-12-12 Cadiz Jonathan J. System and process for providing dynamic communication access and information awareness in an interactive peripheral display
US6917951B2 (en) * 2001-07-26 2005-07-12 Microsoft Corporation System and method for replicating data in resource sets
US20030088714A1 (en) * 2001-10-15 2003-05-08 Scott Madlener User internet interface
EP1318451B1 (de) 2001-12-10 2004-10-06 Aladdin Knowledge Systems GmbH& Co. KG Verfahren zum Ausführen eines Programms auf einem Computer
US7624132B2 (en) * 2002-01-22 2009-11-24 Sun Microsystems, Inc. Method and apparatus for processing a streamed zip file
US7299292B2 (en) * 2002-03-29 2007-11-20 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream to a virtual smart card client system
US20040006637A1 (en) * 2002-04-25 2004-01-08 Pramote Kuacharoen Methods and systems for transmitting application software
US6953439B1 (en) 2002-06-27 2005-10-11 University Of South Florida Therapeutic mattress
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US7707188B2 (en) * 2002-12-20 2010-04-27 Schlumberger Technology Corporation System and method for electronic archival and retrieval of data
JP3757235B2 (ja) * 2003-02-18 2006-03-22 株式会社Access ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置
US7007170B2 (en) * 2003-03-18 2006-02-28 Widevine Technologies, Inc. System, method, and apparatus for securely providing content viewable on a secure device
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7735057B2 (en) * 2003-05-16 2010-06-08 Symantec Corporation Method and apparatus for packaging and streaming installation software
US7373590B2 (en) * 2003-05-19 2008-05-13 Microsoft Corporation Shared electronic ink annotation method and system
JP4150854B2 (ja) * 2003-06-27 2008-09-17 日本電気株式会社 ストレージエリアネットワーク上の共有ディスク装置へのアクセスシステム及びそのクライアント
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
EP1665040A2 (en) * 2003-09-17 2006-06-07 Research In Motion Limited System and method for dynamic version management of applications
EP1678606A2 (en) * 2003-09-17 2006-07-12 Research In Motion Limited System and method for management of mutating applications
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US20050251495A1 (en) * 2004-05-06 2005-11-10 Bea Systems, Inc. System and method for unified file management
US8230095B2 (en) * 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7908339B2 (en) * 2004-06-03 2011-03-15 Maxsp Corporation Transaction based virtual file system optimized for high-latency network connections
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
US9357031B2 (en) 2004-06-03 2016-05-31 Microsoft Technology Licensing, Llc Applications as a service
US7664834B2 (en) * 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US20060048136A1 (en) * 2004-08-25 2006-03-02 Vries Jeff D Interception-based resource detection system
US9124653B2 (en) * 2004-09-03 2015-09-01 Symantec Corporation Method and apparatus for allowing sharing of streamable applications
US9609279B2 (en) 2004-09-24 2017-03-28 Google Inc. Method and system for providing secure CODECS
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7240162B2 (en) * 2004-10-22 2007-07-03 Stream Theory, Inc. System and method for predictive streaming
CN101019101A (zh) * 2004-10-28 2007-08-15 诺基亚公司 用于运行模块化应用的设备、方法和计算机程序
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7657842B2 (en) * 2004-11-12 2010-02-02 Microsoft Corporation Sidebar tile free-arrangement
JP2008527468A (ja) 2004-11-13 2008-07-24 ストリーム セオリー,インコーポレイテッド ハイブリッド・ローカル/リモート・ストリーミング
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US20060107226A1 (en) * 2004-11-16 2006-05-18 Microsoft Corporation Sidebar autohide to desktop
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US8250296B2 (en) * 2004-12-01 2012-08-21 Dell Products L.P. System and method for information handling system memory page mapping optimization
US20060136389A1 (en) * 2004-12-22 2006-06-22 Cover Clay H System and method for invocation of streaming application
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7512584B2 (en) * 2005-03-04 2009-03-31 Maxsp Corporation Computer hardware and software diagnostic and report system
US8589323B2 (en) 2005-03-04 2013-11-19 Maxsp Corporation Computer hardware and software diagnostic and report system incorporating an expert system and agents
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7624086B2 (en) * 2005-03-04 2009-11-24 Maxsp Corporation Pre-install compliance system
US8234238B2 (en) 2005-03-04 2012-07-31 Maxsp Corporation Computer hardware and software diagnostic and report system
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
EP1875364A2 (en) 2005-03-23 2008-01-09 Stream Theory, Inc. System and method for tracking changes to files in streaming applications
US20060218165A1 (en) * 2005-03-23 2006-09-28 Vries Jeffrey De Explicit overlay integration rules
US7673228B2 (en) 2005-03-30 2010-03-02 Microsoft Corporation Data-driven actions for network forms
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20070254742A1 (en) * 2005-06-06 2007-11-01 Digital Interactive Streams, Inc. Gaming on demand system and methodology
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7568165B2 (en) * 2005-08-18 2009-07-28 Microsoft Corporation Sidebar engine, object model and schema
US7499989B2 (en) * 2005-08-18 2009-03-03 Microsoft Corporation Installing data with settings
US7665032B2 (en) * 2005-08-18 2010-02-16 Microsoft Corporation Sidebar engine, object model and schema
US8578290B2 (en) * 2005-08-18 2013-11-05 Microsoft Corporation Docking and undocking user interface objects
US7644391B2 (en) 2005-08-18 2010-01-05 Microsoft Corporation Sidebar engine, object model and schema
US20070067643A1 (en) * 2005-09-21 2007-03-22 Widevine Technologies, Inc. System and method for software tamper detection
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070083610A1 (en) * 2005-10-07 2007-04-12 Treder Terry N Method and a system for accessing a plurality of files comprising an application program
US20070168309A1 (en) * 2005-12-01 2007-07-19 Exent Technologies, Ltd. System, method and computer program product for dynamically extracting and sharing event information from an executing software application
US8629885B2 (en) * 2005-12-01 2014-01-14 Exent Technologies, Ltd. System, method and computer program product for dynamically identifying, selecting and extracting graphical and media objects in frames or scenes rendered by a software application
US7596540B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically enhancing an application executing on a computing device
US20070296718A1 (en) * 2005-12-01 2007-12-27 Exent Technologies, Ltd. Dynamic resizing of graphics content rendered by an application to facilitate rendering of additional graphics content
US7596536B2 (en) * 2005-12-01 2009-09-29 Exent Technologies, Ltd. System, method and computer program product for dynamically measuring properties of objects rendered and/or referenced by an application executing on a computing device
US8689016B2 (en) 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8811396B2 (en) 2006-05-24 2014-08-19 Maxsp Corporation System for and method of securing a network utilizing credentials
US8898319B2 (en) 2006-05-24 2014-11-25 Maxsp Corporation Applications and services as a bundle
US20070288644A1 (en) * 2006-06-07 2007-12-13 Cesar Augusto Rojas Systems and methods for developing and running applications in a web-based computing environment
CN101127034B (zh) * 2006-08-18 2012-05-23 国际商业机器公司 数据组织、查询、呈现、存档、恢复、删除、提炼方法及装置和系统
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US8275750B2 (en) * 2006-11-08 2012-09-25 International Business Machines Corporation Method to efficiently use the disk space while unarchiving
US7844686B1 (en) 2006-12-21 2010-11-30 Maxsp Corporation Warm standby appliance
GB2446832A (en) * 2007-02-23 2008-08-27 Quantel Ltd A file server system
US20080244080A1 (en) * 2007-03-29 2008-10-02 James Thomas H Prefetching Based on Streaming Hints
US8243924B2 (en) * 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
WO2009003683A1 (en) * 2007-07-02 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for processing and reading a file having a media data container and a metadata container
US8806324B2 (en) * 2007-08-03 2014-08-12 Sap Ag Annotation data filtering of computer files
US9323680B1 (en) * 2007-09-28 2016-04-26 Veritas Us Ip Holdings Llc Method and apparatus for prefetching data
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US8175418B1 (en) 2007-10-26 2012-05-08 Maxsp Corporation Method of and system for enhanced data storage
US8645515B2 (en) 2007-10-26 2014-02-04 Maxsp Corporation Environment manager
US8819105B2 (en) * 2007-11-07 2014-08-26 Barclays Capital Inc. Method and system for data formatting
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8635611B2 (en) * 2007-11-16 2014-01-21 Microsoft Corporation Creating virtual applications
US20090138876A1 (en) * 2007-11-22 2009-05-28 Hsuan-Yeh Chang Method and system for delivering application packages based on user demands
US9498714B2 (en) * 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
KR100936239B1 (ko) * 2007-12-18 2010-01-12 한국전자통신연구원 스트리밍 기반 이동형 소프트웨어 제공 시스템 및 방법
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US8799494B1 (en) * 2008-02-04 2014-08-05 Symantec Corporation Application streaming proactive failover
US8868464B2 (en) 2008-02-07 2014-10-21 Google Inc. Preventing unauthorized modification or skipping of viewing of advertisements within content
US7917902B2 (en) 2008-03-21 2011-03-29 Symantec Corporation Archive stream based install
US8060479B1 (en) 2008-03-28 2011-11-15 Symantec Corporation Systems and methods for transparently restoring data using file streaming
US7882342B1 (en) 2008-03-31 2011-02-01 Symantec Corporation Systems and methods for imaging a computer system
US8863116B1 (en) 2008-11-20 2014-10-14 Symantec Corporation Pre-storing blocks for a streamed application in a local cache on a host computer system
US8700072B2 (en) 2008-12-23 2014-04-15 At&T Mobility Ii Llc Scalable message fidelity
CN101776877A (zh) * 2009-01-12 2010-07-14 鸿富锦精密工业(深圳)有限公司 可编程逻辑控制器程序编辑系统及方法
US8024382B2 (en) * 2009-01-20 2011-09-20 Autodesk, Inc. Dynamic manipulation of archive files
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8925034B1 (en) 2009-06-30 2014-12-30 Symantec Corporation Data protection requirements specification and migration
US8387047B1 (en) 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US10089092B2 (en) 2010-01-27 2018-10-02 Embarcadero Technologies, Inc. Creating a software product from a software application
US8090744B1 (en) 2009-08-26 2012-01-03 Symantec Operating Corporation Method and apparatus for determining compatibility between a virtualized application and a base environment
US8473444B1 (en) 2009-08-28 2013-06-25 Symantec Corporation Management of actions in multiple virtual and non-virtual environments
US8438555B1 (en) 2009-08-31 2013-05-07 Symantec Corporation Method of using an encapsulated data signature for virtualization layer activation
US8458310B1 (en) 2009-09-14 2013-06-04 Symantec Corporation Low bandwidth streaming of application upgrades
US8566297B1 (en) 2010-01-14 2013-10-22 Symantec Corporation Method to spoof data formats from image backups
US20120084393A1 (en) * 2010-01-27 2012-04-05 Williams Wayne D License automation and streaming for software products
US8290912B1 (en) 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
KR20130028903A (ko) * 2010-03-09 2013-03-20 해피 클라우드 인코포레이티드 대화형 결정 지향적 소프트웨어 애플리케이션을 위한 데이터 스트리밍
US8495625B1 (en) * 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US9696981B2 (en) * 2011-04-27 2017-07-04 Cambridge Semantics, Inc. Incremental deployment of computer software program logic
US9515904B2 (en) 2011-06-21 2016-12-06 The Nielsen Company (Us), Llc Monitoring streaming media content
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US9402114B2 (en) 2012-07-18 2016-07-26 Cisco Technology, Inc. System and method for providing randomization in adaptive bitrate streaming environments
EP2720146A1 (en) * 2012-10-11 2014-04-16 Thomson Licensing Distributed application life-cycle management
US9516078B2 (en) * 2012-10-26 2016-12-06 Cisco Technology, Inc. System and method for providing intelligent chunk duration
US9420070B2 (en) * 2013-01-17 2016-08-16 Apple Inc. Streaming zip
US20140222866A1 (en) * 2013-02-01 2014-08-07 Google Inc. Accessing objects in hosted storage
US9880776B1 (en) 2013-02-22 2018-01-30 Veritas Technologies Llc Content-driven data protection method for multiple storage devices
US10015222B2 (en) * 2013-09-26 2018-07-03 Arris Canada, Inc. Systems and methods for selective retrieval of adaptive bitrate streaming media
US10310870B2 (en) * 2015-08-20 2019-06-04 Appdome Ltd. Method for creating a revised application by adding code functionality to an existing application executable
US10949398B2 (en) 2017-03-29 2021-03-16 Commvault Systems, Inc. Synchronization operations for network-accessible folders
GB2581070A (en) 2017-10-17 2020-08-05 Appdome Ltd Automated mobile application integration
WO2020097573A1 (en) 2018-11-08 2020-05-14 Appdome Ltd. Artificial intelligence mobile integration
US11831631B2 (en) 2018-11-08 2023-11-28 Appdome Ltd. Single sign-on for mobile applications using direct brokering for identity authentication
US11029932B2 (en) * 2019-08-23 2021-06-08 Microsoft Technology Licensing, Llc Hydration of applications

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436332A (en) * 1987-07-31 1989-02-07 Nec Corp Program loading system
JPH04336354A (ja) * 1991-05-14 1992-11-24 Nec Corp 分散処理型コンピュータシステム
JPH07271603A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp オーバレイプログラムロード方式
JPH086878A (ja) * 1994-06-17 1996-01-12 Toshiba Corp データ放送方法及びその装置
JPH0851596A (ja) * 1994-04-28 1996-02-20 Thomson Consumer Electron Inc オーディオ・ビデオ対話型プログラムの実行を制御する方法
WO1997000475A1 (en) * 1995-06-14 1997-01-03 Novell, Inc. Method for managing globally distributed software components
WO1998011723A1 (fr) * 1996-09-11 1998-03-19 Matsushita Electric Industrial Co., Ltd. Appareil de reception/d'execution de programme pouvant commencer l'execution d'un programme meme lorsque seulement une partie du programme est reçue, et emetteur de programme destine a cet appareil
JPH1091446A (ja) * 1996-07-03 1998-04-10 Sun Microsyst Inc Javaベースアプリケーションの発見とダウンロードのための分散オブジェクトシステムの利用
JPH10133976A (ja) * 1996-11-01 1998-05-22 Nippon Telegr & Teleph Corp <Ntt> オンデマンドファイルダウンロード方法及びシステム
JPH10162057A (ja) * 1996-11-29 1998-06-19 Meidensha Corp 設備管理システムの構築方法

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5495610A (en) * 1989-11-30 1996-02-27 Seer Technologies, Inc. Software distribution system to build and distribute a software release
JP2521016B2 (ja) * 1991-12-31 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチメディア・デ―タ処理システム
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
WO1994025913A2 (en) 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5504886A (en) * 1993-07-02 1996-04-02 International Business Machines Corporation System and method for applying user supplied relation definitions to application files for a relational database
US6625581B1 (en) * 1994-04-22 2003-09-23 Ipf, Inc. Method of and system for enabling the access of consumer product related information and the purchase of consumer products at points of consumer presence on the world wide web (www) at which consumer product information request (cpir) enabling servlet tags are embedded within html-encoded documents
US5581706A (en) * 1994-06-30 1996-12-03 Rca Thomson Licensing Corporation Method forming an audio/video interactive data signal
US5712976A (en) 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
US5708796A (en) 1994-11-18 1998-01-13 Lucent Technologies Inc. Method of retrieving continuous and non-continuous media data from a file system
DE69515838T2 (de) 1995-01-30 2000-10-12 Ibm Prioritätsgesteuerte Übertragung von Multimedia-Datenströmen über eine Fernmeldeleitung
EP0826181A4 (en) 1995-04-11 2005-02-09 Kinetech Inc IDENTIFYING DATA IN A DATA PROCESSING SYSTEM
US5802292A (en) * 1995-04-28 1998-09-01 Digital Equipment Corporation Method for predictive prefetching of information over a communications network
US5835749A (en) * 1995-05-05 1998-11-10 Apple Computer, Inc. Method and apparatus for providing dynamically linked libraries
US6199082B1 (en) * 1995-07-17 2001-03-06 Microsoft Corporation Method for delivering separate design and content in a multimedia publishing system
US6047323A (en) * 1995-10-19 2000-04-04 Hewlett-Packard Company Creation and migration of distributed streams in clusters of networked computers
US5761477A (en) 1995-12-04 1998-06-02 Microsoft Corporation Methods for safe and efficient implementations of virtual machines
US5765164A (en) 1995-12-21 1998-06-09 Intel Corporation Apparatus and method for management of discontinuous segments of multiple audio, video, and data streams
US6088524A (en) 1995-12-27 2000-07-11 Lucent Technologies, Inc. Method and apparatus for optimizing database queries involving aggregation predicates
CA2166254C (en) * 1995-12-28 2000-02-01 Robert James Blainey Improving memory layout based on connectivity considerations
US6199095B1 (en) * 1996-01-29 2001-03-06 Compaq Computer Corporation System and method for achieving object method transparency in a multi-code execution environment
US5754774A (en) 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5764235A (en) 1996-03-25 1998-06-09 Insight Development Corporation Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US5768528A (en) * 1996-05-24 1998-06-16 V-Cast, Inc. Client-server system for delivery of online information
US5870769A (en) 1996-06-07 1999-02-09 At&T Corp. Internet access system and method with active link status indicators
US5742768A (en) 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US5919247A (en) 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
US5864870A (en) * 1996-12-18 1999-01-26 Unisys Corp. Method for storing/retrieving files of various formats in an object database using a virtual multimedia file system
US5987513A (en) * 1997-02-19 1999-11-16 Wipro Limited Network management using browser-based technology
US6412004B1 (en) * 1997-03-27 2002-06-25 Microsoft Corporation Metaserver for a multimedia distribution network
US5978788A (en) 1997-04-14 1999-11-02 International Business Machines Corporation System and method for generating multi-representations of a data cube
US5946697A (en) * 1997-04-22 1999-08-31 Microsoft Corporation Rapid transfer of HTML files
US5878223A (en) 1997-05-07 1999-03-02 International Business Machines Corporation System and method for predictive caching of information pages
US5974129A (en) 1997-05-21 1999-10-26 Lucent Technologies Inc. Distributed virtual cache method for use in a database query control system
US6453334B1 (en) * 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US5933644A (en) * 1997-06-18 1999-08-03 Sun Microsystems, Inc. Method and apparatus for conflict-based block reordering
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
US6173291B1 (en) * 1997-09-26 2001-01-09 Powerquest Corporation Method and apparatus for recovering data from damaged or corrupted file storage media
US9197599B1 (en) * 1997-09-26 2015-11-24 Verizon Patent And Licensing Inc. Integrated business system for web based telecommunications management
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6163805A (en) * 1997-10-07 2000-12-19 Hewlett-Packard Company Distributed automated testing system
US6009410A (en) * 1997-10-16 1999-12-28 At&T Corporation Method and system for presenting customized advertising to a user on the world wide web
US6122628A (en) 1997-10-31 2000-09-19 International Business Machines Corporation Multidimensional data clustering and dimension reduction for indexing and searching
US5966702A (en) * 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
AU1702199A (en) * 1997-11-25 1999-06-15 Motorola, Inc. Audio content player methods, systems, and articles of manufacture
US6073129A (en) 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6044403A (en) * 1997-12-31 2000-03-28 At&T Corp Network server platform for internet, JAVA server and video application server
US6023726A (en) * 1998-01-20 2000-02-08 Netscape Communications Corporation User configurable prefetch control system for enabling client to prefetch documents from a network server
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US6381742B2 (en) * 1998-06-19 2002-04-30 Microsoft Corporation Software package management
US6256623B1 (en) * 1998-06-22 2001-07-03 Microsoft Corporation Network search access construct for accessing web-based search services
US6119082A (en) * 1998-07-13 2000-09-12 Lockheed Martin Corporation Speech coding system and method including harmonic generator having an adaptive phase off-setter
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6484311B2 (en) * 1998-07-15 2002-11-19 Microsoft Corporation Coalescing properties, methods and events
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US20020138640A1 (en) * 1998-07-22 2002-09-26 Uri Raz Apparatus and method for improving the delivery of software applications and associated data in web-based systems
US20010037400A1 (en) * 1998-07-22 2001-11-01 Uri Raz Method and system for decreasing the user-perceived system response time in web-based systems
US20010044850A1 (en) * 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US6230184B1 (en) * 1998-10-19 2001-05-08 Sun Microsystems, Inc. Method and apparatus for automatically optimizing execution of a computer program
US6374402B1 (en) * 1998-11-16 2002-04-16 Into Networks, Inc. Method and apparatus for installation abstraction in a secure content delivery system
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US6604106B1 (en) * 1998-12-10 2003-08-05 International Business Machines Corporation Compression and delivery of web server content
US6453354B1 (en) * 1999-03-03 2002-09-17 Emc Corporation File server system using connection-oriented protocol and sharing data sets among data movers
US6499060B1 (en) * 1999-03-12 2002-12-24 Microsoft Corporation Media coding for loss recovery with remotely predicted data units
US6425125B1 (en) * 1999-03-30 2002-07-23 Microsoft Corporation System and method for upgrading client software
US6408294B1 (en) * 1999-03-31 2002-06-18 Verizon Laboratories Inc. Common term optimization
US6466980B1 (en) * 1999-06-17 2002-10-15 International Business Machines Corporation System and method for capacity shaping in an internet environment
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US6538991B1 (en) * 1999-08-03 2003-03-25 Lucent Technologies Inc. Constraint-based routing between ingress-egress points in a packet network
US6370573B1 (en) * 1999-08-31 2002-04-09 Accenture Llp System, method and article of manufacture for managing an environment of a development architecture framework
US6427149B1 (en) * 1999-09-09 2002-07-30 Herman Rodriguez Remote access of archived compressed data files
US6438630B1 (en) * 1999-10-06 2002-08-20 Sun Microsystems, Inc. Scheduling storage accesses for multiple continuous media streams
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6535894B1 (en) * 2000-06-01 2003-03-18 Sun Microsystems, Inc. Apparatus and method for incremental updating of archive files
US6757894B2 (en) * 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi Network streaming of multi-application program code
US6918113B2 (en) * 2000-11-06 2005-07-12 Endeavors Technology, Inc. Client installation and execution system for streamed applications

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6436332A (en) * 1987-07-31 1989-02-07 Nec Corp Program loading system
JPH04336354A (ja) * 1991-05-14 1992-11-24 Nec Corp 分散処理型コンピュータシステム
JPH07271603A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp オーバレイプログラムロード方式
JPH0851596A (ja) * 1994-04-28 1996-02-20 Thomson Consumer Electron Inc オーディオ・ビデオ対話型プログラムの実行を制御する方法
JPH086878A (ja) * 1994-06-17 1996-01-12 Toshiba Corp データ放送方法及びその装置
WO1997000475A1 (en) * 1995-06-14 1997-01-03 Novell, Inc. Method for managing globally distributed software components
JPH1091446A (ja) * 1996-07-03 1998-04-10 Sun Microsyst Inc Javaベースアプリケーションの発見とダウンロードのための分散オブジェクトシステムの利用
WO1998011723A1 (fr) * 1996-09-11 1998-03-19 Matsushita Electric Industrial Co., Ltd. Appareil de reception/d'execution de programme pouvant commencer l'execution d'un programme meme lorsque seulement une partie du programme est reçue, et emetteur de programme destine a cet appareil
JPH10133976A (ja) * 1996-11-01 1998-05-22 Nippon Telegr & Teleph Corp <Ntt> オンデマンドファイルダウンロード方法及びシステム
JPH10162057A (ja) * 1996-11-29 1998-06-19 Meidensha Corp 設備管理システムの構築方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518499A (ja) * 2003-01-16 2006-08-10 サン・マイクロシステムズ・インコーポレイテッド 装置にロードするためのプログラムデータの順序付け
US7809679B2 (en) 2003-03-03 2010-10-05 Fisher-Rosemount Systems, Inc. Distributed data access methods and apparatus for process control systems
JP2004280813A (ja) * 2003-03-03 2004-10-07 Fisher Rosemount Syst Inc 分散データのアクセス方法及びプロセス制御システムのための装置
US8132176B2 (en) 2004-09-30 2012-03-06 Citrix Systems, Inc. Method for accessing, by application programs, resources residing inside an application isolation scope
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7676813B2 (en) 2004-09-30 2010-03-09 Citrix Systems, Inc. Method and system for accessing resources
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US8302101B2 (en) 2004-09-30 2012-10-30 Citrix Systems, Inc. Methods and systems for accessing, by application programs, resources provided by an operating system
US8042120B2 (en) 2004-09-30 2011-10-18 Citrix Systems, Inc. Method and apparatus for moving processes between isolation environments
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
JP2009123064A (ja) * 2007-11-16 2009-06-04 Toshiba Corp 計算機システム
JP2011525003A (ja) * 2008-05-16 2011-09-08 シマンテック コーポレーション 安全なアプリケーションストリーミング
JP2015507787A (ja) * 2011-12-15 2015-03-12 マイクロソフト コーポレーション 自律ネットワーク・ストリーミング

Also Published As

Publication number Publication date
AU5104699A (en) 2000-02-14
JP4607320B2 (ja) 2011-01-05
EP1097416A2 (en) 2001-05-09
CA2361342A1 (en) 2000-02-03
WO2000005637A3 (en) 2000-10-12
US6311221B1 (en) 2001-10-30
WO2000005637A2 (en) 2000-02-03
EP1097416A4 (en) 2007-05-02
US20020042833A1 (en) 2002-04-11
IL141015A0 (en) 2002-02-10

Similar Documents

Publication Publication Date Title
JP2002521745A (ja) モジュールのストリーミング
US7606924B2 (en) Method and apparatus for determining the order of streaming modules
US6366947B1 (en) System and method for accelerating network interaction
US8103746B2 (en) Method and system for distributing requests for content
US6370580B2 (en) Web serving system that coordinates multiple servers to optimize file transfers
KR100300494B1 (ko) 서버에서의 데이터 프리캐싱 방법 및 장치
US8539038B2 (en) Method and system for preloading resources
US6098093A (en) Maintaining sessions in a clustered server environment
JP2953591B2 (ja) サーバ・コンピュータのプロセッサ全体にわたる負荷平衡化
EP0876034B1 (en) Method for content retrieval over a network
US9350795B2 (en) Methods, systems and computer program products for proactively offering a network turbo boost service to end users
US20020138640A1 (en) Apparatus and method for improving the delivery of software applications and associated data in web-based systems
WO1998004985A9 (en) Web serving system with primary and secondary servers
US20020133566A1 (en) Enhanced multimedia mobile content delivery and message system using load balancing
WO1998053398A1 (en) Java virtual machine extension for instantiating objects
KR100468006B1 (ko) 인트라넷 상의 클라이언트 기기를 위한 애플리케이션 제공시스템 및 방법
JP2002540536A (ja) コンピュータシステム用分散型オブジェクト
WO1996041284A1 (en) Improved end-user interactive access to the world-wide web via the internet
US7149800B2 (en) Auditing computer systems components in a network
JP2000510978A (ja) キャッシュデータベースにおける情報検索
WO2000043919A1 (en) Link presentation and data transfer
JP4448026B2 (ja) Htmlアプリケーションの送信方法
KR20030041856A (ko) 정보 전송 및 수집 방법과 정보 전송 시스템 및컴퓨터-사용가능 운송 매체
WO2003069475A2 (en) A plug-in api for modular network transaction processing
CN1335960A (zh) 装入应用程序的计算机系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060705

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100810

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100909

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101007

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees