# US 11,122,094 B2 · Software application manager for messaging applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,122,094 B2
- Document ID: US11122094B2
- Status: Granted
- Kind: B2
- Application number: 15/818,430
- Filed: 2017-11-20
- Published: 2019-01-31
- Granted: 2021-09-14
- Earliest claimed: 2017-07-28
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Dylan Shane Eirinberg; Aaron Daniel Son; William Wu
- Web page: https://patentgrep.com/patent/US11122094B2

## CPC

- H04L 65/4015: {where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference}
- A63F 13/48: Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
- A63F 13/795: for finding other players; for building a team; for providing a buddy list
- H04L 51/04: Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L 51/046: Interoperability with other network applications or services
- H04L 51/18: Commands or executable codes
- H04L 63/102: {Entity profiles}
- H04L 63/104: {Grouping of entities}
- H04L 65/1089: by adding media; by removing media
- H04L 65/403: Arrangements for multi-party communication, e.g. for conferences (data switching systems for conference H04L12/18; arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities H04M3/56; television conferencing systems H04N7/15)
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR

## Abstract

Among other things, embodiments of the present disclosure improve the functionality of electronic messaging systems by enabling users in an electronic chat conversation to run applications together. In some embodiments, when one user in a chat launches an application, an icon or other visual representation of the application appears in a portion of the chat window (e.g., in a “chat dock”) for other users in the chat to access.

## Claims

### Claim 1

A system comprising:
a processor; and
memory coupled to the processor and storing instructions that, when executed by the processor, cause the system to perform operations comprising:
receiving, from a first client computing device of a first user engaged in a group conversation with a respective client computing device of one or more other respective users, an electronic communication containing a request to launch a software application into the group conversation;
in response to the request to launch the software application, creating a software application session for the software application and associating the software application session with each respective client computing device of each respective user in the group conversation;
transmitting a respective electronic communication containing information regarding the software application session to each respective client computing device of each respective user in the group conversation;
causing display of an icon representing the software application within a docking window on a respective display screen of each respective client computing device of the one or more other respective users;
determining that the first user is engaged in the software application session;
causing, in response to the determining, display of the icon to visually change within the docking window,
wherein the docking window is configured to be displayed when at least one software application is open with respect to the group conversation, and to otherwise be hidden from display;
receiving from a second client computing device of a second user engaged in the group conversation, an electronic communication containing a request to launch the software application;
transmitting an electronic communication containing information regarding the software application to the second client computing device that contains executable code for the second client computing device to execute locally to run the software application;
receiving from a third client computing device of a third user engaged in the group conversation, an electronic communication containing a request to observe the software application;
transmitting an electronic communication containing representations of actions taken within the software application, by one or more of the first user and the second user, to the third client computing device; and
causing display of an interface element on the first client computing device, the interface element indicating that the second user is engaged in the software application session and that the third user is observing the software application session.

### Claim 2 (depends on 1)

The system of claim 1, wherein creating the software application session includes verifying the first user has permission to create the software application session.

### Claim 3 (depends on 1)

The system of claim 1, wherein creating the software application session includes verifying the users in the group conversation have permission to use the software application.

### Claim 4 (depends on 1)

The system of claim 1, wherein the electronic communication containing information regarding the software application transmitted to the first client computing device contains executable code for the first client computing device to execute locally to run the software application.

### Claim 5 (depends on 1)

The system of claim 1, where the memory further stores instructions for causing the system to perform operations comprising: transmitting state updates and synchronization information to one or more of the first client computing device and the second client computing device engaged in the software application session.

### Claim 6 (depends on 5)

The system of claim 5, wherein the state updates and synchronization information includes an update to a visible state of the software application for one or more of the first client computing device and the second client computing device.

### Claim 7 (depends on 6)

The system of claim 6, wherein the state updates include a first visible state update associated with the first user and a second visible state update associated with the second user.

### Claim 8 (depends on 1)

The system of claim 1, wherein the memory further stores instructions for causing the system to perform operations comprising:
detecting that all software applications open with respect to the group conversation have been terminated; and
causing the docking window to be removed from display on the respective display screen of each respective client computing device, in response to detecting.

### Claim 9 (depends on 1)

The system of claim 1, wherein the memory further stores instructions for causing the system to perform operations comprising:
receiving, from the first client computing device, an electronic communication containing a request to terminate the software application session, and
terminating the software application session in response to the request to terminate the software application session.

