译者:王延飞 译文链接:https://dzone.com/articles/5-major-software-architecture-patterns
在全球软件架构峰会上,我们讨论了很多软件架构模式,因此我决定写一篇有关它的文章,重点介绍知名的软件架构师的见解。
什么是软件架构模式?
软件架构模式是经过验证的,具有良好设计结构的方法。更具体地说,架构模式是在实践中归纳总结的一组设计决策,具有明确定义的属性,并可以重复使用。
软件开发有时可以看作是选择,定制和组合架构模式的过程。软件架构师必须决定如何采用哪几种架构模式,如何使这些架构模式与软件系统特定的上下文相适应。
Mark Richards他写了一本书,名为《软件架构模式》,其中主要介绍了5种软件架构模式:微内核模式(Microkernel Pattern),微服务模式 (Microservices Pattern ),分层架构模式( Layered Architecture Pattern),基于事件的模式(Event-based Pattern),基于空间的架构模式(Space-based Pattern)。
5种主要的软件架构模式
1.微内核模式(Microkernel Pattern)
微内核架构模式也称为插件模式。这种模式允许你将其他应用程序功能作为插件添加到核心应用程序,从而提供可扩展性以及功能分离。
微内核架构模式由两种类型的架构组件组成:核心系统和插件模块。
优点:
- 工作流应用程序
- 任务类应用程序
2.微服务模式 (Microservices Pattern )
当你将应用程序作为一组微服务编写时,实际上就是在编写可以协同工作的多个应用程序。其中每个微服务都有自己的职责,团队可以独立于其他微服务进行开发。这些微服务之间唯一的依赖就是通信。当微服务彼此通信时,你必须确保它们之间发送的消息能够向后兼容。
优点:
应用场景:
3.分层架构模式( Layered Architecture Pattern)
最常见的架构模式是分层架构模式。分层体系架构模式是n层模式,其中软件系统组件根据职责被设计在不同的层中。
这是大多数软件的传统设计方法,并且具有独立性。这意味着所有组件都是互连的,但彼此之间不依赖。分层体系架构模式的每一层在应用程序中都有特定的角色和职责。例如,显示层将负责处理用户界面交互逻辑,而业务层将负责执行与请求关联的特定业务规则。
分层体系架构模式的强大功能之一是,组件之间职责分离。特定层中的组件仅处理与该层有关的逻辑。
优点:
应用场景:
4.基于事件的模式(Event-based Pattern)
这是用于开发高度可扩展系统、最常见的分布式异步架构模式。该架构模式由用于监听并异步处理事件的一系列组件组成。事件驱动的架构模式构建了一个接收所有数据的中央单元,然后将其委托给处理特定类型的单独模块。
优点:
应用场景:
5.基于空间的架构模式(Space-based Pattern)
基于空间的架构模式,可以专门用于解决软件系统的伸缩性和并发性问题。
对于用户访问量经常发生变化、偶尔出现高并发的应用程序,这是一种有用的软件架构模式。这种模式,通过消除中央数据库约束,并使用复制基于内存的数据 格来实现伸缩性。
基于空间的架构模式旨在通过在多个服务器之间拆分处理和存储数据,来避免高负载下的软件系统功能崩溃。
优点:
应用场景
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!