REST (REpresentation State Transfer) 描述了一个架构样式的网络系统,其目标是“使延迟和网络交互最小化,同时使组件实现的独立性和扩展性最大化”
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
大多数SOA架构(如SOAP或CORBA)都试图映射如图1所示的类模型,或多或少是一对一的远程访问。通常,这些SOA架构的比较多地关注在编程语言对象的透明映射上,这种映射很容易理解,且易于跟踪。可是,它们把对分布性和扩展性等方面的关注排在第二位。
相反,REST架构风格的最主要驱动是分布性和扩展性。RESTful HTTP接口的设计是由网络因素而非编程语言的绑定驱动的。 RESTful HTTP也没有试图去封装很那些难隐藏的因素,如网络延迟,网络健壮性以及网络带宽等。
用java实现REST的轻量级框架:Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。
Restlet的思想是:HTTP客户端与HTTP服务器之间的差别,对架构来说无所谓。一个软件应可以既充当Web客户端又充当Web服务器,而无须采用两套完全不同的APIs。
参考文献:
http://www.ruanyifeng.com/blog/2011/09/restful.html
http://developer.51cto.com/art/200908/141825.htm
http://www.infoq.com/cn/articles/designing-restful-http-apps-roth