[go: up one dir, main page]

JPH0991143A - Data processing method and device - Google Patents

Data processing method and device

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
Japanese (ja)
Other versions
JP4251669B2 (en
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/en
Priority to TW85108517A priority patent/TW410312B/en
Publication of JPH0991143A publication Critical patent/JPH0991143A/en
Application granted granted Critical
Publication of JP4251669B2 publication Critical patent/JP4251669B2/en
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をダ
ウンロードする。
(57) [Abstract] [PROBLEMS] To simplify the configuration of a client and enable cost reduction. A server 1 and clients 2-1 and 2-2
Are connected via the network 3. The server 1 has an execution environment 22-1, which the clients 2-1 and 2-2 have.
The execution environments 12-1 and 12-2 corresponding to 22-2 are prepared in advance. When the predetermined objects 24-1 and 24-2 are required in the application programs 21-1 and 21-2 of the clients 2-1 and 2-2, the application program 11 of the server 1
The objects 14-1 and 14-2 of -1 and 11-2 are downloaded.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はデータ処理方法およ
び装置に関し、特に構成を簡略化し、低コスト化するこ
とができるようにした、データ処理方法および装置に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing method and device, and more particularly to a data processing method and device which can simplify the configuration and reduce the cost.

【0002】[0002]

【従来の技術】最近、パーソナルコンピュータが普及し
てきた。このパーソナルコンピュータでネットワークを
介して所定のサーバにアクセスし、所定の情報を得るこ
とができる。
2. Description of the Related Art Recently, personal computers have become popular. This personal computer can access a predetermined server via a network to obtain predetermined information.

【0003】このようなパーソナルコンピュータにおい
て各種の処理を行うには、アプリケーションプログラム
が必要となる。そこで、各ユーザは、そのパーソナルコ
ンピュータのOSに合ったアプリケーションプログラム
を購入し、インストールして用いるようにしている。
An application program is required to perform various processes in such a personal computer. Therefore, each user purchases, installs, and uses an application program suitable for the OS of the personal computer.

【0004】[0004]

【発明が解決しようとする課題】このように、OSが異
なると、アプリケーションプログラムも異なるものとな
るため、各ユーザは、自分のOSに合ったアプリケーシ
ョンプログラムを選択して購入する必要がある。また、
アプリケーションプログラムを提供する側(アプリケー
ションプログラムを設計する側)においても、実質的に
同一の処理を行うアプリケーションプログラムを複数
(OSの数だけ)設計し、用意しなければならず、多く
の労力が必要になると同時に、コスト高となる課題があ
った。
As described above, since different OSs result in different application programs, each user must select and purchase an application program that matches his or her OS. Also,
Even on the side that provides the application program (the side that designs the application program), it is necessary to design and prepare a plurality of application programs (as many as the number of OSs) that perform substantially the same processing, which requires a lot of labor. At the same time, there was a problem that the cost was high.

【0005】また、同様のことが、同一のOSにおける
各アプリケーションプログラムにおいても発生してい
た。すなわち、1つのアプリケーションプログラムと、
それとは異なる他のアプリケーションプログラムとが、
同一のOS上において動作するものであったとしても、
2つのアプリケーションプログラムはそれぞれ別個に設
計しなければならず、結果的に、1つのアプリケーショ
ンプログラムを提供するのに必要な労力とコストが高く
なる課題があった。
The same thing occurs in each application program in the same OS. That is, one application program,
Other application programs different from that,
Even if they run on the same OS,
The two application programs have to be designed separately, and as a result, there is a problem that the labor and cost required to provide one application program become high.

【0006】本発明はこのような状況に鑑みてなされた
ものであり、1つのアプリケーションプログラムを、簡
単かつ低コストで提供できるようにするものである。
The present invention has been made in view of such circumstances, and it is an object of the present invention to provide one application program easily and at low cost.

【0007】[0007]

【課題を解決するための手段】請求項1に記載のデータ
処理方法は、サーバが、クライアントにアプリケーショ
ンプログラムをダウンロードするとき、クライアント
が、ダウンロードするアプリケーションプログラムの実
行環境を有するか否かを検査し、その検査結果に対応し
てアプリケーションプログラムをクライアントにダウン
ロードすることを特徴とする。
According to the data processing method of the present invention, when the server downloads the application program to the client, it is checked whether or not the client has an execution environment of the application program to be downloaded. The application program is downloaded to the client according to the inspection result.

【0008】請求項9に記載のデータ処理装置は、クラ
イアントにアプリケーションプログラムをダウンロード
するとき、クライアントが、ダウンロードするアプリケ
ーションプログラムの実行環境を有するか否かを検査す
る検査手段と、検査手段の検査結果に対応してアプリケ
ーションプログラムをクライアントにダウンロードする
ダウンロード手段とを備えることを特徴とする。
According to a ninth aspect of the present invention, when the application program is downloaded to the client, the data processing apparatus has an inspection means for inspecting whether the client has an execution environment of the application program to be downloaded, and an inspection result of the inspection means. And downloading means for downloading the application program to the client.

【0009】請求項10に記載のデータ処理装置は、サ
ーバからアプリケーションプログラムをダウンロードす
るとき、ダウンロードするアプリケーションプログラム
の実行環境に関する告知を行う告知手段と、告知手段の
告知に対応してサーバからアプリケーションプログラム
をダウンロードするダウンロード手段とを備えることを
特徴とする。
According to a tenth aspect of the present invention, when a data processing apparatus downloads an application program from a server, a notification means for giving a notification about an execution environment of the application program to be downloaded, and an application program from the server corresponding to the notification of the notification means. And a download means for downloading.

【0010】請求項11に記載のデータ処理装置は、中
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の実行手段と、中間コードを動的に
コンパイルし、バイナリコードを生成するバイナリコー
ド生成手段と、バイナリコードおよびシステムオブジェ
クトを実行する第2の実行手段とを備えることを特徴と
する。
The data processing apparatus according to claim 11 interprets and executes the application program converted into the intermediate code, and a first execution means and a binary for dynamically compiling the intermediate code to generate a binary code. It is characterized by comprising code generation means and second execution means for executing binary code and system objects.

【0011】請求項15に記載のデータ処理方法は、中
間コードに変換されたアプリケーションプログラムを解
釈し、実行する第1の方法と、中間コードを動的にコン
パイルし、生成されたバイナリコードを実行する第2の
方法とにより、アプリケーションプログラムを実行する
ことを特徴とする。
A data processing method according to a fifteenth aspect is a first method for interpreting and executing an application program converted into intermediate code, and a method for dynamically compiling the intermediate code and executing the generated binary code. The second method is to execute the application program.

【0012】請求項1に記載のデータ処理方法において
は、クライアントにアプリケーションプログラムをダウ
ンロードするとき、クライアントが、ダウンロードする
アプリケーションプログラムの実行環境を有するか否か
をクライアントとサーバ間で検査し、その検査結果に対
応してアプリケーションプログラムをクライアントにダ
ウンロードする。
In the data processing method according to the first aspect, when the application program is downloaded to the client, it is inspected between the client and the server whether or not the client has an execution environment of the application program to be downloaded, and the inspection is performed. Download the application program to the client according to the result.

【0013】請求項9に記載のデータ処理装置において
は、検査手段が、クライアントにアプリケーションプロ
グラムをダウンロードするとき、クライアントが、ダウ
ンロードするアプリケーションプログラムの実行環境を
有するか否かを検査し、ダウンロード手段が、検査手段
の検査結果に対応してアプリケーションプログラムをク
ライアントにダウンロードする。
In the data processing device according to the ninth aspect, when the checking means downloads the application program to the client, the checking means checks whether or not the client has an execution environment of the application program to be downloaded, and the downloading means , The application program is downloaded to the client according to the inspection result of the inspection means.

【0014】請求項10に記載のデータ処理装置におい
ては、告知手段が、サーバからアプリケーションプログ
ラムをダウンロードするとき、ダウンロードするアプリ
ケーションプログラムの実行環境に関する告知を行い、
ダウンロード手段が、告知手段の告知に対応してサーバ
からアプリケーションプログラムをダウンロードする。
In the data processing device according to the tenth aspect, when the notifying means downloads the application program from the server, the notifying means notifies the execution environment of the application program to be downloaded,
The download means downloads the application program from the server in response to the notification of the notification means.

【0015】請求項11に記載のデータ処理装置におい
ては、第1の実行手段が、中間コードに変換されたプロ
グラムを解釈し、実行し、バイナリコード生成手段が、
中間コードを動的にコンパイルし、バイナリコードを生
成し、第2の実行手段が、バイナリコードを実行する。
例えば、動的コンパイルが困難な場合、中間コードを逐
次解釈し、実行することができる。
In the data processing device according to the eleventh aspect, the first executing means interprets and executes the program converted into the intermediate code, and the binary code generating means,
The intermediate code is dynamically compiled to generate a binary code, and the second execution means executes the binary code.
For example, when dynamic compilation is difficult, the intermediate code can be sequentially interpreted and executed.

【0016】請求項15に記載のデータ処理方法におい
ては、中間コードに変換されたプログラムを解釈し、実
行する第1の方法と、中間コードを動的にコンパイル
し、生成されたバイナリコードを実行する第2の方法と
により、アプリケーションプログラムを実行する。例え
ば、動的コンパイルが困難な場合、中間コードを逐次解
釈し、実行することができる。
According to a fifteenth aspect of the present invention, in the data processing method, a first method of interpreting and executing a program converted into intermediate code and a method of dynamically compiling the intermediate code and executing the generated binary code are executed. The second method is to execute the application program. For example, when dynamic compilation is difficult, the intermediate code can be sequentially interpreted and executed.

【0017】[0017]

【発明の実施の形態】本発明のデータ処理方法を適用す
るシステム構成例を図1に示す。システムはサーバ1
(データ処理装置)、クライアント2(データ処理装
置)、ネットワーク3から構成されている。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 shows an example of system configuration to which the data processing method of the present invention is applied. System is server 1
(Data processing device), client 2 (data processing device), and network 3.

【0018】すなわち、この実施例においては、サーバ
1は2つのアプリケーションプログラムを有し、一方の
アプリケーションプログラム11−1は、それを実行す
る環境を規定する実行環境12−1と、アプリケーショ
ンプログラム11−1と実行環境12−1との間のイン
タフェースを構成するアプリケーションプログラムイン
タフェース(API)13−1を有している。
That is, in this embodiment, the server 1 has two application programs, and one application program 11-1 defines an execution environment 12-1 and an application program 11-. 1 has an application program interface (API) 13-1 that constitutes an interface between it and the execution environment 12-1.

【0019】アプリケーションプログラム11−1は、
複数のオブジェクト14−1により構成され、また、実
行環境12−1も、複数のオブジェクト15−1により
構成されている。
The application program 11-1 is
It is composed of a plurality of objects 14-1, and the execution environment 12-1 is also composed of a plurality of objects 15-1.

【0020】同様に、アプリケーションプログラム11
−2は、その環境を規定する実行環境12−2と、アプ
リケーションプログラム11−2と実行環境12−2と
の間のインタフェースとして機能するAPI13−2を
有している。
Similarly, the application program 11
-2 has an execution environment 12-2 that defines the environment and an API 13-2 that functions as an interface between the application program 11-2 and the execution environment 12-2.

【0021】このアプリケーションプログラム11−2
も、複数のオブジェクト14−2により構成され、ま
た、実行環境12−2も複数のオブジェクト15−2に
より構成されている。
This application program 11-2
Also includes a plurality of objects 14-2, and the execution environment 12-2 also includes a plurality of objects 15-2.

【0022】同様に、クライアント2も2つのアプリケ
ーションプログラムを有し、一方のアプリケーションプ
ログラム21−1は、その環境を規定する実行環境22
−1と、アプリケーションプログラム21−1と実行環
境22−1との間のインタフェースであるAPI23−
1を有している。アプリケーションプログラム21−1
と実行環境22−1は、それぞれ複数のオブジェクト2
4−1と25−1により構成されている。
Similarly, the client 2 also has two application programs, and one application program 21-1 defines an execution environment 22 that defines the environment.
-1, and an API 23 that is an interface between the application program 21-1 and the execution environment 22-1
One. Application program 21-1
And the execution environment 22-1 each include a plurality of objects 2
It is composed of 4-1 and 25-1.

【0023】同様に、アプリケーションプログラム21
−2も、その環境を規定する実行環境22−2とAPI
23−2とを有し、アプリケーションプログラム21−
2と実行環境22−2は、それぞれ複数のオブジェクト
24−2と25−2により構成されている。
Similarly, the application program 21
-2 also defines the execution environment 22-2 and the API that define the environment.
23-2 and the application program 21-
2 and the execution environment 22-2 are composed of a plurality of objects 24-2 and 25-2, respectively.

【0024】ここで、各オブジェクトはすべて、他のオ
ブジェクトと並行して処理を実行する並行オブジェクト
として定義されている。1つのAPIの集合は1つの実
行環境によって与えられるので、サーバ1、クライアン
ト2中には、複数のAPIが存在することになる。
Here, each object is defined as a parallel object that executes processing in parallel with other objects. Since a set of one API is given by one execution environment, a plurality of APIs exist in the server 1 and the client 2.

【0025】図1に示すように、また図2に拡大して示
すように、アプリケーションプログラム11を複数のオ
ブジェクト14の集まりで構成する。また、オブジェク
ト14を並行オブジェクトとして構成することにより、
アプリケーションプログラム11は並行処理されること
になり、実行速度の向上に貢献する。また、オブジェク
ト14は置き換えの単位でもあるので、動作にバグのあ
るオブジェクト、性能上問題のあるオブジェクトなど
を、誤りのないオブジェクトで置き換えることによっ
て、アプリケーションプログラム11全体を作り替える
ことなく、問題点を解決できる。さらに、オブジェクト
14を部品とし、既存のアプリケーションプログラムの
部品としてのオブジェクトを組み合わせることによっ
て、簡単に新しいアプリケーションプログラムを作るこ
とができる。
As shown in FIG. 1 and enlarged in FIG. 2, the application program 11 is composed of a group of a plurality of objects 14. Also, by configuring object 14 as a parallel object,
The application program 11 is processed in parallel, which contributes to improvement in execution speed. Further, since the object 14 is also a unit of replacement, by replacing an object having a bug in operation, an object having a performance problem, or the like with an error-free object, the problem can be solved without recreating the entire application program 11. it can. Further, a new application program can be easily created by using the object 14 as a component and combining objects as components of an existing application program.

【0026】ここで、アプリケーションプログラムと
は、1つのサービス単位である。例えば、サーバ1から
の映像データを単に表示しているアプリケーションプロ
グラム、VCR機能を用いて映像データを検索している
アプリケーションプログラム、メニューによってサービ
スを選択しているアプリケーションプログラム、ホーム
ショッピングのアプリケーションプログラム、ホームシ
ョッピングと連結した家計簿アプリケーションプログラ
ム、税金計算アプリケーションプログラム等である。
Here, the application program is one service unit. For example, an application program that simply displays video data from the server 1, an application program that searches for video data using the VCR function, an application program that selects a service from a menu, an application program for home shopping, a home It is a household account book application program connected to shopping, a tax calculation application program, and the like.

【0027】アプリケーションプログラム間でオブジェ
クトを共有することによって、操作性に共通点を持たせ
ることができる。例えば、家計簿でデータを入力してい
るエディタと、ホームショッピングでのデータ入力エデ
ィタを共通化することができる。
By sharing the object between the application programs, the operability can be made common. For example, the editor for inputting data in the household account book and the data input editor for home shopping can be shared.

【0028】次に並行オブジェクト(concurre
nt object)について説明する。並行オブジェ
クトの構成を図3に示す。並行オブジェクトであるオブ
ジェクト14は、外部に公開されたメソッドエントリの
テーブル14A、メソッドの本体14B、オブジェクト
の状態を保持するメモリ領域14C、メソッドを実行す
る単一のスレッド14Dを有している。並行オブジェク
トには1つの実行コンテキスト(スレッドと呼んでも良
い)のみが存在する。従って並行オブジェクトは、1つ
のメッセージを受信して、その処理中には、新たに到着
したメッセージの処理は、現在の実行が終了するまで行
わない。
Next, a parallel object (concurre
nt object) will be described. The structure of a parallel object is shown in FIG. The object 14, which is a parallel object, has a table 14A of method entries exposed to the outside, a body 14B of the method, a memory area 14C for holding the state of the object, and a single thread 14D for executing the method. There is only one execution context (which may be called a thread) in a concurrent object. Therefore, the parallel object receives one message and, during its processing, does not process the newly arrived message until the current execution is finished.

【0029】このように、オブジェクト内にスレッドを
1個だけ配置するようにすると、次の利点が得られる。
By arranging only one thread in the object in this way, the following advantages are obtained.

【0030】(1)複数のアクティビティ間の同期を気
にする必要がない。すなわち、共有データが存在する場
合に、セマフォア等の同期のための命令を用いて、共有
データに対するアクセスを順序付けるといったことを行
う必要がなくなる。換言すれば、オブジェクトへのメッ
セージ送信が、その順序付けを含んでいることになる。
(1) There is no need to worry about synchronization between a plurality of activities. In other words, when shared data exists, it is not necessary to use a semaphore or other instruction for synchronization to order access to the shared data. In other words, sending a message to an object will include its ordering.

【0031】(2)そのため、同期の取り方のミスによ
るプログラム誤りが生じなくなると同時に、そのオブジ
ェクトの再利用可能性が高まる。
(2) Therefore, a program error due to an error in synchronization is prevented, and at the same time, the reusability of the object is increased.

【0032】(3)例えばデバイスドライバを本方式で
作成することによって、多くの場合に生じる、同期誤り
を防ぐことができる。
(3) For example, by creating a device driver by this method, it is possible to prevent a synchronization error that often occurs.

【0033】(4)また、デバイスドライバの置き換え
による同期誤りを防ぐことができるので、安全にデバイ
スドライバを置き換えることができる。
(4) Further, since it is possible to prevent the synchronization error due to the replacement of the device driver, the device driver can be safely replaced.

【0034】(5)デバイスドライバの、実際にハード
ウェアを制御する部分以外の部分を、OSと独立に作成
することができる。これによって、従来から開発のかな
りの時間を占めていたデバイスドライバを、共通に開発
することが可能になるので、開発期間の短縮につなが
る。
(5) The part of the device driver other than the part that actually controls the hardware can be created independently of the OS. As a result, it becomes possible to commonly develop device drivers, which have conventionally taken a considerable amount of time for development, which leads to a reduction in development period.

【0035】(6)オブジェクト間の実行制御に関する
記述をアプリケーションプログラムの記述から除くこと
ができる。例えば、マルチスレッドを用いた手法では
(複数のスレッドを用いる場合には)、スレッドの実行
制御をアプリケーションプログラム中にプログラムする
必要があるために、スレッドのプログラミング環境が変
更になると、アプリケーションプログラムを書き換える
必要がある。しかしながら、スレッドが1個の場合に
は、アプリケーションプログラムにこの部分を記述する
必要がないので、実行制御方法が変わってもアプリケー
ションプログラムを書き直す必要がない。並行オブジェ
クトのその実行環境への最適な実行制御方法は、システ
ムが、後述するオブジェクトの動的拡張の原理を用いて
提供する。
(6) The description relating to execution control between objects can be excluded from the description of the application program. For example, in the method using multi-thread (when multiple threads are used), the execution control of the thread needs to be programmed in the application program, and therefore the application program is rewritten when the programming environment of the thread is changed. There is a need. However, when the number of threads is one, it is not necessary to describe this part in the application program, and therefore it is not necessary to rewrite the application program even if the execution control method changes. An optimal execution control method for a concurrent object in its execution environment is provided by the system using the principle of dynamic extension of an object, which will be described later.

【0036】(7)従って、アプリケーションプログラ
ムを記述する場合には、並列処理を考える必要がない。
並行オブジェクトが並列処理の単位であるので、並行オ
ブジェクトをプログラムしていけば、後はシステムが自
動的にそのハードウェアに最適な実行制御を行って並列
処理が行われる。従来の手法では、いくつプロセスを生
成するか、いくつスレッドを生成するか、といったこと
をプログラミング時に指定しなければならず、この指定
は、ハードウェアの性能を考慮しないと、そのアプリケ
ーションプログラムは特定のハードウェア専用のものに
なってしまうが、本方式によれば、そのようなことはな
い。
(7) Therefore, when writing an application program, it is not necessary to consider parallel processing.
Since a parallel object is a unit of parallel processing, if the parallel object is programmed, the system will automatically perform the optimum execution control for the hardware and the parallel processing will be performed. In the conventional method, the number of processes to be created and the number of threads to be created must be specified at the time of programming, and if this specification does not consider the performance of the hardware, the application program can It will be dedicated to hardware, but according to this method, there is no such thing.

【0037】本システムにおいては、オブジェクトは必
要に応じてダウンロードされる。複数ベンダのクライア
ント2に対してサーバ1からオブジェクトをダウンロー
ドする場合のシステム例を図4に示す。サーバ1上に
は、それぞれのベンダ用のクライアントAPI13(1
3−1,13−2)が、実行環境12(12−1,12
−2)によって実現されている。
In this system, objects are downloaded as needed. FIG. 4 shows a system example in the case of downloading an object from the server 1 to the clients 2 of a plurality of vendors. On the server 1, client APIs 13 (1
3-1, 13-2) is the execution environment 12 (12-1, 12)
-2) is realized.

