IP Library Granted Patent US 8,689,181
Granted Patent B2
US 8,689,181 · App. 12/952,890 · Granted Apr 1, 2014

Scripting web services

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 8,689,181
App. No.
12/952,890
Granted
Apr 1, 2014
Kind
B2
Abstract

A process performed on a server includes configuring the server to enable script for a Web service to be defined dynamically, where the Web service includes an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the server. The process also includes compiling the script to produce machine-executable code for the Web service, receiving a call from the computer program to the Web service, executing the machine-executable code in response to the call to produce an output, and sending the output to the device.

Claims (116)

1. A method performed on one or more servers, comprising:

receiving, from a device of a client, a call to a Web service run on the one or more servers, the Web service corresponding to a script that was uploaded to the one or more servers by the client to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

authenticating the call to an account;

identifying the script corresponding to the Web service;

executing, on the one or more servers, code corresponding to the script to run the script, the code producing an output, the code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the script runs; and

sending the output to the device.

2. The method of claim 1 , wherein the code comprises a complied version of the script, and wherein the script comprises JAVA or Groovy.

3. The method of claim 1 , wherein the script has a security context, the security context comprising a JAVA classloader that restricts the script to using an approved set of classes and interfaces.

4. The method of claim 3 , wherein authenticating the call comprises authenticating a user who owns the account; and

wherein the security context is modifiable.

5. The method of claim 1 , further comprising:

receiving a username and password for an authenticated user; and

returning a session identifier (session ID) token in response to the receiving;

wherein the session ID token is passed with each Web service operation.

6. A method performed on one or more servers, comprising:

configuring the one or more servers to enable script for a Web service to be defined dynamically, the Web service comprising an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the one or more servers;

receiving, from a device of a client, script to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

compiling the script on the one or more servers to produce machine-executable code for the Web service, the machine-executable code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the machine-executable code for the script runs;

receiving a call from the computer program to the Web service;

executing the machine-executable code on the one or more servers in response to the call to produce an output; and

sending the output to the computer program.

7. The method of claim 6 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, code to generate a graphical user interface (GUI) into which the script is entered; and

wherein the method further comprises:

receiving a request for the GUI;

outputting the GUI in response to the request; and

receiving the script via the GUI.

8. The method of claim 6 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises:

storing, in the one or more servers, a compiler for compiling the script; and

storing, in the one or more servers, a database to store information corresponding to the machine-executable code.

9. The method of claim 6 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, machine-executable code that, when executed, enables receipt of the script.

10. The method of claim 6 , wherein the call comprises a HyperText Transfer Protocol (HTTP) command, the HTTP command identifying the script in accordance with a convention defined by a proprietor of the script.

11. The method of claim 6 , wherein the computer program passes an argument with the call, the argument being associated with an aspect of an entity being monitored; and

wherein the machine-executable code for the Web service obtains information associated with the argument and uses the information to generate the output.

12. The method of claim 6 , further comprising sending the output to a device or system other than the device on which the computer program is executing.

13. The method of claim 6 , wherein the computer program communicates with the one or more servers over a communication path that is at least partially wireless.

14. The method of claim 6 , wherein the call comprises instructions to access a functionality of the Web service.

15. The method of claim 6 , further comprising:

receiving a username and password for an authenticated user; and

returning a session identifier (session ID) token in response to the receiving;

wherein the session ID token is passed with each Web service operation.

16. One or more non-transitory machine-readable storage media storing instructions that are executable on one or more servers to perform operations comprising:

receiving, from a device of a client, a call to a Web service run on the one or more servers, the Web service corresponding to a script that was uploaded to the one or more servers by the client to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

authenticating the call to an account;

identifying the script corresponding to the Web service;

executing code corresponding to the script, the code producing an output, the code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the script runs; and

sending the output to the device.

17. The one or more non-transitory machine-readable storage media of claim 16 , wherein the code comprises a compiled version of the script, and wherein the script comprises JAVA or Groovy.

18. The one or more non-transitory machine-readable storage media of claim 16 , wherein the script has a security context, the security context comprising a JAVA classloader that restricts the script to using an approved set of classes and interfaces.

19. The one or more non-transitory machine-readable storage media of claim 18 , wherein authenticating the call comprises authenticating a user who owns the account; and

wherein the security context is modifiable.

20. The one or more non-transitory machine-readable storage media of claim 16 , wherein the operations comprise:

receiving a username and password for an authenticated user; and

returning a session identifier (session ID) token in response to the receiving;

wherein the session ID token is passed with each Web service operation.

21. One or more non-transitory machine-readable storage media storing instructions that are executable on one or more servers to perform operations comprising:

configuring the one or more servers to enable script for a Web service to be defined dynamically, the Web service comprising an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the one or more servers;

receiving, from a device of a client, script to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

compiling the script to produce machine-executable code for the Web service, the machine-executable code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the machine-executable code for the script runs;

receiving a call from the computer program to the Web service;

executing the machine-executable code in response to the call to produce an output; and

sending the output to the computer program.

22. The one or more non-transitory machine-readable storage media of claim 21 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, code to generate a graphical user interface (GUI) into which the script is entered; and

wherein the method further comprises:

receiving a request for the GUI;

outputting the GUI in response to the request; and

receiving the script via the GUI.

23. The one or more non-transitory machine-readable storage media of claim 21 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises:

storing, in the one or more servers, a compiler for compiling the script; and

storing, in the one or more servers, a database to store information corresponding to the machine-executable code.

