IP Library Granted Patent US 7,412,451
Granted Patent B2
US 7,412,451 · App. 10/899,262 · Granted Aug 12, 2008

Method for persisting a schedule and database schema

Assignee: Microsoft Corporation
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 7,412,451
App. No.
10/899,262
Granted
Aug 12, 2008
Kind
B2
Abstract

The invention provides a database schema for representing a workflow process definition (e.g., a schedule). The database schema may also include one or more bindings associated with the schedule, as well as persisted state information and data. The invention further includes a method for storing schedule information in a storage medium, as well as a computer-readable medium having a data structure stored thereon. The storage of schedule-related information provides for ease of version control, and ease of distribution, for example, where several engines point to the same database as a single source of transaction processing or workflow schedule definitions. The definitional database schema may be advantageously employed to reconstruct the schedule definition language solely from information in a database. In addition, the schema may be used for storing instances of running schedules and data associated therewith. This allows ease of schedule state and data monitoring using existing database query tools.

Claims (64)

1. A database schema for storage of process information in a database stored on a computer readable storage medium, comprising:

at least one table representing process definition information derived from a process definition language representation of a process; and

at least one table for storing runtime data associated with a process including storing a schedule state in the database when a transaction in the schedule is committed, storing a schedule state in the database when a compensation process is started and finished, and storing a schedule state in the database when schedule is dehydrated.

2. The schema of claim 1 , further comprising a second table representing runtime information relating to execution of an instance of a schedule.

3. The schema of claim 2 , wherein the process comprises a schedule and the second table is adapted to represent at least one of the state of transactions associated with an instance of the schedule, messages associated with an instance of the schedule, and the state of actions associated with an instance of the schedule.

4. The schema of claim 1 , further comprising a second table representing runtime information relating to execution of an instance of the process.

5. The schema of claim 4 , wherein the process comprises a schedule and the second table is adapted to represent at least one of the state of transactions associated with an instance of the schedule, messages associated with an instance of the schedule, and the state of actions associated with an instance of the schedule.

6. A computer-readable storage medium having stored thereon a data structure, comprising:

a first data component with data representing a definition of a process;

a second data component with data representing instance information relating to an instance of the process; and

a third data component with data representing runtime data relating to an instance of the process, wherein the runtime data comprises at least one of schedule state when a transaction in the schedule is committed, a schedule state when a compensation process is started and finished, or a schedule state when a schedule is dehydrated.

7. The computer-readable medium of claim 6 , wherein the data structure further comprises a fourth data component with data representing binding information associated with the process.

8. A database schema system, comprising:

means for storing a process definition in a database according to at least one definition table of a database schema;

means for storing instance information associated with the process in the database according to at least one instance table of the database schema; and

means for storing runtime data associated with the process in the database according to at least one data table of the database schema including storing a schedule state in the database when a transaction in the schedule is committed, storing a schedule state in the database when compensation process is started and finished, and storing a schedule state in the database when a schedule is dehydrated.

9. A database schema for storage of process information in a database stored on a computer readable storage medium, comprising:

a definitional element with at least one definition table for storing a process definition;

a runtime element with at least one instance table for storing instance information associated with an instance of the process; and

at least one data table for storing runtime data associated with the process including storing a schedule state in the database when a transaction in the schedule is committed, storing a schedule state in the database when a compensation process is started and finished, and storing a schedule state in the database when schedule is dehydrated.

10. The database schema of claim 9 , wherein the runtime data comprises at least one of the state of transactions associated with an instance of the process, messages associated with an instance of the process, and the state of actions associated with an instance of the process.

11. The database schema of claim 10 , wherein the definitional element further comprises at least one table for storing binding information associated with the process.

12. The database schema of claim 11 , wherein the process comprises a schedule.

13. The database schema of claim 12 , wherein at least a portion of the schema is normalized.

14. The database schema of claim 9 , wherein the process comprises a schedule.

