一种并发网络文件读写方法及装置的制作方法

文档序号:7593008阅读:143来源:国知局
专利名称:一种并发网络文件读写方法及装置的制作方法
技术领域
本发明涉及电信领域中并发网络文件的服务,尤其涉及多种操作系统下的多媒体邮件系统的邮件存储与提取技术。
背景技术
目前,随着人们的科研、交流等各种数据的容量的爆炸式增长,对网络文件读写的需求也越来越高涨。例如,人们已经越来越多地希望通过多媒体内容的消息交互来实现可视、可听的互动交流。而多媒体邮件技术相对于普通的短消息技术来说对系统整体存储空间和性能的要求都提高了不少。
对于多媒体邮件服务及类似的大型电信商用业务,在业务功能完善的基础上,多平台支持、可靠性、扩展性和性能都是重要的考虑因素1.多平台支持系统应支持WINDOWS NT/2000及各种主流UNIX操作系统,以适应更广泛的应用场合和各种异构环境。
2.高可靠性作为成熟的商用系统,要求在单机应用时具有较高可靠性的基础上,实现全冗余设计,无单点故障。在系统设计中,服务器要求采用多处理器,双电源,双网卡,RAID0+1的本地存储方式等。网络要求使用多交换机、HUB等。存储系统要求双控制器、双电源、热挺插拔器件等。
而软件系统也应充分考虑到高可靠性的因素,做好充分的冗余考虑。
3.高可扩展性在系统中,在要求实现性能与容量的平滑扩展。当扩容时,只需要增加相应的模块,即可达到扩容目的。
4.高性能性能是考察整体系统的重要指标。一般来说,文件操作是系统整体设计中性能的重要瓶颈之一,解决好文件操作的性能优化,对系统整体的性能提升有很大的帮助。
在通用的存储形式中,DAS(直接连接存储)和SAN(存储区域网络)采用Block IO,难以均衡地将一个磁盘分区以文件系统的方式同时提供给多个服务器使用,达到多点冗余的特性,并且很难达到存储容量与性能单独增长。为保护用户投资,建议采用NAS(网络附加存储)作为主要的存储设备。NAS存在的不足是性能较DAS和SAN差。所以,使用这种存储方式时如何提高性能会是关注的方面。
目前所涉及到的系统中,一般来说,服务器的主机主要采用3种网络文件协议进行访问NAS存储设备,它们是SMB/CIFS,NFS,FTP。
在WINNT/2000操作系统中,Windows客户端使用SMB/CIFS协议进行文件共享操作,但这种协议的弱点为1、对UNIX平台的支持不足。SMB/CIFS至今没有得到大部分UNIX厂商的支持,并不是事实上的标准。
2、SMB/CIFS并不是标准的C/S架构,它更倾向于对等网的设计,所以支持大容量访问时,会出现负载并不十分均衡的情况。
在跨平台支持的文件访问方式中,FTP和NFS是两种最为常用的文件访问方式,它们提供良好的平台兼容性。
NFS协议是目前在UNIX系统中使用非常广泛的文件访问方式之一,允许一台主机上的程序透明地访问挂接的远程目录。这种协议(参见《Request ForComment 1094》)试图尽可能地保持无连接状态,这就意味着服务器不需要保存与客户端相连接的协议的状态信息,其优势在于实现简单,系统失效时很容易进行灾难恢复。客户端只要不停地向服务器发送请求直到服务器进行响应。而访问有状态的服务时的客户端则需要不断地查询服务器状态,当服务器失效和恢复时重新建立连接。
同时,NFS的性能也受到限制。当需要读写操作时,客户端需要先查询服务器的状态,当查询结果为正常时,才进行读写操作。这样,每次读写前的查询都是很大的开销。使用网络工具验证时,可以看出,NFS客户端发出的RPC调用有50%为lookup(查询)操作,这些网络文件操作浪费在查询连接状态上,使NFS协议效率难以提高。
FTP协议(参见《Request For Comment 0959》)是另一种文件操作方式。一般来说,可以在NAS存储器上建立FTP服务器,服务器以FTP客户端的方式进行文件操作。传统的FTP协议支持命令通道和数据通道。当FTP进行数据传输时,FTP服务器给出数据连接的端口,FTP的客户端再连接到FTP服务器指定的端口连接数据通道。这样FTP的客户端在传输每一个文件时,都要进行连接,断开连接等操作,这使得FTP的性能在传输多个小文件时,由于频繁地进行连接和断开连接,开销增大,性能不佳。

