如果你是Web服务开发方面的新手,那么你如何搞清楚这种新兴的框架以便今天就开始写你自己的程序呢?对于程序员而言,本书既具体介绍了XML Web服务,同时又是该方面的一本方便的参考书,本书准确阐述了新一代分布式服务的基础知识,并且展示了用开源Java工具创建服务的快捷方法。
Web服务使得不同的应用程序相互识别并通过Internet无缝交换数据成为可能。例如,在Solaris上运行的Java程序能够找到并且调用运行在Windows XP上用C#语言写的代码,或者调用运行在Linux上用Perl写的程序,而不用考虑这个服务如何实现等细节问题。常见的Web服务集是微软的新的.NET策略、Sun公司的Sun ONE Platform和W3C的XML Protocol Activity Group中的核心。
在本书中,作者Ethan Cerami谈到了四种关键技术:
● XML远程过程调用(XML-RPC);
● SOAP(大多数商业Web服务开发的基础);
● 通用发现、描述和集成(UDDI);
● Web服务描述语言(WSDL)
本书对上述主题进行了概述,包括含有大量样例代码的Java语言概览,组成服务的XML文档的例子以及对可以免费获得的Java API的解释。本书也包括了当前Web服务指南、开源工具指导和术语解释。
如果你要揭开Web服务的面纱,找到相关技术的有用信息,那么就阅读本书吧。
前言
第一部分 Web服务简介
第一章 简介
Web服务简介
Web服务体系结构
XML消息接发
服务描述:WSDL
服务发现:UDDI
服务传输
安全性考虑
总体观察
标准和一致
第二部分 XML-RPC
第二章 XML-RPC精髓
XML-RPC概览
为什么选择XML-RPC?
XML-RPC技术概览
用XML-RPC开发服务
超越简单调用
第三部分 SOAP
第三章 SOAP精髓
SOAP 101
SOAp消息
SOAP编码
SOAP通过HTTP传输
SOAP和W3C
SOAP实现
第四章 Apache SOAP快速入门
安装Apache SOAP
Hello, SOAP!
部署SOAP服务
TcpTunnelGui工具
Web资源
第五章 Apache SOAP编程
使用数组
使用JavaBean
使用直接XML文档
处理SOAP故障
维持会话状态
第四部分 WSDL
第六章 WSDL精髓
WSDL规范
基本的WSDL例子:HelloService.wsdl
WSDL调用工具之一
基本的WSDL例子: XMethods eBay Price Watcl
WSDL调用工具之二
自动生成WSDL文件
XML Schema的数据类型定义
第五部分 UDDI
第七章 UDDI精髓
UDDI简介
为什么选择UDDI?
UDDI技术回顾
UDDI数据模型
搜索UDDI
向UDDI发布
UDDI实现
Web资源
第八章 UDDI查询API快速参考
UDDI杏询API
查找限定符
第九章 UDDI 4J
准备工作
发现和获取UDDI数据
发布UDDI数据
UDDI4J快速参考API
词汇表
Web服务为建立分布式Web应用提供了一个新的.不断发展的典范.本书集中介绍了Web服务的精髓, 涵盖了四种主要技术:XML—RPC.SOAP.WSDL和UDDI, 对每个技术都做了高水平的慨述.本书还描述了相关的API, 并讨论了每种技术的实现条件.本书提供了大量实例, 读者立即就可以亲身体验Web服务的实际运行.
本书的读者
本书适合刚开始接触web服务的开发者.本书致力于描绘出一幅宏观展望, 使你能够理解Web服务的范围和程度, 同时还提供了足够的具体细节和样例代码, 使你能够学会编写自己的Web服务.
当面临专用系统还是开源实现的选择时, 我们往往选择开源实现, 当面临编程语言的选择时, 我们会选择Java.要充分利用本书, 你应该具有丰富的Java编程经验.如果需要复习Java, 请参考这几本书:
●《Learning Java》, Patrick Niemeyer和Jonathan Knudsen编著(O'Reilly &Associates公司出版)(译注1)
●《Java in a Nutshell》(第四版), David Flanagan编著(O'Reilly)对XML(eXtensible Markup Language, 可扩展标记语言)有个基本的理解也很重要.要牢固掌握XML, 可以参考这几本书:
●《Learning XML》, Erik T.Ray编著(O'Reilly)
●《XML in a Nutshell:A Desktop Quick Reference》, Elliotte Rusty Harold和W.Scott Means编著(O'Rellly)
本书的组织结构
本书分为五个部分.第一部分是Web服务的总体介绍, 第二部分至第五部分集中介绍核心的Web服务技术.包括XML—RPC.SOAP.WSDL和UDDI.本书最后给出了普通Web服务术语表.
第一部分Web服务简介
第一章介绍Web服务.Web服务体系结构和Web服务协议栈, 还简要介绍了当前W3C(World Wide Web Consortium, 万维网联盟)在实现Web服务标准化方面的工作.
第二部分XML-RPC
第二章全面介绍了XML-RPC, 包括XML—RPC技术概览以及对XML-RPC数据类型.请求和响应的详细解释.本章还包括用Java和Perl编写的XML—RPC样例代码.
第三部分SOAP
第三章全面阐述了SOAP, 包括对SOAP规范.通过HTTP实现SOAP和W3C针对SOAP标准化工作的介绍.
第四章提供了如何使用Apache SOAP(SOAP规范的开源Java实现)的快速入门指南.本章详细解释了如何安装和部署SOAP服务, 以及如何编写基本的服务和客户端代码.
第五章是有关Apache SOAP编程的深层次指南, 包括如何使用数组.Java BeansTM和直接XML文档的总体介绍.本章还讨论了如何处理SoAP故障和如何维持会话状态.
第四部分WSDL
第六章全面介绍了WSDL, 包括规范本身的概览, 并提供了大量的WSDL样例, 还介绍了WSDL调用工具.
第五部分UDDI
第七章全面介绍了UDDI, 包括UDDI数据模型的概览, 以及搜索已有数据和发布新数据的指南.
第八章提供了有关UDDI查询API的快速参考.
第九章介绍了一个开源Java实现——UDDI4J.样例代码说明了如何搜索和发布UDDI数据.本章还完整地介绍了UDDI4J API.
排版约定
本书使用了如下英文字体约定:
斜体(italic)用于:
· 路径名.文件名.函数名和程序名
· Internet地址, 如域名和URL
· 新定义的术语
等宽字体(constant width)用于:
· 命令行和必须逐字输入的选项
· 程序中的名称和关键词.包括方法名.变量名.类名.值名和XML-RPC首部
· XML元素标签
等宽黑体(constant width bold)用于表示在程序代码行中强调的部分
等宽斜体(constant width italic)用于在程序代码中表示可代替的参数
建议与评论
本书的内容都经过测试, 尽管我们做了最大的努力, 但错误和疏忽仍然是在所难免的.如果你发现有什么错误, 或者是对将来的版本有什么建议, 请通过下面的地址告诉我们:
美国:
O'Reilly & Associates, Inc.
101 Morris Street
Sebastopol, CA 95472
中国:
100080北京市海淀区知春路49号希格玛公寓B座809室
奥莱理软件(北京)有限公司
你还可以给我们发电子消息.要加入邮件列表或索要书目, 请发电子邮件到:
info@oreilly.com
要询问技术问题或对本书发表评论, 请发电子邮件到:
bookquestions@oreilly.com
info@mail.oreilly.com.cn
本书还有一个专门的网站, 我们将在这个网站上列出例子.勘误表以及再版计划.可以通过下面的网址访问这个网站:
http://www.oreilly.com/catalog/webservess/
要了解本书和其他书的信息, 请访问O'Reilly网站:
http://www.oreilly.com
http://www.oreilly.com.cn
致谢
写一本O'Reilly出版的书一直是我的一个梦想.当然, 不是单凭我个人的能力就可以实现这个梦想的, 所以我要感谢那些帮助我实现梦想的人们.首先, 我要感谢本书的编辑——来自O'Reilly的Simon St.Laurent.他是第一个让我关注Web服务的人, 从最初阶段到最后一轮校稿, 每一步他都给予了耐心的指导.他还撰写了第二章.我还要感谢所有对本书初稿提出宝贵意见的技术审稿人, 他们是Leigh Dodds.Timothy J.Ewald.Martin Gudgin.Simon Horrell和Tim O'Reilly.Mind Electric公司的首席执行官Graham Glass解答了我提出的大量有关GLUE平台和WSDL的一殷性问题.XMethods公司的创办人之一Tony Hong帮助我解决了有关SOAP互操作性的问题, 并允许再版XMethods eBay Price Watcher Service的WSDL文件.本书制作编辑Claire Cloutier的出色工作保证了本书拥有良好的组织结构并能按时出版.其次.我要感谢我在Winstar Communications的老板Gary Lazarus.他允许我为完成本书而灵活安排时间.为此, 我永远感激他.再者, 我要感谢我的朋友和我的家人.是的, 我指的就是你们, 你们养育了我, 并帮助我保持和谐的生活.谢谢你们.
然后, 我要感谢我的岳父Ed Orsenigo, 您的勇气和坚毅时刻鼓舞着我们.
最后, 我要感谢我的妻子Amy.在我撰写本书期间, 我们竟然能挤出时间共结连理.2001年9月1日是我一生中最幸福的日子.谢谢你, Amy, 谢谢你对我的支持和鼓励, 谢谢你为周围的人所带来的快乐.