论坛首页 Java企业应用论坛

从分布式系统的角度看REST

浏览 76297 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-05-24  
XMLDB 写道
稍做一点包装也不行吗?

不可能,因为这两种架构风格的约束和假设存在着很大的冲突,几乎就是大相径庭。掺合在一起是肯定不会得到什么好处的。
0 请登录后投票
   发表时间:2007-05-25  
dlee 写道
to jellyfish,江南白衣:
好的,我下一个定语:RPC和分布式对象这两种架构风格完全不适合面向Internet的Web应用,REST是专门为这样一类场景而量身定制的。任何一种架构风格都有它的一组基本的假设和约束,因此并不存在一种普适的“银弹”风格,REST当然也不是一种银弹风格。但是对于Internet和Web来说,REST是极其重要的,它已经足以涵盖一大批应用类型了。而来自Web开发领域的一些技术也会逐渐渗透并影响企业应用的开发(否则当年C/S结构的企业应用就没有必要向B/S结构大迁移了,在很多老一点的朋友看来完全是一次盲动),所以我相信Ajax、Ruby on Rails、REST、RIA等等新的技术都会逐渐进入企业应用,这只是一个时间的问题。

don't know about this, so no comment.

dlee 写道

即使对于企业应用而言,大多数普通的企业应用并不需要分布式对象,这句话不是我说的,Rod Johnson和Martin Fowler等人在不同的场合说过多次。所以,如果说分布式对象是做企业应用的must know,完全是在胡扯,特定于金融行业这样说还差不多。但是企业应用范围太广了,任何一个行业都有不同的需求,所以我也同意两位的意见,不能一概而论将分布式对象说死。但是也不能将金融行业的需求任意扩大化,言必称分布式对象,那样我们又回到了3年前盲目推崇EJB2.x的时代了。不分青红皂白为项目架构引入分布式对象,这样做是极其愚昧的。

Actually, good reminder. I personally vetoed several proposals on ejb usages in several cases. Yes, make sure you know what you are doing. Blindly following the trend is stupid.
0 请登录后投票
   发表时间:2007-05-27  
为什么有分布式的需求?
我觉得最主要的还是做EAI(企业应用集成),以前我们做企业应用,一般都是孤立系统,譬如公司内部独立系统。但经过几年的发展,企业发现这些信息孤岛的整体运作效率很低,譬如人力资源系统和项目管理系统的用户是独立的,现在要进行整合。当然,EAI更多是企业的核心系统的整合,譬如制造业企业的供应链系统。

怎么整合?当然,要是开始实行像ERP系统,统一数据库恐怕就没有这些问题。另外,要把那些信息孤岛都抛弃重做,能够达到理想的效果吗?考虑到各种风险,干脆取一种折中吧:EAI。

实现EAI有很多种方式,在JavaSE方面,大家看看附件Java API的一张图:Integration API:RMI、JDBC、JNDI、CORBA。如果体现在JavaEE,就是EJB了。

现在在Java领域搞EAI,还是主要三种方式:EJB、JMS、Web Services(SOAP和REST)。去年年底,我做一个地区门户网站内部的集成,就用REST,集成的语言有PHP、Java、Ruby。但一直没有解决一个问题:事务。

现在Web Services(WS)为什么这么火?我认为就是所谓的SOA,而这种SOA,更多是很无奈的遗留系统的集成:我有跑了几十年的C、COBOL系统,现在想让它对其它新系统提供服务,不用WS,还有更好的选择吗?WS这种东西在日本开始流行,因为日本的信息化比中国早不下20年,它们的应用集成需求非常大,而中国的企业信息化才开始几年,集成需求并不强烈。

对于EAI,我认为JMS还不是主流,应该说是Message系统,如IBM的MQ,因为它是跨语言的。而且Message系统可以很好处理像事务这些关键的企业应用需求。
而REST在这个方面还不成熟,虽然有补偿事务。另外,REST也没有安全规范,而基于SOAP有WS-Security规范,虽然也是这三年的事情,也不是很成熟。当然,基于SOAP的WS的事务规范目前也只是draft阶段。
如果REST不能保证安全、事务这两个关键性需求,那么,我认为它就很难在企业应用领域推广,也许互联网应用还不错,如成功实施REST的Amazon、ebay。
而分布式,主要还是在企业应用。
REST,我认为更多是一种 naked HTML,专门供应用程序读取,而不是通过浏览器供人看的HTML。

