Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结

1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于多层架构 1

1.2. 主进化路线Cs》》 bs 》》  SOA》》MSA(微服务架构1

1.3. 1

1.4. 面向资源体系架构(ROA)1

1.4.1. 管道和过滤器风格(数据流风格)2

1.5. 数据抽象与面向对象风格(调用/返回风格)2

1.6. 基于事件的隐式调用风格(独立构件风格)2

1.7. 层次系统风格(调用/返回风格)3

1.8. 参考资料3

2. 4

软件架构知识图谱n科技树

1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于多层架构

1.2. 主进化路线Cs》》 bs 》》  SOA》》MSA(微服务架构

1.3.  

hybrid

1.4. 面向资源体系架构(ROA)

基于 REST 的软件体系结构风格(Software Architecture Style)称之为面向资源体系架构(Resource-oriented Architecture,ROA

1.4.1. 管道和过滤器风格(数据流风格)

在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。因此,这里的构件被称为过滤器,这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。此风格特别重要的 过滤器必须是独立的实体,它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道/过滤器网络输出的正确性并不依赖于过滤器进 行增量计算过程的顺序。

 管道/过滤器风格的软件体系结构具有许多很好的特点:

(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;

(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

(3)支持软件重用。重要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;

(4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

(5)允许对一些如吞吐量、死锁等属性的分析;

(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。

  但是,这样的系统也存在着若干不利因素。

(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。

(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。

(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

1.5. 数据抽象与面向对象风格(调用/返回风格)

抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。

1.6. 基于事件的隐式调用风格(独立构件风格)

  基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。

  从体系结构上说,这种风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。

  基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。

  支持基于事件的隐式调用的应用系统很多。例如,在编程环境中用于集成各种工具,在数据库管理系统中确保数据的一致性约束,在用户界面系统中管理数据,以及在编辑器中支持语法检查。例如在某系统中,编辑器和变量监视器可以登记相应Debugger的断点事件。当Debugger在断点处停下时,它声明该事件,由系统自动调用处理程序,如编辑程序可以卷屏到断点,变量监视器刷新变量数值。而Debugger本身只声明事件,并不关心哪些过程会启动,也不关心这些过程做什么处理。

  隐式调用系统的主要优点有:

(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。

(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。

  隐式调用系统的主要缺点有:

(1)构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。

(2)数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。

(3)既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。

1.7. 层次系统风格(调用/返回风格)

  层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。

1.8. 参考资料

基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型.html

经典软件架构模式_博学睿智深藏_新浪博客.html

作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王"Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak

简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

头衔:uke总部o2o负责人,全球网格化项目创始人,

uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

,Uke部落首席大酋长,

uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

奶牛科技cto ,uke 首席cto  技术总监 研发总监 研发主管 部门总监

uke波利尼西亚区大区连锁负责人 汤加王国区域负责人。

uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,

uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

Uke软件标准化协会理事长理事长 uke终身教育学校副校长

Uke 数据库与存储标准化协会副会长 uke出版社编辑总编

Uke医院 与医学院方面的创始人

转载请注明来源:attilax的专栏  ?http://www.cnblogs.com/attilax/

--Atiend

2.  

Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结相关推荐

  1. 系统架构师—软件架构设计(二)CS/BS/SOA/DSSA/ABSD

    1.层次架构风格 1.1.两层C/S架构 客户端和服务器都有处理功能,相比较于传统的集中式软件架构,还是有不少优点的,但是现在已经不常用,原因有:开发成本较高.客户端程序设计复杂.信息内容和形式单一. ...

  2. 论文阅读—图像分割方法综述(二)(arXiv:[cs:cv]20200410)

    上一篇章,主要介绍了目前图像分割领域常用的基础网络结构,以及总结了十大图像分割算法,本节继续介绍剩余算法. 论文阅读-图像分割方法综述(一)(arXiv:[cs:cv]20200410) 论文阅读-图 ...

  3. 论文阅读—图像分割方法综述(三)(arXiv:[cs:cv]20200410)

    前面介绍了分割领域常用网络架构及其相应的分割模型,本节主要介绍一些最受欢迎的图像分割数据集及其特征.此外还有评估基于深度学习的分割模型的常用指标.并报告了这些模型的定量结果和实验性能. 系列回顾 论文 ...

  4. 程序员修炼之道:正交软件架构方法

    程序员修炼之道:正交软件架构方法 责任编辑:李倩作者:ITPUB论坛 2009-02-20 [内容导航] 第1页:什么是正交性 第2页:你可以将若干技术用于维持正交性 文本Tag: 系统架构 软件架构 ...

  5. 【大数据-文摘笔记】京东HBase平台进化与演进

    1.HBase京东集团级存储 HBase的软件,它的实现思想与Google Bigtable相似(也可以理解为是Bigtable的开源实现),是一个高可靠.分布式,面向列的开源数据库.直到今天HBas ...

  6. Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结

    Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结 1. defer关键字1 2. try!形式存在的"不失败"机制3 3. Guard 4 4 ...

  7. Python 自学笔记 总结 3.0 CS/BS 架构

    一.CS/BS 架构 1.1 什么是C/S架构? c/s架构是第一种比较早的软件架构,主要用于局域网内,也叫客户机/服务器模式. 它可分为客户机和服务器两层: 第一层:在客户机系统上结合了界面显示与业 ...

  8. Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx

    Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx 1.1. 实现目标:1 1.2. 实现key与value类型的..一直分析到非 jsonob ...

  9. 一定要理解的两种常见软件开发体系结构(CS/BS结构)的区别!!!

    CS/BS架构 ==黄色标注部分重点注意== CS结构 BS结构 CS结构与BS结构比较 ==有问题可以在评论指正,欢迎讨论,谢谢大家!!== 黄色标注部分重点注意 CS结构 •CS(Client/S ...

最新文章

  1. R:关系型数据库管理
  2. 甘肃黄土山地数十载现“满眼绿” 护林员四季不歇护植被
  3. 企业命令linux下处理实时日志生成另一个实时日志
  4. Spanner——Google的全球化分布式数据库
  5. ML:推荐给小白入门机器学习一系列书籍
  6. 13.multi-term-vector请求
  7. 用Elasticsearch代替数据库存储日志方式
  8. groovy 兼容 java_java – eclipse插件和maven依赖项中存在的’groovy-all’jar之间的兼容性问题...
  9. Linux里的/dev/null和21和基本符号
  10. java 返回值给c_Java有陷阱,用时需谨慎——慎用入参做返回值
  11. openfire 详细介绍一
  12. Git:git如何拉取指定分支到本地
  13. 在Visualforce页面中使用Visual Flow
  14. 吉木萨尔县文化旅游策划案——天山圣地,武侠之都!
  15. win10桌面的计算机图标怎么删除,win10系统桌面图标小箭头去掉的操作步骤
  16. Therefore, hence, so, then, thus
  17. CAS-KG——知识图谱数据的存储与检索
  18. vim全局搜索当前目录
  19. (一)Linux中的网络配置
  20. 【2014最新】iOS App 提交上架store 详细流程

热门文章

  1. 大一考二级c语言,大专学生计算机二级是大一考还是大二考
  2. Html设置div重置样式,CSS 重置样式
  3. 20210601:力扣第243周周赛(上)
  4. linux utf8转gbk_「正点原子Linux连载」第四章开发环境搭建(2)
  5. vue openlayer单击地图事件循环多次执行_Vue中$nextTick的理解
  6. mat查找多线程并发下大对象导致的堆内存问题
  7. 建班子:企业需要建立什么样的班子?
  8. 【转】关于VB中Shell及ShellExecute的总结与记录
  9. Linux中find用法整理
  10. expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令...