乌云娜, 刘 鹏, 刘松旭, 王秋爽
(吉林大学 a. 大数据和网络管理中心; b. 计算机科学与技术学院, 长春 130012)
高校经过多年“智慧校园”信息化建设, 目前已经建立多套业务系统, 积累海量数据, 支撑高校业务发展, 建设成果显著。但是由于前期缺乏统一规划和顶层设计, 导致各个系统孤立存在, 产生“信息孤岛”和数据质量问题, 例如数据资源分散、 共享困难、 标准不一致、 冗余度高等[1-3]。如何高效存取、 管理、 分析高校数据以增强数据的可视性和可操作性, 提高服务质量, 优化用户体验成为当前高校信息化建设的关键。
在高校十四五信息化建设目标中, 着重强调重点加强数据治理, 实现数据共享, 依托大数据支持科学决策, 提升高校办学效益。数据治理包括数据清洗、 标准制定、 模型和流程制定, 主数据管理, 元数据管理, 数据集成、 共享、 管理等内容, 其中主数据管理是核心工作内容之一[4-6]。笔者将结合主流微服务架构建设一个高校主数据管理平台, 探索高校主数据管理实践途径。
主数据(Master Data)是组织内核心业务实体的参考数据, 其具有相对静态、 重要价值、 跨部门共享、 重复应用等特点。主数据管理(MDM: Master Data Management)能实现主数据管理的标准规范与解决方案, 保证数据的完整性与一致性, 解决信息孤岛问题[7-8]。在组织单位内部, 主数据管理通过技术与工具有效降低数据差错, 建立数据聚集、 匹配、 整合、 持久化与分发的完整数据生命周期管理, 提升数据权威性, 保持数据控制力, 发挥数据最大价值。
高校主数据管理主要是从高校的各个业务系统中整合核心数据, 对数据进行处理、 匹配、 聚合等操作, 并以服务的方式分发给高校业务系统, 实现高校核心数据的集中存储管理, 改进数据一致性和合规性, 减少数据使用和治理成本。目前已有的主数据管理平台解决方案, 例如思爱普、 Oracle和Denodo等软件平台, 存在开发周期长, 数据集成建模复杂, 不利于高校应用[9]。国内高校主数据平台研究和应用十分缺乏, 需要进一步加强高校主数据管理研究[10]。
为提升高校主数据管理和治理能力, 笔者提出一种基于微服务架构的高校主数据管理平台, 实现高校数据的完备性、 有效性、 及时性、 完整性以及一致性目标。
微服务架构是从单体应用架构、 SOA(Service-Oriented Architecture)架构、 微服务架构的脉络演变而来。相比于传统体系架构, 微服务架构具有动态扩展、 资源占据容量小、 独立部署运行、 服务粒度小、 独立开发、 服务自治、 去中心化等特点。相比于SOA体系架构, 微服务架构借鉴了SOA架构、 组件化架构以及领域建模思想, 将业务系统拆分多个可独立开发、 设计与运行的小应用; 解耦SOA服务之间的相互依赖, 将使主数据的服务治理更加灵活可行; 通过组件化服务实现各类组件, 无需协调不同服务之间的影响; 去中心化的业务服务建设, 降低不同服务之间的耦合度。
高校主数据管理平台通过引入微服务设计思想, 采用模块化的架构, 按照不同功能点将整个平台拆分成多个细粒度的服务, 并且每个服务独立扩展运行, 保证平台升级与维护的方便性[11-12]。传统中心化主数据平台建设引入的系统压力只能通过升级服务器硬件配置进行缓解, 无法带来本质提升, 而通过笔者基于微服务的高校主数据管理平台建设, 可对高频率访问微服务进行分布式和集群部署, 从而提升并发访问能力。
充分利用现有高校信息化建设成果, 经过对高校主数据管理需求的分析与整理, 完成高校主数据管理平台的体系架构设计工作。平台体系结构如图1所示, 其以主数据为核心对全校核心数据进行分类、 管理和监控, 建立从业务系统→主数据管理平台→业务系统的完整闭环流程。主数据管理平台在高校现有业务系统(例如人事、 科研、 财务、 教务、 后勤、 资产等)的基础上, 将多源异构的核心数据转换成符合标准的主数据, 并按照相应规则与标准实现数据共享, 提供给其他业务系统(如校情分析、 办事大厅、 学工、 采购以及门户等), 从而消除信息孤岛, 实现资源信息的整合管理, 为智慧化高校建设奠定基础。
在高校主数据管理平台建设中需要构建微服务集群, 主要包括接口、 业务以及基础3类微服务集群。接口微服务集群主要是面向其他系统服务的接口配置与管理服务, 例如数据订阅分发、 接口配置管理、 数据查询管理微服务等; 业务微服务集群按照数据业务场景进行划分, 包括人员、 教务数据管理等场景下的模型管理、 审批微服务等, 实现主数据的实体模型管理以及归口部门审批; 基础微服务集群用于支撑整个平台运行, 包括标准代码数据管理、 数据质量监测、 运行监控管理、 日志管理、 平台系统管理微服务等。
图1 平台体系结构Fig.1 Platform architecture
在高校主数据管理平台的建设过程中, 构建高校数据标准体系。高校数据标准体系需要参照国家、 行业、 教育部、 地方以及学校标准建立执行标准体系, 同时构建以公共、 业务编码规范为核心的数据代码标准编码体系。对已有标准的编码信息, 需直接引用相关标准进行编码, 其他编码则采用主数据平台自定义编码体系, 并将其进行发布与共享。
在笔者主数据平台建设实施过程中, 需要梳理和识别主数据, 然后对识别出的主数据确定实施优先级, 并对主数据进行标准化分析、 整理、 清洗、 整合、 集成以及共享工作。在高校数据标准体系下, 构建教职工、 学生、 科研、 财务、 教学、 学校、 资产、 外事、 档案、 办公、 图书和一卡通数据子集等高校数据主数据子集, 实现主数据统一规范管理。
从技术架构实现角度看, 高校主数据管理平台自底向上划分为硬件基础存储、 数据处理以及平台应用层3个层次。
硬件基础存储层采用云计算平台进行建设。平台依托虚拟化云计算平台实现弹性可扩展服务, 并能提供海量的数据存储和数据处理能力, 实现全局的资源监控与调度。为保证平台大规模并发访问能力, 采用Docker容器技术进行集群配置, 每个微服务根据访问情况支持动态负载均衡, 可根据需要进行迁移、 关闭、 扩容, 从而显著降低资源能耗, 提升硬件资源利用率。
数据处理层主要是实现数据采集、 传输、 存储、 汇聚、 加工以及可视化等工作。同时在数据平台处理过程中也会纳入深度学习、 机器学习、 自然语言处理、 图像识别算法等高级数据处理功能, 提升平台数据公共处理能力。
平台应用层采用Spring Cloud框架进行微服务开发和架构的整体管理。框架内部集成了Spring Cloud Config配置管理工具、 Eureka服务发现、 Hystrix容错管理、 Zuul动态路由、 Ribbon负载均衡等插件工具包, 实现业务资源重复利用, 提升业务服务开发效率。通过微服务架构实现高校主数据平台的服务拆分以及多个互相独立的微服务。在微服务架构的开发过程中, 采用DevOps开发模式, 其实现模块开发、 测试、 发布、 维护、 更新的一体化。
为加强平台应用层微服务接口设计, 将遵循公开数据协议(OData: Open Data Protocol)标准进行Restful API接口的构建, 从而实现不同系统服务之间的跨平台调用。在该项目实施过程中采用Apache Olingo框架来实现OData协议, 包括元数据定义、 请求运行时处理、 Web环境定义等部分, 同时还支持URL(Uniform Resource Locator)解析、 输入验证、 序列化、 请求分发等功能。
目前本平台已经构建完成, 并且运维近一年, 接入主数据13 628 234条, 建立数据子集15个, 为校情分析、 网上办事大厅、 学生在线课堂、 社科管理、 创新创业管理和财务管理等6个系统提供数据接口与共享, 提升了高校数据管理的敏捷开发、 持续集成以及弹性扩展能力, 带动高校其他系统的建设工作。高校主数据管理平台的部分系统界面如图2所示, 其中图2a对每个数据子集的数据情况进行统计, 图2b对以科研成果统计为例进行接口开发应用效果展示, 从学科类别、 著作类型、 出版社类型等角度进行状态分析与统计。
图2 平台部分运行界面截图Fig.2 Platform operation interface screenshot
笔者对平台服务性能以及业务稳定性进行验证分析, 以高校最常用的学生信息请求为例进行测试, 生产环境系统配置信息列入表1。测试平台在大并发情况下的性能, 并发用户数为10、100、1 000和10 000, 并发时间10 s, 轮询1次。并发数据访问延迟时间统计结果如表2所示。
表1 生产系统配置信息
表2 并发延迟时间统计
从表2可看出, 当平台增长到10 000并发访问量时, 请求访问的随机性对平台并无强烈影响, 最大值达到232 ms, 满足平台设计500 ms范围要求, 具备较高的访问效率和响应速度。
基于微服务的高校主数据管理平台充分利用微服务技术、 云平台技术、 DevOPS开发模式, 可以完成高校各类系统的业务数据汇聚、 管理、 共享与分发工作, 满足高校数据管理的完备性、 有效性、 及时性、 完整性以及一致性目标。本平台构建了科学的主数据管理体系, 实现高校核心数据的集中存储管理, 改进数据一致性和合规性, 提升高校数据的数据管理能力, 实现了高校业务系统的互联互通, 同时对高频率访问微服务进行分布式和集群部署, 从而提升并发访问能力。笔者提出的高校微服务方案是实施微服务的通用方案, 可推广到高校其他领域建设。