【0038】オブジェクトをクライアント2(2−1,
2−2)にダウンロードするとき、クライアント2上
に、サーバ1上の実行環境12と同じ実行環境22(2
2−1,22−2)が存在するか否かを調べ、存在する
場合には、オブジェクトをダウンロードする。存在しな
い場合には、クライアント2上にサーバ1上の実行環境
と同一の実行環境を構築した後、ダウンロードする。
The object is sent to the client 2 (2-1,
2-2), the same execution environment 22 (2
2-1 and 22-2) are present, and if they are present, the object is downloaded. If it does not exist, the same execution environment as the execution environment on the server 1 is constructed on the client 2 and then downloaded.

【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としてダウンロードさせ
る。
For example, in FIG. 4, the object 14-1 of the application program 11-1 of the server 1
Is downloaded as the object 24-1 of the application program 21-1 of the client 2-1, it corresponds to the execution environment 22-1 of the client 2-1 and the object 15-1A of the execution environment 12-1 of the server 1. When the object 25-1A is necessary, for example, the object 15-1B (inspection means) of the execution environment 12-1 is the object 25-1 of the execution environment 22-1.
Feature structure (described later) in B (notification means)
To inquire. In response to the answer, the object 15-1C (download means) of the execution environment 12-1 and the object 25-1C (download means) of the execution environment 22-1 are the objects 15-1A of the execution environment 12-1. 15-1B and 15-1B are downloaded as objects 25-1A and 25-1B of the execution environment 22-1.

【0040】従来の手法では、ダウンロードするオブジ
ェクトは、クライアントのAPIに合わせて作成する必
要があった。例えば、クライアントがUNIXシステム
の場合には、サーバ上では同じUNIXシステムを用い
るか、あるいは何らかのクロス開発環境を構築してオブ
ジェクトを作成する必要がある。もし、サーバとクライ
アントが同じ実行環境を備えなければいけない場合に
は、クライアント装置は一般に高価な計算資源を備える
必要がある。例えば、専用の実行環境を備える場合と比
べて、より多くのメモリを備える必要がある。また、十
分な実行速度を保証するために、高速のCPU(Centra
l Processing Unit)を備える必要がある。これは、装
置のコスト増につながる。
In the conventional method, the object to be downloaded needs to be created in accordance with the API of the client. For example, when the client is a UNIX system, it is necessary to use the same UNIX system on the server or build some cross development environment to create an object. If the server and client must have the same execution environment, the client device generally needs to have expensive computational resources. For example, it is necessary to provide more memory as compared with the case where a dedicated execution environment is provided. In addition, in order to guarantee sufficient execution speed, a high-speed CPU (Centra
l Processing Unit). This leads to an increase in the cost of the device.

【0041】これに対して、本システムでは、アプリケ
ーションのダウンロードと同時に、その実行環境をもダ
ウンロードすることで、この問題を解決する。すなわ
ち、クライアント2で現在必要とする実行環境22のみ
をクライアント2に構築することによって、不必要な資
源をクライアント2に用意しなくてもすむようになる。
例えば、クライアント2が3Dのグラフィックスを必要
としない場合には、そのライブラリは必要なくなる。
On the other hand, this system solves this problem by downloading the application as well as its execution environment. That is, by constructing only the execution environment 22 currently required by the client 2 in the client 2, it becomes unnecessary to prepare unnecessary resources in the client 2.
For example, if client 2 does not need 3D graphics, its library is not needed.

【0042】また、クライアント2がVOD(Vide
o On Demand)で映画を見ている場合には、
ユーザとのインタラクションのためのサービス(映画を
見るときは不要となるサービス)をクライアントから一
時削除することによって、その分の計算資源を他の仕事
に割り振ることができる。例えば、その資源を、サーバ
1からの映像データのプリフェッチ用のバッファに使う
ことができる。インタラクションのためのサービスは、
それが必要になった時点でサーバ1からダウンロードさ
れる。
Further, the client 2 uses the VOD (Video)
o On Demand)
By temporarily deleting a service for interacting with the user (a service that is unnecessary when watching a movie) from the client, the corresponding computing resource can be allocated to other work. For example, the resource can be used for a buffer for prefetching video data from the server 1. The services for interaction are
When it becomes necessary, it is downloaded from the server 1.

【0043】本システムでダウンロードされるオブジェ
クトとしては次のものが考えられる。
The following objects can be considered as objects downloaded by this system.

【0044】(1)すべてのアプリケーションプログラ
(1) All application programs

