什么是Web Services?
Web技术是Internet真正普及和广泛应用的基础,自从Web诞生以来,就迅速地从科学研究机构推广到社会生活的应用领域,如电子商务、电子政务、远程教育、远程医疗等。而Web Services又是Web技术发展到一定阶段的产物,它是一种由商业需求驱动的,以相关工业标准和规范为核心的一系列开放互操作技术。究其产生背景,仍然是分布式计算及其应用这样一个大需求,它对未来的Web开发方式、应用方式都将产生根本性的影响,因此,也有人称Web Services为“第三次革命”。
Web Services较准确的理解是:“Web服务是建立可互操作的分布式应用程序的新平台,其核心思想都是——Web提供的不再仅仅是由人阅读的一个个的页面,而是以功能为主的服务”,这些服务可以是接口、程序,也可以是某种满足需求的数据集,“这些服务可为其他服务(程序)所用,从而使Web从现有的人来阅读、具有过多人工干预的显示页面,提升到可由机器或软件自动(或半自动)处理的更高智能上”。
Web Services由4部分组成,分别是服务(Service)本身、服务的提供方(Service Provider)、服务的请求方(Service Requester)和服务注册机构(Service Regestry),其中服务的提供方、请求方和注册机构称为Web Services的三大角色(role)。这4部分的合作、调用、管理关系(图1)构成了Web Services的生命周期。
图1 Web Services的组成部分 数据挖掘实验室
总之,Web Services的内涵和它的命名有某些呼应之处——不像以往许多技术或规范,命名十分具体,而Web Services术语中的“Services”这个复数形式的简单名词却包含了更广泛和更深入的含义——多个服务(Service)在Web这个公共平台上如何产生、发布、管理,如何彼此配合使用等构成了Web Services的体系结构;同时这些又涉及更多的相关规范和技术标准。
Web Services的体系结构
如图1所示,参与Web Services的三大角色及其行为共同构成了Web Services的体系结构,其中:
(1)服务提供方:从商务观点看,服务提供方是服务的所有者;而从体系结构的角度看,是提供对服务进行访问的平台。它所提供的服务,应可部署于网络的可访问平台之上。
(2)服务请求方:与服务提供方类似,从商务观点看,服务请求方是请求某种特定功能的需求方;而从体系结构的角度看,它是查询或调用某个服务的应用程序或客户端。
(3)服务注册机构:是服务的注册管理机构,服务提供方将其所能提供的服务在此进行注册、发布,以便服务请求方通过查询和授权获取所需的服务。
所有使用Web服务的应用程序,都至少进行以下3种“动作”: 数据挖掘研究院
(1)发布服务描述:为了使所提供的服务可访问,服务提供方应发布服务描述信息,以便将来服务请求方可以查找所需的服务。发布服务描述的位置可因应用程序的需求而异。
(2)查询和查找服务描述:服务请求方要获取自己所需的服务,首先要对服务进行查找。在查找过程中,服务请求方直接检索服务描述信息或在服务注册方进行查找。查找操作可在设计阶段或运行阶段出现。在设计阶段,为程序开发而检索相关服务的接口描述;在运行时,为调用相关服务而检索服务的绑定和位置描述信息。
(3)根据服务描述绑定、调用服务:在真正使用某个服务时,需要绑定、调用该服务。绑定某个服务时,服务请求方使用服务描述中的绑定信息来定位、联系并调用该服务;进而在运行时调用或启动与服务的互操作。
此外,在Web Services体系结构中,还有一个重要的概念——Web Services协议栈,如图2所示。
图2 Web Services协议栈 数据挖掘研究院
该栈描述了从协议层到最高层的服务流层的各层中元素在Web服务体系结构中的作用,以及该体系机构中各层的安全与管理角色。
Web Services的相关标准和规范
如前所述,Web Services是一种完全基于开放标准和工业规范的开放式、分布式互操作技术。这些开放式工业标准和规范决定了Web Services的开放性、跨平台性和互操作性。
这些工业标准和相关规范包括:
(1)eXtensible Markup Language(可扩展置标语言,XML)。XML不仅是Web上的“世界语”,更是整个Web Services技术架构的基石。它是由W3C(http://www.w3.org)的6个相关工作小组负责开发、维护的。目前,XML已经发展为一族开放语言和技术,包括语言本身(XML)、模式(DTD和XML Schema)、表现和转换(XSL/XSLT)、查询(XQuery)等。其中XML本身已发布了1.1版本草案(本刊2004年2/3期合刊“IT时空”上刊登了W3C概述的文章)。
(2)XML Schema。XML Schema是Web Services架构下的XML数据标准建模语言,由W3C的XML Schema Working Group负责开发、维护。它使用和XML完全一致的语法来定义XML数据模式。2001年5月发布了该规范的1.0草案,使用至今。
(3)Simple Object Access Protocol(简单对象访问协议,SOAP)。它描述了一种在松散的分布式环境中如何利用XML来对等地交换结构化信息的简单、轻量级协议,是其中的核心技术之一,由W3C的XML Protocol Working Group负责开发、维护。最初源于1998年由Vserland Software的Dave Winter创建的基于XML的RPC机制,1999年后发展为SOAP 0.9。目前的版本是2003年6月颁布的SOAP 1.2。
(4)Web Services Description Language(Web Services描述语言)。它是用于描述Web Services的调用接口,是Web Services的核心技术之一,由W3C的Web Services Description Working Group负责开发、维护。它经历了2003年1月颁布的WSDL 1.2和WSDL 2.0(2003年11月颁布)这两个重要的版本。
(5)Universal Description, Discovery and Integration(统一描述、发现和集成协议,UDDI)。用于使商务应用中的实体能够方便、准确地发现并使用最佳应用软件和Web Services,是Web Services架构下核心的服务描述、发现和集成规范。UDDI由OASIS(Organization for the Advancement of Structured Information Standards,http://www.oasis-open.org)负责开发、维护。目前的版本是2003年10月颁布的3.0.1版本,该版本在2002年7月颁布的3.0版本的基础上除了给出勘误表以外,主要提出了建立元服务(meta service)的概念。在http://uddi.org/pubs/uddi-v3.0.1-20031014.htm可获取UDDI规范的最新版本。
(6)Web Services Security(WS-Security)。是为Web Services提供安全性保障的语言,它通过消息完整性、消息机密性和简单的消息认证来提供消息的安全机制。是Web Services的重要支持技术之一,由Microsoft、IBM和Verisign共同发布。
(7)Business Process Execution Language for Web Services (BPEL4WS)。是描述Web Services业务处理机制的语言,用于将一组现有的Web Services整合起来,定义为一个新的Web Service。该规范源于IBM的WSFL和Microsoft的XLANG,其中WSFL支持面向图形的流程,XLANG支持流程的结构化构造机制;而BPEL4WS正是取两家之长,以一种最自然的方式支持各种类型的业务流程的构造机制。BFEL4WS由OASIS于2002年8月颁布,具体开发、维护由Microsoft、IBM和BEA等共同负责,有望成为Web Services整合方面的基础标准。
Web Services的研究与应用现状——企业链接
Web Services从一开始就围绕应用(尤其是电子商务应用)而发展,所有与其相关的技术也是以应用驱动,迅速发展。
业内已有越来越多的技术平台支持Web Services,主要包括以下3家。
(1)IBM。IBM作为Web Services的两大倡导者之一,首先提出了Web Services技术框架(IBM Web Services),随后在其主打产品Web Sphere系列中推出了WebSphere SDK for Web Services(WSDK)工具集,提供编写基于Java的Web Services和创建Web Services客户端的机制,并允许开发人员利用现有的Java构件组装Web Services。
(2)Microsoft。Microsoft是Web Services的另一个主要倡导者。从倡导Web Services伊始,Microsoft就致力于在其.NET平台融入对WSDL、SOAP、UDDI等的支持。在.NET上可以使用Web Services的集成开发环境Visual Studio.NET。但据业内人士分析,.NET在Web Services安全性方面还不足以支持企业级应用。
(3)SUN。SUN虽然不是Web Services的两大倡导者,但其开放性和标准性的理念和Web Services的基础支持技术可谓不谋而合,因此,SUN自然成为Web Services的主流支持者之一,并且其许多技术先天就有与Web Services相匹配的特质。SUN除了在J2EE 1.4中加入了对Web Services的支持以外,还以SUN ONE作为对Web Services进行支持的技术平台,实现对“任何信息、任何时间、任何地点、任何设备”(4A)的访问。同时,SUN还推出了专门开发Web Services的工具包Web Services Developer Pack(WSDP)。
在工业界,一方面Web Services的产品化和相应的技术工具的研究和开发正“如火如荼”地进行着,已有一些领域已率先开始实践Web Services,如:
(1)著名的搜索引擎Google提供了一种将自己的搜索服务包装为具有搜索功能的Service的机制——发布了beta版的在应用程序中对Google搜索进行集成的工具包Google Web APIs。
(2)世界最大的网上零售书店Amazon.com在.NET框架上利用Web Servcies技术集成Amazon.com和Amazon.co.uk的功能,将这两个书店的内容直接提供给其他授权的合作站点,期望实现更为透明、有效的商务运作模式。
(3)由清华大学计算机系知识工程组开发的国内最早的一个基于J2EE+XML架构、具有在线实时处理能力的旅游电子商务平台罗盘网(www.luopan.com)目前已在不同程度上实现了Web Services,可实现行业内合作伙伴间的Service共享,可初步实现面向智能的Web Services。
另一方面,以“Web之父”——Tim Berners-Lee为首的学者们已经意识到,在现有的研究程度和技术水平上,Web几乎永远难以达到人们心目中的理想智能状态。现有技术的主要局限性表现在:
(1)缺乏高效、安全的发现机制来查找、绑定合适的Web Services,即现有的WSDL、UDDI、WS-Inspection如何解决Web Services自我宣传、推广以引起其他程序或机构的兴趣,并最终推广使用。
(2)缺乏对提供Web Services的主机的可靠性的度量机制。
(3)由于各大技术平台对Web Services的实现机制尚未成熟、完善,各大支撑技术标准也还处于草案阶段,因此,Web Services的跨平台性和互操作性还存在不少问题。
(4)尽管有WS-Security,Web Services的安全机制还很不够。
(5)尽管理论上Web Services是可组装的,但目前缺乏理想的组装机制。
(6)缺乏有效的事务管理机制。
如何让计算机(程序)真正理解Web中大量数据、文本中的语义信息成为Web Services发展中的关键障碍,因此,Semantic Web(语义Web)和Semantic Web Services的研究应运而生,成为Web技术研究中的新热点。 数据挖掘研究院

