SOAP和WebService真是垃圾。

03-08-22 banq

伴随Web Service发烧,大家开始使用JAXM,使用JAXM这东东不觉得慢而讨厌吗?过去,又有多少人在真正使用SUN的SAX和DOM API。
在J2EE中,本来Web层相对EJB层要简单一点,但是M$提个什么SOAP协议,就是一个Http协议,上面挂一个XML文件,还留了两个尾巴:性能和安全。

我现在基本都是使用基于Http实现EJB远程方法调用,这个框架已经成熟,使用方便,对于性能要求高的,直接开发了基于TCP/UDP的Http传送协议,服务器端通过RMI访问EJB,JAXM也就是完成这些工作,但是我认为在使用上肯定不方便

我个人感觉Web Service是一个鸡肋,在一个Java环境中,已经有很好的很多技术支持机器之间的通讯和方法的调用,Web Service只是对异种环境才有必要,但是考虑兼容性就要牺牲性能和易用性以及安全性。谈到安全性,看看这几天折腾的冲击波,就是利用NT RPC远程调用的漏洞,真是靠了,这种安全技术来做Web Service,真是想不通。

还有SOAP协议,本来Http协议算慢的了,还要再上面加载一大堆废话XML,直接通过Http序列化传送对象多好?客户端和服务器用起来最方便,SOAP协议类似世界语,现在世界语哪有英语普及?

欢迎讨论。

AreYouOK?
2003-08-22 19:21
感觉SUN的Web Service开发包是很底层的东西,不如AXIS来的简单,JBuilder8以后对AXIS提供了很好的支持
而IBM WSAD里面的Web Service开发是基于Apache SOAP的,感觉IBM的东东没有有Borland的好用
AXIS号称比Apache SOAP快了很多,不过估计还是不尽人意



