目录
五、嵌入式中间件
中间件 (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 基于架构的软件设计开发方法的应用
6.2 属性驱动的软件设计方法
属性驱动的软件设计 (Attribute-Driven Design,ADD)是把一组质量属性场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量战术等)对软件架构进行设计的一种方法。
6.2.1 ADD 开发方法的质量属性与场景
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