JP2000105704A - バイト・コ―ドおよびシリアル化オブジェクト・ストリ―ムの適時配信のための方法および装置 - Google Patents

バイト・コ―ドおよびシリアル化オブジェクト・ストリ―ムの適時配信のための方法および装置

Info

Publication number
JP2000105704A
JP2000105704A JP11176517A JP17651799A JP2000105704A JP 2000105704 A JP2000105704 A JP 2000105704A JP 11176517 A JP11176517 A JP 11176517A JP 17651799 A JP17651799 A JP 17651799A JP 2000105704 A JP2000105704 A JP 2000105704A
Authority
JP
Japan
Prior art keywords
header
class
code
extracting
time stamp
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
JP11176517A
Other languages
English (en)
Other versions
JP4397460B2 (ja
Inventor
Viswanathan Swaminathan
ヴィシュワナサン・スワミナサン
Gerard Fernando
ジェラルド・フェルナンド
Michael Speer
マイケル・スピアー
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 JP2000105704A publication Critical patent/JP2000105704A/ja
Application granted granted Critical
Publication of JP4397460B2 publication Critical patent/JP4397460B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【課題】 信頼できないトランスポート・メカニズムや
適時配信の保証が欠落しているものを含む、多様なトラ
ンスポート・メカニズムによるクラスおよび/またはオ
ブジェクトの適時配信を可能とする。 【解決手段】 タイミング情報を含むヘッダをクラスお
よび/またはオブジェクトに付加する。「ロード開始」
時間および「ロード期限」時間をヘッダに指定する。ロ
ードすべき他のクラスおよび/またはオブジェクトもヘ
ッダに指定する。任意選択の圧縮方式、セキュリティ方
式、および/またはエラー回復方式もヘッダに指定す
る。ヘッダを作成し、それをクラスまたはオブジェクト
に付加するためのプロセスを提供する。付加したヘッダ
を備えたクラスまたはオブジェクトを受信し、処理する
ためのプロセスを提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・ソ
フトウェアの分野に関し、より具体的にはオブジェクト
指向コンピュータ・アプリケーションに関する。
【0002】本特許文書の開示内容の一部は、著作権保
護の対象となるデータを含む。著作権所有者は、米国特
許商標庁のファイルまたは記録に現れる特許文書または
特許開示をどのような人がそのまま複写してもそれに対
して一切異議はないが、その他の点ではすべての著作権
権利を保有する。Sun、Sun Microsyst
ems、Sunのロゴ、Solaris、SPARC、
「Write Once,Run Anywher
e」、Java、JavaOS、JavaStatio
n、すべてのJavaベースの商標およびロゴは、米国
およびその他の国におけるSun Microsyst
ems社の商標または登録商標である。
【0003】
【従来の技術】ネットワーク技術の進歩に伴い、テキス
ト、グラフィック、オーディオなどのメディア情報の配
布を容易にするためのネットワークの使用は、特にイン
ターネットおよびワールド・ワイド・ウェブの場合、大
幅に拡大した。現在の開発努力の焦点分野の1つは、ウ
ェブ・アプリケーションおよびネットワーク・インタラ
クティビティの分野である。HTML定義などの受動的
なメディア・コンテンツに加え、ネットワークに結合さ
れたコンピュータ・ユーザまたは「クライアント」は、
たとえば、ネットワーク上の「サーバ」から、アプレッ
トの形のアプリケーション・コンテンツにアクセスする
かまたはそれをダウンロードすることができる。
【0004】クライアントが使用するハードウェア・シ
ステムの多様性に対処するため、アプリケーションまた
はアプレットは、JavaTMクラス・ファイル・フォー
マットなどのプラットフォーム独立フォーマットで配布
される。オブジェクト指向アプリケーションは、必要に
応じて個別にサーバからアクセスされ、ダウンロードさ
れる複数のクラス・ファイルから形成される。クラス・
ファイルはバイトコード命令を含む。特定のハードウェ
ア・プラットフォーム上で実行される「仮想計算機」プ
ロセスは、個々のクラス・ファイルをロードし、内部に
含まれるバイトコードを実行するものである。
【0005】クラス・ファイル・フォーマットとクラス
・ローディング・プロセスの問題は、クラス・ファイル
の適時配信を保証するためのメカニズムが一切設けられ
ていないことである。したがって、個々のクラス・ファ
イルの格納、転送、処理のタイミングは、特定の時間フ
レーム内で発生するようにスケジュールまたは保証され
ない。また、1つのアプリケーションは多くのクラス・
ファイルを含む可能性があり、そのすべてが別々のトラ
ンザクションでロードされ処理される。したがって、1
つのクラス・ファイルであっても配信が遅れると、アプ
リケーションが減速し、パフォーマンスが低下する。
【0006】このような問題は、一般的なオブジェクト
指向プログラミングの検討と、現在のネットワーク・ア
プリケーション環境の例から理解することができる。
【0007】オブジェクト指向プログラミング オブジェクト指向プログラミングは、所与の基本構成要
素を組み合わせ、構成要素間の関係を構築することによ
り、コンピュータ・プログラムを作成する方法である。
オブジェクト指向プログラミング・システムの構成要素
は「オブジェクト」と呼ぶ。オブジェクトは、データ構
造(1つまたは複数のインスタンス変数)とそのデータ
を使用するかまたはそれを左右しうる操作(メソッド)
とをまとめてグループ化するプログラミング単位であ
る。したがって、1つのオブジェクトは、データとその
データ上で実行可能な1つまたは複数の操作または手続
きからなる。データと操作を単一構成要素に結合するこ
とは「カプセル化」と呼ぶ。
【0008】オブジェクトは、「メッセージ」を受け取
ったときにそのメソッドの1つを実行するよう指示され
る。メッセージは、所与のメソッドを実行するようオブ
ジェクトに送られるコマンドまたは命令である。1つの
メッセージは、メソッド選択(たとえば、メソッド名)
と複数の引数からなる。メッセージは、どの操作を実行
すべきかを受取り側オブジェクトに指示するものであ
る。
【0009】オブジェクト指向プログラミングの利点の
1つは、メソッドを呼び出す方法である。メッセージが
オブジェクトに送られる場合、メッセージが所与のメソ
ッドを実行する方法をオブジェクトに指示する必要はな
い。オブジェクトがメソッドを実行することを要求する
ことだけが必要である。このため、プログラム開発は大
幅に簡略化される。
【0010】オブジェクト指向プログラミング言語は主
に「クラス」方式に基づく。クラスベースのオブジェク
ト指向プログラミング方式については、Lieberm
anの「Using Prototypical Ob
jects to Implement Shared
Behavior in Object−Orien
ted Systems」(OOPSLA 86 Pr
oceedings、1986年9月、214〜223
ページ)に一般的に記載されている。
【0011】クラスとは、通常、そのクラス用の変数と
メソッドの両方を含むオブジェクトのタイプを定義する
ものである。オブジェクト・クラスは、オブジェクトの
特定のインスタンスを作成するために使用する。オブジ
ェクト・クラスのインスタンスは、そのクラス用に定義
された変数とメソッドを含む。1つのオブジェクト・ク
ラスから同じクラスの複数のインスタンスを作成するこ
とができる。そのオブジェクト・クラスから作成される
各インスタンスは同じタイプまたはクラスであると言
う。
【0012】例示のため、従業員オブジェクト・クラス
は、「氏名」および「給与」インスタンス変数と、「s
et_salary」メソッドとを含むことができる。
従業員オブジェクト・クラスのインスタンスは、組織内
の各従業員ごとに作成することができる。各オブジェク
ト・インスタンスは「従業員」タイプのものであると言
う。各従業員オブジェクト・インスタンスは、「氏名」
および「給与」インスタンス変数と、「set_sal
ary」メソッドとを含む。各従業員オブジェクト・イ
ンスタンス内の「氏名」および「給与」変数に関連する
値は、組織内の従業員の氏名と給与を含む。「set_
salary」メソッドを呼び出して従業員の給与(す
なわち、従業員の従業員オブジェクト内の「給与」変数
に関連する値)を変更するために、従業員の従業員オブ
ジェクト・インスタンスにメッセージを送ることができ
る。
【0013】クラスの階層は、1つのオブジェクト・ク
ラス定義が1つまたは複数のサブクラスを持つように定
義することができる。サブクラスは、その親(および祖
父母など)の定義を継承する。階層内の各サブクラス
は、その親クラスによって指定された挙動を拡充しまた
はそれを変更することができる。一部のオブジェクト指
向プログラミング言語は、1つのサブクラスが複数の親
クラスからのクラス定義を継承できる多重継承をサポー
トしている。他のプログラミング言語は単一継承のみを
サポートし、サブクラスは1つの親クラスのみのクラス
定義の継承に限定される。JavaTMプログラミング言
語は、1組の定数および抽象メソッド宣言を含む「イン
タフェース」というメカニズムも提供する。オブジェク
ト・クラスは、インタフェース内に定義された抽象メソ
ッドを実装することができる。単一継承と多重継承はい
ずれもインタフェースにとって使用可能なものである。
すなわち、インタフェースは複数の親インタフェースか
らのインタフェース定義を継承することができる。
【0014】オブジェクトは、関連コードおよび変数を
含むモジュールを指すためにオブジェクト指向プログラ
ミング環境で使用する総称である。ソフトウェア・アプ
リケーションは、それによりプログラムの機能性がオブ
ジェクトによって実現されるオブジェクト指向プログラ
ミング言語を使用して作成することができる。
【0015】JavaTMプログラミングおよび実行 JavaTMプログラムは複数のクラスおよびインタフェ
ースから構成される。プログラムがマシン依存の実行可
能プログラム・コードにコンパイルされる多くのプログ
ラミング言語とは異なり、JavaTMクラスはマシン独
立バイトコード・クラス・ファイルにコンパイルされ
る。各クラスは、クラス・ファイル・フォーマットとい
うプラットフォーム独立フォーマットのコードおよびデ
ータを含む。実行手段(executive vehi
cle)として動作するコンピュータ・システムは仮想
計算機というプログラムを含み、そのプログラムはJa
va TMクラスでそのコードの実行を担当する。仮想計算
機は、バイトコード・クラスのマシンの独立性と下にあ
るコンピュータ・ハードウェアのマシン依存命令セット
との間のあるレベルの抽象化を可能にする。仮想計算機
内の「クラス・ローダ」は、必要に応じてバイトコード
・クラス・ファイルのロードを担当し、インタプリタが
そのバイトコードをそのまま実行するかまたは「ジャス
トインタイム」(JIT)コンパイラがそのバイトコー
ドをマシン・コードに変換し、プロセッサによって実行
できるようにする。
【0016】サンプルJavaTMネットワーク・アプリ
ケーション環境 図1は、JavaTMアプリケーションまたはアプレット
の実行のためにJavaTMクラス・ファイルにアクセス
するためにネットワーク101によりサーバ100に結
合されたクライアント・プラットフォーム102を含む
サンプルJavaTMネットワーク環境を示すブロック図
である。
【0017】図1のサーバ100は、所与のアプリケー
ション用のJavaTMクラス・ファイルを作成する際に
使用するためのJavaTM開発環境104を含む。Ja
va TM開発環境104は、クラス・ファイルを生成し、
アプレットをプレビューするためのエディタおよびアプ
レット・ビューアなどのメカニズムを提供する。1組の
JavaTMコア・クラス103は、他の/新しいJav
TMクラスを含むソース・ファイルによって参照可能な
JavaTMクラスのライブラリを含む。JavaTM開発
環境104から1つまたは複数のJavaTMソース・フ
ァイル105が生成される。JavaTMソース・ファイ
ル105は、データ構造、メソッド・インプリメンテー
ション、他のクラスへの参照を含むプログラマ可読クラ
ス定義を含む。JavaTMソース・ファイル105はJ
avaTMコンパイラ106に供給され、そのコンパイラ
はJavaTMソース・ファイル105をコンパイルし、
JavaTM仮想計算機によって実行可能なバイトコード
を含むコンパイル済み「.class」ファイル107
を作成する。バイトコード・クラス・ファイル107
は、サーバ100上に(たとえば、一時または永久記憶
装置に)格納され、ネットワーク101によるダウンロ
ード用として使用可能になる。
【0018】クライアント・プラットフォーム102は
JavaTM仮想計算機(JVM)111を含み、その仮
想計算機は、使用可能なネイティブ・オペレーティング
・システム(O/S)呼出し112の使用により、バイ
トコード・クラス・ファイルを実行し、実行中に必要に
なったときにネイティブO/S呼出しを実行することが
できる。
【0019】JavaTMクラス・ファイルは、しばしば
HTML(ハイパーテキスト・マークアップ言語)文書
内のアプレット・タグで識別される。ウェブ・サーバ・
アプリケーション108はサーバ100上で実行され、
「ウェブ・ページ」とも呼ばれるHTML文書へのUR
L(ユニバーサル・リソース・ロケータ)を含むHTT
P(ハイパーテキスト・トランスポート・プロトコル)
要求に応答する。ウェブ・サーバ108にURL109
を転送することなどにより、クライアント・プラットフ
ォーム102上で実行されるブラウザ・アプリケーショ
ンがHTML文書を要求すると、ブラウザはHTML文
書のアプレット・タグで識別されるクラス・ファイル1
07のダウンロードを自動的に開始する。クラス・ファ
イル107は通常、必要に応じて個別にサーバからダウ
ンロードされ、仮想計算機111内にロードされる。
【0020】JavaTMプログラムのクラスがプログラ
ムの実行中のできるだけ遅い時期にロードされることは
一般的なことであり、それらは、JavaTMプログラム
の実行中に最初に参照されたときにネットワークから
(サーバ上に格納されている)またはローカル・ファイ
ル・システムから要求があり次第、ロードされる。仮想
計算機は、各クラス・ファイルを突き止めてロードし、
クラス・ファイル・フォーマットを解析し、そのクラス
の様々な構成要素用にメモリを割り振り、そのクラスを
すでにロードされた他のクラスとリンクする。このプロ
セスにより、クラス内のコードは仮想計算機によって容
易に実行可能なものになる。
【0021】適時配信 JavaTMバイト・コードまたはシリアル化オブジェク
トを適時にクライアントに配信しなければならない様々
なアプリケーションが存在する。たとえば、JavaTM
バイト・コードを使用して、プッシュ・シナリオで時間
意識の強いメディアを制御するときには、バイト・コー
ドの適時配信を保証することは不可欠である。
【0022】現在、適時にバイト・コードを配信するメ
カニズムは一切使用されていなかった。現在、バイト・
コードを配信するための技法は、伝送制御プロトコル
(TCP)を使用してサーバからクライアントにバイト
・コードを伝送している。TCPは、情報の適時配信を
保証するものではない。
【0023】メディア・ストリームとして伝送するため
の時間に敏感なデータ(たとえば、オーディオ、ビデオ
など)を作成するために使用可能な方式(たとえば、M
PEG−1、MPEG−2、MPEG−4などのMot
ion Picture Experts Group
(MPEG)規格)がいくつか存在する。同様に、「時
間意識の強い」メディア・ストリームを適時に配信する
ために、リアルタイム・トランスポート・プロトコル
(RTP)およびMPEG−2トランスポート・ストリ
ームのような方式がいくつか存在する。「時間意識の強
い」情報とは、ある情報の使用に関連するタイミングを
表す追加情報をその情報とともに伝達する情報である。
たとえば、ある方法で処理されなければならないデッド
ラインを示すタイム・スタンプを含む情報は、「時間意
識の強い」情報と見なされる。
【0024】しかし、このような技法は、実行可能なバ
イト・コードではなく、オーディオおよびビデオ・デー
タなどのメディア・ストリームを配信するように設計さ
れている。メディア・ストリームは通常、本質的に破損
または完全性の喪失に対して抵抗力のある情報を含む。
たとえば、数ミリ秒分のオーディオまたはビデオ・デー
タが一時的に破損しても、聴取者または視聴者にとって
はわずかに気が散るだけである。しかし、実行可能なバ
イト・コードの破損は最も軽微なものでも適切な実行を
妨げる可能性がある。
【0025】さらに、あるクラス・ファイルのバイト・
コードは、適切な実行のために他のクラス・ファイルに
依存する場合が多い。メディア・ストリームの適時配信
のための既存の技法は、このような依存関係に対する備
えを含んでいない。したがって、バイト・コードの適時
配信を可能にするための技法が必要になっている。
【0026】また、クラス・ファイル(またはシリアル
化オブジェクト)を時間意識の強いストリームに変換す
るための技法も必要である。JavaTMバイト・コード
・ストリームが時間意識の強いものになっている場合、
RTPのような他のリアル・タイム・トランスポート・
メカニズムを使用して、そのストリームを適時に移送す
ることができるだろう。このような方式は、マルチキャ
ストまたは同報通信シナリオでのバイト・コードの使用
を促進するだろう。このため、ユーザ・データグラム・
プロトコル(UDP)のようなインターネット・プロト
コルを使用してバイト・コードを伝送することが可能に
なるだろう。このような方式がない場合、UDPはバイ
ト・コードの配信に不適当なものである。というのは、
UDPは信頼できないプロトコル(データの配信を保証
しないもの)であるからである。信頼できないプロトコ
ルによりバイト・コードを伝送すると、バイト・コード
の一部分が喪失し、それにより、バイト・コードを適切
に実行できなくなるであろう。
【0027】
【発明が解決しようとする課題】バイト・コード・スト
リームの適時配信を可能にするための方法および装置を
提供することが本発明の課題である。すなわち、既存の
トランスポート技法の欠点、たとえば、配信の時期はず
れおよび不信頼性を回避することが課題である。
【0028】
【課題を解決するための手段】本発明により、バック・
チャネルの有無に関わらずマルチキャスト/同報通信シ
ナリオでのJavaTMバイト・コードの適時配信が可能
になる。同じメカニズムは、(シリアル化)オブジェク
トの配信にも使用することができる。マルチキャストに
より、特別にアドレス指定したデータ・ストリームを多
くのユーザに伝送することができる。マルチキャストの
場合、データ・ストリームは各ユーザに個別に伝送する
必要がない。むしろ、ユーザは、たとえば、特別にアド
レス指定したデータ・ストリームのアドレスを指定する
ことにより、マルチキャスト・サービスに加入すること
ができる。同報通信により、マルチキャストの加入プロ
セスなしにユーザに伝送することができる。
【0029】本発明は、ユーザが情報を要求する必要な
しに情報がユーザに伝送される「プッシュ」メディアで
の使用に適している。「プッシュ」メディアは、ユーザ
がメディアのソースに返答できるようにするためのバッ
ク・チャネルが一切設けられていない環境でも伝送する
ことができる。また、本発明は、ユーザがメディアのソ
ースから情報を要求する「プル」メディアでの使用にも
適している。
【0030】本発明実施態様は、JavaTMバイト・コ
ード(クラス・ファイル内の)を「時間意識の強いも
の」にする働きをする。バイト・コードの適時配信を保
証するため、コンテンツとともに適切なデッドラインが
タイム・スタンプとしてクライアントに伝達される。こ
れらのタイム・スタンプは、このような配信メカニズム
を促進するためにヘッダで使用する。ヘッダはバイト・
コードに付加され、バイト・コード・ストリームの適時
配信を可能にする。
【0031】バイト・コードの適時配信で扱われる伝送
態様の1つはパケット喪失である。従来の技法では、J
avaTMバイト・コード・ストリーミングの場合にパケ
ット喪失から回復する方法を一切提供していない。考え
られる手法の1つは、バック・チャネルがない場合に、
一定の間隔でクラス全体を再伝送するものである。これ
は、メディアの場合にランダム・アクセス・ポイントを
促進するのに役立つだろう。しかし、これは、クライア
ントの数が多すぎる場合またはクラス(またはオブジェ
クト)が非常に大きく、再伝送が法外なものになる場合
には不可能になる。
【0032】バック・チャネルが存在する場合、パケッ
ト喪失をサーバに通知することができ、喪失パケットを
再伝送することができる。信頼できるマルチキャスト方
式を使用すると、サーバ以外の場所からデータを再伝送
することもできる。
【0033】部分パケット喪失から回復するために使用
可能な、固有の冗長性を備えたエラー回復方式(err
or resilient schemes)がいくつ
か存在する。たとえば、順方向エラー訂正のような方式
を使用することができる。また、パケット喪失問題は、
何らかの信頼できるマルチキャスト方式を使用すること
により、部分的に解決することができる。本発明の実施
態様は、パケット喪失を克服するために任意のエラー回
復または任意の信頼できるマルチキャスト・アルゴリズ
ムの使用を促進する。
【0034】扱われるもう1つの態様はセキュリティの
面である。クライアントの安全を保証するため、バイト
・コードは本物である必要がある。バイト・コードが本
物であることを保証するために使用可能なセキュリティ
方式はいくつか存在する。本発明の実施態様は、Jav
TMセキュリティAPIのセキュリティ・モデル内で任
意のセキュリティ方式を使用することを扱う。
【0035】さらに他の態様は圧縮の面である。圧縮
は、所与の量の情報を伝送するために必要な時間を短縮
することにより、配信の効率を高める。効率のためにク
ラス・ファイルを圧縮するために、LZW、LZSなど
のいくつかの圧縮方式が使用可能である。
【0036】
【発明の実施の形態】本発明は、バイト・コード・スト
リームの適時配信を可能にするための方法および装置を
提供する。以下の説明では、本発明をより完全に理解で
きるようにするために多数の具体的な詳細を示す。しか
し、当業者にとっては、このような具体的な詳細がなく
ても本発明を実施できることは明らかになるだろう。他
の事例では、本発明を不必要に不明確にしないために、
周知の特徴については詳細に記載していない。
【0037】コンピュータ実行環境(ハードウェア)の
実施形態 本発明の実施形態は、図2に示すコンピュータ200な
どの汎用コンピュータ上で実行されるコンピュータ可読
プログラム・コードの形またはこのようなコンピュータ
上で動作する仮想計算機によって実行可能なバイトコー
ド・クラス・ファイルの形でコンピュータ・ソフトウェ
アとして実現することができる。キーボード210およ
びマウス211は双方向システム・バス218に結合さ
れている。このキーボードおよびマウスは、ユーザ入力
をコンピュータ・システムに導入し、そのユーザ入力を
中央演算処理装置(CPU)213に連絡するためのも
のである。マウス211およびキーボード210に加え
またはその代わりに、他の適当な入力装置を使用するこ
ともできる。双方向システム・バス218に結合された
I/O(入力/出力)ユニット219は、プリンタ、A
/V(オーディオ/ビデオ)I/OなどのI/O要素を
表す。
【0038】コンピュータ200は、ビデオ・メモリ2
14と、メイン・メモリ215と、大容量記憶装置21
2とを含み、いずれもキーボード210、マウス21
1、CPU213とともに双方向システム・バス218
に結合されている。大容量記憶装置212は、磁気記憶
システム、光学記憶システム、または磁気光学記憶シス
テムあるいは使用可能な他の大容量記憶技術などの固定
メディアと取外し可能メディアの両方を含むことができ
る。バス218は、ビデオ・メモリ214またはメイン
・メモリ215をアドレス指定するために、たとえば、
32本のアドレス線を含むことができる。また、システ
ム・バス218は、CPU213、メイン・メモリ21
5、ビデオ・メモリ214、大容量記憶装置212など
の構成要素間でデータを転送するために、たとえば、3
2ビットのデータ・バスも含む。あるいは、別々のデー
タ線とアドレス線の代わりに、多重データ/アドレス線
を使用することもできる。
【0039】本発明の一実施形態では、CPU213
は、680X0プロセッサなどのMotorola(登
録商標)製のマイクロプロセッサあるいは80X86ま
たはPentium(登録商標)プロセッサなどのIn
tel(登録商標)製のマイクロプロセッサあるいはS
un Microsystems(登録商標)のSPA
RC(登録商標)マイクロプロセッサである。しかし、
他のどのような適当なマイクロプロセッサまたはマイク
ロコンピュータでも使用することができる。メイン・メ
モリ215は、ダイナミック・ランダム・アクセス・メ
モリ(DRAM)からなる。ビデオ・メモリ214は、
デュアルポート式ビデオ・ランダム・アクセス・メモリ
である。ビデオ・メモリ214の1つのポートはビデオ
増幅器216に結合されている。ビデオ増幅器216
は、陰極線管(CRT)ラスタ・モニタ217を駆動す
るために使用する。ビデオ増幅器216は、当技術分野
では周知のものであり、適切などのような装置も使用で
きる。この回路は、ビデオ・メモリ214に格納された
ピクセル・データをモニタ217が使用するために適し
たラスタ信号に変換する。モニタ217は、グラフィッ
ク・イメージを表示するのに適したタイプのモニタであ
る。
【0040】本コンピュータ200は、バス218に結
合された通信インタフェース220も含んでいる。通信
インタフェース220は、ネットワーク・リンク221
によりローカル・ネットワーク222に結合する両方向
データ通信を可能にする。たとえば、通信インタフェー
ス220が統合サービス・ディジタル網(ISDN)カ
ードまたはモデムである場合、通信インタフェース22
0は、ネットワーク・リンク221の一部を含む対応す
るタイプの電話回線へのデータ通信接続を可能にする。
通信インタフェース220がローカル・エリア・ネット
ワーク(LAN)カードである場合、通信インタフェー
ス220は、ネットワーク・リンク221により互換性
のあるLANへのデータ通信接続を可能にする。ワイヤ
レス・リンクも可能である。このような実施形態のいず
れにおいても、通信インタフェース220は、様々なタ
イプの情報を表すディジタル・データ・ストリームを伝
達する電気信号、電磁信号、または光学信号を送受信す
ることができる。
【0041】ネットワーク・リンク221は、通常、1
つまたは複数のネットワークによる他のデータ装置への
データ通信を可能にする。たとえば、ネットワーク・リ
ンク221は、ローカル・ネットワーク222によりホ
スト・コンピュータ223またはインターネット・サー
ビス・プロバイダ(ISP)224が運営するデータ機
器へ接続することができる。ISP224は、一般に
「インターネット」225と呼ばれるワールド・ワイド
・パケット・データ通信ネットワークによりデータ通信
サービスである。ローカル・ネットワーク222および
インターネット225はどちらもディジタル・データ・
ストリームを伝達する電気信号、電磁信号、または光学
信号を使用する。様々なネットワークによる信号ならび
にネットワーク・リンク221上および通信インタフェ
ース220による信号は、コンピュータ200との間で
ディジタル・データを伝達するものであり、情報を移送
する搬送波の例示的な形式である。
【0042】コンピュータ200は、ネットワーク(複
数も可)、ネットワーク・リンク221、通信インタフ
ェース220により、メッセージを送信し、プログラム
・コードを含むデータを受信することができる。インタ
ーネットの例では、サーバ226は、インターネット2
25、ISP224、ローカル・ネットワーク222、
通信インタフェース220により、アプリケーション・
プログラム用の要求されたコードを伝送するだろう。本
発明によれば、このようなダウンロードされたアプリケ
ーションの1つは、本明細書に記載するクラス・ファイ
ルを前処理し、パッケージングするための装置である。
【0043】受信したコードは、受信したときにCPU
213によって実行するか、または後で実行するために
大容量記憶装置212または他の不揮発性記憶装置に格
納するか、あるいはその両方を行うことができる。この
ようにして、コンピュータ200は、搬送波の形でアプ
リケーション・コードを獲得することができる。
【0044】前述のコンピュータ・システムは、例示の
みを目的とするものである。本発明の実施形態は、どの
ようなタイプのコンピュータ・システムあるいはプログ
ラミング環境または処理環境でも実現することができ
る。
【0045】クラス・ファイル構造 クラス・ファイル・フォーマットの諸形態を参照する
と、本発明の実施形態をより十分に理解することができ
る。JavaTMクラス・ファイル・フォーマットの説明
を以下に示す。JavaTMクラス・ファイル・フォーマ
ットの追加説明は、1996年9月にAddison−
Wesleyから発行されたTim Lindholm
およびFrank YellinのThe JavaTM
Virtual Machine Specific
ation((C)Sun Microsystem
s,Inc.)の第4章「The class Fil
e Format」および第5章「Constant
Pool Resolution」に記載されている。
【0046】JavaTMクラス・ファイルは、連続する
8ビット・バイトから構築した16ビット構造、32ビ
ット構造、64ビット構造の8ビット・バイトのストリ
ームからなる。そのクラス・ファイルには、単一のクラ
スまたはインタフェース・ファイル構造が含まれてい
る。このクラス・ファイル構造は以下の通りである。
【0047】 ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_po ol_count−1]; u2 access_flags; u2 this_class; u2 super_class; u2 interfaces_count; u2 interfaces[interfaces_count]; u2 fields_count; field_info fields[fields_count]; u2 methods_count; method_info methods[methods_count ]; u2 attributes_count; attribute_info attributes[attribu tes_count]; }
【0048】ただし、u2およびu4は、符号なしの2
バイト量と4バイト量を意味する。この構造については
図3に図示する。
【0049】図3のクラス・ファイル300は、4バイ
トのマジック値301と、2バイトのマイナー・バージ
ョン番号302と、2バイトのメジャー・バージョン番
号303と、2バイトの定数プール・カウント値304
と、可変長要素からなる定数プール・アレイに対応する
定数プール・テーブル305と、2バイトのアクセス・
フラグ値306と、2バイトの「このクラス」識別子3
07と、2バイトのスーパ・クラス識別子308と、2
バイトのインタフェース・カウント値309と、2バイ
トの要素からなるインタフェース・アレイに対応するイ
ンタフェース・テーブル310と、2バイトのフィール
ド・カウント値311と、可変長要素からなるフィール
ド・アレイに対応するフィールド・テーブル312と、
2バイトのメソッド・カウント値313と、可変長要素
からなるメソッド・アレイに対応するメソッド・テーブ
ル314と、2バイトの属性カウント値315と、可変
長要素からなる属性アレイに対応する属性テーブル31
6とを含む。上記の構造のそれぞれについて、以下に簡
単に説明する。
【0050】マジック値301はクラス・ファイル・フ
ォーマットを識別する番号を含む。JavaTMクラス・
ファイル・フォーマットの場合、マジック番号は0xC
AFEBABEという値を有する。マイナー・バージョ
ン番号302とメジャー・バージョン番号303は、ク
ラス・ファイルの生成を担当するコンパイラのマイナー
・バージョン番号とメジャー・バージョン番号を指定す
る。
【0051】定数プール・カウント値304は、定数プ
ール・テーブル305内の項目数を識別する。定数プー
ル・テーブル305は、ClassFile構造内で参
照される様々なストリング定数、数値定数、クラス名、
フィールド名、その他の定数を表す可変長データ構造の
テーブルである。定数プール・テーブル内の各項目は以
下の一般構造を有する。
【0052】
【0053】ただし、1バイトの「tag」は特定の定
数タイプを指定する。info[]アレイのフォーマッ
トは定数タイプに基づいて異なる。info[]アレイ
は、整数定数および浮動小数点定数用などの数値、スト
リング定数用のストリング値、定数プール・テーブル内
の異なる定数タイプの他の項目を指すインデックスにす
ることができる。定数プール・テーブル構造および定数
タイプの詳細については、The JavaTM Vir
tual Machine Specificatio
n(上記)の第4章に記載されている。
【0054】アクセス・フラグ値306は、クラスおよ
びインタフェース宣言で使用する変更子からなるマスク
である。「このクラス」値307は、このクラス・ファ
イルが定義するクラスまたはインタフェースを表す定数
タイプ構造を指す定数プール・テーブル305内のイン
デックスである。スーパ・クラス値308は、そのクラ
スがjava.lang.Objectのサブクラスで
あることを示す0であるか、またはこのクラス・ファイ
ルが定義するクラスのスーパクラスを表す定数タイプ構
造を指す定数プール・テーブル内のインデックスであ
る。
【0055】インタフェース・カウント値309は、こ
のクラスまたはインタフェースの直接スーパインタフェ
ースの数を識別し、したがって、インタフェース・テー
ブル310内の要素の数を識別する。インタフェース・
テーブル310は、定数プール・テーブル305内の2
バイトのインデックスを含む。定数プール・テーブル3
05内の各対応項目は、このクラス・ファイルが定義す
るクラスまたはインタフェースの直接スーパインタフェ
ースであるインタフェースを表す定数タイプ構造であ
る。
【0056】フィールド・カウント値311は、フィー
ルド・テーブル312内の構造の数を示す。フィールド
・テーブル312内の各項目は、クラス・タイプ内のフ
ィールドの記述を示す可変長構造である。フィールド・
テーブル312は、このクラス・ファイルが定義するク
ラスまたはインタフェースが宣言するフィールドのみを
含む。
【0057】メソッド・カウント値313は、メソッド
・テーブル314内の構造の数を示す。メソッド・テー
ブル314の各要素は、クラスまたはインタフェース内
のメソッドの記述およびそのメソッド用の仮想計算機コ
ードを示す可変長構造である。
【0058】属性カウント値315は、属性テーブル3
16内の属性の数を示す。属性テーブル316内の各要
素は可変長構造である。属性構造については、The
JavaTM Virtual Machine Spe
cification(上記)の第4章の4.7項に記
載されている。
【0059】本発明の実施形態により、バック・チャネ
ルの有無に関わらずマルチキャスト/同報通信シナリオ
でのJavaTMバイト・コードの適時配信が可能にな
る。同じメカニズムは、(シリアル化)オブジェクトの
配信にも使用することができる。マルチキャストによ
り、特別にアドレス指定したデータ・ストリームを多く
のユーザに伝送することができる。マルチキャストの場
合、データ・ストリームは各ユーザに個別に伝送する必
要がない。むしろ、ユーザは、たとえば、特別にアドレ
ス指定したデータ・ストリームのアドレスを指定するこ
とにより、マルチキャスト・サービスに加入することが
できる。同報通信により、マルチキャストの加入プロセ
スなしにユーザに伝送することができる。
【0060】本発明の実施形態は、ユーザが情報を要求
する必要なしに情報がユーザに伝送される「プッシュ」
メディアでの使用に適している。「プッシュ」メディア
は、ユーザがメディアのソースに返答できるようにする
ためのバック・チャネルが一切設けられていない環境で
も伝送することができる。また、本発明の実施形態は、
ユーザがメディアのソースから情報を要求する「プル」
メディアでの使用にも適している。
【0061】本発明の実施形態は、JavaTMバイト・
コード(クラス・ファイル内の)を「時間意識の強いも
の」にする働きをする。バイト・コードの適時配信を保
証するため、コンテンツとともに適切なデッドラインが
タイム・スタンプとしてクライアントに伝達される。こ
れらのタイム・スタンプは、このような配信メカニズム
を促進するようにヘッダで使用する。ヘッダはバイト・
コードに付加され、バイト・コード・ストリームの適時
配信を可能にする。
【0062】バイト・コードの適時配信で扱う伝送態様
の1つは、パケット喪失である。従来の技法では、Ja
vaTMバイト・コード・ストリーミングの場合にパケッ
ト喪失から回復する方法を一切示していない。考えられ
る手法の1つは、バック・チャネルがない場合に一定の
間隔でクラス全体を再伝送することを含む。これは、メ
ディアの場合にランダム・アクセス・ポイントを促進す
るのに役立つだろう。しかし、これは、クライアントの
数が多すぎる場合またはクラス(またはオブジェクト)
が非常に大きく、再伝送が法外なものになる場合には不
可能になる。
【0063】バック・チャネルが存在する場合、パケッ
ト喪失をサーバに通知することができ、喪失パケットを
再伝送することができる。信頼できるマルチキャスト方
式を使用すると、サーバ以外の場所からデータを再伝送
することもできる。
【0064】部分パケット喪失から回復するために使用
可能な、固有の冗長性を備えたエラー回復方式がいくつ
か存在する。たとえば、順方向エラー訂正のような方式
を使用することができる。また、パケット喪失問題は、
何らかの信頼できるマルチキャスト方式を使用すること
により、部分的に解決することができる。本発明の実施
形態は、パケット喪失を克服するために任意のエラー回
復または任意の信頼できるマルチキャスト・アルゴリズ
ムの使用を促進する。
【0065】対処するもう1つの状況はセキュリティで
ある。クライアントの安全を保証するため、バイト・コ
ードは本物である必要がある。バイト・コードが本物で
あることを保証するために使用可能なセキュリティ方式
はいくつか存在する。本発明の実施形態は、Javaセ
キュリティAPIのセキュリティ・モデル内で任意のセ
キュリティ方式を使用することができる。
【0066】扱うさらに他の状況は圧縮の状況である。
圧縮は、所与の量の情報を伝送するために必要な時間を
短縮することにより、配信の効率を高める。効率のため
にクラス・ファイルを圧縮するのに、LZW、LZSな
どのいくつかの圧縮方式が使用可能である。
【0067】図5は、本発明の一実施形態により適時に
クラス・ファイルを配信するための技法を示す概略図で
ある。クラス・ファイル(またはオブジェクト)501
が用意される。クラス・ファイル(またはオブジェク
ト)501は、1つまたは複数の適当な任意選択の圧縮
方式、エラー回復方式、セキュリティ方式により処理さ
れる場合もあれば、処理されない場合もある。ヘッダ5
02がクラス・ファイル(またはオブジェクト)501
に追加される。ヘッダ502を備えたクラス・ファイル
(またはオブジェクト)501は、他へ配信するために
トランスポート・メカニズム508に渡される。トラン
スポート・メカニズム508はパケッタイザ503を使
用して、ヘッダ502を備えたクラス・ファイル(また
はオブジェクト)501を一連のパケット504、50
5、506、507として移送する。トランスポート・
メカニズム508は、ヘッダ502を備えた所与のクラ
ス・ファイル(またはオブジェクト)501を移送する
ためのパケットの適切な数を決定する。
【0068】図4は、本発明の一実施形態による適時配
信を保証するクラス・ファイルまたは(シリアル化)オ
ブジェクト用のヘッダを示す図である。このヘッダは、
バイト・コード・ヘッダとして示され、図5に示すよう
にパケット化される前にクラス・ファイルに付加され
る。パケット化後、「時間意識の強い」トランスポート
・メカニズム(たとえば、RTP、MPEG−2トラン
スポート・ストリームなど)を使用すると、そのデータ
をクライアント側に移送することができる。この方式
は、圧縮方式、セキュリティ方式、エラー回復方式用の
テーブルを定義することにより、特定のメディア・コン
テンツ(たとえば、MPEG−1、MPEG−2など)
およびトランスポート・メカニズム(MPEG−2トラ
ンスポート・ストリーム、RTPなど)用に採用するこ
とができる。
【0069】ヘッダの一実施形態は、ヘッダの長さ、バ
ージョン、クラスまたはオブジェクトを示すフラグ、必
要なクラスの数、「ロード開始」タイム・スタンプ、
「ロード期限(load by)」タイム・スタンプ、
クラスのサイズ、使用中の圧縮のタイプ、使用中のセキ
ュリティ方式のタイプ、使用中のエラー訂正のタイプ、
その他のタイプ情報、クラス識別子(ID)の長さ、ク
ラス識別子(ID)、必要なクラスのそれぞれのクラス
IDの長さ、必要なクラスのそれぞれのクラスIDを表
す情報を含む。
【0070】ヘッダの長さ情報401の一実施形態は、
適時配信を可能にするためにバイト・コード・ファイル
に追加されたヘッダのサイズをバイト単位で示す16ビ
ットを含む。バージョン情報402の一実施形態は、バ
イト・コード・ファイルの適時配信を可能にするために
使用する方式のバージョンを示す2ビットを含む。クラ
ス/オブジェクト・フラグ403の一実施形態は、ヘッ
ダが付加されるバイト・コード・ファイルがクラスであ
るかオブジェクトであるかを示す1ビットを含む。たと
えば、1はクラスを表し、0はオブジェクトを表す。
【0071】必要なクラスの数情報404の一実施形態
は、このクラスをロードする前に(または、オブジェク
トの場合はインスタンス化の前に)必要なクラスの数を
示す13ビットを含む。「ロード開始」タイム・スタン
プ405の一実施形態は、クラスが受信され、完全にア
センブルし直されたときにその後でクラスのロードを開
始できる時間を示す64ビットを含む。タイム・スタン
プの長さは、NTPタイム・スタンプに対処するために
64ビットに設定されている。64ビットの長さを満た
すために、ビット数の少ないタイム・スタンプは余分な
ビットで埋め込まれる。各方式は、端数のタイム・スタ
ンプを表すために小数点の位置を定義することができ
る。クロック・ティックを使用する場合(MPEG−
2)、64ビットをすべて使用することができる。
【0072】タイム・スタンプは、絶対時間または相対
時間の表現を含むことができる。たとえば、タイム・ス
タンプは、実際の時刻またはその他の絶対時間量を表す
ことができ、あるいはタイム・スタンプは、セッション
の開始以降の経過時間、事象の発生、またはその他の相
対時間量を表すことができる。
【0073】「ロード期限」タイム・スタンプ406の
一実施形態は、クラスを絶対的にロードしなければなら
ない時間を示す64ビットを含む。クラスのサイズ情報
407の一実施形態は、伝送中のデータのサイズをバイ
ト単位で示す16ビットを含む。
【0074】本発明の一実施形態はタイプ・フィールド
を含む。圧縮タイプ・フィールド408は、使用する圧
縮のタイプを指定するための4ビットを含む(オブジェ
クトの場合またはいかなる圧縮も使用しない場合は00
00)。セキュリティ・タイプ409フィールドは、使
用するセキュリティ方式を指定するための4ビットを含
む(いかなる方式も使用しない場合は0000)。エラ
ー訂正タイプ・フィールド410は、使用するエラー訂
正方式を指定するための4ビットを含む(いかなる方式
も使用しない場合は0000)。タイプ・フィールド4
11は、今後の使用のために予約されている4ビットを
含む。
【0075】クラスID長情報412の一実施形態は、
クラスID情報413の長さをバイト単位で示す32ビ
ットを含む。クラスID情報413は、クラスを識別す
る可変長ストリングを含む(各セッションごとに固
有)。クラスID長情報412とクラスID情報413
との組合せの長さが32ビットの倍数になるように、ス
トリングが埋め込まれる。
【0076】ヘッダの一実施形態は、必要なクラスのそ
れぞれのクラスIDと、クラスID長とを含む。クラス
ID1長情報414は、第1の必要なクラス用のクラス
IDの長さを示す16ビットの情報を含む。クラスID
1情報415は、第1の必要なクラスを識別し、クラス
ID1長情報414とクラスID1情報415とを組み
合わせた長さが32ビットの倍数になるように埋め込ま
れた可変長ストリングを含む。
【0077】第1の必要なクラスを超える必要なクラス
のクラスID長情報およびクラスID情報は、クラスI
D1情報415に続き、領域416を占める。クラスI
Dn長情報417は、16ビットを含み、n番目の必要
なクラス用のクラスIDの長さを指定する。クラスID
n情報418は、n番目の必要なクラスを識別し、次の
32ビット境界まで埋め込まれた可変数のビットを含
む。
【0078】本発明の一実施形態では各クラスは個別の
ユニットとしてパッケージングされる。したがって、適
時配信を可能にするために各クラスにヘッダが付加され
る。適時配信は、クラスをロードすべき時間フレームを
設けることによって促進される。「ロード開始」タイム
・スタンプは、クラスをロードできる時間を示すために
各クラスごとに用意される。「ロード期限」タイム・ス
タンプは、各クラスをロードする必要がある時間を示す
ために各クラスごとに用意される。「ロード期限」タイ
ム・スタンプは、そのクラスがアプリケーション側で使
用可能になるものと期待できる保証時間を示す。
【0079】この方式によって配信されるペイロード
は、クラス(圧縮済みまたは未圧縮)またはインスタン
スにすることができる。効率がよく安全で信頼性を与え
るためにヘッダ内には3つのタイプ・フィールドが存在
し、これがデータの属性(クラスまたはオブジェクト)
を指定する。
【0080】利用可能などのような圧縮方式も本発明の
実施形態とともに使用することができる。ヘッダの一部
分(たとえば、4ビット)は、使用する圧縮方式のタイ
プを識別するように指定されている。たとえば、ビット
・パターン0000は圧縮なしであることを示すために
使用し、ビット・パターン0001〜1111は特定の
圧縮技法を示すために使用する。
【0081】利用可能などのようなセキュリティ方式も
本発明の実施形態とともに使用することができる。ヘッ
ダの一部分(たとえば、4ビット)は、使用するセキュ
リティ方式のタイプを識別するように指定されている。
たとえば、ビット・パターン0000はセキュリティ方
式を使用しないことを示すために使用し、ビット・パタ
ーン0001〜1111は特定のセキュリティ方式を示
すために使用する。
【0082】利用可能などのようなエラー回復方式も本
発明の実施形態とともに使用することができる。ヘッダ
の一部分(たとえば、4ビット)は、使用するエラー回
復方式のタイプを識別するように指定されている。たと
えば、ビット・パターン0000はエラー回復方式を使
用しないことを示すために使用し、ビット・パターン0
001〜1111は特定のエラー回復方式を示すために
使用する。ヘッダの一部分(たとえば、4ビット)は今
後の使用のために予約されている。
【0083】エラー回復方式の使用による利点の1つ
は、バイト・コードを伝送するためにUDPなどの信頼
できないプロトコルを使用できることである。不完全で
あるかまたはエラーによる影響を受けているバイト・コ
ードは適切に実行されない。UDPなどの信頼できない
プロトコルは、完全かつエラーのない情報配信を保証す
るものではない。しかし、エラー回復方式を追加するこ
とにより、完全性を検証し、バイト・コードを実行する
前にエラーを訂正することができる。したがって、バイ
ト・コードの伝送はもはや信頼できるトランスポート・
メカニズムのみに拘束されない。
【0084】クラスは、セッションに固有のIDによっ
て識別される。このIDを使用すると、それを何度も受
け取ったときにクラスを識別することができる。これ
は、それぞれがインスタンスであるクラスを識別するた
めにオブジェクトが使用することができる。JavaTM
クラス名はIDとして使用する。これらは可変長ストリ
ングであるので、ストリングの長さもヘッダに含まれ
る。クラスIDとその長さ(16ビット)の組合せは次
の32ビット境界まで埋め込まれる。
【0085】本発明の実施形態は、必要なクラスのリス
トも用意している。それぞれの必要なクラスの「ロード
期限」時間は、それを必要とするクラスの「ロード開
始」時間より前である必要がある。クラス/オブジェク
ト・データをロード/インスタンス化する前に必要にな
るクラスの数を指定するために13ビット使用する。必
要なクラスはそれぞれのクラスID(それぞれのクラス
IDの長さとともに)によって指定する。
【0086】図6は、本発明の一実施形態による適時配
信のためにバイト・コードを作成するプロセスを示す流
れ図である。このプロセスはステップ601から始ま
る。ステップ602では、配信すべきバイト・コードを
用意する。ステップ603では、そのバイト・コードに
ついて所望の圧縮方式、エラー回復方式、セキュリティ
方式を実行する。圧縮方式、エラー回復方式、セキュリ
ティ方式のどのような組合せも任意の順序で実行するこ
とができる。たとえば、セキュリティ方式を適用し、次
にエラー回復方式が続き、圧縮を使用しないことが可能
である。したがって、圧縮方式、エラー回復方式、セキ
ュリティ方式、またはそのサブセットのどのような順列
も使用することができる。ステップ604では、バイト
・コードにヘッダを付加する。このヘッダはバイト・コ
ードに関する情報を含む。このようなヘッダの一実施形
態については、上記の図4に関連して説明する。ヘッダ
は、ヘッダ情報がバイト・コードの前に付くようにバイ
ト・コードに付加されているものとして記載されている
が、バイト・コードに対して任意の位置に、たとえば、
バイト・コードの終わり、バイト・コードの部分間に配
置するか、またはバイト・コードによってインタリーブ
することができる。
【0087】ステップ605では、付加したヘッダを備
えたバイト・コードをトランスポート・メカニズムによ
り配信する。どのような適当なトランスポート・メカニ
ズムも使用することができる。たとえば、TCPなど、
単独で配信を保証するが、配信のタイミングは保証しな
いトランスポート・メカニズムを使用することができ
る。あるいは、RTPなど適時性を保証するトランスポ
ート・メカニズムを使用することもできる。もう1つの
代替例として、UDPなど、配信を保証しないトランス
ポート・メカニズムを使用することもできる。ステップ
606では、プロセスが終了する。
【0088】図7および図8は、本発明の一実施形態に
より適時にバイト・コードを受信し、使用するプロセス
を示す流れ図である。このプロセスはステップ701か
ら始まる。ステップ702では、付加したヘッダを備え
たバイト・コードをトランスポート・メカニズムにより
受信する。トランスポート・メカニズムはどのようなト
ランスポート・メカニズムでもよい。ステップ703で
は、ヘッダに含まれる情報を読み取る。ステップ704
では、バイト・コードを実行する前に追加のクラスをロ
ードする必要があるか否かについて判断を行う。この判
定を行うために使用する情報はヘッダから抽出すること
ができる。追加のクラスをロードする必要がある場合、
プロセスはステップ706に継続する。
【0089】ステップ706では、ヘッダに指定した
「ロード開始時間」がすでに経過したか否かについて判
断を行う。まだ経過していない場合、プロセスはステッ
プ706に戻り、「ロード開始時間」に達するまで待
つ。「ロード開始時間」に達した場合、プロセスは参照
B707によりステップ708に継続する。ステップ7
08では、必要なクラスをロードする。ステップ709
では、必要なすべてのクラスがロードされたか否かにつ
いて判断を行う。すべてがロードされたわけではない場
合、プロセスはステップ710に継続する。ステップ7
10では、ヘッダに指定した「ロード期限時間」が経過
したか否かについて判断を行う。「ロード期限時間」が
経過していない場合、プロセスはステップ708に戻
り、そこで必要なクラスのロードを続行する。ステップ
710で「ロード期限時間」がすでに経過した場合、プ
ロセスはステップ712に継続する。ステップ712で
は、ロード遅れエラーを処理する。このロード遅れエラ
ー処理は、「ロード期限時間」デッドラインまでに必要
なクラスを正常にロードできなかったという通知を含む
ことができる。この通知に基づき、(たとえば、新しい
「ロード期限時間」デッドラインを指定することによ
り)ロードを再スケジュールすべきかどうか(または
(バイト・コードを実行せずに)ロード・プロセスを取
り消すべきかどうか)について判断を行うことができ
る。ステップ712から、プロセスはステップ713で
終了する。
【0090】ステップ709で必要なすべてのクラスが
ロードされた場合、プロセスはステップ711に継続す
る。また、ステップ704で追加のクラスを一切ロード
する必要がない場合、プロセスは参照A705によりス
テップ711に継続する。ステップ711では、バイト
・コードを実行する。バイト・コードについてセキュリ
ティ方式、圧縮方式、および/またはエラー回復方式を
実行した場合、バイト・コードの実行は追加のステップ
を含む場合がある。所与の追加ステップを含むプロセス
の一例を図8に示す。ステップ711から、プロセスは
ステップ713で終了する。
【0091】図9は、本発明の一実施形態により配信し
たバイト・コードを実行するために作成し、実行するプ
ロセスを示す流れ図である。このプロセスはステップ8
01から始まる。ステップ802では、セキュリティ方
式を使用したか否かについて判断を行う。セキュリティ
方式を使用した場合、プロセスはステップ803に継続
する。ステップ803では、使用したセキュリティ方式
を識別し、そのセキュリティ方式に応じてバイト・コー
ドを処理する。セキュリティ方式の識別は、ステップ7
03で読み取ったものなど、ヘッダ情報で検出される情
報に基づいて実行することができる。ステップ803か
ら、プロセスはステップ804に継続する。ステップ8
02でいかなるセキュリティ方式も使用しなかったと判
定された場合、プロセスはステップ804に継続する。
【0092】ステップ804では、圧縮方式を使用した
か否かについて判断を行う。圧縮方式を使用した場合、
プロセスはステップ805に継続する。ステップ805
では、使用した圧縮方式を識別し、その圧縮方式に応じ
てバイト・コードを圧縮解除する。圧縮方式の識別は、
ステップ703で読み取ったものなど、ヘッダ情報で検
出される情報に基づいて実行することができる。ステッ
プ805から、プロセスはステップ806に継続する。
ステップ804でいかなる圧縮方式も使用しなかったと
判定された場合、プロセスはステップ806に継続す
る。
【0093】ステップ806では、エラー回復方式を使
用したか否かについて判断を行う。エラー回復方式を使
用した場合、プロセスはステップ807に継続する。ス
テップ807では、使用したエラー回復方式を識別し、
発生している可能性のあるエラーまたは脱落を訂正また
は補正する。圧縮方式の識別は、ステップ703で読み
取ったものなど、ヘッダ情報で検出される情報に基づい
て実行することができる。ステップ806から、プロセ
スはステップ808に継続する。ステップ806でいか
なるエラー回復方式も使用しなかったと判定された場
合、プロセスはステップ808に継続する。
【0094】ステップ808では、バイト・コードを実
行する。本発明の一実施形態ではバイト・コードの実行
を試みる前に必要なすべてのクラスがロードされること
を保証するためのメカニズムを用意しているので、バイ
ト・コードの正常実行が行われる。ステップ809で
は、プロセスが終了する。
【0095】したがって、1つまたは複数の具体的な実
施形態に関連して、バイト・コード・ストリームの適時
配信を可能にするための方法および装置を説明してき
た。本発明は特許請求の範囲およびそれと同等の範囲全
体によって定義される。
【図面の簡単な説明】
【図1】JavaTMネットワーク・アプリケーション環
境の実施形態を示す図である。
【図2】本発明の実施形態用の適当な実行環境を提供で
きるコンピュータ・システムの実施形態のブロック図で
ある。
【図3】クラス・ファイル・フォーマットの実施形態の
ブロック図である。
【図4】本発明の一実施形態による適時配信を保証する
ためのクラス・ファイルまたは(シリアル化)オブジェ
クト用のヘッダを示す図である。
【図5】本発明の一実施形態により適時にクラス・ファ
イルを配信するための技法を示す概略図である。
【図6】本発明の一実施形態による適時配信のためにバ
イト・コードを作成するプロセスを示す流れ図である。
【図7】本発明の一実施形態により適時にバイト・コー
ドを受信し、使用するプロセスを示す流れ図である。
【図8】本発明の一実施形態により適時にバイト・コー
ドを受信し、使用するプロセスを示す流れ図である。
【図9】本発明の一実施形態により配信したバイト・コ
ードを実行用に作成し、実行するプロセスを示す流れ図
である。
【符号の説明】
501 クラス・ファイル 502 ヘッダ 503 パケッタイザ 504 パケット 505 パケット 506 パケット 507 パケット 508 トランスポート・メカニズム
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ヴィシュワナサン・スワミナサン アメリカ合衆国・94587・カリフォルニア 州・183番・ユニオン シティ・デコート ロード・1501 (72)発明者 ジェラルド・フェルナンド アメリカ合衆国・94040・カリフォルニア 州・マウンテン ビュウ・ウェバリィー プレイス・142 (72)発明者 マイケル・スピアー アメリカ合衆国・94040・カリフォルニア 州・マウンテン ビュー・ベイウッド コ ート・416

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 バイト・コードを配信するための方法で
    あって、 前記バイト・コードをヘッダとともに移送するステップ
    と、 ロードすべき追加のクラスを記述した追加のクラス情報
    を前記ヘッダから抽出するステップと、 前記ヘッダから第1のタイム・スタンプを抽出するステ
    ップと、 前記ヘッダから第2のタイム・スタンプを抽出するステ
    ップと、 前記第1のタイム・スタンプによって指定された第1の
    時間の後であって前記第2のタイム・スタンプによって
    指定された第2の時間の前に前記追加のクラスをロード
    するステップとを含む方法。
  2. 【請求項2】 前記ヘッダからセキュリティ・コードを
    抽出するステップと、 前記セキュリティ・コードによって識別されたセキュリ
    ティ方式を実行するステップとをさらに含む請求項1に
    記載の方法。
  3. 【請求項3】 前記ヘッダから圧縮コードを抽出するス
    テップと、 前記圧縮コードによって識別された圧縮方式に応じて前
    記バイト・コードを圧縮解除するステップとをさらに含
    む請求項1に記載の方法。
  4. 【請求項4】 前記ヘッダからエラー訂正コードを抽出
    するステップと、 前記エラー訂正コードによって識別されたエラー訂正方
    式に応じてエラー補正を実行するステップとをさらに含
    む請求項1に記載の方法。
  5. 【請求項5】 前記ヘッダからフラグ値を抽出するステ
    ップと、 前記フラグ値に基づいて、前記バイト・コードがクラス
    ・ファイルを含むかまたはオブジェクト・ファイルを含
    むかを判定するステップとをさらに含む請求項1に記載
    の方法。
  6. 【請求項6】 前記追加のクラス情報を抽出するステッ
    プが、前記追加のクラスの数を表す値を抽出するステッ
    プを含む請求項1に記載の方法。
  7. 【請求項7】 前記追加のクラス情報を抽出するステッ
    プが、 クラス識別子長値を抽出するステップと、 前記クラス識別子長値を使用してクラス識別子を抽出す
    るステップとを含む請求項1に記載の方法。
  8. 【請求項8】 バイト・コードを配信するためにその内
    部で実施されるコンピュータ・プログラム・コードを有
    するコンピュータ可読媒体であって、 前記バイト・コードをヘッダとともに移送し、 ロードすべき追加のクラスを記述した追加のクラス情報
    を前記ヘッダから抽出し、 前記ヘッダから第1のタイム・スタンプを抽出し、 前記ヘッダから第2のタイム・スタンプを抽出し、 前記第1のタイム・スタンプによって指定された第1の
    時間の後であって前記第2のタイム・スタンプによって
    指定された第2の時間の前に前記追加のクラスをロード
    することをコンピュータに指示するように構成されたコ
    ンピュータ・プログラム・コードを含むコンピュータ可
    読媒体を含む、コンピュータ・プログラム製品。
  9. 【請求項9】 前記コンピュータ・プログラム・コード
    が、 前記ヘッダからセキュリティ・コードを抽出し、 前記セキュリティ・コードによって識別されたセキュリ
    ティ方式を実行するよう前記コンピュータに指示するよ
    うにさらに構成されている請求項8に記載のコンピュー
    タ・プログラム製品。
  10. 【請求項10】 前記コンピュータ・プログラム・コー
    ドが、 前記ヘッダから圧縮コードを抽出し、 前記圧縮コードによって識別された圧縮方式に応じて前
    記バイト・コードを圧縮解除するよう前記コンピュータ
    に指示するようにさらに構成されている請求項8に記載
    のコンピュータ・プログラム製品。
  11. 【請求項11】 前記コンピュータ・プログラム・コー
    ドが、 前記ヘッダからエラー訂正コードを抽出し、 前記エラー訂正コードによって識別されたエラー訂正方
    式に応じてエラー補正を実行することを前記コンピュー
    タに指示するようにさらに構成されている請求項8に記
    載のコンピュータ・プログラム製品。
  12. 【請求項12】 前記コンピュータ・プログラム・コー
    ドが、 前記ヘッダからフラグ値を抽出し、 前記フラグ値に基づいて、前記バイト・コードがクラス
    ・ファイルを含むかまたはオブジェクト・ファイルを含
    むかを判定することを前記コンピュータに指示するよう
    にさらに構成されている請求項8に記載のコンピュータ
    ・プログラム製品。
  13. 【請求項13】 前記追加のクラス情報を抽出すること
    が、前記追加のクラスの数を表す値を抽出することを含
    む請求項8に記載のコンピュータ・プログラム製品。
  14. 【請求項14】 前記追加のクラス情報を抽出すること
    が、 クラス識別子長値を抽出すること、および前記クラス識
    別子長値を使用してクラス識別子を抽出することを含む
    請求項8に記載のコンピュータ・プログラム製品。
  15. 【請求項15】 バイト・コード・ファイルにヘッダを
    付加するように構成されたサーバを含み、 前記ヘッダが、第1のタイム・スタンプと、第2のタイ
    ム・スタンプと、ロードすべき追加のクラスを記述した
    クラス情報とを含み、 前記ヘッダとともに前記バイト・コード・ファイルを受
    信するクライアントであって、前記第1のタイム・スタ
    ンプによって指定された第1の時間の後であって前記第
    2のタイム・スタンプによって指定された第2の時間の
    前に前記追加のクラスをロードするように構成されたク
    ライアントをさらに含む装置。
  16. 【請求項16】 前記ヘッダが、セキュリティ方式を識
    別するセキュリティ・コードをさらに含む請求項15に
    記載の装置。
  17. 【請求項17】 前記ヘッダが圧縮コードをさらに含
    み、 前記クライアントが、前記圧縮コードに基づいて前記バ
    イト・コード・ファイルを圧縮解除するようにさらに構
    成されている請求項15に記載の装置。
  18. 【請求項18】 前記ヘッダがエラー訂正コードをさら
    に含み、 前記クライアントが、前記エラー訂正コードに基づいて
    前記バイト・コード・ファイルのエラー訂正を実行する
    ようにさらに構成されている請求項15に記載の装置。
  19. 【請求項19】 前記ヘッダが、前記バイト・コード・
    ファイルがクラス・ファイルを含むかまたはオブジェク
    ト・ファイルを含むかを識別するフラグ値をさらに含む
    請求項15に記載の装置。
  20. 【請求項20】 前記ヘッダが、前記追加のクラスの数
    を識別する値をさらに含む請求項15に記載の装置。
  21. 【請求項21】 前記ヘッダが、 クラス識別子長値と、 前記追加のクラスの1つに対応するクラス識別子とをさ
    らに含み、前記クライアントが前記クラス識別子長値に
    基づいて前記クラス識別子を抽出するように構成されて
    いる請求項15に記載の装置。
  22. 【請求項22】 前記サーバと前記クライアントとの間
    のトランスポート・メカニズムをさらに含み、前記トラ
    ンスポート・メカニズムが前記ヘッダとともに前記バイ
    ト・コード・ファイルを含む1つまたは複数のパケット
    を伝送するように構成されている請求項15に記載の装
    置。
  23. 【請求項23】 バイト・コードを配信するための装置
    であって、 前記バイト・コードをヘッダとともに移送する手段と、 ロードすべき追加のクラスを記述した追加のクラス情報
    を前記ヘッダから抽出する手段と、 前記ヘッダから第1のタイム・スタンプを抽出する手段
    と、 前記ヘッダから第2のタイム・スタンプを抽出する手段
    と、 前記第1のタイム・スタンプによって指定された第1の
    時間の後であって前記第2のタイム・スタンプによって
    指定された第2の時間の前に前記追加のクラスをロード
    する手段とを含む装置。
