JP2000259417A - データ処理装置、データ処理方法及びプログラム提供媒体 - Google Patents

データ処理装置、データ処理方法及びプログラム提供媒体

Info

Publication number
JP2000259417A
JP2000259417A JP11067028A JP6702899A JP2000259417A JP 2000259417 A JP2000259417 A JP 2000259417A JP 11067028 A JP11067028 A JP 11067028A JP 6702899 A JP6702899 A JP 6702899A JP 2000259417 A JP2000259417 A JP 2000259417A
Authority
JP
Japan
Prior art keywords
data processing
execution
download
replacement
objects
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.)
Withdrawn
Application number
JP11067028A
Other languages
English (en)
Inventor
Hideaki Okamura
英明 岡村
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 JP11067028A priority Critical patent/JP2000259417A/ja
Priority to EP00301975A priority patent/EP1037144A3/en
Priority to US09/523,549 priority patent/US6711737B1/en
Publication of JP2000259417A publication Critical patent/JP2000259417A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

(57)【要約】 【課題】 オブジェクト指向を適用したデータ処理シス
テムにおいて、最適な実行環境が異なる複数の実行主体
(アプリケーションプログラム等)があるときに、各実
行主体に対してそれぞれ好適な実行環境を提供できるよ
うにする。 【解決手段】 1つ以上のオブジェクトから構成される
少なくとも1つの実行主体と、上記実行主体に対してサ
ービスを提供する1つ以上のオブジェクトから構成され
る少なくとも1つの実行環境とを備えたデータ処理シス
テムにおいて、実行主体又は実行環境を構成するオブジ
ェクトからの要求に基づいて、実行環境を構成するオブ
ジェクトを削除する削除ステップと、外部システムから
新たなオブジェクトを取り込む取込ステップとを行い、
実行環境を構成するオブジェクトを置換する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1つ以上のオブジ
ェクトから構成される実行主体と、実行主体に対してサ
ービスを提供するオブジェクトから構成される実行環境
とを備えたデータ処理装置に関する。また、そのような
実行主体及び実行環境を備えたデータ処理システムにお
けるデータ処理方法に関する。また、そのようなデータ
処理システムにおけるデータ処理プログラムを提供する
プログラム提供媒体に関する。
【0002】
【従来の技術】一般にデータ処理システムでは、実行環
境(オペレーティングシステム等)の上で実行主体(ア
プリケーションプログラム等)が動作する。換言すれ
ば、アプリケーションプログラム等の実行主体は、オペ
レーティングシステム等の実行環境が提供するサービス
を用いて動作する。
【0003】このようなデータ処理システムにおいて、
通常、アプリケーションプログラムにサービスを提供す
るオペレーティングシステムは、どのようなアプリケー
ションプログラムを動作させるかを全て予測して設計さ
れている訳ではない。そのため、計算資源を用いたサー
ビスとして、全てのアプリケーションプログラムの性質
に応じて最適化されたサービスを常に提供できるとは限
らない。
【0004】このことを、計算資源を用いたサービスと
してメッセージパッシング機構を提供するオペレーティ
ングシステム上で動作する2種類のアプリケーションプ
ログラムAppA,AppBを例に挙げて説明する。
【0005】ここで、アプリケーションプログラムAppA
は、データベースのサーバを構成するプログラミングモ
ジュールと、2つのクライアントとからなるとする。ま
た、これらのクライアントは、対等な優先度でサーバに
アクセスするものとする。
【0006】一方、アプリケーションプログラムAppB
は、イーサネットからのデータを処理するクライアント
と、シリアルラインからのデータを処理するクライアン
トと、クライアントからの要求に応じてデータ処理をす
るサーバとからなるとする。
【0007】一般に、シリアルラインとイーサネットの
動作には優先順位があり、シリアルラインで頻繁にメッ
セージのやり取りを行っているときでも、イーサネット
から制御パケット(例えば、イーサネットから連続的に
データを読むため、一時的にシリアルラインからのデー
タの読み込みを停止するように要求する制御パケット)
が来た場合には、当該制御パケットを優先的に処理する
ことが要求される。制御パケットを優先的に処理するよ
うにしないと、優先的に処理することが要求されている
制御パケットの処理に待ち時間が必要となってしまう。
【0008】以上のような2種類のアプリケーションプ
ログラムのうち、アプリケーションプログラムAppAは、
優先度の異なるメッセージがないので、メッセージの優
先度チェックを行うような必要はない。したがって、メ
ッセージの優先度チェックを行わない単純なメッセージ
パッシング機構を用いた方が、実行性能が向上する。
【0009】一方、アプリケーションプログラムAppBで
は、制御パケットを優先的に処理するための機構が必要
である。したがって、アプリケーションプログラムAppB
に対して提供するメッセージパッシング機構は、メッセ
ージの優先度をチェックする機構を備えている必要があ
る。
【0010】しかしながら、メッセージの優先度チェッ
クを行うようにすると、アプリケーションプログラムAp
pAを実行した場合に、アプリケーションプログラムAppA
には不要な優先度チェックを行うこととなるので、アプ
リケーションプログラムAppAの実行性能が劣化する。一
方、メッセージの優先度チェックを行わないメッセージ
パッシング機構を用いると、アプリケーションプログラ
ムAppBを実行するときに、アプリケーションプログラム
AppBの要求に応じた動作が不可能となってしまう。
【0011】以上のように、2つ以上のプログラミング
モジュールが通信して動作するアプリケーションプログ
ラムに対して最適なサービスは、プログラミングモジュ
ール間で行われる通信の性質に依存して異なっている。
したがって、以上のような例では、プログラミングモジ
ュール間で行われる通信の性質に応じて、メッセージパ
ッシング機構のサービスを提供するオペレーティングシ
ステムを変更可能であることが望まれる。
【0012】ところで、以上のような問題は、アプリケ
ーションプログラムを更新したり、新しいアプリケーシ
ョンプログラムをダウンロードして使用するような場合
に生じやすい。
【0013】近年、パーソナルコンピュータ(PC:Perso
nal Computer)やネットワークコンピュータ(NC:Netwo
rk Computer)では、アプリケーションプログラムのダ
ウンロード機能が標準装備されつつあり、そのような環
境では、システム設計時に想定していない性質を持つア
プリケーションプログラムがダウンロードされ実行され
る可能性が高い。このような環境で使用されるオペレー
ティングシステムでは、実行される全てのアプリケーシ
ョンプログラムの性質を予測して設計しておくことは不
可能である。
【0014】また、家電製品(CE:Consumer Electronic
s)に使用される組み込み用のオペレーティングシステ
ム(以下、組み込みOSと称する。)においても事情は
同じである。従来の多くの家電製品は、CD−ROMや
MD等のリムーバブルメディアのサポートやネットワー
ク接続機能などが無く、アプリケーションプログラムを
更新したり、新しいアプリケーションプログラムをダウ
ンロードしたりする環境が未整備であった。そのため、
従来の多くの家電製品では、組み込まれるアプリケーシ
ョンプログラムに合わせて、オペレーティングシステム
の機能を予め最適化しておくことが可能だった。
【0015】しかしながら、近年、家電製品に関して
も、リムーバブルメディアのサポートやネットワーク接
続機能などを付加して、アプリケーションプログラムを
更新したり、新しいアプリケーションプログラムをダウ
ンロードしたりする環境が整備されつつある。それに伴
い、家電製品に関しても、システム設計当時に想定して
いなかったアプリケーションプログラムの実行が可能に
なってきている。そのため、組み込みOSにおいても、
全てのアプリケーションプログラムに対して、効率良く
計算資源を用いたサービスを提供することが困難になり
つつある。
【0016】
【発明が解決しようとする課題】以上のように、従来の
データ処理システムでは、全てのアプリケーションプロ
グラムの性質に応じて最適化したサービスを常に提供で
きるとは限らなかった。特に、システム設計後に更新さ
れたりダウンロードされたりしたアプリケーションプロ
グラムに対しては、それらのアプリケーションプログラ
ムに合わせたサービスを提供するようなことが出来なか
った。そこで、システム設計後に更新されたりダウンロ
ードされたりしたアプリケーションプログラムに対して
も、好適なサービスを提供できるようにすることが課題
となっている。
【0017】なお、想定しうるシステムサービスの機能
を予め複数用意しておき、アプリケーションプログラム
に選択させるという方法を用いれば、いくつかのアプリ
ケーションプログラムに対しては好適なサービスを提供
することが可能である。しかしながら、全てのアプリケ
ーションプログラムに対して、満足のいく機能をサポー
トすることは不可能である。また、組み込みOSの場合
は、一般にハードウェア上の搭載メモリ量に限りがある
ため、プログラムサイズに制約がある。そのため、特に
組み込みOSの場合、想定されるシステムサービスの機
能を複数用意することは好ましくない。
【0018】本発明は、以上のような従来の実情に鑑み
て提案されたものであり、想定されるシステムサービス
の機能を予め複数用意したりするようなことなく、実行
主体に応じた好適な実行環境を提供することが可能なデ
ータ処理装置及びデータ処理方法、並びにそのような機
能を実現するデータ処理プログラムを提供するプログラ
ム提供媒体を提供することを目的としている。
【0019】
【課題を解決するための手段】本発明に係るデータ処理
装置は、1つ以上のオブジェクトから構成される少なく
とも1つの実行主体と、上記実行主体に対してサービス
を提供する1つ以上のオブジェクトから構成される少な
くとも1つの実行環境と、上記実行主体又は実行環境を
構成するオブジェクトからの要求に基づいて、上記実行
環境を構成するオブジェクトを削除するとともに外部シ
ステムから新たなオブジェクトを取り込んで、上記実行
環境を構成するオブジェクトの置換処理を行うオブジェ
クト置換手段とを備えることを特徴とする。
【0020】以上のような本発明に係るデータ処理装置
では、実行環境を構成するオブジェクトをオブジェクト
置換手段により置換することで、様々な実行主体に対応
するように実行環境を変更することができる。
【0021】また、本発明に係るデータ処理方法は、1
つ以上のオブジェクトから構成される少なくとも1つの
実行主体と、上記実行主体に対してサービスを提供する
1つ以上のオブジェクトから構成される少なくとも1つ
の実行環境とを備えたデータ処理システムにおけるデー
タ処理方法であり、上記実行主体又は実行環境を構成す
るオブジェクトからの要求に基づいて、上記実行環境を
構成するオブジェクトを削除する削除ステップと、外部
システムから新たなオブジェクトを取り込む取込ステッ
プとを行い、上記実行環境を構成するオブジェクトを置
換することを特徴とする。
【0022】以上のような本発明に係るデータ処理方法
では、削除ステップにより、実行環境を構成するオブジ
ェクトが削除され、取込ステップにより、外部システム
から新たなオブジェクトを取り込まれ、その結果、実行
環境を構成するオブジェクトが置換される。このよう
に、実行環境を構成するオブジェクトを置換すること
で、様々な実行主体に対応するように実行環境を変更す
ることができる。
【0023】また、本発明に係るプログラム提供媒体
は、1つ以上のオブジェクトから構成される少なくとも
1つの実行主体と、上記実行主体に対してサービスを提
供する1つ以上のオブジェクトから構成される少なくと
も1つの実行環境とを備えたデータ処理システムにおけ
るデータ処理プログラムを提供するプログラム提供媒体
である。そして、上記実行主体又は実行環境を構成する
オブジェクトからの要求に基づいて、上記実行環境を構
成するオブジェクトを削除するとともに外部システムか
ら新たなオブジェクトを取り込んで、上記実行環境を構
成するオブジェクトを置換する処理を実行するデータ処
理プログラムを提供することを特徴とする。
【0024】なお、本発明において、オブジェクト取込
元となる外部システムは、例えば、伝送路を介して接続
されるサーバシステムであり、取り込まれるオブジェク
トが記憶された記憶媒体を備える。
【0025】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。
【0026】1.概略 以下に説明する本発明の実施の形態では、アプリケーシ
ョンプログラムの性質に合わせて、オペレーティングシ
ステムを構成するオブジェクト(以下、システムオブジ
ェクトと称する。)をダウンロードしてオペレーティン
グシステムの構成を柔軟に変更し、アプリケーションプ
ログラムの動作に好適な実行環境をカスタマイズできる
ようにする。
【0027】すなわち、オブジェクト指向の概念を適用
し、オブジェクトのダウンロードの機能をオペレーティ
ングシステムにも適用する。そして、アプリケーション
プログラムを構成するオブジェクト(以下、アプリケー
ションオブジェクトと称する。)のダウンロード時に、
必要に応じてシステムオブジェクトもダウンロードして
オペレーティングシステムの構成を動的に柔軟に変更す
る。これにより、アプリケーションプログラムの性質に
合わせて、当該アプリケーションプログラムの動作に好
適な実行環境となるように、オペレーティングシステム
をカスタマイズする。
【0028】基本アーキテクチャとしては、オペレーテ
ィングシステムのサービス提供部分をオブジェクトとし
て提供するオブジェクト指向オペレーティングシステム
を導入する。そして、アプリケーションプログラムの性
質をよく知っているアプリケーションプログラマに対し
て、システムオブジェクトの仕様を公開する。アプリケ
ーションプログラマは、アプリケーションプログラムを
構成するアプリケーションオブジェクトの性質に応じて
システムオブジェクトをカスタマイズする。アプリケー
ションオブジェクトのダウンロード時に、カスタマイズ
後のシステムオブジェクトを一緒にダウンロードし、ア
プリケーションプログラムを実行する。
【0029】図1にシステムオブジェクトのダウンロー
ドの例を示す。図1において、A1,A2,B1,B2
はアプリケーションオブジェクトである。SforA
は、A1,A2に対して最適化されたメッセージパッシ
ングサービスを提供するシステムオブジェクトである。
SforBは、B1,B2に対して最適化されたメッセ
ージパッシングサービスを提供するシステムオブジェク
トである。A1,A2を実行するとき、A1,A2をダ
ウンロードするのと同時に、SforAをダウンロード
する。B1,B2を実行するとき、A1,A2,Sfo
rAをアンロードした後に、B1,B2,SforBを
ダウンロードする。
【0030】ところで、組み込みOSに対する要求事項
のうち、最も重要な点の一つは、オペレーティングシス
テムの実装機構の単純化である。なぜなら、使用メモリ
量を節約し、システムの構成価格を削減することが強く
要求されるからである。オブジェクト指向の概念の適用
は、次の意味でこの要求に貢献する。第一に、プログラ
ムをダウンロードする場合に、様々な情報をオブジェク
ト内部に隠蔽しておくことで、複雑なオペレーションを
単純化できる。第二に、システムオブジェクトとアプリ
ケーションオブジェクトの基本的実行機構を共有でき
る。
【0031】しかしながら、このような特徴を有するオ
ブジェクト指向技術を適用するとしても、次の2つの問
題に注意する必要がある。第1の問題は、システムオブ
ジェクトとアプリケーションオブジェクトの相違に起因
する問題であり、第2の問題は、組み込みOS上での実
現することに起因する問題とである。前者の問題で特に
注意しなければならないのは、システムオブジェクト
は、アプリケーションオブジェクトと違い、オペレーテ
ィングシステムとしてのサービスを提供しなければなら
ないので、アプリケーションオブジェクトの動作が停止
しないように、変更は慎重に行う必要があるということ
である。また、後者の問題に対処するために、アプリケ
ーションオブジェクトとシステムオブジェクトのダウン
ロード機構を共有化したり、システムオブジェクトの置
換時に不必要なメモリ領域を削除して、使用メモリを削
減する必要がある。
【0032】2.システムオブジェクトダウンロードの
具体的方法 システムオブジェクトダウンロードの方法のポイントは
2つある。一つは、システムオブジェクトを安全にダウ
ンロードする場合の必要事項が、アプリケーションオブ
ジェクトをダウンロードする場合の必要事項とどのよう
に異なり、それをどのように満足させるかを示すことで
ある。もう一つは、組み込みOSにおいて有用な、シス
テムオブジェクトのダウンロードの実現方法を示すこと
である。
【0033】2.1 システムアーキテクチャの仮定 システムオブジェクトダウンロードを行うために、オペ
レーティングシステムが持つべきアーキテクチャの仮定
について述べる。「オブジェクト」はアプリケーション
プログラマが変更、追加、削除、置換が可能なプログラ
ミングモジュールである。オブジェクト間ではメッセー
ジパッシングによるデータ交換、起動が可能である。オ
ブジェクトは、オペレーティングシステムのサービス提
供モジュール、又はアプリケーションプログラムを構成
するプログラムモジュールに成り得る。前者が「システ
ムオブジェクト」、後者が「アプリケーションオブジェ
クト」である。
【0034】オペレーティングシステムは、アプリケー
ションプログラマにより不可変の「カーネル」と、シス
テムオブジェクトの集合で構成される。ここで、カーネ
ルは、オブジェクト間のコンテキスト切り替えなどの必
要最低限の機能を持つ。なお、「カーネル」は、システ
ムによっては、マイクロカーネルやナノカーネルと呼ば
れることもある。システムの安全な動作のため、システ
ムオブジェクトは全てが置換可能であるとは限らない。
【0035】システムオブジェクトとアプリケーション
オブジェクトの最も大きな差異は、前者はアプリケーシ
ョンオブジェクトの要求に応じて、サービスを提供する
ことである。
【0036】例えば、オブジェクト指向オペレーティン
グシステムでは、メッセージ送信要求やメモリ割当要求
などが、オペレーティングシステムのサービスとして定
義される。サービス要求は、システムコールなどの特殊
命令により処理される。アプリケーションオブジェクト
からのサービス要求は、カーネルによりディスパッチさ
れ、システムオブジェクトが起動される。なお、ディス
パッチとは、カーネルが、サービス要求を認識して、当
該サービス要求をどのシステムオブジェクトに受け渡す
かを判断し、サービス要求受け渡し先のシステムオブジ
ェクトを起動し、当該システムオブジェクトにサービス
要求を受け渡すことである。そして、サービス提供が終
了すると、制御はアプリケーションオブジェクトに戻
る。
【0037】また、システムオブジェクトは、実行スタ
ック、メッセージキュー、メモリセグメントといった実
行に必要なプリミティブ構造体、すなわち計算資源を直
接アクセスできるという点でも、アプリケーションオブ
ジェクトとは異なっている。
【0038】図2に仮定するシステムアーキテクチャの
例を示す。A1,A2は互いにメッセージ通信するアプ
リケーションオブジェクトである。S1,S2,S3は
システムオブジェクトで、S3はメッセージパッシング
サービスを提供する。A1からA2にメッセージ送信す
るとき、メッセージ送信要求はカーネルにディスパッチ
され、メッセージ送信サービスを提供するS3に制御が
切り替わる。S3のサービス提供終了後、A2が起動さ
れる。
【0039】また、ダウンロードのサービスを提供する
のもシステムオブジェクトである。ここでは、ダウンロ
ードサービスを提供するシステムオブジェクトを「Down
loader」と称する。アプリケーションオブジェクト又は
システムオブジェクトからのダウンロード要求が起こる
と、カーネルによりオブジェクト「Downloader」が起動
され、ダウンロード処理が実行される。ダウンロード処
理の具体的方策は後述する。
【0040】各オブジェクトの使用するメモリ領域は、
システムオブジェクトとアプリケーションオブジェクト
の違いに関係なく、図3に示す通りである。オブジェク
トの使用するメモリ領域には二種類ある。コンパイル時
初期化メモリ領域は、コンパイラによって初期化値が決
定される領域である。オブジェクトの実行メソッド、す
なわち、実行命令の集合であるコード領域と、メソッド
中で使用されるデータが格納されるデータ領域とがこれ
に含まれる。オブジェクトの生成時に、コンパイラに生
成されたバイナリファイル中に初期化値が、それぞれの
領域に格納される。コード領域に関してはROM上に配
置することも可能である。OS動作時初期化メモリ領域
は、オペレーティングシステムのブート時に実行される
オペレーティングシステム初期化手続きによって初期値
が決定される領域である。IDはオブジェクトの識別子
であり、実行スレッドは実行時のオブジェクトの状態を
示す構造体である。実行スタックは実行時に使用される
スタックである。ヒープ用メモリ領域はメソッド中で
(例えば、プログラミング言語C++でのnewオペレーシ
ョンにより)、動的に割り当てられるメモリ領域であ
り、ヒープ用に使用される。以上のメモリ領域は、ダウ
ンロードに伴うオブジェクトの生成や削除の過程で、領
域の割り当てや削除が行われる。
【0041】2.2 システムオブジェクトダウンロー
ドに対する要求事項 システムオブジェクトのダウンロードを行う場合に要求
される事項は、大きく2つに分類される。一つは、アプ
リケーションオブジェクトをダウンロードするのではな
く、システムオブジェクトがダウンロードの対象だから
こそ特に要求される事項であり、もう一つは、特に組み
込みOSということを意識した場合に要求される事項で
ある。
【0042】具体的には、システムオブジェクトはアプ
リケーションオブジェクトにサービスを提供するので、
システムオブジェクトをダウンロードする際は、次の2
つの要求を満たす必要がある。
【0043】(1)ダウンロード要求証明 システムオブジェクトのダウンロードを全てのオブジェ
クトに許可することはできない。不適当なタイミングで
のシステムオブジェクトの置換や悪意のある置換によ
り、システムのサービス提供が不可能になり、最悪の場
合には、システムが動作不能になる可能性があるからで
ある。このような事態を避けるため、ダウンロードを要
求するオブジェクトに対して「ダウンロード要求証明」
を与えることにより、システムオブジェクトのダウンロ
ードを要求可能なオブジェクトを制限する方法が必要で
ある。
【0044】(2)安全置換性 システムオブジェクトのダウンロードを開始した時、ア
プリケーションオブジェクトに対してサービスを提供中
の可能性がある。この時、システムオブジェクトの置換
により、そのアプリケーションオブジェクトの動作が保
証されない可能性がある。例えば、メッセージ送信サー
ビスを提供するシステムオブジェクトを置換している最
中に、メッセージ送信要求が発生すると、誤動作する可
能性がある。また、メッセージ送信サービスを提供する
システムオブジェクトを置換している最中に、メッセー
ジ送信処理の途中のオブジェクトがある場合、置換され
るシステムオブジェクトには、メッセージ送信サービス
のための中間データ(例えば、メッセージキューに格納
されているメッセージ)があるが、このデータを置換後
の新しいシステムオブジェクトへ委譲する必要がある。
このような問題を解決するために、「安全置換性」を確
保できる仕組み必要である。
【0045】また、組み込みOS上でシステムオブジェ
クトのダウンロード機構を実現することを考慮すると、
システムオブジェクトをダウンロードする際は、次の2
つの要求を満たすことが望ましい。
【0046】(1)ダウンロード機構の使用メモリ量を
低減させるために、ダウンロード機構を単純化すること
が望ましい。そのため、システムオブジェクト及びアプ
リケーションオブジェクトでダウンロード機構を共有す
るように実装することが望ましい。
【0047】(2)ダウンロードでオブジェジェクトの
置換中に使用するメモリ量を低減することが望ましい。
そのため、オブジェクトの置換中に必要な中間生成物の
量を低減することが望ましい。
【0048】2.3 要求事項に対する解決策 上述のようなシステムオブジェクトダウンロードに対す
る要求を満たしたダウンロード方法について説明する。
【0049】2.3.1 ダウンロード受諾レベルとダ
ウンロード許可レベル 2.2章で示した要求事項のうち、「ダウンロード要求
証明」の要求を満たすために、「ダウンロード受諾レベ
ル」と「ダウンロード許可レベル」を導入する。前者は
ダウンロードされるオブジェクトに設定され、後者はダ
ウンロードの要求を出すオブジェクトに設定される。ダ
ウンロード受諾レベルは、各オブジェクトに一つずつ設
定される整数値で、そのオブジェクトのダウンロードの
困難性を定義する。この値が大きければ、ダウンロード
が難しくなる。システム設計者はシステムオブジェクト
に適当なダウンロードレベルを設定する。基本的にアプ
リケーションオブジェクトのダウンロード受諾レベル
は、システムオブジェクトのダウンロード受諾レベルよ
り小さく設定される。一方、ダウンロードを要求するオ
ブジェクトには、ダウンロード許可レベルが設定され
る。ダウンロード許可レベルはそのオブジェクトのダウ
ンロードする能力を示す値である。このレベルもシステ
ム設計者により適当な値が設定される。
【0050】例えば、オブジェクトAのダウンロード許
可レベルがDa_Aで、オブジェクトBのダウンロード受諾
レベルがDp_Bの場合、オブジェクトBがシステム中で動
作中のオブジェクトAを置換することを許可されるの
は、下記の条件1を満たす場合である。
【0051】Da_A > Dp_B ・・・条件1 例を図4に示す。アプリケーションオブジェクトA1の
ダウンロード許可レベルが10であり、アプリケーショ
ンオブジェクトB1,B2のダウンロード受諾レベルが
5であり、システムオブジェクトC1,C2のダウンロ
ード受諾レベルが20であるとする。このとき、A1
は、B2をダウンロードして、B1をB2に置換するこ
とが可能であるが、C2をダウンロードして、C1をC
2に置換することはできない。
【0052】2.3.2 システム依存リストとサービ
スリスト 2.2章で示した「安全置換性」の要求を満たすため
に、「システム依存リスト」と「サービスリスト」を導
入する。あるアプリケーションオブジェクトとシステム
オブジェクトの間には、サービス依頼者/サービス提供
者としての相対関係がある。この相対関係を知ること
は、ダウンロードされ置換されるシステムオブジェクト
が、どのアプリケーションオブジェクトと関係があるか
を調べるのに有用である。この相対関係を表現するの
が、システム依存リストとサービスリストである。サー
ビス依頼者からサービス提供者を参照する場合、サービ
ス依頼者に保持されるシステム依存リストが用いられ
る。一方、サービス提供者からサービス依頼者を参照す
るには、サービス提供者に保持されるサービスリストが
用いられる。
【0053】あるサービス依頼者であるアプリケーショ
ンオブジェクトの動作は、システムオブジェクトで提供
されるサービスの集合としても定義される。ここで、シ
ステムオブジェクトがどのアプリケーションオブジェク
トにサービスを提供しているかを示すリンクがシステム
依存リストである。システム依存リストDlは、次のよ
うに定義される。
【0054】システム依存リストの定義 Dl={<Index_1, Lst_1> , <Index_2, Lst_2>,..., <In
dex_n, Lst_n>} Index_n:サービスのインデックス Lst_n :サービスを提供するシステムオブジェクトのID
の集合 Index_nは、オペレーティングシステムが提供するサー
ビスのインデックスである。Lst_nは、サービスを提供
するシステムオブジェクトのリストである。システム依
存リストは、全てのオブジェクトに対して定義される。
このリンクは、アプリケーションオブジェクトにおいて
サービス要求があった場合、カーネルがシステムオブジ
ェクトを起動する際にも用いられる。
【0055】なお、システム依存リストは、基本的には
アプリケーションプログラマがアプリケーションオブジ
ェクトを定義するときに、どのサービスを提供されたい
かを考慮して定義する。しかしながら、アプリケーショ
ンプログラマが全てのシステムサービスを把握するのは
負担になるので、システムのサービスを定義するシステ
ム管理者によって予め定義されたシステム依存リストを
容易に選択使用する仕組みを提供することが望ましい。
【0056】システムオブジェクトがダウンロードによ
り置換される場合、システム依存リストは、利用される
と同時に更新される必要がある。なぜなら、そこに含ま
れるシステムオブジェクトのIDが変更される可能性が
あるからである。更新のタイミングは、2.3.3で述
べる。
【0057】一方、サービス提供者であるシステムオブ
ジェクトは、次のように定義されるサービスリストSI
を持つ。
【0058】サービスリストの定義 Sl={<ID_1, Dl_1>, <ID_2, Dl_2>, ..., <ID_n, Dl_n
>} ID_n:アプリケーションオブジェクトの識別子 Dl_n:アプリケーションオブジェクトのシステム依存リ
スト サービスリストは、システムオブジェクトをダウンロー
ドして既存のシステムオブジェクトを置換する場合に、
そのシステムオブジェクトのサービスが続行中である
か、また、システムオブジェクトへのサービス提供要求
中かをチェックするのに用いられる。すなわち、オブジ
ェクト「Downloader」は、置換されるシステムオブジェ
クトのサービスリストを調査し、そのシステムオブジェ
クトがサービスを提供するアプリケーションオブジェク
トの存在を調べる。アプリケーションオブジェクトが存
在した場合は、例えば、置換を失敗させるとか、置換を
延期するなどの処置を行う。サービスリスト内のシステ
ム依存リストは、各アプリケーションオブジェクトの持
つシステム依存リストが正しいものであることをチェッ
クするためにも用いられる。
【0059】あるアプリケーションオブジェクトがシス
テム上にインストールされるとき、そのアプリケーショ
ンオブジェクトがどのシステムオブジェクトにサービス
を提供されるかは、システム依存リストの選択により決
定される。オブジェクト「Downloader」は、システム依
存リストを解析し、関連するシステムオブジェクトのサ
ービスリストに、インストールされるアプリケーション
オブジェクトのIDとシステム依存リストが登録される。
システムオブジェクトがどのオブジェクトにもサービス
を提供していないならば、サービスリストはnullであ
る。
【0060】図5にシステム依存リストとサービスリス
トの例を示す。図5の例では、メッセージ送信のサービ
スのインデックスが0x10で、「Mailer」という名前のシ
ステムオブジェクトがそのサービスを提供する。また、
メモリ割り当てサービスのインデックスが0x20で、「Me
mMgr」という名前のシステムオブジェクトがメモリ割り
当てサービスを提供する。アプリケーションオブジェク
ト「ObjectA」のシステム依存リストDl_aは、{<0x10,
{Mailer}>, <0x20,{MemMgr}>,...}のようになる。カー
ネルは、メッセージ送信要求をディスパッチしたら、シ
ステム依存リストDl_aをたどってオブジェクト「Maile
r」を起動する。
【0061】この例において、オブジェクト「Mailer」
を置換する際、オブジェクト「Downloader」は、オブジ
ェクト「Mailer」のサービスリストSl_Mailer={<ID_a,
Dl_a>, <ID_b, DI_b>} (ただし、ID_aはObjectAの識別
子、ID_bはObjectBの識別子)をチェックする。そして、
アプリケーションオブジェクトの存在の有無を調べ、サ
ービス提供中かをチェックする。提供中でない場合は、
サービス要求が来ないように処理をする。アプリケーシ
ョンオブジェクト「ObjectA」とシステムオブジェクト
「Mailer」を連続して置換する場合、「Mailer」が置換
される前に、「ObjectA」が既に削除されていれば、「M
ailer」は問題なく削除、置換が可能である。
【0062】2.4 置換アルゴリズム つぎに、システムオブジェクトをダウンロードして、既
存のシステムオブジェクトを置換するアルゴリズムにつ
いて説明する。以下に説明するアルゴリズムは、「ダウ
ンロード要求証明」及び「安全置換性」の要求事項を満
たすものである。
【0063】2.3章で述べたシステムオブジェクトの
ダウンロード方法は、アプリケーションオブジェクトの
ダウンロードと同時に使用できる。アプリケーションオ
ブジェクトのダウンロードに連動させて、アプリケーシ
ョンの動作の性質に合わせたシステムオブジェクトをダ
ウンロードすれば、アプリケーションオブジェクトの動
作をカスタマイズすることが可能になる。アプリケーシ
ョンオブジェクトのダウンロードとシステムオブジェク
トのダウンロードは、同一アルゴリズムによって与えら
れる。これにより、組み込みOSとして考えた場合、可
能な限りのダウンロード実現部分をアプリケーションオ
ブジェクトとシステムオブジェクトで共有することが可
能になる。
【0064】しかしながら、オブジェクト「Downloade
r」の内部動作において、アプリケーションオブジェク
トとシステムオブジェクトの区別をする方法が必要にな
る。このための一つの方法としては、それぞれのシステ
ム依存リストがアプリケーションオブジェクト用のもの
か、システムオブジェクト用のものかを予め決めておく
ことが考えられる。この方法だと、余計な判別用フラグ
をオブジェクト内部情報として定義する必要がなくな
り、メモリ使用量節約に有用である。
【0065】システムオブジェクトの置換過程は次の2
つのフェーズからなる。
【0066】(1)アンロードフェーズ アンロードフェーズでは、古いオブジェクトを削除す
る。アンロードフェーズは、削除フェーズと解放フェー
ズの2つのフェーズからなる。削除フェーズでは、古い
システムオブジェクトの動作を無効にし、解放フェーズ
では、古いシステムオブジェクトが使用中のデータ領域
を解放する。
【0067】(2)ロードフェーズ ロードフェーズでは、新しいオブジェクトを生成する。
ロードフェーズは、割当フェーズと生成フェーズの2つ
のフェーズからなる。割当フェーズでは、新しいシステ
ムオブジェクトが使用するデータ領域を割り当てて初期
化し、生成フェーズでは、新しいシステムオブジェクト
の動作を有効にする。
【0068】以下、これらの各フェーズの詳細について
説明する。
【0069】2.4.1 アンロードフェーズ アンロードフェーズでは、新しいシステムオブジェクト
をダウンロードする準備として、既存のシステムオブジ
ェクトの動作を無効にし、削除されるオブジェクトの使
用メモリ領域を解放する。
【0070】まず、アンロードフェーズの前半部分であ
る削除フェーズについて、図6を参照して説明する。
【0071】削除フェーズでは、先ず、ステップS1に
おいて、上述した条件1をチェックする。すなわち、ア
ンロード要求をしたオブジェクトのダウンロード許可レ
ベルが、アンロードされるシステムオブジェクトのダウ
ンロード受諾レベルよりも大きいかを調べる。そして、
条件1を満たさない場合は、エラーを返し、アンロード
フェーズを中止する。
【0072】次に、ステップS2において、削除される
オブジェクトがシステムオブジェクトかアプリケーショ
ンオブジェクトかを判別する。オブジェクトがアプリケ
ーションオブジェクトの場合は削除フェーズを終了し、
システムオブジェクトの場合はステップS3へ進む。
【0073】ステップS3では、動作中オブジェクトの
チェックを行う。オブジェクト「Downloader」は、削除
するシステムオブジェクトのサービスリストがnullかど
うかをチェックする。nullの場合は削除フェーズを終了
し、サービスリストがnullでない場合はステップS4へ
進む。
【0074】ステップS4では、サービスリストに登録
されているアプリケーションオブジェクトに対して、サ
ービスリストにあるシステム依存リストを正しく保持し
ているかをチェックする。システム依存リストを正しく
保持していない場合は、エラーを返し、アンロードフェ
ーズを中止する。
【0075】次に、ステップS5において、サービスリ
ストに登録されているアプリケーションオブジェクトの
動作状態をチェックする。なお、アプリケーションオブ
ジェクトの動作状態には、「待機状態(Dormant)」、
「動作中(Running)」、「返答待ち(Waiting)」、
「無効状態(Free)」がある得る。「待機状態」は、他
のオブジェクトからメッセージの受付が可能な状態であ
り、「動作中」は、他のオブジェクトから受け取ったメ
ッセージに基づいて処理を行っている状態であり、「返
答待ち」は、他のオブジェクトに送信したメッセージの
返答を待っている状態であり、「無効状態」は、非実行
状態である。なお、「無効状態」では、他のオブジェク
トからのメッセージ受付も不可である。
【0076】そして、ステップS5でのチェックの結
果、動作状態が「動作中」又は「返答待ち」のアプリケ
ーションオブジェクトがある場合は、ステップS6へ進
む。
【0077】ステップS6では、システムオブジェクト
の削除を延期するように、システムオブジェクトの一つ
であるスケジューラに依頼する。スケジューラは、スケ
ジューリングを行うシステムオブジェクトであり、オブ
ジェクトの動作終了時に起動するメソッドを登録でき
る。そこで、システムオブジェクト削除延期の依頼を受
けたスケジューラは、オブジェクトリストに動作中のア
プリケーションオブジェクトを登録し、当該アプリケー
ションオブジェクトの動作終了時にアンロードフェーズ
が再開するようにする。
【0078】一方、ステップS5でのチェックの結果、
動作状態が「動作中」又は「返答待ち」のアプリケーシ
ョンオブジェクトがない場合は、ステップS7へ進む。
【0079】ステップS7では、削除を要求されたオブ
ジェクトの動作状態を「無効状態」にする。この時点
で、このオブジェクトはスケジューリングされることが
なくなり、メッセージ受信もしなくなる。
【0080】次に、ステップS8において、システムオ
ブジェクトのサービスリストを新しいオブジェクトに受
け渡すため、削除対象のシステムオブジェクトのサービ
スリストをオブジェクト「Downloader」に登録する。
【0081】次に、ステップS9において、削除対象の
オブジェクトの内部状態を、新しいオブジェクトに譲渡
できるようにするために、削除対象のオブジェクトの内
部状態を、オブジェクト「Downloader」に登録する。ま
た、新しいオブジェクトに譲渡するデータもオブジェク
ト「Downloader」に登録する。ここで、新しいオブジェ
クトに何を譲渡するかについての情報や、新しいオブジ
ェクトにそれらを受け渡すために起動されるメソッド
は、予めオブジェクト「Downloader」に登録しておく。
なお、このステップS9の処理は必須ではなく、システ
ムオブジェクトの種類によって、内部状態等の譲渡が必
要な場合にだけ行う。
【0082】以上で削除フェーズが完了し、次に解放フ
ェーズに移る。アンロードフェーズの後半部分である解
放フェーズについて、図7を参照して説明する。
【0083】解放フェーズでは、先ず、ステップS21
において、削除対象のオブジェクトのIDを削除すると
ともに、実行スレッド、実行スタック、ヒープ用のメモ
リ領域を解放する。
【0084】次に、ステップS22において、削除対象
のオブジェクトのコード領域及びデータ領域を解放す
る。
【0085】最後に、ステップS23において、オブジ
ェクトが削除されたことを、予め登録されている他のオ
ブジェクトに通知する。これは、削除されたオブジェク
トへの参照を削除したり、内部データの再初期化を行う
ためである。
【0086】以上で、古いシステムオブジェクトの動作
を無効にする削除フェーズと、古いシステムオブジェク
トが使用中のデータ領域を解放する解放フェーズとが完
了し、古いオブジェクトを削除するアンロードフェーズ
が完了する。
【0087】なお、組み込みシステムの性質を考慮した
場合、アンロードフェーズにおいて、動作中のオブジェ
クトの有無のチェック(削除フェーズのステップS5)
は、必ずしも必要ではない。例えば、置換するシステム
オブジェクトからサービス提供を受けるアプリケーショ
ンオブジェクトをアプリケーションプログラマの責任で
全て停止するようにしてもよい。もしくは、削除した後
にシステムオブジェクトの動作を無効にするようにして
もよい。この方法では、置換中に新旧の2つのシステム
オブジェクトが同時存在することがなくなるので、置換
に必要なメモリ量が節約できる。さらに、動作中のアプ
リケーションオブジェクトの処理をするコードが不必要
になることも、メモリ量の節約になる。
【0088】なお、動作中のアプリケーションオブジェ
クトを処理する手続きが必要か否かを決定する条件は、
アプリケーションオブジェクトを停止させるために必要
なプログラミングの負担と、必要なメモリ量とのトレー
ドオフになる。
【0089】また、システムオブジェクトの内部状態の
情報等の受け渡し(削除フェーズのステップS9)を禁
止し、オブジェクトの内部状態の情報等の受け渡しの処
理を行うコードを削除しても、メモリ量を節約可能であ
る。
【0090】このように、削除フェーズのアルゴリズム
は、図6に示した例に限定されるものではない。したが
って、システムのコンフィギュレーションや性質によ
り、削除フェーズのアルゴリズムを選択できるようにし
ておくことが望ましい。
【0091】2.4.2 ロードフェーズ ロードフェーズでは、新しいオブジェクトに必要なメモ
リ領域を確保し、オブジェクトをダウンロードする。
【0092】まず、ロードフェーズの前半部分である割
当フェーズについて、図8を参照して説明する。
【0093】割当フェーズでは、先ず、ステップS1に
おいて、上述した条件1をチェックする。すなわち、ア
ンロード要求をしたオブジェクトのダウンロード許可レ
ベルが、アンロードされるシステムオブジェクトのダウ
ンロード受諾レベルよりも大きいかを調べる。そして、
条件1を満たさない場合は、エラーを返し、ロードフェ
ーズを中止する。
【0094】なお、本例では、ここでエラーが返された
としても、システムではアンロードフェーズのキャンセ
ルをしないようなアルゴリズムとしている。したがっ
て、アプリケーションプログラマは、生成されるオブジ
ェクトが条件1を満たすことの確認を、アンロードフェ
ーズの前に確実に行う必要がある。システムがアンロー
ドフェーズのキャンセル処理を行わない理由は、生成さ
れるオブジェクト用のメモリ領域をロードフェーズ前に
確保するために、削除されるオブジェクトの使用するメ
モリ領域を解放するという仕様にしているためである。
【0095】条件1を満たしている場合は、ステップS
32に進み、 新しく生成するオブジェクトのデータ領
域及びコード領域の割り当てを行う。
【0096】次に、ステップS33において、ダウンロ
ード元のソースメディア(ネットワーク上のファイルシ
ステム、或いはリムーバブルメディアやFlashRO
Mなどの記録媒体)から、新たに生成するオブジェクト
の内容をコピーする。
【0097】次に、ステップS34において、新しく生
成するオブジェクトに対して、ID、実行スレッド、実
行スタック、ヒープ用メモリ領域を割り当てる。
【0098】以上で割当フェーズが完了し、次に生成フ
ェーズに移る。ロードフェーズの後半部分である生成フ
ェーズについて、図9を参照して説明する。
【0099】生成フェーズでは、先ず、ステップS41
において、生成するオブジェクトがシステムオブジェク
トかアプリケーションオブジェクトかを判別する。生成
するオブジェクトがシステムオブジェクトの場合は、ス
テップS42へ進む。なお、生成するオブジェクトがア
プリケーションオブジェクトの場合は生成フェーズを終
了する。
【0100】ステップS42では、アンロードフェーズ
で削除されたシステムオブジェクトのサービスリスト
を、生成するオブジェクトのサービスリストとして登録
する。換言すれば、古いシステムオブジェクトのサービ
スリストを、新しいシステムオブジェクトに譲渡する。
【0101】次に、ステップS43において、ステップ
S42で譲渡されたサービスリストに基づいて、生成さ
れたシステムオブジェクトがサービスを提供するアプリ
ケーションオブジェクトが存在するかをチェックする。
そして、存在する場合は、ステップS44へ進み、存在
しない場合は、ステップS45へ進む。
【0102】ステップS44では、生成されたシステム
オブジェクトがサービスを提供する各アプリケーション
オブジェクトについて、システム依存リスト中のシステ
ムオブジェクトのIDを更新する。すなわち、それらの
アプリケーションオブジェクトのシステム依存リスト中
の古いシステムオブジェクトのIDを、新しく生成する
システムオブジェクトのIDに置き換える。その後、ス
テップS45へ進む。
【0103】ステップS45では、オブジェクト「Down
loader」に削除されたシステムオブジェクトの内部状態
が登録されているかをチェックする。登録されていない
場合は、生成フェーズを終了し、登録されている場合
は、ステップS46へ進む。
【0104】ステップS46では、削除されたシステム
オブジェクトの内部状態を生成されたシステムオブジェ
クトに譲渡する。換言すれば、古いシステムオブジェク
トから譲渡される内部データを新しいシステムオブジェ
クトに受け渡す。
【0105】以上で、新しいシステムオブジェクトが使
用するデータ領域を割り当て初期化する割り当てフェー
ズと、新しいシステムオブジェクトの動作を有効にする
生成フェーズとが完了し、新しいオブジェクトを生成す
るロードフェーズが完了する。
【0106】2.5 ダウンロード用アプリケーション
インタフェース アプリケーションオブジェクトのダウンロードとシステ
ムオブジェクトのダウンロードは、同一のアプリケーシ
ョンインタフェース(API:Application Program In
terface)によって記述される。具体的には、本例で
は、システムオブジェクト及びアプリケーションオブジ
ェクトのダウンロード用のAPIとして、下記に示す2
つのAPI「Load()」「Unload()」を提供する。なお、
これらのAPIは、アプリケーションオブジェクトの内
部、及びシステムオブジェクトの内部で使用可能であ
る。
【0107】error Load (Symbol objectName); error Unload (Symbol objectName); Load()は、オブジェクトをダウンロードするためのAP
Iである。置換の手続きの中では、ロードフェーズがLo
ad()の呼び出しにより実行される。Load()が呼び出され
ると、引数「objectName」で指定されるオブジェクトが
ダウンロードされる。アプリケーションオブジェクトと
システムオブジェクトは基本的に同一名前空間に存在す
る。ただし、アプリケーションオブジェクトをダウンロ
ードする場合は、システム依存リストの更新等の処理
(生成フェーズのステップS42〜S46)は省略され
る。
【0108】Unload()は、オブジェクトをアンロードす
るためのAPI、すなわち既に存在しているオブジェク
トを削除するためのAPIである。置換の手続きの中で
は、アンロードフェーズがUnload()の呼び出しにより実
行される。Unload()が呼び出されると、引数「objectNa
me」で指定されるオブジェクトがアンロードされる。ア
ンロードの対象になるものは、アプリケーションオブジ
ェクトでもシステムオブジェクトでもよい。ただし、ア
プリケーションオブジェクトのアンロードの場合は、シ
ステム依存リストのチェック等の処理(削除フェーズの
ステップS3〜S9)は省略される。
【0109】上記2つのAPIは共にアプリケーション
オブジェクト内で用いることができるので、アプリケー
ションオブジェクトに都合の良いタイミングで、アプリ
ケーションオブジェクトやシステムオブジェクトをダウ
ンロードすることが可能である。置換を行う場合の一連
の動作は、Unload()とLoad()の連続使用により実現でき
る。
【0110】例えば、2つのアプリケーションオブジェ
クトAppA, AppBがあるとする。このとき、一方のアプリ
ケーションオブジェクトAppAの性質に応じて最適化され
たシステムオブジェクトSforAと、他方のアプリケーシ
ョンオブジェクトAppBの性質に応じて最適化されたシス
テムオブジェクトSforBとを用意しておく。そして、App
A, AppBをダウンロードするアプリケーションオブジェ
クトをAppCとする。以下のプログラムは、この例におけ
るオブジェクトAppCのプログラム例である。
【0111】 AppCは、AppAをダウンロードする前に、LoadAppA()メソ
ッド中で、Load() を用いてSforAをロードする。これに
より、AppAには最適なシステムサービスが提供される。
その後、AppBを実行するときには、ReplaceAppA()メソ
ッドで、AppA及びSforAをアンロードし、AppB及びSforB
をダウンロードする。これにより、AppBにも最適なシス
テムサービスが提供される。AppBをダウンロードする時
に、古いアプリケーションオブジェクトAppAと、AppBの
実行には不必要なシステムオブジェクトSforAとは、Unl
oad() を用いてアンロードしておく。これにより、AppB
の実行時や置換時に不必要なメモリを消費することがな
くなる。
【0112】3.アプリケーションオブジェクトのカス
タマイズの例と効果 システムオブジェクトダウンロードを用いたアプリケー
ションオブジェクト実行のカスタマイズの例と、その効
果について説明する。
【0113】3.1 例1:メッセージパッシング方法
の改善 アプリケーションオブジェクトAppAは、3つのアプリケ
ーションオブジェクトAO-a1, AO-a2, AO-a3からなり、
それらのアプリケーションオブジェクト間では対等の優
先度及び頻度のメッセージパッシングを行うとする。こ
のアプリケーションオブジェクトAppAの実行性能の観点
からは、FIFOキューによる単純なメッセージパッシング
機構が必要とされる。
【0114】また、アプリケーションオブジェクトAppB
も、3つのアプリケーションオブジェクトAO-b1, AO-b
2, AO-b3からなるとする。そして、多くの場合、AO-b1
とAO-b2との間のメッセージパッシングは、AO-b1とAO-b
3との間のメッセージパッシングよりも優先的にスケジ
ューリングされるとする(なお、これは、メッセージパ
ッシング機構ではなく、スケジューリング機構的に行わ
れる。)。また、AO-b1とAO-b3との間には、優先度の高
いメッセージパッシングが時々行われるとする。したが
って、このアプリケーションオブジェクトAppBに対して
は、優先度に応じてメッセージを処理するメッセージパ
ッシング機構が必要とされる。アプリケーションオブジ
ェクトAppAで用いられる単純なメッセージパッシング機
構を、アプリケーションオブジェクトAppBが用いると、
高優先度メッセージの処理に遅延が起こり、実行性能が
劣化する。
【0115】また、単純なメッセージパッシング機構を
持つシステムオブジェクトをMO1とし、優先度に応じて
メッセージを処理するメッセージパッシング機構を持つ
システムオブジェクトをMO2とする。そして、アプリケ
ーションオブジェクトAppAとアプリケーションオブジェ
クトAppBは同時に動作せず、これらのアプリケーション
オブジェクトAppA,AppBは必要に応じて他のアプリケー
ションオブジェクトAppCによってダウンロードされ実行
されるとする。
【0116】アプリケーションオブジェクトAppCは、Ap
pAをダウンロードするとき、AO-a1,AO-a2, AO-a3をダウ
ンロードする前に、MO1をダウンロードする。このよう
にAO-a1, AO-a2, AO-a3及びMO1をダウンロードしたシス
テムの状態を示したのが図10である。このとき、AppB
が存在している場合は場合は、AppBを構成しているアプ
リケーションオブジェクトAO-b1, AO-b2, AO-b3をアン
ロードし、続いてMO2をアンロードする。
【0117】また、アプリケーションオブジェクトAppC
は、AppBをダウンロードするとき、AO-b1, AO-b2, AO-b
3をダウンロードする前に、MO2をダウンロードする。こ
のようにAO-b1, AO-b2, AO-b3及びMO2をダウンロードし
たシステムの状態を示したのが図11である。このと
き、AppAが存在している場合は、AppAを構成しているア
プリケーションオブジェクトAO-a1, AO-a2, AO-a3をア
ンロードし、続いてMO1をアンロードする。
【0118】以上のようにダウンロード機能を用いるこ
とで、性質の異なる2つのアプリケーションオブジェク
トAppA, AppBのそれぞれに対して、最適なメッセージパ
ッシング機構を用いることが可能になる。
【0119】以下のプログラムは、アプリケーションオ
ブジェクトAppCが、アプリケーションオブジェクトAppA
をダウンロードするときに用いるメソッドLoadAppA()の
プログラム例である。
【0120】 ここで、アプリケーションオブジェクトAppCのダウンロ
ード許可レベルDa_appcと、システムオブジェクトMO1の
ダウンロード受諾レベルDp_mo1と、システムオブジェク
トMO2のダウンロード受諾レベルDp_mo2との間には、上
述した条件1を満たすように、Da_appc>Dp_mo1、且
つ、Da_appc>Dp_mo2の関係が成り立つようにしてお
く。
【0121】なお、上記の例において、システムオブジ
ェクトMO1のサービスリストをSl_mo1とし、システムオ
ブジェクトMO2のサービスリストをSl_mo2とし、アプリ
ケーションオブジェクトAO-a1,AO-a2,AO-a3のシステム
依存リストをそれぞれDl_AO-a1,Dl_AO-a2,Dl_AO-a3と
し、アプリケーションオブジェクトAO-b1,AO-b2,AO-b3
のシステム依存リストをそれぞれDl_AO-b1,Dl_AO-b2,Dl
_AO-b3としたとき、それらはそれぞれ以下のように記述
される。
【0122】Sl_mo1={<ID_AO-a1,Dl_AO-a1>,<ID_AO-a
2,Dl_AO-a2>,<ID_AO-a3,Dl_AO-a3>} Dl_AO-a1 = {<0x10, {MO1}>...} Dl_AO-a2 = {<0x10, {MO1}>...} Dl_AO-a3 = {<0x10, {MO1}>...} Sl_mo2={<ID_AO-b1,Dl_AO-b1>,<ID_AO-b2,Dl_AO-b2>,<
ID_AO-b3,Dl_AO-b3>} Dl_AO-b1 = {<0x10, {MO2}>...} Dl_AO-b2 = {<0x10, {MO2}>...} Dl_AO-b3 = {<0x10, {MO2}>...}
【0123】3.2 例2:デバッグモード ダウンロード機構をデバッグモードに適用した例を図1
2を用いて説明する。
【0124】ここでは、ダウンロードして実行されるア
プリケーションオブジェクトAOをデバッグすることを考
える。そして、デバッグのために、メッセージパッシン
グのモニタリングを試みるとする。
【0125】メッセージパッシングのモニタリングを試
みるには、メッセージパッシング機構を変更してメッセ
ージダンプ機能を入れ、プリンタやディスプレイ等の出
力装置にモニタリングの結果を出力するようにする必要
がある。
【0126】そこで、図12に示すように、アプリケー
ションオブジェクトAOをダウンロードするタイミング
で、デバッグ機能を持つメッセージパッシング機構を持
つシステムオブジェクトMO2をダウンロードして、通常
のメッセージパッシング機構を持つシステムオブジェク
トMO1をMO2に置換する。そして、アプリケーションオブ
ジェクトAOのデバッグの終了後、MO2をMO1に再置換す
る。
【0127】このようにすれば、全てのアプリケーショ
ンオブジェクトのメッセージパッシングがモニタリング
されるのではなく、デバッグ対象のオブジェクトのメッ
セージパッシングのみがモニタリングされるため、デバ
ッグが容易になる。
【0128】3.3 例3:適応的ネットワークプロト
コル 2つの異なるネットワークプロトコルを使用して、リモ
ートプログラムと通信する二種類のアプリケーションプ
ログラムApp1,App2を考える。ここで、App1はネットワ
ークプロトコルとしてUDP/IP(User Datagram Protocol
/Internet Protocol)を用い、App2はネットワークプ
ロトコルとしてDSM-CC(Digital StorageMedia Command
and Control)を用いるとする。ネットワークプロトコ
ルの実装は一般的にサイズが大きいので、組み込みOS
に予め多くのプロトコルを実装しておくのは困難であ
る。したがって、このような場合、本発明を適用したダ
ウンロード機構は非常に有効である。
【0129】ダウンロード機構を適用した場合の例を図
13を用いて説明する。図13に示すように、App1はア
プリケーションオブジェクトAO1で構成され、App2はア
プリケーションオブジェクトAO2で構成されるとする。
また、UDP/IPを実装するシステムオブジェクトをNO1と
し、DSM-CCを実装するシステムオブジェクトをNO2とす
る。そして、AO1をダウンロードする場合は、AO1をダウ
ンロードする前にAO2をアンロードし、その後、AO1をダ
ウンロードする。また、AO2をダウンロードする場合
は、AO2をダウンロードする前にAO1をアンロードし、そ
の後、AO2をダウンロードする。
【0130】このようにネットワークプロトコルのサー
ビスを提供するシステムオブジェクトのダウンロードを
行うことにより、アプリケーションオブジェクトが必要
なネットワークプロトコルを常に用意することが可能で
ある。
【0131】3.4 例4:適応的実行環境 単一のサービスだけでなく、アプリケーションオブジェ
クトの動作する動作環境全体を変更したい場合がある。
そのような場合の例を、図14を用いて説明する。
【0132】アプリケーションプログラムAppAは、並行
オブジェクト指向モデルで定義される実行環境で動作
し、アプリケーションオブジェクトAO-a1, AO-a2から構
成されるとする。そして、AppA用の実行環境を定義する
システムオブジェクトとして「Mailer1」「MemMgr1」
「ObjectCreator」があるとする。なお、「Mailer1」は
メッセージパッシング機構を提供するシステムオブジェ
クトであり、「MemMgr1」はメモリ管理機構を提供する
システムオブジェクトであり、「ObjectCreator」はオ
ブジェクト生成/削除機構を提供するシステムオブジェ
クトである。
【0133】また、アプリケーションプログラムAppB
は、マルチスレッド使用の動作環境で動作し、アプリケ
ーションオブジェクトAO-b1,AO-b2から構成されるとす
る。そして、AppB用の実行環境を定義するシステムオブ
ジェクトとして、「Mailer2」「MemMgr2」「ThreadCrea
tor」があるとする。なお、「Mailer2」はスレッド間通
信機構を提供するシステムオブジェクトであり、「MemM
gr2」はメモリ管理機構を提供するシステムオブジェク
トであり、「ThreadCreator」はスレッド生成/削除機構
を提供するシステムオブジェクトである。
【0134】本例では、アプリケーションプログラムAp
pAが動作するとき、「Mailer2」「MemMgr2」「ThreadCr
eator」は不必要であり、また、アプリケーションプロ
グラムAppBが動作するとき、「Mailer1」「MemMgr1」
「ObjectCreator」は不必要である。
【0135】そこで、図14に示すように、アプリケー
ションプログラムAppAをダウンロードして実行するとき
は、「AppB」「Mailer2」「MemMgr2」「ThreadCreato
r」をアンロードした上で、「AppA」「Mailer1」「MemM
gr1」「ObjectCreator」をダウンロードし、「Mailer
1」「MemMgr1」「ObjectCreator」を含むシステム上
で、アプリケーションプログラムAppAを実行する。
【0136】同様に、アプリケーションプログラムAppB
をダウンロードして実行するときは、「AppA」「Mailer
1」「MemMgr1」「ObjectCreator」をアンロードした上
で、「AppB」「Mailer2」「MemMgr2」「ThreadCreato
r」をダウンロードし、「Mailer2」「MemMgr2」「Threa
dCreator」を含むシステム上で、アプリケーションプロ
グラムAppBを実行する。
【0137】なお、オブジェクトのダウンロードを管理
するアプリケーションオブジェクトをAppCとすると、例
えばAppAをロードする際、アプリケーションオブジェク
トAppCは、アプリケーションプログラムインターフェー
ス「Load()」「Unload()」を用いた下記のようなメソッ
ドAppC::LoadAppA()を実行する。
【0138】 なお、同様な例として、Unix環境で動作するアプリケー
ションと、Java環境で動作するアプリケーションを考え
た場合に、Unix環境とJava環境を置換する例が挙げられ
る。
【0139】4.オペレーティングシステム上での構成
方法の例 オペレーティングシステム上でダウンロード機構を実現
するのに、その機構をいくつかのオブジェクトに分離し
て実現する例について示す。
【0140】この例では、図15に示すように、システ
ムオブジェクト「Downloader」「ObjectManager」「Ref
lector」により、ダウンロード機構が提供される。「Do
wnloader」は、2.3.3章で説明したロードフェーズ
の割当フェーズとアンロードフェーズの解放フェーズと
を実現する。「ObjectManager」は、2.3.3章で説
明したロードフェーズの生成フェーズとアンロードフェ
ーズの削除フェーズとを実現する。「Reflector」は、
実行環境に合わせてアプリケーションオブジェクトの初
期化を行うとともに、システムオブジェクトのダウンロ
ードの手続きの中では、ロードフェーズのシステム依存
リストの更新を行う。
【0141】アプリケーションプログラムインターフェ
ース「Load()」「Unload()」は、「Downloader」がサー
ビス提供者となる。例えば、Load()が用いられると、
「Downloader」が起動され、「Downloader」は、ダウン
ロードするオブジェクトのイメージ(コード領域及びデ
ータ領域を含む)と、オブジェクト名などのオブジェク
ト情報を含むバイナリイメージとを、システム上のロー
カルメモリにコピーする。そして、「ObjectManager」
にオブジェクトの使用するメモリ領域の初期化を依頼す
る。その後、「ObjectManager」により、IDや実行ス
レッド等が生成され初期化される。そして、ダウンロー
ドされたオブジェクトの動作を開始する。
【0142】5.ハードウェアの構成例 本発明が適用されるハードウェアの構成例を図16に示
す。なお、ここでは、本発明が適用されるハードウェア
の構成例として、テレビジョン受信装置を例に挙げる
が、当然の事ながら、本発明はその他のデータ処理装置
にも適用可能である。すなわち、本発明は、実行環境
(オペレーティングシステム等)の上で実行主体(アプ
リケーションプログラム等)が動作するデータ処理装置
に広く適用可能であり、例えば、テレビジョン受信装置
以外のオーディオ・ビジュアル機器や、各種の事務機器
や、汎用のコンピュータ装置等にも適応可能である。
【0143】本発明が適用されたデータ処理装置である
図16に示すテレビジョン受信装置は、アンテナ又はケ
ーブル等によって放送局からの信号を受信し、当該信号
に基づいて、ブラウン管又は液晶等の画像表示装置に映
像を表示すると共にスピーカから音声を出力する。
【0144】このテレビジョン受信装置は、通常のテレ
ビ機能を備えているだけでなく、外部からプログラムや
データを受けとることが可能となっており、図16に示
すように、バス/IOブリッジ1を介してバス2に接続
されたテレビ機能部3と、バス/メモリブリッジ4を介
してバス2に接続されたプロセッサ5と、バス/メモリ
ブリッジ4を介してプロセッサ5に接続されたROM
(Read Only Memory)6及びRAM(Random Access Me
mory)7と、バス2に接続された操作パネル8、外部記
憶装置9及び通信装置10とを備えている。
【0145】テレビ機能部3は、アンテナ又はケーブル
等によって受信した信号に基づいて、映像や音声を再生
する機能を備えている。このテレビ機能部3は、バス/
IOブリッジ1を介してバス2に接続されており、これ
により、他の部分との信号のやり取りが可能となってい
る。
【0146】プロセッサ5は、このテレビジョン受信装
置の各部の制御を行うものであり、バス/メモリブリッ
ジ4を介してバス2に接続されている。また、プロセッ
サ5には、バス/メモリブリッジ4を介してROM6及
びRAM7が接続されている。ROM6は、プロセッサ
5による制御を行うためのオペレーティングシステムや
アプリケーションプログラム等を記憶する。RAM7
は、プロセッサ5のワークエリアとして使われる。すな
わち、プロセッサ5は、オペレーティングシステムやア
プリケーションプログラムを、RAM7をワークエリア
として使用して実行することにより、このテレビジョン
受信装置を構成する各部を制御する。
【0147】操作パネル8は、ユーザからの操作入力を
受け付けるための入力装置であり、この操作パネル8か
ら、例えば、テレビのチャンネルやボリューム等の切り
換えを指示する信号が入力される。この操作パネル8
は、具体的には、各種信号を入力するための複数のボタ
ンを備えた入力装置や、いわゆるマウスと称されるよう
なポインティングデバイス等からなる。この操作パネル
8によって入力された信号は、バス2及びバス/メモリ
ブリッジ4を介してプロセッサ5に入力される。そし
て、プロセッサ5は、操作パネル8によって入力された
信号に基づいて、所定の演算処理を行って各部を制御す
る。
【0148】外部記憶装置9は、例えばハードディスク
装置からなり、画像データ、制御データ、オペレーティ
ングシステム、アプリケーションプログラム、又は外部
から通信装置10を介してダウンロードされた各種プロ
グラム等を記録するのに使われる。また、通信装置10
は、外部との間でデータ通信を行うための入出力部であ
り、例えばモデムやターミナルアダプター等からなる。
【0149】このテレビジョン受信装置は、テレビ機能
部3によって提供される通常のテレビ機能を備えている
だけでなく、通信装置10を介して、外部システムから
プログラムや各種データ等を受け取ることが可能となっ
ている。そして、このテレビジョン受信装置では、オペ
レーティングシステムを構成するシステムオブジェクト
も、通信装置10を介して外部システムからダウンロー
ドすることが可能となっている。
【0150】また、このテレビジョン受信装置では、プ
ロセッサ5によって、ROM6又は外部記憶装置9に記
憶されているオペレーティングシステムを実行し、この
オペレーティングシステム上で、ROM6又は外部記憶
装置9に記憶されているアプリケーションプログラムを
実行することにより、各部の制御を行う。すなわち、オ
ペレーティングシステム上で、例えば、テレビ機能部3
に動画像を表示するためのアプリケーションプログラム
や、操作パネル8を制御するためのグラフィカル・ユー
ザ・インターフェース(GUI)を実現するアプリケー
ションプログラムが実行される。
【0151】そして、このテレビジョン受信装置では、
オペレーティングシステム上で動作するアプリケーショ
ンプログラムに応じて、1〜4章にわたって詳細に説明
したように、通信装置10を介して外部システムからシ
ステムオブジェクトをダウンロードして、実行するアプ
リケーションプログラムに応じたシステム環境を提供す
る。これにより、このテレビジョン装置では、様々なア
プリケーションプログラムに対して常に好適に実行環境
を提供することが可能となっている。
【0152】
【発明の効果】以上詳細に説明したように、本発明によ
れば、実行主体に合わせて、実行環境を構成するオブジ
ェクトを置換することが出来るようになる。したがっ
て、想定されるシステムサービスの機能を予め複数用意
したりするようなことなく、実行主体に応じた好適な実
行環境を提供することが可能となる。
【図面の簡単な説明】
【図1】システムオブジェクトダウンロードの一例を示
す図である。
【図2】システムアーキテクチャの一例を示す図であ
る。
【図3】オブジェクトの使用するメモリ領域の一例を示
す図である。
【図4】ダウンロード受諾レベルとダウンロード許可レ
ベルの一例を示す図である。
【図5】システム依存リストとサービスリストの一例を
示す図である。
【図6】アンロードフェーズの前半部分である削除フェ
ーズでの処理手順の一例を示すフローチャートである。
【図7】アンロードフェーズの後半部分である解放フェ
ーズでの処理手順の一例を示すフローチャートである。
【図8】ロードフェーズの前半部分である割当フェーズ
での処理手順の一例を示すフローチャートである。
【図9】ロードフェーズの後半部分である生成フェーズ
での処理手順の一例を示すフローチャートである。
【図10】システムオブジェクトのダウンロードにより
メッセージパッシング方法を改善する例を説明するため
の図であり、単純なメッセージパッシング機構を持つシ
ステムオブジェクトをダウンロードした状態を示す図で
ある。
【図11】システムオブジェクトのダウンロードにより
メッセージパッシング方法を改善する例を説明するため
の図であり、優先度に応じてメッセージを処理するメッ
セージパッシング機構を持つシステムオブジェクトをダ
ウンロードした状態を示す図である。
【図12】システムオブジェクトのダウンロードにより
デバッグモードを実現する例を説明するための図であ
る。
【図13】システムオブジェクトのダウンロードによ
り、2つの異なるネットワークプロトコルに適応させる
例を説明するための図である。
【図14】システムオブジェクトのダウンロードによ
り、アプリケーションオブジェクトの動作する動作環境
全体を変更する例を説明するための図である。
【図15】オペレーティングシステム上でダウンロード
機構を実現するのに、その機構をいくつかのオブジェク
トに分離して実現する例を示すための図である。
【図16】本発明を適用したテレビジョン受信装置の構
成例を示す図である。
【符号の説明】
1 バス/IOブリッジ、 2 バス、 3 テレビ機
能部、 4 バス/メモリブリッジ、 5 プロセッ
サ、 6 ROM(Read Only Memory)、 7RAM
(Random Access Memory)、 8 操作パネル、 9
外部記憶装置、10 通信装置

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 1つ以上のオブジェクトから構成される
    少なくとも1つの実行主体と、 上記実行主体に対してサービスを提供する1つ以上のオ
    ブジェクトから構成される少なくとも1つの実行環境
    と、 上記実行主体又は実行環境を構成するオブジェクトから
    の要求に基づいて、上記実行環境を構成するオブジェク
    トを削除するとともに外部システムから新たなオブジェ
    クトを取り込んで、上記実行環境を構成するオブジェク
    トの置換処理を行うオブジェクト置換手段とを備えるこ
    とを特徴とするデータ処理装置。
  2. 【請求項2】 上記オブジェクト置換手段は、上記実行
    環境を構成するオブジェクトからなることを特徴とする
    請求項1記載のデータ処理装置。
  3. 【請求項3】 上記実行環境を構成するオブジェクト
    は、当該オブジェクトの優先度を示すダウンロード受諾
    レベルを備え、 上記実行主体を構成するオブジェクトは、当該オブジェ
    クトの優先度を示すダウンロード許可レベルを備えるこ
    とを特徴とする請求項1記載のデータ処理装置。
  4. 【請求項4】 上記オブジェクト置換手段は、上記実行
    主体又は実行環境を構成するオブジェクトからオブジェ
    クト削除要求を受けとった場合、オブジェクトの削除を
    要求したオブジェクトが備えるダウンロード許可レベル
    と、削除対象オブジェクトが備えるダウンロード受諾レ
    ベルとを比較し、その比較結果に基づいてオブジェクト
    削除の可否を判定し、オブジェクト削除可と判定された
    場合にだけ、オブジェクトの削除処理を行うことを特徴
    とする請求項3記載のデータ処理装置。
  5. 【請求項5】 上記ダウンロード受諾レベル及び上記ダ
    ウンロード許可レベルには、オブジェクトの優先度に対
    応した数値が設定され、 上記オブジェクト置換手段は、オブジェクトの削除を要
    求したオブジェクトが備えるダウンロード許可レベル
    が、削除対象オブジェクトが備えるダウンロード受諾レ
    ベルよりも大きい場合に、オブジェクト削除可と判定す
    ることを特徴とする請求項4記載のデータ処理装置。
  6. 【請求項6】 上記オブジェクト置換手段は、上記実行
    主体又は実行環境を構成するオブジェクトからオブジェ
    クト取込要求を受けとった場合、オブジェクトの取り込
    みを要求したオブジェクトが備えるダウンロード許可レ
    ベルと、取込対象オブジェクトが備えるダウンロード受
    諾レベルとを比較し、その比較結果に基づいてオブジェ
    クトの取り込みの可否を判定し、オブジェクト取込可と
    判定された場合にだけ、外部システムからのオブジェク
    トの取り込みの処理を行うことを特徴とする請求項3記
    載のデータ処理装置。
  7. 【請求項7】 上記ダウンロード受諾レベル及び上記ダ
    ウンロード許可レベルには、オブジェクトの優先度に対
    応した数値が設定され、 上記オブジェクト置換手段は、オブジェクトの取り込み
    を要求したオブジェクトが備えるダウンロード許可レベ
    ルが、取込対象オブジェクトが備えるダウンロード受諾
    レベルよりも大きい場合に、オブジェクト取込可と判定
    することを特徴とする請求項6記載のデータ処理装置。
  8. 【請求項8】 上記実行環境を構成するオブジェクト
    は、当該オブジェクトの優先度を示すダウンロード受諾
    レベルを備え、 上記実行主体を構成するオブジェクトは、当該オブジェ
    クトの優先度を示すダウンロード許可レベルを備え、 上記オブジェクト置換手段は、上記実行主体を構成する
    オブジェクトからの要求に基づいてオブジェクトの置換
    処理を行う際に、オブジェクトの置換を要求したオブジ
    ェクトのダウンロード許可レベルと、置換対象オブジェ
    クトのダウンロード受諾レベルとを比較し、その比較結
    果に基づいてオブジェクト置換の可否を判定し、オブジ
    ェクト置換可と判定された場合にだけ、オブジェクトの
    置換処理を行うことを特徴とする請求項1記載のデータ
    処理装置。
  9. 【請求項9】 上記実行環境を構成するオブジェクト
    は、サービスを提供する対象のオブジェクトが登録され
    たサービスリストを備え、 上記オブジェクト置換手段は、オブジェクトの置換処理
    を行う際に、削除対象のオブジェクトのサービスリスト
    に登録されたオブジェクトの状態を検査し、その検査結
    果に基づいてオブジェクト置換の可否を判定し、オブジ
    ェクト置換可と判定された場合にだけ、当該サービスリ
    ストの内容を一時記憶領域にコピーした上でオブジェク
    トの置換処理を行うことを特徴とする請求項1記載のデ
    ータ処理装置。
  10. 【請求項10】 上記オブジェクト置換手段は、上記検
    査結果に基づいてオブジェクト置換の可否を判定する際
    に、削除対象のオブジェクトのサービスリストに登録さ
    れている全てのオブジェクトが、非実行状態であり、且
    つ、他のオブジェクトに送信したメッセージの返答を待
    っている状態でもない場合に、オブジェクト置換可と判
    定することを特徴とする請求項9記載のデータ処理装
    置。
  11. 【請求項11】 上記オブジェクト置換手段は、オブジ
    ェクトの置換処理を行う際に、上記外部システムから取
    り込んだ新たなオブジェクトのサービスリストの内容
    を、上記一時記憶領域にコピーした内容に基づいて設定
    することを特徴とする請求項9記載のデータ処理装置。
  12. 【請求項12】 上記実行主体を構成するオブジェクト
    は、当該オブジェクトに対してサービスを提供するオブ
    ジェクトが登録されたシステム依存リストを備え、 上記オブジェクト置換手段は、オブジェクトの置換処理
    を行う際に、削除対象のオブジェクトが登録されていた
    システム依存リストの内容を更新し、それらのシステム
    依存リストに対して上記外部システムから取り込んだ新
    たなオブジェクトを登録することを特徴とする請求項1
    記載のデータ処理装置。
  13. 【請求項13】 上記外部システムは、伝送路を介して
    接続されるサーバシステムであり、上記オブジェクト置
    換手段によって取り込まれるオブジェクトが記憶された
    記憶媒体を備えることを特徴とする請求項1記載のデー
    タ処理装置。
  14. 【請求項14】 1つ以上のオブジェクトから構成され
    る少なくとも1つの実行主体と、上記実行主体に対して
    サービスを提供する1つ以上のオブジェクトから構成さ
    れる少なくとも1つの実行環境とを備えたデータ処理シ
    ステムにおけるデータ処理方法において、 上記実行主体又は実行環境を構成するオブジェクトから
    の要求に基づいて、 上記実行環境を構成するオブジェクトを削除する削除ス
    テップと、 外部システムから新たなオブジェクトを取り込む取込ス
    テップとを行い、 上記実行環境を構成するオブジェクトを置換することを
    特徴とするデータ処理方法。
  15. 【請求項15】 上記削除ステップは、 オブジェクトの削除要求を受けて、削除対象オブジェク
    トに対する処理の権利条件を検査する権利検査ステップ
    と、 上記削除対象オブジェクトを削除するかどうかを決定す
    る削除決定ステップと、 上記削除対象オブジェクトを削除するために、当該削除
    対象オブジェクトの占有する記憶領域を解放する解放ス
    テップとを有することを特徴とする請求項14記載のデ
    ータ処理方法。
  16. 【請求項16】 上記権利検査ステップでは、上記削除
    対象オブジェクトの優先度を示すダウンロード受諾レベ
    ルと、上記削除要求を出したオブジェクトの優先度を示
    すダウンロード許可レベルとを比較し、所定の条件にあ
    るかどうかを検査することを特徴とする請求項15記載
    のデータ処理方法。
  17. 【請求項17】 上記所定の条件は、上記削除要求を出
    したオブジェクトが備えるダウンロード許可レベルが、
    上記削除対象オブジェクトが備えるダウンロード受諾レ
    ベルより大きい場合であることを特徴とする請求項16
    記載のデータ処理方法。
  18. 【請求項18】 上記削除決定ステップでは、上記削除
    対象オブジェクトがサービスを提供するオブジェクトが
    登録されたサービスリストに存在する全てのオブジェク
    トの動作状態を検査し、所定の状態にある場合に、当該
    削除対象オブジェクトのサービスリストを一時記憶領域
    にコピーすることを特徴とする請求項15記載のデータ
    処理方法。
  19. 【請求項19】 上記所定の状態は、上記削除対象オブ
    ジェクトのサービスリスト中で参照されるオブジェクト
    の全てが、非実行状態であり、且つ、他のオブジェクト
    に送信したメッセージの返答を待っている状態でもない
    場合であることを特徴とする請求項18記載のデータ処
    理方法。
  20. 【請求項20】 上記解放ステップでは、上記データ処
    理システムの記憶領域から、上記削除対象オブジェクト
    を表現するデータを全て解放することにより、上記削除
    対象オブジェクトをデータ処理システムから削除するこ
    とを特徴とする請求項15記載のデータ処理方法。
  21. 【請求項21】 上記取込ステップは、 オブジェクト取込要求を受けて、取込対象オブジェクト
    に対する処理の権利条件を検査する権利検査ステップ
    と、 上記取込対象オブジェクトを上記外部システムより取り
    込み、上記データ処理システム内に記憶領域を確保して
    新たにオブジェクトを生成する生成ステップと、 新たに生成したオブジェクトを当該オブジェクトの実行
    環境に登録する登録ステップとを有することを特徴とす
    る請求項14記載のデータ処理方法。
  22. 【請求項22】 上記権利検査ステップでは、上記取込
    対象オブジェクトの優先度を示すダウンロード受諾レベ
    ルと、オブジェクト取込要求を出したオブジェクトの優
    先度を示すダウンロード許可レベルとを比較し、所定の
    条件にあるかどうかを検査することを特徴とする請求項
    21記載のデータ処理方法。
  23. 【請求項23】 上記削除ステップの前に、オブジェク
    トの置換を要求したオブジェクトと、置換対象オブジェ
    クトとを比較して、オブジェクトの置換を要求したオブ
    ジェクトが置換対象オブジェクトを置換する権限を有す
    るか否かを検査し、権限を有する場合にだけ、上記削除
    ステップ及び取込ステップを行いオブジェクトを置換す
    ることを特徴とする請求項14記載のデータ処理方法。
  24. 【請求項24】 上記実行環境を構成するオブジェクト
    に、当該オブジェクトの優先度を示すダウンロード受諾
    レベルを備えさせるとともに、 上記実行主体を構成するオブジェクトに、当該オブジェ
    クトの優先度を示すダウンロード許可レベルを備えさ
    せ、 上記検査を行う際は、オブジェクトの置換を要求したオ
    ブジェクトのダウンロード許可レベルと、置換対象オブ
    ジェクトのダウンロード受諾レベルとを比較すること
    で、オブジェクトの置換を要求したオブジェクトが置換
    対象オブジェクトを置換する権限を有するか否かを検査
    することを特徴とする請求項23記載のデータ処理方
    法。
  25. 【請求項25】 上記実行環境を構成するオブジェクト
    に、サービスを提供する対象のオブジェクトが登録され
    たサービスリストを備えさせ、 上記削除ステップの前に、削除対象のオブジェクトのサ
    ービスリストに登録されたオブジェクトの状態を検査
    し、その検査結果に基づいてオブジェクト置換の可否を
    判定し、オブジェクト置換可と判定された場合にだけ、
    当該サービスリストの内容を一時記憶領域にコピーした
    上で、上記削除ステップ及び取込ステップを行いオブジ
    ェクトを置換することを特徴とする請求項14記載のデ
    ータ処理方法。
  26. 【請求項26】 上記判定を行う際は、削除対象のオブ
    ジェクトのサービスリストに登録されている全てのオブ
    ジェクトが、非実行状態であり、且つ、他のオブジェク
    トに送信したメッセージの返答を待っている状態でもな
    い場合に、オブジェクト置換可と判定することを特徴と
    する請求項25記載のデータ処理方法。
  27. 【請求項27】 上記取込ステップでは、上記外部シス
    テムから取り込んだ新たなオブジェクトのサービスリス
    トの内容を、上記一時記憶領域にコピーした内容に基づ
    いて設定することを特徴とする請求項25記載のデータ
    処理方法。
  28. 【請求項28】 上記実行主体を構成するオブジェクト
    に、当該オブジェクトに対してサービスを提供するオブ
    ジェクトが登録されたシステム依存リストを備えさせ、 上記取込ステップでは、上記削除ステップにおいて削除
    対象となったオブジェクトが登録されていたシステム依
    存リストの内容を更新し、それらのシステム依存リスト
    に対して、上記外部システムから取り込んだ新たなオブ
    ジェクトを登録することを特徴とする請求項14記載の
    データ処理方法。
  29. 【請求項29】 上記外部システムは、伝送路を介して
    接続されるサーバシステムであり、上記取込ステップで
    取り込まれるオブジェクトが記憶された記憶媒体を備え
    ることを特徴とする請求項14記載のデータ処理方法。
  30. 【請求項30】 1つ以上のオブジェクトから構成され
    る少なくとも1つの実行主体と、上記実行主体に対して
    サービスを提供する1つ以上のオブジェクトから構成さ
    れる少なくとも1つの実行環境とを備えたデータ処理シ
    ステムにおけるデータ処理プログラムを提供するプログ
    ラム提供媒体であって、 上記実行主体又は実行環境を構成するオブジェクトから
    の要求に基づいて、上記実行環境を構成するオブジェク
    トを削除するとともに外部システムから新たなオブジェ
    クトを取り込んで、上記実行環境を構成するオブジェク
    トを置換する処理を実行するデータ処理プログラムを提
    供することを特徴とするプログラム提供媒体。
