企业范围级的进程经常会进化--进程与进程之间同样会进行交互
 
业务进程
 
今天的IT系统大部分都是记录保存(record-keeping)的系统。在过去的很长时间里(大概有30年吧),IT界已经获取了接近以千兆为单位的数据,而这些数据都保存在各自不同的应用和很多很多不同的数据库(通常都是私有财产)中。今天IT界所广泛使用的方法,技术以及注意力都继续关注在数据的获取和存取上。
 
业务的定义取决于动态的进程,这些进程会随着业务行为而不断的扩大,收缩和改变。因为进程很难去正式化和自动化,所以长久以来它们都是IT界的二等公民。在大多数的IT系统中,只有最基本的,起策划作用的进程才会合并在一起。相反的,各种各样的业务进程却是管理所关注的焦点。
 
在以数据为中心的IT范例中,业务人员不可能获取所需的信息来进行价格竞争,质量竞争,速度竞争和服务竞争。他们需要的是可执行的信息和知识。那些想提高它们的效率和竞争能力的公司必须创造并控制进程,而不是数据或者应用,因为进程才是基于计算机的自动化和支持的最基本单元。它们必须得把焦点从记录转移到进程上面来,进程处理必须代替数据处理。
 
一个业务进程是一整套的活动,这套活动为了实现某个目标而按先后次序开展的。每一步都包含着相关的行为(这些行为是在这一步中开展的)和业务规则(这些规则定义了如何过渡到下一步)。
 
根据Workflow的管理联合术语学和术语表(Workflow Management Coalition Terminology and Glossary),一个业务进程其实:
  • 往往是和目的和业务关系关联在一起的,例如一个保险索赔进程。
  • 往往定义了每个进程实例(例如索赔的提出)的触发条件(初始化),也定义了该进程结束的输出。
  • 可能包含参与者之间正式或者相对非正式的交互,其交互持续时间可以变化非常大。
  • 进程可以在一个更高级的业务进程中作为子进程而使用。
企业范围级的进程经常会进化--进程与进程之间同样会进行交互。它们改变的速率往往快到令应用和开发人员无法跟的上。唯一可行的解决办法就是:
  • 使进程外部化,把它们从应用中抽离出来,并提供一些工具来使进程的设计,实现和改变简单化。
  • 以服务的形式来设计应用,让它们在端到端的进程中起一个重要作用,并让它们可以存取进程所需的外部数据。
通过这种办法,业务进程就能够在进程之间进行交互,并能够协调好服务与服务之间的行为,而这些行为是与进程的全局目标有着必然的关系的。
 
如果用尘归尘,土归土的处理方式(case by case,application by application)来解决这些进程相关的问题,并不比纯粹创建更多单独的自动化和记录保存的做法做多多少活。解决办法其实就是把远景转移到端到端的进程,并使其成为EA的核心,就像下图所示。
结合经验浅谈SOA的剖析(三)_SOA
 
转变到这个架构上需要对应用的重新思考,从所有的实体构成到服务,而这些服务是被业务进程用以整合和协奏来支持其所需的功能的。
 
下转“结合经验浅谈SOA的剖析(四)”