Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|产品中心下载什么是软件架构
您现在的位置: 天极网 > 开发频道 > Google Base与微软Astoria协议比较
全文
群乐:SOA

Google Base与微软Astoria协议比较

2007-07-27 09:42 作者: Jonathan Allen 译 霍泰稳 出处: 论坛整理 责任编辑:webbtob

  Dare Obasanjo对通过HTTP访问数据库样式数据的两个新的协议进行了对比。这两个协议都基于REST,分别是Google Base和Microsoft的Astoria。

  两个协议之间的基本概念都是一样的。在SQL里面使用URL指定查询。关系和过滤器必须被编码成URL的一部分,所有的查询都是GET。

  Dare指出的第一个不同之处是,Astoria使用层级格式表示关系。比如,要指定一个客户键值为5的订单列表,你需要使用像“/Customers[5]/Orders”这样的字符串。而Google Base则使用了一种普通的模式,在指定关系的时候必须使用类别和属性。

  两者都支持过滤和排序,但是Google Base有更为丰富的语法和对跨所有类的全文查询支持。但是Google Base多少有些自作聪明,它还提供了对内联If/Else结构的支持。

  Astoria有一个非常棒的称之为Expand的属性。用这个属性用户可以同时指定请求数据的子节点,从而免除了需要执行1+N次查询以获得数据行和相关子行的集合。这些数据在合适的节点下以内联XML的形式返回。

  在Google Base里面同样也有一些Astoria所不具备的特性。比如用户可以进行拼写检查,和Google Search的工作方式类似。使用Crowd属性还可以过滤重复的信息。在这个文章中,Dare做了一个请求,“返回了所有储存在Google Base里面的餐馆,但每个菜的类型只显示两条记录”。

  Dare Obasanjo总结说:

  在比较两个方法的过程中,有很多喜欢和不喜欢的特性。我喜欢Astoria里的Expand属性,因为可以从多个层级路径中提取XML结果。但是如果要获得更好的过滤结果,它还缺少一些必要的操作和函数。

  对于Google Base的数据API,我喜欢Crowd属性和在属性集里进行测试的一个完整的函数库。还有一些操作,比如在某位置附近查找结果等,尽管对于大多数RESTful协议并不是必须的。也就是说,我真的认为有些属性太“超前”了,比如在URI里面增加if...else块等。我怀疑谁会去用这些复杂的属性,如果它们只有层次,而不是一个需要复杂过滤才能获取数据的普通命名空间的话。


  阅读关于 Google Base 微软 Astoria REST 的全部文章
网友关注
最新上市
编辑推荐
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml