IP Library Granted Patent US 7,370,333
Granted Patent B2
US 7,370,333 · App. 10/452,961 · Granted May 6, 2008

Efficient processing of a convoy workflow scenario in a message driven process

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,370,333
App. No.
10/452,961
Granted
May 6, 2008
Kind
B2
Abstract

An XLANG/s compiler detects convoy scenarios during compilation and generates runtime directives to correctly correlate incoming messages with business process instances. A convoy scenario, present in event driven processes, is defined by a correlation set initialized during a receive operation which is provided to a subsequent receive operation. The compiler detects those convoy scenarios by analyzing the control and dataflow of a XLANG/s program. Three convoy patterns are distinguished: (1) activation convoys, (2) uniform sequential convoys, and (3) non-uniform sequential convoys. XLANG/s allows declarative descriptions of convoy scenarios without requiring an understanding of the low-level details supporting their correct execution. Convoy scenarios are processed by statically analyzing a written workflow application to deduce the nature and type of convoy scenarios used by the application. Information is extracted at compile time to support the runtime infrastructure. The runtime infrastructure is tightly integrated with the underlying correlation and subscription evaluation framework.

Claims (64)

1. A computer-implemented method for processing convoy scenarios in a message driven process, said method comprising:

analyzing a static workflow application for receiving and processing messages;

determining if at least one convoy scenario exists in said static workflow application, a convoy scenario comprising a scenario wherein:

at least a portion of receivable messages are related;

a relationship of related messages is determinable upon receipt of a first one of said related messages;

a plurality of messages are receivable prior to processing any of said related messages; and

said related messages are to be handled by a common process;

classifying each existing convoy scenario as one of a plurality of convoy classes, said plurality of convoy classes comprising at least one of:

a parallel convoy class, wherein related received messages are to be dispatched to parallel instances of a process; and

a sequential convoy class, wherein related received messages are be dispatched to sequential instances of a process, and

for each convoy class, generating a convoy-class-specific infrastructure for correlating incoming messages of a convoy class with processes associated with said each convoy class and message type,

wherein said parallel convoy class comprises an activation convoy class, wherein:

an instance of a process is instantiated in response to a first received message of a plurality of related messages belonging to said activation convoy class;

said first received message of said activation convoy class is to be dispatched to said instance; and

subsequently received messages of said activation convoy class are to be dispatched to said instance.

2. The method in accordance with claim 1 , wherein said processes comprise business processes.

3. The method in accordance with claim 2 , wherein said messages are represented in a form of an extensible markup language (XML) and said business processes are represented in a form of an XLANG/s language.

4. The method in accordance with claim 1 , said sequential convoy class comprising a uniform sequential convoy class, wherein: related messages are of a common type; and related messages are to be processed in an order of receipt.

5. The method in accordance with claim 1 , said sequential convoy class comprising a non-uniform sequential convoy class, wherein; related messages are of different types; and related messages are to be processed in a predetermined order.

6. The method in accordance with claim 1 , wherein said act of determining comprises interpreting a convoy class identifier embedded within each receive message statement of said static workflow application.

7. The method in accordance with claim 1 , wherein said convoy-class-specific infrastructure is compatible with a .NET runtime environment.

8. A computer readable storage medium encoded with a computer program code for directing a computer processor to process convoy scenarios in a message driven process, said computer program code comprising:

an analyze code segment for causing said computer processor to analyze a static workflow application for receiving and processing messages;

a determine code segment for causing said computer processor to determine if at least one convoy scenario exists in said static workflow application, a convoy scenario comprising a scenario wherein:

at least a portion of receivable messages are related;

a relationship of related messages is determinable upon receipt of a first one of said related messages;

a plurality of messages are receivable prior to processing any of said related messages; and

said related messages are to be handled by a common process;

a classify code segment for causing said computer processor to classify each existing convoy scenario as one of a plurality of convoy classes, said plurality of convoy classes comprising at least one of:

a parallel convoy class, wherein related received messages are to be dispatched to parallel instances of a process; and

