内容简介
前 言 在现今的商务方案中,兼并和收购看起来是一种潮流。这一情况就产生了对能够满足企业业务需求的分布式Web应用程序的需要。过去,分布式技术行业的很多人都致力于提供一个有效的框架来把那些由基于组件应用程序构成的完全不同的系统集成起来。但是,这样的系统太脆弱了,很难变更或太昂贵,以致难以集成。这些系统是非常巨大的单片集成电路代码基,修改和变更都非常困难。其体系结构是固定的,而且可能是来自单一的供应商。这样的系统有CORBA、分布式SmallTalk和Java RMI。要用在跨越Internet的动态电子商务框架中,这些系统的效率是不够的。CORBA和RMI的解决方案需要严格遵从所有者的标准或是严格遵守数据结构和完全不同的系统间的共享语境。由于这些约束,业界想出了一个更好的解决方案—— 一种提供松散耦合的体系结构,可以重用并且适合更改和扩展。Web服务可能是最能满足这些需求的技术。 事实上,Web服务是不同服务的最佳协作,由松散耦合的独立系统组成,也就是由基于组件的模块式应用程序框架组成。Web服务为我们提供了一组操作并且通过采用标准接口使这组操作可用,这些标准接口是由企业提供的服务,它们被充分描述并且发布到服务目录中。分布式客户程序可以很容易定位这样的服务并且采用基于XML的标准化格式通过Web进行远程 调用。 更具体地讲,Web服务是一组组成技术堆栈的几种相关联的技术。注册和声明一项Web服务要用到下列协议: SOAP WSDL WSFL UDDI ebXML Java平台以其灵活性、可扩展性、可靠性和一次编写,随处运行的特点成为企业用于开发可扩展Web服务的事实上的标准。500多万注册到Sun公司网址的下载已经表明将Java平台建立起作为Web开发者优先选择的编程语言。为了进一步减轻开发者的工作,Sun Microsystems已经引入它自己的Java Web服务开发包。 Web服务开发包是一套Sun Microsystems和其他Java合作伙伴开发的应用程序编程接口(Application Programming Interface, API)和体系结构。这些API和体系结构为重要的Web服务特征提供了Java支持。本书就是介绍为Web开发者提供创建Web服务的深入知识。本书讨论了Web服务技术堆栈(包括UDDI、SOAP和WSDL),Java Web服务体系结构和XML的Java API的完整程序组。本书适用于所有想学习创建Java Web服务的人员,同时还是已经创建Web服务并且想要用Web服务包在其工作中提高效率的开发者的理想选择。 本书结构 本书的基本目标就是培训开发者掌握创建Java Web服务所必需的知识。本书由Web服务的基础开始,在读者充分了解Web服务的概念后,再讨论Web服务技术堆栈和Java Web服务的体系结构。 本书分为如下4个部分: 第1部分 Web服务简介 第1部分给出了Web服务的概述。讨论了对Web服务的需求,深入详细地讨论了面向服务的体系结构(service-oriented architecture,SOA),并描述了SOA如何适应于当前的电子商务模式。这一部分还讨论了Web服务模式与业界现有其他模式相比的优点。 第2部分 Web服务技术堆栈 这一部分讨论了Web服务技术堆栈各种各样的组件,如XML、WSDL、SOAP和UDDI。这一部分详细讨论了如何实现这些Web服务技术堆栈组件,并且给出了作为帮助的示例。 第3部分 Java Web服务的体系结构 第2部分由Java Server Pages(JSP)和servlet的简介开始,然后讨论了Web服务中J2EE的角色。在全面介绍了Java Web服务体系结构的基础知识后,讨论了下列用于访问Web服务的API: XML处理的Java API(Java API for XML Processing,JAXP) XML绑定的Java API(Java API for XML Binding,JAXB) XML通信的Java API(Java API for XML Messaging,JAXM) 基于XML的RPC的Java API(Java API for XML-based RPC,JAX-RPC) XML注册的Java API(Java API for XML Registries,JAXR) 第4部分 附录 这一部分包括供读者快速参考的附录和一个关于Java WSDP的附录。Java WSDP附录阐述了如何使用WSDP创建Web应用程序。 辅助Web网址 本书提供了一个辅助Web站点,从中可以下载各个章节的代码。所有代码列表都以zip文件形式放在的Java Web Services Programming链接下。如果当前您没有Winzip,可以从下载一个测试版本。 致谢 在此对所有在本书成书过程中作出贡献的NIIT和Wiley 出版公司的职员表示感谢。我要特别感谢NIIT公司的项目经理Anita Sastry,没有她一贯的支持,就没有这本书。同样也要特别感谢Simanta的帮助。还要感谢Shweta、Shilpa和所有在我最需要的时候给我坚定支持的亲爱的朋友们。我还要感谢我的合作者V. V. Preetham,感谢他的合作。 我还要特别感谢组稿编辑Christopher K. Webb和项目编辑Sharon Nash给我这个机会让我编写这本书。也要特别感谢技术编辑David Wall和高级文稿编辑Bill Barton有价值的录入工作和一贯支持。 —— Rashim Mogha 我非常高兴有这个机会感谢所有参与创作这本书的每个人:NIIT公司的项目经理Anita Sastry、制图小组和技术编辑们。Wiley出版公司的组稿编辑Christopher K. Webb、项目编辑Sharon Nash、技术编辑David Wall和高级文稿编辑Bill Barton,感谢他们的支持和鼓励。 我还要借此机会感谢所有直接或是间接对编写本书作出贡献的人们。 —— V. V. Preetham 关于作者 Rashim Mogha是微软认证的解决方案开发人员(Microsoft Certified Solution Developer, MCSD)。Rashim曾从事多种技术工作,如ACT! 2000、SQL Server、Goldmine、A+认证、Cisco和Forte for Java。她的工作涉及教师引导培训课程的设计、开发、测试和实现。她的首要职责包括培训开发经理和项目管理人,进行教学评审、技术评审和保证ISO的一致性。她喜欢写作。 V. V. Preetham为J2EE规范和技术的组织提供咨询服务,例如,关于WebLogic的EJB、Java、Tomcat和XML。他在运用多种Java API、Java 2技术、BEA WebLogic Server和J2EE核心模式方面有着广泛的经验。