和Google互补的搜索引擎Wolfram|Alpha
Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。
作者 Arnon Rotem-Gal-Oz 译者 胡键 发布于 2007年6月12日 下午7时49分
追踪上周在此讨论的关于REST vs. WS-*的争论,值得注意的是,以REST化服务契约为主题的争论在最近几天日嚣尘上。浮现出的问题是REST是否需要契约(即按照WSDL的方式),更更根本的问题是有了契约的REST还依旧是REST吗。Aristotle Pagaltzis的问题:“REST需要服务描述语言吗?” 揭开了争论的序幕:
“日前,有人在rest-discuss发问是否有描述REST服务的标准方法。该问题一再露面(作为回应,通常会画一个指向WADL努力的箭头),似乎意味着关于REST的一个流行的误解。我认为使用类WSDL语言描述REST化服务根本就是自相矛盾的说法……”
对此,Paul Mueller 回应道:
“此处,我们讨论的是契约。契约必须以某种方式正规化。英语并非最好的使用语言,尤其是因为我们有如此多的更精确语言可供选择。
我的这个想法这实际上是对我关于数据序列化想法的扩展,服务只是需要被元描述的下一级事物。”
Mark Baker紧跟而上,他同意Aristotle的观点:REST拥有(以及需要)的唯一契约就是以4个动词为基础的HTTP协议,这4个动词是——POST、GET、DELETE、PUT(事实上HTTP 1.1还定义了另一个动词 - HEAD,但是它使用并不广泛)。Mike Herrick 认为契约确实能增加价值:
“我认为,REST客户端开发者至少期望能有模式,用来定义在请求/响应有效负荷中想出现的东西。恕我直言,WADL做了非常不错的工作,而且没有画蛇添足。如我所说,与WSDL相比较,它是个不错的东西。当HTTP是唯一选择的时候,事情是如此的简单(即,相比于愚蠢的协议不可知论调)。如果你不打算使用WADL,那你就不得不将服务以枯燥无聊的方式文档化。至少,WADL看起来是一种真正简化文档事物的方法。”
Bobby Woolf(因企业集成模式而闻名)同样认为REST需要声明性接口并怀疑当REST最终获得这些能力时,结果是否还会与WSDL有什么显著不同。John Heintz建议在其间做些手脚,使用他称之为路标的东西,而非描述语言。他的想法是:路标在运行时可以被解析,这将使它们适于改变。问题的症结似乎是:服务消费者对于接口的信心,它由它们所消费的服务定义。这个视角始于Stefan Tilkov的评论,他认为存根(stub)和骨架类(skelton)有问题。Don Box回复说你必需对你得到的消息结构有信心。对此,Stefan的回应:
“我同意这一点——我的代码就依赖文档中一些元素和属性。但问题是,即使我的应用只访问它所需要的XML中20%的元素和属性,列集(散列)/序列化(反序列化)((un)marshaling/(de)serialization)代码同样要求在XML和模式之间进行完美地匹配。目前代码产生时就是如此。换句话说:尽管我的应用代码能容忍至少一些变动,但是产生的底层代码则不行。”
Mike Glendinning的评论强调了Stefan的观点,他认为当用户只使用返回消息的20%时,为其本身定义新契约更有效。或者如Joe Gregorio写下的(在一个相当长的Q&A风格帖子中,它通篇都是关于我们是否需要WADL):
“Q:人们打算想要描述接口,那有什么坏处?A:是的,人们想要描述接口,并且那些描述是脆弱的。如果今天我下载一个WADL并编译我的客户端,那么明天就会因你改变服务而崩溃。相反,如果你使用超文本(在链接后跟超文本和客户端状态,或基于超文本和客户端状态构造请求),那么当你改变服务器或URI结构时,接口将不会被破坏。”
最后,考虑到上文Stefan博客中的2条评论,问题可能比“REST是否需要正式的契约”更根本,即“我们需要接口吗?”。首先看看Steve Jones的评论:
“契约是个好东西,这已经是被证明的了,我仍然奇怪为什么REST人们不喜欢它们。它几乎是理论和实践的东西,在理论上并没有规定,在实践上却是如此。”
与Eric Johnson所说相比较:
“……就我看来,被REST所吸引(不论以什么形式)的人们,是反抗基于接口的编程而甚于WS-*本身——至少我的理由是如此……”查看英文原文:Debate: Does REST Need a Description Language?。
Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。
Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。
罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。
Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。
中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。
HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。
没有回复
关注此讨论 回复