llystart
2003-08-22 21:26
呵呵,不管是不是发烧,发展趋势应该是应用之间耦合越来越松吧,XML正是提供对数据内容的标注,让对方可以看懂,而不需要双方事先规定很多协议。
不过JAXM确实挺烦人的,搞不清到底需要引那些包,总是报错 :(
希望用过JAXM的高人指点一二,谢谢

crofton
2003-08-23 01:22
看你将SOAP用在什么地方了:
如果你的application就是一套独立的东西(全Java),何苦加这一层。
如果你想给你的application外露API,供客户作二次开发。不能总要求客户跟你一样,必须使用Java。SOAP就不错,这样客户想用什么语言开发都行。以前也有xml-rpc,但SOAP毕竟是标准。
还有企业之间的信息传递,肯定需要用WebService了。

至于难用 效率低下是另外一回事!

KillerMan
2003-08-23 15:28
对于复杂的web应用和开发环境总要有一套完整的解决方案,是WEB技术发展的方向罢了,现在不成熟,不代表以后就不会流行。

sprsong
2003-08-23 17:44
我就是讨厌麻烦的东西,访问xml的jax和jdom好像都不太方便,还是jive里的那几个类访问xml方便一点。其实简简单单就是好。

banq
2003-08-23 18:10
最主要的问题是XML如果稍微复杂一点,很容易出错,经常需要XML Validator查找出错地方。

KillerMan
2003-08-24 10:24
在项目中大量使用xml技术,但没有一个可视化的开发环境,要手工去填写数据内容,效率是很低并且容易出错。
但面包总会有的。.net在做尝试,Java阵营也很快会有对应的解决方案吧。

yangkun24
2003-08-24 23:01
彭晨阳大哥,你好!请允许我称呼您为大哥(我今年22岁),看了你的网站和文章,我觉得您的确是一个高手,我很佩服您在java方面的成就。
但我不得不说的是,您和我们大学一些热爱java的学生有着一个同样的偏见----对微软的讨厌。
就比方.net主推的WebService吧,我觉得您对他的一些看法都是片面和不正确的。
首先,微软发展SOAP是为了提供一个标准,现在SOAP已经被众多的公司接受了,有了标准以后,才能更好的办事情,这是美国人的办事方式,也是他们现在很成功的一个因素!微软把“C#”提交给欧洲计算机协会审议,也正是从大处着眼,好定了标准以后,大家都照规章办事情,这是微软到现在之所以很成功的原因之一阿,有目共睹,不是你一个人的观点可以改变的!
再则,你说“SOAP协议,就是一个Http协议,上面挂一个XML文件,还留了两个尾巴:性能和安全。”,是的,SOAP的确有待完善,你说的“性能和安全”的问题我也承认,但你要知道,一个技术的发展不是一次就能到达完美的地步的,它们都有一个演进的过程!还是拿微软的技术来说吧,软件复用走过了从“源代码级的复用”-〉“二进制的动态连接库DLL”-〉“二进制的对象复用标准COM”―〉“Web Service”,这每一次的跳跃,都使得微软更加成功强大,他们所作的事情很简单:“在一个特定的时期,把一件事情做好”,仅此而已!!这样的例子还有大家熟悉的windows操作系统,我就不多说了!“Web Service”还是这几年才被提出的新技术,就好像当初的“windows95”,“com1.0规范”一样,它以后也会到达“windowsxp”这样的成熟地步的,您不能武断的评价一个婴儿的未来吧!
还有,您说“本来Http协议算慢的了,还要再上面加载一大堆废话XML,直接通过Http序列化传送对象多好?”,您这又错了,http协议是很慢,但XML构造的SOAP绝对不是什么“一大堆废话”,正是有了这个标准,下一代网络才能演变为可计算的智能网络。正是Web Service依托于“HTTP、XML、XSD、SOAP和WSDL之类的标准协”,它才能实现“在可缩放的、松散耦合的和非特定平台的环境下交换信息的能力”,实现“实现异构平台间的互通”(例子我就不举了)。这相对于以前“微软有DCOM”,“java有RMI”,还有什么“CORBA”等等这样“各自为政”的局面,是不是一个大团结了?放弃某些公司间的私人恩怨不谈,“大团结了”的直接受益者就是我们这些“开发人员”与“用户”啊!!看到这里,您不能不感叹微软的.net中主推“Web Service”的远见卓识和博大的胸襟阿!
SOAP并不是微软发明的,但直到微软发展了它以后,对它的各种评价也如雨后春笋般的出现了,有持表扬意见的,也有向您这样批评它的。但不论怎样,这样一个事实是存在的:微软是树大招风!
也如某些同志说的那样,现在的网站没有必要用WebService,这个我承认,在局域网内“远程调用”似乎更好一些,但人类的科技是在不断进步的,只有看清楚未来的发展方向,才能有更好的飞跃,怎么能老停留在原地踏步了(即使原地是一个美丽的地方)?发明火药时,你知道火药可以向今天这样用于导弹吗?说一点愤世嫉俗的话:“中国人没有创造力”,其实在美国,WebService的应用已经蔓延开了,只是我国使用它的确很少而已!
最后,我想说:我们正处在开发企业解决方案新纪元的入口处。Web Service将会改变创建应用程序的方式,还将改变在线商务的处理方式。现在的Web Service还处于发展的初期,但是,我们将来会看到这项技术会随着时间的流逝很快的成熟。
也许我今天不该来这里,因为我是一个微软的崇拜者,我希望我能成为中国的“比尔盖茨”^_^。

欢迎批评指教。

杨遥QQ:51996860)
武汉市,华中科技大学,大三学生

banq
2003-08-25 08:27
靠 不小心将robbin的长贴删除了,表示道歉,yangkun24 发表了三遍同样的文章,删除了两个,回贴也被删除了。




Njord
2003-08-25 08:57
Web Service不是微软提出来的东西。

