一种基于svn的文件自动网络同步方法

文档序号:7773821阅读:547来源:国知局
一种基于svn的文件自动网络同步方法
【专利摘要】本发明的目的在于提供一种基于SVN的文件自动网络同步方法,包括服务器端处理流程和客户端处理流程。本方法能够实现文件在局域网内任一节点提交后,所有节点在需要时自动网络同步的一种文件自动网络同步方案。本发明能够实现文件实时同步,从而能实现快速本地打开文件的目的。
【专利说明】—种基于SVN的文件自动网络同步方法
【技术领域】
[0001]本发明涉及电网系统文件数据传输【技术领域】,具体来说是一种电力系统自动化领域的图形文件和配置文件的网络同步的方法。
【背景技术】
[0002]SVN, (Subversion,即文件版本管理),是近年来崛起的文件版本管理软件,是cvs的接班人,是一个自由,开源的版本控制系统。在SVN管理下,文件和目录可以超越时空。Subversion可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。
[0003]SOA(service-oriented architecture即面向服务架构),面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
[0004]本发明在SVN提供的文件版本管理服务的基础上,在服务器端和客户端都采用内存映像文件记录仓库中各个文件的版本号和文件MD5值,以方便服务器和客户端进行文件的MD5值对比,在服务器端应用多线程和SOA接口响应客户端的请求,在客户端应用多线程和任务池技术提交请求,从而实现为所有需要提供文件网络同步的节点提供快速文件同步的服务。

【发明内容】

[0005]本发明的目的在于提供一种基于SVN的文件自动网络同步方法,能够实现文件在局域网内任一节点提交后,所有节点在需要时自动网络同步的一种文件自动网络同步方案。本发明能够实现文件实时同步,从而能实现快速本地打开文件的目的。
[0006]本发明的目的可通过以下的技术措施来实现:
[0007]本发明是一种基于SVN的文件自动网络同步方法,包括服务器端处理流程和客户端处理流程,具体步骤如下:
[0008]服务器端处理流程如下:
[0009]1.服务器端守护RFS (resource file system,即资源文件管理系统)服务。
[0010]2.RFS服务启动时,加载服务器端内存映像文件,映像文件中记录有服务器端文件系统的主版本号,还记录了服务器端所有需要网络同步的文件的基本资料,比如文件版本号,文件的MD5值,文件状态等。内存映像文件相当于一本书的目录,各个需要网络同步的文件相当于一本书的内容,当一本书的内容发生改变后,目录也会发生改变。
[0011]3.RFS服务启动后,会维持一个线程,负责处理并维护服务器的内存映像文件和日常事务,比如文件的网络删除,文件状态的改变,文件加锁解锁等。
[0012]4.当检测到客户端的请求后,RFS服务通过SOA接口响应客户端的请求,比如文件上传,文件下载,内存映像文件内容的下载等。当服务结束后,自动关闭连接。
[0013]5.对于文件上传等会改变文件内容或者文件状态的请求,RFS服务会首先把文件提交到SVN服务器,提交成功后会获取到SVN新生成的一个文件版本号,然后用这个版本号来更新自己的内存映像文件中的文件系统的主版本号和上传文件的版本号。由于主版本号更新,当客户端询问服务器,发现服务器上主版本号和自己的主版本号不一致,就会触发客户端主动去下载刚才被上传的文件。
[0014]客户端处理流程如下:
[0015]1.启动任意一个包含网络同步客户端模块的进程,比如绘图包或者调度员界面。
[0016]2.网络同步客户端模块在启动时,加载客户端内存映像文件,映像文件中记录了客户端文件系统主版本号,还记录了客户端所有需要网络同步的文件的基本资料,比如文件版本号,文件的MD5值,文件状态等。
[0017]3.客户端启动后,会维持一个线程,线程会每隔3秒检查自己的客户端文件系统主版本号和服务器上的服务器端文件系统主版本号是否一致,如果不一致,就会向服务器发起索要服务器端内存映像文件相对于自己变化内容的请求,也即增量的方式的请求。
[0018]4.请求返回后,客户端会把返回内容和本地内存映像文件中信息做对比,比较文件的版本号和文件的MD5值,如果不一致。就发起对不一致的文件的下载请求。
[0019]5.文件成功下载后,客户端会更新自己的内存映像文件,使之和服务器端一致。然后继续每隔3秒一次的轮询。
[0020]6.上面5个步骤是增量方式检查文件一致性,然后下载。线程还会每隔一个小时把自己的内存映像文件和服务器端的内存映像文件进行全局对比,检查是否有不一致的文件,然后下载。所述增量方式即只检查每次比对后新修改的内容。
[0021]7.客户端还可通过操作界面或者命令行方式进行文件网络保存,查看文件保存日志。下载指定文件的指定版本,网络删除指定文件等操作。
[0022]本发明对比现有技术具有如下优点:
[0023]1.文件网络同步实现高度自动化。
[0024]2.客户端节点不需要一直在线,当客户端节点在停机一端日子后重新开机,RFS客户端进程会自动把所有需要更新的文件自动更新一遍。
[0025]3.以SVN服务为基础,可方便的导出文件的任意一个版本。
[0026]4.采用S0A,使得网络交互服务接口和协议都很容易扩展。比如目前就采用了SOAP和THRIFT两种协议。
[0027]5.服务器端对被下载的文件建立内存缓存,从而能快速提供所有节点对同一个文件的集中式下载。
[0028]6.客户端节点不需要配置守护进程,文件会在需要查看时自动网络同步。
[0029]7.客户端请求采用线程任务池,实现兼顾效率和减轻服务器负荷。
[0030]8.模块化设计,可方便的嵌入有网络同步需求的应用程序中。
【专利附图】