### Claim 10 (depends on 9)

The system of claim 9, wherein terminating the software application session includes verifying the first user of the first client computing device has permission to terminate the software application session.

### Claim 11 (depends on 9)

The system of claim 9, wherein terminating the software application session includes removing the icon representing the software application from the docking window of each respective display screen of each respective client computing device of the one or more other respective users.

### Claim 12 (depends on 1)

The system of claim 1, wherein the docking window is separate from a conversation thread corresponding to the group conversation, and
wherein the docking window overlays the conversation thread.

### Claim 13 (depends on 1)

The system of claim 1, wherein the memory further stores instructions for causing the system to perform operations comprising:
receiving, from the first client computing device, an electronic communication containing a notification that the first client computing device is leaving the software application session; and
causing, in response to receiving the notification that the first client computing device is leaving the software application session, the icon as visually changed to be modified within the docking window or removed from display.

### Claim 14 (depends on 13)

The system of claim 13, wherein the memory further stores instructions for causing the system to perform operations comprising:
providing updates indicating participants in the software application session to the first client computing device subsequent to the first client computing device leaving the software application session.

### Claim 15 (depends on 1)

The system of claim 1, wherein the interface element is user selectable for scrolling between the indication that the second user is engaged in the software application session and the indication that the third user is observing the software application session.

### Claim 16

A computer-implemented method comprising:
receiving, by a computer system, from a first client computing device of a first user engaged in a group conversation with a respective client computing device of one or more other respective users, an electronic communication containing a request to launch a software application into the group conversation;
in response to the request to launch the software application, creating, by the computer system a software application session for the software application and associating the software application session with each respective client computing device of each respective user in the group conversation;
transmitting, by the computer system, a respective electronic communication containing information regarding the software application session to each respective client computing device of each respective user in the group conversation;
causing, by the computer system, display of an icon representing the software application within a docking window on a respective display screen of each respective client computing device of the one or more other respective users;
determining, by the computer system, that the first user is engaged in the software application session;
causing, by the computer system and in response to the determining, display of the icon to visually change within the docking window,
wherein the docking window is configured to be displayed when at least one display software application is open with respect to the group conversation, and to otherwise be hidden from display;
receiving from a second client computing device of a second user engaged in the group conversation, an electronic communication containing a request to launch the software application;
transmitting an electronic communication containing information regarding the software application to the second client computing device that contains executable code for the second client computing device to execute locally to run the software application;
receiving from a third client computing device of a third user engaged in the group conversation, an electronic communication containing a request to observe the software application;
transmitting an electronic communication containing representations of actions taken within the software application, by one or more of the first user and the second user, to the third client computing device; and
causing display of an interface element on the first client computing device, the interface element indicating that the second user is engaged in the software application session and that the third user is observing the software application session.

### Claim 17

A non-transitory computer-readable medium storing instructions that, when executed by a computer system, cause the computer system to perform operations comprising:
receiving, from a first client computing device of a first user engaged in a group conversation with a respective client computing device of one or more other respective users, an electronic communication containing a request to launch a software application into the group conversation;
in response to the request to launch the software application, creating a software application session for the software application and associating the software application session with each respective client computing device of each respective user in the group conversation;
transmitting a respective electronic communication containing information regarding the software application session to each respective client computing device of each respective user in the group conversation;
causing display of an icon representing the software application within a docking window on a respective display screen of each respective client computing device of the one or more other respective users;
determining that the first user is engaged in the software application session;
causing, in response to the determining, display of the icon to visually change within the docking window,
wherein the docking window is configured to be displayed when at least one display software application is open with respect to the group conversation, and to otherwise be hidden from display;
receiving from a second client computing device of a second user engaged in the group conversation, an electronic communication containing a request to launch the software application;
transmitting an electronic communication containing information regarding the software application to the second client computing device that contains executable code for the second client computing device to execute locally to run the software application;
receiving from a third client computing device of a third user engaged in the group conversation, an electronic communication containing a request to observe the software application;
transmitting an electronic communication containing representations of actions taken within the software application, by one or more of the first user and the second user, to the third client computing device; and
causing display of an interface element on the first client computing device, the interface element indicating that the second user is engaged in the software application session and that the third user is observing the software application session.
