JP2002529854A - 分散処理システムにおける複製されたネーミングサービス - Google Patents

分散処理システムにおける複製されたネーミングサービス

Info

Publication number
JP2002529854A
JP2002529854A JP2000581540A JP2000581540A JP2002529854A JP 2002529854 A JP2002529854 A JP 2002529854A JP 2000581540 A JP2000581540 A JP 2000581540A JP 2000581540 A JP2000581540 A JP 2000581540A JP 2002529854 A JP2002529854 A JP 2002529854A
Authority
JP
Japan
Prior art keywords
service
server
java
naming
software
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
JP2000581540A
Other languages
English (en)
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.)
BEA Systems Inc
Original Assignee
BEA Systems Inc
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 BEA Systems Inc filed Critical BEA Systems Inc
Publication of JP2002529854A publication Critical patent/JP2002529854A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

(57)【要約】 クラスター化エンタープライズジャバ(JAVA登録商標)分散処理システムが供給される。前記分散処理システムは、通信媒体に結合された第一および第二のコンピュータを含む。第一のコンピュータは、ジャバ(JAVA登録商標)仮想マシン(JVM)(354)およびメッセージを転送するためのカーネルソフトウェア(355)を含み、リモートジャバ(JAVA登録商標)仮想マシン(RJVM)(356)を含む。第二のコンピュータは、JVMと、およびRJVMを有するカーネルソフトウェア層とを含む。メッセージは、一方のコンピュータにおいてはRJVMからJVMへ、第二のコンピュータにおいてはJVMおよびRJVMへと送られる。メッセージは、ネットワーク再構築の後、中間サーバ(302および303)を通して送信され、またはリルートされてもよい。各負荷バランシングソフトウェアコンポーネント(362)およびフェイルオーバソフトウェアコンポーネント。各コンピュータは、ノードにおいて、スマートスタブのプールを記憶するために、複製されたサービスネーミングツリーを含む。前記コンピュータは、ステートレス、ステートレスファクトリ、またはステートフルプログラミングモデルでプログラムされてもよい。クラスター化エンタープライズジャバ(JAVA登録商標)分散処理システムは、向上したスケーラビリティおよび故障耐性を可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
本発明は、分散処理システムに関するものであり、特に、分散処理システムに
おけるコンピュータソフトウエアに関するものである。
【0002】
【関連出願のクロスレファレンス】
本願は、1998年11月5日に出願された米国仮出願第60/107167
号の優先権を主張している。
【0003】 次の同時に係属中の米国特許出願は、本出願の譲受人に譲渡されており、それ
らの開示は引用によりここに組み入れられている。 (A) Dean B. Jacobs およびAnno R. Langenによって(出願日未通知)出願され
「CLUSTERED ENTERPRISE JAVA HAVING A MESSAGE PASSING KERNEL IN A DISTRIB
UTED PROCESSING SYSTEM」と題する出願(番号未通知)(代理人整理番号BEAS
1027) (B) Dean B. Jacobs およびEric M. Halpernによって(出願日未通知)出願さ
れ「A SMART STUB OR ENTERPRISE JAVA BEAN IN A DISTRIBUTED PROCESSING SYS
TEM」と題する出願(番号未通知)(代理人整理番号BEAS1029) (C) Dean B. Jacobs およびEric M. Halpernによって(出願日未通知)出願さ
れ「A DUPRICATED NAMING SERVICE IN A DISTRIBUTED PROCESSING SYSTEM」と
題する出願(番号未通知)(代理人整理番号BEAS1029)
【0004】
【発明の背景】
分散処理システムにはいくつかのタイプがある。一般的に、分散処理システム
は、通信媒体に結合された2つのコンピュータの如き複数の処理装置を含む。通
信媒体は、ワイヤド媒体、ワイヤレス媒体またはイーサネット(登録商標)ロー カルエリアネットワークまたはセルラーネットワークの如きそれらの組み合わせ たものを含みうる。分散処理システムにおいては、少なくとも1つの処理装置は 、通信媒体にて情報を別の1つの処理装置へ転送する。
【0005】 図1aに例示するクライアント/サーバアーキテクチャー110が1つのタイ
プの分散処理システムである。クライアント/サーバアーキテクチャー110は
、クラインアト105およびアプリケーションサーバ103として例示されるよ
うな少なくとも2つの処理装置を含む。クラインアト108の如き付加的クライ
アントも通信媒体104に結合されうる。
【0006】 典型的には、サーバ103は、ビジネスロジックをホストし、および/または
クライアント103および/またはクラインアト108の如き別の処理装置へサ
ービスを提供する際のトランザクションを調整する。アプリケーションサーバ1
03は、典型的には、あるサービスを提供するためソフトウエアでプログラムさ
れる。そのプログラムは、図1a−bに例示したようなエンタープライズジャバ
(登録商標)ビーン(EJB)100bの如き種々なプログラミングモデルを使
用してプログラムされうる。サービスは、例えば、データベースからデータを検
索したり転送したりすること、イメージを提供しおよび/または等式を計算した
りすることを含む。例えば、サーバ103は、クライアント105からのリクエ
ストに応答して通信媒体102を介して持続記憶媒体101におけるデータベー
ス101aからデータを検索する。そのとき、アプリケーションサーバ103は
、そのリクエストされたデータを通信媒体104を介してクライアント105へ
転送する。
【0007】 クライアントは、サーバからのサービスを利用する処理装置であり、そのサー
ビスを要求する。しばしば、ユーザ106は、クライアント106と対話し、ク
ライアント105がアプリケーションサーバ103から通信媒体104を介して
サービスを要求するようにさせうる。クライアントは、しばしば、リクエストの
受け入れおよび結果の表示の如きエンドユーザとの直接対話を取り扱う。
【0008】 アプリケーションサーバ103および/またはクライアント105をプログラ
ムするのに種々異なるタイプのソフトウエアが使用される。1つのプログラミン
グ言語は、ジャバ(JAVA登録商標)プログラミング言語である。ジャバ(J
AVA登録商標)アプリケーションオブジェクトコードは、ジャバ(JAVA登
録商標)仮想マシン(JVM)へロードされる。JVMは、特定のマシンまたは
処理装置をエミュレートする処理装置へロードされるプログラムである。ジャバ
(JAVA登録商標)プログラミング言語に関するさらなる情報は、ここに引用
により組み込まれるhttp://www.javasoft.comにて得られる。
【0009】 図1bは、ジャバ(JAVA登録商標)アプリケーションコードを基礎となる
トランザクションシステム、データベースおよびネットワ−クインフラストラク
チャーと独立したままとしうるいくつかのジャバ(JAVA登録商標)エンター
プライズアプリケーションプログラミングインターフェース(API)100を
例示している。ジャバ(JAVA登録商標)エンタープライズAPI100は、
例えば、リモートメソッド呼出し(RMI)100a、EJB100bおよびジ
ャバ(JAVA登録商標)ネーミングおよびディレクトリインターフェース(J
NDI)100cを含む。
【0010】 RMI100aは、以下に説明するピア・トゥ・ピアキテクチャーにしばしば
使用される分散プログラミングモデルである。特に、一組のクラスおよびインタ
ーフェースは、一つのジャバ(JAVA登録商標)オブジェクトが異なるJVM
にてランしている別のジャバ(JAVA登録商標)オブジェクトのパブリックメ
ソッドを呼び出すことができるようにする。
【0011】 EJB100bの一例は、典型的には、前述したクライアント/サーバアーキ
テクチャーに使用される。EJB100bの一例は、ソフトウエアコンポーネン
トまたは他のコンポーネントと結合されうるエンキャプシュレーテドアプリケー
ションコードの再使用可能なプレビルトピースである。典型的には、EJB10
0bの一例は、ビジネスロジックを含む。サーバ103に記憶されたEJB10
0bの一例は、持続性、トランザクション、コンカーレンシー、スレッディング
およびセキュリティを管理する。
【0012】 JNDI100cは、ジャバ(JAVA登録商標)ソフトウエアアプリケーシ
ョンに対してディレクトリおよびネーミングファンクションを与える。
【0013】 クライアント/サーバアーキテクチャー110は、多くの欠点を有している。
第一に、アーキテクチャー110は、良好にスケールしない。何故ならば、サー
バ103は、多くのコネクションを取り扱わなければならないからである。換言
するならば、サーバ103に加えられ得るクライアントの数は制限されている。
その上、2倍の数の処理装置(クライアント)を加えても、必ずしも、2倍の性
能が与えられるわけではない。第二に、クライアント105および108に関す
るアプリケーションコードを維持するのが難しい。第三に、アーキテクチャー1
10は、システム故障または単一ポイントの故障の影響を受けやすい。サーバ1
01が故障し、バックアップが利用できない場合には、クライアント105は、
サービスを受けることができない。
【0014】 図1cは、マルチ・ティアーアーキテクチャー160を例示している。クライ
アント151、152は、エンドユーザとの直接対話を管理し、リクエストの受
け入れおよび結果の表示の管理を行う。アプリケーションサーバ153は、アプ
リケーションコードをホストし、通信、同期、およびトランザクションを調整す
る。データベースサーバ154およびポータブル記憶装置155は、データの耐
性のあるトランザクション管理を行う。
【0015】 マルチ・ティアーアーキテクチャー160は、前述したのと同様のクライアン
ト/サーバアーキテクチャー110の欠点を有する。
【0016】 図2は、ピア・トゥ・ピアキテクチャー214を例示している。処理装置21
6,217および218が、通信媒体213に結合されている。処理装置216
、217および218は、媒体213を介しての通信のためネットワークソフト
ウエア210a、210b、および210cを含む。典型的には、ピア・トゥ・
ピアキテクチャーにおける各処理装置は、同様の処理能力およびアプリケーショ
ンを有する。ピア・トゥ・ピアプログラムモデルの例としては、コモンリクエス
トブローカーアーキテクチャー(CORBA)および分散オブジェクトコンポー
ネントモデル(DCOM)アーキテクチャーがある。
【0017】 プラットフォーム特定分散処理システムにおいては、各処理装置は、同じオペ
レーティングシステムを稼働し得る。これにより、処理装置の間の通信のため、
シェアドディスク、マルチテイルドディスクおよびハイスピードインターコネク
トの如き専用ハードウエアを使用することができる。プラットフォーム特定分散
処理システムの例としては、IBM(登録商標)コーポレーションのS/390
パラレルSysplex、コンパックのタンデムディビジョンヒマラヤサーバ、
コンパックのデジタルエクイップメントコーポレーション(DEC登録商標)デ
ィビジョンOpenVMS(登録商標)クラスタソフトウエア、およびマイクロ
ソフトコーポレーションWindows NT(登録商標)クラスタサービス(
ウルフパック)がある。
【0018】 図2bは、トランザクション処理(TP)アーキテクチャー220を例示して
いる。特に、TPアーキテクチャー220は、BEA(登録商標)システムのT
UXEDO(登録商標)アーキテクチャーを例示している。TPモニタ224は
、それぞれ通信媒体280、281、および282によって、処理装置ATM2
21、PC222およびTPモニタ223に結合されている。ATM221は、
自動テラーマシンであってよく、PC222は、パーソナルコンピュータであっ
てよく、TPモニタ223は、別のトランザクションプロセッサモニタであって
よい。TPモニタ224は、通信媒体283,284および285によってバッ
クエンドサーバ225,226および227に結合される。サーバ225は、通
信媒体286によって、データベースを記憶する持続記憶装置287に結合され
る。TPモニタ224は、ATM221、PC222またはTPモニタ223の
如き処理装置からのサービスリクエストをサーバ225,226および227の
如き種々なサーバへルーティングするためのワークフローコントローラ224a
を含む。ワークフローコントローラ224aは、(1)サーバの間のワーク負荷
のバランシング、(2)制限されたスケーラビリティまたは付加的サーバおよび
/またはクライアントの許容、(3)リダンダントバックエンドサーバの故障耐
性(またはサービスリクエストは故障していないサーバへワークフローコントロ
ーラによって送られ得る)および(4)バックエンドサーバへの同時接続の数を
制限するためのセッション集中をイネーブルする。その他のトランザクション処
理アーキテクチャーの例としては、IBM(登録商標)コーポレーションのCI
CS(登録商標)、コンパックのタンデムディビジョンのパスウエイ/フォード
/TS、コンパックのDEC(登録商標)ACMS、およびトランザークコーポ
レーションのエンシナがある。
【0019】 TPアーキテクチャー220もまた、多くの欠点を有している。第一に、単一
処理装置またはTPモニタ224が故障すると、ネットワークが作動しなくなっ
てしまう。第二に、TPモニタ224に結合される処理装置(サーバおよびクラ
イアントの両方)のスケーラビィリティまたは数は、TPモニタ224のハード
ウエアおよびソフトウエアによって制限されてしまう。第三に、クライアントリ
クエストをサーバへルーティングする融通性が制約されてしまう。例えば、通信
媒体280が不作動であるが、通信媒体290が利用しうるようになる場合に、
ATM221が典型的には通信媒体290を介してサーバ225から直接的にサ
ービスを要求できず、TPモニタ224にアクセスしなければならない。第四に
、クライアントは、典型的には、バックエンドサーバまたはその他の処理装置の
状態を知らない。第五に、負荷バランシングのために工業的標準ソフトウエアま
たはAPIを使用できない。そして、第六に、クライアントは、典型的に、その
クライアントが効率的サービスをイネーブルする適切な情報を有する場合でも、
特定のサーバを選択できない。
【0020】 したがって、従来の分散処理システムの利点を有するがそれらの固有の欠点を
有していないような分散処理システム、特に、分散処理システムソフトウエアを
提供することが望ましい。そのソフトウエアは、典型的にはクライアント/サー
バ、マルチ・ティアー、またはピア・トゥ・ピア分散処理システムに使用される
工業的標準APIを考慮すべきである。そのソフトウエアは、種々なコンピュー
タプログラミングモデルを支援するものであるべきである。また、そのソフトウ
エアは、(1)故障耐性を高めることのできるもの、(2)効率的なスケーラビ
リティを可能とするもの、(3)実効的な負荷バランシングを可能とするもの、
および(4)セッション集中制御を可能とするもの、であるべきである。その改
良されたコンピュータソフトウエアは、再ルーティングまたはネットワーク再構
成を行えるものであるべきである。また、そのコンピュータソフトウエアは、処
理装置の状態を決定することができるものであるべきである。
【0021】
【発明の概要】
改良された分散処理システムが提供され、特に、分散処理システムのためのコ
ンピュータソフトウエアが提供される。このコンピュータソフトウエアは、分散
処理システムの故障耐性を改善し且つ効率的なスケーラビリティを可能とする。
このコンピュータソフトウエアは、効率的な負荷バランシングおよびセッション
集中を可能とする。このコンピュータソフトウエアは、再ルーティングまたはコ
ンピュータネットワークの再構成を支援する。このコンピュータソフトウエアは
、種々なコンピュータプログラミングモデルを支援し、クライアント/サーバア
ーキテクチャーおよびピア・トゥ・ピア分散処理アーキテクチャーの両者に使用
される工業的標準APIの使用を可能とする。このコンピュータソフトウエアは
、サーバまたは他の処理装置の状態の決定を可能とする。このコンピュータソフ
トウエアは、また、セキュリティモデルを含む種々な環境の下でのメッセージ送
信を支援する。
【0022】 本発明の一つの観点によれば、分散処理システムは、第1の処理装置および第
2の処理装置に結合された通信媒体を備える。第1の処理装置は、データ構造(
RJVM1)を有する第1のカーネルソフトウエア層を含む処理装置(JVM1
)をエミュレートする第1のソフトウエアプログラムを含む。第2の処理装置は
、データ構造(RJVM2)を有する第1のカーネルソフトウエア層を含む処理
装置(JVM2)をエミュレートする第1のソフトウエアプログラムを含む。第
1の処理装置からのメッセージは、第2の処理装置における第1のカーネルソフ
トウエア層および第1のソフトウエアプログラムに対する第1の処理装置におけ
る第1のカーネルソフトウエア層および第1のソフトウエアプログラムを通して
第2の処理装置へ転送される。
【0023】 本発明の別の観点によれば、第1の処理装置における第1のソフトウエアプロ
グラムは、ジャバ(JAVA登録商標)仮想マシン(JVM)であり、第1の処
理装置におけるデータ構造は、リモートジャバ(JAVA登録商標)仮想マシン
(RJVM)である。同様に、第2の処理装置における第1のソフトウエアプログ
ラムは、JVMであり、第2の処理装置におけるデータ構造は、RJVMである
。第2の処理装置におけるRJVMは、第1の処理装置におけるJVMに対応す
る。
【0024】 本発明の別の観点によれば、第1の処理装置におけるRJVMは、ソケットマ
ネージャソフトウエアコンポーネント、スレッドマネージャソフトウエアコンポ
ーネント、メッセージルーティングソフトウエアコンポーネント、メッセージ圧
縮ソフトウエアコンポーネント、および/またはピア中断検出ソフトウエアコン
ポーネントを含む。
【0025】 本発明の別の観点によれば、第1の処理装置は、トランスミッションコントロ
ールプロトコル(TCP)、セキュアソケットレーヤ(SSL)、ハイパーテキ
ストトランスポートプロトコル(HTTP)トンネリング、およびインターネッ
トインテルORBプロトコル(IIOP)トンネリングからなる群から選択され
たプロトコルを使用して第2の処理装置と通信する。
【0026】 本発明の別の観点によれば、第1の処理装置は、ジャバ(JAVA登録商標)
プリケーションのためのメモリ記憶装置を含む。
【0027】 本発明の別の観点によれば、第1の処理装置は、第2の処理装置のピアである
。また、第1の処理装置は、サーバであり、第2の処理装置は、クライアントで
ある。
【0028】 本発明の別の観点によれば、第2の通信媒体が第2の処理装置に結合される。
第3の処理装置が第2の通信媒体に結合される。第3の処理装置は、第1のデー
タ構造(RJVM1)および第2のデータ構造(RJVM2)を有するカーネル
ソフトウエア層を含む処理装置(JVM3)をエミュレートする第1のソフトウ
エアプログラムを含む。
【0029】 本発明のさらに別の観点によれば、第1の処理装置は、レプリカ−ハンドラー
ソフトウエアコンポーネントを有するスタブを含む。レプリカ−ハンドラーソフ
トウエアコンポーネントは、負荷バランシングソフトウエアコンポーネントおよ
び故障回復ソフトウエアコンポーネントを含む。
【0030】 本発明の別の観点によれば、第1の処理装置は、エンタープライズジャバ(J
AVA登録商標)ビーンズオブジェクトを含む。
【0031】 本発明のさらに別の観点によれば、第1の処理装置は、ツリーのノードに記憶
されたスタブのプールを有するネーミングツリーを含み、第2の処理装置は、そ
のネーミングツリーの複製を含む。
【0032】 本発明のさらに別の観点によれば、第1の処理装置は、ステートレスプログラ
ムモデルにコード化されたアプリケーションプログラムを含み、そのアプリケー
ションプログラムは、ステートレスセッションビーンズを含む。
【0033】 本発明のさらに別の観点によれば、第1の処理装置は、ステートレスファクト
リプログラムモデルにコード化されたアプリケーションプログラムを含み、その
アプリケーションプログラムは、ステートフルセッションプログラムを含む。
【0034】 本発明のさらに別の観点によれば、第1の処理装置は、ステートフルプログラ
ムモデルにコード化されたアプリケーションプログラムを含み、そのアプリケー
ションプログラムは、エンティティセッションビーンズを含む。
【0035】 本発明のさらに別の観点によれば、情報記憶媒体を含むアーティクルオブマニ
ュファクチャーが提供される。このアーティクルオブマニュファクチャーは、第
1の処理装置におけるRJVMから第2の処理装置におけるRJVMへメッセー
ジを転送するためのデジタル情報の第1のセットを備える。
【0036】 本発明の別の観点によれば、アーティクルオブマニュファクチャーは、複数の
サービスプロバイダからあるサービスプロバイダを選択するための負荷バランシ
ングソフトウエアプログラムを有するスタブを含むデジタル情報の第1のセット
を備える。
【0037】 本発明の別の観点によれば、スタブは、複数のサービスプロバイダから故障し
たサービスプロバイダを除去するための故障回復ソフトウエアコンポーネントを
有する。
【0038】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、特定のサービスプロバイダについての類縁性に基づいてサービスプロバイダを
選択する。
【0039】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、ラウンドロビン方式にてサービスプロバイダを選択する。
【0040】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、ランダムにサービスプロバイダを選択する。
【0041】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、各サービスプロバイダの負荷に基づいて複数のサービスプロバイダからサービ
スプロバイダを選択する。
【0042】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、要求されたデータタイプに基づいて複数のサービスプロバイダからサービスプ
ロバイダを選択する。
【0043】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、最も近い物理的サービスプロバイダに基づいて複数のサービスプロバイダから
サービスプロバイダを選択する。
【0044】 本発明の別の観点によれば、負荷バランシングソフトウエアコンポーネントは
、各サービスプロバイダが応答する時間期間に基づいて複数のサービスプロバイ
ダからサービスプロバイダを選択する。
【0045】 本発明の別の観点によれば、アーティクルオブマニュファクチャーは、複数の
サービスプロバイダからサービスプロバイダを選択するためのエンタープライズ
ジャバ(JAVA登録商標)ビーンズオブジェクトを含むデジタル情報の第1の
セットを備える。
【0046】 本発明の別の観点によれば、あるスタブは、分散処理システムにおける処理装
置に記憶される。そのスタブは、サービスプロバイダのリストを得るステップと
、そのサービスプロバイダのリストからサービスプロバイダを選択するステップ
とを含む方法を含む。
【0047】 本発明の別の観点によれば、その方法は、さらに、サービスプロバイダのリス
トから故障したサービスプロバイダを除去することを含む。
【0048】 本発明のさらに別の観点によれば、ある装置は、第1の処理装置および第2の
処理装置に結合される通信媒体を備える。その第1の処理装置は、サービスプロ
バイダにアクセスするためのリモートメソッド呼出し(RMI)を含むネーミン
グツリーを記憶する。
【0049】 本発明の別の観点によれば、ネーミングツリーは、現在のサービスプロバイダ
のサービスプールを含むノードを有する。
【0050】 本発明の別の観点によれば、そのサービスプールは、スタブを含む。
【0051】 本発明の別の観点によれば、分散処理システムは、第2のコンピュータに結合
された第1のコンピュータを備える。その第1のコンピュータは、サービスプロ
バイダにアクセスするためのリモート呼出しスタブを含むネーミングツリーを有
する。第2のコンピュータは、複製されたネーミングツリーおよびサービスプロ
バイダを有する。
【0052】 本発明の別の観点によれば、第2の処理装置に結合された第1の処理装置を備
える分散処理システムが提供される。その第1の処理装置は、JVMおよび第1
のRJVMを含む第1のカーネルソフトウエア層を有する。第2の処理装置は、
第1のJVMおよび第2のRJVMを含む第1のカーネルソフトウエア層を含む
。第1のJVMと第2のJVMとの間に利用しうるソケットがない時、第1の処
理装置から第2の処理装置へメッセージが転送されうる。
【0053】 本発明の別の観点によれば、第1の処理装置は、ファイアウオールの背後でア
プレットセキュリティモデルの下で稼働し、または、クライアントであり、第2
の処理装置もクライアントである。
【0054】 本発明の他の観点および効果は、図面、詳細な説明および請求の範囲の記載か
ら理解されよう。
【0055】 本発明は、添付図面および以下の詳細な説明からより良く理解されよう。添付
図面において、同様の参照符号は、同様のコンポーネントを示している。
【0056】
【詳細な説明】
1. クラスター化エンタープライズジャバ(JAVA登録商標)分散処理シス
テム A.クラスター化エンタープライズジャバ(JAVA登録商標)ソフトウエア アーキテクチャー 図3aは、本発明の一実施例によるクラスター化エンタープライズジャバ(J
AVA登録商標)システムの処理装置におけるソフトウエア層の簡単化したブロ
ック図380を例示している。クラスター化エンタープライズジャバ(JAVA
登録商標)分散処理システムの詳細な説明は以下になされる。ソフトウエアの第
1の層は、イーサネットローカルエリアネットワークの如き通信媒体にて情報を
転送したり受信したりするための通信媒体ソフトウエアドライバ351を含む。
送信コントロールプロトコル(TCP)ソフトウエアコンポーネント353およ
びインターネットプロトコル(IP)ソフトウエアコンポーネント352を含む
オペレーティングシステム310は、特定のフォーマットにて情報のパッケージ
またはブロックを検索し送信するための上方ソフトウエア層である。上方ソフト
ウエア層は、一般的には、1つまたはそれ以上の下方ソフトウエア層またはソフ
トウエアコンポーネントを使用しまたはアクセスするソフトウエアコンポーネン
トとして定義されている。そこで、JVM354が実施される。リモートジャバ
(JAVA登録商標)仮想マシン356を有するカーネル355がJVM354
にレーヤードされる。後述するカーネル355は、クラスター化エンタープライ
ズジャバ(JAVA登録商標)分散処理システムにおいて処理装置の間にメッセ
ージを転送するのに使用される。リモートメソッド呼出し357およびエンター
プライズジャバ(JAVA登録商標)ビーン358は、カーネル355の上方ソ
フトウエア層である。EJB358は、種々なジャバ(JAVA登録商標)アプ
リケーションのためのコンテナである。
【0057】 図3bは、図3aに例示したカーネル355の詳細を例示している。カーネル
355は、ソケットマネージャコンポーネント363、スレッドマネージャ36
4コンポーネント、およびRJVM356を含む。RJVM356は、メッセー
ジルーティングソフトウエアコンポーネント360、短縮テーブルを含むメッセ
ージ圧縮ソフトウエアコンポーネント361、およびピア中断検出ソフトウエア
コンポーネント362を含むデータ構造である。RJVM356およびスレッド
マネージャコンポーネント364は、処理装置の間でデータを転送するため、ソ
ケットマネージャコンポーネント363と対話する。
【0058】 B.分散処理システム 図3は、クラスター化エンタープライズジャバ(JAVA登録商標)分散処理
システム300の簡単化したブロック図を例示している。処理装置は、通信媒体
301に結合されている。通信媒体301は、ワイヤドおよび/またはワイヤレ
ス通信媒体、またはそれらの組合体でありうる。一つの実施例においては、通信
媒体301は、ローカルエリアネットワーク(LAN)である。別の実施例では
、通信媒体301は、インターネットまたはワールドワイドウエブの如きワール
ドエリアネットワーク(WAN)である。さらに別の実施例では、通信媒体30
1は、LANおよびWANの両者である。
【0059】 種々な異なるタイプの処理装置が通信媒体301に結合されうる。一つの実施
例では、処理装置は、図8に例示した後述されるような汎用コンピュータ100
でありうる。当業者には理解できるように、図8およびその説明は、異なるソフ
トウエアおよびハードウエアコンフィギュレーションを有した複数の他の型の処
理装置が本発明の一実施例にしたがって使用されうるような特定のタイプの処理
装置を示している。別の実施例では、処理装置は、プリンタ、携帯コンピュータ
、ラップトップコンピュータ、スキャナ、セルラーフォン、ページャー、または
それらの等価物でありうる。
【0060】 図3cは、サーバ302および303が通信媒体301に結合されている本発
明の一実施例を例示している。サーバ303は、また、通信媒体301に関して
前述したような類似の実施例を有し得る通信媒体305に結合されている。クラ
イアント304もまた、通信媒体305に結合されている。別の実施例では、ク
ライアント304は、図3cにおいて点線およびボックスによって例示したよう
に通信媒体301に結合されうる。理解されるように、別の実施例では、サーバ
302は、(1)クライアントおよびサーバの両者であり、または(2)クライ
アントである。同様に、図3は、3つの処理装置が示されているような実施例を
例示しており、本発明の他の実施例では、楕円によって例示されるように複数の
他の処理装置または通信媒体を含む。
【0061】 サーバ302は、それぞれネットワークソフトウエア302aおよびネットワ
ークソフトウエア303aを使用することにより、通信媒体301を介して情報
をサーバ303へと転送する。一つの実施例では、ネットワークソフトウエア3
02a、303a、および304aは、通信媒体ソフトウエアドライバ351、
送信コントロールプロトコルソフトウエア353、およびインターネットプロト
コルソフトウエア352(TCP/IP)を含む。クライアント304は、また
、通信媒体305を介して上方をサーバ303へ転送するためのネットワークソ
フトウエア304aを含む。サーバ303におけるネットワークソフトウエア3
03aは、また、通信媒体305を通してクライアント304へ情報を転送する
のにも使用される。
【0062】 本発明の一つの実施例によれば、クラスター化エンタープライズジャバ(JA
VA登録商標)アーキテクチャー300における各処理装置は、マルチ・ティア
ーおよびピア・トゥ・ピア機能の両者を支援するメッセージパッシングカーネル
355を含む。カーネルは、処理装置に関する他のソフトウエアプログラムに対
して基本的サービスを提供するのに仕様されるソフトウエアプログラムである。
【0063】 詳細には、サーバ302、サーバ303、およびクライアント304は、それ
ぞれカーネル302b、303L、および304bを有する。詳細には、2つの
JVMが対話するために、それらがクライアントまたはサーバであるならば、各
JVMは、他方を表すRJVMを構成する。メッセージは、一方の側の上方層か
ら対応するRJVMを通して通信媒体を介してピアRJVMを通して送られ、他
方の側の上方層へと送付される。種々な実施例では、メッセージは、これには限
定されないが、送信コントロールプロトコル/インターネットプロトコル(TC
P/IP)、セクアソケットレーヤー(SSL)、ハイパーテキストトランスポ
ートプロトコル(HTTP)トンネリング、およびインターネットインテルOR
Bプロトコル(IIOP)トンネリング、およびそれらの組合体を含む種々異な
るプロトコルを使用して転送されうる。RJVMおよびソケットマネージャは、
これらのプロトコルに基づくソケットを生成し維持し、それらを上方層における
すべてのオブジェクトの間で共用する。ソケットは、分散処理システムにおける
処理装置の間のターミナルを表す論理的場所である。カーネルは、実行スレッド
のプールを維持し、スレッドマネージャソフトウエアコンポーネント364は、
ソケット読み出しおよびリクエスト実行の間でスレッドを多重化する。
【0064】 例えば、サーバ302は、JVM1およびジャバ(JAVA登録商標)アプリ
ケーション302cを含む。サーバ302は、サーバ303のJVM2を表すR
JVM2を含む。もし、メッセージがサーバ302からサーバ303へ送られる
べき場合には、そのメッセージは、サーバ303におけるRJVM1へサーバ3
02におけるRJVM2を通して送られる。
【0065】 C.メッセージ送り クラスター化エンタープライズジャバ(JAVA登録商標)ネットワーク30
0は、中間サーバを介してメッセージを送ることができる。この機能は、クライ
アントがフロントエンドゲートウエイを通してバックエンドサーバからのサービ
スを要求する場合に重要である。例えば、サーバ302(クライアント302)
からのメッセージ、特に、JVM1は、サーバ303(フロントエンドゲートウ
エイ)またはJVM2を介してクライアント304(バックエンドサーバ(30
4)またはJVM3へ送られ得る。この機能は、セッション集中を制御し、また
はサーバと多くのクライアントとの間にどのくらいの数の接続が確立されるかを
制御する上で重要である。
【0066】 さらに、メッセージ送りは、2つのJVMの間にソケットが生成され得ないよ
うな環境において使用されうる。例えば、メッセージのセンダーは、元のサーバ
に対するソケットが生成され得ないようなアプレットセキュリティモデルの下で
稼働する。アプレットセキュリティモデルの詳細な説明は、引用によりここに組
み込まれるhttp//:www.javasoft.com.にて提供されている。別の実施例は、メッ
セージのレシーバがファイアウオールの背後にある時を含む。また、後述するよ
うに、メッセージ送りは、センダーがクライアントでありレシーバがクライアン
トであり、したがって、入来ソケットを受け入れない場合に適用しうるものであ
る。
【0067】 例えば、もし、メッセージがサーバ302からクライアント304へ送られる
場合には、そのメッセージは、サーバ303を通してルーティングされねばなら
ない。詳細には、RJVM3(クライアント304を表す)の間で302fによ
って例示されるように、メッセージハンドオフは、サーバ302におけるRJV
M2(サーバ303を表す)に対してなされる。そのメッセージは、サーバ30
2におけるRJVM2とサーバ303におけるRJVM1の間でソケット302
aを使用して転送される。メッセージは、点線303fによって例示されるよう
に、RJVM1からサーバ303におけるRJVM3へとハンドオフされる。そ
の時、メッセージは、サーバ303におけるRJVM3のソケットとクライアン
トにおけるRJVM2との間に通される。それから、メッセージは、点線304
fによって例示されるように、クライアント304におけるRJVM2からクラ
イアント304におけるRJVM1へと通される。
【0068】 D.再ルーティング クライアント/サーバにおけるRJVMは、いつでも他のRJVMに対して通
信路または通信媒体を切り替えることができる。例えば、もし、クライアント3
04がサーバ302に対する直接ソケットを生成する場合には、サーバ302は
、サーバ303を通してメッセージを送る代わりに、ソケットを使用して開始す
ることができる。この実施例は、クライアント304を表す点線およびボックス
によって例示されている。一つの実施例では、RJVMによるメッセージ送りを
使用することにより、ネットワーク再構成後の順番でのメッセージ送付を信頼性
のあるものとすることができる。例えば、クライアント304が図3に例示した
ような通信媒体305に代わる通信媒体301に対して再構成される場合である
。別の実施例では、メッセージは、順番に送付されない。
【0069】 RJVMは、ルーティングを通して実行されるいくつかのエンドツーエンドオ
ペレーションを行う。最初に、RJVMは、各クライアント/サーバが突然停止
したときを検出する責任を負う。一つの実施例では、図3bに例示したように、
ピア中断選択ソフトウエアコンポーネント362がこの機能の責任を負う。ある
実施例では、RJVMは、所定の時間期間にて他のメッセージが送られなかった
時に、心拍メッセージを他のクライアント/サーバへ送る。もし、クライアント
/サーバが所定のカウント時間において心拍メッセージを受け取らない場合には
、その心拍メッセージを送るべきであった故障クライアント/サーバが検出され
る。ある実施例では、故障クライアント/サーバは、接続タイムアウトによって
検出され、または、その故障クライアント/サーバが所定の時間内にメッセージ
を受け取らなかったことによって検出される。
【0070】 第二に、メッセージ直列化中に、RJVM、特に、メッセージ圧縮ソフトウエ
ア360は、メッセージサイズを減ずるため送信されたデータ値を共通に短縮す
る。これを行うため、各JVM/RJVMペアは、マッチング短縮テーブルを維
持する。例えば、JVM1は、短縮テーブルを含み、RJVM1は、マッチング
短縮テーブルを含む。中間サーバの間でのメッセージ送り中に、メッセージの本
体は、ルートにおける中間サーバに関して直列化を解かれていない。E.マルチ・ティアー/ピア・トゥ・ピア機能 クラスター化エンタープライズJava登録商標アーキテクチャ300は、マ
ルチ・ティアーおよびピア・トゥ・ピアプログラミングを可能にする。
【0071】 クラスター化エンタープライズJava登録商標アーキテクチャ300は、マ
ルチ・ティアー分散処理アーキテクチャと一致した、クライアント/サーバプロ
グラミングのための、明確なシンタクス(syntax)をサポートする。一例として
、以下のクライアントサイドのコードフラグメントは、情報メッセージを、サー
バのログファイルに書き込む: T3Client clnt = new T3Client{"t3://acme:7001"}; LogServices log = clnt.getT3Services().log(); log.info("Hello from a client"); 1行目は、t3プロトコルを使用して、acmeサーバとのセッションを確立する
。RJVMがまだ存在しない場合、各JVMは、他方のためにRJVMを構築し
、および基底TCPソケットが確立される。このセッションのクライアントサイ
ドの表示−T3Clientオブジェクト−およびサーバサイドの表示は、これらのRJ
VMを通して通信する。サーバサイドは、データベースアクセス、リモートファ
イルアクセス、ワークスペース、イベント、およびロギングを含む、様々なサー
ビスをサポートする。2行目は、LogServerオブジェクトを含み、および3行目
はメッセージを書く。
【0072】 クラスター化エンタープライズJava登録商標コンピュータアーキテクチャ
300はまた、ピア・トゥ・ピア分散処理アーキテクチャに一致する、サーバ中
立シンタクスもサポートする。一例として、以下のコードフラグメントは、サー
バ上に、JNDIコンプライアント(JNDI-compliant)なネーミングサービスか
らの、RMIオブジェクトに関するスタブ(stub)を含み、およびその方式の一
つを呼び出す; Hashtable env = new Hashtable(); env.put(Context.PROVIDER_URL,"t3://acme:7001"); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WebLogicInitialContextFactory"); Context ctx = new InitialContext(env); Example e = (Example)ctx.lookup("acme.eng.example"); result=e.example(37); 一つの実施形態において、JNDIネーミングコンテクストは、リモートアク
セスを実行するために、RMIオブジェクトとしてパーッケージされる。このよ
うに、上述のコードは、一種のRMIブートストラッピング(boot-strapping)
を示す。最初の4行は、アクメサーバ上の初期コンテクストに関するRMIスタ
ブを含む。RJVMがまだ存在しない場合、各サイドは、他方のためにRJVM
を構築し、およびt3プロトコルに関する基底TCPソケットが確立される。呼
び出しサイドオブジェクト−RMIスタブ−および呼び出されサイドオブジェク
ト−RMI.impl−は、RJVMを通して通信する。5行目は、他のRMIオブジェ
クト、Exampleを、acme.eng.Exampleと言う名前において検索し、および6行目
は、前記Example方式の一つを呼び出す。一つの実施形態において、Example im
plはネーミング・サービスと同じ処理装置上にはない。他の実施形態において、
Example implはクライアント上にある。Exampleオブジェクトの呼び出しは、そ
れらがまだ存在しない場合に、適切なRJVMの生成へと導く。 II.複製アウェア(replica-aware)またはスマートスタブ(smart stub)/
EJBオブジェクト 図3cにおいて、処理装置は、RMIおよび/またはEJBオブジェクトを複
製することによって、アーキテクチャ300における他の処理装置にサービスを
供給することができる。このように、アーキテクチャ300は、容易にスケール
することができ、および故障許容がある。付加的サービスは、現存する処理装置
または新たに付加された処理装置に、複製されたRMIおよび/またはEJBオ
ブジェクトを付加することによって、アーキテクチャ300に、容易に加えられ
てもよい。さらに、RMIおよび/またはEJBオブジェクトは、アーキテクチ
ャ300全体に複製されうるので、単一の処理装置、複数の処理装置、および/
または通信媒体は、障害を起こすかもしれないし、アーキテクチャ300を操作
不能にまたは明らかに劣化させないかもしれない。
【0073】 図5aは、アーキテクチャ500における複製アウェア(“RA”)またはス
マートスタブ580を示す。アーキテクチャ500は、通信媒体501に結合さ
れたクライアント504を含む。サーバ502および503は、それぞれ通信媒
体501に結合されている。持続記憶装置509は、それぞれ通信媒体560お
よび561によって、サーバ502および503に結合される。様々な実施形態
において、通信媒体501、560、および561は、上述の通り、ワイヤドま
たはワイヤレス通信媒体でもよい。同様に、ある実施形態において、クライアン
ト504、サーバ502、およびサーバ503は、上述の通り、クライアントお
よびサーバの両方でもよい。通常の当業者は、別の実施形態において、複数の他
のサーバおよびクライアントが、楕円で示されたとおり、アーキテクチャ500
に含まれてもよい。また、上述のとおり、別の実施形態において、クライアント
504、サーバ502、およびサーバ503のハードウェアおよびソフトウェア
・コンフィギュレーションは、後述され、図8に記載されている。
【0074】 RA RMIスタブ580は、サービス・プロバイダのすべてを探し出し、お
よびそれらの間で、負荷バランシング方式507および/または故障回復方式5
08に基づいて切り替えることができる、スマートタブである。ある実施形態に
おいて、RAスタブ580は、適切な負荷バランシング方式507および/また
は故障回復方式507を選択する複製ハンドラ506を含む。別の実施形態にお
いて、単一の負荷バランシング方式および/または単一の故障回復方式が実行さ
れる。別の実施形態において、複製ハンドラ506は、複数の負荷バランシング
方式および/または複数の故障回復方式およびそれらの組み合わせを含んでもよ
い。ある実施形態において、複製ハンドラ506は、以下のインターフェースを
実行する: public interface ReplicaHandler{ Object loadBalance(Object currentProvider)throws RefreshAbortedException; Object failOver(Object failedProvider, RemoteException e)throws RemoteException; } 一つの方式を呼び出す直前に、RAスタブ580は、負荷バランス方式507
を呼び出し、それは現在のサーバを取って、置き換え(replacement)を戻す。
例えば、クライアント504は、データベース509aまたはパーソナル記憶装
置509に関して、データを検索するために、サーバ502を使用していてもよ
い。サーバ502は、サービス要求で過負荷(overloaded)にされているので、
負荷バランス方式507は、サーバ503に切り替えてもよい。ハンドラ506
は、おそらくサーバ502負荷に関する情報を使用して、完全に呼び出し側にサ
ーバ置き換えを選択してもよく、またはハンドラ506は、特定の種類のデータ
を検索するように、サーバ502に要求してもよい。例えば、ハンドラ506は
、前記サーバが、向上した計算能力を有するので、方程式を計算するための特定
のサーバを選択してもよい。ある実施形態において、複製ハンドラ506は、生
成される接続の数を最小化するように努めるので、すべての呼び出しに対して、
実際にはプロバイダを切り替える必要はない。
【0075】 図6aは、図5a乃至bに記載の負荷バランシングソフトウェア507を示す
、制御フローダイアグラムである。図6aは、負荷バランシング方式507にお
けるソフトウェアによって達成される機能またはステップの論理的シーケンスを
示す、制御フローダイアグラムであることが理解される。別の実施形態において
、付加的機能またはステップが達成される。さらに他の実施形態において、ハー
ドウェアは、特定の機能またはすべての機能を実行してもよい。
【0076】 負荷バランシングソフトウェア507は、円600で示されたとおりに始まる
。呼び出しスレッド(calling thread)が、特定のサーバに関して「類縁性」を
確立したかについて、論理ブロック601において決定される。クライアントは
、その現在のトランザクションを調整するサーバに対して類縁性を有し、サーバ
は、自らに対して類縁性を有する。類縁性が確立されると、制御は論理ブロック
602に渡され、そうでなければ、論理ブロック604に渡される。前記類縁性
サーバが、要求されたサービスを提供するか、論理ブロック602で決定される
。そうであれば、制御は論理ブロック603に渡される。そうでなければ、制御
は論理ブロック604に渡される。前記類縁性サーバ上のサービスのプロバイダ
は、論理ブロック603において、前記クライアントに戻される。論理ブロック
604において、ネーミングサービスがコンタクトされ、現在のサービスプロバ
イダの更新されたリストが得られる。getNextProvider方式は、論理ブロック6
05において、サービスプロバイダを入手するために呼び出される。getNextPro
vider方式の様々な実施形態が、図6b乃至gに図示され、詳細は後述される。
前記サービスは、論理ブロック606で入手される。故障回復方式508は、サ
ービスが論理ブロック606において供給されない場合に呼び出され、および負
荷バランシング方式507は、論理ブロック608で示されたとおり、存在する
。故障回復方式508の実施形態は、図7に記載されており、詳細は後述される
【0077】 図6b乃至gは、図6aの論理ブロック605において使用されるgetNextPro
vider方式の様々な実施形態を示す。図6bに記載のとおり、getNextProvider方
式は、ラウンドロビン方式で、サービスプロバイダを選択する。getNextProvide
r方式620は、円621で記載されたとおりに始まる。現在のサービスプロバ
イダのリストは、論理ブロック622において入手される。ポインタは、論理ブ
ロック623で増大する。次のサービスプロバイダは、論理ブロック624にお
けるポインタに基づいて選択され、および新しいサービスプロバイダは、論理ブ
ロック625で戻され、およびgetNextProvider方式620は、円626で記載
のとおり、存在する。
【0078】 図6cは、サービスプロバイダを無作為に選択することによって、サービスプ
ロバイダを入手する、getNextProvider方式の別の実施形態を示す。getNextProv
ider方式630は、円631によって示されたとおりに始まる。現在のサービス
プロバイダのリストは、論理ブロック632によって記載のとおり、入手される
。次のサービスプロバイダは、論理ブロック633によって記載のとおり、無作
為に選択され、新しいサービスプロバイダは、論理ブロック634において戻さ
れる。getNextProvider方式630は、円635に記載されたとおり、存在する
【0079】 getNextProvider方式の、さらに他の実施形態は、図6dに記載されており、
それは前記サービスプロバイダの負荷に基づいて、サービスプロバイダを入手す
る。getNextProvider方式640は、円641によって記載のとおりに始まる。
現在のサービスプロバイダのリストは、論理ブロック642において入手される
。各サービスプロバイダの負荷は、論理ブロック643において入手される。最
小の負荷を有するサービスプロバイダは、論理ブロック644において選択され
る。新しいサービスプロバイダは、論理ブロック645において戻され、getNex
tProvider方式640は、円646によって記載のとおり、存在する。
【0080】 getNextProvider方式の他の実施形態は、図6eに記載されており、それは前
記サービスプロバイダから入手されたデータの種類に基づいて、サービスプロバ
イダを入手する。getNextProvider方式650は、円651によって記載のとお
りに始まる。現在のサービスプロバイダのリストは、論理ブロック652におい
て入手される。前記サービスプロバイダから要求されたデータの種類は、論理ブ
ロック653において決定される。サービスプロバイダは、論理ブロック654
において、データの種類に基づいて選択される。サービスプロバイダは、論理ブ
ロック655において戻され、getNextProvider方式650は、円656に記載
のとおり、存在する。
【0081】 getNextProvider方式のさらに他の実施形態は、図6fに記載されており、そ
れは前記サービスプロバイダの物理的場所に基づいて、一つのサービスプロバイ
ダを選択する。getNextProvider方式660は、円661によって記載のとおり
に始まる。サービスプロバイダのリストは、論理ブロック662によって記載の
とおり、入手される。各サービスプロバイダまでの物理的な距離は、論理ブロッ
ク663において決定され、および要求しているクライアントまで、最も近い物
理的距離を有するサービスプロバイダが、論理ブロック664において選択され
る。新しいサービスプロバイダは、論理ブロック665で戻され、およびgetNex
tProvider方式660は、円666によって記載のとおり、存在する。
【0082】 getNextProvider方式のさらに他の実施形態は、図6gに記載されており、前
記サービスプロバイダが、以前の要求に応答するためにかかった時間の合計に基
づいて、サービスプロバイダを選択する。getNextProvider方式670の制御は
、円671によって記載のとおりに始まる。現在のサービスプロバイダのリスト
は、論理ブロック672において入手される。各サービスプロバイダが、特定の
メッセージに応答するための時間間隔は、論理ブロック673で決定される。最
短の時間間隔で応答するサービスプロバイダが、論理ブロック674で選択され
る。新しいサービスプロバイダは、論理ブロック675で戻され、getNextProvi
der方式670からの制御は、円676によって記載のとおり、存在する。
【0083】 サービス方式の呼び出しが、再試行が保証されるような方法で故障した場合、
RA580スタブは、故障回復方式508を呼び出し、それは故障したサーバお
よび前記故障が何であったかを示す例外を取り、および再試行のために新しいサ
ーバを戻す。新しいサーバが入手不可能である場合、RAスタブ580は、例外
を投げる。
【0084】 図7は、図5a乃至bに記載された故障回復ソフトウェア508を示す、制御
フローチャートである。故障回復方式508は、円700によって記載のとおり
始まる。現在のサービスのプロバイダのリストから、故障したプロバイダが、論
理ブロック701において除去される。getNextProvider方式は、サービスプロ
バイダを入手するために、呼び出される。新しいサービスプロバイダが、論理ブ
ロック703において戻され、および故障回復方式508は、円704によって
記載のとおり存在する。
【0085】 図6乃至7は、複製ハンドラ506の実施形態を示す一方で、別の実施形態は
、ラウンドロビン方式で実行される、以下の機能またはそれらの組み合わせを含
む。
【0086】 第一に、サービスのサーバまたはサービスプロバイダのリストが維持される。
前記リストが使用される必要があり、および前記リストが最近更新されていなか
った場合はいつも、ハンドラ506は、後述のとおり、ネーミングサービスにコ
ンタクトし、プロバイダの最新のリストを入手する。
【0087】 第二に、ハンドラ506が、前記リストからプロバイダを選択しようとし、最
終の心拍期間(heartbeat period)中に、メッセージが受信されなかったホス
ティングサーバへの、現存するRJVMレベルの接続がある場合、ハンドラ50
6は、前記プロバイダを省略する。一つの実施形態において、いくつかの心拍期
間の後で、デスオブピア(death of peer)が決定されるので、サーバは後で
回復してもよい。こうして、サーバ負荷に基づいた、負荷バランシングが得られ
る。
【0088】 第三に、プロバイダが故障した場合、ハンドラ506は前記プロバイダを前記
リストから除去する。これは、非稼動サービスプロバイダを使用するための、反
復した試みによって生じる遅延を回避する。
【0089】 第四に、サービスが、前記サービスのプロバイダをホストするサーバから呼び
出されている場合、そのプロバイダが使用される。これは、サービスの連鎖した
呼び出しに関して、プロバイダのコロケーション(colocation)を容易にする。
【0090】 第5に、サービスが、トランザクションの範囲内から呼び出されており、およ
びトランザクションコーディネータ(transaction coordinator)として機能し
ているサーバが、前記サービスのプロバイダをホストする場合、そのプロバイダ
が使用される。これは、トランザクション内におけるプロバイダのコロケーショ
ンを容易にする。
【0091】 方式呼び出し中に生じうる故障は、(1)アプリケーション関連のもの、また
は(2)インフラストラクチャ関連のもののいずれかとして、分類されてもよい
。問題が改善する例外はありえないので、RAスタブ580は、アプリケーショ
ン関連の故障の場合には、オペレーションを再試行しないであろう。インフラス
トラクチャ関連の故障の場合、RAスタブ580は、そのオペレーションを安全
に再試行することができるかもしれないし、できないかもしれない。データベー
スにおけるフィールドの値を増大させる等、初期非冪等オペレーションは、完了
しているかもしれない。一つの実施形態において、RAスタブ580は、(1)
ユーザが、サービス方式が冪等であることを宣言した場合、または(2)システ
ムが、要求の処理を決して開始しないと決定することができる場合にのみ、イン
フラストラクチャの故障の後、再試行するであろう。後者の一例として、RAス
タブ580は、負荷バランシング方式の一部として、スタブ580が、故障した
ホストを有するサービスプロバイダに切り替える場合、再試行するであろう。他
の例として、RAスタブ580は、それがトランザクションのオペレーションへ
の、否定的な認識を得る場合に、再試行するであろう。
【0092】 RMIコンパイラは、オブジェクトに関するRAスタブを生成するように、コ
ンパイラに命令する特殊フラグを認識する。サービス方式が冪等であることを特
定するための付加的フラグが、使用されうる。一つの実施形態において、RAス
タブ580は、上述の、および図5aに記載の複製ハンドラを使用するであろう
。異なるハンドラを特定するために、付加的フラグが使用されてもよい。さらに
、サービスが展開され、すなわち、後述のとおり、クラスター化ネーミングサー
ビスへと束ねられる点で、前記ハンドラはオーバーライド(overridden)されて
もよい。
【0093】 図5bは、図5aに記載のとおり、スタブの代わりにEJBオブジェクト55
1が使用される、本発明の他の実施形態を示す。
【0094】 III.複製された、JNDIコンプライアントなネーミングサービス 図4に記載のとおり、アーキテクチャ400におけるサービスプロバイダへの
アクセスは、JNDIコンプライアントなネーミングサービスを通して得られ、
それは故障の点が一つもないように、アーキテクチャ400全体に複製される。
従って、JNDIコンプライアントなネーミングサービスを提供する処理装置が
故障した場合、複製されたネーミングサービスを有する他の処理装置が使用可能
である。サービスのインスタンスを提供するために、サーバは、複製されたネー
ミングツリーで、特定のノードにおけるサービスのプロバイダを広告する。一つ
の実施形態において、各サーバは、前記ネーミングツリーのサーバのコピーにお
ける前記ノードに記憶された、互換性のあるサービスプールへ、前記プロバイダ
に関するRAスタブを加える。新しい提供の種類が、現存するプールにおける提
供の種類と互換性がない場合、新しい提供は保留され、およびConflictHandler
インターフェースを通してコールバックされる。いずれかの種類の提供が取り消
された後、他方は最終的に、どこにでもインストールされるであろう。クライア
ントが前記サービスを検索する時、前記クライアントは、サービスプロバイダの
、前記クライアントのリストを更新するために、前記サービスプールにコンタク
トするRAスタブを得る。
【0095】 図4は、アーキテクチャ400における複製されたネーミングサービスを示す
。一つの実施形態において、サーバ302および303は、それぞれexampleサ
ービスプロバイダP1およびP2を示し、それぞれネーミングサービスツリー4
02および403の複製を有する。ネーミングサービスツリー402および40
3におけるノードacme.eng.exampleは、それぞれサービスプール402aおよび
403aを有し、ExampleサービスプロバイダP1およびP2への参照を含む。
クライアント304は、acme.eng.exampleノードにおいてネーミングサービス検
索をすることによって、RAスタブ304eを含む。スタブ304eは、利用可
能なサービスプロバイダへの参照の現在のリストを入手するために、サービスプ
ールのインスタンスに接続する。スタブ304eは、負荷バランシングおよび故
障回復のために必要であれば、サービスプールの前記インスタンス間で切り替え
てもよい。
【0096】 ネーミングサービスの初期コンテクストに関するスタブは、ネーミングサービ
スプロバイダの間で最初に負荷バランスをし、および故障の場合に切り替えをす
る、複製アウェア又はスマートスタブである。前記ネーミングサービスツリーの
各インスタンスは、現在のネーミングサービスプロバイダの完全なリストを含む
。前記スタブは、それが現在使用しているインスタンスから、新しいリストを入
手する。この処理をブートストラップするために、本システムは、インスタンス
の(潜在的に不完全な)初期リストを探すために、ドメインネーミングサービス
(“DNS”)を使用し、それらのうちの一つから、完全なリストを入手する。
一例として、前記ネーミングサービスの初期コンテクストに関するスタブは、以
下のとおり、入手されうる: Hashtable env = new Hashtable(); env.put(Context.PROVIDER_URL,"t3://acmeCluster:7001"); env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WebLogicInitialContextFactor"); Context ctx = new InitialContext(env); アーキテクチャにおけるサーバの、あるサブセットは、acmeClusterの名の下
に、DNSへと束ねられていた。さらに、アプリケーションは、個別のサーバの
アドレスを特定することができるが、そのアプリケーションは、最初にスタブを
入手しようと試みる時に、単一の故障点を有するであろう。
【0097】 信頼性のあるマルチキャストプロトコルが望ましい。ある実施形態において、
プロバイダスタブは分散され、および複製されたネーミングツリーは、IPマル
チキャスト又はポイントツーポイントプロトコルによって作成される。IPマル
チキャストの実施形態において、三種類のメッセージ:心拍、アナウンスメント
(Announcements)、およびStateDumpsがある。心拍は、サーバ間に情報を運搬
するため、およびそれらがないことによって、故障したサーバを識別するために
使用される。アナウンスメントは、一組の、サービスの提供および取り消しを含
む。各サーバからのアナウンスメントは、順番に番号をつけられる。各レシーバ
は、失われたアナウンスメントを識別するために、アナウンスメントを処理する
。各サーバは、それが送信した最後のアナウンスメントのシーケンス番号を、そ
の心拍に含む。失われたアナウンスメントに対するネガティブ・アクノレッジメ
ント(“NAKs”)は、その後の外向きの心拍に含まれる。NAKを処理する
ために、各サーバは、サーバが送信した最後のいくつかのアナウンスメントのリ
ストを維持する。NAKが、削除されたアナウンスメントに到達すると、前記サ
ーバは、StateDumpを送信し、それはサーバのサービスの完全なリストおよびそ
の次のアナウンスメントのシーケンス番号を含む。新しいサーバが、現存するア
ーキテクチャに加わると、各他のサーバからの第一のメッセージに対する新しい
サーバNAKは、送信されているStateDumpsという結果を生む。サーバが、予め
決められた時間間隔の後で、他のサーバから心拍を受け取らない場合、前記サー
バは、心拍を生成していないサーバによって提供されたすべてのサービスを取り
消す。
【0098】 IV.プログラミング・モデル 図3乃至5に記載のアーキテクチャにおいて使用されるアプリケーションは、
三つの基本プログラミング・モデル;(1)ステートレス又はダイレクト、(2
)ステートレスファクトリ又はインダイレクト、又は(3)ステートフル又はタ
ーゲテッドの一つを、前記アプリケーション状態が扱われるべき方法に基づいて
、使用する。ステートレスモデルにおいて、ネーミングサービス検索によって戻
されるスマートスタブは、サービスプロバイダを直接参照する。
【0099】 Example e = (Example)ctx.lookup("acme.eng.example"); result1 = e.example(37); result2 = e.example(38); この例において、exampleへの二つの呼び出しは、スマートスタブが、負荷バ
ランシングのために、それらの間で切り替えることができるので、異なるサービ
スプロバイダによって扱われてもよい。このようにExapmpleサービスオブジェク
トは、前記アプリケーションのために、内部に情報を記憶することができない。
典型的には、前記ステートレスモデルは、前記プロバイダがステートレスである
場合にのみ使用される。一例として、純粋なステートレスプロバイダは、その引
き数の数学的な関数を計算し、その結果を戻してもよい。ステートレスプロバイ
ダは、例えば会計の目的等、自らのために情報を記憶してもよい。より重要なこ
とは、ステートレスプロバイダは、基底の持続記憶装置にアクセスしてもよく、
および必要であれば、アプリケーション状態をメモリにロードしてもよいことで
ある。例えば、引き数として、それに渡されるすべての値のランニング合計を戻
すためのexampleのため、exampleは、データベースから前の合計を読み取り、そ
の現在の引き数に加え、新しい値を書き込み、およびそれを戻してもよい。この
ステートレスサービスモデルは、スケーラビリティ(scalabitily)を促進する
【0100】 ステートレスファクトリプログラミングモデルにおいて、前記検索によって戻
されるスマートスタブは、所望のサービスプロバイダを作るファクトリであり、
それ自身ではスマートスタブではない。
【0101】 ExampleFactory gf = (ExampleFactory) ctx.lookup("acme.eng.example"); Example e = gf.create(); result1 = e.example(37); result2 = e.example(38); この例において、exampleへの二つの呼び出しは、同じサービスプロバイダに
よって扱われることが保証される。前記サービスプロバイダは、アプリケーショ
ンのために、情報を安全に保存するかもしれない。ステートレスファクトリモデ
ルは、呼び出し側が、プロバイダとの「会話」に関与する必要がある時に、使用
されるであろう。例えば、呼び出し側およびプロバイダが、相互の交渉に関与し
ているかもしれない。複製アウェアスタブは、通常はステートレスおよびステー
トレスファクトリモデルにおいて同じであり、唯一の違いは、スタブが、サービ
スプロバイダを参照するか、又はサービスプロバイダファクトリを参照するかで
ある。
【0102】 プロバイダファクトリスタブは、このオペレーションが冪等であるので、プロ
バイダを作成するための試みにおいて、自由に故障回復してよい。さらに、間接
的なサービスの利用可能性を向上させるために、アプリケーションコードは、サ
ービス作成および呼び出しについての、明白な再試行ループを含まなければなら
ない。
【0103】 while (true) { try{ Example e = gf.create(); result1 = e.example(37); result2 = e.example(38); break; }catch (Exception e){ if (!retry Warranted(e)) throw e; } } これは、例えば、ファクトリによってうまく作成されたプロバイダeの故障を
扱うであろう。この場合、アプリケーションコードは、非冪等オペレーションが
完了したか、決定する。さらに利用可能性を向上させるために、アプリケーショ
ンコードは、そのようなオペレーションを取り消して、再試行するよう試みても
よい。
【0104】 ステートフルプログラミングモデルにおいて、サービスプロバイダは、独自の
システムワイドなキーによって識別される、長命で、ステートフルなオブジェク
トである。このモデルを使用してアクセスされてもよい「エンティティ」の例は
、データベーステーブルにおけるリモートファイルシステムおよび列を含む。対
象となるプロバイダは、各プロバイダが、一つのクライアントによって1回使用
される、他の二つのモデルとは異なり、多くのクライアントによって、何回もア
クセスされてもよい。対象となるプロバイダに対するスタブは、前記キーが、単
にネーミングサービス名である直接検索によって、又は前記キーが、作成オペレ
ーションへの引き数を含むファクトリを通して入手されうる。いずれの場合も、
スタブは、負荷バランシング又は故障回復をしない。あるとすれば、再試行は、
前記スタブを明確に再度入手しなければならない。
【0105】 EJBには、三種類のビーンズがあり、その各々は、三つのプログラミングモ
デルの一つにマッピングする。ステートレスセッションビーンズは、特定の呼び
出し側のために作成されるが、呼び出しの間に、内部状態を維持しない。ステー
トレスセッションビーンズは、ステートレスモデルにマッピングする。ステート
フルセッションビーンズは、特定の呼び出し側のために作成され、呼び出しの間
に内部状態を維持する。ステートフルセッションビーンズは、前記ステートレス
ファクトリモデルにマッピングする。エンティティビーンズは、システムワイド
なキーによって識別される、単一の、ステートフルオブジェクトである。エンテ
ィティビーンズは、前記ステートフルモデルにマッピングする。三種類すべての
ビーンズは、EJBホームと称されるファクトリによって作成される。一つの実
施形態において、それらが作成するEJBホームおよびビーンズの両方は、RM
Iを使用して参照される。図3乃至5に記載のアーキテクチャにおいて、EJB
ホームに関するスタブは、スマートスタブである。ステートレスセッションビー
ンズに関するスタブは、スマートスタブである一方で、ステートフルセッション
ビーンズおよびエンティティビーンズに関するスタブは、そうではない。EJB
に基づいたサービスのために使用する複製ハンドラは、その展開ディスクリプタ
において特定されうる。
【0106】 目的が、呼び出し側のために状態を維持することである場合に要求される、間
接的な、RMIに基づいたサービスを作成するために、アプリケーションコード
は、ファクトリを明確に構築しなければならない。対象となるRMIに基づいた
サービスは、特殊フラグはなく、RMIコンパイラをランさせ、それからその結
果のサービスを、複製されたネーミングツリーに束ねることによって、作成され
うる。前記オビジェクトに関するスタブは、ネーミングツリーの各インスタンス
に直接束ねられ、サービスプールは作成されない。これは、前記キーが、ネーミ
ングサービス名である、対象となるサービスを供給する。一つの実施形態におい
て、これはリモートファイルシステムを作成するために使用される。
【0107】 V.ハードウェアおよびソフトウェアコンポーネント 図8は、図3乃至5に記載された例示的なサーバおよび/またはクライアント
のハードウェアおよびソフトウェアコンポーネントを示す。図8に記載のシステ
ムは、LAN840およびWANへの、接続829等の一つ以上の通信媒体によ
って接続された、汎用コンピュータ800を含み、ここではインターネット88
0として示されている。LAN840を通して、コンピュータ800は、ファイ
ル・サーバ841等の他のローカルコンピュータと通信することができる。一つ
の実施形態において、ファイルサーバ801は、図3に記載のサーバ303であ
る。インターネット880を通して、コンピュータ800はワールドワイドウェ
ブサーバ881等、ローカルおよびリモートの両方で、他のコンピュータと通信
することができる。一つの実施形態において、ウェブサーバ881は、図3に記
載のサーバ303である。理解されるであろうとおり、コンピュータ800から
インターネット880への接続は、様々な方式、たとえば直接接続829を介し
て、又はローカルエリアネットワーク840を通して、又はモデム(図示されて
いない)によって作られうる。
【0108】 コンピュータ800は、例えば、ワークステーション、パーソナルコンピュー
タ、又は他の単一ユーザあるいはマルチユーザコンピュータシステムでもよい、
パーソナル又はオフィスコンピュータである;例示的な実施形態は、 Sun SPARC−20ワークステーション(Sun Microsystems, Inc., Mou
ntain View, CA)を使用する。説明のために、コンピュータ800は都合よく、
ハードウェアコンポーネント801およびソフトウェアコンポーネント802へ
と分割されうる;しかしながら、通常の当業者は、この分割は概念的であり、や
や任意であり、およびハードウェアとソフトウェアの間のラインは、ハードで速
いものではないことを理解するであろう。さらに、ホストコンピュータとその付
属の周辺装置との間のラインは、ハードで速いものではなく、特に、いくつかの
コンピュータの周辺装置と考えられるコンポーネントは、他のコンピュータの構
成部分であると考えられることが理解される。このように、例えば、ユーザI/
O820は、キーボード、マウス、およびディスプレイモニタを含むことができ
、その各々は、周辺装置またはコンピュータそのものの一部であると考えられ、
さらにローカルプリンタを含むことができ、それは典型的には周辺装置であると
考えられる。他の例として、持続記憶装置808は、CD−ROM(コンパクト
・ディスク読み取り専用メモリ)装置を含むことができ、それは周辺装置か、ま
たはコンピュータに組み込まれることができる。
【0109】 ハードウェアコンポーネント801は、プロセッサ(CPU)805、メモリ
806、持続記憶装置808、ユーザI/O820、およびバス810に結合さ
れているネットワークインターフェース825を含む。これらのコンポーネント
は、当業者によってよく理解され、それに従ってここでは簡単に説明されればよ
い。
【0110】 プロセッサ805は、例えば、マルチプロセッシングのために構成されたマイ
クロプロセッサまたはマイクロプロセッサの集まりでもよい。 読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、仮想メモ
リ、またはメモリ技術を単一で、またはそれらの組み合わせを含みうる。持続記
憶装置808は、例えば、磁気ハードディスク、フロッピディスク、または他の
持続読み取り−書き込みデータ記憶技術を、単一で、または組み合わせで含みう
る。それはさらに、CD−ROMまたは他の大容量記憶技術によって供給されう
るような、大容量またはアーカイバル(archival)記憶装置を含みうる。(ファ
イルサーバ841は、プロセッサ805が使用することができる付加的記憶能力
を供給することが注目される。) ユーザI/O(入力/出力)ハードウェア820は、典型的にはCRTまたは
フラットパネルディスプレイ等のビジュアルディスプレイモニタ、英数字キーボ
ード、およびマウスまたは他の位置決め装置を含み、任意でさらに、プリンタ、
光学スキャナ、またはユーザ入力および出力のための他の装置を含みうる。
【0111】 ネットワークI/Oハードウェア825は、コンピュータ800と外界との間
にインターフェースを供給する。より特定的には、ネットワークI/O825は
、プロセッサ805に、接続829を介して、LAN840およびインターネッ
ト880を通して、他のプロセッサおよび装置と通信させる。
【0112】 ソフトウェアコンポーネント802は、オペレーティングシステム850およ
びジャバ(JAVA登録商標)アプリケーションプログラム860等のオペレー
ティングシステム310の制御下での一組のタスク、および重要なことに、JV
Mソフトウェア354およびカーネル355を含む。オペレーティングシステム
310はまた、プロセッサ805に、持続記憶装置808、ユーザI/O820
、およびネットワークインターフェース825等、様々な装置を制御させる。プ
ロセッサ805は、オペレーティングシステム310、アプリケーション860
、JVM354およびカーネル355のソフトウェアを、メモリ806およびコ
ンピュータシステム800の他のコンポーネントとともに実行する。一つの実施
形態において、ソフトウェア802は、図3に記載のサーバ302に記載のとお
り、ネットワークソフトウェア302a、JVM1、RJVM2およびRJVM
3を含む。一つの実施形態において、ジャバ(JAVA登録商標)アプリケーシ
ョンプログラム860は、図3cに記載のとおり、ジャバ(JAVA登録商標)
アプリケーション302cである。
【0113】 通常の当業者は、図8に記載のシステムは、制限的なものではなくて、例示的
なものであり、幅広い計算、通信および情報装置が、図8に記載のものの代わり
にまたは付加的に使用されうることを、理解するであろう。例えば、インターネ
ット880を通した接続は通常、中間ルータコンピュータ(図示されていない)
によるパケット切り替えを伴い、通常のウェブクライアントセッションの間に、
コンピュータ800は、コンピュータ800およびウェブサーバ881を含むが
それらに限定されないウェブサーバのいくつにでもアクセスするであろう。
【0114】 本発明の好ましい実施形態の前述の説明は、図示と説明のために示されてきた
。それは完全なものではなく、あるいは開示された詳細な形式に本発明を限定す
るものではない。明らかに、多くの変更または変形が、当業者には明らかになる
であろう。本発明の原理および実践的なアプリケーションを最も良く説明するた
めに、前記実施形態が選ばれおよび説明され、それによって当業者は、様々な実
施形態に関して、および考えられる特定の使用に適した様々な変更で、本発明を
理解することができるであろう。本発明の範囲は、以下の特許請求の範囲および
それらに相当するものによって定義されるものである。
【図面の簡単な説明】
【図1a】 従来のクライアント/サーバアーキテクチャーを例示する図である。
【図1b】 従来のジャバ(JAVA登録商標)エンタープライズAPIを例示する図であ
る。
【図1c】 マルチ・ティアーアーキテクチャーを例示する図である。
【図2a】 従来のピア・トゥ・ピアアキテクチャーを例示する図である。
【図2b】 従来のトランザクション処理アーキテクチャーを例示する図である。
【図3a】 本発明の一実施例の簡単化されたソフトウエアブロック図を例示する図である
【図3b】 図3aに例示したカーネルの簡単化したソフトウエアブロック図を例示する図
である。
【図3c】 クラスター化エンタープライズジャバ(JAVA登録商標)ネーミングサービ
スアーキテクチャーを例示する図である。
【図4】 クラスター化エンタープライズジャバ(JAVA登録商標)ネーミングサービ
スアーキテクチャーを例示する図である。
【図5a】 スマートスタブアーキテクチャーを例示する図である。
【図5b】 EJBオブジェクトアーキテクチャーを例示する図である。
【図6a】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6b】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6c】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6d】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6e】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6f】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図6g】 負荷バランシングメソッドを例示するコントロールフローチャートである。
【図7】 故障回復メソッドを例示するコントロールフローチャートである。
【図8】 図3から図5に示すクラスター化エンタープライズジャバ(JAVA登録商標
)アーキテクチャーにおけるクライアント/サーバのハードウエアおよびソフト
ウエアコンポーネントを例示する図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,EE,ES,FI,GB ,GD,GE,GH,GM,HR,HU,ID,IL, IN,IS,JP,KE,KG,KP,KR,KZ,L C,LK,LR,LS,LT,LU,LV,MD,MG ,MK,MN,MW,MX,NO,NZ,PL,PT, RO,RU,SD,SE,SG,SI,SK,SL,T J,TM,TR,TT,UA,UG,UZ,VN,YU ,ZA,ZW (71)出願人 2315 North First Stre et, San Jose, CALIF ORNIA 95131 U.S.A. (72)発明者 ハルパーン エリック エム アメリカ合衆国 カリフォルニア州 94117 サン フランシスコ デルマー ストリート 41 Fターム(参考) 5B045 GG01 GG02 JJ46 5B098 HH01 【要約の続き】 は、ステートレス、ステートレスファクトリ、またはス テートフルプログラミングモデルでプログラムされても よい。クラスター化エンタープライズジャバ(JAVA 登録商標)分散処理システムは、向上したスケーラビリ ティおよび故障耐性を可能にする。

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 通信媒体を具備し; ネーミングサービスを有する、前記通信媒体に結合された、第一の処理装置と
    ;及び 複製されたネーミングサービスを有する、前記通信媒体に結合された、第二の
    処理装置と を具備する装置。
  2. 【請求項2】 前記ネーミングサービスは、JNDIコンプライアントなネーミングサービス
    であることを特徴とする、請求項1に記載の装置。
  3. 【請求項3】 前記複製ネーミングサービスは、前記第一のネーミングサービスの故障時に使
    用可能であることを特徴とする、請求項1に記載の装置。
  4. 【請求項4】 前記第一のネーミングサービスは、サービスプールを含むノードを有するネー
    ミングツリーを含み、および前記複製されたネーミングサービスは、複製された
    ネーミングツリーを含むことを特徴とする、請求項1に記載の装置。
  5. 【請求項5】 前記サービスプールは、サービスプロバイダの現在のリストを含むことを特徴
    とする、請求項4に記載の装置。
  6. 【請求項6】 前記第一の処理装置は、サービスプロバイダの前記リストに一つのサービスプ
    ロバイダを含むことを特徴とする、請求項5に記載の装置。
  7. 【請求項7】 前記サービスプールはスタブを含むことを特徴とする、請求項4に記載の装置
  8. 【請求項8】 前記ネーミングサービス及び前記複製されたネーミングサービスは、マルチキ
    ャストプログラムによって作成されることを特徴とする、請求項1に記載の装置
  9. 【請求項9】 前記第一の処理装置は、複製ハンドラを有する第一のスタブを含み、および前
    記第二の処理装置は、第二の複製ハンドラを有する第二のスタブを含むことを特
    徴とする、請求項1に記載の装置。
  10. 【請求項10】 通信媒体と; サービスプロバイダにアクセスするためのリモートメソッド呼出し(RMI)
    スタブを含むネーミングツリーを有する、前記通信媒体に結合された、第一のコ
    ンピュータと; 複製されたネーミングツリーおよび前記サービスプロバイダを有し、前記通信
    媒体に結合された、第二のコンピュータと を具備する、分散処理システム。
  11. 【請求項11】 前記第一のコンピュータは、前記第二のコンピュータにおける第二のカーネル
    に、メッセージを転送するための第一のカーネルを含むことを特徴とする、請求
    項10に記載の分散処理システム。
  12. 【請求項12】 前記第一のカーネルは、リモートジャバ(JAVA登録商標)マシンを含み、
    および前記第二のカーネルは、リモートジャバ(JAVA登録商標)マシンを含
    むことを特徴とする、請求項11に記載の分散処理システム。
  13. 【請求項13】 前記第一のカーネルは、スレッドマネージャソフトウェアコンポーネントを含
    むことを特徴とする、請求項11に記載の分散処理システム。
  14. 【請求項14】 前記第一のカーネルは、ソケットマネージャソフトウェアコンポーネントを含
    むことを特徴とする、請求項11に記載の分散処理システム。
  15. 【請求項15】 前記第一のリモートジャバ(JAVA登録商標)仮想マシンは、ピア中断検出
    ソフトウェアコンポーネントを含むことを特徴とする、請求項12に記載の分散
    処理システム。
  16. 【請求項16】 前記第一のリモートジャバ(JAVA登録商標)仮想マシンは、メッセージ圧
    縮ソフトウェアコンポーネントを含むことを特徴とする、請求項12に記載の分
    散処理システム。
JP2000581540A 1998-11-05 1999-10-21 分散処理システムにおける複製されたネーミングサービス Pending JP2002529854A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10716798P 1998-11-05 1998-11-05
US60/107,167 1998-11-05
US09/405,508 1999-09-23
US09/405,508 US6236999B1 (en) 1998-11-05 1999-09-23 Duplicated naming service in a distributed processing system
PCT/US1999/024642 WO2000028424A1 (en) 1998-11-05 1999-10-21 A duplicated naming service in a distributed processing system

Publications (1)

Publication Number Publication Date
JP2002529854A true JP2002529854A (ja) 2002-09-10

Family

ID=26804472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000581540A Pending JP2002529854A (ja) 1998-11-05 1999-10-21 分散処理システムにおける複製されたネーミングサービス

Country Status (8)

Country Link
US (3) US6236999B1 (ja)
EP (1) EP1137993A4 (ja)
JP (1) JP2002529854A (ja)
KR (1) KR100614265B1 (ja)
CN (1) CN1143220C (ja)
AU (1) AU772589B2 (ja)
CA (1) CA2349863C (ja)
WO (1) WO2000028424A1 (ja)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6581088B1 (en) 1998-11-05 2003-06-17 Beas Systems, Inc. Smart stub or enterprise javaTM bean in a distributed processing system
US6571274B1 (en) * 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6763353B2 (en) 1998-12-07 2004-07-13 Vitria Technology, Inc. Real time business process analysis method and apparatus
US6654801B2 (en) * 1999-01-04 2003-11-25 Cisco Technology, Inc. Remote system administration and seamless service integration of a data communication network management system
US6834284B2 (en) * 1999-08-12 2004-12-21 International Business Machines Corporation Process and system for providing name service scoping behavior in java object-oriented environment
US6539383B2 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Communication and interaction objects for connecting an application to a database management system
US6694328B1 (en) * 2000-01-13 2004-02-17 International Business Machines Corporation Method for creating queries on version objects
IL140504A0 (en) * 2000-02-03 2002-02-10 Bandwiz Inc Broadcast system
US6738826B1 (en) 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US7266555B1 (en) * 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US7281168B1 (en) 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US7506034B2 (en) * 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7703107B2 (en) * 2000-04-06 2010-04-20 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US8020176B2 (en) 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US6742054B1 (en) 2000-04-07 2004-05-25 Vitria Technology, Inc. Method of executing a data transformation specification
US7353180B1 (en) * 2000-04-17 2008-04-01 Accenture Llp Supply chain/workflow services in a contract manufacturing framework
US7277865B1 (en) 2000-04-17 2007-10-02 Accenture Llp Information portal in a contract manufacturing framework
US7139805B2 (en) * 2000-05-30 2006-11-21 Hewlett-Packard Development Company, L.P. Scalable java servers for network server applications
AR029932A1 (es) * 2000-06-01 2003-07-23 Aerocast Com Inc Metodo para actualizar un directorio puesto en red de objetos de contenido
US6836806B1 (en) 2000-06-01 2004-12-28 Aerocast, Inc. System for network addressing
US6879998B1 (en) 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US6904460B1 (en) 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
US7213062B1 (en) 2000-06-01 2007-05-01 General Instrument Corporation Self-publishing network directory
AU7693201A (en) * 2000-07-27 2002-02-13 Bea Systems Inc System and method for concentration and load-balancing of requests
US7685577B2 (en) * 2000-09-01 2010-03-23 Op40, Inc. System and method for translating an asset for distribution over multi-tiered networks
US7383355B1 (en) * 2000-11-01 2008-06-03 Sun Microsystems, Inc. Systems and methods for providing centralized management of heterogeneous distributed enterprise application integration objects
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
GB0107967D0 (en) * 2001-03-29 2001-05-23 Ibm Workload management of stateful program entities
US20020144256A1 (en) * 2001-03-30 2002-10-03 Navin Budhiraja Method of deployment for concurrent execution of multiple versions of an integration model on an integration server
US20030140126A1 (en) * 2001-03-30 2003-07-24 Vitria Technology, Inc. Method of deployment for concurrent execution of multiple versions of an integration model
US7120896B2 (en) 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US8650321B2 (en) * 2001-07-24 2014-02-11 Digi International Inc. Network architecture
US20030020948A1 (en) * 2001-07-27 2003-01-30 Jarvis Daniel Cook Dynamically loaded applications in a printer
US7113980B2 (en) * 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US20030065761A1 (en) * 2001-09-28 2003-04-03 Nevton Cereja System and method of creating and maintaining a replicated naming service to support a telecommunications network
FR2831741B1 (fr) * 2001-10-26 2003-12-19 Thales Sa Procedes et systemes d'enregistrement et lecture synchronisee de donnes provenant d'une pluralite d'equipements terminaux
JP2003167862A (ja) * 2001-11-30 2003-06-13 Nec Corp 分散オブジェクト・システムにおけるオブジェクトの所在を特定するための装置、方法及びプログラム
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
US20030140058A1 (en) * 2002-01-18 2003-07-24 Vitria Technology, Inc. Method and apparatus for sharing information between applications using common objects
US7260819B2 (en) * 2002-02-22 2007-08-21 Bea Systems, Inc. System and method for software application scoping
AU2003217599A1 (en) * 2002-02-22 2003-09-09 Bea Systems, Inc. System and method for using a data replication service to manage a configuration repository
US7246358B2 (en) * 2002-04-09 2007-07-17 Sun Microsystems, Inc. Methods, system and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment
US20040036191A1 (en) * 2002-04-30 2004-02-26 Rodda Philip A. Method of making a fireproof panel
CA2494122A1 (en) * 2002-07-31 2004-02-12 Truecontext Corporation Contextual computing system
CN100426808C (zh) * 2002-08-21 2008-10-15 中兴通讯股份有限公司 一种实现板间对象通信的方法
EP1406171A1 (en) * 2002-10-04 2004-04-07 Hewlett-Packard Company Data processing system and method
US7774325B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Distributed network attached storage system
JP2006519441A (ja) * 2003-02-24 2006-08-24 ビーイーエイ システムズ, インコーポレイテッド サーバロードバランシング及びサーバアフィニティのためのシステム及び方法
WO2004077280A2 (en) * 2003-02-27 2004-09-10 Bea Systems, Inc. System and method for communications between servers in a cluster
US20080281950A1 (en) * 2004-03-08 2008-11-13 First Oversi Ltd Method and Device for Peer to Peer File Sharing
US7363539B1 (en) * 2004-04-30 2008-04-22 Sap Ag Restoring communication sessions and components with state information
US7062402B2 (en) * 2004-05-19 2006-06-13 Microsoft Corp System and method for automatic testing of output device capabilities via electronic document
US7721256B2 (en) * 2004-05-27 2010-05-18 Sap Ag Method and system to provide access to factories in a naming system
US8028002B2 (en) 2004-05-27 2011-09-27 Sap Ag Naming service implementation in a clustered environment
US9122686B2 (en) * 2004-05-27 2015-09-01 Sap Se Naming service in a clustered environment
US8898330B2 (en) * 2004-05-28 2014-11-25 Sap Se Server node configuration using a configuration tool
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
US20060031246A1 (en) * 2004-08-04 2006-02-09 Grayson Loren P Universal database method and system
US8185776B1 (en) * 2004-09-30 2012-05-22 Symantec Operating Corporation System and method for monitoring an application or service group within a cluster as a resource of another cluster
US8799242B2 (en) 2004-10-08 2014-08-05 Truecontext Corporation Distributed scalable policy based content management
US8090844B2 (en) * 2004-10-08 2012-01-03 Truecontext Corporation Content management across shared, mobile file systems
WO2006077481A1 (en) * 2005-01-19 2006-07-27 Truecontext Corporation Policy-driven mobile forms applications
US8327003B2 (en) * 2005-02-03 2012-12-04 International Business Machines Corporation Handling backend failover in an application server
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
FI20051137A0 (fi) * 2005-11-09 2005-11-09 Nokia Corp Menetelmä hajautetun asiankäsittelyn muodostamiseksi ja suorittamiseksi viestintäjärjestelmässä
US8140695B2 (en) * 2005-12-12 2012-03-20 International Business Machines Corporation Load balancing and failover of distributed media resources in a media server
US8015304B2 (en) * 2005-12-12 2011-09-06 International Business Machines Corporation Method to distribute speech resources in a media server
CN100442740C (zh) * 2005-12-30 2008-12-10 华为技术有限公司 一种节点部署方法和节点通信系统
US7730478B2 (en) * 2006-10-04 2010-06-01 Salesforce.Com, Inc. Method and system for allowing access to developed applications via a multi-tenant on-demand database service
US20080270594A1 (en) * 2007-04-27 2008-10-30 Mcjilton Charles M Method and system of separate file storage locations as unified file storage
US7793140B2 (en) * 2007-10-15 2010-09-07 International Business Machines Corporation Method and system for handling failover in a distributed environment that uses session affinity
CN101997759B (zh) * 2009-08-10 2013-06-05 中兴通讯股份有限公司 一种业务实现方法及业务系统
US8694822B2 (en) * 2010-11-09 2014-04-08 International Business Machines Corporation Disaster recovery in a networked computing environment
US8473783B2 (en) * 2010-11-09 2013-06-25 International Business Machines Corporation Fault tolerance in distributed systems
US8589471B2 (en) * 2011-03-29 2013-11-19 Bmc Software, Inc. Dynamic dispatch for distributed object-oriented software systems
US9237195B2 (en) * 2012-04-27 2016-01-12 Netapp, Inc. Virtual storage appliance gateway
US9262155B2 (en) 2012-06-04 2016-02-16 Oracle International Corporation System and method for supporting in-band/side-band firmware upgrade of input/output (I/O) devices in a middleware machine environment
US9548912B2 (en) * 2012-10-15 2017-01-17 Oracle International Corporation System and method for supporting smart buffer management in a distributed data grid

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155809A (en) 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US6212557B1 (en) * 1990-01-29 2001-04-03 Compaq Computer Corporation Method and apparatus for synchronizing upgrades in distributed network data processing systems
CA2041992A1 (en) * 1990-05-18 1991-11-19 Yeshayahu Artsy Routing objects on action paths in a distributed computing system
AU649455B2 (en) * 1990-07-11 1994-05-26 American Telephone And Telegraph Company Distributed computing system
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5497463A (en) * 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
JPH0827769B2 (ja) * 1992-10-30 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション 通信インターフェースの生成システム及びその方法
DE69327448T2 (de) * 1992-12-21 2004-03-04 Sun Microsystems, Inc., Mountain View Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
CA2110243C (en) * 1992-12-31 1998-08-11 Philip Steven Winterbottom Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US5459837A (en) * 1993-04-21 1995-10-17 Digital Equipment Corporation System to facilitate efficient utilization of network resources in a computer network
US5564070A (en) * 1993-07-30 1996-10-08 Xerox Corporation Method and system for maintaining processing continuity to mobile computers in a wireless network
JP3484779B2 (ja) * 1994-10-12 2004-01-06 富士ゼロックス株式会社 名前サービス方式及び名前サービス方法
US5961582A (en) 1994-10-25 1999-10-05 Acorn Technologies, Inc. Distributed and portable execution environment
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5692180A (en) * 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5794006A (en) * 1995-08-18 1998-08-11 Microsoft Corporation System and method for editing content in an on-line network
US5680461A (en) 1995-10-26 1997-10-21 Sun Microsystems, Inc. Secure network protocol system and method
AU1122997A (en) 1995-11-07 1997-06-11 Cadis, Inc. Search engine for remote object oriented database management system
US5819019A (en) * 1995-12-01 1998-10-06 Silicon Graphics, Inc. System/method for recovering network resources in a distributed environment, via registered callbacks
US5842219A (en) * 1996-03-14 1998-11-24 International Business Machines Corporation Method and system for providing a multiple property searching capability within an object-oriented distributed computing network
US5790548A (en) * 1996-04-18 1998-08-04 Bell Atlantic Network Services, Inc. Universal access multimedia data network
US5828847A (en) * 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6016505A (en) 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US5901227A (en) * 1996-06-20 1999-05-04 Novell, Inc. Method and apparatus for implementing partial and complete optional key escrow
US5862331A (en) * 1996-06-21 1999-01-19 Sun Microsystems, Inc. Name service system and method for automatic updating on interconnected hosts
WO1997049039A1 (en) * 1996-06-21 1997-12-24 Bell Communications Research, Inc. Apparatus and methods for highly available directory services in the distributed computing environment
US5818448A (en) 1996-07-02 1998-10-06 Sun Microsystems, Inc. Apparatus and method for identifying server computer aggregation topologies
US5787442A (en) * 1996-07-11 1998-07-28 Microsoft Corporation Creating interobject reference links in the directory service of a store and forward replication computer network
US5832225A (en) * 1996-07-12 1998-11-03 Microsoft Corporation Method computer program product and system for maintaining replication topology information
US5774660A (en) 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
DE59604238D1 (de) 1996-08-20 2000-02-24 Alcatel Sa Verfahren zur Verwaltung der Benennung von Objekten
US5983351A (en) * 1996-10-16 1999-11-09 Intellectual Protocols, L.L.C. Web site copyright registration system and method
US5999988A (en) 1997-03-31 1999-12-07 Sun Microsystems, Inc. Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems
US6003065A (en) 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US5968121A (en) * 1997-08-13 1999-10-19 Microsoft Corporation Method and apparatus for representing and applying network topological data
US5941954A (en) * 1997-10-01 1999-08-24 Sun Microsystems, Inc. Network message redirection
US5966702A (en) * 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
WO1999023571A1 (en) * 1997-11-03 1999-05-14 Inca Technology, Inc. Automatically configuring network-name-services
US6134588A (en) * 1997-11-12 2000-10-17 International Business Machines Corporation High availability web browser access to servers
US6016496A (en) * 1997-11-20 2000-01-18 International Business Machines Corporation Method and apparatus for an object-oriented object for retrieving information from local and remote databases
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load
US6175869B1 (en) * 1998-04-08 2001-01-16 Lucent Technologies Inc. Client-side techniques for web server allocation
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US6195680B1 (en) * 1998-07-23 2001-02-27 International Business Machines Corporation Client-based dynamic switching of streaming servers for fault-tolerance and load balancing
US6963914B1 (en) * 1998-09-01 2005-11-08 Lucent Technologies Inc. Method and apparatus for retrieving a network file using a logical reference
US6324580B1 (en) * 1998-09-03 2001-11-27 Sun Microsystems, Inc. Load balancing for replicated services
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request
US6111572A (en) * 1998-09-10 2000-08-29 International Business Machines Corporation Runtime locale-sensitive switching of calendars in a distributed computer enterprise environment
US6286047B1 (en) * 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6236999B1 (en) * 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6430578B1 (en) * 1998-12-04 2002-08-06 Sun Microsystems, Inc. Name service for network management architecture
US6594702B1 (en) * 1999-02-25 2003-07-15 Oracle International Corporation Managing the size and accessibility of a name service

Also Published As

Publication number Publication date
US20020023173A1 (en) 2002-02-21
CA2349863A1 (en) 2000-05-18
AU772589B2 (en) 2004-04-29
CA2349863C (en) 2008-05-06
CN1143220C (zh) 2004-03-24
AU1217700A (en) 2000-05-29
EP1137993A4 (en) 2006-09-27
US20050203986A1 (en) 2005-09-15
US6236999B1 (en) 2001-05-22
US6928457B2 (en) 2005-08-09
CN1338074A (zh) 2002-02-27
WO2000028424A1 (en) 2000-05-18
KR20010099793A (ko) 2001-11-09
EP1137993A1 (en) 2001-10-04
US7480679B2 (en) 2009-01-20
KR100614265B1 (ko) 2006-08-23

Similar Documents

Publication Publication Date Title
US6928457B2 (en) Duplicated naming service in a distributed processing system
US7334232B2 (en) Clustered enterprise Java™ in a secure distributed processing system
US6385643B1 (en) Clustered enterprise Java™ having a message passing kernel in a distributed processing system
US8069447B2 (en) Smart stub or enterprise java bean in a distributed processing system
AU2006252006B2 (en) Clustered enterprise Java in a secure distributed processing system
AU2003244549B8 (en) Clustered enterprise java in a secure distributed processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090331

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090508

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20091204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110126