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

JP2006244499A - 共通データプラットフォームのためのストレージapi - Google Patents

共通データプラットフォームのためのストレージapi Download PDF

Info

Publication number
JP2006244499A
JP2006244499A JP2006053435A JP2006053435A JP2006244499A JP 2006244499 A JP2006244499 A JP 2006244499A JP 2006053435 A JP2006053435 A JP 2006053435A JP 2006053435 A JP2006053435 A JP 2006053435A JP 2006244499 A JP2006244499 A JP 2006244499A
Authority
JP
Japan
Prior art keywords
data
class
store
presenting
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.)
Pending
Application number
JP2006053435A
Other languages
English (en)
Other versions
JP2006244499A5 (ja
Inventor
T Whitten Arthur
ティー.ホイッテン アーサー
Benjamin Albahari
アルバーリ ベンジャミン
Edward G Sheppard
ジー.シェパード エドワード
Michael E Deem
イー.ディーム マイケル
Michael J Pizzo
ジェイ.ピゾ マイケル
Nagarajan Rameshu
ナガラジャン ラメシュ
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006244499A publication Critical patent/JP2006244499A/ja
Publication of JP2006244499A5 publication Critical patent/JP2006244499A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

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

Abstract

【課題】データプラットフォーム用のアプリケーションプログラムインターフェース(API)を提供する。
【解決手段】APIはデータストアに関連付けられたデータプラットフォームのストア、セッション、トランザクション、およびクエリサービスの少なくとも1つを提示するジェネリックデータアクセスコンポーネントを含む。APIのデータクラスコンポーネントはデータプラットフォームのデータモデルのタイプおよび関係を提示する正規化アプリケーション非依存クラスを提供する。APIはデータプラットフォームのドメイン固有のプロパティ、挙動を提示するアプリケーション固有&フレームワーク固有クラスのドメインデータクラスコンポーネントを含む。データプラットフォームは異種の複数のアプリケーションフレームワークによってアクセス可能な異なるフレームワークの対応するアプリケーションがデータストアにアクセスできるようにするデータサービスを提供する。
【選択図】図1

Description

本発明は、共通データプラットフォームのストレージアプリケーションプログラムインターフェース(API)に関する。
製品をブラウズ(ネット閲覧)し、注文を発生するために利用される基幹業務(LOB)アプリケーションフレームワークであろうと、人と人との会合のスケジュール管理に使用される個人情報管理(PIM)エンドユーザアプリケーションであろうと、ほとんどすべてのアプリケーションにおいて、データは重要な価値あるものになってきている。アプリケーションは、アプリケーションデータに対するデータアクセス/操作とデータ管理処理の両方を実行する。一般のアプリケーション操作は、データの集まりに対してクエリ(問合せ)を行い、その結果集合をフェッチ(解読)し、データの状態を修正する一部のアプリケーションロジックを実行し、最後にそのデータを記憶媒体に残す。
従来、クライアント/サーバアプリケーションは、クエリアクションおよび保持アクションを、データ階層に配置されているデータベース管理システム(DBMS)に委ねていた。データ処理を中心とするロジックがある場合、それは、データベースシステム内のストアードプロシージャ(1回の処理で複数の手続を実行可能にするためのプログラムコード)としてコード化される。データベースシステムは、テーブルや行という形でデータに対する処理を行い、アプリケーションは、アプリケーション階層において、プログラミング言語オブジェクト(ClassおよびStructなど)の見地からデータに対する処理を行っていた。アプリケーション階層およびデータ階層におけるデータ操作サービス(および機構)の不一致は、クライアント/サーバシステムにおいて許容可能のものであった。しかし、Web技術(およびサービス指向アーキテクチャ)が出現し、アプリケーションサーバがより広範に受け入れられるようになるにつれて、アプリケーションは多階層(multi−tier)になってきており、さらに重要なことだが、現在では各階層にデータが存在している。
このような階層状のアプリケーションアーキテクチャでは、データは、複数の階層で操作される。さらに、ハードウェアのアドレス可能度が進歩し、メモリが大きくなるにつれて、より多くのデータがメモリに存在するようになってきた。また、アプリケーションは、例えばオブジェクト、ファイル、およびXML(拡張可能なマーク付け言語)データなど、本質的に異なるタイプのデータも扱っている。
このようなハードウェアおよびソフトウェア環境において、プログラミング環境によく統合されたリッチなデータアクセスおよび操作サービスの必要性が高まりつつある。上記の問題に当るために取り入れられた従来の実装の1つは、データプラットフォームである。データプラットフォームは、アプリケーションプログラミング環境によく統合された、データにアプリケーションがアクセスし、操作し、管理するためのサービス(機構)の集まりを提供する。しかし、このような従来のアーキテクチャは、多くの点で不十分である。このようなデータプラットフォームのキーポイントなる要求には、複雑なオブジェクトモデリング、上質のリレーションシップ(関係)、論理的データ抽象化と物理的データ抽象化との分離、クエリの優れたデータモデルの概念(query rich data model concepts)、アクティブな通知(active notifications)、中間階層インフラ(基盤)とのよりよい一体化などがある。
したがって、改善されたデータプラットフォームに関して技術的に要求にまだ十分に応じられていない。
以下は、開示した本発明のいくつかの態様の基本認識を提供するために、簡略化した要約を示している。この要約は、本発明の広範囲な概要を示すものではなく、本発明の鍵となる/重要な要素を特定するためのもの、または本発明の範囲を画定するためのものでもない。この要約は、後述するより詳細な説明の前置きとして、いくつかの概念を簡略化した形式で提示することを唯一の目的としている。
本明細書に開示され、請求項に記載された本発明は、その一態様において、データプラットフォームのアプリケーションプログラムインターフェース(API)を備える。このAPIは、データストアに関連付けられているデータプラットフォームのストア、セッション、トランザクション、およびクエリサービスのうちの少なくとも1つを提示するジェネリック(generic:包括的)データアクセスコンポーネント(成分、構成要素)を含む。APIのデータクラスコンポーネントは、データプラットフォームのデータモデルのタイプおよび関係を提示する正規化(canonical)、アプリケーション非依存クラスを提供する。APIは、データプラットフォームのドメイン固有のプロパティ(属性)、および挙動を提示するアプリケーション固有の、およびフレームワーク固有のクラスのドメインデータのクラスコンポーネントを含む。データプラットフォームは、さまざまな複数のアプリケーションフレームワークによってアクセス可能な、さまざまなフレームワークの対応するアプリケーションがデータストアにアクセスできるようにするデータサービスを提供するために、データストアに対してインターフェースで接続する共通データプラットフォームであるとすることができる。
別の態様では、APIは、5つのコアクラスを含む。TableSetクラスは、データモデルスキーマから生成することができ、スキーマ内で定義されたテーブルへの強く型付けされたアクセス(strongly typed access)を提供する。StorageDomainクラスは、残りのクラスが動作するストアを定義する。StorageContextクラスは、セッションのコンテキストを提供する。StorageContextクラスは、現在のコンテキスト内のオブジェクトへの変更をリフレッシュまたは保存するメソッドによって、識別管理、変更の追跡、および同時並行競合処理(concurrency conflict handling)の範囲を定義する。StorageSearcherクラスは、データストアに対する構成可能なオブジェクトベースのクエリを構築するために使用される。StorageViewクラスは、1組の結果にわたるリッチなアプリケーションビューを提供する。StorageViewクラスは、フィルタリング、ソート、スクロール、グループ分け、セクション分け、セクションの展開/折りたたみなどの操作をサポートする。
上記および関連の目的を達成するために、開示した本発明のいくつかの態様の例を、以下の説明および添付の図面との関連で本明細書に記載している。しかし、これらの態様は、本明細書に開示した原理を使用し得る様々な方法のほんの一部を示しているにすぎず、本発明にはこのようなすべての態様およびその均等物が含まれるものとする。他の利点および新規の特徴は、以下の詳細な説明を図面と併せ読めば明らかになる。
次に、図面を参照して本発明を説明する。全体を通して、同等の参照番号を使用して同等の要素を指す。以下の説明では、説明上、本発明を完全に理解できるようにするために様々な特定の詳細を記載している。しかし、このような特定の詳細説明なしに、本発明を実施できることは明らかである。他の例では、本発明を説明しやすくするために、よく知られている構造および装置をブロック図の形態で示している。
本出願で使用する場合、「コンポーネント(成分、構成要素)」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェアそのもの、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、コンポーネントは、それだけには限定されないが、プロセッサ上で稼働するプロセス、プロセッサ、ハードディスクドライブ、(光および/または磁気記憶媒体の)複数の記憶ドライブ、オブジェクト、実行可能ファイル、実行スレッド(一連のメッセージ群)、プログラム、および/またはコンピュータとすることができる。一例として、サーバ上で稼働するアプリケーションおよびサーバはいずれもコンポーネントとすることができる。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に存在する可能性があり、1つのコンポーネントを1つのコンピュータ上に配置する、および/または2つ以上のコンピュータの間に分散することができる。
ユーザに対して情報を展示するいくつかの方法が、スクリーンショット(ソフトの画面例)として、いくつかの図に関連して図示され、記述されているが、他の様々な代替を使用できることを当業者であれば理解されよう。「画面(screen)」、「Webページ」、および「ページ」という用語は、本明細書では一般に交換可能に区別なく使用される。ページまたは画面は、表示の説明として、グラフィカルユーザインターフェースとして、または(例えばパーソナルコンピュータ、PDA(携帯情報端末)、携帯電話、または他の適応の装置のいずれであろうと)画面上に情報を表す他の方法によって格納され、かつ/または送信され、ページに表示されるレイアウトおよび情報または内容は、メモリ、データベ―ス、または他の記憶設備に格納される。
新規な共通データプラットフォーム(CDP)は、オブジェクト、およびそれらがどのように関連しているかを表す共通データモデル(CDM)、固定記憶域、およびこのようなオブジェクトのインメモリレプリケーション(in−memory replication)を機能するサービスから成る。CDPは、持続性のデータをアプリケーションオブジェクトとして処理する革新的なプラットフォームを提供する。CDPは、プラットフォームの一部として定義される、基礎をなすデータモデルおよびサービスに合うように調整される新規なアプリケーションプログラミングインターフェース(API)を含む。CDPの機能性は、1組のクラスを介して提示される。パブリックメンバ(メソッドおよびプロパティなど)を含むこのようなクラスの定義は、CDP内のオブジェクトを処理するAPIを含む。
最初に図面を参照すると、図1は、革新的な一態様によるデータプラットフォーム102(CDPなど)のストレージAPI100を示している。API100は、クラス、インターフェース、および静的(スタティック)ヘルパー機能の形のデータプラットフォーム(CDPなど)を使用してアプリケーションのプログラミングインターフェースを提供する。データベースプログラミング言語の集成(C#シーケンス演算子など)もこのAP層の一部である。それをサポートして、API100は、エンティティ、リレーションシップ、拡張など、CDM概念を提示する1組の正規化アプリケーション非依存クラスであるCDMデータクラスコンポーネント104を含む。ジェネリックデータアクセスコンポーネント106は、ストア、セッション、トランザクション(StorageContextなど)、クエリサービス(StorageSearcherなど)、およびCRUDサービス(SaveChangesなど)を提示するAPI100の一部として提供される。CRUD(作成、取り出し、更新、および削除)サービスは、データに適用される基本的なプロセス(処理)である。API100は、CDMに従うが、ドメイン固有のプロパティおよび挙動を提示するContact、Message、PurchaseOrdersなどのアプリケーション/フレームワーク固有のクラスであるドメインデータクラスコンポーネント108も含む。
図2は、開示された一態様によるストレージAPIを提供する方法を示している。説明を簡潔にするために、例えば、フローチャートまたはフロー図の形で本明細書に示した1つまたは複数の方法は、一連の動作として示され、表されているが、一部の動作は、本発明に従って、本明細書に示され、表されたものとは異なる順序で、および/または他の動作と同時に行うことができるので、本発明は、動作の順序によって限定されるものではないことを理解されたい。例えば、手順を、代わりに相互に関係のある一連の状態またはイベントとして、例えば状態図などで表すことができることを当業者であれば理解されよう。さらに、本発明による方法を実施するのに、ここで示したすべての動作が必要であるとは限らない。200で、ストレージAPIが受信される。202で、APIは、データのクエリを行うクラスを定義する。204で、APIは、データを取り出すクラスを定義する。206で、APIは、データをナビゲートするクラスを定義する。208で、APIは、データを修正(モディファイ)するクラスを定義する。210で、APIは、データを保持するクラスを定義する。
図3は、ジェネリックデータアクセスコンポーネント106のより詳細な図を示している。API300は、使用しやすい、拡張可能な、強力な、結合可能(composable)なクラスおよびメソッドへの機能性のファクタリング(factoring:因数化)を定義する。ストレージAPI300は、共通のデータモデルに準拠して、データのクエリ、取り出し、ナビゲート、修正、およびデータに対する変更の保持を行うクラスを定義する。ストレージAPI300は、このクエリ、ナビゲーション、および保持の機能を、ストレージAPI300によってクエリされ、ナビゲートされ、保持される規範的データクラスで定義される機能と分離する。
ストレージAPI300は、次のコアクラスから成り、図3は、StorageDomain、StorageContext、TableSet、StorageSearcher、およびStorageViewの間の関係を示している。これらのコアクラスのサポートで、追加のクラスを定義することができる。
TableSet−TableSetクラスは、データモデルスキーマから生成することができ、スキーマ内で定義されたテーブルへの強く型付けされたアクセスを提供する。TableSetインスタンスは、1つまたは複数のStorageContextインスタンスをラップし、基礎となるStorageContextクラスおよび関連のStorageDomainクラスを使用して、オブジェクトのクエリ、ナビゲーション、および更新を行う。追加のメソッドを生成されたTableSetクラスに追加して、スキーマ固有またはフレームワーク固有の機能を得ることができる。
StorageDomain−ほかのクラスが動作するストアを定義するクラスである。様々なタイプのストアがそれ自体の固有のStorageDomainクラスを実装する。StorageDomainは、直接使用しても、TableSetと連結して使用しても良い。
StorageContext−セッションのコンテキストを提供するクラスである。StorageContextクラスは、現在のコンテキスト内のオブジェクトへの変更をリフレッシュまたは保存するメソッドによって、識別管理、変更の追跡、および同時並行競合処理の範囲を定義する。StorageContextクラスは、(例えばデータをリフレッシュする際、または修正を保持する際など)ストアと通信するためにStorageDomainクラスを使用する。StorageContextは、直接使用しても、TableSetと連結して使用しても良い。
StorageSearcher−StorageSearcherクラスは、データストアに対して結合可能なオブジェクトベースのクエリを構築するために使用される。StorageSearcherクラスは、一般にStorageContext内で、StorageDomainによって実行されるStorageExpressionクラスを生成する。StorageSearcherは、順方向のみに流されるやり方での結果の列挙や、上質でスクロール可能なStorageViewの構築をサポートする。
StorageView−StorageViewクラスは、1組の結果にわたるリッチなアプリケーションビューを提供する。StorageViewは、フィルタリング、ソート、スクロール、グループ分け、セクション分け、セクションの展開/折りたたみなどの操作をサポートする。
次に図4を参照すると、ここではデータモデルのストレージAPIを提供する方法を示している。400で、データストア上で使用するデータプラットフォーム(CDPなど)が受信される。402で、例えばエンティティ、リレーションシップ、拡張などCDM概念を表すベースクラスを含むAPIが提供される。基礎となるデータプラットフォームの機能性を、本発明のAPIで定義された共通CDMデータクラスを介して、オーバーレイアプリケーション(overlaying application)およびアプリケーションフレームワークに提示することができる。404で、他のAPIクラスが動作するデータストアを定義するクラスが提供される。406で、データストアに対するオブジェクトベースのクエリを構築するために使用されるクラスが提供される。408で、セッションコンテキストを定義し、識別管理、変更の追跡、競合処理などを含むクラスが提供される。410で、スキーマから生成され、スキーマのテーブルへの型付けされたアクセスを提供するクラスが提供される。412で、検索結果集合のビューを促進するクラスが提供される。414で、CDMスキーマのインスタンスによって表される特定のエンティティおよびリレーションシップを表す1組のドメイン固有クラスが定義される。
次の項は、共通データモデルのAPIを構成するクラスおよびメンバの定義について詳述する。
StorageDomainクラス。StorageDomainクラスは、サーバ、認証、マッピングなどのストア情報をカプセル化するために使用される。ストア固有の情報を提供するために、ストアのタイプごとにストレージドメインのベースクラスが導出される。基本のStorageDomainタイプは、次のように定義することができる。
Figure 2006244499
WinFSDomainクラス。WinFSストアに対するStorageDomainの例は、次のように表すことができる。
Figure 2006244499
WinFSDomainコンストラクタは、例えばUNC(汎用命名規則)共有名により、ストア、およびストア内の範囲を指定する情報を取得することができる。あるいは、デフォルトのコンストラクタは、例えばデフォルトのストアのルートまでなど、デフォルトのストア情報を使用することができる。UNCは、UNIX(登録商標)コミュニティから生じた、ネットワークにおけるサーバ、プリンタ、および他のリソースを識別する標準(規格)である。UNCパスでは、コンピュータの名前の前にダブルスラッシュまたはバックスラッシュを使用する。
SqlStorageDomainクラス。リレーショナルストア(SQLデータベースなど)に対するStorageDomainの例は、次のように表すことができる。
Figure 2006244499
SqlStorageDomainコンストラクタは、例えば、接続情報およびマッピング情報を含む接続文字列、またはこのような情報を含む名前付き設定の形で接続情報を取得することができる。あるいは、コンストラクタは、標準マッピングインターフェースを実装するマッピングファイルまたはオブジェクトの形で、マッピング情報とともに接続オブジェクトを取得することができる。あるいは、デフォルトのコンストラクタは、例えば環境設定ファイル(configuration file)からのデフォルトの接続情報またはマッピング情報を使用することができる。
図5は、テーブルセットタイプを提示する方法を示している。500で、テーブルタイプのベースクラスが受信される。TableSetクラスは、テーブルセットタイプのベースクラスとして使用される。このタイプのインスタンスは、必要に応じて、アプリケーションによって直接作成し、使用することもできる。基本のTableSetタイプは、以下のメンバを有する。
Figure 2006244499
TableSetは一般に、スキーマ内の1組のテーブルの名前で作られる。あるいは、スキーマ内の1組のテーブルを、例えばデフォルトの名前付け、環境設定ファイルなど、別の機構により決定することができる。TableSetを既存のStorageContextに関連付けるために、StorageContextをTableSetに提供することができる。あるいは、TableSetをStorageDomainに関連付けるために、StorageDomainをTableSetに提供することができる。あるいは、さらに、TableSetに共通の状態マネージャ(管理プログラム)を提供することができる。
502で、テーブルセットに関連付けられているデータオブジェクトを保存するために、SaveChangesメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。504で、提供された名前に基づいてスキーマ内のテーブルを表す(Table<T>など)オブジェクトを構築し、戻すために、GetTableメソッドを提供することができる。506で、TableSetReferenceを戻すためにGetTableSetReferenceメソッドを提供することができる。
図6は、本発明のAPIにおいてWinFS機能を提供する方法を示している。600で、WinFS機能のクラスが使用される。WinFS固有の機能を提供するために、WinFSDataクラスをTableSetクラスから導出することができる。WinFSDataクラスは、次のメンバを有する。
Figure 2006244499
Figure 2006244499
Figure 2006244499
WinFSDataコンストラクタは、既存のStorageContextで構築したり、指定された情報(UNC共有など)またはデフォルトの情報(例えばデフォルトのストアのルート)を使用してStorageContextを作成したりすることができる。さらに、WinFSDataクラスを特定の指名されたテーブルセットのインスタンスに関連付けるために、テーブルセット名を指定することができる。
602で、ドメインのルートを戻すためにGetRootItemメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。604で、そのパスが与えられるとアイテムを戻すために、GetItemByPathメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。
606で、Itemsテーブル、ItemExtensionsテーブル、およびItemFragmentsテーブルを表すオブジェクトを戻すために、Itemsプロパティ、ItemExtensionsプロパティ、およびItemFragmentsプロパティを提供することができる。608で、Linksテーブルを表すオブジェクトを戻すために、Linksプロパティを提供することができる。610で、アイテムのコピー、移動、および削除を行うメソッドが提供される。指定されたアイテムをストア内の別の位置にコピーするために、CopyItemメソッドを提供することができる。指定されたアイテムをストア内に移動するために、MoveItemメソッドを提供することができる。DeleteItemメソッドは、指定されたアイテムをストアから削除する。612で、アイテムのインポート、およびエクスポートを行うメソッドが提供される。指定されたアイテムをストアからエクスポートするために、ExportItemメソッドを提供することができる。指定されたアイテムをストアにインポートするために、ImportItemメソッドを提供することができる。CopyItemメソッド、MoveItemメソッド、DeleteItemメソッド、ExportItemメソッド、ImportItemメソッドの非同期バージョンを提供することもできる。
図7は、ストア内のクラスを表す方法を示している。700で、ストア内のある範囲を表すクラスが定義される。ストア内のある範囲を表すために、Table<T>クラスが使用される。Table<T>クラスは、オブジェクトをその範囲に追加し、またはそこから削除するメソッド、およびその範囲の内容にわたるStorageSearcherを構築するメソッドを有することができる。
Figure 2006244499
Table<T>クラスは、そのスキーマでの対応するテーブルの名前とともに、StorageContextまたはStorageDomainを指定する情報で構築することができる。702で、Table<T>クラスに関連付けられているStorageContextを戻すために、Contextプロパティを提供することができる。704で、Table<T>クラスに関連付けられているStorageDomainを戻すために、Domainプロパティを提供することができる。706で、ストア内の対応するテーブルに対するStorageSearcherを戻すために、Searcherプロパティを提示することができる。708で、オブジェクトのアッド(追加)、リムーブ(削除・除去)、およびクリア(消去)を行うメソッドが提供される。テーブルにオブジェクトを追加するために、Addメソッドを提示することができる。テーブルから削除すべきオブジェクトを指定するために、Removeメソッドを提示することができる。テーブルをクリアするために、Clearメソッドを提示することができる。710で、テーブルが指定されたオブジェクトを含むかどうかを戻すために、Containsメソッドを提示することができる。712で、テーブル内のオブジェクトの総数を指定するために、Countメソッドを提示することができる。714で、オブジェクトをテーブルにコピー(複製)するメソッドが提供される。716で、テーブルが読み取り専用であるかどうかを提示するプロパティ(属性)が提供される。指定されたオブジェクトをテーブルにコピーするために、CopyToメソッドを提示することができる。テーブルを追加したり削除したりすることができるかどうかを戻すために、IsReadOnlyプロパティを提示することができる。
図8は、クライアントと1つまたは複数のストアとの間の接続をカプセル化する方法を示している。さらに、クラスは、セッションコンテキスト、識別管理、変更の追跡、および同時並行競合処理の範囲を定義する。StorageContextクラスは、クライアント(コンピュータ)と1つまたは複数のストアとの間の接続をカプセル化し、CRUD(作成、読み取り、更新、および削除)操作のゲートウェイである。
Figure 2006244499
StorageContextは、ストア情報を提供するStorageDomainが与えられると構築される。あるいは、StorageContextは、StorageDomain無しで構築することができ、環境設定ファイルなど、デフォルトのソースからストア情報を取得することができる。
802で、キーを介してオブジェクトを戻すメソッドが提供される。特定のキーに関連付けられているStorageContext内のオブジェクトを戻すために、GetObjectByKeyメソッドを提供することができる。代わりに、このメソッドを取り出して、個別のStateManagementオブジェクトに入れることができる。このメソッドの非同期バージョンを提供することもできる。804で、StorageContext内の特定のオブジェクトに関連付けられているキーを戻すために、GetObjectKeyメソッドを提供することができる。代わりに、このメソッドを取り出して、個別のStateManagementオブジェクトに入れることができる。806で、StorageContext内のオブジェクトへの追加、削除、または修正を保存するために、SaveChangesメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。
808で、StorageContext内のオブジェクトを現在のストア値でリフレッシュするために、Refreshメソッドを提供することができる。リフレッシュする明示的な1組のオブジェクトは、例えば列挙子(enumerator)を介して、またはパラメータとして指定することができる。修正の競合の処理方法を制御するために、追加のオプションを指定することができる。このメソッドの非同期バージョンを提供することもできる。810で、新しいオブジェクトをStorageContextに関連付けるために、Addメソッドを提供することができる。代わりに、このメソッドを取り出して、個別のStateManagementオブジェクトに入れることができる。812で、SaveChangesが呼び出されたときに削除すべきStorageContext内のオブジェクトをマークするために、MarkForDeletionメソッドを提供することができる。代わりに、このメソッドを取り出して、個別のStateManagementオブジェクトに入れることができる。814で、StorageContextに関連付けられているStorageDomainを戻すために、StorageDomainプロパティを提供することができる。
図9は、ストアに対するクエリを構築する方法を示している。900で、ストアに対するクエリを構築するベースクラスが定義される。StorageSearcherクラスは、ストアに対する結合可能なオブジェクトベースのクエリを構築するために使用される。StorageSearcherは、一般にStorageContext内で、StorageDomainによって実行されるStorageExpressionを生成する。StorageSearcherは、順方向のみに流されるやり方での結果の列挙や、リッチでスクロール可能なStorageViewの構築をサポートする。
Figure 2006244499
Figure 2006244499
StorageSearcherは、StorageSearcherをバインドするコンテキストまたはストアを指定するために、StorageContextまたはStorageDomainで構築することができる。さらに、StorageSearcherを文字列またはStorageExpressionオブジェクトツリーとして初期化するために、クエリ表現(query expression)を指定することができる。
902で、任意のクエリ表現をカプセル化する新しいStorageSearcherを構築するために、Queryメソッドを提供することができる。904で、フィルタメソッドが提供される。入力サーチャー(入力探索部)によって生成されるクエリ結果にわたるフィルタをカプセル化する新しいStorageSearcherを構築するために、Filterメソッドを提供することができる。入力サーチャーによって生成されるクエリ結果にわたるフィルタをカプセル化する新しいStorageSearcherを構築するために、FilterByTypeメソッドを提供することができる。入力サーチャーによって生成されるクエリ結果を異なるタイプと見なす新しいStorageSearcherを構築するために、TreatAsTypeメソッドを提供することができる。
906で、Sort(ソート)メソッド、Project(投影)メソッド、Group(グループ分け)メソッド、Union(統合)メソッドが提供される。入力サーチャーによって生成される一種のクエリ結果をカプセル化する新しいStorageSearcherを構築するために、Sortメソッドを提供することができる。入力サーチャーによって生成されるクエリ結果の投影をカプセル化する新しいStorageSearcherを構築するために、Projectメソッドを提供することができる。入力サーチャーによって生成されるクエリ結果のグループ分けをカプセル化する新しいStorageSearcherを構築するために、Groupメソッドを提供することができる。2つの入力サーチャーによって生成されるクエリ結果の結合をカプセル化する新しいStorageSearcherを構築するために、Unionメソッドを提供することができる。上記は一例にすぎず、限定するものと解釈されないものとする。追加のクエリ操作を表すために、StorageSearcherに対して追加のメソッドを提供することができる。言い換えれば、クエリ操作は、新しいStorageSearchersを戻すStorageSearcherクラスに対するメソッドとして提示することができる。
908で、クエリ結果にアクセスするために使用することができる列挙子を戻すために、GetEnumeratorメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。910で、クエリの最初の結果を戻すメソッドが提供される。これらのメソッドの非同期バージョンを提供することもできる。最初の結果を戻すために、GetFirstメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。結果数を戻すために、GetCountメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。912で、StorageSearcherクエリからStorageViewを作成するために、CreateViewメソッドを提供することができる。CreateViewメソッドは、ビューに固有の情報を指定する追加のオプション有り、または追加のオプション無しで、StorageViewDefinitionを取得することができる。
StorageRecordクラスは、クエリが特定のアプリケーション定義のどんなタイプにも対応しないデータを戻したときのサーチャーの結果タイプとして使用される。例えば、Project操作またはGroup操作の結果がStorageRecordオブジェクトの集まりとなる。
Figure 2006244499
図10は、1組の結果にわたる表示の方法を示している。1000で、結果を表示するクラスが提供される。StorageViewクラスは、1組の結果にわたるリッチなアプリケーションビューを提供する。StorageViewは、フィルタリング、ソート、スクロール、グループ分け、セクション分け、セクションの展開/折りたたみなどの操作をサポートする。
Figure 2006244499
1002で、StorageViewDefinitionの新しいインスタンスを作成するために、CopyDefinitionメソッドを提供することができる。指定されたStorageViewDefinitionを現在のStorageViewに適用するために、ApplyDefinitionメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。1004で、レコード(1件分のデータ)を検索する、レコードカウントを戻す、および現在のレコードを戻すためのメソッドが提供される。指定された位置またはブックマークを基準にして、指定されたフィルタに従って現在のStorageView内でStorageViewRecordを見つけるために、FindRecordメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。現在のStorageView内のレコードカウントを戻すために、Countメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。StorageView内の現在のStorageViewRecordを戻すために、Currentメソッドを提供することができる。
1006で、所与のブックマークについてStorageViewRecordを戻すために、インデックス付きアクセサ(accessor:アクセス機構ともいう)(this[]など)を提供することができる。このメソッドの非同期バージョンを提供することもできる。1008で、位置を移動し、ビューをリフレッシュするメソッドが提供される。指定された位置またはブックマークおよびオフセットに従って、StorageView内で現在の位置を移動するために、MoveCurrentPositionメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。静的StorageView内のデータをストアからの現在の値でリフレッシュするために、Refreshメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。1010で、ブックマークおよびその2進表現を取得するメソッドが提供される。持続性の2進表現からブックマークを取得するために、GetBookmarkFromBinaryメソッドを提供することができる。ブックマークから持続性の2進表現を取得するために、GetBinaryFromBookmarkメソッドを提供することができる。
1012で、セクション、レベル、およびフィールドを展開し、折りたたむメソッドが提供される。StorageView内で定義されたすべてのセクションを折りたたむために、CollapseAllSectionsメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。StorageView内で定義されたすべてのセクションを展開するために、ExpandAllSectionsメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。指定されたレベルを含むすべてのセクションを展開するために、ExpandSectionLevelメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。
1014で、レコードのフィールドを展開するメソッドが提供される。1組のStorageViewRecordsに関連付けられている展開されたフィールドを定義するために、SetExtendedFieldsメソッドを提供することができる。1016で、展開されたセクションの状態を保存し、ロードするメソッドが提供される。展開された1組のセクションを指定する状態をロードするために、LoadSectionExpandStateメソッドを提供することができる。このメソッドの非同期バージョンを提供することもできる。展開された1組のセクションを指定する状態を保存するために、SaveSectionExpandStateメソッドを提供することができる。StorageViewは、StorageViewが変わったときにリスナ(待ち受けプログラム)に通知するViewChangedイベントを提示することができる。
図11は、結果にわたるデータの初期ビューを提示する方法を示している。1100で、データの初期ビューを定義するクラスが提供される。StorageViewDefinitionクラスは、StorageSearcherによって定義された結果にわたるデータの初期ビューを定義する。
Figure 2006244499
1102で、StorageViewのソート基準を取得または設定するために、Sortプロパティを提供することができる。1104で、セクションの変更、および展開を行うプロパティが提供される。StorageView内で定義されたSectionsのリストを変更するために、Sectionsプロパティを提供することができる。指定されたレベルを含むセクションを展開するために、SectionExpandLevelプロパティを提供することができる。1106で、操作をフィルタリングするプロパティおよびメソッドが提供される。StorageViewをフィルタにかけて、指定されたフィルタ状態に一致するStorageViewRecordsのみを提示するために、Filterプロパティを提示することができる。StorageViewをフィルタにかけて、指定されたパラメータを使用して指定されたフィルタ状態に一致するStorageViewRecordsのみを提示するために、SetFilterプロパティを提示することができる。1108で、提示されたフィールドを制限するプロパティおよびメソッドが提供される。StorageViewによって提示されたフィールドを指定されたFieldsに制限するために、Fieldsプロパティを提示することができる。StorageViewによって提示されたフィールドを、指定されたパラメータを使用して指定されたFieldsに制限するために、Fieldsメソッドを提示することができる。
1110で、フィルタ、ソート、およびセクションによって使用されるパラメータを列挙するコレクションが提供される。フィルタ、ソート、およびセクションの指定によって使用されるパラメータを列挙するParametersコレクションを提供することができる。1112で、StorageViewがストアへの変更と同期して自動的に保持されるかどうかを指定するために、ブール(Boolean)のAutoRefreshプロパティを提示することができる。1114で、ストアから一度に取り出すべきStorageViewRecordsの数を指定するために、PageSizeプロパティを提示することができる。
図12は、ストレージレコードクラス(storage record class)を拡張する方法を示している。1200で、ビュープロパティを追加するクラスが提供される。StorageViewRecordは、StorageRecordを拡張し、セクション分け情報、ブックマーク、およびフィールドセッターなど、StorageView固有のプロパティを追加する。StorageViewRecordsは、StorageViewRecord内の値が修正されると、リスナに通知するようIPropertyChangeをサポートする。
Figure 2006244499
1202で、StorageViewRecordがStorageView内のセクションヘッダーレコード(section header record)を表すかどうかを戻すために、IsSectionRecordプロパティを提示することができる。1204で、セクション情報のプロパティが提供される。StorageView内のStorageViewRecordのレベルを戻すために、SectionLevelプロパティを提示することができる。StorageView内のセクションの名前を戻すために、SectionNameプロパティを提示することができる。セクションが展開されるかどうかを戻すために、IsSectionExpandedプロパティを提示することができる。1206で、現在のStorageViewRecordのブックマークを戻すために、Bookmarkプロパティを提示することができる。1208で、StorageViewRecord内で指定されたフィールドの値を設定するために、SetValueinRecordメソッドを提示することができる。フィールドは、名前または序数によって指定することができる。
StorageViewSectionは、StorageView内のセクション(グループ)を定義するために使用される。
Figure 2006244499
セクションが定義されているStorageView内にフィールドを指定するStorageViewSectionを構築することができる。セクションが定義されているStorageView内のフィールドを戻すために、Fieldプロパティを提示することができる。セクションを算出する集合(aggregate)を取得または設定するために、AggregateFieldsプロパティを提示することができる。セクション内のStorageViewRecordsの順序を指定するために、Sortプロパティを提示することができる。指定されたAggregateフィールドに従ってStorageViewRecordsを制限するために、Havingプロパティを提示することができる。1組のパラメータとともに、指定されたAggregateフィールドに従ってStorageViewRecordsを制限するために、SetHavingメソッドを提示することができる。
StorageCollection<T>クラスは、その母集団(population)を遅らせることができる、強く型付けされたオブジェクトの集まりを表すために使用される。例えば、StorageCollectionは、親オブジェクトのコレクションプロパティで使用することができる。StorageCollectionは、その内容がアクセスされると、明示的または暗黙的に投入される。
Figure 2006244499
StorageCollectionは、例えばStorageCollectionが親オブジェクトのコレクションプロパティ内のオブジェクトを表す場合、StorageContextまたはStorageDomain、親オブジェクト、およびStorageCollectionに関連付けられている役割(role)を指定する情報で構築することができる。
StorageCollectionに関連付けられているStorageContextを戻すために、Contextプロパティを提供することができる。StorageCollectionに関連付けられているStorageDomainを戻すために、Domainプロパティを提供することができる。コレクションにオブジェクトを追加するために、Fillメソッドを提供することができる。Fillメソッドは、IEnumerable<T>またはStorageSearcherを取得し、またはStorageDomainまたはStorageContextともに親プロパティおよびロールプロパティを使用して、StorageCollectionを投入する要求を生成することができる。StorageCollectionが投入されたかどうかを戻すために、IsFilledプロパティを提示することができる。StorageCollectionをリセットするために、Resetメソッドを提示することができる。
コレクションの定義に対応するストアに対するStorageSearcherを戻すために、Searcherプロパティを提示することができる。StorageCollectionの内容にわたる列挙子を戻すために、GetEnumeratorメソッドを提示することができる。オブジェクトをStorageCollectionに追加するために、Addメソッドを提示することができる。StorageCollectionからオブジェクトを削除するために、Removeメソッドを提示することができる。StorageCollectionをクリアするために、Clearメソッドを提示することができる。StorageCollectionが指定されたオブジェクトインスタンスを含むかどうかを戻すために、Containsメソッドを提示することができる。StorageCollection内のオブジェクトの総数を指定するために、Countメソッドを提示することができる。指定されたオブジェクトをStorageCollectionにコピーするために、CopyToメソッドを提示することができる。StorageCollectionを追加したり削除したりすることができるかどうかを戻すために、IsReadOnlyプロパティを提示することができる。
図13は、ストレージAPI100をCDP1302に使用するシステム1300を示している。CDP1302は、データアプリケーションおよびアプリケーションフレームワーク1304とデータストア1306上のデータとの間のデータ管理を提供するために使用される。CDP1320は、アプリケーションフレームワークおよびそれに関連付けられているエンドユーザアプリケーションにわたって共通のデータサービスを提供する。CDP1302は、アプリケーションおよびアプリケーションフレームワーク1304、ランタイムコンポーネント1308、および制約/セキュリティエンジンコンポーネント1310とのインターフェースを円滑にするAPI100をさらに含む。API100は、パブリック(公開)クラス、インターフェース、および静的ヘルパー機能の形のCDP1302を使用してアプリケーションのプログラミングインターフェースを提供する。例には、StorageContext、StorageSearcher、Entity、Entity、TableSet、Table、EntityReference、TableReferenceなどがある。
CDPランタイムコンポーネント1308は、パブリックAP層100で提示される様々な機能を実施する層である。これは、オブジェクトリレーショナルマッピングおよびクエリマッピングを提供する、データモデルの制約を実施するなどによって、共通データモデルを実装する。より詳細には、CDPランタイム1308は、共通データモデルコンポーネントの実装、クエリプロセッサコンポーネント、セッションおよびトランザクションコンポーネント、セッションキャッシュおよび明示的なキャッシュを含むことができるオブジェクトキャッシュ、変更の追跡、競合の検出、およびイベンティング(eventing:イベントのやり取り)を含むサービスコンポーネント、カーソルおよびルール(罫線)コンポーネント、ビジネスロジックホスティング(business logic hosting)コンポーネント、およびコアの持続性およびクエリサービスを提供する持続およびクエリエンジンを含む。持続性およびクエリサービスの中には、クエリ/更新マッピングを含むオブジェクトリレーショナルマッピングがある。CDP1302は、データストア1306に対する制約や、ロールベースのセキュリティなどのセキュリティポリシーを適用する制約/セキュリティエンジン1310も含む。
次に図14を参照すると、開示のAPIアーキテクチャを実行するように動作可能なコンピュータのブロック図を示している。本発明の様々な態様に関する状況をさらに提示するために、図14および以下の説明は、本発明の様々な態様を実施できるように適したコンピューティング環境1400の簡潔な概要説明を行なう。本発明は、1つまたは複数のコンピュータ上で稼働し得るコンピュータ実行可能命令の一般的な文脈で上述してきたが、本発明を他のプログラムモジュールとの組合せで実施する、かつ/またはハードウェアおよびソフトウェアの組合せとして実施することもできることを、当業者であれば理解されよう。
一般にプログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、本方法は、単一のプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースおよび/またはプログラム可能家庭用電化製品など、1つまたは複数の関連の装置に操作可能にそれぞれ結合することができる他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。
また、本発明の態様例は、いくつかのタスクが通信ネットワークによってリンクされているリモート(遠隔)処理装置によって実行される分散コンピューティング環境でも実施できる。分散コンピューティング環境では、プログラムモジュールを、ローカル(現地)およびリモート(遠隔)のメモリ記憶装置に置くことができる。
コンピュータは、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータからアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルビデオディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータからアクセスできる他の任意の媒体などがある。
通信媒体は、一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号が取り込まれるもので、これには任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するような方法で信号の1つまたは複数の特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接結線された接続などの有線媒体、および音響、RF(無線周波数)、赤外線、その他の無線媒体などのワイヤレス媒体がある。また、上記のどんな組合せでもコンピュータ可読媒体の範囲内に含まれるものとする。
再度図14を参照すると、本発明の様々な態様を実装する環境1400の例は、コンピュータ1402を含んでおり、コンピュータ1402は、処理ユニット1404、システムメモリ1406、およびシステムバス1408を含んでいる。システムバス1408は、それだけには限定されないが、システムメモリ1406を含むシステムコンポーネントを処理ユニット1404に結合する。処理ユニット1404は、市販の様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを処理ユニット1404として使用することもできる。
システムバス1408は、市販の様々なバスアーキテクチャのうちの任意のものを使用するメモリバス(メモリコントローラ付きまたはメモリコントローラ無し)、周辺バス、およびローカルバスとさらに相互接続し得るいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリ1406は、読み取り専用メモリ(ROM)1410およびランダムアクセスメモリ(RAM)1412を含む。基本入出力システム(BIOS)は、ROM、EPROM、EEPROMなどの不揮発性メモリ1410に格納されており、例えば起動中など、コンピュータ1402内の要素間での情報の転送を助ける基本ルーチンを含む。RAM1412は、例えばデータをキャッシュに入れるための静的RAMなど高速RAMを含むこともできる。
コンピュータ1402は、適応の筐体(図示せず)により外部使用向けに設定することもできる内部ハードディスクドライブ(HDD)1414(EIDE、SATAなど)、磁気フロッピー(登録商標)ディスクドライブ(FDD)1416(例えば取外式ディスケット1418から読み取り、またはそこに書き込む)、および光ディスクドライブ1420(例えばCD−ROMディスク1422を読み込む、またはDVDなど他の大容量光媒体から読み取り、そこに書き込む)をさらに含む。ハードディスクドライブ1414、磁気ディスクドライブ1416、および光ディスクドライブ1420は、それぞれハードディスクドライブインターフェース1424、磁気ディスクドライブインターフェース1426、および光ディスクドライブインターフェース1428によってシステムバス1408に接続することができる。外部ドライブ実装用のインターフェース1424は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェース技術のうちの少なくとも一方または両方を含む。他の外部ドライブ接続技術も本発明の意図内に含まれる。
ドライブ(駆動装置)およびその関連のコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶域を提供する。コンピュータ1402では、ドライブおよび媒体は、任意のデータの記憶を適応のデジタル形式で収納する。上記のコンピュータ可読媒体の説明は、HDD、取外式磁気ディスケット、およびCDやDVDなどの取外式光媒体を指すが、zipドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによって読み取り可能な他のタイプの媒体を動作環境例で使用してもよく、さらに、このような任意の媒体は、本発明の方法を実行するコンピュータ実行可能命令を含むことができることを当業者であれば理解されたい。
オペレーティングシステム1430、1つまたは複数のアプリケーションプログラム1432、他のプログラムモジュール1434およびプログラムデータ1436を含めて、いくつかのプログラムモジュールをドライブおよびRAM1412に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータのすべてまたは一部をRAM1412にキャッシュすることもできる。本発明は、市販の様々なオペレーティングシステムまたはオペレーティングシステムの組合せで実施できることを理解されたい。
ユーザは、コマンドおよび情報を、キーボード1438およびマウス1440などのポインティング装置など、1つまたは複数の有線/無線の入力装置を介してコンピュータ1402に入力することができる。他の入力装置(図示せず)には、マイクロフォン、IRリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチ画面などがある。これらおよび他の入力装置は、システムバス1408に結合されている入力装置インターフェース1442を介して処理ユニット1404に接続されることが多いが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェースなど他のインターフェースで接続することができる。
モニタ1444または他のタイプの表示装置も、ビデオアダプタ1446などのインターフェースを介してシステムバス1408に接続される。コンピュータは一般に、モニタ1444に加えて、スピーカやプリンタなど他の周辺出力装置(図示せず)を含んでいる。
コンピュータ1402は、リモートコンピュータ1448など1つまたは複数のリモートコンピュータへの有線および/または無線の通信を介した論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ1448は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯用コンピュータ、マイクロプロセッサベースの娯楽装置、ピア装置、または他の一般のネットワークノードなどとすることができ、一般にコンピュータ1402に関連して記載した多くまたはすべての要素を含むが、簡潔にするために、メモリ/記憶装置1450のみを示している。示した論理接続は、ローカルエリアネットワーク(LAN)1452、および/または広域ネットワーク(WAN)1454などのより大きいネットワークへの有線/無線の接続を含む。このようなLANおよびWANネットワーキング環境は、オフィスや会社ではごく一般的であり、イントラネットなど全社規模のコンピュータネットワークを容易にし、これらはすべて、インターネットなどのグローバルな通信ネットワークと接続することができる。
LANネットワーキング環境で使用する場合、コンピュータ1402は、有線および/または無線の通信ネットワークインタフェースまたはアダプタ1456を介してローカルネットワーク1452に接続される。アダプタ1456は、無線アダプタ1456と通信するために配置されている無線アクセスポイントも含み得るLAN1452との有線または無線の通信を円滑にすることができる。
WANネットワーキング環境で使用する場合、コンピュータ1402は、モデム1458を含むことができ、WAN1454を介して通信サーバに接続され、またはインターネットによるなどWAN1454を介して通信を確立する他の手段を有する。モデム1458は、内蔵または外付け、および有線または無線の装置とすることができ、シリアルポートインタフェース1442を介してシステムバス1408に接続される。ネットワーク式環境では、コンピュータ1402に関連して示したプログラムモジュール、またはその一部をリモートメモリ/記憶装置1450に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることは理解されよう。
コンピュータ1402は、プリンタ、スキャナ、デスクトップ、および/または携帯用コンピュータ、PDA、通信衛星、無線で検出できるタグに関連付けられている任意の設備または場所(キオスク、新聞雑誌売り場、休憩室など)、および電話など、無線通信で動作可能に配置されている任意の無線装置またはエンティティと通信するよう動作可能である。これらは、少なくともWi−FiおよびBluetooth(商標)無線技術を含む。したがって、通信は、従来のネットワークと同様に予め定義されている構造、または単に少なくとも2つの装置間の随時の通信とすることができる。
Wi−Fi(ワイ・ファイ)またはWireless Fidelityによって、家のソファー、ホテルの部屋のベッド、または職場の会議室から、配線無しにインターネットへの接続が可能になる。Wi−Fiは、コンピュータなどのこのような装置がデータを屋内および屋外の基地局の範囲内のどこででも送受信できるようにするセル方式電話で使用されているものと似た無線技術である。Wi−Fiネットワークは、IEEE802.11(a、b、gなど)と呼ばれる無線技術を使用して、安全で信頼性が高い高速無線接続を提供する。Wi−Fiネットワークは、コンピュータを互いに、インターネットに、および有線のネットワーク(IEEE802.3またはEthernet(登録商標)を使用する)に接続するために使用することができる。Wi−Fiネットワークは、ライセンス不要の2.4GHzおよび5GHzの無線帯域で、例えば11Mbps(802.11a)または54Mbps(802.11b)データ転送速度で、または両方の帯域(デュアルバンド)を含む製品で動作するため、ネットワークは、多くのオフィスで使用されている基本的な10BaseT配線のEthernet(登録商標)ネットワークと似た実環境での性能を提供することができる。
次に図15を参照すると、本発明によるコンピューティング環境1500の例の概略ブロック図を示している。システム1500は、1つまたは複数のクライアント1502を含む。クライアント1502は、ハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティングデバイスなど)とすることができる。クライアント1502は、例えば本発明を使用することによって、クッキー(cookie)および/または関連の文脈情報を収納することができる。
システム1500は、1つまたは複数のサーバ1504も含む。サーバ1504もハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティングデバイスなど)とすることができる。サーバ1504は、例えば本発明を使用することによって変換を行うためにスレッド(メッセージ群)を収納することができる。クライアント1502とサーバ1504との間の考え得る1つの通信は、2つ以上のコンピュータプロセス間で送信されるように構成されたデータパケットの形式とすることができる。データパケットは、例えばクッキーおよび/関連の文脈情報を含み得る。システム1500は、クライアント1502とサーバ1504との間の通信を円滑にするために使用できる通信フレームワーク1506(インターネットなどのグローバル通信ネットワークなど)を含む。
通信は、有線(光ファイバを含む)および/または無線の技術を介して促進することができる。クライアント1502は、クライアント1502にローカルな情報(クッキーおよび/または関連の文脈情報など)を格納するために使用できる1つまたは複数のクライアントデータストア1508に動作可能に接続される。同様に、サーバ1504は、サーバ1514にローカルな情報を格納するために使用できる1つまたは複数のサーバデータストア1510に動作可能に接続される。
上記で説明してきたことは、開示された本発明の例示を含む。当然、コンポーネントおよび/または方法の考え得るすべての組合せを記述することはできないが、これ以上の多くの組合せおよび置き換えが可能であることを当業者は理解されよう。したがって、本発明は、特許請求の範囲の意図および範囲内のこのようなすべての代替形態、修正形態、および変形形態を含むものとする。さらに、「含む」という用語が詳細な説明または特許請求の範囲で使用されている限り、このような用語は、請求項で移行語として使用されるときに「含む」が解釈される「含む」という用語と同じように包含的であるものとする。
本発明の一態様によるデータプラットフォームのストレージアプリケーションプログラムインターフェース(API)を示す図である。 開示された一態様によるストレージAPIを提供する方法を示す図である。 ストレージAPIのジェネリックデータアクセスコンポーネントを示すより詳細な図である。 データモデルのストレージAPIを提供する方法を示す図である。 テーブルセットタイプを提示する方法を示す図である。 APIにおいてWinFS機能を提供する方法を示す図である。 ストア内のクラスを表す方法を示す図である。 クライアントと1つまたは複数のストアとの間の接続をカプセル化する方法を示す図である。 ストアに対するクエリを構築する方法を示す図である。 1組の結果にわたる表示の方法を示す図である。 結果にわたるデータの初期ビューを提示する方法を示す図である。 ストレージレコードクラスを拡張する方法を示す図である。 ストレージAPIを共通データプラットフォームに使用するシステムを示す図である。 開示されたアーキテクチャを実行するように動作可能なコンピュータを示すブロック図である。 コンピューティング環境の例を示す概略ブロック図である。
符号の説明
100 データプラットフォームAPI
102 データプラットフォーム
104 CDMデータクラスコンポーネント
106 ジェネリックデータアクセスコンポーネント
108 ドメインデータクラスコンポーネント
1302 共通データプラットフォーム(CDP)
1304 アプリケーションおよびアプリケーションフレームワーク
1306 データストア
1308 ランタイム
1310 制約/セキュリティ
1404 処理ユニット
1406 システムメモリ
1408 バス
1414 内蔵HDD
1414 外部HDD
1418 ディスク
1420 光ドライブ
1422 ディスク
1424 インターフェース
1426 インターフェース
1428 インターフェース
1430 オペレーティングシステム
1432 アプリケーション
1434 モジュール
1436 データ
1438 キーボード
1440 マウス
1442 入力装置インターフェース
1444 モニタ
1446 ビデオアダプタ
1448 リモートコンピュータ
1450 メモリ/ストレージ
1456 ネットワークアダプタ
1458 モデム
1502 クライアント
1504 サーバ
1506 通信フレームワーク
1508 クライアントデータストア
1510 サーバデータストア

