Web Service 基础

Web Service 这项技术是随着分布式计算理念提出之后慢慢发展出来的,在原来的一些分布式计算的技术如Corba,DCOM等都存在着如使用复杂,跨平台型不好等缺点,Web Service的出现恰好能解决这些问题.

有些网站集成了Google,Baidu等的搜索结果,Google提供的搜索API就是一个典型的Web Service应用(注:这种集成不是指建个链接,把搜索转到Google处理的方式)

一般来说Web Service 有如下特点

  1. 跨平台:Web Service的实现技术基本都基于工业标准.你用.net技术创建的Web Service,在java下使用就不需要费太大的力气.
  2. 简单:这是相对其他分布式技术的比较来说的.
  3. 无状态的:由于Web service的实现是以xml兼容的格式来承载数据并以http作为通讯载体,而Http协议天生是无状态的协议.
  4. 防火墙友好:web service一般是通过Http的80端口传输数据,防火墙一般都不会禁止.

为什么Web Service有上述优点,就需要了解一下Web Service Stack的结构.其结构图如下:

术语解释:

UDDI:Universal Discovery Description And Integration (通用描述发现和集成)的缩写,一个用来规范提供Web Service服务的公司如何注册其Web Service.

WSDL:Web Service Description Language的缩写,主要用来描述一个Web Service提供了哪些方法,方法有什么参数以及返回值类型等信息,以及Web Service的客户端如何与Web Service通讯等

SOAP:Simple Object Access Protocol的缩写,此规范主要是用来规定Web Service服务端与客户端传递的消息的格式.

术语理解:

术语的理解我举一个例子来说明,比如我是一个专门提供查询别人财产服务的公司,我提供了一个服务,只需要你传递一个身份证号我就返回此人的财产情况.

在此案例下,当我建立了一个这样的web service,我如果想要别人用,我肯定要公布出来,这个时候UDDI的规范就发挥作用了,比方有一个机构,专门管理Web Service的注册(注:在早期确实有这样的一个机构,是微软,IBM等大公司筹建,不过现在处于荒芜的阶段),你想注册当然就要遵循一定的标准,要注册什么,格式如何等等,就跟你申请email一样.如果你不想注册,也完全可以在自己公司服务器上发布,那么UDDI就发挥不了作用.

当注册后,可以认为在管理机构提供了一个链接,指向服务真正实现的地方,也就是需要一个标准,如何发现服务的真正实现者,而工业的标准是WS-Inspection,微软也提供了一个标准叫DISCO(Discovery的缩写)

接下来的步骤就是使用的问题,客户要使用我提供的这个服务,必须要知道我的服务时干什么用的,其方法是什么结构的,需要什么参数,返回什么等,这个时候WSDL就发挥作用了..

到了调用方法阶段,由于已经知道方法需要什么参数,那就开始要关心,这个参数如何传递,如何接收返回值并处理,这个时候Soap就发挥作用了.

从上面的描述可以知道.从创建到使用的各阶段都有业界标准进行规范,相信能理解其好处以及大致的结构,具体的明细将在后续文章中进一步的深化.

posted @ 2010-01-11 11:21  CodeWorker  阅读(298)  评论(0编辑  收藏  举报