Package guarana.toolkit.engine

Provides an asynchronous and multi-thread runtime system to execute EAI Solutions.

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.
 

Package guarana.toolkit.engine Description

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.


Since:
Guaraná SDK 1.0.0


Guaraná DSL Home