JP3496800B2 - オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体 - Google Patents

オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体

Info

Publication number
JP3496800B2
JP3496800B2 JP16859797A JP16859797A JP3496800B2 JP 3496800 B2 JP3496800 B2 JP 3496800B2 JP 16859797 A JP16859797 A JP 16859797A JP 16859797 A JP16859797 A JP 16859797A JP 3496800 B2 JP3496800 B2 JP 3496800B2
Authority
JP
Japan
Prior art keywords
duplicate
instance
message
introduction
function
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.)
Expired - Lifetime
Application number
JP16859797A
Other languages
English (en)
Other versions
JPH10116194A (ja
Inventor
充治 武本
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP16859797A priority Critical patent/JP3496800B2/ja
Publication of JPH10116194A publication Critical patent/JPH10116194A/ja
Application granted granted Critical
Publication of JP3496800B2 publication Critical patent/JP3496800B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
プログラムの動作単位であるオブジェクトを高機能化す
る技術に係り、特に、分散コンピューティング環境で動
作するオブジェクトにおいて、実行実体を複数持つこと
で実現される付加機能を有する高機能なオブジェクト
を、目的機能のみを有するオブジェクトから効率良く生
成するのに好適なオブジェクトの高機能化システムと方
法およびその処理プログラムを記録した記録媒体に関す
るものである。
【0002】
【従来の技術】大規模なコンピュータシステムの構築に
は、オブジェクト指向プログラム技術が適している。特
に、コンピュータ・ネットワークを利用した分散処理に
よる大規模なコンピュータシステムにおいては、異なる
メーカの製品からなるコンピュータ・ネットワーク、す
なわち、マルチベンダの分散コンピューティング環境に
対応する必要があり、その実現には、例えば、「日経エ
レクトロニクス 1992 1−20(no.54
5)」(1992年、日経BP社発行)の第125頁〜
第146頁に記載のように、分散透過性に優れたオブジ
ェクト指向によるプログラミング技術が利用される。
【0003】このようなオブジェクト指向のプログラミ
ングで作成されるオブジェクトの機能としては、目的機
能と付加機能がある。目的機能は、そのオブジェクトの
目的とする機能であり、そのオブジェクトがメッセージ
の送信、もしくは、実行環境、すなわちオペレーティン
グシステム(OS:Operating System)に依頼すること
により、外部に影響を与える機能である。また、付加機
能は、目的機能以外のオブジェクトの動作そのものに関
する機能、すなわち、そのアプリケーションの動作その
ものに影響を与える機能であり、例えば、オブジェクト
の無中断動作による高信頼化やCPUの負荷を検出し
て、動的に負荷を分散する機能などである。
【0004】このような、耐故障性能を向上させるため
の高信頼化機能や、実行速度を向上させるための負荷分
散機能などの付加機能は、実行実体の複製を複数設ける
ことで実現される。この場合、目的機能だけに注目する
と、その複製の存在は外部から観測されない。また、他
の付加機能としては、通信網の遅延を隠蔽するための実
行実体の移動機能がある。この移動機能では、例えば、
数値計算を行う場合に、必要なデータの配置の仕方によ
り、処理を行なうプロセスの配置を決定する。これは、
遠隔のデータを通信網を介してアクセスするより、処理
を行う実行実体であるプロセスを移動してしまうこと
で、通信網遅延を排除するものである。この場合も、先
の例と同様に、計算結果を必要とする外部からは、この
実行実体のプロセスの配置は見える必要はない。
【0005】従来、目的機能に付加機能を追加した高機
能なオブジェクトを作成する場合、アプリケーションプ
ログラマ(以下単に「プログラマ」と記載する)が、目
的機能と付加機能の協調を意識してソースコードをプロ
グラムしていた。これは類型的な作業であり、目的機能
の実現のための入出力が決定すれば、ほぼテンプレート
的に行うことができる。しかしながら、目的機能による
外部に影響を与える動作がプログラム毎に異なるので、
付加機能は、プログラマの判断によって実現しなければ
ならない。
【0006】例えば、上述の高信頼化機能や負荷分散機
能を実現するために実行実体の複製を複数設ける場合、
これらの複製の存在は外部から隠蔽されていないので、
各複製の存在が外部から観測することができる。このよ
うに複製の存在が外部から見えることは、実行時にその
実行実体を移動する(移動機能)などの柔軟な取り扱い
の障害となるので、プログラマは、開発時に、目的機能
の実行実体の複製の存在を意識し、複製間の協調動作を
意識してプログラムしなければならない。その結果、プ
ログラムが複雑化し、開発コストの増加につながる。ま
た、試験を行う場合にも、目的機能を実現する部分にプ
ログラム上のミスがあるのか、あるいは、複製を管理す
る付加機能を実現する部分にプログラム上のミスがある
のかを決定することが困難であり、保守コストの増加に
もなる。
【0007】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、実行実体の複製を複数設けて目
的機能に付加機能を追加した高機能なオブジェクトを作
成する場合、付加機能を実現する複製の存在を外部から
隠蔽することができない点である。本発明の目的は、こ
れら従来技術の課題を解決し、付加機能を実現する部分
を自動生成でき、目的機能のソースコードのみをプログ
ラマが実装するだけで、全機能を実現するソースコード
を得ることを可能とするオブジェクトの高機能化システ
ムと方法およびその処理プログラムを記録した記録媒体
を提供することである。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明のオブジェクトの高機能化方法は、(1)オ
ブジェクト指向プログラムを実行するコンピュータシス
テムによるオブジェクトの高機能化方法であって、コン
ピュータシステムは具備したCPUによる処理として、
高機能化対象のオブジェクトA(基本オブジェクト30
0)と同じメソッドを少なくとも具備する複製オブジェ
クトインスタンスを生成するメソッドとこの複製オブジ
ェクトインスタンスの識別情報と自オブジェクトインス
タンスの識別情報とを対応付けた管理情報を生成して送
出するメソッドおよび複製オブジェクトインスタンスの
生成後に自己抹消するメソッドとを有する導入オブジェ
クトのインスタンスをオブジェクトAと同じ識別情報で
生成してメモリに記憶する手順と、導入オブジェクトイ
ンスタンスの各メソッドを実行して、複製オブジェクト
インスタンスを生成してメモリに記憶すると共に管理情
報を生成して送出した後に導入オブジェクトインスタン
スをメモリから抹消する手順と、導入オブジェクトイン
スタンスから送出された管理情報をメモリに記憶する手
順と、他オブジェクトからオブジェクトAに対するメッ
セージがあれば、メモリに記憶した管理情報を参照し
て、当該複製オブジェクトインスタンスにメッセージを
転送する手順と、メッセージに基づき複製オブジェクト
インスタンスのメソッドを実行する手順と、複製オブジ
ェクトインスタンスからのメッセージを、メモリに記憶
した管理情報を参照してこのメッセージの送信元識別情
報を導入オブジェクトインスタンスの識別情報に変更し
て転送する手順とを有することを特徴とする。また、
(2)上記(1)に記載のオブジェクトの高機能化方法
であって、コンピュータシステムは分散システムからな
り、管理情報をメモリに記憶する手順と、他オブジェク
トからオブジェクトAに対するメッセージを複製オブジ
ェクトインスタンスへ転送する手順、および、複製オブ
ジェクトインスタンスからのメッセージを送信元識別情
報を変更して転送する手順とを分散システムの各ノード
コンピュータで実行することを特徴とする。また、
(3)上記(1)もしくは(2)のいずれかに記載のオ
ブジェクトの高機能化方法であって、複製オブジェクト
インスタンスを複数生成し、各複製オブジェクトインス
タンスからのメッセージの一つを、多数決もしくは先頭
採用により特定し、特定したメッセージを転送する手順
を有することを特徴とする。また、(4)上記(3)に
記載のオブジェクトの高機能化方法であって、複数の複
製オブジェクトインスタンスの内、実行中の複製オブジ
ェクトのインスタンス変数が変化した場合、このインス
タンス変数の変化を、待機中の複製オブジェクトインス
タンスに通知し、各複製オブジェクトインスタンスの内
部状態の一貫性を保つ手順を有することを特徴とする。
また、(5)本発明の記録媒体は、コンピュータに、上
記(1)1から(4)のいずれかに記載のオブジェクト
の高機能化方法における各処理手順を実行させるプログ
ラムを記録したことを特徴とする。
【0009】
【発明の実施の形態】以下、発明の実施の形態を説明す
る。尚、本実施例の説明において、ある機能の外の空間
のことを外部と呼び、あるオブジェクトの目的とする機
能を、このオブジェクトの目的機能と呼び、それ以外に
オブジェクトの動作そのものに対して付加する機能で、
実行実体が複数存在することにより実現されるものを付
加機能と呼び、目的機能だけを実現するオブジェクトを
基本オブジェクトと呼び、この基本オブジェクトと同一
の目的機能を実現する1つ、ないしは、複数のオブジェ
クトを複製オブジェクトと呼ぶ。
【0010】また、ノード毎に実行環境側に置かれ、複
製オブジェクトの管理をするオブジェクトを複製管理オ
ブジェクトと呼び、アプリケーションとして複製オブジ
ェクトを生成する機能を持ち、外部へ、その存在を示す
機能を持つオブジェクトを導入オブジェクトと呼び、目
的機能の他に付加機能を実現し、1つ以上のオブジェク
トからなり、仮想的に1つのオブジェクトとしてふるま
うオブジェクトをまとめて高機能オブジェクトと呼ぶ。
また、各オブジェクトおよび言語処理系(プリプロセッ
サ)はソフトウェアであり、コンピュータシステムの処
理対象として、コンピュータシステムのCPUがメモリ
を用いて実行することで、各オブジェクトの機能が実現
されるものである。本例では、導入オブジェクトが複製
オブジェクトを、複製オブジェクトのクラスを用いて生
成することを、表記を簡単にするために、導入オブジェ
クトが複製オブジェクトを生成すると表記する。
【0011】そして、本実施例においては、導入オブジ
ェクトは、生成されると、内部のメソッドを起動して、
複製オブジェクトを生成し、この生成した複製オブジェ
クトの情報を、複製管理サーバオブジェクトに通知し、
導入オブジェクト自身を抹消することにより高機能オブ
ジェクトを生成する。複製管理サーバオブジェクトは、
メッセージの宛先を変更し、それぞれの複製オブジェク
トに送信することにより、高機能オブジェクト向けのメ
ッセージを受信する。
【0012】また、複製管理サーバオブジェクトは、複
製オブジェクトからのメッセージを検出し、送信元オブ
ジェクトの識別部分を、導入オブジェクトのものに変更
する。ここで、目的機能を実行している複製オブジェク
トが1つの時は、その内容を、また、目的機能を実行し
ている複製オブジェクトが複数あるときは、多数決又は
先頭採用により処理し、その結果を、宛先のオブジェク
トに送信する。このようにして、高機能オブジェクトか
らのメッセージ送信を行う。尚、これらメッセージの効
率の良い判別のために、メッセージの中に高機能オブジ
ェクト宛のメッセージであるか否かを示すフィールドを
持たせる。また、高機能オブジェクトの内部状態を、目
的機能を実行している複製オブジェクトの内部状態とす
る。
【0013】このような動作の結果、複製オブジェクト
からのメッセージは、複製管理サーバオブジェクトのメ
ッセージ管理機構の動作により、高機能オブジェクトか
らのメッセージであるように観測される。また、複製オ
ブジェクトが実行環境に依頼する処理は、複製管理サー
バオブジェクトの複製オブジェクト管理機構の動作によ
り、高機能オブジェクトが実行環境に依頼する処理であ
るように観測される。このようにして、複製オブジェク
トと複製管理サーバオブジェクトの協調動作により、高
機能オブジェクトを実現し、さらに、複製管理サーバオ
ブジェクトで、複製オブジェクトの存在と管理を外部に
隠蔽することにより、分散透過を実現することができ
る。
【0014】以下、このような本発明の実施例を、図面
により詳細に説明する。図1は、本発明のオブジェクト
の高機能化システムの本発明に係る構成の一実施例を示
すブロック図であり、図2は、本発明のオブジェクトの
高機能化システムで構成された高機能オブジェクトの構
成例を示すブロック図である。図2において、10は外
部のオブジェクト、100は高信頼動作をする高機能オ
ブジェクトであり、本例は、実行実体を複数持ち、故障
時に切り換えることにより、高信頼化を獲得する高機能
オブジェクトを例に示す。
【0015】高機能オブジェクト100の中には、複数
の複製オブジェクト20,21が存在し、各複製オブジ
ェクト20,21が目的機能を実行し、外部のオブジェ
クト10へメッセージを送信し影響を与える。このよう
な高信頼化だけでなく、複製オブジェクトを用いて実現
する付加機能においては、複製オブジェクトの存在を外
部(外部オブジェクト10)から隠蔽するために、管理
機構が必要になる。
【0016】その管理機構を、本実施例では、実行環境
の側に置く。尚、この実行環境とは、広い概念ではOS
(オペレーティングシステム)を指す。詳しく述べる
と、OSの核をなすカーネル部とカーネル空間の特権で
実行できるサーバタイプのプロセスからなるものであ
る。このように実行環境の中に管理機構を置くことは、
このサーバタイプのプロセスとして管理機構を実現する
こととなる。このサーバタイプのプロセスも、オブジェ
クトで実現されるので、このオブジェクトを、複製管理
サーバオブジェクトと呼ぶ。
【0017】図1に示すように、本実施例では、この複
製管理サーバオブジェクト50が実行環境の側(カーネ
ル空間)にあり、目的機能を実現する複製オブジェクト
22〜25が、アプリケーションの側(アプリケーショ
ン空間)に存在する。以下、図1におけるオブジェクト
の高機能化システムを説明する。本図1において、50
は本発明に係る複製管理サーバオブジェクトであり、6
0は本発明に係る導入オブジェクトである。
【0018】この導入オブジェクト60は、高機能オブ
ジェクト101を構成する複製オブジェクト22,23
と、高機能オブジェクト102を構成する各複製オブジ
ェクト24,25を生成する。複製管理サーバオブジェ
クト50は、分散システムを構成する各ノードに1つず
つ置かれる。これは、そのノード上のオブジェクトの動
作を管理するためである。1つの複製管理サーバオブジ
ェクト50は、概念的には、各高機能オブジェクト10
1,102に含まれることになる。
【0019】このように、本実施例においては、実行実
体を複数持つことで実現される付加機能を有する高機能
オブジェクト101,102を、目的機能のみを有する
オブジェクト(基本オブジェクト)から生成するため
に、導入オブジェクト60と複製管理サーバオブジェク
ト50を設ける。導入オブジェクト60は、所定数の複
製オブジェクト22〜25を生成する機能と自己抹消す
る機能を持つメソッドを有し、自オブジェクトが生成さ
れると、このメソッドを起動し、複製オブジェクト(基
本オブジェクトの複製)22〜25を生成して、自己抹
消する。
【0020】このようにして目的機能のみを有する基本
オブジェクトから複数の複製オブジェクト22〜25を
生成することにより、高信頼化機能や負荷分散機能など
の付加機能を有する高機能オブジェクト101,102
を構成する。導入オブジェクト60により生成された各
複製オブジェクト22〜25は、渡されたメッセージに
対応してメソッドを起動して処理を行い、それぞれ、処
理結果メッセージを複製管理サーバオブジェクト50に
送出する。このようにして高信頼化機能や負荷分散機能
などの付加機能が実行される。
【0021】複製管理サーバオブジェクト50は、導入
オブジェクト60から通知される複製オブジェクト22
〜25に係る管理情報に基づき、複製オブジェクト22
〜25を管理する機能(メソッド)を有し、複製オブジ
ェクト22〜25のメッセージの送受信を制御する。例
えば、導入オブジェクト60に対するメッセージを受信
して各複製オブジェクト22,23に転送し、また、こ
れらの複製オブジェクト22,23から、それぞれの処
理結果メッセージを受信すると、先に受信した、例えば
複製オブジェクト22からの処理結果メッセージを送出
する。この時、この処理結果メッセージに付与された送
信元識別情報を導入オブジェクト60のものに変更す
る。
【0022】このように、複製管理サーバオブジェクト
50で、導入オブジェクト60のメッセージ入出力に係
る処理を行うことにより、複製オブジェクト22〜25
の存在を外部から隠蔽することができ、分散透過性を実
現することができる。さらに、導入オブジェクト60と
複製管理サーバオブジェクト50を協調動作させること
により、目的機能のみを有する基本オブジェクトに高信
頼化機能や負荷分散機能などの付加機能を追加した高機
能オブジェクト101,102を形成することができ、
外部からは、あたかも、それぞれ1つのオブジェクトが
存在しているように観測される。
【0023】以下、このような高機能オブジェクト10
1,102の生成動作に関して、すなわち、図1におけ
るオブジェクトの高機能化システムの本発明に係る動作
過程例を、図3〜図7を用いて説明する。図3は、図1
における導入オブジェクトの生成過程を示す説明図、図
4は、図3で生成された導入オブジェクトによる複製オ
ブジェクトの生成過程を示す説明図、図5は、図3にお
ける導入オブジェクトの複製情報の通知過程を示す説明
図、図6は、図3で生成された導入オブジェクトの抹消
過程を示す説明図、図7は、図6で導入オブジェクトが
抹消された後の高機能オブジェクトの構成例を示す説明
図である。
【0024】図3に示すように、高機能オブジェクトの
生成は、外部からは、導入オブジェクト60の生成とし
て開始される。目的機能のみを有する通常のオブジェク
トである基本オブジェクトの動作として、自分自身の名
前と識別子の登録を行なう場合、導入オブジェクト60
は、自分自身を抹消する前に、自分自身の名前200と
オブジェクト識別子250をオブジェクトの名前を管理
する機構(通常は名前サーバと呼ばれる)に登録する。
導入オブジェクト60自身が登録を行わない場合には、
導入オブジェクト60を生成するオブジェクトが登録を
行なう。この場合は、高機能オブジェクトの名前などの
登録は、導入オブジェクト60を生成するオブジェクト
が行なう。
【0025】このようにして、自分自身の名前200と
オブジェクト識別子250の登録が完了すると、導入オ
ブジェクト60は、図4に示すように、複製オブジェク
ト26,27を生成する。そして導入オブジェクト60
は、図5に示すように、生成した各複製オブジェクト2
6,27に関する情報(自分自身の名前200とオブジ
ェクト識別子250など)を、複製管理サーバオブジェ
クト51に通知する。
【0026】これらの動作が終了して、図6に示すよう
に、高機能オブジェクト103を形成した後は、導入オ
ブジェクト60は、存在しなくていいので、自分自身を
抹消する。これにより、複製オブジェクト26,27だ
けが存在する形態となる。そして、複製オブジェクト2
6,27の管理機構は、複製管理サーバオブジェクト5
1として、実行環境の側に置く。
【0027】このようにして、複製オブジェクト26,
27と複製管理サーバオブジェクト51とからなる高機
能オブジェクト103は生成されるが、外部から存在が
見えるのは、導入オブジェクト60だけである。つま
り、他のオブジェクトは、導入オブジェクト60を目指
してメッセージを送信してくるが、そのメッセージは、
複製管理サーバオブジェクト51の機能により、実際に
動作を行う複製オブジェクト26,27へ転送される。
そして、複製オブジェクト26,27の動作の結果で発
生する外部へのメッセージ送信は、複製管理サーバオブ
ジェクト51が行う。このようにメッセージ管理など
を、複製管理サーバオブジェクト51が行うことによ
り、他のオブジェクトには、導入オブジェクト60が行
っているように観測される。
【0028】このように、導入オブジェクト60は、複
製オブジェクト26,27の生成に関する処理を行う
と、自分自身を抹消してしまうので、存在しない。しか
し、外部からは、名前とオブジェクト識別子(名前20
0、オブジェクト識別子250)を観測する限りは、存
在しているように観測されるし、また、複製オブジェク
ト26,27により実際に処理も行われるので、存在し
ているのと同等である。
【0029】導入オブジェクト60の抹消後、実行環境
中に存在する複製管理サーバオブジェクト51の動作に
よりアプリケーション空間に存在しているように見え、
かつ、複製オブジェクト26,27を管理しているよう
に見えるオブジェクトを、図7に示すように、疑似オブ
ジェクト70と呼ぶ。そして、この疑似オブジェクト7
0が、名前200とオブジェクト識別子250等の情報
を持つために、高機能オブジェクト103も、名前20
0とオブジェクト識別子250の各情報を持つ。
【0030】次に、このような構成の高機能オブジェク
ト103の動作を、図8を用いて説明する。図8は、図
7における高機能オブジェクトの動作例を示す説明図で
ある。本例は、高機能オブジェクトの実行状態を、疑似
オブジェクト70を用いた考えに従って示すものであ
り、ノード毎に1つ置かれている複製管理サーバオブジ
ェクト51が、複製オブジェクト26,27の情報を管
理しているので、実際には存在しない疑似オブジェクト
70が存在しているように、外部からは観測される。そ
して、オブジェクト識別子250宛の外部からのメッセ
ージ270は、疑似オブジェクト70に送信された後、
疑似オブジェクト70が複製オブジェクト26へ転送し
ているようにとらえることができる。
【0031】複製管理サーバオブジェクト51は、各ノ
ードに1つずつ置かれ、そのノードの上で動作する高機
能オブジェクト103の各複製オブジェクト26,27
の動作を監視する機能を持つ。オブジェクト指向プログ
ラムを用いた分散システムでは、特に、オブジェクト間
のメッセージの管理が重要であり、このメッセージ管理
を行なうために、本実施例では、通常のメッセージの中
に、高機能オブジェクト103に関するフィールドを追
加する。
【0032】そして、実行環境の側にある複製管理サー
バオブジェクト51は、オブジェクト識別子250宛の
メッセージを、その宛先を変更することで、複製オブジ
ェクト26,27に転送する。また、複製オブジェクト
26,27からのメッセージ送信は、複製管理サーバオ
ブジェクト51が検出し、オブジェクト識別子250の
オブジェクト(疑似オブジェクト70、高機能オブジェ
クト103)からのメッセージ送信であるように変更
し、宛先オブジェクトに送信する。
【0033】また、オブジェクトの内部状態は、オブジ
ェクトインスタンス毎のインスタンス変数により実現さ
れる。そこで、目的機能を実行中の例えば複製オブジェ
クト26のインスタンス変数が変化した場合は、それ
を、複製オブジェクト26が、複製管理サーバオブジェ
クト51に通知し、もしくは、複製管理サーバオブジェ
クト51が検出し、これを契機として、待機中の複製オ
ブジェクト27に通知する。これにより、1つの高機能
オブジェクト103の中の二つの複製オブジェクト2
6,27間での、それぞれの内部状態の一貫性を保つこ
とができる。
【0034】次に、図9および図10を用いて、導入オ
ブジェクトと複製オブジェクトのソースコードを生成す
る技術に関して説明する。図9は、図1における導入オ
ブジェクトと複製オブジェクトのソースコードの生成過
程を示す説明図である。図1における導入オブジェクト
60と複製オブジェクト22〜25の各々のソースコー
ドは、以下のようにして、予めプログラマが作成した基
本オブジェクト(目的機能のみを有する)のソースコー
ドから、言語処理系(プリプロセッサ)が生成する。
【0035】まず、クラス名310の基本オブジェクト
300のメソッド320,321,,,329のメソッ
ド名330,331,,,339と同じメソッド名42
0,421,,,429を持つクラス名310の導入オ
ブジェクト400を自動生成する。このように、基本オ
ブジェクト300と導入オブジェクト400のクラス名
を同じにすることにより、基本オブジェクトを生成して
いるのか、導入オブジェクトを通じて高機能オブジェク
トを生成しているのかの区別を外部から意識させなくす
ることができる。
【0036】基本オブジェクト300の動作として、基
本オブジェクト300自身が、オブジェクトインスタン
スの名前と識別子を、上述した名前サーバ(オブジェク
トの名前と識別子を管理するサーバ)に登録する処理を
含んでいる場合は、導入オブジェクト400にもそのま
ま引き継ぐ。これは、名前サーバにメッセージを送信す
ると言う記述を検出することが可能であるので実現でき
る。また、そのような処理が基本オブジェクト300の
中で行われない場合は、導入オブジェクト400の中で
も行う必要はない。この場合、基本オブジェクト300
の名前、もしくは、オブジェクト識別子をシステムで使
用する場合は、基本オブジェクト300を生成した側で
必ず同種の処理を行うはずであるからである。
【0037】このようにしてソースコードが生成された
導入オブジェクト400は、内部のメソッド420,4
21,・・・,429を起動することで、オブジェクト
としての動作を開始する。ここで、導入オブジェクト4
00の先頭のメソッド420には、複製オブジェクト5
00の生成が記述されており、まず、複製オブジェクト
500を生成する。
【0038】システムとして、メッセージの受信に関係
なくオブジェクトの起動を行うことが決定している場合
は、特に、複製オブジェクト500の起動処理は、導入
オブジェクト400に不要である。しかし、導入オブジ
ェクト400自身のメソッドの起動の原因が、メッセー
ジの受信である場合には、その受信したメッセージを複
製オブジェクト500に送信する。この場合、複製オブ
ジェクト500の生成の後に、メッセージ送信のコード
を生成する。
【0039】複製オブジェクト500は、基本オブジェ
クト300のメソッド320,321,,,329のメ
ソッド名330,331,,,339と同じメソッド名
を持つメソッド520,521,,,529と、基本オ
ブジェクト300のインスタンス変数の集まり350を
インスタンス変数の集まり550として引き継ぐ。さら
に、複製オブジェクト500には、付加機能のためのメ
ソッド530,531と、インスタンス変数の集まり3
50に対する追加分や変更分からなるインスタンス変数
560が自動的に追加される。
【0040】この図9における導入オブジェクト400
は、一度だけ、メソッド420を起動するが、基本オブ
ジェクト300のメソッドと同数のメソッド421,・
・・,429を持っている。ここで、もし、システムと
して、最初に起動されるメソッドが決定している場合
や、プログラマが、最初に起動するメソッドを理解して
いる場合は、それらの条件を言語処理系に与えること
で、図10に示すように、不要なメソッド421,・・
・,429を削減して、最適化を図ることが可能であ
る。
【0041】図10は、図9における導入オブジェクト
に最適化を施す処理例を示す説明図である。複製オブジ
ェクト500を生成する導入オブジェクト401(クラ
ス名310)に含まれるメソッドは、メソッド430
(メソッド名440)だけである。このメソッド430
のメソッド名440は、基本オブジェクト300のメソ
ッド320,321,,,329で最初に起動されると
分かっているメソッドと同じ名前のものである。このよ
うに、メソッド430だけを生成するので、導入オブジ
ェクト401のメモリサイズは小さくなり、導入オブジ
ェクト401の実行時のコストも小さくなる。
【0042】以上、図1〜図10を用いて説明したよう
に、本実施例のオブジェクトの高機能化システムでは、
生成された高機能オブジェクト101,102は、複数
の複製オブジェクト22〜25から構成されるが、その
複製オブジェクト22〜25の存在外部から隠蔽され
いる。このことにより、実行時に、高機能オブジェク
ト101,102は、分散透過性を、基本オブジェクト
300と同様に維持している。これにより、例えば、分
散システムにおいて、他のオブジェクトとの組合せが容
易にできる。つまり、付加機能をオブジェクトに分散透
過性を損ねることなく追加することができる。
【0043】また、高機能オブジェクト101,102
は、外から観測する場合、その生成時には、導入オブジ
ェクト60の生成だけで良く、分散システムにおける名
前の登録も、導入オブジェクト60だけについて行えば
十分であるので、開発コストも低くなる。また、複数の
複製オブジェクト22〜25が存在するために、基本オ
ブジェクト300を高信頼オブジェクトに置き換えれ
ば、実行時には、総メッセージ数は増加する。しかし、
例えば、メッセージ受信時には、外部から疑似オブジェ
クト70宛に送信されるメッセージは、全て複製管理サ
ーバオブジェクト51が局所的にメッセージの宛先を複
製オブジェクト60に変換して、付加機能を実現してい
る。このように局所的管理することにより、不要なメッ
セージの氾濫などは発生しない。
【0044】また、これは、機能を目的機能と付加機能
に分離しているので、アプリケーションのプログラマ
が、目的機能を実現するソースコードを開発し、付加機
能を選択すれば、言語処理系により、自動的に、付加機
能を実現するコードを組み込んだ高機能化されたオブジ
ェクトのソースコードを得ることができる。すなわち、
開発時に、プログラマは、目的機能だけのプログラム実
装を行えば良い。これは、ソースコードの可読性が上が
り、大規模システムの容易な設計、容易なデバッグ、容
易な保守の実現に大きく寄与する。
【0045】付加機能のプログラム実装を行うのは、コ
ンパイラ開発者などの開発システム開発者であり、目的
機能のプログラム実装を行うのは、アプリケーションの
プログラマである。また、付加機能を選択式にしている
ために、アプリケーションのプログラマは、適切な付加
機能を指定することにより、不要なオーバーヘッドを削
減することも可能である。
【0046】尚、図3〜図7で示したオブジェクトの高
機能化方法の処理手順(プログラム)は、CD−ROM
等の記録媒体に記録されて提供される。また、本発明
は、図1〜図10を用いて説明した実施例に限定される
ものではなく、その要旨を逸脱しない範囲において種々
変更可能である。例えば、図1〜図8に示すように、導
入オブジェクトが、一つの高機能オブジェクト用として
生成する複製オブジェクトを2つとしているが、必要に
応じて、その数は変化させることができる。また、言語
処理系としてはコンパイラなども適用できる。
【0047】
【発明の効果】本発明によれば、実行実体の複製を複数
設けて、目的機能に付加機能を追加した高機能なオブジ
ェクトを作成する場合、付加機能を実現する複製(複数
の実行実体)の存在を外部から隠蔽することができ、付
加機能を実現する部分を自動生成し、プログラマは、複
製間の協調動作を意識することなく、目的機能のソース
コードのみをプログラムするだけで、全機能を実現する
ソースコードを得ることが可能となる。
【図面の簡単な説明】
【図1】本発明のオブジェクトの高機能化システムの本
発明に係る構成の一実施例を示すブロック図である。
【図2】本発明のオブジェクトの高機能化システムで構
成された高機能オブジェクトの構成例を示すブロック図
である。
【図3】図1における導入オブジェクトの生成過程を示
す説明図である。
【図4】図3で生成された導入オブジェクトによる複製
オブジェクトの生成過程を示す説明図である。
【図5】図3における導入オブジェクトの複製情報の通
知過程を示す説明図である。
【図6】図3で生成された導入オブジェクトの抹消過程
を示す説明図である。
【図7】図6で導入オブジェクトが抹消された後の高機
能オブジェクトの構成例を示す説明図である。
【図8】図7における高機能オブジェクトの動作例を示
す説明図である。
【図9】図1における導入オブジェクトと複製オブジェ
クトのソースコードの生成過程を示す説明図である。
【図10】図9における導入オブジェクトに最適化を施
す処理例を示す説明図である。
【符号の説明】 10:外部のオブジェクト、20〜27:複製オブジェ
クト、50,51:複製管理サーバオブジェクト、6
0:導入オブジェクト、70:疑似オブジェクト、10
0〜103:高機能オブジェクト、200:名前、25
0:オブジェクト識別子、300:基本オブジェクト、
310:クラス名、320〜329,420〜430,
520〜531:メソッド、330〜339,440:
メソッド名、350,550,560:インスタンス変
数の集まり、400,401:導入オブジェクト、50
0:複製オブジェクト。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 530 G06F 9/46 340 JICSTファイル(JOIS)

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向プログラムを実行する
    コンピュータシステムによるオブジェクトの高機能化方
    法であって、 上記コンピュータシステムは具備したCPUによる処理
    として、 高機能化対象のオブジェクトAと同じメソッドを少なく
    とも具備する複製オブジェクトインスタンスを生成する
    メソッドと該複製オブジェクトインスタンスの識別情報
    と自オブジェクトインスタンスの識別情報とを対応付け
    た管理情報を生成して送出するメソッドおよび上記複製
    オブジェクトインスタンスの生成後に自己抹消するメソ
    ッドとを有する導入オブジェクトのインスタンスを上記
    オブジェクトAと同じ識別情報で生成してメモリに記憶
    する手順と、 上記導入オブジェクトインスタンスの各メソッドを実行
    して、上記複製オブジェクトインスタンスを生成してメ
    モリに記憶すると共に上記管理情報を生成して送出した
    後に上記導入オブジェクトインスタンスをメモリから抹
    消する手順と、 上記導入オブジェクトインスタンスから送出された上記
    管理情報をメモリに記憶する手順と、 他オブジェクトから上記オブジェクトAに対するメッセ
    ージがあれば、上記メモリに記憶した管理情報を参照し
    て、当該複製オブジェクトインスタンスに上記メッセー
    ジを転送する手順と、 上記メッセージに基づき上記複製オブジェクトインスタ
    ンスのメソッドを実行する手順と、 該複製オブジェクトインスタンスからのメッセージを、
    上記メモリに記憶した管理情報を参照して該メッセージ
    の送信元識別情報を上記導入オブジェクトインスタンス
    の識別情報に変更して転送する手順とを有することを特
    徴とするオブジェクトの高機能化方法。
  2. 【請求項2】 請求項1に記載のオブジェクトの高機能
    化方法であって、 上記コンピュータシステムは分散システムからなり、 上記管理情報をメモリに記憶する手順と、上記他オブジ
    ェクトから上記オブジェクトAに対するメッセージを上
    記複製オブジェクトインスタンスへ転送する手順、およ
    び、該複製オブジェクトインスタンスからのメッセージ
    を送信元識別情報を変更して転送する手順とを上記分散
    システムの各ノードコンピュータで実行することを特徴
    とするオブジェクトの高機能化方法。
  3. 【請求項3】 請求項1、もしくは、請求項2のいずれ
    かに記載のオブジェクトの高機能化方法であって、 上記複製オブジェクトインスタンスを複数生成し、各複
    製オブジェクトインスタンスからのメッセージの一つ
    を、多数決もしくは先頭採用により特定し、該特定した
    メッセージを転送する手順を有することを特徴とするオ
    ブジェクトの高機能化方法。
  4. 【請求項4】 請求項3に記載のオブジェクトの高機能
    化方法であって、 上記複数の複製オブジェクトインスタンスの内、実行中
    の複製オブジェクトのインスタンス変数が変化した場
    合、該インスタンス変数の変化を、待機中の複製オブジ
    ェクトインスタンスに通知し、各複製オブジェクトイン
    スタンスの内部状態の一貫性を保つ手順を有することを
    特徴とするオブジェクトの高機能化方法。
  5. 【請求項5】 コンピュータに、請求項1から請求項4
    のいずれかに記載のオブジェクトの高機能化方法におけ
    る各処理手順を実行させるプログラムを記録したことを
    特徴とするコンピュータ読みとり可能な記録媒体。
JP16859797A 1996-08-21 1997-06-25 オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体 Expired - Lifetime JP3496800B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16859797A JP3496800B2 (ja) 1996-08-21 1997-06-25 オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP21971896 1996-08-21
JP8-219718 1996-08-21
JP16859797A JP3496800B2 (ja) 1996-08-21 1997-06-25 オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JPH10116194A JPH10116194A (ja) 1998-05-06
JP3496800B2 true JP3496800B2 (ja) 2004-02-16

Family

ID=26492243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16859797A Expired - Lifetime JP3496800B2 (ja) 1996-08-21 1997-06-25 オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP3496800B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
武本充治著,"通信網ワイド分散オブジェクト指向システムにおける高信頼化",電子情報通信学会技術研究報告(IN95−120〜156),社団法人電子情報通信学会,1996年 3月15日,第95巻,第579号,p.7−14.

Also Published As

Publication number Publication date
JPH10116194A (ja) 1998-05-06

Similar Documents

Publication Publication Date Title
CN100465937C (zh) 通过网络以事务形式办理文件操作的方法与系统
US6463446B1 (en) Method and apparatus for transporting behavior in an event-based distributed system
US5987497A (en) System and method for managing the configuration of distributed objects
JP2725885B2 (ja) 回路網化されたコンピュータシステムにおいてファイルキャッシングを開く方法及び装置
Redell et al. Pilot: An operating system for a personal computer
Rowe et al. A local network based on the UNIX operating system
JP2553466B2 (ja) クライアントアーキテクチャからサーバアーキテクチャをシミュレートする方法
US6308182B1 (en) Information processing apparatus
US20050235012A1 (en) Offline source code control
EP0604013A2 (en) Method and apparatus for a caching file server
JPH08115223A (ja) コンピュータで実施する方法及びデータ処理システム
US5995972A (en) System and method for retrieving data
CN102460382A (zh) 标注虚拟应用进程
US5634056A (en) Run time dependency management facility for controlling change propagation utilizing relationship graph
Eberhard et al. Efficient object caching for distributed Java RMI applications
US6678743B1 (en) Method for moving objects in a distributed computing environment
JP3496800B2 (ja) オブジェクトの高機能化方法およびその処理プログラムを記録した記録媒体
Kinny The Agentis Agent InteractionModel
JP3169624B2 (ja) プロセッサ間通信方法およびそのための並列プロセッサ
Wilkinson et al. Evaluation of a distributed single address space operating system
CN109376193B (zh) 基于自适应规则的数据交换系统
Kermarrec et al. Integrating page replacement in a distributed shared virtual memory
JP3570639B2 (ja) システム定義情報の管理方法
JP2001520774A (ja) 階層化ドライバ入出力システム内の複数ドライバによる入出力要求の再処理を可能にするファイル・システム・プリミティブ
JP4604032B2 (ja) 非共有データベースシステムにおける1段階コミット

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071128

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term