工程勘察数据计算机协同处理方法及系统转让专利

申请号 : CN201310090227.5

文献号 : CN103150207B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴叔刚肖庆华

申请人 : 重庆南地科技开发有限公司

摘要 :

本发明实施例公开了工程勘察数据计算机协同处理方法及系统,以实现协同作业。在本发明实施例中,用户在编辑时,先获取欲编辑的根节点或欲编辑的子节点(目标)的数据状态,在其处于无用户使用的空闲状态时,所述普通客户机通知所述协同主机令目标的数据状态转换为被用户编辑的占据状态以锁定目标,再对目标进行编辑。这样,其他用户如欲对该目标进行编辑时,将因目标被锁定而无法对其进行编辑操作。而在编辑完成后,普通客户机又通知协同主机释放目标,重置目标对应的数据状态。这样,其他的用户就可对该目标进行编辑了。这样,在实现多用户处理一个数据节点的不同子节点的同时,还可避免多用户共同处理一个数据节点的不同子节点时产生的冲突。

权利要求 :

1.一种工程勘察数据计算机协同处理方法,其特征在于,基于协同网络,所述协同网络包括协同主机以及至少两个普通客户机;所述协同主机中存储有工程勘察数据,所述工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点;任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态;所述N为整数;其中,在任一数据节点中,根节点的数据状态能够由根节点状态码标示,子节点的数据状态能够由子节点状态码标示,根节点状态码和子节点状态码构成数据节点的状态码;所述状态码能够被普通客户机用来确定自己是否有编辑许可;

所述方法包括:

所述普通客户机将欲编辑的根节点或欲编辑的子节点作为目标,获取所述目标的数据状态;

在所述目标处于无用户使用的空闲状态时,所述普通客户机通知所述协同主机执行第一处理,并对所述目标进行编辑;

所述普通客户机在编辑完成后,通知所述协同主机执行第二处理;

所述第一处理至少包括:至少将所述目标的数据状态转换为被用户编辑的占据状态,以锁定所述目标;

所述第二处理至少包括:释放所述目标,至少重置所述目标对应的数据状态。

2.如权利要求1所述的方法,其特征在于,所述对所述目标进行编辑包括:从所述协同主机处获取所述目标的原始记录,对所述原始记录进行编辑,得到编辑后的记录并缓存。

3.如权利要求2所述的方法,其特征在于,还包括:

所述普通客户机至少将缓存的、编辑后的记录上传至所述协同主机;

所述第二处理还包括:在释放所述目标前,所述协同主机利用所述编辑后的记录针对所述目标进行数据同步。

4.如权利要求3所述的方法,其特征在于:

第一处理还包括记录所述普通客户机的用户ID;

所述普通客户机至少将缓存的、编辑后的记录上传至所述协同主机包括:所述普通客户机至少将缓存的、编辑后的记录,以及自身的用户ID上传至所述协同主机;

所述协同主机利用所述编辑后的记录针对所述目标进行数据同步包括:当所述普通客户机上传的用户ID与所述协同主机所记录的用户ID一致时,所述协同主机利用所述编辑后的记录针对所述目标进行数据同步。

5.如权利要求4所述的方法,其特征在于,所述方法还包括:所述普通客户机新增数据节点。

6.如权利要求5所述的方法,其特征在于:

当将欲编辑的根节点作为目标时,对所述目标进行的编辑包括删除和新增子节点;

当将欲编辑的子节点作为目标时,对所述目标进行的编辑包括删除和修改。

7.如权利要求6所述的方法,其特征在于:

在任一数据节点中,根节点的数据状态由根节点状态码标示,子节点的数据状态由子节点状态码标示,根节点状态码和子节点状态码构成数据节点的状态码;

所述根节点状态码的取值包括第一状态值、第二状态值、第三状态值,所述第一状态值用于表征无用户使用的空闲状态,所述第二状态值用于表征被用户编辑的占据状态,所述第三状态值用于表征不能被访问的禁止访问状态,所述第一状态值、第二状态值和第三状态值互不相等;

