冉得微 王蓉
摘 要 平时我们所说的三层架构一般都是围绕J2EE三层展开的,而B/S/S三层架构则是将其抽象为部署架构,由浏览器、应用服务器、存储服务器为主体构建管理信息系统,且更适用在移动分布式平台上。为此,需搭建一个采用该架构的移动分布式平台的管理系统,作为该观点的进一步论证。本文首先对于B/S/S三层架构进行阐述,同时相较于J2EE三层做出对比,最后在应用管理信息系统的方向进行研究。希望通过本文能够对于现当代软件体系结构的发展提供参考与帮助。
关键词 B/S/S;三层架构;移动分布式;管理信息系统
引言
B/S/S三层架构并非是从软件开发层面上看,而是从系统部署的层面上来看,将系统分为三层,一个是基于客户端的Browser,一个是基于提供系统应用服务的应用服务器Service,还有一个是提供数据文件或是其他多种交互的服务器Server,即Browser/Service/Server三层架构。本文将从B/S/S三层系统的提出、实现,移动分布式平台的提出、部署四个方面来阐述该三层架构在移动分布式开发中的应用。
1 B/S/S三层架构的提出
以往的Browser/Server三层架构模式是以传统的客户端/服务器端的结构发展而来的,它的三层架构分层定义为表示层(UI),业务逻辑层(BLL),数据访问层(DAL),可看做是J2EE的发展与逻辑实现。早期J2EE采用JSF作为表示层,并采用EJB和JPA技术作为业务逻辑和持久化访问的三层架构,而在B/S/S三层架构中,将表示层、服务层、业务逻辑层抽象至应用服务器中,将持久层与数据存储抽象至存储服务器中,以实现由Browser作为用户访问端口,发送访问请求,由Service响应访问,并提供相关应用程序服务,若涉及存储或其他多种交互,则由Server提供存储数据及多种交互服务。
而三层架构式设计可以达到以下目的:分散关注、松散耦合、逻辑复用、标准定义。从开发和应用的角度来说,三层系统部署的设计要比逻辑分层有更多的应用,且三层系统部署架构还可支持远程服务访问、分布式存储交互、移动计算等功能,但也会有降低系统性能、增加代码量等弊端[1]。
2 B/S/S三层架构的实现
在B/S/S模式下,WEB层的任务更加清晰明了,它们负责向服务器提出请求以及接收应用服务器发来的相应信息,也可通过应用服务器的授权后直接访问数据库服务器,获取其表单信息以及相关文件存储信息等。在应用服务器层,我们可以采用J2EE中的ORM集成框架技术,且JPA已经作为一项对象持久化的标准,不但可以获得JavaEE应用服务器的支持,还可以直接在JavaSE中使用。因此,可以将以往的业务逻辑层,数据访问层,与服务层合并,统一为应用服务器层,并支持对多数据库服务器的负载均衡,实现业务逻辑与数据的分离。在数据库服务器中,除了和应用服务器的数据交互响应,还可根据应用服务器的授权直接与WEB层交互数据,为了保证数据库服务器的安全性,该响应方式具有时效性与权限独立性[2]。
一般情况下,在采用三层架构的软件设计中,一般是数据流量不高或业务逻辑较为简单,因为相较于其他模式的软件架构中,该设计实现分层分职责,将逻辑上的三层对应各工作层。如表示层用于获取用户输入数据和将业务逻辑层数据显示给用户,而业务逻辑层只需处理业务流数据,不需设计界面显示相关的代码,第三层数据访问层则是与数据库进行交互,负责存储和读取数据。这样分层的设计可以将界面,业务逻辑与数据存储分离开,从而使系统的后期维护,功能扩展更加便捷,且系统自身的问题不会影响到数据的存储,还可实现用户数据的安全隔离等[3]。
3 移动分布式平台的提出
当提出移动分布式这个想法的时候,正赶上微型移动设备的蓬勃发展,有着移动计算、分布式服务等技术作为前驱,在移动式平台上搭建分布式系统,成为移动分布式的核心。由于以往微型移动设备有着传输带宽低、效率低、功耗高、成本高等诸多不便,因此查阅文档几乎没有移动分布式的相关资料,对此将采用原型法,先建立一个基于移动分布式平台的管理信息系统,并将其应用在线上教育领域,以主服务器作为分布式的拓扑中枢,多台节点设备为移动分布式平台进行部署,并对其软硬件层面进行测试、补充和修改,同时收集调查研究数据,针对移动分布式建立可行的数据模型,直至其分布式平台上所部署的管理信息系统完全成熟以至于可商业化。
因此,先选用一个更加适合在分布式平台上软件架构作为研制信息系统的基础条件,即选用分层模式的软件体系结构,其主要分为4层,即表示层(UI层),应用程序层(服务层),业务逻辑层(域层),数据访问层(持久层)。当用户在浏览器端访问服务请求的时候,可以先直接访问节点设备,也可通过节点设备反向代理访问主服务器,还可通过公网直接访问主服务器。当服务器处理用户的访问请求并响应相关逻辑时,可由移动分布式系统处理,或由主服务器反馈,这将取决于用户与相关设备的网络通信代价,若该用户拥有一台自己的节点设备,则可以由该节点设备代理所有服务,并只与主服务器交互系统更新以及文件共享等信息。
4 移动分布式设备的系统部署
在基于B/S/S三层架构模式的实现思想下,我将该信息系统分为主服务器机组的主系统与节点设备的移动分布式系统两个部分,由主服务器机组负责节点设备的数据通信与文件共享等功能,节点设备配合主服务器机组实现内网穿透、端口映射、NAS等功能。即主服务器可直接处理业务逻辑与相关应用服务,也可交互管理节点设备,还可以进行数据传输与端口映射,实现移动分布式设备的移动计算与移动分布式存储,而移动计算环境促进了无线技术与分布式数据相融合,形成了移动分布式数据系统。
若想要将移动分布式系统安装在其设备上,要先将其软件运行环境部署在其硬件上,以最基础的LNMJ为例,需安装Linux系统(如centos),然后在系统环境上安装Nginx,MySQL,openjdk等商用免费的软件,作为运行系统的基础环境条件,或可使用Apache服务器将移动分布式系统作为主系统提供服务,仅需将更新的操作数据与文件数据进行上传,减少了Nginx的反向代理造成的主服务器线路拥塞[4]。
且使用了Apache服务器的LAMJ环境还能再与主服务器网络不畅甚至中断的情况下提供持续性的服务,将大大提高系统的可用性。在可预见的未来,该机制可应用于无信号隧道导航、高人口密集信号接收区、0延迟切换服务器等领域,作为移动分布式设备的另一种部署的形式。因此,移动分布式平台在采用B/S/S的系统部署架构的模式下虽然有着极为广阔的应用场景,但在原型法搭建的移动分布式系统中也存在着不少的问题,所以该模式的发展还需要更多的研究。
参考文献
[1] 王进.B/S模式下的三層架构模式[J].软件导刊,2011,10(3):30-31.
[2] 张硕.浅谈三层结构软件项目管理工具的设计与实现[J].科技致富向导,2015,(10):362.
[3] 冉得微.应用于企业级管理系统的B/S/S三层架构[J].数码设计,2019,(11):53-53.
[4] 张康.基于Nginx的在线教育平台架构优化研究[D].北京:北京工业大学,2016.