JP2010519625A - ライブエンティティインターネットストアサービス - Google Patents
ライブエンティティインターネットストアサービス Download PDFInfo
- Publication number
- JP2010519625A JP2010519625A JP2009550166A JP2009550166A JP2010519625A JP 2010519625 A JP2010519625 A JP 2010519625A JP 2009550166 A JP2009550166 A JP 2009550166A JP 2009550166 A JP2009550166 A JP 2009550166A JP 2010519625 A JP2010519625 A JP 2010519625A
- Authority
- JP
- Japan
- Prior art keywords
- data
- edm
- data store
- storage
- schema
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
Abstract
特許請求される主題は、非常に表現的なEDM概念フォーマットを利用するアプリケーションインターフェースと、効率的で非常にスケーラブルなストレージフォーマットで構造化されたデータストアとの間を相互に関連付けることができるオンラインのインターネットクラスサービスを提供する。上記サービスは、EDMスキーマとデータ構造フォーマットとの間をマッピングするコンポーネントを含むことができる。さらに、クエリ応答は、EDMクエリフォーマットとは別個のペイロードフォーマットで提示されるデータを含むことができる。
Description
本発明は、ライブエンティティインターネットストアサービスに関する。
ソフトウェアアズアサービス(software as a service)の提供における最近の傾向は、ストレージアズアサービス(storage as a service)についての複数の高いプロファイルの例をもたらしている。ストレージアズアサービスについて2つの良く知られた例が現在存在しており、写真管理サイトなどのアプリケーションに対するストレージを提供している。写真管理サイトは、ユーザが、写真または他のデータファイルをアップロードし、管理し、ハイパーテキストマークアップ言語(HTML)を用いてリンクし、ダウンロードし、電子メールで送信することを可能にする。これらのストレージサービスの第1のセットは、インターネットにわたるリモートデータの記憶のためのファイルシステムレベルのプログラミングモデルを提供する。しかし、このモデルは、強いクエリ能力があまりなく、アプリケーションレベルでデータベースとの最小限の対話(interaction)だけを提供し、多くのデータベースプログラマのニーズには不十分である。ストレージアズアサービスの第2の共通のセットは、ファイルシステムレベルプログラミングモデルと現代プログラマのニーズとの間のギャップを埋めることができるいくつかの基本的な概念モデリング機能を提供するが、そのようなストレージサービスとのアプリケーションプログラミングインターフェース(API)の形態は、典型的に、サービスの機能を制限し得るドメイン固有の形をとっている。一般に、現代のストレージアズアサービスのアーキテクチャが提供するプログラミングモデルと現代のデータベースプログラマのニーズとの間には、大きなギャップが存在する。
典型的に、データベースのプログラマは、彼らが汎用アプリケーションを作成することを可能にするフロントエンドの柔軟なストレージサービスを必要とする。ファイルシステムレベルサービスは、基礎になるストレージ実装のための柔軟性を提供する特徴セット(feature sets)を提供することができる。さらに、これらのファイルシステムレベルサービスは典型的に、クライアントエンティティが各々5ギガバイト(GB)までの無制限の数のオブジェクトを書き込み、読み取り、削除することを可能にする。上述の写真共有サイトなど、一般のアプリケーションサービスは、これらのサービスを利用し始めている。しかし、これらのサービスは、統一的(uniform)なフロントエンドアプリケーションの高度性を提供しないという点で制限されている。他のストレージアズアサービスアーキテクチャは、より高度化したフロントエンドサービスに適合しているが、一般的なストレージサービスアーキテクチャとしての全体的な有効性を潜在的に制限する可能性のある、型固有のAPIを提供するように進化している。この点で、プログラマは、大規模なデータベースプログラミングのストレージサービスについて今後開発されることになる新たなアプローチから利益を得ることができる。
以下に、請求される主題の一部の態様について基本的理解を提供するために、請求される主題の単純化された要約を提示する。この要約は、請求される主題の網羅的な概要ではない。請求される主題の主要なまたは重要な要素を識別すること、および請求される主題の範囲を詳細に説明することは、意図されていない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、請求される主題の一部の概念を単純化された形で提示することである。
本明細書で開示され、請求される主題は、その様々な態様で、非常に表現的な(highly expressive)概念アーキテクチャと非常にスケーラブルな(highly scalable)インターネットタイプのデータストアアーキテクチャとの間の仲立ちをするデータストレージ構成を提供する。このシステムは、REST(representational state transfer)インターフェース上で2つまたはそれより多い上記データモデリングアーキテクチャの間の情報交換を容易にするマッピングコンポーネントを含むことができる。そのような交換を提供することによって、リモートインターネットタイプのデータストアへのクエリを、リモートデータストアの構造を公開せずに非常に表現的な概念フォーマットで送信することができる。その結果、データストレージ構成は、サーバ、データベースなどのストレージリソースのスケーラビリティを維持しながら、豊かなデータアクセス環境を提供することができる。
請求される主題のさらなる態様によれば、統一的なインターフェースがデータストレージシステム上で提供され、データを統一的な手法で公開するための一貫したモデルベースの機構が提示される。汎用アプリケーションを作成するのに十分に強力なクエリ機能がサポートされる。そのようなインターフェースは、消費者対応(consumer−ready)のアプリケーションインターフェース(例えば、ウェブサイトまたは類似物)、専門的なRESTベースのAPIインターフェース(例えば、ウェブサイトの開発者、データベースの設計者など)、またはその組合せを提供することができる。
請求される主題の他の態様によれば、ユーザがエンティティデータモデル(EDM:entity data model)についてスキーマを定義できるようにするオンラインのインターネットスケールのシステムが開示される。このシステムはさらに、情報をリモートデータストアで格納する手法を、ユーザによって作成されるEDMスキーマとは独立に管理する。そのようなシステムを、さらに、プライベートなリッチストアおよびアプリケーションサービスのための大規模なプライベートイントラネット内で展開することができる。
次の説明および添付図面は、請求される主題の特定の例示的態様を詳細に説明する。しかし、これらの態様は、請求される主題の原理を利用する様々な方法のごく一部を示すものであり、請求される主題は、全てのそのような態様およびその同等物を含むことが意図されている。請求される主題の他の利益および際立った特徴は、図面と共に考慮されるときに、請求される主題の次の詳細な説明から明らかになるであろう。
請求される主題を、図面を参照して説明するが、図面では、同様の符号を使用して、図面を通じて同様の要素を示す。以下の記述では説明の目的で、請求される主題の完全な理解を提供するために、多数の具体的な詳細を説明する。しかし、請求される主題を、これらの特定の詳細を必要とせずに、請求される主題を実施することができることは明白であろう。他の例では周知の構造およびデバイスを、請求される主題の説明を容易にするためにブロック図の形式で示す。
本出願で使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インターフェース」、「エンティティデータモデル」などの用語は、全般的に、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかの、コンピュータ関連のエンティティを指すことが意図されている。例えば、コンポーネントは、これらには限定されないが、プロセッサで動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができる。例として、コントローラ上で動作するアプリケーション、およびそのコントローラの両方をコンポーネントとすることができる。1つまたは複数のコンポーネントが、プロセスおよび/または実行のスレッドの中に存在することができ、1つのコンポーネントを、1つのコンピュータにローカルに配置すること、および/または複数のコンピュータの間で分散させることができる。もう1つの例として、インターフェースは、入出力(I/O)コンポーネント、ならびに関連するプロセッサ、アプリケーション、および/またはAPIコンポーネントを含むことができ、コマンドラインのように単純な、またはより複雑な統合開発環境(IDE:Integrated Development Environment)とすることができる。
さらに、請求される主題を、コンピュータを制御して開示される主題を実装するソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組合せを作成するための、標準的なプログラミング技法および/または開発技法を使用する、方法、装置、または製品として実施することができる。用語「製品」は、本明細書で使用されるとき、任意のコンピュータ読取可能デバイス、コンピュータ読取可能搬送波、またはコンピュータ読取可能媒体からアクセス可能なコンピュータプログラムを含むことが意図されている。例えば、コンピュータ読取可能媒体は、磁気ストレージデバイス(例えば、ハードディスク、フロッピディスク、磁気ストライプなど)、光ディスク(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)など)、スマートカード、およびフラッシュメモリデバイス(例えば、カード、スティック、キードライブなど)を含むことができるが、これらには限定されない。さらに、搬送波を使用して、電子メールの送受信またはインターネットもしくはローカルエリアネットワーク(LAN)などのネットワークのアクセスに使用されるような、コンピュータ読取可能な電子データを搬送することができることを理解されたい。もちろん、当業者には、請求される主題の範囲または趣旨から逸脱することなく、この構成に対して多数の変更を行うことができることを理解されるであろう。
さらに、「例示的」という単語は、本明細書では、例、実例、または例示としての意味で使用される。本明細書で「例示的」として説明される全ての態様または設計は、必ずしも、他の態様または設計より好ましいまたは有利であるものとして解釈されるべきものではない。むしろ、例示的という単語の使用は、具体的な形で概念を提示することを意図されている。本出願で使用されるとき、用語「または」は、排他的な「または」ではなく包含的な「または」を意味することが意図されている。すなわち、他に特に規定のない限り、または文脈から明瞭である場合を除いて、「XはAまたはBを使用する」は、相互に包含的な順列のいずれかを意味することが意図されている。すなわち、XがAを使用するか、XがBを使用するか、あるいはXがAとBとの両方を使用する場合に、「XはAまたはBを使用する」が、前述の実例の全ての下で満たされる。さらに、冠詞「ある(a)」および「ある(an)」は、本願および添付の特許請求の範囲で使用されるときは通常、他に特に規定のない限り、または文脈から単数形を指すことが明瞭である場合を除いて、「1つまたは複数」を意味すると解釈されなければならない。
本明細書で使用されるとき、用語「推論する」または「推論」は、通常、イベントおよび/またはデータを介してキャプチャされる観察のセットから、システム、環境、および/またはユーザの状態に関して推理し、またはこれを推論するプロセスを指す。推論は、特定のコンテキストまたはアクションを識別するのに使用することができ、あるいは、例えば状態に対する確率分布を生成することができる。推論は、確率的すなわち、データおよびイベントの考慮に基づく当該の状態に対する確率分布の計算とすることができる。推論は、イベントおよび/またはデータのセットからより高いレベルのイベントを構成するのに使用される技法を指すこともできる。そのような推論は、イベントが近い時間的近接で相関しようとしまいと、イベントおよびデータが1つまたは複数のイベントソースおよびデータソースのどちらに由来しようと、観察されたイベントおよび/または格納されたイベントデータのセットからの新しいイベントまたはアクションの構成をもたらす。
ここで図1を参照すると、請求される主題の一態様にかかる、ステートレス(stateless)で統一的なRESTインターフェースを、非常にスケーラブルなインターネットタイプのデータストアにマッピングするシステム100が図示されている。マッピングコンポーネント102は、非常に表現的な概念アプリケーション環境とデータストレージ環境との間で変換可能なコンピュータ関連のエンティティとすることができる。マッピングコンポーネント102は、データストアのサブセット、クライアントアプリケーションもしくはコンポーネント、別個の中間コンポーネント、またはこれらの組合せとすることができることを認識されたい。データストレージ環境は、リレーショナルスキーマを含む任意の適切なストレージスキーマ(例えば、SQLデータベースサーバ)または非常にスケーラブルなインターネットクラスのスキーマとすることができる。概念アプリケーション環境は、データがストレージ環境内でどのように構成されるかを指定する必要なく、非常に表現的なフォーマットでデータをモデリングするための任意の適切な環境とすることができる。
システム100には限定されないが、システム100のコンテキストを提供するための例として、概念データモデリング環境は、データを、人、会社、または人もしくは会社のクラスなど、実世界のエンティティの観点から表すことができる。消費者は、例えば実世界のエンティティである可能性があり、そのような消費者は、人間、会社、政府などである可能性がある。したがって、マッピングコンポーネント102は、データストレージ環境とエンティティデータモデル(EDM)プログラミング環境との間のインターフェースをとることができる(例えば.NETブランドフレームワークで示されたクライアントビューエンジンと同様に)。さらに、マッピングコンポーネント102は、EDMモデル環境と非常にスケーラブルなインターネットクラスストレージ構造(下述)との間の情報交換を容易にすることができる。
EDMプログラミング環境は、上記の実世界の消費者などのエンティティを明示的に定義する、データモデリングの形式的な方法とすることができる。さらに、EDMは、あるエンティティの特定のインスタンスを指定し(エンティティインスタンスを、Entityと称することができる)、そのインスタンスをエンティティ型に関連付け、これをエンティティセット内の他の特定のインスタンスとともにグループ化することができる。EDMによって利用されるこの構造は、データストレージ構造と独立の非常に表現的なデータモデリング環境を可能にする。したがって、エンティティ(インスタンス)は、Entity型との特定の関係(relationships)を有することができ、EDMの他の態様との関係も有することができる。
Entity型は、複数のエンティティ型間、またはある型に関連するエンティティの複数のインスタンス間を区別することが可能なプロパティを有することができる。したがって、プロパティを利用して、EDMデータのあるセットをEDMデータの別のセットからフィルタリングすることができる。プロパティの例には、エンティティ型またはインスタンスに関連する「名前」、「住所」、「電話番号」、「電子メール」などが含まれる。ほとんどの実世界のアプリケーションでは、エンティティは、他のエンティティに関係付けられる。EDMは、この概念を関係という観念を介して組み込むことができ、この関係は、あるエンティティと別のエンティティとの間の関連(association)を表すことができる。
システム100は、EDMなどの概念モデルを利用するアプリケーションと、構造化ストレージモデルを使用するデータベースとの間のブリッジ(bridge)を提供することができる。典型的に、コンピュータデータベースアプリケーションは、特定のコンテキストに関するデータを編成して提示するのに用いられる、何らかのインターフェースおよび構造を提供する。一例として、ある特定の新製品の潜在的市場を定義するのを助けるために、マーケティングアプリケーションは、類似する製品に関係するコスト、需要、および購入ヒストリに関するデータにアクセスすることがある。それを行うために、上記アプリケーションは、例えばリレーショナルデータベース、SQL(structure query language)データベースなどに格納されたデータの蓄積(compilation)にアクセスし、例えば所望のコスト、需要、および購入ヒストリ情報を表す形でそのデータを編成することができる。そのようなデータベース照会言語は、特定のデータが格納され得る仮想スプレッドシート内の特定の「データブロック」の行、列、および/または名前を指定することができる。そのような構造は、データを格納するのに効率的である可能性があるが、アプリケーション内のデータを表すのには必ずしも効率的というわけではない。
対照的に、EDMは、より高い抽象化レベルでのデータの記述を可能にするティアド(tiered)アーキテクチャを作成することができる。例えば、EDMアプローチは、システムに対する構造的詳細にはあまり焦点を当てず、データモデラ(modeler)(例えば、ウェブサイト、データベース、APIの開発者など)が見るような、データ自体の構造的特性およびセマンティック特性に対して焦点を当てるものとすることができる。データを識別してアクセスするための(例えば、EDMスキーマに基づく)概念スキーマは、データベースアプリケーションを記述するときに、よりいっそう効率的である可能性がある。例えば、以前のマーケティング概念に関して、データが、新しい「歯ブラシ」(エンティティインスタンス、この場合は製品)が「1億ドル」市場(エンティティインスタンス、またはナビゲーションプロパティ)を「サポート」(関係)できることを示すと仮定する。アプリケーションプログラマにとっては、データベースの行または列ではなくアプリケーションに焦点を当てるこれらのエンティティについてデータベースを照会することの方が、よりいっそう効率的である可能性がある。マッピングコンポーネント102は、非常に表現的なデータモデリング環境とデータストレージ環境との間の変換によって、プログラマがまさにこのことを行うことを可能にすることができる。
マッピングコンポーネント102は、上記に加えて、より高度なEDMアーキテクチャを組み込むことができる。一例は、関係エンティティに加えて、アクション型のエンティティを組み込むことである。そのようなアクションを、EDMの項(terms)で表すことができ(例えば、EDMスキーマ内のエンティティをAction型、Actionインスタンス、および/またはActionセットとして参照するために)、データストア内の実際の実装にマッピングすることができる。アクションを使用するとき、「マーケティングキャンペーンを開始する」などのシチュエーションは、カスタマのアクションに関係付けられたパラメータを定義することができる。そのようなアクションを、関係が呼び出される手法と同様に、URIを用いて呼び出すことができる(下述)。別の例は、アプリケーションが、インターネットなどのウェブスケールのネットワークにわたって情報にアクセスすることができるだけではなく、該アプリケーションをSQLサーバなどのローカルストアと同期化させることもできる、汎用同期化アーキテクチャである。このような同期化は、実際に、データベース間のオフラインオペレーションモードを提供することができる。伝統的なクライアント−サーバの複製に加えて、ピアツーピアの複製をサポートすることができ、複数のピアがエンティティとともにEDMストアを担持するアプリケーションの作成が可能になり、ストレージ構成が経時的に変化を同期化するような収束性のメッシュストアが形成される。
データストア104は、効率的なストレージアーキテクチャに従って編成されたデータを有する、1つまたは複数の物理的なストレージデバイスまたは仮想ストレージデバイスとすることができる。このようなストレージアーキテクチャには、関係スキーマが含まれることがあり、あるいは、インターネットなどの膨大なウェブタイプのネットワークのための非常にスケーラブルで扱いやすい環境を可能にするインターネットクラスのスキーマが含まれることができる。システム100は、データストア104との間で情報を交換するためのステートレスで統一的なシステムを提供するREST(representational state transfer)インターフェース106を組み込むこともできる。
一般に、システム100に組み込まれるREST転送モデルは、大規模なネットワーキング環境で効果的であることが証明されている、複数の特性を含むことができる。例には、ステートレスコンポーネントの対話、階層化コンポーネントアーキテクチャ、クライアントおよびサーバ側(server−side)のキャッシュ、ならびに統一的なコンポーネントインターフェースが含まれる。ステートレスな対話(stateless interaction)は、各クエリおよび/またはレスポンスが、それに関係する情報転送を完了するのに必要な全ての情報を含まなければならないことを示す。したがって、コンポーネントは、他のコンポーネントとの以前の対話を記録することを要求されず、さらなる対話のためのメモリおよび処理リソースを解放する。そのようなシステムは、反復要求を増加させ得るが、クライアントおよびサーバ側のキャッシュは、コンポーネントによる以前の送信をそのコンポーネントで格納することによって、そのような反復要求から生じるリソース需要を軽減させることを助けることができる。さらに、統一的なコンポーネントインターフェースが、インターネットまたは大規模なイントラネットのアプリケーションに典型的な大粒度の(large−grain)ハイパーメディアデータの転送(例えば、ビデオ、オーディオなどの大きいデータファイル)に理想的であるのに対して、階層化コンポーネントアーキテクチャは、システムの複雑性に上限を設け、コンポーネントの独立性を促進する。RESTインターフェース106は、これらの特性の一部または全て、ならびに大規模ネットワーキング環境におけるデータ転送を容易にする追加の特性を含むことができることを認識されたい。RESTインターフェース106をマッピングコンポーネント102およびデータストア104に連結することによって、システム100は、望ましいEDMプログラミングインターフェースを1つまたは複数のデータストアに提供するとともに、これらのデータストアにおける高い効率性と高いスケーラビリティを提供することができる。
図2を参照すると、表現的クエリ構造202を、直観的概念インタラクションを可能にするデータストア204(例えば、リレーショナルモデル、または非常にスケーラブルなインターネットタイプモデル)とともに利用するシステムが図示されている。システム200は、RESTインターフェース206とともに、アプリケーションとのインターフェースを容易に確立するのを助ける開発ツール(例えば、ASP(active server page)および後続の技術、ならびに.NETブランドフレームワークに関連する他の技術などのツール)を含むことができる。クライアントアプリケーション206は、任意の適切なフレームワーク、例えば、AJAXと称される非同期java(登録商標)スクリプト+XML(asynchronous java script and eXtensible markup language)とすることができ、AJAXは、RESTインターフェース208をインターネットまたは大規模なイントラネット上で利用して、データストア204にアクセスすることができる。システム200は、クライアントアプリケーション206(例えば、AJAXおよび類似物)を、そのようなクライアントをマッピングコンポーネント210とインターフェースさせることによって拡張することができ、これによって、RESTインターフェース208を介してEDMストア(例えば、上述のようにマッピングコンポーネント210によってEDMフォーマットにマッピングされるデータストア204)に対する直接のアクセスが与えられる。その結果、ユーザ(例えば、ウェブ開発者など)は、クライアントアプリケーション206とデータストア204との間の対話(例えば、作成、取出、更新、削除(CRUD)操作)毎に別々のウェブサービスを作成する必要がない。
データストア204は、マッピングコンポーネント210によってマッピングすることにより、EDMエンティティにマッピングされ、このEDMエンティティは、その後、RESTインターフェース208を介して安定したURIを有するリソースとして公開される。そのようなURIは、次いで、データストア204にリソースストアを反映することになるが、EDMスキーマによって記述される。したがって、表現的クエリ構造202は、URI名前空間の形で構造化されたウェブスタイル転送プロトコル(例えば、HTTPプロトコルおよび類似物)の形式をとることができる。そのような構造は、EDMスキーマに従ってデータストア204上のリソースを定義することができる。したがって、表現的クエリ構造202は、非常に表現的であり、かつよく知られた構造(例えば、URIクエリ構造)を利用してリレーショナルデータベースまたは非常にスケーラブルなインターネットクラスのデータベースと対話する手段を提供することができる。表現的クエリ構造202の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/Customers[CompanyName = “Company_One”].
「base URI」は、Entity環境(例えば、Entityフレームワーク)およびREST拡張をホスティングできるウェブサーバ/ディレクトリにポイントすることができる。「refx file」(下でより詳細に述べる)は、ストア/コンテナ(例えば、データストア204)への接続を表し、entity set(エンティティセット)、entity key(エンティティキー)、およびnavigation property(ナビゲーションプロパティ)は、標準的なEDMの構造である。options(オプション)にはデータの表現を含めることができ、下でより詳細に述べる。
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/Customers[CompanyName = “Company_One”].
「base URI」は、Entity環境(例えば、Entityフレームワーク)およびREST拡張をホスティングできるウェブサーバ/ディレクトリにポイントすることができる。「refx file」(下でより詳細に述べる)は、ストア/コンテナ(例えば、データストア204)への接続を表し、entity set(エンティティセット)、entity key(エンティティキー)、およびnavigation property(ナビゲーションプロパティ)は、標準的なEDMの構造である。options(オプション)にはデータの表現を含めることができ、下でより詳細に述べる。
システム200は、単純な論理操作のためであっても複雑な論理操作のためであっても、アプリケーションをカスタマイズするための統一的なインターフェースを提供することができる。一部のクライアントアプリケーション206は、ほとんどの操作ではデータを参照するだけであるが(例えば、読取り専用アプリケーション)、他のアプリケーションは、より集中的なビジネスロジック操作(例えば、データ作成、変更、分析、編集など)を利用して対話する。前者の場合、開発者はしばしば、データベースへのゲートウェイとして機能し、挙動(behavior)またはポリシを伴わないウェブサービスのエントリポイントまたはカスタマイズされたアプリケーションを作成する。他のアプリケーションは、ポリシ集中型(policy intensive)であり、サーバ側で特定のポリシおよび挙動を割り当てる。システム200は、これらのアプリケーションを統一するのを助けることができる。第1に、システム200は、マッピングコンポーネント210およびRESTインターフェース208によって単純な独立ゲートウェイの必要性を除去し、これにより、特別なポリシまたは挙動を伴わないときにデータストア204に対する直接的なトランスポートを提供することができる。より多くのビジネスロジックが必要な場合、システム200は、反復的にカスタマイズできる単純なスタートポイントを提供することができる。(例えば、上述のようにマッピングコンポーネント210によって)EDMストアとして公開されるデータストア204を中心として挙動を追加し、ポリシを記述するための、様々な機構が存在する。
上述の表現的クエリ構造202(例えば、URIベースのクエリ)は、公開されたEDMスキーマの記述子として機能する「refx」ファイルを使用することができる。このようなファイルは、少なくともマッピングコンポーネント206の一部(例えば、データベースおよびそれに関連するメタデータファイル)をポイントすることができ、このマッピングコンポーネント206は、EDMスキーマからストレージスキーマへのマッピング構造を記述することができる。さらに、表現的クエリ構造202は、公開されるデータの諸態様を制御することができる。例えば、ユーザは、データストア204の各エンティティセットが(例えば、マッピングコンポーネント206を介して特徴付けられるように)アクセス可能、読取り専用、あるいは読取りと書込みのいずれであるかを制御することができる。
システム200は、表現的クエリ構造202によってデータベースの挙動を制御する機構を提供することもできる。このような挙動(例えば、疑わしいデータを分析し、拒絶するかフラグを立てることのできるセキュリティチェック)を、表現的クエリ構造202内で参照されるエンティティ型に関連付けることができる。具体的には、EDM構造に従って、エンティティフレームワークオブジェクト(例えば.NETブランドのオブジェクト)としての実際のエンティティ/クエリ、およびデータストア204へのエントリポイントを表す「ObjectContext」アイテムに対するアクセスを提供することができる。挙動の例として、以下は、「product」エンティティインスタンスが「products」エンティティセットに書き込まれるときにアクティブ化されるC#関数である。この関数は、例えばデータストア204の他の部分をチェックすることができ、その後、「product」の作成操作または更新操作を停止(abort)させて、そのような操作にフラグを立てることができる。
この例においてC#コードで表されるアプローチは手続的アプローチであり、該アプローチは、データストア204がイントラネット(例えば、大企業のネットワーク環境)上のリレーショナルデータストアまたはSQLデータストアを表すシステム200で実装され得ることに留意されたい。インターネットスケールアプリケーションについて、宣言的(declarative)ポリシの例を利用することができる。
システム200は、上で説明したURIモデルの他に、表現的クエリ構造202を介して照会を行うさらなる方法もサポートする。開発者は典型的に、URIを利用して、特定のデータストア内で使用可能なものを発見することができるが、アプリケーションユーザは通常、様々なフィルタまたは基準(criteria)を使用して照会および/または検索をする。したがって、表現的クエリ構造202は、クライアントアプリケーション206を介して、フィルタおよび/または基準ベースの検索をサポートすることもできる。このような基準ベース検索の一例が、RDF(resource description framework)クエリ言語RQLおよびSPARQLである。該RDFクエリ言語は、表現力に関して非常に幅広く、産業界で広く受け入れられている。
フィルタベースの検索のクエリは、EntitySQLと呼ばれるSQL言語のEDM構造化に固有の言語(dialect)をも含むことができる。表現的クエリ構造202は、eSQL言語によって指定される「クエリフラグメント」をサポートして、フィルタベースの検索を実行することができる。さらなる例として、URI内のストリングのクエリが、「customers」と呼ばれるエンティティセットをポイントし、関連する特定のプロパティを有する「customers」のインスタンスだけを返すことができる。例えば、Argentinaフィルタのプロパティ「country」は、次のようである可能性がある。
http://entities.live.com/refx/northwind/refx/Customers?where=it.Country=Argentina
表現的クエリ構造202は、さらにe−SQLフラグメント構造もサポートすることができる。例えば、EDMナビゲーションプロパティを、エンティティ関係の区別に使用することができる。より具体的には、10個を超える注文を有する「customer」インスタンスを要求する例は、「COUNT(it.SalesOrders)> 10」とすることができる。構造化されたクエリ言語202のもう1つの特定の例は、Xpathすなわち、(例えば、関係を用いてEDMスキーマを照会する際に利用される)クエリグラフについて良好に働く単純な周知のクエリ言語とすることができる。さらに、クエリがペイロードである(例えば、クエリに追加される情報ではなくクエリのメッセージ)場合のクエリに関するPOST要求を使用するためのサポートを提供する。したがって、表現的クエリ構造202は、クエリ言語をURIに埋め込むことに関連する問題を回避することができる。
http://entities.live.com/refx/northwind/refx/Customers?where=it.Country=Argentina
表現的クエリ構造202は、さらにe−SQLフラグメント構造もサポートすることができる。例えば、EDMナビゲーションプロパティを、エンティティ関係の区別に使用することができる。より具体的には、10個を超える注文を有する「customer」インスタンスを要求する例は、「COUNT(it.SalesOrders)> 10」とすることができる。構造化されたクエリ言語202のもう1つの特定の例は、Xpathすなわち、(例えば、関係を用いてEDMスキーマを照会する際に利用される)クエリグラフについて良好に働く単純な周知のクエリ言語とすることができる。さらに、クエリがペイロードである(例えば、クエリに追加される情報ではなくクエリのメッセージ)場合のクエリに関するPOST要求を使用するためのサポートを提供する。したがって、表現的クエリ構造202は、クエリ言語をURIに埋め込むことに関連する問題を回避することができる。
ここで図3を参照すると、本開示の諸態様にかかる、クライアントアプリケーション304とデータストア306との間のインターフェースを提供し、データを特定のデータペイロードフォーマットで送信することができるシステム300が図示されている。マッピングコンポーネント302は、上で述べたように、EDMスキーマを利用するクライアントアプリケーション304と、ストレージスキーマを利用するデータストア306との間のインターフェースを提供することができる。データストア306は、例えば大規模のイントラネットタイプのネットワーク(例えば、企業ネットワーク)内で利用可能なリレーショナルスキーマ(例えば、SQLサーバ)、または例えばインターネット上で使用可能な特別な非常にスケーラブルなインターネットクラスストレージスキーマによって定義される構造を有することができる。クライアントアプリケーション206は、データをモデリングするための表現的概念フォーマット、およびデータベースと対話するための関係概念フォーマット(例えば、図2の表現的クエリ構造202に関して上述したEDMフォーマット)を利用することができる。RESTインターフェース308はプラットフォームを提供し、該プラットフォームによって、クライアントアプリケーションおよびデータストアが大規模なリモートネットワーク上で通信することができ、EDMなどのスキーマをサポートすることができる。しかし、RESTは一般に、データを提示する特定のフォーマットを指定せず、他の機構が、そのようなデータフォーマットを提供する。
システム300は、符号310で表されるペイロードフォーマットまたはデータ表現フォーマットを組み込み、クライアントアプリケーション302とデータストア304との間で伝送されるデータを指定することができる。例には、POX(plain old XML)、RSS(rich site summary)、JSON(java(登録商標)script notation)、RDF(resource description framework)、ATOMなどが含まれる。各データペイロードフォーマットは、通常は類似するが、データを表示するための異なるフォーマットを有することがある。POX、JSON、およびRDFの例を以下に示す。
一例として、「customer」エンティティ型に属する「ALFKI」というキーを有する特定のエンティティインスタンスを仮定する。上記のように指定するEDMクエリに対するJSONの構造的応答は、概ね以下と同様である。
http://entities.live.com/refx/northwind.refx/Customers/ALFKI?responseType=text/json
http://entities.live.com/refx/northwind.refx/Customers/ALFKI?responseType=text/json
クライアントアプリケーション302は、RESTインターフェース312を介して表現的EDMフォーマットのクエリを指定することだけを必要とすることに留意されたい。マッピングコンポーネントは、クライアントアプリケーション302(例えば、消費者またはアプリケーションカスタマなど)によって利用されるスキーマとは独立のスキーマのデータストア304に情報が格納される、実際の方法を自動的に管理することができる。POXフォーマットの同一のクエリは、概ね以下と同様である。
RDFフォーマットでは次のとおりである。
図4を参照すると、図4は、消費者402とサービスプロバイダ404との間に提供されるサンプルのサービスレベルの合意(seriveice level agreement)400、および複数の合意を区別できるポリシ(例えば、410から420まで)の図である。サービスレベルの合意400は、データストレージサービスを提供し、該データストレージサービスは、特に表現的クエリスキーマとデータストアスキーマ(例えば、リレーショナルスキーマ、非常にスケーラブルなインターネットタイプのデータストアスキーマ、または例えば他のデータベースストレージスキーマ)を相互に関連付けることができる。このようなサービスは、データストアスキーマを、クライアントシステムによって利用される表現的スキーマ(例えば、EDMスキーマおよび類似物)と独立に自動的に管理することができる。さらに、ストレージサービスは、上で述べたように、種々のペイロード表現フォーマットをサポートすることができる。さらに、マッピングサービスを、インターネット上または大規模なイントラネットワーク(例えば、大企業のイントラネット)上で使用可能にすることができる。
また、サンプルのサービスレベル合意ポリシも示されており、該ポリシでサービスレベルの合意を構造化する。あるポリシは、例えば最小限のコストで提供される、ベストエフォート(best effort)410ポリシとすることができる。ベストエフォートポリシは、サービスの基礎となるレベル、例えば、表現的クエリスキーマとデータストアスキーマを相互に関連付けるが特定の品質保証(例えば、サポート、バックアップ、リカバリ、可用性など)は提供しない、マッピングサービスを提供することができる。説明するための例として、ベストエフォート410は、消費者404がデータマッピングサービスを、例えばわずかな料金を消費者自身が負担し、データマッピングサービスプロバイダ406側に対する他の義務は負わずに利用することを可能にする、消費者404とデータマッピングサービスプロバイダ406との間のライセンスとすることができる。バックアップ/リストアポリシ412は、さらに、消費者404によってアップロードされたデータを保護するためのバックアップ操作およびリストア操作を含む、ベストエフォートポリシ410によって提供されるサービスとすることができる。サービスプロバイダ406は、消費者404によってアップロードされたデータのコピーを作成し、問題が発生した場合にこれをリストアすることができる。データ/サービス保証(data/policy guarantee)ポリシ414は、バックアップリストアポリシ412に加えてまたはその代わりに、より強固なバックアップおよびリストアのシナリオを提供することができる。そのようなポリシは、例えば、データをバックアップしてリストアすることができ、サービスレベル合意402で提供されるある特定の値まで該データを保証することもできる。
サービスレベル合意は、上で説明したバックアップサービスおよびリストアサービスに加えて、データストアに関連する多くの追加のサービスを提供することができる。例えば、サービスレベル合意を、特定のレートのストレージサイズ(例えば、メガバイト単位、ギガバイト単位、テラバイト単位、および類似物)を確立する、特定のストレージレベルポリシ416に基づくものとすることができる。また、アクセス可用性(access availability)ポリシ418は、例えば、あるデータを、特定の品質、または特定のサーバ側のアクセス速度で、全世界または世界の指定された部分などにおいてアクセス可能にすることができることの保証を提供することができる。例として、米国を拠点とする消費者402が、あるウェブサイトに関して格納されたデータを有しており、該データを日本の関係団体(affiliate)に使用可能にすることを望む場合、アクセス可用性ポリシ418は、そのようにするための標準を指定することができる。別の例として、インターフェース(例えば、RESTインターフェース)を介してアプリケーションを作成するための確立されたアプリケーションまたは開発ツールの使用を提供するアプリケーションプログラミングインターフェース(API)サポートポリシ420を指定することができる。図4で提供される例は、本革新の諸態様に関連する様々なサービスレベル合意のコンテキストを作成するためのものであり、他のコンテキストを限定するためのものであると解釈されるべきではないことを理解されたい。
ここで図5を参照すると、請求される主題の態様にかかる、インターネットタイプのデータストアのスケーラビリティを維持しながら非常に表現的なモデリング環境を提供するための例示的な方法500が示されている。502で、EMD特性表現(EDM characterization)として表されたアプリケーション概念モデルが作成され、またはリポジトリから取得される。この概念モデルは、ドメイン固有とすることができ、EDMを介して使用可能な任意の適切な形式を有する。例には、仮想エンティティまたは実世界エンティティ(例えば、人、場所、物、会社、位置、またはオフィスなど、事実上全ての名詞)をエンティティインスタンス、型、およびセットとして表す、定義された種々のエンティティが含まれる。定義された種々の関係は、エンティティ間に発生する関連、プロパティ、または継承(例えば、ピアツーピア関連、親子継承モデル、および類似物)を関係インスタンス、型、およびセットとしても表す。関係およびエンティティを、例えばEDM特性表現として表されたアプリケーション概念モデルによって指定されるように、データストア上の特定のリソースストアにマッピングすることができる。504で、アプリケーション概念モデルのウェブスケールネットワークデータストアが、データストレージフォーマットで作成される。さらに、データストレージフォーマットは、データストア上でデータを構造化するための任意の適切なフォーマットとすることができる(例えば、企業ネットワーク内のSQLデータベース、インターネットクラスデータベース用の非常にスケーラブルなインターネットクラスのストレージフォーマットなど)。
RESTインターフェースを、ウェブスケールネットワークのデータストア上で提供し、該データストア内のデータを該ネットワーク上の他のコンポーネント(例えば、クライアントコンポーネント)に公開することができる。RESTインターフェースは、データストアとのステートレスで統一的なインタラクションを可能にすることができ、EDM特性表現を利用して(例えば、EDM URI構造を用いて)RESTスタイルのクエリ構造を容易にすることができる。EMDクエリは、データストアに対する基本的なCRUD操作を実行するための非常に表現的なフォーマットを提供することができる。508で、EDM概念特性表現とデータストレージフォーマットとの間の相互関係(correlation)をマッピングする。この相互関係は、データストレージフォーマットのデータストアを、RESTインターフェース上のEDMクエリと独立に管理するのを容易にする。その結果、方法500は、スケーラビリティおよび効率性に関して最適化されたデータストレージフォーマットを維持しつつ、非常に表現的で概念指向の(例えば、プログラミング、アプリケーション使用のための)インターフェース環境を提供する。
ここで図6を参照すると、本明細書で説明される様々な態様にかかる、ウェブタイプのデータストアとEDMアプリケーションモデリング環境との間のインターフェースを管理する例示的な方法600が示されている。602で、ウェブスケールネットワークデータストアを、非常にスケーラブルなストレージモデルに従って構造化する。上で開示したように、ストレージモデルは、例えば、大量のデータの格納および非常に多い量のクエリの処理が可能な、インターネット上で展開されるインターネットクラスデータストア用とすることができる。代替的に、該ストレージモデルは、企業のネットワーク環境内で展開されるSQLクラスデータベース用とすることができる。604で、EDMモデルに従って構造化されたクエリが、データストアで受信される。このクエリは、例えば、特定のドメイン(例えば、エンティティコンテナ)、エンティティ型、(例えば、エンティティキーによる)エンティティインスタンス、ナビゲーションプロパティ、(例えば、上述のe−SQLフィルタと同様の)フィルタ、関係型(relationship type)、関係セット(relationship set)、関係インスタンス(relationship instance)などを指定することができる。符号604で開示されるEDMクエリは、データストアへのインターフェース(例えば、RESTインターフェース)によって、開発者/消費者に周知の手法で汎用データベースアプリケーションを作成することに利用可能であることを理解されたい。
606で、クエリによって指定された操作を、データストレージモデルを参照してデータストアに適用する。このような手法で、アプリケーションおよび/またはクエリスキーマを、データストア上の情報を管理するのに使用されるスキーマと独立の特定のフォーマット(例えば、非常に表現的なEDM概念フォーマット)で定式化することができる。608で、EDMモデルに従って、クエリに操作結果を応答する。例えば、クエリ操作がデータストアへのデータのアップロードを要求していた場合、符号608では、その操作が成功した、不成功であったことなどを示す表示(indication)を返すことができる。さらなる例として、クエリ操作が、データをデータストアから取り出すことを要求していた場合、符号608での応答には該データが含まれることになる。さらに、応答によって指定されるデータは、上で説明したように、ペイロードフォーマットなどの別個のフォーマットを有することができる。
ここで図7を参照すると、本革新の態様にかかる、商用のサービスプラットフォームを提供するサンプル的な方法700が示されている。702で、EDMデータ構造とストレージモデリング構造との間の変換を実行する。この変換を、例えば、ネットワーク化されたサーバシステムとクライアントシステムとの間のRESTインターフェース上で実行することができる。代替的には、この変換を、データストアデバイス、クライアントデバイス、または中間デバイスと提携したシステムで実行することができる。さらに、ネットワークは、インターネットまたは企業のイントラネットなど、ウェブスケールのネットワークとすることができる。さらに、ストレージデータモデリング構造は、(例えば、インターネットクラスのデータストアで利用される)非常にスケーラブルなストレージモデリング構造とすることができる。704で、ストレージデータモデリング構造でモデリングされたデータストアを、ウェブスケールネットワークを介して(例えば、RESTインターフェースおよび/または類似物によって)公開する。706で、アクセスのレベルおよび/または上記アクセスのサポートを、様々なレベルの報酬で提供する。サポートおよび/またはアクセスのレベルは、例えば、データバックアップおよびリストアサービス、データのロスに対する保証、地方、国内、または全世界からの、特定の品質レベルでのデータに対する可用性などを含むことができる。個々のカスタマ、小規模の会社、大企業、政府などの必要性に合致するように、レベルを指定することができる。さらに、サポートおよび/またはアクセスに対する報酬のレベルは、少なくともアクセスおよび/またはサポート自体のレベルに対応させることが可能である。708で、消費者対応のアプリケーションユーザインターフェースを提供することができる。さらに、710で、データストアに対する直接のアクセスを、RESTスタイルAPIインターフェースを介して提供することができる。
ここで図8を参照すると、開示されるアーキテクチャを実行するために動作可能な例示的なコンピュータシステムのブロック図が図示されている。本発明の様々な態様に関するさらなるコンテキストを提供するために、図8および次の議論は、本発明の様々な態様を実装することができる適切なコンピューティング環境800の簡潔で全般的な説明を提供することを意図されたものである。さらに、本発明を、上では1つまたは複数のコンピュータで実行されるコンピュータ実行可能命令についての全般的なコンテキストで説明したが、当業者には、本発明を、他のプログラムモジュールとの組合せで、および/またはハードウェアとソフトウェアの組合せとして実装することできることが認識されよう。
一般に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実装する、ルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者には、本発明の方法が、シングルプロセッサもしくはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、およびパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースもしくはプログラマブルな家庭用電化製品などを含め、それぞれが1つまたは複数の関連するデバイスに動作可能に結合され得る他のコンピュータシステム構成で実施され得ることは理解されよう。
本発明の図示された態様を、通信ネットワークを介してリンクされるリモート処理デバイスによって特定のタスクが実行される、分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルメモリストレージデバイスとリモートメモリストレージデバイスの両方に配置することができる。
コンピュータは、典型的に、様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取り外し可能媒体と取り外し不能媒体の両方を含む。限定ではなく例として、コンピュータ読取可能媒体は、コンピュータ記録媒体および通信媒体を含むことができる。コンピュータ記録媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性と不揮発性、取り外し可能と取り外し不能の両方の媒体を含むことができる。コンピュータ記録媒体には、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望の情報を格納するのに使用できコンピュータによってアクセスできる任意の他の媒体を含むが、これらには限定されない。
通信媒体は、典型的に、搬送波などの変調されたデータ信号または他のトランスポート機構でコンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータを具現化し、任意の情報配信媒体を含む。用語「変調されたデータ信号」は、情報を信号内に符号化する手法でその特性のうちの1つまたは複数をセットされるか変更された信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体とを含む。上記のいずれかの組合せも、コンピュータ読取可能媒体の範囲に含まれるべきである。
図8を再び参照すると、本発明の様々な態様を実装するための例示的環境800は、コンピュータ802を含み、該コンピュータ802は、処理ユニット804、システムメモリ806、およびシステムバス808を含む。システムバス808は、これに限定するものではないがシステムメモリ806を含むシステムコンポーネントを、処理ユニット804に結合する。処理ユニット804は、様々な市販のプロセッサのうちのいずれかとすることができる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを、処理ユニット804として使用することもできる。
システムバス808は、メモリバス(メモリコントローラを有するもの、または有しないもの)、周辺バス、および様々な市販のバスアーキテクチャのいずれかを使用するローカルバスにさらに相互接続できる複数のタイプのバス構造のうちのいずれかとすることができる。システムメモリ806は、読取り専用メモリ(ROM)810およびランダムアクセスメモリ(RAM)812を含む。基本入出力システム(BIOS)は、ROM、EPROM、EEPROMなどの不揮発性メモリ810に格納され、このBIOSは、スタートアップ中などにコンピュータ802内の要素の間で情報を転送するのを助ける基本ルーチンを含む。RAM 812には、データをキャッシングするためのスタティックRAMなどの高速RAMを含めることもできる。
コンピュータ802は、さらに、適切なシャーシ(図示せず)内で外部使用のための構成とすることもできる内蔵ハードディスクドライブ(HDD)814(例えば、EIDE、SATA)、(例えば、取り外し可能ディスケット818との間で読み書きするための)磁気フロッピディスクドライブ(FDD)816、および(例えば、CD−ROMディスク822を読み取り、あるいはDVDなどの他の大容量光媒体との間で読み書きするための)光ディスクドライブ820を含む。ハードディスクドライブ814、磁気ディスクドライブ816、および光ディスクドライブ820を、それぞれハードディスクドライブインターフェース824、磁気ディスクドライブインターフェース826、および光ドライブインターフェース828によってシステムバス808に接続することができる。外部ドライブの実装のためのインターフェース824は、USB(Universal Serial Bus)およびIEEE 1394の少なくとも一方または両方のインターフェース技術を含む。他の外部ドライブ接続技術も本発明の企図に含まれる。
ドライブおよびそれに関連するコンピュータ読取可能媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。コンピュータ802に対してドライブおよび媒体は、適切なデジタルフォーマットの任意のデータのストレージを提供する。上記のコンピュータ読取可能媒体の説明は、HDD、取り外し可能磁気ディスケット、およびCDまたはDVDなどの取り外し可能光媒体に言及しているが、当業者は、zipドライブ、磁気カセット、フラッシュメモリカード、カートリッジ、および類似物など、コンピュータによって読み取り可能な他のタイプの媒体も例示的なオペレーティング環境で使用することができ、さらに、任意の上記媒体が本発明の方法を実行するためのコンピュータ実行可能命令を含むことが可能であることを理解されたい。
オペレーティングシステム830、1つまたは複数のアプリケーションプログラム832、他のプログラムモジュール834、およびプログラムデータ836を含む複数のプログラムモジュールを、ドライブおよびRAM 812に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータの全てまたは一部を、RAM 812内でキャッシュすることもできる。本発明を、様々な市販のオペレーティングシステムまたはオペレーティングシステムの組合せで実装することができることを了解されたい。
ユーザは、1つまたは複数の有線/無線入力デバイス、例えばキーボード838およびマウス840などのポインティングデバイスを介して、コンピュータ802にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)には、マイクロホン、IRリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーン、または類似物が含まれ得る。これらおよび他の入力デバイスは、システムバス808に結合された入力デバイスインターフェース842を介して処理ユニット804に接続されることが多いが、パラレルポート、IEEE 1394シリアルポート、ゲームポート、USBポート、IRインターフェースなど、他のインターフェースによって接続することもできる。
モニタ844または他のタイプのディスプレイデバイスも、ビデオアダプタ846などのインターフェースを介してシステムバス808に接続される。モニタ844に加えて、コンピュータは典型的に、スピーカ、プリンタなど、他の周辺出力デバイス(図示せず)を含む。
コンピュータ802は、リモートコンピュータ848などの1つまたは複数のリモートコンピュータへの有線および/または無線の通信を介する論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ848は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンターテイメント機器、ピアデバイス、または他の一般的なネットワークノードとすることができ、典型的にはコンピュータ802に関して説明した要素のうちの多数または全てを含むが、簡潔性のためにメモリ/ストレージデバイス850だけを図示している。図示される論理接続は、ローカルエリアネットワーク(LAN)852および/または例えば広域ネットワーク(WAN)854などのより大規模なネットワークに対する有線/無線の接続を含む。このようなLANおよびWANのネットワーキング環境は、オフィスおよび会社では一般的であり、イントラネットなどの企業規模のコンピュータネットワークを容易にし、これらの全てが、グローバルな通信ネットワーク、例えばインターネットに接続可能である。
LANネットワーキング環境で使用されるとき、コンピュータ802は、有線および/または無線の通信ネットワークインターフェースまたはアダプタ856を介してローカルネットワーク852に接続される。アダプタ856は、LAN 852への有線または無線の通信を容易にすることができ、該LAN 852は、無線アダプタ856と通信するために配置される無線アクセスポイントも含むことができる。
WANネットワーキング環境で使用されるとき、コンピュータ802は、モデム858を含むことができ、あるいはWAN 854上の通信サーバに接続され、あるいはインターネットによる方法など、WAN 854を介する通信を確立する他の手段を有する。モデム858は、内蔵または外付けとすることができ、有線デバイスまたは無線デバイスとすることができ、シリアルポートインターフェース842を介してシステムバス808に接続される。ネットワーク化された環境では、コンピュータ802に関して図示されたプログラムモジュールまたはその一部を、リモートメモリ/ストレージデバイス850に格納することができる。図示されたネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使用可能であることは理解されよう。
コンピュータ802は、無線通信するように動作可能に配置された任意の無線デバイスまたはエンティティ、例えば、プリンタ、スキャナ、デスクトップコンピュータおよび/またはポータブルコンピュータ、携帯情報端末、通信衛星、無線によって検出可能なタグに関連付けられた任意の機器または場所(例えば、キオスク、新聞売店、トイレ)、ならびに電話機と通信するように動作可能である。これには、少なくともWi−Fi無線技術およびBluetooth(商標)無線技術が含まれる。したがって、通信は、従来のネットワークのように予め定義された構造または単純に少なくとも2つのデバイスの間のアドホック通信とすることができる。
Wi−Fiすなわちワイヤレス・フェデリティ(Wireless Fidelity)は、家庭のソファ、ホテルの部屋のベッド、または職場の会議室から配線を必要とせずにインターネットへの接続を可能にする。Wi−Fiは、例えばコンピュータなどのデバイスがデータを屋内および戸外で(基地局の範囲内のどこでも)送受信できるようにする携帯電話に使用されるものと同様の無線技術である。Wi−Fiネットワークは、IEEE 802.11(a、b、gなど)と呼ばれる無線技術を使用して、セキュアで信頼性があり、かつ高速の無線接続を提供する。Wi−Fiネットワークを使用して、コンピュータを相互に、インターネットに、および(IEEE 802.3またはイーサネット(登録商標)を使用する)有線ネットワークに接続することができる。Wi−Fiネットワークは、ライセンス不要の2.4GHzおよび5GHz無線帯域で、例えば11Mbps(802.11a)または54Mbps(802.11b)データレートで、あるいは両方の帯域(デュアルバンド)を含む製品で動作し、したがって、これらのネットワークは、多くのオフィスで使用される基本的な9BaseT有線イーサネット(登録商標)ネットワークと同様の実世界のパフォーマンスを提供することができる。
ここで図9を参照すると、開示されるアーキテクチャを実行するように動作可能な例示的コンピュータ・コンパル・システムの概略ブロック図が図示されている。システム900は、1つまたは複数のクライアント902を含む。クライアント902は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。クライアント902は、例えば本発明を使用することによって、クッキーおよび/または関連するコンテキスト情報を収容することができる。
システム900は、1つまたは複数のサーバ904も含む。サーバ904も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ904は、例えば本発明を使用することによって、変換を実行するスレッドを収容することができる。クライアント902とサーバ904の間の1つの可能な通信は、2つまたはそれより多くのコンピュータプロセスの間で伝送されるように適合されたデータパケットの形とすることができる。データパケットは、例えばクッキーおよび/または関連するコンテキスト情報を含むことができる。システム900は、クライアント902とサーバ904との間の通信を容易にするのに使用することができる通信フレームワーク906(例えば、インターネットなどのグローバル通信ネットワーク)を含む。
通信を、有線(光ファイバを含む)および/または無線技術を介して容易にすることができる。クライアント902は、クライアント902にローカルな情報(例えば、クッキーおよび/または関連するコンテキスト情報)を格納するのに使用できる1つまたは複数のクライアントデータストア908に動作可能に接続される。同様に、サーバ904は、サーバ904にローカルな情報を格納するのに使用できる1つまたは複数のサーバデータストア910に動作可能に接続される。
上で説明したものは、様々な実施形態の例を含む。もちろん、実施形態の説明のためにコンポーネントまたは方法の全ての考えられる組合せを記述することは不可能であるが、当業者は、多数のさらなる組合せおよび置換が可能であることを認識するであろう。したがって、この詳細な説明は、添付の特許請求の範囲の趣旨および範囲に含まれる全てのそのような代替形態、修正形態、および変形形態を含むことが意図されている。
具体的には、説明したコンポーネント、デバイス、回路、システム、および類似物によって実行される様々な機能に関して、上記コンポーネントを説明するのに使用された用語(「手段」への言及を含む)は、特に示されていない限り、開示された構造と構造的に同等でない場合であっても説明されたコンポーネントの指定された機能を実行し(例えば、機能的同等物)、本明細書で示される実施形態の例示的態様の機能を実行する、全てのコンポーネントに対応することが意図されている。これに関して、実施形態が、システム、ならびに様々な方法のアクトおよび/またはイベントを実行するためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体を含むことも認識されよう。
さらに、特定の特徴が、複数の実施態様の1つのみに関して開示されていることがあるが、そのような特徴を、任意の所与のまたは特定の応用について望まれ、有利である他の他の実施態様の1つまたは複数の他の特徴と組み合わせることができる。さらに、用語「含む(includes)」、「含んでいる(including)」、およびその変形が、この詳細な説明または特許請求の範囲のいずれかで使用される範囲において、これらの用語は、用語「備えている(comprising)」と同様に包含的であるように意図されている。
Claims (20)
- ネットワークデータストレージアズアサービスを提供するシステム(100)であって、
データストレージの構造を定義するストレージモデルを含むデータストア(104)と、
前記データストアとの間での情報交換を容易にすることができるRESTインターフェース(106)と、
データストレージモデルと、該データストレージモデルとは異なるEDM概念モデルとの間を相互に関連付けることができるマッピングコンポーネント(102)と
を備えたことを特徴とするシステム(100)。 - 前記データストレージモデルは、効率的なストレージスキーマを含むことを特徴とする請求項1に記載のシステム。
- 前記EDM概念モデルは、豊富で非常に表現的なEDMスキーマを含むことを特徴とする請求項1に記載のシステム。
- 前記データストアは、インターネットのデータストアであり、前記ストレージモデルは、インターネットスケールデータベースのストレージモデルであることを特徴とする請求項1に記載のシステム。
- 前記データストアは、イントラネットのデータストアであり、前記ストレージモデルは、構造化クエリ言語(SQL)データベースストレージモデルであることを特徴とする請求項1に記載のシステム。
- 前記RESTインターフェースおよび前記マッピングコンポーネントによって、前記データストアと対話することができるクライアントアプリケーションをさらに備えたことを特徴とする請求項1に記載のシステム。
- 前記クライアントアプリケーションは、前記RESTインターフェースによって前記EDM概念モデルに従って前記データストアと対話することを特徴とする請求項6に記載のシステム。
- 前記データストアは、前記RESTインターフェースによって前記ストレージモデルに従って前記クライアントアプリケーションと対話することを特徴とする請求項6に記載のシステム。
- 商業的に利用可能なデータベースサービスのプラットフォームを提供するための方法(700)であって、
EDMデータ構造と非常にスケーラブルなストレージモデリング構造との間で変換すること(702)と、
RESTインターフェースによってウェブスケールネットワーク上で非常にスケーラブルなデータ構造でモデリングされたデータストアを公開すること(704)と、
様々なアクセスのレベル、該アクセスのサポート、またはその両方を、少なくともアクセスのレベル、サポート、またはその両方に対応する報酬のレベルで提供すること(706)と
を含むことを特徴とする方法(700)。 - 前記データストアにアクセスするための消費者対応のアプリケーションユーザインターフェース、または前記データストアにアクセスするための直接アクセスRESTスタイルのAPIインターフェース、あるいはその両方を提供することをさらに含むことを特徴とする請求項9に記載の方法。
- ネットワークデータストレージアズアサービスを提供するための方法(500)であって、
エンティティデータモデル(EDM)特性表現によって表されたアプリケーション概念モデルを受信すること(502)と、
前記EDM特性表現とストレージ特性表現フォーマットとの間の相互関係をマッピングすること(508)と、
データストア内のデータとのステートレスで統一的なインタラクションを可能にするREST(representational state transfer)インターフェースを提供すること(506)と
を含むことを特徴とする方法(500)。 - 前記アプリケーション概念モデルに関連するデータを記憶するためのウェブスケールネットワークデータストアを提供することをさらに含み、前記データストアは、前記ストレージ特性表現フォーマットに従って構造化されていることを特徴とする請求項11に記載の方法。
- クエリに応答して前記ストアからデータを送信することをさらに含むことを特徴とする請求項11に記載の方法。
- エンティティは、前記アプリケーション概念モデルに関連するアプリケーションに有用な形であることを特徴とする請求項12に記載の方法。
- 前記EDMは、Entity型、Entityインスタンス、もしくはEntityセット、Relationship型、Relationshipインスタンス、もしくはRelationshipセット、またはAction型、Actionインスタンス、もしくはActionセット、あるいはその組合せのうちの少なくとも1つを指定することを特徴とする請求項11に記載の方法。
- 前記EDM特性表現によって定義されるEDMスキーマを、前記データストア内のデータとの対話に適用することをさらに含むことを特徴とする請求項12に記載の方法。
- 前記データストア内のデータとの前記対話に適用される前記EDMスキーマとは別個の前記データストア用のストレージスキーマを定義することをさらに含むことを特徴とする請求項15に記載の方法。
- 前記データストア内のデータとの前記対話に適用される前記EDMスキーマと前記データストア用の前記ストレージスキーマとの間の相互関係をマッピングすることをさらに含むことを特徴とする請求項16に記載の方法。
- 前記ストレージスキーマは、前記EDM特性表現によって定義される前記EDMスキーマとは別個のEDMスキーマであることを特徴とする請求項16に記載の方法。
- 前記ストアから送信される前記データは、JSON(java(登録商標)script object notation)、RDF(resource description framework)またはPOX(plain old eXtensible mark−up language)、あるいはその組合せを含むデータ表現フォーマットによって特徴付けられることを特徴とする請求項12に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/675,933 US20080201234A1 (en) | 2007-02-16 | 2007-02-16 | Live entities internet store service |
PCT/US2008/054224 WO2008101237A1 (en) | 2007-02-16 | 2008-02-18 | Live entities internet store service |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010519625A true JP2010519625A (ja) | 2010-06-03 |
JP2010519625A5 JP2010519625A5 (ja) | 2011-04-07 |
Family
ID=39690558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009550166A Ceased JP2010519625A (ja) | 2007-02-16 | 2008-02-18 | ライブエンティティインターネットストアサービス |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080201234A1 (ja) |
EP (1) | EP2122514A4 (ja) |
JP (1) | JP2010519625A (ja) |
CN (1) | CN101617311A (ja) |
WO (1) | WO2008101237A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080201338A1 (en) * | 2007-02-16 | 2008-08-21 | Microsoft Corporation | Rest for entities |
US8375358B2 (en) * | 2008-01-30 | 2013-02-12 | International Business Machines Corporation | Automatically generating rest clients from rest 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 |
US9934029B2 (en) * | 2009-12-15 | 2018-04-03 | Teradata Us, Inc. | Annotation driven representational state transfer (REST) web services |
US8825745B2 (en) | 2010-07-11 | 2014-09-02 | Microsoft Corporation | URL-facilitated access to spreadsheet elements |
US10546057B2 (en) * | 2011-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Spreadsheet program-based data classification for source target mapping |
JP5867208B2 (ja) * | 2012-03-16 | 2016-02-24 | 富士通株式会社 | データモデル変換プログラム、データモデル変換方法およびデータモデル変換装置 |
US9183265B2 (en) * | 2012-06-12 | 2015-11-10 | International Business Machines Corporation | Database query language gateway |
CN102891863A (zh) * | 2012-11-07 | 2013-01-23 | 曙光信息产业股份有限公司 | 数据读写方法 |
US10360232B2 (en) * | 2013-07-08 | 2019-07-23 | Sap Se | Semantic mapping of data from an entity-relationship model to a graph-based data format to facilitate simplified querying |
US10223326B2 (en) * | 2013-07-31 | 2019-03-05 | Oracle International Corporation | Direct access persistent memory shared storage |
US9703814B1 (en) | 2013-10-15 | 2017-07-11 | Amazon Technologies, Inc. | Local key-value database synchronization |
US9330271B1 (en) | 2013-10-15 | 2016-05-03 | Amazon Technologies, Inc. | Fine-grained access control for synchronized data stores |
US9235609B1 (en) | 2013-10-15 | 2016-01-12 | Amazon Technologies, Inc. | Local emulation of distributed key-value data store |
CN104717179B (zh) * | 2013-12-13 | 2018-01-30 | 中国移动通信集团河南有限公司 | 一种通信业务的处理方法及装置 |
CN106550005A (zh) | 2015-09-23 | 2017-03-29 | 伊姆西公司 | 用于处理rest软件架构中的媒体类型的方法和装置 |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
CN109034382A (zh) * | 2017-10-30 | 2018-12-18 | 上海寒武纪信息科技有限公司 | 场景或物体的识别方法及相关产品 |
WO2024076405A1 (en) * | 2022-10-06 | 2024-04-11 | Oracle International Corporation | Framework and method for consistent cross-tier data validation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277726A (ja) * | 2005-03-28 | 2006-10-12 | Microsoft Corp | データベース・オブジェクトへのファイル・システム・モデルのマッピング |
Family Cites Families (39)
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 |
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 |
US6721747B2 (en) * | 2000-01-14 | 2004-04-13 | Saba Software, Inc. | Method and apparatus for an 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 |
WO2002021259A1 (en) * | 2000-09-08 | 2002-03-14 | The Regents Of The University Of California | Data source integration system and method |
US6957230B2 (en) * | 2000-11-30 | 2005-10-18 | Microsoft Corporation | Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values |
AU2002317119A1 (en) * | 2001-07-06 | 2003-01-21 | 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 |
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 |
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 |
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 |
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 |
US7502760B1 (en) * | 2004-07-19 | 2009-03-10 | Amazon Technologies, Inc. | Providing payments automatically in accordance with predefined instructions |
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 |
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 |
US20060294042A1 (en) * | 2005-06-23 | 2006-12-28 | Microsoft Corporation | Disparate data store services catalogued for unified access |
US9088518B2 (en) * | 2007-01-25 | 2015-07-21 | Hewlett-Packard Development Company, L.P. | Web services and telecom network management unification |
-
2007
- 2007-02-16 US US11/675,933 patent/US20080201234A1/en not_active Abandoned
-
2008
- 2008-02-18 CN CN200880005232A patent/CN101617311A/zh active Pending
- 2008-02-18 WO PCT/US2008/054224 patent/WO2008101237A1/en active Application Filing
- 2008-02-18 EP EP08730095A patent/EP2122514A4/en not_active Withdrawn
- 2008-02-18 JP JP2009550166A patent/JP2010519625A/ja not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006277726A (ja) * | 2005-03-28 | 2006-10-12 | Microsoft Corp | データベース・オブジェクトへのファイル・システム・モデルのマッピング |
Also Published As
Publication number | Publication date |
---|---|
WO2008101237A1 (en) | 2008-08-21 |
US20080201234A1 (en) | 2008-08-21 |
CN101617311A (zh) | 2009-12-30 |
EP2122514A1 (en) | 2009-11-25 |
EP2122514A4 (en) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010519625A (ja) | ライブエンティティインターネットストアサービス | |
US9940341B2 (en) | Apparatus and method for web marketing tools for digital archives—web portal advertising arts | |
JP5592505B2 (ja) | トピックに基づいて調整可能なデーター・フィードの総計 | |
CN101093497B (zh) | 文档管理服务器、文档管理方法及管理文档使用的系统 | |
US9298747B2 (en) | Deployable, consistent, and extensible computing environment platform | |
JP5559140B2 (ja) | 計算環境の表現 | |
US7487191B2 (en) | Method and system for model-based replication of data | |
JP2020521209A (ja) | プラグイン関数プラットフォームおよび方法 | |
JP2010519624A (ja) | エンティティ向けrest | |
US20020069192A1 (en) | Modular distributed mobile data applications | |
JP2005259138A (ja) | 非統合ツールの統合アーキテクチャ | |
JP2006114045A (ja) | スキーマデータ(schemadata)からデータ構造へのマッピング | |
JP2006107446A (ja) | ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法 | |
JP2006505872A (ja) | 単一のインターフェイスからのデータの多重階層を管理するための手法 | |
US11574025B2 (en) | Systems and methods for managed asset distribution in a distributed heterogeneous storage environment | |
US20080120597A1 (en) | Systems and methods for context-based content management | |
Kumar et al. | Modern Big Data processing with Hadoop: Expert techniques for architecting end-to-end Big Data solutions to get valuable insights | |
US20120110029A1 (en) | Data model for service architecture | |
Lebo et al. | Walking into the future with PROV Pingback: An application to OPeNDAP using Prizms | |
JP2003044469A (ja) | 文書ファイル管理システム | |
JP2002251311A (ja) | コンテキストデータ生成・利用方法、プログラム及び記録媒体 | |
Tran | Migrate to GraphQL-Rethinking application development | |
Jánki et al. | Standardized Telemedicine Software Development Kit with Hybrid Cloud Support | |
WO2024039562A1 (en) | Sharing events and other metrics in native applications | |
Beauchemin | Essential Ado. Net |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110210 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110210 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120928 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20130125 |