2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

Astoria:微软的 REST 式数据服务

  • 2007-05-14
  • 本文字数:1855 字

    阅读完需:约 6 分钟

MIX 07 会议上,微软宣布了 Astoria 项目,这个项目能通过一个 REST 化的方式将数据以 Web 上的数据服务展示。 Astoria 在线服务网页描述了微软 Astoria 项目的目标:

……使得应用可以以数据服务的方式展现数据,然后被应用在企业网络和互联网上的 Web 客户端中。数据服务是通过 HTTP 获取的,URI 用来标识以服务形式存在的不同信息。数据服务之间的交互是通过像 GET、POST、PUT 和 DELETE 等这样的 HTTP 动词来实现的,这些交互中的数据转换是由像 XML 和 JSON 这样简单的格式表示的。

微软关于 Astoria 的官方概览文档阐述了数据是如何通过 Astoria 数据服务来定位和表示的。为了用 Astoria 数据服务定位数据,需要用到下面的定位模式: http://host/vdir//{{<[predicate]>}。比如 URI http://myserver/data.svc/Customers 表示指向一个包含所有客户实例的资源。单个的客户可以通过比如 http://myserver/data.svc/Customers[ALFKI] 这样的资源 URI 指定,这儿的“ALFKI”表示客户数据中的唯一键值(Key)。

谓词可以被整合进资源 URI 中,比如 http://myserver/data.svc/Customers[City eq ‘London’],还有一些控制输出的查询字符串等:

http://myserver/data.svc/Customers?$orderby=City
http://myserver/data.svc/Customers?$top=5
http://myserver/data.svc/Customers?$skip=30&$take=10

关于输出和数据表示,Astoria 支持 XML、JSON 和 RDF+XML 的子集等,默认的数据表示是 XML,比如 http://myserver/data.svc/Customers[ALFKI] 可能会有如下的响应:

复制代码
<span><</span><span>DataService</span> <span>xml:base</span><span>="http://myserver/data.svc"</span><span>></span>
<span><</span><span>Customers</span><span>></span>
<span><</span><span>Customer</span> <span>uri</span><span>="Customers[ALFKI]"</span><span>></span>
<span><</span><span>CustomerID</span><span>></span>ALFKI<span><span>CustomerID</span><span>></span>
<span><</span><span>CompanyName</span><span>></span>Alfreds Futterkiste<span><span>CompanyName</span><span>></span>
<span><</span><span>ContactName</span><span>></span>Maria Anders<span><span>ContactName</span><span>></span>
<span><</span><span>ContactTitle</span><span>></span>Sales Representative<span><span>ContactTitle</span><span>></span>
<span><</span><span>Address</span><span>></span>Obere Str. 57<span><span>Address</span><span>></span>
<span><</span><span>City</span><span>></span>Berlin<span><span>City</span><span>></span>
<span><</span><span>Region</span> <span>/></span>
<span><</span><span>PostalCode</span><span>></span>12209<span><span>PostalCode</span><span>></span>
<span><</span><span>Country</span><span>></span>Germany<span><span>Country</span><span>></span>
<span><</span><span>Phone</span><span>></span>030-0074321<span><span>Phone</span><span>></span>
<span><</span><span>Fax</span><span>></span>030-0076545<span><span>Fax</span><span>></span>
<span><</span><span>Orders</span> <span>href</span><span>="Customers[ALFKI]/Orders"</span> <span>/></span>
<span><span>Customer</span><span>></span>
<span><span>Customers</span><span>></span>
<span><span>DataService</span><span>></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

根节点上的“DataService”永远包含由服务表示的任何资源的基准 URI。代表关联资源的导航节点包含相关的 URI。比如客户“ALFKI”的订单是由根节点上的基准 URI 和订单节点里的相关 URI 一起组成的:“ http://myserver/data.svc ” + “/” + “Customers[ALFKI]/Orders”。

根据微软的说法,Astoria 提供了一种能实现提供数据的 REST 化 Web 服务简单方式。除了可以通过 GET 从数据服务中取数据,数据还可以通过 HTTP PUT 或者 HTTP POST 更新和增加。

Udi Dahan 却对 Astoria 带来的好处和适用性以及微软的数据服务方式表示怀疑

但是我不得不说,我从一开始就反对那些“数据服务”。REST 方式大部分情况下应用在巨型的资源上——但这儿好像只是用在数据库里的一张表里。看看一些关于 REST 和 SOA 的讨论就知道了。

但是, Danny Ayers 却认为微软通过Astoria 看到了语义网的希望 Alex James 还总结了一些关于 Astoria 争论的概览。

2007-05-14 20:111182

评论

发布
暂无评论
发现更多内容

模块7作业 王者荣耀商城异地多活架构设计

TH

架构实战营

模块7学习总结

TH

架构实战营

Git点赞82K!阿里量产的保姆级Spring Security笔记,一眼望穿干货满满!

Java 编程 架构 面试

web messaging与Woker分类:漫谈postMessage跨线程跨页面通信

zhoulujun

Service Worker

Token Pocket钱包DAPP系统开发

Geek_23f0c3

区块链 dapp DAPP系统开发 token pocket

妇与术(一):女性体育报道,技术or花瓶?

脑极体

公开吧!腾讯技术专家手撸“Redis技术笔记”,下载量已突破30W

redis 编程 架构 面试

ServiceWorker工作机制与生命周期:资源缓存与协作通信处理

zhoulujun

Service Worker

EF Core 数据验证

喵叔

7月日更

【LeetCode】根据字符出现频率排序Java题解

Albert

算法 LeetCode 7月日更

IPFS矿机怎么挖矿IPFS矿机工作原理

王者荣耀异地多活架构设计

Lane

分布式认知工业互联网赋能工业企业数字化转型

CECBC

MySQL开篇

卢卡多多

架构 MySQL 数据库 7月日更

北鲲云探索云计算在生命科学领域更多的应用场景

北鲲云

模块一作业

VE

架构实战营

架构实战营 模块七作业

eoeoeo

架构实战营

三面遭SpringCloudAlibaba暴锤,含恨吃透大佬的手抄本笔记(听说Github都没有),终入阿里

Java 编程 架构 面试 微服务

Go 学习笔记之 赋值

架构精进之路

Go 语言 7月日更

模块8作业

Geek_2e7dd7

#架构实战营

呃!原来如此!

Nydia

Redisson 分布式锁源码 02:看门狗

程序员小航

Java redis 源码 分布式锁 redisson

慕了没?3年经验,3轮技术面+1轮HR面,拿下字节30k*16薪offer

Java架构师迁哥

颠覆式创新:更便宜、更简单

石云升

创业 创新 7月日更

推荐系统产品概述(二十五)

Databri_AI

算法 推荐系统 流量

一站到底!Spring Cloud Alibaba第三版耀世升级全彩PDF版

Java架构师迁哥

数字科技这类人才是银行急需的

CECBC

第七章作业

方堃

不懂Java SPI机制,怎么进大厂

慕枫技术笔记

Java 后端 spi

Kong-如何查看 Kong 插件的版本

耳东@Erdong

kong 7月日更 kong-plugin

网络安全2021年为什么如此吃香?事实原来是这样....

网络安全学海

运维 网络安全 信息安全 渗透测试 漏洞分析

Astoria:微软的REST式数据服务_.NET_Hartmut Wilms_InfoQ精选文章