Edge device mechanism for selectively locating missing chat messages
The method addresses the challenge of accessing missing chat messages in end-to-end encrypted systems by sending locate requests with metadata attributes and pagination, facilitating efficient recovery and deduplication on edge devices, enhancing processing efficiency and privacy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- INTERNATIONAL BUSINESS MACHINE CORPORATION
- Filing Date
- 2024-05-06
- Publication Date
- 2026-07-07
AI Technical Summary
In end-to-end encrypted messaging systems where messages are stored locally, users face challenges in accessing missing chat messages due to device failures, loss, or accidental deletion, with no server backup available to restore these messages.
A computer implementation method that facilitates selective localization and recovery of missing chat messages by sending a locate request with search parameters to other edge devices, utilizing metadata attributes and pagination to retrieve and sort messages, and deduplicating duplicates for efficient storage and presentation.
Enables selective recovery and sorting of missing chat messages on edge devices, maintaining privacy and reducing data storage by deduplicating redundant messages, thus improving processing efficiency in end-to-end encrypted environments.
Smart Images

Figure 2026522152000001_ABST
Abstract
Description
Background Art
[0001] One or more aspects generally relate to facilitating processing within a computing environment, and more specifically to facilitating selective localization of one or more missing chat messages for a user's edge device, where the one or more missing chat messages are part of a message chat using a messaging system employing end-to-end encryption.
[0002] A messaging system provides a channel or pipeline for communication between messaging applications running on different user edge devices, including sending and receiving chat messages. There are various messaging systems or services, including instant messaging over the Internet or the like. Instant messaging technology is a type of online chat that enables real-time message transmission over the Internet or another computer network. Certain messaging applications employ end-to-end encryption and store messages only via local-based edge device storage, i.e., without any server storage such as cloud-based server storage of messages.
Summary of the Invention
[0003] By providing a computer implementation method that facilitates processing within a computing environment, the drawbacks of the prior art are overcome and additional advantages are provided herein. The computer implementation method comprises the step of sending a locate chat message request from a user's edge device to at least one other edge device of at least one other participant in a chat with the user, via an end-to-end encrypted messaging system. The chat message locate request identifies at least one search parameter for the at least one missing chat message of the chat on the edge device. Based on the step of sending the chat message locate request, the computer implementation method further comprises the step of receiving the at least one missing chat message of the chat, identified via the at least one search parameter, from the at least one other edge device at the edge device. Advantageously, improved processing within a computing environment is provided. In particular, a computer implementation method is provided for edge devices to facilitate the location of one or more missing chat messages of a chat, where the chat is via an end-to-end encrypted messaging system.
[0004] In one or more embodiments, the chat message location request includes a chat message recovery request, wherein the at least one missing chat message identified via the at least one lookup parameter is at least one missing chat message of the chat to be recovered on the edge device. In one embodiment, the at least one lookup parameter is at least one metadata attribute of the at least one missing chat message. In one or more embodiments, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message. Advantageously, an edge device mechanism is provided to selectively recover at least one missing chat message of a chat via an end-to-end encrypted messaging system on the edge device. Using at least one lookup parameter, at least one missing chat message is located on at least one other edge device and returned to the edge device of the user whose chat message is missing. Selective location and recovery of at least one missing chat message is provided when at least one lookup parameter is at least one metadata attribute of the missing chat message.
[0005] In one or more embodiments, a chat message recovery request further identifies a pagination parameter, the pagination parameter identifying the maximum number of missing chat messages to be received based on the chat message recovery request. In one embodiment, the receiving step includes receiving up to x (x is a natural number) missing chat messages of the chat from the at least one other edge device, where x is identified by the pagination parameter. In one embodiment, the method further includes sending a further chat message recovery request from the edge device to the at least one other edge device of the at least one other participant in the chat for the next set of x missing chat messages of the chat. Advantageously, by providing a pagination parameter that identifies the number of missing chat messages to be received based on the chat message recovery request, selective bulk recovery of multiple missing chat messages on the edge device is enabled. In one or more implementations, pagination may be used to enable selective bulk recovery of messages forward or backward from a particular chat message identified by at least one metadata attribute. In addition, selective batch restoration of messages may be repeated by sending further chat message restoration requests from the edge device to at least one other edge device for the next set of x missing chat messages in the chat. In one embodiment, pagination can continue repeatedly until all missing chat messages are restored on the edge device.
[0006] In one or more embodiments, the step of sending the chat message recovery request includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat, where the at least one other device is at least one other edge device belonging to the multiple other edge devices. Advantageously, in one embodiment, the chat is a group chat, and the step of sending the chat message recovery request includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one or more embodiments, the chat message recovery request is sent to a selected group of participants in the group chat, or to all participants in the group chat.
[0007] In one or more embodiments, the chat message recovery request identifies a number of missing chat messages of the chat to be recovered on the edge device, and the receiving step includes receiving a number of copies of one or more missing chat messages of the chat from a number of other edge devices on the edge device, and the chat messages of the chat received on the edge device from the number of other edge devices are sorted by timestamp. Advantageously, a number of missing chat messages of a chat may be identified for recovery in a chat message recovery request, and the computer implementation method facilitates, for example, the identification of multiple copies of one or more missing chat messages of the chat on the edge device by receiving a number of copies of one or more missing chat messages of the chat from a number of other edge devices on the edge device, and sorting the chat messages of the chat received on the edge device from the number of other edge devices by timestamp.
[0008] In one embodiment, the computer implementation method further comprises the steps of: obtaining a deduplicated chat message of the chat by deduplication of duplicate chat messages received from the plurality of other edge devices at the edge device; and presenting the deduplicated chat message of the chat to the user at the edge device. Advantageously, the computer implementation method obtains a deduplicated chat message of the chat for presentation to the user by deduplication of duplicate chat messages received from the plurality of other edge devices at the edge device. Deduplication of chat messages reduces the amount of chat message data to be stored at the edge device, thereby facilitating processing within the edge device.
[0009] In one embodiment, the presenting step includes the step of the edge device displaying the deduplicated chat messages, which have been reinserted chronologically within the chat. In another embodiment, the presenting step includes the step of the edge device displaying the deduplicated chat messages separately from the chat, in precise chronological order. Advantageously, the step of presenting the deduplicated chat messages of a chat to the user may include either the step of reinserting the deduplicated chat messages chronologically within the chat for display to the user, or the step of the edge device displaying the deduplicated chat messages separately from the chat, for example, as an overlay if desired, in precise chronological order.
[0010] In one or more embodiments, the chat message location request includes a chat message search request, wherein the at least one search parameter includes at least one search term for searching the content of chat messages within the chat. In one embodiment, the at least one missing chat message received on the edge device includes content-related results based on the at least one search term. Advantageously, a selective search for at least one missing chat message is provided for the edge device, where the chat message location request is a chat message search request, and the at least one search parameter includes at least one search term for searching the content of chat messages within the chat. In this way, a user can initiate a distributed search for at least one search term on other edge devices and receive content-related results based on the at least one search term on the user's edge device.
[0011] In one or more embodiments, the step of sending the chat message search request includes sending the chat message search request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one embodiment, multiple copies of one or more chat messages of the chat are received at the edge device from the multiple other edge devices and sorted by timestamp. In one or more embodiments, the computer implementation method further includes the steps of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat, and the edge device presenting the deduplicated chat messages of the chat to the user. Advantageously, the chat message search request may be sent to a selected group of participants to search for at least one search term in the chat messages stored locally in the chat. Furthermore, the computer implementation method includes the step of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat for the edge device to present to the user, thereby facilitating processing within the edge device.
[0012] Computer systems and computer program products relating to one or more embodiments are also described and claimed herein. Furthermore, services relating to one or more embodiments are also described and claimed herein.
[0013] Additional features and advantages are realized through the techniques described herein. Other embodiments and aspects are described in detail herein and are considered to be part of the claimed embodiments. [Brief explanation of the drawing]
[0014] One or more embodiments are specifically identified and explicitly claimed as examples in the claims at the end of this specification. The objects, features, and advantages of the foregoing and one or more embodiments are evident from the embodiments for carrying out the following inventions, as interpreted in conjunction with the accompanying drawings.
[0015] [Figure 1] This invention includes one or more embodiments and illustrates one example of a computing environment using the same.
[0016] [Figure 2-1] Figures 2A and 2B show one example of the chat message location module of Figure 1, which includes a message data retrieval submodule and a message data recovery submodule according to one or more aspects of the present invention. [Figure 2-2] Figure 2C shows one example of the chat message location module of Figure 1, which includes a message data retrieval submodule and a message data recovery submodule according to one or more aspects of the present invention.
[0017] [Figure 3-1] Figure 3A shows one example of a chat message recovery process according to one or more embodiments of the present invention.
[0018] [Figure 3-2] Figure 3B shows one example of a chat message search (and optional retrieval) process according to one or more embodiments of the present invention.
[0019] [Figure 4-1] Figure 4A shows another embodiment of a computing environment that includes one or more aspects of the present invention and uses them.
[0020] [Figure 4-2]Figure 4B shows only one example of a message format transmitted via a messaging application with end-to-end encryption that incorporates and uses chat message location identification processing according to one or more aspects of the present invention.
[0021] [Figure 5-1] Figure 5A shows one example of a chat message restoration process according to one or more aspects of the present invention. [Figure 5-2] Figure 5B shows one example of a chat message restoration process according to one or more aspects of the present invention. [Figure 5-3] Figures 5C and 5D show one example of a chat message restoration process according to one or more aspects of the present invention.
[0022] [Figure 6-1] Figure 6A shows another example of a chat message restoration process according to one or more aspects of the present invention. [Figure 6-2] Figure 6B shows another example of a chat message restoration process according to one or more aspects of the present invention. [Figure 6-3] Figure 6C shows another example of a chat message restoration process according to one or more aspects of the present invention. [Figure 6-4] Figure 6D shows another example of a chat message restoration process according to one or more aspects of the present invention. [Figure 6-5] Figure 6E shows another example of a chat message restoration process according to one or more aspects of the present invention.
[0023] [Figure 7-1] Figure 7A shows a further example of a chat message search and restoration process according to one or more aspects of the present invention. [Figure 7-2] Figure 7B shows a further example of a chat message search and restoration process according to one or more aspects of the present invention. [Figure 7-3]Figure 7C shows a further example of a chat message retrieval and retrieval process according to one or more aspects of the present invention. [Figure 7-4] Figure 7D shows a further example of a chat message retrieval and recovery process according to one or more aspects of the present invention. [Figure 7-5] Figure 7E shows a further example of a chat message retrieval and recovery process according to one or more embodiments of the present invention. [Figure 7-6] Figure 7F shows a further example of a chat message search and recovery process according to one or more aspects of the present invention. [Figure 7-7] Figure 7G shows a further example of a chat message search and recovery process according to one or more aspects of the present invention. [Figure 7-8] Figure 7H shows a further example of a chat message retrieval and recovery process according to one or more aspects of the present invention. [Figure 7-9] Figure 7I shows a further example of a chat message retrieval and recovery process according to one or more aspects of the present invention. [Modes for carrying out the invention]
[0024] In one or more embodiments, a computer implementation method for facilitating processing within a computing environment is disclosed herein. The computer implementation method comprises the step of sending a chat message location request via an end-to-end encrypted messaging system from a user's edge device to at least one other edge device of at least one other participant in a chat with the user. The chat message location request identifies at least one lookup parameter for the at least one missing chat message of the chat on the edge device. Based on the step of sending the chat message location request, the computer implementation method further comprises the step of receiving the at least one missing chat message of the chat identified via the at least one lookup parameter from the at least one other edge device at the edge device. Advantageously, improved processing within a computing environment is provided. In particular, a computer implementation method for facilitating the location of one or more missing chat messages of a chat is provided for edge devices, wherein the chat is via an end-to-end encrypted messaging system.
[0025] In one or more embodiments, the chat message location request includes a chat message recovery request, wherein the at least one missing chat message identified via the at least one lookup parameter is at least one missing chat message of the chat to be recovered on the edge device. In one embodiment, the at least one lookup parameter is at least one metadata attribute of the at least one missing chat message. In one or more embodiments, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message. Advantageously, an edge device mechanism is provided to selectively recover at least one missing chat message of a chat via an end-to-end encrypted messaging system on the edge device. Using at least one lookup parameter, at least one missing chat message is located on at least one other edge device and returned to the edge device of the user whose chat message is missing. Selective location and recovery of at least one missing chat message is provided when at least one lookup parameter is at least one metadata attribute of the missing chat message.
[0026] In one or more embodiments, a chat message recovery request further identifies a pagination parameter, the pagination parameter identifying the maximum number of missing chat messages to be received based on the chat message recovery request. In one embodiment, the receiving step includes receiving up to x missing chat messages of the chat from the at least one other edge device, where x is identified by the pagination parameter. In one embodiment, the method further includes sending a further chat message recovery request from the edge device to the at least one other edge device of the at least one other participant in the chat for the next set of x missing chat messages of the chat. Advantageously, by providing a pagination parameter that identifies the number of missing chat messages to be received based on the chat message recovery request, selective bulk recovery of multiple missing chat messages on the edge device is enabled. In one or more implementations, pagination may be used to enable selective bulk recovery of messages forward or backward from a particular chat message identified by at least one metadata attribute. In addition, selective batch restoration of messages may be repeated by sending further chat message restoration requests from the edge device to at least one other edge device for the next set of x missing chat messages in the chat. In one embodiment, pagination may continue until all requested missing chat messages have been restored on the edge device.
[0027] In one or more embodiments, the step of sending the chat message recovery request includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat, where the at least one other device is at least one other edge device belonging to the multiple other edge devices. Advantageously, in one embodiment, the chat is a group chat, and the step of sending the chat message recovery request includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one or more embodiments, the chat message recovery request is sent to a selected group of participants in the group chat, or to all participants in the group chat.
[0028] In one or more embodiments, the chat message recovery request identifies a number of missing chat messages of the chat to be recovered on the edge device, and the receiving step includes receiving a number of copies of one or more missing chat messages of the chat from a number of other edge devices on the edge device, and the chat messages of the chat received on the edge device from the number of other edge devices are sorted by timestamp. Advantageously, if a number of missing chat messages of a chat are identified for recovery in a chat message recovery request, and the computer implementation method receives a number of copies of one or more missing chat messages of the chat from a number of other edge devices on the edge device, and the chat messages of the chat received on the edge device from the number of other edge devices are sorted by timestamp, it facilitates, for example, the identification of a number of copies of one or more missing chat messages of the chat on the edge device.
[0029] In one embodiment, the computer implementation method further comprises the steps of: obtaining a deduplicated chat message of the chat by deduplication of duplicate chat messages received from the plurality of other edge devices at the edge device; and presenting the deduplicated chat message of the chat to the user at the edge device. Advantageously, the computer implementation method obtains a deduplicated chat message of the chat for presentation to the user by deduplication of duplicate chat messages received from the plurality of other edge devices at the edge device. Deduplication of chat messages reduces the amount of chat message data to be stored at the edge device, thereby facilitating processing within the edge device.
[0030] In one embodiment, the presenting step includes the step of the edge device displaying the deduplicated chat messages, which have been reinserted chronologically within the chat. In another embodiment, the presenting step includes the step of the edge device displaying the deduplicated chat messages separately from the chat, in precise chronological order. Advantageously, the step of presenting the deduplicated chat messages of a chat to the user may include either the step of reinserting the deduplicated chat messages chronologically within the chat for display to the user, or the step of the edge device displaying the deduplicated chat messages separately from the chat, for example, as an overlay if desired, in precise chronological order.
[0031] In one or more embodiments, the chat message location request includes a chat message search request, wherein the at least one search parameter includes at least one search term for searching the content of chat messages within the chat. In one embodiment, the at least one missing chat message received on the edge device includes content-related results based on the at least one search term. Advantageously, a selective search for at least one missing chat message is provided for the edge device, where the chat message location request is a chat message search request, and the at least one search parameter includes at least one search term for searching the content of chat messages within the chat. In this way, a user can initiate a distributed search for at least one search term on other edge devices and receive content-related results based on the at least one search term on the user's edge device.
[0032] In one or more embodiments, the step of sending the chat message search request includes sending the chat message search request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one embodiment, multiple copies of one or more chat messages of the chat are received at the edge device from the multiple other edge devices and sorted by timestamp. In one or more embodiments, the computer implementation method further includes the steps of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat, and the edge device presenting the deduplicated chat messages of the chat to the user. Advantageously, the chat message search request may be sent to a selected group of participants to search for at least one search term in the chat messages stored locally in the chat. Furthermore, the computer implementation method includes the step of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat for the edge device to present to the user, thereby facilitating processing within the edge device.
[0033] In another embodiment, a computer system is provided for facilitating processing within a computing environment. The computer system comprises memory and at least one processor in communication with the memory, and the computer system is configured to perform a method. The method includes the step of sending a chat message location request from a user's edge device to at least one other edge device of at least one other participant in a chat with the user, using an end-to-end encrypted messaging system. The chat message location request identifies at least one lookup parameter for at least one missing chat message on the edge device. Based on the step of sending the chat message location request, the at least one edge device receives the at least one missing chat message of the chat identified via the at least one lookup parameter from the at least one other edge device. Advantageously, improved processing within a computing environment is provided. In particular, the method facilitates the location of one or more missing chat messages of a chat for edge devices, where the chat is via an end-to-end encrypted messaging system.
[0034] In one or more embodiments, the chat message location request includes a chat message recovery request, wherein the at least one missing chat message identified via the at least one lookup parameter is at least one missing chat message of the chat to be recovered on the edge device, and the at least one lookup parameter is at least one metadata attribute of the at least one missing chat message. In one embodiment, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message. Advantageously, an edge device mechanism is provided to selectively recover at least one missing chat message of a chat via an end-to-end encrypted messaging system on the edge device. Using at least one lookup parameter, the at least one missing chat message is located on at least one other edge device and returned to the edge device of the user who is missing the chat message. Selective location and recovery of at least one missing chat message is provided when the at least one lookup parameter is at least one metadata attribute of the missing chat message.
[0035] In one embodiment, a chat message recovery request further identifies a pagination parameter, which identifies the maximum number of missing chat messages to be recovered based on the chat message recovery request. In one embodiment, the receiving step includes receiving a set of x missing chat messages of the chat from at least one other edge device at the edge device, where x is identified by the pagination parameter. Advantageously, by providing a pagination parameter that identifies the number of missing chat messages to be received based on the chat message recovery request, selective bulk recovery of multiple missing chat messages on the edge device is enabled. In one or more implementations, pagination may be used to enable selective bulk recovery of messages forward or backward from a particular chat message identified by at least one metadata attribute. In addition, selective bulk recovery of messages may be repeated by sending further chat message recovery requests from the edge device to at least one other edge device for the next set of x missing chat messages of the chat. In one embodiment, pagination can be repeated until all requested missing chat messages are recovered on the edge device.
[0036] In one or more embodiments, the sending step includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat, where the at least one other edge device is at least one other edge device belonging to the multiple other edge devices. Advantageously, in one embodiment, the chat is a group chat, and the sending step includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one or more embodiments, the chat message recovery request is sent to a selected group of participants in the group chat, or to all participants in the group chat.
[0037] In one embodiment, the chat message restoration request identifies a number of missing chat messages of the chat to be restored on the edge device, and the receiving step includes receiving on the edge device a number of copies of one or more chat messages of the chat that were missing on the edge device from the number of other edge devices. In one embodiment, the chat messages of the chat received on the edge device from the number of other edge devices are sorted by timestamp, and the method further includes the steps of deduplication on the edge device to obtain the deduplicated chat messages of the chat, and the edge device presenting the deduplicated chat messages of the chat to the user. In one embodiment, the presenting step includes the edge device displaying the deduplicated chat messages reinserted chronologically within the chat. Advantageously, multiple missing chat messages in a chat are identified for restoration in a chat message restoration request, and the computer implementation method receives multiple copies of one or more missing chat messages from multiple other edge devices at the edge device, and the chat messages of the chat received at the edge device from multiple other edge devices are sorted by timestamp to facilitate, for example, the identification of multiple copies of one or more missing chat messages at the edge device. Advantageously, the computer implementation method deduplication of the duplicate messages of the chat received from the multiple other edge devices at the edge device to obtain the deduplication of the chat message for presentation to the user. Deduplication of chat messages reduces the amount of chat message data that would be stored at the edge device, thereby facilitating processing within the edge device.
[0038] In one embodiment, the chat message location request includes a chat message search request, wherein the at least one search parameter includes at least one search term for searching the content of chat messages within the chat, and the at least one missing chat message received on the edge device includes content-related results based on the at least one search term. Advantageously, a selective search for at least one missing chat message is provided for the edge device, where the chat message location request is a chat message search request, and the at least one search parameter includes at least one search term for searching the content of chat messages within the chat. In this way, a user can initiate a distributed search for at least one search term on other edge devices and receive content-related results based on the at least one search term on the user's edge device.
[0039] In one or more embodiments, the step of sending the chat message search request includes sending the chat message search request from the user's edge device to multiple other edge devices of multiple other participants in the chat. In one embodiment, multiple copies of one or more chat messages of the chat are received at the edge device from the multiple other edge devices and sorted by timestamp. In one implementation, the method includes the steps of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat, and the edge device presenting the deduplicated chat messages of the chat to the user. Advantageously, the chat message search request may be sent to a selected group of participants to search for at least one search term in the chat messages stored locally in the chat. Furthermore, the computer implementation method includes the step of the edge device deduplicating the duplicate messages of the chat received from the multiple other edge devices to obtain the deduplicated chat messages of the chat for the edge device to present to the user, thereby facilitating processing within the edge device.
[0040] In a further embodiment, a computer program product is provided for facilitating processing within a computing environment. The computer program product includes one or more computer-readable storage media and program instructions embodied therein. The program instructions are readable by a processing circuit to cause the processing circuit to execute a method having the step of sending a chat message location request via an end-to-end encrypted messaging system from the user's edge device to at least one other edge device of at least one other participant in a chat with the user. The chat message location request identifies at least one lookup parameter for at least one missing chat message of the chat on the edge device. The method, based on the step of sending the chat message location request, comprises the step of receiving the at least one missing chat message of the chat identified via the at least one lookup parameter from the at least one other edge device at the edge device. Advantageously, improved processing within a computing environment is provided. In particular, a method is provided to facilitate the location of one or more missing chat messages for an edge device, where the chat is via an end-to-end encrypted messaging system.
[0041] In one or more embodiments, the chat message location request includes a chat message recovery request, wherein the at least one missing chat message identified via the at least one lookup parameter is at least one missing chat message of the chat to be recovered on the edge device, and the at least one lookup parameter is at least one metadata attribute of the at least one missing chat message. In one embodiment, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message. Advantageously, an edge device mechanism is provided to selectively recover at least one missing chat message of a chat via an end-to-end encrypted messaging system on the edge device. Using at least one lookup parameter, at least one missing chat message can be located on at least one other edge device and returned to the edge device of the user who is missing the chat message. Selective location and recovery of at least one missing chat message is provided when at least one lookup parameter is at least one metadata attribute of the missing chat message.
[0042] As described, the messaging system provides a channel or pipeline for communication between messaging applications running on different user edge devices, including sending and receiving chat messages. Edge devices may be or include a variety of edge devices capable of sending and receiving chat message data, such as smartphones, computers, laptops, and tablets.
[0043] Various messaging systems or services exist, including instant messaging over the internet. Instant messaging technology is a type of online chat that enables real-time message transmission over the internet or another computer network. Certain messaging systems, such as certain instant messaging systems, are end-to-end encrypted messaging systems that store messages only via local-based edge device storage, i.e., without any server storage such as cloud-based server storage for messages. End-to-end encrypted messaging systems maintain the security of chat messages during transmission between ends, i.e., between edge devices. In implementation, messaging applications running on edge devices include an encryption / decryption module or process that encrypts chat messages before sending them to one or more other edge devices via the messaging system, and decrypts encrypted messages received from one or more other edge devices. In this way, confidentiality is maintained during the transmission of chat messages. Various messaging applications use end-to-end encryption to ensure private communication between users. The advantage of end-to-end encryption is that unauthorized persons cannot access messages.
[0044] The problem arises when a user loses the ability to access one or more chat messages on their edge device, which may occur, for example, in relation to a chat using an end-to-end encrypted messaging system where message data is stored locally only. As used herein, one or more missing chat messages (i.e., lost data) include message data that the user previously received but for which there is currently no way to restore, retrieve, copy, or move, neither on the local device nor from backups on the user's local edge device, the messaging system's server, or cloud-based storage. Chat messages may be missing (i.e., lost) from the user's edge device for a variety of reasons, such as the user's edge device breaking, failing, being misplaced, or otherwise being lost, and the messaging system not being backed up. Even if the user performs backups regularly, such as weekly, the user's edge device may break or be lost between backups, and therefore chat message data created between backups may be lost from the user's edge device. In another example, the user may have deleted one or more chat messages from a chat, either intentionally or accidentally. In such cases, message data is lost and will not be included in future backups of the messaging system data, nor will it be included if the user changes phones and moves existing message data to the new phone.
[0045] In an end-to-end encrypted messaging system, only participants in a chat have access to chat messages, and the messaging system's server provides a channel or pipeline for communication between messaging applications running on different user edge devices. In one or more embodiments, chat message localization mechanisms or modules are disclosed herein that provide selective retrieval and recovery of missing chat messages (i.e., lost data) within an end-to-end encrypted messaging system while still respecting message privacy. The computer implementations, computer systems, and computer program products disclosed herein are for cases where missing chat messages are stored only on the edge devices of chat participants, such as in a group chat using an end-to-end encrypted messaging system.
[0046] One or more aspects of the present invention are incorporated into a computing environment and executed and / or used by the computing environment. For example, the computing environment can be of various architectures and various types, including, but not limited to, personal computing, client-server, distributed, virtual, emulation, partitioned, unpartitioned, cloud-based, quantum, grid, time-sharing, cluster, peer-to-peer, mobile, any other type of environment and / or configuration including any type of edge device having one or more nodes, having one or more processors, and / or executing one (or more) processes, for example, chat message localization processing (e.g., chat message retrieval and / or recovery processing) as disclosed herein. The aspects of the present invention are not limited to a particular architecture or environment.
[0047] Various aspects of this disclosure are described by explanatory text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of computer program products (CPPs). With respect to any flowchart, depending on the technology involved, operations may be performed in a different order than those shown in a given flowchart. For example, also depending on the technology involved, two operations shown in consecutive blocks of a flowchart may be performed in reverse order, as a single integrated stage, simultaneously, or with at least partial time overlap.
[0048] Embodiments of a computer program product ("CPP Embodiment" or "CPP") are terms used in this disclosure to describe any set of one or more storage media ("mediums") that are collectively comprised of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. A "storage device" is any tangible device capable of holding and storing instructions for use by a computer processor. Computer-readable storage media may, but are not limited to, electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, mechanical storage media, or any preferred combination thereof. Some known types of storage devices, including these media, include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as pits / lands formed on the main surface of a punch card or disk), or any suitable combination of those described above. When the term "computer-readable storage medium" is used in this disclosure, it shall not be construed as storage in the form of a transient signal itself, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses passing through optical fiber cables, electrical signals transmitted through wires, and / or other transmitting media.As will be understood by those skilled in the art, data is typically moved at several intermittent points during the normal operation of a storage device, such as during access, defragmentation, or garbage collection; however, since data is not transient while it is stored, this does not mean that the storage device is transient.
[0049] The computing environment 100 includes an example of an environment for executing at least a portion of the computer code involved in performing the method of the present invention, such as the chat message localization module block 200. In addition to block 200, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor set 110 (including processing circuits 120 and a cache 121), a communication fabric 111, volatile memory 112, persistent storage 113 (including the operating system 122 and block 200 as identified above), a peripheral device set 114 (including a user interface (UI), a device set 123, storage 124, and an Internet of Things (IoT) sensor set 125), and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140, a cloud orchestration module 141, a host physical machine set 142, a virtual machine set 143, and a container set 144.
[0050] Computer 101 may take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch, or other wearable computer, mainframe computer, quantum computer, or any other form of computer or mobile device, currently known or to be developed in the future, capable of running programs, accessing networks, or querying databases such as remote database 130. As is well understood in the field of computer technology, and depending on the technology, the execution of a computer implementation method may be distributed among multiple computers and / or multiple locations. On the other hand, in this presentation of the computing environment 100, in order to keep the presentation as concise as possible, the detailed discussion focuses on a single computer, specifically computer 101. Although computer 101 is not shown in the cloud in Figure 1, it may be located in the cloud. On the other hand, computer 101 is not required to be located in the cloud, except to any extent that can be definitively shown.
[0051] The processor set 110 includes one or more computer processors of any type currently known or to be developed in the future. The processing circuitry 120 may be distributed across multiple packages, for example, multiple coordinated integrated circuit chips. The processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. The cache 121 is memory located within the processor chip package and is typically used for data or code that should be available for high-speed access by threads or cores running on the processor set 110. The cache memory is typically organized into multiple levels depending on its relative proximity to the processing circuitry. Alternatively, some or all of the cache for the processor set may be located "off-chip". In some computing environments, the processor set 110 may operate using qubits and be designed to perform quantum computing.
[0052] Computer-readable program instructions are typically loaded onto computer 101, causing the processor set 110 of computer 101 to execute a series of operational steps, thereby enabling the computer implementation method. As a result, the instructions thus executed instantiate the method specified in the flowcharts and / or descriptions of the computer implementation method contained herein (collectively referred to as the "Method of the Invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by the processor set 110 to control and direct the execution of the Method of the Invention. In computing environment 100, at least some of the instructions for executing the Method of the Invention may be stored in block 200 in persistent storage 113.
[0053] The communication fabric 111 is a signal conduction path that enables various components of the computer 101 to communicate with one another. Typically, this fabric is made up of switches and conductive paths, such as buses, bridges, physical input / output ports, and similar components. Other types of signal communication paths, such as optical fiber communication paths and / or wireless communication paths, may be used.
[0054] Volatile memory 112 is any type of volatile memory currently known or to be developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Volatile memory typically features random access, but this is not required unless explicitly stated. In computer 101, volatile memory 112 is located in a single package and resides inside computer 101, but alternatively or additionally, volatile memory may be distributed across multiple packages and / or located externally to computer 101.
[0055] The persistent storage 113 is any form of non-volatile storage for a computer that is currently known or may be developed in the future. The non-volatility of this storage means that the stored data is maintained regardless of whether power is supplied directly to the computer 101 and / or to the persistent storage 113. The persistent storage 113 may be read-only memory (ROM), but typically at least a portion of the persistent storage allows for writing, deleting, and rewriting of data. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. The operating system 122 can take multiple forms, such as various known proprietary operating systems or open-source portable operating system interface type operating systems employing a kernel. The code contained in block 126 typically includes at least some computer code involved in performing the method of the present invention.
[0056] The peripheral device set 114 includes a set of peripheral devices for the computer 101. Data communication connections between the computer 101's peripheral devices and other components can be implemented in various ways, including Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cables (such as universal serial bus (USB) type cables), insert-type connections (e.g., secure digital (SD) cards), connections made through local area communication networks, and even connections made through wide area networks such as the internet. In various embodiments, the UI device set 123 may include components such as a display screen, speaker, microphone, wearable devices (such as goggles and smartwatches), keyboard, mouse, printer, touchpad, game controller, and haptic devices. Storage 124 is external storage such as an external hard drive, or insertable storage such as an SD card. Storage 124 may be persistent and / or volatile. In some embodiments, storage 124 may take the form of a quantum computing memory device for storing data in the form of qubits. In embodiments where computer 101 is required to have a large amount of storage (for example, computer 101 locally stores and manages a large database), this storage may be provided by peripheral storage devices designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. The IoT sensor set 125 consists of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another may be a motion detector.
[0057] The network module 115 is a collection of computer software, hardware, and firmware that enables computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware such as a modem or Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for transmission over the communication network, and / or web browser software for communicating data over the internet. In some embodiments, the network control and network forwarding functions of the network module 115 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing Software-Defined Networking (SDN)), the control and forwarding functions of the network module 115 are performed on physically separate devices, such that the control function manages multiple different network hardware devices. Computer-readable program instructions for performing the methods of the present invention can typically be downloaded from an external computer or external storage device to computer 101 via a network adapter card or network interface included in the network module 115.
[0058] WAN102 is any wide area network (e.g., the Internet) that can communicate computer data over non-local distances using any currently known or future-developed technology for communicating computer data. In some embodiments, the WAN may be replaced and / or complemented by a local area network (LAN), such as a Wi-Fi network, designed to communicate data between devices located in a local area. The WAN and / or LAN typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.
[0059] An end-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of the company operating computer 101) and can take any of the forms described above in relation to computer 101. EUD 103 typically receives useful and valuable data from the operation of computer 101. For example, in a hypothetical case where computer 101 is designed to provide recommendations to an end-user, these recommendations would typically be communicated from computer 101's network module 115 to EUD 103 via WAN 102. In this way, EUD 103 can display or otherwise present the recommendations to the end-user. In some embodiments, EUD 103 may be a client device such as a thin client, heavy client, mainframe computer, and desktop computer or similar.
[0060] The remote server 104 is any computer system that provides at least some data and / or functions to computer 101. The remote server 104 may be controlled and used by the same entity that operates computer 101. The remote server 104 represents a machine that collects and stores useful and valuable data for use by other computers, such as computer 101. For example, in a hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, this historical data may be provided to computer 101 from the remote database 130 of the remote server 104.
[0061] The public cloud 105 is any computer system available for use by multiple entities, providing on-demand availability of computer system resources and / or other computing capabilities, particularly data storage (cloud storage) and computing power, without direct active management by the user. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct active management of the computing resources of the public cloud 105 is performed by the computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that make up the host physical machine set 142, which is the universe of physical computers within and / or available in the public cloud 105. The virtual computing environment (VCE) typically takes the form of virtual machines from the virtual machine set 143 and / or containers from the container set 144. These VCEs are understood to be stored as images and can be transferred either as images or after instantiation of the VCE, among and between hosts of various physical machines. The cloud orchestration module 141 manages the transfer and storage of images, deploys new VCE instances, and manages active instances of the VCE deployment. The gateway 140 is a collection of computer software, hardware, and firmware that enables the public cloud 105 to communicate over the WAN 102.
[0062] Here, some further explanation of virtualized computing environments (VCEs) is provided. A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from an image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to an operating system feature in which the kernel allows for the existence of multiple isolated user-space instances called containers. These isolated user-space instances typically behave like actual computers in terms of the programs running within them. Computer programs running on a normal operating system can utilize all of that computer's resources, including connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, programs running inside a container can only use the contents of the container and the devices allocated to the container; this feature is known as containerization.
[0063] The private cloud 106 is similar to the public cloud 105, except that its computing resources are available only for use by a single enterprise. While the private cloud 106 is shown as being in communication with the WAN 102, in other embodiments, the private cloud may be completely isolated from the internet and accessible only through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), often implemented by different vendors. Each of the multiple clouds remains a separate, discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the multiple configured clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.
[0064] The computing environment described above is merely one example of a computing environment that incorporates, runs, and / or uses one or more aspects of the present invention. Other examples are possible. Furthermore, in one or more embodiments, one or more of the components / modules in Figure 1 do not need to be included in the computing environment and / or are not used for one or more aspects of the present invention. Furthermore, in one or more embodiments, additional and / or other components / modules may be used. Other variations are possible.
[0065] As an example, one or more embodiments of the chat message location module and process will first be described with reference to Figures 2A to 3B. Figures 2A to 2C show one embodiment of the chat message location module 200, which includes code or instructions for performing chat message retrieval and / or recovery processing according to one or more aspects of the present invention, and Figures 3A to 3B show embodiments of the chat message recovery process and the chat message retrieval (and recovery) process according to one or more aspects of the present invention, respectively.
[0066] Referring to Figures 1 and 2, the chat message location module 200 includes, in one example, various submodules used to perform processing according to one or more aspects of the present invention. The submodules are, for example, computer-readable program code (e.g., instructions) and computer-readable media (e.g., persistent storage (e.g., persistent storage 113 such as a disk) and / or cache (e.g., cache 121)). The computer-readable media are part of a computer program product and may be executed by and / or using one or more computers such as computer 101; processors such as the processor of processor set 110; and / or processing circuits such as the processing circuits of processor set 110.
[0067] In the embodiment shown in Figure 2A, exemplary submodules of the chat message location module 200 include, for example, an optional message data retrieval submodule 202, one embodiment of which is shown in Figure 2B, and a message data recovery submodule 204, one embodiment of which is shown in Figure 2C.
[0068] In the embodiment shown in Figure 2B, the message data retrieval submodule 202 includes a chat message retrieval request sending submodule 210 for sending a chat message retrieval request from the user's edge device to at least one other edge device of at least one other participant in the chat, where the chat message retrieval request identifies one or more search terms for locally searching for the content of chat messages in the chat. Furthermore, in one embodiment, the message data retrieval submodule 202 includes a missing chat message receiving submodule 212 for receiving at least one missing chat message on the user's edge device from at least one other edge device, based on sending a chat message retrieval request, having content-related results based on at least one search term. Furthermore, the message data retrieval submodule 202 includes a deduplication submodule 214 for the received chat messages, which removes or merges duplicate chat messages in the received chat. For example, in one embodiment, sending a chat message search request includes sending a chat message search request from the user's edge device to multiple other edge devices of multiple other participants in a chat, where the chat messages of the chat received on the user's edge device from the multiple other edge devices are sorted by timestamp and include multiple copies or duplicates of a given chat message, the duplicates of which are removed by the deduplication submodule 214 of the relevant chat messages. Note that in one or more embodiments, deduplication refers to message data deduplication, which is a process for eliminating extra or duplicate copies of data such as message data. By combining or removing duplicate copies, improved storage utilization can be obtained, for example, on the user's edge device. In one embodiment, the deduplication process compares chat messages sorted by timestamp to identify duplicate copies of a particular chat message.If duplicate copies are identified, only one copy of the chat message will be retained, and one or more other copies will be deleted.
[0069] In one or more embodiments, the message data retrieval submodule 202 also includes a deduplicated chat message presentation submodule 216 for the edge device to present chat messages of a chat that have been deduplicated and sorted by timestamp to the user. In one embodiment, presenting deduplicated chat messages includes displaying deduplicated chat messages of a chat. For example, in only one embodiment, displaying deduplicated chat messages may include the edge device displaying deduplicated chat messages separately from the chat, in precise chronological order. For example, messages may be overlaid on the edge device's display interface, allowing the user to view and / or select one or more messages from among the displayed chat messages. For example, in one or more embodiments, the user selects a chat message of deduplicated chat messages displayed for restoration on the user's edge device within the chat, along with a maximum number x preceding or succeeding chat messages, defined by a pagination parameter associated with a chat message restoration request, as described below with reference to Figure 2C (in one embodiment). Optionally, in one or more embodiments, a search request submodule 218 for the next pagination of missing chat messages is further included to facilitate the messaging application sending a next pagination chat message search request from the user's edge device to at least one other edge device of at least one other participant in the chat for the next set of x chat messages having content-related results based on at least one search term.
[0070] Figure 2C shows one embodiment of the Message Data Recovery submodule 204, which includes a Chat Message Data Recovery Request Sending submodule 220 that, for example, uses a messaging application to send a chat message recovery request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user, via an end-to-end encrypted messaging system. The chat message recovery request identifies at least one metadata attribute of at least one missing chat message of the chat that will be recovered on the user's edge device. Note that in one embodiment, a chat message recovery request sent to at least one other edge device of at least one other participant in a chat using an end-to-end encrypted messaging system is received on at least one other edge device, and a local messaging application lookup mechanism on at least one other edge device identifies, based on at least one lookup parameter, at least one missing chat message of the chat on at least one other edge device to return to the user's edge device.
[0071] The Message Data Recovery submodule 204 further includes a Missing Chat Message Receive submodule 222, which receives at least one missing chat message of a chat that will be restored on the user's edge device, based on a chat message recovery request, and is identified by at least one metadata attribute. In addition, the Message Data Recovery submodule 204 includes, in one embodiment, a Received Chat Message Deduplication submodule 224, which deduplications duplicate copies of chat messages received from multiple other edge devices and sorted by timestamp, on the edge device, facilitating the deduplicated chat messages of the chat. In addition, the Message Data Recovery submodule includes a Deduplication Chat Message Presentation submodule 226, which enables the edge device to present the deduplicated and timestamp-sorted chat messages to the user. Optionally, a next pagination request submodule 228 for missing chat messages is included to facilitate the use of a messaging application to send a next pagination chat message restoration request from the user's edge device to at least one other edge device of at least one other participant in the chat for the next set of x chat messages, where the pagination attribute identifies the maximum number x chat messages to be received based on the chat message restoration request. In one embodiment, the pagination attribute identifying the maximum number (x) of messages to be received based on the chat message restoration request may be pre-configured or user-configurable. For example, in one embodiment, the pagination attribute may identify a set of forward or backward in-time chat messages that will be located on at least one other edge device and returned to the user's edge device. Just as an example, x may be 10, 100, 1000, etc., as desired for a particular request and / or use.
[0072] Advantageously, processing within the computing environment is facilitated by one or more embodiments of the chat message localization module mechanism disclosed herein. For example, the chat message localization module enables the recovery of missing chat messages of a type that is not currently recoverable in an end-to-end encrypted messaging system. Additionally, the recovery of a chat message is the selective recovery of at least one requested chat message. Advantageously, a selective search and recovery mechanism for missing chat messages is provided, thereby enabling the return of missing or lost chat messages in the messaging system to the user's edge device while still protecting the privacy of the message data itself. Privacy is maintained using the chat message localization mechanism because the end-to-end encrypted messaging system itself is used for sending and receiving data. That is, in one or more embodiments, the chat message localization module or mechanism is integrated within the end-to-end encrypted system. Furthermore, in one or more embodiments, any duplicate chat messages received from two or more other edge devices of two or more other participants in a chat are removed by deduplication.
[0073] While various submodules are described, it should be noted that the chat message location module processing, including the message data retrieval submodule processing (Figure 2B) and the message data recovery submodule processing (Figure 2C), may use or include additional, fewer, and / or different submodules. Certain submodules may contain additional or fewer codes, including the code of other submodules. Furthermore, additional and / or other modules may be used. Many variations are possible.
[0074] In one or more embodiments, submodules according to one or more aspects of the present invention are used to perform chat message localization processing. Figures 3A and 3B show examples of two chat message localization processes as disclosed herein. In one or more examples, the processing is performed by a computer (e.g., computer 101 (Figure 1)), and / or a processor or processing circuit (e.g., processor set 110 in Figure 1), for example, by one or more edge devices in a computing environment. In one example, the code or instructions that implement the process are part of a module such as the chat message localization module 200. In other examples, the code may be contained in one or more other modules, and / or one or more submodules of one or more of the other modules. A variety of options are available.
[0075] As one example, Figure 3A shows a chat message recovery process 300 running on a computer (e.g., computer 101 in Figure 1), a processor (e.g., the processor of the processor set 110 in Figure 1), and / or processing circuit (e.g., the processing circuit of the processor set 110), sending a chat message recovery request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user via a messaging system such as an end-to-end encrypted messaging system 302; and receiving at least one missing chat message from at least one other edge device on the user's edge device 304. In one embodiment, the chat message recovery process 300 further includes deduplication of any duplicate chat messages received on the user's edge device based on the message recovery request 306. For example, in one embodiment, sending includes using a messaging application to broadcast a chat message recovery request from the user's edge device to multiple other edge devices of multiple other users participating in a chat with that user, in which case receiving includes receiving multiple copies of one or more missing chat messages from the multiple other edge devices on the edge device, where the chat messages received on the user's edge device from the multiple other edge devices may already be sorted by timestamp, or may be sorted by timestamp on the user's edge device. If multiple copies of one or more chat messages exist, any duplicate copies of a chat message are deduplication or removed, for example, by deleting one or more extra copies.
[0076] Furthermore, in one embodiment, the chat message restoration process includes the edge device presenting the deduplicated chat messages to the user.308 For example, in one embodiment, presenting may include the edge device displaying the deduplicated chat messages that have been reinserted chronologically within the chat of the messaging system. In another embodiment, presenting may include the edge device displaying the deduplicated chat messages in precise chronological order, separately from the chat of the messaging system, for example, by an overlay window on the edge device's display interface. Furthermore, in one embodiment, the chat message recovery process 300 optionally includes sending a subsequent chat message recovery request pagination 310 from the user's edge device to at least one other edge device, where, for example, the chat message recovery request further identifies a pagination attribute, the pagination attribute identifies the number of preceding or succeeding messages to be located based on the message recovery request and returned to the edge device, where receiving the messages includes receiving a set of x messages on the user's edge device from at least one other edge device, where x is the maximum number of messages identified by the pagination attribute.
[0077] As another example, Figure 3B shows one embodiment of a chat message retrieval (and recovery) process 320 that runs on a computer (e.g., computer 101 in Figure 1), a processor (e.g., the processor of the processor set 110 in Figure 1), and / or processing circuit (e.g., the processing circuit of the processor set 110), which sends a chat message retrieval request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user via a messaging system such as an end-to-end encrypted messaging system 322. The user's edge device responds by receiving the relevant chat message search results 324. For example, in one embodiment, at least one search parameter of the chat message retrieval request includes at least one search term for searching for the content of chat messages in the chat, and the at least one missing chat message received at the edge device may include content-related results based on at least one search term.
[0078] In one embodiment, chat messages received from at least one other edge device are sorted by timestamp 326. The chat message retrieval (and retrieval) process 320 further includes, in one embodiment, deduplication of any duplicate chat messages received on the user's edge device based on a message retrieval request 328. As described, if multiple copies of one or more chat messages of a chat are received, any duplicate copies of any chat message can be deduplication or removed, for example, by deleting one or more extra copies.
[0079] Furthermore, in one embodiment, the chat message retrieval (and restoration) process 320 includes the edge device presenting the deduplicated chat messages to the user 330. For example, in one embodiment, presenting may include the edge device displaying the deduplicated chat messages in precise chronological order, separately from the chat of the messaging system, for example, by an overlay window on the display interface of the edge device. In one or more other embodiments, the deduplicated chat messages may, if desired, be reinserted chronologically into the chat of the messaging system. Optionally, the user may select one or more received chat messages to restore one or more chat messages to the chat on the user's edge device 332. In this case, the chat message retrieval (and restoration) process 320 performs the chat message restoration process as described above in relation to the example in Figure 3A 334.
[0080] Figure 4A shows another embodiment of a technical environment or system 400 in which various aspects of several embodiments of the present invention are implemented. In one embodiment, system 400 may be or include one or more systems 100 described above in relation to Figure 1. For example, system 400 includes one or more computing resources 410, such as one or more servers of a messaging system or application, which facilitates the establishment of a message pipeline or channel between a messaging application 422 running on a plurality of edge devices 420a, 420b, 420c, and 420d. In one or more embodiments, the edge devices 420a…420d may, in one embodiment only, execute program code such as a messaging application 422, which may include or be associated with encryption / decryption code 424, a chat message localization module 200 as described above in relation to Figures 1-2C, and message chat storage 426.
[0081] As described herein, in the embodiments shown, System 400 includes computing resources 410 (e.g., a processing server) that execute program code, such as messaging system code, to facilitate the provision of one or more message pipelines or communication channels of a messaging system between edge devices 420a...420d, enabling users of the edge devices to chat through the messaging system. As described herein, in one or more embodiments, chat messages relayed between edge devices via message pipelines or channels are encrypted at a source edge device (e.g., edge device A) and decrypted at receiving edge devices (e.g., edge device B, edge device C, and edge device D) for presentation to users of the receiving edge devices. The communication may span one or more networks 405. For example, Network 405 may be or include a telecommunications network, a local-area network (LAN), a wide-area network (WAN) such as the Internet, or a combination thereof, and may include wired, wireless, fiber optic connections, etc. The network may include one or more wired and / or wireless networks capable of transmitting and receiving data, including chat message location requests and missing chat message responses, as described herein. In one or more implementations, the network 405 may utilize any communication protocol (e.g., one or more wireless interconnection standards, Wi-Fi, cellular (e.g., 4G, 5G), Ethernet, etc.) that enables data to be transferred between components of the system 400.
[0082] As a further example, Figure 4B shows an example of a chat message in a messaging system, such as an end-to-end encrypted messaging system. In the example in Figure 4B, the chat message includes the message itself and selected metadata fields, such as a message ID field, a user ID field, and a Coordinated Universal Time (UTC) timestamp field. The data may include the actual bytes of encrypted message data, which are subsequently decrypted at the receiving edge device, as well as the type of message data, i.e., text, audio, image, video, etc., depending on the messaging system's capabilities.
[0083] Figures 5A to 5D show one example of a chat message recovery process according to one or more embodiments of the present invention.
[0084] In the example in Figure 5A, in one example where edge device A is edge device A420a of system 400 in Figure 4A, and edge device B is edge device B420b, the user notices that edge device A is missing one or more chat messages of a confidential chat with a chat participant using edge device B. Furthermore, it is assumed that the chat is a confidential chat using a messaging system with end-to-end encryption, and that the missing chat data is otherwise unavailable on edge device A, such as in the case where edge device A is partially broken, recently replaced, and / or there is no backup of the chat messages available on another confidential storage location of the user of edge device A, such as the messaging system server, edge device A, or cloud-based storage.
[0085] As described herein, in one or more embodiments, a chat message localization module or mechanism is associated with a messaging application running on edge devices A and B, which enables edge device A to send a chat message localization request via a messaging system, such as via an end-to-end encrypted messaging system, to at least one other edge device of at least one other participant in a chat with a user. In one embodiment, the chat message localization request identifies at least one lookup parameter for at least one missing chat message of a chat on the edge device. For example, in the case of a chat message recovery process, the chat message localization includes a chat message recovery request, where at least one missing chat message is at least one missing chat message of a chat that will be recovered on the edge device. In one or more embodiments, the chat message recovery request includes at least one lookup parameter, such as at least one metadata attribute of at least one missing chat message. For example, a chat message recovery request sent from edge device A to edge device B may include a chat message identifier (msg_id) and / or a UTC timestamp for the missing chat message.
[0086] One example of a chat message recovery request is shown in Figure 5B. However, those skilled in the art should note that this is only one specific example of a chat message recovery request as described herein. In the example in Figure 5B, the request includes data which may include metadata about the recovery request, including, for example, a message ID, a user ID, and / or a UTC timestamp, and at least one lookup parameter, such as at least one metadata attribute of the missing chat message to be recovered on the user's edge device. For example, the message ID of the missing chat message and / or a timestamp associated with the missing chat message may be provided as part of the data payload in the recovery request. In one or more embodiments, the chat message recovery request further includes a pagination parameter with a specified page size, and whether forward or backward paging is indicated, i.e., whether the receiving edge device should send the next x chat messages in the chat or x previous chat messages in the chat. In one or more embodiments, a restore request is retransmitted from the edge device to at least one other edge device of at least one other participant in the chat as a further pagination chat message restore request for the next set of x missing chat messages in the chat, which may occur any number of times desired to retrieve the entire chat or a portion of the entire chat.
[0087] Figures 5C and 5D show a series of chat messages sorted by timestamp, received at edge device A from edge device B in response to a chat message recovery request. As described, in one or more embodiments, the messaging system includes a local message retrieval function, which allows a messaging application running on edge device B to retrieve locally stored chat messages for an identified chat and locate at least one missing chat message that will be returned to edge device A based on the receipt of a chat message recovery request from edge device A.
[0088] Figures 6A to 6E show further examples of chat message recovery processing according to one or more embodiments of the present invention.
[0089] As shown in Figure 6A, in this example, edge device A sends chat message recovery requests to multiple other edge devices (edge devices B, C, and D) of multiple other participants in a chat with the user of edge device A, using a messaging system that employs end-to-end encryption where chat messages are stored locally only on the edge devices of the system. In one embodiment, edge devices A...edge devices D are edge devices A420a to D420d described above in relation to Figure 4A. In this example, the user of edge device A has lost or is missing chat messages in a group chat with other chat participants using edge devices B, C, and D. The chat message location module or mechanism disclosed herein enables edge device A to recover the missing chat messages by sending chat message recovery requests to one or more selected participant edge devices of the group of participants in the chat. Note that the selected participant edge devices may be one, some, or all of the participant edge devices in the group chat. Therefore, in the examples in Figures 6A to 6E, the users of edge devices A to D may be some of the users in the group chat, or all of the users in the group chat. In this regard, it should be noted that one or more users in a group chat may have different subsets of available chat messages, as each user may, intentionally or unintentionally, delete some or all of the messages in the group chat locally. In this regard, it should be noted that in one or more embodiments, a chat message recovery request sent from edge device A to edge device B...edge device D includes a chat message identifier (msg_id) and a UTC timestamp for the missing chat message.For example, if a specific chat message is missing on edge device B, edge device B may still respond with a chat message starting from the UTC timestamp of the recovery request.
[0090] As shown in Figure 6B, each participant edge device receiving a chat message recovery request—namely, edge devices B, C, and D in this example—returns the requested chat messages, sorted by timestamp, to the requesting edge device, namely (also in this example) edge device A. As described, this process is integrated with a messaging system that includes messaging applications running on edge devices B, C, and D, enabling the retrieval of chat messages locally stored in the messaging system on those edge devices. As shown in Figure 6C, some of the recovered chat messages received at edge device A may be duplicate messages (i.e., the same chat message is recovered from multiple different edge devices), and therefore, deduplication of messages on the receiving edge device, edge device A in this example, is desirable. This example is shown in Figure 6C, where each of edge devices B, C, and D has an incomplete copy of the group chat, and each sends available chat messages based on the chat message recovery request search parameters and / or any pagination parameters associated with the request. In this way, the chat message location module or mechanism enables the user to selectively restore a desired portion of a group chat, for example, from a specific message ID or a specific message timestamp. The chat messages returned to the requesting edge device are sorted (in one embodiment) by timestamp from the sending edge device. Message deduplication is performed on the receiving edge device, i.e., edge device A in the example of Figures 6A to 6D, and as a result, the desired segment of the chat messages of the group chat is restored to edge device A, as shown in Figure 6D.
[0091] Figure 6E shows a variation of the examples in Figures 6A-6D, where the pagination parameter is also provided in association with the chat message recovery request, allowing each chat message recovery request to provide a specified maximum number of missing chat messages. For example, the data portion of the chat message recovery request may include page_size as the pagination parameter, specifying the number of missing chat messages that will be returned based on the chat message recovery request. For example, a maximum of x missing chat messages in a chat may be requested in the recovery request, where x is the forward or backward direction of the x chat messages that will be returned in the chat, as identified by the pagination parameter. In one example, page_size is 10, 100, 1000, or any desired number of chat messages, and each edge device that receives the request will, upon receipt, send the next x chat messages in the desired direction of the group chat. Note that, if desired, pagination can be repeated until all requested chat messages have been recovered on the user's edge device. Furthermore, in one embodiment, if the user of edge device A loses their previous edge device and does not have a message backup, in that case, the metadata fields (msg_id or timestamp) are optional and are not provided by edge device A, the receiving edge devices (edge device B...edge device D) can use pagination to return results from the beginning of the message chat, which may be a method for restoring the entire message chat when a backup is not performed and the user's previous device is lost. Therefore, the restore requests (and search requests) discussed herein may be generated and sent without specifying metadata fields for specific missing chat messages, depending on the context.
[0092] Figures 7A to 7I illustrate further examples of a chat message retrieval and retrieval process according to one or more embodiments of the present invention. In this example, edge device A, which is the user's edge device, is used in a system as described above in relation to Figures 1 and 4A, where the user is participating in a group chat with several other participant edge devices, including edge devices B, C, and D, as described above in relation to Figures 4A to 6E. As shown in Figure 7A, the chat message location request is initially a chat message retrieval request from edge device A to selected participant edge devices in the group chat, which in the illustrated example include, just as an example, edge devices B, C, and D. As shown, in one embodiment, the chat message retrieval request may include at least one search term for searching for the content of chat messages in the chat, as well as a specific timestamp of a chat message in the group chat from which to retrieve content, for example.
[0093] Figure 7B shows an example of a chat message search request that includes multiple fields, including metadata fields and data fields. In the illustrated example, the metadata may include the message identifier of the chat message search request, the user identifier of the user who sent the search request, and the UTC timestamp of the search request. The data fields may include, for example, search terms for searching the content of chat messages in a chat on the receiving edge device, and, for example, just as an example, specifying that the search should begin from a specific message identifier and / or a specific timestamp of chat messages in a group chat. Furthermore, the chat message search request shown in Figure 7B provides pagination, including a page_size parameter, and a direction parameter for returning the next or previous x chat messages in the chat, i.e., whether forward or backward. Similar to the example of a chat message recovery request in Figure 6B, the example of a chat message search request in Figure 7B is just one example of a search request as disclosed herein. As described above, each receiving edge device performs a local search within the group chat for content-related results based on one or more search terms and returns the relevant results to the requesting edge device, i.e., edge device A in the example of Figure 7C. It should also be noted that in one embodiment, the returned chat messages may be sorted by timestamp by the returning edge device. As explained above, the number of returned chat messages may be based on the number of results requested in the chat message retrieval request. An example of returned results is shown in Figure 7D, where, as in the case of the chat message restoration request processing, duplicate chat messages along the timeline are possible. Again in the example of Figure 7D, for the sake of argument, it is assumed that edge device B, edge device C, and edge device D each lack the complete set of chat messages that will be provided to the requesting edge device.In one or more other embodiments, any one of the edge devices may have a complete set of chat message results, or each edge device (i.e., edge device B, edge device C, and edge device D) may have a complete set of chat message results. For example, deduplication is performed on received chat messages at the receiving edge device by deleting or discarding any extra copies of any returned chat messages in the chat.
[0094] In Figure 7E, the user identifies a specific chat message 700 as the chat message of interest. Based on the principle of locality, and assuming the user is looking for additional content related to the identified chat message 700, the chat message localization module processing may include performing chat message restoration using pagination, as shown in Figures 7F to 7I. As shown in Figure 7F, a chat message restoration request, including, for example, the message ID to be restored and / or the UTC timestamp of the message to be restored, and page_size as part of the pagination parameters, is sent to the multiple participant edge devices in this example: edge device B, edge device C, and edge device D. As shown in Figure 7G, each of edge device B, edge device C, and edge device D returns x messages to the requesting edge device A, again (in only one example) sorted by timestamp, where x is defined, for example, by the page_size parameter in one embodiment. The existence of duplicate chat messages is shown in Figure 7H, and after deduplication or deletion of the extra copies of each returned chat message, the desired sequence of chat messages in chronological order is obtained, as shown in Figure 7I, which can be presented to the user by edge device A and / or stored on edge device A.
[0095] Advantageously, those skilled in the art will note that the present invention discloses computer implementations, computer systems, and computer program products that facilitate processing within a computing environment, and in particular within a messaging system environment, to address the problem of selective retrieval and recovery of missing chat messages in a messaging system when the messaging system does not store data on the server side of the system. In one or more embodiments, the processing includes distributing chat message location requests to participants in a group chat of the messaging system, and receiving copies of the missing chat messages located on remote edge devices from various edge devices of the participants, while respecting the privacy of the messages. Furthermore, the process may include sorting messages on a timeline, performing deduplication of any duplicate messages, and using pagination (i.e., dividing the results into multiple pages and receiving the results in batches) to facilitate the recovery of desired missing chat messages of a chat to edge devices via a messaging system, such as an end-to-end encrypted messaging system.
[0096] Solutions for cases where missing chat messages are unavailable on the edge device or in backups for the edge device are disclosed herein. The disclosed chat message location process advantageously ensures data privacy, such as in end-to-end encrypted messaging systems. Furthermore, the concepts disclosed herein enable extended storage and retrieval techniques for heterogeneous environments, such as when certain edge devices have higher processing and / or storage capabilities than others. If a particular edge device cannot store all chat messages in a chat or group of chats, some of the data can be deleted and later retrieved or restored on demand using chat message location mechanisms and processes such as those disclosed herein.
[0097] As a further advantage, the disclosed concepts can be used in conjunction with conversational artificial intelligence (AI), such as generative language models, base models, and applications. For example, a group of users may temporarily add a generative language bot to answer one or more questions in a particular group chat context. Since the responses of a generative language model are constructed based on a set of questions and answers and context, if any of these messages are lost, the generative language bot will not provide the same answer even if the same question is asked again. The chat message localization mechanism and processing disclosed herein solve this problem by enabling a user to extract the same answer previously provided in a particular context from one or more other user edge devices.
[0098] The accompanying drawings incorporated herein and forming part thereof further illustrate the present invention and, together with this detailed description relating to the invention, serve to illustrate aspects of the invention. In this regard, it should be noted that descriptions relating to well-known systems, devices, processing techniques, etc., have been omitted so as not to unnecessarily obscure the invention in detail. However, it should be understood that while the detailed description and these examples illustrate aspects of the invention, they are presented merely as examples and not as limitations. Various substitutions, modifications, additions, and / or other configurations within the spirit or scope of the underlying concept of the invention will be apparent to those skilled in the art from this disclosure. It should be further noted that numerous aspects or features of the invention are disclosed herein, and to the extent that they do not contradict each other, each disclosed aspect or feature can be combined with any other disclosed aspects or features as desired for a particular application of the disclosed concept.
[0099] It should also be noted that exemplary embodiments are described below merely as examples, not as limitations, using specific code, designs, architectures, protocols, layouts, schematics, or tools. Furthermore, exemplary embodiments are described in specific instances using specific software, hardware, tools, or data processing environments, merely as examples to clarify the description. Exemplary embodiments may be used in conjunction with other comparable or similar structures, systems, applications, or architectures. One or more aspects of the exemplary embodiments may be implemented in software, hardware, or a combination thereof.
[0100] The terminology used herein is intended to describe only specific embodiments and is not intended to limit the invention. Where used herein, unless otherwise explicitly indicated by the context, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well. It will be further understood that the terms “comprise” (and any form of comprise, e.g., “comprises” and “comprising”), “have” (and any form of have, e.g., “has” and “having”), “include” (and any form of include, e.g., “includes” and “including”), and “contain” (and any form of contain, e.g., “contains” and “containing”) are open-ended linking verbs. As a result, a method or device that “comprises,” “has,” “includes,” or “contains” one or more stages or elements possesses one or more of those stages or elements, but is not limited to possessing only one or more of those stages or elements. Similarly, any step or element of a method or device that “companies,” “has,” “includes,” or “incorporates” one or more features possesses one or more of those features, but is not limited to possessing only one or more of those features. Furthermore, a device or structure configured in a particular way is configured in at least that way, but may also be configured in ways not listed.
[0101] In the following claims, all corresponding structures, materials, actions, and equivalents of means-plus-function elements or step-plus-function elements are intended to include, where applicable, any structures, materials, or actions for performing a function in combination with other specifically claimed elements. Descriptions of one or more embodiments are presented for illustrative and explanatory purposes, but are not intended to be comprehensive or limitless to the disclosed forms. Many modifications and variations will be apparent to those skilled in the art. The embodiments have been selected and described to best illustrate various aspects and practical applications, and to enable other those skilled in the art to understand various embodiments with various modifications suitable for a particular intended use.
Claims
1. The steps include: sending a chat message location request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user via an end-to-end encrypted messaging system; and the chat message location request identifies at least one search parameter for at least one missing chat message of the chat on the edge device; and Based on the step of sending the chat message location request, the step of receiving the at least one missing chat message of the chat identified via the at least one search parameter from the at least one other edge device. A computer implementation method that facilitates processing within a computing environment, comprising the features described above.
2. The computer implementation method according to claim 1, wherein the chat message location request includes a chat message restoration request, the at least one missing chat message identified via the at least one search parameter is the at least one missing chat message of the chat to be restored on the edge device, and the at least one search parameter is the at least one metadata attribute of the at least one missing chat message.
3. The computer implementation method according to claim 2, wherein the at least one metadata attribute is selected from the group consisting of the message identifier of the at least one missing chat message and the message timestamp of the at least one missing chat message.
4. The computer implementation method according to claim 2, wherein the chat message recovery request further identifies a pagination parameter, the pagination parameter identifies the maximum number of missing chat messages to be received based on the chat message recovery request, and the receiving step comprises the step of receiving up to x missing chat messages of the chat from at least one other edge device, where x is identified by the pagination parameter.
5. The computer implementation method according to claim 4, further comprising the step of sending a further chat message recovery request from the edge device to the at least one other edge device of the at least one other participant in the chat, for the next set of x missing chat messages in the chat.
6. The computer implementation method according to claim 2, wherein the transmitting step includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat, and the at least one other edge device is at least one of the multiple other edge devices.
7. The chat message restoration request identifies multiple missing chat messages of the chat to be restored on the edge device, the receiving step includes receiving multiple copies of one or more chat messages of the chat that were missing on the edge device from multiple other edge devices, the chat messages of the chat received on the edge device from multiple other edge devices are sorted by timestamp, and the computer implementation method is: The steps include: obtaining the deduplicated chat messages from the multiple other edge devices by deduplication in the edge device; and The edge device presents the deduplication-free chat messages of the chat to the user. The computer implementation method according to claim 6, further comprising the above.
8. The computer implementation method according to claim 7, wherein the aforementioned step includes the step of the edge device displaying the deduplicated chat messages that have been reinserted in chronological order within the chat.
9. The computer implementation method according to claim 7, wherein the aforementioned step includes the step of the edge device displaying the deduplicated chat messages in an accurate time series, separate from the chat.
10. The computer implementation method according to claim 1, wherein the chat message location request includes a chat message search request, the at least one search parameter includes at least one search term for searching for the content of chat messages in the chat, and the at least one missing chat message received on the edge device includes content-related results based on the at least one search term.
11. The step of sending the chat message search request includes sending the chat message search request from the user's edge device to multiple other edge devices of multiple other participants in the chat, and multiple copies of one or more chat messages of the chat are received on the edge device from the multiple other edge devices and sorted by timestamp, and the computer implementation method is: The steps include: obtaining the deduplicated chat messages from the multiple other edge devices by deduplication in the edge device; and The edge device presents the deduplication-free chat messages of the chat to the user. The computer implementation method according to claim 10, further comprising the above.
12. A computer system for facilitating processing within a computing environment, memory; and At least one processor in communication with the aforementioned memory The computer system is configured to perform a method, and the method is: The steps include: sending a chat message location request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user, the chat message location request identifying at least one search parameter for at least one missing chat message of the chat on the edge device; and Based on the step of sending the chat message location request, the step of receiving the at least one missing chat message of the chat identified via the at least one search parameter from the at least one other edge device. A computer system having the following features.
13. The computer system according to claim 12, wherein the chat message location request includes a chat message restoration request, the at least one missing chat message identified via the at least one search parameter is the at least one missing chat message of the chat to be restored on the edge device, the at least one search parameter is the at least one metadata attribute of the at least one missing chat message, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message.
14. The computer system according to claim 13, wherein the chat message restoration request further identifies a pagination parameter, the pagination parameter identifies the maximum number of missing chat messages to be restored based on the chat message restoration request, and the receiving step includes receiving up to x missing chat messages of the chat from at least one other edge device, where x is identified by the pagination parameter.
15. The sending step includes broadcasting the chat message recovery request from the user's edge device to multiple other edge devices of multiple other participants in the chat, wherein the at least one other edge device is at least one of the multiple other edge devices, and the chat message recovery request identifies multiple missing chat messages of the chat to be recovered on the edge device; the receiving step includes receiving multiple copies on the edge device of one or more chat messages of the chat that were missing on the edge device from the multiple other edge devices, the chat messages of the chat received on the edge device from the multiple other edge devices are sorted by timestamp, and the method is: The steps include: obtaining the deduplicated chat messages from the multiple other edge devices by deduplication in the edge device; and The edge device presents the deduplication-free chat messages of the chat to the user. The computer system according to claim 13, further comprising:
16. The computer system according to claim 15, wherein the aforementioned step includes the step of the edge device displaying the deduplicated chat messages that have been reinserted in chronological order within the chat.
17. The computer system according to claim 12, wherein the chat message location request includes a chat message search request, the at least one search parameter includes at least one search term for searching for the content of chat messages in the chat, and the at least one missing chat message received on the edge device includes content-related results based on the at least one search term.
18. The step of sending the chat message search request includes sending the chat message search request from the user's edge device to multiple other edge devices of multiple other participants in the chat, and multiple copies of one or more chat messages of the chat are received on the edge device from the multiple other edge devices and sorted by timestamp, and the method is: The steps include: obtaining the deduplicated chat messages from the multiple other edge devices by deduplication in the edge device; and The edge device presents the deduplication-free chat messages of the chat to the user. The computer system according to claim 17, further comprising:
19. One or more computer-readable storage media and program instructions embodied therein The program instructions are: The steps include: sending a chat message location request from the user's edge device to at least one other edge device of at least one other participant in a chat with the user via an end-to-end encrypted messaging system; and the chat message location request identifies at least one search parameter for at least one missing chat message of the chat on the edge device; and Based on the step of sending the chat message location request, the step of receiving the at least one missing chat message of the chat identified via the at least one search parameter from the at least one other edge device. A computer program product for facilitating processing within a computing environment, which is readable by a processing circuit to cause the processing circuit to execute a method having said method.
20. The computer program product according to claim 19, wherein the chat message location request includes a chat message restoration request, the at least one missing chat message identified via the at least one search parameter is at least one missing chat message of the chat to be restored on the edge device, the at least one search parameter is at least one metadata attribute of the at least one missing chat message, the at least one metadata attribute is selected from the group consisting of a message identifier of the at least one missing chat message and a message timestamp of the at least one missing chat message.