论坛首页 Java企业应用论坛

从分布式系统的角度看REST

浏览 76268 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-05-24  
to jellyfish,江南白衣:
好的,我下一个定语:RPC和分布式对象这两种架构风格完全不适合面向Internet的Web应用,REST是专门为这样一类场景而量身定制的。任何一种架构风格都有它的一组基本的假设和约束,因此并不存在一种普适的“银弹”风格,REST当然也不是一种银弹风格。但是对于Internet和Web来说,REST是极其重要的,它已经足以涵盖一大批应用类型了。而来自Web开发领域的一些技术也会逐渐渗透并影响企业应用的开发(否则当年C/S结构的企业应用就没有必要向B/S结构大迁移了,在很多老一点的朋友看来完全是一次盲动),所以我相信Ajax、Ruby on Rails、REST、RIA等等新的技术都会逐渐进入企业应用,这只是一个时间的问题。

仅仅是一个预言,也不会使世界立即发生变化,两位也不必着急上火,过上一两年再来看看吧。

即使对于企业应用而言,大多数普通的企业应用并不需要分布式对象,这句话不是我说的,Rod Johnson和Martin Fowler等人在不同的场合说过多次。所以,如果说分布式对象是做企业应用的must know,完全是在胡扯,特定于金融行业这样说还差不多。但是企业应用范围太广了,任何一个行业都有不同的需求,所以我也同意两位的意见,不能一概而论将分布式对象说死。但是也不能将金融行业的需求任意扩大化,言必称分布式对象,那样我们又回到了3年前盲目推崇EJB2.x的时代了。不分青红皂白为项目架构引入分布式对象,这样做是极其愚昧的。
0 请登录后投票
   发表时间:2007-05-24  
Nod,Nod,有定语就好啦,几人忧天的担心业界像盲目推崇EJB2.x一样推崇新方案,将它扩大化,言必称,而忽略了它的适应范围定义,所以唱唱对台,莫怪啊:)
0 请登录后投票
   发表时间:2007-05-24  
资源不是对象么?发现我对这些业界的概念从来就理解不了。尤其是从SOA开始,我就纳闷难道以前就不是面向服务的么?创造软件大多数都是服务于客户的需求,或是为客户想需求来吸引客户等,本身每个功能都是一种服务啊,为什么会吹的那么火呢。火也只是应该火一下xml啊,soa凭什么火啊。
还有我不觉得ajax和直接说javascript有啥区别。04年的时候看到dlee介绍xmlhttp,于是就学习了一段时间,做公司内部网站时就用了下。05年的时候,突然有个同事给我们介绍说现在有种新技术非常牛比,在实现某些某些功能时可以怎么用怎么用,要推荐公司使用(04年时我已经推荐过xmlhttp,说可以在某些场合使用,被否定了),然后开始大概介绍,说的神乎其神,唬的我一愣一愣的,当时我就想,我靠居然还有我都没听说过的这么牛比的技术。于是上网一搜,才发现,不知道哪天有人给“用javascript调用xmlhttp和javascript调用dom编程”起了个这么个名字。为什么一定要起个新名字呢?
前面都在跑题,发发牢骚,因为每次看见新名词,看不到新技术,我都很困惑。
CORBA,EJB,Web Services,REST,我认为无非都是访问资源,返回信息,协议不同。架构都是一样的,关键是它用的协议是不是一种标准或者它是不是能成为一种标准吧。越标准,越流行。个人感觉技术上没什么新意。只是越来越符合标准,越来越远离专有技术。
喜欢标准,喜欢W3C,IETF/RFC.
0 请登录后投票
   发表时间:2007-05-24  

资源 != 对象,这完全是两码事。 对于REST的resource,有它自己严格的定义,你可以去看Fielding的论文,或者看我杭州网侠大会的演讲PDF。不被大词忽悠这是很好的态度,但是完全不了解,张口就下结论也是不对的态度。
0 请登录后投票
   发表时间:2007-05-24  
qingyujingyu427 写道
还有我不觉得ajax和直接说javascript有啥区别。不知道哪天有人给“用javascript调用xmlhttp和javascript调用dom编程”起了个这么个名字。为什么一定要起个新名字呢?


CORBA,EJB,Web Services,REST,我认为无非都是访问资源,返回信息,协议不同。架构都是一样的,关键是它用的协议是不是一种标准或者它是不是能成为一种标准吧。越标准,越流行。个人感觉技术上没什么新意。只是越来越符合标准,越来越远离专有技术。


不提倡盲目追逐新名词,但也不提倡这种大手一挥--“他们都是一样的,我早知道了”。

当年很多人都用过xmlhttp+js写双选择框,但不等于就可以对dojo,ext-js,DWR等Ajax框架视而不见,永远只得一句,我当年也用过xmlhttp+js.
我当年也用java写过helloworld,是不是至此之后Java的一切框架,类库就都不过如此了呢?

Corba,EJB,Web Service,Rest是分布式交互机制没错,但这不等于说他们就是一样的。从传输协议,编码协议,交互模式三维可以简单的归纳一个分布式交互,他们在这三维上并不完全一样,为了解决不同的问题更有很多的特点。如果你不愿意了解它们,还可以更透彻的说,“他们都是跑TCP/IP协议的交互”,但这种“透彻的归纳”并没有意义,就像说全世界的人都是人一样没有意义。而且说到标准,它们几乎都是标准:)
2 请登录后投票
   发表时间:2007-05-24  
REST只是一种新的选择,并没有得到大量的使用,在这种情况下评价有点虚。
0 请登录后投票
   发表时间:2007-05-24  
fanth 写道
REST只是一种新的选择,并没有得到大量的使用,在这种情况下评价有点虚。


目前来看,REST的最大价值只有在普及之后才能真正体现,整个网络将成为一个最大的资源共享库,想想也觉得激动,然而目前来说REST还处于推广阶段,了解REST的也仅仅只是少数,至于说使用REST设计应用多么好这点暂时还没有体验过。
0 请登录后投票
   发表时间:2007-05-24  
EJB也能作为REST的实现.
0 请登录后投票
   发表时间:2007-05-24  
XMLDB 写道
EJB也能作为REST的实现.

这是不可能的。为什么不可能,请你仔细去阅读Fielding的论文。
我先简单说一下,便于你参考:REST是一种专门为WWW量身定制的新型架构风格,EJB是属于分布式对象架构风格的一种实例架构(一个是架构风格,一个是架构风格的实例)。REST风格继承了几种传统的架构风格,并且添加了一些额外的约束。REST风格的起源中根本就没有分布式对象的影子。
0 请登录后投票
   发表时间:2007-05-24  
dlee 写道
XMLDB 写道
EJB也能作为REST的实现.

这是不可能的。为什么不可能,请你仔细去阅读Fielding的论文。
我先简单说一下,便于你参考:REST是一种专门为WWW量身定制的新型架构风格,EJB是属于分布式对象架构风格的一种实例架构(一个是架构风格,一个是架构风格的实例)。REST风格继承了几种传统的架构风格,并且添加了一些额外的约束。REST风格的起源中根本就没有分布式对象的影子。

稍做一点包装也不行吗?
0 请登录后投票
论坛首页 Java企业应用版

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