企业 SOA 设计(2)–组件化产品开发平台

简介:

平台整体结构

在产品开发过程中,为了达到业务级别的较大粒度重用,我们需要把纵向把业务进行拆分,以业务组件的形式进行开发,并最终把多个开发完成的业务组件进行组合,形成最终的软件产品。

按照组件化开发的产品,是基于一个公共的产品开发平台来建立的。由平台来提供所有的底层设施。平台包括技术平台和业务平台两个层面。在技术层面上,平台提供了一系列的类库、框架、组件、工具,以及为业务组件化提供相应的技术支撑。在业务层面上,业务平台中积累了大量的封装完善的业务组件,以及一些常用的业务控件,以供开发新产品时进行选配。同时,平台还为整个软件过程提供一系列的其它支持,例如工具、设计器、管理界面等。

下图,是平台的整体结构图:

Untitled

图中罗列了大部分的关键组成部分,细节本篇不述。

 

组件集成平台

对于一个独立的业务,我们可以将其封装为一个独立的业务组件,并最终放到组件库中。业务组件之间,则以服务、事件两种形式进行交互。要支持这种模式的交互,技术平台还需要提供几个技术框架:插件平台、服务容器、事件总线。

下图是组件集成架构:

Untitl2ed

  • 技术平台提供事件总线、轻量级服务总线。
  • 组件内部以领域驱动的模式开发,以领域实体框架作为基础框架。组件内、组件间,也都是面向领域实体来进行交互。
  • 组件向外部的其它组件提供组件事件、组件服务。外部组件也只能直接调用组件提供的服务,或者监听组件的事件。
  • 组件还提供了一些可重用的 UI、一些可直接使用的分布式服务。
  • 整个应用系统在组合多个业务组件后,再开发一些特定的功能、UI 就可以完成一个完整的系统了。

 

产品构成

下图是一个完整产品的组件构成图:

image

由于我们的产品开发平台必须要支持 721 客户化定制,所以同一个业务组件还对应不同的业务通用级别进行划分:Organization Common 表示组织架构组件最通用的部分,Org Part1 表示组织架构组件的可选包。而 Customiztion 则可以对引用的业务组件做深入的定制和扩展,而不需修改引用组件的代码。

可以看到,对于整个产品来说,在引用了业务组件库中的一些业务组件后,就可以组成了产品的基础功能。Customer App Component 中是应用系统在组件的功能基础上需要再做的工作:完成产品的额外功能,并通过平台接口为一些组件做相关定制。

 

组件内部架构

对于单个的业务组件,其内部的架构依然采用领域驱动的分层架构:

Single Biz Component

图虽大,但并不复杂,就是领域驱动的经典分层:Distribute(DTO 接口层)、Application(应用层/领域逻辑层)、Repository(仓库)、Domain(领域实体)。

重点在于 Domain 包,它不但包括领域实体,还包括了组件事件、组件服务接口,这些都是领域的核心。

位于底层的技术平台,提供一系列支持:IOC/AOP、属性扩展框架、领域实体框架、721定制化框架、数据库生成框架等……

 

结尾

其实,组件化架构设计中,最为复杂是分析出一个封装完好的组件,所要面向的使用者是哪些,这些使用者分别对组件有哪些需求,而这个架构如何满足这一系列需求。例如,我们在设计过程中,对这些方面进行了分析:组件自身的发展需求、组件中各组成部分的可扩展性、组件间的交互需求、系统集成需求、项目组定制化需求、系统外交互需求、易用性。

 

欢迎感兴趣的朋友交流。

目录
相关文章
|
Java API 数据库
基于 SOA 的组件化业务基础平台
原文:基于 SOA 的组件化业务基础平台 前言 业务基础平台是业务逻辑应用和基础架构平台之间的一个中间层,解决 “应用软件的业务描述和操作系统平台、软件基础架构平台之间的交互与管理问题”。
2000 0
|
5月前
|
SQL 缓存 数据可视化
如何设计一个低代码平台?
如何设计一个低代码平台?
265 0
|
5月前
|
人工智能 Kubernetes 数据可视化
低代码平台:构建应用程序的“银弹”
低代码平台:构建应用程序的“银弹”
|
9月前
|
自然语言处理 数据可视化 安全
业务开发“银弹” ——低代码开发平台
业务开发“银弹” ——低代码开发平台
145 0
|
JSON 运维 Cloud Native
BizWorks助力企业应用的高效开发与复用
BizWorks作为企业级云原生应用数字工作台,能很好地支撑企业数字中台建设、云原生应用开发、企业资产运营管理等场景。本文不会全面介绍BizWorks平台的能力,而是着重介绍BizWorks在实现应用高效开发与复用上提供的产品能力。
459 0
|
运维 Kubernetes 前端开发
业务中台之上的低代码应用开发平台
中台低代码平台帮助开发者掌握全栈能力,促进开发者提高工作效率,基于企业数字化业务能力组件,可以实现业务应用的敏捷按需装配,成为企业组装式应用创新平台,进而实现企业业务能力的持续优化和复用,促进从组织到企业甚至行业的业务能力集约与创新。
379 0
|
SQL 前端开发 数据库
推荐一个支持低代码开发的OA开源系统
一个开源免费的微型办公自动化系统,除了有考勤、排班等基础功能外;公司所有的日常工作流程,比如请假申请、用车申请、会议申请等等,都可以通过配置来完成。可以满足公司的不同业务流程,非常方便、扩展性非常好。
556 0
推荐一个支持低代码开发的OA开源系统
|
数据可视化 小程序 Java
云捷配低代码平台(BPM流程板块)——将“强大+易用”进行到底
云捷配低代码平台的BPM流程板块,秉承云捷配一贯的“强大+易用”产品理念,一方面集成主流Flowable(Activiti),结合平台自身的特色功能模块,打造业内最强大的流程设计器,另一方面,对流程引擎进行了大量的改造和细节化处理,以达到通俗易懂、好用易用的用户使用体验。
470 1
云捷配低代码平台(BPM流程板块)——将“强大+易用”进行到底
|
监控 安全 网络安全
企业上云基础框架设计
在持续了多年的上云浪潮中,许多企业享受到了云计算带来的红利,也在云计算时代逐渐成长,业务与体量都得到了飞速的发展。然而随着企业的发展,企业所面临的问题也在不断产生着变化,本文将着重讨论一下如何更好的应对企业在阿里云上多业务多账号的统筹管理问题。
420 0
企业上云基础框架设计
|
开发框架 数据可视化 BI
低代码快速开发平台将是未来软件开发的主流模式
如果软件开发一直处于手工阶段,大家都从零开始开发,岂不是浪费?低代码开发的主要想法,就是将软件的技术门槛降下来,同时将大家重复的工作消除掉,提高开发效率。低代码快速开发平台是未来软件开发的主流模式,美国有数据预测,到2021年75%的软件应用都将在低代码开发平台中完成,到2025免这个数据将会变成90%。
低代码快速开发平台将是未来软件开发的主流模式