On concurrency improvements in enterprise SOA middleware
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.
- [Show abstract] [Hide abstract] ABSTRACT: We study the problem of thread allocation in asynchronous distributed real-time and embedded systems. Each distributed node handles a limited set of resources, in particular a limited thread pool. Different 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 different 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 different 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.0Comments 15Citations
- [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.0Comments 25Citations
- [Show abstract] [Hide abstract] ABSTRACT: The specifications developed in the three areas such as communication protocols, service descriptions, and services discovery of web services, are discussed. The specifications include the simple object access protocol (SOAP), web services description language (WSDL) and the universal description, discovery, and integration (UDDI). SOAP is an XML-based protocol for messaging and remote procedure calls (RPC). WSDL defines a service's abstract description in terms of messages exchanged in a service interaction. The UDDI offer users a unified and systematic way to find service providers through a centralized registry of services.0Comments 949Citations