查看: 511747|回复: 26

【大话IT】深入理解Java RESTful Web Service实战

[复制链接]
认证徽章
论坛徽章:
127
茶鸡蛋
日期:2012-01-16 14:24:41鲜花蛋
日期:2012-06-06 14:48:18双黄蛋
日期:2013-01-07 21:07:482013年新春福章
日期:2013-02-25 14:51:24优秀写手
日期:2013-12-18 09:29:082014年新春福章
日期:2014-02-18 16:44:08马上有对象
日期:2014-02-18 16:44:08马上加薪
日期:2014-03-18 09:57:11马上有车
日期:2014-03-20 16:13:24马上有房
日期:2014-03-20 16:14:11
发表于 2014-10-15 16:09 | 显示全部楼层 |阅读模式

REST是世界上最成功的分布式应用架构风格,作为一名Web开发者,如果您还没听说过“REST”这个词,就太Out啦!可是大多数人是雾里看花,对REST的理解还停留在“盲人摸象”的阶段。有人说:“我们这套新的API决定不用Web Service(SOAP+WSDL),而是直接使用HTTP+JSON,也就是用RESTful的方式来开发。” 不用SOAP,甚至也不用XML,就自动变成了RESTful了。REST究竟是什么?本期话题我们邀请到了《Java RESTful Web Service实战》这本书的作者韩陆坐镇,欢迎大家积极参与话题讨论,就自己的疑难问题请教韩陆老师。


话题讨论:

1.REST究竟是什么?是一种新的技术、一种新的架构、还是一种新的规范?

2.REST与传统的Web Service究竟有没有本质的区别?如果Web Service已经足够好了,为什么还会有REST?作为世界上最成功的分布式应用架构风格,它是为运行在互联网环境的分布式超媒体系统量身定制的,它究竟有哪些优势?

3.从架构风格的抽象高度来看,常见的分布式应用架构风格有三种:1.分布式对象(Distributed Objects,简称DO)、2.远程过程调用(Remote Procedure Call,简称RPC)、3.表述性状态转移(Representational State Transfer,简称REST);这三种风格有哪些实例?请举例说明。

4.在互联网中REST占据了统治地位,但在企业内网中却面临着DO和RPC的挑战,为什么?分布式对象DO与REST有哪些差别?RPC与REST有哪些不同?

5.在Java 世界中,与大Web Service 相对应的规范是JAX-WS。新的规范是Java RESTful Web Service 简称JAX-RS, JAX-RS能否取代JAX-WS?

6.您是否使用过使用Java开发REST式的Web服务经历?请分享下个人经验。


活动时间: 2014年10月15日-2014年11月9日

活动奖励:根据大家的回复情况评选若干名获奖会员,赠送技术图书一本

书名:Java RESTful Web Service实战

简介:国内首本完整、深度地讲解如何基于Java标准规范实现REST风格的Web服务的专著,阿里巴巴Java技术专家12年开发经验结晶,3位业内著名技术专家联袂推荐!不仅深刻解读了最新的JAX-RS标准和其API设计,以及Jersey的使用要点和实现原理,而且系统讲解了REST的基本理论,更重要的是从实践角度深度讲解了如何基于Jersey实现完整的、安全的、高性能的REST式的Web服务。

java.jpg






认证徽章
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
发表于 2014-10-16 09:18 | 显示全部楼层
本帖最后由 jieforest 于 2014-10-16 14:39 编辑

RESTful Web服务的书一直很少,记得O'Reilly出过一本,还有Packt出过两本CXF和Axis2的入门书,都没翻译到国内。想看看这本书,

————————————————————————

1.REST究竟是什么?是一种新的技术、一种新的架构、还是一种新的规范?
REST即表述性状态转移,英文全称Representational State Transfer,是Roy Fielding博士在2000年他的博士论文中提出的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
REST是一种架构风格,它既不是新技术,也不是新的规范。REST利用了HTTP协议提供的几个方法来实现了网络资源的增删改查。

