2008年1月1日星期二

WebService_001:WebService是个啥东东?

让我们以一个问题开始我们的话题:给你XMLHTTP,你能创造出什么?
答案可能是五花八门,千差万别。我比较倾向的回答是:分布式XML应用。
这当然不是我想到的,你可能觉得这个回答没啥了不起,觉得自己也能想到——但我必须承认,我想不到,虽然在那个时候,我会做些Web开发,也懂得XML的各种好处,但是把这两个东西放在一起,我却不知道能做什么。让我们感谢那些“遇事总是要问为什么”的人,是他们推动了科技的进步。
XML + HTTP = 分布式XML应用
这是一个天才的主意,虽然这个主意一开始还很不成熟,但是没有这个最初的想法,就没有我们要谈论的WebService。今天,几乎所有人都知道了WebService——但是真的是很清楚了吗?那么,我问你:什么是WebService?
嘿嘿,我Google了一圈,没有找到一个让我满意的答案。最后,我决定采用下面这个说法:
“A web service is a piece of business logic, located somewhere on the Internet, that is accessible through standard-based Internet protocols such as HTTP or SMTP.”(摘自《Java Web Service》)
这个定义起码说清楚了WebService是干吗用的,以什么样的方式用。
Web服务的核心特征:


  • XML-based:基于XML的数据传输方式。

  • Loosely coupled:松耦合。Web服务接口改变,而客户端无需改变。

  • Coarse-grained:粗粒度。业务接口应该是粗粒度的。(后面有专文讨论粒度问题)

  • Support synchronous and asynchronous:支持同步和异步。

  • Supports Remote Procedure Calls (RPCs):支持远程调用。

  • Supports document exchange:支持文档交换。

Web服务的核心技术:


  • SOAP

  • WSDL

  • UDDI
参考文献
1. 《Java Web Service》 作者 David Chappell 和 Tyler Jewell。
2. 《Java SOAP 编程指南》 作者 Henry Bequet 译者 魏海萍 于晓菲 毛选。

没有评论: