一:软件架构风格
1、架构风格的演变:
在互联网发展至今,系统软件架构风格也一直在摸索着前进,适应时代的潮流。在最开始的时候软件架构是两层的C/S架构,即只有表示层和数据层,后来慢慢的演进为三层的C/S以及三层B/S架构等。
2、二层C/S 架构风格
二层的C/S架构是互联网初期使用的一种架构风格,C/S 架构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,C/S架构逐渐暴露了以下缺点:
3、三层C/S架构架构风格
二层C/S架构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet,软、硬件的组合及集成能力有限。与二层C/S架构相比,在三层C/S架构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。这种结构被称为瘦客户机(thin client)。三层C/S架构是将应用功能分成表示层、功能层和数据层三个部分。三层C/S物理结构图如下
现在的手机上的功能,如app等就类似于C/S架构风格。
4、B/S架构
浏览器/服务器(Browser/Server,B/S)风格其具体结构为:浏览器/Web服务器/数据库服务器。B/S架构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件架构。B/S物理结构图如下:
5、混合架构风格
混合架构风格就是B/S架构和C/S架构的结合体,在某一些特定环境至今还在使用。
6、层次架构风格
7、MVC架构风格
Model (模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View (视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller (控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
在J2EE体系中:
8、MVP架构风格
MVP是MVC的变种,它实现了V与M之间的解藕( V不直接使用M ,修改V不会影响M),并且更好的支持单元测试(业务逻辑在P中,可以脱离V来测试这些逻辑;可以将一个P用于多个V,而不需要改变P的逻辑),MVP中V要处理界面事件,业务逻辑在P中, MVC中界面事件由C处理。
9、富互联网应用(RIA)
为了弥补B/S架构存在的一些不足,提高用户体验,RIA(Rich Internet Application,富互联网应用)应运而生。RIA是一个用户接口,它比用HTML能实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。RIA结合了C/S架构反应速度快、交互性强的优点与B/S架构传播范围广及容易传播的特性。RIA简化并改进了B/S架构的用户交互以及数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。这样,用户开发的应用程序可以提供更丰富、更具有交互性的用户体验。支持RIA的平台如上图所述。
10、基于服务的架构(SOA)
服务是一种为了满足某项业务需求的操作、规则等的逻辑组合, 包含一系列有序活动的交互,为实现用户目标提供支持。SOA其实是由构建技术演变而来,对遗留系统的集成有着非常大的优势。服务的特点有松耦合、粗粒度、标准化接口。
1)服务和构建的区别:
2)SOA的实现方式--Web Service
Web Service 也称为Web服务。其基本思想是会把各种业务职能封装为一个个Web服务,以web服务的形式对外去提供相应的服务支撑。目前来说绝大多数用的都是这种形式。
(3)SOA的实现方式--ESB(企业服务总线)
Web Service就相当于一个个的终端,ESB就相当于网络中的交换机路由器,是一个中间连接件。实际开发中,经常的把Web Service 和ESB综合使用。
4)SOA的实现方式--服务注册表(只需要了解是SOA的一种实现方式即可,实际用的非常少)
服务注册:应用开发者(服务提供者)向注册表公布服务的功能。
服务位置:服务使用者(服务应用开发者),帮助他们查询注册服务,寻找得合自身要求的服务。
服务绑定:服务使用者利用检索到的服务接口来编写代码,所编写的代码将与注册的服务绑定、调用注册的服务,以及与它们实现互动。
11、微服务的架构风格
微服务顾名思义,就是很小的服务,所以它属于面向服务架构的一种。
微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相沟通(通常是基于HTIP协议的RESTful API ),每个服务部围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
1)微服务的特点:
2)微服务架构和传统架构体系的区别:
3)微服务的特点:
4)微服务面临的挑战:
5)微服务与SOA的区别
12、特定领域软件架构(DSSA)
特定领域软件架构(Domain Specific Software Architecture,DSSA)是在一个特定应用领域中为一组应用提供组织结构参考的标准软件架构,是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考架构等组成的开发基础,其目标是支持在一个特定领域中多个应用的生成。
关于DSSA中“领域”的含义,从功能覆盖的范围角度可以有两种理解方式:
a、垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可
作为系统的可行解决方案的一个通用软件架构。
b、水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统族的特定部分功能,无法为系统提供完整的通用架构。
在垂直域上定义的DSSA只能应用于一个成熟的、稳定的领域,但这个条件比较难以满足;若将领域分割成较小的范围,则更相对容易,也容易得到一个一致的解决方案。
(1)领域分析机制
2)建立过程
3)三层架构模型
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删