2.REST与传统的Web Service究竟有没有本质的区别?如果Web Service已经足够好了,为什么还会有REST?作为世界上最成功的分布式应用架构风格,它是为运行在互联网环境的分布式超媒体系统量身定制的,它究竟有哪些优势?
传统的Web Service指的是SOAP Web服务,两者的区别极大。
SOAP即Simple Object Access Protocol,它是一个协议规范,基于XML格式,而REST只是一种架构风格,采用XML或JSON等交换格式都可以。
REST简单、清晰,而SOAP则比较复杂,而且SOAP协议有很多标准的扩展协议规范,比如WS-Security、WS-Routing、WS-Referral等等。
REST很好理解,且极易上手;不过由于它缺乏标准,因此只被看作是一种架构方法。而SOAP是一个工业标准,它具备良好定义的协议,以及一套良好确立的规则,在大型和小型系统中均有采用。
企业级应用通常会考虑SOAP,而互联网应用则通常考虑用REST。

3.从架构风格的抽象高度来看,常见的分布式应用架构风格有三种:1.分布式对象(Distributed Objects,简称DO)、2.远程过程调用(Remote Procedure Call,简称RPC)、3.表述性状态转移(Representational State Transfer,简称REST);这三种风格有哪些实例?请举例说明。
分布式对象(Distributed Objects,简称DO)是早期做分布式系统采取的技术,它的实例有:微软的COM/DCOM技术,CORBA技术等。
远程过程调用(Remote Procedure Call,简称RPC),也是早期做分布式系统采取的技术,它是基于C/S模型调用的机制,客户机向服务器端发送调用请求等待服务器应答,是一种典型的请求应答机制,大致过程可以理解为本地分布式对象向本机发请求,不用自己编写底层通信本机会通过网络向服务器发送请求,服务器对象接受参数后,经过处理再把处理后的结果发送回客户端。它的实例有Sun公司的Java RMI(Remote Method Invocation)技术、EJB技术等。
表述性状态转移(Representational State Transfer,简称REST),利用HTTP协议,是目前最适合的技术。

4.在互联网中REST占据了统治地位,但在企业内网中却面临着DO和RPC的挑战,为什么?分布式对象DO与REST有哪些差别?RPC与REST有哪些不同?
1)这很正常,REST架构风格在互联网应用中得到广泛验证,但对于企业内网而言,技术还比较新。
2)现有的企业应用要改造成REST,代价太大。
3)DO和RPC太成熟了,旧的习惯主导一切。
分布式对象DO与REST的区别在于分布式对象采用专有协议,REST采用HTTP协议;分布式对象不是跨平台的,REST是跨平台的。
RPC与REST的区别:RPC以动作为中心,而REST以资源为中心;RPC是C/S架构,而REST既可以是B/S架构,也可以是C/S架构。

5.在Java 世界中,与大Web Service 相对应的规范是JAX-WS。新的规范是Java RESTful Web Service 简称JAX-RS,JAX-RS能否取代JAX-WS?
JAX-RS不太可能取代JAX-WS,至少短时间内不可能。原因很多,主要阐述两点,一是JAX-WS有自己适用的场景;二是技术是为业务服务的,用JAX-WS能搞定的事,不一定就一定要使用JAX-RS。

6.您是否使用过使用Java开发REST式的Web服务经历?请分享下个人经验。
我经常用Java开发REST服务。这几年很多项目都用到了REST服务,尤其是移动互联网应用,通过REST服务暴露接口,供Android终端、iOS终端调用。
用Java开发REST服务,我用的最多的是Jersey,Apache CXF框架也用过,但它显得笨重,用Jersey更加轻量级、高效。
JBoss提供的RESTeasy框架也不错,跟Jersey差不多。
至于REST测试,可以用浏览器,或者编写使用curl命令的脚本,或者用soapui工具等,还可以用Chrome浏览器的REST Client插件等等。

使用道具 举报

回复
认证徽章
论坛徽章:
17
生肖徽章2007版:猴
日期:2015-07-24 10:50:33紫水晶
日期:2015-09-14 19:29:07萤石
日期:2015-09-14 19:24:48萤石
日期:2015-09-13 14:30:02萤石
日期:2015-09-11 23:05:02红宝石
日期:2015-09-11 23:04:43萤石
日期:2015-09-11 23:04:27生肖徽章2007版:兔
日期:2015-07-31 16:43:10生肖徽章2007版:龙
日期:2015-07-24 10:51:00生肖徽章2007版:龙
日期:2015-07-24 10:50:51
发表于 2014-10-15 18:31 | 显示全部楼层
支持111

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2014-10-15 19:21 | 显示全部楼层
非常高兴itpub能提供REST讨论,这为大家提供了一次分享的机会。无论从REST理论还是实战角度,各位一定都颇有感触或带有某些疑惑,不妨在这里交流一下,互相学习。幸运的是我们生长在这样一个时代,思想活跃、技术蓬勃;我们总说越智慧的往往是越简单的,这也正是REST所崇尚的。Now, it's your turn to talk about it!

