CN101617311A - 现实实体因特网存储服务 - Google Patents
现实实体因特网存储服务 Download PDFInfo
- Publication number
- CN101617311A CN101617311A CN200880005232A CN200880005232A CN101617311A CN 101617311 A CN101617311 A CN 101617311A CN 200880005232 A CN200880005232 A CN 200880005232A CN 200880005232 A CN200880005232 A CN 200880005232A CN 101617311 A CN101617311 A CN 101617311A
- Authority
- CN
- China
- Prior art keywords
- data storage
- data
- edm
- storage
- model
- 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
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
背景
近来提供软件作为服务的趋势导致了将存储作为服务的若干个鲜明的示例。现今存在两个众所周知的将存储作为服务的示例,向诸如照片管理站点等应用程序提供存储。照片管理站点使用户能够上传、管理、用超文本标记语言(HTML)链接、下载和用电子邮件收发照片或其它数据文件。这些存储服务中的第一集合提供了用于跨因特网存储远程数据的文件系统级编程模型。然而,该模型几乎不具有强查询能力,而仅在应用级提供与数据库最小限度的交互并且不满足许多数据库程序人员的要求。作为服务的存储的第二常见集合提供了可以桥接文件系统级编程模型和现代程序员的需要之间的缺口的某些基本的概念建模能力,然而具有这种存储服务的应用编程接口(API)的形式通常采用域专用的形式,这会限制该服务的能力。一般而言,作为服务的现代存储体系结构所提供的编程模型和现代数据库程序员的需求之间存在重大的缺口。
通常,数据库程序员要求具有允许他们创建通用应用程序的前端的灵活的存储服务。文件系统级服务可以提供为底层存储实现提供灵活性的特征集。此外,它们通常允许客户机实体每次写、读和删除达5千兆字节(GB)的不受限数目的对象。诸如上述照片共享站点等通用应用程序服务已经开始使用这些服务。然而,这些服务受限于它们不提供到统一的前端应用程序的复杂性。其它作为服务的存储体系结构采用了更为复杂的前端服务,但是发展成了提供类型专用的API,这可能限制它们作为通用存储服务体系结构的总体效率。就此,程序人员仍然能够受益于有待开发的用于大规模数据库编程存储服务的新方法。
概述
以下提出了所要求保护的主题的简化概述以提供对所要求保护的主题的某些方面的基本理解。本概述并不是对所要求保护的主题的全面综述。它既不旨在标识所要求保护的主题的关键或重要的元素,也不描绘所要求保护的主题的范围。其唯一目的是以简化的形式来介绍所要求保护的主题的一些概念,作为稍后呈现的更为详细的描述的前序部分。
此处公开并要求保护的主题在其各个方面提供了作为高度可表达的概念体系结构和高度可伸缩的因特网类型的数据存储体系结构之间的中介的数据存储配置。该系统可以包括通过代表性状态传输(REST)接口来方便两个或更多这种数据建模体系结构之间的信息交换的映射组件。通过提供这种交换,对远程因特网类型的数据存储的查询可以用高度可表达的概念格式来发送,而无需展示远程数据存储的结构。因此,该数据存储配置可以提供丰富的数据访问环境,而同时维护诸如服务器、数据库等存储资源的可伸缩性。
根据所要求保护的主题的另一些方面,在该数据存储系统上提供了统一接口,从而以统一的方式呈现用于展示数据的一致的、基于模型的机制。所支持的是足够强大来以其构建通用应用程序的查询能力。这种接口可以提供成熟的消费者就绪应用程序接口(例如网站等)、专业的基于REST的API接口(诸如网站开发者、数据库设计者等)、或其组合。
根据所要求保护的主题的其它方面,公开了使用户能根据实体数据模型(EDM)来定义模式的在线的因特网规模的系统。该系统还管理在远程数据存储处存储信息的方式,该方式独立于用户所创建的EDM模式。这种系统另外可以部署在大规模专用内联网中以用于专用的丰富存储和应用程序服务。
以下描述和附图详细阐明了所要求保护的主题的某些说明性方面。然而,这些方面仅指示了可采用所要求保护的主题的原理的各种方法中的几种,且所要求保护的主题旨在包括所有这些方面及其等效方面。当结合附图考虑以下所要求保护的主题的详细描述时,所要求保护的主题的其它优点和区别特征将变得显而易见。
附图简述
图1示出了根据所要求保护的主题的一方面的将无状态的统一的REST接口与高度可伸缩的因特网类型的数据存储进行映射的系统。
图2描绘了根据本发明的各方面的用于结合高度可伸缩的因特网类型的数据存储来构建通用应用程序的可表达查询结构。
图3描绘了根据本发明的各方面的在高度可表达EDM建模模式与高度可伸缩的数据存储模型之间进行映射的系统。
图4示出了结合本发明的一方面的提供可变的数据存储的支持级的示例性服务协议。
图5描绘了根据所要求保护的主题的各方面的用于提供高度可表达的建模环境而同时维护因特网类型的数据存储的可伸缩性的示例方法。
图6示出了根据此处所描述的各方面的用于管理web类型的数据存储和EDM应用程序建模环境之间的接口的示例性方法600。
图7描绘了根据本发明的各方面的用于提供市场上可购买到的服务平台的示例方法。
图8示出了足以支持高度可表达的应用程序概念模型和高度可伸缩的数据存储模型之间的接口的示例联网环境。
图9描绘了根据本发明各方面的示例性计算环境。
详细描述
现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的要素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其它情况下,以框图形式示出了公知的结构和设备以便于描述所要求保护的主题。
如在本申请中所使用的,术语“组件”、“模块”、“系统”、“接口”、“实体数据模型”等一般旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、对象、可执行码、执行的线程、程序和/或计算机。作为说明,运行在控制器上的应用程序和控制器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。作为另一示例,接口可以包括I/O组件以及相关联的处理器、应用程序和/或API组件,并且可以如同命令行一样简单或可以是更为复杂的集成开发环境(IDE)。
此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。在此使用的术语“制品”旨在涵盖可以从任何计算机可读设备、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如,卡、棒、钥匙驱动器……)。另外应该明白,可以采用载波来承载计算机可读电子数据,例如那些用于传送和接收电子邮件或用于访问如因特网或局域网(LAN)等网络的数据。当然,本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的前提下可以对这一配置进行许多修改。
此外,在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。相反,使用词语示例性旨在以具体的方式呈现各个概念。如本申请中所使用的,术语“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或从上下文可以清楚,否则“X使用A或B”意指任何自然的包括性排列。即,如果X使用A;X使用B;或X使用A和B两者,则在任何以上情况下,都满足“X使用A或B”。另外,本申请中和所附权利要求书中所使用的冠词“一”和“一个”一般应被解释为是指“一个或多个”,除非另有指定或从上下文可以清楚指的是单数形式。
如在此所使用的,术语“推断”或“推论”通常是指从经由事件和/或数据捕捉的一组观察结果中推断或推理系统、环境和/或用户的状态的过程。例如,推断可用于标识特定的上下文或动作,或可生成状态的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑计算所关注状态的概率分布。推断也可以指用于从一组事件和/或数据合成更高级事件的技术。这类推断导致从一组观察到的事件和/或储存的事件数据中构造新的事件或动作,而无论事件是否在相邻时间上相关,也无论事件和数据是来自一个还是若干个事件和数据源。
现在参考图1,示出了根据所要求保护的主题的一方面的将无状态的统一的REST接口映射到高度可伸缩的因特网类型的数据存储的系统100。映射组件102可以是能够在高度可表达的概念应用程序环境和数据存储环境之间进行转换的计算机相关的实体。应该理解,映射组件102可以是数据存储、客户机应用程序或组件、分开的中间组件、或其组合的子集。数据存储环境可以是任何合适的存储模式,包括关系模式(例如SQL数据库服务器)或高度可伸缩的因特网类模式。概念应用程序环境可以是用于以高度可表达的格式对数据建模而无需指定如何在存储环境中构造数据的任何合适的环境。
作为向系统100提供上下文的一个示例但不限制系统100,概念数据建模环境可以按照诸如个人、公司或一类人或公司等真实世界实体来表示数据。例如,消费者可以是真实世界实体,而这种消费者可以是人类、公司、政府等。因此,映射组件102可以在数据存储环境和实体数据模型(EDM)编程环境(例如类似于.NET品牌框架中展示的客户机查看引擎)之间进行接口。此外,映射组件102可以方便EDM模型环境和高度可伸缩的因特网类存储结构之间的信息交换(在下文讨论)。
EDM编程环境可以是对数据进行建模的正式方式,其中其显式地定义诸如以上指定的真实世界消费者等实体。此外,EDM可以指定实体的特定实例(实体实例可以被称为实体),并将该实例与实体类型相关联,并且将其与其它特定实例一起分组在实体集内。EDM所使用的这一结构允许独立于数据存储结构的高度可表达的数据建模环境。实体(实例)因此可以与实例类型具有特定的关系,并且也可以与EDM的其它方面有关系。
实体类型可以具有可在实体类型或与一类型相关联的实体实例之间进行区分的属性。属性因此可用于从一组EDM数据中过滤出另一组EDM数据。属性的示例可以包括与一实体类型或实例相关联的‘名称’、‘地址’、‘电话号码’、‘电子邮件’等。在多数真实世界应用中,各实体与其它实体相关。EDM可以用关系的观念来包括这一概念,这可以表达一个实体和另一个之间的关联。
系统100可以提供使用诸如EDM等概念模型的应用程序和使用结构化存储模型的数据库之间的桥接。通常,计算机数据库应用程序提供用于组织和呈现与特定的上下文相关的数据的某种接口和结构。作为示例,为了帮助定义一特定新产品的潜在市场,营销应用程序可访问有关成本、需求和与类似产品相关的购买历史的数据。为此,这一应用程序可以访问例如存储在关系型数据、结构化查询语言(SQL)数据库等中的数据的编译,并以例如表示所需成本、需求和购买历史信息的方式来组织该数据。这种数据库查询语言可以指定其中可存储特定的数据的虚拟电子表格中特定‘数据块’的行、列和/或名称。虽然这种结构对于存储数据会是高效的,但是对在应用程序中表示数据不总是高效的。
相反,EDM可以创建允许在更高抽象层描述数据的分层体系结构。例如,EDM方法可以较少地关注与系统相关的结构化细节,而更多地关注数据自身的结构和语义特征,如数据建模者(例如网站、数据库、API开发者等)所见的。当编写数据库应用程序时,用于标识并访问数据的概念模式(例如基于EDM模式)可以更为高效。例如,就先前的营销概念而言,假设数据指示新‘牙刷’(实体实例,在该情况下是产品)可以‘支持’(关系)‘1亿美金’的市场(实体实例或导航特性)。对于应用程序程序员而言,按照其中关注的是应用程序这些实体而非按照数据库的行或列来查询数据库会高效地多。映射组件102可以通过在高度可表达的数据建模环境和数据存储环境之间进行转换来允许编程人员恰恰这么做。
除了以上所述的之外,映射组件102可以包含更为复杂的EDM体系结构。一个示例是除了关系实体之外包含动作类型的实体。这些动作可以用EDM术语来表达(例如,将EDM模式中的实体指定为动作类型、动作实例和/或动作集合),并且可以被映射到数据存储中的实际实现。当使用动作时,诸如“开始营销活动”等情况可以定义与顾客动作相关的参数。这种动作可以用URI以类似于调用关系的方式(如下所述)来调用。另一示例是通用同步体系结构,其中应用程序不仅可以跨诸如因特网等web规模的网络来访问信息,还可以将其与诸如SQL服务器等本地存储进行同步。实际上,这种同步可以在数据库之间提供离线操作模式。除传统客户机-服务器复制之外,可以支持对等复制,以允许用携带具有实体的EDM存储的多个对等体来创建应用程序,形成在存储配置随时间同步变更时收敛的网状存储。
数据存储104可以是具有根据高效的存储体系结构来组织的数据的一个或多个物理或虚拟存储设备。这种存储体系结构可以包括关系模式或可以包括允许用于诸如因特网等巨大的web类型的网络的高度可伸缩且可管理的环境的因特网类模式。系统100还可以包括代表性状态传输(REST)接口106,从而提供用于向数据存储104和从数据存储104交换信息的无状态且统一的系统。
一般而言,系统100中所包括的REST传输模型可以包括已证明对大规模联网环境有效的若干特征。示例包括无状态组件交互、分层组件体系结构、客户机和服务器侧高速缓存、以及统一组件接口。无状态交互指定每一查询和/或响应必须包含完成与其相关的信息传输所需的所有信息。因此,不需要组件记住与其它组件的先前交互,从而释放了存储器和处理资源以用于附加交互。虽然这样的系统能增加重复的请求,但是客户机和服务器侧高速缓存可以通过在组件处存储该组件的先前传输来帮助减轻这种重复请求所引起的资源需求。此外,分层组件体系结构对系统复杂度设置了上限并提升了组件独立性,而统一组件接口对在因特网或大规模内联网应用程序中常见的大粒度超媒体数据传输(例如,诸如视频、音频等大数据文件)而言是理想的。应该理解,REST接口106可以包括这些特征的一些或全部以及方便大规模联网环境中的数据传输的附加特征。通过将REST接口106与映射组件102和数据存储104结合,系统100可以向一个或多个数据存储提供合乎需要的EDM编程接口,而同时在这些数据存储处提供高度的效率和可伸缩性。
参考图2,示出了结合允许与其进行直观概念交互的数据存储204(例如关系模型或高度可伸缩的因特网类型的模型)来利用可表达查询结构202的系统。系统200可以包括结合REST接口206来帮助容易地构建到应用程序的接口的开发工具(例如,诸如活动服务器页面[ASP]及后续技术以及与.NET品牌框架相关联的其它技术等工具)。客户机应用程序206可以是可利用REST接口208通过因特网或大规模内联网来访问数据存储204的任何合适的框架,例如被称为AJAX的异步java脚本和可扩展标记语言(XML)。系统200可以通过将客户机应用程序206(例如AJAX等)与映射组件210进行接口来扩展该客户机,从而经由REST接口208给予对EDM存储(例如,如上所述,由映射组件210映射到EDM格式的数据存储204)的直接访问。因此,用户(例如web开发者等)无需为客户机应用程序206和数据存储204之间的每一交互(例如,创建、检索、更新、删除(CRUD)操作)创建分开的web服务。
数据存储204可以由映射组件210映射到EDM实体,该EDM实体接着可以通过REST接口208作为具有稳定URI的资源来展示。这些URI随后将反映数据存储204上的但是以EDM模式来描述的资源存储。因此,可表达查询结构202可以采用以URI名字空间的形式来构造的web式的传输协议(例如HTTP协议等)的形式。这种结构可以根据EDM模式定义数据存储204上的资源。因此,可表达查询结构202可以利用高度可表达的熟悉的结构(例如URI查询结构)来提供与关系或高度可伸缩的因特网类数据库进行交互的手段。可表达查询结构202的一个示例基于URI的格式是:
<base URI>/<entity container refx
file>[/<entityset>[/<entitykey>[/<association navigation
property>]]]?<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/CustomersfCompanyName =″Company One″]。
“基本URI(base URI)”可以指向可以主存实体环境(例如实体框架)和REST扩展的web服务器/目录。“refx文件(refx file)”(在下文中更详细讨论)表示到存储/容器(例如数据存储204)的连接;实体集(entityset)、实体键(entitykey)、以及导航属性(navigation property)是常规的EDM构成。选项(options)可以包括数据表示,并且将在下文中更详细地讨论。
系统200可以提供用于定制应用程序的统一接口,无论是对简单的还是复杂的逻辑操作。某些客户机应用程序206仅引用大多数操作的数据(例如只读应用程序),而其它应用程序使用更加密集的业务逻辑操作(例如数据创建、修改、分析、编译等)来交互。在前一种情况下,开发者通常创建用作到数据库的网关的web服务进入点或定制应用程序,而不在其上附加行为或策略。其它应用程序是策略密集的,并且在服务器侧分配特定的策略和行为。系统200可以帮助统一这些应用程序。首先,它通过映射组件210和REST接口208来消除对简单的独立网关的需求,映射组件210和REST接口可以在不附加特殊策略或行为的情况下提供到数据存储204的直接传输。对于需要更多业务逻辑的情况,系统200可以提供可以被迭代地定制的简单开始点。存在可以在展示为EDM存储的数据存储204周围附加行为并描述策略的各种机制(例如通过映射组件210,如上所述)。
上述可表达查询结构202(例如基于URI的查询)可以使用担当所展示的EDM模式的描述符的‘refx’文件。这种文件可以至少指向可描述EDM模式到存储模式的映射结构的映射组件206的一部分(例如,指向数据库以及指向与其相关联的元数据文件)。此外,可表达查询结构202可以控制所展示的数据的各方面。例如,用户可以控制数据存储204的每一实体集(例如,通过映射组件206来表征的那些)是可访问的、只读的、还是可读写的。
系统200还可以通过可表达查询结构202来提供控制数据库行为的机制。这种行为(例如可以分析并拒绝或标志可疑数据的安全检查)可以与可表达查询结构202中所引用的实体类型相关联。具体地,可以根据EDM结构提供对作为实体框架对象(例如.NET品牌对象)的实际实体/查询和表示到数据存储204的进入点的“ObjectContext(对象上下文)”项的访问。作为行为的一个示例,以下是当‘产品(product)’实体实例被写入‘诸产品(products)’实体集时所激活的C#函数。该函数可以例如检查数据存储204的其它部分,并接着可以中止‘产品’创建或更新操作并标志这一操作:
Public static void ReceiveProduct(Northwind ctx,Product product){
//获取该产品的类别
product.CategoryRef.Load();
Category category=product.Category;
//获取具有在+/-10%范围以外的价格的各产品
var q=from p in category.Products.Source
where p.UnitPrice>(products.UnitPrice*1.1m)||
p.UnitPrice<(product.UnitPrice*0.9m)
select p;
//查看是否有任何匹配,并且如果有就记录名称
string products=″″;
foreach(NorthwindLib.Product p in q){
products+=p.ProductName+″;″;
}
//如果需要则产生出错
if(products!=″″)throw new Exception(
″Product prices can′t vary more than+/-10%within a category,″+
″the following products are outside of that range:″+products)
应该注意,该示例C#代码中所示的方法是程序性方法,并且可以结合系统200来实现,其中数据存储204表示内联网(例如大规模公司网络环境)上的关系数据存储或SQL数据存储。对于因特网规模的应用程序,可以使用声明性策略示例。
除上述URI模型之外,系统200还经由可表达查询结构202支持其它查询方法。虽然开发者通常可以使用URI来发现特定数据存储内什么可用,但是应用程序用户一般会使用各种过滤器或准则来查询和/或搜索。因此,可表达查询结构202还可以通过客户机应用程序206来支持基于过滤器和/或准则的搜索。这种基于准则的搜索的一个示例是资源描述框架(RDF)查询语言RQL和SPARQL。这种RDF查询语言就表达性而言非常宽泛,并且在行业中被广泛接受。
基于过滤器的搜索查询还可以包括SQL语言的EDM结构化方言,其被称为实体SQL(EntitySQL)。可表达查询结构202可以支持由实体SQL(eSQL)语言所指定的‘查询分段’以执行基于过滤器的搜索。作为另一示例,对URI中串的查询可以指向被称为‘顾客(customers)’的实体集,并且仅返回具有与其相关联的特定属性的‘顾客’的实例。例如,属性‘国家(country)’为阿根廷(Argentina)的过滤器可表现如下:
http://entities.live.com/refx/northwind/refx/Customers?where=it.Country=Argentina
可表达查询结构202还可以进一步支持e-SQL分段构造。例如,EDM导航属性可用于在实体关系之间进行区分。更具体地,请求具有超过10个订单的‘顾客’实例的示例可以是“COUNT(it.SalesOrders)>10”。结构化查询语言202的另一具体示例可以是Xpath,一种适用于查询图的简单的公知查询语言(例如,在查询具有关系的EDM模式时所使用的)。此外,支持将POST请求用于查询,其中查询是净荷(例如查询消息,而非其上附加的信息)。可表达查询结构202因此可以避免与将查询语言嵌入到URI中相关联的问题。
现在参考图3,描绘了根据本发明的各方面的提供客户机应用程序304和数据存储306之间的接口的系统300,其中数据可以用特定的数据净荷格式传送。如上所述,映射组件302可以提供使用EDM模式的客户机应用程序304和使用存储模式的数据存储306之间的接口。数据存储306可以具有由可用于例如大规模内联网类型的网络(例如公司网络)的关系模式(例如SQL服务器)或可用在例如因特网上的特殊的高度可伸缩的因特网类存储模式所定义的结构。客户机应用程序206可以使用可表达概念格式来对数据建模,并使用相关的概念格式以与数据库交互(例如如上关于图2的可表达查询结构202所述的EDM格式)。REST接口308提供了客户机应用程序和数据存储可以通过其在大规模远程网络上通信的平台,并且可以支持诸如EDM等模式。然而,REST一般不指定用来呈现数据的特定格式,其它机制提供这一数据格式。
系统300可以包括如附图标记300所示的净荷格式或数据表示格式,以指定在客户机应用程序302和数据存储304之间传送的数据。示例包括普通老式XML(POX)、丰富站点摘要(RSS)、java脚本注释(JSON)、资源描述框架(RDF)、ATOM等。每一数据净荷格式可以具有不同的显示数据的格式,但它们一般是相似的。以下包括了POX、JSON和RDF的示例。
作为一个示例,假设具有‘ALFKI’键的特定实体实例属于‘顾客’实体类型。对如此指定的EDM查询的JSON结构的回复可以基本上与以下相类似地出现:
http://entities.live.com/refx/northwind.refx/Customers/ALFKI?responseType=text/
json
{
′_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′}
};
注意客户机应用程序302只需要经由REST接口312以可表达的EDM格式来指定查询。映射组件能以与客户机应用程序302(例如消费者或应用程序顾客等)所使用的模式无关的模式,来自动地管理在数据存储304处存储信息的实际方式。POX格式的同一查询可以基本上与以下相类似地出现:
<Customer>
<CustomerID>ALFKI</CustomerID>
<CompanyName>Alfreds Futterkiste</CompanyName>
<ContactName>Maria Anders</ContactName>
<City>Berlin</City>
<Country>Germany</Country>
<SalesOrders href=″Customers/ALFKI/SalesOrders″/>
</Customer>
而用RDF格式:
<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>
参考图4,提供了消费者402和服务提供者404之间的示例服务级协议400以及可以在各协议(例如410到420)之间进行区分的策略的图示。服务级协议400提供了尤其可以在可表达查询模式和数据存储模式(例如,关系模式、高度可伸缩的因特网类型的数据存储模式、或其它数据库存储模式)之间进行相关的数据存储服务。这种服务可以独立于客户机系统所使用的可表达模式(例如EDM模式等)来自动地管理数据存储模式。此外,如上所述,存储服务可以支持各种净荷表示格式。另外,可以使映射服务在因特网或大规模内联网络(例如大规模公司内联网)上可用。
还描绘了用其构造服务级协议的示例服务级协议策略。一种策略可以是例如最低成本条件下的尽力410策略。尽力策略可以提供基本级别的服务,例如在可表达查询模式和数据存储模式之间进行相关的映射服务,但是不提供特定质量保证(例如支持、备份、恢复、可用性等)。作为示例示出,尽力策略410可以是消费者404和数据映射服务提供者406之间的许可证,该许可证允许消费者404例如以极少的费用并自担风险来使用数据映射服务,而数据映射服务提供者406一方没有其它义务。备份/恢复策略412可以是比尽力策略410所提供的服务更进一步的服务,包括保护消费者404所上传的数据的备份和恢复操作。服务提供者406可以创建消费者404所上传的数据的副本并且在发生问题时对其进行恢复。作为备份恢复策略412的补充或替换,数据/服务保证策略414可以提供更稳健的备份和恢复情景。这种策略可以例如备份并恢复数据,并且还保证这种数据达到服务级协议402中提供的某个值。
除上述备份和恢复服务之外,服务级协议可以提供与数据存储相关的许多附加服务。例如,服务级协议可以是基于特定存储级策略416的,以特定速率建立存储大小(例如以兆字节、千兆字节、兆兆字节等为单位)。同样,访问可用性策略418可以例如提供,数据例如可在全球范围内或在全球的指定部分内被以特定质量或以特定的服务器侧访问速度来访问的保证。作为一个示例,如果基于美国的消费者402具有存储来用于网站的数据并且期望这一数据对在日本的分支机构可用,则访问可用性策略418可以指定这样做的标准。作为另一示例,可以指定允许使用所建立的应用程序或开发工具来通过接口(例如REST接口)创建应用程序的应用程序编程接口(API)支持策略420。应该理解,图4中所提供的示例是用于创建与本发明的各方面相关的各服务级协议的上下文的,并且不应被解释为限制其它上下文。
现在参考图5,描绘了根据所要求保护的主题的各方面的用于提供高度可表达的建模环境而同时维护因特网类型的数据存储的可伸缩性的示例方法500。在502处,创建或从储存库获取作为EDM表征来表达的应用程序概念模型。概念模型可以是域专用的,并具有通过EDM可用的任何合适的形式。示例包括将虚拟或真实世界实体(例如,特别是诸如人、地点、物体、业务、位置或办公室等任何名词)表示为实体实例、类型和集合的各种定义的实体。各种所定义的关系也将实体之间发生的关联、属性或继承(例如对等关联、父子继承模型等)表示为关系实例、类型和集合。例如,如表达为EDM表征的应用程序概念模型所指定的,关系和实体可以被映射到数据存储上的特定资源存储。在504处,以数据存储格式为应用程序概念模型创建web规模的网络数据存储。另外,该数据存储格式可以是用于在数据存储(例如,公司网络中的SQL数据库、用于因特网类数据库的高度可伸缩的因特网类存储格式等)上构造数据的任何合适的格式。
可以通过web规模的网络数据存储来提供REST接口,从而将这一数据存储内的数据展示给网络上的其它组件(例如客户机组件)。REST接口可以允许与数据存储的无状态的且统一的交互,并且可方便使用EDM表征(例如使用EDM URI结构)的REST式查询结构。EDM查询可以提供用其在数据存储上执行基本CRUD操作的高度可表达的格式。在508处,在EDM概念表征和数据存储格式之间映射相关。这一相关方便以独立于通过REST接口的EDM查询的数据存储格式来管理数据存储。因此,方法500提供了高度可表达的面向概念的接口环境(例如用于编程、应用程序使用等),而同时维护为可伸缩性和效率而最优化的数据存储格式。
现在参考图6,描绘了根据此处所描述的各方面的用于管理web类型的数据存储和EDM应用程序建模环境之间的接口的示例性方法600。在602处,根据高度可伸缩的存储模型构造web规模的网络数据存储。如以上所公开的,存储模型可以是用于例如在因特网上部署的、能够存储大量数据并处理非常大的查询量的因特网类数据存储的。可选地,存储模型可以是用于在公司网络环境中部署的SQL类数据库的。在604处,在数据存储处接收根据EDM模型构造的查询。该查询可以例如指定特定域(例如实体容器)、实体类型、实体实例(例如通过实体键)、导航属性、过滤器(例如类似于上述的e-SQL过滤器)、关系类型、关系集合、关系实例等。应该理解,在附图标记604处公开的EDM查询可用于通过到数据存储的接口(例如REST接口)来以开发者/消费者友好的方式构建通用数据库应用程序。
在606处,参考数据存储模型,将查询所指定的操作应用于数据存储。以此方式,可以用独立于用来管理数据存储上的信息的模式的特定格式(例如高度可表达的EDM概念格式)来制定应用程序和/或查询模式。在608处,根据EDM模型用操作结果回复查询。例如,如果查询操作要求将数据上传到数据存储,则在附图标记608处可以返回操作成功、不成功等的指示。作为另一示例,如果查询操作请求从数据存储中检索数据,则在附图标记608处的回复将包含这一数据。此外,如上所述,该回复所指定的数据可以具有不同的格式,如净荷格式。
现在参考图7,描绘了根据本发明的各方面的用于提供可在市场上购得的服务平台的示例方法700。在702处,在EDM数据结构和存储建模结构之间执行转换。该转换可以通过例如联网服务器系统和客户机系统之间的REST接口发生。可选地,该转换可以在与数据存储设备、客户机设备或中间设备相关的系统处发生。此外,网络可以是诸如因特网或公司内联网等web规模的网络。另外,存储数据建模结构可以是高度可伸缩的存储建模结构(例如对因特网类数据存储所使用的)。在704处,通过web规模的网络(例如通过REST接口等)来展示用存储数据建模结构建模的数据存储。在706处,以变化的补偿级别来提供访问级别和/或对该访问的支持级别。支持和/或访问级别可以包括例如数据备份和恢复服务,对数据丢失的保证,以特定质量级别对数据的区域、全国或全球的可用性等。可以指定级别以适合个人消费者、小公司、大企业、政府等的需求。另外,对于支持和/或访问的补偿的级别可以至少对应于这些访问和/或支持级别本身。在708处,提供了消费者就绪应用程序用户界面。此外,在710处,可以通过REST式API接口提供对数据存储的直接访问。
现在参考图8,所示是可用于执行所公开的体系结构的示例性计算机系统的框图。为了提供用于所要求保护的主题的各方面的附加上下文,图8及以下讨论旨在提供对其中可实现所要求保护的主题的各方面的合适的计算环境800的简要概括描述。另外,尽管上述所要求保护的主题适于在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中应用,但是本领域的技术人员将认识到,所要求保护的主题也可结合其它程序模块和/或作为硬件和软件的组合来实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦合到一个或多个相关联的设备。
所示的要求保护的主题的各方面也可在其中某些任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的任一可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机访问的任一其它介质。
通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、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),该内置硬盘驱动器814还可被配置成在合适的机壳(未示出)中外部使用;磁软盘驱动器(FDD)816(例如,从可移动磁盘818中读取或向其写入);以及光盘驱动器820(例如,从CD-ROM盘822中读取,或从诸如DVD等其它高容量光学介质中读取或向其写入)。硬盘驱动器814、磁盘驱动器816和光盘驱动器820可分别通过硬盘驱动器接口824、磁盘驱动器接口826和光盘驱动器接口828连接到系统总线808。用于外置驱动器实现的接口824包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或两者。其它外部驱动器连接技术在此处所要求保护的主题所考虑的范围之内。
驱动器及其相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机802,驱动器和介质容纳适当的数字格式的任何数据的存储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘以及诸如CD或DVD等可移动光学介质,但是本领域的技术人员应当理解,示例性操作环境中也可使用可由计算机读取的任何其它类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任何这样的介质可包含用于执行本发明的方法的计算机可执行指令。
多个程序模块可储存在驱动器和RAM 812中,包括操作系统830、一个或多个应用程序832、其它程序模块834和程序数据836。所有或部分操作系统、应用程序、模块和/或数据也可被高速缓存在RAM 812中。应该明白,所要求保护的主题可以用各种市场上可购买到的操作系统或操作系统的组合来实现。
用户可以通过一个或多个有线/无线输入设备,例如键盘838和诸如鼠标840等定点设备将命令和信息输入到计算机802中。其它输入设备(未示出)可包括话筒、IR遥控器、操纵杆、游戏手柄、指示笔、触摸屏等等。这些和其它输入设备通常通过耦合到系统总线808的输入设备接口842连接到处理单元804,但也可通过其它接口连接,如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等。
监视器844或其它类型的显示设备也经由接口,诸如视频适配器846连接至系统总线808。除了监视器844之外,计算机通常包括诸如扬声器和打印机等的其它外围输出设备(未示出)。
计算机802可使用经由有线和/或无线通信至一个或多个远程计算机,诸如远程计算机848的逻辑连接在网络化环境中操作。远程计算机848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括以上相对于计算机802描述的许多或所有元件,尽管为简明起见仅示出了存储器/存储设备850。所描绘的逻辑连接包括到局域网(LAN)852和/或例如广域网(WAN)854等更大的网络的有线/无线连接。这一LAN和WAN联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN网络环境中使用时,计算机802通过有线和/或无线通信网络接口或适配器856连接到局域网852。适配器856可以便于到LAN 852的有线或无线通信,并且还可包括其上设置的用于与无线适配器856通信的无线接入点。
当在WAN网络环境中使用时,计算机802可包括调制解调器858,或连接到WAN 854上的通信服务器,或具有用于通过WAN 854,诸如通过因特网建立通信的其它装置。或为内置或为外置以及有线或无线设备的调制解调器858经由串行端口接口842连接到系统总线808。在网络化环境中,相对于计算机802所描述的程序模块或其部分可以存储在远程存储器/存储设备850中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
计算机802可用于与操作上设置在无线通信中的任何无线设备或实体通信,这些设备或实体例如有打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签相关联的任何一个设备或位置(例如,公用电话亭、报亭、休息室)以及电话。这至少包括Wi-Fi和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。
Wi-Fi,即无线保真,允许从家里沙发、酒店房间的床上或工作的会议室连接到因特网而不需要线缆。Wi-Fi是一种类似蜂窝电话中使用的无线技术,它使得诸如计算机等设备能够在室内和室外,在基站范围内的任何地方发送和接收数据。Wi-Fi网络使用称为IEEE 802.11(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3或以太网)。Wi-Fi网络在未许可的2.4和5GHz无线电波段内工作,例如以11Mbps(802.11a)或54Mbps(802.11b)数据速率工作,或者具有包含两个波段(双波段)的产品,因此该网络可提供类似于许多办公室中使用的基本10BaseT有线以太网的真实性能。
现在参考图9,所示是可用于执行所公开的体系结构的示例性计算机编译系统的示意性框图。系统900包括一个或多个客户机902。客户机902可以是硬件和/或软件(例如,线程、进程、计算设备)。客户机902可例如通过采用所要求保护的主题而容纳cookie和/或相关联的上下文信息。
系统900还包括一个或多个服务器904。服务器904也可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器904可以容纳各线程以通过例如利用所要求保护的主题来执行转换。在客户机902和服务器904之间的一种可能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。数据分组可包括例如cookie和/或相关联的上下文信息。系统900包括可以用来使客户机902和服务器904之间通信更容易的通信框架906(例如,诸如因特网等全球通信网络)。
通信可经由有线(包括光纤)和/或无线技术来促进。客户机902操作上被连接到可以用来存储对客户机902本地的信息(例如,cookie和/或相关联的上下文信息)的一个或多个客户机数据存储908。同样地,服务器904可在操作上连接到可以用来存储对服务器904本地的信息的一个或多个服务器数据存储910。
以上所描述的包括各实施例的示例。当然,出于描绘各实施例的目的而描述组件或方法的每一个可以想到的组合是不可能的,但本领域内的普通技术人员可以认识到,许多进一步的组合和排列都是可能的。因此,本详细描述旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。
特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在各实施例的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。在这一点上,也可认识到各实施例包括用于执行各方法的动作和/或事件的系统以及具有用于执行这些动作和/或事件的计算机可执行指令的计算机可读介质。
另外,尽管可相对于若干实现中的仅一个来公开一个特定特征,但是这一特征可以如对任何给定或特定应用所需且有利地与其它实现的一个或多个其它特征相组合。此外,就在说明书或权利要求书中使用术语“包括”和“含有”及其变体而言,这些术语旨在以与术语“包含”相似的方式为包含性的。
Claims (20)
1.一种提供网络数据存储作为服务的系统(100),包括:
包括定义数据存储的结构的存储模型的数据存储(104);
可方便去往和来自所述数据存储的信息交换的REST接口(106);以及
可以在所述数据存储模型和EDM概念模型之间进行相关的映射组件(102),其中所述数据存储模型和所述EDM概念模型是不同的。
2.如权利要求1所述的系统,其特征在于,所述数据存储模型包括高效的存储模式。
3.如权利要求1所述的系统,其特征在于,所述EDM概念模型包括丰富的高度可表达的EDM模式。
4.如权利要求1所述的系统,其特征在于,所述数据存储是因特网数据存储,所述存储模型是因特网规模的数据库存储模型。
5.如权利要求1所述的系统,其特征在于,所述数据存储是因特网数据存储,所述存储模型是结构化查询语言(SQL)数据库存储模型。
6.如权利要求1所述的系统,其特征在于,还包括可以通过所述REST接口和映射组件来与所述数据存储交互的客户机应用程序。
7.如权利要求6所述的系统,其特征在于,所述客户机应用程序根据所述EDM概念模型通过所述REST接口与所述数据存储交互。
8.如权利要求6所述的系统,其特征在于,所述数据存储根据所述存储模型通过所述REST接口与所述客户机应用程序交互。
9.一种用于提供在市场上可购买到的数据库服务平台的方法(700),包括:
在EDM数据结构和高度可伸缩的存储建模结构之间转换(702);
通过web规模的网络经由REST接口展示(704)用所述高度可伸缩的数据结构建模的数据存储;以及
以至少对应于访问级别、或对该访问的支持级别、或这两种级别的补偿级别来提供(706)变化的所述访问级别、支持级别、或这两种级别。
10.如权利要求9所述的方法,其特征在于,还包括提供访问所述数据存储的消费者就绪应用程序用户界面、或访问所述数据存储的直接访问REST式API接口、或两者。
11.一种用于提供网络数据存储作为服务的方法(500),包括:
接收(502)通过实体数据模型(EDM)表征来表达的应用程序概念模型;
在所述EDM表征和存储表征格式之间映射(508)相关;以及
提供(506)允许与数据存储中的数据的无状态的统一交互的代表性状态传输(REST)接口。
12.如权利要求11所述的方法,其特征在于,还包括提供用于存储与所述应用程序概念模型有关的数据的web规模的网络数据存储,所述数据存储是根据所述存储表征格式来构造的。
13.如权利要求11所述的方法,其特征在于,还包括响应于查询从所述存储传送数据。
14.如权利要求12所述的方法,其特征在于,所述实体处于对与所述应用程序概念模型相关联的应用程序有用的形式。
15.如权利要求11所述的方法,其特征在于,所述EDM指定实体类型、实体实例、或实体集合,关系类型、关系实例、或关系集合,或者动作类型、动作实例、或动作集合,或其组合中的至少一个。
16.如权利要求12所述的方法,其特征在于,还包括将所述EDM表征定义的EDM模式应用于与所述数据存储中的数据的交互。
17.如权利要求15所述的方法,其特征在于,还包括定义与应用于与所述数据存储中的数据的交互的所述EDM模式不同的、用于所述数据存储的存储模式。
18.如权利要求16所述的方法,其特征在于,还包括在应用于与所述数据存储中的数据的交互的所述EDM模式和用于所述数据存储的所述存储模式之间映射相关。
19.如权利要求16所述的方法,其特征在于,所述存储模式是与所述EDM表征所定义的EDM模式不同的EDM模式。
20.如权利要求12所述的方法,其特征在于,从所述存储传送的所述数据是由一数据表示格式来表征的,所述数据表示格式可以包括java脚本对象注释(JSON)、资源描述框架(RDF)、或普通老式可扩展标记语言(POX)、或其组合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/675,933 | 2007-02-16 | ||
US11/675,933 US20080201234A1 (en) | 2007-02-16 | 2007-02-16 | Live entities internet store service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101617311A true CN101617311A (zh) | 2009-12-30 |
Family
ID=39690558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880005232A Pending CN101617311A (zh) | 2007-02-16 | 2008-02-18 | 现实实体因特网存储服务 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080201234A1 (zh) |
EP (1) | EP2122514A4 (zh) |
JP (1) | JP2010519625A (zh) |
CN (1) | CN101617311A (zh) |
WO (1) | WO2008101237A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717179A (zh) * | 2013-12-13 | 2015-06-17 | 中国移动通信集团河南有限公司 | 一种通信业务的处理方法及装置 |
CN106550005A (zh) * | 2015-09-23 | 2017-03-29 | 伊姆西公司 | 用于处理rest软件架构中的媒体类型的方法和装置 |
CN109003132A (zh) * | 2017-10-30 | 2018-12-14 | 上海寒武纪信息科技有限公司 | 广告推荐方法及相关产品 |
Families Citing this family (18)
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 |
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 |
WO2024076405A1 (en) * | 2022-10-06 | 2024-04-11 | Oracle International Corporation | Framework and method for consistent cross-tier data validation |
Family Cites Families (40)
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 |
US7478102B2 (en) * | 2005-03-28 | 2009-01-13 | Microsoft Corporation | Mapping of a file system model to a database object |
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
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104717179A (zh) * | 2013-12-13 | 2015-06-17 | 中国移动通信集团河南有限公司 | 一种通信业务的处理方法及装置 |
CN104717179B (zh) * | 2013-12-13 | 2018-01-30 | 中国移动通信集团河南有限公司 | 一种通信业务的处理方法及装置 |
CN106550005A (zh) * | 2015-09-23 | 2017-03-29 | 伊姆西公司 | 用于处理rest软件架构中的媒体类型的方法和装置 |
US10944824B2 (en) | 2015-09-23 | 2021-03-09 | EMC IP Holding Company LLC | Method and apparatus for processing media type in rest software architecture |
CN109003132A (zh) * | 2017-10-30 | 2018-12-14 | 上海寒武纪信息科技有限公司 | 广告推荐方法及相关产品 |
US11922132B2 (en) | 2017-10-30 | 2024-03-05 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
Also Published As
Publication number | Publication date |
---|---|
JP2010519625A (ja) | 2010-06-03 |
WO2008101237A1 (en) | 2008-08-21 |
US20080201234A1 (en) | 2008-08-21 |
EP2122514A1 (en) | 2009-11-25 |
EP2122514A4 (en) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101617311A (zh) | 现实实体因特网存储服务 | |
Roman et al. | DataGraft: One-stop-shop for open data management | |
US9953296B2 (en) | System, method, and computer-readable medium for managing edge devices | |
CN1841379B (zh) | 将文件系统模型映射到数据库对象 | |
CN100565510C (zh) | 数据访问层类生成器 | |
CN105229637B (zh) | 内容集合的自动生成 | |
US8812962B2 (en) | Web service interface and querying | |
CN1828527B (zh) | 用于跨不同应用程序框架的数据服务的平台 | |
US20110283242A1 (en) | Report or application screen searching | |
CN110688348A (zh) | 档案管理系统 | |
JP2007531157A (ja) | 基幹業務アプリケーション統合のためのアダプタフレームワーク | |
CN101796752A (zh) | 无限企业平台 | |
CN103678442A (zh) | 基于用户数据访问模式的数据库表格式转换的方法和系统 | |
CN105917627A (zh) | 云服务定制执行环境 | |
CN103020813A (zh) | 管理远程事件的技术 | |
CN102763085A (zh) | 使用云服务目录来供应服务 | |
CN102057366A (zh) | 分布式高速缓存安排 | |
CN102257489A (zh) | 网格和相关联的可视化的双向更新 | |
CN101346972A (zh) | 用于收集数据以便特征化http会话工作负荷的方法和装置 | |
US8689119B2 (en) | Separation and interlinkage of UI model and service layer model | |
CN103390018B (zh) | 一种基于SDD的Web服务数据建模与搜索方法 | |
US20150286720A1 (en) | Methods and systems for collecting, managing, and sharing data | |
CN102591925A (zh) | 以多维数据为中心的服务协议 | |
CN1758251B (zh) | 静态和动态数据集的交互 | |
CN106663090A (zh) | 在编译期间将呈现元数据转换成浏览器可渲染格式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091230 |