什么是webservicse, 作什么用的

来源:互联网 发布:mac appstore 换帐号 编辑:程序博客网 时间:2024/06/11 21:10
社区里又有人在问关于webservices的基本问题:请问什么是webservicse 作什么用的?

以下是我的回复:

这是个好问题,所有初学webservices的人都应该问这样的问题。类似的问题还有,为什么要用webservicess,而不是类似的服务,象remoting,或者java里的东西?

之所以这么说,是的确发现很多人连这种基本的问题都没有弄明白,就开始堆CODE,瞎打瞎撞,就进了死胡同。

废话一堆,说说我自己的看法,算是抛砖引玉:

什么东西webservices能做而别的(以前的)技术不能或者很困难的?

最重要的有两点:

1、连通性好,
99%的webservices都使用http协议来实现传输,而标准的http协议所使用的80端口几乎在所有的防火墙都是打开的。换句话说,如果你的机器能够访问网站,就能够使用webservices。之前还没有一种技术可以这么说,因为他们大都使用专有的协议(端口)。在内部网络,这些协议是没有区别的,但防火墙使他们内外有别了。

CORBA, DCOM, RMI,这些东东都有些年头了,可没有一个可以说是十分普及的,问题之一不是技术有多难,而是应用领域非常有限。供应商说他们的系统支持COBRA,这样我们可以得到即时的最新报价和现货库存,可是我们的即使装了那个他们提供的客户端软件也用不了,除非他们可以在防火墙上网开一面。

2、鸡同鸭讲
香港电影经常看到这个短语,如果我们让Java的JMS和.NET的Remoting说话,基本就是这种情况。看起来好像那么回事,其实是牛头对马嘴。这应该算是另外一种连通性好表现。其实,让RMI和Remoting对话,可能比鸡同鸭讲还难。

但webservices却真的可以让鸡同鸭讲,不但如此,几乎可以让任何语言沟通,因为他要求你用一种世界语(SOAP)。任何可以用这种语言沟通的技术(们)之间,现在都可以加入到webservices的大家族里来了。这里包括了常用的网页描述语言(peel,php,jsp,asp,等),常见的通用语言(c/c++,pascal,basic,java,c#,等),只要你可以发出符合SOAP格式的XML包,就可以和其他的webservices供应商通讯。所以,你不用任何语言工具,手敲一个SOAP包,也一样可以得到回应。而XML属于不磨损的自描述语言,即使过了几百年,你也可以不借助复杂工具看懂其中的内容。


可以参考我以前的另一篇东西:web services的基本概念

在中国,不像ASP.NET已经风风火火,webservices还处于起步阶段,真希望社区webservices的管理员能给大家系统的讲讲这些基本的东西。
原创粉丝点击