什么是Web Services

来源:互联网 发布:我是皇坐骑进阶数据 编辑:程序博客网 时间:2024/04/28 13:47

Web 是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。

软件业最终会接受这样的事实:跨多个操作系统、编程语言和硬件平台集成软件应用程序不可能由任何一种专门的环境来解决。传统上,这个问题一直是一个紧耦合问题,调用远程网络的应用程序通过自己发出的函数调用和请求的参数与远程网络紧密地联系在一起。在 Web 服务出现之前,在大多数系统上,采用的是固定的接口,但对于环境或需要的改变,这缺乏灵活性或适用性。

Web 服务所使用的 XML 可以用真正与平台无关的方式来描述任何(所有)数据,以跨系统交换数据,因此转向了松耦合应用程序。而且,Web 服务可以在较抽象的层面上工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以,从技术层面上讲,Web 服务可以更方便地处理数据,并且允许软件更自由地进行通信。

从更高的概念层面上讲,我们可以将 Web 服务视为一些工作单元,每个单元处理特定的功能任务。再往上一步,可以将这些任务组合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人员去考虑一些应用程序,这些应用程序可以在 Web 服务应用程序工作流中一起处理业务问题。因此,一旦由技术人员设计并构建好 Web 服务之后,业务流程架构设计师就可以聚集这些 Web 服务来解决业务层面上的问题。这里借用汽车引擎来作类比,业务流程架构设计师考虑将整个汽车引擎与汽车框架、车身、变速器和其他系统组合在一起,而不是研究每个引擎内的各个部件。而且,动态的平台意味着引擎可以与其他汽车制造商的变速器或部件一起工作。

最后一个方面是,Web 服务可以有助于在组织内的业务人员和技术人员之间架起一座桥梁。Web 服务使业务人员能更容易理解一些技术上的操作。业务人员可以描述出一些事件和活动,然后技术人员可以将这些事件和活动与相应的服务相关联。

有了通用定义的接口和设计良好的任务,重用这些任务就变得更容易了,因而重用这些任务所代表的应用程序也就变得容易了。应用程序软件的可重用性意味着在软件上的投资有了更好的回报,因为可以从同一资源产生更多收益。可重用性使业务人员可以考虑以一种新的方式来使用现有的应用程序,或者以一种新的方式将应用程序提供给合作伙伴,因此可能增加合作伙伴间的业务交易。

所以,Web 服务试图解决的主要问题是数据和应用程序集成的问题,是将技术性的功能转换成面向业务的计算任务的问题。这两个方面使业务人员可以就流程或应用程序层面与他们的合作伙伴进行交流,同时为适应新形势或按照需要与不同合作伙伴进行合作留有动态的余地。

无论是微软.NET还是SunONE都是以Web服务(Web Services)为核心的,此外,各家公司也都纷纷把Web服务作为重点。Web服务到底是什么?看看各家公司的说法。

微软:

Web服务是.NET的核心
微软为Web服务下的定义是通过标准的Web协议可编程访问的Web组件。“软件就是服务”,这已经是软件发展的一个潮流了。未来的软件厂商就象现在的电信公司一样,用户可以按照时间来租用软件公司的服务。“Web服务”(Web Services)可以说是整个.NET计划的核心,简单的说,Web服务就是一种远程访问的标准。它的优点首先是跨平台,HTTP和SOAP等已经是互联网上通用的协议;其次是可以解决防火墙的问题,如果使用DCOM或CORBA来访问Web组建,将会被挡在防火墙外面,而使用SOAP则不会有防火墙的问题。要发展Web 服务需要更多的软件厂商来开发Web服务,让基于Web服务的软件服务多起来。

这一切,是通过将紧密耦合的、高效的n层计算技术与面向消息的、松散耦合的Web概念相结合来实现的。我们将这种计算风格称为Web服务,它的出现标志着人类已经迈入应用程序开发技术的新纪元。Web服务是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。可将Web服务视作Web上的组件编程。从理论上讲,开发人员可通过调用Web应用编程接口(API)(就像调用本地服务一样),将Web服务集成到应用程序中,不同的是Web API调用可通过互联网发送给位于远程系统中的某一服务。

Sun:Web服务是互联网