发明内容
本发明所要解决的技术问题是提供一种并发网络文件读写方法及装置,解决现有技术中网络文件读写技术开销大、效率低的问题。
为达到上述目的,本发明提供了一种并发网络文件读写方法,用于客户端模块和服务器模块之间的文件操作,其特点在于,包括如下步骤步骤一,启动客户端模块和服务器模块,在客户端模块和服务器模块之间建立并永久保持可随时提供服务的连接状态;步骤二,客户端模块向服务器模块发送文件服务请求;步骤三,服务器模块接收所述文件服务请求,进行文件操作,并向客户端模块发回响应;步骤四,客户端模块接收所述响应,进行文件操作,并转到步骤二。
上述的方法,其特点在于,所述步骤一进一步包括步骤a,启动文件的服务器模块;步骤b,启动客户端模块,并向服务器模块发送连接请求;步骤c,文件服务器模块接收到连接请求时,生成对应并服务于所述客户端模块的线程或进程,与客户端模块保持永久连接状态,随时等待客户端模块发送的文件服务请求。
上述的方法,其特点在于,所述步骤三中,所述服务器模块进一步通过与所述客户端模块相对应的线程或进程来接收所述文件服务请求,进行文件操作,并向客户端模块发回响应。
上述的方法,其特点在于,所述步骤c中,所述文件服务器模块上存在多个线程或进程,同时对多个客户端模块进行服务,并且所述客户端模块同时对应多个文件服务器模块上的线程或进程。
上述的方法,其特点在于,所述步骤c中,还对所述多个线程或进程间的运行粒度进行控制。
上述的方法,其特点在于,所述文件操作包括创建目录、删除目录、写文件、读文件、删除文件、查询文件。
上述的方法,其特点在于,在所述文件操作中,文件在传送前要进行压缩,接收后要进行解压缩或者直接存储。
上述的方法,其特点在于,在所述文件操作中,当文件长度较小时,将数个文件合并到一起封装在同一个包中传送。
为了实现上述目的,本发明还提供了一种并发网络文件读写装置,用于邮件服务器和网络附加存储器之间的文件操作,其特点在于,包括客户端模块和服务器模块;所述客户端模块,位于所述邮件服务器上,与所述服务器模块保持永久连接状态,接收来自所述邮件服务器的文件服务请求并将其组成命令帧后发送给所述服务器模块,并将所述服务器模块返回的结果返回给所述邮件服务器;所述服务器模块,位于所述网络附加存储器上,用于响应所述文件客户端模块发来的文件服务请求,根据所述文件服务请求提供相应的文件操作;每次文件操作都通过所述客户端模块和所述服务器模块之间保持的永久连接随时进行。
上述的装置,其特点在于,还包括一个负载均衡调度模块,连接所述邮件服务器,用于多个客户端模块对应多个服务器模块时的负载调度。
本发明的技术效果在于与现有技术相比,本发明所提供的方法永久地保持了客户端和服务端之间的连接状态,文件操作过程中不必建立连接和断开连接,有效地简化了流程,提高了文件操作效率。另外,本发明支持各种主流操作系统,包括WINDOWS NT/2000,SOLARIS,AIX等,而且实现简单,设置方便,可提供更大的稳定性和冗余特性。
实测表明,同等条件下,在多媒体邮件的系统的应用中,文件读写效率较NFS提高40%以上,较FTP提高15%以上。同时,由于直接采用共享库作为客户端接口,各种操作系统下可以方便地对远程的NAS存储器的文件系统进行操作,而不用考虑操作系统环境差异,轻松实现异构环境互连。
下面结合附图进一步详细说明本发明的具体实施例。


