JPH0991143A - データ処理方法および装置 - Google Patents

データ処理方法および装置

Info

Publication number
JPH0991143A
JPH0991143A JP8067881A JP6788196A JPH0991143A JP H0991143 A JPH0991143 A JP H0991143A JP 8067881 A JP8067881 A JP 8067881A JP 6788196 A JP6788196 A JP 6788196A JP H0991143 A JPH0991143 A JP H0991143A
Authority
JP
Japan
Prior art keywords
application program
execution environment
client
data processing
server
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
JP8067881A
Other languages
English (en)
Other versions
JP4251669B2 (ja
Inventor
Yasuhiko Yokote
靖彦 横手
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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP06788196A priority Critical patent/JP4251669B2/ja
Priority to TW85108517A priority patent/TW410312B/zh
Publication of JPH0991143A publication Critical patent/JPH0991143A/ja
Application granted granted Critical
Publication of JP4251669B2 publication Critical patent/JP4251669B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 クライアントの構成を簡略化し、低コスト化
を可能にする。 【解決手段】 サーバ1とクライアント2−1,2−2
をネットワーク3を介して接続する。サーバ1には、ク
ライアント2−1,2−2が有する実行環境22−1,
22−2に対応する実行環境12−1,12−2を予め
用意するようにする。クライアント2−1,2−2のア
プリケーションプログラム21−1,21−2におい
て、所定のオブジェクト24−1,24−2が必要にな
ったとき、サーバ1のアプリケーションプログラム11
−1,11−2のオブジェクト14−1,14−2をダ
ウンロードする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ処理方法およ
び装置に関し、特に構成を簡略化し、低コスト化するこ
とができるようにした、データ処理方法および装置に関
する。
【0002】
【従来の技術】最近、パーソナルコンピュータが普及し
てきた。このパーソナルコンピュータでネットワークを
介して所定のサーバにアクセスし、所定の情報を得るこ
とができる。
【0003】このようなパーソナルコンピュータにおい
て各種の処理を行うには、アプリケーションプログラム
が必要となる。そこで、各ユーザは、そのパーソナルコ
ンピュータのOSに合ったアプリケーションプログラム
を購入し、インストールして用いるようにしている。
【0004】
【発明が解決しようとする課題】このように、OSが異
なると、アプリケーションプログラムも異なるものとな
るため、各ユーザは、自分のOSに合ったアプリケーシ
ョンプログラムを選択して購入する必要がある。また、
アプリケーションプログラムを提供する側(アプリケー
ションプログラムを設計する側)においても、実質的に
同一の処理を行うアプリケーションプログラムを複数
(OSの数だけ)設計し、用意しなければならず、多く
の労力が必要になると同時に、コスト高となる課題があ
った。
【0005】また、同様のことが、同一のOSにおける
各アプリケーションプログラムにおいても発生してい
た。すなわち、1つのアプリケーションプログラムと、
それとは異なる他のアプリケーションプログラムとが、
同一のOS上において動作するものであったとしても、
2つのアプリケーションプログラムはそれぞれ別個に設
計しなければならず、結果的に、1つのアプリケーショ
ンプログラムを提供するのに必要な労力とコストが高く
なる課題があった。
【0006】本発明はこのような状況に鑑みてなされた
ものであり、1つのアプリケーションプログラムを、簡
単かつ低コストで提供できるようにするものである。
【0007】
【課題を解決するための手段】請求項1に記載のデータ
処理方法は、サーバが、クライアントにアプリケーショ
ンプログラムをダウンロードするとき、クライアント
が、ダウンロードするアプリケーションプログラムの実
行環境を有するか否かを検査し、その検査結果に対応し
てアプリケーションプログラムをクライアントにダウン
ロードすることを特徴とする。
【0008】請求項9に記載のデータ処理装置は、クラ
イアントにアプリケーションプログラムをダウンロード
するとき、クライアントが、ダウンロードするアプリケ
ーションプログラムの実行環境を有するか否かを検査す
る検査手段と、検査手段の検査結果に対応してアプリケ
ーションプログラムをクライアントにダウンロードする
ダウンロード手段とを備えることを特徴とする。
【0009】請求項10に記載のデータ処理装置は、サ
ーバからアプリケーションプログラムをダウンロードす
るとき、ダウンロードするアプリケーションプログラム
の実行環境に関する告知を行う告知手段と、告知手段の
告知に対応してサーバからアプリケーションプログラム
をダウンロードするダウンロード手段とを備えることを
特徴とする。
【0010】請求項11に記載のデータ処理装置は、中
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の実行手段と、中間コードを動的に
コンパイルし、バイナリコードを生成するバイナリコー
ド生成手段と、バイナリコードおよびシステムオブジェ
クトを実行する第2の実行手段とを備えることを特徴と
する。
【0011】請求項15に記載のデータ処理方法は、中
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の方法と、中間コードを動的にコン
パイルし、生成されたバイナリコードを実行する第2の
方法とにより、アプリケーションプログラムを実行する
ことを特徴とする。
【0012】請求項1に記載のデータ処理方法において
は、クライアントにアプリケーションプログラムをダウ
ンロードするとき、クライアントが、ダウンロードする
アプリケーションプログラムの実行環境を有するか否か
をクライアントとサーバ間で検査し、その検査結果に対
応してアプリケーションプログラムをクライアントにダ
ウンロードする。
【0013】請求項9に記載のデータ処理装置において
は、検査手段が、クライアントにアプリケーションプロ
グラムをダウンロードするとき、クライアントが、ダウ
ンロードするアプリケーションプログラムの実行環境を
有するか否かを検査し、ダウンロード手段が、検査手段
の検査結果に対応してアプリケーションプログラムをク
ライアントにダウンロードする。
【0014】請求項10に記載のデータ処理装置におい
ては、告知手段が、サーバからアプリケーションプログ
ラムをダウンロードするとき、ダウンロードするアプリ
ケーションプログラムの実行環境に関する告知を行い、
ダウンロード手段が、告知手段の告知に対応してサーバ
からアプリケーションプログラムをダウンロードする。
【0015】請求項11に記載のデータ処理装置におい
ては、第1の実行手段が、中間コードに変換されたプロ
グラムを解釈し、実行し、バイナリコード生成手段が、
中間コードを動的にコンパイルし、バイナリコードを生
成し、第2の実行手段が、バイナリコードを実行する。
例えば、動的コンパイルが困難な場合、中間コードを逐
次解釈し、実行することができる。
【0016】請求項15に記載のデータ処理方法におい
ては、中間コードに変換されたプログラムを解釈し、実
行する第1の方法と、中間コードを動的にコンパイル
し、生成されたバイナリコードを実行する第2の方法と
により、アプリケーションプログラムを実行する。例え
ば、動的コンパイルが困難な場合、中間コードを逐次解
釈し、実行することができる。
【0017】
【発明の実施の形態】本発明のデータ処理方法を適用す
るシステム構成例を図1に示す。システムはサーバ1
(データ処理装置)、クライアント2(データ処理装
置)、ネットワーク3から構成されている。
【0018】すなわち、この実施例においては、サーバ
1は2つのアプリケーションプログラムを有し、一方の
アプリケーションプログラム11−1は、それを実行す
る環境を規定する実行環境12−1と、アプリケーショ
ンプログラム11−1と実行環境12−1との間のイン
タフェースを構成するアプリケーションプログラムイン
タフェース(API)13−1を有している。
【0019】アプリケーションプログラム11−1は、
複数のオブジェクト14−1により構成され、また、実
行環境12−1も、複数のオブジェクト15−1により
構成されている。
【0020】同様に、アプリケーションプログラム11
−2は、その環境を規定する実行環境12−2と、アプ
リケーションプログラム11−2と実行環境12−2と
の間のインタフェースとして機能するAPI13−2を
有している。
【0021】このアプリケーションプログラム11−2
も、複数のオブジェクト14−2により構成され、ま
た、実行環境12−2も複数のオブジェクト15−2に
より構成されている。
【0022】同様に、クライアント2も2つのアプリケ
ーションプログラムを有し、一方のアプリケーションプ
ログラム21−1は、その環境を規定する実行環境22
−1と、アプリケーションプログラム21−1と実行環
境22−1との間のインタフェースであるAPI23−
1を有している。アプリケーションプログラム21−1
と実行環境22−1は、それぞれ複数のオブジェクト2
4−1と25−1により構成されている。
【0023】同様に、アプリケーションプログラム21
−2も、その環境を規定する実行環境22−2とAPI
23−2とを有し、アプリケーションプログラム21−
2と実行環境22−2は、それぞれ複数のオブジェクト
24−2と25−2により構成されている。
【0024】ここで、各オブジェクトはすべて、他のオ
ブジェクトと並行して処理を実行する並行オブジェクト
として定義されている。1つのAPIの集合は1つの実
行環境によって与えられるので、サーバ1、クライアン
ト2中には、複数のAPIが存在することになる。
【0025】図1に示すように、また図2に拡大して示
すように、アプリケーションプログラム11を複数のオ
ブジェクト14の集まりで構成する。また、オブジェク
ト14を並行オブジェクトとして構成することにより、
アプリケーションプログラム11は並行処理されること
になり、実行速度の向上に貢献する。また、オブジェク
ト14は置き換えの単位でもあるので、動作にバグのあ
るオブジェクト、性能上問題のあるオブジェクトなど
を、誤りのないオブジェクトで置き換えることによっ
て、アプリケーションプログラム11全体を作り替える
ことなく、問題点を解決できる。さらに、オブジェクト
14を部品とし、既存のアプリケーションプログラムの
部品としてのオブジェクトを組み合わせることによっ
て、簡単に新しいアプリケーションプログラムを作るこ
とができる。
【0026】ここで、アプリケーションプログラムと
は、1つのサービス単位である。例えば、サーバ1から
の映像データを単に表示しているアプリケーションプロ
グラム、VCR機能を用いて映像データを検索している
アプリケーションプログラム、メニューによってサービ
スを選択しているアプリケーションプログラム、ホーム
ショッピングのアプリケーションプログラム、ホームシ
ョッピングと連結した家計簿アプリケーションプログラ
ム、税金計算アプリケーションプログラム等である。
【0027】アプリケーションプログラム間でオブジェ
クトを共有することによって、操作性に共通点を持たせ
ることができる。例えば、家計簿でデータを入力してい
るエディタと、ホームショッピングでのデータ入力エデ
ィタを共通化することができる。
【0028】次に並行オブジェクト(concurre
nt object)について説明する。並行オブジェ
クトの構成を図3に示す。並行オブジェクトであるオブ
ジェクト14は、外部に公開されたメソッドエントリの
テーブル14A、メソッドの本体14B、オブジェクト
の状態を保持するメモリ領域14C、メソッドを実行す
る単一のスレッド14Dを有している。並行オブジェク
トには1つの実行コンテキスト(スレッドと呼んでも良
い)のみが存在する。従って並行オブジェクトは、1つ
のメッセージを受信して、その処理中には、新たに到着
したメッセージの処理は、現在の実行が終了するまで行
わない。
【0029】このように、オブジェクト内にスレッドを
1個だけ配置するようにすると、次の利点が得られる。
【0030】(1)複数のアクティビティ間の同期を気
にする必要がない。すなわち、共有データが存在する場
合に、セマフォア等の同期のための命令を用いて、共有
データに対するアクセスを順序付けるといったことを行
う必要がなくなる。換言すれば、オブジェクトへのメッ
セージ送信が、その順序付けを含んでいることになる。
【0031】(2)そのため、同期の取り方のミスによ
るプログラム誤りが生じなくなると同時に、そのオブジ
ェクトの再利用可能性が高まる。
【0032】(3)例えばデバイスドライバを本方式で
作成することによって、多くの場合に生じる、同期誤り
を防ぐことができる。
【0033】(4)また、デバイスドライバの置き換え
による同期誤りを防ぐことができるので、安全にデバイ
スドライバを置き換えることができる。
【0034】(5)デバイスドライバの、実際にハード
ウェアを制御する部分以外の部分を、OSと独立に作成
することができる。これによって、従来から開発のかな
りの時間を占めていたデバイスドライバを、共通に開発
することが可能になるので、開発期間の短縮につなが
る。
【0035】(6)オブジェクト間の実行制御に関する
記述をアプリケーションプログラムの記述から除くこと
ができる。例えば、マルチスレッドを用いた手法では
(複数のスレッドを用いる場合には)、スレッドの実行
制御をアプリケーションプログラム中にプログラムする
必要があるために、スレッドのプログラミング環境が変
更になると、アプリケーションプログラムを書き換える
必要がある。しかしながら、スレッドが1個の場合に
は、アプリケーションプログラムにこの部分を記述する
必要がないので、実行制御方法が変わってもアプリケー
ションプログラムを書き直す必要がない。並行オブジェ
クトのその実行環境への最適な実行制御方法は、システ
ムが、後述するオブジェクトの動的拡張の原理を用いて
提供する。
【0036】(7)従って、アプリケーションプログラ
ムを記述する場合には、並列処理を考える必要がない。
並行オブジェクトが並列処理の単位であるので、並行オ
ブジェクトをプログラムしていけば、後はシステムが自
動的にそのハードウェアに最適な実行制御を行って並列
処理が行われる。従来の手法では、いくつプロセスを生
成するか、いくつスレッドを生成するか、といったこと
をプログラミング時に指定しなければならず、この指定
は、ハードウェアの性能を考慮しないと、そのアプリケ
ーションプログラムは特定のハードウェア専用のものに
なってしまうが、本方式によれば、そのようなことはな
い。
【0037】本システムにおいては、オブジェクトは必
要に応じてダウンロードされる。複数ベンダのクライア
ント2に対してサーバ1からオブジェクトをダウンロー
ドする場合のシステム例を図4に示す。サーバ1上に
は、それぞれのベンダ用のクライアントAPI13(1
3−1,13−2)が、実行環境12(12−1,12
−2)によって実現されている。
【0038】オブジェクトをクライアント2(2−1,
2−2)にダウンロードするとき、クライアント2上
に、サーバ1上の実行環境12と同じ実行環境22(2
2−1,22−2)が存在するか否かを調べ、存在する
場合には、オブジェクトをダウンロードする。存在しな
い場合には、クライアント2上にサーバ1上の実行環境
と同一の実行環境を構築した後、ダウンロードする。
【0039】例えば、図4において、サーバ1のアプリ
ケーションプログラム11−1のオブジェクト14−1
を、クライアント2−1のアプリケーションプログラム
21−1のオブジェクト24−1としてダウンロードす
る場合、クライアント2−1の実行環境22−1に、サ
ーバ1の実行環境12−1のオブジェクト15−1Aに
対応するオブジェクト25−1Aが必要であるとき、例
えば、実行環境12−1のオブジェクト15−1B(検
査手段)は、実行環境22−1のオブジェクト25−1
B(告知手段)にフィーチャストラクチャ(後述する)
を問い合わせる。そして、その回答に対応して、実行環
境12−1のオブジェクト15−1C(ダウンロード手
段)と実行環境22−1のオブジェクト25−1C(ダ
ウンロード手段)は、実行環境12−1のオブジェクト
15−1Aと15−1Bを、実行環境22−1のオブジ
ェクト25−1Aと25−1Bとしてダウンロードさせ
る。
【0040】従来の手法では、ダウンロードするオブジ
ェクトは、クライアントのAPIに合わせて作成する必
要があった。例えば、クライアントがUNIXシステム
の場合には、サーバ上では同じUNIXシステムを用い
るか、あるいは何らかのクロス開発環境を構築してオブ
ジェクトを作成する必要がある。もし、サーバとクライ
アントが同じ実行環境を備えなければいけない場合に
は、クライアント装置は一般に高価な計算資源を備える
必要がある。例えば、専用の実行環境を備える場合と比
べて、より多くのメモリを備える必要がある。また、十
分な実行速度を保証するために、高速のCPU(Centra
l Processing Unit)を備える必要がある。これは、装
置のコスト増につながる。
【0041】これに対して、本システムでは、アプリケ
ーションのダウンロードと同時に、その実行環境をもダ
ウンロードすることで、この問題を解決する。すなわ
ち、クライアント2で現在必要とする実行環境22のみ
をクライアント2に構築することによって、不必要な資
源をクライアント2に用意しなくてもすむようになる。
例えば、クライアント2が3Dのグラフィックスを必要
としない場合には、そのライブラリは必要なくなる。
【0042】また、クライアント2がVOD(Vide
o On Demand)で映画を見ている場合には、
ユーザとのインタラクションのためのサービス(映画を
見るときは不要となるサービス)をクライアントから一
時削除することによって、その分の計算資源を他の仕事
に割り振ることができる。例えば、その資源を、サーバ
1からの映像データのプリフェッチ用のバッファに使う
ことができる。インタラクションのためのサービスは、
それが必要になった時点でサーバ1からダウンロードさ
れる。
【0043】本システムでダウンロードされるオブジェ
クトとしては次のものが考えられる。
【0044】(1)すべてのアプリケーションプログラ
【0045】(2)クライアントが備えるハードウェア
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
【0046】(3)アプリケーションプログラムに対し
てシステムサービスを提供するオブジェクト群(例え
ば、VCRコマンド管理、ストリーム管理、実時間スケ
ジューラ、メモリ管理、ウィンドウ管理、ダウンロード
制御、通信プロトコル管理、実行管理等)
【0047】これらを組み合わせて、アプリケーション
プログラムに対して最適な実行環境をクライアント上に
構築する。
【0048】サーバ1は、映像データやアプリケーショ
ンプログラムを送出する装置であったり、クライアント
2にネットワーク3を通して情報を送出する装置であ
る。一方クライアント2は、サーバ1からの情報を処理
する装置であり、常にネットワーク3と接続されている
必要はない。実行環境はアプリケーションプログラム毎
に与えることができるので、アプリケーションプログラ
ム毎に最適な実行環境を用意することができる。
【0049】従来の手法では、システム構築時にアプリ
ケーションの特性をあらかじめ見積もっておく必要があ
った。例えば、アプリケーションプログラムが映像デー
タを扱う必要があるときには、そのためのシステムサー
ビス、例えば、実時間スケジューリングや映像データを
扱うためのVCRのようなユーザインタフェースを備え
ている必要がある。また、アプリケーションが3Dグラ
フィックスを用いているならば、そのためのライブラリ
を備えている必要がある。そのため、システムは肥大に
なる傾向があった。UNIXやWindows(商標)
がこの典型例であり、バージョンがあがるごとにシステ
ムが必要とするメモリ量は多くなっていった。本システ
ムでは、アプリケーションの実行のために必要最小限の
機能のみを備えていればよく、従来システムのこの問題
点を解決する。
【0050】アプリケーションプログラム11を複数の
オブジェクトの集まりとして構成することにより、ま
た、そのオブジェクトを並行オブジェクトとして実装す
ることにより、オブジェクト単位で並行実行が可能にな
り、アプリケーションプログラムの実行と同時にオブジ
ェクトをダウンロードすることができる。この時、図5
に示すように、アプリケーションプログラムの実行に必
要なオブジェクトをインクリメンタルにダウンロードす
ることにより、ユーザからは、単一のアプリケーション
プログラムのロードにかかる時間を隠すことができる。
【0051】例えば、図5に示すように、サーバ1のア
プリケーションプログラム11のオブジェクト14−1
−1乃至14−1−11を、クライアント2のアプリケ
ーションプログラム21のオブジェクト24−1−1乃
至24−1−11としてダウンロードする必要がある場
合、ランダムに各オブジェクトをダウンロードするので
はなく、アプリケーションプログラム21を実行する上
において、最初に必要なオブジェクト14−1−1乃至
14−1−3を、オブジェクト24−1−1乃至24−
1−3として先にダウンロードする。
【0052】アプリケーションプログラム21は、さし
あたって、この3つのオブジェクトが存在すれば、起動
可能であるため、その処理を開始する。そして、その処
理が実行されている間に、残りのオブジェクト14−1
−4乃至14−1−11をアプリケーションプログラム
21のオブジェクト24−1−4乃至24−1−11と
して、第2乃至第4のダウンロードで順次ダウンロード
する。この第2乃至第4のダウンロードにおいても、処
理上、先に必要となるオブジェクトから順番にダウンロ
ードする。
【0053】ユーザは、アプリケーションプログラム2
1がオブジェクト24−1−1乃至24−1−3がダウ
ンロードされ、その処理が開始された時点において、既
にアプリケーションプログラム21の処理が開始されて
いるため、あたかもすべてのオブジェクトのダウンロー
ドが完了したものと認識することができる。すなわち、
ユーザは、11個のオブジェクトをダウンロードするの
に必要な時間より短い、3個のオブジェクトをダウンロ
ードするのに必要な時間だけを意識することになる。換
言すれば、ユーザに対して、8個のオブジェクトをダウ
ンロードするための時間を実質的に隠す(意識させない
ようにする)ことができる。
【0054】このことは、図4を参照して説明した(ま
た、図10を参照して後述する)実行環境22の構築を
クライアント2上に行う場合にも当てはまる。この場合
は、実行環境22を構成するオブジェクトのうち、アプ
リケーションプログラムの実行に必要な部分のみのオブ
ジェクトを先にダウンロードすることによって、実行環
境のすべてのオブジェクトをダウンロードする時間をユ
ーザから隠すことができる。この手法は、システムのブ
ートにも応用できる。
【0055】ここで、インクリメンタルダウンロードと
は、アプリケーションプログラムや実行環境を一度にダ
ウンロードしないで、それを構成するオブジェクト単
位、あるいは、その一部を必要に応じてダウンロードす
ることを意味する。従来のパソコン通信におけるアプリ
ケーションプログラムのダウンロードの場合には、圧縮
されたアプリケーションプログラムを一気にダウンロー
ドするので、ダウンロードがすべて終わらないと、その
アプリケーションプログラムは利用することができな
い。また、例えば、今までのシステムのブートでは、シ
ステム全体を全部メモリに読み込んでから立ち上がる。
UNIXのディスクレスワークステーションの場合に
は、サーバからすべてのOSをメモリに読み込んでから
システムが起動するので、読み込みがすべて終了するま
で、システムを利用できない。しかしながらインクリメ
ンタルダウンロードすれば、そのようなことがなくな
る。
【0056】この手法は、サーバ1とクライアント2と
してのSTB(Set Top Box)に応用して次
のような効果がある。まず、STBの電源を入れるとす
ぐに利用できるようになる。現在のパーソナルコンピュ
ータのように、システムが立ち上がるまでいらいらして
待つ必要が無くなる。STBは家庭用電気製品としての
性格が強いので、システムが立ち上がるまでユーザを待
たせるのは好ましくない。
【0057】STBの電源が入れられると、STBは最
初に必要なオブジェクトをダウンロードして実行を始め
ようとする。ユーザの待ち時間は最初のこのオブジェク
トのダウンロード時間のみである。典型的なオブジェク
トのダウンロード時間は数ミリ秒から数十ミリ秒である
ので、適当なユーザインタフェースを備えることによ
り、この時間は十分ユーザにとって無視できる時間とな
る。以降は、システムの立ち上げプロセスの進行に従っ
て、必要なオブジェクトがシステムの立ち上げプロセス
と並行にダウンロードされる。
【0058】また、STBは、そのコストの観点から、
サーバのような豊富な計算資源が用意されていないの
で、複数のアプリケーションを同時に実行する場合にも
制約が生じる。例えば、ナビゲーションアプリケーショ
ンによって、VODサービスを選択して、1つの映画を
鑑賞することを考えた場合、映画の鑑賞が始まったら、
ナビゲーションアプリケーションが占有していた資源
(メモリ)を解放して、映画鑑賞アプリケーションのた
めに使うことができる。そして、再び、ナビゲーション
アプリケーションが必要になった時点で、その資源(メ
モリを管理するオブジェクト)をダウンロードする。
【0059】ここで、「必要になった時点」とは、オブ
ジェクトに対して何らかのメッセージが送られた時点と
する。すなわち、一番最初にダウンロードしたオブジェ
クトが、別のオブジェクトにメッセージを送った時点
で、その受信オブジェクトをダウンロードする。オブジ
ェクトの依存、参照関係を利用することによって、次の
メッセージを送るオブジェクトをあらかじめダウンロー
ドしておくことができる。これを、アプリケーションの
実行と並行に行うことにより、メッセージ通信時におけ
るダウンロードによる遅延を少なくすることができる。
これにより、インクリメンタルダウンローディングの有
効性を高めることができる。
【0060】また、実行環境12,22もオブジェクト
15,25の集合体であり、アプリケーションプログラ
ム11,21のオブジェクト14,24と同等に操作可
能であるので、アプリケーションプログラム11,21
に特化したダウンロードの順序を制御するメタオブジェ
クトをオブジェクト15,25の1つとして用意する
(例えば図4のオブジェクト25−1Cをメタオブジェ
クトとする)ことができる。これによって、特定のアプ
リケーションに適した、そのオブジェクトが利用するオ
ブジェクトのダウンロード順を指定することができ、イ
ンクリメンタルダウンローディングによるユーザの待ち
時間を最小にすることができる。
【0061】サーバ1からクライアント2へのオブジェ
クトのダウンロードの機能、それに伴うオブジェクトの
実行環境の互換性の検査機能、および実行環境の構築機
能は、本システムを実現する上で重要なものであり、本
システムを構成するすべての装置(クライアント2)が
最低限有すべき機能とする。本明細書ではこの機能をメ
タ標準と呼ぶ。このメタ標準により、OS等の実行環境
のAPIは自由に拡張することができるようになり、最
小限の標準化とその拡張によって、今後のあらゆるタイ
プのアプリケーションに対応することができるようにな
る。
【0062】例えば、図6に示すシステムでは、各サー
バ1−1,1−2、各クライアント2−1,2−2で
は、独自のAPIを持ったOSが稼働している。すなわ
ちクライアント2−1においては、実行環境22−1に
対応して、アプリケーションプログラム21−1のため
のAPI23−1(API#1)が構成されている。ま
た、クライアント2−2においては、実行環境22−2
によりアプリケーションプログラム21−2のためのA
PI23−2(API#3)が形成されている。
【0063】このため、これらのクライアント2−1,
2−2に対してプログラムをダウンロードするサーバに
は、これらのAPIに対応するAPIが予め用意されて
いる。この実施例においては、サーバ1−1において、
実行環境12−1によりアプリケーションプログラム1
1−1のためのAPI13−1が形成されており、この
API13−1は、クライアント2−1におけるAPI
23−1(API#1)に対応するAPI(API#
1)とされている。
【0064】同様にサーバ1−2において、実行環境1
2−3によりアプリケーションプログラム11−3に対
応するAPI13−3(API#3)が形成されてお
り、このAPI13−3がクライアント2−2のAPI
23−2(API#3)に対応している。
【0065】従って、サーバ1−1,1−2と、クライ
アント2−1,2−2に、このメタ標準に対応するオブ
ジェクトとして、オブジェクト15−1A乃至15−1
C,15−3A乃至15−3C,25−1A乃至25−
1Cおよび25−2A乃至25−2Cを設けている。そ
の結果、クライアント2−1または2−2に対しては、
サーバ1−1または1−2から、メタ標準プロトコルに
従って必要なオブジェクトを適宜ダウンロードさせるこ
とができる。
【0066】各クライアントにおけるOSを1つのOS
に標準化しようとするのがこれまでのこの分野における
傾向であった。しかしながら、このようなメタ標準を規
定し、サーバ側においてのみ、各クライアントのAPI
に対応するAPIを具備させることで、標準を決定する
必要がなくなる。
【0067】OSの標準を1つに規定していないことに
よって、アプリケーションを始め、システムサービスを
実現しているオブジェクトは、OSとは独立に構成する
ことが可能になる。すなわち、ある実行環境用に書かれ
たソフトウェアを、マイグレーションによって別の実行
環境用に自動的に再構成すればよいことになる。従来の
システムには、この機能は存在しない。例えば、UNI
X用に書かれたソフトウェアはWindows上では、
書き直さないと動作しない。アプリケーションレベルの
ソフトウェアで、この機能を実現するには、OS依存性
を吸収するソフトウェアを導入する必要がある。しか
し、デバイスドライバを始めとする、システムサービス
を実現するオブジェクトのOSの独立性は、本手法を用
いて可能になる。
【0068】このように、オブジェクトをダウンロード
するようにすると、クライアント2のオブジェクトは、
図7に示すように、動的に変更することができる。すな
わち、既存のオブジェクトをクライアントから削除し
て、新しいオブジェクトをサーバからダウンロードす
る。
【0069】例えば、図7の実施例においては、クライ
アント2のアプリケーションプログラム21におけるオ
ブジェクト24Aが不要となったので、これを削除して
いる。そして新たに必要になったオブジェクト14Aを
サーバ1からクライアント2に対してダウンロードす
る。
【0070】これにより、次のことが可能になる。
【0071】(1)ソフトウェアをアップデートするこ
とができる。例えば、ハードウェア制御ソフトにバグが
見つかった場合に、そのオブジェクトを削除して、新し
いオブジェクトに置き換える。家庭電化製品は、コンピ
ュータの専門家ではない、一般消費者が利用するものな
ので、一部のコンピュータに見られるようなインストー
ラによるソフトウェアのアップデートは適切ではない。
【0072】(2)製品のサイクルを長くすることがで
きる。例えば、テレビジョン受像機は毎年のようにモデ
ルチェンジが繰り返されるが、一般消費者は、テレビジ
ョン受像機を毎年買い換るようなことはしない。しか
し、本システムにより、ソフトウェアの問題はすべて最
新の機能をユーザに提供できることになるので、ソフト
ウェアの機能拡張によるモデルチェンジをなくすことが
できる。これは、STBの場合にも当てはまる。
【0073】(3)ユーザインタフェースの好みの変化
に対応できる。例えば、初めてその装置を使い始めたユ
ーザには、親切なメニュー形式を提供するが、ユーザが
その装置の使い方を習熟するにつれて、直接所望の操作
ができるようなダイレクト操作のユーザインタフェース
に変更することができる。この場合も、両方の手順をク
ライアント側に持たせるのではなく、そのときのユーザ
の熟練度に応じたユーザインタフェースをクライアント
側に持たせることができる。これにより、限りあるクラ
イアントの資源を有効に利用することができる。
【0074】また、オブジェクトをダウンロードすれ
ば、図8に示すようにクライアント2のオブジェクトを
動的に拡張することができる。図8の実施例において
は、クライアント2におけるアプリケーションプログラ
ム21−1のオブジェクト24−1Bに対して新たなサ
ービスを受けられるようにするために、実行環境22−
2が生成されている。そして実行環境22−1から必要
なオブジェクト25−1A,25−1Bが実行環境22
−2にオブジェクト25−2A,25−2Bとなるよう
に、マイグレート(移転)する。さらに必要なその他の
オブジェクト25−1C,25−1Dも実行環境22−
2にマイグレートされる。
【0075】そしてアプリケーションプログラム21−
2には、アプリケーションプログラム21−1のオブジ
ェクト24−1Bが、オブジェクト24−2Bとなるよ
うにマイグレートされる。
【0076】このようにして、例えば、実時間スケジュ
ーリングの拡張が必要になった場合には、その為の新し
い実行環境をクライアントに生成し、必要なオブジェク
トをその新しい環境に移動する。オブジェクトには何も
変更を加える必要がなく、オブジェクトは実時間スケジ
ューリングのサービスを受けられるようになる。
【0077】これにより次の効果が得られる。
【0078】(1)アプリケーションプログラムのオブ
ジェクトに変更を加えないで、新しい機能に対処するこ
とが可能になるので、アプリケーションプログラムの寿
命が長くなり、再利用可能性が増す。従来の手法では、
アプリケーションプログラムにその実行環境に対する依
存コードが含まれていたために、実行環境が変わること
は、アプリケーションプログラムの書き換えを意味して
いた。
【0079】(2)組み込み機器のアプリケーションプ
ログラムの場合には、ユーザインタフェースをはじめと
する機器の高機能制御ソフトの部分は、モデルが大きく
変わらない限り再利用したい部分であり、また、既存の
コードを利用して機能拡張するのみで開発期間を短縮し
たい部分であるが、この部分に、実行環境への依存コー
ドが含まれていると、再利用のための作業は複雑にな
る。今までの手法は、この部分に対して何の戦略もなか
ったが、本方式によって、この作業は自動化、あるい
は、最小化できる。
【0080】本システムは、具体的には次のように応用
できる。
【0081】(1)アプリケーションの信頼性が低い場
合に、メモリ保護機能をダウンロードすることによって
システム全体の停止を防ぐことができる。
【0082】(2)STBのベンダ毎に、サービスプロ
バイダは提供サービスを変えることができる。例えば、
映画会社Aの映画を提供するサービスプロバイダは、そ
の映画を受信するB社のSTBとC社のSTBとで、画
像の質を変えることができる。
【0083】(3)STBに送られてくるA/Vデータ
の圧縮方式やユーザの画質の好みに応じて、システムの
処理方式を変更する。例えば、MPEGデータの場合と
JPEGデータでは画質を調整するときの仕方が異なる
ので、システムの処理方式を変更する必要があるが、本
システムでは、データ形式に従って動的に処理方式を選
択できる。
【0084】このように、システムのほとんどの機能は
サーバ1からダウンロードすることができるので、あら
かじめクライアント2に様々の機能を持たせる必要が無
く、最小限の機能を持たせればよい。図9に本システム
におけるクライアント2が有する最小限の機能を示す。
すなわち、クライアント2には、デバイスドライバのた
めの実行環境22−1、システムオブジェクトのための
実行環境22−2、実行環境の為の実行環境22−3
を、最低限形成する。
【0085】あらかじめ存在させる必要のあるデバイス
ドライバは、入力を処理するinput drive
r、時間を管理するtimer driver、表示を
制御するscreen driverの各オブジェクト
24−1A,24−1B,24−1Cであり、システム
オブジェクトは、入力を管理するinput hand
ler、起動を管理するboot protocol、
記憶を管理するmemory managerの各オブ
ジェクト24−2A,24−2B,24−2Cである。
より高機能のデバイスドライバ、システムオブジェクト
はサーバ1からダウンロードされる。
【0086】図10は、サーバの送り出すアプリケーシ
ョンプログラム(ビデオ、ゲーム、ショッピング等)に
適したクライアント環境を動的に構成する実施例を表し
ている。図10では、ショッピングのアプリケーション
プログラム11−2をサーバ1からダウンロードするた
めに、ショッピング用の実行環境22−4がクライアン
ト2−2に構成されている。また、ショッピングアプリ
ケーションプログラムから映画アプリケーションプログ
ラムに、クライアント2−2がアプリケーションプログ
ラムを切り替えた場合には、映画アプリケーションプロ
グラム21−3の実行環境22−3がクライアント2−
2に構成され、サーバ1から映画アプリケーションプロ
グラム11−1がダウンロードされる。
【0087】例えば、次のような処理が考えられる。
【0088】(1)ユーザが映画を選択しているとき この時には、所望の映画を選択することができるよう
に、ナビゲーションアプリケーション11−3が、例え
ばクライアント2−1の実行環境22−1にダウンロー
ドされ、それに対する必要な環境として、ウィンドウ管
理、ユーザからの入力管理等のオブジェクト15−3が
オブジェクト25−1としてダウンロードされる。
【0089】(2)ユーザが映画を鑑賞しているとき この時には、サーバ1−1の実行処理12−1から、ビ
デオストリーム管理、データ先読みバッファ管理、VC
R機能等のオブジェクト15−1が、例えばクライアン
ト2−2の実行環境22−3にオブジェクト25−3と
してダウンロードされる。
【0090】以上のように、クライアントの実行環境を
ダウンロードにより実現するために、本システムでは図
11に示すフィーチャストラクチャ(feature
structure)を導入する。オブジェクトがサー
バ1からクライアント2にダウンロードされる時、この
feature structureが検査されて、必
要な実行環境がダウンロード先に構成される。
【0091】すなわち、サーバ1は、クライアント2と
の間において、第1のフェーズ(ネゴシエーションフェ
ーズ)で、サーバ1側のメタオブジェクト空間とクライ
アント2側のメタオブジェクト空間との間におけるオブ
ジェクトマイグレーションの可能性に関するネゴシエー
ションを行う。そして第2のフェーズ(移動フェーズ)
において、実際にオブジェクトの転送を行う。
【0092】オブジェクトマイグレーションはメタレベ
ルのプロセスであり、オブジェクトの内部情報と、必要
ならばそれに関連したオブジェクトによって使用中の計
算資源を転送するものである。オブジェクトの内部情報
は、ディスクリプタ(descriptor)と呼ばれ
るメタレベルオブジェクトによって表現されている。デ
ィスクリプタは、実際には、オブジェクトを管理してい
るメタオブジェクトの名前を保持している。一般的なデ
ィスクリプタは、オブジェクトのメモリセグメントを管
理しているメタオブジェクトの名前、2つ以上のオブジ
ェクトの実行制御をしているメタオブジェクト(スケジ
ューラ)の名前、オブジェクトの名前付けを管理してい
るメタオブジェクトの名前、等を保持している。
【0093】第1のフェーズ(ネゴシエーションフェー
ズ)においては、オブジェクトの移動の可能性が検査さ
れる。すなわち、メタオブジェクト空間によっては、オ
ブジェクトマイグレーションが望ましくない場合があ
る。例えば、デバイスドライバを管理しているメタオブ
ジェクト空間が、オブジェクト(デバイスドライバ)を
移動する場合には、クライアント2側にハードウエアデ
バイスが実際に存在していなければ、その移動を行って
も意味が無くなってしまう。また仮想記憶管理機構を利
用して、オブジェクトのメモリセグメントを管理してい
るメタオブジェクトも、移動先に仮想記憶管理機構が存
在しなければ、移動を行ったとしてもメモリセグメント
を管理することができない。そこで、マイグレーション
プロトコルにおいては、次のメソッドが用意されてい
る。
【0094】Feature* Descripto
r::CanSpeak(Feature* pFea
ture)
【0095】このメソッドは、クライアント2側のメタ
オブジェクト空間内のdescriptorに対して、
CanSpeakオペレーションを実行する。
【0096】この時、フィーチャストラクチャが引数と
して渡され、結果としてクライアント2は、サーバ1に
対して自分自身(クライアント2)が受け入れ可能なフ
ィーチャストラクチャを返す。サーバ1側においては、
クライアント2側から返されたフィーチャストラクチャ
を検査することで、そのメタオブジェット空間の互換性
を知ることができる。
【0097】互換性は、完全互換、半互換、および非互
換の3つのカテゴリに分類される。
【0098】完全互換は、オブジェクトが移動後も完全
に実行を続けることができる場合を意味する。半互換
は、移動後のオブジェクトの実行には、ある制限が加え
られることを意味する。そして、非互換は、オブジェク
トは移動後には実行を続けることができないことを意味
する。
【0099】非互換の場合には、オブジェクトマイグレ
ーションは行われない。半互換の場合にはマイグレーシ
ョンを行うか、行わないかをユーザが判断する。実際に
は、例外がユーザに返されるので、例外処理ルーチンに
よって、マイグレーションの判断がなされる。完全互換
の場合、または半互換の場合であって、オブジェクトマ
イグレーションが行われるときには、先に返されたフィ
ーチャストラクチャの内容に従って、マイグレーション
が行われる。
【0100】なお、ネゴシエーションフェーズに先だっ
て、次のオペレーションによって空のdescript
orがクライアント2側のメタオブジェクト空間に生成
される。
【0101】 Descriptor::Descriptor()
【0102】先のCanSpeakメソッドは、このd
escriptorに対して送られる。この時、フィー
チャストラクチャの情報を元に必要なメタオブジェクト
の生成、参照の生成、必要情報の登録が行われる。
【0103】第2のフェーズにおけるメタレベルでのプ
ロセスは、転送オブジェクトに対応したメタオブジェク
トの移動、あるは転送になる。ここで、メタオブジェク
トの移動とは、そのメタオブジェクトがクライアント2
側のメタオブジェクト空間に入ること、すなわち、ディ
スクリプタ(descriptor)から参照されるよ
うになることを意味し、また、メタオブジェクトの転送
とは、クライアント2側のメタオブジェクト空間にある
メタオブジェクト(これはdescriptorから参
照されている)に対して、メタオブジェクト内のデータ
をメッセージとして送ることを意味する。
【0104】メタオブジェクトの移動および転送に関す
る実際のオペレーションが、ネゴシエーションフェーズ
によって得られたフィーチャストラクチャを利用して、
この第2のフェーズ(移動フェーズ)において実行され
る。
【0105】移動フェーズにおける実際のメタオブジェ
クトの移動および転送は、次のメソッドによって起動さ
れる。
【0106】Descriptor& Descrip
tor::operator=(Descriptor
& source)
【0107】Descriptorクラスは抽象クラス
であり、メタオブジェクトの移動、転送に関する共通の
プロトコルを定義している。sourceで参照される
descriptorの内容が、このディスクリプタに
コピーされる。
【0108】実際の手続きは、Descriptorク
ラスのサブクラスとして定義される。
【0109】次のメソッドは、メタオブジェクトの転送
に関するメソッドである。これらのプロトコルは主にm
igrator(メタオブジェクト空間内に含まれる、
オブジェクトマイグレーションを担当するメタオブジェ
クト)によって使用される。 ・CanonicalContext& Contex
t::asCanonical() 機械依存のContext構造体を、機械非依存の形式
に変換する。このプロトコルは、feature st
ructureによってContextの直接変換が不
可能である、と示されたときに実行される。 ・Context& Context::operat
or=(Context& source) ・Context& Context::operat
or=(CanonicalContext& sou
rce) 現在(thisが参照する)Contextをsour
ceが参照するContextで初期化する。 ・CanonicalSegment& Segmen
t::asCanonical() 機械依存のSegment構造体を、機械非依存の形式
に変換する。このプロトコルは、feature st
ructureによってContextの直接変換が不
可能である、と示されたときに実行される。 ・Segment& Segment::operat
or=(Segment& source) ・Segment& Segment::operat
or=(CanonicalSegment& sou
rce) 現在のthis(が参照する)Segmentをsou
rceが参照するSegmentで初期化し、必要なメ
モリ領域をコピーする。
【0110】図11は、フィーチャストラクチャの構造
を表している。同図に示すように、object de
scriptionとenvironmemt des
criptionのポインタが、エントリーに記述され
ている。
【0111】object descriptionの
ポインタで指示されているストラクチャには、obje
ct nameが記述され、さらに、environm
ent descriptionのポインタで指示され
ているストラクチャと同一のストラクチャのポインタが
記述されている。そしてさらに、このオブジェクトの資
源要求(resource requiremnent
of this opject)が記述されている。
【0112】また、environment desc
riptionのポインタで指示されているストラクチ
ャには、environment nameが記述さ
れ、さらに、そのクライアントのハードウエアの資源情
報(resource information of
client hardware)、この実行環境の
資源要求(resource requirement
of this environment)、および
この実行環境を構成するメタオブジェクトのリスト(l
ist of metaobjects consti
tuting environment)が記述されて
いる。
【0113】フィーチャストラクチャの内容の具体例を
あげると、次のようになる。
【0114】(1)オブジェクトに関する情報 実時間性 必要プロセッサ量
【0115】(2)メタオブジェクトに関する情報 ハードウェアメタオブジェクト *プロセッサの種類 *データ表現形式 セグメントメタオブジェクト *大きさ *拡大、縮小可能性 *管理方針 *レイアウト コンテキストメタオブジェクト *レジスタ情報 *一時変数量 *プロセッサ状態 メイラメタオブジェクト *メッセージキュー長 *未処理メッセージ数 *外部メイラの必要性 *メッセージの転送方式 外部メイラメタオブジェクト *メッセージキュー長 *未処理メッセージ数 *プロトコル スケジューラメタオブジェクト *オブジェクト状態 *スケジューリング方針 依存管理メタオブジェクト *保有する外部名数
【0116】上述したように、各クライアントが異なる
OSを有するような場合、このフィーチャストラクチャ
から各クライアントのOSが判定され、サーバは、その
OSに対応するオブジェクトをダウンロードさせること
になる。
【0117】図12は、本発明のデータ処理システムを
応用したApertos(商標)システムの構成例を示
している。このApertosシステムにおいては、A
pertos Micro Virtual Mach
ine(MVM)31a(第1の実行手段)は、Ape
rtos Micro Kernel(MK)31b
(第2の実行手段)とともにあり、Apertosシス
テムの核31を構成している。核31を構成するMVM
31aは後述する中間コード(I−code)を解釈実
行するが、必要に応じて、MK31bの機能を用いてp
ersonalityオブジェクト(システムオブジェ
クト)を呼び出すようになされている。
【0118】図12に示した核31以外の部分は、上述
した方法により、例えば、サーバ1よりダウンロードす
ることができる。
【0119】このシステムは、必要に応じてI−cod
eをnative code(バイナリコード、マシン
コード)に動的にコンパイルする。また、予めnati
vecodeにコンパイルされているオブジェクトを実
行するが、その場合、MK31bの機能によってPer
sonalityオブジェクト33(バイナリコード生
成手段)が呼び出され、アプリケーション(Appli
cations)35にサービスを提供する。
【0120】図12に示した核31を構成するMVM3
1aおよびMK31bは、その外側がデバイスドライバ
オブジェクト(Device drivers)32と
Personalityオブジェクト(Persona
lity component objects)33
によって取り囲まれており、さらに外側には、アプリケ
ーションプログラミングのためのクラスシステム(Cl
ass Libraries)34が用意されており、
さらにその外側にはアプリケーション35が用意されて
いる。
【0121】Personalityオブジェクト33
の層により、Apertosシステムは様々なOS(オ
ペレーティングシステム)やVirtual Mach
ine(仮想計算機)を提供することができる。例え
ば、javaプログラムの実行は、javaプログラム
用のPersonalityオブジェクトによって、j
avaプログラムがコンパイルされて得られた中間コー
ドであるjava bytecodeが実行されること
により行われる。
【0122】Apertosシステムは、高度のpor
tabilityを実現するために、プログラムをI−
code(中間コード)にコンパイルし、オブジェクト
のメソッドを管理している。しかしながら、I−cod
eは、解釈実行(プログラムを解釈しながら実行するこ
と)を前提に設計されているのではなく、動的コンパイ
ラによってnative codeにコンパイルするよ
うに設計されている。しかし、様々な制約により、動的
コンパイルが困難である場合、MVM31aがI−co
deを解釈実行する。
【0123】しかしながら、ほとんどの場合、I−co
deは、native codeにコンパイルされ、シ
ステムを構成するCPUにより直接実行される。従っ
て、Virtual Machineによる実行に伴っ
て、実時間性が欠如したり、処理スピードが犠牲になる
ということはほとんどない。
【0124】上記I−codeは、高度のInter−
Operabilityを実現するため、図22を参照
して後述するように、十分に抽象度の高い2つの命令セ
ット(OP_M,OP_R)から構成されており、その
セマンティクス(意味構造)は、MK31bのインタフ
ェースと強く関連づけられている。即ち、図12に示し
たApertosシステムの構造に強く影響を受けた命
令セットとされている。これにより、Apertosシ
ステムにおいては、native codeを前提とし
ていながら、高度のPortabilityとInte
r−Operabilityを実現することができる。
【0125】次に、MVM31aとMK31bの仕様に
ついて説明する。最初に、MVM31aが仮定している
データ構造体と、I−codeフォーマットを規定す
る。
【0126】図13は、図12に示したMVM31aと
MK31bの論理構造を示している。基本的に両者の論
理構造は同一であり、active context4
1、message frame42、およびexec
ution engine43により構成されている
が、MVM31aは、I−codeによる実行をサポー
トし、MK31bはnative codeによる実行
をサポートしている。
【0127】図13において、active cont
ext41は、現在実行中のContext(図14を
参照して後述する)を指しており、message f
rame42は、核31を構成するMVM31aおよび
MK31bに対するメッセージ本体を指している。
【0128】MK31bの場合、メッセージ本体の存在
する場所は実装方法に依存し、スタックフレームとして
メモリに割り当てられる場合もあるし、ヒープ(hea
p)に割り当てられる場合もある。また、いくつかのC
PUのレジスタが割り当てられる場合もある。一方、M
VM31aの場合、メッセージフレームは命令コードに
続くオペランドを指すことになる。実装によっては、こ
れら以外に内部レジスタ等を必要とするかもしれない
が、それらのレジスタは本仕様とは独立のものである。
【0129】図13において、execution e
ngine43は、I−codeおよびnative
codeを実行する。また、MVM31aのexecu
tion engine43には、primitive
objects44が含まれており、これは、図18
を参照して後述するプリミティブオブジェクトを処理す
るコードである。
【0130】図14は、ContextとDescri
ptorの論理構造を示している。プログラムの1つの
実行状態を示すContext構造体51は、obje
ct、class、method、metaなどのフィ
ールドを有し、このうち、methodには、icod
eとminfoのフィールドがさらに設けられている。
このContext構造体51は、MVM31aの状態
を保持し、CPUのレジスタに相当し、メモリ管理やプ
ログラム間の通信方法などとは完全に独立している。
【0131】Context構造体51は、Conte
xtプリミティブオブジェクトであり、図16を参照し
て後述するように、その各フィールドは所定の情報にリ
ンクしている。また、Context構造体51は、核
31(MVM31aおよびMK31b)の実装に深く依
存しているが、図14においては、主に依存しない部分
を示している。
【0132】このContext構造体51において重
要なフィールドは、metaフィールドであり、Des
criptor構造体52を指している。Descri
ptor構造体52のエントリは、#tag、cont
ext、およびselectorの3つの組みであり、
このDescriptor構造体52によって、Per
sonalityオブジェクト33のAPI(アプリケ
ーションプログラミングインタフェース)が決定され
る。#tagはAPIの名称を、contextとse
lectorでAPIのアドレスをそれぞれ表してい
る。
【0133】図15は、MVM31aの全体構造を示し
ている。基本的に、全ての必要な情報は、Contex
t構造体51からリンクを辿ることにより参照すること
ができるようになされている。即ち、Context構
造体51が、object61にリンクされ、このob
ject61は、object61に対応するクラスへ
のリンク(class pointer)とインスタン
ス領域(objectdependent fiel
d)より構成される。インスタンス領域にどのような情
報が格納されるか、あるいはそのレイアウトは、オブジ
ェクトの実装に依存する。
【0134】class62は、主としてメソッドを保
持する。class62はその名称(class na
me)、その実装に依存する部分(class dep
endent field)、およびI−method
構造体63へのリンクテーブル(method tab
le)により構成される。I−method構造体63
は、Blockプリミティブオブジェクトであり、ヘッ
ダ(Header)、I−code部、および変数テー
ブル(Variable table)からなる。ma
gic#は、MVM31aの管理番号(ID)である。
基本的に、I−code命令のオペランドは、この変数
テーブルエントリを介して目的オブジェクトを参照す
る。
【0135】図15において、グレーの部分(Cont
ext51、I−method63)はMVM31aに
依存する部分であり、MVM31aがI−codeを解
釈実行する場合に必要とする構造体である。
【0136】図16は、Context構造体51を中
心に、そこからリンクされている構造体を図示したもの
である。Context構造体51のオブジェクトフィ
ールドは、object61を指し、classフィー
ルドは、class62のclass depende
nt fieldを指している。また、methodフ
ィールドはI−method63を指しており、met
hodフィールドのicodeは、I−method6
3のI−codeを指している。icodeは、プログ
ラムカウンタに相当し、実行中のプログラムを指す。m
ethodフィールドのvtableは、I−meth
od63のvariable tableを指してい
る。
【0137】temporaryフィールドは、一時デ
ータ保存領域を指し、metaフィールドは、上述した
ように、descriptor52を指している。ま
た、オブジェクト61のclass pointer
は、class62を指し、class62のmeth
od tableは、I−method63を指してい
る。
【0138】variable tableエントリ
は、typeとvalueの組みであり、valueは
typeに依存する。
【0139】MVM31aは、図17に示したタイプを
処理するようになされており、typeがT_PRIM
ITIVEのとき、value欄はプリミティブオブジ
ェクトを参照する。この場合、value欄には、例え
ば、<P_INTEGER,immediate>,<
P_STRING,address to heap>
といった、図18に示すような<P_CLASS,P_
BODY>の組が格納される。図18は、プリミティブ
オブジェクトの一覧と、そのインタフェース名を示して
いる。図19乃至図21は、図18に示したプリミティ
ブオブジェクトのインタフェースを、Interfac
e Definition Language(ID
L)法により記述した例を示している。このIDL法に
ついては、「CORBA V2.0,July 199
5,P3−1乃至3−36」に開示されている。
【0140】また、図17において、typeがT_P
OINTERのとき、オブジェクトを参照するためのI
Dがvalue欄に格納される。このIDは、その位置
が独立な、システムで唯一の値であり、Persona
lityオブジェクト33によって、そのIDに対応す
るオブジェクトの位置が特定される。
【0141】図22は、MVM31aが解釈実行する2
つの命令セットを示している。命令セットOP_Mは、
図12において、外側から内側に入る命令であり、命令
セットOP_Rは、内側から外側に戻る命令である。
【0142】即ち、命令セットOP_Mにより、その第
1オペランドで示されたオペレーションが実行される。
このオペレーションは、Personalityオブジ
ェクト33によって処理されるか、またはプリミティブ
オブジェクトによって処理される。コンパイラは、より
効率的にアプリケーション35を実行するために、いく
つかの処理をプリミティブオブジェクトによって処理す
るように、I−codeを生成する。これにより、例え
ば、Integerの算術演算は、図18の先頭のプリ
ミティブオブジェクトによって処理される。
【0143】次に、MK31bのインタフェースを規定
する。図23は、マイクロカーネル(MK)31bのイ
ンタフェースを示している。MVM31aとMK31b
の論理構造は、図13に示したように同様であり、MK
31bは、図22に示した命令セットOP_MおよびO
P_Rをシステムコールとして処理する。
【0144】上述したような構成のApertosシス
テムを、例えば図4に示したクライアント2(2−1,
2−2)に適用することができる。そして、図12に示
した核31以外のもののうち、任意のものをサーバ1か
らダウンロードすることにより、所定のアプリケーショ
ンを実行するための最適な実行環境をクライアント2上
に構築することができる。
【0145】上述したように、ここでダウンロードする
オブジェクトとしては次のものが考えられる。
【0146】(1)すべてのアプリケーションプログラ
【0147】(2)クライアントが備えるハードウェア
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
【0148】(3)アプリケーションプログラムに対し
てシステムサービスを提供するオブジェクト群(per
sonaityオブジェクト)(例えば、VCRコマン
ド管理、ストリーム管理、実時間スケジューラ、メモリ
管理、ウィンドウ管理、ダウンロード制御、通信プロト
コル管理、実行管理等)
【0149】これらを組み合わせて、アプリケーション
プログラムに対して最適な実行環境をクライアント上に
構築することができる。
【0150】例えば、javaプログラムを実行させた
い場合、java用のpersonalityオブジェ
クト33と、javaプログラム(アプリケーション)
35をサーバ1よりダウンロードする。このperso
nalityオブジェクト33により、Apertos
システムは、Java Virtual Machin
eを提供することができる。ダウンロードされたjav
aプログラムは、コンパイラにより一旦java by
tecodeと呼ばれる中間コードにコンパイルされ、
上記java Virtual Machineにより
実行される。あるいは、上述したように、native
codeにコンパイルした後、実行するようにするこ
とも可能である。
【0151】以上の実施例においては、サーバからクラ
イアントに所定のオブジェクトをダウンロードするよう
にしたが、所定のクライアントから、所定のサーバにオ
ブジェクトをダウンロードしたり、あるいはサーバ同
士、クライアント同士でオブジェクトをダウンロードす
る場合にも、本発明を適用することが可能である。
【0152】また、上記実施例においては、I−cod
eを2つの命令により構成するようにしたが、これに限
定されるものではない。
【0153】
【発明の効果】以上の如く請求項1記載のデータ処理方
法および請求項9に記載のデータ処理装置によれば、ク
ライアントがダウンロードするアプリケーションプログ
ラムの実行環境を有するか否かを検査し、その検査結果
に対応して、アプリケーションプログラムをクライアン
トにダウンロードするようにしたので、クライアントの
構成を簡略化し、低コスト化するとともに、低コストで
アプリケーションプログラムを提供することが可能とな
る。
【0154】請求項10に記載のデータ処理装置によれ
ば、サーバに対してダウンロードするアプリケーション
プログラムを実行環境に関する告知を行い、その告知に
対応して、サーバからアプリケーションプログラムをダ
ウンロードするようにしたので、構成が簡単で低コスト
の装置を実現することが可能となる。また、低コストで
アプリケーションプログラムを提供することができる。
【0155】請求項11に記載のデータ処理装置、およ
び請求項15に記載のデータ処理方法によれば、中間コ
ードに変換されたアプリケーションプログラムを解釈
し、実行するか、または、中間コードを動的にコンパイ
ルし、生成されたバイナリコードを実行することで、ア
プリケーションプログラムを実行するようにしたので、
動的コンパイルが困難な場合、中間コードを逐次解釈
し、実行することができる。また、中間コードを簡単な
構成とすることにより、ポータブルなアプリケーション
を構築することができる。
【図面の簡単な説明】
【図1】本発明のデータ処理方法を適用するシステムの
構成例を示す図である。
【図2】アプリケーションプログラムの構成を示す図で
ある。
【図3】並行オブジェクトの構成を示す図である。
【図4】サーバから複数ベンダのクライアントに対する
オブジェクトのダウンロードを説明する図である。
【図5】インクリメンタルダウンロードを説明する図で
ある。
【図6】メタ標準を説明する図である。
【図7】オブジェクトの動的変更を説明する図である。
【図8】オブジェクトの動的拡張を説明する図である。
【図9】クライアントの最小機能を説明する図である。
【図10】アプリケーションに適したクライアント環境
の構築とその動的再構成を説明する図である。
【図11】フィーチャストラクチャの構成を説明する図
である。
【図12】本発明のデータ処理装置を応用したAper
tosシステムの構成例を示す図である。
【図13】MVMとMKの論理構造を示す図である。
【図14】ContextとDescriptorの論
理構造を示す図である。
【図15】MVMの全体構造を示す図である。
【図16】Contextとその回りのデータ構造体を
示す図である。
【図17】Variable tableエントリのt
ypeを示す図である。
【図18】プリミティブオブジェクトの一覧とそのイン
タフェース名を示す図である。
【図19】プリミティブオブジェクトのインタフェース
を示す図である。
【図20】プリミティブオブジェクトのインタフェース
を示す図である。
【図21】プリミティブオブジェクトのインタフェース
を示す図である。
【図22】I−code命令セットを示す図である。
【図23】MKのインタフェースを示す図である。
【符号の説明】
1 サーバ,2 クライアント,3 ネットワーク,1
1 アプリケーションプログラム,12 実行環境,1
3 アプリケーションプログラムインタフェース,1
4,15 オブジェクト,21 アプリケーションプロ
グラム,22 実行環境,23 アプリケーションプロ
グラムインタフェース,31 核,31aMVM,31
b MK,32 Device drivers,33
Personality component ob
ject,34 Class libraries,3
5 Applications,41 active
context,42 message frame,
43 executionengine,44 pri
mitive objects,51 contex
t,52 Descriptor,61 objec
t,62 class,63 I−method

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数のオブジェクトで構成されるアプリ
    ケーションプログラムと、複数のオブジェクトで構成さ
    れる、前記アプリケーションプログラムの動作を規定す
    る実行環境と、前記アプリケーションプログラムと前記
    実行環境の間のインタフェースを規定するアプリケーシ
    ョンプログラムインタフェースとを備えるサーバと、 前記サーバより前記アプリケーションプログラムをダウ
    ンロードするクライアントと、 を備えるデータ処理システムにおけるデータ処理方法に
    おいて、 前記サーバは、前記クライアントに前記アプリケーショ
    ンプログラムをダウンロードするとき、前記クライアン
    トが、ダウンロードする前記アプリケーションプログラ
    ムの実行環境を有するか否かを検査し、 その検査結果に対応して前記アプリケーションプログラ
    ムを前記クライアントにダウンロードすることを特徴と
    するデータ処理方法。
  2. 【請求項2】 前記クライアントが、ダウンロードする
    前記アプリケーションプログラムの実行環境を有しない
    とき、前記サーバから前記クライアントにオブジェクト
    をダウンロードし、前記サーバにおける前記実行環境と
    同一の実行環境を前記クライアントに構築し、その後、
    前記サーバから前記クライアントに前記アプリケーショ
    ンプログラムをダウンロードすることを特徴とする請求
    項1に記載のデータ処理方法。
  3. 【請求項3】 前記アプリケーションプログラムのオブ
    ジェクトは、並行オブジェクトであることを特徴とする
    請求項1に記載のデータ処理方法。
  4. 【請求項4】 前記サーバは、前記アプリケーションプ
    ログラムの実行に必要な前記実行環境のオブジェクトを
    インクリメンタルにダウンロードすることを特徴とする
    請求項1に記載のデータ処理方法。
  5. 【請求項5】 前記クライアントの実行環境には、最低
    限の標準的機能として、 前記サーバから前記クライアントへオブジェクトをダウ
    ンロードするダウンロード機能と、 前記実行環境の互換性を検査する検査機能と、 前記実行環境を構築する構築機能とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
    特徴とする請求項2に記載のデータ処理方法。
  6. 【請求項6】 前記クライアントには、最低限の標準的
    機能として、 デバイスドライバのための実行環境と、 システムオブジェクトのための実行環境と、 実行環境のための実行環境とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
    特徴とする請求項2に記載のデータ処理方法。
  7. 【請求項7】 前記デバイスドライバは、インプットド
    ライバ、タイマドライバ、スクリーンドライバを含み、 前記システムオブジェクトは、インプットハンドラ、ブ
    ートプロトコル、メモリマネージャの各オブジェクトを
    含むことを特徴とする請求項6に記載のデータ処理方
    法。
  8. 【請求項8】 前記サーバと前記クライアントは、前記
    クライアントの前記実行環境の互換性を検査するため
    に、前記オブジェクトと前記実行環境について記述した
    デスクリプションを含むフィーチャストラクチャを授受
    することを特徴とする請求項1に記載のデータ処理方
    法。
  9. 【請求項9】 複数のオブジェクトで構成されるアプリ
    ケーションプログラムと、複数のオブジェクトで構成さ
    れる、前記アプリケーションプログラムの動作環境を規
    定する実行環境と、前記アプリケーションプログラムと
    前記実行環境の間のインタフェースを規定するアプリケ
    ーションプログラムインタフェースとを備え、クライア
    ントにアプリケーションプログラムをダウンロードさせ
    るデータ処理装置において、 前記クライアントに前記アプリケーションプログラムを
    ダウンロードするとき、前記クライアントが、ダウンロ
    ードする前記アプリケーションプログラムの実行環境を
    有するか否かを検査する検査手段と、 前記検査手段の検査結果に対応して前記アプリケーショ
    ンプログラムを前記クライアントにダウンロードするダ
    ウンロード手段とを備えることを特徴とするデータ処理
    装置。
  10. 【請求項10】 複数のオブジェクトで構成されるアプ
    リケーションプログラムと、複数のオブジェクトで構成
    される、前記アプリケーションプログラムの動作環境を
    規定する実行環境と、前記アプリケーションプログラム
    と前記実行環境の間のインタフェースを規定するアプリ
    ケーションプログラムインタフェースとを備え、サーバ
    からアプリケーションプログラムをダウンロードするデ
    ータ処理装置において、 前記サーバから前記アプリケーションプログラムをダウ
    ンロードするとき、ダウンロードする前記アプリケーシ
    ョンプログラムの実行環境に関する告知を行う告知手段
    と、 前記告知手段の告知に対応して前記サーバから前記アプ
    リケーションプログラムをダウンロードするダウンロー
    ド手段とを備えることを特徴とするデータ処理装置。
  11. 【請求項11】 複数のオブジェクトで構成されるアプ
    リケーションプログラムと、複数のオブジェクトで構成
    され、前記アプリケーションプログラムに対して実行環
    境を提供するシステムオブジェクトからなるデータ処理
    装置において、 中間コードに変換された前記アプリケーションプログラ
    ムを解釈し、実行する第1の実行手段と、 前記中間コードを動的にコンパイルし、バイナリコード
    を生成するバイナリコード生成手段と、 前記バイナリコードおよび前記システムオブジェクトを
    実行する第2の実行手段とを備えることを特徴とするデ
    ータ処理装置。
  12. 【請求項12】 前記第1の実行手段は、前記第2の実
    行手段を介して前記システムオブジェクトを実行するこ
    とを特徴とする請求項11に記載のデータ処理装置。
  13. 【請求項13】 前記アプリケーションプログラムの実
    行状態を示す第1の構造体と、 前記システムオブジェクトが提供する実行環境のアプリ
    ケーションプログラムインタフェースを決定する第2の
    構造体とをさらに備え、 前記第1の実行手段および前記第2の実行手段は、前記
    第1の構造体と前記第2の構造体に基づいて、前記アプ
    リケーションプログラムの実行を制御することを特徴と
    する請求項11に記載のデータ処理装置。
  14. 【請求項14】 前記第1の実行手段は、前記オブジェ
    クトの所定のものにより発行され、所定のオペランドで
    指定された所定のオペレーションを実行する第1の命令
    と、前記オペレーションを実行した後、前記命令を発行
    した前記オブジェクトに制御を戻す第2の命令とを有す
    ることを特徴とする請求項11に記載のデータ処理装
    置。
  15. 【請求項15】 複数のオブジェクトで構成されるアプ
    リケーションプログラムと、複数のオブジェクトで構成
    され、前記アプリケーションプログラムに対して実行環
    境を提供するシステムオブジェクトからなるデータ処理
    装置におけるデータ処理方法において、 中間コードに変換された前記アプリケーションプログラ
    ムを解釈し、実行する方法と、前記中間コードを動的に
    コンパイルし、生成されたバイナリコードを実行する方
    法とにより、前記アプリケーションプログラムを実行す
    ることを特徴とするデータ処理方法。
JP06788196A 1995-07-14 1996-03-25 データ処理方法および装置 Expired - Lifetime JP4251669B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP06788196A JP4251669B2 (ja) 1995-07-14 1996-03-25 データ処理方法および装置
TW85108517A TW410312B (en) 1995-07-14 1996-07-13 Data processing method and device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-178625 1995-07-14
JP17862595 1995-07-14
JP06788196A JP4251669B2 (ja) 1995-07-14 1996-03-25 データ処理方法および装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005165782A Division JP2005302055A (ja) 1995-07-14 2005-06-06 データ処理方法および装置

Publications (2)

Publication Number Publication Date
JPH0991143A true JPH0991143A (ja) 1997-04-04
JP4251669B2 JP4251669B2 (ja) 2009-04-08

Family

ID=26409086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06788196A Expired - Lifetime JP4251669B2 (ja) 1995-07-14 1996-03-25 データ処理方法および装置

Country Status (2)

Country Link
JP (1) JP4251669B2 (ja)
TW (1) TW410312B (ja)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338705A (ja) * 1998-05-27 1999-12-10 Hitachi Ltd ソフトウェア配布管理システム
JPH11353406A (ja) * 1998-04-29 1999-12-24 Ncr Internatl Inc セルフサ―ビス端末装置
KR20000050238A (ko) * 2000-05-30 2000-08-05 김호광 다수의 운영시스템에서 실행 가능한 프로그램 제작 시스템및 방법
JP2001209618A (ja) * 2000-01-27 2001-08-03 Victor Co Of Japan Ltd オブジェクト配信方式
KR20010105756A (ko) * 2000-05-18 2001-11-29 김형순 통합 응용 프로그램 인터페이스를 사용한 컴퓨터 전화인터페이스 서비스 프로그램 개발 시스템 및 방법
KR20020031511A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 다수의 하드웨어에서 실행가능한 pda 어플리케이션제작방법
JP2002132739A (ja) * 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
JP2002523813A (ja) * 1998-08-31 2002-07-30 イルデト・アクセス・ベー・フェー 暗号化データを供給するシステム、暗号化データを暗号解読するシステムおよびこのような暗号解読システムに通信インタフェースを提供する方法
JP2002540522A (ja) * 1999-03-26 2002-11-26 サンマイクロシステムズ インコーポレーテッド インターフェーススタブを用いた遅延クラスローディングシステム及びその方法
JP2003108395A (ja) * 2001-09-27 2003-04-11 Seiko Epson Corp オブジェクト型データ処理装置及びオブジェクト型データのデータ構造、並びにオブジェクト型データの生成方法
JP2003532166A (ja) * 1999-02-03 2003-10-28 ソフトオンネット株式会社 分散コンピューティング環境におけるレンタルソフトウェアプログラムを実行するためのシステム及びその方法
JP2004272908A (ja) * 2003-03-06 2004-09-30 Microsoft Corp システムの設計、展開、管理のフェーズを統合する方法
KR100462876B1 (ko) * 2002-03-14 2004-12-17 삼성전자주식회사 네트워크 기술군 표준 플랫폼을 사용하는 방법
JP2006127040A (ja) * 2004-10-27 2006-05-18 Sharp Corp 情報処理システム及び情報処理装置
JP2007536630A (ja) * 2004-05-07 2007-12-13 ワイズ テクノロジー インコーポレーテッド オペレーティングシステム及びアプリケーションの統合オンデマンド配信システム及び方法
US7574720B1 (en) 1999-02-05 2009-08-11 Sony Corporation Data transmitting method, data transmitting system, data receiving method and receiving terminal
JP2009544072A (ja) * 2006-07-10 2009-12-10 デバイス ヴィーエム インク アプライアンスの仮想化のための方法と装置
JP2010518502A (ja) * 2007-02-12 2010-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワーク化された制御システムの装置
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US10540159B2 (en) 2005-06-29 2020-01-21 Microsoft Technology Licensing, Llc Model-based virtual system provisioning

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4674771B2 (ja) * 2003-11-12 2011-04-20 トムソン ライセンシング メニューを構成する方法及び装置

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11353406A (ja) * 1998-04-29 1999-12-24 Ncr Internatl Inc セルフサ―ビス端末装置
JPH11338705A (ja) * 1998-05-27 1999-12-10 Hitachi Ltd ソフトウェア配布管理システム
JP2002523813A (ja) * 1998-08-31 2002-07-30 イルデト・アクセス・ベー・フェー 暗号化データを供給するシステム、暗号化データを暗号解読するシステムおよびこのような暗号解読システムに通信インタフェースを提供する方法
JP2003532166A (ja) * 1999-02-03 2003-10-28 ソフトオンネット株式会社 分散コンピューティング環境におけるレンタルソフトウェアプログラムを実行するためのシステム及びその方法
US8037491B2 (en) 1999-02-05 2011-10-11 Sony Corporation Data transmitting method, data transmitting system, data receiving method and receiving terminal
US7574720B1 (en) 1999-02-05 2009-08-11 Sony Corporation Data transmitting method, data transmitting system, data receiving method and receiving terminal
JP2002540522A (ja) * 1999-03-26 2002-11-26 サンマイクロシステムズ インコーポレーテッド インターフェーススタブを用いた遅延クラスローディングシステム及びその方法
JP2001209618A (ja) * 2000-01-27 2001-08-03 Victor Co Of Japan Ltd オブジェクト配信方式
KR20010105756A (ko) * 2000-05-18 2001-11-29 김형순 통합 응용 프로그램 인터페이스를 사용한 컴퓨터 전화인터페이스 서비스 프로그램 개발 시스템 및 방법
KR20000050238A (ko) * 2000-05-30 2000-08-05 김호광 다수의 운영시스템에서 실행 가능한 프로그램 제작 시스템및 방법
KR20020031511A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 다수의 하드웨어에서 실행가능한 pda 어플리케이션제작방법
JP2002132739A (ja) * 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
JP2003108395A (ja) * 2001-09-27 2003-04-11 Seiko Epson Corp オブジェクト型データ処理装置及びオブジェクト型データのデータ構造、並びにオブジェクト型データの生成方法
KR100462876B1 (ko) * 2002-03-14 2004-12-17 삼성전자주식회사 네트워크 기술군 표준 플랫폼을 사용하는 방법
US7886041B2 (en) 2003-03-06 2011-02-08 Microsoft Corporation Design time validation of systems
JP2004272908A (ja) * 2003-03-06 2004-09-30 Microsoft Corp システムの設計、展開、管理のフェーズを統合する方法
JP2007536630A (ja) * 2004-05-07 2007-12-13 ワイズ テクノロジー インコーポレーテッド オペレーティングシステム及びアプリケーションの統合オンデマンド配信システム及び方法
US8230095B2 (en) 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US9229732B2 (en) 2004-05-07 2016-01-05 Wyse Technology L.L.C. System and method for on-demand delivery of operating system and/or applications
JP2006127040A (ja) * 2004-10-27 2006-05-18 Sharp Corp 情報処理システム及び情報処理装置
US10540159B2 (en) 2005-06-29 2020-01-21 Microsoft Technology Licensing, Llc Model-based virtual system provisioning
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
JP2009544072A (ja) * 2006-07-10 2009-12-10 デバイス ヴィーエム インク アプライアンスの仮想化のための方法と装置
JP2010518502A (ja) * 2007-02-12 2010-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ネットワーク化された制御システムの装置

Also Published As

Publication number Publication date
JP4251669B2 (ja) 2009-04-08
TW410312B (en) 2000-11-01

Similar Documents

Publication Publication Date Title
EP1306756B1 (en) Data processing method and device
JP4251669B2 (ja) データ処理方法および装置
TWI276998B (en) Systems and methods for managing drivers in a computing system
AU734115B2 (en) Hardware accelerator for an object-oriented programming language
CA2178581C (en) Automatic booting framework
US6330659B1 (en) Hardware accelerator for an object-oriented programming language
US9098297B2 (en) Hardware accelerator for an object-oriented programming language
US5983310A (en) Pin management of accelerator for interpretive environments
US20020078255A1 (en) Pluggable instantiable distributed objects
WO1995017716A1 (en) Object-oriented booting framework
JP2013546106A (ja) 分散型コンピューティングアーキテクチャ
JPH05216692A (ja) プログラム実行を管理する方法およびシステム
WO1998038573A1 (en) Asynchronous-event opening component of a network component system
KR20010034542A (ko) 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치
JP2001202253A (ja) データ処理方法およびデータ処理装置
KR100577366B1 (ko) 이종의 자바 메소드를 실행하는 방법 및 장치
EP1378822A1 (en) Data processing system and data processing method, information processing device and information processing method, and storage medium
JP2005302055A (ja) データ処理方法および装置
Tanter Faculty of Ëciences
Tan Name of Author: Kai Tan Title of Thesis: Pattern-based Parallel Programming in a Distributed Memory Environment Degree: Master of Science Year this Degree Granted: 2003
Tan Pattern-based parallel programming in a distributed memory environment
Nicoletti Redefining the web: toward the creation of large-scale distributed applications
Fedak A concurrent microprogramming facility

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050930

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051011

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20051111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081117

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: 20090120

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

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140130

Year of fee payment: 5

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