a sequential convoy class, wherein related received messages are be dispatched to sequential instances of a process; and

a generate code segment for causing said computer processor to, for each convoy class, generate a convoy-class-specific infrastructure for correlating incoming messages of a convoy class with processes associated with said each convoy class and message type,

wherein said parallel convoy class comprises an activation convoy class, wherein:

an instance of a process is instantiated in response to a first received message of a plurality of related messages belonging to said activation convoy class;

said first received message of said activation convoy class is to be dispatched to said instance; and

subsequently received messages of said activation convoy class are to be dispatched to said instance.

9. The computer readable storage medium in accordance with claim 8 , wherein said processes comprise business processes.

10. The computer readable storage medium in accordance with claim 9 , wherein said messages are represented in a form of an extensible markup language (XML) and said business processes are represented in a form of an XLANG/s language.

11. The computer readable storage medium in accordance with claim 8 , said sequential convoy class comprising a uniform sequential convoy class, wherein: related messages are of a common type; and related messages are to be processed in an order of receipt.

12. The computer readable storage medium in accordance with claim 8 , said sequential convoy class comprising a non-uniform sequential convoy class, wherein; related messages are of different types; and related messages are to be processed in a predetermined order.

13. The computer readable storage medium in accordance with claim 8 , wherein said act of determining comprises interpreting a convoy class identifier embedded within each receive message statement of said static workflow application.

14. The computer readable storage medium in accordance with claim 8 , wherein said convoy-class-specific infrastructure is compatible with a .NET runtime environment.

15. A computer system for processing convoy scenarios in a message driven process, said computer system comprising:

a processor comprising a memory;

a compiler stored in said memory, said compiler comprising:

means for analyzing a static workflow application for receiving and processing messages;

means for determining if at least one convoy scenario exists in said static workflow application, a convoy scenario comprising a scenario wherein:

at least a portion of receivable messages are related;

a relationship of related messages is determinable upon receipt of a first one of said related messages;

a plurality of messages are receivable prior to processing any of said related messages; and

said related messages are to be handled by a common process;

means for classifying each existing convoy scenario as one of a plurality of convoy classes, said plurality of convoy classes comprising at least one of: a parallel convoy class, wherein related received messages are to be dispatched to parallel instances of a process; and

a sequential convoy class, wherein related received messages are be dispatched to sequential instances of a process; and

for each convoy class, means for generating a convoy-class-specific infrastructure for correlating incoming messages of a convoy class with processes associated with said each convoy class and message type,

wherein said parallel convoy class comprises an activation convoy class, wherein:

an instance of a process is instantiated in response to a first received message of a plurality of related messages belonging to said activation convoy class;

said first received message of said activation convoy class is to be dispatched to said instance; and

subsequently received messages of said activation convoy class are to be dispatched to said instance.

16. The computer system in accordance with claim 15 , wherein said processes comprise business processes.

17. The computer system in accordance with claim 16 , wherein said messages are represented in a form of an extensible markup language (XML) and said business processes are represented in a form of an XLANG/s language.

18. The computer system in accordance with claim 15 , said sequential convoy class comprising a uniform sequential convoy class, wherein: related messages are of a common type; and related messages are to be processed in a order of receipt.

19. The computer system in accordance with claim 15 , said sequential convoy class comprising a non-uniform sequential convoy class, wherein; related messages are of different types; and related messages are to be processed in a predetermined order.

20. The computer system in accordance with claim 15 , wherein said means for determining comprises means for interpreting a convoy class identifier embedded within each receive message statement of said static workflow application.

21. The computer system in accordance with claim 15 , wherein said convoy-class-specific infrastructure is compatible with a .NET runtime environment.

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 Sep 22, 2003
From: MEHTA, BIMAL; KLEIN, JOHANNES; GRABER, LEE; MAYBEE, PAUL; BALASUBRAMANIAN, SRIRAM; SAHA, SANJIB; THATTE, SATISH R.; RINGSETH, PAUL F.
To: MICROSOFT CORPORATION
Reel/Frame 014504/0835 →