WEB服务及其应用(by AMT 徐家俊)

  作者:徐家俊
2002/1/29 9:44:46
本文关键字: 理论探讨 EAI

WEB服务及其应用

by AMT 徐家俊

随着应用软件与网络的结合日益深入,人们都希望通过网络来获取自己所需要的服务和软件,WEB服务就是在这样的背景下应运而生的。本文在描述WEB服务定义的基础上,介绍了WEB服务的产生和发展背景,并针对WEB服务技术架构的不同部分,探讨其各自的优势和功能。并对WEB服务的发展前景做出了展望。

0 引言

在如今的互联网时代,每天都产生着大量的技术名词,尽管如此,WEB服务(WEB Services)仍然是其中十分耀眼的一个。如今的各大主流站点,都十分关注WEB服务。根据AMT的预测,今年底到明年初,将会掀起一股WEB服务应用高潮。但是,对于大多数人来说,WEB服务仍然是一个崭新的名词。那么,到底什么是WEB服务呢?如果认为这是一个新的系统架构或者新的编程环境的话,笔者认为是不妥当的。的确,WEB服务是一个新的概念,但它的系统架构以及实现技术却是完完全全从已有技术发展而来的。所以,它绝对不会让现有的应用推倒重来,而是现有应用的面向Internet的一个延伸。本文就将根据作者的了解和理解,谈一谈什么是WEB服务,它的产生背景和发展沿革,它的技术架构以及发展前景的展望。

1 什么是WEB服务

WEB服务的英文原名是WEB Services,因为翻译成“网络服务”会与一般的Network Services(网络服务)混淆,所以将其称之为“WEB服务”。在这里,我们沿用一个较为成熟的WEB服务的定义——“WEB服务代表着可以从WEB上存取的一个单位的业务(Business)、应用(Application)或者是系统(System)的功能”。

就笔者看来,WEB服务有两个层次的含义,首先是一种技术和标准,然后才是一种软件或者说功能。采用这种软件组件技术,可以让企业的系统易于弹性组裝,随时通过网络增减组件以调整系统功能,使得应用系统开发及维护更为容易,客戶需求亦可快速满足。另外一个方面,WEB 服务也是一种可通过网络存取的软件组件(Software Component),它使得应用程序之间可通过共同的网络标准相互连结使用。比如,我们也可通过各种平台,包括桌上型电脑、手提电脑、手机或掌上型裝置(PDA)来连结使用各种的WEB服务。也就是说,我们可以通过以上的各种设备,或是从一个应用程序(甚至从另一个WEB服务上面)通过网络去呼叫调用需要的各种功能(也就是WEB服务),以提供需要的服务,诸如是 B2C、B2B或是P2P的网上服务,而这里的网络可以是Internet、Intranet或是Extranet。 以上两个方面结合起来就是WEB服务。

从另外一个层面上来讲这个问题,我们可以说WEB服务就是使我们可以从网络上去获取软件和服务,(当然,这与下载软件是有根本区别的),而不管我们采取的是什么手段,也不必去管软件或者服务提供者位于何处。凡是具有这样的特征,都可以称为WEB服务。

2 WEB服务的产生背景和发展沿革

2.1 问题的产生

目前,电子商务的发展更加关注应用的效果,也就是说,人们更关注电子商务的应用是否能够为企业带来实实在在的效益和便利,而不管背后的技术是否足够先进,或者是否能够吸引足够多的眼球。在这一轮的电子商务发展中,技术完全是为业务服务的,任何脱离业务业需求的"新"技术则必然要被淘汰。根据大多数人的观点,当前最有价值进行实施的电子商务应用包括:供应链管理(Supply Chain Management)、企业信息门户(EIP)网上连锁商店(Storefront)知识管理(Knowledge Management)客户关系管理(CRM)分销(Distribution)与运输管理ASP(Application Service Provider)服务共七个方面的应用。问题就产生于这些系统的应用过程中。

首先,我们在实施这些应用的过程中,最大问题就在于“灵活性”。从根本上来说,这些应用都是采用信息技术的手段来管理企业各个层次的运作,而如今的企业所面临的环境是瞬息万变的,如果把企业束缚在现有的“系统”中,后果将是灾难性的。因此,面对环境或者企业自身的变化,应用系统也必须做出实时的调整。这是实施了电子商务的企业所必须解决的问题。

