Feng.Li's Java See

抓紧时间,大步向前。
随笔 - 95, 文章 - 4, 评论 - 58, 引用 - 0
数据加载中……

架构Web Service:什么是Web服务?

本文是架构 Web 服务的系列文章的第二篇,从 Web 服务的技术定义开始,来探讨什么是 Web 服务。首先,作者从技术角度详细分析了 Web 服务作为 Internet 环境下的软件组件的基本角色,从这个基本角色开始,详细介绍了这个组件对象的包装规范 Web Service "stack" ,并对 Web 服务的应用做了分类,最后借助 Garnter Group 的材料考察了 Web 服务的当前发展状况。

在本系列的上一篇文章中,我就为什么需要 Web 服务,从商业利益需求的角度进行了分析。本文将结合技术驱动的发展需求,详细介绍从技术上来看,到底什么是 Web 服务,以及 Web 服务的应用分类。就技术角度而言,无论从哪个角度来看, Web 服务都是对象 / 组件技术在 Internet 中的延伸。

本文所引用的资源主要包括两类,一类是 Web 服务的技术资源网站,包含了大量 Web 服务的技术信息,另一类是 Web 服务 “stack" 系列技术规范,他们是一个整体的技术体系,包括 UDDI SOAP WSDL XML 等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些 资源链接 找到所需的内容。

Web 对象

从外部的使用者的角度而言, Web 服务是一种部署在 Web 上的对象 / 组件,它具备以下特征:

  • 完好的封装性 Web 服务既然是一种部署在 Web 上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表。
  • 松散耦合 ,这一特征也是源于对象 / 组件技术,当一个 Web 服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要 Web 服务的调用界面不变, Web 服务的实现任何变更对他们来说都是透明的,甚至是当 Web 服务的实现平台从 J2EE 迁移到了 .NET 或者是相反的迁移流程,用户都可以对此一无所知。对于松散耦合而言,尤其是在 Internet 环境下的 Web 服务而言,需要有一种适合 Internet 环境的消息交换协议。而 XML/SOAP 正是目前最为适合的消息交换协议。
  • 使用协约的规范性 ,这一特征从对象而来,但相比一般对象其界面规范更加规范化和易于机器理解。首先,作为 Web 服务,对象界面所提供的功能应当使用标准的描述语言来描述 ( 比如 WSDL) ;其次,由标准描述语言描述的服务界面应当是能够被发现的,因此这一描述文档需要被存储在私有的或公共的注册库里面。同时,使用标准描述语言描述的使用协约将不仅仅是服务界面,它将被延伸到 Web 服务的聚合、跨 Web 服务的事务、工作流等,而这些又都需要服务质量 (QoS) 的保障。其次,我们知道安全机制对于松散耦合的对象环境的重要性,因此我们需要对诸如授权认证、数据完整性 ( 比如签名机制 ) 、消息源认证以及事务的不可否认性等运用规范的方法来描述、传输和交换。最后,在所有层次的处理都应当是可管理的,因此需要对管理协约运用同样的机制。
  • 使用标准协议规范 ,作为 Web 服务,其所有公共的协约完全需要使用开放的标准协议进行描述、传输和交换。这些标准协议具有完全免费的规范,以便由任意方进行实现。一般而言,绝大多数规范将最终有 W3C OASIS 作为最终版本的发布方和维护方。
  • 高度可集成能力 。由于 Web 服务采取简单的、易理解的标准 Web 协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是 CORBA DCOM 还是 EJB 都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。

Web Service "Stack"

在前一节中,我们已经了解到为了完成在松散耦合的环境下的对象访问,以及在基本对象访问之上的诸如事务、工作流、安全机制等。实现一个完整的 Web 服务体系需要有一系列的协议规范来支撑。

Figure 1. Web Service "stack"
image002.gif

其中,绿色部分是先前已经定义好的并且广泛使用的传输层和网络层的标准: IP HTTP SMTP 等。而蓝色部分是目前开发的 Web 服务的相关标准协议,包括服务调用协议 SOAP 、服务描述协议 WSDL 和服务发现 / 集成协议 UDDI ,以及服务工作流描述语言 WSFL 。而橙色部分描述的是更高层的待开发的关于路由、可靠性以及事务等方面的协议。黄色部分是各个协议层的公用机制,这些机制一般由外部的正交机制来完成。

从以上这个技术层次图我们看以看到, Web 服务追求的第一目标是简单性。可能大家会觉得很奇怪,有那么多协议,怎么能说他简单。

