Java REST框架一览

【REST技术】在这个时代,一方面是计算机科学家们不断的试图提高计算机表示的抽象能力使之更好的为现实世界服务,使人们能够更简单的利用计算机,一方面却是复杂性的不断提高。易用相对于用户,但是把复杂性留给了程序员。 于是计算机科学家们一直在不停的想办法,力图降低程序员工作的复杂度。那么REST(representation tranfer state)技术就在这种背景下孕育而生。当今的Web服务属于大型分布式框架。Web 服务标准也受到复杂性恶魔的威胁,但是称作 REST 的替代策略承诺了更简单的方式 。REST 与全堆栈 Web 服务根本不同,主要原因有三个:
       REST 的核心抽象是远程资源而不是远程过程调用。
       REST 没有发明一个详尽的标准列表,而是采用现有的 Internet 标准,包括 HTTP、XML 和 TCP/IP。
       REST 没有覆盖每个可能场景,而是覆盖了最常见的问题。
       可以看出REST在力求简单的同时也能解决大部分的问题。其实,可以看到在IT界一个新的技术要被大众接受,大概必须做到下面几点1 名字琅琅上,比如AJAX,REST,这些名字都容易让人熟悉2 与旧有技术上要有许多不同或者创新,不能新瓶装旧酒。3 需要降低程序员的复杂度,提高生产效率,我想第三个才是最重要的因素把!

 

       【Java REST框架一览 目前宣称支持REST的Java框架包括以下这些:

        Restlet( http://www.restlet.org/

        Cetia4( https://cetia4.dev.java.net/

        Apache Axis2( http://http://ws.apache.org/axis2/

        sqlREST( http://sqlrest.sourceforge.net/

        REST-art( http://rest-art.sourceforge.net/ ) 以下对这些框架进行了较为全面的分析。
        Restlet,最新版本1.0.1 (已经更新到1.0.10和1.1m4,并开始整合Jetty、Mina、Grizzy、Spring等系统)       

        特点: 完全抛弃了Servlet API,作为替代,自己实现了一套API。能够支持复杂的REST架构设计。
        缺点

        1. 虽然也可以运行于Web容器中,但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念,学习成本比较高。

        2. 完全不支持服务器端的HTTP Session,强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说,开发难度较高。

        3. 自身没有包括与Spring的集成,可以使用第三方代码与Spring集成,集成难度较大。

        4. 文档不是很丰富,大多比较简短,很多时候需要自己去读代码,或者到其wiki上去查找。

        5. 没有内建的国际化支持。 
        优点:

        1. 有内建的HTTP认证机制,不需要另外开发安全机制。

        2. 灵活性较高,支持更多的REST概念,支持透明的内容协商,适合于开发更加强大的REST组件(不限于服务器端应用)。

        3. 零配置文件,全部配置通过代码来完成。
        相关资源

        功能列表: http://www.restlet.org/about/features

        简介: http://www.restlet.org/about/introduction

        教程: http://www.restlet.org/documentation/1.0/tutorial

        FAQ: http://www.restlet.org/about/faq  

        Cetia4,最新版本1.0 
        特点
:基于Servlet API开发,可以运行于所有的Web容器中。 
        优点

        1. 可以充分利用Servlet API和JSP等资源,需要额外学习的概念较少,学习成本较低。

        2. 对于传统的Web应用,可以使用服务器端HTTP Session;对于Web服务类应用,不使用HTTP Session,基于无状态服务器模型做开发。

        3. 自身包括了对于Web MVC的支持 ,熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。

        4. 内建了自己特有的导航对象栈的概念,对于支持传统的Web应用的开发(基于浏览器的导航)非常有帮助。

        5. 提供了JSP标签库,对于传统的基于HTML表单的Web开发非常有帮助。

        6. 支持与SiteMesh相配合,由SiteMesh来支持页面布局的重用。  
        7. 内建有与Spring的集成,集成起来非常容易

        8. 配置文件完全基于标准的web.xml,不需要额外的配置文件。大量使用默认配置,一般情况下足以满足常见的需求

        9. 拥有很好的文档。

        10. 有内建的国际化支持。 
        缺点

         1. 没有内建的HTTP认证机制,需要自行开发安全机制

        2. 对于内容协商的支持比较弱,仅支持HTML和XML格式的表现。需要加以扩展才能支持其他格式的表现。 
        相关资源 : 教程:
https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf  

        Axis2,最新版本1.2  
        特点:同时支持SOAP和REST风格的Web Service 。 
        缺点:

        1. 仅仅支持GET与POST方法。

        2. 仅仅是以REST风格暴露出Web服务,数据格式仍然是包含SOAP封装的XML,不能使用更加有效的格式

          3. 只支持同步的调用方式。

        4. 仅仅提供了以SOAP方式暴露Web服务的最小化的支持,不支持全面的REST架构设计 。 
        相关资源:
简介: http://ws.apache.org/axis2/1_2/rest-ws.html  

        sqlREST,最新版本0.3.1 
       
特点:

        1. 为任何可以通过JDBC访问的数据库提供Web服务访问接口,自动将REST风格的HTTP请求转换为相应的数据库SQL语句,并将数据库中的记录编码为XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射

        2. 基于Servlet API开发。 
        缺点:

        1. 因为是REST风格的HTTP请求到SQL语句的直接映射,因此强制使用以SQL和关系数据库为中心的数据建模设计方法,不支持面向对象的设计。灵活性很低,难以实现较为复杂的业务逻辑

        2. 因为资源的定义仅限于数据库的表,难以实现更高层次的抽象,必然会导致非常细粒度的API。 应用的性能和可伸缩性都难以保证。 
        相关资源: 教程:
http://sqlrest.sourceforge.net/5-minutes-guide.htm  

        REST-art,最新版本0.2 
       
特点:一个旨在替换复杂的SOAP框架的REST框架 ,用来作为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。 
        缺点:

        1. 目前尚处于刚刚起步的阶段,功能非常少。

        2. 不是基于Servlet API,带来了额外的学习成本。 
        相关资源:教程:
http://sourceforge.net/docman/index.php?group_id=175132

        Rest架构能否挽救Java

        前段时间,国内资深Java咨询师Robbin的一篇文章 《Java已经过时了吗?》 再 次引发了业界对Java的关注。在企业应用领域,Java凭借在稳定性和安全性方面的优势仍然占据着主流位置。但在互联网领域,由于Web表现层开发需求 变化频繁,Java这类静态类型的语言不够敏捷,严重影响了开发的效率。越来越多的开发者选择采用PHP、ASP或者RoR替代Java。  

        REST软件架构是当今世界上最成功的互联网的 超媒体分布式系统。作为一种专门针对网络应用的设计和开发方式,它可以很好的降低开发的复杂性,提高系统可伸缩性和开发效率。目前一些支持REST的 Java框架已经存在,这些框架使得基于Java做REST设计和开发成为了一件很容易的事情。 REST的主要优势到底是什么?在未来,Java会加速拥抱REST,重新成为互联网Web开发的主流吗? 本专题将与您分享这方面的内容。 
原文摘自:http://hi.baidu.com/zeorliu/blog/item/ca08c6f95cac745f252df2f0.html

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值