应用架构图

简介: 在业务架构基础上,技术架构将需求转化为技术实现,涵盖分层设计、技术选型与关键组件关系。单体架构通常分为表现、业务、数据和基础四层;分布式架构则体现应用间服务调用与外部系统集成,明确内外边界,形成完整技术体系。

在上一节有了业务架构的基础之上,当我们需要落地具体的技术方案时,此时就需要技术人员开始考虑技术架构了。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。
基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。由于应用架构体系是分层的,那么对应的技术架构体系自然也是分层的。大的分层有微服务架构分层模型,小的则是单个应用的技术分层框架。大的技术体系考虑清楚后,剩下问题就是根据实际业务考虑选择具体的技术点。各个技术点的分析、方案选择,最终形成关键技术清单,关键技术清单应考虑架构本身的分层逻辑,最终形成一个完整的技术架构图。
简而言之,技术架构试讲产品需求转变为技术实现的过程。
单体应用架构
单体应用架构一般是比较传统的分为4层:数据层(Data Layer)、应用逻辑层(Business Layer)、表现层(Presentation Layer)和基础通用层(Common Layer)。
展现层
展现层是整个应用面向用户的入口,用户通过展现层实现与系统的交互。展现层为用户提供系统功能的操作、系统数据的展现。展现层按照面向的用户类型提供不同的交互服务。例如在业务场景中,用户有实操层用户、管理层用户、决策层用户。针对不同层级的用户,系统所提供的功能是不相同:
面向实操层用户,提供的是对系统的操作功能,满足业务日常运营。往往更多的是执行具体操作。
面向管理层用户,满足管理者的日常管理需求,通常提供经营数据、日常管理数据、团队业务数据等等。通过数据分析,改善日常运营的流程。
面向决策层用户,这一层的用户不需要太细的数据,为其提供企业的经营诊断数据和报告,辅助决策支持。
业务层
业务层是应用为解决业务需求,按照产品架构中的功能模块进行细化。业务层是对将产品层从粗到细的分解过程。这个过程是对业务的细化过程,把项目要交付的模块细分到最基本的单元。最基本单元是实现日常业务操作的最细粒度的功能点。由此,我们能够得到实现业务逻辑的全功能结构。
数据层
数据层按照应用的数据模型分别进行存储。这里的存储介质包含关系型数据库、NoSQL、分布式文件系统。
基础层
通用基础层是为系统提供通用能力的中间件,比如流程引擎、消息中间件、缓存、搜索引擎等等。这些中间件和业务是无相关性的,提供的是通用的基础技术能力。
基于上述分析,我们可以得到一个如下单体应用的技术架构:
分布式应用架构
分布式应用架构图实质是产品内部所有应用在分布式环境下的调用关系图。各应用间通过服务的形式相互调用,这是典型的 SOA 架构。在应用架构图中,SOA 架构中的服务注册、服务治理、服务发现这些 RPC 框架的基础平台功能不用在应用架构中体现。
应用架构图的重点是体现应用之间的逻辑关系和通信关系,体现产品的内部关系和外部关系。内部关系是产品内各应用的调用关系;外部关系展现的是产品与外部系统间的调用关系。将应用的内外关系呈现在应用架构中,产品在整个业务中的定位和影响将变得清晰。
应用间调用关系
在产品内部的各子系统之间,为了解决业务需求,通过应用之间的服务调用或者异步消息调用产生数据关系。通过产品架构图中得到的应用系统划分,按照系统间的调用关系,形成内部应用的集成架构图。在应用集成架构图中,需要标注调用链路中的业务含义,清楚的标注应用之间发生的业务关系。
外部系统调用关系
数据输入做为产品的业务数据来源,很大部分是外部系统提供。在应用架构图中,按照业务属性、来源关系进行对外部系统进行归类,并将外部的来源系统纳入整个应用架构中。我们知道计算机系统中,数据输入和数据输出是作为一个整体。应用架构中除了输入系统,输出系统做为整个产品的一部分,需要纳入到应用架构图中。
明确应用调用边界
应用边界对于产品的定位、产品的设计有很重要的影响。在应用架构中需要通过不同颜色的标注,来确定产品与外部系统的边界。通过不同颜色标注外部来源系统、内部应用、应用依赖系统、输出系统。为后续的规划、发展提供基础。

