谁需要Web服务事务处理


想想商务应用程序中的事务处理,你会立刻想到银行业务、股票交易与航空订票系统,这些都是典型的规模巨大且非常昂贵的企业系统,这些系统的信息如果有误,可能会导致严重后果。

奇怪地是,当试图利用Web服务来构建第一个应用程序时,你就会发现关于Web服务事务处理的信息非常缺乏。把销售商的文件从头看到尾,可能什么都找不到。

当然,在Web服务(过去5年中最主要的技术发展趋势)的某个地方,应当有很多关于面向服务的事务处理的信息。本专栏将阐述Web服务事务处理规范的过去、现在和未来。

Web服务事务处理的历史

好像并不是Web服务刚一出现,这个行业就忽略了事务处理。更确切地说,是事务处理至今一直都没有成为那些已经使用了Web服务的应用程序的成功基础。

许多早期的Web服务项目致力于已经证实的需求/响应Web结构的再开发和多元化利用,其中对事务处理的支持要么是利用传统的Web技术(如HTTP会话或cookie)明确编进应用程序层,要么通过让应用程序只提供对后端商务系统的只读访问而明确禁止。但更多的开发人员正在立项以测试简单Web服务的限度,促使几个标准研究计划将事务性语义引入Web服务。

2000年,许多重量级销售商编写了一个叫做事务处理授权标记语言(Transaction Authority Markup Language)的规范。2001年,BEA创立了一个叫做商业事务处理协议(Business Transaction Protocol)的规范。2002年,IBM与微软创立了WS-Transaction和WS-Coordination,作为用于面向Web服务的业务流程执行语言(Business Process Execution Language for Web Services ,BPEL4WS)的组成部分。2003年8月,一个包括Oracle在内的销售商联盟提出了Web服务复合应用框架(Web Services Composite Application Framework ,WS-CAF),将其作为以前那些研究计划的扩充。

事务处理:需要还是不需要?

在传统应用程序中,多数事务往往耗时短且同时进行,而且参与者也不多:一个将向银行贷款的客户,一个预定飞机票的旅客,一个完成购买的股票商。这些都是基本事务处理。人们对这些都很清楚;一直就缺少的是这些事务语义的Web服务层。

在商务处理领域将事务性语义与Web服务集成在一起变得更为复杂。这里,Web服务的交互时间变长且不同时进行,涉及的当事人也很多。例如,一个旅客通过旅行社来筹划商务旅行说明了典型商务流程的复杂性。处理这样一个基于Web服务的商务旅行事务可能需要旅行社与航空订票系统、饭店预订系统及汽车租贷系统进行交互。这种情况如图 1所示。

travel agent booking a trip

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus