searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种云桌面剪切板数据压缩传输的方法

2023-11-01 02:03:18
16
0

一、背景

近年来,云计算技术发展迅猛,云计算产品、技术和服务在市场引起了新一轮的产业变革。云桌面是一种基于云计算和虚拟化技术的一种应用服务,通过云计算技术把传统计算机桌面环境抽离出来,成为一种可以对外服务的虚拟桌面服务。将计算能力和存储迁移到了云端,弱化本地需求和能力,仅提供输入输出信息,通过特定传输协议,将云端与本地进行连接,实现交互。

云桌面剪切板主要是为了方便用户在本地设备和远程桌面之间传输数据。在使用云桌面时,用户可能需要将本地设备中的文本、图片等数据复制到远程桌面中,或者将远程桌面中的数据复制到本地设备中。这时,云桌面剪切板就可以起到很好的作用,它可以将本地设备和远程桌面之间的数据传输变得更加便捷和高效。通过云桌面剪切板,用户可以在本地设备和远程桌面之间自由地复制和粘贴数据,从而提高工作效率和便利性。

云桌面剪切板在实际应用中可能会有所限制,面临一些性能问题,如果用户在不同区域或网络环境差的设备间使用剪切板传输文本或文件,可能会因为网络延迟导致传输效率低下。尤其是在云桌面和终端本地之间拷贝大文件时,如大于100KB的文件,传输大文件需要较大的带宽,而云桌面和终端本地的网络带宽可能有限,导致传输速度较慢。同时云桌面和终端本地之间的网络延迟可能较高,特别是跨地域或跨国传输,会增加传输时间。大文件需要进行分割和重组,在云桌面和终端本地之间传输时,需要进行文件分割和重组操作,增加了复杂性和传输时间,并且由于网络不稳定或其他因素,文件传输可能会中断,导致传输失败或需要重新传输。传输剪切板原始数据会出现数据泄露或被非法访问,需要考虑文件传输安全性。为了提高传输效率,需要采用合适的传输协议、压缩算法和并行传输技术等来优化大文件的传输过程。因此云桌面和终端本地之间拷贝大文件存在一些挑战,需要通过合理的技术选择和优化来解决。

 

二、技术方案

本文提出一种云桌面剪切板数据压缩传输的方法,是在云桌面场景下剪切板数据传输的优化,针对不同大小的剪切板数据采取不同策略,运用合适的压缩算法进行数据压缩和数据传输,同时进行数据分块和多线程并行处理,大大提高了剪切板数据的传输效率。

云桌面或本地客户端实时监控剪切版是否有文件被复制,当检测到有复制文件操作时,将文件信息同步给本地客户端或云桌面,同时等待粘贴操作,一旦触发粘贴操作的流程,就会进行剪切板数据压缩和数据传输,同时另一边实时进行数据接收和数据解压,完成复制粘贴操作的全过程。

其中,数据压缩前会对剪切板数据进行判断,针对大文件和小文件采取不同策略处理,小于100KB的文件认为是小文件,大于等于100KB的文件是大文件。流程图如图1 所示。

图1 剪切板数据压缩流程图

对小文件数据通过匹配和编码重复的字符串来实现数据的压缩,具体过程如下:

  1. 初始化状态,用一个固定大小的循环字典来存储最近的输入数据。同时使用一个状态机来跟踪压缩和解压缩过程中的状态。
  2. 从输入数据中读取一个字符,并在字典中查找与之匹配的最长字符串。这个匹配过程通常使用哈希表来加速。
  3. 将匹配的位置和长度编码为位于预定义范围内的整数,并输出到压缩数据流中,并采用霍夫曼编码进行编码。
  4. 将未匹配的字符输出到压缩数据流中。
  5. 根据当前匹配的位置和长度,更新字典中的内容,并将状态机转移到下一个状态。
  6. 重复步骤2至步骤5,直到遍历完所有输入数据。
  7. 在压缩数据的结尾,输出一个特殊的结束标志,表示压缩的结束。

小文件数据解压缩过程与压缩过程相反:

  1. 初始化字典和状态。
  2. 从压缩数据中读取编码的匹配位置和长度。
  3. 解码匹配位置和长度,并根据字典中的内容重建匹配的字符串,输出匹配的字符串。
  4. 输出非匹配字符。
  5. 更新字典和状态。
  6. 重复步骤2至步骤6,直到解压缩完所有压缩数据。
  7. 解压缩结束。

    对大文件数据的压缩处理采用了分块处理和多线程处理,可以充分利用系统资源,提供传输效率,具体过程如下:

  1. 初始化字典和状态:使用一个固定大小的循环字典来存储最近的输入数据,并使用状态机来跟踪压缩和解压缩过程中的状态。
  2. 分块压缩:将输入数据分成多个块,每个块独立进行压缩。每个块都有自己的字典和状态。同时运用多线程处理块数据。
  3. 查找匹配:在当前块的字典中查找与输入数据匹配的最长字符串。
  4. 编码匹配位置和长度:将匹配的位置和长度编码为位于预定义范围内的整数,并输出到压缩数据流中。
  5. 输出非匹配字符:将未匹配的字符输出到压缩数据流中。
  6. 更新字典和状态:根据当前匹配的位置和长度,更新字典中的内容,并将状态机转移到下一个状态。
  7. 重复步骤3至步骤6,直到遍历完当前块的所有输入数据。
  8. 输出结束标志:在当前块的压缩数据的结尾,输出一个特殊的结束标志,表示当前块的压缩的结束。
  9. 重复步骤2至步骤8,直到遍历完所有输入数据块。

