JPH10510934A - 包括的に唯一のオブジェクト識別を生成するためのシステム - Google Patents

包括的に唯一のオブジェクト識別を生成するためのシステム

Info

Publication number
JPH10510934A
JPH10510934A JP7530265A JP53026595A JPH10510934A JP H10510934 A JPH10510934 A JP H10510934A JP 7530265 A JP7530265 A JP 7530265A JP 53026595 A JP53026595 A JP 53026595A JP H10510934 A JPH10510934 A JP H10510934A
Authority
JP
Japan
Prior art keywords
identifier
range
customer
oid
globally unique
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
JP7530265A
Other languages
English (en)
Other versions
JP3689713B2 (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 JPH10510934A publication Critical patent/JPH10510934A/ja
Application granted granted Critical
Publication of JP3689713B2 publication Critical patent/JP3689713B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 分散形オブジェクト指向データベース(8)の中のオブジェクトのために、包括的に唯一の識別子を生成するためのシステム。一つの実施兄弟においては、このシステムは通信網(10)全体を通してオブジェクトのための包括的に唯一の識別子を提供するサーバープロセス(26)を実行するプロセッサー(16)に対してこの通信網(10)を用いて接続されている少なくとも2基のプロセッサー(12、14)を含んで成る通信網(10)上の各プロセッサー(12、14)は、単数又は複数の顧客プロセス(18、20、22、24)を実行し、その各々がデータベース(8)に対するトランザクションを走行させることができる。このような各々の顧客プロセス(18、20、22、24)は、サーバープロセス(26)に対して、1つの要求を伝送し、このサーバープロセスは、その顧客プロセス(18、20、22、24)が、自ら作成中のオブジェクトについての包括的に唯一のオブジェクト識別子を要求した時点で、包括的に結う一のオブジェクト識別子を提供する。この要求に応えて、包括的に唯一の識別子を提供するサーバー(26)は、要求している顧客プロセス(18、20、22、24)に対して、1レンジの包括的に唯一のオブジェクト識別子を伝送する。次に、要求している顧客プロセス(18、20、22、24)は、自ら作成中のオブジェクトに対しオブジェクト識別子を割り当てる。作成されたオブジェクトに対する包括的に唯一のオブジェクト識別子の割当が完了した時点で、要求している顧客プロセス(18、20、22、24)は、次に未使用の包括的に唯一のオブジェクト識別子があればそれを全てサーバー(26)に戻し、その他の顧客プロセス(18、20、22、24)が使用できるようにする。

Description

【発明の詳細な説明】 発明の名称 包括的に唯一のオブジェクト識別を生成するためのシステム 発明の分野 本発明は、オブジェクト指向データベースの分野、より特定的に言うと 、分散形オブジェクト指向データベースシステムのための包括的に唯一のオブジ ェクト識別子の生成に関する。 発明の背景 あらゆるオブジェクト指向データベース(ODB)にとって重要なのは 、持続的オブジェクトアイデンティティという概念である。 最も一般的な意味 では、オブジェクトアイデンティティというのは、その他のオブジェクトが他の 点では類似したものである場合でさえ、1つのオブジェクトをその他すべてのオ ブジェクトから区別するため、及びそのオブジェクトを磁気ディスクといったよ うな持続的記憶装置から検索しそれをコンピューターメモリーの中に移送するた めに使用できるオブジェクトの譲りがたい特性のことである。 理論的には、いかなるビット・パターンでも、それがその他のいずれか のオブジェクトのアイデンティティを実行するのに使用されたことがない限りに おいて、オブジェクト識別子(OID)を実行するために利用することができる 。従って、唯一のビット・パターンを生成する機械またはシステムは、同じビッ ト・パターンが2度生成されたことがないということを条件として、持続的OI Dを提供するのに充分なものとなる。実際には、性能を考慮して出来る限り小さ く、かつできる限り迅速にOIDを生成するシステムが好まれる。 多くの顧客プロセスを実行し1つの通信網によって相互接続された多数 プロセサーから成る分散形計算システムにおいては、各々の顧客プロセスが、す べての顧客プロセスを横断して包括的に唯一のものであるOIDを確実に局所的 に指定できるようにする上で特別な挑戦がなされている。この挑戦に対する具体 的なアプローチとして、標準的に3つのものが試みられてきた。 第1のアプローチでは、各々の顧客プロセスは独立して包括的に唯一の OIDを生成する。1つの標準的な技術は、日付け−時刻スタンプとプロセッサ ー識別子を連結することによってOIDを形成することである。通信網上の各々 プロセッサーは、(ネットワーク通信を目的とする)唯一の識別子を有しており 、日付け−時刻スタンプは、単調に増加することから、作成された各々のOID には、唯一のものであるという保証がある。もう1つのアプローチでは、各々の 顧客プロセスは独立して局所的に唯一のOIDを生成し、これらのOIDは次に 、中央サーバーといった独立した機関によって(必要とあらば)包括的に唯一の OIDへと変更される。この問題に対する第3のアプローチにおいては、各々の 顧客プロセスは、1つのオブジェクトを作成する必要がある毎に包括的に唯一の OIDを生成するように中央サーバーといったような独立した機関に要請する。 これらのアプローチの各々は、性能上のトレードオフを有している。第 1のアプローチは、包括的に唯一のID(GUIDS)を局所的に生成すること から、その他のアプローチがもたらすサーバー又は調整機関とのネットワーク通 信の費用を節約する。しかしながら、この通信の欠如によってもたらされる対価 は、このアプローチにおいてOIDが大きいものとなる傾向を持つということに ある。OIDが大きくなると、より大きいディスク記憶装置が必要となり、又、 読みとり、書き込み及び処理に必要な時間も長くなる。 第2のアプローチは、局所的に唯一のOID(LUID)を生成し、こ れらのLUIDが、認知できるほどに包括的に唯一のものであった場合には、こ のアプローチは優れた性能を発揮する。しかしながら、LUIDをGUIDに変 換または、再マッピングしなければならない場合に併発する環境における問題点 が発生する。この変換のコストは、新たに作成されたオブジェクトを参照するす べてのオブジェクトが、LUIDからGUIDへと変換された参照をも有してい なくてはならないことから、新たに作成されたオブジェクトの数に正比例し、し かもはるかに大きいものとなる。 第3のアプローチでは、第2のアプローチの変換費用及び第1のアプローチの 大きいGUIDを両方とも回避できる。しかしながらこの方法に付随する性能上 の問題点は、その他のアプローチのいずれの場合よりも頻繁であるサーバー又は 調整機関との通信の結果としてもたらされる。このような頻繁な通信は大量のネ ットワーク・トラフィックの存在下で性能を非常に急速に劣化させる。 従って、必要とされているは、局所的に生成される識別子の大きなサイズが必 要とされることなく、識別子変換により性能が劣化するこたなく、又、識別サー バーの使用に標準的に随伴する過度の通信網トラフィック無しに、包括的に唯一 のオブジェクト識別子を生成するようなシステムである。 発明の要約 本発明は、分散形オブジェクト指向データーベースの中のオブジェクトのため に包括的に唯一の識別子を生成するためのシステムに関する。1つの実施形態で は、システムは各々単数または、複数の顧客プロセスを実行でき、かつ1つの通 信網を通して通信網全体にわたるオブジェクトのための包括的に唯一の識別子を 提供するサーバーに各々接続されていいる少なくとも2基のプロセッサを含んで 成る。 通信網上の各々の顧客プロセスは、サーバーに対して1つの要求を伝送するこ とができ、このサーバーは、顧客プロセスが自ら作成中のオブジェクトを識別す るための包括的に唯一のオブジェクト識別子を要求した時点で、包括的に唯一の 識別子を提供する。この要求に応えてサーバーは要求している顧客プロセスに対 し、1レンジの包括的に唯一のオブジェクト識別子を伝送する。 要求している顧客プロセスは、次に、この包括的に唯一のオブジェクト識別子 のレンジからオブジェクト識別子を割り当てる。要求している顧客プロセスは、 自ら作成したオブジェクトに対する包括的に唯一のオブジェクト識別子の割り当 てが完了した時点で、次に、未使用の包括的に唯一のオブジェクト識別子をサー バーまで戻し、その他の顧客プロセスのために使用できるようにする。 図面の説明 本発明は、添付のクレームの中で特定的に指摘されている。本発明の上記の及 びその他の利点は、添付図面と合わせて以下の記述を参照することにより、より よく理解できることだろう。なお、図面中、 図1は、本発明のシステムの一実施形態のブロックダイヤグラムである 。 図2は、図1の本発明の包括的に唯一の識別サーバーと顧客プロセスの 間の通信のブロックダイヤグラムである。 図3は、本発明のオブジェクト識別子スペースのブロックダイヤグラム である。 図4は、図2に示されているプロセス・サーバー通信の間の包括的に唯 一の識別子スペースのブロックダイヤグラムである。 図5は、顧客プロセスとサーバープロセスの間の包括的に唯一のオブジ ェクト識別子の作成及び移送を描いた、図1のシステムの1つの実施形態の流れ 図である。そして、 図6は、顧客プロセスとサーバープロセスの間のパラメータデータの移 送を描いた、図1のシステムのもう1つの実施形態の流れ図である。 発明の詳細な説明 図1を参照すると、分散形オブジェクト指向データベースシステム(O DB)8は、1つの実施形態において、少なくとも3基のプロセッサーに12、 14及び16を接続する通信網10を内含する。この実施形態において、プロセ ッサ12及び14は、各々それぞれ2つの異なる顧客プロセス18、22及び2 0、24を実行している。これらの顧客プロセス18、20、22、24は、単 一のアプリケーションプログラムの異なる連結であってもよいし、或いは異なる アプリケーションプログラムであってもよい。ここで論述するにあたっては、顧 客プロセス18、20、22、24は、同時に走行させており、各々がオブジェ クトを生成し従って、包括的に唯一でなくてはならないOIDを使用している。 プロセッサー16は、通信網上のオブジェクトのための包括的に唯一の 識別子を提供するサーバープロセス26を実行している。サーバープロセス26 は、多くの機能を行うことができるが、本発明ではサーバープロセス26は少な くとも包括的に唯一のOIDの生成を援助しなくてはならない。以下ではサーバ ープロセス26をGUIDサーバー26とも呼んでいる。さらにGUIDサーバ ープロセス26を実行しているプロセッサー16は、その他の関連性の無いプロ セス28を走行していってもよく、GUID生成タスク専用である必要はない。 簡単に概覧して、図2を参照すると、性能を改善するために、分散形オブジェ クト指向データベースシステム8は、包括的に唯一のオブジェクト識別子が要求 される毎にGUIDサーバー26と通信するのに顧客プロセス18、20、22 、24を必要としない。その代わり、各々の顧客プロセス18、20、22、2 4は、頻繁にではなくGUIDサーバー26からの1レンジの包括的に唯一のオ ブジェクト識別子を要求することになる。 顧客プロセス18、20、22、24がGUIDサーバー26から1レンジの 包括的に唯一のオブジェクト識別子を要求する毎に、顧客プロセス18、20、 22、24は、1ブロックの包括的に唯一のオブジェクト識別子を予約する。( ステップ50)一定の与えられた顧客プロセス(例えば18)が、1レンジの予 約済みOIDを有する間その他のいかなる顧客プロセス(例えば20)もそのレ ンジ内のOIDを使用することが出来ない。その他の顧客プロセス18、20、 22、24は各々それ自身のレンジを代わりに予約しなくてはならない。こうし てどの2つの顧客プロセス18、20、22、24もそれが生成するオブジェク トに対して、同じOIDを指定できないということが保証されることになり、か くして、包括的な唯一性が確保される。 1レンジのOIDを予約の後、顧客プロセス(例えば18)は、このOIDレ ンジからのOIDと、自らが生成したオブジェクトに対し、局所的に割り当てる ことになる。(ステップ52) ひとつの顧客プロセス18、20、22、24は、OIDが必要と成る毎にG UIDサーバー26と通信する必要がない、という事実から、このOID生成方 法の性能利点は、増大する。実際、GUIDサーバー26に対する付加的な要求 は、顧客プロセス18、20、22、24が自ら以前に予約したすべてのOID を使い果たした時点で初めて発生することになる。 顧客プロセス18が、自ら生成しつつあるオブジェクトに対し、OIDを割り 当てているのと同時に、もう1つの顧客プロセス20は包括的に唯一のオブジェ クト識別子の異なる1ブロックを予約している(ステップ54)。顧客プロセス 20がGUIDサーバー26からそのOIDブロックをひとたび受理したならば 、このプロセスもまた自ら作成しつつあるオブジェクトに対して、OIDを割り 当 て始めることができる(ステップ56)。 顧客プロセス18は、自ら作成しつつあるオブジェクトに対するOIDの割り 当てを終了した時点でGUIDサーバー26と再び通信して、予約済みのレンジ からあらゆる未使用のOIDを戻す(ステップ58)。標準的には、実際に顧客 プロセス18、20、22、24がオブジェクトに対し、割り当てるOIDの数 は、この顧客プロセス18、20、22、24による使用のために予約された数 よりもはるかに少ないものとなる。顧客プロセス18が以前に自ら予約したOI Dレンジの未使用部分を戻した後、GUIDサーバー26は、自由に未使用OI Dをどの顧客プロセス18、20、22、24にでも提供できる(ステップ60 )。 本発明の技術は、同様に同じプロセッサ上で多くのODB顧客が実行される実 施形態において、唯一のOIDを生成するためにも使用することができる。この 実施形態では、顧客プロセス及びサーバープロセスは共有のメモリーを通して通 信することができる。このような実施形態における本発明の方法による性能の改 善は、1つの通信網を内蔵する実施形態の場合ほど大きいものではない。 さらに詳細に、図3も参照してみるとここで示されている実施形態においては 、OIDスペース80と呼ばれている1つのオブジェクトを用いるGUIDサー バー26によって包括的に唯一のOIDの生成が調整されている。OIDスペー スオブジェクトを用いることの利点は、このオブジェクトにより異なるプロセッ サ12、14上で同時に実行中の多くの顧客プロセス18、20、22、24が 、重複したOIDを生成する危険性なく新しいオブジェクト識別子をもつ新しい オブジェクトを作成できるという点にある。 1つの実施形態において、本発明は0から231ー1までの順次整数をOIDを 形成するビットパターン内にマッピングするのにOIDスペースオブジェクト8 0を使用する。従ってこのスペース内の有効なOIDの数は、そのシーケンス内 の整数の数と等しい。この結果、OIDスペースオブジェクト80の濃度と呼ば れるものがもたらされる。 GUIDサーバー26は、OIDスペースオブジェクト80内の一定数のオー バーラップしないOIDレンジ(1〜n)82、84、86、88、90へと 全ての有効OIDのスペースを区分する。これらはオブジェクト識別子が要求さ れた時点で顧客プロセス18、20、22、24によって予約されるレンジであ る。どの時点においても一定の与えられたレンジ(例えばレンジ 1 82)は 、最大1つの顧客プロセス18、20、22、24によって予約可能である。こ のことはすなわちOIDスペースレンジ82、84、86、88、90の数がオ ブジェクトを生成中でありうる。従って同時にOIDを要求することになる顧客 プロセス18、20、22、24の最大数に等しい、ということを意味している 。 1つの顧客プロセス18、20、22、24は一般に、オブジェクトを生成中 であるトランザクションの接続時間中、1つのOIDレンジを予約する。このト ランザクションの終わりで顧客プロセスが、OIDの割り当てを終了した時点で 顧客プロセス18、20、22、24は自ら予約した各レンジについて、自らが 実際に割り当てた最高のOID92、94、96、98を記録する。かくして、 予約済みレンジの未使用部分は、次にGUIDサーバー26に戻されて、その後 の時点で同じまたは、その他のプロセスが使用できるようになる。顧客プロセス 18、20、22、24が、自ら予約したレンジ内のいずれのOIDも使用しな かった場合この顧客プロセスは単に予約を取り消す。 OIDスペースオブジェクト80の濃度及び区分レンジの数は、両方ともOI Dスペースオブジェクト80が生成された時点で特定される。濃度もパーティシ ョン数の両方ともいかなる自然数であってもよいが、(ただしパーティションの 数は濃度以下であることを条件とする)、ここで示されている実施形態は両方の 数を2の累乗であるよう制限している。こうして、スペースを等しいレンジに分 割でき、又ビットシフトオペレーションによって各レンジの最初と最後の迅速な 計算が可能となる。 図示されている実施形態において、OIDスペースオブジェクト80は、以下 で記述する3つのスペースパラメータ(Number-of-OIDs,Number-of-Partitions,N umber-of-Partitions-Created)、及びHigh-Water-Vector81を含むデータ構造で ある。OIDスペースオブジェクト80は、231という濃度と27のパーティシ ョンを持つ。かくして、ここに描かれているOIDスペースオブジェクト80は 、1レンジあたり約1600万のOIDを伴う128レンジ82、84、86、 8 8、90へと区分された約20億のOIDを割り当てることが出来る。各レンジ 82、84、86、88、90は、開始OID100、102、104、106 、110と最終OIDを有する、最後のものを除くすべてのレンジについて、1 つのレンジの最後のOIDは、次に続くレンジの開始OID102、104、1 06、108、110よりも1つ少ないOIDである。図3は、各レンジ100 、102、104、106、108、110の開始数値を示している。各レンジ 82、84、86、88、90は、割り当てを受けているべきそのレンジ内の最 後のOIDを表す高水位マークの92、94、96、98を有していてよい。 GUIDを生成するためにOIDスペースオブジェクト80を用いることの1 つの複雑さはOIDスペースオブジェクト80がそれ自体包括的に唯一の識別子 をもっていなければならないという点にある、ということにも留意すべきである 。この問題にはいくつかの方法で対処することができる。第1の方法はOIDス ペースオブジェクト80内の1つのOIDをそれ自身に指定することである。か くして、例えばOIDスペースオブジェクト80にしビット例0と指定すると、 第1のパーティションは、その他のパーティションよりも1つ少ないOIDを持 つことになるが、第1のOIDはOIDスペースオブジェクト80に属すること が予め決定されることになる。第2の方法は単に、OIDスペースオブジェクト 80を、それ自体予め予約されたOIDを持ち得るより大きなOIDオブジェク トスペース内の1つのオブジェクトとすることにある。 図4は、GUIDサーバー26と顧客プロセス18及び20(図2に示されて いる通り)の間に複雑化が発生するにつれてのOIDスペースオブジェクト80 ’内の変化を描いている。最初に(ステップ48)OIDスペースオブジェクト 80’は4つのレンジ82’84’86’88’に区分される。レンジ82’8 4’及び86’は、各々OIDを割り当て、かくして表示されている通りの高水 位マーク92’94’及び96’を有する。この例では、レンジ86’が、全レ ンジ86’を包括する高水位マーク96’を有し、従って、それからそれ以上の OIDを割り当てることができない、という点に留意すべきである。換言すると 、レンジ88’にはいかなるOIDも割り当てられておらず、従って、その高水 位マークはその開始点にある。 顧客プロセス18がひとたびGUIDサーバー26と接触し、1レンジのOI Dを予約したならば、前の高水位マーク92’から、終わりまでのレンジ82’ 内のOID130は、予約済みとしてマーキングされる(ステップ50)。プロ セス20がGUIDサーバー26と接触して1レンジのOIDを予約した時点で 異なるレンジ84’内の前の高水位マーク94’から、レンジ84’の終わりま でのOID132は、予約済みとしてマーキングされる(ステッブ54)。顧客 プロセス18がGUIDサーバー26と接触してその予約済みレンジ130の未 使用部分を戻した時点で(ステップ58)、レンジ82’内の高水位マーク92 ’’は、最後に使用されたOIDのレベルまで上昇させられる。新しい高水位マ ーク92’’とレンジ82’の終わりの間のOID134は、この時未予約とし てマーキングされる。この時、顧客プロセス18が、新しいOIDレンジを予約 するべくGUIDサーバー26に対し要求を行った場合(ステップ60)、いず れかの未予約のレンジ(この例では88’)からのOID136を割り当てるこ とができる。 簡単に概覧して図5を参照すると、包括的に唯一の識別子を生成するためのシ ステムの1つの実施形態においては、顧客プロセス18が1つのOIDスペース オブジェクト80を生成し、それを一定数のレンジ82、84、86、88に区 分し、次にOIDオブジェクト80をサーバープロセス26まで移送する(ステ ップ152)。サーバープロセス26はこのとき、OIDスペースオブジェクト 80を記憶し、オブジェクトが一度に複数の顧客プロセス18、20によって修 正されないようにするこのオブジェクトに対するロックを制御する役目を担う。 顧客プロセス18が1つのOIDレンジを予約することを望む場合、顧客プロセ ス18はレンジを要求し(ステップ152)、それに応えてサーバープロセス2 6はOIDスペースオブジェクト80に対するロックを設け、OIDスペースオ ブジェクト80を顧客プロセス18まで移送する(ステップ156)。 顧客プロセス18はこのときOIDのレンジ86を予約する(ステップ158 )。従って顧客プロセス18は、そのレンジの開始を終わりによって区別される 通り、割り当てに利用できるOIDの1つのレンジを有する。この時点で、同時 に発生する他のいかなる顧客プロセスも、顧客プロセス18により予約された レンジ内のOIDを割り当てることはできない。顧客プロセス18は次にオブジ ェクト80をサーバープロセス26まで移送し戻し、サーバープロセスは、ロッ クを解除して(ステップ160)、OIDスペースオブジェクト80に対し、顧 客プロセス18、20、22、24がアクセスできるようにする。このとき、顧 客プロセス18は、この予約済みOIDレンジからのOIDを、それが作成する 各々のオブジェクトに対して割り当てる。 顧客プロセス18がOIDを割り当てている間、顧客プロセス20はOIDレ ンジを要求し(ステップ162)、サーバープロセス26は再びロックを設ける 。その後、サーバープロセス26は、OIDスペースオブジェクト80を顧客プ ロセス20に移送する(ステップ164)。次に顧客プロセス20は、OIDレ ンジ82を予約し(ステップ166)、OIDスペースオブジェクト80サーバ ープロセス26までに戻し、これがロックを解除する(ステップ168)。 顧客プロセス18がその未使用のOIDを解除することを望む場合、こ のプロセスはサーバープロセス26に対して要求を送り(ステップ170)、こ のサーバープロセスはロックを設けて、OIDスペースオブジェクト80を顧客 プロセス18へと移送する(ステップ172)。顧客プロセス18が未使用OI Dを解放し高水位マーク180をリセットした時点で(ステップ174)、OI Dスペースオブジェクト80は再びサーバープロセス26(ステップ176)ま で移送され、これがロックを解除する。未使用のOIDの解除は、顧客がその予 約済みレンジからのOIDの割り当てを完了した後に解放される。この完了は通 常、顧客のトランザクションが完了した時点(ディスクにトランザクションを引 き渡すか又は、放棄することによって)で、あるいは稀ではあるが顧客がその予 約済みレンジを使い果たし新しいレンジを予約しなければならない時点で起こる 。 予約したレンジを戻す手段としては2つある、すなわちサーバーに対し て最後に使用されたOIDを伝送すること、そして予約を取り消すことである。 前者はより一般的なものであり、顧客が1つのオブジェクトに対して予約済みレ ンジからのすくなくとも1つのOID割り当てた時点で起こる。予約取り消しオ プションは顧客がそのレンジからのいかなるOIDも割り当てしなかった場合又 は、そのトランザクションを放棄する意図がある場合のいずれかにおいて使用さ れる。未使用OIDを戻す2つの手段については、以下でさらに詳しく記述する 。 ここで図6を参照すると、包括的に唯一の識別子を生成するためのシ ステムの一変形実施形態においては、サーバープロセス26は、1つのOIDス ペースオブジェクト80を作成し、それを一定数のレンジ82、84,86,8 8へと区分する(ステップ180)。サーバープロセス26は、OIDスペース オブシェクトを記憶し維持する責を負う。 顧客プロセス18が1つのOIDレンジを予約することを望む場合、顧客プロ セス18は、1つのレンジを要求し(ステップ182)、それに応じて、サーバ ープロセス26は、1つのOIDレンジを予約し、(ステップ184)、予約済 みレンジの下部および上部境界にあるOIDを顧客プロセス18まで移送する( ステップ186)。従って、顧客プロセス18は、レンジの開始及び終わりによ って区別されている、割り当てに利用できる1つのOIDレンジを持つ。この時 点で、同時に発生する、その他のいかなる顧客プロセス20も顧客プロセス18 により予約されたレンジ内のOIDを割り当てることができない。次に顧客プロ セス18は、このOIDレンジからの1つのOIDを、それが作成する各々のオ ブジェクトに対して割り当てる。 その顧客プロセス18がオブジェクトに対しOIDを割り当てているのと同時 に、プロセス20は、1つのOIDレンジを要求する(ステッブ188)。サー バープロセス26は、1つのOIDレンジを予約し(ステップ190)、予約済 みレンジの下部および上部境界OIDを顧客プロセス20まで移送する(ステッ プ192)。 顧客プロセス18がその未使用OIDを解放することを望む場合、このプロセ ス18は、サーバープセス26に対して、それが使用した最後のOIDを含む要 求を送る。顧客プロセスが、その予約済みレンジからのOIDの割り当てを完了 した後、未使用のOIDの解放が開始される。ここでも又、この完了は、顧客の トランザクションが完了した時点か又は、希ではあるが、顧客プロセスがその完 了済みレンジを使い果たし、新しいレンジを予約しなければならない時点で起こ る。 ここでも又、予約済みレンジを戻す手段としては2つある。すなわち、サーバ ーに対して、最後に使用したOIDを伝送すること、そして予約を取り消すこと である。前者はより一般的なものであり、顧客プロセスがデイスクに引き渡した いオブジェクトに対し予約済みレンジからの少なくとも1つのOIDを割り当て た場合に起こる。予約取り消しオプションは、顧客がそのレンジからのOIDを 全く割り当てなかったとき又は、そのトランザクションの放棄を意図している場 合のいずれかにおいて使用される。予約済みレンジがひとたび戻されたならば、 サーバープロセス26は、高水位マーク180´をリセットし(ステップ196 )、レンジ内の残りのOIDを使用できるように解放する。いずれの実施形態にも共通の関数 これらの実施形態のいずれかを実施するために、下記の関数が顧客プロセス1 8、20、22、24(第1の実施形態用)或いはサーバープロセス26(変形 形態用)のいずれかによって実行される。OIDオブジェクトを作成し区分する [Create OID Space Object(Number of OID Bits、Number of Partition Bits)]と いう形式の、Create OID Space Objectと称される関数 は、一つのOIDスペースを作成して当該スペースを一定数のレンジに区分する 。Number of OID Bitsのパラメータは、OIDを形成するビ ット数を規定する。一実施形態において、一つのOID内のビット数は省略時解 釈により31に設定され、従ってOIDスペースは231(−20億)のOIDを 含むことになる。この省略時値は、作成されたOIDが省略時解釈によって32 ビット長の単語に確実に適合するようにしている。しかしながら、OIDのサイ ズに関して理論的な上限は無い。OIDのサイズに関しては、より低い制限を設 けることも同様に可能であることにも留意しなければならない。一つの実施形態 においては、Number of OID Bitsの数値で8ビット未満のも のは、8ビットに切り上げられている。 Number of Partition Bitsパラメータは、各々1つ のOIDレンジを同時に予約できる顧客プロセスの最大数を規定し、従ってOI Dスペースオプジェクト80内のパーティション数に等しい。1つの実施形態に おいては、省略時値は128のパーティションを許容し、従って最大で128の 顧客プロセスが各々1つのOIDレンジを予約することができる。 更に、OIDスペースオブジェクト80を作成した結果として、1つのベクト ルアレーであるHigh Water Vetorと称されるデータ構造が作成 されることになる。当該ベクトルへの各入力は、1つの特定のパーティション又 はOIDレンジを表している。 従って前述の省略時例では、ベクトルの長さは128のロケーション即ち;1 28のパーティション各々について1つのロケーションということになる。ベク トル内の一定の与えられたロケーション内に記憶された数字は、その入力ロケー ションに対応するレンジから割り当てられた現行で最大のOIDである。一つの 実施形態においては、ベクトル内の各ロケーションの高位で最も有意なビット( 例えば31ビットのOIDについてはビット32)は、「使用中」インジケータ として解釈される。即ち、このビットが(1)に設定されると、そのロケーショ ンによって代表されるOIDレンジは予約済みである。ビットが0であるならば 、レンジは予約されるべく利用可能である。一つの変形実施形態では、OIDレ ンジ当たり1つのこれらのビットフラグは、別々のベクトル内に記憶される。 下記の疑似コードは、この関数の実施の一つの実施形態を実証している。 //最大及び最小値を規定する MUXIMUM OID SIZEを31と定める//省略時最大OIDサ イズ MINIMUM OID SIZEを8と定める//省略時最小OIDサイ ズ //省略時値を使用するか否か決定する NUMBER OF OIDSをNumber of OID Bits及 びMUXIMUM OID SIZEの最小に設定する NUMBER OF OIDSをNUMBER OF OID Bits及 びMINIMUM OID SIZEの最大に設定する NUMBER OF PARTITIONSを NUMBER OF PERTITIONS BITS及びMUXIMUM OID SIZE の最大に設定する NUMBER OF PERTITIONS CREATEDを 2NUMBER_OF_PERTITI0NSに設定する (Number_of_OIDs+1)×(Number of Part itions Created)ビットを保持するようにHigh Water Vectorを割り当てる //各パーティションについて使用された最後のOIDに高水位マークを初期 化し、これはHigh Water Vector内の各スロットについて低位 ビット内で0を有することになる。 begin−for スロットでの値をスロット*2(NUMBER_OF_CIDS・NUMBER_OF_PERTITI0NS) に設定する end−for パラメータ(Number of OIDs、 Number of Par tition、Number of Partition Created)は 、OIDスペースオブジェクト80のデータ構造の属性である(図3)。パーティションを予約する [Reserve Partition(Beginning OID、En ding OID)]の形式のReserve Partitionと称される 関数は、オブジェクト識別子の1つのレンジを予約する。一つの実施形態では、 この関数は、予約に成功した場合はTRUEを戻し、いずれのレンジも予約不可 能であった場合はFALSEを戻すブール関数である。FALSEの戻しは、全 てのパーティションが使用中の場合か、或いは使用中でないものが既に使い果た されたいた場合にのみ発生する。予約に成功した場合、この関数は、出力パラメ ータBeginning OID及びEnding OIDを、予約されたパー ティション又はレンジ内の開始及び終了OIDそれぞれに設定する。この関数が 顧客18、20、22、24によって実行された場合、ロックを解除してOID スペースオブジェクト80を他のユーザーが利用できるようにするため、この関 数の直後に、OIDスペースオブジェクト80はサーバープロセス26へと戻さ れ。 下記の疑似コードはこの関数の実施の一つの形態を実証している: 各パーティションについて begin−for 開始しない場合(パーティションが使い果たされている成いはパーティシ ョンは予約済み) 次に begin−then Beginning OIDをパーティションの高水位マーク+1に設 定する Ending OIDを次のパーティション開始マイナス1に設定する パーティションを予約済みであるとしてマークする trueを戻す end−then end−for falseを戻す 予約を取り消す [Canceleservation(An OID In Reser ved range)]の形式のCancel Reservationと称さ れる関数は、An OID In Reserved Rengeパラメータ内 で引用されているOIDを含むOIDのレンジについての予約を取り消す。一つ の実施形態では、この関数は、取り消しに成功した場合はTRUEを戻し、An OID In Reserved Rengeパラメータ内のOIDが予約済 みレンジ内に無いことが理由で取り消しに失敗した場合はFALSEを戻すブー ル関数である。 ここで記述する第1の実施形態では、この関数を使用することによって、顧客 プロセス18、20、22、24は、顧客プロセス18、20、22、24から サーバープロセス26にOIDスペースオブジェクト80を転送するのに先立ち 、An OID In Reserved Rengeを含むパーティションが もはや予約されていないことを表示するためにHigh Water Vect or81内の高位ビットをクリアすることができる。ここで記述する第2の実施 形態では、顧客プロセス18、20、22、24によっていかなるOIDも割り 当てられていないことをCancel Reservation関数が表示して いることから、サーバーは高水位マークを更新する必要が無い。但し、An O ID In Reserved Rengeを含むパーティションは未予約とし てマークされる。 下記の疑似コードはこの関数の実施の一つの形態を実証している: An OID In Reserved Rengeを含むパーティション を探す (パーティションが予約済みの)場合には: begin−then 未予約であるものとしてパーティションにマークする trueを戻す end−then falseを戻す新しい高水位マークを設定する [Set New High Water Mark(New High W ater Mark)]形式の、Set New High Water Ma rkと称される関数は、Reserve Partition関数と共に使用す ることを意図されている。New High Water Markパラメータ は、顧客プロセス18、20、22、24によって割り当てられた最後のOID を指定する。 かくして例えば、顧客プロセス18、20、22、24は最初に、Reser ve Partition関数でOIDの一つのレンジを予約し、次に新しいオ ブジェクトが作成された場合に必要に応じてそのレンジからのOIDを割り当て 、そして最後に、トランザクションの最後に割り当てられた最高位のOIDを記 録するためにSet New High Water Markを使用する。関 数が成功裏に完了した時点で、それに続くReserve Partition に対する呼び出しが、前の高水位マークより1だけ大きいものである開始値を戻 す。 下記の疑似コードはこの関数の一つの形態を実証している: New High Water Markを含むパーティションを探す (パーティションが予約済みで、New High Water Mark が前の高水位マークより大きい)場合には: begin−then New High Water Markを思い起こす trueを戻す end−then そうでなければ begin−otherwise falseを戻す end−otherwise高水位マークを位置設定する [Locate High Water Mark(Partition N umber)]形式の、New High Water Mark関数は、特定 されたPartition Number内で割り当てられた最後のOIDを戻 す。この関数は、成る与えられたOIDが既に割り当て済みであるか否かを決定 するためにも同様に利用することができる。ある与えられたOIDがそのそれぞ れのパーティションについての高水位マークよりも上にある場合、それはまだ割 り当てられていない。このOIDが高水位マークより下にある場合、オブジェク トによって現在も利用中であるという保証は無いが、それは既に割り当て済みで ある。 下記の疑似コードはこの関数の実施の一つの形態を実証している: (Partition Numberがパーティションの数より大きい)場合 には: begin−then error end−then Partition NumberについてのHigh Water Ve ctorの内容を戻すレンジ内の最初のOID [Get First OID In Range(Partition N umber)]形式の、Get First OID In Rangeと称さ れる関数は、Partition Numberによって特定されたパーティシ ョンの最初のOIDを戻す。この関数は、それが既に割り当て済みであるか否か に関わらずレンジの最初のOIDが戻されるような形で実行される。Get F irst OID In Rangeの一つの用途は、使用中の全てのOIDを 探すことにあるが、前のパーティションの最後のOIDを探すためにも同様に利 用される。 下記の疑似コードはこの関数の実施の一つの形態を実証している: (Partition Numberがパーティションの数より大きい)場合 次に begin−then error end−then (NUMBER OF OID BITS−NUMBER OF PART ITION BITS)+1ビットによってPartition Number を左にシフトする resultを戻す第1の実施形態に必要とされる付加的関数 第1の実施形態において、顧客プロセス18、20、22、24とサーバープ ロセス26の間でOIDスペースオブジェクト80を移送するには、同時に複数 の顧客プロセス18、20、22、24によってオブジェクト80が変更される のを予防するために、サーバープロエス26がOIDスペースオブジェクト80 上にロックを設けることができる必要がある。オブジェクト80のためのロック を提供する一つの方法は、オブジェクト80を瞬間更新オブジェクト(IUO) とすることによるものである。 瞬間更新オブジェクトは、一度に一つの顧客アプリケーションによってオブジ ェクトに対し変更を加えることが可能であり、これらの変更が一旦完了すると、 現行のトランザクションメカニズムとは無関係に、それらが直ちに他の顧客アプ リケーションに見えるようになるという特性を伴うオブジェクトである。これは 変更を行う顧客のトランザクションが完全でない場合でも、或いは変更を行う顧 客のトランザクションが最終的に放棄された場合でも言えることである。或るO BJECTのIUOとしての処理は、オブジェクト又はオブジェクトのタイプに 固有のものである必要はないことに留意しなければならない。一つの実施形態に おいては、或るオブジェクトは、Instant Update Lock(瞬 間更新ロック)と呼ばれる特別な種類のロックによって施錠されている場合、そ して唯一その場合にのみIUOである。 或る顧客によって行われた更新を他の顧客に直ちに見えるようにすることによ り、IUOは非常に高度の同時性を備えている。個々で記述したOID生成の方 法はこの種の高い同時性を要求する。特に、或る顧客が1つのOIDのレンジを 予約するためにOIDスペースオブジェクト80を修正した場合、他の顧客が修 正されたOIDスペースオブジェクト80を見て同一のレンジを予約することを 避けるものの、直ちに他のレンジを予約することを妨げられないようにするため 、OIDスペースオブジェクト80はIUOとして処理される。 IUOは、複数の顧客が、他の顧客によって既に行われたオブジェクトに対す る修正を見ることができるようにするものの、現在加えられている最終である修 正を複数の顧客が見ることは予防しなければならない。従って、瞬間更新ロック によってOIDスペースオブジェクト80をロックすることには二重の目的があ る。第1に、瞬間更新ロックの存在は、ロックされたオブジェクトをIUOとし て処理するようにサーバープロセスに通知する。第2に、瞬間更新ロックの存在 は、解除されるまで他の何れかの顧客がOIDスペースオブジェクト80を読む ことをも同様に抑止する。 このようなロックの存在は、処理されなければならない付加的な問題点も発生 させる。例えば、顧客アプリケーション1(CA1)及び顧客アプリケーション 2(CA2)と呼ばれる2件の顧客アプリケーションが、瞬間更新ロックを伴う obj1及びobj2と呼ばれる2つのオブジェクトへのアクセスを要求してい ると考えてみよう。ここで、CA1がobj1をロックし、CA2がobj2を ロックしていると仮定する。CA1がここでobj2のロックを試みた時点で、 CA2が既にobj2をロック済みであることから、(上述の通り)これは抑止 されることになる。次にCA2が、obj1をロックしようと試みた時点で、C A1が既にobj1をロック済みであることから、これは抑止されることになる 。かくして両方のアプリケーションは、各々他方がその瞬間更新ロックを解除す るのを待ちながら永遠に抑止される可能性がある。このような(デッドロックと 呼ばれる)状況を回避するために、一つの実施形態は、或る顧客アプリケーショ ンが一つの瞬間更新ロックを取得した時、当該アプリケーションは、それ以外の ロックを取得する前に、その修正を加えロックを解除しなければならないといる ことを要求している。顧客アプリケーションが一つの瞬間更新ロックを保持しな がらロックの取得を試みた場合には、エラー条件が発生する。 サーバープロセスは、各瞬間更新オブジェクトを、リスト中の1つの要素(I UO List Element)として維持する。各IUO List要素に は、一つのオブジェクト(即ち、OIDスペースオプジェクト)の包括的な唯一 の識別子、当該オブジェクト(OIDスペースオプジェクト)のディスク表示に 対するポインタ、OIDスペースオブジェクトが修正されたか否かの表示、そし てロックされた場合には下にあるOIDスペースオブジェクトをロックしたトラ ンザクションに対するポインタが含まれている。各IUO List要素には、 リスト中の次のIUO List要素の引用が含まれている。リストのスタート への静的ポインタが存在する。サーバーの機能 以下のサーバーは、読出し、書込み、コミットおよびアボート、操作による 参照を永久記憶装置のデータに対して行う。サーバー読出し処理 形式[Server Read Procedure (OID, Loc k Type)]の関数であるServer Read Procedureは 、パラメータOIDに指示されるOIDを有するOIDスペースオブジェクト8 0を読出し、OIDスペースオブジェクト80をパラメータLock Type を用いて、指定タイプのロックでロックする。 以下の疑似コードは、この関数の実現の一実施例を示す。 (Lock TypeがInstant Update Lock)であるな らば、 その時は、 以下を開始する。 必要なOIDを含むIUO List Elementを 探索し、(IUO List Elementを検出した)場合には、 その時は、 以下を開始する。 (IUO List Elementが別の処理でロックされている )のであれば、 その時は、 以下を開始する。 顧客の処理を待機させるように指示し、 この状態を、 ロックが解除されるまで続ける。 以上を終了する。 IUO LIST Element lockerを要求中の処理 にセットする。 以上を終了する。 以上を終了する。 (IUO List Elementを)検出しなければ、 以下を開始する。 IUO List Elementを作成する。 新規のIUO LIST ElementをOID Space Objectの各パーティションに 対するIUO Listに挿入 する。 パーティションを確保していないものとして標識を付ける 以上を終了する。 (IUOがメモリにない)場合には、 その時は、 以下を開始する。 最新のIUOの状態をディスクから読出す。 以上を終了する。 以上を終了する。 OIDスペースオブジェクトを顧客に戻す。サーバー書込み手続き 形式[Server Write Procedure(OID Space object)]の関数Server Write Procedureは、 パラメータOID Space objectによって指定されたオブジェクト をディスクに書込み、OIDスペースオブジェクト80をアンロックする。 以下の手続き、この関数の実現の一実施例である。 (現在のトランザクションがIUOをロックしている)ならば、 その時は、 以下を開始する。 IUO List Elementオブジェクトの古いバージョンを削除す る。 IUO List Elementオブジェクトを(OID Space Object)にセットする。 IUO List Element modified indicato rを真にセットする。 IUO List Element transaction locke rを0にセットする。 現在のトランザクションがIUOをロックしていないことを指示する。 以上を終了する。サーバーコミット手続き 形式[Severver Commit Procedure()]の関数S erver Commit Procedureは、顧客のトランザクションが コミットされる場合に、IUO List Elementを変更する。コミッ ト時に、サーバーリストのIUOに保持された変更OIDスペースオブジェクト 80は、ディスクに書込まれる。 以下の手続きは、この関数の実現の一実施例である。 各IUO List Elementに対して 以下を繰り返す。 (次のIUO List Element modified,indi catorが真である)ならば、 その時は、 以下を開始する。 IUO List Elementオブジェクトをディスクに書 き込み、 IUO List Element modified ind icatorを 偽にセットする。 以上を終了する。 繰り返しを終了する。 正規のコミット手続きを続ける。サーバーアボート手続き この関数、Server Abort Procedure()は、顧客のト ランザクションが中止された場合に、IUO List Elementを変更 する。トランザクションが中止されると、サーバーは、それが(OIDスペース オブジェクトの)瞬間更新ロックを保持しているか否かをチェックし判定し、保 持している場合には、それらのロックを解除し、他の顧客がこれらのオブジェク トにアクセスできるようにする。 以下の疑似コードは、この関数の実現の一実施例を示す。 (現のトランザクションがIUOをロックしている)ならば、 その時は、 以下を開始する。 IUO LIST Element Lockerを0にセットする。 現在のトランザクションがIUOをロックしていないことを指示する。 以上を終了する。 正規のアボート手続きを続ける。サーバーのエラー回復検出および訂正 顧客のアプリケーションを確保する場合、後で、その確保を戻したりキャンセ ルしたりする前に、顧客のアプリケーションまたはサーバーの処理が異常に終了 し、OIDの領域が確保されているのであれば、OIDスペースオブジェクト8 0の確保を訂正するステップを踏まなければならないことに留意されたい。ある 態様では、OIDスペースオブジェクトは、すべての明らかな確保をキャンセル することによって回復される。 要求されるOIDスペースオブジェクト80がすでにメモリに存在しないとき 、OIDスペースオブジェクト80はディスクから読出され、変数Need R ecoveryが真にセットされる。この回復関数はもOIDスペースのHig h Water Markベクトルかビットフラグを反復適用し、億パーティシ ョンに対し、OIDの対応範囲が確保されることを指示するために使用されるビ ッ トをクリアする。OIDスペースオブジェクト80は、メモリに読出されたばか りなので、確保される領域がないため、異常終了した以前のセッションから確保 を残してから、この確保されたビットをクリアできるようにしなければならない 。種々の機能 上述の機能に加え、本発明に係るシステムの一実施例では、以下の機能も実現 し機能性を向上させたが、これらの機能を実現し本発明に利用する必要はない。使用領域 形式[Ranges In Use]の関数Ranges In Useは 、現在使用中の領域数に等しい値を戻す。この数は、このOIDスペースオブジ ェクト80を用いてOIDを現在割り当て中の顧客のアプリケーション数に等し い。 以下の疑似コードは、この関数の実現の一実施例を示す。 Range Countにゼロに初期化する。 各パーティションについて、 以下を繰り返す。 (パーティションが使用中に標識される)ならば、 その時は、 以下を繰り返す。 Range Countをインクリメントする。 以上を終了する。 Range Countを戻す。使用される最高領域 形式[Highest Range Used]の関数Highest Ran ge Usedは、OID割当のために使用される最大領域に等しい値に戻す。 戻された領域よりも大きい領域は、割り当てられたOIDを含まないが、その逆 は必ずしも正しくはないことに留意されたい。最高領域よりも低い未使用領域が あることも考えられる。例えば、Nの顧客が領域を確保しており、その顧客のう ちKがそれぞれの確保をキャンセルし、N番目の顧客はキャンセルしなかった場 合には、未使用のKの領域が残り得る。 以下の疑似コードは、この関数の実現の一実施例を示す。 結果を0に初期化する 各パーティションについて、 以下を繰り返す。 パーティションに対するhigh water markを検出する。 (high water mark>Start For Given Range(Partition))である ならば、 以下を行う。 結果=パーティション。 以上を終了する。 繰り返しを終了する。 結果に戻る。OIDサイズ 形式[Get OID Size]の関数Get OID Sizeは、O IDのビット数であり、Create OID Space Object関数 に対するNumber Of OID Bits入力パラメータ値に等しい値を 戻す。パーティション 形式[Get Number Of Partitions]の関数Get Number Of Partitionsは、OIDスペースオブジェクトが 作成されたパーティション数である値を戻す。この値は、Create OID Space Object関数に対するNumber Of Partiti on Bits入力パラメータに等しくなる。OID生成の例 一意のOIDを大域的に割り当てる際に必要な処理の全体的な流れを以下の疑 似コードに示す。この例のために、サーバーの処理で、OIDスペースオブジェ クトを作成し、そのオブジェクトをディスクに書き込む。後になって、顧客の処 理で、OIDスペースオブジェクトを要求し、サーバー処理で、OIDスペース オブジェクトをディスクから読み出し、そのオブジェクトをロックする。次に、 顧客の処理はOIDの領域を確保し、OIDを確保された領域から割り当て、未 使用のOIDを戻す。その後、サーバー処理で、OIDスペースオブジェクトを アンロックし、OIDスペースオブジェクトをディスクに書き込む。 /32ビットOIDと128パーティションを有するOIDスペースオブジェク トを作成する /OIDスペースオブジェクトをディスクに書き込む / Create OID Space Object (32, 7) Server Write Procedure (OID Spac e Object) / /サーバーはOIDスペースオブジェクトを読み出しロックする。 / Server Read Procedure(OID Space Object, IUO Lock) / /OIDスペースオブジェクトのOIDの領域を確保する。 / Reserve Pertition(Beginning OID, Endin OID) Beginning OIDおよびEnding OIDを記憶する。 Number Of Allocated OIDを0にセットする。 / /サーバーは、確保された領域を用いてOIDオブジェクトを書き込み、アンロ ックし、/他の顧客が他の領域を確保できるようにする。 Server Write Procedure(OID Space O bject) / /OIDを確保された領域から割り当てる。 / 割り当てられた各OIDに対するNumber Of Allocated OIDsをインクリメントする。 New High Water Mark = Beginning O ID + Number Of Allocated OIDs / /確保された領域を戻す。 / OIDスペースオブジェクトを読み出す / 新規のhigh water markをセットする。 / OIdスペースオブジェクトを書き込む。 / Server Read Procedure (OID Space Object, IUO Lock) Set New High Water Mark (New Hig h Water Mark) Server Write Procedure (OID Spac e Object) 上述の実施例は、OIDスペースオブジェクト80を無限数の等しいパーティ ションに区分するが、そのようなことは必ずしも必要ないことに留意されたい。 OIDスペースオブジェクト80を作成し、そのオブジェクトスペースを区分す る関数は、大した手間をかけずに、アルゴリズムを利用してそのスペースを不平 等なパーティションに区分することができる。したがって、相当数の大きなパー ティションを有して多数のオブジェクトを作成する顧客のプログラムのニーズを 満たし、より少数のパーティションを有して少数のオブジェクトを作成する顧客 のプログラムのニーズを満たすことができるであろう。 さらに、顧客の処理が現在ある領域を要求してはいるが、顧客の処理が限定数 のOIDを(例えば、200OID)、あるいは、OIDの領域のセット(例え ば200乃至400までと800乃至1200までのOID)を要求することも できる。これらの変更は、本文に記載した本発明の概要から逸脱することはない 。 好ましい実施例を示してきたが、当業者らには特許請求の範囲および精神の範 囲内で、多くの変更が可能であることは理解できよう。従って、本発明は、特許 請求の範囲によって指示された如き以外で制限する意図はない。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 レックバンド,クライグ,アール. アメリカ合衆国 01730 マサチューセッ ツ州 ベッドフォード ワイルドウッド ドライブ 56 (72)発明者 マーテル,ポール アメリカ合衆国 01420 マサチューセッ ツ州 フィッチバーグ ホワイトモア ス トリート 110 【要約の続き】 6)は、要求している顧客プロセス(18、20、2 2、24)に対して、1レンジの包括的に唯一のオブジ ェクト識別子を伝送する。次に、要求している顧客プロ セス(18、20、22、24)は、自ら作成中のオブ ジェクトに対しオブジェクト識別子を割り当てる。作成 されたオブジェクトに対する包括的に唯一のオブジェク ト識別子の割当が完了した時点で、要求している顧客プ ロセス(18、20、22、24)は、次に未使用の包 括的に唯一のオブジェクト識別子があればそれを全てサ ーバー(26)に戻し、その他の顧客プロセス(18、 20、22、24)が使用できるようにする。

Claims (1)

  1. 【特許請求の範囲】 1、分散形オブジェクト指向データベース内で作成した1つのオブジェクトに対 して包括的な唯一の識別子を割り当てするためのシステムにおいて、 通信網 少なくとも1つの顧客プロセスを実行するものを1基、ならびに包括的 に唯一の識別子の扱者プロセスを実行するものを1基含めた、前記回路網に接続 された少なくとも2基のプロセッサー; を含んで成り、 前記少なくとも1つの顧客プロセスのうちの1つが、前記包括的に唯一の識別 子扱者プロセスから1範囲の包括的に唯一の識別子を要求し、 前記包括的に唯一の識別子扱者プロセスは、1レンジの包括的に唯一の識別子 を要求する前記少なくとも1つの顧客プロセスのうちの1つのために1レンジの 包括的に唯一の識別子を予約し、 1レンジの包括的に唯一の識別子を要求する前記少なくとも1つの顧客 プロセスのうちの1つは、この1つの顧客プロセスによって作成された各オブジ ェクトのために、前記1レンジの包括的に唯一の識別子の中からの1つの包括的 に唯一の識別子を割り当て、 前記少なくとも1つの顧客プロセスのうちの1つが、包括的に唯一の識 別子の前記割り当ての完了時点で前記包括的に唯一の識別子扱者プロセスに対し て、前記1レンジの包括的に唯一の識別子の未使用部分を解放する、 識別子割り当てシステム。 2、前記包括的に唯一の識別子扱者プロセスが、前記1レンジの包括的に唯一の 識別子を予約した後この1レンジの識別子を要求する前記少なくとも1つの顧客 プロセスのうちの1つに対して、この範囲からの第一の包括的に唯一の識別子及 び最後の包括的に唯一の識別子を伝送する、請求の範囲第1項に記載のシステム 。 3、前記1レンジの包括的に唯一の識別子が、複数の包括的に唯一の識別子の範 囲の中から選択される、請求の範囲第2項に記載のシステム。 4、前記複数の包括的に唯一の識別子の範囲のうちの各々の範囲が、包括的に唯 一の識別子を同数ずつ内包している、請求の範囲第3項に記載のシステム。 5、包括的に唯一の識別子の各々の範囲が隣接している、請求の範囲第3項に記 載のシステム。 6、前記複数の包括的に唯一の識別子の範囲が、前記包括的に唯一の識別子扱者 プロセスによって、OIDスペースオブジェクトの中に維持される、請求の範囲 第3項に記載のシステム。 7、前記OIDスペースオブジェクトが前記包括的に唯一の識別子扱者プロセス によって、作成されている、請求の範囲第6項に記載のシステム。 8、前記OIDスペースオブジェクトが前記少なくとも1つの顧客プロセスによ り作成され、前記包括的に唯一の識別子扱者プロセスにより作成され、前記包括 的に唯一の識別子扱者プロセスに対して移送される、請求の範囲第7項に記載の システム。 9、前記包括的に唯一の識別子扱者プロセスからの前記1レンジの包括的に唯一 の識別子を要求する前記少なくとも1つの顧客プロセスが、予約すべき一定数の 包括的に唯一の識別子を特定する、請求の範囲第1項に記載のシステム。 10、分散形オブジェクト指向データーベースの中で作成された1つのオブジェ クトに対し包括的に唯一の識別子を割り当てるためのシステムにおいて、 回路網、及び 少なくとも1つの顧客プロセスを実行するもの1基と、包括的に唯一の 識別子扱者プロセスを実行するもの1基を含めた、前記回路網に接続された少な くとも2つのプロセッサー、 を含んで成り、 前記少なくとも1つの顧客プロセスのうち1つが、前記包括的に唯一の 識別子扱者プロセスからの1レンジの包括的に唯一の識別子を要求し、 前記包括的に唯一の識別子扱者プロセスが、前記1レンジの包括的に唯 一の識別子を要求する少なくとも1つの顧客プロセスのうち1つに対して、複数 の包括的に唯一の識別子の範囲を有するオブジェクト識別子スペースオブジェク トを移送し、 前記1レンジの包括的に唯一の識別子を要求する少なくとも1つの顧客 プロセスのうちの1つが、前記オブジェクト識別子スペースオブジェクトの中で 、1レンジの包括的に唯一の識別子を予約し、 前記1レンジの包括的に唯一の識別子を要求する少なくとも1つの顧客 プロセスのうちの1つが、この1つの顧客プロセスによって作成された各々のオ ブジェクトに対し予約された前記包括的に唯一の識別子の予約済み範囲からの1 つの包括的に唯一の識別子を割り当てし、この1つの顧客プロセスが、前記予約 済み範囲の未使用部分を解放し、 前記1レンジの包括的に唯一の識別子を要求する少なくとも1つの顧客 プロセスのうちの1つが、前記包括的に唯一の識別子扱者プロセスに対して、前 記オブジェクト識別子スペースオブジェクトを伝送する、割り当て用システム。 11、前記オブジェクト識別子スペースオブジェクトが前記少なくとも1つの顧 客プロセスによって作成され前記包括的に唯一の識別子扱者プロセスに対し伝送 される、請求の範囲第10項に記載のシステム。 12、前記包括的に唯一の識別子扱者プロセスが、前記1レンジの包括的に唯一 の識別子を要求する少なくとも1つの顧客プロセスのうちの1つに対して、前記 複数の包括的に唯一の識別子の範囲をもつ前記オブジェクト識別子スペースオブ ジェクトを伝送する前に前記オブジェクト識別子スペースオブジェクトをロック する施錠装置を内含する、請求の範囲第十項に記載のシステム。 13、前記1レンジの包括的に唯一の識別子を要求する少なくとも1つの顧客プ ロセスのうちの1つが、各オブジェクトに対して前記包括的に唯一の識別子の予 約済み範囲からの前記包括的に唯一の識別子を割り当てる前に、前記オブジェク ト識別子スペースオブジェクトのロックを解除して戻す、請求の範囲第10項に 記載のシステム。 14、分散形オブジェクト指向データベースの中で作成された1つのオブジェク トに対して包括的に唯一の識別子を1つ割り当てるための方法において、 1レンジの包括的に唯一のオブジェクト識別子を要求する段階; 前記少なくとも一つの顧客プロセスに対して1レンジのオブジェクト識 別子を予約する段階、 前記オブジェクト識別子の予約済み範囲から前記少なくとも1つの顧客 プロセスによって**された各々のオブジェクトに対して包括的に唯一のオブジ ェクト識別子を1つ割り当てる段階; 前記包括的に唯一のオブジェクト識別子の割り当てが完了した時点で前 記オブジェクト識別子の範囲の未使用部分を解放する段階; を含んで成る方法。 15、1つの回路網を有する分散形オブジェクト指向データベースの中で作成さ れた1つのオブジェクトに対して包括的に唯一の識別子を1つ割り当てるための 方法において、 1レンジの包括的に唯一の識別子を要求する段階; 前記要求に応えて複数の包括的に唯一の識別子の範囲を持つオ ブジェクト識別子スペースオブジェクトを検索する段階; 前記オブジェクト識別子スペースオブジェクトの中で1レンジの包括的 に唯一の識別子を予約する段階; 1レンジの包括的に唯一の識別子を要求する前記少なくとも1つの顧客 プロセスの内の1つによって作成された各オブジェクトに対し予約された包括的 に唯一の識別子の前記予約済みレンジから包括的に唯一の識別子を1つ割り当て る段階; 前記包括的に唯一の識別子の予約済みレンジの未使用部分を開放する段 階;及び 前記オブジェクト識別子スペースオブジェクトを復帰する段階、 を含んで成る方法。
JP53026595A 1994-05-19 1995-02-21 包括的に唯一のオブジェクト識別を生成するためのシステム Expired - Lifetime JP3689713B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/246,065 1994-05-19
US08/246,065 US5522077A (en) 1994-05-19 1994-05-19 Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
PCT/US1995/002139 WO1995032463A1 (en) 1994-05-19 1995-02-21 A system for generating globally unique object indentities

Publications (2)

Publication Number Publication Date
JPH10510934A true JPH10510934A (ja) 1998-10-20
JP3689713B2 JP3689713B2 (ja) 2005-08-31

Family

ID=22929196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53026595A Expired - Lifetime JP3689713B2 (ja) 1994-05-19 1995-02-21 包括的に唯一のオブジェクト識別を生成するためのシステム

Country Status (4)

Country Link
US (1) US5522077A (ja)
EP (1) EP0803090A1 (ja)
JP (1) JP3689713B2 (ja)
WO (1) WO1995032463A1 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613158A (en) * 1994-05-25 1997-03-18 Tandem Computers, Inc. System for specifying addresses by creating a multi-bit ranked ordered anchor pattern and creating next address by shifting in the direction of the superior position
US6408333B1 (en) * 1994-11-23 2002-06-18 Horizon Technologies Inc. System for portable establishing network server
EP0733972B1 (en) * 1995-03-22 2003-07-09 Sun Microsystems, Inc. Method and apparatus for managing relationships among objects in a distributed object environment
US6047312A (en) * 1995-07-07 2000-04-04 Novell, Inc. System for replicating and associating file types with application programs among plurality of partitions in a server
US5692129B1 (en) * 1995-07-07 1999-08-17 Novell Inc Managing application programs in a computer network by using a database of application objects
DE19525423A1 (de) * 1995-07-12 1997-01-16 Siemens Ag Anordnung mit Automatisierungsgeräten
EP0787396A1 (en) * 1995-08-18 1997-08-06 International Business Machines Corporation Parallel execution of requests in osi agents
US5892946A (en) * 1995-09-12 1999-04-06 Alcatel Usa, Inc. System and method for multi-site distributed object management environment
US5887275A (en) * 1996-02-08 1999-03-23 Oracle Corporation Method and apparatus for locating a first set of data using a global identifier and a virtual addressing data structure
US6128771A (en) 1996-02-09 2000-10-03 Sun Microsystems, Inc. System and method for automatically modifying database access methods to insert database object handling instructions
JP3527014B2 (ja) * 1996-05-15 2004-05-17 株式会社日立製作所 オブジェクト管理方法
US5881230A (en) 1996-06-24 1999-03-09 Microsoft Corporation Method and system for remote automation of object oriented applications
US5857203A (en) * 1996-07-29 1999-01-05 International Business Machines Corporation Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system
JP3747525B2 (ja) * 1996-08-28 2006-02-22 株式会社日立製作所 並列データベースシステム検索方法
US5854904A (en) * 1996-10-15 1998-12-29 Brown; Erik Lee Object-oriented modular electronic component system
SK102399A3 (en) * 1997-01-13 2000-01-18 John Overton Automated system for image archiving
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US6662216B1 (en) * 1997-04-14 2003-12-09 International Business Machines Corporation Fixed bus tags for SMP buses
US6151639A (en) * 1997-06-19 2000-11-21 Sun Microsystems, Inc. System and method for remote object invocation
US5966705A (en) * 1997-06-30 1999-10-12 Microsoft Corporation Tracking a user across both secure and non-secure areas on the Internet, wherein the users is initially tracked using a globally unique identifier
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US6182129B1 (en) * 1997-09-11 2001-01-30 International Business Machines Corporation Apparatus, methods and computer program products for managing sessions with host-based application using session vectors
US6687707B1 (en) 1997-11-28 2004-02-03 International Business Machines Corporation Unique object identification in a network of computing systems
US6247077B1 (en) 1998-02-06 2001-06-12 Ncr Corporation Highly-scalable parallel processing computer system architecture
US6148349A (en) * 1998-02-06 2000-11-14 Ncr Corporation Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification
US6256740B1 (en) * 1998-02-06 2001-07-03 Ncr Corporation Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US7103640B1 (en) * 1999-09-14 2006-09-05 Econnectix, Llc Network distributed tracking wire transfer protocol
US7801782B2 (en) * 1998-07-31 2010-09-21 Jpmorgan Chase Bank, Na Object oriented system for managing complex financial instruments
US6886012B1 (en) * 1998-11-18 2005-04-26 International Business Machines Corporation Providing traditional update semantics when updates change the location of data records
US6684246B1 (en) * 1999-02-03 2004-01-27 William H. Gates, III Method and system for tracking clients
WO2000046960A1 (en) * 1999-02-03 2000-08-10 Gates, William, H., Iii Audio visual architecture
US6670934B1 (en) 1999-02-03 2003-12-30 William H. Gates, III Method and system for distributing art
US6842789B1 (en) 1999-10-21 2005-01-11 Sun Microsystems, Inc. Method and apparatus for assigning unique device identifiers across a distributed computing system
US6412002B1 (en) 1999-11-15 2002-06-25 Ncr Corporation Method and apparatus for selecting nodes in configuring massively parallel systems
US6519697B1 (en) 1999-11-15 2003-02-11 Ncr Corporation Method and apparatus for coordinating the configuration of massively parallel systems
US6745240B1 (en) 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
US6418526B1 (en) 1999-11-15 2002-07-09 Ncr Corporation Method and apparatus for synchronizing nodes in massively parallel systems
US7331058B1 (en) * 1999-12-16 2008-02-12 International Business Machines Corporation Distributed data structures for authorization and access control for computing resources
US7265854B1 (en) 2000-01-24 2007-09-04 International Business Machines Corporation Method and apparatus for managing complex presentation objects using globally-unique identifiers
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6816881B1 (en) * 2000-03-13 2004-11-09 International Business Machines Corporation Method and apparatus for inter-application communication in wireless networks
US6542907B1 (en) 2000-03-31 2003-04-01 International Business Machines Corporation Method and apparatus for decentralized, invertible generation of bounded-length globally unique replica identifiers
US6728694B1 (en) * 2000-04-17 2004-04-27 Ncr Corporation Set containment join operation in an object/relational database management system
US20080005275A1 (en) * 2000-06-02 2008-01-03 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US6735220B1 (en) * 2000-08-01 2004-05-11 Sun Microsystems, Inc. Using a centralized server to coordinate assignment of identifiers in a distributed system
US6826600B1 (en) * 2000-11-02 2004-11-30 Cisco Technology, Inc. Methods and apparatus for managing objects in a client-server computing system environment
US6662191B1 (en) * 2000-12-21 2003-12-09 Amdocs Software Systems Limited Method and apparatus for caching and reusing object identifiers
US7305678B2 (en) * 2001-05-17 2007-12-04 International Business Machines Corporation Method and system for reducing synchronization waits when allocating sequenced identifiers in a multi-threaded server
US7089561B2 (en) * 2001-06-01 2006-08-08 Microsoft Corporation Methods and systems for creating and communicating with computer processes
US6934710B1 (en) * 2002-05-02 2005-08-23 Palmsource, Inc. Generating coherent global identifiers for efficient data identification
US7430569B2 (en) * 2002-11-27 2008-09-30 Sap Ag Computerized replication of data objects
US7409412B2 (en) * 2002-11-27 2008-08-05 Sap Ag Data element and structure for data processing
US7464091B2 (en) * 2002-11-27 2008-12-09 Sap Ag Method and software for processing data objects in business applications
US8401002B2 (en) 2005-06-22 2013-03-19 Research In Motion Limited Exchange and use of globally unique device identifiers for circuit-switched and packet switched integration
US8620989B2 (en) * 2005-12-01 2013-12-31 Firestar Software, Inc. System and method for exchanging information among exchange applications
US7739688B1 (en) * 2006-01-03 2010-06-15 Emc Corporation Techniques for managing distribution of well-defined objects in a client/server system
US8478873B2 (en) 2006-03-08 2013-07-02 Harmonic Inc. Techniques for use of a system-unique identifier in an architecture having a file system utilizing distributed metadata servers
US20070288254A1 (en) * 2006-05-08 2007-12-13 Firestar Software, Inc. System and method for exchanging transaction information using images
US8220334B2 (en) 2006-11-10 2012-07-17 Penrith Corporation Transducer array imaging system
US7984651B2 (en) * 2006-11-10 2011-07-26 Penrith Corporation Transducer array imaging system
US9295444B2 (en) * 2006-11-10 2016-03-29 Siemens Medical Solutions Usa, Inc. Transducer array imaging system
US20080114246A1 (en) * 2006-11-10 2008-05-15 Penrith Corporation Transducer array imaging system
US7590672B2 (en) * 2006-12-11 2009-09-15 Bycast Inc. Identification of fixed content objects in a distributed fixed content storage system
US7567992B1 (en) * 2006-12-29 2009-07-28 Unisys Corporation Replicating of plurality of instances of an object model in memory arrangement using portable object references where each object attribute assigned GUID
US8468211B2 (en) * 2007-10-30 2013-06-18 Schlage Lock Company Llc Communication and synchronization in a networked timekeeping environment
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US8898267B2 (en) * 2009-01-19 2014-11-25 Netapp, Inc. Modifying information lifecycle management rules in a distributed system
US9021491B2 (en) * 2010-03-15 2015-04-28 International Business Machines Corporation Dual mode reader writer lock
US8375066B2 (en) * 2010-04-26 2013-02-12 International Business Machines Corporation Generating unique identifiers
US8560698B2 (en) 2010-06-27 2013-10-15 International Business Machines Corporation Allocating unique identifiers using metadata
US9298499B2 (en) * 2012-01-27 2016-03-29 Microsoft Technology Licensing, Llc Identifier generation using named objects
US9355120B1 (en) 2012-03-02 2016-05-31 Netapp, Inc. Systems and methods for managing files in a content storage system
US9678971B2 (en) * 2013-01-10 2017-06-13 International Business Machines Corporation Packing deduplicated data in a self-contained deduplicated repository
US9906624B2 (en) 2013-10-30 2018-02-27 International Business Machines Corporation Method for throttling multiple client applications sending data to a server application
CN103995739B (zh) * 2014-04-24 2017-12-19 深圳中微电科技有限公司 共享内存映射页的处理器系统产生进程号的方法及装置
RU2015102736A (ru) 2015-01-29 2016-08-20 Общество С Ограниченной Ответственностью "Яндекс" Система и способ обработки запроса в сети распределенной обработки данных
US10404700B1 (en) * 2015-08-27 2019-09-03 Cadence Design Systems, Inc. Concurrent design process
US10216613B2 (en) * 2016-08-17 2019-02-26 International Business Machines Corporation Reserved process and thread identifiers for tracing
US20190102107A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Techniques for batch operations to storage devices

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4821184A (en) * 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US4742467A (en) * 1984-05-04 1988-05-03 Analysts International Corporation Automated programming system for machine creation of applications program source code from non-procedural terminal input
US4775955A (en) * 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
US4792921A (en) * 1986-03-18 1988-12-20 Wang Laboratories, Inc. Network event identifiers
US4870568A (en) * 1986-06-25 1989-09-26 Thinking Machines Corporation Method for searching a database system including parallel processors
US4943932A (en) * 1986-11-25 1990-07-24 Cimflex Teknowledge Corporation Architecture for composing computational modules uniformly across diverse developmental frameworks
US4930071A (en) * 1987-06-19 1990-05-29 Intellicorp, Inc. Method for integrating a knowledge-based system with an arbitrary database system
US5117351A (en) * 1988-10-21 1992-05-26 Digital Equipment Corporation Object identifier generator for distributed computer system
US4989132A (en) * 1988-10-24 1991-01-29 Eastman Kodak Company Object-oriented, logic, and database programming tool with garbage collection
US5159669A (en) * 1988-12-15 1992-10-27 Xerox Corporation Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation
JP2786236B2 (ja) * 1989-03-27 1998-08-13 株式会社日立製作所 データ配送方法および装置
US5253189A (en) * 1989-06-13 1993-10-12 Schlumberger Technologies, Inc. Qualitative kinematics
US5218696A (en) * 1989-07-24 1993-06-08 International Business Machines Corporation Method for dynamically expanding and rapidly accessing file directories
DE68928136T2 (de) * 1989-08-03 1998-01-15 International Business Machines Corp., Armonk, N.Y. Arbeitsplatz und entsprechendes betriebsverfahren
US5202981A (en) * 1989-10-23 1993-04-13 International Business Machines Corporation Process and apparatus for manipulating a boundless data stream in an object oriented programming system
DE69031078T2 (de) * 1989-11-30 1998-01-15 Seer Technologies Inc Rechnerunterstützte softwareentwicklungseinrichtung
US5280610A (en) * 1990-08-14 1994-01-18 Digital Equipment Corporation Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
GB2253500A (en) * 1990-08-23 1992-09-09 Data General Corp Object oriented-data bases
US5235701A (en) * 1990-08-28 1993-08-10 Teknekron Communications Systems, Inc. Method of generating and accessing a database independent of its structure and syntax
US5278954A (en) * 1990-09-11 1994-01-11 Analogic Corporation System for and method of storing image data processed in multiple stages
US5265206A (en) * 1990-10-23 1993-11-23 International Business Machines Corporation System and method for implementing a messenger and object manager in an object oriented programming environment
JP2556189B2 (ja) * 1990-10-29 1996-11-20 富士ゼロックス株式会社 オブジェクト指向計算機システムにおけるメソッド起動装置
US5274815A (en) * 1991-11-01 1993-12-28 Motorola, Inc. Dynamic instruction modifying controller and operation method
CA2077273C (en) * 1991-12-12 1996-12-03 Mike H. Conner Language neutral objects
US5276735A (en) * 1992-04-17 1994-01-04 Secure Computing Corporation Data enclave and trusted path system

Also Published As

Publication number Publication date
US5522077A (en) 1996-05-28
WO1995032463A1 (en) 1995-11-30
EP0803090A1 (en) 1997-10-29
JP3689713B2 (ja) 2005-08-31

Similar Documents

Publication Publication Date Title
JPH10510934A (ja) 包括的に唯一のオブジェクト識別を生成するためのシステム
US5454108A (en) Distributed lock manager using a passive, state-full control-server
US7284098B2 (en) Message based inter-process for high volume data
US5133053A (en) Interprocess communication queue location transparency
US5745747A (en) Method and system of lock request management in a data processing system having multiple processes per transaction
US6687701B2 (en) Namespace management in a distributed file system
US6411983B1 (en) Mechanism for managing the locking and unlocking of objects in Java
US7240114B2 (en) Namespace management in a distributed file system
US5459862A (en) Network concurrency control for autonomous databases featuring independent lock release and lock ownership transfer
US6145094A (en) Transaction locks for high availability
US5890153A (en) Database lock control method
EP0428006A2 (en) Multilevel locking system and method
US5999976A (en) Parallel file system and method with byte range API locking
JPH10301834A (ja) 共用メモリの管理方法
EP1040433A1 (en) A fine-grained consistency mechanism for optimistic concurrency control using lock groups
US6101525A (en) Method and apparatus for shared memory cleanup
US20050262159A1 (en) Managing a thread pool
Israel et al. Separating data from function in a distributed file system
US8028002B2 (en) Naming service implementation in a clustered environment
US6829609B1 (en) System, device, and method for providing mutual exclusion for computer system resources
US7526617B2 (en) System and method for memory management using memory windows
JPH08129492A (ja) 資源排他チェックシステム及び資源排他チェック方法
CN116881256A (zh) 数据获取及更新方法、共享内存初始化方法及相关装置
EP0049423A2 (en) Multiprocessor system
JPH0650471B2 (ja) 使用中テーブルの管理方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040909

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040909

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: 20080624

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090624

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100624

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110624

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110624

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120624

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130624

Year of fee payment: 8

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