Bologna, 19th-20th February 20045th Plenary TAPAS Workshop JBoss Clustering and Configuration Service Implementation Giorgia Lodi

Slides:



Advertisements
Similar presentations
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
Advertisements

Database Architectures and the Web
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
WebLogic Clustering - Failover, and Load Balancing Bryan Ferrel and Ramarao Desaraju CS 522 Computer Communications December 4, 2002.
The road to reliable, autonomous distributed systems
Capacity Planning and Predicting Growth for Vista Amy Edwards, Ezra Freeloe and George Hernandez University System of Georgia 2007.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
A DAPT IST Replication Framework: Progress Report Vance Maverick University of Bologna Dec. 11, 2003.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Distributed components
Technical Architectures
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
Sapana Mehta (CS-6V81) Overview Of J2EE & JBoss Sapana Mehta.
1 James Lynn Hewlett-Packard Middleware Division EJB Architecture Design Strategies and Performance Optimizations.
Enterprise Applications & Java/J2EE Technologies Dr. Douglas C. Schmidt Professor of EECS.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Chris Shuster 4/29/2009 1Chris Shuster.  Application Servers ◦ Backend processing platform. ◦ Multiple platforms, operating system and architecture.
Basic Services: Architecture Options Vance Maverick ADAPT Bologna Feb. 13, 2003.
Communication in Distributed Systems –Part 2
J2EE Kenneth M. Anderson CSCI Web Technologies October 3, 2001.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
© JBoss Inc JBoss Clustering An Overview Bela Ban Lead JGroups, Manager Clustering Group.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
EJB. Component Characteristics An enterprise Bean typically contains business logic that operates on the enterprise’s data. An enterprise Bean’s instances.
Ing. Ignacio Roqueta ARTech GeneXus and J2EE.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
INSTALLING MICROSOFT EXCHANGE SERVER 2003 CLUSTERS AND FRONT-END AND BACK ‑ END SERVERS Chapter 4.
Bologna, September 2003 Giorgia Lodi Department of Computer Science University of Bologna V.Ghini, F. Panzieri.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Enterprise Java Bean Matt. 2 J2EE 3 J2EE Overview.
Introduction to J2EE Architecture Portions by Kunal Mehta.
第十四章 J2EE 入门 Introduction What is J2EE ?
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
FailSafe SGI’s High Availability Solution Mayank Vasa MTS, Linux FailSafe Gatekeeper
A Secure JBoss Platform Nicola Mezzetti Acknowledgments: F. Panzieri.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Bologna, September 2003 Giovanna Ferrari School of Computing Science University of Newcastle.
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
Jini Architecture Introduction System Overview An Example.
Jini Architectural Overview Li Ping
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
Remote Method Invocation A Client Server Approach.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Java Distributed Object Model A remote object is one whose methods can be invoked from another JVM on a different host. It implements one or more remote.
EJB Enterprise Java Beans JAVA Enterprise Edition
1 Information Retrieval and Use De-normalisation and Distributed database systems Geoff Leese September 2008, revised October 2009.
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
A System for Monitoring and Management of Computational Grids Warren Smith Computer Sciences Corporation NASA Ames Research Center.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Java Distributed Object System
Netscape Application Server
File System Implementation
Introduction to J2EE Architecture
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Understanding and Designing with EJB
Distributed Object-based systems
Component-based Applications
Enterprise Java Beans.
Knowledge Byte In this section, you will learn about:
Presentation transcript:

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop JBoss Clustering and Configuration Service Implementation Giorgia Lodi Department of Computer Science University of Bologna

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop2 Summary  Configuration Service  JBoss Clustering load balancing and fail-over mechanisms  Clustering Experiments  Current work and Future works  Concluding Remarks  References

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop3 Configuration Service (1/2)  Configuration service exercises “coarse- grained” configuration control It can manage such macro resources as host computers It will not be able to view and manage the activities of the resources at a finer granularity than that  JVM does not allow a high-level programmer to manage parameters such as CPU utilization, memory usage, and disk space usage

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop4 Configuration Service (2/2) It will not reserve and allocate a certain amount of CPU or memory or disk for a particular application It will not change the scheduler of the machine as well It is responsible for setting up the platform and distributing the load among the hosts

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop5 JBoss Clustering Service (1/7)  Clustering service useful for meeting such non-functional requirements as availability and scalability provides load-balancing and fail-over services

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop6 JBoss Clustering Service (2/7)  JBoss cluster: set of nodes each node: instance of JBoss AS several nodes in cluster can be grouped to form a “partition”  partition  identified by a unique name in cluster  partition name: defined in the AS configuration files a node may belong to one or more partitions (i.e., partitions may overlap)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop7 JBoss Clustering Service (3/7)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop8 JBoss Clustering Service (4/7)  JGroups open source project reliable group communication toolkit written in Java  Highly Available Partition (HAPartition) abstracts the communication layer provides access to basic communication primitives gives informational data (e.g. the cluster name, the name of the node, information about the membership of the cluster) two categories of primitives take place:  the state transfer  RPC calls

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop9 JBoss Clustering Service (5/7)  Distributed Replicant Manager (DRM) responsible for managing replicated objects through a given partition  assume to manage a list of stubs for a RMI server. DRM allows sharing these stubs in the cluster and knowing to which node a stub belongs  Distributed State Service (DS) manages replicated states (e.g. Stateful Session Bean states, HTTP sessions) allows sharing a set of dictionaries in the cluster

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop10 JBoss Clustering Service (6/7)  HA JNDI global, shared, cluster-wide JNDI Context used by clients when they want to lookup and bind objects  HA RMI responsible for implementing the smart proxies of the JBoss clustering  HA EJB provides mechanisms to cluster the EJBs (i.e. Stateless Session Bean, Stateful Session Bean, Entity Bean)  Message Driven Beans: no cluster version currently implemented by the JBoss 3.x

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop11 JBoss Clustering Service (7/7)  Supports both so-called “homogeneous” and “heterogeneous” deployment (in the cluster) homogeneous: each node contains the same beans heterogeneous: each node contains different set of beans

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop12 Homogeneous Deployment  Realized using JBoss farming service application copied into JBoss farm directory Jar Copy file in /farm Node 1 Node 2 Node 3 Cluster Jar

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop13 Heterogeneous Deployment  No available documentation for that  Realized defining to which node an EJB belongs  Not recommended distributing transaction is a problem  requires propagation of Tx Context and synchronization of the transaction monitors across nodes  requires distributed notifications  it is currently missing a distributed transaction manager it has deep performance impact  Conclusion (in every JBoss documentation) USE HOMOGENEOUS DEPLOYMENT!!

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop14 Load Balancing Policies (1/3)  JBoss adopts the third model motivations:  no single point of failure  load balancing activity can only die when client application dies  performance cost minimal (client pays the full price)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop15  Defined at deployment time into Deployment Descriptors (DDs) Load Balancing Policies (2/3)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop16 Load Balancing Policies (3/3)  Four load balancing strategies already included into JBoss clustering service Random-robin, Round-robin, First available, First available identical all proxies  Using the RMI mechanism (HA RMI) clients get references to remote EJB components using the RMI mechanism a stub (i.e. proxy) to objects is downloaded into the client  the proxy code includes the clustering logic (i.e. load balancing and fail-over)  the proxy contains the list of target nodes the client can access and the load balancing policy

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop17 Fail-over Mechanism  If the cluster topology changes the JBoss server will piggyback a new list of target nodes  The proxy, before returning the response to the client code unpacks the list of target nodes from the response updates the list with the new one and returns the real invocation result to the client code

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop18 Positioning the clustering logic  Clustering logic (i.e. load balancing and fail-over) located in the last interceptor of the client-side proxy Client Client JVM Invocation Handler Security TransactionClustered Interceptor Invokers to target nodes Run time generated interfaces

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop19 What we are investigating…  Currently, we are investigating use of homogeneous deployment use of notion of “partition” for configuration/reconfiguration purposes

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop20 Clustering Experiments (1/2)  Very simple application implemented DB EJB Container AccountManager StatementManager Account Statement Application Client Container Application Client Session BeansEntity Beans Entity relationship

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop21 Clustering Experiments (2/2) JBoss AS Account ApplicationAccountApplication Client Cluster

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop22 Clustering Experiments: Results  The state is correctly transferred among the nodes of the cluster  Each update is seen in every node of the cluster  Cluster membership correctly updated and seen by the cluster nodes  Fail-over guarantees that application instances continue to operate in survived nodes of the cluster

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop23 JBoss Clustering Limitations  Synchronization no distributed locking mechanisms for synchronization of concurrent Entity Beans  these beans can only be synchronized by using locking at the database level  Missing cluster-wide configuration management cluster administration: connect directly to each node’s JMX console  Load balancing current implementation embodies non-adaptive strategies, only (i.e. none of them considers dynamic load conditions of the machines in the cluster)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop24 Current work (1/2)  Experimental assessment of the extent to which JBoss can be programmed, so as to distribute the computational load dynamically at run time extension to JBoss load balancing mechanism  integration of dynamic/adaptive load balancing strategies, to be defined at deployment time (for the time being) testbed: cluster of machines, running JBoss, which will be subjected to variable load conditions (e.g. use of ECPerf for simulation purposes)

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop25 Current work (2/2)  Configuration service driven, run time management of faulty/overloaded nodes assume application homogeneously deployed in JBoss (partition of) cluster (i.e., each node runs a full instance of the application) node failure  JBoss fail-over mechanism guarantees that surviving application instances continue to operate normally  in contrast, TAPAS configuration service guarantees that new node replaces the failed one (and state of failed node is restored)  motivation: assume partition consists of two nodes, only, …

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop26 Future works (1/2)  Current JBoss cluster used completely (i.e. all its nodes) when deploying the application (i.e. no dynamic Farming Service)  application components cannot be deployed in a sub-set of nodes of the initial cluster  TAPAS Configuration Service selects sub-set of nodes (of the cluster) on which deploying and running applications

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop27 Future works (2/2)  Geographical clustering evaluation of VPN technology to support geographically clustered AS experimental evaluation of geographically clustered AS

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop28 SLA Interpreter  Two phases pure parsing process using either SAX or DOM XML parsers  final result: Java object with as many attributes as the elements of the original XML document Java object processed again to obtain low-level QoS requirements (it may require statistical analysis)  Currently first phase (i.e. SLA parser) implemented  using DOM XML parser as applied in all JBoss source code  using old SLA version SLA file included into META-INF application directory with DDs

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop29 Concluding Remarks  SLA parser must be re-viewed with the new SLA  If possible, use of distributed transactions from Arjuna “overcome” JBoss problems for the heterogeneous deployment?

Bologna, 19th-20th February 20045th Plenary TAPAS Workshop30 References  JBoss group “Feature Matrix: JBossClustering (Rabbit Hole)”, 19th of March  S.Labourey and B.Burke “ JBoss Clustering 2nd Edition”,   G.Ferrari and G.Lodi “Implementing the TAPAS Architecture”, TAPAS Internal Draft, December  S. Labourey “Load Balancing and Failover in the JBoss Application Server”, IEEE Task Force on Cluster Computing, Available at  B.Burke and S.Lauborey “Clustering with JBoss 3.0”, ONJava.com, October 2002.