使用道具 举报

回复
发表于 2014-10-16 11:20 | 显示全部楼层
支持

使用道具 举报

回复
论坛徽章:
2
2014年新春福章
日期:2014-02-18 16:49:31马上有钱
日期:2014-02-18 16:49:31
发表于 2014-10-16 15:44 | 显示全部楼层
分布式应用架构风格,还是很不错的

使用道具 举报

回复
论坛徽章:
0
发表于 2014-10-16 21:21 | 显示全部楼层
正好想学一下restful,谢谢了

使用道具 举报

回复
招聘 : 数据库管理员
认证徽章
论坛徽章:
275
生肖徽章2007版:鼠
日期:2009-11-25 17:01:33生肖徽章2007版:牛
日期:2009-02-07 09:37:19生肖徽章2007版:虎
日期:2008-09-28 13:40:38生肖徽章2007版:兔
日期:2009-09-10 11:22:26生肖徽章2007版:龙
日期:2012-08-10 14:09:58生肖徽章2007版:蛇
日期:2013-02-25 15:21:30生肖徽章2007版:马
日期:2009-03-10 21:15:36生肖徽章2007版:羊
日期:2009-09-10 11:27:42生肖徽章2007版:猴
日期:2009-02-10 09:47:38生肖徽章2007版:鸡
日期:2012-09-29 11:39:23
发表于 2014-10-16 21:53 | 显示全部楼层
想学习一下。我们公司现在的使用的接口平台(我们领导起名叫DESata Exchange System),在评估架构时,有同事建议用ActiveMQ,说是不容易宕机,但我考虑到标准问题,最后还是建议他们用WEB SERVICE,现在系统运行平稳。
相信没有最好的框架,只有最适合的框架。
对于我来说,RESTful对于企业级的应用还是示知数,真心希望论坛里有更多关于RESTful的文章发表,可以让我有机会深入学习。

使用道具 举报

回复
认证徽章
论坛徽章:
8
红宝石
日期:2014-08-28 15:18:18紫水晶
日期:2014-08-28 15:18:42祖母绿
日期:2014-09-11 13:38:41itpub13周年纪念徽章
日期:2014-10-08 15:13:38马上有车
日期:2014-10-09 16:50:00蓝锆石
日期:2014-11-05 17:13:52itpub13周年纪念徽章
日期:2014-11-17 17:01:01蓝色妖姬
日期:2015-01-05 17:16:44
发表于 2014-10-17 16:38 | 显示全部楼层
做软件应用开发,我们一般主要考虑两个问题:(1)用户体验(易用性)
                                                               (2)提高开发人员的开发效率
而,REST正是基于此提出的。同时,用java开发web应用,存在一个问题:由于web需要的多样性,Java这类语言不够敏捷,严重影响了开发的效率,越来越多的开发者选择采用PHP、ASP或者RoR替代Java。  
所以REST软件架构,作为一种专门针对网络应用的设计和开发方式,它可以很好的降低开发的复杂性,提高系统可伸缩性和开发效率。
REST在互联网应用程序中占据了主流,但在企业级应用中,其认可度还不是很大,一般企业级应用需求中,变更不是很大,让其重新基于REST架构开发,还是不太可能

使用道具 举报

回复
论坛徽章:
4
ITPUB9周年纪念徽章
日期:2010-10-08 09:32:262011新春纪念徽章
日期:2011-02-18 11:43:34ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282013年新春福章
日期:2013-02-25 14:51:24
发表于 2014-10-17 18:09 | 显示全部楼层
jieforest 发表于 2014-10-16 09:18
RESTful Web服务的书一直很少,记得O'Reilly出过一本,还有Packt出过两本CXF和Axis2的入门书,都没翻译到国 ...

说得很好!  很有道理!移动应用都建议采用 Rest架构进行服务端调用!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表