围绕Web服务技术的宣传越来越多,XML、UDDI、WSDL和SOAP这类缩写词到处都可以看到。微软和Sun也分别采取不同的框架结构迎接Web服务的到来,这就是前者的.NET和后者的Sun ONE。显然,开发者迟早要走向Web技术的开发之路,一切只是时间问题。O’Reilly出版社出版发现的最新图书《 Java Web Service》就为Java开发人员指明了开发Web服务的方向。
涉及范围大
We服务是一种不涉及具体平台和语言的软件架构,但是开发人员必须选择一种语言来具体开发Web服务。如果你选择了Java,该书就正好提供了这一开发途径的有关内容。
该书各个章节阐述各类Web服务技术(从Java的角度):SOAP、WSDL和UDDI等。按照该书的说法,这些技术就是Web服务的基础。各章还包括了有关的Java代码。
从何开始?
该书首先简短介绍了Web服务的概念并讨论了影响该技术被接纳的有关因素。我发现后者的讨论很有意思;书中提到了其他可比的技术而且还解释了它们是如何被接受的。接着是对面向服务模式的讨论而且还提供了对Web服务本质和用途的深入分析。
技术术语
我已经提到,书中很大章节涉及到了SOAP、WSDL和UDDI。具体地说,有两章专门讨论SOAP;第2章关注SOAP错误处理和容易引起混淆的概念。再有,该章还提供了涉及SOAP开发和如何处理不同SOAP版本的有用信息。UDDI 和 WSDL 两章介绍了许多可以直接利用的程序代码。在全面介绍完这些基本技术之后该书立刻转入了对核心Java技术的阐述。
Java企业技术
微软以在其.NET框架中集成Web服务而抢了先机。Sun则以Java Web服务开发包作出了响亮的回答。后者是一种全面包括构建Web服务所必须技术的Java开发工具包,其中包括了消息、进程、注册表和开发工具等内容。该书涵盖了 Java API for XML-based RPC (JAX-RPC) 以及Java API for XML Messaging (JAXM)。实际上,我还没有看到其他书籍涉及到了这些内容,这实在是太好了。可是,该书却忽略了该工具包的其他内容而把主要的精力全投入到了如何使用 JAXM和JAX-RPC开发SOAP。
另有一章的标题是“J2EE 和Web服务”,但照我看却更应该标为“SOAP和Web服务”,这一章整个就在讨论如何同时采用SOAP和J2EE,包括解析SOAP消息、使用RPC和采用Java Message Service (JMS)的例程等。章节末还总结了新出现的、受到BEA支持的Java Web Service (JWS) 计划。
互操作性的优、中、差
到目前为止,我最喜欢的一章就是第9章了,这一章在理论上非常优美地阐述了Web服务的互操作问题,但是却太缺乏现实应用中的讨论。本章给那些以为Web服务可以解决所有问题的人提了个醒。本章详细讨论了许多缺陷和问题领域,同时还介绍了SOAPBuilders 讨论组,创立这个讨论组的宗旨就是随着SOAP技术的逐步成熟而提高Web服务的互操作性(已经发布了新版本,但是这些标准还存在不少问题)。这一章讨论的另一方面就是.NET和 J2EE Web服务的互操作性,有关的阐述相当精彩。
安全性如何?
该书还简要讨论了Web服务的安全问题,其中包括XML安全性(比如数字证书和加密技术等)以及SOAP安全性。用Java工具包开发的示例来自IBM 和Phaos。
小结
O’Reilly出的书一向不错,我认为《Java Web服务》一书提供的信息对读者同样具有很高的价值。不过,该书几乎全力讨论SOAP而忽视了Web服务的其他方面。这样就同O’Reilly出版的《Programming Web Servic with SOAP》以及《Java and SOAP》造成了内容上的重复。书中对Web服务各类技术的介绍信息很容易就能在其他图书中找到(而且更具深度),但其独有的Java示例和技术注解则极具价值。