首先,这些协议本身都是简单的,无论是 HTTP, FTP 等传统的 TCP/IP 系统的网络协议,还是 SOAP, WSDL, UDDI, WSFL 等基于 XML 的协议,他们设计原则中的一个最重要点就是力求简单性。相信大家如果对 XML SOAP 等有深入了解的话,一定会深深体会这一点。

其次,一个可以使用的 Web 服务应当按照需要选用若干层次的功能,而无需所有的特性。比如在目前状况下,一个简单应用可能只要使用 WSDL/SOAP 就可以架构一个符合规范的 Web 服务了。

最后,所有的机制完全是基于现有的技术,并没有创造一个完全的新体系。无论是 IPv4 HTTP FTP 这些现有的网络协议,还是 SOAP WSDL 等这些基于 XML 而定义的协议都是遵循着一个原则:继承原有的被广泛接受的技术,这样才能使得 Web 服务被广泛接受。

Web 服务的类别

综合当今的 Web 应用以及 Web 服务的特点,我们认为 Web 服务实施的领域可以分为四类:

  • Business-Oriented Web Service: 该类服务针对的是那些面向企业应用服务,包括企业内部的 ERP 系统,企业间的 SCM/CRM 等系统。当这些系统以 Web 服务的形式在网络 (Internet intranet) 中出现时,企业内的应用集成将更容易,而在企业间的众多合作伙伴的系统对接也将不再是无法完成的任务。目前现有的解决方案和产品的提供商有 Bowstreet Epicentric 等。
  • Consumer-Oriented Web Service: 此类服务针对的是那些原先的 B2C 的网站的改造,为这些 Browser-Oriented Web 应用增加 ( 注意是增加 ) Web 服务的应用界面,使得第三方的桌面工具或其自身提供的增值的桌面工具能够利用更优秀的用户界面提供跨越多个 B2C 服务的桌面服务。这将使得用户使用 Internet 更为方便,能够获得更加便捷的服务。比如我们完全就可以在个人理财桌面系统中集成 ( 调用 )Internet 上的股票价格查询 Web 服务、机票预定 Web 服务等,使得个人理财应用的自动化程度更高。
  • Device-Oriented Web Service: 此类服务的使用终端一般是手持设备和日用家电,对于前者而言,可以在不用修改网络服务的体系架构的前提下,令先前的网络服务支持除 PC 以外的各种终端,比如 Palm PocketPC 、手机等。如此,那些天气预报服务、 Email 服务、主动信息服务等将更为有效和便捷。而后者对于日用家电,则可能是一个市场的启动期,有了 Web 服务作为基础框架,智能型的日用家电将真正获得标准的支持,从而有了广泛使用的可能。
  • System-Oriented Web Service: 一些传统意义上的系统服务,比如用户权限认证,系统监控等,如果被迁移到全球范围的 Internet 上,或者企业内部的 intranet 上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整个 Internet 。如此,基于同一系统服务的不同应用将得以在整个 Internet 环境中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限认证 Web 服务。

Web 服务 : 当今的技术最亮点

Figure 2. Web 服务的当前发展状况
image003.gif

以上这幅图是 Gartner Group 在研究了所有 IT 主流时尚技术的发展道路后,作出的抽象模型。 Y 轴表明技术的受关注程度,而 X 轴则表示技术的应用的成熟度。每一项技术在从出现到成熟的整个过程都将沿着图中的曲线前进,而且典型地,都将被划分为五个阶段:

  • 技术显现:一门技术被发明或定义之后,开始进入公众的视野;
  • 不断膨胀的期望期:由于该项技术的划时代的突破,使人们对这项技术有着无比美好的想象和期望,这一阶段类似 " 网络的泡沫器 "
  • 希望破灭之后的醒悟期:由于每项技术都不是万能的,真正获得使用仍然需要务实的加以应用研究,因此此时人们发现这项技术似乎并没有期望中那么有用,这一阶段类似 " 网络的泡沫破灭 "
  • 豁然开朗的应用发展期:经过了一个阶段的开发和研究,该项技术终于走上了良性发展的轨道,越来越多的人接受并使用了该项技术;
  • 大量的工业化生产期:该项技术成为业界主流,大量应用在具体的环境中。

posted on 2007-03-28 10:57 小锋 阅读(305) 评论(0)  编辑  收藏 所属分类: J2EE


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


网站导航: