JPH10320367A - ネットワーク移動可能なオブジェクト間の通信方法及び通信システム - Google Patents

ネットワーク移動可能なオブジェクト間の通信方法及び通信システム

Info

Publication number
JPH10320367A
JPH10320367A JP12900197A JP12900197A JPH10320367A JP H10320367 A JPH10320367 A JP H10320367A JP 12900197 A JP12900197 A JP 12900197A JP 12900197 A JP12900197 A JP 12900197A JP H10320367 A JPH10320367 A JP H10320367A
Authority
JP
Japan
Prior art keywords
network
mug
site
data
observable
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.)
Pending
Application number
JP12900197A
Other languages
English (en)
Inventor
Tatsuya Kainuma
達也 貝沼
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 JP12900197A priority Critical patent/JPH10320367A/ja
Priority to US09/041,761 priority patent/US6308226B1/en
Publication of JPH10320367A publication Critical patent/JPH10320367A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 ネットワーク移動可能なオブジェクト間の連
携をより柔軟に実現することにある。 【解決手段】 サイトA内のオブジェクト組である実体
601と通信接続しているサイトB内のオブジェクト組
である化身602は、サイトA内の実体601との接続
を切断した後にサイトCに移動する。化身602は、そ
れに対応するマグ識別子1006を指定することによ
り、リポジトリ1001が保持しているデータベース1
003内の上記指定したマグ識別子1006を含むエン
トリ内のネットワークアドレス情報1007を、サイト
Cを示すものに更新する。その後、化身602がサイト
A内の実体601にトリガをかけ、そのトリガに基づい
て、サイトC内の化身602とサイトA内の実体601
とが、リポジトリ1001に随時照会することにより、
相互の通信接続を再確立する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワーク内を
移動可能なオブジェクトの連携を実現するオブジェクト
間通信技術に関する。
【0002】
【従来の技術】オブジェクト指向プログラミングの普及
により、オブジェクト間の連携を柔軟に実現する技術が
要請されている。
【0003】オブジェクト間の連携の具体例として、例
えば、ウインドウベースのソフトウエアアプリケーショ
ンの開発ツールが知られている。ユーザは、このツール
を用いることにより、ウインドウのフォーム、ボタン、
リストボックス等のオブジェクトを、マウス等を用いて
ビジュアルな形式で組み合わせることにより、GUI
(グラフィックユーザインタフェース)を実現するアプ
リケーションを容易に開発することができる。この場合
に、上記各オブジェクトは相互に連携して動作する必要
があり、この場合に、オブジェクト間の連携を柔軟かつ
効率的に実現するための技術が重要な技術として要請さ
れる。
【0004】オブジェクト間の連携の他の具体例とし
て、例えば、ワードプロセッサアプリケーションによっ
て作成されたクライアントである文書オブジェクトの中
に、表計算アプリケーションで作成されたサーバである
表(スプレッドシート)オブジェクトをエンベッドさせ
る(埋め込む)ことのできる技術が知られている。この
場合にも、オブジェクト間の連携を柔軟に実現する必要
がある。
【0005】上述したオブジェクト間の連携を実現する
機能として、従来、OLE(ObjectLinking and Embedd
ing)やOpenDocなどの機能が知られている。こ
れらの機能においては、上述の文書オブジェクトと表オ
ブジェクトの連携の例のように、1つのオブジェクトで
あるサーバ資源を、他の1つのオブジェクトであるクラ
イアント中にエンベッドさせる(埋め込む)ことができ
る。
【0006】
【発明が解決しようとする課題】しかし、上述の従来技
術は、1つのクライアントにエンベッドされている1つ
のサーバ資源を、他のクライアントに同時にエンベッド
させることはできないという第1の問題点を有してい
た。
【0007】また、上述の従来技術は、他のサーバ資源
がエンベッドされているクライアントを、他のクライア
ントに対するサーバ資源としてエンベッドさせることは
できないという第2の問題点を有していた。
【0008】更に、上述の従来技術では、どのクライア
ントにどのサーバ資源がエンベッドさせられるかという
情報は、クライアントを生成するクラスのソースコード
上に明記されていなければならなかった。即ち、上述の
従来技術は、サーバ資源とクライアントとの関係は、予
め静的に決定されており、その関係を実行時に動的に決
定することができないという第3の問題点を有してい
た。
【0009】加えて、近年では、移動可能(モーバイ
ル)コンピュータが普及し、ネットワークを介したオブ
ジェクト間の連携の実現も要請されているが、コンピュ
ータが移動した場合のオブジェクトの接続の整合性を実
現する技術は、今まで効率的なものは知られていなかっ
た。
【0010】本発明の課題は、オブジェクト間の連携を
より柔軟に実現すること、特にネットワーク移動可能な
オブジェクト間の連携をより柔軟に実現することにあ
る。
【0011】
【課題を解決するための手段】本発明の態様の一例は、
ネットワーク内を移動可能な複数のオブジェクト間でネ
ットワークを介して通信を行うオブジェクト間の通信方
法を前提とする。
【0012】まず、データに直接にアクセスする機能を
有するアクセス手続きを含むオブジェクトであるオブザ
ーバブルオブジェクト(オブザーバブル101)と、ネ
ットワークとの間で、オブザーバブルオブジェクト内の
アクセス手続きを介してデータに対するアクセス処理を
中継する機能(ネットオブザーバ401)とを含むオブ
ジェクト組である第1のマグ(実体601)を、ネット
ワーク内の第1のコンピュータ内に生成される。
【0013】次に、その第1のマグに含まれるオブザー
バブルオブジェクトが有するデータにネットワークを介
して間接的にアクセスすることのできるアクセス手続き
を有するネットオブザーバブルオブジェクト(ネットオ
ブザーバブル402)と、そのアクセス手続きを介して
第1のマグに含まれるオブザーバブルオブジェクトが有
するデータにネットワークを介してアクセスするオブザ
ーバオブジェクト(オブザーバ102)とを含むオブジ
ェクト組である第2のマグ(化身602)が、ネットワ
ーク内のコンピュータであって第1のコンピュータとは
別又は同一である第2のコンピュータ内に生成される。
【0014】次に、ネットワーク内に、第1及び第2の
マグをそれぞれ識別するための各マグ識別子(マグ識別
子1006)と、ネットワーク内で第1及び第2のマグ
が存在するサイトのアドレスを示すネットワークアドレ
ス情報(ネットワークアドレス情報1007)とを含む
データ組を保持するサーバコンピュータであるリポジト
リ(リポジトリ1001)が構成される。
【0015】続いて、第1又は第2のマグがネットワー
ク内を移動する場合に、その移動する第1又は第2のマ
グが、それとネットワークを介して通信している第2又
は第1のマグとの接続を切断し、その後にネットワーク
内を移動する。
【0016】更に、ネットワーク内を移動した第1又は
第2のマグが、それに対応するマグ識別子を指定するこ
とにより、リポジトリが保持しているその指定したマグ
識別子を含むデータ組内のネットワークアドレス情報
を、ネットワーク内を移動した第1又は第2のマグが新
たに存在する第3のコンピュータを示すものに更新す
る。
【0017】そして、ネットワーク内を移動した第1又
は第2のマグが、それとネットワークを介して通信して
いた第2又は第1のマグにトリガをかけ、そのトリガに
基づいて、ネットワーク内を移動した第1又は第2のマ
グと、それとネットワークを介して通信していた第2又
は第1のマグとが、それらに対応するリポジトリが保持
しているデータ組を随時参照することにより、相互の通
信接続を再確立する。
【0018】上述の発明の構成により、ネットワーク内
の1つのコンピュータ上の第1ノマグと、それを参照す
るマグであってネットワーク内の他のコンピュータに移
動した第2のマグは、リポジトリ内のマグ識別子とネッ
トワークアドレス情報とからなるデータ組を更新し及び
照会することにより、移動前と移動後とで、それらの接
続の整合性を維持することができる。
【0019】なお、本発明は、コンピュータにより使用
されたときに、上述の本発明の構成例によって実現され
る機能と同様の機能をコンピュータに行わせるためのコ
ンピュータ読出し可能記録媒体として構成することもで
きる。
【0020】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態について詳細に説明する。本発明の実施の
形態では、ネットワーク移動可能なオブジェクトを、リ
ポジトリと呼ぶサーバコンピュータにアクセスすること
のできるエージェントとして実現していることが、本発
明に関連する大きな特徴である。
【0021】本発明の実施の形態では、上述のエージェ
ントを実現する前提技術として、種々のオブジェクト技
術を用いているため、まず、それらの前提技術について
説明した後に、エージェントによるネットワーク移動可
能なオブジェクトの実現について説明する。オブザーバとオブザーバブルの説明 図1は、本発明の実施の形態におけるオブザーバとオブ
ザーバブルの説明である。
【0022】本実施の形態においては、オブジェクト間
の通信モデルとして、オブザーバブル(Observable)1
01とオブザーバ(Observer)102という概念が用い
られる。オブザーバブル101及びオブザーバ102は
それぞれオブジェクトであって、このモデルはオブザー
バ102がオブザーバブル101を参照(アクセス)す
る関係を有する。
【0023】そして、本実施の形態においては、オブザ
ーバ102によるオブザーバブル101に対する参照
は、オブザーバブル101に定義されるスロット103
と呼ばれるインタフェースのみを介して行われる。
【0024】スロット103は、オブザーバブル101
が有する、外部のオブザーバ102に対するインタフェ
ース(例えば構造体)であって、オブザーバブル101
は、複数個のスロット103を有することができる。
【0025】このスロット103は、図2に示されるよ
うに、“名前”と、所定の型を有する“データ”と、
“リード手続き”コードと、“ライト手続き”コードと
からなる。“リード手続き”及び“ライト手続き”は、
スロット103毎に定義可能であり、デフォルトでは、
“リード手続き”が“データ”の取出しを実行し、“ラ
イト手続き”が“データ”への代入を実行する。
【0026】オブザーバ102は、オブザーバブル10
1のスロット103をそれに格納されている“名前”で
オープンすることによって、スロット103を識別する
ためのスロットディスクリプタを獲得し、そのスロット
ディスクリプタに対してリードメソッド又はライトメソ
ッドを実行することによって、スロット103の“リー
ド手続き”又は“ライト手続き”を呼び出すことができ
る。
【0027】従って、オブザーバ102とオブザーバブ
ル101の関係は、オブザーバ102及びオブザーバブ
ル101を定義するクラスのソースコード上に明記され
る必要はなく、“名前”(スロットディスクリプタ)の
指定を介して実行時に動的に決定することができる。
【0028】本実施の形態では、オブザーバブル101
の“データ”が変化すると、その変化を示す“アップデ
ート”と呼ばれるイベント(図1の“update”)
が、そのオブザーバブル101を参照しているオブザー
バ102に通知される。これにより、オブザーバ102
は、オブザーバブル101の最新の状態を常に参照する
ことができる。この機構により、1つのオブザーバブル
101を複数のオブザーバ102が同時に参照すること
ができる。即ち、オブザーバブル101の“データ”が
変化すると、“アップデート”イベントが、そのオブザ
ーバブル101を参照している全てのオブザーバ102
に対して通知されるように構成することができる。この
結果、1つのオブザーバブル101を参照している全て
のオブザーバ102において、そのオブザーバブル10
1に対する観測状態の整合性を保持することができるの
である。
【0029】また、オブザーバ102自身も、スロット
103を有することにより、他のオブザーバ102から
参照されるオブザーバブル101になることができる。
これによって、オブザーバ102とオブザーバブル10
1の関係が対称になる。
【0030】図3は、オブザーバブル101とオブザー
バ102の間のプロトコルに関連するメソッドの説明図
である。まず、オブザーバブル101に対する参照関係
を制御するプロトコルのメソッドとして、図3(a) に示
されるopenメソッドと図3(b) に示されるclose メソッ
ドが定義される。
【0031】図3(a) に示されるopenメソッドは、オブ
ザーバ102がオブザーバブル101の“slotname”と
いう“名前”(図2参照)を有するスロット103を参
照することを宣言する。このopenメソッドが、オブザー
バ102のオブザーバブル101に対する参照関係を確
立する。なお、“slotname”のデータ型は“String”型
(文字列型)であり、openメソッドの戻り値は、“Slot
Descriptor”型を有するスロットディスクリプタであ
る。openメソッドの実行が成功した以後は、それによっ
て返されるスロットディスクリプタを用いることによ
り、それに対応するスロット103の“データ”(図2
参照)にアクセスすることができる。
【0032】図1の構成では、オブザーバブル101
は、“slota ”,“slotb ”,及び“slotc ”という3
つのスロット103を有している。そして、#1のオブザ
ーバ102は、下記の2つのopenメソッドを実行してス
ロットディスクリプタa及びbを得ることにより、オブ
ザーバブル101のスロット103(“slota ”)及び
スロット103(“slotb ”)に対応する参照関係を、
それぞれ確立する。
【0033】a=open("slota") b=open("slotb") 同様に、#2及び#3のオブザーバ102は、下記の各open
メソッドを実行してスロットディスクリプタb′及びc
を得ることにより、オブザーバブル101のスロット1
03(“slotb ”)及びスロット103(“slotc ”)
に対応する参照関係を、それぞれ確立する。
【0034】b'=open("slotb") c =open("slotc") 次に、図3(b) に示されるclose メソッドは、オブザー
バ102の所定のオブザーバブル101のスロット10
3への参照を終了することを宣言する。この所定のオブ
ザーバ102のスロット103は、上記close メソッド
の引数として与えられ“SlotDescriptor”型を有するス
ロットディスクリプタ“desc”により特定される。この
close メソッドにより、オブザーバ102が開いている
オブザーバブル101のスロット103が1つもなくな
ると、そのオブザーバブル101に対する参照関係は消
滅する。なお、close メソッドの戻り値の型は、“voi
d”型(有益な値が返されないことを示す型)である。
【0035】続いて、前述のopenメソッドにより獲得さ
れたスロットディスクリプタに関連するプロトコルのメ
ソッドとして、図3(c) に示されるreadメソッド、図3
(d)に示されるwrite メソッド、図3(e) に示されるisM
odifiedメソッド、及び図3(f) に示されるtypeメソッ
ドが定義される。
【0036】図3(c) に示されるreadメソッドは、des
c.read() として与えられるスロットディスクリプタ“d
esc”によって特定される、所定のオブザーバブル10
1の所定のスロット103内の“リード手続き”(図2
参照)を実行する。リードデータは、readメソッドの戻
り値として返され、その型は、上記スロット103内の
“データ”(図2参照)の型と同じ型(“Object”型)
である。
【0037】図1の構成では、後述するupdateイベント
の発生時に、#1及び#2のオブザーバ102が、オブザー
バブル101内のスロット103(“slotb ”)に対
し、下記の各readメソッドを実行することにより、その
スロット103(“slotb ”)内の“データ”を読み出
している。
【0038】b.read() b'.read() 図3(d) に示されるwrite メソッドは、desc.write()と
して与えられるスロットディスクリプタ“desc”によっ
て特定される、所定のオブザーバブル101の所定のス
ロット103内の“ライト手続き”(図2参照)を実行
する。ライトオブジェクトデータは、write メソッドの
引数“obj ”として与えられて、その型は、上記スロッ
ト103内の“データ”(図2参照)の型と同じ型
(“Object”型)である。
【0039】図1の構成では、#2のオブザーバ102
が、オブザーバブル101内のスロット103(“slot
b ”)に対して、下記のwrite メソッドを実行すること
によって、データ“obj ”を、そのスロット103
(“slotb ”)内の“データ”領域に書き込んでいる。
【0040】b'.write(obj) 図3(e) に示されるisModifiedメソッドは、desc.isMod
ified() として与えられるスロットディスクリプタ“de
sc”により特定される、所定のオブザーバブル101の
所定のスロット103内の特には図示しない“isModifi
ed手続き”を実行する。この手続きは、スロット103
内の“データ”が変更されている場合にはboolean 値で
ある“true”を返し、変更されていない場合にはboolea
n 値である“false ”を返す。
【0041】図1の構成では、後述するupdateイベント
の発生時に、#1、#2、及び#3のオブザーバ102が、オ
ブザーバブル101内の各スロット103に対し、下記
の各isModifiedメソッドを実行することにより、各スロ
ット103内の“データ”が変更されたか否かを検出し
ている。
【0042】a.isModified() b.isModified() b'.isModified() c.isModified() 各オブザーバ102は、updateイベントの発生時に、こ
のisModifiedメソッドを実行することにより、オブザー
バブル101に対する観測状態の整合性を保持すること
ができる。
【0043】図3(f) に示されるtypeメソッドは、des
c.type() として与えられるスロットディスクリプタ“d
esc”により特定される、所定のオブザーバブル101
の所定のスロット103内の特には図示しない“type手
続き”を実行する。この手続きは、スロット103内の
“データ”の型情報を返す。オブザーバ102は、read
メソッド又はwrite メソッドの発行に先立って、オブザ
ーバブル101のスロット103の“データ”の型情報
を得ることができる。
【0044】最後に、オブザーバブル101からオブザ
ーバ102への方向を有するプロトコルのメソッドとし
て、図3(g) に示されるupdateメソッドが定義される。
このupdateメソッドは、オブザーバブル101を含むソ
ースコード側に記述され、オブザーバブル101の何れ
かのスロット103内の“データ”に対して“ライト手
続き”が実行された場合に、その“データ”の変更(モ
ディファイ)を示すために、そのオブザーバブル101
に接続している全てのオブザーバ102に対して、upda
teイベントを発行する。
【0045】図1の構成において、例えば#2のオブザー
バ102が、オブザーバブル101内のスロット103
(“slotb ”)に対して、メソッド“b'.write(obj) ”
を実行することによって、データ“obj ”を、そのスロ
ット103(“slotb ”)内の“データ”領域に書き込
むと、オブザーバブル101は、updateメソッドを実行
することにより、それに接続している#1〜#3の各オブザ
ーバ102に対して、updateイベントを発行する。
【0046】#1のオブザーバ102は、上述のupdateイ
ベントを受信すると、それが現在オープンしているオブ
ザーバブル101内のスロット103(“slota ”)及
びスロット103(“slotb ”)に対して、メソッド
“a.isModified()”及び“b.isModified()”を実行する
ことにより、スロット103(“slotb ”)内の“デー
タ”が変更されたことを検出する。続いて、#1のオブザ
ーバ102は、オブザーバブル101内のスロット10
3(“slotb ”)に対し、メソッド“b.read()”を実行
することにより、上記変更された“データ”を読み出
す。
【0047】同様に、#2のオブザーバ102は、前記up
dateイベントを受信すると、それが現在オープンしてい
るオブザーバブル101内のスロット103(“slotb
”)に対して、メソッド“b'.isModified() ”を実行
することにより、スロット103(“slotb ”)内の
“データ”が変更されたことを検出する。続いて、#2の
オブザーバ102は、オブザーバブル101内のスロッ
ト103(“slotb ”)に対して、メソッド“b'.rea
d() ”を実行することにより、上記変更された“デー
タ”を読み出す。
【0048】更に、#3のオブザーバ102は、前記upda
teイベントを受信すると、それが現在オープンしている
オブザーバブル101内のスロット103(“slotc
”)に対して、メソッド“c.isModified()”を実行す
ることによって、スロット103(“slotc ”)内の
“データ”は変更されていないことを検出する。
【0049】なお、オブザーバ102は、それとオブザ
ーバブル101との間のプロトコルに関連するメソッド
のほかに、そのオブザーバ102が実現する機能に対応
する様々なメソッドを有することができる。例えば、オ
ブザーバ102が、GUIにおけるウインドウオブジェ
クトを実現する場合には、そのオブザーバ102は、そ
のウインドウオブジェクトにおいて発生したイベントを
処理するメソッドや、描画処理を実行するメソッド等を
含むことができる。ネットワークを介したオブザーバとオブザーバブルの間
の通信 図4は、本発明の実施の形態におけるオブザーバ102
によるオブザーバブル101に対する参照がネットワー
クを介して行われる場合の説明図である。
【0050】本実施の形態がネットワーク化される場
合、図4(a) に示されるように、ネットワークによって
接続されるサイト間でオブジェクト間通信の中継を行う
ためのオブザーバとオブザーバブルの組であるネットオ
ブザーバ401とネットオブザーバブル402の組が生
成される。
【0051】そして、サイトAのオブザーバブル101
は、それを参照するオブザーバ102が存在するサイト
Bのコンピュータのアドレス(例えばIPアドレス)を
指定して、ネットオブザーバ401とネットオブザーバ
ブル402の組の生成命令を発行する。この場合、オブ
ザーバ102が存在するサイトBとして、複数のものを
指定することができる。
【0052】この結果、まず、オブザーバブル101が
存在するサイトAのコンピュータにおいて、そのオブザ
ーバブル101を参照する機能と、サイトBのネットオ
ブザーバブル402との間で例えばソケットを用いたネ
ットワーク通信を実行する機能を有するネットオブザー
バ401が生成される。
【0053】続いて、そのサイトAのコンピュータから
上記オブザーバブル101を参照するオブザーバ102
が存在するサイトBのコンピュータに対して、ネットオ
ブザーバブル402の生成依頼が発行される。この結
果、サイトBのコンピュータにおいて、上記オブザーバ
102による参照を処理する機能と、サイトAのネット
オブザーバ401との間で前述したネットワーク通信を
実行する機能を有するネットオブザーバブル402が生
成される。ここで、サイトAのオブザーバブル101を
参照するオブザーバ102が存在するサイトBが複数存
在する場合には、サイトAのコンピュータにおいて複数
のネットオブザーバ401が生成される。即ち、この場
合には、1つのオブザーバブル101に対して、それを
参照する複数のネットオブザーバ401がサイトAのコ
ンピュータにおいて生成される。
【0054】ここで、サイトAのオブザーバブル101
内のスロット103(スロットグループ103)とサイ
トBに生成されたネットオブザーバブル402内のスロ
ット103(スロットグループ103)は、両者間で1
対1に対応している。
【0055】そして、サイトBのオブザーバ102は、
サイトAのオブザーバブル101の所定のスロット10
3内の“データ”(図2)を参照する場合には、サイト
Bのネットオブザーバブル402の上記所定のスロット
103と同一のスロット103を、その“名前”(図
2)を用いてオープンする(図3(a) 参照)。そして、
その結果得られるスロットディスクリプタを用いてread
メソッド又はwrite メソッド等の各種メソッド(図3
(c) 〜(f) 参照)を実行する。
【0056】この結果、サイトBのネットオブザーバブ
ル402の所定のスロット103の所定の手続きが起動
され、この手続きによって、サイトBのオブザーバ10
2によるアクセス情報がサイトAのネットオブザーバ4
01に中継される。この場合のネットワーク通信方式と
しては、例えば、プロセス間通信の1方式であるソケッ
トを用いたものを採用することができる。
【0057】サイトAのネットオブザーバ401は、サ
イトBのネットオブザーバブル402からサイトBのオ
ブザーバ102によるアクセス情報を受信すると、サイ
トAのオブザーバブル101の所定のスロット103を
オープンし、上記アクセス情報をそのスロット103に
対するメソッドに変換して、それを実行する。
【0058】この結果、サイトAのオブザーバブル10
1の“データ”が参照され、その結果がサイトAのネッ
トオブザーバ401に返される。サイトAのネットオブ
ザーバ401は、その結果をサイトBのネットオブザー
バブル402に中継する。
【0059】サイトBのネットオブザーバブル402
は、サイトAのネットオブザーバ401からアクセス結
果を受信すると、そのアクセス結果を、前述したサイト
Bのオブザーバ102によるアクセス情報を中継した手
続きのプロセスに返す。
【0060】この手続きは、それを起動したサイトBの
オブザーバ102に、上記アクセス結果を返す。以上説
明したように、サイトBのオブザーバ102がサイトA
のオブザーバブル101のスロット103内の“デー
タ”(図2参照)を参照する場合には、指定オブジェク
トをサイトAのオブザーバブル101からサイトBのネ
ットオブザーバブル402に変更するだけで、ネットワ
ークを意識することなく、上記参照を実現することがで
きる。
【0061】図4(b) に、ネットオブザーバ401とネ
ットオブザーバブル402のコーディング例を示す。こ
の例は、サイトBのオブザーバ102からサイトAのオ
ブザーバブル101に対して発行されるwrite メソッド
を処理する部分を中心に示されている。
【0062】まず、サイトAのネットオブザーバ401
は、その起動時に、例えば図4(b)の右側に模式的に示
されるコーディング内容を有する受信デーモンプロセス
を起動する。この受信デーモンプロセスは、サイトBの
ネットオブザーバブル402から中継されてくる情報を
監視し処理する。一方、サイトBのネットオブザーバブ
ル402も、その起動時に、例えば図4(b) の左側に模
式的に示されるコーディング内容を有する受信デーモン
プロセスを起動する。この受信デーモンプロセスは、サ
イトAのネットオブザーバ401から中継されてくる情
報を監視し処理する。
【0063】また、サイトBのネットオブザーバブル4
02の各スロット103の各手続きのコーディングにお
いては、サイトBのオブザーバ102によるアクセス情
報をサイトAのネットオブザーバ401に中継するため
のコードが記述されている。図4(b) の#9〜#12 には、
サイトBのネットオブザーバブル402の1つのスロッ
ト103の“ライト手続き”(図2参照)を模式的に示
したコードの例が示されている。
【0064】今、例えば、サイトBのオブザーバ102
が、サイトBのネットオブザーバブル402の1つのス
ロット103をオープンした後(図3(a) 参照)、その
スロット103に対してwrite メソッド(図3(d) 参
照)を実行したとする。
【0065】この結果、例えば図4(b) の#9〜#12 とし
て示される、サイトBのネットオブザーバブル402の
1つのスロット103の“ライト手続き”のコード群が
実行される。なお、デッドロックを回避するため、これ
らのコード群は独立したスレッドとして実行されること
が望ましい。
【0066】これにより、#10 に示されるwrite 命令が
実行される。この結果、このwrite命令の第2引数とし
て与えられるサイトBのオブザーバ102によるアクセ
ス情報<write 識別子、名前、obj 、waitId>が、サイ
トAのネットオブザーバ401に中継される。ここで、
“write 識別子”は、サイトBのオブザーバ102がwr
ite メソッドを発行したことを示す識別子である。ま
た、“名前”としては、上述のwrite 命令が含まれるス
ロット103の“名前”(図2参照)が指定される。ま
た、obj は、サイトBのオブザーバ102が発行したwr
ite メソッドに引数として指定されているオブジェクト
データである。更に、“waitId”は、後述のwait命令の
制御に用いられる。なお、write 命令の第1引数“soc
”は、ネットワーク上のソケット接続を識別するため
のソケットディスクリプタである。
【0067】上記#10 に示されるwrite 命令が実行され
た後、#11 に示されるwait命令によって、これらのコー
ド群が実行されていたスレッドはスリープ状態になる。
このスリープ状態は、図4(b) の左側に示される、サイ
トBのネットオブザーバブル402が有する受信デーモ
ンプロセスから、上記write 命令に対応する応答がサイ
トAのネットオブザーバ401から受信されたことを示
すpost命令が受信された時点で、解除される。なお、wa
it命令の引数である“waitId”と、上記post命令の引数
である“waitId”とが一致した場合に、そのwait命令が
実行されているスレッドのスリープ状態が解除される。
これにより、複数の手続きを並列して制御することがで
きる。
【0068】サイトAのネットオブザーバ401の受信
デーモンプロセスは、上述のサイトBのネットオブザー
バブル402からのコマンドの発行を監視している。具
体的には、この受信デーモンプロセスの図4(b) に示さ
れる#13 〜#19 の forブロックによる無限ループにおい
て、まず#14 に示されるread(soc)文により、サイトB
のネットオブザーバブル402から中継されてくるアク
セス情報が、リスト<コマンド識別子、名前、obj 、wa
itId>として読み取られる。引数“soc ”はソケットデ
ィスクリプタである。このread(soc)文により、上述の
サイトBのネットオブザーバブル402からのwrite 命
令によるアクセス情報<write 識別子、名前、obj 、wa
itId>が受信される。
【0069】続いて、受信された上記アクセス情報内の
“コマンド識別子”によって場合分けを行うための#15
〜#18 のswitchブロックが実行され、これにより、受信
されたコマンド識別子に対応するcaseブロックが実行さ
れる。上述の例では、“コマンド識別子”は“write 識
別子”であるため、#16 から始まるcaseブロックが実行
される。なお、デッドロックを回避するために、このca
seブロックは、独立したスレッドで実行されるようにコ
ーディングすることが望ましい。
【0070】このcaseブロックでは、まず、上記アクセ
ス情報内の“名前”に対応するサイトAのオブザーバブ
ル101の所定のスロット103が獲得され(具体的に
はそのスロット103に対して既に実行されているopen
メソッドによって得られているスロットディスクリプタ
が獲得され)、そのスロット103に対するwrite メソ
ッドが、上記アクセス情報内の“obj ”を引数として起
動される。
【0071】この結果、サイトAのオブザーバブル10
1の所定のスロット103内の“ライト手続き”(図2
参照)が実行される。その後、上述のcaseブロックにお
いて、#17 に示されるwrite 命令が実行される。この結
果、このwrite 命令の第2引数として与えられる応答情
報<END 識別子、waitId>が、サイトBのネットオブザ
ーバブル402に中継される。ここで、“END 識別子”
は、サイトAのオブザーバブル101に対するwrite メ
ソッドの発行が完了したことを示す識別子である。ま
た、“waitId”は、#14 の命令によって受信された“wa
itId”に等しい。引数“soc ”はソケットディスクリプ
タである。
【0072】サイトBのネットオブザーバブル402の
受信デーモンプロセスは、上述のサイトAのネットオブ
ザーバ401からのコマンドの発行を監視している。具
体的には、この受信デーモンプロセスの図4(b) に示さ
れる#1〜#8の forブロックによる無限ループにおいて、
まず#2に示されるread(soc)文によって、サイトAのネ
ットオブザーバ401から中継されてくる応答情報が読
み取られる。引数“soc ”は、ソケットディスクリプタ
である。このread(soc)文により、上述のサイトAのネ
ットオブザーバ401からのwrite 命令による応答情報
<END 識別子、waitId>が受信される。
【0073】続いて、#3〜#7のswitchブロックが実行さ
れ、これにより、受信された識別子に対応するcaseブロ
ックが実行される。上述の例では、“END 識別子”が受
信されたため、#4から始まるcaseブロックが実行され
る。
【0074】このcaseブロックでは、受信された“wait
Id”を引数とするpost命令が実行される。この結果、前
述したように、上記“waitId”と同じ“waitId”を引数
とし実行されたwait命令が実行されたスレッドのスリー
プ状態が解除され、write メソッドを実行したサイトB
のオブザーバ102に応答が返される。
【0075】ここで、ネットオブザーバ401とネット
オブザーバブル402も含めて、オブザーバによるオブ
ザーバブルに対する参照は、そのオブザーバブルが有す
るスロット103の“名前”を用いて行われる。このた
め、サイトBのオブザーバ102は、サイトAのオブザ
ーバブル101を参照する場合には、サイトBに生成さ
れる上記サイトAのオブザーバブル101に対応するネ
ットオブザーバブル402が有するスロット103の
“名前”を指定するだけで、ネットワークを意識するこ
となく、サイトAのオブザーバブル101を参照するこ
とができる。マグ、実体、化身の説明 続いて、本実施の形態の説明において用いられる、マ
グ、化身、及び実体という概念について説明する。
【0076】図5に示されるマグ501とは、一般に、
“データ”に直接又は間接にアクセスする機能を有する
アクセス手続きを含むオブジェクト(図1に示されるオ
ブザーバブル101又は図4に示されるネットオブザー
バブル402)と、そのアクセス手続きを介して前述の
“データ”を参照しながら所定の処理を実行する少なく
とも1つのオブジェクト(図1に示されるオブザーバ1
02又は図4に示されるネットオブザーバ401)とか
らなるオブジェクトの組をいう。特別な場合として、オ
ブザーバ102又はネットオブザーバブル402のみを
有するマグ501、オブザーバブル101のみを有する
マグ501も存在する。
【0077】次に、図6に示されるように、第1のマグ
501に含まれるオブザーバブル101が有する全ての
又は一部の“データ”にアクセスすることのできるアク
セス手続きを有するネットオブザーバブル402を含む
第2のマグ501を、その第1のマグ501に対する化
身602と呼び、その第1のマグ501を実体601と
呼ぶ。ネットワーク内のサイトBに存在する化身602
内のネットオブザーバブル402は、実体601が存在
するネットワーク内のサイトA上のネットオブザーバ4
01を介して、実体601内のオブザーバブル101と
通信する。言い換えれば、実体601は、所望のアプリ
ケーションを実現するマグ501であって、化身602
は、そのアプリケーションをネットワークを介して参照
するマグ501である。1つの実体601に対し複数の
化身602が存在する可能性があるが、前述したupdate
イベントを用いた機構(図1参照)により、1つの実体
601内のオブザーバブル101を参照している全ての
化身602内のオブザーバ102において、その実体6
01内のオブザーバブル101に対する観測状態の整合
性を保持することができる。
【0078】本実施の形態において、化身602には、
3種類の化身が存在する。第1の化身602は、代替ビ
ューと呼び、ネットオブザーバブル402と、その化身
602に対応する実体601内のオブザーバブル101
のスロット103内の“データ”にアクセスするための
インタフェースのみを有するオブザーバ(デフォルトオ
ブザーバ)102とから構成される。このオブザーバ1
02が有するインタフェースは、具体的には、上述の実
体601内のオブザーバブル101のスロット103に
1対1に対応するネットオブザーバブル402のスロッ
ト103に定義されている“リード手続き”コード、
“ライト手続き”コード、又は“type手続き”コードに
アクセスするためのreadメソッド、write メソッド、又
はtypeメソッド等のコード群(図3参照)と、上記実体
601内のオブザーバブル101に定義されているupda
teメソッドから上記化身602内のネットオブザーバブ
ル402に定義されているupdateメソッドを介して上記
化身602内のオブザーバ102に通知されるupdateイ
ベントを受信するコード等である。
【0079】代替ビュー内のデフォルトオブザーバ10
2は、上記インタフェース以外のアプリケーション機能
は持たない。代替ビューについては、本実施の形態によ
り実現される後述する分散ジョブ実行システムの説明に
おいて、更に言及する。
【0080】第2の化身602は、モデル共有と呼び、
ネットオブザーバブル402と、その化身602に対応
する実体601内のオブザーバ102のコピーであるオ
ブザーバ102とから構成される。
【0081】第3の化身602は、視点(ビューポイン
ト)と呼び、代替ビューが有するインタフェース機能
に、表示とイベントの処理機能が付加されたものであ
る。例えば、図7に示されるように、サイトAに存在す
る実体601内のオブザーバブル101(及びオブザー
バ102)は、例えばGUIを有する表計算処理等のア
プリケーションとして実装される。
【0082】サイトB内の化身602であるビューポイ
ント701は、実体601内のオブザーバブル101の
スロット103に1対1に対応するスロット103を有
するネットオブザーバブル402と、画面オブジェクト
であるオブザーバ102とを含む。
【0083】サイトBのコンピュータ画面上で、マウス
の操作等に基づいてイベントが発生すると、そのイベン
トは、ネットオブザーバブル402内の所定のスロット
103に定義されているアクセス手続きによって、ネッ
トワークを介して、サイトA内の第1のネットオブザー
バ401に中継され、更にその第1のネットオブザーバ
401によって、実体601内のオブザーバブル101
に含まれる上記所定のスロット103と同じ“名前”を
有するスロット103に定義されているアクセス手続き
によって処理される。
【0084】その結果、実体601内のオブザーバブル
101において所定の“データ”の表示命令が発行され
ると、その表示命令は、サイトA内の第1のネットオブ
ザーバ401からネットワークを介して、サイトBに存
在するビューポイント701内のネットオブザーバブル
402に中継され、更にそのネットオブザーバブル40
2によって、ビューポイント701内のオブザーバ10
2に転送される。オブザーバ102は、この表示命令に
基づいて、画面の描画を実行する。
【0085】ここで、図7に示されるように、サイトA
に存在する実体601内のオブザーバブル101にアク
セスするビューポイント701は、例えばサイトBとは
別のサイトC内にも生成することができる。
【0086】サイトB及びサイトC内の各ビューポイン
ト701は、サイトA内の実体601が実現するアプリ
ケーションの画面制御を、それぞれのサイトの環境に合
った形式で実装することができる。この場合、前述した
updateイベントを用いた機構(図1参照)により、実体
601内のオブザーバブル101を参照している全ての
ビューポイント701内のオブザーバ102において、
その実体601内のオブザーバブル101に対する画面
制御状態の整合性を保持することができる。エージェントによるネットワーク移動可能なオブジェク
トの実現 以上説明した前提技術に基づく、ネットワーク移動可能
なオブジェクトの実現技術について、以下に詳細に説明
する。
【0087】本実施の形態では、前述のように、ネット
ワークを介したオブジェクト間通信は、それぞれがオブ
ジェクトの組によって構成されるマグ501である実体
601と化身602を単位として実現されることを前提
とする。この前提のもとで、本実施の形態では、マグ5
01がネットワーク内を移動する場合として、図8に示
されるように、マグ501である化身602が移動する
場合と、図9に示されるように、マグ501である実体
601が移動する場合のそれぞれの場合を許容すること
ができる。
【0088】即ち図8の場合では、サイトA内の実体6
01に対応してサイトB内に生成されている化身602
は、それを含むオブジェクト群であるエージェント80
1と共にサイトCに移動することができ、サイトA内の
実体601とサイトCに移動した化身602は、移動前
と移動後とで、それらの接続の整合性を維持することが
できる。逆に、図9の場合では、サイトB内の化身60
2から参照されるサイトA内の実体601は、それを含
むオブジェクト群であるエージェント901と共にサイ
トA′に移動することができ、サイトA′に移動した実
体601とサイトB内の化身602とは、移動前と移動
後とで、それらの接続の整合性を維持することができ
る。
【0089】このような機能を実現するために、本実施
の形態では、ネットワーク内での実体601及び化身6
02の移動に関する情報を管理する、リポジトリと呼ぶ
サーバコンピュータがネットワーク内に設置される。
【0090】今、図10に示されるように、第1のサイ
トに存在する実体601が第2のサイト(第1のサイト
と同一でもよい)に上記実体601に対応する化身60
2を生成した時点で、第1のサイト内の実体601及び
第2のサイト内の化身602は、リポジトリ1001
に、それぞれが存在する第1及び第2のサイトの各ネッ
トワークアドレス情報1007(#1)及び1007
(#2)を登録する。ネットワークアドレス情報100
7は、例えばホスト名又はIPアドレスである。
【0091】リポジトリ1001内のマグ識別子割振り
部1002は、各ネットワークアドレス情報1007
(#1)及び1007(#2)に対応させて、そのリポ
ジトリ1001の管理範囲においてユニークなマグ識別
子1006(#1)及び1006(#2)をそれぞれ割
り振り、それらの組をそのリポジトリ1001が有する
データベース1003内の各エントリに登録すると共
に、上述の2つのマグ識別子1006(#1)及び10
06(#2)を、第1のサイト内の実体601及び第2
のサイト内の化身602に通知する。
【0092】第1のサイト内の実体601及び第2のサ
イト内の化身602は、自分達自身及びそれぞれの通信
相手(第2のサイト内の化身602及び第1のサイト内
の実体601)のマグ識別子1006(#1)及び10
06(#2)を保持し、それらを用いて相互の接続(例
えば前述したソケットによる接続)を確立し、その後に
相互の通信を開始する。
【0093】図11は、図8の場合に対応する、リポジ
トリ1001を用いたエージェント801の移動処理の
説明図である。サイトAに実体601が存在し、サイト
Bにその実体601に対応する化身602が存在する初
期状態においては、リポジトリ1001内のデータベー
ス1003には、サイトAに存在する実体601に対応
する、マグ識別子1006とネットワークアドレス情報
1007とからなるエントリと、サイトBに存在する化
身602に対応する、マグ識別子1006とネットワー
クアドレス情報1007とからなるエントリとが登録さ
れている。
【0094】サイトBに存在するエージェント801
は、それが移動する場合には、それが含む化身602と
その化身602に対応するサイトA内の実体601との
間の接続(例えばソケット接続)を切断した後に(図1
1のステップ1)、ネットワーク内を宛先であるサイト
Cに移動する(図11のステップ2)。エージェント8
01の移動形態としては、そのエージェント801がサ
イトBからサイトCに送信される形態、又はそのエージ
ェント801を含むモーバイルコンピュータがサイトB
からサイトCに移動する形態等がある。
【0095】エージェント801は、サイトCに移動
後、そのサイトCのネットワークアドレス情報1007
を、そのエージェント801が含む化身602に対応す
るマグ識別子1006と共に、リポジトリ1001に通
知する。リポジトリ1001内のアドレス更新部100
4は、データベース1003上で、サイトCから通知さ
れたマグ識別子1006に対応するエントリを検索し、
検索したエントリ内のネットワークアドレス情報100
7をサイトCから通知されたものに更新する(図11の
ステップ3)。
【0096】その後、サイトCに移動したエージェント
801内の化身602は、リポジトリ1001から実体
601が存在するサイトAのネットワークアドレス情報
1007を取得し(図11のステップ4)、それを用い
てサイトAに存在する実体601に対して、その化身6
02と実体601の再接続要求を送信する。これに対し
て、サイトAに存在する実体601は、リポジトリ10
01から化身602が移動した先のサイトCのネットワ
ークアドレス情報1007を取得し(図11のステップ
4)、それを用いて自分自身とサイトCに移動した化身
602とを再接続する(図11のステップ5)。
【0097】サイトCに移動した化身602又はサイト
A内の実体601は、リポジトリ1001からサイトA
のネットワークアドレス情報1007又はサイトCのネ
ットワークアドレス情報1007を取得する場合には、
リポジトリ1001に、それぞれの通信相手である実体
601のマグ識別子1006又は化身602のマグ識別
子1006を通知して照会する。これに対して、リポジ
トリ1001内のアドレス照会部1005は、データベ
ース1003上で、通知された実体601のマグ識別子
1006又は化身602のマグ識別子1006に対応す
るエントリを検索し、検索したエントリ内のネットワー
クアドレス情報1007を、通知元に返信する。
【0098】このようにして、図8に示されるように化
身602が移動する形態において、サイトA内の実体6
01とサイトCに移動した化身602は、図11に示さ
れるようにしてリポジトリ1001内のデータベース1
003を更新し及び照会することにより、移動前と移動
後とで、それらの接続の整合性を維持することができ
る。リポジトリ1001内のデータベース1003は、
実体601及び化身602の常に最新のネットワークア
ドレス情報1007を保持することになるため、移動し
た実体601又は化身602がネットワーク内で行方不
明になってしまうという事態を回避することができる。
【0099】次に、図12は、図9の場合に対応する、
リポジトリ1001を用いたエージェント901の移動
処理の説明図である。図11の場合と同様に、サイトA
に実体601が存在し、サイトBにその実体601に対
応する化身602が存在する初期状態では、リポジトリ
1001内のデータベース1003には、サイトAに存
在する実体601に対応する、マグ識別子1006とネ
ットワークアドレス情報1007とからなるエントリ
と、サイトBに存在する化身602に対応する、マグ識
別子1006とネットワークアドレス情報1007とか
らなるエントリとが登録されている。
【0100】サイトAに存在するエージェント901
は、それが移動する場合には、それが含む実体601と
その実体601に対応するサイトB内の化身602との
間の接続を切断した後に(図12のステップ1)、ネッ
トワーク内を宛先であるサイトA′に移動する(図12
のステップ2)。
【0101】エージェント901は、サイトA′に移動
後、そのサイトA′のネットワークアドレス情報100
7を、そのエージェント901が含む実体601に対応
するマグ識別子1006と共に、リポジトリ1001に
通知する。リポジトリ1001内のアドレス更新部10
04は、データベース1003上で、サイトA′から通
知されたマグ識別子1006に対応するエントリを検索
し、検索したエントリ内のネットワークアドレス情報1
007をサイトA′から通知されたものに更新する(図
12のステップ3)。
【0102】その後、サイトA′に移動したエージェン
ト901内の実体601は、リポジトリ1001から化
身602が存在するサイトBのネットワークアドレス情
報1007を取得し(図12のステップ4)、それを用
いて自分自身とサイトBに存在する化身602とを再接
続する(図12のステップ5)。
【0103】図11の場合と同様に、サイトA′に移動
した実体601又はサイトB内の化身602は、リポジ
トリ1001からサイトBのネットワークアドレス情報
1007又はサイトA′のネットワークアドレス情報1
007を取得する場合には、リポジトリ1001に、そ
れぞれの通信相手である化身602のマグ識別子100
6又は実体601のマグ識別子1006を通知して照会
する。これに対して、リポジトリ1001内のアドレス
照会部1005は、データベース1003上で、通知さ
れた化身602のマグ識別子1006又は実体601の
マグ識別子1006に対応するエントリを検索し、検索
したエントリ内のネットワークアドレス情報1007
を、通知元に返信する。
【0104】このようにして、図9に示されるように実
体601が移動する形態において、サイトA′に移動し
た実体601とサイトB内の化身602は、図12に示
されるようにしてリポジトリ1001内のデータベース
1003を更新し及び照会することによって、移動前と
移動後とで、それらの接続の整合性を維持することがで
きる。この場合も図11の場合と同様に、リポジトリ1
001内のデータベース1003は、実体601及び化
身602の常に最新のネットワークアドレス情報100
7を保持することになるため、移動した実体601又は
化身602がネットワーク内で行方不明になってしまう
という事態を回避することができる。エージェントの移動処理の詳細説明 上述したエージェントの移動処理の詳細動作について、
以下に説明する。
【0105】図13(a) は、エージェントの移動前即ち
化身602と実体601の接続の切断処理前の状態を示
した図である。切断処理前においては、図4を用いて詳
細に前述したように、化身602内のオブザーバ102
と実体601内のオブザーバブル101は、化身602
が有するネットオブザーバブル402と実体601が有
する又は実体601とは別のネットオブザーバ401と
を介して通信する。相手からのコマンドは、ネットオブ
ザーバブル402内の受信デーモン1303又はネット
オブザーバ401内の受信デーモン1304が受信する
(図4(b) 参照)。ネットオブザーバブル402内のネ
ットワークモデル部1301は、化身602内のオブザ
ーバ102にスロットインタフェースを提供する。ネッ
トオブザーバ401内のネットワーク制御部1302
は、受信デーモン1304と実体601内のオブザーバ
ブル101との間の通信を中継する。
【0106】図13(b) は、切断処理を示した図であ
る。なお、移動しようとしているエージェントが存在す
るサイトをサーバ側、そのエージェントに含まれる化身
602又は実体601と通信している実体601又は化
身602が存在するサイトをクライアント側と呼ぶ。
【0107】まず、サーバ側において、エージェントに
よって、シャットダウン処理が起動される(図13(b)
のステップ1)。次に、サーバ側からクライアント側に
対して、シャットダウン要求が送信される(図13(b)
のステップ2)。
【0108】クライアント側は、上記シャットダウン要
求を受信すると、自サイトで処理要求待ちとなっている
処理をキャンセルした後(図13(b) のステップ3)、
自サイトにおけるネットワーク制御部1302と受信デ
ーモン1304との参照関係又はネットワークモデル部
1301と受信デーモン1303との参照関係を切断す
る(図13(b) のステップ4)。この切断処理の結果
は、サーバ側に返信される。
【0109】サーバ側は、上述の切断処理の結果を受信
すると、自サイトにおけるネットワークモデル部130
1と受信デーモン1303との参照関係又はネットワー
ク制御部1302と受信デーモン1304との参照関係
を切断し、ソケットをクローズする(図13(b) のステ
ップ5)。
【0110】図13(c) は、切断処理後の化身602及
び実体601の状態を示した図である。この図からわか
るように、ネットワーク通信を実行していた受信デーモ
ン1303及び1304が消滅した状態となる。
【0111】図14は、図9に示されるように、実体6
01を含むエージェント901がネットワーク内を移動
した後における再接続処理の説明図である。この場合に
は、エージェント901内の実体601をトリガとし
て、再接続処理が実行される。
【0112】まず、移動後のサイトにおいて、エージェ
ント901内の実体601内のネットワーク制御部13
02が、その実体601に対応する化身602に対する
ネットワーク再接続処理を起動する(図14のステップ
1)。
【0113】次に、ネットワーク制御部1302は、前
述したように、特には図示しないリポジトリ1001
(図12参照)に切断前に通信していた化身602のマ
グ識別子1006を通知して照会することにより、その
リポジトリ1001から化身602が存在するサイトの
ネットワークアドレス情報1007を取得する(図14
のステップ2)。
【0114】次に、ネットワーク制御部1302は、実
体601に対応する受信デーモン1304を起動する
(図14のステップ3)。続いて、その起動した受信デ
ーモン1304が、リポジトリ1001から取得したネ
ットワークアドレス情報1007を用いて、化身602
が存在するサイトに再接続要求を送信する(図14のス
テップ4)。
【0115】化身602が存在するサイトでは、上記再
接続要求が受信されると、ネットワークサービス起動部
(例えばinetdデーモン)が、化身602に対応す
る受信デーモン1303を起動する(図14のステップ
5)。
【0116】更に、化身602が存在するサイトでは、
カーネルが、上記受信デーモン1303と化身602と
の関係付けを実行する(図14ステップ6)。具体的に
は、化身602内のネットワークモデル部1301と受
信デーモン1303との相互の参照関係(例えばメモリ
アドレスの参照関係)が確立される。
【0117】この結果、実体601とそれに対応する化
身602との間の再接続が完了する(図14のステップ
7)。図15は、図8に示されるように、化身602を
含むエージェント801がネットワーク内を移動した後
における再接続処理の説明図である。
【0118】この場合には、エージェント801内の化
身602をトリガとして、再接続処理が実行される。ま
ず、移動後のサイトにおいて、エージェント801内の
化身602内のネットワークモデル部1301が、その
化身602に対応する実体601に対するネットワーク
再接続処理を起動する(図15のステップ1)。
【0119】次に、ネットワークモデル部1301は、
前述したように、特には図示しないリポジトリ1001
(図11参照)に切断前に通信していた実体601のマ
グ識別子1006を通知して照会することにより、その
リポジトリ1001から実体601が存在するサイトの
ネットワークアドレス情報1007を取得する(図15
のステップ2)。
【0120】次に、ネットワークモデル部1301は、
リポジトリ1001から取得したネットワークアドレス
情報1007を用いて、実体601が存在するサイトに
再接続処理要求を送信する(図15のステップ3)。
【0121】実体601が存在するサイトでは、上記再
接続処理要求が受信されると、図14の示される一連の
処理が開始され、最終的に実体601とそれに対応する
化身602とが再接続する。本実施の形態により実現される分散ジョブ実行システム
の説明 上述した本発明の実施の形態を応用することにより実現
される分散ジョブ実行システムについて、以下に説明す
る。
【0122】このシステムでは、バッチジョブを構成す
るジョブステップを、複数のサイトのコンピュータで分
散して実行させ、かつ、それらのジョブステップが相互
に連携するように動作させ、なおかつ、全てのジョブス
テップを1つのサイトから統一的に管理することが可能
である。
【0123】まず、各ジョブステップは、実体601と
して実装される。より具体的には、実体601内のオブ
ザーバブル101(図6参照)が、ジョブステップ実行
機能を有する。図16の例では、実体601(#1)及
び601(#2)がそれぞれジョブステップである。
【0124】続いて、図16に示されるように、それぞ
れの実体601(#1)及び601(#2)にそれぞれ
対応する代替ビュー602(#1)及び602(#2)
が生成され、これらの実体601(#1)及び601
(#2)と代替ビュー602(#1)及び602(#
2)を含むエージェント1601が定義される。この結
果、これらの実体601(#1)及び601(#2)と
代替ビュー602(#1)及び602(#2)は、ネッ
トワーク内を移動可能となる。
【0125】実体601(#1)及び601(#2)と
代替ビュー602(#1)及び602(#2)は、ロー
カルサイトのネットワークアドレス情報1007(ルー
プバックアドレス)を伴って特には図示しないリポジト
リ1001に登録されることによって、そのリポジトリ
1001からマグ識別子1006を付与される。そし
て、実体601(#1)と代替ビュー602(#1)、
及び実体601(#2)と代替ビュー602(#2)
は、それぞれ接続1603(#1)及び1603(#
2)を確立している。これらの制御は全て、前述した実
体601と化身602との間の接続制御処理に基づいて
実行される。
【0126】また、代替ビュー602(#1)及び60
2(#2)は、それぞれ実体601(#1)及び601
(#2)である各ジョブステップの実行を制御するイン
タフェースのみを有し、これらのインタフェースは全
て、前述した代替ビュー602(#1)及び602(#
2)内の特には図示しない各ネットオブザーバブル40
2及び実体601(#1)及び601(#2)内の特に
は図示しない各オブザーバブル101に定義されるスロ
ット103を介して確立される。
【0127】次に、サイトAにおいて、エージェント1
601そのものに対する操作ビューである代替ビュー1
602が定義される。この代替ビュー1602は、エー
ジェント1601内の各代替ビュー602(#1)及び
602(#2)を介して、エージェント1601内の各
実体601(#1)及び601(#2)である各ジョブ
ステップを制御するインタフェースのみを有する。
【0128】この場合、代替ビュー1602内の特には
図示しないオブザーバ102は、代替ビュー1602内
の特には図示しないネットオブザーバブル402の各ス
ロット103から、エージェント1601内の特には図
示しないネットオブザーバ401を介して、エージェン
ト1601内の各代替ビュー602(#1)及び602
(#2)内の各スロット103にアクセスし、更にそれ
ら各スロット103からエージェント1601内の各実
体601(#1)及び601(#2)内のネットオブザ
ーバ401を介して、それら各実体601(#1)及び
601(#2)内のオブザーバブル101内の各スロッ
ト103にアクセスする。
【0129】エージェント1601とその代替ビュー1
602は、サイトAのネットワークアドレス情報100
7を伴って特には図示しないリポジトリ1001に登録
されることにより、そのリポジトリ1001からマグ識
別子1006を付与される。そして、エージェント16
01とその代替ビュー1602は、接続1604を確立
している。この制御は全て、前述した実体601と化身
602との間の接続制御処理に基づいて実行される。
【0130】図16に示されるようにサイトA内に生成
されたエージェント1601は、続いて、その内部に記
述されたプログラムコードに基づいて、サイトBに投入
される。
【0131】この結果、図17(a) に示されるように、
サイトAには、エージェント1601に対応する代替ビ
ュー1602のみが残り、エージェント1601はサイ
トBに移動する。
【0132】この移動に伴って、エージェント1601
によって、特には図示しないリポジトリ1001内のデ
ータベース1003(図10参照)上の上記エージェン
ト1601に対応するエントリに登録されているネット
ワークアドレス情報1007が、サイトAのものからサ
イトBのものへ更新される。そして、この更新に基づい
て、サイトA内の代替ビュー1602とサイトBに移動
したエージェント1601との間の再接続1701が確
立する。
【0133】続いて、図17(b) に示されるように、サ
イトBに移動したエージェント1601の内部に記述さ
れたプログラムコードに基づいて、そのエージェント1
601内の実体601(#1)がそのエージェント16
01から切り離され、その実体601(#1)であるジ
ョブステップの実行が開始される。なお、このジョブス
テップは、サイトA内の代替ビュー1602からの実行
開始命令によってその実行を開始するように構成されて
もよい。
【0134】この切離しに伴って、実体601(#1)
によって、特には図示しないリポジトリ1001内のデ
ータベース1003(図10参照)上の上記実体601
(#1)に対応するエントリに登録されているネットワ
ークアドレス情報1007が、ローカルサイトのもの
(ループバックアドレス)からサイトBのものへ更新さ
れる。そして、この更新に基づいて、エージェント16
01内の代替ビュー602(#1)と実体601(#
1)との間の再接続1702が確立する。
【0135】サイトB内のエージェント1601は、続
いて、その内部に記述されたプログラムコードに基づい
て、サイトCに投入される。この結果、図18(a) に示
されるように、サイトAには、エージェント1601に
対応する代替ビュー1602のみが残り、サイトBに
は、ジョブステップである実体601(#1)のみが残
り、エージェント1601はサイトCに移動する。
【0136】この移動に伴って、エージェント1601
によって、特には図示しないリポジトリ1001内のデ
ータベース1003(図10参照)上の上記エージェン
ト1601に対応するエントリに登録されているネット
ワークアドレス情報1007が、サイトBのものからサ
イトCのものへ更新される。そして、この更新に基づい
て、サイトA内の代替ビュー1602とサイトCに移動
したエージェント1601との間の再接続1801が確
立する。
【0137】また、上記移動に伴って、エージェント1
601によって、特には図示しないリポジトリ1001
内のデータベース1003(図10参照)上の上記エー
ジェント1601内の代替ビュー602(#1)に対応
するエントリに登録されているネットワークアドレス情
報1007が、ローカルサイトのもの(ループバックア
ドレス)からサイトCのものへ更新される。そして、こ
の更新に基づいて、サイトB内の実体601(#1)と
サイトCに移動したエージェント1601内の代替ビュ
ー1602(#1)との間の再接続1802が確立す
る。
【0138】続いて、図18(b) に示されるように、サ
イトCに移動したエージェント1601の内部に記述さ
れたプログラムコードに基づいて、そのエージェント1
601内の実体601(#2)がそのエージェント16
01から切り離され、その実体601(#2)であるジ
ョブステップの実行が開始される。なお、このジョブス
テップは、サイトA内の代替ビュー1602からの実行
開始命令によってその実行を開始するように構成されて
もよい。
【0139】この切離しに伴って、実体601(#2)
によって、特には図示しないリポジトリ1001内のデ
ータベース1003(図10参照)上の上記実体601
(#2)に対応するエントリに登録されているネットワ
ークアドレス情報1007が、ローカルサイトのもの
(ループバックアドレス)からサイトCのものへ更新さ
れる。そして、この更新に基づいて、エージェント16
01内の代替ビュー602(#2)と実体601(#
2)との間の再接続1803が確立する。
【0140】以上のようにして、サイトAで生成された
エージェント1601内の各実体601(#1)及び6
01(#2)は、それぞれサイトB及びサイトCで分散
実行可能な状態になる。
【0141】ここで、サイトA内の代替ビュー(操作ビ
ュー)1602は、接続1801によって、サイトC内
のエージェント1601にアクセスすることができ、更
に、そのエージェント1601内の代替ビュー602
(#1)及び602(#2)から各接続1802及び1
803を介してサイトB内の実体601(#1)及びサ
イトC内の実体601(#2)にアクセスすることがで
きる。従って、サイトA内の代替ビュー1602から、
各サイトに分散した実体601(#1)及び601(#
2)である各ジョブステップを、統一的に制御すること
ができる。
【0142】なお、接続1801、1802、又は18
03は、各ジョブステップの実行中に常時確立されてい
る必要はなく、必要に応じて確立されるように構成され
てもよい。この場合には、接続のつど、特には図示しな
いリポジトリ1001内のデータベース1003が参照
されることになる。
【0143】以上説明したように、本実施の形態による
エージェントを用いたオブジェクト間通信技術を応用す
ることにより、分散ジョブ実行システムを容易に実現す
ることができる。本実施の形態により実現されるワークフローシステムの
説明 最後に、前述した本発明の実施の形態を応用することに
より実現されるワークフローシステムについて、以下に
説明する。
【0144】このシステムでは、図19に示されるよう
に、文書データ(マルチメディアデータを含む)が実体
601として例えばサイトA内に作成される。その場合
の作成処理(文書データへのアクセス)は、上記実体6
01に対応してサイトA内に生成される化身602内の
オブザーバ102を用いて実行される(図19のステッ
プ1)。
【0145】次に、この化身602を含むエージェント
1901がサイトAにおいて生成され、そのエージェン
ト1601がサイトAからサイトBに移動する。この場
合、まず、エージェント1901によって実体601と
化身602との間の接続が切断され(図19のステップ
2)、その後、エージェント1901内に記述されたコ
ードに従って、そのエージェント1901がサイトAか
らサイトBに送信される(図19のステップ3)。
【0146】この送信に伴って、エージェント1901
によって、特には図示しないリポジトリ1001内のデ
ータベース1003(図10参照)上の化身602に対
応するエントリに登録されているネットワークアドレス
情報1007が、ローカルサイトのもの(ループバック
アドレス)からサイトBのものへ更新される。そして、
この更新に基づいて、エージェント1901内の化身6
02とサイトA内の実体601との間の再接続が確立す
る(図19のステップ4)。
【0147】この結果、サイトB内のオペレータは、エ
ージェント1901内の化身602内のオブザーバ10
2を用いて、サイトA内の実体601である文書データ
に対して、編集作業を実行することができる(図19の
ステップ5)。
【0148】このとき、サイトBにおいて、エージェン
ト1901全体に対する化身1902が生成され、それ
が別のサイトCに送信されることにより(図19のステ
ップ6)、サイトC内のオペレータは、サイトB内のオ
ペレータと協調して、サイトA内の実体601である文
書データに対して、作業を実行することができる(図1
9のステップ7)。
【0149】サイトBでの作業が終了した後、サイトB
内のエージェント1901は、更に別のサイトへ転送さ
れ、同様の作業が実行される。このようにして、本実施
の形態によるエージェントを用いたオブジェクト間通信
技術を応用することにより、ワークフローシステムを容
易に実現することができる。
【0150】上記ワークフローシステムは、実体601
である文書データ自身は、サイトAにとどまって他のサ
イトへは転送されないため、文書の改竄の防止等の保護
処置も容易に実現することができるという特徴も有す
る。他の実施の形態 以上説明した実施の形態においては、化身602又は実
体601の何れかがネットワーク内を移動した後におけ
る両者の再接続処理は、リポジトリ1001内のデータ
ベース1003に化身602又は実体601のネットワ
ークアドレス情報1007を照会しながら実現されてい
るが、本発明はこれに限られるものではなく、一方のマ
グ501(実体601又は化身602)が移動しないこ
とが保証されていれば、移動したマグ501(化身60
2又は実体601)が移動していないマグ501(実体
601又は化身602)に対して、自身のネットワーク
アドレス情報1007を直接通知するように構成されて
もよい。
【0151】なお、本発明は、上記各実施の形態に対応
する機能を実現するコンピュータプログラムを記憶した
フロッピィディスク、CD−ROMディスク、光ディス
ク、可搬型(リムーバブル)ハードディスク等の記録媒
体をも特許請求の範囲とする。
【0152】
【発明の効果】本発明の一構成によれば、オブジェクト
がネットワーク内を移動した場合に、そのオブジェクト
の識別情報とそのオブジェクトが存在するサイトのネッ
トワークアドレス情報とを対応付けて管理するリポジト
リに登録されているネットワークアドレス情報を変更
し、リポジトリに登録されているネットワークアドレス
情報に基づいて、移動したオジェクトに対応するオブジ
ェクト間通信経路を再確立することが可能となる。これ
により、移動前と移動後とで、オブジェクト間の接続の
整合性を維持することが可能となる。
【0153】本発明の他の構成によれば、第1のサイト
上に存在する第1のオブジェクトが、第2のオブジェク
トとの間でオブジェクト間通信経路を確立している状態
で第1のオブジェクトが第1のサイトとは別の第2のサ
イトに移動する場合に、第1のオブジェクトの移動の後
に、まず、第2のサイトと前記第2のオブジェクトが存
在する第3のサイトとの間のサイト間通信経路が確立さ
れ、更に第1のオブジェクトと第2のオブジェクトとの
間のオブジェクト間通信経路が再確立されることによ
り、移動前と移動後とで、オブジェクト間の接続の整合
性を維持することが可能となる。また、随時リポジトリ
を更新・参照するような構成により、より確実なオブジ
ェクト間の接続の整合性の維持が可能となる 本発明の更に他の構成によれば、ネットワーク内の1つ
のコンピュータ上の第1ノマグと、それを参照するマグ
であってネットワーク内の他のコンピュータに移動した
第2のマグは、リポジトリ内のマグ識別子とネットワー
クアドレス情報とからなるデータ組を更新し及び照会す
ることにより、移動前と移動後とで、それらの接続の整
合性を維持することが可能となる。この場合に、リポジ
トリ内のデータ組は、第1及び第2のマグの常に最新の
ネットワークアドレス情報を保持することになるため、
移動した第1又は第2のマグがネットワーク内で行方不
明になってしまうという事態を回避することが可能とな
る。
【0154】本発明によるオブジェクト間通信技術を用
いた分散ジョブ実行技術によれば、ネットワーク内の任
意のコンピュータへのジョブデータの分散投入と、それ
らの分散して実行されるジョブデータの統一的な連携制
御を、容易に実現することが可能となる。
【0155】本発明によるオブジェクト間通信技術を用
いたワークフロー実行技術によれば、ネットワーク内の
複数のコンピュータ間でのワークフローの制御を、容易
に実現することが可能となる。
【0156】また、このワークフロー実行技術は、第1
のマグに含まれる業務処理データ自身は、特定のコンピ
ュータにとどまって他のコンピュータへは転送されない
ようにし、その業務処理データに対するインタフェース
を含む第2のマグのみをネットワーク内で移動可能なよ
うにすることができるため、例えば文書の改竄の防止等
の保護処置も容易に実現することができるという特徴も
有する。
【0157】なお、本発明において、第1又は第2のマ
グのうちの一方がネットワーク内を移動しないことが保
証されていれば、移動した第2又は第1のマグが移動し
ていない第1又は第2のマグに対して、自身のネットワ
ークアドレス情報を直接通知し、それに基づいて通信接
続が再確立されるように構成することもできる。
【0158】また、本発明では、第2のマグ内のオブザ
ーバオブジェクトから第2のマグ内のネットオブザーバ
ブルオブジェクトを介した第1のマグ内のオブザーバブ
ルオブジェクトへのアクセスは、オブザーバオブジェク
ト及びネットワークオブザーバオブジェクトに定義され
るスロットのスロット名に基づいて実行するように構成
することができるため、各オブジェクト間の関係は、そ
れらを定義するクラスのソースコード上に明記される必
要はなく、スロット名(スロットディスクリプタ)の指
定を介して実行時に動的に決定することができる。これ
により、柔軟かつ効率的なオブジェクト間通信システム
の開発及び運用が可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるオブザーバとオブ
ザーバブルの説明図である。
【図2】スロットの構成図である。
【図3】オブザーバブルとオブザーバ間のプロトコルに
関連するメソッドの説明図である。
【図4】本発明の実施の形態のネットワーク対応の説明
図である。
【図5】マグの説明図である。
【図6】実体と化身の説明図である。
【図7】ビューポイントの説明図である。
【図8】エージェントの説明図(その1)である。
【図9】エージェントの説明図(その1)である。
【図10】リポジトリの説明図である。
【図11】エージェントの移動処理の説明図(その1)
である。
【図12】エージェントの移動処理の説明図(その2)
である。
【図13】切断処理の説明図である。
【図14】実体をトリガとする再接続処理の説明図であ
る。
【図15】化身をトリガとする再接続処理の説明図であ
る。
【図16】本実施の形態により実現される分散ジョブ実
行システムの説明図(その1)である。
【図17】本実施の形態により実現される分散ジョブ実
行システムの説明図(その2)である。
【図18】本実施の形態により実現される分散ジョブ実
行システムの説明図(その3)である。
【図19】本実施の形態により実現されるワークフロー
システムの説明図である。
【符号の説明】
101 オブザーバブル 102 オブザーバ 103 スロット 401 ネットオブザーバ 402 ネットオブザーバブル 501 マグ 601 実体 602 化身 701 ビューポイント 801、901、1601、1901 エージェン
ト 1001 リポジトリ 1002 マグ識別子割振り部 1003 データベース 1004 アドレス更新部 1005 アドレス照会部 1006 マグ識別子 1007 ネットワークアドレス情報 1301 ネットワークモデル部 1302 ネットワーク制御部 1303、1304 受信デーモン 1602 代替ビュー(操作ビュー) 1902 エージェント1901の化身

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク接続された複数のサイト上
    に存在するオブジェクト間で通信を行うオブジェクト間
    通信システムであって、 前記オブジェクトの識別情報と該オブジェクトが存在す
    るサイトのネットワークアドレス情報とを対応付けて管
    理するリポジトリと、 前記オブジェクトの移動に伴って、前記リポジトリに登
    録されている前記ネットワークアドレス情報を変更する
    リポジトリ更新手段と、 前記リポジトリに登録されている前記ネットワークアド
    レス情報に基づいて移動した前記オジェクトに対応する
    オブジェクト間通信経路を再確立するオブジェクト間通
    信経路再確立手段と、 を含むことを特徴とするオブジェクト間通信システム。
  2. 【請求項2】 ネットワーク接続された複数のサイト上
    に存在するオブジェクト間で通信を行うオブジェクト間
    通信システムであって、 第1のサイト上に存在する第1のオブジェクトが、第2
    のオブジェクトとの間でオブジェクト間通信経路を確立
    している状態で前記第1のオブジェクトが前記第1のサ
    イトとは別の第2のサイトに移動する場合に、前記第1
    のオブジェクトの移動の後に、前記第2のサイトと前記
    第2のオブジェクトが存在する第3のサイトとの間のサ
    イト間通信経路を確立するサイト間通信経路確立手段
    と、 この確立されたサイト間通信経路を利用して、前記第1
    のオブジェクトと前記第2のオブジェクトとの間のオブ
    ジェクト間通信経路を再確立するオブジェクト間通信経
    路再確立手段を含む、 ことを特徴とするオブジェクト間通信システム。
  3. 【請求項3】 請求項2に記載のオブジェクト間通信シ
    ステムであって、 前記オブジェクトの識別情報と該オブジェクトが存在す
    るサイトのネットワークアドレス情報とを対応付けて管
    理するリポジトリと、 前記オブジェクトの移動に伴って、前記リポジトリに登
    録されている前記ネットワークアドレス情報を変更する
    リポジトリ更新手段と、 を更に含み、 前記サイト間通信経路再確立手段は、前記リポジトリに
    登録されている前記ネットワークアドレス情報に基づい
    て、前記サイト間通信経路を再確立し、 前記オブジェクト間通信経路再確立手段は、前記リポジ
    トリに登録されている前記ネットワークアドレス情報に
    基づいて、前記オブジェクト間通信経路を再確立する、 ことを特徴とするオブジェクト間通信システム。
  4. 【請求項4】 ネットワーク接続された複数のサイト上
    に存在するオブジェクト間で通信を行うオブジェクト間
    通信方法であって、 前記オブジェクトを移動し、 前記オブジェクトの識別情報と該オブジェクトが存在す
    るサイトのネットワークアドレス情報とを対応付けて管
    理するリポジトリに登録されている前記ネットワークア
    ドレス情報を変更し、 前記リポジトリに登録されている前記ネットワークアド
    レス情報に基づいて移動した前記オジェクトに対応する
    オブジェクト間通信経路を再確立する、 過程を含むことを特徴とするオブジェクト間通信方法。
  5. 【請求項5】 ネットワーク内を移動可能な複数のオブ
    ジェクト間で前記ネットワークを介して通信を行うオブ
    ジェクト間の通信方法であって、 データに直接にアクセスする機能を有するアクセス手続
    きを含むオブジェクトであるオブザーバブルオブジェク
    トと、前記ネットワークとの間で、前記オブザーバブル
    オブジェクト内のアクセス手続きを介して前記データに
    対するアクセス処理を中継する機能とを含むオブジェク
    ト組である第1のマグを、前記ネットワーク内の第1の
    コンピュータ内に生成し、 該第1のマグに含まれる前記オブザーバブルオブジェク
    トが有する前記データに前記ネットワークを介して間接
    的にアクセスすることのできるアクセス手続きを有する
    ネットオブザーバブルオブジェクトと、該アクセス手続
    きを介して前記第1のマグに含まれる前記オブザーバブ
    ルオブジェクトが有する前記データに前記ネットワーク
    を介してアクセスするオブザーバオブジェクトとを含む
    オブジェクト組である第2のマグを、前記ネットワーク
    内のコンピュータであって前記第1のコンピュータとは
    別又は同一である第2のコンピュータ内に生成し、 前記ネットワーク内に、前記第1及び第2のマグをそれ
    ぞれ識別するための各マグ識別子と、前記ネットワーク
    内で前記第1及び第2のマグが存在するサイトのアドレ
    スを示すネットワークアドレス情報とを含むデータ組を
    保持するサーバコンピュータであるリポジトリを構成
    し、 前記第1又は第2のマグが前記ネットワーク内を移動す
    る場合に、該移動する第1又は第2のマグが、それと前
    記ネットワークを介して通信している前記第2又は第1
    のマグとの接続を切断し、その後に前記ネットワーク内
    を移動し、 前記ネットワーク内を移動した前記第1又は第2のマグ
    が、それに対応するマグ識別子を指定することにより、
    前記リポジトリが保持している該指定したマグ識別子を
    含む前記データ組内のネットワークアドレス情報を、前
    記ネットワーク内を移動した前記第1又は第2のマグが
    新たに存在する第3のコンピュータを示すものに更新
    し、 前記ネットワーク内を移動した前記第1又は第2のマグ
    が、それと前記ネットワークを介して通信していた前記
    第2又は第1のマグにトリガをかけ、該トリガに基づい
    て、前記ネットワーク内を移動した前記第1又は第2の
    マグと、それと前記ネットワークを介して通信していた
    前記第2又は第1のマグとが、それらに対応する前記リ
    ポジトリが保持している前記データ組を随時参照するこ
    とにより、相互の通信接続を再確立する、 過程を含むことを特徴とするネットワーク移動可能なオ
    ブジェクト間の通信方法。
  6. 【請求項6】 請求項5に記載の通信方法であって、 前記第1のマグ内の前記オブザーバブルオブジェクト
    に、スロット名と、前記データと、該データに対してア
    クセスを行うアクセス手続きコードとが格納された1組
    以上のスロットデータを定義し、 前記第1のマグ内に、前記ネットワークから前記オブザ
    ーバブルオブジェクトに対するアクセス情報を受信する
    第1の受信手続きコードと、該アクセス情報に基づいて
    前記オブザーバブルオブジェクトに定義されている何れ
    かの前記スロットデータをそれに格納される前記スロッ
    ト名を指定することによって特定する第1のメソッドコ
    ードと、前記アクセス情報に基づいて前記第1のメソッ
    ドコードによって特定された前記スロットデータに格納
    されるアクセス手続きコードを指定して実行させること
    により該スロットデータに格納される前記データにアク
    セスするための第2のメソッドコードと、該アクセス結
    果を前記受信されたアクセス情報の送信元に向けて前記
    ネットワークに送信する第1の送信手続きコードとが少
    なくとも定義されたネットオブザーバオブジェクトの全
    部又は一部の機能を含ませ、 前記第2のマグ内の前記ネットオブザーバブルオブジェ
    クトに、前記第1のマグ内の前記オブザーバブルオブジ
    ェクトに定義されている前記スロットデータである第1
    のスロットデータに対応するスロットデータであって、
    該第1のスロットデータに格納されているスロット名と
    同じスロット名と、前記ネットオブザーバオブジェクト
    に対して前記第1のスロットデータに格納されている前
    記アクセス手続きコードにアクセスさせるためのアクセ
    ス情報を、該ネットオブザーバオブジェクトに向けて前
    記ネットワークに送信するアクセス手続きコードとが少
    なくとも格納された1組以上のスロットデータを定義
    し、 前記第2のマグ内の前記オブザーバオブジェクトに、前
    記ネットオブザーバブルオブジェクトと、前記ネットオ
    ブザーバブルオブジェクトに定義されている何れかの前
    記スロットデータをそれに格納される前記スロット名を
    指定することによって特定する第1のメソッドコード
    と、該第1のメソッドコードによって特定された前記ス
    ロットデータに格納される前記アクセス手続きコードを
    指定して実行させるための第2のメソッドコードを定義
    する、 過程を含むことを特徴とするネットワーク移動可能なオ
    ブジェクト間の通信方法。
  7. 【請求項7】 請求項5に記載の通信方法を用いた分散
    ジョブ実行方法であって、 前記データがジョブデータである前記第1のマグと、そ
    れと通信する前記第2のマグとからなるマグ組を1組以
    上含むエージェントを、前記ネットワーク内の第4のコ
    ンピュータ内に生成し、 前記エージェント内の前記第2のマグを介してそれが接
    続している前記第1のマグ内の前記オブザーバブルオブ
    ジェクトが有する前記ジョブデータに前記ネットワーク
    を介して間接的にアクセスすることのできるアクセス手
    続きを有する前記ネットオブザーバブルオブジェクト
    と、該アクセス手続きを実行する前記オブザーバオブジ
    ェクトとを含む第3のマグを、前記ネットワーク内のコ
    ンピュータであって前記第4のコンピュータと同一の又
    は別の第5のコンピュータ内に生成し、 前記ネットワーク内に、前記第1、第2、及び第3のマ
    グ及び前記エージェントをそれぞれ識別するための各マ
    グ識別子と、前記ネットワーク内で前記第1、第2、及
    び第3のマグ及び前記エージェントが存在するサイトの
    アドレスを示すネットワークアドレス情報とを含むデー
    タ組を保持するサーバコンピュータである前記リポジト
    リを構成し、 前記エージェントが前記ネットワーク内を移動する場合
    に、該移動するエージェントが、それと前記ネットワー
    クを介して通信している前記第3のマグとの接続を切断
    し、その後に前記ネットワーク内を移動し、 前記ネットワーク内を移動した前記エージェントが、そ
    れに対応するマグ識別子を指定することにより、前記リ
    ポジトリが保持している該指定したマグ識別子を含む前
    記データ組内のネットワークアドレス情報を、前記ネッ
    トワーク内を移動したエージェントが新たに存在するコ
    ンピュータを示すものに更新し、 前記ネットワーク内を移動した前記エージェントが前記
    第3のマグにトリガをかけ、該トリガに基づいて、前記
    エージェントと前記第3のマグとが、それらに対応する
    前記リポジトリが保持している前記データ組を随時参照
    することにより、相互の通信接続を再確立し、 前記エージェントが、それに含まれる1つの前記マグ組
    において、該マグ組内の前記第1のマグを前記エージェ
    ントから切り離し、該切り離した第1のマグを前記エー
    ジェントが現在存在するコンピュータで実行させる場合
    に、前記エージェントが、前記切り離す第1のマグと前
    記ネットワークを介して通信している前記マグ組内の第
    2のマグとの接続を切断し、その後に該第1のマグを切
    り離し、 該切り離された第1のマグが、それに対応するマグ識別
    子を指定することにより、前記リポジトリが保持してい
    る該指定したマグ識別子を含む前記データ組内のネット
    ワークアドレス情報を、前記切り離された第1のマグが
    存在するコンピュータを示すものに更新し、 前記切り離された第1のマグが、それと前記ネットワー
    クを介して通信していた前記第2のマグにトリガをか
    け、該トリガに基づいて、該第1及び第2のマグが、そ
    れらに対応する前記リポジトリが保持している前記デー
    タ組を随時参照することにより、相互の通信接続を再確
    立し、 前記エージェントは、該エージェントと前記第3のマグ
    との通信接続、及び該エージェントが含む前記マグ組内
    の前記第1のマグと前記第2のマグとの通信接続の再確
    立処理と、該エージェントが含む前記マグ組内の前記第
    1のマグの切離し処理を順次実行しながら、前記ネット
    ワーク内を順次移動し、 前記第3のマグは、前記エージェントに随時アクセス
    し、更に、該エージェントが含む前記各データ組内の前
    記各第2のマグを介して、該各第2のマグに対応して前
    記ネットワーク内の何れかのコンピュータにおいて実行
    される前記各第1のマグ内の前記各オブザーバブルオブ
    ジェクトが有する前記各ジョブデータに前記ネットワー
    クを介してアクセスする、 過程を含むことを特徴とする分散ジョブ実行方法。
  8. 【請求項8】 請求項5に記載の通信方法を用いたワー
    クフロー実行方法であって、 前記データが業務処理データである前記第1のマグを、
    前記ネットワーク内の第1のコンピュータ内に生成し、 該第1のマグと通信する前記第2のマグを、前記ネット
    ワーク内のコンピュータであって前記第1のコンピュー
    タと同一の又は別の前記第2のコンピュータ内に生成
    し、 該第2のマグは、前記第1のマグとの通信接続の再確立
    処理を順次実行しながら、前記ネットワーク内を順次移
    動し、 前記第2のマグが移動した先の各コンピュータのオペレ
    ータは、前記第1のマグ内の前記オブザーバブルオブジ
    ェクトが有する前記業務処理データに前記ネットワーク
    を介して順次アクセスする、 過程を含むことを特徴とするワークフロー実行方法。
  9. 【請求項9】 請求項8に記載のワークフロー実行方法
    であって、 前記第2のマグを介してそれが接続している前記第1の
    マグ内の前記オブザーバブルオブジェクトが有する前記
    業務処理データに前記ネットワークを介して間接的にア
    クセスすることのできるアクセス手続きを有する前記ネ
    ットオブザーバブルオブジェクトと、該アクセス手続き
    を実行する前記オブザーバオブジェクトとを含む第4の
    マグを、前記ネットワーク内の任意のコンピュータ内に
    生成し、 前記第4のマグが存在するコンピュータのオペレータ
    は、該第4のマグが接続する前記第2のマグが存在する
    コンピュータのオペレータと協調して、前記第1のマグ
    内の前記オブザーバブルオブジェクトが有する前記業務
    処理データに前記ネットワークを介してアクセスする、 過程を含むことを特徴とするワークフロー実行方法。
  10. 【請求項10】 ネットワーク内を移動可能な複数のオ
    ブジェクト間で前記ネットワークを介して通信を行うオ
    ブジェクト間の通信方法であって、 データに直接にアクセスする機能を有するアクセス手続
    きを含むオブジェクトであるオブザーバブルオブジェク
    トと、前記ネットワークとの間で、前記オブザーバブル
    オブジェクト内のアクセス手続きを介して前記データに
    対するアクセス処理を中継する機能とを含むオブジェク
    ト組である第1のマグを、前記ネットワーク内の第1の
    コンピュータ内に生成し、 該第1のマグに含まれる前記オブザーバブルオブジェク
    トが有する前記データに前記ネットワークを介して間接
    的にアクセスすることのできるアクセス手続きを有する
    ネットオブザーバブルオブジェクトと、該アクセス手続
    きを介して前記第1のマグに含まれる前記オブザーバブ
    ルオブジェクトが有する前記データに前記ネットワーク
    を介してアクセスするオブザーバオブジェクトとを含む
    オブジェクト組である第2のマグを、前記ネットワーク
    内のコンピュータであって前記第1のコンピュータとは
    別又は同一である第2のコンピュータ内に生成し、 前記第1又は第2のマグが前記ネットワーク内を移動す
    る場合に、該移動する第1又は第2のマグが、それと前
    記ネットワークを介して通信している前記第2又は第1
    のマグとの接続を切断し、その後に前記ネットワーク内
    を移動し、 前記ネットワーク内を移動した前記第1又は第2のマグ
    が、それと前記ネットワークを介して通信していた前記
    第2又は第1のマグに、前記ネットワーク内を移動した
    前記第1又は第2のマグが新たに存在する第3のコンピ
    ュータのネットワークアドレス情報を通知することによ
    り、前記ネットワーク内を移動した前記第1又は第2の
    マグと、それと前記ネットワークを介して通信していた
    前記第2又は第1のマグとが、相互の通信接続を再確立
    する、 過程を含むことを特徴とするネットワーク移動可能なオ
    ブジェクト間の通信方法。
  11. 【請求項11】 請求項5乃至10の何れか1項に記載
    のオブジェクト間通信方法、分散ジョブ実行方法、又は
    ワークフロー実行方法を利用したオブジェクトをそれぞ
    れ実行するオブジェクト間通信システム。
  12. 【請求項12】 ネットワーク接続された複数のサイト
    上に存在するオブジェクト間で通信を行うオブジェクト
    間通信プログラムを格納したコンピュータ読み取り可能
    な記憶媒体であって、 前記オブジェクトの移動に伴って、前記オブジェクトの
    識別情報と該オブジェクトが存在するサイトのネットワ
    ークアドレス情報とを対応付けて管理するリポジトリに
    登録されている前記ネットワークアドレス情報を変更す
    るリポジトリ更新機能と、 前記リポジトリに登録されている前記ネットワークアド
    レス情報に基づいて移動した前記オジェクトに対応する
    オブジェクト間通信経路を再確立するオブジェクト間通
    信経路再確立機能と、 を含むオブジェクト間通信プログラムを格納したコンピ
    ュータ読み取り可能な記憶媒体。
JP12900197A 1997-05-19 1997-05-19 ネットワーク移動可能なオブジェクト間の通信方法及び通信システム Pending JPH10320367A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12900197A JPH10320367A (ja) 1997-05-19 1997-05-19 ネットワーク移動可能なオブジェクト間の通信方法及び通信システム
US09/041,761 US6308226B1 (en) 1997-05-19 1998-03-13 Communication method and system for objects movable in network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12900197A JPH10320367A (ja) 1997-05-19 1997-05-19 ネットワーク移動可能なオブジェクト間の通信方法及び通信システム

Publications (1)

Publication Number Publication Date
JPH10320367A true JPH10320367A (ja) 1998-12-04

Family

ID=14998699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12900197A Pending JPH10320367A (ja) 1997-05-19 1997-05-19 ネットワーク移動可能なオブジェクト間の通信方法及び通信システム

Country Status (2)

Country Link
US (1) US6308226B1 (ja)
JP (1) JPH10320367A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019104A1 (en) * 2000-08-28 2002-03-07 Sony Corporation Communication device and communication method, network system, and robot apparatus

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6597700B2 (en) * 1999-06-30 2003-07-22 Nortel Networks Limited System, device, and method for address management in a distributed communication environment
US6981034B2 (en) 1999-06-30 2005-12-27 Nortel Networks Limited Decentralized management architecture for a modular communication system
US6888802B1 (en) * 1999-06-30 2005-05-03 Nortel Networks Limited System, device, and method for address reporting in a distributed communication environment
US7058730B2 (en) * 2000-05-05 2006-06-06 Fujitsu Limited Unique address space and method for a transport network
US6654767B2 (en) 2000-12-29 2003-11-25 General Electric Company Methods and systems for managing invention disclosures
US6978442B2 (en) * 2001-05-03 2005-12-20 International Business Machines Corporation Auditing data using observable and observer objects

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5551035A (en) * 1989-06-30 1996-08-27 Lucent Technologies Inc. Method and apparatus for inter-object communication in an object-oriented program controlled system
CA2041992A1 (en) * 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
CA2097540C (en) * 1993-06-01 1998-05-12 William G. O'farrell Accessing remote data objects in a distributed memory environment
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
EP0733972B1 (en) * 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
JP3390312B2 (ja) * 1996-10-31 2003-03-24 富士通株式会社 オブジェクト間通信方法及びオブジェクト間通信システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019104A1 (en) * 2000-08-28 2002-03-07 Sony Corporation Communication device and communication method, network system, and robot apparatus
US7388879B2 (en) 2000-08-28 2008-06-17 Sony Corporation Communication device and communication method network system and robot apparatus

Also Published As

Publication number Publication date
US6308226B1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
US5842043A (en) System for data access management of a network of dedicated processing, data, and interface machines combination of which performing functions of a general-purpose computer
JP3439337B2 (ja) ネットワーク管理システム
CN105283838B (zh) 云计算环境中的分布式锁管理
US7587471B2 (en) System and method for virtualizing network storages into a single file system view
US5212792A (en) Method and apparatus for controlling execution of tools in a computer-aided software engineering system
US6349342B1 (en) Methods and apparatus for managing computer processes
JPH11232226A (ja) 協同作業支援システム及び記録媒体
JP2005509979A (ja) 非同期型同期のシステムおよび方法
JPH07271735A (ja) ネットワーク上でオブジェクトのリンク及び埋込みを行う方法
JP2002505461A (ja) 事象ベース分散システムにおけるトランスポート処理方法及び装置
JP2009199528A (ja) 複数のサービスステップを含むサービスプロセスを管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
CN113672576A (zh) 文件共享方法及终端设备
JP3307329B2 (ja) ネットワーク構成管理対象アクセスシステム及び方法
CN102662773B (zh) 多进程间结构化文档通信系统
US7590618B2 (en) System and method for providing location profile data for network nodes
JP2009151560A (ja) リソースの管理方法、情報処理システム、情報処理装置、及びプログラム
EP4137957A1 (en) File sharing method and terminal device
US20020016866A1 (en) Methods and apparatus for managing computer processes
JPH10320367A (ja) ネットワーク移動可能なオブジェクト間の通信方法及び通信システム
KR100501856B1 (ko) 통신 제어 장치 및 방법
JP3611610B2 (ja) データ独立型コンピュータシステムにおける機器接続定義の自動生成方式
JP3390312B2 (ja) オブジェクト間通信方法及びオブジェクト間通信システム
CN115225482A (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
JP2009251756A (ja) クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム
JP2002505474A (ja) ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070522