过程管理,一个基础模式?
系列中1提到,事务管理,实质是一个过程管理。
包括事务管理,过程管理还出现在多个常见的场景中,比如 -
- 事务管理 - 负责管理各个相关联的操作,对他们的“状况“做出决策应对。
- 服务编排 - 负责将小粒度和职责单一的服务组合为复杂的业务过程。
- 协调异步 - 负责异步操作之间的步调协调工作。
- 交互串联 - 负责将多个业务步骤包装为一个用户友好的交互过程。
这几个场景都是一个管理者在对一个过程进行管理。但在不同场景中管理者的职责不同 -
- 事务管理 - 强调操作状况的可见、可控、可稽核。
- 服务编排 - 强调服务间的依赖管理,服务结果的传递和收集。
- 协调异步 - 强调操作间的步调协同,与同步的转化,处理等待,处理中间状态。
- 交互串联 - 强调与用户的交互,比如处理中间状态的表现,过程中用户的干预等。
根据系列中的研究,这些个过程管理都可以考虑实现为分层结构的状态机模型。
这里有一个挑战:实际情况中一个管理组件很有可能兼职,很可能需要同时完成上述职责中的两三项。这种情况下,处理具体业务逻辑的最上层,就需要从各个职责各自的角度,对操作和决策进行描述,然后,如果能做到的话,把它们融合起来。
(也许还有下一篇,研究下如何融合各个职责的操作和决策)