其次,现有系统与新上马的系统之间、企业内部系统与外部系统之间必须实现整合。随着技术和管理的发展,企业不可避免的将会逐渐拥有越来越多的系统,如何把这些系统整合起来,实现信息和数据的共享,提供运作的效率,已经成为当务之急。

在则,企业需要更便利的使用各种应用系统,而不愿意每天去关注技术的最新发展,不断与各大厂商联系,花大量的时间在企业中实施各种系统。他们需要让技术躲到背后,真正享受到协同便利。

以上三个方面的问题是业内人士、软件厂商和应用企业都希望尽快解决的。

2.2 传统的解决方案

于是,为了解决这三个问题,人们想到了各种解决方案: 让复杂系统对接、不断修改企业的应用系统等等。为了解决这些问题,他们在IT上投入了极多的资金和资源。可是,结果往往让人非常失望。

就拿系统整合来说,人们最开始是用编写代码的方式实现系统之间的对接和通信。比如,几年前,SAPERP与ORACLE的CRM之间如果想对接,就必须自己编写代码或者求助于厂商。后来,又产生了组件式软件发展技术(Component-based Development),如微软的Distributed Component Object Model (DCOM)、SUN的Remote Method Invocation (RMI)等。这类产品的背后支撑技术包括EDI(电子数据交换)、WEB EDI(基于XML),还有近年来十分热的EAI(Enterprise Application Integration), 这些技术的出现在一定程度上解决了人们的问题。但是,它们仍然不够便利,而且它们也不能为企业提供一个整体的构架,使所有的系统真正的无缝集成在一起。

2.3 WEB服务应运而生

随着网络技术的发展和成熟,WEB服务的思想诞生了。基于XML技术的WEB服务正是解决这一问题的最佳手段。WEB服务的使用将会极大的降低成本,而且使得人们感到真正的便利。

WEB 服务在网页上分散及整合应用程序架构的时候显得较有弹性,提供服务描述(service description)及服务搜寻(service discovery)等功能。最重要的是,使用SOAP(参见3.2)及XML(参见3.1)技术以达到跨作业平台、跨程序语言及任何接取设备的境界,让企业应用系统的发展能更加完整,并可运用有效的资源管理来满足客戶的需求。

通过使用WEB服务,企业能够根据自己的业务需要,自由的选择适合自己的组件,并且将他们组装在一起,满足现在和将来延伸的需求。更为可贵的是,在此过程中,技术对于企业来说躲到了背后,企业知识在网上获取自己所要求的服务而已。甚至在不久的将来,企业解决方案的实施将会和个人软件的应用一样简单。

企业在应用集成系统的时候,再也不需要和各种复杂的标准打交道,唯一的标准就是XML。用户可以在使用的过程中动态的装配应用系统,这样灵活性、便利性和整合的需求都迎刃而解了。我们可以这样设想未来的状况:企业不在需要为了使用某个电子商务应用而购买应用软件本身,它只需要在WEB上去搜寻自己的服务(通过UDDI),然后使用就可以了。也许你并不知道为你提供软件服务的是SAP还是ORALE,或者JDE。这就像我们在家里使用电力一样,你并不知道谁在发电,也不知道电从那个方向来,只知道供电部门根据你的需要供给了电力。

3 WEB服务的技术架构

如果要实现以上的设想,WEB服务的技术标准就非常重要了。我们可以用下面这个等式来说明WEB服务的架构:

XML + SOAP + WSDL + UDDI = WEB服务

下面将对它的各个组成部分的功能进行介绍,然后给出了它的体系架构。

3.1 XML:程序间沟通的媒介

XML(Extensible Makeup Language,可延伸标示语言)是 W3C (World Wide WEB Consortium)已通过审核的一个新兴标准网络语言。它是HTML发展而来的,但却比HTML更灵活、更好用。 WEB服务中就是以XML作为各种程序间沟通的标准语言。那么,我们为什么要采用XML作为WEB服务的标准语言呢?这是因为XML与传统的HTML等语言相比有着十分突出的优点,可以十分切合WEB服务的需求。从另一个层面上来说,WEB服务的发展也极大的促进了XML语言的发展。下面,我们就来谈谈XML语言的优势。

首先,XML的主要优点体现在开发灵活的WEB应用软件方面,这也是我们采用XML作为WEB服务的主要原因。

