基于企业服务总线的服务资源共享平台

2019-06-15 01:01徐乐
数字技术与应用 2019年3期

徐乐

摘要:本文探讨了当前企业资源开发中遇到的瓶颈,提出了通过服务资源共享平台提升企业开发能力的必要性,分析了基于企业服务总线的服务资源共享平台的层次结构,研究了平臺的总体架构、功能结构和关键技术。

关键词:企业服务总线;服务资源共享;spring cloud

中图分类号:TP393.09 文献标识码:A 文章编号:1007-9416(2019)03-0064-03

1 概述

随着信息技术的迅猛发展,针对不同的业务,都会部署一套前端应用和后台服务,同时不断提出新的应用需求,这种快速迭代更新要求我们建立短、平、快的开发模式。现有已开发的服务,有很多通过重新组合可构建出新的服务能力,可供新的应用使用,大大缩短了开发周期,避免了服务资源的浪费。同时,采用平台服务共享的方式,可以从传统的卖服务器转化成卖服务,采用服务上云的方式,极大的节省了硬件成本,便于推广。

2 服务资源共享平台

服务资源共享平台是针对企业业务系统管理开发的一个平台。通过服务资源共享平台,应用可获取所需后台服务、可对服务进行监管保障,管理服务的全生命周期,对服务进行统一配置管理,对相互孤立的数据集合进行整合,提供通用接口,统一管理,并建立合理的更新机制,避免重复录入,保证数据的一致性、实时性、安全性,用户可通过配置资源地址,访问已注册的业务资源,不再需要重复开发该业务,从而成为能在全局范围内为众多应用所共享的数据资源,降低了政府及企事业单位IT管理成本,最重要的是使得他们内部数据得到了整合,可在这些数据基础上进一步提高各种分析手段,从而对政府部门及企事业决策分析提供数据参考。

2.1 层次结构

服务资源共享平台对应用运行所需的基础数据、业务组件和网络服务等服务资源,进行统一注册、审核、发布、授权、查询、认证、使用、更新和下线等全生命周期管理。使应用按照统一的技术标准、统一的安全策略,快速开发、快速部署、快速迭代。保证应用的灵活、健壮、高效、易用、安全,促进应用健康有序发展。服务资源共享平台作为应用支撑的重要组成部分之一,对各类移动应用建设提供全面支撑。服务资源共享平台综合利用EAI应用集成、SOA面向服务、ESB服务总线和Microservices微服务等软件技术,以适应新技术条件下的分布式、虚拟化、微型化部署,并与网络接入控制、移动安全接入、授权访问代理、网络隔离交换与访问控制等基础安全技术联动,保障应用的接入和运行安全,接受平台集中管理控制。服务资源共享平台的层次结构如图1所示。各类移动应用的服务端,通过应用支撑平台中的服务资源共享平台访问各类网络服务资源,开展业务应用。并通过平台安全防护措施保障信息安全,通过集中管控进行集中运行维护和安全管理。

其中:(1)基础设施层:主要指企业运行环境中的网络、计算、存储等基础设施。(2)服务资源层:企业运行环境的服务资源,建立在基础设施层之上,包括各类基础数据、API业务组件和网络服务。(3)应用支撑层:服务资源共享平台作为应用支撑系统的重要组成部分,在应用开发服务、应用发布管理、统一认证授权和运行监测评估等子系统的协作下,汇聚各类服务资源支撑上层应用。(4)应用服务层:包括原生APP应用、H5 Web轻应用、混合模式及其他传统应用服务。(5)安全防护:企业运行环境中的安全防护体系保障应用的安全有序运行。

2.2 总体架构

服务资源共享平台的总体架构如图2所示。本平台基于隔离交换技术,对相互孤立的数据集合进行整合,统一管理,并创建合理的更新机制,避免重复录入,保证数据的一致性、实时性、安全性,实现系统间的松耦合,实现服务共享,从而成为能在全局范围内为众多应用所共享的数据资源,降低了政府及企事业单位IT管理成本,最重要的是使得他们内部数据得到了整合,可在这些数据基础上进一步提高各种分析手段,从而对政府部门及企事业决策分析提供数据参考[1]。

(1)总线前置部分,由两个nginx服务器构成,实现负载均衡。(2)消息队列,用户作为服务消费者,可以通过发消息来调用服务,这些消息由服务总线转换后发送给适当的服务实现[2]。在高并发环境下,通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力,避免由于来不及同步处理,而导致请求堵塞。本平台中所有模块间的通信均采用消息队列ActiveMQ实现。(3)Mule ESB集群,集群了多台ESB总线设备,采用诸如keep alive的技术实现热备功能,有效避免服务器出现意外故障,或者大量应用请求业务资源时,造成响应速度卡顿的情况,从而提高平台的容错性和不间断性,保障系统长期稳定的运行。(4)接口目录,开放的API目录,详细说明应用的信息,如:应用所属区域,开发人员信息,测试应用还是正式应用。(5)管理服务器,管理员可通过操作平台,对登录账号进行管理,查看ESB总线运行情况,服务调用频率,服务器内存占用率,运行速度等情况,用户也通过用户界面,配置服务信息、平台信息等。(6)认证、授权,管理平台可对请求服务资源共享平台的应用进行认证、授权,通过应用携带的令牌等安全策略,确定用户是否可以访问对应的资源,若用户不具有相应区域的访问权限则组织其访问资源。(7)日志服务器,对ESB总线服务器的运行状态进行日志记录,对应用请求业务资源的情况进行全日制管理,对日志进行详细分级记录,从而为分析、改善服务资源共享平台做铺垫。(8)数据库,采用关系型数据库对接口资源、用户信息、业务资源信息等进行存储管理,定时更新维护,当有新用户注册本平台、新业务资源注册到总线、新的移动警务应用请求业务资源、或者业务资源状态有更新时,都及时同步到数据库中,便于集中管理,更新整体总线运行机制,确保应用的准确路由。(9)应用服务器,应用服务器由业务资源提供方提供,并需经过测试才能注册到总线,通过Restful或者Web service等标准接口统一对外提供资源。由服务资源共享平台的总线模块统一对其调度,由服务资源共享平台的管理模块统一管理其注册、审核、发布、授权、查询、认证、使用、更新和下线等生命周期。

