Web Service概述

Posted yezhaohui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web Service概述相关的知识,希望对你有一定的参考价值。


Web Service 简介

Web Service 是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块 化的应用,可以发布、定位、通过 web 调用。Web Service 是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果。Web Service 可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service 应用程序可以发现并调用它部署的服务。

在构建和使用 Web Service 时,主要用到以下几个关键的技术和规则:

1)XML:描述数据的标准方法。 
2)SOAP(Simple Object Access Protocol):表示信息交换的协议。 
3)WSDL(Web Services Description Language):Web 服务描述语言。 
4)UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于 XML 语言的用于在互联网上描述商务的协议。

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 服务器是相同的。它主要做下面这些事:

1)监听网络端口(监听服务端口) 
2)接收客户端请求(接收 SOAP 请求) 
3)解析客户端请求(解析 SOAP 消息,将 SOAP 消息转换为数据对象) 
4)调用业务逻辑 (调用 Web Service 实现类的特定操作,参数是由 SOAP 消息转换而来的数据对象) 
5)生成响应 (将返回值转换为 SOAP 消息) 
6)返回响应 (返回 SOAP 响应)

4. 什么是WSDL?

1)WSDL 指网络服务描述语言 
2)WSDL 使用 XML 编写 
3)WSDL 是一种 XML 文档 
4)WSDL 用于描述网络服务 
5)WSDL 也可用于定位网络服务 
6)WSDL 还不是 W3C 标准

WSDL可描述网络服务(Web Services),指网络服务描述语言。是一种使用 XML 编写的文档,这种文档可描述某个Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。 
WSDL 文档仅仅是一个简单的XML文档,它包含一系列描述某个 web service 的定义。

WSDL 文档结构(WSDL 文档是利用这些主要的元素来描述某个 web service的):

技术分享图片

一个WSDL文档的主要结构是类似这样的:

复制代码
<definitions> 
<types> 
definition of types........ 
</types> 
<message> 
definition of a message.... 
</message> 
<portType> 
definition of a port....... 
</portType> 
<binding>
definition of a binding.... 
</binding> 
</definitions>
复制代码

PS:实际上以上的结构,可以用浏览器打开一个具体的webservice来看。WSDL 文档可包含其它的元素,比如extension元素,以及一个service 元素,此元素可把若干个web services的定义组合在一个单一的WSDL 文档中。

WSDL结构说明:

WSDL 端口:

<portType> 元素是最重要的 WSDL 元素。 它可描述一个 web service、可被执行的操作,以及相关的消息。 可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

WSDL 消息:

<message> 元素定义一个操作的数据元素。 每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

WSDL types:

<types> 元素定义 web service 使用的数据类型。 为了最大程度的平台中立性,WSDL使用 XML Schema 语法来定义数据类型。

WSDL Bindings: 
<binding> 元素为每个端口定义消息格式和协议细节。

WSDL 实例: 
这是某个 WSDL 文档的简化的片段:

复制代码
<message name="getTermRequest"> 
<part name="term" type="xs:string"/> 
</message> 
<message name="getTermResponse"> 
<part name="value" type="xs:string"/> 
</message> 
<portType name="glossaryTerms"> 
<operation name="getTerm"> 
<input message="getTermRequest"/> 
<output message="getTermResponse"/> 
</operation> 
</portType>
复制代码
在这个例子中,<portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把"getTerm" 定义为某个操作的名称。操作"getTerm" 拥有一个名为"getTermRequest" 的输入消息,以及一个名为"getTermResponse" 的输出消息。 
<message> 元素可定义每个消息的部件,以及相关联的数据类型。 对比传统的编程,glossaryTerms 是一个函数库,而"getTerm" 是带有输入参数"getTermRequest" 和返回参数 getTermResponse 的一个函数。

 

 

SOAP

为了包装RPC的请求信息,推出了XML-RPC,但XML-RPC只能使用有限的数据类型种类和一些简单的数据结构。于是就出现了SOAP(Simple Object Access Protocol)。SOAP最主要的工作是使用标准的XML描述了RPC的请求信息(URI/类/方法/参数/返回值)。理论上,SOAP就是一段xml,你可以通过http,smtp等发送它(复制到软盘上,叫快递公司送去也行?)。同样SOAP也是跨语言的。

WSDL

WSDL(Web Services Description Language)是描述web服务的,是描述怎样访问web服务的。WSDL是用来描述SOAP的,换句话说,WSDL 文件告诉你调用 SOAP 所需要知道的一切。WSDL也是一段xml。现在各个语言对wsdl的支持都很成熟,可以根据同一份wsdl文件生成自己语言的客户端。

 

以上是关于Web Service概述的主要内容,如果未能解决你的问题,请参考以下文章

最简单的Web Service实现

Web Service 之 http

Web Service 之 http基础原理

web service初探

Web服务(Web Service)相关概念

ORACLE存储过程调用Web Service