IP Library Granted Patent US 7,689,947
Granted Patent B2
US 7,689,947 · App. 11/619,691 · Granted Mar 30, 2010

Data-driven finite state machine engine for flow control

Assignee: International Business Machines 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,689,947
App. No.
11/619,691
Granted
Mar 30, 2010
Kind
B2
Abstract

Finite state machines are provided to run instances of user-defined routines within a computing system. The finite state machines and updates to the finite state machines are user-defined and are checked for compliance with one or more prescribed schemas by a finite state machine engine. Compliant finite state machine specifications are interpreted for the plurality of states and transitions that constitute the finite state machine. Requested instances of a finite state machine specification are initiated by the finite state machine engine, which creates proxies to monitor the current state of any given requested instance.

Claims (87)

1. A method for utilizing finite state machines in a computing system, the method comprising:

communicating a schema comprising validity parameters for a finite state machine to a finite state machine engine;

using the finite state machine engine to:

evaluate a user-generated finite state machine specification for compliance with the schema, the user-generated finite state machine specification comprising a plurality of states and a plurality of transitions;

interpret the user-generated finite state machine specification;

receive a request from a computing system for an instance of the user-generated finite state machine specification; and

initiate the requested instance of the user-generated finite state machine specification; and

using events from the computing systems that correspond to one or more of the plurality of transitions to advance the instance of the user-generated finite state machine specification through the plurality of states.

2. The method of claim 1 , further comprising communicating the defined schema to one or more users.

3. The method of claim 1 , further comprising using the finite state machine engine to:

create at least one externalized queue; and

record a current state of the initiated requested instance of the user-generated finite state machine in the externalized queue.

4. The method of claim 1 , further comprising using the finite state machine engine to create a proxy to represent a current state of the initiated requested instance of the user-generated finite state machine specification.

5. The method of claim 1 , further comprising using the finite state machine engine to:

evaluate a user-generated finite state machine specification update for compliance with the schema, the user-generated finite state machine specification update comprising updates to at least one previously interpreted user-generated finite state machine specification;

interpret the user-generated finite state machine specification update; and

update the previously interpreted user-generated finite state machine specification in accordance with the user-generated finite state machine specification update.

6. The method of claim 5 , wherein the updates comprise adding one or more transitions, deleting one or more transitions, changing an existing transition, adding method calls that perform an existing transition, removing method calls that perform an existing transition, adding an object map, deleting an object map, changing an object map, adding a state, removing a state, changing a state, adding a state entry method call, deleting a state entry method call, adding a state exit method call, deleting a state exit method call or combinations thereof.

7. The method of claim 1 , further comprising receiving a user-generated finite state machine specification at the finite state machine engine.

8. The method of claim 1 , further comprising expressing the user-generated finite state machine specification as at least one of an extensible mark-up language document and a diagram in a unified modeling language editing tool.

9. The method of claim 1 , further comprising: interpreting a user-generated finite state machine specification containing properties associated with a state, a transition or combinations thereof; and communicating the user defined properties to a computing system.

10. The method of claim 1 , wherein each one of the plurality of transitions comprises at least one method invocation on at least one object instance.

11. The method of claim 10 , further comprising determining each object instance at runtime.

12. The method of claim 1 , further comprising using the plurality of transitions to process event objects comprising computing system context additional to proxy state.

13. The method of claim 1 , wherein at least one transition in the plurality of transitions comprises a time-based transition.

14. The method of claim 1 , further comprising specifying a notification mechanism to be invoked when processing at least one of the plurality of transitions in the requested instance of the finite state machine specification.

15. A method for utilizing finite state machines in a computing system, the method comprising:

using a finite state machine engine to:

receive a request from a computing system for an instance of a user-generated finite state machine specification comprising a plurality of states and a plurality of transitions;

evaluate the user-generated finite state machine specification for compliance with the schema, the user-generated finite state machine specification comprising a plurality of states and a plurality of transitions

initiate the requested instance of the user-generated finite state machine specification;

create at least one externalized queue; and

record a current state of the initiated requested instance of the user-generated finite state machine in the externalized queue; and

using events from the computing system that correspond to one or more of the plurality of transitions to advance the instance of the user-generated finite state machine specification through the plurality of states.

16. The method of claim 15 , further comprising receiving a plurality of requests for concurrent instances of the finite state machine specification at the finite state machine engine;

wherein:

the step of initiating the requested instance further comprises using the single finite state machine engine to initiate each one of the requested concurrent instances of the finite state machine specification; and

the step of creating the at least one queue further comprises creating a unique queue for each one of the plurality of concurrent instances of the finite state machine specification.

17. The method of claim 15 , wherein the step of creating at least one queue external to the finite state machine engine further comprises creating a proxy to represent a current state of the initiated requested instance of the user-generated finite state machine specification.

18. The method of claim 17 , wherein the proxy comprises a Java interface.

19. The method of claim 15 , further comprising using the finite state machine engine to:

define a schema comprising validity parameters for a finite state machine;

