【IT168 技术文档】什么是 Web 服务?
Web 是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。
软件业最终会接受这样的事实:跨多个操作系统、编程语言和硬件平台集成软件应用程序不可能由任何一种专门的环境来解决。传统上,这个问题一直是一个紧耦合问题,调用远程网络的应用程序通过自己发出的函数调用和请求的参数与远程网络紧密地联系在一起。在 Web 服务出现之前,在大多数系统上,采用的是固定的接口,但对于环境或需要的改变,这缺乏灵活性或适用性。
Web 服务所使用的 XML 可以用真正与平台无关的方式来描述任何(所有)数据,以跨系统交换数据,因此转向了松耦合应用程序。而且,Web 服务可以在较抽象的层面上工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以,从技术层面上讲,Web 服务可以更方便地处理数据,并且允许软件更自由地进行通信。
从更高的概念层面上讲,我们可以将 Web 服务视为一些工作单元,每个单元处理特定的功能任务。再往上一步,可以将这些任务组合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人员去考虑一些应用程序,这些应用程序可以在 Web 服务应用程序工作流中一起处理业务问题。因此,一旦由技术人员设计并构建好 Web 服务之后,业务流程架构设计师就可以聚集这些 Web 服务来解决业务层面上的问题。这里借用汽车引擎来作类比,业务流程架构设计师考虑将整个汽车引擎与汽车框架、车身、变速器和其他系统组合在一起,而不是研究每个引擎内的各个部件。而且,动态的平台意味着引擎可以与其他汽车制造商的变速器或部件一起工作。
最后一个方面是,Web 服务可以有助于在组织内的业务人员和技术人员之间架起一座桥梁。Web 服务使业务人员能更容易理解一些技术上的操作。业务人员可以描述出一些事件和活动,然后技术人员可以将这些事件和活动与相应的服务相关联。
有了通用定义的接口和设计良好的任务,重用这些任务就变得更容易了,因而重用这些任务所代表的应用程序也就变得容易了。应用程序软件的可重用性意味着在软件上的投资有了更好的回报,因为可以从同一资源产生更多收益。可重用性使业务人员可以考虑以一种新的方式来使用现有的应用程序,或者以一种新的方式将应用程序提供给合作伙伴,因此可能增加合作伙伴间的业务交易。
所以,Web 服务试图解决的主要问题是数据和应用程序集成的问题,是将技术性的功能转换成面向业务的计算任务的问题。这两个方面使业务人员可以就流程或应用程序层面与他们的合作伙伴进行交流,同时为适应新形势或按照需要与不同合作伙伴进行合作留有动态的余地。
获得更多有关 Web 服务的信息:
1.要了解 Web 服务,您应该首先知道可扩展标记语言(Extensible Markup Languageservices,XML)是如何工作的。XML and how it will change the Web 和 XML 入门是两篇很好的文章,您可以从这两篇文章开始了解 XML。虽然 Web 服务技术本身是语言无关的,但是在 Java 技术中还可以获得许多工具和软件实现。
2.Web 服务和 WSDK V5.1 介绍教程很好地介绍了 Web 服务的概念和技术结构。
3.如果您是一位想要了解 Web 服务的软件架构设计师或业务人员,An Executive's Guide to Web services提供了许多关于 Web 服务的商业价值方面的有用想法。
我可以用 Web 服务做什么?
虽然 Web 服务支持所有这些动态将多个服务组合到应用程序中,但您仍然必须首先构建这些服务。编程语言和计算机科学在不断发展。我们在几十年前就有了函数这个想法,通过给它提供一些参数,由它根据这些参数执行某个操作,然后根据它的计算返回值。最终,这个首先提出来的概念演变成了对象,每个对象不仅有一些它可以执行的函数,而且还有自己的专用数据变量,而不是依赖于以前所采用的使开发应用程序更为复杂的外部系统范围内的数据变量。当应用程序进入了网络时代,对于对象,定义通用接口的概念变得更为重要,即使位于其他平台上的对象是用另外的编程语言编写的并且运行在其他操作系统上,也可以使这些对象进行通信。
在最近的步骤中,Web 服务转向了基于 XML 的接口和通信这一概念,只要将 Web 服务设计成符合相应的接口,最终可以将任何一种应用程序与另一种应用程序组合在一起,并可以随时间的流逝自由地更改和发展应用程序。XML 的通用性使得 Web 服务不同于前一代组件技术。它允许语法结构(句法)与语法意义(语义)的分离,每个服务处理和理解它的方式与它所存在的环境的分离。因此,现在可以将对象定义为服务,它可以与其他采用 XML 定义的语法的服务进行通信,从而每个服务又可以根据其本地实现和环境来转换和分析消息。因此,网络应用程序实际上可以由各种构造和设计的实体组成,只要这些实体符合它们面向服务的体系结构就可以了。
因此,如果掌握了这一能力,Web 服务将使您能够:
1.让任何平台上的用任何语言编写的服务进行交互。
2.将应用程序功能概念化成任务,从而形成面向任务的开发和工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用。
3.允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生变更时,服务应用程序之间的交互可能不会因此而中断。
4.使现有的应用程序能适应变化中的业务条件和客户需要。
向现有或遗留的软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下。
5.引入其他一些与原有功能无关的管理或操作管理功能,比如可靠性、可计帐性和安全性等等,从而在业务计算环境中增加了其通用性和实用性。
获得更多有关 Web 服务的信息:
1.在 Web 服务世界中的业务流程 解释了如何用 Web 表示工作流和业务流程。
2.Web 服务世界的安全性 探究了 Web 服务中安全模式是如何发展演化的。
3.网格与 Web 服务的结合 讨论了网格计算如何在一个内聚的分布式面向服务的体系结构中使用 Web 服务。
4.An e-mail user interface to Web services 描述了移动设备如何通过简单的协议(比如 email)与企业 Web 服务进行交互。
5.学习 Web 服务如何在 J2EE 模型中工作(请参见 用 Web 服务和 J2EE 集成企业应用程序)和了解不同的通信机制(请参见 为 EAI 选择 JCA、JMS 或 Web 服务)。
构成 Web 服务的技术是什么?
Web 服务采用一系列的相关协议来描述、传递服务和与服务交互。根据其通常的功能和使用,可以将这一系列协议进一步再划分为组。第一组处理消息传递、接口描述、寻址和提供的问题。最有名的是消息传递协议,称为简单对象访问协议(Simple Object Access Protocol,SOAP)。此协议对消息进行了编码,这样就可以通过传输协议(如 HTTP、IIOP、SMTP 或其他协议)在网络上传递它们。
Web 服务描述语言(Web Services Description Language,WSDL)表示为一系列 XML 语句,这些语句组成了每个服务的接口的定义。另一个正在制订的服务是 Web 服务寻址,它定义了如何在分布式体系结构中唯一地进行 Web 服务寻址和标识 Web 服务。另一个流行的规范是 Web 服务调用框架(Web Services Invocation Framework),在这种框架中,您可以定义任何类型的组件的 WSDL 接口,即使它们没有使用相同的消息传递协议。
下一组协议和规范定义了服务如何公开它们自己以及如何在网络上相互发现。对于要相互查找的服务,统一描述、发现和集成(Universal Description, Discovery and Integration,UDDI)为查找和访问服务定义了注册中心和相关的协议。Web 服务检查语言(Web Services Inspection Language)是 UDDI 在不使用注册中心的情况下采用的一种可选的机制。
用于 Web 服务的安全性协议是从 Web 服务安全性(WS-Security)规范开始的,该规范为安全通信定义了基于令牌的体系结构。以此为基础,有六个主要的组成规范:
1.Web 服务策略(WS-Policy)和相关的规范,定义了关于服务交互方式的策略规则。
2.Web 服务信任(WS-Trust),定义了安全交换的信任模型。
3.Web 服务隐私(WS-Privacy),定义了如何维护信息的隐私。
4.Web 服务安全会话(WS-Secure Conversation),定义了如何使用在Web 服务策略(WS-Policy)、Web 服务信任(WS-Trust)和 Web 服务隐私(WS-Privacy)中定义的规则,来在用于交换数据的服务之间建立安全会话。
5.Web 服务联盟(WS-Federation),定义了分布式标识的规则以及如何对其进行管理。
6.Web 服务授权(WS-Authorization),定义了如何处理对访问和交换数据的授权。
在安全性模型之外的是特定于应用程序的规范,其中包括 Web 服务的业务流程执行语言(Business Process Execution Language for Web Services,BPEL4WS),它定义了一起进行分布式事务处理的工作流操作、Web 服务事务(WS-Transaction)、Web 服务协调(WS-Coordination)。
SOA-Web services 新手入门
0
相关文章