二十世纪70年代、80年代,软件主要以数据驱动的应用程序为主,信息系统多以数据处理为主。随着信息技术的发展,管理逐步超越数据处理成为信息技术的主要处理对象,因此流程管理的需求逐步显现,工作流的概念开始形成。工作流系统的出现使得整个流程的自动流转或自动执行成为可能。
工作流(workflow)的定义:“工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行”。
但是工作流一般只解决生产流程层等比较微观的问题,解决企业某一方面的业务流程管理的问题,随着企业业务流程向企业外部(供应商和客户)延伸,传统的工作流系统无力解决跨企业的流程集成问题,于是面向企业的业务流程管理解决方案由此应运而生。
可以说业务流程管理(Business Process Management, BPM)是工作流管理(WorkFlow Management, WFM)的升级概念,两者的核心内容其实是一样的。
自从有了工作流这个概念开始,经过长时间大量的实践,人们意识到需要一个统一的流程建模模型来对工作流的流程设计、流程配置、流程引擎、流程维护等等定义一套标准。
长期以来,工作流形成两种具有代表性的语言:
1、Web 服务流语言 (WSFL)
WSFL是IBM 基于有向图概念设计的一种工作流语言,是一个关于如何实现使用新兴Web服务架构的商业流程模型的规范。
2、XLANG
XLANG 是一种由 Microsoft 设计的块结构化语言。 Microsoft BizTalk Server 2000 中引入的基于 XML 的语言(xml language)。biztalk中Orchestration(业务流程)服务叫做XLANG/s 服务,因为它的业务流程就是用XLANG 进行描述的。
工作流语言标准的最新发展是,各大厂商共同推出了面向 Web 服务的业务流程执行语言(BPEL 或 BPEL4WS),BPEL 基于 XML 和 Web 服务构建;它使用一种基于 Web 的语言,该语言支持 web 服务技术系列,包括 SOAP、WSDL、UDDI、Web 服务可靠性消息、Web 服务寻址、Web 服务协调以及 Web 服务事务。2003 年 4 月,BPEL 提交结构化信息标准促进组织 (OASIS) 以实现标准化,并组建了 Web 服务业务流程执行语言技术委员会 (WSBPEL TC)。该努力使 BPEL 在业界获得更广范围的认可。
BPEL 代表了两种早期工作流语言 - Web 服务流语言 (WSFL) 和 XLANG 的交汇,融合了这两种语言的各自优点,但是到目前为止,各个厂家的产品都声称符合BPEL标准,但是实现的都不是很好,所以现在的BPEL离实用还有一段距离。
业务流程有两种发展方向:
STP(Straight Through Process)和CH(Case Handing)。
STP是指业务流程执行的完全自动化,系统完全根据可以获得的各种信息来源和业务流程的设计自动的判断流程的走向,即不需要人工参与。
CH是指需要人工参与的流程,需要提供界面给参与的人以显示流程的目前状态,并允许参与人员进行相应的处理以决定流程的走向。
biztalk的重要用途是用于B2B和EAI,这两种应用一般属于STP应用,流程设计好后不需要人工干预。但是biztalk从2004版本开始引入HWS(Human Workflow Service),结合infopath表单,提供人工参与的工作流功能。但是HWS的功能并不完善,使用很是麻烦,故微软打算抛弃它。虽然在biztalk 2006中还是有HWS,但是功能上没有任何的改进,只是简单的保留了这项功能。微软在Vista中引入了Windows Workflow Foundation(WWF),WWF作为操作系统的一部分,提供了对工作流最底层的支持,以后微软的跟工作流相关的产品都会建立在WWF基础之上,biztalk 2006的下一版本将会删去HWS,业务流程将会建立在WWF引擎之上。
参考资料:
TJDLUT《业务流程管理综述》
Matjaz Juric的《BPEL实例教程》