图1是本发明方法的流程图;图2是本发明装置的示意图;图3A是文件客户端模块向文件服务器模块发送的命令帧结构;图3B是文件客户端模块从文件服务器模块得到的响应帧结构;图4是本发明中实施例的文件服务器模块的操作流程;图5是本发明中实施例的文件客户端模块的操作流程。
具体实施例方式
请参阅图1,本发明方法的流程图;本发明分为文件客户端模块和文件服务器模块。文件客户模块和文件服务器模块之间不再使用SMB/CIFS、FTP、NFS等协议进行文件操作,而是直接采用本发明中所定义的TCP/IP上的文件操作接口,永久保持连接状态供每次文件操作使用,使文件客户端不必在每次文件操作时查询连接状态或者再进行建立连接、断开连接等操作,节省了网络操作的开销。其步骤如下步骤110在NAS存储器(可以在多种操作系统下)启动文件服务器模块,准备好进行文件操作服务;文件客户端(可以在多种操作系统下)模块启动,连接文件服务器模块;当文件服务器模块接收到连接请求时,就生成新的线程或者进程,并与客户端保持永久连接状态,并随时等待客户端发送文件服务请求;文件客户端在确认连接后,也会永久保持连接状态。
步骤120客户端模块向文件服务器模块利用已经保存的连接状态,直接发送文件服务请求,包括存储、读取、删除等操作;步骤130与此文件服务请求相对应的线程或者进程,接收到文件客户端请求后,完成相应的文件操作,并向文件客户端模块发回响应;文件服务器模块为多线程(进程)方式,并发地对多个客户端进行服务,线程(进程)间应进行运行粒度的控制,保证并发的效果;步骤140一个请求完毕后,双方仍保持连接状态,下一次请求再执行步骤120;进一步,本发明还可采用以下附加技术手段提高性能1、利用压缩技术一般来说,在服务器主机和NAS网络存储系统之间,网络会是影响性能的最重要的因素之一。在发送之前,先将所传输的包压缩,减少包的大小,在接收后再解压缩或者直接存储。这样可以更有效地利用网络带宽,尤其是在网络负荷很重的情况下。
2、实现文件合并当文件长度较小时,将数个文件合并到一起封装在同一个包中送出,进一步减少网络I/O。
参阅图2,是本发明的装置的示意图,也为本发明在多媒体邮件系统方面的一个应用实例。一台邮件服务器可以访问多个NAS存储设备,多个邮件服务器也可以访问同一台NAS存储设备,两者是多对多的访问结构,其中邮件服务器可以采用不同的操作系统。在整体系统的设计中,存储系统采用全冗余的架构。NAS系统可采用双机热备方式,向外提供存储服务。在系统中,可单独扩展邮件服务器(代表处理能力)和NAS存储设备的存储空间(代表系统容量),使系统的扩容更加平滑,而配置非常灵活。
FileServer是发明中采用的文件服务器模块,运行于NAS存储设备上,可以支持各种主流的操作系统,它的主要功能是响应FileClient文件客户端模块发来的文件服务请求,根据不同的请求提供相应的文件服务,如存储文件、提取文件、删除文件等。
FileClient文件客户端模块是发明中采用的文件服务接口软件模块,它接收来自邮件服务器的文件服务请求,将其组成命令帧,并发送给FileServer文件服务器模块,并将文件服务器返回的结果返回给邮件服务器。
还包括一个负载均衡调度模块分别连接多个邮件服务器,用于多个客户端模块对应多个服务器模块时的负载调度。
在图3A显示的文件客户端模块向文件服务器模块发送的命令帧结构中文件客户端模块接收到邮件服务器发来的文件操作请求后,将其翻译成如图3A所示的帧结构发送给文件服务器模块,此帧结构可以包括以下字段1)帧头,也就是起始标志帧的起始标志表示一帧的开始。当接收到帧的起始字节,程序将收到的数据放入接收缓冲区开始。利用帧的起始字节也可以鉴别坏帧。当”一帧”的数据不是以帧头为起始部分时,可以将其丢弃。帧的起始标记可采用多个字节,主要是防止起始标记与文件数据重复,造成帧的误识别。实际应用中只要保证帧的起始标记足够长,与文件数据重复概率达到指定的概率要求即可。
2)帧长度此处设置帧长度主要是为了程序能够识别一帧的结束。根据TCP/IP的原理,TCP的每1个包发出时,接收方为1次或者多次接收。这样一帧可以分几个包传输。利用此字节可以确定一帧是否接收到指定字节和帧是否接收完成。
3)命令字服务器系统要完成一定的服务,需要客户端指明需要什么样的服务。基本的服务包括创建目录,删除目录,写文件、读文件,删除文件,查询文件等,需要通过命令字作为区分。通过不同的命令字,服务器系统完成不同的操作。
4)参数(文件名、目录名或者其它)这一部分指定操作的对象,可以是文件名、目录名等,指明对哪个对象进行操作等。
5)文件内容(可选)这一部分为文件数据。便如,如果存储文件,需要给出文件数据。
在图3B中显示的文件客户端模块从文件服务器模块得到的响应帧结构中文件客户端模块得到文件服务器模块的响应的帧结构为1)命令字文件服务器端将发送来的命令字添回到响应中,以便于文件客户端用来核实所发给命令的对应关系。
2)响应结果用来表明此次操作是成功还是失败。
3)失败原因指明如果操作失败时,造成失败的具体原因,以便于诊断事故原因,定位问题。
4)数据长度(在读文件命令时给出)指明所读取的文件字节数大小。
5)数据(读文件时给出)指明所读取的文件内容等。
在图4显示的文件服务器模块的操作流程中文件服务器模块的操作流程为步骤301,文件服务器模块起动,初始化全局变量以及各种资源,并等待客户端的连接;步骤302,服务器模块在这一步判定是否有连接请求。这是阻塞方式,模块要等到有客户端进行连接再执行步骤303,如果无连接,在此步骤循环等待;步骤303,创建新的Socket和线程(或者进程)与客户端进行连接,并永久保持连接状态。新创建的线程(进程)等待客户端发送文件服务操作命令帧;此后的文件操作请求都不用再进行连接步骤,因为客户端、服务器都保持了连接状态。
步骤304,判断客户端是否发送了命令数据,如果无数据或者超时,继续执行本步骤;如果客户端发送了命令则转步骤305;步骤305,服务器模块从接收缓冲区内读取数据;步骤306,根据帧头信息和长度判断一个整帧是否接收完成,如果一帧接收完成转步骤307进行处理;如果接收的帧还不完整,则转步骤304继续接收;步骤307,处理命令帧数据进行文件操作,如存储、读取、删除等;步骤308,向文件客户端返回响应。
图5所显示的是本发明实施例的文件客户端模块的操作流程图。文件客户端模块的操作流程为步骤401,文件客户端模块初始化各种资源,开始连接服务器端模块;步骤402,判断是否连接文件服务器模块成功,如果没有连接成功定时再试图进行连接,直到连接成功。
步骤403,连接成功后,永久保持网络连接状态。此步骤与NFS协议相比,不用再查询与服务器的连接状态,并可以将每次请求的连接状态保持到下一次文件操作请求使用,与FTP相比,不用在每次文件操作请求时发起连接和断连接;步骤404,接收来自业务服务器的文件服务请求,如存储、提取、删除等操作,组成如图3A的形式的帧,发送至文件服务器模块;
步骤405,等待文件服务器模块发回的如图3B所示的响应帧,返回给业务服务器。此处为阻塞方式,文件客户端模块要等到文件服务器模块发回响应或者超时才能继续向下执行;步骤406,本模块向业务服务器返回命令操作成功或者失败等结果。
综上所述,本发明相对于现有的并行网络文件读写技术,通过保存客户端和服务器之间的网络连接状态,简化了网络中进行连接和断开连接的流程,提高了并发网络文件读写的效率,增强了网络文件读写的性能,其主要的优点还在于1.支持各种主流操作系统,包括WINDOWS NT/2000,SOLARIS,AIX等;2.实现简单,设置方便,可提供更大的稳定性和冗余特性。
权利要求
1.一种并发网络文件读写方法,用于客户端模块和服务器模块之间的文件操作,其特征在于,包括如下步骤步骤一,启动客户端模块和服务器模块,在客户端模块和服务器模块之间建立并永久保持可随时提供服务的连接状态;步骤二,客户端模块向服务器模块发送文件服务请求;步骤三,服务器模块接收所述文件服务请求,进行文件操作,并向客户端模块发回响应;步骤四,客户端模块接收所述响应,进行文件操作,并转到步骤二。
2.根据权利要求1所述的方法,其特征在于,所述步骤一进一步包括步骤a,启动文件的服务器模块;步骤b,启动客户端模块,并向服务器模块发送连接请求;步骤c,文件服务器模块接收到连接请求时,生成对应并服务于所述客户端模块的线程或进程,与客户端模块保持永久连接状态,随时等待客户端模块发送的文件服务请求。
3.根据权利要求2所述的方法,其特征在于,所述步骤三中,所述服务器模块进一步通过与所述客户端模块相对应的线程或进程来接收所述文件服务请求,进行文件操作,并向客户端模块发回响应。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤c中,所述文件服务器模块上存在多个线程或进程,同时对多个客户端模块进行服务,并且所述客户端模块同时对应多个文件服务器模块上的线程或进程。
5.根据权利要求4所述的方法,其特征在于,所述步骤c中,还对所述多个线程或进程间的运行粒度进行控制。
6.根据权利要求1、2、3或5所述的方法,其特征在于,所述文件操作包括创建目录、删除目录、写文件、读文件、删除文件和查询文件。
7.根据权利要求6所述的方法,其特征在于,在所述文件操作中,文件在传送前要进行压缩,接收后要进行解压缩或者直接存储。
8.根据权利要求6所述的方法,其特征在于,在所述文件操作中,当文件长度较小时,将数个文件合并到一起封装在同一个包中传送。
9.一种并发网络文件读写装置,用于邮件服务器和网络附加存储器之间的文件操作,其特征在于,包括客户端模块和服务器模块;所述客户端模块,位于所述邮件服务器上,与所述服务器模块保持永久连接状态,接收来自所述邮件服务器的文件服务请求并将其组成命令帧后发送给所述服务器模块,并将所述服务器模块返回的结果返回给所述邮件服务器;所述服务器模块,位于所述网络附加存储器上,用于响应所述文件客户端模块发来的文件服务请求,根据所述文件服务请求提供相应的文件操作;每次文件操作都通过所述客户端模块和所述服务器模块之间保持的永久连接随时进行。
10.根据权利要求1所述的装置,其特征在于,还包括一个负载均衡调度模块,连接所述邮件服务器,用于多个客户端模块对应多个服务器模块时的负载调度。
全文摘要
本发明公开了一种并发网络文件读写方法,用于客户端模块和服务器模块之间的文件操作,包括步骤一,启动客户端模块和服务器模块,在客户端模块和服务器模块之间建立并永久保持可随时提供服务的连接状态;步骤二,客户端模块向服务器模块发送文件服务请求;步骤三,服务器模块接收所述文件服务请求,进行文件操作,并向客户端模块发回响应;步骤四,客户端模块接收所述响应,进行文件操作,并转到步骤二。还公开了一种并发网络文件读写装置,用于邮件服务器和网络附加存储器之间的文件操作,包括有客户端模块和服务器模块。本发明克服了现有的网络文件读写技术开销大、效率低的缺陷。
文档编号H04L12/00GK1561029SQ20041004646
公开日2005年1月5日 申请日期2004年6月9日 优先权日2004年2月26日
发明者闫少华, 徐立宝 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1