微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservice的一些总结

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注册

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

 

@H_502_93@1,什么是 Web Service ?

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

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

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

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


@H_502_93@2,怎样调用 Web Service?

   可能这样说不太准确,应该是“@H_502_93@怎样调用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 响应吧 !


@H_502_93@3,Web Service服务器

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

   它主要做下面这些事: 


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

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

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

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

      转换而来的数据对象)

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

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

 

 

@H_502_93@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 服务; “绑定”则是在提供者与请求者之间建立某种联系。 @H_502_613@

@H_502_613@

1 Web 服务角色的相互关系

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

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

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

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

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

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

 

@H_502_93@附 :

@H_502_93@术语解释

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 @H_502_93@for XML Processing    
  8.   
  9. SAX  --       Simple API @H_502_93@for XML Parsing   
  10.   
  11. DOM  --      Document Object Model   
  12.   
  13. SAX  --       The Simple API @H_502_93@for XML   
  14.   
  15. XSLT   --     THE XML Stylesheet Language @H_502_93@for Transformations    
  16.   
  17. JAXB  --       THE Java Architecture @H_502_93@for XML Binding    
  18.   
  19. JAX-RPC  -- Java API @H_502_93@for XML-base RPC   
  20.   
  21. RPC   --       Romote Procedure Calls   
  22.   
  23. JAXR   --      THE Java API @H_502_93@for XML Registries   
  24.   
  25. Java WSDP  -- Java Web Services Developer Pack    
  26.   
  27. JAX-WS   --     Stands @H_502_93@for Java API @H_502_93@for XML Web Services  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