【系统架构设计师】二十二、嵌入式系统架构设计理论与实践②

目录

五、嵌入式中间件

5.1 嵌入式中间件定义

5.2 嵌入式中间件的分类

六、嵌入式系统软件架构设计方法

6.1 基于架构的软件设计开发方法的应用

6.2 属性驱动的软件设计方法

6.2.1 ADD 开发方法的质量属性与场景

6.2.2 ADD 开发过程

6.3 实时系统设计方法

6.3.1 DARTS 开发方法的基本概念

6.3.1.1 RTSAD 方法

6.3.1.2 任务标准化、信息隐藏、任务架构图

6.3.2 DARTS 开发过程

6.3.3 DARTS 开发方法的评价

往期推荐


五、嵌入式中间件

        中间件 (Middleware)属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间,在操作系统、网络和数据库之上,应用软件之下,其作用是为处于上层应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

5.1 嵌入式中间件定义

        嵌入式中间件 (Embedded Middleware)是在嵌入式系统中处于嵌入式应用和操作系统之间层次的中间软件,其主要作用是对嵌入式应用屏蔽底层操作系统的异构性,常见功能有网络通信、内存管理和数据处理等。

        即中间件=平台+通信。中间件具有以下共性特点:通用性、异构性、分布性、协议规范性、接口标准化。

        具体到嵌入式中间件而言,它还应提供对下列环境的支持
                ● 网络化:支持移动、无线环境下的分布应用,适应多种设备特性以及不断变化的网络环境;
                ● 支持流媒体应用,适应不断变化的访问流量和宽带约束;
                ● QoS质量品质:在分布式嵌入式实时环境下,适应强QoS的分布应用的软硬件约束;
                ● 适应性:能够适应未来确定的应用要求。

5.2 嵌入式中间件的分类

从现代中间件观点看,通用中间件大致存在以下几类:

        ● 企业服务总线中间件 (Enterprise Service Bus,ESB):ESB是一种开放的、基于标准的分布式同步/异步信息传递中间件。通过XML、Web 服务接口以及标准化基于规则的路由选择文档支持, ESB 为企业应用程序提供安全互用性。
        ● 事务处理 (Transaction Processing,TP) 监控器:为发生在对象间的事务处理提供监控功能,以保证操作成功。
        ● 分布式计算环境 (Distributed Computing Environment):指创建运行在不同平台上的分布式应用程序所需的一组技术服务。
        ● 远程过程调用 (Remote Procedure Call):指客户机向服务器发送关于运行某程序的请求时所需的标准。
        ● 对象请求代理 (Object Request Broker,ORB):为用户提供与其他分布式网络环境中对象通信的接口。
        ● 数据库访问中间件 (Database Access Middleware):支持用户访问各种操作系统或应用程序中的数据库。
        ● 消息传递 (Message passing): 电子邮件系统是该类中间件的其中之一。
        ● 基于XML的中间件 (XML-Based Middleware):XML允许开发人员为实现Internet中交换结构化信息而创建文档。

六、嵌入式系统软件架构设计方法

6.1 基于架构的软件设计开发方法的应用

【系统架构设计师】十一、系统架构设计(基于体系结构的软件设计|特定应用领域软件架构)_体系结构文档化实践-CSDN博客文章浏览阅读820次,点赞26次,收藏11次。基于体系结构(架构)的软件设计(ABSD)方法是体系结构驱动的,即指构成体系结构的商业、质量和功能需求的组合驱动的。在基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。DSSA 就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。DSSA 就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。_体系结构文档化实践https://shuaici.blog.csdn.net/article/details/140434104

6.2 属性驱动的软件设计方法

        属性驱动的软件设计 (Attribute-Driven Design,ADD)是把一组质量属性场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量战术等)对软件架构进行设计的一种方法。

6.2.1 ADD 开发方法的质量属性与场景

【系统架构设计师】十二、系统质量属性与架构评估(开发期质量属性|运行期质量属性|面向架构评估的质量属性|质量属性效用树|质量属性场景)-CSDN博客文章浏览阅读820次,点赞20次,收藏26次。历年真题考情:本章节每年单项选择考8分左右,下午案例、论文也会有涉及,在系统架构设计师中本章节绝对是重点中的重点。主要学习软件系统质量属性、系统架构评估以及 ATAM 方法评估实践等内容。很少涉及超纲题。_质量属性场景https://shuaici.blog.csdn.net/article/details/140439195