【0045】(2)クライアントが備えるハードウェア
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
(2) A device driver group (for example, M
(PEG driver, ATM driver, image control driver, etc.)

【0046】(3)アプリケーションプログラムに対し
てシステムサービスを提供するオブジェクト群(例え
ば、VCRコマンド管理、ストリーム管理、実時間スケ
ジューラ、メモリ管理、ウィンドウ管理、ダウンロード
制御、通信プロトコル管理、実行管理等)
(3) Objects that provide system services to application programs (for example, VCR command management, stream management, real-time scheduler, memory management, window management, download control, communication protocol management, execution management, etc.)

【0047】これらを組み合わせて、アプリケーション
プログラムに対して最適な実行環境をクライアント上に
構築する。
By combining these, an optimum execution environment for the application program is constructed on the client.

【0048】サーバ1は、映像データやアプリケーショ
ンプログラムを送出する装置であったり、クライアント
2にネットワーク3を通して情報を送出する装置であ
る。一方クライアント2は、サーバ1からの情報を処理
する装置であり、常にネットワーク3と接続されている
必要はない。実行環境はアプリケーションプログラム毎
に与えることができるので、アプリケーションプログラ
ム毎に最適な実行環境を用意することができる。
The server 1 is a device for transmitting video data and application programs, and a device for transmitting information to the client 2 through the network 3. On the other hand, the client 2 is a device that processes information from the server 1, and does not need to be always connected to the network 3. Since the execution environment can be provided for each application program, an optimum execution environment can be prepared for each application program.

【0049】従来の手法では、システム構築時にアプリ
ケーションの特性をあらかじめ見積もっておく必要があ
った。例えば、アプリケーションプログラムが映像デー
タを扱う必要があるときには、そのためのシステムサー
ビス、例えば、実時間スケジューリングや映像データを
扱うためのVCRのようなユーザインタフェースを備え
ている必要がある。また、アプリケーションが3Dグラ
フィックスを用いているならば、そのためのライブラリ
を備えている必要がある。そのため、システムは肥大に
なる傾向があった。UNIXやWindows(商標)
がこの典型例であり、バージョンがあがるごとにシステ
ムが必要とするメモリ量は多くなっていった。本システ
ムでは、アプリケーションの実行のために必要最小限の
機能のみを備えていればよく、従来システムのこの問題
点を解決する。
In the conventional method, it was necessary to estimate the characteristics of the application in advance when constructing the system. For example, when an application program needs to handle video data, it must have a system service therefor, for example, a user interface such as a VCR for handling real-time scheduling or video data. Also, if the application uses 3D graphics, it is necessary to have a library for it. Therefore, the system tended to be bloated. UNIX and Windows (trademark)
This is a typical example, and the amount of memory required by the system increased with each version. The present system solves this problem of the conventional system by providing only the minimum necessary functions for executing the application.

【0050】アプリケーションプログラム11を複数の
オブジェクトの集まりとして構成することにより、ま
た、そのオブジェクトを並行オブジェクトとして実装す
ることにより、オブジェクト単位で並行実行が可能にな
り、アプリケーションプログラムの実行と同時にオブジ
ェクトをダウンロードすることができる。この時、図5
に示すように、アプリケーションプログラムの実行に必
要なオブジェクトをインクリメンタルにダウンロードす
ることにより、ユーザからは、単一のアプリケーション
プログラムのロードにかかる時間を隠すことができる。
By configuring the application program 11 as a group of a plurality of objects, and implementing the object as a parallel object, parallel execution can be performed in object units, and the objects are downloaded at the same time as the execution of the application program. can do. At this time,
By incrementally downloading the objects required to execute the application program, as shown in, it is possible to hide the time required to load a single application program from the user.

【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として先にダウンロードする。
For example, as shown in FIG. 5, the object 14-1 of the application program 11 of the server 1
-1 to 14-1-11 need to be downloaded as the objects 24-1-1 to 24-1-11 of the application program 21 of the client 2, instead of randomly downloading each object, the application program In executing step 21, the first required objects 14-1-1 to 14-1-3 are replaced with objects 24-1-1 to 24--
Download as 1-3 first.

【0052】アプリケーションプログラム21は、さし
あたって、この3つのオブジェクトが存在すれば、起動
可能であるため、その処理を開始する。そして、その処
理が実行されている間に、残りのオブジェクト14−1
−4乃至14−1−11をアプリケーションプログラム
21のオブジェクト24−1−4乃至24−1−11と
して、第2乃至第4のダウンロードで順次ダウンロード
する。この第2乃至第4のダウンロードにおいても、処
理上、先に必要となるオブジェクトから順番にダウンロ
ードする。
For the time being, the application program 21 can be activated if these three objects exist, and therefore starts its processing. Then, while the processing is being executed, the remaining objects 14-1
-4 to 14-1-11 are sequentially downloaded in the second to fourth downloads as the objects 24-1-4 to 24-1-11 of the application program 21. Also in the second to fourth downloads, the objects that are required first in processing are downloaded in order.

【0053】ユーザは、アプリケーションプログラム2
1がオブジェクト24−1−1乃至24−1−3がダウ
ンロードされ、その処理が開始された時点において、既
にアプリケーションプログラム21の処理が開始されて
いるため、あたかもすべてのオブジェクトのダウンロー
ドが完了したものと認識することができる。すなわち、
ユーザは、11個のオブジェクトをダウンロードするの
に必要な時間より短い、3個のオブジェクトをダウンロ
ードするのに必要な時間だけを意識することになる。換
言すれば、ユーザに対して、8個のオブジェクトをダウ
ンロードするための時間を実質的に隠す(意識させない
ようにする)ことができる。
The user uses the application program 2
1 objects 24-1-1 to 24-1-3 have been downloaded, and the processing of the application program 21 has already started at the time the processing is started, so that it is as if all the objects have been downloaded. Can be recognized. That is,
The user will only be aware of the time required to download three objects, which is less than the time required to download eleven objects. In other words, the time for downloading the eight objects can be substantially hidden (not made conscious) from the user.

【0054】このことは、図4を参照して説明した(ま
た、図10を参照して後述する)実行環境22の構築を
クライアント2上に行う場合にも当てはまる。この場合
は、実行環境22を構成するオブジェクトのうち、アプ
リケーションプログラムの実行に必要な部分のみのオブ
ジェクトを先にダウンロードすることによって、実行環
境のすべてのオブジェクトをダウンロードする時間をユ
ーザから隠すことができる。この手法は、システムのブ
ートにも応用できる。
This also applies to the case where the execution environment 22 described with reference to FIG. 4 (also described later with reference to FIG. 10) is constructed on the client 2. In this case, among the objects constituting the execution environment 22, only the objects necessary for executing the application program are downloaded first, so that the time for downloading all the objects in the execution environment can be hidden from the user. . This technique can also be applied to boot the system.

【0055】ここで、インクリメンタルダウンロードと
は、アプリケーションプログラムや実行環境を一度にダ
ウンロードしないで、それを構成するオブジェクト単
位、あるいは、その一部を必要に応じてダウンロードす
ることを意味する。従来のパソコン通信におけるアプリ
ケーションプログラムのダウンロードの場合には、圧縮
されたアプリケーションプログラムを一気にダウンロー
ドするので、ダウンロードがすべて終わらないと、その
アプリケーションプログラムは利用することができな
い。また、例えば、今までのシステムのブートでは、シ
ステム全体を全部メモリに読み込んでから立ち上がる。
UNIXのディスクレスワークステーションの場合に
は、サーバからすべてのOSをメモリに読み込んでから
システムが起動するので、読み込みがすべて終了するま
で、システムを利用できない。しかしながらインクリメ
ンタルダウンロードすれば、そのようなことがなくな
る。
Here, the incremental download means that an application program or an execution environment is not downloaded at a time, but an object unit constituting the application program or a part thereof is downloaded as needed. In the case of downloading an application program in the conventional personal computer communication, the compressed application program is downloaded all at once, and the application program cannot be used unless the download is completed. Further, for example, in the conventional system boot, the entire system is read into the memory and then booted.
In the case of a UNIX diskless workstation, the system is started after all the OSs are read from the server into the memory, and therefore the system cannot be used until the reading is completed. However, with an incremental download, that is no longer the case.

【0056】この手法は、サーバ1とクライアント2と
してのSTB(Set Top Box)に応用して次
のような効果がある。まず、STBの電源を入れるとす
ぐに利用できるようになる。現在のパーソナルコンピュ
ータのように、システムが立ち上がるまでいらいらして
待つ必要が無くなる。STBは家庭用電気製品としての
性格が強いので、システムが立ち上がるまでユーザを待
たせるのは好ましくない。
This method has the following effects when applied to STB (Set Top Box) as the server 1 and the client 2. First, the STB is ready to use as soon as it is turned on. There is no need to irritate and wait for the system to start up, unlike the current personal computers. Since STB has a strong character as a household electric appliance, it is not preferable to make the user wait until the system starts up.

【0057】STBの電源が入れられると、STBは最
初に必要なオブジェクトをダウンロードして実行を始め
ようとする。ユーザの待ち時間は最初のこのオブジェク
トのダウンロード時間のみである。典型的なオブジェク
トのダウンロード時間は数ミリ秒から数十ミリ秒である
ので、適当なユーザインタフェースを備えることによ
り、この時間は十分ユーザにとって無視できる時間とな
る。以降は、システムの立ち上げプロセスの進行に従っ
て、必要なオブジェクトがシステムの立ち上げプロセス
と並行にダウンロードされる。
When the STB is powered on, it first tries to download the required objects and start executing. The user wait time is only the initial download time of this object. Since the download time of a typical object is a few milliseconds to tens of milliseconds, by providing an appropriate user interface, this time is sufficiently negligible to the user. After that, the necessary objects are downloaded in parallel with the system startup process as the system startup process progresses.

【0058】また、STBは、そのコストの観点から、
サーバのような豊富な計算資源が用意されていないの
で、複数のアプリケーションを同時に実行する場合にも
制約が生じる。例えば、ナビゲーションアプリケーショ
ンによって、VODサービスを選択して、1つの映画を
鑑賞することを考えた場合、映画の鑑賞が始まったら、
ナビゲーションアプリケーションが占有していた資源
(メモリ)を解放して、映画鑑賞アプリケーションのた
めに使うことができる。そして、再び、ナビゲーション
アプリケーションが必要になった時点で、その資源(メ
モリを管理するオブジェクト)をダウンロードする。
From the viewpoint of cost, the STB is
Since abundant computational resources such as servers are not prepared, there are restrictions when executing multiple applications at the same time. For example, when considering to watch one movie by selecting the VOD service by the navigation application, when the movie watching starts,
The resources (memory) occupied by the navigation application can be released and used for the movie watching application. Then, when the navigation application becomes necessary again, the resource (object managing memory) is downloaded.

【0059】ここで、「必要になった時点」とは、オブ
ジェクトに対して何らかのメッセージが送られた時点と
する。すなわち、一番最初にダウンロードしたオブジェ
クトが、別のオブジェクトにメッセージを送った時点
で、その受信オブジェクトをダウンロードする。オブジ
ェクトの依存、参照関係を利用することによって、次の
メッセージを送るオブジェクトをあらかじめダウンロー
ドしておくことができる。これを、アプリケーションの
実行と並行に行うことにより、メッセージ通信時におけ
るダウンロードによる遅延を少なくすることができる。
これにより、インクリメンタルダウンローディングの有
効性を高めることができる。
Here, the "time when it becomes necessary" is the time when some message is sent to the object. That is, when the first downloaded object sends a message to another object, the received object is downloaded. By using the object dependency and reference relationship, the object to send the next message can be downloaded in advance. By performing this in parallel with the execution of the application, it is possible to reduce the delay due to download during message communication.
Thereby, the effectiveness of incremental downloading can be improved.

【0060】また、実行環境12,22もオブジェクト
15,25の集合体であり、アプリケーションプログラ
ム11,21のオブジェクト14,24と同等に操作可
能であるので、アプリケーションプログラム11,21
に特化したダウンロードの順序を制御するメタオブジェ
クトをオブジェクト15,25の1つとして用意する
(例えば図4のオブジェクト25−1Cをメタオブジェ
クトとする)ことができる。これによって、特定のアプ
リケーションに適した、そのオブジェクトが利用するオ
ブジェクトのダウンロード順を指定することができ、イ
ンクリメンタルダウンローディングによるユーザの待ち
時間を最小にすることができる。
The execution environments 12 and 22 are also a collection of objects 15 and 25, and can be operated in the same manner as the objects 14 and 24 of the application programs 11 and 21.
It is possible to prepare a meta-object for controlling the download sequence specialized for the object as one of the objects 15 and 25 (for example, the object 25-1C in FIG. 4 is the meta-object). This makes it possible to specify the download order of the objects used by the object, which is suitable for a specific application, and minimize the user waiting time due to the incremental downloading.

【0061】サーバ1からクライアント2へのオブジェ
クトのダウンロードの機能、それに伴うオブジェクトの
実行環境の互換性の検査機能、および実行環境の構築機
能は、本システムを実現する上で重要なものであり、本
システムを構成するすべての装置(クライアント2)が
最低限有すべき機能とする。本明細書ではこの機能をメ
タ標準と呼ぶ。このメタ標準により、OS等の実行環境
のAPIは自由に拡張することができるようになり、最
小限の標準化とその拡張によって、今後のあらゆるタイ
プのアプリケーションに対応することができるようにな
る。
The function of downloading an object from the server 1 to the client 2, the function of checking the compatibility of the execution environment of the object with it, and the function of constructing the execution environment are important in realizing this system. This is a function that all devices (clients 2) configuring this system should have. In this specification, this function is called a meta standard. By this meta-standard, the API of the execution environment such as the OS can be freely expanded, and with the minimum standardization and its expansion, it becomes possible to support all types of applications in the future.

【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)が形成されている。
For example, in the system shown in FIG. 6, each server 1-1, 1-2 and each client 2-1 and 2-2 are running an OS having a unique API. That is, in the client 2-1, the API 23-1 (API # 1) for the application program 21-1 is configured corresponding to the execution environment 22-1. In the client 2-2, the execution environment 22-2
A for application program 21-2
PI23-2 (API # 3) is formed.

【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)とされている。
Therefore, these clients 2-1 and
An API corresponding to these APIs is prepared in advance in the server that downloads the program to 2-2. In this embodiment, in the server 1-1,
Application program 1 by the execution environment 12-1
An API 13-1 for 1-1 is formed, and this API 13-1 is an API in the client 2-1.
23-1 (API # 1) corresponding API (API #
1).

【0064】同様にサーバ1−2において、実行環境1
2−3によりアプリケーションプログラム11−3に対
応するAPI13−3(API#3)が形成されてお
り、このAPI13−3がクライアント2−2のAPI
23−2(API#3)に対応している。
Similarly, in the server 1-2, the execution environment 1
An API 13-3 (API # 3) corresponding to the application program 11-3 is formed by 2-3, and this API 13-3 is the API of the client 2-2.
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から、メタ標準プロトコルに
従って必要なオブジェクトを適宜ダウンロードさせるこ
とができる。
Therefore, in the servers 1-1 and 1-2 and the clients 2-1 and 2-2, objects 15-1A to 15-1 are provided as objects corresponding to the meta standard.
C, 15-3A to 15-3C, 25-1A to 25-
1C and 25-2A to 25-2C are provided. As a result, for the client 2-1 or 2-2,
The required objects can be appropriately downloaded from the server 1-1 or 1-2 according to the meta-standard protocol.

【0066】各クライアントにおけるOSを1つのOS
に標準化しようとするのがこれまでのこの分野における
傾向であった。しかしながら、このようなメタ標準を規
定し、サーバ側においてのみ、各クライアントのAPI
に対応するAPIを具備させることで、標準を決定する
必要がなくなる。
One OS for each client
It has been a tendency in this field to standardize to the past. However, such a meta-standard is defined, and only the server side has the API of each client.
By providing an API corresponding to, there is no need to determine a standard.

【0067】OSの標準を1つに規定していないことに
よって、アプリケーションを始め、システムサービスを
実現しているオブジェクトは、OSとは独立に構成する
ことが可能になる。すなわち、ある実行環境用に書かれ
たソフトウェアを、マイグレーションによって別の実行
環境用に自動的に再構成すればよいことになる。従来の
システムには、この機能は存在しない。例えば、UNI
X用に書かれたソフトウェアはWindows上では、
書き直さないと動作しない。アプリケーションレベルの
ソフトウェアで、この機能を実現するには、OS依存性
を吸収するソフトウェアを導入する必要がある。しか
し、デバイスドライバを始めとする、システムサービス
を実現するオブジェクトのOSの独立性は、本手法を用
いて可能になる。
By not defining one OS standard, it becomes possible to configure applications, including applications, that realize system services, independently of the OS. That is, software written for one execution environment may be automatically reconfigured for another execution environment by migration. This function does not exist in conventional systems. For example, UNI
Software written for X is on Windows,
It will not work unless rewritten. To realize this function with application-level software, it is necessary to introduce software that absorbs OS dependency. However, the independence of the OS of an object that realizes a system service, such as a device driver, becomes possible by using this method.

【0068】このように、オブジェクトをダウンロード
するようにすると、クライアント2のオブジェクトは、
図7に示すように、動的に変更することができる。すな
わち、既存のオブジェクトをクライアントから削除し
て、新しいオブジェクトをサーバからダウンロードす
る。
As described above, when the object is downloaded, the object of the client 2 becomes
As shown in FIG. 7, it can be changed dynamically. That is, the existing object is deleted from the client and the new object is downloaded from the server.

【0069】例えば、図7の実施例においては、クライ
アント2のアプリケーションプログラム21におけるオ
ブジェクト24Aが不要となったので、これを削除して
いる。そして新たに必要になったオブジェクト14Aを
サーバ1からクライアント2に対してダウンロードす
る。
For example, in the embodiment shown in FIG. 7, the object 24A in the application program 21 of the client 2 is no longer necessary, so it is deleted. Then, the newly required object 14A is downloaded from the server 1 to the client 2.

【0070】これにより、次のことが可能になる。This enables the following.

【0071】(1)ソフトウェアをアップデートするこ
とができる。例えば、ハードウェア制御ソフトにバグが
見つかった場合に、そのオブジェクトを削除して、新し
いオブジェクトに置き換える。家庭電化製品は、コンピ
ュータの専門家ではない、一般消費者が利用するものな
ので、一部のコンピュータに見られるようなインストー
ラによるソフトウェアのアップデートは適切ではない。
(1) Software can be updated. For example, when a bug is found in the hardware control software, the object is deleted and replaced with a new object. Home appliances are used by non-computer specialists, non-computer consumers, so updating software with an installer, such as found on some computers, is not appropriate.

【0072】(2)製品のサイクルを長くすることがで
きる。例えば、テレビジョン受像機は毎年のようにモデ
ルチェンジが繰り返されるが、一般消費者は、テレビジ
ョン受像機を毎年買い換るようなことはしない。しか
し、本システムにより、ソフトウェアの問題はすべて最
新の機能をユーザに提供できることになるので、ソフト
ウェアの機能拡張によるモデルチェンジをなくすことが
できる。これは、STBの場合にも当てはまる。
(2) The product cycle can be lengthened. For example, a television receiver undergoes a model change every year, but general consumers do not buy a new television receiver every year. However, with this system, all the software problems can be provided to the user with the latest functions, so that the model change due to the function expansion of the software can be eliminated. This is also the case for STB.

【0073】(3)ユーザインタフェースの好みの変化
に対応できる。例えば、初めてその装置を使い始めたユ
ーザには、親切なメニュー形式を提供するが、ユーザが
その装置の使い方を習熟するにつれて、直接所望の操作
ができるようなダイレクト操作のユーザインタフェース
に変更することができる。この場合も、両方の手順をク
ライアント側に持たせるのではなく、そのときのユーザ
の熟練度に応じたユーザインタフェースをクライアント
側に持たせることができる。これにより、限りあるクラ
イアントの資源を有効に利用することができる。
(3) It is possible to cope with changes in user interface preferences. For example, provide a friendly menu format to a user who has started using the device for the first time, but as the user becomes more familiar with how to use the device, change to a direct operation user interface that enables direct and desired operation. You can In this case as well, it is possible to provide the client side with a user interface according to the user's skill level at that time, instead of providing both procedures on the client side. This makes it possible to effectively use limited client resources.

【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にマイグレートされる。
If the object is downloaded, the object of the client 2 can be dynamically expanded as shown in FIG. In the embodiment shown in FIG. 8, in order to receive a new service for the object 24-1B of the application program 21-1 in the client 2, the execution environment 22-
2 has been generated. Then, necessary objects 25-1A and 25-1B from the execution environment 22-1 are
-2, so that objects 25-2A and 25-2B become objects (-2). Further necessary other objects 25-1C and 25-1D are also included in the execution environment 22-
Migrated to 2.

【0075】そしてアプリケーションプログラム21−
2には、アプリケーションプログラム21−1のオブジ
ェクト24−1Bが、オブジェクト24−2Bとなるよ
うにマイグレートされる。
The application program 21-
2, the object 24-1B of the application program 21-1 is migrated to become the object 24-2B.

【0076】このようにして、例えば、実時間スケジュ
ーリングの拡張が必要になった場合には、その為の新し
い実行環境をクライアントに生成し、必要なオブジェク
トをその新しい環境に移動する。オブジェクトには何も
変更を加える必要がなく、オブジェクトは実時間スケジ
ューリングのサービスを受けられるようになる。
In this way, for example, when extension of real-time scheduling becomes necessary, a new execution environment for that is created in the client, and necessary objects are moved to the new environment. The object does not need to be modified and the object can be serviced for real-time scheduling.

【0077】これにより次の効果が得られる。As a result, the following effects can be obtained.

【0078】(1)アプリケーションプログラムのオブ
ジェクトに変更を加えないで、新しい機能に対処するこ
とが可能になるので、アプリケーションプログラムの寿
命が長くなり、再利用可能性が増す。従来の手法では、
アプリケーションプログラムにその実行環境に対する依
存コードが含まれていたために、実行環境が変わること
は、アプリケーションプログラムの書き換えを意味して
いた。
(1) Since the new function can be dealt with without changing the object of the application program, the life of the application program is extended and the reusability is increased. With traditional methods,
The change of the execution environment means that the application program is rewritten because the application program includes the dependent code for the execution environment.

【0079】(2)組み込み機器のアプリケーションプ
ログラムの場合には、ユーザインタフェースをはじめと
する機器の高機能制御ソフトの部分は、モデルが大きく
変わらない限り再利用したい部分であり、また、既存の
コードを利用して機能拡張するのみで開発期間を短縮し
たい部分であるが、この部分に、実行環境への依存コー
ドが含まれていると、再利用のための作業は複雑にな
る。今までの手法は、この部分に対して何の戦略もなか
ったが、本方式によって、この作業は自動化、あるい
は、最小化できる。
(2) In the case of an application program for an embedded device, the high-performance control software part of the device, including the user interface, is the part that should be reused unless the model changes significantly, and the existing code It is a part that wants to shorten the development period only by extending the function by using, but if this part contains the code that depends on the execution environment, the work for reuse becomes complicated. The conventional method has no strategy for this part, but this method can automate or minimize this work.

【0080】本システムは、具体的には次のように応用
できる。
The present system can be specifically applied as follows.

【0081】(1)アプリケーションの信頼性が低い場
合に、メモリ保護機能をダウンロードすることによって
システム全体の停止を防ぐことができる。
(1) When the reliability of the application is low, it is possible to prevent the entire system from being stopped by downloading the memory protection function.

【0082】(2)STBのベンダ毎に、サービスプロ
バイダは提供サービスを変えることができる。例えば、
映画会社Aの映画を提供するサービスプロバイダは、そ
の映画を受信するB社のSTBとC社のSTBとで、画
像の質を変えることができる。
(2) The service provider can change the provided service for each STB vendor. For example,
The service provider that provides the movie of the movie company A can change the image quality between the STB of company B and the STB of company C that receive the movie.

【0083】(3)STBに送られてくるA/Vデータ
の圧縮方式やユーザの画質の好みに応じて、システムの
処理方式を変更する。例えば、MPEGデータの場合と
JPEGデータでは画質を調整するときの仕方が異なる
ので、システムの処理方式を変更する必要があるが、本
システムでは、データ形式に従って動的に処理方式を選
択できる。
(3) The processing method of the system is changed according to the compression method of the A / V data sent to the STB and the user's preference for image quality. For example, since the method of adjusting the image quality is different between MPEG data and JPEG data, it is necessary to change the processing method of the system, but in this system, the processing method can be dynamically selected according to the data format.

【0084】このように、システムのほとんどの機能は
サーバ1からダウンロードすることができるので、あら
かじめクライアント2に様々の機能を持たせる必要が無
く、最小限の機能を持たせればよい。図9に本システム
におけるクライアント2が有する最小限の機能を示す。
すなわち、クライアント2には、デバイスドライバのた
めの実行環境22−1、システムオブジェクトのための
実行環境22−2、実行環境の為の実行環境22−3
を、最低限形成する。
As described above, most of the functions of the system can be downloaded from the server 1. Therefore, it is not necessary to give the client 2 various functions in advance, and only the minimum functions are required. FIG. 9 shows the minimum functions of the client 2 in this system.
That is, the client 2 includes an execution environment 22-1 for a device driver, an execution environment 22-2 for a system object, and an execution environment 22-3 for an execution environment.
Is formed at a minimum.

【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からダウンロードされる。
A device driver that needs to exist in advance is an input drive that processes an input.
r, a timer driver that manages time, and screen driver drivers 24-1A, 24-1B, and 24-1C that control display, and a system object is an input hand that manages input.
ler, boot protocol that manages startup,
It is each object 24-2A, 24-2B, 24-2C of memory manager which manages memory.
Higher-performance device drivers and system objects are downloaded from the server 1.

【0086】図10は、サーバの送り出すアプリケーシ
ョンプログラム(ビデオ、ゲーム、ショッピング等)に
適したクライアント環境を動的に構成する実施例を表し
ている。図10では、ショッピングのアプリケーション
プログラム11−2をサーバ1からダウンロードするた
めに、ショッピング用の実行環境22−4がクライアン
ト2−2に構成されている。また、ショッピングアプリ
ケーションプログラムから映画アプリケーションプログ
ラムに、クライアント2−2がアプリケーションプログ
ラムを切り替えた場合には、映画アプリケーションプロ
グラム21−3の実行環境22−3がクライアント2−
2に構成され、サーバ1から映画アプリケーションプロ
グラム11−1がダウンロードされる。
FIG. 10 shows an embodiment in which a client environment suitable for an application program (video, game, shopping, etc.) sent by a server is dynamically constructed. In FIG. 10, in order to download the shopping application program 11-2 from the server 1, the shopping execution environment 22-4 is configured in the client 2-2. Further, when the client 2-2 switches the application program from the shopping application program to the movie application program, the execution environment 22-3 of the movie application program 21-3 is changed to the client 2-.
2, the movie application program 11-1 is downloaded from the server 1.

【0087】例えば、次のような処理が考えられる。For example, the following processing can be considered.

【0088】(1)ユーザが映画を選択しているとき この時には、所望の映画を選択することができるよう
に、ナビゲーションアプリケーション11−3が、例え
ばクライアント2−1の実行環境22−1にダウンロー
ドされ、それに対する必要な環境として、ウィンドウ管
理、ユーザからの入力管理等のオブジェクト15−3が
オブジェクト25−1としてダウンロードされる。
(1) When the user selects a movie At this time, the navigation application 11-3 downloads to the execution environment 22-1 of the client 2-1 so that a desired movie can be selected. As a necessary environment for the above, an object 15-3 such as window management and user input management is downloaded as an object 25-1.

【0089】(2)ユーザが映画を鑑賞しているとき この時には、サーバ1−1の実行処理12−1から、ビ
デオストリーム管理、データ先読みバッファ管理、VC
R機能等のオブジェクト15−1が、例えばクライアン
ト2−2の実行環境22−3にオブジェクト25−3と
してダウンロードされる。
(2) When the user is watching a movie At this time, from the execution process 12-1 of the server 1-1, the video stream management, data prefetch buffer management, VC
The object 15-1 such as the R function is downloaded as the object 25-3 into the execution environment 22-3 of the client 2-2, for example.

【0090】以上のように、クライアントの実行環境を
ダウンロードにより実現するために、本システムでは図
11に示すフィーチャストラクチャ(feature
structure)を導入する。オブジェクトがサー
バ1からクライアント2にダウンロードされる時、この
feature structureが検査されて、必
要な実行環境がダウンロード先に構成される。
As described above, in order to realize the execution environment of the client by downloading, in this system, the feature structure (feature) shown in FIG. 11 is used.
structure) is introduced. When the object is downloaded from the server 1 to the client 2, this feature structure is inspected and the necessary execution environment is configured in the download destination.

【0091】すなわち、サーバ1は、クライアント2と
の間において、第1のフェーズ(ネゴシエーションフェ
ーズ)で、サーバ1側のメタオブジェクト空間とクライ
アント2側のメタオブジェクト空間との間におけるオブ
ジェクトマイグレーションの可能性に関するネゴシエー
ションを行う。そして第2のフェーズ(移動フェーズ)
において、実際にオブジェクトの転送を行う。
That is, the server 1 has a possibility of object migration with the client 2 in the first phase (negotiation phase) between the meta-object space on the server 1 side and the meta-object space on the client 2 side. Negotiate about. And the second phase (movement phase)
At, the object is actually transferred.

【0092】オブジェクトマイグレーションはメタレベ
ルのプロセスであり、オブジェクトの内部情報と、必要
ならばそれに関連したオブジェクトによって使用中の計
算資源を転送するものである。オブジェクトの内部情報
は、ディスクリプタ(descriptor)と呼ばれ
るメタレベルオブジェクトによって表現されている。デ
ィスクリプタは、実際には、オブジェクトを管理してい
るメタオブジェクトの名前を保持している。一般的なデ
ィスクリプタは、オブジェクトのメモリセグメントを管
理しているメタオブジェクトの名前、2つ以上のオブジ
ェクトの実行制御をしているメタオブジェクト(スケジ
ューラ)の名前、オブジェクトの名前付けを管理してい
るメタオブジェクトの名前、等を保持している。
Object migration is a meta-level process that transfers internal information about an object and, if necessary, the computational resources used by the object associated with it. The internal information of an object is represented by a meta-level object called a descriptor. The descriptor actually holds the name of the meta-object that manages the object. A general descriptor is the name of the meta-object that manages the memory segment of the object, the name of the meta-object (scheduler) that controls the execution of two or more objects, and the meta that manages the naming of the object. Holds the name of the object, etc.

【0093】第1のフェーズ(ネゴシエーションフェー
ズ)においては、オブジェクトの移動の可能性が検査さ
れる。すなわち、メタオブジェクト空間によっては、オ
ブジェクトマイグレーションが望ましくない場合があ
る。例えば、デバイスドライバを管理しているメタオブ
ジェクト空間が、オブジェクト(デバイスドライバ)を
移動する場合には、クライアント2側にハードウエアデ
バイスが実際に存在していなければ、その移動を行って
も意味が無くなってしまう。また仮想記憶管理機構を利
用して、オブジェクトのメモリセグメントを管理してい
るメタオブジェクトも、移動先に仮想記憶管理機構が存
在しなければ、移動を行ったとしてもメモリセグメント
を管理することができない。そこで、マイグレーション
プロトコルにおいては、次のメソッドが用意されてい
る。
In the first phase (negotiation phase), the possibility of movement of the object is checked. That is, depending on the meta-object space, object migration may not be desirable. For example, when the meta-object space that manages the device driver moves an object (device driver), if the hardware device does not actually exist on the client 2 side, it does not make sense to move the object. It will disappear. A meta-object that manages a memory segment of an object using the virtual memory management mechanism cannot manage the memory segment even if it is moved unless the virtual memory management mechanism exists at the destination. . Therefore, the following methods are prepared in the migration protocol.

【0094】Feature* Descripto
r::CanSpeak(Feature* pFea
ture)
Feature * Descripto
r :: CanSpeak (Feature * pFea
true)

【0095】このメソッドは、クライアント2側のメタ
オブジェクト空間内のdescriptorに対して、
CanSpeakオペレーションを実行する。
This method is for the descriptor in the meta-object space on the client 2 side,
Perform a CanSpeak operation.

【0096】この時、フィーチャストラクチャが引数と
して渡され、結果としてクライアント2は、サーバ1に
対して自分自身(クライアント2)が受け入れ可能なフ
ィーチャストラクチャを返す。サーバ1側においては、
クライアント2側から返されたフィーチャストラクチャ
を検査することで、そのメタオブジェット空間の互換性
を知ることができる。
At this time, the feature structure is passed as an argument, and as a result, the client 2 returns to the server 1 a feature structure that it (client 2) can accept. On the server 1 side,
By inspecting the feature structure returned from the client 2 side, it is possible to know the compatibility of the meta object space.

【0097】互換性は、完全互換、半互換、および非互
換の3つのカテゴリに分類される。
Compatibility is classified into three categories: fully compatible, semi-compatible, and incompatible.

【0098】完全互換は、オブジェクトが移動後も完全
に実行を続けることができる場合を意味する。半互換
は、移動後のオブジェクトの実行には、ある制限が加え
られることを意味する。そして、非互換は、オブジェク
トは移動後には実行を続けることができないことを意味
する。
Fully compatible means that the object can continue to run completely after the move. Semi-compatible means that some restrictions are placed on the execution of objects after they have been moved. And incompatibility means that the object cannot continue execution after the move.

【0099】非互換の場合には、オブジェクトマイグレ
ーションは行われない。半互換の場合にはマイグレーシ
ョンを行うか、行わないかをユーザが判断する。実際に
は、例外がユーザに返されるので、例外処理ルーチンに
よって、マイグレーションの判断がなされる。完全互換
の場合、または半互換の場合であって、オブジェクトマ
イグレーションが行われるときには、先に返されたフィ
ーチャストラクチャの内容に従って、マイグレーション
が行われる。
In case of incompatibility, object migration is not performed. In the case of semi-compatibility, the user decides whether to migrate or not. In practice, an exception is returned to the user, so the exception handling routine makes the migration decision. In the case of complete compatibility or in the case of semi-compatibility, when object migration is performed, migration is performed according to the contents of the previously returned feature structure.

【0100】なお、ネゴシエーションフェーズに先だっ
て、次のオペレーションによって空のdescript
orがクライアント2側のメタオブジェクト空間に生成
される。
Prior to the negotiation phase, an empty description is created by the following operation.
or is generated in the meta-object space on the client 2 side.

【0101】 Descriptor::Descriptor()Descriptor :: Descriptor ()

【0102】先のCanSpeakメソッドは、このd
escriptorに対して送られる。この時、フィー
チャストラクチャの情報を元に必要なメタオブジェクト
の生成、参照の生成、必要情報の登録が行われる。
The previous CanSpeak method uses this d
Sent to the escriptor. At this time, required meta-objects are generated based on the feature structure information, references are generated, and necessary information is registered.

【0103】第2のフェーズにおけるメタレベルでのプ
ロセスは、転送オブジェクトに対応したメタオブジェク
トの移動、あるは転送になる。ここで、メタオブジェク
トの移動とは、そのメタオブジェクトがクライアント2
側のメタオブジェクト空間に入ること、すなわち、ディ
スクリプタ(descriptor)から参照されるよ
うになることを意味し、また、メタオブジェクトの転送
とは、クライアント2側のメタオブジェクト空間にある
メタオブジェクト(これはdescriptorから参
照されている)に対して、メタオブジェクト内のデータ
をメッセージとして送ることを意味する。
The process at the meta level in the second phase is the movement or transfer of the meta object corresponding to the transfer object. Here, the movement of the meta-object means that the meta-object is the client 2
Side meta-object space, that is, it becomes referred to from a descriptor, and the transfer of the meta-object means that the meta-object in the meta-object space on the client 2 side (this is (referenced by the descriptor), the data in the meta-object is sent as a message.

【0104】メタオブジェクトの移動および転送に関す
る実際のオペレーションが、ネゴシエーションフェーズ
によって得られたフィーチャストラクチャを利用して、
この第2のフェーズ(移動フェーズ)において実行され
る。
The actual operations for moving and transferring meta-objects make use of the feature structure obtained by the negotiation phase,
This second phase (movement phase) is executed.

【0105】移動フェーズにおける実際のメタオブジェ
クトの移動および転送は、次のメソッドによって起動さ
れる。
The actual movement and transfer of meta-objects in the move phase is triggered by the following methods.

【0106】Descriptor& Descrip
tor::operator=(Descriptor
& source)
Descriptor & Descript
tor :: operator = (Descriptor
& Source)

【0107】Descriptorクラスは抽象クラス
であり、メタオブジェクトの移動、転送に関する共通の
プロトコルを定義している。sourceで参照される
descriptorの内容が、このディスクリプタに
コピーされる。
The Descriptor class is an abstract class and defines a common protocol for moving and transferring meta objects. The contents of the descriptor referred to by the source are copied to this descriptor.

【0108】実際の手続きは、Descriptorク
ラスのサブクラスとして定義される。
The actual procedure is defined as a subclass of the Descriptor class.

【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で初期化し、必要なメ
モリ領域をコピーする。
The following methods are related to meta-object transfer. These protocols are mainly m
igrator (included in the meta-object space,
Used by the meta-object responsible for object migration).・ Canonical Context & Context
t :: asCanonical () Converts a machine-dependent Context structure to a machine-independent format. This protocol is based on the feature st
It is executed when the direct conversion of Context is impossible by the structure.・ Context & Context :: operat
or = (Context & source) Context & Context :: operat
or = (Canonical Context & sou
rce) current (referenced by this) context
Initialized with the Context referenced by ce.・ Canonical Segment & Segmen
t :: asCanonical () Converts a machine-dependent Segment structure into a machine-independent format. This protocol is based on the feature st
It is executed when the direct conversion of Context is impossible by the structure.・ Segment & Segment :: operat
or = (Segment & source) -Segment & Segment :: operat
or = (CanonicalSegment & sou
rce) current this (referenced) Segment by sou
Initialize with Segment referenced by rce and copy the required memory area.

【0110】図11は、フィーチャストラクチャの構造
を表している。同図に示すように、object de
scriptionとenvironmemt des
criptionのポインタが、エントリーに記述され
ている。
FIG. 11 shows the structure of the feature structure. As shown in the figure, the object de
description and environnem des des
The description pointer is described in the entry.

【0111】object descriptionの
ポインタで指示されているストラクチャには、obje
ct nameが記述され、さらに、environm
ent descriptionのポインタで指示され
ているストラクチャと同一のストラクチャのポインタが
記述されている。そしてさらに、このオブジェクトの資
源要求(resource requiremnent
of this opject)が記述されている。
The structure pointed to by the object description pointer has an object
ct name is described, and further, environm
A structure pointer that is the same as the structure pointed to by the ent description pointer is described. And further, the resource requirement of this object.
of this object) is described.

【0112】また、environment desc
riptionのポインタで指示されているストラクチ
ャには、environment nameが記述さ
れ、さらに、そのクライアントのハードウエアの資源情
報(resource information of
client hardware)、この実行環境の
資源要求(resource requirement
of this environment)、および
この実行環境を構成するメタオブジェクトのリスト(l
ist of metaobjects consti
tuting environment)が記述されて
いる。
Also, the environment desc
An environment name is described in the structure pointed by the pointer of the ripion, and further, resource information of the client hardware (resource information of).
client hardware), resource requirements of this execution environment
of this environment, and a list of meta-objects that make up this execution environment (l
ist of metaobjects consti
toning environment) is described.

【0113】フィーチャストラクチャの内容の具体例を
あげると、次のようになる。
Specific examples of the contents of the feature structure are as follows.

【0114】(1)オブジェクトに関する情報 実時間性 必要プロセッサ量(1) Information about object Real-time property Required processor amount

【0115】(2)メタオブジェクトに関する情報 ハードウェアメタオブジェクト *プロセッサの種類 *データ表現形式 セグメントメタオブジェクト *大きさ *拡大、縮小可能性 *管理方針 *レイアウト コンテキストメタオブジェクト *レジスタ情報 *一時変数量 *プロセッサ状態 メイラメタオブジェクト *メッセージキュー長 *未処理メッセージ数 *外部メイラの必要性 *メッセージの転送方式 外部メイラメタオブジェクト *メッセージキュー長 *未処理メッセージ数 *プロトコル スケジューラメタオブジェクト *オブジェクト状態 *スケジューリング方針 依存管理メタオブジェクト *保有する外部名数(2) Information on meta-object Hardware meta-object * Processor type * Data representation format Segment meta-object * Size * Possibility of expansion / reduction * Management policy * Layout context meta-object * Register information * Temporary variable amount * Processor status Mailer meta object * Message queue length * Number of unprocessed messages * Necessity of external mailer * Message transfer method External mailer meta object * Message queue length * Number of unprocessed messages * Protocol scheduler meta object * Object status * Scheduling policy Depends Managed meta-object * Number of external names owned

【0116】上述したように、各クライアントが異なる
OSを有するような場合、このフィーチャストラクチャ
から各クライアントのOSが判定され、サーバは、その
OSに対応するオブジェクトをダウンロードさせること
になる。
As described above, if each client has a different OS, the OS of each client is determined from this feature structure, and the server will download the object corresponding to that 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オブジェクト(システムオブジェ
クト)を呼び出すようになされている。
FIG. 12 shows an example of the configuration of the Apertos (trademark) system to which the data processing system of the present invention is applied. In this Apertos system, A
pertos Micro Virtual Mach
ine (MVM) 31a (first execution means) is Ape
rtos Micro Kernel (MK) 31b
(Second Execution Means) and constitutes the core 31 of the Apertos system. MVM that constitutes the nucleus 31
31a interprets and executes an intermediate code (I-code), which will be described later, and uses the function of the MK31b to execute the p
The personality object (system object) is called.

【0118】図12に示した核31以外の部分は、上述
した方法により、例えば、サーバ1よりダウンロードす
ることができる。
The parts other than the core 31 shown in FIG. 12 can be downloaded from the server 1, for example, by the method described above.

【0119】このシステムは、必要に応じてI−cod
eをnative code(バイナリコード、マシン
コード)に動的にコンパイルする。また、予めnati
vecodeにコンパイルされているオブジェクトを実
行するが、その場合、MK31bの機能によってPer
sonalityオブジェクト33(バイナリコード生
成手段)が呼び出され、アプリケーション(Appli
cations)35にサービスを提供する。
This system uses the I-cod as required.
Dynamically compile e into native code (binary code, machine code). In addition,
The object compiled in vecode is executed, but in that case, it is Per by the function of MK31b.
The sonality object 33 (binary code generation means) is called, and the application (Appli
services).

【0120】図12に示した核31を構成するMVM3
1aおよびMK31bは、その外側がデバイスドライバ
オブジェクト(Device drivers)32と
Personalityオブジェクト(Persona
lity component objects)33
によって取り囲まれており、さらに外側には、アプリケ
ーションプログラミングのためのクラスシステム(Cl
ass Libraries)34が用意されており、
さらにその外側にはアプリケーション35が用意されて
いる。
MVM3 constituting the nucleus 31 shown in FIG.
1a and MK31b have a device driver object (Device drivers) 32 and a personality object (Persona) outside them.
little component objects) 33
Surrounded by, and further outside, a class system for application programming (Cl
ass Libraries 34 are prepared,
Furthermore, an application 35 is prepared on the outside thereof.

【0121】Personalityオブジェクト33
の層により、Apertosシステムは様々なOS(オ
ペレーティングシステム)やVirtual Mach
ine(仮想計算機)を提供することができる。例え
ば、javaプログラムの実行は、javaプログラム
用のPersonalityオブジェクトによって、j
avaプログラムがコンパイルされて得られた中間コー
ドであるjava bytecodeが実行されること
により行われる。
Personality object 33
Depending on the layer, the Apertos system has various operating systems (OS) and Virtual Mach.
It is possible to provide ine (virtual computer). For example, the execution of the Java program is executed by the Personality object for the Java program by j
This is performed by executing the Java bytecode which is an intermediate code obtained by compiling the ava program.

【0122】Apertosシステムは、高度のpor
tabilityを実現するために、プログラムをI−
code(中間コード)にコンパイルし、オブジェクト
のメソッドを管理している。しかしながら、I−cod
eは、解釈実行(プログラムを解釈しながら実行するこ
と)を前提に設計されているのではなく、動的コンパイ
ラによってnative codeにコンパイルするよ
うに設計されている。しかし、様々な制約により、動的
コンパイルが困難である場合、MVM31aがI−co
deを解釈実行する。
The Apertos system is an advanced por
In order to implement the
It compiles to code (intermediate code) and manages object methods. However, I-cod
The e is not designed on the premise of interpretation execution (execution while interpreting a program), but is designed to be compiled into a native code by a dynamic compiler. However, due to various restrictions, when the dynamic compilation is difficult, the MVM 31a uses the I-co
Interpret and execute de.

【0123】しかしながら、ほとんどの場合、I−co
deは、native codeにコンパイルされ、シ
ステムを構成するCPUにより直接実行される。従っ
て、Virtual Machineによる実行に伴っ
て、実時間性が欠如したり、処理スピードが犠牲になる
ということはほとんどない。
However, in most cases, I-co
The de is compiled into a native code and directly executed by the CPU configuring the system. Therefore, there is almost no lack of real-time performance or sacrifice of processing speed due to execution by the Virtual Machine.

【0124】上記I−codeは、高度のInter−
Operabilityを実現するため、図22を参照
して後述するように、十分に抽象度の高い2つの命令セ
ット(OP_M,OP_R)から構成されており、その
セマンティクス(意味構造)は、MK31bのインタフ
ェースと強く関連づけられている。即ち、図12に示し
たApertosシステムの構造に強く影響を受けた命
令セットとされている。これにより、Apertosシ
ステムにおいては、native codeを前提とし
ていながら、高度のPortabilityとInte
r−Operabilityを実現することができる。
The above I-code is an advanced Inter-
In order to realize the Operationality, as will be described later with reference to FIG. 22, it is composed of two instruction sets (OP_M, OP_R) having a sufficiently high degree of abstraction, and its semantics (semantic structure) are the interface of the MK31b. It is strongly associated. That is, the instruction set is strongly influenced by the structure of the Apertos system shown in FIG. As a result, in the Apertos system, it is assumed that the native code is used, but the high portability and integrity
r-operability can be realized.

【0125】次に、MVM31aとMK31bの仕様に
ついて説明する。最初に、MVM31aが仮定している
データ構造体と、I−codeフォーマットを規定す
る。
Next, the specifications of the MVM 31a and MK 31b will be described. First, the data structure assumed by the MVM 31a and the I-code format are defined.

【0126】図13は、図12に示したMVM31aと
MK31bの論理構造を示している。基本的に両者の論
理構造は同一であり、active context4
1、message frame42、およびexec
ution engine43により構成されている
が、MVM31aは、I−codeによる実行をサポー
トし、MK31bはnative codeによる実行
をサポートしている。
FIG. 13 shows the logical structure of the MVM 31a and MK 31b shown in FIG. Basically, both logical structures are the same, and active context4
1, message frame 42, and exec
The MVM 31a supports the execution by the I-code, and the MK 31b supports the execution by the native code.

【0127】図13において、active cont
ext41は、現在実行中のContext(図14を
参照して後述する)を指しており、message f
rame42は、核31を構成するMVM31aおよび
MK31bに対するメッセージ本体を指している。
In FIG. 13, active cont
ext41 points to the currently executing Context (described later with reference to FIG. 14), and the message f
The frame 42 indicates the message body for the MVM 31a and MK 31b that compose the nucleus 31.

【0128】MK31bの場合、メッセージ本体の存在
する場所は実装方法に依存し、スタックフレームとして
メモリに割り当てられる場合もあるし、ヒープ(hea
p)に割り当てられる場合もある。また、いくつかのC
PUのレジスタが割り当てられる場合もある。一方、M
VM31aの場合、メッセージフレームは命令コードに
続くオペランドを指すことになる。実装によっては、こ
れら以外に内部レジスタ等を必要とするかもしれない
が、それらのレジスタは本仕様とは独立のものである。
In the case of MK31b, the location where the message body exists depends on the mounting method, and may be allocated to the memory as a stack frame, or the heap (hea).
p) in some cases. Also some C
PU registers may also be allocated. On the other hand, M
In the case of the VM 31a, the message frame will point to the operand following the instruction code. Depending on the implementation, other internal registers may be needed, but those registers are independent of this specification.

【0129】図13において、execution e
ngine43は、I−codeおよびnative
codeを実行する。また、MVM31aのexecu
tion engine43には、primitive
objects44が含まれており、これは、図18
を参照して後述するプリミティブオブジェクトを処理す
るコードである。
In FIG. 13, execution e
ngine43 is I-code and native
Execute code. Also, the execu of MVM31a
to the function engine43.
The objects 44 are included and are shown in FIG.
Is a code for processing a primitive object described later with reference to.

【0130】図14は、ContextとDescri
ptorの論理構造を示している。プログラムの1つの
実行状態を示すContext構造体51は、obje
ct、class、method、metaなどのフィ
ールドを有し、このうち、methodには、icod
eとminfoのフィールドがさらに設けられている。
このContext構造体51は、MVM31aの状態
を保持し、CPUのレジスタに相当し、メモリ管理やプ
ログラム間の通信方法などとは完全に独立している。
FIG. 14 shows Context and Descri.
The logical structure of ptor is shown. The Context structure 51 indicating one execution state of the program is an object
It has fields such as ct, class, method, and meta, of which, in the method, icon
The e and minfo fields are further provided.
The Context structure 51 holds the state of the MVM 31a, corresponds to the register of the CPU, and is completely independent of the memory management and the communication method between programs.

【0131】Context構造体51は、Conte
xtプリミティブオブジェクトであり、図16を参照し
て後述するように、その各フィールドは所定の情報にリ
ンクしている。また、Context構造体51は、核
31(MVM31aおよびMK31b)の実装に深く依
存しているが、図14においては、主に依存しない部分
を示している。
The Context structure 51 is the Context
It is an xt primitive object, and its fields are linked to predetermined information, as will be described later with reference to FIG. Further, the Context structure 51 is deeply dependent on the mounting of the nucleus 31 (MVM 31a and MK 31b), but FIG. 14 mainly shows a non-dependent part.

【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のアドレスをそれぞれ表してい
る。
The important field in this Context structure 51 is the meta field, Des
It points to the descriptor structure 52. Descri
The entries of the ptor structure 52 are #tag, cont.
ext and selector are three sets,
By this Descriptor structure 52, Per
The API (application programming interface) of the sonality object 33 is determined. #Tag is the API name, context and se
The address of each API is represented by "lector".

【0133】図15は、MVM31aの全体構造を示し
ている。基本的に、全ての必要な情報は、Contex
t構造体51からリンクを辿ることにより参照すること
ができるようになされている。即ち、Context構
造体51が、object61にリンクされ、このob
ject61は、object61に対応するクラスへ
のリンク(class pointer)とインスタン
ス領域(objectdependent fiel
d)より構成される。インスタンス領域にどのような情
報が格納されるか、あるいはそのレイアウトは、オブジ
ェクトの実装に依存する。
FIG. 15 shows the overall structure of the MVM 31a. Basically all the necessary information is Context
The t structure 51 can be referred to by following a link. That is, the Context structure 51 is linked to the object 61,
The object 61 is a link (class pointer) to the class corresponding to the object 61 and an instance area (object dependent field).
d). What information is stored in the instance area or its layout depends on the implementation of the object.

