李锟

汉家烟尘在东北,汉将辞家破残贼。男儿本自重横行,天子非常赐颜色。摐金伐鼓下榆关,旌旆逶迤碣石间。校尉羽书飞瀚海,单于猎火照狼山。山川萧条极边土,胡骑凭陵杂风雨。战士军前半死生,美人帐下犹歌舞。大漠穷秋塞草腓,孤城落日斗兵稀。身当恩遇恒轻敌,力尽关山未解围。铁衣远戍辛勤久,玉箸应啼别离后。少妇城南欲断肠,征人蓟北空回首。边庭飘飖那可度,绝域苍茫更何有。杀气三时作阵云,寒声一夜传刁斗。相看白刃血纷纷,死节从来岂顾勋。君不见沙场征战苦,至今犹忆李将军。

用户操作
[即时聊天] [发私信] [加为好友]
dleeID:mozilla
151077次访问,排名515好友0人,关注者11
mozilla的文章
原创 65 篇
翻译 0 篇
转载 1 篇
评论 241 篇
最近评论
xiaonanguatou:有接私活的,有建设性的人才没·技术在好目中无人的勿饶,
jiangge_nk:AJAX缺的应该是统一的运行环境。
而造成这种不统一的局面是没有一个规范的HTML协议。
不同的浏览器有自己的一些恶劣特性(商家的逐鹿百姓的流离),不管是从效率上讲还是从内部结构来讲都有差异。再者搜索引擎对此也支持不好,主要原因也是其不成熟,不规范,没有形成统一的大家必须遵循东西。
AJAX的底层javascript没有什么起色,也没有统一规范。其实造成这些原因……
Yibans:好心人给个《Flex中文帮助》的链接吧.....
qingtianyu9:我告诉你我的决定:原来一直信奉Eclipse为神,到了2008年,出了NetBeans 6.5 m1后,我抛弃了Eclipse 3.4版,我决定改用NetBeans 6.5做项目开发。
taromong:现在确实对怎么去学习flex感到无从下手,看了lz的发言,觉得感受很深,确实需要系统的学习一下了
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 REST架构风格的性能为何比其他的架构风格更好收藏

    新一篇: Fielding的论文已经翻译完成 | 旧一篇: 如果你不肯告诉我你的架构所做的假设,我就认为你是在有意行骗

    今天与一起翻译Fielding论文的朋友杨光讨论技术问题,杨光认为因为REST是基于文本来进行通信,所以其性能肯定不如基于二进制格式的通信协议好。因为这是一个对于REST的明显的误解,所以我觉得有必要专门在这里澄清一下。以下是我们的讨论内容,David是我,Allen是杨光。

    David: 他们客户端用C#,服务器端用Java,准备用RIA+REST+Java的架构。C#也有类似XMLHttpRequest的对象。
    Allen: 为啥是这么怪异的结构,都用.net得了~
    David: 那是不可能的,企业应用服务器端主要还是用Java。
    Allen: 那就都用java
    David: C#与Java通信,主要有两种方式:基于SOAP或者基于HTTP。基于HTTP就是REST了。
    David: 如果基于SOAP,肯定会影响开发效率。另外性能也会差很多。
    Allen: 无论什么方法,性能都要比单一使用一种平台慢的
    David: 不会的,REST只用到了HTTP。
    David: 单个平台,客户服务器间走二进制的通信协议,性能也许比REST要好,那就与HTTP无关了。不过这样做不够灵活,客户端与服务器耦合太紧。
    Allen: 怎么不会呢?rest也没有直接用servlet快啊。
    David: REST当然可以直接用Servlet提供服务
    David: 但是你基于Servlet,很多日常事务的处理都要自己做,例如URI到处理器的映射。所以最好是有一个框架帮助你做这些事情。
    Allen: 一种是通过xml或者json,一种是直接序列化的参数,性能还是不一样吧
    David: REST没有说一定要用XML或者一定要用JSON格式,任何基于文本的格式都是允许的。
    Allen: 但是肯定不是序列化的
    David: 你说的序列化是什么意思呢?
    Allen: 我的意思是C#和java通信,走的肯定是语言外的通道,使用rest也是通过语言外的通道传输数据。如果是一个平台,那么就可以走语言内的通道,这个和rest没关系了。
    David: 这只是一种猜测。所谓的语言内的通道,对于Java来说,只有RMI,连SOAP都不算。
    Allen: 嗯,我也是空想,实际做出来最有说服力。到时候你可以把资讯的经验和我分享一下。
    David: RMI是RPC的风格,中间传输二进制数据,性能应该比HTTP的纯文本稍微高一些,但是这样做有很多的代价。
    David: 那篇论文将来我们都需要反复多看几次,实际上REST是权衡很多种架构风格之后的结果,已经能够得到最佳的性能了。
    David: 性能不单纯取决于传输数据是二进制还是纯文本。我告诉你为什么。
    David: 因为二进制数据的语义对于中间组件是不可见的,它就无法做有效的缓存,当然也无法确定此数据是否会对安全构成威胁。
    David: REST强调通信语义对于中间组件的可见性,这样可以改善性能和可伸缩性。
    David: 所谓的中间组件,浏览器就是一种。浏览器可以根据通信的语义来确定数据有没有发生改变,从而进行有效的缓存。
    David: RMI传输数据再有效,它的数据也无法做有效的缓存。因此RMI的性能未必比REST好,况且不能缓存会带来严重的可伸缩性问题。
    David: 这些思想其实在论文中都有很详细的描述,你再看一遍就全明白了。
    Allen: 这么说也有道理,等有实现rest的经验后,就一切都明白了

    发表于 @ 2007年05月23日 11:17:00|评论(loading...)|编辑

    新一篇: Fielding的论文已经翻译完成 | 旧一篇: 如果你不肯告诉我你的架构所做的假设,我就认为你是在有意行骗

    评论

    #YuLimin 发表于2007-05-23 22:00:15  IP: 124.240.119.*
    RMI传输数据再有效,它的数据也无法做有效的缓存。因此RMI的性能未必比REST好,况且不能缓存会带来严重的可伸缩性问题。

    在RMI Client的一端进行定制Cache或许是一种可行的方案,这样就减少通讯了。
    #chen82607 发表于2007-05-24 23:41:22  IP: 219.134.120.*
    任何信息都可以看作是二进制信息。
    信息是什么,完全取决于程序打算如何看它,它本身是没有决定权的。
    #andot 发表于2007-06-09 20:47:27  IP: 222.175.129.*
    一看就是两个外行在充内行。
    你们真的理解什么叫序列化吗?xml 或者 json 本身也是一种序列化格式,例如 SOAP 和 XML-RPC 的序列化格式就是 XML 的,JSON-RPC 的序列化格式就是 JSON 的。这与 Java RMI 或者其它的 RPC 的序列化没什么本质区别。
    #mozilla 发表于2007-06-09 22:15:00  IP: 122.51.100.*
    to andot:
    你真的理解我们说的REST是个什么东西吗?思路还局限在你的那个PHPRPC的小圈圈里面呢吧?

    还是先为自己补充一点营养吧。
    #andot 发表于2007-06-28 09:04:34  IP: 222.175.129.*
    我这里可是只字未提 PHPRPC 啊!我看是你自己不理解什么是 REST,被我一说心虚了吧!哈哈!

    最鄙视那些知道一个表面的概念就在那里充内行,大吹特吹的人啦。你们在这里不断的鼓吹 REST,只不过是为了能让你们翻译的那基本 REST 的书买的更好一点而已罢了。当初鼓吹 Ajax 的时候,不就是为了卖你们翻译的那几本 Ajax 的书吗?过几年开始贬 Ajax 和 REST 的人也定是你们这些人,因为到时候说不定又出来一个什么 buzzword,然后你们就开始找关于那个 buzzword 的书翻译了,再然后就是鼓吹这个 buzzword,贬低其它技术,目的呢只有一个,卖更多的书,赚更多的钱!这就是你们的大圈圈吧?

    #mozilla 发表于2007-06-28 10:25:56  IP: 59.172.77.*
    to andot:
    呵呵,你的观点,看来也仅限于此了。
    做翻译,甚至做原创都是赚不到钱的,靠这个赚钱,是100%没有可能的。

    多学习,多交流,不要再坐井观天了。
    #Caixiaopig 发表于2007-07-16 09:18:04  IP: 221.133.225.*
    对这句话不是很理解--"性能应该比HTTP的纯文本稍微高一些"
    为什么说HTTP是基于文本的了?
    意思是说HTTP协议传输的都是文本而不是经过二进制编码的?
    #mozilla 发表于2007-07-19 09:52:46  IP: 125.98.188.*
    to Caixiaopig:
    因为我们基于Ajax技术来实现REST架构,通常要使用XMLHttpRequest对象,这个对象与服务器交互使用的几乎全部都是基于文本格式的数据(简单文本、XML、JSON、etc.)。XMLHttpRequest对象传输二进制格式的数据需要经过额外的编码(通常使用Base64编码,和电子邮件附件的编码一样)。

    如果不使用XMLHttpRequest对象和Ajax,使用HTML表单与服务器交互,使用的也全部都是基于文本格式的数据。

    并不是说HTTP只能传输文本格式的数据。
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © dlee