分布式数据动态程序代理方法

文档序号:7628952阅读:117来源:国知局
专利名称:分布式数据动态程序代理方法
技术领域
本发明涉及一种分布式数据处理方法,特别是一种分布式数据动态程序代理方法。
背景技术
分布式数据系统采用的客户端/服务器端的架构,是一种多对多的网络关系,由于数据区块可能分散在不同的服务器上,而使用者存取的数据区块通常是通过网络远程的访问。
目前提升分布式数据系统性能的方式大多是禁用客户端的缓冲区内存,所有的操作都是在服务器端的动作加以完成,如图1的现有分布式数据处理系统架构示意图,例如存取一个数据区块100,需通过网络110将该数据区块100的内容读到客户端120,再通过客户端120进行操作,操作后再将结果保存到服务器端130,当数据区块100的信息被修改时,立即将修改后的结果传送给服务器端130,这样当另一个客户端140(使用者请求3)打开该数据区块100时,将从服务器端130上得到最新的结果。该方法由于没有采用客户端120、140的暂存技术(运用缓冲区内存150),所有的客户端120、140都不保存数据区块100的副本,不存在使用过期数据区块100的问题,但是所有的数据区块100操作必须发送给服务器端130,由服务器端130通过网络110得到信息,容易造成网络信息的超载且需花费大量的时间在网络传输和协议的处理上。
在传统的方式中,无法有效的解决分布式数据系统对于多个客户端同时使用数据区块的处理,只有禁用缓冲区内存提高性能来达到多使用者的共同操作,由于数据区块可以分散在不同的机器上,所以使用者存取的数据区块通常不在本地机器而是要通过网络远程地存取。但是网络通信的大部份时间是花费在协议处理上,相对来说,使用者真正需要的数据的传输只占极小的部份,所以减少网络传输是提高分布式数据系统性能的一个有效途径。