此外不觉得Web Service是垃圾,Web Service可用于不同平台应用之间的交互和整合,使用XML也是为了这个。
当然很多公司推崇Web Service也是出于商业的角度考虑的,新的技术能带来新的利润,这个做软件的都知道。另外就是Web Service能让软件的收费制度更完善,可能这也是很多软件公司推崇它的原因。
以后的互联网必然速度越来越快,可嫩某天你用的一个软件只有一个壳,当你调用某个功能的时候,这个壳会去互联网请求某项服务帮你完成工作。不过目前的环境很难实现,只是一种构想吧,理论是可行的。

曾用Servlet做过两个应用之间的交互,挺麻烦,用SOAp方便很多,用很多技术都能实现,不过Soap也是从这些技术上发展起来的,只是提供了更方便的接口给开发者,速度肯定会有影响,这个地球人也都知道。

我不是微软的崇拜者,甚至很少用它的开发工具。不过我觉得微软无疑是很成功的一家公司。robbin是业内的人士,自然能从细微的地方去发现微软的技术不足,不过对于业外人士而言,这些细节是不存在的。他们体会更多的是易用性和可操作性。相信很多开发人员都用过多种操作系统,但哪个最容易使用大家都知道。此外这么多年过来,用微软的操作系统已经成为了一种习惯,这才是微软其它竞争者们面临的最大的困难。

很多人因为微软垄断市场而鄙视它,其实我觉得有失公正。哪家公司不想成为微软呢?只是它们还没有这个能力。其实SUN目前推行的这种开放式也只是一种无奈,如果它也如微软这般强大,它也会想一个人吃块大饼的。

banq
2003-08-25 08:58
回 yangkun24 同学

微软、gates、web services和它的地位以及影响都是独立的事情,这里只讨它的web services,对SOAP的异议不代表对其它的否定,有些东西否定了也没有,事实在那里。

我的意思是SOAP就类似当初的世界语,目的宗旨很好,但是如今还是英语盛行啊。

推出世界语的目的类似期待上帝出现来拯救大家一样,但是有人断喝:上帝和太阳死了,从此西方世界走向一个重视自我的道路,而东方中国还是在期待完美上帝的出现,等得头发都白了。

Java是让自我变得更强大的工具,只要你有精力,那么多源代码你可以去研究,去理解和你一样平凡人的闪烁的思想,和他们平等地,默默地交流。

当然,我们更期望和上帝交流,但是gate代表的上帝只是驱使我们跟从它,从来不也不真正愿意全部敞开它windows帝国的大门,让我们平民能真正有一次和上帝对话的机会,我们只能在他构建的城堡中从事被动地奴隶般地耕耘,一旦城堡结构出现问题,必须有城堡卫士自己来解决,这是一个等级森严的王国。

小时候,我们都想做国王,现在,我更想做平民,更希望很多年轻人一开始就愿意做平民。

tyrones
2003-08-25 09:23
除非你是天才,有着非常好的机遇,否则还是准备过正常人的生活吧,也许这一点也只有随着年龄的增长才能不断体会吧。反正我感觉我的野心正在被现实一点一点磨灭。

raynix
2003-08-25 11:32
崇拜gates?

那还不如直接说你崇拜money呢。看看老盖的发家史你就知道了什么叫巧取豪夺了。

befresh
2003-08-26 09:36
soap(简单对象访问协议)是可以基于http、smtp等传输协议,主要的设计目标是体现简单性和可扩展性,我觉得还是有其用武之地的。其主要是为了跨平台消息传递,而且XML,http等都是开放标准规范,这一点正是其最优势的地方。

对于ws,现在“服务”这么热,再在前面加上“web”,那效果是可想而知的,我觉得如果ws缺乏UDDI的配合,想快速的成功比较难。而且,现在public UDDI全世界也就4―5家,就如ms UDDI,现在的内容虽然很多,但让人看得非常迷惑,不知道到底能够提供什么功能。

现在的层次性越划分越清晰,那开发的难度就越小。

至于安全、效率可能还是其次,首先要看他是否能解决实际问题,是否符合发展的要求。

2Go 1 2 下一页