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
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
を可能にする。 【解決手段】 サーバ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
び装置に関し、特に構成を簡略化し、低コスト化するこ
とができるようにした、データ処理方法および装置に関
する。
てきた。このパーソナルコンピュータでネットワークを
介して所定のサーバにアクセスし、所定の情報を得るこ
とができる。
て各種の処理を行うには、アプリケーションプログラム
が必要となる。そこで、各ユーザは、そのパーソナルコ
ンピュータのOSに合ったアプリケーションプログラム
を購入し、インストールして用いるようにしている。
なると、アプリケーションプログラムも異なるものとな
るため、各ユーザは、自分のOSに合ったアプリケーシ
ョンプログラムを選択して購入する必要がある。また、
アプリケーションプログラムを提供する側(アプリケー
ションプログラムを設計する側)においても、実質的に
同一の処理を行うアプリケーションプログラムを複数
(OSの数だけ)設計し、用意しなければならず、多く
の労力が必要になると同時に、コスト高となる課題があ
った。
各アプリケーションプログラムにおいても発生してい
た。すなわち、1つのアプリケーションプログラムと、
それとは異なる他のアプリケーションプログラムとが、
同一のOS上において動作するものであったとしても、
2つのアプリケーションプログラムはそれぞれ別個に設
計しなければならず、結果的に、1つのアプリケーショ
ンプログラムを提供するのに必要な労力とコストが高く
なる課題があった。
ものであり、1つのアプリケーションプログラムを、簡
単かつ低コストで提供できるようにするものである。
処理方法は、サーバが、クライアントにアプリケーショ
ンプログラムをダウンロードするとき、クライアント
が、ダウンロードするアプリケーションプログラムの実
行環境を有するか否かを検査し、その検査結果に対応し
てアプリケーションプログラムをクライアントにダウン
ロードすることを特徴とする。
イアントにアプリケーションプログラムをダウンロード
するとき、クライアントが、ダウンロードするアプリケ
ーションプログラムの実行環境を有するか否かを検査す
る検査手段と、検査手段の検査結果に対応してアプリケ
ーションプログラムをクライアントにダウンロードする
ダウンロード手段とを備えることを特徴とする。
ーバからアプリケーションプログラムをダウンロードす
るとき、ダウンロードするアプリケーションプログラム
の実行環境に関する告知を行う告知手段と、告知手段の
告知に対応してサーバからアプリケーションプログラム
をダウンロードするダウンロード手段とを備えることを
特徴とする。
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の実行手段と、中間コードを動的に
コンパイルし、バイナリコードを生成するバイナリコー
ド生成手段と、バイナリコードおよびシステムオブジェ
クトを実行する第2の実行手段とを備えることを特徴と
する。
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の方法と、中間コードを動的にコン
パイルし、生成されたバイナリコードを実行する第2の
方法とにより、アプリケーションプログラムを実行する
ことを特徴とする。
は、クライアントにアプリケーションプログラムをダウ
ンロードするとき、クライアントが、ダウンロードする
アプリケーションプログラムの実行環境を有するか否か
をクライアントとサーバ間で検査し、その検査結果に対
応してアプリケーションプログラムをクライアントにダ
ウンロードする。
は、検査手段が、クライアントにアプリケーションプロ
グラムをダウンロードするとき、クライアントが、ダウ
ンロードするアプリケーションプログラムの実行環境を
有するか否かを検査し、ダウンロード手段が、検査手段
の検査結果に対応してアプリケーションプログラムをク
ライアントにダウンロードする。
ては、告知手段が、サーバからアプリケーションプログ
ラムをダウンロードするとき、ダウンロードするアプリ
ケーションプログラムの実行環境に関する告知を行い、
ダウンロード手段が、告知手段の告知に対応してサーバ
からアプリケーションプログラムをダウンロードする。
ては、第1の実行手段が、中間コードに変換されたプロ
グラムを解釈し、実行し、バイナリコード生成手段が、
中間コードを動的にコンパイルし、バイナリコードを生
成し、第2の実行手段が、バイナリコードを実行する。
例えば、動的コンパイルが困難な場合、中間コードを逐
次解釈し、実行することができる。
ては、中間コードに変換されたプログラムを解釈し、実
行する第1の方法と、中間コードを動的にコンパイル
し、生成されたバイナリコードを実行する第2の方法と
により、アプリケーションプログラムを実行する。例え
ば、動的コンパイルが困難な場合、中間コードを逐次解
釈し、実行することができる。
るシステム構成例を図1に示す。システムはサーバ1
(データ処理装置)、クライアント2(データ処理装
置)、ネットワーク3から構成されている。
1は2つのアプリケーションプログラムを有し、一方の
アプリケーションプログラム11−1は、それを実行す
る環境を規定する実行環境12−1と、アプリケーショ
ンプログラム11−1と実行環境12−1との間のイン
タフェースを構成するアプリケーションプログラムイン
タフェース(API)13−1を有している。
複数のオブジェクト14−1により構成され、また、実
行環境12−1も、複数のオブジェクト15−1により
構成されている。
−2は、その環境を規定する実行環境12−2と、アプ
リケーションプログラム11−2と実行環境12−2と
の間のインタフェースとして機能するAPI13−2を
有している。
も、複数のオブジェクト14−2により構成され、ま
た、実行環境12−2も複数のオブジェクト15−2に
より構成されている。
ーションプログラムを有し、一方のアプリケーションプ
ログラム21−1は、その環境を規定する実行環境22
−1と、アプリケーションプログラム21−1と実行環
境22−1との間のインタフェースであるAPI23−
1を有している。アプリケーションプログラム21−1
と実行環境22−1は、それぞれ複数のオブジェクト2
4−1と25−1により構成されている。
−2も、その環境を規定する実行環境22−2とAPI
23−2とを有し、アプリケーションプログラム21−
2と実行環境22−2は、それぞれ複数のオブジェクト
24−2と25−2により構成されている。
ブジェクトと並行して処理を実行する並行オブジェクト
として定義されている。1つのAPIの集合は1つの実
行環境によって与えられるので、サーバ1、クライアン
ト2中には、複数のAPIが存在することになる。
すように、アプリケーションプログラム11を複数のオ
ブジェクト14の集まりで構成する。また、オブジェク
ト14を並行オブジェクトとして構成することにより、
アプリケーションプログラム11は並行処理されること
になり、実行速度の向上に貢献する。また、オブジェク
ト14は置き換えの単位でもあるので、動作にバグのあ
るオブジェクト、性能上問題のあるオブジェクトなど
を、誤りのないオブジェクトで置き換えることによっ
て、アプリケーションプログラム11全体を作り替える
ことなく、問題点を解決できる。さらに、オブジェクト
14を部品とし、既存のアプリケーションプログラムの
部品としてのオブジェクトを組み合わせることによっ
て、簡単に新しいアプリケーションプログラムを作るこ
とができる。
は、1つのサービス単位である。例えば、サーバ1から
の映像データを単に表示しているアプリケーションプロ
グラム、VCR機能を用いて映像データを検索している
アプリケーションプログラム、メニューによってサービ
スを選択しているアプリケーションプログラム、ホーム
ショッピングのアプリケーションプログラム、ホームシ
ョッピングと連結した家計簿アプリケーションプログラ
ム、税金計算アプリケーションプログラム等である。
クトを共有することによって、操作性に共通点を持たせ
ることができる。例えば、家計簿でデータを入力してい
るエディタと、ホームショッピングでのデータ入力エデ
ィタを共通化することができる。
nt object)について説明する。並行オブジェ
クトの構成を図3に示す。並行オブジェクトであるオブ
ジェクト14は、外部に公開されたメソッドエントリの
テーブル14A、メソッドの本体14B、オブジェクト
の状態を保持するメモリ領域14C、メソッドを実行す
る単一のスレッド14Dを有している。並行オブジェク
トには1つの実行コンテキスト(スレッドと呼んでも良
い)のみが存在する。従って並行オブジェクトは、1つ
のメッセージを受信して、その処理中には、新たに到着
したメッセージの処理は、現在の実行が終了するまで行
わない。
1個だけ配置するようにすると、次の利点が得られる。
にする必要がない。すなわち、共有データが存在する場
合に、セマフォア等の同期のための命令を用いて、共有
データに対するアクセスを順序付けるといったことを行
う必要がなくなる。換言すれば、オブジェクトへのメッ
セージ送信が、その順序付けを含んでいることになる。
るプログラム誤りが生じなくなると同時に、そのオブジ
ェクトの再利用可能性が高まる。
作成することによって、多くの場合に生じる、同期誤り
を防ぐことができる。
による同期誤りを防ぐことができるので、安全にデバイ
スドライバを置き換えることができる。
ウェアを制御する部分以外の部分を、OSと独立に作成
することができる。これによって、従来から開発のかな
りの時間を占めていたデバイスドライバを、共通に開発
することが可能になるので、開発期間の短縮につなが
る。
記述をアプリケーションプログラムの記述から除くこと
ができる。例えば、マルチスレッドを用いた手法では
(複数のスレッドを用いる場合には)、スレッドの実行
制御をアプリケーションプログラム中にプログラムする
必要があるために、スレッドのプログラミング環境が変
更になると、アプリケーションプログラムを書き換える
必要がある。しかしながら、スレッドが1個の場合に
は、アプリケーションプログラムにこの部分を記述する
必要がないので、実行制御方法が変わってもアプリケー
ションプログラムを書き直す必要がない。並行オブジェ
クトのその実行環境への最適な実行制御方法は、システ
ムが、後述するオブジェクトの動的拡張の原理を用いて
提供する。
ムを記述する場合には、並列処理を考える必要がない。
並行オブジェクトが並列処理の単位であるので、並行オ
ブジェクトをプログラムしていけば、後はシステムが自
動的にそのハードウェアに最適な実行制御を行って並列
処理が行われる。従来の手法では、いくつプロセスを生
成するか、いくつスレッドを生成するか、といったこと
をプログラミング時に指定しなければならず、この指定
は、ハードウェアの性能を考慮しないと、そのアプリケ
ーションプログラムは特定のハードウェア専用のものに
なってしまうが、本方式によれば、そのようなことはな
い。
要に応じてダウンロードされる。複数ベンダのクライア
ント2に対してサーバ1からオブジェクトをダウンロー
ドする場合のシステム例を図4に示す。サーバ1上に
は、それぞれのベンダ用のクライアントAPI13(1
3−1,13−2)が、実行環境12(12−1,12
−2)によって実現されている。
2−2)にダウンロードするとき、クライアント2上
に、サーバ1上の実行環境12と同じ実行環境22(2
2−1,22−2)が存在するか否かを調べ、存在する
場合には、オブジェクトをダウンロードする。存在しな
い場合には、クライアント2上にサーバ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としてダウンロードさせ
る。
ェクトは、クライアントのAPIに合わせて作成する必
要があった。例えば、クライアントがUNIXシステム
の場合には、サーバ上では同じUNIXシステムを用い
るか、あるいは何らかのクロス開発環境を構築してオブ
ジェクトを作成する必要がある。もし、サーバとクライ
アントが同じ実行環境を備えなければいけない場合に
は、クライアント装置は一般に高価な計算資源を備える
必要がある。例えば、専用の実行環境を備える場合と比
べて、より多くのメモリを備える必要がある。また、十
分な実行速度を保証するために、高速のCPU(Centra
l Processing Unit)を備える必要がある。これは、装
置のコスト増につながる。
ーションのダウンロードと同時に、その実行環境をもダ
ウンロードすることで、この問題を解決する。すなわ
ち、クライアント2で現在必要とする実行環境22のみ
をクライアント2に構築することによって、不必要な資
源をクライアント2に用意しなくてもすむようになる。
例えば、クライアント2が3Dのグラフィックスを必要
としない場合には、そのライブラリは必要なくなる。
o On Demand)で映画を見ている場合には、
ユーザとのインタラクションのためのサービス(映画を
見るときは不要となるサービス)をクライアントから一
時削除することによって、その分の計算資源を他の仕事
に割り振ることができる。例えば、その資源を、サーバ
1からの映像データのプリフェッチ用のバッファに使う
ことができる。インタラクションのためのサービスは、
それが必要になった時点でサーバ1からダウンロードさ
れる。
クトとしては次のものが考えられる。
ム
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
てシステムサービスを提供するオブジェクト群(例え
ば、VCRコマンド管理、ストリーム管理、実時間スケ
ジューラ、メモリ管理、ウィンドウ管理、ダウンロード
制御、通信プロトコル管理、実行管理等)
プログラムに対して最適な実行環境をクライアント上に
構築する。
ンプログラムを送出する装置であったり、クライアント
2にネットワーク3を通して情報を送出する装置であ
る。一方クライアント2は、サーバ1からの情報を処理
する装置であり、常にネットワーク3と接続されている
必要はない。実行環境はアプリケーションプログラム毎
に与えることができるので、アプリケーションプログラ
ム毎に最適な実行環境を用意することができる。
ケーションの特性をあらかじめ見積もっておく必要があ
った。例えば、アプリケーションプログラムが映像デー
タを扱う必要があるときには、そのためのシステムサー
ビス、例えば、実時間スケジューリングや映像データを
扱うためのVCRのようなユーザインタフェースを備え
ている必要がある。また、アプリケーションが3Dグラ
フィックスを用いているならば、そのためのライブラリ
を備えている必要がある。そのため、システムは肥大に
なる傾向があった。UNIXやWindows(商標)
がこの典型例であり、バージョンがあがるごとにシステ
ムが必要とするメモリ量は多くなっていった。本システ
ムでは、アプリケーションの実行のために必要最小限の
機能のみを備えていればよく、従来システムのこの問題
点を解決する。
オブジェクトの集まりとして構成することにより、ま
た、そのオブジェクトを並行オブジェクトとして実装す
ることにより、オブジェクト単位で並行実行が可能にな
り、アプリケーションプログラムの実行と同時にオブジ
ェクトをダウンロードすることができる。この時、図5
に示すように、アプリケーションプログラムの実行に必
要なオブジェクトをインクリメンタルにダウンロードす
ることにより、ユーザからは、単一のアプリケーション
プログラムのロードにかかる時間を隠すことができる。
プリケーションプログラム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として先にダウンロードする。
あたって、この3つのオブジェクトが存在すれば、起動
可能であるため、その処理を開始する。そして、その処
理が実行されている間に、残りのオブジェクト14−1
−4乃至14−1−11をアプリケーションプログラム
21のオブジェクト24−1−4乃至24−1−11と
して、第2乃至第4のダウンロードで順次ダウンロード
する。この第2乃至第4のダウンロードにおいても、処
理上、先に必要となるオブジェクトから順番にダウンロ
ードする。
1がオブジェクト24−1−1乃至24−1−3がダウ
ンロードされ、その処理が開始された時点において、既
にアプリケーションプログラム21の処理が開始されて
いるため、あたかもすべてのオブジェクトのダウンロー
ドが完了したものと認識することができる。すなわち、
ユーザは、11個のオブジェクトをダウンロードするの
に必要な時間より短い、3個のオブジェクトをダウンロ
ードするのに必要な時間だけを意識することになる。換
言すれば、ユーザに対して、8個のオブジェクトをダウ
ンロードするための時間を実質的に隠す(意識させない
ようにする)ことができる。
た、図10を参照して後述する)実行環境22の構築を
クライアント2上に行う場合にも当てはまる。この場合
は、実行環境22を構成するオブジェクトのうち、アプ
リケーションプログラムの実行に必要な部分のみのオブ
ジェクトを先にダウンロードすることによって、実行環
境のすべてのオブジェクトをダウンロードする時間をユ
ーザから隠すことができる。この手法は、システムのブ
ートにも応用できる。
は、アプリケーションプログラムや実行環境を一度にダ
ウンロードしないで、それを構成するオブジェクト単
位、あるいは、その一部を必要に応じてダウンロードす
ることを意味する。従来のパソコン通信におけるアプリ
ケーションプログラムのダウンロードの場合には、圧縮
されたアプリケーションプログラムを一気にダウンロー
ドするので、ダウンロードがすべて終わらないと、その
アプリケーションプログラムは利用することができな
い。また、例えば、今までのシステムのブートでは、シ
ステム全体を全部メモリに読み込んでから立ち上がる。
UNIXのディスクレスワークステーションの場合に
は、サーバからすべてのOSをメモリに読み込んでから
システムが起動するので、読み込みがすべて終了するま
で、システムを利用できない。しかしながらインクリメ
ンタルダウンロードすれば、そのようなことがなくな
る。
してのSTB(Set Top Box)に応用して次
のような効果がある。まず、STBの電源を入れるとす
ぐに利用できるようになる。現在のパーソナルコンピュ
ータのように、システムが立ち上がるまでいらいらして
待つ必要が無くなる。STBは家庭用電気製品としての
性格が強いので、システムが立ち上がるまでユーザを待
たせるのは好ましくない。
初に必要なオブジェクトをダウンロードして実行を始め
ようとする。ユーザの待ち時間は最初のこのオブジェク
トのダウンロード時間のみである。典型的なオブジェク
トのダウンロード時間は数ミリ秒から数十ミリ秒である
ので、適当なユーザインタフェースを備えることによ
り、この時間は十分ユーザにとって無視できる時間とな
る。以降は、システムの立ち上げプロセスの進行に従っ
て、必要なオブジェクトがシステムの立ち上げプロセス
と並行にダウンロードされる。
サーバのような豊富な計算資源が用意されていないの
で、複数のアプリケーションを同時に実行する場合にも
制約が生じる。例えば、ナビゲーションアプリケーショ
ンによって、VODサービスを選択して、1つの映画を
鑑賞することを考えた場合、映画の鑑賞が始まったら、
ナビゲーションアプリケーションが占有していた資源
(メモリ)を解放して、映画鑑賞アプリケーションのた
めに使うことができる。そして、再び、ナビゲーション
アプリケーションが必要になった時点で、その資源(メ
モリを管理するオブジェクト)をダウンロードする。
ジェクトに対して何らかのメッセージが送られた時点と
する。すなわち、一番最初にダウンロードしたオブジェ
クトが、別のオブジェクトにメッセージを送った時点
で、その受信オブジェクトをダウンロードする。オブジ
ェクトの依存、参照関係を利用することによって、次の
メッセージを送るオブジェクトをあらかじめダウンロー
ドしておくことができる。これを、アプリケーションの
実行と並行に行うことにより、メッセージ通信時におけ
るダウンロードによる遅延を少なくすることができる。
これにより、インクリメンタルダウンローディングの有
効性を高めることができる。
15,25の集合体であり、アプリケーションプログラ
ム11,21のオブジェクト14,24と同等に操作可
能であるので、アプリケーションプログラム11,21
に特化したダウンロードの順序を制御するメタオブジェ
クトをオブジェクト15,25の1つとして用意する
(例えば図4のオブジェクト25−1Cをメタオブジェ
クトとする)ことができる。これによって、特定のアプ
リケーションに適した、そのオブジェクトが利用するオ
ブジェクトのダウンロード順を指定することができ、イ
ンクリメンタルダウンローディングによるユーザの待ち
時間を最小にすることができる。
クトのダウンロードの機能、それに伴うオブジェクトの
実行環境の互換性の検査機能、および実行環境の構築機
能は、本システムを実現する上で重要なものであり、本
システムを構成するすべての装置(クライアント2)が
最低限有すべき機能とする。本明細書ではこの機能をメ
タ標準と呼ぶ。このメタ標準により、OS等の実行環境
のAPIは自由に拡張することができるようになり、最
小限の標準化とその拡張によって、今後のあらゆるタイ
プのアプリケーションに対応することができるようにな
る。
バ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)が形成されている。
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)とされている。
2−3によりアプリケーションプログラム11−3に対
応するAPI13−3(API#3)が形成されてお
り、このAPI13−3がクライアント2−2のAPI
23−2(API#3)に対応している。
アント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から、メタ標準プロトコルに
従って必要なオブジェクトを適宜ダウンロードさせるこ
とができる。
に標準化しようとするのがこれまでのこの分野における
傾向であった。しかしながら、このようなメタ標準を規
定し、サーバ側においてのみ、各クライアントのAPI
に対応するAPIを具備させることで、標準を決定する
必要がなくなる。
よって、アプリケーションを始め、システムサービスを
実現しているオブジェクトは、OSとは独立に構成する
ことが可能になる。すなわち、ある実行環境用に書かれ
たソフトウェアを、マイグレーションによって別の実行
環境用に自動的に再構成すればよいことになる。従来の
システムには、この機能は存在しない。例えば、UNI
X用に書かれたソフトウェアはWindows上では、
書き直さないと動作しない。アプリケーションレベルの
ソフトウェアで、この機能を実現するには、OS依存性
を吸収するソフトウェアを導入する必要がある。しか
し、デバイスドライバを始めとする、システムサービス
を実現するオブジェクトのOSの独立性は、本手法を用
いて可能になる。
するようにすると、クライアント2のオブジェクトは、
図7に示すように、動的に変更することができる。すな
わち、既存のオブジェクトをクライアントから削除し
て、新しいオブジェクトをサーバからダウンロードす
る。
アント2のアプリケーションプログラム21におけるオ
ブジェクト24Aが不要となったので、これを削除して
いる。そして新たに必要になったオブジェクト14Aを
サーバ1からクライアント2に対してダウンロードす
る。
とができる。例えば、ハードウェア制御ソフトにバグが
見つかった場合に、そのオブジェクトを削除して、新し
いオブジェクトに置き換える。家庭電化製品は、コンピ
ュータの専門家ではない、一般消費者が利用するものな
ので、一部のコンピュータに見られるようなインストー
ラによるソフトウェアのアップデートは適切ではない。
きる。例えば、テレビジョン受像機は毎年のようにモデ
ルチェンジが繰り返されるが、一般消費者は、テレビジ
ョン受像機を毎年買い換るようなことはしない。しか
し、本システムにより、ソフトウェアの問題はすべて最
新の機能をユーザに提供できることになるので、ソフト
ウェアの機能拡張によるモデルチェンジをなくすことが
できる。これは、STBの場合にも当てはまる。
に対応できる。例えば、初めてその装置を使い始めたユ
ーザには、親切なメニュー形式を提供するが、ユーザが
その装置の使い方を習熟するにつれて、直接所望の操作
ができるようなダイレクト操作のユーザインタフェース
に変更することができる。この場合も、両方の手順をク
ライアント側に持たせるのではなく、そのときのユーザ
の熟練度に応じたユーザインタフェースをクライアント
側に持たせることができる。これにより、限りあるクラ
イアントの資源を有効に利用することができる。
ば、図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にマイグレートされる。
2には、アプリケーションプログラム21−1のオブジ
ェクト24−1Bが、オブジェクト24−2Bとなるよ
うにマイグレートされる。
ーリングの拡張が必要になった場合には、その為の新し
い実行環境をクライアントに生成し、必要なオブジェク
トをその新しい環境に移動する。オブジェクトには何も
変更を加える必要がなく、オブジェクトは実時間スケジ
ューリングのサービスを受けられるようになる。
ジェクトに変更を加えないで、新しい機能に対処するこ
とが可能になるので、アプリケーションプログラムの寿
命が長くなり、再利用可能性が増す。従来の手法では、
アプリケーションプログラムにその実行環境に対する依
存コードが含まれていたために、実行環境が変わること
は、アプリケーションプログラムの書き換えを意味して
いた。
ログラムの場合には、ユーザインタフェースをはじめと
する機器の高機能制御ソフトの部分は、モデルが大きく
変わらない限り再利用したい部分であり、また、既存の
コードを利用して機能拡張するのみで開発期間を短縮し
たい部分であるが、この部分に、実行環境への依存コー
ドが含まれていると、再利用のための作業は複雑にな
る。今までの手法は、この部分に対して何の戦略もなか
ったが、本方式によって、この作業は自動化、あるい
は、最小化できる。
できる。
合に、メモリ保護機能をダウンロードすることによって
システム全体の停止を防ぐことができる。
バイダは提供サービスを変えることができる。例えば、
映画会社Aの映画を提供するサービスプロバイダは、そ
の映画を受信するB社のSTBとC社のSTBとで、画
像の質を変えることができる。
の圧縮方式やユーザの画質の好みに応じて、システムの
処理方式を変更する。例えば、MPEGデータの場合と
JPEGデータでは画質を調整するときの仕方が異なる
ので、システムの処理方式を変更する必要があるが、本
システムでは、データ形式に従って動的に処理方式を選
択できる。
サーバ1からダウンロードすることができるので、あら
かじめクライアント2に様々の機能を持たせる必要が無
く、最小限の機能を持たせればよい。図9に本システム
におけるクライアント2が有する最小限の機能を示す。
すなわち、クライアント2には、デバイスドライバのた
めの実行環境22−1、システムオブジェクトのための
実行環境22−2、実行環境の為の実行環境22−3
を、最低限形成する。
ドライバは、入力を処理する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からダウンロードされる。
ョンプログラム(ビデオ、ゲーム、ショッピング等)に
適したクライアント環境を動的に構成する実施例を表し
ている。図10では、ショッピングのアプリケーション
プログラム11−2をサーバ1からダウンロードするた
めに、ショッピング用の実行環境22−4がクライアン
ト2−2に構成されている。また、ショッピングアプリ
ケーションプログラムから映画アプリケーションプログ
ラムに、クライアント2−2がアプリケーションプログ
ラムを切り替えた場合には、映画アプリケーションプロ
グラム21−3の実行環境22−3がクライアント2−
2に構成され、サーバ1から映画アプリケーションプロ
グラム11−1がダウンロードされる。
に、ナビゲーションアプリケーション11−3が、例え
ばクライアント2−1の実行環境22−1にダウンロー
ドされ、それに対する必要な環境として、ウィンドウ管
理、ユーザからの入力管理等のオブジェクト15−3が
オブジェクト25−1としてダウンロードされる。
デオストリーム管理、データ先読みバッファ管理、VC
R機能等のオブジェクト15−1が、例えばクライアン
ト2−2の実行環境22−3にオブジェクト25−3と
してダウンロードされる。
ダウンロードにより実現するために、本システムでは図
11に示すフィーチャストラクチャ(feature
structure)を導入する。オブジェクトがサー
バ1からクライアント2にダウンロードされる時、この
feature structureが検査されて、必
要な実行環境がダウンロード先に構成される。
の間において、第1のフェーズ(ネゴシエーションフェ
ーズ)で、サーバ1側のメタオブジェクト空間とクライ
アント2側のメタオブジェクト空間との間におけるオブ
ジェクトマイグレーションの可能性に関するネゴシエー
ションを行う。そして第2のフェーズ(移動フェーズ)
において、実際にオブジェクトの転送を行う。
ルのプロセスであり、オブジェクトの内部情報と、必要
ならばそれに関連したオブジェクトによって使用中の計
算資源を転送するものである。オブジェクトの内部情報
は、ディスクリプタ(descriptor)と呼ばれ
るメタレベルオブジェクトによって表現されている。デ
ィスクリプタは、実際には、オブジェクトを管理してい
るメタオブジェクトの名前を保持している。一般的なデ
ィスクリプタは、オブジェクトのメモリセグメントを管
理しているメタオブジェクトの名前、2つ以上のオブジ
ェクトの実行制御をしているメタオブジェクト(スケジ
ューラ)の名前、オブジェクトの名前付けを管理してい
るメタオブジェクトの名前、等を保持している。
ズ)においては、オブジェクトの移動の可能性が検査さ
れる。すなわち、メタオブジェクト空間によっては、オ
ブジェクトマイグレーションが望ましくない場合があ
る。例えば、デバイスドライバを管理しているメタオブ
ジェクト空間が、オブジェクト(デバイスドライバ)を
移動する場合には、クライアント2側にハードウエアデ
バイスが実際に存在していなければ、その移動を行って
も意味が無くなってしまう。また仮想記憶管理機構を利
用して、オブジェクトのメモリセグメントを管理してい
るメタオブジェクトも、移動先に仮想記憶管理機構が存
在しなければ、移動を行ったとしてもメモリセグメント
を管理することができない。そこで、マイグレーション
プロトコルにおいては、次のメソッドが用意されてい
る。
r::CanSpeak(Feature* pFea
ture)
オブジェクト空間内のdescriptorに対して、
CanSpeakオペレーションを実行する。
して渡され、結果としてクライアント2は、サーバ1に
対して自分自身(クライアント2)が受け入れ可能なフ
ィーチャストラクチャを返す。サーバ1側においては、
クライアント2側から返されたフィーチャストラクチャ
を検査することで、そのメタオブジェット空間の互換性
を知ることができる。
換の3つのカテゴリに分類される。
に実行を続けることができる場合を意味する。半互換
は、移動後のオブジェクトの実行には、ある制限が加え
られることを意味する。そして、非互換は、オブジェク
トは移動後には実行を続けることができないことを意味
する。
ーションは行われない。半互換の場合にはマイグレーシ
ョンを行うか、行わないかをユーザが判断する。実際に
は、例外がユーザに返されるので、例外処理ルーチンに
よって、マイグレーションの判断がなされる。完全互換
の場合、または半互換の場合であって、オブジェクトマ
イグレーションが行われるときには、先に返されたフィ
ーチャストラクチャの内容に従って、マイグレーション
が行われる。
て、次のオペレーションによって空のdescript
orがクライアント2側のメタオブジェクト空間に生成
される。
escriptorに対して送られる。この時、フィー
チャストラクチャの情報を元に必要なメタオブジェクト
の生成、参照の生成、必要情報の登録が行われる。
ロセスは、転送オブジェクトに対応したメタオブジェク
トの移動、あるは転送になる。ここで、メタオブジェク
トの移動とは、そのメタオブジェクトがクライアント2
側のメタオブジェクト空間に入ること、すなわち、ディ
スクリプタ(descriptor)から参照されるよ
うになることを意味し、また、メタオブジェクトの転送
とは、クライアント2側のメタオブジェクト空間にある
メタオブジェクト(これはdescriptorから参
照されている)に対して、メタオブジェクト内のデータ
をメッセージとして送ることを意味する。
る実際のオペレーションが、ネゴシエーションフェーズ
によって得られたフィーチャストラクチャを利用して、
この第2のフェーズ(移動フェーズ)において実行され
る。
クトの移動および転送は、次のメソッドによって起動さ
れる。
tor::operator=(Descriptor
& source)
であり、メタオブジェクトの移動、転送に関する共通の
プロトコルを定義している。sourceで参照される
descriptorの内容が、このディスクリプタに
コピーされる。
ラスのサブクラスとして定義される。
に関するメソッドである。これらのプロトコルは主に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で初期化し、必要なメ
モリ領域をコピーする。
を表している。同図に示すように、object de
scriptionとenvironmemt des
criptionのポインタが、エントリーに記述され
ている。
ポインタで指示されているストラクチャには、obje
ct nameが記述され、さらに、environm
ent descriptionのポインタで指示され
ているストラクチャと同一のストラクチャのポインタが
記述されている。そしてさらに、このオブジェクトの資
源要求(resource requiremnent
of this opject)が記述されている。
riptionのポインタで指示されているストラクチ
ャには、environment nameが記述さ
れ、さらに、そのクライアントのハードウエアの資源情
報(resource information of
client hardware)、この実行環境の
資源要求(resource requirement
of this environment)、および
この実行環境を構成するメタオブジェクトのリスト(l
ist of metaobjects consti
tuting environment)が記述されて
いる。
あげると、次のようになる。
OSを有するような場合、このフィーチャストラクチャ
から各クライアントのOSが判定され、サーバは、その
OSに対応するオブジェクトをダウンロードさせること
になる。
応用した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オブジェクト(システムオブジェ
クト)を呼び出すようになされている。
した方法により、例えば、サーバ1よりダウンロードす
ることができる。
eをnative code(バイナリコード、マシン
コード)に動的にコンパイルする。また、予めnati
vecodeにコンパイルされているオブジェクトを実
行するが、その場合、MK31bの機能によってPer
sonalityオブジェクト33(バイナリコード生
成手段)が呼び出され、アプリケーション(Appli
cations)35にサービスを提供する。
1aおよびMK31bは、その外側がデバイスドライバ
オブジェクト(Device drivers)32と
Personalityオブジェクト(Persona
lity component objects)33
によって取り囲まれており、さらに外側には、アプリケ
ーションプログラミングのためのクラスシステム(Cl
ass Libraries)34が用意されており、
さらにその外側にはアプリケーション35が用意されて
いる。
の層により、Apertosシステムは様々なOS(オ
ペレーティングシステム)やVirtual Mach
ine(仮想計算機)を提供することができる。例え
ば、javaプログラムの実行は、javaプログラム
用のPersonalityオブジェクトによって、j
avaプログラムがコンパイルされて得られた中間コー
ドであるjava bytecodeが実行されること
により行われる。
tabilityを実現するために、プログラムをI−
code(中間コード)にコンパイルし、オブジェクト
のメソッドを管理している。しかしながら、I−cod
eは、解釈実行(プログラムを解釈しながら実行するこ
と)を前提に設計されているのではなく、動的コンパイ
ラによってnative codeにコンパイルするよ
うに設計されている。しかし、様々な制約により、動的
コンパイルが困難である場合、MVM31aがI−co
deを解釈実行する。
deは、native codeにコンパイルされ、シ
ステムを構成するCPUにより直接実行される。従っ
て、Virtual Machineによる実行に伴っ
て、実時間性が欠如したり、処理スピードが犠牲になる
ということはほとんどない。
Operabilityを実現するため、図22を参照
して後述するように、十分に抽象度の高い2つの命令セ
ット(OP_M,OP_R)から構成されており、その
セマンティクス(意味構造)は、MK31bのインタフ
ェースと強く関連づけられている。即ち、図12に示し
たApertosシステムの構造に強く影響を受けた命
令セットとされている。これにより、Apertosシ
ステムにおいては、native codeを前提とし
ていながら、高度のPortabilityとInte
r−Operabilityを実現することができる。
ついて説明する。最初に、MVM31aが仮定している
データ構造体と、I−codeフォーマットを規定す
る。
MK31bの論理構造を示している。基本的に両者の論
理構造は同一であり、active context4
1、message frame42、およびexec
ution engine43により構成されている
が、MVM31aは、I−codeによる実行をサポー
トし、MK31bはnative codeによる実行
をサポートしている。
ext41は、現在実行中のContext(図14を
参照して後述する)を指しており、message f
rame42は、核31を構成するMVM31aおよび
MK31bに対するメッセージ本体を指している。
する場所は実装方法に依存し、スタックフレームとして
メモリに割り当てられる場合もあるし、ヒープ(hea
p)に割り当てられる場合もある。また、いくつかのC
PUのレジスタが割り当てられる場合もある。一方、M
VM31aの場合、メッセージフレームは命令コードに
続くオペランドを指すことになる。実装によっては、こ
れら以外に内部レジスタ等を必要とするかもしれない
が、それらのレジスタは本仕様とは独立のものである。
ngine43は、I−codeおよびnative
codeを実行する。また、MVM31aのexecu
tion engine43には、primitive
objects44が含まれており、これは、図18
を参照して後述するプリミティブオブジェクトを処理す
るコードである。
ptorの論理構造を示している。プログラムの1つの
実行状態を示すContext構造体51は、obje
ct、class、method、metaなどのフィ
ールドを有し、このうち、methodには、icod
eとminfoのフィールドがさらに設けられている。
このContext構造体51は、MVM31aの状態
を保持し、CPUのレジスタに相当し、メモリ管理やプ
ログラム間の通信方法などとは完全に独立している。
xtプリミティブオブジェクトであり、図16を参照し
て後述するように、その各フィールドは所定の情報にリ
ンクしている。また、Context構造体51は、核
31(MVM31aおよびMK31b)の実装に深く依
存しているが、図14においては、主に依存しない部分
を示している。
要なフィールドは、metaフィールドであり、Des
criptor構造体52を指している。Descri
ptor構造体52のエントリは、#tag、cont
ext、およびselectorの3つの組みであり、
このDescriptor構造体52によって、Per
sonalityオブジェクト33のAPI(アプリケ
ーションプログラミングインタフェース)が決定され
る。#tagはAPIの名称を、contextとse
lectorでAPIのアドレスをそれぞれ表してい
る。
ている。基本的に、全ての必要な情報は、Contex
t構造体51からリンクを辿ることにより参照すること
ができるようになされている。即ち、Context構
造体51が、object61にリンクされ、このob
ject61は、object61に対応するクラスへ
のリンク(class pointer)とインスタン
ス領域(objectdependent fiel
d)より構成される。インスタンス領域にどのような情
報が格納されるか、あるいはそのレイアウトは、オブジ
ェクトの実装に依存する。
持する。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命令のオペランドは、この変数
テーブルエントリを介して目的オブジェクトを参照す
る。
ext51、I−method63)はMVM31aに
依存する部分であり、MVM31aがI−codeを解
釈実行する場合に必要とする構造体である。
心に、そこからリンクされている構造体を図示したもの
である。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を指してい
る。
ータ保存領域を指し、metaフィールドは、上述した
ように、descriptor52を指している。ま
た、オブジェクト61のclass pointer
は、class62を指し、class62のmeth
od tableは、I−method63を指してい
る。
は、typeとvalueの組みであり、valueは
typeに依存する。
処理するようになされており、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」に開示されている。
OINTERのとき、オブジェクトを参照するためのI
Dがvalue欄に格納される。このIDは、その位置
が独立な、システムで唯一の値であり、Persona
lityオブジェクト33によって、そのIDに対応す
るオブジェクトの位置が特定される。
つの命令セットを示している。命令セットOP_Mは、
図12において、外側から内側に入る命令であり、命令
セットOP_Rは、内側から外側に戻る命令である。
1オペランドで示されたオペレーションが実行される。
このオペレーションは、Personalityオブジ
ェクト33によって処理されるか、またはプリミティブ
オブジェクトによって処理される。コンパイラは、より
効率的にアプリケーション35を実行するために、いく
つかの処理をプリミティブオブジェクトによって処理す
るように、I−codeを生成する。これにより、例え
ば、Integerの算術演算は、図18の先頭のプリ
ミティブオブジェクトによって処理される。
する。図23は、マイクロカーネル(MK)31bのイ
ンタフェースを示している。MVM31aとMK31b
の論理構造は、図13に示したように同様であり、MK
31bは、図22に示した命令セットOP_MおよびO
P_Rをシステムコールとして処理する。
テムを、例えば図4に示したクライアント2(2−1,
2−2)に適用することができる。そして、図12に示
した核31以外のもののうち、任意のものをサーバ1か
らダウンロードすることにより、所定のアプリケーショ
ンを実行するための最適な実行環境をクライアント2上
に構築することができる。
オブジェクトとしては次のものが考えられる。
ム
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
てシステムサービスを提供するオブジェクト群(per
sonaityオブジェクト)(例えば、VCRコマン
ド管理、ストリーム管理、実時間スケジューラ、メモリ
管理、ウィンドウ管理、ダウンロード制御、通信プロト
コル管理、実行管理等)
プログラムに対して最適な実行環境をクライアント上に
構築することができる。
い場合、java用のpersonalityオブジェ
クト33と、javaプログラム(アプリケーション)
35をサーバ1よりダウンロードする。このperso
nalityオブジェクト33により、Apertos
システムは、Java Virtual Machin
eを提供することができる。ダウンロードされたjav
aプログラムは、コンパイラにより一旦java by
tecodeと呼ばれる中間コードにコンパイルされ、
上記java Virtual Machineにより
実行される。あるいは、上述したように、native
codeにコンパイルした後、実行するようにするこ
とも可能である。
イアントに所定のオブジェクトをダウンロードするよう
にしたが、所定のクライアントから、所定のサーバにオ
ブジェクトをダウンロードしたり、あるいはサーバ同
士、クライアント同士でオブジェクトをダウンロードす
る場合にも、本発明を適用することが可能である。
eを2つの命令により構成するようにしたが、これに限
定されるものではない。
法および請求項9に記載のデータ処理装置によれば、ク
ライアントがダウンロードするアプリケーションプログ
ラムの実行環境を有するか否かを検査し、その検査結果
に対応して、アプリケーションプログラムをクライアン
トにダウンロードするようにしたので、クライアントの
構成を簡略化し、低コスト化するとともに、低コストで
アプリケーションプログラムを提供することが可能とな
る。
ば、サーバに対してダウンロードするアプリケーション
プログラムを実行環境に関する告知を行い、その告知に
対応して、サーバからアプリケーションプログラムをダ
ウンロードするようにしたので、構成が簡単で低コスト
の装置を実現することが可能となる。また、低コストで
アプリケーションプログラムを提供することができる。
び請求項15に記載のデータ処理方法によれば、中間コ
ードに変換されたアプリケーションプログラムを解釈
し、実行するか、または、中間コードを動的にコンパイ
ルし、生成されたバイナリコードを実行することで、ア
プリケーションプログラムを実行するようにしたので、
動的コンパイルが困難な場合、中間コードを逐次解釈
し、実行することができる。また、中間コードを簡単な
構成とすることにより、ポータブルなアプリケーション
を構築することができる。
構成例を示す図である。
ある。
オブジェクトのダウンロードを説明する図である。
ある。
の構築とその動的再構成を説明する図である。
である。
tosシステムの構成例を示す図である。
理構造を示す図である。
示す図である。
ypeを示す図である。
タフェース名を示す図である。
を示す図である。
を示す図である。
を示す図である。
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】 複数のオブジェクトで構成されるアプリ
ケーションプログラムと、複数のオブジェクトで構成さ
れる、前記アプリケーションプログラムの動作を規定す
る実行環境と、前記アプリケーションプログラムと前記
実行環境の間のインタフェースを規定するアプリケーシ
ョンプログラムインタフェースとを備えるサーバと、 前記サーバより前記アプリケーションプログラムをダウ
ンロードするクライアントと、 を備えるデータ処理システムにおけるデータ処理方法に
おいて、 前記サーバは、前記クライアントに前記アプリケーショ
ンプログラムをダウンロードするとき、前記クライアン
トが、ダウンロードする前記アプリケーションプログラ
ムの実行環境を有するか否かを検査し、 その検査結果に対応して前記アプリケーションプログラ
ムを前記クライアントにダウンロードすることを特徴と
するデータ処理方法。 - 【請求項2】 前記クライアントが、ダウンロードする
前記アプリケーションプログラムの実行環境を有しない
とき、前記サーバから前記クライアントにオブジェクト
をダウンロードし、前記サーバにおける前記実行環境と
同一の実行環境を前記クライアントに構築し、その後、
前記サーバから前記クライアントに前記アプリケーショ
ンプログラムをダウンロードすることを特徴とする請求
項1に記載のデータ処理方法。 - 【請求項3】 前記アプリケーションプログラムのオブ
ジェクトは、並行オブジェクトであることを特徴とする
請求項1に記載のデータ処理方法。 - 【請求項4】 前記サーバは、前記アプリケーションプ
ログラムの実行に必要な前記実行環境のオブジェクトを
インクリメンタルにダウンロードすることを特徴とする
請求項1に記載のデータ処理方法。 - 【請求項5】 前記クライアントの実行環境には、最低
限の標準的機能として、 前記サーバから前記クライアントへオブジェクトをダウ
ンロードするダウンロード機能と、 前記実行環境の互換性を検査する検査機能と、 前記実行環境を構築する構築機能とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
特徴とする請求項2に記載のデータ処理方法。 - 【請求項6】 前記クライアントには、最低限の標準的
機能として、 デバイスドライバのための実行環境と、 システムオブジェクトのための実行環境と、 実行環境のための実行環境とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
特徴とする請求項2に記載のデータ処理方法。 - 【請求項7】 前記デバイスドライバは、インプットド
ライバ、タイマドライバ、スクリーンドライバを含み、 前記システムオブジェクトは、インプットハンドラ、ブ
ートプロトコル、メモリマネージャの各オブジェクトを
含むことを特徴とする請求項6に記載のデータ処理方
法。 - 【請求項8】 前記サーバと前記クライアントは、前記
クライアントの前記実行環境の互換性を検査するため
に、前記オブジェクトと前記実行環境について記述した
デスクリプションを含むフィーチャストラクチャを授受
することを特徴とする請求項1に記載のデータ処理方
法。 - 【請求項9】 複数のオブジェクトで構成されるアプリ
ケーションプログラムと、複数のオブジェクトで構成さ
れる、前記アプリケーションプログラムの動作環境を規
定する実行環境と、前記アプリケーションプログラムと
前記実行環境の間のインタフェースを規定するアプリケ
ーションプログラムインタフェースとを備え、クライア
ントにアプリケーションプログラムをダウンロードさせ
るデータ処理装置において、 前記クライアントに前記アプリケーションプログラムを
ダウンロードするとき、前記クライアントが、ダウンロ
ードする前記アプリケーションプログラムの実行環境を
有するか否かを検査する検査手段と、 前記検査手段の検査結果に対応して前記アプリケーショ
ンプログラムを前記クライアントにダウンロードするダ
ウンロード手段とを備えることを特徴とするデータ処理
装置。 - 【請求項10】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
される、前記アプリケーションプログラムの動作環境を
規定する実行環境と、前記アプリケーションプログラム
と前記実行環境の間のインタフェースを規定するアプリ
ケーションプログラムインタフェースとを備え、サーバ
からアプリケーションプログラムをダウンロードするデ
ータ処理装置において、 前記サーバから前記アプリケーションプログラムをダウ
ンロードするとき、ダウンロードする前記アプリケーシ
ョンプログラムの実行環境に関する告知を行う告知手段
と、 前記告知手段の告知に対応して前記サーバから前記アプ
リケーションプログラムをダウンロードするダウンロー
ド手段とを備えることを特徴とするデータ処理装置。 - 【請求項11】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
され、前記アプリケーションプログラムに対して実行環
境を提供するシステムオブジェクトからなるデータ処理
装置において、 中間コードに変換された前記アプリケーションプログラ
ムを解釈し、実行する第1の実行手段と、 前記中間コードを動的にコンパイルし、バイナリコード
を生成するバイナリコード生成手段と、 前記バイナリコードおよび前記システムオブジェクトを
実行する第2の実行手段とを備えることを特徴とするデ
ータ処理装置。 - 【請求項12】 前記第1の実行手段は、前記第2の実
行手段を介して前記システムオブジェクトを実行するこ
とを特徴とする請求項11に記載のデータ処理装置。 - 【請求項13】 前記アプリケーションプログラムの実
行状態を示す第1の構造体と、 前記システムオブジェクトが提供する実行環境のアプリ
ケーションプログラムインタフェースを決定する第2の
構造体とをさらに備え、 前記第1の実行手段および前記第2の実行手段は、前記
第1の構造体と前記第2の構造体に基づいて、前記アプ
リケーションプログラムの実行を制御することを特徴と
する請求項11に記載のデータ処理装置。 - 【請求項14】 前記第1の実行手段は、前記オブジェ
クトの所定のものにより発行され、所定のオペランドで
指定された所定のオペレーションを実行する第1の命令
と、前記オペレーションを実行した後、前記命令を発行
した前記オブジェクトに制御を戻す第2の命令とを有す
ることを特徴とする請求項11に記載のデータ処理装
置。 - 【請求項15】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
され、前記アプリケーションプログラムに対して実行環
境を提供するシステムオブジェクトからなるデータ処理
装置におけるデータ処理方法において、 中間コードに変換された前記アプリケーションプログラ
ムを解釈し、実行する方法と、前記中間コードを動的に
コンパイルし、生成されたバイナリコードを実行する方
法とにより、前記アプリケーションプログラムを実行す
ることを特徴とするデータ処理方法。
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)
| 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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4674771B2 (ja) * | 2003-11-12 | 2011-04-20 | トムソン ライセンシング | メニューを構成する方法及び装置 |
-
1996
- 1996-03-25 JP JP06788196A patent/JP4251669B2/ja not_active Expired - Lifetime
- 1996-07-13 TW TW85108517A patent/TW410312B/zh not_active IP Right Cessation
Cited By (24)
| 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 |