直到最近,业务流程应用软件才被视为是与大型计算机共存亡的状态驱动(State-driven)型应用软件。如今,业务流程应用软件的范畴已经被显著扩大。有着年30历史的遗留系统(Legacy system)只要依然保留着,其行为、事务和数据就必须要与其他各种类型的系统和各类人员和谐共处。针对该问题,本文在研究了很多刚出现的发展趋势和业务流程计算中出现的问题,为将来的流程发展分析归纳出了一种新型的连续模型。
持机器驱动(Machine-driven)型应用软件集成和人力工作流及其协作观点的人们却反对我们的意见。前面提到的状态驱动型应用软件创建和连接比较复杂,但是象经典的定单管理这样的决策性业务流程是通过计算机收到的电子订购和更新先前的其他计算机中的帐单来完成的,而先前的计算机会检查客户的信用卡是否可用,然后选择并执行客户的喜欢的购买方式完成客户要求。
一方面,早期的流程处理是用高度自动化的解决方案来实现的,能在软件中被很完美地描述与实现。它们在基本概念和结构上是易于理解,也易于抽象的。例如:业务流程执行语言BPEL(Business Process Execution Language)包含有基本的任务顺序、并行机制和同步化等其他处理逻辑。这些流程是很贴合现实世界的应用的:每天有9百万条消息和7万亿资金在SWIFT,全球金融网络中流转。
另一方面,流程的结束越来越模糊、突发,在人力工作流中的表现也比较混乱。要通过一个文档,如订购单就是一个典型的应用案例,表面看起来是很简单的事,但在实际的组织中,却会发生很多意外,比如会出现未按期处理、未能协调好、处理人员中有人生病等情况。因此,象这样的情况可能会使复杂的建模过程难上加难,任何试图为这些流程建立模型的努力都会因简化而失败。自觉我与否是我们的人员一直在围绕系统寻求的问题。这也是人性的本质性问题,也许我们无法塑造自己,但对于我们和我们的计算机而言这样的情况是递归的!所以我们必须思考如何在系统集成时协调好人员的因素。
下面我们就从几个方面来分析这个问题。
采用系统至上、人员分而治之的集成方法
现实中总是会出现这种情况:机器到机器(Machine-to-Machine)的集成几乎总是失败,除非建模流程已经有一定的门道可以遵循,这些规律让人们可通晓或注意到意外情况,不过人们还是可能会对某些错误视而不见或是在发现了错误时假装没发现。在这样的应用软件集成中,人们必须要在关键时刻出手。我们把这样的系统称为系统至上(system-up)的集成的典型范例:由多个计算机程序和系统或多或少地以自动化的方式实现集成,但偶尔会因为商业规则的原因使人员被商业牵着鼻子走。
在系统至上的系统集成中,每个人员涉及到的只是整个系统的某一个不常见的方面。而人员分而治之的集成方法则重点考虑的是每个员工的绩效的流程处理方式,其主要方法是:每位员工有自己的职责,由经理来评判,层层向上最终由上层经理分析出整个组织的绩效,而薪资是导向性因素。流程主要由人员根据自己的时间框架决定对共有资源(如HR系统、支付系统、税务系统等资源)的访问,而且这些是强制命令式的。
效率更高,利润更大
我们如果把业务流程看作是一系列有序的任务,那么这些任务序列应该让业务更有效率。Metrics应用业务流程重组来节约时间、开销等成本。但是,流程也是最顶级的利润。假设顾客要进行一笔数额较大的金融交易,那么接下来服务方就要通过外部的信用服务来决定该客户是否有支付能力。然而,检测其信贷分类是可能发现他有若干为还债而变卖的行为存在。信用卡发放机构可能查阅到客户的人寿保险提供商或是信用卡保护等其他的类似服务的存在。这些都是潜在的利润,而且个自有各自的特色,没有统一性。许多其他业务的诱因可能导致异常的发生,而且是不可重现的。这就要求我们要共同协作,一起讨论可能出现的各种对系统集成有影响的因素。
要以全球性的视角来看待问题
在不久的将来,一个全球性的不会停止的经济将会改变我们对计算的思考方式。物流和市场都完全被国际化了,于是一个大型的零售商在看到了佛罗里达的飓风的快速前进的脚步时可能希望货运能根据信号灯的指示改变货轮的航向,但是,信号灯是亚洲生产制造的,这就需要商业要具备一定的敏捷性。
涉及业务流程的问题包括以下内容:
A 如何把流程被设计为端到端的?
B 如何让用户克服为跟上IT而耗费大量时间的问题?
应用软件的一种新模式
在我们上述描述的各种情况中有一些基本要素是共同的,这些共同要素就是任务,而不是一份文档、表单或程序。一项任务指的是被描述定义的从开始到终止的处理过程,是下一步要完成的任务的前提。把一个定义好的一组任务串连在一起就得到了一个业务流程,也知道了该业务流程的活动操作序列及其主要功能。
事件总是异步的、难以预料的,例如客户的地址信息可能会经常改变,所以可以在电子商务站点上采用电子资金转帐EFT(Electronic Funds Transfer)的方式。一个范例就是事件驱动体系结构EDA(Event Driven Architecture),它可以在各种各样的报告中加入额外的业务控制。
对于系统至上的集成方法和人员分而治之的集成方法我们作个总结:系统至上的集成方法是以应用软件为主的,它令集成简单化,有确定性;标记好的任务通过特殊的来自各功能、个子规程或Web服务的返回代码来处理。而人员分而治之的集成方法是一个长期的任务过程,它使任务可以被重新设计、可以被延迟、修改甚至是忽略掉,任务声明的完成是由某些人员来裁定的。这就涉及到了很多细节方面的问题。
一直以来所面临的挑战
任何有经验的IT专家都明了集成不同的异构系统的超乎寻常的困难,这样的困难主要表现在以下2个方面:
A 要对付多种协议、多种数据格式、多种程序设计语言和体系架构、多种安全模式和从大型机到基于Web站点的客户/服务器交互方式。
B 处理各种各样的和突发的部门间和组织议事日程安排上的冲突。
上述困难令IT系统成为高度复杂的生态系统。而且,经常会有一个团体性的方法来驱动企业的计算。预期的成本可能要超支。这其中可以利用ROI、SOA有关的技术和方法来解决有关的问题。
流程本身也需要改进
对于上述我们分析的各种情况究竟该如何应对呢?应用软件的本质是考虑所有涉及其中的因素。编写文挡不该只被看作是应用软件本身的事,而应该把它视为是整体功能实现的一个组成部分。就象我们不应该把自己电脑中的桌面应用软件孤立看待一样,我们应该把它视为是实现整个业务流程功能或工作流的组成部分。
上个世纪90年代初期的研究表明PC的进步最终降低了消息发布的时间,提高了人类的劳动生产率。工作流和业务流程的引入使得编程方式有了很大变化。流程的构建和实例化在编程中都有所体现。
我们在提高业务流程、人力工作流和人员与计算机设备交互方面所做的计算已经取得了很大的进步。我们目前处在一个全新的软件程序类型阶段。不管怎么说,我们一直把计算机和网络看作是一套数字骨架,靠它来支撑我们的轰动,减轻让我们的工作负担,提高我们的业务价值的寿命。在价值和可利用工具之上的一个全新的编程和革新方案的基础上,产生出的新一代软件将是我们的计算机从打字机式和浏览器式的模式演变为不断向业务目标靠拢的不可缺少的工具。
5/30/2005
|