<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/rest-framework-for-java-html/</link>
<title><![CDATA[Java REST框架的架构设计]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[Web开发]]></category>
<pubDate>Sun, 13 Feb 2011 10:25:58 +0000</pubDate> 
<guid>https://www.heckjj.com/rest-framework-for-java-html/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 微软雅黑;">REST（Representational State Transfer）是一种轻量级的Web Service架构风格，其实现和操作明显比SOAP和XML-RPC更为简洁，可以完全通过HTTP协议实现，还可以利用缓存Cache来提高响应速度，性能、效率和易用性上都优于SOAP协议。<br/>　　REST架构遵循了CRUD原则，CRUD原则对于资源只需要四种行为：Create（创建）、Read（读取）、Update（更新）和Delete（删除）就可以完成对其操作和处理。这四个操作是一种原子操作，即一种无法再分的操作，通过它们可以构造复杂的操作过程，正如数学上四则运算是数字的最基本的运算一样。<br/><br/>　　REST架构让人们真正理解我们的网络协议HTTP本来面貌，对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法，因此REST把HTTP对一个URL资源的操作限制在GET、POST、PUT和DELETE这四个之内。这种针对网络应用的设计和开发方式，可以降低开发的复杂性，提高系统的可伸缩性。<br/><br/>关于REST可以参考：<br/>&nbsp;&nbsp;http://zh.wikipedia.org/wiki/REST<br/><br/>&nbsp;&nbsp;http://www.infoq.com/cn/articles/rest-introduction<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;http://www.infoq.com/cn/articles/rest-architecure<br/><br/>&nbsp;&nbsp;http://www..ibm.com/developerworks/cn/web/wa-ajaxarch/<br/><br/><br/><br/>目前宣称支持REST的Java框架包括以下这些： <br/>Restlet（http://www.restlet.org/） <br/>Cetia4（https://cetia4.dev.java.net/） <br/>Apache Axis2（http://http://ws.apache.org/axis2/） <br/>sqlREST（http://sqlrest.sourceforge.net/） <br/>REST-art（http://rest-art.sourceforge.net/） </span><span style="font-family: 微软雅黑;"><br/><br/>以下对这些框架进行了较为全面的分析。 <br/><br/>Restlet，最新版本1.0.1 <br/>特点：完全抛弃了Servlet API，作为替代，自己实现了一套API。能够支持复杂的REST架构设计。 <br/>缺点： <br/>1. 虽然也可以运行于Web容器中，但是难以利用Servlet和JSP等资源。因为需要另外学习一套API和概念，学习成本比较高。 <br/>2. 完全不支持服务器端的HTTP Session，强制完全基于无状态服务器模型来做开发。对于基于浏览器的应用来说，开发难度较高。 <br/>3. 自身没有包括与Spring的集成，可以使用第三方代码与Spring集成，集成难度较大。 <br/>4. 文档不是很丰富，大多比较简短，很多时候需要自己去读代码，或者到其wiki上去查找。 <br/>5. 没有内建的国际化支持。 <br/>优点： <br/>1. 有内建的HTTP认证机制，不需要另外开发安全机制。 <br/>2. 灵活性较高，支持更多的REST概念，支持透明的内容协商，适合于开发更加强大的REST组件（不限于服务器端应用）。 <br/>3. 零配置文件，全部配置通过代码来完成。 <br/><br/>相关资源： <br/>功能列表：http://www.restlet.org/about/features <br/>简介：http://www.restlet.org/about/introduction <br/>教程：http://www.restlet.org/documentation/1.0/tutorial <br/>FAQ：http://www.restlet.org/about/faq <br/><br/>Cetia4，最新版本1.0 <br/>特点：基于Servlet API开发，可以运行于所有的Web容器中。 <br/>优点： <br/>1. 可以充分利用Servlet API和JSP等资源，需要额外学习的概念较少，学习成本较低。 <br/>2. 对于传统的Web应用，可以使用服务器端HTTP Session；对于Web服务类应用，不使用HTTP Session，基于无状态服务器模型做开发。 <br/>3. 自身包括了对于Web MVC的支持，熟悉Web MVC框架的开发者很容易理解。还内建了参数映射、参数验证等等传统Web MVC框架所支持的功能。 <br/>4. 内建了自己特有的导航对象栈的概念，对于支持传统的Web应用的开发（基于浏览器的导航）非常有帮助。 <br/>5. 提供了JSP标签库，对于传统的基于HTML表单的Web开发非常有帮助。 <br/>6. 支持与SiteMesh相配合，由SiteMesh来支持页面布局的重用。 <br/>7. 内建有与Spring的集成，集成起来非常容易。 <br/>8. 配置文件完全基于标准的web.xml，不需要额外的配置文件。大量使用默认配置，一般情况下足以满足常见的需求。 <br/>9. 拥有很好的文档。 <br/>10. 有内建的国际化支持。 <br/>缺点： <br/>1. 没有内建的HTTP认证机制，需要自行开发安全机制。 <br/>2. 对于内容协商的支持比较弱，仅支持HTML和XML格式的表现。需要加以扩展才能支持其他格式的表现。 <br/><br/>相关资源： <br/>教程：https://cetia4.dev.java.net/files/documents/5545/38989/cetia4_tutorial.pdf <br/><br/>Axis2，最新版本1.2 <br/>特点：同时支持SOAP和REST风格的Web Service。 <br/>缺点： <br/>1. 仅仅支持GET与POST方法。 <br/>2. 仅仅是以REST风格暴露出Web服务，数据格式仍然是包含SOAP封装的XML，不能使用更加有效的格式。 <br/>3. 只支持同步的调用方式。 <br/>4. 仅仅提供了以SOAP方式暴露Web服务的最小化的支持，不支持全面的REST架构设计。 <br/><br/>相关资源： <br/>简介：http://ws.apache.org/axis2/1_2/rest-ws.html <br/><br/>sqlREST，最新版本0.3.1 <br/>特点： <br/>1. 为任何可以通过JDBC访问的数据库提供Web服务访问接口，自动将REST风格的HTTP请求转换为相应的数据库SQL语句，并将数据库中的记录编码为XML格式传给客户端。是REST风格的HTTP请求到数据库中的数据的直接映射。 <br/>2. 基于Servlet API开发。 <br/>缺点： <br/>1. 因为是REST风格的HTTP请求到SQL语句的直接映射，因此强制使用以SQL和关系数据库为中心的数据建模设计方法，不支持面向对象的设计。灵活性很低，难以实现较为复杂的业务逻辑。 <br/>2. 因为资源的定义仅限于数据库的表，难以实现更高层次的抽象，必然会导致非常细粒度的API。应用的性能和可伸缩性都难以保证。 <br/><br/>相关资源： <br/>教程：http://sqlrest.sourceforge.net/5-minutes-guide.htm <br/><br/>REST-art，最新版本0.2 <br/>特点：一个旨在替换复杂的SOAP框架的REST框架，用来作为替代SOAP方便地发布Web服务的工具。不是基于Servlet API开发。 <br/>缺点： <br/>1. 目前尚处于刚刚起步的阶段，功能非常少。 <br/>2. 不是基于Servlet API，带来了额外的学习成本。 </span><br/>Tags - <a href="https://www.heckjj.com/tags/rest/" rel="tag">rest</a> , <a href="https://www.heckjj.com/tags/%25E4%25BB%2580%25E4%25B9%2588%25E6%2598%25AFrest%25E6%25A1%2586%25E6%259E%25B6/" rel="tag">什么是rest框架</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/rest-framework-for-java-html/#blogcomment</link>
<title><![CDATA[[评论] Java REST框架的架构设计]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/rest-framework-for-java-html/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>