Load balancing using Remote Method Invocation (JAVA RMI)
|
|
|
- Annis Nelson
- 10 years ago
- Views:
Transcription
1 Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg & Technology, Amaravati,(M.S.) INDIA 2 Department of Computer Science & Engg and Information Technology Sant GadgeBaba Amravati University,, Amaravati,(M.S.) INDIA Abstract Load balancing is the process of distributing client requests over a set of servers, and is a key element of obtaining good performance in a distributed application. Java RMI extends Java with distributed objects whose methods can be called from remote clients. RMI programs, there may be multiple replicas of a given overhead object that can be the receiver of a remote method in-vocation. Effectively distributing these requests across these replicas requires either an extra balancer processor additional code on the client for this distribution. this paper, we demonstrate the use of dynamic aspects in The client proxy is modified JAC to solve this problem. with an aspect to forward requests to a specific server, but the server is also able to shed load by altering or The overhead of this approach is removing this aspect evaluated using a set of micro benchmarks. Keywords: Load balancing, Java RMI, Dynamic aspectoriented programming. 1. Introduction Java RMI (Remote Method Invocation) adds remote objects to Java programs. These remote objects reside on object servers, separate machines connected by a common network. Clients can invoke methods on these remote objects using remote method invocation, which bundles the information needed to invoke the method into a message and sends it to the appropriate object server for execution. In compute-intensive remote object programs, clients may be invoking many expensive methods on servers. In particular, they may be invoking expensive methods on the same object, running the risk of decreasing performance by overloading the server. To improve performance this object can be replicated on several servers and requests can be distributed to a suitable replica, normally the server with the lightest load. This distribution of requests is referred to as load balancing, and is key to good performance in many distributed applications. For this paper, we are specifically interested in dynamic load balancing; we do not assume that workload is constant and predictable enough that statically allocating replicas to clients will produce an optimal solution. We also assume that while the client must participate in a load balancing scheme, it does not have sufficient information to determine the best strategy for invoking remote objects. That is, we assume the implementation of the remote objects is in the best position to select an appropriate load balancing strategy. This paper describes an approach to load balancing in Java RMI based on dynamic distributed aspect-oriented programming using Java Aspect Components (JAC) [13]. Aspect oriented programming (AOP) allows code (in the form of advice) to be inserted at specific points in the execution of a program. Dynamic AOP systems allow advice to be added and removed at run- time. JAC also allows advice to be transmitted over a network and applied to objects running on other object servers. We use these capabilities to create a balancer process that modifies a proxy object on the client to direct its remote method invocations to a specific replica. This advice can be altered or removed by a server to redistribute the invocations to other replicas and shed load. The research contributions of this paper are as follows. First, it shows the use of a dynamic, distributed AOP system to modify proxy code on the client. In contrast, most work in this area focuses on allowing the client to supply aspects to modify the server object. Second, this load balancing strategy is controlled by the balancer and server processes based on their knowledge of application requirements. The strategy can be altered at runtime by these processes as necessary. 2. Literature Review Distributed Web-server architectures that use request routing mechanisms on the cluster side are free of the problems of client-based approaches. Architecture transparency is typically obtained through a single virtual interface to the outside world, at least at the URL1 level. The cluster DNS(Domain name system) the authoritative DNS server for the distributed Web system s nodes translates the symbolic site name (URL) to the IP address of one server. This process allows the cluster DNS to implement many policies to select the appropriate server and spread client requests. DLB(Dynamic load balancing) is used to provide application level load balancing for individual parallel jobs. It ensures that all loads submitted through the DLB environment are distributed in such a way that the overall load in the system is balanced and application programs get maximum benefit from available resources. In this of the DLB has two major parts. One is called System Agent that collects system related information such as load of the system and the communication latency between computers. The other is called DLB Agent which is responsible to perform the load balancing. System Agent has to run all configured machine on the environment whereas DLB Agent is started by the user. The structure and components of the DLB environment is shown in Figure 1 ISSN: IJCTT
2 Figure 2: As long as the inter-packet spacing is larger than the delay difference between the two paths, one can assign the two packets to different paths without risking packet reordering. Figure 1: Components of DLB AWED provides a more exible model that supports the distribution of pointcuts and advice separately [10]. A pointcut can specify the host on which a join point applies and the host on which advice should be run. AWED permits advice to run on several hosts, which makes it useful for replication consistency mechanisms. This research could have used AWED rather than JAC. One potential problem with the used of AWED is that it uses new language constructs to specify pointcuts, and it does not appear that these constructs can be parameterized with runtime arguments. The pointcut() method in JAC does permit such parameters, making it more exible. FORMI(Fragmented object RMI) is built on a fragmented object model, where an object implementation is split across fragments that can be individually distributed across a network [4]. Fragments can be used to replicate or partition objects across the network. In FORMI, a proxy is a fragment on the client. A fragment can be replaced with another during execution, allowing the distribution of responsibilities to change at runtime. FORMI provides the same exibility as our aspect-oriented approach, and also does not impact client code. However, FORMI introduces its own stub compiler, changing the development process. Same way Dynamic Load Balancing without Packet Reordering, this paper shows that one can obtain the accuracy and responsiveness of packetbased splitting and still avoid packet reordering. This introduces FLARE, a new traffic splitting algorithm. FLARE exploits a simple observation. Consider load balancing traffic over a set of parallel paths Figure2. If the time between two successive packets is larger than the maximum delay difference between the parallel paths, one can route the second packet and subsequent packets from this flow on any available path with no threat of reordering. Thus,instead of switching packets or flows, FLARE switches packet bursts, called flowlets. By definition, flowlets are spaced by a minimum interval, chosen to be larger than the delay difference between the parallel paths under consideration. FLARE measures the delay on these paths and sets the flowlet timeout, to their maximum delay difference. The small size of flowlets lets FLARE split traffic dynamically and accurately, while the constraint imposed on their spacing ensures that no packets are reordered. 2.1 JAVA RMI(Java remote method invocation): The Java Remote Method Invocation Application Programming Interface (API), or Java RMI, is a Java application programming interface that performs the objectoriented equivalent of remote procedure calls (RPC). 1. The original implementation depends on Java Virtual Machine (JVM) class representation mechanisms and it thus only supports making calls from one JVM to another. The protocol underlying this Java-only implementation is known as Java Remote Method Protocol (JRMP). 2. In order to support code running in a non-jvm context, a CORBA version was later developed. Usage of the term RMI may denote solely the programming interface or may signify both the API and JRMP, whereas the term RMI-IIOP (read: RMI over IIOP) denotes the RMI interface delegating most of the functionality to the supporting CORBA implementation. The programmers of the original RMI API generalized the code somewhat to support different implementations, such as a HTTP transport. Additionally, the ability to pass arguments "by value" was added to CORBA in order to support the RMI interface. Still, the RMI-IIOP and JRMP implementations do not have fully identical interfaces. RMI functionality comes in the package java.rmi, while most of Sun's implementation is located in the sun.rmi package. Note that with Java versions before Java 5.0 developers had to compile RMI stubs in a separate compilation step using rmic. Version 5.0 of Java and beyond no longer requires this step. Jini offers a more advanced version of RMI in Java. It functions similarly but provides more advanced searching capabilities and mechanisms for distributed object applications. 3. Analysis Of Problem A second option is to augment the object registry to allow multiple remote objects to register remote object references using the same name. When a lookup is performed, the registry can return one of the registered references to the client, and the client invokes methods directly on that object. This approach cannot be implemented using the RMI registry supplied with Java RMI. That registry does not permit multiple entries for the same name, instead throwing an exception on successive attempts to bind with the same name. Instead, a customized registry must be used. Examples of this approach include the SmartRegistry [9] and Jgroup/ARM [8], though both systems allow multiple registrations to support replication rather than load balancing. In these systems, the registry returns a proxy with references to all available replicas for group communication. In a load balancing system, the registry would return a single reference to one of the registered objects. Another example of this approach is DNS load balancing. DNS databases can have multiple IP addresses associated with a name, and DNS servers can be configured to return different addresses according to a policy. DNS load ISSN: IJCTT
3 balancing has several limitations. First it can only return different IP addresses, so all servers on these hosts must use the same port number. Second DNS does not check the availability of a machine before returning its address, so it may return the address of a crashed server. A problem with this strategy is that the client generally caches the object reference and uses it for all remote method invocations, which limits the ability to balance load. That is, rather than redirecting each request from each client to a different server, this strategy redirects all requests from a client to the same server. It is possible that different clients will issue a different number of remote calls and will cause different loads at their servers. To redirect requests to another server, a client would need to obtain a new remote reference by issuing another lookup to the registry, and ensure that all client code uses the new remote object. In DNS load balancing, this problem is exacerbated by the ability of intermediate name servers to also cache results, although this can be mitigated by setting the time-to-live field on the address entry to expire relatively quickly. Another serious problem with this strategy is that it falls to the client to detect and redistribute the load if the server becomes overwhelmed, by reissuing a lookup request. There is no simple mechanism for allowing the server to automatically reduce its load by not accepting new requests. A load balancer process is placed between clients and servers. All client requests are forwarded to the balancer process, which forwards the request to a suitable server. The reply message takes the reverse path. This is shown in Figure 3. In Java RMI, the balancer would maintain a collection of references to different remote objects. For each incoming request, one of these remote objects would be selected and the balancer would invoke the same method on it, forwarding the request. The return value of the balancer method would simply forward the return value from the remote object. A similar strategy can be used in Apache, forwarding all requests to an entry server that rewrites the URL to redirect the request to one of a set of servers [1]. Figure 3: A Balancer forwarding request and replies This strategy has the benefit of being able to redirect each request from each client to a suitable server. In addition, incorporating new servers is relatively simple. When a new object starts on a new server, it could register itself with the balancer. From that point, the balancer could distribute requests to the new object. The balancer can also control the load on the servers by deciding how many requests to forward to any given server. Once this number has been reached, the balancer could queue up requests and forward them to servers as they complete their outstanding requests. However, this strategy adds communication overhead in the extra pair of messages between balancer and server. This overhead can be reduced by having the server reply directly to the client, which is not possible in Java RMI without altering the underlying RMI protocol. In addition, the balancer can potentially form a bottleneck since all requests must pass through it, though the amount of processing for each request is small. However, our approach has a basic security mechanism in that the client must explicitly run the proxy in a JACaware container to allow the server to advise it. Finer-grained control is not possible, though there are several proposals on how to address this problem [6, 12]. Java RMI Architecture: Figure 4: JAVA RMI architecture Java RMI is based on the distinction between object interface and implementation. It relies on the fact that a client cannot distinguish between objects implementing a remote interface if their behavior is identical. The architecture of Java RMI consists of the the layers in Figure 4 [3]. The first layer provides a proxy object on the client and a skeleton object at the server. In current versions of Java, there is one skeleton object for the server. The proxy object is a local object on the client JVM that implements the same remote interface as the object implementation on the server. The proxy translates method invocations to remote method invocations to the server. Part of this translation uses the remote object reference for the remote object held in the Remote Reference Layer. The Transport Layer handles client/server communication. The proxy object may be statically-generated by the rmic stub compiler or may be a dynamic proxy generated at runtime by the JVM. The rmic compiler starts with a class that implements a remote interface (one derived from java.rmi.remote). From this, rmic generates a proxy class that implements the same remote interface. The name of this proxy class is the name of the implementation with Stub appended. For each method in the remote interface, rmic generates code that uses the remote object reference to invoke the same method on the object implementation at the server. At runtime, when the client imports the remote object using the RMI registry, it loads this proxy class using its name. If the proxy class is successfully loaded, a proxy object is created. If not, then the second method of proxy generation is used. The second method of generating a proxy object is using the dynamic proxy mechanism introduced in Java 1.3 [16]. Given a list of interfaces, the JVM can create a proxy implementing them at runtime. Method calls on the proxy are delegated to an invocation handler object provided by the developer. In Java RMI, if the JVM cannot load the rmic-generated proxy class, the client creates a dynamic proxy using the remote interface. A RemoteObjectInvocationHandler object is created as the invocation handler, which provides identical ISSN: IJCTT
4 functionality as rmic-generated stubs. However, we consider these dynamic proxies to be statically generated. Their functionality is fixed; they are dynamic only in that they are created at runtime. 4. Proposed work In this section, we ll examine some software-based load balancing approaches that have been applied to Java RMI and similar distributed systems. The first approach is perhaps the most obvious. A load balancer process is placed between clients and servers. All client requests are forwarded to the balancer process, which forwards the request to a suitable server. The reply message takes the reverse path. This is shown in Figure 3. In Java RMI, the balancer would maintain a collection of references to different remote objects. For each incoming request, one of these remote objects would be selected and the balancer would invoke the same method on it, forwarding the request. The return value of the balancer method would simply forward the return value from the remote object. A similar strategy can be used in Apache, forwarding all requests to an entry server that rewrites the URL to redirect the request to one of a set of servers [1]. This strategy has the benefit of being able to redirect each request from each client to a suitable server. In addition, incorporating new servers is relatively simple. When a new object starts on a new server, it could register itself with the balancer. From that point, the balancer could distribute requests to the new object. The balancer can also control the load on the servers by deciding how many requests to forward to any given server. Once this number has been reached, the balancer could queue up requests and forward them to servers as they complete their outstanding requests. In addition, this strategy allows the servers (in conjunction with the balancer) to shed load when necessary. The balancer can factor in server load when distributing requests, by having each server periodically indicate its current status. The client is not involved in this process, instead simply forwarding all requests to the central balancer process. However, this strategy adds communication overhead in the extra pair of messages between balancer and server. This overhead can be reduced by having the server reply directly to the client, which is not possible in Java RMI without altering the underlying RMI protocol. In addition, the balancer can potentially form a bottleneck since all requests must pass through it, though the amount of processing for each request is small. A second option is to augment the object registry to allow multiple remote objects to register remote object references using the same name. When a lookup is performed, the registry can return one of the registered references to the client, and the client invokes methods directly on that object. This approach is shown in Figure 5. This approach cannot be implemented using the RMI registry supplied with Java RMI. That registry does not permit multiple entries for the same name, instead throwing an exception on successive attempts to bind with the same name. Instead, a customized registry must be used. Examples of this approach include the SmartRegistry [9] and Jgroup/ARM [8], though both systems allow multiple registrations to support replication rather than load balancing. In these systems, the registry returns a proxy with references to all available replicas for group communication. In a load balancing system, the registry would return a single reference to one of the registered objects. Another example of this approach is DNS load balancing. DNS databases can have multiple IP addresses associated with a name, and DNS servers can be configured to return different addresses according to a policy. DNS load balancing has several limitations. First, it can only return different IP addresses, so all servers on these hosts must use the same port number. Second, DNS does not check the availability of a machine before returning its address, so it may return the address of a crashed server. A problem with this strategy is that the client generally caches the object reference and uses it for all remote method invocations, which limits the ability to balance load. That is, rather than redirecting each request from each client to a different server, this strategy redirects all requests from a client to the same server. It is possible that different clients will issue a different number of remote calls and will cause different loads at their servers. To redirect requests to another server, a client would need to obtain a new remote reference by issuing another lookup to the registry, and ensure that all client code uses the new remote object. In DNS load balancing, this problem is exacerbated by the ability of intermediate name servers to also cache results, although this can be mitigated by setting the time-to-live field on the address entry to expire relatively quickly. Another serious problem with this strategy is that it falls to the client to detect and redistribute the load if the server becomes overwhelmed, by reissuing a lookup request. There is no simple mechanism for allowing the server to automatically reduce its load by not accepting new requests. Figure 5: Balancing using multiple registry entries 5. Implication This style of load balancing addresses the limitations of the two schemes presented in above Section. It avoids the need for the load balancer to be involved with each request, reducing its load and reducing the network latency of forwarding each request. It avoids the problem of clients caching information, since that information is now held in as aspect to which the client is oblivious. It also allows the server to shed load by unweaving aspects from clients, so they can be directed to new servers. One desirable property of our strategy is that it lends itself to balancing client sessions, where a session is a series of individual requests that form one larger, logical re- ISSN: IJCTT
5 quest. It can be advantageous to forward all requests for a single session to the same server, but balance different sessions to different servers. In our strategy, the server can achieve this by simply unweaving advice from a client at the end of a session. Our approach to load balancing uses dynamic, distributed aspects forwarded from server to client to advise client-side proxy objects. These aspects allow us to use a balancer process to 3 distribute clients to servers, but also allow the servers to shed load when necessary. This paper describes an approach to load balancing in Java RMI based on dynamic distributed aspect-oriented programming using Java Aspect Components (JAC) [13]. Aspect oriented programming (AOP) allows code (in the form of advice) to be inserted at specific points in the execution of a program. Dynamic AOP systems allow advice to be added and removed at run- time. JAC also allows advice to be transmitted over a network and applied to objects running on other object servers. We use these capabilities to create a balancer process that modifies a proxy object on the client to direct its remote method invocations to a specific replica. The overall process is shown in Figure 6 We start with what appears to be the standard solution using a balancer process, where clients initially send requests to the balancer. Indeed, the first request from each client is treated using this standard solution; the request is forwarded to a suitable server, and the results follow the reverse path. This is shown in messages 1, 3, 4, and 5. However, the balancer also dynamically weaves a JAC aspect on the client proxy while the request is being processed (message 2). This aspect alters the proxy to forward requests to a specific server. Thus, all subsequent requests are forwarded directly from client to the selected server (messages 6 and 7). Importantly, the balancer applies the aspect to the client when it is blocked awaiting the reply to its remote method invocation. This removes many of the potential concurrency problems that can arise in this type of system. A client is assigned to a given server and all requests are forwarded to the single location. Here, we exploit the ability to dynamically unweave an aspect in JAC. If the server is overloaded, it can unweave the aspect from the client proxy. After this unweaving, the next request from that client is forwarded to the balancer process, which then applies a new aspect to forward client requests to another server. That is, once the aspect is unwoven, the scenario in Figure repeats itself for the client, except that the client may be associated with a new server. Again, this unweaving is performed when the client is blocked awaiting a reply to reduce potential concurrency problems. This style of load balancing addresses the limitations of the two schemes presented in above Section. It avoids the need for the load balancer to be involved with each request, reducing its load and reducing the network latency of forwarding each request. It avoids the problem of clients caching information, since that information is now held in as aspect to which the client is oblivious. It also allows the server to shed load by unweaving aspects from clients, so they can be directed to new servers. Figure 6: Load balancing with dynamic remote aspect 6. Conclusion In this paper, we presented a dynamic, aspect oriented implementation of load balancing in Java RMI. Initial requests from a client are directed to a balancer process, which forwards the request to a server while simultaneously weaving an aspect on the client proxy. The woven aspect instructs the client to forward all subsequent requests to a specific server. However, if that server needs to shed some of its load, it can unweave the aspect to force the client to find another server. This approach reduces the overhead of having all requests forwarded by a balancer process but provides a more dynamic ability to redistribute load when necessary. In addition, all decisions are made by the server based on application needs. To evaluate this approach, we presented results from a series of micro benchmarks. These results show that the client does not suffer appreciable overhead from the advice woven into its proxy, and that the cost per request does fall by 30% by sending requests directly to a server without an intervening balancer process. However, the cost of weaving and unweaving advice is high and must be amortized over a number of calls from client to server. In the future, we could improve this research by augmenting the underlying Java RMI protocol to piggyback aspects and advice with reply messages. Our current implementation tries to overlap the transmission and weaving of advice with the execution of remote methods using threads. This augmented protocol would require clients to be more aware of the new functionality, but would reduce the overhead in applying advice over the network and obviate the need for extra threads. 7. References References as per IEEE format: [1] Apache HTTP Server Project. URL Rewriting Guide, ISSN: IJCTT
6 [2] B. Dufour et al. Measuring the dynamic behaviour of AspectJ programs. In Proceedings of the 19th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages , [3] jguru. Remote Method Invocation: Tutorial and Code Camp, [4] R. Kapitza, J. Domaschka, F. Hauck, H. Reiser, and H. Schmidt.FORMI: Integrating adaptive fragmented objects into Java RMI. IEEE Distributed Systems Online, 7(10), [5] G. Kiczales et al. Aspect-oriented programming. In Proc. 11th European Conference on Object Oriented Programming, volume 1241 of LNCS, pages Springer-Verlag, [6] D. Larochelle et al. Join point encapsulation. In Proceedings of the 2003 Workshop on Software Engineering Properties of not possible [7] C. Lopes. D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, [8] H. Meling et al. Jgroup/ARM: A distributed object group platform with autonomous replication management. Software: Practice and Experience, [10] L. Navarro et al. Explicitly distributed AOP using AWED. In Proceedings of the 5th International Conference on Aspect-Oriented Software Development, pages 51 62, [11] M. Nishizawa et al. Remote pointcut: A language construct for distributed AOP. In Proc. 3rd International Conference on Aspect-Oriented Software Development, pages 7 15, [12] H. Ossher. Confirmed join points. In Proceedings of the 2006 Workshop on Software Engineering Properties of Languages for Aspect Technologies, [13] R. Pawlak et al. JAC: An aspect-based distributed dynamic framework. Software: Practice and Experience, 34(12): , [14] N. Santos et al. A framework for smart proxies and interceptors in RMI. In Proceedings of the 15th ISCA International Conference on Parallel and Distributed Computing Systems, [15] A. Stevenson and S. MacDonald. Smart proxies in java rmi with dynamic aspect-oriented programming. In Proceedings of the 2008 International Workshop on Java and Components for Parallelism, Distribution and Concurrency, [16] Sun Microsystems, Inc. Dynamic Proxy Classes, [9] N. Narasimhan et al. Interceptors for Java remote method invocation. Concurrency and Computation: Practice and Experience, 13(8-9): , proxy.html. ection/- ISSN: IJCTT
Load balancing using java Aspect Component(Java RMI)
Load balancing using java Aspect Component(Java RMI) Ms. N. D. Rahatgaonkar #1, Prof. Mr. P. A. Tijare *2 Department of Computer Science & Engg and Information Technology Sipna s College of Engg & Technology,
Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.
Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
Globule: a Platform for Self-Replicating Web Documents
Globule: a Platform for Self-Replicating Web Documents Guillaume Pierre Maarten van Steen Vrije Universiteit, Amsterdam Internal report IR-483 January 2001 Abstract Replicating Web documents at a worldwide
Load Balancing using Pramati Web Load Balancer
Load Balancing using Pramati Web Load Balancer Satyajit Chetri, Product Engineering Pramati Web Load Balancer is a software based web traffic management interceptor. Pramati Web Load Balancer offers much
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?
MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM? Ashutosh Shinde Performance Architect [email protected] Validating if the workload generated by the load generating tools is applied
OpenFlow Based Load Balancing
OpenFlow Based Load Balancing Hardeep Uppal and Dane Brandon University of Washington CSE561: Networking Project Report Abstract: In today s high-traffic internet, it is often desirable to have multiple
S y s t e m A r c h i t e c t u r e
S y s t e m A r c h i t e c t u r e V e r s i o n 5. 0 Page 1 Enterprise etime automates and streamlines the management, collection, and distribution of employee hours, and eliminates the use of manual
Implementing Parameterized Dynamic Load Balancing Algorithm Using CPU and Memory
Implementing Parameterized Dynamic Balancing Algorithm Using CPU and Memory Pradip Wawge 1, Pritish Tijare 2 Master of Engineering, Information Technology, Sipna college of Engineering, Amravati, Maharashtra,
Simple Solution for a Location Service. Naming vs. Locating Entities. Forwarding Pointers (2) Forwarding Pointers (1)
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
Load Balancing and Sessions. C. Kopparapu, Load Balancing Servers, Firewalls and Caches. Wiley, 2002.
Load Balancing and Sessions C. Kopparapu, Load Balancing Servers, Firewalls and Caches. Wiley, 2002. Scalability multiple servers Availability server fails Manageability Goals do not route to it take servers
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request
EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications
ECE6102 Dependable Distribute Systems, Fall2010 EWeb: Highly Scalable Client Transparent Fault Tolerant System for Cloud based Web Applications Deepal Jayasinghe, Hyojun Kim, Mohammad M. Hossain, Ali Payani
AN EFFICIENT LOAD BALANCING ALGORITHM FOR A DISTRIBUTED COMPUTER SYSTEM. Dr. T.Ravichandran, B.E (ECE), M.E(CSE), Ph.D., MISTE.,
AN EFFICIENT LOAD BALANCING ALGORITHM FOR A DISTRIBUTED COMPUTER SYSTEM K.Kungumaraj, M.Sc., B.L.I.S., M.Phil., Research Scholar, Principal, Karpagam University, Hindusthan Institute of Technology, Coimbatore
Remote Method Invocation in JAVA
Remote Method Invocation in JAVA Philippe Laroque [email protected] $Id: rmi.lyx,v 1.2 2003/10/23 07:10:46 root Exp $ Abstract This small document describes the mechanisms involved
Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.
Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport
Load Balancing Web Applications
Mon Jan 26 2004 18:14:15 America/New_York Published on The O'Reilly Network (http://www.oreillynet.com/) http://www.oreillynet.com/pub/a/onjava/2001/09/26/load.html See this if you're having trouble printing
Elements of Advanced Java Programming
Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Implementing Java Distributed Objects with JDBC
Implementing Java Distributed Objects with JDBC Pritisha 1, Aashima Arya 2 1,2 Department of Computer Science Bhagwan Mahaveer institute of engineering & technology (BMIET), Deenbandhu Chhotu Ram University
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
A Java-based system support for distributed applications on the Internet
A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation
Objectives Distributed Databases and Client/Server Architecture IT354 @ Peter Lo 2005 1 Understand the advantages and disadvantages of distributed databases Know the design issues involved in distributed
International Journal of Combined Research & Development (IJCRD ) eissn:2321-225x; pissn:2321-2241 Volume: 2; Issue: 5; May -2014
A REVIEW ON CONTENT AWARE LOAD BALANCING IN CLOUD WEB SERVERS Rajeev Kumar Student, CSE, Institute of Engg & Technology (IET) Alwar, Rajasthan Rajasthan Technical University, Kota, Rajasthan Email Id:
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS
PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS Adrian Mos, John Murphy Performance Engineering Lab, Dublin City University Glasnevin, Dublin 9, Ireland Tel: +353 1 700-8762,
High Performance Cluster Support for NLB on Window
High Performance Cluster Support for NLB on Window [1]Arvind Rathi, [2] Kirti, [3] Neelam [1]M.Tech Student, Department of CSE, GITM, Gurgaon Haryana (India) [email protected] [2]Asst. Professor,
LinuxWorld Conference & Expo Server Farms and XML Web Services
LinuxWorld Conference & Expo Server Farms and XML Web Services Jorgen Thelin, CapeConnect Chief Architect PJ Murray, Product Manager Cape Clear Software Objectives What aspects must a developer be aware
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
An Active Packet can be classified as
Mobile Agents for Active Network Management By Rumeel Kazi and Patricia Morreale Stevens Institute of Technology Contact: rkazi,[email protected] Abstract-Traditionally, network management systems
Agenda. Distributed System Structures. Why Distributed Systems? Motivation
Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)
Apache Traffic Server Extensible Host Resolution
Apache Traffic Server Extensible Host Resolution at ApacheCon NA 2014 Speaker Alan M. Carroll, Apache Member, PMC Started working on Traffic Server in summer 2010. Implemented Transparency, IPv6, range
Report of the case study in Sistemi Distribuiti A simple Java RMI application
Report of the case study in Sistemi Distribuiti A simple Java RMI application Academic year 2012/13 Vessio Gennaro Marzulli Giovanni Abstract In the ambit of distributed systems a key-role is played by
Distributed Systems Lecture 1 1
Distributed Systems Lecture 1 1 Distributed Systems Lecturer: Therese Berg [email protected]. Recommended text book: Distributed Systems Concepts and Design, Coulouris, Dollimore and Kindberg. Addison
Naming vs. Locating Entities
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
LOAD BALANCING AS A STRATEGY LEARNING TASK
LOAD BALANCING AS A STRATEGY LEARNING TASK 1 K.KUNGUMARAJ, 2 T.RAVICHANDRAN 1 Research Scholar, Karpagam University, Coimbatore 21. 2 Principal, Hindusthan Institute of Technology, Coimbatore 32. ABSTRACT
COM 440 Distributed Systems Project List Summary
COM 440 Distributed Systems Project List Summary This list represents a fairly close approximation of the projects that we will be working on. However, these projects are subject to change as the course
Building Reliable, Scalable AR System Solutions. High-Availability. White Paper
Building Reliable, Scalable Solutions High-Availability White Paper Introduction This paper will discuss the products, tools and strategies available for building reliable and scalable Action Request System
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
The Sierra Clustered Database Engine, the technology at the heart of
A New Approach: Clustrix Sierra Database Engine The Sierra Clustered Database Engine, the technology at the heart of the Clustrix solution, is a shared-nothing environment that includes the Sierra Parallel
How To Understand The Concept Of A Distributed System
Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz [email protected], [email protected] Institute of Control and Computation Engineering Warsaw University of
How To Balance A Web Server With Remaining Capacity
Remaining Capacity Based Load Balancing Architecture for Heterogeneous Web Server System Tsang-Long Pao Dept. Computer Science and Engineering Tatung University Taipei, ROC Jian-Bo Chen Dept. Computer
Performance Comparison of Server Load Distribution with FTP and HTTP
Performance Comparison of Server Load Distribution with FTP and HTTP Yogesh Chauhan Assistant Professor HCTM Technical Campus, Kaithal Shilpa Chauhan Research Scholar University Institute of Engg & Tech,
Exploiting Remote Memory Operations to Design Efficient Reconfiguration for Shared Data-Centers over InfiniBand
Exploiting Remote Memory Operations to Design Efficient Reconfiguration for Shared Data-Centers over InfiniBand P. Balaji, K. Vaidyanathan, S. Narravula, K. Savitha, H. W. Jin D. K. Panda Network Based
CHAPTER 5 WLDMA: A NEW LOAD BALANCING STRATEGY FOR WAN ENVIRONMENT
81 CHAPTER 5 WLDMA: A NEW LOAD BALANCING STRATEGY FOR WAN ENVIRONMENT 5.1 INTRODUCTION Distributed Web servers on the Internet require high scalability and availability to provide efficient services to
What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
What is Middleware? Application Application Middleware Middleware Operating System Operating System Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
Fault-Tolerant Framework for Load Balancing System
Fault-Tolerant Framework for Load Balancing System Y. K. LIU, L.M. CHENG, L.L.CHENG Department of Electronic Engineering City University of Hong Kong Tat Chee Avenue, Kowloon, Hong Kong SAR HONG KONG Abstract:
HUAWEI OceanStor 9000. Load Balancing Technical White Paper. Issue 01. Date 2014-06-20 HUAWEI TECHNOLOGIES CO., LTD.
HUAWEI OceanStor 9000 Load Balancing Technical Issue 01 Date 2014-06-20 HUAWEI TECHNOLOGIES CO., LTD. Copyright Huawei Technologies Co., Ltd. 2014. All rights reserved. No part of this document may be
Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies
Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,
Client/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
System Models for Distributed and Cloud Computing
System Models for Distributed and Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF Classification of Distributed Computing Systems
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
Creating Web Farms with Linux (Linux High Availability and Scalability)
Creating Web Farms with Linux (Linux High Availability and Scalability) Horms (Simon Horman) [email protected] December 2001 For Presentation in Tokyo, Japan http://verge.net.au/linux/has/ http://ultramonkey.org/
q for Gods Whitepaper Series (Edition 7) Common Design Principles for kdb+ Gateways
Series (Edition 7) Common Design Principles for kdb+ Gateways May 2013 Author: Michael McClintock joined First Derivatives in 2009 and has worked as a consultant on a range of kdb+ applications for hedge
SCALABILITY AND AVAILABILITY
SCALABILITY AND AVAILABILITY Real Systems must be Scalable fast enough to handle the expected load and grow easily when the load grows Available available enough of the time Scalable Scale-up increase
How To Load Balance On A Bgg On A Network With A Network (Networking) On A Pc Or Ipa On A Computer Or Ipad On A 2G Network On A Microsoft Ipa (Netnet) On An Ip
Globally Distributed Content (Using BGP to Take Over the World) Horms (Simon Horman) [email protected] November 2001 http://supersparrow.org/ 1 Introduction Electronic content is becoming increasingly
Techniques for Scaling Components of Web Application
, March 12-14, 2014, Hong Kong Techniques for Scaling Components of Web Application Ademola Adenubi, Olanrewaju Lewis, Bolanle Abimbola Abstract Every organisation is exploring the enormous benefits of
Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications
Single Pass Load Balancing with Session Persistence in IPv6 Network C. J. (Charlie) Liu Network Operations Charter Communications Load Balancer Today o Load balancing is still in use today. It is now considered
Load Balancing in CORBA: A Survey. Response to the Aggregated Computing RFI
Load Balancing in CORBA: A Survey Response to the Aggregated Computing RFI Document orbos/99-07-19 Thomas Schnekenburger Siemens AG, Dept. ZT SE 2, D-81730 Munich, Germany [email protected]
Chapter 3. Internet Applications and Network Programming
Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure
A distributed system is defined as
A distributed system is defined as A collection of independent computers that appears to its users as a single coherent system CS550: Advanced Operating Systems 2 Resource sharing Openness Concurrency
DoS: Attack and Defense
DoS: Attack and Defense Vincent Tai Sayantan Sengupta COEN 233 Term Project Prof. M. Wang 1 Table of Contents 1. Introduction 4 1.1. Objective 1.2. Problem 1.3. Relation to the class 1.4. Other approaches
Content-Aware Load Balancing using Direct Routing for VOD Streaming Service
Content-Aware Load Balancing using Direct Routing for VOD Streaming Service Young-Hwan Woo, Jin-Wook Chung, Seok-soo Kim Dept. of Computer & Information System, Geo-chang Provincial College, Korea School
Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications
Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to
Oracle Collaboration Suite
Oracle Collaboration Suite Firewall and Load Balancer Architecture Release 2 (9.0.4) Part No. B15609-01 November 2004 This document discusses the use of firewall and load balancer components with Oracle
Distributed Systems. 23. Content Delivery Networks (CDN) Paul Krzyzanowski. Rutgers University. Fall 2015
Distributed Systems 23. Content Delivery Networks (CDN) Paul Krzyzanowski Rutgers University Fall 2015 November 17, 2015 2014-2015 Paul Krzyzanowski 1 Motivation Serving web content from one location presents
Capacity Planning Guide for Adobe LiveCycle Data Services 2.6
White Paper Capacity Planning Guide for Adobe LiveCycle Data Services 2.6 Create applications that can deliver thousands of messages per second to thousands of end users simultaneously Table of contents
Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide
Oracle Communications WebRTC Session Controller: Basic Admin Student Guide Edition 1.0 April 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary
DNS ROUND ROBIN HIGH-AVAILABILITY LOAD SHARING
PolyServe High-Availability Server Clustering for E-Business 918 Parker Street Berkeley, California 94710 (510) 665-2929 wwwpolyservecom Number 990903 WHITE PAPER DNS ROUND ROBIN HIGH-AVAILABILITY LOAD
Clustering with Tomcat. Introduction. O'Reilly Network: Clustering with Tomcat. by Shyam Kumar Doddavula 07/17/2002
Page 1 of 9 Published on The O'Reilly Network (http://www.oreillynet.com/) http://www.oreillynet.com/pub/a/onjava/2002/07/17/tomcluster.html See this if you're having trouble printing code examples Clustering
LOAD BALANCING MECHANISMS IN DATA CENTER NETWORKS
LOAD BALANCING Load Balancing Mechanisms in Data Center Networks Load balancing vs. distributed rate limiting: an unifying framework for cloud control Load Balancing for Internet Distributed Services using
Improving DNS performance using Stateless TCP in FreeBSD 9
Improving DNS performance using Stateless TCP in FreeBSD 9 David Hayes, Mattia Rossi, Grenville Armitage Centre for Advanced Internet Architectures, Technical Report 101022A Swinburne University of Technology
Providing Load Balancing and Fault Tolerance in the OSGi Service Platform
Providing Load Balancing and Fault Tolerance in the OSGi Service Platform ARNE KOSCHEL, THOLE SCHNEIDER, JOHANNES WESTHUIS, JÜRGEN WESTERKAMP Faculty IV, Department of Computer Science University of Applied
SiteCelerate white paper
SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance
Features of The Grinder 3
Table of contents 1 Capabilities of The Grinder...2 2 Open Source... 2 3 Standards... 2 4 The Grinder Architecture... 3 5 Console...3 6 Statistics, Reports, Charts...4 7 Script... 4 8 The Grinder Plug-ins...
Load Distribution in Large Scale Network Monitoring Infrastructures
Load Distribution in Large Scale Network Monitoring Infrastructures Josep Sanjuàs-Cuxart, Pere Barlet-Ros, Gianluca Iannaccone, and Josep Solé-Pareta Universitat Politècnica de Catalunya (UPC) {jsanjuas,pbarlet,pareta}@ac.upc.edu
CHAPTER 3 LOAD BALANCING MECHANISM USING MOBILE AGENTS
48 CHAPTER 3 LOAD BALANCING MECHANISM USING MOBILE AGENTS 3.1 INTRODUCTION Load balancing is a mechanism used to assign the load effectively among the servers in a distributed environment. These computers
VisuSniff: A Tool For The Visualization Of Network Traffic
VisuSniff: A Tool For The Visualization Of Network Traffic Rainer Oechsle University of Applied Sciences, Trier Postbox 1826 D-54208 Trier +49/651/8103-508 [email protected] Oliver Gronz University
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service
DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity
Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November 2014. 2014 Pivotal Software, Inc. All rights reserved.
2 Apache Tomcat Load-balancing and Clustering Mark Thomas, 20 November 2014 Introduction Apache Tomcat committer since December 2003 [email protected] Tomcat 8 release manager Member of the Servlet, WebSocket
Distributed Objects and Components
Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java
Aspect-Oriented Programming
Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
COMP 361 Computer Communications Networks. Fall Semester 2003. Midterm Examination
COMP 361 Computer Communications Networks Fall Semester 2003 Midterm Examination Date: October 23, 2003, Time 18:30pm --19:50pm Name: Student ID: Email: Instructions: 1. This is a closed book exam 2. This
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 ISSN 2229-5518
International Journal of Scientific & Engineering Research, Volume 4, Issue 11, November-2013 349 Load Balancing Heterogeneous Request in DHT-based P2P Systems Mrs. Yogita A. Dalvi Dr. R. Shankar Mr. Atesh
Proxies. Chapter 4. Network & Security Gildas Avoine
Proxies Chapter 4 Network & Security Gildas Avoine SUMMARY OF CHAPTER 4 Generalities Forward Proxies Reverse Proxies Open Proxies Conclusion GENERALITIES Generalities Forward Proxies Reverse Proxies Open
