简介
在我们开始讨论业务处理执行语言之前,我们需要为它的应用设置一个框架。经理们、开发人员们和数据库治理员们能够理解业务处理执行语言是如何给他们带来好处,这一点非常重要。
这篇文章将会为你介绍业务处理执行语言,其中包括对Oracle的业务处理治理器的介绍。
业务处理治理
业务处理治理(BPM)技术是一个为能够有效检索并协调业务处理的应用程序预备的框架。业务处理治理解决方案将会自动治理处理和处理流程,但是在必要的时候也答应手工干预。
业务处理治理将会协调从数据库中抽取用户的信息,或者治理一个新的客户信息事务。业务处理治理可以在多个相关的系统中产生事务,或者支持直接通过的处理,而不受到人为干预。业务处理治理答应你自动分配有关多个系统中信息的任务,按照一定的规则来定义这些任务执行的顺序,还有职责、条件和其他的处理方面。业务处理治理不仅仅答应一个业务处理以更有效的方式执行,它还为你提供了工具去衡量性能的标准,并且辨别改善性能的时机。业务处理治理的一项好处就是这种改变可以在处理或者流程中通过添加、删除或者更新处理来轻易完成。
要真正的利用业务处理治理,一个处理的软件语言程序组件应该遵循面向服务的体系结构(SOA)。这些组件应该作为网络服务来发布,以便重用和轻松整合。
面向服务的体系结构
面向服务的体系结构(SOA)是“一种基于标准的实现风格,目标就是获得安全、可靠的,以及松散耦合的交互服务之间的互相操作”(摘自He, Hao,《什么是面向服务的体系结构》,O'Reilly出版社,2003年9月30日)。一个面向对象的体系结构组建可以作为网络服务出现。描述一个网络服务的标准方式就是通过网络服务描述语言(WSDL)。网络服务是一组终端,在包含了面向文档的或者面向过程信息的消息上进行操作。网络服务描述语言可以通过扩展对终端和消息进行描述,而不管这些消息的格式或者使用的网络协议是什么。网络服务的方式是通过通用描述、发现和整合(UDDI)协议来发现。统一描述、发现和集成是组成网络服务栈的相互关联的标准之中要害的一部分。统一描述、发现和集成标准描述了发布和发现面向服务的体系结构的基于网络的软件组件的方法。统一描述、发现和集成就像是一本网络服务的“黄页”。
假如要讨论能够保证这些网络服务在一起工作的话,我们还需要一些标准,我们标准。这样的标准有很多,我们现在就开始。首先映入脑海的就是网络服务写作(WS-Coordination) 和网络服务事务(WS-Transaction)。
网络服务协作(WS-Coordination )
网络服务协作(WS-Coordination)是一项针对单个的网络服务如何进行交互,以保证任务的完成而被提议的IT行业标准。网络服务协作交互界面定义了一个上下文环境,在这个上下文中发生协作,特定的数据项进行交换,以便作为整体业务处理一部分的事务能够成功完成,这个整体的业务处理是在业务处理执行语言(BPEL)程序中定义的。
网络服务事务(WS-Transaction )
网络服务事务是一组组成事务实现的特定规范。
网络服务协作规范是网络服务互操作性组织(WS-I Organization)的一项活动,这是在行业范围进行网络服务需求和交付标准化的尝试。
业务处理执行语言
业务处理执行语言(BPEL)是在网络服务基础上指定业务处理行为的符号。业务处理执行语言用于对可执行和抽象的处理行为建立模型。(可执行的处理模型实际上是在业务事务中的行为。抽象处理是在不了解彼此内部行为的基础上进行交互。)
业务处理执行语言包含的范围:
处理活动的顺序,非凡是网络服务互操作。
消息和处理实例之间的关系。
在发生错误和例外情况下的恢复行为。
处理角色之间的基于网络服务关系的双面性。
对于网络服务来说,业务处理执行语言就是基于xml的语言(BPEL4WS,通常缩写为BPEL,读音与“people”类似),设计目标是为多个企业之间使用网络服务的组合实现分布计算或者网格计算环境激活共享任务。业务处理执行语言是来自BEA系统公司、IBM和微软公司的开发人员编写的。业务处理执行语言结合了并且替换了IBM的WebServices Flow Language (WSFL)和微软公司的XLANG规范。使用业务处理执行语言,程序员在形式上描述了一种发生在网络上的业务处理,其方式为任何互操作的实体都可以按照同样的方式执行一个或者多个处理中的步骤。在供给链处理中,例如,业务处理执行语言程序描述了一个业务协议,这个协议将构成产品订单的信息片断形式化,并且处理出现的异常情况。然而,业务处理执行语言程序不会指定某个特定的网络服务应该在内部以什么样的方式处理某个特定的订单。
业务处理执行语言服务器
有几种业务处理执行语言服务器可用。Oracle的业务处理执行语言处理治理器就是可获得的顶级服务器之一。
ActiveBPEL引擎
IBM的BPEL4WS编辑器和java运行时
Oracle的BPEL PRocess Manager
微软的 BizTalk Server 2004
其他的BPEL服务器
Oracle的BPEL Process Manager
Oracle的BPEL Process Manager是一组非常轻易理解,并且很轻易使用的组件,可以用于创建、部署和治理BPEL业务处理。Oracle的BPEL Process Manager是一个集成到JDeveloper中的GUI开发工具。
Oracle的BPEL Process Manager体系结构
Oracle的BPEL Process Manager体系结构包含了一个设计器、处理治理器和控制面板。Oracle的BPEL Process Designer可以让你建模、编辑和设计处理。集成服务让你进行转换。包含了许多对于各种各样的源的适配器。核心的BPEL引擎支持BPEL标准,并且可以运行在各种语言程序服务器上。
支持的适配器
Oracle 的BPEL Process Manager让你可以通过它的适配器连接到数据源。这里是一些适配器的列表:
文件适配器
FTP适配器
Oracle的高级队列
数据库适配器
JMS适配器
Oracle的应用程序适配器
数据转换服务
Oracle 的BPEL Process Manager有一个内建的转换器组件。它在转换中使用了如下的标准:
XSLT Mapper
XPath
XSD
XSL
转换服务有一集成的测试工具,它可以产生测试数据来确保你的映射是正确的。
业务处理执行语言方法学
开始业务处理执行语言项目的时候,我建议你以下内容:
检查网络服务体系结构使用场景
你可能用到的一些场景类型为:
○自动导航
○请求/响应(回叫)
代码——假如你想将现有的应用程序释放到网络服务中,这是首选。
WSDL——假如你不想让现有的代码或者你想以你需要的服务展示开始的话,这是首选。
假如你计划实现业务处理执行语言,你需要公布服务。网络服务是业务处理执行语言中的要害组件。这个服务需要通过UDDI注册,并且通过WSDL进行描述来进行公布。一旦服务公布了,你可以在你自己的业务处理流程中把它们包括进来。网络服务可以被调用(对网络服务的请求)。网络服务将会响应你的请求。就像你需要为某些数据转换进行计划一样。你需要计划如何处理异常情况。处理不会自动完成,所以你需要合并一些用户任务。要监控这些过程,你需要传感器。传感器可以发送通过业务活动监控器(BAM)报告的状态消息。Oracle的BPEL Process Manager可以帮助你所有这些步骤。GUI设计工具使用简单的拖拽来定义处理流程。要概括这些步骤,你需要:
发布服务(通过注册)
调用处理流程
执行数据转换
治理异常处理
包括用户人物
在处理流程中放置传感器
监控过程
值得注重的语录
Steve Brown是Metastorm的首席技术官:“假如说你正在构建一个应用程序,但是它使用的一些应用程序是它们自己的网络服务。你绝对会需要以一种灵活的组织所有这些网络服务的方式,确保它们都以正确的顺序执行,并且确保进行了检查和平衡。这就是BPEL4WS的目标领域。”
Tom Siebel是Siebel系统公司的主席和首席执行官:“业务处理计算的紧急情况意味着日期的临近,单片电路的应用程序套件以及所有权综合解决方案都过去了。业务处理计算,基于开放的标准,将会让企业从某个供给商私有的体系结构中解脱出来。拥有了网络服务,应用程序功能性变得分解,每个可获得的功能都可以作为一项被任何其他应用程序或者网络上的服务在任何时间、任何地点访问(或者被消耗)的服务。”
Adam Bosworth是BEA负责工程的副总裁:“Alan Kay可能说过,单个的事物市简单的,困难的事物是可能的。这就是我过去25年里面对大多数软件产品的软件开发经验,简单的事物应该被公布并且/或者可见,困难的事情应该被程序化。声明语言有一种很不幸的转移趋势,因为人们需要做那些困难的事情。当它们以这种方式成长的时候,不仅仅是大多数的人不能使用这些新的特性,他们还发现整个语言都更加令人畏缩。”
小结
什么是业务处理执行语言?
业务处理执行语言是一种为了指定基于网络服务的业务处理行为的符号。它组织了业务处理。