|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
---|---|
Scheduler | A system agent that can execute tasks that are reported to it. |
Worker | A thread object used by the Scheduler to execute tasks. |
WorkQueue | A priority queue that contains work units ready to be executed. |
WorkUnit | Represents a wrapper for tasks that can be executed. |
Provides an asynchronous and multi-thread runtime system to execute EAI Solutions.
This runtime system is a very important part of the ongoing java Toolkit implementation for Guaraná DSL.
In this page we will provide you a brief overview on why EAI solutions need a new runtime system.
A typical approach in the design of enterprise application integration solutions is the use of a database to
store inbound messages (messages coming from the individual applications to the integration process) until all
the messages needed to start the integration process arrive. We refer to this approach as synchronous.
A distinctive feature of this synchronous approach is that it involves only a simple message workflow composed
of several tasks that receive, transform and send outbound messages (messages out of the integration process
to the applications); tasks might also request a wrapping process to interact with an application, fork the message
workflow, and so on. Current process support systems, such as Microsoft BizTalk Server, Open ESB, Apache Camel,
Mule ESB, Spring Integration and those based on BPEL, have a synchronous runtime system.
A notorious limitation of this approach is that it uses memory inefficiently in applications where requests issued
by tasks to individual applications take long (hours or even days in case the response depends on a human interaction)
to fulfil. In these situations the integration process instance remains blocked until the response arrives. Though
some techniques have been proposed to ease this limitation (notably, dehydration and rehydration [Wright09, Dunphy06]),
we consider the synchronous approach unsatisfactory; thus in the current Guaraná's Toolkit we explore the suitability
of asynchronous integration processes.
The distinctive feature of the asynchronous approach is that it uses a single multi-threaded process instance per
wrapping or integration process to handle all the messages. Consequently, processes that require multiple inbound
messages need to include tasks to correlate messages internally. The appealing side of this approach is its efficiency
in resource consumption [Hadjicostis99, Li08].
Bibliography:
[Wright09] Oracle SOA Suite Developer’s Guide. M. Wright, A. Reynolds. Packt Publishing. 2009.
[Dunphy06] Pro BizTalk 2006. G. Dunphy, A. Metwally. Apress. 2006.
[Hadjicostis99] Monitoring Discrete Event Systems Using Petri Net Embeddings. Christoforos N. Hadjicostis, George C. Verghese. ICATPN, 188-207. 1999.
[Li08] Designs of Bisimilar Petri Net Controllers With Fault Tolerance Capabilities. Lingxi Li, Christoforos N. Hadjicostis, R. S. Sreenivas. IEEE Transactions on Systems, Man, and Cybernetics, Part A, 38(1):207-217. 2008.
|
||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |