基于微服务架构重构企业OA系统的设计与实现
作者:胡庆伟
来源:《中国新通信》2021年第19期
        【摘要】 本文通過对单体应用架构的企业级OA系统现状进行深入分析,发现系统存在的问题,有针对性的提出了功能、性能、技术三方面的需求,并通过对系统功能设计、微服务架构设计的详细阐述,提出了一种基于微服务架构思想和Spring Cloud框架重构企业OA系
统的方法。
        【关键词】 微服务架构 OA系统 Spring Cloud
        引言:
        互联网、云计算等新一代信息技术的高速发展,企业对信息化的依赖程度日益加深,逐步建立了OA系统、ERP系统、主营业务系统等多个信息系统,这些系统多数采用单体应用架构,各系统之间集成度较差,存在信息孤岛。随着应用程度的加深,在单体架构中不断累加新功能,导致系统越来越臃肿,开发维护变得十分困难,用户体验也变差。近年来,随着微服务技术架构的逐渐成熟,同时容器技术的出现为微服务提供了更好的应用环境,使得微服务架构的优势快速凸显,其优异表现获得了普遍认可,越来越多的企业开始对原先的单体架构信息系统进行微服务化重构。
        本文将介绍一种基于微服务架构思想和Spring Cloud框架,将企业OA系统重构为微服务架构的方法。
        一、系统现状
        某企业OA系统最早建设于2013年,主要功能包括出差、请假、印章、培训等办公申请类综合业务,采用传统单体架构模式,所有功能都被打包在一个应用程序之中。2015年,在原架构中又新增了资金类业务功能,包括合同付款、费用报销、差旅报销等,并与银行系统打通,形成资金的线上支付。2017年公司购买了主营业务系统软件,涵盖交易录入、收发货、运输、结算等功能,产生了大量单据审批和模板打印需求,于是又与OA系统进行了深度集成,主营业务相关数据在主营业务系统中录入,通过接口将数据集成给OA系统,在OA系统中完成审批,并回传审批结果。
        随着企业信息化应用水平的不断加深,大量的功能模块和外部接口不断在OA系统中叠加,功能模块数量超过100个,外部系统接口数量超过25个,系统变得越来越臃肿,每次系统更新部署重启服务耗时接近1小时。由于开发团队的不同,OA系统代码可读性、健壮性参差不齐,可维护性也变得更差。另外,因为OA系统运行多年,单据数量不断累积,导致系统模块加载时间过长,查询、审批等待时间过长,用户体验越来越差。
        二、需求分析
        通过对企业OA系统的现状分析发现主要存在功能臃肿、界面不清,性能下降导致用户
体验较差,开发运维难度大、维护成本高等问题。归纳来看,通过对OA系统的重构需要满足功能、性能、技术三方面主要需求:
        1.功能需求。对企业的业务需求进行全面重新梳理和分析,按照业务边界重新划分OA系统功能模块,使各模块功能更加贴合业务逻辑;摒弃非必要或已经不在使用的功能,整合功能相似、相近的功能,改造使用频次较低的功能,或与其他模块融合,或提高其应用的普遍性;简化用户操作、优化界面展示效果。
        2.性能需求。业务量的提升带来用户并发数量提升、数据量提升,通过对OA系统的重构,需要加快系统功能的处理时间、响应时间,尤其需要解决财务月结时段高并发带来的系统性能较差问题;需要充分考虑数据量累积带来的效率缓慢降低问题,对数据的存储、检索逻辑进行优化。
        3.技术需求。将单体应用架构的OA系统重构为微服务架构,通过底层技术架构的改造,对上层功能应用的优化改造提供技术支撑。
        三、系统功能设计
        系统功能架构如图1所示划分为四个层次,从下到上依次为PaaS层、服务层、应用层和访问层。
        1. PaaS层。为整个微服务架构提供底层技术框架,包括容器服务、中间件服务和数据服务。
        2.服务层。主要提供公共能力服务,包括统一用户管理、统一身份认证、统一流程管理、统一门户管理、统一服务管理、数据服务管理、运维监控管理、接口管理、模板管理、消息集成管理。服务层为业务应用的开发、管理提供各项能力支撑。
        3.应用层。根据企业业务逻辑将OA系统的应用重新划分为综合业务、资金业务、主营业务、运输业务四个主要的应用服务。
        1)综合业务。主要包括请假申请、出差申请、印章申请、员工考勤、培训管理、采办管理、合同管理等功能。
        2)资金业务。主要包括预算管理、合同类付款、非合同付款、费用报销、差旅报销、备用金管理等功能,并与银行系统集成,实现资金的线上支付。
        3)主营业务。主要包括交易申请、结算通知书申请、发票申请、增值税发票申请、套保申请、许可证管理等功能,并与主营业务系统集成,实现业务数据的。
        4)运输业务。因为运输业务相对独立,所以从主营业务分离出来,成为独立服务,主要包括运费管理、杂费管理、滞期费管理、船代管理、货代管理、租船单等功能。
