2009-12-16 71 views
4

我在使用Web API(RESTful服务)访问远程基础设施时遇到了一个争议。如果你能发表评论,我将不胜感激。来自文章的建议“REST风格的Web服务与”大“Web服务:制定正确的架构决策” [1]是使用Web API而非临时集成(la mashup)和快速原型。在[2]中进行的实证研究表明,这些建议是在重新使用现有信息和功能的情况下进行的。但是,通过Web API重新使用基础架构并不适合临时集成的任务。我的印象是,基础架构通常被重用在我所拥有的资源不能很好地满足我想要解决的问题的场合:大量数据,高带宽,高并发性。尽管如此,亚马逊提供了其基础设施(存储空间,消息queueuing)均通过远程访问:RESTful Web服务是否适合重新使用基础架构?

  • 传统SOAP的Web服务(所谓大Web服务)和
  • 光RESTful Web服务(所谓的Web API的) 。

虽然没有什么书面无论是客户端(亚马逊网络服务的案例说明)使用大的Web服务或Web的API,亚马逊提供访问其infrastracture在网络的API的形式作为替代的事实必须有意义。

你知道他们的动机是什么?你知道任何人们为了快速成型而重新使用基础设施吗?或者也许用于测试?换句话说,如果我想重新使用亚马逊提供的基础架构,那么在什么样的情况下,我应该使用哪种API风格的SOAP或REST?

编辑:在这种情况下作为基础设施我的意思是:存储空间,计算能力,互联网带宽。因此,我想知道这些资源是否被重新用于临时整合。


  1. 切萨雷保塔索,奥拉夫齐默尔曼,弗兰克Leymann,REST Web服务与 “大” Web服务:做出正确的架构决策,页805-814,金鹏淮,陈知更鸟,萧Wuen提问,刘云浩,卫英马安德鲁·汤姆金斯,张晓东(主编),第17届国际万维网论文集会议,ACM出版社,北京,中国,2008年4月

  2. Hartmann,Bjorn & Doorley,Scott & Klemmer,Scott R.,黑客,搅拌,粘贴:了解机会主义设计IEEE Pervasive Computing,vol。 7,没有。 3,46-54(2008)。

回答

2

的关键在于认识到使用的版本在了解一件事情的谎言 - 如果你需要通过与深嵌的对象层次的网络进行复杂的操作,那么您实际上被迫使用Web服务。 REST在执行简单操作时非常有用,但是复杂的操作不在其职责范围内。

我通常喜欢将RESTful系统设想为我可以通过浏览器命令栏调用命令来测试的系统。 REST风格的应用程序非常易于测试,通常非常适合通过嘲讽进行测试。

1

我认为当人们谈论利用现有基础架构与RESTful Web服务时,他们意味着他们可以使用专为Web设计的现有东西,而不必使用专门为Web服务构建的软件。例如,如果我有一个使用REST的Web服务,我可以利用诸如HTTP缓存代理之类的东西,在哪里可以获得与SOAP等效的功能,我需要一些专门的东西。

+0

在这种情况下,作为基础设施,我的意思是:存储空间,计算能力,互联网带宽。我并不完全相信像这样的资源被重新用于临时集成。 – dzieciou

1

REST比SOAP更易于使用。 FWIW,Google不再使用SOAP,它全部是REST。

SOAP的唯一好处是您可以立即获得对象的使用权。使用REST,您可能需要像JAX-RS这样的框架为您创建这些对象,或者手动解析它们。

REST的另一个巨大优势是,您实际上可以在访问日志中看到请求。大多数SOAP请求POST到完全相同的端点,所以确定你想要做什么很困难。另一方面,REST通常发布到特定的终端,所以你可以从你的网页浏览器中实际击中它们而不需要一个漂亮的应用程序。