JP4511650B2 - オブジェクトベースコンピュータシステム - Google Patents
オブジェクトベースコンピュータシステム Download PDFInfo
- Publication number
- JP4511650B2 JP4511650B2 JP13470499A JP13470499A JP4511650B2 JP 4511650 B2 JP4511650 B2 JP 4511650B2 JP 13470499 A JP13470499 A JP 13470499A JP 13470499 A JP13470499 A JP 13470499A JP 4511650 B2 JP4511650 B2 JP 4511650B2
- Authority
- JP
- Japan
- Prior art keywords
- system database
- class
- entry
- application programming
- programming interface
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-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)
Description
【発明の属する技術分野】
一般的に、本発明はコンピュータ・システム内のアプリケーション・プログラミング・インターフェースを提供する方法及び装置に関する。より詳細には、本発明はコンピュータ・システム内の異なる複数のアプリケーション・プログラミング・インターフェースによる使用に適したコア・アプリケーション・プログラミング・インターフェースに関する。
【0002】
【従来の技術】
ネットワーク接続されたコンピューティング・システムの利用はパーソナル・コンピュータの利用の普及にともなって増大している。複数のコンピュータ・システムをネットワーク接続すること、即ち、互いにリンクすることにより、複数のユーザ、即ち、コンピュータ・システムはソフトウェア・アプリケーションなどのリソースを共有できる。一般的に、ネットワークを通じたリソースの共有により、ネットワーク接続された各ユーザは自分自身にとってローカルなリソースを更に効率的に使用し、かつ割り当てることができる。
【0003】
ネットワーク接続されたコンピューティング・システム内の複数のリソースを1つにまとめる努力の過程で、ネットワーク・コンピュータが開発された。一般的に、ネットワーク・コンピュータはネットワーク内のクライアントとして使用される。一般的に、ネットワーク・コンピュータは、ほとんどが遠隔のデータベース及びリソース(これらの多くはネットワーク上のサーバーである)を使用したアクセス及びオペレーションを行うために設けられたシステムである。概して、ネットワーク・コンピュータなどのプラットフォームは書き込み可能記憶装置(例:ディスク・ドライブ)へのローカル・アクセスを有していない。この場合、ネットワーク・コンピュータを使用するユーザは、任意の数のユーザが共有するリモート・データベース上における情報へのアクセス及び情報の格納が可能である。この結果、例えば、ネットワーク・コンピュータは書き込み可能な大容量ローカル記憶装置の能力を持つ必要がない。
【0004】
多くの場合、アプリケーション、即ち、エントリのパブリッシュ及びリトリーブを共有データベース上で可能にすることに関連したインターフェース(例:アプリケーション・プログラミング・インターフェース(API))は、比較的多くのメソッドを含む。例えば、共有データベースに対するエントリのパブリッシュと、共有データベース上でのエントリのサーチと、共有データベースからのエントリのリトリーブとをクライアントが実施することを可能にするために、メソッド群は一般的に必要である。同様に、共有データベースに対するエントリのパブリッシュと、共有データベース上でのエントリのサーチと、共有データベースからのエントリのリトリーブとをサーバーが実施することを可能にするために、メソッド群は一般的に必要である。
【0005】
エントリのパブリッシュ、エントリのサーチ及びエントリのリトリーブに使用する複数のメソッドを提供するために必要なリソースは大きい。特に、クライアントAPIに関連する機能性及びサーバーAPIに関連する機能性のシステム・データベース上での維持は、システム・データベース上における相当な量のリソースを必要とし得る。一般的に、クライアントAPIに関連する複数のメソッドのうちの幾つかと、サーバーAPIに関連する複数のメソッドのうちの幾つかとは同じである。即ち、これら幾つかのメソッドがクライアントに対してインプリメントされたのか、それともサーバーに対してインプリメントされたのかということとは無関係に、これら幾つかのメソッドは同一である。この結果、互いに関連する複数のメソッドの使用法及び機能の一貫性を維持することが困難であるため、サーバーAPI及びクライアント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に共通するメソッドのコア・セット、即ち、コア・グループを識別し、関連するコア・クラス階層構造を構築することにより、このクラス階層構造が提供する機能性を一貫して維持できる。特に、サーバーAPI及びクライアントAPIに使用する多くのメソッドが事実上同一であるため、サーバーAPI及びクライアントAPIの両方に共通するメソッドの“コアAPI”の開発は、メソッドの使用法及び機能性の一貫性の維持を可能にするとともに、システム・データベース・リソースの効率的使用を可能にする。
【0014】
一般的に、複数のネットワーク・コンピュータをサポートするために設けられたコンピューティング・ネットワークは、システム・データベースを中心コンポーネントとして使用する。1つの実施形態では、システムはジャバ(商標名)システム・データベース(Java system database、以下、略してJSDと称する)であり得る。一般的に、JSDは、ジャバ(商標名)ベースのプラットフォーム上におけるコンフィギュレーション情報の格納及びリトリーブをオペレーティング・システム、システム・サービス、アプリケーション及びツールが実施することを可能にする。例えば、JSDに関連するマシン内に存在する物理デバイスと、インストールされたシステム・ソフトウェア・サービスと、固有のユーザ・アプリケーション・プロフィール及びグループ・アプリケーション・プロフィールとを記述すべくコンフィギュレーション情報は設けられている。コンフィギュレーションを目的として使用される実質的に全ての情報の格納及びアクセスのための中央リポジトリとして、JSDは効果的に機能する。従って、JSDを使用することによって、アプリケーション及びサービスは様々なコンフィギュレーションを実現し得る。
【0015】
図1は本発明の1つの実施形態に基づくシステム・データベースに関連した関係を示す図である。一般的に、システム・データベース104(例:JSD)はサービスをクライアント、より詳細にはユーザ108へ提供する。換言するならば、クライアント−サーバー環境内において、システム・データベース104はクライアントサイドのコンフィギュレーション及び通信のハブとして効果的に機能する。システム・データベース104は、本発明に基づく関連したコアAPIを有する複数のコンピューティング・システムからなるネットワーク内の中央データベースとして機能し、かつエントリの階層構造を一般的に有する。この階層構造の各エントリはパス名によって識別される情報の原子ユニットである。システム・データベース104内のエントリは1つ以上の関連するプロパティを有し、このプロパティはエントリの記述を提供すべく設けられている。一般的に、システム・データベース104上のエントリはツリー内に格納可能である。
【0016】
システム・データベース104は情報記憶、情報検索及び情報パブリッシングを含むサービス(但し、これらに限定されない)をユーザ108へ提供する。具体的には、ユーザ108に関連したコンフィギュレーションに関する情報の格納、リトリーブ及びパブリッシングをユーザ108自身が実施することを、システム・データベース104は一般的に可能にする。
【0017】
多くの場合、システム・データベース104と実際に通信するデバイス、より詳細には、デバイス・ドライバを記述した情報をコンフィギュレーション、即ち、コンフィギュレーション情報は含む。一般的に、これらのデバイスはマシン及びユーザ108に関連している。システム・データベース104を通じて利用できるシステム・サービス(例:オペレーティング・システム(OS)システム・サービス112)に関する記述を、コンフィギュレーション情報はさらに含み得る。幾つかの実施形態では、選択したグループの属性及びユーザの属性と、システム・データベース104を通じてユーザ108が利用できるソフトウェア・アプリケーション116に関連した実質的に全ての必要なアプリケーション固有情報とを、コンフィギュレーション情報はさらに記述している。カリフォルニア州パロアルト市に所在するサンマイクロシステムズ・インコーポレイテッドが開発したジャバ(商標名)プログラミング言語で書かれたアプレットなどのアプレットをアプリケーション116が含み得ることを理解する必要がある。
【0018】
ユーザ108、システム・サービス112及びアプリケーション116と通信する以外に、システム・データベース104はOSカーネル120にも関連している。本実施形態では、システム・データベース104は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はBaseEntryクラスである。BaseEntryクラス210はパブリックAPIインプリメンテーションを提供する。この結果、BaseEntryクラス210は様々なタスクの集中管理を可能にする。例えば、BaseEntryクラス210はトランザクションの生成、トランザクションの使用及びセキュリティなどのタスクの効果的な集中管理を可能にする。Entryインターフェース208a及びTransactionFactoryインターフェース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】
システム・データベースに対する各エントリはエントリ属性を有する。エントリ属性は様々である。しかし、エントリの名前と、エントリの状態と、エントリの親と、エントリの子と、エントリに関連したロックと、エントリに関連したマネージャと、エントリに関連した世代番号とにそれぞれ関する複数の属性を、BaseEntryクラス210は一般的にサポートしている。本実施形態では、エントリの名前は実質的に固有名である。即ち、エントリの名前は、そのエントリが属する親の全ての子の間に唯一存在する名前である。
【0024】
エントリの状態とは、エントリがその存続期間中に移行できる状態を一般的に指す。エントリは3つの状態、即ち、ドラフト状態(drafted state)、パブリッシュ状態(published state)及びデリート状態(deleted state)へ移行し得る。エントリがデータベースの範囲の外側であって、かつ関連するオブジェクト・ヒープの内側に位置する際、ドラフト状態は存在する。換言するならば、エントリが形成され、このエントリがデータベース内に挿入されていないとき、ドラフト状態は存在する。パブリッシュ状態とは、エントリをデータベース内のパブリッシュされた親の下へ挿入した後におけるこのエントリの状態を指す。エントリをデータベース内で形成した後、このエントリの名前またはプロパティを探索基準として使用するアプリケーションまたはシステム・サービスによって、このエントリの位置を突き止め得る。デリート状態とは、エントリをシステム・データベースから取り除いた際におけるこのエントリの状態を指す。
【0025】
エントリの親である属性は実際には親エントリへのリファレンスである。その一方、エントリの子である属性は、エントリの複数の子のうちの少なくとも1つに対するリファレンスである。システム・データベースのスーパー・ルート(スーパールートはそれ自体の親である)を除く実質的に全てのエントリが単一の親エントリを有する。エントリがパブリッシュ状態にある際、そのエントリの親はナルでないが、エントリがドラフト状態にある際、そのエントリの親はナルであることを理解する必要がある。エントリの親がナルの際、そのエントリがドラフトされた複数のエントリの階層構造のサブツリー・ルートであることを意味する。
エントリに関連するロックは一般的には読み書きロックである。読み書きロックは、干渉を受けることなくエントリの検査または修正を実施することを可能にする。ロックは共有ロックまたは排他ロックであり得る。即ち、ロックを共有アクセスまたは排他アクセスに対して獲得可能である。エントリに関連するマネージャは、このエントリのセキュリティ・チェックを実施するか、またはこのエントリの振る舞いに影響を及ぼす。このため、このマネージャは対応するエントリの“ポリシーをセット”するために設けられている。
【0026】
エントリ世代番号は、エントリが変更されたか否かを表示するために使用される。1つの実施形態では、エントリ世代番号は関連するエントリへ何らかの変更が加えられるたびに単調増加する番号(例:64ビット番号)である。当業者が理解するように、エントリの修正、即ち、変更はデータベース内におけるエントリの挿入、切り離しまたは除去であり得る。修正は任意の属性の追加、変更または削除を含み得る。
【0027】
SystemEntryクラス214aは、BaseEntryクラス210の例えばサブクラスに関連する具象クラスである。エントリに関連するプロパティの操作を可能にするメソッドのインプリメンテーションに関連するメソッドを、SystemEntryクラス214aは含む。
【0028】
SystemEntryクラス214aはSystemAliasEntryクラス214b及びPersistentSystemEntryクラス214cに関連している。一般的に、SystemAliasEntryクラス214bに関連するエントリは他のエントリを参照するために使用される。即ち、SystemAliasEntryクラス214bに関連するエントリはエイリアスが付けられたエントリである。複数のエイリアスが単一のエントリを表し得ることを理解する必要がある。PersistentSystemEntryクラス214cは永続エントリに関連するプロパティの操作に関連したメソッドを含む。更に、PersistentSystemEntryクラス214cはサーバーとの通信に関連するメソッドを含み得る。
【0029】
前記のように、Entryインターフェース208a及びTransactionFactoryインターフェース208bが定義するシステム・データベース内のエントリに作用するエントリ・パブリックAPIを、BaseEntryクラス210は効果的にインプリメントする。TransactionFactoryインターフェース208bはトランザクション・オブジェクトを形成するために使用するサービスを定義する。Entryインターフェース208aはTransactionFactoryインターフェース208bを拡張すべく設けられている。換言するならば、Entryインターフェース208aに関連するメソッドは、TransactionFactoryインターフェース208bのメソッドを実質的に増加させる。従って、TransactionFactoryインターフェース208bに関連するメソッドは特定のエントリへ適用されることが多い。
【0030】
一般的に、BaseEntryクラス210によってインプリメントされるTransactionFactoryインターフェース208b内で定義されているメソッドは非常に様々である。これらのメソッドは共有トランザクションを形成するメソッド及び排他トランザクションを形成するメソッドを含む(但し、これらに限定されない)。更に、メソッドはエントリ上で獲得されたロックのモードを決定するメソッドを含み得る。例えば、このメソッドはロックが共有及び排他のいずれであるかを決定し得る。
【0031】
BaseEntryクラス210がインプリメントするEntryインターフェース208aに関連する事実上全てのメソッドをシステム・データベース内の各エントリがサポートするように、Entryインターフェース208aは設けられている。Entryインターフェース208aに関連するgetName()メソッドはエントリの名前を返すために設けられている。isDrafted()メソッドはエントリがドラフトされたか否かを表示するために設けられている。isPublished()メソッドはエントリがパブリッシュされたか否かを表示するために設けられている。更に、isDeleted()メソッドはエントリがデリートされたか否かを表示するために設けられている。Entryインターフェース208aは、エントリに関連する永続性、現在の世代、親、子及びプロパティ(更に一般的)に関する情報を返すメソッドにも関連している。
【0032】
isPersistent()メソッドは特定のエントリが、永続(例:不揮発性)エントリ及び一時(例:揮発性)エントリのいずれであるかを示すインディケータを返す。現在の世代に関する情報を返すEntryインターフェース208aに関連するメソッドは、エントリの現在の世代番号を返すgetGenerationNumberメソッドを含む。エントリの親に関するメソッドは特定のエントリの親を返すために使用するgetParentメソッドを含む。
【0033】
Entryインターフェース208aと、エントリの子に関する戻り情報とに関連するメソッドは、任意のエントリの子へのリファレンスを獲得するために使用するenumeration(列挙)を返すgetChildEntriesメソッドを含む。enumerationは情報のリストを提供するために使用し得るクラスである。エントリの子に関する情報を返す他のメソッドは、任意のエントリの子の数量を返すgetChildCountメソッドと、特定のエントリを別の特定のエントリの子として挿入するために設けられたinsertメソッドと、特定の子エントリを別の特定のエントリから切り離するために設けられたdisconnectメソッドと、特定の子エントリを取り除くために設けられたremoveメソッドとを含む。
【0034】
一般的に、プロパティに関連するメソッドは、特定のエントリに対して定義されたプロパティの数量を数えるgetPropertyCountメソッドと、現在定義されているプロパティの名前の実質的に全てを効果的に獲得するgetPropertyNamesメソッドと、エントリのプロパティ値を獲得するgetPropertyValueメソッドと、特定のプロパティの値を加算、即ち、変更するaddPropertyメソッドと、特定のプロパティをエントリから取り除くremovePropertyメソッドとを含む。getPropertyNamesメソッドなどのメソッドはenumerationを通じて名前を獲得し得ることを理解する必要がある。
【0035】
システム・データベースを含むシステムでは、一般的に、クライアント及びサーバーはAPIを通じてシステム・データベースと通信する。図3は本発明の実施形態に基づくクライアント、サーバー及びシステム・データベースの間の相互作用を示す図である。クライアント304がエントリをシステム・データベース308上でパブリッシュすることを望む際、このエントリをネットワーク・コンピュータ(NC)316を使用してパブリッシュするために、クライアント304はクライアントAPI312と連係する。アプリケーションはシステム・データベース308上でパブリッシュされる。一般的に、システム・データベース308は任意の適切なデータベースであり得る。しかし、本実施形態では、システム・データベース308はJSDである。アプリケーション、より一般的には、システム・データベース308上のエントリを、リトリーブまたは修正するためにも、クライアント304はクライアントAPI312を使用する。同様に、サーバー320が前記のエントリをシステム・データベース308上の管理情報としてパブリッシュする際、この管理情報をパブリッシュするために、サーバー320はサーバーAPI324を使用する。システム・データベース308上のエントリをリトリーブまたは修正するためにも、サーバー320はサーバーAPI324と連係する。
【0036】
1つの実施形態では、システム・データベース308を単一の共有エントリとして示す。しかし、クライアント304に関連するシステム・データベース308のリプレゼンテーションと、サーバー320に関連するシステム・データベース308のリプレゼンテーションとを提供するように、システム・データベース308を構成し得る。即ち、クライアント304及びサーバー320はシステム・データベース・リプレゼンテーションをそれぞれ含み得る。クライアント304及びサーバー320がそれぞれ独立したシステム・データベース・リプレゼンテーション(例:独立したJSD)を含むシステム全体では、クライアント304上のリプレゼンテーションはサーバー320上のリプレゼンテーションと同じであり得る。
【0037】
一般的に、クライアント304及びサーバー320がシステム・データベース308を通じて互いに通信する際、この通信はクライアント/サーバー・プロトコル328を使用して実施される。従って、クライアント304がエントリをサーバー320へ提供する際、このエントリをシステム・データベース308へ効果的に渡すために、クライアント304はクライアントAPI312を使用する。次いで、クライアント/サーバー・プロトコル328を使用することにより、このエントリをサーバーAPI324へ渡し、サーバーAPI324はこのエントリをサーバー320へ転送する。
【0038】
前記のように、クライアントAPI312に関連する多くのインターフェース及びクラスは、サーバーAPI324に関連するインターフェース及びクラスと実質的に同じである。図4は本発明の1つの実施形態に基づくクライアントAPI312及びサーバーAPI324の間の関係を示す図である。図4に示すように、クライアントAPI312は実際にはサーバーAPI324のサブセットである。換言するならば、サーバーAPI324はクライアントAPI312に含まれる実質的に全てのインターフェース及びクラスを含む。従って、サーバーAPI324はクライアントAPI312のインターフェース及びクラスに関連する実質的に全てのメソッドを含む。
【0039】
コアAPI350はクライアントAPI312及びサーバーAPI324のそれぞれにおいて定義される。即ち、クライアントAPI312及びサーバーAPI324はコアAPI350のスーパーセットである。コアAPI350内に含まれるインターフェース及びクラスを図5に基づいて以下に詳述する。1つの実施形態では、コアAPI350はパブリックからアクセスできるインターフェース及びクラスを含むように定義できる。即ち、コアAPI350はパブリックが利用できるメソッド及びオペレーションを含むパブリックAPIであり得る。
【0040】
本発明の1つの実施形態に基づき、コアAPIに関連するクラス間の関係を図5に基づいて詳述する。一般的に、コアAPI402はインターフェース408、抽象クラス410及び具象クラス414を含む。インターフェース408、抽象クラス410及び具象クラス414は図2に基づいて既に説明済みである。コアAPI402内のインターフェース408はEntryインターフェース408a、TransactionFactoryインターフェース408b及びTreeインターフェース408cを含む。コアAPI402内の抽象クラス410は、BaseEntryクラス410a及びTransactionクラス410bを含む。その一方、コアAPI402内の具象クラス414はSystemDatabaseクラス414d、SystemTreeクラス414e、Queryクラス414f及びPropertyQueryクラス414gを含む。
【0041】
クライアントAPI403はコアAPI402に関連する実質的に全てのメソッドと、図2に基づいて詳述したSystemEntryクラス414aに関連する全てのメソッドとを含む。しかし、幾つかの実施形態では、クライアントAPI403はコアAPI402と同じであり得ることを理解しておく必要がある。即ち、クライアントAPI403はコアAPI402内で定義されているメソッドのみを含み得る。本実施形態では、サーバーAPI404はSystemAliasEntryクラス414b及びPersistentSystemEntryクラス414cのメソッド以外に、クライアントAPI403のメソッドを含む。SystemAliasEntryクラス414b及びPersistentSystemEntryクラス414cは図2に基づいて説明済みである。
【0042】
Entryインターフェース408a及びTransactionFactoryインターフェース408bはパブリックAPIを実質的に定義している。具体的には、BaseEntryクラス410a、SystemEntryクラス414a、SystemAliasEntryクラス414b及びPersistentSystemEntryクラス414cは事実上外部でパブリッシュされ、これによって、パブリックからは可視の状態にある一方で、Entryインターフェース408a及びTransactionFactoryインターフェース408bはパブリックAPIを定義している。Treeインターフェース408cはシステム・データベース内のツリーの操作を可能にするインターフェースを定義する。Treeインターフェース408cに含まれるメソッドは様々であり得るが、多くの場合、これらのメソッドは特定のツリーのルート・エントリを返すgetRootEntry()メソッドと、特定のツリーの現在のエントリを返すgetCurrentEntry()メソッドと、特定のツリーの現在のエントリをセットするsetCurrentEntryメソッドとを含む。
【0043】
Treeインターフェース408cに関連するメソッドは様々なPrintingメソッドの他に、“Find”メソッド及び“Create”メソッドをさらに含む。一般的に、Findメソッドは特定のパス名に基づいてエントリを見つけるために設けられたfindEntryメソッドと、最深層部に位置する特定のパス名の既存エントリを見つけるために設けられたfindDeepestEntryメソッドとを含む(但し、これらのメソッドに限定されない)。Createメソッドは、特定のパス名を備えた新たなエイリアスを形成するために設けられたnewAliasメソッドと、新たなエントリ(例:新たなシステム・エントリ)を特定のパス名または提供された新たな名前を使用して形成するために設けられたnewEntryメソッドとを含み得る。
前記のように、抽象クラスであるBaseEntryクラス410aはパブリックAPIをインプリメントする。コアAPI402は抽象クラスであるTransactionクラス410bをさらに含む。システム・データベース上で実施されるトランザクションに関連するメソッド及びコンストラクタを、Transactionクラス410bは一般的に含む。1つの実施形態では、Transactionクラス410bはisValid()メソッド、getOwnerID()メソッド、commit()メソッド及びabort()メソッドを含む。トランザクションが有効であるか否かを表示するために、isValid()メソッドは設けられている。当業者が理解するように、有効なトランザクションは、過去にコミットまたはアボートされていないトランザクションである。特定のトランザクションを生成したスレッドに関連する識別子を返すために、getOwnerID()メソッドは設けられている。commit()メソッドはトランザクションを効果的にコミットする。これによって、システム・データベースに対する実質的に全ての関連する変更が可視となり、関連するイベントが生成され、維持されていたロックが解放される。トランザクションをアボートし、これによって、このトランザクションが行った全ての変更を“ロールバック”し、かつ維持されていた全てのロックを解放するために、abort()メソッドは設けられている。
【0044】
コアAPI402は様々な具象クラスを含む。システム・データベースに関連する情報を初期化するために使用するメソッドと、このシステム・データベースに関連する情報を返すために使用するメソッドとを、SystemDatabaseクラス414dは含む。例えば、SystemDatabaseクラス414dは、システム・データベースを初期化するために設けられたSystemDatabase()クラスと、システム・データベースに関連するスーパー・ルートのエントリ・リファレンスを返すために設けられたgetSuperRootEntry()クラスと、システム・データベースを定義するツリーを返すために設けられたgetSystemDatabase()クラスとを含み得る。Treeインターフェース408cによって定義されたメソッドをインプリメントするために、SystemTreeクラス414eは設けられている。即ち、特定のツリーのルート・エントリを返すgetRootEntry()メソッドと、特定のツリーの現在のエントリを返すgetCurrentEntry()メソッドと、特定のツリーの現在のエントリをセットするsetCurrentEntryメソッドとを含む(但し、これらのメソッドに限定されない)メソッドを、SystemTreeクラス414はインプリメントする。
【0045】
1つの実施形態では、Queryクラス414fはシステム・データベースに対するサーチを実施するために使用するメソッドを含む。例えば、特定のスコープにマッチする全てのエントリを決定するために、ルートをクエリする、即ち、問い合わるメソッドをQueryクラス414fは一般的に含む。Queryクラス414fは、サーチのスコープを変更するために設けられたsetSearchScope()メソッドと、サーチのスコープを獲得するために設けられたgetSearchScope()メソッドと、サーチに使用するエントリ名を提供するために設けられたgetSearchName()メソッドと、最後のマッチを問い合わせるクエリをリセットするpreviousMatch()メソッドと、現在のマッチを返すために設けられたgetCurrentMatch()メソッドと、他の多数のメソッドとをさらに含み得る。これらの他のメソッドは複数のマッチの結果(例:直前のマッチの結果または次のマッチの結果)を返すことに関連したメソッドを含み得る(但し、これらのメソッドに限定されない)。
【0046】
PropertyQueryクラス414gはQueryクラス414fのエクステンションである。換言するならば、PropertyQueryクラス414f内のメソッドはQueryクラス414fのメソッドを効果的にオーバーライドし得る。一般的に、PropertyQueryクラス414gに含まれるメソッドは、サーチ機能をエントリ・プロパティ名に基づいて提供するために設けられている。具体的には、これらのメソッドは、任意のプロパティ名を有する全てのエントリを特定のスコープ内でサーチすることを意図したメソッドを含み得る。
【0047】
図6は本発明の実現に適した一般的な汎用コンピュータ・システムを示す。コンピュータ・システム530はメモリ・デバイスへ接続された少なくとも1つのプロセッサ532を有し、このプロセッサ532は中央処理装置(CPU)とも称される。プロセッサ532はネットワーク・コンピュータの一部であり得る(例:プロセッサ532はネットワーク・コンピュータと通信する)。一般的に、メモリ・デバイスはリード・オンリ・メモリ(ROM)などの一次記憶装置534と、ランダム・アクセス・メモリ(RAM)などの一次記憶装置536とを含み得る。
【0048】
当該技術分野で知られているように、ROM534はデータ及び命令をCPU532へ単方向に転送すべく機能する。その一方、RAM536はデータ及び命令をCPU532に対して両方向に送受信すべく一般的に使用される。これら2つの一次記憶装置534,536は任意の適切なコンピュータ読み取り可能媒体をそれぞれ含み得る。一般的には大容量メモリ装置である二次記憶媒体538は両方向でCPU532へ接続可能である。一般的に、二次記憶媒体538は別のデータ記憶能力を提供すべく構成されている。更に、二次記憶媒体538はコンピュータ・コード、コンピュータ・プログラム・コード・デバイス及びデータ等を含むプログラムを格納するために使用するコンピュータ読み取り可能媒体であり得る。1つの実施形態では、二次記憶媒体538は複数のコンピュータ・システムが共有するシステム・データベースであり得る。一般的に、二次記憶媒体538は一次記憶装置534,536より遅いハード・ディスクまたはテープ等の記憶媒体である。二次記憶媒体538は磁気テープ・リーダー及びペーパー・テープ・リーダー(但し、これらに限定されない)を含む周知のデバイスの形態をなし得る。当業者が理解するように、適切なケースでは、二次記憶装媒体538内に保持されている情報は、RAM536の一部(例:バーチャル・メモリ)として標準的な形式で組み込み得る。CD−ROM等の特定の一次記憶装置534はデータを単方向にCPU532へ送信可能である。
【0049】
CPU532は1つ以上の入出力装置(I/O)540へ接続されている。入出力装置540は、ビデオ・モニタ、トラック・ボール、マウス、キーボード、マイクロホン、タッチ・ディスプレイ、トランスデューサ・カード・リーダー、磁気テープ・リーダー、ペーパー・テープ・リーダー、タブレット、スタイラス、音声認識装置、手書き文字認識装置及び他の周知の入力装置(例:他のコンピュータ)を含み得る(但し、これらに限定されない)。符号512で示すネットワーク接続を使用することにより、CPU532をコンピュータまたはテレコミュニケーション・ネットワーク(例:インターネット・ネットワークまたはイントラネット・ネットワーク)へ接続可能である。このネットワーク接続512により、CPU532は情報をネットワークから受信し得る。更に、CPU532は情報をネットワークへ出力可能である。多くの場合、この情報はCPU532を用いて実行する命令の順番列を表す。更に、この情報は例えば搬送波に組み込まれたコンピュータ・データ信号としてネットワークに対して送受信可能である。前記の複数のデバイス及び資材は、コンピュータ・ハードウェア及びソフトウェアの技術分野の当業者には公知である。
【0050】
以上、本発明の僅かな実施形態のみを詳述したが、本発明の精神または範囲から逸脱することなく、本発明を他の多数の特定の形態で実施し得ることを理解する必要がある。例えば、クライアントAPIはサーバーAPIの“サブセット”である必要はない。幾つかの実施形態では、クライアントAPIに関連する全てのクラス及びインターフェースを含むサーバーAPIの代わりにコアAPIを定義するために、クライアントAPI及びサーバーAPIを互いにオーバーラップさせ得る。別の実施形態では、クライアントAPI及びコアAPIは同一であり得る。即ち、クライアントAPI内の全てのインターフェース及びクラスをコアAPI内に含め得る。
【0051】
前記のように、コアAPIはパブリックAPIであり得る。例えば、図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に含まれないクライアントAPIの僅かな数のクラスまたはインターフェースのみを、サーバーAPIは含んでもよい。これに代えて、コアAPIに含まれていないクライアントAPIのクラスまたはインターフェースを、サーバーAPIは全く含まないことが可能である。
【0053】
一般的に、コアAPIに関連するクラス階層構造は様々である。例えば、クラス階層構造は複数の実施形態においてそれぞれ異なり得る。そして、これらの実施形態では、APIに関連する更に多い数または更に少ない数のクラスが存在する。同様に、特定のシステムの要件に基づいて、複数のAPIに関連するクラス及びメソッドは本発明の趣旨及び範囲から逸脱することなくそれぞれ異なり得る。
エントリ・インターフェース・メソッド及びツリー・インターフェース・メソッドなどのメソッドに対する引数は、特定のエントリ名を含むものとして詳述した。しかし、図2及び図4に基づいて詳述した様々なメソッドに使用する引数がいろいろあることを理解する必要がある。幾つかのメソッドは引数として特定のトランザクションを使用する一方、他のメソッドは無名トランザクションを引数として効果的に使用し得る。更に、幾つかのメソッドは引数を全く使用しないことがあり得る。従って、本明細書に開示した複数の実施形態は例示目的であって、限定目的ではない。更に、本発明は本明細書に開示する詳細部分に限定されることなく、請求の範囲内で変更し得る。
【図面の簡単な説明】
【図1】本発明の実施形態に基づくシステム・データベースにおける関係を示す図である。
【図2】本発明の実施形態に基づくシステム・データベース内の複数のエントリをインプリメントするために使用し得るインターフェース及びクラスの階層構造を示す図である。
【図3】本発明の実施形態に基づくクライアント、サーバー、システム・データベースの間の相互作用を示す図である。
【図4】本発明の実施形態に基づくサーバー・アプリケーション・プログラミング・インターフェース、クライアント・アプリケーション・プログラミング・インターフェース及びコア・アプリケーション・プログラミング・インターフェースの間の関係を示す図である。
【図5】本発明の実施形態に基づくコア・アプリケーション・プログラミング・インターフェースに関連する複数のクラス間の関係を示す図である。
【図6】本発明の実現に適したコンピュータ・システムを示す図である。
Claims (9)
- オブジェクトベースコンピュータシステムであって、
システム・データベースと、
前記システム・データベースと通信可能な少なくとも1つのサーバーコンピュータと、
前記システム・データベースと通信することによって前記サーバーと通信可能であり、前記システム・データベースに対するアクセスを可能にするアプリケーション・プログラミング・インターフェースを提供するクラス構造を使用して前記システム・データベースにアクセスする少なくとも1つのクライアントコンピュータとを備え、
前記クラス構造は、
コア・アプリケーション・プログラミング・インターフェースを定義すべく設けられた第1セットのクラスであって、前記システム・データベースにアクセスするためのメソッドを含む少なくとも1つのパブリック・インターフェースを含む第1セットのクラスと、
前記少なくとも1つのクライアントに関連したクライアント・アプリケーション・プログラミング・インターフェースを定義すべく設けられ、かつ前記第1セットのクラスを含む第2セットのクラスと、
前記少なくとも1つのサーバーに関連したサーバー・アプリケーション・プログラミング・インターフェースを定義すべく設けられ、かつ前記第2セットのクラスを含む第3セットのクラスとを含み、
前記クライアント・アプリケーション・プログラミング・インターフェースは、前記システム・データベースに対するエントリの公開、前記データベースからのエントリの検索、前記システム・データベース上におけるエントリの変更のために前記クライアントによって用いられるよう機能し、
前記サーバー・アプリケーション・プログラミング・インターフェースは、前記システム・データベースに対するエントリの公開、前記システム・データベースからのエントリの検索、前記システム・データベース上におけるエントリの変更、前記システム・データベース上におけるエントリの管理のために前記サーバーによって用いられるよう機能する、オブジェクトベースコンピュータシステム。 - 前記少なくとも1つのパブリック・インターフェースはEntryインターフェースを含む請求項1に記載のオブジェクトベースコンピュータシステム。
- 前記第1セットのクラスは少なくとも1つの抽象クラスと、少なくとも1つの具象クラスとを含む請求項1に記載のオブジェクトベースコンピュータシステム。
- 前記少なくとも1つの抽象クラスはパブリック・アプリケーション・プログラミング・インターフェースを提供するBaseEntryクラスを含み、前記少なくとも1つの具象クラスはシステム・データベースに関連する情報を初期化するためのメソッドおよびシステム・データベースに関連する情報を返すためのメソッドを含むSystemDatabaseクラス、システム・データベースに対する検索を実行するためのメソッドを含むQueryクラス及びエントリ・プロパティ名に基づいてシステム・データベースに対する検索を実行するためのメソッドを含むPropertyQueryクラスを含む請求項3に記載のオブジェクトベースコンピュータシステム。
- 前記第2セットのクラスは具象クラスであるエントリに関連するプロパティの操作を可能にするメソッドの実行に関するメソッドを含むSystemEntryクラスを含む請求項4に記載のオブジェクトベースコンピュータシステム。
- 前記第3セットのクラスは具象クラスである、他のエントリを参照するために使用されるエイリアスをエントリに対応付けるメソッドを含むSystemAliasEntryクラス及び永続エントリに関連するプロパティの操作に関連したメソッドを含むPersistentSystemEntryクラスを含む請求項5に記載のオブジェクトベースコンピュータシステム。
- 前記コア・アプリケーション・プログラミング・インターフェースはパブリック・アプリケーション・プログラミング・インターフェースである請求項1及び3のいずれか一項に記載のオブジェクトベースコンピュータシステム。
- オブジェクトベースコンピュータシステムであって、
システムデータベースと、
前記システムデータベースと通信可能なクライアントコンピュータと、
前記システムデータベースと通信可能なサーバーコンピュータとを備え、
前記クライアントコンピュータおよび前記サーバーコンピュータは、前記システム・データベースに対するアクセスを可能にするコア・アプリケーション・プログラミング・インターフェースを提供するクラス構造を使用して前記システム・データベースにアクセスし、
前記クラス構造は、
前記システム・データベースと通信する前記クライアントに関連し、かつクラス及びインターフェースの双方の階層構造を含むクライアント・アプリケーション・プログラミング・インターフェースであって、前記コア・アプリケーション・プログラミング・インターフェースによって提供されるパブリック・メソッド及びパブリック・インターフェースを含むパブリック・アプリケーション・プログラミング・インターフェースを含むクライアント・アプリケーション・プログラミング・インターフェースと、
前記システム・データベース及び前記システム・データベースと通信することによって前記クライアントとそれぞれ通信する前記サーバーに関連し、かつ前記クライアント・アプリケーション・プログラミング・インターフェースを含むサーバー・アプリケーション・プログラミング・インターフェースとを含み、
前記クライアント・アプリケーション・プログラミング・インターフェースは、前記システム・データベースに対するエントリの公開、前記システム・データベースからのエントリの検索、前記システム・データベース上におけるエントリの変更のために前記クライアントによって用いられるよう機能し、
前記サーバー・アプリケーション・プログラミング・インターフェースは、前記システム・データベースに対するエントリの公開、前記システム・データベースからのエントリの検索、前記システム・データベース上におけるエントリの変更の、前記システム・データベース上におけるエントリの管理ために前記サーバーによって用いられるよう機能する、オブジェクトベースコンピュータシステム。 - 前記サーバー・アプリケーション・プログラミング・インターフェースは、前記クライアント・アプリケーション・プログラミング・インターフェースに関連した前記クラス及びインターフェースの階層構造に含まれていない少なくとも1つのクラスであって、前記サーバーが前記システム・データベースにアクセスするために用いられる少なくとも1つのクラスを含む請求項8に記載のオブジェクトベースコンピュータシステム。
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 JP2000137602A (ja) | 2000-05-16 |
JP2000137602A5 JP2000137602A5 (ja) | 2006-07-20 |
JP4511650B2 true 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) |
Families Citing this family (17)
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 |
US7017162B2 (en) | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
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 |
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 |
US8244841B2 (en) * | 2003-04-09 | 2012-08-14 | Microsoft Corporation | Method and system for implementing group policy operations |
US20040215650A1 (en) | 2003-04-09 | 2004-10-28 | Ullattil Shaji | Interfaces and methods for group policy management |
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 |
JP4855710B2 (ja) * | 2005-04-28 | 2012-01-18 | 株式会社東芝 | ソフトウェアのプラグイン方法、および、アプリケーションプログラム |
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)
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 |
-
1998
- 1998-05-14 US US09/079,102 patent/US6598093B1/en not_active Expired - Lifetime
-
1999
- 1999-05-12 EP EP99303691A patent/EP0957439A3/en not_active Withdrawn
- 1999-05-14 JP JP13470499A patent/JP4511650B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0957439A3 (en) | 2003-12-03 |
EP0957439A2 (en) | 1999-11-17 |
US6598093B1 (en) | 2003-07-22 |
JP2000137602A (ja) | 2000-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6233582B1 (en) | Persistent storage interface for a configuration object-based system | |
JP4511650B2 (ja) | オブジェクトベースコンピュータシステム | |
US5542078A (en) | Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities | |
US5809507A (en) | Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework | |
US6772172B2 (en) | Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database | |
US7792861B2 (en) | Access control system and methods | |
EP0752652B1 (en) | System and method for implementing a hierarchical policy for computer system administration | |
US5832498A (en) | Device for generating object-oriented interfaces for relational data bases and a process implemented by this device | |
US6597366B1 (en) | Transparent general purpose object isolation for multi-tier distributed object environments | |
US7870101B2 (en) | Method and apparatus for presentation of a security-focused repository with a party-focused repository | |
JPH11327919A (ja) | オブジェクト指向割込みシステム用の方法およびデバイス | |
EP1208461A1 (en) | Entitlement management and access control system | |
CA2532909A1 (en) | Systems and methods for interfacing application programs with an item-based storage platform | |
US5809506A (en) | Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto | |
US7263516B2 (en) | System for and method of storing and elaborating user preferences | |
US6591275B1 (en) | Object-relational mapping for tables without primary keys | |
JP2006012155A (ja) | ユーザ定義型の指定されたメンバを遅延フェッチするシステムおよび方法 | |
US6901417B2 (en) | Method, system, and program for updating records in a database when applications have different version levels | |
US7363328B2 (en) | Method and system for modifying schema definitions | |
JP2007528555A (ja) | ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法 | |
US7805422B2 (en) | Change notification query multiplexing | |
JP4580390B2 (ja) | ハードウェア/ソフトウェアインターフェイスシステムによって管理可能な情報単位の拡張および継承のためのシステムおよび方法 | |
JP4126843B2 (ja) | データ管理方法および装置並びにデータ管理プログラムを格納した記録媒体 | |
US7672945B1 (en) | Mechanism for creating member private data in a global namespace | |
MXPA03000756A (es) | Metodo, sistema y estructuras de datos para implementar bases de datos anidadas. |
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 |