系统架构设计师-软件架构设计(6)

news2024/11/15 12:51:59

目录

一、物联网分层架构

二、大数据分层架构

三、基于服务的架构(SOA)

        1、SOA的特征

        2、服务构件与传统构件的区别

四、Web Service(WEB服务)

        1、Web Services 和 SOA的关系

五、REST(表述性状态转移)

六、ESB(企业服务总线)

七、微服务

        1、微服务的优点

        2、微服务的缺点

        3、微服务架构模式方案

        4、微服务与SOA的区别

八、云计算 

        1、云计算优点

        2、云计算【按服务类型分类】

        3、云计算【按部署方式分类】

        4、云计算架构

九、云原生架构

        1、云原生架构设计原则

        2、云原生架构模式

        3、云原生架构反模式

        4、微服务设计约束

        5、云原生应用 

        6、云原生开发 

十、边缘计算


一、物联网分层架构

        1、感知层负责为物联网采集和获取信息。(解决数据获取问题。传感器、芯片、通信模组)

        2、网络层负责向上层传输感知信息和向下层传输命令。(传递和处理信息。网络、通信标准 / 协议)

        3、平台层负责把感知层收集到的信息通过大数据、云计算等技术进行有效的整合和利用。(操作平台、软件开发、设备管理平台、连接管理平台)

        4、应用层解决信息处理和人机交互问题。(应用服务:例:智慧物流、智慧医疗、食品安全、智慧园区等、智能终端:例:手机App)

二、大数据分层架构

 

三、基于服务的架构(SOA)

        SOA(面向服务架构)是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。

        1、SOA的特征

        (1)松散耦合(2)粗粒度服务(3)标准化接口

 

        2、服务构件与传统构件的区别

        (1)服务构件粗粒度,传统构件细粒度居多。

        (2)服务构件的接口是标准的,主要是WSDL(Web服务描述语言,是为描述Web服务发布的XML格式)接口,传统构件常以API形式出现。

        (3) 服务构件的实现与语言无关,传统构件绑定某种特定语言

        (4)服务构件可以通过构件容器提供QoS(一种安全机制, 是用来解决网络延迟和阻塞等问题的一种技术)的服务,传统构件完全由程序代码直接控制。

 

四、Web Service(WEB服务)

        UDDI:UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI,企业可以根据自己的需要动态查找并使用Web服务,也可以将自己的Web服务动态地发布到UDDI注册中心,供其他用户使用。

        WSDL:WSDL就是WebService接口对应的WSDL文件,该文件通过xml格式说明如何调用,可以看做WebService的接口文档(使用说明书)。

        SOAP:简单对象访问协议,是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息

        1、Web Services 和 SOA的关系

        SOA是一种思想,是一种架构理念,Web Service是一种来实现这理念的技术方法,Web Service是实现SOA的标准

        在SOA中,所有服务之间要松耦合,Web Service之间的通信是通过SOAP协议进行的,SOAP协议是基于XML实现的松耦合的协议。

        SOA服务需要对他们自己的服务本身进行描述,WSDL就是用来描述如何访问到SOA的服务

        SOA服务存在于一个目录中,UDDI就是用来描述从哪里得到SOA服务的,只需要完成SOA的注册就可以了。

 

五、REST(表述性状态转移)

        REST(Representational State Transfer,表述性状态转移)是一种通常使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。 

        REST的5个原则:

        (1)网络上的所有事物都被抽象为资源。

        (2)每个资源对应一个唯一的资源标识。

        (3)通过通用的连接件接口对资源进行操作。

        (4)对资源的各种操作不会改变资源标识。

        (5)所有的操作都是无状态的。

 

