前言

应用架构或者系统架构本身都有很多相似之处,有太多的模式可以选择,有的可以“以小见大”,有的也可以“化大为小”,没有绝对正确的选择,只有适合需要的选择。我们在创建应用的时候最常见的应用架构就是分层架构了,最简单的就是按照MVC职责划分层次,又或者是按照更精细的角色和职责划分层次。还有一些常见的架构如:六边形架构、洋葱架构、干净架构等,想必很多人对这些架构多多少少都有涉猎,但更多的是纸上谈兵,真正在业务中使用的、并遵循其原则的很少。

在本项目中我们选择了COLA 4.0作为应用架构的指导原则,来展示一下落地实践的成果。

COLA 4.0应用架构简要介绍

COLA 4.0应用架构是什么?

COLA架构,其核心职责就是定义良好的应用结构,提供最佳实践。COLA还在不断的演进,现在是4.0,相信以后会更加完善。COLA4.0可以用一句话来形容:“集百家之所长,融百家之所思”。

更多参考:https://blog.csdn.net/significantfrank/article/details/110934799

如何创建COLA 4.0应用架构?

使用阿里云的应用生成器去生成一个COLA应用。

COLA 4.0应用架构典型结构图

分层介绍

1)适配层(Adapter Layer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统B/S系统而言,adapter就相当于MVC中的controller;

2)应用层(Application Layer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层;

3)领域层(Domain Layer):主要是封装了核心业务逻辑,并通过【领域服务(Domain Service)】和【领域对象(Domain Entity)】的方法对【App层】提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;

4)基础实施层(Infrastructure Layer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的App层和Domain层使用。

 

CSB应用集成平台使用COLA 4.0实践

简要介绍

CSB是云服务总线(Cloud Service Bus)的简称,提供对内外系统的【应用集成】和辅助内部系统的【能力开放】。CSB整体结构见下图“应用架构-整体”。

开放平台功能:ISV管理、应用授权、签名验证、接口限流、监控日志等

网关平台功能:路由配置、网关配置、安全设置、预警设置、监控统计、网关监控等

应用集成平台功能:应用管理、服务申请/订阅、服务接入、服务发布、服务管理、服务编排等

以下仅介绍COLA 4.0应用架构在CSB应用集成平台的应用实践

业务架构

功能视图


 

功能结构图

能力视图

应用架构-整体

CSB集成平台应用COLA 4.0结构图

CSB集成平台应用COLA 4.0代码结构图

 

 

 

 

 

 

 

GitHub 加速计划 / col / COLA
11.68 K
3.04 K
下载
🥤 COLA: Clean Object-oriented & Layered Architecture
最近提交(Master分支:2 个月前 )
bda50471 - 4 个月前
65e9e39d bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.13.0 (#496) bump org.apache.maven.plugins:maven-surefire-plugin from 3.1.2 to 3.2.5 (#497) bump org.springframework.boot:spring-boot-dependencies from 3.1.0 to 3.3.0.(#498) bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.7.0 (#499) bump commons-cli:commons-cli from 1.5.0 to 1.8.0 (#500) bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.12 (#501) bump org.apache.maven.plugins:maven-source-plugin from 3.2.1 to 3.3.1 (#502) bump org.wiremock:wiremock-standalone from 3.0.1 to 3.0.3 (#503) 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