宋庆庆
(中国兵器装备集团兵器装备研究所,北京 102202)
随着特种产品技术的发展和社会需求的不断扩大,用户和生产企业对产品的质量越来越重视,作为检验产品质量的第三方质量检测和认证机构的业务量逐年递增。第三方质量检测工作的业务环节较多,主要包括委托申请、核价、被试样品接收发放、试验任务分派、执行、数据收集、财务结算、检测报告发放等[1]。长期以来,各类业务信息均采用手工方式进行整理、记录和传递,不仅工作量大、效率低、容易出差错,而且无法对宝贵的业务数据进行有效的积累和再利用,纯手工工作模式已逐渐不能满足目前业务发展的需求[2]。基于上述原因,同时为了规范外部委托检验检测工作的业务流程,满足CNAS、CMA 等规范的要求,实现各个部门之间的业务协同,有必要建设一套面向外部委托业务的检验试验综合管理系统[3]。
本系统是基于Spring Boot 框架的对外检测任务的内部综合管理平台和面向委托客户的客户服务平台。Spring-Boot 一个基于Spring 框架的轻量级Java开发框架[4],而Spring-Cloud 基于Spring-Boot,为微服务体系开发中的架构问题提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。Spring-Boot 具有四大特性:自动配置、Spring-Boot Starter、Actuator、命令行界面(CLI)。Spring-Boot 快速整合了第三方框架,减少甚至不需要配置文件,解决了以往的Spring 框架下的弊端。
检验试验综合管理系统的主要功能包括面向检测试验中心内部的客户管理、试验目录及价格管理、试验任务管理、试验样品管理、试验数据管理、检测报告管理,收付款管理、发票管理等工作,面向委托客户的客户服务系统,供委托客户通过网络主动发起检测预约,完成付款及样件发送,跟踪了解试验进展,及时获取样品、报告、发票等相关信息。此外,本系统还包括试验中心网站,供潜在用户了解中心业务范围、业务办理方法和检索中心所提供的检测项目的内容及价格。为防止暴力破解,本系统的登录页面需加入验证码来进行人机识别。
本系统的使用者包括检验试验中心工作人员、委托客户和潜在客户三类。不同类型的用户有着不同系统入口和功能权限。
本系统的客服服务部分需要客户能够从外部访问,需要部署在互联网上。本系统以检验测试中心网站的方式运行,试验中心及委托方均需通过浏览器以访问检验测试中心域名的方式打开本系统。委托方在试验中心客服人员为其开通(企业)账号后,可登录本系统的客户服务模块,完成提交委托申请、提交汇款信息、提交样品邮寄信息、查看委托任务的进度、查看发票进度、查看预付款/应付款情况等工作。
试验中心的内部功能仅限试验中心内部用户使用,主要涉及客户服务人员、试验主持、样品管理员、财务人员及其他相关人员。试验中心相关电脑需要能够访问互联网,且根据规定不能连接本单位的内部网络。为了便于试验现场的操作,系统需支持安卓、平板等手持终端进行试验数据的录入、审核和样品收发,手持终端通过上网卡连接外网服务器。
本系统主要由网络、硬件分系统和软件分系统3部分组成。
考虑到目前以阿里云、华为云为首的国内的云供应商的支持能力已较为成熟,能够提供较好的稳定带宽,能够较好地保证系统的运行安全和数据安全,故本系统采用租用云主机的方式进行部署,这样既减少系统初期建设的一次性投入,又可以随着业务扩展方便得升级系统的容量,还能够获得较好的安全保障和支持。因此,本系统将服务器部署在云服务供应商的机房内,委托客户和试验中心工作人员通过互联网访问系统。
硬件分系统主要由应用服务器、数据库服务器和客户端计算机组成,应用服务器主要用于运行应用服务器软件,数据库服务器主要用于运行数据库和数据存储,客户端计算机主要用于Web 客户端软件运行提供平台。
本系统使用Java 开发,采用基于Spring Boot 的微服务架构和前后端分离的方式,总体技术架构可分为展示交互层、服务层和数据层三层(图1)。
图1 基于微服务的三层软件架构
本架构的中间一层为服务层,该层选用Spring Boot 与Spring Cloud 相结合的微服务架构来实现轻量级的SOA 架构。在服务层中,业务建模、流程配置、项目管理、任务管理等业务功能被实现为各自独立的微服务。每个微服务启动后都会在微服务注册目录中进行登记,当前端要访问某一服务时,微服务网关会在注册目录中查询该服务,并将请求分派给该服务。
微服务网关不仅实现了服务层的灵活部署,还实现了应用的前后端分离。图1 中左侧为前端的交互展示层,微服务网关对前端暴露统一标准的REST 接口,以JSON 格式收发数据,前端应用界面可以根据具体的需要选择各种网页技术、移动端技术或桌面开发技术来实现。本系统的前端页面采用最新的HTML5 技术开发,界面美观大方、风格统一、便于掌握、易于操作。
图2 中右侧为数据层,本系统支持以关系数据库的方式存储结构化数据,和以文件系统的方式存储管理文件数据。
此技术架构为系统提供了很好地稳定性、可维护性和可扩展性。这三层结构可以分别运行在不同的电脑上。
(1)数据库层采用主流的关系数据库。Postgre SQL 或Oracle 数据库具有强大的数据存储和查询能力,适用于数据管理,并具有良好的稳定性和扩充性。
(2)服务器层主要包括本系统应用服务器、数据库服务器等。
(3)用户层主要是与用户交互的可视化工具和操作界面。
外部委托检测业务的核心过程为:委托客户委托试验中心对指定的被试品进行指定的试验,双方签订委托检测协议,试验中心在收到被试品后进行试验,委托方支付相关试验费用和报告费用,试验中心交付相关的检测报告。该流程如图2 所示。
由图2 可知,外部委托检测的总体业务可分为客户管理、检测预约、样品管理、试验任务执行、收付款、报告管理、发票管理等几个子流程。为了实现上述业务功能和流程,本系统的功能模块主要包括中心网站(开放访问)、客户服务系统(面向委托客户)、检测业务系统(面向中心用户)、财务管理、系统管理等五个部分,各模块所包含的功能如图3 所示。
图2 业务总体流程
图3 系统功能模块图
本模块面向检验试验中心的潜在客户,供其了解本中心的概况、动态,并提供本中心可认证检测的项目范围的查询。本部分内容可由公众访问,不需要进行登录。
客户服务系统是委托客户登录后使用的系统,主要用于完成提交委托申请、提交汇款信息、提交样品邮寄信息、查看委托任务的进度、查看发票进度、查看预付款/应付款情况等工作。为保证系统安全,委托客户登录时,除了需要输入用户名/密码之外,还需要输入人机识别验证码。
委托客户登录后,会首先进入账户一览界面。显示该企业账户的最近委托申请/任务的最新状态,以便快捷进入。委托客户也可以选择功能菜单进入相应的功能。
检测业务管理模块面向中心内部的工作人员,包括客户服务人员、试验主持、样品管理、财务人员和管理人员。本模块需要登录后才能使用,登录时需要输入登录名、密码和验证码。必要时,可加入短信验证。为了方便试验现场的工作,试验数据管理及样品管理功能可使用手持式安卓平板进行操作。本模块包括试验目录及价格管理、客户管理、预约管理、任务管理、样品管理、试验数据管理、检测报告管理、收付款管理、发票管理等功能。
财务管理是企业管理中非常重要的一环,财务管理能力的大小,直接影响企业的经济收益。本模块主要包括应收款查询和发票管理两个功能。
系统管理由系统管理员使用,包括用户管理、权限管理、日志管理、系统参数设定、资讯管理等功能。
本系统设计开发工具采用Eclipse、Oracle、Tomcat等,基于Web 的应用开发采用J2EE 架构,并采用主流程序设计语言,包括HTML、PL/SQL、SQL、JAVA、JavaScript 等,实现整个系统功能模块的开发。
因系统运行在互联网环境中,为保证系统的数据传输安全,系统采用安全传输机制HTTPS 协议传输数据。
基于Spring Boot 框架的检验试验综合管理系统,不仅实现了外部委托检测任务的全流程管理,而且实现了任务、样品、试验和数据的全程跟踪和可追溯。该系统的成功应用,不仅促进了部门间的协同,简化和规范了检验试验中心的日常工作,更高效、准确地完成委托检测任务,而且为委托客户提供更快捷、及时、优质的服务。