JPH09171465A - 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法 - Google Patents

異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法

Info

Publication number
JPH09171465A
JPH09171465A JP8194169A JP19416996A JPH09171465A JP H09171465 A JPH09171465 A JP H09171465A JP 8194169 A JP8194169 A JP 8194169A JP 19416996 A JP19416996 A JP 19416996A JP H09171465 A JPH09171465 A JP H09171465A
Authority
JP
Japan
Prior art keywords
naming
name
context
framework
computer
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
JP8194169A
Other languages
English (en)
Inventor
Rosanna K Lee
ロザンナ・ケイ・リー
Rangaswamy Vasudevan
ランガスワミー・ヴァスデヴァン
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
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09171465A publication Critical patent/JPH09171465A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 システム実施者がクライアント・アプリケー
ションを中断せずに、新しい命名システムを動的あるい
は静的にインストールすることを可能とする。 【解決手段】 本発明は4種類の名前サービス(アトム
名、複合名、部分コンポジット名およびコンポジット
名)に対する連合命名サービス・プロバイダ・インタフ
ェース(「FN SPI」)を、クライアント・アプリ
ケーションと名前サービスの間にあり、コンポジット名
の分解のための呼出しの変換およびアドミニストレーシ
ョンをサポートしていて、クライアント・アプリケーシ
ョンが利用可能なFN SPI(所与のシステムに2つ
以上のFN SPIがあってもよい)を適切に使用する
ことを可能とする「FNフレームワーク」という機構と
ともに含んでいる改善された連合命名フレームワーク・
システムを提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は分散コンピューティ
ング・システム、クライアント・サーバ・コンピューテ
ィングおよびオブジェクト指向システムの分野に関す
る。具体的にいうと、本発明は分散コンピューティング
・システムにおける命名サービスおよびディレクトリ・
システムの分野に関する。
【0002】
【従来の技術】クライアント・サーバ・コンピューティ
ングにおいては、一般に、コンピュータを接続している
ネットワークによって互いに通信できる一連のコンピュ
ータがある。これらのコンピュータの中には、他のコン
ピュータに対する機能のサービスのプロバイダとして働
くものがある。このようなサービスないし機能のプロバ
イダは、「サーバ」といわれており、このようなサービ
スないし機能の消費側は「クライアント」と呼ばれる。
クライアント・サーバ・モデルは、同一のコンピュータ
で動作している個別のプログラムが、何らかの保護機構
を介して互いに通信を行い、機能のプロバイダおよび消
費側として働いている、と一般化される。
【0003】オブジェクト指向システムにおいて、オブ
ジェクトは、データと、このデータを操作するために呼
び出すことのできる操作とからなるコンポーネントであ
る。この操作はオブジェクトに呼出しを送ることによ
り、オブジェクト上に呼び出される。各オブジェクトは
オブジェクト・タイプを有している。オブジェクト・タ
イプはそのタイプのオブジェクトで行うことのできる操
作を定義する。オブジェクト操作はオブジェクト自体と
は無関係に実施される。さらに、あるオブジェクト・タ
イプは他のオブジェクト・タイプに対して定義され、実
施されたオブジェクト操作を継承することもできる。オ
ブジェクト指向設計とプログラミング技法の詳細につい
ては、Bertrand Meyerの「Object
−oriented Software Constr
uction」(Prentice−Hall,198
8年)を参照されたい。
【0004】クライアント・サーバ・モデルに基づくオ
ブジェクト指向分散システムには、オブジェクト指向イ
ンタフェースをクライアントに提供するサーバがある。
これらのサーバはデータと関連するプログラム命令から
なるオブジェクトをサポートしている。クライアントは
これらのオブジェクトにアクセスして、これらに呼出し
を実行することができる。これらの呼出しはクライアン
トからサーバに伝送される。サーバにおいて、これらの
呼出しはオブジェクトに関連したソフトウェアによって
実行される。これらの呼出しの結果はクライアントに戻
される。
【0005】クライアント・アプリケーションないしプ
ログラムとは、オブジェクト・ハンドルないしオブジェ
クト名による特定のオブジェクトを指す。オブジェクト
名はオブジェクト(「ターゲット・オブジェクト」)を
探し出し、呼出しをこれに対して実行できるようにする
ために使用される。クライアント・プログラムは通常、
他のプログラムによってオブジェクト名が与えられた
り、あるいはプログラムの開始時にこれを継承する。所
与のクライアント・プログラムが特定のオブジェクトに
対するオブジェクト名を有している場合には、そのクラ
イアント・プログラムはそのオブジェクト名のコピーを
他のクライアント・プログラムに渡すことができる。第
2のクライアント・プログラムは次いで、そのオブジェ
クト名を使用して、そのオブジェクトにアクセスするこ
とができる。クライアントはオブジェクトの場所や、あ
るいは分散コンピュータ・システム内のどこかにあるコ
ンピュータにあるオブジェクトのインプリメンテーショ
ンについての情報を持っていない。オブジェクトの名前
によるオブジェクトに対するクライアントの呼出しは、
「命名ないしディレクトリ・サービス」によって可能と
される。
【0006】命名ないしディレクトリ・サービスはあら
ゆるコンピュータ・システムにおいて基本的な機能であ
る。これは名前をオブジェクトに関連づけ、与えられた
名前によってオブジェクトを見つけだす手段である。命
名サービスは次のものに対する操作をもたらす。 ・名前をオブジェクトに関連づける(バインドする) ・名前をオブジェクトに分解する(ルックアップする) ・バインドの除去、名前のリスティング、名前変更など
これらの基本的な命名操作に加えて、サービスは属性を
取り扱う次の操作ももたらす。 ・命名されたオブジェクトに関連づけられた属性を検査
する ・命名されたオブジェクトに関連づけられた属性を修正
する ・属性を使用してオブジェクトを探す、など
【0007】従来のシステムにおいて、命名サービスが
独立したサービスであることはあまりない。通常は、フ
ァイル・システム、データベース、デスクトップなどの
他のサービスに組み込まれている。たとえば、ファイル
・システムはファイルおよびディレクトリに対する命名
サービスを含んでおり、スプレッドシートはセルおよび
マクロに対する命名サービスを有している。
【0008】大規模な分散コンピューティング環境に
は、個別にアクセスするか、協働してアクセスするかし
て、コンポジット名を分解することのできる多くの異な
る命名システムを有している。「コンポジット名」とは
複数の命名システムにまたがる名前である。これはゼロ
ないし複数のコンポーネントの番号付きリストからなっ
ている。各コンポーネントは単一の命名システムの名前
スペースからのストリング名である。さらに、異なる命
名システムからの名前を、「コンポジット名」の分解を
容易とするように実施できる「連合命名システム」に組
み合わせるプロトコルおよびプロセスのためのシステム
が開発されている。参照することによって、本明細書の
一部となる「Apparatus and Metho
d fora Federated Naming S
ystem which CanResolve a
Composite Name Composed o
f Names from Any Number o
f DisparateNaming System
s」という名称の、Rangaswamy Vasud
evanに対して1994年12月27日付で発行され
た米国特許第5377323号を参照されたい。世界中
のもっとも大きな情報システム・サプライヤ、ユーザ組
織およびソフトフェア会社のほとんどによってサポート
されている独立した世界的な開放型システム組織である
X/Openは、クライアント(アプリケーション・プ
ログラム)が「連合命名システム」といわれるものにア
クセスする標準で画定された方法を採択している。参照
することによって、本明細書の一部となる「Feder
ated Naming:The XFN Speci
fication]、1994年7月、X/Open
Company Limited,ISBN:1−85
912−045−8という名称の暫定仕様書を参照され
たい。連合命名はコンポジット名をオブジェクト参照に
分解し、コンポジット名をオブジェクト参照にバインド
し、名前と参照のバインドを含んでいる命名コンテキス
トをリストする操作を含んでいる一連のアプリケーショ
ン・プログラム・インタフェースからなっている。さら
に、インタフェースはコンポジット名およびオブジェク
ト参照を取り扱う操作を含んでいる。
【0009】
【発明が解決しようとする課題】命名およびディレクト
リ・サービス・プロバイダが個々の命名およびディレク
トリ操作を連合命名システム操作に組み込み、新しい任
意の命名およびディレクトリ・システムを実行時に、ア
プリケーションの再コンパイル、再リンキング、あるい
はアプリケーションを停止することなく、アプリケーシ
ョンにアクセス可能とする方法がなければならない。
【0010】たとえば、X/Open XFN仕様書で
定義されたインタフェースは自律型の命名およびディレ
クトリ・システムへの複合アクセスおよび個別アクセス
を必要とするクライアント・プログラムを大幅に単純化
しているが、命名またはディレクトリ・サービス・プロ
バイダ・プログラムがそれぞれのサービスを命名フェデ
レーションに組み込むのは依然困難である。すなわち、
連合命名システムに対する操作はクライアント・プログ
ラムが「objectT=ctx−>OpenLook
up(name,&status)」型のコマンドを使
用して、コンテキスト「ctx」に関してコンポジット
名「name」によって命名されたオブジェクトに対す
る参照を得ることを比較的直接的なものとする。しかし
ながら、現時点では、新しい命名またはディレクトリ・
サービス・プロバイダ(以下で検討するところでは、命
名サービス・プロバイダという用語を、汎用性を損なう
ことなく、命名またはディレクトリ・サービス・プロバ
イダの代わりに使用する)を既存のシステムに統合する
ことがきわめて困難である。これが個々の既存の命名サ
ービス・プロバイダ・プログラムの変更/修正/増補を
含むことがしばしばある。すなわち、修正は、「nam
e」がアトム名である場合に、コンテキストctxでh
ead(name)にバインドされたオブジェクト参照
を、命名サービス・プロバイダ・プログラムが返さなけ
ればならず、他の場合には、次のコンテキスト(たとえ
ば、コンテキストcty)へのオブジェクト参照を、h
ead(cty)およびtail(name−cty)
を返すことによって返さなければならない「objec
tT=ctx−>OpenLookup(name,&
status)」型のコマンドへの応答に関連したタス
クを達成するのに直接的なものではなかった。そのクラ
イアント・アプリケーションの再コンパイルを必要とす
ることなく、あるいは「objectT=ctx−>O
penLookup(name,&status)」型
のコマンドを処理するのに必要な操作の結果として、新
しい命名サービスに対する命名サービス・プロバイダ・
プログラムを呼び出す必要がある場合に、そのクライア
ント・アプリケーションを停止し、再起動する必要なし
に、命名サービス・プロバイダへのこれらの修正の組込
みを行わなければならない場合に、この問題はさらに困
難なものとなる。
【0011】サービス・プロバイダ・プログラムを任意
の命名およびディレクトリ・システムに組み込み、クラ
イアントがこれらに個別に、あるいは複合して自動的に
アクセスできるようにする一様な方法を、従来技術は定
義していない。Sun Microsystems,I
nc.の子会社であるSunSoftが作成した、19
94年4月付けの「The 1994 Solaris
DeveloperConference」という名
称のCD−ROMが、1994年4月5日−7日にサン
フランシスコで開かれたSun Developers
Conferenceで配布された。このCD−RO
Mは多数のデモンストレーション・バイナリ・プログラ
ムと、1994年4月付けのSunSoftの「Fed
erated Naming Service」という
名称のポストスクリプト形式の論文を含んでいた。この
「Federated Naming Servic
e」は参照することによって、本明細書の一部となるも
のである。この論文は上記で概略を述べた連合命名シス
テムと関連する問題を説明しており、さらに、第5章
で、Solarisでの連合命名システム準拠の命名サ
ービスのフェデレーションをサポートするサービス・プ
ロバイダ・フレームワークを記載している。Solar
isはSun Microsystems,Inc.が
作成し、販売しているオペレーティング・システム環境
プロダクトである。この第5章はフレームワーク、実施
者がフレームワークを使用して、既存の命名システムと
新しい命名システムを連合する方法、および実施者が記
載されているツールキットを使用して連合命名サービス
のタスクを楽なものとする方法を記載している。残念な
がら、この論文で定義されている機構は、フェデレーシ
ョン内の命名システムが命名システムの間の境界がある
場所を示すのに異なる方法を有していることを対象とし
ていない。フェデレーション内の異なる命名システムか
らの名前を命名システムの境界がある場所を効果的に識
別して、コンポジット名内で構文の上で区別する方法は
ない。本発明は強い分離と弱い分離とが定義されている
改善された連合命名フレームワーク機構と、これらの命
名システムの境界がどこにあるかを判定するために設け
られた機構とを提供する。
【0012】したがって、本発明は開発者/メインテナ
ンス担当者が異なる命名サービス・プロバイダ・プログ
ラムを既存のシステムに統合し、クライアントが新たに
統合された命名またはディレクトリ・サービスに自動的
にアクセスでき、中断される必要のないようにするシス
テムおよび方法を規定する。
【0013】本発明は命名システムの境界が定義されて
いない連合命名システム操作が必要とする場合に、命名
サービス・プロバイダを既存の分散コンピューティング
・システムに実施する問題を解決するものである。以下
のことを行うシステムおよび方法を開示する。 ・命名サービス・プロバイダがその個々の命名およびデ
ィレクトリ操作を連合命名システム操作に組み込む方法
を単純化する。 ・新しい任意の命名およびディレクトリ・サービスがア
プリケーションの再コンパイル、再リンキングを行わず
に、あるいはアプリケーションを停止させずに、換言す
れば、混乱を引き起こさずに、実行時にアプリケーショ
ンにアクセスできるようにする。 ・それぞれの命名システムにおける強いあるいは弱い分
離に対するサポートを示すように構成された命名システ
ム機構を提供する。
【0014】
【課題を解決するための手段】本発明はサービス・プロ
バイダのニーズに合わせて、コンポジット命名またはア
トム命名のレベルで命名サービスの組込みを可能とす
る。この方法および装置は実行時に該当する命名または
ディレクトリ・サービス・プロバイダのインプリメンテ
ーションを識別し、呼び出す方法を含んでいる。これは
アプリケーションが複数の異なる命名システムの存在あ
るいはその場所に関する事前の知識なしに、これらの命
名システムを移動できることを意味する。装置の動的な
機能によって、任意の命名サービス・プロバイダを組み
込み、アプリケーションを中断させることなく、これら
のプロバイダにアクセスすることが可能となる。
【0015】本発明の一態様において、分散コンピュー
ティング・システムで使用される連合命名フレームワー
ク・システムが開示される。連合命名フレームワーク・
システムはクライアント・アプリケーションと、連合さ
せる必要がある1つまたは複数の命名サービスの間の中
間層として働き、それぞれの命名システムにおいて強い
または弱い分離のサポートを示すように構成された1つ
または複数の命名サービス機構を含んでいる連合命名フ
レームワーク機構を含んでいる。
【0016】本発明の他の態様において、連合命名フレ
ームワーク・システムは1つまたは複数の命名サービス
・プロバイダと通信するように構成された命名サービス
・プロバイダ・インタフェースを含んでいる。
【0017】本発明のさらに他の態様において、命名サ
ービス・プロバイダを既存のクライアントを中断するこ
となく、既存のシステムに追加することを可能とする機
構をもたらす方法が開示される。
【0018】本発明のさらにまた他の態様において、埋
め込まれたコンピュータ読取り可能コード機構を含んで
いるコンピュータで使用可能な媒体を有するコンピュー
タ・プログラム・プロダクトであって、コンピュータ読
取り可能コード機構が、クライアント・アプリケーショ
ンと、連合させる必要がある1つまたは複数の命名サー
ビスの間の中間層として働き、それぞれの命名システム
において強いまたは弱い分離のサポートを示すように構
成された1つまたは複数の命名サービス機構を含んでい
る連合命名フレームワーク機構を含んでいるコンピュー
タ・プログラム・プロダクトが開示される。
【0019】本発明のシステムの目的、特徴および利点
は以下の説明から明らかとなろう。
【0020】
【発明の実施の形態】表記および用語以下の詳細な説明
は大部分が、コンピュータ・メモリ内のデータ・ビット
に対する操作についてのアルゴリズムおよび記号の表記
によって示されている。これらのアルゴリズムの説明お
よび表記はデータ処理分野の技術者が、自分たちの作業
の主旨を他の技術者に最も効果的に伝えるために使用し
ている手段である。
【0021】アルゴリズムは、希望する結果につながる
一貫したステップのシーケンスである。これらのステッ
プは物理量の物理的な操作を必要とするものである。通
常、必ずしも必要ではないが、これらの量は記憶、転
送、組合せ、比較、あるいは取扱いを行える電気または
磁気信号の形式を取る。これらの信号をビット、値、要
素、記号、文字、項、数値などと呼ぶのが、主に共通の
用途の点から、多くの場合に便利なことが判明してい
る。しかしながら、これらおよび類似の用語が該当する
物理量と関連づけられるものであり、これらの量に適用
された便宜上のラベルにすぎないことに留意すべきであ
る。
【0022】さらに、行われる操作は人間の操作員が行
う知的な操作と共通して関連づけられる加算、比較など
の用語で呼ばれることがしばしばある。人間の操作員の
このような能力は、本発明の一部を形成する、本明細書
で記載する操作のいずれにも必要ではないし、多くの場
合は望ましくないものである。操作は機械の操作であ
る。本発明の操作を行うのに有用な機械は、汎用ディジ
タル・コンピュータまたは類似の装置を含んでいる。す
べての場合に、コンピュータを操作する際の方法の動作
と、コンピュテーション自体の方法との区別に留意すべ
きである。本発明は電気その他(たとえば、機械的、化
学的な)の物理信号を処理して、他の希望する物理信号
を発生する際にコンピュータを操作する方法のステップ
に関する。
【0023】本発明はこれらの操作を行う装置にも関す
る。この装置は必要な目的に合わせて特に構成されたも
のであっても、コンピュータに記憶されたコンピュータ
・プログラムによって選択的に活動化、あるいは再構成
される汎用コンピュータからなるものであってもよい。
本明細書に示すアルゴリズムは本来、特定のコンピュー
タまたは装置に関するものではない。詳細にいえば、各
種の汎用の機構を本発明の教示にしたがって書かれたプ
ログラムとともに使用することもできるし、あるいは必
要な方法ステップを行うための専用の装置を構築するの
が便利なこともある。各種のこれらの機構に必要な構造
は、以下の説明から明らかとなろう。
【0024】任意の命名サービスを分散コンピューティ
ング・システムの命名フェデレーションに組み込むシス
テムおよび方法を開示する。以下の説明において、説明
のため、特定のデータおよび構成を記載して本発明を完
全に理解できるようにする。本明細書に記載する好まし
い実施の形態は、Sun Microsystems
(R) ,Inc.が作成したSolaris(TM)オペレー
ティング・システムで使用されるように実施される。S
olarisはSun Microsystems,I
nc.の商標であり、Sun Microsystem
sは同社の登録商標である。しかしながら、当分野の技
術者には、本発明を特定の細部なしに実施でき、かつ各
種のコンピュータ・システムおよび各種の構成、あるい
は緊密結合プロセスの製品またはモデル、あるいは疎結
合マイクロプロセッサ・システムの各種の構成で実施す
ることができることが理解できよう。
【0025】本発明は一連の標準化された連合命名サー
ビス・プロバイダ・インタフェース(「FN SP
I」)を含んでいる連合命名フレームワーク(「FNフ
レームワーク」)用のシステムおよび方法である。本発
明によって、サービス・プロバイダのニーズに合わせ
て、コンポジット命名からアトム命名までの範囲のさま
ざまなレベルでの命名サービスの組込みが可能となる。
この方法および装置は実行時に該当する命名サービス・
プロバイダのインプリメンテーションを識別し、呼び出
す方法も含んでいる。このことはアプリケーションが複
数の異なる命名システムの存在あるいはその場所に関す
る事前の知識なしに、これらの命名システムを移動でき
ることを意味する。装置および方法の動的な性質によっ
て、任意の命名サービス・プロバイダを組み込み、アプ
リケーションを中断させることなく、これらのプロバイ
ダにアクセスすることが可能となる。
【0026】作動環境 本発明が使用される環境は汎用コンピュータ、ワークス
テーション、またはパーソナル・コンピュータが各種の
タイプの通信リンクによって接続されており、多くがオ
ブジェクトの形のプログラムおよびデータをシステムの
各種のメンバが利用して、システムの他のメンバによる
実行およびアクセスを可能とする一般的な分散コンピュ
ーティング・システムを包含している。汎用ワークステ
ーション・コンピュータの要素のいくつかを、図1に示
す。図には、入出力(「I/O」)部2、中央演算処理
装置(「CPU」)3およびメモリ部4を有するプロセ
ッサ1が示されている。I/O部2はキーボード5、表
示装置6、ディスク記憶装置9およびCD−ROM駆動
装置7に接続されている。CD−ROM駆動装置7はプ
ログラム10とデータを通常収めているCD−ROM媒
体8を読み取ることができる。本発明の装置および方法
を実現する機構を収めているコンピュータ・プログラム
・プロダクトは、メモリ部4に置かれていても、ディス
ク記憶装置9に置かれていても、あるいはこのようなシ
ステムのCD−ROM8に置かれていてもよい。図2は
個々のコンピュータ20、22および24が互いに接続
されており、おそらくは、通信リンク26を介して共用
メモリ装置28に接続されている典型的なマルチプロセ
ッサ分散コンピュータ・システムを示している。図3は
ユーザ30が第1のコンピュータ32でクライアント・
アプリケーション34を起動できる典型的なオブジェク
ト指向クライアント・サーバ構成を示している。クライ
アント・アプリケーション34はオブジェクト参照36
に対して呼出し40を行い、この参照は第2のコンピュ
ータ(サーバ)50にあるオブジェクト(「ターゲット
・オブジェクト」ともいう)のインプリメンテーション
46をポイントする。呼出し40は通信制御機構38に
渡され、この機構は呼出しをオブジェクト・インプリメ
ンテーション46が置かれているサーバ50に送る。こ
のオブジェクト・インプリメンテーション機構46は、
本来オブジェクト参照36を作成し、通常、オブジェク
ト・インプリメンテーションが最初に作成されたとき
に、ユーザが利用できるようにする。このオブジェクト
・インプリメンテーション機構46は呼出し処理を完了
すると、メッセージまたは希望する操作の結果を、通信
リンク42を介して、送信元のクライアント・アプリケ
ーション34に返す。このクライアント・サーバ・モデ
ルは通信機構の機能がオペレーティング・システム(図
4の62)によって行われるシングル・プロセッサ・ユ
ニットでも動作できる。
【0027】連合命名および定義の背景 本発明に密接な関係がある顕著な連合命名システムの概
念は、次のとおりである。
【0028】すべての名前は命名規則と呼ばれる一連の
構文規則によって生成される。アトム名とは命名規則に
よって定義された1つまたは複数の文字の分割不能なコ
ンポーネント・シーケンスである。命名規則は考えられ
るすべてのアトム名を定義する。複合名は1つまたは複
数のアトム名のシーケンスである。コンポジット名は1
つまたは複数の複合名のシーケンスである。各複合名は
異なる命名システムに属している。
【0029】コンテキストとは個別のアトム名との一連
のバインディングを含んでいるオブジェクトである。あ
らゆるコンテキストは関連する命名規則を有している。
コンテキストは参照をオブジェクトに返すルックアップ
(分解)操作をもたらす。また、名前のバインド、名前
のバインド解除、名前の変更、バインドされた名前のリ
スト、命名されたオブジェクトに関連した属性の検査お
よび取扱いなどを行う操作ももたらす。
【0030】命名システムは同じタイプ(同じ命名規則
を有している)であり、同一の構文の同じセットの操作
をもたらすコンテキストの接続されたセットである。
【0031】連合命名システムは標準インタフェースと
協働して、コンポジット名の名前分解を実現する自律型
の命名システムのセットである。それ故、連合命名シス
テムは2つ以上の命名システムにわたるコンテキストの
接続されたセットである。フェデレーションの2つの命
名システムの間の接続は、次命名システム・ポインタと
いう概念を使用して表され、実施することができる。次
命名システム・ポインタはフェデレーションの次の命名
システムにどのようにして到達するかに関する参照情報
を含んでいる。
【0032】フェデレーション内の命名システムは命名
システム境界によって分離されている。コンポジット名
を使用して、連合命令システムのオブジェクトを命名す
る。強い分離および弱い分離という用語はフェデレーシ
ョン内の異なる命名システムがコンポジット名内で構文
上どのように分離されているかを記述し、命名システム
の境界がどこにあるかを効果的に識別するために使用さ
れる。強い分離において、コンポジット・コンポーネン
ト名セパレータが命名システム境界を示すために使用さ
れる。弱い分離において、コンポジット・コンポーネン
ト名セパレータは必ずしも命名システムの境界を示すも
のではない。命名システムの境界は分解プロセスが進ん
だ場合に動的に決定されるか(動的な弱い分離とい
う)、命名システム固有の構文規則を使用して静的に決
定されるかする(静的な弱い分離という)。強い分離と
弱い分離は特定の命名システムの特性である。強く分離
された命名システムと弱く分離された命名システムは、
単一のフェデレーションで共存できる。
【0033】命名コンテキスト 命名コンテキストというこの概念が命名システムという
一般的な考え方の基本となるものであるから、コンテキ
ストの概念についてのいくつかの見方をここで説明す
る。図5を参照すると、コンテキスト・オブジェクトが
示されている。各種のメソッド386と、オブジェクト
参照にバインドされた名前のリストからなる状態384
を含んでいるコンテキスト・オブジェクト382が示さ
れている。オブジェクト参照はオブジェクト394など
のオブジェクトをポイントしていても、それ自体が同様
な操作(メソッド)と、他の参照、たとえば、オブジェ
クト392をポイントしているコンテキスト・オブジェ
クト396のものや、オブジェクト390をポイントし
ているコンテキスト・オブジェクト388のものにバイ
ンドされている名前を含んでいる状態を有している他の
コンテキスト・オブジェクト388、396をポイント
していてもかまわない。これらのオブジェクト394、
392および390は、その場所がオブジェクト名にバ
インドされた参照によって示されるオブジェクトのイン
プリメンテーションであることが理解されよう。
【0034】図6を参照すると、コンテキスト・オブジ
ェクトの他のビューが示されている400。コンテキス
ト・オブジェクト400は一連の名前−オブジェクト参
照アソシエーション(名前のバインディングとも呼ばれ
る)を保持しているテーブル401を含んでいる。好ま
しい実施の形態において、名前はこれらが使用されるコ
ンテキスト内でだけ意味を持っている。したがって、オ
ブジェクト参照をいくつかの異なるコンテキスト・オブ
ジェクトのいくつかの異なる名前に同時にバインドして
もかまわない。典型的な命名サービスのクライアント
は、コンテキスト・オブジェクト400のメソッド・テ
ーブル403で特定されたメソッドによって命名操作を
行う。好ましい実施の形態においては、たとえば、コン
テキスト・オブジェクトはオブジェクトの名前をルック
アップするメソッド408を有しているが、これはコン
テキスト内の所与の名前にバインドされたオブジェクト
参照をルックアップし、名前をオブジェクトにバインド
406し、これによって名前をオブジェクトの参照と関
連づけ、名前と関連づけられた参照とをリスト405す
るなどのことを意味する。
【0035】図5に示すように、コンテキスト・オブジ
ェクトは他のオブジェクトをポイントしてもかまわな
い。すなわち、あるコンテキスト・オブジェクトの名前
を第2のコンテキスト・オブジェクトの参照にバインド
することができる。他のコンテキスト・オブジェクト内
のあるコンテキスト・オブジェクトをバインドすると、
命名グラフが作成されるが、これはノードとラベル付き
のエッジを備えた有向グラフであって、ノードと外向き
のエッジがコンテキストである。エッジが他の命名シス
テムのコンテキストにつながっている場合、これは複数
の命名システムにわたる命名グラフを作成する。言い換
えると、名前スペースの構成、すなわち、ある名前スペ
ースが他の名前スペースに接続されている連合名前スペ
ースの作成が行われる。
【0036】命名サービス・プロバイダ 異なる命名システムは異なる機構を使用して、コンテキ
スト・オブジェクト同士をバインドし、オブジェクト名
を該当するオブジェクト・インプリメンテーションにマ
ップする。クライアントとこの命名構造の間のインタフ
ェースをもたらすために使用される機構が、命名サービ
ス・プロバイダである。図7には、これらの要素の間の
機能的な関係800が示されている。アプリケーション
(クライアント)802は、通常、コンテキスト・オブ
ジェクトに対して呼出しを実行する。この呼出し804
は名前、実行する操作、その操作に必要な1つまたは複
数の付加的なパラメータ、たとえば、「名前foo、操
作A」を含んでいる。この例について、fooがアトム
名であり、操作がfooによって指定されたコンテキス
ト・オブジェクトに対して行われるものと想定する。操
作がfooによって指定されたコンテキストではなく、
終わりから2番目のコンテキスト(bindなどの操作
の場合)に対して行われる場合には、以下の説明が若干
異なることとなる。すなわち、操作Aがコンテキスト・
オブジェクト820ではなく、コンテキスト・オブジェ
クト810によって行われることとなる。呼出し804
は通常、命名サービス・プロバイダ806に送られ、供
給されたコンテキスト・オブジェクトをまず探し出す。
次いで、「名前foo、操作A」808をそのコンテキ
スト・オブジェクト810に渡す。コンテキスト・オブ
ジェクト810はオブジェクト名fooをオブジェクト
のインプリメンテーションの場所にマップしようと試み
る。コンテキスト・オブジェクト810は参照locn
814にバインドされたその名前テーブル812で名前
fooを見つけだし、これを命名サービス・プロバイダ
806に返す816。命名サービス・プロバイダ806
は次いで、参照locn816を使用して、オブジェク
トfooのインプリメンテーション820のアドレスに
対するポインタを生成し、これを操作Aに与える81
8。コンテキスト・インプリメンテーション820は操
作Aに対応したメソッド824を行い822、結果82
6を命名サービス・プロバイダ806に返し、プロバイ
ダは呼出し側クライアント802に結果828を渡し、
これによって元の操作呼出し要求を完了する。他の実施
の形態は呼び出された操作の任意の結果を呼出し側クラ
イアント・アプリケーション802に直接返すコンテキ
スト・インプリメンテーション820をもたらす。当分
野の技術者には、元の名前をインプリメンテーションの
場所にマップするのに、複数のコンテキスト・オブジェ
クトが関与している場合に、命名サービス・プロバイダ
806が大幅に多くの活動を管理できることが認識され
よう。
【0037】複数の命名サービス・プロバイダが関与し
ている場合には、より複雑な状況が生じる。これは、コ
ンポジット名が複数の命名システムにわたっている場合
である。図8に示した例を考える。図8に示されている
システム900は、クライアント・アプリケーション9
02がコンポジット名y.x/i:j904を有してい
るオブジェクトに対する呼出しを、命名サービス・プロ
バイダM906に発行するシステムを示している。コン
ポジット名y.x/i:jは2つのコンポーネントy.
xとi:jからなっており、第1のコンポーネントy.
xは右から左へのドットで区切られた名前構文を持って
いる名前スペースからの複合名であり、一方、第2のコ
ンポーネントi:jは左から右へのコロンで区切られた
名前構文を持っている名前スペースからの複合名であ
る。
【0038】この命名サービス・プロバイダM906
は、コンテキスト・オブジェクトB914をポイントす
る参照912に名前部分x910を分解するコンテキス
ト・オブジェクトA908によって名前y.x/i:j
を分解しようと試みる。コンテキスト・オブジェクトB
914において、名前部分y916はエントリ918に
分解され、これは他の命名システムにおけるコンテキス
トに対する参照である。命名サービス・プロバイダに扱
えるものが同じ命名システムのコンテキストだけである
から、コンテキスト・オブジェクトB914は応答92
0をコンテキスト・オブジェクトA908へ送り、それ
故、922を命名サービス・プロバイダM906に送
り、これは924「名前(i:j)の残りを分解できま
せん」と通知する。この場合、命名サービス・プロバイ
ダM906は命名サービス・プロバイダN930を知っ
ておらず、したがって、クライアント・アプリケーショ
ン902に「要求されたオブジェクトの名前を分解でき
ません」というメッセージ926を送らなければならな
い。クライアント902が第2の命名サービス・プロバ
イダN930を呼び出すことを知っている場合には、呼
出しを行って、コンポジット名i:jの残り928を分
解することができる。この例において、第2の命名サー
ビス・プロバイダN930は名前の残りの部分を分解す
る方法を知っており、呼び出されたオブジェクト・イン
プリメンテーション958が最終的に呼び出され、呼出
しは正常に終了する。
【0039】図8について上述した例において、他の命
名サービス・プロバイダをシステムに追加する必要があ
る場合、クライアント902を修正しなければならな
い。名前i:jの残りを分解するためには、命名サービ
ス・プロバイダN930を呼び出すことを知っていなけ
ればならない。他の命名サービス・プロバイダを追加し
た場合、クライアントを修正し、これらのプロバイダを
知っているようにする必要がある。さらに、クライアン
ト902は異なる命名サービス・プロバイダへの呼出し
も管理している。クライアント・アプリケーションとそ
のプログラマがこれらの異なる命名サービス・プロバイ
ダを取り扱ったり、管理したりする必要がない方が望ま
しい。本発明が取り上げるのは、この問題である。
【0040】本発明の概要 「背景」の項で説明したさまざまな形式の名前−−アト
ム名、複合名およびコンポジット名−−について与えた
定義にしたがい、本発明は4つのタイプ(アトム名、複
合名、部分コンポジット名、およびコンポジット名)に
関する連合命名サービス・プロバイダ・インタフェース
(FN SPI)、ならびにこれらのインタフェースと
クライアントとの間に存在し、コンポジット名の分解の
ための呼出しの変換およびアドミニストレーションをサ
ポートする連合命名フレームワーク(FNフレームワー
ク)という機構を提供する。これによって、連合命名A
PIを使用するクライアント・アプリケーションが利用
可能なFN SPI(2つ以上のFN SPIがシステ
ムに存在することもある)を適切に使用することが可能
となる。本発明はシステムの実装者がクライアント・ア
プリケーションを中断することなく、新しい命名サービ
スを動的にインストールすることを可能とする。
【0041】本発明のビューの1つを図9に示す。図9
はFNフレームワーク1004によって取り扱われるも
のとして、図8のシステムを示しているシステム100
0を示している。システム1000において、FNフレ
ームワーク1004はクライアント・アプリケーション
1002と命名サービス・プロバイダ1012、103
0との間に配置されており、両方の命名サービス・プロ
バイダ1012、1030による部分的な分解を必要と
するコンポジット名の分解に必要なすべての機能を実行
する。当分野の技術者には、FN SPIによって複数
の命名サービス・プロバイダとインタフェースできるF
Nフレームワーク1004が、複数の異なる命名サービ
スからなる連合命名システムを実施するシステムにとっ
てきわめて有用なことが明らかであろう。
【0042】本発明の詳細 A.アーキテクチャ 本発明は命名コンテキストが基本的な命名の概念である
ということを利用している。各命名コンテキスト・オブ
ジェクトには、これに対するインプリメンテーション−
−コンテキスト・インプリメンテーションと呼ぶ−−が
関連づけられている。各コンテキスト・インプリメンテ
ーションはコンテキスト・インタフェースのものと機能
的に同等な操作(ルックアップ、バインド、属性の関連
づけ、これらの検査など)を備えている(上述の米国特
許第5377323号参照)。コンテキスト・インプリ
メンテーションはFNフレームワークとコンテキスト・
インプリメンテーションの間のコントラクトである連合
命名サービス・プロバイダ・インタフェース(FN S
PI)によって、これらの操作を利用する。コンテキス
ト・インプリメンテーションの機能に応じて、4種類の
FN SPIがあるので、異なる命名サービスの要件を
適切に満たすことができる。4種類のFNSPIとは次
のとおりである。 コンポジット名SPI 部分コンポジット名SPI 複合名SPI アトム名SPI
【0043】コンポジット名に関与する操作はコンポジ
ット名の分解を必要とする。FNフレームワークは、関
連する各コンテキストに関連づけられたコンテキスト・
インプリメンテーションを使用して異なるコンテキス
ト、おそらくは異なる命名システムによってコンポジッ
ト名の分解を可能とする。名前とそのコンテキスト・ハ
ンドルの間のアソシエーションは次のようにして行われ
る。FN APIが名前にバインドされた参照を返す操
作(OpenLookup)を供給する。各FNSPI
はconstructor()操作を含んでおり、これ
はコンテキストに対するコンテキスト・ハンドルを取得
するためにFNフレームワークが(各コンテキスト・イ
ンプリメンテーションに対して)呼び出したものである
(オブジェクト・ハンドルおよびコンストラクタは、B
etrand Meyerの上述の文献「Object
−Oriented Software Constr
uction」、Prentice−Hall、198
8年に記載されている)。この参照を使用して、FNフ
レームワークは、その参照に関連づけられたコンテキス
ト・インプリメンテーションにロードし、これからco
nstructor()操作を呼び出す。この時点で、
FNフレームワークはコンテキスト・オブジェクトに対
するコンテキスト・ハンドルを有している。FNフレー
ムワークはコンポジット名からのコンポーネントを二者
択一的に分解し、コンポーネントによって指定されたコ
ンテキスト・オブジェクトに対するコンテキスト・ハン
ドルを取得することによって、コンポジット名の分解を
管理する。結果として、コンポジット名のすべてのコン
ポーネントが消費され、ターゲット操作が行われるター
ゲット・コンテキストに到達する。FNフレームワーク
は次いで、ターゲット・コンテキストに対してターゲッ
ト操作を呼び出し(その操作に該当する引数を使っ
て)、呼出しの結果をクライアント・アプリケーション
に返す。好ましい実施の形態において、以下はコンスト
ラクタを呼び出す方法についてのコード・フラグメント
を説明するものである。 ctx=constructor(referenc
e) ただし、ctxはコンテキスト・オブジェクトに対する
ハンドルであり、referenceは名前をルックア
ップすることによって得られる参照である。(これにつ
いては、以下のコンテキスト・インプリメンテーション
・リンケージの項で詳細に検討する。)
【0044】本発明の次の3つの主要なコンポーネント
について、以下で詳細に検討する。 ・FN SPI ・FNフレームワーク ・コンテキスト・インプリメンテーション・リンケージ
【0045】B.連合命名サービス・プロバイダ・イン
タフェース 連合命名サービス・プロバイダ・インタフェース(FN
SPI)は、命名およびディレクトリ・サービス・プ
ロバイダがその命名およびディレクトリ操作を連合命名
システム操作に組み込むための簡単な方法を提供する。
命名サービス・プロバイダは同じシステムにある他の命
名サービス・プロバイダに関する知識から分離されてお
り、これらが使用するSPIで定義された操作を供給す
ることだけが必要とされている。
【0046】上述したように、各FN SPIは各コン
テキスト・インプリメンテーションが供給しなければな
らないconstructor()操作を含んでいる。
【0047】FN SPIの各操作は状況引数を持って
おり、これはコンテキスト・インプリメンテーションに
よってセットされる。すべてのコンテキスト・インプリ
メンテーションは次のようにして状況引数をセットす
る。操作をFNフレームワークが継続しなければならな
い場合、コンテキスト・インプリメンテーションは状況
(あるいは、状況コード)をCONTINUEにセット
し、状況オブジェクトの次の2つのフィールドを以下の
ようにセットしなければならない。rref(分解され
た参照フィールド)は操作を継続するコンテキストに対
する参照である。rname(残っている名前フィール
ド)はrrefによってポイントされたコンテキストで
処理される名前にセットされる。この情報によって、F
Nフレームワークがコンポジット名の処理を最後まで継
続できるようになる。
【0048】4種類のFN SPIの各々を以下で説明
する。
【0049】コンポジット名SPI 完全なコンポジット名の分解を取り扱おうとする命名サ
ービス・プロバイダはコンポジット名SPIを与えなけ
ればならない。コンテキスト・インプリメンテーション
はコンテキスト・インタフェース(ctx_looku
p()、ctx_bind()、ctx_unbind
()など)を直接提供するものであり、あらゆる命名シ
ステム境界を横切って完全なコンポジット名の分解を取
り扱い、答えをクライアントに返すことができなければ
ならない。
【0050】部分コンポジット名SPI コンポジット名SPIは基礎となるコンテキスト・イン
プリメンテーション・プロバイダが操作を結論が再帰的
な評価を含むものであっても、結論に達するまで行うこ
とを必要としている。再帰モデルはクライアントに対し
て便利なものであるが、再帰的評価は必ずしも望ましい
ものではなく、可能なものでないことさえある。コンポ
ジット名を部分的に分解することだけを行おうとしてい
る命名サービス・プロバイダは部分コンポジット名SP
Iを備えているべきである。
【0051】部分コンポジット名SPIをもたらすコン
テキスト・インプリメンテーションは部分コンポジット
名に対する操作のインプリメンテーションを備えてい
る。このようなコンテキスト・インプリメンテーション
は、コンポジット名を全体的に取り扱うのには必要な
い。コンポジット名の残っている未使用のコンポーネン
トは、操作をFNフレームワークに対してどのように継
続すべきかを示す状況情報とともに、コンテキスト・イ
ンプリメンテーションによって返される。FNフレーム
ワーク(以下で、詳述する)はこの状況情報を解釈し
て、次の命名サービス・プロバイダを呼び出して、操作
を継続する。
【0052】部分コンポジット名SPIはFNフレーム
ワークが使用するコンテキスト・インタフェースの操作
をミラーする一連の操作(p_lookup()、p_
list_name()など)を定義している。図11
は例示的な部分コンポジット名分解を示す。「p_」と
いう接頭辞の付いた操作(たとえば、p_lookup
())がコンテキストctxに対して呼び出され、コン
ポジット名nameを入力として取り、<operat
ion results>と状況を返す。p_操作が操
作を完了せず、その操作を他のコンテキストで継続する
ことを必要としている場合には、下記の情報を使って状
況オブジェクトをセットする。 −状況コードをCONTINUEにセットして、操作を
継続すべきことを示す −状況の残っている名前部分(rname)を、さらに
処理を必要とするnameの一部になるようにセットす
る −状況の分解された参照部分(rref)がこれまでに
分解された名前の参照になるようにセットする この状況情報はコンテキスト・インプリメンテーション
によって、FNフレームワークに返され、これはnam
e引数をrnameに更新し、ctxをrrefによっ
て特定されたコンテキストのコンテキスト・ハンドルに
なるように更新する。更新されたnameおよびctx
引数は、p_操作を継続するために使用される。これに
ついては以下のFNフレームワークの検討の際に詳細に
説明する。p_操作を継続する必要がない場合(正常に
終了したか、失敗したかの場合)、結果はクライアント
・アプリケーションに返される。
【0053】複合名SPI 部分コンポジット名SPIは基礎となるコンテキスト・
インプリメンテーションが、2つ以上の命名システムか
らの名前を含んでいるコンポジット名を取り扱うことを
必要としている。単一の命名システムからの名前を取り
扱えるだけでよい命名サービス・プロバイダは複合名S
PIを備えていなければならない。
【0054】複合名SPIは単一の命名システムからの
名前を取り扱おうとだけしている命名サービス・プロバ
イダに合わせて設計されている。部分コンポジット名S
PIと同様に、複合名SPIは複合名SPIが複合名に
対して操作する操作をのぞき、コンテキスト操作をミラ
ーする一連の操作(c_lookup()、c_lis
tname()など)を定義する。
【0055】静的な弱い分離をサポートしているコンテ
キスト・インプリメンテーションの場合、インプリメン
テーションは入力名のどの最初のコンポーネントが命名
システムに属しているかを決定する付加的な操作を供給
しなければならない。命名システムが使用しないコンポ
ーネントの残りは他のパラメータで操作に返される。好
ましい実施の形態において、この操作はp_compo
nent_parser()と呼ばれる。以下のコード
・フラグメントはこれをどのようにして呼び出すかを説
明するものである。 compound_name=ctx−>p_comp
onent_parser(name,&rest,&
pstatus);ただし、 −nameは分解対象のコンポジット名である −compound_nameはこの命名システムのコ
ンテキストによって処理されるコンポジット名name
の最初のコンポーネントである −restは次の命名システム(もしあれば)に対して
残されるnameのコンポーネントである −pstatusはp_component_pars
er()インプリメンテーションの実行状況を示す状況
パラメータである
【0056】たとえば、コンテキストが名前スペースに
属している各コンポーネントがその中に等号文字(’
=’)を持っていなければならないという構文方針を使
用して静的な弱い分離をサポートしているものとする。
このコンテキスト・インプリメンテーションは、p_c
omponent_parser()に対してインプリ
メンテーションを供給し、このインプリメンテーション
はa=b/c=d/e/f/gなどのコンポジット名と
ともに供給された場合に、compound_name
=ctx−>p_component_parser
(“a=b/c=d/e/f/g”,&rest,&p
status)であり、compound_nameに
“a=b/c=d”を返し、restに“e/f/g”
を返す。
【0057】ターミナル命名システムはその後に次の命
名システムを持つことができない。操作がこの命名シス
テムに到達すると、フェデレーション内の他の命名シス
テムに入ることができなくなる。命名システムが命名シ
ステムのフェデレーションの一部になった場合、それが
ターミナル命名システムでない限り、コンポジット名の
分解のための中間命名システムとして使用されるという
概念をサポートしなければならない。これは他の名前ス
ペースのルートがバインドされ、ルックアップされるよ
うにする機構を備えていなければならないということを
意味する。本発明の好ましい実施の形態において、この
機構は次命名システム・ポインタと呼ばれる。異なる命
名サービスは次命名システム・ポインタをサポートする
のに異なる方法を持っている。たとえば、ある命名シス
テムは次命名システム・ポインタを、これらのポインタ
に特別な名前を与え、同じ命名システムに記憶すること
によってサポートしているのに対し、他のコンポーネン
ト命名システムは次命名システム・ポインタを特に取り
扱う別個のサービスを有していることもある。
【0058】c_インタフェースに加えて、複合名SP
Iは次命名システム・ポインタを取り扱うための、コン
テキスト操作をミラーする付加的な一連の操作(c_l
ookup_nns()、c_listnames_n
ns()など)を定義する。これらの「nns」操作は
複合名を引数として取るが、名前自体ではなく、この名
前に関連づけられた次命名システム・ポインタに対して
操作を行う。図12は正規の複合名SPIコンテキスト
操作とnns複合名SPI操作との相違を示している。 ctx−>c_lookup(“a/B”,&stat
us) に対する呼出しが複合名“a/B”にバインドされた参
照の返しをもたらすのに対し、 ctx−>c_lookup_nns(“a/B”,&
status) に対する呼出しは“a/B”の次命名システム・ポイン
タにバインドされた参照の返しをもたらす。
【0059】アトム名SPI 複合名SPIはコンテキストが複合名を取り扱うことを
必要としている。アトム名を取り扱うことができればよ
い命名サービス・プロバイダはアトム名SPIを備えて
いなければならない。
【0060】アトム名SPIはアトム名に対して操作を
行うためのコンテキスト操作をミラーする一連の操作
(a_lookup()、a_listnames()
など)を定義する。さらに、アトム名SPIはアトム名
に関連づけられた次命名システム・ポインタを取り扱う
一連の操作(a_lookup_nns()、a_li
stnames_nns()など)も含んでいる。
【0061】アトム名SPIを使用する命名サービス・
プロバイダは階層命名サービスの基本ビルディング・ブ
ロックをもたらす単一のコンテキスト内での分解を取り
扱う。アトム名SPIを供給するコンテキスト・インプ
リメンテーションは、アトム名と、そのアトム名に関す
るあらゆる次命名システム・ポインタ上での操作のため
にインプリメンテーションを備えている。
【0062】アトムSPIを供給するコンテキスト・イ
ンプリメンテーションは、その入力名が命名システムの
ターゲット・コンテキストの分解される、あるいは操作
が行われる名前を表す単一のストリングであると期待し
ている。換言すると、入力名は1コンテキスト以上にわ
たることができない。
【0063】強い分離(上述の定義参照)をサポートし
ているコンテキスト・インプリメンテーションは、その
特定の命名システムに対する命名規則を使用して、先頭
/最後のコンポーネントに複合名を構文解析する付加的
な操作c_component_parser()を供
給しなければならない。(複合名を先頭/最後のコンポ
ーネントに構文解析するプロトコルの説明は、参照する
ことによって、本明細書の一部となる米国特許第537
7323号を参照されたい)。c_component
_parser()に対する入力は複合名であり、その
最初のコンポーネントはターゲット・コンテキストで分
解される。出力は第1のコンポーネントheadであ
り、コンポーネントの残りtailは別の引数に戻され
る。次のコード・フラグメントはどのようにして呼び出
すかを説明するものである。 head=ctx−>c_component_par
ser(compound_name,&tail,&
cstatus);ただし、compound_nam
eは構文解析対象の複合名である headはこのコンテキストctxの命名規則によるc
ompound_nameの最初のアトム名である tailはheadを除くcompound_name
のアトム名の配列された残りのものである cstatusはc_component_parse
r()操作の成功または失敗を示す状況である。
【0064】たとえば、i:j:kが左から右へのコロ
ンで区切られた名前構文を有している名前スペースから
の複合名であるとする。この命名システムに対するコン
テキスト・インプリメンテーションはc_compon
ent_parser()に対するインプリメンテーシ
ョンを供給する。次のものを実行した場合、 head=ctx−>c_component_par
ser(”i:j:k”,&tail,&cstatu
s);headが”i”を含むのに対し、tailは”
j:k”を含んでいる。
【0065】静的な弱い分離をサポートしているコンテ
キスト・インプリメンテーションは、コンポジット名を
最初のcompound_nameとrestコンポー
ネントに構文解析するルーチンp_component
_parser()(上述の)を供給しなければならな
い。
【0066】FNフレームワークがアトム名SPIをエ
キスポートするコンテキストとどのように相互作用する
かの詳細については、連合命名フレームワークの項で説
明する。
【0067】SPIの要約 要約すると、本発明を使用して連合する命名サービス・
プロバイダの代替策は次のとおりである。 (1)あらゆるコンポジット名全体を扱うことのできる
コンポジット名を認識する命名サービスに対するコンポ
ジット名SPIの操作用のインプリメンテーションを供
給する。
【0068】(2)おそらく2つ以上の命名システムか
らの名前を扱うことができるが、必ずしも全体でなくと
もよいコンポジット名を認識する命名サービスに対する
コンポジット名SPIの操作用のインプリメンテーショ
ンを供給する。
【0069】(3)コンポジット名を認識しない命名サ
ービスに対する複合名SPIの操作用のインプリメンテ
ーションを供給する。このインプリメンテーションは複
合名を受け入れ、これに対してコンテキスト操作を行
う。
【0070】(4)階層命名サービスのビルディング・
ブロックであるアトム名サービスに対するアトム名SP
Iの操作用のインプリメンテーションを供給する。この
インプリメンテーションは、アトム名を受け入れ、これ
に対してコンテキスト操作を行う。
【0071】C.連合命名フレームワーク 本発明の第2の主要な要素は図10にブロック1108
として示されているFNフレームワークである。新しい
任意の命名およびディレクトリ・システムが、アプリケ
ーションの再コンパイル、再リンクを行うこと、および
このアプリケーションを停止することを必要とせずに、
実行時にアプリケーションにアクセスできるようにする
ことを目的として有しているのが、この要素である。以
下で説明するように、FNフレームワークは上述のFN
SPI準拠のコンテキスト・インプリメンテーション
を差し込むことができるインフラストラクチャを備えて
おり、またクライアント・アプリケーションに透過的に
新しい命名サービスを追加することのできるクライアン
ト・アプリケーションに対するインタフェースを備えて
いる。
【0072】FNフレームワークは異なるFN SPI
を供給する異なるインプリメンテーションがクライアン
ト機械に同時に存在することを可能とし、これによって
クライアント・アプリケーションが命名サービスの異な
る数のフェデレーションにアクセスすることを可能とす
る。本発明の使用方法の例を図10に示す。図10にお
いて、システム1100はクライアント・アプリケーシ
ョン層1104を備えており、この層はコンポジット名
1102を取り扱うことができ、指定されたFN SP
Iを各々が使用する特定の命名サービス1110、11
12、1114に対する各種のコンテキスト・インプリ
メンテーションがインタフェースできる連合命名フレー
ムワーク層1108の上に置かれている連合命名アプリ
ケーション・プログラミング・インタフェース(「FN
API」)層1106とインタフェースしている。コ
ンテキスト・インプリメンテーション1110はX.5
00ディレクトリ・サービス1116を排他的にサポー
トするインタフェースであるXDSに対するFN SP
Iのマッピングを表している。このコンテキスト・イン
プリメンテーション1110は静的な弱い分離をサポー
トしており、複合名SPIを供給する。同様に、コンテ
キスト・インプリメンテーション1112はインターネ
ットDNSを排他的にサポートするインタフェースであ
るインターネットDNSレゾルバAPIに対するFN
SPIのマッピングを表している。コンテキスト・イン
プリメンテーション1112は強い分離をサポートして
おり、複合名SPIを供給する。また、コンテキスト・
インプリメンテーション1114はNIS+を排他的に
サポートするインタフェースであるNIS+ APIに
対するFN SPIのマッピングを表す。コンテキスト
・インプリメンテーション1114は強い分離をサポー
トしており、複合名SPIを供給する。
【0073】図13aはクライアント・アプリケーショ
ンからの入力を取り入れるためにFNフレームワークが
用い、クライアント・アプリケーションが要求したコン
ポジット名に対する操作を達成するため該当するFN
SPIと対話するプロセスを示している。
【0074】図13を参照すると、クライアント・アプ
リケーションは、コンテキスト・ハンドル、コンポジッ
ト名、実行すべき操作、および操作に必要な1つまたは
複数の引数(ctx、name、operation
A、argsなど)1304からなるFNフレームワー
ク1302に対して入力を供給する。FNフレームワー
クはまず、コンテキスト・ハンドルctxがポイントし
たコンテキスト・インプリメンテーションにロードし、
どのFN SPIがctx1306、1316、134
0および1346によってサポートされているかを判定
する。
【0075】コンポジット名SPIとのFNフレームワ
ークの相互作用 コンテキスト・インプリメンテーションがコンポジット
名SPI1308をサポートしている場合、FNフレー
ムワークはoperation Aに適切なctxに対
するコンテキスト・インプリメンテーションの操作(c
tx_)を呼び出し、これを操作(name、arg
s)1310に対する引数とともに供給する。この操作
を行った結果はクライアント・アプリケーション131
2に返される。
【0076】コンポジット名SPIを供給するコンテキ
スト・インプリメンテーションに関する次の例を考え
る。
【0077】nameは“a=b/c=d/e/f/
g”である(これは2つの命名システムにわたってい
る。“a=b/c=d”は一方の命名システムに属して
おり、“e/f/g”は他方の命名システムに属してい
る。) operation Aは“lookup()”である argsは空である(他の引数はない) FNフレームワークは引数(“a=b/c=d/e/f
/g”,“lookup()”,{})をctxのコン
テキスト・インプリメンテーション(CC1)に供給す
る。CC1は次のようにコンポジット名“a=b/c=
d/e/f/g”に対してctx_lookup()操
作を行い、 ref=ctx−>ctx_lookup()(“a=
b/c=d/e/f/g”,&status);その操
作の結果(ref)をFNフレームワークに返し、フレ
ームワークは次いで結果をクライアント・アプリケーシ
ョンに返す。
【0078】上記の例はあるコンテキスト・インプリメ
ンテーションCC1を用いたFNフレームワークがどの
ように、2つの命名システムにわたっているコンポジッ
ト名に対して操作を行うかを示している。CC1はコン
ポジット名SPIを使用しており、したがって、コンポ
ジット名が複数の命名システムにわたっている場合で
も、コンポジット名全体を処理すると考えられる。FN
フレームワークを使用しているクライアント・アプリケ
ーションも、FNフレームワーク自体もCC1に関する
知識を含んでいない。FNフレームワークはコンポジッ
ト名SPIを使用して、CC1と通信している。
【0079】部分コンポジット名SPIとのFNフレー
ムワークの相互作用 コンテキスト・インプリメンテーションが部分コンポジ
ット名SPI1318をサポートしている場合、FNフ
レームワークはoperation Aに適切なctx
に対するコンテキスト・インプリメンテーションの操作
(p_)を呼び出し、これを操作(name,arg
s)1320に対する引数とともに供給する。コンテキ
スト・インプリメンテーションはp_操作およびsta
tus1322の呼出し結果をFNフレームワークに返
す。p_操作から返されたときに、操作が進めるだけ進
んでいる(成功するか、継続できなくなって)1334
を、操作の状況1324が示した場合、FNフレームワ
ークは操作の結果をクライアント・アプリケーション1
312に返す。操作を継続する必要がある1326と、
状況が示した場合、FNフレームワークはstatus
から情報を引き出し1328、操作を継続する。sta
tusオブジェクトは次のものを含んでいる。 −rname、まだ処理されていないnameの残りの
部分 −rref、操作を継続するためのコンテキストの参照
【0080】FNフレームワークはrnameを使用し
て、nameを更新する。換言すると、rnameは効
果的に、FNフレームワークによる次の相互作用で使用
される新しいname引数になる。FNフレームワーク
は状況オブジェクトからのrrefも使用して、新しい
コンテキスト・ハンドルctx_newを構築する。c
tx_newはrrefと関連づけられたコンテキスト
・インプリメンテーションが供給するconstruc
tor()操作を呼び出すことによって作成される13
30。ctxはctx_newに更新され、効果的に、
FNフレームワークによる次の相互作用で使用される新
しいctx引数になる。FNフレームワークはこの手順
を繰り返して、どのFN SPIを新しいctxのコン
テキスト・インプリメンテーションがサポートしている
かを判定し1332、新しい引数(name、oper
ation A、args)を新しいコンテキスト・イ
ンプリメンテーションに供給する。
【0081】上記を説明するために、部分コンポジット
名SPIを供給するコンテキスト・インプリメンテーシ
ョン(PC1)の次の例を考える。
【0082】nameは“a=b/c=d/e/f/
g”である(これは2つの命名システムにわたってい
る。“a=b/c=d”は一方の命名システムに属して
おり、“e/f/g”は他方の命名システムに属してい
る。) operation Aは“lookup()”である argsは空である(他の引数はない) FNフレームワークは入力(“a=b/c=d/e/f
/g”,“lookup()”,{})をctxのコン
テキスト・インプリメンテーション(PC1)に供給す
る。PC1は次のようにコンポジット名“a=b/c=
d/e/f/g”に対してp_lookup()操作を
行い、 ref=ctx−>p_lookup(“a=b/c=
d/e/f/g”,&status);その操作の結果
(ref)をFNフレームワークに返す。
【0083】この例の場合、PC1が“a=b/c=d
/e/f/g”を処理し、CONTINUE状況をFN
フレームワークに返すものと想定する。さらに、次の2
つの状況情報を返すものとする。 −rname−残っている名前(“e/f/g”) −rref−操作を継続するためのコンテキストの参照
(参照は“a=b/c=d/e/f/g”にバインドさ
れている。)
【0084】FNフレームワークはrrefを使用し
て、使用するコンテキスト・インプリメンテーション
(PC2)を特定し、PC2からconstructo
r()インプリメンテーションを呼び出して、新しいコ
ンテキスト・ハンドルctx_newを構築する。FN
フレームワークはctxの古い値をctx_newと置
き換える。FNフレームワークはnameの古い値をr
nameとも置き換える。FNフレームワークはこれで
プロセスを継続するのに十分な情報を持つことになる。
【0085】新しいctxは部分コンポジット名SPI
もエキスポートするものと想定する。FNフレームワー
クは(“e/f/g”,“lookup()”,{})
をPC2に供給する。PC2はコンポジット名“e/f
/g”に対して次のようにp_lookup()を行
う。 ref=ctx−>p_lookup(“e/f/
g”,&status);この例について、この操作が
この時点で正常に終了するものと想定する。PC2“e
/f/g”にバインドされた参照(ref)をFNフレ
ームワークに返し、フレームワークはこれをクライアン
ト・アプリケーションに返す。
【0086】上記の例はFNフレームワークが2つのコ
ンテキスト・インプリメンテーションPC1およびPC
2をどのように用いるかを示しており、これら2つのコ
ンテキスト・インプリメンテーションは部分コンポジッ
ト名SPIを使用して、2つの命名システムにわたるコ
ンポジット名に対して操作を行う。FNフレームワーク
を使用するクライアント・アプリケーションも、FNフ
レームワーク自体もPC1またはPC2に関する知識を
含んでいない。FNフレームワークは部分コンポジット
名SPIを使用して、PC1およびPC2の両方と通信
を行う。
【0087】複合名SPIとのFNフレームワークの相
互作用 コンテキスト・インプリメンテーションが複合名SPI
1340をサポートしている場合、FNフレームワーク
は複合名SPIエンジン1342(この詳細は図14に
示す)が記述するアルゴリズムを実行する。エンジンの
出力は操作の結果とstatus1344である。st
atusがCONTINUEである1326場合、FN
フレームワークはstatusからの残っている名前フ
ィールド(rname)を使用して、nameの新しい
値を構築する1328。次いで、statusからrr
efを抜き出して、コンテキスト・ハンドルnew_c
txを構築し、ctxの古い内容をこれと置き換える。
次いで、FNフレームワークは改訂されたnameおよ
びコンテキスト・ハンドルctxを使用して、プロセス
を初めから繰り返す1332。statusがCONT
INUEでない場合1334、FNフレームワーク・シ
ステムは復帰する1312。
【0088】ここで、図14を参照すると、コンテキス
ト・インプリメンテーションが複合名SPIをサポート
している場合、FNフレームワークは複合名SPIエン
ジン1400が記述するアルゴリズムを入力(ctx、
name、operation A、およびargs)
1404に対して実行する(図13のブロック134
2)。図14において、FNフレームワークはまず、入
力nameのどの部分をこのコンテキストが処理するの
かを判定しなければならない。すなわち、コンテキスト
が複合名SPIをサポートしているため、FNフレーム
ワークは操作するコンテキストに関して複合名comp
ound_nameを取得しなければならない。このコ
ンテキストが使用しないnameの残りはrestとい
う変数に保持される。
【0089】コンテキスト・インプリメンテーションが
強い分離をサポートしている場合1420、compo
und_nameはnameの最初のコンポーネントに
すぎず、restは最初のコンポーネントのないnam
eのすべてになる1422。
【0090】コンテキストが静的な弱い分離をサポート
している場合1408、1412、FNフレームワーク
はコンテキスト・インプリメンテーションが供給するp
_parse_component()機能を呼び出し
て、このコンテキストの命名システムに属しているコン
ポジット名nameの最初のコンポーネント(comp
ound_name)を抜き出す。p_parse_c
omponent()はこの命名システムが消費しない
残りをrestに返す1416。
【0091】コンテキスト・インプリメンテーションが
動的な弱い分離をサポートしている場合1414、FN
フレームワークはname全体をコンテキスト・インプ
リメンテーションに対するcompound_name
として使用する。これはコンテキスト・インプリメンテ
ーションがcompound_nameのどの部分を消
費すべきかを動的に決定し、残りの名前フィールドrn
ameを適宜statusにセットする。restはN
ULLにセットされる1418。
【0092】この時点で、すべての異なるタイプの分離
に関して、FNフレームワークはコンテキスト・インプ
リメンテーションへの供給のための複合名になるように
セットされたcompound_nameと、name
の未使用部分にセットされたrestを有している。r
estがNULLである場合1426、compoun
d_nameは処理されるnameの最後のコンポーネ
ントになる。この場合、FNフレームワークはoper
ation Aに対応するコンテキスト・インプリメン
テーションからc_操作を呼び出し、これを引数ct
x、compound_nameおよびargs142
8とともに供給する。restがNULLでないが14
30、nameの最後のコンポーネントであり、かつ空
のストリングである1434場合、クライアント・アプ
リケーションはcompound_nameと関連づけ
られた次命名システム・ポインタに対して操作を行おう
としていることを指定する。この場合、FNフレームワ
ークはoperationAに対応したコンテキスト・
インプリメンテーションからc_nns操作を呼び出
し、これを引数ctx、compound_nameお
よびargs1436とともに供給する。restがn
ameの最後のコンポーネントでないか、最後である
が、空のストリングでない1440場合、compou
nd_nameが指定したコンテキストが中間コンテキ
ストとして作用する。この場合、FNフレームワークは
ctx、compound_nameおよびargs1
442におけるコンテキスト・インプリメンテーション
から操作c_lookup_nns()を呼び出す。c
_lookup_nns()の結果(ref2)が成功
した場合1448、操作を継続するための次の命名シス
テムに対する参照を含むこととなり、したがって、c_
lookup_nns()から正常に復帰したときに、
状況がCONTINUE1450に変わり、操作を継続
しなければならないこと、およびstatusのrre
fフィールドがref2にセットされたことを示すよう
になる。
【0093】この時点で、FNフレームワークは状況の
次のアドミニストレーションを行ってから、複合名SP
Iエンジンを終了する。rest変数はさらに処理しな
ければならないnameの一部を含んでいる。操作が成
功したかどうかにかかわりなく、restを状況オブジ
ェクトのrnameフィールドに付加して、処理をさら
に必要とするnameの残りの部分をrnameが示す
ようにしなければならない1437。FNフレームワー
クはこの場合、複合名SPIエンジンを終了して、図1
3の1344で継続する(これについては、上記の部分
コンポジット名の項で詳述した)。
【0094】上記を説明するために、複合名SPIを供
給するコンテキスト・インプリメンテーション(C1)
に関する次の例を考える。nameは“a=b/c=d
/e/f/g”である(これは2つの命名システムにわ
たっており、“a=b/c=d”は一方の命名システム
に属しており、“e/f/g”は他方の命名システムに
属している) operation Aは“lookup()”である argsは空である(他の引数はない) この例について、C1が静的な弱い分離をサポートして
いるものと想定する。
【0095】FNフレームワークはp_compone
nt_parser()をC1から呼び出して、com
pound_nameおよびrest引数を抜き出す。 compound_name=ctx−>p_comp
onent_parser(“a=b/c=d/e/f
/g”,&rest,&pstats);C1のp_c
omponent_parser()が等号文字
(‘=’)を使用して、名前のどのコンポーネントがそ
の命名システムに属しているかを判定するものと想定す
る。compound_nameはこの場合、“a=b
/c=d”を含んでおり、restは“e/f/g”を
含んでいる。restがナルでも、最後のコンポーネン
トでもないので、“a=b/c=d”が指定したコンテ
キストは中間命名システムにある。FNフレームワーク
は入力(“a=b/c=d”,“lookup_nns
()”,{})をctxのコンテキスト・インプリメン
テーション(C1)に供給する。C1はc_looku
p_nns()操作を複合名“a=b/c=d”に対し
て行い、 ref2=ctx−>c_lookup_nns(“a
=b/c=d”,&status);この操作の結果
(ref2)をFNフレームワークに返す。
【0096】この例の場合、この操作が成功したものと
想定する。この場合、FNフレームワークはstatu
sをCONTINUEにセットし、statusの分解
された参照フィールドrrefをref2にセットす
る。restを状況の残りの名前フィールドrname
に付加する。 −rname(“e/f/g”) −rref(c_lookup_nns(“a=b/c
=d”,...の結果)操作) FNフレームワークは次いで、rrefを使用して、使
用するコンテキスト・インプリメンテーション(C2)
を特定し、C2からconstructor()インプ
リメンテーションを呼び出して、新しいコンテキスト・
ハンドルctx_newを構築する。FNフレームワー
クはctxの古い値をctx_newと置き換える。F
Nフレームワークはnameの古い値をrnameと置
き換える。FNフレームワークはこれでプロセスを継続
するのに十分な情報を持つことになる。
【0097】C2が複合名SPIを供給し、動的な弱い
分離をサポートしているものと想定する。FNフレーム
ワークはrestをNULLにセットし、入力(“e/
f/g”,“lookup_up()”,{})をC2
に供給する。C2は次のようにコンポジット名“e/f
/g”に対してc_lookup()を行う。 ref=ctx−>c_lookup(“e/f/
g”,&status);この例の場合、この操作がこ
の時点で正常に終了するものと想定する。C2は“e/
f/g”にバインドされた参照(ref)をFNフレー
ムワークに返す。restがNULLであるため、st
atusの内容に対する更新は必要ない。FNフレーム
ワークはrefをクライアント・アプリケーションに返
す。
【0098】上記の例はFNフレームワークがどのよう
に、両方とも複合名SPIを使用している2つのコンテ
キスト・インプリメンテーションC1およびC2を用い
て、2つの命名システムにわたっているコンポジット名
に対して操作を行うのかを示している。C1が静的な弱
い分離をサポートしているのに対し、C2が動的な弱い
分離をサポートしている。FNフレームワークを使用す
るクライアント・アプリケーションも、FNフレームワ
ーク自体もC1またはC2に関する知識を含んでいな
い。FNフレームワークは複合名SPIを使用して、C
1およびC2の両方と通信を行う。
【0099】アトム名SPIとのFNフレームワークの
相互作用 図13にもう一度戻ると、コンテキスト・インプリメン
テーションがアトム名SPI1346をサポートしてい
る場合、FNフレームワークはアトム名SPIエンジン
1348(この詳細は、図15に示されている)が記述
するアルゴリズムを実行する。エンジンの出力はオペレ
ーションの結果とstatus1350である。sta
tusがCONTINUEである場合1326、FNフ
レームワークはstatusからの残りの名前フィール
ド(rname)を使用して、nameの新しい値を構
築する1328。次いで、statusからrrefを
抜き出して、コンテキスト・ハンドルnew_ctxを
構築し、ctxの古い値をこれと置き換える。FNフレ
ームワークは次いで、改訂されたnameとコンテキス
ト・ハンドルctxを使用して、このプロセスを初めか
ら繰り返す1332。statusがCONTINUE
でない場合1334、FNフレームワーク・システムは
復帰する1312。
【0100】コンテキスト・インプリメンテーションが
アトム名SPIをサポートしている場合(図13の13
46)、FNフレームワークは図15のアトム名SPI
1500で記述されているアルゴリズムを実行する。図
15において、FNフレームワークはまず、入力nam
eのどの部分をこのコンテキストが処理するのかを判定
しなければならない。すなわち、コンテキストがアトム
名SPIをサポートしているため、FNフレームワーク
は操作するコンテキストに対するアトム名headを取
得しなければならない。これを2つのステップで行う。
まず、nameから複合名compound_name
を取得し、次いで、compound_nameから処
理するアトム名部分headを取得する必要がある。c
ompound_nameの一部ではないnameの残
りの部分は、restという変数に保持される。hea
dの一部ではないcompound_nameの残りの
部分はtailという変数に保持される。
【0101】コンテキストが強い分離をサポートしてい
る場合1508、compound_nameはnam
eの最初のコンポーネントだけとなり、restは最初
のコンポーネント以外のnameのすべての部分となる
1510。FNフレームワークは次いで、コンテキスト
・インプリメンテーションが供給するc_parse_
component()機能(前述した)を呼び出し
て、処理するアトム・コンポーネント(head)を抜
き出す。c_parse_component()はt
ailにheadのないcompound_nameの
残りも返す1512。
【0102】コンテキストが静的な弱い分離をサポート
している場合1514、1518、FNフレームワーク
はコンテキスト・インプリメンテーションが供給するp
_parse_component()機能(前述し
た)を呼び出して、このコンテキストの命名システムに
属するコンポジット名nameの最初のコンポーネント
(compound_name)を抜き出す1520。
p_parse_component()はこの命名シ
ステムが消費しない残りをrestとして返す152
2。
【0103】コンテキスト・インプリメンテーションが
動的な弱い分離をサポートしている場合1524、FN
フレームワークはname全体をコンテキスト・インプ
リメンテーションに対するcompound_name
として使用する。これはコンテキスト・インプリメンテ
ーションがcompound_nameのどの部分を消
費すべきかを動的に決定し、復帰状況を適宜決定するか
らである。restはNULLにセットする1526。
【0104】弱い分離の両方の形式について、head
はcompound_nameの最初のコンポーネント
であり、tailはhead以外のcompound_
nameの残りの部分となる1522。
【0105】この時点で、すべての異なるタイプの分離
について、FNフレームワークはcompound_n
ameをこのコンテキストctxの命名システムに属す
る複合名になるようにセットし、restをnameの
未使用部分にセットする。さらに、headはctxが
処理するcompound_nameからのアトム名に
セットされ、tailはcompound_nameの
残りの部分にセットされる。
【0106】tailがNULLでない場合1560、
compound_nameにはhead以外にも処理
すべき他のアトム名があり、headによって指定され
たコンテキストは同じ命名システム内の中間コンテキス
トとなる。FNフレームワークはコンテキスト・インプ
リメンテーションからa_lookup()をhead
に呼び出して、headにバインドされた参照(ref
2)を取得する1562。a_lookup()を呼び
出した後、FNフレームワークはtailの内容を最初
のコンポーネントとしてrestに挿入し、このコンテ
キスト・インプリメンテーションがまだ処理していない
コンポーネントを突き止める1564。restは、s
tatusオブジェクトの残りのフィールドrname
の内容に付加される1537。操作が成功した場合には
1552、FNフレームワークは操作の状況をCONT
INUEにセットし1554、操作を継続する必要があ
ることを示し、かつstatusの分解された参照フィ
ールド(rref)をref2にセットする。FNフレ
ームワークは次いで、このエンジンを終了する153
8。
【0107】tailがNULLの場合1530、he
adはctxに関連づけられた命名システムで処理され
る最後のアトムとなる。restがNULLの場合15
34、ターゲット・コンテキストに到達している。FN
フレームワークはoperation Aに対応するコ
ンテキスト・インプリメンテーションからa_操作を呼
び出し1536、エンジンを終了する1538。
【0108】tailがNULLであるが1530、r
estがnameの最後で空のコンポーネントでない場
合1544、headが指定したコンテキストがこの命
名システムを次のものに接続する中間コンテキストとな
る。FNフレームワークは操作a_lookup_nn
s()をheadに呼び出して、次のコンテキスト(次
の命名システムで)への参照(ref2)を取得して、
操作を継続する1546。操作が成功した場合155
2、FNフレームワークは状況をCONTINUEにセ
ットして1554、操作を継続しなければならないこと
を示し、statusの分解された参照フィールドを
(ref2)になるようにセットし、エンジンを終了す
る1538。
【0109】tailがNULLであるが1530、r
estがnameの最後で空のコンポーネントである場
合1556、操作はheadに関連づけられた次の命名
システムに対して行われる。FNフレームワークはコン
テキスト・インプリメンテーションからa_nns操作
を、引数ctx、head、およびargsによって呼
び出し1558、エンジンを終了する1538。
【0110】アトム名SPIエンジンを終了した場合1
350、FNフレームワークは部分コンポジット名の項
で上述したように継続する(図13の1324)。
【0111】上記を説明するため、アトム名SPIを供
給するコンテキスト・インプリメンテーション(A1)
に関する次の例を考える。nameは“a=b/c=d
/e/f/g”である(これは2つの命名システムにわ
たっており、“a=b/c=d”は一方の命名システム
に属しており、“e/f/g”は他方の命名システムに
属している) operation Aは“lookup()”である argsは空である(他の引数はない) この例の場合、A1が静的な弱い分離をサポートしてい
るものと想定する。
【0112】FNフレームワークはA1からのp_co
mponent_parser()を呼び出して、co
mpound_nameおよびrest引数を抜き出
す。 compound_name=ctx−>p_comp
onent_parser(“a=b/c=d/e/f
/g”,&rest,&pstatus);A1のp_
component_parser()が等号文字
(‘=’)を使用して、名前のどのコンポーネントがそ
の命名システムに属しているかを判定する。compo
und_nameはこの場合、“a=b/c=d”を含
んでおり、restは“e/f/g”を含んでいる。F
Nフレームワークは次いで、compound_nam
eからheadとtailを抜き出す。headは“a
=b”となり、tailは“c=d”になる。tail
がNULLでないため、“a=b”が指定したコンテキ
ストは同じ命名システム内の中間コンテキストである。
FNフレームワークは入力(“a=b”,“looku
p()”{})をctxのコンテキスト・インプリメン
テーション(A1)に供給する。A1はa_looku
p()操作をアトム名“a=b”に対して次のように行
い、 ref2=ctx−>a_lookup(“a=b”,
&status);この操作の結果(ref2)をFN
フレームワークに返す。
【0113】この例の場合、この操作が成功したものと
想定する。FNフレームワークはこの場合、statu
sをCONTINUEにセットし、statusの分解
された参照フィールドrrefをref2にセットす
る。次いで、tail(“c=d”)をrest(“e
/f/g”)の前に挿入し、この(“c=d/e/f/
g”)が新しいrestになる。FNフレームワークは
次いで、restを状況の残っている名前フィールドr
nameに付加する。 −rname(“c=d/e/f/g”) −rref(lookup(“a=b”,...)操作
の結果) FNフレームワークはrestをNULLにリセットす
る。FNフレームワークは次いで、rrefを使用し
て、次のコンテキスト・オブジェクトに対するハンドル
を構築する。FNフレームワークはrrefをA1から
のconstructor()インプリメンテーション
に供給して、新しいコンテキスト・ハンドルctx_n
ewを構築する。FNフレームワークはctxの古い値
をctx_newと置き換える。FNフレームワークは
nameの古い値をrname(“c=d/e/f/
g”)と置き換える。FNフレームワークはこれでプロ
セスを継続するのに十分な情報を持つことになる。
【0114】FNフレームワークは入力(“c=d/e
/f/g”,“lookup()”,{})をA1に供
給する。アトム名SPIエンジンにしたがうが、この相
互作用の場合、headは“c=d”であり、tail
はNULLである。rest(“e/f/g”)はna
meの最後で空のコンポーネントであり、これは“c=
d”が指定したコンテキストが中間命名システムの最後
のコンテキストであることを意味する。FNフレームワ
ークはa_lookup_nns()を“c=d”に呼
び出し、次の命名システムに対する参照を取得して、操
作を継続する。A1は次のようにアトム名“c=d”に
対してa_lookup_nns()を行う。 ref2=ctx−>a_lookup_nns(“c
=d”,&status);この例の場合、この操作が
この時点で正常に終了したと想定する。A1は“c=
d”の次の命名システムにバインドされた参照(ref
2)をFNフレームワークに返す。FNフレームワーク
は次いで、操作の状況をCONTINUEにセットし、
状況の分解された参照部分(rref)をref2にセ
ットし、rest(“e/f/g”)をstatusの
残っている名前(rname)に付加する。
【0115】この時点で、FNフレームワークは“a=
b/c=d”がポイントしている次の命名システムに分
解しており、“e/f/g”に対して操作を継続しなけ
ればならない。この例の場合、新しいrrefに関連づ
けられているコンテキスト・インプリメンテーションC
2が動的な弱い分離を使用して複合名SPIを供給して
いると想定する。FNフレームワークはrestをNU
LLにセットし、入力(“e/f/g”,”looku
p_up()”,{})をC2に供給する。C2はコン
ポジット名“e/f/g”に対してc_looku
p()を次のように行う。 ref=ctx−>c_lookup(“e/f/
g”,&status);この例の場合、この操作がこ
の時点で正常に終了したと想定する。C2は“ef/
g”にバインドされた参照(ref)をFNフレームワ
ークに返す。“e/f/g”がnameの最後のコンポ
ーネントである(すなわち、restがNULLであ
る)から、statusの内容に対する更新は必要な
い。FNフレームワークはrefをクライアント・アプ
リケーションに返す。
【0116】上記の例はFNフレームワークが2つのコ
ンテキスト・インプリメンテーションA1およびC2を
どのように用いて、2つの命名システムにわたるコンポ
ジット名に対して操作を行うかを説明したものである。
A1はアトム名SPIを使用し、静的な弱い分離をサポ
ートしているコンテキスト・インプリメンテーションで
ある。C2は複合名SPIを使用し、動的な弱い分離を
サポートしているコンテキスト・インプリメンテーショ
ンである。FNフレームワークを使用しているクライア
ント・アプリケーションも、FNフレームワーク自体も
A1またはC2に関する知識を含んでいない。FNフレ
ームワークはアトム名SPIを使用してA1と、また複
合名SPIを使用してC2と通信を行う。
【0117】上記の詳細な説明はこの時点での好ましい
実施の形態を示している。しかしながら、当分野の技術
者には、これらの操作の各種の類似したインプリメンテ
ーションが可能であり、本発明範囲内のものであること
が認識されよう。
【0118】D.コンテキスト・インプリメンテーショ
ンのリンク 本発明の第3の要素は異なるコンテキスト・インプリメ
ンテーションを呼び出すためにFNフレームワークが使
用する機構である。
【0119】好ましい実施の形態において、コンテキス
ト・インプリメンテーションはコンストラクタを使用す
ることによってアプリケーションにリンクされている。
コンテキストに対するすべてのアクセスはそのコンテキ
スト・ハンドルを介するものである。コンテキスト・ハ
ンドルはFN SPIに固有な他の内部コンストラクタ
を呼び出すこともできる、以下で説明する事前定義の手
法を使用して指定されたコンストラクタを呼び出すこと
によって取得される。FN SPIコンストラクタは図
6で説明したものと類似した手法を使用して、適切なF
N SPIを供給するコンテキスト・オブジェクトに、
ハンドルを返す。コンテキスト・ハンドルを含む以降の
操作は、FN SPIを介してコンテキスト・インプリ
メンテーションが供給する対応する操作をトリガする。
【0120】図10はコンテキスト・インプリメンテー
ション1110、1112、1114、命名サービス1
116、1118、1120およびFNフレームワーク
1108の間の関係を示す。特定のコンテキスト・イン
プリメンテーションに対するコードは、コンテキストの
参照およびアドレス・タイプを使用して一意に特定され
る。コンテキスト・インプリメンテーション内にロード
されたコンストラクタも、コンテキストの参照およびア
ドレス・タイプを使用して一意に特定される。たとえ
ば、上述のように、以下はコンストラクタをどのように
呼び出すかについてのコード・フラグメントを示す。 ctx=constructor(referenc
e);ただし、ctxはコンテキスト・オブジェクトに
対するハンドルであり、referenceは名前をル
ックアップすることによって得られる参照である。
【0121】FNフレームワークのアーキテクチャ、お
よびその定義、ならびにFN SPIを使用することに
より、新しい任意の命名およびディレクトリ・サービス
が再コンパイルなしにアクセス可能となる。FNフレー
ムワークは特定のコンテキスト・インプリメンテーショ
ンに対して依存しておらず、コンテキスト・インプリメ
ンテーションがもたらすインタフェース(FN SP
I)だけに依存している。このため、FNフレームワー
クはコンストラクタを使用することによって、FNフレ
ームワークまたはクライアント・アプリケーションを何
も変更することなく、要求に応じて使用する異なるコン
テキスト・インプリメンテーションを選択することがで
きる。
【0122】FNフレームワークおよびコンテキスト・
インプリメンテーションが配備される操作環境がダイナ
ミック・リンキングをサポートしている場合、アプリケ
ーションはこれを再リンクまたは停止することを必要と
しないという他の利点を得る。ダイナミック・リンキン
グが利用できる場合、FNフレームワークはコンストラ
クタを使用することにより要求に応じて異なるコンテキ
スト・インプリメンテーションに動的にリンクでき、こ
れによってアプリケーションを必要となる可能性のある
すべての考えられるコンテキスト・インプリメンテーシ
ョンと予めリンクする必要がなくなる。
【0123】当分野の技術者には、本発明の範囲から逸
脱することなく、本明細書で開示した本発明の好ましい
実施の形態に各種の改変および変更を行えることが理解
されよう。したがって、本発明の範囲は上述の特定な発
明の実施の形態に限定されるものではなく、首記の特許
請求の範囲およびその同等物によってのみ画定されるべ
きものである。
【図面の簡単な説明】
【図1】 本発明とともに使用されるタイプの典型的な
コンピュータ・ワークステーションの図である。
【図2】 本発明とともに使用される分散コンピュータ
・システムの典型的な構成の図である。
【図3】 分散システムにおける典型的なクライアント
・サーバの関係を示す図である。
【図4】 共通ホスト・システムにおける典型的なクラ
イアント・サーバの関係を示す図である。
【図5】 コンテキスト・オブジェクトの図である。
【図6】 コンテキスト・オブジェクトの他の図であ
る。
【図7】 クライアントに対する典型的な命名サービス
・プロバイダの機能的関係を示す図である。
【図8】 複数の命名サービス・プロバイダを有するシ
ステムの図である。
【図9】 本発明による複数の命名サービス・プロバイ
ダを有するシステムの構造の図である。
【図10】 いくつかの異なる命名サービスに対するコ
ンテキスト・インプリメンテーションの例を示す本発明
の他の図である。
【図11】 連合命名(FN)フレームワークが部分コ
ンポジットSPIを使用してコンテキスト・インタフェ
ースを実現する方法を示す図である。
【図12】 複合名と「次命名システム」ポインタの使
い方を示す図である。
【図13】 連合命名フレームワークを実施するシステ
ムの一般的な操作を示す流れ図である。
【図14】 連合命名フレームワークを実施するシステ
ムの一般的な操作を示す流れ図である。
【図15】 連合命名フレームワークを実施するシステ
ムの一般的な操作を示す流れ図である。
【符号の説明】
1 プロセッサ 2 入出力(I/O)部 3 中央演算処理装置(CPU) 4 メモリ部 5 キーボード 6 表示装置 7 CD−ROM駆動装置 8 CD−ROM媒体 9 ディスク記憶装置 10 プログラム
【手続補正書】
【提出日】平成8年10月25日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図10】
【図5】
【図6】
【図7】
【図11】
【図8】
【図9】
【図12】
【図13】
【図14】
【図15】
フロントページの続き (72)発明者 ランガスワミー・ヴァスデヴァン アメリカ合衆国 94022 カリフォルニア 州・ロス アルトス ヒルズ・カリロ レ イン・13428

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 中央演算処理装置、メモリ、表示装置お
    よび入出力機構を有しており、2つ以上の命名システム
    にわたるコンポジット名を使用するように構成されたク
    ライアント・アプリケーションと、コンポジット名を分
    解するのに使用される命名サービス機構との間のインタ
    フェース・システムをもたらす少なくとも1台のコンピ
    ュータを有する分散コンピュータ・システムで使用され
    る連合命名フレームワーク・システムにおいて、 前記クライアント・アプリケーションに結合され、命名
    サービス機構を使用してオブジェクトのコンポジット名
    を分解するように構成された、コンピュータ・メモリの
    連合命名フレームワーク機構と、 連合命名サービス・プロバイダ・インタフェースに合致
    するように構成され、連合命名フレームワーク機構に結
    合された1つまたは複数の命名サービス機構と、 それ
    ぞれの命名システムにおける強いあるいは弱い分離に対
    するサポートを示すように構成されている1つまたは複
    数の命名サービス機構とを備えている連合命名フレーム
    ワーク・システム。
  2. 【請求項2】 中央演算処理装置、メモリ、表示装置お
    よび入出力機構を有する少なくとも1台のコンピュータ
    を有する分散コンピュータ・システムのクライアント・
    アプリケーションによって使用される、オブジェクトの
    コンポジット名を分解する改善された方法において、 クライアント・アプリケーションによって呼び出せるよ
    うに構成され、命名サービス機構を使用してオブジェク
    トのコンポジット名を分解するように構成されたコンピ
    ュータ・メモリに、指定された連合命名サービス・プロ
    バイダ・インタフェースに合致するコンテキスト・イン
    プリメンテーションを備えた連合命名フレームワークを
    設けるステップを備えており、 コンピュータ制御の下で、クライアント・アプリケーシ
    ョンが連合命名フレームワーク機構を呼び出し、クライ
    アント・アプリケーションがコンテキスト・ハンドル、
    コンポジット名、実行対象の指定された操作、およびそ
    の操作に必要な1つまたは複数の引数を備えた入力を供
    給し、 連合命名フレームワーク機構がコンテキスト・ハンドル
    を使用して、コンテキスト・ハンドルがポイントしたコ
    ンテキスト・インプリメンテーションをロードし、かつ
    どの連合命名サービス・プロバイダ・インタフェースを
    コンテキスト・インプリメンテーションがサポートして
    いるかを判定し、 連合命名フレームワーク機構がコンテキスト・インプリ
    メンテーションによってサポートされている命名サービ
    ス・プロバイダ・インタフェースに適切であり、かつク
    ライアント・アプリケーションによって呼び出された指
    定された操作に適切なものである、第1の操作をコンテ
    キスト・インプリメンテーションに対して呼び出し、 コンテキスト・インプリメンテーションが呼び出された
    第1の操作の結果を返し、かつ連合命名フレームワーク
    機構に状況値を返し、 第1の操作が成功し、これによってコンポジット名を分
    解したか、あるいは継続できないかのいずれかを状況値
    が示している場合には、連合命名フレームワーク機構が
    第1の操作の結果をクライアント・アプリケーションに
    返し、 操作を継続すべきことを状況値が示している場合には、
    連合命名フレームワーク機構が返された状況情報に基づ
    いて、コンポジット名の残りに対する処理を継続するオ
    ブジェクトのコンポジット名を分解する方法。
  3. 【請求項3】 クライアント・アプリケーションによっ
    て呼び出された、2つ以上の命名システムにわたるオブ
    ジェクトのコンポジット名を分解するように構成された
    コンピュータ読取り可能プログラム・コード機構が具体
    化されているコンピュータで使用可能な媒体を備えてい
    るコンピュータ・プログラム・プロダクトにおいて、該
    コンピュータ・プログラム・プロダクトのコンピュータ
    読取り可能プログラム・コード機構が、 クライアント・アプリケーションから呼出しを受け入れ
    て、連合命名フレームワーク機構によってコンポジット
    名を分解するように構成され、名前の分解を行うために
    命名サービス機構をさらに使用するように構成されてい
    るコンピュータ読取り可能コード機構と、 連合命名サービス・プロバイダ・インタフェースに合致
    する1つまたは複数の命名サービス機構を収めるように
    構成されており、1つまたは複数の命名サービス機構が
    クライアント・アプリケーションと直接接続していない
    コンピュータ読取り可能コード機構と、 1つまたは複数の命名サービス機構がそれぞれの命名シ
    ステムにおける強いあるいは弱い分離に対するサポート
    を示すように構成されるようにするコンピュータ読取り
    可能コード機構とを備えているコンピュータ・プログラ
    ム・プロダクト。
  4. 【請求項4】クライアント・アプリケーションによって
    呼び出された、オブジェクトのコンポジット名を分解す
    るように構成されたコンピュータ読取り可能プログラム
    ・コード機構が具体化されているコンピュータで使用可
    能な媒体を備えているコンピュータ・プログラム・プロ
    ダクトにおいて、該コンピュータ・プログラム・プロダ
    クトのコンピュータ読取り可能プログラム・コード機構
    が、 クライアント・アプリケーションから呼出しを受け入れ
    て、連合命名フレームワーク機構によってコンポジット
    名を分解するように構成され、名前の分解を行うために
    1つまたは複数の命名サービス機構をさらに使用するよ
    うに構成されており、前記1つまたは複数の命名サービ
    ス機構がコンストラクタ機構を使用することによって配
    置されているコンピュータ読取り可能コード機構と、 各々が命名サービスをもたらす1つまたは複数の命名サ
    ービス機構が連合命名サービス・プロバイダ・インタフ
    ェースに合致するように、かつそれぞれの命名システム
    における強いあるいは弱い分離に対するサポートを示す
    ように構成されるようにするコンピュータ読取り可能コ
    ード機構とを備えているコンピュータ・プログラム・プ
    ロダクト。
  5. 【請求項5】 クライアント・アプリケーションによっ
    て呼び出された、オブジェクトのコンポジット名を分解
    するように構成されたコンピュータ読取り可能プログラ
    ム・コード機構が具体化されているコンピュータで使用
    可能な媒体を備えているコンピュータ・プログラム・プ
    ロダクトにおいて、該コンピュータ・プログラム・プロ
    ダクトのコンピュータ読取り可能プログラム・コード機
    構が、 クライアント・アプリケーションから呼出しを受け入れ
    て、連合命名フレームワーク機構によってコンポジット
    名を分解するように構成され、名前の分解を行うために
    1つまたは複数の命名サービス機構をさらに使用するよ
    うに構成されているコンピュータ読取り可能コード機構
    と、 命名サービス機構が連合命名サービス・プロバイダ・イ
    ンタフェースにしたがって連合命名フレームワーク機構
    に接続されるように構成されており、新しい命名サービ
    ス機構をクライアント・アプリケーションに影響を与え
    ることなく連合命名フレームワーク機構に接続できるコ
    ンピュータ読取り可能コード機構とを備えているコンピ
    ュータ・プログラム・プロダクト。
  6. 【請求項6】 中央演算処理装置、メモリ、表示装置お
    よび入出力機構を有する少なくとも1台のコンピュータ
    を有する分散コンピュータ・システムのクライアント・
    アプリケーションによって使用される、オブジェクトの
    コンポジット名を分解する方法において、 クライアント・アプリケーションによって呼び出せるよ
    うに構成され、命名サービス機構を使用してオブジェク
    トのコンポジット名を分解するように構成されたコンピ
    ュータ・メモリに、指定された連合命名サービス・プロ
    バイダ・インタフェースに合致するコンテキスト・イン
    プリメンテーションを備えた連合命名フレームワークを
    設けるステップと、 コンテキスト・ハンドル、コンポジット名、実行対象の
    指定された操作、およびその操作に必要な1つまたは複
    数の引数を備えた入力を供給クライアント・アプリケー
    ションが連合命名フレームワーク機構を呼び出すことを
    可能とするプロセスをもたらすステップと、 連合命名フレームワーク機構がコンテキスト・ハンドル
    を使用して、コンテキスト・ハンドルがポイントしたコ
    ンテキスト・インプリメンテーションをロードし、かつ
    どの連合命名サービス・プロバイダ・インタフェースを
    コンテキスト・インプリメンテーションがサポートして
    いるかを判定できるようにするプロセスをもたらすステ
    ップと、 コンテキスト・インプリメンテーションが呼び出された
    第1の操作の結果を返し、かつ連合命名フレームワーク
    機構に状況値を返すことができるようにするプロセスを
    もたらすステップと、 第1の操作が成功し、これによってコンポジット名を分
    解したか、あるいは継続できないかのいずれかを状況値
    が示している場合には、連合命名フレームワーク機構が
    第1の操作の結果をクライアント・アプリケーションに
    返すことができるようにするプロセスをもたらすステッ
    プと、 操作を継続すべきことを状況値が示している場合には、
    連合命名フレームワーク機構が返された状況情報に基づ
    いて、コンポジット名の残りに対する処理を継続できる
    ようにするプロセスをもたらすステップとを備えている
    オブジェクトのコンポジット名を分解する方法。
