马少禄 东南大学保卫处
引言:随着软件功能的增多,许多软件都变得更加复杂,因此为了满足软件功能模块复杂度要求,人们提出了先进的应用软件体系架构,可以自顶向下进行设计和划分,将功能多、操作复杂的系统按照可扩展接口进行集成,实现系统功能的注册和组装,具有较强的可靠性、稳定性和可移植性。应用软件最初常用的体系架构为两层C/S架构和三层B/S架构,但是随着云计算、大数据和人工智能的发展,这两种架构已经不再适用,亟需引入云计算和四层体系架构,进一步满足移动应用软件和人工智能应用软件的需求。
客户机/服务器(Client/Service, C/S)是一种两层应用软件体系架构,主要包括两个组成部分,分别是客户机(Client)和服务器(Service)。客户机可以在用户PC电脑或服务器上安装,为用户提供一个操作交互界面,该界面可以输入一些逻辑业务请求和输出处理结果,以便用户能够浏览。服务器可以部署于机房,客户机接收的逻辑业务请求发送到服务器,服务器按照程序语言处理规则进行信息解析和处理,能够将处理结果发送给客户机。
浏览器/服务器(Browser/ Service, B/S)是一种三层应用软件体系架构,可以将软件划分为浏览器、Web服务器、数据库服务器三个层次。用户不需要安装应用软件,只需要在浏览器中输入Web服务器地址即可登录软件,在浏览器上生成一个交互界面,用户可以在交互界面中输入逻辑业务请求,Web服务器可以解析逻辑业务,数据库服务器可以实现信息添加、修改、删除和查询操作,能够将操作结果反馈给Web服务器,Web服务器将操作结果集成在一起反馈给浏览器。
随着“互联网+”时代的到来,应用软件不仅部署于PC设备,还部署于移动设备,比如智能手机、平板电脑等,应用软件部署环境风格迥异,因此就需要采用更加先进的体系架构,满足轻量级、多线程操作需求。未来计算机软件体系架构发展趋势为云计算和四层架构,展望描述如下。
云计算是一个强大的应用软件部署平台,其采用矩阵式连接模式,采用分布式计算、效用计算、并行计算、虚拟化、网络存储和负载均衡等多种技术,为用户提供一个按需服务平台,满足功能复杂、用户量大的软件部署。云计算为每一个软件提供集群部署节点,该节点能够将一个逻辑业务请求划分为多个节点,实现底层信息设备交叉服务,尽可能地简化云计算架构的底层负载,提高CPU资源、带宽资源、存储资源的利用率。云计算采用虚拟化技术,可以将应用软件与硬件资源独立分割,每一个硬件资源都可以虚拟化为多个软件使用,按照轮转法、优先级法、先进先出等实现数据处理,提高硬件设备的利用率。
移动应用软件架构是基于PC软件的基础改进而来的,其可以更好地适用于移动智能设备,常用的架构主要包括经典MVC架构、三层架构,包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL),其中表现层采集用户输入信息和操作;业务逻辑层可以从DAL中获取数据,输出显示到UI,完成UI输出的操作指令和数据请求,执行业务逻辑或访问DAL;数据访问层可以完成信息加工。四层架构是在三层架构的基础上发展而来的,添加了业务规则层,将三层架构的业务逻辑层拆分为业务逻辑和业务规则,业务规则可以及时处理用户输入的不合法信息,同时还可以及时处理数据库操作存在的错误,增大了业务逻辑层的结构清晰度。具体的,四层架构分别是表现层、业务规则层、业务逻辑层和数据访问层。
应用软件体系架构设计的目标是在有限的硬件设备资源环境中部署较多的程序,这样既可以支持数以亿计的用户访问软件,同时还可以满足设备负载均衡和高响应速度要求。云计算和四层架构作为当前最为先进的软件体系架构,其可以自顶向下将软件划分为多个子功能,实现逻辑业务的并发处理,能够将处理结果封装集成在一起发送给用户,不仅可以满足当前用户较多、数据激增的需求,同时还可以满足未来软件智能化要求。