唐红亮 帅向华 康承旭 张 鑫
1)湖南省地震局,长沙 410004
2)中国地震台网中心,北京 100045
3)四川数码物联网络科技有限责任公司,成都 610011
我国地震活动频繁,平均每年发生5 级以上地震20 次,地震灾害给国家经济发展和社会稳定带来了深远影响。党的十八大以来,以习近平同志为核心的党中央始终坚持以人民为中心的发展理念,在总结历史经验的基础上,着眼中国特色防灾减灾救灾工作新实践,强调要坚持以防为主、防抗救相结合,坚持常态减灾和非常态救灾相统一。地震信息发布是地震职能部门最基本也是最重要的工作(郁建芳等,2015),平时,社会公众需要了解并掌握防震减灾科普知识,增强防震减灾意识和自救互救能力;震时,尤其是破坏性地震发生时,社会公众和政府部门迫切希望在最短的时间内获取最准确可靠的预警、震情及灾情等信息,以便及时有效地开展应对处置工作(周阿颖等,2011)。结合平时和震时地震工作的需要,地震信息发布具有多信息来源、多发布途径、多内容形式等特点,并根据工作场景及地震信息的不同,信息发布的优先级和时效性也大不相同,因此,亟需通过建设流程驱动的多维度地震信息自动化发布系统,提升地震信息发布的针对性和有效性(姜立新等,2014),提高全社会防震减灾综合能力。
目前国内部分机构与地区已建成多种地震信息发布系统,如中国地震台网中心开发了地震速报综合信息发布系统(侯建民等,2009)及基于12322 短号的地震速报短信服务系统(赵国峰等,2014);中国地震局地震预测研究所研发了基于OpenGIS 和数字地球平台的地震应急遥感震害信息发布系统(郭建兴等,2013);广东省地震局基于原有的地震速报系统分别实现了地震信息微信自动发布系统(叶佳宁等,2014)和地震信息微博自动发布系统(叶佳宁等,2012);福建省地震局开发了基于WEB 的地震速报信息自动发布系统(郑黎辉等,2009);陕西省地震局开发了基于MAS 的短信发送系统(罗治国等,2016)和基于Mapxtreme 的地震信息发布系统(罗治国等,2018);山西省地震局开发实现了地震信息的多平台快速发布系统(罗勇等,2017);江苏地震台网在地震速报软件中集成手机短信群发、多路电话语音群呼、自动传真和网站发布等多种信息发布手段(缪发军等,2009);国际上FEMA(美国联邦应急管理局)应急信息发布渠道融合了无限有线通信、互联网、大型数据库、地理信息系统、全球定位导航等现代化传输手段(陈艳红等,2017)。基于目前地震信息发布系统存在的发布内容单一或发布方式单一等问题,结合平时和震时地震工作的需要,设计研发了一套流程驱动的多维度地震信息自动化发布系统,实现了信息发布过程中多来源地震信息自动获取、多形式发布内容自动合成、多途径地震信息自动发布,使人们能够更加方便、及时、全面地获取和了解各类地震信息。
流程驱动的多维度地震信息自动化发布系统实现了地震科普知识、地震速报、地震灾情及通知公告等地震信息的自动获取,同时实现了对地震信息自动解析、校验、合成、发布的流程化自动处理过程,采用适配器模式实现地震信息的多维度发布,提高了地震信息发布的稳定性、及时性和准确性,采用现代软件工程最先进的软件开发技术,不仅能将软件的开发系统化,更能在后期对软件进行规范化管理,随着软件功能需求的变化及时做出调整,提高了系统的可扩展性和易维护性。
本系统采用分层体系结构,分为硬件与网络平台、操作系统平台、基础架构平台、敏捷业务定制平台和专业应用系统5 个层次,如图1 所示。这种分层的体系结构与现代软件工程技术中的多层结构模式相符,可降低层与层之间的相关性,实现各部分之间松散耦合的集成,降低系统复杂度。
(1)硬件与网络平台:作为软件系统运行的基础,为系统提供基础的数据存储和运算能力,提供数据、语音、图像等方面的基本传输服务。
(2)操作系统平台:具备为专业应用系统运行提供系统资源管理和调度的功能,支持Linux、Unix、Windows 等操作系统。
(3)基础架构平台:为专业应用系统提供基本运行环境、数据库服务、消息服务和文档服务等内容。
(4)敏捷业务平台:由一系列业务定制工具和服务引擎构成,可供技术人员快速设计和重构应用系统。业务定制工具包括表单设计器、流程设计器、报表设计器、规则设计器等,服务引擎包括表单引擎、流程引擎、报表引擎、规则引擎等。该平台还包括大量通用服务模块,如统一身份认证管理、权限管理、日志管理等,提高了专业应用系统的研发效率和软件成果的可复用性。
图1 系统分层结构图 Fig.1 The layered structure of the system
(5)专业应用系统:即流程驱动的多维度地震信息自动化发布系统,根据业务规划和实际需求,本系统包括地震信息接收模块、地震信息解析模块、消息接收者管理、消息模板管理、发送规则管理、发送流程管理、优先级设置、消息发布适配器管理、消息日志管理等功能。地震信息接收模块实现了EQIM 地震速报消息、地震灾害评估信息、地震相关工作动态及通知公告的接收,同时预留了地震预警信息接收接口。地震信息解析模块实现了对地震速报信息中震经纬度、时间、震级等要素的解析;实现了对地震灾害评估信息中人员伤亡、经济损失、建筑物损毁等数据的解析,并对专题图、文档产出等附件信息进行分类归档,同时实现了对通知公告类地震信息中标题、时间、地点、主体内容等信息的解析。
本系统分别与地震速报系统、地震灾害评估系统、自定义短信客户端对接并接收原始地震信息,解析原始地震信息的内容、消息类型、发布目标、发送途径、优先级等要素,选择相应的消息模板并合成消息实体,然后触发地震信息发布模块,由特定的地震信息发布适配器将消息实体推送给相应的消息接收者;同时,在整个业务处理流程中对接收的原始地震信息、合成的消息实体及地震信息发送状态进行全面的日志记录。本系统业务处理流程如图2 所示,全过程采用自动处理方式,保证了地震信息发布的快速、稳定和准确。
本系统实现了多维度的地震信息发布模式。从发布内容的维度划分为地震科普知识、地震速报信息、地震灾情信息及通知公告等,同时,本系统预留了与地震预警系统对接从而实现地震预警信息发布的接口;从消息受众的维度划分为社会公众、三网一员、地震专业人员及相关领导等(杨天青等,2016);从发布途径的维度划分为短信、彩信、移动应用、微信、微博及门户网站等;从工作阶段的维度划分为平时和震时,实现平时和震时相结合、常态减灾和非常态救灾相统一。
图2 系统流程图 Fig.2 The flow chart of the system
流程是一系列业务活动的有序组合,它接受各种输入要素,并通过处理过程产生有价值的输出结果(朱海林,2006)。流程驱动以流程为中心,将相关联的业务进行组合,使业务活动以流程的方式有序开展,从而达成特定的业务目标。
本系统将流程管理的思想方法和管理手段融入到地震消息处理过程中,将地震信息的获取、解析、校验、合成、发布、日志记录等业务处理视为一系列任务过程,根据相应的业务目标,将相关联的任务连接,形成完整的业务流程,从而实现对地震信息自动、有序的处理。本系统对地震信息的处理流程如图3 所示。采用流程驱动地震信息处理模式,改变各环节分散的点式处理过程,相关业务得到了优化整合,业务处理过程在流程引擎的驱动下自动运转,无需人工干预。当业务处理过程发生变化时,如对短信发布方式进行调整或新增一种信息发 布方式,只需对短信分支的流程节点重新配置或新增一个信息发布的流程分支即可,不影响地震信息处理的总过程,极大地提高了系统的可扩展性和适应性。
图3 地震信息处理流程图 Fig.3 The earthquake information processing flow chart
适配器是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
本系统建设过程中已实现了短信、彩信、微信、微博、门户网站等多维度地震信息发布的方式。但随着信息化技术的不断发展,新的信息发布方式势必出现,并被公众普遍接受,因此须要求系统具有良好的可扩展性,能快速适配新的信息发布方式。为此,本系统在设计和研发过程中采用适配器模式实现对多维度信息发布方式的支持,适配器组成结构如图4 所示。适配器模式包括目标、被适配者和适配器3 种角色。目标是一个接口,是相关业务期望使用的统一接口,本系统中针对信息发布定义了ISender 接口,该接口提供了统一发送信息的sendMsg 方法,通过传入MsgData 结构类型的消息实体完成地震信息的发布。被适配者是一个已经存在的接口,本地系统中实现的短信、彩信、微博、微信及门户网站都为信息的发布提供了现成的发布接口,甚至可根据地震信息类别的不同提供不同的接口。适配器的职责是对被适配者接口与目标接口进行适配,适配器实现了目标接口并包含被适配者的引用,本系统有SmsAdapter、WeiboAdapter、WechatAdapter 和PortalAdapter 4 个适配器,完成短信、彩信、微博、微信及门户网站信息的推送和发布。
图4 本系统适配器组成结构图 Fig.4 The composition structure of adapters used in the system
考虑地震信息发布的复杂性和特殊性及发布系统较高的吞吐量,本系统在设计与研发过程中,在目标接口与适配器之间加入了抽象的消息发布类AbstractSender,并通过泛型技术较好地兼容了不同发布方式之间的差异。AbstractSender 内部包含一个支持优先级的阻塞队列,适配器通过解析MsgData 并将生成的待处理任务加入队列,任务调度进程则通过监听队列内的任务、数量及优先级自动启动处理单元并控制并发数量。当任务处理失败或异常时,通过addJob 方法能将失败的任务重新加入待处理队列,任务处理重试次数达到设定的阈值时,系统启动自动报警功能并记录任务处理异常日志。
采用适配器模式实现多维度地震信息的发布,通过适配器将目标接口和被适配者解耦,增加程序模块的透明性和复用性,提高系统的灵活性和扩展性,也可在不修改原有代码的基础上增加新的适配器,符合软件设计的“开闭原则”。
本系统实现了基于流程驱动的地震速报信息、地震灾情信息、地震科普信息及通知公告等的获取、解析、合成和发布的自动化处理过程。首先,对不同来源的信息采用适配器模式实现对接并注册到系统,完成信息的接入工作;然后,采用适配器模式对不同发布方式进行适配(包括信息发布模板的定制)并注册到系统;最后,根据业务需求配置信息发布的规则,从而实现不同来源的信息以不同的内容形式发送至不同的目标受众。
以本系统在湖南省地震局中的应用为例,通过外部接口对接适配器实现了地震震情、灾情的接入,地震震情接入分为地震自动速报接入、地震正式速报接入和省内小震接入。通过人机交互界面适配器实现地震科普信息和通知公告信息的接入。研发短信(支持联通、移动、电信)、微信、微博、传真及门户网站等多种信息发布适配器。根据湖南省地震局信息发布的需求进行发布规则、发布目标及发送模板的配置,如针对国家台网中心正式速报发送对象为全局人员、市州地震局、门户网站,判断条件为省内及周边(经度范围:107.0°~116.0°,纬度范围:23.0°~32.0°)3 级及以上、国内及周边(经度范围:70.0°~140.0°,纬度范围:15~55)4.5 级及以上、国外(经度范围:−180.0°~180.0°,纬度范围:−90.0°~90.0°)6 级及以上。图5 所示为系统的管理界面,用户通过管理界面可配置系统运行的相关参数,也可查询地震信息推送日志及系统运行状态。图6 所示为接收到的信息界面,根据信息接收终端的呈现方式可选择不同的模板进行信息发送,如短信采用文本展示,而微信消息可采用图文的形式展示。
本文对流程驱动的多维度地震信息自动化发布系统的总体结构、系统流程、应用维度等方面进行分析和说明,着重介绍流程驱动的地震信息处理和基于适配器模式的地震信息发布两项关键技术。本系统已在湖南省地震局得到应用,且已成为湖南省地震信息发布的重要平台之一。本系统充分利用现有资源与技术,为民众、专业人员及政府提供准确、快速的地震科普、速报、灾情信息,同时,本系统预留了地震预警信息接入和发布接口。本系统的建成提升了地震部门服务社会公众的水平,对于引导公众舆情、辅助政府决策、稳定社会秩序具有重要意义。
图5 系统管理界面 Fig.5 The interface of system management
图6 速报信息发布结果 Fig.6 The released quick report of the system