2.3 功能结构

服务资源共享平台的功能结构如图3所示。应用客户端向平台提出资源请求后,由安全策略引擎模块验证其是否符合规范,对其进行認证授权,确认通过后,交给总线基础引擎,引擎作为总线的开发环境,可将服务的代码和配置文件打包成开发包,部署到总线基础引擎里,确定其调度资源的ID,资源地址等基本信息,再由服务转换模块,将消息格式、数据格式、接口等转换成标准格式,由服务路由控制模块通过其访问资源的URL地址,将请求路由到指定业务资源,业务资源可以是服务,也可以是数据库资源,服务统一通过Restful或web service接口调用,数据库资源则直接调用服务资源共享平台离线存储的数据。业务资源服务上线、下线或者状态更新时,由服务管理器模块集中管理,对外提供可访问的业务资源的接口目录,供客户端应用查询调用。

2.4 关键技术

(1)微服务框架,综合采用spring cloud框架,以适应新技术条件下的分布式、虚拟化、微型化部署。(2)服务注册,采用Eureka,Eureka是Netflix开源的一款提供云端服服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现,以实现云端服务发现和故障转移等服务治理。也是spring cloud体系中最重要最核心的组件之一。(3)统一配置。在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要Spring Cloud架构中提供的分布式配置中心组件,Spring cloud config。它支持将服务的配置信息放在配置服务的内存中(即本地),也支持放在远程Git仓库中。Git的管理界面,就是配置的管理界面。一个应用的不同部署实例可以从Spring Cloud Config的服务端获取不同的版本配置,从而支持一些特殊的场景。Git可以方便地使用各种第三方工具来对其内容(配置信息)进行管理更新和版本化,同时Git仓库的Hook功能还可以帮助我们实时地监控配置内容的修改。(4)服务路由。在Spring Cloud微服务系统中,客户端要调用后端服务,首先经过负载均衡(Zuul、Ngnix),再到达服务网关(Zuul集群),由Zuul网关转发请求给对应的服务。服务消费者无需关心后台部署的服务名称和地址。用户只知道网关地址,并不知道服务具体的部署地址,所有请求都往Zuul网关走,网关会根据请求中的一些特征,将请求转发给后端的各个服务。(5)访问控制。用户通过应用或服务访问服务资源共享平台的后台服务时,平台会调用“统一认证接口、统一授权接口、统一鉴权接口”进行访问控制。认证鉴权基于统一验证授权机制,实现对服务的用户、终端、应用、数据等因素实现统一管控。授权访问是基于安全策略定义,通过接入方式和方法的搭建数据安全接入通道,经过服务解析和服务调用,达到第三方安全接入功能。(6)链路监控。服务之间通过网络进行通信,跟踪每个请求,可以追溯错误日志、了解请求经过了哪些服务(从而了解信息是如何在服务之间流动)、了解请求耗费时间、网络延迟、业务逻辑耗费时间等指标,及时进行故障诊断,提供完整的服务质量评估报告,以衡量现有的应用系统效率,为优化、升级提供指导,从而能更好地分析系统瓶颈、解决系统问题。(7)断路保护。在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果。为了解决这个问题,本平台采用断路器模型Hystrix。

3 结语

服务资源共享平台对于企业开发、业务资源共享具有重大意义,已投入市场应用,通过将基础共性服务挂接到平台后端,已实现部分资源的共享。服务资源共享平台是互联网应用快速发展下的必备产物。

参考文献

[1] 陈清金,陈存香,张岩.Docker技术实现分析[J].信息通信技术,2015(2):37-40.

[2] 王平,龚文涛.基于SOA的高校贫困生认定体系的研究[J].微型电脑应用,2015(10):55-56+59.

Service Resource Sharing Platform Based on Enterprise Service Bus

XU Le

(The First Research Institute of the Ministry of Public Security, Beijing  100048)

Abstract:This paper discusses the bottlenecks encountered in the current enterprise resource development, puts forward the necessity of improving enterprise development capability through service resource sharing platform, analyses the hierarchical structure of service resource sharing platform based on enterprise service bus, and studies the overall structure, functional structure and key technologies of the platform.

Key words:enterprise service bus; service resource sharing; spring cloud