六、ESB(企业服务总线)

        企业服务总线(EnterpriseServiceBus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能。ESB支持异构环境中的服务、消息,以及基于事件的交互,并且具有适当的服务级别可管理性。简而言之,ESB提供了连接企业内部及跨企业间新的和现有软件应用程序的功能,以一组丰富的功能启用管理和监控应用程序之间的交互。在SOA分层模型中,ESB用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件将其映射成服务层的服务。 

        (1)提供位置透明性的消息路由和寻址服务

        (2)提供服务注册和命名的管理功能。

        (3)支持多种的消息传递范型

        (4)支持多种可以广泛使用的传输协议。

        (5)支持多种数据格式及其相互转换

        (6)提供日志和监控功能。

 

七、微服务

        【微服务】顾名思义,就是很小的服务,所以它属于面向服务架构的一种。

        与面向服务架构的区别类似于 雕版印刷VS活字印刷

        1、微服务的优点

        (1)复杂应用解耦:小服务(且专注于做一件事情),化整为零,易于小团队开发。

        (2)独立:独立开发,独立测试以及独立部署(简单部署)独立运行(每个服务独立在其独立进程中)。 

        (3)技术选型灵活:支持异构,如每个服务使用不同数据库

        (4)容错:故障隔离在单个服务中,通过重试、平稳退化等机制实现应用层容错。

        (5)松耦合,易扩展:可根据需求独立扩展。

 

        2、微服务的缺点

        (1)分布式环境下的数据一致性【更复杂】

        (2)测试的复杂性【服务间依赖测试】

        (3)运维的复杂性 

 

        3、微服务架构模式方案

        (1)聚合器微服务(2)链式微服务(3)数据共享微服务 (4)异步消息传递微服务

 

        4、微服务与SOA的区别

 

八、云计算 

        云计算是集合了大量计算设备和资源,对用户屏蔽底层差异的分布式处理架构,其用户与提供实际服务的计算资源是相分离的。

        1、云计算优点

                超大规模、虚拟化、高可靠性、高可伸缩性、按需服务、成本低【前期投入低、综合使用成本也低】。

        2、云计算【按服务类型分类】

        (1)SaaS【软件即服务】:基于多租户技术实现,直接提供应用程序

        (2)PaaS【平台即服务】虚拟中间件服务器、运行环境和操作系统。

        (3)LaaS【基础设施即服务】:包括服务器、存储和网络等服务。

        3、云计算【按部署方式分类】

        (1)公有云:面向互联网用户需求,通过开放网络提供云计算服务。

        (2)私有云:面向企业内部提供云计算服务。

        (3)混合云:兼顾以上两种情况的云计算服务。

        4、云计算架构

        (1)管理层:提供对所有层次云计算服务的管理功能。

        (2)用户访问层:方便用户使用云计算服务所需的各种支撑服务,针对每个层次的云计算服务都需要提供相应的接口。

        (3)应用层:提供软件服务,如:财务管理系统、客户关系管理系统、商业智能。

        (4)平台层:为用户提供对资源层服务的封装,使用户可以构件自己的应用。

        (5)资源层:提供虚拟化的资源,从而隐藏物理资源的复杂性,如:服务器,存储。

 

九、云原生架构

        云原生是基于分布部署和统一运营的分布式云,以容器、微服务、DevOps等技术为基础建立的一套云技术产品体系。

        【云原生架构与云计算架构的区别

        云计算是on cloud,在云上,云原生是in clound,在云中。

        1、云原生架构设计原则

        (1)服务化原则:使用微服务。

        (2)弹性原则:可根据业务变化自动伸缩。

        (3)可观测原则:通过日志、链路跟踪和度量。

        (4)韧性原则:面对异常的抵御能力。

        (5)所有过程自动化原则:自动化交付工具。

        (6)零信任原则:默认不信任网络内部和外部的任何人 / 设备 / 系统。

        (7)架构持续演进原则:业务高速迭代情况下的架构与业务平衡。

        2、云原生架构模式

        (1)服务化架构模式:典型代表【微服务】,服务拆分使维护压力大增。

        (2)Mesh化架构模式:把中间件框架(RPC、缓存、异步消息)从业务进程中分离,由Mesh进程完成

        (3)Serverless模式:非常适合于事件驱动的数据计算任务

        (4)存储计算分离模式:各类暂态数据(如session)用云服务保存。

        (5)分布式事务模式:解决微服务模式中多数据源事务问题。

        (6)可观测架构:包括Logging、Tracing、Metrics三个方面。

        (7)事件驱动架构:本质上是一种应用 / 组件间的集成架构模式。

        3、云原生架构反模式

        (1)庞大的单体应用

                【需要多人开发的业务模块,考虑通过服务化进行拆分,并让组织与架构匹配】

        (2)单体应用 “ 硬拆 ” 为微服务(服务拆分要适度)

                【小规模软件的服务拆分(为拆而拆)、数据依赖(服务间数据依赖)、性能降低】

        (3)缺乏自动化能力的微服务

                【手动维护大量微服务是不现实的】

        4、微服务设计约束

        (1)微服务个体约束

                【每个微服务都是独立的,修改一个微服务不能影响另一个微服务】

        (2)微服务于微服务之间的横向关系

                【通过第三方服务注册中心来满足服务的可发现性】

        (3)微服务于数据层之间的纵向约束

                【数据是微服务的 “ 私产 ” ,访问时需要通过微服务】

        (4)全局视角下的微服务分布式约束

                【高效运维整个系统】

        5、云原生应用 

        6、云原生开发 

十、边缘计算

        【边缘计算】是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。

        【边缘计算的本质】计算处理职能本地化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux系统编程重点复习--进程之间通信

目录 复习目标 2 进程间通信相关概念 2.1 什么是进程间通信 2.2 进程间通信的方式 3 管道-pipe 3.1管道的概念 3.2管道的原理 3.3管道的局限性 3.4创建管道-pipe函数 3.5父子进程使用管道通信 3.6 管道练习 3.7 管道的读写行为 3.8 如何设置管道为非阻塞 3.9 如何…

Maven设置阿里云路径(防止加载过慢)

<?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regardin…

git | git使用心得记录

公司里项目最近使用Git进行协作开发&#xff0c;总结一下使用心得 一、第一次用git&#xff0c;完全同步最新代码checkout 按照以下步骤操作 1、git init 2、git remote add origin 远程仓库的地址https://gitlab.xxxx.com.cn/xx/xx/xxx/Android/baseline/x.x.x.git(远程仓库…

剑指offer48.最长不含重复字符的子字符串

我一开始的想法是创建一个大小为26的int数组&#xff0c;下标为0对应的是‘a&#xff0c;25对应的是’z&#xff0c;然后一开始都赋为-1&#xff0c;用一个for循环从头遍历这个字符串&#xff0c;通过char c s.charAt(i)获得字符&#xff0c;然后c-97&#xff0c;就是它对应的…

《向量数据库指南》——向量数据库向专业化和智能化的发展趋势

随着数据的规模不断扩大和信息技术的发展,向量数据库在各个行业中扮演着越来越重要的角色。未来,随着技术的不断进步和市场需求的不断增长,向量数据库的应用将更加广泛和深入,同时也会出现更加专业化和智能化的趋势。 一、向量数据库的专业化发展 随着各个行业数据量的不…

【雕爷学编程】Arduino动手做(178)---超迷你哦,用徽商香烟盒做个智能小车2

早上去打羽毛球&#xff0c;路上捡到一个香烟盒子&#xff0c;于是就想尝试一下&#xff0c;捣鼓捣鼓。 经测试&#xff0c;控制器与电机使用同一组电源会互相干扰&#xff0c;故只好再加一组电池 商徽烟盒小车内部结构总算整好了&#xff0c;够迷你吧 小车轮子准备用矿泉水瓶盖…

【ChatGPT辅助学Rust | 基础系列 | Cargo工具】Cargo介绍及使用

文章目录 前言一&#xff0c;Cargo介绍1&#xff0c;Cargo安装2&#xff0c;创建Rust项目2&#xff0c;编译项目&#xff1a;3&#xff0c;运行项目&#xff1a;4&#xff0c;测试项目&#xff1a;5&#xff0c;更新项目的依赖&#xff1a;6&#xff0c;生成项目的文档&#xf…

Go学习第二天

Defer语句调用顺序 package mainimport "fmt"func main() {defer fmt.Println("main end1 先进后出")defer fmt.Println("main end2 后进先出")fmt.Println("main hello go 1")fmt.Println("main hello go 2") }重点&…

Android性能优化—LeakCanary内存泄漏检测框架分析。

一、什么叫内存泄漏、内存溢出&#xff1f; 内存溢出(out of memory)&#xff1a;是指程序在申请内存时&#xff0c;没有足够的内存空间供其使用&#xff0c;出现out of memory&#xff1b;比如申请了一个10M的Bitmap&#xff0c;但系统分配给APP的连续内存不足10M&#xff0c…

Cpp7 — 继承和多态

继承 -------- 面向对象的三大特性之一 面向对象的三大特性&#xff1a;封装、继承、多态 封装&#xff1a;把数据和方法都封装在一起&#xff0c;想给你访问的变成共有&#xff0c;不想给访问的&#xff0c;写成私有。 继承&#xff1a;继承是类设计层次的复用 多态&#…

物联网远程智能控制设备——开关量/正反转百分比控制

如今生产生活的便利性极大程度上得益于控制技术的发展&#xff0c;它改变了传统的工作模式&#xff0c;并将人们从【纯劳力】中解放出来。如今&#xff0c;随着科学技术的进步&#xff0c;控制器的种类及应用领域也越来越多。 物联网远程智能控制设备就是一种新型的、能够用于…

VSCode自定义闪烁光标

打开VSCode 组合键ctrlshiftp搜索"settings.json",打开User Settings 加上这一句 "editor.cursorStyle": "block","workbench.colorCustomizations": {"editorCursor.foreground": "#5c8fb1","terminalCurs…

拓数派入选中国信通院 “铸基计划”「高质量数字化转型产品及服务全景图」

7 月 27 日&#xff0c;由中国信息通信研究院&#xff08;以下简称 “中国信通院”&#xff09;主办的 “2023 数字生态发展大会” 暨中国信通院 “铸基计划” 年中会议在京召开&#xff0c;本次大会深度展示了中国信通院在数字化领域的工作成果&#xff0c;并正式发布了《高质…

HCIP BGP概念、工作原理、特点总结

BGP概念 BGP---边界网关路由协议&#xff0c;无类别的路径矢量EBP协议 BGP类别的路由协议&#xff0c;用于AS与AS间进行路由条目共享&#xff1b; AS指的是在同一个组织管理下&#xff0c;使用统一选路策略的设备集合&#xff0c;不同AS号通过AS号来区分&#xff0c;AS号存在…

小程序如何上传商品图片

了解如何在小程序商城中上传商品图片是非常重要的&#xff0c;因为商品图片的质量和展示效果直接影响到用户对商品的购买决策。下面&#xff0c;我将介绍怎么在小程序上传产品图片的方法和注意事项。 1. 图片准备&#xff1a;在上传商品图片之前&#xff0c;首先要准备好商品图…

Android手机使用无线调试进行adb连接

平时进行真机调试apk的时候&#xff0c;总是要插着数据线&#xff0c;比较麻烦&#xff0c;而使用无线调试就可以方便的进行连接&#xff0c;步骤如下&#xff1a; 1、进入设置找到开发者选项 2、打开开发者选项中的无线调试 3、使用配对码进行配对&#xff0c;输入命令&…

IDEA中修改代码中注释的字体颜色

IDEA中修改代码中注释的字体颜色 一、修改文档注释的字体颜色 选择File--Settings--Color Scheme--Language Defaults&#xff0c;可以修改单行注释的字体颜色&#xff0c;多行注释的字体颜色以及文档注释的颜色&#xff0c;我一般习惯将文档注释和多行注释设置成绿色 008017…

运用大数据软件提高竞彩足球胜平负分析的准确率

竞彩足球是一种以足球比赛结果为基础的体育游戏&#xff0c;它吸引了众多热爱足球的球迷和彩票爱好者的参与。然而&#xff0c;要在竞彩足球中取得最佳的胜平负预测结果并非易事。幸运的是&#xff0c;随着大数据技术的不断发展和应用&#xff0c;我们可以利用大数据软件来提高…

这次,常温超导能否变为现实?

关注科研和技术的朋友近几天应当都听到韩国研发常温超导材料的消息了&#xff0c;作为攻城狮的我自然也是非常感兴趣&#xff0c;经过一番思想斗争还是放下了手上的单片机&#xff0c;想要一看这个常温超导的究竟&#xff0c;毕竟印象之中之前已经搞过好几次乌龙了。常温超导要…

overpass-turbo下载铁路线

overpass turbo /* This has been generated by the overpass-turbo wizard. The original search was: “road” */ [out:json]; rel(198494); out body; >; out skel qt; 上面的198498代表在osm中铁路线的id&#xff0c;这个id获取流程是从osm网站查询出来的 我也没啥好…