[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3083853B2 - グローバルにディストリビュートされたソフトウェア・コンポーネントを管理するための方法 - Google Patents

グローバルにディストリビュートされたソフトウェア・コンポーネントを管理するための方法

Info

Publication number
JP3083853B2
JP3083853B2 JP09503354A JP50335497A JP3083853B2 JP 3083853 B2 JP3083853 B2 JP 3083853B2 JP 09503354 A JP09503354 A JP 09503354A JP 50335497 A JP50335497 A JP 50335497A JP 3083853 B2 JP3083853 B2 JP 3083853B2
Authority
JP
Japan
Prior art keywords
database
network
component
software component
ole
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.)
Expired - Lifetime
Application number
JP09503354A
Other languages
English (en)
Other versions
JPH11502963A (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
Priority claimed from US08/576,647 external-priority patent/US5761499A/en
Application filed by ノベル,インコーポレイテッド filed Critical ノベル,インコーポレイテッド
Publication of JPH11502963A publication Critical patent/JPH11502963A/ja
Application granted granted Critical
Publication of JP3083853B2 publication Critical patent/JP3083853B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 関連出願 本出願は、共通的に所有され、同時係属の特許出願で
1995年6月14日に出願の第60/000,200号、および、1995
年9月12日に出願の第60/003,615号を基礎としており、
ここではそれぞれを参照する。
本発明の分野 本発明は、コンピュータ ネットワーク内のソフトウ
ェア コンポーネントを管理するためのコンピュータ実
装された方法に関し、特に、ローカル ネットワーク若
しくはインターネット上に常駐(reside)するCOM若し
くはOLEソフトウェア コンポーネント バイナリ オ
ブジェクトおよびインターフェースをロケート(locat
e)してレジスタ(register)するための方法に関す
る。
本発明の技術的背景 近年の情報技術は、多くの異なる要求を満たすソフト
ウェア アイテムの巨大な集合(array)を提供してい
る。しかし、ある要求を識別した後でも、利用できる技
術の量があまりに多いので適切なアイテムをロケートす
ることが困難になっている。これらが提供するシステム
若しくはアイテムは、ほかのシステム若しくはアイテム
の機能と重複することになるかもしれない。異なるソフ
トウェアは、整合性のない動作をすることが多い。アイ
テムにアクセスして使用することが難しいのは、アイテ
ムが利用できるようにするにはそのアイテムを使用した
いシステムと互換性のないシステムを介するしかないこ
とがしばしばあるからである。
これらの問題を減らすための一つのアプローチは、
「コンポーネント オブジェクト モデル」(「CO
M」)に基いている。COMは、一般的には「OLE2プログラ
マーズ リファレンス」第1巻、ISBN1−55615−628−
6(「OLE2プログラマ」)、第3頁から7頁、および、
ケー・ブロックシュミット「インサイドOLE」第2版、I
SBN1−55615−843−2(「インサイドOLE」)、第9頁
から14頁に説明されている。
COMは、「コンポーネント オブジェクト」(ここで
は「ソフトウェア コンポーネント」として知られてい
るものでもある)を定義するが、これは、複数の機能を
カプセル化してこれらが「クライアント」による使用に
よって利用できるようにするものである。これらの複数
の機能は、「サービス」という言葉で呼ばれ、これによ
ってソフトウェア コンポーネントを「サーバ」若しく
は「サーバ コンポーネント」として見ることが論理的
にできるようになる。しかし、「サーバ」という言葉は
「インターネット サーバ」、「インプロセスサー
バ」、「ファイル サーバ」、および、「コンポーネン
ト サーバ コンピュータ」のような用語においても使
用される。「サーバ」以外の言葉は、その文脈にしたが
って変化することもある。当業者であれば、文脈にした
がってそれぞれの場合における意味を理解(determin
e)することができるはずである。
少なくとも各COMソフトウェア コンポーネントは、
バイナリ オブジェクトと、少なくとも1つのバイナリ
オブジェクトへのインターフェースとを含む。クライ
アントはソフトウェア コンポーネントからどのような
サービスが利用できるか、および、これらのサービスが
どのような情報を必要としどのような情報を生成するか
を決定するが、これはコンポーネントのインターフェー
スを調査することによって行う。「インサイドOLE」お
よび「OLE2プログラマ」では、コンポーネントインター
フェースおよびこのようなインターフェースを調査する
ためのツールについて説明している。たとえば、「イン
サイドOLE」の14から22、43から47、および、1145から1
164頁を参照されたい。
ソフトウェア コンポーネントはそのサービスをクラ
イアントに提供するが、これは、コンピュータ上でバイ
ナリ オブジェクトの部分を実行し、クライアントと通
信することによって行う。「インサイドOLE」および「O
LE2プログラマ」では、多くの利用できるバイナリ オ
ブジェクトのいくつかについて説明しており、特定のソ
フトウェア コンピュータとそのクライアントとの間の
通信の上の制限について論じている。たとえば、「OLE2
プログラマ」の5から29頁を参照されたい。
COMの周知のバージョンの一つが「OLE」である。OLE
ソフトウェア コンポーネントのさまざまなバラエテ
ィ、OLEコントロール、OLEオートメーション オブジェ
クト、OLEオートメーション コントローラ、OLEイネー
ブルド アプリケーション、および関連するツールが商
業的に利用できる。「ビジュアル開発のためのOLEコン
ポーネントのディレクトリ」は、カリフォルニア州、パ
ロ アルトのフォーセット技術出版から入手できる。
残念ながら、OLEソフトウェア コンポーネントがあ
るコンピュータ上でアクセスできるのは、それらが大変
特有のフォーマットを有する「レジストリ ファイル」
内にレジスタされている場合だけである。レジストリ
ファイルの例、および、そのフォーマットの説明は、
「インサイドOLE」の58から59、70から73、169から17
2、226から231、268から269、328、378から380、616か
ら617 667から669、830から833、879、988から989、お
よび1126から1127頁に与えられている。
レジストリ ファイルはCOMクライアント対して知ら
れ利用されるソフトウェア コンポーネントについての
重要な情報を提供する。特に、レジストリ ファイル
は、「CLSID」として知られているソフトウェア コン
ポーネント識別子を、識別されたサーバのバイナリ オ
ブジェクトのファイル システム ロケーションと、そ
のサーバ コンポーネントのインターフェースの「タイ
プ ライブラリ」情報とにマップする。CLSIDについて
は「インサイドOLE」の65から72頁で説明されている。
2つのOLEサーバ コンポーネントは、同じディスクに
ストアしてもよいが、一方のコンポーネントだけがコン
ピュータのレジストリ ファイル内の適切なエントリに
よってレジスタされている場合には、そのレジスタされ
たコンポーネントだけがそのコンピュータ上で稼動する
潜在的なクライアントから見えることになる。
さらに、与えられたコンポーネントの1つのバージョ
ンだけが典型的にはレジスタされる。たとえば、「イン
サイドOLE」では1つのグローバルなレジストリ ファ
イルではなく分離したレジストリ ファイルを使用して
いるが、これは複数のバージョンが例として使用されて
いるからである。「インサイドOLE」の59頁。
レジストリ ファイル内の情報はローカル エリア
ネットワーク(「LAN」)に接続されている複数のコン
ピュータから利用できるようにしてもよいが、これはそ
のレジストリをLANのネットワーク ファイル サーバ
上の置くことによって行う。たとえば、レジストリ フ
ァイルは、ほかのファイル同様、UNIX若しくはWindows
NTファイル サーバを通じてアクセスできるようにする
ことができる。複数の分離したレジストリ ファイル
が、あたかも単一のより大きなレジストリ ファイルで
あるかのようにクライアントから見えるようにすること
もできる。レジストリ ファイルの内容は、したがっ
て、ワークグループの複数のメンバ、例えばMicrosoft
Windows若しくはWindows NT Workgroupのメンバの間で
共有される(Microsoft、Windows、および、NTはマイク
ロソフト社の商標である)。
しかし、このサーバ集中型のアプリケーションにはさ
まざまな欠点がある。単一のLANを超える規模にはなか
なかできないが、これは、ユーザ アカウント情報が各
追加サーバに対して必要とされるからである。これらの
追加ユーザ アカウントに関連する管理作業の負担を削
減するためにある規約(コンベンション、convention)
を使用することもできる。多くのFTPサイトで使用され
ているたとえば「アノニマス(anonymous)」ユーザ
コンベンションである。しかし、アクセス制御、セキュ
リティ、および、リスニング制限が、これらのコンベン
ションでは犠牲になる。
OLEソフトウェア コンポーネントがレジスタされて
いる場合は、クライアントはコンポーネントのインター
フェースで識別されるサービスをリクエストできる。サ
ービス リクエストはクライアントからサーバ コンポ
ーネントへデータを渡すことがよくあり、その結果、サ
ーバからクライアントへエラー コード若しくはほかの
データが戻して渡されることもある。レジスタされたサ
ーバ コンポーネントとそのクライアントの一つとの間
の情報の受渡しのプロセスは、「マーシャリング」とし
て知られている。「インサイドOLE」および「OLE2プロ
グラマ」で説明されている通り、OLEは「標準マーシャ
リング」を提供するが、これによって、サーバとそのク
ライアントが単一のコンピュータ上のメモリの共通領域
へのアクセスを共有しているときの通信ができるように
なる。OLEはまた、「カスタム マーシャリング」も許
している(が、実際には提供していない)。たとえば、
当業者の一人であれば、関数の引数および結果をLANを
渡ってトランスミットするカスタム マーシャリングを
実装することができる。たとえば、「インサイドOLE」
の33から35、277から301、329から338頁を参照された
い。
OLEは、必要事項をライセンスすることを強制する、
技術的手段のための制限されたサポートを提供してい
る。「インサイドOLE」はこのサポートを234から237、2
47、および、269から274頁で説明している。ライセンス
処理に対するOLEアプローチには、ライセンス キーが
永続的にアプリケーション内にストアされるという欠点
がある。OLEライセンス処理サポートはまた、現在は、
共有メモリを通じて通信するサーバ コンポーネントお
よびクライアントに制限がある。簡単にいえば、OLEに
よって個々のソフトウェアはより信頼できるものにな
り、より利用しやすくなる。OLEによってソフトウェア
ルーチンのカプセル化および再利用が促進され、これ
によってプログラム開発およびアップグレードの時間を
削減することができる。しかし、OLEコンポーネントが
利用できるのは、それがローカルのレジストリ ファイ
ルにレジスタされている場合だけである。このようにロ
ーカル レジストリ ファイルに依存しているため、コ
ンポーネントの利用可能性を過度に制限することにな
り、多くのコンピュータがレジスタ情報へアクセスする
必要がある場合はスケーリング問題が生ずることとな
る。
前述した通り、OLEレジストリ ファイルおよびOLEコ
ンポーネントはLANに接続されたコンピュータ上にスト
アしてもよい。OLEクライアントはLAN上に常駐してもよ
い。しかし、OLEは、LAN管理ツールの機能を十分には利
用しない。OLEは、当業者に、たとえばカスタム マー
シャリング機能などのネットワーク処理を利用する機能
を実装するためのするための機会を提供する。しかし、
OLEはその環境が単一の孤立したコンピュータであると
仮定する場合も大変しばしばある。
OLEが利用できないLAN管理ツールの一つが「ディレク
トリ サービス プロバイダ」である。ディレクトリ
サービス プロバイダにはさまざまあるが、一般的には
ネットワーク リソースのロケーションとそれらのリソ
ースを使用するネットワーク ユーザの権限の両方を管
理するのを助ける。周知のディレクトリ サービス プ
ロバイダ1つはNetWareディレクトリ サービス(「ND
S」)ソフトウェアを含むが、これはユタ州、オレムの
ノベル社から入手することができる(「NetWareディレ
クトリ サービス」はノベル社の商標である)。
ディレクトリ サービス プロバイダはスキーマを含
む。スキーマは、「属性シンタクス」の定義のセット、
「属性」定義のセット、および、「データベース ブジ
ェクト クラス」(「クラス」としても知られている)
の定義のセットを含む。NDSソフトウェア、および、デ
フォルトのNDSスキーマは、ビアラーほか「プロフェッ
ショナルのためのNetWare4(Netware4 for Professiona
ls)」、ISBN1−56205−217−9(「NetWare4」)、255
から342頁で説明されている。「属性」および「プロパ
ティ」という用語は、「NetWare4」およびここでは相互
に変更可能なように使用される。「属性シンタクス」と
「プロパティ シンタクス」という用語も同様である。
スキーマ内のそれぞれの属性シンタクスは、属性シン
タクス名および与えられた属性シンタクス タイプの属
性に割り当てることができる値の種類および/又は範囲
によって指定される。属性シンタクスには、例えば、Ca
se Exact String(大文字小文字を区別する文字列)、C
ase Ignore List(大文字小文字を区別しない文字
列)、E−Mail Address、Net Address(有効なアドレ
スは、IPXおよびAppleTalk含む)、Path、および、Stre
am(NDSデータベース ファイルに内に直接ストアされ
てはいないデータへアクセスするためのもの)が含まれ
る。属性シンタクスは、大雑把に言えば従来のプログラ
ミング言語における整数、浮動小数点数、文字列、ファ
イル、ストリーム、あるいは、論理値などのデータ タ
イプに対応する。スキーマ内の各属性は、これに関連付
けられたある情報を有する。各属性は属性名および属性
シンタクス タイプを有する。属性名はその属性を識別
するが、属性シンタクスはその属性がとることのできる
値の範囲を決める。たとえば、デフォルトのNDSスキー
マはシンタクス タイプ整数の属性であって名前「サポ
ートされた接続」、すなわち、ファイル サーバが許可
する現在の接続の数を指定する名前を有する属性を含
む。
各属性はまた、以下のフラグのいずれかもしくはすべ
てと関連付けらるかもしれない。Non−removable、Hidd
en、Public Read、Read Only、Single−Valued Sized、
および、String。これらのフラグの一般的な意味は当業
者であれば知っているものである。Sizedフラグが与え
られた属性にセットされている場合は、その属性によっ
て現在保持される値に対して上限および下限(No Limit
制限なしを含んでもよい)が課せられる。
スキーマ内の各データベース オブジェクト クラス
はまた、それに関連付けられたある情報を有する。各ク
ラスは、これを識別するためのクラス名、このクラスが
属性を継承しているほかのクラスを識別するスーパー
クラスのセット、および、このクラスのインスタンスを
保持することが許可されているクラスを識別するコンテ
ナ クラスのセットを有する。
各データベース オブジェクト クラスはまた、コン
テナ フラグおよびエフェクティブ フラグを有する。
コンテナ フラグは、そのクラスがコンテナ クラスか
否か、つまり、ほかのクラスのインスタンスを保持する
ことができるか否かを表示する。エフェクティブ フラ
グは、そのクラスのインスタンスが定義できるか否かを
表示する。非エフェクティブ クラスはほかのクラスに
よって継承される属性を定義するためだけに使用される
一方、エフェクティブ クラスは、継承できる属性を定
義したり、インスタンスを定義したり、あるいは、両方
を定義したりするために使用される。
さらに、各データベース オブジェクト クラスはあ
る属性をまとめてグループ化する。クラスのネーミング
属性は、そのクラスのインスタンスに名前を付けるため
に使用できる属性である。クラスのマンダトリ属性は、
そのクラスの有効なインスタンスのそれぞれの中に存在
しなくてはならないもの、および/又は、そのクラスか
ら継承したクラスのマンダトリ属性とならなければなら
いものである。クラスのオプショナル属性は、そのクラ
スの有効なインスタンスのそれぞれの中に、存在しても
よいが必要ではない属性である。親クラスのオプショナ
ル属性は、その親クラスから継承した子クラスのオプシ
ョナル属性となる。ただし、その属性がその子クラスが
継承したほかの親クラスにおいてマンダトリである場合
はそうではない。この場合は、これらの属性は子クラス
においてもマンダトリとなる。
データベース オブジェクトは、データベース オブ
ジェクト クラスのインスタンスである。同じクラスの
異なるデータベース オブジェクトは、同じマンダトリ
属性を有するが、それらの対応するマンダトリ属性に異
なる現在の値を有してもよい。同じクラスの異なるデー
タベース オブジェクトは、異なるオプショナル属性、
および/又は、対応するオプショナル属性に異なる現在
の値を有してもよい。
ディレクトリ サービス プロバイダもまた、ディレ
クトリ サービス インターフェース ライブラリを含
むが、これは、スキーマおよびデータベースへのアクセ
スを提供する。スキーマは、API拡張可能なスキーマで
あり、その中では、スキーマの中から見つけられる属性
およびオブジェクトはアプリケーション プログラマー
ズ インターフェース「API」)を通じて変更すること
ができ、その際に、スキーマを実装するソース コード
へ直接アクセスしたりはしない。ある実施形態において
は、ディレクトリ サービス インターフェース ライ
ブラリはファイルにストアされたテーブルおよびコマン
ドを含むが、これらは初期化のとき、および、データベ
ース オブジェクトが作成されるときにスキーマによっ
て読み出され、これによって利用できる属性およびクラ
スを定義する。
さらに、もしくは、別の実施形態では、ディレクトリ
サービス インターフェース ライブラリは、スキー
マにアクセスして変更するためのほかのコードを利用で
きるようなルーチンのセットを含む。ディレクトリ サ
ービス インターフェース ライブラリの実装の一つ
は、NWDSxxx()ライブラリを含み、これは商業的にユ
タ州、オレムのノベル社から入手することができる。NW
DSxxx()ライブラリがこのような名前になっているの
は、このライブラリで定義されている関数の名前および
データ タイプが典型的には「NWDS」で始まっているか
らであり、これは、「NetWare Directory Service」の
頭字語(acronym)である。
データベースは、スキーマおよびそのネットワークの
詳細に応じて定義されるデータベース オブジェクトを
含む。これらのオブジェクトは、典型的にはネットワー
クのリソースを表現する。データベースは「階層的」デ
ータベースである。というのは、データベース内のオブ
ジェクトは階層的なツリー構造内に接続されているから
である。ほかのオブジェクトを含むことができるこのツ
リーの中のオブジェクトを「コンテナ・オブジェクト」
と呼ぶがこれはコンテナ・オブジェクト・クラスのイン
スタンスでなければならない。」 データベースは、また、「同期的パーティション」デ
ータベースである。データベースは、典型的には2つ以
上の重複しないパーティションに分割される。データベ
ース クエリに対する応答時間を改善するため、およ
び、フォールト トレランスを提供するため、各パーテ
ィションのレプリカがネットワーク内の1つ以上のファ
イル サーバ上に物理的にストアされる。与えられたパ
ーティションのレプリカは、ディレクトリ サービス
プロバイダによって、自動化された同期プロセスを通じ
て定期的に更新され、これによってネットワーク上のア
クティビティによって生ずるレプリカ間の相違を減少さ
せる。
OLEが利用できないほかのネットワーク管理ツール
は、NWAdminおよびそのありうる「スナップイン」モジ
ュールである。これらのツールの説明については、公知
になっているコペンディング出願第08/499,711号、1995
年7月7日出願を参照することができる。
OLEはまた、インターネットを利用することができな
いし、インターネットは現在では、OLEを十分に利用す
るように構成されていない。インターネットは、世界中
の莫大な数のコンピュータ間の様々な異なる通信を提供
する。ここで使用する通り、「インターネット サー
バ」は、インターネット アドレスによって識別される
コンピュータを意味する。インターネット アドレス
は、イー・クロル「ホール・インターネット:ユーザー
ズ ガイドおよびカタログ」第2版、ISBN1−56592−06
3−5、(「インターネット ガイド」)、23から24頁
に説明されている。
検索および情報管理ソフトウェアは、インターネット
サーバから利用できる莫大な量の情報を管理するのに
役立つ。インターネット サーバについては、以降に、
それが提供する特定の検索および情報管理サービスに応
じて説明する。たとえば、「Archieサーバ」、「Gopher
サーバ」、「WAISサーバ」、および、「ワールド ワイ
ド ウェブ サーバ」はすべて、ファイルのインデック
ス(index)および/はロケートをするためのソフトウ
ェアをサポートしている。「whois」、「finger」など
のソフトウェア、および、X.500ディレクトリ サービ
スはインターネット ユーザのための個人的データ、た
とえば、その加入組織(affiliation)、電子メール
アドレス、レギュラー メール アドレス、および電話
番号などを管理する。「インターネット ガイド」187
から323頁を参照されたい。
インターネットを使用する実行可能コードをロケート
して動作させるための典型的なアプローチは、ユーザが
メニュー、ディレクトリの一覧、あるいは「リードミ
ー」ファイルを、インターネット サーバを使用して閲
覧(browse)したときに開始される。ユーザは、興味あ
る名前や説明を有するファイルを選択する。典型的には
ファイルはスタンドアローンプログラムを含む。たとえ
ば、DOS互換システム上の.EXE、.COM、又は、.BATファ
イルに見られるようなプログラムである。ユーザは、次
に、FTP若しくはほかのファイル コピー処理 サービ
スを呼び出し(invoke)して、その実行可能ファイルを
ユーザのローカル コンピュータへコピーする。最後
に、ユーザはその実行可能ファイルをローンチ若しくは
インボークする。
このアプローチのバリエーションは、Javaファイルに
見ることができる(JAVA、サン マイクロシステムズ社
の商標である)。Javaは、「アプレット」と呼ばれる小
規模のアプリケーション プログラムを記述するために
設計されたインタープリタ型プログラミング言語であ
り、アプレットはユーザがワールド ワイド ウェブ
ページを見たときに実行される。アプレットはワールド
ワイド ウェブ ページにリンクされか若しくは含ま
れており、その数は画像やほかのページへのリンクが含
まれている数と同程度である。ユーザは、ウェブ ペー
ジのハイライト表示若しくは下線表示された部分であっ
てアプレットに関連付けられた部分を選択すると、その
アプレットがインターネットを通じてユーザのウェブ
ブラウザに転送される。ウェブ ブラウザがJavaインタ
ープリタを含まない場合は、エラーが発生する。ブラウ
ザがインタープリタを含む場合は、それがアプレットを
「インタプリタ」するが、このインタプリタは、一度に
1ピースをバイナリに翻訳し、その結果のバイナリ コ
ードを実行し、次のピースを翻訳し、などと処理をする
ことによって行われる。アプレットはCOMに適合するも
のではない。というのは、アプレットはバイナリ オブ
ジェクトを提供しないし、COMインターフェース管理サ
ービスをサポートしないからである。
したがって、コンピュータ ネットワーク内にディス
トリビュートされたCOMフトウェア コンポーネントを
新しい方法を提供することは、当業界の進歩となり得
る。ディレクトリ サービス プロバイダの機能を利用
するこのような方法を提供することは、さらなる進歩と
なり得る。
インターネット サービスの機能を利用するこのよう
な方法を提供することは、さらなる進歩となり得る。
ここでは、ソフトウェア コンポーネントを管理する
このような方法を開示して請求する。
本発明の簡単な開示 本発明は、コンピュータのネットワークに内のCOMソ
フトウェア コンポーネントを管理するためのアプロー
チを提供する。ネットワークは、ローカル エリア ネ
ットワークでも、ワイド エリア ネットワークでも、
インターネットでも、当業界でよく知られているほかの
ネットワークでも、あるいはこれらの組み合わせのいず
れかでもよい。ネットワークは、ソフトウェア コンポ
ーネントのためのリポジトリ(repository)としてとし
て働く。前述のアプローチの下では、COMクライアント
から到達できるようなコンポーネントのリポジトリは、
本質的には現在レジスタされているコンポーネントに制
限されていた。しかし、本発明の下では、リポジトリが
拡張されており、前述のレジスタされているコンポーネ
ントのみならずレジスタされていないコンポーネントを
も含み、これらは任意の巨大なデータベース内で識別さ
れる。
各ソフトウェア コンポーネントは、バイナリ オブ
ジェクトおよびバイナリ オブジェクトへの少なくとも
1つのインターフェースを含む。コンポーネントはま
た、リファレンス カウントおよびほかの機能を含んで
もよい。好適なソフトウェア コンポーネントは制限な
しにOLEコンポーネントを含む。
COMクライアントは、レジスタされたコンポーネント
を認識するだけである。ネットワークは、レジストリ
ファイルが常駐するレジストリ コンピュータを少なく
とも1つ含む。レジストリ ファイルのエントリは、レ
ジスタされたコンポーネントを識別してそのロケーショ
ンを指定する。好適なレジストリ ファイルは、たとえ
ばOLEファイルを含む。
ネットワークはまた、レジストリ コンピュータとは
異なるコンポーネント サーバ コンピュータを少なく
とも1つ含む。今までのところでは、レジスタされてい
ないコンポーネントはコンポーネント サーバ コンピ
ュータ上に常駐する。好適なコンポーネント サーバは
Novell NetWAreおよびほかのファイル サーバを含み、
このほか、Gopher、Archie、Wide Area Information Se
rvices(「WAIS」)、および、ウェブ サーバなどのイ
ンターネット サーバを含む。
本発明の方法は、以下のコンピュータ実装されたステ
ップを含む。データベースは、ソフトウェア コンポー
ネント識別子をソフトウェア コンポーネント ロケー
タ(locator)に関連付けるが、このデータベースがア
クセスされて、与えられた識別子にマッチするロケータ
がある場合にはこのロケータを探す。好適なデータベー
スは階層的な同期的パーティション データベースであ
ってネットワーク オペレーティング システムによっ
て維持されるもの、たとえば、Novell Netware Directo
ry Service(「NDS」)データベースを含む。NDSデータ
ベースを本発明にしたがって拡張して、識別子を有する
コンポーネント データベース オブジェクトを含むよ
うにしてもよい。ほかの好適なデータベースは、インタ
ーネット検索エンジン、たとえば、Gopher、Archie、WA
IS又はウェブ ブラウザなどによって維持されるものを
含む。
データベース検索の間に一致が見付かった場合は、そ
の検索によって識別された1つ以上のソウトウェア コ
ンポーネントが選択される。選択されたソフトウェア
コンポーネントのロケーションがデータベースから抽出
される。必要な場合は、コンポーネントの一部若しくは
すべてが転送されてクライアントはファイル システム
を通じてこれにアクセスできるようになる。パーシャル
トランスファは、コンポーネントの1つ以上のインタ
ーフェースのトランスファを含むが、トータル トラン
スファはコンポーネントの全インターフェースおよびバ
イナリ オブジェクトを含む。最後に、レジストリ フ
ァイルが更新され、選択されたコンポーネントのロケー
ションを含むようになる。
本発明の特徴および利点は、以下の説明および添付さ
れた特許請求の範囲によっておよび付属する図面との組
み合わせを参照することによって十分に明らかになるで
あろう。
図面の簡単な説明 本発明の利点および機能を得るための方法を説明する
ため、上記の事項を概括した発明のより特定性の高い説
明が、添付された図面を参照することによって行われ
る。これらの図面は本発明の選択された実施形態を提供
するものであり、したがって、その範囲を制限するもの
ではないと認識されるべきものであるということを理解
すべきである。本発明は、添付された図面を使用するこ
とによって、さらなる限定および詳細を以って記述され
説明される。
図1は、本発明とともに使用することが望ましいコン
ピュータ ネットワークのブロック図である。
図2は、ソフトウェア コンポーネント クライアン
ト、ソフトウェア コンポーネント サーバ コンピュ
ータ、レジストリ、および、データベースの間の関係を
本発明にしたがって示すブロック図である。
図3は、本発明とともに使用することが望ましいソフ
トウェア コンポーネントを示す図である。
図4は、ディレクトリ サービス プロバイダおよび
データベースを示す図である。
図5は、本発明にしたがったコンポーネント データ
ベース オブジェクトの一実施形態を示す図である。
図6は、本発明にしたがったコンポーネント データ
ベース オブジェクトのこの他の実施形態を示す図であ
る。
図7は、本発明の方法を示すフローチャートである。
好適実施形態の詳細な説明 ここでは図を参照するが、図のパーツは数字で参照さ
れる。本発明は、コンピュータ ネットワーク内のソフ
トウェア コンポーネントを管理する方法および装置に
関し、特に、ローカル エリア ネットワーク若しくは
インターネット ネットワーク上に常駐するCOM若しく
はOLEソフトウェア コンポーネントをロケートしてレ
ジスタするための方法に関する。ネットワーク上のコン
ピュータは、ワークステーションでも、ラップトップ
コンピュータでも、取り外し可能なモバイル コンピュ
ータでも、ファイル サーバでも、あるいはこれらの組
み合わせでもよい。ネットワークは1つ以上のLAN、ワ
イド エリア ネットワーク、インターネット サー
バ、インターネット クライアント、もしくはこれらの
組み合わせを含んでもよい。
多くのコンピュータネットワークのうち、本発明とと
もに使用することが望ましいものの一つは、図1の10に
おいて一般的に示される。一実施形態においては、ネッ
トワーク10はNovell NetWareネットワーク オペレーテ
ィングシステム ソフトウェア、バージョン4.xを含む
(NetWareはノベル社の登録商標である)。ほかの実施
形態においては、ネットワークはNetWare Connect Serv
ices、VINES、Windows NT、LAN Manager、あるいはLANt
asticネットワーク オペレーティング・システム ソ
フトウェアを含む(VINESはバニヤン ステムズの商標
であり、NTおよびLAN Managerはマイクロソフト社の商
標であり、LANtasticはアーティソフト社の商標であ
る)。ネットワーク10は、ローカル エリア ネットワ
ーク12を含んでもよいが、これは、ほかのLANやインタ
ーネットの一部などのほかのネットワーク14と、ゲート
ウェイもしくはこれと同等の機構を通じて接続可能であ
る。
ネットワーク10は、複数のファイル サーバ16を含む
が、これらはネットワーク信号線18によって1つ以上の
ネットワーク クライアント20と接続されている。ファ
イル サーバ16およびネットワーク クライアントは、
当業者によって構成され、本発明にしたがって動作する
ようにするための方法にはさまざまなバラエティがあ
る。ファイル サーバ16は、インターネット サーバと
して、ディレクトリ サービス プロバイダとして、ソ
フトウェア コンポーネント サーバとして、もしくは
これらの組み合わせとして構成することができる。ファ
イル サーバ16は、ネットワーク クライアント20、も
しくはこれらの両方は、OLEレジストリ ファイルを保
有していてもよく、一方若しくは双方がOLEクライアン
トとして動作してもよい。
ネットワーク クライアント20は、パーソナル コン
ピュータ22、ラップトップ23、および、ワークステーシ
ョン26を含む。信号線18は、ツイステッド ペア、同
軸、若しくは、光ファイバー ケーブル、電話回線、衛
星、マイクロ波リレー、変調AC電力線、および当業者に
公知のほかのデータ 転送手段を含んでいてもよい。ネ
ットワーク クライアント コンピュータ20に加え、プ
リンタ28およびディスクのアレイ30もネットワーク10に
接続されている。個々のネットワーク コンピュータ
システムおよびコンポーネントは図示されているが、当
業者であれば、本発明は他の種々のネットワークおよび
コンピュータにおいても動作することがわかるであろ
う。
ファイル サーバ16およびネットワーク クライアン
ト20は、フロッピー ドライブ、テープ ドライブ、光
ドライブ、あるいはストレージ媒体を読むための手段32
を使用することができる。好適なストレージ媒体32は磁
気、光、もしくは、ほかのコンピュータ可読なストレー
ジ装置であって特定の物理的サブストレート構成を有す
るものを含む。好適なストレージ装置はフロッピー デ
ィスク、ハード ディスク、テープ、CD−ROM、PROM、R
AM、および、ほかのコンピュータ システム ストレー
ジ装置を含む。サブストレート構成は、データおよびイ
ンストラクションを表すが、これらによって、ここで説
明するように特定のあらかじめ定めた方法でコンピュー
タ・システムが動作するようになる。したがって、媒体
32は資産として(tangibly)プログラム、関数、および
/又は、ファイル サーバ16および/又はネットワーク
クライアント コンピュータ20によって実行されるイ
ンストラクションを有形化(embody)するものであり、
ここで説明する通り、本発明のディストリビュートされ
たソフトウェア コンポーネントの管理方法のステップ
を実体上(substantially)実行するためのものであ
る。
図2は、ネットワーク クライアント20がCOMクライ
アント40として動作する場合のネットワーク構成を示
す。すなわち、クライアント40上で動作しているCOMア
ウェア(COM−aware)ソフトウェアのいくつかは、特定
のCOMソフトウェア コンポーネントを識別しており、
そのサービスは調査されて使用されてもよい。COMのOLE
実施形態においては、所望のソフトウェア コンポーネ
ントは典型的にはOLEクラス識別子、すなわちCLSIDによ
って識別される。しかし、所望のソフトウェア コンポ
ーネントは、グローバリー ユニーク識別子(「GUI
D」)、ユニバーサリー ユニーク識別子(「UUI
D」)、あるいはほかのCLSIDに同等なもので識別されて
もよい。
COMクライアント40は、ネットワーク信号手段18によ
ってレジストリ コンピュータ42に接続されている。そ
うではなく、クライアント40およびレジストリ コンピ
ュータ42が同じコンピュータであってもよい。COMレジ
ストリ ファイル44は、レジストリ コンピュータ42上
に常駐している。好適なレジストリ ファイル44はOLE
レジストリ ファイルを含むが、これは「OLE2プログラ
マ」および「インサイドOLE」で説明されている通りで
ある。ここで使用される通り、ファイル若しくはソフト
ウェア コンポーネントは、そのファイル若しくはコン
ポーネントが、それぞれ、そのネットワーク上のほかの
コンピュータに与えられたコンピュータを通じてアクセ
ス可能な場合は、与えられたコンピュータ上に「常駐」
する。たとえば、NetWareファイル サーバなどの従来
のファイル サーバによって管理されているファイル
は、そのファイル サーバの上に常駐する。
コンポーネント サーバ コンピュータ46もまた、ネ
ットワークに信号手段18によって接続されている。1つ
以上のCOMソフトウェア コンポーネント48がコンポー
ネント サーバ46の上に常駐している。注意すべきは、
レジスタされたソフトウェア コンポーネントだけがCO
Mクライアントから利用できる。このように、レジスト
リ ファイル44の中に現われないコンポーネント48はい
ずれもCOMライアント40から利用できない。これは、そ
のクライアント40がネットワークを通じてコンポーネン
ト48を含むファイルへのアクセスを有する場合でさえも
利用できない。
信号手段18はまた、データベース マネージャ50をネ
ットワークへ接続する。データベース マネージャ50
は、1つ以上のデータベース オブジェクト若しくはエ
ントリ54を含むデータベース52を管理する。ここで使用
される「データベース・オブジェクト」はある種の「デ
ータベース・エントリ」を参照する。各データベース
オブジェクト若しくはエントリ54は、コンポーネント識
別子56をコンポーネント ロケータ58へ関連付けする。
1実施形態としては、データベース ネージャ50はNove
ll NDSソフトウェアを含み、データベース52はNDSデー
タベースを含む。ほかの実施形態としては、データベー
ス マネージャ50は検索エンジンなどのインターネット
サーバ ソフトウェアを含み、データベース52は1つ
以上のArchieファイル インデックス、Gopherインデッ
クスト ディレクトリ、WAISドキュメント インデック
ス、若しくはワールド ワイド ウェブ ページを含
む。
図3は、さらに、1つのソフトウェア コンポーネン
ト48の実施形態を示す。コンポーネント48は、バイナリ
オブジェクト70を含む。インタープリタされるコード
と異なり、バイナリ コードは実行する前に翻訳処理を
必要としない。バイナリ オブジェクトはまた、「ネイ
ティブ コード オブジェクト」として知られている。
DOS互換システム上では、好適なバイナリ オブジェク
ト70は、たとえば、よく知られている.EXE及び.DLLフォ
ーマットを含む。
コンポーネント48はまた、バイナリ オブジェクト70
への1つ以上のインターフェース72を含む。COMの2つ
の重要な利点は、特定のサービスが利用できるかどうか
を動的に(「実行時に」)調べて決定するためのサポー
トを提供していることと、現在のバイナリ オブジェク
ト70に対して拡張された、改善された、若しくは、代替
のバイナリ オブジェクトを置き換える機能があり、そ
の際にバイナリ オブジェクト70を使用するクライアン
ト40で再コンパイルする必要がないということである。
これらの利点は、その大部分がCOMインターフェース管
理サービスによって達成されている。
COMインターフェース管理サービスによって、クライ
アントは動的にコンポーネント48にクエリしてどのよう
なサービスが利用できるか問い合わせて決めることがで
きるようになる。インターフェース管理サービスはま
た、間接参照のレベルをクライアント40とバイナリ オ
ブジェクト70の間で分離する機能を提供する。したがっ
て、望ましくはインターフェース72はCOMインターフェ
ース管理サービスをサポートするものを含む。一実施形
態においては、COMインターフェース管理サービスは、I
UnknownIClassFactoryICreateTypeLib及び関連するOLE
インターフェース及びこれらに同等なものを通じて提供
される。これらについては「OLE2プログラマ」と「イン
サイドOLE」に説明されている通りである。
図示されたコンポーネント48はまた、リファレンス
カウント74を含む。ほかの代替実施形態では、リファレ
ンス カウント74を省略しているが、またほかの実施形
態では、1つ以上の下記の要素を含む。メモリ管理サー
ビス エラー報告サービス、プロセス間通信サービス、
クラス ファクトリ、及び特定の実装選択サービスであ
る。好適なこの要素は「OLE2プログラマ」と「インサイ
ドOLE」に説明されているものを含む。
図4は、さらに、データベース マネージャ50及びデ
ータベース52の実施形態を示す。データベース マネー
ジャ50はディレクトリ サービス プロバイダ80を含
み、データベース52はネットワークオペレーティング・
システムによって維持されている階層的同期パーティシ
ョン データベース82を含む。好適なデータベース82
は、NDSデータベースを含む。好適なディレクトリ サ
ービス プロバイダ82は、NetWareネットワーク オペ
レーティング・システムによって管理されているNovell
NDSソフトウェアを含む。NDSは、属性シンタクス86、
データベース クラス88、及び、属性90を含むスキーマ
84を提供する。一実施形態では、既存のNDSスキーマ84
を利用して本発明にしたがってデータベース値を単純に
インタープリトする。
図2及び図4から図6に図示した通り、本発明の代替
実施形態はNDSスキーマを拡張するが、これは、オブジ
ェクト92、94などのコンポーネント データベース オ
ブジェクトを定義することによって行う。各実施形態
は、コンポーネント識別子56をコンポーネント ロケー
タ58に関連付けるが、これは、識別子属性96及びNDSデ
ータベース オブジェクト92若しくは94の中にバイナリ
ロケータ属性98若しくは100のそれぞれを置くことに
よって行う。この場合、識別子属性96はOLE CLSIDを含
む。データベース オブジェクト92、94の一方若しくは
双方を、与えられたデータベース82内で利用してもよ
い。
図5に示す実施形態においては、バイナリ ロケータ
属性98はユニバーサル名前付け規約(universal naming
convention)にしたがったファイル名を値として有す
る。ファイル名は、データベース オブジェクト92の識
別属性96内のOLE CLSIDによって識別されるソフトウェ
ア コンポーネント48のバイナリ オブジェクト70を含
むファイルのファイル システム ロケーションを識別
する。
図6に示す実施形態においては、バイナリ ロケータ
属性100はあるストリームをその値として有する。スト
リームは、データベース オブジェクト94の識別子属性
96内のOLE CLSIDによって識別されたソフトウェア コ
ンポーネント48のバイナリ オブジェクト70(図3)へ
の直接アクセスを提供する。本発明の代替実施形態にお
いては、データベース オブジェクト92、94はまた、OL
Eデスクリプタ属性、ライセンシング属性、OLEレジスト
リ ファイルにおいて見つかった情報をストアする属
性、NDSデータベースの管理において有用な情報をスト
アするための属性、若しくは、これらの組み合わせを含
む。
図4及び図7は、本発明にしたがった方法の一つを図
示する。作成ステップ110の間、データベース エント
リ若しくはオブジェクト54が作成される。好適なデータ
ベース エントリ及びオブジェクト54はCOMソフトウェ
ア コンポーネント識別子56をCOMソフトウェア コン
ポーネント ロケータ58に関連付けるが、これは図2及
び図4から図6において図示した通りである。オブジェ
クト92や94などのNDSデータベース オブジェクトを含
む実施形態においては、当業者であれば、このようなオ
ブジェクトを適切に商業的に利用可能なNWDSxxx()関
数及びその他の周知の手段を呼び出すことを通じて作成
することがすぐにできるであろう。HTMLドキュメントを
利用する実施形態においては、好適なエントリ54は、ド
キュメント テキスト内にキーワードと、その後ろにCL
SIDびユニバーサル名前付け規約(「UNC」)パスを含
む。たとえば、“OLE−CLASS−ID42754580−1b67−11ce
−80eb−00aa003d7352//srv/vl/ole/foo.dll"である。
実施形態によっては、名前及びロケーションに関する規
約に従って、UNCパスは省略される。
図2及び図7を参照すると、識別ステップ112の間、C
OMクライアント40は特定の所望のCOMソフトウェア コ
ンポーネントを識別してローカル レジストリ ファイ
ル44をチェックして所望のコンポーネントが利用できる
かどうかを調べる。所望のコンポーネントはそのCLSI
D、GUID、UUID、又は、均等なコンポーネント識別子若
しくはクラス識別子によって識別される。所望のコンポ
ーネントがレジスタされている場合は、ステップ114か
ら120まではスキップされる。
所望のコンポーネントがレジスタされていない場合
は、従来のCOMシステム(従来のOLEシステムを含む)は
エラー メッセージを返す。これは、所望のコンポーネ
ントを含むファイルがそのCOMクライアントと同じコン
ピュータ上に常駐する場合でも発生する。ある実施形態
においては、人間のユーザが直接、エラー メッセージ
に対する応答においてステップ114から120までをイニシ
エートする。
好適な代替実施形態においては、OLEが拡張されてお
り、所望のコンポーネントがまだレジスタされていない
場合は、少なくともステップ114から120までの一部が自
動的に拡張されたOLEソフトウェアによって実行され
る。これは様々な方法で達成することができる。一つの
アプローチは、既存のOLE32.DLLをMSOLE32.DLLにリネー
ムして新しいOLE32.DLLを提供する。新しいOLE32.DLLは
多くの関数呼び出しをそのままMSOLE32.DLLに送信す
る。しかし、関数CoGetClassObject()は変更されてお
り、所望のコンポーネントがレジスタされていない場合
はディレクトリ サービス及び/又はインターネット
データベース52を検索する。検索が成功した場合は、変
更されたCoGetClassObject()はロケートされたコンポ
ーネントを必要なときにトランスファして、レジストリ
ファイル44を更新し、制御を元のCoGetClassObjec
t()コードに渡す。
本発明は、レジストリ ファイル44の到達範囲を単一
のコンピュータやファイル システムを超えて周囲のLA
N、NetWare Connect Servicesネットワーク、及び/又
は、インターネットまで拡張する。所望のコンポーネン
トがレジスタされていない場合は、クエリ処理ステップ
144はデータベース マネージャ50にクエリする。その
かわりに、クエリ処理ステップ144を実行するソフトウ
ェアがデータベース52に直接アクセスしてもよい。
いずれの実施形態においても、クエリ処理ステップ11
4は、データベース52にアクセスしてこれを検索して所
望のコンポーネントのCLSID若しくはほかの識別子を含
むエントリ54をロケートする。データベース検索はNDS
ソフトウェアで実行してもよいし、Gopher、Archie、WA
IS、あるいはワールド ワイド ウェブ ブラウザなど
のインターネット検索エンジンで実行してもよい。指定
されたCOMコンポーネント識別子に対応するデータベー
ス エントリ若しくはオブジェクト54が検索によってま
ったくロケートされなかった場合は、COMクライアント4
0に通知される。クライアント40はそれから、所望のサ
ービスがないにもかかわらずベストを尽くして先へ進ま
なければならない。
しかし、検索が成功した場合は、所望のコンポーネン
ト識別子を含む1つ以上のデータベース エントリ若し
くはオブジェクト54が選択される。所望のコンポーネン
トのバイナリ オブジェクト70(図3)の対応するロケ
ーションは、これをデータベース エントリ若しくはオ
ブジェクト54から抽出ステップ116において抽出するこ
とによって決められる。抽出は、当業者に周知の手段に
よって達成される。
抽出ステップ116は、コンポーネント データベース
オブジェクト92や94内に保持されているライセンシン
グ属性の値などのライセンシング情報の抽出を含む。次
にそのライセンシング必要条件が満たされていることを
確認するためのステップが実行されてもよい。環境によ
っては、望ましくはこれらのステップはユーザにライセ
ンス契約書を提示したり、使用メータリングをイニシエ
ートしたり、既存のアカウントに課金したりするステッ
プ、あるいは、ライセンシング ソフトウェアの当業者
に周知のほかのステップを含む。
転送処理ステップ118の間、所望のコンポーネントの
必要な転送がネットワークを通じてすべて実行され、CO
Mクライアント40の上にこれが常駐するようになる。所
望のコンポーネントがすでにCOMクライアント40上に常
駐している場合(あるが、レジストがされていないため
に利用できなかった場合)は、トランスファは実行され
ない。
転送処理ステップ118の一部は、使用されたデータベ
ース オブジェクト54の詳細にしたがって異なる。バイ
ナリ ロケータ属性100(図6)内に指定されたストリ
ームなどのストリームは、ストリームとしてオープンさ
れ、COMクライアント上に常駐するテンポラリ ファイ
ルが作成され、ストリーム データがネットワークを通
じて転送される。バイナリ ロケータ属性98(図5)内
に指定されたファイルは、ユーザが指定した通りにコピ
ー若しくは移動されるが、好ましいデフォルトはコピー
である。
更新ステップ120の間、COMクライアント40上に常駐す
るレジストリ ファイル44が更新されて所望のソフトウ
ェア コンポーネントの新しい利用可能性を反映するよ
うになる。ある実施形態においては、あらかじめ定めた
ProgID若しくはほかのキー値がレジストリ ファイルに
含められ、本発明にしたがって簡単にエントリの識別が
できるようになる。このキー値によってこのようなエン
トリの削除が簡単になるほか、システム管理者が本発明
の使用に関する統計を取得することが簡単にある。
最後に、利用ステップ122の間、レジストリ情報、お
よび、ついで所望のソフトウェア コンポーネント自体
がCOMクライアントによって利用される。これは当業界
の周知の方法によって達成される。
まとめると、本発明は、COMソフトウェア コンポー
ネント リポジトリのスコープを、ローカル コンピュ
ータやファイル システムを超えてローカル コンピュ
ータと通信するネットワークにまで効率的に拡張する新
しいアプローチを提供する。これらの通信ネットワーク
は、ほかのローカル エリア ネットワークでも、ワイ
ド エリア ネットワークでも、あるいは、ワールド
ワイドなインターネットでもよい。ソフトウェア コン
ポーネントの使用の広がりが、適切なライセンシング及
びセキュリティ制約にしたがって、これによって促進さ
れる。本発明の実施形態は既存のOLEレジストリ ファ
イルと十分互換性があるので、レジストリ ファイルの
複数の(おそらくは一貫性のない)コピーを必要とした
り、多くのLANにうまくスケールできないようなアドホ
ックなアプローチをとる必要がまったくない。
「OLE2プログラマ」、「インサイドOLE」、「NetWare
4」、及び/又は、インターネット ガイド」の特定の
トピックや頁を引用してここで識別した説明はすべて、
ここで参照する。
矛盾がおきた場合は、ここで直接提供した説明が参照
した説明に優先する。
本発明を実施するための特定の方法は、はっきりとこ
こで図示され、説明されているが、本発明の方法にした
がって、装置及びアーティクル実施形態を形成してもよ
いことがわかるだろう。したがって、ほかに明らかに示
さなくても、本発明の方法のここでの説明を拡張して対
応する装置及びアーティクルに拡張することができ、本
発明の装置及びアーティクルの説明は同様に対応する方
法に拡張することができる。
本発明は、その本質的な特性から離れずにほかの特定
の形式で実施してもよい。説明された実施形態はすべて
の点において説明のためのものであり、制限するための
ものではないと理解すべきである。本発明において利用
した科学的原理のここで提供した説明は説明のためだけ
のものである。したがって、本発明の範囲は、ここまで
の説明ではなく以降の特許請求の範囲によって示され
る。
特許請求の範囲に均等なものの意味及び範囲の中に入
るすべての変更は、これらの範囲の中に含まれる。
請求して特許によって保護したいことは、以下の通り
である。
フロントページの続き (31)優先権主張番号 576,647 (32)優先日 平成7年12月21日(1995.12.21) (33)優先権主張国 米国(US) (56)参考文献 Pleas ;K.,”Extend ing the Reach of O LE”,BYTE,1994年11月号(Vo l.19,No.11),pp.199−200, 202,204,206 Udell ;J.,”10億のユーザ /デバイス接続を目指すNovel l”,日経バイト,1995年5月号,p p.215−226(原著:Jon Udel l,”Novell’s Campai gn”,BYTE,1995/2,pp.42 −64) Wayner;.p,”Object s on the March”,BY TE,1994年1月号(Vol.19,N o.1),pp.139−140,142,144, 148,150 Orfali ;R.,”Clien t/Server with Dist ributed Objects.”, BYTE,1995年4月号(Vol.20, No.4),pp.151−152,154, 156,158−160,162 Lewis ;T.G.,”Wher e is Client/Server Software Heade d?”,Computer,Vol. 28,No.4(1995年4月)、pp.49 −55 ”ソフト部品化に基づく新たな稼働環 境構築へ”,日経オープンシステム, 1994年1月(No.10),pp.143− 150 Udell ;J.,”オブジェクト 指向の新展開 コンポーネントウエ ア”,日経バイト,1994年7月号,p p.277−289(原著:BYTE誌より) (58)調査した分野(Int.Cl.7,DB名) G06F 9/06 G06F 9/445 - 9/54 G06F 13/00 G06F 15/00 - 15/177

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】コンピュータのネットワーク内のソフトウ
    ェア コンポーネントを管理する方法であって、 各ソフトウェア コンポーネントはバイナリ オブジェ
    クト及び該バイナリ ブジェクトへのインターフェース
    を少なくとも1つ含み、 前記ネットワークはレジストリ ファイルがその上に常
    駐するレジストリ コンピュータを少なくとも1つ含
    み、 前記ネットワークはまた前記レジストリ コンピュータ
    とは異なるコンポーネント サーバ コンピュータを含
    み、 ソフトウェア コンポーネント識別子をソフトウェア
    コンポーネント ロケータに関連付けるレジストリ フ
    ァイル以外のコンピュータ データベースにアクセスす
    るステップと、 前記アクセスするステップの結果として前記データベー
    ス内に識別されたソフトウェア コンポーネントを選択
    するステップと、 前記選択するステップの間に選択されたソフトウェアコ
    ンポーネントのイニシャル ロケーションを決定するス
    テップと、 前記レジストリ ファイルを更新して当該選択されたソ
    フトウェア コンポーネントの現在のロケーションを含
    むようにするステップと を含むことを特徴とする方法。
  2. 【請求項2】請求項1に記載の方法において、前記選択
    するステップの間に選択されたソフトウェア コンポー
    ネントは、複数のクライアントによるコンポーネントの
    同時使用を許し、いつ前記コンポーネントを安全に破壊
    できるかを決定できるリファレンス カウントを含むこ
    とを特徴とする方法。
  3. 【請求項3】請求項1に記載の方法において、前記選択
    するステップの間に選択されたソフトウェア コンポー
    ネントは、OLEソフトウェア コンポーネントを含むこ
    とを特徴とする方法。
  4. 【請求項4】請求項3に記載の方法において、前記選択
    するステップは、前記コンピュータ データベースから
    バイナリ ロケータ属性値を読み出し、OLEソフトウェ
    ア コンポーネントのイニシャル ロケーションを決定
    するステップを含むことを特徴とする方法。
  5. 【請求項5】請求項4に記載の方法において、前記バイ
    ナリ ロケータ属性値は、ユニバーサル名前付け規約フ
    ァイル パスに対応することを特徴とする方法。
  6. 【請求項6】請求項4に記載の方法において、前記バイ
    ナリ ロケータ属性値は、OLEバイナリ オブジェクト
    を含むストリームに対応することを特徴とする方法。
  7. 【請求項7】請求項1に記載の方法において、前記アク
    セスするステップは、ネットワーク オペレーティング
    ・システムによって管理される階層的同期パーティショ
    ン データベースにアクセスするステップを含むことを
    特徴とする方法。
  8. 【請求項8】請求項1に記載の方法において、前記アク
    セスするステップはディレクトリ サービス データベ
    ースにアクセスするステップを含むことを特徴とする方
    法。
  9. 【請求項9】請求項1に記載の方法において、前記選択
    するステップは、サーバ上に常駐するソフトウェア コ
    ンポーネントを選択するステップを含むことを特徴とす
    る方法。
  10. 【請求項10】請求項1に記載の方法において、前記更
    新するステップの前に前記選択されたソフトウェア コ
    ンポーネントの少なくとも一部を前記ネットワークを通
    じてクライアント コンピュータへ転送するステップを
    含むことを特徴とする方法。
  11. 【請求項11】請求項10に記載の方法において、前記ト
    ランスファするステップは、ハイパーテキスト マーク
    アップ ランゲージ リンクによって指定されるロケー
    ションから転送することを特徴とする方法。
  12. 【請求項12】請求項10に記載の方法において、前記転
    送するステップは、ユニバーサル ソース ロケータに
    よって指定されるロケーションから転送することを特徴
    とする方法。
  13. 【請求項13】請求項10に記載の方法において、前記転
    送するステップは前記ソフトウェア コンポーネントの
    インターフェースの少なくとも一部を前記ネットワーク
    を通じて転送することを特徴とする方法。
  14. 【請求項14】請求項10に記載の方法において、前記ト
    ランスファするステップは、前記ソフトウェア コンポ
    ーネントのバイナリ オブジェクトを前記ネットワーク
    を通じて転送することを特徴とする方法。
  15. 【請求項15】請求項1に記載の方法において、前記ア
    クセスするステップはインターネット検索エンジン コ
    ンピュータ データベースにアクセスするステップを含
    むことを特徴とする方法。
  16. 【請求項16】請求項1に記載の方法において、さら
    に、前記コンピュータ データベースからライセンシン
    グ属性を読み出すステップを含むことを特徴とする方
    法。
  17. 【請求項17】請求項1に記載の方法において、さら
    に、前記コンピュータ データベースからアクセス コ
    ントロール属性を読み出すステップを含むことを特徴と
    する方法。
