JP3055970B2 - オブジェクト指向言語間インタフェース実現方法および装置 - Google Patents

オブジェクト指向言語間インタフェース実現方法および装置

Info

Publication number
JP3055970B2
JP3055970B2 JP3147751A JP14775191A JP3055970B2 JP 3055970 B2 JP3055970 B2 JP 3055970B2 JP 3147751 A JP3147751 A JP 3147751A JP 14775191 A JP14775191 A JP 14775191A JP 3055970 B2 JP3055970 B2 JP 3055970B2
Authority
JP
Japan
Prior art keywords
class
oriented
language
message
oriented language
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 - Fee Related
Application number
JP3147751A
Other languages
English (en)
Other versions
JPH0512025A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3147751A priority Critical patent/JP3055970B2/ja
Priority to US07/902,579 priority patent/US5450583A/en
Publication of JPH0512025A publication Critical patent/JPH0512025A/ja
Application granted granted Critical
Publication of JP3055970B2 publication Critical patent/JP3055970B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,計算機システムにおい
て,クラスとインスタンスおよびメッセージ送信による
メソッドの起動という概念を有するオブジェクト指向言
語間のインタフェースを実現するオブジェクト指向言語
間インタフェース実現方法および装置に関する。
【0002】オブジェクト指向プログラミングは,その
生産性の高さと部品の再利用の容易さという点で,現在
注目を集めている技術である。この部品の再利用の容易
さをさらに向上させるために,オブジェクト指向言語を
サポートする計算機システムにおいて,オブジェクトの
内部構造に依存せず,任意のオブジェクト指向言語から
他の任意のオブジェクト指向言語で書かれたオブジェク
トを利用するための技術が必要とされる。
【0003】
【従来の技術】例えば,C言語にオブジェクト指向の言
語機能を付加したC++言語,LISP言語にオブジェ
クト指向の言語機能を付加したCLOS,米国ゼロック
ス社が開発したSmalltalkなど,各種のオブジ
ェクト指向言語が開発されている。このように,いろい
ろなプログラミングスタイルをサポートするオブジェク
ト指向言語が数多く現れているが,そのような言語は,
オブジェクト指向プログラミングに関するいくつかの基
本概念こそ共有しているものの,実際の内部データ構造
はまったく異なっている。
【0004】そのため,従来,複数の異なるオブジェク
ト指向言語で書かれたオブジェクト間で,メッセージの
やりとりを行い,ある言語で書かれたオブジェクトを別
の言語から利用することはできなかった。たとえ利用し
ようとしても,オブジェクトの内部構造などを解析した
うえでの言語系の改造が必要であり,利用することは非
常に困難であった。
【0005】
【発明が解決しようとする課題】オブジェクト指向言語
の特長として,各オブジェクトの情報隠蔽により,デー
タおよび手続きの部品化が容易であるということがあ
る。もし,あるオブジェクト指向言語で記述されたオブ
ジェクトを,別のオブジェクト指向言語で記述されたオ
ブジェクトから簡単に利用することが可能であれば,特
定の言語で書かれたプログラム部品を,様々な言語から
利用することにより,プログラム開発の生産性をさらに
高めることができるようになると考えられる。
【0006】本発明は,異なるオブジェクト指向言語間
のインタフェースを実現し,あるオブジェクト指向言語
で記述されたオブジェクトを,別のオブジェクト指向言
語で記述されたオブジェクトから簡単に利用することが
できるようにすることを目的としている。
【0007】
【課題を解決するための手段】図1は本発明の原理説明
図である。図1において,10および11は計算機シス
テムにおける処理単位または計算機の実行資源を獲得す
る単位であるプロセス,12はサーバクラス,13はサ
ーバクラス12に対応して他のプロセスに定義される仮
想サーバクラス,14および15はクラスに属する具体
的な内部値を持つオブジェクトであるインスタンス,1
6はプロセス間通信機能を持つ通信マネージャ,17は
別プロセスに存在するオブジェクトと自プロセスに存在
するオブジェクトとの対応情報を管理するためのオブジ
ェクト対応表,18はプロセス間通信に用いられる通信
経路を表す。
【0008】本発明は,計算機システムにおいて,クラ
スとインスタンスおよびメッセージ送信によるメソッド
の起動という概念を有する複数の異なるオブジェクト指
向言語間のインタフェースを,以下の方法によって実現
する。
【0009】異なるオブジェクト指向言語A,Bで記述
されたオブジェクトを,それぞれ異なるプロセス10,
11上で動作させるようにする。そして,プロセス1
0,11上におけるオブジェクト間のメッセージ送信を
プロセス間通信によりサポートする通信マネージャ16
を用意する。通信マネージャ16は,プロセス間通信に
よるメッセージ送信の相手を識別するために,一方のプ
ロセスに存在するオブジェクトが他方のプロセスでどの
ような識別子で参照されるかを示すオブジェクト対応表
17を管理する。
【0010】あるオブジェクト指向言語Bで記述された
オブジェクトが,他のオブジェクト指向言語Aで記述さ
れたオブジェクトを利用する場合に,利用される側のプ
ロセス10で定義されているクラス12(これをサーバ
クラスという)に対応する仮想的なクラス(これを仮想
サーバクラスという)を,利用する側のプロセス11で
も定義する。
【0011】仮想サーバクラス13は,利用される側の
対応するサーバクラス12で定義されているメソッドを
有し,そのメソッドは,通信マネージャ16を介して,
利用される側のオブジェクトにメッセージを伝えるよう
に構成する。
【0012】こうして,オブジェクト指向言語A,B間
のインタフェースをプロセス間通信によって実現する。
請求項2記載の発明では,仮想サーバクラス13を導入
したオブジェクト指向言語間インタフェースを利用する
プログラムの実行効率を上げるために,あるオブジェク
トが与えられたときに,そのオブジェクトを生成するた
めの情報を別プロセスの通信マネージャ16に知らせる
手段を設ける。
【0013】そして,自分のプロセスで管理していない
オブジェクトが送信されてきた場合に,別プロセスに対
してオブジェクトの生成方法を問い合わせ,その答えに
従って,対応するオブジェクトを生成し,オブジェクト
対応表17を更新する。
【0014】
【作用】本発明では,オブジェクト指向言語間のインタ
フェースを,プロセス間通信によって実現する。以降,
説明を簡単にするために,部品を提供するプロセス10
をサーバ,部品を利用するプロセス11をクライアント
と呼ぶことにする。
【0015】以下に述べる方法により,クライアント
は,サーバ側と異なるオブジェクト指向言語で書かれて
いても,その記述言語が提供しているオブジェクト操作
方法によって,サーバのオブジェクトを生成したり,操
作したりすることができる。
【0016】このインタフェースを実現する機構とし
て,仮想サーバクラス13と通信マネージャ16とい
う,2つのコンポーネントを用意する。 〔仮想サーバクラス〕クライアントに,サーバに存在す
るすべてのクラスに対応するクラスを,クライアントの
オブジェクト指向言語Bによって予め定義しておく。ク
ライアントに定義されたこのようなクラスを,「仮想サ
ーバクラス」と呼ぶ。それらのクラス13の構造は非常
に単純であり,以下のような処理を行う。
【0017】 仮想サーバクラス13のインスタンス
15が生成される際に,通信マネージャ16を介して,
サーバ側のオブジェクトのインスタンス14を生成す
る。 仮想サーバクラス13には,対応するサーバク
ラス12で定義されているすべてのメソッドが定義され
ている。このようなメソッドは,通信マネージャ16を
介して,対応するメッセージをサーバ側のオブジェクト
に伝えるような仮想的なものである。クライアントのプ
ログラムから仮想サーバクラス13またはそのインスタ
ンス15に対してメッセージが送信され,このようなメ
ソッドが起動されると,プロセス間通信が起こり,サー
バ側に存在するオブジェクトのメソッドが実際に実行さ
れる。
【0018】〔通信マネージャ〕通信マネージャ16
は,サーバ側とクライアント側に存在し,例えば関数呼
び出しやサブルーチン呼び出しのような形で起動され
て,次のような処理を行う。
【0019】 インスタンスの生成やメソッドの起動
を指示する通信データを生成し,サーバまたはクライア
ントに対して送信する。 サーバまたはクライアント
から送信された通信データを受信し,それを解釈して実
行する。
【0020】 一方のプロセスに存在するオブジェク
トが,もう一方のプロセスでどのような識別子(ID)
で参照されるかを管理するためのオブジェクト対応表1
7を管理する。
【0021】以上のようにすることによって,クライア
ントプログラムから見た場合,サーバ側のオブジェクト
はすべて仮想サーバクラス13またはそのインスタンス
15として見え,通常のオブジェクトとまったく同様に
扱うことができる。
【0022】すなわち,クライアントのプログラムは,
サーバ側におけるオブジェクトがどのようなオブジェク
ト指向言語で記述されているかをまったく意識すること
なく,サーバ側のオブジェクトを利用することができ
る。
【0023】こうして,オブジェクト指向言語A,B間
のインタフェースをプロセス間通信によって実現する。
請求項2記載(または請求項4記載:以下同様)の発明
では,仮想サーバクラス13を導入したオブジェクト指
向言語間インタフェースを利用するプログラムの実行効
率を上げるために,あるオブジェクトが与えられたとき
に,そのオブジェクトを生成するための情報を別プロセ
スの通信マネージャ16に知らせる手段を設ける。
【0024】仮想サーバクラス13を使った言語間連携
では,通信マネージャ16のモジュールが,サーバ側の
オブジェクト(ID)とクライアント側のオブジェクト
の対応情報を持つオブジェクト対応表17を持ってお
り,クライアント側でオブジェクトが生成されたとき
に,そのオブジェクト対応表17のエントリが生成され
るようになっている。これを次のように変更する。
【0025】 通信マネージャ16は,相手プロセス
から送られてくるメッセージを調べ,その中に未知のオ
ブジェクトが存在している場合には,そのオブジェクト
の生成方法を相手プロセスに対して問い合わせる。
【0026】 返された生成情報に従ってインスタン
スを生成し,メッセージの処理を続行する。以上の例の
ように,通常,サーバが提供する機能をクライアントが
利用するという方式を採るが,対等な立場であってもよ
い。すなわち,同時にクライアントが持つ機能をサーバ
が利用する場合にも,本発明は適用可能である。
【0027】
【実施例】図2は,本発明の一実施例説明図である。図
2を参照し,オブジェクト指向言語A(例えばC++言
語)で記述したマンマシンインタフェース(MMI)部
品である「ボタンオブジェクト」を,他のオブジェクト
指向言語Bから使用する場合の例を説明する。この場
合,C++で記述されたプロセスがサーバ,他のオブジ
ェクト指向言語Bで記述されたプロセスがクライアント
となる。
【0028】(1) オブジェクト指向言語Aのマンマシン
インタフェース部品を利用するための仮想サーバクラス
13を,オブジェクト指向言語Bのシステムにロードす
る。 (2) サーバを起動し,プロセス間通信のための通信経路
18を設定する。
【0029】(3) オブジェクト指向言語Bの仮想サーバ
クラス13として定義された「ボタン」クラスのインス
タンス15を生成する。この際には,オブジェクト指向
言語Bの構文をそのまま利用すればよい。ただし,この
際に,インスタンス15の生成と,それに対応するオブ
ジェクト指向言語Aのインスタンス14の生成が,一つ
のオペレーションでは実現されず,複数の関数呼び出し
になっていることもあり得る。
【0030】(4) オブジェクト指向言語Bのインスタン
ス15に対応するオブジェクト指向言語Aのインスタン
ス14を生成するように,クライアントの通信マネージ
ャ16が指示を受ける。
【0031】(5) クライアントの通信マネージャ16
は,サーバに対してインスタンス14の生成を指示する
メッセージをプロセス間通信で送信し,サーバ側では,
そのメッセージを受けてオブジェクトを生成する。その
際に,サーバの通信マネージャ16は,そのオブジェク
トを認識するためのIDを生成し,クライアント側へ伝
える。
【0032】(6) クライアントの通信マネージャ16
は,そのIDと対応するオブジェクト指向言語Bのオブ
ジェクト,すなわちインスタンス15を,オブジェクト
対応表17に登録し,後で検索できるようにする。この
オブジェクト対応表17には,オブジェクト自身が登録
されても,ポインタが登録されてもよい。また,このよ
うな対応表は,サーバ側でも保持される。
【0033】(7) こうして生成されたオブジェクト指向
言語Bのボタンオブジェクトに対して,例えばそれを画
面に表示させるためのdisplayというメッセージ
を送信する。このメッセージ送信の書式は,オブジェク
ト指向言語Bの構文をそのまま利用する。
【0034】(8) このようにして起動されたdispl
ayというメソッドは,通信マネージャ16に対して,
displayというメッセージを,対応するオブジェ
クト指向言語Aのサーバに送信するように指示する。た
だし,サーバクラス12で定義されているメソッド名
と,仮想サーバクラス13で定義されているメソッド名
は,同じである必要はない。両者の対応がとれており,
通信マネージャ16が正しくメッセージを送信できれば
よい。
【0035】(9) 通信マネージャ16がプロセス間通信
を行い,これによりサーバ側のボタンオブジェクトのd
isplayというメソッドが起動されて,ボタンが画
面に表示される。
【0036】(10)ユーザがボタンを押すと,オブジェク
ト指向言語Aがこれを感知し,サーバの通信マネージャ
16がクライアントに対して所定のメッセージを送信す
る。 (11)これを受けて,サーバ側の通信マネージャ16が,
オブジェクト指向言語Bのオブジェクトに対してメッセ
ージを送信する。
【0037】(12)クライアントのボタンオブジェクトを
消滅させる場合,以下の手順となる。まず,オブジェク
ト指向言語Bのボタンオブジェクトに対して,それを破
壊するメッセージを送信する。このメッセージ送信の書
式は,オブジェクト指向言語Bの構文をそのまま利用す
る。
【0038】(13)通信マネージャ16がプロセス間通信
を行い,サーバに対してボタンオブジェクトを破壊する
ように指示する。それが成功したならば,クライアント
側で保持しているオブジェクト対応表17から,そのオ
ブジェクトのエントリを削除する。
【0039】(14)サーバの全機能が不要になれば,サー
バプロセスを消し,通信経路18を消去する。 以上の方式では,一方のプロセスでオブジェクトが生成
された場合には,必ず通信が起こり,別のプロセスでも
オブジェクトが生成される。しかし,一方のプロセスで
のみ意味を持つようなオブジェクトも存在することか
ら,すべてのオブジェクトを両プロセスで同時に生成す
ることは非効率的である。
【0040】そのため,第2の実施例では,相手プロセ
スから送られてきたメッセージ中に未知のオブジェクト
が存在している場合に,対応するオブジェクトを動的に
生成するようにする。
【0041】以下に例として,クライアント側の通信マ
ネージャ16が,サーバから送られてきたメッセージ解
釈実行する処理手順を示す。 (1) メッセージを受け取り,それを解析してメッセージ
を構成するトークンを取り出す。トークンとは,メッセ
ージ中の意味のあるデータの単位である。
【0042】(2) トークンがオブジェクトIDであり,
かつそれがサーバオブジェクトとクライアントオブジェ
クトの対応情報を持つオブジェクト対応表17に存在し
ない場合には,サーバに対して,そのオブジェクトのク
ラスを知らせるように要求する。そうでなければ,通常
のトークン処理を行う。
【0043】(3) サーバから,クラス名またはクラスI
Dがクライアントに通知される。この例では,クラス情
報がオブジェクトの生成情報として扱われるが,必ずし
もオブジェクト生成情報はクラス情報に限らない。
【0044】(4) それを受け取って,それに対応する仮
想サーバクラス13のインスタンス15を生成し,オブ
ジェクト対応表17に書き込む。 (5) 次のトークンの処理を行う。
【0045】以上のようにすることによって,オブジェ
クト指向言語間のインタフェースを利用するプログラム
の実行効率を上げることができる。異なるオブジェクト
指向言語で記述されたオブジェクトの具体例として,C
++によるボタンオブジェクトの記述と,Smallt
alkによるボタンオブジェクトの記述の例を,以下に
示す。
【0046】〔C++によるボタンオブジェクトの記
述〕 『 /*C++によるボタンクラスの定義例*/ class Button :public Interactor { public: void display(); //ボタンを表示するための手
続き. void pressed(Point*); //ボタンが押されたときの処
理. ・・・・ } /*ボタンを表示するための記述*/ Button* b; b = new Button(); b -> display();
』 〔Smalltalkによるボタンオブジェクトの記
述〕 『“Smalltalk によるボタンクラスの定義例” class name Button super class Interactor instance methods displayControl display ・・・・・ callback pressed:point ・・・・・ “ボタンを表示するための記述” b <- Button new. b display.
』 以上のように,オブジェクト指向言語が異なれば,構文
をはじめとして記述のしかたが異なる。例えば,C++
の記述をサーバの部品とし,それを利用するクライアン
ト側をSmalltalkにより記述するとする。上の
例のように,C++のボタンオブジェクトに対応するオ
ブジェクトをSmalltalkによっても記述する。
この場合,Smalltalkによるオブジェクトは,
仮想サーバクラスとなる。
【0047】C++で記述されたサーバクラスに付随す
るメソッドは,実際の処理を行う手続きであり,クライ
アント側の仮想サーバクラスに付随するメソッドは,通
信マネージャ16を介して,対応するサーバクラスに対
してメッセージを送る手続きである。
【0048】次に,本発明の実施例による通信マネージ
ャ16に関連する処理の流れを,図3ないし図8に従っ
て説明する。通信マネージャ16は,以下に示すような
種々の処理機能を持ち,アプリケーションプログラムか
らサブルーチン的に呼び出されると考えてよい。
【0049】通信マネージャ16に関係するアプリケー
ションのメインプログラムの構造は,図3に示すように
なっている。以下の説明における(a) 〜(f) は,図3に
示す処理(a) 〜(f) に対応する。
【0050】(a) まず,通信経路18の開設と初期化を
行い,プロセス間で必要な情報の交換を行う。 (b) 初期情報の交換により,仮想サーバクラス13のイ
ンスタンス(以下,VSOという)の生成が必要かどう
かを判定する。必要ない場合,処理(f) へ進む。
【0051】(c) VSOの生成が必要な場合,そのVS
Oを生成する。 (d) また,VSOの生成により,メッセージの送信が必
要かどうかを判定する。必要ない場合,処理(f) へ進
む。
【0052】(e) メッセージの送信が必要な場合,その
メッセージを相手プロセスへ送信する。その後,処理
(b) へ戻り,同様に処理を繰り返す。 (f) VSOの生成およびメッセージの送信が必要ない場
合には,通信マネージャ16による相手プロセスからの
メッセージの処理を行い,サービスを開始する。
【0053】図4は,本発明の一実施例による仮想サー
バクラスのインスタンスの生成処理フローを示してい
る。以下のとおりである。 (a) まず,本プロセスのオブジェクトを生成する。
【0054】(b) 通信マネージャ16によって,相手プ
ロセスの通信マネージャ16に対し,対応するオブジェ
クトの生成を要求する。 (c) 相手プロセスからオブジェクトIDが通知されるの
を待つ。
【0055】(d) 相手プロセスからオブジェクトIDが
通知されたならば,その渡されたオブジェクトIDと,
本プロセスで生成されたオブジェクトの対応情報を,オ
ブジェクト対応表17に登録する。
【0056】(e) 本プロセスのオブジェクトを返す。図
5は,本発明の一実施例による仮想サーバクラスのイン
スタンスへのメッセージ送信処理フローを示している。
以下のとおりである。
【0057】(a) 仮想サーバクラスのインスタンス(V
SO)が通信マネージャ16を呼び出す。 (b) オブジェクト対応表17を検索して,VSOに対応
するオブジェクトのIDを得る。
【0058】(c) 相手プロセスに対して,オブジェクト
ID,起動すべきメソッド,および引数情報を与え,メ
ソッドの実行を依頼する。 (d) 相手プロセスからの返還値があるかどうかを調べ,
ない場合には処理を終了する。
【0059】(e) 返還値がある場合には,相手プロセス
からの返還値が届くのを待つ。 (f) 返還値が届いたならば,返還値がオブジェクトID
を含むかどうかを調べる。含まない場合,処理(i) へ移
る。含む場合,処理(g) へ進む。
【0060】(g) 返還値がオブジェクトIDを含む場
合,オブジェクト対応表17を検索して,オブジェクト
IDに対応するVSOを得る。 (h) そのVSOを返し,処理を終了する。
【0061】(i) 返還値がオブジェクトIDを含まない
場合,そのまま返還値を返す。図6は,本発明の一実施
例による通信マネージャによる相手プロセスからのメッ
セージの処理フローを示す。以下のとおりである。
【0062】(a) 相手プロセスからのメッセージが届く
のを待ち,届いたならば次の処理へ進む。 (b) メッセージの内容が,オブジェクトの実行要求であ
るか,オブジェクトの生成要求であるかを判定する。実
行要求の場合,処理(c) へ進み,生成要求の場合,処理
(e) へ進む。
【0063】(c) メソッドの実行処理を行う。 (d) メッセージ処理が終了するまで,処理(a) へ戻り,
次のメッセージの処理を続ける。
【0064】(e) オブジェクト生成要求に対して,オブ
ジェクト生成処理を行う。その後,処理(a) へ戻り,次
のメッセージを待つ。図7は,本発明の一実施例による
オブジェクト生成処理フローおよびメソッド実行処理フ
ローを示す。
【0065】図6に示す処理(e) のオブジェクト生成処
理では,図7の(イ)に示す処理(a) 〜(b) を行う (a) 指定されたオブジェクトを生成し,対応するIDを
生成してオブジェクト対応表17に登録する。
【0066】(b) 相手プロセスに対して,生成したオブ
ジェクトのオブジェクトIDを返す。図6に示す処理
(c) のメソッド実行処理では,図7の(ロ)に示す処理
(c) 〜(h) を行う。
【0067】(c) オブジェクト対応表17を検索し,メ
ッセージに含まれるすべてのオブジェクトIDをオブジ
ェクトに変換する。 (d) 指定されたオブジェクトの指定されたメソッドを,
指定された引数で呼び出す。
【0068】(e) 返還値があるかどうかを調べ,返還値
がなければ,メソッド実行処理を終了する。 (f) 返還値を調べ,返還値がオブジェクトであれば,処
理(h) を実行し,オブジェクトでなければ,処理(g) を
実行する。
【0069】(g) 返還値がオブジェクトでなければ,そ
の返還値を返す。 (h) 返還値がオブジェクトであれば,それを対応するオ
ブジェクトIDに変換して返す。
【0070】図8は,請求項2記載の発明に関する実施
例である対応表検索の拡張方式による処理フローを示
す。以下の説明における(a) 〜(f) は,図8に示す処理
(a) 〜(f) に対応する。
【0071】(a) メッセージ中にオブジェクトIDがあ
る場合,オブジェクト対応表17を検索し,そのオブジ
ェクトIDに対応するVSOがオブジェクト対応表17
に存在するかどうかを調べる。存在する場合,処理(f)
へ進む。
【0072】(b) オブジェクトIDに対応するVSOが
存在しない場合,相手プロセスに対して,そのオブジェ
クトのクラス名またはクラスIDなどのオブジェクトの
生成方法を問い合わせる。
【0073】(c) 相手プロセスからの応答を待ち,応答
があったなら,次へ進む。 (d) 得られた情報に基づいてVSOを生成し,オブジェ
クトIDとVSOの対応情報をオブジェクト対応表17
に登録する。
【0074】(e) 生成したVSOを返し,処理を終了す
る。 (f) VSOがオブジェクト対応表17に存在する場合,
その検索されたVSOを返して,終了する。
【0075】
【発明の効果】以上説明したように,本発明によれば,
オブジェクトとして定義された部品を,別のオブジェク
ト指向言語で書かれたプログラムから利用する場合に,
どのようなオブジェクト指向言語からでも,その言語が
サポートしている構文や機能をそのまま使ってプログラ
ムを記述することが可能になる。
【0076】これにより,別のオブジェクト指向言語で
書かれた部品を利用する際にも,プログラマは特別な構
文や関数を覚えることなく,自分が利用するオブジェク
ト指向言語で書かれた部品を利用するのとまったく同じ
方法を使うことができる。このため,プログラム部品を
様々な言語から簡単に利用でき,プログラム開発の生産
性が向上する。
【0077】また,例えばクライアント側であらかじめ
サーバ側と同じオブジェクトを用意しておくのではな
く,未知のオブジェクトに対する通知があった場合に,
それを生成するための情報を問い合わせて動的に対応す
るオブジェクトを生成することにより,仮想サーバクラ
スを介したオブジェクト指向言語間インタフェースを利
用するプログラムの実行効率を上げることができるよう
になる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の一実施例説明図である。
【図3】本発明の一実施例による通信マネージャ関連の
メインプログラム処理フローを示す図である。
【図4】本発明の一実施例による仮想サーバクラスのイ
ンスタンスの生成処理フローを示す図である。
【図5】本発明の一実施例による仮想サーバクラスのイ
ンスタンスへのメッセージ送信処理フローを示す図であ
る。
【図6】本発明の一実施例による通信マネージャによる
相手プロセスからのメッセージの処理フローを示す図で
ある。
【図7】本発明の一実施例によるオブジェクト生成処理
フローおよびメソッド実行処理フローを示す図である。
【図8】請求項2記載の発明に関する実施例である対応
表検索の拡張方式による処理フローを示す図である。
【符号の説明】
10,11 プロセス 12 サーバクラス 13 仮想サーバクラス 14,15 インスタンス 16 通信マネージャ 17 オブジェクト対応表 18 通信経路
フロントページの続き (56)参考文献 特開 平4−277838(JP,A) 特開 平4−233038(JP,A) 「情報処理学会第42回(平成3年前 期)全国大会講演論文集」(1991−2) P.5−65〜66 「情報処理学会第42回(平成3年前 期)全国大会講演論文集」(1991−2) P.6−319−322 「1990年代の分散処理シンポジウム論 文集」(1990−11)社団法人情報処理学 会、P.57−64 「日経バイト」No.85(1991−5) P.232−240 「Proc.of the 1990 I EEE International Conf.on Computer S ystems and Softwar e Engineering」(1990) P.391−398 (58)調査した分野(Int.Cl.7,DB名) G06F 9/44,9/54

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 計算機システムにおいて,クラスとイン
    スタンスおよびメッセージ送信によるメソッドの起動と
    いう概念を有するオブジェクト指向言語間のインタフェ
    ースを実現する方法であって,第1のオブジェクト指向言語で記述されたオブジェクト
    を,第1のプロセス上で動作させる過程と, 前記第1のオブジェクト指向言語と異なる第2のオブジ
    ェクト指向言語で記述されたオブジェクトであって,前
    記第1のオブジェクト指向言語で記述されたオブジェク
    トを利用するオブジェクトを,前記第1のプロセスと異
    なる第2のプロセス上で動作させる過程と, 前記第2のプロセスにおいて前記第2のオブジェクト指
    向言語で記述されたオブジェクトが,前記第1のオブジ
    ェクト指向言語で記述されたオブジェクトを利用する場
    合に,前記第1のプロセスで定義されているクラスに対
    応して定義された仮想的なクラスまたはそのインスタン
    スに対し,前記第1のプロセスで定義されているクラス
    が持つメソッドに対応して定義されたメソッドを起動す
    るメッセージを送信する過程と, 前記メッセージによって前記仮想的なクラスのメソッド
    が起動されると,該メソッドは,前記第1および第2の
    プロセス上におけるオブジェクト間のメッセージ送信を
    プロセス間通信によりサポートする通信手段に対し,前
    記第1のプロセス上のオブジェクトにメッセージを伝え
    ることを指示する過程と, 前記メソッドによる指示に対し,前記通信手段は,前記
    第1のプロセスに存在するオブジェクトと前記第2のプ
    ロセスに存在するオブジェクトとの対応情報を管理する
    オブジェクト対応表を用いて,プロセス間通信により,
    前記第1および第2のプロセス上におけるオブジェクト
    間のメッセージ送信を行い,前記第1のプロセスに存在
    するオブジェクトに存在する対応するメソッドを実行さ
    せる過程とを有する ことを特徴とするオブジェクト指向
    言語間インタフェース実現方法。
  2. 【請求項2】 請求項1記載のオブジェクト指向言語間
    インタフェース実現方法において, あるオブジェクトが与えられたときに,そのオブジェク
    トを生成するための情報を別プロセスの前記通信手段に
    知らせる過程を有するとともに, 自分のプロセスで管理していないオブジェクトが送信さ
    れてきた場合に,別プロセスに対してオブジェクトの生
    成方法を問い合わせ,その答えに従って,対応するオブ
    ジェクトを生成し,前記オブジェクト対応表を更新する
    過程を有することを特徴とするオブジェクト指向言語間
    インタフェース実現方法。
  3. 【請求項3】 計算機システムにおいて,クラスとイン
    スタンスおよびメッセージ送信によるメソッドの起動と
    いう概念を有するオブジェクト指向言語間のインタフェ
    ースを実現する装置であって, 第1のオブジェクト指向言語で記述されたオブジェクト
    を,第1のプロセス上で動作させる第1のオブジェクト
    実行手段と, 前記第1のオブジェクト指向言語と異なる第2のオブジ
    ェクト指向言語で記述されたオブジェクトであって,前
    記第1のオブジェクト指向言語で記述されたオブジェク
    トを利用するオブジェクトを,前記第1のプロセスと異
    なる第2のプロセス上で動作させる第2のオブジェクト
    実行手段と, 前記第1のプロセスに存在するオブジェクトと前記第2
    のプロセスに存在するオブジェクトとの対応情報を管理
    するオブジェクト対応表を持ち,前記第1および第2の
    プロセス上におけるオブジェクト間のメッセージ送信
    を,プロセス間通信によりサポートする通信手段とを有
    し, かつ,前記第2のプロセスは,前記第2のオブジェクト
    指向言語で記述されたオブジェクトが,前記第1のオブ
    ジェクト指向言語で記述されたオブジェクトを利用する
    場合に,前記第1のプロセスで定義されているクラスに
    対応する仮想的なクラスを持ち, 前記仮想的なクラスは,前記第1のプロセスにおける対
    応するクラスで定義されているメソッドを持ち, 前記仮想的なクラスが持つメソッドは,前記通信マネー
    ジャに対し,前記第1のプロセス上のオブジェクトにメ
    ッセージを伝えることを指示する手段を持つ ことを特徴
    とするオブジェクト指向言語間インタフェース実現装
  4. 【請求項4】 請求項3記載のオブジェクト指向言語間
    インタフェース実現 装置において, 前記第1のプロセスは,あるオブジェクトが与えられた
    ときに,そのオブジェクトを生成するための情報を前記
    第2のプロセスにおける前記通信マネージャに知らせる
    手段を持ち, 前記第2のプロセスは,自分のプロセスで管理していな
    いオブジェクトが送信されてきた場合に,前記第1のプ
    ロセスに対してオブジェクトの生成方法を問い合わせ,
    その答えに従って,対応するオブジェクトを生成し,前
    記オブジェクト対応表を更新する手段を持つ ことを特徴
    とするオブジェクト指向言語間インタフェース実現装
