应用架构图

简介: 在业务架构基础上,技术架构将需求转化为技术实现,涵盖分层设计、技术选型与关键技术关系。单体架构通常分为表现、业务、数据和基础四层;分布式架构则通过服务调用体现应用间及外部系统的逻辑与通信关系,明确边界,支撑系统集成与扩展。(239字)

在上一节有了业务架构的基础之上,当我们需要落地具体的技术方案时,此时就需要技术人员开始考虑技术架构了。技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选项,把各个关键技术和技术之间的关系描述清楚。
基础结构解决的主要问题包括:如何进行技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择。由于应用架构体系是分层的,那么对应的技术架构体系自然也是分层的。大的分层有微服务架构分层模型,小的则是单个应用的技术分层框架。大的技术体系考虑清楚后,剩下问题就是根据实际业务考虑选择具体的技术点。各个技术点的分析、方案选择,最终形成关键技术清单,关键技术清单应考虑架构本身的分层逻辑,最终形成一个完整的技术架构图。
简而言之,技术架构试讲产品需求转变为技术实现的过程。
单体应用架构
单体应用架构一般是比较传统的分为4层:数据层(Data Layer)、应用逻辑层(Business Layer)、表现层(Presentation Layer)和基础通用层(Common Layer)。

展现层
展现层是整个应用面向用户的入口,用户通过展现层实现与系统的交互。展现层为用户提供系统功能的操作、系统数据的展现。展现层按照面向的用户类型提供不同的交互服务。例如在业务场景中,用户有实操层用户、管理层用户、决策层用户。针对不同层级的用户,系统所提供的功能是不相同:
● 面向实操层用户,提供的是对系统的操作功能,满足业务日常运营。往往更多的是执行具体操作。
● 面向管理层用户,满足管理者的日常管理需求,通常提供经营数据、日常管理数据、团队业务数据等等。通过数据分析,改善日常运营的流程。
● 面向决策层用户,这一层的用户不需要太细的数据,为其提供企业的经营诊断数据和报告,辅助决策支持。
业务层
业务层是应用为解决业务需求,按照产品架构中的功能模块进行细化。业务层是对将产品层从粗到细的分解过程。这个过程是对业务的细化过程,把项目要交付的模块细分到最基本的单元。最基本单元是实现日常业务操作的最细粒度的功能点。由此,我们能够得到实现业务逻辑的全功能结构。
数据层
数据层按照应用的数据模型分别进行存储。这里的存储介质包含关系型数据库、NoSQL、分布式文件系统。
基础层
通用基础层是为系统提供通用能力的中间件,比如流程引擎、消息中间件、缓存、搜索引擎等等。这些中间件和业务是无相关性的,提供的是通用的基础技术能力。
基于上述分析,我们可以得到一个如下单体应用的技术架构:

分布式应用架构
分布式应用架构图实质是产品内部所有应用在分布式环境下的调用关系图。各应用间通过服务的形式相互调用,这是典型的 SOA 架构。在应用架构图中,SOA 架构中的服务注册、服务治理、服务发现这些 RPC 框架的基础平台功能不用在应用架构中体现。
应用架构图的重点是体现应用之间的逻辑关系和通信关系,体现产品的内部关系和外部关系。内部关系是产品内各应用的调用关系;外部关系展现的是产品与外部系统间的调用关系。将应用的内外关系呈现在应用架构中,产品在整个业务中的定位和影响将变得清晰。
应用间调用关系
在产品内部的各子系统之间,为了解决业务需求,通过应用之间的服务调用或者异步消息调用产生数据关系。通过产品架构图中得到的应用系统划分,按照系统间的调用关系,形成内部应用的集成架构图。在应用集成架构图中,需要标注调用链路中的业务含义,清楚的标注应用之间发生的业务关系。

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

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

