Replication Framework for Jini Services Reti di Calcolatori LS a.a. 2003-2004 Jonathan Cristoforetti 160789.

Slides:



Advertisements
Similar presentations
Automatic Generation of Fault-Tolerant CORBA-Services Andreas Polze, Janek Schwarz and Miroslaw Malek Department of Computer Science Humboldt-University.
Advertisements

U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
DISTRIBUTED SYSTEMS II REPLICATION CNT. II Prof Philippas Tsigas Distributed Computing and Systems Research Group.
THE JINI TECHNOLOGY Alessio Zumbo
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Remote Object Invocation
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
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.
Filterfresh Fault-tolerant Java Servers Through Active Replication Arash Baratloo
2/23/2009CS50901 Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial Fred B. Schneider Presenter: Aly Farahat.
Interpret Application Specifications
1 © 2002 Alberto Montresor The Jgroup Project Alberto Montresor Ozalp Babaoglu University of Bologna - Italy Department of Computer Science.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
Advanced RMI Programming RMI Callbacks © Usman Saleem -
Jini Technology Part 1: Jini Technology Introduction Part 2: JavaSpace & GigaSpace.
Introduction - What is Jini Technology?
Data Management Kelly Clynes Caitlin Minteer. Agenda Globus Toolkit Basic Data Management Systems Overview of Data Management Data Movement Grid FTP Reliable.
Robot Autonomous Perception Model For Internet-Based Intelligent Robotic System By Sriram Sunnam.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
CSCI 6962: Server-side Design and Programming Web Services.
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
Architecting Web Services Unit – II – PART - III.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
Fault Tolerance in CORBA and Wireless CORBA Chen Xinyu 18/9/2002.
Jini Architecture Alessandro Brawerman. Contents Jini definition Advantages Architecture How it works Websites to check.
Replica Consistency in a Data Grid1 IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research December 1-5, 2003 High.
HDFS (Hadoop Distributed File System) Taejoong Chung, MMLAB.
Shuman Guo CSc 8320 Advanced Operating Systems
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
Jini Technology Basics Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University
Jini Architecture Introduction System Overview An Example.
Jini Architectural Overview Li Ping
Replication Improves reliability Improves availability ( What good is a reliable system if it is not available?) Replication must be transparent and create.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
Presented by Syed Baber Development Lead Mazik Global.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Remote Method Invocation A Client Server Approach.
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.
Distributed programming in Java Faculty:Nguyen Ngoc Tu Session 5 - RMI.
Expense Tracking System Developed by: Ardhita Maharindra Muskan Regmi Nir Gurung Sudeep Karki Tikaprem Gurung Date: December 05 th, 2008.
Distributed File System. Outline Basic Concepts Current project Hadoop Distributed File System Future work Reference.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Replication & Fault Tolerance CONARD JAMES B. FARAON
.NET Remoting Priyanka Bharatula.
WEB SERVICES.
Replication Middleware for Cloud Based Storage Service
Programming Models for Distributed Application
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Distributed Object-based systems
Consistency and Replication
Active replication for fault tolerance
Bond-Jini Interoperability
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
Presentation transcript:

Replication Framework for Jini Services Reti di Calcolatori LS a.a Jonathan Cristoforetti

Objective Creation of a prototypical framework for the replication of Jini services which: –is reusable –is based on the passive replication model –is coherent with the Jini vision

Passive replication model –Only one replica executes (Master) –Others act as stand-by copies (Slave) State synchronization: –Cold stand-by –Hot stand-by

The framework replication model Three main aspects must be defined: –Logical topology –Synchronization protocol –Failure detection mechanism

Logical topology Replicas are organized in a logical chain Communication happens only between adjacent elements

Logical Topology (2) Replicas organize automatically using the Jini lookup service to discover the presence of a master MasterSlave 1Slave 2 join ack join Slave 1 join ack Iterative join protocol to free the master quickly

State synchronization Checkpoint based The Single Fault Assumption is made TTR < (M)TBF The first slave is hot stand-by, the successive are cold stand-by:

State synchronization (2) The complete state is transferred during each synchronization and must be encapsulated into a serializable object:   Higher bandwidth consumption Looser coupling between the service and the framework no information about the state internal representation is needed by the framework

Failure detection Heart-beat protocol –periodical invokation of a ping-like method on the precedin element Fail-stop assumption on the failure behavior –if the method invokation succeds, the replica is working correctly

Communication protocol Communication based on RMI Four methods define in an interface called IReplica: –join –ping –activate –synchronize

The framework Works with Jini services which use RMI for the communication between client and server Classic Jini service lookup and usage:

The framework (2) The master replica must register by the Jini registrar and be discoverable both by the other replicas and by the service clients  Dynamic Proxy Java Object which implements one or more interfaces defined at runtime

The framework (3) Given a service interface and the relative implementation class, the framework will: –export both the service and the IReplica interface using JERI –Combine the two RMI proxies into a dynamic proxy –Register such proxy by the Jini registrar

Dynamic Proxy register Lookup “Service”

Dynamic Proxy register Lookup “IReplica”

IReplicatedServiceCallbacks Interface that defines the interaction protocol between framework and service Two methods: –getState: to obtain the service state in order to send it as an update –updateState: to synchronize the service state after an updated state has been received

Service requirements To be used with the framework a service must: 1.Be an RMI based remote service. 2.Define a service interface. 3.Provide a service implementation. 4.Implement the callback interface.

Configuration file Written in XML, if defines the following: 1.The complete name of the service interface 2.The complete name of the service implementation 3.The frequency of state updates, expresses in the number of service invocations after which to synchronize.

Implementation

Example Services Sequential Number service: –Method: sequentialNumber() –State: an integer Bank account service: –Methods: GetBalance(ID) Deposit(ID, amount) Withdraw(ID, amount) Transfer(IDSource, IDDest, amount) –State: an array of Account objects

JUnit testing Three automated tests for each service, executed with 3 replicas: 1.Execution of the service with no failures 2.Execution with failing masters 3.Execution with failing first slaves

JUnit results

Future developments Support for more policies defined via configuration files Support for partial state synchronization Support for active replication