基于微信平台的渭河水量调度业务集成服务系统研究
摘要:在这个蔚蓝星球的表面上覆盖绝大多数物质,就是我们碳基生物诞生的必须资源-水。这份资源来自地球母球馈赠,尽管资源量基数不小,但是全球人11的增长和人类社会发展的需要,使得水资源正在变得越来越少。黄河之于我国人民心中的位置,就像是渭河在陕西人民心中的位置-样。渭河水量调度不仅是对沿河城市一发展的支撑,也是经济社会稳定的保障。随着水利信息化进程的推进和计算机科学技术的发展,本文基于微信平台对渭河水量调度业务集成,构建了•个渭河水量调度系统,为渭河水量调度业务提供了新的集成模式,也给水量调度工作人员带来一个更灵活方便的系统。关于渭河水量调度的业务集成服务研究主要研究内容和成果如下:
(1)基于微信平台的渭河水量调度业务集成系统前台研究。针对渭河水量调度的需求及日常调度业务,将信息化和移动应用放在微信平台引入到渭河水量调度中,基于微信平台构建了水量调度业务集成系统的前台,用相关技术设计并实现了调度信息的査询、用水计划查询、水量调度相关业务订制推送等服务,微信平台的小程序作为渭河水量调度系统主要应用,公众号作以辅助,综合集成实现水量调度业务集成服务系统的前台。
(2)渭河水量调度业务集成系统后台的研究。在渭河水量调度业务集成系统后台屮,分析了水量调度的数据支撑,对数据的来源、获取方式、管理研究,并用一个数据汇集实例说明系统后台如何进行数据收集、管理、应用。对水量调度业务集成系统中的后台和前台的交互及接口进行设计,实现业务信息服务,并基于渭河水危调度的基本方式,在后台系统中说明水量调度方案如何定制的问题O
(3)基于微信平台的渭河水量调度业务集成系统开发应用。基于微信平台和SSM架构,结合水利信息化的发展和移动应用开发技术的进步,研究渭河水量调度模式及业务后,分别在前后台对水量调度业务集成实现,前台由小程序和公众号实现应用,后台上要做数据支撑、调度方案编制及前台信息服务交互。该系统为渭河水量调度在移动应用上填补了一片空白,使得调度业务在微信平台即可进行,使调度工作更加具有灵活便携,
关键词:水量调度;微信平台;业务集成;集成系统:系统开发及移动应用
摘要 I
1绪论 1
1.1研究背景及意义 1
1.2国内外研究进展 2
1.2.1国外研究现状 2
1.2.2国内研究现状 3
1.2.3存在的问题 5
1.3研究主要内容 6
1.4研究技术路线 6
2基于微信平台的水量调度业务集成系统前台研究 9
2.1系统前台开发模式比选 9
2.1.1B/S架构模式 9
2.1.2移动应用开发模式 10
2.1.3基于微信平台的开发模式 11
2.2前台集成技术介绍 11
2.2.1微信平台 11
2.2.2数据可视化技术 13
2.2.3关键技术框架 14
2.3系统前台需求分析及业务研究 15
2.3.1系统前台需求分析 15
2.3.2前台系统业务流程 18
2.4水量调度数据图表实现 19
2.5本章小结 22
3渭河水量调度业务集成系统后台研究 23
3.1渭河水量调度数据支撑 23
3.1.1数据来源分析 23
3.1.2数据获取方式 24
3.1.3数据管理方式 24
3.1.4数据安全保障 25
3.1.5数据汇集及使用实例 26
3.2系统后台关键技术 29
3.3微信平台与调度系统数据交互及接口设计 31
I
3.3.1微信平台和调度业务系统交互流程 31
3.3.2渭河水量调度业务集成系统接口设计 32
3.4渭河水量调度业务信息服务 33
3.4.1调度业务信息服务流程 33
3.4.2调度业务信息查询及推送系统的实现 34
3.5渭河水量调度方案研究 36
3.5.1渭河调度基本原则 36
3.5.2渭河水量调度基本方式 37
3.6本章小结 40
4基于微信平台的渭河水量调度业务集成系统开发应用 41
4.1开发环境配置和开发工具简介 41
4.1.1开发工具简介 41
4.1.2开发环境配置 41
4.2微信小程序 45
4.2.1小程序安装使用 45
4.2.2登录模块 46
4.2.3实时水情模块 46
4.2.4用水统计模块 49
4.2.5调度计划模块 51
4.2.6调度方案模块 52
4.3微信公众号 53
4.4调度方案编制子系统 54
4.4.1年水量调度方案编制功能 54
4.4.2月水量调度方案编制功能 56
4.4.3调度方案报告生成 58
4.5本章小结 58
5结论与展望 59
5.1结论 59
5.2展望 59
致谢 61
参考文献 63
1绪论
1.1研究背景及意义
地球是我们生命的起源之地,在个蔚蓝星球的表面上覆盖绝大多数物质,就是我们碳基生物诞生的必须资源一水。这份资源来自地球母球馈,尽管资源量基数不小,但是全球人口的增长和人类社会发展的需要,使得水资源正在变得越来越少。如今我国水资源污染十分严重以及对水资源的需求日益增加[1],我国的淡水资源现在不仅是缺少,在部分区域已经非常匮乏,俨然成为我国发展制约因素。水资源短缺,水污染相关问题也是全球关注的重要问题。我国的淡水资源总量虽然在世界位居第四,但淡水资源储量仍不乐观,仅占到世界水资源总量的6%[2],再加上我国是一个人口大国,人口基数大带来的诸多问题之一就是人均水资源稀少,我国人均水资源仅为世界平均水平的1/4[3],到本世纪后期,中国人均水资源量不会超过1800m3[4-6]。
渭河之于陕西人民的重要性,就像是黄河在炎黄子孙心中的位置一样。渭河干流总面积13.48万km2,河流总长为818km[7],在陕西省内河长达502km,渭河在陕西境内流域面积占比陕西省总面积高达32.6%,其流域面积有6.71万km2。这片流域上集中了全省大部分人口、超过一半的耕地面积、绝大部分灌溉面积以及65%生产总值。不仅是陕西省经济的核心区域,也是未来发展的重点区域I8】。
整个陕西省中渭河流域部分的水资源承载能力极其有限,上世纪80年代开始,经济的快速发展以及沿河城市发展带来的自然条件影响,使得渭河流域的水污染、洪涝灾害以及资源匮乏等问题更加严重,这一现象不仅对可持续发展有着严重的制约,也对生态坏境有着很大程度的破坏。如何去解决这些问题也是让水利工作者日思夜想,而要合理利用水资源并兼顾对生态环境保护,水量调度就是一个解决这些难题的重要举措。
从2006年开始,渭河因为是黄河的重要支流,黄河水量调度的要求规则便成为了渭河水量调度的重要参照,同时也标志着渭河流域在水量调度工作上的开始。在当时因为相关法令体制较少,渭河水量调度管理也开始制定相关的条例办法,所以渭河水量调度管理暂行办法成为了当时由省水利厅版发的重要渭河调度指示文件,标志着渭河水量调度工作正式启动实施DI。
《陕西省渭河水量调度办法》在2008年由省政府发布并推广施行。渭河水量调度工作在这个阶段也有了初步目标,其目标先是保证渭河不断流,次之目标是在渭河的干流上,各个省控断面以及重点控制断面的基流不断流。为了将水量调度在渭河的工作做的更完善,并在现阶段的基础上提高,陕西省水利厅在相关法规基础上,结合在调度工作中的实际情况,向各方广泛征求意见进行改进。在随后的几年时间中渭河水量调度相关的法律法规体系慢慢完善,随着一系列的条例预案的出台实施,水量调度工作不仅常态化的进行,
并有了科学和规范的依据。
在绿水青山就是金山银山及生态文明建设的推进背景下,渭河水量调度工作的也有了生态目标,从防止断流的调度目标,提升到既要保证不断流还要逐步提升生态方面的水量调度。在此基础上,省水利厅以林家村断面作为试点,将林家村的流量指标最小值提高了3m3/s,效果显著,《陕西省基于生态流量保障的水量调度方案》也随着这一时期的调度工作应运而生。
自渭河实施水量调度以来,各级部门以及水利工作者的努力下,渭河的调度控制指标得到了有效满足,而且河道的生态基流也得到了保障,水资源利用以及调水情况有效统筹,这些工作对渭河的水环境不仅是缓解作用,甚至对水污染情况也有效改善。
在科学技术的发展和社会进步的背景下,我国也从工业化社会向信息化社会过度。信息是继材料和能源之后的第三资源【1呢信息化社会转变是有一定的基础才可以进行的,它不仅要求拥有大量的信息资源,还必须要有信息技术的保障以及信息技术产业和信息服务业支撑。我国水利信息化的工作起步较晚,起初的目标也主要表现在水雨情信息的监测、采集、传输、处理,然后在此基础上洪水预报,这些在全国水利系统中的开展,对历年防汛抗旱的工作有了不小的帮助。随着水利信息化的发展,全国范围在水情网的基础上将“国家水文数据库”初步建成,信息化带来的便利也让水利系统的工作都有了很大的发展促进。
我国的互联网发展随着技术产业的进步,进入了移动时代。手机的使用率几乎达到百分之百,其中手机上网的网民也占据我国一半人口乃至更多,移动互联网的发展给人们生活方式的影响也是巨大的,不仅能让人民生活更加便利也对经济发展有着重要促进作用,它也是未来信息化发展的趋势,让新应用以及新形势的媒体发展迅速,这种信息传播方式有着其他传统方式难以替代的优势"I]。水利信息化的建设发展也要紧跟时势,在水利工作相关的信息服务也要和移动时代的这些应用技术结合起来,比如微信、微博、移动应用、云服务等新兴的技术和渠道来在水利信息化方面进行一场革命,在新的阶段把水利信息化的作用更好发挥,让水利行业的信息化发展也能成为经济及社会发展的重要支撑。
1.2国内外研究进展
水量调度和业务集成系统研究涉及到水利和计算机两个行业,范围广理论和系统的研究都相当复杂。国内外学者在在这两个方面,从上世纪开始研究,已经累计了不少成果。计算机技术和信息化的发展,也让在水利信息化的应用领域研究有所拓展。
1.2.1国外研究现状
国外开展水量调度和水资源分配问题研究起源较早,由单独的工程再到流域水资源的研究,从上个世纪40年代开始,Masse便开始了关于水库如何进行更有效的调度相关研究。1953年,USACE在以位于魏国的密苏里河流域的六个水库的运行和调度进行了研究。在后续的研究中,(Hallanddracop1970)【12]Masse等人【13]将仿真模拟技术和经济评价指标在具体流域中进行应用。计算机技术和信息化的推进,关于水量调度和水资源管理系统也是层出不穷,其中比较有影响的案例有麻省理工学院(MIT)o为阿根廷里奥科罗拉多河流域开发了水资源管理模型"I。
从理论出发,巴鲁斯所提出的水资源科学配置【15]提出了水资源配置的理论方法,同时在《亚太水资源利用与管理手册》【16]中我们也可以找到相关的方法。随着计算机以及遥感测绘和通信技术都开始了快速发展,实时优化调度也开始得到关注01972年,Jamieson和Wilkinson【17]两人设计出了一套水库防洪预报系统,这套系统同时也是一个实时的水量调度系。Windsor等人【18]在水库实时调度防洪方面,用线性规划技术进行了研究。A.Turgeon【19]则是在多发电水库联合实时调度结合渐近式优化和随机的动态规划两种方式进行了研究。Karamouz【20]提出了一种可以结合仿真和DP的日常实时优化调度模型。在水资源分配系统和调度模型系统的研究上,诞生了Aquarius【21]这种模型系统。
国外研究目前具有非常多的模型和系统研究,但是在业务集成方面和水量调度系统结合的系统研究则是比较少,基于一个平台来做水量调度业务集成的研究就更少了。
1.2.2国内研究现状
我国水量调度研究和实际相结合,从上世纪60年代起,便开始了关于水库优化调度的研究。在这期间研究不仅对水量调度的模型和方法进行大量研究,在水量调度系统方面也做了不少研究工作,水量调度如何与计算机技术和信息化结合实现业务集成,我国的学者都有一定的研究突破和进展。
首先是在水量调度模型方法上的研究,水量调度常用的调度方法有现行调度方法、系统分析方法、自适应方法和适度优化方法。在之后的研究中,在水量调度中逐渐出现了一些组合模型,如人工智能模型、WROOM模型、粒子群优化模型等,使得水调度的研究越来越广泛。
从上个世纪80年代开始我国学者在水量调度模型方法上取得了不少研究成果°1981年,方益新【22]绘制了调度图,编制了调度计划,包括短期调度计划、抗旱调度计划、防汛抗旱调度计划等,提出了做好水调度方案的重要性。
1985年,蔡万友I23]利用目前的水量调度方法,对全县独立小电网的水量调度进行了初步研究,效果非常满意。
80年代末期,郑伍森等I24]采用系统分析方法研究了南水北调东线一期工程用水优化调度问题,分别用了迭代计算和反馈运算来将水量调度的规则和水量分配原理在计算机上实现。
新世纪伊始,2001年,郝青帆等㈣,通过施行用总水量控制年尺度的调度,在英罗峡-正义峡水线平行移动结合月尺度修正原则来编制了年和月的水量调度计划。
2002年,常建霞等,应用系统科学方法建立了系统的水模拟调度模型,合理确定了系统的网络结构和模型计算原理,通过增加辨识模块和控制修正模块,模型可以快速找到满意的解。
2003年,陈良成等QI研究了黄河流域水量调度方案的现行方法、自适应方法和适度优化方法。
2004年,王煜等野]提出了一套组合模型其中包括黄河上游子系统中的水库调度模型、三个小型水库子系统水库调度模型、河段配水以及方案优化,对黄河的非汛期干流工程河段水量调度及分配的方法、目标、原则进行界定。在同时期,韦家华钏]等建立了黄河流域的水量调度模型,该模型结合了自适应控制理论。
同年,蔡志国等I30】,为满足黄河水量调度中实际工作的需要,建立了一套换个号流域自校正控制调水模型,解决了当时简单人工进行水量调度的局限性。
2005年赵小军Di]等,针对流域内不同的用水群体之间如何合理水量分配问题,结合了粒子群优化算法来求解优化的水量调度方案,在结合了智能算法的情况下,将其算法的优化特点充分发挥了出来。
2008年,李刚军等I32】基于事例推理也就是CBR技术引入了水量调度中,结合人工智能的事例推理可以借鉴历史的调度案例来让水量调度的结果更加优化合理。
2009年的时候刘荣华等El,建立了一种优化水量调度模型,与以往调度模型的区别是该模型的效益最大化目标是以经济和生态为最大目标,主要对灌溉用水和生态方面进行优化配置,这也对其他效益最大化目标优化模型提供了一个新的研究方向。
2010年,严福超等【34],基于案例推理方法进行水资源调度,该模型可为未来水资源管理和调度提供参考。
2014年汪雅梅等【35]对wroom模型进行了研究和改进,建立了渭河水量调度模型,并在此基础上设计构建了渭河水量调度系统。
2015年,李鹏程等I36】,在结合模糊和运筹学理论的基础上,采用了梯形模糊理论对模糊参数进行去模糊化处理,构建了基于多模糊参数的最优水量调度决策模型。
水量调度系统研究方面,我国学者在开始水量调度方法模型之后也在不久后便开始了水量调度系统的研究。水调度系统的研究主要采用先进的技术与水调度方法和模型。目前,研究人员已经做了大量的研究。
2000年,王煜等【37],采用VisualFoxPro和VisualBasic结合其中的面向对象以及可视化编程技术,开发了出水量调度决策支持系统。
2002年,赵勇等【38]运用了模糊数学理论,在进行水量分配的计算中,把多目标函数转化为单目标的额函数进行求解,并运用数理统计模拟进行实验分析,在工程配水和水量调度模型都实现了仿真系统。
2003年,王煜等I39〕,为了使决策支持系统的功能更加强大,结合地理信息系统(GIS)中的空间分析系统,对水量调度决策支持系统在空间的展现和分析方面进行弥补,在数据层面也是结合GIS系统中的数据可视化让系统的数据表达更加清晰直观。
2004年,徐晓峰等【40】将Web服务技术应用到水调度系统中,得到了很好的应用。
2005年,孔克等Hi]在黄河的应急水量调度和水量补偿方面的问题进行了拆解,将水流过程中的效益转移分解为几个相互关联的Agent,并基于Agent模型建立了仿真系统。
2006年,马伟刚等四,结合WEB开发技术对于干旱情况下的应急水量调度进行系统仿真,其仿真系统也是在AAF应用框架下并符合J2ee的规范。
另外信息化技术的成熟,水利信息化的技术问题也有所突破,移动应用的兴起,也使得水量调度系统可以考虑客户端由电脑向手机客户端过度,越来越强大的手机功能开发,也在为水利信息化工作的水量调度系统提供一个新的路径,基于微信平台的新兴开发模式成为当下热点之一。
目前,国内外研究者对水量调度的研究做了大量的工作,特别是对水量调度方法的研究,对提高水资源的利用有着重要贡献,也为水量调度的研究打下基础,但对水量调度模式和系统的研究较少,业务集成方面没有办法很好的结合,信息化水平不是很高,调度系统的可操作性较低,与实际应用还有一定的差距。
1.2.3存在的问题
尽管在国内外在水量调度研究方面已经硕果累累,在对我们进行水量调度工作提供了理论依据及经验,也让水资源的利用和水环境的改善都有着推动作用。陕西省关于渭河的调度工作虽然也一直在发展中,但是在调研中还是存在些许问题,总结归纳为以下两点:
(1) 关于水量调度的研究主要都是集中在调度模型的如何建立使用方面,然而水量调度问题不单单是用调度模型就可以去解决的,况且在模型的研究中涉及到大量的计算,无论其计算过程还是模型实现过程也是相当复杂。在这种情况下要和水量调度工作中的实际情况相结合,可以说模型的使用效果是微乎其微,还要将其在具体的流域应用可能其实际使用效果会更差。调度模型在对渭河水量调度的具体业务应用需求方面也没有让水量调度工作者去直接使用,并达到满意的调度效果。
(2) 关于水量调度方面的信息化水平不高,在传统的模式下,往往都是把调度模型和软件系统杂糅在一起,不仅在业务方面结合不够紧密,使用效果差,无法对业务的实际需求得到满足,在业务拓展和扩充方面就更难实现了,而且大多系统在操作、适应性方面繁琐老旧,有的甚至都可能需要专门培训,使用效果往往还不尽人意,在移动应用和系统结合的方面更是没有为渭河的水量调度来服务的调度信息集成服务系统,计算机技术的进步并没有让我们水利信息化在渭河水量调度方面有提升,所以对渭河的水量调度工作来说,现在还是非常需要一个理论结合性高、信息化程度高并且能运用最新的移动互联网技术的系统。
1.3研究主要内容
为解决水量调度在信息化背景下的应用性差、使用不够便捷以及难以实现动态和实时性等问题,本文将以信息化技术为背景,微信平台为支撑,进行水量调度业务集成服务系统的研究,主要研究内容有以下几个方面:
(1) 基于微信平台的水量调度业务集成系统前台研究
本文基于渭河水量调度工作及水利信息化发展背景下,讲业务集成系统进行前后台分离,分别处理不同的业务部分。前台主要由微信平台和相关开发技术实现,在此部分可以将水量调度的成果、水量调度方案以及还有水量调度相关的基本水文信息查询为主,并运用数据可视化技术进行展示,也可以通过微信公众号来实现定制推送水量调度信息服务。
(2) 渭河水量调度业务集成服务系统后台研究
根据系统前台可以实现的业务功能基础上,在后台发挥后台系统的优势。将水量调度相关的业务处理模块以及方案推送算法和部分设计水量调度计算处理的业务放在后台实现,主要为数据库部分,对数据的采集、传输、管理、运用,以及水量调度业务的水量调度方案的编制和推送。最后运用交互相关技术将前后台相连完成整个业务集成服务系统。
(3) 基于微信平台的水量调度业务集成开发应用
基于微信平在此本分对已经做成的系统模块进行介绍和展示。在调度方案编写这块运用计算机技术,微信平台及开发技术、数据库技术集成然后用Java实现调度方案的编写,前台的系统和后台系统交互起来并分别管理不同业务部分,也使得渭河水量调度业务能和微信平台结合起来,在微信平台上和后台的调度系统统筹起来做业务集成应用,不仅能对调度工作中的数据可视化也能够将调度的信息空间性、历史性表现出来。基于微信平台的渭河水量调度业务集成应用让调度能够更合理、便携,同时该系统的实用性和扩展性也能够满足日常调度工作需求。
1.4研究技术路线
论文此次的研究技术路线如图1-1所示。图1-1研究技术路线图
Fig1-1ResearchTechnologyRoadmap2.基于微信平台的水量调度业务集成系统前台研究
2基于微信平台的水量调度业务集成系统前台研究
在本文第一章节中对水量调度的模型研究和水量调度系统研究的研究背景和研究现状综述,根据研究技术路线以及在渭河水量调度集成服务系统中,将水量调度业务集成服务系统分为两个部分,即系统前台和系统后台。本章中将对渭河水量调度业务集成服务系统中的前台开发所选的模式以及前台的设计和相关技术进行阐述。
2.1系统前台开发模式比选
2.1.1B/S架构模式
B/S架构是以浏览器作为用户端,服务器来云计算的一种WEB技术下的网络架构模式。客户的业务应用都是在WEB浏览器上,这种模式的优点便是客户端不用每个用户都安装,服务器上更新和实现具体的业务集成应用。模式架构如图2-1所示。
图2-1B/S架构示意图Fig2-1B/Sarchitecturediagram
用户电脑上只要安装浏览器,就可以通过网址来访问,本地系统的话还需要数据库和WebServer的支持,如果服务器采用的是云服务器,那系统就直接可以在客户端通过WWW后面加上域名的公网进行访问,其中客户端所使用的浏览器即是用户层,中间层则是WEB服务器的脚本用来响用户来自浏览器的响应和数据层的交互,数据层负责存储文件系统以及数据库的管理,三者一起形成了经典的三层架构的开发模式。
在B/S架构下,它的优点也是非常明显的,在实现一个业务系统的时候,它的业务处理主要在服务器中,所以让用户的客户端体量轻巧,系统维护起来也很方便并后续如果需要系统升级的话,升级系统的工作也可以比较方便的进行。
缺点及难题:使用虽然简单,但是性能不好,在web模式中作一个前端的程序,不应该包含太多的业务逻辑,否则前端系统容易拥堵;对于使用者也许这种架构的模式是一个不错的选择,但是对于开发者来说,开发起来的话,是不便于维护代码的,在这种系统架构下的前端代码是复杂的,一方面需要掌握的开发技术很多,这将会导致开发时间和开发成本都提供,另一方面就是在系统在前端程序拥有的业务逻辑比较多,让系统会变得不够顺畅,这对于水量调度集成服务系统来说是不可取的。
2.1.2移动应用开发模式
移动应用开发即是传统的C/S开发模式一种,只是将客户端放在更为便捷的手机程序上。移动应用开发可以说是WEB开发模式的延续,两者也有比较相似的地方,其不同点也很明显,移动应用开发模式它的客户端往往是智能手机或者平板电脑这种便于携带的载体,通过设备编写软件及APP开发实现客户端的程序。移动应用开发架构图如下图2-2所示。
Eent:Server
客户端程序
客户端程序
图2-2移动应用开发架构示意图
Fig2-2Mobileapplicationdevelopmentarchitecturediagram
伴随着网络5G技术的发展和突破,以手机为客户端载体,移动应用上可以实现的业务功能变多,应用程序的开发扩展给各个行业带来新的应用模式。手机上的移动应用带来的社会效益和日门生活中带来的便利让人们已经离不开手机的使用,在此背景下发展更多的手机应用也是如今时代任务和当下热门主题。
尽管移动应用开发有如此多的优势,但缺点及难题也不少。首先手机系统不同于电脑系统,以手机端要做移动应用开发的话,涉及到不同的平台,各个平台下的手机系统不一样,手机操作系统又非常多,例如华为自主开发的鸿蒙系统、安卓、IOS等,同时还有很多其他操作系统需要兼顾,所以想要实现手机应用的统一,还是需要克服该兼容性问题。因为开发问题,开发人员往往需求量大,就会造成开发成本变高,另外在网络技术相关接口的复杂性,门槛和障碍也不少,所以不管是互联网公司还是其他行业需要来用移动应用开发,都会存在一个,将过度的精力投入到开发方面,同时这个过程中的各种难题也需要专门的工作人员去研发解决,这些投入往往会造成事倍功半。
2.1.3基于微信平台的开发模式
基于微信平台的开发是将微信本身涵盖的模块融入到水量调度业务应用中,其中微信小程序主要做为应用程序,公众号主要做推送和信息服务方面的业务。微信小程序这种开发模式可以解决前文中介绍其他的开发模式中存在的问题,比如B/S开发模式中,客户端通常比较大,不够轻便,使用不够便捷,而移动应用开发的兼容性问题在基于微信平台的小程序开发模式下,也得以解决,在不同系统下都能够兼容和正常使用小程序,同时客户端的轻量化免安装也是微信小程序的一个很大优势。如图2-3所示为微信平台开发的简单架构示意图。图2-3微信平台开发架构示意图
Fig2-3WeChatplatformdevelopmentarchitecturediagram
本节中对现有的三种前台开发模式进行比较分析,充分考虑其优劣的情况下,选择微信平台的微信小程序做为移动应用、浏览器做辅助管理功能及微信公众号做实现业务信息推送的模式。
2.2前台集成技术介绍
2.2.1微信平台
2011年的年初,腾讯公司区别于QQ研发推出一款新的在智能终端上的免费应用程序"I一微信(WeChat),微信它能为用户提供免费的即时通讯服务的移动应用程序。根据相关数据调查统计,从微信诞生开始到2016年,微信几乎在我国所使用的智能手机上都有安装,这些使用者的活跃度也非常高"I,微信的用户受众几乎遍布全球,其中一些品牌也在微信平台开始用公众号和小程序做相关业务。微信最初的功能更多是人们用来交流沟通,因为微信可以和QQ一样,实现不同通信运营商以及不同操作系统的文字、图片、语音等的相互交互,在后续的发展中,微信的功能也越来越多各种各样的扩展功能使得微信平台生态形成,在微信平台的基础上,可以和这些服务插件结合起来,来做更多的应用开发和信息服务。
2.2.1.1微信公众号
微信公众号,是作为微信平台的一部分,根据账号的不同,服务类型也不同,可以根据微信公众平台提供的用户定位如:政府、企业、个人等来选择相应的服务模式。比如微信服务号就是比较适合企业,主要应用与业务服务和管理,而订阅号则就比较偏向媒体或者个人,它依托微信平台形成一个新的信息服务模式,主要也是给在使用微信的用户来传递或收集信息。小程序则是移动应用的APP,也是本文系统开发所主要应用的工具,在本文下一小节将会详细介绍。公众号的编辑开发也是非常方便和简洁的,在微信提供的公众号编辑网站即可对公众号相关功能和业务进行编辑处理。在水量调度业务集成系统中,微信公众号主要负责调度相关的消息推送以及定制的调度相关消息推送和一些调度的基础信息数据的查询。
2.2.1.2微信小程序
微信小程序,是微信平台下的的移动应用,其开发模式的优点在上文开发模式比选中已经做过介绍,其最大的特点是小程序这种应用,不需要用户在应用商城或者系统中专门去下载安装,只要有微信,在微信中搜索或者扫小程序自己专属的二维码,即可打开使用,小程序的开发和使用是面向全社会,所有使用微信的用户都可以去申请开发使用。
小程序为什么能在移动应用开发中占有一席之地,一方面小程序依托微信,微信的用户和使用受众让小程序的发展有着良好的前景,另一方面就是,微信小程序也是一种开源的开发模式,越来越多的开发者使用小程序这种开发模式,也会使小程序的发展稳步提高,进入一种良性循环。小程序与行业结合起来的应用也覆盖到了城市的方方面面,例如现在的地铁出行、公交乘车,以及在疫情期间施行的健康码个人信息统计,所以小程序的蓬勃发展不仅仅是自身价值证明,同时给经济发展和社会效益也有着正向促进作用I49】。
小程序这种模式,也让水利信息化的业务找到一条新的实现途径。水利信息化的业务系统如今大多相当复杂冗余,基于微信平台用小程序来做移动应用的模式,不仅将水利信息化的工作走在了前沿,也解决了在信息化工作中的调度系统相关难题,例如:系统的操作性要求高、适应性不强、调度系统移动应用方面的缺失、以及可以给调度工作带来轻巧的手机客户端应用,更容易让水利工作者甚至群众们接纳上手使用。
微信小程序开发有自己专用的开发工具,它也是水量调度业务集成系统前台中业务实现的必备开发工具。在系统的前台中让小程序实现了主要业务查询、信息查询、数据可视化等。如图2-4所示为小程序开发工具开发界面截图。
12图2-4微信小程序开发界面
Fig2-4WeChatsmallprogramdevelopmentinterface
2.2.2数据可视化技术
数据可视化技术,在前台系统中是一个重要的数据呈现手段。面对我们渭河水量调度日常中产生以及需要的各种数据,在系统的前台中,如何把这些水量调度各种而各样的数据,就不得不结合这一项技术,使得在系统前台中对于数据的表现方式更加美观便于理解和操作。数据如果仅仅只是通过数字,或者表格等简单的表现方式来在系统前台中展示的话,它对于我们来说就仅仅数字,没有价值,没有将其信息化、知识化,甚至可以说是无用的。而数据可视化就是让这些单调又无趣的数据,通过其他方式来表现,比如曲线、扇形图、柱状图等,当数据有了多种多样的表现方式,我们就能从这些数据中进行分析归纳得到有用的信息,最后服务于水量调度系统。可以说数据可视化技术是将数据的相关性和数据变化趋势展现出来的重要技术手段网。
为什么通过数据可视化我们可以更快更直接的获取有用信息呢,从生理角度来看,人的大脑对于图形和画面的认知往往实要比直接对数据表格处理效率更快更好。而调度系统最终还是服务于人,我们人作为决策者,来最终决定施行怎么样的调度方案,数据可视化技术在系统中的角色相当于决策者的助手,将那些复杂的海量数据,从中根据其特性组成各种图表,服务于调度决策,也让水量调度工作人员能够获取的资源和信息更多更快速EL
13
数据可视化的使用,刚好也切合本系统的设计的前后端分离的思想,在系统中可以放在小程序中引入使用,其实现可视化的技术也有几种,如ECharts、D3以及小程序也有其自带的可视化实现方式,虽然可视化的技术有这么多种可供选择的实现手段,但是其实这些技术都是根据图形渲染技术中的Canvas和SVG来做一些调整变化,来更方便的使用。在渭河水量调度系统的数据可视化实现中选择的是ECharts。
ECharts的本质是一个能让数据变得可视化的图表库,它包含于JSP中,是百度团队设计的开源软件。在渭河水量调度系统前台中,关于水量调度的数据就是由ECharts来以各种图表展示出来,在系统中它可以直接面向数据来设计操作,这都源于ECharts有着自己的数据驱动,所以根据水量调度中的数据不同,其表现形式也会以不同方式呈现【润。ECharts的图表库中含有多种多样的图表类型,不仅有日常应用的K线、折线、柱状图,还有和地理数据相关联的一些地图,所以在该系统中它可以实现数据图表元素的关联混合【53]。其体系架构如图2-5所示。使用Echarts的话就更加方便了,在开发前台中只需要通过标签将其引入即可,准备好与其相适应的DOM容器,初始化一个实例,就可以用相应的方法去创建显示空白图表了。
图2-5Echarts的体系架构Fig2-5ArchitectureofEcharts
因为在水量调度系统中会有非常大量冗余的数据,怎么将这些数据运用,从中获取有用的信息,并通过信息化再到知识化,是本系统的前台工作中的一个重要部分。而在数据可视化的应用中,ECharts就能够在基于Canvas的基础上,对调度中的大量数据进行处理,并且在系统中的处理数据效率也非常好,为了调度工作的更好进行,这些数据更好的服务与日常调度工作,这些数据通过ECharts来在系统前台中呈现就非常必要。
2.2.3关键技术框架
Vue:Vue是一款很容易上手的构建用户UI的框架,它与其他的框架不同之处在于,它不仅可以实现从下层向上的每一层应用,也可以和项目整合以及第三方的库联系,因为它在系统中,核心部分是对于图层的,这就使得使用起来非常顺手方便,而且它还能在一些情况下对一些比较复杂的单独页面应用提供响应的驱动。
Layui:Layui也是一个前端的新型框架,在2016年的下半年开发出来,学习和使用门槛都不高,如果有WEB开发的基础,只需要遵循Html5/CSS/JS的原生形式即可,虽然
14看起来非常简约,但正是因为其细节的核心代码以及每个API都经过反复研磨,让它体积不大,但是组件却丰富,最大的特点就是回归最早的WEB开发模式,而不是以MVVM为UI框架,技术的进步也是盘旋式的上升,在抛开那些复杂的工具和配置,用Layui开发只需要针对浏览器即可,让你需要的数据、样式、交互都能从Layui中唾手可得。
Ionic:Ionic是一个开源并且免费的用于手机应用开发的代码库它是基于WEB技术应用的前端开发三个关键技术:Html5、CSS3以及JSP来进行APP开发的框架。Ionic在对前端APP开发的使用上,能够带来诸多便捷,一般和AngularJS配和使用。Ionic着重于应用和交互,目的是让基于前端的那些开发技术来为APP开发者服务,让开发工作更加简化【列,在本系统中的页面开发中也应用了该技术。
AJAX:全称为ASynchronousJavaScriptAndXML,说到AJAX就不得不介绍一下异步问题。异步就是客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。而AJAX就是将异步的JavaScript和XML相互结合。
一般系统交互是需要让整个系统前台应用页面都先加载然后更新,而AJAX的巧妙之处就在于,它可以通过数据的交互,来让应用的页面之进行部分刷新,比如在水量调度业务集成系统的前台中通过和后台中的服务器进行些许的水文数据交互,然后只让应用页面的相关数据刷新显示即可。将AJAX应用到水量调度业务集成服务系统中,面对系统大量水文数据,页面往往加载更新都比较慢,而AJAX就可以使系统前台中的水文数据实现异步的更替。也就是说,不用再让大量的调度信息重新加载,只对系统前台的某部分进行更新。要实现强交互或者这种异步的交互区],AJAX在水量调度系统的系统应用开发是必不可缺的。
2.3系统前台需求分析及业务研究
2.3.1系统前台需求分析
2.3.1.1功能性需求
出于对水量调度相关的数据安全性考虑,主要针对水量调度的工作人员使用,考虑到后续系统拓展问题,群众在数据收集上也能奉献自己的一份力量,而且对水利行业的宣传科普也是非常有益的。业务人员的前台系统功能方面可以对水量调度中涉及调度业务的数据进行查看,如:用水统计、调度方案、实时水情等,普通用户则只能查用一些和水量调度相关的基础信息数据,比如:基础水文数据信息、水利工程基本信息、流域的基本信息等。根据使用用户类型的两种类型,面向业务人员的功能性需求分析和面向普通用户的功能性分析如表2-1示。
15
表2-1用户功能分析表
Tab2-1UserFunctionAnalysisTable
用户类型 权限类别 功能内容
业务人员 高权限 系统登录识别
实时水情查询
24h详细水情查询
用水计划统计
调度计划查询
调度方案查询
基础水文信息查询流域基本信息查询水量调度宣传信息基础工程信息查询气象及地理信息查询紧急情况上报
工程及灌区用水信息查询订制信息推送
普通用户 低权限 系统登录识别基础水文信息查询流域基本信息查询水量调度宣传信息基础工程信息查询气象及地理信息查询紧急情况上报定制信息推送
面向业务人员,业务人员具有高权限的使用类别,可以查询到的调度相关信息和业务功能模块也比普通用户多一些。考虑水量调度业务集成也应面向广大群众,普通的用户也可以为调度业务基础系统贡献自己的一份力量,对普通用户的功能模块开发,在实现基本的信息查询功能外,还设计普通用户也可对紧急情况进行上报的功能,使得在紧急调度或者发生水污染的时候能够迅速得到相关信息,进行及时处理,减少损失。
对于系统前台的功能模块划分,因为公众号只承担信息推送模块,前台主要业务在微信小程序上实现和进行,所以对微信小程序的子系统和功能模块详细划分。渭河水量调度业务集成系统微信小程序共划分为6个子系统、17个模块。具体功能划分详见表2-2:
16
表2-2系统前台功能设计表
Tab2-2Systemfront-endfunctiondesigntable
系统 子系统 模块 功能单元
渭河水量调度业务集成系统微信小程序 登录模块 登录输入
登录跳转
用户密码验证
实时水情模块 当日水情 主要测站水情的查询
24h详细水情 河道水情、水库水情、地面降水信息
用水统计模块 市用水量统计 市区用水量统计(月、日)
灌区地表水取(退)水量统计 灌区地表水取(退)水量统计(月、日)
引水工程引水量统计 引水工程引水量统计
(月、日)
调度计划模块 年用水计划 年用水计划统计(市区、灌区、工程、水电站)
月用水计划 月用水计划统计(市区、灌区、工程、水电站)
调度方案模块 渭河调度方案
汉江调度方案
嘉陵江调度方案
黄河干流调度方案
基础信息模块 流域基础信息
气象地理基础信息
工程基本信息
2.3.1.2非功能性需求
(1)扩展性:系统设计实现后可以满足现在的水量调度日常工作需求,但是随着调度工作的需求变化,结合实际情况系统需要对功能结构进行调整重新设计开发,所以就需要
17
系统的各个功能模块要为单一服务模式,根据功能的划分,在后续水量调度中有其他需求,可以不影响系统其他功能的前提下来添加。
(2)可靠性:在调度系统碰到异常或者错误时,进行检査和识别有问题的节点,因为水量调度服务系统在功能服务上以集群式的方式开发实现,这就有效的保证了集成服务应用系统万一出现错误和意外情况,其他功能正常运行。
(3)性能要求:保证水量调度系统的硬件需求能够满足调度工作的进行,客户端因为是手机,所以在程序上也要保证流畅、性能要不断优化。
(4)维护性:因为渭河水量调度业务集成服务系统是采用JAVA实现,这种语言是面向对象的方式,在程序的开发和实现,测试中都更容易发现和修改bug。
(5)安全性:安全保证是整个系统的必要前提,在保证安全的前提下,才能谈使用的感受,调度系统更是涉及到大量数据,一旦数据泄露,被不法之人进行窃取,也是非常严重的后果。本文的系统采取的安全保障策略,能够让数据安全得到保障,也可以防止SQL注入和DDOS攻击等。
(6)灵活和易用性:在基于微信平台的移动应用开发模式,已经可以保证系统的灵活和实用性,它不仅不用下载安装,也解决了跨平台等诸多的开发和使用模式。在加载和配置方面,用户也能感受的和系统的交互性,使用便捷,对于一些操作引起的出错,也有相应的提示。
2.3.2前台系统业务流程
由于水量调度的复杂性,涉及到水资源、管理人员、数据、计算机、服务器等更各个方面的统筹协调,考虑到业务繁多又难以用技术交互融合,综合考量前台的系统主要负责对水量调度中的信息服务,例如:实时水情査询、年(月)用水计划査询、工程用水査询、基础水文站相关信息査询、紧急调度情况上报等。另外出于安全性考虑对水量调度的水文数据要加以保护,不能随便改写和使用,所以对调度工作人员和普通群众使用的前台和信息服务是不同的,其用户识别交互过程如图2-7所示。
普通用户 业务人员
图2-7用户识别交互图
Fig2-7Useridentificationinteractiondiagram
18
根据不同用户的业务不同,设计两套前台服务系统,此处也就要对登录模块进行设计和规划。对这两种用户群体日常业务和可能扩展到的业务进行分析,得到前端可实现的业务表。因为前台系统是基于微信平台的,根据微信自己的生态可以将其中的业务分开来在微信小程序和微信公众号来分别实现,查询和上报类涉及数据可视化相关技术和交互技术,所以在微信小程序中实现,定制信息服务可以将小程序和公众号关联起来,在公众号只获取自己想要的相关信息,甚至不用打开小程序界面,对于在紧急调度、防汛抗旱的重要时期,实行消息推送,及时反应调度情况和灾害预警相关信息,让水量调度工作更加灵活、便携性提高和让信息服务不受场地限制,不管是业务人员还是普通群众用户,都可以进行信息上报和查询,让微信平台真正的应用起来为水量调度工作服务。
前台业务和服务器及后台交互服务流程如下:普通交互流程为:用户用手机在小程序上向微信服务器发起请求,微信服务器转发到本系统的云服务器,再从数据库中获得数据响应,生成结果又回馈到微信服务器,最后再由
微信服务器在用户所使用的微信小程序上显示。定制推送流程是在使用小程序或者公众号的时候就从调度系统的云服务器中,然后云服务器会和数据库进行交互从数据库中获取数据,拿到前台所需要的数据之后,主动发送至微信服务器,最后微信服务器再和用户进行交互,用户的手机就可以拿到自己定制的信息数据了。基于微信平台的调度业务信息交互流程如图2-8所示。2.4水量调度数据图表实现
在渭河水量调度业务集成服务的系统前台中水量调度的数据图表也是结合调度工作人员实际工作需要实现的可视化功能,实现的工具就是开源库ECharts,它让水量调度相关的数据图表可以清晰直观又形象具体的可视化展现【54]。如何在系统前台中用ECharts来实现水量调度相关业务的数据可视化,其实现过程主要为以下几个步骤,ECharts在水量调度微信小程序应用中具体实现的模式如所图2-9示。
19第一步为在系统前台中引入Echarts库,本系统即是在微信开发平台中微信小程序开发的相关数据图表的.js文件中引入。引入代码如图2-10所示
<— pages►rainline>
import球asecharts-fromimpori:{request]--From,r.-imporrregeneratorRuntime
图2-10小程序中Echarts引入代码
Fig2-10CodeintroducedbyEchartsintheapplet
第二步是在微信小程序中为图表准备容器,小程序的展示页面主要是WXML文件,但不同于WEB模式,小程序的容器添加依然是在.js文件中,添加容器部分代码如下所示:图2-11添加容器代码
Fig2-11Addingcontainercode
第三步初始化实例,小程序开发中初始化实例在第二步的过程中就一起完成。第四步是和调度系统后台用AJAX技术交互。
第五步和第六步就是在需要可视化的页面中进行数据参数的渲染以及结果的绘制。其中系统中渭河降雨水情信息的图表渲染和绘制代码如图2-12所示。
20图2-12小程序中渲染绘制代码
Fig2-12Renderingdrawingcodeinanapplet
而在数据可视化实现过程中也和系统后台进行了数据交互,交互过程即AJAX的交互流程,首先是在系统前台中Echarts的初始化,再通过微信小程序客户端中的AJAX和后台系统通信并发出请求,在后台系统中已经规定编写好所返回的数据类型为Json格式。调度系统后台响应AJAX请求后,再从相应的接口中获取并解析请求的调度数据,完成解析后再返回给微信小程序进行处理。最终前端Echarts在小程序的展示效果如图2-10所示。
图2-13Echarts数据可视化Fig2-13EchartsDataVisualization
21
2.5本章小结
本章节中,对基于微信平台的水量调度业务集成系统的系统前台内容进行了介绍,因为该系统是在微信平台基础上开发的,在本章中说明为什么选择微信平台这种开发模式,前台集成开发特点、运行交互流程及关键技术在数据可视化这方面介绍了Echarts相关内容。在水量调度业务集成系统的前台,针对水量调度的需求和功能分析,在本章展开,另外也对系统最终实现的前台方面的功能进行了划分,非需求分析中的特点刚好能满足在调度业务中的灵活性、适应性要求,最后对微信平台的交互以及接口设计部分作以介绍说明。
22
3渭河水量调度业务集成系统后台研究
3.1渭河水量调度数据支撑
渭河水量调度系统后台实现,离不开数据的支撑。如何做好水量调度,数据是基石。在本文的渭河水量调度业务集成系统中,一部分数据是来自水文站实时监测数据和水量调度工作单位上报统计数据,还有一部分是从外部获取,两种异构的数据类型,如何管理以及如何结构化调度所用到的数据,成为了水量调度数据支撑的一个重要问题。而渭河水量调度系统的后台数据模块也是用来解决这一问题的,将从调度数据来源的分析、水文数据获取、还有综合数据管理三个方面来展开,并且保障数据安全,以从环保部网页收集数据的实例介绍了,数据从外部汇集的过程。
3.1.1数据来源分析
在水量调度业务集成服务系统的后台中,最重要也是最基础的就是水量调度相关的数据,没有数据就没有办法去做调度。我国从上个世纪以来经过水利信息化发展建设,各级部门和水利行业通过最早的档案资料,到后来的电子档案库,再到数据库管理存储,已经累计了相当庞大的数据供调度业务集成服务系统使用。这是一部分数据来源,还有其他部分数据资料,也是得益于水利信息化基础设施的建设,我们从各个水文站,河道断面等重要监测站点可以拿到实时的监测数据,这些实时的监测数据让数据的可靠性得到保障。现如今公共的网络资源也是一个重要的信息获取渠道,对于在水利部门以及相关水利行业的网站上,我们可以通过计算机技术来拿到它们开源的数据信息。也是在有了这么多数据的情况下,水量调度的水文相关信息形成了现在的研究热门大数据,这不仅是水量调度业务集成服务系统的必备保证之一,也是后续人工智能通过大数据来预测预报的基础。现在就是要将这些数据汇集起来,为水量调度业务集成系统服务。
调度基础类信息可以归纳为三类:一类是调度业务相关的数据,一类是渭河流域管理相关的数据,再一类是由社会公众提供的数据。表3-1为本次水量调度相关的部分数据需求。
23
表3-1水量调度基础数据需求表
Tab3-1Waterschedulingbasicdatarequirementstable
数据类型 小类 数据内容
基础类信息 自然类 河流基本信息流域基本信息气候基本信息水质基本信息
管理类 行政区划基本信息经济相关基本信息水利管理部门机构基本信息
工程与设施类 水文测站基本信息水库基本信息水电站基本信息引(取)水工程基本信息
3.1.2数据获取方式
水量调度业务集成服务系统的数据获取,根据上一小节中的数据来源分析,对于调度系统的后台所需要的水量调度相关数据可以总结归纳为两种方式。一种是长时间积累下来的水文数据,也就是这部分数据是可以直接获取拿来使用的,这对于水量调度业务集成服务系统来说是非常便捷的,在和水利相关部门合作后,取得数据来源的链接后,因为长期积累下来的水文数据量大,格式也不同,并且考虑到水文数据的重要性以及安全保障,对于数据获取,能拿到的也只是对外提供的外部链接,而不是直接的内部数据。这就需要在数据存储管理之前,将不同格式的数据类型进行统一化,经过数据解析最后存入水量调度系统后台数据库中。
还有一种方式则是从互联网上来获取调度相关所需要的数据,这种方式是不能直接获取到外部数据链接,但是可以通过计算机技术,用网络爬虫来下载网页中的数据。这种方式同样可以获取到很多水量调度所需要的资料,最终汇入到系统后台中。目前爬虫技术常用的工具分为:通过网络采集器来获取,它使用方便,一般是设计开发好的程序,只需要简单操作就可以获取到所需要的信息;另外还有一种方式,是通过编程来独立自主开发,结合调度业务所需要的数据来定制数据获取和过滤的条件,针对系统后台来专门设计实现,这种方式可以在过程中就对数据就进行统一处理,将数据归入水量调度系统后台数据库里。
3.1.3数据管理方式
水量调度相关数据发展到现在,积累了大量的数据,所以不得不对这些数据进行管理。数据管理的发展,也是随着技术的进步在变革,从早期的材料文件的人工管理发展到现在
24
的数据库技术数据管理。对于全国现在水利数据管理的情况,建立水量调度的信息数据库,可以在数据库中进行统一处理收集存储,对于开源的数据也可以进行解析之后存入系统的数据库中。水量调度业务集成服务系统的后台数据库中,可以分为两种,比如MySQL、Sqlserver存储了大部分的实时监测数据、基本信息数据,这种属于关系型数据;另外是对图形和文档类型的数据存储缓存的,比如Neo4j、Redis、MongoDB等,两种数据管理类型,可以由关系来决定,关系型的数据管理是关系和数据的联系,非关系型的则是根据图形或者文档,从数据中分析关系。对系统的统一性和适应性要求,在数据库管理这部分开发采用Java语言开发,为了数据的管理方便和精准度保证,对于调度业务体系后台的搭建,让这些数据库根据数据类型和来源进行存储,所以这些大数据的数据管理设计也是分布式,并采用了多种数据库进行数据管理。如图3-1所示为MySql数据库的数据管理示意图。3.1.4数据安全保障
渭河水量调度系统的数据,涉及到用水安全以及调度信息的安全保证,如果发生数据泄露,被不法分子截获利用,从中影响用水量调度的进行,将会造成难以计量的严重后果。大数据时代的数据安全问题更应该值得我们重视,所以针该系统从以下几个方面来保障的数据安全
(1)加强安全意识、建立数据保密协议;对从事调度工作人员的数据安全意识多宣传引导,激励业务人员对数据安全制度的执行,采取一些奖惩措施,对积极执行的工作人员给予奖励。同时也要对调度业务相关的数据进行分级分类管理,让相关核心数据和资料的权限级别都比较高,对于过期或者不用的数据资料进行销毁,同时也要限制数据接口的使用,如外用的u盘硬盘等的传输,全体业务人员在工作中也可以发现问题,及时提出补充,让水文数据的保密工作完善起来。
25
(2)定期检查系统漏洞、核心数据重点监测;在使用调度系统的时候,难免存在一些漏洞BUG,在使用过程中也许没有影响日常使用,但是也应该进行定期检查,让这些漏洞及时修复,以免被攻击造成数据泄露。并对重点数据进行重点监管,比如最终的调度方案和调度信息,这些存储的数据库进行重点的监控,防止数据丢失泄露。
3.1.5数据汇集及使用实例
3.1.5.1数据源
通过互联网可以获取到的开源数据是非常多的,对于水量调度业务集成服务系统的水文数据获取,以我国环保部门的数据发布中心为例,因为数据是国家对外公开的开源水利行业数据,所以也不用担心数据安全相关问题,如图3-2所示为数据获取实例的网站主页。图3-2数据中心主页
Fig3-2DataCenterHomePage
在该数据中心的网站下,有很多的数据报表可以获取,选择一个自己想要获取的数据报表进行查看并且可以下载图3-3为数据中心的数据列表。
26
图3-3数据中心数据列表
Fig3-3DataCenterDataList
3.1.5.2数据获取
在上一节中通过互联网我们找到提供数据支持的数据源之后,因为环保部提供了数据下载和数据接口,并且非常方便的是刚好下载后的数据形式是Json,这与水量调度业务集成系统中的数据类型一致,从而让数据处理的很多步骤可以省略。将下载好的数据进行解析,即可存入我们调度业务集成服务系统的后台数据库中。下面为该数据的具体Json代码型式。
(
"data":[
(
'num:1,
year":2018,
"week”:52,
"rsNm":“长江水系”,"stNm":“攀枝花龙洞”,
"rvNm":“长江”,
"section":mu11,
"ph":7.84,
"Do":10.4,
"cod":1.3,
"nh3N":0.09,
"pWq":1,"1Wq":1}]
},
27
本次采用java编程的方式将输入导入数据库中,数据从获取到解析再到存入系统的后台中,都是通过java来实现的,这一部分就是非常关键的数据汇集过程,如图3-4所示为数据汇集部分关键代码截图。
@Autowired
PdfDocServicepdfDocService;
@RequestMapping("/addDocs")
@ResponseBody
publicAjaxResaddDocsf){
AjaxResajaxRes=newAjaxResO;
List<PdfDoc>docs=newArrayList<~>();
try{
Documentdoc;
doc=Jsoup,connect("http://vwiw,sxsgj.com,cn/List,action?classfyid=65").get();
StringpagesNode=doc.select("div.pagediv"),get(0).childNode(2).toStringO;
String!]split=pagesNode.split(
String!]page=split[split,length-1]. "W):
intparselnt=Integer.parseInt(page[O].trim());
for(inti=0;i<parselnt;i++){
Documentfdoc=Js(xip.connec“^M"http:〃wwi.sxsgj.com.cn/List.action?classfyid=65&cu「rentPage="+i+"&turnHElementsnewsHeadlines=fdoc.select(.main_row");
for(Elementheadline:newsHeadlines)(
NodeaNode=headline.childNode(3);
Stringdate=headline.childNode(1).childNode(0).toStringO;
DocumentfileDoc=Jsoup.connect(aNode.absUrl(^^^^^B"href")).get();
ElementsfileElements=fileDoc.select(OHHB'pa");
StringfileUrl=
if(fileElements.size()>0){
fileUrl=fileElements.get(0).absUrl(^^^^^^B"href");
}
NodechildNode=aNode.childNode(O);
Stringstring=childNode.toStringj);
PdfDocpdfDoc=newPdfDoc(UuidUtil.get32UUID(),string.trim(),date,fileUrl);
docs.add(pdfDoc);
StringdocName=pdfDoc.getDocName();
List<PdfDoc>exist=pdfDocService.fIndByDocName(docName);
if(exist.size()==0||exist==null){
pdfDocService.insert(pdfDoc);
图3-4数据汇集部分关键代码
Fig3-4Keycodeinthedataaggregationsection
3.1.5.3数据管理
在水量调度业务集成服务系统的数据支撑中,大多是用数据库进行实现。根据数据类别不同进行数据区分和分类存储。其中数据库的库表结构根据SZY301-2013标准来设计实现,统一的库表结构设计,让数据库的互通性以及稳定性都有所提高,在完成了调度数据的获取之后,就可以依照标准来进行设计库表并将数据导入管理。表3-2为河道水情表表结构。
表3-3河道水情表表结构
Tab3-2Riverwatertabletablestructure
序号 名称 标识 类型及长度 是否允许空值 单位 主键序号
1 测站编码 STCD C(8) N 1
2 时间 TM DATETIME N 2
3 水位 Z N(7,3) m
4 流量 Q N(9,3) m3/s
5 断面过水面积 XSA N(9,3) m2
28
序号 名称 标识 类型及长度 是否允许空值 单位 主键序号
6 断面平均流速 XSAVV N(5,3) m/s
7 断面最大流速 XSMXV N(5,3) m/s
8 河水特征码 FLWCHRCD C(1)
9 水势 WPTN C(1)
10 测流方法 MSQMT C(1)
11 测积方法 MSAMT C(1)
12 测速方法 MSVMT C(1)
以上表为例,在完成了河道水情表的库表结构设计之后,即可以通过数据库的SQL语句来实现河道水情数据表的创建,下面为创建河道水情表的SQL语句代码
IFEXISTS(SELECT*FROMsys.slddjhskWHEREobject_id=OBJECT_ID(N'[dbo].[ST_PPTN_R]')ANDtypeIN('U'))
DROPTABLE[dbo].[ST_PPTN_R]
GO
CREATETABLE[dbo].[ST_PPTN_R](
[STCD]char(8)COLLATEChinese_PRC_CI_ASNOTNULL,
[TM]datetimeNOTNULL,
[DRP]numeric(5,1)NULL,
[INTV]numeric(5,2)NULL,
[PDR]numeric(5,2)NULL,
[DYP]numeric(5,1)NULL,
[WTH]char(1)COLLATEChinese_PRC_CI_ASNULL
)
GO
ALTERTABLE[dbo].[ST_PPTN_R]SET(LOCK_ESCALATION=TABLE)
GO
3.2系统后台关键技术
SpringBoot是系统后台开发的一个重要框架,它也是Spring系列框架的最新技术框架之一。它的特点在于使用该框架时,需要在指定的配置文件中先将项目需要的功能配置好。配置好之后,大大减少了开发过程中其他功能库、jar包的引入,同时它也是一种优化,让项目可以更快速的运行[56]。在本文的水量调度系统中,它既是系统前台和小程序公众号开发保障,也是存放调度业务具体实现项目的框架。
SpringMVC主要功能是在前后台交互以及数据模型的选择和传递展示。它也是Spring
29
框架的一员,其中MVC可以拆解看作三个负责的功能模块,M代表的是模型model,在本系统中主要是封装水文数据的一些模型I57】,而不是水量调度的业务模型。V则是view,即数据的呈现展示,本系统中view的表现主要是在小程序和公众号的微信平台上,C是控制器controller,即控制和影响调度系统的前后台交互、请求、响应操作的处理。
数据库技术:目前在数据库方面常用的有MySQL、Oracle、Sqlserrve,它们都是对数据进行存储的工具。因为水量调度系统涉及的数据量大和数据来源多,根据这些数据库的特性,MySQL作为基本信息数据库,存储不太变动更改的基础数据,例如:用水单位信息、行政区划信息、流域信息等。Oracle安全性相对来说更好一些【涸,存储能力也更强,则用来在调度系统中存储大量水文数据以及开源获取的数据。
MyBatis:该框架是SSM大框架中负责将持久化的框架。在调度系统中,大量的水文数据和基础数据相互是没有关联的,无法对其有效操作和利用。通过MyBatis可以在这些对象和数据关联起来,形成映射。相对于JDBC它是一个更简易的工具,在对水量调度系统的开发过程中,可以使得代码质量提高,从而让系统运行速率也更快更好。另外它含有插件可以让和调度数据相关的SQL语句动态生成I59】。
服务器:本系统采用本地服务部署和云服务器部署结合的方式。其实本地服务器部署用的是Tomaca,本地部署的有时就是可以将业务处理的效率提高,在本地即可实现Servlet容器【6°]。云服务器则是在阿里云中进行数据库、存储、网络、云安全、中间件技术、域名及网站等的部署,为本系统提供了大量服务和应用,服务器相关技术为该系统在微信平台上线使用提供路径,在本系统中是不可或缺的一部分。
如图3-5所示为本系统技术框架图,后台和前台用接口交互,各自负责自己的功能模块,后台又和数据库交互为本系统提供数据支撑和保障。
30
3.3微信平台与调度系统数据交互及接口设计
3.3.1微信平台和调度业务系统交互流程
本系统后台部分的实现了调度数据查询、水利工程信息查询、水情日报推送以及公众号服务等功能。以前的水文信息和系统数据已经为本系统提供了不少的数据来源,其中可以开源获取的数据,是在整个网络环境中获取的,水量调度业务集成的系统后台都是在本地网络中实现的。所以不仅是数据的交互,在网络和前后台的交互也需要用到接口,来满足基于微信平台的水量调度系统前台和后台的交互。微信平台与相关数据交互的流程设计如图3-6所示。
31
图3-6微信平台交互流程图
Fig3-6Flowchartofdatainteraction
接口方面在水量调度系统中放在了系统后台中,采用WEBService服务器集成水量调度业务接口,一部分接口是用于微信平台和调度系统服务器的交互,还有一部分是用于获取到的开源水文数据,在系统服务器和Web服务器交互的接口。两者数据可能因为安全和隐私的考虑采用不同类型的接口设计来保证服务器和数据交互的顺利进行。
3.3.2渭河水量调度业务集成系统接口设计
根据业务系统交互流程,微信平台下的交互在微信小程序及公众号的开发中就能完成,而系统服务器和微信平台的交互,是不对外开放的,这样可以保证系统的安全性。在系统服务器和Web获取数据的接口方面,设计为开放式,让能从网络上获取爬虫到的数据都应用于调度系统中,但又不能影响和干扰到系统服务器的接口,这样设计也非常利用系统维护,保证系统前后台的交互,下面为调度业务服务系统在开发工具中使用接口的小程序代码。
letajaxTimes=0;
exportconstrequest=params=>(
ajaxTimes++;
returnnewPromise((resolve,reject)=>(
letheader=(
...params.header
}
wx.showLoading((
title:”加载中”,
mask:true,
});
constbaseUrl="http://202.200.112.175:8080/";
wx.request((
...params,
32
header,
url:baseUrl+params.url,success:(result)=>(resolve(result);
},
fail:(err)=>(
reject(err);
},
complete:()=>(
ajaxTimes--;
if(ajaxTimes===0)(
wx.hideLoading();
}
}
})
})
}
3.4渭河水量调度业务信息服务
3.4.1调度业务信息服务流程
在调度业务集成服务系统中,信息服务流程即和微信和后台交互流程类似。将其可以分为定制信息推送和数据的交互。其具体流程图如图3-7所示。首先是小程序的客户端或者公众号发送请求的数据,在云服务器中接收到请求,想再向系统本地服务器中数据库查询从前台中请求的调度业务相关数据,前台的客户端接收到的数据形式最终是JSON格式。定制调度信息推送,是结合微信服务器,调度业务人员在系统中定制和自己具体业务相关的数据,微信服务器和云服务器交互,再请求到系统服务器,同样的从数据库中拿到数据后以JSON包格式返回给调度系统的客户端,方便工作人员直接获取到自己实际需要的数据信息,而不是再进入系统中查找,定制信息服务也可以更改,让水量调度业务人员数据获取更加灵活。
33
图3-7消息推送和数据交互流程图
Fig3-7Flowchartofmessagepushanddatainteraction
3.4.2调度业务信息查询及推送系统的实现
调度业务系统的后台编写主要是用java,在调度业务系统的后台中Java也是实现后端的API的开发语言,所用到的后端的框架为Springboot,结合Mybatis和Spring即构成了整个调度系统的框架SSM。首先我们需要在开发工具中创建一个maven项目,将项目所需要的依赖导入。下面是导入pom依赖的部分代码:
34
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns:xsi=,,http://www.w3.org/2001/XMLSchema-instancehttp://www.springmodules.org/schema/cache/sprir
<display-name>SpringMVC</display-name>
<<—统_版本控制—>
<parent>
<grouplci>org.springframework.boot</groupld>
ortifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE*:/version>
</parent>
〈dependencies、
</--于「ee—ker渲染页面一>
<!―https://mvnfeposattjfg.com/ar十act/or*g.sjofingfrcrmework.boot/sjoring-buot-sfeemarker1—>〈dependency〉
<grouplcf>org.springframework.boot</groupld>
<artifactld>spring-boot-starter-freemarker</artifactld>
</dependency>
<!--springboot核心-->
〈dependency〉
<groupld>opg.springframework.boot</groupld>
cartifactld>spring-boot-starter-web</artifactld>
〈/dependency〉
<!--springboot^^-jsp
<!—tomcat的支持.—>
<dependency>_
<groupld>org.springframework.boot</groupld>
<artifactld>spring-boot-starter-web</artifactld>
〈exclusions〉—
〈exclusion)
<groupld>org.springframework.boot</gr'oupld>
<artifactId>spring-boot-starter-tomcat</artifactId>
图3-8pom依赖代码
Fig3-8pomdependencycode
配置相关的文件存放位置为src/main/resources,在这个文件下是项目配置的相关文件,其中需要我们创建application.properties文件,用来让配置参数和调度系统的参数适应匹配。
#jsp支持
spring・mvc・view・suff:ix=.jsp
spring.mvc・view・preTix=/WEB-INF/jsp/
#thisissetport
Userver.port=80
server.port=443
#添加与,1证书
#ssli£书文件名
server.sst.key-store=classpath:xxxxxxx.pfxstiver.ssl.key-store-password=xxxxxxxxserver・ssl・keyStoreType=xxxxxxxx
图3-9application配置参数
Fig3-9Applicationconfigurationparameters
在实际项目中涉及数据库,要整合mybatis,此处仅展示测试的数据入库测试程序,在调度系统的后台中先创建一个入库的程序,编译文件代码如下图所示,文件名后缀为.class的文件就是经过Java编译后的程序文件。在启动项目程序,只需要在界面中找到绿色Run三角按钮,点击之后就可以测试该程序是否和调度集成系统的前台交互成功。其中首先创建springboot的入库程序:app.class代码如下,启动项目时直接右击run即可。控制编译的代码如下图:
35
puDLicstaticvoiqnia±n(.itringLJargsjt
SpringApplication.run(App.class,args);
(SRestControLler
{BSpringBootApplication
publicclassControtlerText』
^RequestMapping("getUser")
publicMap<String,Object>getUser(){
System.out.printin(程序正在週用。。。");
Map<String,Object?map=newHashMap<String,Object〉。;List<String>List=newArrayList<String>();
list.add("zhangsan");
list.add("lisi");
list.add("wanger");
list.add("mazi");
map.put("list",list);
System.out.printin(程序调用完成");
returnmap;
{SRequestMappingCgetWord")
publicMap<String,Object>getText(Stringword)!
Map<String,Object?map=newHashMap<String,Object>();
Stringmessage="该功能尚未开放";if("基础信&".equals(word)){message="该系统为猾河水量调度业务集成微信小程序";
}elseif("微信小程序”.equals(word)){
message="想获取更多微信小程序相关知识,请更多的阅读微信官方文档,还有其他更多微信开发相关的内容。";
}elseif("实时水情信息".equals(word)Hmessage="库水位:765.08m蓄水量:3657万m3降水豪0.2mmA库:9.3m3/s岀库:7.4m3/s城市供水:5.45m3/s西安:3.00
图3-10小程序连接测试代码
Fig3-10Appletconnectiontestcode
测试之后,若调度业务集成系统后台和前台交互顺利,即说明前后台分离搭建完成。在后台中我们可以用两个注解,它就是所用到的SpringBoot框架中的@RestController与^Controller,对比其他的框架,之所以在调度业务集成系统的后台中用这种方式,是因为它不仅使用起来便捷有效,也是刚好契合了微信小程序前台需要返回的数据是要以Json的型式。
3.5渭河水量调度方案研究
根据文献和现有的调度资料,在水量调度方向现在基本都是编制调度方案这一规划的方式来做水量调度的工作。渭河水量调度业务集成的系统后台,也将主要对调度方案相关的业务方面如:如何编制调度方案、调度方案如何选取、调度方案推荐以及调度方案的展示来设计和分析。本文中调度业务集成系统的后台采用基本的调度模式进行分析实现。
3.5.1渭河调度基本原则
渭河水量调度的基本原则根据水量调度方案编制使用的方法,略有不同,一般情况下的调度原则基本都要满足:渭河不能断流是前提,在此基础上,让居民日常的生活用水、农业、工业的用水得到保证。在调度总量上把握,各个断面的流量进行分控,各级部门责任划分也要明确,实行统一的调度I62】。根据调度日期的划分,可将水量调度划分为汛期调度和枯水期调度,7月开始到10底为防洪防汛调度,11月到来年6月为来水较少的枯水期调度,这两个调度需要结合年尺度、月尺度以及实时水量调度方案一起来进行。
在水量调度方案编制现行法中,水量调度原则为:根据国家和各调度部门的指示文件,
36
从中获得各地区用水单位的用水比例和下一年预报来水的供水量,按照全年水量调度总量不变来确定配比,月分水配水可以根据月需水和月分配指标在可调范围内进行水量调度。具体原则要求为:
(1) 保证渭河安全相关的基本流量
(2) 各级部门及各行政区、工程、灌区的基本用水要得到保障
(3) 生态环境用水不能低于最低要求
(4) 考虑到应急调度的水污染问题,多考虑各个水库的调蓄能力
(5) 考虑水电方面的调节,保证水库安全和稳定运转
(6) 丰增枯减网
水量调度方案编制中还有适度优化法,其优化的调度原则为:渭河水量调度因为流域面积大,调度面积广,调度问题复杂,所以根据不同调度情况,优化调度目标也可以不同。基本上以农业需水调度为重,在其他调度情况,可以适当考虑以其他目标为主的水量调度。总体目标是在保证用水和生态的前提下,实现社会和经济效益最大化。
(1) 根据具体区域的来水和降水情况,对该地方的用水计划和需水进行调整,让水量调度将水资源分配的更符合实际情况。
(2) 在考虑各分级和段面的情况,结合水库的调蓄能力,对渭河整体调度
(3) 优化水量调度要保证其他各级部门的用水基本情况,在不影响基本需水的前提下进行优化配比。
(4) 考虑在水量调度方案中加入促进节水的条例,保证基本用水的情况下,提高用水率。
3.5.2渭河水量调度基本方式
根据陕西省需要上报的渭河水量调度的规划对象,经由渭河水量调度工作人员进行适当调整,并上报黄河委,经审核后,并出具渭河调水指标,渭河调度人员根据水量指标、来水预测和实际情况,编制渭河流域年尺度的水量调度计划方案。月尺度调度计划则是根据年调度计划中的具体月份用水情况和用水计划,结合用水量预测、用水的情况即中短期的来水预报和来水情况,结合需要做月旬水量调度方案的市区或者灌区、取水工程等的月度用水计划,以年调度计划为边界条件,再去修正和约束月调度方案。最后实际的用水和调度方案中中的对比,将渭河水量调度方案确定。整个水量调度方案的流程如图3-11所示,具体流程为:
37
图3-11陕西省渭河水量调度工作流程
Fig3-11waterdispatchingworkprocessonWeiheRiverinShaanxiprovince
调度流程主要为以下步骤:
(1) 各个水量调度相关的部门和单位先在调度实行之前上报其用水计划
(2) 进行水量调度的管理单位根据上报的数据和预报信息来判断其合理性,并各个调度部门的用水计划统计和修改,要对不合理的用水计划进行适当缩减,最终保证各控制断面流量在合理范围内I64】;
(3) 水量调度把修整后的符合要求的用水计划上报黄河委员会,再由黄委下发水量指标。
(4) 水量调度的管理单位再根据黄委的水量指标作为约束,结合用水计划再去调整修正。
(5) 最后在保证调度方案的合理和准确性下,生成调度方案并下行发给各水量调度施行单位。如图3-12、图3-13所示分别为年和月尺度的编制流程,编制及计算流程都在上述流程的基础上进行,月尺度的水量调度指标需要结合年的水量调度指标。
38
图3-12年水量调度控制指标计算流程
Fig3-12Annualwaterdispatchingcontrolindexcalculationprocess图3-13月水量调度控制指标计算流程
Fig3-13Monthlywaterschedulingcontrolindexcalculationprocess
旬尺度的水量调度方案编制往往是涉及到应急调度如:汛期防洪调度、干旱应急调度
39以及水污染应急调度等,它需要考虑到最近的上旬用水计划和实际用水量,再根据上报的数据和来水的预测,约束条件同月尺度的水量调度方案,根据这些信息和水平衡分析来制定出旬的水量调度方案。
图3-14旬水量调度方案计算流程
Fig3-14Tenwaterregulationschemecalculationprocess
本文是在渭河水量调度的现行管理办法和条例基础上,在系统的后台实现水量调度基本方式中水量调度方案编制,因为系统和水量调度工作人员的实际调度方案编制业务相结合,从工作实际需求出发,后续如果指标、方式、依据改变的话,那么系统也可以相应调整,来保证水量调度工作人员使用系统进行水量调度方案编制的顺利进行。
3.6本章小结
本章中对渭河水量调度业务集成系统的后台方面进行研究分析,例如水量调度的数据支撑,详细说明了调度业务的数据如何收集、管理、存储及安全保障,介绍了系统后台的开发关键技术,基于渭河水量调度的信息服务和水量调度的基本方式实现了和前台数据的交互及水量调度方案系统的编制。
40
4基于微信平台的渭河水量调度业务集成系统开发应用
4.1开发环境和开发工具
4.1.1开发工具简介
系统开发环硬件环境方面,项目支撑的本地服务器作为系统服务器,进行开发模拟。阿里云作为云服务器,进行水量调度的资料和数据的存储和下载,另外在对系统测试和使用则还必须有一台电脑和手机。系统开发软件环境和工具方面,前台开发软件采用微信开发工具及公众号编辑工具,后台开发软件用到IntelliJIDEA2020.1x64、Tomcat8、MySql。开发工具汇总如所表4-1示
表4-1开发工具环境表
Tab4-1Developmenttoolenvironmenttable
前台开发工具 后台开发工具 运行环境
微信开发工具 IntelliJIDEA2020.1 Jdk版本1.8
公众号编辑工具 Tomcat 8.0
MySql 5.5
4.1.2开发环境配置
开发工具及环境配置过程如下:先介绍系统开发工具的下载和安装过程,IDEA可以在IDEA的官方下载地址中下载,其中有两个版本选择,我们系统选择商业版本,社会版对比商业版会少一些功能模块。
图4-1Idea官网下载
Fig4-1Ideaofficialwebsitedownload
IDEA的安装:下载后的文件进行双击,根据提示点击NEXT,来选择软件安装的位置以及自己电脑系统的位数等相关操作,这里的话找到和自己开发系统电脑一样的选项即可,;在选择中还有是要关联一些文件和使用的文件库,选择默认选项就好。
41<BackI Next>—JJCancel
图4-2Idea安装环境选择
Fig4-2Ideainstallationenvironmentselection
其余的选项菜单,选择安装提示的默认选项就行,选择完后进行安装,等待片刻后安装就完成了。安装完成后,需要进行注册激活,这里有三种方式,一个是账户密码方式,一个是购买的激活码进行激活,还有一种是使用服务器激活,来这里选用第三种方式激活。激活之后,该服务器的电脑下都可以使用IDEA来进行开发
图4-3Idea激活方式选择
Fig4-3Ideaactivationmethodselection
随后开始Idea环境基本配置,不过在不同的开发软件中有所不同。在IDEA开发工具中找到文件-项目选项(file-projectstructure),选中并点击SDKs项,从旁边的加号中来配置JDK,找到开发主机的JDK安装位置,确定后IDEA的JDK配置完成。具体流程如所示。
42本地服务器Tomcat的配置:在开发工具中找到RUN中的EditConfigurations再从其中的加号中点击TomcatServer本地,在服务器配置下而的项目中,找到Applicationserver,点击之后在本地中找到Tomcat文件的所在位置,随后确定,IntelliJIDEA中的Tomcat配
置就完成了,其配置流程如图所示。,jeforelMmn:&Wd,AdvwbMlwIndor
+-7*•
\Build
□Swwttiispage団Activnewoiwindow
。{mcAppAcatiaoSewernotspscifed
I<*ICawdto*
图4-5Idea中Tomcat配置
Fig4-5TomcatconfigurationinIdea
配置完系统后台的IDEA开发工具相关内容之后,再进行水量调度前台所用到的微信开发工具配置,前往微信开放工具官网进行下载,注意要下载系统对应的开发版本微信开发工具相关网页和安装过程都是中文版,根据提示进行下载安装操作即可,安装过程较为简单,选择安装在硬盘的位置后根据提示安装完成即可。图4-6微信开发工具安装
Fig4-6WeChatdevelopmenttoolinstallation
进入开发工具后需要扫描二维码注册APPID就可以使用了,下面进行APPID的申请注册配置介绍。AppID代表小程序的ID号,必须拥有微信小程序账号才能申请这个ID号。如果没有AppID,小程序就不能在真机上演示(即不能发布到线上给用户使用),只能在微信开发者工具里模拟运行。但是如果你只是想要学习小程序的开发,没有AppID也是可以的,可以通过开发者工具提供的模拟器运行来运行测试小程序,小程序也是有账号的,在进行水量调度的小程序开发前进入官方的账号申请网址中进行水量调度小程序账号的申请,网址为:https://mp.weixin.qq.com/wxopen/waregiste根据页面提示的要求,填入相应的信息。点击注册之后,腾讯官方会发送到你的邮箱一个激活邮件,进入自己的邮箱打开邮件点击其中的激活链接进行激活点击链接后,会跳到信息认证界面,在主体类型
44
中选择个人,然后在页面中填好你个人的相关信息。
能申
’你已阅读并同意《微信公众平台服务协议>及《微信,」卷序平台服务朝》
asa
图4-7微信小程序APPID注册
Fig4-7WeChatAPPIDregistration
填好信息,并用微信扫描确认后,就完成了信息认证了。点击前往小程序,在等待网页变为小程序开发管理页面后,在其中开发设置就能看到该系统对应的小程序的“身份证”
图4-8微信小程序APPID查看
Fig4-8WeChatAPPIDview
至此系统的环境配置和开发工具配置就完成,开发准备工作完成,下文将介绍调度业务在各个工具已经集成实现的部分功能及应用。
4.2微信小程序
根据本文中第二章节内容,微信小程序在调度业务集成系统中主要负责前台中的数据信息展示和数据交互任务。水量调度业务集成小程序已经开发完成,下面详细介绍实现功能及具体应用。
4.2.1小程序安装使用
渭河水量调度系统前台基于微信小程序平台设计开发,即移动端安装微信即可使用。
45
4.2.2登录模块
小程序的登录实现。小程序在微信平台中搜索或者直接用微信扫描渭河水量调度微信小程序的二维码,即可进入小程序的渭河水量调度业务集成移动服务平台的登陆界面,相关业务部门会有对应的账号及密码,输入就能进入业务处理部分,如果密码或者账户输入错误系统会给予提示。
该界面上方分别为市区、年月、日期、灌区等条件筛选器,用户可通过筛选器查询指定的用水计划信息。点击选择需要查看的信息,表格蓝色部分也可手动滑动查看前后日期的统计信息。
2019.12
4.2.5调度计划模块
通过界面下方点击调度计划即可进入调度计划系统,流域筛选说明与用水计划模块相同,经过流域筛选后可查看不同流域的用水统计信息
主要将用水计划信息划分为年和月尺度,用户可点击想查看的市区、灌区、饮水工程、水电站等用水信息表。
该界面上方分别为市区、年月、日期、灌区等条件筛选器,用户可通过筛选器查询指定的调度计划信息,表格蓝色部分也可手动滑动查看前后日期的调度计划信息。
4.2.6调度方案模块
界面下方点击调度方案即可进入调度方案模块,经过流域筛选后可查看调度方案。
调度方案
用户可以根据需求点击查看想要查看的调度方案,最终会用手机相应的软件打开用户选择查看的文件。
图4-23调度方案下载查看
Fig4-23SchedulingPlanDownloadView
4.3微信公众号
微信公众号主要负责了调度信息推送的业务,在使用小程序后会自动关联渭河水量调度业务集成的公众号,或者也可以单独搜索来进入公众号。在公众号下方三个菜单分别为:今日推送、基础信息、防汛抗旱三个功能模块,今日推送主要针对业务人员日常工作中的重要调度信息或者其定制的相关调度业务信息实施每日的推送,基础信息模块,包括水利工程基础信息、水文基础信息、水利历史等等系列基础信息的查询,防汛抗旱是在应急调度或者特殊的防汛抗旱应急时期也可以查询相应的信息数据和条例办法等。
4.4调度方案编制子系统
调度方案编制子系统是系统后台的重要部分,在已有的调度数据和通过数据收集技术获取到的数据的基础上,使用IDEA软件结合水量调度的理论和模型,并根据水量调度的相关指标和依据做约束条件开发实现调度方案编制的子系统,最后在服务器上将子系统部署。因为整个渭河水量调度业务集成服务系统的查询展示放在了系统前台,在调度方案编制的子系统中也可以查看系统前台中相关展示的信息,例如渭河实时水雨情、河道水情、降雨信息等,而该子系统放在整个业务集成服务系统的后台也是因为前后端分离的设计理念,让其在系统后台中可以发挥的调度方案的编写生成作用,其中也包括调度方案计算的任务。
4.4.1年水量调度方案编制功能
系统根据渭河水量调度基本模式,水量平衡方程以及汇总过来的边界条件、用水计划、来水情况等数据,在黄委的渭河年总水量指标的基础上,利用IDEA开发工具和JAVA进行调度方案的编制功能的开发实现,年水量调度方案的编制是对渭河流域的11月到来年6月这一尺度的非汛期的水量调度方案编制。其系统的编制流程如图4-25所示。
54来水情况
实际用水
计划用水
生成调度方案报告
图4-25系统年水量调度计划编制流程
Fig4-25Annualwaterdispatchingplanningprocessinsystem
系统通过汇集了水文监测站点的实时数据以及从各个网站可以获取的相关水文数据,也包括调度工作人员及群众的上报信息,最后经过数据过滤解析,将其汇总为实际用水信息和降雨及预报信息三个部分共同组成了来水信息。
用水量的模块和系统前台实现中的相关划分基本相同,有各个行政区的实际用水、计划用水,不仅含有工程的计划用水,也有取水口的计划用水统计,计划用水顾名思义,从个调度部门上报的用水计划和实际用水相结合考虑,既要保证实际用水的需要,也要避免上报计划中需水过大难以平衡调度。如图4-26所示为调度方案编制实现的系统后台开发界面。图4-26调度方案编制系统开发界面
Fig4-26Schedulingprogrammingsystemdevelopmentinterface
该水量调度方案编制的模块是以渭河水量调度基本方式进行水量调度,先将取水指标作为约束条件,取水指标是由渭河水量调度的上级部门黄河委员会下发。再根据水量平衡和用水、来水的数据,渭河水量调度方案编制模块就可以在系统的后台集成实现。年调度方案系统应用结果见图4-27。
图4-27年调度方案
Fig4-27Annualwaterdispatchingscheme
4.4.2月水量调度方案编制功能
月旬尺度的水量调度方案编制是在年水量调度方案的基础上,理论和数据的支撑也相同,月旬尺度的调度方案编制会去结合年水量调度方案来动态修正月水量调度方案,月旬尺度的水量调度方案编制流程如图4-28所示。
56生成调度方案报告
图4-28月调度水量方案编制流程
Fig4-28Monthlywaterdispatchingplanningprocessinsystem
在系统后台的月水量调度方案实现中,基本功能划分也和年水量调度方案实现相同,从来水信息、用水信息以及相关指标这些数据来组成月调度方案编制的实现基石,再通过技术编程实现其架构,最后完成月旬尺度的水量调度方案这一功能模块的开发搭建。月旬调度模块系统截图如图4-32所示。
在本章中采用计算机技术、移动应用开发技术、数据可视化技术在微信平台上,将水量调度业务进行集成实现,并在后台系统中用JAVA语言开发了水量调度方案编制功能子系统,详细介绍各个功能模块的作用及实现过程。
58
5结论与展望
5.1结论
水资源的供需矛盾以及水资源的管理和调度问题,已经对我国的经济、生态发展产生了巨大影响。为了解决这些问题,将水资源合理调度是一个重要有效的措施,并且随着信息技术的发展,移动应用的发展,对渭河水量调度现状,以微信平台为支撑,构建了渭河水量调度业务集成服务系统。论文主要研究成果结论如下:
(1) 渭河水量调度业务集成系统前台构建,针对渭河水量调度的需求及日常调度业务,将信息化和移动应用放在微信平台引入到渭河水量调度中,基于微信平台构建了水量调度业务集成系统的前台,让微信移动应用和渭河水量调度业务结合起来。
(2) 渭河水量调度业务集成系统后台构建,渭河水量调度业务集成系统后台中,对数据的来源、获取方式、管理研究,融合吸收其他水文信息数据,并用一个数据汇集实例说明系统后台如何进行数据收集、管理、应用。实现了水量调度业务集成系统中的后台和前台的交互及接口还实现了前台的信息服务功能应用,并基于渭河水量调度的基本方式,实现了调度方案编制功能在后台系统中说明水量调度方案如何定制的问题。
(3) 基于微信平台的渭河水量调度业务集成系统开发应用。采用信息化技术及软件开发技术,将已设计和分析好的调度业务功能模块在微信平台和服务器上实现并集成应用。该系统也为渭河水量调度提供了一条移动应用的新途径,让水量调度可以更加及时、便携的进行。
5.2展望
论文研究设计水资源、计算机技术、移动应用开发技术等方面,研究了渭河水量调度已有的模式下的业务集成服务系统,但水量调度本身业务复杂,涉及方方面面,影响因素也种多,技术实现和数据交互较为复杂。由于本人水平和精力限制,研究不够全面,后续对水量调度的应用系统还需进一步开展研究,不断完善水利业务系统服务,使其不仅能够适用于水量调度工作人员,也让微信平台上做业务集成这种水利信息化的模式可以应用到其他水利工作方面。
62参考文献
[1]杨成立,刘志强.浅谈我国水资源状况及保护对策[J].山西建筑,2003,29(10):85-86.
[2]我国与世界的水资源现状[J].纺织导报,2008(08):111.
[3]韩俊.推进中国特色新型农业现代化若干问题[J].当代农村财经,2014(09):6-11.
[4]梁兴.不容忽视的高校环保教育一水资源危机引发的思考[J].河北旅游职业学院学报,2011,16(01):89-90.
[5]兰岸平.加快农村水利设施建设刻不容缓一以湖南省株洲市为例[J].经济研究导刊,2011(36):43-146.
[6]陈开琦.我国水资源安全法律对策研究[J].中共四川省委省级机关党校学报,2012(05):5-14.
[7]李东,张学成,高亚军,可素娟.渭河支流水量调度方案可行性探讨[J].人民黄河,2009,31(2):41-44.
[8]李海辰,雷晓辉,李晓春,等.WROOM模型及其在渭河流域水量调度中的应用[J].南水北调与水利科技,2014,12(2):14-18.
[9]李晓春.陕西省渭河水量调度的实践与探索[J].陕西水利,2009(05):23-25.
[10]蔡阳.浅议信息化是水利现代化的基础[J].中国水利,2001(04):53-54.
[11]查治荣.基于移动互联的水文信息服务研究[J].水资源开发与管理,2019(11):76-78.