2008-01-25 15:28:51 来源:dev2dev
业务流程是一个组织及其合作伙伴的人员及系统所完成的工作的一种正式表达, 它旨在给内部或外部客户提供产品或服务。业务流程管理(BPM)是正式化和自动化业务流程的技术。AquaLogic BPM Suite(ALBPM)是一个完全允许端到端业务流程管理的业务流程管理系统。
这篇文章将介绍该产品的功能, 以及转用BPM时需要考虑的一些重要事项。本文未对BPM的概念进行完整的描述, 但将给出AquaLogic产品提出的BPM愿景。
本文适合想初步了解此产品及技术的读者,也为解决方案架构师和负责设计准备转移到基于BPM的解决方案的软件系统的人员提供了重要信息。同时,开发人员和高层管理人员也能在本文中受益。
开始之前,希望您先问一下自己以下问题:
什么是BPM?
您认为业务流程在现实中应怎样实现?
您是否认为您的组织中的流程在应用程序中得到了很好的反映?
您能够很轻松跟踪组织内部的流程吗?
使用BPM是否能够改变组织中人员的工作方式?
读完这篇文章时,再问自己一遍同样的问题。然后对比答案,看看您是否能够有解决这些问题的更好方法。 这篇文章的目的并非回答这些问题,而是让您自己能够很好地阐述这些问题,并得出自己的结论。
业务流程是一个组织及其合作伙伴的人员及系统所完成的工作的一种正式表达, 它旨在给内部或外部客户提供产品或服务。业务流程最简单的表达形式就是一组活动,它们表示流程的不同步骤,通过一些转换连接在一起。活动可能需要人为干预,也可能是全自动的。对于需要人为交互的活动,可以在流程中定义一个角色,标识允许谁在这里与流程交互。流程起到定义的作用,而流程中的实例就是完成整个流程的实际项目,从一个活动转换到另一个活动。实例总是开始于流程的Begin活动,而结束于流程的End活动。实例的路径完全取决于实例的数据以及外部环境。
转换是活动之间的直接连接, 许多的转换进出一个活动.。一旦某个实例完成了一项活动件,外发转换将被评估, 其中之一被选中,以使实例转向下一活动。条件转换包含一个布尔表达式,该表达式将被计算,要使实例继续沿流程前进,结果必须为true。有些转换是基于时间的,这就意味着如果到了预期时间,实例还在那里,这些转换将会触发到目标活动的自动路由。流程也可以有状态:可为流程定义属性,接受每个实例的一个值,这能帮助您保持实例状态,以转换到不同的活动(例如,报价总数>X,那么就执行该活动)。.
从纯建模的角度看,这就是BPM。但要执行流程,这里的定义是不够的;您还需要与其他系统沟通,将流程反映到基础架构中。这就是集成发挥作用的地方了。对于流程中的每一个活动,您都可以定义任务,这些任务基本上是由一个实例抵达该活动时所执行的代码组成的。任务可以通过多种方式实现。当某个实例抵达一个自动活动时,为该活动定义的任务就会被执行,实例将根据执行结果移动到下一活动。
对于人为交互的活动,任务的执行是由最终用户通过客户端工作空间触发的。AquaLogic产品内置了集成功能,可以应用于任务代码之中(这一特性将在以后的文章中更全面地加以介绍,它也是本产品最重要的特性)。任务更新流程状态、访问和更改外部系统,并与最终用户交互等等。任务就是将一个简单的流程模型转变为一个流程驱动的应用程序。
业务流程管理是正式化和自动化业务流程的技术。要想成功地进化为一个面向流程的组织,您必须使用合适的工具来设计、执行和监控业务流程。这就是业务流程管理系统的构建目的。也是AquaLogic BPM设计的目的所在。
如果组织想要获得更高的敏捷性,就需要适应业务运转所用到的软件。从概念的角度来看,变化最频繁的不是后台应用程序、不是访问客户的web服务定义、不是EJB的位置,也不是它们所基于的ERP的版本。业务需要适应的最重要的变化就是流程本身:业务必须以某些标准为依据,添加一条更快捷的途径,来自动地认可顺序,从而修改提高或降低认可率的参考值。组织需要处理认可,并平行地检查活动;需要改变执行某项活动的角色;需要手动处理一些异常;需要实施新的业务规则。处理此类变更是BPM的核心内容,允许在不更改任何底层组件的情况修改业务流程。
下节将介绍一些我认为对于理解BPM的真正价值十分重要的东西。
通过接纳BPM,也就具体化了业务中的一个重要片段。问题是,如果用户的流程模型不可执行(即它只是纯粹的模型),那么最终您是不得不将其映射到一个应用程序、转换它,就像从“分析”到“设计”再到“实现”时的转换一样。这使得将业务流程映射到生产中真正运行的部分非常困难。采用AquaLogic BPM Suite,您可以构建出一个完整的流程驱动的应用程序,将任务附加到活动,而这些活动就是业务流程内部发生的真实操作。任务是流程的代码,既可以是用户驱动的,也可以是系统驱动的。任务的执行是流程中状态改变的主要驱动力。因此,这个流程切实地驱动了应用程序,直接实施了流程中允许的流、任务和操作。
编写流程驱动的应用程序并不会改变您编写代码或实现服务的方式,您仍然是在以相同的方式编写Java类、Web services和JSP。主要的差异在于这个应用程序是流程驱动的。也就是说,所有的代码是通过活动任务触发的,所以您只需专注于这些任务的代码即可,剩下的事情都可由AquaLogic BPM Suite处理。用户工作空间中提供了一些开箱即用的基本流程操作。
对于您的最终用户(即您所构建的解决方案的用户)来说,最主要的变化就是他们有了一份待完成任务的单一列表。他们可以在收件箱中查看待处理的实例以及对于各实例来说可执行的任务。
以前,用户必须在不同的页面、系统和应用程序上查看需要执行的任务。幸运的是,如果有新的待执行任务,用户会接收到相关通知,但他们很有可能不会在一个单独的视图中发现这样的通知。而BPM可以将工作分配情况很直观地展现在用户面前。
对于最终用户来说,最重要的改变就是呈现在他们面前的将是更加面向任务的工作视图。他们能够很容易地了解,他们有等待通过执行为相应活动启用的任务而许可的待处理事项单。只要清晰地定义流程,您就可以创建出对所有参与实体(如其他系统和人员)来说都很清晰明了的工作单元。
有了流程和实例后,您就需要一个用户前台来管理实例(类似CRUD的基本操作)。对于BPM,这些操作将是创建、搜索、执行、取消、委托和路由。AquaLogic BPM Suite通过HiPer Workspace(以任意风格)或直接通过使用API(基于Java或Web服务)提供了所有这些特性。用户无需再构建这些功能,它们已经存在了。
BPM是波澜壮阔的SOA运动的一部分,在其中发挥着非常重要的作用。下面分析一下它是如何发挥作用的。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。