所述子节点状态码的取值包括第四状态值和第五状态值,所述第四状态值用于表征无用户使用的空闲状态,所述第五状态值用于表征被用户编辑的的占据状态,所述第四状态值和第五状态值不相等。

8.如权利要求7所述的方法,其特征在于,

当将欲编辑的子节点作为目标时,所述至少将所述目标的数据状态转换为被用户编辑的占据状态包括:所述协同主机将所述目标对应的子节点状态码取值置为第五状态值;

所述至少重置所述目标对应的数据状态包括:重置所述目标对应的子节点状态码。

9.如权利要求7所述的方法,其特征在于,

所述新增数据节点包括:

所述普通客户机向所述协同主机发送新建请求,所述新建请求至少包括新增的数据节点的名称,以便所述协同主机执行第三处理;

所述第三处理至少包括:将所述新建请求中的数据节点作为目标节点,检索是否存在与所述目标节点名称相同的数据节点,得到检索结果;

在所述检索结果表明存在与所述目标节点名称相同的数据节点时,给出重复提示;

在所述检索结果表明不存在与所述目标节点名称相同的数据节点时,根据所述新建请求创建数据节点,并重置所创建的数据节点对应的状态码。

10.一种工程勘察数据计算机协同系统,其特征在于,包括协同主机以及至少两个普通客户机;所述协同主机中存储有工程勘察数据,所述工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点;任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态;所述N为整数;其中,在任一数据节点中,根节点的数据状态能够由根节点状态码标示,子节点的数据状态能够由子节点状态码标示,根节点状态码和子节点状态码构成数据节点的状态码;所述状态码能够被普通客户机用来确定自己是否有编辑许可;

所述普通客户机用于,将欲编辑的根节点或欲编辑的子节点作为目标,获取所述目标的数据状态;在所述目标处于无用户使用的空闲状态时,通知所述协同主机执行第一处理,并对所述目标进行编辑,在编辑完成后,通知所述协同主机执行第二处理;

所述第一处理至少包括:至少将所述目标的数据状态转换为被用户编辑的占据状态,以锁定所述目标;

所述第二处理至少包括:释放所述目标,至少重置所述目标对应的数据状态。

说明书 :

工程勘察数据计算机协同处理方法及系统

技术领域

[0001] 本发明涉及数据处理技术领域,更具体地说,涉及工程勘察数据计算机协同处理方法及系统。

背景技术

[0002] 工程勘察数据一般包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点。现有的针对大型工程勘察项目的工程勘察数据处理方法,并不支持多用户(多普通客户机)编辑同一数据节点的不同子节点,只能由一个用户单机完成。但实际上,因此,如何实现多用户处理一个数据节点的不同子节点,以达到协同作业的目的,是目前急需要解决的问题。

发明内容