大文件数据解压缩过程与压缩过程相反:

  1. 初始化字典和状态。
  2. 从压缩数据中读取编码的匹配位置和长度。
  3. 解码匹配位置和长度,并根据字典中的内容重建匹配的字符串。并行解压不同块,大幅提高解压速度。
  4. 输出匹配的字符串。
  5. 输出非匹配字符。
  6. 更新字典和状态。
  7. 重复步骤2至步骤6,直到解压缩完所有压缩数据。
  8. 解压缩结束。

本文提出一种云桌面剪切板数据压缩传输的方法,采用合适的传输协议、压缩算法和并行传输技术等来优化文件的传输过程。以本地文件复制到云桌面为例,详细过程如下:

S1、本地客户端实时监控剪切版是否有文件被复制,当检测到有文件(用户在本地进行了复制文件操作),处理待复制的文件路径,然后将文件总个数、文件总大小、文件名列表的NOTICE消息发送给云桌面。

S2、云桌面收到NOTICE消息后,新增一个等待粘贴线程,当发现用户在云桌面进行了粘贴操作,马上发确认消息通知本地客户端。

S3、本地客户端接收到CONFIRM消息后,开始发送待复制文件的FILE信息,先发送FILE消息(包含文件大小、文件名信息)给云桌面,云桌面收到该消息后,在云桌面相应路径创建文件。

S4、本地客户端对剪切板数据进行判断,针对大文件和小文件采取不同策略处理,并持续发送包含文件数据的DATA消息给云桌面。

S41、对小文件数据通过匹配和编码重复的字符串来实现数据的压缩,运用滑动窗口匹配寻找重复片段,再用霍夫曼编码,实现数据压缩并将数据封装DATA消息,传输到云桌面。

S42、对大文件数据的压缩处理采用了分块处理和多线程处理,充分利用系统资源,将剪切板数据分块,多线程压缩处理,每个块独立传输,支持并发传输提高效率。数据压缩后并将数据封装DATA消息,传输到云桌面。

S5、云桌面收到文件数据后进行解压缩,还原出原始文件,并在相应路径下生成对应文件。

S6、假如在S4发送数据到云桌面的过程中,用户点击取消,本地客户端会发送CANCEL消息给云桌面,并通知云桌面取消写文件,若没有取消则跳过。

S7、当本地客户端将所有文件数据发送给云桌面后,最后发送FINISH消息给云桌面,通知云桌面文件发送完毕,流程结束。

 

三、总结

针对在本地设备和远程桌面之间拷贝文本或文件的应用场景,本文提出了一种云桌面剪切板数据压缩传输的方法,对大文件和小文件采取不同策略处理,采用合适的传输协议、压缩算法和并行传输技术等来优化文件的传输过程。本文提出的技术方案相对于现有技术,技术要点有:

  1. 对剪切板数据进行判断,针对大文件和小文件采取不同策略处理,使得传输更加高效可靠。
  2. 对大文件进行分块处理,可以提高压缩和传输效率。
  3. 针对剪切板大文件数据运用特定的压缩算法进行压缩传输。
  4. 在整个传输过程中,可以将压缩和传输两个步骤并行执行。在发送端进行压缩的同时,可同时开始传输已经压缩好的部分数据,提高传输效率。
  5. 为了确保传输过程中的数据完整性,采用哈希算法对压缩数据进行校验,在接收端进行数据校验,以保证数据的正确传输。
  6. 在接收端对压缩文件进行解压缩和恢复,确保文件完整性和正确性。

本文提出的技术方案相对于现有技术,具备以下优点:

  1. 运用不同策略处理不同大小的剪切板数据,可以确保稳定性和可靠性。
  2. 特定的压缩算法可以减小文件的大小,从而减少传输所需的时间。较小的文件大小意味着传输过程中需要的带宽更少,从而加快了传输速度。
  3. 通过减小文件的大小,压缩算法可以节省网络带宽资源,使得其他网络活动不受大文件传输的影响。这对于云桌面和终端本地之间共享网络资源的情况尤为重要。
  4. 压缩算法可以减小传输数据量,降低传输错误率,提高传输效率和数据完整性。减小数据量也可以减少传输过程中的传输延迟,提高传输速度。
  5. 压缩算法可以提高数据的安全性,通过对文件进行压缩,可以减少数据泄露和非法访问的风险。

 

 

0条评论
0 / 1000