On concurrency improvements in enterprise SOA middleware.
ABSTRACT SOA is becoming prevalent in enterprise IT environments. As a result, component middleware are adding support for composite web services. Till recent past, most of these middleware were employed in tiered architectures. However, nature of call graphs differs in SOA. In this paper we revisit concurrency and deadlock issues that appear due to hosting SOA applications on middleware with prevalent thread allocation schemes. We propose a novel thread allocation scheme which performs an off-line analysis of web services call graphs and equips containers with essential information. At run-time, containers use this information and do not consult any central point or each other for thread allocation decisions. This makes our approach practical and scalable. We demonstrate, through simulations, that our approach can provide significant throughput improvements when compared with traditional thread allocation schemes.
- SourceAvailable from: Cesar Sanchez[Show abstract] [Hide abstract]
ABSTRACT: We study the problem of thread allocation in asynchronous distributed real-time and embedded systems. Each distributed node han- dles a limited set of resources, in particular a limited thread pool. Dier- ent methods can be invoked concurrently in each node, either by external agents or as a remote call during the execution of a method. In this pa- per we study thread allocation under a WaitOnConnection strategy, in which each nested upcall made while a thread is waiting must be made in a dieren t thread. We study protocols that control the allocation of threads to guarantee the absence of deadlocks. First, we introduce a computational model in which we formally describe the dieren t protocols and their desired properties. Then, we study two scenarios: a single agent performing sequential calls, and multiple agents with unrestricted concurrency. For each scenario we present (1) algorithms to compute the minimum amount of resources to avoid deadlocks, and (2) run-time protocols that control the allocation of these resources.Formal Techniques for Networked and Distributed Systems - FORTE 2005, 25th IFIP WG 6.1 International Conference, Taipei, Taiwan, October 2-5, 2005, Proceedings; 01/2005
- [Show abstract] [Hide abstract]
ABSTRACT: Remote method invocation in Java RMI allows the flow of control to pass across local Java threads and thereby span multiple virtual machines. However, the resulting distributed threads do not strictly follow the paradigm of their local Java counterparts for at least three reasons: Firstly, multiple local threads can contribute to the same distributed control flow, thus a remote call can not generally reenter a monitor. Secondly, blocks synchronized on remote objects do not work as expected. Thirdly, the thread interruption mechanism for threads executing a remote call is broken. These problems make multi-threaded distributed programming complicated and error prone. We present a solution that approaches on two levels: On the RMI level, we extend KaRMI , a replacement for RMI providing more efficient remote method invocation. There, we allow for reentering synchronized blocks by enforcing a single local thread on each participating virtual machine to be the unique representative for a distributed thread. We complement remote method invocation by remote monitor access and remote synchronized blocks. Our interrupt forwarding mechanism enables the application to get full control over its distributed threads. On the language level, we integrate these extensions with JavaParty's transparent remote objects  to get truly transparent distributed threads. We finally evaluate our approach with benchmarks that show costs and benefits of our overall design.12/2002; DOI:10.1109/IPDPS.2003.1213261
- [Show abstract] [Hide abstract]
ABSTRACT: This tutorial explores the most salient and stable specifications in each of the three major areas of the emerging Web services framework. They are the simple object access protocol, the Web Services Description Language and the Universal Description, Discovery, and Integration directory, which is a registry of Web services descriptions.IEEE Internet Computing 04/2002; 6(2-6):86 - 93. DOI:10.1109/4236.991449 · 2.00 Impact Factor