一种中间存储方法与流程

文档序号:17600889发布日期:2019-05-07 20:17阅读:209来源:国知局
一种中间存储方法与流程

本发明属计算机数据管理领域,尤其涉及一种计算机上的中间存储方法。



背景技术:

随着4a系统的推广和安全级别的提高,系统剪切板已经不能满足管理员的需求。实际操作中需要剪切板能够满足系统上行拷贝和下行拷贝的控制,并且需要对剪切对象进行分别控制和权限开放,且在开放的权限范围内可以对操作进行审计,管理员能够在事后进行查询历史操作。



技术实现要素:

为了解决现有技术中的上述问题,本发明提供了一种中间存储方法。

本发明采用的技术方案具体如下:

一种中间存储方法,包括以下步骤:

(1)用户在中转服务端注册,注册信息包括剪切板id;

(2)用户在第一客户端设置其使用的剪切板id以及粘贴命令键组合;

(3)用户在第一客户端使用拷贝命令,将选择的对象拷贝到第一客户端的系统剪切板中;

(4)第一客户端计算所述粘贴命令键组合的哈希值,并扩展所述哈希值,扩展结果与所述对象的位数相同;

(5)设所述对象为object,所述扩展结果为k,则第一客户端计算result=object⊕k,并生成一个中转消息,所述中转消息中包括了所述result和第一客户端当前使用的剪切板id,并将所述中转消息发送给中转服务端;

(6)中转服务端接收到所述中转消息,基于所述中转消息,将所述result存储到所述剪切板id对应的中转剪切板中;

(7)用户在第二客户端设置其使用的剪切板id;

(8)用户在第二客户端使用粘贴命令键组合,第二客户端生成一个同步消息,所述同步消息中包括了第二客户端的剪切板id和上次同步的时间戳;

(9)所述第二客户端将所述同步消息发送给中转服务端,中转服务端根据同步消息确定是否有新的剪切板数据需要同步到第二客户端,并生成一个同步响应消息,所述同步响应消息中包括了本次同步的时间戳以及所述新剪切板数据;中转服务端将所述同步响应消息发送给所述第二客户端;

(10)第二客户端接收所述同步响应消息,从同步响应消息中解析出新剪切板数据,对于新剪切板数据中的每一个result,第二客户端计算所述粘贴命令键组合的哈希值,并扩展所述哈希值,使扩展结果k与所述result的位数相同,通过计算result⊕k得到相应的对象。

进一步地,所述剪切板id是剪切板的唯一标识符,用于在中转服务端区分不同的中转剪切板。

进一步地,所述对象是文本或者文件。

进一步地,用户可在客户端同时设置多个剪切板id,相应的中转消息也包括所述多个剪切板id。

进一步地,中转剪切板按照收到中转消息的时间顺序来存储中转消息中的对象,从而在中转剪切板中形成一个基于时间顺序的对象队列。

进一步地,所述时间戳是真实时间,或者是同步序号。

进一步地,如果没有需要同步的新数据,则所述同步响应消息就只包括本次同步的时间戳。

进一步地,如果同步响应消息中包括了多个新剪切板数据,则同步响应消息中包括了这些新剪切板数据在时间上的先后顺序。

进一步地,在步骤10之后,所述第二客户端直接粘贴系统剪切板中最新的对象。

进一步地,在步骤10之后,所述第二客户端向用户展示系统剪切板中的多个对象,由用户来选择其要粘贴的对象。

【附图说明】

此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:

图1是本发明方法应用的系统结构图。

【具体实施方式】

下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。

参见附图1,其示出了本发明所应用的一个基本环境结构,该环境中包括至少两个客户端,以及一个中转服务端,客户端和中转服务端之间通过网络连接并传输数据。本发明方法的目的是在不同客户端之间共享剪切对象,每个客户端都具有其自己的系统剪切板,当一个客户端在其系统剪切板中增加一个对象后,可以通过中转服务端发送给另一个客户端,从而使得另一个客户端可以使用该对象。下面详细说明本发明的方法流程。

(1)用户在中转服务端注册,注册信息包括剪切板id。

