CN117997961A - 基于请求响应模式的跨设备数据传送 - Google Patents

基于请求响应模式的跨设备数据传送 Download PDF

Info

Publication number
CN117997961A
CN117997961A CN202211334801.2A CN202211334801A CN117997961A CN 117997961 A CN117997961 A CN 117997961A CN 202211334801 A CN202211334801 A CN 202211334801A CN 117997961 A CN117997961 A CN 117997961A
Authority
CN
China
Prior art keywords
data
terminal device
command
cross
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211334801.2A
Other languages
English (en)
Inventor
是黎彬
方斌
万敏
陈鹏
曾晶
郭辉
陆积堰
苏畅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202211334801.2A priority Critical patent/CN117997961A/zh
Priority to PCT/US2023/032818 priority patent/WO2024091346A1/en
Publication of CN117997961A publication Critical patent/CN117997961A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了用于跨设备数据传送的方法、***和装置。所述跨设备数据传送是基于请求响应模式的。第一终端设备中的目标应用可以识别用于指示获取第二终端设备中的目标数据的触发操作,并且生成包括与目标数据相对应的资源描述语句的数据请求。跨设备数据传送网络单元可以基于数据请求中的资源描述语句来生成数据命令,并且向第二终端设备中的设备客户端发送数据命令。第二终端设备中的设备客户端可以基于数据命令来获取目标数据,并且向跨设备数据传送网络单元发送包括目标数据的命令响应。跨设备数据传送网络单元可以向第一终端设备中的目标应用发送包括目标数据的请求响应。

Description

