CN105404616A - 用于数据移动的方法和系统 - Google Patents

用于数据移动的方法和系统 Download PDF

Info

Publication number
CN105404616A
CN105404616A CN201410277170.4A CN201410277170A CN105404616A CN 105404616 A CN105404616 A CN 105404616A CN 201410277170 A CN201410277170 A CN 201410277170A CN 105404616 A CN105404616 A CN 105404616A
Authority
CN
China
Prior art keywords
data
processing channel
data processing
data type
type
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
CN201410277170.4A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410277170.4A priority Critical patent/CN105404616A/zh
Priority to US14/709,649 priority patent/US20150370764A1/en
Publication of CN105404616A publication Critical patent/CN105404616A/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本公开内容涉及用于数据移动的方法和系统。本发明的一个实施例提供一种用于数据移动的方法,包括:接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。还公开了相应的系统。

Description

用于数据移动的方法和系统
技术领域
本发明的实施例总体上涉及数据处理领域,更具体地,涉及用于数据移动的方法和系统。
背景技术
用户经常需要将数据移动到电子设备上运行的应用中。例如,常见的情境是在不同的应用之间或者在同一应用内转移数据。为此,多数电子设备的操作系统(OS)都提供有数据移动功能。一种常见的数据移动功能是“拷贝-粘贴”(copy-paste)功能。拷贝操作允许将指定的数据从一个应用(称为“源应用”)复制到操作系统提供的称为“剪贴板”的缓冲区。随后,可以借助于“粘贴”操作将这些数据转移到另一应用(称为“目标应用”)中。
传统的数据移动方案无法很好地处理混合数据(mixeddata)的移动。在此使用的术语“混合数据”是指由不同数据类型的数据构成的数据。例如,将要移动的数据可能同时包括图像和文本这两种不同数据类型的数据。此时,如果目标应用不能同时支持这两种数据类型,则相应的数据将在粘贴时被丢失。
实际上,即使目标应用支持待移动数据中的多种数据类型,仍然可能发生数据丢失。例如,目标应用可能使用不同的数据处理通道(dataprocessingchannel)来处理不同数据类型的数据。在此使用的术语“数据处理通道”是指用于处理给定数据类型的数据的软件、硬件或其组合。作为示例,在目标应用中,用于文本和图像的数据处理通道可能彼此独立,并且具有各自的用户界面(UI)组件。此时,如果用户在与文本处理通道相关联的UI组件(例如,文本编辑器)中执行粘贴操作,则只有文本数据被复制到目标应用中。换言之,尽管目标应用能够支持图像,但是待移动数据中的图像仍然将被丢失。
综上所述,本领域中一种更加有效的支持混合数据移动的技术方案。
发明内容
一般地,本发明的实施例提出用于移动混合数据的技术方案。
在一个方面,本发明的实施例提供一种用于数据移动的方法。所述方法包括:接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。
在另一方面,本发明的实施例提供一种用于数据移动的系统。所述系统包括:请求接收单元,被配置为接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;确定单元,被配置为响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;第一数据处理单元,被配置为响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及第二数据处理单元,被配置为响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。
通过下文描述将会理解,根据本发明的实施例,能够方便地移动混合数据。在目标应用无法直接支持混合数据的格式的情况下,数据移动的粒度被降低到混合数据中的各个数据类型。具体而言,对于混合数据中的每种数据类型,可以逐个确定在目标应用中是否具有支持该数据类型的数据处理通道。以此方式,能够最大限度地避免在数据移动过程中的数据丢失。而且,在某些实施例中,对不同数据类型的处理可以根据层级式结构而渐进地执行,从而确保数据移动高效地完成。另外,即使某些数据类型无法被直接支持,在某些实施例中,允许通过数据类型转换进一步降低数据丢失的风险。本发明的其他特征和优点将通过下文描述而变得容易理解。
附图说明
通过结合附图对本发明示例性实施方式进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显其中:
图1示出了适于用来实现本发明实施例的示例性计算机系统/服务器的示意性框图;
图2示出了在应用之间移动数据的示意图;
图3示出了根据本发明实施例的用于数据移动的方法的示意性流程图;
图4示出了根据本发明实施例的用于待移动数据的数据包的示意性框图;
图5示出了待移动数据的示意图;
图6示出了根据本发明实施例的包含复合数据类型的数据包的示意性框图;
图7示出了根据本发明实施例的利用应用中的不同数据处理通道来处理混合数据的示意图;以及
图8示出了根据本发明实施例的用于数据移动的系统的示意性框图。
在附图中,相同或相似的标号被用来表示相同或相似的元素。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的方框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面将详细描述本发明的实施例。首先参考图2,其示出了将数据从一个应用移动到另一应用的示例。在图2所示的示例中,用户指示从源应用200向目标应用201移动数据202。在此示例中,待移动的数据202包括文本203以及图像204。如果目标应用201同时支持图像和文本这两种数据类型,则数据202可被直接移动到目标应用201中,这是已知的并且不再赘述。然而,如果目标应用不支持文本或者图像,则文本203或者图像204将在数据移动过程中被丢失。
而且,由于后台处理过程、存储位置等方面的差异,目标应用201可能借助于不同的数据处理通道来接收和处理不同类型的数据项。不同的数据处理通道可与各自的UI组件相关联。在图2所示的示例中,目标应用201是一个聊天应用,并且具有用于处理文本消息的文本框205和用于添加图像的图标206。UI组件205和206分别与目标应用201的文本处理通道和图像处理通道相关联,这两个通道彼此独立。此时,如果用户在焦点(例如,光标)置于文本框205的情况下执行“粘贴”操作,则传统的数据移动方案将丢弃数据202中的图像204,这是因为文本框205无法支持对图像的处理。因此,在传统的数据移动方案中,用户至少要通过两轮“拷贝-粘贴”操作才能将文本203和图像204从源应用200移动到目标应用201。这将降低操作效率并且对用户体验产生不利影响。
为了克服传统方案的缺陷,本发明的实施例提供一种用于移动混合数据的新技术方案。图3示出了根据本发明示例性实施例的用于数据移动的方法300的流程图。根据本发明的实施例,方法300可在目标应用处执行。备选地,方法300也可由系统(例如,OS)中管理数据移动的组件或模块来执行。
在步骤S301,接收向应用移动数据的请求。将会理解,在此所说的“应用”是指作为数据移动的目的地的目标应用。根据本发明的实施例,数据移动请求可以通过各种形式被发起。例如,在某些应用中,用户可以将焦点置于目标应用或其特定UI组件上,并且通过操作目标应用上的交互控件(例如,点击“粘贴”按钮)来发起数据移动请求。用户也可以通过与数据移动功能相关联的预定义快捷键、手势或者其他任何适当的交互方式来发起数据移动请求。备选地,在某些实施例中,系统可以向用户提供潜在目标应用的列表。用户可以选择列表中的一个或多个应用,从而发起数据移动请求。
待移动的数据可以来自于另一应用(即,源应用)。如同上文参考图2描述的示例,在某些实施例中,用户可以在源应用中选择期望移动的数据,并且例如通过“拷贝”或者“剪切”操作将数据复制到系统中的应用可访问的缓冲区(例如,剪贴板或者数据总线)。随后,这些数据可以从剪贴板或数据总线被移动到指定的目标应用。备选地,待移动的数据也可以来自任何其他适当的来源,本发明的范围在此方面不受限制。
特别地,根据本发明的实施例,待移动的数据是混合数据。具体而言,此类数据中至少包括两种不同类型的数据。数据类型可以是纯文本、超文本标记语言(HTML)文本、图像、视频、音频、超链接等任何目前已知或者将来开发的数据类型。在下文描述中,待移动的数据将被描述为包括第一数据类型的第一数据和第二数据类型的第二数据。应当理解的是,这仅仅是出于讨论方便之目的,绝非意在限制本发明的范围。待移动数据中的数据类型的数目可以是任意的。
根据本发明的实施例,待移动数据可以被组织在特定格式的数据包(datapackage)中。数据包中的各个数据项对应于的各个数据类型的数据。而且,在某些实施例中,数据包还可以包含元数据(metadata),用以描述数据的位置、布局等信息。根据本发明的实施例,用于待移动数据的数据包可以由源应用响应于用户的拷贝动作而生成。备选地,此种数据包也可由系统的剪贴板或者其他专门部件来生成。
作为示例,图4示出了根据本发明一个实施例的用于图2中所示的待移动数据202的数据包400。在此示例中,数据包400为HTML格式。数据包400包括用于文本203的文本数据项401以及用于图像204的图像数据项402。在某些实施例中,数据项401和/或402可以包括相关的数据本身。备选地,数据项401和/或402可以仅包含对相关数据的引用(例如,数据指针),而数据则存储在系统的缓冲区中。如图所示,数据包400还包括元数据403。在此例中,元数据403是层叠样式表单(CSS),用于描述文本203与图像204之间的位置和布局,等等。
在某些实施例中,待移动数据中的各类数据可以按照布局上的包含关系和/或数据类型而被组织在层级结构(hierarchicalstructure)中。例如,在一个实施例中,互不包含的数据(不论其是否具有相同的数据类型)可以被布置在层级结构的相同级别中。反之,彼此包含的数据则根据其包含关系被布置在不同层级中。例如,在上文参考图2描述的示例中,文本203和图像204互不包含,因此可以被布置在相同的级别中。
特别地,在某些实施例中,待移动数据可以包含复合数据类型(compositedatatype)的数据。在此使用的术语“复合数据类型”是由不止一个简单数据类型组成的数据类型。图5和图6示出了一个复合数据类型的示例。图5所示的示例与图2基本相似,区别在于待移动数据500不仅包括纯文本203和图像204,还包括超链接501。超链接501被包含在文本203中。由此,在一个实施例中,纯文本和超链接这两个数据类型组成一个复合数据类型。图6示出了用于数据500的数据包600。在数据包600中,复合数据项601对应于由纯文本和超链接组成的复合数据类型,它包括用于文本203的数据项602和用于超链接501的数据项603。
将待移动的数据组织在层级结构中是有利的,这将在下文详述。然而应当理解,本发明的实施例并非必须如此。例如,在某些备选实施例中,数据包可以是平面结构,其中的各个数据项之间不具有层级关系。本发明的范围在此方面不受限制。
仍然参考图3,响应于步骤S301处接收的数据移动请求,方法300进行到步骤S302,在此确定目标应用是否支持接收到的数据的格式。具体而言,假设待移动的数据至少包括第一数据类型的第一数据和第二数据类型的第二数据。在步骤S302,确定目标应用中是否具有同时支持第一数据类型和第二数据类型的数据处理通道。在此使用的术语“支持”是指目标应用(更具体地,目标应用的数据处理通道)能够解析和处理特定数据类型的数据。
如果目标应用能够直接处理待移动数据的整个数据包(分支“是”),方法300进行到步骤S303,在此由目标应用直接接受和处理数据。例如,在上文参考图4描述的示例中,如果目标应用的某个数据处理通道解析和处理HTML格式的数据包400,则目标应用可以直接接受待移动的数据,并且处理数据包400中的数据项。特别地,即使目标应用201无法直接支持数据包400,但是如果它能够将整个数据包400转换为可支持的格式(例如图像),同样认为目标应用201支持待移动数据的格式。
另一方面,如果在步骤S302处确定目标应用不具有同时支持第一数据类型和第二数据类型的数据处理通道(分支“否”),方法300进行到步骤S304,在此确定目标应用是否具有分别支持各数据类型的不同数据处理通道。也即,确定目标应用是否具有支持第一数据类型的第一数据处理通道以及支持第二数据类型的第二数据处理通道。可以理解,在这种情况下,本发明的实施例会针对待移动数据中的不同数据类型,分别确定目标应用是否具有相应的数据处理通道。例如,在一个实施例中,可以针对待移动数据中的每种数据类型,逐个确定目标应用是否具有能够支持该数据类型的数据处理通道。
例如,在图4所示的示例中,假设目标应用201无法支持HTML格式的数据包400。此时,在步骤S304,将会分别确定目标应用是否具有支持文本的数据处理通道以及支持图像的数据处理通道。以此方式,可以有效地避免待拷贝数据中的特定类型的数据项被丢弃。
返回图2考虑一个具体示例。假设用户在焦点处于目标应用201的文本框205的情况下执行“粘贴”操作。此时,在步骤S302处确定:目标应用201中没有同时支持文本和图像两种数据类型的数据处理通道。而且,与文本框205相关联的文本处理通道无法支持图像。由此,在步骤S304,分别确定目标应用200是否具有支持文本(第一数据类型)的第一数据处理通道和支持图像(第二数据类型)的数据处理通道。在此例中,确定目标应用200具有支持文本的第一数据处理通道,即,与文本框205相关联的文本处理通道;并且具有支持图像的第二数据处理通道,即,与图像图标206相关联的图像处理通道。相应地,文本203和图像204可分别由第一和第二数据处理通道加以处理。
通过此例可以看到,当在与第一数据处理通道相关联的第一UI组件处发起数据移动请求时,即使第一数据处理通道不支持待移动数据中的第二数据类型,也不会发生数据丢失。这是因为,根据本发明的实施例,将在目标应用中搜索支持第二数据类型的第二数据处理通道。
特别地,在待移动数据以层级结构被组织的实施例中,可以根据层级结构所规定的顺序处理各个数据类型。在一个实施例中,处理可以按照自顶向下的顺序执行。备选地,能够遍历层级结构的任何其他顺序均是可行的。借助于这种渐进式或者试探式的方式,能够进一步提高数据移动的效率。考虑图6所示的示例,假设目标应用无法支持包含复合数据项601和图像数据项402的HTML数据包600。此时,目标应用将根据层级结构,逐级处理各个数据类型的数据。如果目标应用201的文本处理通道能够处理由纯文本数据项602和超链接数据项603组成的复合数据项601。此时,目标应用201的文本处理通道可以直接处理复合数据项601,而无需分别处理数据项602和603。以此方式,能够最大程度地利用数据处理通道的能力,避免不必要的处理操作。
特别地,在步骤S304,确定数据处理通道的过程可以包括确定待移动数据中的一个或多个数据类型是否可被转换为目标应用中的至少一个数据处理通道所直接支持的目标格式。例如,仍然图2中的示例,待移动的数据202包括文本203和图像204。假设目标应用201是图像阅览器,并且只具有图像处理通道。此时,目标应用201不具有能够直接支持文本的数据处理通道。然而,如果目标应用201能够将文本203转换为图像,则仍然可以借助于图像处理通道来呈现和处理文本203,而无需将丢弃文本数据。以此方式,能够进一步降低数据丢失的风险。
另外,在某些实施例中,在步骤S304处对数据处理通道的确定可以由目标应用的各个数据处理通道以自治的(autonomous)方式执行。在这样的实施例中,对于每个数据处理通道而言,它所能支持的数据类型是可获得的。例如,一个数据处理通道所支持的数据类型的信息可以被预先编码到该数据处理通道中,也可以被存储在该数据处理通道可访问的存储位置。当接收到数据移动请求时,目标应用的一个或多个数据处理通道被触发。被触发的每个数据处理通道可以自动地检测在接收到的数据中是否存在该数据处理通道所支持的数据类型。如果是,则数据处理通道可以取回相应数据类型的数据项并且进行处理。
特别地,如已知的,数据处理通道可以与应用的界面上的特定UI组件相关联。例如,文本处理通道可以与文本编辑器相关联。因此,在某些实施例中,数据处理通道可以借助于相关联的UI组件来检测待移动的数据。具体而言,在这样的实施例中,UI组件可以响应于数据移动请求而被触发,以确定相关联的数据处理通道是否支持待移动数据中的一个或多个数据类型。
以数据处理通道为基础的数据类型检测是有益的。在这样的实施例中,在构建应用时无需为了支持混合数据的移动而专门设计和开发相应的功能。相反,只需要简单地复用(reuse)数据处理通道和/或相关联的UI组件的混合数据移动功能,便可以容易地支持根据本发明实施例的混合数据移动方案。这样,应用的开发成本和周期将被降低。当然,应当理解,本发明的范围不限于此。在某些备选实施例中,可以由应用执行数据类型的检测,并且将数据分派给支持相应数据类型的数据处理通道。
继续参考图3,如果在步骤S304处确定目标应用具有支持各数据类型的不同数据处理通道,则在步骤S305,可由这些数据处理通道对相应数据类型的数据项进行处理。更具体地,响应于在步骤S304处确定目标应用具有支持第一数据类型的第一数据处理通道,在步骤S305处利用第一数据处理通道来处理第一数据;响应于在步骤S304处确定目标应用具有支持第二数据类型的第二数据处理通道,在步骤S305处利用第二数据处理通道来处理第二数据;以此类推。在一个实施例中,例如,数据处理通道可以借助于相关联的UI组件向用户呈现该数据项。
而且,在某些实施例中,数据处理通道对数据的处理可以包括将数据转换为该数据处理通道所直接支持的数据类型。例如,可以将第一数据从第一数据类型转换为第一数据处理通道所直接支持的类型。类似地;将第二数据从第二数据类型转换为第二数据处理通道所直接支持的类型;以此类推。
例如,根据本发明的实施例,在图2所示的示例中,目标应用201可以利用与文本处理通道相关联的文本框205来处理文本203,并且利用与图像处理通道相关联的图标206来处理图像204。具体而言,如图7所示,响应于在目标应用201处接收到移动数据202的请求,文本203将被显示在文本框205中。而且,在目标应用201中可以产生针对图标206的触发事件,使得目标应用201呈现用于添加图像的UI区域700。相应地,图像204可被显示在UI区域700中并且可以在聊天会话中被发送。
另一方面,对于待移动数据中的某种特定的数据类型,如果在步骤S304处确定目标应用中不存在支持该数据类型的数据处理通道,则在步骤S306处执行错误处理。在一个实施例中,错误处理可以包括丢弃目标应用无法处理的数据类型的数据。可选地,在步骤S306,可以向用户做出丢弃数据的提示。应当理解,不同于现有技术,待移动数据中的任何数据都不是被直接丢弃的。相反,只有在确认目标应用确实无法支持该数据类型时,才被丢弃相应的数据。
图8示出了根据本发明一个实施例的用于数据移动的系统800的框图。如图所述,系统800包括:请求接收单元801,被配置为接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;确定单元802,被配置为响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;第一数据处理单元803,被配置为响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及第二数据处理单元804,被配置为响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。
在某些实施例中,所述第一数据和所述第二数据被布置在层级结构中。在这样的实施例中,所述确定单元802包括:渐进式确定单元,被配置为根据所述层级结构所规定的顺序确定所述应用是否具有所述第一数据处理通道和所述第二数据处理通道。在某些实施例中,所述第一数据类型和所述第二数据类型中的至少一个是由多个简单数据类型组成的复合数据类型。
在某些实施例中,所述确定单元802包括:基于通道的确定单元,被配置为使所述应用的至少一个数据处理通道自动地检测所述数据,以确定所述至少一个数据处理通道是否支持所述第一数据类型和所述第二数据类型中的至少一个。
在某些实施例中,所述第一数据处理单元803包括:转换单元,被配置为将所述第一数据从所述第一数据类型转换为所述第一数据处理通道所直接支持的数据类型。备选地或附加地,第二数据处理单元804也可以具有类似的转换单元。
在某些实施例中,第一数据处理单元803包括:交互处理单元,配置为利用与所述第一数据处理通道相关联的用户界面组件来处理所述第一数据。备选地或附加地,第二数据处理单元804也可以具有类似的交互处理单元。
应当注意,为清晰起见,图8中没有示出系统800所包括的可选单元或者子单元。上文所描述的所有特征和操作分别适用于系统800,故在此不再赘述。而且,系统800中的单元或子单元的划分不是限制性的而是示例性的,旨在从逻辑上描述其主要功能或操作。一个单元的功能可以由多个单元来实现;反之,多个单元亦可由一个单元来实现。本发明的范围在此方面不受限制。
而且,系统800所包含的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,在某些实施方式中,系统800可以利用软件和/或固件来实现。备选地或附加地,系统800可以部分地或者完全地基于硬件来实现。例如,系统800中的一个或多个单元可以实现为集成电路(IC)芯片、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA),等等。本发明的范围在此方面不受限制。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是-但不限于-电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Java、Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
计算机可读程序指令也可加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种用于数据移动的方法,所述方法包括:
接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;
响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;
响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及
响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。
2.根据权利要求1所述的方法,其中所述第一数据和所述第二数据被布置在层级结构中,并且其中确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道包括:
根据所述层级结构所规定的顺序,确定所述应用是否具有所述第一数据处理通道和所述第二数据处理通道。
3.根据权利要求2所述的方法,其中所述第一数据类型和所述第二数据类型中的至少一个是复合数据类型,所述复合数据类型由多个简单数据类型组成。
4.根据权利要求1所述的方法,其中确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道包括:
由所述应用的至少一个数据处理通道检测所述数据,以确定所述至少一个数据处理通道是否支持所述第一数据类型和所述第二数据类型中的至少一个。
5.根据权利要求1所述的方法,其中利用所述第一数据处理通道来处理所述第一数据包括:
将所述第一数据从所述第一数据类型转换为所述第一数据处理通道所直接支持的数据类型。
6.根据权利要求1所述的方法,其中利用所述第一数据处理通道来处理所述第一数据包括:
利用与所述第一数据处理通道相关联的用户界面组件来处理所述第一数据。
7.一种用于数据移动的系统,所述系统包括:
请求接收单元,被配置为接收向应用移动数据的请求,所述数据至少包括第一数据类型的第一数据和第二数据类型的第二数据,所述第一数据类型不同于所述第二数据类型;
确定单元,被配置为响应于所述应用不具有同时支持所述第一数据类型和所述第二数据类型的数据处理通道,确定所述应用是否具有支持所述第一数据类型的第一数据处理通道和支持所述第二数据类型的第二数据处理通道;
第一数据处理单元,被配置为响应于确定所述应用具有所述第一数据处理通道,利用所述第一数据处理通道来处理所述第一数据;以及
第二数据处理单元,被配置为响应于确定所述应用具有所述第二数据处理通道,利用所述第二数据处理通道来处理所述第二数据。
8.根据权利要求7所述的系统,其中所述第一数据和所述第二数据被布置在层级结构中,并且其中所述确定单元包括:
渐进式确定单元,被配置为根据所述层级结构所规定的顺序,确定所述应用是否具有所述第一数据处理通道和所述第二数据处理通道。
9.根据权利要求8所述的系统,其中所述第一数据类型和所述第二数据类型中的至少一个是复合数据类型,所述复合数据类型由多个简单数据类型组成。
10.根据权利要求7所述的系统,其中所述确定单元包括:
基于通道的确定单元,被配置为使所述应用的至少一个数据处理通道检测所述数据,以确定所述至少一个数据处理通道是否支持所述第一数据类型和所述第二数据类型中的至少一个。
11.根据权利要求7所述的系统,其中所述第一数据处理单元包括:
转换单元,被配置为将所述第一数据从所述第一数据类型转换为所述第一数据处理通道所直接支持的数据类型。
12.根据权利要求7所述的系统,其中所述第一数据处理单元包括:
交互处理单元,被配置为利用与所述第一数据处理通道相关联的用户界面组件来处理所述第一数据。
CN201410277170.4A 2014-06-19 2014-06-19 用于数据移动的方法和系统 Pending CN105404616A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410277170.4A CN105404616A (zh) 2014-06-19 2014-06-19 用于数据移动的方法和系统
US14/709,649 US20150370764A1 (en) 2014-06-19 2015-05-12 User input relating to moving data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410277170.4A CN105404616A (zh) 2014-06-19 2014-06-19 用于数据移动的方法和系统

