Tauruser

JSF will hibernate in spring.

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  24 随笔 :: 2 文章 :: 19 评论 :: 0 Trackbacks
  最近去图书馆借了本《Java Web 服务编程指南》,读了第一章,写点自己的看法吧。
  在还没有接触这本书的时候,我一直的以为WS就只是网络上的web应用,这么说吧,就是我们经常上的网站。看了第一章之后,我才发现之前的直观的看法是错误的,Web Service并不只是一个网站。Web Service使我们能够对网络上的一个对象进行远程调用,也就是Remote Procedure Calls,RPC。
  我是这么理解的,一般性的网站我们也可以看成是广义上的Web Service,但是Web Service并不仅局限行一般性的网站,他更加强大的功能在于提供一个公开的,标准化的接口,让所有的客户都能通过一服务注册表,查找到此项服务,并对此项服务进行绑定。客户可以通过这个公开的,标准化的API接口,进行远程的服务调用。这些服务如,查询天气预报,查询机场服务,在一个网络商场进行下订单操作,等等。只要服务商愿意公开他的Web服务,并在服务注册表发布其服务,所有的潜在客户都可以通过在服务注册表中查找此服务,并得到关于此项服务的一些具体的描述,从而在服务商与客户之间建立bind关系,远程调用这些服务。
   在Web服务中,我们可以看到有三个不同的角色。他们之间的交互关系如下图所示。
  
  
  从这个图我们可以很清楚地看到三者之间的关系。服务提供者提供Web Service,服务消费者是使用此服务客户,而位于最顶端的服务注册表,则为两者互相寻找对方提供了一个桥梁。服务提供者在服务注册表上发布自己提供的服务,服务消费者从服务注册表上查找自己需要的服务,找到后,就可以在服务消费者和服务提供者之间进行绑定,服务消费者就可以对服务提供者提供的服务进行访问,远程调用。这里需要注意的是,服务提供者提供的服务可能是一个非常复杂的服务,他这项服务可能还会调用其它服务提供者提供的服务,他将所有的这些信息整合处理,最终为服务消费者完成此项服务。当然这项服务也可以很简单,简单到服务消费者发起一个访问,直接返回一个响应就可以了。
  三个实体之间要进行通信,为了保证这些通信都能顺利的进行,我们需要为这些通信定义规则,如果大家都遵守这些规则行事,这样我们提供的服务就可以给任何消费者使用,消费者也就可以使用任何的服务提供者的服务了。这些规则有:
  
  1. Web Service Description Language, WSDL,Web服务描述语言,用来描述Web服务。
      
  2. Universal Description, Discovery, and Integration, UDDI,通用描述,发现,集成标准。这个是用来发布和查找Web服务的标准协议。
  3. Simple Object Access Protocol,SOAP,简单对象访问协议。用于绑定到Web服务的标准应用程序协议。

  这三个协议可以简单的和上图的三个操作对应。
  最终我们得到了基本Web服务栈:
  
上面的功能都需要下面的支持。从最底层我们可以看到,Web服务不一定是建立在HTTP之上的,我们可以使用多种基于TCP/IP的应用层协议来实现我们的web service。

posted on 2006-11-28 12:34 Tauruser 阅读(837) 评论(2)  编辑  收藏

评论

# re: 初读《Java Web 服务编程指南》 2006-11-28 13:23 Zou Ang
不错,今天刚用GlassFish和Axis搭了一个最最最最简单的Web Service  回复  更多评论
  

# re: 初读《Java Web 服务编程指南》 2007-06-05 21:03 liushuo
感谢分享,只是有一点理解不同:Web Service 不同于传统的PRC或其它网上服务,因为它在进行调用和回复的时候都是在传递XML格式的文档,这样任何机器都能理解这个文档所包含的调用和回复的信息,从而实现了机器之间跨平台的互相调用。而且SOAP RPC似乎比一般的XML RPC功能更强大,因为它提供的调用方式更灵活,具体我还在研究中。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: