JP2002505467A - 分散システムにおける動的参照サービス - Google Patents

分散システムにおける動的参照サービス

Info

Publication number
JP2002505467A
JP2002505467A JP2000533811A JP2000533811A JP2002505467A JP 2002505467 A JP2002505467 A JP 2002505467A JP 2000533811 A JP2000533811 A JP 2000533811A JP 2000533811 A JP2000533811 A JP 2000533811A JP 2002505467 A JP2002505467 A JP 2002505467A
Authority
JP
Japan
Prior art keywords
service
reference service
client
receiving
step includes
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
JP2000533811A
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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
Priority claimed from US09/044,931 external-priority patent/US6185611B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2002505467A publication Critical patent/JP2002505467A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • 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
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【目的】サービスの動的な追加と削除ができるようにする参照サービスの改良を提供すること。 【解決手段】この参照サービスによりユーザの介在なしにサービスの追加と削除が自動的に行なえるようになる。その結果、参照サービスのクライアントは更新が行なわれている時にも参照サービスとこれに関係するサービスを使い続けることができる。更に、参照サービスは参照サービスが更新された場合に通知を受け取るためにクライアントが使用できる通知メカニズムを提供する。こうした通知を受け取ることで、クライアントはもはや利用できなくなったサービスへのアクセス試行を回避でき、新規サービスが参照サービスに追加されるとすぐに利用できるようになる。

Description

