锁定老帖子 主题:关于 Web Service 的一些理解
精华帖 (0) :: 良好帖 (8) :: 新手帖 (0) :: 隐藏帖 (12)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-30
SOAP的那点代价可以忽略吧,除非打算连XML都不用,要不然看不出SOAP费了啥。
至于“最慢最低效”,请明示。怎么觉得这话这么奇怪呢。 |
|
返回顶楼 | |
发表时间:2010-04-30
SOAP速度慢性能差,这点是公认的,是不可忽略的事实。确实,SOAP就是慢在了XML上。现在高效的跨平台、跨语言、可互操作的RPC确实都已经抛弃了XML,性能上可以达到SOAP的百倍,使用上也比SOAP容易的多。
更何况现在用SOAP的人大部分都在误用,不是用SOAP传递对象,而是用SOAP传递XML,也就是用XML包装XML,所以让本来就慢的SOAP加倍的慢。而且用SOAP传递的XML都是自定义的格式,没有任何标准,所以针对每个数据都要做单独解析,因此把原本的跨平台、跨语言、可互操作也丧失了。 |
|
返回顶楼 | |
发表时间:2010-05-01
世界的ESB都已经抛弃了SOAP...
SOAP信封里不装XML... 没有标准... |
|
返回顶楼 | |
发表时间:2010-05-01
楼主总结得通俗,很不错,赞一个!!!
|
|
返回顶楼 | |
发表时间: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相关协议规范的开放性上的
|
|
返回顶楼 | |
发表时间: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本身的。
|
|
返回顶楼 | |
发表时间:2010-05-04
SOAP固然envelope可以包非XML数据
然则已经用非XML传递再用SOAP不就是脱裤子放气么。 对效率的比较也插几句。 我想一个正常的比较应该首要比较一般场景,而不是特殊场景。 效率这东西的倍数比较是倒数按概率平均的。 而且实际应用中恐怕更关心的是极端情况的效率,0.5秒改进到0.1秒固然好,但远不如10秒改进到5秒来得有用。 以你写的PHPRPC比较来说,你没做到这点。 你放在前面的差距很大的比较就没什么兴趣看。到不同的字符串的数组和自定义类型的比较才有用处。在这些场景下的优势可不是你号称的数字, “孩子是自己的好”,很正常,但捧杀真的很没意思。 |
|
返回顶楼 | |
发表时间:2010-05-05
[quote="miaow"]SOAP固然envelope可以包非XML数据然则已经用非XML传递再用SOAP不就是脱裤子放气么。 对效率的比较也插几句。我想一个正常的比较应该首要比较一般场景,而不是特殊场景。效率这东西的倍数比较是倒数按概率平均的。而且实际应用中恐怕更关心的是极端情况的效率,0.5秒改进到0.1秒固然好,但远不如10秒改进到5秒来得有用。以你写的PHPRPC比较来说,你没做到这点。你放在前面的差距很大的比较就没什么兴趣看。到不同的字符串的数组和自定义类型的比较才有用处。在这些场景下的优势可不是你号称的数字, “孩子是自己的好”,很正常,但捧杀真的很没意思。[/quote]
对Web service而言,SOAP封装非XML数据还没见过 脱裤子放屁的事自然不提倡干
效率是比较慢,谁都没否认过
“孩子是自己的好”,不觉得WS是谁的孩子,至少不是我的 它是作为一种技术出现的
捧杀更没必要了,合理地利用各种技术,把它运用到合适的场合才是我们应该做的
|
|
返回顶楼 | |
发表时间:2010-05-05
呃,上贴是回复andot,PHPRPC算是andot的“孩子”。
SOAP里面还是要是XML,不过把数据打包成非XML的流再BASE64起来当一个element,这就是自己愿意了。 SOAP解析比较慢是真,不过这是先天的,原因与其说是技术问题不如说是哲学问题。 窃以为其他传输技术都应该先和把java序列化通过HTTP传输比比,嘿嘿。 |
|
返回顶楼 | |
发表时间: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分钟。 |
|
返回顶楼 | |