JP17651799A 1998-06-26 1999-06-23 バイト・コードおよびシリアル化オブジェクト・ストリームの適時配信のための方法および装置 Expired - Lifetime JP4397460B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/105963 1998-06-26
US09/105,963 US6092120A (en) 1998-06-26 1998-06-26 Method and apparatus for timely delivery of a byte code and serialized objects stream

Publications (2)

Publication Number Publication Date
JP2000105704A true JP2000105704A (ja) 2000-04-11
JP4397460B2 JP4397460B2 (ja) 2010-01-13

Family

ID=22308743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17651799A Expired - Lifetime JP4397460B2 (ja) 1998-06-26 1999-06-23 バイト・コードおよびシリアル化オブジェクト・ストリームの適時配信のための方法および装置

Country Status (4)

Country Link
US (3) US6092120A (ja)
EP (3) EP1233335A3 (ja)
JP (1) JP4397460B2 (ja)
KR (2) KR100438143B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004608A (ja) * 2005-06-24 2007-01-11 Fuji Xerox Co Ltd 連携処理システム及び装置及び方法
US8205193B2 (en) 2001-06-11 2012-06-19 Hewlett-Packard Development Company, L.P. Runtime updating of virtual machine class files

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
US6366898B2 (en) * 1998-09-21 2002-04-02 Sun, Microsystems, Inc. Method and apparatus for managing classfiles on devices without a file system
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
US6460086B1 (en) 1998-12-01 2002-10-01 Sun Microsystems, Inc. Method and apparatus for delivery of a bytecode embedded within a transport stream
US6305012B1 (en) * 1998-12-03 2001-10-16 International Business Machines Corporation Method and apparatus for dynamic selection of instructions for compiling using tags
US6336213B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Method and apparatus for dynamic selection of which bytecodes should be just in time compiled
US6438751B1 (en) * 1999-02-18 2002-08-20 Joseph F. Voyticky Integrated television and internet information system
FR2790844B1 (fr) * 1999-03-09 2001-05-25 Gemplus Card Int Procede et dispositif de surveillance du deroulement d'un programme, dispositif programme permettant la surveillance de son programme
US8464302B1 (en) 1999-08-03 2013-06-11 Videoshare, Llc Method and system for sharing video with advertisements over a network
GB9921720D0 (en) * 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
JP3730835B2 (ja) * 2000-03-03 2006-01-05 株式会社エヌ・ティ・ティ・ドコモ パケット伝送方法、中継装置およびデータ端末
WO2001067772A2 (en) 2000-03-09 2001-09-13 Videoshare, Inc. Sharing a streaming video
GB2363866B (en) * 2000-05-31 2002-11-06 Intamission Ltd Data processing apparatus, method and system
DE60109376T2 (de) * 2000-08-01 2006-01-19 Command Audio Corp., Redwood City Verfahren und Signal zur Übertragung eines Rundfunkprogramms an einen drahtlosen Empfänger
US7386238B2 (en) * 2000-08-15 2008-06-10 Lockheed Martin Corporation Method and system for infrared data communications
WO2002015438A1 (en) * 2000-08-15 2002-02-21 Lockheed Martin Corporation Infrared data communication system
US6996813B1 (en) * 2000-10-31 2006-02-07 Sun Microsystems, Inc. Frameworks for loading and execution of object-based programs
US7140016B2 (en) * 2000-11-29 2006-11-21 Texas Instruments Incorporated Media accelerator quality of service
EP1227666A1 (en) * 2001-01-18 2002-07-31 Sony Service Centre (Europe) N.V. Method and device for downloading application data
FI110973B (fi) * 2001-05-15 2003-04-30 Digita Oy Menetelmä sovellusten lähettämiseen digitaalisessa yleislähetysverkossa
US6799147B1 (en) * 2001-05-31 2004-09-28 Sprint Communications Company L.P. Enterprise integrated testing and performance monitoring software
US20030115363A1 (en) * 2001-12-06 2003-06-19 Yared Peter A. Method and apparatus for packaging a trimmed object graph
FR2836317A1 (fr) * 2002-02-19 2003-08-22 Michel Francis Monduc Procede de transmission de messages audio ou video sur le reseau internet
US7386723B2 (en) * 2002-11-22 2008-06-10 Intel Corporation Method, apparatus and system for compressing IPSec-protected IP packets
US7073171B2 (en) * 2003-02-28 2006-07-04 Bea Systems, Inc. EJB implementation class loading with removed dependencies with ability to replace EJB implementation class without full redeployment
US20050063575A1 (en) * 2003-09-22 2005-03-24 Ge Medical Systems Global Technology, Llc System and method for enabling a software developer to introduce informational attributes for selective inclusion within image headers for medical imaging apparatus applications
GB0424756D0 (en) * 2004-11-10 2004-12-08 Ibm Executing a native software routine in a virtual machine
US7581216B2 (en) * 2005-01-21 2009-08-25 International Business Machines Corporation Preserving platform independence with native accelerators for performance critical program objects
CN101390051B (zh) * 2005-12-30 2016-05-25 美国医软科技公司 通过数据封装在医学成像的独立系统/应用程序之间共享进程
WO2007145366A1 (en) * 2006-06-15 2007-12-21 Kabushiki Kaisha Toshiba Portable electronic device and control method thereof
US20080111977A1 (en) * 2006-11-14 2008-05-15 Asml Holding N.V. Compensation techniques for fluid and magnetic bearings
US8533611B2 (en) * 2009-08-10 2013-09-10 Voxer Ip Llc Browser enabled communication device for conducting conversations in either a real-time mode, a time-shifted mode, and with the ability to seamlessly shift the conversation between the two modes
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US20110019662A1 (en) 2007-06-28 2011-01-27 Rebelvox Llc Method for downloading and using a communication application through a web browser
US20100198923A1 (en) * 2009-01-30 2010-08-05 Rebelvox Llc Methods for using the addressing, protocols and the infrastructure of email to support near real-time communication
US11095583B2 (en) 2007-06-28 2021-08-17 Voxer Ip Llc Real-time messaging method and apparatus
US8825772B2 (en) 2007-06-28 2014-09-02 Voxer Ip Llc System and method for operating a server for real-time communication of time-based media
US9178916B2 (en) 2007-06-28 2015-11-03 Voxer Ip Llc Real-time messaging method and apparatus
US8645477B2 (en) * 2009-01-30 2014-02-04 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US8688789B2 (en) * 2009-01-30 2014-04-01 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US20090277226A1 (en) * 2007-10-16 2009-11-12 Santangelo Salvatore R Modular melter
US8855276B2 (en) * 2007-10-19 2014-10-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8380874B2 (en) 2007-10-19 2013-02-19 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7751362B2 (en) 2007-10-19 2010-07-06 Rebelvox Llc Graceful degradation for voice communication services over wired and wireless networks
US8145780B2 (en) 2007-10-19 2012-03-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8699678B2 (en) 2007-10-19 2014-04-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8682336B2 (en) 2007-10-19 2014-03-25 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8706907B2 (en) 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8699383B2 (en) 2007-10-19 2014-04-15 Voxer Ip Llc Method and apparatus for real-time synchronization of voice communications
US8782274B2 (en) * 2007-10-19 2014-07-15 Voxer Ip Llc Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network
US8559319B2 (en) * 2007-10-19 2013-10-15 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US8250181B2 (en) * 2007-10-19 2012-08-21 Voxer Ip Llc Method and apparatus for near real-time synchronization of voice communications
US8001261B2 (en) * 2007-10-19 2011-08-16 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8111713B2 (en) * 2007-10-19 2012-02-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8090867B2 (en) 2007-10-19 2012-01-03 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8099512B2 (en) * 2007-10-19 2012-01-17 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US7751361B2 (en) 2007-10-19 2010-07-06 Rebelvox Llc Graceful degradation for voice communication services over wired and wireless networks
US8321581B2 (en) 2007-10-19 2012-11-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8391312B2 (en) 2007-10-19 2013-03-05 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US20090103529A1 (en) * 2007-10-19 2009-04-23 Rebelvox, Llc Telecommunication and multimedia management method and apparatus
US8542804B2 (en) 2008-02-08 2013-09-24 Voxer Ip Llc Voice and text mail application for communication devices
US8321582B2 (en) 2008-02-08 2012-11-27 Voxer Ip Llc Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode
US9054912B2 (en) 2008-02-08 2015-06-09 Voxer Ip Llc Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode
US8401582B2 (en) * 2008-04-11 2013-03-19 Voxer Ip Llc Time-shifting for push to talk voice communication systems
US8325662B2 (en) * 2008-09-17 2012-12-04 Voxer Ip Llc Apparatus and method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the conversation when connectivity improves
US8270950B2 (en) * 2008-12-05 2012-09-18 Voxer Ip Llc Mobile communication device, method, and system for reducing exposure to radio frequency energy during transmissions by transmitting media in/out while the mobile communication device is safe distance away from user
US8849927B2 (en) 2009-01-30 2014-09-30 Voxer Ip Llc Method for implementing real-time voice messaging on a server node
US9043684B2 (en) * 2012-03-22 2015-05-26 Lsi Corporation Systems and methods for variable redundancy data protection
US10635307B2 (en) * 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
US10884945B2 (en) * 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
KR102599885B1 (ko) 2015-10-15 2023-11-08 삼성전자주식회사 냉장고
CN111082951B (zh) * 2019-12-30 2022-04-22 中国联合网络通信集团有限公司 故障诊断方法、装置、设备及存储介质
US12086119B2 (en) * 2022-03-04 2024-09-10 The Boeing Company Discovering contexts and structured data structures from hazy data

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989133A (en) * 1984-11-30 1991-01-29 Inmos Limited System for executing, scheduling, and selectively linking time dependent processes based upon scheduling time thereof
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US6018771A (en) * 1992-11-25 2000-01-25 Digital Equipment Corporation Dynamic assignment of multicast network addresses
JP4279905B2 (ja) 1994-02-18 2009-06-17 ソニー株式会社 放送システムおよび受信端末
JP2950432B2 (ja) * 1994-03-16 1999-09-20 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 複数データ・ストリームおよび実時間タスクの同期およびスケジューリングの方法および装置
US5689560A (en) * 1994-04-25 1997-11-18 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction
FR2723653B1 (fr) * 1994-08-11 1996-09-13 Cegelec Procede pour ordonnancer des taches successives qui ne subissent que des contraintes du type delais
JP3575100B2 (ja) * 1994-11-14 2004-10-06 ソニー株式会社 データ送信/受信装置及び方法並びにデータ記録/再生装置及び方法
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
JPH096695A (ja) 1995-06-26 1997-01-10 Hitachi Ltd 情報処理システムの通信方法およびプログラム間通信方法
US6282578B1 (en) * 1995-06-26 2001-08-28 Hitachi, Ltd. Execution management method of program on reception side of message in distributed processing system
JPH0934710A (ja) * 1995-07-18 1997-02-07 Fuji Xerox Co Ltd オブジェクト指向プログラミング方法
EP0847199B1 (en) * 1995-09-29 1999-04-28 Matsushita Electric Industrial Co., Ltd. Method, disc and device for encoding seamless-connection of telecine-converted video data
TW335480B (en) * 1995-09-29 1998-07-01 Matsushita Electric Ind Co Ltd Method and apparatus for encoding a bistream for multi-angle connection
TW385431B (en) * 1995-09-29 2000-03-21 Matsushita Electric Ind Co Ltd A method and an apparatus for encoding a bitstream with plural possible searching reproduction paths information useful in multimedia optical disk
JPH09191453A (ja) 1995-11-07 1997-07-22 Sony Corp データ送受信、データ記録再生のための装置及びその方法並びに記録媒体
KR100501017B1 (ko) * 1995-11-24 2008-11-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 복수의데이터아이템들을전송,수신,처리하는방법,수신기및전송기,및복수의데이터아이템들을포함하는데이터신호
GB9600823D0 (en) * 1996-01-16 1996-03-20 British Telecomm Distributed processing
JP3684262B2 (ja) * 1996-01-17 2005-08-17 富士通株式会社 ネットワークシステム及び集線装置
US6047027A (en) * 1996-02-07 2000-04-04 Matsushita Electric Industrial Co., Ltd. Packetized data stream decoder using timing information extraction and insertion
US6134603A (en) * 1998-03-20 2000-10-17 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
JPH09311781A (ja) * 1996-05-24 1997-12-02 Toshiba Corp プログラム開発支援方法およびシステム
US5907372A (en) * 1996-06-28 1999-05-25 Hitachi, Ltd. Decoding/displaying device for decoding/displaying coded picture data generated by high efficiency coding for interlace scanning picture format
US6260078B1 (en) * 1996-07-03 2001-07-10 Sun Microsystems, Inc. Using a distributed object system to find and download java-based applications
EP1309190B1 (en) 1996-09-11 2004-11-24 Matsushita Electric Industrial Co., Ltd. Apparatus for controlling the display of data
JP3431465B2 (ja) 1996-09-11 2003-07-28 松下電器産業株式会社 データの提示を制御するデータ提示制御装置、データの提示を制御するために用いる情報を送信するデータ送信装置
KR100487012B1 (ko) 1996-09-11 2005-06-16 마츠시타 덴끼 산교 가부시키가이샤 프로그램의일부만수신한상태에서도당해프로그램을실행개시할수있는프로그램수신실행장치및그를위한프로그램송신장치
US6173317B1 (en) * 1997-03-14 2001-01-09 Microsoft Corporation Streaming and displaying a video stream with synchronized annotations over a computer network
US6269475B1 (en) * 1997-06-02 2001-07-31 Webgain, Inc. Interface for object oriented programming language
US6292827B1 (en) * 1997-06-20 2001-09-18 Shore Technologies (1999) Inc. Information transfer systems and method with dynamic distribution of data, control and management of information
US6208665B1 (en) * 1997-08-25 2001-03-27 Intel Corporation Data synchronization unit for a headend
US6031584A (en) * 1997-09-26 2000-02-29 Intel Corporation Method for reducing digital video frame frequency while maintaining temporal smoothness
US6502137B1 (en) * 1997-10-09 2002-12-31 International Business Machines Corporation System and method for transferring information over a computer network
US6181713B1 (en) * 1997-10-27 2001-01-30 Sun Microsystems, Inc. Selectable depacketizer architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205193B2 (en) 2001-06-11 2012-06-19 Hewlett-Packard Development Company, L.P. Runtime updating of virtual machine class files
JP2007004608A (ja) * 2005-06-24 2007-01-11 Fuji Xerox Co Ltd 連携処理システム及び装置及び方法