发明内容
本发明所要解决的技术问题在于提供一种分布式数据动态程序代理方法,。
为实现上述目的,本发明所提供的分布式数据动态程序代理方法,包括下列步骤当一客户端要求写入一服务器端的一数据区块时,对客户端的缓冲区内存的一控制模块上标示一锁标志位;客户端针对一局域网内发第一条广播消息,通知局域网内的其它机器,数据区块将被加锁;服务器端收到第一条广播消息后,将数据区块加锁;客户端在写入操作完成后,对客户端的缓冲区内存的控制模块上标示一修改标志位,以记录客户端的缓冲区内存中的内容已修改,并对客户端的缓冲区内存解锁;客户端针对局域网内发第二条广播消息,通知局域网内的其它机器,数据区块将被解锁;及服务器端收到第二条广播消息后,将数据区块解锁。
采用本发明,能够有效地减少网络传输,提高分布式数据系统的性能。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为现有技术中分布式数据处理系统架构示意图;图2为本发明的分布式数据处理系统架构示意图;图3为本发明的分布式数据动态程序代理的控制模块的标志地址示意图;及图4为本发明的分布式数据动态程序代理方法流程图。
其中,附图标记100数据区块110网络120客户端130服务器端140客户端150缓冲区内存160控制模块
310锁标志位320修改标志位步骤401当一客户端要求写入一服务器端的一数据区块时,对该客户端的缓冲区内存的一控制模块上标示一锁标志位步骤402该客户端针对一局域网内发第一条广播消息,通知该局域网内的其它机器,该数据区块将被加锁步骤403该服务器端收到该第一条广播消息后,将该数据区块加锁步骤404该客户端在写入操作完成后,对该客户端的缓冲区内存的该控制模块上标示一修改标志位,以记录该客户端的缓冲区内存中的内容已修改,并对该客户端的缓冲区内存解锁步骤405该客户端针对该局域网内发第二条广播消息,通知该局域网内的其它机器,该数据区块将被解锁步骤406该服务器端收到第二条广播消息后,将该数据区块解锁具体实施方式
有关本发明的特征与实作,兹配合图式作最佳实施例详细说明如下。
如图2所示,本发明提出了一种在缓冲区内存150的控制模块160配置标志位的手段,在修改操作(写入动作)时,是采用互斥操作的,但在其它时候,是共享使用的,允许多人同时对一个数据区块的操作,当写入动作时,是对客户端120、140的缓冲区内存150进行锁处理,可以使客户端120、140的缓冲区内存150发挥最大的作用,避免了在频繁的网络传输和网络协议的处理中浪费大量的时间和系统资源,提高了系统的性能。
本发明的具体特征在于针对客户端120、140的缓冲区内存150的控制模块160上加上一锁标志位310和一修改标志位320以记录缓冲区内存150中的内容是否变更,作为分布式数据动态程序代理的判断依据,参考图3说明本发明的分布式数据动态程序代理的控制模块的标志地址示意图,其中包括缓冲区块的索引、在缓冲区块的位置、存取计数、锁标志位310及修改标志位320等等。
锁标志位310有两种状态一种是加锁的状态、一种是普通的状态;修改标志位320也是有两种状态一种是有修改过的状态、一种是没有修改过的状态。
本发明所提的分布式数据动态程序代理方法,应用于客户端/服务器端的架构,包括下列步骤,如图4所示当一客户端要求写入一服务器端的一数据区块时,对客户端的缓冲区内存的一控制模块上标示一锁标志位(步骤401)。
客户端针对局域网内发第一条广播消息,通知局域网内的其它机器,该数据区块将被加锁(步骤402)。
服务器端收到第一条广播消息后,将该数据区块加锁(步骤403)。在加锁后,其它的客户端不能再针对服务器端的数据区块进行写入操作,必须等待锁的释放,但可以继续在各自的缓冲区内存中的内容进行读档。
客户端在写入操作完成后,对客户端的缓冲区内存的控制模块上标示一修改标志位,以记录缓冲区内存中的内容已修改,并对客户端的缓冲区内存解锁(步骤404)。
客户端针对局域网内发第二条广播消息,通知局域网内的其它机器,该数据区块将被解锁(步骤405)。
服务器端收到第二条广播消息后,将该数据区块解锁(步骤406)。
在客户端存取服务器端的数据区块时,如果数据区块没有加锁,且数据区块在客户端的缓冲区内存中有副本,可以直接从缓冲区内存中读取数据区块的内容;如果数据区块没有加锁,但数据区块没有在客户端的缓冲区内存中有副本,就需要到服务器端读取数据区块的内容;但如果数据区块加锁了,且数据区块在缓冲区内存中有副本,可以通过只读的方式读取数据区块在缓冲区内存中的内容。
本发明提出一实施例说明使用本发明的可行性,假设有3个服务器端,3个客户端的环境架构下(图未显示),其中1个客户端有3个程序同时对其中一服务器端的数据区块A操作(非写入操作),这时,这三个程序使用的是同一块缓冲区内存(位于客户端),此时,又有一个程序对给数据区块A进行操作,可以直接使用位于客户端缓冲区内存中的内容,不用从服务器端从新读取数据区块的内容,节省了系统从服务器端读取数据区块的时间,因此,本方案可提高分布式数据系统的性能,具体的写入和读取数据区块的方法步骤如下所述写入数据区块在客户端请求写入命令时,首先,检查该数据区块是否被加锁,如已加锁,则意味着有某一客户端正在修改该数据区块,即,本地的缓冲数据不是最新的,则从服务器上重新读取该数据区块;如没有加锁,则往局域网内发一条广播消息,通知局域网内的其它机器,该数据区块将被加锁,然后,将这个位于本地端的缓冲区内存的数据区块进行加锁。在服务器端收到锁消息后,判定该数据区块是否是本地端的数据区块,如不是,则不予处理;如是,则将该数据区块加锁。
当客户端修改完数据区块,将结果写入缓冲区内存时,通过网络将数据区块存入服务器端,然后将本地端的缓冲区内存的数据区块解锁。当数据区块修改完毕,服务器端将修改的结果存入服务器端的缓冲区内存的数据区块,往局域网内发一条广播消息,通知局域网内的其它机器,该服务器端的缓冲区内存的数据区块已经修改完毕,并将本地的数据区块解锁。
其它客户端收到广播信息后的处理,收到广播信息后,先检查本地端的缓冲区内存的控制模块,看是否有这个数据区块的缓冲区内存,如没有,则不处理;如有,再检查消息的种类(看是加锁还是解锁信息),如是解锁信息,则去除锁标志位,加修改完成标志位;如是加锁信息,则再检查当前是否有人在使这个数据区块,如没有,就将该缓冲区内存释放;如有,对该数据区块加锁。
读取数据区块在客户端读取服务器端的缓冲区内存的数据区块时,首先,检查本地端是否有这个数据区块的缓冲区内存,如没有,则通过服务器来读取该数据区块;再检查锁标志位,如有且数据区块加了锁标志位,以只读的方式从缓冲区内存读取数据区块;如有但数据区块没加锁标志位,最后判断数据区块是否有修改标志位,如有修改标志位,则从服务器端重新读取该数据区块;如没有修改标志位,可直接从缓冲区内存读取数据区块。
从服务器端读取数据区块,先判断是否有锁标志位,如有,则挂起等待;如没有,则读取数据区块发送给客户端。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种分布式数据动态程序代理方法,应用于客户端/服务器端的架构,其特征在于,该方法包括下列步骤当一客户端要求写入一服务器端的一数据区块时,对该客户端的缓冲区内存的一控制模块上标示一锁标志位;该客户端针对一局域网内发第一条广播消息,通知该局域网内的其它机器,该数据区块将被加锁;该服务器端收到该第一条广播消息后,将该数据区块加锁;该客户端在写入操作完成后,对该客户端的缓冲区内存的该控制模块上标示一修改标志位,以记录该客户端的缓冲区内存中的内容已修改,并对该客户端的缓冲区内存解锁;该客户端针对该局域网内发第二条广播消息,通知该局域网内的其它机器,该数据区块将被解锁;及该服务器端收到该第二条广播消息后,将该数据区块解锁。
2.根据权利要求1所述的分布式数据动态程序代理方法,其特征在于,还包含另一客户端存取该服务器端的该数据区块时,如果该数据区块没有加锁,且该数据区块在该客户端的缓冲区内存中有副本,可以直接从该缓冲区内存中读取数据区块的内容。
3.根据权利要求1所述的分布式数据动态程序代理方法,其特征在于,还包含另一客户端存取该服务器端的该数据区块时,如果该数据区块没有加锁,但该数据区块没有在该客户端的缓冲区内存中有副本,就从该服务器端读取该数据区块的内容。
4.根据权利要求1所述的分布式数据动态程序代理方法,其特征在于,还包含另一客户端存取该服务器端的该数据区块时,如果该数据区块加锁,且该数据区块在该缓冲区内存中有副本,则通过只读的方式读取该数据区块在该缓冲区内存中的内容。
5.根据权利要求1所述的分布式数据动态程序代理方法,其特征在于,该机器是指该客户端/服务器端架构的所有机器。
全文摘要
本发明公开一种分布式数据动态程序代理方法,其包括当一客户端要求写入一服务器端之一数据区块时,对客户端的缓冲区内存的一控制模块上标示一锁标志位;客户端针对一局域网内发第一条广播消息,通知局域网内的其它机器,数据区块将被加锁;服务器端收到第一条广播消息后,将数据区块加锁;客户端在写入操作完成后,对客户端的缓冲区内存的控制模块上标示一修改标志位,以记录客户端的缓冲区内存中的内容已修改,并对客户端的缓冲区内存解锁;客户端针对局域网内发第二条广播消息,通知局域网内的其它机器,数据区块将被解锁;及服务器端收到第二条广播消息后,将数据区块解锁,采用本发明能够有效地减少网络传输,提高分布式数据系统的性能。
文档编号H04L29/06GK1980236SQ200510130419
公开日2007年6月13日 申请日期2005年12月9日 优先权日2005年12月9日
发明者李晟, 陈玄同, 刘文涵 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1