基于集群调度的动态数字出版技术

2016-05-14 15:49刘丹闫国龙
软件导刊 2016年7期

刘丹 闫国龙

摘要摘要:互联网以及虚拟技术的广泛应用,推动了数字出版的普及,催生了多种出版应用模式。IT技术的进步,使得基于互联网构建以自动化排版为特征的动态数字出版解决方案成为现实。集群调度技术通过构建任务管理中心,接收并实现外部请求任务在多个业务处理模块之间的分发与调度,从而充分利用计算资源,提升任务处理效率。针对自动化排版并发性强、即时性高以及对数据安全的特殊要求,提出了一种集群出版方法。基于XML格式进行传输参数的数据封装,采用抽象化的分层设计,确保排版任务在分发、调度与管理上与排版业务处理分离,从而降低模块间的耦合度,提升自动化排版的多任务并发处理能力以及系统的可扩展性。

关键词关键词:集群调度;自动化排版;动态数字出版

DOIDOI:10.11907/rjdk.161202

中图分类号:TP301文献标识码:A文章编号文章编号:16727800(2016)007000703

引言

随着互联网技术的发展,相互孤立的出版环节被数据链和信息链连接,信息孤岛被消除的同时催生出了新的出版模式。虚拟技术的应用,使硬件设备的并行处理能力得到优化,以自动化排版为特征的动态数字出版成为现实[1]。

传统排版方式下,大量的重复性工作需要人工操作完成,不仅费时费力,而且存在编排内容被误删误改的风险。自动化排版采用内容与版式相分离的设计思路,将有规律的内容样式、版面布局设计成可复用的样式模板,通过自动化排版引擎,实现出版内容与版式结合,从而自动完成排版作业[2]。自动化排版减少了人工参与度,提升了效率,降低了手工排版带来的内容性风险。

基于单机模式的自动化排版在处理多任务请求时,需要采取排队方式逐一顺次处理,无法发挥多核服务器设备并行处理的能力,成为系统运行的瓶颈,从而阻碍动态数字出版系统整体效率的提升。

本文针对自动化排版需求,在多任务并发请求情况下提出了多项核心技术,构建了基于集群调度模式的动态数字出版方案,通过充分利用单服务器并行处理能力及多服务器协同工作能力,显著提升了自动化排版工作效率。

1系统原理

本文采用分布式体系结构构建集群出版引擎,以解决动态数字出版过程中多任务并发情况下的低效率问题。同时引入数据库系统作为管理工具,将集群调度体系中任务请求的流转状态交由数据库管理,为作业中断和现场恢复提供支持。考虑到集群出版引擎在任务调度与分发上的通用性,系统基于XML格式进行传输参数封装。基于专业排版工具,通过二次开发方式构建自动化排版引擎终端,基于内容与版式相分离的设计思想,将规律性的版式效果做成样式模板,通过排版引擎终端,实现模板与内容的结合,自动输出专业的排版结果文件。系统整体结构如图1所示。

图1中,处于中心位置的任务管理数据库承担着整个系统承上启下的重要作用,也是系统作业运行状态监控的核心,对任务的有效管理是任务管理数据库的主要职责,其主要数据是排版内容与样式模板,指明了任务作业所需的排版素材。另外,作业中还记录了排版作业信息,有请求者、请求消息、作业三者之间的对应关系,以便查询作业状态。

样式模版是一种可以重复利用的资源,任务管理数据库对其单独管理,样式表中除了记录样式的基本信息外,还指定了该样式所对应的内容数据结构,排版作业将根据样式模版中的内容数据结构,匹配排版作业请求所提供的内容数据,从而自动出版。

内容数据库负责存储排版内容,自动化排版引擎解析排版任务中的内容源参数,通过网络通信,即时访问内容数据库,提取所需数据,完成内容的自动出版。

以任务管理数据库为核心,集群调度控制器对任务请求进行合理的调度处理。当任务管理数据库前端的消息解析器接收到排版请求后,将自动排版任务请求解析生成相应的作业记录,加入到数据库中等待处理。集群调度控制器检查到任务管理数据库中有未处理任务时,根据作业记录状态读取相关信息,通过设备能力评估,按照自动出版流程定义选择设备分配该作业。作业每完成自动出版流程中定义的一个处理环节,调度控制器收到反馈信息后,就修改任务管理数据库中的状态信息,以便该作业等待后续处理。以此顺序,直到每个作业全部完成处理流程,最后由消息解析器将结果返回使用者。