Claims (20)

  1. データプラットフォーム用のアプリケーションプログラムインターフェース(API)であって、
    データストアに関連付けられている前記データプラットフォームのストア、セッション、トランザクション、およびクエリサービスのうちの少なくとも1つを提示するジェネリックデータアクセスコンポーネントと、
    前記データプラットフォームのデータモデルの型および関係を提示する正規化アプリケーション非依存クラスのデータクラスコンポーネントと、
    前記データプラットフォームのドメイン固有プロパティおよび挙動を提示するアプリケーション固有およびフレームワーク固有のクラスのドメインデータクラスコンポーネントと
    を含むことを特徴とするアプリケーションプログラムインターフェース。
  2. 前記データプラットフォームは、本質的に異なる複数のアプリケーションフレームワークによってアクセス可能な、該異なるフレームワークの対応するアプリケーションが前記データストアにアクセスできるようにするデータサービスを提供するために、前記データストアにインターフェースで接続する共通データプラットフォームであることを特徴とする請求項1に記載のインターフェース。
  3. 前記ドメインデータクラスコンポーネントは、他のクラスが動作するストアを定義するドメインクラスを含むことを特徴とする請求項1に記載のインターフェース。
  4. 前記データクラスコンポーネントは、セッションについてのコンテキストを提供するコンテキストクラスを含むことを特徴とする請求項1に記載のインターフェース。
  5. 前記コンテキストクラスは、現在のコンテキスト内のオブジェクトへの変更をリフレッシュまたは保存するメソッドによって、識別管理、変更の追跡、および同時並行競合処理の範囲を定義することを特徴とする請求項4に記載のインターフェース。
  6. 前記データクラスコンポーネントは、前記データストアに対して結合可能なオブジェクトベースのクエリを構築するために使用されるサーチャークラスを含むことを特徴とする請求項1に記載のインターフェース。
  7. 検索結果集合にわたるビューを提供するビュークラスをさらに含むことを特徴とする請求項1に記載のインターフェース。
  8. スキーマのテーブルにアクセスを提供するスキーマクラスをさらに含むことを特徴とする請求項1に記載のインターフェース。
  9. 前記スキーマクラスは、対象のスキーマに基づいて型付けされていないスキーマクラスから導出されている強く型付けされたスキーマクラスであることを特徴とする請求項8に記載のインターフェース。
  10. 請求項1に記載の前記インターフェースを遂行するためのコンピュータ実行可能命令を格納することを特徴とするコンピュータ可読媒体。
  11. データプラットフォームを提示するコンピュータ実施方法であって、
    データストアに関連付けられている前記データプラットフォームのストア、セッション、トランザクション、およびクエリサービスのうちの少なくとも1つを提示するステップと、
    前記データプラットフォームのデータモデルの型および関係を提示するステップと、
    前記データプラットフォームのドメイン固有のプロパティおよび挙動を提示するステップと
    を含むことを特徴とするコンピュータ実施方法。
  12. サーバ情報、認証情報、およびマッピング情報を含む前記ストアのストア情報をカプセル化するステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. ストレージサーチャーを介してストレージビューを構築する動作をさらに含むことを特徴とする請求項11に記載の方法。
  14. ストレージサーチャーを介してストレージドメインのクエリを行う動作をさらに含むことを特徴とする請求項11に記載の方法。
  15. クライアントと1つまたは複数の前記ストアとの間の接続をカプセル化するクラスを提供する動作をさらに含むことを特徴とする請求項11に記載の方法。
  16. ストアのうちの少なくとも1つを提示する前記動作は、ジェネリックデータアクセスコンポーネントを介することを特徴とする請求項11に記載の方法。
  17. 型および関係を提示する前記動作は、正規化アプリケーション非依存クラスを介することを特徴とする請求項11に記載の方法。
  18. ドメイン固有のプロパティを提示する前記動作は、アプリケーション固有およびフレームワーク固有のクラスのドメインデータクラスコンポーネントを介することを特徴とする請求項11に記載の方法。
  19. データプラットフォームAPIを円滑にするシステムであって、
    データストアに関連付けられている前記データプラットフォームのストア、セッション、トランザクション、およびクエリサービスのうちの少なくとも1つを提示する手段と、
    前記データプラットフォームのデータモデルの型および関係を提示する手段と、
    前記データプラットフォームのドメイン固有のプロパティおよび挙動を提示する手段と、
    前記ストアに対して結合可能なオブジェクトベースのクエリを構築する手段と、
    前記クエリの1組の検索結果にわたるビューを提供する手段と
    を含むことを特徴とするシステム。
  20. オブジェクトの強く型付けされた集まりを表す手段をさらに含むことを特徴とする請求項19に記載のシステム。