基于请求响应模式的跨设备数据传送
背景技术
具有多个终端设备的用户可能期望获取高效的跨设备体验,例如,在不同终端设备之间的跨设备数据传送。跨设备数据传送旨在使得用户至少能够在一个终端设备上获取在另一个终端设备中存储的数据。例如,假设一个用户具有一台桌面计算机和一部智能手机,则该用户可能期望或需要在桌面计算机中访问智能手机中的诸如照片等的数据,以便在桌面计算机中处理智能手机中的数据。在这种情况下,需要实现从智能手机向桌面计算机的跨设备数据传送。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于跨设备数据传送的方法、***和装置。所述跨设备数据传送是基于请求响应模式的。第一终端设备中的目标应用可以识别用于指示获取第二终端设备中的目标数据的触发操作,并且生成包括与目标数据相对应的资源描述语句的数据请求。跨设备数据传送网络单元可以基于数据请求中的资源描述语句来生成数据命令,并且向第二终端设备中的设备客户端发送数据命令。第二终端设备中的设备客户端可以基于数据命令来获取目标数据,并且向跨设备数据传送网络单元发送包括目标数据的命令响应。跨设备数据传送网络单元可以向第一终端设备中的目标应用发送包括目标数据的请求响应。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1A和图1B示出了根据实施例的跨设备数据传送的示例性架构。
图2示出了根据实施例的跨设备数据传送的示例性过程。
图3示出了根据实施例的跨设备数据传送的示例性过程。
图4A至图4E示出了根据实施例的示例性应用场景。
图5A至图5D示出了根据实施例的示例性应用场景。
图6至图8示出了根据实施例的用于跨设备数据传送的示例性方法的流程图。
图9至图11示出了根据实施例的用于跨设备数据传送的示例性装置。
图12示出了根据实施例的用于跨设备数据传送的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
存在一些已有的跨设备数据传送机制。在基于云的跨设备数据传送机制中,一个用户的多个终端设备可以分别作为多个客户端,并且每个客户端将其数据推送或同步到云存储单元中。然后,每个客户端可以从云存储单元中拉取经更新的数据,该经更新的数据至少包括来自其他客户端的数据。每个客户端可以经由例如http连接来与云存储单元进行通信。基于云的跨设备数据传送机制要求所述多个客户端使用相同的云存储账号,这将限制跨设备数据传送的使用,因为这些客户端可能并不具有相同的云存储账号。云存储服务通常并非是免费的,由于用户需要将其多个终端设备中的大量数据都同步到元存储单元中,这将导致较大的存储开销。此外,可能只有云存储单元中的大量数据中的一小部分被用户所实际使用,这将导致不必要的传输、存储和开销浪费。基于云的跨设备数据传送机制需要将用户的个人信息和大量个人数据存储到云存储单元中,这将带来数据泄露的风险。在基于Web套接字(Socket)连接的跨设备数据传送机制中,多个终端设备分别经由WebSocket连接而与WebSocket服务器进行通信,使得一个终端设备可以经由WebSocket连接来获取另一个终端设备中的数据。在基于点对点(P2P)连接的跨设备数据传送机制中,多个终端设备可以经由例如实时通信(RTC)技术来彼此直接连接,以便交换数据。然而,基于WebSocket连接的跨设备数据传送机制和基于P2P连接的跨设备数据传送机制都需要终端设备集成有特定的软件开发工具包(SDK)以实施数据传送,这将显著地增加集成的难度和可行性。
本公开的实施例提出了基于请求响应(request-responding)模式的跨设备数据传送机制,以实现按需获取(on-demand fetching)的跨设备体验。对于用户的多个终端设备中的第一终端设备和第二终端设备,本公开的实施例能够以请求响应方式来实现从第二终端设备向第一终端设备的数据传送,以便第一终端设备可以获取第二终端设备中的目标数据。在本文中,目标数据可以广泛地包括在终端设备中存储的各种资源以及与资源相关联的诸如元数据的信息等。资源可以广泛地指在终端设备中存储的各种数据,例如文件、消息、联系人信息、位置信息等。文件可以包括诸如文本文件、图像文件、音频文件、视频文件等各种类型的文件,消息可以包括诸如社交媒体应用消息、手机短信等各种类型的消息,联系人信息可以包括诸如电话号码、电子邮件地址等各种联系人相关信息,并且位置信息可以包括诸如地理坐标、地理名称等描述位置的信息。
根据本公开的实施例,只有当需要在第一终端设备中获取第二终端设备中存储的特定目标数据时,该目标数据才会被从第二终端设备传送到第一终端设备。例如,当需要在第一终端设备中获取第二终端设备中的目标数据时,第一终端设备可以向第二终端设备请求该目标数据,并且第二终端设备响应于该请求而将目标数据传送给第一终端设备。通过这样的请求响应模式,第二终端设备可以仅将所期望的目标数据传送给第一终端设备,而并不需要推送、同步或传送第二终端设备中存储的其它数据。本公开的实施例提出了在网络侧部署跨设备数据传送网络单元、WebSocket服务器等以实现基于请求响应模式的跨设备数据传送。本公开的实施例并不需要在网络侧使用云存储单元,从而,避免了如现有的基于云的跨设备数据传送机制所要求的从终端设备向云存储单元的数据推送或同步。相应地,本公开的实施例可以有效地节省传输资源、存储资源、开销等。本公开的实施例可以实时地执行跨设备数据传送,而并不需要如现有的基于云的跨设备数据传送机制那样在网络侧存储个人信息和大量个人数据,从而有效地降低了数据泄露的风险。此外,由于不使用云存储服务,本公开的实施例也并不需要云存储账号的使用。
根据本公开的实施例,在一种情况下,目标数据可以仅是第二终端设备中的指定资源的指定部分。相应地,可以仅将该指定资源的指定部分从第二终端设备传送到第一终端设备,而无需传送整个该指定资源。例如,假设该指定资源是一个视频文件,且该指定部分是该视频文件中的一个片段,则当仅期望在第一终端设备中获取该视频文件中的该特定片段时,可以仅将该特定片段从第二终端设备传送到第一终端设备,而无需传送整个视频文件。在这种情况下,根据本公开实施例的请求响应模式可以进一步涵盖针对指定资源的指定部分的请求和响应。相应地,本公开的实施例可以进一步节省传输资源、存储资源、开销等。此外,对指定资源的指定部分的提取可以是在第二终端设备中执行的,这将有效地保证数据安全性和避免数据泄露。
根据本公开的实施例,可以预先定义一组资源描述语句(statement),每个资源描述语句可以用于描述对应的目标数据的获取路径。第一终端设备可以通过简单地调用预定义的资源描述语句来请求目标数据。例如,可以至少利用应用编程接口(API)来定义资源描述语句,每个API可以表示对应的目标数据。优选地,可以采用表征状态转移(REST:Representation State Transfer)API来定义资源描述语句。相应地,本公开的实施例不需要在第一终端设备中预置复杂的客户端或集成特定的SDK。这将使得对根据本公开实施例的机制的集成更为容易和可行,并且这种集成对于诸如Web、Windows、Android、Mac等各种平台都更为简单。
图1A示出了根据实施例的跨设备数据传送的示例性架构100A。架构100A可以用于实现根据本公开实施例的基于请求响应模式的跨设备数据传送机制。
在架构100A中,假设用户想要在第一终端设备110中获取第二终端设备120中存储的目标数据。示例性地,在用户正在使用第一终端设备110中的目标应用112期间,用户可能想要获取第二终端设备120中的目标数据并且在目标应用112中处理该目标数据,例如,在目标应用112中呈现目标数据、共享或发送目标数据等。在本文中,目标应用可以广泛地涵盖在第一终端设备110中运行的能够使用来自第二终端设备120的目标数据的各种应用程序、软件、微件、进程、任务等,例如,文件编辑器、文件浏览器(explorer)、在线会议应用、电子邮件应用、社交媒体应用等。目标应用112可以包括用于实施与根据本公开实施例的基于请求响应模式的跨设备数据传送相关联的处理的功能模块。在下文中,所描述的涉及目标应用的各种处理可以是由该功能模块所执行的。第二终端设备120可以包括设备客户端122。设备客户端122可以是安装在第二终端设备120中的、用于实施与根据本公开实施例的基于请求响应模式的跨设备数据传送相关联的处理的应用或客户端。例如,设备客户端122可以被配置用于建立网络连接、处理所接收的数据命令、提取目标数据等。应当理解,第一终端设备110和第二终端设备120可以是各种类型的终端设备,例如,桌面计算机、笔记本计算机、平板计算机、智能手机、智能电视、智能屏幕等,并且本公开的实施例并不局限于从任何特定类型的第二终端设备120向任何特定类型的第一终端设备110的跨设备数据传送。
架构100A可以包括跨设备数据传送网络单元130。跨设备数据传送网络单元130被配置用于根据本公开的实施例来管理从第二终端设备120向第一终端设备110的跨设备数据传送。在一个方面,跨设备数据传送网络单元130可以与目标应用112通信,以从目标应用112处接收针对第二终端设备120中的目标数据的数据请求并且向目标应用112发送包括目标数据的请求响应。跨设备数据传送网络单元130和目标应用112可以经由例如http连接来进行通信。来自目标应用112的数据请求可以包括与目标数据相对应的资源描述语句。在一种实现方式中,资源描述语句可以是至少利用API来定义的,例如,利用REST API来定义资源描述语句。跨设备数据传送网络单元130可以基于资源描述语句来生成数据命令。跨设备数据传送网络单元130可以向第二终端设备120中的设备客户端122发送数据命令以请求目标数据,并且接收来自设备客户端122的包括目标数据的命令响应。
在一种实现方式中,优选地,在跨设备数据传送网络单元130与设备客户端122之间的对数据命令和命令响应的传输可以是经由WebSocket服务器140来实施的。WebSocket服务器140被配置用于在跨设备数据传送网络单元130与设备客户端122之间协商和建立WebSocket连接,并利用该WebSocket连接来在跨设备数据传送网络单元130与设备客户端122之间传递数据命令和命令响应。应当理解,尽管架构100A采用WebSocket服务器140来在跨设备数据传送网络单元130与设备客户端122之间传递数据命令和命令响应,但是本公开的实施例并不局限于此,而是也可以采用任何其他适合的方式来在跨设备数据传送网络单元130与设备客户端122之间传递数据命令和命令响应。
图1B示出了根据实施例的跨设备数据传送的示例性架构100B。架构100B是图1A中的架构110A的进一步实现方式。在架构100B中,跨设备数据传送网络单元130可以包括设备代理服务器132和连接传输服务器134。
在一个方面,设备代理服务器132能够与目标应用112进行通信。例如,设备代理服务器132可以被配置用于从目标应用112处接收数据请求,并且向目标应用112发送请求响应。在一个方面,设备代理服务器132能够生成数据命令。例如,设备代理服务器132可以被配置用于基于数据请求中包括的资源描述语句来生成数据命令。在一个方面,设备代理服务器132能够与连接传输服务器134进行通信。例如,设备代理服务器132可以被配置用于将数据命令发送给连接传输服务器134,并且从连接传输服务器134处接收命令响应。设备代理服务器132和目标应用112可以经由http连接进行通信,并且设备代理服务器132和连接传输服务器134可以经由http连接进行通信。
在一个方面,连接传输服务器134能够与设备代理服务器132进行通信。例如,连接传输服务器134可以被配置用于从设备代理服务器132处接收数据命令,并且将命令响应发送给设备代理服务器132。在一个方面,连接传输服务器134可以建立与WebSocket服务器140的WebSocket连接,并且与WebSocket服务器140进行通信。例如,连接传输服务器134可以被配置用于将数据命令发送给WebSocket服务器140,并且从WebSocket服务器140处接收命令响应。连接传输服务器134和设备代理服务器132可以经由http连接进行通信,并且连接传输服务器134和WebSocket服务器140可以经由WebSocket连接进行通信。
通过架构100B,可以分别在设备代理服务器132和连接传输服务器134处实现跨设备数据传送网络单元130中的数据层处理和传输层处理。设备代理服务器132可以至少根据针对第二终端设备122而定义的终端数据协议来运行以执行数据层处理。例如,设备代理服务器132可以至少根据终端数据协议,将数据请求中包括的资源描述语句转换为数据命令。例如,设备代理服务器132可以至少根据终端数据协议,从来自连接传输服务器134的对应于命令响应的数据流中提取目标数据以进而形成请求响应。此外,该终端数据协议也可以被第二终端设备120中的设备客户端122所支持,使得设备客户端122可以解析由设备代理服务器132所生成的数据命令以便准备该数据命令所针对的目标数据。连接传输服务器134可以至少根据针对第二终端设备122而定义的传输协议来运行以执行传输层处理,例如,分段、组块、重排序等。例如,连接传输服务器134可以被配置用于根据传输协议,对数据命令和命令响应执行传输层处理。
在一种实现方式中,设备代理服务器132和连接传输服务器134可以是两个独立的网络实体,例如,两个独立的服务器。相应地,彼此独立的设备代理服务器132和连接传输服务器134一起形成跨设备数据传送网络单元130。在另一种实现方式中,设备代理服务器132和连接传输服务器134可以位于同一个网络实体中。相应地,设备代理服务器132和连接传输服务器134可以分别作为跨设备数据传送网络单元130中的两个组件。
在架构100A和架构100B中,通过设置跨设备数据传送网络单元130,可以避免将第一终端设备110直接连接到WebSocket服务器140,从而避免了在第一终端设备中预置复杂的客户端或集成特定的SDK。此外,通过使用由例如API所定义的资源描述语句,可以简单方便地在目标应用112中集成用于实施与根据本公开实施例的基于请求响应模式的跨设备数据传送相关联的处理的功能模块。
根据架构100A和架构100B,在网络侧的跨设备数据传送网络单元130和WebSocket服务器140以及在终端侧的目标应用112和设备客户端122可以一起协作实现根据本公开实施例的基于请求响应模式的跨设备数据传送。
应当理解,架构100A和架构100B示例性地示出了根据本公开实施例的用于基于请求响应模式的跨设备数据传送的***。该跨设备数据传送***可以至少包括跨设备数据传送网络单元130和WebSocket服务器140。此外,从更宽泛的角度,该跨设备数据传送***可以进一步涵盖在目标应用112中所集成的用于实施与本公开实施例相关联的处理的功能模块、以及设备客户端122。
此外,应当理解,架构100A和架构100B中的所有元素都是示例性的,本公开的实施例并不局限于图1A和图1B中所示的这些元素的任何细节,而是可以涵盖更多或更少的元素或细节。
图2示出了根据实施例的跨设备数据传送的示例性过程200。过程200可以被执行用于实现根据本公开实施例的基于请求响应模式的跨设备数据传送机制。过程200包括在第一终端设备中的目标应用202、跨设备数据传送网络单元204、WebSocket服务器206和第二终端设备中的设备客户端208处执行的各种示例性处理。
在212处,目标应用202可以识别发生在目标应用202的用户界面中的触发操作。用户可能想要在目标应用202中处理第二终端设备中的目标数据,例如,对目标数据执行诸如呈现、编辑、***、发送、共享等各种操作,则该用户可以在目标应用202的用户界面中执行触发操作,以便指示获取第二终端设备中的目标数据。
在不同的应用场景中,可能存在不同类型的触发操作和不同类型的目标数据。
在一种实现方式中,触发操作可以包括对第二终端设备的指定,例如,对第二终端设备的选择操作。例如,用户可以点击用户界面中的诸如选项、按钮等视觉元素以选择第二终端设备。在这种情况下,目标数据可以包括与第二终端设备中的预定资源目录下的资源相关联的元数据,使得用户可以通过查看该元数据来了解该预定资源目录下包括哪些资源以及这些资源的相关信息。在本文中,资源的元数据可以包括与该资源有关的各种描述信息,例如,文件资源的元数据可以包括文件的名称或标识(ID)、大小、创建时间、修改时间、缩略图等,消息资源的元数据可以包括消息的ID、发送者、接收者、日期和时间、已读状态等,联系人信息资源可以包括联系人的姓名或ID、电话号码、电子邮件地址等。作为示例,假设已经在目标应用的用户界面中呈现了与“***图片”相关联的选项框,并且该选项框至少包括用于选择第二终端设备作为图片来源的选项按钮,则用户执行的诸如点击该选项按钮的触发操作可以指示获取第二终端设备中的“相机”文件目录中包括的多个照片文件和视频文件的元数据。在该示例中,第二终端设备中的相机文件目录是与在目标应用中的“***图片”选项框中执行的触发操作相关联的预定资源目录。应当理解,本公开的实施例并不局限于在用于指定第二终端设备的触发操作与预定资源目录之间的任何特定映射关系,例如,与在目标应用中的“附加文件”选项框中执行的用于指定第二终端设备的触发操作相关联的预定资源目录可以是第二终端设备中的根目录等。
在一种实现方式中,触发操作可以包括对第二终端设备中的资源目录的指定,例如,对第二终端设备中的特定资源目录的选择操作。例如,假设已经在目标应用的用户界面中呈现了第二终端设备中的多个资源目录,则用户可以点击所述多个资源目录中的一个特定资源目录以选择该特定资源目录。在这种情况下,目标数据可以包括与第二终端设备中的指定资源目录下的资源相关联的元数据,使得用户可以通过查看该元数据来了解该指定资源目录下包括哪些资源以及这些资源的相关信息。作为示例,假设已经在目标应用的用户界面中呈现了第二终端设备中的根目录,并且该根目录包括作为资源目录的多个文件目录,则用户执行的诸如点击所述多个文件目录中的某个文件目录的触发操作可以指示获取第二终端设备中的该指定文件目录中包括的文件的元数据。
在一种实现方式中,触发操作可以包括对第二终端设备中的资源的指定,例如,对第二终端设备中的特定资源的选择操作。例如,假设已经在目标应用的用户界面中呈现了与第二终端设备中的多个资源相关联的元数据,则用户可以点击与所述多个资源中的一个特定资源的元数据相关联的视觉元素以选择该特定资源。在这种情况下,目标数据可以包括第二终端设备中的该指定资源,使得该指定资源可以被传送到目标应用以进行处理,例如,被呈现在目标应用的用户界面中。作为示例,假设已经在目标应用的用户界面中呈现了第二终端设备中的“相机”文件目录中包括的多个照片文件和视频文件的元数据,则用户执行的诸如点击与所述多个照片文件和视频文件中的一个照片文件的元数据相关联的视觉元素的触发操作可以指示获取第二终端设备中的该指定照片文件。
在一种实现方式中,触发操作可以包括对第二终端设备中的资源的一部分的指定,例如,对第二终端设备中的特定资源的特定部分的选择操作。例如,假设已经在目标应用的用户界面中呈现了与第二终端设备中的多个资源相关联的元数据,则用户可以首先点击与所述多个资源中的一个特定资源的元数据相关联的视觉元素以选择该特定资源,并且进而设置或输入用于指定该特定资源的特定部分的信息。在这种情况下,目标数据可以包括第二终端设备中的该指定资源的该指定部分,使得该指定资源的该指定部分可以被传送到目标应用以进行处理。在本文中,资源的指定部分可以指在整个资源中所指定的一个片段,例如,一个视频文件中的指定时间区间内的视频片段、一个文档文件中的指定页码范围中的页面等。作为示例,假设已经在目标应用的用户界面中呈现了第二终端设备中的“相机”文件目录中包括的多个照片文件和视频文件的元数据,则用户执行的诸如点击与所述多个照片文件和视频文件中的一个视频文件的元数据相关联的视觉元素的第一操作可以选择第二终端设备中的该指定视频文件,而用户执行的诸如设置从第2秒到第10秒的时间区间的第二操作可以进而指示获取该指定视频文件中的位于所述时间区间中的指定视频片段。第一操作和第二操作可以被一起视为是用于指定第二终端设备中的该指定视频文件的指定视频片段的触发操作。
应当理解,本公开的实施例并不局限于以上描述的示例性的触发操作和目标数据,而是可以涵盖任何其他类型的触发操作和目标数据。
在214处,目标应用202可以响应于所识别的触发操作来生成数据请求。该数据请求可以至少包括与该触发操作所指示的目标数据相对应的资源描述语句。根据本公开的实施例,可以预先定义一组资源描述语句,并且每个资源描述语句可以用于描述对应的目标数据的获取路径。在一种实现方式中,可以利用API来定义资源描述语句。以采用REST API来定义资源描述语句为例,可以预先定义一组REST API,每个REST API可以描述对应的目标数据的获取路径。在一种实现方式中,可以利用API和对应的参数来定义资源描述语句,所述参数可以是对API的附加描述。以目标数据是指定资源的指定部分为例,API可以用于描述该指定资源的获取路径,而对应的参数可以用于描述该指定部分,例如,时间区间、页码范围等。应当理解,本公开的实施例并不局限于资源描述语句的任何特定格式,并不局限于采用API和可能的对应参数来定义资源描述语句,也并不局限于API的任何特定格式。此外,应当理解,除了资源描述语句外,数据请求还可以包括任何其他可能的信息,例如接收该数据请求的网络单元或服务器的地址、URL路径、报头信息等。
在216处,可以执行从目标应用202向跨设备数据传送网络单元204的数据请求传输。例如,目标应用202可以向跨设备数据传送网络单元204发送数据请求,相应地,跨设备数据传送网络单元204可以接收到来自目标应用202的数据请求。在一种实现方式中,可以在目标应用202与跨设备数据传送网络单元204之间建立http连接,以用于数据请求传输。
在218处,跨设备数据传送网络单元204可以基于数据请求中的资源描述语句来生成数据命令。数据命令可以指示获取第二终端设备中的目标数据。数据命令采用第二终端设备中的设备客户端208可以理解或解析的格式,使得设备客户端208可以基于数据命令来获知需要获取什么目标数据以进行响应。在一种实现方式中,如果设备客户端208具有直接理解或解析资源描述语句的能力,则跨设备数据传送网络单元204可以在218处直接将资源描述语句作为数据命令,这样的数据命令可以包括例如目标数据的获取路径等。在一种实现方式中,如果设备客户端208并不具有理解或解析资源描述语句的能力,则跨设备数据传送网络单元204可以在218处根据终端数据协议来将资源描述语句转换为数据命令,这样的数据命令可以包括例如命令名称、文件夹名称、资源名称或ID等。终端数据协议是针对第二终端设备中的设备客户端208而预先定义的,其使得设备客户端208能够理解或解析数据命令。本公开的实施例并不局限于数据命令的任何特定生成方式,也并不局限于上述的终端数据协议的任何特定细节。
在生成了数据命令之后,跨设备数据传送网络单元204可以进而向设备客户端208发送数据命令。优选地,跨设备数据传送网络单元204可以经由利用WebSocket服务器206所建立的WebSocket连接来向设备客户端208发送数据命令。例如,在220处,跨设备数据传送网络单元204可以向WebSocket服务器206发送数据命令,相应地,WebSocket服务器206可以接收到来自跨设备数据传送网络单元204的数据命令。可以在跨设备数据传送网络单元204与WebSocket服务器206之间建立WebSocket连接,以用于数据命令传输。在222处,WebSocket服务器206可以向设备客户端208发送数据命令,相应地,设备客户端208可以经由利用WebSocket服务器206所建立的WebSocket连接而接收到源自跨设备数据传送网络单元204的数据命令。可以在WebSocket服务器206与设备客户端208之间建立WebSocket连接,以用于数据命令传输。应当理解,本公开的实施例并不局限于WebSocket服务器206从跨设备数据传送网络单元204处接收数据命令以及向设备客户端208发送数据命令的任何特定实现方式。
在224处,设备客户端208可以基于数据命令来获取目标数据。例如,设备客户端208可以直接解析或根据终端数据协议来解析数据命令,并且相应地从第二终端设备中获取所被请求的目标数据。不同类型的目标数据可以导致设备客户端208在224处执行不同的目标数据获取操作。例如,在目标数据是第二终端设备中的预定资源目录或指定资源目录下的资源的元数据的情况下,设备客户端208可以基于数据命令,从第二终端设备的存储单元中获取这些资源的源文件中包含的元数据。例如,在目标数据是第二终端设备中的指定资源的情况下,设备客户端208可以基于数据命令,从第二终端设备的存储单元中获取该指定资源的源文件。例如,在目标数据是第二终端设备中的指定资源的指定部分的情况下,设备客户端208可以基于数据命令从第二终端设备的存储单元中提取该指定资源,然后基于数据命令从该指定资源中提取该指定部分。
在获取了目标数据后,设备客户端208可以进而向跨设备数据传送网络单元204发送命令响应。命令响应至少包括所获取的目标数据。命令响应可以是根据终端数据协议来生成的,使得跨设备数据传送网络单元204可以根据终端数据协议来从该命令响应中提取目标数据。优选地,设备客户端208可以经由利用WebSocket服务器206所建立的WebSocket连接来向跨设备数据传送网络单元204发送命令响应。例如,在226处,设备客户端208可以向WebSocket服务器206发送命令响应,相应地,WebSocket服务器206可以接收到来自设备客户端208的命令响应。可以在设备客户端208与WebSocket服务器206之间建立WebSocket连接,以用于命令响应传输。在228处,WebSocket服务器206可以向跨设备数据传送网络单元204发送命令响应,相应地,跨设备数据传送网络单元204可以经由利用WebSocket服务器206所建立的WebSocket连接而接收到源自设备客户端208的数据命令。可以在WebSocket服务器206与跨设备数据传送网络单元204之间建立WebSocket连接,以用于命令响应传输。应当理解,本公开的实施例并不局限于WebSocket服务器206从设备客户端208处接收命令响应以及向跨设备数据传送网络单元204发送命令响应的任何特定实现方式。
在接收到命令响应之后,跨设备数据传送网络单元204可以基于该命令响应来生成请求响应,该请求响应作为对数据请求的响应。例如,跨设备数据传送网络单元204可以从命令响应中提取目标数据,并且将所提取的目标数据包括到请求响应中。
在230处,可以执行从跨设备数据传送网络单元204向目标应用202的请求响应传输。例如,跨设备数据传送网络单元204可以向目标应用202发送请求响应,相应地,目标应用202可以接收到来自跨设备数据传送网络单元204的请求响应。在一种实现方式中,可以在目标应用202与跨设备数据传送网络单元204之间建立http连接,以用于请求响应传输。
在232处,目标应用202可以处理在所接收的请求响应中包含的目标数据。目标数据可以被以各种方式进行处理,例如,目标数据被呈现、共享、发送、编辑等。本公开的实施例并不局限于目标应用202对目标数据所执行的任何特定的处理。
应当理解,过程200中的所有步骤和操作都是示例性的,本公开的实施例将涵盖对过程200的任何方式的修改。例如,本公开的实施例并不局限于采用WebSocket服务器206来传递数据命令和命令响应,而是可以涵盖任何其他用于从跨设备数据传送网络单元204向设备客户端208的数据命令发送方式和任何其他用于从设备客户端208向跨设备数据传送网络单元204的命令响应发送方式。
图3示出了根据实施例的跨设备数据传送的示例性过程300。图3中的过程300是图2中的过程200的进一步实现方式,并且图2和图3中的相同的参考标号可以指示相同的步骤、操作、执行主体等。图3示出了跨设备数据传送网络单元204包括设备代理服务器302和连接传输服务器304的情形,并且过程300包括了涉及设备代理服务器302和连接传输服务器304的步骤和操作。为了简洁,以下讨论将不再重复地描述过程300与过程200中包括的相同的步骤和操作。
在312处,可以执行从目标应用202向设备代理服务器302的数据请求传输。例如,目标应用202可以向设备代理服务器302发送数据请求,相应地,设备代理服务器302可以接收到来自目标应用202的数据请求。在一种实现方式中,可以在目标应用202与设备代理服务器302之间建立http连接,以用于数据请求传输。
在314处,设备代理服务器302可以基于数据请求中的资源描述语句来生成数据命令。在314处的数据命令生成操作类似于图2中的218处的数据命令生成操作。
在316处,可以执行从设备代理服务器302向连接传输服务器304的数据命令传输。例如,设备代理服务器302可以向连接传输服务器304发送数据命令,相应地,连接传输服务器304可以接收到来自设备代理服务器302的数据命令。在一种实现方式中,可以在设备代理服务器302与连接传输服务器304之间建立http连接,以用于数据命令传输。
在接收到数据命令之后,连接传输服务器304可以进而向设备客户端208发送数据命令。优选地,连接传输服务器304可以经由利用WebSocket服务器206所建立的WebSocket连接来向设备客户端208发送数据命令。例如,在318处,连接传输服务器304可以向WebSocket服务器206发送数据命令,相应地,WebSocket服务器206可以接收到来自连接传输服务器304的数据命令。可以在连接传输服务器304与WebSocket服务器206之间建立WebSocket连接,以用于数据命令传输。
在从设备客户端208处接收到命令响应之后,WebSocket服务器206可以在320处向连接传输服务器304发送命令响应,相应地,连接传输服务器304可以经由利用WebSocket服务器206所建立的WebSocket连接而接收到源自设备客户端208的数据命令。可以在WebSocket服务器206与连接传输服务器304之间建立WebSocket连接,以用于命令响应传输。
在322处,可以执行从连接传输服务器304向设备代理服务器302的命令响应传输。例如,连接传输服务器304可以向设备代理服务器302发送命令响应,相应地,设备代理服务器302可以接收到来自连接传输服务器304的命令响应。在一种实现方式中,可以在连接传输服务器304与设备代理服务器302之间建立http连接,以用于命令响应传输。
在接收到命令响应之后,设备代理服务器302可以基于该命令响应来生成请求响应,该请求响应作为对数据请求的响应。请求响应中可以至少包括从命令响应中所提取的目标数据。
在324处,可以执行从设备代理服务器302向目标应用202的请求响应传输。例如,设备代理服务器302可以向目标应用202发送请求响应,相应地,目标应用202可以接收到来自设备代理服务器302的请求响应。在一种实现方式中,可以在目标应用202与设备代理服务器302之间建立http连接,以用于请求响应传输。
根据本公开的实施例,可以利用API来定义资源描述语句。优选地,可以利用RESTAPI来定义资源描述语句。示例性的API的格式可以是/devices/{device-ID}/resources/{resource-ID},其中,“devices”表示“设备”字段,“device-ID”表示第二终端设备的ID,“resources”表示“资源”字段,并且“resource-ID”表示资源的ID。对于不同类型的资源,上述的API的格式可以进行相应的变换。例如,在资源为文件的情况下,API的格式可以被变换为/devices/{device-ID}/files/{file-ID},其中,“files”表示“文件”字段,并且“file-ID”表示文件的ID。例如,在资源为消息的情况下,API的格式可以被变换为/devices/{device-ID}/messages/{message-ID},其中,“messages”表示“消息”字段,并且“message-ID”表示消息的ID。例如,在资源为联系人信息的情况下,API的格式可以被变换为/devices/{device-ID}/contacts/{contact-ID},其中,“contacts”表示“联系人”字段,并且“contact-ID”表示联系人的ID。应当理解,以上给出的API的多种格式及其中的字段都是示例性的,本公开的实施例并不局限于这些示例,而是将涵盖任何其他的API格式以及更多或更少的其他字段。此外,在一些情况下,资源描述语句可以是进一步利用与API对应的参数来定义的。API的参数是对API的附加描述。例如,参数{“selectFrom”:,“selectTo”:}可以定义时间区间、页码范围等,其中,“selectFrom”表示所选择的起始位置,并且“selectTo”表示所选择的结束位置。取决于具体的应用,本公开的实施例还将涵盖更多其他类型的API参数。
根据本公开的实施例,在根据终端数据协议来将资源描述语句转换为数据命令的情况下,可以为数据命令定义特定的语句描述格式。一个数据命令语句可以由多个字段形成,并且这些字段可以采用例如键-值(key-value)的形式。示例性的字段可以包括表示命令名称的“commandName”字段、表示文件夹名称的“folderName”字段、表示资源ID的“resourceID”字段、表示资源名称的“resourceName”字段、表示所选择的起始位置的“selectFrom”字段、表示所选择的结束位置“selectTo”字段、等等。资源描述语句中的字段和数据命令中的字段可以具有预定的映射关系,使得数据命令能够充分地反映资源描述语句中的信息。应当理解,以上给出的数据命令的语句描述格式及其中的字段都是示例性的,本公开的实施例并不局限于这些示例,而是将涵盖任何其他的数据命令语句描述格式以及更多或更少的其他字段。
根据本公开的实施例,可以为资源的元数据定义特定的语句描述格式,其也可以被称为例如资源模型等。一个元数据描述语句可以由多个字段形成,并且这些字段可以采用例如key-value的形式。元数据描述语句中的字段被用于表示元数据中的各种信息,并且对于不同类型的资源,元数据描述语句中的字段类型可能有所不同。例如,在资源为文件的情况下,元数据描述语句的格式可以为{“file-ID”:,“name”:,“type”:,“lastModifiedDateTime”:,…},其中,“file-ID”表示文件的ID,“name”表示文件的名称,“type”表示文件的类型,并且“lastModifiedDateTime”表示做出最后修改的日期和时间。例如,在资源为消息的情况下,元数据描述语句的格式可以为{“message-ID”:,“content”:,“receiver”:,“sender”:,“dateTime”:,“isRead”,…},其中,“message-ID”表示消息的ID,“content”表示消息的内容,“receiver”表示消息的接收方,“sender”表示消息的发送方,“dateTime”表示消息被发送的日期和时间,并且“isRead”表示消息是否已读。例如,在资源为联系人信息的情况下,元数据描述语句的格式可以为{“contact-ID”:,“name”:,“phoneNumber”:,“dateTime”:,…},其中,“contact-ID”表示联系人的ID,“name”表示联系人的姓名,“phoneNumber”表示联系人的电话号码,并且“dateTime”表示联系人信息创建的日期和时间。应当理解,以上给出的元数据描述语句的多种格式及其中的字段都是示例性的,本公开的实施例并不局限于这些示例,而是将涵盖任何其他的元数据描述语句格式以及更多或更少的其他字段。
图4A至图4E示出了根据实施例的示例性应用场景。在该应用场景中,第一终端设备是桌面计算机,第二终端设备是例如智能手机的终端设备N,并且目标应用是在桌面计算机上运行的社交媒体应用。图4A和图4E示出了该社交媒体应用的群聊用户界面。假设用户Jim是桌面计算机和终端设备N的拥有者,并且想要在群聊用户界面内向其他聊天用户,例如Jane、Beth等,共享存储在终端设备N中的视频资源。
在图4A中,社交媒体应用的用户界面具有视觉显示400A,其至少包括例如输入框410、图标栏420等。图标栏420包括可被选择的多个图标,每个图标对应于不同类型的输入信息。例如,图标栏420至少包括用于附加图片的图标422。
假设用户Jim在视觉显示400A中点击了图标422,则社交媒体应用的用户界面被更新为图4B中的视觉显示400B。如图4B所示,与图标422相关联的选项框430被呈现。选项框430包括例如用于选择本设备(即,桌面计算机)作为图片来源的选项按钮、用于选择终端设备N作为图片来源的选项按钮、用于选择云存储作为图片来源的选项按钮等。
假设用户Jim在视觉显示400B中点击了选项框430中的用于选择终端设备N作为图片来源的选项按钮,则社交媒体应用可以将该点击操作识别作为触发操作,并且该触发操作是对终端设备N的指定。该触发操作可以指示将要获取终端设备N中的目标数据,例如,与终端设备N中的预定资源目录“相机”下的照片和视频资源相关联的元数据。社交媒体应用可以响应于该触发操作来生成数据请求,该数据请求包括与该目标数据相对应的资源描述语句。以利用API来定义资源描述语句为例,与该目标数据相对应的API的格式可以是例如/devices/{device-ID}/files/camera,其中,“device-ID”是终端设备N的ID,并且“camera”表示“相机”目录。以跨设备数据传送网络单元包括设备代理服务器和连接传输服务器为例,社交媒体应用可以进而将数据请求发送给设备代理服务器。
设备代理服务器可以将数据请求中的API转换为数据命令。该数据命令可以是,例如,{“commandName”:“GetMediaList”,“folderName”:“camera”},其中,“GetMediaList”是“commandName”的值,其表示“获得媒体列表”,并且“camera”是“folderName”的值,其表示“相机”文件夹。该数据命令经由连接传输服务器和WebSocket服务器而最终被发送到终端设备N中的设备客户端。
终端设备N中的设备客户端基于该数据命令来获取目标数据,例如,与终端设备N中的“相机”目录下的照片和视频资源相关联的元数据。设备客户端将该目标数据包括到命令响应中。该命令响应经由WebSocket服务器和连接传输服务器而最终被发送到设备代理服务器。
设备代理服务器提取该命令响应中的目标数据,并且将该目标数据包括到请求响应中。设备代理服务器将该请求响应发送给社交媒体应用。
社交媒体应用提取该请求响应中的目标数据,并且在用户界面中呈现目标数据。例如,社交媒体应用的用户界面被更新为图4C中的视觉显示400C。在视觉显示400C中的方框440中呈现了目标数据,例如,与终端设备N中的“相机”目录下的照片和视频资源相关联的元数据。假设终端设备N中的“相机”目录包括名称为“2503218”的视频、名称为“2503217”的照片、名称为“2503189”的照片、名称为“2499867”的照片等,则在方框440中示出了这些视频和照片的元数据,例如,缩略图、名称、类型、大小、拍摄时间等。
假设用户Jim在视觉显示400C中点击了名称为“2503218”的视频的缩略图,以表明用户Jim想要选择该视频,则社交媒体应用的用户界面被更新为图4D中的视觉显示400D。视觉显示400D中的方框450包括与该视频相关联的信息以及用于选择或设置该视频的片段的区域452。假设用户Jim并不想共享整个视频,而只是想共享该视频的一个片段,则用户Jim可以在区域452中设置所要共享的片段的时间区间,例如,在“从”后面的输入框内输入“00:00:00”以作为该片段的起始时间点,并且在“到”后面的输入框内输入“00:10:00”以作为该片段的结束时间点,相应地,该片段被设置为该视频的从第0秒到第10秒的时间区间。然后,用户Jim可以利用区域452中的“确认”按钮来确认其设置。社交媒体应用可以至少将在视觉显示400C中点击该视频的缩略图的操作和在视觉显示400D中设置该片段的时间区间的操作一起识别作为触发操作,并且该触发操作是对终端设备N中的资源的一部分的指定。该触发操作可以指示将要获取终端设备N中的目标数据,例如,该视频的该片段。社交媒体应用可以响应于该触发操作来生成数据请求,该数据请求包括与目标数据相对应的资源描述语句。以利用API来定义资源描述语句为例,与该目标数据相对应的API的格式可以是例如/devices/{device-ID}/files/{file-ID}/download,其中,“file-ID”是该视频的ID“2503218”,并且“download”表示“下载”操作。进一步地,由于指定了该视频的片段,因此,与上述API相对应的参数可以是例如{“selectFrom”:“00:00:00”,“selectTo”:“00:10:00”},其中,“00:00:00”是“selectFrom”的值,其表示该片段的起始时间点是第0秒,并且“00:10:00”是“selectTo”的值,其表示该片段的结束时间点是第10秒。社交媒体应用可以进而将该数据请求发送给设备代理服务器。
设备代理服务器可以将该数据请求中的API转换为数据命令。该数据命令可以是,例如,
{“commandName”:“GetMediaFileData”,“file-ID”:“2503218”,“selectFrom”:“00:00:00”,“selectTo”:“00:10:00”},其中,“GetMediaFileData”是“commandName”的值,其表示“获得媒体文件数据”,并且“2503218”是“file-ID”的值,其对应于该视频的ID。该数据命令经由连接传输服务器和WebSocket服务器而最终被发送到终端设备N中的设备客户端。
终端设备N中的设备客户端基于数据命令来获取目标数据。例如,设备客户端首先从终端设备N的存储单元中将名称为“2503218”的视频的源文件加载到内存中,然后对该源文件进行处理以截取从第0秒到第10秒的片段。设备客户端将该目标数据包括到命令响应中。该命令响应经由WebSocket服务器和连接传输服务器而最终被发送到设备代理服务器。
设备代理服务器提取命令响应中的目标数据,并且将该目标数据包括到请求响应中。设备代理服务器将该请求响应发送给社交媒体应用。
社交媒体应用提取请求响应中的目标数据,并且在用户界面中发送或共享目标数据。例如,社交媒体应用的用户界面被更新为图4E中的视觉显示400E。在视觉显示400E中示出了视频“2503218”的指定片段460已经在聊天流中被共享给其他用户。
应当理解,图4A至图4E中的所有元素都是示例性的,并且以上结合图4A至图4E所描述的所有操作也都是示例性的。
图5A至图5D示出了根据实施例的示例性应用场景。在该应用场景中,第一终端设备是桌面计算机,第二终端设备是例如智能手机的终端设备M,并且目标应用是在桌面计算机上运行的文件编辑器。图5A至图5D示出了该文件编辑器的用户界面。假设用户想要在文件编辑器中正被编辑的文档中***存储在终端设备M中的图片资源。
在图5A中,文件编辑器的用户界面具有视觉显示500A,其至少包括例如文档区域510、工具栏520等。工具栏520包括可被选择的多个功能按钮。例如,工具栏520至少包括用于向文档中***内容的“***”按钮。假设用户已经点击了“***”按钮,则与***功能相关联的下拉框530被呈现。下拉框530至少包括用于***图片的“图片”按钮。
假设用户在视觉显示500A中点击了“图片”按钮,则文件编辑器的用户界面被更新为图5B中的视觉显示500B。如图5B所示,与“图片”按钮相关联的选项框540被呈现。选项框540包括例如用于选择本设备(即,桌面计算机)作为图片来源的选项按钮、用于选择终端设备M作为图片来源的选项按钮、用于选择云存储作为图片来源的选项按钮等。
假设用户在视觉显示500B中点击了选项框540中的用于选择终端设备M作为图片来源的选项按钮,则文件编辑器可以将该点击操作识别作为触发操作,并且该触发操作是对终端设备M的指定。该触发操作可以指示将要获取终端设备M中的目标数据,例如,与终端设备M中的预定资源目录“相机”下的照片和视频资源相关联的元数据。文件编辑器可以响应于该触发操作来生成数据请求,该数据请求包括与该目标数据相对应的资源描述语句。以跨设备数据传送网络单元包括设备代理服务器和连接传输服务器为例,文件编辑器可以进而将数据请求发送给设备代理服务器。
设备代理服务器可以将数据请求中的API转换为数据命令。该数据命令经由连接传输服务器和WebSocket服务器而最终被发送到终端设备M中的设备客户端。
终端设备M中的设备客户端基于该数据命令来获取目标数据,例如,与终端设备M中的“相机”目录下的照片和视频资源相关联的元数据。设备客户端将该目标数据包括到命令响应中。该命令响应经由WebSocket服务器和连接传输服务器而最终被发送到设备代理服务器。
设备代理服务器提取该命令响应中的目标数据,并且将该目标数据包括到请求响应中。设备代理服务器将该请求响应发送给文件编辑器。
文件编辑器提取该请求响应中的目标数据,并且在用户界面中呈现目标数据。例如,文件编辑器的用户界面被更新为图5C中的视觉显示500C。在视觉显示500C中的方框550中呈现了目标数据,例如,终端设备M中的“相机”目录下的照片和视频资源相关联的元数据。
假设用户在视觉显示500C中点击了名称为“1103921”的照片的缩略图,以表明用户想要选择该照片,则文件编辑器可以将该点击操作识别作为触发操作,并且该触发操作是对终端设备M中的资源的指定。该触发操作可以指示将要获取终端设备M中的目标数据,例如,照片“1103921”。文件编辑器可以响应于该触发操作来生成数据请求,该数据请求包括与目标数据相对应的资源描述语句。文件编辑器可以进而将该数据请求发送给设备代理服务器。
设备代理服务器可以将该数据请求中的API转换为数据命令。该数据命令经由连接传输服务器和WebSocket服务器而最终被发送到终端设备M中的设备客户端。
终端设备M中的设备客户端基于该数据命令来获取目标数据。例如,设备客户端从终端设备M的存储单元中提取照片“1103921”的源文件。设备客户端将该目标数据包括到命令响应中。该命令响应经由WebSocket服务器和连接传输服务器而最终被发送到设备代理服务器。
设备代理服务器提取命令响应中的目标数据,并且将该目标数据包括到请求响应中。设备代理服务器将该请求响应发送给文件编辑器。
文件编辑器提取该请求响应中的目标数据,并且向正在编辑的文档中***目标数据。例如,文件编辑器的用户界面被更新为图5D中的视觉显示500D。在视觉显示500D中示出了照片“1103921”已经作为图片560而被***到文档区域510中。
应当理解,图5A至图5D中的所有元素都是示例性的,并且以上结合图5A至图5D所描述的所有操作也都是示例性的。
此外,应当理解,本公开的实施例并不局限于图4A至图4E中的应用场景和图5A至图5D中的应用场景,而是还具有更多其他的应用场景。本公开的实施例可以使得第一终端设备中的任意目标应用能够从第二终端设备处获取各种类型的目标数据以进行处理。例如,在第一终端设备中的目标应用是文件浏览器的情况下,本公开的实施例可以使得用户能够在文件浏览器中查看第二终端设备中存储的文件,相应地,第二终端设备可以被视为第一终端设备的扩展。例如,在第一终端设备中的目标应用是在线会议应用的情况下,本公开的实施例可以使得用户能够在在线会议应用中获取和共享第二终端设备中存储的资源。例如,在第一终端设备中的目标应用是电子邮件应用的情况下,本公开的实施例可以使得用户能够在电子邮件应用中获取和使用第二终端设备中存储的各种资源,例如,向电子邮件中***第二终端设备中所存储的文件、获取第二终端设备中的联系人信息并发起针对特定联系人的电子邮件等。本公开的实施例并不受到以上描述的示例性应用场景的任何限制。
图6示出了根据实施例的用于跨设备数据传送的示例性方法600的流程图。方法600可以由第一终端设备中的目标应用实施。
在610处,可以在所述目标应用的用户界面中识别触发操作,所述触发操作指示获取第二终端设备中的目标数据。
在620处,可以响应于所述触发操作来生成数据请求,所述数据请求包括与所述第二终端设备中的所述目标数据相对应的资源描述语句。
在630处,可以向跨设备数据传送网络单元发送所述数据请求。
在640处,可以从所述跨设备数据传送网络单元接收请求响应,所述请求响应包括所述目标数据。
在一种实现方式中,所述触发操作可以包括以下至少之一:对所述第二终端设备的指定;对所述第二终端设备中的资源目录的指定;对所述第二终端设备中的资源的指定;以及对所述第二终端设备中的资源的一部分的指定。所述目标数据可以包括以下至少之一:与所述第二终端设备中的预定资源目录下的资源相关联的元数据;与所述第二终端设备中的指定资源目录下的资源相关联的元数据;所述第二终端设备中的指定资源;以及所述第二终端设备中的指定资源的指定部分。
在一种实现方式中,所述发送所述数据请求可以包括:经由http连接,向所述跨设备数据传送网络单元发送所述数据请求。所述接收请求响应可以包括:经由http连接,从所述跨设备数据传送网络单元接收所述请求响应。
在一种实现方式中,所述资源描述语句可以是至少利用与所述触发操作相对应的API来定义的。
应当理解,方法600还可以包括根据上述本公开实施例的由第一终端设备中的目标应用所实施的用于跨设备数据传送的任何步骤/操作。
图7示出了根据实施例的用于跨设备数据传送的示例性方法700的流程图。方法700可以由跨设备数据传送网络单元实施。
在710处,可以从第一终端设备中的目标应用处接收数据请求,所述数据请求包括与第二终端设备中的目标数据相对应的资源描述语句。
在720处,可以基于所述资源描述语句来生成数据命令。
在730处,可以向所述第二终端设备中的设备客户端发送所述数据命令。
在740处,可以接收来自所述设备客户端的命令响应,所述命令响应包括所述目标数据。
在750处,可以向所述第一终端设备中的所述目标应用发送请求响应,所述请求响应包括所述目标数据。
在一种实现方式中,所述生成数据命令可以包括:根据终端数据协议,将所述资源描述语句转换为所述数据命令;或者将所述资源描述语句作为所述数据命令。
在一种实现方式中,所述接收数据请求可以包括:经由http连接,从所述第一终端设备中的所述目标应用处接收所述数据请求。所述发送请求响应可以包括:经由http连接,向所述第一终端设备中的所述目标应用发送所述请求响应。
在一种实现方式中,所述发送所述数据命令可以包括:经由利用WebSocket服务器所建立的WebSocket连接,向所述第二终端设备中的所述设备客户端发送所述数据命令。所述接收来自所述设备客户端的命令响应可以包括:经由利用所述WebSocket服务器所建立的WebSocket连接,接收来自所述设备客户端的所述命令响应。
在一种实现方式中,所述资源描述语句可以是利用API来定义的,或者是利用API和对应的参数来定义的。所述API可以是REST API。
应当理解,方法700还可以包括根据上述本公开实施例的由跨设备数据传送网络单元所实施的用于跨设备数据传送的任何步骤/操作。
图8示出了根据实施例的用于跨设备数据传送的示例性方法800的流程图。方法800可以由第二终端设备中的设备客户端实施。
在810处,可以接收来自跨设备数据传送网络单元的数据命令,所述数据命令指示获取所述第二终端设备中的目标数据。
在820处,可以基于所述数据命令来获取所述目标数据。
在830处,可以向所述跨设备数据传送网络单元发送命令响应,所述命令响应包括所述目标数据。
在一种实现方式中,所述目标数据可以是所述第二终端设备中的指定资源的指定部分。所述获取所述目标数据可以包括:基于所述数据命令,从所述第二终端设备的存储单元中提取所述指定资源;以及基于所述数据命令,从所述指定资源中提取所述指定部分。
在一种实现方式中,所述接收来自跨设备数据传送网络单元的数据命令可以包括:经由利用WebSocket)服务器所建立的WebSocket连接,接收来自所述跨设备数据传送网络单元的所述数据命令。所述向所述跨设备数据传送网络单元发送命令响应可以包括:经由利用所述WebSocket服务器所建立的WebSocket连接,向所述跨设备数据传送网络单元发送所述命令响应。
应当理解,方法800还可以包括根据上述本公开实施例的由第二终端设备中的设备客户端所实施的用于跨设备数据传送的任何步骤/操作。
图9示出了根据实施例的用于跨设备数据传送的示例性装置900。装置900可以在第一终端设备中的目标应用中实施。装置900可以包括:触发操作识别模块910,用于在所述目标应用的用户界面中识别触发操作,所述触发操作指示获取第二终端设备中的目标数据;数据请求生成模块920,用于响应于所述触发操作来生成数据请求,所述数据请求包括与所述第二终端设备中的所述目标数据相对应的资源描述语句;数据请求发送模块930,用于向跨设备数据传送网络单元发送所述数据请求;以及请求响应接收模块940,用于从所述跨设备数据传送网络单元接收请求响应,所述请求响应包括所述目标数据。此外,装置900还可以包括被配置用于执行根据上述本公开实施例的由第一终端设备中的目标应用所实施的用于跨设备数据传送的任何步骤/操作的任何其它模块。
图10示出了根据实施例的用于跨设备数据传送的示例性装置1000。装置1000可以在跨设备数据传送网络单元中实施。装置1000可以包括:数据请求接收模块1010,用于从第一终端设备中的目标应用处接收数据请求,所述数据请求包括与第二终端设备中的目标数据相对应的资源描述语句;数据命令生成模块1020,用于基于所述资源描述语句来生成数据命令;数据命令发送模块1030,用于向所述第二终端设备中的设备客户端发送所述数据命令;命令响应接收模块1040,用于接收来自所述设备客户端的命令响应,所述命令响应包括所述目标数据;以及请求响应发送模块1050,用于向所述第一终端设备中的所述目标应用发送请求响应,所述请求响应包括所述目标数据。此外,装置1000还可以包括被配置用于执行根据上述本公开实施例的由跨设备数据传送网络单元所实施的用于跨设备数据传送的任何步骤/操作的任何其它模块。
图11示出了根据实施例的用于跨设备数据传送的示例性装置1100。装置1100可以在第二终端设备中的设备客户端中实施。装置1100可以包括:数据命令接收模块1110,用于接收来自跨设备数据传送网络单元的数据命令,所述数据命令指示获取所述第二终端设备中的目标数据;目标数据获取模块1120,用于基于所述数据命令来获取所述目标数据;以及命令响应发送模块1130,用于向所述跨设备数据传送网络单元发送命令响应,所述命令响应包括所述目标数据。此外,装置1100还可以包括被配置用于执行根据上述本公开实施例的由第二终端设备中的设备客户端所实施的用于跨设备数据传送的任何步骤/操作的任何其它模块。
图12示出了根据实施例的用于跨设备数据传送的示例性装置1200。装置1200可以包括:至少一个处理器1210;以及存储器1220,其存储计算机可执行指令。当所述计算机可执行指令被运行时,使得至少一个处理器1210执行根据上述本公开实施例的用于跨设备数据传送的方法的任何步骤/过程。
本公开的实施例提出了一种用于跨设备数据传送的***。所述***可以包括跨设备数据传送网络单元和WebSocket服务器。所述跨设备数据传送网络单元可以包括设备代理服务器和连接传输服务器。所述设备代理服务器可以被配置用于:从第一终端设备中的目标应用处接收数据请求,所述数据请求包括与第二终端设备中的目标数据相对应的资源描述语句;基于所述资源描述语句来生成数据命令;将所述数据命令发送给所述连接传输服务器;从所述连接传输服务器处接收命令响应,所述命令响应包括所述目标数据;以及向所述第一终端设备中的所述目标应用发送请求响应,所述请求响应包括所述目标数据。所述连接传输服务器可以被配置用于:将从所述设备代理服务器处接收的所述数据命令发送给所述WebSocket服务器;以及将从所述WebSocket服务器处接收的所述命令响应发送给所述设备代理服务器。所述WebSocket服务器可以被配置用于:将从所述连接传输服务器处接收的所述数据命令发送给所述第二终端设备中的设备客户端;以及将从所述设备客户端处接收的所述命令响应发送给所述连接传输服务器。
在一种实现方式中,所述设备代理服务器可以被配置用于:经由http连接与所述第一终端设备中的所述目标应用进行通信,并且经由http连接与所述连接传输服务器进行通信。
在一种实现方式中,所述WebSocket服务器可以被配置用于:经由WebSocket连接与所述连接传输服务器进行通信,并且经由WebSocket连接与所述第二终端设备中的所述设备客户端进行通信。
在一种实现方式中,所述设备代理服务器可以被配置用于:根据针对所述第二终端设备而定义的终端数据协议,将所述资源描述语句转换为所述数据命令并且从所述命令响应中提取所述目标数据。
在一种实现方式中,所述连接传输服务器可以被配置用于:根据针对所述第二终端设备而定义的传输协议,对所述数据命令和所述命令响应执行传输层处理。
在一种实现方式中,所述设备代理服务器和所述连接传输服务器可以是两个独立的网络实体或者位于同一个网络实体中。
此外,所述跨设备数据传送网络单元、所述WebSocket服务器、所述设备代理服务器和所述连接传输服务器还可以被配置用于执行根据上述本公开实施例的用于跨设备数据传送的任何步骤/操作。
本公开的实施例提出了用于跨设备数据传送的计算机程序产品。所述计算机程序产品可以包括计算机程序,所述计算机程序被至少一个处理器运行用于执行根据上述本公开实施例的用于跨设备数据传送的方法的任何步骤/过程。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于跨设备数据传送的方法的任何步骤/过程。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
另外,除非另有规定或者从上下文能清楚得知针对单数形式,否则如本说明书和所附权利要求书中所使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个”或者“一个或多个”。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在***上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将由权利要求所覆盖。

