IP Library Granted Patent US 9,460,304
Granted Patent B1
US 9,460,304 · App. 13/631,426 · Granted Oct 4, 2016

Data services generation

Inventors: Kenwood Tsai (Palo Alto, CA); Satyapal P. Reddy (Fremont, CA); Arnaud Viltard (Oakland, CA); Sachin G. Totale (Bangalore, IN); Ashraf A Syed (Bangalore, IN)
Assignee: EMC Corporation
G06F21/6218G06F8/10G06F8/20G06F17/30864G06Q30/02G06F2221/2141
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,460,304
App. No.
13/631,426
Filed
Sep 28, 2012
Granted
Oct 4, 2016
Kind
B1
Art Unit
3629
USPC
705/348
Abstract

A system for generation of a RESTful data service comprises a processor and a memory. The processor is configured to: receive a business process model; read the business process model to determine one or more inputs and one or more outputs; generate code for a RESTful data service to invoke the business process model that provides the input data and processes the output data; and generate a URL for the RESTful data service, wherein the URL represents the business process as an addressable resource. The memory is coupled to the processor and is configured to provide the processor with instructions.

Claims (72)

1. A system for generation of a RESTful data service, comprising:

a processor configured to:

receive a business process model associated with a business process that defines a sequence of activities comprising the business process, one or more inputs into the business process, and one or more outputs from the business process, wherein the business process requires access to disparate and multiple data sources, wherein a first activity of the sequence of activities comprises a first orchestrated access of a first data source, wherein a second activity of the sequence of activities comprises a second orchestrated access of a second different data source, wherein an activity of the sequence of activities comprises a data mapping step, wherein the business process model associated with the business process that defines the sequence of activities comprising the business process is to be executed in a single execution context and with a predictable and/or a determinate execution time;

read the business process model to identify at least one process variable defined by the business process model to be an input into the business process, and at least one process variable defined by the business process model to be an output from the business process;

configure a business process engine to:

receive the input into the business process corresponding to data for the at least one process variable defined by the business process model to be the input into the business process;

execute the entire sequence of activities comprising the business process without pause in response to receiving the input into the business process, including by mapping the input into the business process to at least some of the activities in the sequence of activities comprising the business process, orchestrating the first access to the first data source, orchestrating the second access to the second different data source, mapping and transforming data from each data source, and using temporarily stored process state data and process variables to coordinate the execution of the sequence of activities;

synchronously wait for the sequence of activities to complete and return the output from the business process corresponding to data for the at least one process variable defined by the business process model to be the output from the business process;

provide the output from the business process returned from the completed sequence of activities; and

purge the temporarily stored process state data and process variables as soon as the output from the business process is returned;

generate service code for the RESTful data service that invokes the business process engine including by providing the input into the business process to the business process engine and processing the output from the business process that the business process engine is configured to provide; and

generate a URL for the RESTful data service, wherein the URL represents the business process as an addressable resource;

bind the RESTful data service to a control in a user interface page builder;

store the service code bound to the control through the URL in a data storage unit in communication with a service layer;

receive an indication from a service user over a network to invoke the RESTful data service using the control on the user interface page;

recall the service code that invokes the business process through the RESTful data service from the data storage unit in communication with the service layer;

execute the RESTful data service that invokes the business process using the business process engine in the single execution context and with a predictable and/or a determinate execution time;

return the output from the business process to the user interface page; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system as in claim 1 , wherein the RESTful data service is accessed over HTTP.

3. The system as in claim 1 , wherein URIs are used to address the output from the business process.

4. The system as in claim 1 , wherein one of the disparate and multiple data sources comprises a docbase.

5. A system as in claim 1 , wherein one of the disparate and multiple data sources comprises an external resource.

6. A system as in claim 5 , wherein the external resource comprises a relational data base management system.

7. A system as in claim 5 , wherein the external resource comprises a web service.

8. A system as in claim 5 , wherein the external resource comprises a hypertext transfer protocol.

9. A method for generation of a RESTful data service, comprising:

receiving a business process model associated with a business process that defines a sequence of activities comprising the business process, one or more inputs into the business process, and one or more outputs from the business process, wherein the business process requires access to disparate and multiple data sources, wherein a first activity of the sequence of activities comprises a first orchestrated access of a first data source, wherein a second activity of the sequence of activities comprises a second orchestrated access of a second different data source, wherein an activity of the sequence of activities comprises a data mapping step, wherein the business process model associated with the business process that defines the sequence of activities comprising the business process is to be executed in a single execution context and with a predictable and/or a determinate execution time;

reading the business process model to identify at least one process variable defined by the business process model to be an input into the business process, and at least one process variable defined by the business process model to be an output from the business process;

configuring a business process engine to:

receive the input into the business process corresponding to data for the at least one process variable defined by the business process model to be the input into the business process;

execute the entire sequence of activities comprising the business process without pause in response to receiving the input into the business process, including by mapping the input into the business process to at least some of the activities in the sequence of activities comprising the business process, orchestrating the first access to the first data source, orchestrating the second access to the second different data source, mapping and transforming data from each data source, and using temporarily stored process state data and process variables to coordinate the execution of the sequence of activities;

synchronously wait for the sequence of activities to complete and return the output from the business process corresponding to data for the at least one process variable defined by the business process model to be the output from the business process;

provide the output from the business process returned from the completed sequence of activities; and

