代码分层在物联网设备管理系统的应用论文_李堃

(蚌埠依爱消防电子有限责任公司)

摘要:在应用系统开发过程中,由于业务变动,经常需要对代码进行修改。而随着代码量不断增长,未能有效分层的代码往往难以修改和维护。本文以传统的三层架构(3-tier architecture)[1]为基础,结合阿里推荐的应用分层结构,对代码进行多层次管理,并用于物联网设备的管理系统。通过多层次管理,提高了代码的独立性、扩展性和重用性。

关键词:应用系统;三层架构;分层

1.引言

代码分层是软件开发最基础的架构模式之一。层次清晰的代码,可以使项目结构明确,有效降低模块间的耦合性,便于后续的修改和维护。当下,因为窄带物联网(Narrow Band Internet of Things, NB-IoT)技术广覆盖、低功耗、大连接的特点[2],使得基于该技术的设备和系统正在快速发展。在国内,移动、电信和联通都先后推出了基于NB-IoT的通讯服务。设备制造商需要根据用户的需要,选择运营商,然后使用其平台提供的功能,对设备进行生产测试,将设备信息记录到自己的系统中,并以此为用户服务。由于运营商平台、用户需求以及不同设备处理方式存在差异,因此设计一个且具有兼容性和扩展性的设备管理系统就显得尤其重要。本文基于MVC[3]和三层架构的分层思想,借鉴《阿里巴巴Java 开发手册》提倡的分层结构,设计了一个代码独立性、扩展性和重用性较高的项目架构,保证了系统的扩展性和兼容性。

2分层设计

2.1三层架构

三层架构将整个应用划分为三层:界面层、业务逻辑层和数据访问层。

界面层:负责与用户交互,接收和处理用户的操作;业务逻辑层:负责业务逻辑,是界面层和数据访问层的桥梁;数据访问层:负责基本的数据访问,与数据库交互。三层架构的目的是为了实现“高内聚低耦合”的编程思想[4],即:功能模块内部联系紧密,而模块间尽可能的独立。本项目以JavaWeb为基础开发,其三层架构可如图表示:

图1 三层架构

2.2阿里推荐分层结构

三层架构作为一种指导思想,对层次的划分仍然比较抽象。具体到项目中,因为业务的复杂性,业务逻辑层要处理的任务很多。如何进一步解耦,就需要继续对层次进行细化。下图是《阿里巴巴 Java 开发手册》推荐的分层方式:

其中在Service和DAO之间多了一个Manager 层作为通用业务处理层。它的功能包括:对第三方平台的封装,预处理结果和异常;对 Service 层通用能力的下沉;对多个 DAO 的组合复用[5]。

图2 阿里推荐应用分层

3设计与实现

3.1系统功能

本系统作为一种NB物联网设备的管理系统,主要功能包括:1.与移动、电信、联通等平台对接,实现设备管理;2.在设备的生产、测试、使用过程中,检测设备状态;3.设备信息的管理、查询等;4.与其他平台对接,调用其接口。

在实现上,用户将请求发送至Servlet。Servlet根据需求调用Service。其中,一个请求对应一个Service。Service的复用性较差,主要负责对请求处理过程中的各种逻辑进行组合。而每一种逻辑则对应一个Manager。因此Manager拥有较高的独立性和通用性,可以供多个Service进行复用。同时,本系统在Manager之下,又划分出了一层基础操作层(Basic Operation Layer)。Manager层是项目内通用的代码,而基础操作层则是可以在项目间通用的层。它可被用于对外部接口的调用上,将系统内的业务和接口的调用逻辑进行隔离。这样,如果是本系统内功能改变只需要修改Manager层,如果接口返回的json格式有变动只需要修改Basic Operation层,很好的分离了系统内逻辑和接口的逻辑。

同时,对一些常用功能的封装也划为Basic Operation层,如报表业务:将与系统业务相关的Excel内容的导入导出,编写成ExcelManager。而Excel具体的格式、字体、颜色等,则可以由ExcelOperation负责创建。将报表内容的读取和填充,与报表的格式相分离。此外,对开源库的封装,SDK等也归在这一层。

3.2分层的实现

本系统被分层为:1.显示层,采用JSP技术执行显示工作;2.Web层,使用Servlet技术,执行参数获取、转发请求等;3.Service层,作为请求逻辑的整合调用者;4.Manager层,具体的、项目内可复用的业务逻辑处理;5.Basic Operation层,项目间通用的功能封装;6.DAO层,与数据库交互。

图3 注册设备流程图

以设备批量添加功能为例,用户将包含设备信息的Excel表通过网页提交至servlet,servlet获取文件后,调用相关的service,service按照处理业务顺序依次调用:Excel Manager,读取报表信息;DAO Manager,存入数据库;外部接口Manager,将信息传至其他平台;运营商Manager,将设备注册至其平台。各个Manager只负责自己具体的业务逻辑。而Manager又可能会用到一些可以独立于系统逻辑的Operation。可以如图3表示:

4总结

本文使用分层的思想,实现了一种基于NB技术的物联网设备管理系统。通过多层设计,有效降低了代码的耦合性,更好地实践了“高内聚低耦合”的思想,使代码各个功能模块的边界清晰,层次分明,保证了项目的可扩展性。

参考文献

[1]王雷,王智广.改进的三层架构的研究与应用[J]. 计算机工程与设计. 2017(07):1808-1812.

[2]侯海风.NB-IoT关键技术及应用前景[J]. 通讯世界. 2017(14):1-2.

[3]贾顺贺,陈建飞,陈古运,周熠,张胜.基于MVC架构的个人健康信息管理系统设计与实现[J].计算机应用与软件.2018(3):43-48.

[4]程春蕊,刘万军.高内聚低耦合软件架构的构建[J].计算机系统应用.2009(7):19-22.

[5]阿里巴巴集团技术团队.阿里巴巴Java 开发手册[OL].2018:31.

作者简介

李堃,男,汉族,安徽省蚌埠市,蚌埠依爱消防电子有限责任公司。

论文作者:李堃

论文发表刊物:《电力设备》2019年第3期

论文发表时间:2019/6/10

标签:;  ;  ;  ;  ;  ;  ;  ;  

代码分层在物联网设备管理系统的应用论文_李堃
下载Doc文档

猜你喜欢