架构中可置换的标准零部件
Sun公司董事长、首席执行官Scott McNealy在Sun ONE发布会上说,“智能化Web服务对信息时代有着重大的意义,它的作用就象那些可置换的标准零部件在工业时代所起到的关键作用一样。”

Web服务适用于任何类型的Web环境,无论是在互联网、Intranet还是在Extranet,重点是在企业对消费者、企业对企业之间的通信。Web服务消费者可以是通过台式或是无线接入服务的个人,也可以是应用程序,还可以是另一个Web服务。Web服务应该具有以下的一些特点:Web服务可以通过Web接入进行访问;Web服务提供一个XML接口;Web服务使XML信息,通过标准Web协议实现通信。Web服务支持系统间的松散耦合连接。

Sun公司在谈到Web服务的时候,在前面加上了智能化三个字。它强调了Web服务能够分析具体的用户信息,并能够与其它服务共享用户信息。它能够根据“谁”、“什么”、“何时”、“何地”和“为什么”等因素,生成动态符合用户需求的结果。

为了能够让Web服务具备智能化,它必须能够识别出接受服务的消费者的身份、与消费者相关的安全方针、与消费者相关的服务策略以及消费者此次服务进行时所用的接入设备,同时智能化Web服务还应该知道与消费者享受此次服务有关的以往历史记录。

在SunONE智能Web服务战略中,XML和Java技术是这种松散耦合的可互操作性的关键。XML提供了标准的、与平台无关的数据结构,以表示语境信息,而Java技术则通过了一个与平台无关的编程界面标准集,来访问和利用这些语境信息。不但如此,Sun 正在参与和领导开放智能Web服务的技术开发定义工作,包括Java技术、XML、ebXML、SOAP、UDDI以及更多其他的东西。 

IBM:Web服务是电子商务应用的基础设施

IBM认为:Web服务使交流和相互操作更有效,减少编码过程和人为干扰。IBM正在发布的动态电子商务策略是现电子商务策略的一个延伸。过去两年中,IBM参与了Web服务标准的开发,而且已经在好几个产品中宣布了对Web服务标准的支持。与竞争对手不同的是,IBM对Web服务仅仅提供基础设施,使企业能够适应不断变化的环境。

IBM在Web服务领域投资了几十亿美元,能有效地将两大竞争对手的产品XML(微软)和Java (Sun)结合起来。当用户的Web服务同时需要二者时(Java用于应用程序的开发;XML用于信息传播),IBM就可以提供独一无二的解决方案,采用真正开放式的执行标准,而不是专有的标准。多年来,IBM在硬件和软件方面的技术能力使其能为不同规模的公司解决棘手问题,坚决支持非专有技术的解决方案,从而加强了多平台的兼容性,这在当今电子商务市场上是非常必要的。IBM的动态电子商务将保持在标准方面合作,实施竞争的策略,Web服务只完成了一半,另一半是全功能基础架构软件,这种软件使Web服务可用来进行智能交易,工作流程和业务进程管理的一部分。

BEA:充分发挥分布式业务的潜力

Web服务可以被描述为协议、协定和网络设施,能通过互联网将业务功能公开给授权方。简言之,Web服务是具体的业务流程,它能够:公开和描述自己;Web服务可以定义自己的功能和属性,以便其它应用能够了解它,并容易地向其它应用提供这种功能;其它服务能够在Web上找到它的位置,可以被调用,返回响应。

任何组件或应用都可以作为Web服务,以便被其它组件或应用使用。同样,BEA WebLogic Server上的任何应用都可以从Web上的任意位置查找和请求Web服务,即使Web服务位于另一个平台也能找到。多个Web服务可集中成一个应用,可以是简单的Web服务(如查看股票价格),也可以是基于事务处理的复杂供应链集成和管理(如卡车负载优化和路由)。

BEA将Web服务分为两类:简单Web服务和复杂Web服务。简单Web服务提供基本的“请求/响应”功能,本质上不属于事务处理型服务,安全性不高。复杂Web服务将改变行业开展业务的方式,但它将为贸易合作伙伴通过互联网协作提供一个框架。BEA同时提供简单Web服务和复杂Web服务,并把它们作为BEA WebLogic E-Business Platform的一部分。另外,BEA还与制定标准的机构密切合作,指导相关Web服务标准的开发。 

原创粉丝点击