【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命令のオペランドは、この変数
テーブルエントリを介して目的オブジェクトを参照す
る。
The class 62 mainly holds a method. The class 62 is its name (class na
me), its implementation-dependent part (class depth)
end field), and I-method
Link table to structure 63 (method tab)
le). I-method structure 63
Is a Block primitive object and includes a header (Header), an I-code unit, and a variable table (Variable table). ma
gic # is a management number (ID) of the MVM 31a.
Basically, the operand of the I-code instruction refers to the target object via this variable table entry.

【0135】図15において、グレーの部分(Cont
ext51、I−method63)はMVM31aに
依存する部分であり、MVM31aがI−codeを解
釈実行する場合に必要とする構造体である。
In FIG. 15, the gray portion (Cont.
ext51, I-method63) is a part that depends on the MVM 31a, and is a structure required when the MVM 31a interprets and executes the 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を指してい
る。
FIG. 16 is a diagram showing a structure that is linked from the Context structure 51 as a center. The object field of the Context structure 51 points to the object 61, and the class field is the class dependency of the class 62.
nt field. The method field points to I-method 63, and
The code in the hod field is I-method6.
3 I-code. icode corresponds to a program counter and indicates a program that is being executed. m
The vtable of the method field is I-meth.
It refers to the variable table of od63.

