一种基于SVN的文件自动网络同步方法技术

技术编号:9697053 阅读:106 留言:0更新日期:2014-02-21 05:43
本发明专利技术的目的在于提供一种基于SVN的文件自动网络同步方法,包括服务器端处理流程和客户端处理流程。本方法能够实现文件在局域网内任一节点提交后,所有节点在需要时自动网络同步的一种文件自动网络同步方案。本发明专利技术能够实现文件实时同步,从而能实现快速本地打开文件的目的。

【技术实现步骤摘要】
—种基于SVN的文件自动网络同步方法
本专利技术涉及电网系统文件数据传输
,具体来说是一种电力系统自动化领域的图形文件和配置文件的网络同步的方法。
技术介绍
SVN, (Subversion,即文件版本管理),是近年来崛起的文件版本管理软件,是cvs的接班人,是一个自由,开源的版本控制系统。在SVN管理下,文件和目录可以超越时空。Subversion可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。SOA(service-oriented architecture即面向服务架构),面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。本专利技术在SVN提供的文件版本管理服务的基础上,在服务器端和客户端都采用内存映像文件记录仓库中各个文件的版本号和文件MD5值,以方便服务器和客户端进行文件的MD5值对比,在服务器端应用多线程和SOA接口响应客户端的请求,在客户端应用多线程和任务池技术提交请求,从而实现为所有需要提供文件网络同步的节点提供快速文件同步的服务。
技术实现思路
本专利技术的目的在于提供一种基于SVN的文件自动网络同步方法,能够实现文件在局域网内任一节点提交后,所有节点在需要时自动网络同步的一种文件自动网络同步方案。本专利技术能够实现文件实时同步,从而能实现快速本地打开文件的目的。本专利技术的目的可通过以下的技术措施来实现:本专利技术是一种基于SVN的文件自动网络同步方法,包括服务器端处理流程和客户端处理流程,具体步骤如下:服务器端处理流程如下:1.服务器端守护RFS (resource file system,即资源文件管理系统)服务。2.RFS服务启动时,加载服务器端内存映像文件,映像文件中记录有服务器端文件系统的主版本号,还记录了服务器端所有需要网络同步的文件的基本资料,比如文件版本号,文件的MD5值,文件状态等。内存映像文件相当于一本书的目录,各个需要网络同步的文件相当于一本书的内容,当一本书的内容发生改变后,目录也会发生改变。3.RFS服务启动后,会维持一个线程,负责处理并维护服务器的内存映像文件和日常事务,比如文件的网络删除,文件状态的改变,文件加锁解锁等。4.当检测到客户端的请求后,RFS服务通过SOA接口响应客户端的请求,比如文件上传,文件下载,内存映像文件内容的下载等。当服务结束后,自动关闭连接。5.对于文件上传等会改变文件内容或者文件状态的请求,RFS服务会首先把文件提交到SVN服务器,提交成功后会获取到SVN新生成的一个文件版本号,然后用这个版本号来更新自己的内存映像文件中的文件系统的主版本号和上传文件的版本号。由于主版本号更新,当客户端询问服务器,发现服务器上主版本号和自己的主版本号不一致,就会触发客户端主动去下载刚才被上传的文件。客户端处理流程如下:1.启动任意一个包含网络同步客户端模块的进程,比如绘图包或者调度员界面。2.网络同步客户端模块在启动时,加载客户端内存映像文件,映像文件中记录了客户端文件系统主版本号,还记录了客户端所有需要网络同步的文件的基本资料,比如文件版本号,文件的MD5值,文件状态等。3.客户端启动后,会维持一个线程,线程会每隔3秒检查自己的客户端文件系统主版本号和服务器上的服务器端文件系统主版本号是否一致,如果不一致,就会向服务器发起索要服务器端内存映像文件相对于自己变化内容的请求,也即增量的方式的请求。4.请求返回后,客户端会把返回内容和本地内存映像文件中信息做对比,比较文件的版本号和文件的MD5值,如果不一致。就发起对不一致的文件的下载请求。5.文件成功下载后,客户端会更新自己的内存映像文件,使之和服务器端一致。然后继续每隔3秒一次的轮询。6.上面5个步骤是增量方式检查文件一致性,然后下载。线程还会每隔一个小时把自己的内存映像文件和服务器端的内存映像文件进行全局对比,检查是否有不一致的文件,然后下载。所述增量方式即只检查每次比对后新修改的内容。7.客户端还可通过操作界面或者命令行方式进行文件网络保存,查看文件保存日志。下载指定文件的指定版本,网络删除指定文件等操作。本专利技术对比现有技术具有如下优点:1.文件网络同步实现高度自动化。2.客户端节点不需要一直在线,当客户端节点在停机一端日子后重新开机,RFS客户端进程会自动把所有需要更新的文件自动更新一遍。3.以SVN服务为基础,可方便的导出文件的任意一个版本。4.采用S0A,使得网络交互服务接口和协议都很容易扩展。比如目前就采用了SOAP和THRIFT两种协议。5.服务器端对被下载的文件建立内存缓存,从而能快速提供所有节点对同一个文件的集中式下载。6.客户端节点不需要配置守护进程,文件会在需要查看时自动网络同步。7.客户端请求采用线程任务池,实现兼顾效率和减轻服务器负荷。8.模块化设计,可方便的嵌入有网络同步需求的应用程序中。【附图说明】图1是本专利技术的系统架构图。【具体实施方式】如图1所示,SVN服务器只需要一台。RFS服务器可以配置多台,一般情况下只需配置两台互为备用。主RFS服务器负责响应客户的请求,备RFS服务器作为热备用,维持自己的状态和主服务器一致,在主RFS服务器退出后,备RFS服务器立即升级为主RFS服务器,并立刻对客户端提供服务。对于文件网络同步的客户端节点,不需要有专门守护的进程用来维持文件的同步。因为当任意一个调用了 RFS客户端动态库的进程运行起来后,这个进程实际上就自动成为一个RFS客户端进程。当一个节点上有多个RFS客户端时,只有一个进程是主RFS客户端进程。主RFS客户端进程负责维护和服务器上文件的同步。假定当前有三台节点:Servicel,Clientl, Client2。Servicel 上运行了 SVN服务和RFS服务。在Clientl上有一个文件名为checkin, svg的文件需要网络同步。当Clientl对checkin, svg提交后,Client2需要实现自动同步。1.客户端提交文件Clientl在RFS客户端进程对checkin, svg做提交操作(即网络保存),那么首先Clientl的RFS客户端进程会对checkin, svg计算MD5值,然后用算出来的MD5值和客户端内存映像文件中checkin, svg的MD5值进行对比,如果不一致,表示文件有改动,那么就会通过SOA接口向Servicel上的RFS服务提交该文件。2.服务器端修改文件系统版本号Servicel接受请求,接收客户端发过来的checkin, svg文件,然后通过SVNAPI接口函数把checkin, svg文件提交到SVN得仓库里,文件成功提交后,SVN会把最新版本号加I后返回给RFS服务器。RFS服务器就会把这个返回的版本号作为自己的内存映像文件的主版本号,同时也会把这个版本号作为checkin, svg文件的版本号。3.其它客户端下载文件Client2上的RFS客户端进程,也包括Servicel的RFS客户端进程本文档来自技高网...

【技术保护点】
一种基于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秒一次的轮询。...

【技术特征摘要】
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值...

【专利技术属性】
技术研发人员:朱广名陈宏辉胡铁斌邹剑吴锡武李文朝任永伟吴海勇刘仲尧孔海滨
申请(专利权)人:广东电网公司茂名供电局
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1