气象资料服务有在线服务和离线服务两种形式,在线服务是主要手段,通过气象资料服务系统实现[1]。随着气象事业和气象业务系统的飞速发展,对在线数据支撑的要求也越来越高,包括对资料本身的要求和对服务功能的要求。
气象部门气象资料服务系统的建设和业务运行开始较早,其发展历程大致分为4个阶段[1-5]:20世纪80年代初开始的单机文件检索阶段,90年代中期开始的接口调用阶段,90年代末开始的数据库系统阶段,21世纪初开始的分布式数据服务阶段。当前,业务运行的国家级资料服务系统主要包括国家级气象资料存储检索系统 (MDSS)[4-6]和气象科学数据共享系统[4],前者主要服务于国家级气象业务和科研,后者主要针对行业用户和公众用户。
MDSS基本满足了国家级气象业务、科研工作对气象资料的使用[6], 但该系统对所有用户提供的服务相同,包括提供的资料和服务手段,这与不同业务系统对资料的个性化需求的矛盾逐渐凸显,从而影响气象业务系统的运行和发展。因此,气象资料服务系统需要在满足用户普遍需求的同时,开始发展专题数据服务。本文在分析气候监测业务资料需求特点的基础上,重点介绍了气候监测业务专题数据服务系统的设计思路和实现技术。该系统提出和实现了以专题数据支撑库为基础,以资料更新发现、专题数据集制作、数据服务和任务调度4个模块为核心的系统结构,总结出了具有典型参考和推广价值的专题数据集制作方法、任务调度策略以及SSH (Struts Spring Hibernate) 框架[7]结合DWR (Direct Web Remoting)[8]和配置管理技术的实现手段。通过该系统,目前已制作出“地面降雪观测资料日值”等13个专题数据集,为“陆面冰雪监测业务系统”等3个系统提供了良好的数据服务。
1 气候监测业务的资料需求特点近年来,极端天气气候事件的发生给社会、经济和人民生活造成了严重的影响和损失[9],国家级气候监测业务也在迅速发展,冰雪监测、干旱监测、气候要素监测、台风监测、季风监测、高空气候变化监测等业务系统在不断建设或完善中。这些业务系统须通过国家气象信息中心提供的在线服务系统获取数据,按期生成气候监测产品,提供决策服务和气候预测等使用。
气候监测产品的种类越来越丰富,发布的时效性和密度也越来越高。其对资料的需求具有以下几个特点:① 长序列。不论是观测资料,还是统计产品,都需要自有观测记录以来的所有数据。② 及时更新。当实时资料入库或历史数据集制作好后,用户获取的资料能随之及时更新。③ 一定的统计加工。对部分实时数据,需要经过一定的统计加工,用户直接使用统计产品。④ 自动化获取。不论是实时资料,还是历史数据集资料,都要求能通过自动化的获取手段接入其业务系统。⑤ 规范的数据格式。提供的数据须经过一定的组织和整理,满足气候监测业务系统的直接使用。
当前,国家级主要的数据服务系统MDSS无法满足这样的资料需求。首先,MDSS中实时数据库的应用程序接口 (API) 检索只是针对单一种类的原始观测资料,而用户需要的资料中有来自多种观测的、或经过一定加工处理的资料。其次,MDSS中综合数据库提供的历史数据集资料,其服务方式主要是Web下载或离线服务,不能满足用户自动且按需获取的要求。因此,在现有服务环境下,只能通过人工手段提供这方面的服务,响应速度较慢,也影响了用户业务产品的生成时效。
为了满足气候监测业务突出的资料需求,有针对性地提供数据服务,在现有MDSS的数据环境基础上,设计和开发了一个专题数据服务系统——气候监测业务专题数据服务系统。
2 系统设计 2.1 系统结构设计气候监测业务专题数据服务系统是建立在MDSS上的一个数据服务系统,在设计时主要遵循以下原则:① 标准化。专题数据集文件的目录结构、文件命名、内容格式、服务接口等都遵循统一的标准。② 科学性与业务实用性兼顾。对数据集的制作方法,既要科学严谨,也要考虑到专题数据集的针对性和实用性。③ 可扩展。系统的设计和实现应具备良好的可扩展性,以适用于不断新增的数据需求。④ 满足实时业务运行。在设计上要使业务流程能自动稳定运行,在异常情况下一般能自动补做,特殊情况下可人工补做,同时在时效性上满足实时运行的要求。⑤ 集约化。使用MDSS现有的数据资源和业务监控功能。
该系统的系统结构如图 1所示,主要由1个专题数据支撑库和4个功能模块组成。专题数据支撑库负责获取基础数据资料和管理系统运行所需信息。功能模块包括资料更新发现、专题数据集制作、数据服务和任务调度。其中,资料更新发现驱动专题数据集制作,制作出的数据产品通过数据服务提供用户使用;任务调度根据业务规则,衔接资料更新发现、专题数据集制作和数据服务,以实现整体的业务流程。
|
|
| 图 1. 气候监测业务专题数据服务系统结构 Fig 1. Framework of Special Data Service System for Climate Monitoring | |
2.2 系统模块设计 2.2.1 专题数据支撑库
为了使该系统拥有独立稳定的数据环境,而且不会因基础数据库系统及其数据存储的变化而受到影响,需要建立一个专门的支撑库。该支撑库使用与基础数据库同类型的数据库 (即Oracle数据库),规模很小,主要是维护与基础数据库系统之间的数据映射关系,存储管理本系统运行相关的配置及日志信息等。
2.2.2 资料更新发现对于本系统需要处理的数据源,资料更新发现模块实时监视其更新状态;当发现资料更新后,立即驱动专题数据集的制作。
针对每类资料,制定其更新发现策略:对于实时资料,根据资料本身的上传频次,定时获取其更新状态;对于历史数据集资料,根据业务规定的数据集更新时间要求,及时对数据集更新元数据进行检测,获取更新信息。
2.2.3 专题数据集制作专题数据集制作是系统最重要的模块,它利用基础数据库中原始的气象数据,加工出用户业务系统能直接使用的数据集产品。专题数据集的制作严格按照数据集制作方法进行,因此,方法的研制是本模块的关键内容。
首先,系统研制的数据集制作方法严格遵循相关规范,包括《地面气象观测规范》[10](以下简称《规范》)、《全国地面气候资料 (1961—1990) 统计方法》[11](以下简称《统计方法》) 和《地面气候资料30年整编常规项目及其统计方法》[12]等。如系统的地面自动站风资料日值统计方法遵循《统计方法》中关于风要素的日值统计方法、《规范》中缺测记录的处理和不完整记录的统计规定。其次,数据集制作方法也符合专题服务的特点,尽可能多地给用户提供实用资料。如系统的地面自动站风资料日值统计方法在《规范》和《统计方法》相关规定的基础上,结合要素的质控标识、要素间的关联关系、用户的统计要求,进行了更丰富的补充和扩展。
专题数据集制作方法的具体内容包括4个部分:资料分析、筛选整理、统计加工、标准化处理。
·资料分析与用户某一特定需求相关的资料可能有多种,对其中的每类原始资料进行分析,分析其站点分布、质量情况、资料时次、更新频率、时间序列等,在此基础上选择符合用户业务需求的一个或几个数据源。如在MDSS的实时库中,涉及到土壤湿度观测的有农气旬月报资料、自动站土壤湿度资料等几种资料,经分析并结合气候监测业务的需要,选择从农气旬月报中提取相关要素制作数据集比较合适:它虽然更新频率较慢 (每旬更新),7层的观测层次不及自动站土壤湿度资料20层的观测层次多,但资料质量较好,观测台站分布均匀且较多,历史序列长,更符合气候监测业务的要求。
·筛选整理按业务需要,从数据源中挑选所需要素,剔除全为缺测的记录和质量错误的要素值,同时补充必要的台站信息,包括经度、纬度、海拔高度、台站名称等。
·统计加工对于需要统计加工的数据集,主要是实时资料数据集,制定详细的加工处理方法和步骤,如日值统计、极值统计等。
·规范化处理对加工出的数据集产品,进行规范化处理以生成标准的数据产品提供服务。规范化处理过程包括:统一的特征值转换、统一的量纲和单位转换、规范的文件组织、规范的文件命名和规范的文件内容格式。
2.2.4 数据服务不同的用户业务系统对数据获取方式要求不同,分为主动获取和被动获取两种。因此,本系统提供两种数据服务方式:FTP (文件传输协议) 下载和数据推送。其中,FTP下载的实现完全基于数据文件存储的标准目录结构和文件命名;数据推送由专题数据集制作过程来驱动,当新的数据文件制作好后,根据用户需求配置自动生成1个或多个新的推送任务,以完成向1个或多个业务系统实时推送的功能。
2.2.5 任务调度为了满足实时业务要求,保证稳定可靠的数据服务,本系统设计的任务调度由实时自动调度、异常处理调度和人工补做调度3种调度模式组成,如图 2所示。3种调度模式相互配合,构成一个完备的调度体系。
|
|
| 图 2. 任务调度流程设计图 Fig 2. Job scheduling flow | |
在正常情况下,实时自动调度完成所有数据集制作和服务。根据资料的更新发现策略,调度资料更新发现模块,若已更新则启动数据集制作和服务,否则,记录资料未更新信息,交付给异常处理调度。
在资料源更新延迟情况下,异常处理调度自动处理。获取数据源未及时更新的信息,在一段时间内多次尝试处理;若数据源始终不更新,则交付给人工补做调度。
对未完成的数据集制作任务和历史数据集补做任务,采用人工补做调度来完成。针对数据源未更新、数据集制作中出现故障等信息,通过监视报警,提醒业务人员进行处理;业务人员指定数据集名称和时间段等条件,通过人机交互方式进行调度,完成补做。
3 系统实现 3.1 基于SSH的技术架构该系统以SSH框架为基础,结合DWR的AJAX (Asynchronous JavaScript and XML) 技术[13]和配置管理技术,构成了一个全新的更高效灵活的技术架构。SSH框架由3个开源框架组成:Struts[14],Spring[15]和Hibernate[16],它们有效配合,提供了一种开发J2EE[17](Java 2 Platform, Enterprise Edition) 企业级Web应用的轻量级解决方案。Struts采用Servlet/JSP[18]技术,实现了基于MVC (Model View Controller) 设计模式[19]的Web应用框架,尤其是系统选用的Struts 2[14]更是对Struts 1进行了改进,成为目前Java领域最优秀的同步交互Web框架。Spring有效解决了传统企业应用开发模式的复杂度问题,使开发人员使用基本的JavaBean[15]来完成以前只可能由EJB[17] (Enterprise JavaBean) 完成的事情,同时为J2EE应用开发提供集成的框架。Hibernate是一个开源的对象关系映射框架,它对JDBC (Java Database Connectivity) 进行了非常轻量级的对象封装,使得开发人员可以方便地使用对象编程思维来操纵数据库。AJAX是目前实现异步交互的默认标准,实现该技术的DWR是一个轻便和实用的框架;通过将DWR集成到SSH中,使之弥补Struts在异步交互上的不便,与其搭配实现同步、异步交互的完备模式。
该架构在本系统中的应用如图 3所示,其特点及优势在于其分层结构和配置管理。
|
|
| 图 3. 气候监测业务专题数据服务系统技术架构 Fig 3. The technical architecture of Special Data Service System for Climate Monitoring | |
首先,该架构具有明显的松耦合层次划分,下层对上层提供服务式的接口,上层通过配置和调用接口来访问下层。系统在实现时自下而上分为数据访问层、业务逻辑层和交互表现层等3个层次。数据访问层基于Hibernate,屏蔽数据库结构化的数据结构和SQL (Structured Query Language) 的访问方式,提供面向对象的访问接口。业务逻辑层基于Spring,实现系统的业务功能,并提供交互接口。交互表现层基于Struts,结合DWR,实现Web展示,提供操作人员与系统之间的交互。
其次,该架构通过一系列的配置管理,来支撑系统的灵活度和可扩展性。主要配置包括两类:业务逻辑配置和框架参数配置。业务逻辑配置是从业务功能实现中抽取出的通用配置信息,配置所用XML (eXtensible Markup Language) 文件架构 (Schema)[20]由系统自行设计;本系统中该类配置包括专题数据集参数配置、任务启动策略配置等。框架参数配置是支撑开源框架运行的配置,配置所用XML文件的架构由框架自身定义;本系统中所使用的开源框架主要有Hibernate,Spring,Struts和DWR,其配置分别为对象关系映射配置、对象管理参数配置、同步Web访问控制配置和异步Web访问控制配置。
3.2 系统功能的实现 3.2.1 数据访问层的实现在数据访问层中,通过数据表视图的创建,屏蔽不同的数据库来源,为数据访问接口的实现提供统一的数据源;数据访问接口实现数据表的对象化,封装数据访问方法,为上层提供接口服务 (图 3)。
数据表视图存放在专题数据支撑库中,其创建分为两个步骤:① DBLink[21] (数据库链接) 的创建。基础数据库系统可由多个数据库组成,目前包括MDSS中的实时数据库和综合数据库;为了创建数据表视图,需要在专题数据支撑库中创建连接到这些基础库的DBLink,通过设置基础数据库IP地址、实例名、用户名、密码等参数进行创建。② 数据表视图的创建。在DBLink创建的基础上,创建专题数据制作需要访问的数据表视图,过滤掉数据集制作不需要的要素。数据表视图包括资料要素表视图和资料更新发现所需的元数据表视图。
在数据访问接口的实现中,通过配置Hibernate里的对象关系映射,完成专题数据支撑库中数据表视图和系统运行日志表的持久化映射[16];使用Hibernate中Session管理数据对象的功能,通过程序开发,完成对数据对象的访问及操作方法的封装,为上层提供访问接口。
3.2.2 业务逻辑层的实现业务逻辑层基于Spring实现,主要是对资料更新发现、专题数据集制作、数据服务和任务调度4个核心业务模块的开发。
在实现过程中,充分利用开源软件,提高系统稳定性和开发效率。如数据服务中的FTP下载功能,借助Apache FtpServer[22]软件来实现;任务调度中的实时自动调度功能,使用Quartz[23]软件来实现。Quartz是OpenSymphony开源组织的一个功能齐全的任务调度系统,将其集成到Spring,然后辅以任务启动策略配置,配置每个任务的启动时间或重新启动的时间间隔,即可完成实时任务启动控制。
此外,专题数据集参数配置是业务逻辑层实现的关键,它直接指导资料更新发现、专题数据集制作和数据服务的实现及运行,从这几个环节中抽取出的重要参数信息,主要包括专题数据集相关描述信息和源数据集信息 (表 1)。
|
|
表 1 专题数据集参数配置表 Table 1 The parameters of special dataset processing |
3.2.3 交互表现层的实现
本系统的交互表现层,主要是实现数据管理人员对数据集人工补做任务的提交,使用Struts结合DWR来实现同步和异步两种交互方式。
系统通过检索专题数据支撑库,获取可制作的专题数据集列表及每个数据集待制作的时间范围,使用Struts动态加载到页面上,提供给数据管理员;数据管理员选择需要补做的数据集,指定补做的时间范围,设置若数据文件已生成是否需要覆盖等参数,通过DWR提交给后台进行异步处理,不需要管理员因后台处理而长期等待。
4 结论气候监测业务专题数据服务系统是针对气候监测业务的具体需求,设计和开发的一套服务系统,是在专题服务领域的一次成功尝试。与传统的服务系统相比,该系统的设计和实现具有以下特点:
1) 系统功能结构及调度体系具有典型的专题服务特征,保障用户能稳定、实时、自动地获取到个性化的专题数据。
2) 专题数据集制作方法既具有科学性,又能满足业务实用性。
3) 松耦合的分层实现和灵活的配置管理,使系统具有良好的可扩展性,便于专题服务的持续发展。
今后,本系统也将不断扩展和完善,为更多的业务系统提供支撑,推进专题数据服务工作向用户更满意的方向发展。
| [1] | 高峰, 王国复, 喻雯, 等. 气象数据文件快速下载服务系统的设计与实现. 应用气象学报, 2010, 21, (2): 243–249. |
| [2] | 王国复, 李集明, 邓莉, 等. 中国气象科学数据共享服务网总体设计. 应用气象学报, 2004, 15, (增刊): 10–16. |
| [3] | 李集明. 基于Internet面向社会公益性共享的气象科学数据存储检索策略研究. 气象科技, 2007, 35, (4): 590–592. |
| [4] | 李集明, 沈文海, 王国复. 气象信息共享平台及其关键技术研究. 应用气象学报, 2006, 17, (5): 621–628. |
| [5] | 李集明, 王国复. 气象数据库系统总体设计综述. 气象科技, 2007, 35, (增刊): 1–5. |
| [6] | 沈文海, 赵芳, 高华云, 等. 国家级气象资料存储检索系统的建立. 应用气象学报, 2004, 15, (6): 727–736. |
| [7] | 李刚. 轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发. 北京: 电子工业出版社, 2007. |
| [8] | Zammetti F. Practical DWR 2 Projects. New York: Springer, 2007. |
| [9] | 刘绿柳, 孙林海, 廖要明, 等. 基于DERF的SD方法预测月降水和极端降水日数. 应用气象学报, 2011, 22, (1): 77–85. |
| [10] | 中国气象局. 地面气象观测规范. 北京: 气象出版社, 2003. |
| [11] | 国家气象中心. 全国地面气候资料 (1961—1990) 统计方法. 1990. |
| [12] | 中国气象局. 地面气候资料30年整编常规项目及其统计方法. 2004. |
| [13] | Crane D, Pascarello E, James D. Ajax in Actio. New York: Manning Publications, 2005. |
| [14] | Brown D, Davis C M, Stanlick S. Struts 2 in Action. New York: Manning Publications, 2008. |
| [15] | Walls C, Breidenbach R. Spring in Action. New York: Manning Publications, 2008. |
| [16] | Bauer C, King G. Hibernate in Action. California: O'reilly & Associates, Inc, 2005. |
| [17] | Broemmer D. J2EE Best Practices: Java Design Patterns, Automation, and Performance. New Jersey: John Wiley & Sons Inc, 2002. |
| [18] | Chopra V, Eaves J, Jones R, et al. Beginning JavaServer Pages. New Jersey: John Wiley & Sons Inc, 2005. |
| [19] | Buschmann F, Mcunier R, Rohnert H, et al. Pattern-oriented Software Architecture: A System of Patterns. New Jersey: John Wiley & Sons Inc, 1996. |
| [20] | Walmsley P. Definitive Xml Schema. New Jersey: Prentice Hall, 2005. |
| [21] | Abbey M, Corey M, Abramson I. Oracle9i: A Beginner's Guide. New Jersey: McGraw-Hill, 2002. |
| [22] | Apache FTPServer. [2011-02-18].http://mina.apache.org/FTPserver/. |
| [23] | Cavaness C. Quartz Job Scheduling Framework: Building Open Source Enterprise Applications. New Jersey: Prentice Hall, 2005. |
2012, 23 (5): 624-630



