1 © 2002 Alberto Montresor The Jgroup Project Alberto Montresor Ozalp Babaoglu University of Bologna - Italy Department of Computer Science.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

Three types of remote process invocation
RPC Robert Grimm New York University Remote Procedure Calls.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Remote Method Invocation in Java Bennie Lewis EEL 6897.
The road to reliable, autonomous distributed systems
A DAPT IST Replication Framework: Progress Report Vance Maverick University of Bologna Dec. 11, 2003.
Distributed Systems Lecture #3: Remote Communication.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
DISTRIBUTED FILE SYSTEM USING RMI
Persistent State Service 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
EEC-681/781 Distributed Computing Systems Lecture 5 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Performance Management 1 Performance, Scalability and Management  Topic  Refining the object model  Threading models  Distributed callbacks  Iterators.
How Does Remote Method Invocation Work? –Systems that use RMI for communication typically are divided into two categories: clients and servers. A server.
Communication in Distributed Systems –Part 2
Client-Server Communication Sockets Remote Procedure Calls Remote Method Invocation (Java)
Replication Framework for Jini Services Reti di Calcolatori LS a.a Jonathan Cristoforetti
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
.NET Mobile Application Development Remote Procedure Call.
A Framework for Smart Proxies and Interceptors in RMI Nuno Santos P. Marques, L. Silva CISUC, University of Coimbra, Portugal
Client/Server Software Architectures Yonglei Tao.
1 © Hein Meling and Alberto Montresor The Jgroup/ARM Dependable Computing Toolkit Hein Meling Stavanger University College – Norway Department.
Introduction to Ice Copyright © ZeroC, Inc. Ice Programming with Java 1. Introduction to Ice.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
SALSA: Language and Architecture for Widely Distributed Actor Systems. Carlos Varela, Abe Stephens, Department of.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
Information Management NTU Interprocess Communication and Middleware.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
Distributed Real- Time in the RTSJ Andrew Borg. Presentation RMI – A brief introduction The RTSJ – A (very) brief introduction The DRTSJ – The 3 Levels.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
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.
Java Remote Method Invocation RMI. Idea If objects communicate with each other on one JVM why not do the same on several JVM’s? If objects communicate.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Java Dynamic Proxy Bibliography: reflection/proxy.html
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
.NET Mobile Application Development XML Web Services.
Distributed objects and remote invocation Pages
Java RMI. RMI Any object whose methods can be invoked from another Java VM is called a remote object.
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.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
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.
Dynamic Proxy Proxy: Addition to the Java 1.3 reflection package:
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
DISTRIBUTED COMPUTING
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Inventory of Distributed Computing Concepts
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Java Remote Method Invocation
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

1 © 2002 Alberto Montresor The Jgroup Project Alberto Montresor Ozalp Babaoglu University of Bologna - Italy Department of Computer Science

2 © 2002 Alberto Montresor Introduction  What is Jgroup? A group communication toolkit developed at the University of Bologna  Main characteristics: Partition-aware group membership Written in Java Tightly integrated with Java RMI Partially integrated with Jini Can be integrated with J2EE!  Please note: Still a prototype: never reached the stability of other toolkits

3 © 2002 Alberto Montresor Brief History  Specification and implementation of the main Jgroup core Group Membership, View Synchrony, Merging Support  2000 Integration with Java RMI started First contacts with Sun RMI group  Collaboration with Sun on a new RMI API and framework (Partially) integrated in JDK 1.4 Downloadble as separate module (Jeri project in Jini)

4 © 2002 Alberto Montresor The Object Group Paradigm  Object group: A dynamic collection of server objects that cooperate in order to deliver some service and maintain shared state  Group method invocations: Refer to the act of invoking a method on an object group The method is executed by a certain number of servers in the object group, depending on the invocation semantics Client Server Object Group

5 © 2002 Alberto Montresor Group Method Invocation (GMI)  Internal GMI For “closed” communication among members of a group Two types: Synchronous: return value is an array Asynchronous: returns void; values returned through callback  External GMI For “open” communication originated from external clients Two types: Anycast: one member executes the invocation; useful for read operations Multicast: all members execute the invocation; useful for write operations

6 © 2002 Alberto Montresor Synchronous Internal Invocations Synchronous invocation S1S1 S2S2 S3S3 int[] values = group.getValue(); int getValue() { // return value }

7 © 2002 Alberto Montresor Asynchronous Internal Invocations S1S1 S2S2 S3S3 ValuesCB cb = new ValuesCB(); group.getValue(cb); public class ValuesCB implements Callback { void results(Object value){...} }\ int getValue() { // return value }

8 © 2002 Alberto Montresor External invocations: example S1 S2 S3 C1 C2 Multicast invocation: table.bind(“name”, obj); Anycast invocation: table.lookup(“name”);

9 © 2002 Alberto Montresor View Synchrony  View Synchrony All servers that survive from one view to the same next view execute the same set of invocations in the original view  View synchrony does not admit executions like this: S2S2 S3S3 S4S4 S1S1

10 © 2002 Alberto Montresor Java RMI  Java RMI protocol: enables objects residing in different JVMs to communicate through remote method invocations ClientServer Stub Server-side RMI Runtime Network JVM1JVM2 method() return x

11 © 2002 Alberto Montresor Extending Java RMI  RMI group at Javasoft designed Java RMI in order to be extensible The RemoteRef interface enables programmers to write their own references to remote objects on the client-side  Unfortunately, RemoteRef s were not sufficient There was no possibility to modify the behavior of RMI on the server side RemoteRef ClientStub Server-side RMI Runtime Server

12 © 2002 Alberto Montresor The Jgroup Approach (Previous Version) Server Proxy Server Client Proxy Client Statically generated – implements the remote interface Fixed stub for server proxy RMI Stub Server-side RMI Runtime RMI Server Proxy Server Method dispatchers Multicast RMI Stub Server-side RMI Runtime

13 © 2002 Alberto Montresor Designing a New Java RMI API  Java Software Requesto 078: a new Java framework Fully customizable, on both the client- and the server-side Based on Dynamic Proxy Classes (JDK 1.3) (No need for static stub generators) Two different versions: One-to-one (remote method invocations) Voted down in JSR-078 Being included in the "Davis" release of Jini One-to-many (group method invocations) To be developed... We partecipated in the Java software process

14 © 2002 Alberto Montresor Jini Extensible Remote Invocation (JERI) Invocation Handler Dynamically Compiled Stub ObjectEndpoint Client Dispatcher ServerEndpoint Server foo() invoke() bar() executeCall() network communication dispatch() foo() bar()

15 © 2002 Alberto Montresor Jgroup Server Proxy Server Jgroup Client Proxy Client Customized InvocationHandler and Dispatcher Jgroup Server Proxy Server Jgroup Multicast Jgroup with 1-to-1 Customizable RMI RMI

16 © 2002 Alberto Montresor Jgroup with 1-to-Many Customizable RMI Jgroup Server Proxy Server Jgroup Client Proxy Client Jgroup Server Proxy Server Jgroup Server Proxy Server Multicast RMI Customized ObjectEndpoint and ServerEndpoint

17 © 2002 Alberto Montresor Thank You!