分享

webservice理解

 开心豆豆2010 2012-06-11

1,什么是 Web Service ?

   Web Service 就是一个网络组件(一个可以通过网络访问的程序)。

   它有一个或多个端口(Port),这些端口用于接收客户端的请求,并返回响应

   请求和响应的 都是一种基于XML的消息。

   不过这种消息遵循特定的格式(SOAP )。


2,怎样调用 Web Service?

   可能这样说不太准确,应该是“怎样调用Web Service中定义的操作

   每个Web Service 都有一个描述文件(WSDL ),

   它描述 一个 Web Service 的如下方面:

   (1)服务的端口(接收SOAP消息的端口)

   (2)服务提供的操作

   (3)操作的输入输出格式的定义(通过XMLSchema 定义输入输出格式)

    有了Web Service 的描述文件(WSDL ),我们就知道怎样调用这个Web Service 中定义的操作了。

   (1)通过服务提供的操作找到你想调用的操作

   (2)找到这个操作的输入格式的定义(XMLSchema ),按照这种输入格式构造一个SOAP消息

   (3)将这个SOAP消息发送到服务的指定端口

   (4)准备接收一个从Web Service服务器返回的 SOAP 响应吧 !


3,Web Service服务器

   一个Web Service服务器,本质上和一个Web服务器是相同的。

   它主要做下面这些事: 


--> 监听网络端口(监听服务端口) 

--> 接收客户端请求(接收SOAP请求) 

--> 解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象)

--> 调用业务逻辑 (调用Web Service实现类的特定操作,参数是由SOAP消息  

      转换而来的数据对象)

--> 生成响应 (将返回值转换为SOAP消息)

--> 返回响应 (返回SOAP响应)

 

 

4,Web Service客户端

   一个Web Service客户端,顾名思义是和一个Web Service服务器进行交互。

  下面是一个Web Service客户端调用Web Service的基本过程。


--> 构造SOAP请求消息(将本地数据对象转换为SOAP消息) 

--> 发送SOAP消息到Web Service服务器的指定端口

--> 接收SOAP响应消息  

--> 将SOAP响应消息转换为本地数据对象

 

    其实大部分Web Service客户端 都不需要我们来编写,很多Web Service框架

都支持由 Web Service 的描述文件(WSDL)自动生成客户端。

SOAP ,WSDL 和UDDI 是Web Services 框架的核心技术..
(1)SOAP 是Web services 的通信协议。SOAP是一种简单的、轻量级的基于XML 的机制,用于在网络应用程序之间进行结构化数据交换。SOAP包括三部分:一个定义描述消息内容的框架的信封,一组表示应用程序定义的数据类型实例的编码 规则,以及表示远程过程调用和响应的约定。 
(2)WSDL表示WEB服务说明语言。WSDL文件是一个XML 文档,用于说明一组SOAP消息以及如何交换这些消息。
 
(3)UDDI(统一描述发现和集成) 提供一种发布和查找服务描述的方法。UDDI 数据实体提供对定义业务和服务信息的支持。WSDL 中定义的服务描述信息是UDDI注册中心信息的补充。

Web Services 的体系架构如图1 所示

  Web Services 服务提供方通过WSDL(Web Services Description Language) 描述所提供的服务,并将这一描述告知Web Services 注册服务器。注册服务器依据WSDL 的描述,依照UDDI (Universal Description Discovery and Integration) 的协定更新服务目录并在Internet 上发布。用户在使用Web Services 前先向注册服务器发出请求,获得Web Services 提供者的地址和服务接口信息,之后使用SOAP 协议(Simple Object Access Protocol) 与Web Services 提供者建立连接,进行通信。Web Services 的技术主要建立在XML 的规范之上,这保证了这一体系结构的平台无关性、语言无关性和人机交互性能。

       SOAP消息代理是整个框架的信息处理中心,它根据预先定义好的应用消息转换机制将消息转换成目标应用需要的数据并存储到应用消息仓库中。除了保存和转发 应用消息之外,消息代理还负责将不同的企业应用所保存的应用数据通过企业模型转化为一致的企业数据,保存到数据库中。

  客户端通过UDDI的标准和机制来搜寻需要的web服务,绑定找到的web服务并使用它提供的服务。另外,框架为企业进一步发展电子商务提供了接口,建立在UDDI基础上的Web services可以完成这一功能。


    (一).XML WebService作用
  XML WebService在应用程序中所起的作用与.Net远程调用处理组件相同.
  用户不能直接使用WebService,只能通过Asp.net Web应用程序或Windows桌面
  客户端来调用.
