IP Library Granted Patent US 11,785,100
Granted Patent B2
US 11,785,100 · App. 17/667,322 · Granted Oct 10, 2023

System and method for software services platform architecture for supporting standalone services or development environments

Inventors: Jeffrey Allen Upton (Cedar Park, TX); Vasil Shlapkou (Austin, TX)
Assignee: SAILPOINT TECHNOLOGIES, INC.
H04L67/51H04L65/1073H04L67/1001H04L67/146
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,785,100
App. No.
17/667,322
Granted
Oct 10, 2023
Kind
B2
Abstract

Embodiments of a software services platform with a services infrastructure that allows standalone service to be run in association with other services deployed on a deployment platform. The service infrastructure and services may cooperate to ensure that that communications (associated with the standalone service are routed to that standalone service while communications for other services deployed in the software services may also continue communicating to receive and servicing requests for those services.

Claims (68)

1. A software services platform, comprising:

a services platform providing a set of multitenant services adapted to service requests associated with multiple tenants by executing a set of instances of each service;

a services infrastructure for communicating between the set of instances of each of the set of services, the services infrastructure comprising:

a processor;

a service registry storing a registration entry for a standalone service instance of a first service for a first tenant executing on a platform distinct from the services platform, the registration entry including first location information associated with the distinct platform on which the standalone service instance is executing, a timestamp indicating a start time of the service, and an expiration time, wherein the first location information includes an IP address and a port associated with the standalone service;

service location data comprising second location information for the first service, the second location information associated with the services platform;

a service location interface adapted to:

receive a first request for a first location from an instance of a second service executing on the service platform, the first request identifying the first service and the first tenant;

access the service registry to determine that the registration entry for the standalone service instance of the first service for the first tenant exists in the service registry;

determine the first location associated with the standalone service instance of the first service for the first tenant based on the first location information in the registration entry for the standalone service instance of the first service for the first tenant in the service registry;

return the first location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request;

receive a second request for a second location from the instance of the second service executing on the services platform, the second request identifying the first service and a second tenant;

access the service registry to determine that no registration entry corresponding to the first service for the second tenant exists in the service registry;

determine the second location associated with second service for the second tenant based on the second location information in the service location data associated with the first service; and

return the location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request.

2. The system of claim 1 , wherein the services platform is deployed on a cloud based computing platform.

3. The system of claim 1 , wherein the first location information includes an IP address or port associated with the distinct platform of the standalone service instance.

4. The system of claim 1 , wherein the standalone service instance is adapted to register with the services infrastructure when the standalone service instance is started and the registration entry is created in the service registry by the services infrastructure in response to the registration by the standalone service instance.

5. The system of claim 1 , wherein the services infrastructure has a messaging platform, the messaging platform including a set of message queues for the first service, the set of message queues for the first service including a first message queue associated with the first tenant that is associated with the standalone service instance, and wherein each instance of the first service on the services platform is adapted to:

determine that the standalone service instance of the first service is associated with the first tenant based on the service registry, and

obtain a first message for the first service associated with the second tenant from at least one of the set of message queues for the first service not including the first message queue associated with the first tenant; and

wherein the standalone service instance is adapted to only monitor the first message queue to obtain a second message for the first service associated with the first tenant from the first message queue.

6. The system of claim 1 , wherein the services infrastructure comprises an event platform including a topic associated with the first service, wherein the topic is divided into a set of partitions, each partition including events for the topic for the first service, wherein the standalone service instance obtains events only from a first partition of the topic reserved by the standalone service instance, and

wherein each of the set of instances of each service is adapted to determine that the first partition of the topic is reserved for the first tenant and to publish events for the topic and the first tenant to the first partition.

7. The system of claim 6 , wherein the services infrastructure includes a partition registry storing a partition reservation entry for the topic, the partition reservation entry for the topic comprising an identifier for the first partition associated with the first tenant.

8. A method, comprising:

providing a services platform providing a set of multitenant services adapted to service requests associated with multiple tenants by executing a set of instances of each service and a services infrastructure for communicating between the set of instances of each of the set of services, wherein the services infrastructure comprises a service registry storing a registration entry for a standalone service instance of a first service for a first tenant executing on a platform distinct from the services platform, the registration entry including first location information associated with the distinct platform on which the standalone service instance is executing, a timestamp indicating a start time of the service, and an expiration time, wherein the first location information includes an IP address and a port associated with the standalone service;

storing service location data comprising second location information for the first service, the second location information associated with the services platform;

at a service location interface:

receiving a first request for a first location from an instance of a second service executing on the service platform, the first request identifying the first service and the first tenant;

accessing the service registry to determine that the registration entry for the standalone service instance of the first service for the first tenant exists in the service registry;

determining the first location associated with the standalone service instance of the first service for the first tenant based on the first location information in the registration entry for the standalone service instance of the first service for the first tenant in the service registry;

returning the first location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request;

receiving a second request for a second location from the instance of the second service executing on the services platform, the second request identifying the first service and a second tenant;

accessing the service registry to determine that no registration entry corresponding to the first service for the second tenant exists in the service registry;

determining the second location associated with second service for the second tenant based on the second location information in the service location data associated with the first service; and

returning the location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request.

9. The method of claim 8 , wherein the services platform is deployed on a cloud based computing platform.

10. The method of claim 8 , wherein the first location information includes an IP address or port associated with the distinct platform of the standalone service instance.

11. The method of claim 8 , wherein the standalone service instance is adapted to register with the services infrastructure when the standalone service instance is started and the registration entry is created in the service registry by the services infrastructure in response to the registration by the standalone service instance.

12. The method of claim 8 , wherein the services infrastructure has a messaging platform, the messaging platform including a set of message queues for the first service, the set of message queues for the first service including a first message queue associated with the first tenant that is associated with the standalone service instance, and wherein each instance of the first service on the services platform is adapted to:

determine that the standalone service instance of the first service is associated with the first tenant based on the service registry, and

obtain a first message for the first service associated with the second tenant from at least one of the set of message queues for the first service not including the first message queue associated with the first tenant; and

wherein the standalone service instance is adapted to only monitor the first message queue to obtain a second message for the first service associated with the first tenant from the first message queue.

13. The method of claim 8 , wherein the services infrastructure comprises an event platform including a topic associated with the first service, wherein the topic is divided into a set of partitions, each partition including events for the topic for the first service, wherein the standalone service instance obtains events only from a first partition of the topic reserved by the standalone service instance, and

wherein each of the set of instances of each service is adapted to determine that the first partition of the topic is reserved for the first tenant and to publish events for the topic and the first tenant to the first partition.

14. The method of claim 13 , wherein the services infrastructure includes a partition registry storing a partition reservation entry for the topic, the partition reservation entry for the topic comprising an identifier for the first partition associated with the first tenant.

15. A non-transitory computer readable medium, comprising instructions for:

providing a services platform providing a set of multitenant services adapted to service requests associated with multiple tenants by executing a set of instances of each service and a services infrastructure for communicating between the set of instances of each of the set of services, wherein the services infrastructure comprises a service registry storing a registration entry for a standalone service instance of a first service for a first tenant executing on a platform distinct from the services platform, the registration entry including first location information associated with the distinct platform on which the standalone service instance is executing, a timestamp indicating a start time of the service, and an expiration time, wherein the first location information includes an IP address and a port associated with the standalone service;

storing service location data comprising second location information for the first service, the second location information associated with the services platform;

at a service location interface:

receiving a first request for a first location from an instance of a second service executing on the service platform, the first request identifying the first service and the first tenant;

accessing the service registry to determine that the registration entry for the standalone service instance of the first service for the first tenant exists in the service registry;

determining the first location associated with the standalone service instance of the first service for the first tenant based on the first location information in the registration entry for the standalone service instance of the first service for the first tenant in the service registry;

returning the first location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request;

receiving a second request for a second location from the instance of the second service executing on the services platform, the second request identifying the first service and a second tenant;

accessing the service registry to determine that no registration entry corresponding to the first service for the second tenant exists in the service registry;

determining the second location associated with second service for the second tenant based on the second location information in the service location data associated with the first service; and

returning the location of the standalone service instance of the first service on the platform distinct from the service platform in response to the request.

16. The non-transitory computer readable medium of claim 15 , wherein the services platform is deployed on a cloud based computing platform.

17. The non-transitory computer readable medium of claim 15 , wherein the first location information includes an IP address or port associated with the distinct platform of the standalone service instance.

18. The non-transitory computer readable medium of claim 15 , wherein the standalone service instance is adapted to register with the services infrastructure when the standalone service instance is started and the registration entry is created in the service registry by the services infrastructure in response to the registration by the standalone service instance.

19. The non-transitory computer readable medium of claim 15 , wherein the services infrastructure has a messaging platform, the messaging platform including a set of message queues for the first service, the set of message queues for the first service including a first message queue associated with the first tenant that is associated with the standalone service instance, and wherein each instance of the first service on the services platform is adapted to:

determine that the standalone service instance of the first service is associated with the first tenant based on the service registry, and

obtain a first message for the first service associated with the second tenant from at least one of the set of message queues for the first service not including the first message queue associated with the first tenant; and

wherein the standalone service instance is adapted to only monitor the first message queue to obtain a second message for the first service associated with the first tenant from the first message queue.

20. The non-transitory computer readable medium of claim 15 , wherein the services infrastructure comprises an event platform including a topic associated with the first service, wherein the topic is divided into a set of partitions, each partition including events for the topic for the first service, wherein the standalone service instance obtains events only from a first partition of the topic reserved by the standalone service instance, and

wherein each of the set of instances of each service is adapted to determine that the first partition of the topic is reserved for the first tenant and to publish events for the topic and the first tenant to the first partition.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jun 27, 2025
From: GOLUB CAPITAL MARKETS LLC
To: SAILPOINT TECHNOLOGIES, INC.; SAILPOINT TECHNOLOGIES HOLDINGS, INC.
Reel/Frame 071776/0411 →
PATENT SECURITY AGREEMENT Recorded Jun 25, 2025
From: SAILPOINT TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071724/0511 →
SECURITY INTEREST Recorded Aug 17, 2022
From: SAILPOINT TECHNOLOGIES, INC.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 061202/0540 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2022
From: UPTON, JEFFREY ALLEN; SHLAPKOU, VASIL
To: SAILPOINT TECHNOLOGIES, INC.
Reel/Frame 059037/0469 →
Continuity (2)
Continuation 17014343 · Sep 8, 2020
Related Publication 20220239751A1 · Jul 28, 2022