基于硬链接的气象水文数据推送系统设计

2012-01-05 06:44黄俊领张志杰
成都信息工程大学学报 2012年2期
关键词:传输流程数据库

黄俊领, 张志杰, 高 宁

(中国人民解放军61741部队信息中心,北京100094)

近几年来,为了满足气象水文预报预测业务的需求,中国在气象、海洋、空间各行业进行了大规模的基础性建设,通过卫星遥感探测、地面自动观测、海洋环境探测、空间环境探测获取了大量观、探测资料,生成了大量的气象水文预报预测产品。如何在有限的带宽下把资料和产品实时或近实时地推送至各级气象水文基层单位,使一线预报人员能够在第一时间获取所需的保障资料,最大限度的提高预报产品的时效性,是气象水文信息服务的一项主要任务。目前在有线信道上的信息推送主要是基于FTP(文件传输协议)的文件传输,通过远程目录同步[1]的方式实现。采用这种方式,传输目录中文件数量较多时搜索、比对时间大幅增加,消耗时间远大于增量文件传输时间,且无传输优先级控制,不能保证不同信息时效性要求。

采用基于硬链接的数据推送技术,设计了包括本地文件同步、远程文件传输、到报监控管理和传输安全控制等的气象水文数据推送系统,探索了气象水文数据推送的新形式,实现了气象水文信息的高效推送。

1 硬链接技术简介

硬链接(Hard link)[2]最早是UNIX文件系统的一个功能属性,和原文件名指向的是存储设备上同一个文件内容。就好像这个文件内容有多个文件名一样,每个文件名都有相等地位。删除其中任何一个之后,文件内容本身不会被删除,仍然可以使用其他名称来访问。只有当最后一个指向这个文件内容的文件名被删除后,文件内容才被真正删除。可以看出,一个文件的硬链接跟此文件的原名称没有任何本质区别。

现在,硬链接已不仅仅是UNIX、LINUX的专利,在Windows系统的NTFS文件系统中也能够使用硬链接技术。使用硬链接有以下优点:一是节省硬盘空间,同样的文件,只需要维护硬链接关系,不需要进行多重的拷贝。二是防止意外删除,删除其文件的一个链接,文件还能够通过其他链接名称进行访问操作。三是方便应用管理,如建立硬链接进行集中备份、通过维护硬链接关系(即文件重定向)进行软件或组件版本升级(Windows7中大量使用[3-4])等。四是便于同步操作,将需要同步的文件建立硬链接到同一个分区下的不同目录中,即可以实现对目录中文件的同步操作,系统使用的就是硬链接的此项特征。

2 系统架构设计

基于硬链接的气象水文数据推送系统的整体功能架构如图1所示,设计为3层:基础服务层、功能管理层和用户接口层。架构以封装资源和为用户提供统一、简单和友好的接口界面为目标,通过各层协同工作与支持,共同完成数据推送的各项功能。

2.1 基础服务层

基础服务层主要是完成数据推送所需要的一些基础服务,主要由数据传输服务、数据安全服务、其他支撑服务和传输状态数据库4个部分组成。采用现有成熟IT技术如.NET框架技术、WEB服务技术和数据库技术来实现,存在形式是服务、链接库和数据库。

数据传输服务对所有的待传输数据提供落地、非落地的基于TCP的数据传输和基于UDP的消息传输服务。具体做法是使用TCP进行数据传输,使用UDP进行消息反馈和传递。数据安全服务完成节点注册身份认证、应用层加解密和访问策略控制等功能。其他支撑服务由WEB服务、压缩解压缩服务、文件分割与组合服务、版本检测与升级服务等组成。传输状态数据库完成数据传输过程中的日志记录、配置记录、消息记录等功能,并与WEB服务相结合,对全网提供传输状态的动态查询和报表功能。

2.2 功能管理层

功能管理层实现了系统在传输的各个阶段和环节的管理功能,主要有系统配置管理、传输流程管理、安全传输管理、传输监控管理和日志报表管理等5部分,其中系统配置管理、传输监控管理和日志报表管理采用基于WEB服务的方式,传输流程管理和安全传输管理采用基于C/S的模式。

