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.