webService是一种跨语言,跨平台的远程调用技术。所谓远程调用,就是指一台计算机上的程序能够调用另一台电脑上的程序。跨语言,就是指假如服务端程序使用java编写的,可以使用其它语言(例如:C,C++,PHP,NET等)调用。跨平台是指,比如服务端程序在Linux系统上,客户端可以在windows上进行调用。

      webService的远程调用原理:webservice采用http协议传输数据,使用xml进行封装数据。webService通过http协议接收和发送数据,都是采用Xml封装的。在xml中封装了http消息头,以此来说明http消息的格式。这些http消息头和xml就组成了soap协议(simple object access protocol,简单对象访问协议)。

 

SOAP 协议 = HTTP 协议 + XML 数据格式 。
 
webService客户端通过http协议,把遵循一定规则的xml请求数据发WEBService服务端,webService服务端按照一定的规则解析xml,并处理数据,并把返回结果,封装成xml的形式,通过http协议发送给客户端。
其实SOAP协议的作用,就是负责把客户端和服务端的请求和返回结果进行封装和解析xml。
大家一定想问webService客户端怎样知道,服务端提供的服务呢?
这就要归功于wsdl文件了。
WSDL(webservice description language)是基于XML格式的,它是WebService客户端和服务器端都能理解的标准格式,其中描述的信息可以分为what,where,how等部分!
WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。
     WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:
            注册到UDDI服务器,以便被人查找。
            直接告诉给客户端调用者。

wsdl文件用于描述对外的一项服务,其中的元素中包含多个元素,元素中又包含多个元素,每个元素又包含一个和一个元素,元素和元素的内容分别指向前面定义的一个元素。每个元素对应一个Java类,其中的每个元素对应Java类中的一个方法。

wsdl文件的组成,主要包括三个方面的内容:what(服务是什么),where(服务在哪里),how(怎么调用服务)。

 今天先写到这里,明天继续。