系统配置管理实现对系统基本参数和要素的配置功能,主要包括传输目标节点信息、数据源目录信息、传输任务信息及其他系统运行参数信息。传输流程管理是功能实现的一个重点,描述了数据是如何从源节点传输到目标节点的全过程,以及其中控制和反馈信息的传输。安全传输管理实现节点的入网注册、身份认证、配置信息下载、应用层的加解密功能和安全策略管制管理等功能。节点入网注册和身份认证将节点规划信息和节点的硬件信息进行绑定,作为入网凭证。加解密功能根据数据传输模式要求,对需要加密传输的数据进行加密传输和接收解密操作。安全策略管理包括粗粒度的菜单控制及细粒度的目录及文件控制策略。传输监控管理通过分析数据传输特征,完成资料和传输的全程监视功能。日志报表管理主要完成数据传输的日志记录及报表生成功能,用来组织传输监控和故障分析。

图1 系统架构图

2.3 用户接口层

用户接口层主要包括人机界面、查询处理和统一数据视图3个部分内容,是用户访问数据源的入口,是进行任务管理、监控系统运行的人机交互平台。人机界面采用基于B/S和C/S技术结合设计,为用户提供一切可供用户操作的前台信息展示界面。查询处理利用人机界面将用户提交的各类查询和监视要求,经功能实现层处理输出为标准的服务请求,最后利用基础服务来执行并获取查询结果。统一数据视图是将查询处理产生的查询结果进行统一封装,规范其展现方式,以同一种表现风格来处理信息的有效表达,使得操作人员更易于理解。

3 传输流程及功能设计

3.1 传输流程

系统传输流程可分为建立任务、报文检测、建硬链接、数据推送、数据接收、情况反馈等6个步骤,如图2所示。建立任务主要是建立用来驱动传输的各项任务及相关信息,即推送目标、推送数据及相关信息。报文检测是指对源目录中报文到达情况进行检测,并将检测信息存入传输状态数据库。建硬链接即根据传输任务的要求,建立新到报文至目标单位的传输硬链接,建立成功后,将源目录中相应文件删除。数据推送是指在完成相应加密、压缩或其他功能处理后,将数据发送至目标单位接收端主机上。数据接收是利用部署在目标单位的数据接收软件,将数据接收下来,进行解密、解压缩或其他功能处理后,存放在相应目标目录下,以备使用。情况反馈是将文件接收情况、接收检测和监视信息进行反馈操作,便于本地和数据发送端进行数据传输状态监视。

在整个传输流程的各个节段进行监视和错误处理,以便及时发现问题,解决问题。

图2 系统工作流程

3.2 功能设计

3.2.1 建立任务

传输任务是传输工作的驱动器,指明了传输的数据源、目的地、任务的期限、以及需要传输数据的种类等信息。一般来讲,在任务建立之前,数据源的信息已经确定,在建立任务时只需选取需要的数据种类,然后附加到任务信息中,即可完成任务的构建。而一种数据源确定了一类数据的特征及其传输特性,如数据名称、到报频度、每一时间段到报量、到报检测模式(定时、实时)、传输模式(加密、压缩、其他)、传输优先级等信息。因此,在建立任务需要涉及到3个方面的信息,数据源信息、目标单位信息和数据与目标单位的关联信息[5]。由于数据源信息是已有的,因此只需完成目标单位信息和关联信息的建立工作即可。任务构建完成后,对应各任务的数据传输保障目录之间的关系如图3所示。

图3 源、链接及目标目录对应示意图

3.2.2 报文检测与建立硬链接

文件检测和建立硬连接会启动2个进程分别完成,按照各源数据目录的检测模式,一个进程进行实时检测,另一个进程负责定时检测。为了提高性能,节约时延,在这里采用文件检测和硬连接建立同时进行的方法,并将建立的硬连接信息直接存入传输状态信息库。下一步是依据传输状态信息库来进行数据推送。传输状态信息库主要包括以下字段:推送目标单位、检测目标目录、文件名称、建立时间、推送次序、传输模式、传输次数(如果传输不成功、会计次重传输、三次不成功、报错)、错误代码(0是不出错、其他为出错)、传输是否成功、完成传输时间。工作流程图如图4所示。

