IP Library Granted Patent US 9,635,007
Granted Patent B2
US 9,635,007 · App. 14/864,747 · Granted Apr 25, 2017

Dynamic web services server

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 9,635,007
App. No.
14/864,747
Granted
Apr 25, 2017
Kind
B2
Abstract

A method is provided for a multi-tenant system to accept web service calls from third party systems over a computer network. The method includes centrally receiving messages with different endpoint URLs from the third party systems over the computer network and processing each message by parsing an endpoint URL of the message to identify a tenant and an action for a payload of the message and authenticating the message. When the message is authenticated, the method further includes generating an acknowledgment of the message based on the identified tenant and the identified action and sending the acknowledgment over the computer network, routing the payload, the identified tenant, and the identified the action to a queue based on the identified tenant, retrieving the payload, the identified tenant, and the identified action from the queue, determining a user script corresponding to the identified action, and executing the user script on the payload.

Claims (91)

1. A method executed by a multi-tenant system to accept web service calls from third party systems over a computer network, the method comprising:

centrally receiving, at a web server, messages of the web service calls with different endpoint URLs from the third party systems of different platforms over the computer network;

processing each received message at the web server, comprising:

parsing an endpoint URL of the message to identify a tenant and an action for a payload of the message;

authenticating the message;

when the message is authenticated:

sending an acknowledgment of the message to the third party system over the computer network based on the identified tenant and the identified action;

routing the payload, the identified tenant, and the identified the action of the received message to a queue based on the identified tenant, wherein payloads are placed in different queues based on different endpoint URLs of the web service calls; and

retrieving the payload, the identified tenant, and the identified action from the queue associated with one of the different endpoint URLs, determining one of different user scripts which are corresponding to different endpoint URLs of the web service calls and the identified action, and executing the one of different user scripts with the payload in the queue message as input.

2. The method of claim 1 , further comprising, prior to routing the payload, converting the payload from SOAP to JSON.

3. The method of claim 2 , wherein converting the payload comprises parsing a query string from the endpoint URL of the message and appending the query string to the payload.

4. The method of claim 1 , wherein executing the user script comprises calling one or more local functions or one or more external web services.

5. The method of claim 4 , wherein the one or more local functions read or write a database that is part of the multi-tenant system and the one or more external web services read or write a third party database.

6. The method of claim 1 , further comprising:

receiving a user-defined endpoint URL;

receiving a sample message with the user-defined endpoint URL;

parsing fields from the sample message;

mapping one or more fields in the sample message to a field in a database that is part of the multi-tenant system; and

recording the mapping for constructing user scripts.

7. The method of claim 1 , further comprising:

determining if the message is an initial post; and

when the message is the initial post:

sending a request for a new message based on a session ID and an object ID; and

receiving and processing the new message.

8. The method of claim 1 , further comprising:

receiving a user-defined endpoint URL;

parsing fields from a WSDL for the user-defined endpoint URL;

mapping a field in the WSDL to one or more fields in a database that is part of the multi-tenant system;

recording the mapping for constructing user scripts; and

sending an outbound message with the field in the WSDL determined from values of the one or more fields in the database.

9. The method of claim 1 , further comprising creating the user script, comprising:

receiving the endpoint URL or another endpoint URL;

receiving user selection of a field or a function available from a library;

retrieving a script snippet for mapping the field or the function from the library; and

appending the script snippet to the user script.

10. The method of claim 9 , wherein creating the user script further comprises:

receiving user selection of another field or another function available from the library;

retrieving another script snippet for mapping the other field or the other function from the library; and

appending the other script snippet to the user script, including reusing one or more variables from the scrip snippet.

11. The method of claim 1 , wherein authenticating the message comprises:

determining if an originating Internet Protocol (IP) address of the message is missing an API key, is included in a blacklist, or is excluded from a whitelist;

when the originating IP address is missing the API key, included in the blacklist, or excluded from the whitelist, blocking the message; and

