- WebService的定义:
是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA(面向服务的编程)的架构;
它不依赖于平台,通过Internet进行基于Http协议的网络应用间的交互,可以实现跨语言和平台之间的调用;
也就是说,不管你是java,还是.net 只要按照规范就可以进行通信。实现数据交互等。辅助理解:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
- Web Service的基本原理
- Service Provider【服务提供者】采用WSDL描述服务
- Service Provider 【服务提供者】采用UDDI将服务的描述文件发布到UDDI服务器(Register server)
- Service Requestor【服务消费者】在UDDI服务器上查询并 获取WSDL文件
- Service requestor【服务提供者】将请求绑定到SOAP,并访问相应的服务
- WebService的三要素:
WebService = WSDL + SOAP + UDDI(webservice的注册)
WSDL 用来描述如何访问具体的接口,SOAP用来描述传递信息的格式, UDDI用来管理,分发,查询webService 。
- SOAP协议= HTTP协议 + XML数据格式
- SOAP简单对象访问协议【Simple Object Access Protocol】是交换数据的一种协议规范,
- 是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,
- 它被设计成在WEB上交换结构化的和固化的信息。
- WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,
- 增加特定的HTTP消息头,说明HTTP消息的格式,这些特定的HTTP消息头和XML内容格式就是 SOAP协议,
- SOAP提供了标准的RPC方法来调用Web Service。
- WSDL(Web Services Description Language)WEB服务描述语言
- 描述服务是什么,(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。
- WSDL就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
- WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找(这个应该意味着要有个服务中心),2.直接告诉给客户端调用者
- SOAP消息的语法规则及示例
一条 SOAP 消息就是一个普通的 XML 文档,包含下列元素:
必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息
可选的 Header 元素,包含头部信息
必需的 Body 元素,包含所有的调用和响应信息
可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
SOAP 消息必须用 XML 来编码
SOAP 消息必须使用 SOAP Envelope 命名空间
SOAP 消息必须使用 SOAP Encoding 命名空间
SOAP 消息不能包含 DTD 引用
SOAP 消息不能包含 XML 处理指令
<!-- SOAP消息/协议示例-->
<?xml
version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
</soap:Header>
<soap:Body>
<soap:Fault>
</soap:Fault>
</soap:Body>
</soap:Envelope>
- Web Service的优点
- 可以让异构的程序相互访问(跨平台)
- 松耦合 (3) 基于标准协议(通用语言,允许其他程序访问)
- Java WebService 简单小实例【点击查看实例】