返回首页

多层架构:子层和数据模型

本文描述了使用子层和数据模型层次结构的多层应用架构。考虑了单层/多层结构、数据流机制以及 Web 应用的示例。适用于中高级开发人员。

应用架构中的层层次结构:完整分解
Advertisement 728x90

分层应用架构:子层层次结构与数据模型

分层架构通过将功能划分为隔离的层来构建应用:门面层用于外部访问,逻辑层处理业务规则,持久化层负责数据存储。每层进一步细分为子层——门面、逻辑和数据访问子层,实现层间单向交互和模型间双向数据交换。

单层应用的核心组件

单层应用整合了三大关键功能组:

  • 分层功能:隔离的层,层与层、子层之间采用单向交互。
  • 横切功能:所有层可共享的机制,如日志记录或安全控制。
  • 数据流功能:数据传输操作,包括:

- 数据映射:在不同数据模型间转换。

Google AdInline article slot

- 数据绑定:将数据与用户界面链接。

- 数据序列化:通过数据传输通道与外部系统交换。

层间交互遵循严格层次:相邻层单向交换数据,数据模型间双向通信。应用通过应用输入接口与外部消费者(数据消费者/生产者)连接,通过应用输出接口与外部数据源(本地或远程)交互。

Google AdInline article slot

本地数据源包括文件、USB/COM/LPT端口。远程源涵盖数据库、FTP、LDAP、Web服务和消息代理。

层与子层结构

每层包含功能及其关联数据模型。子层包括:

  • 门面子层:外部API(公共方法)。
  • 逻辑子层:内部层逻辑。
  • 数据访问子层:访问外部源。

交互示例:

Google AdInline article slot
  • 门面层:UI事件处理器或API端点。
  • 逻辑层:协调业务逻辑(应用逻辑)。
  • 持久化层:数据访问对象(DAO)。

门面层的逻辑子层生成UI内容(如ASP.NET MVC中的视图模板)和验证器(如UniqueValueValidator通过数据访问子层查询数据库)。

逻辑层的逻辑子层实现领域逻辑,与持久化层交互获取参考数据或执行递归算法。

外部接口与应用边界

  • 应用上边界:通过输入接口(可视表单、服务器端套接字、定时器)通往外部消费者。
  • 应用下边界:通过输出接口(套接字、数据库驱动)通往数据源。

门面/逻辑层的数据访问:

  • 直接访问本地源。
  • 通过输出接口访问远程源。
  • 通过持久化层访问数据库。

持久化层专注于存储和管理持久化数据。

架构示例

结构图展示了在Web服务、报表查看器和ASP.NET MVC中的应用。

在报表查看器中:

  • 门面子层:包含报表查看组件的可视表单。
  • 逻辑子层:报表生成器,使用模板(报表模板)和数据访问子层的数据。
  • 数据访问子层:向持久化层查询报表数据。

多层架构扩展单层:每个层是一个分层应用,涵盖客户端-服务器、事件驱动、管道与过滤器、SOA和微服务。

关键要点

  • 分层(门面、逻辑、持久化)确保隔离性和可扩展性。
  • 子层(门面、逻辑、数据访问)标准化API和逻辑。
  • 层间单向交互最小化依赖循环。
  • 数据流(映射、绑定、序列化)简化数据传输。
  • 明确的应用边界(输入/输出接口)分离内部与外部上下文。

— Editorial Team

Advertisement 728x90

继续阅读