IP Library Granted Patent US 11,848,981
Granted Patent B2
US 11,848,981 · App. 17/322,817 · Granted Dec 19, 2023

Secure multi-directional data pipeline for data distribution systems

Inventors: Sufian A. Dar (Bothell, WA); Tyler J. Curtis (Shingle Springs, CA); James W. Cooley (Seattle, WA); Mirza Mohsin Beg (Foster City, CA)
Assignee: VMware, Inc.
H04L67/10H04L45/38H04L67/63H04L12/66
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,848,981
App. No.
17/322,817
Granted
Dec 19, 2023
Kind
B2
Abstract

Techniques for ingesting data streams to a distributed-computing system using a multi-directional data ingestion pipeline are provided. In one embodiment, a method for ingesting data streams includes, at a client gateway, receiving a plurality of messages; assigning the plurality of messages to one or more data streams; obtaining stream routing configurations; and identifying one or more receivers. The method further includes determining whether at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment; and if so, delivering the at least one of the one or more data streams to the one or more receivers operating in the first computing environment. The method further includes delivering the one or more data streams to a data ingress gateway operating in a second computing environment.

Claims (43)

1. A method for ingesting data streams to a distributed-computing system using a multi-directional data ingestion pipeline, the method comprising:

at a client gateway operating in a first computing environment and in electronic communication with a second computing environment, the client gateway having one or more processors and memory, the memory storing stream routing configurations for routing data streams to receivers of both the first computing environment and the second computing environment:

receiving, from one or more data collectors operating in the first computing environment, a plurality of messages generated by one or more systems operating in the first computing environment;

assigning the plurality of messages to one or more of the data streams;

obtaining the stream routing configurations from the memory;

identifying, based on the obtained stream routing configurations, one or more of the receivers;

determining, based on the identified one or more receivers of the one or more data streams, whether at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment;

in accordance with a determination that at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment, delivering the at least one of the one or more data streams to the one or more receivers operating in the first computing environment; and

delivering the one or more data streams to a forwarder operating within the first computing environment that is configured to redact the one or more data streams prior to forwarding the one or more data streams to a data ingress gateway operating in the second computing environment, wherein the one or more data streams are distributed to one or more receivers operating in the second computing environment;

wherein the first computing environment is a private network associated with a client of the distributed-computing system and the second computing environment is a network associated with a service provider that provides data services to the client, the private network associated with the client and the network associated with the service provider being separate networks.

2. The method of claim 1 , wherein assigning the plurality of messages to one or more data streams comprises:

obtaining, based on information included in the plurality of messages, identifications of the one or more data collectors;

identifying, based on the identifications of the one or more data collectors and predetermined collector-stream associations, the one or more data streams; and

assigning each message of the plurality of messages to a corresponding data stream of the identified one or more data streams.

3. The method of claim 1 , wherein the one or more receivers operating in the first computing environment include at least one of:

the one or more data collectors operating in the first computing environment; and

one or more service agents operating in the first computing environment, wherein the service agents communicate with one or more computing environments different from the second computing environment.

4. The method of claim 3 , wherein delivering the at least one of the one or more data streams to the one or more receivers operating in the first computing environment comprises: delivering the at least one of the one or more data streams to one or more collectors or service agents operating in the first computing environment.

5. The method of claim 1 , wherein the plurality of messages comprises log messages, application data and inventory information.

6. The method of claim 1 , wherein the one or more data collectors are processing pipelines configured to process the plurality of messages by extracting payloads, annotating payloads and/or categorizing payloads of the plurality of messages prior to sending the plurality of messages to the client gateway.

7. The method of claim 1 , further comprising:

establishing a persistent connection between the client gateway and the data ingress gateway, wherein the one or more data streams are delivered to the data ingress gateway via the persistent connection.

8. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by a client gateway operating in a first computing environment and in electronic communication with a second computing environment, the client gateway having one or more processors and memory storing stream routing configurations for routing data streams to receivers of both the first computing environment and the second computing environment, the one or more programs including instructions for:

processing a plurality of messages received from one or more data collectors operating in the first computing environment and generated by one or more systems operating in the first computing environment;

assigning the plurality of messages to one or more of the data streams;

obtaining the stream routing configurations from the memory;

identifying, based on the obtained stream routing configurations, one or more of the receivers;

determining, based on the identified one or more receivers of the one or more data streams, whether at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment;

in accordance with a determination that at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment, delivering the at least one of the one or more data streams to the one or more receivers operating in the first computing environment; and

delivering the one or more data streams to a forwarder operating within the first computing environment that is configured to redact the one or more data streams prior to forwarding the one or more data streams to a data ingress gateway operating in the second computing environment, wherein the one or more data streams are distributed to one or more receivers operating in the second computing environment;

wherein the first computing environment is a private network associated with a client of a distributed-computing system and the second computing environment is a network associated with a service provider that provides data services to the client, the private network associated with the client and the network associated with the service provider being separate networks.

9. A system for stream processing of one or more data streams ingested from a client gateway using a multi-directional data ingestion pipeline, the system comprising:

a client gateway operating in a first computing environment and in electronic communication with a second computing environment, the client gateway having one or more processors and memory storing stream routing configurations for routing data streams to receivers of both the first computing environment and the second computing environment, and one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for, at the client gateway:

receiving a plurality of messages from one or more data collectors operating in the first computing environment and generated by one or more systems operating in the first computing environment;

assigning the plurality of messages to one or more of the data streams;

obtaining the stream routing configurations from the memory;

identifying, based on the obtained stream routing configurations, one or more of the receivers;

determining, based on the identified one or more receivers of the one or more data streams, whether at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment;

in accordance with a determination that at least one of the one or more data streams is to be delivered to one or more receivers operating in the first computing environment, delivering the at least one of the one or more data streams to the one or more receivers operating in the first computing environment; and

delivering the one or more data streams to a forwarder operating within the first computing environment that is configured to redact the one or more data streams prior to forwarding the one or more data streams to a data ingress gateway operating in the second computing environment, wherein the one or more data streams are distributed to one or more receivers operating in the second computing environment;

wherein the first computing environment is a private network associated with a client of a distributed-computing system and the second computing environment is a network associated with a service provider that provides data services to the client, the private network associated with the client and the network associated with the service provider being separate networks.

10. The system of claim 9 , wherein the one or more data collectors are processing pipelines configured to process the plurality of messages by extracting payloads, annotating payloads and/or categorizing payloads of the plurality of messages prior to sending the plurality of messages to the client gateway.

11. The system of claim 9 , wherein the forwarder is further configured to redact selected ones of the one or more data streams.

Assignments (1)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
Continuity (2)
Division 16047968 · Jul 27, 2018
Related Publication 20210273990A1 · Sep 2, 2021