JP3147751A 1991-06-20 1991-06-20 オブジェクト指向言語間インタフェース実現方法および装置 Expired - Fee Related JP3055970B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3147751A JP3055970B2 (ja) 1991-06-20 1991-06-20 オブジェクト指向言語間インタフェース実現方法および装置
US07/902,579 US5450583A (en) 1991-06-20 1992-06-22 Object-oriented language processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3147751A JP3055970B2 (ja) 1991-06-20 1991-06-20 オブジェクト指向言語間インタフェース実現方法および装置

Publications (2)

Publication Number Publication Date
JPH0512025A JPH0512025A (ja) 1993-01-22
JP3055970B2 true JP3055970B2 (ja) 2000-06-26

Family

ID=15437326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3147751A Expired - Fee Related JP3055970B2 (ja) 1991-06-20 1991-06-20 オブジェクト指向言語間インタフェース実現方法および装置

Country Status (2)

Country Link
US (1) US5450583A (ja)
JP (1) JP3055970B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226690B1 (en) * 1993-06-14 2001-05-01 International Business Machines Corporation Method and apparatus for utilizing proxy objects to communicate with target objects
JP3979504B2 (ja) * 1994-03-04 2007-09-19 富士通株式会社 コモン・プラットフォーム機能による対話的情報処理装置
EP0684553B1 (en) * 1994-05-26 2004-06-16 Sun Microsystems, Inc. Method and apparatus for generating and using short operation identifiers in object oriented systems
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
US6640255B1 (en) * 1995-03-31 2003-10-28 Sun Microsystems, Inc. Method and apparatus for generation and installation of distributed objects on a distributed object system
GB2305270A (en) * 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5920868A (en) * 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US6041179A (en) * 1996-10-03 2000-03-21 International Business Machines Corporation Object oriented dispatch optimization
US6526457B1 (en) * 1996-10-30 2003-02-25 Computer Associates Think, Inc. Systems utility object interface for facilitating software portability
JPH10275083A (ja) * 1997-02-03 1998-10-13 N T T Data Tsushin Kk リモートオブジェクトアクセスシステム及び方法
US6125383A (en) * 1997-06-11 2000-09-26 Netgenics Corp. Research system using multi-platform object oriented program language for providing objects at runtime for creating and manipulating biological or chemical data
US5995974A (en) 1997-08-27 1999-11-30 Informix Software, Inc. Database server for handling a plurality of user defined routines (UDRs) expressed in a plurality of computer languages
US6275870B1 (en) * 1997-09-24 2001-08-14 Sony Corporation Network object request broker
US6799224B1 (en) * 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
US6260155B1 (en) 1998-05-01 2001-07-10 Quad Research Network information server
US7263476B1 (en) 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US7343596B1 (en) * 2002-03-19 2008-03-11 Dloo, Incorporated Method and system for creating self-assembling components
US8549114B2 (en) 2002-06-12 2013-10-01 Bladelogic, Inc. Method and system for model-based heterogeneous server configuration management
US7010596B2 (en) * 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
US7346890B1 (en) 2003-03-17 2008-03-18 Dloo, Incorporated Method and system for creating linkable programming languages
US7719482B2 (en) * 2004-11-03 2010-05-18 Sony Corporation Method and system for processing wireless digital multimedia
CA2579955C (en) * 2004-11-03 2013-09-03 Sony Electronics Inc. Method and system for wireless transmission
US20080114627A1 (en) * 2006-11-15 2008-05-15 Sap Ag System and Method for Capturing Process Instance Information in Complex or Distributed Systems
WO2014196257A1 (ja) 2013-06-04 2014-12-11 本田技研工業株式会社 車両

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5313629A (en) * 1989-10-23 1994-05-17 International Business Machines Corporation Unit of work for preserving data integrity of a data-base by creating in memory a copy of all objects which are to be processed together
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
US5297284A (en) * 1991-04-09 1994-03-22 Microsoft Corporation Method and system for implementing virtual functions and virtual base classes and setting a this pointer for an object-oriented programming language

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
「1990年代の分散処理シンポジウム論文集」(1990−11)社団法人情報処理学会、P.57−64
「Proc.of the 1990 IEEE International Conf.on Computer Systems and Software Engineering」(1990)P.391−398
「情報処理学会第42回(平成3年前期)全国大会講演論文集」(1991−2)P.5−65〜66
「情報処理学会第42回(平成3年前期)全国大会講演論文集」(1991−2)P.6−319−322
「日経バイト」No.85(1991−5)P.232−240

