常用架构模型

分层架构(Layered Architecture)

最常见的软件架构。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其它层的细节。层与层之间通过接口进行通信。

最常见的是四层结构:

表现层(Presentation Layer):用户界面,负责视觉和用户互动

业务层(Business Layer):实现业务逻辑

持久层(Persistence Layer):又叫数据访问层,提供数据访问功能,数据库操作放在这一层。

数据库(Database Layer):保存数据

像常见的MVC,MVP,MVVM都属于分层架构。

 

事件驱动架构 

事件是状态发生改变时软件发出的通知。事件驱动架构(Event-driven Architecture)是通过事件进行通信的软件架构。

当软件产生事件消息时,将事件消息放入消息队列中,然后再进行分发,根据事件的不同,调用不同的事件处理器。

 Windows窗体就属于这种模式了

 

微内核架构(Microkernel Archhitecture)

又称插件架构(Plug-in Architecture),是指软件的内核相对较小,主要功能和业务逻辑都通过插件实现。

内核 通常只包含系统运行的最小功能,插件则是互相独立的,插件之间的通信应该减少到最低,避免出现互相依赖的问题。

 

微服务架构(Microservices Architecture)

是面向服务架构(Service-Oriented Architecture, SOA)的升级。每一个服务就是独立的部署单元。这些单元都是分布式的,互相解耦,通过远程通信协议(如REST、SOAP)联系

 

 

云架构(Cloud Architecture)

主要解决扩展性和并发的问题,是最容易扩展的架构。

它的高扩展性体现在将数据都复制到内存中,变成可复制的内存数据单元,然后将业务处理能力封装成一个个处理单元。若访问量增加,就新建处理单元;若访问量减少,就关闭处理单元。由于没有中央数据库,所以扩展性的最大瓶颈消失了。由于每个处理单元的数据都在内存里,需要进行数据持久化。

云架构主要分成两部分,处理单元和虚拟中间件

个人理解 ,这种架构应该就是云服务器厂家提供的各种云服务吧。

 

 

面向服务架构(SOA)

面向服务的架构(SOA)是一种软件开发方法,它使用称为服务的软件组件来创建业务应用程序。每项服务提供一种业务能力,并且服务也可以跨平台和语言相互通信。开发人员使用 SOA 来重用不同系统中的服务,或者组合几个独立的服务来执行复杂的任务。

例如,一个组织中的多个业务流程需要用户身份验证功能。您可以创建一项身份验证服务并在所有应用程序中重用,而不是为所有业务流程重写身份验证代码。同样,医疗机构中的几乎所有系统,例如患者管理系统和电子健康记录(EHR)系统,都需要登记患者。这些系统可以调用一项单一的公共服务来执行患者登记任务。

 

参考链接:

软件架构模型

https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/

What is SOA

https://aws.amazon.com/cn/what-is/service-oriented-architecture

posted @ 2023-04-24 10:54  zhaotianff  阅读(87)  评论(0编辑  收藏  举报