气象预警平台多手段发布的研究与应用
2021-04-06王新秀杨黎黎
王新秀,杨黎黎,于 璐,葛 林
(沈阳市气象局,辽宁 沈阳 110168)
0 引 言
气象灾害属于最为严重和频繁的自然灾害之一。人类面对各类气象灾害的发生,虽然不能用科技手段完全阻止,但可以采取有效的防范和处置措施,把灾害带来的损失降到最低程度。科学有效的防灾减灾措施取决于各级政府部门和广大公众及时准确地掌握和利用各类预警信息及科学的防范建议[1-2]。随着信息技术的快速发展,人类的通信领域越来越广泛,这意味着接收信息的方式也越来越多样化。为了满足将气象预警信息及时快速地发布给公众,必须实现多手段发布方式。在日常的业务工作中,气象预警人员不仅需要将预警信息发布给公众还需要发送给各个业务单位和应急管理部门,而不同的单位要求的发布方式也不尽相同。因此在要求的预警信息发布时间内手动发布预警,需要大量的人力才能完成。
气象系统对气象预警信息发布的建设做了大量的研究与工作。例如,王赟等应用了Web Service技术研究了气象预警短信发布系统[3];曹登峰等通过不同通信平台的接入,实现了气象短信的接收和发送功能[4];莫云音等设计开发了基于大喇叭、显示屏的气象信息发布监控系统[5]。借鉴前人的研究成果,提出了一键式自动发布的气象预警平台多手段发布,预警人员只需要将预警信息制作完成,就可通过短信、传真、FTP、电子邮件、微信、QQ等发布手段自动发送给预警信息接收用户。其中短信、传真、FTP、电子邮件属于传统的气象预警发布手段,随着技术发展,微信、QQ等都成为了有效的预警信息发布渠道[6]。微信和QQ作为大数据互联时代的新技术手段,为气象部门发布气象灾害和科普宣传提供了新媒体[7]。这种多渠道发布气象预警信息的方式可有效提高公众的防灾减灾能力。
1 系统结构
1.1 总体设计
气象预警平台是一个基于B/S架构的面向沈阳市气象台使用的气象预警信息发布业务的基础平台,其建设的重点在于预警信息制作和业务逻辑的实现,主要运行在气象局的局域内网。制作成功的预警信息以及发布方式存储在Oracle局域网数据库,运行各个发布手段的Java程序通过遍历读取Oracle数据库将预警信息通过不同的发布方式进行发布。其中FTP传输方式将预警信息提供给气象业务部门,发布程序主要在气象局的局域网内的计算机中运行。而短信、传真、电子邮件、微信、QQ等传输方式将预警信息发布给公众及应急管理部门,发布程序则在互联网的计算机中运行。其发布示意图如图1所示。
图1 预警发布示意图
1.2 系统开发环境
系统主要使用Java编程语言,开发工具使用了Eclipse平台和Oracle数据库。
Eclipse是目前普遍受欢迎的一种集成开发环境,其最大特色就是插件化的体系结构[8]。本身只是一个框架平台的Eclipse,在众多插件的支持下,使其拥有着其他功能相对固定的IDE软件很难具有的灵活性。Eclipse采用的技术是IBM公司开发的(SWT)一种基于Java的窗口组件,与Java本身提供的AWT和Swing窗口组件比较类似,由于使用了GUI中间层JFaceEclipse的用户界面,大大简化了基于SWT的应用程序的构建。
Oracle[9]数据库通过对各类数据之间存在的关联性进行分析,创立出对应数据的数据库。Oracle数据库应用广泛,不仅能直接应用在关系数据库的计算机系统中,还可以满足商业数据库管理系统的需求,为其提供完整的用户和服务相关的系统架构。应用Oracle关系数据库之后,可以创建多样化的分布条件,供其他系统使用,不但可以单点查询也可以多点查询,进而确保各类数据平台可以安全、稳定地运行。
2 关键技术与实现
2.1 B/S(browser/server framework)
气象预警平台主要是通过B/S多层架构设计实现的。相比之前的2层C/S模式,B/S结构有着显著的不同,其内部是有着3层架构的C/S模型。B/S结构的全称是浏览器/服务器模式。这种新的网络结构模型已经得到了比较广泛的使用,以Internet的需求作为目标,B/S网络架构模型被逐渐开发。B/S网络架构在Web浏览器中已被大量使用,而且是目前很多应用软件的重要组成部分[10]。
B/S多层架构是一种以网页为基础的面向互联网IIS服务器(IIS,互联网信息服务)模式,它是一个运用精髓的N层(主要指信息层、思维逻辑层和展示层),并且综合了Browser,Web Server和Database Server的体系结构,如图2所示。这类结构通过Web服务器和系统功能将浏览器与数据库有序连接,从而实现信息的高效传递与交流。
图2 B/S体系结构
2.2 MAS(mobile agent server)
MAS(mobile agent server)即移动代理服务器,内置病毒防火墙和网络防火墙以此保障安全性。MAS系统主要包括MAS终端、MAS服务器和MAS管理平台,并通过标准开放的接口与相关系统连接[11]。MAS具有一定的开放性,其数据库和API接口可供再次开发,对操作系统和编程语言都没有限制,操作简单且易用。各种业务系统连接到MAS数据库,可满足今后业务拓展的需求。将软、硬件一体化封装的MAS部署在局域内网,通过专线/Internet与移动网关连接,利用MAS将气象预警平台与通信运营商的移动网络相结合,建立一条双向传递信息的安全便捷通道,实现了气象预警信息的自动发送。
2.3 模拟控制技术
鼠标、按键模拟技术可以代替手动操作电脑的工作,但是必须保证电脑无人为干扰。因此实现鼠标、按键模拟技术可以建立虚拟计算机,设置鼠标、键盘不可人为操作。在windows环境下,windows API提供的两个方法可以很方便地完成鼠标、键盘的模拟:mouse_event、keybd_event。模拟鼠标按键单击时,首先要计算鼠标位置X、Y(使用ClientToScreen),并把被控端鼠标位置移到X、Y位置,即鼠标Move事件(SetCursorPos),之后使用mouse_event来模拟需要执行的鼠标行为,主要为按下、弹起。按键的模拟主要是键的按下与弹起[12]。主要代码如图3所示。
图3 模拟按键代码
微信、QQ聊天对话框主题设计比较相似,均可在搜索框输入联系人后,在发送框输入信息即可完成信息传输。因此在虚拟计算机登录微信、QQ,使用鼠标、按键模拟技术即可实现向指定联系人发送信息的功能。气象预警通常会发送给多个指定的微信群和QQ群,人工操作费时费力,使用鼠标、按键模拟技术可将气象预警平台的预警信息自动发送。
3 多手段信息发布
3.1 气象预警平台功能设计
气象预警平台是基于B/S结构的网页,如图4所示,主要包括预警信息录入、转发上级下发信息、预警信号统计等功能。预警信息录入包括首发、更新、解除三种预警信息。首页还可以根据信息标题、发布类型、信息状态、事件等级、预警级别、发布时间等因素查询之前的预警信息。
图4 气象预警平台首页
气象预警平台录入预警信息界面可以选择发布时间、预报员、影响地区选择,填入预警信息内容,选择发布手段包括短信、传真、FTP、电子邮件、微信、QQ等,如图5所示。勾选相应的发布手段就会将其信息存入Oracle数据库中,运行各个发布手段的Java程序通过遍历读取Oracle数据库将预警信息通过不同的发布方式进行发布。
图5 多手段选取界面
3.2 气象预警平台发布手段介绍
气象预警平台集成了短信、传真、FTP、电子邮件、微信、QQ发布手段于一体的一键式发布功能。通过不同的发布手段将预警信息发送给用户,不仅提高了预警发布人员的工作效率,而且多覆盖用户接收途径,使得预警信息及时有效发布给公众起到防灾减灾的作用。
(1)短信。
气象预警短信自动发送流程是Oracle数据库对预警平台生成的信息进行整合生成预警短信,Java程序定时读取数据库,通过Web Service技术[13]把处理好的短信息数据发送到MAS服务器,并最终将预警短信息发送到接收对象。
(2)传真。
传真自动发送功能是由气象预警平台制作的预警信息存储到word文件,通过Jacob技术调用Windows环境底层的传真组件,将预警信息发送给传真用户。首先Java jni调用本地Jacob.dll,再由Jacob.dll中将封装好的接口调用本地服务faxserver.faxserver.1。从而实现服务器端传真的发送[14]。
(3)FTP。
FTP方式是气象局内部上下级各系统传输数据的重要方式。Java能够调用类和方法,建立连接、文件上传、文件下载等,由于FTP的成熟性和规范性,以及高效、安全和完整性,并在传输过程中支持断点续传[15]。
(4)电子邮件。
电子邮件的应用非常广泛,是发送预警信息的重要手段,但是由于发送步骤比较繁琐耗费时间,研究自动发送邮件是非常有必要的。Java代码读取预警平台预警信息来创建电子邮件,通过邮件服务器进行“存储-转发-备份”,最后使用SMTP协议实现对电子邮件的发送[16]。SMTP是simple mail transfer protocol的简称,即简单邮件传输协议。
(5)微信、QQ。
微信和QQ是当下最流行的通讯软件,拥有智能手机的用户基本都会安装这两种腾讯软件。因此这两种是必不可少的预警发布手段。手动发送微信、QQ多个群组既浪费人力又容易出现漏发的情况。气象预警平台制作预警信息与选取的微信群、QQ群组存入Oracle数据库,使用虚拟机模拟鼠标、键盘的技术在电脑版微信和QQ搜索框输入微信、QQ群名,信息发送框输入预警信息,实现微信、QQ自动发送。微信发送界面如图6所示。
4 实用效果
目前气象预警平台已运用在气象业务工作之中,成为预警发布人员发布预警的重要工具,实用效果非常显著。随着对平台的使用与维护,气象预警平台能正常稳定地运行。基于B/S架构的气象预警平台实现了对预警信息的可视化管理,为预警发布人员提供了良好的交互界面,使其可以直观地了解和掌握各类预警信息。自正式使用到现在气象预警平台已经成功发布了1 968条预警,每条预警需要发布1 519条短信、56个传真、2条FTP、30个电子邮件、10个微信群组、5个QQ群组。气象预警平台的多手段发布大大提高了预警发布人员的工作效率,也使得广大用户通过多种方式能及时收到预警信息,为灾害来临提前做好预防工作准备,最大程度减轻灾害损失。
5 结束语
加强气象灾害监测预警及信息发布是防灾减灾工作的关键环节,是防御和减轻灾害损失的重要基础。气象部门有效利用各种传媒推动气象服务信息走进千家万户,提高气象预警发布时效和覆盖范围。为了解决当前因多种发布手段产生的任务重、效率低的问题,提出了气象预警平台的多手段发布方式,实现了多种预警发布手段的一键式发布功能。解决了预警发布工作中一种预警多次发布的重复性工作,避免了重发、漏发的情况,这种多手段并行发布的方式,极大提高了预警发布效率。气象预警平台多手段发布具有完善的服务功能、较强的实用性和可操作性。适用于全国各地区的预警发布单位,具有良好的推广性。
图6 微信发送