Publications (1)

Publication Number Publication Date
CN105404616A true CN105404616A (zh) 2016-03-16

Family

ID=54869793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410277170.4A Pending CN105404616A (zh) 2014-06-19 2014-06-19 用于数据移动的方法和系统

Country Status (2)

Country Link
US (1) US20150370764A1 (zh)
CN (1) CN105404616A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489032B1 (en) * 2015-07-29 2019-11-26 Google Llc Rich structured data interchange for copy-paste operations
US11960447B2 (en) * 2020-12-31 2024-04-16 Google Llc Operating system-level management of multiple item copy and paste

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005039738A (ja) * 2003-07-18 2005-02-10 Sony Corp 動画像クラスタ処理システム
CN1591409A (zh) * 2001-11-09 2005-03-09 无锡永中科技有限公司 一种使用应用程序处理数据的方法
US20050091603A1 (en) * 2003-10-23 2005-04-28 International Business Machines Corporation System and method for automatic information compatibility detection and pasting intervention
US20110125970A1 (en) * 2009-11-25 2011-05-26 International Business Machines Corporation Automated Clipboard Software

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734905A (en) * 1993-05-06 1998-03-31 Board Of Trustees Of The Leland Stanford Junior University User interface in object oriented computer system for performing intuitive object transformations
GB2326744A (en) * 1997-06-17 1998-12-30 Nokia Mobile Phones Ltd Intelligent copy and paste operations for application handling units
US6128655A (en) * 1998-07-10 2000-10-03 International Business Machines Corporation Distribution mechanism for filtering, formatting and reuse of web based content
US6944821B1 (en) * 1999-12-07 2005-09-13 International Business Machines Corporation Copy/paste mechanism and paste buffer that includes source information for copied data
US20040172584A1 (en) * 2003-02-28 2004-09-02 Microsoft Corporation Method and system for enhancing paste functionality of a computer software application
US20050203935A1 (en) * 2004-03-11 2005-09-15 International Business Machines Corporation Clipboard content and document metadata collection
US7519573B2 (en) * 2004-08-23 2009-04-14 Fuji Xerox Co., Ltd. System and method for clipping, repurposing, and augmenting document content
US20060059247A1 (en) * 2004-09-16 2006-03-16 International Business Machines Corporation Automatic simultaneous entry of values in multiple web page fields
US20060218492A1 (en) * 2005-03-22 2006-09-28 Andrade Jose O Copy and paste with citation attributes
US9275025B2 (en) * 2005-04-29 2016-03-01 Adobe Systems Incorporated Interactive special paste
JP5356821B2 (ja) * 2005-10-07 2013-12-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ソースを、コピーされたテキストにリンクさせるための方法、システム、装置、及び媒体
US8429551B2 (en) * 2007-02-15 2013-04-23 Microsoft Corporation Application-based copy and paste operations
US7870502B2 (en) * 2007-05-29 2011-01-11 Microsoft Corporation Retaining style information when copying content
US8296671B2 (en) * 2008-05-01 2012-10-23 Microsoft Corporation Enabling access to rich data by intercepting paste operations
US10002035B2 (en) * 2009-08-21 2018-06-19 International Business Machines Corporation Visual selection and rendering of multiple clip board formats
CN102902580B (zh) * 2011-07-26 2018-05-15 腾讯科技(深圳)有限公司 一种程序回调方法及装置
US8832578B1 (en) * 2011-12-08 2014-09-09 Google Inc. Visual clipboard on soft keyboard
US9122548B2 (en) * 2012-07-12 2015-09-01 International Business Machines Corporation Clipboard for processing received data content
US9170714B2 (en) * 2012-10-31 2015-10-27 Google Technology Holdings LLC Mixed type text extraction and distribution
US20140380142A1 (en) * 2013-06-20 2014-12-25 Microsoft Corporation Capturing website content through capture services
US10437428B2 (en) * 2017-05-23 2019-10-08 Microsoft Technology Licensing, Llc Scatter copy supporting partial paste functionality

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1591409A (zh) * 2001-11-09 2005-03-09 无锡永中科技有限公司 一种使用应用程序处理数据的方法
JP2005039738A (ja) * 2003-07-18 2005-02-10 Sony Corp 動画像クラスタ処理システム
US20050091603A1 (en) * 2003-10-23 2005-04-28 International Business Machines Corporation System and method for automatic information compatibility detection and pasting intervention
US20110125970A1 (en) * 2009-11-25 2011-05-26 International Business Machines Corporation Automated Clipboard Software