【0137】temporaryフィールドは、一時デ
ータ保存領域を指し、metaフィールドは、上述した
ように、descriptor52を指している。ま
た、オブジェクト61のclass pointer
は、class62を指し、class62のmeth
od tableは、I−method63を指してい
る。
The temporary field indicates the temporary data storage area, and the meta field indicates the descriptor 52 as described above. Also, the class pointer of the object 61
Refers to class62, and the meth of class62
The odd table indicates the I-method 63.

【0138】variable tableエントリ
は、typeとvalueの組みであり、valueは
typeに依存する。
A variable table entry is a combination of type and value, and value depends on 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」に開示されている。
The MVM 31a is adapted to process the type shown in FIG. 17, and the type is T_PRIM.
When ITIVE, the value field refers to the primitive object. In this case, in the value column, for example, <P_INTEGER, immediate>, <
P_STRING, address to help>
<P_CLASS, P_ as shown in FIG.
A set of BODY> is stored. FIG. 18 shows a list of primitive objects and their interface names. 19 to 21 show the interface of the primitive object shown in FIG.
e Definition Language (ID
The example described by the L) method is shown. The IDL method is described in "CORBA V2.0, July 199".
5, P3-1 to 3-36 ".

【0140】また、図17において、typeがT_P
OINTERのとき、オブジェクトを参照するためのI
Dがvalue欄に格納される。このIDは、その位置
が独立な、システムで唯一の値であり、Persona
lityオブジェクト33によって、そのIDに対応す
るオブジェクトの位置が特定される。
In FIG. 17, the type is T_P.
When OINTER, I to refer to the object
D is stored in the value column. This ID is the only value in the system whose location is independent, and Persona
The location of the object corresponding to the ID is specified by the light object 33.

