从零开始学架构——架构基础

栏目: 编程语言 · 发布时间: 5年前

内容简介:本文章的内容是根据书籍《从零开始学架构》整理的资料,供作者以及读者查阅。a. “系统由一群关联个体组成”,个体分别是:系统、子系统、模块、组件等。

本文章的内容是根据书籍《从零开始学架构》整理的资料,供作者以及读者查阅。

1. 架构的定义

软件架构指软件系统的顶层架构。 详细阐述如下:

a. “系统由一群关联个体组成”,个体分别是:系统、子系统、模块、组件等。 架构需要明确系统包含哪些“个体”。

b. 系统中的个体需要“按照某种规则”运作,架构需要明确个体运作和协作的规则。

2. 架构设计的目的

2.1. 软件架构的历史背景

(1)机器语言:其是最早的开发语言,直接使用0和1来表示机器可以识别的指令和数据。主要问题:太难写、太难读、太难改。

(2)汇编语言:为了解决机器语言的问题,汇编语言应运而生。汇编语言虽然解决了机器语言读写复杂的问题,但本质还是面向机器的,因为需要我们精确了解计算底层的知识才可编写汇编语言。

(3)高级语言:为了解决汇编语言的问题,计算机前辈开始又设计了多个高级语言,其可以让 程序员 不需要关注机器底层的低级结构和逻辑,只需关注具体的问题和业务即可。优势:通过编译处理,高级语言可以被编译成适合不同CPU指令的机器语言。

2.2. 软件危机

(1)20世纪60年代第一次出现软件危机引入了“结构化编程”,创建了“模块”概念;

(2)20世纪80年代第二次软件危机引出了“面向对象编程”,创造了“对象”概念;

(3)20世纪90年代“软件架构”开始流行,创建了“组件”该鸟。

2.3.架构设计真正目的

从软件开发历史可以看到, 整个软件技术发展的历史,其实就是一部与“复杂度”斗争的历史,架构出现也不例外。 架构设计主要目的就是 为了解决复杂度带来的问题。

2.4.复杂度来源

2.4.1. 高性能

软件系统高性能带来的复杂度主要体现在:a. 单台计算机内部为了高性能带来的复杂度;b. 多台计算机集群为了高性能带来的复杂  度。

操作系统和性能相关的就是进程和线程,最早的计算机是没有操作系统的,只有输入、计算和输出功能,用户输入一指令,计算机完成操作。这样的处理性能是很低效的。

为了解决手工操作的低效性, 批处理系统 应运而生。批处理就是先把要执行的指令记下来(写在纸带、磁带、磁盘等),形成指令清单(任务),然后交给计算机执行。批处理操作系统负责读取任务进行处理,无需等待人工操作,这样性能就有了很大提升。但是具有明显缺点:计算机一次只能执行一个任务,例如现需从I/O设备读取大量数据,在进行I/O操作时,CPU其实是空闲的,而这个空闲时间是可以进行其他计算操作。

为了进一步提升性能,人们发明了 “进程” ,用进程对应一个任务,每个任务都有独立的内存空间,进程间互不相关,由操作系统进行调度。由于此时还没有多核和多线程的概念,为了达到多进程并行执行的目的,采取分时操作(即把CPU的时间分成很多片段,每片段只能执行某进程的指令)。

多进程虽然要求每个任务都有独立的空间,进程互不相关。但是在用户角度来看,如果进程在运行过程中可以进行通信会使任务设计更加灵活高效。例如现存在两个任务A和B,两任务不能相互通信,A只能将结果写入存储,B读取进行处理,这样不仅任务低效,而且任务设计更加复杂。为了解决此问题, 进程间通信的各种方式被设计出来,如:管道、消息队列、信号量、共享存储等。

多进程可以使任务并行处理,但是进程内部只能串行处理,而进程内部之间的子任务有时也需要并行处理。为了解决此问题,人们又发明了 线程 (进程内部的子任务)。为了保证数据的完成性,又发明了 互斥锁机制 。有了多线程以后,操作系统的调度的最小单位是线程,资源分配的最小单位是进程。

操作系统发展到现在,如果我们需要完成一个高性能的软件系统,需考虑如下技术点:多进程、多线程、进程间通信、多线程并发等。

2.4.2. 高可用

高可用是指“系统无中断的执行其功能”的能力,本质是通过“冗余”来实现高可用, 即是通过增加更多机器来达到效果。

2.4.3. 可扩展性

可扩展性是指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统无需或者少量修改就可以支持,无须整个系统重建或重构。

2.4.4. 低成本

2.4.2. 安全以及规模


以上所述就是小编给大家介绍的《从零开始学架构——架构基础》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引爆点

引爆点

【加】马尔科姆•格拉德威尔(Malcolm Gladwell) / 钱清、覃爱冬 / 中信出版社 / 2014-4 / 36.00元

《引爆点》是《纽约客》怪才格拉德威尔的一部才华横溢之作。他以社会上突如其来的流行潮为切入点,从全新角度探索了控制科学和营销模式。他认为,思想、行为、信息及产品常会像传染病暴发一样迅速传播。正如一个病人就能引起全城流感;几位涂鸦爱好者能在地铁掀起犯罪浪潮;一位满意而归的顾客还能让新开张的餐馆座无虚席;发起小规模流行的团队能引发大规模流行风暴。这些现象均属“社会流行潮”,它达到临界水平并爆发的那一刻,......一起来看看 《引爆点》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具