智慧消防项目解决方案说明书.docx
智慧消防项目解决方案说明书目录一、项目存在问题及需解决问题31. 存在问题32. 需解决问题3二、解决方案31. 统、开放的通讯协议标准32. 充分利用联网单位消防信息资源43. 物联网技术结合,有效利用已有技术资源44. 解决方案架构55. 关键技术6(1) Hadoop6(2) SPringMVC6(3) MyBatis6(4) Echarts7(5) MySQI7(6) Hive7(7) HBASE8(8) Zookecper8(9) F1.ume8三、开发范围81. 数据生产82. 数据采集/消费93. 数据分析104. 数据展示11一、项目存在问题及需解决问题1 .存在问题消防资源和消防管理对象数量日益增多,基础信息的采集、维护、管理工作难度加大,数据的规范性、统一性急需完善,资源共享工作急需加强。消防业务种类繁多,流程复杂,原有的信息化系统无法满足现有业务开展的需要,目前管理压力和管理成本较高。现行部分执法过程不够规范和透明,执法监督工作难以开展,无法对相关执法人员的业务水'F等做综合测评,绩效考核工作无法开展。警用地理信息系统在市局统一GIS平台基础上犷展,消防对象和消防资源的数据采集和图层制作需进步进行,尤其对重点单位建筑体内部消防通道和设施的分倘情况要加强管理。2 .需解决问题 数据分散 信息壁垒 数据量大二、解决方案1 .统一、开放的通讯协议标准其数据传输必须严格遵循统一、标准的通讯协议,才能保证信息数据传输的可读性、可执行性及准确性。国家有关部门可组织国内大型生产企业,有步骤地规范和统一火灾自动报警系统及其联动系统的通讯协议标准,形成国家强制标准,作为公共资源予颁布实施。在规范和统一火灾自动报警系统及其联动系统通讯协议标准时,应瞄准当前国际工业控制计算机网络技术的最新发展动态,借鉴现已获得广泛公认的标准总线、通讯协议,利用现有软件、硬件技术,使协议与国际接轨。同时,该协议标准亦应以国内技术相对先进、产品性能相对可靠的生产企业的现行标准为基础技术支持,使国内消防设备联网产业的发展得到合理的衔接、过渡和更新。2 .充分利用联网单位消防信息资源采用动态即插即用技术,使网络在正常工作条件下,随时可以增加和减少并入的报警主机。网络应支持多台操纵站,同一个报警信息不同部门的操作终端皆能接收到,设备应具有自我诊断、自我修复并作详细记载的功能。设备应能支持动态远程操作,通过对消防物联网传输终端进行动态监视,了解报警状态和故障信息,检查值班人员的工作,为消防指挥提供可靠的信息。在特殊情况下,远程监视点还可以作为备用的值班位置,使用户对报警系统的使用更灵活,更方便。3.物联网技术结合,有效利用已有技术资源采用二维条码识别技术,使无源消防系统工作状态同样随时被掌控,消防物联网系统内各负责部门相关人员应均配备消防物联智能终端,包括物联网监控中心、联网单位、消防主管部门、维保服务商等相关部门需要终端作业的相关人员,智能终端可选择工程机或智能手机,携带方便,可随时作业,随时/解管辖联网单位消防设施状况,无论是火灾隐患还是设备故障处理,均能有效消除病解决。4.解决方案架构实时数撤处元Kafka依靠存M出%rBtxmairT41WASE分布式文件不8HWS图1决方案架构图系统开发平台使用Hadoop大数据开发平台。I1.adoop是一个高度可扩展的存储平台,可以存储和分发横跨数百个并行操作的廉价的服务器数据集群。能扩展到处理大量的数据,能提供成百上千TB的数据节点上运行的应用程序。Hadoop能够有效的在几分钟内处理TB级的数据。相比关系型数据库管理系统更具有优势。它适用于任何规模的非结构化数据持续增长的企业,将帮助用户持续提高用户体验。系统采用面向对象的软件设计方法,把整个系统看作是多个离散对象的组合。系统设计时,首先把业务流程分解成功能模块及其业务实体对象,然后根据业务流程分析对于这些业务实体对象的操作方法,形成业务处理对象,最后把各个功能模块关联起来,形成系统。软件设计是一个将需求转变为软件的过程,系统通过逐步求精使得设计陈述逐渐接近于源代码。系统程序采用VVC的设计思想,将展现逻辑、控制逻辑、业务处理逻辑分离。系统采用参数化的设计思想,定义和管理系统的实体及配置,调整实体以适应外部变化。系统采用J2EE技术保证程序逻辑实现的平台无关性,并便于安装部署。系统采用AJAX技术,提高客户操作的交互性,保证实际使用的易用性。系统采用echarts可视化框架实现数据展示。5.关键技术(1) HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。(2) SpringMVCSpringMVC:属于SPringFrameWOrk的后续产品,已经融合在SpringWebFIoW里而。Spring框架提供了构建Web应用程序的全功能MVC模块。(3) MyBatisMYBatis:是支持普通SQ1.查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XM1.或注解用于配置和原始映射,将接口和Java的POJoS(P1.ainO1.dJavaObjects,普通的JaVa对象)映射成数据库中的记录。(4) EchartsECharts是一款基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。(5) MySQ1.MySQ1.是一个关系型数据库管理系统,由瑞典MySQ1.AB公司开发,屈于Orac1.e旗下产品。MySQ1.是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQ1.是最好的RDBMS(Re1.ationa1.DatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQI.是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加r速度并提高了灵活性。MySQ1.所使用的SQ1.语言是用于访问数据库的最常用标准化语言。MySQ1.软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQ1.作为网站数据库。(6) Hivehive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQ1.查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQ1.查询功能;可以将SQ1.语句转换为MapReduce任务运行,通过自己的SQI.查询分析需要的内容,这套SQ1.简称HiveSQ1.,使不熟悉mapreduce的用户可以很方便地利用SQ1.语言查询、汇总和分析数据。而mapreduce开发人员可以把H己写的mapper和reducer作为插件来支持hive做更复杂的数据分析。它与关系型数据库的SQ1.略有不同,但支持了绝大多数的语句如DD1.、DM1.以及常见的聚合函数、连接查询、条件查询。它还提供了一系列的:具进行数据提取转化加载,用来存储、查询和分析存储在Hadoop中的大规模数据集,并支持UDF(User-DefinedFunction)、UDF(User-DefnesAggregateFunction)和UDTF(User-DefinedTab1.e-GeneratingFunction),也可以实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性。(7) HBASEHBase-HadoopDatabase*是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。(8) ZookeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Goog1.e的Chubby一个开源的实现,是Hadoop和HbaSe的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。(9) F1.umeF1.ume是C1.oudera提供的一个高可用的,高可靠的,分布式的海量志采集、聚合和传输的系统,F1.ume支持在口志系统中定制各类数据发送方,用于收集数据;同时,FIUme提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。三、开发范围1 .数据生产对于该模块的业务,即数据生产过程,般并不会让你来进行操作,数据生产是一套完整且严密的体系,这样可以保证数据的安全性。但是如果涉及到项目的一体化方案的设计(数据的产生、存储、分析、展示),则必须清楚每一个环节是如何处理的,包括其中每个环境可能隐藏的问题;数据结构,数据内容可能出现的问题。2 .数据采集/消费数据采集模块(消费),在企业中你要清楚流式数据采集框架f1.ume和kafka的定位是什么。我们在此需要将实时数据通过f1.ume采集到kafka然后供给给hbase消费。f1.ume:c1oudera公司研发适合下游数据消费者不多的情况:适合数据安全性要求不高的操作:适合与Hac1.oop生态圈对接的操作。kafka:Iinkedin公司研发适合数据卜游消费众多的情况;适合数据安全性要求较高的操作(支持rep1.ication);因此我们常用的一种模型是:线上数据>f1.ume>kafka>f1.ume(根据情景增删该流程)>HDFS线上数据一>f1.ume>kafka>sparkstreaming实时流式处理消费存储模块流程图:图2消费存储模块流程图3 .数据分析我们的数据已经完整的采集到了HBase集群中,这次我们需要对采集到的数据进行分析,统计出我们想要的结果。注意,在分析的过程中,我们不一定会采取一个业务指标对应一个mapreduce-job的方式,如果情景允许,我们会采取一个mapreduce分析多个业务指标的方式来进行任务。分析模块流程图:Zookcepvr图3分析横块流程图4 .数据展示数据展示模块流程图:图4数据展示模块流程图