Claims (20)

1.一种用于跨设备数据传送的方法,所述方法由第一终端设备中的目标应用实施,所述方法包括:
在所述目标应用的用户界面中识别触发操作,所述触发操作指示获取第二终端设备中的目标数据;
响应于所述触发操作来生成数据请求,所述数据请求包括与所述第二终端设备中的所述目标数据相对应的资源描述语句;
向跨设备数据传送网络单元发送所述数据请求;以及
从所述跨设备数据传送网络单元接收请求响应,所述请求响应包括所述目标数据。
2.如权利要求1所述的方法,其中,
所述触发操作包括以下至少之一:对所述第二终端设备的指定;对所述第二终端设备中的资源目录的指定;对所述第二终端设备中的资源的指定;以及对所述第二终端设备中的资源的一部分的指定,并且
所述目标数据包括以下至少之一:与所述第二终端设备中的预定资源目录下的资源相关联的元数据;与所述第二终端设备中的指定资源目录下的资源相关联的元数据;所述第二终端设备中的指定资源;以及所述第二终端设备中的指定资源的指定部分。
3.如权利要求1所述的方法,其中,
所述发送所述数据请求包括:经由http连接,向所述跨设备数据传送网络单元发送所述数据请求,并且
所述接收请求响应包括:经由http连接,从所述跨设备数据传送网络单元接收所述请求响应。
4.如权利要求1所述的方法,其中,
所述资源描述语句是至少利用与所述触发操作相对应的应用编程接口(API)来定义的。
5.一种用于跨设备数据传送的方法,所述方法由跨设备数据传送网络单元实施,所述方法包括:
从第一终端设备中的目标应用处接收数据请求,所述数据请求包括与第二终端设备中的目标数据相对应的资源描述语句;
基于所述资源描述语句来生成数据命令;
向所述第二终端设备中的设备客户端发送所述数据命令;
接收来自所述设备客户端的命令响应,所述命令响应包括所述目标数据;以及
向所述第一终端设备中的所述目标应用发送请求响应,所述请求响应包括所述目标数据。
6.如权利要求5所述的方法,其中,所述生成数据命令包括:
根据终端数据协议,将所述资源描述语句转换为所述数据命令;或者
将所述资源描述语句作为所述数据命令。
7.如权利要求5所述的方法,其中,
所述接收数据请求包括:经由http连接,从所述第一终端设备中的所述目标应用处接收所述数据请求,并且
所述发送请求响应包括:经由http连接,向所述第一终端设备中的所述目标应用发送所述请求响应。
8.如权利要求5所述的方法,其中,
所述发送所述数据命令包括:经由利用Web套接字(WebSocket)服务器所建立的WebSocket连接,向所述第二终端设备中的所述设备客户端发送所述数据命令,并且
所述接收来自所述设备客户端的命令响应包括:经由利用所述WebSocket服务器所建立的WebSocket连接,接收来自所述设备客户端的所述命令响应。
9.如权利要求5所述的方法,其中,
所述资源描述语句是利用应用编程接口(API)来定义的,或者是利用API和对应的参数来定义的。
10.如权利要求9所述的方法,其中,
所述API是表征状态转移(REST)API。
11.一种用于跨设备数据传送的方法,所述方法由第二终端设备中的设备客户端实施,所述方法包括:
接收来自跨设备数据传送网络单元的数据命令,所述数据命令指示获取所述第二终端设备中的目标数据;
基于所述数据命令来获取所述目标数据;以及
向所述跨设备数据传送网络单元发送命令响应,所述命令响应包括所述目标数据。
12.如权利要求11所述的方法,其中,
所述目标数据是所述第二终端设备中的指定资源的指定部分,并且
所述获取所述目标数据包括:基于所述数据命令,从所述第二终端设备的存储单元中提取所述指定资源;以及基于所述数据命令,从所述指定资源中提取所述指定部分。
13.如权利要求11所述的方法,其中,
所述接收来自跨设备数据传送网络单元的数据命令包括:经由利用Web套接字(WebSocket)服务器所建立的WebSocket连接,接收来自所述跨设备数据传送网络单元的所述数据命令,并且
所述向所述跨设备数据传送网络单元发送命令响应包括:经由利用所述WebSocket服务器所建立的WebSocket连接,向所述跨设备数据传送网络单元发送所述命令响应。
14.一种用于跨设备数据传送的***,包括跨设备数据传送网络单元和Web套接字(WebSocket)服务器,所述跨设备数据传送网络单元包括设备代理服务器和连接传输服务器,其中,
所述设备代理服务器被配置用于:从第一终端设备中的目标应用处接收数据请求,所述数据请求包括与第二终端设备中的目标数据相对应的资源描述语句;基于所述资源描述语句来生成数据命令;将所述数据命令发送给所述连接传输服务器;从所述连接传输服务器处接收命令响应,所述命令响应包括所述目标数据;以及向所述第一终端设备中的所述目标应用发送请求响应,所述请求响应包括所述目标数据,
所述连接传输服务器被配置用于:将从所述设备代理服务器处接收的所述数据命令发送给所述WebSocket服务器;以及将从所述WebSocket服务器处接收的所述命令响应发送给所述设备代理服务器,并且
所述WebSocket服务器被配置用于:将从所述连接传输服务器处接收的所述数据命令发送给所述第二终端设备中的设备客户端;以及将从所述设备客户端处接收的所述命令响应发送给所述连接传输服务器。
15.如权利要求14所述的***,其中,所述设备代理服务器被配置用于:
经由http连接与所述第一终端设备中的所述目标应用进行通信,并且经由http连接与所述连接传输服务器进行通信。
16.如权利要求14所述的***,其中,所述WebSocket服务器被配置用于:
经由WebSocket连接与所述连接传输服务器进行通信,并且经由WebSocket连接与所述第二终端设备中的所述设备客户端进行通信。
17.如权利要求14所述的***,其中,所述设备代理服务器被配置用于:
根据针对所述第二终端设备而定义的终端数据协议,将所述资源描述语句转换为所述数据命令并且从所述命令响应中提取所述目标数据。
18.如权利要求14所述的***,其中,所述连接传输服务器被配置用于:
根据针对所述第二终端设备而定义的传输协议,对所述数据命令和所述命令响应执行传输层处理。
19.如权利要求14所述的***,其中,
所述设备代理服务器和所述连接传输服务器是两个独立的网络实体或者位于同一个网络实体中。
20.一种用于跨设备数据传送的装置,包括:
至少一个处理器;以及
存储器,其存储计算机可执行指令,当所述计算机可执行指令被运行时使得所述至少一个处理器执行如权利要求1至13中任一项所述的方法中的操作。
CN202211334801.2A 2022-10-28 2022-10-28 基于请求响应模式的跨设备数据传送 Pending CN117997961A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211334801.2A CN117997961A (zh) 2022-10-28 2022-10-28 基于请求响应模式的跨设备数据传送
PCT/US2023/032818 WO2024091346A1 (en) 2022-10-28 2023-09-15 Cross-device data transfer based on a request-responding mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211334801.2A CN117997961A (zh) 2022-10-28 2022-10-28 基于请求响应模式的跨设备数据传送