24. The one or more non-transitory machine-readable storage media of claim 21 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, machine-executable code that, when executed, enables receipt of the script.

25. The one or more non-transitory machine-readable storage media of claim 21 , wherein the call comprises a HyperText Transfer Protocol (HTTP) command, the HTTP command identifying the script in accordance with a convention defined by a proprietor of the script.

26. The one or more non-transitory machine-readable storage media of claim 21 , wherein the computer program passes an argument with the call, the argument being associated with an aspect of an entity being monitored; and

wherein the machine-executable code for the Web service obtains information associated with the argument and uses the information to generate the output.

27. The one or more non-transitory machine-readable storage media of claim 21 , further comprising sending the output to a device or system other than the device on which the computer program is executing.

28. The one or more non-transitory machine-readable storage media of claim 21 , wherein the computer program communicates with the one or more servers over a communication path that is at least partially wireless.

29. The one or more non-transitory machine-readable storage media of claim 21 , wherein the call comprises instructions to access a functionality of the Web service.

30. One or more servers comprising:

memory to store instructions that are executable; and

one or more processing devices to execute the instructions to perform operations comprising:

receiving, from a device of a client, a call to a Web service run on the one or more servers, the Web service corresponding to a script that was uploaded to the one or more servers by the client to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

authenticating the call to an account;

identifying the script corresponding to the Web service;

executing code corresponding to the script, the code producing an output, the code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the script runs; and

sending the output to the device.

31. The one or more servers of claim 30 , wherein the code comprises a compiled version of the script, and wherein the script comprises JAVA or Groovy.

32. The one or more servers of claim 30 , wherein the script has a security context, the security context comprising a JAVA classloader that restricts the script to using an approved set of classes and interfaces.

33. The one or more servers of claim 32 , wherein authenticating the call comprises authenticating a user who owns the account; and

wherein the security context is modifiable.

34. The one or more servers of claim 30 , wherein the operations comprise:

receiving a username and password for an authenticated user; and

returning a session identifier (session ID) token in response to the receiving;

wherein the session ID token is passed with each Web service operation.

35. One or more servers comprising:

memory to store instructions that are executable; and

one or more processing devices to execute the instructions to perform operations comprising:

configuring the one or more servers to enable script for a Web service to be defined dynamically, the Web service comprising an application program interface (API) for enabling access by, and interaction with, a computer program executing on a device other than the one or more servers;

receiving, from a device of a client, script to define the Web service, the script comprising a client-modified script that exists in different versions, including a previous version, that are accessible by the client;

compiling the script to produce machine-executable code for the Web service, the machine-executable code defining a context among multiple contexts in which the script should run, the multiple contexts comprising a user context and a system context, in the user context the script running with permissions or privileges defined for a specified user, in the system context the script running with privileges and permissions for access to administrative functionality and database objects, the Web service handling switching contexts after the machine-executable code for the script runs;

receiving a call from the computer program to the Web service;

executing the machine-executable code in response to the call to produce an output; and

sending the output to the computer program.

36. The one or more servers of claim 35 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, code to generate a graphical user interface (GUI) into which the script is entered; and

wherein the method further comprises:

receiving a request for the GUI;

outputting the GUI in response to the request; and

receiving the script via the GUI.

37. The one or more servers of claim 35 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises:

storing, in the one or more servers, a compiler for compiling the script; and

storing, in the one or more servers, a database to store information corresponding to the machine-executable code.

38. The one or more servers of claim 35 , wherein configuring the one or more servers to enable script for the Web service to be defined dynamically comprises storing, in the one or more servers, machine-executable code that, when executed, enables receipt of the script.

39. The one or more servers of claim 35 , wherein the call comprises a HyperText Transfer Protocol (HTTP) command, the HTTP command identifying the script in accordance with a convention defined by a proprietor of the script.

40. The one or more servers of claim 35 , wherein the computer program passes an argument with the call, the argument being associated with an aspect of an entity being monitored; and

wherein the machine-executable code for the Web service obtains information associated with the argument and uses the information to generate the output.

41. The one or more servers of claim 35 , further comprising sending the output to a device or system other than the device on which the computer program is executing.

42. The one or more servers of claim 35 , wherein the computer program communicates with the one or more servers over a communication path that is at least partially wireless.

43. The one or more servers of claim 35 , wherein the call comprises instructions to access a functionality of the Web service.

Assignments (8)
SECURITY INTEREST Recorded Sep 13, 2018
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047480/0888 →
SECURITY INTEREST Recorded Nov 4, 2015
From: PTC INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037046/0930 →
MERGER Recorded May 27, 2015
From: AXEDA CORPORATION
To: PTC INC.
Reel/Frame 035719/0680 →
RELEASE OF SECURITY INTEREST Recorded Aug 25, 2014
From: COMERICA BANK
To: AXEDA CORPORATION
Reel/Frame 033608/0704 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2013
From: BIRON, JOSEPH L., III
To: AXEDA CORPORATION
Reel/Frame 029574/0012 →
SECURITY AGREEMENT Recorded Jul 24, 2012
From: AXEDA CORPORATION
To: COMERICA BANK
Reel/Frame 028629/0538 →
RELEASE OF SECURITY INTEREST Recorded Jul 17, 2012
From: MMV CAPITAL PARTNERS INC.
To: AXEDA CORPORATION
Reel/Frame 028563/0446 →
RELEASE OF SECURITY INTEREST Recorded Jul 16, 2012
From: SILICON VALLEY BANK
To: AXEDA CORPORATION
Reel/Frame 028558/0744 →