1. 软件架构:像学写文章一样,在学会用字、词、句之后,就应上升到段落,就应上升到文章的“布局谋篇”,这就是架构。通常来讲,软件架构设计就是软件系统系统的“布局谋篇”。
2. 软件架构与系统架构:(个人理解)软件是系统的一部分,所以软件架构也是系统架构的一部分,但是由于大多数情况下,软件是系统的主体,且设计软件架构时也要综合考虑硬件特性和网络特性,所以软件架构与系统架构之间的区别其实不大。
讨论架构风格时要考虑最关键的四个要素,即提供一个词汇表、定义一套配置规则、定义一套语义解释原则和定义对基于这种风格的系统所进行的分析。Carlan和Shaw根据此框架给出了通用架构风格的分类(后面是具体的架构风格):
层次结构中,每一层为上层服务,并作为下层的客户。但并不是每个系统都适合分层的模式,很难找到一个合适的、正确的层次抽象方法。
典型的层次系统架构风格:
4.MVP架构风格
MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP是从讲点的MVC演变而来的,他们的基本思想由相同的地方:Controller/presenter负责逻辑的处理,Model提供数据,View负责显示。当然MVP与MVC也有一些显著的区别,MVC模式中元素之间“混乱”的交互主要体现在允许View和Model直接进行“交流”,这在MVP模式中是不允许的。
迄今为止,对于面向服务的架构(Service-Oriented Architecture,SOA)还没有一个公认的定义。一般认为,SOA是一种程序架构,在这种架构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够以定义好的顺序调用这些服务来形成业务流程。
2.服务注册表
在SOA设计时使用,也具有运行时的功能
微服务,顾名思义,就是很小的服务,所以它属于面向服务架构的一种。微服务的核心在于“小”,且专注于做一件事、轻量级的通信机制、独立部署。
微服务的优势
微服务面临的挑战
分布式系统的复杂度:采用微服务实现分布式系统复杂度更高(服务之间的网络通信)
运维成本:每个服务都需要独立的部署、配置、监控、日志收集等
部署自动化:每个服务都需要单独部署,人工成本高
与团队组织结构的匹配
服务间的依赖测试
服务间的依赖管理
微服务可以说是SOA的一种,但二者之间存在多方面的差异:
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删