1)集成不同来源的数据。XML能够使不同来源的结构化的数据很容易的结合在一起。软件代理商可以在中间层的服务器上对从后端数据库和其他应用处来的数据进行集成。然后,数据就能被发送到客户或其他服务器做进一步的集合、处理和分发。

2)描述多种应用得到的数据。XML的扩展性和灵活性允许它描述不同种类应用软件中的数据,从描述搜集的WEB页到数据记录。同时,由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理。

3)本地计算和处理。XML格式的数据发送给客户后,客户可以用应用软件解析数据并对数据进行编辑和处理。使用者可以用不同的方法处理数据,而不仅仅是显示它。XML文档对象模式(DOM)允许用脚本或其他编程语言处理数据。数据计算不需要回到服务器就能进行。分离使用者观看数据的界面,使用简单灵活开放的格式,可以给WEB创建功能强大的应用软件,这些软件原来只能建立在高端数据库上。

4)数据的多样显示。数据发到桌面后,能够用多种方式显示。通过以简单开放扩展的方式描述结果化的数据,XML补充了HTML,被广泛的用来描述使用者界面。HTML描述数据的外观,而XML描述数据本身。由于数据显示与内容分开,XML定义的数据允许指定不同的显示方式,使数据更合理地表现出来。本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。CSS和XSL为数据的显示提供了公布的机制。

5)粒状的更新。通过XML,数据可以粒状的更新。每当一部分数据变化后,不需要重发整个结构化的数据。变化的元素必须从服务器发送给客户,变化的数据不需要刷新整个使用者的界面就能够显示出来。目前,只要一条数据变化了,整一页都必须重建。这严重限制了服务器的升级性能。XML也允许加进其他数据,比如预测的温度。加入的信息能够流入存在的页面,不需要浏览器产生一个新的页面。

其次,XML的优势还体现在发布数据方面。1)升级性。由于XML彻底把标识的概念同显示分开,处理者能够在结构化的数据中嵌套程序化的描述以表明如何显示数据。这是令人难以相信的强大的机制,使得客户计算机同使用者间的交互作用尽可能的减少了,同时减少了服务器的数据交换量和浏览器的响应时间。另外,XML使个人的数据只能通过更新的布告发生变化,减少了服务器的工作量,大大增强了服务器的升级性能。2)压缩性XML压缩性能很好,因为用于描述数据结构的标签可以重复使用。XML数据是否要压缩要根据应用来定,还取决于服务器与客户间数据的传递量。XML能够使用HTTP1.1中的压缩标准。

第三,XML还拥有开放的标准。XML基于的标准是为WEB进行过优化的。微软和其他一些公司以及W3C中的工作组正致力于确保XML的互用性,以及为开发人员、处理人员和不同系统和浏览器的使用者提供支持,并进一步发展XML的标准。

另外,XML还具有强大的搜索功能,发展前景强大,市场应用程度高等等。XML在WEB服务中的作用可以通过下面的图例来显示。

3.2 SOAP: WEB Services的传递工具

SOAP(Simple Object Access Protocol)是一种基于延伸标示語言(XML)的协定,用来在分散式电脑环境中共享资料,由微软公司、Develop Mentor与UserLand Software研发,后来IBM、Lotus、惠普、Sun等公司也表示支持,使SOAP演变成网络服务的主要技术标准。現有的SOAP工具支援若干程式語言,包括Visual Basic、Java、Python和Perl。

SOAP是传输架构的最底层。系统需要通过共同的语言来沟通,特別是应用程序间的沟通需要有共通的规则,以作为不同资料形态之间的表示方法(例如数字或阵列);另外,系统之间还需要通过共同的指令来沟通(处理资料的方式)。必要的話,应用程序也需要延伸本身语言。而架构在XML之上的SOAP即代表了一套资料与指令如何呈现与延伸的共用规则。SOAP与XML语言的关系可以用下图表示。

从软件技术发展来说,由主机时代的集中式运算结构,逐渐发展成分散式运算结构,最后在网络通訊与信息交换之后,通过HTTP标准通讯协定,加上XML的內容标准,于是有了SOAP这样可供跨平台作远端程序呼叫的革命性协定。而Microsoft在.Net所提供的WEB 服务更封裝了SOAP底层的复杂机制,提供了高阶应用物件及工具来快速开发,并通过同样的组件框架,使得原有COM物件都可以快速被转换并提供到网络上成为WEB 服务。

3.3 WSDL:描述WEB服务的形态

