速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

《流程的永恒之道》(序):模式是个什么东东?伟大的 Alexander 大师

  • 2014-04-28
  • 本文字数:3402 字

    阅读完需:约 11 分钟

“道可道,非常道;名可名,非常名。”这是我们老祖宗老子《道德经》中开篇的两句话,意思是:可以用语言描述的道,不是真正的道;可以用名字来命名的道,这个名字也不能形容妥当。其终极思想是,由于人的认识的局限性,我们所说的道,都只是真正道的一部分,无法窥见道的全貌。当然老子后来又在《清静经》中说:“吾不知其名,强名曰‘道’”。也就是说:“这个‘道’字虽然不肖,但我(老子)还是先把这个终极真理叫作‘道’好了。”

“道”,可作道理、途径、真理、方向、方法等解释。按照老子的说法,世界万物都有其本质和终极真理,但是“吾不知其名,强名曰‘道’”。在现代,人们已经把“道”作为事物的本质了。

C. 亚历山大 [1] 在其著作《建筑的永恒之道》一书中说:“建筑或城市只有踏上了永恒之道,才会生机勃勃。”亚历山大在书中描述了 253 个建筑模式,并首次提出了“模式语言”一说,算是“模式语言说”的开山鼻祖了。他曾领衔撰写了 5 卷关于建筑设计的丛书 [2],其中前两本《建筑的永恒之道》和《建筑模式语言》最为知名。

很多的技术人员和非技术人员都听过模式,例如管理模式、思维模式、商业模式、建筑模式、设计模式等等,对它有着无限的迷恋。很多行业与领域里也都有模式一说。在软件领域,大名鼎鼎的面向对象的 23 种设计模式更是无人不知,无人不晓。那么,到底什么是模式呢?

模式(pattern)是解决某一类问题的方法论。把解决某类问题的方法总结归纳到理论高度,就是模式。它是一种指导,是一种解决某类问题的最佳实践。借助于模式,我们可以利用前人的经验和智慧,做出优良的设计方案,达到事半功倍的效果。模式语言则是模式对应于那些使建筑美妙的深刻观察的模式集合,是对如何建造的认识的总和。建筑的永恒之道正在于建筑模式,在于我们对建筑的认知达到一致,即拥有共同的模式语言。

一点题外话:

按照《建筑的永恒之道》的说法,在古代,农民都是自己造房子,他们自己都有模式的直觉;在工业化时代,人们以为自己不能设计,必须倚靠设计师,而设计师也耽迷于流行的模式而设计出没有活力的东西。所以我们缺少的是模式之道,或者说不知道怎样鉴别什么是有“活力”的模式。如今的软件领域何尝不是如此?我们就见过很多牛逼哄哄、所谓的架构师和设计师,他们讲起模式来一套一套的,但是设计出的软件架构奇烂无比,有的甚至不会将架构转换为框架,实在是比古代的农民差远了。我们认为,做软件的同仁们,如果你想真正地成为一个优秀的架构师或设计师,《建筑的永恒之道》这本书是必读的。它告诉了你什么是道,模式之道。这个道才是灵魂,才是核心。这个道是使之“有活力”,而不是生搬硬套。如果有时间再读读第二本《建筑模式语言》。最后还有个小提醒,优秀的架构师、设计师不是读了几本大师的著作就能成就的,他们也是在 “理论—实践—总结—再理论—再实践—再总结”这样的长时间循环中磨练出来的,而且我们认为这个时间至少要 7-8 年以上。

在《建筑模式语言》一书中,C. 亚历山大将模式分为三个部分:

  • 首先是此类问题所在的上下文(Context),即当前模式所面对问题的周围环境和状况,也就是说,模式在什么状况下发生作用;
  • 其次是动机(Motivation),即此模式的目的或预期的目标是什么;
  • 最后是解决方案(Solution),即为达到预期目标或解决此类问题所采用解决方案的核心。

通过上述描述,我们可以得出结论,模式实质上就是从不断重复出现的事件中发现和抽象出的规律,是解决问题所形成经验的高度归纳总结。只要是一再重复出现的事物,就可能存在某种模式。而当一个领域逐渐成熟时,自然而然就会出现这个领域的模式。借助亚历山大的模式理论,GOF 在软件领域提出了 23 种设计模式。同样,在流程领域也自然而然地出现了“工作流模式”。

