Jakarta EE 编程/Web 服务
Web 服务代表了分布式计算的最新浪潮,也许是自 1995 年 Java 引入和 1998 年 XML 引入以来最重要的创新。虽然“Web 服务”这个词被频繁提及,但要给出具体的定义却很难,因为在最高层面上,Web 服务并不特定于任何特定的技术或平台。它通常用相当抽象的术语来定义,例如“使用运行在不同操作系统和设备上的软件构建分布式应用程序的基底”或“自包含、自描述、模块化应用程序,可以在 Web 上发布、定位和调用”。当然,这些引文是脱离上下文的,但这是要点:你需要某种上下文来定义 Web 服务。以下是对 Web 服务的另一种定义,在 J2EE、EJB、.NET 和大多数其他 Web 服务平台的上下文中具有意义
Web 服务是网络应用程序,它们使用 SOAP 和 WSDL 以 XML 文档的形式交换信息。
要理解此定义,您需要理解 SOAP 和 WSDL。以下是这些术语的简要定义。
SOAP(简单对象访问协议)是一种由 Microsoft、IBM 和其他公司开发的 XML 语法,目前由 W3C 负责。它是一种应用协议,用于 RPC 和异步消息传递。SOAP 非常灵活且可扩展,与它的前身(DCE RPC、CORBA IIOP、Java RMI-JRMP 和 DCOM)不同,它得到了几乎所有主要供应商的认可和采用。
Web 服务描述语言 (WSDL) 也是另一种 XML 语法,由 Microsoft 和 IBM 在 W3C 的指导下开发。它是一种基于 XML 的 IDL(接口定义语言),可用于描述 Web 服务,包括预期消息格式、使用的互联网协议和 Web 服务的互联网地址。
Web 服务真正独立于平台。虽然 Java RMI 和 CORBA IIOP 也声称独立于平台,但事实上,这些旧技术需要它们自己的平台。要使用 Java RMI,您需要一个 Java 虚拟机和 Java 编程语言;用 Visual Basic 或 C++ 编写的程序无法使用 RMI 与 Java 程序交互。CORBA IIOP 也有限制,因为 IIOP 协议通常需要一个复杂的架构,例如 CORBA ORB,这限制了开发人员只能使用少数支持 CORBA 的供应商,或者使用 Java 环境(包括对 CORBA IIOP 的内置支持)。另一方面,Web 服务不依赖于特定平台(如 JVM)或特定技术基础架构(如 CORBA),因为它们侧重于用于交换消息的协议——SOAP 和 WSDL——而不是支持这些协议的实现。换句话说,您可以在任何平台上构建 Web 服务,使用任何编程语言,以任何您喜欢的方式。