BPaaS是什么?
BPaaS 的核心在于抽离共性通用业务流程,同时对于业务逻辑中个性化差异的部分,以 SPI(Service Provider Interface,服务提供者接口)的方式提供扩展,从而实现业务流程的可扩展性。这意味着 BPaaS 旨在打破传统软件开发中业务流程的固有模式,使企业能够根据自身业务的独特需求,灵活地调整和扩展业务流程。在这种模式下,中台负责打造平台基础,为整个业务流程提供底层支撑和通用能力;前台则专注于能力的具体实现,能够进行自助研发。
BPaaS架构
1、六边形分层架构与微内核
BPaaS 采用六边形分层架构,以微内核为核心。微内核负责提供系统最基本、最核心的功能,如同人体的心脏,为整个系统提供动力支持。围绕微内核,通过插件的方式连接各种扩展功能,如订单信息处理、计佣规则计算等。这种架构模式使得系统具有高度的灵活性和可扩展性,当业务需求发生变化时,只需添加或修改相应的插件,而无需对核心系统进行大规模改动。
2、领域模型构建
BPaaS 通过围绕业务概念构建领域模型来控制业务的复杂性。以 DDD(Domain - Driven Design,领域驱动设计)为方法论,通过界限上下文划分边界,拆分问题域。例如,在电商场景中,可以将订单处理、库存管理、支付等不同业务领域进行清晰划分,每个领域都有自己独立的领域模型和业务逻辑,这样可以有效地降低整个系统的复杂性,使开发人员能够更加专注于特定领域的业务逻辑实现。
3、组件平台与服务
BPaaS 包含组件平台,它提供了各种基础组件和服务,如 JOB 任务处理服务。这些组件和服务可以被前台和中台复用,进一步提高了研发效率。同时,通过统一的接口和规范,不同组件之间能够实现良好的交互和协作。
架构设计原则
1、低层向高层依赖
在 BPaaS 的架构中,遵循低层向高层依赖的原则。这意味着底层的基础设施和技术细节依赖于高层的业务逻辑和抽象。例如,数据库操作(属于低层技术细节)依赖于业务层对数据的需求和处理逻辑(高层业务逻辑)。这种依赖关系有助于将业务逻辑与技术实现分离,提高系统的可维护性和可扩展性。
2、技术细节和业务策略分离
将技术细节和业务策略进行清晰的分离是 BPaaS 架构的重要原则之一。技术细节,如数据库连接、缓存使用等,与业务策略,如订单处理规则、促销活动逻辑等,分别进行管理和实现。这样,当业务策略发生变化时,不会影响到技术底层的实现,反之亦然,降低了系统的耦合度。
3、细节依赖抽象
细节依赖抽象原则要求在架构设计中,具体的实现细节依赖于抽象的接口和模型。例如,具体的数据库操作类(实现细节)依赖于定义好的数据库访问接口(抽象)。通过这种方式,当需要更换数据库类型或调整数据库操作方式时,只需修改实现类,而不会影响到整个业务逻辑层,提高了系统的灵活性和可维护性。
4、分层解决复杂模块依赖
BPaaS 通过分层架构来解决复杂模块之间的依赖关系。不同层次负责不同的功能,如基础设施层负责底层技术支持,领域层专注于业务逻辑实现,应用层处理与用户的交互等。各层之间通过清晰的接口进行通信,使得模块之间的依赖关系更加清晰,易于管理和维护。
5、模块化封装复杂性
将系统划分为多个模块,每个模块封装特定的功能和复杂性。例如,订单模块负责处理与订单相关的所有业务逻辑,包括订单创建、修改、查询等。通过模块化封装,使得系统的结构更加清晰,开发和维护更加方便,同时也提高了模块的复用性。
6、各模块定义统一规范
为了确保各个模块之间能够有效地协作和交互,BPaaS 要求各模块定义统一规范。这包括接口规范、数据格式规范、错误处理规范等。统一的规范可以减少模块之间的兼容性问题,提高系统的整体稳定性和可维护性。