荣誉认证:51CTO博客专家博主、TOP红人、明日之星;阿里云开发者社区专家博主、技术博主、星级博主。
微信公众号:微笑的段嘉许
本文由微笑的段嘉许原创!
欢迎关注点赞收藏⭐留言
51CTO首发时间:2023年7月13日
✉️坚持和努力一定能换来诗与远方!
作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
不要偷走我小火车哦~ ~ ~
架构模式(anchitectural pattern)是针对系统架构设计中常见问题而提出的通用、可用的解决方案。架构模式与架构的区别在于,架构模式是对架构中某些局部性特征的架构则对应架构模式在特定环境下的具体设计实例。架构模式的概念外延等同于设计模(design patten),这是因为两者都出现在架构设计这个语境中。软件设计模式(softw design patten)是设计模式的子集,是软件工程领域下的架构模式,只探讨单个程序内的流程逻辑机理,而更具一般性的架构模式则可能涉及程序间、主机间、系统间的交式。软件设计模式体现为程序设计中的“套路”,用于完成一些反复出现的任务。它并不重接产生代码,只是定性描述在特定场景下如何设定各种对象,以及对象间如何联动。并非所有的编程技巧都属于软件设计模式,设计模式特指设计层次上的问题,这个层次的抽象于编程范型,高于算法。设计模式可类比于小说中的桥段。在文艺领域滥用桥段之举并不受欢迎,而工程领域中的设计模式却带来了很多好处。它可以促进方案沟通,可以提高代码可复用性,可以增强运行时的灵活性,还可以管控逻辑耦合度和软件复杂性。一些软件设计式将稳定逻辑与易变逻辑隔离,另一些软件设计模式将活跃代码同“祖传”遗留代码解耦。这些做法都可以降低需求变更所引发的工作量。
某些设计模式专为安全开发目标而提出,旨在降低漏洞产生的概率,这些模式被称作安全模式、安全架构模式或者安全设计模式。一些经典设计模式在经过改造后就特化为安全设计模式。大部分设计模式并不意在解决安全问题,但安全工程仍可从中获益,例如优化安全工程成本、提升安全产品迭代敏捷度、延长安全保障能力的有效期等。
有一个同架构模式相似的概念是架构风格(architectural style),二者都对架构的设计提供了公共词汇和特性约束,经常混用。如果需要严格区分,则架构模式是针对某个问题而提出的方案,而架构风格更具一般性,不回答特定问题。架构风格可看作对架构按其整体性特点进行分类的方式。一个架构实例可以采用相当多的架构模式,但通常只能符合单个架构风格,或者少量的几个架构风格。微软Azure平台官网将云应用架构划分到如下几类架构风格:多层(n-tier)、Web-队列-工人(Web-queue-worker)、微服务(microservice)、事件驱动(event-driven)、大数据(bigdata)、大计算(big compute)。
设计模式的概念起源于1977年,由建筑学家克里斯托弗·亚历山大(Christopher Alex- ander)针对建筑学问题提出。1987 年,肯特·贝克(Kent Beck)和沃德·坎宁安(Wa Cunningham,Wiki技术将设式软件编程领域。1993年8肯特·贝克和格雷迪·布赫(GradyBooch,UML发明者之一)在科罗拉多的一处山坡上发记了一个非营利组织“山坡组”(The Hillside Group)。这个听起来像是日本帮会的团体旨资助对设计模式的研究和推广。山坡组在多个国家召开名为“程序模式语言”(Pattern Lan- guages of Programs,PLoP)的年度会议,以归纳总结设计模式,并出版相关技术专著。19年,埃里希·伽马(ErichGamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Raiph Johnson)和约翰·弗利赛斯(John Vlissides)合作出版了《设计模式:可复用面对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书.录了23个设计模式,促进了设计模式理念的普及,在软件行业影响深远。四位作者被称为“四人组”(Gang of Four,GoF),23个设计模式也被称作GoF设计模式。1997年,约瑟夫·约德(Joseph Yoder)和杰弗里·巴卡洛(JeffreyBarcalow)发表论文《赋能应用安全的架构模式》(Architectural Pattens for Enabling Application Security),将设计模式理念引人了安全开发领域。2006年,由PLOP 欧洲会议所支持的安全架构模式专著《安全模式:安全可复
归纳 与系统工程的集成》(Security Patterns:Integrating Security and Systems Engineering)问世。该
书对安全模式进行了系统性的介绍,并系统性地闸释了八类主题下的46个安全模式。2009
年,SEI(卡耐基梅隆大学软件工程研究所)在JPCERT/CC(日本计算机应急响应协调中内部 )的资助下发表《安全设计模式》(Secure Design Patterns)研究报告,收录了三个层次下的15个安全设计模式。
GOF设计架构、约德—巴卡洛安全模式、SEI安全设计模式、Azure设计模式、PLoP模式、
在下一篇文章中进行详细介绍。
全设计模式、Azure设计模式、PLoP模式、`在下一篇文章中进行详细介绍。