我倒是没有什么资格去谈论为什么要学习XX技术的能力,提出这个疑问倒是很多希望做架构师工作的朋友常常会提出的问题,看来这个标题也就只能吸引眼球罢了,算了,就当问问我自己为什么要学习SOAP吧!
我这个人喜欢对一个技术标准持保留意见,由于工作的关系,看到了很多标准的定义与应用其实无非是几个大牛或几个厂商间拨弄是非漫天过海的伎俩罢了,而我们这些标准的学习者只能眼巴巴的被一拨一拨的新名词搞的头大,哎!有人的地方就有江湖,没有新名词出来,浮躁的人们浮躁的厂商如何再次高姿态的站在一个个木呐的客户面前忽悠呢?
当然,有很多标准,有很多新技术还是很能解决问题的,但是当我们意识到一流的企业做标准,二流的企业做制造的同时,我们也只能好好学习人家的长处来不断提升自己的创新能力,毕竟做标准的基础是要让市场认可才是王道。今天看了CCTV报道我们国家已经有了自己的手机汉字输入法的标准的报道,高兴的同时有一点悲凉——这个标准的创造者是大家再熟悉不过的一个老头子:王永明(五笔输入法的创造者),悲凉的是:奈何是这么一个老头子却为什么不是我们这些年轻人?
废话连篇,不说了。。。。
我们使用XML进行数据交换,既然XML提供了数据交换的标准,因此当不同的internet/intranet应用系统在互相集成的时候,就可以直接使用XML技术作为彼此沟通封装的标准。当 internet/intranet应用系统需要调用彼此提供的服务的时候,不需要知道对方实现的技术,只要以XML封装彼此约定的服务进入点,就可以顺利的使用对方的服务。这样不但达成了标准交换数据的机智,也顺利的使用XML集成各种不同的internet/intranet应用系统。
比如这样的例子:当执行在WINDOWS系统上的ASP想要使用执行在LINUX上的服务时候,只要双方约定了提供服务的标准接口,那么ASP就可以使用XML封装标准的调用,然后通过internet/intranet传递到远程的LINUX中,而远程的LINUX会收到这个以XML封装的要求的时候,便可以解析此XML封装的信息,加以执行ASP需要的服务后,再通过使用XML封装执行的结果,最后传递给ASP。当ASP收到LINUX返回的XML封装结果后,再从XML中取出执行结果即可完成工作。
从上面的说明我们可以知道,要完成不同internet/intranet应用间的集成工作,那么必须解决以下问题:
1、标准的数据交换技术,即XML
2、如何封装调用的服务,例如如果上述的LINUX提供了各种服务,那么远方的ASP如何封装服务的调用?如何封装传递的参数?这些参数中简单类型的比如各种字符串,各种数值类。复杂的数据类型如影象,图形数据?
3、使用什么实体沟通通讯协议?
4、internet/intranet应用系统如何约定彼此提供的服务?
5、不同的internet/intranet应用又如何找到它需要的服务?
6、这些服务用什么技术来实现?
上述问题的答案可以使用许多技术来完成或者克服,但是这些技术可能是属于特定厂商的技术,比如MS公司COM,。NET,BEA公司T3等。或者是没有获得大多数人接受的技术,比如IBM的CICS技术,而一个可以解决以上问题的标准技术便是本文标题的答案。
第一个问题已经解决——XML。
SOAP定义了如何交换类型和具有结构的信息,它是一个Wire Protocol并且XML作为封装信息的标准。而WebService(以下简称WS)则是使用SOAP作为通讯的标准,并且提供外界标准的服务接口以便让各种客户端应用程序能够通过SOAP调用服务接口,进而使用WS的功能,因此SOAP标准可以解决第2个问题。WS可以解决第4个问题。
由于SOAP是一个Wire Protocol,因此实际进行沟通的时候还需要使用特定的通讯协议,比如:HTTP,SMTP或者是IIOP,因此可以解决第3个问题。至于第5个问题,可以使用UDDI机制来回答,第6个问题那就是高级编程技术的事情了,针对服务进行编程,C++,JAVA都是很好的选择,另外针对WINDOWS平台的服务编程WMI也是很好的东东了
原文链接: http://blog.csdn.net/jaminwm/article/details/1446740