JP09503354A 1995-06-14 1996-06-13 グローバルにディストリビュートされたソフトウェア・コンポーネントを管理するための方法 Expired - Lifetime JP3083853B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US20095P 1995-06-14 1995-06-14
US60/000,200 1995-06-14
US361595P 1995-09-12 1995-09-12
US60/003,615 1995-09-12
US08/576,647 US5761499A (en) 1995-12-21 1995-12-21 Method for managing globally distributed software components
US576,647 1995-12-21
US08/576,647 1995-12-21
PCT/US1996/010340 WO1997000475A1 (en) 1995-06-14 1996-06-13 Method for managing globally distributed software components

Publications (2)

Publication Number Publication Date
JPH11502963A JPH11502963A (ja) 1999-03-09
JP3083853B2 true JP3083853B2 (ja) 2000-09-04

Family

ID=27356620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09503354A Expired - Lifetime JP3083853B2 (ja) 1995-06-14 1996-06-13 グローバルにディストリビュートされたソフトウェア・コンポーネントを管理するための方法

Country Status (6)

Country Link
EP (1) EP0827607B1 (ja)
JP (1) JP3083853B2 (ja)
AU (1) AU6177696A (ja)
CA (1) CA2223933C (ja)
DE (1) DE69601868T2 (ja)
WO (1) WO1997000475A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835914A (en) * 1997-02-18 1998-11-10 Wall Data Incorporated Method for preserving and reusing software objects associated with web pages
SE9701895L (sv) * 1997-05-21 1998-11-22 Ericsson Telefon Ab L M Metod och anordning för datorsystem
CN1068746C (zh) * 1997-07-23 2001-07-18 全友电脑股份有限公司 具有连接国际互联网接口的图像输入装置
EP0896471A1 (en) * 1997-08-04 1999-02-10 Microtek International, Inc. Image input device with network interface connection
US6192518B1 (en) 1998-01-22 2001-02-20 Mis Only, Inc. Method for distributing software over network links via electronic mail
US6484214B1 (en) 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
US6834388B1 (en) 1998-03-13 2004-12-21 Iconics, Inc. Process control
US6965999B2 (en) 1998-05-01 2005-11-15 Microsoft Corporation Intelligent trust management method and system
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
AU1115700A (en) 1998-10-16 2000-05-08 Iconics, Inc. Process control
AT412131B (de) * 1998-11-24 2004-09-27 Automationx Software For Ind A Automatisierungssystem zur lösung einer prozesstechnischen aufgabenstellung und verfahren hierzu
US7017116B2 (en) 1999-01-06 2006-03-21 Iconics, Inc. Graphical human-machine interface on a portable device
ATE221681T1 (de) * 1999-02-25 2002-08-15 Siemens Energy & Automat Verfahren, gerät, und hergestellter gegenstand für beinamen
WO2000062479A2 (en) * 1999-04-09 2000-10-19 Sony Electronics Inc. System and method for maintaining fully-replicated registries in an electronic network
EP1124183A1 (en) * 2000-02-10 2001-08-16 S.A. Solventas Method for managing globally distributed software components
WO2001075677A1 (en) * 2000-04-04 2001-10-11 Goahead Software Inc. Constructing a component management database for managing roles using a directed graph
US7568218B2 (en) 2002-10-31 2009-07-28 Microsoft Corporation Selective cross-realm authentication
US7181521B2 (en) * 2003-03-21 2007-02-20 Intel Corporation Method and system for selecting a local registry master from among networked mobile devices based at least in part on abilities of the mobile devices
US8407206B2 (en) * 2005-05-16 2013-03-26 Microsoft Corporation Storing results related to requests for software development services
CN100357889C (zh) * 2006-08-03 2007-12-26 上海科泰世纪科技有限公司 以类为单位的远程构件生命周期的管理方法
GB2443846B (en) 2006-11-15 2011-12-07 Joseph Timothy Poole Computing system
US8925034B1 (en) 2009-06-30 2014-12-30 Symantec Corporation Data protection requirements specification and migration
US8387047B1 (en) 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
US8352937B2 (en) 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8090744B1 (en) 2009-08-26 2012-01-03 Symantec Operating Corporation Method and apparatus for determining compatibility between a virtualized application and a base environment
US8473444B1 (en) 2009-08-28 2013-06-25 Symantec Corporation Management of actions in multiple virtual and non-virtual environments
US8438555B1 (en) 2009-08-31 2013-05-07 Symantec Corporation Method of using an encapsulated data signature for virtualization layer activation
US8458310B1 (en) 2009-09-14 2013-06-04 Symantec Corporation Low bandwidth streaming of application upgrades
US8566297B1 (en) 2010-01-14 2013-10-22 Symantec Corporation Method to spoof data formats from image backups
US8290912B1 (en) 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
US8495625B1 (en) 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
US9880776B1 (en) 2013-02-22 2018-01-30 Veritas Technologies Llc Content-driven data protection method for multiple storage devices

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
"ソフト部品化に基づく新たな稼働環境構築へ",日経オープンシステム,1994年1月(No.10),pp.143−150
Lewis ;T.G.,"Where is Client/Server Software Headed?",Computer,Vol.28,No.4(1995年4月)、pp.49−55
Orfali ;R.,"Client/Server with Distributed Objects.",BYTE,1995年4月号(Vol.20,No.4),pp.151−152,154,156,158−160,162
Pleas ;K.,"Extending the Reach of OLE",BYTE,1994年11月号(Vol.19,No.11),pp.199−200,202,204,206
Udell ;J.,"10億のユーザ/デバイス接続を目指すNovell",日経バイト,1995年5月号,pp.215−226(原著:Jon Udell,"Novell’s Campaign",BYTE,1995/2,pp.42−64)
Udell ;J.,"オブジェクト指向の新展開 コンポーネントウエア",日経バイト,1994年7月号,pp.277−289(原著:BYTE誌より)
Wayner;.p,"Objects on the March",BYTE,1994年1月号(Vol.19,No.1),pp.139−140,142,144,148,150

