CN112106044A - 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质 - Google Patents
用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质 Download PDFInfo
- Publication number
- CN112106044A CN112106044A CN201980018738.1A CN201980018738A CN112106044A CN 112106044 A CN112106044 A CN 112106044A CN 201980018738 A CN201980018738 A CN 201980018738A CN 112106044 A CN112106044 A CN 112106044A
- Authority
- CN
- China
- Prior art keywords
- computing device
- remote
- remote participant
- file
- local
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000000694 effects Effects 0.000 claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims 3
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 241001422033 Thestylus Species 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 241000699666 Mus <mouse, genus> Species 0.000 description 9
- 230000009471 action Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
- G06F16/192—Implementing virtual folder structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Human Resources & Organizations (AREA)
- Software Systems (AREA)
- Strategic Management (AREA)
- Human Computer Interaction (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明属于网络技术领域,具体公开了一种用于在网络协作工作空间中通过网络套接字连接传输文件的系统,方法和计算机可读介质,包括传输托管在服务器上并且可以通过网络套接字连接,供参与者访问的协作工作空间的表示;协作工作空间包括与连接到服务器的远程计算设备相对应的远程参与者对象,生成与远程参与者对象相对应的一个或多个活动文件夹,每个活动文件夹都映射到与该远程参与者对象相对应的远程计算设备的网络地址;检测拖动与远程参与者对象附近的文件相对应的图标的用户输入,并将至少一个文件存储在与远程参与者对象相对应的活动文件夹中,从而通过网络套接字连接将至少一个文件发送到远程计算设备的网络地址。
Description
背景技术
操作系统和在操作系统内执行的应用经常使用外部硬件设备,以允许用户向程序提供输入和向用户提供输出。外部硬件设备的常见示例包括键盘,计算机鼠标,麦克风和外部扬声器。这些外部硬件设备通过使用驱动器与操作系统连接,驱动器是专用的软件程序,被配置为由特定硬件设备使用的硬件命令和操作系统之间的接口。
有时将应用设计成与某些硬件设备之间的接口。例如,语音到文本的文字处理应用可以设计为与包括麦克风的音频耳机之间的接口。在这种情况下,必须将应用专门配置为接收语音命令,执行语音识别,将识别的单词转换为文本内容,并将文本内容输出到文档中。该功能通常将体现在应用的应用编程接口(API)中,API是各种软件组件之间预定义的一组通信方法。在语音识别应用的示例中,API可以包括应用和驱动器上的软件之间的接口,该接口负责与硬件设备(麦克风)本身连接。
使用专用硬件设备的现有软件的一个问题是,必须对应用或操作系统软件本身进行定制和专门设计,以便使用硬件设备。这种定制意味着硬件设备不能超出应用为其定义的范围,并且不能被特定应用程序以外的情境利用,所述特定应用程序是专门设计的。例如,语音到文本文字处理应用的用户无法使用语音命令来操纵操作系统中的其他应用或其他组件,除非这些其他应用或操作系统经过专门设计,可以使用在麦克风上接收到的语音命令。
图1示出了利用耦合的硬件设备进行用户输入的系统的现有体系结构的示例。图1的操作系统100A包括执行应用101A和102A,每个应用分别具有其自己的API 101B和102B。操作系统100A还具有其自己的API 100B以及专用驱动器100C,101C和102C,其被配置为与硬件设备100D,101D和102D交互。
如图1所示,应用API 101B被配置为与驱动器101C交互,驱动器101C自身与硬件设备101D交互。类似地,应用API102B被配置为与驱动器102C交互,驱动器102C自身与硬件设备102D交互。在操作系统层面,操作系统API100B配置为与驱动器100C交互,驱动器100C本身与硬件设备100D交互。
图1所示系统的体系结构限制了用户利用某些应用或操作系统情境之外的硬件设备的能力。例如,用户不能利用硬件设备101D向应用102A提供输入,并且不能利用硬件设备102D向应用101A或操作系统100A提供输入。
因此,需要改进硬件-软件接口,从而可在多软件情境中使用硬件设备。
附图说明
图1示出了利用耦合的硬件设备进行用户输入的系统的现有系统架构。
图2示出了根据示例性实施例的利用通用硬件-软件接口的系统架构。
图3示出了根据示例性实施例的用于实现通用硬件-软件接口的流程图。
图4示出了根据示例性实施例的流程图,当有一个或多个硬件设备捕获的信息中包括一幅或多幅图像时,该流程图基于由一个或多个通信耦合到系统的硬件设备捕获的信息中的至少一部分来确定用户输入。
图5A示出了根据示例性实施例的对象识别的示例。
图5B示出了根据示例性实施例的确定输入位置坐标的示例。
图6示出了根据示例性实施例的流程图,当所捕获的信息是声音信息时,该流程图基于由一个或多个通信耦合到系统的硬件设备捕获的信息中的至少一部分来确定用户输入。
图7示出了根据示例性实施例的工具界面,该工具界面可以是透明层的一部分。
图8示出了根据示例性实施例的触控笔,该触控笔可以是系统的一部分。
图9示出了根据示例性实施例的用于识别与用户输入相对应的情境的流程图。
图10示出了根据示例性实施例的使用输入坐标来确定情境的示例。
图11示出了根据示例性实施例的用于将用户输入转换为透明层命令的流程图。
图12A示出了根据示例性实施例的当切换为选择模式时接收输入坐标的示例。
图12B示出了根据示例性实施例的当切换为指向模式时接收输入坐标的示例。
图12C示出了根据示例性实施例的当切换为绘图模式时接收输入坐标的示例。
图13示出了根据示例性实施例的基于在输入语音数据中识别出的一个或多个单词而确定的透明层命令的示例。
图14示出了根据示例性实施例的基于在输入语音数据中识别出的一个或多个单词而确定的透明层命令的另一示例。
图15示出了根据示例性实施例的在透明层上执行一个或多个透明层命令的流程图。
图16示出了根据示例性实施例的用于添加与用户输入相对应的新命令的示例界面。
图17示出了根据示例性实施例的绘制界面和绘制模式的各种组件和选项。
图18示出了根据示例性实施例的用于摄像机硬件设备的校准和设置接口,该摄像机和硬件设备用于识别对象并允许用户使用触摸和手势来提供输入。
图19示出了根据示例性实施例的通用设置界面,该通用设置界面允许用户定制界面的各个方面,切换输入模式以及进行其他改变。
图20示出了根据示例性实施例的用于在网络协作工作空间中通过网络套接字连接传输文件的流程图。
图21A示出了根据示例性实施例的用于主持和发送协作工作空间的网络架构。
图21B示出了根据示例性实施例的用于将编辑传播到网络内的协作工作空间的过程。
图22示出了根据示例性实施例的协作工作空间的多个表现。
图23示出了根据示例性实施例的用于生成与一个或多个远程参与者对象相对应的一个或多个活动文件夹的流程图。
图24示出了根据示例性实施例的查询过程。
图25示出了根据示例性实施例的生成与一个或多个远程参与者相对应的一个或多个本地文件夹的示例。
图26示出了根据示例性实施例的将一个或多个本地文件夹映射到一个或多个IP地址的示例。
图27示出了根据示例性实施例的拖放处理和检测的示例。
图28示出了根据示例性实施例的拖放处理和检测的另一示例。
图29示出了根据示例性实施例的流程图,在该流程中,保存对应于远程参与对象的至少一个活动文件夹中的至少一个文件,并且通过网络套接字连接传送至少一个文件到远程计算设备的网络地址。
图30示出了被配置为执行所公开的方法的示例性计算环境。
具体实施方式
虽然本文通过示例和实施例的方式来描述方法、装置和计算机可读介质,但是本领域技术人员认识到,用于实现通用硬件-软件接口的方法、装置和计算机可读介质不限于所描述的实施例或附图。应当理解,附图和说明书不旨在限定所公开的特定形式。相反,其意图是覆盖落入所附权利要求的精神和范围内的所有修改、等同形式和替代形式。本文使用的任何标题仅用于组织目的,并不意味着限制说明书或权利要求书的范围。本文中,词语“可以”以允许的意义使用(即,具有潜能的含义)而不是强制性意义(即,必须的含义)。类似地,词语“包括”,“包含”和“包含”是指包括但不限于。
申请人已经发现一种方法、装置和计算机可读介质,解决了用于硬件设备的、现有的硬件-软件接口中存在的问题。特别地,申请人已经开发了通用的硬件-软件接口,该接口允许用户在各种软件情境中利用通信耦合的硬件设备。所公开的实现方式消除了对通过使用专用虚拟驱动器和相应的透明层来定制设计为与特定硬件设备接口的应用或操作系统的需求,这将在下面更详细地描述。
图2示出了根据示例性实施例的利用通用硬件-软件接口的系统的架构。如图2所示,操作系统200A包括与虚拟驱动器204通信的透明层203。如将在下面更详细地解释的,透明层203是被配置为在虚拟驱动器和操作系统和/或在操作系统上执行的应用之间进行接合的API。在该示例中,透明层203连接虚拟驱动器204与应用201A的API 201B、应用202A的API 202B以及操作系统200A的操作系统API 200B。
透明层203可以是在操作系统上运行的软件进程的一部分,也可以具有其自己的用户界面(UI)元素,包括叠加在底层用户界面上的透明UI和/或用户能够与之交互的可视UI元素。
虚拟驱动器204被配置为分别与硬件设备206A和206B连接的模拟驱动器205A和205B。虚拟驱动器可以接收用户输入(比如,语音指令,用户界面上的选定、和/或用户在耦合到网络的相机前做出的手势),所述用户输入用于指示虚拟驱动器在哪个虚拟驱动器上进行模拟。例如,每个接入的硬件设备可以在“监听”模式下工作,而虚拟驱动器204中的每个模拟驱动器可以被配置为侦测初始化信号,该初始化信号作为虚拟驱动器切换为特定模拟模式的信号。例如,当用户说“开始语音命令”时,即可激活响应麦克风的驱动器,以便接收一个新的语音指令。类似地,当用户给出特定手势时,接口激活响应网络相机的驱动器,以便接收手势输入或触摸输入。
虚拟驱动器也可以被配置为与与硬件设备206C通信的本地驱动器(例如本地驱动器205C)的接口。在一个示例中,硬件设备206C可以是操作系统本地支持的标准输入设备,例如键盘或鼠标。
图2所示的系统允许实现通用的硬件-软件接口,在该接口中,用户可以在诸如特定应用或操作系统的各种情境下利用任何耦合的硬件设备,而不需要定制该应用或操作系统。
例如,硬件设备206A可以捕获然后由虚拟驱动器204的模拟驱动器205A接收的信息。虚拟驱动器204可以基于捕获的信息来确定用户输入。例如,如果信息是用户移动他们的手的一系列图像,则虚拟驱动器可以确定用户已经做出了手势。
基于所识别的情境(诸如特定应用或操作系统),用户输入可以被转换成透明层命令,并且被发送到透明层203以用于执行。透明层命令可以在所识别的情境中包括本地命令。例如,如果所识别的情境是应用201A,则本地命令将采用与应用201A的应用API 201B兼容的格式。然后,透明层命令可以被配置为引起所识别的情境中的一个或多个本地命令的执行。这是由透明层203完成的。透明层203与运行于操作系统200A上的多个应用的API以及操作系统API 200B连接。例如,如果本地命令是类似于启动新程序的操作系统命令,则透明层203可以将该本地命令提供给操作系统API 200B以供执行。
如图2所示,在所有所示组件之间存在双向通信。例如,这意味着在透明层203中执行一个透明层命令可以导致信息传输到虚拟驱动器204并传输到所连接的硬件设备之一上。例如,在语音命令被识别为输入,并转换为包括本地命令的透明层命令,并由透明层执行(导致在所识别的情境中执行本地命令)之后,信号可以从透明层发送到扬声器(通过虚拟驱动器),以传输声音输出“命令已接收”。
当然,图2所示的结构仅出于解释的目的,并且应当理解,执行的应用的数量、所连接的硬件设备的数量和类型、驱动器的数量以及模拟驱动器的数量是可以变化的。
图3示出了根据示例性实施例的用于实现通用硬件-软件接口的流程图。
在步骤301,至少部分地基于由通信地耦合到系统的一个或多个硬件设备捕获的信息来确定用户输入。本文所使用的系统可以指执行该方法的步骤的一个或多个计算设备,包括一个或多个处理器以及执行该方法的步骤的一个或多个存储器的设备或任何其他计算系统。
可以通过在系统上运行的虚拟驱动器来确定用户输入。如前所述,虚拟驱动器可以在模拟模式下运行,在该模式下,虚拟驱动器模拟其他硬件驱动器,从而从硬件设备接收捕获的信息,或者可以可选地从一个或多个与特定的硬件设备连接的其他硬件驱动器接收所捕获的信息。
可以利用各种硬件设备,例如照相机,摄像机,麦克风,具有双向通信的头戴式耳机,鼠标,触摸板,触控板,控制器,游戏板,操纵杆,触摸屏,包括加速度计和/或倾斜传感器的运动捕捉设备,遥控器,触控笔或这些设备的任意组合。当然,该硬件设备列表仅作为示例提供,任何可被用于检测语音,图像,视频或触摸信息的硬件设备均可被使用。
硬件设备与系统之间的通信耦合可以采取多种形式。例如,硬件设备可以经由无线网络,蓝牙协议,射频,红外信号和/或通过诸如通用串行总线(USB)连接的物理连接与系统通信。所述通信还可以包括无线和有线通信。例如,硬件设备可以包括两个组件,其中一个组件以无线方式(例如通过蓝牙)将信号传输到第二个组件,第二个组件本身通过有线连接(例如USB)的方式连接到系统。根据本文描述的系统,可以利用各种通信技术,并且这些示例并非旨在进行限制。
由一个或多个硬件设备捕获的信息可以是任何类型的信息,例如包括一个或多个图像的图像信息,视频帧,声音信息和/或触摸信息。捕获的信息可以采用任何合适的格式,例如用于声音信息的.wav或.mp3文件,用于图像的.jpeg文件,用于触摸信息的数字坐标等。
本文中描述的技术可以允许任何显示设备在任何情况下有效地充当“触摸”屏幕设备,即使该显示设备不包括任何用于检测触摸信号或基于触摸的手势的硬件。这将在下面更详细地描述,并且可以通过分析由照相机或摄像机捕获的图像来完成。
图4示出了当由一个或多个硬件设备捕获的信息包括一个或多个图像时,至少部分地基于通过通信耦合到系统的一个或多个硬件设备捕获的信息来确定用户输入的流程图。
在步骤401,接收一个或多个图像。这些图像可以由硬件设备(例如相机或摄像机)捕获,并可以由虚拟驱动器接收,如前所述。
在步骤402,识别一个或多个图像中的对象。该对象可以例如是用户的手,手指或其他身体部位。对象也可以是专用设备,例如触控笔或笔,或专用硬件设备,例如通信地耦合到系统并且包含加速度计和/或倾斜传感器的运动跟踪触控笔/遥控器。虚拟驱动器可以基于较早的训练来执行对象识别,例如通过校准例程使用对象运行。
图5A示出了根据示例性实施例的对象识别协议。如图5A中所示,图像501包括已经被识别为对象502的用户的手。识别算法当然可以被配置为识别诸如手指的不同对象。
回到图4,在步骤403,确定被识别对象的一个或多个朝向和一个或多个位置。这可以通过多种方式来实现。如果对象不是硬件设备,而是身体部分(例如手或手指),则可以使用相机的已知位置作为参考点,将对象映射到三维坐标系中,从而确定三维对象的坐标以及相对于X,Y和Z轴的各种角度。如果对象是硬件设备,并且包括运动跟踪硬件(例如,加速度计和/或倾斜传感器),则可以将图像信息与加速度计和/或倾斜传感器指示的信息结合使用,以确定对象的位置和朝向。
在步骤404,至少部分地基于所识别对象的一个或多个朝向以及一个或多个位置来确定用户输入。这可以包括至少部分地基于一个或多个方向和一个或多个位置来确定透明层的透明用户界面(UI)上的位置坐标。透明UI是透明层的一部分,并叠加在与操作系统和/或在操作系统上执行的任何应用相对应的底层UI上。
图5B示出了当对象是用户的手指时该步骤的示例。如图5B所示,显示设备503包括底层UI 506和叠加在底层UI 506上的透明UI507。为清楚起见,透明UI 507以点阴影示出,但应理解,实际上透明UI是用户不可见的透明层。另外,透明UI 507被示为比底层UI 506略小,但是应当理解,实际上,透明UI将覆盖与底层UI相同的屏幕区域。
如图5B所示,对象(用户的手指)的位置和方向信息用于将一条线投影到显示设备503的平面上并确定相交点505。相机504捕获的图像信息和照相机下方的显示设备503的已知位置可用于辅助该投影。如图5B所示,用户输入被确定为交点505处的输入坐标。
如将在下面进一步讨论的,基于该输入生成的实际透明层命令可以基于用户设置和/或所识别的情境。例如,该命令可以是一个触摸命令,其指示了交点505处的对象应该被选择和/或打开。该命令还可以是一个指向命令,其指示了指针(例如鼠标的指针)应该被移动到交点505。此外,该命令还可以是一个编辑命令,其修改了图像输出的位置(如注释界面或绘制元素)。
尽管图5B将识别出的对象502示出为与显示设备503相距一定距离,但是无论距离如何,都可以检测到触摸输入。例如,如果用户将要物理地触摸显示设备503,则上述技术仍将确定输入坐标。在这种情况下,对象502和交点之间的投影线将更短。
当然,触摸输入并不是由捕获的图像能够确定的唯一用户输入类型。至少部分地基于所识别对象的一个或多个朝向以及一个或多个位置来确定用户输入的步骤可以包括确定手势输入。特别地,可以分析所识别的对象在多个图像上的位置和方向,,以确定相应的手势,例如轻扫手势、捏合手势和/或任何已知或自定义手势。用户可以校准虚拟驱动器,以识别自定义手势,所述自定义手势映射到特定情境以及这些情境中的命令。例如,用户可以创建一个映射到操作系统情境的自定义手势,所述自定义手势导致执行启动特定应用的本地操作系统命令。
如前所述,在图3的步骤301中由一个或多个硬件设备捕获的信息还可以包括由麦克风捕获的声音信息。图6示出了流程图,当捕获的信息为声音时,该流程图用于至少部分基于通信地耦合至系统的一个或多个硬件设备捕获的信息来确定用户输入。如下所述,对声音信息执行语音识别,以识别与用户输入相对应的一个或多个单词。
在步骤601,接收声音数据。如上所述,声音数据可以由诸如麦克风的硬件设备捕获并由虚拟驱动器接收。在步骤602,可以将接收到的声音数据与声音字典进行比较。声音词典可以包括一个或多个已识别单词的声音签名,例如命令单词或命令修饰符。在步骤603,基于比较,将声音数据中的一个或多个单词识别为用户输入。然后可以将识别出的一个或多个单词转换为透明层命令,然后传递给透明层。
如前所述,可以至少部分地基于一个或多个设置或先前的用户输入来确定由虚拟驱动器模拟的驱动器、用户输入的预期类型以及基于用户输入而生成的命令。
图7示出了工具界面701,其也可以是透明层的一部分。与透明UI不同,工具界面701对用户可见,可用于在不同选项之间进行选择,这些选项会更改虚拟驱动器的模拟模式、基于用户输入生成的本地命令或执行其他功能。
按钮701A允许用户选择绘图工具的类型,该绘图工具用于在用户输入坐标(例如基于用户用手或触控笔/遥控器触摸屏幕的坐标)时以图形方式修改用户界面。各种绘画工具可以包括不同的刷子,颜色,笔,荧光笔等。这些工具可以导致不同风格,厚度,颜色等的图形改变。
当接收到输入坐标作为用户输入时,按钮701B允许用户在选择,指向或绘图模式之间切换。在选择模式下,输入坐标可以作为“触摸”处理,并导致在输入坐标处选择或打开对象。在指向模式下,可以将坐标作为指针(例如鼠标指针)位置进行处理,从而有效地允许用户模拟鼠标。在绘图模式下,可以将坐标作为更改用户界面的图形输出以在用户界面上呈现绘图或书写外观的位置进行处理。更改的本质可以取决于所选择的绘图工具,如参考按钮701A所讨论的。按钮701B还可以警示虚拟驱动器期待图像输入和/或运动输入(如果使用运动跟踪设备),并相应地模拟适当的驱动器。
按钮701C警示虚拟驱动器期待语音命令。这可以使虚拟驱动器模拟与耦合的麦克风相对应的驱动器,并按图6所示接收语音输入解析语音输入。
按钮701D打开启动器应用,该启动器应用可以是透明层的一部分,并且可以用于启动操作系统内的应用或启动应用内的特定命令。启动器还可用于自定义透明层中的选项,例如自定义语音命令,自定义手势,与用户输入关联的应用的自定义本地命令和/或校准硬件设备和用户输入(例如语音校准,运动捕捉设备)校准和/或对象识别校准)。
按钮701E可用于捕获用户界面的屏幕截图并将屏幕截图导出为图像。可以与按钮701B的绘制模式和701A的绘制工具结合使用。在用户标记了特定的用户界面之后,可以将标记的版本导出为图像。
按钮701F还允许图形编辑,并且可以用于改变用户在用户界面上创建的图形或图形的各方面的颜色。类似于按钮701B的绘制模式,此按钮可更改输入坐标处图形更改的性质。
按钮701G取消用户界面上的绘图。选择此按钮可以删除用户界面上的所有图形标记,并将底层UI重置为用户创建图形之前的状态。
按钮701H可用于启动白板应用,该应用允许用户在虚拟白板上使用绘图模式创建绘图或书写。
按钮7011可以用于将文本注释添加到对象,例如操作系统UI或应用UI中所示的对象。文本注释可以从语音信号中解析获得,也可以由用户使用键盘键入。
按钮701J可用于打开或关闭工具界面701。当关闭时,可将工具界面最小化或完全从底层用户界面移除。
如前所述,触控笔或远程硬件该设备可以与诸如照相机或摄像机之类的其他硬件设备一起用于本系统。图8示出了可以与系统一起使用的触控笔801的示例。触控笔801可以与硬件接收器802通信,例如通过蓝牙。硬件接收器可以连接到计算机系统,例如通过USB802B,来自触控笔的信号通过硬件接收器传递到计算机系统,可以用来控制菜单803并与之交互,这类似于图7所示的工具界面。
如图8所示,触控笔801可以包括物理按钮801A。这些物理按钮801可以用于打开触控笔的电源、导航菜单803并进行选择。另外,触控笔801可以包括独特的笔尖801B,该笔尖801B被照相机捕获在图像中并且被虚拟驱动器识别。当处于绘制模式时,这可以允许触控笔801用于绘制和编辑。触控笔801还可包括运动跟踪硬件,例如加速度计和/或倾斜传感器,以在使用触控笔提供输入坐标或手势时辅助位置检测。另外,硬件接收器802可以包括校准按钮802A,当按下该按钮时,可以在用户界面中启动校准实用程序。这允许对触控笔进行校准。
回到图3,在步骤302,识别与用户输入相对应的情境。所识别的情境包括操作系统或在该操作系统上执行的应用之一。
图9示出了根据示例性实施例的用于识别与用户输入相对应的情境的流程图。如图9所示,操作系统数据901,应用数据902和用户输入数据903均可用于确定情境904。
操作系统数据901可以包括例如关于操作系统中的活动窗口的信息。例如,如果活动窗口是计算器窗口,则可以将情境确定为计算器应用。同样,如果活动窗口是MicrosoftWord窗口,则可以将情境确定为Microsoft Word应用。另一方面,如果活动窗口是文件夹,则可以将活动情境确定为操作系统。操作系统数据还可包含其他信息,例如当前正在执行哪些应用,最后启动的应用以及可用于确定情境的任何其他操作系统信息。
应用数据902可以包括例如关于正在执行的一个或多个应用的信息和/或将特定应用映射到某些类型的用户输入的信息。例如,第一应用可以被映射到语音输入,使得每当接收到语音命令时,情境就被自动确定为第一应用。在另一个示例中,特定手势可以与第二应用相关联,使得当接收到该手势作为输入时,第二应用被启动或关闭,或者在第二应用内执行某些动作。
用户输入903也可以用于以各种方式确定情境。如上所述,某些类型的用户输入可以映射到某些应用。在以上示例中,语音输入与第一应用的情境相关联。另外,用户输入的属性也可以用于确定情境。手势或动作可以映射到应用或操作系统。语音命令中的特定单词也可以映射到应用或操作系统。输入坐标也可以用于确定情境。例如,可以确定用户界面中输入坐标的位置处的窗口,并且可以将与该窗口相对应的应用确定为情境。
图10示出了使用输入坐标来确定情境的示例。如图10所示,显示设备1001正在显示用户界面1002。还示出了相机1004和透明层1003,其叠加在底层用户界面1003上。用户利用触控笔1000指向用户界面1002中的位置1005。由于位置1005位于与应用1相对应的应用窗口内,因此应用1可以与应用2,应用3或操作系统相反,被确定为用户输入的情境。
返回图3,在步骤303,至少部分地基于所识别的情境,将用户输入转换为一个或多个透明层命令。如先前所讨论的,透明层包括被配置为在虚拟驱动器以及操作系统和/或在操作系统上执行的应用之间进行接合的应用编程接口(API)。
图11示出了将用户界面中转换为透明层命令的流程图。。如图11的步骤1104所示,可以至少部分地基于所识别的情境1102和用户输入1103来确定透明层命令。透明层命令可以包括被配置为在一个或多个对应的情境中执行的一个或多个本地命令。透明层命令还可以包括要发送到虚拟驱动器和硬件设备的响应输出。
所识别的情境1102可以用于确定哪个透明层命令应被映射到用户输入。例如,如果标识的情境是“操作系统”,则可以将轻扫手势输入映射到透明层命令,该命令会导致用户界面在操作系统中当前打开的窗口中滚动(通过最小化一个打开的窗口并最大化一个下一个打开的窗口)。或者,如果所识别的情境是“Web浏览器应用”,则可以将相同的滑动手势输入映射到透明层命令,从而导致网页被滚动。
用户输入1103还用于确定透明层命令,因为用户输入被特定地映射到一个或多个情境内的某些本地命令,并且这些本地命令是透明层命令的一部分。例如,语音命令“打开电子邮件”可以映射到特定的操作系统本地命令,以启动电子邮件应用Outlook。当收到包含已识别单词“打开电子邮件”的语音输入时,这将导致确定透明层命令,其中包括用于启动Outlook的本地命令。
如图11所示,还可以基于一个或多个用户设置1101和API库1104确定透明层命令。API库1104可用于查找与标识的情境和特定用户输入相对应的本地命令。在轻扫手势和网络浏览器应用情境的示例中,可以查询与该网络浏览器应用相对应的API库以进行适当的API调用,以引起网页的滚动。备选地,可以省略API库1104,并且可以将本地命令映射到特定的用户输入和所识别的情境。
在确定用户输入被确定为输入坐标的情况下,透明层命令至少部分地基于输入位置坐标和所识别的情境来确定。在这种情况下,透明层命令可以在所识别的情境中包括至少一个本地命令,该至少一个本地命令被配置为在底层UI中的相应位置坐标处执行动作。
当有一个以上可能的动作映射到特定情境和用户输入时,设置1101可用于确定相应的透明层命令。例如,当接收到输入坐标作为用户输入时,图7的按钮701B允许用户在选择、指向或绘制模式之间进行选择。此设置可用于确定透明层命令,并通过扩展确定执行哪个本地命令和执行哪个动作。在这种情况下,可能的本地命令可以包括配置为选择与底层UI中的相应位置坐标关联的对象的选择命令、配置为将指针移至底层UI中的相应位置坐标的指针命令以及被配置为更改底层UI中相应位置坐标处的显示输出发图形命令。
图12A示出了当切换为选择模式时接收输入坐标的示例。如图12A所示,用户已经将触控笔1200指向显示设备1201上的操作系统UI 1202(具有叠加的透明UI 1203)。类似于先前的示例,相机1204可以用于确定触控笔1200的位置和方向信息以及输入坐标。由于切换了选择模式,并且触控笔1200指向操作系统UI 1202中的文件夹1205,因此确定的透明层命令可以包括本机操作系统命令,以选择与输入坐标关联的对象(在这种情况下为文件夹1205)。在另一个示例中,如果窗口位于输入坐标处,则将导致整个窗口的选择。
图12B示出了当切换为指向模式时接收输入坐标的示例。在这种情况下,确定的透明层命令可以包括本机操作系统命令,以将鼠标指针1206移动到输入坐标的位置。
图12C示出了当切换为绘图模式并且用户已经将触控笔1200扫过多个输入坐标时接收输入坐标的示例。在这种情况下,确定的透明层命令可以包含一个本机操作系统命令以更改每个输入坐标的位置处的显示输出,从而在用户界面1202上生成用户绘制线1207。可以将在绘制模式下生成的修改后的图形输出存储为透明层1203的一部分,例如,作为与输入坐标路径有关的元数据。然后,用户可以选择将改变的显示输出作为图像导出的选项。
在用户输入被识别为手势的情况下,至少部分地基于所识别的情境将用户输入转换为一个或多个透明层命令,可以包括:至少部分地基于所识别的手势和所识别的情境来确定透明层命令。透明层命令可以在所识别的情境中包括至少一个本地命令,该至少一个本地命令被配置为执行与所识别的情境中的所识别的手势相关联的动作。
上面讨论了关于轻扫手势和网络浏览器应用情境的这种示例,所述扫手势和网络浏览器应用情境导致本地命令被配置为在网络浏览器中执行滚动动作。
在用户输入被识别为一个或多个单词的情况下(例如通过使用语音识别),至少部分地基于所识别的内容,将用户输入转换为一个或多个透明层命令,可以包括确定透明层命令至少部分地基于所识别的一个或多个单词和所识别的情境来确定透明层命令。。透明层命令可以在所识别的情境中包括至少一个本地命令,该至少一个本地命令被配置为在所识别的情境中执行与所识别的一个或多个单词相关联的动作。
图13示出了基于在输入语音数据中识别的一个或多个单词确定的透明层命令1300的示例。所识别的单词1301包括短语“白板”或“空白页”之一。透明层命令1300还包括命令的描述1302和响应指令1303,响应指令1303是在执行透明层命令时由透明层发送给虚拟驱动器和硬件输出设备的输出指令。另外,透明层命令1300包括用于调用白板功能的实际本地命令1304。
图14示出了根据示例性实施例的基于在输入语音数据中识别出的一个或多个单词而确定的透明层命令1400的另一示例。在此示例中,一个或多个单词是“打开电子邮件”。如图14所示,透明层命令1400包括本地命令“outlook.exe”,其是用于运行启动Outlook应用的特定可执行文件的指令。透明层命令1400还包括语音响应“电子邮件已打开”,其将响应于接收到语音命令而被输出。
返回图3,在步骤304,在透明层上执行一个或多个透明层命令。一个或多个透明层命令的执行被配置为使得在所识别的情境中执行一个或多个本地命令。
图15示出了根据示例性实施例的用于在透明层上执行一个或多个透明层命令的流程图。在步骤1501,识别透明层命令中的至少一个本地命令。例如,可以在透明层命令的结构内将本地命令指定为本地命令,以进行识别。
在步骤1502,在所识别的情境中执行至少一个本地命令。该步骤可以包括经由针对该情境识别的API将至少一个本地命令传递给所识别的情境,并在所识别的情境内执行本地命令。例如,如果所识别的情境是操作系统,则可以将本地命令传递给操作系统以通过操作系统API执行。另外,如果所识别的情境是应用,则可以将本地命令传递给应用以通过应用API执行。
可选地,在步骤1503,可以将响应发送到硬件设备。如前所述,此响应可以从透明层路由到虚拟驱动器,再路由到硬件设备。
图16-19示出了本文公开的系统的附加特征。图16示出了根据示例性实施例的用于添加与用户输入相对应的新命令的示例界面。界面1600中的仪表板包括已经被添加并且可以使用预定的用户输入和硬件设备(例如,语音命令)启动的应用1601的图标。仪表板还可以显示特定于应用并映射到某些用户输入的其它命令。选择添加按钮1602将打开添加命令菜单1603。该菜单允许用户在以下选项之间进行选择:项目类型:在底部栏菜单中添加的固定项目/在拖动菜单中添加的普通项目;图标:选择图像图标;背景:选择背景图标颜色;颜色:选择图标颜色;名称:设置新的项目名称;语音命令:设置语音激活命令以打开新应用;反馈响应:设置应用的语音响应反馈;命令:选择要启动的应用类型或自定义命令类型(例如,启动应用命令,在应用命令内执行操作,关闭应用命令等);进程开始:如果启动新的进程或应用,则为该进程或应用的名称;以及,参数:任何要传入新流程或应用的参数。
图17示出了根据示例性实施例的绘制界面1700和绘制模式的各种组件和选项。图18示出了用于摄像机硬件设备的校准和设置接口1800,该摄像机和硬件设备用于识别对象并允许用户使用触摸和手势来提供输入。图19示出了通用设置界面1900,其允许用户定制界面的各个方面,切换输入模式以及进行其他改变。如界面1900所示,用户还可以访问设置页面以校准和调整硬件触控笔(称为“魔术触控笔”)的设置。
本文公开的系统可以在多个联网的计算设备上实现,并且可以在进行联网的协作会话中使用。例如,先前描述的白板功能可以是多个计算设备上的多个用户之间的共享白板。
然而,现有的白板或其他共享的协作空间的一个问题是不存在与连接的参与者共享文件的简单方式。虽然某些应用允许整个团队在协作空间上查看文件(例如文档),以便用户与另一个用户共享文件,但有必要打开一个新的应用(例如电子邮件客户端或文件共享应用)以便将文件传输给其他用户。在共享协作会话期间,这经常会中断协作空间旨在促进的工作流和共享脑风暴会话。
除了先前描述的用于实现通用硬件-软件接口的方法和系统之外,申请人还发现了允许在联网计算机之间的协作会话期间通过网络套接字连接实时传输文件的方法,装置和计算机可读介质。
图20示出了根据示例性实施例的用于在网络协作工作空间中通过网络套接字连接传输文件的流程图。图20所示的所有步骤可以在本地计算设备上执行,例如连接到服务器的客户端设备,并且不需要多个计算设备。
在步骤2001,在本地计算设备的用户界面上发送协作工作空间的表示,该协作工作空间托管在服务器上并且可以通过网络套接字连接供多个参与者访问。协作工作空间的表示可以包括与连接到服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象。如本文所使用的,远程计算设备和远程参与者是指除本地参与者和本地计算设备以外的计算设备和参与者。远程计算设备通过诸如广域网(WAN)之类的网络与本地设备分离。
图21A示出了根据示例性实施例的用于宿主和传输协作工作空间的网络架构。如图21A所示,服务器2100连接到计算设备2101A-2101F。服务器2100和计算设备2101A-2101F可以经由诸如网络套接字连接之类的网络连接来连接,该网络连接允许计算设备2101A-2101F(客户端)与服务器2100之间的双向通信。参照图21A,计算设备可以是任何类型的计算设备,例如膝上型计算机,台式计算机,智能电话或其他移动设备。
协作工作空间可以是例如数字白板,该数字白板被配置为通过网络套接字连接,将来自多个参与者中的任何参与者的任何编辑传播到其他参与者。图21B示出了根据示例性实施例的用于将编辑传播至网络内的协作工作空间的过程。如图21B所示,如果计算设备2101B的用户对协作工作空间进行编辑或更改,则将该编辑或更改2102B发送到服务器2100,在服务器2100中,该编辑或更改2102B用于更新工作空间的宿主版本。然后,服务器2100将编辑或更改作为更新2102A,2102C,2102D,2102E和2102F传播到其他连接的计算设备2101A,2101C,2101D,2101E和2101F。
协作工作空间的每个表示可以是针对本地参与者定制的协作工作空间的版本。例如,如上所述,协作工作空间的每个表示可以包括与连接到服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象。
图22示出了根据示例性实施例的协作工作空间的多个表示。如图22所示,服务器2200托管协作工作空间2201。如先前所讨论的,服务器上托管的协作工作空间的版本被传播到所连接的设备。图22还示出了三个连接的用户,用户1,用户2和用户3的协作工作空间的表示。如图所示,每个表示针对本地参与者(针对本地计算设备)进行了定制。例如,用于用户1的表示2201A包括对应于用户2和用户3的远程参与者对象。类似地,用于用户2的表示2201B包括对应于用户1和用户3的远程参与者对象,并且用户3的表示2201C包括对应于用户1和用户2的远程参与者对象。
远程参与者对象指示远程参与者,并且可以采用多种形式。例如,远程参与者对象可以是通过视频会议或网络摄像头连接的远程参与者的嵌入式视频流。远程参与者对象还可以是代表远程参与者的图标、远程参与者的化身或特定远程参与者的任何其他视觉或音频指示符。远程参与者对象可以在工作空间表示中拖动、移动和/或调整大小的自定义对象。
回到图20,在步骤2002,在本地计算设备上生成与一个或多个远程参与者对象相对应的一个或多个活动文件夹,其中每个活动文件夹被映射到与之相对应的远远程参与者对象的远程计算设备的网络地址。
图23示出了根据示例性实施例的用于生成与一个或多个远程参与者对象相对应的一个或多个活动文件夹的流程图。
在步骤201,本地计算设备向服务器查询与一个或多个远程参与者对象相对应的一个或多个远程计算设备的一个或多个互联网协议(IP)地址。
图24示出了该查询过程的示例。如图24所示,计算设备2401A,2402和2403全部通过诸如网络套接字连接之类的双向网络连接连接到服务器2400。服务器托管协作工作空间(未显示)。图24还示出了在计算设备2401A的用户界面上可见的协作工作空间的表示2401B。表示2401B包括与用户2和用户3相对应的远程参与者对象,用户2和用户3分别是计算设备2402和2403的用户。如图24所示,通过网络连接将与远程参与者对象相对应的远程计算设备的IP地址(或其他类型的网络地址)的查询从计算设备2401A发送到服务器2400。将其他连接的计算设备2402和2403的IP地址(或其他类型的网络地址)发送到计算设备2401A(请求的计算设备)。服务器还可以发送允许计算设备2401A识别哪个IP地址对应于哪个远程参与者对象的信息,诸如用户标识或其他信息。
回到图23,在步骤2302,本地计算设备生成与一个或多个远程参与者对象相对应的一个或多个本地文件夹。可以生成一个或多个本地文件夹并将其存储在本地计算设备的存储器上。例如,当启动协作工作空间会话时,可以在本地计算设备上创建临时缓存。此临时缓存存储有关会话的信息,例如会议标识符和其他会话详细信息。可以生成一个或多个本地文件夹并将其存储在临时缓存中。
图25示出了根据示例性实施例的生成与一个或多个远程参与者相对应的一个或多个本地文件夹的示例。本地计算设备2500包括显示器(未示出),该显示器显示用户界面2501,该用户界面包括协作工作空间的表示2502。协作工作空间表示2502包括与用户2和用户3对应的两个远程参与者对象。如图25所示,本地文件夹F2和F3在计算设备2500的本地存储2503中创建,并与用户2和用户3的远程参与者对象链接。文件夹可以通过多种方式链接到远程参与者对象。例如,可以创建将每个远程参与者对象与本地文件夹关联的自定义数据结构。本地文件夹可以作为不可见元素合并到用户界面2501中,并放置在相应远程参与者对象的相同位置。远程参与者对象可以具有公开的API,该API允许链接到相应的本地文件夹。许多变化都是可能的,并且这些示例并非旨在进行限制。
回到图23,在步骤2303,通过将一个或多个本地文件夹映射到一个或多个IP地址来生成一个或多个活动文件夹。
图26示出了根据示例性实施例的将一个或多个本地文件夹映射到一个或多个IP地址的示例。本地计算设备2600包括显示用户界面2601的显示器(未示出),用户界面2601包括协作工作空间2602。协作工作空间表示2602包括两个远程参与者对象,对应于用户2和用户3。计算设备2600上的本地存储器2603内的本地文件夹F2和F3与协作工作空间表示2602中的用户2和用户3的远程参与者对象链接。
如图26所示,本地文件夹F2和F3分别映射到远程计算设备2604和2605的网络地址。计算设备2604对应于远程参与者用户2,并且计算设备2605对应于远程参与者用户3。本地文件夹到远程计算设备的网络地址的映射可以以多种方式实现。每个本地文件夹可以具有相应远程计算设备的网络地址作为其地址。在这种情况下,本地文件夹是本地存储上远程文件夹的实例。此外,可以将自定义数据结构或脚本配置为将本地文件夹的内容传输到目标网络地址。该脚本可以与网络连接(例如网络套接字)进行接合,以实现传输。许多变化都是可能的,并且这些示例并非旨在进行限制。
返回图20,在步骤2003,由本地计算设备检测拖动至少一个图标的用户输入,该图标对应于与一个或多个远程计算设备中的远程参与者对象接近的至少一个文件,其中远程参与者对象对应于一个或多个远程计算设备中的远程计算设备。这通常被称为拖放动作,并且可以使用各种输入设备来输入。例如,用户可以使用鼠标拖放。用户还可以使用手势或触控笔进行拖放,如前所述。涉及虚拟驱动器和/或透明控件的较早描述的技术可用于检测拖放运动。
本地计算设备可以被配置为在用户界面内存储一个或多个远程参与者对象的一个或多个空间位置。可以通过检测将图标拖动到距远程参与者的空间位置的阈值距离以内的目标空间位置的用户输入,来执行对特定图标是否已被拖放到特定远程参与者对象附近的检测。阈值距离可以由用户设置,也可以是一些默认值。例如,阈值距离可以小于10像素或小于零像素(在这种情况下,拖动的图标将必须与用户界面中的远程参与者对象相交或重叠)。
图27示出了根据示例性实施例的拖放处理和检测的示例。用户界面2701包括协作工作空间的表示2702,协作工作空间包括与用户2(U2)和用户3(U3)相对应的远程参与者对象。界面2701还包括文件窗口或文件界面2703,其可以是例如文件浏览器中的打开的文件夹。文件接口2703也可以是本地计算设备的桌面、文件共享应用、网络浏览器或任何其他应用。如图27所示,用户已经将文件“D3”拖动到用户3(U3)的远程参与者对象。
当然,也可以从协作工作空间中拖动文件。图28示出了根据示例性实施例的拖放处理和检测的另一示例。接口2801对应于协作工作空间。界面部分2802可以是列出各种文件的协作工作空间的表示的一部分。另外,在这种情况下,远程参与者对象2803是嵌入式视频流,其可以通过网络(例如,网络套接字)连接来接收。如图28所示,本地参与者(用户)已将Adobe文件2804拖动到远程参与者对象2803。当然,该文件可以是任何类型的文件,例如音频文件,视频文件,视听文件,文本文档,电子表格,幻灯片演示等。
回到图20,在步骤2004,至少一个文件被本地计算设备存储在与远程参与者对象相对应的活动文件夹中,从而通过网络套接字连接(或其他网络连接)将至少一个文件发送到远程计算设备的网络地址。
图29示出了根据示例性实施例的用于将至少一个文件存储在与远程参与者对象相对应的活动文件夹中并通过网络套接字连接将至少一个文件发送到远程计算设备的网络地址的流程图。
在步骤2901,将与至少一个拖动的图标相对应的至少一个文件存储在活动文件夹中。在步骤2902,通过网络套接字连接(或其他网络连接)将至少一个文件的副本发送到映射的网络地址。网络套接字连接可以配置为通过服务器将活动文件夹中存储的数据路由到映射的网络地址。除了文件被发送到特定的远程计算设备并且不传播到所有连接的远程计算设备之外,可以类似于图21B所示的更新来执行该路由。例如,可以通过网络套接字将文件传输到服务器,服务器可以使用目标地址,以便通过网络套接字进一步将文件路由到适当的远程目标计算设备。
由于已经建立了网络套接字连接作为协作工作空间的一部分和/或作为视频会议的一部分(当远程参与者对象是嵌入式视频流时),因此所描述的过程利用网络套接字来执行到预期接收方的文件的路由。
在步骤2903,可以在传输完成后从活动文件夹中删除至少一个文件。例如,如果活动文件夹存储在本地计算设备上的临时缓存中,则一旦将活动文件夹中存储的文件的副本(例如通过流传输)传输到远程计算设备,该文件就会存储在本地计算机中,则存储在本地活动文件夹中的文件可以被删除。
一种或多种上述技术可以在一种或多种计算机系统中实现或涉及一种或多种计算机系统。图30示出了专用计算环境3000的示例。计算环境3000不旨在对所描述的实施例的使用范围或功能提出任何限制。
参考图30,计算环境3000包括至少一个处理单元3010和存储器3020。处理单元3010执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。存储器3020可以是易失性存储器(例如,寄存器,高速缓存,RAM),非易失性存储器(例如,ROM,EEPROM,闪存等),或两者的某种组合。存储器3020可以存储实现所描述的技术的软件3080。
计算环境可以具有附加功能。例如,计算环境3000包括存储器3040,一个或多个输入设备3050,一个或多个输出设备3060以及一个或多个通信连接3090。一种诸如总线、控制器或网络之类的互连机制3070连接计算环境3000中的各组件。通常,操作系统软件或固件(未示出)为在计算环境3000中执行的其他软件提供操作环境,并协调计算环境3000的组件的活动。
存储器3040可以是可移动的或不可移动的,并且包括磁盘,磁带或盒式磁带,CD-ROM,CD-RW,DVD或任何其他可用于存储信息并可访问的介质。存储器3040可在计算环境3000中存储该信息。存储装置3040可存储软件3080的指令。
输入设备3050可以是诸如键盘,鼠标,笔,轨迹球,触摸屏或游戏控制器之类的触摸输入设备,语音输入设备,扫描设备,数码相机,遥控器,或另一个向计算环境3000提供输入的设备。输出设备3060可以是显示器,电视,监视器,打印机,扬声器或其他提供来自计算环境3000的输出的设备。
通信连接3090使得能够通过通信介质与另一计算实体进行通信。通信介质在调制数据信号中传达诸如计算机可执行指令、音频或视频信息之类的信息或者调制数据信号中的其他数据。调制数据信号是一种具有一种或多种特征的信号,该信号以信息编码的方式来设置或改变。作为示例而非限制,通信介质包括利用电,光,RF,红外,声或其他载体实现的有线或无线技术。
可以在计算机可读介质的情境中描述实现。计算机可读介质是可以在计算环境中访问的任何可用介质。通过示例而非限制的方式,在计算环境3000内,计算机可读介质包括存储器3020,存储器3040,通信介质以及以上任意者的组合。
当然,图30将计算环境3000,显示设备3060和输入设备3050图示为单独的设备,仅为了易于识别。计算环境3000,显示设备3060和输入设备3050可以是单独的设备(例如,通过电线连接到监视器和鼠标的个人计算机),可以集成在单个设备(例如,像智能手机或平板电脑一样,具有触摸显示器的移动设备)中,或设备的任何组合(例如,可操作地耦合到触摸屏显示设备的计算设备,连接到单个显示设备和输入设备的多个计算设备等)。计算环境3000可以是机顶盒,个人计算机或一个或多个服务器,例如联网服务器的场,集群服务器环境或计算设备的云网络。
已经参考所描述的实施例描述和说明了本发明的原理,将认识到,在不脱离这些原理的情况下,所描述的实施例可以在布置和细节上进行修改。以软件示出的所述实施例的元件可以以硬件实现,反之亦然。
鉴于可以应用本发明的原理的许多可能的实施例,我们的发明要求保护所有落入所附权利要求及其等同范围和精神内的实施例。
Claims (20)
1.一种用于在网络协作工作空间中通过网络套接字连接传输文件的方法,其特征在于,所述方法包括:
在本地计算设备的用户界面上发送协作工作空间的表示,所述协作工作空间托管在服务器上并通过网络套接字连接供多个参与者访问,所述协作工作空间的所述表示包括与连接到所述服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象;
在所述本地计算设备上生成与所述一个或多个远程参与者对象相对应的一个或多个活动文件夹,每个活动文件夹被映射到与所述远程参与者对象相对应的远程计算设备的网络地址;
由所述本地计算设备检测拖动与所述一个或多个远程参与者对象中的远程参与者对象附近的至少一个文件相对应的至少一个图标的用户输入,所述远程参与者对象与所述一个或多个远程计算设备中的所述远程计算设备相对应;以及
由所述本地计算设备将所述至少一个文件存储在与所述远程参与者对象相对应的活动文件夹中,从而通过所述网络套接字连接将所述至少一个文件发送到所述远程计算设备的所述网络地址。
2.根据权利要求1所述的方法,其特征在于,与所述一个或多个远程计算设备相对应的所述一个或多个远程参与者对象包括以下中的一个或多个:嵌入式视频流或远程参与者图标。
3.根据权利要求1所述的方法,其特征在于,所述协作工作空间包括数字白板,所述数字白板被配置为通过所述网络套接字连接将来自所述多个参与者中的任何参与者的任何编辑传播到其他参与者,并且其中,所述协作工作空间的表示包括为本地参与者定制的所述数字白板的表示。
4.根据权利要求1所述的方法,其特征在于,生成与所述一个或多个远程参与者对象对应的一个或多个活动文件夹包括:
向所述服务器查询与所述一个或多个远程参与者对象相对应的所述一个或多个远程计算设备的一个或多个互联网协议(IP)地址;
生成与所述一个或多个远程参与者对象相对应的一个或多个本地文件夹;以及
通过将所述一个或多个本地文件夹映射到所述一个或多个IP地址来生成所述一个或多个活动文件夹。
5.根据权利要求1所述的方法,其特征在于,所述本地计算设备被配置为存储所述一个或多个远程参与者对象在所述用户界面内的一个或多个空间位置,并且其中,检测拖动与所述一个或多个远程参与者对象中的远程参与者对象附近的至少一个文件相对应的至少一个图标的用户输入包括:
检测将所述至少一个图标拖动到距离所述远程参与者对象的空间位置在阈值距离内的目标空间位置的用户输入。
6.根据权利要求1所述的方法,其特征在于,将所述至少一个文件存储在与所述远程参与者对象相对应的活动文件夹中,从而通过所述网络套接字连接将所述至少一个文件发送到所述远程计算设备的所述网络地址包括:
将所述至少一个文件存储在所述活动文件夹中;
通过所述网络套接字连接将所述至少一个文件的副本传输到映射的所述网络地址,其中所述网络套接字连接被配置为经由所述服务器将数据路由到映射的所述网络地址;以及
传输完成后,从所述活动文件夹中删除所述至少一个文件。
7.根据权利要求1所述的方法,其特征在于,所述活动文件夹被存储在所述本地计算设备上的临时缓存中。
8.一种用于在网络协作工作空间中通过网络套接字连接来传输文件的本地计算设备,其特征在于,所述本地计算设备包括:
一个或多个处理器;以及
一个或多个存储器,所述一个或多个存储器可操作地耦合到所述一个或多个处理器中的至少一个处理器,并具有存储在其上的指令,当所述指令由所述一个或多个处理器中的至少一个处理器执行时,使得所述一个或多个处理器中的至少一个处理器:
在所述本地计算设备的用户界面上传输协作工作空间的表示,所述协作工作空间托管在服务器上并且可通过网络套接字连接供多个参与者访问,所述协作工作空间的所述表示包括与连接到所述服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象;
生成与所述一个或多个远程参与者对象相对应的一个或多个活动文件夹,每个活动文件夹被映射到与所述远程参与者对象相对应的远程计算设备的网络地址;
检测拖动与所述一个或多个远程参与者对象中的远程参与者对象附近的至少一个文件相对应的至少一个图标的用户输入,所述远程参与者对象与所述一个或多个远程计算设备中的远程计算设备相对应;以及
将所述至少一个文件存储在与所述远程参与者对象相对应的活动文件夹中,从而通过所述网络套接字连接,将所述至少一个文件传输到所述远程计算设备的所述网络地址。
9.根据权利要求8所述的本地计算设备,其特征在于,与所述一个或多个远程计算设备相对应的所述一个或多个远程参与者对象包括以下中的一个或多个:嵌入式视频流或远程参与者图标。
10.根据权利要求8所述的本地计算设备,其特征在于,所述协作工作空间包括数字白板,所述数字白板被配置为通过所述网络套接字连接,将来自所述多个参与者中的任何参与者的任何编辑传播到其他参与者,并且其中,所述协作工作空间的表示包括为本地参与者定制的所述数字白板的表示。
11.根据权利要求8所述的本地计算设备,其特征在于,当所述指令由所述一个或多个处理器中的至少一个处理器执行时,使得所述一个或多个处理器中的至少一个处理器生成与所述一个或多个远程参与者对象相对应的一个或多个活动文件夹,进一步使得所述一个或多个处理器中的至少一个处理器:
向所述服务器查询与所述一个或多个远程参与者对象相对应的所述一个或多个远程计算设备的一个或多个互联网协议(IP)地址;
生成与所述一个或多个远程参与者对象相对应的一个或多个本地文件夹;以及
通过将所述一个或多个本地文件夹映射到所述一个或多个IP地址来生成所述一个或多个活动文件夹。
12.根据权利要求8所述的本地计算设备,其特征在于,所述本地计算设备被配置为存储所述一个或多个远程参与者对象在所述用户界面内的一个或多个空间位置,并且其中,所述指令在由所述一个或多个处理器中的至少一个处理器执行时使得所述一个或多个处理器中的至少一个处理器检测拖动与所述一个或多个远程参与者对象中的远程参与者对象附近的至少一个文件相对应的至少一个图标的用户输入,进一步使得所述至少一个或多个处理器中的至少一个处理器:
检测将所述至少一个图标拖动到距离所述远程参与者对象的空间位置在阈值距离内的目标空间位置的用户输入。
13.根据权利要求8所述的本地计算设备,其特征在于,所述指令在由所述一个或多个处理器中的至少一个处理器执行时,使得所述一个或多个处理器中的至少一个处理器将所述至少一个文件存储在与所述远程参与者对象相对应的活动文件夹中,从而通过所述网络套接字连接将所述至少一个文件发送到所述远程计算设备的所述网络地址,进一步使得所述一个或多个处理器中的至少一个处理器:
将所述至少一个文件存储在所述活动文件夹中;
通过所述网络套接字连接,将所述至少一个文件的副本传输到映射的所述网络地址,其中所述网络套接字连接被配置为经由服务器将数据路由到映射的所述网络地址;以及
传输完成后,从所述活动文件夹中删除至少一个所述文件。
14.根据权利要求8所述的本地计算设备,其特征在于,所述活动文件夹被存储在所述本地计算设备上的临时缓存中。
15.至少一种非暂时性计算机可读介质,其特征在于,所述至少一种非暂时性计算机可读介质存储计算机可读指令,所述指令在由本地计算设备执行时,使得所述本地计算设备:
在所述本地计算设备的用户界面上传输协作工作空间的表示,所述协作工作空间托管在服务器上并且通过网络套接字连接供多个参与者访问,所述协作工作空间的所述表示包括与连接到所述服务器的一个或多个远程计算设备相对应的一个或多个远程参与者对象;
生成与所述一个或多个远程参与者对象相对应的一个或多个活动文件夹,每个活动文件夹被映射到与所述远程参与者对象相对应的远程计算设备的网络地址;
检测拖动与至少一个文件相对应的至少一个图标的用户输入,所述至少一个文件邻近于所述一个或多个远程参与者对象中的远程参与者对象,所述远程参与者对象对应于所述一个或多个远程计算设备中的远程计算设备;以及
将所述至少一个文件存储在与所述远程参与者对象相对应的活动文件夹中,从而通过所述网络套接字连接,将所述至少一个文件传输到所述远程计算设备的所述网络地址。
16.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,与所述一个或多个远程计算设备相对应的所述一个或多个远程参与者对象包括以下中的一个或多个:嵌入式视频流或远程参与者图标。
17.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述协作工作空间包括数字白板,所述数字白板被配置为通过所述网络套接字连接,将来自所述多个参与者中的任何参与者的任何编辑传播给其他参与者,并且其中,所述表示协作工作空间的表示包括针对本地参与者定制的所述数字白板的表示。
18.如权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述指令在由所述本地计算设备执行时,使得所述本地计算设备生成与所述一个或多个远程参与者相对应的一个或多个活动文件夹,进一步使得所述本地计算设备:
向所述服务器查询与所述一个或多个远程参与者对象相对应的所述一个或多个远程计算设备的一个或多个互联网协议(IP)地址;
生成与所述一个或多个远程参与者对象相对应的一个或多个本地文件夹;以及
通过将所述一个或多个本地文件夹映射到所述一个或多个IP地址来生成所述一个或多个活动文件夹。
19.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述本地计算设备被配置为存储所述一个或多个远程参与者对象在所述用户界面内的一个或多个空间位置,并且其中,所述指令在由所述本地计算设备执行时使得所述本地计算设备检测拖动与所述一个或多个远程参与者对象中的远程参与者对象附近的至少一个文件相对应的至少一个图标的用户输入,进一步使得所述本地计算设备:
检测将至少一个图标拖动到距离所述远程参与者对象的空间位置在阈值距离内的目标空间位置的用户输入。
20.根据权利要求15所述的至少一种非暂时性计算机可读介质,其特征在于,所述指令在由所述本地计算设备执行时,使得所述本地计算设备将所述至少一个文件存储在与所述远程设备相对应的活动文件夹中,从而通过所述网络套接字连接将所述至少一个文件传输到所述远程计算设备的所述网络地址,进一步使得所述本地计算设备:
将所述至少一个文件存储在所述活动文件夹中;
通过所述网络套接字连接将所述至少一个文件的副本传输到映射的所述网络地址,其中,所述网络套接字连接被配置为经由所述服务器将数据路由到映射的所述网络地址;以及
传输完成后,从所述活动文件夹中删除所述至少一个文件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/923,943 | 2018-03-16 | ||
US15/923,943 US10931733B2 (en) | 2017-08-24 | 2018-03-16 | Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace |
PCT/EP2019/056276 WO2019175237A1 (en) | 2018-03-16 | 2019-03-13 | Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112106044A true CN112106044A (zh) | 2020-12-18 |
Family
ID=65955176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980018738.1A Pending CN112106044A (zh) | 2018-03-16 | 2019-03-13 | 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3765973A1 (zh) |
JP (1) | JP2021517302A (zh) |
KR (1) | KR20200131881A (zh) |
CN (1) | CN112106044A (zh) |
BR (1) | BR112020018877A2 (zh) |
RU (1) | RU2020133478A (zh) |
WO (1) | WO2019175237A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868201B (zh) * | 2021-12-02 | 2022-03-15 | 天津联想协同科技有限公司 | 一种多人协作分享文件的方法、装置及存储介质 |
KR102605522B1 (ko) * | 2023-01-06 | 2023-11-24 | 한규태 | 펑션 보드를 이용한 고객 협동 개발 시스템 및 이에 포함되는 서버 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144186A1 (en) * | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20050262201A1 (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corporation | Systems and methods for novel real-time audio-visual communication and data collaboration |
US20070288551A1 (en) * | 2006-06-09 | 2007-12-13 | Sidon Laurent F | Distribution of Files from Mobile Devices |
CN101405993A (zh) * | 2006-03-13 | 2009-04-08 | 微软公司 | 使用计算上下文的网络接口路由 |
US7529796B2 (en) * | 1996-05-08 | 2009-05-05 | Apple Inc. | File sharing using near real time messaging |
US20090244278A1 (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corporation | Software based whiteboard capture solution for conference room meetings |
US20150149929A1 (en) * | 2013-11-22 | 2015-05-28 | Dell Products, L.P. | Managing Information and Content Sharing in a Virtual Collaboration Session |
WO2016160995A1 (en) * | 2015-04-01 | 2016-10-06 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
CN107004180A (zh) * | 2014-11-17 | 2017-08-01 | 微软技术许可有限责任公司 | 不同位置中的被共享的文件的本地表示 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10162491B2 (en) * | 2011-08-12 | 2018-12-25 | Otoy Inc. | Drag and drop of objects between applications |
-
2019
- 2019-03-13 CN CN201980018738.1A patent/CN112106044A/zh active Pending
- 2019-03-13 JP JP2020547345A patent/JP2021517302A/ja active Pending
- 2019-03-13 WO PCT/EP2019/056276 patent/WO2019175237A1/en active Application Filing
- 2019-03-13 RU RU2020133478A patent/RU2020133478A/ru unknown
- 2019-03-13 EP EP19712894.5A patent/EP3765973A1/en not_active Withdrawn
- 2019-03-13 KR KR1020207029555A patent/KR20200131881A/ko unknown
- 2019-03-13 BR BR112020018877-8A patent/BR112020018877A2/pt not_active IP Right Cessation
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529796B2 (en) * | 1996-05-08 | 2009-05-05 | Apple Inc. | File sharing using near real time messaging |
US20050144186A1 (en) * | 1999-12-02 | 2005-06-30 | Lambertus Hesselink | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US20050262201A1 (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corporation | Systems and methods for novel real-time audio-visual communication and data collaboration |
CN101405993A (zh) * | 2006-03-13 | 2009-04-08 | 微软公司 | 使用计算上下文的网络接口路由 |
US20070288551A1 (en) * | 2006-06-09 | 2007-12-13 | Sidon Laurent F | Distribution of Files from Mobile Devices |
US20090244278A1 (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corporation | Software based whiteboard capture solution for conference room meetings |
US20150149929A1 (en) * | 2013-11-22 | 2015-05-28 | Dell Products, L.P. | Managing Information and Content Sharing in a Virtual Collaboration Session |
CN107004180A (zh) * | 2014-11-17 | 2017-08-01 | 微软技术许可有限责任公司 | 不同位置中的被共享的文件的本地表示 |
WO2016160995A1 (en) * | 2015-04-01 | 2016-10-06 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
Non-Patent Citations (1)
Title |
---|
ALEX OSADZINSKI: "The Network File System (NFS)", COMPUTER STANDARDS & INTERFACES, vol. 08, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
JP2021517302A (ja) | 2021-07-15 |
EP3765973A1 (en) | 2021-01-20 |
RU2020133478A (ru) | 2022-04-19 |
WO2019175237A1 (en) | 2019-09-19 |
KR20200131881A (ko) | 2020-11-24 |
BR112020018877A2 (pt) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11483376B2 (en) | Method, apparatus, and computer-readable medium for transmission of files over a web socket connection in a networked collaboration workspace | |
US20220382505A1 (en) | Method, apparatus, and computer-readable medium for desktop sharing over a web socket connection in a networked collaboration workspace | |
KR101548524B1 (ko) | 사용자 인터페이스 디스플레이 상의 교육 애니메이션들의 렌더링 | |
US9542010B2 (en) | System for interacting with objects in a virtual environment | |
US20190065012A1 (en) | Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace | |
US10990344B2 (en) | Information processing apparatus, information processing system, and information processing method | |
JP6433923B2 (ja) | デバイスへの特定のオブジェクト位置の提供 | |
EP2965181B1 (en) | Enhanced canvas environments | |
CN111433735A (zh) | 实现通用硬件-软件接口的方法、设备和计算机可读介质 | |
CN112106044A (zh) | 用于在网络协作工作空间中通过网络套接字连接传输文件的方法,设备和计算机可读介质 | |
US11334220B2 (en) | Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace | |
CN112204512A (zh) | 用于在网络化协作工作区中通过web套接字连接进行桌面共享的方法,装置和计算机可读介质 | |
CN112805685A (zh) | 用于在网络协作工作空间中通过网络套接字连接传播丰富笔记数据对象的方法、装置和计算机可读介质 | |
CN112424738A (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 |