WEB服务中,WSDL扮演了类似接口说明语言IDL(Interface Definition Language)的说明功能,让其它人或者程序知道企业提供的服务以供呼叫。

WSDL(WEB Services Description Language)是资料描述的方式。一旦应用程序有了共同的语法以呈现资料形态与命令,它们需要有一个共同的方式来描述资料与命令。但对于应用程序而言,只认得数字是不够的,甚至于,如果有两个数字的话,它还要能够会运算。而WSDL以XML语法让开发人员及开发工具得以展现网站服务的能力。

3.4 UDDI:搜寻各类的WEB服务

UDDI(Universal Description, Discovery, and Integration)是发现WEB 服务的工具,有了资料的描述与传递之后,最后一项需要设定规范的,是如何确定服务描述的所在位置——个人或工具应该设定在那里,才能发现服务能力。UDDI就是可以让个人或程序开发工具自动发现服务的描述。

只要到UDDI的资料库注册,便可让其它程序作动态服务搜寻、动态询詢问呼叫。使用者可在任何时间、地點,通过任何装置向“WEB服务整合商”动态搜寻所需的WEB服务,最后由“WEB服务供应商”通过UDDI提供使用者所需的WEB服务。

WDSL及UDDI则是由Microsoft、IBM及Ariba等共同推出的规格,目前W3C正在进行审核,另外在服务的品质(QoS)与服务流程(Service Flows)管理方面,则还沒有明确的规范。

3.5 各部分功能的整合

我们来对WEB服务中各个组成部分的功能做一个总结。首先,我们用XML来作为描述结构化资料的语言,在各个应用组件中都把它作为标准语言。然后,我们用SOAP来跨越防火墙,作为各应用组件接口之间通讯的协议和指令。而WDSL则是命令的描述语言,用它来描述服务的细节。UDDI则是类似于电话号码簿一样的东西,我们用它来作为搜寻WEB服务的工具。

4 发展前景

WEB 服务是新一代软件与服务整合的新秀,它的出发点就在于“一切都是服务”(everything is service),所有事物都可以动态发掘以及协调合作,在WEB Services架构中,每个组件都被视为服务,可以包裝行为,并通过网络来跟其它组件协同合作,WEB Services的应用比传统的组件技术(如DCOM、CORBA等)更为广泛,目前企业系统整合的趋势,是从以前紧密连结(tight couple)走向较为松弛(loosly couple)、动态连结的组件,未来应用系统将会是架构在组合而成的服务之上,在这种原则下所构建的系统会有较大的优势,新的服务可以被设计出来,并且动态的被搜寻与连结使用,这也是传统的企业应用系统整合模式所不能比拟的。

全球权威IT行业研究评论机构Gartner Group对未来5年的WEB服务的发展状况做了预测:

· 2002年,商业WEB服务将大量出现,大量的面向消费者的B2C WEB服务将被使用。

· 2003年,UDDI注册中心应WEB服务的发展,变得越来也重要,其中的商业数据也越来越丰富。私有的UDDI注册中心将被投入使用以支持内部的服务信息的交换。而政府的WEB服务(e-Government)应用也将会不断出现。

· 2004年,各类企业将会普遍接受基于WEB服务的商务应用模式,而服务集中的计算模式将会进入青年期。私有的UDDI注册中心仍然在各类应用中处与优势地位。新的收入模式和商业渠道将到处可见。40%的金融财务服务事务将使用WEB服务模式。而35%的在线政府服务将以WEB服务的形式提供。

· 2005年,公共的UDDI注册中心作为公共商务信息的交换机制而获得大量的使用。动态服务同样将大量投入使用。

最近,各大技术提供商都陆续地推出WEB服务的构建工具:Microsoft的Visual Studio .NET,IBM的WEB Service Toolkit,SUN的Sun ONE等等。最近,又从SAP传来消息,它将通过网络WEB Service服务提供该公司的软件模块,消费者可依据个人需要,选择采用部分模块,而不必买下整套软件, SAP将其定名为MySAP Technology。

基于WEB Service的公共技术标准SOAP/WSDL/UDDI/WSFL或是已经成为事实行业标准,或是正在制订的进程中,各大技术提供商和传统商业企业都投入到了标准的制定和应用的架构中去。作为WEB服务的体系架构的领导者IBM和Microsoft也开始在全球推广WEB服务技术。我们有理由相信WEB服务将成为将来动态商务WEB的主流技术。

责编:徐家俊
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918