【0141】図22は、MVM31aが解釈実行する2
つの命令セットを示している。命令セットOP_Mは、
図12において、外側から内側に入る命令であり、命令
セットOP_Rは、内側から外側に戻る命令である。
In FIG. 22, the MVM 31a interprets and executes 2
Shows two instruction sets. The instruction set OP_M is
In FIG. 12, the instructions are from the outside to the inside, and the instruction set OP_R is an instruction to return from the inside to the outside.

【0142】即ち、命令セットOP_Mにより、その第
1オペランドで示されたオペレーションが実行される。
このオペレーションは、Personalityオブジ
ェクト33によって処理されるか、またはプリミティブ
オブジェクトによって処理される。コンパイラは、より
効率的にアプリケーション35を実行するために、いく
つかの処理をプリミティブオブジェクトによって処理す
るように、I−codeを生成する。これにより、例え
ば、Integerの算術演算は、図18の先頭のプリ
ミティブオブジェクトによって処理される。
That is, the operation indicated by the first operand is executed by the instruction set OP_M.
This operation is processed by the Personality object 33 or the primitive object. The compiler generates an I-code so that some processing is performed by the primitive object in order to execute the application 35 more efficiently. Thereby, for example, the integer arithmetic operation is processed by the primitive object at the head of FIG.

