基于Node.js的天气监测告警系统的设计

来源 :学习与科普 | 被引量 : 0次 | 上传用户:meteora5
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:突发天气对地铁运营会造成较大危害与财产损失。通过人工巡查天气预警信息的方式存在效率低下问题。
  为解决该问题,从实际需求出发,设计了基于Node.js的天气监测告警系统。该系统可实时监测关注城市的突发天气预警信息。系统基于B/S微服务架构,采用Node.js全栈技术,数据库使用Sqlite。该系统可显著提升地铁运营人员获取突发天气预警信息的效率,提早做好应对行动,最大程度地降低突发天气带给地铁运营的损失。
  关键词:Nodejs;Sqlite;B/S
  引言
  当前,国内的地铁建设正处于大规模发展阶段,地铁线路越来越多地采用高架与地面形式,同时气象对地铁的影响也是日趋显著。气象灾害防范已是地铁运营急需关注的问题[1]。地铁运营公司一般由控制中心(以下简称OCC)接收到突发天气预警信息后,向各个部门或中心发布突发天气预警信息,现场各岗位按照突发天气下的相关作业标准和要求执行。目前,无锡地铁的OCC是通过江苏省气象局网站来获取突发天气预警信息,这一环节需要依靠人员不断地通过手动刷新与肉眼观察的手段来监测气象局网站的动态信息。这样的方式不仅效率低下,大量浪费人员的精力,而且容易发生信息遗漏的问题。为解决这个问题,本文设计了一种基于Node.js技术的天气监测告警系统的解决方案。该系统通过后台以固定的时间间隔来循环读取气象局网站指定地址的信息,并将信息过滤,只留下有价值的关注城市与关注时间的突发天气预警信息。系统将突发天气预警信息写入数据库,同时浏览器自动打开并指向天气监测告警系统,天气监测告警系统的前端界面发出语音图文提示,提醒系统用户及时关注突发天气预警信息。
  1 系统架构
  系统架构采用当下流行的B/S架构与Node.js全栈技术。用户通过使用Webkit为核心的浏览器使用软件系统。同时采用微服务架构的理念,根据实际需求,将业务划分为独立数据共享型的自治服务,可以融合不同种类与不同时期的技术。B/S架构相对于C/S架构的优势是不需要对所有客户端单独进行部署与升级,它的部署与升级都集中在服务端。B/S架构可显著降低系统维护的人力与时间成本。
  2 相关技术
  2.1 框架技术Node.js
  Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js的包管理器 npm,是全球最大的开源库生态系统[1]。
  2.2数据库技术Sqlite
  SQLite 是轻型的嵌入式数据库。它是一款自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎。它的优势是资源占用少、性能良好和零管理成本。目前SQLite是在世界上最广泛部署的SQL数据库引擎 [4]。
  2.3响应式Web设计Bootstrap
  Bootstrap由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是目前最流行的前端框架之一。Bootstrap是基于 HTML、CSS、JavaScript设计,简洁灵活的特点可以使 Web开发更加快捷[4]。
  3 系统设计
  3.1 系统流程设计
  预警信息可分为三类,正在预警中数目,有效预警与已解除预警。正在预警中数目代表有效预警的实时数目。有效预警是预警记录的实时清单,清单中的预警记录处于有效状态。一旦预警无效,则从有效预警的清单中撤出,并放入已解除预警的清单。已解除预警是已解除状态预警记录的清单。
  在Node.js系统服务端启动后,首先执行初始模块。初始模块会第一次读取正在预警中数目、有效预警与已解除预警这三类信息。接下来执行循环模块,循环模块会以固定的周期读取正在预警中数目。如果该数目没有变化,则不做任何操作。如果该数目发生变化,则读取有效预警与已解除预警的清单,然后从清单中对城市与时间进行过滤,将过滤后的信息写入数据库。同时执行Http模块,浏览器将自动指向天气监测告警系统的前端页面。前端页面通过语音图文来提醒系统用户关注突发天气预警信息。
  3.2 系统功能模块
  系统功能模块可分為三个,初始模块、循环模块、Http模块、日志模块与数据库模块。系统功能的模块结构图如图1所示。
  图1 模块结构图
  3.2.1 初始模块
  初始模块在系统服务端启动后执行一次。初始模块使用cheerio类库加载指定三个URL地址的HTML字符串,URL地址分别指向正在预警中数目、有效预警与已解除预警的页面。其中正在预警中数目可直接获取。有效预警需设定关注城市,只获取关注城市的预警信息。已解除预警需设定关注城市与当下时刻,只获取关注城市与当下时刻的预警信息,其中当下时刻精确到分钟。初始模块取得这三类预警信息后将其存放至全局变量,以供循环模块比对。同时通过日志模块将信息存储到日志中。
  3.2.2 循环模块
  初始模块执行完毕后,开始执行循环模块。循环模块以固定的周期间隔读取正在预警中数目,同时将当前读取的数目与上一次读取的数目进行比对,判断是否一致。如果数目无变化,则只通过日志模块写入日志,不做其他任何操作。如果前后数目不一致,则读取有效预警与已解除预警的HTML字符串。根据设定的关注城市与当下时刻的条件进行过滤,过滤后的信息是我们想要得到的预警信息。通过日志模块与数据库模块将其分别写入日志与数据库Sqlite。数目不一致的情况也将触发Http模块。
  3.2.3 Http模块
  Http模块使用RESTful的架构风格,通过不同的GET或者POST请求方法,将请求引导至对应的页面并渲染其内容。如果请求是index,则引导并渲染页面index.html。如果请求是warnlist,则引导并渲染页面warnlist.html。Http模块的前端使用Bootstrap技术,其主要包含两种功能,控制面板与预警记录。控制面板包含了最新一次预警的时间、数量、语音、有效预警与已解除预警的清单。预警记录包含了所有预警记录,并可以快捷搜索。Http模块可以通过两种方式触发执行。这两种方式是循环模块判断数目不一致与用户通过浏览器主动访问Http模块。   3.2.4 日志模塊
  日志模块将预警记录信息写入日志中,日志文件以扩展名log结尾,一个月对应一个日志文件,下一个月的月初建立并使用新的日志文件。日志文件记录了历史信息,可方便追溯过往发生的信息,也可以同数据库互为参考依据。一般情况下日志模块被初始模块与循环模块所调用。
  3.2.5 数据库模块
  数据库模块将预警信息写入轻型嵌入式数据库Sqlite。预警信息的字段主要是时间、数量、有效预警与已解除预警。由于有效预警与已解除预警所包含的信息可能一次包含两个城市或两个城市以上的预警信息,所以这两个字段最适合使用数据库的JSON技术。使用Sqlite的函数方法JSON_OBJECT将键值字符串转换JSON对象,使用Sqlite的函数方法JSON_ARRAY将多个JSON对象转换为JSON数组。一般情况下数据库模块被循环模块所调用。
  4 结论
  突发天气诸如台风、暴雨、雷电、大雾、冰雹等都可能会对地铁运营的设备与人员造成危害。通过天气监测告警系统,可实现全自动地监测地铁运营公司所在城市的突发天气预警信息。该系统帮助地铁运营人员更早地获取预警信息,更快地做出应对突发天气的方案与行动。自动化的监测系统不仅显著提升地铁运营人员的获取突发天气预警信息的效率,而且可以最大程度地降低突发天气对地铁运营产生的损失。同时它也可以成为当下地铁智慧运营理念的有机组成部分。
  参考文献
  [1]李毅雄. 香港地铁气象灾害防范技术[J]. 中国安全生产科学技术, 2007, 3(2).
  [2]Node.js Foundation. Nodejs Documentation [EB/OL]. [2019-08-05]. https://nodejs.org/en/docs.
  [3]SQLite Consortium. SQLite Documentation [EB/OL]. [2019-08-05]. https://sqlite.org/about.html.
  [4]Mark Otto. Bootstrap Documentation [EB/OL]. [2019-08-05]. https://getbootstrap.com/docs/4.3/getting-started/introduction.
