前段时间,国内资深Java咨询师Robbin的一篇文章《Java已经过时了吗?》再次引发了业界对Java的关注。在企业应用领域,Java凭借在稳定性和安全性方面的优势仍然占据着主流位置。但在互联网领域,由于Web表现层开发需求变化频繁,Java这类静态类型的语言不够敏捷,严重影响了开发的效率。越来越多的开发者选择采用PHP、ASP或者RoR替代Java。
REST软件架构是当今世界上最成功的互联网的超媒体分布式系统。作为一种专门针对网络应用的设计和开发方式,它可以很好的降低开发的复杂性,提高系统可伸缩性和开发效率。目前一些支持REST的Java框架已经存在,这些框架使得基于Java做REST设计和开发成为了一件很容易的事情。
REST的主要优势到底是什么?在未来,Java会加速拥抱REST,重新成为互联网Web开发的主流吗?本专题将与您分享这方面的内容。
背景知识介绍一:什么是Rest架构?
背景知识介绍二:Rest/Ajax架构风格优点
专题策划:CSDN-Java频道
假设我们能够充分利用客户端的Ajax组件库和各种RIA技术,将Web表现层完全或者绝大部分前推到客户端来开发,并且通过REST风格的API来与服务器通信,那么服务器的角色就变成了类似于Web服务提供者(注意:这里和Web服务还是有很大的差别,因为REST在这里是用于同一个应用内部的通信,即连接一个应用的客户端和服务器端)的角色,这样就能够极大地简化服务器端Java的开发工作。
在JavaEye论坛上回答网友joyjiang的疑问:“REST的优势到底是什么?开发效率?文档的管理?url的直观?还是其它的什么优势呢?”REST的主要优势在我看来其实在于它是一种对于服务器的更加有效的抽象方式。对于基于网络的应用来说,你怎么样看待服务器,就会产生什么样的架构风格,随之产生与该架构风格相关的交互模式。
今天与一起翻译Fielding论文的朋友杨光讨论技术问题,杨光认为因为REST是基于文本来进行通信,所以其性能肯定不如基于二进制格式的通信协议好。因为这是一个对于REST的明显的误解,所以我觉得有必要专门在这里澄清一下
到目前为止,传统的Java Web MVC框架(Struts、WebWork、Spring MVC、etc.)还无法很好地支持REST风格的架构设计。它们在设计之初时基本上都是围绕着基于HTML表单的交互模式来设计的,View的粒度难以 达到单个页面以下。不能把响应Ajax请求而返回的XML/JSON/纯文本格式的数据简单地认为是Web MVC框架中的View,实际上这个时候这些数据的语义已经与传统的Web MVC架构中的View的语义相距甚远。
目前宣称支持REST的Java框架包括以下这些: Restlet、Cetia4、Apache Axis2、 sqlREST、REST-art
以下对这些框架进行了较为全面的分析,供广大REST爱好者参阅。
CSDN登载此专题出于传递更多信息之目的,如果您有什么好的意见和看法,请您留下宝贵意见。希望能给您的工作和学习带来帮助。意见反馈:fujiang@csdn.net