webservice的一些总结

来源:互联网 发布:js局部刷新div 编辑:程序博客网 时间:2024/04/29 13:16

1 webservice

所谓webservice就是定义了一套标准的调用过程:

a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL

b 客户端需要以一种标准的协议来调用此服务,这属于SOAP.

c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于UDDI.

 

2 命名空间

命名空间其主要目的通过加一个命名属性,使名称保持唯一性。WSDL有大量的使用

命名空间的地方。本质上WSDL是一个XML文件,作为一个XML文件,为了区别同名的

元素,就需要采用命名空间的概念。

 

3 WSDL的本质:服务内容的标准化描述

WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务

的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内

容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应

的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息

,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息

传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。

 

4 SOAP的本质:标准的传输协议

SOAP是web service的标准通信协议,SOAP为simple object access protocoll的

缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。

 

5 UDDI的本质:服务的公共网址

将web service进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己的

web service进行注册发布供使用者查找.

然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么

服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有

IBM等4家UDDI商用注册网站。

因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的

URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务

方完全可以不进行UDDI的注册。

-----------------------------------------------------------------------------------------------

 

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)自动生成客户端。

-------------------------------------------------------------------------------------

 

Web 服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;2、是指功能集合体被调用后所提供的服务。

Web Service 是为其它应用提供数据和服务的应用逻辑单元,应用程序通过标准的Web 协议和数据格式获得Web Service,如HTTP 、XML 和SOAP 等,每个Web Service 的实现是完全独立的。

简单地讲,Web 服务是一个URL 资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。

Web 服务的体系结构是基于Web 服务提供者、Web 服务请求者、Web 服务中介者三个角色和发布、发现、绑定三个动作构建的。简单地说,Web 服务提供者就是Web 服务的拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web 服务请求者就是Web 服务功能的使用者,它利用SOAP 消息向Web 服务提供者发送请求以获得服务;Web 服务中介者的作用是把一个Web 服务请求者与合适的Web 服务提供者联系在一起,它充当管理者的角色,一般是UDDI 。这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web 服务既可以是Web 服务提供者,也可以是Web 服务请求者,或者二者兼而有之。显示了Web 服务角色之间的关系: 其中,“发布”是为了让用户或其他服务知道某个Web 服务的存在和相关信息; “查找(发现)”是为了找到合适的Web 服务; “绑定”则是在提供者与请求者之间建立某种联系。

1 Web 服务角色的相互关系

实现一个完整的Web 服务包括以下步骤:

Web 服务提供者设计实现Web 服务,并将调试正确后的Web 服务通过Web 服务中介者发布,并在UDDI 注册中心注册 (发布)

Web 服务请求者向Web 服务中介者请求特定的服务,中介者根据请求查询 UDDI 注册中心,为请求者寻找满足请求的服务; (发现)

Web 服务中介者向Web 服务请求者返回满足条件的Web 服务描述信息,该描述信息用WSDL 写成,各种支持Web 服务的机器都能阅读;(发现)

◆ 利用从Web 服务中介者返回的描述信息生成相应的SOAP 消息,发送给Web 服务提供者,以实现Web 服务的调用;(绑定)

Web 服务提供者按SOAP 消息执行相应的Web 服务,并将服务结果返回给Web 服务请求者。(绑定)

 

:

术语解释

Java代码 复制代码
  1. SOAP --    Simple Object Access  Protocol   
  2.   
  3. WSDL --   Web Service Description Language   
  4.   
  5. UDDI  --    Universal Description Discovery &Integration   
  6.   
  7. JAXP  --      THE Java API for XML Processing    
  8.   
  9. SAX  --       Simple API for XML Parsing   
  10.   
  11. DOM  --      Document Object Model   
  12.   
  13. SAX  --       The Simple API for XML   
  14.   
  15. XSLT   --     THE XML Stylesheet Language for Transformations    
  16.   
  17. JAXB  --       THE Java Architecture for XML Binding    
  18.   
  19. JAX-RPC  -- Java API for XML-base RPC   
  20.   
  21. RPC   --       Romote Procedure Calls   
  22.   
  23. JAXR   --      THE Java API for XML Registries   
  24.   
  25. Java WSDP  -- Java Web Services Developer Pack    
  26.   
  27. JAX-WS   --     Stands for Java API for XML Web Services