JP2010519624A - エンティティ向けrest - Google Patents

エンティティ向けrest Download PDF

Info

Publication number
JP2010519624A
JP2010519624A JP2009550165A JP2009550165A JP2010519624A JP 2010519624 A JP2010519624 A JP 2010519624A JP 2009550165 A JP2009550165 A JP 2009550165A JP 2009550165 A JP2009550165 A JP 2009550165A JP 2010519624 A JP2010519624 A JP 2010519624A
Authority
JP
Japan
Prior art keywords
edm
entity
data
store
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
JP2009550165A
Other languages
English (en)
Inventor
カストロ パブロ
アンソニー バーネット アレックス
イアン マラリウ ティモシー
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 JP2010519624A publication Critical patent/JP2010519624A/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本発明は、EDM(entity data model)アーキテクチャにより特徴付けられるデータ・ストア上にREST(representational state transfer)インタフェースを提供する。係る特徴付けをエンティティ・フレームワークにより提示することができ、このエンティティ・フレームワークにより、リレーショナル・データベース側で或る方法で特徴付けたデータをEDMの特性に変換することができ、このEDMの特性をさらに外部のプロセスまたは装置に公開することができる。EDMストア上のRESTインタフェースは、表現力が高い方法でモデル化したデータをインターネットまたはウェブ規模のイントラネットに公開するためのエンド・ツー・エンドのフレームワークを提供することができる。

Description

従来のデータベースは、データ・ストア内部に記憶したデータを表すためにリレーショナル・モデルを使用している。リレーショナル・モデルはデータの独立を可能とするシステムであり、データベース内部に記憶したデータの物理的表現はデータベースのユーザに提示される論理的なビューとは異なる。リレーショナル・データベース・モデルは30年以上前に導入され、記憶データを有用な形式で提示するための手段として大きな成功を収めた。時間とともに、より新しく様々な技術(例えば、インターネットにより生み出された技術)にリレーショナル・モデルが適用されると幾つかの欠点が浮き彫りになった。特に、SQL(structured query language)はリレーショナル・モデルのデータ・ストアに対する問合せ言語としてほぼ独占的に使用されるようになり、十分な適応が不足したために当該言語は幾つかの現代的なアプリケーションに対しては比較的扱い難いものとなった。さらに、リレーショナル・モデルは、数学的関係を基礎とし、後に開発されたオブジェクト・ベースのデータ・モデルと比べて理論的に構築された。その概念的な簡潔さのために、多くのアプリケーション・プログラマは従来のリレーショナル・モデルよりオブジェクト・モデルおよび後続のモデリング方式を好んだ。
近年、計算システム、特に緩く相関するシステムの通信方式に関してかなり議論が行われた。一部の議論はウェブ・サービスと、特定のウェブ・サービスのローカル・プロセスを定式化するための構想とに集中した。これらのウェブ・サービスのうち幾つかはアプリケーションおよびサービスの両方の性質を示し、インターネット上のエージェントがこれらのサービスを、すぐに利用可能なインタフェースまたはデータ・ストアへの直接アクセスを提供するより洗練されたアプリケーション・プログラミング・インタフェースを通して消費できるようにしている。或る特定の業界には、サービスおよびアプリケーションの2相構成は良く適合した。しかし、これらの構成は比較的複雑で、幾つかのコンシューマ、特に、データベース、アプリケーション、ウェブサイトの開発者のニーズには適合しなかった。アプリケーションおよびサービスがデータ・ストアと対話するための単一インタフェースに着目した、代替的なアーキテクチャ・スタイルが開発され始めた。具体的なアーキテクチャの1つは、インターネットを大規模なネットワーキング・エンティティとして成功させた特徴に関連して設計され、REST(representational state transfer model)モデルと名づけられた。
RESTインタフェース・アーキテクチャは単純なインタフェースを中心とし、インターネットの成功に寄与する様々な特徴を生かしている。例えば、RESTモデルは、反復的なコンポーネントの対話を軽減するサーバ側およびクライアント側のキャッシュ構造を利用している。さらに、RESTは、各対話がその対話を実行するのに必要な全ての情報を定義するように、処理状態を把握しないステートレスな環境を提供している。このステートレスな環境のためRESTモデルは部分的に成功し、或るコンポーネントが他のコンポーネントとの以前の対話履歴または通信履歴を追跡することは必要ではなかった。今日のウェブ・サービスのアプリケーション・プログラミング構造の大部分は、このRESTプラットフォーム、およびXMLスキーマのような従来のデータ・モデリング・スキーマを基礎としていた。
以下で本発明の簡単な要約を示し、本発明の幾つかの態様の基本的な理解を規定する。本要約は本発明の広範囲の概要ではない。また本要約は、本発明の主要または重要な要素を特定することは意図しておらず、本発明の範囲を線引きすることも意図していない。その唯一の目的は、後に提示する発明を実施するための形態の前置きとして本発明の幾つかの概念を簡単な形で提示することである。
本明細書で開示および主張する発明は、その1態様において、EDM(entity data model)ストアを、当該EDMストアに関連する要求および結果を移送できるステートレスで均一なインタフェースにより公開する。本インタフェースはエンティティ・データ・モデリングにより確立された構造的関係に従って問合せ、例えば、URI(uniform resource identifier)問合せを受け入れることができ、問合せ結果を、XML(eXtensible Mark−up Language)、RDF(resource description framework)、JSON(java script object notation)、等を含む単純な表現形式を介して返すことができる。従って、データを単純で均一な方法でインターネットに公開しつつ、エンティティ・データ・モデリングを介して使用できる表現力の高いデータ・モデリングを利用する、エンド・ツー・エンドのフレームワークを提供することができる。
本発明の別の態様によると、リレーショナル・データベースのようなデータ・ストアをEDMスキーマにマップさせ、EDMエンティティおよびリレーションシップを指定することができる。続いて、係るEDMエンティティおよびリレーションシップをREST(representational state transfer)関連のURI空間にマップすることができる。結果として、表現力のあるEDMエンティティおよびリレーションシップにより表されるデータ・ストアを公知なURIフォーマットで問い合わせることができる。エンティティ自体を安定なREST関連のURIでリソースとして公開することができ、係るURIはEDMスキーマにより記述した構造およびストアを反映する。RESTに関係する環境は均一かつステートレスでありうるので、意味は分かりやすく、スケーラビリティを妨げずに済む。
本発明の1つの特定の態様において、エンティティ・フレームワーク(例えば、.NETブランドのフレームワーク)はリレーショナル・データ・ストアとインタフェースし、リレーショナル層の上に概念層を重ねることができる。より具体的には、エンティティ・フレームワークに関連するクライアント側のビュー・エンジンはリレーショナル・スキーマを利用するリレーショナル・データ・モデルを、潜在的によりリッチなEDMデータ・モデルおよびEDMスキーマにマップすることができる。さらに、RESTインタフェースを利用して、係るデータ・ストアをインターネット、大規模な企業イントラネット、等のようなウェブ規模のネットワークに公開し、外部クライアントが当該データ・ストアを係るウェブ規模のネットワーク上のEDMストアとみなすことができるようにすることができる。エンティティ・フレームワークおよびRESTインタフェースは高レベルのデータ独立性を広大なウェブ空間のスケーラビリティ要件と結び付け、係るアクセス・ネットワーク上の概念的なアプリケーション・プログラミング環境を以前に係る環境に対して使用可能であったものより非常に大規模なものとすることができる。
以下の説明および添付図面で、本発明の或る特定の例示的な態様を説明する。しかし、これらの態様は本発明の原理を使用できる様々な方法のうち幾つかを示すに過ぎず、本発明は係る態様およびその均等物の全てを含むように意図している。本発明の他の利点および際立った特徴は、後の本発明の詳細な説明を添付図面と関連させて考慮することにより明らかになろう。
本発明の態様に従う、EDMストア上の処理状態を把握しないステートレスで均一なインタフェースの高レベルなブロック図である。 特定の態様に従う、従来のリレーショナル・データベースに適用されるEDMスキーマを示す高レベルなブロック図である。 本発明に従う、複数のクライアント側のインタフェースを示す例示的なブロック図である。 本発明の態様に従って、エンティティ・フレームワーク・アーキテクチャのコンポーネントをマップすることで変換されるリレーショナル・ストアのEDMビューをRESTインタフェースが公開することを示す例示的なブロック図を示す図である。 特定の態様に従う、EDMストアをステートレスで均一なインタフェースを介して公開するための例示的な方法を示す図である。 本発明の1態様に従う、問合せをインターネットEDMストアで受け取り応答を提供する例示的な方法を示す図である。 本発明の特定の態様に従う、EDMストアを問合せてRESTインタフェースを介して応答を受け取るための例示的な方法を示す図である。 本発明の新規な態様を使用できる例示的なネットワーク環境を示す図である。 本発明の例示的なコンピューティング環境を示す図である。 本発明の特定の態様に従うアーキテクチャを実行するように動作する例示的なコンピュータ集合システムの略ブロック図である。
図面を参照して本発明を説明する。図面全体を通じて同様な参照番号を使用して同様な要素を参照する。以下の記述では、説明を目的として、多数の具体的な詳細を示して本発明の徹底的な理解を図る。しかし、本発明をこれらの具体的な詳細なしに実施できることは明らかであろう。他の事例では、本発明の説明を容易にするために公知な構造および装置をブロック図の形で示してある。
本明細書で使用するとき、「コンポーネント」、「モジュール」、「システム」、「インタフェース」、「エンティティ・データ・モデル」等は一般にコンピュータ関連の実体、即ち、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェアまたは実行中のソフトウェアの何れかを指すことを意図している。例えば、コンポーネントは、プロセッサ上で稼動しているプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであることができるがこれらに限定されない。例として、コントローラ上で稼動しているアプリケーションおよびコントローラはともにコンポーネントであることができる。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内部に常住することができ、コンポーネントを1つのコンピュータ上に配置してもよく、かつ/または複数のコンピュータ間に分散させてもよい。別の例として、インタフェースはI/Oコンポーネントだけでなく関連するプロセッサ、アプリケーション、および/またはAPIコンポーネントを含むことができ、コマンド・ラインと同程度に単純であるか、それより複雑なIDE(Integrated Development Environment)であることができる。
さらに、本発明を方法、機器、またはソフトウェア、ファームウェア、ハードウェア、もしくはその任意の組合せを生産するための標準的なプログラミングおよび/もしくは製造技術を用いた製品として実装して、本発明を実装するためのコンピュータを制御することができる。本明細書で使用する「製品」という用語は、任意のコンピュータ読取可能装置、キャリア、または媒体からアクセスできるコンピュータ・プログラムを含むことを意図している。例えば、コンピュータ読取可能媒体には磁気記憶装置(例えば、ハード・ディスク、フロッピ・ディスク、磁気ストリップなど)、光ディスク(例えば、CD(compact disk)、DVD(digital versatile disk)など)、スマート・カード、およびフラッシュ・メモリ装置(例えば、カード、スティック、キー・ドライブなど)が含まれるがこれらに限らない。さらに、搬送波を使用して、電子メールの送受信の際またはインターネットもしくはLAN(local area network)などのネットワークへのアクセスの際に使用されるようなコンピュータ読取可能な電子データを運搬できることは理解されよう。もちろん、この構成に本発明の範囲または趣旨を逸脱しない多数の修正を加えうることは当業者には理解されよう。
さらに、「例示的」という単語は本明細書では例、事例、または例示を意味するように使用する。「例示的」として本明細書で説明する任意の態様または設計は必ずしも他の態様または設計に対して好適または有利であると解釈すべきではない。むしろ、例示的という単語を使用することは、概念を具体的に提示することを意図している。本明細書で使用する際、「または」という用語は、排他的な「または」ではなく両立的な「または」を意味することを意図している。即ち、特に明記しない限り、または文脈から明らかでない限り、「XがAまたはBを使用する」は自然な両立的順列の何れかを意味することを意図している。即ち、XがAを使用し、XがBを使用し、またはXがAおよびBの両方を使用するならば、「XがAまたはBを使用する」はX、A、Bがどのようなものであっても成り立つ。さらに、本明細書および添付の特許請求の範囲で使用する際、冠詞「a」および「an」は一般に、単数形を指すと特に明記しない限り、または文脈から明らかでない限り、「1つまたは複数」を意味するとして解釈すべきである。
本明細書で使用する際、「推論する」または「推論」は一般にシステム、環境、および/またはユーザの状態を事象および/またはデータを介して得た一組の観測結果から推測または推論することを指す。推論を使用して、例えば特定の文脈もしくは動作を特定するか、状態の確率分布を生成することができる。推論は確率的であることができる。即ち、着目する状態の確率分布の計算はデータおよび事象に基づいて行われる。推論は、高レベルな事象を一組の事象および/またはデータから構成するために使用される技法を指すこともできる。係る推論の結果、事象が時間的に緊密に相関していようといまいと、かつ事象およびデータが複数の事象およびデータのソースから来る来ないに関わらず、新たな事象または動作は一組の観測した事象および/または記憶した事象データから構築されることになる。
次に図面を参照する。先ず図1を参照すると、本発明の態様に従うEDM(entity data model)記憶(複数可)104上のインタフェース102を示すシステム100が図示されている。インタフェース102は、EDMストア104に関係する要求および結果を移送することができ、ステートレスかつ均一であることができる。均一なインタフェースとして、インタフェース102は情報交換プラットフォームを提供して、情報が係る情報を要求するアプリケーションと独立に転送されるようにすることができる。結果として、各アプリケーションは互いと独立に発展することができ、実質的に同様な形式で情報を提示するための(後で論ずる)表現を利用することができる。従って、EDMデータ・ストア(複数可)104に対する均一なインタフェースにより、複数のクライアント型のコンポーネント(図示せず)がそのインタフェースにアクセスできる。例えば、係るプラットフォーム(例えば、ウェブサイト)を利用するための、すぐに利用可能なユーザ・インタフェースを開発することができる。さらに、複雑または専用のプロトコルを必要としないAPI(application programming interface)を開発することができる。係るAPIインタフェースをプログラマまたは開発者(例えば、ウェブサイト開発者、等)が利用することもできる。
ステートレスなインタフェースとしてのインタフェース102により、記憶コンポーネント、例えば、EDMデータ・ストア(複数可)104は、別のエンティティとの以前のトランザクションに関するデータを殆どまたは全く保持しなくてよい。換言すれば、2つの接続されたシステム、例えば、クライアントおよびサーバの間での要求または応答は当該要求または応答を理解するために必要な情報の全てを含むことができる。例えば、クライアント・システムが、サーバ・システムに記憶した情報を要求する場合、その要求は、当該サーバが当該要求を完了するために必要な全ての情報を指定しなければならない。さらに、クライアントによる後続の要求はそれより前の要求に依存せず、サーバ・システムは他のコンポーネントとの以前の対話に関する情報を保持しない。係るインタフェースにより、サーバ側のメモリ・リソースの同時使用可能性を実質的に最大化することができ、当該サーバ・システムが様々な要求を通してリソース使用を管理する必要がないことを示唆することができる。本例のサーバ・システムをEDMデータ・ストア、例えばEDMデータ・ストア(複数可)104と同等と見なすと、ステートレスなインタフェースにより係るEDMストア104は、増加する要求動作を満たすように迅速にその応答動作を拡大することができる。インターネットまたは大規模なイントラネットのような広大で複雑なネットワーク上では、要求動作が急速に増える、時にはサーバの観点からはランダムに増える可能性がある。従って、スケーラビリティはサーバ性能に関して有利な態様でありうる。
EDMデータ・ストア(複数可)104は、EDMデータ・モデリングの仕組みに従って(例えば、リレーショナル・スキーマをEDMスキーマとして提示できるマッピング機能により)情報を記憶し、その情報を外部に提示できる1つまたは複数の仮想装置または物理装置であることができる。EDMは、エンティティを明示的に定義するデータをモデル化する形式的な方法であることができる。EDMはさらに、係る定義に対して高い表現力の構成概念、例えば、継承およびリレーションシップのような概念を使用して、データを適切かつ具体的な抽象化レベルでモデル化することができる。伝統的には、データ・ストアはリレーショナル・モデルを使用してデータの構造を記述する。対照的に、EDMは高レベルの抽象化によりデータの記述を可能とする層状のアーキテクチャを生成することができる。例えば、EDMアプローチでは、データ・モデラ(例えば、ウェブサイト、データベース、APIの開発者、等)により分かるように、システムに関係する構造的な詳細にあまり気にせずともよく、データ自体の構造的および意味的特徴に、より集中することができる。
EDMスキーマは、エンティティの構造を定義する1つまたは複数のエンティティ・タイプを有することができる。ここで、エンティティとはエンティティ・タイプの特定のインスタンスである。例えば、或るエンティティ・タイプが「コンシューマ」であることができ、「コンシューマ」の記述に適合する任意の仮想または実世界のオブジェクトを含むことができる。「コンシューマ」エンティティ・タイプに関係するエンティティは「コンシューマ・ボブ」であることもできる。「コンシューマ・ボブ」は従って「コンシューマ」エンティティ・タイプの或る特定のインスタンスであることができ、そのエンティティ・タイプのうち他の多くのインスタンスが存在することができる(例えば、「コンシューマ・ジェーン」、「企業B」、「ワシントン州」も全て「コンシューマ」エンティティ・タイプのエンティティであることができる)。従って、エンティティ(インスタンス)はエンティティ・タイプと特定の関係を有することができ、同様にEDMの他の態様との関係を有することができる。
エンティティ・タイプはそれに関連するプロパティ(例えば、記述子、品質、属性、等)を有することができる。プロパティを利用してエンティティ・タイプを記述することができ、かつ/または特定のタイプのエンティティを特定のタイプの他のエンティティと区別することができる。さらに、係るプロパティを利用して、(後で論じる)問合せ断片を介して或る組のEDMデータを別の組のEDMデータからフィルタすることができる。前の例を続けると、「コンシューマ」エンティティ・タイプは「名前」、「住所」、「電話番号」、「電子メール」、等のような、それに関連するプロパティを有することができる。係るプロパティにより、データ・モデリングの継承概念の1態様の形成を支援することができる。
大部分の実際の適用では、エンティティは何らかの方法で他のエンティティと関係する。EDMはこの概念をリレーションシップの概念を通して取り込むことができる。リレーションシップは、リレーションシップ・タイプのインスタンスで、エンティティがエンティティ・タイプのインスタンスであることと同様であり、複数のエンティティ・タイプのインスタンス間の関連を表現することができる(例えば、「コンシューマ・ボブ」が「オペレーティング・システム」を購入した、では、「購入した」というリレーションシップのインスタンスが2つのエンティティ、即ち、「コンシューマ・ボブ」と「オペレーティング・システム」の間の関連を表現することができる)。データ・モデリングにおけるリレーションシップの概念は新しくはないが、リレーションシップ・タイプに関連するリレーションシップ・インスタンスの存在または潜在性により、リレーショナル・モデルで以前に使用できたものを超えて、データ・モデリングに関する新しいレベルの抽象化を提示することができる。
1つの具体的なEDMリレーションシップは継承リレーションシップであり、実際には第1のオブジェクト(例えば、インスタンス、タイプまたはセット、等)から第2のオブジェクトへプロパティを完全または部分的に移すことにより実装される。EDMデータ・モデリングでは、エンティティ・タイプは属性を他のエンティティ・タイプから獲得することができ、それによりスーパータイプ・サブタイプ形式を利用した構造的な継承が可能になる。サブタイプ・エンティティはスーパータイプに属する属性(例えば、前述のプロパティ)のセットまたはサブセットを獲得することができ、サブタイプ・エンティティにさらに追加の属性(例えば、追加のプロパティ、リレーションシップ、等)を割り当てることができる。第2のEDMリレーションシップはアソシエーション・リレーションシップであり、EDMモデリング・システム全体を通じてサポートされる第1のクラスのリレーションシップの構成概念であることができる。アソシエーション・リレーションシップによりピア・ツー・ピアのモデリングが可能となる。リレーションシップのインスタンス「購入した」に関して上で述べた例は、ピア・ツー・ピア関係を示すことができる。より具体的には、2つのエンティティのインスタンス、「コンシューマ・ボブ」と「オペレーティング・システム」は、それぞれ異なるエンティティ・タイプ、即ち「コンシューマ」および「商品」であり、「購入した」というリレーションシップ・インスタンスを介して関係する。従って、アソシエーションは1つまたは複数の独立なエンティティのインスタンスをピア・ツー・ピアの形式を介して関係させることができ、一方でコンテインメントは1つまたは複数の依存エンティティのインスタンスを、親子形式を介して関係させることができる。インスタンスレベルでは、エンティティを第3のEDMトポロジであるエンティティ・セット、具体的にはエンティティ・タイプまたはリレーションシップ・タイプに相関するエンティティ・セットまたはリレーションシップ・セット、に含めることができる。例えば、「コンシューマ」エンティティ・タイプに関連する全ての「コンシューマ」インスタンス(例えば、「コンシューマ・ボブ」および「コンシューマ」タイプの他の全てのインスタンス)をエンティティ・セットに纏めてグループ化することができる。
EDMセットは特定のエンティティ・タイプの複数のエンティティ・インスタンスを含むことができ、従ってEDMセットをエンティティ・タイプに関連付けることができる。エンティティ・セットをテーブル(例えば、列および行を有するスプレッドシート・テーブル)として近似的に概念化することができる。複数のエンティティ・セットをエンティティ・コンテナにグループ化することができ、エンティティ・コンテナをデータベースとして近似的に概念化することができる。
前述のように、EDMデータ・ストア(複数可)104は、EDMのアーキテクチャ・スタイルに従って編成したデータを有する1つまたは複数の物理記憶装置または仮想記憶装置である。例えば、EDMデータ・ストア(複数可)(104)を、物理ストア、論理ストア、またはリレーショナル・ストア、等のような1つまたは複数の記憶コンポーネントにマップしたEDMスキーマにより記述することができる。係る構成により、表現力の高い形のデータ・モデリングまたはデータ形成が可能となる。ステートレスで均一なインタフェース、例えば、インタフェース102によりデータ・ストアを公開することで、コンシューマはカスタム・プロトコルおよび複雑な対話モデリングを必要とせずにデータを利用および操作することができる。例えば、インタフェース102により、EDMデータ・ストア(複数可)104に関係する情報の識別、問合せ、読み出し、および/もしくは更新、ならびに/または高い表現力のデータをインターネット、大規模なイントラネット、等のような広大なウェブ環境に公開するためのエンド・ツー・エンドのフレームワークの提供を容易にすることができる。
次に図2を参照すると、本発明の特定の態様に従う、従来のリレーショナル・データベースに適用されるEDMスキーマを含むシステム200が図示されている。物理データ・ストア(複数可)202は任意の種類の仮想データ記憶媒体または物理データ記憶媒体であることができ、例えば、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンビューティング装置、等)、サーバ、データベース、等が含まれる。EDMスキーマ204は上述のものと同様なエンティティ・データ・モデル構造であることができ、エンティティ・タイプ、エンティティ・インスタンス、およびエンティティ・セットに従って情報を形成および編成することができる。さらに、EDMスキーマ204は1つまたは複数のリレーションシップ・タイプ、インスタンス、またはセットを介してエンティティのタイプ、インスタンスおよびセットを相関させることができる。リレーションシップはアソシエーションおよび/または継承ベースの関係であることができ、ピア・ツー・ピアおよび/またはスーパータイプ・サブタイプの特性を保存する役割を果たすことができる。さらに、係る関係は、両方向のエンティティ間の明示的および暗黙的な関連付けを可能とする第1クラスのリレーションであることができる。例えば、第1クラスのリレーションにより、クライアント装置(図示せず)は第1のエンティティから第2のエンティティへリレーションを辿り、次に第2のエンティティから第1のエンティティへ戻ることができる。
インタフェース206は、EDMスキーマ204により指定された物理データ・ストア(複数可)202へのステートレスで均一なアクセスを提供することができる。係るアクセスにより、コンポーネント(例えば、クライアント装置)は、インターネットまたは大規模なイントラネットのような大規模なウェブスタイルのアーキテクチャのストアからエンティティを発見、取得および/または更新することができる。前に論じたように、ステートレスで均一なインタフェースによりスケーラビリティを提供することができ、開発者は(後述)単純なデータ表現に基づいてアプリケーションを作成することができる。さらに、係るアーキテクチャにより、プログラミング環境、例えば、(後でより詳細に論じる)エンティティ・フレームワークはクライアント側のビュー・エンジンを適用してEDMスキーマ(例えば、EDMスキーマ204)を形式化することができる。
クライアント側のビュー・エンジンは、従来のリレーショナル・ストア(例えば、物理データ・ストア(複数可)202)に関する記憶スキーマとは異なるインタフェース・スキーマ(例えば、EDMスキーマ)をクライアント装置で提示するための宣言的マッピング仕様を解釈することができる。(従って、図1に示すEDMデータスキーマ(複数可)104は、本明細書で説明する[例えば、EDMスキーマ204のようなEDMの適用する]マッピング仕様を伴うリレーショナル・データベースでもありうることは理解されよう)。エンティティ・フレームワーク環境と係るインタフェースへのその適用は後に図4でより詳細に論ずる。
図3を参照すると、例示的なブロック図により、本発明に従う複数のクライアント側インタフェースを伴うシステム300が示されている。EDMデータ・ストア(複数可)302は、上で論じたように、EDM構造(例えば、EDMスキーマ)により特徴付けられる情報を含む。REST(representational state transfer model)層304は、インターネットのような大規模なネットワーク環境に関する特定のデータ・インタフェースであることができる。RESTモデルは、大規模なネットワーク環境で効果的と証明された幾つかの装置インタフェースの制約を提供することができる。REST層304と関連付けることができるインタフェース特性の例は、(上で論じた)ステートレスな対話であり、それによりクライアント側要求のスケーラビリティ、粒度の大きなハイパーメディアのデータ(例えば、ビデオ、オーディオ、等のような大きなデータ・ファイル)の転送に理想的な均一なコンポーネント・インタフェース、反復的な要求の結果生ずるリソース要求の軽減を支援するクライアント側およびサーバ側のキャッシュ、およびシステムの複雑性に上限を設け、コンポーネント間の独立性を推進する層状コンポーネント・アーキテクチャが可能となる。REST層304はこれらの特性の一部または全部から成る組合せだけでなく、大規模なネットワーク環境におけるデータ転送を容易にする追加の特性を含むことができることは理解されよう。
一般に、REST層304はEDMデータ・ストア(複数可)302および外部インタフェースの間で要求および結果を移送するための機構を提供する(例えば、外部インタフェースはクライアントのユーザ・インタフェース306、クライアント側APIインタフェース308、等を含むことができる)。より具体的には、REST層304によりクライアントインタフェースは大規模なウェブスタイルのネットワーク310(例えば、インターネット、大規模なイントラネット、等)上のEDMデータ・ストア(複数可)302からエンティティを発見、取得、および更新することができる。REST層304は要求を管理するために単純なリソース中心モデルを使用する。REST層304は上で論じたようにステートレスでもあり、リレーショナルな意味を単純化し、EDMデータ・ストアまたはREST層のインタフェースのスケーラビリティを最適化する。
REST構造は、その少なくとも一部がREST層304を定義し、EDMエンティティと良く動作する。EDMエンティティは安定なURIを伴うリソースとして公開される。係るURIはEDMスキーマ(例えば、EDMデータ・ストア(複数可)302)により記述される記憶構造を反映する。より具体的には、EDMスキーマに従ってEDMデータ・ストア(複数可)302上のリソースを定義するURI名前空間の形で構造化される、ウェブスタイルの転送プロトコル(例えば、HTTPプロトコル、等)によって、EDMデータ・ストア(複数可)302にアクセスすることができる。1つのフォーマット例は以下の通りである。
<base URI>/<entity container refx file>[/<entityset>[/<entity key>[/<association navigation property>]]]?<options>
「base URI」は、エンティティ環境(例えば、後でより詳細に論ずる、エンティティ・フレームワーク)およびREST拡張をホストできるウェブ・サーバまたはウェブ・ディレクトリを指すことができる。「refx file」は、ストアまたはコンテナ(例えば、EDMデータ・ストア(複数可)302)への接続を表し、またエンティティ・セット、エンティティ・キー、およびナビゲーション・プロパティは上で部分的に定義した正規のEDM構成概念である。オプションとしてデータ表現があり、後でこのオプションをより詳細に説明する。
例として、所与のEDMスキーマがエンティティ・タイプの「カスタマ」をもつ場合、そのインスタンスは「カスタマ」エンティティ・セット内部でグループ化され、後続のURIが(EDMデータ・ストア(複数可)302内部に含まれるデータ・ストアのサブセットまたはセットを定義できる)エンティティ・セット内部に含まれるカスタマの全てを列挙することができる。即ち、
http://entities.live.com/refx/northwind.refx/Customers
である。さらに、EDM構造内にさらに進んで、カスタマのエンティティ・セット内部に含まれる特定のカスタマのインスタンスを、その特定のカスタマのインスタンスに関連するエンティティ・キーを利用することにより識別することができる。前の例を続けると、カスタマ・インスタンスに対するエンティティ・キーが「ALFKI」である場合、当該カスタマ・インスタンスに関するリソースに移動できるURIは
http://entities.live.com/refx/northwind.refx/Customers/ALFKI
と書ける。または、代替例として、
http://entities.live.com/refx/northwind/refx/Customers/[ALFKI].
と書ける。係る代替例により、非キー・フィールドを利用するデータ検索機能を可能とすることができる。例えば、
http://entities.live.com/refx/northwind.refx/Customersf[CompanyName =
“Company_One”]
である。
EDMデータ・ストア(複数可)302は、それに関連するEDMスキーマにより記述され、REST層304を介して公開されるリレーションシップ(例えば、リレーション・エンティティ、リレーション・インスタンス、リレーション・セット、等)を有することができる。前の例を続けると、エンティティ・タイプ「カスタマ」は、それに関係し、EDMスキーマの一部として定義される、ナビゲーション・プロパティ「SalesOrders」をもつ。ナビゲーション・プロパティは、例えば、所与のカスタマとその販売注文との間の関係を表すことができる。エンティティ・タイプ「カスタマ」に関係する販売注文を表すことができるURIは
http://entities. live.com/refx/northwind.refx/Customers/ALFKI/SalesOrders or,
alternatively:
のように表すことができる。または代替的に、
http://entities.live.com/refx/northwind.refx/Customersf[ALFKI]/SalesOrders
のように表すことができる。
現在の例で示したURIはウェブスタイルのネットワーク310におけるエンティティへの安定したポインタであり、それにより、例えば、過渡的なアプリケーションまたは長期間の記憶域、またはその両方と関連して、係るURIが有用となる。さらに例示するため、エンティティ(例えば、「カスタマ」エンティティ・タイプのインスタンス)を指すURIは、当該エンティティのコピーを取得するための「GET」HTTPコマンドを含むことができるか、当該URIをそのコマンドと関連して使用することができる。さらに、URIはデータ・ストア内部のエンティティ(例えば、上述のEDMデータ・ストア(複数可)302内部に含まれる「カスタマ」エンティティ・タイプのインスタンス)を挿入または更新するための「PUT」または「POST」コマンドを含むことができるか、当該URIをそれらのコマンドと関連して使用することができる。
高度なエンティティのタイプ、セット、およびインスタンスを、現在のEDMデータ・モデリング手法を拡張するアクション集合を含むEDMデータ・ストア(複数)302によって表すこともできる。アクションは、例えば、EDMスキーマ中のエンティティを参照することによりEDMの用語で表現することができ、アクションを、(例えば、後の図4でも示す)EDMスキーマをリレーショナル・ストアおよび/または物理ストアにマップする方式に類似する、実際の実装形態にマップすることができる。EDMアクションのインスタンスをステートレスで均一なインタフェース(例えば、上のインタフェース102、またはRESTインタフェース304)により公開することができるが、EDMアクションのインスタンスはリソースの代わりにアクションを表すことができる。例えば、「カスタマ」エンティティ・タイプのようなカスタマ・リソースと対話するとき、以下のURIを提示した。
http://entities.live.com/refx/northwind.refx/CustomersALFKI (or [ALFKI])
「販売キャンペーンを開始」のようなアクションの例では、カスタマのカテゴリをパラメータとして取り、例えば、以下のURIによってそのアクションを起動することができる。
http://entities.live.com/refx/northwind.refx/Actions/StartCampaign7customersCategory=/Categories/SMB
さらに、汎用目的の同期インフラを、提示したエンティティの概念に自然に統合することができる。係るインフラが整うと、RESTインタフェース304およびEDMデータ・ストア302の上に(例えば、ユーザ・インタフェース306の一部またはユーザ・インタフェース306と関連して)構築したアプリケーションはウェブ規模のネットワークを横断して情報にアクセスできるだけでなく、その情報をローカル・データ・ストア(例えば、SQLタイプのサーバ管理スキーマ)と同期して、幾つかの電子メールおよび通信アプリケーションと同様なオフラインの動作モードを効果的に提供することもできる。従来のクライアント・サーバ間の複製を超えて、係る同期インフラはピア・ツー・ピアの複製をサポートすることができる。係る複製により、エンティティを伴うEDMストアを保持する複数のピアを有し、システムが長期間同期すると収束する「メッシュ記憶」を形成するアプリケーションを生成することができる。
上述の複製システムに加えて、SSE(simple sharing extension)の新バージョンとの互換性により、SSEの条件で動作できるエージェントに渡って相互運用可能な同期が可能となる。SSE拡張システム300を利用すると、SSE対応クライアントおよび類似のアプリケーションにより消費可能な、エンティティ・ストア(例えば、エンティティ・データ・ストア(複数可)302)の変化を供給することができる。
次に図4を参照すると、ここにはシステム400が図示されており、それはデータ・ストア(複数可)408のEDM特性(ビュー)406を公開するためのEDM RESTインタフェース404を提供できる中間サーバ・コンポーネント402を示す。データ・ストア(複数可)408に関するモデリング・スキーマを、エンティティ・フレームワーク412に関するマッピング・コンポーネント410によりリレーショナル・データ・モデルからEDMモデルに変換することができる。エンティティ・フレームワーク412は、データ・プログラミングで利用される抽象化レベルを上げることができる、プログラミング・アーキテクチャである。さらに、エンティティ・フレームワーク412はEDMアーキテクチャを取り込むことができ、(例えば、マッピング・コンポーネント410を介した)リレーションからEDMへのマッピングを提供することができ、LINQ(language−integrated query)システム(図示せず)を取り込むことができる。
幾つかの特性を一般に、リレーショナル・スキーマをEDMビュー406にマップする文脈においてエンティティ・フレームワーク412と関連付けることができる。第1に、EDMビュー406は、エンティティを通るために人工的な構成概念を必要としないデータ・モデルを提示する。より具体的には、EDMビュー406では、従来のリレーショナル・データベースとは対照的に、データ・ストアのリソースにアクセスするために必要なEDM構造以外の特性が規定されない。第2に、エンティティ・フレームワーク412のコードはデータベース集約的でありうるが、データベース接続オブジェクトは存在せず、外部言語(例えば、問合せを定式化するためのSQL)は必要ではなく、パラメータ・バインディングも必要ではない、等である。従って、エンティティ・フレームワーク412は、データ中心アプリケーションに対して一般に必要とされる余分な対話を排除することができ、所与のアプリケーションまたはサービスに対して適切なデータのビューからデータベース・スキーマ(例えば、従来のリレーショナル・データベース・スキーマ)を分離することで、新しいレベルのデータ独立を導入することもできる。マッピング・コンポーネント410はこのデータ独立を、上で論じたようにリレーショナル・モデルで提示されたデータをEDMモデルに変換できるマッピング仕様によりもたらすことができる。係る変換により、例えば、データ・モデラおよび開発者はリレーショナル・スキーマからよりリッチなEDMスキーマへマップすることができ、続いて実際のデータベース・スキーマとは異なり、かつEDM構造により定義されるデータの形状を提示することができる。
例えば、「カスタマ」エンティティ・セットはエンティティ・タイプ「カスタマ」のインスタンスを含むことができる。例えば、テーブルが、そのテーブルの列および/または行に含まれるエンティティ・タイプ「カスタマ」のインスタンスをもつエンティティを表すことができる。あるいは、係るテーブルを、それぞれが垂直に配置したデータと、元の従来のデータベースにおける列の部分集合であって例えば異なる名前でありうる列とをもつ、2つのテーブルに変換することができる。さらに、「SalesOrders」を定義するEDMスキーマを列として係るテーブルに含めることができる。伝統的には、リレーショナル・データベースにはカスタマのインスタンスに関連する販売注文を指すことができるリレーション・インスタンスはなく、従って係る構成概念は、マッピング・コンポーネント410および/またはエンティティ・フレームワーク412により提供されるような、EDMスキーマを提供できる宣言的マッピング仕様により提供されなければならなかったであろう。
EDMビュー406は、エンティティ・モデル(例えば、上で論じたエンティティ・タイプ、インスタンス、およびセット)、リレーションシップ・モデル(例えば、上で論じたリレーションシップ・タイプ、インスタンス、およびセット)、および/またはアクション・タイプのエンティティのような高度なエンティティ・タイプを利用してデータ・ストア(複数可)408内部のデータに対してEDM構造を規定することができる(例えば、アクションをEDMの項で表現し、EDMスキーマ中のエンティティの名詞に関連付け、データ・ストア内部の実装形態にマップすることができる)。「販売キャンペーンを開始」のような状況は、「カスタマ」エンティティのようなエンティティ・アクションに関係するパラメータを定義し、「カスタマ」エンティティ、「アクション」エンティティ、および幾つかの結果のエンティティ、例えば行使する予算上の制約または「販売キャンペーンを開始」アクションに関係する対象者を相関させることができる。さらに、係るアクションを上述のRESTベースの問合せまたはURIを介して呼び出すことができる)。EDM RESTインタフェース404は、上で論じたLINQ問合せ(例えば、エンティティに対するLINQ)に加えて、データ・ストア(複数可)408とインタフェースするためのURI問合せ418をサポートすることができる。クライアントのプラットフォーム416に返された応答420は一般に、問合せたデータを指定できる表現形式を利用することができる。さらに、エンティティはインターネット上の特定の表現形式により表されるので、URI問合せ420は表現形式問合せ言語を含むこともできる。幾つかの例には、ともにRDFベースの表現問合せ言語であるRQLおよびSPARQLが含まれる。あるいは、エンティティ・フレームワーク412に関する問合せ断片をURI問合せ418内部で利用することができる。例として、エンティティ・タイプ「カスタマ」に関する全てのエンティティ・インスタンスを要求する問合せを、問合せ断片を介してさらにフィルタすることができる。問合せは、「フィルタ「it.State=‘wa’」を適用せよ」を指定するフィルタを適用して、「カスタマ」エンティティ問合せを修正し、関連する「ワシントン」州をもつ、エンティティ・タイプ「カスタマ」の唯一のインスタンスを返すことができることができる。
ビュー・エンジン414は、リッチで概念的なEDMスキーマ(例えば、EDMビュー406)からのデータを解釈し、それをクライアントのプラットフォーム416側で表示できる強力なクライアント側のエンジンである。より具体的には、クライアントのプラットフォーム416はRESTベースのURI問合せ418(または例えば、問合せ情報が要求と応答の対話の内容に取り込まれる他の問合せ形式の)言語を利用して、データ・ストア(複数可)408のEDMビュー406とインタフェースすることができる。RESTベースの問合せによりクライアントは、上で論じたようにRESTアーキテクチャに本来備わるスケーラビリティと均一性のため、インターネットまたは大規模なイントラネットのようなウェブ規模のネットワーク422上でEDMビュー406とインタフェースすることができる。問合せの結果を、基礎となるデータベースがあたかも物理ストアまたは論理ストアではなくリッチなEDMストアであるかのように、クライアントに対して表現することができる。
RESTスタイルのインタフェース(例えば、EDM RESTインタフェース404)は一般に、データ・ストアおよび参照リソースとの対話のための機構を規定するが、問い合わせたデータの形式に関する情報は規定しない。その代わり、応答ではエンティティ表現形式を利用して、クライアントのプラットフォーム416に見える(例えば、ビュー・エンジン414により表示される)ようにデータ構造を規定することができる。表現形式の例には、ATOM、RSS(rich site summary)、RDF(resource description framework)、お.よびJSON(java script object notation)、およびPOX(plain old XML)が含まれる。
POX形式は、準拠すべき特定の仕様をもたない単純でアドホックなデータ形式を指す。係る形式では、エンティティに対する要求の結果、単純なXML文書が応答で生成される。図3に関連して与えた例を再び参照すると、
http://entities.live.com/refx/northwind.refx/Customers/ALFKI (or alternatively http://entities. live. com/refx/northwind.refx/Customers/[ ALFKI])
のようなエンティティ・インスタンス「ALFKI」を指定するURIは、POXエンティティ表現形式を利用する場合は、実質的に
(l.)<Customer>
(2.)<CustomerID>ALFKI</CustomerID>
(3.)<CompanyName> Alfreds Futterkiste</CompanyName>
(4.)<ContactName>Maria Anders</ContactName>
(5.)<City>Berlin</City>
(6.)<Country>Germany</Country>
(7.)<SalesOrders href="Customers/ALFKI/SalesOrders" />
(8.)</Customer>
のように見えるXMLの結果を生成することができる。応答により提供されるデータを表現するために必要なもの以外のスキーマ、名前空間、または他の構造はPOXエンティティ表現形式には含まれない。例えば、2行目から6行目で与えた値は、例えばエンティティ・インスタンス(ALFKI)に関連する企業名(Alfreds Futterkiste)および都市(Berlin)のような、エンティティ・タイプ(例えば、「カスタマ」)に関連する(上述の)プロパティしか含まない。行7で与えた値、SalesOrdersはエンティティ・タイプのプロパティではないが、リレーションシップ(例えば、このカスタマと関連する販売注文との関連を規定するリレーションシップ)を表す(上述の)ナビゲーション・プロパティである。
前の例で示したPOX形式は、システム400のデータ・ストア(複数可)410への要求に対するデフォルトの応答形式であることができる。係るシステム400により期待される形式を、単純に標準的な「Accept」HTTPヘッダを用いることでさらに示すことができる。HTTPヘッダ形式により、エンティティのアドレスまたは識別子を任意の特定の表現から分離することができる。係る分類により、特定の要件に従ってURIをカスタマイズすることができる。さらに、データ表現形式をURI内部で指定できることに留意されたい。responseTypeオプションが「Accept」MIME(multi−purpose internet mail extension)タイプの「text/xml」(「*/*」でもよい)を指定する場合、POX表現形式はデータ表現に対しても使用される。HTTPヘッダがカスタマイズできないか、または不十分である場合、問合せ文字列パラメータの使用をシステム400によりサポートすることができる。
URI問合せ418が、「application/rdf+xml」を指定する「Accept」MIMEタイプに関する場合、応答420はRDF表現形式を利用して、送信されたデータを表現する。RDFは、民間業界の幾つかの部門(例えば、Web2.0およびセマンティック・ウェブに関心がある団体)により好まれている既存の表現プロトコルである。RDFは表現力の高い形式であり、リソース間の関係を上手く扱い、URI要求を介してリレーションシップを公開する(システム400のような)システムに良く適合する。前の例で提示したURI要求
http://entities.live.com/refx/northwind.refx/Customers/ALFKI?responseType= application/rdf+xml

<rdf:RDF xml:base=http://entities. live.com/refx/northwind.rfx
Xmlns :rdf="http ://www. w3.org/ 1999/02/22-rdf-syntax-ns#>
<Customer rdf : about="Customers/ALFKI">
<CustomerID>ALFKI</CustomerID>
(3.)<CompanyName> Alfreds
Futterkiste</CompanyName>
(4.)<ContactName>Maria Anders</ContactName>
(5.)<City>Berlin</City>
(6.)<Country>Germany</Country>
(7.)<SalesOrders
rdf:resource="Customers/ALFKI/SalesOrders"/>
</Customer)
</rdf:RDF>
に実質的に類似するRDF表現形式をクライアントのプラットフォーム416側で提供することができる。係る結果は上述のPOX形式により提供される結果の例と類似しており、コンパクトな符号化を利用するときの妨害を最小限とすることができる。このRDFの例で提示される結果は、「カスタマ」エンティティ・インスタンスも表現する。さらに、この結果は、やはりRDFリソース(例えば、SalesOrder要素のrdf:resouce属性)として表現される問合せ元に関する情報(例えば、ルート要素内の「xml:base」)およびリレーションシップ・インスタンスを含む。RDFプロセッサ(図示せず)は、このカスタマが与えられると、単純に特定のRDFプロパティに対する「base」および「resource」ポインタから新規URIを公開することでその注文を調査することができる。
応答420を介してクライアントのプラットフォーム416に送達されるデータに対する別の表現形式の例はJSON形式である。「Accept」MIMEタイプが「text/javascript」、「text/json」または「application/json」、あるいはそれらの組合せを指定すると、応答データに対するJSON形式が生成されるであろう。JSONはクライアント・エージェント(例えば、クライアント・プラットフォーム416、ウェブ・ブラウザ、等)に、データをオブジェクトとして提示するためのサポートを実質的に即座に与えることができる。ASP.NET Ajax(atlas)のようなツールをJASON形式で構築することができる。
前の例を続けると、URIの例
http://entities.live.com/refx/northwind.refx/Customers/ALFKI?responseType=text/ json
内部で「text/json」の「Accept」MIMEヘッダを利用すると、
{
'_base': 'http://entities. live.com/refx/northwind.refx',
' about': 'Customers/ALFKF,
'CustomerID': 'ALFKI',
'CompanyName': 'Alfreds Futterkiste',
'ContactName': 'Maria Anders ' ,
'City': 'Berlin'
'Country': 'Germany'
'SalesOrders': { '_resource': 'Customers/ALFKI/SalesOrders'}
};
と実質的に類似するデータ形式を提供することができる。本発明の様々な態様に従う、JSON、POX、およびRDF以外の他の表現形式が返されたデータに対する形式を提供できることは理解されよう。
次に図5を参照すると、本発明の特定の態様に従う、ステートレスで均一なインタフェースを介してEDMストアを公開するための方法の例が示されている。参照番号502で、リソース・ストアを少なくとも1つのEDM(entity data model)の項目により定義する。リソース・ストアは、任意の適切な物理記憶装置または仮想記憶装置であることができ、例えば、サーバを含む。EDM項目は例えば、エンティティ・タイプ、エンティティ・インスタンス、エンティティ・セット、またはそれらの組合せであることができる。さらに、EDM項目は、例えばエンティティ・タイプ、インスタンス、またはセットの特性を提供するか、複数のエンティティ・タイプ、インスタンス、またはセットを相互に関連づけるリレーションシップ・タイプ、リレーション・インスタンス、またはリレーション・セットを含むことができる。方法500によると、エンティティ・セットを、特定のエンティティ・インスタンスを含むテーブルと実質的に同様に表すことができる。さらに、エンティティ・セットまたはリレーション・セットを、係るセットまたは係るセットの組合せに関係するエンティティ・コンテナにグループ化することができる。エンティティ・セットをテーブルと実質的に同様に表すことができる一方、エンティティ・コンテナをデータベースと実質的に同様に表すことができる。本明細書で開示したシステムに関連して上述したEDM項目とデータ・ストアの間の相関は、参照番号502での方法500を含めて、同様に本明細書で説明した方法に適用可能であることは理解されよう。
参照番号504で、ステートレスで均一なインタフェースを少なくとも1つのEDM項目にマップする。係るインタフェースはEDM項目および/またはリソース・ストアに関係する情報を公開し、リソース・ストアに関係する問合せおよび応答を移送する。当該インタフェースは係るデータを要求するアプリケーションと独立してデータを転送する。係るインタフェースによりアプリケーションは独立して発展し、リソース・ストア内に含まれるデータを表示するデータ表現形式をサポートすることができる。さらに、当該インタフェースにより、リソース・ストアと他のコンポーネントとの間でのステートレスな対話が可能となる。従って、記憶コンポーネントは他のコンポーネントとの以前のトランザクションに関するデータを保持する必要はないことになる。従って、ステートレスな対話が、インターネットおよび大規模なネットワークを含む広大でウェブスタイルのネットワークが必要とするネットワークのスケーラビリティの提供において重要でありうる。結果として、方法500により、リソース・ストア上で高い表現力の方法でモデル化したデータをインターネットに公開し、スケーラビリティ要件を満たしつつ、アプリケーションの独立性、即ち、係る環境での成功に必要な特性を提供することができる。
次に図6を参照すると、EDM構造を介して表現力の高い方法でモデル化したデータを、インターネット上のデータ・ストアに間い合わせ、そこから受け取るための方法が示されている。参照番号602で、リソース・ストア、および/またはそこに含まれるデータを少なくとも1つのEDM項目により定義する。上述のように、EDM項目は、仮想エンティティまたは実世界エンティティを、係る定義に対する高い表現力の構成概念を用いて明示的に定義し、さらにその定義をリソース・ストアと見なすことができる。EDM項目は、従来のリレーショナル・モデルより高レベルの抽象化によりデータまたはリソース・ストアの記述を可能とする層状構造を生成することができる。604で、少なくとも1つのEDM項目をステートレスで均一なインタフェースにマップする。係るインタフェースにより、問合せと問合せへの応答とをリソース・ストアへ送信およびリソース・ストアから送信することができる。ステートレスで均一な対話により、インターネットのような広大なウェブスタイルのネットワークを優れたエンティティとするスケーラビリティおよびアプリケーション独立が実現される。結果として、リソース・ストアが指定のインタフェースにマップされるとき、インターネットを介して当該リソース・ストアを公開することができる。
参照番号606で、インタフェースを介して問合せをリソース・ストアに移送する。係る問合せは、適切に応答することが必要な全ての情報を含むことができる。問合せを、EDM項目を表すEDMスキーマに従って構成することができる。例えば、問合せは上述のようにEDM構造を表現するURI形式に基づくことができる。さらに、問合せは、EDMでモデル化したリソース・ストアを区別するのに十分なLINQ形式であることができる。さらに、問合せは、RQLまたはSPARQLのような表現形式問合せ言語であることができる。インターネット・ストア上でモデル化されたエンティティを表現形式で記述できるので、係る言語は適切でありうる。
上で規定したEDM問合せにより、リソース・ストアは、当該問合せ自体のみを利用して特定のEDMエンティティまたはリレーションシップの状態に対応するデータを発見することができる。参照番号608で、その中にエンティティ表現形式で表現したデータを含む問合せの結果をインタフェースを介して受け取る。係る表現形式は、1つまたは複数のリソース・ストア内部に含まれるデータを適切に記述することができる。方法600の様々な態様に従う表現形式の例にはJSON、RDFおよびPOXが含まれる。他の形式にATOMおよびRSSを含めることができるが、装置側でEDM構造化データを表すために最も適切な形式であればどのような形式でも方法600の文脈内で適切である。
図7を参照すると、RESTインタフェースを介してEDM構造に従ってモデル化したインターネット上のデータ・ストアで問合せを受け取り、問合せに応答する方法が示されている。702で、問合せを、EDMでモデル化したインターネットのデータベースにおいてRESTインタフェースを介して受け取る。RESTモデルは、大規模なネットワーク環境で効果的と証明されている、幾つかの装置インタフェースの制約を提供する。係る制約の幾つかの例を以下に列挙する。第1に、RESTはステートレスな対話を提供し、それによりネットワーク・コンポーネントは以前のデータ転送動作に関係する情報を保持する必要がなくなる。これにより、コンポーネントのリソースを迅速に消去し、ネットワークのスケーラビリティを拡大することができる。第2に、均一なコンポーネントのインタフェースにより、ハイパーメディア・データ(例えば、ストリーミング・ビデオ、オーディオ、ボイス・オーバ・インターネット・プロトコルIP、等)の粒度の大きな転送が実現される。第3に、クライアント側およびサーバ側のキャッシュにより、反復的な要求から生ずるリソース要求の軽減を支援することができる。第4に、システムの複雑性に上限を設け、コンポーネント間の独立を促進する、層状コンポーネント・アーキテクチャである。
RESTモデルは、インターネットのような大規模なネットワーク環境におけるデータベースとの対話に対しては非常に良好であったが、従来は、表現力が高く、モデル化されたデータを単純かつ均一な方法でインターネットに公開するためのエンド・ツー・エンドのフレームワークは存在していなかった。RESTインタフェースをEDMモデリングのアプローチと対にすることで、係るフレームワークを提供することができる。参照番号702で明記するように、インターネット・データベースに対する問合せではEDMアーキテクチャに関連する単純な形式を利用することができ、その形式には、例えば、本明細書で説明したようにEDM構造にマップされ、エンティティ・タイプ、インスタンス、および/またはセット、プロパティ、等を規定するURI、LINQ問合せ言語、あるいは上で規定したデータ表現形式問合せ言語が含まれる。係る問合せは一般に、エンティティ・インスタンス、セット、コンテナ、タイプ、または同様なEDM構成概念により表されるリソース・ストアを指すことに留意されたい。データを係るストアに含めないことも可能であるが、係る問合せは依然として有効であり、係るリソース・ストア中にデータがないことを示す応答をなお送信することができる。
704で、1つまたは複数のリレーショナル・データベース・ストアに記憶された問合せに関係するデータを表現形式に従ってフォーマットすることができる。一般に、RESTアーキテクチャはデータ自体をどのようにフォーマットすべきかについては規定しない。例えばJSON、RDF、およびPOXを含む独立な形式により、係るデータを規定することができる。706で、フォーマットされたデータを含む応答を、RESTインタフェースを介して送信する。
次に図8を参照すると、リレーショナル・データベースと対話し、そこに記憶したリレーショナル・データをよりリッチなEDM形式にクライアント装置側で変換する方法800が示されている。802で、問合せを(上述の)RESTインタフェースを介してインターネットのリレーショナル・データベースに送信する。問合せは、リレーショナル・データベースにアクセスするための当分野で公知な任意の標準的な形式であることができる。さらに、問合せは、本明細書で説明したエンティティ・フレームワーク・アーキテクチャ内部で利用される、LINQ問合せ、リレーショナル・データベース構造にマップしたURI、等のような形式であることもできる。804で、データを含む問合せの結果をリレーショナル構造で受け取る。806で、データをよりリッチなEDM形式にクライアント装置側で構造化し、場合によってはクライアント装置上にそのように表示することができる。係る変換を、クライアント側の、宣言的マッピング仕様を利用する(例えば、上で論じたエンティティ・フレームワークに関連する)ビュー・エンジンにより実行することができる。方法800に従う宣言的マッピング仕様により、データを、リレーショナル・データベース構造により指定されるものとは異なる形で提示することができる。より具体的には、ウェブ開発者およびデータ・モデラはデータをよりリッチなEDM構造でクライアント・コンポーネント側に提示することができる。
次に図9を参照すると、開示したアーキテクチャを実行するように動作できる例示的なコンピュータ・システムのブロック図が示されている。本発明の様々な態様に対して追加の文脈を与えるため、図9およびそれに続く議論では、本発明の様々な態様を実装できる適切なコンピューティング環境900の簡潔で一般的な説明を与えることを意図している。さらに、本発明を1つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的な文脈で上述したが、本発明を他のプログラム・モジュールならびに/またはハードウェアおよびソフトウェアの組合せとして実装することもできることは、当業者には理解されよう。
一般に、プログラム・モジュールには、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、等が含まれる。さらに、本発明を、単一プロセッサまたはマルチプロセッサのコンピュータ・システム、ミニコンピュータ、メインフレーム・コンピュータだけでなく、パーソナル・コンピュータ、ハンドヘルド・コンピューティング装置、マイクロプロセッサベースまたはプログラム可能な消費家電、等を含む他のコンピュータ・システム構成で実施でき、それらの各々を1つまたは複数の関連装置に動作可能に結合できることは当業者には理解されよう。
例示した本発明の態様を、或る種のタスクが通信ネットワークを通して接続されたリモート処理装置により実行される、分散コンピューティング環境で実施してもよい。分散コンピューティング環境では、プログラム・モジュールをローカル・メモリ記憶およびリモート・メモリ記憶の両方に配置することができる。
コンピュータは一般に様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータがアクセスできる任意の使用可能な媒体であることができ、揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方を含むことができる。限定ではなく例として、コンピュータ読取可能媒体はコンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラム・モジュールまたは他のデータのような情報を記憶するための任意の方法または技術で実装した揮発性および不揮発性媒体、取外し可能および取外し不能媒体の両方を含むことができる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュ・メモリまたは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピュータによりアクセスできる他の任意の媒体が含まれるが、これらに限定されない。
通信媒体は一般にコンピュータ読取可能命令、データ構造、プログラム・モジュールまたは他のデータを搬送波または他の伝送方式で具現化し、任意の情報送達媒体を含む。「変調データ信号」という用語は、その1つまたは複数の特性集合を有するか信号内の情報をエンコードするよう変化した信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続のような有線媒体、ならびに音響、RF、赤外線および他の無線媒体のような無線媒体が含まれる。上の何れかの組合せもコンピュータ読取可能媒体の範囲に含まれるべきである。
図9を再度参照すると、本発明の様々な態様を実装するための例示的な環境900はコンピュータ902を含み、コンピュータ902は処理装置904、システム・メモリ906およびシステム・バス908を含む。システム・バス908はシステム・コンポーネントを処理装置904に結合させる。当該システム・コンポーネントにはシステム・メモリ906が含まれるがこれに限らない。処理装置904は様々な商用的に使用可能なプロセッサの何れかであることができる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャを処理装置904として使用してもよい。
システム・バス908は、(メモリ・コントローラを伴うかまたは伴わない)メモリ・バス、周辺バス、および様々な商用的に使用可能なバス・アーキテクチャの何れかを用いたローカル・バスにさらに相互接続できる数種のバス構造の何れかであることができる。システム・メモリ906は、ROM(read only memory)910およびRAM(random access memory)912を含むことができる。BIOS(basic input/output system)はROM、EPROM、EEPROMのような不揮発性メモリ910に記憶される。BIOSは、例えば起動中に、コンピュータ902内部の要素間での情報の伝送を支援する基本ルーチンを含む。RAM912はデータをキャッシュするためのスタティックRAMのような高速RAMを含むこともできる。
コンピュータ902はさらに、内部HDD(hard disk drive)914(例えば、EIDE、SATA)、(例えば、取外し可能ディスク918を読み書きするための)磁気FDD(floppy disk drive)916、(例えば、CD−ROMディスク922を読むか、DVDのような他の大容量光媒体を読み書きするための)光ディスク・ドライブ920を含む。内部HDD914を、適切なシャーシ(図示せず)内で外付け使用するために構成してもよい。ハード・ディスク・ドライブ914、磁気ディスク・ドライブ916および光ディスク・ドライブ920を、それぞれハード・ディスク・ドライブ・インタフェース924、磁気ディスク・ドライブ・インタフェース926および光ドライブ・インタフェース928によりシステム・バス908に接続することができる。外付けドライブの実装形態のためのインタフェース924は、USB(Universal Serial Bus)およびIEEE1394インタフェース技術のうち少なくとも1つまたはその両方を含む。他の外付けドライブ接続技術も本発明では考慮している。
ドライブおよびその関連コンピュータ読取可能媒体は、データ、データ構造、コンピュータ実行可能命令、等の不揮発性記憶を提供する。コンピュータ902の場合、当該ドライブおよび媒体は適切なデジタル形式での任意のデータの記憶に対応する。上のコンピュータ読取可能媒体の説明ではHDD、取外し可能磁気ディスク、CDまたはDVDのような取外し可能光媒体に言及したが、ジップ・ドライブ、磁気カセット、フラッシュ・メモリ・カード、カートリッジ、等のような、コンピュータにより読取可能な他種の媒体を例示的な動作環境で使用してもよく、さらに、係る媒体は本発明の方法を実施するためのコンピュータ実行可能命令を含むことができることは当業者には理解されよう。
オペレーティング・システム930、1つまたは複数のアプリケーション・プログラム932、他のプログラム・モジュール934およびプログラム・データ936を含む、幾つかのプログラム・モジュールをドライブおよびRAM912に記憶することができる。オペレーティング・システム、アプリケーション、モジュール、および/またはデータの全てまたは一部をRAM912にキャッシュすることもできる。本発明を様々な商用的に使用可能なオペレーティング・システムまたはオペレーティング・システムの組合せで実装できることは理解されよう。
ユーザは1つまたは複数の有線または無線の入力装置、例えば、キーボード938およびマウス940のようなポインティング・デバイスを通してコンピュータ902にコマンドおよび情報を入力することができる。他の入力装置(図示せず)としてマイクロフォン、IRリモート・コントロール、ジョイスティック、ゲーム・パッド、スタイラス・ペン、タッチ・スクリーン、等を含めることができる。これらおよび他の入力装置は、システム・バス908に接続される入力装置インタフェース942を通して処理装置904に接続されることがよくあるが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、IRインタフェース、等のような他のインタフェースにより接続することができる。
モニタ944または他種の表示装置も、ビデオ・アダプタ946のようなインタフェースを介してシステム・バス908に接続される。モニタ944に加えて、コンピュータは一般にスピーカ、プリンタ、等のような他の周辺出力装置(図示せず)を含む。
コンピュータ902は、リモート・コンピュータ(複数可)948のような1つまたは複数のリモート・コンピュータへの有線および/または無線通信を介した論理接続を用いてネットワーク環境で動作することができる。リモート・コンピュータ(複数可)948はワークステーション、サーバ・コンピュータ、ルータ、パーソナル・コンピュータ、ポータブル・コンピュータ、マイクロプロセッサベースの娯楽機器、ピア・デバイスまたは他の一般的なネットワーク・ノードであることができ、一般にコンピュータ902に関して説明した要素の多くまたは全てを含むが、簡潔さのため、メモリまたは記憶装置950のみを示してある。図示した論理接続はLAN(local area network)952および/またはそれより大きいネットワーク、例えば、WAN(wide area network)954への有線または無線接続を含む。係るLANおよびWANネットワーク環境は職場および企業で一般的であり、イントラネットのような企業規模のコンピュータ・ネットワークを円滑にする。これらの全てを、グローバル通信ネットワーク、例えばインターネットに接続することができる。
LANネットワーク環境で使用するとき、コンピュータ902は有線および/または無線通信ネットワーク・インタフェースまたはアダプタ956を通してローカル・ネットワーク952に接続される。アダプタ956はLAN952への有線または無線通信を容易にすることができ、無線アダプタ956と通信するためのそれ自体に配置した無線アクセス・ポイントを含むこともできる。
WANネットワーク環境で使用するとき、コンピュータ902はモデム958を含むことができ、またはWAN954上の通信サーバに接続され、または例えばインターネットによってWAN954上で通信を確立するための他の手段を有する。モデム958は、内部または外部にあることができ、かつ有線または無線装置であることができ、シリアル・ポート・インタフェース942を介してシステム・バス908に接続される。ネットワーク環境では、コンピュータ902に対して図示したプログラム・モジュール、またはその一部をリモートのメモリまたは記憶装置950に記憶することができる。図示したネットワーク接続は例であってコンピュータ間の通信リンクを確立する他の手段を使用できることは理解されよう。
コンピュータ902は無線接続において動作可能に配置した任意の無線装置またはエンティティ、例えば、プリンタ、スキャナ、デスクトップおよび/またはポータブルなコンピュータ、ポータブル・データ・アシスタント、通信衛星、無線検出可能なタグに関連する任意の装置または位置(例えば、キオスク、新聞販売店、化粧室)、および電話と通信するよう動作可能である。これは少なくともWi−FiおよびBluetooth「商標」の無線技術を含む。従って、通信は、従来のネットワークまたは単純に少なくとも2つの装置間のアドホック通信を伴う所定の構造であることができる。
Wi−Fiすなわちワイヤレス・フィデリティにより、家のソファ、ホテルの部屋のベッド、または職場の会議室から、配線なしにインターネットに接続することができる。Wi−Fiは、例えばコンピュータのような装置が基地局の範囲内でればどこでも部屋の内外でデータを送受信できるようにする携帯電話で使用されるものと同様な無線技術である。Wi−Fiネットワークは、安全で信頼度が高く、高速な無線接続を提供するためのIEEE802.11(a,b,g、等)と呼ばれる無線技術を使用する。Wi−Fiネットワークを使用してコンピュータを互いのコンピュータと、インターネットと、および(IEEE802.3またはイーサネット(登録商標)を使用する)有線ネットワークと接続することができる。Wi−Fiネットワークは、例えば、無許可の2.4および5GHz無線帯域において、11Mbps(802.11a)もしくは54Mbps(802.11b)データ速度で、または両方の帯域(デュアル・バンド)を含む製品とともに動作し、従ってネットワークは多くの職場で使用される基本的な9BaseTの有線イーサネット(登録商標)・ネットワークと同様な実世界の性能を提供することができる。
次に図10を参照すると、開示したアーキテクチャを実行するように動作する例示的なコンピュータ集合システムの略ブロック図が示されている。システム1000は1つまたは複数のクライアント(複数可)1002を含む。クライアント(複数可)1002はハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。クライアント(複数可)1002は、例えば、本発明を使用することでクッキー(複数可)および/または関連するコンテクスト情報を収容することができる。
システム1000は1つまたは複数のサーバ(複数可)1004も含む。サーバ(複数可)1004はハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。サーバ1004は、例えば、本発明を使用することで、変換を実施するためのスレッドを収容することができる。クライアント1002およびサーバ1004の間の1つの可能な通信形態は、複数のコンピュータ・プロセス間で送信されるよう適応させたデータ・パケットである。当該データ・パケットは例えばクッキーおよび/または関連するコンテクスト情報を含むことができる。システム1000は、クライアント(複数可)1002およびサーバ(複数可)1004の間での通信を容易にするために使用できる通信フレームワーク1006(例えば、インターネットのようなグローバル通信ネットワーク)を含む。
通信を有線(光ファイバを含む)および/または無線技術を介して円滑にすることができる。クライアント(複数可)1002は、クライアント(複数可)1002にローカルな情報(例えば、クッキー(複数可)および/または関連するコンテクスト情報)の記憶に使用できる1つまたは複数のクライアント・データ・ストア(複数可)1008に動作可能に接続される。同様に、サーバ(複数可)1004は、サーバ(複数可)1004にローカルな情報の記憶に使用できる1つまたは複数のサーバ・データ・ストア(複数可)1010と動作可能に接続される。
以上で説明したことには様々な実施形態の例が含まれる。もちろん、実施形態を説明する目的で構成要素または方法の考えられる組合せの全てを説明することは不可能であるが、多くのさらなる組合せおよび並びが可能であることは当業者には理解されよう。従って、詳細な説明では、添付の特許請求の範囲の趣旨および範囲内にある全ての係る変更、修正、および変更を含むことを意図している。
特に、上述のコンポーネント、装置、回路、システム、等により実行される様々な機能に関して、係る構成要素を説明するために使用した用語(「手段」への参照を含む)は、特に明記しない限り、説明した構成要素の特定の機能を実行する任意の構成要素(例えば、機能的な相当物)に対応し、開示した構造と構造的に均等でなくとも、本明細書で説明した実施形態の例示的な態様における機能を実行することを意図している。この点で、実施形態はシステムだけでなく、様々な方法の動作および/またはイベントを実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体も含むことは理解されよう。
さらに、特定の特徴を幾つかの実装形態のうちの1つのみに関して開示したが、係る特徴を、任意の所与または特定の適用に対して望ましく有利でありうる他の実装形態の1つまたは複数の他の特徴と組み合わせてもよい。さらに、発明を実施するための形態または特許請求の範囲において用語「含む」およびその変形を使用する限りでは、これらの用語は用語「備える」と同様に包括的であることを意図している。

Claims (20)

  1. EDM(entity data model)ストアへのアクセスを容易にするシステム(100)であって、
    EDM(entity data model)ストア(104)と、
    前記EDMストアに関係する要求および結果を移送するステートレスで均一なインタフェースと、
    を備えるシステム。
  2. 前記EDMストアは1つまたは複数の論理記憶コンポーネント、または物理記憶コンポーネント、またはその両方にマップしたEDMスキーマにより記述される、請求項1に記載のシステム。
  3. 前記EDMストアに関係する前記要求および結果はさらに、前記EDMストアに関係するか、または前記EDMストアに含まれるか、またはその両方である情報を公開するために、前記EDMストアでの識別、アクセス、更新、または検索の相互作用、またはそれらの組合せのうち少なくとも1つを備える、請求項1に記載のシステム。
  4. 前記EDMスキーマはさらに、エンティティ・タイプ、エンティティ・インスタンス、もしくはエンティティ・セット、またはリレーションシップ・タイプ、リレーションシップ・インスタンス、もしくはリレーションシップ・セット、またはアクション・タイプ、アクション・インスタンス、もしくはアクション・セット、またはそれらの組合せのうち少なくとも1つから成る定式化を備える、請求項2に記載のシステム。
  5. 前記EDMスキーマはさらに、リレーションシップ・タイプ、リレーションシップ・インスタンス、もしくはリレーションシップ・セット、またはその組合せのうち少なくとも1つから成る定式化を備えて、エンティティ・タイプ、エンティティ・インスタンス、もしくはエンティティ・セット、またはその組合せのうち少なくとも1つに対する実世界のコンテクストを提供する、請求項4に記載のシステム。
  6. 前記ステートレスで均一なインタフェースはREST(representational state transfer)インタフェースである、請求項1に記載のシステム。
  7. 前記識別、アクセス、更新、または検索の相互作用はさらに、前記EDMスキーマに従うURI(uniform resource indicator)を備える、請求項1に記載のシステム。
  8. EDM構成概念の意味を保存する前記ステートレスで均一なインタフェースを通して公開される少なくとも1つのEDMエンティティ表現形式をさらに備える、請求項1に記載のシステム。
  9. EDM構成概念の意味にはリレーションシップと継承が含まれる、請求項8に記載のシステム。
  10. EDMストアに関係する情報を提供する方法(500)であって、
    少なくとも1つのEDM項目により特徴付けられるリソース・ストアを明示的に定義するステップ(502)と、
    少なくとも1つのEDM項目を、前記リソース・ストアに関係する要求および結果を移送するためのステートレスで均一なインタフェースにマップするステップ(504)と、
    を備える方法。
  11. 前記EDM項目はさらに、EDMエンティティ、EDMリレーションシップ、またはEDMエンティティとEDMリレーションシップの組合せを備える、請求項10に記載の方法。
  12. 前記均一でステートレスなインタフェースを通して前記リソース・ストアを問い合わせるステップをさらに備える請求項10に記載の方法。
  13. 問合せ結果をEDMエンティティの表現形式で受け取るステップをさらに備える請求項10に記載の方法。
  14. 前記EDMエンティティを、前記EDMリレーションシップによって少なくとも1つの追加のEDMエンティティに関係付けるステップをさらに備える請求項13に記載の方法。
  15. 前記少なくとも1つの追加のEDMエンティティに関係する前記EDMエンティティの少なくともアソシエーション、または継承、またはその両方を、前記EDMリレーションシップにより、前記1つまたは複数のEDM表現形式を介して保存するステップをさらに備える請求項14に記載の方法。
  16. 前記EDMエンティティ表現形式は、POX(plain old XML)、RDF(resource description framework)、RSS(rich site summary)、またはJSON(java script object notation)、またはそれらの組合せのうちの1つである、請求項13に記載の方法。
  17. ステートレスで均一なインタフェースを通してEDMストアに対するアクセスを提供するシステム(100)であって、
    EDMスキーマをデータ・ストア(104)にマップするデータを特徴付けるための手段と、
    前記EDMスキーマにステートレスで均一なURIインタフェース(102)を重ねるデータ・ストアにインタフェースをマップするための手段と、
    を備えるシステム。
  18. 前記ステートレスで均一なURIインタフェースはREST URIインタフェースである、請求項17に記載のシステム。
  19. 前記EDMスキーマに従って前記データ・ストアを問い合わせる問合せ手段をさらに備える請求項17に記載のシステム。
  20. 前記問合せ手段からの問合せにEDMデータ表現形式で指定したデータで応答する表現手段をさらに備える請求項19に記載のシステム。
JP2009550165A 2007-02-16 2008-02-18 エンティティ向けrest Pending JP2010519624A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/675,944 US20080201338A1 (en) 2007-02-16 2007-02-16 Rest for entities
PCT/US2008/054223 WO2008101236A1 (en) 2007-02-16 2008-02-18 Rest for entities

Publications (1)

Publication Number Publication Date
JP2010519624A true JP2010519624A (ja) 2010-06-03

Family

ID=39690557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009550165A Pending JP2010519624A (ja) 2007-02-16 2008-02-18 エンティティ向けrest

Country Status (5)

Country Link
US (1) US20080201338A1 (ja)
EP (1) EP2122511A4 (ja)
JP (1) JP2010519624A (ja)
CN (1) CN101611407A (ja)
WO (1) WO2008101236A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677270B2 (en) 2007-05-04 2014-03-18 Microsoft Corporation Live companion user interface
US20080281863A1 (en) * 2007-05-10 2008-11-13 Hewlett-Packard Development Company, L.P. Repository system and method
US8954507B2 (en) * 2007-06-22 2015-02-10 Microsoft Corporation Gathering and using awareness information
KR20090012467A (ko) * 2007-07-30 2009-02-04 한국과학기술정보연구원 Uri 데이터베이스를 이용한 통합 검색 시스템 및 방법
US9268849B2 (en) * 2007-09-07 2016-02-23 Alexander Siedlecki Apparatus and methods for web marketing tools for digital archives—web portal advertising arts
US20090112870A1 (en) * 2007-10-31 2009-04-30 Microsoft Corporation Management of distributed storage
US9122422B2 (en) * 2008-01-17 2015-09-01 International Business Machines Corporation Representing models in systems development lifecycle (SDLC) tools using a network of internet resources
US8793398B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8793339B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8438295B2 (en) 2008-10-14 2013-05-07 Microsoft Corporation Declarative programming model for modeling and execution of triggers for resource oriented system
US8490052B2 (en) * 2008-10-14 2013-07-16 Microsoft Corporation Declarative programming model for authoring and execution control and data flow for resource oriented system
US8533666B2 (en) * 2008-10-17 2013-09-10 Microsoft Corporation Interactive design environments to visually model, debug and execute resource oriented programs
US8255410B2 (en) * 2008-12-09 2012-08-28 Microsoft Corporation Translating queries to representational state transfer (REST)
US20110055134A1 (en) * 2009-08-25 2011-03-03 Martin Dvorak Dynamic resource-based web service evaluation
US8812962B2 (en) 2009-11-12 2014-08-19 Microsoft Corporation Web service interface and querying
US9785987B2 (en) 2010-04-22 2017-10-10 Microsoft Technology Licensing, Llc User interface for information presentation system
US20110282861A1 (en) * 2010-05-11 2011-11-17 Microsoft Corporation Extracting higher-order knowledge from structured data
US8825745B2 (en) 2010-07-11 2014-09-02 Microsoft Corporation URL-facilitated access to spreadsheet elements
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
US9275165B2 (en) 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
EP2616955A2 (en) * 2010-09-17 2013-07-24 Oracle International Corporation Method and apparatus for polymorphic serialization
US9741060B2 (en) 2010-09-17 2017-08-22 Oracle International Corporation Recursive navigation in mobile CRM
US9477730B2 (en) * 2010-10-28 2016-10-25 Microsoft Technology Licensing, Llc Web services runtime for dataset transformation
US10417263B2 (en) * 2011-06-03 2019-09-17 Robert Mack Method and apparatus for implementing a set of integrated data systems
US9183265B2 (en) * 2012-06-12 2015-11-10 International Business Machines Corporation Database query language gateway
US9525754B1 (en) * 2012-09-28 2016-12-20 EMC IP Holding Company LLC Task-based approach to execution, monitoring and execution control of actions
US9292278B2 (en) * 2013-02-22 2016-03-22 Telefonaktiebolaget Ericsson Lm (Publ) Providing high availability for state-aware applications
US9244656B2 (en) * 2013-03-26 2016-01-26 Sap Se Integrated development environment for heterogeneous client/server environments
US9235609B1 (en) * 2013-10-15 2016-01-12 Amazon Technologies, Inc. Local emulation of distributed key-value data store
US9330271B1 (en) 2013-10-15 2016-05-03 Amazon Technologies, Inc. Fine-grained access control for synchronized data stores
US9703814B1 (en) 2013-10-15 2017-07-11 Amazon Technologies, Inc. Local key-value database synchronization
US10489355B1 (en) * 2013-11-20 2019-11-26 Progress Software Corporation Schema tool for non-relational databases
US9959363B2 (en) * 2014-06-26 2018-05-01 International Business Machines Corporation Self-documentation for representational state transfer (REST) application programming interface (API)
US10216855B2 (en) 2014-06-26 2019-02-26 International Business Machines Corporation Mobilizing an existing web application
GB2530499A (en) * 2014-09-23 2016-03-30 Ibm Rest resource collection management
US10325002B2 (en) * 2014-09-29 2019-06-18 Sap Se Web service framework
CN104320396B (zh) * 2014-10-28 2018-06-19 用友优普信息技术有限公司 数据交互装置和方法
US10019238B2 (en) * 2015-06-23 2018-07-10 Open Text Sa Ulc Compositional entity modeling systems and methods
US10511687B2 (en) 2015-09-14 2019-12-17 Sap Se Systems and methods for mobile device predictive response capabilities
US20170322716A1 (en) 2016-05-04 2017-11-09 Open Text Sa Ulc Reusable entity modeling systems and methods
US10628134B2 (en) * 2016-09-16 2020-04-21 Oracle International Corporation Generic-flat structure rest API editor
US10839011B2 (en) * 2018-04-18 2020-11-17 International Business Machines Corporation Application programing interface document generator
CN111858953B (zh) * 2020-06-08 2022-10-18 北京邮电大学 用于智慧城市少样本数据建模的实体关系表示方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244498A (ja) * 2005-02-28 2006-09-14 Microsoft Corp オブジェクトリレーショナルデータ用のデータモデル

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5576954A (en) * 1993-11-05 1996-11-19 University Of Central Florida Process for determination of text relevancy
GB9603582D0 (en) * 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US5845271A (en) * 1996-01-26 1998-12-01 Thaler; Stephen L. Non-algorithmically implemented artificial neural networks and components thereof
US6460043B1 (en) * 1998-02-04 2002-10-01 Microsoft Corporation Method and apparatus for operating on data with a conceptual data manipulation language
GB2334601B (en) * 1998-02-20 2002-12-11 Ibm Database data model extension
US6012067A (en) * 1998-03-02 2000-01-04 Sarkar; Shyam Sundar Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web
US7117227B2 (en) * 1998-03-27 2006-10-03 Call Charles G Methods and apparatus for using the internet domain name system to disseminate product information
US7461334B1 (en) * 1999-03-19 2008-12-02 Network Solutions, Llc Apparatus and method for web forwarding
US6701485B1 (en) * 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
WO2001052118A2 (en) * 2000-01-14 2001-07-19 Saba Software, Inc. Information server
US7080078B1 (en) * 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
WO2002001416A2 (en) * 2000-06-23 2002-01-03 The Johns Hopkins University Architecture for distributed database information access
AU2001290646A1 (en) * 2000-09-08 2002-03-22 The Regents Of The University Of California Data source integration system and method
US6938079B1 (en) * 2000-09-19 2005-08-30 3Com Corporation System and method for automatically configuring a client device
US6957230B2 (en) * 2000-11-30 2005-10-18 Microsoft Corporation Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values
US6986047B2 (en) * 2001-05-10 2006-01-10 International Business Machines Corporation Method and apparatus for serving content from a semi-trusted server
EP1405244A2 (en) * 2001-07-06 2004-04-07 Angoss Software Corporation A method and system for the visual presentation of data mining models
US20030055921A1 (en) * 2001-08-21 2003-03-20 Kulkarni Vinay Vasant Method and apparatus for reengineering legacy systems for seamless interaction with distributed component systems
US7526425B2 (en) * 2001-08-14 2009-04-28 Evri Inc. Method and system for extending keyword searching to syntactically and semantically annotated data
US7290008B2 (en) * 2002-03-05 2007-10-30 Exigen Group Method to extend a uniform resource identifier to encode resource identifiers
US7275087B2 (en) * 2002-06-19 2007-09-25 Microsoft Corporation System and method providing API interface between XML and SQL while interacting with a managed object environment
US7346598B2 (en) * 2002-06-28 2008-03-18 Microsoft Corporation Schemaless dataflow within an XML storage solution
US7039704B2 (en) * 2003-01-24 2006-05-02 The Cobalt Group, Inc. Business platform with networked, association-based business entity access management and active content website configuration
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
US7689483B2 (en) * 2003-05-20 2010-03-30 Amegy Bank of Texas System to facilitate payments for a customer through a foreign bank, software, business methods, and other related methods
ATE391385T1 (de) * 2003-07-11 2008-04-15 Ibm Verfahren und system zur benutzerauthentifizierung in einer benutzer- anbieterumgebung
US7478100B2 (en) * 2003-09-05 2009-01-13 Oracle International Corporation Method and mechanism for efficient storage and query of XML documents based on paths
US20050060315A1 (en) * 2003-09-16 2005-03-17 Aleksey Sanin Metadata database lookup system
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
US8615487B2 (en) * 2004-01-23 2013-12-24 Garrison Gomez System and method to store and retrieve identifier associated information content
US7403491B2 (en) * 2004-04-15 2008-07-22 Alcatel Lucent Framework for template-based retrieval of information from managed entities in a communication network
US7548615B2 (en) * 2004-04-28 2009-06-16 American Express Travel Related Services Company, Inc. Rate validation system and method
US7702725B2 (en) * 2004-07-02 2010-04-20 Hewlett-Packard Development Company, L.P. Digital object repositories, models, protocol, apparatus, methods and software and data structures, relating thereto
US7434252B2 (en) * 2004-07-14 2008-10-07 Microsoft Corporation Role-based authorization of network services using diversified security tokens
US7502760B1 (en) * 2004-07-19 2009-03-10 Amazon Technologies, Inc. Providing payments automatically in accordance with predefined instructions
US7991804B2 (en) * 2004-07-30 2011-08-02 Microsoft Corporation Method, system, and apparatus for exposing workbooks as data sources
US7668806B2 (en) * 2004-08-05 2010-02-23 Oracle International Corporation Processing queries against one or more markup language sources
US20060069995A1 (en) * 2004-09-30 2006-03-30 British Telecommunications Public Limited Company Personalised process automation
US7395552B2 (en) * 2004-10-22 2008-07-01 Sugarcrm, Inc. Team based row level security system and method
US7689555B2 (en) * 2005-01-14 2010-03-30 International Business Machines Corporation Context insensitive model entity searching
WO2007080558A2 (en) * 2006-01-16 2007-07-19 Zlango Ltd. Communications network system and methods for using same
US7853961B2 (en) * 2005-02-28 2010-12-14 Microsoft Corporation Platform for data services across disparate application frameworks
US20060224628A1 (en) * 2005-03-29 2006-10-05 Bea Systems, Inc. Modeling for data services
US7580949B2 (en) * 2005-04-14 2009-08-25 International Business Machines Corporation Query conditions on related model entities
US7913081B2 (en) * 2005-06-09 2011-03-22 Red Hat, Inc. Dynamic certification of components
US20060282886A1 (en) * 2005-06-09 2006-12-14 Lockheed Martin Corporation Service oriented security device management network
US20060294042A1 (en) * 2005-06-23 2006-12-28 Microsoft Corporation Disparate data store services catalogued for unified access
US8370317B2 (en) * 2005-09-22 2013-02-05 Microsoft Corporation Synchronizing shared resources in a collection
US20070106629A1 (en) * 2005-10-17 2007-05-10 Steve Endacott System and method for accessing data
US20070100872A1 (en) * 2005-11-03 2007-05-03 Bodin William K Dynamic creation of user interfaces for data management and data rendering
US7788499B2 (en) * 2005-12-19 2010-08-31 Microsoft Corporation Security tokens including displayable claims
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8032397B2 (en) * 2006-01-19 2011-10-04 Oliver Charles Lawless Integrated prescription management and compliance system
US7668838B2 (en) * 2006-03-28 2010-02-23 Yahoo! Inc. Providing event information to third party event applications
US20070239726A1 (en) * 2006-03-29 2007-10-11 Mathew Girard Weiss Systems and methods of transforming data for web communities and web applications
US8200537B2 (en) * 2006-03-31 2012-06-12 Digital River, Inc. Integrated retailer process
US7694131B2 (en) * 2006-09-29 2010-04-06 Microsoft Corporation Using rich pointers to reference tokens
US8001588B2 (en) * 2006-12-12 2011-08-16 Oracle International Corporation Secure single sign-on authentication between WSRP consumers and producers
US20080168273A1 (en) * 2007-01-05 2008-07-10 Chung Hyen V Configuration mechanism for flexible messaging security protocols
US8407767B2 (en) * 2007-01-18 2013-03-26 Microsoft Corporation Provisioning of digital identity representations
US9088518B2 (en) * 2007-01-25 2015-07-21 Hewlett-Packard Development Company, L.P. Web services and telecom network management unification
US20080201234A1 (en) * 2007-02-16 2008-08-21 Microsoft Corporation Live entities internet store service
ATE429119T1 (de) * 2007-05-18 2009-05-15 Sap Ag Verfahren und system zum schutz einer nachricht vor einem xml-angriff beim austausch in einem verteilten und dezentralisierten netzwerksystem
US8528058B2 (en) * 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
US20090210400A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Translating Identifier in Request into Data Structure
EP3484135A1 (en) * 2008-04-02 2019-05-15 Twilio Inc. System and method for processing telephony sessions
US8479006B2 (en) * 2008-06-20 2013-07-02 Microsoft Corporation Digitally signing documents using identity context information
US9736153B2 (en) * 2008-06-27 2017-08-15 Microsoft Technology Licensing, Llc Techniques to perform federated authentication
US8910256B2 (en) * 2008-08-08 2014-12-09 Microsoft Corporation Form filling with digital identities, and automatic password generation
US8347356B2 (en) * 2009-03-31 2013-01-01 Microsoft Corporation Adaptive HTTP authentication scheme selection
US8078870B2 (en) * 2009-05-14 2011-12-13 Microsoft Corporation HTTP-based authentication
US8825745B2 (en) * 2010-07-11 2014-09-02 Microsoft Corporation URL-facilitated access to spreadsheet elements

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244498A (ja) * 2005-02-28 2006-09-14 Microsoft Corp オブジェクトリレーショナルデータ用のデータモデル

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200601149006; 山本 陽平: 'RESTアーキテクチャスタイル入門 HTTPとURIの正しい使い方' WEB+DB PRESS 第32巻, 20060525, p.101〜107, (株)技術評論社 *
JPN6012033719; 山本 陽平: 'RESTアーキテクチャスタイル入門 HTTPとURIの正しい使い方' WEB+DB PRESS 第32巻, 20060525, p.101〜107, (株)技術評論社 *

Also Published As

Publication number Publication date
WO2008101236A1 (en) 2008-08-21
US20080201338A1 (en) 2008-08-21
CN101611407A (zh) 2009-12-23
EP2122511A1 (en) 2009-11-25
EP2122511A4 (en) 2012-06-27

Similar Documents

Publication Publication Date Title
JP2010519624A (ja) エンティティ向けrest
US20080201234A1 (en) Live entities internet store service
US11238096B2 (en) Linked data processor for database storage
US10331740B2 (en) Systems and methods for operating a server-side data abstraction layer
US8484174B2 (en) Computing environment representation
US7877682B2 (en) Modular distributed mobile data applications
US7487191B2 (en) Method and system for model-based replication of data
US7827565B2 (en) Integration architecture for non-integrated tools
US7685561B2 (en) Storage API for a common data platform
US20170262549A1 (en) Representation/invocation of actions/functions in a hypermedia-driven environment
JP2006114045A (ja) スキーマデータ(schemadata)からデータ構造へのマッピング
US20090319494A1 (en) Field mapping for data stream output
KR101643436B1 (ko) 웹 기반 도표 시각화를 위한 확장성
US11354332B2 (en) Enabling data access by external cloud-based analytics system
US20170011128A1 (en) Dynamic domain query and query translation
US10509789B2 (en) Providing data experience(s) via disparate semantic annotations based on a respective user scenario
US20120084306A1 (en) Systems, methods, and apparatus for accessing object representations of data sets
US20090319471A1 (en) Field mapping for data stream output
Tran Migrate to GraphQL-Rethinking application development

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121207