JP2006053435A 2005-02-28 2006-02-28 共通データプラットフォームのためのストレージapi Pending JP2006244499A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US65752205P 2005-02-28 2005-02-28
US11/195,320 US7685561B2 (en) 2005-02-28 2005-08-02 Storage API for a common data platform

Publications (2)

Publication Number Publication Date
JP2006244499A true JP2006244499A (ja) 2006-09-14
JP2006244499A5 JP2006244499A5 (ja) 2009-03-19

Family

ID=36581603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006053435A Pending JP2006244499A (ja) 2005-02-28 2006-02-28 共通データプラットフォームのためのストレージapi

Country Status (9)

Country Link
US (1) US7685561B2 (ja)
EP (1) EP1696350A1 (ja)
JP (1) JP2006244499A (ja)
KR (1) KR101201061B1 (ja)
AU (1) AU2006200229B2 (ja)
BR (1) BRPI0600202A (ja)
CA (1) CA2534257C (ja)
MX (1) MXPA06001846A (ja)
RU (1) RU2408061C2 (ja)

Families Citing this family (213)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195460A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Data model for object-relational data
US7996443B2 (en) * 2005-02-28 2011-08-09 Microsoft Corporation Schema grammar and compilation
US7853961B2 (en) * 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US7685561B2 (en) 2005-02-28 2010-03-23 Microsoft Corporation Storage API for a common data platform
US7756839B2 (en) 2005-03-31 2010-07-13 Microsoft Corporation Version tolerant serialization
US7907137B2 (en) * 2005-03-31 2011-03-15 Casio Computer Co., Ltd. Display drive apparatus, display apparatus and drive control method thereof
US7634515B2 (en) * 2005-05-13 2009-12-15 Microsoft Corporation Data model and schema evolution
US7676493B2 (en) * 2005-09-07 2010-03-09 Microsoft Corporation Incremental approach to an object-relational solution
US7680767B2 (en) * 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
US7647298B2 (en) * 2006-03-23 2010-01-12 Microsoft Corporation Generation of query and update views for object relational mapping
KR100848978B1 (ko) * 2006-05-04 2008-07-30 에스케이 텔레콤주식회사 퍼스널 컴퓨터에서의 표준 소프트웨어 플랫폼 프로그램을 기록한 기록매체
US7526501B2 (en) * 2006-05-09 2009-04-28 Microsoft Corporation State transition logic for a persistent object graph
US20070266041A1 (en) * 2006-05-11 2007-11-15 Microsoft Corporation Concept of relationshipsets in entity data model (edm)
EP1901181B1 (en) 2006-09-13 2010-07-07 Alcatel Lucent Discovery Web Service
US7548912B2 (en) * 2006-11-13 2009-06-16 Microsoft Corporation Simplified search interface for querying a relational database
US7801926B2 (en) * 2006-11-22 2010-09-21 Microsoft Corporation Programmable logic and constraints for a dynamically typed storage system
US9430552B2 (en) 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US7877397B2 (en) * 2007-07-30 2011-01-25 Microsoft Corporation Extensible command execution for entity data model platform
US20090241134A1 (en) * 2008-03-24 2009-09-24 Microsoft Corporation Remote storage service api
JP5631879B2 (ja) * 2008-07-28 2014-11-26 ソニー株式会社 ネットワークサービスにアクセスするクライアントデバイス及び関連方法
US8150882B2 (en) 2009-03-03 2012-04-03 Microsoft Corporation Mapping from objects to data model
US8131743B1 (en) 2009-06-29 2012-03-06 Emc Corporation Object searching in data storage systems
US8171046B1 (en) * 2009-06-29 2012-05-01 Emc Corporation Converting CQL query results into user-controllable objects
US8904375B2 (en) * 2009-09-30 2014-12-02 General Electric Company Systems and methods for providing an embedded service-oriented user interface integration bus
US9002924B2 (en) 2010-06-17 2015-04-07 Microsoft Technology Licensing, Llc Contextual based information aggregation system
US8418074B2 (en) * 2010-06-29 2013-04-09 Sap Ag Shared user interface services framework
US8412673B2 (en) 2010-07-30 2013-04-02 Sap Ag Persistence of master data in a multi-tenant software delivery architecture
KR101110535B1 (ko) * 2010-09-07 2012-01-31 성균관대학교산학협력단 복수 개의 냄새 인식 방법
US8954475B2 (en) 2011-11-10 2015-02-10 Microsoft Technology Licensing, Llc Deep cloning of objects using binary format
US10430406B2 (en) * 2012-08-13 2019-10-01 Aria Solutions, Inc. Enhanced high performance real-time relational database system and methods for using same
US9513979B2 (en) * 2013-01-11 2016-12-06 Sap Se Mobile communication device providing interconnectivity between apps based on storage scope
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US20140025572A1 (en) * 2013-01-25 2014-01-23 Concurix Corporation Tracing as a Service
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
CN106030630B (zh) 2014-02-26 2021-04-06 锡克拜控股有限公司 用于跟踪物品的系统和方法
US10181051B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10147421B2 (en) 2014-12-16 2018-12-04 Microcoft Technology Licensing, Llc Digital assistant voice input integration
US9389928B1 (en) 2015-02-11 2016-07-12 Microsoft Technology Licensing, Llc Platform for extension interaction with applications
US10133613B2 (en) 2015-05-14 2018-11-20 Microsoft Technology Licensing, Llc Digital assistant extensibility to third party applications
US9872072B2 (en) * 2016-03-21 2018-01-16 Google Llc Systems and methods for identifying non-canonical sessions
US10423996B2 (en) 2016-04-01 2019-09-24 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10353674B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10346637B2 (en) 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US10440062B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US10452864B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10437412B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US10204154B2 (en) 2016-06-10 2019-02-12 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10438017B2 (en) * 2016-06-10 2019-10-08 OneTrust, LLC Data processing systems for processing data subject access requests
US10235534B2 (en) 2016-06-10 2019-03-19 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US10452866B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US12118121B2 (en) 2016-06-10 2024-10-15 OneTrust, LLC Data subject access request processing systems and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US10346638B2 (en) 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US12045266B2 (en) 2016-06-10 2024-07-23 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10430740B2 (en) 2016-06-10 2019-10-01 One Trust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10275614B2 (en) 2016-06-10 2019-04-30 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US10181019B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems and communications systems and methods for integrating privacy compliance systems with software development and agile tools for privacy design
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US12052289B2 (en) 2016-06-10 2024-07-30 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10509920B2 (en) * 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US12136055B2 (en) 2016-06-10 2024-11-05 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
KR102007886B1 (ko) 2017-01-10 2019-08-07 주식회사 위자드랩 텔레매틱스 클라이언트 어플리케이션 개발 수단 제공 방법 및 시스템
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
RU2683690C1 (ru) * 2017-12-27 2019-04-01 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Способ и система автоматической генерации программного кода для корпоративного хранилища данных
US10635416B2 (en) * 2018-07-31 2020-04-28 Microsoft Technology Licensing, Llc Property filtering
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
WO2022011142A1 (en) 2020-07-08 2022-01-13 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
WO2022032072A1 (en) 2020-08-06 2022-02-10 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
WO2022060860A1 (en) 2020-09-15 2022-03-24 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
WO2022099023A1 (en) 2020-11-06 2022-05-12 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
WO2022159901A1 (en) 2021-01-25 2022-07-28 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US20240111899A1 (en) 2021-02-08 2024-04-04 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
US11775348B2 (en) 2021-02-17 2023-10-03 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US20240311497A1 (en) 2021-03-08 2024-09-19 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US12100384B2 (en) * 2022-01-04 2024-09-24 Capital One Services, Llc Dynamic adjustment of content descriptions for visual components
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018777A (ja) * 2003-06-23 2005-01-20 Microsoft Corp 共通問い合わせ実行時システムおよびアプリケーションプログラミングインターフェイス

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5449293A (en) 1992-06-02 1995-09-12 Alberta Research Council Recognition training system
US5576954A (en) 1993-11-05 1996-11-19 University Of Central Florida Process for determination of text relevancy
US5560005A (en) 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
US5717913A (en) 1995-01-03 1998-02-10 University Of Central Florida Method for detecting and extracting text data using database schemas
KR100269258B1 (ko) 1997-10-21 2000-10-16 정선종 프로세스 방법론을 위한 통합 case 정보저장소 메타 모델시스템 및 그 통합 지원 방법
US6128624A (en) 1997-11-12 2000-10-03 Ncr Corporation Collection and integration of internet and electronic commerce data in a database during web browsing
US6385618B1 (en) 1997-12-22 2002-05-07 Sun Microsystems, Inc. Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool
US6175837B1 (en) 1998-06-29 2001-01-16 Sun Microsystems, Inc. Object-relational mapping toll that processes views
US6735593B1 (en) 1998-11-12 2004-05-11 Simon Guy Williams Systems and methods for storing data
US6341277B1 (en) 1998-11-17 2002-01-22 International Business Machines Corporation System and method for performance complex heterogeneous database queries using a single SQL expression
US6341289B1 (en) 1999-05-06 2002-01-22 International Business Machines Corporation Object identity and partitioning for user defined extents
US6847980B1 (en) 1999-07-03 2005-01-25 Ana B. Benitez Fundamental entity-relationship models for the generic audio visual data signal description
US6556983B1 (en) 2000-01-12 2003-04-29 Microsoft Corporation Methods and apparatus for finding semantic information, such as usage logs, similar to a query using a pattern lattice data space
AU2001236998A1 (en) 2000-02-11 2001-08-20 Acta Technologies, Inc. Nested relational data model
US6591275B1 (en) 2000-06-02 2003-07-08 Sun Microsystems, Inc. Object-relational mapping for tables without primary keys
US20050267901A1 (en) * 2000-11-10 2005-12-01 Kevin Irlen Distributed single schema data modeling system and method
US20030105732A1 (en) 2000-11-17 2003-06-05 Kagalwala Raxit A. Database schema for structure query language (SQL) server
US6957230B2 (en) 2000-11-30 2005-10-18 Microsoft Corporation Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values
US7043481B2 (en) 2001-06-01 2006-05-09 Thought, Inc. System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships
US20030005019A1 (en) 2001-06-27 2003-01-02 Kuldipsingh Pabla Application frameworks for mobile devices
US20030046266A1 (en) 2001-07-26 2003-03-06 Ward Mullins System, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
US6907433B2 (en) 2001-08-01 2005-06-14 Oracle International Corp. System and method for managing object to relational one-to-many mapping
US7158994B1 (en) 2001-09-28 2007-01-02 Oracle International Corporation Object-oriented materialized views
US6836777B2 (en) 2001-11-15 2004-12-28 Ncr Corporation System and method for constructing generic analytical database applications
MXPA04005064A (es) 2001-11-28 2004-09-10 Bow Street Software Inc Metodo y aparato para crear objetos de programa.
US7162721B2 (en) 2001-12-03 2007-01-09 Sun Microsystems, Inc. Application-independent API for distributed component collaboration
US7062502B1 (en) 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US7058655B2 (en) 2002-01-11 2006-06-06 Sun Microsystems, Inc. Determining object graph and object graph projection
US20040006549A1 (en) 2002-03-22 2004-01-08 Ward Mullins Micro edition dynamic object-driven database manipulation and mapping system
US7069260B2 (en) 2002-05-15 2006-06-27 Motorola, Inc. QOS framework system
US6910032B2 (en) 2002-06-07 2005-06-21 International Business Machines Corporation Parallel database query processing for non-uniform data sources via buffered access
US7191182B2 (en) 2002-07-20 2007-03-13 Microsoft Corporation Containment hierarchy in a database system
US7096216B2 (en) 2002-07-20 2006-08-22 Microsoft Corporation Performing operations on a set of objects in a database system
US7412436B2 (en) 2002-07-20 2008-08-12 Microsoft Corporation System and interface for manipulating a database
US7130856B2 (en) 2002-07-20 2006-10-31 Microsoft Corporation Map and data location provider
US7162469B2 (en) 2002-07-20 2007-01-09 Microsoft Corporation Querying an object for properties
US7711675B2 (en) 2002-07-22 2010-05-04 Microsoft Corporation Database simulation of data types
US7730446B2 (en) 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
US7054877B2 (en) 2003-03-31 2006-05-30 International Business Machines Corporation Dealing with composite data through data model entities
US7412569B2 (en) 2003-04-10 2008-08-12 Intel Corporation System and method to track changes in memory
AU2003901968A0 (en) 2003-04-23 2003-05-15 Wolfgang Flatow A universal database schema
EP1482418A1 (en) 2003-05-28 2004-12-01 Sap Ag A data processing method and system
EP1482419A1 (en) 2003-05-28 2004-12-01 Sap Ag Data processing system and method for application programs in a data warehouse
FI115676B (fi) 2003-07-28 2005-06-15 Nolics Oy Menetelmä relaatiotyyppisen tiedon oliomuotoiseksi käsittelemiseksi
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US7512638B2 (en) * 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7599948B2 (en) 2003-10-10 2009-10-06 Oracle International Corporation Object relational mapping layer
US7454428B2 (en) 2003-10-29 2008-11-18 Oracle International Corp. Network data model for relational database management system
US7725460B2 (en) 2003-12-08 2010-05-25 Ebay Inc. Method and system for a transparent application of multiple queries across multiple data sources
US7219102B2 (en) 2003-12-22 2007-05-15 International Business Machines Corporation Method, computer program product, and system converting relational data into hierarchical data structure based upon tagging trees
US7536409B2 (en) 2005-02-15 2009-05-19 International Business Machines Corporation Having a single set of object relational mappings across different instances of the same schemas
US20060195460A1 (en) 2005-02-28 2006-08-31 Microsoft Corporation Data model for object-relational data
US7853961B2 (en) 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US7685561B2 (en) 2005-02-28 2010-03-23 Microsoft Corporation Storage API for a common data platform
US20070266041A1 (en) 2006-05-11 2007-11-15 Microsoft Corporation Concept of relationshipsets in entity data model (edm)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018777A (ja) * 2003-06-23 2005-01-20 Microsoft Corp 共通問い合わせ実行時システムおよびアプリケーションプログラミングインターフェイス