[0003] 有鉴于此,本发明实施例的目的在于提供工程勘察数据计算机协同处理方法及系统,以解决上述问题。
[0004] 为实现上述目的,本发明实施例提供如下技术方案:
[0005] 根据本发明实施例的第一方面,提供一种工程勘察数据计算机协同处理方法,基于协同网络,所述协同网络包括协同主机以及至少两个普通客户机;所述协同主机中存储有工程勘察数据,所述工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点;任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态;所述N为整数;
[0006] 所述方法包括:
[0007] 所述普通客户机将欲编辑的根节点或欲编辑的子节点作为目标,获取所述目标的数据状态;
[0008] 在所述目标处于无用户使用的空闲状态时,所述普通客户机通知所述协同主机执行第一处理,并对所述目标进行编辑;
[0009] 所述普通客户机在编辑完成后,通知所述协同主机执行第二处理;
[0010] 所述第一处理至少包括:至少将所述目标的数据状态转换为被用户编辑的占据状态,以锁定所述目标;
[0011] 所述第二处理至少包括:释放所述目标,至少重置所述目标对应的数据状态。
[0012] 根据本发明实施例的第二方面,提供一种工程勘察数据计算机协同系统,其特征在于,包括协同主机以及至少两个普通客户机;所述协同主机中存储有工程勘察数据,所述工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点;任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态;所述N为整数;
[0013] 所述普通客户机用于,将欲编辑的根节点或欲编辑的子节点作为目标,获取所述目标的数据状态;在所述目标处于无用户使用的空闲状态时,通知所述协同主机执行第一处理,并对所述目标进行编辑,在编辑完成后,通知所述协同主机执行第二处理;
[0014] 所述第一处理至少包括:至少将所述目标的数据状态转换为被用户编辑的占据状态,以锁定所述目标;
[0015] 所述第二处理至少包括:释放所述目标,至少重置所述目标对应的数据状态。
[0016] 可见,在本发明实施例中,用户在编辑时,先获取欲编辑的根节点或欲编辑的子节点(目标)的数据状态,在其处于无用户使用的空闲状态时,所述普通客户机通知所述协同主机令目标的数据状态转换为被用户编辑的占据状态以锁定目标,再对目标进行编辑。这样,其他用户如欲对该目标进行编辑时,将因目标被锁定而无法对其进行编辑操作。而在编辑完成后,普通客户机又通知协同主机释放目标,重置目标对应的数据状态。这样,其他的用户就可对该目标进行编辑了。这样,在实现多用户处理一个数据节点的不同子节点的同时,还可避免多用户共同处理一个数据节点的不同子节点时产生的冲突。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得的附图。
[0018] 图1为本发明实施例提供的工程勘察数据计算机协同处理方法流程图;
[0019] 图2为本发明实施例提供的状态码结构示意图;
[0020] 图3为本发明实施例提供的删除或修改子节点流程图;
[0021] 图4为本发明实施例提供的新建数据节点流程图;
[0022] 图5为本发明实施例提供的协同主机设置界面示意图;
[0023] 图6为本发明实施例提供的主机列表示意图;
[0024] 图7为本发明实施例提供的用户验证窗体示意图;
[0025] 图8为本发明实施例提供的工程勘察数据计算机协同处理方法的总体原理示意图;
[0026] 图9为本发明实施例提供的工程勘察数据计算机协同系统结构示意图。

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有实施例,都属于本发明保护的范围。
[0028] 工程勘察数据一般包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点。现有的针对大型工程勘察项目的工程勘察数据处理方法,并不支持多用户(多普通客户机)编辑同一数据节点的不同子节点,只能由一个用户单机完成。但实际上,因此,如何实现多用户处理一个数据节点的不同子节点,以达到协同作业的目的,是目前急需要解决的问题。
[0029] 有鉴于此,本发明实施例提供了工程勘察数据计算机协同处理方法和系统,以解决上述问题。
[0030] 上述协同处理方法基于协同网络。其中,协同网络包括协同主机以及至少两个普通客户机。
[0031] 协同主机中存储有工程勘察数据,上述工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点(N为整数)。并且,任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态。
[0032] 参见图1,上述协同处理方法包括:
[0033] S1、普通客户机将欲编辑的根节点或欲编辑的子节点作为目标,获取目标的数据状态。
[0034] S2、在目标处于无用户使用的空闲状态时,普通客户机通知协同主机执行第一处理,并对目标进行编辑。
[0035] 上述第一处理至少包括:至少将目标的数据状态转换为被用户编辑的占据状态,以锁定目标。
[0036] S3、普通客户机在编辑完成后,通知协同主机执行第二处理。
[0037] 而上述第二处理则至少包括:释放目标,至少重置目标对应的数据状态。
[0038] 可见,在本发明实施例中,用户在编辑时,先获取欲编辑的根节点或欲编辑的子节点(目标)的数据状态,在其处于无用户使用的空闲状态时,普通客户机通知协同主机令目标的数据状态转换为被用户编辑的占据状态以锁定目标,再对目标进行编辑。这样,其他用户如欲对该目标进行编辑时,将因目标被锁定而无法对其进行编辑操作。而在编辑完成后,普通客户机又通知协同主机释放目标,重置目标对应的数据状态。这样,其他的用户就可对该目标进行编辑了。这样,在实现多用户处理一个数据节点的不同子节点的同时,还可避免多用户共同处理一个数据节点的不同子节点时产生冲突。
[0039] 在本发明其他实施例中,为表示方便,在任一上述数据节点中,根节点的数据状态可由根节点状态码标示,而子节点的数据状态可由子节点状态码标示,根节点状态码和子节点状态码构成数据节点的状态码,其中:
[0040] 根节点状态码的取值包括第一状态值、第二状态值、第三状态值,第一状态值用于表征无用户使用的空闲状态,第二状态值用于表征被用户编辑的占据状态,第三状态值用于表征不能被访问的禁止访问状态,第一状态值、第二状态值和第三状态值互不相等;
[0041] 子节点状态码的取值包括第四状态值和第五状态值,第四状态值用于表征无用户使用的空闲状态,第五状态值用于表征被用户编辑的的占据状态,第四状态值和第五状态值不相等。
[0042] 进一步的举例来讲,以钻孔工程勘察数据节点为例,其可包括钻孔根节点和多个子节点,其中,子节点类型可包括:钻孔基本数据、钻孔定位数据、地层数据、取样数据和回次数据等。
[0043] 钻孔工程勘察数据节点所对应的状态码结构可参见图2,其中,第一位状态码为根节点状态码,其余位为子节点状态码,数据节点状态码的位数由子节点的数量确定。状态码的取值可见下表1和2。
[0044]
[0045] 表1钻孔根节点状态码
[0046]
[0047]
[0048] 表2子节点状态码
[0049] 举例说明:钻孔工程勘察数据节点所对应的状态码为:“210110”,表示该数据节点正有被用户编辑(对应2),其中,钻孔基本数据不能编辑(对应1)、钻孔定位数据可编辑(对应0),地层数据不能编辑(对应1)、取样数据不能编辑(对应1)、回次数据可以编辑(对应0)。因此,普通客户机可通过获取状态码来确定自己是否有编辑许可。为便于管理,上述状态码可存储于状态池中。状态池具体可为协同主机内在中储存状态码的区域。
[0050] 在本发明其他实施例中,在上述所有实施例中,当将欲编辑的子节点作为目标时,对目标进行的编辑包括删除和修改;而当将欲编辑的根节点作为目标时,对目标进行的编辑包括删除和新增子节点。
[0051] 相应的,当将欲编辑的子节点作为目标时,上述所有实施例中的“至少将目标的数据状态转换为被用户编辑的占据状态”可包括:协同主机至少将目标对应的子节点状态码取值置为第五状态值(也即置1);而上述所有实施例中的“至少重置目标对应的数据状态”可包括:重置目标对应的子节点状态码。
[0052] 需要说明的是,在将目标对应的子节点状态码取值置为第五状态值时,如目标所属根节点对应的根节点状态码取值为0,则将根节点状态取值置为1,否则,保持根节点状态码的取值不变。类似的,在重置目标对应的子节点状态码时,如此时,目标所对应的根节点旗下的所有子节点均处于空闲状态,则将根节点状态码取值重置为0,否则,保持根节点状态码的取值不变。
[0053] 更具体的,普通客户机如欲删除或修改子节点,其过程如下:
[0054] 普通客户机向协同主机发出访问申请,访问申请至少包括数据节点的名称;
[0055] 协同主机根据数据节点的名称,从状态池查询该数据节点对应的状态码并反馈给普通客户机;
[0056] 普通客户机根据状态码判断欲编辑的子节点是否可编辑。如可编辑,则进入编辑状态,通知协同主机将欲编辑的子节点对应的子节点状态码置为1(锁定子节点),并记录普通客户机对应的当前用户ID。需要说明的是,记录用户ID的用义是令除该用户ID外的其他用户ID(即其他普通客户机)均不可编辑该子节点。
[0057] 在完成编辑后,普通客户机通知协同主机释放子节点,将其子节点状态码取值重新置为0。
[0058] 更具体的过程,请参见图3,在此不作赘述。
[0059] 在本发明其他实施例中,当将欲编辑的根节点作为目标时,上述所有实施例中的“至少将目标的数据状态转换为被用户编辑的占据状态”可包括:协同主机将上述目标对应的根节点状态码取值置为第二状态值(也即置2);而上述所有实施例中的“至少重置目标对应的数据状态”可包括:重置目标对应的根节点状态码。
[0060] 前已述及,当将欲编辑的根节点作为目标时,对目标进行的编辑包括删除和新增子节点。
[0061] 更具体的,普通客户机如欲删除根节点,其过程如下:
[0062] 普通客户机向协同主机发出访问申请,访问申请至少包括数据节点的名称;
[0063] 协同主机根据数据节点的名称,从状态池查询该数据节点对应的状态码并反馈给普通客户机;
[0064] 普通客户机根据状态码判断欲编辑的根节点是否可编辑。如可编辑,则进入编辑状态,通知协同主机将欲编辑的根节点对应的根节点状态码置为2(锁定根节点),并记录普通客户机对应的当前用户ID。需要说明的是,记录用户ID的用义是令除该用户ID外的其他用户ID(即其他普通客户机)均不可编辑该根节点。
[0065] 在完成编辑后,普通客户机通知协同主机释放根节点,将其根节点状态码取值重新置为1。
[0066] 而普通客户机如欲新增子节点,其过程如下:
[0067] 由普通客户机在数据编辑界面新增子节点,发出新建请求。该新建请求包括数据节点的名称,以及新增子节点的名称。
[0068] 协同主机根据数据节点的名称,在状态池中检索数据节点状态码,如检索到重复的子节点,给出重复提示(在得到重复提示后,用户普通客户机界面只能点确定,退出新增操作);如无重复,允许普通客户机创建子节点。
[0069] 创建子节点后,协同主机重置子节点的状态码(此处的重置,指的是建立子节点状态码,并将创建的子节点状态码的取值置为无用户使用的空闲状态),存入状态池。
[0070] 在本发明其他实施例中,上述所有实施例还可包括:普通客户机新增数据节点。
[0071] 更具体的,上述新增数据节点可包括:
[0072] 普通客户机向协同主机发送新建请求,新建请求至少包括新增的数据节点的名称,以便协同主机执行第三处理。
[0073] 上述第三处理至少可包括:将新建请求中的数据节点作为目标节点,检索是否存在与目标节点名称相同的数据节点,得到检索结果;
[0074] 在检索结果表明存在与目标节点名称相同的数据节点时,给出重复提示;
[0075] 在检索结果表明不存在与目标节点名称相同的数据节点时,根据新建请求创建数据节点,并重置所创建的数据节点对应的状态码。
[0076] 需要说明的是,在新建数据节点时,可只新建根节点,也可根节点连同子节点一同新建。在将根节点连同子节点一同新建时,上述新建请求中还可包括子节点的名称,乃至子节点数据字段的具体内容。
[0077] 更具体的,普通客户机如欲新建数据节点,其过程如下:
[0078] 由普通客户机在数据编辑界面新增数据节点,发出新建请求。
[0079] 协同主机根据新增数据节点的名称,在状态池中检索数据节点状态码,如有重复,给出重复提示(在得到重复提示后,用户普通客户机界面只能点确定,退出新增操作);如无重复,允许普通客户机创建数据节点。
[0080] 创建数据节点后,协同主机重置数据节点的状态码(此处的重置,指的是建立数据节点的状态码,并将创建的状态码的每一位取值均置为无用户使用的空闲状态),存入状态池。
[0081] 随后普通客户机还可对新增的数据节点中的子节点进行访问,判断子节点是否可编辑,如果可编辑,进入编辑状态,具体可参见前述删除或修改子节点的记载。更具体的过程,请参见图4,在此不作赘述。
[0082] 考虑到安全问题,在本发明其他实施例中,上述所有实施例中的“对目标进行编辑”可包括:
[0083] 从协同主机处获取目标的原始记录,对原始记录进行编辑,得到编辑后的记录并缓存。
[0084] 进一步的,当将欲编辑的子节点作为目标时,上述“获取目标的原始记录,对原始记录进行编辑”具体可包括:获取子节点的原始记录,对原始记录进行删除或修改。而当将欲编辑的根节点作为目标时,上述“获取目标的原始记录,对原始记录进行编辑”具体可包括:获取根节点的原始记录,对原始记录进行删除或新增子节点。
[0085] 针对记录缓存,上述所有实施例中的工程勘察数据计算机协同处理方法还可包括如下步骤:
[0086] 普通客户机至少将缓存的、编辑后的记录上传至协同主机。
[0087] 而第二处理还可包括:在释放目标前,协同主机利用编辑后的记录针对目标进行数据同步。
[0088] 也即,在本实施例中,是先在普通客户机上对目标的原始记录进行编辑,得到编辑后的记录后,将其缓存在普通客户机上。然后,普通客户机至少将缓存的、编辑后的记录上传至协同主机。协同主机再利用编辑后的记录针对目标进行数据同步,随后,协同主机再释放目标,(至少)重置目标对应的数据状态。
[0089] 而为了防止因意外事件导致数据丢失,在具体实施时,普通客户机对目标的原始记录进行编辑,可在内存中创建一个DataSet数据表集合,用于临时保存用户输入的数据(编辑后的记录)。可针对用户录入的不同分类的数据节点或子节点创建独立的DataTable数据表。
[0090] 同时,普通客户机将用户输入的数据(编辑后的记录)保存在本地临时数据库文件中,本地临时数据库文件是在硬盘上的一个独立的文件。这样,在上传编辑后记录时,如果网络连接出现异常,普通客户机无法将编辑后记录上传至协同主机时,可依然保持录入的数据缓存及固化到本地临时数据库中,等待下一次数据同步时一并发送到协同主机。另外,如果计算机突然掉电,在上电后,由于用户输入的数据(编辑后的记录)保存在本地临时数据库文件中,也不会造成数据丢失。
[0091] 更具体的,用户输入的数据是以实例对象的方式存在,在上传时,需要从内存中提取用户输入的数据(也即实例对象),将该实例对象进行序列化,得到序列化数据,然后上传。协同主机在接收到序列化数据时,还需要对其反序列化,将其重新还原成实例对象。
[0092] 在本发明其他实施例中,上述所有实施例中的第一处理还可包括记录普通客户机的用户ID。也即,协同主机在普通客户机编辑目标时,除将目标的数据状态转换为被用户编辑的占据状态(锁定目标)外,还记录普通客户机的用户ID。
[0093] 基于此,普通客户机至少将缓存的、编辑后的记录上传至协同主机可具体包括:普通客户机将缓存的、编辑后的记录,以及自身的用户ID上传至协同主机。
[0094] 相应的,“协同主机利用编辑后的记录针对目标进行数据同步”可包括:
[0095] 当普通客户机上传的用户ID与协同主机所记录的用户ID一致时,协同主机利用编辑后的记录针对目标进行数据同步。
[0096] 当进行同步处理未结束时,目标或目标所属根节点会暂时处于禁止状态(也即,将根节点状态码的取值置为3),这主要是为了解决大数据量同步处理可能有延迟而导致多用户写入冲突的问题。
[0097] 进一步的,上述数据同步可包括进行数据验证,数据验证的目的是验证数据是否完整,数据类型是否正确,是否满足逻辑性验证等。通过验证的、编辑后的记录才可用于取代原始记录,存入数据库。
[0098] 更具体的数据同步过程如下:
[0099] 用户在普通客户机上录入一批数据完成后,点击同步按钮,软件从数据缓存中提取用户录入的数据,并序列化到网络数据流中,使用Socket通信技术发送到协同主机;协同主机监听并接收到数据后,对序列化的数据反序列化,同时进行数据验证,将验证通过的数据写入数据库中,然后调用Socket返回数据处理结果。如此即完成一次普通客户机与协同主机的数据同步。
[0100] 如果网络连接出现异常,普通客户机数据无法同步到协同主机(Socket尝试连接协同主机时会返回一个异常,软件将捕捉该异常),则依然保持录入的数据缓存及固化到本地临时数据库中,等待下一次数据同步时一并发送到协同主机。
[0101] 在介绍完数据同步后,本文下面将对协同网络如何组建进行介绍。协同网络的组建包括两大步骤,一大步骤是协同主机的产生,另一大步骤是普通客户机与协同主机之间的授权。
[0102] 下面,先介绍如何产生协同主机。任一客户机都可升级为协同主机。在客户机中都装置有工程勘察数据计算机协同处理软件(以下简称软件),普通客户机进入协同主机设置界面(请参见图5),软件将自动获取本机在局域网中的IP地址,并写入默认设置端口号,端口号可进行调整;用户填写工程勘察项目的名称后(每一工程勘察项目分配有唯一的标识)点击确定按钮,该普通客户机即升级为针对某一工程勘察项目的协同主机,可对局域网中加入同一项目的普通客户机进行协同管理。需要注意的是,同一客户机可做为多个工程勘察项目的协同主机。
[0103] 协同主机可为用户分配用户名和密码,用于后面的授权。
[0104] 在介绍完如何产生协同主机后,下面将介绍普通客户机与协同主机之间的授权。
[0105] 普通客户机可使用两种方式检索局域网中的协同主机IP,以找到协同主机:
[0106] 一,搜索全部IP:
[0107] 普通客户机通过Socket通信协议侦测局域网中所有的计算机,分别向这些计算机发送请求,当接收请求的计算机是协同主机时,会返回协同主机的对应的工程勘察项目名称及IP;普通客户机收到协同主机的返回信息后显示工程勘察项目名称到主机列表中(请参见图6,图6示出了四个工程勘察项目名称)。
[0108] 二,搜索指定IP:
[0109] 普通客户机通过指定的IP和端口号(也即前述协同主机的默认设置端口号)向计算机发送请求,如果该计算机是协同主机,则会返回协同主机的对应的工程勘察项目名称及IP(如不是协同主机,则不响应),普通客户机收到协同主机的返回信息后显示工程勘察项目名称到主机列表中。需要注意的是,在设置完协同主机后,可通过打电话、发邮件等方式,通知用户协同主机的指定的IP和端口号。
[0110] 在搜索完成后,用户通过普通客户机,选择主机列表中的项目名称,点击加入按钮,此时软件将弹出用户验证窗体(如图7)。
[0111] 用户填写协同主机之前分配的用户名和密码,点击登录按钮,普通客户机将发送用户验证信息(用户验证信息包括用户名和密码)到选择的协同主机。
[0112] 协同主机将接收到的用户名和密码与自身保存的用户名和密码进行匹配,如匹配成功,则通过验证,协同主机记录普通客户机的IP,建立普通客户机的IP与用户名的关系,以及建立普通客户机的IP与项目标识的关系,并向普通客户机发送授权信息和项目标识。普通客户机此时可与协同主机进行数据协同管理(也即前述的编辑、上传、同步、第一处理、第二处理等)。
[0113] 当普通客户机上传数据时,除上传编辑后的记录外,还上传项目标识;协同主机验证项目标识与IP地址是否符合,如符合,调用数据处理线程对接受到的上传数据进行处理。
[0114] 综上,参见图8,本实施例工程勘察数据计算机协同处理方法的总体原理是将局域网中的一台普通客户机升级为协同主机,局域网中的其它电脑为普通客户机。协同主机监听局域网(监听指定端口),局域网中其它电脑的数据通过Socket通信发送到指定端口;普通客户机发送连接请求,协同主机对其身份验证(通过用户名和密码),与协同主机建立连接,可以访问协同主机提供的数据并在协同主机的管理下完成数据编辑:普通客户机获取欲编辑根节点或子节点(目标)的数据状态,在目标处于无用户使用的空闲状态时,普通客户机在本地电脑处理、编辑原始记录,将录入的数据临时保存在本地的缓冲区(对应DataSet数据表集合和本地临时数据库文件)。上传编辑后的记录后,协同主机对其进行数据验证,验证成功后,将数据同步到地质勘察数据中,作为以后地质成果处理的基础数据。
[0115] 本实施例可带来以下几种优势:
[0116] (1)实现了多个用户共同完成一个项目数据,大大提高了生产效率,缩短了工作周期。
[0117] (2)通过数据同步技术,使用不同用户处理的数据均得到验证,自动汇总到协同主机上,大大减少了技术人员工作量,提高了数据正确率。
[0118] (3)通过缓冲技术,本地普通客户机上的数据也不会因为意外情况而丢失。
[0119] (4)实现了用户的访问控制,可以让多个用户共同处理一个数据节点的不同子节点而不冲突,这样可以让不同专业的人员负责自己专业范围的数据,保证了数据的正确就绪。
[0120] 与之相对应,本发明实施例还欲保护工程勘察数据计算机协同系统,参见图9,上述系统包括协同主机1以及至少两个普通客户机2。
[0121] 协同主机1中存储有工程勘察数据,工程勘察数据包括至少一个数据节点,每一数据节点包括一个根节点以及N个子节点;任一根节点的数据状态至少包括无用户使用的空闲状态、被用户编辑的占据状态,以及不能被访问的禁止访问状态;任一子节点的数据状态至少包括无用户使用的空闲状态,以及被用户编辑的占据状态;N为整数;
[0122] 普通客户机2用于,将欲编辑的根节点或欲编辑的子节点作为目标,获取目标的数据状态;在目标处于无用户使用的空闲状态时,通知协同主机执行第一处理,并对目标进行编辑,在编辑完成后,通知协同主机执行第二处理;
[0123] 第一处理至少包括:至少将目标的数据状态转换为被用户编辑的占据状态,以锁定目标;
[0124] 第二处理至少包括:释放目标,至少重置目标对应的数据状态。
[0125] 在本发明其他实施例中,上述对目标进行编辑可包括:
[0126] 从协同主机处获取目标的原始记录,对原始记录进行编辑,得到编辑后的记录并缓存。
[0127] 相应的,上述普通客户机2还可用于至少将缓存的、编辑后的记录上传至协同主机。
[0128] 在本发明其他实施例中,上述普通客户机2还可用于新增数据节点。由于工程勘察数据计算机协同系统与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0129] 此外,本文还一并奉上工程勘察数据根节点及子节点关系(下表3)。需要说明的是:
[0130] 下表3中,(1-1)表示根节点与子节点的关系是一对一的关系。(1-n)表示根节点与子节点的关系是一对多的关系。例如,1个钻孔只能有一个钻孔基本信息,但一个钻孔可以取多次样,因此有多个取样数据子节点。
[0131] 下表3中,GUID为全局唯一标识符(Globally Unique Identifier)也称作UUID(Universally Unique IDentifier)。
[0132] 下表3中,第一关键值、第二关键值等,主要是用来实现主从数据的关联,另一方面实现排序功能。例如,取样数据子节点中,钻孔ID为第一关键值,取样编号为第二关键值,则在向用户显示时,以钻孔ID的大小顺序来显示数据,钻孔ID如相同,则以取样编号的大小顺序来显示数据。
[0133] 下表3中,词典类型,指的是可选项。例如,投影体系中的北京1954、西安1980、城市独立坐标系、自定义坐标系,表示投影体系可为北京1954、西安1980、城市独立坐标系、自定义坐标系中的一种。
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140] 表3
[0141] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0142] 还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0143] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,通用硬件包括通用集成电路、通用CPU、通用存储器、通用元器件等,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在可读取的存储介质中,如U盘、移动存储介质、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储软件程序代码的介质,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
[0144] 对所提供的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所提供的原理和新颖特点相一致的最宽的范围。