第8讲-Web Service基础

更新时间:2024-03-01 10:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Web Service基础

一、什么是Web Service?

Web服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;

2、是指功能集合体被调用后所提供的服务。

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

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

Web Service 就是一个网络组件(一个可以通过网络访问的程序)。它有一个或多个端口(Port),这些端口用于接收客户端的请求,并返回响应请求和响应的 都是一种基于XML的消息。不过这种消息遵循特定的格式(SOAP )。 二、角色构成

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 服务请求者。(绑定)

三、怎样调用 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 响应吧 !

四、Web Service服务器

一个Web Service服务器,本质上和一个Web服务器是相同的。 它主要做下面这些事:

--> 监听网络端口(监听服务端口) --> 接收客户端请求(接收SOAP请求)

--> 解析客户端请求(解析SOAP消息,将SOAP消息转换为数据对象) --> 调用业务逻辑 (调用Web Service实现类的特定操作,参数是由SOAP消息

转换而来的数据对象)

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

五、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

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 的体系架构如图2 所示

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可以完成这一功能。 七、重要术语

SOAP -- Simple Object Access Protocol WSDL -- Web Service Description Language

UDDI -- Universal Description Discovery &Integration JAXP -- THE Java API for XML Processing SAX -- Simple API for XML Parsing DOM -- Document Object Model SAX -- The Simple API for XML

XSLT -- THE XML Stylesheet Language for Transformations JAXB -- THE Java Architecture for XML Binding JAX-RPC -- Java API for XML-base RPC RPC -- Romote Procedure Calls

JAXR -- THE Java API for XML Registries Java WSDP -- Java Web Services Developer Pack JAX-WS -- Stands for Java API for XML Web Services

XSLT -- THE XML Stylesheet Language for Transformations JAXB -- THE Java Architecture for XML Binding JAX-RPC -- Java API for XML-base RPC RPC -- Romote Procedure Calls

JAXR -- THE Java API for XML Registries Java WSDP -- Java Web Services Developer Pack JAX-WS -- Stands for Java API for XML Web Services

本文来源:https://www.bwwdw.com/article/faia.html

Top