由于系统中可以具有大量的客户端,为了只获取需要的剪切对象,首先需要对剪切对象进行区分。为此,用户先在中转服务端注册剪切板id,所述剪切板id是剪切板的唯一标识符,用于在中转服务端区分不同的中转剪切板。

(2)用户在第一客户端设置其使用的剪切板id。

用户使用的剪切板id可以是自己注册的,也可以是其他用户注册的。如果是其他用户注册,需要在事先与其他用户沟通,获取其剪切板id。

用户也可以同时设置多个剪切板id,如果设置了多个剪切板id,则意味着用户同时使用了多个中转剪切板,每个剪切对象可以同时上传到所述多个中转剪切板。

(3)用户在第一客户端使用拷贝命令,将选择的对象拷贝到第一客户端的系统剪切板中。

例如,在计算机中通常使用的拷贝命令是“ctrl+c”,当用户选择某个对象,并按下“ctrl+c”后,该对象就被拷贝到系统剪切板中。所述对象可以是一段文本或者一个文件等等,具体的对象类型本发明不作限制。

(4)所述第一客户端生成一个中转消息,所述中转消息中包括了所述对象和第一客户端当前使用的剪切板id,并将所述中转消息发送给中转服务端。

具体的,设中转消息为m,则m={object,id},其中object代表所述对象,id为所述剪切板id。

如果第一客户端使用了多个剪切板id,则m={object,id1,id2,……}。

(5)中转服务端接收到所述中转消息,基于所述中转消息,将所述对象存储到所述剪切板id对应的中转剪切板中。

如前所述,每个剪切板id对应了一个中转剪切板,所述中转剪切板是由中转服务端维护的,当用户注册了一个剪切板id后,中转服务端就为其建立了对应的中转剪切板。因此,当中转服务端接收到所述中转消息后,可以基于中转消息将对象存储到相应的中转剪切板中。

对于同一个中转剪切板,中转服务端可能会先后收到多个相应的中转消息,则中转剪切板按照收到中转消息的时间顺序来存储中转消息中的对象,从而在中转剪切板中形成一个基于时间顺序的对象队列。

(6)用户在第二客户端设置其使用的剪切板id。

第二客户端的剪切板id取决于用户想要使用的中转剪切板,想要与哪些客户端共享剪切板。需要说明的是,第一客户端和第二客户端在本发明中的地位完全是等价的,第一客户端和第二客户端使用了相同的剪切板id,则这两个客户端共享同一个中转剪切板。

(7)用户在第二客户端使用粘贴命令,第二客户端生成一个同步消息,所述同步消息中包括了第二客户端的剪切板id和上次同步的时间戳。

在计算机中常见的粘贴命令是“ctrl+v”,当然也可以使用自定义的粘贴命令(这一点在后面说明)。当第二客户端接收到粘贴命令时,首先将本地的系统剪切板与中转剪切板进行同步,获取中转剪切板中的新对象,然后决定粘贴哪个对象。

每次同步,中转服务端都会给出一个相应的同步时间戳,以方便后续同步时的增量同步。如果这是第二客户端的第一个同步消息,则将同步消息中的时间戳设置为0,以表示这是第一次同步。

(8)所述第二客户端将所述同步消息发送给中转服务端,中转服务端根据同步消息确定是否有新对象需要同步到第二客户端,并生成一个同步响应消息,所述同步响应消息中包括了本次同步的时间戳以及所述新对象;中转服务端将所述同步响应消息发送给所述第二客户端。

具体的,首先中转服务端根据同步消息中的剪切板id确定其对应的中转剪切板,然后中转服务器根据同步消息中的时间戳确定上一次同步的时间,在上一次同步时间之后,该中转剪切板中新增加的对象就是需要同步到第二客户端的对象。如果没有需要同步的新对象,则所述同步响应消息就只包括本次同步的时间戳。所述时间戳可以是真实的时间,也可以是一个同步的序号,只要能表明时间先后关系即可。

如果同步响应消息中包括了多个新对象,则同步响应消息也应当表明这些新对象在时间上的先后顺序,以方便第二客户端确定哪个对象是最新的剪切对象。

(9)第二客户端接收所述同步响应消息,将同步响应消息中的新对象存储于本地的系统剪切板中,根据当前的系统剪切板确定所述粘贴命令所要粘贴的对象。