purge the temporarily stored process state data and process variables as soon as the output from the business process is returned;

generating, using a processor, code for the RESTful data service that invokes the business process engine including by providing the input into the business process to the business process engine and processing the output from the business process that the business process engine is configured to provide; and

generating a URL for the RESTful data service, wherein the URL represents the business process as an addressable resource;

binding the RESTful data service to a control in a user interface page builder;

storing the RESTful data service bound to the control in a data storage unit in communication with a service layer;

receiving an indication from a service user over a network to invoke the RESTful data service using the control on the user interface page;

recalling the service code that invokes the business process through the RESTful data service from the data storage unit in communication with the service layer;

executing the RESTful data service that invokes the business process using the business process engine in the single execution context and with a predictable and/or a determinate execution time;

returning the output from the business process to the user interface page.

10. The method as in claim 9 , wherein the RESTful data service is accessed over HTTP.

11. The method as in claim 9 , wherein URIs are used to address the output from the business process.

12. The method as in claim 9 , wherein one of the disparate and multiple data sources comprises a docbase.

13. A method as in claim 9 , wherein one of the disparate and multiple data sources comprises an external resource.

14. A method as in claim 13 , wherein the external resource comprises a relational data base management system.

15. A method as in claim 13 , wherein the external resource comprises a web service.

16. A method as in claim 13 , wherein the external resource comprises a hypertext transfer protocol.

17. A computer program product for generation of a RESTful data service, the computer program product being embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

receiving a business process model associated with a business process that defines a sequence of activities comprising the business process, one or more inputs into the business process, and one or more outputs from the business process, wherein the business process requires access to disparate and multiple data sources, wherein a first activity of the sequence of activities comprises a first orchestrated access of a first data source, wherein a second activity of the sequence of activities comprises a second orchestrated access of a second different data source, wherein an activity of the sequence of activities comprises a data mapping step, wherein the business process model associated with the business process that defines the sequence of activities comprising the business process is to be executed in a single execution context and with a predictable and/or a determinate execution time;

reading the business process model to identify at least one process variable defined by the business process model to be an input into the business process, and at least one process variable defined by the business process model to be an output from the business process;

configuring a business process engine to:

receive the input into the business process corresponding to data for the at least one process variable defined by the business process model to be the input into the business process;

execute the entire sequence of activities comprising the business process without pause in response to receiving the input into the business process, including by mapping the input into the business process to at least some of the activities in the sequence of activities comprising the business process, orchestrating the first access to the first data source, orchestrating the second access to the second different data source, mapping and transforming data from each data source, and using temporarily stored process state data and process variables to coordinate the execution of the sequence of activities;

synchronously wait for the sequence of activities to complete and return the output from the business process corresponding to data for the at least one process variable defined by the business process model to be the output from the business process;

provide the output from the business process returned from the completed sequence of activities; and

purge the temporarily stored process state data and process variables as soon as the output from the business process is returned;

generating code for the RESTful data service that invokes the business process engine including by providing the input into the business process to the business process engine and processing the output from the business process that the business process engine is configured to provide; and

generating a URL for the RESTful data service, wherein the URL represents the business process as an addressable resource;

binding the RESTful data service to a control in a user interface page builder;

storing the RESTful data service bound to the control in a data storage unit in communication with a service layer;

receiving an indication from a service user over a network to invoke the RESTful data service using the control on the user interface page;

recalling the service code that invokes the business process through the RESTful data service from the data storage unit in communication with the service layer;

executing the RESTful data service that invokes the business process using the business process engine in the single execution context and with a predictable and/or a determinate execution time;

returning the output from the business process to the user interface page.

18. A system as in claim 1 , wherein the business process engine is further configured to:

fetch at once one or more objects related to the execution of the entire sequence of activities from the multiple disparate data sources including the first data source and the second different data source;

temporarily store the fetched objects for the duration of the execution.

19. A system as in claim 1 , wherein configuring the business process engine comprises identifying any activities in the entire sequence of activities comprising the business process that are rendezvous activities and flag rendezvous activities as not synchronously executable.

20. A system as in claim 1 , wherein reading the business process model to identify at least one process variable defined by the business process model to be an input into the business process comprises further receiving an indication from a business process builder user that a variable within the business process model is designated as one or more of the following: used for input only, used for input and output, used for output only, or not used for input or output.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 063559/0805) Recorded Jun 21, 2024
From: BARCLAYS BANK PLC
To: OPEN TEXT CORPORATION
Reel/Frame 067807/0069 →
SECURITY INTEREST Recorded Aug 30, 2023
From: OPEN TEXT CORPORATION
To: THE BANK OF NEW YORK MELLON
Reel/Frame 064761/0008 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT CORPORATION
To: BARCLAYS BANK PLC
Reel/Frame 063559/0805 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT CORPORATION
To: BARCLAYS BANK PLC
Reel/Frame 063559/0831 →
SECURITY INTEREST Recorded May 7, 2023
From: OPEN TEXT CORPORATION
To: BARCLAYS BANK PLC
Reel/Frame 063559/0839 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041579/0133 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2012
From: TSAI, KENWOOD; REDDY, SATYAPAL P.; VILTARD, ARNAUD; TOTALE, SACHIN G.; SYED, ASHRAF A.
To: EMC CORPORATION
Reel/Frame 029494/0424 →