基于B/S架构的厦门市自动站网平台

2016-07-26 06:56
中文信息 2016年3期
关键词:等值线气象自动

(厦门市气象局,福建 厦门 361000)

一、引言

随着GIS技术的广泛应用,厦门气象业务现代化建设日益加快,常规加密自动站不断增加,气象要素自动观测观测量的增加。更高精度的实时观测数据在天气预报,气象服务,气象决策,气象科研工作中发挥着越来越重要的作用。

目前,厦门市局自动站综合显示平台采用基于桌面的客户端/服务器(C/S)方式,即需要在客户端机器上安装发布应用程序。虽然具有较强的图形显示能力和程序运行速度快等特性,但其程序部署成本高,更新不及时,在很大程度上制约了更多领域用户对数据的使用。B/S模式无需安装应用文件,只要有Web浏览器即可,部署发布成本低,维护简单,适用范围广,在互联网普及的今天更易得到推广。但在可操作性、人机交互能力方面却有所下降。为了提升系统性能和用户体验,一种被称为富互联网应用程序(Rich Internet Applications,简称RIA)的具有高度互动性和丰富用户体验的网络应用模式应运而生。

Flex是一个开源的软件开发工具包(框架),用于构建和部署基于Adobe Flash的跨平台富互联网应用程序,把该技术尝试性地应用到天气预报程序上。本文使用Flex Builder技术开发了基于Flash插件的WebGIS的省级地面自动气象站信息服务平台。不仅能满足预报员的基本业务服务需求,同时也成为面向公众的气象信息展示平台,在国内气象部门具有较大的应用价值。

二、技术方案选型

进入21世纪后,随着java技术和虚拟机技术的大力发展,微软提出了.NET技术平台,这两大平台逐渐成为了企业化开发的首要选择目标。对于纯Web方式的系统,PHP等语言也占有较大的市场。与此同时,Borland旗下的Delphi语言逐步没落,已经基本淡出企业开发市场。而针对企业信息流及OA系统的开发,IBM公司的Lotus平台也占有一席之地本文设计的系统,采用5层系统的逻辑结构,对于Java,考虑到目前系统的稳定性需求,拟设计结构如图1所示:

图1 采用Java设计的五层逻辑结构

Web框架中,Struts这一基于请求的MVC框架仍然占据着主流地位,其使用的人数也不少,具有较为广泛的使用基础。虽然后来居上的JSF也不容小视。目前来说,采用Structs还是比较不错的方案。而用户界面层,采用Applet作为前台显示,也是可行的选择。

应用程序框架方面,Spring明显呈现一边倒的优势,其高达83%的比例表明,JavaEE社区不仅仅需要轻量级应用程序框架,还需要证明框架在实际开发项目中,确实起了应用有的实践作用。而目前,重型的EJB基本上处于停滞下滑状态,其所占比例都是遗留项目的维护需要。

数据访问层,Hibernate毫无疑问仍然是主角,与传统的JDBC平起平坐。

三、系统的技术流程

图2 系统技术流程图

各个自动气象站每10分钟将观察的气象数据以短信的方式通过移动GPRS通信线路直接发到省数据中心,省数据中心收到数据后把数据存到以“年年年年月月日日时时分分”格式命名的文本文件中,这就是自动气象站原始数据。接着省数据中心用专门的程序读取自动气象站的文本型数据文件中的数据,根据既定的规程对数据进行切割、加工、计算等,得到特定意义的数据并存储到相应数据表中,这就是自动气象站的数据库型数据。数据库型数据就是自动站业务平台直接要用到的数据。市级数据中心通过专用VPN网络用T-SQL直接从省数据中心的数据库下载数据到市数据库,用户通过C/S和B/S台获取相关数据信息,系统流程设计如图2所示。

四、功能需求分析

1.从公众角度分析

虽然社会公众每天都跟气象相关密切接触,但是他们对气象的理解最多的可能就是温度、降雨、风、干旱,其它的气象要素或状态对他们来说是不懂得或无关紧要的,他们只想知道现在的气温是多少,下了多少雨,风大吗,过一阵子天气又会怎么样等切身感受的问题答案。因此在设计系统的公众平台B/S端时,要充分考虑社会公众对气象的认知程度和实际需求,把气温、降雨量、风向风速用最直观地在地图上标出来,界面要简洁明了,操作简单(图3所示)。

图3 公众平台的功能需求

2.从系统管理维护者角度分析

系统的设计开发工作完成后,系统的安装部署和维护等工作都将由系统维护管理员来完成,如果系统在设计构建过程中考虑不周全,系统的安装部署和维护等工作将会遭遇很多的麻烦,甚至会影响整个系统的部署运行,达不到系统的设计目的。

图4 系统维护员需求

3.从预报员和决策者角度分析

作为预报业务员或气象决策者,虽然他们对气象的认知程度很高,但是他们要关注的气象要素也很多,整天神经都崩得紧紧的,怕忘记参考什么资料而使得预报做得不准,除了要关注实时温度、降水、风等,还要关注查询历史数据,然后要整合数据计算下一步温度、降水、风的变化,最后才得出预报决策结论。因此在设计系统的公众平台C/S端时,首先要考虑呈现的气象数据的完整、齐全、直观。其次要考虑数据的呈现速度。最后要考虑界面要简洁、方便、功能要多。

