软件架构文献阅读笔记

C语言单片机系统软件架构的教学研究_蔡逢煌
1)为什么读这个?
本科阶段学习嵌入式开发流水灯和蜂鸣器还有智能小车采用的是简单一些执行程序,几个∗.c文件加上若干个库文件,这种编程方式使得应用程序离不开底层的寄存器,当单片机功能增加,采用这种方式编写的程序可读性和移植性比较差。我没有建立相应的开发软件的架构,对这一块很模糊。看到题目觉得和之前接触的非常相关,所以就来重新建立起一个比较完整的架构。

2)作者写这篇文章的目的是什么,有什么益处?
针对C 语言单片机系统开发,阐述了单片机系统的软件架构。 将多层软件框架模型引入到单片机应用软件开发, 按照系统功能进行分层隔离封装,降低功能模块间的耦合关系,设计出包含主程序层、应用模块层、功能模块层和 MCU 硬件驱动层等四层架构模型。该软件架构的特点是:上层可以调用下层的模块函数;同一层模块不能互相调用。 利用分层技术实现软件的==“高内聚,低耦合”== 这一软件工程思想,实现软件开发和维护的高度灵活性以及功能模块的复用度。 这种架构有利于提高单片机软件开发的可靠性、拓展性和重用性及移植性。
软件架构文献阅读笔记
MCU 模块驱动层完成寄存器的相关操作,主要模块有:振荡器模块、锁相环模块、GPIO 模块、中断模块、定时器模块、PWM 模块、捕获模块、AD 采样模块、串行通信模块等等

用户层主要是对相应模块进行配置和初始化,使得这些模块能够实现特定的使用功能。 通过引用 MCU模块驱动层的函数来配置各个模块的特定功能。

应用层根据单片机系统需求,将用户构件进行逻辑组合,实现复杂的应用需求。 这里主要体现在逻辑关系的设计。

主程序层主要是对单片机模块的初始化函数和应用功能函数的调用,实现整个单片机系统的软件功能。

3)作者这篇文章对我有什么帮助?
当应用程序比较复杂的时候,根据文献中的架构建立一个完整的流程图,增加代码的可读性,有利于提高自己开发单片机软件的易于维护性、拓展性和重用性及移植性。

基于微服务架构B_S系统的性能分析_陈建海
名词解释和理解:

PaaS(platform as a service)平台就是指云环境中的应用基础设施服务,也可以说是中间件即服务。PaaS平台在云架构中位于中间层,其上层SaaS(Software as a Service–软件即服务),其下层是IaaS(Infrastructure as a Service–基础架构即服务)。在传统On-Premise(本地部署)方式下,应用基础设施即中间件的种类非常多,有应用服务器,数据库,ESBs, BPM,Portal,消息中间件,远程对象调用中间件等等。对于PaaS平台,Gartner把它们分为两类,一类是应用部署和运行平台APaaS(application platform as a service),另一类是集成平台IPaaS(integration as a service)。
人们经常说的PaaS平台基本上是指APaaS,如Force和Google App Engine

如果你是一个网站站长,想要建立一个网站。不采用云服务,你所需要的投入大概是:买服务器,安装服务器软件,编写网站程序。
现在你追随潮流,采用流行的云计算,
如果你采用IaaS服务,那么意味着你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件
。而如果你采用PaaS的服务,那么意味着你既不需要买服务器,也不需要自己装服务器软件,只需要自己开发网站程序
如果你再进一步,购买某些在线论坛或者在线网店的服务,这意味着你也不用自己开发网站程序,只需要使用它们开发好的程序,而且他们会负责程序的升级、维护、增加服务器等,而你只需要专心运营即可,此即为SaaS。

微服务是一个细粒度的 SOA (Service-Oriented
Architecture, 面向服务架构), 服务的划分基于领域驱动
设计, 每个微服务只专注自己的职责, 符合软件设计高
内聚、低耦合原则. **微服务单独部署, 服务之间使用
REST 风格通信机制, 各个微服务部署在不同主机并采
用分布式管理机制.**可以采用不同的编程语言、不同的数据存储技术实现系统功能

传统单体应用程序在项目变得越来越庞大时, 任
意一个 bug 将导致整个应用系统重新部署. 微服务架
构只需要部署更新的微服务, 任何一个功能修改, 只
停止对应的微服务, 不需要暂停整个系统, 解决了
bug 修复和系统更新需要停止整个系统访问的问题. 从
实验结果看, 系统的性能在微服务架构系统上具有明
显优势.

摘要:
传统的单体应用架构系统, 随着用户需求和系统功能的变动, 出现了单体应用功能模块边界模糊、部署效
率低、扩展困难、技术更迭代价高等缺点, 尤其是单个模块修改部署效率低的问题. 因此, 微服务技术得到关注和
应用, 微服务架构的业务边界确定服务边界, 具有高内聚性, 易于开发与维护、局部修改部署、技术选择不受限等
优势. 本文研究微服务应用系统的架构优势, 设计了一 B/S 应用系统进行测试分析. 实验设计测试指标为线程响应
时间、吞吐量以及部署时间的实验方案, 并使用 Jmeter 性能测试工具进行测试, 分析了 20 个和 50 个并发用户的
测试数据. 实验结果表明微服务在响应时间、吞吐量等指标有明显的效率和性能优势.

文章组织
微服务技术介绍——>实验环境和服务应用场景介绍——>微服务性能分析(雪崩效应处理机制?、Jmeter测试响应时间吞吐量、部署时间)

区别:微服务修改功能模块都在同一个服务中, 只要部署该服务而不必重新部署整个系统, 避免花费许多不必要的部署时间和资源, 相反, 单体应用架构的系统, 无论修改的功能是否在同一个模块中, 都得重新部署整个系统, 大大浪费了部署资源和时间