分布部署系统的文件一致性问题及处理方法

2017-06-10 19:44蒙泳行
电子技术与软件工程 2017年11期

蒙泳行

摘 要目前,公司的技术文件网系统部署由单数据源单文件系统改成了单数据源多文件系统,如此做减轻了遵义事业部对贵阳总部的网络访问量,同时加快了遵义事业部技术网的访问速度。文件同步我们使用软件BestSync2010实现,但是还没有做文件一致性检查,本文探讨文件系统分布部署的文件一致性问题的处理方法,使用MD5算法实现。

【关键词】文件系统 一致性检查 MD5

1 引言

公司的技術文件网系统是一个技术文件管理、查询系统,生产工人通过系统网页,输入查询条件,查询到相应技术文件,指导生产。系统也包含了权限管理、文件加解密等功能,本文不做讨论。系统的web服务器部署在公司贵阳本部,技术文件存储在贵阳本部和遵义事业部的文件服务器中。技术文件定期从贵阳本部的文件服务器同步到遵义事业部的文件服务器中。在技术文件网系统中,文件同步还没有做文件一致性检查,就是说遵义查看到的技术文件可能不是最新的,但是他并不知道,只能靠提高同步间隔改进;同时若同步出现问题,长时间没有同步,也不易发现,这就存在了风险。如图1所示,本系统单数据源,数据库在贵阳,贵阳、遵义都有文件系统和web服务器,遵义用户访问贵阳的web服务器,获得技术文件的物理路径,然后通过遵义的文件系统下载遵义的物理文件;这个过程无法保证在遵义下载的文件和贵阳的最新版本一致,本文探讨使用MD5技术实现一致性检查。

2 MD5算法原理

MD5是Message Digest Algorithm的英文简称,它的中文名是消息摘要算法第五版。MD5是一种散列函数,在计算机安全领域被广泛使用,它可以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。MD5是被广使用的一种杂凑算法,java、c#等目前主流编程语言都已封装MD5算法的实现。

MD5的经典应用是生成一段信息的摘要,以验证信息是否被篡改。MD5将整个文件看成一段字符串,然后算法通过不可逆的字符串变换,产生一个唯一的MD5信息摘要。就像指纹识别,人脸识别,虹膜识别等。MD5可以给任何文件生成一个MD5值,除非两个文件完全一致,否则这个MD5值就是唯一的。所以对文件的任何改动,其MD5值也会发生改变。通常我们在网上下载某个软件,都会附带一个写有MD5值的文件,我们可以用专门的软件对下载回来的软件做一次MD5检验,以确认下载的软件是否被改变。

MD5算法把输入信息分组处理,每组512位,不足部分填充,每一分组又被划分为16个子分组,每个子分组32位,经过了一系列的处理后,算法输出四个32位分组,这四个32位分组级联后,生成一个128位散列值,这128位散列值转换成32位字符串,就是MD5值。MD5算法原理流程如图2所示。

3 MD5在技术文件网的应用

技术文件网数据库主表结构如表1所示。

为了实现MD5校验,先给数据库表添加一个字段:文件的MD5值。在档案室上传新文件,或者更新旧文件时,同时计算新文件的MD5值,并把这个MD5值更新到数据库中。这一步需要更改文件上传的程序,添加计算MD5值的功能。

如图3为加入MD5校验的技术文件网架构图。当遵义用户在查看技术文件网时,从贵阳网页服务器获得文件路径的同时也得到该文件的MD5值,遵义本地的网页服务器用得到的文件路径在遵义文件服务器下载物理文件前,先计算该文件的MD5值,用计算得的MD5值与从贵阳网页服务器得到的MD5值对比,如果相等,说明该遵义本地的物理文件与贵阳文件服务器中的文件完全一致,就直接下载遵义本地的物理文件。如果两个MD5值不一致,说明该文件不是最新的,贵阳的文件还没同步到遵义来,此时会自动转到贵阳的文件服务器获取最新文件。整个过程对用户而言是封闭的,同时保证了系统的文件一致性。

本技术文件网系统使用J2EE技术开发,MD5算法的实现,Java语言已经封装在其基本类库中,可以直接调用实现。经试验,计算100M 的pdf技术文件MD5值需要的时间为1秒钟左右,目前技术网上的文件基本都在100M以内,可以满足技术网对下载时间的要求。

4 结束语

在目前的技术文件网基础上使用MD5算法添加文件一致性检查,不再出现文件不一致的问题了。此文件一致性检查的方法,在其他类似的单数据源多文件系统都可以使用。

参考文献

[1]哈希加密算法MD5-aTool在线工具.aTool在线工具.2013-12-16.

[2]维基.维基.2013-02-3.

[3]百度百科.百度.2014-05-20.

作者单位

贵州航天电器股份有限公司 贵州省贵阳市 550009