中国发展报|北京中发科达信息技术研究院 岛田阳子磁力

上一篇 | 下一篇

深入理解SOA相关的Web服务标准

发布: 2009-3-07 14:45 | 作者: admin | 来源: | 查看: 85次

  【IT168 技术文章】

  Web服务是为通过Web进行数据交换定义的标准。这并不是说Web服务将暴露给互联网,只是有一套许多产品支持的一致同意的“Web标准”。

  当决定采用哪一种标准的时候,最值得考虑的经常是技术人员提出的建议。

他们可能会依次向你推荐一个最容易实施的标准,能够得到最广泛的技术支持的产品和最有可能在你的环境中很好地工作的标准。为了有一个能够经受时间的考验并且在为来能够继续扩展的成功的SOA实施,所有这三个因素都是极为重要的,互操作性是极为重要的。

  WS-I

  Web服务互操作组织(WS-I)专门制定Web标准的最佳做法,以确保不同操作系统、平台或者编程语言的互操作性。WS-I负责定义Web服务安全和Web服务处理技术规范等最佳做法文献。这些文献帮助开发人员和企业符合其他人正在采用的做法,保证户操作性。

  WS-I还发布技术规范、测试套装软件和如何部署这些协议的样本。实际上,WS-I是由微软和IBM等许多机构组成的一个管理机构,其任务是推广互操作的Web服务。

  使用协议

  Web服务依赖于协议保证通讯是有意义的。服务之间发送的数据内容必须是以前同意的,以保证双方都能知道收到的内容是什么。SOAP是在交换数据时应用最广泛的协议的一个例子。SOAP使用XML编程语言,允许双方都能解码发送的内容并且格式化来回发送的信息。

  说明

  我们很快将介绍一些架构,还要参考一些Web服务协议。不要混淆这两项内容是很重要的。所以下面简单介绍一下。

  REST和RPC等软件架构不是协议。它们是规定如何实施协议的方法。

  WSDL(Web服务描述语言)是用来以格式化的方式描述一个特定的Web服务的语言,以便应用程序能够解析这个服务。WSDL本身不以Web服务互动方式提供任何功能。

  SOAP、XML-RPC或者DCOM等协议本身确切地定义了如何传递消息以及一个程序如何理解它收到的数据。

  SOA中有两种主要类型的架构:RPC系列的协议和具象状态传输(REST)方式。

  RPC

  远程过程调用(RPC)方式允许编程人员在一个系统上编程的时候能够像“调用”本地资源一样调用远程系统的资源。RPC式的服务的缺点是人们倾向于像使用他们熟悉的指定平台上的编程语言那样使用这种方式。如果与本地的过程相同的话,它甚至很容易调用一个远程的过程。

  这个逻辑违反了“松散耦合”的概念。松散耦合概念实际上意味着远程过程不应该依赖于任何特定的操作系统或者编程语言。

  SOAP是XML-RPC的后续协议,仅仅是在XML中包含其信息的一个远程过程调用。SOAP使用HTTP协议发送数据,这是很好和很简单的,但是,确实存在一些缺点。尽管如此,最近大多数Web服务仍使用HTTP协议进行通讯,因为它们都是使用SOAP协议建立的。

  REST

  具象状态传输(REST)方式从根本上是与远程过程调用是不同的,因为它工作的层次不同。一个REST调用看起来就像是任何通过HTTP协议的其它Web请求,而RPC调用看起来就像是一个标准的功能调用。REST的重点是用稳定的资源操作,而不是单个的信息,从而产生更标准的和广泛理解的互动方式,就像HTTP协议本身一样。REST处理简单数据的传送块,而RPC传送复杂的过程。

  使用REST还是RPC

  是否使用REST的问题肯定是一个好问题。它好像是未来的方法。但是,你的SOA需要结合到你目前使用的每一个软件中。REST的应用一直很缓慢,主要是由于Web服务的支持。虽然一个REST系统能够使用WSDL描述一个在HTTP上的SOAP信息,但是,还没有足够的支持以真正地使用它。例如,如果不安装插件模块,Apache甚至都不支持使用REST所需要的方法。

  还有一些不属于Web服务家族的其它标准。但是,正如你预料的那样,这些标准没有得到广泛的支持。Jini、WCF和CORBA等就是一些例子。当一家厂商要向你提供仅支持上述技术之一的产品,你要马上跑开,而不是走开。Web服务目前的到了广泛的支持。Web服务的应用只会增长。SOA本身据说是新的、不稳定的和有风险的。但是,当你选择一个得到广泛技术支持的合适的Web服务标准时,这些风险基本上可以缓解。

  最后,坚持在某些类型的RPC式的系统的基础上使用老式的SOAP是目前使用Web服务建立SOA的一种可行的机制。如果你这样做,你就可以显著减少锁定厂商的机会。

字号: | 推荐给好友

 

评分:0

我来说两句