JP2002101120A - 通信方法および情報処理装置 - Google Patents
通信方法および情報処理装置Info
- Publication number
- JP2002101120A JP2002101120A JP2000286066A JP2000286066A JP2002101120A JP 2002101120 A JP2002101120 A JP 2002101120A JP 2000286066 A JP2000286066 A JP 2000286066A JP 2000286066 A JP2000286066 A JP 2000286066A JP 2002101120 A JP2002101120 A JP 2002101120A
- Authority
- JP
- Japan
- Prior art keywords
- network address
- file
- client
- change
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5076—Update or notification mechanisms, e.g. DynDNS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Stored Programmes (AREA)
Abstract
ブジェクト指向言語で記述されたプログラムを実行する
実行環境を少なくとも1つ有する端末のネットワークア
ドレスが、例えば上記プログラム実行中に不意に変更さ
れても、そのネットワークアドレスの変更を上記実行環
境上に反映して、後に、再び他の端末との通信を可能に
する通信方法および情報処理装置を提供する。 【解決手段】プラットフォーム独立の機械語で実行され
るオブジェクト指向言語で記述されたプログラムを実行
する実行環境を少なくとも1つ有する複数の端末があ
り、これらのうちの特定の端末が、自装置のネットワー
クアドレスの変更を検知したとき、他の端末が前記特定
の端末へのアクセスを可能にするため、変更後の新たな
ネットワークアドレスを前記他の端末が参照可能なよう
に提供する。
Description
イクロシステムズ登録商標)実行環境による分散情報処
理システムに関する.
ム実行環境Java(米サンマイクロシステムズ社登録
商標、文献 Ken Arnold,James Go
sling,”The Java Programmi
ng Language,Second Editio
n,”参照)の発展により、多種多様な情報機器をJa
vaにより連携させる取り組みが盛んに行われている。
る場合、通信手段として遠隔メソッド呼び出し(Rem
ote Method Invocation 以下R
MIと呼ぶ)という通信技術を利用するのが一般的であ
る(文献 Troy Bryan Downing、”
RMI:Developing Distribute
d Java Applications with
Remote Method Invocation
and Serialization,”IDGBoo
ks WorldWide,Inc.1998参照)。
ソッド呼び出し機構を通信用に拡張したものであり、複
雑な通信処理を隠蔽した、簡単でかつ強力な通信機構で
ある。
びRMIは、実行される計算機(ホスト)のIPアドレ
ス(以下、ネットワークアドレスとも呼ぶ)の変更に対
応できないという問題がある。具体的には、以下の2点
がある。
に接続する際、リモートリファレンス(リモート参照)
と呼ばれる情報を利用して接続する。このリモート参照
には、サーバプログラムが実行されている計算機のネッ
トワークアドレス(IPアドレス)とポート番号などの情
報が含まれている。この情報(リモートリ参照)は、例え
ば、計算機で電源が投入されて(起動されて)、サービ
スを公開する時にサーバプログラムが作成するが、作成
する時のネットワークアドレスがリモート参照に埋め込
まれてしまい、その後のネットワークアドレスの変更に
対応して更新するメカニズムを持たない。
クアドレス(以下、簡単にネットワークとも呼ぶ)が変
更された後に、サーバプログラムが配布する(ディレク
トリサービスプログラムに登録する)リモート参照に
は、移動前のネットワークアドレスが埋め込まれてい
る。このリモート参照を受け取ったクライアントプログ
ラムは、移動前のネットワークアドレスに対してコネク
ションを張ろうと試みてしまい、新しいネットワークア
ドレスを持ったサーバとのコネクションが確立できない
という問題点があった。
でJavaオブジェクトを送受信する。受信側のJav
aプログラムは、受け取ったJavaオブジェクトに対
応するクラスファイルを必要とする。このクラスプァイ
ルを既に持っている場合には、それを利用して受信した
Javaオブジェクトの処理を行う。しかし、このクラ
スを持っていない場合には、Javaオブジェクトに付
与されているクラスファイルの供給元の情報を参照し、
そこからダウンロードを行い、その後にJavaオブジ
ェクトの処理を行う。Javaオブジェクトに付与され
たクラスファイルの供給元情報はコードベースと呼ば
れ、Uniform ResourceLocator
(URL)形式で指定する。
と同様に設定は静的であり、ネットワークアドレスの変
更に対応して更新するメカニズムを持たない。このた
め、ネットワーク移動を行う計算機の様に、動的にネッ
トワークアドレスが変更される計算機がクラスファイル
供給元となる場合に、コードベースの更新が行われず、
受信側のプログラムが正常に動作できないという問題点
があった。
ラットフォーム独立の機械語で実行されるオブジェクト
指向言語で記述されたプログラムを実行する実行環境を
少なくとも1つ有する端末のIPアドレスが、例えば上
記プログラム実行中に不意に変更されても、そのIPア
ドレスの変更を上記実行環境上に反映して、後に、再び
他の端末との通信を可能にする通信方法および情報処理
装置を提供することを目的とする。
1つ有する端末のIPアドレスの変更に伴い、RMIに
て定義されているリモート参照中のIPアドレス、コー
ドベースも容易に変更でき、IPアドレス変更後もJa
vaプログラムを用いた端末間の通信を可能にする通信
方法およびそれを用いた情報処理装置を提供することを
目的とする。
ーム独立の機械語で実行されるオブジェクト指向言語で
記述されたプログラムを実行する実行環境(例えばJa
va仮想マシン)を少なくとも1つ有する複数の端末が
あり、これらのうちの特定の端末(例えばサーバプログ
ラムが実行される端末)が、自装置のネットワークアド
レス(例えばIPアドレス)の変更を検知したとき、他
の端末(例えば、クライアントプログラムが実行される
端末)が前記特定の端末へのアクセスを可能にするた
め、変更後の新たなネットワークアドレスを前記他の端
末が参照可能なように提供し(例えば、リモート参照中
のネットワークアドレスを更新して、ディレクトリサー
ビスプログラムへ再度登録し直す)、また、前記特定の
端末が、自装置のネットワークアドレスの変更を検知し
たとき、前記特定の端末に記憶されているファイルであ
って、前記特定の端末が前記他の端末に提供すべきファ
イル(例えば、スタブファイルやその他のクラスファイ
ル)の所在を示す表記データ(コードベース)を更新
し、この更新された表記データに基づき前記ファイルを
前記他の端末が参照可能なように提供する(例えば、ス
タブファイル中のコードベースを更新したり、必要に応
じて、相手端末へ送付する)することにより、プラット
フォーム独立の機械語で実行されるオブジェクト指向言
語で記述されたプログラムを実行する実行環境(例え
ば、Java仮想マシン)を少なくとも1つ有する端末
のネットワークアドレスの変更に伴い、例えば、クライ
アントに提供されるリモート参照中のIPアドレス、コ
ードベースも容易に変更でき、端末のIPアドレスが不
意に変更された場合も(例えば、Javaプログラムを
用いた)端末間の通信を可能にする。
行されるオブジェクト指向言語で記述されたサーバプロ
グラムを実行する実行環境(例えば、Java仮想マシ
ン)を少なくとも1つ有する端末が、自装置のネットワ
ークアドレスの変更を検知する検知手段と、この検知手
段でネットワークアドレスの変更を検知したとき、前記
クライアントが自装置へのアクセスを可能にするため、
少なくとも変更後の新たなネットワークアドレスを前記
クライアントが参照可能なように提供する提供手段とを
具備し、好ましくは、前記クライアントが前記サービス
の提供を受けるために必要な手続きを記述したファイル
を記憶する記憶手段と、前記検知手段でネットワークア
ドレスの変更を検知したとき、前記ファイルの所在を示
した表記データ(例えば、コードベース)を更新する更
新手段と、更新された表記データに基づき前記ファイル
を前記クライアントが参照可能なように提供する提供手
段とを具備したことにより、プラットフォーム独立の機
械語で実行されるオブジェクト指向言語で記述されたサ
ーバプログラムを実行する実行環境(例えば、Java
仮想マシン)を少なくとも1つ有する端末のネットワー
クアドレスの変更に伴い、クライアントに提供するため
にディレクトリサービスプログラムに登録するサーバプ
ログラムへのリモート参照中のIPアドレス、コードベ
ースも容易に変更でき、サーバプログラム実行中にその
端末のIPアドレスが不意に変更されても、後にクライ
アントからのアクセス(例えば、遠隔メソッド呼び出
し)を可能にし、(例えば、Javaプログラムを用い
た)端末間の通信を可能にする。
で実行されるオブジェクト指向言語で記述されたプログ
ラムを実行する実行環境を少なくとも1つ有するコンピ
ュータを、クライアントからの要求に応じて所定のサー
ビスを提供するための前記実行環境上のサーバとして機
能させるためのプログラム製品であって、自装置のネッ
トワークアドレスの変更を検知する機能と、前記ネット
ワークアドレスの変更を検知したとき、前記クライアン
トが自装置へのアクセスを可能にするため、少なくとも
変更後の新たなネットワークアドレスを前記クライアン
トが参照可能なように提供する機能と、前記ネットワー
クアドレスの変更を検知したとき、前記クライアントが
前記サービスの提供を受けるために必要な手続きを記述
したファイルの記憶場所を示した表記データを更新する
機能と、更新された表記データを前記クライアントが参
照可能なように提供する機能と、をコンピュータに実現
させる。本発明によれば、プラットフォーム独立の機械
語で実行されるオブジェクト指向言語で記述されたプロ
グラムを実行する実行環境(例えば、Java仮想マシ
ン)を少なくとも1つ有するコンピュータのネットワー
クアドレス(例えば、IPアドレス)の変更に伴い、ク
ライアントに提供されるリモート参照中のIPアドレ
ス、コードベースも容易に変更でき、移動先においても
(例えば、Javaプログラムを用いた)コンピュータ
間の通信を可能にする。
処理システムの構成例を示す図で、プラットフォーム独
立の機械語で実行されるオブジェクト指向言語として、
Javaで記述されたプログラムを実行する実行環境
(Java仮想マシン)を少なくとも1つ有する複数
(例えば、ここでは3つの)計算機101〜103が、
例えばインターネット等のネットワークを介して接続さ
れ、JavaのRMIを用いてJavaプログラム間で
通信を行うことにより、分散情報処理を実現するもので
ある。
実現するためには、サービスを提供するサーバプログラ
ムと、サービスを利用するクライアントプログラム、お
よびサーバとクライアントを仲介するディレクトリサー
ビスプログラムが必要である。
アントプログラム、ディレクトリサービスプログラム
は、それぞれ、異なる計算機(計算機102、計算機1
03、計算機101)上のJava仮想マシン(Vir
tual Machine)S、C、Dで実行されてい
るプログラムである(同じ計算機上の異なるJava仮
想マシンであっても一般性を失わない)。
イアントプログラムがサーバプログラムを発見するため
の手段を提供するプログラムで、クライアントプログラ
ムから要求されたサービス名やサービス属性などをキー
として、サーバプログラムを検索する機能を有する。例
えば、Javaの開発環境に含まれるrmiregis
tryというプログラムや、Sun Microsys
tems社が提唱するJini(文献 K.Arnol
d,B.O’Sullivan,R.W.Scheif
ler,J.Waldo, and A.Wollra
th,”TheJini Specificatio
n,”Addison−Wesley,1999 参
照)のLookup Serverというプログラムが
これにあたる。
シン上のクライアントプログラムからのサービス要求を
遠隔メソッド呼び出しの形で受信し、サービス結果をメ
ソッドヘの返り値として返す。サーバプログラムは、サ
ービス提供を開始するにあたり、まずディレクトリサー
ビスプログラムに、そのサーバプログラムから提供する
サービス名や属性と、当該サーバプログラムへの接続に
必要な情報(ネットワークアドレス(ネットワークレイ
ヤアドレスで、ここでは、IPアドレス)、ポート番
号、オブジェクト識別子などで、これを後述するスタブ
ファイルに埋め込んで登録する。
ラムに対して遠隔メソッド呼び出しを用いて要求を発行
し、応答を受け取って目的を完遂する。クライアントプ
ログラムは、サービスを受けるにあたってまずサーバプ
ログラムか稼働するネットワーク上の位置を知らなけれ
ばならない。そこで、クライアントプログラムはまずデ
ィレクトリサービスプログラムに接続して、サービス名
やサービス属性などをキーとして、所望のサーバプログ
ラムの検索を行なう。検索に成功すると、ディレクトリ
サービスプログラムに登録されているリモート参照を獲
得するので、リモート参照に基づきサーバフログラムヘ
接続し、サービスの提供を受ける。
ために、同じJava仮想マシン内にリモート参照管理
部を具備する。
マシン内のオブジェクトに対するリモート参照の作成
や、他のJava仮想マシン内のオブジェクトを参照す
るリモート参照を受信し管理するためのものである。
ログラムがJava仮想マシンS内で作成され、これ
に、Java仮想マシンC内のクライアントプログラム
がアクセスしたとする。
更)がない場合について説明する。
マシンSの構成を示したもので、図3に示すフローチャ
ートを参照して図2の仮想マシンSの機能と動作につい
て説明する。
ーバオブジェクト2と登録管理部3とリモート参照管理
部4とネットワークアドレス獲得部5とから構成され
る。
に、複数のjavaオブジェクトで構成されるが、その
中にRMIによる遠隔メソッド呼び出しを受け付けるオ
ブジェクトが含まれる。このオブジェクトは、「jav
a.rmi.server.RemoteServe
r」クラスを継承したクラスのオブジェクトである。こ
のオブジェクトを以下サーバオブジェクト2と呼ぶ。
参照更新部4aとリモート参照格納部4bとから構成さ
れ、リモート参照更新部4aは、サーバオブジェクト2
へのリモート参照の作成、更新を行い、作成、更新され
たリモート参照をリモート参照格納部4bに格納する。
また、リモート参照管理部4は、他のJava仮想マシ
ン内のオブジェクトを参照するためのリモート参照を受
信し、管理する。
に格納されたサーバオブジェクト2へのリモート参照を
ディレクトリサービスプログラムDに登録するためのも
のである。
オブジェクト2が構築、すなわち、起動された(クラス
がインスタンス化された)ときに、計算機102のオペ
レーティングシステム(例えば、Windows(マイ
クロソフト社登録商標)、Linux等で、以下、簡単
にOSと呼ぶ)から、そのときの計算機102のネット
ワークアドレスを獲得する。例えば、「java.ne
t.InetAddress」クラスが提供する「ge
tLocalHost()」メソッドがその一例である。
Sun Microsystems杜が提供するJDK
(Java Development Kit)1.1
およびJDK1.2で用意されているものは、ネットワ
ークアドレスを一度獲得すると、Java仮想マシンが
終了するまで、その獲得したネットワークアドレスを保
持し続けるようになっている。
アドレス獲得部5で獲得されたネットワークアドレスを
リモート参照に書き込む。
Java仮想マシンによりサーバオブジェクト2が構築
されると(クラスがインスタンス化されると)(図3の
テップS1)、その際、リモート参照管理部4は、ネッ
トワークアドレス獲得部5からネットワークアドレスを
取り出して、このサーバオブジェクト2ヘのリモート参
照を作成し、リモート参照格納部4bに格納する(ステ
ップS2)。
ェクト2ヘのリモート参照をディレクトリサービスプロ
グラムDに登録する(ステップS3)。
avaオブジェクトから構成されており、これを以下、
クライアントオブジェクトと呼ぶ。クライアントプログ
ラムは、所望のサービスを提供してくれるサーバプログ
ラムを検索するために、ディレクトリサービスプログラ
ムに接続して、サービス名、サービス属性などをキーと
して所望のサーバプログラムを検索する(図4のステッ
プS11)。そして、ディレクトリサービスプログラム
に登録されている所望のサーバプログラムへのリモート
参照を獲得すると(ステップS12)、リモート参照に
記述されたネットワークアドレス等を用いて、当該サー
バプログラムに接続し(ステップS13)、サービスの
提供を受ける(ステップS14)。
でのサーバプログラムの動作は、従来同様である。
グラムの動作について、上記の移動(ネットワークアド
レスの変更)がない場合と異なる部分について説明す
る。
計算機102のネットワークアドレスが変更された場合
について考える。これは、たとえば携帯型のノートパソ
コンの様な移動可能な計算機をユーザが移動しながら、
あるいはサスペンドの状態で持ち運び、別のIPネット
ワーク(以下、簡単にネットワークと呼ぶ)に接続した
場合に生じる。また、移動できないようなデスクトップ
型の計算機等であっても、ダイアルアップで接続されて
いる場合、電話回線を一旦切断した後に再接続した際に
異なるネットワークアドレスが割り当てられる事があ
る。
ドレスの変更が、サーバプログラム稼働中に生じたとす
る(図3のステップS4)。この場合、IPネットワー
ク移動後もサーバオブジェクト2が再構築されることが
ないので、リモート参照管理部4内に保持されているサ
ーバオブジェクト2への接続のためにリモート参照は、
サーバオブジェクト2が構築された時点でのネットワー
クアドレスを保持するため、ネットワークアドレスの変
更に伴って、リモート参照の書き換えが必要となる。
前述したように、ネットワークアドレスを一度獲得する
と、その値を保持し、ネットワークアドレス変更後もそ
の保持さえた値をリモート参照管理部4に報告してしま
う。このため、ネットワークアドレス獲得部5は、その
保持した値とネットワークアドレスを削除し、ネットワ
ークアドレス獲得部5が呼ばれた場合にネットワークア
ドレスを再獲得することが必要である。
算機102のネットワークアドレスが変更されたとき
に、速やかにリモート参照が更新されるよう、計算機1
02のネットワークアドレスが更新されたことを検知す
るメカニズムが必要となる。このメカニズムは、ネット
ワークアドレスを管理するOSが具備してもよいし、図
6に示すように、ネットワークアドレスをモニタするプ
ログラム(ネットワークアドレスモニタ6)が、Jav
a仮想マシンS外部に常駐していてもよい。これらの場
合には、Java仮想マシンS外部からリモート参照管
理部4(リモート参照更新部4b)へ、ネットワークア
ドレスの変更を通知する手段があれば良い。この手段に
は、ソケットなどの通常のプロセス間通信を用いても良
い。または、図7に示すように、ネットワークアドレス
モニタ7をJava仮想マシンS内部に持っても良い。
能について、図8(a)を参照して説明する。ネットワ
ークアドレスは、計算機102に搭載されている、DH
CP(Dynamic Host Configura
tion Protocol)12やPPP(Poin
t−to−Point Protocol)13のよう
なプロトコルを用いて必要に応じて取得され、計算機1
02のOS11に渡され、ここで保持される。ネットワ
ークアドレスモニタ6は、OS11に保持されているネ
ットワークアドレスを定期的に読み出し、前回読み出し
たネットワークアドレスと比較する。前回読み出しネッ
トワークアドレスと今回読み出したネットワークアドレ
スとが異なるときは、その旨をリモート参照管理部4
(リモート参照更新部4b)へソケットなどの通常のプ
ロセス間通信を用いて通知する。それを受けて、リモー
ト参照更新部4bはネットワークアドレス獲得部5を起
動して、新たなネットワークアドレスを獲得する。
能について、図8(b)を参照して説明する。ネットワ
ークアドレスは、上記同様、計算機102に搭載されて
いる、DHCP12やPPP13のようなプロトコルに
て取得され、計算機102のOS11に保持されてい
る。ネットワークアドレスモニタ7は、定期的にネット
ワークアドレス獲得部5を呼び出し、ネットワークアド
レス獲得部5で獲得されたネットワークアドレスを前回
のものと比較してネットワークアドレスの変更を検知す
る。ネットワークアドレスの変更を検知した場合には、
リモート参照更新部4bのメソッド呼び出しをして、新
たなネットワークアドレスを通知する。
の変更が検知され、新たなネットワークアドレスを取得
したリモート参照更新部4bは、リモート参照格納部4
aに格納されているリモート参照中のネットワークアド
レスを書き換える(ステップS5)。
ト参照を管理しており、大別すると同一Java仮想マ
シン内のオブジェクトを参照するものと、他のJava
仮想マシン内のオブジェクトを指すものがある。ネット
ワークアドレスの変更に伴って書き換えが必要となるリ
モート参照は、同一Java仮想マシン内のオブジェク
トを指すものだけである。
して、図3のステップS5のリモート参照更新部4bの
リモート参照更新処理動作について説明する。
格納部4aで管理されているリモート参照の中から、同
一Java仮想マシンS内のもので、ネットワークアド
レス更新処理を行っていない、未処理のもの選択し(ス
テップS21〜ステップS22)、その選択したリモー
ト参照中に計算機102が移動する前の変更前のネット
ワークアドレスが含まれているときは(ステップS2
3)、それを移動後の新しいネットワークアドレスに書
き換える(ステップS24)。
する方法としては、上記のような定期的にモニタするの
ではなく、移動後最初にネットワークアクセスを行う時
点でモニタして検出するのでも良い。リモート参照は、
計算機102のJava仮想マシンSのプログラムが他
の計算機のJava仮想マシンと通信を行う時点で更新
されていれば良いので、例えば、図6に示した構成の場
合、計算機102がJava仮想マシンS外のプログラ
ムが受信したパケットに応答しようとしたときに、ネッ
トワークアドレスモニタ6がネットワークアドレスのチ
ェックを行い、変更されていれば、ネットワークアドレ
スモニタ6がリモート参照更新部4のメソッド呼び出し
をすれば良い。
リモート参照中のネットワークアドレスを書き換える場
合を説明したが、実際、ネットワークアドレスの変更に
伴い、書き換えるべきものは、これだけではない。
を用いた通信の概略を説明する。
ライアントプログラムが計算機102のサーバオブジェ
クト2が提供するリモートメソッドを呼ぶ際に、当該サ
ーバオブジェクト2用のスタブクラスが必要となる。ま
た、サーバプログラムには、このスタブクラスに対応す
るスケルトンクラスを有する。クライアントプログラム
が実行されている計算機103上に、サーバオブジェク
ト2用のスタブクラスが無い場合、サーバオブジェクト
2のスタブオブジェクトに含まれるコードベースに指定
された場所から、スタブクラスを記述したファイル(ス
タブファイル)をダウンロードする。スタブオブジェク
トには、コードベースとリモート参照を含んでいる。
バプログラムが稼働する計算機102内にある場合と、
異なる計算機にある場合がある。前述したように、計算
機102の移動に伴ってネットワークアドレスが変更す
るような場合に影響を受けるのは、明らかに前者の場合
である。
にスタブファイルを提供する場合、通常HTTP(Hy
per Text Transfer Protoco
l)が利用される。そこで、本実施形態では、図10に
示すように、サーバプログラムが稼働する計算機102
上で、HTTPにてデータファイルの送受信を行うHT
TPサーバ104が並行して稼働する。
ログラムが通信相手のクライアントプログラムに提供す
べきサーバオブジェクト2用のスタブファイルは、HT
TPサーバ104に格納する(ステップS101)。ま
た、サーバオブジェクト2用のスタブファイルの格納場
所を示すコードベースは、スタブオブジェクトをディレ
クトリサービスプログラムに登録するために送出する際
に、スタブオブジェクトに(コードベースが)付与され
る(ステップS102、図3のステップS2)。クライ
アントプログラムは、図4に示したように、ディレクト
サービスリプログラムから所望のサーバプログラムのス
タブオブジェクトを受け取り(ステップS103)、そ
のスタブオブジェクトに付与されているコードベースを
基に、スタブファイルの供給元にアクセスして、スタブ
ファイルをダウンロードする(ステップS104)。そ
の後、クライアントプログラムは、図4のステップS1
3以降の動作を行う。
ァイルの格納場所は、計算機102にある。従って、前
述のようにして、サーバプログラムが稼働する計算機1
02のネットワークアドレスが変更された場合、前述同
様にリモート参照の書き換えが必要であるが、さらに、
スタブファイルを提供するHTTPサーバ104のネッ
トワークアドレスも変更されるため、スタブファイルの
供給元を示すコードベ一スも書き換える必要がある。
されている。RMI用クラスローダは、RMI用のスタ
ブクラスやスケルトンクラス、RMIのメソッドのパラ
メータや戻り値として渡されるクラスを管理するもので
ある。具体的には、クラスファイルの在処を、所定の順
番に検索、ロードし、合わせでどこからロードしたかを
記憶する。そして、オブジェクトを他のJava仮想マ
シンへ渡す場合、受け手側でクラスがロードできるよう
に在処を示すURLを付与する。この時、スケルトンや
スタブなどのクラスに対して付与されるコードベースは
RMIクラスローダが管理するローカルコードベースの
値がコピーされる(詳細はRMI仕様書)。このローカル
コードベースは、初期値は起動時にプロパティで指定す
るのが一般的である。
稼働する仮想マシンSは、上記のRMI用クラスローダ
8を有する。なお、図2、図6と同一部分には同一符号
を付し、以下、異なる部分について説明する。計算機1
02のネットワークアドレスが変更された場合には、R
MI用クラスローダ8が管理しているローカルコードベ
ース8aの値が更新されればよい。そこで、ネットワー
クアドレスの変更を検知した場合には、ローカルコード
ベース更新部8bを呼んで、ローカルコードベース8a
に含まれる自計算機102を示す部分を、新しいネット
ワークアドレスに対応したものに更新すればよい。
レスが「100.101.102.103」、コードベ
ースが「http://100.101.102.10
3/codebase/」であったものが、ネットワー
ク移動により、計算機102のネットワークアドレスが
「200.201.202.203」に移動になった場
合、コードベースも「http://200.201.
202.203/codebase/」に更新されれば
良い。
に示したように、Java仮想マシンS外部で行う方法
(図8(a)参照)とJava仮想マシンS内部で行う
方法(図8(b))とがあるが、図11では、Java
仮想マシンS外部にネットワークアドレスモニタ6があ
る場合の構成例を示している。すなわち、前述したよう
に、ネットワークアドレスモニタ6がネットワークアド
レスの変更を検知すると、その旨をリモート参照管理部
4(リモート参照更新部4b)、RMI用クラスローダ
8(コードベース更新部8b)へソケットなどの通常の
プロセス間通信を用いて通知する。それを受けて、リモ
ート参照更新部4b、コードベース更新部8bは、ネッ
トワークアドレス獲得部5を起動して、新たなネットワ
ークアドレスを獲得する。コードベース更新部8bは、
獲得した新たなネットワークアドレスを用いて、ローカ
ルコードベース8aを書き換える。
新部4bは、リモート参照中のネットワークアドレスを
新たなネットワークアドレスに書き換えるとともに、コ
ードベース更新部8bでローカルコードベース8aを更
新する。
bにより更新されたリモート参照は、計算機102の移
動先のIPネットワーク上に存在するディレクトリサー
ビスプログラムに登録される(図3のステップS3)。
なお、このときのディレクトリサービスプログラムは、
計算機101上で稼働するものであるとは限らない。
Pアドレスの変更に応じて、リモート参照更新部4aが
リモート参照中のネットワークアドレスを書き換えて、
計算機102の移動した先においても、スタブオブジェ
クトにその新たなリモート参照と新たなローカルコード
ベースを付与して、ディレクトリサービスプログラムに
登録することにより、計算機102上のサーバプログラ
ムは、新たなクライアントとの間の通信が可能となる。
ば、サーバプログラムを実行するJava仮想マシンS
を少なくとも1つ有する計算機102が、ネットワーク
アドレスモニタ6あるいは7で自装置のIPアドレスの
変更を検知したとき、サーバプログラムへのリモート参
照中のネットワークアドレスとコードベースの更新を行
い、この更新されたリモート参照とローカルコードベー
スを含むスタブオブジェクトをディレクトリサービスプ
ログラムへ登録し直すことで、計算機102のIPアド
レスの変更後も、このサーバプログラムへのクライアン
トからのアクセスが可能になる。
を例にとり説明したが、この場合に限らず、例えば、サ
ーバからクライアントへのサービス提供の際、クライア
ントがサーバに対し渡す引数に、例えばその解釈のため
に所定のクラスファイルが必要なときに、そのクラスフ
ァイルの所在を記述したデータを当該引数と伴に渡すこ
とになるが、クライアントプログラムの稼働する計算機
の移動に伴いIPアドレスが変更した場合、当該クラス
ファイルが同じ計算機内に存在するときには、前述同様
にして、このクラスファイルの所在を記述したデータも
変更して、サーバプログラムへ送り直せばよい。
た引数に対し行った処理結果に、例えばその解釈のため
に所定のクラスファイルが必要なときも、そのクラスフ
ァイルの所在を記述したデータを当該処理結果と伴に渡
すことになるが、サーバプログラムの稼働する計算機の
移動に伴いIPアドレスが変更した場合、当該クラスフ
ァイルが同じ計算機内に存在するときには、前述同様に
して、このクラスファイルの所在を記述したデータも変
更して、クライアントプログラムへ送り直せばよい。
るものではなく、実施段階ではその要旨を逸脱しない範
囲で種々に変形することが可能である。さらに、上記実
施形態には種々の段階の発明は含まれており、開示され
る複数の構成用件における適宜な組み合わせにより、種
々の発明が抽出され得る。例えば、実施形態に示される
全構成要件から幾つかの構成要件が削除されても、発明
が解決しようとする課題の欄で述べた課題(の少なくと
も1つ)が解決でき、発明の効果の欄で述べられている
効果(のなくとも1つ)が得られる場合には、この構成
要件が削除された構成が発明として抽出され得る。
プラットフォーム独立の機械語で実行されるオブジェク
ト指向言語で記述されたプログラムを実行する実行環境
を少なくとも1つ有する端末のネットワークアドレス
が、例えば上記プログラム実行中に不意に変更されて
も、そのネットワークアドレスの変更を上記実行環境上
に反映して、後に、再び他の端末との通信を可能にす
る。
例を示す図。
の構成を示した図。
フローチャート。
ためのフローチャート。
を説明するためのフローチャート。
仮想マシンおよびそれを有する計算機の構成を示した
図。
仮想マシンおよびそれを有する計算機の他の構成を示し
た図。
るための図。
るための図。
の構成例を示す図で、サーバプログラムが実行される計
算機上にHTTPサーバを有する場合を示している。
る仮想マシンおよびそれを有する計算機のさらに他の構
成を示した図。
Claims (5)
- 【請求項1】 プラットフォーム独立の機械語で実行さ
れるオブジェクト指向言語で記述されたプログラムを実
行する実行環境を少なくとも1つ有する複数の端末があ
り、これらのうちの特定の端末が、自装置のネットワー
クアドレスの変更を検知したとき、他の端末が前記特定
の端末へのアクセスを可能にするため、変更後の新たな
ネットワークアドレスを前記他の端末が参照可能なよう
に提供することを特徴とする通信方法。 - 【請求項2】 前記特定の端末が、自装置のネットワー
クアドレスの変更を検知したとき、前記特定の端末に記
憶されているファイルであって前記特定の端末が前記他
の端末に提供すべきファイルの所在を示す表記データを
更新し、この更新された表記データに基づいて前記ファ
イルを前記他の端末が参照可能なように提供することを
特徴とする請求項1記載の通信方法。 - 【請求項3】 プラットフォーム独立の機械語で実行さ
れるオブジェクト指向言語で記述されたプログラムを実
行する実行環境を少なくとも1つ有し、前記実行環境上
にて、クライアントからの要求に応じて所定のサービス
を提供するためのサーバプログラムを実行する情報処理
装置であって、 自装置のネットワークアドレスの変更を検知する検知手
段と、 この検知手段でネットワークアドレスの変更を検知した
とき、前記クライアントが自装置へのアクセスを可能に
するため、少なくとも変更後の新たなネットワークアド
レスを前記クライアントが参照可能なように提供する提
供手段と、 を具備したことを特徴とする情報処理装置。 - 【請求項4】 前記クライアントが前記サービスの提供
を受けるために必要な手続きを記述したファイルを記憶
する記憶手段と、 前記検知手段でネットワークアドレスの変更を検知した
とき、前記ファイルの所在を示した表記データを更新す
る更新手段と、 更新された表記データに基づいて前記ファイルを前記ク
ライアントが参照可能なように提供する提供手段と、 を具備したことを特徴とする請求項3記載の情報処理装
置。 - 【請求項5】 プラットフォーム独立の機械語で実行さ
れるオブジェクト指向言語で記述されたプログラムを実
行する実行環境を少なくとも1つ有するコンピュータ
を、クライアントからの要求に応じて所定のサービスを
提供するための前記実行環境上のサーバとして機能させ
るためのプログラム製品であって、 自装置のネットワークアドレスの変更を検知する機能
と、 前記ネットワークアドレスの変更を検知したとき、前記
クライアントが自装置へのアクセスを可能にするため、
少なくとも変更後の新たなネットワークアドレスを前記
クライアントが参照可能なように提供する機能と、 前記ネットワークアドレスの変更を検知したとき、前記
クライアントが前記サービスの提供を受けるために必要
な手続きを記述したファイルの記憶場所を示した表記デ
ータを更新する機能と、 更新された表記データに基づいて前記ファイルを前記ク
ライアントが参照可能なように提供する機能と、 をコンピュータに実現させるためのプログラム製品。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000286066A JP3688571B2 (ja) | 2000-09-20 | 2000-09-20 | 情報処理装置 |
US09/944,086 US6973487B2 (en) | 2000-09-20 | 2001-09-04 | Information processing apparatus and method |
US11/159,288 US7398370B2 (en) | 2000-09-20 | 2005-06-23 | Information processing apparatus and method |
US12/068,073 US20080140834A1 (en) | 2000-09-20 | 2008-02-01 | Information processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000286066A JP3688571B2 (ja) | 2000-09-20 | 2000-09-20 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002101120A true JP2002101120A (ja) | 2002-04-05 |
JP3688571B2 JP3688571B2 (ja) | 2005-08-31 |
Family
ID=18770039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000286066A Expired - Fee Related JP3688571B2 (ja) | 2000-09-20 | 2000-09-20 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (3) | US6973487B2 (ja) |
JP (1) | JP3688571B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009151560A (ja) * | 2007-12-20 | 2009-07-09 | Hitachi Ltd | リソースの管理方法、情報処理システム、情報処理装置、及びプログラム |
WO2011117958A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
WO2011117957A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
JP4875987B2 (ja) * | 2004-11-02 | 2012-02-15 | パナソニック株式会社 | アプリケーションプログラム実行装置 |
JP2012142787A (ja) * | 2010-12-28 | 2012-07-26 | Fujitsu Ltd | サーバ所在地追跡装置、方法、およびプログラム |
WO2022049768A1 (ja) * | 2020-09-07 | 2022-03-10 | 日本電信電話株式会社 | パケット通信装置、パケット処理ルール設定方法、及びプログラム |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093496A1 (en) * | 2001-10-22 | 2003-05-15 | O'connor James M. | Resource service and method for location-independent resource delivery |
US7565533B2 (en) * | 2002-11-05 | 2009-07-21 | Sun Microsystems, Inc. | Systems and methods for providing object integrity and dynamic permission grants |
KR100497384B1 (ko) * | 2003-01-28 | 2005-06-23 | 삼성전자주식회사 | 가상 머신을 이용한 분산 처리 시스템 및 분산 처리방법 |
US7734690B2 (en) * | 2003-09-05 | 2010-06-08 | Microsoft Corporation | Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system |
JP2005100270A (ja) * | 2003-09-26 | 2005-04-14 | Minolta Co Ltd | プリント制御プログラムおよび印刷装置 |
JP4599923B2 (ja) * | 2004-07-16 | 2010-12-15 | ソニー株式会社 | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
US7961883B2 (en) * | 2004-11-24 | 2011-06-14 | Research In Motion Limited | System and method for securing a personalized indicium assigned to a mobile communications device |
US7769175B2 (en) * | 2004-11-24 | 2010-08-03 | Research In Motion Limited | System and method for initiation of a security update |
US7669181B2 (en) * | 2005-04-29 | 2010-02-23 | Sap (Ag) | Client interfaces for packages |
US7587705B2 (en) * | 2005-04-29 | 2009-09-08 | Sap (Ag) | Calls and return calls using client interfaces |
US7634771B2 (en) * | 2005-04-29 | 2009-12-15 | Sap (Ag) | Object generation in packages |
US9606846B2 (en) * | 2005-07-29 | 2017-03-28 | Sap Se | System and method for dynamic proxy generation |
US20070027877A1 (en) * | 2005-07-29 | 2007-02-01 | Droshev Mladen I | System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network |
US20070101323A1 (en) * | 2005-10-28 | 2007-05-03 | Microsoft Corporation | Automatic virtual machine adjustments to network changes |
US20070168509A1 (en) * | 2005-12-30 | 2007-07-19 | Droshev Mladen I | System and method for remote loading of classes |
US8904359B2 (en) * | 2008-03-06 | 2014-12-02 | International Business Machines Corporation | On-demand monitoring of memory usage |
US8825810B1 (en) * | 2010-07-09 | 2014-09-02 | Open Invention Network, Llc | Domain name service based remote programming objects |
US9935836B2 (en) * | 2011-04-07 | 2018-04-03 | Veritas Technologies Llc | Exclusive IP zone support systems and method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978568A (en) * | 1997-03-11 | 1999-11-02 | Sequel Technology Corporation | Method and apparatus for resolving network users to network computers |
US6614788B1 (en) * | 1998-03-03 | 2003-09-02 | Sun Microsystems, Inc. | Network address management |
US6522654B1 (en) * | 1998-05-15 | 2003-02-18 | Harris-Exigent, Inc. | Method for hosting the internet protocol suite on the IEEE-1394 high speed serial bus |
US6490617B1 (en) * | 1998-06-09 | 2002-12-03 | Compaq Information Technologies Group, L.P. | Active self discovery of devices that participate in a network |
US6256671B1 (en) * | 1998-06-24 | 2001-07-03 | Nortel Networks Limited | Method and apparatus for providing network access control using a domain name system |
US6052725A (en) * | 1998-07-02 | 2000-04-18 | Lucent Technologies, Inc. | Non-local dynamic internet protocol addressing system and method |
US6105100A (en) * | 1998-07-17 | 2000-08-15 | International Business Machines Corporation | Method and apparatus for detecting and initializing the addition of a new client machine in a network |
US6587876B1 (en) * | 1999-08-24 | 2003-07-01 | Hewlett-Packard Development Company | Grouping targets of management policies |
WO2002057917A2 (en) * | 2001-01-22 | 2002-07-25 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US6920506B2 (en) * | 2001-06-28 | 2005-07-19 | Canon Information Systems, Inc. | Discovery and management of network printers |
-
2000
- 2000-09-20 JP JP2000286066A patent/JP3688571B2/ja not_active Expired - Fee Related
-
2001
- 2001-09-04 US US09/944,086 patent/US6973487B2/en not_active Expired - Fee Related
-
2005
- 2005-06-23 US US11/159,288 patent/US7398370B2/en not_active Expired - Fee Related
-
2008
- 2008-02-01 US US12/068,073 patent/US20080140834A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4875987B2 (ja) * | 2004-11-02 | 2012-02-15 | パナソニック株式会社 | アプリケーションプログラム実行装置 |
JP2009151560A (ja) * | 2007-12-20 | 2009-07-09 | Hitachi Ltd | リソースの管理方法、情報処理システム、情報処理装置、及びプログラム |
WO2011117958A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
WO2011117957A1 (ja) * | 2010-03-20 | 2011-09-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
JP5403448B2 (ja) * | 2010-03-20 | 2014-01-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理方法、及びプログラム |
JP5403447B2 (ja) * | 2010-03-20 | 2014-01-29 | 株式会社Pfu | 仮想マシン管理装置、仮想マシン管理システム、仮想マシン管理方法、及びプログラム |
JP2012142787A (ja) * | 2010-12-28 | 2012-07-26 | Fujitsu Ltd | サーバ所在地追跡装置、方法、およびプログラム |
WO2022049768A1 (ja) * | 2020-09-07 | 2022-03-10 | 日本電信電話株式会社 | パケット通信装置、パケット処理ルール設定方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3688571B2 (ja) | 2005-08-31 |
US20020035591A1 (en) | 2002-03-21 |
US20080140834A1 (en) | 2008-06-12 |
US20050240598A1 (en) | 2005-10-27 |
US7398370B2 (en) | 2008-07-08 |
US6973487B2 (en) | 2005-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002101120A (ja) | 通信方法および情報処理装置 | |
EP0732834B1 (en) | System and method for determining and manipulating configuration information of servers in a distributed object environment | |
US7139816B2 (en) | Method, apparatus, and program for server based network computer load balancing across multiple boot servers | |
US7089561B2 (en) | Methods and systems for creating and communicating with computer processes | |
EP0501610B1 (en) | Object oriented distributed computing system | |
US7917855B1 (en) | Method and apparatus for configuring a user interface | |
JP6081472B2 (ja) | 専用のキャッシュを管理するためのシステム及び方法 | |
US20030195951A1 (en) | Method and system to dynamically detect, download and install drivers from an online service | |
US7739230B2 (en) | Log location discovery and management | |
US7596611B1 (en) | Method and apparatus for maintaining information for use in the configuration of a client | |
US8230414B1 (en) | Software distribution and cache management across client machines on a network | |
EP1257914B1 (en) | Self-configurable distributed system | |
US20060069712A1 (en) | System and method providing multi-tier applications architecture | |
US20060106879A1 (en) | Conflict resolution in a synchronization framework | |
RU2003101395A (ru) | Предоставление расширений программного обеспечения на основе использования сети | |
US9485140B2 (en) | Automatic proxy setting modification | |
US20080082665A1 (en) | Method and apparatus for deploying servers | |
CN116034576A (zh) | 基于cos集群域名系统的跨多个cos集群的容器编排系统(cos)服务发现 | |
US8291406B2 (en) | Data imaging system and methods | |
EP0812090B1 (en) | Method and apparatus for running a client computer without a server software | |
JP2014209365A (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 | |
CN117560373A (zh) | 一种基于云原生的多租户云ide管理系统 | |
JP2002505474A (ja) | ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム | |
CN111385334B (zh) | 一种数据配送方法、装置、设备及存储介质 | |
JPH11312090A (ja) | 情報処理装置、その制御方法、記憶媒体および情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040909 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050531 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050608 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |