论坛首页 Java企业应用论坛

关于 Web Service 的一些理解

浏览 19700 次
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (12)
作者 正文
   发表时间:2010-04-30  
SOAP的那点代价可以忽略吧,除非打算连XML都不用,要不然看不出SOAP费了啥。

至于“最慢最低效”,请明示。怎么觉得这话这么奇怪呢。
0 请登录后投票
   发表时间:2010-04-30  
SOAP速度慢性能差,这点是公认的,是不可忽略的事实。确实,SOAP就是慢在了XML上。现在高效的跨平台、跨语言、可互操作的RPC确实都已经抛弃了XML,性能上可以达到SOAP的百倍,使用上也比SOAP容易的多。
更何况现在用SOAP的人大部分都在误用,不是用SOAP传递对象,而是用SOAP传递XML,也就是用XML包装XML,所以让本来就慢的SOAP加倍的慢。而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了。
0 请登录后投票
   发表时间:2010-05-01  
世界的ESB都已经抛弃了SOAP...

SOAP信封里不装XML...

没有标准...
0 请登录后投票
   发表时间:2010-05-01  
楼主总结得通俗,很不错,赞一个!!!
0 请登录后投票
   发表时间:2010-05-03  

[quote="andot"]SOAP速度慢性能差,这点是公认的,是不可忽略的事实。确实,SOAP就是慢在了XML上。现在高效的跨平台、跨语言、可互操作的RPC确实都已经抛弃了XML,性能上可以达到SOAP的百倍,使用上也比SOAP容易的多。更何况现在用SOAP的人大部分都在误用,不是用SOAP传递对象,而是用SOAP传递XML,也就是用XML包装XML,所以让本来就慢的SOAP加倍的慢。而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了。[/quote]

 

老帖子又被翻出来

SOAP作为一种应用层之上的传输协议确实比较慢

慢在了XML和SOAP封装上

 

而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了

 

这句话不能认同,SOAP有标准,SOAP传输的XML有格式,数据不需要单独解析

1) SOAP的标准自然是SOAP标准

2) SOAP传输的XML格式是在WSDL里定义的(XMLSchema)

3) 很多工具、框架都支持根据WSDL自动生成Web Service 客户端,SOAP及XML数据可自动解析。

 

跨平台、跨语言、可互操作 是建立在Web Service相关协议规范的开放性上的

 

0 请登录后投票
   发表时间:2010-05-04  
步行者 写道

[quote="andot"]SOAP速度慢性能差,这点是公认的,是不可忽略的事实。确实,SOAP就是慢在了XML上。现在高效的跨平台、跨语言、可互操作的RPC确实都已经抛弃了XML,性能上可以达到SOAP的百倍,使用上也比SOAP容易的多。更何况现在用SOAP的人大部分都在误用,不是用SOAP传递对象,而是用SOAP传递XML,也就是用XML包装XML,所以让本来就慢的SOAP加倍的慢。而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了。[/quote]

 

老帖子又被翻出来

SOAP作为一种应用层之上的传输协议确实比较慢

慢在了XML和SOAP封装上

 

而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了

 

这句话不能认同,SOAP有标准,SOAP传输的XML有格式,数据不需要单独解析

1) SOAP的标准自然是SOAP标准

2) SOAP传输的XML格式是在WSDL里定义的(XMLSchema)

3) 很多工具、框架都支持根据WSDL自动生成Web Service 客户端,SOAP及XML数据可自动解析。

 

跨平台、跨语言、可互操作 是建立在Web Service相关协议规范的开放性上的

 

你误会我的意思了,你标记的那段红字是针对我说的“更何况现在用SOAP的人大部分都在误用,不是用SOAP传递对象,而是用SOAP传递XML,也就是用XML包装XML”这句话的。不是针对SOAP本身的。

 

0 请登录后投票
   发表时间:2010-05-04  
SOAP固然envelope可以包非XML数据
然则已经用非XML传递再用SOAP不就是脱裤子放气么。

对效率的比较也插几句。
我想一个正常的比较应该首要比较一般场景,而不是特殊场景。
效率这东西的倍数比较是倒数按概率平均的。
而且实际应用中恐怕更关心的是极端情况的效率,0.5秒改进到0.1秒固然好,但远不如10秒改进到5秒来得有用。
以你写的PHPRPC比较来说,你没做到这点。
你放在前面的差距很大的比较就没什么兴趣看。到不同的字符串的数组和自定义类型的比较才有用处。在这些场景下的优势可不是你号称的数字,
“孩子是自己的好”,很正常,但捧杀真的很没意思。
0 请登录后投票
   发表时间:2010-05-05  

[quote="miaow"]SOAP固然envelope可以包非XML数据然则已经用非XML传递再用SOAP不就是脱裤子放气么。 对效率的比较也插几句。我想一个正常的比较应该首要比较一般场景,而不是特殊场景。效率这东西的倍数比较是倒数按概率平均的。而且实际应用中恐怕更关心的是极端情况的效率,0.5秒改进到0.1秒固然好,但远不如10秒改进到5秒来得有用。以你写的PHPRPC比较来说,你没做到这点。你放在前面的差距很大的比较就没什么兴趣看。到不同的字符串的数组和自定义类型的比较才有用处。在这些场景下的优势可不是你号称的数字, “孩子是自己的好”,很正常,但捧杀真的很没意思。[/quote]

 

 对Web service而言,SOAP封装非XML数据还没见过

脱裤子放屁的事自然不提倡干

 

效率是比较慢,谁都没否认过

 

“孩子是自己的好”,不觉得WS是谁的孩子,至少不是我的

它是作为一种技术出现的

 

捧杀更没必要了,合理地利用各种技术,把它运用到合适的场合才是我们应该做的

 

0 请登录后投票
   发表时间:2010-05-05  
呃,上贴是回复andot,PHPRPC算是andot的“孩子”。

SOAP里面还是要是XML,不过把数据打包成非XML的流再BASE64起来当一个element,这就是自己愿意了。

SOAP解析比较慢是真,不过这是先天的,原因与其说是技术问题不如说是哲学问题。

窃以为其他传输技术都应该先和把java序列化通过HTTP传输比比,嘿嘿。
0 请登录后投票
   发表时间:2010-05-05   最后修改:2010-05-05
miaow 写道

而且实际应用中恐怕更关心的是极端情况的效率,0.5秒改进到0.1秒固然好,但远不如10秒改进到5秒来得有用。
以你写的PHPRPC比较来说,你没做到这点。

窃以为其他传输技术都应该先和把java序列化通过HTTP传输比比,嘿嘿。


你说得没错,PHPRPC的效率确实比SOAP快的不够多,比起Java序列化通过http传输也慢。但是PHPRPC毕竟只是个免费开源的项目。我们现在的商业版Hprose效率上是PHPRPC的10-15倍,是SOAP效率的进百倍。比起Java序列化来也要快1倍,而序列化后的数据长度只有Java序列化后的一半,所以从传输来说就是java序列化通过HTTP传输的4倍效率。

所以跟SOAP比,我们不是把10秒改进到5秒,而是把1个小时改进到少于1分钟。
0 请登录后投票
论坛首页 Java企业应用版

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