相关文章
|
3月前
|
缓存 Ubuntu Linux
Docker安装
本教程介绍Docker在CentOS和Ubuntu系统中的安装与配置,包括卸载旧版本、配置yum源或软件源、安装引擎、启动服务、离线安装及系统服务配置。还涵盖daemon.json参数设置、日志管理、镜像加速、命令补全等功能,助你快速部署并优化Docker环境。(238字)
|
3月前
|
Java Maven 数据安全/隐私保护
Nexus仓库
本文介绍Nexus Repository Manager OSS在Linux环境下的安装与配置,包括JDK8环境搭建、Nexus解压启动、管理员登录、密码重置、仓库创建及Docker部署方式。涵盖Maven、Npm、Docker私仓配置,支持匿名访问、数据持久化、资源上传下载等核心功能,适用于企业级制品库管理。
|
3月前
|
关系型数据库 MySQL Shell
Docker下载加速
本文介绍Docker下载加速的两种方法:一是使用网易数帆、阿里云等镜像仓库,如`docker pull hub.c.163.com/library/mysql`;二是配置阿里云镜像加速器,通过修改`/etc/docker/daemon.json`添加加速地址,实现快速拉取官方镜像。此外,若使用代理上网,还可配置HTTP/HTTPS代理,提升镜像下载效率。
|
3月前
|
SQL 算法 Java
MybatisPlus讲义
本课程基于若依框架与AI技术,打造智慧养老项目。涵盖MyBatisPlus、Redis、Vue3等核心技术,结合AI辅助开发与物联网应用,完成养老系统全栈开发,助力实战能力提升。(238字)
|
3月前
|
存储 自然语言处理 搜索推荐
倒排索引:如何从海量数据中查询同时带有「极」和「客」的唐诗?
本文通过唐诗检索的实例,讲解正排索引与倒排索引的核心原理。正排索引以文档ID为键,支持快速键值查询;而倒排索引以关键词为键,记录包含该词的文档列表,显著提升内容检索效率。文章详细介绍了倒排索引的构建步骤、多关键词联合查询的实现方法(如交集、并集、差集),以及归并算法在有序链表中查找公共元素的应用。倒排索引广泛应用于搜索引擎、数据库全文检索等系统,是信息检索的基石技术。
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
搜索引擎:输入搜索词以后,搜索引擎是怎么工作的?
搜索引擎通过爬虫抓取网页,经索引系统处理生成倒排索引,再由检索系统结合分词、纠错、推荐等技术理解用户意图,利用位置信息和最小窗口排序提升短语检索相关性,实现高效精准搜索。
|
3月前
|
存储 固态存储 关系型数据库
特别加餐 | 高性能检索系统中的设计漫谈
本文系统梳理了高性能检索系统中的四大核心设计思想:索引与数据分离、减少磁盘IO、读写分离和分层处理。通过典型案例对比与深入分析,揭示其本质与通用经验,帮助开发者在实际场景中权衡利弊,构建高效、稳定的系统架构,提升整体性能。
|
3月前
|
搜索推荐 算法 索引
最近邻检索(上):如何用局部敏感哈希快速过滤相似文章?
在搜索引擎与推荐系统中,相似文章去重至关重要。本文介绍基于向量空间模型的近邻检索,详解局部敏感哈希(LSH)与SimHash原理,如何通过海明距离和抽屉原理实现高效相似文档检索,并探讨其在图文、音频等多场景的应用与局限。
|
3月前
|
存储 搜索推荐 定位技术
空间检索(下):「查找最近的加油站」和「查找附近的人」有何不同?
针对动态范围查询场景,本文探讨了基于四叉树与前缀树的空间索引优化方案。通过非满四叉树实现动态节点分裂,避免稀疏数据下的空间浪费;利用GeoHash编码特性构建前缀树,支持高效层级检索。结合递归上溯机制,可快速定位最近K个目标,兼顾查询效率与存储开销。
|
3月前
|
存储 NoSQL 定位技术
空间检索(上):如何用 Geohash 实现「查找附近的人」功能?
本文介绍了如何高效实现“查找附近的人”功能,提出基于空间划分与Geohash编码的检索方案。通过将二维坐标转为一维编码,结合区域索引与邻近区域扩展,可在大规模系统中快速实现精准或非精准查询,适用于社交、出行等场景。