Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.