Also Published As

Publication number Publication date
AU6177696A (en) 1997-01-15
CA2223933C (en) 2001-02-06
CA2223933A1 (en) 1997-01-03
JPH11502963A (ja) 1999-03-09
DE69601868D1 (de) 1999-04-29
EP0827607A1 (en) 1998-03-11
DE69601868T2 (de) 1999-08-05
WO1997000475A1 (en) 1997-01-03
EP0827607B1 (en) 1999-03-24

Similar Documents

Publication Publication Date Title
JP3083853B2 (ja) グローバルにディストリビュートされたソフトウェア・コンポーネントを管理するための方法
US5761499A (en) Method for managing globally distributed software components
US6834284B2 (en) Process and system for providing name service scoping behavior in java object-oriented environment
US6769032B1 (en) Augmented processing of information objects in a distributed messaging framework in a computer network
US6636886B1 (en) Publish-subscribe architecture using information objects in a computer network
US6802061B1 (en) Automatic software downloading from a computer network
US5689701A (en) System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US5857197A (en) System and method for accessing data stores as objects
US5692180A (en) Object-oriented cell directory database for a distributed computing environment
US6347398B1 (en) Automatic software downloading from a computer network
EP0605959B1 (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US5946685A (en) Global mount mechanism used in maintaining a global name space utilizing a distributed locking mechanism
US6567846B1 (en) Extensible user interface for a distributed messaging framework in a computer network
US6941552B1 (en) Method and apparatus to retain applet security privileges outside of the Java virtual machine
KR20060050608A (ko) 데이터 공유 시스템, 방법 및 소프트웨어 툴
JPH0683595A (ja) 永続的及び過渡的オブジェクトのバージョンと構成を管理する機能を提供する方法と装置
Schill et al. DC++: distributed object-oriented system support on top of OSF DCE
US6745203B1 (en) User interface for a distributed messaging framework
WO2002001388A2 (en) Portal server that provides a customizable user interface for access to computer networks
Powers Developing ASP components
EP1124183A1 (en) Method for managing globally distributed software components
WO2004107162A1 (en) Dynamic object-driven database manipulation and mapping system
JP2000505921A (ja) 分散オペレーティング・システム
WO2002041187A1 (en) Dynamic object-driven database manipulation and mapping system
Pierce et al. Application web services

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080630

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130630

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term