其他文献
急性肾功能衰竭(AFR)由多种原因引起肾小球功能发生急剧降低、肾小球滤过率突然或持续下降导致的水、电解质、酸碱平衡紊乱,水电解质和氮质血症等一系列临床表现。急性肾功能衰竭临床分为少尿期、多尿期和恢复期。少尿期指尿量<400ml/24小时,一般是发病到14天左右,严重时会引起血液系统、神经系统、心血管系统发生功能障碍。多尿期指尿量>400ml/24小时内,指发病到第2周左右,下降蛋白氮,血浆蛋白和血
期刊
摘 要:随着社会的发展与科学技术的提高,人们进行信息传输的速度也实现了更加快捷的效果。而广播电视所进行信息传播的方式也得到了极大的转变和现代化技术的应用。中短波传输的发展与应用时间较长,相比长波传输,中短波传输更加稳定,并且传输成本较低,其灵活性较强。但中短波传输天线会对其周围的电磁环境有着一定程度的影响,为人们的身体健康和生活中的电子设备带来一些危害。本篇文章主要针对中短波天线的电磁环境影响进行
期刊
摘 要:本文分析了电梯电气控制系统的常见原因,阐述了电梯检测过程中电气控制中存在的问题。 希望电梯制造企业关注设计,制造,安装和调试过程,以改善我国电梯运行。 安全性能。  关键词:电梯;电气控制;安全电器电路  在中国,电梯在很多场合的使用已成为人们关注的焦点。 电梯的制动系统可以确保电梯的安全运行。 因此,制动器的电气控制系统是制动系统的核心,制动电气控制系统的安全性是为了确保电梯的安全。 这
期刊
摘 要:目的:探讨普外科手术围术期饮食护理方法。方法:从我院普外科门诊2016年1月-2018年12月收治的患者中选取60例手术患者为研究对象,根据是否采取个体化饮食护理分为对照组(n=30)和观察组(n=30),对两组患者满意率、胃肠道功能恢复时间、住院时间进行对比和评价。结果:观察组满意率、胃肠道功能恢复时间、住院时间较对照组优,差异具有统计学意义(P<0.05)。结论:饮食护理在普外科围术期
期刊
摘 要:当前的生猪养殖中都普遍重视如何对疫病进行防治,尤其是在规模化养殖中普遍制定了系统的管理制度,其中消毒工作就十分关键,需要定期对猪场、圈舍以及生猪进行消毒,这样可以营造舒适的环境,然而部分养殖户在开展消毒工作中并不深入,更多的表面工作,这样就容易造成疫病传播和长势不佳,也不利于获得更大的养殖效益。本文对猪疫病防治中消毒的重要意义概述,讨论猪疫病消毒管理存在的问题,并分析如何在生猪养殖中加强消
期刊
妇科疾病的频发一直是困扰女性朋友的最大问题,影响着广大女性群体的健康生活。部分女性患者在出现妇科疾病的症状后,都会毫不犹豫的去看妇科医生, 比如:月经不调,不孕不育、闭经、溢乳等。正是因为这种惯性思维,在一定程度上影响了这些患者在第一时间查出病因,从而进行针对性的治疗,取而代之的是辗转于各个医院却始终不能药到病除。这里告诉大家,患妇科病后,去妇科并不一定能找出病因,也许在神经外科你才能找到正确答案
期刊
摘 要:中国特色社会主义的形成离不开科学主义的参照价值,两者之间在社会主义核心价值的发展过程中,存在着相辅相成的关系,本文将针对科学主义社会视角下的中国特色主义进行阐述,进而介绍两者之间的关系。  关键词:中国特色社会主义;科学社会;中国主义社会  1.科学社会主义  1.1理论体系  科学社会主义是集合社会主义本质、特性及其发展规律,对其未来社会主义事件进行空想发展的一个科学理论。与其他社会科学
期刊
摘 要:随着现代医学的不断发展,人们对于自闭症儿童的关注越来越深刻,儿童作为社会发展的希望,是我们必须要关心的话题,因此对于自闭症儿童来说,如何更好地帮助他们进行康复训练,成为了每一个特殊学校教师的重要目标之一。在自闭症研究者的不断努力下,发现运动对于自闭症儿童的康复有着积极的影响,本文即浅谈一下运动在自闭症儿童康复中的应用策略。  关键词:自闭症儿童;运动游戏;康复策略  自闭症儿童往往具有语言
期刊
摘 要:产品质量计量检测所的工作内容范围甚广,由于海量的计量工作难免会出现误差,从而影响了计量检测工作的质量,不仅损害相关部门在社会中的信誉度,也严重侵害了其他参与人员的利益,为了提高计量检测结果的准确度,为了降低负面因素对计量检测结果的干扰,本篇论文对影响计量检测质量的因素做出了深入研究,并提出了应对这些负面因素的优化措施,对我国产品质量计量检测所在日后的正常工作中也有一定的参考作用。  关键词
期刊
摘 要:目前,随着地面交通状况的逐渐恶化,堵车现象越来越严重,不少城市开始开发地下交通。地下交通不仅不会遇到堵车的状况,相比地面交通的客运量有非常明显的优势。地铁是目前开发出的地下交通的重要组成部分,是逐渐取代公交车的公共交通工具。地铁在建造时期需要耗费大量人力、物力、财力,从站点的建造,到车辆的投放等都需要经过复杂的工序完成。以地铁站的建造为例,在建造过程中,某些工作存在极大的危险性。本文以从技
期刊