interpret the user-generated finite state machine specification.

20. A method for utilizing finite state machines in a computing system, the method comprising:

communicating a schema comprising validity parameters for a finite state machine to a finite state machine engine;

using to finite state machine engine to:

evaluate a user-generated finite state machine specification for compliance with the schema, the user-generated finite state machine specification comprising a plurality of states and a plurality of transitions;

interpret the user-generated finite state machine specification;

receive a request from a computing system for an instance of the user-generated finite state machine specification;

initiate the requested instance of the user-generated finite state machine specification; and

create a proxy to control the instance of the user-generate finite state machine specification to represent a current state of the initiated requested instance of the user-generated finite state machine specification; and

using events from the computing system that correspond to one or more of the plurality of transitions to advance the instance of the user-generated finite state machine specification through the plurality of states.

21. A computer-readable storage medium containing a computer-readable code that when read by a computer causes the computer to perform a method for utilizing finite state machines in a computing system, the method comprising:

defining a schema comprising validity parameters for a finite state machine;

evaluating a user-generated finite state machine specification for compliance with the schema, the user-generated finite state machine specification comprising a plurality of states and a plurality of transitions;

interpreting the user-generated finite state machine specification;

receiving a request from a computing system for an instance of the user-generated finite state machine specification;

initiating the requested instance of the user-generated finite state machine specification; and

using events from the computing system that correspond to one or more of the plurality of transitions to advance the instance of the user-generated finite state machine specification through the plurality of states.

22. The computer readable storage medium of claim 21 , wherein the method further comprises:

creating at least one externalized queue; and

recording a current state of the initiated requested instance of the user-generated finite state machine in the externalized queue.

23. The computer readable storage medium of claim 21 , wherein the method further comprises creating a proxy to represent a current state of the initiated requested instance of the user-generated finite state machine specification.

24. The computer readable storage medium of claim 21 , wherein the method further comprises:

evaluating a user-generated finite state machine specification update for compliance with the schema, the user-generated finite state machine specification update comprising updates to at least one previously interpreted user-generated finite state machine specification;

interpreting the user-generated finite state machine specification update; and

updating the previously interpreted user-generated finite state machine specification in accordance with the user-generated finite state machine specification update.

25. The computer readable storage medium of claim 24 , wherein the updates comprise adding one or more transitions, deleting one or more transitions, changing an existing transition, adding method calls that perform an existing transition, removing method calls that perform an existing transition, adding an object map, deleting an object map, changing an object map, adding a state, removing a state, changing a state, adding a state entry method call, deleting a state entry method call, adding a state exit method call, deleting a state exit method call or combinations thereof.

26. The computer readable storage medium of claim 21 , wherein the method further comprises expressing the user-generated finite state machine specification as an extensible mark-up language document.

27. The computer readable storage medium of claim 21 , wherein the method further comprises expressing the user-generated finite state machine specification as a diagram in a unified modeling language editing tool.

28. The computer readable storage medium of claim 21 , wherein the method further comprises specifying a notification mechanism to be invoked when processing at least one of the plurality of transitions in the requested instance of the finite state machine specification.

29. A computer-readable storage medium containing a computer-readable code that when read by a computer causes the computer to perform a method for utilizing finite state machines in a computing system, the method comprising:

receiving a request from a computing system for an instance of a user-generated finite state machine specification comprising a plurality of states and a plurality of transitions;

initiating the requested instance of the user-generated finite state machine specification;

creating at least one externalized queue;

evaluate the user-generated finite state machine specification for compliance with the schema, the user-generated finite state machine specification comprising a plurality of states and a plurality of transitions

recording a current state of the initiated requested instance of the user-generated finite state machine in the externalized queue; and

using events from the computing system that correspond to one or more of the plurality of transitions to advance the instance of the user-generated finite state machine specification through the plurality of states.

30. The computer readable storage medium of claim 29 , wherein the step of receiving the request further comprises receiving the request at a single finite state machine engine.

31. The computer readable storage medium of claim 30 , wherein the method further comprises receiving a plurality of requests for concurrent instances of the finite state machine specification;

wherein:

the step of initiating the requested instance further comprises using the single finite state machine engine to initiate each one of the requested concurrent instances of the finite state machine specification; and

the step of creating the at least one queue further comprises creating a unique queue for each one of the plurality of concurrent instances of the finite state machine specification.

32. The computer readable storage medium of claim 29 , wherein the step of creating at least one queue external to the finite state machine engine further comprises creating a proxy to represent a current state of the initiated requested instance of the user-generated finite state machine specification.

33. The computer readable storage medium of claim 29 , wherein the method further comprises:

defining a schema comprising validity parameters for a finite state machine;

interpreting the user-generated finite state machine specification.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2007
From: CHALLENGER, JAMES R.; DEGENARO, LOUIS; GILES, JAMES; REED, PAUL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 018877/0877 →
Continuity (1)
Related Publication 20080164908A1 · Jul 10, 2008