了解一些基本概念,打好基础
那么 Web 服务到底是什么?
Web 服务是使应用程序可以用与平台无关和与编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组操作,可以在网络上通过标准化的 XML 消息传递来访问这组操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组用这种方式相互作用的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA)中定义了特殊的 Web 服务应用程序。
为什么 Web 服务很重要?
软件业最终会接受这样的事实:跨多个操作系统、编程语言和硬件平台集成软件应用程序不可能由任何一个专门的环境来解决。传统上,这个问题一直是一个紧耦合问题,调用远程网络的应用程序通过自己发出的函数调用和请求的参数与远程网络紧密地联系在一起。在 Web 服务出现之前,在大多数系统上,采用固定接口,但对于环境或需要的改变,这缺乏灵活性或适用性。
Web 服务所使用的 XML 可以用真正与平台无关的方式来描述任何(所有)数据,以跨系统交换数据,因此转向了松耦合应用程序。而且,Web 服务可以在较抽象的层面上工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以,从技术层面上讲,Web 服务可以更方便地处理数据,允许软件更自由地进行通信。
从更高的概念层面讲,我们可以将 Web 服务视为一些工作单元,每个单元处理特定的功能任务。再往上一步,可以将这些任务组合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人员去考虑一些应用程序,这些应用程序可以在 Web 服务应用程序工作流中一起处理业务问题。因此,一旦由技术人员设计并构建好 Web 服务之后,业务流程架构设计师可以聚集这些 Web 服务来解决业务层面上的问题。这里借用汽车引擎来作类比,业务流程架构设计师考虑将整个汽车引擎与汽车框架、车身、变速器和其它系统组合在一起,而不是研究每个引擎内的各个部件。而且,动态的平台意味着引擎可以与其它汽车制造商的变速器或部件一起工作。
最后一个方面是,Web 服务可以有助于在组织内的商业人员和技术人员之间架起一座桥梁。Web 服务使商业人员能更容易理解一些技术上的操作。商业人员可以描述出一些事件和活动,然后技术人员可以将这些事件和活动与相应的服务相关联。
有了通用定义的接口和设计良好的任务,还使重用这些任务变得更容易,从而使重用这些任务所代表的应用程序也变得容易。应用程序软件的重用性意味着在软件上的投资有了更好的回报,因为可以从同一资源产生更多收益。重用性使商业人员可以考虑以一种新的方式使用现有的应用程序或者以一种新的方式将应用程序提供给合作伙伴,因此可能增加合作伙伴间的业务交易。
所以,Web 服务试图解决的主要问题是数据和应用程序集成的问题,是将技术性的功能转换成面向业务的计算任务的问题。这两个方面使商业人员可以就流程或应用程序层面与他们的合作伙伴进行交流,同时为适应新形势或按照需要与不同合作伙伴进行合作留有动态的余地。
可以用 Web 服务做什么?
虽然 Web 服务支持前面所描述的所有这些动态特性,但您仍然必须首先构建这些服务。编程语言和计算机科学在不断发展。我们在几十年前就有了函数这个想法,通过给它提供一些参数,由它根据这些参数执行某个操作,然后根据它的计算返回值。最终,这个首先提出来的概念演变成了对象,每个对象不仅有一些它可以执行的函数,而且还有自己的专用数据变量,而不是依靠以前所采用的使开发应用程序更为复杂的外部系统范围内的数据变量。当应用程序进入了网络时代,对于对象,定义通用接口的概念变得更为重要,即使位于其它平台上的对象是用另外的编程语言编写的并且运行在其它操作系统上,也可以使这些对象进行通信。在最近的步骤中,Web 服务转向了基于 XML 的接口和通信这一概念,只要将 Web 服务设计成符合相应的接口,最终可以将任何一种应用程序与另一种应用程序组合在一起,并可以随时间的流逝自由地更改和发展应用程序。
因此,掌握了这一能力,Web 服务使您能够:
让任何平台上的用任何语言编写的服务进行交互。
将应用程序功能概念化成任务,从而形成面向任务的开发和工作流。
允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生变更时,服务应用程序之间的交互作用可能不会因此而中断。
使现有的应用程序能适应变化中的业务条件和客户需要。
向现有或原有的软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下。
引入其它一些与原有功能无关的管理或操作管理功能,譬如可靠性、可计帐性和安全性等等,从而在业务计算环境中增加了其通用性和实用性。
--
FROM 202.192.157.41