【0143】次に、MK31bのインタフェースを規定
する。図23は、マイクロカーネル(MK)31bのイ
ンタフェースを示している。MVM31aとMK31b
の論理構造は、図13に示したように同様であり、MK
31bは、図22に示した命令セットOP_MおよびO
P_Rをシステムコールとして処理する。
Next, the interface of MK31b is defined. FIG. 23 shows the interface of the microkernel (MK) 31b. MVM31a and MK31b
The logical structure of MK is similar to that shown in FIG.
31b is the instruction set OP_M and O shown in FIG.
Process P_R as a system call.

【0144】上述したような構成のApertosシス
テムを、例えば図4に示したクライアント2(2−1,
2−2)に適用することができる。そして、図12に示
した核31以外のもののうち、任意のものをサーバ1か
らダウンロードすることにより、所定のアプリケーショ
ンを実行するための最適な実行環境をクライアント2上
に構築することができる。
For example, the client 2 (2-1, FIG. 4) shown in FIG.
2-2) can be applied. Then, by downloading from the server 1 any one of those other than the core 31 shown in FIG. 12, an optimum execution environment for executing a predetermined application can be built on the client 2.

【0145】上述したように、ここでダウンロードする
オブジェクトとしては次のものが考えられる。
As described above, the following objects can be considered as the objects to be downloaded here.

【0146】(1)すべてのアプリケーションプログラ
(1) All application programs

【0147】(2)クライアントが備えるハードウェア
資源を制御するためのデバイスドライバ群(例えば、M
PEGドライバ、ATMドライバ、画像制御ドライバ
等)
(2) Device driver group (for example, M
(PEG driver, ATM driver, image control driver, etc.)

【0148】(3)アプリケーションプログラムに対し
てシステムサービスを提供するオブジェクト群(per
sonaityオブジェクト)(例えば、VCRコマン
ド管理、ストリーム管理、実時間スケジューラ、メモリ
管理、ウィンドウ管理、ダウンロード制御、通信プロト
コル管理、実行管理等)
(3) Object group (per) that provides system services to application programs
Sonarity object) (for example, VCR command management, stream management, real-time scheduler, memory management, window management, download control, communication protocol management, execution management, etc.)

【0149】これらを組み合わせて、アプリケーション
プログラムに対して最適な実行環境をクライアント上に
構築することができる。
By combining these, an optimum execution environment for the application program can be constructed on the client.

【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にコンパイルした後、実行するようにするこ
とも可能である。
For example, when a Java program is to be executed, the personality object 33 for Java and the Java program (application) are used.
35 from the server 1. This perso
Due to the nality object 33, the
The system is Java Virtual Machine
e can be provided. Downloaded jav
The a program is once Java by the compiler.
compiled into intermediate code called tecode,
It is executed by the above Java Virtual Machine. Alternatively, as described above, native
It is also possible to execute it after compiling it into code.

【0151】以上の実施例においては、サーバからクラ
イアントに所定のオブジェクトをダウンロードするよう
にしたが、所定のクライアントから、所定のサーバにオ
ブジェクトをダウンロードしたり、あるいはサーバ同
士、クライアント同士でオブジェクトをダウンロードす
る場合にも、本発明を適用することが可能である。
In the above embodiments, the predetermined object is downloaded from the server to the client. However, the object is downloaded from the predetermined client to the predetermined server, or the objects are downloaded between the servers or between the clients. The present invention can also be applied to such cases.

【0152】また、上記実施例においては、I−cod
eを2つの命令により構成するようにしたが、これに限
定されるものではない。
Further, in the above embodiment, I-cod
Although e is composed of two instructions, the present invention is not limited to this.

【0153】[0153]

【発明の効果】以上の如く請求項1記載のデータ処理方
法および請求項9に記載のデータ処理装置によれば、ク
ライアントがダウンロードするアプリケーションプログ
ラムの実行環境を有するか否かを検査し、その検査結果
に対応して、アプリケーションプログラムをクライアン
トにダウンロードするようにしたので、クライアントの
構成を簡略化し、低コスト化するとともに、低コストで
アプリケーションプログラムを提供することが可能とな
る。
As described above, according to the data processing method of the first aspect and the data processing apparatus of the ninth aspect, it is checked whether or not the client has an execution environment of the application program downloaded, and the check is performed. Since the application program is downloaded to the client according to the result, the client configuration can be simplified and the cost can be reduced, and the application program can be provided at low cost.

【0154】請求項10に記載のデータ処理装置によれ
ば、サーバに対してダウンロードするアプリケーション
プログラムを実行環境に関する告知を行い、その告知に
対応して、サーバからアプリケーションプログラムをダ
ウンロードするようにしたので、構成が簡単で低コスト
の装置を実現することが可能となる。また、低コストで
アプリケーションプログラムを提供することができる。
According to the data processing device of the tenth aspect, the application program to be downloaded is notified to the server regarding the execution environment, and the application program is downloaded from the server in response to the notification. It is possible to realize a low-cost device having a simple structure. Further, the application program can be provided at low cost.

【0155】請求項11に記載のデータ処理装置、およ
び請求項15に記載のデータ処理方法によれば、中間コ
ードに変換されたアプリケーションプログラムを解釈
し、実行するか、または、中間コードを動的にコンパイ
ルし、生成されたバイナリコードを実行することで、ア
プリケーションプログラムを実行するようにしたので、
動的コンパイルが困難な場合、中間コードを逐次解釈
し、実行することができる。また、中間コードを簡単な
構成とすることにより、ポータブルなアプリケーション
を構築することができる。
According to the data processing device of the eleventh aspect and the data processing method of the fifteenth aspect, the application program converted into the intermediate code is interpreted and executed, or the intermediate code is dynamically executed. The application program is executed by compiling to and executing the generated binary code.
If dynamic compilation is difficult, the intermediate code can be sequentially interpreted and executed. In addition, a portable application can be constructed by making the intermediate code a simple structure.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明のデータ処理方法を適用するシステムの
構成例を示す図である。
FIG. 1 is a diagram showing a configuration example of a system to which a data processing method of the present invention is applied.

【図2】アプリケーションプログラムの構成を示す図で
ある。
FIG. 2 is a diagram showing a configuration of an application program.

【図3】並行オブジェクトの構成を示す図である。FIG. 3 is a diagram showing a configuration of a parallel object.

【図4】サーバから複数ベンダのクライアントに対する
オブジェクトのダウンロードを説明する図である。
FIG. 4 is a diagram illustrating downloading of objects from a server to clients of multiple vendors.

【図5】インクリメンタルダウンロードを説明する図で
ある。
FIG. 5 is a diagram illustrating incremental download.

【図6】メタ標準を説明する図である。FIG. 6 is a diagram illustrating a meta standard.

【図7】オブジェクトの動的変更を説明する図である。FIG. 7 is a diagram illustrating dynamic change of an object.

【図8】オブジェクトの動的拡張を説明する図である。FIG. 8 is a diagram illustrating dynamic extension of an object.

【図9】クライアントの最小機能を説明する図である。FIG. 9 is a diagram illustrating a minimum function of a client.

【図10】アプリケーションに適したクライアント環境
の構築とその動的再構成を説明する図である。
FIG. 10 is a diagram illustrating construction of a client environment suitable for an application and its dynamic reconfiguration.

【図11】フィーチャストラクチャの構成を説明する図
である。
FIG. 11 is a diagram illustrating a configuration of a feature structure.

【図12】本発明のデータ処理装置を応用したAper
tosシステムの構成例を示す図である。
FIG. 12 is an Aper to which the data processing device of the present invention is applied.
It is a figure which shows the structural example of a tos system.

【図13】MVMとMKの論理構造を示す図である。FIG. 13 is a diagram showing a logical structure of MVM and MK.

【図14】ContextとDescriptorの論
理構造を示す図である。
FIG. 14 is a diagram showing a logical structure of Context and Descriptor.

【図15】MVMの全体構造を示す図である。FIG. 15 is a diagram showing an overall structure of an MVM.

【図16】Contextとその回りのデータ構造体を
示す図である。
FIG. 16 is a diagram showing a Context and a data structure around it.

【図17】Variable tableエントリのt
ypeを示す図である。
FIG. 17: t of a variable table entry
It is a figure which shows ype.

【図18】プリミティブオブジェクトの一覧とそのイン
タフェース名を示す図である。
FIG. 18 is a diagram showing a list of primitive objects and their interface names.

【図19】プリミティブオブジェクトのインタフェース
を示す図である。
FIG. 19 is a diagram showing an interface of a primitive object.

【図20】プリミティブオブジェクトのインタフェース
を示す図である。
FIG. 20 is a diagram showing an interface of a primitive object.

【図21】プリミティブオブジェクトのインタフェース
を示す図である。
FIG. 21 is a diagram showing an interface of a primitive object.

【図22】I−code命令セットを示す図である。FIG. 22 is a diagram showing an I-code instruction set.

【図23】MKのインタフェースを示す図である。FIG. 23 is a diagram showing an interface of MK.