when the originating IP address includes the API key, is excluded from the blacklist, and is included in the whitelist, accepting the message.

12. A multi-tenant system to provide dynamic web services to third party servers, comprising:

a web server, comprising:

a redirection module to:

centrally receive messages of the web service calls with different endpoint URLs from the third party systems of different platforms over the computer network;

parse an endpoint URL of a message to identify a tenant and an action for a payload of the message; and

authenticate the message;

a generic web handler to, when the message is authenticated, send an acknowledgment of the message to the third party system over the computer network based on the identified tenant and the identified action;

queues;

a queue router to route the payload, the identified tenant, and the identified the action of the received message to a queue based on the identified tenant, wherein payloads are placed in different queues based on different endpoint URLs of the web service calls;

scrip execution engines; and

a script handler to:

retrieve the payload, the identified tenant, and the identified action from the queue associated with one of the different endpoint URLs;

determine one of different user scripts which are corresponding to different endpoint URLs of the web service calls and the identified action; and

cause a script execution engine to execute one of different user scripts with the payload in the queue message as input.

13. The multi-tenant system of claim 12 , wherein the generic web handler is further to convert the payload from SOAP to JSON.

14. The multi-tenant system of claim 13 , wherein converting the payload includes parsing a query string from the endpoint URL of the message and appending the query string to the payload.

15. The multi-tenant system of claim 12 , wherein the script execution engine executes the user script by calling one or more local functions or one or more external web services.

16. The multi-tenant system of claim 15 , wherein the one or more local functions read or write a database that is part the multi-tenant system and the one or more external web services read or write a third party database.

17. The multi-tenant system of claim 12 , further comprising a script editor to:

receive a user-defined endpoint URL;

receive a sample message with the user-defined endpoint URL;

parse fields from the sample message;

map one or more fields in the sample message to one or more fields in a database; and

record the mapping for constructing user scripts.

18. The multi-tenant system of claim 12 , wherein the script execution engine is to:

determine if the message is an initial post; and

when the message is the initial post:

send a request for a new message based on a session ID and an object ID; and

receive and processing the new message.

19. The multi-tenant system of claim 12 , further comprising a script editor to:

receive a user-defined endpoint URL;

parse fields from a WSDL for the user-defined endpoint URL;

map a field in the WSDL to one or more fields in a database;

record the mapping for constructing user scripts; and

send an outbound message with the field in the WSDL determined from values of the one or more fields in the database.

20. The multi-tenant system of claim 12 , further comprising a script editor to:

receive the endpoint URL or another endpoint URL;

receive user selection of a field or a function available from a library;

retrieve a script snippet for mapping the field or the function from the library; and

append the script snippet to the user script.

21. The multi-tenant system of claim 20 , wherein the script editor creates the user script by:

receiving user selection of another field or another function available from the library;

retrieving another script snippet for mapping the other field or the other function from the library; and

appending the other script snippet to the user script, including reusing one or more variables from the scrip snippet.

22. The multi-tenant system of claim 12 , wherein the redirection module authenticates the message by:

determining if an originating Internet Protocol (IP) address of the message is missing an API key, is included in a blacklist, or is excluded from a whitelist;

when the originating IP address is missing the API key, included in the blacklist, or excluded from the whitelist, blocking the message; and

when the originating IP address includes the API key, is excluded from the blacklist, and is included in the whitelist, accepting the message.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
MERGER Recorded Apr 19, 2018
From: HEAT SOFTWARE USA INC.
To: IVANTI, INC.
Reel/Frame 045589/0203 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2015
From: PANDIAN, SURESH S; WAIBEL, UDO H; HAUW, HONG; ZAVGORODNII, ANDRII; SABAPATHY, SUNDARAPANDIAN; YAO, SHAOHUA; JESSEE, RANDY; POKLEMBA, ROLAND
To: HEAT SOFTWARE USA INC.
Reel/Frame 036655/0513 →