JP8194169A 1995-07-05 1996-07-05 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法 Pending JPH09171465A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/498155 1995-07-05
US08/498,155 US5745683A (en) 1995-07-05 1995-07-05 System and method for allowing disparate naming service providers to dynamically join a naming federation

Publications (1)

Publication Number Publication Date
JPH09171465A true JPH09171465A (ja) 1997-06-30

Family

ID=23979810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8194169A Pending JPH09171465A (ja) 1995-07-05 1996-07-05 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法

Country Status (4)

Country Link
US (1) US5745683A (ja)
EP (1) EP0752674B1 (ja)
JP (1) JPH09171465A (ja)
DE (1) DE69636887T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement
JP2017520861A (ja) * 2014-07-14 2017-07-27 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境でネームスペースをサポートするためのシステムおよび方法

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941556B1 (en) * 1995-03-24 2005-09-06 Sun Microsystems, Inc. Method and system for type identification for multiple object interfaces in a distributed object environment
US5873092A (en) * 1995-12-14 1999-02-16 International Business Machines Corporation Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties
US6460058B2 (en) 1996-12-06 2002-10-01 Microsoft Corporation Object-oriented framework for hyperlink navigation
US6401099B1 (en) 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
EP0953172B1 (en) * 1997-01-17 2001-08-29 International Business Machines Corporation Protecting resources in a distributed computer system
US6029169A (en) * 1997-05-01 2000-02-22 Stratum Technologies Corporation Universal software structure for representing model structures
SE9702385L (sv) * 1997-06-23 1998-12-24 Ericsson Telefon Ab L M Förfarande och anordning i ett datanät
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
US6208986B1 (en) 1997-12-15 2001-03-27 International Business Machines Corporation Web interface and method for accessing and displaying directory information
US6195666B1 (en) 1997-12-15 2001-02-27 International Business Machines Corporation Web interface and method for displaying directory information
US6260039B1 (en) * 1997-12-15 2001-07-10 International Business Machines Corporation Web interface and method for accessing directory information
US6192362B1 (en) * 1997-12-15 2001-02-20 International Business Machines Corporation System and method for creating a search form for accessing directory information
US6272488B1 (en) * 1998-04-01 2001-08-07 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated collection object
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6233586B1 (en) 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6510450B1 (en) * 1999-02-04 2003-01-21 Novell, Inc. Multiple storage class distributed nametags for locating items in a distributed computing system
US6438590B1 (en) 1999-04-13 2002-08-20 Hewlett-Packard Company Computer system with preferential naming service
US6920475B1 (en) * 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
DE10019150A1 (de) * 2000-04-18 2001-10-25 Bosch Gmbh Robert Verfahren und Vorrichtung zum Schätzen einer Querbeschleunigung an einer Achse eines Aufliegers oder Anhängers einer Fahrzeugkombination
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
CA2800037C (en) 2000-06-21 2014-12-16 Microsoft Corporation System and method for integrating spreadsheets and word processing tables
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US6874143B1 (en) * 2000-06-21 2005-03-29 Microsoft Corporation Architectures for and methods of providing network-based software extensions
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7117435B1 (en) 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7043714B2 (en) * 2001-06-28 2006-05-09 International Business Machines Corporation Method, system, and program for using objects in data stores during execution of a workflow
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US7100147B2 (en) * 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
US7054855B2 (en) * 2001-07-03 2006-05-30 International Business Machines Corporation Method and system for performing a pattern match search for text strings
US7047535B2 (en) * 2001-07-30 2006-05-16 International Business Machines Corporation Method, system, and program for performing workflow related operations using an application programming interface
US7228547B2 (en) * 2001-07-30 2007-06-05 International Business Machines Corporation Method, system, and program for enabling access to a plurality of services
US7698427B2 (en) 2001-07-30 2010-04-13 International Business Machines Corporation Method, system, and program for transferring data from an application engine
US7296056B2 (en) * 2001-07-30 2007-11-13 International Business Machines Corporation Method, system, and program for selecting one user to assign a work item in a workflow
US6920456B2 (en) 2001-07-30 2005-07-19 International Business Machines Corporation Method, system, and program for maintaining information in database tables and performing operations on data in the database tables
US7036127B2 (en) * 2001-10-11 2006-04-25 International Business Machines Corporation Legacy CORBA name space integration using web application servers
US6947925B2 (en) * 2002-04-15 2005-09-20 International Business Machines Corporation System and method for performing lookups across namespace domains using universal resource locators
JP4224250B2 (ja) * 2002-04-17 2009-02-12 パイオニア株式会社 音声認識装置、音声認識方法および音声認識プログラム
EP1406171A1 (en) * 2002-10-04 2004-04-07 Hewlett-Packard Company Data processing system and method
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7516145B2 (en) 2003-03-31 2009-04-07 Microsoft Corporation System and method for incrementally transforming and rendering hierarchical data files
US7168035B1 (en) 2003-06-11 2007-01-23 Microsoft Corporation Building a view on markup language data through a set of components
US7197515B2 (en) * 2003-06-30 2007-03-27 Microsoft Corporation Declarative solution definition
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7483914B2 (en) * 2003-07-17 2009-01-27 International Business Machines Corporation Method and system for implementing an application-based naming system
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7581177B1 (en) 2003-08-01 2009-08-25 Microsoft Corporation Conversion of structured documents
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7743029B2 (en) * 2003-12-30 2010-06-22 Sap Ag Log configuration and online deployment services
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US7318063B2 (en) 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7568101B1 (en) 2004-05-13 2009-07-28 Microsoft Corporation Digital signatures with an embedded view
US7281018B1 (en) 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US8028002B2 (en) 2004-05-27 2011-09-27 Sap Ag Naming service implementation in a clustered environment
US7721256B2 (en) * 2004-05-27 2010-05-18 Sap Ag Method and system to provide access to factories in a naming system
US7516399B2 (en) 2004-09-30 2009-04-07 Microsoft Corporation Structured-document path-language expression methods and systems
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US8014321B2 (en) * 2004-10-22 2011-09-06 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20080288659A1 (en) 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8549180B2 (en) * 2004-10-22 2013-10-01 Microsoft Corporation Optimizing access to federation infrastructure-based resources
US7958262B2 (en) 2004-10-22 2011-06-07 Microsoft Corporation Allocating and reclaiming resources within a rendezvous federation
US8095601B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8095600B2 (en) * 2004-10-22 2012-01-10 Microsoft Corporation Inter-proximity communication within a rendezvous federation
US8392515B2 (en) * 2004-10-22 2013-03-05 Microsoft Corporation Subfederation creation and maintenance in a federation infrastructure
US20060090003A1 (en) * 2004-10-22 2006-04-27 Microsoft Corporation Rendezvousing resource requests with corresponding resources
US20110082928A1 (en) * 2004-10-22 2011-04-07 Microsoft Corporation Maintaining consistency within a federation infrastructure
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7584417B2 (en) 2004-11-15 2009-09-01 Microsoft Corporation Role-dependent action for an electronic form
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7509353B2 (en) 2004-11-16 2009-03-24 Microsoft Corporation Methods and systems for exchanging and rendering forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7437376B2 (en) 2004-12-20 2008-10-14 Microsoft Corporation Scalable object model
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US7543228B2 (en) 2005-06-27 2009-06-02 Microsoft Corporation Template for rendering an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7613996B2 (en) 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7779343B2 (en) 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989002129A1 (en) * 1987-09-04 1989-03-09 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5377323A (en) * 1991-09-13 1994-12-27 Sun Microsytems, Inc. Apparatus and method for a federated naming system which can resolve a composite name composed of names from any number of disparate naming systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement
JP2017520861A (ja) * 2014-07-14 2017-07-27 オラクル・インターナショナル・コーポレイション マルチテナントアプリケーションサーバ環境でネームスペースをサポートするためのシステムおよび方法

Also Published As

Publication number Publication date
EP0752674A1 (en) 1997-01-08
EP0752674B1 (en) 2007-02-07
DE69636887T2 (de) 2007-12-06
DE69636887D1 (de) 2007-03-22
US5745683A (en) 1998-04-28

Similar Documents

Publication Publication Date Title
EP0752674B1 (en) System and method for allowing disparate naming service providers to dynamically join a naming federation
US6834284B2 (en) Process and system for providing name service scoping behavior in java object-oriented environment
JP3868013B2 (ja) コードのリモート実行方法およびシステム
Richter Applied Microsoft. NET framework programming
EP0578207B1 (en) Method for naming and binding objects
US5950008A (en) System and method for resolving symbolic references to externally located program files
US6442752B1 (en) Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner
US6917963B1 (en) Snapshot image for the application state of unshareable and shareable data
US7509638B2 (en) Method and apparatus for providing a pluggable and extendable J2EE architecture
EP1934794B1 (en) Apparatus, method and system for rapid delivery of distributed applications
KR100285223B1 (ko) 프로그램에입각하여분산오브젝트프로그램을생성하는방법
US20040003388A1 (en) Preparation of a software configuration using an XML type programming language
US20100228873A1 (en) Protocol Agnostic Request Response Pattern
KR19990064189A (ko) 다중 사용자 운영 체제에서 사용자 글로벌 오브젝트 명칭공간을 제공하기 위한 방법
JPH08504975A (ja) 分散型コンピュータシステムにおける遠隔手続き呼出しを実行するための方法およびシステム
JPH0675846A (ja) アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法及び装置
JPH06110808A (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0656600B2 (ja) 分散不均一環境におけるサーバー機能の実行方法及び装置
US7334235B2 (en) Operating system application programming interfaces and methods of using operating systems
Löwy COM and. NET component services
EP0628907B1 (en) Method of running on a computer system an application not designed to run on the computer system
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
Hailpern et al. Dynamic reconfiguration in an object-based programming language with distributed shared data
US8015153B2 (en) System for distributed communications
US8924963B2 (en) In-process intermediary to create virtual processes

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070305

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070807