Patents Assigned to Satori Worldwide, LLC
  • Patent number: 10659330
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for assigning channels in a messaging system. An example method includes: providing a plurality of channels, wherein each channel includes an ordered plurality of messages; assigning each channel to a channel bucket to form a plurality of channel buckets, wherein each channel bucket includes at least two channels from the plurality of channels; and assigning each channel bucket to a node selected from a plurality of nodes, wherein the node includes one or more buffers for storing messages according to the order from the channel buckets of the node.
    Type: Grant
    Filed: June 28, 2018
    Date of Patent: May 19, 2020
    Assignee: Satori Worldwide, LLC
    Inventors: Igor Milyakov, Fredrik Erik Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Patent number: 10637947
    Abstract: A publish-subscribe messaging systems and methods are described. A method may include retrieving, by one or more computer processors, messages for a particular one of a plurality of channels from one or more respective buffers allocated to the particular channel that have not expired and according to an order, wherein each buffer comprises a respective time-to-live. The method also includes sending, by the one or more computer processors, the messages retrieved for the particular channel to one or more subscriber clients that have subscribed to the particular channel.
    Type: Grant
    Filed: December 7, 2018
    Date of Patent: April 28, 2020
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Lev Walkin, Fredrik Erik Linder
  • Patent number: 10630628
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for tracking or managing vehicles. One method includes receiving a first message on a first channel of a plurality of channels. The first channel may be associated with a vehicle that is traveling on a route. The first message may include a request to prioritize a first geographical location of the route. The method also includes determining whether the first geographical location can be prioritized. The method further includes publishing a second message to a second channel of the plurality of channels in response to determining that the first geographical location can be prioritized. The vehicle may be a subscriber to the second channel. The second message may indicate an updated route for the vehicle where the first geographical location is prioritized.
    Type: Grant
    Filed: November 19, 2018
    Date of Patent: April 21, 2020
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Francois Orsini
  • Patent number: 10630785
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, to allocate a first buffer on a first node of a plurality of nodes for storing messages associated with a channel, grant a first write request to a publisher to write one or more messages to the first buffer, and determine that the first buffer is not available for writing the one or more messages when the first buffer is full; and, in response, select a second node from the plurality of nodes based on a respective workload of nodes in the plurality of nodes, and allocate a second buffer on the second node for storing the one or more messages associated with the channel.
    Type: Grant
    Filed: November 17, 2017
    Date of Patent: April 21, 2020
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Lev Walkin, Fredrik Erik Linder
  • Patent number: 10541945
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for storing message data in a PubSub system. In certain examples, the method includes storing messages of each of a plurality of channels in a writable portion of a respective buffer for the channel. The method may also include moving a pointer delineating a boundary between the writable portion and a readable portion of the buffer such that the messages are in the readable portion after the pointer has moved. The method may also include allowing one or more subscribers to read from the readable portion of one or more of the buffers during the storing.
    Type: Grant
    Filed: January 10, 2019
    Date of Patent: January 21, 2020
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Younes Hafri
  • Patent number: 10529080
    Abstract: Methods and systems for road recognition and traffic counting for complex thoroughfares are described. The method includes receiving a set of video frames captured by one or more electronic devices. The set of video frames includes a capture of a thoroughfare. The method further includes identifying an object featured in each respective video frame of a subset of the set of video frames, generating a plurality of vectors corresponding to a direction of motion of the object, combining intersecting vectors of the plurality of vectors, and generating a graphical map of at least one road in the thoroughfare based at least in part on the combination of intersecting vectors.
    Type: Grant
    Filed: June 21, 2018
    Date of Patent: January 7, 2020
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Renat Idrisov
  • Patent number: 10522043
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for managing or tracking assets in a geographical area. One method includes receiving one or more first messages from a plurality of assets on one or more first channels of a plurality of channels. The one or more first messages may indicate live geographical locations of the plurality of assets located in a geographical area. The method also includes displaying, via a graphical user interface, the live geographical locations of the plurality of assets on a map of the geographical area. The method further includes receiving on a second channel a message indicating a request from a first user device to travel to a destination. The method further includes determining one or more travel routes to the destination. The one or more travel routes may use different assets to transport the first user device to the destination.
    Type: Grant
    Filed: January 8, 2018
    Date of Patent: December 31, 2019
    Assignee: Satori Worldwide, LlC
    Inventors: Cynthia Chu, Francois Orsini, Boaz Sedan, Arun Kejariwal, Dhruv Choudhary, Nika Kolomentseva, Andrey Kolomentsev, Sujesha Sudevalayam, Anna Kareva, Gabor Mueller-Tseng, Andrey Kushnir, Jared Stoffan, Mick Ryan, Renee Ya, Anton Koinov, Mikhail Kuzmiankou, Alex Taylor
  • Patent number: 10514994
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for: allocating a first pool of workers on a plurality of nodes, wherein each node comprises one or more of the workers from the first pool; providing a first set of instructions to the first pool of workers for performing a first task configured to interact with a computer system; activating the first pool of workers to perform the first task; updating at least a portion of the first set of instructions for a subset of the first pool of workers while the workers are performing the first task; and monitoring at least one performance metric associated with the computer system while the workers from the subset of the first pool are performing the first task.
    Type: Grant
    Filed: April 7, 2017
    Date of Patent: December 24, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Renat Idrisov, Timofey Barmin
  • Patent number: 10499193
    Abstract: Methods and systems for determining and tracking electronic devices are provided. One method includes receiving measurement data from at least a subset of a plurality of client electronic devices. The measurement data are captured by each respective client electronic device of the subset of the plurality of client electronic devices. The method further includes generating geolocation estimation data for at least one of the subset of the plurality of client electronic devices based at least in part on the measurement data, and generating a geolocation confidence value based at least in part on the geolocation estimation data. The geolocation confidence value indicates a precision level of the geolocation estimation data. The method further includes transmitting the geolocation estimation data and the geolocation confidence value to the at least one of the subset of the plurality of client electronic devices.
    Type: Grant
    Filed: March 19, 2018
    Date of Patent: December 3, 2019
    Assignee: Satori Worldwide, LLC
    Inventor: Caleb Tolman
  • Patent number: 10484190
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for managing channels in an open data ecosystem. A method includes providing one or more graphical user interfaces to a first user of an open data ecosystem. The open data ecosystem includes a plurality of public channels and a plurality of private channels. The users of the open data ecosystem are able to receive messages on each of the plurality of public channels. The method also includes receiving first user input from the first user via the one or more graphical user interfaces. The method further includes configuring one or more channels of the plurality of public channels or the plurality of private channels based on the first user input received from the first user via the one or more graphical user interfaces.
    Type: Grant
    Filed: February 22, 2018
    Date of Patent: November 19, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Gabriel Leydon, Francois Orsini, Steven Brooks, Winnie Tseng-Mueller, Boaz Sedan, Cynthia Chu, Anton Koinov, Sarit Arcushin-Yaakobovitz
  • Patent number: 10447623
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for implementing key-value store functionality within a real-time messaging system. An example method includes: providing a plurality of channels, wherein each channel comprises an ordered plurality of messages, wherein each channel represents a unique key, and wherein each message comprises one or more key-value pairs; receiving a function comprising a key for identifying one of the plurality of channels and processing instructions to be applied to a subset of the key-value pairs; and applying the processing instructions based at least in part on the unique key.
    Type: Grant
    Filed: February 24, 2017
    Date of Patent: October 15, 2019
    Assignee: Satori Worldwide, LLC
    Inventors: Igor Milyakov, Fredrik E. Linder, Anton Koinov, Francois Orsini, Boaz Sedan, Oleg Khabinov, Bartlomiej Puzon
  • Patent number: 10404647
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving from a plurality of publisher clients a plurality of messages, each message being for a particular channel of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages, encoding each message based on a particular dictionary, storing encoded messages in one or more respective buffers according to the order, each buffer having a respective time-to-live and residing on a respective node, retrieving encoded messages for the particular channel from respective buffers having time-to-lives that have not expired and according to the order, decoding each retrieved message based on the particular dictionary, and sending the decoded messages to a plurality of subscriber clients.
    Type: Grant
    Filed: June 7, 2016
    Date of Patent: September 3, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Lev Walkin
  • Patent number: 10402842
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for adjusting the costs of assets. A method includes receiving consumption data via a first channel of a plurality of channels. The consumption data indicates an amount of consumption of an asset. The method also includes determining whether one or more predetermined thresholds are satisfied based on the consumption data. The method further includes adjusting a cost of the asset in response to determining that the consumption data satisfies the one or more predetermined thresholds. The method further includes publishing, by a computer processing device, one or more messages indicating an adjusted cost of the asset to one or more client devices via a second channel of the plurality of channels.
    Type: Grant
    Filed: May 22, 2018
    Date of Patent: September 3, 2019
    Assignee: Satori Worldwide, LLC
    Inventors: Sophia Cao, Matt Holland, Yonatan Ellert
  • Patent number: 10389674
    Abstract: A method includes storing, by one or more computer processors, a plurality of blocks in a queue, wherein each block includes at least one received message, and wherein each block is associated with a time that the block was stored in the queue. The method further includes designating, by the one or more computer processors, as inactive one or more blocks having associated storage times that are older than a first time. The method further includes reading, by the one or more computer processors, messages from inactive blocks until a second time that is older than the first time. The method further includes deleting, by the one or more computer processors, one or more inactive blocks from the queue having associated storage times that are older than the second time.
    Type: Grant
    Filed: June 27, 2018
    Date of Patent: August 20, 2019
    Assignee: Satori Worldwide, LLC
    Inventor: Igor Milyakov
  • Patent number: 10382574
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage device, for storing messages of each of a plurality of channels in one or more respective storage buffers, wherein each storage buffer comprises a respective time-to-live of a first duration. The method may also include retrieving messages of a particular channel from respective storage buffers and storing the retrieved messages of the particular channel in a delivery buffer comprising at least one data block, wherein each data block comprises a respective time-to-live of a second duration. The method may also include delivering the messages stored in the delivery buffer to subscribers of the particular channel.
    Type: Grant
    Filed: March 1, 2018
    Date of Patent: August 13, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Igor Milyakov
  • Patent number: 10374986
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for balancing loads in a publish-subscribe system. An example method includes: selecting a first hosting node from a plurality of hosting nodes based, at least in part, on a load data selected from at least one of node-specific data representing loads on the plurality of hosting nodes and channel-specific data representing a load associated with a channel; sending a request to the first hosting node to temporarily host a portion of a channel; temporarily hosting the channel portion by the first hosting node by temporarily storing one or more messages published to the channel, and temporarily providing, to a plurality of subscribers to the channel, access to the one of more messages; receiving a request to access the channel portion; and granting permission to access the channel portion.
    Type: Grant
    Filed: August 23, 2016
    Date of Patent: August 6, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Lev Walkin, Fredrik Erik Linder
  • Patent number: 10333879
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving from a plurality of publishers a plurality of messages, each of the messages being assigned to one of a plurality of distinct channels wherein each channel comprises an ordered plurality of messages, storing each message of each of the channels in a respective buffer, each buffer having a time-to-live, during the storing, removing one or more of the buffers having respective time-to-lives that have expired, and providing messages for one or more of the channels to one or more subscribers from a plurality of the remaining buffers according to the order.
    Type: Grant
    Filed: August 7, 2015
    Date of Patent: June 25, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Lev Walkin, Fredrik Erik Linder
  • Patent number: 10305981
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for maintaining a plurality of channels, each channel comprising an ordered plurality of messages stored in one or more buffers, each buffer having a respective time-to-live and a plurality of copies residing on respective nodes, detecting failure of a first node of the plurality of nodes wherein the first node stores respective first copies of first buffers and at least one subscriber is subscribed to messages of one or more first channels, for a first buffer with a first copy residing on the first node, identifying any other of the plurality of nodes as a second node storing a second copy of the first buffer, redirecting the at least one subscriber from the first node to the second node, and retrieving messages stored in the second copy on the second node for the at least one subscriber.
    Type: Grant
    Filed: August 31, 2016
    Date of Patent: May 28, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventors: Younes Hafri, Lev Walkin, Fredrik Erik Linder
  • Patent number: 10270726
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for selective distribution of messages from a scalable, real-time messaging system. An example method includes: receiving query instructions from a subscriber client, wherein the subscriber client is subscribed to a channel of a plurality of channels; receiving a plurality of messages from a plurality of publisher clients, wherein each message is associated with a particular one of the plurality of channels; applying the query instructions to the plurality of messages for the channel as the messages are received; and sending the messages resulting from the application of the query instructions to the subscriber client, wherein the messages received by the subscriber client from the channel are limited to those that satisfy the query instructions.
    Type: Grant
    Filed: February 24, 2017
    Date of Patent: April 23, 2019
    Assignee: SATORI WORLDWIDE, LLC
    Inventor: Boaz Sedan
  • Patent number: 10218646
    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, are described for storing message data in a PubSub system. In certain examples, messages are received from a plurality of publishers for a plurality of channels. The messages are stored in a writable portion of a respective buffer for the channel according to an order, wherein messages in the writable portion of the buffer are inaccessible to subscribers. The method may also include advancing a pointer demarcating a boundary between the writable portion and a readable portion of the buffer such that the message is in the readable portion after the pointer has advanced.
    Type: Grant
    Filed: October 31, 2017
    Date of Patent: February 26, 2019
    Assignee: Satori Worldwide, LLC
    Inventor: Younes Hafri