15. The database schema of claim 9 , wherein the definitional element further comprises at least one table for storing binding information associated with the process.

16. The database schema of claim 9 , wherein at least a portion of the schema is normalized.

17. A computer-readable storage medium having computer-executable instructions for performing steps comprising:

querying a database having schedule-related information stored therein according to a database schema to obtain a result set, wherein the database schema comprises a definitional element with at least one definition table for storing a process definition, and a runtime element with at least one instance table for storing instance information and at least one data table for storing runtime data, and wherein the result set comprises at least a portion of the schedule-related information;

storing schedule-related information in the database according to the database schema, wherein a schedule state is stored in the database when a transaction in the schedule is committed, a schedule state is stored in the database when a compensation process is started and finished, and a schedule state is stored in the database when a schedule is dehydrated, and

providing the result set to a monitoring device; and

monitoring the result set via the monitoring device.

18. A computer-readable medium having computer-executable instructions for performing steps comprising:

storing a process definition in a database according to at least one definition table of a database schema;

storing instance information associated with the process in the database according to at least one instance table of the database schema;

storing runtime data associated with the process in the database according to at least one data table of the database schema;

storing a schedule state in the database when a transaction in the schedule is committed;

storing a schedule state in the database when a compensation process is started and finished; and

storing a schedule state in the database when a schedule is dehydrated.

19. The computer-readable medium of claim 18 , further comprising computer-executable instruction for:

querying the database according to the database schema to obtain a result set, wherein the result set comprises at least a portion of the runtime data associated with the process;

providing the result set to a monitoring device; and

monitoring the result set via the monitoring device.

20. A method of monitoring a schedule having schedule-related information associated therewith, comprising:

querying a database having schedule-related information stored therein according to a database schema to obtain a result set, wherein the database schema comprises a definitional element with at least one definition table for storing a process definition, and a runtime element with at least one instance table for storing instance information and at least one data table for storing runtime data, and wherein the result set comprises at least a portion of the schedule-related information;

storing schedule-related information in the database according to the database schema, wherein a schedule state is stored in the database when a transaction in the schedule is committed, a schedule state is stored in the database when a compensation process is started and finished, and a schedule state is stored in the database when a schedule is dehydrated, and

providing the result set to a monitoring device; and

monitoring the result set via the monitoring device.

21. The method of claim 20 , wherein monitoring the schedule-related information comprises history reporting.

22. The method of claim 20 , wherein monitoring the state information includes event monitoring.

23. A method for storing process information in a database, comprising:

providing a database schema having

a definitional element with at least one definition table for storing a process definition; and

a runtime element with at least one instance table for storing instance information and at least one data table for storing runtime data;

storing a process definition in the database according to the at least one definition table;

storing instance information associated with the process in the database according to the at least one instance table; and

storing runtime data associated with a process in the database according to the at least one data table, wherein storing runtime data associated with a process in the database according to the at least one data table comprises:

storing a schedule state in the database when a transaction in the schedule is committed;

storing a schedule state in the database when a compensation process is started and finished; and

storing a schedule state in the database when a schedule is dehydrated.

24. The method of claim 23 , wherein storing instance information in the database according to the at least one instance table comprises storing binding information in the database.

25. The method of claim 23 , wherein storing runtime data in the database according to the at least one data table comprises storing at least one transaction state, actions, and processes executed, and messages in the database.

26. The method of claim 23 , wherein storing runtime data in the database according to the at least one data table comprises storing at least one transaction state, actions, and processes executed, and messages in the database.

27. The method of claim 23 , wherein storing instance information in the database according to the at least one instance table comprises storing binding information in the database.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2004
From: MCCRADY, DONALD J.; MITAL, AMIT; SIVAKUMAR, A.S.
To: MICROSOFT CORPORATION
Reel/Frame 015625/0132 →
Continuity (2)
Continuation 0974122200 · Dec 20, 2000
Related Publication 20050004888A1 · Jan 6, 2005