##一篇文章带你深入 REST

###什么是软件架构,和软件结构的区别

软件架构是软件系统在运行时的抽象,而软件结构则是静态源代码的属性。

核心:抽象原则

####元素

处理、数据、连接元素,元素属性与关系的定义形式。

=== 本文还未完成,先占坑 ====

不包括原理 (蓝图)

处理元素是执行数据转换的元素,数据元素是包含被使用和 被转换的信息的元素,连接元素是将架构的不同部分结合在一起的 粘合剂。

对应:组件(处理元素)和 连接器(连接元素)。

数据是流动在其中的,而不是方框➕箭头的 静态架构描述。

####组件 和 连接器

组件应该由它为其他组件提供的接口和服务来定义, 而不是由它在接口之后的实现来定义。(面向对象)

连接器的例子包括共享的表述、远程过程调用、消息传递协议和数据流。

####数据

以数据为中心的架构建模。

####视图

问题的关注点。(5种协作)

###架构属性

####性能

网络性能(吞吐量,负载,带宽,可用带宽)

用户可察觉性能(延迟,完成时间)

网络效率

####可重用性

####可扩展性

####可进化性