我们往往以做互联网应用的视角来思考企业应用,大家现在去看专门做企业应用领域的TIBCO(http://www.tibco.com:BPM、SOA)、IBM、BEA的产品家族核心就知道了。

据一些大公司推测,未来最有市场前景的几个领域,应该是EAI、电子商务、ERP。




  • 描述: Java API的一张图:Integration API:RMI、JDBC、JNDI、CORBA
  • 大小: 33.9 KB
  • 描述: 据一些大公司推测,未来最有市场前景的几个领域,应该是EAI、电子商务、ERP。
  • 大小: 98.7 KB
0 请登录后投票
   发表时间:2007-05-27  
呵呵,zwchen和我想的一样,不过表达清晰多了。
所以dlee之前已经加了定语--面向Internet的Web应用领域。
0 请登录后投票
   发表时间:2007-05-27  
to zwchen:

你说的SOA的事物,指的是分布式事务吗?
0 请登录后投票
   发表时间:2007-05-28  
robbin 写道
to zwchen:

你说的SOA的事务,指的是分布式事务吗?


是的,不过,我说的是WS事务,不是SOA的,因为SOA和WS完全是两码事,SOA本身和技术无关的,它只是一种软件架构模式,组织系统组件的方式。SOA不是一种技术,也没有绑定到一种技术。(http://www.answers.com/topic/service-oriented-architecture)。

而Web Services和EJB、CORBA、DCOM一样,也只是一种分布式实现技术而已,更具体说,应该是SOAP,因为它可以保证WS的两端的对等性,而REST更多是单向的(Amazon的REST服务)。譬如,两个WS提供商之间,就应该是对等、双向的,譬如常见的商务旅游预定:旅游公司+宾馆+航空公司三方的WS集成。

对于WS的事务,主要是WS-Transaction(http://www.answers.com/WS-Transaction):http://www.ibm.com/developerworks/library/specification/ws-tx/。像是现在还没有工业级的厂商实现。

WS事务肯定是分布式的,因为它涉及到几个服务提供商,有点类似于数据库、消息服务器级别的JTA(两阶段提交)。
0 请登录后投票
   发表时间:2007-05-28  
REST设计的初衷本来就不是做EAI,它设计的初衷是做什么,相信大家都完全有能力读懂Fielding的论文。将REST的弱项与SOAP设计的初衷和强项相比,就好像让张飞和织女来比绣花一样,这样得出REST就是很差的结论是不客观的。

我推荐大家看一篇文章:
http://www-128.ibm.com/developerworks/cn/webservices/ws-restvsoap/?ca=dwcn-newsletter-webservices
James M. Snell 写道
如果 API 使用的是 REST 样式的互操作,REST 方法的拥护者就会将该 API 作为说明为什么 REST 样式服务比 SOAP 样式服务更优越的重要例子而加以称赞;同样地,如果 API 使用 SOAP 样式 Web 服务模式,情况也类似。似乎很少有人关心这样的一个事实,模式的选择主要取决于正在被执行的应用程序的类型,并且像所有优秀的体系结构决策一样,开发者应该将他们的选择基于正在被开发的应用程序的特定技术需求和特性,而不是基于针对单一体系结构方法的一些特殊偏好。

对于面向Internet的Web应用来说,其实大部分都可以说是面向资源的。例如robbin想基于REST架构开发JavaEye的功能,JavaEye是一个典型的面向资源的应用,因此这毫无疑问是REST所最适合的一个领域。
0 请登录后投票
   发表时间:2007-05-28  
昨天孟岩告诉我:
孟岩 写道
我刚刚从美国回来,参加了IBM Impact 07大会,现在IBM已经把REST放在SOA整个的战略框架之中来考虑,因此很快会出现商业的REST支持产品。

另外,M$前一段时间推出了自己的REST服务:
http://www.infoq.com/cn/news/2007/05/astoria

作为SOAP的两个最大支持者的IBM和M$来说,这其实代表着一种信号:他们已经认识到REST对于SOA也是非常有价值的架构选项。SOAP对于他们来说只是一个小的技术,SOA才是他们市场博弈的关键目标。我们可以再观察上一两年,现在还不宜说死,IBM和M$将来抛弃SOAP也不是没有可能的。
0 请登录后投票
   发表时间:2007-05-28  
本月初,国际标准联盟OASIS宣布,其成员已经正式批准Web服务事务处理(WS-Transaction)1.11版本成为OASIS标准,代表着其已经成为最高等级的标准。(http://searchwebservices.techtarget.com.cn/comment/10/3342510.shtml)
但这里还是WS-*开头的,SOAP是WS-*基础,而且相关技术、规范、标准都在发展中。有权威组织的支持,有IBM,IONA,微软,Oarcel等国际大公司的支持,SOA不火都不行.
0 请登录后投票
   发表时间:2007-05-28  
我们还是需要将严肃的技术讨论与大公司的市场炒作区分开。崇拜Bill Gates是一回事情,不能因为崇拜Bill Gates就认为M$的一切技术永远都是伟大光明正确的。对于这样的同学,基本上不可能与他开展任何严肃的技术讨论。

SOAP对于HTTP的利用是低效的,这是毫无疑问的。SOAP的设计者当时并不理解HTTP的设计意图,仅仅将HTTP当作一种传输协议而已。所以Fielding在其论文的最后一章,专门指出HTTP并不是一种传输协议。这是说给谁听的呢?我认为很大程度上是说给SOAP的设计者听的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics