在上篇文章中简单对web service 进行了介绍,这篇文章将向大家介绍web service中涉及到几个常见概念。
假如我现在写了一个Java实现类,假如我打算把这个实现类提供给其他类调用,最好的方式就是通过接口来实现提供对外服务。
所以,接口是你提供对外承诺的一种标准的方式。
现在考虑一下,如果在Web Service场景下,该如何去考虑对外提供服务?
假设一下,现在我有一个web service功能,我想通过一个接口,向外部用户提供这个功能。
在上述这个场景中,用户可能使用各种语言,对于web service,我们用来提供给用户服务的接口应该不依赖特定的技术选型,它本身应该被各种语言所理解识别,所以传统的java里面接口概念在这里就不合适了。
为了满足这种平台无关性的交互,XML格式被常用,现在当我们需要创建一个web service时候,我们应该以XML文档的形式来表述对外服务接口的约定。
这个XML称作 WSDL
WSDL: Web Service Definition Language
为什么选择XML格式,主要原因在于XML文件本身具有平台和语言无关性,web service所面对的场景也就是这种特性的,所以XML和web service 不谋而合地走在一起了,
WSDL文档里面定义这web service接口的约定,所以我们在创建web servcie时候,需要对外提供这个WSDL给服务调用者。
WSDL里面的内容:
1. 方法;
2. 参数;
3. 返回值
这上面是对WSDL文档高层次的表现。
现在我们可以知道,通过WSDL内容,我们可以得知需要发送哪些数据以及接收到什么样类型的返回值。
那么,假如你打算开发一个应用,并打算调用web service服务, 但是这里有一个问题出现了: 你该到哪里去查找特定web service的WSDL文件呢?
我们已经知道了获取web service接口的主要方式就是通过WSDL文档,但是现在我们如何获取这个文档难住了?
这里有两种解决途径:
1 如果web service知道它的服务调用者,那么,它可以直接把WSDL发给它的服务调用者
2 通过网上一个叫做UDDI的注册中心来获取,它本质上就是一个目录,web service的提供者可以在注册中心注册登记自己服务的WSDL, 这样用户可以在注册中心里面检索出自己需要的web service的WSDL文档。
UDDI: Universal Description Discovery and Integration
未完待续