什么是四层应用架构?

  随着移动应用的不断普及,传统后端三层架构已经不能再满足需要了,这种三层架构我们通常称为monolithic(巨石 整体的 铁板一块的)的架构。

  在通常使用的monolithic架构中,通常是表现层、中间层和数据层的三层设计,Web浏览器传送数据到表现层,该层提供接受用户请求信息,然后输出显示内容,中间应用层从数据层读取或写入数据,数据层通常是关系数据库或其他存储设备。应用中间层包含业务逻辑负责与其他两层交互,并将数据转给需要的用户。

  monolithic架构本身没有固有缺陷,主要是它过时了,因为在被设计之前,智能手机和物联网等移动设备都不存在,只有与Web浏览器交互时才需要表现层,基于Web浏览器的三层架构已经不满足创造一个好的移动体验和可连接产品的融合需求,移动的需求迫使我们需要使用一个分布式的四层架构,称为engagement平台,这个engagement平台根据技术能力不同分为四个部分:

  1. 客户端层
  2. 传递层deilvery
  3. 聚合层aggregation
  4. 服务层

四层架构

下面是四层的解释:

  1. 客户端层:与传统三层比较,最主要的区别是在后端增加了客户端层,代表不同客户端设备特性,客户端设备包括桌面或移动,浏览器或App应用,如果一个移动设备的用户加载了移动网站的首页,后端应该响应针对该设备进行过性能优化的内容,根据用户场景设计的界面,只有根据用户的特定设备和场景比如设备类型、地理位置等等才能创建更加体贴的用户体验界面;还有涉及到第三方内容或服务的集成,根本无需打扰向后端三个层就能直接优化与转换到用户设备上。同时,也解放了后端设计者只要专注于最好的技术,而无需为用户体验分心。通常使用Nginx支持客户端层,其带有高级的媒体流和设备定制优化能力。

  2. 传递交付层:这是一个特殊的中间层,解决最后一公里的挑战,从客户端层获得信息,根据需要交付传递内容的上下文场景优化如何传递的方式,比如是否需要缓存,是否需要CDN?是否利用网络边缘服务器?是否需要负载平衡器?Nginx也可以用于提供负载平衡器或CDN。

  3. 聚合层:这是协调内部和外部服务以及转换数据,提供服务发现功能以及客户端请求和后端直接的双向转换。在这层可以加入商业智能 分析和基于角色访问的授权。比如Nginx可以作为一个反向代理,zookeeper作为负载平衡器和服务发现。

  4. 服务层:跨越内外部提供数据和功能,通过一系列部署的微服务可以动态组合数据和业务流程,该层不关心数据是如何消费。Node.js Java/C# Go Scala 等语言可实现本层的微服务。

 

微服务架构

RESTful架构