US10133588B1

Transforming instructions for collaborative updates

Summary by NHIP

Transforming Conflicting Collaborative Instructions

The method generates client-side instructions for a user interface modification and detects conflicts with prior server-received instructions from another device. Upon detecting a conflict, the system transforms the local instruction group based on the earlier remote group before executing the update and transmitting the transformed set to the server.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

In various example embodiments, a system and method for transforming instructions for collaborative updates are described herein. A group of instructions for an update of an element depicted in a client device version of a user interface are generated. The group of instructions is executed and the group or a subset of instructions are transmitted to a server. The server accepts or rejects the instructions. The server may execute the instructions to update a server version of the element. The server sends accepted instructions to the other or all client devices.

US10133588B1, drawing sheet 1
Sheet 1 of 12

Term

10.1 yearsleft in the term

Expires 20 October 2036.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

20 claims: 3 independent, 17 dependent

  1. 1
    Broadest claimClaim Score 25, narrow(NHIP)A method comprising:generating, by a client device, a first group of instructions for causing a first modification of an element depicted in a user interface, the user interface being accessible for modification by at least a second client device;executing a front-end update based on the first group of instructions, the front-end update causing the first modification on a local version of the user interface associated with the client device;transmitting the first group of instructions to a server that maintains a listing of modifications to the user interface that are received from at least the client device and the second client device;receiving, from the server, a system-wide update including a second group of instructions for causing a second modification of the element in the user interface, the second modification being different than the first modification, the second group of instructions having been generated based on a state of the element prior to the first modification and having been received by the server from the second client device prior to the server having received the first group of instructions;determining, using one or more processors of the client device, that the first group of instructions conflict with the second group of instructions;in response to determining that the first group of instructions conflicts with the second group of instructions, transforming the first group of instructions based on the second group of instructions, yielding a transformed first group of instructions;executing a front-end update based on the transformed first group of instructions;and transmitting, to the server, the transformed first group of instructions, the server sending a second system-wide update to at least the second client device, the second system-wide update including the transformed first group of instructions.
  2. 8
    A client device comprising:one or more computer processors;and one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the client device to perform operations comprising: generating a first group of instructions for causing a first modification of an element depicted in a user interface, the user interface being accessible for modification by at least a second client device;executing a front-end update based on the first group of instructions, the front-end update causing the first modification on a local version of the user interface associated with the client device;transmitting the first group of instructions to a server that maintains a listing of modifications to the user interface that are received from at least the client device and the second client device;receiving, from the server, a system-wide update including a second group of instructions for causing a second modification of the element in the user interface, the second modification being different than the first modification, the second group of instructions having been generated based on a state of the element prior to the first modification and having been received by the server from the second client device prior to the server having received the first group of instructions;determining that the first group of instructions conflict with the second group of instructions;in response to determining that the first group of instructions conflicts with the second group of instructions, transforming the first group of instructions based on the second group of instructions, yielding a transformed first group of instructions;executing a front-end update based on the transformed first group of instructions;and transmitting, to the server, the transformed first group of instructions, the server sending a second system-wide update to at least the second client device, the second system-wide update including the transformed first group of instructions.
  3. 15
    A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a client device, cause the client device to perform operations comprising:generating a first group of instructions for causing a first modification of an element depicted in a user interface, the user interface being accessible for modification by at least a second client device;executing a front-end update based on the first group of instructions, the front-end update causing the first modification on a local version of the user interface associated with the client device;transmitting the first group of instructions to a server that maintains a listing of modifications to the user interface that are received from at least the client device and the second client device;receiving, from the server, a system-wide update including a second group of instructions for causing a second modification of the element in the user interface, the second modification being different than the first modification, the second group of instructions having been generated based on a state of the element prior to the first modification and having been received by the server from the second client device prior to the server having received the first group of instructions;determining that the first group of instructions conflict with the second group of instructions;in response to determining that the first group of instructions conflicts with the second group of instructions, transforming the first group of instructions based on the second group of instructions, yielding a transformed first group of instructions;executing a front-end update based on the transformed first group of instructions;and transmitting, to the server, the transformed first group of instructions, the server sending a second system-wide update to at least the second client device, the second system-wide update including the transformed first group of instructions.