An Efficient Decentralized Middleware-based Load Balancing in state-full CORBA Object System Uttam Kumar Roy, Samiran Chattopadhyay Department of Information Technology, Jadavpur University, India {u_roy, samiran}@it.jusl.ac.in ABSTRACT Next-generation distributed CORBA applications must provide low-latency Quality of Service (QoS). Load balancing is an important technique to improve system performance. Likewise, it can adapt configuration changes due to hardware or software malfunction dynamically. Load balancing at the middleware level allows more flexibility in terms of granularity and distribution of load than the existing solutions based on lower system levels. In this paper we have provided a 3-tier on-demand adaptive transparent load balancing architecture for state-full CORBA object caching system and implemented it using a combination of interceptor and object wrapper to intercept requests at various points. Deficiencies of common load balancing techniques have been identified. Instead of a centralized load balancer, balancing of load is performed entirely in distributed manner, which introduces the system as a fault-tolerant system also. Servers can always be added to the load balanced server group without restarting the system. Within the load-balancing group, consistency is maintained using write-through-cache-invalidate method. Key Words : CORBA, distributed system, load balancer, object state, wrapper, interceptor, client- server computing. 1. Introduction Recent popularity in online Internet services, e-commerce and online stock trading has increased the demand for scalable and low latency distributed computing systems. These systems concurrently serve many clients that transmit a large (often a ‘bursty’) number of requests and have stringent quality of service requirements. To avoid hardware investments and protect over committing resources, such systems scale incrementally by connecting servers through high-speed backbone. A simple and cost effective way to improve networked server performance is load balancing [8, 9, 16], where client application requests are distributed (through hardware or software) and processed in parallel across a group of back-end servers to improve overall system responsiveness. It can also adapt configuration changes that arise from hardware or software failure dynamically. Load balancing has been first introduced in operating system with process migration mechanism and memory ushering [2]. Process migration and remote execution are ways to delegate a process to other nodes for execution in order to reduce its execution time. Process migration can be driven by a node workload [5, 15, 22], jobs memory [1] and CPU [14] use. Balancing of load for large-scale networks has been considered mainly in the area of web access, and is usually implemented in the network infrastructure itself. Current solutions integrate load balancing by redirecting messages either by network address translation or by DNS lookups [10]. But those solutions don’t allow the client to react dynamically to the servers’ load. In this paper we focus on distributed middleware-based load balancing supported by CORBA [17] Object Request Brokers (ORBs). Our load balancing service provides following benefits: