JPH09506725A - オブジェクト指向ルール・ベース・プロトコル・システム - Google Patents

オブジェクト指向ルール・ベース・プロトコル・システム

Info

Publication number
JPH09506725A
JPH09506725A JP7516725A JP51672595A JPH09506725A JP H09506725 A JPH09506725 A JP H09506725A JP 7516725 A JP7516725 A JP 7516725A JP 51672595 A JP51672595 A JP 51672595A JP H09506725 A JPH09506725 A JP H09506725A
Authority
JP
Japan
Prior art keywords
service
node
client
network
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7516725A
Other languages
English (en)
Other versions
JP3839472B2 (ja
Inventor
ペタス,クリストファー,イー.
Original Assignee
オブジェクト テクノロジー ライセンシング コーポレイション
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 オブジェクト テクノロジー ライセンシング コーポレイション filed Critical オブジェクト テクノロジー ライセンシング コーポレイション
Publication of JPH09506725A publication Critical patent/JPH09506725A/ja
Application granted granted Critical
Publication of JP3839472B2 publication Critical patent/JP3839472B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4553Object oriented directories, e.g. common object request broker architecture [CORBA] name server
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 オブジェクト指向ルール・ベース・プロコトル・システムが開示されている。マルチノード・クライアント・サーバ・ネットワークでは、クライアント・ノードは、ネットワークの各ノードに置かれている通信ディレクトリ・サービスを通してリモート・サービスへのアクセスを得ている。通信ディレクトリ・サービスはツリー構造を含んでおり、そこに既存のディレクトリ・サービスや他のネットワーク・サービスを追加することが可能になっている。ツリー構造は複数のノードをもち、その各々はそのアクションが基礎となるサービスによってサポートされていれば、関連のディレクトリ・サービスを照会(query)し、ブラウズ(browse)する特定のメソッドを含んでいる。通信ディレクトリ・サービスはさらに、ネットワーク上で提供される各サービスに関連づけられたサービス・オブジェクトをストアする共用ライブラリを含んでいる。サービス・オブジェクトの方は、サービス交換アドレスと通信リンク構成情報を含んでいる。リモート・サービスをアクセスしようとするクライアントは、適当なサービス・オブジェクトを通信ディレクトリ・サービスから検索し、そのサービス・オブジェクトを使用して通信パスをセットアップする。

Description

【発明の詳細な説明】 オブジェクト指向ルール・ベース・プロトコル・システム 著作権表記 本特許出願の一部には、著作権保護の対象となる内容が含まれている。著作権 所有者は、米国特許商標庁に記録されている特許文書または特許開示内容を何人 もが原文通りに複製することを妨げるものではない。その他の権利を一切所有す ることを明示に留保する。 発明の分野 本発明は一般的には分散コンピュータ・ネットワークに関し、より具体的には 分散ネットワーク・ディレクトリとネーミング・サービスに対するルール・ベー ス・プロトコル処理に関する。 発明の背景 パーソナル・コンピュータやミニ・コンピュータなどの、独立型でローカル化 されたデータ処理デバイスによるデータ処理が急成長していることに伴って、デ ータ・ネットワークは物理的に切り離されたデバイスを互いに結合し、ネットワ ークに接続された種々のデバイス間でディジタル通信を行なうことを可能にする まで発展している。 ネットワークには、ローカル・エリア・ネットワーク(local area network - LAN)と広域ネットワーク(wide area network - WAN)を含めて、数種類 のものがある。LANは限定エリア・ネットワークであり、LANに接続された データ・デバイスは同一建物内に置かれているのが一般である。代表的なLAN は同軸ケーブルや撚り対線(twisted pair)のように、種々のコンピュータ、サー バ、プリンタ、モデム、その他のディジタル・デバイスを互いに結合する伝送媒 体から構成されている。これらのデバイスは「ノード」と総称され、各々はノー ドを一意的に識別するアドレスで伝送媒体に接続され、データをあるノードから 別のノードへルート(route)するために使用されている。資源とサービスを提供 するノードは「サーバ(server)」ノードと呼ばれ、これらの資源とサービスを利 用するノードは「クライアント(client)」ノードと呼ばれている。WANはもっ と大きなエリアを取り囲んでいるのが一般で、電話回線などのコモン・キャリア 接続を含んでいる場合もある。 LANとWANは、様々な構成で互いに結合されて、異なる建物やロケーショ ン間を結んでいる場合や、大陸全体に渡っている場合もある「エンタープライズ 」ネットワークを構築することがよくある。エンタープライズ・ネットワークが 便利である理由には、いくつかある。このネットワークは資源共用を可能にする 。つまり、プログラム、データおよび機器は、資源とユーザの物理的ロケーショ ン(所在)に関係なく、ネットワークに接続されたすべてのノードが利用できる 。また、エンタープライズ・ネットワークでは、複数のデータ・ソースを重複し て使用可能にしておくことにより信頼性も得られる。例えば、重要なデータ・フ ァイルは複数のストレージ(記憶)デバイスに複製しておくことができるので、 例えば、機器障害が原因でファイルの1つが使用不能になっても、重複ファイル を使用することができる。 エンタープライズ・ネットワークの最も重要な特徴の1つは、ネットワークに 接続されたユーザのすべてに大規模で、高度のサービス・セットを妥当なコスト で提供できる能力をもっていることである。しかし、ユーザがネットワークの潜 在能力を活用するためには、ユーザはネットワーク資源を識別し、そこに位置づ けて、アクセスできなければならない。ネットワークが小規模のときは、使用で きる資源に位置づけて、アクセスすることは比較的単純であるが、ネットワーク は成長して大きくなり、現在では、非常に大規模なネットワークが多数存在する 。何千のノードからなるネットワークは普通であり、何百万のノードからなるネ ットワークが出現する見通しもある。 大規模ネットワークの例として、INTERNET(インターネット)ネットワークが あるが、これは大きな公共機関や私企業で利用されている。この種のネットワー クがもつ能力の多くは、ユーザが使用できる機能にユーザが気づいていないか、 あるいは機能にアクセスする方法が困難であるか、紛らわしいという単純な理由 で未使用のままになっている。その結果、ユーザがネットワーク資源に位置づけ て、アクセスするのを容易にするために、多くの既存ネットワークは現在では、 ユーザから資源識別子または資源名を受け取り、所望のネットワーク資源に対応 するネットワーク・アドレスに位置づけるネットワーク・ディレクトリまたはネ ーミング・サービスを利用している。 例えば、入力される識別子または名前は「記述的」にすることができ、他の資 源と区別できるだけの十分な属性を記述することにより資源を指定する。このよ うな記述名はネットワークをサーチして、ある特定基準に一致する資源を探し出 す人間のユーザにとっては非常に役立つが、これらの名前は最大のコンピューテ ィング資源も必要とし、効率よく分散化することが困難である。現在、このよう な記述名サービスに関する標準がいくつか存在する。例えば、国際電信電話諮問 委員会(Consultative Committee on Informational Telephony and Telegraphy -CCITT)および国際標準化機構(International Standards Organization - ISO)は、X.500と呼ばれる記述名サービスに関する規格を開発した。 ネーミングとディレクトリ・サービス(これらは以下「ディレクトリ・サービ ス」と総称することにする)は、現在種々の方法で実現されている。最も単純な 実現方法では、名前および対応するネットワーク・アドレスのリストを収めてお くために、ローカル・サーバ・ノードに置かれている単一の集中型データベース を使用している。このようなローカル化ディレクトリ・サービスの例は図1に示 されている。図1は、複数のクライアント・ノード106,108,120,1 22,128よりなる「クライアント−サーバ」構成に配置されたコンピュータ ・ネットワークを示している。これらのクライアント・ノードは、例えば、ワー クステーション、パーソナル・コンピュータ、ミニコンピュータまたは他のコン ピューティング・デバイスになっており、そこではアプリケーション・プログラ ムが実行され、リンク102,110,116,126,136を含む種々 のネットワーク・リンクを通して相互に通信し、またノード100,112,1 24,132,138などのサーバ・ノードと通信している。サーバ・ノードに は、クライアント・ノードの全部または一部にサービスまたはサービス・セット を提供できる専用化ハードウェア・デバイスとソフトウェア・プログラムが置か れている。クライアント・ノードは、サーバ・ノードから提供される種々のネッ トワーク・サービスのユーザである。 代表例として、集中型ディレクトリ・サービス・データベース104は、ノー ド100のような、サーバ・ノードの1つに置かれている。クライアント・ノー ド、例えば、クライアント・ノード108は、サーバ・ノード100と接続し、 資源識別子または資源名を入力し、関連サービスのネットワーク・アドレスを検 索することによりディレクトリ・サービスにアクセスすることができる。従来の データベース手法によると、クライアント・ノードはデータベース上をサーチし て特定の資源に位置づけることが可能になっている。さらに、多くのディレクト リ・サービスは部分名記述、「ワイルドカード(wild card)」およびプレースホ ルダ(placeholder)を使用してブラウズ(browse)することをサポートしている。 単一データベースによるこの種の集中型ディレクトリ・サービスは、ネットワー ク・アドレスが少数である小規模ネットワークでは有効である。しかし、大規模 ネットワークでは、すべての資源識別子を中央の一か所に置いておくことは事実 上不可能である。さらに、単一データベースはネットワーク全体を使用不能にで きる単一の障害ポイントを表わす。さらに、集中型データベースは貧弱なパフォ ーマンスという欠点をしばしばもつ。例えば、クライアント108のようなロー カル・クライアントがサーバ100と接続してデータベース104をアクセスす ることは比較的効率的であるが、クライアント120のようなリモート・クライ アントは、「ゲートウェイ」リンク116と共に、いくつかのサーバ124,1 12を経由してリンクしなければならないので、大量のネットワーク・オーバヘ ッドが発生し、システム全体のアクセス「コスト」が高くなる。リモート・アク セスの試みが多くなると、ディレクトリ・サービス・プロバイダはネットワーク 全体にわたって直ちに処理ボトルネックと通信ボトルネックになってしまう。 上記問題を解消するために、データベース・データを複数のロケーションに分 散化する別の従来手法が開発されている。このようなシステムが図2に概略図的 に示されている。図2はクライアント・サーバ型のネットワークを示しているが 、これは図1に示したものと似ている。具体的には、これらの2つの図で対応す るエレメントは対応する参照符号が付いている。例えば、図1のクライアント1 08は図2のクライアント208と類似している。これらの2つのネットワーク の違いは、ディレクトリ・サービス・データベースがいくつかのサーバ・ノード に重複して置かれていることである。例えば、サーバ・ノード200には、サー バ・ノード212(データベース214)、サーバ・ノード232(データベー ス230)およびサーバ・ノード224(データベース218)と同じように、 ディレクトリ・サービス・データベース204が置かれている。データを重複し てデータベースの各々に置いておく従来方法はいくつか知られている。あるシス テムでは、各資源識別子を個別的に重複して各データベースに置いている。他の システムでは、データベース全体を重複している。さらに、他のシステムでは、 個別的ノードを重複するか、あるいはデータベースをなんらかの方法で分割して 重複を制限している。 図2に示す分散システムは、集中型データベースに関連する問題を防止してい る。データは重複されているので、障害ポイントは一か所でない。また、データ は近くのサーバ・ノードで通常使用可能であるので、「リモート」クライアント ・ノードというものがなく、ネットワーク・オーバヘッドが大幅に軽減されてい る。 しかるに、分散システムには独自の問題がある。例えば、複数のソースがデー タベースを更新する可能性のあるときは、なんらかの方法を使用してデータ整合 性(data consistency)を保証しなければならない。あるシステムでは、データ整 合性を保つために、データのすべてのコピーが従来のデータベース・システムと 同じように、緊密に同期を保つようにしている。他のシステムでは、従来の同時 実行調停方式(concurrency arbitration scheme)を用いてデータ保全性(data in tegrity)を保証している。 このようなネーミングおよびディレクトリ・サービスは、同じアクセス方式と プロトコルがネットワーク全体にわたって適用されるような同種ネットワークで は効果的である。この場合には、整合性のある名前とルールのセットが開発され て、種々の資源の位置づけとアクセスを比較的容易にできる。しかし、多くの大 規模ネットワークは異種ネットワークである。つまり、ネットワークは、ワーク ・ステーション、パーソナル・コンピュータ、ミニコンピュータ、スーパコンピ ュータ、メインフレームといったように、多種類の異なるコンピュータを含んで いるだけでなく、ネットワーク自体は、「ゲートウェイ」と呼ばれるインタフェ ースを通して互いに結合された多数の独立型小規模ネットワークから構成されて いる。これらの小規模ネットワークは独自のアクセス方式とプロトコルをもって いることがある。さらに、これらの大規模ネットワークの異種構造と編成は、共 通の方式とプロトコルを指図できる中央制御と管理には力を貸さない。 互いに結合された小規模ネットワーク群から構成された多数の大規模ネットワ ークでは、基礎となる個別ネットワークの各々は、特定のプロトコルを使用する 独自の異なるディレクトリ・サービスをもっている。このタイプのネットワーク では、ユーザは各ネットワーク・ディレクトリ・サービス・プロトコルに精通し ている必要があり、サーチがあるネットワークから次のネットワークへ実行され るとき、あるプロトコルから別のプロトコルへ移る必要がある。その結果、この ような異種ネットワークでは、ネットワーク資源をアクセスすることを困難にし ている主要問題の1つは、詳細および、これらの個別ネットワークの各々にアク セスするときに関連するプロトコルにユーザがとらわれることなく、異種ネット ワーク上で動作可能なネットワーク資源の整合性のあるグローバル・アクセス可 能なディレクトリが欠如していることに起因している。 今日のネットワーキング・サービスは種々のプロトコル・システムをもってい る。従来技術では、アプリケーションは、ネットワーキングのプロトコル・アー キテクチャに関する詳細情報を含んでいなければならなかった。この要件がアプ リケーションを特定のプロトコルに結びつけていた。アプリケーションはソース ・コードを変更しないとプロトコルの変更をサポートできないために、これはネ ットワークを動的に構成することを妨げていた。 以上に鑑みて、本発明の目的はアプリケーションがサービスのタイプと品質を 指定できるようにすることである。 発明の概要 本発明の一実施例によれば、ルール・ベース・プロトコル選択メカニズムが該 当のプロトコル構成をサービスのタイプと品質に基づいて選択することにより、 上述した問題を解決し、上述した目的を達成している。各プロトコル・ファミリ ごとに、ルール・セットが定義され、サービスのタイプと品質を特定の共通プロ トコル・セットに変換するようにしている。 図面の簡単な説明 本発明の上記およびその他の利点は、添付図面と関連して以下の説明を参照す ることによりもっと理解しやすくなる。添付図面において、 図1は、ローカル・ディレクトリ・サーバを取り入れている従来のクライアン ト・サーバ・ネットワークを示す概略ブロック図である。 図2は、分散ディレクトリ・サーバを取り入れている従来のクライアント・サ ーバ・ネットワークを示す概略ブロック図である。 図3は、本発明によるオブジェクト指向印刷インタフェースが動作しているコ ンピュータ・システム、例えば、パーソナル・コンピュータ・システムを示す概 略ブロック図である。 図4は、本発明による通信ディレクトリ・サービスを取り入れているクライア ント・サーバ・ネットワークを示す概略ブロック図である。 図5は、国際標準化機構の7層モデルに準拠して2ノード構造間でデータを伝 送するために使用される従来のプロトコル・スタックの詳細を示す概略ブロック 図である。 図6は、通信ディレクトリ・サービスの主要コンポーネントを示す概略図であ る。 図7は、種々のディレクトリ・サービスと他のネットワーク・サービス上でブ ラウズを可能にするディレクトリ・ツリーのセットアップ例を示す概略図である 。 図8はサーバ・ノードの主要コンポーネントを示す概略ブロック図であり、サ ービス・プログラムが通信ディレクトリ・サービスとやりとりする様子を示して いる。 図9は、新サービスをネットワーク上で使用可能にするときに伴うステップを 示す簡略フローチャートである。 図10は、サービス・オブジェクトをアクチベートするためにサービス・プロ グラムによって実行されるステップを示す展開されたフローチャートである。 図11は、クライアント・ノードの主要コンポーネントを示す概略図であり、 アプリケーション・プログラムが通信ディレクトリ・サービスとやりとりしてサ ービスをアクセスする様子を示している。 図12は、ネットワーク上で使用可能なサービスをアクセスするときに伴うス テップを示す簡略フローチャートである。 図13は、サービス・オブジェクトをアクチベートするためにサービス・プロ グラムによって実行されるステップを示す展開されたフローチャートである。 実施例の詳細な説明 本発明は、好ましくは、IBM(登録商標)PS/2(登録商標)またはアップル (登録商標)マッキントッシュ(登録商標)コンピュータなどのパーソナル・コ ンピュータに常駐したオペレーティング・システムを背景に実施される。図3は 代表的なハードウェア環境を示しもので、本発明によるコンピュータ300の代 表的なハードウェア構成を示していてる。コンピュータ300は中央処理ユニッ ト302によって制御されるが、このユニットは従来のマイクロプロセッサにす ることが可能である。いくつかの他のユニットはすべてがシステム・バス308 を介して相互に接続され、特定のタスクを成し遂げるために用意されている。特 定のコンピュータは、図3に示すユニットの一部だけを備えていたり、図示して いない付加的な構成要素を含んでいたりする場合があるが、大部分のコンピュー タは、少なくとも図示のユニットを含んでいる。 具体的には、図3に示すコンピュータ300は、情報の一時記憶域のためのラ ンダム・アクセス・メモリ(RAM)306、コンピュータの構成と基本的操作 コマンドの永久記憶装置のためのリードオンリ・メモリ(ROM)304、およ びディスク・ユニット313やプリンタ314などの周辺デバイスを、それぞれ ケーブル315と312でバス308に接続するための入出力(I/O)アダプ タ310を含んでいる。ユーザ・インタフェース・アダプタ316も提供されて いるが、これはキーボード320などの入力デバイス、およびマウスやスピーカ 、マイクロホンを含む他の公知インタフェース・デバイスをバス308に接続す るためのものである。ビジュアル出力は、バス308をビデオ・モニタなどのデ ィスプレイ・デバイス322に接続しているディスプレイ・アダプタ318から 提供される。ワークステーションは、常駐のアップル・システム/7(登録商標 )オペレーティング・システムなどのオペレーティング・システムを有し、それ により制御と調整をされている。 好適実施例では、本発明は、オブジェクト指向プログラミング技法を用いてC ++プログラミング言語で実現されている。C++はコンパイル型言語である。つま り、プログラムは人間が読むことのできるスクリプト(script)で書かれ、このス クリプトはコンパイラと呼ばれる別のプログラムに渡される。コンパイラはマシ ン可読(machine-readable)の数値コードを生成し、このコードはコンピュータに ロードされ、コンピュータによって直接に実行される。以下で説明するように、 C++言語はいくつかの特徴をもっている。これらの特徴によると、ソフトウェア 開発者は他の人が書いたプログラムを容易に使用できると共に、プログラム再使 用の管理を強化してプログラムの破壊や誤った使い方を防止することができる。 C++言語は周知であり、この言語を詳しく説明した論文や文献は多数利用可能で ある。さらに、C++コンパイラは、Borland International,Inc.、Microsoft C orporation などの数社から市販されている。そのために、混乱を避けるために 、ここでは、C++言語の詳細とC++コンパイラの操作について詳しく説明するこ とはしないことにする。 この分野に精通した当業者ならば理解されるように、オブジェクト指向プログ ラミング(Object-Oriented Programming - OOP)技法は、「オブジェクト」 の定義、生成、使用、消滅を含む。これらのオブジェクトはデータ・エレメント (data element - データ要素)と、データ・エレメントを操作するルーチン、ま たは、関数(function)とからなるソフトウェア・エンティティ(software entity )である。データおよび関連の関数は、エンティティとしてソフトウェアによっ て取り扱われ、あたかも単一のアイテムであるかのように生成し、使用し、削除 することができる。データと関数は共に、データ・エレメントで表わすことがで きるその特性と、そのデータ操作関数で表わすことができるその動作(behavior) により、どのような実世界のエンティティでもオブジェクトにほとんどモデル化 させることができる。このようにして、オブジェクトは人やコンピュータなどの 具体物をモデル化することも、数や幾何学的デザインなどの抽象的概念をモデル 化することもできる。 それ自体はオブジェクトではないが、実際のオブジェクトの構築方法をコンパ イラに指示するテンプレートの働きをする「クラス」を作成することにより、オ ブジェクトは定義される。クラスは、例えば、データ変数の個数とタイプおよび データを操作する関数におけるステップを指定することができる。オブジェクト は、実際には、「構築子(constructor)」と呼ばれる特殊な関数を使用してプロ グラムの中で生成される。このコンストラクタは、対応するクラス定義と、オブ ジェクト生成の間オブジェクトを構築するために用意される引数などの対応する 追加情報を使用する。同じように、オブジェクトは「消滅子(destructor)」と呼 ばれる特殊な関数によって消滅される。オブジェクトはそのデータを操作しその 関数を呼び出す(invoke)することにより使用できる。 オブジェクト指向プログラミング技法の主な利点は3つの主要原理である、カ プセル化(encapsulation)、多様性(polymorphism)および継承(inheritance)によ るものである。具体的には、オブジェクトは、内部データ構造および内部関数の すべてまたは一部を隠蔽するように、または、カプセル化するように設計するこ とができる。もっと具体的に説明すると、プログラム設計期間に、プログラム開 発者は、データ変数のすべてまたは一部および関連の関数のすべてまたは一部が 、「プライベート(private)」、または、そのオブジェクト自身だけに使用さ れるものと考えられるようなオブジェクトを定義することができる。他のデータ または関数は、「公開(public)」、または、他のプログラムが使用できるものと 宣言することができる。他のプログラムによるプライベート変数へのアクセスは 、あるオブジェクトのプライベート・データをアクセスする公開関数を、そのオ ブジェクトのために定義することにより制御することができる。公開関数は、プ ライベート・データと「外部」世界との間の、制御された整合性のあるインタフ ェースとなっている。プライベート変数を直接にアクセスするプログラム・コー ドを書くようなことをすると、コンパイラはプログラムのコンパイル時にエラー を発生し、このエラーが起こると、コンパイル・プロセスは停止し、プログラム の実行を妨げる。 多様性とは、全体的フォーマット(形式)は同じであるが、取り扱うデータが 異なっているオブジェクトと関数が異なった働きをして、整合性のある結果を作 り出すようにする概念である。例えば、加算(addition)関数は、変数Aプラス変 数B(A+B)と定義することができ、AとBが数であるか、文字であるか、または ドルとセントであるかに関係なく、同じフォーマットを使用することができる。 しかし、加算を実行する実際のプログラム・コードは、AとBを含む変数のタイ プによって大幅に異なることがある。多様性は、変数の各タイプ(数と文字とド ル)ごとに1つといったように、3つの別々の関数定義を書くことを認める。関 数を定義したあと、プログラムは、その共通フォーマット(A+B)によって加算関 数をあとで参照することができ、コンパイル時には、C++コンパイラは3つの関 数のどれが実際に使用されているかを、変数のタイプを調べることにより決定す る。そのあと、コンパイラは正しい関数コードを代入する。多様性は、類似の結 果を作り出す類似の関数がプログラム・ソースの中で「グループ化」されて、よ り論理的で明確なプログラムの流れを作り出すことを認める。 オブジェクト指向プログラミングの基礎となる第3の原理は継承であり、これ は、プログラム開発者が既存のプログラムを容易に再使用できるようにし、ソフ トウェアを初めから作成することを回避させる。継承の原理によると、ソフトウ ェア開発者は、クラス(およびそのクラスからあとで作成されるオブジェクト) を相互に関係づけて宣言することができる。具体的には、クラスは他の基底 クラス(base class)のサブクラスとして指定することが可能である。サブクラス は、その関数がサブクラスにあらわれるかのようにその基底クラスの公開関数の すべてを「継承」し、アクセスする。あるいはまた、サブクラスは継承した関数 の一部または全部をオーバライド(override)することこともできるが、同じフォ ーマットをもつ新しい関数を定義するだけで継承関数の一部または全部を変更す ることも可能である(オーバライドまたは変更を行っても、基底クラスの関数は 変更されず、サブクラスでの関数の使い方が変更されるだけである)。別のクラ スの機能の一部を(選択的に変更を加えて)もつ新しいサブクラスを生成すると 、ソフトウェア開発者は既存のコードを開発者独自の要求に合わせてカストマイ ズすることが容易になる。 オブジェクト指向プログラミングは他のプログラミングの概念を大幅に改善し ているとはいえ、特に、変更の対象となる既存のソフトウェア・プログラムが使 用可能でない場合には、それでもなお、プログラム開発に大量の時間と作業量が 必要となっている。その結果、従来のアプローチでは、オブジェクトと雑多な追 加ルーチン群を生成する、事前に定義され、相互に関連をもつクラス群をプログ ラム開発者のために用意しているが、これらはすべてが、共通に出くわすタスク を特定の環境で実行することを目的としている。このような事前定義のクラスと ライブラリは、「アプリケーション・フレームワーク(application framework) 」と呼ばれているのが代表的であり、基本的には、稼働アプリケーションのため のプレハブ構造(pre-fabricated structure)を提供している。 例えば、ユーザ・インタフェースのアプリケーション・フレームワークには、 ウィンドウやスクロールバー、メニューなどを生成する事前定義のグラフィック ・インタフェース・オブジェクト群が用意され、これらのグラフィック・インタ フェース・オブジェクトに対するサポートが用意され、その「デフォルト(省略 時)」の動作(behavior)が用意されている場合がある。アプリケーション・フレ ームワークはオブジェクト指向の技法に基づいているので、事前定義のクラスを 基底クラスとして使用することができ、また、組み込まれたデフォルトの動作を 開発者が定義したサブクラスによって継承し、これらを変更またはオーバライド することにより、開発者はフレームワークを拡張し、特定の専門知識分野にお いてカストマイズした解決手法を生成することができる。このオブジェクト指向 による解決手法が、従来のプログラミングに比べて大きな利点となっているのは 、プログラマはオリジナル・プログラムを変更するのではなく、むしろオリジナ ル・プログラムの能力を拡張するからである。さらに、開発者がコードの層全体 にわたって盲目的に作業しないのは、フレームワークにはアーキテクチャ上のガ イダンスとモデリングが用意されており、それと同時に、開発者は問題領域に特 有の特定のアクションを供給することから解放されるからである。 必要とされるシステムのレベルおよび解決しようとする問題の種類に応じて、 アプリケーション・フレームワークは多種類のものが使用可能である。フレーム ワークのタイプは、ユーザ・インタフェースの開発を支援するハイレベル・アプ リケーション・フレームワークから、通信、印刷、ファイル・システム・サポー ト、グラフィックスなどの基本的システム・ソフトウェア・サービスを提供する 低レベル・フレームワークまでの範囲にわたっている。市販されているアプリケ ーション・フレームワークの例を挙げると、MacApp(Apple)、Bedrock(Symantec) 、OWL(Borland)、NeXT Step App Kit(NeXT)、Smalltalk-80 MVC(ParcPlace)など がある。 アプリケーション・フレームワークによる解決手法では、カプセル化、多様性 、および継承のすべての原理をオブジェクト層に利用し、他のプログラミング技 法を大幅に改善しているが、いくつかの困難な問題も起こっている。これらの困 難な問題は、開発者が自身のオブジェクトを再使用することは容易であるが、他 のプログラムによって生成されたオブジェクトを開発者が使用することが困難で あることから起こっている。さらに、アプリケーション・フレームワークはモノ リシック(monolithic)・オペレーティング・システムに上乗せされた1つまたは 2つ以上のオブジェクト「層」から構成されているのが一般であり、オブジェク ト層に柔軟性がある場合であっても、面倒な手続型コール(procedural call)を 通して、基礎となるオペレーティング・システムと直接にやりとりする必要がし ばしば起こっている。 アプリケーション・フレームワークがアプリケーション・プログラム用のプレ ハブ機能を開発者のために用意しているのと同じように、好適実施例に含まれて いるようなシステム・フレームワークは、開発者が変更またはオーバライドする ことによりカスマイズした解決手法を作成できるシステム・レベルのサービス用 のプレハブ機能を提供することができ、従来のアプリケーション・フレームワー ク・プログラムで必要であった面倒な手続型コールを避けることができる。例え ば、アプリケーション・プログラムによって生成された印刷可能情報の、自動ペ ージ付け、プリプリント処理およびページ構成の土台を提供できる印刷フレーム ワークについて考えてみることにする。アプリケーション・ソフトウェア開発者 がこれらの機能を必要とするときは、通常は、その機能を提供するための特定の ルーチンを書く必要があった。これをフレームワークを使用して行う場合は、開 発者は最終的出力の特性と動作を用意するだけでよいのに対し、フレームワーク は、これらのタスクを実行する実際のルーチンを提供する。 好適実施例では、フレームワークの概念を取り入れ、アプリケーションとオペ レーティング・システムを含むシステム全体にこの概念を適用している。商業ベ ースまたは企業の開発者、システム・インテグレータ、またはOEMにとっては 、このことは、MacAppなどのフレームワークに関して上述した利点のすべてが、 テキストやユーザ・インタフェースなどの事物についてアプリケーション・レベ ルにおいてのみならず、プリント、グラフィックス、マルチメディア、ファイル ・システム、入出力(I/O)、テストなどのサービスについてはシステム・レ ベルでも梃入れできることを意味する。 図4は、本発明の主題である本発明の通信ディレクトリ・サービスを提供して いる、図1と図2に示すクライアント−サーバ・ネットワークの概要を示す図で ある。図2と図4を比較すると分かるように、全体的ネットワーク構成はどちら のネットワークの場合も同じであるが、本発明の通信ディレクトリ・サービスが 図4に示すように使用されるときは、ノードはすべてが通信ディレクトリ・サー ビス(CDS)・モジュールを含んでいる。具体的には、サーバ・ノード400 ,412,424,432,438は、それぞれ本発明の通信ディレクトリ・サ ービス・モジュール405,413,425,430,439を含んでいる。さ らに、サーバ・ノードはいずれかが、あるいはすべてが従来のディレクトリ・サ ービス404,414,418,430をそれぞれ含むことも可能であ る。従来のディレクトリ・サービスは、通信ディレクトリ・サービスと区別する ために、以下では物理ディレクトリ・サービスと呼ぶことにする。 サーバ・ノードに加えて、クライアント・ノード406,408,420,4 22,428(それぞれDCS407,409,421,423,429)の各 々も、通信ディレクトリ・サービスを含んでいる。以下で詳しく説明するように 、図4に示すようなエンタープライズ・ネットワークでは、あるノードから別の ノードへ送られる情報は、一般に離散的メッセージまたは「パケット」に分割さ れ、これらのパケットは事前定義のプロトコルに従ってノード間で伝送される。 ここで言う「プロトコル」とは、別々のノードがどのようにサポートされて、相 互にやりとりするかを定義したルール(規則)またはプロシージャ(手順)の集 まりからなっているものである。 設計の複雑さを軽減するために、大部分のネットワークは一連の「層」または 「レベル」で編成されるので、あるノードから別のノードへ渡される情報が層か ら層へ伝送されるようになっている。各層内では、あらかじめ定義したサービス またはオペレーションが実行され、層はあらかじめ定義されたプロトコルに従っ て相互に通信し合っている。層化的な設計の目的は、ある層が、標準化インタフ ェースを通して他の層へ選択されたサービスを提供することを可能にすると共に 、ある層内の実際のインプリメンテーション(実装)の詳細が他の層から見えな いようにすることである。以下で詳しく説明するように、クライアント・ノード とサーバ・ノードはどちらも、通信ディレクトリ・サービス・モジュールと共同 作用してネットワーク層を構成し、ネットワーク層の方は、クライアントとサー バ間の接続のタイプとパラメータを、提供されるサービスのタイプに従って制御 する。 ネットワーク・アーキテクチャ(ネットワークで使用される層とプロトコルの 集まりの全体名)を標準化する試みとして、一般化されたモデルが国際標準化機 構(ISO)によって提案されているが、これは現在使用されている種々のプロ トコルを国際的に標準化する第一歩となるものである。このモデルは、開放型シ ステム間相互接続(open sytems interconnection - OSI)参照モデルと呼ば れているが、これは他のシステムとの通信用に「開放」されているシステムの相 互接続を扱っているためである。提案されたOSIモデル案は7層からなり、( 相互に作用し合う順に)「物理」層、「データリンク」層、「ネットワーク」層 、「トランスポート」層、「セッション」層、「プレゼンテーション」層、「ア プリケーション」層と名づけられている。OSIモデルの目的は、各層内で処理 されるプロセスを標準化することである。 OSIモデルによれば、物理層で実行されるプロセスは、未処理(raw)データ ・ビットの通信チャネル上の伝送を扱っている。データ・リンク層で実行される プロセスは未処理データ・ビット・ストリームを操作し、それを見かけ上伝送エ ラーのないデータ・ストリームに変換する。後者のタスクは伝送データをデータ ・フレームに分割し、そのあとにエラーを検出または訂正するエラー訂正メカニ ズムを付けてフレームを順次に伝送することにより行われる。 ネットワーク層プロセスは、データ・パケットをデータ・ソースからデータ・ デスティネーションへどのようにルートする(route)かを、ネットワークを通る 多数の代替経路から1つを選択することにより判断する。トランスポート層プロ セスの機能は、セッション層からデータ・ストリームを受け取り、それをもっと 小さな単位に分割し(必要な場合)、その小さな単位をネットワーク層へ渡し、 順序エラー、重複または紛失データなしで、デスティネーションに正しくすべて 到着したことを保証する適当なメカニズムを提供することである。 セッション層プロセスは、異なるマシンにいるユーザが相互間で「セッション 」または「会話(dialogue)」を確立することを可能にする。セッションは通信し 合うノード間で通常データのトランスポートを可能にするが、ある種のアプリケ ーションでは、会話制御、トークン管理と同期化などの機能強化サービスも提供 する。プレゼンテーション層は要求頻度の高いある種の共通機能を実行して、例 えば、データを標準フォーマットへのコード化、暗号化と解読の実行、その他の 機能の実行といった、一般的解決法を見つけることを保証する。最後に、アプリ ケーション・プロトコル層は、データベース・アクセス、ファイル転送などの、 共通に必要になる種々のプロトコルを含んでいる。 例えば、図5は、OSI標準の7層アーキテクチャに準拠して2つのノード間 を接続するために使用される従来技術のプロコトル・スタックを示す図である。 OSI標準によれば、ノードの各プロトコル・スタックは7層からなっている。 例えば、クライアント・ノード408のスタック528は、アプリケーション層 500、プレゼンテーション層502、セッション層504、トランスポート層 506、ネットワーク層508、データリンク層510および物理層512から なっている。これらの層の各々のオペレーションと目的は前述した通りである。 同様に、サーバ・ノード432のスタック532は層514〜526からなって いる。実際のデータ通信は2つの物理層512と526間でデータ・リンク53 0を通して行われるが、スタックが図5に示すような配置になっているときは、 各層は、ある層と同じレベルにある層である「ピア(peer)」と通信していると考 えることができる。例えば、アプリケーション層500と514は、情報が層5 02〜512のすべてを通過し、データ・リンク530を経由し、層516〜5 26を通って戻る場合でも、直接に通信していると考えることができる。同様に 、プレゼンテーション層502と516はピアツーピア(peer-to-peer)で通信す ることができる。 図5に示すようなプロトコル・スタックは、複数のデータ・バッファを使用し て実現されているのが代表的である。各データ・バッファは、そこで処理が行わ れるプロトコル層を構成している。ある層で処理が完了したあと、データを別の バッファへ転送して、別の層に従ってさらに別の処理を行うことができる。 本発明がもつ一側面によれば、ネットワーク内でピアツーピア通信を制御する プロトコル・スタックは、通信ディレクトリ・サービスにストアされたスタック 定義によって構成される。これらのスタック定義は、ネットワークで使用できる 各サービス・タイプと関連づけることできるので、アプリケーション・プログラ ムからのサービス要求に応答してプロトコル・スタックを動的に構成することが できるようになっている。 通信ディレクトリ・サービスの詳細図は図6に示されている。モジュールは3 つの主要コンポーネントからなっている。ネットワークから提供される物理ディ レクトリ・サービスと他のサービスの各々を、従来のツリー探索手法を用いて位 置づけることを可能にする階層ディレクトリ・ツリー602と、クライアントが あらかじめ指定した通信リンク上にリモート・サーバ・ノードからのデータを要 求できるようにする動的再構成可能スタックをプログラミングするために使用さ れるスタック定義オブジェクトの集まり604と、「サービス・オブジェクト」 の集まり606とである。各サービス・オブジェクトは、ネットワーク上で使用 できる1つのサービスと関連づけられ、そのサービスが使用可能なネットワーク ・アドレスまたは交換アドレスと、スタック定義オブジェクト604の1つまた は2つ以上へのリファレンス(参照)608とを含んでいる。以下で詳しく説明 するように、これらのサービス・オブジェクトの1つへのリファレンスは、対応 するサービスへのアクセスを望んでいるアプリケーション・プログラムによって 取得される。このリファレンスで識別されたオブジェクトにおける情報は、通信 経路をセットアップするために再構成可能スタックへ送られる。 スタック定義604の各々は、各層で実行される処理と層間の相互作用を指定 している層定義の集まりからなっている。スタック定義は、通信リンクがネット ワーク・システムにインストールされるときに定義される。具体的には、スタッ ク定義はシステム上の異種通信リンクごとに用意される。 通信ディレクトリ・サービス600には、ネットワーク上のユーザにとってそ のオペレーションを特に便利なものにする特徴がほかにもいくつかある。具体的 には、ディレクトリ・サービスは使用可能なサービスとディレクトリ・サービス に関する情報を、一連のオブジェクトとしてディレクトリ・ツリーにストアする 。さらに、通信ディレクトリ・サービス内のストアされたライブラリはオブジェ クトを含んでいるので、アプリケーション・プログラムとサービス・プログラム は共に、オブジェクトを通して通信ディレクトリ・サービスと直接に通信するこ とができる。通信ディレクトリ・サービスはノードの各々に存在するので、クラ イアントはどのディレクトリ・サービス・サーバともディレクトリ・サービスを 使用する前に接続する必要はない。そのかわり、オブジェクト自体がインタ フェースとなるからである。 さらに、サービス・オブジェクト606のような、あらかじめ定義されたオブ ジェクトの使用は、アプリケーション・プログラムが所望するサービスとの通信 をオープンすることができる簡単な方法を提供する。アプリケーション・プログ ラムが実際の経路構造の詳細について気にする必要なしに、サービス・オブジェ クトはネットワーキング・サービスへ直接に送られて通信経路をオープンできる 。さらに、既存の物理ディレクトリ・サービスはいずれも、ディレクトリ・ツリ ー602のノード・オブジェクトにカプセル化されているので、物理ディレクト リ・サービスはクライアント・アプリケーションから完全に隠蔽され、クライア ント・アプリケーションは、整合性のあるプロトコルとフィーチャ・セット(fea ture set)を使用して本発明の通信ディレクトリ・サービスと相互作用すること ができる。 通信ディレクトリ・サービスに見られるディレクトリ・ツリー602の詳細図 は図7に示されている。以下で詳しく説明するように、ディレクトリ・ツリーは 単純なサーチ(探索)コマンドを使用して走査することができ、完全なブラウズ 機能はワイルドカードとプレースホルダを使用により得られる。ディレクトリ・ ツリーは、サーチの結果としてオブジェクトが返され、返されたオブジェクトの タイプがオブジェクトを返したディレクトリ部分のインプリメンテーションによ って決定されるように設計されている。ディレクトリ・ツリーのサーチから返さ れるオブジェクトの例としては、リモート・サービスと接続するために使用され る情報を含んでいる、図6に示すサービス・オブジェクト606へのリファレン ス、ユーザに関するセキュリティと認証情報を含んでいるプリンシプル(princip le)オブジェクト、ユーザに関する情報のコレクションを含んでいる「ビジネス カード」およびプログラム開発者がディレクトリ・ツリーに追加できる他のクラ スがある。 ディレクトリ・ツリーは、図7に示すような単一階層ツリーの編成になってい る。なお、図7に示すツリー構成は単なる例示であり、本発明の範囲と原理から 逸脱することなく実際のツリー構成は図示の構成と大幅に異なることがある。ツ リー内のノードの各々は"namespace" オブジェクトによって形成される。 namespace オブジェクトは他のnamespace オブジェクトを参照することも、また はサービスや他の物理ディレクトリ・サービスを直接に参照することもできる。 ディレクトリ・ツリーの究極的なルートはルートnamespace オブジェクト700 である。ツリーのノードを形成するルートnamespace オブジェクト700と他の namespace オブジェクトは、走査してノード・メンバを見つけることができる従 来のツリー構造に挿入される。 ルートnamespace オブジェクト700のように、各ノード・オブジェクトは、 ディレクトリ・サーチを容易にするメソッドを含んでいる。具体的には、これら のメソッドとしては、ディレクトリ内のすべてのエントリにわたってイテレータ (iterator)を返すサーチ・メソッド、namespace が参照しているエントリを返す メソッド、および与えられたプロパティ式にマッチするエントリを返すメソッド がある。下位レベル・ディレクトリ・ノードからルートnamespace を得るための 別のメソッドを含めることも可能である。 図7に示すツリー・ディレクトリでは、究極的なノードまたは「リーフ(leaf) 」ノードは物理ディレクトリ・サービスと他の使用可能ネットワーク・サービス である。これらのリーフ・ノードはnamespace オブジェクトでもあるので、これ らには、関連ディレクトリ・プロトコルを返すメソッド、および物理ディレクト リと相互作用してディレクトリをサーチまたはブラウズするメソッドを含めるこ とが可能である。リーフ・ノードの各々は関連サービスに合わせて個別に書かれ たメソッドを含んでいるので、これらのメソッドは、関連サービスに含まれるプ ロトコル問題(protocol issue)を取り扱って、ユーザが、どのディレクトリ・サ ービスが含まれているかを問わず、整合性のある方法で通信ディレクトリ・サー ビスと相互作用できるようにする。 例えば、図7において3つのノード704,706,708は、3つの別々の 物理ディレクトリ・サービスと相互作用している。4番目のノード710もある が、このノードは「ネーティブ」namespace ノードと名づけられている。この最 後のノードはネットワークから提供されるサービスの各々へのリファレンスを含 んでいる。以下で詳しく説明するように、各サービスをユーザが使用できるよう にするために、これはネーティブnamespace 710に「登録」される。 namespace に「登録(registration)」するとは、サービスへのリファレンスを、 ディレクトリを走査する人により見つけることができるディレクトリに挿入する ことである。基本的には、登録は、関連サービス・オブジェクトをストリーム化 して、照会によってそれを見つけることができるネーティブnamespace に入れて おくことからなる。 サービスを登録することのほかに、リーフ・ノードに常駐したディレクトリま たは物理ディレクトリ・サービスの中のサービスを「パブリッシュ(publish)」 することも可能である。パブリッシュと登録との違いは、パブリッシュでは、サ ービスに関する限定された情報がディレクトリ・ノードに挿入されることである 。この限定された情報は、例えば、サービス名、サービスのタイプおよび接続ア ドレスで構成することができる。本発明の好適実施例では、ネーティブ(native) namespaceがパブリケーション(publication)を取り扱う。つまり、サービス・エ ンティティがネーティブnamespace に登録されるとき、ネーティブnamespace は そのエンティティを他のどのnamespace でパブリッシュするかを決定し、その決 定に応じてパブリケーションを指示する。 完全なブランチ機能を提供するためには、namespace 702のような中間name space を、ルートnamespace 700とリーフ・ノード704〜710との間に挿 入することが可能である。中間namespace は他のnamespace を参照している。 前述したように、本発明の通信ディレクトリ・サービスはサービス・プログラ ムとアプリケーション・プログラムの両方と相互作用して、クライアントとサー バとの間で必要な通信リンクを透過的に(transparently)セットアップする。こ の相互作用では、サービス提供者による通信ディレクトリ・サービスにおけるサ ービス・オブジェクトの生成と、サーバ・ノードにおけるプロトコル・スタック の構成を含む。サービスのアクセスを所望するクライアントは関連サービス・オ ブジェクトを検索し、それを使用してプロトコル・スタックをクライアント・ノ ードに構成して通信リンクをセットアップする。 図8〜図10は、サーバ・ノードで稼働しているサービス・プログラムによっ て実行されて、クライアント・ノードで実行されているアプリケーション・プロ グラムにより使用できるように新しいサービスをネットワーク上で使用可能にす るオペレーションを説明したものである。図8は、新サービスの生成とアクチベ ーションに含まれるサーバ・ノード・プログラムの部分を示す概略ブロック図で ある。図9は、サービス・プログラム、本発明の通信ディレクトリ・サービスお よびノード・ネットワーキング・サービスの間で相互作用して、新サービスを確 立し、適当な通信リンク上で動作するようにネットワーキング・サービスを構成 する手順を示したフローチャートである。図10は、関連サービス・ブロックを アクチベートすることによって新サービスをアクチベートする様子を示す詳細ブ ロック図である。 もっと具体的に説明すると、図8は、サービスをリモート・クライアントに提 供するときのサーバ・ノードの基本的構成を示している。サーバ・ノードは共通 エリア、または、システム・アドレス空間800をもつ構成になっており、この アドレス空間には、オペレーティング・システム・プログラムと、システムで実 行されるサービス・アプリケーションによって使用される種々の共有ライブラリ が置かれている。具体的には、システム・アドレス空間800には、通信ディレ クトリ・サービス804およびネットワーキング・サービス・プログラムとライ ブラリ816が含まれる。 サーバ・ノードには、独自のアドレス空間810で実行されるサービス・プロ グラムも置かれている。以下で説明するように、サービス・プログラム806は 通信ディレクトリ・サービス804と相互作用してサービス・オブジェクトを作 成し、これは通信ディレクトリ・サービス804に置かれる。このサービス・オ ブジェクトはこのシステム内の他のノードすべてに分散(distribute)されるので 、ネットワーク上のクライアントのすべてに対してローカル・ベースでの使用が できる。サービス・オブジェクトはネットワーキング・サービス816を構成す るための適当なスタック定義を含んでいるので、アプリケーション・プログラム は通信ディレクトリ・サービスと共に、以前にストアした定義を用いて構築の詳 細においてクライアント・アプリケーション・プログラムの必要なしに、通信経 路をセットアップすることができる。 図9を参照して説明すると、新サービスの生成はステップ900からスタート して、ステップ902へ進む。ステップ902で、サービス・プログラムの開発 者は、新サービスに適当な構成パラメータを含んでいる新サービス・オブジェク トの生成を動作可能にする。これは、ディレクトリ・サービスに置かれているサ ービス・オブジェクト・クラスをサブクラス化することにより行うことができる 。具体的には、新サービス・オブジェクト・クラスを生成するために、サービス ・プログラム開発者はそのサービスの一意的な名前(unique name)、サービスの タイプ、およびオプションとして、サービスをアクセスするとき使用できる種々 の通信リンク・タイプを指定する。通常のオブジェクト指向プログラミング言語 のオペレーションによれば、このサブクラス化情報はコンパイル時にサービス・ プログラム・コードに含まれる。従って、サービス・プログラム806が適当な サーバ・ノードのサービス・プログラム・アドレス空間810にインストールさ れているときは、サービス・オブジェクト・サブクラスの構築子(constructor) は、コールされて、ステップ904(図9)に示すようにサービス・オブジェク トを通信ディレクトリ・サービス804に構築することができる。構築子をコー ルする過程で、サービス情報のタイプと品質は、図中に矢印802で示すように 通信ディレクトリ・サービスに渡される。 前述したように、通信ディレクトリ・サービス804は、共用ライブラリに置 かれているスタック定義の集まりを含んでいる。これらのスタック定義は、通信 リンクが定義され、特定のトランスポート・メカニズムと関連づけられる時に生 成される。スタック定義はそれぞれ層定義の集まりからなっている。層定義は、 各層におけるデータの処理と層間の相互作用を制御する。各スタック定義は、ト ランスポート層から物理層までのスタックを完全に定義している(これらの層の 詳細は上述した通りである)。 新サービス・オブジェクトを作成する過程で、通信ディレクトリ・サービス8 04はサービス・プログラムから提供されたサービス情報のタイプと品質を使用 してセッション層を構築し、ストアされた通信スタック定義を参照する適当なリ ファレンスを、ステップ906に示すように含む。新サービスをアクセスするた めに2つ以上の通信リンクが使用できるときは、適当なスタック定義が新サービ ス・オブジェクトの中で参照され、セッション層が構築されて、必要とする サービスのタイプや通信リンクの可用性などの種々の基準に基づいて通信リンク の1つが選択される。 以上のように、新しく作成されたサービス・オブジェクトはセッション層と、 トランスポート層から物理層までのスタックを定義している適当なスタック定義 を含んでいる。このサービス・オブジェクトは通信ディレクトリ・サービスにス トアされる。なお、この時点では、どのサービス・アドレスまたは交換アドレス もサービス・オブジェクトに提供されていない。これはサービス・オブジェクト が生成されても、アクティブでないからである。従って、サービス・オブジェク トは、サービス・プログラムがサーバ・ノードにインストールされているときは いつでも生成できるが、サービス・プログラムは下述する以降のステップがとら れるまでアクチベートされない。 もっと具体的に説明すると、新サービスをアクチベートするために、サービス ・プログラムは、ステップ908に説明されているように、ストアされたサービ ス・オブジェクトをネットワーキング・サービス816内の動的再構築可能スタ ック(DRPS)882へ送るように通信ディレクトリ・サービス804に指示 する。サービス・オブジェクトがどのようにDRPSへ転送されるかは図8に示 されている。具体的には、サービス・プログラム806は、まず、サービス・プ ログラム・インタフェース828を独自のアドレス空間810に生成する。サー ビス・プログラムとサービス・プログラム・インタフェースとの間の通信は図中 に矢印808で示されている。サービス・プログラム・インタフェース828の 方は構成データ・ストリーム814を生成し、これは、ネットワーキング・サー ビス816に常時使用できるように置かれているサーバ・インタフェース818 へデータをストリーム化して送ることができる。 次に、サービス・プログラム806は、ネットワーク構成データを含んでいる サービス・オブジェクトを検索する。この構成データは、矢印812で示すよう に通信ディレクトリ・サービスからサービス・プログラム・インタフェース82 8へ渡される。そのあと、構成データは矢印814で示すように、ストリーム化 されてシステム・アドレス空間800へ送られる。 次に、ステップ910に示すように、サービス・プログラムがサービス・オブ ジェクトをアクチベートすると、サービス交換アドレスが通信ディレクトリ・サ ービス804に戻される。アクチベーション・シーケンスの詳細は図10に示す フロー・チャートに示されている。具体的には、アクチベーション・シーケンス はステップ1000からスタートし、ステップ1002へ進む。ステップ100 2で、通信ディレクトリ・サービス804は、そのサービスが適当なものであれ ば、基礎となる物理ディレクトリ・サービス上のサービスをパブリッシュするこ とよりサービスを使用可能にする。このパブリケーションはサービスの名前を、 ある場合には、サービス・アドレスを基礎となるディレクトリ・サービスに登録 することからなる。 次に、ルーチンはステップ1004へ進み、そこでサービスが通信ディレクト リ・サービスに登録される。前述したように、この登録はサービス・オブジェク トをストリーム化して、通信ディレクトリ・サービスのネーティブnamespaceノ ードに入れることを含む。この時点で、サービスへのリファレンスがCDSディ レクトリ・ツリーに追加されるので、サービスはユーザがツリーを走査すること により位置づけられることができる。 次に、ステップ1006において、サービス・プログラム806からネットワ ーキング・サービス816内のサーバ・インタフェース818に渡されたスタッ ク定義リファレンスは、DRPS822を再構成するときに使用されるスタック 定義をセットアップするために使用される。ステップ1008で、生成されたス タック定義はDRPSに渡される(このオペレーションは図中に矢印820で示 されている)。この時点で、サービス・オブジェクト内の情報はセッション層8 23をセットアップするためにも使用される。 ステップ1010において、DRPS822内のセッション層823の交換ア ドレス、またはネットワーク・アドレスは、通信ディレクトリ・サービス804 に返される。具体的には、ネットワーキング・サービス816は、セッション層 のセットアップ時にセッション層アドレスをDRPS822から得る。このアド レスはサービス・インタフェース818を経由し、構成データストリーム814 を通してサービス・プログラム・インタフェース828へ返される。最後に、交 換アドレスがデータストリーム812を通して通信ディレクトリ・サービス 804へ返される。この交換アドレスは、前述したように、通信ディレクトリ・ サービス804に置かれている関連サービス・オブジェクトにストアされるので 、あとでクライアント・プログラムにより検索されるようになっている。この時 点で、アクチベーションは完了し、図10に示すアクチベーション・ルーチンは ステップ1012で終了する。ステップ912で、交換アドレスは通信ディレク トリ・サービスに返され、サービス・アクチベーション・ルーチンはステップ9 14で終了する。 別のデータストリームもこの時点でサービス・プログラムによってセットアッ プされるので、そのあとで、クライアント・ノードがサーバ・ノードからのサー ビスを要求したとき、入来するサービス要求を受け取ることができる。具体的に は、物理通信リンク824経由で到着したサービス要求データは、セッション層 823をサービス・プログラム・インタフェース828にリンクしている別の要 求データ・ストリーム826を通して、構成されたDRPS822へ渡される。 サービス・プログラム・インタフェース828の方は要求をデータストリーム8 08を通してサービス・プログラム806へ転送(forward)する。応答情報はサ ービス・プログラム806により、データ・ストリーム808、サービス・プロ グラム・インタフェース828、要求データストリーム826、DRPS822 、および物理通信リンク824を経由してクライアント・ノードへ返される。 新しいサービスがローカル通信ディレクトリ・サービスに追加されたあと、他 のノードに置かれているコピーを更新しなければならない。この更新は従来と同 じように行われる。例えば、取外し可能ディスク上のコピーをすべてのノードに 定期的に分散することも可能である。しかし、通信ディレクトリ・サービスのコ ピーを分散する、もっと好ましい方法は、更新を受け取ったローカル・ノードが その更新情報を他のすべてのノードにブロードキャスト(同報通信)することで ある。このブロードキャストを成し遂げるために、ブロードキャスト・メッセー ジは、プロトコル・スタックのすべてをあらかじめ定められたデフォルト・プロ トコルにセットさせる特殊なヘッダを含んでいる。このようにすると、ブロード キャスト・メッセージはすべてのノードで受信されることが可能になる。 図11から図13までは、クライアント・アプリケーションが通信ディレクト リ・サービスと協調してリモート・サービスをアクセスするとき必要になるステ ップを示している。具体的には、図11はリモート・サービスをアクセスすると きに必要となる、クライアント・ノードの適当なセクションを示している。サー バ・ノード側と同じように、クライアント・ノードにはシステム・アドレス空間 1110があり、このアドレス空間には本発明の通信ディレクトリ・サービス1 112とネットワーキング・サービス1118が含まれている。アプリケーショ ン・プログラム1100は、独自のアプリケーション・アドレス空間1104で 実行する。アプリケーション・プログラム1100、ディレクトリ・サービス1 112およびネットワーキング・サービス1118の相互作用は、図12と図3 に示すフローチャートに詳しく説明されている。 具体的に説明すると、クライアント・サービス・アクセス・ルーチンはステッ プ1200からスタートし、ステップ1202へ進む。ステップ1202に示す ように、クライアントは通信ディレクトリ・サービスと相互作用して、通信ディ レクトリ・サービスにストアされたサービス・オブジェクトの1つへのリファレ ンスを受け取る。この相互作用は図11に矢印1106で示されている。前述し たように、この相互作用には、通信ディレクトリ・サービス1112に置かれた ディレクトリ・ツリー上をユーザがサーチするときは、ユーザを直接に必要とす ることがある。あるいはまた、この相互作用は、介入するアプリケーション・プ ログラムを必要とし、通信ディレクトリ・サービスと共同作用して例えば、ドキ ュメント・アイコンをサービス・アイコン上にドラッグするといったように、目 に見える形でサービスを選択する場合もある。 いずれの場合も、ステップ1204に従い、通信ディレクトリ・サービス11 12で識別されたサービス・オブジェクトへのリファレンスが、矢印1108に 示すようにアプリケーション・プログラム1100へ返される。これを受けて、 アプリケーション・プログラムは、構成データをネットワーク・サービス111 8へ送る準備としてクライアント・インタフェース・オブジェクト1126を生 成する。サービス・オブジェクト・リファレンスは、通信ディレクトリ・サービ ス1112により構成データ・ストリーム1114を通してクライ アント・インタフェース1126へ渡される。クライアント・インタフェース1 126からは、構成データは構成データ・ストリーム1116上でストリーム化 されて、ネットワーキング・サービス1118に置かれたサーバ・インタフェー ス・オブジェクト1120へ送られる。サービス・インタフェース・オブジェク ト1120は、システム・ブートアップ時にネットワーキング・サービス111 8が作成されるとき作成され、ネットワーキング・サービスに永続的に常駐する 。 ステップ1206に従い、アプリケーション・プログラム1100はサービス ・オブジェクト・リファレンスをアクチベートする。図13は、サービス・オブ ジェクト・リファレンスをアクチベートするときのステップを示す詳細図である 。具体的には、アクチベーション・ルーチンはステップ1300からスタートし 、ステップ1302へ進む。ステップ1302において、サービス・オブジェク ト・リファレンスは、適当であれば、基礎となる物理ディレクトリ・サービスの どれかで解決される。この解決は、サービス・オブジェクトに置かれたサービス 名を使用して基礎となるディレクトリ・サービス上をサーチし、ネットワーク・ アドレスを得ることにより行われる。あるいはまた、サービス・リファレンスが 通信ディレクトリ・サービス1112のネーティブnamespace に登録されていれ ば、サービス・アドレスまたはサービス交換はサービス・オブジェクト・リファ レンスから直接に得ることができる。 ステップ1304において、サービス・オブジェクトに含められたスタック定 義は、サービス・インターフェース1120とネットワーキング・サービス11 18によって使用され、DRPS1124を構成するようにプロトコル・スタッ ク層がセットアップされる。次に、ステップ1306で、生成されたスタック定 義は矢印1122で示すようにDRPSに渡される。これらのスタック定義は、 要求と応答データをアプリケーション・プログラム1100とリモート・サービ ス(図11には示されていない)との間で送る準備として、DRPS1124を セットアップし、通信リンクを構成する。 次に、ステップ1308において、DRPS1124内のセッション層112 3のアドレスはサーバ・インタフェース1120に返される。そのあと、 アクチベーション・ルーチンはステップ1310で終了する。図12のステップ 1208へ戻り、サーバ・インタフェース1120は、セッション層1123の アドレスを、サービス・オブジェクト・レファレンスから得たリモート・サービ ス交換と入れ替えて、リモート・サービス交換(ステップ1208に示すように )を、構成データ・ストリーム1116、クライアント・インタフェース112 6およびデータ・パス(data path)1102を経由してアプリケーション・プロ グラム1100に返す。このように、アプリケーション・プログラムはリモート ・サービスと通信するときは、通信ディレクトリ・サービスからネットワーキン グ・サービスへ渡されたリモート・サービス・アドレスを使用する。 ステップ1210に示すように、サービス要求をアプリケーション・プログラ ム1100からリモート・サービスへ送るように、別のデータ・パスがセットア ップされる。この別のデータ・パスは、データ・パス1102、クライアント・ インタフェース1126およびDRPS1124のセッション層1123を含ん でいる。ステップ1212に従って、要求情報は物理通信リンク1130を経由 してリモート・サービス・ロケーションへ送出される。応答情報は、DRPS1 124、データ・ストリーム1128、クライアント・インタフェース1126 およびデータ・パス1102を経由してアプリケーション・プログラム1100 に返される。そのあと、サービス要求ルーチンはステップ1214で終了する。 以上、本発明の特定実施例に限定して説明してきたが、本発明は種々態様に変 更および改良することにより、本発明の利点の一部または全部を達成できること は勿論である。従って、請求の範囲は、本発明の精神と範囲に属するかぎり上記 の変更および改良を包含することを目的としている。
【手続補正書】特許法第184条の8 【提出日】1996年1月2日 【補正内容】 明細書 オブジェクト指向ルール・ベース・プロトコル・システム 著作権表記 本特許出願の一部には、著作権保護の対象となる内容が含まれている。著作権 所有者は、米国特許商標庁に記録されている特許文書または特許開示内容を何人 もが原文通りに複製することを妨げるものではない。その他の権利を一切所有す ることを明示に留保する。 発明の分野 本発明は一般的には分散コンピュータ・ネットワークに関し、より具体的には 分散ネットワーク・ディレクトリとネーミング・サービスに対するルール・ベー ス・プロトコル処理に関する。 発明の背景 パーソナル・コンピュータやミニ・コンピュータなどの、独立型でローカル化 されたデータ処理デバイスによるデータ処理が急成長していることに伴って、デ ータ・ネットワークは物理的に切り離されたデバイスを互いに結合し、ネットワ ークに接続された種々のデバイス間でディジタル通信を行なうことを可能にする まで発展している。 ネットワークには、ローカル・エリア・ネットワーク(local area network - LAN)と広域ネットワーク(wide are anetwork - WAN)を含めて、数種類 のものがある。LANは限定エリア・ネットワークであり、LANに接続された データ・デバイスは同一建物内に置かれているのが一般である。代表的なLAN は同軸ケーブルや撚り対線(twisted pair)のように、種々のコンピュータ、サー バ、プリンタ、モデム、その他のディジタル・デバイスを互いに結合する伝送媒 体から構成されている。これらのデバイスは「ノード」と総称され、各々はノー ドを一意的に識別するアドレスで伝送媒体に接続され、データをあるノードから 別のノードへルート(route)するために使用されている。資源とサービスを提供 するノードは「サーバ(server)」ノードと呼ばれ、これらの資源とサービスを利 用するノードは「クライアント(client)」ノードと呼ばれている。WANはもっ と大きなエリアを取り囲んでいるのが一般で、電話回線などのコモン・キャリア 接続を含んでいる場合もある。 Alok Sinha著「クライアント−サーバ・コンピューティング」(Client-Serve r Computing)という文献には、クライアント−サーバ・コンピューティング・ テクノロジの一般的概念が開示されている。この文献では、基本的パラダイム、 業界の見通し、テクノロジ、接続インタフェース、およびデータベース・インタ フェースとグラフィカル・インタフェースを含む将来の可能性が議論されている 。この文献はクライアント−サーバ・テクノロジの適度に詳しい概要書である。 C.Tschudin 著「フレキシブル・プロトコル・スタック」(Flexible Protocol Stacks)という文献はフレキシブル・スタックの実現可能性について検討し、「 プロトコル・スタックが動的に再構成されたとき起こる、いくつかの基本的問題 を実験する」ためのテスト・システムを開示している。この文献は、「スタック 構築手法を探すためにもっと研究が必要である」こと、およびもっとテストとデ バッギングが必要であることを指摘している。この文献はフレキシブル・プロト コルの可能性を考慮しているが、他方では、「そのようなプロトコル環境が実現 可能であるかどうかという問題が残っている」こと、および「現在の研究水準で は、任意のプロトコル・スタックを取り扱うために必要な手法と、かかる環境を 実現するために必要な手法の知識が不十分である」ことを認めている。最後に、 この文献は、「そのような一般的プロトコル環境を有することを期待する前に、 実行状態(running)のプロトコル・スタックの管理に関する理解が もっと必要である」と述べている。 LANとWANは、様々な構成で互いに結合されて、異なる建物やロケーショ ン間を結んでいる場合や、大陸全体に渡っている場合もある「エンタープライズ 」ネットワークを構築することがよくある。エンタープライズ・ネットワークが 便利である理由には、いくつかある。このネットワークは資源共用を可能にする 。つまり、プログラム、データおよび機器は、資源とユーザの物理的ロケーショ ン(所在)に関係なく、ネットワークに接続されたすべてのノードが利用できる 。また、エンタープライズ・ネットワークでは、複数のデータ・ソースを重複し て使用可能にしておくことにより信頼性も得られる。例えば、重要なデータ・フ ァイルは複数のストレージ(記憶)デバイスに複製しておくことができるので、 例えば、機器障害が原因でファイルの1つが使用不能になっても、重複ファイル を使用することができる。 発明の概要 本発明の一実施例によれば、ルール・ベース・プロトコル選択メカニズムが該 当のプロトコル構成をサービスのタイプと品質に基づいて選択することにより、 上述した問題を解決し、上述した目的を達成している。各プロトコル・ファミリ ごとに、ルール・セットが定義され、サービスのタイプと品質を特定の共通プロ トコル・セットに変換するようにしている。 図面の簡単な説明 本発明の上記およびその他の利点は、添付図面と関連して以下の説明を参照す ることによりもっと理解しやすくなる。添付図面において、 図1は、ローカル・ディレクトリ・サービスを取り入れている従来のクライア ント・サーバ・ネットワークを示す概略ブロック図である。 図2は、分散ディレクトリ・サーバを取り入れている従来のクライアント・サ ーバ・ネットワークを示す概略ブロック図である。 図3は、ルール・ベース・プロトコル選択メカニズムが動作しているコンピュ ータ・システム、例えば、パーソナル・コンピュータ・システムを示す概略ブロ ック図である。 図4は、ルール・ベース・プロトコル選択メカニズムを取り入れているクライ アント・サーバ・ネットワークを示す概略ブロック図である。 図5は、国際標準化機構の7層モデルに準拠して2ノード構造間でデータを伝 送するために使用される従来のプロトコル・スタックの詳細を示す概略ブロック 図である。 図6は、通信ディレクトリ・サービスの主要コンポーネントを示す概略図であ る。 図7は、種々のディレクトリ・サービスと他のネットワーク・サービス上でブ ラウズを可能にするディレクトリ・ツリーのセットアップ例を示す概略図である 。 図8はサーバ・ノードの主要コンポーネントを示す概略ブロック図であり、サ ービス・プログラムが通信ディレクトリ・サービスとやりとりする様子を示して いる。 図9は、新サービスをネットワーク上で使用可能にするときに伴うステップを 示す簡略フローチャートである。 図10は、サービス・オブジェクトをアクチベートするためにサービス・プロ グラムによって実行されるステップを示す展開されたフローチャートである。 図11は、クライアント・ノードの主要コンポーネントを示す概略図であり、 アプリケーション・プログラムが通信ディレクトリ・サービスとやりとりしてサ ービスをアクセスする様子を示している。 図12は、ネットワーク上で使用可能なサービスをアクセスするときに伴うス テップを示す簡略フローチャートである。 好適実施例では、フレームワークの概念を取り入れ、アプリケーションとオペ レーティング・システムを含むシステム全体にこの概念を適用している。商業ベ ースまたは企業の開発者、システム・インテグレータ、またはOEMにとっては 、このことは、MacAppなどのフレームワークに関して上述した利点のすべてが、 テキストやユーザ・インタフェースなどの事物についてアプリケーション・レベ ルにおいてのみならず、プリント、グラフィックス、マルチメディア、ファイル ・システム、入出力(I/O)、テストなどのサービスについてはシステム・レ ベルでも梃入れできることを意味する。 図4は、図1と図2に示すクライアント−サーバ・ネットワークにおいて、通 信ディレクトリ・サービスが提供されているものを示す概要図である。図2と図 4を比較すると分かるように、全体的ネットワーク構成はどちらのネットワーク の場合も同じであるが、通信ディレクトリ・サービスが図4に示すように使用さ れるときは、ノードはすべてが通信ディレクトリ・サービス(CDS)モジュー ルを含んでいる。具体的には、サーバ・ノード400,412,424,432 ,438は、それぞれ通信ディレクトリ・サービス・モジュール405,413 ,425,430,439を含んでいる。さらに、サーバ・ノードはいずれかが 、あるいはすべてが従来のディレクトリ・サービス404,414,418,4 30をそれぞれ含むことも可能である。従来のディレクトリ・サービスは、通信 ディレクトリ・サービスと区別するために、以下では物理ディレクトリ・サービ スと呼ぶことにする。 サーバ・ノードに加えて、クライアント・ノード406,408,420,4 22,428(それぞれCDS407,409,421,423,429)の各 々も、通信ディレクトリ・サービスを含んでいる。以下で詳しく説明するように 、図4に示すようなエンタープライズ・ネットワークでは、あるノードから別の ノードへ送られる情報は、一般に離散的メッセージまたは「パケット」に分割さ れ、これらのパケットは事前定義のプロトコルに従ってノード間で伝送される。 ここで言う「プロトコル」とは、別々のノードがどのようにサポートされ て、相互にやりとりするかを定義したルール(規則)またはプロシージャ(手順 )の集まりからなっているものである。 設計の複雑さを軽減するために、大部分のネットワークは一連の「層」または 「レベル」で編成されるので、あるノードから別のノードへ渡される情報が層か ら層へ伝送されるようになっている。各層内では、あらかじめ定義したサービス またはオペレーションが実行され、層はあらかじめ定義されたプロトコルに従っ て相互に通信し合っている。層化的な設計の目的は、ある層が、標準化インタフ ェースを通して他の層へ選択されたサービスを提供することを可能にすると共に 、ある層内の実際のインプリメンテーション(実装)の詳細が他の層から見えな いようにすることである。以下で詳しく説明するように、クライアント・ノード とサーバ・ノードはどちらも、通信ディレクトリ・サービス・モジュールと共同 作用してネットワーク層を構成し、ネットワーク層の方は、クライアントとサー バ間の接続のタイプとパラメータを、提供されるサービスのタイプに従って制御 する。 ネットワーク・アーキテクチャ(ネットワークで使用される層とプロトコルの 集まりの全体名)を標準化する試みとして、一般化されたモデルが国際標準化機 構(ISO)によって提案されているが、これは現在使用されている種々のプロ トコルを国際的に標準化する第一歩となるものである。 通信ディレクトリ・サービス600には、ネットワーク上のユーザにとってそ のオペレーションを特に便利なものにする特徴がほかにもいくつかある。具体的 には、ディレクトリ・サービスは使用可能なサービスとディレクトリ・サービス に関する情報を、一連のオブジェクトとしてディレクトリ・ツリーにストアする 。さらに、通信ディレクトリ・サービス内のストアされたライブラリはオブジェ クトを含んでいるので、アプリケーション・プログラムとサービス・プログラム は共に、オブジェクトを通して通信ディレクトリ・サービスと直接に通信するこ とができる。通信ディレクトリ・サービスはノードの各々に存在するので、クラ イアントはどのディレクトリ・サービス・サーバともディレクトリ・サービスを 使用する前に接続する必要はない。そのかわりオブジェクト自体がインタフェー スとなるからである。さらに、サービス・オブジェクト606のような、あらか じめ定義されたオブジェクトの使用は、アプリケーション・プログラムが所望す るサービスとの通信をオープンすることができる簡単な方法を提供する。アプリ ケーション・プログラムが実際の経路構造の詳細について気にする必要なしに、 サービス・オブジェクトはネットワーキング・サービスへ直接に送られて通信経 路をオープンできる。さらに、既存の物理ディレクトリ・サービスはいずれも、 ディレクトリ・ツリー602のノード・オブジェクトにカプセル化されているの で、物理ディレクトリ・サービスはクライアント・アプリケーションから完全に 隠蔽され、クライアント・アプリケーションは、整合性のあるプロトコルとフィ ーチャ・セット(feature set)を使用して通信ディレクトリ・サービスと相互作 用することができる。 通信ディレクトリ・サービスに見られるディレクトリ・ツリー602の詳細図 は図7に示されている。以下で詳しく説明するように、ディレクトリ・ツリーは 単純なサーチ(探索)コマンドを使用して走査することができ、完全なブラウズ 機能はワイルド・カードとプレースホルダを使用により得られる。ディレクトリ ・ツリーは、サーチの結果としてオブジェクトが返され、返されたオブジェクト のタイプがオブジェクトを返したディレクトリ部分のインプリメンテーション によって決定されるように設計されている。ディレクトリ・ツリーのサーチから 返されるオブジェクトの例としては、リモート・サービスと接続するために使用 される情報を含んでいる、図6に示すサービス・オブジェクト606へのリファ レンス、ユーザに関するセキュリティと認証情報を含んでいるプリンシプル(pri nciple)オブジェクト、ユーザに関する情報のコレクションを含んでいる「ビジ ネスカード」およびプログラム開発者がディレクトリ・ツリーに追加できる他の クラスがある。ディレクトリ・ツリーは、図7に示すような単一階層ツリーの編 成になっている。なお、図7に示すツリー構成は単なる例示であり、本発明の範 囲と原理から逸脱することなく実際のツリー構成は図示の構成と大幅に異なるこ とがある。ツリー内のノードの各々は"namespace" オブジェクトによって形成さ れる。namespace オブジェクトは他のnamespace オブジェクトを参照することも 、またはサービスや他の物理ディレクトリ・サービスを直接に参照することもで きる。ディレクトリ・ツリーの究極的なルートはルートnamespace オブジェクト 700である。ツリーのノードを形成するルートnamespace オブジェクト700 と他のnamespace オブジェクトは、走査してノード・メンバを見つけることがで きる従来のツリー構造に挿入される。 ステップ1010において、DRPS822内のセッション層823の交換ア ドレス、またはネットワーク・アドレスは、通信ディレクトリ・サービス804 に返される。具体的には、ネットワーキング・サービス816は、セッション層 のセットアップ時にセッション層アドレスをDRPS822から得る。このアド レスはサービス・インタフェース818を経由し、構成データストリーム814 を通してサービス・プログラム・インタフェース828へ返される。最後に、交 換アドレスがデータストリーム812を通して通信ディレクトリ・サービス80 4へ返される。この交換アドレスは、前述したように、通信ディレクトリ・サー ビス804に置かれている関連サービス・オブジェクトにストアされるので、あ とでクライアント・プログラムにより検索されるようになっている。この時点で 、アクチベーションは完了し、図10に示すアクチベーション・ルーチンはステ ップ1012で終了する。ステップ912で、交換アドレスは通信ディレクトリ ・サービスに返され、サービス・アクチベーション・ルーチンはステップ914 で終了する。 別のデータストリームもこの時点でサービス・プログラムによってセットアッ プされるので、そのあとで、クライアント・ノードがサーバ・ノードからのサー ビスを要求したとき、入来するサービス要求を受け取ることができる。具体的に は、物理通信リンク824経由で到着したサービス要求データは、セッション層 823をサービス・プログラム・インタフェース828にリンクしている別の要 求データ・ストリーム826を通して、構成されたDRPS822へ渡されるサ ービス・プログラム・インタフェース828の方は要求をデータストリーム80 8を通してサービス・プログラム806へ転送(forward)する。応答情報はサー ビス・プログラム806により、データ・ストリーム808、サービス・プログ ラム・インタフェース828、要求データストリーム826、DRPS822、 および物理通信リンク824を経由してクライアント・ノードへ返される。 新しいサービスがローカル通信ディレクトリ・サービスに追加されたあと、多 のノードに置かれているコピーを更新しなければならない。この更新は従来と同 じように行われる。例えば、取外し可能ディスク上のコピーをすべてのノードに 定期的に分散することも可能である。しかし、通信ディレクトリ・サービスのコ ピーを分散するもっと好ましい方法は、更新を受け取ったローカル・ノードがそ の更新情報を他のすべてのノードにブロードキャスト(同報通信)することであ る。このブロードキャストを成し遂げるために、ブロードキャスト・メッセージ は、プロトコル・スタックのすべてをあらかじめ定められたデフォルト・プロト コルにセットさせる特殊なヘッダを含んでいる。このようにすると、ブロードキ ャスト・メッセージはすべてのノードで受信されることが可能になる。 図11から図13までは、クライアント・アプリケーションが通信ディレクト リ・サービスと協調してリモート・サービスをアクセスするとき必要になるステ ップを示している。具体的には、図11はリモート・サービスをアクセスすると きに必要となるクライアント・ノードの適当なセクションを示している。サーバ ・ノード側と同じように、クライアント・ノードにはシステム・アドレス空間1 110があり、このアドレス空間には通信ディレクトリ・サービス1112とネ ットワーキング・サービス1118が含まれている。アプリケーション・プログ ラム1100は、独自のアプリケーション・アドレス空間1104で実行する。 アプリケーション・プログラム1100、ディレクトリ・サービス1112およ びネットワーキング・サービス1118の相互作用は、図12と図3に示すフロ ーチャートに詳しく説明されている。 次に、ステップ1308において、DRPS1124内のセッション層112 3のアドレスはサーバ・インタフェース1120に返される。そのあと、アクチ ベーション・ルーチンはステップ1310で終了する。図12のステップ120 8へ戻り、サーバ・インタフェース1120は、セッション層1123のアドレ スを、サービス・オブジェクト・レファレンスから得たリモート・サービス交換 と入れ替えて、リモート・サービス交換(ステップ1208に示すように)を、 構成データ・ストリーム1116、クライアント・インタフェース1126およ びデータ・パス(data path)1102を経由してアプリケーション・プログラム 1100に返す。このように、アプリケーション・プログラムはリモート・サー ビスと通信するときは、通信ディレクトリ・サービスからネットワーキング・サ ービスへ渡されたリモート・サービス・アドレスを使用する。 ステップ1210に示すように、サービス要求をアプリケーション・プログラ ム1100からリモート・サービスへ送るように、別のデータ・パスがセットア ップされる。この別のデータ・パスは、データ・パス1102、クライアント・ インタフェース1126およびDRPS1124のセッション層1123を含ん でいる。ステップ1212に従って、要求情報は物理通信リンク1130を経由 してリモート・サービス・ロケーションへ送出される。応答情報は、DRPS1 124、データ・ストリーム1128、クライアント・インタフェース1126 およびデータ・パス1102を経由してアプリケーション・プログラム1100 に返される。そのあと、サービス要求ルーチンはステップ1214で終了する。 請求の範囲 1.複数の異種通信リンク(316,315,366)を介してクライアント・ ノード(406,408,420,422,428)をサーバ・ノード(400 ,412,424,432,438)に接続するマルチノード・コンピュータ・ ネットワーク・システム(図4)であって、該コンピュータ・ネットワーク・シ ステムは複数のノードと、各ノードごとに少なくとも1つのプロセッサ(302 )と、該少なくとも1つのプロセッサに接続され、該プロセッサの制御下に置か れているメモリ(304,306,313)とを備えているものにおいて、 前記コンピュータ・ネットワーク・システムが、 (a)前記複数の異種通信リンクはサービスのタイプとサービスの品質(90 6)によって区別されていて、サービスの該タイプと該品質は前記メモリにスト アされており、 (b)前記クライアント・ノードと前記サーバ・ノードとの間で該通信リンク 上をデータを伝送するための複数のプロトコルを備え、 (c)該メモリは第1プログラム・ロジック(1100)および第2プログラ ム・ロジック(1110)とを含んでいて、該第1プログラム・ロジックは該サ ーバ・ノードとの接続を要求するためのもので、該接続はサービスの該タイプと サービスの該品質に依存しており、該第2プログラム・ロジックは前記複数のプ ロトコルの少なくとも1つおよび該複数のリンクの少なくとも1つをサービスの 該タイプとサービスの該品質に基づいて識別するためのものであることを特徴と するマルチノード・コンピュータ・ネットワーク・システム。 2.クライアント−サーバ・システム(図4)のクライアント・ノード(図11 )であって、該クライアント−サーバ・システムは分散コンピュータ・ネットワ ークを含み、該ネットワークはリモート・プロシージャ・コール(RPC)サー ビス(1112,804,806)を備えており、該RPCサービスはRPCプ ロトコルを通してアクセスされ、前記クライアント・ノードは通信媒体 (824,1130)を介してサーバ・ノード(図8)と相互接続されて該クラ イアント・サーバ・ネットワークを形成しており、該クライアント・ノードはプ ロセッサ(302)と、該プロセッサによってアクセス可能なメモリ(304, 306,313)と、複数のサービス・パケットを処理するための第1プログラ ム・ロジック(1126)であって、該第1プログラム・ロジックはアプリケー ション・プログラム(1100)に含まれ、該アプリケーション・プログラムは 前記メモリに置かれているものと、前記パケットを前記通信媒体を利用して送受 信するためのネットワーク・アダプタと、該メモリに置かれていて前記アダプタ との間で該パケットを受け渡しするための第2プログラム・ロジック(1118 )とを備えているものにおいて、 前記クライアント・ノードは、 (a)該メモリに置かれていて前記プロセッサを制御するための第3プログラ ム・ロジックであって、該第3プログラム・ロジックはオブジェクト指向オペレ ーティング・システムであるものと、 (b)前記オペレーティング・システムにストアされたデータと関数から該ア プリケーション・プログラムによって生成されたコーラ・オブジェクト(110 6)であって、該第2プログラム・ロジックは該コーラ・オブジェクトに応答し て、前記RPCプロトコルに従って該パケットをカプセル化して、該第1プログ ラム・ロジックが該サーバ・ノードのディスパッチャ・オブジェクトに置かれて いる関連サービス(836)をコールすることを可能にするものと、 (c)垂直方向にリンクされた複数のプロトコル層オブジェクトを含む動的構 成可能プロトコル・スタック(1124)であって、該プロトコル・スタックは 該アダプタと相互作用して該アダプタを経由して該通信媒体上を該パケットを転 送するように構成されているものと、 (d)該アプリケーション・プログラムと該プロトコル・スタックとの間に同 期データ・ストリーム・トランザクションを確立するリモート・ストリーム・オ ブジェクト(1128)であって、該リモート・ストリーム・オブジェクトとプ ロトコル・スタックは共同作用して該クライアント・ノード内に通信データ・パ スを完成するものとを備えていることを特徴とするクライアント・ノード。 3.前記垂直方向にリンクされた複数のプロトコル層オブジェクトは、前記クラ イアント・ノードで実行される前記アプリケーション・プログラムに固有である 上位プロトコル層オブジェクト(500,502)および、該クライアント・ノ ードで実行される他のアプリケーション・プログラム相互間で共用される下位プ ロトコル層オブジェクト(504,506,508,510,512)とを含む ことを特徴とする請求項2に記載のクライアント・ノード。 4.前記上位プロトコル層は前記アプリケーション・プログラムと前記パケット を交換するアプリケーション層オブジェクト(500)を含むことを特徴とする 請求項3に記載のクライアント・ノード。 5.前記上位プロトコル層は前記パケットをあらかじめ決めたフォーマットで前 記下位プロトコル層オブジェクトに提示するプレゼンテーション層オブジェクト (502)を含むことを特徴とする請求項4に記載のクライアント・ノード。 6.前記アプリケーション層オブジェクトおよび前記プレゼンテーション層オブ ジェクトは該クライアント・ノードのプロセス・アドレス空間(1104)に置 かれていることを特徴とする請求項5に記載のクライアント・ノード。 7.前記コーラ・オブジェクトおよび前記アプリケーション・プログラムは前記 プロセス・アドレス空間にさらに置かれていることを特徴とする請求項6に記載 のクライアント・ノード。 8.前記下位プロトコル層オブジェクトおよび前記オペレーティング・システム は該クライアント・ノードのシステム・アドレス空間(1110)に置かれてい ることを特徴とする請求項7に記載のクライアント・ノード。 9.前記リモート・ストリーム・オブジェクトは前記プロセス・アドレス空間と 前記システム・アドレス空間との間での前記パケットの提示の整合性のある フォーマットを保証する第4プログラム・ロジックを含むことを特徴とする請求 項8に記載のクライアント・ノード。 10.前記リモート・ストリーム・オブジェクトは前記クライアント・ノードと 前記サーバ・ノードとの間に短期的同期トランザクションを確立する要求/応答 モデル・オブジェクト(1128)と長期的同期トランザクションにわたって該 ノードをバインドする部分的リモート・オペレーション・サービス・エレメント ・モデル・オブジェクトの1つを備えたことを特徴とする請求項9に記載のクラ イアント・ノード。 11.マルチノード・コンピュータ・ネットワーク・システム(図4)内で複数 の異種通信リンク(316,315,366)を通してクライアント・ノード( 406,408,420,422,428)をサーバ・ノード(400,412 ,424,432,438)に接続する方法であって、前記複数のリンクは複数 のノード間を接続し、前記複数のノードの各々は少なくとも1つのプロセッサ( 302)を備えており、該方法は、 (a)サービスのリンク・タイプとサービスのリンク品質を該複数のリンクの 各々と関連づけるステップ(802,902,904)と、 (b)所望のサービス・タイプおよび所望のサービス品質を指定するステップ (1206)と、 (c)少なくとも1つのプロトコルおよび少なくとも1つのリンクを、前記サ ービスのリンク・タイプと前記サービスのリンク品質から前記所望のサービス・ タイプと前記所望のサービス品質に基づいて識別するステップ(1304)と、 (d)前記少なくとも1つのプロトコルと前記少なくとも1つのリンクを使用 して前記クライアント・ノードと前記サーバ・ノードとの間に接続を確立するス テップ(1210)とを備えたことを特徴とする方法。 12.クライアント−サーバ・システム(図4)内でクライアント・ノード(図 11)をサーバ・ノード(図8)に接続する方法であって、該クライアント−サ ーバ・システムは分散コンピュータ・ネットワークを含み、該ネットワークはリ モート・プロシージャ・コール(RPC)サービス(1112,804,806 )を含み、該RPCサービスはRPCプロトコルを使用してアクセスされ、前記 クライアント・ノードは通信媒体(824,1130)を介して前記サーバ・ノ ードと相互接続されて該クライアント−サーバ・システムを形成しており、該ク ライアント・ノードはプロセッサ(302)と、該プロセッサによってアクセス 可能なメモリ(304,306,313)と、複数のサービス・パケットを処理 するための第1プログラム・ロジック(1126)であって、該第1プログラム ・ロジックはアプリケーション・プログラム(1100)内に含まれていて、該 アプリケーション・プログラムは前記メモリに置かれているものと、前記パケッ トを前記通信媒体を利用して送受信するネットワーク・アダプタと、該メモリに 置かれていて該パケットを前記アダプタとの間で転送するための第2プログラム ・ロジック(1118)と、該プロセッサを制御するオブジェクト指向オペレー ティング・システム(1110)であって、該オペレーティング・システムは第 3プログラム・ロジックを含んでいて、該オペレーティング・システムは該メモ リに置かれているものとを備えており、該方法は、 (a)該オペレーティング・システム内に含まれているデータおよび関数から 該第1プログラム・ロジックによってコーラ・オブジェクトを構築するステップ (1202)と、 (b)前記コーラ・オブジェクトを前記第2プログラム・ロジックに提示する ステップ(2104)と、 (c)前記第2プログラム・ロジックは該コーラ・オブジェクトの前記提示に 応答して、該パケットを前記RPCプロトコルに従ってカプセル化し、該第1プ ログラム・ロジックが該サーバ・ノードのディスパッチャ・オブジェクトに置か れている関連のオブジェクト(836)をコールすることを可能にするステップ と、 (d)垂直方向にリンクした複数のプロトコル層オブジェクトから動的構成可 能プロトコル・スタック(図13、1124)を構築するステップであって、該 プロトコル・スタックは該アダプタと相互作用して該パケットを該アダプタを経 由して該通信媒体上を転送するように構成されているものと、 (e)該アプリケーション・プログラムと該プロトコル・スタックとの間に同 期データストリーム・トランザクションを確立するリモート・ストリーム・オブ ジェクト(1128)を構築するステップであって、該リモート・ストリーム・ オブジェクトおよび該プロトコル・スタックは共同作用して該クライアント・ノ ード内に通信データ・パスを完成するものとを備えたことを特徴とする方法。 13.前記動的構成可能プロトコル・スタックを構築するステップは、 (d1)前記クライアント・ノードで実行される前記アプリケーション・プロ グラムに固有である上位プロトコル層オブジェクトをアセンブルし、 (d2)該クライアント・ノードで実行される他のアプリケーション・プログ ラム相互間で共用される下位プロトコル層オブジェクトをアセンブルすることを 備えたことを特徴とする請求項12に記載の方法。 14.前記上位プロトコル層オブジェクトをアセンブルするステップは、前記パ ケットを前記アプリケーション・プログラムと交換するアプリケーション層オブ ジェクトを含むことをさらに備えたことを特徴とする請求項13に記載の方法。 15.前記上位プロトコル層オブジェクトをアセンブルするステップは、前記パ ケットをあらかじめ決めたフォーマットで前記下位プロトコル層オブジェクトに 提示するプレゼンテーション層オブジェクトを含むことをさらに備えたことを特 徴とする請求項14に記載の方法。 16.前記アプリケーション層オブジェクト、前記プレゼンテーション層オブジ ェクト、前記コーラ・オブジェクトおよび前記アプリケーション・プログラムは 前記クライアント・ノードの前記プロセス・アドレス空間に置かれており、前記 下位プロトコル層オブジェクトおよび前記オペレーティング・システムは該クラ イアント・ノードのシステム・アドレス空間に置かれており、 該方法は、該プロセス・アドレス空間と該システム・アドレス空間との間で前 記パケットの前記提示の整合性のあるフォーマットを前記リモート・ストリーム ・オブジェクトが保証することをさらに備えたことを特徴とする請求項15に記 載の方法。 17.前記リモート・ストリーム・オブジェクトは前記クライアント・ノードと 前記サーバ・ノードとの間に短期的同期トランザクションを確立する要求/応答 モデル・オブジェクトと長期的同期トランザクションにわたって該ノードをバイ ンドする部分的リモート・オペレーション・サービス・エレメント・モデル・オ ブジェクトの1つを備えたことを特徴とする請求項16に記載の方法。 【手続補正書】特許法第184条の8 【提出日】1996年1月11日 【補正内容】 完全なブランチ機能を提供するためには、namespace 702のような中間name space を、ルートnamespace 700とリーフ・ノード704〜710との間に挿 入することが可能である。中間namespace は他のnamespace を参照している。前 述したように、本発明の通信ディレクトリ・サービスはサービス・プログラムと アプリケーション・プログラムの両方と相互作用して、クライアントとサーバと の間で必要な通信リンクを透過的に(transparently)セットアップする。この相 互作用では、サービス提供者による通信ディレクトリ・サービスにおけるサービ ス・オブジェクトの生成と、サーバ・ノードにおけるプロトコル・スタックの構 成を含む。サービスのアクセスを所望するクライアントは関連サービス・オブジ ェクトを検索し、それを使用してプロトコル・スタックをクライアント・ノード に構成して通信リンクをセットアップする。図8〜図10は、サーバ・ノードで 稼働しているサービス・プログラムによって実行されて、クライアント・ノード で実行されているアプリケーション・プログラムにより使用できるように新しい サービスをネットワーク上で使用可能にするオペレーションを説明したものであ る。図8は、新サービスの生成とアクチベーションに含まれるサーバ・ノード・ プログラムの部分を示す概略ブロック図である。図9は、サービス・プログラム 、通信ディレクトリ・サービスおよびノード・ネットワーキング・サービスの間 で相互作用して、新サービスを確立し、適当な通信リンク上で動作するようにネ ットワーキング・サービスを構成する手順を示したフローチャートである。図1 0は、関連サービス・ブロックをアクチベートすることによって新サービスをア クチベートする様子を示す詳細ブロック図である。もっと具体的に説明すると、 図8は、サービスをリモート・クライアントに提供するときのサーバ・ノードの 基本的構成を示している。サーバ・ノードは共通エリア、または、システム・ア ドレス空間800をもつ構成になっており、このアドレス空間には、オペレーテ ィング・システム・プログラムと、システムで実行されるサービス・アプリケー ションによって使用される種々の共有ライブラリが置かれている。具体的には、 システム・アドレス空間800には、通信ディレクトリ・ サービス804およびネットワーキング・サービス・プログラムとライブラリ8 16が含まれている。サーバ・ノードには、独自のアドレス空間810で実行さ れるサービス・プログラムも置かれている。以下で説明するように、サービス・ プログラム806は通信ディレクトリ・サービス804と相互作用してサービス ・オブジェクトを作成し、これは通信ディレクトリ・サービス804に置かれる 。このサービス・オブジェクトはこのシステム内の他のノードすべてに分散(dis tribute)されるので、ネットワーク上のクライアントのすべてに対してローカル ・ベースでの使用ができる。サービス・オブジェクトはネットワーキング・サー ビス816を構成するための適当なスタック定義を含んでいるので、アプリケー ション・プログラムは通信ディレクトリ・サービスと共に、以前にストアした定 義を用いて構築の詳細においてクライアント・アプリケーション・プログラムの 必要なしに、通信経路をセットアップすることができる。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.複数の異種通信リンクを経由してクライアント・ノードをサーバ・ノードに 接続するマルチノード・コンピュータ・ネットワーク・システムであって、該コ ンピュータ・ネットワーク・システムは、 (a)複数のノードと、 (b)ノードごとに少なくとも1つのプロセッサと、 (c)前記少なくとも1つのプロセッサに接続され、該プロセッサの制御下に 置かれているメモリと、 (d)前記複数のノードを接続するネットワークとを備え、 (e)サービスのタイプと品質を前記メモリにストアされた情報に基づいて決 定し、 (f)少なくとも1つのプロトコルをサービスのタイプと品質に基づいて識別 することを特徴とするマルチノード・コンピュータ・ネットワーク・システム。 2.クライアント−サーバ・システムのクライアント・ノードを分散コンピュー タ・ネットワーク上でリモート・プロシージャ・コール(RPC)サービスを利 用して実現する装置であって、該クライアント・ノードは通信媒体を介してサー バ・ノードと相互接続されてクライアント−サーバ・ネットワークを構成し、該 クライアント・ノードは、 (a)サービス要求パケットを生成するアプリケーション・プログラムであっ て、該アプリケーション・プログラムは前記クライアント・ノードのメモリにス トアされているものと、 (b)通信チャネル上でパケットを送受信するネットワーク・アダプタと、 (c)アプリケーション・プログラムと前記アダプタとの間でパケットを転送 するように動作するプロセッサと、 (d)メモリにストアされていて、前記プロセッサのオペレーションを制御す るオブジェクト指向オペレーティング・システムと、 (e)前記オペレーティング・システムにストアされたデータと関数から前記 アプリケーション・プログラムによって生成されたコーラ(caller)・オブジェク トであって、該コーラ・オブジェクトは、サーバのディスパッチャ・オブジェク トに置かれている関連のサービスをコールすることによってRPCプロトコルに 従ってパケットを出すように前記プロセッサに指示するものと、 (f)ネットワーク・アダプタと相互作用して、パケットをアダプタとの間で パケットを受け渡しするように構成された動的構成可能プロトコル・スタックを 提供するように編成された垂直方向にリンクした複数のプロトコル層オブジェク トと、 (g)前記アプリケーション・プログラムと前記プロトコル・スタックとの間 に同期データ・ストリーム・トランザクションを確立するリモート・ストリーム ・オブジェクトであって、該リモート・ストリーム・オブジェクトと該プロトコ ル・スタックは前記クライアント・ノード内の通信データ・パスを完成するよう に動作するものとを具備していることを特徴とする装置。 3.垂直方向にリンクした前記複数のプロトコル層オブジェクトは、前記クライ アント・ノードで実行される前記アプリケーション・プログラムに固有の上位プ ロトコル層オブジェクトと、前記ノードで実行される他のアプリケーション・プ ログラム相互間で共用される下位プロトコル層オブジェクトとを含むことを特徴 とする請求項2に記載の装置。 4.前記上位プロトコル層は、前記アプリケーション・プログラムとの間でパケ ットを交換するアプリケーション層オブジェクトを含むことを特徴とする請求項 3に記載の装置。 5.前記上位プロトコル層は、パケットをあらかじめ決めたフォーマットで前記 下位プロトコル層オブジェクトへ提示するプレゼンテーション層オブジェクトを 含むことを特徴とする請求項4に記載の装置。 6.前記アプリケーション層オブジェクトおよび前記プレゼンテーション層オブ ジェクトは前記クライアント・ノードのプロセス・アドレス空間に置かれている ことを特徴とする請求項5に記載の装置。 7.前記コーラ・オブジェクトおよび前記アプリケーション・プログラムはさら に前記プロセス・アドレス空間に置かれていることを特徴とする請求項6に記載 の装置。 8.前記下位プロトコル層オブジェクトおよび前記オペレーティング・システム は前記クライアント・ノードのシステム・アドレス空間に置かれていることを特 徴とする請求項7に記載の装置。 9.リモート・ストリーム・オブジェクトは、前記プロセス・アドレス空間と前 記システム・アドレス空間との間でパケットを提示するときの整合性のあるフォ ーマットを保証することを特徴とする請求項8に記載の装置。 10.前記リモート・ストリーム・オブジェクトは、前記クライアント・ノード とサーバ・ノードとの間に短期的同期トランザクションを確立する要求/応答モ デル・オブジェクトと、長期的同期トランザクションにわたって該ノードをバイ ンドする部分的リモート・オペレーション・サービス・エレメント・モデル・オ ブジェクトの1つを含むことを特徴とする請求項9に記載の装置。 11.マルチノード・コンピュータ・ネットワーク・システムを動作可能にして 、ノードごとに少なくとも1つのプロセッサをもつ複数のノード間を接続する複 数の異種通信リンクを経由してクライアント・ノードをサーバ・ノードに接続す る方法であって、 (a)前記複数のノードを前記通信リンクに接続してネットワークを構成する ステップと、 (b)サービスのタイプと品質をストアされた情報に基づいて決定するステッ プと、 (c)少なくとも1つのプロトコルをサービスのタイプと品質に基づいて識別 するステップとを含むことを特徴とする方法。 12.クライアント−サーバ・システムのクライアント・ノードを分散コンピュ ータ・ネットワーク上でリモート・プロシージャ・コール(RPC)サービスを 利用して実現する方法であって、該クライアント・ノードは通信媒体を介してサ ーバ・ノードと相互接続されてクライアント−サーバ・ネットワークを構成し、 該クライアント・ノードは、 (a)サービス要求パケットを生成するアプリケーション・プログラムであっ て、該アプリケーション・プログラムは前記クライアント・ノードのメモリにス トアされているものと、 (b)通信チャネル上でパケットを送受信するネットワーク・アダプタと、 (c)アプリケーション・プログラムと前記アダプタとの間でパケットを転送 するように動作するプロセッサと、 (d)メモリにストアされていて、前記プロセッサのオペレーションを制御す るオブジェクト指向オペレーティング・システムと、 (e)前記オペレーティング・システムにストアされたデータと関数から前記 アプリケーション・プログラムによって生成されたコーラ・オブジェクトであっ て、該コーラ・オブジェクトは、サーバのディスパッチャ・オブジェクトに置か れている関連のサービスをコールすることによってRPCプロトコルに従ってパ ケットを出すように前記プロセッサに指示するものと、 (f)ネットワーク・アダプタと相互作用して、パケットをアダプタとの間で パケットを受け渡しするように構成された動的構成可能プロトコル・スタックを 提供するように編成された垂直方向にリンクした複数のプロトコル層オブジェク トと、 (g)前記アプリケーション・プログラムと前記プロトコル・スタックとの間 に同期データ・ストリーム・トランザクションを確立するリモート・ストリーム ・オブジェクトであって、該リモート・ストリーム・オブジェクトと該プロトコ ル・スタックは前記クライアント・ノード内の通信データ・パスを完成するよ うに動作するものとを具備していることを特徴とする装置。 13.垂直方向にリンクした前記複数のプロトコル層オブジェクトは、前記クラ イアント・ノードで実行される前記アプリケーション・プログラムに固有の上位 プロトコル層オブジェクトと、前記ノードで実行される他のアプリケーション・ プログラム相互間で共用される下位プロトコル層オブジェクトとを含むことを特 徴とする請求項12に記載の方法。 14.前記上位プロトコル層は、前記アプリケーション・プログラムとの間でパ ケットを交換するアプリケーション層オブジェクトを含むことを特徴とする請求 項13に記載の方法。 15.前記上位プロトコル層は、パケットをあらかじめ決めたフォーマットで前 記下位プロトコル層オブジェクトへ提示するプレゼンテーション層オブジェクト を含むことを特徴とする請求項14に記載の方法。 16.前記アプリケーション層オブジェクトおよびプレゼンテーション層オブジ ェクトは前記クライアント・ノードのプロセス・アドレス空間に置かれているこ とを特徴とする請求項15に記載の方法。 17.前記コーラ・オブジェクトおよび前記アプリケーション・プログラムはさ らに前記プロセス・アドレス空間に置かれていることを特徴とする請求項16に 記載の方法。 18.前記下位プロトコル層オブジェクトおよび前記オペレーティング・システ ムは前記クライアント・ノードのシステム・アドレス空間に置かれていることを 特徴とする請求項17に記載の方法。 19.リモート・ストリーム・オブジェクトは、前記プロセス・アドレス空間と 前記システム・アドレス空間との間でパケットを提示するときの整合性のあるフ ォーマットを保証することを特徴とする請求項18に記載の方法。 20.前記リモート・ストリーム・オブジェクトは、前記クライアント・ノード とサーバ・ノードとの間に短期的同期トランザクションを確立する要求/応答モ デル・オブジェクトと、長期的同期トランザクションにわたって該ノードをバイ ンドする部分的リモート・オペレーション・サービス・エレメント・モデル・オ ブジェクトの1つを含むことを特徴とする請求項19に記載の方法。
JP51672595A 1993-12-17 1994-04-11 オブジェクト指向ルール・ベース・プロトコル・システム Expired - Lifetime JP3839472B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/169,867 US5548726A (en) 1993-12-17 1993-12-17 System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node
US08/169,867 1993-12-17
PCT/US1994/003978 WO1995017062A1 (en) 1993-12-17 1994-04-11 Object-oriented rule-based protocol system

Publications (2)

Publication Number Publication Date
JPH09506725A true JPH09506725A (ja) 1997-06-30
JP3839472B2 JP3839472B2 (ja) 2006-11-01

Family

ID=22617534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51672595A Expired - Lifetime JP3839472B2 (ja) 1993-12-17 1994-04-11 オブジェクト指向ルール・ベース・プロトコル・システム

Country Status (7)

Country Link
US (1) US5548726A (ja)
EP (1) EP0726004B1 (ja)
JP (1) JP3839472B2 (ja)
AU (1) AU6702494A (ja)
CA (1) CA2178583A1 (ja)
DE (1) DE69405405T2 (ja)
WO (1) WO1995017062A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011259467A (ja) * 2004-02-27 2011-12-22 International Business Maschines Corporation アクセスするクライアントのサーバー側プロトコル構成

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US6289390B1 (en) 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
EP1193940A3 (en) * 1994-03-21 2004-09-01 Avid Technology, Inc. Apparatus and computer-implemented process for providing real-time multimedia data transport in a distributed computing system
JPH07302236A (ja) 1994-05-06 1995-11-14 Hitachi Ltd 情報処理システムおよびその方法並びに情報処理システムにおけるサービス提供方法
US5765155A (en) * 1994-05-11 1998-06-09 Nec Corporation Master data managing method
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US7315860B1 (en) 1994-09-01 2008-01-01 Computer Associates Think, Inc. Directory service system and method with tolerance for data entry storage and output
ATE239257T1 (de) 1994-09-01 2003-05-15 Computer Ass Think Inc System und verfahren für die x.500-datenbanknorm
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5745748A (en) * 1994-12-09 1998-04-28 Sprint Communication Co. L.P. System and method for direct accessing of remote data
US5850518A (en) 1994-12-12 1998-12-15 Northrup; Charles J. Access-method-independent exchange
AU4469896A (en) * 1994-12-23 1996-07-19 Southwestern Bell Technology Resources, Inc. Flexible network platform and call processing system
US5692180A (en) * 1995-01-31 1997-11-25 International Business Machines Corporation Object-oriented cell directory database for a distributed computing environment
US6515968B1 (en) 1995-03-17 2003-02-04 Worldcom, Inc. Integrated interface for real time web based viewing of telecommunications network call traffic
US6077315A (en) * 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
EP0744689B1 (en) * 1995-05-26 2002-10-09 Intel Corporation Extensible communication type manager for a computer system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
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
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
SE504523C2 (sv) * 1995-06-19 1997-02-24 Ericsson Telefon Ab L M Anordning och metod för att länka kunder till servrar under körtid i ett distribuerat telekommunikationsnätverk
JPH096706A (ja) * 1995-06-22 1997-01-10 Hitachi Ltd 疎結合計算機システム
EP0752652B1 (en) * 1995-07-03 1998-12-16 Sun Microsystems, Inc. System and method for implementing a hierarchical policy for computer system administration
JP3335801B2 (ja) * 1995-07-05 2002-10-21 株式会社日立製作所 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
EP0786728B1 (en) * 1995-07-11 2011-02-09 Hitachi, Ltd. Service offering system
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US5956509A (en) 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US8065338B2 (en) * 1995-08-30 2011-11-22 Computer Associates Think, Inc. Directory searching methods and systems
US5764902A (en) * 1995-09-29 1998-06-09 Intel Corporation Conditional insert or merge in a data conference
US5826027A (en) * 1995-10-11 1998-10-20 Citrix Systems, Inc. Method for supporting an extensible and dynamically bindable protocol stack in a distrubited process system
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6370552B1 (en) 1997-05-14 2002-04-09 Citrix Systems, Inc. Apparatus and method for displaying application output in an HTML document
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
US6493004B1 (en) * 1995-11-14 2002-12-10 Microsoft Corporation Delayed transmission of controls from a server to a client
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6032184A (en) * 1995-12-29 2000-02-29 Mci Worldcom, Inc. Integrated interface for Web based customer care and trouble management
US6041109A (en) 1995-12-29 2000-03-21 Mci Communications Corporation Telecommunications system having separate switch intelligence and switch fabric
US6859783B2 (en) 1995-12-29 2005-02-22 Worldcom, Inc. Integrated interface for web based customer care and trouble management
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US7035914B1 (en) 1996-01-26 2006-04-25 Simpleair Holdings, Inc. System and method for transmission of data
US5819281A (en) * 1996-02-26 1998-10-06 Electronic Data Systems Corporation Notification of aspect value change in object-oriented programming
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
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
US5828843A (en) * 1996-03-21 1998-10-27 Mpath Interactive, Inc. Object-oriented method for matching clients together with servers according to attributes included in join request
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
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
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6304893B1 (en) * 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5768510A (en) * 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5748897A (en) * 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
US5809247A (en) * 1996-07-22 1998-09-15 Intel Corporation Method and apparatus for guided touring of internet/intranet websites
US6237009B1 (en) * 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US5915001A (en) 1996-11-14 1999-06-22 Vois Corporation System and method for providing and using universally accessible voice and speech data files
US6061740A (en) * 1996-12-09 2000-05-09 Novell, Inc. Method and apparatus for heterogeneous network management
US6052778A (en) * 1997-01-13 2000-04-18 International Business Machines Corporation Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs
US6363436B1 (en) 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US5903894A (en) * 1997-03-03 1999-05-11 Microsoft Corporation System and method for using a hierarchical data structure to control and identify devices and represent connections between the devices
US6128653A (en) * 1997-03-17 2000-10-03 Microsoft Corporation Method and apparatus for communication media commands and media data using the HTTP protocol
US5875322A (en) * 1997-03-31 1999-02-23 International Business Machines Corporation Making a control available to a computer without installing the control
US5940593A (en) * 1997-03-31 1999-08-17 International Business Machines Corporation Simulating a multi-tiered computer environment on a single development system for debugging
US6198738B1 (en) * 1997-04-16 2001-03-06 Lucent Technologies Inc. Communications between the public switched telephone network and packetized data networks
US6038599A (en) 1997-04-23 2000-03-14 Mpath Interactive, Inc. Latency server and matchmaker
US6023729A (en) * 1997-05-05 2000-02-08 Mpath Interactive, Inc. Method and apparatus for match making
US6049799A (en) * 1997-05-12 2000-04-11 Novell, Inc. Document link management using directory services
US6157944A (en) * 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5961586A (en) * 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
US5941949A (en) * 1997-05-14 1999-08-24 Citrix Systems, Inc. System and method for transmitting data from a server application to more than one client node
AU726488B2 (en) * 1997-05-14 2000-11-09 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
EP0981884B1 (en) * 1997-05-14 2005-11-02 Citrix Systems, Inc. System and method for managing the connection between a server and a client node
US7631012B2 (en) 1997-05-22 2009-12-08 Computer Associates Think, Inc. System and method of operating a database
US6047322A (en) * 1997-05-27 2000-04-04 Ukiah Software, Inc. Method and apparatus for quality of service management
US5999940A (en) * 1997-05-28 1999-12-07 Home Information Services, Inc. Interactive information discovery tool and methodology
US5948064A (en) * 1997-07-07 1999-09-07 International Business Machines Corporation Discovery of authentication server domains in a computer network
US6760746B1 (en) * 1999-09-01 2004-07-06 Eric Schneider Method, product, and apparatus for processing a data request
US6029201A (en) * 1997-08-01 2000-02-22 International Business Machines Corporation Internet application access server apparatus and method
US6473407B1 (en) 1997-09-05 2002-10-29 Worldcom, Inc. Integrated proxy interface for web based alarm management tools
US7225249B1 (en) 1997-09-26 2007-05-29 Mci, Llc Integrated systems for providing communications network management services and interactive generating invoice documents
US6763376B1 (en) 1997-09-26 2004-07-13 Mci Communications Corporation Integrated customer interface system for communications network management
US6381644B2 (en) 1997-09-26 2002-04-30 Mci Worldcom, Inc. Integrated proxy interface for web based telecommunications network management
US6615258B1 (en) 1997-09-26 2003-09-02 Worldcom, Inc. Integrated customer interface for web based data management
US6745229B1 (en) 1997-09-26 2004-06-01 Worldcom, Inc. Web based integrated customer interface for invoice reporting
US7058600B1 (en) 1997-09-26 2006-06-06 Mci, Inc. Integrated proxy interface for web based data management reports
US6714979B1 (en) 1997-09-26 2004-03-30 Worldcom, Inc. Data warehousing infrastructure for web based reporting tool
US6418461B1 (en) 1997-10-06 2002-07-09 Mci Communications Corporation Intelligent call switching node in an intelligent distributed network architecture
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
US7225463B2 (en) 1997-10-24 2007-05-29 Dusenbury Jr Richard G Secure network architecture method and apparatus
US6189101B1 (en) 1997-10-24 2001-02-13 Richard G. Dusenbury, Jr. Secure network architecture method and apparatus
US6233616B1 (en) * 1997-10-24 2001-05-15 William J. Reid Enterprise network management using directory containing network addresses of users obtained through DHCP to control routers and servers
JP4676060B2 (ja) 1997-11-14 2011-04-27 マイクロソフト コーポレーション 多数のクライアント−サーバ・セッションおよび以前のセッションへのユーザのダイナミック再接続をサポートするサーバ・オペレーティング・システム
AU1700299A (en) * 1997-11-18 1999-06-07 Stellar Computing Method for establishing a communication connection between two or more users viaa network of interconnected computers
US6038611A (en) * 1998-01-13 2000-03-14 Inverness Systems Ltd. Method for implementing a user-to-network (UNI) application programming interface (API)
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
AU2787799A (en) 1998-02-26 1999-09-15 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6976080B1 (en) * 1998-03-27 2005-12-13 Hewlett-Packard Development Company, L.P. Multiple-protocol communication subsystem controller
US6912588B1 (en) * 1998-04-02 2005-06-28 Intel Corporation System and method for managing client requests in client-server networks
US6681327B1 (en) 1998-04-02 2004-01-20 Intel Corporation Method and system for managing secure client-server transactions
US6067559A (en) * 1998-04-23 2000-05-23 Microsoft Corporation Server architecture for segregation of dynamic content generation applications into separate process spaces
US6332023B1 (en) * 1998-06-04 2001-12-18 Mci Communications Corporation Method of and system for providing services in a communications network
US6430571B1 (en) * 1998-07-16 2002-08-06 International Business Machines Corporation Multi-frame output form that facilitates internet search and update in a hierarchical database
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6594698B1 (en) 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
GB9821150D0 (en) * 1998-09-30 1998-11-25 Northern Telecom Ltd Detection of network topology changes affecting trail routing consistency
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6449650B1 (en) * 1999-02-01 2002-09-10 Redback Networks Inc. Methods and apparatus for deploying quality of service policies on a data communication network
US6338082B1 (en) * 1999-03-22 2002-01-08 Eric Schneider Method, product, and apparatus for requesting a network resource
US9141717B2 (en) * 1999-03-22 2015-09-22 Esdr Network Solutions Llc Methods, systems, products, and devices for processing DNS friendly identifiers
USRE43690E1 (en) 1999-03-22 2012-09-25 Esdr Network Solutions Llc Search engine request method, product, and apparatus
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
AU5728600A (en) * 1999-06-11 2001-01-02 Microsoft Corporation Multi-dimensional authoritative names registry in pervasive computing
US6477576B2 (en) 1999-06-17 2002-11-05 International Business Machines Corporation Methods, systems and computer program products for the automated discovery of a services menu
US7010492B1 (en) 1999-09-30 2006-03-07 International Business Machines Corporation Method and apparatus for dynamic distribution of controlled and additional selective overlays in a streaming media
US8341662B1 (en) 1999-09-30 2012-12-25 International Business Machine Corporation User-controlled selective overlay in a streaming media
US6711629B1 (en) * 1999-10-18 2004-03-23 Fisher-Rosemount Systems, Inc. Transparent support of remote I/O in a process control system
WO2001035243A1 (en) * 1999-11-08 2001-05-17 Megaxess, Inc. QUALITY OF SERVICE (QoS) NEGOTIATION PROCEDURE FOR MULTI-TRANSPORT PROTOCOL ACCESS FOR SUPPORTING MULTI-MEDIA APPLICATIONS WITH QoS ASSURANCE
AUPQ428499A0 (en) 1999-11-26 1999-12-23 Computer Associates Pty. Ltd. A method and apparatus for operating a data base
US8170538B2 (en) 1999-12-06 2012-05-01 Solocron Media, Llc Methods and apparatuses for programming user-defined information into electronic devices
US6496692B1 (en) 1999-12-06 2002-12-17 Michael E. Shanahan Methods and apparatuses for programming user-defined information into electronic devices
US7149509B2 (en) 1999-12-06 2006-12-12 Twenty Year Innovations, Inc. Methods and apparatuses for programming user-defined information into electronic devices
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US6757730B1 (en) 2000-05-31 2004-06-29 Datasynapse, Inc. Method, apparatus and articles-of-manufacture for network-based distributed computing
US6976066B1 (en) * 2000-05-22 2005-12-13 Microsoft Corporation Network and method for implementing network platform services for a computing device
WO2002063479A1 (en) * 2001-02-02 2002-08-15 Datasynapse, Inc. Distributed computing system
AU2001278879A1 (en) * 2000-07-07 2002-02-05 Science Applications International Corporation A system or method for calling a vanity number using speech recognition
US6959332B1 (en) * 2000-07-12 2005-10-25 Cisco Technology, Inc. Basic command representation of quality of service policies
US6968179B1 (en) 2000-07-27 2005-11-22 Microsoft Corporation Place specific buddy list services
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
FI20002437A (fi) * 2000-11-07 2002-05-08 Nokia Corp Palveluvirran ohjaaminen
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US20020010715A1 (en) * 2001-07-26 2002-01-24 Garry Chinn System and method for browsing using a limited display device
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7305458B2 (en) * 2003-04-22 2007-12-04 Accton Technology Corporation System and method for auto-configuring stackable network devices
US7113981B2 (en) * 2003-12-29 2006-09-26 Mixxer, Inc. Cellular telephone download locker
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
JP2005352689A (ja) * 2004-06-09 2005-12-22 Hitachi Ltd 対話型サービス配置方法、対話型サービス配置プログラムおよびその記録媒体、ならびに、サービスブローカ装置
US7207112B2 (en) * 2005-01-12 2007-04-24 Wen-Ya Yeh Combination hairdressing scissor assembly
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
US7669181B2 (en) * 2005-04-29 2010-02-23 Sap (Ag) Client interfaces for packages
US7587705B2 (en) * 2005-04-29 2009-09-08 Sap (Ag) Calls and return calls using client interfaces
US7634771B2 (en) * 2005-04-29 2009-12-15 Sap (Ag) Object generation in packages
WO2007024830A2 (en) * 2005-08-23 2007-03-01 Matsushita Electric Industrial Co. Ltd. Method and system for peer-to-peer services architecture and framework
US8738703B2 (en) 2006-10-17 2014-05-27 Citrix Systems, Inc. Systems and methods for providing online collaborative support
US7853669B2 (en) * 2007-05-04 2010-12-14 Microsoft Corporation Mesh-managing data across a distributed set of devices
US8908700B2 (en) 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
US9332068B2 (en) * 2007-11-29 2016-05-03 Ooma, Inc. Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
US9753712B2 (en) 2008-03-20 2017-09-05 Microsoft Technology Licensing, Llc Application management within deployable object hierarchy
US8484174B2 (en) * 2008-03-20 2013-07-09 Microsoft Corporation Computing environment representation
US9298747B2 (en) * 2008-03-20 2016-03-29 Microsoft Technology Licensing, Llc Deployable, consistent, and extensible computing environment platform
US8572033B2 (en) 2008-03-20 2013-10-29 Microsoft Corporation Computing environment configuration
US20090248737A1 (en) * 2008-03-27 2009-10-01 Microsoft Corporation Computing environment representation
CA2726226C (en) * 2008-06-09 2017-08-22 Mobizoft Ab User-request-initiated transmission of data files
EP2390261A4 (en) 2009-01-20 2012-11-14 Hanall Biopharma Co Ltd MODIFIED HUMAN THROMBOPOIETIN POLYPEPTIDE FRAGMENT AND METHOD FOR THE PRODUCTION THEREOF
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US4885717A (en) * 1986-09-25 1989-12-05 Tektronix, Inc. System for graphically representing operation of object-oriented programs
DE3889904T2 (de) * 1987-09-08 1995-01-12 Digital Equipment Corp Namensverwaltung für ein digitaldatenverarbeitungssystemnetzwerk.
US4891630A (en) * 1988-04-22 1990-01-02 Friedman Mark B Computer vision system with improved object orientation technique
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
EP0347162A3 (en) * 1988-06-14 1990-09-12 Tektronix, Inc. Apparatus and methods for controlling data flow processes by generated instruction sequences
US5041992A (en) * 1988-10-24 1991-08-20 University Of Pittsburgh Interactive method of developing software interfaces
US5133075A (en) * 1988-12-19 1992-07-21 Hewlett-Packard Company Method of monitoring changes in attribute values of object in an object-oriented database
US5050090A (en) * 1989-03-30 1991-09-17 R. J. Reynolds Tobacco Company Object placement method and apparatus
US5060276A (en) * 1989-05-31 1991-10-22 At&T Bell Laboratories Technique for object orientation detection using a feed-forward neural network
US5125091A (en) * 1989-06-08 1992-06-23 Hazox Corporation Object oriented control of real-time processing
US5257369A (en) * 1990-10-22 1993-10-26 Skeen Marion D Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5181162A (en) * 1989-12-06 1993-01-19 Eastman Kodak Company Document management and production system
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
US5151987A (en) * 1990-10-23 1992-09-29 International Business Machines Corporation Recovery objects in an object oriented computing environment
US5119475A (en) * 1991-03-13 1992-06-02 Schlumberger Technology Corporation Object-oriented framework for menu definition
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011259467A (ja) * 2004-02-27 2011-12-22 International Business Maschines Corporation アクセスするクライアントのサーバー側プロトコル構成

Also Published As

Publication number Publication date
JP3839472B2 (ja) 2006-11-01
EP0726004A1 (en) 1996-08-14
AU6702494A (en) 1995-07-03
DE69405405D1 (de) 1997-10-09
CA2178583A1 (en) 1995-06-22
US5548726A (en) 1996-08-20
DE69405405T2 (de) 1998-03-26
WO1995017062A1 (en) 1995-06-22
EP0726004B1 (en) 1997-09-03

Similar Documents

Publication Publication Date Title
JPH09506725A (ja) オブジェクト指向ルール・ベース・プロトコル・システム
US6360266B1 (en) Object-oriented distributed communications directory system
US5594921A (en) Authentication of users with dynamically configurable protocol stack
US5832219A (en) Distributed object networking service
JP3377210B2 (ja) オブジェクト指向ネットワーク・プロトコル構成システム
AU2002319843B2 (en) General and reusable components for defining net-centric application program architectures
AU2005201341A1 (en) System and method for sharing objects between computers over a network
USRE43438E1 (en) Extensible, replaceable network component system
EP1300757A1 (en) Shareable installation hierarchies
AU2002319843A1 (en) General and reusable components for defining net-centric application program architectures
US20020138659A1 (en) Method and system for application development and a data processing architecture utilizing destinationless messaging
WO1995017066A1 (en) Object-oriented multicast networking system
CN113301116A (zh) 微服务应用跨网络通信方法、装置、系统及设备
Bever et al. Distributed systems, OSF DCE, and beyond
US20060200800A1 (en) Aggregation of non blocking state machines on enterprise java bean platform
WO2004107172A2 (en) Non blocking persistent state machines on enterprise java bean platform
US20060047781A1 (en) Method and system for providing remote portal service modules
WO1995016956A1 (en) Object-oriented rule-based directory system
CA2551025C (en) Application framework for use with net-centric program architectures
Skopp Low bandwidth operation in a multi-user software development environment
Reinschmidt et al. A DB2 Enterprise Query Environment: Build it with QMF for Windows!
KR20050037990A (ko) 웹 서비스 브로커
Krakowiak Middleware Architecture
Ponnekanti Interoperation with network services
GB2356470A (en) Using WebDAV for distributed development of a complex software application

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050629

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060306

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060803

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090811

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100811

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110811

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120811

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130811

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term