复杂系统体系结构 课件 第十一章 复杂系统体系结构设计的新认识_第1页
复杂系统体系结构 课件 第十一章 复杂系统体系结构设计的新认识_第2页
复杂系统体系结构 课件 第十一章 复杂系统体系结构设计的新认识_第3页
复杂系统体系结构 课件 第十一章 复杂系统体系结构设计的新认识_第4页
复杂系统体系结构 课件 第十一章 复杂系统体系结构设计的新认识_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十一章复杂系统体系结构设计的新认识2024年11月19日2024第三篇复杂系统体系结构设计新范式11.1系统思维方法的复杂系统设计11.2对复杂系统体系结构设计的新认识11.3复杂系统体系结构设计内容的变化

第十一章复杂系统体系结构设计的新认识contents目录11.1系统思维方法的复杂系统设计01复杂系统、系统架构、系统思维复杂系统是由一组实体和这些实体之间的关系所构成的集合,其功能要大于这些实体各自的功能之和。这个定义体现了两个重点:1.复杂系统是由相互作用的或相互联系的实体所构成的。(实体,也可称部件,用来构成系统的各个小模块)。2.实体之间发生相互作用时会出现新的功能,新的功能不同于那些单个实体所具备的功能。如果某物是一个连贯的整体,那它就不是系统。比如:一块砖(宏观层面上),因为它不包含实体,但一面墙却可以构成一个系统,因为它包含实体(许多砖块和砂浆)以及关系(负载,粘合以及几何关系)。有实体但实体之间无关系也不构成系统,例如:西湖的水和印度的一对情侣,他们不构成系统。与复杂系统密切联系的另外两个概念是架构和系统思维[1][2],架构就是对系统中的实体及实体之间的关系做的抽象描述,可以用文字,流程图,思维导图等简洁直观的表达出来。而系统思维就是把某个现象或某个问题明确视为一个系统,进而来分析它。系统思维与其他思维并列,例如:批判思维(评估或质疑某个说法的有效性)、分析思维(根据一套规律或原则进行分析)、创新思维(从0到1或组合现有的创造新产品或想法)等。02系统思维方法的复杂系统的拆解复杂系统之间发生相互作用,产生新的功能,称之为涌现。之所以要构建复杂系统,就是为了得到令人满意的涌现物或者功能(系统所做的事情,也就是它动作和输出)。但有时候系统也会出现我们不可预料也不合人意的涌现物[3]。系统架构第一条原则就是涌现原则,除了功能之外,系统还会有涌现性能、可靠性、可维护性、安全性等等。当各实体拼成一个系统时,实体之间的交互会把功能,性能和其他内在属性涌现出来,我们要思考并设计出合乎我们预期的涌现和控制意外的涌现属性。图11-1描述了根据系统思维方法的复杂系统的拆解。总而言之,实体之间的交互会生成涌现物,系统的价值是由涌现物所赋予的。涌现的结果,使得变化以无法预测的方式进行传播。比如:微商。能够涌现出预期属性的系统,是成功的系统,不能够涌现出来预期属性或意外涌现出不良属性的系统,是失败的系统。图11-1系统思维方法的复杂系统的拆解03冰山模型-系统思维之深度思考图11-2系统思维的冰山模型冰山模型的理念在于透过现象看本质,看到冰山之下的问题。问题在于,什么才是本质?如图11-2所示,在系统思维里,这个冰山被分成了4个部分:事件、模式、结构和心智模型。系统思维所强调的深度思考就是在说,在面对一个问题时,能不能挖到这个问题背后真正的本质。这个本质不仅仅是到表象行为背后的模式,而且还更要深入到这个模式背后的底层结构、甚至行为人群的心智模型。只有这样,才算是真正的“深度思考”。04系统循环图-系统思维之动态思考系统思维关注的不仅仅是每个独立的问题,而且还关注问题之间的因果链条。系统循环图可以很好地帮助做到这一点:基于已经识别到的问题集:分析每个问题产生的原因和影响结果,找到某个问题所关联的上下游问题。串联问题之间的因果链,洞察问题之间的循环结构(Loops)。整合识别到的多个循环,总结问题域的底层核心结构(CoreLoop)。基于以上内容,用系统循环图(SystemMap)可视化整个问题域的系统结构,如图11-3所示。可见,相比于关注问题本身,系统思维更加关注问题之间关系。从关系出发洞察问题的动态发展趋势,识别问题背后的“恶性循环”。图11-3系统思维的系统循环图05系统思维与设计思维之对比设计思维是以人为本的设计理念,所以强调从人出发来向外看。它是一种“探针式”的思考方式,通过找到问题切片来化繁为简。系统思维是则更加关注人所处的系统,强调先洞察系统全局,然后在系统的上下文中定位人的问题,所以系统思维更加接受“复杂未知”的天然现状。设计思维探索发掘问题集合,并独立分析个中问题。而系统思维更加关注问题之间的关系,不把问题看做独立的个体。设计思维关注于问题在当下的情况,忽略了问题可能的发展态势。而系统思维认为,动态变化是问题的本质特征,通过动态分析问题的前因后果来洞察问题发展的蛛丝马迹。图11-4系统思维与设计思维的对比11.2对复杂系统体系结构设计的新认识01体系架构方法是解决大型复杂信息系统分析设计问题的一种行之有效的手段。这一概念最早来自于建筑领域,表示建筑样式,后来拓展到计算机领域用以表示计算机的构成模式。20世纪80年代,Zachman把架构方法引入信息系统领域,并逐渐在军事和民用领域获得极大发展。随着信息与网络技术的飞速发展,旨在解决多系统集成与交互问题的概念——体系(systemofsystems,SoS)被提出来,成为研究人员关注的对象。体系概念及方法旨在解决传统系统科学方法无法解决的众多系统在网络环境中的集成、交互、演化与发展问题。通常认为,体系介于简单系统与复杂系统之间,其复杂性处在有序和无序的边缘,多则失控,少则失能。因此,要认识并掌握体系,首先应认识其独特的体系复杂性。02体系复杂性的外在表现体系涌现性所谓涌现,指的是系统新的整体性质的产生,也就是“1+1>2”的增量部分。简单地讲,涌现是一种“情理之中,意料之外”的现象,其难以通过还原论的线性关系简单聚合而得出。体系适应性“适应性造就复杂性”。体系的各系统各部分,通过个体间、组织间不同类型性质的适应性,形成有效的自组织自协同机制。著名的“鸟群”模型,验证了个体适应与局部控制可以形成稳定的群体行为。体系演化性受应用场景、技术发展等因素影响,体系的建与用是个紧密耦合、相互结合的演进过程。体系规划设计,较难有一步到位的完美设计和一蹴而就的最优方案,只能以“增量”方式边建边用边迭代完善,久久为功使其“生长”而成。01020303架构设计架构方法的核心思想是多视图方法,也就是从不同利益相关者的角度认识和分析研究对象,将复杂问题分解为一系列简单问题,通过简单问题解的综合得到复杂问题解。因此,架构方法比较适合复杂体系的特点和设计需求。作为系统设计的主要内容,架构设计通常也是采用结构化、面向对象和面向服务等传统的系统分析与设计方法来开展。但是对于大型复杂体系,这些设计架构的方法存在明显不足。因为复杂体系的动态性,体系时刻处于生长演化之中,不能像对待系统一样,在一个时刻把整个旧体系更新为一个新体系。“新”和“旧”是相对体系成员或成员间关系而言的。新成员会不断加入体系,老成员则会逐步退出体系。因此需要重新认识复杂体系的架构,明确其内涵组成,理清复杂体系架构设计的内容,并提出适应体系架构特点的新的设计范式。1990年,IEEESTD61012把架构定义为“系统或其组成部分的组织结构”。1995年,美国国防部基于IEEESTD61012的架构定义,将架构重新定义为“各组成单元的结构、它们之间的关系以及制约它们设计和随时间演进的原则和指南”。2000年,IEEESTD1471—2000又将架构定义修改为“架构是描述系统组成单元的基本结构,它们之间、它们与环境之间的关系,以及指导系统设计与扩展的原则”。04架构设计的主要工作从以上定义可以看出,架构设计主要完成3方面的工作:一是确定研究对象的组成单元,也就是从功能、能力、物理实现、信息等多个层面明确研究对象的组成要素;二是组成单元之间的关系,具体包括逻辑层面的约束影响关系、信息层面的输入输出关系、物理层面的数据接口关系等;三是系统在设计过程中和未来运行时应该遵循的原则和准则,具体包括技术标准、业务规程和管理规范等。对传统的系统来说,以上三方面的设计内容都是确定性的,也就是在设计完成后,系统组成单元、组成单元关系、系统与环境的关系、系统演化更新的原则策略等,都确定下来了。接下来的工作就是如何落实架构设计、如何组织详细设计和实施了。但是对复杂体系而言,以上三方面的内容却出现了新的内涵,在设计时会遇到新的问题。11.3复杂系统体系结构设计内容的变化01设计体系组成单元的变化复杂系统体系的开放性决定了体系组成成员不是恒定不变的,而是随着时间的演进而发生变化,会有新的体系成员加入体系,也会有老的体系成员退出体系。传统系统设计时会明确未来目标系统的组成,也就是在未来指定的时间点,系统的组成基本上会体现现在的设想和考虑,即使有偏差也不会大。但对复杂系统体系而言,这点是做不到的,或者说从物理层面是不可能确定出体系在未来特定时刻的成员组成的。就如一个社会、企业或组织,不能提前设计好未来一定会有张三还是李四。这个问题需要重新审视,组成单元设计的内涵和范畴是什么?在体系设计中,应该选择哪种形式,或在哪个层面开展体系组成单元的设计。对蚂蚁和它的社会结构做了仔细的研究,但至今为止也没搞清楚它们的个体和群体的行为。蚂蚁的个体行为是如何形成庞大而复杂的结构,蚂蚁之间是如何通讯,蚁群作为整体是如何适应环境的变化等等?研究复杂系统的人还会遇到下述这些问题,比如自然界中我们认为复杂而具有适应性的系统,如大脑、昆虫群落、免疫系统、细胞、全球经济、生物进化,他们是如何通过简单的规则而产出复杂的适应性行为,一些相互依赖而又自私的生物是如何一起协作来解决影响他们整体生存的问题,这些现象具有普遍规律吗,生命和智能可以用机器和计算机来实现吗?01设计体系组成单元的变化一个动态复杂系统具有个体多样性的特征,是系统“优胜劣汰”动态演化过程的重要体现。系统的个体多样性是指差异化的系统个体在动态演化过程中种类日渐繁多,即从某一个时点看,系统个体的种类是繁多的,同时,从一个时间跨段看,系统个体的种类结构是动态变化,并且总体上是向着更加多样化方向不断地演化的。美国圣塔菲研究所科学家考夫曼甚至认为,复杂系统的个体多样性将有可能成为热力学第四定律,即非平衡系统总是朝向尽量多样化、尽量复杂化的方向发展。考夫曼的自动催化实验也证明了个体多样性的重要性。在自动催化实验中,当个体种类逐渐增多,个体之间相互作用复杂程度不断上升,并且达到一定临界点时,系统就会发生自动催化现象,系统的秩序自然而然产生于其中。也就是说,系统秩序的产生是系统个体多样化过程中的内生现象,并不需要依赖于外力因素。02设计体系组成单元间的关系的变化如果组成单元都不能确定,组成单元间关系又会体现为什么?而且体系的多态性和开放性决定了体系在运行时是按照所承担的任务、动态选择成员进行组织运用的。这就决定了体系成员间的关系是动态的、任务相关的。传统系统设计中组成单元间确定的信息交互、数据接口等关系,在体系设计时又会有什么新的表现形式?动态体系结构主要通过软件体系结构的动态演化来体现其动态性。其动态性指软件体系结构在运行时刻发生变化,这种变化通常源于系统需求、技术、环境、分布等因素的动态变化。02软件体系结构软件体系结构是对软件系统的整体组织结构以及控制结构的刻画,包括对系统中各计算单元(构件)的功能分配和各单元之间的高层交互说明(连接件)的约束。对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统的需求或所处环境发生了变化,此时通过停止系统运行进行更新或维护将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。传统的静态体系结构缺乏表示动态更新的机制,很难用它来分析、描述在运行时更新的系统,更不能用它来指导系统进行动态演化。因此,动态体系结构的研究应运而生。此外,随着网络和许多新兴软件技术的发展,人们对软件体系结构也提出了许多更高的要求,如软件体系结构的扩展性、复用性和适应性等。采用动态体系结构,不仅能够帮助一些具有特殊使命的系统在运行时根据需求进行更新,并降低更新的费用和风险,还可以增强系统的用户自定义性和可扩展性,为用户提供更新系统属性的服务。02对动态体系结构的研究对动态体系结构的研究主要集中在动态演化、模拟/描述软件体系结构动态演化的语言和支持软件体系结构动态演化的执行工具三个方面。首先,对于动态演化的研究主要围绕着动态演化的需求来源、动态演化时期、动态演化类型、动态演化方法等方面展开。体系结构的动态演化主要来自两类需求:软件内部执行所导致的体系结构改变;软件系统外部的请求对软件进行重配置。动态体系结构的演化一般发生在四个时期:①设计时期。演化发生在与体系结构模型相关的代码编译之前。②预执行时期。演化发生在执行之前、编译之后。③受约束的运行时期。演化只发生在某些特定约束满足时。④运行时期。系统的体系结构在运行时不能满足要求而发生的改变。动态演化类型分为三类:交互动态性;结构动态性;体系动态性。一般而言,实现软件体系结构动态演化的基本方法是将动态体系结构在可运行应用系统中以一类有状态、有行为、可操作的实体形式显式地表示出来,并且被整个运行环境共享,作为整个系统运行的依据。也就是说,体系结构相关信息的改变可用来触发、驱动系统自身的动态调整。02动态体系结构描述语言动态体系结构描述语言可分为形式化和非形式化两类。研究主流是形式化描述语言。形式化描述语言要求既要能够描述构件、连接件等单独的实体,体现软件体系结构关于构件、连接件的属性,如构件的抽象特点、连接件的通用性等,又要能够描述构件和连接件的交互,进行构件与连接件之间的一致性检查,更重要的是还要能够描述系统体系结构的运行时演化。用于描述动态体系结构的形式化语言主要来自对现有的一些体系结构描述语言的扩展,采用到的技术主要有:基于图论的方法;进程代数方法;基于逻辑重写的方法。02软件体系结构动态演化的执行工具对软件体系结构动态演化的执行工具研究在国内外都比较多。根据体系结构指导软件系统演化时所采用的技术,可将动态演化的执行工具分为:①基于反射原理。反射是计算系统监控自己状态从而改变自身运行方式的一种能力。②基于构件操作。构件是软件系统的一个特定功能单位,主要由一组信息、行为和接口组成。③基于反演工作流。反演计算是一个程序在执行时对描述自身的数据进行操作的能力。④基于π演算。π演算是在通信系统演算(calculusofcommunicatingsystems;CCS)基础上提出的基于命名概念的进程代数并发通信行为演算方法。⑤基于不动点转移的矩阵变换。将软件体系结构作为一个整体来观察它在不同时刻稳态之间的迁移和波动。⑥利用一个外部的体系结构演化管理器。03设计应该遵循的原则和准则的变化这里的原则和准则既包括约束架构设计活动的,也包括约束未来体系运行的原则准则,重点是后一类。由于体系任务和环境会发生变化,体系成员和成员间的关系也随着体系运行而不断发生演化,因此约束体系运行的规则和准则也是多样化的,既包括长期有效的原则和准则,也包括应对随着体系运行所出现新问题的原则、准则和策略,这些原则、准则和策略不能在体系架构设计时就完全确定,因此在体系架构设计时,要完成一部分元原则、元准则和元策略的设计,以此指导体系运行过程中需要的准则和策略的按需生成。复杂系统设计一般需要遵循的原则,如图11-5所示。图11-5复杂系统设计遵循的原则03设计应该遵循的原则和准则的变化识别核心问题是解决需求的第一步。有些人会直接进入开发设计阶段。然而,更应该思考为什么要做这个需求,这样有助于进行业务架构设计并掌控整个需求,避免走偏。在面对复杂问题时,需要将其简化,将复杂的问题分解为小模块,并逐个攻破。每个模块的职责相对单一,这样可以保证未来的扩展性和可维护性相对独立且简单。在沟通中要使用通用语言来确保大家对领域设计中的领域模型有一致的理解。清晰地定义系统、模型的定位、关系和交互等是很重要的。具备未来规划能力也很重要,包括系统、技术、方案和容量等方面。这样可以确保系统能够长期稳定地提供价值服务。图11-5复杂系统设计遵循的原则遵循各种设计模式和最佳实践是很重要的,避免从零开始。这包括遵循SOLID设计原则、CAP理论和BASE理论等。03复杂系统的架构特点1.强调功能拆解、模块化设计和原子化设计在处理复杂系统时,必须仔细划分功能、模块和领域。每个模块都应该有明确且单一的职责。这样,在分析问题时,可以将问题集中在特定范围内,不会产生过大的影响,方便对整个系统进行维护和扩展。2.纵向和横向的扩展能力至关重要当处理小型功能时,可能不需要考虑太多因素。但是当面对复杂系统时,就必须考虑到许多因素,包括未来功能的承载能力、流量承载能力、数据规模以及响应要求等等。需要为纵向或横向留出足够的扩展能力。这些不能一蹴而就,但是需要根据规划留出必要的扩展空间,以确保系统具备长期价值。图11-6复杂系统的架构特点03复杂系统的架构特点3.架构优先对于复杂系统来说,简单几个流程图已经无法解决问题了。需要通过领域架构明确领域划分和边界,在系统架构中明确功能模块和边界,在应用架构中明确各个应用的职责、边界、结构划分和依赖关系,在技术架构中明确我们使用的技术栈及其在整个系统中的应用边界,在数据架构中明确数据存储方式、结构和使用方式等。所有这些架构都必须清晰、明确,并着眼于系统的长期价值。4.分而治之对于复杂系统来说,拆分是必然的。将大问题分解为小问题,并根据领域、模块和功能的划分,将问题归属于不同的边界内,逐个攻破。当小问题得到解决时,通过合理的依赖和组合,就能有效地解决大问题,实现整个系统的建设目标。图11-6复杂系统的架构特点03复杂系统的架构特点可见,复杂体系架构所描述的体系成员多样、体系规模大、体系成员间关系类型多、成员间关系动态不确定,因此复杂体系架构动态、不确定性高,架构设计、治理与演化交织。复杂体系架构设计和治理时,存在设计组合爆炸、整体架构缺乏弹性、分系统最优并不一定整体最优、先设计再建设造成适应性不足等问题。因此复杂体系的架构设计问题要远比系统架构设计要难。复杂体系的异构性、分布式、规模大、范围广、动态性、适应性、人在环路等特点,要求采用创新的方法来解决体系架构设计和演化控制问题,需要创新符合复杂体系特点的架构设计范式。图11-6复杂系统的架构特点04复杂体系架构设计的内涵发生了变化复杂体系架构设计的内涵发生了变化。传统的架构描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论