图5 预报员和决策员平台的功能需求

4.系统运行环境要求

数据中心运行环境:硬件是数据服务器1台。操作系统软件是Windows server2003,数据库系统软件为是MS SQL Server。Web服务器运行环境:硬件是一台计算机和有电信运营商固定IP的路由器,软件是Windows server2003和IIS+ASP.NET。B/S端运行环境:任何能运行支持Javascript的web浏览器的电脑终端。

五、B/S平台的设计

B/S平台主要是针对广大社会民众而设计的基于浏览器的网页程序,设计时充分从民众的角度考虑,其包含的主要内容有自动站气象信息GIS地图、等值线地图、数据曲线、数据分类列表,数据输出等。其功能模块设计如图所示

图6 B/S平台功能模块设计

1.用户登录模块的设计

用户登录模块是平台的入口,所以用户要进入平台就必须要通过登录模块允许,它的主要功能有:用户校验、权限选择和登录预设。如图7所示。

(1)用户校验:验证用户的用户名和密码,如果验证正确就自动进入权限选择和登录预设,然后进入系统;如果验证错误就给出提示。

(2)权限选择:每个(类)用户都有不同的权限,这是预先定好的,用户进入系统后只能看到权限内的内容。

(3)登录预设:是否保存用户名和密码以便下次登录时自动填入输入框,是否自动登录等设置。

图7 用户登录模块图

2.GIS地图叠加模块的设计

GIS地图叠加模块就是把气象要素数据定位并显示到地图上,它的主要功能有数据查询(包括气温、雨量、风向风力)、预警设置、坐标计算、定位叠加。如图8所示。

图8 GIS地图叠加模块图

3.等值线模块的设计

等值线模块就是用气象要素数据在地图上绘出等值线,它的主要功能有数据查询(包括气温、雨量、风向风力)、坐标计算、定位叠加。如图9所示。

(1)数据查询:用户可以选择输入查询数据的条件,查询满足条件的气象要素数据,查询成功返回数据,不成功就返回失败的信息。

(2)等值线生成:根据查询得到的数据用Surfer软件生成等值线。

(3)坐标计算:计算站点在地图上的坐标。预警设置:通过设置阀值,显示异常数据。

(4)定位叠加:把(1)中数据定位叠加到等值线图上。

图9 等值线模块图

4.输出模块的设计

输出录模块是把视图界面或数据输出到系统平台以外的系统(如打印机、文件等),它的主要功能有:B/S端的打印导出。如图10所示。

(1)B/S端的打印:网页的打印。。

(2)数据导出:把数据导出到特定格式的文件上。

六、数据库设计

数据库设计是指根据实际情况的需求,选用一套适合的数据库管理系统,设计和建立数据库的结构和数据库的过程。数据库设计包括建立数据库建立、数据库系统应用还有数据库开发应用等技术,是现代信息系统开发应用的核心技术。

1.数据中心的自动站资料库设计

自动站资料库是以各自动站为基本单元,以站点代码为关联存储各站的实时信息的数据库。表结构设计主要有定时观测要素表:tabTime-Data、实时观察要素表:tabRealTimeData、台站信息表:tabStationParameter

表1 定时观测要素表

表1 实时观测要素表

2.用户界面设计

B/S端界面的设计原则是简洁美观、易懂易用好操作、网页层次尽量少。整个B/S端平台只用了一个页面窗体,根据大多数人的使用习惯,采用T型结构从左到右来布局平台界面,用iFrame控件来完成T型布局。

图10 用户界面设计图

七、系统实现

B/S业务网页平台视图主要是用JSP、HTML元素和CSS样式来实现,其关键的页面登陆效果如下:

图11 自动站展示平台图

B/S业务网页平台视图展示的常规统计分析如图所示:

图12 统计显示图

八、结语

本文的基本目标是建立气象自动站系统,论文通过分析研究国内外自动气象站系统的现状和平台软件的特点以及厦门市在用业务平台存在的不足,阐明了开发本业务平台的必要性;通过对社会大众和气象业务员及决策人员的需求进行分析研究,确定了自动气象站数据业务平台各个功能模块,采用B/S双模式进行构建的方案;通过分析各个功能模块和开发模式所需的技术,确定了开发平台的技术方案;对系统业务平台进行用例测试。实现了基于MVC技术的气象数据采集和传输并在中心站查看气象信息,本系统的设计具有一定的实际应用价值。

猜你喜欢
等值线气象自动
气象树
《内蒙古气象》征稿简则
基于规则预计格网的开采沉陷等值线生成算法*
自动捕盗机
基于STM32的自动喂养机控制系统
大国气象
美丽的气象奇观
等值线“惯性”变化规律的提出及应用
基于Kriging插值的等值线生成算法研究
Stefan Greiner:我们为什么需要自动驾驶?