JP11067028A 1999-03-12 1999-03-12 データ処理装置、データ処理方法及びプログラム提供媒体 Withdrawn JP2000259417A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP11067028A JP2000259417A (ja) 1999-03-12 1999-03-12 データ処理装置、データ処理方法及びプログラム提供媒体
EP00301975A EP1037144A3 (en) 1999-03-12 2000-03-10 Data processing system, data processing method, and program-providing medium therewith
US09/523,549 US6711737B1 (en) 1999-03-12 2000-03-10 Data processing system, data processing method, and program-providing medium therewith

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11067028A JP2000259417A (ja) 1999-03-12 1999-03-12 データ処理装置、データ処理方法及びプログラム提供媒体

Publications (1)

Publication Number Publication Date
JP2000259417A true JP2000259417A (ja) 2000-09-22

Family

ID=13333033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11067028A Withdrawn JP2000259417A (ja) 1999-03-12 1999-03-12 データ処理装置、データ処理方法及びプログラム提供媒体

Country Status (3)

Country Link
US (1) US6711737B1 (ja)
EP (1) EP1037144A3 (ja)
JP (1) JP2000259417A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8086862B2 (en) 2003-12-18 2011-12-27 Panasonic Corporation Program data file storage method in broadcast receiver and broadcast receiver
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム
KR20130080587A (ko) * 2012-01-05 2013-07-15 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1227667A1 (en) * 2001-01-18 2002-07-31 Sony Service Centre (Europe) N.V. Method and device for providing downloaded objects to an application
JP2002287990A (ja) * 2001-03-26 2002-10-04 Canon Inc アプリケーション管理装置、アプリケーション管理方法、記憶媒体及びプログラム
US20050138619A1 (en) * 2003-12-23 2005-06-23 Jen-Fu Tsai Method for remotely acquiring customized embedded operating system through computer network
US20050165555A1 (en) * 2004-01-13 2005-07-28 Baker Hughes Incorporated 3-D visualized data set for all types of reservoir data
US7676791B2 (en) * 2004-07-09 2010-03-09 Microsoft Corporation Implementation of concurrent programs in object-oriented languages
EP2677719A1 (en) * 2012-06-19 2013-12-25 Alcatel Lucent A method for interfacing a communication terminal with networked objects

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355480A (en) * 1988-12-23 1994-10-11 Scientific-Atlanta, Inc. Storage control method and apparatus for an interactive television terminal
JP2886961B2 (ja) * 1990-09-19 1999-04-26 株式会社日立製作所 プログラム入替方法
JP3329841B2 (ja) * 1991-10-18 2002-09-30 株式会社日立製作所 ネットワークシステム及びそのソフトウエア管理方法
US5634128A (en) * 1993-09-24 1997-05-27 International Business Machines Corporation Method and system for controlling access to objects in a data processing system
US5432924A (en) * 1993-12-15 1995-07-11 Microsoft Corporation Method and system for selectively applying an appropriate object ownership model
US5581755A (en) * 1995-01-31 1996-12-03 Unisys Corporation Method for maintaining a history of system data and processes for an enterprise
US5619250A (en) * 1995-02-19 1997-04-08 Microware Systems Corporation Operating system for interactive television system set top box utilizing dynamic system upgrades
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5951639A (en) * 1996-02-14 1999-09-14 Powertv, Inc. Multicast downloading of software and data modules and their compatibility requirements
US5953524A (en) * 1996-11-22 1999-09-14 Sybase, Inc. Development system with methods for runtime binding of user-defined classes
US6401099B1 (en) * 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US6381741B1 (en) * 1998-05-18 2002-04-30 Liberate Technologies Secure data downloading, recovery and upgrading
JPH10320205A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd 情報処理装置
US6003082A (en) * 1998-04-22 1999-12-14 International Business Machines Corporation Selective internet request caching and execution system
US6453460B1 (en) * 1999-04-26 2002-09-17 Hewlett-Packard Company Computer system with single processing environment for executing multiple application programs
US6192371B1 (en) * 1999-04-28 2001-02-20 Lucent Technologies, Inc Object morphing in an object oriented computing environment using relational database query procedure
US6453468B1 (en) * 1999-06-30 2002-09-17 B-Hub, Inc. Methods for improving reliability while upgrading software programs in a clustered computer system
US6263364B1 (en) * 1999-11-02 2001-07-17 Alta Vista Company Web crawler system using plurality of parallel priority level queues having distinct associated download priority levels for prioritizing document downloading and maintaining document freshness

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8086862B2 (en) 2003-12-18 2011-12-27 Panasonic Corporation Program data file storage method in broadcast receiver and broadcast receiver
JP2012120115A (ja) * 2010-12-03 2012-06-21 Fuji Xerox Co Ltd 画像処理装置及び画像処理プログラム
KR20130080587A (ko) * 2012-01-05 2013-07-15 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
JP2013140596A (ja) * 2012-01-05 2013-07-18 Samsung Electronics Co Ltd メニーコアシステムのためのオペレーティングシステム動的再構成装置及び方法
KR101867960B1 (ko) * 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법