动态数字出版方法实现涉及到传输参数的封装与任务的构建、集群体系结构的建立、基于流程的集群调度算法和优化策略[3]、基于内容与版式相分离的自动化排版。下面重点阐述如何实现传输参数封装、集群体系结构建立等关键技术。

2关键技术

2.1基于XML的传输参数数据封装

集群出版引擎基于网络环境进行部署和应用,采用标准的WebService接口与外部业务系统进行衔接和集成。基于数据封装的标准性和可扩展性考虑,采用XML格式对传输参数进行数据封装。以自动化排版输出PDF结果为例,排版任务的数据封装结果如下:

其中,< CmdName >项指明任务类型,< CmdId >项指明任务标识ID,< Params >约定了自动化排版任务的具体参数,< ParamGroup >则详细定义了自动化排版方式,以及在该方式下的输入输出参数。

2.2可扩展的集群体系结构

为保证自动化排版对响应速度的要求,集群出版的任务处理能力和效率成为解决问题的关键。为此,本文提出了一种可扩展的集群体系结构,解决排版效率低的问题。该体系以树形扩展结构为基础,搭建分布式的“控制器-设备-具体业务处理”三级组件模型结构,具有多极扩展、综合业务处理能力强等特点,如图2所示。

在“控制器-设备-具体业务处理”三级组件结构中,第一级调度控制器负责整个作业处理流程在集群结构中的调度与控制;中间层级是抽象的逻辑设备;最底层的 “业务处理”单元对应于具体的处理功能,指功能设备,将根据上级逻辑设备的需要,以不同的方式组合,集中计算能力。将出版流程所需的各个处理步骤分散在不同设备上,按流水作业处理的方式提供高效的并发处理。出版流程中的某些处理过程不能简单用单一的功能设备来实现,需要多个子步骤相互配合共同完成。因此,本文提出“逻辑设备”概念来代表系统流程中的关键处理环节,使得整个集群体系具有良好的可扩展结构。

逻辑设备可以是单层结构,代表流程中的某个简单处理过程,通过直接连接相应的设备来实现该功能;也可以是多层嵌套结构,代表高层流程中的一个处理过程,同时也是自身所代表的子流程,依靠下级逻辑设备构成并完成子流程处理,实现自身在高层流程中的处理能力。

2.3树形网络通信结构

集群体系架构采用灵活的低耦合度分布式结构,每个设备可能位于不同的物理主机上,因此需要良好的内部网络通信支持这种分布式结构。

流程的树型结构决定了网络通信的树形结构。参照“控制器-设备-具体业务处理”三级模型的结构特征,网络通信的目标是:任何一个设备都只有唯一的父连接,但可能有多个子连接;设备向上只与父节点、向下只与子节点建立通信关系,而不能越级直接通信,以此简化通信方式;顶层的根节点对应调度控制器,只有子连接而无父连接;叶节点对应功能设备,只有父连接而无子连接,从而构成一个网络通讯树。

在集群调度体系中,逻辑设备和功能设备是通信的主要参与者。为了使设备的通信功能更为有效,系统引入了设备管理员概念,为各层设备建立并维护其赖以生存的通信网络;同时引入“信使”概念,每个设备都携带一个“信使”作为自己的专用通信工具,由“信使”来完成其所在设备在集群体系中的网络通信工作。

2.4支持同步/异步响应模式

在集群排版引擎中,由逻辑设备及关联的业务处理模块构成处理引擎单元,每个处理引擎作为业务实现单元完成排版引擎的接收和排版作业的执行。集群排版系统支持同步和异步两种任务响应模式。在同步响应模式下,集群排版引擎接收到业务系统的任务请求后,判断是否存在空闲的处理引擎,如果存在,则分发任务到空闲的处理引擎。完成自动化排版后,将结果反馈给业务系统,如图3所示。同步响应模式提高了系统间信息传递的实时性。对于大文档排版,由于耗时较长,需要等待较长的时间,影响了用户体验和系统运行效率。鉴于大文档排版存在耗时长、体验差的问题,集群排版引擎提供了异步响应模式。与同步响应模式的不同之处在于,异步响应方式在接收到业务系统的请求之后,将任务放入集群调度控制器进行任务排队和调度,当任务执行完成之后,再向业务系统反馈处理结果。异步模式无须长时间等待,改善了用户体验。

3结语

本文通过对排版任务进行XML数据封装,采用可扩展的集群架构、树形网络通信结构以及对同步/异步调用机制的支持,实现了多排版任务的调度与管理,提升了并发请求下自动化排版的效率。