浏览 5816 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-04
http://robbin.iteye.com/blog/81990 我来继续robbin的口水做一下分析。 在我的一篇blog中,我认为REST其实对于J2EE传统的三层架构是一种破坏性的架构。 http://blog.csdn.net/mozilla/archive/2007/06/02/1635127.aspx J2EE传统的三层架构当然是非常有价值的,不过至今仍然将其当作铁律未免有些过时。如果将Web表现层前推到客户端来做,原先服务器端的Web表现层这个空缺应该由REST框架来填补。这一层是很薄的一层Facade层,我一般将它叫做资源控制层,以体现它面向资源的特点,当然也可以叫做Web服务层或者其他什么名字。它的主要作用就是形成业务层的Facade,以大粒度的资源的形式暴露出服务器端提供给客户端使用的功能。 传统的Web MVC框架未能提供很好的REST支持的一个主要的原因是它们在设计理念上存在着巨大的差异,Web MVC主要是为Thin Cient设计的,而REST主要是为Rich Client或RIA设计的。传统的Web MVC框架不可能从深层次支持一个与它们自己设计理念差别很大,而且还是替换性的架构。 单就Spring MVC来说,它完全没有计划支持REST。而Spring框架本身确实有计划来支持REST,但是仅仅是将REST当作Web服务的一种类型来支持,而不是主要用来连接同一个应用的客户端和服务器端。 http://opensource.atlassian.com/projects/spring/browse/SWS-82?rc=1&page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel http://blog.springframework.com/arjen/index.php/archives/2005/10/19/introducing-spring-web-services/ 引用 We believe that the future of Web Services lies in SOAP. While other standards and implementations also focus on REST-like services, we believe that there is little value in creating a framework for these kind of Web Services. REST services seem to have very little common functionality that cannot already be captured with Java classes like the HttpServlet.
可见Spring框架的Web Service部分的开发者目前尚未对REST加以足够的重视,这是他们迟迟没有推出对于REST支持的原因。我们以前也讨论过,REST目前尚未完全被企业应用所接受,Spring框架开发者面对的主要是企业应用中的需求,目前在企业应用中对于REST还没有非常广泛的需求。不过在我看来,这种情况早晚会改变。 另外还有一个原因是,Servlet API其实与REST的一些需求是存在着矛盾的,至少不完全符合REST的需求。 http://www.restlet.org/about/introduction Jetty的作者Greg Wilkins在2003年认为Servlet API存在以下几个问题: Wilkins 写道 1. No clear separation between the protocol concerns and the application concerns.
2. Unable to take full advantage of the non-blocking NIO due to blocking IO assumptions. 3. Full Servlet Web containers are overkill for many applications. 并且提出有必要设计另外一套API。他还对新的API作出了一些设想: http://blogs.webtide.com/gregw/2004/09/24/1096051860000.html 而Restlet的作者Jerome Louvel正是受到了Wilkins的影响,最终才决定完全抛开Servlet API,另外定义一套API。现在因为Louvel成为了JSR 311的核心成员,因此可以预见这个新的REST规范也不会是基于Servlet API的,就像Portlet一样。 当然,也有人认为这几个问题不是非常严重,不是已经有了一个基于Servlet API的不错的REST框架Cetia4了吗? 综合以上的原因可见,主要面向企业应用的传统的Java框架对于REST没有很好的支持,是因为他们的历史包袱比较沉重。另外Java社区门派林立,要想让各家都承认,必须要通过JCP的标准化过程,这个过程也会旷日持久。而RoR方面做事情则要敏捷的多,说拥抱REST,很快就可以大张旗鼓地做起来。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-05
既是包袱,也是财富!!
不知道M$会不会说拥抱就拥抱! 看好REST。。。。 |
|
返回顶楼 | |
发表时间:2007-06-05
离开ajax,REST在B/S架构上何以体现它的优势
|
|
返回顶楼 | |
发表时间:2007-06-05
weiqingfei 写道 离开ajax,REST在B/S架构上何以体现它的优势
确实 离开ajax rest没法用 |
|
返回顶楼 | |
发表时间:2007-06-05
任何东西都是由自己的使用范围的,各有各的长处和短处,没有完美的,只有适合的。
|
|
返回顶楼 | |
发表时间:2007-06-05
winterwolf 写道 weiqingfei 写道 离开ajax,REST在B/S架构上何以体现它的优势
确实 离开ajax rest没法用 到不是说离开ajax,rest没法用,rest可以给应用程序,中间件提供服务, 我只是奇怪当初浏览器为什么只支持get,post。 |
|
返回顶楼 | |
发表时间:2007-06-05
weiqingfei 写道 winterwolf 写道 weiqingfei 写道 离开ajax,REST在B/S架构上何以体现它的优势
确实 离开ajax rest没法用 到不是说离开ajax,rest没法用,rest可以给应用程序,中间件提供服务, 我只是奇怪当初浏览器为什么只支持get,post。 就是没法用 组织view会累死人的 |
|
返回顶楼 | |
发表时间:2007-06-05
to winterwolf:
你看看Cetia4吧,是你用的工具不趁手还是REST确实不支持,这个需要分开考虑。 |
|
返回顶楼 | |
发表时间:2007-06-05
dlee 写道 to winterwolf:
你看看Cetia4吧,是你用的工具不趁手还是REST确实不支持,这个需要分开考虑。 不是指单一的请求 而是集成界面. 当然也不比集成mvc的view麻烦, 我是指相对ajax来说的 在非ajax中直接用xform调用rest也是很简单的 |
|
返回顶楼 | |