Also Published As

Publication number Publication date
CA2534257A1 (en) 2006-08-28
KR20060095449A (ko) 2006-08-31
US20060195477A1 (en) 2006-08-31
US7685561B2 (en) 2010-03-23
BRPI0600202A (pt) 2006-10-24
KR101201061B1 (ko) 2012-11-14
RU2408061C2 (ru) 2010-12-27
EP1696350A1 (en) 2006-08-30
MXPA06001846A (es) 2007-01-30
AU2006200229B2 (en) 2011-02-03
RU2006102135A (ru) 2007-08-10
CA2534257C (en) 2014-01-07
AU2006200229A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
JP2006244499A (ja) 共通データプラットフォームのためのストレージapi
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
US20200249939A1 (en) Maintaining and updating software versions via hierarchy
KR101159311B1 (ko) 임의의 데이터 모델에 대한 맵핑 시스템 및 방법
US7822785B2 (en) Methods and apparatus for composite configuration item management in configuration management database
TWI405091B (zh) 用於跨不同應用程式架構之資料服務的電腦系統及電腦可實施方法
EP1625513B1 (en) Rules framework for definition and execution of end-user rules logic
KR100959473B1 (ko) 저장 플랫폼과 애플리케이션 프로그램 사이의 애플리케이션프로그래밍 인터페이스
JP5065056B2 (ja) ワークフローを処理するための方法、コンピュータ・プログラム、およびシステム(ワークフロー・システムへのデータ管理動作の統合)
US8694557B2 (en) Extensibility of metaobjects
RU2507574C2 (ru) Постраничное разбиение иерархических данных
KR20060095452A (ko) 이질적인 애플리케이션들에 걸쳐 공통적인 데이터 액세스를제공하는 방법 및 시스템
US20050246686A1 (en) Rules framework for definition and execution of end-user rules logic
US7539672B2 (en) Apparatus, system, and method for direct retrieval of hierarchical data from SAP using dynamic queries
JP4384247B2 (ja) 拡張可能マークアップ言語(xml)のための軽量なアプリケーションプログラムインターフェース(api)
US20090248651A1 (en) Apparatus and method for maintaining metadata version awareness during set evaluation for olap hierarchies
US20040015486A1 (en) System and method for storing and retrieving data
JP2010519624A (ja) エンティティ向けrest
JP2006114045A (ja) スキーマデータ(schemadata)からデータ構造へのマッピング
US8903842B2 (en) Metadata driven reporting and editing of databases
KR20060080921A (ko) 항목 기반 저장 플랫폼 내에서 데이터 모델링하기 위한시스템 및 방법
KR20060050040A (ko) 레포팅 소프트웨어의 주문형 그래픽 표현을 지원하는시스템 및 방법
KR101797483B1 (ko) 데이터베이스 관리 시스템에서 쿼리를 프로세싱하기 위한 기법
US20040015542A1 (en) Hypermedia management system
JP2006114033A (ja) データを編成することを円滑にするシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111111