【発明の詳細な説明】
【0001】 (関連出願) 参考のために示すが、以下の米国特許出願は本出願の関連出願である。 1998年2月26日提出の「分散コンピューティング・システム」と題する
米国特許仮出願第60/076,048号。 代理人整理番号が06502.0011−01000であり、上記出願と同日
に出願の「ストレージをリースする方法及びシステム」と題する米国特許出願第
09/044,923号。 代理人整理番号が06502.0011−02000であり、上記出願と同日
に出願の「分散システムにおいて代理認証をリースする方法、装置及び製品」と
題する米国特許出願第09/044,838号。 代理人整理番号が06502.0011−03000であり、上記出願と同日
に出願の「分散システムにおいてグループ・メンバーシップをリースする方法、
装置及び製品」と題する米国特許出願第09/044,834号。 代理人整理番号が06502.0054−00000であり、上記出願と同日
に出願の「イベント駆動システムでの動作をトランスポートする方法」と題する
米国特許出願第09/044,933号。 代理人整理番号が06502.0062−01000であり、上記出願と同日
に出願の「オブジェクトの据置き再構築と分散システムにおいてイベント通知の
ためのリモートローディング」と題する米国特許出願第09/044,919号
。 代理人整理番号が06502.0103−00000であり、上記出願と同日
に出願の「リモート・メソッドを識別する確定的ハッシュの方法及びシステム」
と題する米国特許出願第09/045,652号。 代理人整理番号が06502.0104−00000であり、上記出願と同日
に出願の「分散システムにおいてリモート・オブジェクトの状態を決定する方法
及び装置」と題する米国特許出願第09/044,790号。 代理人整理番号が06502.0105−00000であり、上記出願と同日
に出願の「分散システムにおいてRPCに関連した処理を実行するためのダウン
ローダブル・スマート・プロキシ」と題する米国特許出願第09/044,93
0号。 代理人整理番号が06502.0106−00000であり、上記出願と同日
に出願の「リモート・メソッドの保留と継続」と題する米国特許出願第09/0
44,917号。 代理人整理番号が06502.0107−00000であり、上記出願と同日
に出願の「データベースにおいてマルチエントリ及びマルチ・テンプレート照合
のための方法及びシステム」と題する米国特許出願第09/044,835号。 代理人整理番号が06502.0108であり、上記出願と同日に出願の「デ
ータベースにおいてその場変更のための方法及びシステム」と題する米国特許出
願第09/044,839号。 代理人整理番号が06502.0109−00000であり、上記出願と同日
に出願の「データベースにおけるタイプセーフ属性照合のための方法及びシステ
ム」と題する米国特許出願第09/044,945号。 代理人整理番号が06502.0112−00000であり、上記出願と同日
に出願の「分散システムにおいてデバイスと通信する際に使用するダウンローダ
ブル・コードを提供する装置及び方法」と題する米国特許出願第09/044,
939号。 代理人整理番号が06502.0113−00000であり、上記出願と同日
に出願の「参照サービスへのアクセスを容易にするための方法及びシステム」と
題する米国特許出願第09/044,826号。 代理人整理番号が06502.0114−00000であり、上記出願と同日
に出願の「分散システムにおいて情報を動的に確認する装置及び方法」と題する
米国特許出願第09/044,932号。 1998年2月26日付「ネットワーク上の動的分散コンピューティングのた
めの方法及び装置」と題する米国特許出願第09/030,840号。 代理人整理番号が06502.0116−00000であり、上記出願と同日
に出願の「恒久的共有メモリ空間のためのインタラクティブ設計ツール」と題す
る米国特許出願第09/044,936号。 代理人整理番号が06502.0117−00000であり、上記出願と同日
に出願の「多形性トークンによる制御」と題する米国特許出願第09/044,
934号。 代理人整理番号が06502.0118−00000であり、上記出願と同日
に出願の「スタックによるアクセス制御」と題する米国特許出願第09/044
,915号。 代理人整理番号が06502.0119−00000であり、上記出願と同日
に出願の「スタックによるセキュリティ条件」と題する米国特許出願第09/0
44,944号。 代理人整理番号が06502.0120−00000であり、上記出願と同日
に出願の「セキュリティ条件のメソッド毎指定」と題する米国特許出願第09/
044,837号。
【0002】 (発明の分野) 本発明は、データ処理システムに関し、さらに詳しくは分散システムにおける
動的参照サービスに関する。
【0003】 (発明の背景) 参照サービスは多数の計算機たとえばコンピュータやこれに関連する周辺機器
から構成されて、ネットワーク(たとえば、ローカル・エリア・ネットワーク、
広域ネットワーク、又はインターネット)に接続された分散システム内で、どこ
にネットワーク・サービスがあるかの指標を含む。「ネットワーク・サービス」
は資源、データ、又はネットワーク上で参照可能な機能を表わす。代表的には、
各々のサービスで、参照サービスはクライアント(たとえばプログラム)がサー
ビス(たとえばプリンタ)へアクセスするために使用するアドレスを含む。
【0004】 従来の参照サービスは静的なものである:新規サービスを追加するか既存のサ
ービスを削除するかどちらかの参照サービスの更新が必要になった時には、参照
サービスはオフラインにされ、参照サービスがアクセス不能になり、次に参照サ
ービスをシステム管理者が手動で更新する。参照サービスがオフラインになって
いる時間の間、分散システム内のクライアントは参照サービスやこれのネットワ
ーク・サービスにアクセスすることができない。
【0005】 従来の参照サービスに見られる別の制限としては、更新時に、クライアントへ
最新のサービス情報をダウンロードするクライアントが明示的にリフレッシュ動
作を行なうまでクライアントには参照サービスの更新が分からないことである。
しかしこのようなリフレッシュの前に、クライアントがすでに利用できなくなっ
たサービスを要求した場合、エラーが発生してクライアントをハングアップさせ
ることがある。また、リフレッシュまでは、参照サービスに最近追加された新規
サービスがクライアントには分からない。したがって分散システムでの参照サー
ビスを改善することが望ましい。
【0006】 (発明の開示) 本発明によるシステムはサービスの動的な追加及び削除を可能にする参照サー
ビスの改良を提供する。この参照サービスにより更新、即ち利用可能なサービス
の追加及び削除が動的に行なえ、ユーザの介在を必要としない。その結果、参照
サービスのクライアントは更新が行なわれている間も参照サービスとそれに関連
したサービスを使用し続けることができるようになる。さらに、参照サービスは
参照サービスが更新された場合に通知を受け取るためにクライアントが使用でき
る通知メカニズムを提供する。こうした通知を受け取ることで、クライアントは
もはや利用できなくなったサービスへのアクセス試行を回避でき、新規サービス
が参照サービスに追加されるとすぐに利用できるようになる。
【0007】 本発明に係る方法によれば、関連サービスに対する参照サービスを有するデー
タ処理システムにおいてメソッドを提供する。このメソッドは参照サービスが更
新された時に参照サービスによる通知要求を受け取り、参照サービスがいつ更新
されたかを判断し、参照サービスが更新されたと判断した場合に通知を生成する
【0008】 本発明に係る方法によれば、関連サービスに対する参照サービスを有するデー
タ処理システムにおいてメソッドを提供する。このメソッドは参照サービスが更
新された時に通知するように参照サービスへの要求を送信し参照サービスが更新
されたことの表示を受け取る。
【0009】 本発明に係るシステムによれば、メモリとプロセッサを含むデータ処理システ
ムが提供される。メモリは使用可能なサービスの表示を含む参照サービスと、参
照サービスを更新する第1のクライアントと、第1のクライアントが参照サービ
スを更新している間に参照サービスを使用する第2のクライアントを含む。プロ
セッサは参照サービスと、第1のクライアントおよび第2のクライアントとを実
行する。
【0010】 本発明に係るシステムによれば、メモリとプロセッサを含むデータ処理システ
ムが提供される。メモリは使用可能なサービスの表示を含む参照サービスとクラ
イアントを含む。参照サービスは参照サービスが更新されるときの通知要求を受
け取り、いつ参照サービスが更新されるかを判断し、参照サービスが更新される
時に通知を生成する。クライアントは参照サービスが更新される時に通知するよ
うに参照サービスに要求を送信する。プロセッサはクライアントと参照サービス
を実行する。
【0011】 本発明に係るシステムによれば、データ構造を含むコンピュータで読み取り可
能なメモリ・デバイスが提供される。このデータ構造は使用可能なネットワーク
・サービスに関連する参照サービスをアクセスするためのものである。データ構
造は参照サービスが更新される時に参照サービスからの通知を受け取るように参
照サービスに登録するためにクライアントが使用する通知メソッドを含む。
【0012】 添付の図面は本明細書に含まれてその一部を構成するものであって、本発明の
実施例を示し、以下の説明と併せて、本発明の利点や原理の説明に用いられるも
のである。
【0013】 (発明の詳細な説明) 本発明に係る方法及びシステムはサービスの動的な追加及び削除が行なえる参
照サービスの改良を提供する。このようにすると、サービスの追加と削除は自動
的に、ユーザの介在なしに行なわれ、参照サービスのクライアントは参照サービ
スの更新が行なわれている時にサービスを使用し続けることができる。さらに、
参照サービスが更新される際の通知を受け取るようにクライアントが参照サービ
スに登録できる。その結果、更新が行なわれた場合、全ての登録クライアントは
更新の通知を受け取るので、クライアントがすでに利用できないサービスへアク
セスを試行するのを防止し、参照サービスに最近追加されたサービスを使用でき
るようになる。
【0014】 (分散システムの概要) 本発明による方法及びシステムはハードウェアとソフトウェア両方を含む各種
コンポーネントのある分散システム(「代表的な分散システム」)において動作
する。代表的な分散システムは(1)システムのユーザが多数の装置からなるネ
ットワーク上でサービスや資源を共有できる、(2)プログラマには強靭で安全
な分散システムの開発が行なえるツールやプログラミング・パターンを提供する
、(3)分散システム管理タスクを単純化する。これらの目標を達成するため、
代表的な分散システムではJava(TM)プログラミング環境を使用して継ぎ
目なくデバイス間でコードとデータの両方を移動できるようにする。したがって
、代表的な分散システムはJavaプログラミング環境の最上部に階層化されて
おり、これが提供するセキュリティやこれの提供する強力なタイピングを含め、
この環境の特性を活用する。Javaプログラミング環境については、Jawo
rski著、Java1.1デベロッパーズ・ガイドSams.net刊(19
97年)により明確に記述されており、これは本明細書で参照に含まれる。
【0015】 代表的な分散システムにおいては、異なるコンピュータやデバイスが連動して
ユーザからは単一のシステムであるかのように見える。単一のシステムとして見
えるので、代表的な分散システムは、パーソナル・コンピュータやワークステー
ションの柔軟性と個人化応答を犠牲にすることなく単一システムによって提供す
ることのできるアクセスの単純化と能力の共有を提供する。代表的な分散システ
ムは地域的に分散しているが信頼関係、管理、方策の基本概念に同意しているユ
ーザによって運営される数千のデバイスを含むことがある。
【0016】 代表的な分散システム内には1つまたはそれ以上のデバイスが提供する各種の
論理的なサービスのグループがあり、各々のこうした論理グループはジン(Dj
inn)として知られている。「サービス」はユーザ、プログラム、デバイス又
は別のサービスからアクセスすることができ、計算、記憶関係、通信関係、又は
別のユーザへのアクセス提供に関係することがある資源、データ、又は機能を表
わす。ジンの一部として提供されるサービスの例としては、プリンタ、ディスプ
レイ、ディスクなどのデバイスや、アプリケーションやユティリティなどのソフ
トウェア、データベースやファイルなどの情報、またシステムのユーザが含まれ
る。
【0017】 ユーザとデバイスはどちらもジンに参加できる。ジンに参加する時、ユーザ又
はデバイスはゼロ又はそれ以上のサービスをジンに追加してセキュリティ上の制
約の対象となるがこれの含むサービスのいずれか一つにアクセスできる。つまり
、デバイスとユーザはジンに統合されてこれのサービスへのアクセスを共有する
。ジンのサービスはプログラム的にはJavaプログラミング環境のオブジェク
トとして見え、これには他のオブジェクト、別のプログラミング言語で書かれた
ソフトウェア・コンポーネント、又はハードウェア・デバイスなどを含むことが
ある。サービスはそのサービスの要求することができる動作を定義するインタフ
ェースを有し、サービスの種類がそのサービスを構成するインタフェースを決定
する。
【0018】 図1はネットワーク108で相互接続されたコンピュータ102と、コンピュ
ータ104と、デバイス106を含む代表的な分散システム100を示す。デバ
イス106はたとえば印刷装置、ファクシミリ装置、記憶装置、入力装置、コン
ピュータ、又はその他のデバイスなど、多数のデバイスのいずれでも良い。ネッ
トワーク108はローカル・エリア・ネットワーク、広域ネットワーク、又はイ
ンターネットであり得る。2台のコンピュータと一つのデバイスだけしか代表的
な分散システム100に含まれるように図示していないが、代表的な分散システ
ム100は更にコンピュータ又はデバイスを含み得ることが当業者には理解され
よう。
【0019】 図2はコンピュータ102を更に詳細に示し代表的な分散システム100の多
数のソフトウェア・コンポーネントを表わしている。コンピュータ104又はデ
バイス106も同様に構成できることが当業者には理解されよう。コンピュータ
102はメモリ202、二次記憶装置204、中央演算処理装置(CPU)20
6、入力装置208、ビデオ・ディスプレイ210を含む。メモリ202は参照
サービス212、ディスカバリ・サーバ214、Java(TM)ランタイム・
システム216を含む。Javaランタイム・システム216はJava(TM
)リモート・メソッド起動システム(RMI)218とJava(TM)仮想マ
シン220を含む。二次記憶装置204はJava(TM)空間222を含む。
【0020】 前述したように、代表的な分散システム100はJavaプログラミング環境
に基づいておりJavaランタイム・システム216を利用する。Javaラン
タイム・システム216はJava(TM)APIを含み、Javaランタイム
・システムの上で動作するプログラムが、プラットホームに依存しないで、ホス
ト・オペレーティング・システムのウィンドウ能力やネットワーク能力などの各
種システム機能にアクセスできるようにする。JavaAPIはJavaランタ
イム・システム216の移植された全てのオペレーティング・システム上で単一
の共通APIを提供するので、Javaランタイム・システムの上で動作するプ
ログラムは、ホスト・プラットホームのオペレーティング・システム又はハード
ウェア構成とは無関係に、プラットホームに依存しない方法で動作する。Jav
aランタイム・システム216はサンマイクロシステムズ(米国カリフォルニア
州マウンテンビュー)から入手可能なJava(TM)ソフトウェア開発キット
の一部として提供される。
【0021】 Java仮想マシン220もプラットホーム非依存性を助ける。Java仮想
マシン220は抽象的な計算機として動作し、バイトコードの形でプログラムか
ら命令を受け取り、動的にオブジェクト・コードなどの実行形式へ変換すること
によってこれらのバイトコードを解釈し、実行する。RMI218は1台のコン
ピュータ又はデバイスでのオブジェクト実行が別のコンピュータ又はデバイスの
オブジェクトのメソッドを起動できるようにすることでリモート・メソッド呼び
出しを容易にする。RMIとJava仮想マシンもJavaソフトウェア開発キ
ットの一部として提供されている。
【0022】 参照サービス212は特定のジンで利用することのできるサービスを定義する
。つまり、1つ以上のジンが存在し、結果として1つ以上のジンが代表的な分散
システム100に存在することになる。参照サービス212はジン内部の各サー
ビス毎に一つのオブジェクトを含み、各オブジェクトはこれに対応するサービス
へのアクセスを助ける各種メソッドを含む。参照サービス212とそのアクセス
は「参照サービスへのアクセスを容易にするための方法及びシステム」と題する
同時出願中の米国特許出願第__________号に詳細に記載されている。
【0023】 ディスカバリ・サーバ214は、ブート及び参加又はディスカバリとして知ら
れるプロセスの間に新しいデバイスが代表的な分散システム100へ追加された
場合に検出し、またこのような新しいデバイスが検出された場合にはディスカバ
リ・サーバは参照サービス212への参照を新しいデバイスに渡して新しいデバ
イスがサービスを参照サービスに登録できるようにし、またジンの構成要素とな
れるようにする。登録後、新しいデバイスはジンの構成要素となり、その結果、
参照サービス212に含まれるサービス全部にアクセスすることができるように
なる。ブート及び参加のプロセスは、「分散システムにおいてデバイスと通信す
る際に使用するダウンローダブル・コードを提供する装置及び方法」と題する同
時出願中の米国特許出願第__________号に詳細に記載されており、す
でに参照に含めてある。
【0024】 Java空間222は代表的な分散システム100内部のプログラムがオブジ
ェクトを格納するために使用するオブジェクト・リポジトリである。プログラム
はJava空間222を使用して恒久的にオブジェクトを格納したり、代表的な
分散システム内部の他のデバイスに対してアクセス可能にする。Java空間は
1997年11月17日付で出願され共通の譲受人に譲受される「多形性エント
リとエントリ・マッチングを使用するデータベース・システム」と題する同時出
願の米国特許出願第08/971,529号に詳細に記載されており、本明細書
で参照に含まれる。代表的な分散システム100は多数の参照サービス、ディス
カバリ・サーバ、Java空間を含み得ることが当業者には理解されよう。
【0025】 本発明によるシステム及び方法は代表的な分散システムとJavaプログラミ
ング環境において動作するように記載されるが、本発明を他のシステムや他のプ
ログラミング環境で実施できることが当業者には理解されよう。更に、本発明の
態様はメモリに記憶されるように記載されるが、これらの態様が他の種類のコン
ピュータで読み取り可能な媒体たとえば二次記憶装置たとえばハードディスクや
フロッピー・ディスク、又はCD−ROMなど、インターネットからの搬送波、
又はその他の形のRAM又はROMにも格納され又は読み出されることは当業者
には理解されよう。Sun、サンマイクロシステムズ、Sunロゴ、Java、
Javaを用いた商標は米国及びその他の諸国でサンマイクロシステムズ社の商
標又は登録商標である。
【0026】 (参照サービスの定義) 参照サービスはジン内部で利用可能なサービスの中央レジストリを提供する。
この参照サービスはプログラムがジン内部でサービスを見つけるための1次メカ
ニズムでありユーザや管理者がジンのサービスを発見し対話するためのユーザ・
インタフェースを提供する基盤である。
【0027】 参照サービスはサービス項目のフラットな集合体を保持する。この集合体はサ
ービス項目が階層を構成しないと言う意味でフラットである。各サービス項目は
ジン内部で利用可能なサービスのインスタンスを表現している。サービス項目は
、サービスへアクセスするためにプログラムが使用するスタブ(サービスがリモ
ート・オブジェクトとして実装されている場合)又はシリアル化オブジェクト(
サービスが参照サービスに格納されたローカル・オブジェクトの場合)を含み、
サービスを記述する又はサービスへの2次的インタフェースを提供する属性の広
範囲な集合体も含む。「スタブ」はリモート関数へのアクセスを容易にするコー
ド及びデータであり、「シリアル化オブジェクト」はシリアル化した形で置かれ
るオブジェクトである。
【0028】 サービス項目の集合はフラットであるが、サービスの種類や属性にしたがって
項目を収集することにより集合に広範な階層的ビューを組み込むことができる。
参照サービスは、ユーザや管理者が集合をブラウズし核周囲を構築できるように
する一組のメソッドを提供する。妥当なサービスが見付かれば、その項目に別の
属性として付帯されるユーザ・インタフェース・アプレットをロードすることで
ユーザはサービスと対話することができる。
【0029】 新規サービスを作成した場合(たとえば新規デバイスをジンに追加する場合)
、サービスは自分自身を参照サービスに登録し、属性の初期集合を提供する。た
とえば、プリンタは速度(毎分印刷ページ数)、解像度(1インチあたりドット
数)、また全二重印刷をサポートしているかどうかを表わす属性を含むことがで
きる。属性はまたサービスが新規であり設定する必要があることを表わすインジ
ケータも含む。新規サービスを設定するためには、管理者がこの目的のためのア
プレットを提供する属性を特定し、設定中に管理者がたとえばサービスの物理的
場所やこれの共通名称などの新規属性を追加する。
【0030】 参照サービスは新規サービスが登録される、既存のサービスが削除される、又
はあるサービスの属性が変更されると、通知を生成するイベント・メカニズムを
提供する。イベント・メカニズムを使用するには、クライアントが特定のイベン
トの発生時に通知してもらうように登録し、イベントの発生時には、参照サービ
スがクライアントに通知する。参照サービスそれ自体もイベント・メカニズムを
使用して属性が追加された場合に通知を受け取り、将来において属性を再登録で
きるようにする。
【0031】 特定の種類のサービスを要求するプログラム(他のサービスを含む)は参照サ
ービスを使用してサービスのインスタンスを検索することができる。そのサービ
スによって実装された特定のJava(TM)プログラミング言語種別ならびに
そのサービスに付帯される特定の属性に基づいて照合を行なう。 たとえばプリンタのトナーがなくなったなど管理者の注意が必要な問題がサー
ビスに起こった場合、サービスは問題を表わす属性を追加できる。管理者(又は
プログラム)はイベント・メカニズムを使用してこうした問題の通知を受け取る
ことができる。
【0032】 サービス項目の属性は一組の属性セットとして表現される。個々の属性セット
はJavaプログラミング言語におけるクロスのインスタンスとして表現され、
各々の属性はそのクラスの公開フィールドである。サービス項目は同じクラスで
属性値が異なる複数のインスタンスならびに異なるクラスの複数インスタンスを
含むことができる。たとえば、ある項目には、各々が異なる言語でサービスの共
通名称を表わすNameクラスの複数インスタンスと、Locationクラス
、Ownerクラス、また各種のサービス特有のクラスのインスタンスを有する
ことがある。
【0033】 SIはServiceItemのインスタンスとして、以下に示すように、参照
サービスに格納される: public class Service Item { public static final long ASSIGN_SERVICE_ID = 0; public long serviceID; public Object service; public Entry [] attributeSets; } "ServiceID"要素はサービスの数値識別子である。"service"要素はサービスを
表わすオブジェクト又はサービスへのアクセスを助けるスタブであり、"attribu
teSets"要素はサービスの属性の配列を含む。
【0034】 参照サービスの項目はServiceTemplateクラスのインスタンス
を使用して照合され、これは以下のように定義される: public class Service Template { public static final long ANY_SERVICE_ID = 0; public long serviceID; public Class[] serviceTypes; public Entry[] attributeSetTemplates; } "serviceTypes"要素はサービスの種類を定義する。item.serviceIDがtempl.se
rviceIDと等しい場合(またはtmpl.serviceIDがゼロの場合)でitem.serviceがt
mpl.serviceTypesの全ての種類のインスタンスであればサービス・テンプレート
(tmpl)に一致し、item.attributeSetsが項目(item)がtmpl.attributeSetTem
platesの各エントリ・テンプレートのエントリの少なくとも一つとの一致を含む
。エントリの一致は以下の規則を使用する:エントリのクラスがテンプレートの
クラスと同じか、そのスーパークラスであって、テンプレート内でヌルでない全
てのフィールドがエントリの対応するフィールドと等しい場合にエントリはエン
トリ・テンプレートと一致する。全てのエントリは1つ以上のテンプレートとの
照合に使用できる。serviceTypesとattributeSetTemplatesはサービス・テンプ レートではヌルのことがある。ServiceMatchesクラスは複数項目を参照する場合
の返り値に使用される。このクラスの定義は次のようになる: public class ServiceMatches { public ServiceItem[] items; public int totalMatches; }
【0035】 参照サービスへのインタフェースはServiceRegistrarインタフェース・データ
構造によって定義される。このインタフェースはリモート・インタフェースでは
ない。その代わり、参照サービスの各々の実装がクライアントにローカルなServ
iceRegistrarインタフェースを実装するプロキシ・オブジェクトをエクスポート
し、実際のリモート・サーバと通信するための実装固有のプロトコルを使用する
。「プロキシ・オブジェクト」はクライアントのアドレス空間で動作し参照サー
ビスへのアクセスを助けるオブジェクトを表わす。サービス項目を登録し、テン
プレートと一致する項目を検索し、既存の項目の属性を変更し、項目が変更され
た場合に通知を受信し、3つの主軸、エントリ・クラス、属性値、サービス種別
に沿って項目の集合を倍して活用するためのメソッドが提供される。インタフェ
ースの定義は次のようになる: Public interface ServiceRegistrar { long REGISTRAR_SERVICE_ID = 1; ServiceLease register (Service Item item, long lease expiration) throw
s RemoteException; Object lookup (serviceTemplate tmpl) throws RemoteException ServiceMatches lookup(ServiceTemplate tmpl, int maxMatches) throws RemoteException; int addAttributes (ServiceTemplate tmpl, Entry [] attrSets) throws RemoteException; int modifyAttributes (ServiceTemplate tmpl, Entry [] attrSets) throws RemoteException; int TRANSITION_MATCH_NOMATCH = 1; int TRANSITION_NOMATCH_MATCH = 2; into TRANSITION_MATCH_MATCH = 3; EventRegID notify (Service Template tmpl, int transition, RemoteEventListener listener, MarshalledObject handback, long leaseExpiration) throws RemoteException; Class [] getEntryClasses (ServiceTemplate tmpl) throws RemoteException; Object [] getFieldValues (ServiceTemplate tmpl) int setIndex, String field) throws NoSuchFieldException, RemoteException; Class [] getServiceTypes (Service Template tmpl), String packagePrefix throws RemoteException
【0036】 このインタフェースは登録メソッド、参照メソッド(シングル・パラメータ・
フォーム)、参照メソッド(2パラメータ・フォーム)、addAttributesメソッ ド、modifyAttributesメソッド、modifyメソッド、getEntryClassメソッド、get
FieldValuesメソッド、getServiceTypesメソッドを含む各種メソッドを含む。"r
egister"メソッドは新規サービスを登録し既存のサービスを再登録するために使
用される。このメソッドは、べき等方式で使用することができるように定義され
る。さらに詳しくは、コールの結果例外が生成される場合(項目は登録されてい
たり、登録されていなかったりすることがある)呼び出し側は単純に同一パラメ
ータでコールを繰り返すことができる。
【0037】 登録(register)メソッドを使用して新規サービスを登録するには、item.Ser
viceIDがゼロでなければならない。item.ServiceIDが既存の項目のサービス・オ
ブジェクトのどれかと等しくない場合、新規にユニークなサービスIDを割り当
てて返す。サービスIDはこの参照サービスで時間的にユニークである。item.S
erviceIDが既存の項目のサービス・オブジェクトと等しくない場合、既存の項目
が参照サービスから抹消される(異なる属性を有している場合であっても)が、
その項目のサービスIDは新規に登録される項目で再利用される。
【0038】 登録(register)メソッドを使用して既存のサービスを再登録するには、item
.ServiceIDは初期登録で返されたユニークなサービスIDと同じにセットしなけ
ればならない。同一のサービスIDですでに項目が登録されている場合、既存の
項目が消去される(異なる属性又は異なるサービス・インスタンスを有する場合
であっても)。サービス・オブジェクトの等価性はこの場合チェックされず、サ
ービスの妥当な進化が行なえる(たとえばスタブのシリアル化フォームが変化す
る、またはサービスが新規インタフェースを実装するなど)。
【0039】 ある項目が登録されると、複製の属性セットがその項目の格納された表現にて
除外される。さらに、登録は参照サービスのリスタートがあっても継続される。
【0040】 参照("lookup")メソッドのシングル・パラメータ形式では、テンプレートに
一致する項目からサービス・オブジェクト(即ち、ServiceItem.service)また は一致がない場合にはヌルを返す。複数項目がテンプレートに合致する場合、度
のサービス・オブジェクトを返すかは任意である。返されるオブジェクトが非シ
リアル化できない場合、例外が生成される。
【0041】 参照("lookup")メソッドの2パラメータ形式では、テンプレートに合致する
多くともmaxMatches項目とテンプレートに合致する項目の総数が返される。返り
値がヌルになることはなく、返される項目の配列はmaxMatchesがゼロの場合だけ
ヌルである。各々の返される項目で、サービス・オブジェクトを非シリアル化で
きない場合、その項目のサービス・フィールドはヌルにセットされて例外を生成
しない。同様に、属性セットを非シリアル化できない場合、そのattributeSets 配列のその要素がヌルにセットされて例外を生成しない。
【0042】 "addAttributes"メソッドは指定された属性セット(既存の属性セットの複製 ではないセット)をテンプレートに合致する全ての項目に追加する。一致した項
目数が返される。この操作は一致項目の既存の属性セットに対しては何ら影響せ
ず、この操作をべき等方式で反復することが可能である。
【0043】 "modifyAttributes"メソッドは既存の属性セットを変更するために使用する。
tmpl.attributeSetTemplatesとattrSetsの長さは等しくなければならず、それ以
外の場合には例外が生成される。テンプレートに合致する各々の項目について、
その項目の属性セットは次のように変更される。それぞれの配列インデックスI
:では、attrSets[i]がヌルの場合、tmpl.attributeSetTemplates[i]に合致する
全てのエントリが消去され、それ以外では、attrSets[I]のヌルでない全てのフ ィールドについて、そのフィールドの値がtmpl.attributeSetTemplates[i]に合 致する全てのエントリの対応するフィールドに格納される。attrSets[i]のクラ スは、tmpl.attributeSetTemplates[I]のクラスと同じか、そのスーパークラス でなければならず、そうでない場合には例外が生成される。変更の結果として項
目内に複製エントリができる場合、複製は除外される。一致した項目数が返され
る。
【0044】 通知("notify")メソッドはイベント通知用に登録するために使用される。登
録はリースされ、リース有効期限の要求は正確である。リースの概念については
、「ストレージをリースする方法及びシステム」と題する米国特許出願第___
______号に詳細に記載されており、これはすでに本明細書で参照に含めて
ある。登録はリースが期限切れになるか取り消されるまで参照サービスのリスタ
ートがあっても継続される。返されたEventRegIdのイベントIDは少なくともト
ランジションの異なるサービス・テンプレートを有するこの参照サービスで他の
アクティブなイベント登録全部に対してユニークなものである。
【0045】 イベント登録が有効な間、イベントの表示を含む通知は登録、リース取り消し
又は期限切れ、addAttributes、又はmodifyAttributes操作がテンプレート及び トランジションの組合せを満足するような方法でサービス項目変更状態をもたら
すなら必ず指定されたリスナーへ送信される。トランジションのリストは以下の
とおりだが、他のトランジションも本発明の範囲内で実装可能である: ・TRANSITION_MATCH_NOMATCH:変更された項目が操作前のテンプレートに一致
するが、操作後のテンプレートには一致しない(これには項目の抹消を含む)場
合にイベントが送出される。 ・TRANSITION_NOMATCH_MATCH:変更された項目が操作前のテンプレートには一
致しないが(存在しない場合を含む)操作後のテンプレートには一致する場合に
イベントが送出される。 ・TRANSITION_MATCH_MATCH:変更された項目が操作の前後どちらでもテンプレ
ートと一致する場合にイベントが送出される。
【0046】 "getEntryClasses"メソッドは指定されたテンプレートと一致する全ての項目 を見つけ出し、これらの項目の中でエントリ・テンプレートと一致しないか少な
くとも一つの一致エントリ・テンプレートのサブクラスであるような全てのエン
トリを検出し、これらのエントリの(最も特定された)クラスのセットを返す。
複製クラスは排除され、返された配列内でのクラスの順序は任意である。このよ
うなエントリがない場合又は一致項目がない場合にはヌル(空の行列ではなく)
が返される。返されたクラスが非シリアル化できない場合、返された配列のその
要素はヌルにセットされて例外は破棄される。
【0047】 "getFieldValue"メソッドは指定されたテンプレートと一致する全ての項目を 識別する。このメソッドは指定されたテンプレートと一致する項目の値を返す。 "getServiceTypes"メソッドは指定されたテンプレートと一致する全ての項目 を見つけ出し、全てのサービス・オブジェクトについて、このメソッドはテンプ
レート内のサービス種別のいずれとも等しくなくスーパークラスでもないような
インスタンスであるサービス・オブジェクトの全ての種別(クラス又はインタフ
ェース)を検出して、指定されたパッケージ・プレフィクスで始まるこのような
種別全部のセットを返す。複製の種別は排除され、返される配列内での種別の順
序は任意である。このような種別がない場合にはヌル(空の配列ではなく)が返
される。返された種別を非シリアル化できない場合、返された配列のその要素は
ヌルにセットされて例外は破棄される。
【0048】 (参照サービスの処理) 図3A及び図3Bは特定デバイス上で実行中のプログラムであるクライアント
が参照サービス212を利用する場合に実行されるステップのフローチャートを
示す。最初に、クライアントが動作しているデバイスがJini分散システムへ
接続される(ステップ302)。次に、クライアントはクライアントと通信する
ためのコードを含むマルチキャスト・パケットを送信する(ステップ304)。
このステップで、クライアントは、すでに本明細書の参照に含めてあり、同時出
願中の「分散システムにおいてデバイスと通信する際に使用するダウンローダブ
ル・コードを提供する装置及び方法」と題する米国特許出願第________
____号にさらに詳細に記載されているディスカバリ・プロトコルを実行して
いる。
【0049】 クライアントがマルチキャスト・パケットを送出した後で、ディスカバリ・サ
ーバ214はパケットを受信してパケットの含まれるコードを用いて参照サービ
スへの参照をクライアントに送出する(ステップ306)。クライアントが参照
サービスへの参照を受信した後、クライアントは参照サービスのインタフェース
を使って、ステップ308〜326に反映されているように、サービスを追加す
るか、サービスを削除するか、サービスにアクセスするか、又は参照サービスが
更新された時に通知を要求するかのいずれかを行なうことができる。
【0050】 クライアントの処理の途中の何らかの時点で、参照サービスにサービスを追加
すると決定することができる(ステップ308)。サービス追加を決定する場合
、クライアントは参照サービスへサービスを追加するのに登録メソッドを呼び出
し、これが参照サービスへサービスを表わすオブジェクトかサービスへのアクセ
スを助けるコード及びデータを含むスタブかのどちらかを送信する(ステップ3
10)。参照サービスへのスタブの追加については、本明細書の参照に含めてあ
る同時出願中の「参照サービスへのアクセスを容易にするための方法及びシステ
ム」と題する米国特許出願第__________号に詳細に記載されている。
【0051】 次に、クライアントは参照サービスから参照サービスの一つを削除しようと決
定することができる(ステップ312)。クライアントがそのようにする決定を
行なうと、クライアントは参照サービスからサービスを削除するのに参照サービ
スのインタフェース上で登録メソッドを呼び出して特定のサービスのエントリを
削除しこれに関連するスタブ・コードを削除する(ステップ314)。サービス
の追加とサービスの削除の両方とも動的に、かつ更新中に他のクライアントが参
照サービスを使用するのを妨げないような方法で行なわれることに注意すべきで
ある。
【0052】 クライアントの処理で後のある時点で、クライアントは参照サービスによって
提供されるサービスにアクセスしようと決定することができる(ステップ316
)。クライアントが参照サービスによって提供されるサービスへアクセスするこ
とを決定する場合、クライアントはサービスへアクセスするのに参照メソッドを
呼び出し、これが参照サービスからそのサービスのオブジェクト又はスタブ情報
のどちらかを取り出し、クライアントはオブジェクトに対してメソッドを呼び出
してサービスを使用するか、又はスタブ情報を使用してサービスにアクセスする
(ステップ318)。このステップについては本明細書ですでに参照に含めてあ
り同時出願中の「参照サービスへのアクセスを容易にするための方法及びシステ
ム」と題する米国特許出願第__________号に詳細に説明されている。
【0053】 クライアントは参照サービスに更新が行なわれる際に通知するように要求する
こともできる(図3Bのステップ320)。クライアントが通知されることを希
望する場合、クライアントは参照サービス・インタフェース上で通知メソッドを
呼び出して参照サービスでコールバック・ルーチンを登録する(ステップ322
)。「コールバック・ルーチン」は参照サービスが更新される際に呼び出される
関数である。さらに、通知メソッドによりクライアントはコールバック関数への
パラメータとしてRMI経由で戻されるオブジェクトを登録することができる。
【0054】 次に、クライアントが通知を希望するイベントが発生した場合(ステップ32
4)、登録されたコールバック・ルーチンが参照サービスにより呼び出される(
ステップ326)。このステップでは、クライアントはイベントの発生を通知さ
れるので適当な動作を取ることができる。たとえば、クライアントが現在まで使
用していたサービスが利用できなくなった場合、クライアントは情報を保存して
今後は使用しないようにすることができる。
【0055】 図4はイベント関連処理を実行する際に参照サービスによって行なわれるステ
ップのフローチャートを示す。最初に、参照サービスは特定のイベントが発生し
た時に通知を受信することに興味がある多数のクライアントから登録を受信する
(ステップ402)。このステップでは、参照サービスは参照サービス・インタ
フェース上で通知メソッドの呼び出しにより登録を受信し、イベント・テーブル
として知られているテーブルに、関連情報の全部、たとえば通知すべきクライア
ントの表示、コールバック・ルーチンへの参照、コールバック・ルーチンへパラ
メータとし手渡すオブジェクト、クライアントが注目しているイベントの表示な
どを格納する。クライアントはイベント発生時に通知されるように登録でき、ま
たクライアントは第三者に通知するように登録することもできることに注意すべ
きである。登録を受信した後、参照サービスは少なくとも一つのクライアントが
イベントに注目していることを登録してあるようなイベントが発生したかどうか
を判定する(ステップ404)。参照サービスはたとえば新規サービスが参照サ
ービスに追加された場合、既存のサービスが参照サービスから削除された場合、
又はサービスの属性が変更された場合を識別することによりこの判定を行なう。
このようなイベントが発生しなかった場合、参照サービスのイベント通知処理は
待機状態のままである。
【0056】 しかし、イベントが発生すると、参照サービスはこのイベントについて通知を
登録した全てのクライアントを決定する(ステップ406)。参照サービスはイ
ベント・テーブルにアクセスすることでこの決定を行なう。次に、参照サービス
はステップ406で識別された各クライアントについて登録してあるコールバッ
ク・ルーチンを呼び出す(ステップ408)。このステップでは、イベント・テ
ーブルは各クライアントが登録したコールバック・ルーチンへの参照を含み、参
照サービスは各コールバック・ルーチンを呼び出し、登録されたオブジェクトを
パラメータとして渡し、クライアントにイベント発生を通知する。
【0057】 (会議室の例) 以下に説明するのは図5に図示したような会議室500に関して参照サービス
212の使用例である。会議室500はプリンタ502、ファクシミリ装置50
4、コンピュータ506、投影画面508、記憶装置510を含み、これら全て
がネットワーク512によって相互接続されている。コンピュータ506は会議
室ジンで利用可能になる全てのサービスを定義する参照サービス518を含む。
この例では、ユーザがラップトップ・コンピュータ514を携帯して会議室50
0に入室する。このような状況は、ラップトップ・コンピュータを携帯したユー
ザが会議のために会議室500に入室する場合に発生する。ユーザが会議室50
0にある各種装置で提供されるサービスを利用したい場合、ユーザは会議室のジ
ンに参加する必要がある。そうするためには、ユーザはラップトップ・コンピュ
ータをネットワーク512に接続してクライアント516であるプログラムを実
行し、前述したようにブート及び参加(又はディスカバリ)処理を行なう。ブー
ト及び参加処理が完了した後で、クライアント516(たとえばブラウザ)が会
議室ジンで提供されるサービスを定義している参照サービス518への参照を受
信する。この参照を用いて、クライアント516は図6に図示したような画面6
00を表示する参照サービス518からアプレットをダウンロードする。
【0058】 図6はプリンタ602、ファックス604、ファイルシステム606、投影画
面608を含む様々なアイコンで表現された参照サービス518の利用可能なサ
ービスを表示する画面600を示す。画面600はサービス追加ボタン610も
表示している。プリンタ・アイコン602を選択すると、プリンタのスタブ・コ
ード(即ちサービス項目)がクライアントにダウンロードされて、クライアント
がプリンタを利用できるようになる。同様に、ファックス・アイコン604、フ
ァイルシステム・アイコン606、又は投影画面アイコン608の選択で適当な
スタブ情報をダウンロードしクライアントがこれらのサービスを使用できるよう
になる。ファイルシステム・アイコン606はコンピュータ506のファイルシ
ステムを表わしている。
【0059】 しかしユーザがサービスを追加したいこともあるので、サービス追加ボタン6
10を選択することになる。サービス追加ボタン610を選択すると、図7に示
すように画面700がユーザに表示される。画面700はユーザがジンに追加し
たいラップトップ・コンピュータ514の利用可能なサービスを表わしている。
たとえば、ラップトップ・コンピュータ514の利用可能なサービスとしてはJ
ava空間702、ラップトップ・ファイルシステム704、データベース70
6、辞書708が挙げられる。ユーザがこれらのサービスのどれかを選択すると
、参照サービスへ自動的に追加されジンの他のユーザからも利用できるようにな
る。
【0060】 本発明に係る方法及びシステムは本発明の好適実施例を参照して説明したが、
請求の範囲に定義される本発明の精神及び範囲から逸脱することなく態様や詳細
に様々な変更を成し得ることは当業者には理解されよう。
【0061】
【図面の簡単な説明】
【図1】 図1は本発明に係る方法及びシステムを実施するのに適した分散システムを示
す。
【図2】 図2は図1に図示したコンピュータのさらに詳細なブロック図を示す。
【図3】 図3A及び図3Bは図1に図示した参照サービスをクライアントが使用する際
に実行されるステップのフローチャートを示す。
【図4】 図4はイベント関連処理を実行する際に図1の参照サービスにより実行される
ステップのフローチャートを示す。
【図5】 図5は本発明に係る多数のデバイスを含む会議室を示す。
【図6】 図6は図5の会議室で利用可能なサービスを表わすアイコンを表示する画面を
示す。
【図7】 図7は図5の会議室のコンピュータにより提供される利用可能なサービスを表
示する画面を示す。
───────────────────────────────────────────────────── フロントページの続き (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,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW (71)出願人 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America (72)発明者 シェフラー ロバート アメリカ合衆国、02144 マサチューセッ ツ州、サマビレ、ノース ストリート 96 (72)発明者 ウォルド ジェイムズ エイチ アメリカ合衆国、01826 マサチューセッ ツ州、ドラカット、ルビー ロード 155 (72)発明者 アーノルド ケネス シー アール シー アメリカ合衆国、02173 マサチューセッ ツ州、レキシントン、ムーン ヒル ロー ド 7 Fターム(参考) 5B045 GG01 5B081 AA09 CC41 5B098 AA10 GD01 HH01 【要約の続き】

Claims (39)

    【特許請求の範囲】
  1. 【請求項1】 分散システムにおいて利用可能な関連ネットワーク・サービ
    スを備える参照サービスを有し前記ネットワーク・サービスにアクセスするクラ
    イアントを有する前記分散システムにおける方法であって、 前記分散システムに装置を追加し、前記装置は新規サービスを有する新規クラ
    イアントを含むステップと、 前記新規クライアントによりオブジェクトをブロードキャストし、前記オブジ
    ェクトが前記新規クライアントと通信するためのコードを含むステップと、 ディスカバリ・サーバにより前記オブジェクトを受信し、また前記コードを使
    用して前記ディスカバリ・サーバにより前記クライアントへ前記参照サービスの
    参照を送信するステップと、 前記新規クライアントにより前記参照を受信するステップと、 前記クライアントにより前記参照サービスへ前記新規サービスの表示を追加し
    て前記参照サービスに関連する前記ネットワーク・サービスが前記新規サービス
    の前記追加の間もアクセスできるようにするステップとを含むことを特徴とする
    動的参照サービス方法。
  2. 【請求項2】 前記追加ステップが、前記新規サービスへのアクセスを助け
    るためのコード及びデータを含むスタブを前記参照サービスへ追加するステップ
    を含むことを特徴とする請求項1に記載の動的参照サービス方法。
  3. 【請求項3】 前記追加ステップが、前記参照サービスへサービス・オブジ
    ェクトを追加し、前記サービス・オブジェクトは前記新規サービスを実行するた
    めの関数を有するステップを含むことを特徴とする請求項1に記載の動的参照サ
    ービス方法。
  4. 【請求項4】 前記参照サービスから前記新規サービスの表示を削除するス
    テップをさらに含むことを特徴とする請求項1に記載の動的参照サービス方法。
  5. 【請求項5】 前記参照サービスが更新された時に通知を受信するように前
    記参照サービスに前記新規クライアントを登録するステップと、 更新がなされた時に前記参照サービスにより判定するステップと、 更新がなされたことを前記参照サービスが判定した時に前記新規クライアント
    へ通知を送信するステップとをさらに含むことを特徴とする請求項1に記載の動
    的参照サービス方法。
  6. 【請求項6】 前記登録ステップは、前記参照サービスにコールバック・ル
    ーチンを登録するステップを含み、前記送信ステップは、前記登録されたコール
    バック・ルーチンを呼び出すステップを含むことを特徴とする請求項5に記載の
    動的参照サービス方法。
  7. 【請求項7】 前記登録ステップは、前記参照サービスにパラメータ・オブ
    ジェクトを登録するステップを含み、前記呼び出しステップは、前記コールバッ
    ク・ルーチンへのパラメータとして前記パラメータ・オブジェクトを渡す前記登
    録されたコールバック・ルーチンを呼び出すステップを含むことを特徴とする請
    求項6に記載の動的参照サービス方法。
  8. 【請求項8】 データ処理システムで使用するために利用可能な関連サービ
    スを備えた参照サービスを有する前記データ処理システムにおける方法であって
    、 前記参照サービスを更新する要求を受信するステップと、 前記参照サービスを更新し前記更新により影響を受けないサービスは前記更新
    が行なわれている間も利用し続けられるようにするステップとからなることを特
    徴とする動的参照サービス方法。
  9. 【請求項9】 前記更新ステップは、前記参照サービスに新規サービスを関
    連付けるステップを含むことを特徴とする請求項8に記載の動的参照サービス方
    法。
  10. 【請求項10】 前記更新ステップは、前記参照サービスから前記関連サー
    ビスの一つの関連付けを外して前記一つのサービスが今後利用できないようにな
    るステップを含むことを特徴とする請求項8に記載の動的参照サービス方法。
  11. 【請求項11】 前記関連サービスは属性を有し、前記更新ステップは、
    前記関連サービスの一つの前記属性を変更するステップを含むことを特徴とする
    請求項8に記載の動的参照サービス方法。
  12. 【請求項12】 関連サービスを備える参照サービスを有するデータ処理シ
    ステムにおける方法であって、 前記参照サービスが更新された時に通知するように要求を受信するステップと
    、 前記参照サービスが更新された時点を判定するステップと、 前記参照サービスが更新されたことを判定した時に通知を生成するステップと
    を含むことを特徴とする動的参照サービス方法。
  13. 【請求項13】 前記受信ステップは、クライアントからの前記要求を受信
    するステップを含み前記生成ステップは、前記更新を前記クライアントに通知す
    るステップを含むことを特徴とする請求項12に記載の動的参照サービス方法。
  14. 【請求項14】 前記受信ステップは、第1のクライアントから前記要求を
    受信するステップを含み前記生成ステップは、第2のクライアントに前記更新を
    通知し、前記第2のクライアントは前記第1のクライアントとは異なるステップ
    を含むことを特徴とする請求項12に記載の動的参照サービス方法。
  15. 【請求項15】 前記受信ステップは、コールバック・ルーチンへの参照を
    受信するステップを含み、前記生成ステップは、前記コールバック・ルーチンを
    呼び出して前記通知を実行するステップを含むことを特徴とする請求項12に記
    載の動的参照サービス方法。
  16. 【請求項16】 前記受信ステップは、新規サービスが前記参照サービスに
    関連している時に通知するように前記要求を受信するステップを含み、前記判定
    ステップは、前記新規サービスが前記参照サービスに関連している時に判定する
    ステップを含み、前記生成ステップは、前記新規サービスが前記参照サービスに
    関連していることを判定した時に前記通知を生成するステップを含むことを特徴
    とする請求項12に記載の方法。
  17. 【請求項17】 前記受信ステップは、前記関連サービスの一つが前記参照
    サービスとの関連付けを外された時に通知するように前記要求を受信するステッ
    プを含み、前記判定ステップは、前記一つのサービスが前記参照サービスとの関
    連付けを外された時に判定するステップを含み、前記生成ステップは、前記一つ
    のサービスが前記参照サービスとの関連付けを外された時に前記通知を生成する
    ステップを含むことを特徴とする請求項12に記載の動的参照サービス方法。
  18. 【請求項18】 前記受信ステップは、少なくとも一つの前記関連サービス
    の属性が更新された時に通知するように前記要求を受信するステップを含み、前
    記判定ステップは、前記少なくとも一つの前記関連サービスの前記属性が更新さ
    れた時に判定するステップを含み、前記生成ステップは、前記少なくとも一つの
    前記関連サービスの前記属性が更新されたことを判定した場合に前記通知を生成
    するステップを含むことを特徴とする請求項12に記載の動的参照サービス方法
  19. 【請求項19】 関連サービスを備える参照サービスを有するデータ処理シ
    ステムにおける方法であって、 前記参照サービスが更新された時に通知するように前記参照サービスへ要求を
    送信するステップと、 前記参照サービスが更新されたことの通知を受信するステップとを含むことを
    特徴とする動的参照サービス方法。
  20. 【請求項20】 前記送信ステップは、クライアントにより前記要求を送信
    するステップを含み、前記受信ステップは、前記クライアントにより前記通知を
    受信するステップを含むことを特徴とする請求項19に記載の動的参照サービス
    方法。
  21. 【請求項21】 前記送信ステップは、第1のクライアントにより前記要求
    を送信するステップを含み、前記受信ステップは、前記第1のクライアントとは
    異なる第2のクライアントにより前記通知を受信するステップを含むことを特徴
    とする請求項19に記載の動的参照サービス方法。
  22. 【請求項22】 データ処理システムであって、 利用可能なサービスの表示を有する参照サービスと、 前記参照サービスを更新するための第1のクライアントと、 前記第1のクライアントが前記参照サービスを更新している間に前記参照サー
    ビスを利用する第2のクライアントと を含むメモリと、 前記参照サービス、前記第1のクライアント、前記第2のクライアントを実行
    するための少なくとも一つのプロセッサとを含むことを特徴とするデータ処理シ
    ステム。
  23. 【請求項23】 データ処理システムであって、 利用可能なサービスの表示を有する参照サービスであって、前記参照サービス
    が更新された時の通知要求を受信し、前記参照サービスが更新された時を判定し
    、前記参照サービスが更新された時に通知を生成する前記参照サービスと、 前記参照サービスが更新された時に通知するように前記参照サービスへ要求を
    送信するクライアントと、を含むメモリと、 前記クライアント及び前記参照サービスを実行するための少なくとも一つのプ
    ロセッサと、を含むことを特徴とするデータ処理システム。
  24. 【請求項24】 前記メモリはさらに前記参照サービスが更新されたことの
    通知を受信するための第2のクライアントを含むことを特徴とする請求項23に
    記載のデータ処理システム。
  25. 【請求項25】 利用可能な関連ネットワーク・サービスを有する参照サー
    ビスにアクセスするために使用されるデータ構造を含むコンピュータで読み取り
    可能な記憶装置であって、前記データ構造は、 クライアントが使用して前記参照サービスに登録し前記参照サービスが更新さ
    れた時に前記参照サービスから通知を受信するようにするための通知メソッドを
    含むことを特徴とする装置。
  26. 【請求項26】 データ処理システムを制御してメソッドを実行させるため
    の命令を含み、前記データ処理システムは前記データ処理システムで利用できる
    関連サービスを有する参照サービスを有し、前記メソッドは、前記参照サービス
    を更新する要求を受信するステップと、前記参照サービスを更新して前記更新に
    より影響を受けないサービスが前記更新の行なわれている間に利用し続けられる
    ようにするステップとを含むことを特徴とするコンピュータで読み取り可能な媒
    体。
  27. 【請求項27】 前記更新ステップは、前記参照サービスに新規サービスを
    関連付けるステップを含むことを特徴とする請求項26に記載のコンピュータで
    読み取り可能な媒体。
  28. 【請求項28】 前記更新ステップは、前記参照サービスから前記関連サー
    ビスの一つの関連付けを外して前記一つのサービスが今後利用できなくなるよう
    にするステップを含むことを特徴とする請求項26に記載のコンピュータで読み
    取り可能な媒体。
  29. 【請求項29】 前記関連サービスは属性を有し、前記更新ステップは、
    前記関連サービスの一つの前記属性を変更するステップを含むことを特徴とする
    請求項26に記載のコンピュータで読み取り可能な媒体。
  30. 【請求項30】 データ処理システムを制御してメソッドを実行させるため
    の命令を含み、前記データ処理システムは関連サービスを備える参照サービスを
    有し、前記メソッドは、 前記参照サービスが更新される時に通知するように前記参照サービスによる要
    求を受信するステップと、 前記参照サービスが更新された時に判定するステップと、 前記参照サービスが更新されたことを判定した場合に通知を生成するステップ
    と、を含むことを特徴とするコンピュータで読み取り可能な媒体。
  31. 【請求項31】 前記受信ステップは、クライアントからの前記要求を受信
    するステップを含み、前記生成ステップは、前記更新を前記クライアントに通知
    するステップを含むことを特徴とする請求項30に記載のコンピュータで読み取
    り可能な媒体。
  32. 【請求項32】 前記受信ステップは、第1のクライアントからの前記要求
    を受信するステップを含み、前記生成ステップは、前記更新を第2のクライアン
    トに通知し、前記第2のクライアントが前記第1のクライアントとは異なるステ
    ップを含むことを特徴とする請求項30に記載のコンピュータで読み取り可能な
    媒体。
  33. 【請求項33】 前記受信ステップは、コールバック・ルーチンへの参照を
    受信するステップを含み、前記生成ステップは、前記コールバック・ルーチンを
    呼び出して前記通知を実行するステップを含むことを特徴とする請求項30に記
    載のコンピュータで読み取り可能な媒体。
  34. 【請求項34】 前記受信ステップは、新規サービスが前記参照サービスに
    関連付けられた時に通知するように前記要求を受信するステップを含み、前記判
    定ステップは、前記新規サービスが前記参照サービスに関連付けられた時に判定
    するステップを含み、前記生成ステップは、前記新規サービスが前記参照サービ
    スに関連付けられたことを判定した時に前記通知を生成するステップを含むこと
    を特徴とする請求項30に記載のコンピュータで読み取り可能な媒体。
  35. 【請求項35】 前記受信ステップは、前記関連サービスの一つが前記参照
    サービスとの関連付けを外された時に通知するように前記要求を受信するステッ
    プを含み、前記判定ステップは、前記一つのサービスが前記参照サービスとの関
    連付けを外された時に判定するステップを含み、前記生成ステップは、前記一つ
    のサービスが前記参照サービスとの関連付けを外されたことを判定した時に前記
    通知を生成するステップを含むことを特徴とする請求項30に記載のコンピュー
    タで読み取り可能な媒体。
  36. 【請求項36】 前記受信ステップは、少なくとも一つの前記関連サービス
    の属性が更新された時に通知するように前記要求を受信するステップを含み、前
    記判定ステップは、前記少なくとも一つの前記関連サービスの前記属性が更新さ
    れた時に判定するステップを含み、前記生成ステップは、前記少なくとも一つの
    前記関連サービスの前記属性が更新されたことを判定した時に前記通知を生成す
    るステップを含むことを特徴とする請求項30に記載のコンピュータで読み取り
    可能な媒体。
  37. 【請求項37】 データ処理システムを制御してメソッドを実行させるため
    の命令を含み、前記データ処理システムは、関連サービスを備える参照サービス
    を有し、前記メソッドは、前記参照サービスが更新される時に通知するように前
    記参照サービスへ要求を送信するステップと、前記参照サービスが更新されたこ
    との通知を受信するステップとを含むことを特徴とするコンピュータで読み取り
    可能な媒体。
  38. 【請求項38】 前記送信ステップは、クライアントにより前記要求を送信
    するステップを含み、前記受信ステップは、前記クライアントにより前記通知を
    受信するステップを含むことを特徴とする請求項37に記載のコンピュータで読
    み取り可能な媒体。
  39. 【請求項39】 前記送信ステップは、第1のクライアントにより前記要求
    を送信するステップを含み、前記受信ステップは、前記第1のクライアントとは
    異なる第2のクライアントにより前記通知を受信するステップを含むことを特徴
    とする請求項37に記載のコンピュータで読み取り可能な媒体。
JP2000533811A 1998-02-26 1999-02-17 分散システムにおける動的参照サービス Pending JP2002505467A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,931 US6185611B1 (en) 1998-03-20 1998-03-20 Dynamic lookup service in a distributed system
US09/044,931 1998-03-20
PCT/US1999/003396 WO1999044127A1 (en) 1998-02-26 1999-02-17 Dynamic lookup service in a distributed system

Publications (1)

Publication Number Publication Date
JP2002505467A true JP2002505467A (ja) 2002-02-19

Family

ID=26722170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533811A Pending JP2002505467A (ja) 1998-02-26 1999-02-17 分散システムにおける動的参照サービス

Country Status (7)

Country Link
US (1) US20010002473A1 (ja)
EP (1) EP1057107A1 (ja)
JP (1) JP2002505467A (ja)
KR (1) KR20010041294A (ja)
CN (1) CN1298503A (ja)
AU (1) AU3297199A (ja)
WO (1) WO1999044127A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757729B1 (en) * 1996-10-07 2004-06-29 International Business Machines Corporation Virtual environment manager for network computers
US6594700B1 (en) * 1999-06-14 2003-07-15 International Business Machines Corporation System and method for implementing a universal service broker interchange mechanism
US6711157B1 (en) * 1999-08-24 2004-03-23 Telefonaktiebolaget L M Ericsson (Publ) System and method of creating subscriber services in an IP-based telecommunications network
US8135796B1 (en) * 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
DE10028371B4 (de) * 2000-06-08 2013-01-17 Siemens Aktiengesellschaft Verfahren und Anordnung zur gesicherten Nutzung eines Dienstes
US6757262B1 (en) 2000-09-15 2004-06-29 Motorola, Inc. Service framework supporting remote service discovery and connection
US6895444B1 (en) * 2000-09-15 2005-05-17 Motorola, Inc. Service framework with local proxy for representing remote services
AU2001290876A1 (en) * 2000-09-15 2002-03-26 Motorola, Inc. Service framework with consolidation of services
DE10056205C2 (de) * 2000-11-13 2002-09-19 Deutsch Zentr Luft & Raumfahrt Verfahren zur Funkübertragung von Dienstedaten zwischen einer Funkbake und einem mobilen elektronischen Informationsgerät mit Funkanschluß
US7136908B2 (en) * 2001-01-29 2006-11-14 Intel Corporation Extensible network services system
FI20015008A (fi) * 2001-06-08 2002-12-09 Sonera Oyj Hajautettu oliokomponenttiverkko
FI20015009A (fi) * 2001-06-08 2002-12-09 Sonera Oyj Hajautettu oliokomponenttiverkko
US7275238B2 (en) * 2002-03-28 2007-09-25 International Business Machines Corporation Program event activated and configured debugger method, system, article of manufacture, computer program product, and data structure
SE0201287D0 (sv) * 2002-04-25 2002-04-25 Ericsson Telefon Ab L M Service Network Framework
JP3973986B2 (ja) * 2002-07-12 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ ノード探索方法、ノード、通信システム及びノード探索プログラム
CN1181648C (zh) * 2002-09-06 2004-12-22 联想(北京)有限公司 一种网络上设备间自动查找的方法
CN100391208C (zh) * 2002-12-31 2008-05-28 北京因特时代信息技术有限公司 一种分布式网络服务发布实现方法
JP2004288066A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd サービス検索装置、サービス検索方法及びプログラム、並びに文書処理システム
JP2004288067A (ja) * 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 連携処理装置、連携処理方法及びプログラム
KR100493898B1 (ko) * 2003-04-16 2005-06-10 삼성전자주식회사 피제어 디바이스의 리스트를 제공하는 네트워크 장치,시스템 및 방법
CN100418089C (zh) * 2003-08-20 2008-09-10 苹果公司 加速本地高速缓存中资源记录到期的方法和装置
FR2861864A1 (fr) * 2003-11-03 2005-05-06 France Telecom Procede de notification de changements d'etat des ressources d'un reseau a destination d'au moins une application, programme d'ordinateur et systeme de notification de changements d'etat pour la mise en oeuvre de ce procede
US7292579B2 (en) * 2005-04-29 2007-11-06 Scenera Technologies, Llc Processing operations associated with resources on a local network
EP2002334A1 (en) * 2006-03-31 2008-12-17 British Telecommunications Public Limited Company Xml-based transfer and a local storage of java objects
US8984534B2 (en) * 2006-03-31 2015-03-17 British Telecommunications Public Limited Company Interfacing between a receiving component of a server application and a remote application
GB2445168A (en) * 2006-12-29 2008-07-02 Symbian Software Ltd Loading resource administer program into main or higher memory depending on the type of usage requests being sent to the program.
US9152401B2 (en) * 2009-05-02 2015-10-06 Citrix Systems, Inc. Methods and systems for generating and delivering an interactive application delivery store
KR102158842B1 (ko) * 2012-12-17 2020-09-22 삼성전자주식회사 사용자 인터페이스를 제공하는 방법 및 그 디바이스

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US111814A (en) * 1871-02-14 Improvement in breech-loading fire-arms
US5132A (en) * 1847-05-29 brown
US1919842A (en) * 1927-03-25 1933-07-25 Air Liquide Process for the treatment of gaseous mixtures containing hydrogen
SE319706B (ja) * 1965-03-05 1970-01-19 Aga Ab
FR2476349A1 (fr) * 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
US4800488A (en) * 1985-11-12 1989-01-24 American Telephone And Telegraph Company, At&T Bell Laboratories Method of propagating resource information in a computer network
US4819233A (en) * 1987-04-08 1989-04-04 Westinghouse Electric Corp. Verification of computer software
JPH0293952A (ja) * 1988-09-30 1990-04-04 Hitachi Ltd 仮想計算機システム
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US8700458B2 (en) * 1989-05-01 2014-04-15 Catalina Marketing Corporation System, method, and database for processing transactions
US5305196A (en) * 1989-05-01 1994-04-19 Credit Verification Corporation Check transaction processing, database building and marketing method and system utilizing automatic check reading
JPH05233326A (ja) * 1991-12-19 1993-09-10 Internatl Business Mach Corp <Ibm> コンピュータシステムにおいて事象を取り扱う方法及びシステム
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
US5303042A (en) * 1992-03-25 1994-04-12 One Touch Systems, Inc. Computer-implemented method and apparatus for remote educational instruction
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
JPH0827769B2 (ja) * 1992-10-30 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション 通信インターフェースの生成システム及びその方法
US5548724A (en) * 1993-03-22 1996-08-20 Hitachi, Ltd. File server system and file access control method of the same
CA2121612A1 (en) * 1993-05-21 1994-11-22 Chung-Hwa Herman Rao Methods and apparatus for making and using distributed applications
US5506984A (en) * 1993-06-30 1996-04-09 Digital Equipment Corporation Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes
US5446901A (en) * 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5590181A (en) * 1993-10-15 1996-12-31 Link Usa Corporation Call-processing system and method
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
AU6702594A (en) * 1993-12-17 1995-07-03 Taligent, Inc. Object-oriented distributed communications directory service
US5392280A (en) * 1994-04-07 1995-02-21 Mitsubishi Electric Research Laboratories, Inc. Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks
US5634008A (en) * 1994-07-18 1997-05-27 International Business Machines Corporation Method and system for threshold occurrence detection in a communications network
EP0694837A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
WO1996018947A1 (en) * 1994-12-13 1996-06-20 Novell, Inc. Method and apparatus to update or change a network directory
US5608903A (en) * 1994-12-15 1997-03-04 Novell, Inc. Method and apparatus for moving subtrees in a distributed network directory
US5677851A (en) * 1994-12-15 1997-10-14 Novell, Inc. Method and apparatus to secure digital directory object changes
US5889988A (en) * 1995-01-03 1999-03-30 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
US5491791A (en) * 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment
US5661191A (en) * 1995-01-13 1997-08-26 Mitsubishi Chemical Basf Company Limited Expandable rubber-modified styrene resin beads, expanded beads thereof, and expanded molded articles obtained therefrom
US6363409B1 (en) * 1995-04-24 2002-03-26 Microsoft Corporation Automatic client/server translation and execution of non-native applications
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5903731A (en) * 1995-06-14 1999-05-11 Us West Technologies, Inc. System and associated method for re-engineering a telecommunications network support system with object-oriented translators
US5644720A (en) * 1995-07-31 1997-07-01 West Publishing Company Interprocess communications interface for managing transaction requests
US5758083A (en) * 1995-10-30 1998-05-26 Sun Microsystems, Inc. Method and system for sharing information between network managers
US5996075A (en) * 1995-11-02 1999-11-30 Sun Microsystems, Inc. Method and apparatus for reliable disk fencing in a multicomputer system
US5925108A (en) * 1995-11-03 1999-07-20 Novell, Inc. Event notification in a computer system
US6067575A (en) * 1995-12-08 2000-05-23 Sun Microsystems, Inc. System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs
US5915112A (en) * 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US5887172A (en) * 1996-01-10 1999-03-23 Sun Microsystems, Inc. Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends
US5761507A (en) * 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
US5754977A (en) * 1996-03-06 1998-05-19 Intervoice Limited Partnership System and method for preventing enrollment of confusable patterns in a reference database
US5764915A (en) * 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
US5732706A (en) * 1996-03-22 1998-03-31 Lockheed Martin Ir Imaging Systems, Inc. Ultrasonic array with attenuating electrical interconnects
US6101528A (en) * 1996-03-27 2000-08-08 Intel Corporation Method and apparatus for discovering server applications by a client application in a network of computer systems
US6182083B1 (en) * 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
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
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6226746B1 (en) * 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US5768524A (en) * 1996-04-30 1998-06-16 International Business Machines Corporation Method for processing requests for notice of events
EP0805393B1 (en) * 1996-04-30 2011-11-09 International Business Machines Corporation Method and apparatus for managing membership of a group of processors in a distributed computing environment
US6018619A (en) * 1996-05-24 2000-01-25 Microsoft Corporation Method, system and apparatus for client-side usage tracking of information server systems
US6199116B1 (en) * 1996-05-24 2001-03-06 Microsoft Corporation Method and system for managing data while sharing application programs
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
SG67354A1 (en) * 1996-06-27 1999-09-21 Inst Of Systems Science Nation Computationally efficient method for trusted and dynamic digital objects dissemination
US5758077A (en) * 1996-08-02 1998-05-26 Hewlett-Packard Company Service-centric monitoring system and method for monitoring of distributed services in a computing network
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6212578B1 (en) * 1996-09-09 2001-04-03 Oracle Corporation Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
US6757729B1 (en) * 1996-10-07 2004-06-29 International Business Machines Corporation Virtual environment manager for network computers
US5832529A (en) * 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6058381A (en) * 1996-10-30 2000-05-02 Nelson; Theodor Holm Many-to-many payments system for network content materials
US6167520A (en) * 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US6034925A (en) * 1996-12-02 2000-03-07 Thomson Consumer Electronics, Inc. Accessing control method for identifying a recording medium in a jukebox
US6061740A (en) * 1996-12-09 2000-05-09 Novell, Inc. Method and apparatus for heterogeneous network management
JPH10171701A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 手続実行装置及び方法
US6105069A (en) * 1997-01-22 2000-08-15 Novell, Inc. Licensing controller using network directory services
US5933647A (en) * 1997-01-24 1999-08-03 Cognet Corporation System and method for software distribution and desktop management in a computer network environment
US6052761A (en) * 1997-01-31 2000-04-18 Hewlett-Packard Company Increment update in an SCI based system
US5892922A (en) * 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US7203769B2 (en) * 1997-03-14 2007-04-10 International Business Machines Corporation Bootstrapping technique for distributed object client systems
US6643696B2 (en) * 1997-03-21 2003-11-04 Owen Davis Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US6189046B1 (en) * 1997-03-27 2001-02-13 Hewlett-Packard Company Mechanism and method for merging cached location information in a distributed object environment
US6408342B1 (en) * 1997-03-28 2002-06-18 Keith E. Moore Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
US6104716A (en) * 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US6192044B1 (en) * 1997-03-31 2001-02-20 Intel Corporation Employing a look-up service and a callee connection service to establish a network phone call between a caller and a callee
US6041351A (en) * 1997-04-17 2000-03-21 Newmoon.Com Network traffic by instruction packet size reduction
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6061726A (en) * 1997-05-27 2000-05-09 Novell, Inc. Dynamic rights assignment apparatus and method using network directory services
US6219675B1 (en) * 1997-06-05 2001-04-17 Microsoft Corporation Distribution of a centralized database
US6378001B1 (en) * 1997-06-18 2002-04-23 International Business Machines Corp. Collaborative framework with shared objects
US5905868A (en) * 1997-07-22 1999-05-18 Ncr Corporation Client/server distribution of performance monitoring data
US6343308B1 (en) * 1997-08-14 2002-01-29 International Business Machines Corporation Systems, methods and computer programs for mixing different versions of Java classes
US6078655A (en) * 1997-08-27 2000-06-20 At&T Corp Automatic international reattempt method and apparatus
US6052724A (en) * 1997-09-02 2000-04-18 Novell Inc Method and system for managing a directory service
US6199068B1 (en) * 1997-09-11 2001-03-06 Abb Power T&D Company Inc. Mapping interface for a distributed server to translate between dissimilar file formats
US6253256B1 (en) * 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6032151A (en) * 1997-11-17 2000-02-29 Sun Microsystems, Inc. Database system employing polymorphic entry and entry matching
US6704803B2 (en) * 1998-01-26 2004-03-09 International Business Machines Corporation Method and system for distributing data events over an information bus
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software
US6185602B1 (en) * 1998-06-29 2001-02-06 Sony Corporation Multi-user interaction of multimedia communication
US6108346A (en) * 1998-08-27 2000-08-22 Xiox Corporation Combined synchronous and asynchronous message transmission
US6269401B1 (en) * 1998-08-28 2001-07-31 3Com Corporation Integrated computer system and network performance monitoring
US6301613B1 (en) * 1998-12-03 2001-10-09 Cisco Technology, Inc. Verifying that a network management policy used by a computer system can be satisfied and is feasible for use
US6505248B1 (en) * 1999-03-24 2003-01-07 Gte Data Services Incorporated Method and system for monitoring and dynamically reporting a status of a remote server
US6578074B1 (en) * 1999-06-25 2003-06-10 Mediaone Group, Inc. Provisioning server enhancement
US6564174B1 (en) * 1999-09-29 2003-05-13 Bmc Software, Inc. Enterprise management system and method which indicates chaotic behavior in system resource usage for more accurate modeling and prediction
US6757262B1 (en) * 2000-09-15 2004-06-29 Motorola, Inc. Service framework supporting remote service discovery and connection
JP2002132739A (ja) * 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体

Also Published As

Publication number Publication date
CN1298503A (zh) 2001-06-06
KR20010041294A (ko) 2001-05-15
US20010002473A1 (en) 2001-05-31
AU3297199A (en) 1999-09-15
EP1057107A1 (en) 2000-12-06
WO1999044127A1 (en) 1999-09-02

Similar Documents

Publication Publication Date Title
US6185611B1 (en) Dynamic lookup service in a distributed system
JP2002505467A (ja) 分散システムにおける動的参照サービス
US6604127B2 (en) Dynamic lookup service in distributed system
US6598094B1 (en) Method and apparatus for determining status of remote objects in a distributed system
US20220070122A1 (en) Method and Apparatus for Composite User Interface Generation
US6463446B1 (en) Method and apparatus for transporting behavior in an event-based distributed system
JP4729172B2 (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
US6134603A (en) Method and system for deterministic hashes to identify remote methods
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
US6708171B1 (en) Network proxy
JP2002505464A (ja) 分散システムの装置との通信に用いられるダウンロード可能なコードを供給するための装置及び方法
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
US6629154B1 (en) Method and system for deterministic hashes to identify remote methods
US6832223B1 (en) Method and system for facilitating access to a lookup service
JP2002505553A (ja) 多様性トークン・ベース・コントロール
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
JP2002505474A (ja) ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム
EP1064599B1 (en) Method and apparatus for determining status of remote objects in a distributed system
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
WO2000077619A2 (en) Dynamic lookup service in a distributed system
Cable Extensible Runtime Containment and Server Protocol for JavaBeans Version 1.0
Hua et al. A distributed computing model based on multiserver
Soman Data Persistence Service in FIPER