一个软件自动化过程中可能会设计到的几个概念:
业务模型建模
表单配置引擎
业务流程引擎
规则引擎
参数校验引擎
流程编排和服务编排
模板引擎
代码引擎
彼此之间的关系:
业务流程和业务数据建模可能是最基础也是最常见的两个设计工具;
一个业务流程的每个节点可能都会设计到具体的表单配置;
一个负责的业务节点也可能涉及到规则引擎;
每个业务节点可能也会涉及到参数校验和业务校验;
以一个业务流程中可能会涉及到流程流程编排,流程编排中又涉及到不同服务的系统又设计到服务编排;
所有的这些最终都要呈现再代码层模,又设计到代码生成引擎;代码生成引擎又依赖于代码模板引擎;
这里面需要的支持还有:
数据字典的建设:比如表单配置需要用到的数据源;
基础数据和组件的建设:用户,部门,角色,权限,功能等;
参数校验规则的完善:用户名,密码,地址,电话,mail,单据编码规则等;
业务规则的建设:唯一性校验,互斥规则,包含规则,上下级规则,状态扭转规则等;
举例:比如订单支付流程:
涉及到的数据模型有,商品,SKU,订单,支付记录,地址,购物车;
涉及到的流程是:选择商品加入购物车,计算价格,结算,选择地址,生成订单,支付;每一个环节都需要想应的表单,也都需要设计到具体的数据的读取,计算,改变和呈现;
中间也会触发积分规则,优惠券发放和使用规则,根据选择的商品触发不同的优惠策略;规则和规则也存在互斥和叠加使用等;
最后这些,需要通过流程编排进性实现,并在进一步基于服务编排进性实现;