乔金海 丛磊
摘要:立足于出版行业在数据交换方面的需求和痛点,为了实现出版单位、发行商、图书馆等拥有出版行业数据的主体之间更好地完成数据交换,基于微服务架构开发了出版业通用数据交换云平台,共三个子平台,分别为数据服务云平台、通讯呼叫云平台、通用接口云平台。本文着重介绍了通用接口云平台的开发设计,平台搭建基于SpringCloud微服务框架,包含了企业用户管理、端交换方案管理、中间标准库管理等基础功能模块,利用Html5+Vue技术搭建了前端页面,后端采用SpringBoot+Spring Data Jpa+Redis进行开发。通过三个云平台之间的共同协作实现了出版企业之间数据的互通和交换。
关键词:出版业;通用数据交换云平台;微服务;SpringCloud
一、出版行业数据交换的现状
在当下的环境里出版企业存在大量数据交换、分析方面的需求,且迫切需要满足,不仅有企业内部数据交换需求,同时还有大量企业对外数据交换需求。当前,国内外出版企业普遍采用“FTP+XML”接口模式进行数据交换。基于此模式开发的接口采用的是“软件代码与业务代码交织在一起”的模式,任意节点业务规则的变化,都会导致所有接口需要重新设计。因此,此种数据交换模式,无论是研发,还是后续的维护和修改都耗资巨大,大大超出了出版企业的承受能力。
当下在国际通行数据交换实施方案中,需要每个参与数据交换的企业投入几千万的资金进行信息交换安全方面的硬件、软件、网络一体化架构。这就造成了“几千万已投入、真正业务却丝毫未达成”的现象。因此,出版企业一般会基于资金困难等原因,省略在这方面的投入,直接实施接口接入方案,给数据安全带来了极大的隐患。新闻出版大数据包括七类数据,分别是机构数据、人员数据、产品数据、政务数据、商务数据、用户数据和内容数据。出版行业数据分散在不同的主体当中,这七类数据散落在党和政府部门、出版单位、发行商、图书馆、科研院所、广电商、电商平台等。主体收入数据分散,导致主管部门与出版行业主体之间、产业链上中下游主体之间信息不畅,信息系统缺乏互联互通,产业链数据不能真正融合,汇聚、高效、共享、联合、协同更无从谈起。
二、出版业通用数据云平台所用技术栈及开发环境
1.渐进式JavaScript框架Vue.js
Vue.js是近几年来兴起的一个前端框架,它相对于之前的一些前端框架来说,具备了体积小、运行效率更高、双向数据绑定、生态丰富的多重优点。并且,它的学习成本很低,它最大的亮点在于只关注视图层,并且具有配套的第三方类库。
Vue.js引出了前端视图层的概念,把每一个页面分成了Model、View、VM ViewModel的三层架构模型,其中Model保存每个页面单独的数据,View用来展示每个页面的结构,VM ViewModel则为核心调度者,分割了前面两层,使它们不会直接关联。
2.轻量级开发框架SpringBoot
众所周知,在Java应用开发中,Spring已经逐渐地替代了J2EE,因为Spring具有轻量快速的特点,通过依赖注入和面向切面编程大大地简化了开发。但是随着业务逻辑的复杂化,所需要的组件开始变得复杂繁多,需要在Spring进行超重量级的配置,在项目的依赖管理上耗时费力,于是SpringBoot诞生了,并且很好地解决了这些问题。
SpringBoot提供了一种快速使用Spring的方式,它具有起步依赖,可以直接完成某些特定的功能,其最大的优点在于可以自动配置,在应用程序启动时,程序会自动决定Spring配置应该用哪一个。
3.简化持久层开发的Spring Data Jpa
JPA的出现是为了简化数据库持久层的开发和整合ORM技术,它支持注解和XML两种形式,可以操作实体对象来进行数据库的CRUD操作。Spring Data Jpa可以让我们在持久层不用书写代码,直接继承一个接口或者它的子接口,就可以实现其对数据库的操作。它大大地简化了分页的业务逻辑处理,可以实现自动封装,能解析成为我们想要的JSON数据。
4.缓存数据库Redis
Redis是一个高性能的key-value型缓存数据库,它支持数据的持久化,可以实现将内存中的数据持久化到硬盘上,并可以重复加载使用,同时提供多种数据结构的存储,并且具有数据备份的功能。可以利用Redis完成分布式锁,实现加锁、解锁等一系列问题。
5.出版业通用数据交换云平台开发环境
(1)前端页面开发环境
前端开发采用现在主流的前端框架Vue.js,用的开发环境是Jebrains公司的WebStorm,中国JS开发者把它誉为“Web前端開发神器”,与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。
(2)后端开发环境
后端开发同样采用Jebrains公司的IDEA,目前IDEA已成为java开发者最喜欢用的一款后端开发环境,它集成了目前的主流后端开发框架,有一个很好的Spring生态。
(3)可视化Redis管理工具
Redis Desktop Manager是目前主流的Redis可视化管理工具,其代码已经在GitHub开源,方便使用,免费版支持多种操作系统,是一款实用的可视化Redis客户端。
三、出版业通用数据交换技术的理论分析
1.什么是数据交换技术
数据交换技术其根本是要为通信服务的,所谓通信,就是实现信息的传递,而要达到信息的传递则必须具备三个不可缺少的要素,那就是终端、传输、交换。但实际情况中一端系统到另一端系统之间的信息由于规范不同,无法进行传输或者共同使用,数据交换技术通过某种转接方式实现了不同系统之间的数据通信。
2.出版业之间的数据交换
针对出版产业现有数据交换接口不通用的核心痛点,研究一种“逻辑分离、应用贴合”的新型通用数据交换架构已经成为了刻不容缓的首要任务。数据交换技术在出版行业的应用需求是非常大的,当前出版业面临的数据交换问题有投入费用高、绑定规则死、应用标准难、保障安全少等,通用数据交换技术的引入,可以让出版企业之间通过执行具有相同标准的端交换方案而进行数据的互通共用。
出版企业不再需要购买交换云平台,仅仅需要用少量的资金或者是免费的方式,就可以满足高安全性、高稳定性、高实用性的数据交换需求。采用“云平台+客户端”的运行模式,可以让用户使用起来更加方便。
3.出版业间数据交换云平台的体系结构
数据交换云平台的建立是以满足出版企业的需求为前提的,这其中涉及的技术有数据库技术、网络通信技术、硬件技术、数据格式转化技术。在建设数据交换云平台时,需要考虑的因素也有很多,结合类似的研究成果,本文所介绍的出版业通用数据交换云平台的系统结构如图1所示。
四、出版业通用数据交换云平台研究建设
1.出版业通用数据交换云平台的组成
出版产业通用数据交换云平台共包含数据服务云平台、通用接口云平台、通讯呼叫云平台三个子平台,三个平台相辅相成,各自的侧重点有所不同,但所提供的功能最终都是为数据交换服务的。
(1)数据服务云平台
近年来,信息技术不断发展,大量的数据充斥着这个时代,这些数据是海量高速且易于变化的,很多行业都已经深刻地认识到了大数据所带来的巨大影响和作用,有人提出“数据资产是企业核心资产”,道出了当今信息社会数据对一个企业的重要性,如何对这些数据进行妥善的管理已经成为企业之间竞争的重要手段,而大数据技术又和云计算不可分割,这二者是缺一不可的,云计算为大数据提供了弹性可控可拓展的基础。
数据服务云平台建设的目的也是为了将云计算和大数据巧妙地结合起来,数据可以在数据服务云平台上产生、存储、整合、计算、分析、挖掘、传输和共享。同时,数据服务云平台也会是一个跨领域的数据共享平台,将数据共享扩展到企业层面。在后期的规划建设当中,该平台也将为“物物相连”的物联网建设添砖加瓦,为实现万物互联贡献自己的一份力量。
(2)通用接口云平台
长期以来出版企业在数据对接方面的成本都是巨大的,信息系统的不同、业务流程的不同使得想要达到数据互通共享变得遥不可及,通用接口云平台不受不同信息系统的影响,可以接受不同系统业务逻辑的不同,即使它们的业务逻辑发生了改变,接口还是可以继续使用,并不需要重新进行开发。该云平台实现了对各类异构数据库的联通可能。作为“通用”的接口将实现一次开发通用于各种信息系统,一个接口对应多种对接方向,并且适应多种数据库,由此产生一对多、多对多的连接。
通用接口云平台,要实现内外网数据的交互,并且要集成出版行业各种信息交换的标准,还要对这些标准进行拓展延伸,形成一个“中间标准库”,技术厂商和有能力的出版单位的IT 开发人员将按照“中间标准库”制定“端交换方案”,这样的“端交换方案”符合企业之间的数据交换需求,实验室负责发布“中间标准库”来让各个企业在制定“端交换方案”时有矩可循。两个“端交换方案”和“中间标准库”在通用接口云平台上协同作用,从而实现数据的互通交换。同时,该平台也接受第三方技术服务商根据实际交换需求提交的“准中间标准”上传到“中间标准库”,为两个企业之间的“端交换方案”搭建数据交换的桥梁。
(3)通讯呼叫云平台
如果是两个信息系统,那么通用接口云平台完全可以实现,因为它遵循点对点通信原则,但是当多个企业用户或者多个信息系统之间要进行数据交换时,各个点之间频繁的通信、传输、建立连接等一系列的请求,就会使得数据交换的过程变得十分复杂,还会面临多种情况,比如无法连接、连接异常断开、无法传输等现象,会造成巨大的网络通信负担或线路冗余。
在这种情况下,还需要一个通讯呼叫云平台来解决这些复杂繁琐的问题,在若干个不同系统之间进行数据交换时承担呼叫应答管理,为数据交换的无差异化运行提供保障,可以在一定程度上监控一个接口对应一种到多种数据库平台产生的多个连接。
五、出版业通用接口云平台功能设计
出版业通用接口云平台在功能设计上遵循人性化、简洁化原则,可以使企业和实验室之间在此平台上完成“端交換方案”和“中间标准库”的提交、发送和集成,并且可以完成对异构数据库的保密联通。
企业用户登录云平台后可以实现以下功能:
(1)下载“中间标准库”当中的标准规范。企业可以在“中间标准库”中下载标准从而完成对自己的“端交换方案”的编写。
(2)上传“端交换方案”。企业用户可以将自己所编写好的按照标准规范的“端交换方案”上传至通用接口云平台。
(3)下载“端交换方案”。企业用户可以下载所需要的其他企业所提供的“端交换方案”来完成自己的需求。
(4)上传“准中间标准”。如果“中间标准库”中没有企业所需求的标准,那么企业可以根据实际情况向“中间标准库”提交“准中间标准”。
(5)企业用户个人信息的设置。企业用户可以在平台的用户管理界面实现对自己账号信息的修改更新。
实验室管理人员登录云平台后台可实现以下管理功能:
(1)对企业用户的管理。实验室有权对企业用户进行管理,具体体现在可以设置企业用户的权重,更新企业用户的部分信息。
(2)对企业“端交换方案”的管理。实验室管理人员可以对企业上传的“端交换方案”进行审核分类,有权对不符合标准的“端交换方案”进行退回令其修改。
(3)上传“中间标准”。实验室将写好的“中间标准”上传至“中间标准库”。
(4)对“中间标准库”的建设。实验室负责将“中间标准库”建设完整并上传至通用接口云平台。
六、部分开发过程呈现
1.VUE前端页面应用組件的实现
(3)在SpringCloud中配置反向生成工具对实体类生成相应的实体类和配置文件,在pom.xml文件的
(4)新建配置文件generatorConfig.xml,配置文件需配置数据库jar包位置、生成的文件存放位置等信息。
七、总结
出版业通用数据交换云平台一共包含三个子平台,本文着重介绍了对通用接口云平台的设计与开发,通用接口云平台作为整个通用数据云平台的重要组成部分,承担了实现内外网数据交互、集成信息交换标准的重要职责。通过开发出版业通用数据交换云平台,达到了基本的耦合数据交换技术的实现,使 “端交换方案”“中间标准库”在交换云平台得以协同运作,并且可以准确地解析它们所包含的业务逻辑,从而实现了数据(含文件)的安全可控、准确传递。
参考文献
[1]洪欣,陈维斌.基于XML的通用数据交换系统[J].计算机系统应用,2011,20(11):38-40.
[2]潘晓辉.通用数据交换系统的研究及实现[D].西安:西安电子科技大学,2006.
[3]郑巧英,陈嘉懿,陈洁.图书馆RFID应用中建立数据交换规范的思考与实践[J].图书情报工作,2014,58(23):91-96.
[4]陈嘉懿,郑巧英,李鲍.RFID通用数据交换平台建设研究[J].图书情报工作,2014,58(23):97-109.
[5]蒋劲松.基于XML异构数据交换系统的设计与实现[D].合肥:安徽大学,2011.
[6]王庆军.通用数据交换技术研究[D].西安:西北工业大学,2003
[7]李月晴,范纯超,张元生.基于微服务的生产管控平台研究[J].金属矿山,2011,536(2):173-178.
(作者单位:出版产业通用数据交换技术重点实验室北京理工大学出版社有限责任公司)