本书的名字《流程的永恒之道》套用了亚历山大的经典名言:“流程只有踏上了永恒之道,才会生机勃勃。”那么流程的永恒之道是什么呢?在本书中,我们将会依次为读者讲解三个永恒之道。本章首先讲述第一个永恒之道,即流程万变的永恒之道——工作流模式

工作流模式作为流程的灵魂,是时间无关的(timeless),它与人、文化相关,不会随着时间和新技术的发展而落后,因此可以称之为永恒的。道德经又曰:“道生一,一生二,二生三,三生万物。”把这句话套用在工作流模式上非常准确,工作流模式可以生一,生二,……,最后生万物,演化出无数个不同模式组成的流程。可以说,没有工作流模式就没有流程,工作流模式是流程万变的永恒之道。接下来,我们就围绕工作流模式展开,看看流程万变的永恒之道——工作流模式是怎样来生一、生万物的。

工作流模式的发展历程及分类

在上一节,我们了解了模式,根据模式的通用定义,我们在此给出工作流模式的定义:工作流模式是解决流程类问题的方法论,是解决流程问题的最佳实践。工作流领域同样存在着大量的不断重复出现的事件,从这些事件中发现和抽象出规律,并找到解决这些重复问题的解决方案,对这些问题及其解决方案进行归纳总结,就形成了各种各样的工作流模式。

1999 年,由荷兰埃因霍温大学的 Wil van der Aalst 教授 [3] 与昆士兰大学的 Arthur ter Hofstede 教授联合创立了 Workflow Patterns Initiative,并提出了工作流模式的概念。他们的研究报告于 2000 年在以色列埃拉特举行的 CoopIS 大会上正式发布 [4]。 两位教授一共总结了 21 种工作流模式 [5](其实是指 21 种控制模式)。2004 年,Nick Russell 教授加入了 Workflow Patterns Initiative,并扩展提出了工作流数据模式和资源模式。2005 年扩展出了异常模式,2006 年工作流控制模式被扩展到了 43 种模式 [6]。经过这样的发展,工作流模式被分为了控制模式、资源模式、数据模式、异常模式四大类。

接下来,我们以 2000 年初江南市房管局的“实现房改购房审批流程的自动化,并可以灵活变化”这个业务需求为例,描述工作流模式在具体应用中的实现过程。图 3.1 给出了房改购房审批流程的组成结构。

图 1 房改购房审批流程

从图中可以看出,整个房改购房审批流程由“受理”、“初审”、“公告”、“复审”、“查封核查”、“制证”、“收费”、“发证”等多个环节组成。该流程有明确的作战目标,就是给购房改房的申请人发放“购房证”,其中的每个环节都可以看作是一个作战活动。

这些作战活动的组成是有一定规则的,例如串行、分支、并发等规则,这些规则还有可能经常变化。对于这些规则,在工作流技术中是由“控制模式”来负责的。控制模式负责控制作战活动的组成与流转。

在接下来的两篇文章将分别讲述工作流控制模式中的串行、并发分裂、并发汇聚、单选分裂与单选汇聚几个模式。本系列文章总共 8 篇,工作流模式 3 篇文章,BPM 的生命周期 3 篇文章,流程治理方面 2 篇文章,具体如下:

工作流模式相关:

《流程的永恒之道》(序):模式是个什么东东?伟大的 Alexander 大师;

《流程的永恒之道》(一):控制模式之串行、并发分裂及并发汇聚模式;

《流程的永恒之道》(二):控制模式之单选分裂与单选汇聚模式;

BPM**** 的生命周期相关:

《流程的永恒之道》(三):BPM 的生命周期之设计四步曲;

《流程的永恒之道》(四):BPM 的生命周期之执行阶段;

《流程的永恒之道》(五):BPM 的生命周期之优化阶段;

流程治理相关:

《流程的永恒之道》(六):战略与 BPM 之间鸿沟的出现与分析;

《流程的永恒之道》(七):战略与 BPM 之间鸿沟的填补—引入 BPM 治理;


[1] C. 亚历山大是一位实践经验丰富的建筑师和营造师,加州大学伯克利分校建筑学教授,环境结构中心的负责人,曾获得美国建筑师学会颁发的最高勋章。
[2] 《建筑的永恒之道》、《建筑模式语言》、《俄勒冈实验》,《城市设计新理论》,《住宅制造》5 卷丛书。
[3] Wil van der Aalst 教授不仅是 Workflow Patterns Initiative 组织的创建者,还与 Kees van Hee 教授合著了 _WorkFlow Management-Models,Methods,and Systems_(2002 年,麻省理工学院出版社)一书。其中文版《工作流管理 - 模型、方法和系统》由清华大学出版社于 2004 年出版。
[4] http://coopis.sjtu.edu.cn:8080/cisg/。
[5] http://is.ieis.tue.nl/research/patterns/patterns.htm。
[6] 参见本书附录 I,工作流控制模式


感谢张龙对本文的审校, 感谢张龙对本文的策划。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-04-28 23:154437

评论

发布
暂无评论
发现更多内容

矢量图形设计软件Illustrator 2024 for Mac中文激活版

Mac相关知识分享

mysql磁盘碎片整理

京东科技开发者

解析阿里巴巴中国站商品详情API返回值的更新与变化

技术冰糖葫芦

API Explorer API 测试 pinduoduo API

【2024最新】4000字搞懂sora!一张脑图贯穿!

EquatorCoco

人工智能 AI ChatGPT sora

ChatGPT访问难?ChatGLM+花生壳打造可远程访问的平替方案

贝锐

内网穿透 ChatGPT AIGCC

智能引领,服务升级:哈银消费金融以科技力量重塑金融服务体验

Geek_2d6073

TapData 信创数据源 | 国产信创数据库 Vastbase 数据同步指南,加速国产化进程,推进自主创新建设

tapdata

数据同步

【我在京东做产研】校招 2 年,个人角度(成长)回顾 - 行且知

京东科技开发者

DDD-7-子域划分

南山

领域驱动设计 DDD 子域

可以在mac电脑玩Red Alert红色警戒:红警 for Mac合集

你的猪会飞吗

红色警戒 mac软件下载 Mac游戏下载

DDD-10-值对象设计

南山

领域驱动设计 DDD 值对象

DDD-11-领域服务

南山

领域驱动设计 DDD 领域服务

云端集中管控边缘服务:利用 EMQX ECP 在 K8s 上快速部署 NeuronEX

EMQ映云科技

NeuronEX EMQX ECP eqmx

日常工作中需要避免的9个React坏习惯

不在线第一只蜗牛

JavaScript 前端 React

京东商品详情数据接口解析(实时数据含测试及示例)

tbapi

京东API接口 京东商品详情接口 京东商品数据采集

DDD-9-聚合划分

南山

领域驱动设计 DDD 聚合根

DDD-12-领域事件

南山

领域驱动设计 DDD 领域事件

专业视频和音频编码工具Adobe Media Encoder 2024 for Mac

Mac相关知识分享

mac强大的安卓文件传输工具:Android File Transfer for mac 版

你的猪会飞吗

Mac软件 Android File Transfer mac破解软件下载

MySQL中为什么要使用索引合并(Index Merge)?

不在线第一只蜗牛

MySQL 数据库 索引

openGauss- X-Tuner: 参数调优与诊断

Gauss松鼠会

数据库 opengauss 数据库·

黑神话悟空-快速部署

京东科技开发者

SD-WAN组网对比传统组网有哪些优点?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

浅析JVM invokedynamic指令和Java Lambda语法|得物技术

得物技术

Java JVM 企业号2024年8月PK榜

探索贪心算法:解决优化问题的高效策略

快乐非自愿限量之名

算法

从零到一,了解京东商品详情API返回值

技术冰糖葫芦

API Explorer API 测试 pinduoduo API

DDD-6-限界上下文

南山

领域驱动设计 DDD 微服务划分 限界上下文

车联网时代,车企掌控车载小程序生态最关键

Geek_2305a8

TikTok直播网络加速方法

Ogcloud

TikTok tiktok运营 tiktok直播 tiktok直播专线 tiktok矩阵

淘宝 API 接口的实际应用案例

Noah

DDD-8-实体设计

南山

《流程的永恒之道》(序):模式是个什么东东?伟大的Alexander大师_语言 & 开发_辛鹏_InfoQ精选文章