6.2.2 ADD 开发过程

        采用 ADD 方法进行软件开发时,需要经历评审、选择驱动因子、选择系统元素、选择设计概念、实体化元素和定义接口、草拟视图和分析评价等七个阶段,如下图所示:

        步骤一:评审输入。确保设计流程的输入是可用且正确的。确认设计目的是否符合设计的类型。如果是设计一个已有的系统,还需要分析已经存在的架构设计的输入存在是否合理。
        步骤二:通过选择驱动因子(架构)建立迭代目标。根据使用的开发模型去选择设计的回合。一个设计回合需要在一系列的设计迭代中进行,每一个迭代着重完成一个目标,特别是满足驱动因子的目标。
        步骤三:选择一个或者多个系统元素来细化。选取可满足驱动因子需要的一个或者多个架构结构。
        步骤四:选择一个或者多个设计概念来细化。从常用的架构设计模式中选取一种或多种设计概念,对选中的驱动因子进行细化。
        步骤五:实例化架构元素、分配职责和定义接口。选择好了一个或者多个设计概念后,就要求做另个设计决策了,包括所选择的实例化元素的设计概念。比如,如果选择分层,就需要决定分多少层。
        步骤六:草拟视图和记录设计决策。将上述活动的结果用文字或图的方式记录或绘制出来。
        步骤七:分析当前设计、评审迭代目标、实现设计目的。到本步骤,应该说已经创建好了部分设计可以得到这个迭代设计建立的目标。在这个确定的目标前提下,可以得到项目利益相关者的认同,避免否定,导致返工。 

6.3 实时系统设计方法

        实时系统设计方法 (Design Approach for RealTime System,DARTS) 方法主要是将实时系统分解为多个并发任务,并定义这些任务之间的接口

        DARTS 方法主要是将实时系统分解为多个并发任务,并定义这些任务之间的接口。该方法起源于实时系统的实时结构化分析和设计方法 (Real-Time Structuring Analysis and Design,RTSAD)。RTSAD 在分析阶段使用实时结构化分析 (RTSA)方法,设计阶段使用实时结构化设计 (RTSD) 方法,但是这个方法没有考虑实时系统是由一些并发任务组成的这个特点。针对实时系统的这个特点, DARTS 方法提供了一些分解规则和一套处理并发任务的设计步骤,还提供了一套把实时系统建造成并发任务的标准和定义并发任务间接口的指南。

6.3.1 DARTS 开发方法的基本概念

6.3.1.1 RTSAD 方法

        RTSAD 方法是对传统结构化分析和设计方法的补充扩展,专门用于开发实时系统。RTSA 是自顶向下的实时结构化分析方法,用于系统的需求分析阶段。

        实时结构化分析 (RTSA) 主要对传统的结构化分析方法扩充了行为建模部分,它通过状态转换图 (STD) 刻画系统的行为特征,并利用控制转换 (Control Transformation)与数据流图集成在一起。
        实时结构化设计 (RTSD) 是利用内聚和耦合原则进行程序设计的一个方法,它通过事务和变换两种策略将 RTSA 的分析结构DFD/CFD 转换为程序结构图。

6.3.1.2 任务标准化、信息隐藏、任务架构图

        任务结构化标准可以为设计人员将实时系统分解为并发任务的时候提供帮助。这些标准是从设计并发系统所积累的经验中得到的启发。确定任务过程中主要考虑的问题是系统内部功能的并发特性
        信息隐藏作为封装数据存储的标准来使用。信息隐藏模块用于信息数据存储和状态转换表
的内容和表示。当有多个任务访问IHM 的时候,访问过程就必须对数据的访问进行同步。

        任务架构图:RTSAD 设计方法使用任务架构图来显示系统分解为并发任务的过程,以及采用消息、事件和信息隐藏模块形式的任务间接口。下图所示的即为任务架构图所使用的表示法

6.3.2 DARTS 开发过程

        (1)用实时结构化分析方法(RTSA)开发系统规范:本阶段要开发系统环境图 (SCD) 和状态转换图 (STD)

        (2)将系统划分为多个并发任务:任务结构化标准应用于数据流/控制流图层次集事件合中的叶子节点上。初步任务架构图(TAD)可以显示使用任务结构化标准确定的任务。

        (3)定义任务间接口:通过分析在上一阶段确认的任务间的数据/控制流接口可以定义任务间的接口。任务间的数据流被映射为松耦合的或紧密耦合的消息接口。事件流被映射为事件信号。数据存储被映射为信息隐藏模块。这个阶段应该完成时间约束分析。

        (4)设计每个任务:每个任务都代表了一个顺序程序的执行。在这个阶段要定义各个模块的功能以及与其他模块之间的接口。此外,还要设计各个模块的内部结构。

        (5)设计过程的成果:RTSA规范、任务结构规范(定义每个并发任务功能及接口)、任务分解(定义每个任务分解为模块的过程以及模块的功能接口详细设计)。

