应用架构图

简介: 技术架构是将业务需求转化为技术实现的关键过程,涵盖分层设计、技术选型与系统集成。本文详解单体与分布式架构,包括展现层、业务层、数据层及基础层的设计原则,并阐述应用间及外部系统的调用关系与边界划分。

在上一节有了业务架构的基础之上,当我们需要落地具体的技术方案时,此时就需要技术人员开始考虑技术架构了。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。

基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。由于应用架构体系是分层的,那么对应的技术架构体系自然也是分层的。大的分层有微服务架构分层模型,小的则是单个应用的技术分层框架。大的技术体系考虑清楚后,剩下问题就是根据实际业务考虑选择具体的技术点。各个技术点的分析、方案选择,最终形成关键技术清单,关键技术清单应考虑架构本身的分层逻辑,最终形成一个完整的技术架构图。

简而言之,技术架构试讲产品需求转变为技术实现的过程。

单体应用架构

单体应用架构一般是比较传统的分为4层:数据层(Data Layer)、应用逻辑层(Business Layer)、表现层(Presentation Layer)和基础通用层(Common Layer)。

展现层

展现层是整个应用面向用户的入口,用户通过展现层实现与系统的交互。展现层为用户提供系统功能的操作、系统数据的展现。展现层按照面向的用户类型提供不同的交互服务。例如在业务场景中,用户有实操层用户、管理层用户、决策层用户。针对不同层级的用户,系统所提供的功能是不相同:

  • 面向实操层用户,提供的是对系统的操作功能,满足业务日常运营。往往更多的是执行具体操作。
  • 面向管理层用户,满足管理者的日常管理需求,通常提供经营数据、日常管理数据、团队业务数据等等。通过数据分析,改善日常运营的流程。
  • 面向决策层用户,这一层的用户不需要太细的数据,为其提供企业的经营诊断数据和报告,辅助决策支持。

业务层

业务层是应用为解决业务需求,按照产品架构中的功能模块进行细化。业务层是对将产品层从粗到细的分解过程。这个过程是对业务的细化过程,把项目要交付的模块细分到最基本的单元。最基本单元是实现日常业务操作的最细粒度的功能点。由此,我们能够得到实现业务逻辑的全功能结构。

数据层

数据层按照应用的数据模型分别进行存储。这里的存储介质包含关系型数据库、NoSQL、分布式文件系统。

基础层

通用基础层是为系统提供通用能力的中间件,比如流程引擎、消息中间件、缓存、搜索引擎等等。这些中间件和业务是无相关性的,提供的是通用的基础技术能力。

基于上述分析,我们可以得到一个如下单体应用的技术架构:

分布式应用架构

分布式应用架构图实质是产品内部所有应用在分布式环境下的调用关系图。各应用间通过服务的形式相互调用,这是典型的 SOA 架构。在应用架构图中,SOA 架构中的服务注册、服务治理、服务发现这些 RPC 框架的基础平台功能不用在应用架构中体现。

应用架构图的重点是体现应用之间的逻辑关系和通信关系,体现产品的内部关系和外部关系。内部关系是产品内各应用的调用关系;外部关系展现的是产品与外部系统间的调用关系。将应用的内外关系呈现在应用架构中,产品在整个业务中的定位和影响将变得清晰。

应用间调用关系

在产品内部的各子系统之间,为了解决业务需求,通过应用之间的服务调用或者异步消息调用产生数据关系。通过产品架构图中得到的应用系统划分,按照系统间的调用关系,形成内部应用的集成架构图。在应用集成架构图中,需要标注调用链路中的业务含义,清楚的标注应用之间发生的业务关系。

外部系统调用关系

数据输入做为产品的业务数据来源,很大部分是外部系统提供。在应用架构图中,按照业务属性、来源关系进行对外部系统进行归类,并将外部的来源系统纳入整个应用架构中。我们知道计算机系统中,数据输入和数据输出是作为一个整体。应用架构中除了输入系统,输出系统做为整个产品的一部分,需要纳入到应用架构图中。

明确应用调用边界

应用边界对于产品的定位、产品的设计有很重要的影响。在应用架构中需要通过不同颜色的标注,来确定产品与外部系统的边界。通过不同颜色标注外部来源系统、内部应用、应用依赖系统、输出系统。为后续的规划、发展提供基础。

相关文章
|
2月前
|
缓存 算法 Java
线程池
本文深入剖析了Java线程池的核心原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的实现机制,重点解析线程复用、任务调度及延时队列等关键技术,并通过源码分析揭示了线程池如何高效管理并发任务。
|
2月前
|
Java 大数据 数据安全/隐私保护
ArrayList扩容机制
本文深入解析ArrayList扩容机制:添加元素时先调用ensureCapacityInternal()确定最小容量,首次默认扩容至10;当容量不足时,通过grow()方法将容量扩大为原来的1.5倍(oldCapacity + (oldCapacity >> 1)),并使用Arrays.copyOf()完成数组复制。详细分析了add、grow等核心方法的执行流程与扩容时机。
 ArrayList扩容机制
|
人工智能 JSON 安全
AI提示词入门教程
前言 在当前的信息时代,人工智能(AI)已成为我们日常生活和工作中不可或缺的一部分。尤其是在处理语言和文本的应用中,AI的效率和能力已经展现出巨大潜力。然而,要充分利用AI的能力,有效地与之交互是关键。本文旨在探讨如何通过合适的提示词来指导AI,以确保任务的准确性和效率。我们将重点讨论基本原则和技巧,这些内容对于任何希望通过AI实现特定目标的用户都是极其有用的。
1647 0
|
4月前
|
人工智能 IDE 程序员
Qoder 负责人揭秘:Qoder 产品背后的思考与未来发展
AI Coding 已经成为软件研发的必选项。根据行业的调研,目前全球超过 62% 的开发者正在使用 AI Coding 产品,开发者研发效率提升 30% 以上。当然,有很多开发者用得比较深入,提效超过 50%。
1169 21
|
3月前
|
消息中间件 存储 人工智能
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
RocketMQ推出专为AI场景优化的LiteTopic模型,助力企业应对AI应用长耗时、高算力成本与流量波动等挑战,支持异步通信、会话连续性与资源高效调度,已在阿里云及集团内部落地验证。
199 0
官宣上线!RocketMQ for AI:企业级 AI 应用异步通信首选方案
|
5月前
|
人工智能 自然语言处理 供应链
从体验到系统工程丨上手评测国内首款 AI 电商 App
近期,1688 推出了 1688 AI App,这貌似是国内第一个电商领域的独立 AI App 应用(若不是,欢迎评论指正)。本文试图通过产品界面这一入口,窥探其背后的系统工程。
742 43
|
6月前
|
人工智能
拥抱AI原生!8月29日深圳,企业实践工作坊火热报名中
阿里云诚挚邀请您参加【AI原生,智构未来——AI原生架构与企业实践】工作坊,8月29日13:30于深圳·LandMarkCoffee 蓝马咖啡(南山区科技园桑达科技大厦1楼)从开发范式到工程化实践,全链路解析AI原生架构奥秘,与AI先行者共探增长新机遇。立即报名:https://hd.aliyun.com/form/6638
418 16
拥抱AI原生!8月29日深圳,企业实践工作坊火热报名中
|
7月前
|
人工智能 安全
Higress 入选《AI Cloud 大模型推理与交互典型案例》
Higress 入选《AI Cloud 大模型推理与交互典型案例》

热门文章

最新文章