IP Library Granted Patent US 10,097,624
Granted Patent B1
US 10,097,624 · App. 15/899,529 · Granted Oct 9, 2018

Systems and methods for distributed installation of API and plugins

Inventors: Marco Palladino (San Francisco, CA); Augusto Marietti (San Francisco, CA)
Assignee: KONG INC.
H04L67/10H04L67/02H04L67/2814H04L67/2842H04L67/42
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 10,097,624
App. No.
15/899,529
Granted
Oct 9, 2018
Kind
B1
Abstract

Disclosed embodiments are directed at systems, methods, and architecture for providing microservices and a plurality of APIs to requesting clients. The architecture is a distributed cluster of gateway nodes that jointly provide microservices and the plurality of APIs. Providing the APIs includes providing a plurality of plugins that implement the APIs. As a result of a distributed architecture, the task of API management can be distributed across a cluster of gateway nodes. The gateway nodes effectively become the entry point for every API-related request. Some embodiments of the disclosed technology describe an auto-documentation plugin that can automatically generate documentation for an API by monitoring, parsing, and sniffing requests/responses to/from the API.

Claims (65)

1. A method for securing, managing, and extending functionalities of Application Programming Interfaces (APIs) comprising:

receiving, by a first gateway node, a request for installing a particular API or plugin, the first gateway node is configured to respond to API requests from a first set of clients communicating with a network and store and execute a set of APIs and plugins associated therewith, wherein the particular API or plugin is not included in the set of APIs and plugins;

installing and configuring, by the first gateway node, software code associated with the particular API or plugin;

retrieving, by a second gateway node, the software code associated with the particular API or plugin and a set of configuration data associated with the particular API or plugin from the first gateway node, wherein the second gateway node configured to respond to API requests from a second set of clients communicating with the network; and

installing and configuring, by the second gateway node, the particular API or plugin using the retrieved software code and the set of configuration data.

2. The method of claim 1 , further comprising:

proxying, by the second gateway node, the request for installing a particular API or plugin.

3. The method of claim 1 , wherein the set of APIs and plugins associated therewith provide functionalities of authentication, security, transformations, logging, monitoring, analytics, traffic control, and rate limiting.

4. The method of claim 1 , wherein the first gateway node includes: a first proxy port, an API port, and at least two clustering ports.

5. The method of claim 1 , wherein the first gateway node and the second gateway node are architecturally organized into a cluster.

6. The method of claim 5 , wherein the first gateway node and the second gateway node share a same data store.

7. The method of claim 5 , further comprising:

joining, by a new gateway node, the cluster;

in response to joining the cluster, communicating, by the new gateway node, with the first gateway node, using a gossip protocol; and

discovering, by the new gateway node, other gateway nodes in the cluster.

8. The method of claim 1 , further comprising:

receiving, by the first gateway node, an API request;

retrieving, by the first gateway node, from a gateway cluster cache a response to the API request; and

responding, by the first gateway node, to the API request using the response to the API request from the gateway cluster cache.

9. A system for securing, managing, and extending functionalities of Application Programming Interfaces (APIs), the system comprising:

a first gateway node that stores and executes a set of APIs and plugins associated therewith, the first gateway node configured to respond to API requests from a first set of clients communicating with a network, wherein the first gateway node is configured to:

receive a request for installing a particular API or plugin that is not included in the set of APIs and plugins; and

install and configure software code associated with the particular API or plugin; and

a second gateway node that stores and executes the set of APIs and plugins associated therewith, the second gateway node configured to respond to API requests from a second set of clients communicating with the network, wherein the second gateway node is configured to

retrieve the software code associated with the particular API or plugin and a set of configuration data associated with the particular API or plugin from the first gateway node; and

install and configure the particular API or plugin using the retrieved software code and the set of configuration data.

10. The system of claim 9 , wherein, the second gateway node proxies the request for installing a particular API or plugin.

11. The system of claim 9 , wherein the set of APIs and plugins associated therewith provide functionalities of authentication, security, transformations, logging, monitoring, analytics, traffic control, and rate limiting.

12. The system of claim 9 , wherein the first gateway node includes: a first proxy port, an API port, and at least two clustering ports.

13. The system of claim 9 , wherein the first gateway node and the second gateway node are architecturally organized into a cluster.

14. The system of claim 13 , wherein the first gateway node and the second gateway node share a same data store.

15. The system of claim 13 , wherein the second gateway node is configured, when originally joining the cluster, to communicate with the first gateway node using a gossip protocol and discover other gateway nodes in the cluster.

16. The system of claim 13 , further comprising:

a gateway cache that stores responses to API and plugin requests of any of the gateway nodes of the cluster of gateway nodes and provides the stored responses to the gateway nodes in response to API and plugin requests.

17. A method for securing, managing, and extending functionalities of Application Programming Interfaces (APIs) in a distributed manner comprising:

receiving, by a first gateway node of a cluster of gateway nodes, a request for installing a new API or plugin, the cluster of gateway nodes are configured to respond to API requests from a plurality of clients communicating with a network and store and execute a set of APIs and plugins associated therewith, wherein the plurality of clients are divided up amongst the cluster of gateway nodes;

installing and configuring, by the first gateway node, software code associated with the new API or plugin making use of a first set of configuration data;

distributing, by the cluster of gateway nodes, a proxied install and configure request to gateway nodes of the cluster of gateway nodes other than the first gateway node, wherein the proxied install and configure requests matches the request for installing the new API or plugin and further includes the set of configuration data;

installing and configuring, by the gateway nodes other than the first gateway node, the new API or plugin based on the proxied install and configure request.

18. The method of claim 17 , wherein the cluster is associated with a single datacenter.

19. The method of claim 17 , wherein the cluster is associated with multiple datacenters distributed across different geographical locations.

20. The method of claim 17 , wherein the cluster is deployed in a cloud environment or an on-premise environment.

21. The method of claim 17 , wherein the set of APIs and plugins associated therewith provide functionalities of authentication, security, transformations, logging, monitoring, analytics, traffic control, and rate limiting.

22. The method of claim 17 , wherein the first gateway node includes: a first proxy port, an API port, and at least two clustering ports.

23. The method of claim 17 , further comprising:

newly joining, by a second gateway node, the cluster;

in response to joining the cluster, communicating, by the second gateway node, with the first gateway node, using a gossip protocol; and

discovering, by the second gateway node, other gateway nodes of the cluster of gateway nodes.

24. The method of claim 17 ,

receiving, by the first gateway node, an API request;

retrieving, by the first gateway node, from a gateway cluster cache a response to the API request; and

responding, by the first gateway node, to the API request using the response to the API request from the gateway cluster cache.

25. A system for securing, managing, and extending functionalities of Application Programming Interfaces (APIs) in a distributed manner comprising:

a first gateway node that stores and executes a set of APIs and plugins associated therewith, the first gateway node configured to respond to API requests from a first set of clients communicating with a network, wherein the first gateway node is configured to:

receive a request for installing a particular API or plugin that is not included in the set of APIs and plugins; and

install and configure software code associated with the particular API or plugin;

a second gateway that stores and executes the set of APIs and plugins associated therewith, the second gateway node configured to respond to API requests from a second set of clients communicating with the network, wherein the second gateway node is architecturally networked in a cluster with the first gateway node;

a network cluster of gateway nodes that includes both the first and second gateway nodes; and

a gateway cache that stores API and plugin requests of any of the gateway nodes of the network cluster of gateway nodes, wherein the gateway cache proxies the request for installing a particular API or plugin from the first gateway node using a set of configuration data to the second gateway node; and

wherein the second gateway node is configured to

install and configure the particular API or plugin using the proxied request and the set of configuration data.

26. The system of claim 25 , wherein the set of APIs and plugins associated therewith provide functionalities of authentication, security, transformations, logging, monitoring, analytics, traffic control, and rate limiting.

27. The system of claim 25 , wherein the first gateway node includes: a first proxy port, an API port, and at least two clustering ports.

28. The system of claim 25 , wherein the first gateway node and the second gateway node share a same data store.

29. The system of claim 25 , wherein the second gateway node is configured, when originally joining the cluster, to communicate with the first gateway node using a gossip protocol and discover other gateway nodes in the cluster.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 61609/0267 Recorded Feb 28, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: KONG INC.
Reel/Frame 070366/0162 →
SECURITY INTEREST Recorded Feb 28, 2025
From: KONG INC.
To: HSBC VENTURES USA INC.
Reel/Frame 070372/0963 →
SECURITY INTEREST Recorded Nov 1, 2022
From: KONG INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 061609/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2018
From: PALLADINO, MARCO; MARIETTI, AUGUSTO
To: MASHAPE INC.
Reel/Frame 044973/0087 →
CHANGE OF NAME Recorded Feb 20, 2018
From: MASHAPE INC.
To: KONG INC.
Reel/Frame 045369/0248 →
Continuity (1)
Continuation 15662539 · Jul 28, 2017
Cited By (2)
US 12,287,887 US 12,524,562