Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 © 2002 Alberto Montresor The Jgroup Project Alberto Montresor Ozalp Babaoglu University of Bologna - Italy Department of Computer Science."— Presentation transcript:

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

2 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 3 © 2002 Alberto Montresor Brief History  1997-1999 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  2001-2002 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 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 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 6 © 2002 Alberto Montresor Synchronous Internal Invocations Synchronous invocation S1S1 S2S2 S3S3 int[] values = group.getValue(); int getValue() { // return value }

7 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 8 © 2002 Alberto Montresor External invocations: example S1 S2 S3 C1 C2 Multicast invocation: table.bind(“name”, obj); Anycast invocation: table.lookup(“name”);

9 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 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 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 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 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 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 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 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 17 © 2002 Alberto Montresor Thank You! http://cs.unibo.it/projects/jgroup


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

Similar presentations


Ads by Google