JP2021517302A - Methods, devices, and computer-readable media for sending files over websocket connections in a networked collaborative workspace. - Google Patents
Methods, devices, and computer-readable media for sending files over websocket connections in a networked collaborative workspace. Download PDFInfo
- Publication number
- JP2021517302A JP2021517302A JP2020547345A JP2020547345A JP2021517302A JP 2021517302 A JP2021517302 A JP 2021517302A JP 2020547345 A JP2020547345 A JP 2020547345A JP 2020547345 A JP2020547345 A JP 2020547345A JP 2021517302 A JP2021517302 A JP 2021517302A
- Authority
- JP
- Japan
- Prior art keywords
- remote
- computing device
- 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 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 241001422033 Thestylus Species 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000006854 communication Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 9
- 230000033001 locomotion Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 241000699666 Mus <mouse, genus> Species 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 241000699670 Mus sp. Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000969 carrier Substances 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
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 210000000439 stratum lucidum Anatomy 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 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)
- Strategic Management (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Computer Interaction (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
- Information Transfer Between Computers (AREA)
Abstract
サーバ上にホストされ、ウェブ・ソケット接続を介して参加者にとってアクセス可能な、共同ワークスペースの表現を送信することであって、共同ワークスペースの表現が、サーバに接続されたリモート・コンピューティング・デバイスに対応するリモート参加者オブジェクトを含む、送信することと、リモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダを生成することであって、各ライブ・フォルダが、リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのネットワーク・アドレスにマッピングされる、生成することと、リモート参加者オブジェクトの近位にファイルに対応するアイコンをドラッグするためのユーザ入力を検出することと、リモート参加者オブジェクトに対応するライブ・フォルダに少なくとも1つのファイルを記憶して、それにより、少なくとも1つのファイルを、ウェブ・ソケット接続を介してリモート・コンピューティング・デバイスのネットワーク・アドレスに送信することとを含む、ネットワーク化された共同ワークスペースにおけるウェブ・ソケット接続を介したファイルの送信のためのシステム、方法及びコンピュータ可読媒体。Sending a representation of a collaborative workspace that is hosted on a server and accessible to participants via a web socket connection, where the representation of the collaborative workspace is a remote computing connected to the server. Sending, including the remote participant object corresponding to the device, and creating one or more live folders corresponding to the remote participant object, each live folder becoming a remote participant object. Detecting user input to generate, which maps to the network address of the corresponding remote computing device, and to drag the icon corresponding to the file proximal to the remote participant object, and remote join Store at least one file in the live folder that corresponds to the person object, thereby sending at least one file to the network address of the remote computing device over a web socket connection. Systems, methods and computer-readable media for the transmission of files over web socket connections in networked collaborative workspaces, including.
Description
(背景技術)
オペレーティング・システム、及びオペレーティング・システム内で実行するアプリケーションは、ユーザがプログラムに入力を与えることと、ユーザに出力を与えることとを可能にするために、外部ハードウェア・デバイスを頻繁に利用する。外部ハードウェア・デバイスの一般的な実例は、キーボード、コンピュータ・マウス、マイクロフォン、及び外部スピーカーを含む。これらの外部ハードウェア・デバイスは、ドライバの使用によってオペレーティング・システムとインターフェースし、ドライバは、特定のハードウェア・デバイスによって使用されるハードウェア・コマンドとオペレーティング・システムとの間をインターフェースするように構成された専用ソフトウェア・プログラムである。
(Background technology)
The operating system, and applications running within the operating system, frequently utilize external hardware devices to allow the user to give input to the program and to give output to the user. Common examples of external hardware devices include keyboards, computer mice, microphones, and external speakers. These external hardware devices interface with the operating system through the use of drivers, and the drivers are configured to interface between the hardware commands used by a particular hardware device and the operating system. Dedicated software program.
アプリケーションは、いくつかのハードウェア・デバイスとインターフェースするように設計されることがある。たとえば、音声−テキスト・ワード・プロセッシング・アプリケーションが、マイクロフォンを含むオーディオ・ヘッドセットとインターフェースするように設計され得る。この場合、アプリケーションは、特に、音声コマンドを受信し、音声認識を実施し、認識されたワードをテキスト・コンテンツに変換し、テキスト・コンテンツを文書に出力するように構成されなければならない。この機能性は、一般に、様々なソフトウェア構成要素間の通信の定義された方法のセットである、アプリケーションのアプリケーション・プログラミング・インターフェース(API:Application Programming Interface)において実施されることになる。音声認識アプリケーションの実例では、APIは、アプリケーション・プログラムとドライバ上のソフトウェアとの間のインターフェースを含むことができ、これは、ハードウェア・デバイス(マイクロフォン)自体とインターフェースすることを担当する。 Applications may be designed to interface with several hardware devices. For example, voice-text word processing applications can be designed to interface with audio headsets, including microphones. In this case, the application must be configured, in particular, to receive voice commands, perform voice recognition, convert the recognized words into text content, and output the text content to a document. This functionality will generally be implemented in the application programming interface (API) of an application, which is a defined set of methods of communication between various software components. In an example of a speech recognition application, the API can include an interface between the application program and the software on the driver, which is responsible for interfacing with the hardware device (microphone) itself.
専用ハードウェア・デバイスを利用する既存のソフトウェアの1つの問題は、アプリケーション又はオペレーティング・システム・ソフトウェア自体が、ハードウェア・デバイスを利用するために、カスタマイズされ、特別に設計されなければならないことである。このカスタマイゼーションは、ハードウェア・デバイスが、アプリケーションによって、そのために定義された範囲を超えることができず、それが使用されるように設計された特定のアプリケーション以外のコンテキストのために利用され得ないことを意味する。たとえば、音声テキスト・ワード・プロセッシング・アプリケーションのユーザは、オペレーティング・システム内の他のアプリケーション・プログラム又は他の構成要素を、それらの他のアプリケーション・プログラム又はオペレーティング・システムが、マイクロフォンを介して受信される音声コマンドを利用するように特別に設計されない限り、音声コマンドを使用して操作することができない。 One problem with existing software that utilizes dedicated hardware devices is that the application or operating system software itself must be customized and specially designed to utilize the hardware device. .. This customization does not allow the hardware device to exceed the scope defined for it by the application and cannot be utilized for contexts other than the specific application in which it was designed to be used. Means. For example, a user of a voice text word processing application may receive other application programs or other components in the operating system that the other application program or operating system receives via a microphone. It cannot be operated using voice commands unless it is specifically designed to use voice commands.
図1は、ユーザ入力のために、結合されたハードウェア・デバイスを利用するシステムの既存のアーキテクチャの一実例を示す。図1のオペレーティング・システム100Aは、実行アプリケーション101A及び102Aを含み、それらの各々は、それぞれ、それら自体のAPI101B及び102Bを有する。オペレーティング・システム100Aはまた、それ自体のAPI100B、並びにハードウェア・デバイス100D、101D、及び102Dとインターフェースするように構成された専用ドライバ100C、101C、及び102Cを有する。
FIG. 1 shows an example of an existing architecture of a system that utilizes combined hardware devices for user input. The operating system 100A of FIG. 1 includes execution applications 101A and 102A, each of which has its
図1に示されているように、アプリケーションAPI101Bは、ドライバ101Cとインターフェースするように構成され、ドライバ101C自体は、ハードウェア・デバイス101Dとインターフェースする。同様に、アプリケーションAPI102Bは、ドライバ102Cとインターフェースするように構成され、ドライバ102C自体は、ハードウェア・デバイス102Dとインターフェースする。オペレーティング・システム・レベルにおいて、オペレーティング・システムAPI100Bは、ドライバ100Cとインターフェースするように構成され、ドライバ100C自体は、ハードウェア・デバイス100Dとインターフェースする。
As shown in FIG. 1, the
図1に示されているシステムのアーキテクチャは、いくつかのアプリケーション又はオペレーティング・システム・コンテキスト外でハードウェア・デバイスを利用するユーザの能力を限定する。たとえば、ユーザは、アプリケーション102Aに入力を与えるためにハードウェア・デバイス101Dを利用することができず、アプリケーション101Aに又はオペレーティング・システム100Aに入力を与えるためにハードウェア・デバイス102Dを利用することができない。 The system architecture shown in FIG. 1 limits the ability of users to utilize hardware devices outside of some application or operating system context. For example, the user may not be able to use the hardware device 101D to give input to application 102A and may use the hardware device 102D to give input to application 101A or operating system 100A. Can not.
したがって、複数のソフトウェア・コンテキストにおけるハードウェア・デバイスの利用を可能にする、ハードウェア・ソフトウェア・インターフェースの改善が必要とされる。 Therefore, improvements in the hardware software interface are needed to allow the use of hardware devices in multiple software contexts.
方法、装置、及びコンピュータ可読媒体は、実例及び実施例として本明細書で説明されるが、当業者は、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための方法、装置、及びコンピュータ可読媒体が、説明される実施例又は図面に限定されないことを認識する。図面及び説明は、開示される特定の形式に限定されるものではないことを理解されたい。むしろ、意図は、添付の特許請求の範囲の趣旨及び範囲内に入るすべての修正、等価物及び代替をカバーすることである。本明細書で使用されるいかなる見出しも編成のためのものであるにすぎず、本明細書の範囲又は特許請求の範囲を限定するものではない。本明細書で使用される「することができる(can)」という単語は、強制的な意味(すなわち、しなければならない(must)という意味)ではなく許容的な意味(すなわち、可能性を有するという意味)において使用される。同様に、「含む(include)」、「含む(including)」、及び「含む(includes)」という単語は、含むことを意味するが、それに限定されない。 Methods, devices, and computer-readable media are described herein as examples and examples, but those skilled in the art will appreciate methods, devices, and computer-readable media for implementing universal hardware software interfaces. Recognize that it is not limited to the embodiments or drawings described. It should be understood that the drawings and description are not limited to the particular format disclosed. Rather, the intent is to cover the intent and all modifications, equivalents and alternatives that fall within the scope of the appended claims. Any headings used herein are for organization purposes only and are not intended to limit the scope of the specification or the claims. As used herein, the word "can" has an acceptable meaning (ie, potential) rather than a compulsory meaning (ie, meaning must). Meaning). Similarly, the words "include," "include," and "includes" mean, but are not limited to.
出願人は、ハードウェア・デバイスのために使用される、以前のハードウェア・ソフトウェア・インターフェースに関連する問題を解決する方法、装置、及びコンピュータ可読媒体を発見した。特に、出願人は、ユーザが、様々なソフトウェア・コンテキストにおいて通信可能に結合されたハードウェア・デバイスを利用することを可能にするユニバーサル・ハードウェア・ソフトウェア・インターフェースを開発した。開示される実装形態は、以下でより詳細に説明されるように、専用仮想ドライバ及び対応する透明層の使用によって、アプリケーション又はオペレーティング・システムが特定のハードウェア・デバイスとインターフェースするように特注設計される必要を取り除く。 Applicants have discovered methods, devices, and computer-readable media used for hardware devices to solve problems associated with previous hardware software interfaces. In particular, Applicants have developed a universal hardware software interface that allows users to utilize communicably coupled hardware devices in a variety of software contexts. The disclosed implementations are custom designed to allow an application or operating system to interface with a particular hardware device through the use of dedicated virtual drivers and corresponding transparent layers, as described in more detail below. Get rid of the need.
図2は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースを利用するシステムのアーキテクチャを示す。図2に示されているように、オペレーティング・システム200Aは、仮想ドライバ204と通信する透明層203を含む。以下でより詳細に説明されるように、透明層203は、仮想ドライバとオペレーティング・システム及び/又はオペレーティング・システム上で実行する(1つ又は複数の)アプリケーションとの間をインターフェースするように構成されたAPIである。この例では、透明層203は、仮想ドライバ204と、アプリケーション201AのAPI201B、アプリケーション202AのAPI202B、及びオペレーティング・システム200Aのオペレーティング・システムAPI200Bとの間をインターフェースする。
FIG. 2 shows the architecture of a system utilizing a universal hardware software interface according to an exemplary embodiment. As shown in FIG. 2, the operating system 200A includes a transparent layer 203 that communicates with the virtual driver 204. As described in more detail below, the transparent layer 203 is configured to interface between the virtual driver and the operating system and / or the application (s) running on the operating system. It is an API. In this example, the transparent layer 203 interfaces between the virtual driver 204 and the
透明層203は、オペレーティング・システム上で動作するソフトウェア・プロセスの一部であり得、下位(underlying)ユーザ・インターフェースの上に重ね合わせられた透明ユーザ・インターフェース(UI:user interface)及び/又はユーザが対話することが可能である可視UI要素を含む、透明層203自体のUI要素を有することができる。 The transparent layer 203 can be part of a software process running on an operating system and is a transparent user interface (UI) and / or user superimposed on an underlying user interface. Can have UI elements of the transparent layer 203 itself, including visible UI elements to which can interact.
仮想ドライバ204は、ドライバ205A及び205Bをエミュレートするように構成され、ドライバ205A及び205Bは、それぞれ、ハードウェア・デバイス206A及び206Bとインターフェースする。仮想ドライバは、どの仮想ドライバをエミュレートすべきかについて仮想ドライバに命令する、たとえば、音声コマンド、ユーザ・インターフェース上で行われる選択、及び/又は結合されたウェブ・カメラの前でユーザによって行われるジェスチャーの形式の、ユーザ入力を受信することができる。たとえば、接続されたハードウェア・デバイスの各々は、「リスニング」モードにおいて動作することができ、仮想ドライバ204におけるエミュレートされるドライバの各々は、特定のエミュレーション・モードに切り替えるための仮想ドライバに対する信号として働く初期化信号を検出するように構成され得る。たとえば、ユーザが「音声コマンド開始」と述べることは、新しい音声コマンドを受信するためのマイクロフォンに対応するドライバをアクティブにすることができる。同様に、ユーザがあるジェスチャーを与えることは、ジェスチャー入力又はタッチ入力を受信するためのウェブ・カメラに対応するドライバをアクティブにすることができる。
The virtual driver 204 is configured to emulate
仮想ドライバは、ネイティブ・ドライバ205Cなど、ネイティブ・ドライバとインターフェースするようにも構成され得、ネイティブ・ドライバ205C自体は、ハードウェア・デバイス206Cと通信する。一実例では、ハードウェア・デバイス206Cは、キーボード又はマウスなど、標準入力デバイスであり得、標準入力デバイスは、オペレーティング・システムによってネイティブにサポートされる。 The virtual driver may also be configured to interface with a native driver, such as the native driver 205C, which itself communicates with the hardware device 206C. In one embodiment, the hardware device 206C can be a standard input device, such as a keyboard or mouse, which is natively supported by the operating system.
図2に示されているシステムは、ユーザが、特定のアプリケーション又はオペレーティング・システムなどの様々なコンテキストにおいて任意の結合されたハードウェア・デバイスを、そのアプリケーション又はオペレーティング・システムがハードウェア・デバイスとインターフェースするようにカスタマイズされることを必要とすることなしに、利用することができるユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装を可能にする。 In the system shown in FIG. 2, a user interfaces with any combined hardware device in various contexts, such as a particular application or operating system, and the application or operating system interfaces with the hardware device. Allows the implementation of available universal hardware software interfaces without having to be customized to do so.
たとえば、ハードウェア・デバイス206Aは、情報をキャプチャすることができ、その情報は、次いで、ドライバ205Aをエミュレートする仮想ドライバ204によって受信される。仮想ドライバ204は、キャプチャされた情報に基づいて、ユーザ入力を決定することができる。たとえば、その情報が、ユーザがユーザの手を動かす一連の画像である場合、仮想ドライバは、ユーザがジェスチャーを実施したと決定することができる。
For example, hardware device 206A can capture information, which is then received by virtual driver 204, which emulates
(特定のアプリケーション又はオペレーティング・システムなどの)識別されたコンテキストに基づいて、ユーザ入力は、実行のために透明層コマンドに変換され、透明層203に送信され得る。透明層コマンドは、識別されたコンテキストにおけるネイティブ・コマンドを含むことができる。たとえば、識別されたコンテキストがアプリケーション201Aである場合、ネイティブ・コマンドは、アプリケーション201AのアプリケーションAPI201Bに適合するフォーマットのものであろう。次いで、透明層コマンドの実行が、識別されたコンテキストにおける1つ又は複数のネイティブ・コマンドの実行を引き起こすように構成され得る。これは、透明層203が、オペレーティング・システム200A並びにオペレーティング・システムAPI200B上で実行するアプリケーションのAPIの各々とインターフェースすることによって、達成される。たとえば、ネイティブ・コマンドが、新しいプログラムを起動するためのコマンドなど、オペレーティング・システム・コマンドである場合、透明層203は、実行のためにオペレーティング・システムAPI200Bにそのネイティブ・コマンドを与えることができる。 Based on the identified context (such as a particular application or operating system), user input can be translated into transparent layer commands for execution and sent to transparent layer 203. Transparent layer commands can include native commands in the identified context. For example, if the identified context is application 201A, the native command will be in a format that matches application API201B of application 201A. The execution of a transparent layer command can then be configured to trigger the execution of one or more native commands in the identified context. This is achieved by the transparent layer 203 interfacing with each of the operating system 200A and the API of the application running on the operating system API 200B. For example, if the native command is an operating system command, such as a command to launch a new program, the transparent layer 203 may give the operating system API 200B that native command for execution.
図2に示されているように、示されている構成要素のすべての間で双方向通信がある。これは、たとえば、透明層203における透明層コマンドの実行が、仮想ドライバ204への情報の送信及び接続されたハードウェア・デバイスのうちの1つ上への情報の送信を生じることがあることを意味する。たとえば、音声コマンドが入力として認識され、ネイティブ・コマンドを含む透明層コマンドに変換され、透明層によって実行された(識別されたコンテキストにおけるネイティブ・コマンドの実行を生じた)後に、音出力「コマンドが受信されました」を送信するために、信号が(仮想ドライバを介して)透明層からスピーカーに送られ得る。 As shown in FIG. 2, there is bidirectional communication between all of the components shown. This means that, for example, execution of a transparent layer command on transparent layer 203 may result in sending information to virtual driver 204 and up one of the connected hardware devices. means. For example, a voice command is recognized as input, converted to a transparent layer command containing a native command, executed by the transparent layer (causing the execution of the native command in the identified context), and then the sound output "command is A signal can be sent from the transparent layer (via the virtual driver) to the speaker to send "received".
もちろん、図2に示されているアーキテクチャは、説明のためのものにすぎず、実行するアプリケーションの数、接続されたハードウェア・デバイスの数及びタイプ、ドライバ及びエミュレートされたドライバの数は変動することがあることを理解されたい。 Of course, the architecture shown in Figure 2 is for illustration purposes only, and the number of applications running, the number and type of hardware devices connected, and the number of drivers and emulated drivers will vary. Please understand that there are things to do.
図3は、例示的な実施例による、ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のためのフローチャートである。 FIG. 3 is a flowchart for implementing a universal hardware software interface according to an exemplary embodiment.
ステップ301において、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいて、ユーザ入力が決定される。本明細書で使用されるシステムは、方法のステップを実行する1つ又は複数のコンピューティング・デバイス、方法のステップを実行する1つ又は複数のプロセッサと1つ又は複数のメモリとを備える装置、又は任意の他のコンピューティング・システムを指すことがある。
In
ユーザ入力は、システム上で実行する仮想ドライバによって決定され得る。前に説明されたように、仮想ドライバは、エミュレーション・モードにおいて動作していることがあり、エミュレーション・モードにおいて、仮想ドライバは、他のハードウェア・ドライバをエミュレートしており、それにより、ハードウェア・デバイスから、キャプチャされた情報を受信するか、又は随意に、特定のハードウェア・デバイスとインターフェースするように構成された1つ又は複数の他のハードウェア・ドライバから、キャプチャされた情報を受信することができる。 User input can be determined by a virtual driver running on the system. As previously described, the virtual driver may be operating in embroidery mode, in which the virtual driver emulates another hardware driver, thereby hardware. Receive captured information from a hardware device or, optionally, capture information from one or more other hardware drivers configured to interface with a particular hardware device. Can be received.
カメラ、ビデオ・カメラ、マイクロフォン、双方向通信を有するヘッドセット、マウス、タッチパッド、トラックパッド、コントローラ、ゲーム・パッド、ジョイスティック、タッチ・スクリーン、加速度計及び/又はチルト・センサーを含む動きキャプチャ・デバイス、遠隔制御装置、スタイラス、或いはこれらのデバイスの任意の組合せなど、様々なハードウェア・デバイスが利用され得る。もちろん、ハードウェア・デバイスのこのリストは、単に実例として与えられ、音声、画像、ビデオ、又はタッチ情報を検出するために利用され得る任意のハードウェア・デバイスが利用され得る。 Motion capture devices including cameras, video cameras, microphones, headsets with two-way communication, mice, touchpads, trackpads, controllers, gamepads, joysticks, touch screens, accelerometers and / or tilt sensors. Various hardware devices may be utilized, such as a remote controller, stylus, or any combination of these devices. Of course, this list of hardware devices is given merely as an example, and any hardware device that can be used to detect audio, image, video, or touch information can be utilized.
ハードウェア・デバイスとシステムとの間の通信結合は、様々な形式をとることができる。たとえば、ハードウェア・デバイスは、ワイヤレス・ネットワーク、Bluetoothプロトコル、無線周波数、赤外線信号を介して、及び/又はユニバーサルシリアルバス(USB:Universal Serial Bus)接続などの物理接続によってシステムと通信することができる。通信は、ワイヤレス通信とワイヤード通信の両方をも含むことができる。たとえば、ハードウェア・デバイスは、2つの構成要素を含むことができ、そのうちの1つが、第2の構成要素に(Bluetoothを介してなど)ワイヤレスに信号を送信し、第2の構成要素自体は、(USBなどの)ワイヤード接続を介してシステムに接続する。様々な通信技法が本明細書で説明されるシステムに従って利用され得、これらの実例は、限定するものではない。 Communication coupling between a hardware device and a system can take various forms. For example, a hardware device can communicate with the system via a wireless network, Bluetooth protocol, radio frequency, infrared signal, and / or by a physical connection such as a Universal Serial Bus (USB) connection. .. Communication can also include both wireless and wired communication. For example, a hardware device can contain two components, one of which signals the second component wirelessly (such as via Bluetooth), and the second component itself , Connect to the system via a wired connection (such as USB). Various communication techniques may be utilized in accordance with the systems described herein, and these examples are not limited.
1つ又は複数のハードウェア・デバイスによってキャプチャされる情報は、1つ又は複数の画像を含む画像情報、ビデオのフレーム、音情報、及び/又はタッチ情報など、任意のタイプの情報であり得る。キャプチャされた情報は、音情報のための.wav又は.mp3ファイル、画像のための.jpegファイル、タッチ情報のための数値座標など、任意の好適なフォーマットのものであり得る。 The information captured by one or more hardware devices can be any type of information, such as image information containing one or more images, video frames, sound information, and / or touch information. The captured information is for sound information. wav or. For mp3 files, images. It can be in any suitable format, such as a jpg file, numerical coordinates for touch information, and so on.
本明細書で説明される技法は、任意のディスプレイ・デバイスが、そのディスプレイ・デバイスが、タッチ信号又はタッチ・ベースのジェスチャーを検出するためのハードウェアを含まない場合でも、任意のコンテキストにおいて「タッチ」スクリーンデバイスとして事実上機能することを可能にすることができる。これは、以下でより詳細に説明され、カメラ又はビデオ・カメラによってキャプチャされた画像の分析を通して達成され得る。 The techniques described herein are "touch" in any context, even if any display device does not include hardware for detecting touch signals or touch-based gestures. It can be made possible to effectively function as a screen device. This is described in more detail below and can be achieved through analysis of images captured by cameras or video cameras.
図4は、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が1つ又は複数の画像を含むときの、1つ又は複数のハードウェア・デバイスによってキャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートを示す。 FIG. 4 is captured by one or more hardware devices when the information captured by one or more hardware devices communicatively coupled to the system contains one or more images. A flowchart for determining a user input based on at least a part of the information obtained is shown.
ステップ401において、1つ又は複数の画像が受信される。これらの画像は、前に説明されたように、カメラ又はビデオ・カメラなど、ハードウェア・デバイスによってキャプチャされ得、仮想ドライバによって受信され得る。
In
ステップ402において、1つ又は複数の画像中のオブジェクトが認識される。オブジェクトは、たとえば、ユーザの手、指、又は他の身体部位であり得る。オブジェクトはまた、スタイラス又はペンなどの専用デバイス、或いはシステムに通信可能に結合され、加速度計及び/又はチルト・センサーを含んでいる動き追跡スタイラス/遠隔制御装置などの専用ハードウェア・デバイスであり得る。オブジェクト認識は、仮想ドライバによって実施され得、オブジェクトを使用して動作される較正ルーチンを通してなど、以前のトレーニングに基づき得る。
In
図5Aは、例示的な実施例による、オブジェクト認識の一実例を示す。図5Aに示されているように、画像501は、オブジェクト502として認識されたユーザの手を含む。認識アルゴリズムは、もちろん、指など、異なるオブジェクトを認識するように構成され得る。
FIG. 5A shows an example of object recognition according to an exemplary embodiment. As shown in FIG. 5A,
図4に戻ると、ステップ403において、認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とが決定される。これは、様々なやリ方で達成され得る。オブジェクトがハードウェア・デバイスではなく、代わりに、手又は指など、身体部位である場合、オブジェクトは、オブジェクトの3次元座標と、X軸、Y軸、及びZ軸に対する様々な角度とを決定するために、カメラの既知のロケーションを基準点として使用する3次元座標系においてマッピングされ得る。オブジェクトがハードウェア・デバイスであり、加速度計及び/又はチルト・センサーなど、動き追跡ハードウェアを含む場合、画像情報は、オブジェクトの位置及び配向を決定するための加速度計及び/又はチルト・センサーによって示された情報とともに使用され得る。
Returning to FIG. 4, in
ステップ404において、ユーザ入力は、認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいて決定される。これは、1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいて、透明層の透明ユーザ・インターフェース(UI)上のロケーション座標を決定することを含むことができる。透明UIは、透明層の一部であり、オペレーティング・システム及び/又はオペレーティング・システム上で実行する任意のアプリケーションに対応する下位UIの上に重ね合わせられる。
In
図5Bは、オブジェクトがユーザの指であるときの、このステップの一実例を示す。図5Bに示されているように、ディスプレイ・デバイス503は、下位UI506と、下位UI506上に重ね合わせられた透明UI507とを含む。明快のために、透明UI507は、ドット・シェーディングで示されているが、実際には、透明UIは、ユーザにとって可視でない透明層であることを理解されたい。さらに、透明UI507は、下位UI506よりもわずかに小さいものとして示されているが、実際には、透明UIは、下位UIと同じスクリーン・エリアをカバーすることになることを理解されたい。
FIG. 5B shows an example of this step when the object is a user's finger. As shown in FIG. 5B, the
図5Bに示されているように、オブジェクト(ユーザの指)の位置及び配向情報は、ディスプレイ・デバイス503の平面上にラインを投影し、交差点505を決定するために使用される。カメラ504によってキャプチャされた画像情報及びカメラの下のディスプレイ・デバイス503の既知の位置が、この投影を助けるために使用され得る。図5Bに示されているように、ユーザ入力は、交差点505における入力座標であると決定される。
As shown in FIG. 5B, the position and orientation information of the object (user's finger) is used to project a line onto the plane of the
以下でさらに説明されるように、この入力に基づいて生成される実際の透明層コマンドは、ユーザ設定及び/又は識別されたコンテキストに基づき得る。たとえば、コマンドは、点505の座標におけるオブジェクトが選択され、及び/又は開かれるべきであることを示すタッチ・コマンドであり得る。コマンドは、(マウス・ポインタなどの)ポインタが点505の座標に移動されるべきであることを示すポインティング・コマンドでもあり得る。さらに、コマンドは、(インターフェースにアノテーションを付けるか又は要素を描画するためになど)ロケーションにおけるグラフィカル出力を修正する編集コマンドであり得る。
As further described below, the actual transparent layer commands generated based on this input may be based on user settings and / or identified contexts. For example, the command can be a touch command indicating that an object at coordinates at
図5Bは、ディスプレイ・デバイス503からある距離にあるものとして、認識されたオブジェクト502を示しているが、距離にかかわらずタッチ入力が検出され得る。たとえば、ユーザがディスプレイ・デバイス503に物理的にタッチする場合、上記で説明された技法は、依然として入力座標を決定することになる。その場合、オブジェクト502と交差点との間の投影ラインは、より短くなるにすぎないであろう。
FIG. 5B shows the recognized
もちろん、タッチ入力は、キャプチャされた画像から決定され得るユーザ入力の唯一のタイプではない。認識されたオブジェクトの1つ又は複数の配向と1つ又は複数の位置とに少なくとも部分的に基づいてユーザ入力を決定するステップは、ジェスチャー入力を決定することを含むことができる。特に、複数の画像にわたる認識されたオブジェクトの位置及び配向が、スワイプ・ジェスチャー、ピンチ・ジェスチャー、及び/或いは任意の既知の又はカスタマイズされたジェスチャーなど、対応するジェスチャーを決定するために分析され得る。ユーザは、特定のコンテキスト及びそれらのコンテキスト内のコマンドにマッピングされるカスタム・ジェスチャーを認識するように仮想ドライバを較正することができる。たとえば、ユーザは、オペレーティング・システム・コンテキストにマッピングされ、特定のアプリケーションを起動するネイティブ・オペレーティング・システム・コマンドの実行を生じる、カスタム・ジェスチャーを作成することができる。 Of course, touch input is not the only type of user input that can be determined from the captured image. The step of determining a user input based at least in part on one or more orientations and one or more positions of a recognized object can include determining a gesture input. In particular, the position and orientation of the recognized object across multiple images can be analyzed to determine the corresponding gesture, such as a swipe gesture, a pinch gesture, and / or any known or customized gesture. The user can calibrate the virtual driver to recognize custom gestures that map to specific contexts and commands within those contexts. For example, a user can create a custom gesture that maps to an operating system context and results in the execution of a native operating system command that launches a particular application.
前に説明されたように、図3のステップ301において1つ又は複数のハードウェア・デバイスによってキャプチャされた情報は、マイクロフォンによってキャプチャされた音情報をも含むことができる。図6は、システムに通信可能に結合された1つ又は複数のハードウェア・デバイスによってキャプチャされた情報が音情報であるときの、キャプチャされた情報に少なくとも部分的に基づいてユーザ入力を決定するためのフローチャートを示す。以下で説明されるように、ユーザ入力に対応する1つ又は複数のワードを識別するために、音情報に対して音声認識が実施される。
As previously described, the information captured by one or more hardware devices in
ステップ601において、音データが受信される。音データは、上記で説明されたように、マイクロフォンなど、ハードウェア・デバイスによってキャプチャされ、仮想ドライバによって受信され得る。ステップ602において、受信された音データは、音辞書と比較され得る。音辞書は、コマンド・ワード又はコマンド・モディファイアなど、1つ又は複数の認識されたワードの音シグネチャを含むことができる。ステップ603において、音データ中の1つ又は複数のワードが、比較に基づいて、ユーザ入力として識別される。次いで、識別された1つ又は複数のワードは、透明層コマンドに変換され、透明層に渡され得る。
In
前に説明されたように、仮想ドライバによってエミュレートされるドライバ、ユーザ入力の予想されるタイプ、及びユーザ入力に基づいて生成されるコマンドは、すべて、1つ又は複数の設定又は前のユーザ入力に少なくとも部分的に基づいて決定され得る。 As explained earlier, the driver emulated by the virtual driver, the expected type of user input, and the commands generated based on the user input are all one or more settings or the previous user input. Can be determined on the basis of at least partly.
図7は、透明層の一部でもあり得るツール・インターフェース701を示す。透明UIとは異なり、ツール・インターフェース701は、ユーザにとって可視であり、仮想ドライバのエミュレーション・モード、ユーザ入力に基づいて生成されるネイティブ・コマンドを変更する異なるオプション間で選択するか、又は追加の機能を実施するために、使用され得る。
FIG. 7 shows a
ボタン701Aは、ユーザ入力が入力座標(ユーザがユーザの手又はスタイラス/遠隔制御装置を用いてスクリーンにタッチすることに基づく座標など)であるとき、ユーザが、ユーザ・インターフェースをグラフィカルに修正するために使用される描画ツールのタイプを選択することを可能にする。様々な描画ツールは、異なるブラシ、色、ペン、ハイライターなどを含むことができる。これらのツールは、変動するスタイル、厚さ、色などのグラフィカルな変更を生じることがある。
ボタン701Bは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で切り替えることを可能にする。選択モードでは、入力座標は、「タッチ」として処理され、入力座標におけるオブジェクトの選択又はオブジェクトを開くことを生じ得る。ポインティング・モードでは、座標は、(マウス・ポインタなどの)ポインタ位置として処理され得、ユーザがマウスをエミュレートすることを効果的に可能にする。描画モードでは、座標は、ユーザ・インターフェース上に描画又は書込みの外観(appearance)を提示するために、ユーザ・インターフェースのグラフィカル出力を変更するためのロケーションとして処理され得る。変更の性質は、ボタン701Aに関して説明されるように、選択された描画ツールに依存することがある。ボタン701Bはまた、(動き追跡デバイスが使用される場合)画像入力及び/又は動き入力を予想し、それに応じて適切なドライバをエミュレートするように仮想ドライバにアラートすることができる。
Button 701B allows the user to switch between selection mode, pointing mode, or drawing mode when the input coordinates are received as user input. In selection mode, the input coordinates are treated as a "touch", which can result in selecting or opening an object in the input coordinates. In pointing mode, the coordinates can be treated as pointer positions (such as mouse pointers), effectively allowing the user to emulate the mouse. In drawing mode, the coordinates can be treated as a location for modifying the graphical output of the user interface in order to present the appearance of drawing or writing on the user interface. The nature of the changes may depend on the drawing tool selected, as described for
ボタン701Cは、音声コマンドを予想するように仮想ドライバにアラートする。これは、図6に関して説明されるように、仮想ドライバが、音声入力を受信し、音声入力をパースするための結合されたマイクロフォンに対応するドライバをエミュレートすることを引き起こすことができる。 Button 701C alerts the virtual driver to anticipate voice commands. This can cause the virtual driver to emulate the driver corresponding to the combined microphone for receiving the voice input and parsing the voice input, as described with respect to FIG.
ボタン701Dは、透明層の一部であり得、オペレーティング・システム内のアプリケーションを起動するために又はアプリケーション内の特定のコマンドを起動するために使用され得る、ローンチャ・アプリケーションを開く。ローンチャは、ユーザ入力に関連付けられたアプリケーションのためのカスタム音声コマンド、カスタム・ジェスチャー、カスタム・ネイティブ・コマンドなど、透明層におけるオプションをカスタマイズするために、及び/又は(音声較正、動きキャプチャ・デバイス較正、及び/又はオブジェクト認識較正など)ハードウェア・デバイス及びユーザ入力を較正するためにも使用され得る。
ボタン701Eは、ユーザ・インターフェースのスクリーンショットをキャプチャするために、及び画像としてスクリーンショットをエクスポートするために使用され得る。これは、ボタン701Bの描画モード及び701Aの描画ツールとともに使用され得る。ユーザが特定のユーザ・インターフェースをマーク・アップした後に、マーク・アップされたバージョンが画像としてエクスポートされ得る。 Button 701E can be used to capture a screenshot of the user interface and to export the screenshot as an image. It can be used with the drawing mode of button 701B and the drawing tool of 701A. After the user marks up a particular user interface, the marked up version can be exported as an image.
また、ボタン701Fは、グラフィカルな編集を可能にし、ユーザがユーザ・インターフェース上に作成している描画の色又は描画の態様を交換するために使用され得る。ボタン701Bの描画モードと同様に、このボタンは、入力座標におけるグラフィカルな変更の性質を変更する。
ボタン701Gは、ユーザ・インターフェース上の描画を消去する。このボタンの選択は、ユーザ・インターフェース上のすべてのグラフィカル・マーキングを除去し、下位UIを、ユーザが描画を作成するより前にそうであった状態にリセットすることができる。
ボタン701Hは、ユーザが仮想ホワイトボード上に描画モードを使用して描画又は書込みを作成することを可能にする、ホワイトボード・アプリケーションを起動するために使用され得る。
ボタン701Iは、オペレーティング・システムUI又はアプリケーションUIにおいて示されるオブジェクトなど、オブジェクトにテキスト・ノートを追加するために使用され得る。テキスト・ノートは、音声信号から解釈されるか、又はキーボードを使用してユーザによってタイピングされ得る。 Button 701I can be used to add text notes to an object, such as the object shown in the operating system UI or application UI. Text notes can be interpreted from audio signals or typed by the user using the keyboard.
ボタン701Jは、ツール・インターフェース701を開くか又は閉じるために使用され得る。閉じられたとき、ツール・インターフェースは、最小化されるか又は下位ユーザ・インターフェースから完全に除去され得る。
前に説明されたように、スタイラス又はリモート・ハードウェア・デバイスが、カメラ又はビデオ・カメラなど、他のハードウェア・デバイスとともに、本システムとともに使用され得る。図8は、本システムとともに使用され得るスタイラス801の一実例を示す。スタイラス801は、Bluetoothなどを介して、ハードウェア受信機802と通信することができる。ハードウェア受信機は、USB802Bなどを介して、コンピュータ・システムに接続することができ、ハードウェア受信機を介してコンピュータ・システムに渡されたスタイラスからの信号は、図7に示されているツール・インターフェースと同様であるメニュー803を制御し、それと対話するために使用され得る。
As previously described, a stylus or remote hardware device can be used with the system along with other hardware devices such as cameras or video cameras. FIG. 8 shows an example of a
図8に示されているように、スタイラス801は、物理ボタン801Aを含むことができる。これらの物理ボタン801は、スタイラスを電源投入し、メニュー803をナビゲートし、選択を行うために使用され得る。さらに、スタイラス801は、カメラによる画像においてキャプチャされ、仮想ドライバによって認識される、特徴的な先端801Bを含むことができる。これは、スタイラス801が、描画モードにあるとき、描画及び編集のために使用されることを可能にすることができる。スタイラス801は、スタイラスが入力座標又はジェスチャーを与えるために使用されるとき、位置検出を助けるための加速度計及び/又はチルト・センサーなど、動き追跡ハードウェアをも含むことができる。さらに、ハードウェア受信機802は、較正ボタン802Aを含むことができ、較正ボタン802Aは、押下されたとき、ユーザ・インターフェースにおいて較正ユーティリティを起動することができる。これは、スタイラスの較正を可能にする。
As shown in FIG. 8, the
図3に戻ると、ステップ302において、ユーザ入力に対応するコンテキストが識別される。識別されたコンテキストは、オペレーティング・システム又はオペレーティング・システム上で実行するアプリケーションのうちの1つを備える。
Returning to FIG. 3, in
図9は、例示的な実施例による、ユーザ入力に対応するコンテキストを識別するためのフローチャートを示す。図9に示されているように、オペレーティング・システム・データ901、アプリケーション・データ902、及びユーザ入力データ903が、すべて、コンテキスト904を決定するために使用され得る。
FIG. 9 shows a flowchart for identifying a context corresponding to user input according to an exemplary embodiment. As shown in FIG. 9,
オペレーティング・システム・データ901は、たとえば、オペレーティング・システムにおけるアクティブ・ウィンドウに関する情報を含むことができる。たとえば、アクティブ・ウィンドウが計算器ウィンドウである場合、コンテキストが計算器アプリケーションであると決定され得る。同様に、アクティブ・ウィンドウがMicrosoft Wordウィンドウである場合、コンテキストがMicrosoft Wordアプリケーションであると決定され得る。一方、アクティブ・ウィンドウがファイル・フォルダである場合、アクティブ・コンテキストがオペレーティング・システムであると決定され得る。オペレーティング・システム・データは、どのアプリケーションが現在実行中であるか、最後に起動されたアプリケーション、及びコンテキストを決定するために使用され得る任意の他のオペレーティング・システム情報など、追加情報をも含むことができる。
アプリケーション・データ902は、たとえば、実行している1つ又は複数のアプリケーションに関する情報及び/又は特定のアプリケーションをいくつかのタイプのユーザ入力にマッピングする情報を含むことができる。たとえば、音声コマンドが受信されるときはいつでも、コンテキストが第1のアプリケーションであると自動的に決定されるように、第1のアプリケーションが音声入力にマッピングされ得る。別の例では、特定のジェスチャーが入力として受信されたとき、第2のアプリケーションが、起動されるか又は閉じられるか、或いは第2のアプリケーション内のあるアクションが実施されるように、そのジェスチャーが第2のアプリケーションに関連付けられ得る。
ユーザ入力903は、様々なやり方でコンテキストを決定するためにも使用され得る。上記で説明されたように、いくつかのタイプのユーザ入力が、いくつかのアプリケーションにマッピングされ得る。上記の実例では、音声入力が第1のアプリケーションのコンテキストに関連付けられる。さらに、ユーザ入力の属性も、コンテキストを決定するために使用され得る。ジェスチャー又は動きが、アプリケーションに又はオペレーティング・システムにマッピングされ得る。音声コマンド中の特定のワードも、アプリケーションに又はオペレーティング・システムにマッピングされ得る。入力座標も、コンテキストを決定するために使用され得る。たとえば、入力座標の位置にあるユーザ・インターフェースにおけるウィンドウが決定され得、そのウィンドウに対応するアプリケーションがコンテキストとして決定され得る。
図10は、コンテキストを決定するために入力座標を使用することの一実例を示す。図10に示されているように、ディスプレイ・デバイス1001がユーザ・インターフェース1002を表示している。また、カメラ1004と、下位ユーザ・インターフェース1003上に重ね合わされた透明層1003とが示されている。ユーザは、ユーザ・インターフェース1002におけるロケーション1005を指すためにスタイラス1000を利用する。ロケーション1005は、アプリケーション1に対応するアプリケーション・ウィンドウ内にあるので、次いで、アプリケーション1は、アプリケーション2、アプリケーション3、又はオペレーティング・システムとは対照的に、ユーザ入力のためのコンテキストであると決定され得る。
FIG. 10 shows an example of using input coordinates to determine the context. As shown in FIG. 10, the
図3に戻ると、ステップ303において、ユーザ入力は、識別されたコンテキストに少なくとも部分的に基づいて、1つ又は複数の透明層コマンドに変換される。前に説明されたように、透明層は、仮想ドライバとオペレーティング・システム及び/又はオペレーティング・システム上で実行するアプリケーションとの間をインターフェースするように構成されたアプリケーション・プログラミング・インターフェース(API)を備える。 Returning to FIG. 3, in step 303, the user input is transformed into one or more transparent layer commands based at least in part based on the identified context. As previously described, the transparent layer comprises an application programming interface (API) configured to interface between the virtual driver and the operating system and / or the application running on the operating system. ..
図11は、ユーザ入力を透明層コマンドに変換するためのフローチャートを示す。図11のステップ1104に示されているように、透明層コマンドは、識別されたコンテキスト1102及びユーザ入力1103に少なくとも部分的に基づいて決定され得る。透明層コマンドは、1つ又は複数の対応するコンテキストにおいて実行するように構成された1つ又は複数のネイティブ・コマンドを含むことができる。透明層コマンドは、仮想ドライバに及び(1つ又は複数の)ハードウェア・デバイス上に送信されるべき応答出力をも含むことができる。
FIG. 11 shows a flowchart for converting user input into a transparent layer command. As shown in
識別されたコンテキスト1102は、どの透明層コマンドがユーザ入力にマッピングされるべきであるかを決定するために使用され得る。たとえば、識別されたコンテキストが「オペレーティング・システム」である場合、スワイプ・ジェスチャー入力が、ユーザ・インターフェースが(ある開いているウィンドウを最小化し、次の開いているウィンドウを最大化することによって)オペレーティング・システム内の現在開いているウィンドウをスクロールすることを生じる透明層コマンドにマッピングされ得る。代替的に、識別されたコンテキストが「ウェブ・ブラウザ・アプリケーション」である場合、同じスワイプ・ジェスチャー入力が、ウェブ・ページがスクロールされることを生じる透明層コマンドにマッピングされ得る。
The identified
ユーザ入力1103は、ユーザ入力が1つ又は複数のコンテキスト内のいくつかのネイティブ・コマンドに明確にマッピングされ、これらのネイティブ・コマンドが透明層コマンドの一部であるので、透明層コマンドをも決定する。たとえば、音声コマンド「電子メールを開いて」が、電子メール・アプリケーションOutlookを起動するための特定のオペレーティング・システム・ネイティブ・コマンドにマッピングされ得る。認識されたワード「電子メールを開いて」を含む音声入力が受信されたとき、これは、Outlookを起動するためのネイティブ・コマンドを含む透明層コマンドが決定されることを生じる。
図11に示されているように、透明層コマンドはまた、1つ又は複数のユーザ設定1101及びAPIライブラリ1104に基づいて決定され得る。APIライブラリ1104は、識別されたコンテキスト及び特定のユーザ入力に対応するネイティブ・コマンドをルックアップするために使用され得る。スワイプ・ジェスチャー及びウェブ・ブラウザ・アプリケーション・コンテキストの実例では、ウェブ・ブラウザ・アプリケーションに対応するAPIライブラリは、ウェブ・ページのスクロールを引き起こすために、適切なAPI呼出しについて問い合わせられ得る。代替的に、APIライブラリ1104は、省略され得、ネイティブ・コマンドが、特定のユーザ入力及び識別されたコンテキストに向けてマッピングされ得る。
As shown in FIG. 11, the transparent layer command may also be determined based on one or
ユーザ入力が入力座標であると決定される状況では、透明層コマンドは、入力ロケーション座標及び識別されたコンテキストに少なくとも部分的に基づいて決定される。この場合、透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、下位UIにおける対応するロケーション座標におけるアクションを実施するように構成される。 In situations where the user input is determined to be input coordinates, the transparent layer command is determined at least in part based on the input location coordinates and the identified context. In this case, the transparent layer command can contain at least one native command in the identified context, and at least one native command is configured to perform an action at the corresponding location coordinate in the underlying UI. ..
特定のコンテキスト及びユーザ入力にマッピングされる2つ以上の可能なアクションがあるとき、設定1101は、対応する透明層コマンドを決定するために使用され得る。たとえば、図7のボタン701Bは、入力座標がユーザ入力として受信されるとき、ユーザが、選択モード、ポインティング・モード、又は描画モードの間で選択することを可能にする。この設定は、透明層コマンドを決定するために、並びにひいては、どのネイティブ・コマンドが実施されるか及びどのアクションが実施されるかを決定するために使用され得る。この場合、可能なネイティブ・コマンドは、下位UIにおける対応するロケーション座標に関連するオブジェクトを選択するように構成された選択コマンド、ポインタを下位UIにおける対応するロケーション座標に移動するように構成されたポインタ・コマンド、及び下位UIにおける対応するロケーション座標におけるディスプレイ出力を変更するように構成されたグラフィカル・コマンドを含むことができる。 Setting 1101 can be used to determine the corresponding transparent layer command when there are two or more possible actions that are mapped to a particular context and user input. For example, button 701B of FIG. 7 allows the user to select between a selection mode, a pointing mode, or a drawing mode when the input coordinates are received as user input. This setting can be used to determine the transparent layer command and, by extension, which native command will be executed and which action will be performed. In this case, the possible native commands are selection commands configured to select objects related to the corresponding location coordinates in the lower UI, pointers configured to move the pointer to the corresponding location coordinates in the lower UI. It can include commands and graphical commands configured to change the display output at the corresponding location coordinates in the underlying UI.
図12Aは、選択モードがトグルされるときの、入力座標を受信することの一実例を示す。図12Aに示されているように、ユーザは、ディスプレイ・デバイス1201上の(重ね合わせられた透明UI1203を有する)オペレーティング・システムUI1202においてスタイラス1200をポイントした。前の実例と同様に、カメラ1204は、スタイラス1200についての位置及び配向情報並びに入力座標を決定するために使用され得る。選択モードがトグルされ、スタイラス1200がオペレーティング・システムUI1202内のフォルダ1205においてポイントされるので、決定された透明層コマンドは、入力座標に関連するオブジェクト(この場合、フォルダ1205である)を選択するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。別の実例では、ウィンドウが入力座標に位置する場合、これは、ウィンドウ全体の選択を生じるであろう。
FIG. 12A shows an example of receiving input coordinates when the selection mode is toggled. As shown in FIG. 12A, the user points to the
図12Bは、ポインティング・モードがトグルされるときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、マウス・ポインタ1206を入力座標のロケーションに移動するためのネイティブ・オペレーティング・システム・コマンドを含むことができる。
FIG. 12B shows an example of receiving input coordinates when the pointing mode is toggled. In this case, the determined transparent layer command can include a native operating system command to move the
図12Cは、描画モードがトグルされ、ユーザが複数の入力座標にわたってスタイラス1200をスイープしたときの、入力座標を受信することの一実例を示す。この場合、決定された透明層コマンドは、入力座標の各々のロケーションにおけるディスプレイ出力を変更するためのネイティブ・オペレーティング・システム・コマンドを含むことができ、ユーザ・インターフェース1202上のユーザの描画ライン1207を生じる。描画モードにおいてもたらされた修正されたグラフィカル出力は、透明層1203の一部として、たとえば、入力座標の経路に関係するメタデータとして記憶され得る。ユーザは、次いで、変更されたディスプレイ出力を画像としてエクスポートするためのオプションを選択することができる。
FIG. 12C shows an example of receiving input coordinates when the drawing mode is toggled and the user sweeps the
ユーザ入力がジェスチャーとして識別される状況では、識別されたコンテキストに少なくとも部分的に基づいてユーザ入力を1つ又は複数の透明層コマンドに変換することは、識別されたジェスチャー及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、識別されたコンテキストにおける識別されたジェスチャーに関連するアクションを実施するように構成される。これの一実例は、ウェブ・ブラウザにおけるスクロール・アクションを実施するように構成されたネイティブ・コマンドを生じる、スワイプ・ジェスチャー及びウェブ・ブラウザ・アプリケーション・コンテキストに関して上記で説明された。 In situations where user input is identified as a gesture, translating user input into one or more transparent layer commands based at least in part on the identified context is at least to the identified gesture and the identified context. It can include determining the transparent layer command on a partial basis. A transparent layer command can include at least one native command in the identified context, and at least one native command is configured to perform an action related to the identified gesture in the identified context. To. An example of this has been described above with respect to swipe gestures and web browser application contexts that result in native commands configured to perform scrolling actions in a web browser.
(音声認識を使用することによってなど)ユーザ入力が1つ又は複数のワードとして識別される状況では、識別されたものに少なくとも部分的に基づいてユーザ入力を1つ又は複数の透明層コマンドに変換することは、識別された1つ又は複数のワード及び識別されたコンテキストに少なくとも部分的に基づいて透明層コマンドを決定することを含むことができる。透明層コマンドは、識別されたコンテキストにおける少なくとも1つのネイティブ・コマンドを含むことができ、少なくとも1つのネイティブ・コマンドは、識別されたコンテキストにおける識別された1つ又は複数のワードに関連するアクションを実施するように構成される。 In situations where user input is identified as one or more words (such as by using speech recognition), convert user input to one or more transparent layer commands based at least in part on what is identified. What you do can include determining the Stratum lucidum command based at least in part on the identified word and the identified context. A transparent layer command can include at least one native command in the identified context, and at least one native command performs an action related to one or more identified words in the identified context. It is configured to do.
図13は、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンド1300の一実例を示す。識別されたワード1301は、「ホワイトボード」という句又は「ブランク・ページ」という句のうちの1つを含む。透明層コマンド1300は、コマンドの説明1302と、透明層コマンドの実行時に透明層によって仮想ドライバに及びハードウェア出力デバイスに送られた出力命令である応答命令1303とをも含む。さらに、透明層コマンド1300は、ホワイトボード機能を呼び出すために使用される実際のネイティブ・コマンド1304を含む。
FIG. 13 shows an example of the
図14は、例示的な実施例による、入力音声データ中で識別された1つ又は複数のワードに基づいて決定される透明層コマンド1400の別の実例を示す。この実例では、1つ又は複数のワードは、「電子メールを開いて」である。図14に示されているように、透明層コマンド1400は、ネイティブ・コマンド「outlook.exe」を含み、これは、outlookアプリケーションを起動する特定の実行ファイルを動作させるようにとの命令である。透明層コマンド1400は、音声コマンドを受信したことに応答して出力される「電子メールを開きました」という音声応答をも含む。
FIG. 14 shows another example of the
図3に戻ると、ステップ304において、1つ又は複数の透明層コマンドが透明層上で実行される。1つ又は複数の透明層コマンドの実行が、識別されたコンテキストにおける1つ又は複数のネイティブ・コマンドの実行を引き起こすように構成される。
Returning to FIG. 3, in
図15は、例示的な実施例による、透明層上で1つ又は複数の透明層コマンドを実行するためのフローチャートを示す。ステップ1501において、透明層コマンドにおける少なくとも1つのネイティブ・コマンドが識別される。ネイティブ・コマンドは、たとえば、透明層コマンドの構造内のネイティブ・コマンドとして指定され得、識別を可能にする。
FIG. 15 shows a flowchart for executing one or more transparent layer commands on a transparent layer according to an exemplary embodiment. In
ステップ1502において、少なくとも1つのネイティブ・コマンドが、識別されたコンテキストにおいて実行される。このステップは、そのコンテキストについての識別されたAPIを介して、識別されたコンテキストに少なくとも1つのネイティブ・コマンドを渡すことと、識別されたコンテキスト内でネイティブ・コマンドを実行することとを含むことができる。たとえば、識別されたコンテキストがオペレーティング・システムである場合、ネイティブ・コマンドは、オペレーティング・システムAPIを介して実行のためにオペレーティング・システムに渡され得る。さらに、識別されたコンテキストがアプリケーションである場合、ネイティブ・コマンドは、アプリケーションAPIを介して実行のためにアプリケーションに渡され得る。
In
随意に、ステップ1503において、応答が(1つ又は複数の)ハードウェア・デバイスに送信され得る。前に説明されたように、この応答は、透明層から仮想ドライバに及びハードウェア・デバイス上にルーティングされ得る。
Optionally, at
図16〜図19は、本明細書で開示されるシステムの追加の特徴を示す。図16は、例示的な実施例による、ユーザ入力に対応する新しいコマンドを追加するための例示的なインターフェースを示す。インターフェース1600におけるダッシュボードが、すでに追加され、所定のユーザ入力及びハードウェア・デバイス(たとえば、音声コマンド)を使用して起動され得る、アプリケーション1601のアイコンを含む。ダッシュボードは、アプリケーション固有であり、いくつかのユーザ入力にマッピングされる、他のコマンドをも示すことができる。追加ボタン1602の選択は、追加コマンド・メニュー1603を開く。このメニューは、ユーザが以下のオプション間で選択することを可能にする:アイテム・タイプ:下部バー・メニュー上に追加するための固定アイテム/ドラッグ・メニュー中に追加するための通常アイテム、アイコン:画像アイコンを選択する、背景:背景アイコン色を選択する、色:アイコン色を選択する、名前:新しいアイテム名を設定する、音声コマンド:新しいアプリケーションを開くための音声アクティベーション・コマンドを設定する、フィードバック応答:アプリケーション音声応答フィードバックを設定する、コマンド:起動すべきアプリケーション・タイプ又はカスタム・コマンド・タイプを選択する(たとえば、アプリケーション・コマンドを起動する、アプリケーション・コマンド内のアクションを実施する、アプリケーション・コマンドを閉じるなど)、プロセス開始:新しいプロセス又はアプリケーションを起動する場合、プロセス又はアプリケーションの名前、及びパラメータ:新しいプロセス又はアプリケーションに渡すべき任意のパラメータ。
16-19 show additional features of the system disclosed herein. FIG. 16 shows an exemplary interface for adding new commands corresponding to user input, according to an exemplary embodiment. A dashboard at
図17は、例示的な実施例による、描画インターフェース1700及び描画モードの様々な構成要素及びオプションを示す。図18は、オブジェクトを認識するために使用され、ユーザがタッチ及びジェスチャーを使用して入力を与えることを可能にする、ビデオ・カメラ・ハードウェア・デバイスのための較正及び設定インターフェース1800を示す。図19は、ユーザが、インターフェースの様々な態様をカスタマイズし、入力モードをトグルし、他の交換を行うことを可能にする、一般的な設定インターフェース1900を示す。インターフェース1900に示されているように、ユーザは、(「マジック・スタイラス」と呼ばれる)ハードウェア・スタイラスのための設定を較正及び調整するための設定ページにもアクセスすることができる。
FIG. 17 shows various components and options of the
本明細書で開示されるシステムは、複数のネットワーク化されたコンピューティング・デバイス上で実装され、ネットワーク化された共同セッションを行うことを助けるために使用され得る。たとえば、前に説明されたホワイトボード機能性は、複数のコンピューティング・デバイス上の複数のユーザ間の共有ホワイトボードであり得る。 The systems disclosed herein can be implemented on multiple networked computing devices and used to assist in conducting networked collaborative sessions. For example, the whiteboard functionality described earlier can be a shared whiteboard among multiple users on multiple computing devices.
しかしながら、既存のホワイトボード又は他の共有共同スペースの問題のうちの1つは、接続された参加者とファイルを共有するための容易なやり方がないことである。いくつかのアプリケーションが、グループ全体が、共同スペース上で、文書などのファイルをレビューすることを可能にするが、ユーザが別のユーザとファイルを共有するために、他のユーザにファイルを送信するために(電子メール・クライアント又はファイル共有アプリケーションなどの)新しいアプリケーションを開くことが必要である。共有共同セッション中に、これは、共同スペースが促進するように設計されたワークフロー及び共有ブレインストーミング・セッションを頻繁に中断する。 However, one of the problems with existing whiteboards or other shared communal spaces is that there is no easy way to share files with connected participants. Some applications allow the entire group to review files such as documents in a communal space, but send files to other users to share files with other users. It is necessary to open a new application (such as an email client or file sharing application) for this. During shared joint sessions, this frequently interrupts workflows and shared brainstorming sessions designed to facilitate the shared space.
ユニバーサル・ハードウェア・ソフトウェア・インターフェースの実装のための前に説明された方法及びシステムに加えて、出願人は、ネットワーク化されたコンピュータ間の共同セッション中のウェブ・ソケット接続を介したファイルのリアルタイム送信を可能にする方法、装置及びコンピュータ可読媒体をさらに発見した。 In addition to the methods and systems previously described for the implementation of the universal hardware software interface, Applicants are required to submit files in real time via a web socket connection during a joint session between networked computers. We have further discovered methods, devices and computer-readable media that enable transmission.
図20は、例示的な実施例による、ネットワーク化された共同ワークスペースにおけるウェブ・ソケット接続を介したファイルの送信のためのフローチャートを示す。図20に示されているステップのすべてが、サーバに接続されたクライアント・デバイスなど、ローカル・コンピューティング・デバイス上で実施され得、複数のコンピューティング・デバイスを必要としない。 FIG. 20 shows a flow chart for sending a file over a websocket connection in a networked collaborative workspace, according to an exemplary embodiment. All of the steps shown in FIG. 20 can be performed on a local computing device, such as a client device connected to a server, and does not require multiple computing devices.
ステップ2001において、サーバ上にホストされ、ウェブ・ソケット接続を介して複数の参加者にとってアクセス可能な、共同ワークスペースの表現が、ローカル・コンピューティング・デバイスのユーザ・インターフェース上で送信される。共同ワークスペースの表現は、サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含むことができる。本明細書で使用されるリモート・コンピューティング・デバイス及びリモート参加者は、ローカル参加者及びローカル・コンピューティング・デバイス以外のコンピューティング・デバイス及び参加者を指す。リモート・コンピューティング・デバイスは、ワイド・エリア・ネットワーク(WAN)などのネットワークによってローカル・デバイスから分離される。
In
図21Aは、例示的な実施例による、共同ワークスペースをホストし、送信するために使用されるネットワーク・アーキテクチャを示す。図21Aに示されているように、サーバ2100は、コンピューティング・デバイス2101A〜2101Fに接続される。サーバ2100とコンピューティング・デバイス2101A〜2101Fとは、コンピューティング・デバイス2101A〜2101F(クライアント)とサーバ2100との間の双方向通信を可能にする、ウェブ・ソケット接続など、ネットワーク接続を介して接続され得る。図21Aに示されているように、コンピューティング・デバイスは、ラップトップ、デスクトップ、スマートフォン、又は他のモバイル・デバイスなど、任意のタイプのコンピューティング・デバイスであり得る。
FIG. 21A shows a network architecture used to host and transmit a collaborative workspace, according to an exemplary embodiment. As shown in FIG. 21A, the
共同ワークスペースは、たとえば、ウェブ・ソケット接続を介して複数の参加者中の任意の参加者からの編集を他の参加者に伝えるように構成されたデジタル・ホワイトボードであり得る。図21Bは、例示的な実施例による、ネットワーク内で共同ワークスペースに対する編集を伝えるためのプロセスを示す。図21Bに示されているように、コンピューティング・デバイス2101Bにおけるユーザが共同ワークスペースに対する編集又は変更を行う場合、この編集又は変更2102Bは、サーバ2100に送られ、ワークスペースのホストされたバージョンを更新するために使用される。編集又は変更は、次いで、サーバ2100によって更新2102A、2102C、2102D、2102E、及び2102Fとして、他の接続されたコンピューティング・デバイス2101A、2101C、2101D、2101E、及び2101Fに伝えられる。
A collaborative workspace can be, for example, a digital whiteboard configured to convey edits from any participant among multiple participants to other participants via a websocket connection. FIG. 21B shows a process for communicating edits to a collaborative workspace within a network, according to an exemplary embodiment. As shown in FIG. 21B, when a user in
共同ワークスペースの各表現は、ローカル参加者に対してカスタマイズされた共同ワークスペースのバージョンであり得る。たとえば、上記で説明されたように、共同ワークスペースの各表現は、サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含むことができる。 Each representation of a collaborative workspace can be a customized collaborative workspace version for local participants. For example, as described above, each representation of a collaborative workspace may include one or more remote participant objects that correspond to one or more remote computing devices connected to a server. it can.
図22は、例示的な実施例による、共同ワークスペースの複数の表現を示す。図22に示されているように、サーバ2200は、共同ワークスペース2201をホストする。サーバ上にホストされた共同ワークスペースのバージョンが、前に説明されたように、接続されたデバイスに伝えられる。図22は、3つの接続されたユーザ、ユーザ1、ユーザ2、及びユーザ3のための共同ワークスペースの表現をも示す。図示のように、各表現は、ローカル参加者に対して(ローカル・コンピューティング・デバイスに対して)カスタマイズされる。たとえば、ユーザ1のための表現2201Aは、ユーザ2及びユーザ3に対応するリモート参加者オブジェクトを含む。同様に、ユーザ2のための表現2201Bは、ユーザ1及びユーザ3に対応するリモート参加者オブジェクトを含み、ユーザ3のための表現2201Cは、ユーザ1及びユーザ2に対応するリモート参加者オブジェクトを含む。
FIG. 22 shows a plurality of representations of a collaborative workspace according to an exemplary embodiment. As shown in FIG. 22,
リモート参加者オブジェクトは、リモート参加者を示し、多くの形式をとることができる。たとえば、リモート参加者オブジェクトは、テレビ会議又はウェブカムを介して接続されたリモート参加者の埋込みビデオ・ストリームであり得る。リモート参加者オブジェクトはまた、リモート参加者を表すアイコン、リモート参加者のアバター、或いは特定のリモート参加者の任意の他のビジュアル又はオーディオ・インジケータであり得る。リモート参加者オブジェクトは、ワークスペースの表現内でドラッグされ、移動され及び/又はリサイズされ得るカスタム・オブジェクトであり得る。 The remote participant object represents a remote participant and can take many forms. For example, a remote participant object can be an embedded video stream of a remote participant connected via a video conference or webcam. The remote participant object can also be an icon representing the remote participant, a remote participant's avatar, or any other visual or audio indicator of a particular remote participant. The remote participant object can be a custom object that can be dragged, moved, and / or resized within the representation of the workspace.
図20に戻ると、ステップ2002において、1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダが、ローカル・コンピューティング・デバイス上に生成され、各ライブ・フォルダは、リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのネットワーク・アドレスにマッピングされる。
Returning to FIG. 20, in
図23は、例示的な実施例による、1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダを生成するためのフローチャートを示す。 FIG. 23 shows a flow chart for generating one or more live folders corresponding to one or more remote participant objects according to an exemplary embodiment.
ステップ201において、ローカル・コンピューティング・デバイスは、1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のリモート・コンピューティング・デバイスの1つ又は複数のインターネット・プロトコル(IP)アドレスについてサーバに問い合わせる。 In step 201, the local computing device is a server for one or more Internet Protocol (IP) addresses of one or more remote computing devices that correspond to one or more remote participant objects. Contact.
図24は、この問合せプロセスの一実例を示す。図24に示されているように、コンピューティング・デバイス2401A、2402、及び2403が、すべて、ウェブ・ソケット接続など、双方向ネットワーク接続を介してサーバ2400に接続される。サーバは、共同ワークスペース(図示せず)をホストする。図24は、コンピューティング・デバイス2401Aのユーザ・インターフェース上で可視である共同ワークスペースの表現2401Bをも示す。表現2401Bは、それぞれ、コンピューティング・デバイス2402及び2403のユーザである、ユーザ2及びユーザ3に対応するリモート参加者オブジェクトを含む。図24に示されているように、リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのIPアドレス(又は他のタイプのネットワーク・アドレス)についての問合せが、ネットワーク接続を介してコンピューティング・デバイス2401Aからサーバ2400に送信される。応答して、サーバは、他の接続されたコンピューティング・デバイス2402及び2403のIPアドレス(又は他のタイプのネットワーク・アドレス)をコンピューティング・デバイス2401A(要求元コンピューティング・デバイス)に送信する。サーバは、どのIPアドレスがどのリモート参加者オブジェクトに対応するかをコンピューティング・デバイス2401Aが識別することを可能にする、ユーザ識別情報又は他の情報など、情報をも送信することができる。
FIG. 24 shows an example of this query process. As shown in FIG. 24, the
図23に戻ると、ステップ2302において、ローカル・コンピューティング・デバイスは、1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のローカル・フォルダを生成する。1つ又は複数のローカル・フォルダは、ローカル・コンピューティング・デバイスのメモリ上に生成及び記憶され得る。たとえば、共同ワークスペース・セッションが開始されたとき、ローカル・コンピューティング・デバイス上に一時的キャッシュが作成され得る。この一時的キャッシュは、会議識別子及び他のセッション詳細など、セッションに関する情報を記憶する。1つ又は複数のローカル・フォルダは、一時的キャッシュ内に生成及び記憶され得る。 Returning to FIG. 23, in step 2302, the local computing device creates one or more local folders corresponding to one or more remote participant objects. One or more local folders may be created and stored in the memory of the local computing device. For example, a temporary cache can be created on a local computing device when a collaborative workspace session is started. This temporary cache stores information about the session, such as the conference identifier and other session details. One or more local folders may be created and stored in a temporary cache.
図25は、例示的な実施例による、1つ又は複数のリモート参加者に対応する1つ又は複数のローカル・フォルダを生成することの一実例を示す。ローカル・コンピューティング・デバイス2500は、共同ワークスペースの表現2502を含む、ユーザ・インターフェース2501を表示するディスプレイ(図示せず)を含む。共同ワークスペース表現2502は、ユーザ2及びユーザ3に対応する、2つのリモート参加者オブジェクトを含む。図25に示されているように、ローカル・フォルダF2及びF3が、コンピューティング・デバイス2500上のローカル・ストレージ2503内に作成され、ユーザ2及びユーザ3のためのリモート参加者オブジェクトとリンクされる。フォルダは、様々なやり方でリモート参加者オブジェクトにリンクされ得る。たとえば、各リモート参加者オブジェクトをローカル・フォルダに関連付けるカスタム・データ構造が作成され得る。ローカル・フォルダは、不可視要素としてユーザ・インターフェース2501に組み込まれ、対応するリモート参加者オブジェクトの同じ位置において配置され得る。リモート参加者オブジェクトは、対応するローカル・フォルダにリンクすることを可能にする公開されたAPIを有することができる。多くの変形形態が可能であり、これらの実例は、限定するものではない。
FIG. 25 shows an example of creating one or more local folders corresponding to one or more remote participants according to an exemplary embodiment. The
図23に戻ると、ステップ2303において、1つ又は複数のローカル・フォルダを1つ又は複数のIPアドレスにマッピングすることによって、1つ又は複数のライブ・フォルダが生成される。 Returning to FIG. 23, in step 2303, one or more live folders are generated by mapping one or more local folders to one or more IP addresses.
図26は、例示的な実施例による、1つ又は複数のIPアドレスに1つ又は複数のローカル・フォルダをマッピングすることの一実例を示す。ローカル・コンピューティング・デバイス2600は、共同ワークスペース2602を含む、ユーザ・インターフェース2601を表示するディスプレイ(図示せず)を含む。共同ワークスペース表現2602は、ユーザ2及びユーザ3に対応する、2つのリモート参加者オブジェクトを含む。コンピューティング・デバイス2600上のローカル・ストレージ2603内のローカル・フォルダF2及びF3が、共同ワークスペース表現2602におけるユーザ2及びユーザ3のためのリモート参加者オブジェクトとリンクされる。
FIG. 26 shows an example of mapping one or more local folders to one or more IP addresses according to an exemplary embodiment. The
図26に示されているように、ローカル・フォルダF2及びF3は、それぞれ、リモート・コンピューティング・デバイス2604及び2605のネットワーク・アドレスにマッピングされる。コンピューティング・デバイス2604は、リモート参加者ユーザ2に対応し、コンピューティング・デバイス2605は、リモート参加者ユーザ3に対応する。リモート・コンピューティング・デバイスのネットワーク・アドレスへのローカル・フォルダのマッピングは、様々なやり方で達成され得る。各ローカル・フォルダは、そのアドレスとして、対応するリモート・コンピューティング・デバイスのネットワーク・アドレスを有することができる。この場合、ローカル・フォルダは、ローカル・ストレージ上のリモート・フォルダのインスタンス化である。さらに、カスタム・データ構造又はスクリプトが、ローカル・フォルダの内容を宛先ネットワーク・アドレスに転送するように構成され得る。スクリプトは、転送を実現するために(ウェブ・ソケットなどの)ネットワーク接続とインターフェースすることができる。多くの変形形態が可能であり、これらの実例は、限定するものではない。
As shown in FIG. 26, the local folders F2 and F3 are mapped to the network addresses of the
図20に戻ると、ステップ2003において、1つ又は複数のリモート参加者オブジェクト中のリモート参加者オブジェクトの近位に少なくとも1つのファイルに対応する少なくとも1つのアイコンをドラッグするためのユーザ入力が、ローカル・コンピューティング・デバイスによって検出され、リモート参加者オブジェクトは、1つ又は複数のリモート・コンピューティング・デバイス中のリモート・コンピューティング・デバイスに対応する。これは、一般に、ドラッグ・アンド・ドロップ・アクションと呼ばれ、様々な入力デバイスを使用して入力され得る。たとえば、ユーザは、マウスを使用してドラッグ・アンド・ドロップし得る。ユーザは、前に説明されたように、ハンド・ジェスチャー又はスタイラスを使用してドラッグ・アンド・ドロップすることもできる。仮想ドライバ及び/又は透明を伴う、前に説明された技法は、ドラッグ・アンド・ドロップ動きを検出するために使用され得る。
Returning to FIG. 20, in
ローカル・コンピューティング・デバイスは、ユーザ・インターフェース内の1つ又は複数のリモート参加者オブジェクトの1つ又は複数の空間的位置を記憶するように構成され得る。特定のアイコンが特定のリモート参加者オブジェクトの近位にドラッグ・アンド・ドロップされたかどうかの検出が、リモート参加者オブジェクトの空間的位置からしきい値距離内にある宛先空間的位置にアイコンをドラッグするためのユーザ入力を検出することによって実施され得る。しきい値距離は、ユーザによって設定され得るか、又は何らかのデフォルト値であり得る。たとえば、しきい値距離は、10ピクセルよりも小さいか又は0ピクセルよりも小さくなり得る(その場合、ドラッグされたアイコンは、ユーザ・インターフェースにおいてリモート参加者オブジェクトと交わるか又は重ならなければならないであろう)。 The local computing device may be configured to store one or more spatial locations of one or more remote participant objects in the user interface. Detection of whether a particular icon has been dragged and dropped proximal to a particular remote participant object drags the icon from the remote participant object's spatial position to a destination spatial position within a threshold distance. It can be done by detecting the user input to do so. The threshold distance can be set by the user or can be some default value. For example, the threshold distance can be less than 10 pixels or less than 0 pixels (in which case the dragged icon must intersect or overlap the remote participant object in the user interface. There will be).
図27は、例示的な実施例による、ドラッグ・アンド・ドロップ・プロセス及び検出の一実例を示す。ユーザ・インターフェース2701は、ユーザ2(U2)及びユーザ3(U3)に対応するリモート参加者オブジェクトを含む、共同ワークスペースの表現2702を含む。インターフェース2701は、たとえば、ファイル・ブラウザにおける開かれたフォルダであり得る、ファイル・ウィンドウ又はファイル・インターフェース2703をも含む。ファイル・インターフェース2703は、ローカル・コンピューティング・デバイスのデスクトップ、ファイル共有アプリケーション、ウェブ・ブラウザ、又は任意の他のアプリケーションでもあり得る。図27に示されているように、ユーザは、ユーザ3(U3)のためのリモート参加者オブジェクトにファイル「D3」をドラッグした。
FIG. 27 shows an example of a drag-and-drop process and detection according to an exemplary embodiment.
もちろん、ファイルは、共同ワークスペース内からもドラッグされ得る。図28は、例示的な実施例による、ドラッグ・アンド・ドロップ・プロセス及び検出の別の実例を示す。インターフェース2801は、共同ワークスペースの表現に対応する。インターフェース部分2802は、様々なファイルをリストする共同ワークスペースの表現のセクションであり得る。さらに、この場合、リモート参加者オブジェクト2803は、埋込みビデオ・ストリームであり、これは、ネットワーク(たとえば、ウェブ・ソケット)接続を介して受信され得る。図28に示されているように、ローカル参加者(ユーザ)は、リモート参加者オブジェクト2803にadobeファイル2804をドラッグした。もちろん、ファイルは、オーディオ・ファイル、ビデオ・ファイル、オーディオビジュアル・ファイル、テキスト文書、スプレッドシート、スライド・プレゼンテーションなど、任意のタイプのファイルであり得る。
Of course, files can also be dragged from within the collaborative workspace. FIG. 28 shows another example of the drag-and-drop process and detection according to an exemplary embodiment.
図20に戻ると、ステップ2004において、少なくとも1つのファイルが、ローカル・コンピューティング・デバイスによってリモート参加者オブジェクトに対応するライブ・フォルダに記憶されて、それにより、少なくとも1つのファイルを、ウェブ・ソケット接続(又は他のネットワーク接続)を介してリモート・コンピューティング・デバイスのネットワーク・アドレスに送信する。
Returning to FIG. 20, in
図29は、例示的な実施例による、リモート参加者オブジェクトに対応するライブ・フォルダに少なくとも1つのファイルを記憶し、少なくとも1つのファイルを、ウェブ・ソケット接続を介してリモート・コンピューティング・デバイスのネットワーク・アドレスに送信するためのフローチャートを示す。 FIG. 29 stores at least one file in a live folder corresponding to a remote participant object according to an exemplary example, and at least one file of a remote computing device over a websocket connection. A flowchart for sending to a network address is shown.
ステップ2901において、少なくとも1つのドラッグされたアイコンに対応する少なくとも1つのファイルが、ライブ・フォルダに記憶される。ステップ2902において、少なくとも1つのファイルのコピーが、ウェブ・ソケット接続(又は他のネットワーク接続)を通して、マッピングされたネットワーク・アドレスに送信される。ウェブ・ソケット接続は、ライブ・フォルダに記憶されたデータを、サーバを介して、マッピングされたネットワーク・アドレスにルーティングするように構成され得る。このルーティングは、ファイルが、特定のリモート・コンピューティング・デバイスに送信されることと、すべての接続されたリモート・コンピューティング・デバイスに伝えられるとは限らないこととを除いて、図21Bに示されている更新と同様に実施され得る。たとえば、ファイルは、ウェブ・ソケットを介してサーバに送信され得、宛先アドレスは、ファイルをウェブ・ソケットを介して適切な宛先リモート・コンピューティング・デバイスにさらにルーティングするためにサーバによって使用され得る。
In
ウェブ・ソケット接続が、(リモート参加者オブジェクトが埋込みビデオ・ストリームであるとき)共同ワークスペースの一部として及び/又はビデオ会議の一部としてすでに確立されているので、説明されるプロセスは、意図された受信側へのファイルのルーティングを実施するためにウェブ・ソケットを利用する。 The process described is intended because the websocket connection has already been established as part of a collaborative workspace (when the remote participant object is an embedded video stream) and / or as part of a video conferencing. Utilize a web socket to perform the routing of files to the received receiver.
ステップ2903において、送信の完了時に、ライブ・フォルダから少なくとも1つのファイルが削除され得る。たとえば、ライブ・フォルダがローカル・コンピューティング・デバイス上の一時的キャッシュに記憶される場合、ライブ・フォルダに記憶されたファイルのコピーが(ストリーミングなどによって)リモート・コンピューティング・デバイスに送信されると、ローカル・ライブ・フォルダに記憶されたファイルは削除され得る。
At
上記で説明された技法のうちの1つ又は複数が、1つ又は複数のコンピュータ・システムにおいて実装されるか、又は1つ又は複数のコンピュータ・システムを伴い得る。図30は、専用コンピューティング環境3000の一実例を示す。コンピューティング環境3000は、説明される(1つ又は複数の)実施例の使用又は機能性の範囲に関するいかなる限定をも示唆するものではない。
One or more of the techniques described above may be implemented in one or more computer systems or may involve one or more computer systems. FIG. 30 shows an example of the
図30を参照すると、コンピューティング環境3000は、少なくとも1つの処理ユニット3010と、メモリ3020とを含む。処理ユニット3010は、コンピュータ実行可能命令を実行し、現実プロセッサ又は仮想プロセッサであり得る。多重処理システムでは、処理能力を増加させるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ3020は、揮発性メモリ(たとえば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(たとえば、ROM、EEPROM、フラッシュ・メモリなど)、又はその2つの何らかの組合せであり得る。メモリ3020は、説明される技法を実装するソフトウェア3080を記憶することができる。
Referring to FIG. 30, the
コンピューティング環境は、追加の特徴を有することができる。たとえば、コンピューティング環境3000は、ストレージ3040と、1つ又は複数の入力デバイス3050と、1つ又は複数の出力デバイス3060と、1つ又は複数の通信接続3090とを含む。バス、コントローラ、又はネットワークなど、相互接続機構3070が、コンピューティング環境3000の構成要素を相互接続する。一般に、オペレーティング・システム・ソフトウェア又はファームウェア(図示せず)が、コンピューティング環境3000において実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境3000の構成要素のアクティビティを協調させる。
The computing environment can have additional features. For example, the
ストレージ3040は、リムーバブル又は非リムーバブルであり得、磁気ディスク、磁気テープ又はカセット、CD−ROM、CD−RW、DVD、或いは情報を記憶するために使用され得、コンピューティング環境3000内でアクセスされ得る任意の他の媒体を含む。ストレージ3040は、ソフトウェア3080のための命令を記憶することができる。
(1つ又は複数の)入力デバイス3050は、キーボード、マウス、ペン、トラックボール、タッチ・スクリーン、又はゲーム・コントローラなどのタッチ入力デバイス、音声入力デバイス、走査デバイス、デジタル・カメラ、遠隔制御、或いはコンピューティング環境3000への入力を提供する別のデバイスであり得る。(1つ又は複数の)出力デバイス3060は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカー、又はコンピューティング環境3000からの出力を提供する別のデバイスであり得る。
The (s)
(1つ又は複数の)通信接続3090は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号中で、コンピュータ実行可能命令、オーディオ又はビデオ情報、或いは他のデータなど、情報を伝達する。変調されたデータ信号は、信号の特性のうちの1つ又は複数が、信号中の情報を符号化するような様式で設定又は交換された信号である。限定ではなく実例として、通信媒体は、電気、光、RF、赤外線、音響、又は他のキャリアを用いて実装されるワイヤード又はワイヤレス技法を含む。 The communication connection (s) 3090 allows communication to another computing entity via a communication medium. The communication medium transmits information in the modulated data signal, such as computer executable instructions, audio or video information, or other data. A modulated data signal is a signal in which one or more of the characteristics of the signal are set or exchanged in such a way that the information in the signal is encoded. As an example, but not a limitation, communication media include wired or wireless techniques implemented using electrical, optical, RF, infrared, acoustic, or other carriers.
実装形態が、コンピュータ可読媒体のコンテキストにおいて説明され得る。コンピュータ可読媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な媒体である。限定ではなく実例として、コンピューティング環境3000内で、コンピュータ可読媒体は、メモリ3020、ストレージ3040、通信媒体、及び上記のいずれかの組合せを含む。
Implementations can be described in the context of a computer-readable medium. A computer-readable medium is any available medium that can be accessed within a computing environment. As an example, but not limited to, within a
もちろん、図30は、単に識別しやすいように、別個のデバイスとして、コンピューティング環境3000、ディスプレイ・デバイス3060、及び入力デバイス3050を示す。コンピューティング環境3000、ディスプレイ・デバイス3060、及び入力デバイス3050は、別個のデバイス(たとえば、ワイヤによってモニタ及びマウスに接続されたパーソナル・コンピュータ)であり得、単一のデバイス(たとえば、スマートフォン又はタブレットなど、タッチ・ディスプレイをもつモバイル・デバイス)、又はデバイスの任意の組合せ(たとえば、タッチスクリーン・ディスプレイ・デバイスに動作可能に結合されたコンピューティング・デバイス、単一のディスプレイ・デバイス及び入力デバイスに取り付けられた複数のコンピューティング・デバイスなど)に統合され得る。コンピューティング環境3000は、セットトップ・ボックス、パーソナル・コンピュータ、或いは1つ又は複数のサーバ、たとえば、ネットワーク化されたサーバのファーム、クラスタリングされたサーバ環境、又はコンピューティング・デバイスのクラウド・ネットワークであり得る。
Of course, FIG. 30 shows the
説明される実施例に関して本発明の原理を説明及び図示したが、説明される実施例は、そのような原理から逸脱することなく構成及び詳細において修正され得ることを認識されよう。ソフトウェアにおいて示されている説明される実施例の要素は、ハードウェアにおいて実装され得、その逆も同様である。 Although the principles of the invention have been described and illustrated with respect to the embodiments described, it will be appreciated that the embodiments described may be modified in configuration and detail without departing from such principles. The elements of the illustrated examples shown in the software can be implemented in hardware and vice versa.
本発明の原理が適用され得る多くの可能な実施例に鑑みて、本発明として、以下の特許請求の範囲及びその等価物の範囲及び趣旨内に入り得るようなすべての実施例を主張する。 In view of the many possible embodiments to which the principles of the invention may be applied, the invention claims all embodiments that may fall within the scope and intent of the following claims and their equivalents.
Claims (20)
ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信するステップであって、前記共同ワークスペースの前記表現が、前記サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含む、送信するステップと、
前記ローカル・コンピューティング・デバイス上で、前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダを生成するステップであって、各ライブ・フォルダが、前記リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのネットワーク・アドレスにマッピングされる、生成するステップと、
前記ローカル・コンピューティング・デバイスによって、前記1つ又は複数のリモート参加者オブジェクト中のリモート参加者オブジェクトの近位に少なくとも1つのファイルに対応する少なくとも1つのアイコンをドラッグするためのユーザ入力を検出するステップであって、前記リモート参加者オブジェクトが、前記1つ又は複数のリモート・コンピューティング・デバイス中のリモート・コンピューティング・デバイスに対応する、検出するステップと、
前記ローカル・コンピューティング・デバイスによって、前記リモート参加者オブジェクトに対応するライブ・フォルダに前記少なくとも1つのファイルを記憶して、それにより、前記少なくとも1つのファイルを、前記ウェブ・ソケット接続を介して前記リモート・コンピューティング・デバイスの前記ネットワーク・アドレスに送信するステップと
を含む、方法。 A method for sending files over a websocket connection in a networked collaborative workspace, said method.
The step of transmitting a representation of a collaborative workspace hosted on a server and accessible to multiple participants over a web socket connection on the user interface of a local computing device, said co-operation. A step of transmitting, wherein the representation of the workspace comprises one or more remote participant objects corresponding to one or more remote computing devices connected to the server.
A step of generating one or more live folders corresponding to the one or more remote participant objects on the local computing device, where each live folder is the remote participant object. Maps to the network address of the corresponding remote computing device, and the steps to generate,
The local computing device detects user input for dragging at least one icon corresponding to at least one file proximal to the remote participant object in the one or more remote participant objects. A step of detecting that the remote participant object corresponds to a remote computing device in the one or more remote computing devices.
The local computing device stores the at least one file in a live folder corresponding to the remote participant object, thereby causing the at least one file to be stored over the web socket connection. A method comprising sending to said network address of a remote computing device.
埋込みビデオ・ストリーム又はリモート参加者アイコン
のうちの1つ又は複数を備える、請求項1に記載の方法。 The one or more remote participant objects corresponding to the one or more remote computing devices
The method of claim 1, comprising one or more of an embedded video stream or a remote participant icon.
前記1つ又は複数のリモート参加者オブジェクトに対応する前記1つ又は複数のリモート・コンピューティング・デバイスの1つ又は複数のインターネット・プロトコル(IP)アドレスについて前記サーバに問い合わせるステップと、
前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のローカル・フォルダを生成するステップと、
前記1つ又は複数のローカル・フォルダを前記1つ又は複数のIPアドレスにマッピングすることによって、前記1つ又は複数のライブ・フォルダを生成するステップと
を含む、請求項1に記載の方法。 The step of creating one or more live folders corresponding to the one or more remote participant objects is
A step of querying the server for one or more Internet Protocol (IP) addresses of the one or more remote computing devices corresponding to the one or more remote participant objects.
The step of creating one or more local folders corresponding to the one or more remote participant objects,
The method of claim 1, comprising the step of generating the one or more live folders by mapping the one or more local folders to the one or more IP addresses.
前記少なくとも1つのアイコンを、前記リモート参加者オブジェクトの空間的位置からしきい値距離内にある宛先空間的位置にドラッグするためのユーザ入力を検出するステップ
を含む、請求項1に記載の方法。 The local computing device is configured to store one or more spatial locations of the one or more remote participant objects in the user interface and said one or more remote participants. The step of detecting user input for dragging at least one icon corresponding to at least one file is proximal to the remote participant object in the person object.
The method of claim 1, comprising detecting a user input for dragging the at least one icon from a spatial position of the remote participant object to a destination spatial position within a threshold distance.
前記ライブ・フォルダに前記少なくとも1つのファイルを記憶するステップと、
前記ウェブ・ソケット接続を通して、前記マッピングされたネットワーク・アドレスに前記少なくとも1つのファイルのコピーを送信するステップであって、前記ウェブ・ソケット接続が、前記サーバを介して前記マッピングされたネットワーク・アドレスにデータをルーティングするように構成された、送信するステップと、
前記送信の完了時に、前記ライブ・フォルダから前記少なくとも1つのファイルを削除するステップと
を含む、請求項1に記載の方法。 Store the at least one file in the live folder corresponding to the remote participant object, thereby storing the at least one file in the network of the remote computing device via the web socket connection.・ The step to send to the address is
The step of storing the at least one file in the live folder, and
A step of transmitting a copy of the at least one file to the mapped network address through the web socket connection, wherein the web socket connection goes through the server to the mapped network address. Steps to send, configured to route data,
The method of claim 1, comprising removing the at least one file from the live folder upon completion of the transmission.
1つ又は複数のプロセッサと、
前記1つ又は複数のプロセッサのうちの少なくとも1つに動作可能に結合され、前記1つ又は複数のプロセッサのうちの少なくとも1つによって実行されたとき、前記1つ又は複数のプロセッサのうちの少なくとも1つに、
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することであって、前記共同ワークスペースの前記表現が、前記サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含む、送信することと、
前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダを生成することであって、各ライブ・フォルダが、前記リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのネットワーク・アドレスにマッピングされる、生成することと、
前記1つ又は複数のリモート参加者オブジェクト中のリモート参加者オブジェクトの近位に少なくとも1つのファイルに対応する少なくとも1つのアイコンをドラッグするためのユーザ入力を検出することであって、前記リモート参加者オブジェクトが、前記1つ又は複数のリモート・コンピューティング・デバイス中のリモート・コンピューティング・デバイスに対応する、検出することと、
前記リモート参加者オブジェクトに対応するライブ・フォルダに前記少なくとも1つのファイルを記憶して、それにより、前記少なくとも1つのファイルを、前記ウェブ・ソケット接続を介して前記リモート・コンピューティング・デバイスの前記ネットワーク・アドレスに送信することと
を行わせる命令を記憶した、1つ又は複数のメモリと
を備える、ローカル・コンピューティング・デバイス。 A local computing device for sending files over a websocket connection in a networked collaborative workspace, said local computing device.
With one or more processors
At least one of the one or more processors when operably coupled to at least one of the one or more processors and executed by at least one of the one or more processors. For one,
Sending a representation of a collaborative workspace hosted on a server and accessible to multiple participants over a web socket connection on the user interface of the local computing device. Sending that the representation of the collaborative workspace contains one or more remote participant objects corresponding to one or more remote computing devices connected to the server.
Creating one or more live folders corresponding to the one or more remote participant objects, each live folder of a remote computing device corresponding to the remote participant object. Mapped to a network address, generated and
The detection of user input for dragging at least one icon corresponding to at least one file proximal to the remote participant object in the one or more remote participant objects. Detecting that an object corresponds to a remote computing device in the one or more remote computing devices.
Store the at least one file in the live folder corresponding to the remote participant object, thereby storing the at least one file in the network of the remote computing device via the web socket connection. A local computing device with one or more memories that store instructions to send and do to an address.
埋込みビデオ・ストリーム又はリモート参加者アイコン
のうちの1つ又は複数を備える、請求項8に記載のローカル・コンピューティング・デバイス。 The one or more remote participant objects corresponding to the one or more remote computing devices
The local computing device of claim 8, comprising one or more of an embedded video stream or a remote participant icon.
前記1つ又は複数のリモート参加者オブジェクトに対応する前記1つ又は複数のリモート・コンピューティング・デバイスの1つ又は複数のインターネット・プロトコル(IP)アドレスについて前記サーバに問い合わせることと、
前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のローカル・フォルダを生成することと、
前記1つ又は複数のローカル・フォルダを前記1つ又は複数のIPアドレスにマッピングすることによって、前記1つ又は複数のライブ・フォルダを生成することと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。 When executed by at least one of the one or more processors, at least one of the one or more processors corresponds to one or more of the remote participant objects. The instruction that causes the generation of a plurality of live folders causes at least one of the one or more processors to generate the plurality of live folders.
Querying the server for one or more Internet Protocol (IP) addresses of the one or more remote computing devices corresponding to the one or more remote participant objects.
Creating one or more local folders corresponding to the one or more remote participant objects.
The local according to claim 8, further performing the generation of the one or more live folders by mapping the one or more local folders to the one or more IP addresses. -Computing device.
前記少なくとも1つのアイコンを、前記リモート参加者オブジェクトの空間的位置からしきい値距離内にある宛先空間的位置にドラッグするためのユーザ入力を検出すること
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。 The local computing device is configured to store one or more spatial locations of the one or more remote participant objects in the user interface and of the one or more processors. When executed by at least one of them, at least one of the one or more processors has at least one file proximal to the remote participant object in the one or more remote participant objects. The instruction that causes the user input to detect the user input for dragging at least one icon corresponding to the above is given to at least one of the one or more processors.
8. The eighth aspect of claim 8, wherein the user input for dragging the at least one icon from the spatial position of the remote participant object to a destination spatial position within a threshold distance is further detected. Local computing device.
前記ライブ・フォルダに前記少なくとも1つのファイルを記憶することと、
前記ウェブ・ソケット接続を通して、前記マッピングされたネットワーク・アドレスに前記少なくとも1つのファイルのコピーを送信することであって、前記ウェブ・ソケット接続が、前記サーバを介して前記マッピングされたネットワーク・アドレスにデータをルーティングするように構成された、送信することと、
前記送信の完了時に、前記ライブ・フォルダから前記少なくとも1つのファイルを削除することと
をさらに行わせる、請求項8に記載のローカル・コンピューティング・デバイス。 When executed by at least one of the one or more processors, at least one of the one or more processors has the at least one in the live folder corresponding to the remote participant object. The instruction is to store the file and thereby cause the at least one file to be sent to the network address of the remote computing device over the web socket connection. Or at least one of multiple processors,
To store the at least one file in the live folder,
Sending a copy of the at least one file to the mapped network address through the web socket connection, the web socket connection to the mapped network address through the server. Sending and sending, configured to route data
The local computing device of claim 8, which further deletes the at least one file from the live folder upon completion of the transmission.
前記ローカル・コンピューティング・デバイスのユーザ・インターフェース上で、サーバ上にホストされ、ウェブ・ソケット接続を介して複数の参加者にとってアクセス可能な、共同ワークスペースの表現を送信することであって、前記共同ワークスペースの前記表現が、前記サーバに接続された1つ又は複数のリモート・コンピューティング・デバイスに対応する1つ又は複数のリモート参加者オブジェクトを含む、送信することと、
前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のライブ・フォルダを生成することであって、各ライブ・フォルダが、前記リモート参加者オブジェクトに対応するリモート・コンピューティング・デバイスのネットワーク・アドレスにマッピングされる、生成することと、
前記1つ又は複数のリモート参加者オブジェクト中のリモート参加者オブジェクトの近位に少なくとも1つのファイルに対応する少なくとも1つのアイコンをドラッグするためのユーザ入力を検出することであって、前記リモート参加者オブジェクトが、前記1つ又は複数のリモート・コンピューティング・デバイス中のリモート・コンピューティング・デバイスに対応する、検出することと、
前記リモート参加者オブジェクトに対応するライブ・フォルダに前記少なくとも1つのファイルを記憶して、それにより、前記少なくとも1つのファイルを、前記ウェブ・ソケット接続を介して前記リモート・コンピューティング・デバイスの前記ネットワーク・アドレスに送信することと
を行わせるコンピュータ可読命令を記憶する少なくとも1つの非一時的コンピュータ可読媒体。 When executed by a local computing device, the local computing device,
Sending a representation of a collaborative workspace hosted on a server and accessible to multiple participants over a web socket connection on the user interface of the local computing device. Sending that the representation of the collaborative workspace contains one or more remote participant objects corresponding to one or more remote computing devices connected to the server.
Creating one or more live folders corresponding to the one or more remote participant objects, each live folder of a remote computing device corresponding to the remote participant object. Mapped to a network address, generated and
To detect user input for dragging at least one icon corresponding to at least one file proximal to the remote participant object in the one or more remote participant objects, said remote participant. Detecting that an object corresponds to a remote computing device in the one or more remote computing devices.
Store the at least one file in a live folder corresponding to the remote participant object, thereby bringing the at least one file to the network of the remote computing device via the web socket connection. • At least one non-transitory computer-readable medium that stores computer-readable instructions that cause it to be sent to an address.
埋込みビデオ・ストリーム又はリモート参加者アイコン
のうちの1つ又は複数を備える、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。 The one or more remote participant objects corresponding to the one or more remote computing devices
The at least one non-transitory computer-readable medium of claim 15, comprising one or more of an embedded video stream or remote participant icon.
前記1つ又は複数のリモート参加者オブジェクトに対応する前記1つ又は複数のリモート・コンピューティング・デバイスの1つ又は複数のインターネット・プロトコル(IP)アドレスについて前記サーバに問い合わせることと、
前記1つ又は複数のリモート参加者オブジェクトに対応する1つ又は複数のローカル・フォルダを生成することと、
前記1つ又は複数のローカル・フォルダを前記1つ又は複数のIPアドレスにマッピングすることによって、前記1つ又は複数のライブ・フォルダを生成することと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。 When executed by the local computing device, cause the local computing device to generate one or more live folders corresponding to the one or more remote participant objects. The instruction sends to the local computing device.
Querying the server for one or more Internet Protocol (IP) addresses of the one or more remote computing devices corresponding to the one or more remote participant objects.
Creating one or more local folders corresponding to the one or more remote participant objects.
15. At least according to claim 15, which further creates the one or more live folders by mapping the one or more local folders to the one or more IP addresses. One non-temporary computer-readable medium.
前記少なくとも1つのアイコンを、前記リモート参加者オブジェクトの空間的位置からしきい値距離内にある宛先空間的位置にドラッグするためのユーザ入力を検出すること
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。 The local computing device is configured to store one or more spatial locations of the one or more remote participant objects in the user interface and is configured by the local computing device. When executed, to drag at least one icon corresponding to at least one file to the local computing device proximal to the remote participant object in the one or more remote participant objects. The instruction that causes the user input to be detected causes the local computing device to receive the instruction.
15. The 15th aspect, wherein the user input for dragging the at least one icon from the spatial position of the remote participant object to a destination spatial position within a threshold distance is further detected. At least one non-temporary computer-readable medium.
前記ライブ・フォルダに前記少なくとも1つのファイルを記憶することと、
前記ウェブ・ソケット接続を通して、前記マッピングされたネットワーク・アドレスに前記少なくとも1つのファイルのコピーを送信することであって、前記ウェブ・ソケット接続が、前記サーバを介して前記マッピングされたネットワーク・アドレスにデータをルーティングするように構成された、送信することと、
前記送信の完了時に、前記ライブ・フォルダから前記少なくとも1つのファイルを削除することと
をさらに行わせる、請求項15に記載の少なくとも1つの非一時的コンピュータ可読媒体。 When executed by the local computing device, the local computing device stores the at least one file in a live folder corresponding to the remote participant object, thereby at least one. The instruction to cause the remote computing device to send the file over the web socket connection to the network address of the remote computing device causes the local computing device to send the file.
To store the at least one file in the live folder,
Sending a copy of the at least one file to the mapped network address through the web socket connection, the web socket connection to the mapped network address through the server. Sending and sending, configured to route data
The at least one non-transitory computer-readable medium according to claim 15, which further deletes the at least one file from the live folder upon completion of the transmission.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 |
US15/923,943 | 2018-03-16 | ||
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 |
---|---|
JP2021517302A true JP2021517302A (en) | 2021-07-15 |
Family
ID=65955176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020547345A Pending JP2021517302A (en) | 2018-03-16 | 2019-03-13 | Methods, devices, and computer-readable media for sending files over websocket connections in a networked collaborative workspace. |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3765973A1 (en) |
JP (1) | JP2021517302A (en) |
KR (1) | KR20200131881A (en) |
CN (1) | CN112106044A (en) |
BR (1) | BR112020018877A2 (en) |
RU (1) | RU2020133478A (en) |
WO (1) | WO2019175237A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868201A (en) * | 2021-12-02 | 2021-12-31 | 天津联想协同科技有限公司 | Method, device and storage medium for sharing file by cooperation of multiple persons |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102605522B1 (en) * | 2023-01-06 | 2023-11-24 | 한규태 | Customer cooperative development system using function board and server included in it |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167897B2 (en) * | 1996-05-08 | 2007-01-23 | Apple Computer, Inc. | Accessories providing a telephone conference application one or more capabilities independent of the teleconference application |
US7587467B2 (en) * | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7634533B2 (en) * | 2004-04-30 | 2009-12-15 | Microsoft Corporation | Systems and methods for real-time audio-visual communication and data collaboration in a network conference environment |
US7821985B2 (en) * | 2006-03-13 | 2010-10-26 | Microsoft Corporation | Network interface routing using computational context |
US7958270B2 (en) * | 2006-06-09 | 2011-06-07 | Laurent Frederick Sidon | Distribution of files from mobile devices |
US9300912B2 (en) * | 2008-03-28 | 2016-03-29 | Microsoft Technology Licensing, Llc | Software based whiteboard capture solution for conference room meetings |
US10162491B2 (en) * | 2011-08-12 | 2018-12-25 | Otoy Inc. | Drag and drop of objects between applications |
US9398059B2 (en) * | 2013-11-22 | 2016-07-19 | Dell Products, L.P. | Managing information and content sharing in a virtual collaboration session |
US20160140139A1 (en) * | 2014-11-17 | 2016-05-19 | Microsoft Technology Licensing, Llc | Local representation of shared files in disparate locations |
US10001913B2 (en) * | 2015-04-01 | 2018-06-19 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
-
2019
- 2019-03-13 CN CN201980018738.1A patent/CN112106044A/en active Pending
- 2019-03-13 EP EP19712894.5A patent/EP3765973A1/en not_active Withdrawn
- 2019-03-13 KR KR1020207029555A patent/KR20200131881A/en unknown
- 2019-03-13 JP JP2020547345A patent/JP2021517302A/en active Pending
- 2019-03-13 RU RU2020133478A patent/RU2020133478A/en unknown
- 2019-03-13 BR BR112020018877-8A patent/BR112020018877A2/en not_active IP Right Cessation
- 2019-03-13 WO PCT/EP2019/056276 patent/WO2019175237A1/en active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868201A (en) * | 2021-12-02 | 2021-12-31 | 天津联想协同科技有限公司 | Method, device and storage medium for sharing file by cooperation of multiple persons |
CN113868201B (en) * | 2021-12-02 | 2022-03-15 | 天津联想协同科技有限公司 | Method, device and storage medium for sharing file by cooperation of multiple persons |
Also Published As
Publication number | Publication date |
---|---|
BR112020018877A2 (en) | 2020-12-29 |
KR20200131881A (en) | 2020-11-24 |
WO2019175237A1 (en) | 2019-09-19 |
CN112106044A (en) | 2020-12-18 |
EP3765973A1 (en) | 2021-01-20 |
RU2020133478A (en) | 2022-04-19 |
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 | |
KR101817467B1 (en) | System for interacting with objects in a virtual environment | |
US9965039B2 (en) | Device and method for displaying user interface of virtual input device based on motion recognition | |
JP5442727B2 (en) | Display of teaching videos on the user interface display | |
US20190065012A1 (en) | Method, apparatus, and computer-readable medium for propagating enriched note data objects over a web socket connection in a networked collaboration workspace | |
JP6433923B2 (en) | Providing a specific object location to the device | |
US10990344B2 (en) | Information processing apparatus, information processing system, and information processing method | |
JP2020532007A (en) | Methods, devices, and computer-readable media that provide a general-purpose interface between hardware and software | |
JP2021517302A (en) | Methods, devices, and computer-readable media for sending files over websocket connections in a networked collaborative workspace. | |
JP2021533456A (en) | Methods, devices and computer-readable media for communicating expanded note data objects over websocket connections in a networked collaborative workspace. | |
JP2021525910A (en) | Methods, devices and computer-readable media for desktop sharing over websocket connections in networked collaborative workspaces | |
US11334220B2 (en) | Method, apparatus, and computer-readable medium for propagating cropped images over a web socket connection in a networked collaboration workspace | |
JP2021523484A (en) | Methods, devices, and computer-readable media for delivering cropped images through websocket connections in a networked collaborative workspace. |