220 likes | 230 Views
Wireless Java RMI. Stefano Campadello Oskari Koskimies, Kimmo Raatikainen Dept. of Computer Science, University of Helsinki Heikki Helin Sonera Ltd. Monads. ww.cs.helsinki.fi/research/monads Investigating the use of Adaptive Agents for Nomadic Users Intelligent & Mobile Agents
E N D
Wireless Java RMI Stefano Campadello Oskari Koskimies, Kimmo Raatikainen Dept. of Computer Science, University of Helsinki Heikki Helin Sonera Ltd.
Monads ww.cs.helsinki.fi/research/monads • Investigating the use of Adaptive Agents for Nomadic Users • Intelligent & Mobile Agents • Partners: Nokia (M.P. and R.C.), Sonera and Tekes. Edoc2000
Wireless Environments • Characteristics • Low bandwidth • Long and variable delays • Sudden or unwanted disconnection • High costs • connection costs ($/sec) • transmission costs($/byte) Edoc2000
Remote Method Invocation • RMI protocol interface lets Java objects on different hosts communicate with each other in a transparent way • Clients can invoke methods of a remote object as if they were local methods • Preserve the object oriented paradigm in distributed computing Edoc2000
Lookup(): where is Hello? Hello is here Send the me stub Here is the stub invokeMethod() Stub “ReturnValue” Java RMI in a Nutshell Client Server Registry Registry Client Client Stub-server Server-stub DGC messages Server Server Edoc2000
Lookup(): where is Hello? Hello is here Send the me stub Here is the stub invokeMethod() Stub “ReturnValue” Java RMI in a Nutshell 8.4 Sec! Client Server Registry Registry Client Client Stub-server Server-stub DGC messages Server Server Edoc2000
Client Registry Server TCP TCP 2 1 Header Protocol Ack EPId , EPId , Lookup() ServerRef Header Protocol Ack EPId , EPId , dirty() Lease Ping Ping Ack Parallel Parallel DGCAck Ping Ping Ack sayHello() “Hello World” ... clean() clean result “Hello World” Example Edoc2000
Data traffic analysis Edoc2000
RMI Optimization • Maintain compatibility with Java RMI specifications • Avoid redundancy in communication protocol • Use compression and caching to minimize data transmission Edoc2000
Java RMI Optimization • Protocol • Use of Mediators to minimize the exchange of data through the wireless link. • Data Communication • Optimized Communication: Compress and Optimize data communication • Stub&Class Loading • If possible, avoid to download stubs Edoc2000
Mobile Node Access Node Naming Client RMIAgent RMIProxy Protocol Optimization • The idea is to de-couple the connection between the client and the server using mediators. Wireless Link Edoc2000
Cache Cache Optimized RMI Mobile Node FakeStub FakeStubs Access Node Registry Registry Agent Agent Proxy Proxy Server Server Monads Registry Monads Registry Client Client Client Client Registry Registry Server Server Edoc2000
Cache Cache Optimized RMI Mobile Node FakeStub FakeStubs Access Node Registry Registry Agent Agent Proxy Proxy Server Server Monads Registry Monads Registry Client Client Client Client Registry Registry Server Server Edoc2000
Optimized Remote Invocation Registry Client RMI Agent RMI Proxy Server Registry Client RMI Proxy Server RMI Agent Header Protocol Ack Lookup() In cache? lookup Lookup() ServerRef InternalRef AgentRef Cache and mark dirty() First? for sync Header Lease Protocol Ack Header dirty() count[ref]++ Protocol Ack Lease DGCAck Header Protocol Ack DGCAck sayHello () sayHello() sayHello () “Hello World” “Hello World” “Hello World” ... clean() clean() Last? clean() clean result clean result clean result Edoc2000
Test Arrangments • Operating Systems • Clients: • Windows98 • Linux (Red Hat 6.1, kernel 2.2.14) • Server • Windows NT (SP 6) • Linux (Red Hat 6.1, kernel 2.2.14) Edoc2000
Test Arrangements • Java Virtual Machine • Sun JDK 1.2.2 (Linux and Windows) • Wireless communication • GSM HSCSD (5 configurations) • Benchmark Suite • KaRMI from University of Karlsruhe Edoc2000
Lookup Results (windows) Edoc2000
Lookup Differences Edoc2000
Conclusions • Designers cannot just “plug-in” wireless communication to existing solutions • Wireless issues extend their influence also to middleware component and eventually to applications • Solutions are there, just mostly ignored Edoc2000