设计模式对于面向服务的体系结构具有深远的影响(人们对此尚认识不足),因此请明智地选择您的设计模式。
当机构使用 Web 服务技术构建、部署和组织业务服务时,显然必须进行仔细、全面设计 Java 2 平台企业版 (J2EE) 应用程序。在这方面,最有效的帮助是严格应用旨在实现面向服务的体系结构 (SOA) 的体系结构模式。当公开 Enterprise JavaBean (EJB) 时,此类模式尤其有用。
人们通常把模式仅仅看作是为特殊设计问题提供指导的参考工具; 而事实上,应将模式看作是体系结构要求的组成部分。它们是影响业务服务(封装了业务规则验证、计算、数据访问以及其他驱动 J2EE 应用程序的核心功能的逻辑)组织决策的起点。除其他适用于 J2EE 的模式和思考方式以外,一些学术界人士、供应商和用户还从 SOA 的角度对著名的Design Patterns一书(由 Addison-Wesley 出版社于 1994 年出版,作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides —— 通常称之为“四人帮”或“GoF”)中的许多模式进行了再计算和研究。
本文将从体系结构的角度介绍最重要的模式及其应用,假设您熟悉以下 Web 服务基础知识:简单对象访问协议 (SOAP)、HTTP、XML、J2EE、EJB、Java 消息服务 (JMS) 等。
走进 Web 服务世界
从 J2EE 的角度而言,Web 服务基本上是 J2EE 编程模型的扩展(参见图 1),具体体现在:
Web 服务继承了符合 J2EE 的应用服务器的容器功能。
远程过程调用 (RPC) 样式的 Web 服务通过非会话状态 EJB 公开。
消息样式的 Web 服务通过 JMS(JMS 监听程序)和消息驱动的 bean 公开。
非会话状态 EJB 或 JMS 被定义为 Web 服务定义语言 (WSDL) 的应用程序入口点,并被部署为 Web 服务。
Web 服务客户机使用 WSDL 生成服务请求程序基于 SOAP 的代码。