【符号の説明】[Explanation of symbols]

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
1 server, 2 clients, 3 networks, 1
1 application program, 12 execution environment, 1
3 application program interface, 1
4, 15 object, 21 application program, 22 execution environment, 23 application program interface, 31 kernel, 31a MVM, 31
b MK, 32 Device drivers, 33
Personality component ob
ject, 34 Class libraries, 3
5 Applications, 41 active
context, 42 message frame,
43 execution engine, 44 pri
mimitive objects, 51 context
t, 52 Descriptor, 61 objec
t, 62 class, 63 I-method

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】 複数のオブジェクトで構成されるアプリ
ケーションプログラムと、複数のオブジェクトで構成さ
れる、前記アプリケーションプログラムの動作を規定す
る実行環境と、前記アプリケーションプログラムと前記
実行環境の間のインタフェースを規定するアプリケーシ
ョンプログラムインタフェースとを備えるサーバと、 前記サーバより前記アプリケーションプログラムをダウ
ンロードするクライアントと、 を備えるデータ処理システムにおけるデータ処理方法に
おいて、 前記サーバは、前記クライアントに前記アプリケーショ
ンプログラムをダウンロードするとき、前記クライアン
トが、ダウンロードする前記アプリケーションプログラ
ムの実行環境を有するか否かを検査し、 その検査結果に対応して前記アプリケーションプログラ
ムを前記クライアントにダウンロードすることを特徴と
するデータ処理方法。
1. An application program composed of a plurality of objects, an execution environment composed of a plurality of objects that defines the operation of the application program, and an interface between the application program and the execution environment. A data processing method in a data processing system, comprising: a server including an application program interface; and a client that downloads the application program from the server, wherein when the server downloads the application program, the client , Whether or not there is an execution environment for the application program to be downloaded, and the application program is checked according to the check result. Data processing method characterized by downloading grams to the client.
【請求項2】 前記クライアントが、ダウンロードする
前記アプリケーションプログラムの実行環境を有しない
とき、前記サーバから前記クライアントにオブジェクト
をダウンロードし、前記サーバにおける前記実行環境と
同一の実行環境を前記クライアントに構築し、その後、
前記サーバから前記クライアントに前記アプリケーショ
ンプログラムをダウンロードすることを特徴とする請求
項1に記載のデータ処理方法。
2. When the client does not have an execution environment of the application program to be downloaded, the object is downloaded from the server to the client, and the same execution environment as the execution environment of the server is constructed in the client. ,afterwards,
The data processing method according to claim 1, wherein the application program is downloaded from the server to the client.
【請求項3】 前記アプリケーションプログラムのオブ
ジェクトは、並行オブジェクトであることを特徴とする
請求項1に記載のデータ処理方法。
3. The data processing method according to claim 1, wherein the object of the application program is a parallel object.
【請求項4】 前記サーバは、前記アプリケーションプ
ログラムの実行に必要な前記実行環境のオブジェクトを
インクリメンタルにダウンロードすることを特徴とする
請求項1に記載のデータ処理方法。
4. The data processing method according to claim 1, wherein the server incrementally downloads an object of the execution environment required to execute the application program.
【請求項5】 前記クライアントの実行環境には、最低
限の標準的機能として、 前記サーバから前記クライアントへオブジェクトをダウ
ンロードするダウンロード機能と、 前記実行環境の互換性を検査する検査機能と、 前記実行環境を構築する構築機能とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
特徴とする請求項2に記載のデータ処理方法。
5. The execution environment of the client includes, as a minimum standard function, a download function for downloading an object from the server to the client, a check function for checking compatibility of the execution environment, and the execution function. The data processing method according to claim 2, further comprising a construction function for constructing an environment, and downloading other functions as necessary.
【請求項6】 前記クライアントには、最低限の標準的
機能として、 デバイスドライバのための実行環境と、 システムオブジェクトのための実行環境と、 実行環境のための実行環境とを具備させ、 必要に応じてその他の機能をダウンロードさせることを
特徴とする請求項2に記載のデータ処理方法。
6. The client includes, as a minimum standard function, an execution environment for a device driver, an execution environment for a system object, and an execution environment for an execution environment. The data processing method according to claim 2, wherein the other function is downloaded in response.
【請求項7】 前記デバイスドライバは、インプットド
ライバ、タイマドライバ、スクリーンドライバを含み、 前記システムオブジェクトは、インプットハンドラ、ブ
ートプロトコル、メモリマネージャの各オブジェクトを
含むことを特徴とする請求項6に記載のデータ処理方
法。
7. The device driver according to claim 6, wherein the device driver includes an input driver, a timer driver, and a screen driver, and the system object includes an input handler object, a boot protocol object, and a memory manager object. Data processing method.
【請求項8】 前記サーバと前記クライアントは、前記
クライアントの前記実行環境の互換性を検査するため
に、前記オブジェクトと前記実行環境について記述した
デスクリプションを含むフィーチャストラクチャを授受
することを特徴とする請求項1に記載のデータ処理方
法。
8. The server and the client exchange a feature structure including a description describing the object and the execution environment, in order to check compatibility of the execution environment of the client. The data processing method according to claim 1.
【請求項9】 複数のオブジェクトで構成されるアプリ
ケーションプログラムと、複数のオブジェクトで構成さ
れる、前記アプリケーションプログラムの動作環境を規
定する実行環境と、前記アプリケーションプログラムと
前記実行環境の間のインタフェースを規定するアプリケ
ーションプログラムインタフェースとを備え、クライア
ントにアプリケーションプログラムをダウンロードさせ
るデータ処理装置において、 前記クライアントに前記アプリケーションプログラムを
ダウンロードするとき、前記クライアントが、ダウンロ
ードする前記アプリケーションプログラムの実行環境を
有するか否かを検査する検査手段と、 前記検査手段の検査結果に対応して前記アプリケーショ
ンプログラムを前記クライアントにダウンロードするダ
ウンロード手段とを備えることを特徴とするデータ処理
装置。
9. An application program including a plurality of objects, an execution environment including an operation environment of the application program including a plurality of objects, and an interface between the application program and the execution environment. In the data processing device, which includes an application program interface for allowing a client to download the application program, when the client downloads the application program, it is checked whether the client has an execution environment of the application program to be downloaded. And a download means for downloading the application program to the client corresponding to the inspection result of the inspection means. Data processing apparatus, characterized in that it comprises a de means.
【請求項10】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
される、前記アプリケーションプログラムの動作環境を
規定する実行環境と、前記アプリケーションプログラム
と前記実行環境の間のインタフェースを規定するアプリ
ケーションプログラムインタフェースとを備え、サーバ
からアプリケーションプログラムをダウンロードするデ
ータ処理装置において、 前記サーバから前記アプリケーションプログラムをダウ
ンロードするとき、ダウンロードする前記アプリケーシ
ョンプログラムの実行環境に関する告知を行う告知手段
と、 前記告知手段の告知に対応して前記サーバから前記アプ
リケーションプログラムをダウンロードするダウンロー
ド手段とを備えることを特徴とするデータ処理装置。
10. An application program including a plurality of objects, an execution environment including an operation environment of the application program including a plurality of objects, and an interface between the application program and the execution environment. A data processing device that downloads an application program from a server, and a notification unit that notifies the execution environment of the application program to be downloaded when the application program is downloaded from the server; And a download means for downloading the application program from the server in response to the notification of Apparatus.
【請求項11】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
され、前記アプリケーションプログラムに対して実行環
境を提供するシステムオブジェクトからなるデータ処理
装置において、 中間コードに変換された前記アプリケーションプログラ
ムを解釈し、実行する第1の実行手段と、 前記中間コードを動的にコンパイルし、バイナリコード
を生成するバイナリコード生成手段と、 前記バイナリコードおよび前記システムオブジェクトを
実行する第2の実行手段とを備えることを特徴とするデ
ータ処理装置。
11. A data processing device comprising an application program composed of a plurality of objects and a system object composed of a plurality of objects and providing an execution environment for the application program, wherein the data is converted into intermediate code. First executing means for interpreting and executing an application program; binary code generating means for dynamically compiling the intermediate code to generate a binary code; and second executing means for executing the binary code and the system object And a data processing device.
【請求項12】 前記第1の実行手段は、前記第2の実
行手段を介して前記システムオブジェクトを実行するこ
とを特徴とする請求項11に記載のデータ処理装置。
12. The data processing apparatus according to claim 11, wherein the first execution unit executes the system object via the second execution unit.
【請求項13】 前記アプリケーションプログラムの実
行状態を示す第1の構造体と、 前記システムオブジェクトが提供する実行環境のアプリ
ケーションプログラムインタフェースを決定する第2の
構造体とをさらに備え、 前記第1の実行手段および前記第2の実行手段は、前記
第1の構造体と前記第2の構造体に基づいて、前記アプ
リケーションプログラムの実行を制御することを特徴と
する請求項11に記載のデータ処理装置。
13. The system further comprises: a first structure showing an execution state of the application program; and a second structure determining an application program interface of an execution environment provided by the system object, the first execution The data processing device according to claim 11, wherein the means and the second execution means control execution of the application program based on the first structure and the second structure.
【請求項14】 前記第1の実行手段は、前記オブジェ
クトの所定のものにより発行され、所定のオペランドで
指定された所定のオペレーションを実行する第1の命令
と、前記オペレーションを実行した後、前記命令を発行
した前記オブジェクトに制御を戻す第2の命令とを有す
ることを特徴とする請求項11に記載のデータ処理装
置。
14. The first execution means is a first instruction issued by a predetermined one of the objects to execute a predetermined operation designated by a predetermined operand, and after executing the operation, the first instruction. The data processing device according to claim 11, further comprising a second instruction for returning control to the object that issued the instruction.
【請求項15】 複数のオブジェクトで構成されるアプ
リケーションプログラムと、複数のオブジェクトで構成
され、前記アプリケーションプログラムに対して実行環
境を提供するシステムオブジェクトからなるデータ処理
装置におけるデータ処理方法において、 中間コードに変換された前記アプリケーションプログラ
ムを解釈し、実行する方法と、前記中間コードを動的に
コンパイルし、生成されたバイナリコードを実行する方
法とにより、前記アプリケーションプログラムを実行す
ることを特徴とするデータ処理方法。
15. A data processing method in a data processing device comprising an application program composed of a plurality of objects and a system object composed of a plurality of objects and providing an execution environment for the application program. Data processing characterized by executing the application program by a method of interpreting and executing the converted application program and a method of dynamically compiling the intermediate code and executing the generated binary code Method.
JP06788196A 1995-07-14 1996-03-25 Data processing method and apparatus Expired - Lifetime JP4251669B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP06788196A JP4251669B2 (en) 1995-07-14 1996-03-25 Data processing method and apparatus
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
JP17862595 1995-07-14
JP7-178625 1995-07-14
JP06788196A JP4251669B2 (en) 1995-07-14 1996-03-25 Data processing method and apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2005165782A Division JP2005302055A (en) 1995-07-14 2005-06-06 Data processing method and apparatus

Publications (2)

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

Family

ID=26409086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06788196A Expired - Lifetime JP4251669B2 (en) 1995-07-14 1996-03-25 Data processing method and apparatus

Country Status (2)

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

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338705A (en) * 1998-05-27 1999-12-10 Hitachi Ltd Software distribution management system
JPH11353406A (en) * 1998-04-29 1999-12-24 Ncr Internatl Inc Self-service terminal device
KR20000050238A (en) * 2000-05-30 2000-08-05 김호광 Manufacturing System and Method for executable program operating at multiple platform
JP2001209618A (en) * 2000-01-27 2001-08-03 Victor Co Of Japan Ltd Object delivery method
KR20010105756A (en) * 2000-05-18 2001-11-29 김형순 Application programming interface for developing computer telephony interface service program and operating method thereof
KR20020031511A (en) * 2000-10-20 2002-05-02 김영돈, 정춘보 Method for producting pda application availible of variety hardware
JP2002132739A (en) * 2000-10-23 2002-05-10 Nec Corp Stab retrieval loading system and method, server device, client device and computer readable recording medium
JP2002523813A (en) * 1998-08-31 2002-07-30 イルデト・アクセス・ベー・フェー System for providing encrypted data, system for decrypting encrypted data, and method for providing a communication interface to such decryption system
JP2002540522A (en) * 1999-03-26 2002-11-26 サンマイクロシステムズ インコーポレーテッド Delay class loading system and method using interface stub
JP2003108395A (en) * 2001-09-27 2003-04-11 Seiko Epson Corp Object type data processor and data structure of object type data, and method for generating object type data
JP2003532166A (en) * 1999-02-03 2003-10-28 ソフトオンネット株式会社 System and method for executing a rental software program in a distributed computing environment
JP2004272908A (en) * 2003-03-06 2004-09-30 Microsoft Corp How to integrate the system design, deployment, and management phases
KR100462876B1 (en) * 2002-03-14 2004-12-17 삼성전자주식회사 Method for using standard platform of network equipments
JP2006127040A (en) * 2004-10-27 2006-05-18 Sharp Corp Information processing system and information processing apparatus
JP2007536630A (en) * 2004-05-07 2007-12-13 ワイズ テクノロジー インコーポレーテッド Integrated on-demand delivery system and method for operating system and application
US7574720B1 (en) 1999-02-05 2009-08-11 Sony Corporation Data transmitting method, data transmitting system, data receiving method and receiving terminal
JP2009544072A (en) * 2006-07-10 2009-12-10 デバイス ヴィーエム インク Method and apparatus for appliance virtualization
JP2010518502A (en) * 2007-02-12 2010-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Networked control system equipment
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
EP1683154B1 (en) * 2003-11-12 2015-12-02 Thomson Licensing Method and device for composing a menu

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11353406A (en) * 1998-04-29 1999-12-24 Ncr Internatl Inc Self-service terminal device
JPH11338705A (en) * 1998-05-27 1999-12-10 Hitachi Ltd Software distribution management system
JP2002523813A (en) * 1998-08-31 2002-07-30 イルデト・アクセス・ベー・フェー System for providing encrypted data, system for decrypting encrypted data, and method for providing a communication interface to such decryption system
JP2003532166A (en) * 1999-02-03 2003-10-28 ソフトオンネット株式会社 System and method for executing a rental software program in a distributed computing environment
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 (en) * 1999-03-26 2002-11-26 サンマイクロシステムズ インコーポレーテッド Delay class loading system and method using interface stub
JP2001209618A (en) * 2000-01-27 2001-08-03 Victor Co Of Japan Ltd Object delivery method
KR20010105756A (en) * 2000-05-18 2001-11-29 김형순 Application programming interface for developing computer telephony interface service program and operating method thereof
KR20000050238A (en) * 2000-05-30 2000-08-05 김호광 Manufacturing System and Method for executable program operating at multiple platform
KR20020031511A (en) * 2000-10-20 2002-05-02 김영돈, 정춘보 Method for producting pda application availible of variety hardware
JP2002132739A (en) * 2000-10-23 2002-05-10 Nec Corp Stab retrieval loading system and method, server device, client device and computer readable recording medium
JP2003108395A (en) * 2001-09-27 2003-04-11 Seiko Epson Corp Object type data processor and data structure of object type data, and method for generating object type data
KR100462876B1 (en) * 2002-03-14 2004-12-17 삼성전자주식회사 Method for using standard platform of network equipments
US7886041B2 (en) 2003-03-06 2011-02-08 Microsoft Corporation Design time validation of systems
JP2004272908A (en) * 2003-03-06 2004-09-30 Microsoft Corp How to integrate the system design, deployment, and management phases
JP2007536630A (en) * 2004-05-07 2007-12-13 ワイズ テクノロジー インコーポレーテッド Integrated on-demand delivery system and method for operating system and application
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 (en) * 2004-10-27 2006-05-18 Sharp Corp Information processing system and information processing apparatus
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 (en) * 2006-07-10 2009-12-10 デバイス ヴィーエム インク Method and apparatus for appliance virtualization
JP2010518502A (en) * 2007-02-12 2010-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Networked control system equipment

Also Published As

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

Similar Documents

Publication Publication Date Title
EP1306756B1 (en) Data processing method and device
JP4251669B2 (en) Data processing method and apparatus
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
US5574915A (en) Object-oriented booting framework
US5983310A (en) Pin management of accelerator for interpretive environments
US20020078255A1 (en) Pluggable instantiable distributed objects
US20070033592A1 (en) Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors
JPH05216692A (en) Method and system for controlling program execution
JP2013546106A (en) Distributed computing architecture
WO1998038573A1 (en) Asynchronous-event opening component of a network component system
KR20010034542A (en) Method and apparatus for dynamic distributed computing over a network
JP2001202253A (en) Data processing method and data processor
KR100577366B1 (en) Method and device for running heterogeneous Java methods
EP1378822A1 (en) Data processing system and data processing method, information processing device and information processing method, and storage medium
JP2005302055A (en) Data processing method and apparatus
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
Mueller et al. Java and Real Time Storage Applications

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