例如,第二客户端可以直接粘贴系统剪切板中最新的对象,也可以向用户展示系统剪切板中的多个对象,由用户来选择其要粘贴的对象。

上述实施例的过程说明了本发明方法的基本流程,但是该实施例没有考虑数据隐私性,有时候用户拷贝的内容只希望共享给指定的用户,而不希望被其他用户(包括中转服务端)看见。实现这一点通常需要比较复杂的加密操作,本发明的第二实施例提出了一种较为简单的实现方法,保证了数据隐私性,且在用户操作上依旧保持简单,保证了用户体验的连续性。具体步骤说明如下,其中与第一实施例相同的部分不再详细说明。

(1)用户在中转服务端注册,注册信息包括剪切板id。

(2)用户在第一客户端设置其使用的剪切板id以及粘贴命令键组合。

所述粘贴命令键组合是多个键盘按键的组合,例如,所述粘贴命令键组合可以是“ctrl+a+b”,或者是“alt+c+1”,或者“shift+e+f”。命令键组合以三个按键组合为宜,当然也可以设计更加复杂的命令键组合,本发明对此不作限制。

(3)用户在第一客户端使用拷贝命令,将选择的对象拷贝到第一客户端的系统剪切板中。

(4)第一客户端计算所述粘贴命令键组合的哈希值,并扩展所述哈希值,扩展结果与所述对象的位数相同。

例如,假设粘贴命令键组合为“ctrl+a+b”,则连接ctrl、a、b三个键的ascii码值,得到组合键信息,计算该组合键信息的哈希值h,哈希算法可以使用md5,则h的长度为128位。假设所述对象的长度为200位,则取该哈希值h的前72位,连接在h后面形成一个200位的扩展结果。

(5)设所述对象为object,所述扩展结果为k,则第一客户端计算result=object⊕k,并生成一个中转消息,所述中转消息中包括了所述result和第一客户端当前使用的剪切板id,并将所述中转消息发送给中转服务端。

(6)中转服务端接收到所述中转消息,基于所述中转消息,将所述result存储到所述剪切板id对应的中转剪切板中。

(7)用户在第二客户端设置其使用的剪切板id。

(8)用户在第二客户端使用粘贴命令键组合,第二客户端生成一个同步消息,所述同步消息中包括了第二客户端的剪切板id和上次同步的时间戳。

步骤8中使用的粘贴命令键组合必须和第一客户端设置的粘贴命令键组合相同,否则第二客户端无法正确获得剪切对象。

粘贴命令键组合在此所起的作用与第一实施例的粘贴命令相同,例如:使用“ctrl+a+b”这样的粘贴命令键组合代替了原始的“ctrl+v”。

(9)所述第二客户端将所述同步消息发送给中转服务端,中转服务端根据同步消息确定是否有新的剪切板数据需要同步到第二客户端,并生成一个同步响应消息,所述同步响应消息中包括了本次同步的时间戳以及所述新剪切板数据;中转服务端将所述同步响应消息发送给所述第二客户端。

与第一实施例不同,这里的剪切板数据不再是对象本身,而是上述步骤5中计算的各个对象相应的result。

(10)第二客户端接收所述同步响应消息,从同步响应消息中解析出新剪切板数据,对于新剪切板数据中的每一个result,第二客户端计算所述粘贴命令键组合的哈希值,并扩展所述哈希值,使扩展结果k与所述result的位数相同,通过计算result⊕k得到相应的对象。

步骤10中的哈希值及其扩展方式与步骤4中的相同,因此可以进行相应的逆运算以恢复原始的对象。

(11)第二客户端将得到的新对象存储于本地的系统剪切板中,根据当前的系统剪切板确定所述粘贴命令所要粘贴的对象。

通过第二实施例的上述步骤,包括中转服务端在内的其他人无法看到剪切板中的原始对象,只有知晓剪切板id及其相应的粘贴命令键组合的用户,才可以正确获得第一客户端的剪切对象,这里的粘贴命令键组合起到了保护隐私的作用,并且自身只是替代了原来的粘贴命令,并没有给用户带来过于复杂的操作,保证了用户体验。

以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1