Also Published As

Publication number Publication date
EP1037144A2 (en) 2000-09-20
EP1037144A3 (en) 2004-05-26
US6711737B1 (en) 2004-03-23

Similar Documents

Publication Publication Date Title
US7373640B1 (en) Technique for dynamically restricting thread concurrency without rewriting thread code
EP0753811B1 (en) Data processing method and device
US5925108A (en) Event notification in a computer system
JP4690437B2 (ja) ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム
US7818736B2 (en) Dynamic update mechanisms in operating systems
KR100898315B1 (ko) 인핸스드 런타임 호스팅
US8713582B2 (en) Providing policy-based operating system services in an operating system on a computing system
JP4782771B2 (ja) コンピュータ装置におけるプロセス間通信
US20070156729A1 (en) Data structure describing logical data spaces
JP2008501173A (ja) 一般アプリケーションプログラムインタフェースを実装するためのシステム及び方法
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
JP2005267118A (ja) シングルプロセッサ向けosによる並列処理システムにおけるプロセッサ間通信システム及びプログラム
CN113190282A (zh) 安卓运行环境构建的方法及装置
JP2000259417A (ja) データ処理装置、データ処理方法及びプログラム提供媒体
EP2097848A2 (en) Method, system and computer program for monitoring components in a service framework
US8336031B2 (en) Method and system of performing thread scheduling
WO2000039695A9 (en) Method and apparatus for dynamic command extensibility in an intelligent agent
EP4071601A1 (en) Mobile service upgrade method and apparatus, and terminal
US6636964B1 (en) Method and apparatus for loading an object-oriented operating system by providing an initial execution environment and migrating to a core execution environment thereafter
CN114625479A (zh) 边缘计算中云边协同应用管理方法及对应的装置
US6922834B1 (en) Data processing apparatus, data processing method, and program providing medium
CN117294770A (zh) 业务组件调度方法、装置、设备及存储介质
US20060106772A1 (en) Optimization of communication of data structures using program analysis
JPH08297585A (ja) オペレーティングシステムによるデータ転送方法
CN111381856A (zh) 一种Java软件热更新的方法和装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606