Also Published As

Publication number Publication date
US20150370764A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
CN100504768C (zh) 基于树视图的编辑器中的内联属性编辑系统和方法
US9715706B2 (en) System and method for graphical user interface having a social media multimedia container
US20170010673A1 (en) Gesture based sharing of user interface portion
US9787798B2 (en) Generating collapsed user interface interaction sequence controls in mobile applications
US9069915B2 (en) Identifying and routing poison tuples in a streaming application
US9031920B2 (en) Objects in a storage environment for connected applications
CN106095261B (zh) 一种在电子设备上添加笔记的方法和装置
US10353874B2 (en) Method and apparatus for associating information
CN101384982A (zh) 文档总览滚动条
CN105630271A (zh) 用于电子表单数据输入的方法和装置
KR20160017078A (ko) 프리젠테이션 슬라이드를 구조화하기 위한 자동화된 시스템
WO2017000891A1 (zh) 一种基于网络终端的学习显示装置
CN105446725A (zh) 用于模型驱动开发的方法和系统
CN105335039A (zh) 在可编辑文档的页面之间移动对象的方法及装置
CN107003995A (zh) 来自电子表格应用内的内容的演示
CN111666100A (zh) 软件框架生成方法、装置、电子设备及存储介质
US9110559B2 (en) Designing a GUI development toolkit
CN103999050A (zh) 用于计算用于在连续分布式构建中有效高速缓存的校验和的方法和装置
CN105404616A (zh) 用于数据移动的方法和系统
CN109947504A (zh) 一种在宿主程序中执行寄宿程序的方法与设备
CN113902540A (zh) 一种用于风险识别的方法和装置
US9251489B2 (en) Node-pair process scope definition adaptation
US20140189656A1 (en) Flow Analysis in Program Execution
RU2705437C2 (ru) Проверка нажатия для определения разрешения на прямые манипулирования в ответ на пользовательские действия
US8775936B2 (en) Displaying dynamic and shareable help data for images a distance from a pointed-to location

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160316