Web服务准备:理解和使用Web服务托管技术
Web服务准备:理解和使用Web服务托管技术
Mike Polan(polan@ca.ibm.com)
WebSphere 托管体系架构设计师,IBM
Electronic Commerce 部门
2002 年 1 月
准备 Web 服务是在企业间实施按使用付费的 Web 服务的关键所在。无论是在您公司内部还是在业务合作伙伴之间,在使用期间控制
Web 服务的行为的是服务认证、登记、评测、计费以及管理操作的复杂混合体。这篇论文研究了“Web 服务托管技术”(Web Services Hosting
Technology,WHST)包,该包通过 alphaWorks
发布,用来处理这项主要任务。
介绍
Web
服务体系架构利用因特网普遍深入的特性简化了分布式应用的创建。现在,企业组织可以有廉价、开放的渠道通到他们的客户和合作伙伴。这使企业实体间能够创建和集成自动化过程,也能够创建托管的服务(可作为分布式业务流程的部分环节)。
例如,一个企业可能要实现一个采购系统。除跟踪定单和管理内部审核所需的工作流程之外,通过外部的供应商,该系统还可以自动地发现服务、招标以及下定单。它可以发现服务、为定单安排筹集资金和装运工作以及跟踪定单情况。通过利用 Web 服务,采购系统仍然在管理这个流程的企业组织的控制范围内,还可以将完成此流程所需的服务委托给外部的企业组织。
虽然实现这个目标还有大量工作要做,但 Web 服务托管这种基础架构已日见端倪。因特网提供了连通性;Web 服务体系架构提供了交换数据的机制。标准组织将继续改进服务接口规范,从而进一步减少集成要做的工作。
服务提供者或发布供内部或外部使用的 Web 服务的企业需要具备管理功能,从而准备和控制这些服务。Dan Gisolfi 在其 Web 服务体系架构专栏(请参阅参考资料)中描述了这些要求,这些要求是虚构的“Trumpet”公司的 IT 部门所确定的。一个 alphaWorks 包,“Web 服务托管技术”(WSHT V1.0)说明了如何能部分地满足 Trumpet 的 IT 部门所涉及的要求。这篇论文讨论了在那种环境中使用 WSHT,以及其余的要求如何在将来得到满足。
托管方案
Web 服务准备是以 WSHT 为中心的,主要领域有下面这些:
允许将 Web 服务发布到由预订系统引用的目录的工具。
Web
服务预订和准备系统。
与合同(和预订相关联)有关的 Web
服务的评测和计费。
用于预订、准备、评测和计费组件的管理系统。
我们将从研究以下两个主要的方案开始讨论:
构建且运行于公司内部网中本地应用服务器上的 Web 服务的托管。
构建且运行于公司内部网之外的应用服务器上的
Web 服务的托管。
这两种情况的区别是第一个是简单的托管方案,而第二个可以被描述为代理或批发方案。要获取关于这种区别的更进一步的信息,您应该阅读“Applying Web services to the application service provider environment”(请参阅参考资料)。
这两种方案的目标都是允许以一种将服务本身的问题域从预订、准备和管理系统的问题域分离出来的方式管理 Web 服务;在许多情况下,当编写服务时,服务的设计者将不需要考虑准备系统的需要。
开发和部署方面将包括以下几个步骤:
开发者使用 Web 服务工具箱和单元测试环境来创建和测试 Web
服务。
开发者提供准备挂钩(hook),从而允许准备系统有计划地登记服务的新用户(如果需要)。
服务提供者为定价和计费引擎创建定价包(使用由这些应用提供的工具)。
将
Web 服务部署到服务提供者的生产服务器。
将 Web 服务定义(WSDL)部署到 UDDI 或其它一些 WSDL
注册中心。
服务提供者创建报价(一个报价包含一个或多个 WSDL
注册中心列出的与定价包相关联的服务)。
服务提供者将报价部署到在线目录,该在线目录引用服务目录和定价包。
登记和预订方面:
潜在的订户(消费者)通过引用目录的注册中心发现 Web
服务,反之亦然。
如果还不是成员,新的订户向服务提供者登记(建立一个帐户)。
订户选择预订新的 Web
服务。
自动为新订户准备服务。
订户下载使用 Web 服务所必需的资产,编写并部署一个客户应用程序。
使用方面:
客户应用程序使用 Web 服务,由 Web
服务准备基础架构对这种使用进行评测并给出报告。
使用事件被传给定价引擎,为计费系统生成发票行。
服务提供者和订户都通过访问计费系统获知当前的使用费用。
服务提供者使用管理
UI 来控制对 Web 服务的访问。
以上每一个方面都在一定程度上与准备系统有关。开发和部署方面需要构建一个到准备系统的接口;登记和预订构建准备系统;使用方面利用准备系统。因此,登记和准备系统及其支持系统是成功地托管企业级 Web 服务的关键。
“Web 服务托管”要求
为了支持在企业级托管 Web
服务,您将需要许多重要的组件。这一节以“Metering and accounting for Web services”(请参阅参考资料)中介绍的为托管
Web 服务而确定的要求为基础。
服务的目录
为了管理托管的 Web
服务,服务可能需要与一个报价或一次交易相关联。报价将 Web
服务与用来确定使用费用(计费)的恰当的定价包联系起来。报价及其相关联的服务被发布到目录,之后便可供消费者发现和预订。
定价包是将预订和使用评测事件与费用关联起来的一组规则。定价引擎根据确定的定价包对这些事件进行评估,将发票行提供给计费系统。计费系统将发票行与相应的帐户关联起来,也与其它许多功能(比如:跟踪发票和收款)关联起来。
一旦定义好了,发布步骤就使消费者可以使用 Web 服务消费所必需的资产。与服务相关联的报价信息被发布到目录服务,并由预订服务引用。
登记和预订
登记是使托管系统知道订户标识的过程。在随后将 Web
服务的使用与该服务的消费者相关联时需要这个标识。通常将登记和预订步骤结合在一起。
预订是将用户添加到给定的 Web 服务消费者列表的行为。消费者通过选择报价来选定所希望的服务,报价包含所希望的服务并确定合同中的使用条款。预订可能需要付安装费。一旦预订了,消费者可以使用服务操作(消费)所必需的任何资产。
准备
准备是为消费者使用服务准备系统的行为。它包括为支持消费者活动在技术和业务两方面作准备。
Web
服务准备
服务可以是匿名的或有准备的。匿名服务在运行时不需要消费者的标识就可以进行操作。匿名服务的一个例子是检索股票价格。Web
服务的认证、授权和评测被委托给托管系统,因此,匿名服务通常不需要其它的准备。
有准备的服务是需要将用户帐户和/或其它信息与服务关联起来的服务。例如,当必须确定要检索的帐户余额时,从用户资产清单检索帐户余额就是有准备的服务。对与该服务相关联的资产的细粒度保护还需要其它访问控制。
要使登记和预订过程自动化,每个有准备的服务都需要一些扩展。这些通常是构建在服务中的 API,只需要通过服务代理映射为准备系统功能。接下来,准备系统在预订时将通过代理驱动这些功能。
支持系统
当托管 Web
服务时,任何分布式系统设计中提供的许多系统同样有用,并且必须是有准备的,如表 1 所示。
表 1. 准备支持系统
合同
合同可以用来存有这样一种信息,这种信息将 Web
服务的消费者与该服务、服务的条款(包括定价包)以及计费帐户联系起来。认证和标识系统与所调用的服务一起提供上下文,当调用服务时,该上下文用来发现恰当的合同。通过“服务级协议”(Service
Level Agreement,SLA)和“服务质量”(Quality of
Service,QoS)管理系统,合同上下文用来对信息进行评测。在预订的基础上,托管系统创建消费者、服务、SLA、QoS 和计费帐户,并将它们关联起来。
在托管的环境中,如果不存在使用这些服务的有效合同,则试图调用托管的 Web 服务将被拒绝。
评测、定价和计费
用于准备的帐户管理过程分为:评测、日志记录、定价和计费这样几个子过程。
评测
如果您需要基于使用的计费,则消费者对 Web
服务的使用必须被评测。系统还收集登记、预订和准备事件,可以使用这些信息来确定预订费用。
使用评测通过 Web 服务运行时的装备来完成,无需给服务本身强加额外设计要求。Web 服务的设计者可以进一步装备服务,以提供其它评测事件。
日志记录
评测事件被写到公共日志中,稍后由定价引擎进行处理。评测和评测事件日志记录都会在 Web
服务的服务器和客户端出现,允许稍后进行核对。
定价
使用所指定的定价包,定价引擎将评测事件转换为传给计费系统的发票项。定价引擎根据使用和预订的情况确定费用(基于时间)。通常定价引擎是较大的计费系统的一部分。
计费
计费系统接受来自定价引擎的发票信息,并将它与正确的用户帐户关联起来。计费系统提供一些信息,从而允许消费者检索计费信息并根据计费信息进行支付、在发生争议的情况下进行核对以及更正支付给提供者的供应商(供应商反过来也可能向原提供者提供批发服务)的付款。
Web 服务托管的运行时
运行时,各种支持系统将再次发挥作用,如表 2
所示。
表 2:在运行时的托管支持系统
当调用了服务,Web 服务基础架构将试图发现合同,使之应用于该调用。合同将包含对信息(服务将根据此信息被处理)的引用。最低限度,合同的存在将起到授权核查的作用;如果没有有效的合同,将不能调用服务。当对由该调用生成的评测事件进行处理时,合同还可以确定将会用到的定价包;当调度服务时,合同可以确定要用到的 QoS 和 SLA 参数。
管理
自助式简档管理功能的使用将可以降低服务提供者的操作成本,将赋予消费者管理其组织和个人数据的权利。
认证和授权系统的管理功能通常由这些系统本身提供。
目录发布工具将用来管理目录中的服务和报价信息,而托管系统将提供合同和预订管理。
计费系统通常提供定制的管理功能。计费系统还可以提供订户接口组件,这些组件将被集成到最终用户门户网站中。
Web 服务托管技术
“Web 服务托管技术”(WHST)是发布在
alphaWorks 上的新包,它实现了准备的所有主要功能。以下的内容是 WSHT 及其工作原理的概述。
组件和功能
WSHT
的主要组件有门户网站,报价目录,登记和预订系统,运行时扩展以及定价、计费和帐户管理系统。
WHST 门户网站
WSHT 包满足了托管 Web
服务的许多要求。其目的并不是生产服务,因此为了方便,将登记、预订和管理功能组合到一个门户网站。门户网站提供了对以下内容的访问:
目录构建和管理功能。
用户和预订管理。
计费帐户状况。
登记功能。
预订功能。
权利列表。
Web
服务测试接口。
报价创建和报价目录
WHST
提供了创建和管理称为报价的预订元素的工具。报价将来自 UDDI 注册中心的一个或多个 Web 服务与用来计费的定价包相关联。
报价放在一个简单的目录里提供给已登记用户,作为登记和预订操作的一部分。
登记和预订
简单的登记系统在
WSTK“标识”服务的基础上被提供。要登记,用户只需要选择一个独一无二的用户标识并提供一个密码。
预订接口允许已登记用户从可用的报价列表中进行选择。接受了报价中的条款就会创建服务调用时所用到的合同。
运行时扩展
基本的 Web 服务运行时在 WHST
环境中被扩展。运行时被装备为记录审计和评测记录。基本的 WSTK 标识服务用来进行授权(如果用户存在且与密码匹配,他们将被授权使用系统)。WSTK
合同服务用来确定服务的用户是否拥有一个有效的合同,之后合同标识符将在评测记录中被引用。
定价、计费和帐户管理
轻量的定价引擎周期性地处理审计和评测日志中的评测记录,将发票记录传给轻量的计费系统。计费系统将发票记录与订户帐户关联起来。将提供一个用户界面,允许用户查看汇总的订户帐单。
操作 WSHT
操作 WSHT
是一个分为两步的过程:第一步,用准备系统建立服务;第二步,将服务消费者客户绑定到准备系统。
WSHT 发布、登记和预订
图 1 展示了服务开发者怎样将服务定义发布到
UDDI
注册中心。服务提供者将服务与定价包相匹配作为报价,并创建一个目录条目。消费者向服务提供者登记,从目录选出所希望的服务,并且预订服务。客户资产被消费者下载,并在调用服务的客户应用程序的开发中使用。
图 1. 用准备系统建立服务。
WHST 运行时
在运行时(请参阅图
2),客户应用程序绑定到服务,并使用恰当的机制调用服务,该机制报告在登记阶段建立的标识(请参阅图 1)。Web
服务的服务器调用标识处理程序来验证消费者标识,然后调用合同处理程序来验证合同是否存在。接下来调用评测处理程序来记录服务调用的启动,之后,记录它的结束。定价引擎处理事件日志中的事件,确定费用并且在计费系统中创建发票项。消费者使用服务门户网站来查看使用费用。
图 2. 运行时客户应用程序绑定和服务交互
WSHT 配置
为了支持 Web 服务协议的不同实现,WSHT
有两种配置:简式和网关。
简式
为了建立服务用户的标识,简式配置假设使用 Apache SOAP
3.0(Axis)协议实现中的处理程序系统。服务客户将用户标识和密码插入到请求中。Web 服务工具箱(Web Services ToolKit)3.0
服务器(请参阅参考资料)检索标识,并用它来发现适用的合同,服务将按照这个合同被调用。
网关
“Web 服务网关”(Web Services
Gateway,WSGW)可以用于更复杂的情况,比如:
支持非 Axis 客户。
支持非 Axis
托管的服务。特别是,网关可以用在“批发”方案中,在这种方案中服务提供者是外部服务的中介者或门户网站。
支持调用 WSIF 的内部服务,包括
RMI-IIOP。
为了托管,通过添加拦截器来装备 WSGW,拦截器的功能与上面描述的 Axis 处理程序的功能相同。网关将允许建立消费者标识,而不用依赖 Axis 客户处理程序。例如,当使用 WSGW 时,WHST 将支持 HTTP 认证。
结束语
WSHT 说明了“Web 服务工具箱”和“Web
服务网关”如何能用来提供操作按使用付费的 Web
服务托管系统所需要的核心功能。合同可以用来将服务和消费者标识与定价包联系起来。定价包把使用评测记录转换为发票记录,并且与消费者帐户关联起来。
最重要的是,任何服务(本地的或远程的)都可由 WHST 托管支持准备和管理,而不需要改变 Web 服务本身。像本文中介绍的这种体系架构将可以简化 Web 服务进入服务提供者环境的接受过程。
参考资料
- 请参与本文的讨论论坛。
- Dan Gisolfi 的专栏的关于基于付费的 Web 服务问题:第
1 部分、第
2 部分、第 3 部分。
- Dietmar Kuebler 和 Wolfgang Eibach 的关于评测 Web 服务的文章。
- Greg Flurry 的 Applying Web services to the application service provider environment,第
1 部分和第 2 部分。
- 从 IBM alphaWorks 下载 Web Services ToolKit。
- 从 IBM alphaWorks 下载 Web 服务托管技术包。
Mike Polan 是一名 WebSphere 体系架构设计师,目前他致力于应用和服务准备,特别是 Web 服务准备开发的研究。他是 WebSphere Commerce Suite 的开发经理并领导 VisualAge C++ 和 VisualAge Java 开发小组。您可以通过 polan@ca.ibm.com 与他联系。
- 1Ask the DotNetJunkies: Consuming Remote Web Services in ASP.
- 2Web Services with ASP.NET
- 3泛普软件石家庄OA信息化平台技术路线
- 4中国特色生态文明建设的理论创新和实践
- 5Web服务设计师,第4部分:基于付费Web服务:术语
- 6Web服务内幕,第9部分:研究问题--安全性与保密性
- 7一波“三折”:我的OA选型经历(上)
- 8追问石家庄OA信息化(高丽华)
- 9Web服务的(革)创新,第3部分
- 10万宝:中国首个石家庄OA信息化的畅饮者
- 11Web Services Interoperability and SOAP
- 12源天软件为特优仕照明实施协同办公管理系统
- 13Consuming a Web Service from a Win Form Application
- 14企业借OA节省费用,减轻金融风暴影响
- 15A Platform for Web Services
- 16OA办公系统可以帮助企业摆脱束缚
- 17架构Web Service:描述与注册,发布Web服务
- 18OA支持工作流报表的格式自定义——通过工作流报表
- 19互联网联盟(W3C )发布Web服务体系新规范草案
- 20OA内容管理与知识管理方案介绍
- 21ColdFusion MX增加对J2EE、XML和Web服务的兼容
- 22石家庄OA信息化的基本XML和RDF技术(六):使用Versa的RDF查询
- 23对于石家庄OA信息化的几种不同理解(BY AMT 夏敬华)
- 24bindingTemplate与Web服务调用
- 25BEA实现安全的在线交易的web服务
- 26Web服务内幕,第3部分:Apache和Microsoft -- 良好的合作
- 27[编译] 石家庄OA信息化测度:目标、过程及方法(夏敬华译)
- 28Web服务的(革)创新,第2部分
- 29Web服务网络:简化企业间工程的中介
- 30微软展示新版互联网服务MSN 8.0
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