REST作为风格 -- WOA作为架构

Dion Hinchcliffe最近创作了两篇相关的文章,探求了面向Web的架构(WOA)与其它技术之间的关系。第一篇主要关于WOA与REST;第二篇主要关于WOA与SOA。第一篇文章的主要观点是:REST是一种风格而WOA是架构。第二篇文章声称WOA实际上值得高度称赞的亚风格的SOA,并探讨了这一简单的观察所揭示的意义。

作为讨论的开头,Hinchcliffe承认一开始是REST最先吸引了你的注意:

你已经在Web上读了许多关于REST的文章,它将如何成为未来的Internet架构,并且你已经决定将其运用于你的工作。但当你更深入到这一课题时,会发现REST本身似乎就是关于在Internet上将数据资源从一处移到另一处,而不是构造一个完整的应用。对于你来说如何将其合适的应用于你的上下文环境-一个完整实现并良好设计的软件-中来并不清楚(当然也是缺乏文档的)。

然后他写到:

你开始揣测REST是如何被特别地(以及策略性地)用于一个应用或是整个软件架构的。换句话说,哪一些是活动的部分以及应用它们时该如何约束。你同样想知道还有什么是你可以与REST共同使用,或能对其补充使其变得更好的。你甚至可能想知道什么时候可以打破规则而使用其它一些相关的措施。这些正好是WOA派上用场的地方了。

最后总结到,“因此,简而言之,WOA远比REST更多,而REST是WOA的基本架构风格。”

Hinchcliffe将WOA分为两部分来定义:核心部分包括REST,URL,SSL以及XML;还有一个“WOA完全版”包括了协议以及接口(例如,BitTorrent),身份以及安全(例如,OpenID),分发与组件(例如,Open API),以及数据格式与描述(例如,ATOM)。这些内容以六个层次组织成了WOA栈(包括示例用的技术):

  • 分发(HTTP, feeds)
  • 组合(Hypermedia, Mashups)
  • 安全(OpenID, SSL)
  • 数据兼容性(XML, RDF)
  • 数据表示(ATOM, JSON)
  • 转移方式(REST, HTTP)

这一个栈增强了WOA与REST之间的关系,后者作为基础支撑着这整个大型的架构思想。

很重要的一点是要认识到WOA还并未成熟到成为一个架构模式或是良好定义的框架。如Hinchliffe所写的那样:

WOA是当下开发者们正在实施的...一系列设计Web应用的最佳实践。它并不是一个方案和技术的摸彩袋,而是一个真正发挥作用的优雅的模型:它是安全的,有着良好的Web伸缩性,性能卓越,...同时还是易于上手,易于实现,而当你一旦理解了Web之后这几乎是本能而直观的。

那这一风格与架构的讨论又是如何联系到SOA的呢?

首先,依据Hinchcliffe的说法,“WOA实际上值得高度称赞的亚风格的SOA”。更进一步

对于那些进行传统SOA开发的人们来说,WOA当然也提供了诸多的优势。其中包括了提升明显的服务消费模型,更便宜更节约时间,以及释放了链接架构的巨大能量来驱动信息发现,利用与分析。Open API与云计算所蕴含的深厚的业务意义这周变得更加清晰。WOA更是为访问现今可获取许多新的在线产品分发模型打开了匝道。SOA当中的分发是一个被忽视掉的悲伤的话题,然而WOA能带来一个广泛的技术集合,从聚合到非凡的低阻Web服务。

而WOA-因为将REST合并作为核心技术,而又不完全等同于它-提供了在基于SOAP模型与基于REST的Web服务技术之间的调和。

WOA可以被看着是将SOA超出防火墙的一种方法。Hinchcliffe与他的同事,David Linthicum,建议:

WOA最大的舞台可能是其跨防火墙的意义,API部门可以使用SOA来提供可伸缩的,自服务的交易合作功能,尽管防火墙内部的业务也是一个很大的舞台。

WOA支持SOA实践者去探索不同的业务场景集合。Hinchcliffe讨论了五个潜在的场景,包括:“SOA信息的爬虫性,搜索性,与发现性”与“Open API将WOA直接暴露于合作伙伴。”

揭开WOA:前沿架构风格的六个方面与SOA世界开始认真考虑WOA 这两篇文章都值得一读,以更深入的看待REST,WOA,与SOA这个三元组。

查看英文原文:REST is a style -- WOA is the architecture.

你可能感兴趣的:(REST作为风格 -- WOA作为架构)