Web Services概述(一)
JARON.CN 2003年10月31日 阅读:921次
JARON.CN 2003年10月31日 阅读:921次
Web Service微软提出的基于互联网的开发模型,一经提出即收到业界的广泛推从。本文将总结了一些Web Services相关的一些重要概念,解释了什么是Web Service,详细说明了Web Service的体系结构,如何运用Web Service,如果你是初次接触Web Service,那么你一定会有不少的收获。
体系结构描述
概念
定义一:
Web Services是自包含的、模块化的应用程序,它可以在网络(通常为Web)中被描述、发布、查找以及调用。
定义二:
Web Services是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
定义三:
所谓Web服务,它是指由企业发布的完成其特别商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项应用服务。(UDDI规范2.0)
体系结构
Web 服务的一个主要思想,就是未来的应用将由一组应用了网络的服务组合而成。只要两个等同的服务使用统一标准和中性的方法在网络上宣传自己,那么从理论上说,一个应用程序就可以根据价格或者性能的标准,从两个彼此竞争的服务之中选出一个。除此之外,一些服务允许在机器之间复制,因而可以通过把有用的服务复制到本地储存库,来提高允许运行在特定的计算机(群)上的应用程序的性能。
Web Services体系结构是面向对象分析与设计(OOAD)的一种合理发展(logical evolution),同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理发展(logical evolution of components geared towards the architecture, design, implementation, and deployment of e-business solutions)。这两种方式在复杂的大型系统中经受住了考验。和面向对象系统一样,封装、消息传递、动态绑定、服务描述和查询也是Web Services中的基本概念,而且,Web Services另外一个基本概念就是:所有东西都是服务,这些服务发布一个API供网络中的其他服务使用,并且封装了实现细节。
下面我们就来看一下Web Services的体系结构--面向服务的体系结构(SOA)。
从图1可以看出,SOA结构中共有三种角色:
① Service provider:发布自己的服务,并且对使用自身服务的请求进行响应
② Service broker:注册已经发布的Service provider,对其进行分类,并提供搜索服务
③ Service requester:利用Service broker查找所需的服务,然后使用该服务
SOA体系结构中的组件必须具有上述一种或多种角色。
在这些角色之间使用了三种操作:
① publish操作:使Service provider可以向Service broker注册自己的功能及访问接口
② find操作:使Service requester可以通过Service broker查找特定种类的服务
③ bind操作:使Service requester能够真正使用Service provider
为支持结构中的三种操作(publish、find和bind),SOA需要对服务进行一定的描述,这种服务描述(Service Description)应具有下面几个重要特点:首先,它要声明Service provider的语义特征。Service broker使用语义特征将Service provider进行分类,以帮助具体服务的查找。Service requester根据语义特征来匹配那些满足要求的Service provider。(因此,语义特征中重要的一点就是对Service provider的分类。)其次,服务描述应该声明接口特征,以访问特定的服务。最后,服务描述还应声明各种非功能特征,如安全要求,事务要求,使用Service provider的费用等等。接口特征和非功能特征也可以用来帮助Service requester对Service provider的查找。
注意,服务描述和服务实现是分离的,这使得Service requester可以在Service provider的一个具体实现(implementation)正处于开发阶段、部署阶段或完成(execution)阶段时,对其(具体实现)进行绑定。
另外,SOA中的组件相互之间必须能够进行交互,才能进行上述三种操作。所以Web Services体系结构的另一个基本原则就是使用标准的技术,包括服务描述、通讯协议以及数据格式等。这样一来,开发者就可以开发出平台独立、编程语言独立的Web Services,从而能够充分利用现有的软硬件资源和人力资源。
最后,SOA体系结构没有对Web Service的粒度进行限制,因此一个Web Service即可以是一个组件(小粒度),该组件必须和其他组件结合才能进行完整的业务处理;Web Service也可以是一个应用程序(大粒度)。
体系结构描述
概念
定义一:
Web Services是自包含的、模块化的应用程序,它可以在网络(通常为Web)中被描述、发布、查找以及调用。
定义二:
Web Services是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。
定义三:
所谓Web服务,它是指由企业发布的完成其特别商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项应用服务。(UDDI规范2.0)
体系结构
Web 服务的一个主要思想,就是未来的应用将由一组应用了网络的服务组合而成。只要两个等同的服务使用统一标准和中性的方法在网络上宣传自己,那么从理论上说,一个应用程序就可以根据价格或者性能的标准,从两个彼此竞争的服务之中选出一个。除此之外,一些服务允许在机器之间复制,因而可以通过把有用的服务复制到本地储存库,来提高允许运行在特定的计算机(群)上的应用程序的性能。
Web Services体系结构是面向对象分析与设计(OOAD)的一种合理发展(logical evolution),同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理发展(logical evolution of components geared towards the architecture, design, implementation, and deployment of e-business solutions)。这两种方式在复杂的大型系统中经受住了考验。和面向对象系统一样,封装、消息传递、动态绑定、服务描述和查询也是Web Services中的基本概念,而且,Web Services另外一个基本概念就是:所有东西都是服务,这些服务发布一个API供网络中的其他服务使用,并且封装了实现细节。
下面我们就来看一下Web Services的体系结构--面向服务的体系结构(SOA)。
图1:面向服务的体系结构(SOA) |
从图1可以看出,SOA结构中共有三种角色:
① Service provider:发布自己的服务,并且对使用自身服务的请求进行响应
② Service broker:注册已经发布的Service provider,对其进行分类,并提供搜索服务
③ Service requester:利用Service broker查找所需的服务,然后使用该服务
SOA体系结构中的组件必须具有上述一种或多种角色。
在这些角色之间使用了三种操作:
① publish操作:使Service provider可以向Service broker注册自己的功能及访问接口
② find操作:使Service requester可以通过Service broker查找特定种类的服务
③ bind操作:使Service requester能够真正使用Service provider
为支持结构中的三种操作(publish、find和bind),SOA需要对服务进行一定的描述,这种服务描述(Service Description)应具有下面几个重要特点:首先,它要声明Service provider的语义特征。Service broker使用语义特征将Service provider进行分类,以帮助具体服务的查找。Service requester根据语义特征来匹配那些满足要求的Service provider。(因此,语义特征中重要的一点就是对Service provider的分类。)其次,服务描述应该声明接口特征,以访问特定的服务。最后,服务描述还应声明各种非功能特征,如安全要求,事务要求,使用Service provider的费用等等。接口特征和非功能特征也可以用来帮助Service requester对Service provider的查找。
注意,服务描述和服务实现是分离的,这使得Service requester可以在Service provider的一个具体实现(implementation)正处于开发阶段、部署阶段或完成(execution)阶段时,对其(具体实现)进行绑定。
另外,SOA中的组件相互之间必须能够进行交互,才能进行上述三种操作。所以Web Services体系结构的另一个基本原则就是使用标准的技术,包括服务描述、通讯协议以及数据格式等。这样一来,开发者就可以开发出平台独立、编程语言独立的Web Services,从而能够充分利用现有的软硬件资源和人力资源。
最后,SOA体系结构没有对Web Service的粒度进行限制,因此一个Web Service即可以是一个组件(小粒度),该组件必须和其他组件结合才能进行完整的业务处理;Web Service也可以是一个应用程序(大粒度)。