Publications (1)

Publication Number Publication Date
CN117997961A true CN117997961A (zh) 2024-05-07

Family

ID=88315812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211334801.2A Pending CN117997961A (zh) 2022-10-28 2022-10-28 基于请求响应模式的跨设备数据传送

Country Status (2)

Country Link
CN (1) CN117997961A (zh)
WO (1) WO2024091346A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580097A (zh) * 2013-10-22 2015-04-29 腾讯科技(深圳)有限公司 一种数据处理方法、装置及***
US9578087B1 (en) * 2015-09-18 2017-02-21 Cloudflare, Inc. Methods and apparatuses for providing a desired portion of a data object document

Also Published As

Publication number Publication date
WO2024091346A1 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
US10992736B2 (en) Information processing method, apparatus, terminal, and server
KR101902948B1 (ko) 정보 공유 방법 및 장치
US20170134495A1 (en) Method and apparatus for sharing collaboratively edited document
JP5887025B2 (ja) 情報送信方法、装置、およびシステム、端末、およびサーバ
JP2017517063A (ja) インスタントメッセージングシステムおよび方法
TW201929498A (zh) 資訊傳輸方法和裝置
CN111368173A (zh) 文件传输方法、装置、电子设备及可读存储介质
WO2017174026A1 (zh) 一种客户端连接方法及***
JP7076471B2 (ja) 即時通信アプリケーションにおけるファイル送信
US20140164534A1 (en) System for sending a content item through an online content management system
EP3068070A1 (en) Method and device for initiating network conference
US20150319200A1 (en) Natural User Interface for Remote Communication: An Interactive Collaboration System that allows Co-drawing Pad, Co-browsing/sharing Web/Document Files Using Session Initial Protocol (SIP)/Short Message Peer-to-Peer Protocol (SMPP) to Wake Up Remote Devices
CN104376090A (zh) 计算设备的浏览器与移动终端的屏幕同步
CN106209584B (zh) 基于互联网的用户信息处理方法、客户端及服务器
KR101699066B1 (ko) Html5 템플릿 기반의 메시지 전송방법
US8264725B1 (en) Providing printable content
CN111327680B (zh) 认证数据同步方法、装置、***、计算机设备和存储介质
CN117997961A (zh) 基于请求响应模式的跨设备数据传送
CN111404977B (zh) 文档远程演示和观看方法以及终端设备
JP2017174276A (ja) プログラム及び遠隔会議方法
CN115297105A (zh) 文件传输方法、装置、计算机设备及存储介质
KR102246581B1 (ko) 클라우드 컴퓨팅 환경을 통한 파일 업로드 방법 및 이를 수행하기 위한 프록시 서버
JP4933573B2 (ja) Webシステムにおける分散処理方法およびwebシステムにおける分散処理システム
CN114035761B (zh) 一种数据传输的方法、***、装置和存储介质
CN113873044B (zh) 数据传输方法、***、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination