浅谈上海报业集团分稿监控系统解决方案的应用
2019-01-24华修文
文/华修文
引言
上海报业集团成立于2013年10月28日,由解放日报报业集团和文汇新民联合报业集团整合重组而成。旗下拥有解放日报、文汇报、新民晚报等20多家报刊杂志、出版社。
解放日报、文汇报、新民晚报三大报的重要新闻稿源大都由新华社供稿,因此上报集团的采编系统与新华社卫星供稿系统连接,通过采编分稿系统,稿件自动分类并导入采编系统库,最后提供给记者编辑使用。
因为环境、网络、设备、系统等不确定因素,所以为确保采编系统的供稿正常,技术处人员需要定时对采编分稿系统进行检查,原先检查分稿系统的方式是人工检查,技术人员每隔一小时对新华社接收稿件数和分稿总数进行记录并对比,这样的检查方式造成了很多问题。首先是检查的时效性不高,往往要过很久才能发现漏稿,从而一定程度影响了出报的进度,二是判断漏稿困难,需要人工检索,逐一对比后才能找出漏稿,造成工作效率低。
本文所阐述的上海报业集团采编分稿监控系统解决方案针对上诉问题,旨在通过明确的业务分工,并在保证采编系统内核保密性的前提下,从而解决及时发现采编分发系统的漏稿,并对漏稿情况进行提醒报警等问题。
1.概述
上海报业集团采编分稿监控系统解决方案,即实时自动监控采编分稿系统的分类和入库,对出现漏稿情况进行提醒报警的工作。这样做有以下几个好处:
定时自动检查:采编分稿监控系统会每隔15分钟自动检查稿件的分发和入库情况,无需人工操作,大大提高了检查工作的效率。
漏稿提醒功能:在及时发现漏稿或者未分开稿件后,加以记录,并自动触发页面提醒和短信推送提醒,极大地提高了技术人员处理问题的工作效率。
业务保密:上海报业集团的开发团队对集团工作系统的业务逻辑非常清楚,整个业务系统的调研也不需要外包公司参与,从而减少了系统在开发时的调研时间。保证采编系统内核保密性。
2.系统设计和实现
2.1 系统架构
系统在功能结构上采用的是模块化结构,就是把整个监控系统按功能划分成几个功能模块,这种模块结构的特点是功能明确、操作方便简单、易于系统今后的功能扩展,让整个监控系统具有可扩展性。这样既能满足现有的监控和报警的需求,又能适应今后新的的监控需求,可不断完善升级。
b/s和c/s相结合后台数据库管理系统采用Sql Server2008,Web服务器操作系统采用Windows 2008 Server,Web服务器管理软件采用运行于Win2008上的IIS,开发工具采用Visual Studio2008,开发语言采用.Net和等。
整个系统由稿件的统计信息、报警提醒、日志记录等构成,以求达到监控的及时性、准确性。稿件统计信息主要统计接收到稿件数、分稿稿件数、接收到图片数、分稿图片数等,报警提醒主要以页面提醒、声音提醒、短信提醒等方式来体现;日志记录主要记录未接收到文件的时间、未分发部分稿件的时间、未分稿明细等。如图1所示。
图1 系统模块结构图
2.2 系统实现
2.2.1 新华社稿件的接收和分稿
新华社稿件是通过卫星进行发送和接收的,然后将接收信息通过解码器进行解码,再将解码后的稿件写入稿件接收服务器的共享文件夹中。每隔15分钟采编服务器就会访问共享目录,读取新的稿件,并根据稿件的属性进行分类,同时对分类好的稿件进行分发处理,最后提供给用户使用。如图2所示
图2 新华社稿件接收和分稿
2.2.2 主要功能简介
根据图3,对系统的几个主要的功能做一个简单的介绍。
2.2.2.1 稿件信息统计
稿件信息统计功能主要是由信息记录、信息发布和定时检查来实现的(见图3)。
图3 分稿系统主要功能
(1)信息记录
信息记录的工作流程如图4所示,首先监控系统会先遍历录入对比库,提取上次轮询后标记为未分类的文件记录,并在采编的分发数据库中查找该文件的分发记录,比对分发的类型集和分发记录,看看分发类型集中的元素是不是和分发记录相匹配。如果都已匹配则将比对库中的记录设置成已分类。如果没有找到记录或者找到的记录与类型集中的元素不匹配,则将未匹配的元素作为属性,未分类作为结果一起插入到比对库。
随后开始遍历新华社稿件的共享目录进行遍历,查找文件。根据最后一篇文件的接受时间判断是不是在上次遍历后新产生的文件。如果不是则跳过。如果是新文件,则打开这个的文件索引,寻找需要分发的类型集。以文件名为依据,类型集为属性,录入到比对库。
如果这个文件是文本文件的话,则在完成以上操作后,继续查看下个文件。如果是图片文件,则还要比对图片文件是否已经下载完成。
图4 信息记录
(2)信息发布
信息发布就是在网页上显示记录下来的数据信息,如图5所示,主要是用WebLogShowService、WebPhotoService、WebTextService来 调 取 数 据, 用WebLogShow、WebPhotoClass、WebTextClass来存放调取后的数据,随后用ViewControl来整合并显示数据、用Default将整合的数据显示在网面上。
图5 信息发布
(3)定时轮询
图6 定时轮询
定时轮询就是通过循环程序,定时启动遍历程序,如图6所示。定时轮询是由matchtest、matchWenHui、matchXinMin三个循环程序组成,首先是由matchtest来调用matchWenHui和matchXinMin这两个子程序,进而再个子分别调用Check()进行遍历,检查分类情况。
2.2.2.2 报警提醒
报警提醒主要由网页报警、声音报警、报警消息推送三部分组成,从视觉、听觉等多方面提醒运维人员处理报警信息。
(1)网页报警
网页报警就是当有未分类和未匹配的情况发生时,系统就会调用程序中的Color()函数。并将“最后接收文件时间”和“最后分稿时间”的底色从绿色改变成红色。这样醒目的设置,能够让技术人员更加及时有效的发现采编系统漏稿和未分发的情况。
(2)声音报警
声音报警基于页面报警,当页面报警触发时,系统就会调用程序的Sound()函数,进而播放数据库中的Sound.mp3文件。这样的设置能让技术人员在不方便查看监控页面的情况下,通过声音的形式获得监控系统的报警提示,大大提高了技术人员的工作效率。
(3) 报警消息推送
报警消息推送主要以手机短信为主,报警消息推送主要以发现漏稿提醒的具体时间、漏稿内容说明的推送为主要目的,以求达到信息的实时性、准确性、有效性。
SendMessage在MessageService中以独立线程的模式进行工作;不过在所有的Service.Server进程中,都会运用统一的一套配置信息。而不同类型的Message信息则会以Adapter模式进行扩充。ServiceServer的Adapter将以配置方式动态加载。
2.2.2.3 日志记录
日志记录主要记录未接收到文件的时间、未分发部分稿件的时间、未分稿明细等。在出现未分稿的情况下,不需要再进行人工检索,逐一对比后才找出漏稿,系统能够根据采编分稿规则,自动找出漏稿,并记录和显示在日志系统中,极大的提高了技术人员的工作效率。
2.3 系统接口
对于集团开发人员,提供了所有业务操作的接口,以便于展示调用。具体列表如下。
ReturnRecord 记录返回自定义类FolderClass 遍历基类PhotoFolderClass 图片稿件遍历时所指的自定义类,继承了FolderClass TravelDataBase 数据库中未分稿图片稿件记录遍历函数TravelDirectory 遍历所有日期文件夹的写日期,确定新接收文件的写入时间CheckPhotoDirectory 遍历新接收文件的文件夹 ,根据文件类型和写入时间判断是否是所需要分稿的文字稿件Material 匹配实体基础类FoundFile 根据文件路径查找该文件的最后写入时间FoundTitle 由全路径访问XML文件,返回的string未替换单引号OneToTwo 个位数前加零PhotoClass 图片稿件实例CheckPhoto 检查该稿件是否已经分稿,并入库InsertOrUpdateSQL 根据自定义类的实例,提交数据库FoundRecord 根据参数查找记录,若失败且文件创建时间在23点后则需要根据标题进行扩大范围的查询LoadObjectByPhotoName 根据文件名,在cache中查找是否有同名稿件AddCache 在cache中添加新的PhotoClass实例GetPhotoName 根据文件名提取数据库中的稿件名TypeTransition 分类匹配实例PhotoQuestion 图片稿件实体SQL函数自定义类ExecuteInsertSQL 根据PhotoClass实例向数据库提交插入请求,并在日志表中记录ExecuteUpdateSQL 根据PhotoClass实例向数据库提交修改请求,并在日志表中记录GetUnMatch 查找为完成分稿的图片稿件记录列表
PhotoLib 包含分稿系统所用数据库的连接及其中各种关于图片稿件sql函数的自定义类GetProduceDate 以稿件名为依据,从分稿系统所用数据库中取得分稿时间TextLib 包含分稿系统所用数据库的连接及其中各种关于文字稿件sql函数的自定义类GetProduceDate 以稿件名为依据,从分稿系统所用数据库中取得分稿时间LastTime 记录上次访问的最后访问时间和系统最后接收到的文件的写入时间ExecuteLastTime 删除3天前访问时间的记录GetLastTime 从数据库中取得上次遍历时间GetLastWriteTime 返回上次遍历时,最后传送的文件的写入时间SetLastTime 设置本次遍历地执行时间NoteLog 自定义的日志记录类WriteLog 日志记录函数GetSystemID 取得系统编号,都以17位为准,年月日时分秒加3位自增涨编号ExecuteNoteLogDeleteSQL 删除3天前已分稿记录的函数SQLClass 数据库连接自定义类GetKeyWord 依靠关键字查找参数CheckProgram 执行检查WriteFile 创建日志文件
......
结束语
随着互联网技术的不断发展,伴随着环境、网络、设备、系统等不确定因素的增多,技术人员如何确保采编系统的供稿正常,如何及时有效地对采编分稿系统进行检查和处理,已成为工作中的重中之重。
上海报业集团的“集团采编分稿监控系统解决方案”,在这些问题上做了有效的尝试和突破,成功解决了实时监控采编分稿系统的问题,同时满足了采编系统保密性、监控系统的安全性、开发成本低等方面的要求。集团分稿监控系统的建成为今后技术人员对于采编分稿的监控提供了一个很好的工具,极大地提高维护人员的工作效率和处理相应问题的时效性。
上海报业集团的“集团采编分稿监控系统解决方案”的解决方法虽然实时监控采编分稿系统的问题,但是还需要技术人员处理相关的问题。在今后的项目中,我们还会继续研究,让监控系统能够根据识别出来的报警提示,根据事先设定好的处理预案,自动解决相应问题,从而实现发现与解决问题的自动化。