微服务网关和注册中心区别
        4.访问层。提供用户终端的访问能力,支持电脑、手机、平板多终端访问。
        四、微服务架构设计
        基于微服务的理念对OA系统进行了如图2所示的微服务架构设计,首先前端与后端服务进行了分离,前端采用Vue.js+ElementUI,Vue.js是一个轻量级的框架,可以进行组件化开发,有效减少代码编写量,其编写出来的界面效果是响应式的,极大优化了网页在各种设备上显示效果,而ElementUI是一个与VUE配合开发较好的UI框架。
        后端采用SpringCloud微服务框架,使用Eureka组件实现服务的注册与发现;Zuul组件作为微服务网关,实现路由的转发、过滤以及监控功能;Ribbon组件提供负载均衡功能,使用轮询算法将请求均匀的分配至一个服务的不同容器;Hystrix组件提供隔离、熔断以及降级功能,
避免因某个服务故障引发连锁反应,导致整个系统崩溃;Sleuth组件提供服务链路追踪功能,可以很方便的理清服务间的调用关系,而Zipkin则可以进行实时数据监控,及时发现系统的性能瓶颈;Config Server则为系统提供配置的集中管理、动态调整、自动更新。
        为更好的支撑微服务架构,采用了Docker容器引擎技术,每一个微服务均可以独立部署在Docker容器中,具备高效部署、资源调度、服务发现和动态伸缩等功能,并使用Kubernetes对容器进行编排管理,简化容器部署,提升部署效率。不同微服务之间使用REST API方式进行相互调用。底层采用基于RedHat Openshift的PaaS平台,提供包括Kubernetes在内的容器服务组件,以及多种微服务、中间件服务组件,为容器的调度、编排,微服务框架的部署、运行,中间件的配置、应用提供平台级支撑。同时PaaS平台还提供Gitlab等开发管理工具和APM、Prometheus等运营管理工具,能有效提升开发、运维管理水平。
        五、结束语
        本文从系统现状分析、需求分析、功能架构设计、微服务架构设计四个方面详细介绍了将企业OA系统重构为微服务架构的方法,对Spring Cloud框架及其主要功能组件进行了详细
阐述。
        微服务架构具有高内聚、低耦合的特点,支持快速灵活部署、可扩展和技术异构等优势,但微服务架构也并不是万能灵药,依然具有其自身的缺陷,因此,企业在使用微服务架构时,一定要结合企业的业务实际、组织架构、团队能力等多个方面进行综合判断。
        参 考 文 献
        [1]刘彤.基于微服务架构平台在OA系统中的设计与实现[J].民航管理,2018(07):73-76.
        [2]王方旭.基于Spring Cloud实现业务系统微服务化的设计与实现[J].电子技术与软件工程,2018(08):60-61.
        [3]吴侠,艾芳菊.基于微服务架构的众筹系统[J].湖北大学学报(自然科学版),2020,42(01):103-108.
        胡庆伟(1987.06),男 ,汉族,重庆市,大学本科,工程师,研究方向:信息系统集成。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。