JP2000137602A - コア・アプリケ―ション・プログラミング・インタ―フェ―スのための方法及び装置 - Google Patents

コア・アプリケ―ション・プログラミング・インタ―フェ―スのための方法及び装置

Info

Publication number
JP2000137602A
JP2000137602A JP11134704A JP13470499A JP2000137602A JP 2000137602 A JP2000137602 A JP 2000137602A JP 11134704 A JP11134704 A JP 11134704A JP 13470499 A JP13470499 A JP 13470499A JP 2000137602 A JP2000137602 A JP 2000137602A
Authority
JP
Japan
Prior art keywords
class
entry
api
client
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11134704A
Other languages
English (en)
Other versions
JP2000137602A5 (ja
JP4511650B2 (ja
Inventor
Jeffrey A Schmidt
ジェフリー・エー.・シュミット
Bernard A Traversat
バーナード・エー.・トラバサット
Thomas Saulpaugh
トーマス・サウルポー
Gregory L Slaughter
グレゴリー・エル.・スローター
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22148450&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2000137602(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000137602A publication Critical patent/JP2000137602A/ja
Publication of JP2000137602A5 publication Critical patent/JP2000137602A5/ja
Application granted granted Critical
Publication of JP4511650B2 publication Critical patent/JP4511650B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 (修正有) 【課題】1つを越す数のアプリケーション・プログラミ
ング・インターフェース(API)の一部をそれぞれ構
成するコアAPI・をインプリメントする。 【解決手段】システム・データベースへのアクセスを可
能にするAPIを提供するために、オブジェクトベース
のシステム内のクラス構造を設ける。クラス構造は、コ
アAPIを定義する第1セットのクラスと、クライアン
トAPIを定義する第2セットのクラスと、サーバーA
PIを定義する第3セットのクラスとを含む。第2セッ
トのクラスは第1セットのクラスを含み、第3セットの
クラスは第2セットのクラスを含む。1つの実施形態で
は、第1セットのクラスはインターフェースを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】一般的に、本発明はコンピュ
ータ・システム内のアプリケーション・プログラミング
・インターフェースを提供する方法及び装置に関する。
より詳細には、本発明はコンピュータ・システム内の異
なる複数のアプリケーション・プログラミング・インタ
ーフェースによる使用に適したコア・アプリケーション
・プログラミング・インターフェースに関する。
【0002】
【従来の技術】ネットワーク接続されたコンピューティ
ング・システムの利用はパーソナル・コンピュータの利
用の普及にともなって増大している。複数のコンピュー
タ・システムをネットワーク接続すること、即ち、互い
にリンクすることにより、複数のユーザ、即ち、コンピ
ュータ・システムはソフトウェア・アプリケーションな
どのリソースを共有できる。一般的に、ネットワークを
通じたリソースの共有により、ネットワーク接続された
各ユーザは自分自身にとってローカルなリソースを更に
効率的に使用し、かつ割り当てることができる。
【0003】ネットワーク接続されたコンピューティン
グ・システム内の複数のリソースを1つにまとめる努力
の過程で、ネットワーク・コンピュータが開発された。
一般的に、ネットワーク・コンピュータはネットワーク
内のクライアントとして使用される。一般的に、ネット
ワーク・コンピュータは、ほとんどが遠隔のデータベー
ス及びリソース(これらの多くはネットワーク上のサー
バーである)を使用したアクセス及びオペレーションを
行うために設けられたシステムである。概して、ネット
ワーク・コンピュータなどのプラットフォームは書き込
み可能記憶装置(例:ディスク・ドライブ)へのローカ
ル・アクセスを有していない。この場合、ネットワーク
・コンピュータを使用するユーザは、任意の数のユーザ
が共有するリモート・データベース上における情報への
アクセス及び情報の格納が可能である。この結果、例え
ば、ネットワーク・コンピュータは書き込み可能な大容
量ローカル記憶装置の能力を持つ必要がない。
【0004】多くの場合、アプリケーション、即ち、エ
ントリのパブリッシュ及びリトリーブを共有データベー
ス上で可能にすることに関連したインターフェース
(例:アプリケーション・プログラミング・インターフ
ェース(API))は、比較的多くのメソッドを含む。
例えば、共有データベースに対するエントリのパブリッ
シュと、共有データベース上でのエントリのサーチと、
共有データベースからのエントリのリトリーブとをクラ
イアントが実施することを可能にするために、メソッド
群は一般的に必要である。同様に、共有データベースに
対するエントリのパブリッシュと、共有データベース上
でのエントリのサーチと、共有データベースからのエン
トリのリトリーブとをサーバーが実施することを可能に
するために、メソッド群は一般的に必要である。
【0005】エントリのパブリッシュ、エントリのサー
チ及びエントリのリトリーブに使用する複数のメソッド
を提供するために必要なリソースは大きい。特に、クラ
イアントAPIに関連する機能性及びサーバーAPIに
関連する機能性のシステム・データベース上での維持
は、システム・データベース上における相当な量のリソ
ースを必要とし得る。一般的に、クライアントAPIに
関連する複数のメソッドのうちの幾つかと、サーバーA
PIに関連する複数のメソッドのうちの幾つかとは同じ
である。即ち、これら幾つかのメソッドがクライアント
に対してインプリメントされたのか、それともサーバー
に対してインプリメントされたのかということとは無関
係に、これら幾つかのメソッドは同一である。この結
果、互いに関連する複数のメソッドの使用法及び機能の
一貫性を維持することが困難であるため、サーバーAP
I及びクライアントAPIに対する機能性を実質的に別
々に維持することは非能率的である。
【0006】一般的に、メソッドは特定のクラスまたは
インターフェースに関連している。複数のクラス及びイ
ンターフェースは階層構造、即ち、クラス階層構造内に
配置されている。特に、クライアントAPIに関連する
クラス及びインターフェースは1つの階層構造の一部を
構成しており、サーバーAPIに関連するクラス及びイ
ンターフェースは別の階層構造の一部を構成している。
従って、幾つかのケースでは、同じクラス・タイプが2
つのクラス階層構造に関連することがある。メソッドに
おける冗長と同様に、クラス・タイプにおける冗長は、
クラスの使用法の一貫性及び機能の一貫性の維持という
点で望ましくない。
【0007】従って、システム・データベース上の複数
のクラス階層構造及び複数のAPIを効率的に構成する
方法及び装置が望まれる。特に、システム・データベー
スと併用するコアAPI及びクラス階層構造をシステム
・データベース上でのリソースの効率的使用を実現する
ように構築する方法及び装置が望まれる。
【0008】
【発明の概要】一般的に、本発明はコア・アプリケーシ
ョン・プログラミング・インターフェースをオブジェク
トベースのシステム内で定義可能にするクラス階層構造
の定義に関する。本発明の1つの態様に基づき、システ
ム・データベースへのアクセスを可能にするアプリケー
ション・プログラミング・インターフェースを提供する
ために、オブジェクトベースのシステム内のクラス構造
は設けられている。クラス構造はコア・アプリケーショ
ン・プログラミング・インターフェースを定義する第1
セットのクラスと、クライアント・アプリケーション・
プログラミング・インターフェースを定義する第2セッ
トのクラスと、サーバー・アプリケーション・プログラ
ミング・インターフェースを定義する第3セットのクラ
スとを含む。第2セットのクラスは第1セットのクラス
を含み、第3セットのクラスは第2セットのクラスを含
む。1つの実施形態では、第1セットのクラスはインタ
ーフェースを含む。この実施形態では、インターフェー
スはEntryインターフェースを含み得る。
【0009】別の実施形態では、第1セットのクラスは
少なくとも1つの抽象クラスと、少なくとも1つの具象
クラスとを含む。第1セットのクラスが抽象クラス及び
具象クラスを含む際、抽象クラスはBaseEntryクラスを
含み、具象クラスはSystemDatabaseクラス、SystemTree
クラス、Queryクラス及びPropertyQueryクラスを含む。
この実施形態において、第2セットのクラスは具象クラ
スであるSystemEntryクラスを含み得る。
【0010】本発明の前記の効果及び他の効果は以下の
詳細な説明を読み、かつ添付図面を研究することによっ
て明らかになる。
【0011】本発明は添付図面に基づく以下の詳細な説
明から最もよく理解できる。
【0012】
【発明の実施の形態】共有システム・データベースへア
クセスし得る複数のネットワーク・コンピュータを含む
ネットワーク接続されたコンピューティング・システム
では、幾つかのメソッドは1つを越す数のアプリケーシ
ョン・プログラミング・インターフェース(API)に
共通している。例えば、クライアントAPIに関連する
複数のメソッドのうちの幾つかと、サーバーAPIに関
連する複数のメソッドのうちの幾つかとは実質的に同一
である。しかし、一般的に、これらの“共有”メソッド
の機能性は、システム・データベースに対して別々に維
持されている。即ち、1つのメソッドに関連する機能性
はシステム・データベース上において繰り返し維持され
る。1つのメソッドをデータベース上で複数回維持する
ことは、このメソッドの使用法及び機能の一貫性を可能
にするうえで非効率的といえる。
【0013】システム・データベースに関連する1つを
越す数のAPIに共通するメソッドのコア・セット、即
ち、コア・グループを識別し、関連するコア・クラス階
層構造を構築することにより、このクラス階層構造が提
供する機能性を一貫して維持できる。特に、サーバーA
PI及びクライアントAPIに使用する多くのメソッド
が事実上同一であるため、サーバーAPI及びクライア
ントAPIの両方に共通するメソッドの“コアAPI”
の開発は、メソッドの使用法及び機能性の一貫性の維持
を可能にするとともに、システム・データベース・リソ
ースの効率的使用を可能にする。
【0014】一般的に、複数のネットワーク・コンピュ
ータをサポートするために設けられたコンピューティン
グ・ネットワークは、システム・データベースを中心コ
ンポーネントとして使用する。1つの実施形態では、シ
ステムはジャバ(商標名)システム・データベース(Ja
va system database、以下、略してJSDと称する)で
あり得る。一般的に、JSDは、ジャバ(商標名)ベー
スのプラットフォーム上におけるコンフィギュレーショ
ン情報の格納及びリトリーブをオペレーティング・シス
テム、システム・サービス、アプリケーション及びツー
ルが実施することを可能にする。例えば、JSDに関連
するマシン内に存在する物理デバイスと、インストール
されたシステム・ソフトウェア・サービスと、固有のユ
ーザ・アプリケーション・プロフィール及びグループ・
アプリケーション・プロフィールとを記述すべくコンフ
ィギュレーション情報は設けられている。コンフィギュ
レーションを目的として使用される実質的に全ての情報
の格納及びアクセスのための中央リポジトリとして、J
SDは効果的に機能する。従って、JSDを使用するこ
とによって、アプリケーション及びサービスは様々なコ
ンフィギュレーションを実現し得る。
【0015】図1は本発明の1つの実施形態に基づくシ
ステム・データベースに関連した関係を示す図である。
一般的に、システム・データベース104(例:JS
D)はサービスをクライアント、より詳細にはユーザ1
08へ提供する。換言するならば、クライアント−サー
バー環境内において、システム・データベース104は
クライアントサイドのコンフィギュレーション及び通信
のハブとして効果的に機能する。システム・データベー
ス104は、本発明に基づく関連したコアAPIを有す
る複数のコンピューティング・システムからなるネット
ワーク内の中央データベースとして機能し、かつエント
リの階層構造を一般的に有する。この階層構造の各エン
トリはパス名によって識別される情報の原子ユニットで
ある。システム・データベース104内のエントリは1
つ以上の関連するプロパティを有し、このプロパティは
エントリの記述を提供すべく設けられている。一般的
に、システム・データベース104上のエントリはツリ
ー内に格納可能である。
【0016】システム・データベース104は情報記
憶、情報検索及び情報パブリッシングを含むサービス
(但し、これらに限定されない)をユーザ108へ提供
する。具体的には、ユーザ108に関連したコンフィギ
ュレーションに関する情報の格納、リトリーブ及びパブ
リッシングをユーザ108自身が実施することを、シス
テム・データベース104は一般的に可能にする。
【0017】多くの場合、システム・データベース10
4と実際に通信するデバイス、より詳細には、デバイス
・ドライバを記述した情報をコンフィギュレーション、
即ち、コンフィギュレーション情報は含む。一般的に、
これらのデバイスはマシン及びユーザ108に関連して
いる。システム・データベース104を通じて利用でき
るシステム・サービス(例:オペレーティング・システ
ム(OS)システム・サービス112)に関する記述
を、コンフィギュレーション情報はさらに含み得る。幾
つかの実施形態では、選択したグループの属性及びユー
ザの属性と、システム・データベース104を通じてユ
ーザ108が利用できるソフトウェア・アプリケーショ
ン116に関連した実質的に全ての必要なアプリケーシ
ョン固有情報とを、コンフィギュレーション情報はさら
に記述している。カリフォルニア州パロアルト市に所在
するサンマイクロシステムズ・インコーポレイテッドが
開発したジャバ(商標名)プログラミング言語で書かれ
たアプレットなどのアプレットをアプリケーション11
6が含み得ることを理解する必要がある。
【0018】ユーザ108、システム・サービス112
及びアプリケーション116と通信する以外に、システ
ム・データベース104はOSカーネル120にも関連
している。本実施形態では、システム・データベース1
04はJSDであるため、このシステム・データベース
104はジャバOS、ジャバ・ディベロップメント・キ
ット(JDK)及びジャバ・ビーンズ(JavaBeans、商
標名)などを含むジャバ固有のソフトウェアにも関連し
ている。JDKはサンマイクロシステムズ・インコーポ
レイテッドから販売されているソフトウェアの開発及び
実行の環境であり、アプリケーション及びアプレットを
ジャバ・プログラミング言語で記述するために使用可能
である。ジャバ・ビーンズ(商標名)はジャバ・プログ
ラミング言語で作られた再利用可能なプラットフォーム
独立型ポータブル・コンポーネント・モデルである。
【0019】図2では、システム・データベースに関す
るエントリをインプリメントするために使用するインタ
ーフェース及びクラス階層構造を本発明の実施形態に基
づいて詳述する。エントリ・クラス階層構造202はイ
ンターフェース208、抽象クラス210及び具象クラ
ス214を含む。1つの実施形態では、エントリ・クラ
ス階層構造202はパブリックAPIを定義している。
インターフェース208(例:ジャバ環境内のインター
フェース)は、幾つかのクラスがそれぞれインプリメン
トし得るメソッド群である。一般的に、インターフェー
ス208内のメソッド群をインプリメント可能なクラス
は、クラス階層構造内の任意の場所(例:BaseEntryク
ラスなどの抽象クラス210内)に配置可能である。抽
象クラス210は1つ以上の抽象メソッドを含むクラス
である。一般的に、抽象メソッドは関連するインプリメ
ンテーションを持たないメソッドである。このため、抽
象メソッドはインスタンス化できない。多くの場合、抽
象クラス210は以下のように定義される。即ち、他の
クラスは抽象クラス210を拡張可能であり、さらには
抽象クラス210内で定義された抽象メソッドをインプ
リメントすることによって、これらを事実上“具象化”
する。具象クラス214はインスタンス化が可能であ
り、かつシステム・データベース内へ挿入できるクラス
である。更に、一般的に、具象クラス214は抽象クラ
ス210を拡張し得るように設けられている。
【0020】本実施形態では、抽象クラス210はBase
Entryクラスである。BaseEntryクラス210はパブリッ
クAPIインプリメンテーションを提供する。この結
果、BaseEntryクラス210は様々なタスクの集中管理
を可能にする。例えば、BaseEntryクラス210はトラ
ンザクションの生成、トランザクションの使用及びセキ
ュリティなどのタスクの効果的な集中管理を可能にす
る。Entryインターフェース208a及びTransactionFa
ctoryインターフェース208bによって定義され、か
つユーザによるアクセスが可能なエントリ・パブリック
APIを、BaseEntryクラス210は効果的にインプリ
メントする。エントリ・パブリックAPIをインプリメ
ントする以外に、BaseEntryクラス210が別のAPI
を定義し得ることを理解する必要がある。
【0021】一般的に、BaseEntryクラス210に関連
するメソッドは様々であるが、BaseEntryクラス210
はシステム・データベース内のエントリに対するロック
を獲得するメソッドと、このロックを返すメソッドとを
必要に応じて含み得る。更に、BaseEntryクラス210
はオペレーションをコミットするメソッド及びオペレー
ションをアボートするメソッドを含み得る。これらのメ
ソッドはBaseEntryクラス210によって効果的に定義
されるが、これらのメソッドはシステム・データベース
に関連した他のコンポーネントによって呼び出される
か、またはアプリケーションによって直接呼び出される
点を理解する必要がある。
【0022】BaseEntryクラス210に関連したinsert
メソッドのパブリックAPIインプリメンテーション
は、BaseEntryクラス210から派生した“子”の挿入
を実質的に可能にすることを意図している。この結果、
クライアント、即ち、ユーザなどによって関連するシス
テム・データベース内でパブリッシュされたエントリは
一般的に既知のヘリテージ、即ち、インターフェースの
エントリである。システム・データベース内の実質的に
全てのエントリ(クライアントがパブリッシュしたエン
トリを含む)の起源を知ることにより、システム・デー
タベースの安定性及びセキュリティが強化される。
【0023】システム・データベースに対する各エント
リはエントリ属性を有する。エントリ属性は様々であ
る。しかし、エントリの名前と、エントリの状態と、エ
ントリの親と、エントリの子と、エントリに関連したロ
ックと、エントリに関連したマネージャと、エントリに
関連した世代番号とにそれぞれ関する複数の属性を、Ba
seEntryクラス210は一般的にサポートしている。本
実施形態では、エントリの名前は実質的に固有名であ
る。即ち、エントリの名前は、そのエントリが属する親
の全ての子の間に唯一存在する名前である。
【0024】エントリの状態とは、エントリがその存続
期間中に移行できる状態を一般的に指す。エントリは3
つの状態、即ち、ドラフト状態(drafted state)、パ
ブリッシュ状態(published state)及びデリート状態
(deleted state)へ移行し得る。エントリがデータベ
ースの範囲の外側であって、かつ関連するオブジェクト
・ヒープの内側に位置する際、ドラフト状態は存在す
る。換言するならば、エントリが形成され、このエント
リがデータベース内に挿入されていないとき、ドラフト
状態は存在する。パブリッシュ状態とは、エントリをデ
ータベース内のパブリッシュされた親の下へ挿入した後
におけるこのエントリの状態を指す。エントリをデータ
ベース内で形成した後、このエントリの名前またはプロ
パティを探索基準として使用するアプリケーションまた
はシステム・サービスによって、このエントリの位置を
突き止め得る。デリート状態とは、エントリをシステム
・データベースから取り除いた際におけるこのエントリ
の状態を指す。
【0025】エントリの親である属性は実際には親エン
トリへのリファレンスである。その一方、エントリの子
である属性は、エントリの複数の子のうちの少なくとも
1つに対するリファレンスである。システム・データベ
ースのスーパー・ルート(スーパールートはそれ自体の
親である)を除く実質的に全てのエントリが単一の親エ
ントリを有する。エントリがパブリッシュ状態にある
際、そのエントリの親はナルでないが、エントリがドラ
フト状態にある際、そのエントリの親はナルであること
を理解する必要がある。エントリの親がナルの際、その
エントリがドラフトされた複数のエントリの階層構造の
サブツリー・ルートであることを意味する。エントリに
関連するロックは一般的には読み書きロックである。読
み書きロックは、干渉を受けることなくエントリの検査
または修正を実施することを可能にする。ロックは共有
ロックまたは排他ロックであり得る。即ち、ロックを共
有アクセスまたは排他アクセスに対して獲得可能であ
る。エントリに関連するマネージャは、このエントリの
セキュリティ・チェックを実施するか、またはこのエン
トリの振る舞いに影響を及ぼす。このため、このマネー
ジャは対応するエントリの“ポリシーをセット”するた
めに設けられている。
【0026】エントリ世代番号は、エントリが変更され
たか否かを表示するために使用される。1つの実施形態
では、エントリ世代番号は関連するエントリへ何らかの
変更が加えられるたびに単調増加する番号(例:64ビ
ット番号)である。当業者が理解するように、エントリ
の修正、即ち、変更はデータベース内におけるエントリ
の挿入、切り離しまたは除去であり得る。修正は任意の
属性の追加、変更または削除を含み得る。
【0027】SystemEntryクラス214aは、BaseEntry
クラス210の例えばサブクラスに関連する具象クラス
である。エントリに関連するプロパティの操作を可能に
するメソッドのインプリメンテーションに関連するメソ
ッドを、SystemEntryクラス214aは含む。
【0028】SystemEntryクラス214aはSystemAlias
Entryクラス214b及びPersistentSystemEntryクラス
214cに関連している。一般的に、SystemAliasEntry
クラス214bに関連するエントリは他のエントリを参
照するために使用される。即ち、SystemAliasEntryクラ
ス214bに関連するエントリはエイリアスが付けられ
たエントリである。複数のエイリアスが単一のエントリ
を表し得ることを理解する必要がある。PersistentSyst
emEntryクラス214cは永続エントリに関連するプロ
パティの操作に関連したメソッドを含む。更に、Persis
tentSystemEntryクラス214cはサーバーとの通信に
関連するメソッドを含み得る。
【0029】前記のように、Entryインターフェース2
08a及びTransactionFactoryインターフェース208
bが定義するシステム・データベース内のエントリに作
用するエントリ・パブリックAPIを、BaseEntryクラ
ス210は効果的にインプリメントする。TransactionF
actoryインターフェース208bはトランザクション・
オブジェクトを形成するために使用するサービスを定義
する。Entryインターフェース208aはTransactionFa
ctoryインターフェース208bを拡張すべく設けられ
ている。換言するならば、Entryインターフェース20
8aに関連するメソッドは、TransactionFactoryインタ
ーフェース208bのメソッドを実質的に増加させる。
従って、TransactionFactoryインターフェース208b
に関連するメソッドは特定のエントリへ適用されること
が多い。
【0030】一般的に、BaseEntryクラス210によっ
てインプリメントされるTransactionFactoryインターフ
ェース208b内で定義されているメソッドは非常に様
々である。これらのメソッドは共有トランザクションを
形成するメソッド及び排他トランザクションを形成する
メソッドを含む(但し、これらに限定されない)。更
に、メソッドはエントリ上で獲得されたロックのモード
を決定するメソッドを含み得る。例えば、このメソッド
はロックが共有及び排他のいずれであるかを決定し得
る。
【0031】BaseEntryクラス210がインプリメント
するEntryインターフェース208aに関連する事実上
全てのメソッドをシステム・データベース内の各エント
リがサポートするように、Entryインターフェース20
8aは設けられている。Entryインターフェース208
aに関連するgetName()メソッドはエントリの名前を返
すために設けられている。isDrafted()メソッドはエン
トリがドラフトされたか否かを表示するために設けられ
ている。isPublished()メソッドはエントリがパブリッ
シュされたか否かを表示するために設けられている。更
に、isDeleted()メソッドはエントリがデリートされた
か否かを表示するために設けられている。Entryインタ
ーフェース208aは、エントリに関連する永続性、現
在の世代、親、子及びプロパティ(更に一般的)に関す
る情報を返すメソッドにも関連している。
【0032】isPersistent()メソッドは特定のエントリ
が、永続(例:不揮発性)エントリ及び一時(例:揮発
性)エントリのいずれであるかを示すインディケータを
返す。現在の世代に関する情報を返すEntryインターフ
ェース208aに関連するメソッドは、エントリの現在
の世代番号を返すgetGenerationNumberメソッドを含
む。エントリの親に関するメソッドは特定のエントリの
親を返すために使用するgetParentメソッドを含む。
【0033】Entryインターフェース208aと、エン
トリの子に関する戻り情報とに関連するメソッドは、任
意のエントリの子へのリファレンスを獲得するために使
用するenumeration(列挙)を返すgetChildEntriesメソ
ッドを含む。enumerationは情報のリストを提供するた
めに使用し得るクラスである。エントリの子に関する情
報を返す他のメソッドは、任意のエントリの子の数量を
返すgetChildCountメソッドと、特定のエントリを別の
特定のエントリの子として挿入するために設けられたin
sertメソッドと、特定の子エントリを別の特定のエント
リから切り離するために設けられたdisconnectメソッド
と、特定の子エントリを取り除くために設けられたremo
veメソッドとを含む。
【0034】一般的に、プロパティに関連するメソッド
は、特定のエントリに対して定義されたプロパティの数
量を数えるgetPropertyCountメソッドと、現在定義され
ているプロパティの名前の実質的に全てを効果的に獲得
するgetPropertyNamesメソッドと、エントリのプロパテ
ィ値を獲得するgetPropertyValueメソッドと、特定のプ
ロパティの値を加算、即ち、変更するaddPropertyメソ
ッドと、特定のプロパティをエントリから取り除くremo
vePropertyメソッドとを含む。getPropertyNamesメソッ
ドなどのメソッドはenumerationを通じて名前を獲得し
得ることを理解する必要がある。
【0035】システム・データベースを含むシステムで
は、一般的に、クライアント及びサーバーはAPIを通
じてシステム・データベースと通信する。図3は本発明
の実施形態に基づくクライアント、サーバー及びシステ
ム・データベースの間の相互作用を示す図である。クラ
イアント304がエントリをシステム・データベース3
08上でパブリッシュすることを望む際、このエントリ
をネットワーク・コンピュータ(NC)316を使用し
てパブリッシュするために、クライアント304はクラ
イアントAPI312と連係する。アプリケーションは
システム・データベース308上でパブリッシュされ
る。一般的に、システム・データベース308は任意の
適切なデータベースであり得る。しかし、本実施形態で
は、システム・データベース308はJSDである。ア
プリケーション、より一般的には、システム・データベ
ース308上のエントリを、リトリーブまたは修正する
ためにも、クライアント304はクライアントAPI3
12を使用する。同様に、サーバー320が前記のエン
トリをシステム・データベース308上の管理情報とし
てパブリッシュする際、この管理情報をパブリッシュす
るために、サーバー320はサーバーAPI324を使
用する。システム・データベース308上のエントリを
リトリーブまたは修正するためにも、サーバー320は
サーバーAPI324と連係する。
【0036】1つの実施形態では、システム・データベ
ース308を単一の共有エントリとして示す。しかし、
クライアント304に関連するシステム・データベース
308のリプレゼンテーションと、サーバー320に関
連するシステム・データベース308のリプレゼンテー
ションとを提供するように、システム・データベース3
08を構成し得る。即ち、クライアント304及びサー
バー320はシステム・データベース・リプレゼンテー
ションをそれぞれ含み得る。クライアント304及びサ
ーバー320がそれぞれ独立したシステム・データベー
ス・リプレゼンテーション(例:独立したJSD)を含
むシステム全体では、クライアント304上のリプレゼ
ンテーションはサーバー320上のリプレゼンテーショ
ンと同じであり得る。
【0037】一般的に、クライアント304及びサーバ
ー320がシステム・データベース308を通じて互い
に通信する際、この通信はクライアント/サーバー・プ
ロトコル328を使用して実施される。従って、クライ
アント304がエントリをサーバー320へ提供する
際、このエントリをシステム・データベース308へ効
果的に渡すために、クライアント304はクライアント
API312を使用する。次いで、クライアント/サー
バー・プロトコル328を使用することにより、このエ
ントリをサーバーAPI324へ渡し、サーバーAPI
324はこのエントリをサーバー320へ転送する。
【0038】前記のように、クライアントAPI312
に関連する多くのインターフェース及びクラスは、サー
バーAPI324に関連するインターフェース及びクラ
スと実質的に同じである。図4は本発明の1つの実施形
態に基づくクライアントAPI312及びサーバーAP
I324の間の関係を示す図である。図4に示すよう
に、クライアントAPI312は実際にはサーバーAP
I324のサブセットである。換言するならば、サーバ
ーAPI324はクライアントAPI312に含まれる
実質的に全てのインターフェース及びクラスを含む。従
って、サーバーAPI324はクライアントAPI31
2のインターフェース及びクラスに関連する実質的に全
てのメソッドを含む。
【0039】コアAPI350はクライアントAPI3
12及びサーバーAPI324のそれぞれにおいて定義
される。即ち、クライアントAPI312及びサーバー
API324はコアAPI350のスーパーセットであ
る。コアAPI350内に含まれるインターフェース及
びクラスを図5に基づいて以下に詳述する。1つの実施
形態では、コアAPI350はパブリックからアクセス
できるインターフェース及びクラスを含むように定義で
きる。即ち、コアAPI350はパブリックが利用でき
るメソッド及びオペレーションを含むパブリックAPI
であり得る。
【0040】本発明の1つの実施形態に基づき、コアA
PIに関連するクラス間の関係を図5に基づいて詳述す
る。一般的に、コアAPI402はインターフェース4
08、抽象クラス410及び具象クラス414を含む。
インターフェース408、抽象クラス410及び具象ク
ラス414は図2に基づいて既に説明済みである。コア
API402内のインターフェース408はEntryイン
ターフェース408a、TransactionFactoryインターフ
ェース408b及びTreeインターフェース408cを含
む。コアAPI402内の抽象クラス410は、BaseEn
tryクラス410a及びTransactionクラス410bを含
む。その一方、コアAPI402内の具象クラス414
はSystemDatabaseクラス414d、SystemTreeクラス4
14e、Queryクラス414f及びPropertyQueryクラス
414gを含む。
【0041】クライアントAPI403はコアAPI4
02に関連する実質的に全てのメソッドと、図2に基づ
いて詳述したSystemEntryクラス414aに関連する全
てのメソッドとを含む。しかし、幾つかの実施形態で
は、クライアントAPI403はコアAPI402と同
じであり得ることを理解しておく必要がある。即ち、ク
ライアントAPI403はコアAPI402内で定義さ
れているメソッドのみを含み得る。本実施形態では、サ
ーバーAPI404はSystemAliasEntryクラス414b
及びPersistentSystemEntryクラス414cのメソッド
以外に、クライアントAPI403のメソッドを含む。
SystemAliasEntryクラス414b及びPersistentSystem
Entryクラス414cは図2に基づいて説明済みであ
る。
【0042】Entryインターフェース408a及びTrans
actionFactoryインターフェース408bはパブリック
APIを実質的に定義している。具体的には、BaseEntr
yクラス410a、SystemEntryクラス414a、System
AliasEntryクラス414b及びPersistentSystemEntry
クラス414cは事実上外部でパブリッシュされ、これ
によって、パブリックからは可視の状態にある一方で、
Entryインターフェース408a及びTransactionFactor
yインターフェース408bはパブリックAPIを定義
している。Treeインターフェース408cはシステム・
データベース内のツリーの操作を可能にするインターフ
ェースを定義する。Treeインターフェース408cに含
まれるメソッドは様々であり得るが、多くの場合、これ
らのメソッドは特定のツリーのルート・エントリを返す
getRootEntry()メソッドと、特定のツリーの現在のエン
トリを返すgetCurrentEntry()メソッドと、特定のツリ
ーの現在のエントリをセットするsetCurrentEntryメソ
ッドとを含む。
【0043】Treeインターフェース408cに関連する
メソッドは様々なPrintingメソッドの他に、“Find”メ
ソッド及び“Create”メソッドをさらに含む。一般的
に、Findメソッドは特定のパス名に基づいてエントリを
見つけるために設けられたfindEntryメソッドと、最深
層部に位置する特定のパス名の既存エントリを見つける
ために設けられたfindDeepestEntryメソッドとを含む
(但し、これらのメソッドに限定されない)。Createメ
ソッドは、特定のパス名を備えた新たなエイリアスを形
成するために設けられたnewAliasメソッドと、新たなエ
ントリ(例:新たなシステム・エントリ)を特定のパス
名または提供された新たな名前を使用して形成するため
に設けられたnewEntryメソッドとを含み得る。前記のよ
うに、抽象クラスであるBaseEntryクラス410aはパ
ブリックAPIをインプリメントする。コアAPI40
2は抽象クラスであるTransactionクラス410bをさ
らに含む。システム・データベース上で実施されるトラ
ンザクションに関連するメソッド及びコンストラクタ
を、Transactionクラス410bは一般的に含む。1つ
の実施形態では、Transactionクラス410bはisValid
()メソッド、getOwnerID()メソッド、commit()メソッド
及びabort()メソッドを含む。トランザクションが有効
であるか否かを表示するために、isValid()メソッドは
設けられている。当業者が理解するように、有効なトラ
ンザクションは、過去にコミットまたはアボートされて
いないトランザクションである。特定のトランザクショ
ンを生成したスレッドに関連する識別子を返すために、
getOwnerID()メソッドは設けられている。commit()メソ
ッドはトランザクションを効果的にコミットする。これ
によって、システム・データベースに対する実質的に全
ての関連する変更が可視となり、関連するイベントが生
成され、維持されていたロックが解放される。トランザ
クションをアボートし、これによって、このトランザク
ションが行った全ての変更を“ロールバック”し、かつ
維持されていた全てのロックを解放するために、abor
t()メソッドは設けられている。
【0044】コアAPI402は様々な具象クラスを含
む。システム・データベースに関連する情報を初期化す
るために使用するメソッドと、このシステム・データベ
ースに関連する情報を返すために使用するメソッドと
を、SystemDatabaseクラス414dは含む。例えば、Sy
stemDatabaseクラス414dは、システム・データベー
スを初期化するために設けられたSystemDatabase()クラ
スと、システム・データベースに関連するスーパー・ル
ートのエントリ・リファレンスを返すために設けられた
getSuperRootEntry()クラスと、システム・データベー
スを定義するツリーを返すために設けられたgetSystemD
atabase()クラスとを含み得る。Treeインターフェース
408cによって定義されたメソッドをインプリメント
するために、SystemTreeクラス414eは設けられてい
る。即ち、特定のツリーのルート・エントリを返すgetR
ootEntry()メソッドと、特定のツリーの現在のエントリ
を返すgetCurrentEntry()メソッドと、特定のツリーの
現在のエントリをセットするsetCurrentEntryメソッド
とを含む(但し、これらのメソッドに限定されない)メ
ソッドを、SystemTreeクラス414はインプリメントす
る。
【0045】1つの実施形態では、Queryクラス414
fはシステム・データベースに対するサーチを実施する
ために使用するメソッドを含む。例えば、特定のスコー
プにマッチする全てのエントリを決定するために、ルー
トをクエリする、即ち、問い合わるメソッドをQueryク
ラス414fは一般的に含む。Queryクラス414f
は、サーチのスコープを変更するために設けられたsetS
earchScope()メソッドと、サーチのスコープを獲得する
ために設けられたgetSearchScope()メソッドと、サーチ
に使用するエントリ名を提供するために設けられたgetS
earchName()メソッドと、最後のマッチを問い合わせる
クエリをリセットするpreviousMatch()メソッドと、現
在のマッチを返すために設けられたgetCurrentMatch()
メソッドと、他の多数のメソッドとをさらに含み得る。
これらの他のメソッドは複数のマッチの結果(例:直前
のマッチの結果または次のマッチの結果)を返すことに
関連したメソッドを含み得る(但し、これらのメソッド
に限定されない)。
【0046】PropertyQueryクラス414gはQueryクラ
ス414fのエクステンションである。換言するなら
ば、PropertyQueryクラス414f内のメソッドはQuery
クラス414fのメソッドを効果的にオーバーライドし
得る。一般的に、PropertyQueryクラス414gに含ま
れるメソッドは、サーチ機能をエントリ・プロパティ名
に基づいて提供するために設けられている。具体的に
は、これらのメソッドは、任意のプロパティ名を有する
全てのエントリを特定のスコープ内でサーチすることを
意図したメソッドを含み得る。
【0047】図6は本発明の実現に適した一般的な汎用
コンピュータ・システムを示す。コンピュータ・システ
ム530はメモリ・デバイスへ接続された少なくとも1
つのプロセッサ532を有し、このプロセッサ532は
中央処理装置(CPU)とも称される。プロセッサ53
2はネットワーク・コンピュータの一部であり得る
(例:プロセッサ532はネットワーク・コンピュータ
と通信する)。一般的に、メモリ・デバイスはリード・
オンリ・メモリ(ROM)などの一次記憶装置534
と、ランダム・アクセス・メモリ(RAM)などの一次
記憶装置536とを含み得る。
【0048】当該技術分野で知られているように、RO
M534はデータ及び命令をCPU532へ単方向に転
送すべく機能する。その一方、RAM536はデータ及
び命令をCPU532に対して両方向に送受信すべく一
般的に使用される。これら2つの一次記憶装置534,
536は任意の適切なコンピュータ読み取り可能媒体を
それぞれ含み得る。一般的には大容量メモリ装置である
二次記憶媒体538は両方向でCPU532へ接続可能
である。一般的に、二次記憶媒体538は別のデータ記
憶能力を提供すべく構成されている。更に、二次記憶媒
体538はコンピュータ・コード、コンピュータ・プロ
グラム・コード・デバイス及びデータ等を含むプログラ
ムを格納するために使用するコンピュータ読み取り可能
媒体であり得る。1つの実施形態では、二次記憶媒体5
38は複数のコンピュータ・システムが共有するシステ
ム・データベースであり得る。一般的に、二次記憶媒体
538は一次記憶装置534,536より遅いハード・
ディスクまたはテープ等の記憶媒体である。二次記憶媒
体538は磁気テープ・リーダー及びペーパー・テープ
・リーダー(但し、これらに限定されない)を含む周知
のデバイスの形態をなし得る。当業者が理解するよう
に、適切なケースでは、二次記憶装媒体538内に保持
されている情報は、RAM536の一部(例:バーチャ
ル・メモリ)として標準的な形式で組み込み得る。CD
−ROM等の特定の一次記憶装置534はデータを単方
向にCPU532へ送信可能である。
【0049】CPU532は1つ以上の入出力装置(I
/O)540へ接続されている。入出力装置540は、
ビデオ・モニタ、トラック・ボール、マウス、キーボー
ド、マイクロホン、タッチ・ディスプレイ、トランスデ
ューサ・カード・リーダー、磁気テープ・リーダー、ペ
ーパー・テープ・リーダー、タブレット、スタイラス、
音声認識装置、手書き文字認識装置及び他の周知の入力
装置(例:他のコンピュータ)を含み得る(但し、これ
らに限定されない)。符号512で示すネットワーク接
続を使用することにより、CPU532をコンピュータ
またはテレコミュニケーション・ネットワーク(例:イ
ンターネット・ネットワークまたはイントラネット・ネ
ットワーク)へ接続可能である。このネットワーク接続
512により、CPU532は情報をネットワークから
受信し得る。更に、CPU532は情報をネットワーク
へ出力可能である。多くの場合、この情報はCPU53
2を用いて実行する命令の順番列を表す。更に、この情
報は例えば搬送波に組み込まれたコンピュータ・データ
信号としてネットワークに対して送受信可能である。前
記の複数のデバイス及び資材は、コンピュータ・ハード
ウェア及びソフトウェアの技術分野の当業者には公知で
ある。
【0050】以上、本発明の僅かな実施形態のみを詳述
したが、本発明の精神または範囲から逸脱することな
く、本発明を他の多数の特定の形態で実施し得ることを
理解する必要がある。例えば、クライアントAPIはサ
ーバーAPIの“サブセット”である必要はない。幾つ
かの実施形態では、クライアントAPIに関連する全て
のクラス及びインターフェースを含むサーバーAPIの
代わりにコアAPIを定義するために、クライアントA
PI及びサーバーAPIを互いにオーバーラップさせ得
る。別の実施形態では、クライアントAPI及びコアA
PIは同一であり得る。即ち、クライアントAPI内の
全てのインターフェース及びクラスをコアAPI内に含
め得る。
【0051】前記のように、コアAPIはパブリックA
PIであり得る。例えば、図5において、1つの実施形
態では、パブリックAPIはBaseEntryクラス410a
を除くコアAPI402内の全てのインターフェース及
びクラスを含み得る。別の実施形態では、クライアント
APIはコアAPI内のクラス及びインターフェースの
みを含み得る。即ち、クライアントAPIはコアAPI
と同じであり得る。これによって、事実上、クライアン
トAPIはパブリックAPIとなる。これに代えて、コ
アAPIは保護API(protected API)を含み得る。
保護APIに関連するメソッドは外部からは不可視であ
るため、保護APIはプライベートAPIとみなし得
る。
【0052】コアAPIのスーパーセットがクライアン
トAPIであって、クライアントAPIのスーパーセッ
トがサーバーAPIであるものとして、コアAPI、ク
ライアントAPI及びサーバーAPIの間の関係を詳述
したが、これらの関係は本発明の精神または範囲から逸
脱することなく変更し得る。例えば、サーバーAPIは
クライアントAPIのスーパーセットである必要はな
い。即ち、サーバーAPI及びクライアントAPIはコ
アAPIをそれぞれ含むことが可能である一方、サーバ
ーAPIはクライアントAPI全体を含む必要はない。
これに代えて、コアAPIに含まれないクライアントA
PIの僅かな数のクラスまたはインターフェースのみ
を、サーバーAPIは含んでもよい。これに代えて、コ
アAPIに含まれていないクライアントAPIのクラス
またはインターフェースを、サーバーAPIは全く含ま
ないことが可能である。
【0053】一般的に、コアAPIに関連するクラス階
層構造は様々である。例えば、クラス階層構造は複数の
実施形態においてそれぞれ異なり得る。そして、これら
の実施形態では、APIに関連する更に多い数または更
に少ない数のクラスが存在する。同様に、特定のシステ
ムの要件に基づいて、複数のAPIに関連するクラス及
びメソッドは本発明の趣旨及び範囲から逸脱することな
くそれぞれ異なり得る。エントリ・インターフェース・
メソッド及びツリー・インターフェース・メソッドなど
のメソッドに対する引数は、特定のエントリ名を含むも
のとして詳述した。しかし、図2及び図4に基づいて詳
述した様々なメソッドに使用する引数がいろいろあるこ
とを理解する必要がある。幾つかのメソッドは引数とし
て特定のトランザクションを使用する一方、他のメソッ
ドは無名トランザクションを引数として効果的に使用し
得る。更に、幾つかのメソッドは引数を全く使用しない
ことがあり得る。従って、本明細書に開示した複数の実
施形態は例示目的であって、限定目的ではない。更に、
本発明は本明細書に開示する詳細部分に限定されること
なく、請求の範囲内で変更し得る。
【図面の簡単な説明】
【図1】本発明の実施形態に基づくシステム・データベ
ースにおける関係を示す図である。
【図2】本発明の実施形態に基づくシステム・データベ
ース内の複数のエントリをインプリメントするために使
用し得るインターフェース及びクラスの階層構造を示す
図である。
【図3】本発明の実施形態に基づくクライアント、サー
バー、システム・データベースの間の相互作用を示す図
である。
【図4】本発明の実施形態に基づくサーバー・アプリケ
ーション・プログラミング・インターフェース、クライ
アント・アプリケーション・プログラミング・インター
フェース及びコア・アプリケーション・プログラミング
・インターフェースの間の関係を示す図である。
【図5】本発明の実施形態に基づくコア・アプリケーシ
ョン・プログラミング・インターフェースに関連する複
数のクラス間の関係を示す図である。
【図6】本発明の実現に適したコンピュータ・システム
を示す図である。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ジェフリー・エー.・シュミット アメリカ合衆国 カリフォルニア州95006 ボウルダー・クリーク,ロッジ・ロー ド,535 (72)発明者 バーナード・エー.・トラバサット アメリカ合衆国 カリフォルニア州94109 サン・フランシスコ,カリフォルニア・ ストリート,2055 アパートメント402 (72)発明者 トーマス・サウルポー アメリカ合衆国 カリフォルニア州95120 サン・ホセ,ブレット・ハーテ・ドライ ブ,6938 (72)発明者 グレゴリー・エル.・スローター アメリカ合衆国 カリフォルニア州94306 パロ・アルト,エマーソン・ストリー ト,3326

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトベースシステム内のクラス
    構造であって、システム・データベースへのアクセスを
    可能にするアプリケーション・プログラミング・インタ
    ーフェースを提供すべく設けられたクラス構造におい
    て、 コア・アプリケーション・プログラミング・インターフ
    ェースを定義すべく設けられた第1セットのクラスと、 前記システム・データベースと通信するクライアントに
    関連したクライアント・アプリケーション・プログラミ
    ング・インターフェースを定義すべく設けられ、かつ前
    記第1セットのクラスを含む第2セットのクラスと、 前記システム・データベースと通信するサーバーに関連
    したサーバー・アプリケーション・プログラミング・イ
    ンターフェースを定義すべく設けられ、かつ前記第2セ
    ットのクラスを含む第3セットのクラスとを含むクラス
    構造。
  2. 【請求項2】 前記第1セットのクラスは少なくとも1
    つのインターフェースを含む請求項1に記載のクラス構
    造。
  3. 【請求項3】 前記少なくとも1つのインターフェース
    はEntryインターフェースを含む請求項2に記載のクラ
    ス構造。
  4. 【請求項4】 前記第1セットのクラスは少なくとも1
    つの抽象クラスと、少なくとも1つの具象クラスとを含
    む請求項1または2に記載のクラス構造。
  5. 【請求項5】 前記少なくとも1つの抽象クラスはBase
    Entryクラスを含み、前記少なくとも1つの具象クラス
    はSystemDatabaseクラス、Queryクラス及びPropertyQue
    ryクラスを含む請求項4に記載のクラス構造。
  6. 【請求項6】 前記第2セットのクラスは具象クラスで
    あるSystemEntryクラスを含む請求項5に記載のクラス
    構造。
  7. 【請求項7】 前記第3セットのクラスはコンクリート
    クラスであるSystemAliasEntryクラス及びPersistentSy
    stemEntryクラスを含む請求項6に記載のクラス構造。
  8. 【請求項8】 前記コア・アプリケーション・プログラ
    ミング・インターフェースはパブリック・アプリケーシ
    ョン・プログラミング・インターフェースである請求項
    1、2及び4のいずれか一項に記載のクラス構造。
  9. 【請求項9】 オブジェクトベースシステム内のクラス
    構造であって、前記オブジェクトベースのシステムに関
    連したシステム・データベースへのアクセスを可能にす
    るアプリケーション・プログラミング・インターフェー
    スを提供すべく設けられたクラス構造において、 前記システム・データベースと通信するクライアントに
    関連し、かつクラス及びインターフェースの階層構造を
    含むクライアント・アプリケーション・プログラミング
    ・インターフェースと、 前記システム・データベース及び前記クライアントとそ
    れぞれ通信するサーバーに関連し、かつ前記クライアン
    ト・アプリケーション・プログラミング・インターフェ
    ースを含むサーバー・アプリケーション・プログラミン
    グ・インターフェースとを含むクラス構造。
  10. 【請求項10】 前記クライアント・アプリケーション
    ・プログラミング・インターフェースはパブリック・メ
    ソッド及びパブリック・インターフェースを含むパブリ
    ック・アプリケーション・プログラミング・インターフ
    ェースである請求項9に記載のクラス構造。
  11. 【請求項11】 前記システム・データベースはジャバ
    ・システム・データベースである請求項9または10に
    記載のクラス構造。
  12. 【請求項12】 前記サーバー・アプリケーション・プ
    ログラミング・インターフェースは、前記クライアント
    ・アプリケーション・プログラミング・インターフェー
    スに関連した前記クラス及びインターフェースの階層構
    造に含まれていない少なくとも1つのクラスを含む請求
    項9乃至11のいずれか一項に記載のクラス構造。
JP13470499A 1998-05-14 1999-05-14 オブジェクトベースコンピュータシステム Expired - Lifetime JP4511650B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/079102 1998-05-14
US09/079,102 US6598093B1 (en) 1998-05-14 1998-05-14 Method and apparatus for a core application programming interface

Publications (3)

Publication Number Publication Date
JP2000137602A true JP2000137602A (ja) 2000-05-16
JP2000137602A5 JP2000137602A5 (ja) 2006-07-20
JP4511650B2 JP4511650B2 (ja) 2010-07-28

Family

ID=22148450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13470499A Expired - Lifetime JP4511650B2 (ja) 1998-05-14 1999-05-14 オブジェクトベースコンピュータシステム

Country Status (3)

Country Link
US (1) US6598093B1 (ja)
EP (1) EP0957439A3 (ja)
JP (1) JP4511650B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309621A (ja) * 2005-04-28 2006-11-09 Toshiba Corp ソフトウェアのプラグイン方法、および、アプリケーションシステム

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020174193A1 (en) * 2001-04-30 2002-11-21 Mikhalchuk Andrei Sergeevich Split client-server software development architecture
US7581231B2 (en) * 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US7117504B2 (en) * 2001-07-10 2006-10-03 Microsoft Corporation Application program interface that enables communication for a network software platform
US7546602B2 (en) 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7165239B2 (en) * 2001-07-10 2007-01-16 Microsoft Corporation Application program interface for network software platform
US7017162B2 (en) 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US20040215650A1 (en) * 2003-04-09 2004-10-28 Ullattil Shaji Interfaces and methods for group policy management
US8244841B2 (en) * 2003-04-09 2012-08-14 Microsoft Corporation Method and system for implementing group policy operations
US7783672B2 (en) * 2003-04-09 2010-08-24 Microsoft Corporation Support mechanisms for improved group policy management user interface
US7426734B2 (en) * 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
US7926068B2 (en) * 2004-10-22 2011-04-12 Microsoft Corporation Printing interface for a computer platform
US20060101436A1 (en) * 2004-10-26 2006-05-11 Microsoft Corporation Hosting environment abstraction model for content
US7512957B2 (en) 2004-12-03 2009-03-31 Microsoft Corporation Interface infrastructure for creating and interacting with web services
US7584416B2 (en) * 2006-02-21 2009-09-01 Microsoft Corporation Logical representation of a user interface form
US20080307312A1 (en) * 2007-06-08 2008-12-11 Infosys Technologies Ltd. User interface development tools
US8245144B2 (en) * 2008-06-27 2012-08-14 Microsoft Corporation Object model for a user interface

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542078A (en) * 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5838965A (en) * 1994-11-10 1998-11-17 Cadis, Inc. Object oriented database management system
US5742813A (en) * 1994-11-10 1998-04-21 Cadis, Inc. Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects
US6212575B1 (en) * 1995-05-05 2001-04-03 Apple Computer, Inc. Extensible, replaceable network component system
US5732261A (en) * 1995-07-19 1998-03-24 Ricoh Company, Ltd. Method of using an object-oriented communication system with support for multiple remote machine types
US5765039A (en) * 1995-07-21 1998-06-09 Unisys Corpration Method for providing object database independence in a program written using the C++ programming language
US5857197A (en) * 1997-03-20 1999-01-05 Thought Inc. System and method for accessing data stores as objects
US5966707A (en) * 1997-12-02 1999-10-12 International Business Machines Corporation Method for managing a plurality of data processes residing in heterogeneous data repositories
US6173439B1 (en) * 1998-03-11 2001-01-09 International Business Machines Corporation Interface mechanism and method for accessing non-object oriented data from within an object oriented framework
US6101607A (en) * 1998-04-24 2000-08-08 International Business Machines Corporation Limit access to program function
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309621A (ja) * 2005-04-28 2006-11-09 Toshiba Corp ソフトウェアのプラグイン方法、および、アプリケーションシステム

Also Published As

Publication number Publication date
EP0957439A3 (en) 2003-12-03
EP0957439A2 (en) 1999-11-17
US6598093B1 (en) 2003-07-22
JP4511650B2 (ja) 2010-07-28

Similar Documents

Publication Publication Date Title
US6233582B1 (en) Persistent storage interface for a configuration object-based system
US6704803B2 (en) Method and system for distributing data events over an information bus
US5809507A (en) Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
US5542078A (en) Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US7827302B2 (en) Scalable virtual partitioning of resources
JP4511650B2 (ja) オブジェクトベースコンピュータシステム
US6704804B1 (en) Method and system for communicating information among interactive applications
EP2453373B1 (en) Method and system for transacted file operations over a network
US6266716B1 (en) Method and system for controlling data acquisition over an information bus
US6154741A (en) Entitlement management and access control system
US5768511A (en) Method and system for managing objects in networked computer system with action performed in the server and object updated in the client
US8166009B2 (en) Method and apparatus for optimistic locking using SQL select, update, delete, and insert statements
EP0733972A2 (en) Method and apparatus for managing relationships among objects in a distributed object environment
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
US20050015674A1 (en) Method, apparatus, and program for converting, administering, and maintaining access control lists between differing filesystem types
US20050266926A1 (en) Method and apparatus for executing event driven simulations
JP2000089989A (ja) 文書に付与されたプロパティを用いたサ―ビスの起動方法
JPH0644128A (ja) オブジェクト指向プログラミングを支援するデータベース管理システム及び方法
JPH10511202A (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
JP2006012155A (ja) ユーザ定義型の指定されたメンバを遅延フェッチするシステムおよび方法
US20040019887A1 (en) Method, system, and program for loading program components
US6901417B2 (en) Method, system, and program for updating records in a database when applications have different version levels
US7591015B2 (en) Secure kernel transactions
US6996682B1 (en) System and method for cascading data updates through a virtual copy hierarchy
JP2007528555A (ja) ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090810

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100209

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100304

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100420

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100507

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

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

Year of fee payment: 3

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

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