6.3.3 DARTS 开发方法的评价

        DARTS 开发方法的主要优势

        ● 强调把系统分解成并发的任务,并提供了确认这些任务的标准。
        ● 提供了详细的定义任务间接口的指南
        ● 强调了用任务架构图 (STD) 的重要性,这在实时系统的设计中也非常重要;
        ● 提供了从RTSA规格到实时设计的转换。 

        DARTS 开发方法的不足之处

        ● 它是用结构化的设计方法把任务创建成了程序模块,而并非完全用IHM来封装数据存储。
        ● 如果RTSA阶段的工作没有做好,创建任务就非常困难

往期推荐

【系统架构设计师】二十一、面向服务架构设计理论与实践①-CSDN博客文章浏览阅读402次,点赞16次,收藏9次。为适应日益增长的用户访问量和产品的快速更新迭代,导致SOA 架构向更细粒度、更通用化程度发展,就成了所谓的微服务了。 SOA 与微服务的区别在于如下几个方面:(1)微服务相比于SOA 更加精细,微服务更多地以独立的进程的方式存在,互相之间并无影响;(2)微服务提供的接口方式更加通用化,例如HTTP RESTful 方式,各种终端都可以调用,无关语言、平台限制;(3)微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。https://shuaici.blog.csdn.net/article/details/140764750【系统架构设计师】二十、云原生架构设计理论与实践①-CSDN博客文章浏览阅读1k次,点赞15次,收藏15次。云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。云原生的代码通常包括三部分:业务代码、三方软件、处理非功能特性的代码。https://shuaici.blog.csdn.net/article/details/140695519

【系统架构设计师】十九、层次式架构设计理论与实践①-CSDN博客文章浏览阅读898次,点赞32次,收藏10次。层次式体系结构设计是一种常见的架构设计方法,也称为 N 层架构设计,它将系统组成为一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。层次式体系结构的每一层最多只影响两层,同时只要给相邻层提供相同的接口,也允许每层用不同的方法实现,这种方式也为软件重用提供了强大的支持。大部分的应用会分成表现层(或称为展示层)、中间层(或称为业务层)、访问层(或称为持久层)和数据层。https://shuaici.blog.csdn.net/article/details/140684710【系统架构设计师】十八、信息系统架构设计理论与实践①_信息系统技术架构-CSDN博客文章浏览阅读1k次,点赞47次,收藏27次。信息系统架构(ISA)是指对某一特定内容里的信息进行统筹、规划、设计、安排等一系列有机处理的活动。目前关于信息系统架构较为权威的定义有:(1)信息系统架构是系统的结构,由软件元素、元素外部可见属性和元素间关系组成。(2)信息系统架构是软件系统结构、行为和属性的高级抽象,由系统元素描述、元素间相互作用、元素集成模式及模式约束组成。(3)信息系统架构是系统的基础组织,体现为构件、构件间关系、构件和环境间关系、构件设计和演进的原则。_信息系统技术架构https://shuaici.blog.csdn.net/article/details/140641460

        

        

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

索引:SpringCloudAlibaba分布式组件全部框架笔记

索引:SpringCloudAlibaba分布式组件全部框架笔记 一推荐一套分布式微服务的版本管理父工程pom模板:Springcloud、SpringCloudAlibaba、Springboot二SpringBoot、SpringCloud、SpringCloudAlibaba等各种组件的版本匹配图:三Spring Cloud Aliba…