(二).XML WebService与.Net远程处理区别
  1. XML WebService比.Net远程处理对象所受的限制更多。它类似于.Net远程处理
    的单独调用对象的工作机制。 不能创建一个单独的或是由客户端激活的对象.
  2.XML WebService的创建和设计比远程组件更容易/简单.
  3.Net远程处理二进制通信要比XML WebService SOAP格式通信要快捷.
  4.XML WebService较.Net远程处理扩展性强。 它支持以跨平台使用为目的的开放标准.
  5.XML WebService不需要专门的宿主程序,而是由Asp.net承载。 可以访问一些重要的
    平台服务,如:数据缓存/网络会话状态管理/身份验证/全局共享应用程序集合等。而.Net
    远程处理则很难实现这些功能.
  6.XML WebService运行在IIS和ASP.NET之上,使用http信道(80端口)与客户通信。
    可以自由跨越防火墙.
(三).XML WebService创建与调用过程
  I.服务端创建
    1.使用IIS,在Web服务器上新建一个虚拟目录来存放XML Web服务.
    2.建立XML WebService类,使用[WebMethod]属性来标记方法可以被远程调用.
    3.在虚拟目录中部署XML Web服务的文件.
  II.客户端使用
    1.客户端通过URL或文件查询或UDDI注册,发现XML WebService
    2.客户端请求描述XML WebService的WSDL文档。
    3.客户端在WSDL文档的基础上生成一个代理类。
    4.客户端生成代理类的实例,并调用XML Webservice,发送消息并接受处理后结果.
      也就是说调用XML WebService是由客户端生成的代理类实例对象完成的.
(四).IIS作用
  1.IIS通过虚拟目录提供对Web服务器进行访问。简单的说: 就是将"c:\MyWeb"映射
    一个URL地址形式的虚拟目录:"http://192.168.83.66/MyWeb",供本机或Internet
    上计算机访问Webservice.
  2.虚拟目录的权限与普通目录不同。根据默认设置,不允许远程用户浏览虚拟目录,运行
    可执行文件,新建文件和下载某些文件类型文件。可以根据需要自定义IIS虚拟目录权限设置.
  3.IIS对Internet进行公开处理. IIS并不负责运行Asp或Asp.net布面 或XML Webservice,而是
    维护一个注册的文件扩展名列表。如果IIS收到对某一种文件类型的请求,就把工作提交给
    Asp.net工作进程,由Asp.net工作进程处理剩下的工作.
(五).XML WebService和SOAP标准支持的数据类型
  不知道读者有没有遇到这种情况,在调用WebService并给一个方法传递了一个DataRow参数时,运行
  时会抛出异常: "没法将参数序列化!",如果把DataRow加入到DataSet中,并将DataSet作为参数
  传递再运行就OK了。 这是因为:XML WebService只能对数据集DataSet对象类型进行XML序列化,
  不能对DataRow对象类型进行XML序列化造成的错误.  所以了解一下XML WebService支持序列化的基
  本数据类型是比较重要的.它支持的数据类型如下:
  1.基本数据类型. 
      标准类型,如:int float bool DateTime string等基本数据类型
  2.枚举.
      支持枚举Enum定义的类型
  3.自定义对象.
      可以传递任意基于自定义类或结构创建的对象。 但要注意一点: 它只能传输数据成员(变量和属性).
      如果定义了方法,则方法不能进行序列化传输,序列化后只剩下数据成员.
  4.DataSet对象
      支持DataSet,切记:不支持DataTable和DataRow,DataSet已经是XML Webservice能够支持的最小的可序列化对象.
  5.XmlNode对象
      基于XmlNode的对象可以表示XML文档的一部分.
  6.数组和集合
      可以使用任何被支持的类型的数组和简单集合,包括: DataSet对象/XmlNode对象和自定义对象.

另外,关于创建XML WebService实例代码示例,几乎任何一本涉及到WebService的书籍都会讲的。而且创建一个
WebService非常简单. 这里就不多说了

文章出处:http://www./course/4_webprogram/xml/xml_js/20071128/88161.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多