Also Published As

Publication number Publication date
US5450583A (en) 1995-09-12
JPH0512025A (ja) 1993-01-22

Similar Documents

Publication Publication Date Title
JP3055970B2 (ja) オブジェクト指向言語間インタフェース実現方法および装置
US11171897B2 (en) Method and apparatus for composite user interface generation
CA2237333C (en) A method and apparatus for making a hypermedium interactive
US6487607B1 (en) Methods and apparatus for remote method invocation
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
US6393497B1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
JP2810923B2 (ja) デジタル処理システムにおけるアプリケーション統合装置
US20110093527A1 (en) Distributed hypermedia method and system for automatically invoking external applications providing interaction and display of embedded objects via a scripting platform
WO2002029548A2 (en) Http transaction monitor with capacity to replay in debugging session
US20010011215A1 (en) Network device simulation system and method
US6874151B1 (en) Interprocess communication mechanism for heterogeneous computer processes
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
CN112688915A (zh) 跨协议通信方法、装置及服务器
US6308226B1 (en) Communication method and system for objects movable in network
JP2000250838A (ja) アプリケーションプログラムの実装方法ならびにシステム及び同方法がプログラムされ記録された記録媒体
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
JP5042415B2 (ja) クライアントサーバシステム
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
JP2003076563A (ja) 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム
JP2004227405A (ja) Webアプリケーションサーバ、Webアプリケーションサーバシステム、アプリケーション制御方法及びプログラム
JP2004199158A (ja) 中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバ
CN117648210A (zh) 一种远程访问图形处理器的方法和装置
JP2001060166A (ja) 文書閲覧システム及びそのシステムで用いられるデータ読み込み装置及び文書表示装置
JP2000172653A (ja) 分散システム
JP2008083745A (ja) 情報処理方法及び情報処理システム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000328

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

Free format text: PAYMENT UNTIL: 20080414

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090414

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees