2025技术预测|AI研究与应用|小红书、华为仓颉的AI实践 了解详情
写点什么

《流程的永恒之道》(序):模式是个什么东东?伟大的 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:154372

评论

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

如何给application.yml文件的敏感信息加密?

java易二三

Java 编程 程序员 计算机 科技

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(中)

极狐GitLab

git gitlab conan Git-Repo 多仓管理

【实践篇】DDD脚手架及编码规范 | 京东云技术团队

京东科技开发者

DDD 软件架构 脚手架 企业号 8 月 PK 榜 DDD脚手架

Jvm专讲之内存结构

java易二三

Java 编程 程序员 JVM 计算机

How to choose WiFi moudle? QCA9880+QCA9882-802.11ac WiFi seamless connection-2.4G&5G

wifi6-yiyi

5G wifi 802.11ac 2.4g

生成式AI技术的应用与发展

百度开发者中心

自然语言处理 #人工智能 ChatGPT 文心一言

极狐GitLab 价值流管理之「总时间图」使用指南

极狐GitLab

DevOps gitlab 软件研发 价值流 时间图表

制造执行系统(MES)在家具行业中的应用

万界星空科技

开源 MES系统 智能家居

DR531|QCA9531 Wi-Fi routerboard 2X2 802.11n 2.4G MIMO

wallyslilly

为什么那么多人喜欢用云桌面

青椒云云电脑

桌面云 云桌面

生成式AI革新传媒互联网行业

百度开发者中心

媒体 传媒 #人工智能 ChatGPT 文心一言

中国图数据库,领导者!

华为云开发者联盟

人工智能 华为云 科技 华为云开发者联盟 企业号 8 月 PK 榜

【干货】华为云图数据库GES技术演进

华为云开发者联盟

人工智能 华为云 图数据库 华为云开发者联盟 企业号 8 月 PK 榜

对线面试官 - MQ经典面试题之高可用性及幂等性

派大星

MQ Java 面试题

微短剧赛道风口下的一站式点播解决方案

阿里云视频云

云计算 视频云 微短剧

生成式AI:改变未来的创新力量

百度开发者中心

#人工智能 ChatGPT 生成式AI 文心一言

再升级!PP-OCRv4多场景平均精度提升5%!

飞桨PaddlePaddle

人工智能 paddle OCR 百度飞桨

SpringBoot中如何对数据访问层进行单元测试?

java易二三

Java 数据库 编程 程序员 计算机

蓝易云:如何在 Alpine Linux 上启用或禁用防火墙?

百度搜索:蓝易云

云计算 Linux 运维 iptables Alpine

度加剪辑App的MMKV应用优化实践

百度Geek说

性能优化 移动开发 企业号 8 月 PK 榜 IO优化

蓝易云:SEO优化对香港服务器的配置有什么要求?

百度搜索:蓝易云

云计算 Linux SEO 云服务器 ECS

生成式AI:引领未来文案创作新潮流

百度开发者中心

#人工智能 生成式AI 文心一言

K8S集群中使用JDOS KMS服务对敏感数据安全加密 | 京东云技术团队

京东科技开发者

数据安全 数据加密 k8s集群 企业号 8 月 PK 榜 KMS

Elasticsearch Mapping类型修改 | 京东云技术团队

京东科技开发者

数据库 elasticsearch 企业号 8 月 PK 榜 Mapping

阿里云机器学习PAI全新推出特征平台 (Feature Store),助力AI建模场景特征数据高效利用

阿里云大数据AI技术

快手Java一面11问(附参考答案)

JavaGuide

Java spring 面试 springboot Java web

浏览器缓存清理软件Cookie mac激活版

mac

Cookie 苹果mac Windows软件 隐私保护软件

uniapp中解析markdown支持网页和小程序

南城FE

JavaScript 小程序 前端 markdown

AI教学赋能计划(大模型特辑)2023秋季学期启动申请!

飞桨PaddlePaddle

人工智能 百度飞桨 高校 复合型人才 产教融合

月活近千万,连续365天无故障:货拉拉怎么做稳定性指标度量?

TakinTalks稳定性社区

设计模式-适配器模式

java易二三

Java 程序员 计算机

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