Also Published As

Publication number Publication date
US8312167B2 (en) 2012-11-13
EP0967547A3 (en) 2003-01-15
JP4397460B2 (ja) 2010-01-13
US6092120A (en) 2000-07-18
EP1233335A3 (en) 2003-01-15
EP0967547A2 (en) 1999-12-29
EP1233334A2 (en) 2002-08-21
US20120266160A1 (en) 2012-10-18
EP1233334A3 (en) 2003-01-15
EP1233335A2 (en) 2002-08-21
KR20020022044A (ko) 2002-03-23
KR20000006395A (ko) 2000-01-25
KR100438143B1 (ko) 2004-07-01
US7185102B1 (en) 2007-02-27

Similar Documents

Publication Publication Date Title
JP4397460B2 (ja) バイト・コードおよびシリアル化オブジェクト・ストリームの適時配信のための方法および装置
JP4444510B2 (ja) トランスポート・ストリームに埋め込まれたバイトコードの配信のための方法およびその装置
US6181713B1 (en) Selectable depacketizer architecture
US6480880B2 (en) Method and apparatus for automatically optimizing execution of a computer program
US11500946B2 (en) Apparatus for providing browsing capability between remote/virtual windows and from remote/virtual windows to conventional hypertext documents
US7269833B2 (en) Scriptable plug-in application programming interface
US6347342B1 (en) Method and apparatus for dynamically brokering object messages among object models
EP0913769B1 (en) Method and apparatus for pre-processing and packaging class files
US7644415B2 (en) Application programming interface to the simple object access protocol
US6457066B1 (en) Simple object access protocol
US20030126311A1 (en) Application programming interface for connecting a platform independent plug-in to a web browser
US20040028049A1 (en) XML encoding scheme
EP1310868A2 (en) Method and apparatus for a platform independent plug-in
US20060259949A1 (en) Policy based composite file system and method
WO2000079365A2 (en) Cross-platform framework-independent synchronization abstraction layer
STANDARD Declarative Data Essence—Content Level

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050810

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090624

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091021

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4397460

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term