相关文章
|
9月前
|
编解码 算法 数据安全/隐私保护
手机常用压缩工具推荐,RAR,ZIP,7Z解压缩,zip解压缩,Bandizip,ZArchiver等解压工具
在手机上解压RAR、ZIP、7Z等格式文件时,选择一款功能强大的解压缩工具至关重要。本文介绍了多款实用的解压软件,如7Z解压缩、ZArchiver、RAR、Bandizip等,它们不仅支持多种压缩格式的解压和压缩,还具备文件管理、加密、分享、媒体预览等功能。无论是处理文档、图片还是视频,这些工具都能提供高效便捷的解决方案,满足日常使用需求。
3306 0
|
4月前
|
Linux 数据安全/隐私保护 虚拟化
虚拟机安装(CentOS7)
准备CentOS7镜像及VMware Workstation工具,可使用提供的百度云链接下载。通过VMware创建虚拟机,参考指定教程完成安装,默认用户名为root,密码由用户自设。确保电脑满足运行需求。(236字符)
|
4月前
|
自然语言处理 Java 程序员
安装ES、Kibana、IK
本文介绍如何通过Docker部署单节点Elasticsearch与Kibana,并安装IK分词器。包括创建网络、加载镜像、运行容器、配置扩展词典与停用词典,以及解决常见启动报错问题,助力快速搭建中文分词测试环境。
|
4月前
|
消息中间件 存储 监控
Mac系统安装教程
RabbitMQ是基于AMQP协议的开源消息代理,支持异步通信、解耦服务,广泛用于分布式与微服务架构。具备高可靠、灵活路由、持久化、可扩展等特性,支持多种消息模式。可通过Homebrew或二进制方式安装,提供Web管理界面,便于操作与监控。
|
4月前
|
安全 Java 开发工具
工程搭建与验证
本文介绍如何基于阿里云脚手架快速搭建SpringBoot工程(选用2.7.6版本),并整合Spring Security。内容涵盖项目创建、代码导入、Web依赖引入、接口编写与验证,以及Security依赖添加后的登录验证流程。默认用户名为user,密码由控制台生成且每次重启变化。完整代码见GitHub仓库Day01分支。
|
4月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入解析Spring Cloud Ribbon实现客户端负载均衡的原理,涵盖@LoadBalanced注解作用、Ribbon与Eureka整合机制、负载均衡策略配置(代码与配置文件方式)、饥饿加载优化及常见负载均衡技术对比,帮助读者全面掌握Ribbon核心知识点,为后续学习Nacos、Gateway等负载均衡实现打下基础。
|
4月前
|
关系型数据库 MySQL Java
SpringCloud工程部署启动
本教程介绍SpringCloud微服务项目搭建与部署,支持完整工程导入或从零构建。涵盖父工程、子模块创建,POM依赖管理,user-service与order-service模块开发,数据库配置及业务代码编写。通过RestTemplate实现服务间远程调用,解决跨服务数据获取问题,帮助理解微服务拆分与通信机制,为后续深入学习打下基础。
|
4月前
|
存储 NoSQL 关系型数据库
MongoDB索引知识
MongoDB索引通过B树结构提升查询效率,避免全表扫描。支持单字段、复合、地理空间、文本及哈希索引,优化相等匹配、范围查询、排序与全文搜索,显著提升大数据量下的查询性能。
|
4月前
|
Java Shell 测试技术
Jmeter快速入门
JMeter安装需先配置JDK并下载压缩包,解压后通过bin目录脚本启动。支持中文需修改jmeter.properties文件,设置language=zh_CN。基本使用包括创建线程组、添加HTTP取样器、配置监听器查看结果树与汇总报告,适用于性能测试快速入门。(238字)
|
4月前
|
XML JSON Java
什么是RESTful
RESTful是一种基于资源的API设计规范,主张用URI表示资源,HTTP动词(GET/POST/PUT/DELETE)执行操作,实现统一、标准的接口风格。它解决传统接口路径混乱、行为不规范问题,提升可读性与可维护性,使系统更易扩展和协作。

热门文章

最新文章