随着互联网的普及和发展,我们日常生活中越来越多的应用和服务都基于 Web 技术实现,Web 服务这个概念也应运而生。我们可以把 Web 服务看作是一种基于 Web 架构和标准协议的分布式系统集成技术,它可以使得异构系统间的应用和服务能够互相协作,让各种计算机平台和编程语言之间完成有效通信。
目前 WBXML、SOAP、XML-RPC 和 REST 一些知名的Web 服务协议,其中最具代表性的是 SOAP 协议,该协议最早由微软提出,可谓是 Web 服务技术的先河之一。本文将围绕着 Webservice 的工作原理和实现方式展开阐述。
一、Webservice 所用的核心技术
Webservice 的核心技术包含 XML、SOAP 和 WSDL 三部分:
1、XML(Extensible Markup Language):是一种有结构的文本数据格式,是数据交换和数据描述的基础。以通用的方式表示纯文本文档,可用于高效传输、存储以及解析。Webservice 中,XML 方式被用来表示传输的消息和数据。
2、SOAP(Simple Object Access Protocol):是一种通信协议,它是基于 XML 的简单、轻量级的消息交换协议,用于在 Web 服务端之间传输数据,起着类似于 HTTP 和 SMTP 的交互作用。SOAP 通过向 Web 服务器发送 HTTP 请求,使得不能为空的相邻分支可以传递原始数据。
3、WSDL(Web Service Description Language):它是一个用于描述 Web 服务的 XML 文档。通过 WSDL 文档,描述了 Web 服务的类型,输入/输出参数、方法及其位置等信息,以便客户端了解 Web 服务的具体访问地址、端口号和协议等信息。
二、Webservice 的工作原理
Webservice 的工作原理可以分为下述步骤:
1、客户端通过解析 WSDL 文件确定要调用的服务和方法。
2、客户端调用服务,并将信息打包成 SOAP 消息发送到 Web 服务器。
3、Web 服务器接收到请求并进行解析,确定要调用的服务和操作。
4、服务器端调用对应的方法进行处理。
5、处理完成后,服务器端返回响应信息(同样以 SOAP 消息形式)给客户端。
6、客户端解析响应信息并获取服务返回的具体信息。
三、Webservice 实现方式
在实现 Webservice 的过程中,因为有HTTP 协议存在,因此 Web 服务器得到的请求内容并不一定是客户端预期的 SOAP 消息,所以 Web 服务器服务器需要提供一种特殊的 API 来处理该类请求内容。下面我们将介绍几种 Webservice 的实现方式。
1、基于 Servlet 的 Webservice 实现
这种方式是我们在 Web 开发中经常使用的方式,通过在 Web 应用程序的统一入口 Servlet 中处理相应的 Web Service 请求和响应。由于 Servlet 是 Java Web 中一个标准的 Web 组件,因此具有良好的可移植性。
Servlet 中可以实现 SOAP、Restful Web Service,同时还可以使用前端框架,如 jQuery、AngluarJS、Vue.js 等来调用 Web Service 服务,使用 cors 这个开源库,可以跨域访问 Web Service 服务。
2、JAX-WS 的 Webservice 实现
JAX-WS(Java API for XML Web Services)是 Java 语言所定义的 Web 服务规范。它是一套用于构建 Web 服务的 Java API。
JAX-WS 依据 Web Services Description Language(WSDL)来构建 Java 类。JAX-WS 为程序员提供了非常方便的工具,可以根据 Java 类来构建 SOAP(Simple Object Access Protocol)和 XML。调用 Web Service 时,开发者可以直接将 Java 对象作为 SOAP 消息数据传输,同时也会自动将数据恢复为 Java 对象。
3、Apache CXF 的 Webservice 实现
Apache CXF 是一款开源的 Java EE 企业级 Web 服务框架,它实现了 JAX-RS 和 JAX-WS 规范,并且提供更多的特性和功能。Apache CXF 由 Apache 软件基金会开发和维护,它是一款非常强大的 WebService 框架,可以提供完整的 WebService 服务端和客户端支持。
CXF 提供了一个用于生成 Web Service 的插件:cxf-codegen-plugin,可以将 WSDL 文件转换成 Java 代码文件,同时提供了用于解析 SOAP 信息的工具类(例如 SoapHeaderInterceptor),方便用户对请求内容进行处理。
总结:
Web Service 技术的普及让不同平台之间数据的互操作变得更为方便,在处理企业数据和应用系统集成上,也变得非常的有效。本文中,我们阐述了 Web Service 技术的核心知识点,分析了 Web Service 方案的工作原理,并讲解了常见的 Web Service 实现方式。希望可以对你有所帮助。