【附图说明】
[0031]图1是本发明的系统架构图。【具体实施方式】
[0032]如图1所示,SVN服务器只需要一台。RFS服务器可以配置多台,一般情况下只需配置两台互为备用。主RFS服务器负责响应客户的请求,备RFS服务器作为热备用,维持自己的状态和主服务器一致,在主RFS服务器退出后,备RFS服务器立即升级为主RFS服务器,并立刻对客户端提供服务。
[0033]对于文件网络同步的客户端节点,不需要有专门守护的进程用来维持文件的同步。因为当任意一个调用了 RFS客户端动态库的进程运行起来后,这个进程实际上就自动成为一个RFS客户端进程。当一个节点上有多个RFS客户端时,只有一个进程是主RFS客户端进程。主RFS客户端进程负责维护和服务器上文件的同步。
[0034]假定当前有三台节点:Servicel,Clientl, Client2。Servicel 上运行了 SVN服务和RFS服务。在Clientl上有一个文件名为checkin, svg的文件需要网络同步。当Clientl对checkin, svg提交后,Client2需要实现自动同步。
[0035]1.客户端提交文件
[0036]Clientl在RFS客户端进程对checkin, svg做提交操作(即网络保存),那么首先Clientl的RFS客户端进程会对checkin, svg计算MD5值,然后用算出来的MD5值和客户端内存映像文件中checkin, svg的MD5值进行对比,如果不一致,表示文件有改动,那么就会通过SOA接口向Servicel上的RFS服务提交该文件。
[0037]2.服务器端修改文件系统版本号
[0038]Servicel接受请求,接收客户端发过来的checkin, svg文件,然后通过SVNAPI接口函数把checkin, svg文件提交到SVN得仓库里,文件成功提交后,SVN会把最新版本号加I后返回给RFS服务器。RFS服务器就会把这个返回的版本号作为自己的内存映像文件的主版本号,同时也会把这个版本号作为checkin, svg文件的版本号。
[0039]3.其它客户端下载文件
[0040]Client2上的RFS客户端进程,也包括Servicel的RFS客户端进程,会每隔3秒向Servicel的RFS服务器进程询问服务器文件系统主版本号,会发现服务器上主版本号比自己的主版本号要大。那么RFS客户端进程就会向服务器端请求所有大于自己主版本号的服务器端的文件列表。请求到被改动的文件列表后,就和自己内存映像文件的内容进行对比,会发现checkin, svg文件的MD5值和本地不一致或者本地根本没有这个文件的记录信息,那么RFS客户端就从Servicel的RFS服务器进程哪儿请求下载checkin, svg文件,同时更新自己的客户端内存映像文件,使之和服务器端保持一致。
[0041]本发明的实施方式不限于此,在本发明上述基本技术思想前提下,按照本领域的普通技术知识和惯用手段对本
【发明内容】
所做出其它多种形式的修改、替换或变更,均落在本发明权利保护范围之内。
【权利要求】
1.一种基于SVN的文件自动网络同步方法,包括服务器端处理流程和客户端处理流程,其特征在于: 服务器端处理流程如下: 1.1)服务器端守护资源文件管理系统(resource file system, RFS)服务; 1.2)RFS服务启动时,加载服务器端内存映像文件,映像文件中记录有服务器端文件系统的主版本号,还记录了服务器端所有需要网络同步的文件的基本资料; 1.3)RFS服务启动后,会维持一个线程,负责处理并维护服务器的内存映像文件和日常事务; 1.4)当检测到客户端的请求后,RFS服务通过SOA接口响应客户端的请求,并进行相应的服务,当服务结束后,自动关闭连接; 客户端处理流程如下: 2.1)启动任意一个 包含网络同步客户端模块的进程; 2.2)网络同步客户端模块在启动时,加载客户端内存映像文件,映像文件中记录了客户端文件系统主版本号,还记录了客户端所有需要网络同步的文件的基本资料; 2.3)客户端启动后,会维持一个线程,线程会每隔3秒检查自己的客户端文件系统主版本号和服务器上的服务器端文件系统主版本号是否一致,如果不一致,就会向服务器发起索要服务器端内存映像文件相对于自己变化内容的请求; 2.4)请求返回后,客户端会把返回内容和本地内存映像文件中信息做对比,如果不一致,则发起对不一致的文件的下载请求; 2.5)文件成功下载后,客户端会更新自己的内存映像文件,使之和服务器端一致;然后继续每隔3秒一次的轮询。
2.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述需要网络同步的文件的基本资料包括文件版本号、文件的MD5值、文件状态。
3.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述处理并维护服务器的内存映像文件和日常事务包括文件的网络删除、文件状态的改变、文件加锁解锁。
4.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述客户端的请求包括文件上传,文件下载,内存映像文件内容的下载。
5.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述服务器对客户端请求的服务过程包括:对于会改变文件内容或者文件状态的请求,RFS服务会首先把文件提交到SVN服务器,提交成功后会获取到SVN新生成的一个文件版本号,然后用这个版本号来更新自己的内存映像文件中的文件系统的主版本号和上传文件的版本号;由于主版本号更新,当客户端询问服务器,发现服务器上主版本号和自己的主版本号不一致,则触发客户端主动去下载刚才被上传的文件。
6.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述包含网络同步客户端模块的进程包括绘图包和调度员界面以及其它需要网络同步文件服务的进程。
7.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述客户端处理流程还包括以增量方式检查文件一致性,然后下载;所述线程还会每隔一个小时把自己的内存映像文件和服务器端的内存映像文件进行全局对比,检查是否有不一致的文件,然后下载;所述增量方式即只检查每次比对后新修改的内容。
8.根据权利要求1所述的基于SVN的文件自动网络同步方法,其特征在于:所述客户端还通过操作界面或者命令行方式进行文件网络保存,查看文件保存日志;下载指定文件的指定 版本,网络删除指定文件。
【文档编号】H04L29/06GK103595707SQ201310488067
【公开日】2014年2月19日 申请日期:2013年10月17日 优先权日:2013年10月17日
【发明者】朱广名, 陈宏辉, 胡铁斌, 邹剑, 吴锡武, 李文朝, 任永伟, 吴海勇, 刘仲尧, 孔海滨 申请人:广东电网公司茂名供电局
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1