【MySQL篇】Percona XtraBackup标准化全库完整备份策略(第三篇,总共五篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

C++初学(8)

8.1、string类简介 现在可以用string类型的变量而不是字符数组来存储字符串,string类也用的会比数组简单,同时提供了将字符串作为一种数据类型的表示方式。 要使用string类,必须在程序中包含头文件string。string类位于名称空间std中&#…

2024年8月1日 十二生肖 今日运势

小运播报:2024年8月1日,星期四,农历六月廿七 (甲辰年辛未月丁酉日),法定工作日。今天建军节,祝保家卫国、英勇无畏的解放军战士们节日快乐! 红榜生肖:龙、牛、猪 需要注…

使用CLI脚手架搭建Vue2项目

一、配置前端的环境 1、下载安装Node.js 网址:Node.js 中文网 (nodejs.com.cn) 参考:【简明图文教程】Node.js的下载、安装、环境配置及测试_node下载安装-CSDN博客 推荐安装路径C盘改为D盘 2、配置nodejs及环境变量【安装的时候勾选Add to PATH就不…

GPT 和 BERT 系列论文阅读总结

文章目录 1. GPT1.1 GPT的目的和任务1.2 GPT的实现1.2.1 Unsupervised pre-training1.2.2 Supervised fine-tuning1.2.3 特定任务的输入格式 2. BERT2.1 BERT的目的和任务2.2 BERT的实现2.2.1 Masked Language Model2.2.2 Next Sentence Prediction (NSP) 3. GPT-23.1 初见 pro…

2-51 基于matlab的IFP_FCM(Improved fuzzy partitions-FCM)

基于matlab的IFP_FCM(Improved fuzzy partitions-FCM),改进型FCM(模糊C均值)聚类算法,解决了FCM算法对初始值设定较为敏感、训练速度慢、在迭代时容易陷入局部极小的问题。并附带了Box和Jenkins煤气炉数据模型辨识实例。程序已调通&#xff0…

基于单片机的电梯控制系统的设计

摘 要: 本文提出了一种基于单片机的电梯控制系统设计 。 设计以单片机为核心,通过使用和设计新型先进的硬件和控制程序来模拟和控制整个电梯的运行,在使用过程中具有成本低廉、 维护方便、 运行稳定 、 易于操作 、 安全系数高等优点 。 主要设计思路是…

RocketMQ消息发送基本示例(推送消费者)

消息生产者通过三种方式发送消息 1.同步发送:等待消息返回后再继续进行下面的操作 同步发送保证了消息的可靠性,适用于关键业务场景。 2.异步发送:不等待消息返回直接进入后续流程.broker将结果返回后调用callback函数,并使用 CountDownLatch计数 3.单向发送:只…

MySQL---JDBC

一、JDBC是什么? JDBC(Java Database Connectivity):是Java访问数据库的解决方案。 JDBC定义了一套标准的接口,即访问数据库的通用API,不同数据库的厂商根据各自数据库的特点实现这些接口。 JDBC希望用相同的方式访问不同的数据库&#xff0c…

cocos creator绘制网格背景(基于矢量绘图)

在2D游戏开发中,设计2D地图的背景实现通常有以下几种方式: 静态背景图: 最简单的方式是使用静态背景图,即将整个背景作为一个静态图像加载到游戏中。这种方式适用于简单的游戏或者背景不需要变化的场景。 平铺背景图:…

java~反射

反射 使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码) 原理图 加载完类后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对…

湖南(市场调研公司)源点咨询 如何进行精准化用户画像细分研究

湖南源点咨询认为,用户画像,是根据用户的基本属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。我们在这里为大家分析为什么要建立用户画像,进行用户细分调研。 一、什么是用户画像 简单来讲,就是想要在通…

Java每日一练,技术成长不间断

目录 题目1.下列关于继承的哪项叙述是正确的?2.Java的跨平台特性是指它的源代码可以在多个平台运行。()3.以下 _____ 不是 Object 类的方法4.以下代码:5.下面哪个流类不属于面向字符的流()总结 题目 选自牛…

KubeSphere 部署向量数据库 Milvus 实战指南

作者:运维有术星主 Milvus 是一个为通用人工智能(GenAI)应用而构建的开源向量数据库。它以卓越的性能和灵活性,提供了一个强大的平台,用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索,并以…

一文剖析高可用向量数据库的本质

面对因电力故障、网络问题或人为操作失误等导致的服务中断,数据库系统高可用能够保证系统在这些情况下仍然不间断地提供服务。如果数据库系统不具备高可用性,那么系统就需要承担停机和数据丢失等重大风险,而这些风险极有可能造成用户流失&…

python中的print函数总结

文章目录 打印变量打印数学计算多行文本复制n次字符串 x*n,n*x不换行输出多个数据换行符制表位转义原字符字符串切片格式化字符串千位分隔符(只适用于整数和浮点数)浮点数小数部分的精度字符串类型,.表示最大的显示长度整数类型浮点数类型 打…

(新)VMware虚拟机安装Linux教程(超详细)

创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄袭!!!违者必究!!! 创作不易,禁止转载抄…

C语言:扫雷游戏实现

一、扫雷游戏的分析和设计 扫雷游戏想必大家都玩过吧,初级的玩法是在一个9*9的棋盘上找到没有雷的格子,而今天我们就要做的就是9*9扫雷游戏的实现。 1、游戏功能和规则 使用控制台实现经典的扫雷游戏游戏可以通过菜单实现继续玩或者退出游戏扫雷的棋盘…

Flink SQL 的工作机制

前言 Flink SQL 引擎的工作流总结如图所示。 从图中可以看出,一段查询 SQL / 使用TableAPI 编写的程序(以下简称 TableAPI 代码)从输入到编译为可执行的 JobGraph 主要经历如下几个阶段: 将 SQL文本 / TableAPI 代码转化为逻辑执…