系统通过此步骤,完成新增文件向链接目标的同步功能,并生成传输状态信息,作为数据推送的依据。为了提高数据库检索时效性,传输状态数据库只保留2天数据量,其余数据按照策略转移至传输状态历史数据库中,传输状态数据库每个月完成压缩出库归档一次。

图4 文件检测与建硬链接流程图

3.2.3 数据推送、接收和反馈

传输状态数据库是服务端推送的依据,通过组合查询传输状态数据库,找到待传输的优先级相同的一批文件,然后进行数据传输。查询策略包含2个,一是查询时间间隔,主要是根据经验进行设定;二是查询组合条件,查询组合条件为“传输未成功+传输优先级+未出错”。传输程序采用多线程处理,对于每一类优先级相同的数据推送启动一个线程,每一个推送线程对所有需要数据推送的目标单位服务,每个线程单独进行自己的数据检索和数据推送操作。在数据的推送过程中,优先级主要体现在对不同优先级的推送线程的时间片划分上。接收端启动接收线程,进行数据接收,接收后解析出传输信息,并根据信息进行功能处理如解密、解压缩等,以及保存到相应的目录等。系统的每一批数据推送的起源是一个查询操作,每一批数据推送完成后,会要求接收端以UDP的方式返回传输结果并更新传输状态数据库和本地数据库。数据推送、接收和反馈流程如图5所示。

3.2.4 资料监视和流程监视

资料监视指对特定位置,规定汇集的所有资料是否依各自的时间约束完整抵达。这里限定了资料的特定途经位置,对于单个资料来说,时间和在规定时间内的到报量是重点关注点,预警报警信息主要由这两元组决定,因此,在展现方式上,使用一维展现资料种类、二维展现时间和到报量属性[6]。

图5 数据推送、接收和反馈流程图

传输流程监视是判断传输故障、解决传输问题的重要环节。一种资料的传输流程是指从传输源节点至目的节点的整个过程,可以描述为途经全部位置(或节点主机)的一个有序集合。在表现方式上,使用单向延伸坐标,以单维有序方式表示资料的传输流程。传输流程监视的一个重点是监视各节点的报文积压情况,并根据情况产生提示或报警行为。采用监视各传输目录的方法,正常情况下,传输目录中文件数应当为0或者一很小数量,若超过一定限值,则给出提示或报警信号,并给出可能的解决方案,引导保障人员解决传输故障和问题。

4 结束语

在对现有传输手段缺陷及硬链接技术特点进行分析的基础上,给出了一种基于硬链接的气象水文信息推送系统设计,并利用visual C#语言、ORACLE数据库完成系统的原型设计与实现。在设计中采用了3层逻辑功能划分的技术架构、B/S和C/S结合的编程环境,在核心部分采用了多线程、模块化的设计思想,保证了系统的高效、可靠与稳定。系统与传统传输系统相比,具有传输效率高、支持一定的优级控制的特点。对提高气象水文保障数据的时效性和准确性具有重要的意义,对类似有实时数据推送需求的应用具有一定的借鉴作用。下一步将重点改进传输过程中出现错误后的反馈和数据补发流程,确保数据传输的及时、正确。

[1] 张亚生,王霖.一种基于网络的通用目录同步软件设计方法[J].计算机与网络,2003,(5).

[2] 尤晋元,张亚英,戚正伟译.UNIX环境高级编程:第二版[M].北京:人民邮电出版社,2006.

[3] 张婧妍,宋杰,鲍玉斌,等.全国第五次程序设计语言发展与教学会议[C].2006.

[4] 章宗标.一种基于Agent的工作流流程监控模型[J].浙江交通职业技术学院学报,2008,(3).

[5] 曹金山.网络高效安全数据传输方法设计[J].现代电子技术,2010,(20)

猜你喜欢
传输流程数据库
吃水果有套“清洗流程”
混合型随机微分方程的传输不等式
牵引8K超高清传输时代 FIBBR Pure38K
关于无线电力传输的探究
违反流程 致命误判
数据库
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线
本刊审稿流程
析OGSA-DAI工作流程
数据库