层次风格SOA-架构师之路(十)

一、层次架构风格

两层C/S架构:

客户端和服务器都有处理功能,现在不常用。

只有表现层和数据层。

三层C/S架构:

表现层、数据层和功能层。

表示层在客户机,功能层在应用服务器,数据层在数据库服务器中。

优点:

  1. 各层逻辑相互独立。
  2. 并行开发。
  3. 整个系统的管理层次也更加合理和可控制。

三层B/S架构:

三层架构变种,客户端变为浏览器,服务端变为web服务器,又称为0客户端。

缺点:

  1. 缺乏动态页面支持能力。
  2. 安全性难控制。
  3. 数据查询效率低于C/S。
  4. 数据提交一般以页面为单位,交互性不强。

混合架构风格:

内外有别:企业内部C/S,外部B/S。

查改有别模型:采用B/S查询,C/S修改。

混合架构难实现,成本高。

富互联网应用RIA

Rich internet application

弥补三层B/S存在的问题,RIA是一种用户接口。优点如下:

  1. RIA结合C/S的反映速度,交互性强和结合B/S传播广泛。
  2. 简化改进B/S的交互。
  3. 数据能够缓存在客户端。

本质还是0客户端,利用高速互联网(4g5g)快速实现本地插件缓存,增强页面交互,比如小程序。

MVC架构:

  1. controller:处理用户交互部分。
  2. Model:处理用户数据逻辑部分。
  3. View:处理数据显示。 用户交互。

MVP架构:

把controller换成了presenter(呈现)。为了完全切断model和view的联系。

解决了mvc数据不安全问题。安全着想,不能让前端直接和model核心数据连接。

MVP都是双向通信。

MVVC架构:

和mvc模式类似,主要分离视图view和model。

  1. 低耦合,一个viewModel可以绑定到不同的view。
  2. 可重用性。
  3. 可测试,测试可以根据viewModel来写,不需要根据页面view来写。

二、面向服务架构风格-SOA

典型的SOA结构,多个服务挂载在一条服务总线上。当我们开发系统的时候,挑选里面的服务来组成。

Service Oriented Architectrue

SOA是一种 粗粒度、松耦合服务架构。服务是为了满足业务的开发来逻辑组合。

SOA目标复用IT资产重用最大化。

SOA特征:

  1. 可以企业外部访问。
  2. 随时可用。
  3. 粗粒地,松耦合
  4. 服务重用。
  5. 支持各种消息模型,精确定义服务接口。

从基于对象,基于构件,基于服务,架构越来越松耦合,颗粒度越来越粗。

基于服务的构件和传统构件区别:

  1. 颗粒度更粗。
  2. 服务构件接口标准WSDL接口,传统的是API。
  3. 服务构件与语言无关。
  4. 服务构件通过构件容器提供QOS服务,传统的则是代码。

三、SOA关键技术

  1. 发现服务

UDDI、DISCO

UDDI:web服务注册统一描述发现和集成。

Universal description discovery and integeration

  1. 描述服务

WSDL、XML Schema

WSDL(web service description language)

将web服务描述定义为一组服务访问点。

  1. 消息格式层

SOAP、REST

SOAP

简单对象访问协议,用于交换XML编码信息轻量级协议,用于传递信息。

  1. 编码格式层

XML(DOM、SAX)

可扩展标记语言,是webService平台中表示数据的基本格式,用于数据交换

  1. 传输协议层

HTTP、TCP/IP、SMTP等。

四、SOA实现方式

  1. web Service

服务提供者、服务注册中心(中介、提供交易平台,可有可无)、服务请求者。

  1. 服务注册表

服务注册、服务位子、服务绑定。

  1. 企业服务总线ESB

简单来说就是一根管道,连接各个服务节点。可有协议转换,为了集成不同协议的不同服务,保证各个服务互联互通。

包括:客户端(服务请求者)、基础架构服务(中间件)、核心集成服务(提供服务)

ESB特点:

  1. 总线的作用,各种服务连接。
  2. 描述元服务和服务注册管理。
  3. 在服务请求和提供者之间 传递数据,以及对这些数据进行转换。
  4. 发现、路由、匹配和选择的能力。

你可能感兴趣的:(软考高级,架构师,java)