Middleware for Nomadic Computing Stefano Campadello Presentation Outline

  • Slides: 59
Download presentation
Middleware for Nomadic Computing Stefano Campadello

Middleware for Nomadic Computing Stefano Campadello

Presentation Outline • Nomadic Computing issues • • Communication Issues Mobility Issues Device Issues

Presentation Outline • Nomadic Computing issues • • Communication Issues Mobility Issues Device Issues Security Issues • Middleware for Distributed Computing • • • WAP Java RMI Corba

Presentation Outline • Enhancing the Middleware • • • Dolmen Nomadic RMI Wireless CORBA

Presentation Outline • Enhancing the Middleware • • • Dolmen Nomadic RMI Wireless CORBA • Conclusions

Nomadic Computing What’s it?

Nomadic Computing What’s it?

Nomadic Computing ”The essence of a nomadic environment is to automaticallyadjust all aspects of

Nomadic Computing ”The essence of a nomadic environment is to automaticallyadjust all aspects of user’s computing, communications, and storage functionality intransparent a andintegrated fashion” –L. Kleinrock , 1997

Anytime, Anywhere • A user wants to: • • use her laptop during a

Anytime, Anywhere • A user wants to: • • use her laptop during a flight and upload her work once disembarked follow financial information independently from the location and time instantiate a communication during a disaster recovery mission access the Internet or Intranet services while on the move.

The Challenges in Mobile Computing

The Challenges in Mobile Computing

Communication Issues • Low Bandwidth • • sending long files requires long time: the

Communication Issues • Low Bandwidth • • sending long files requires long time: the chance of experiencing network failures is high a graphical user interface can act in a bizarre way • High bandwidth variability • Bandwidth can increase/decrease four orders of magnitude depending on local conditions (connected/wireless). Ex: videoconference • Disconnection • • File system can lock up for a remote server to allow access After reconnections conflicts are possible

Mobility Issues • Address Migration • • Physical location != network address To communicate

Mobility Issues • Address Migration • • Physical location != network address To communicate with a mobile computer is necessary to know its most recent address • Location-dependent information • • Some information depend on location, as local printers or local currency. In a mobile environment these information cannot be stored statically and they must be found dynamically

Devices Issues • Power limitation • • • Energy supply is a bottleneck for

Devices Issues • Power limitation • • • Energy supply is a bottleneck for mobile devices Bigger batteries => more weight The user wants long-lasting AND light devices • User Interface and Display Issues • • Size constrains force to use small user interface Small display size makes access to remote service difficult Input devices must be redesign (keyboard -> pen-based recognition) Hand-writing and sound recognition

Security Issues • • • Identification Certification Privacy Insecure channels Insecure devices (can be

Security Issues • • • Identification Certification Privacy Insecure channels Insecure devices (can be stolen). . .

Middleware for Distributed Computing

Middleware for Distributed Computing

Middleware for Distributed Computing • Remote Procedure Call (RPC) • • 1976. Provides communication

Middleware for Distributed Computing • Remote Procedure Call (RPC) • • 1976. Provides communication across a network between programs written in a high-level language Using procedure calls mechanism is easier than building a communication paradigm It presumes the existence of TCP/IP or UDP Its use is in decline: not implemented in object oriented programming languages • Java RMI • • 1998. Same concept implemented in Java. More later. . .

Remote Procedure Call (RPC) Client program Service daemon Machine B RPC Call Invoke service

Remote Procedure Call (RPC) Client program Service daemon Machine B RPC Call Invoke service Call service Machine A RPC returns return reply Program continues requested completed Service executes

Middleware for Distributed Computing • Wireless Application Protocol • • Designed for Nomadic devices

Middleware for Distributed Computing • Wireless Application Protocol • • Designed for Nomadic devices It provides Internet access for phones and small PDAs

WAP - Architecture

WAP - Architecture

WAP – Architecture

WAP – Architecture

WAP – Architecture 2. 0

WAP – Architecture 2. 0

Middleware for Distributed Computing • OMG CORBA • • 1989. Provides interoperability between objects

Middleware for Distributed Computing • OMG CORBA • • 1989. Provides interoperability between objects in a heterogeneous, distributed environment Interfaces specified in OMG IDL Not suited for wireless networks, since it requires reliable communication Not suited for mobile device, since the terminal cannot change its point-of-presence • Microsoft COM and DCOM • • COM allows binary interoperability between distributed objetcs NOT platform independent and proprietary protocols

OMG CORBA – Architecture Interface Repository Client IDL Compiler OBJ Implementation Repository Object (Servant)

OMG CORBA – Architecture Interface Repository Client IDL Compiler OBJ Implementation Repository Object (Servant) in args operation() REF out args + return IDL SKEL DII ORB CORE IDL STUBS DSI ORB INTERFACE Object Adapter GIOP/IIOP

Enhancing the Nomadic Layers

Enhancing the Nomadic Layers

Nomadic Computing - Layered APPLICATIONS MIDDLEWARE (IIOP/RMI/ACTIVE-X) TRANSPORT LAYER (TCP/IP) RADIO LINK

Nomadic Computing - Layered APPLICATIONS MIDDLEWARE (IIOP/RMI/ACTIVE-X) TRANSPORT LAYER (TCP/IP) RADIO LINK

Improving Long Thin Networks • Slow Start and Congesting Avoidance • the system assumes

Improving Long Thin Networks • Slow Start and Congesting Avoidance • the system assumes the network is congested while packets are dropped for corruption • Delayed ACKs • the dimension of the sender’s window depends on the number of ACKs it receives. Adaptation is slow • Three-way Handshake • data transfer is possible only after the handshake is completed. Long latency makes short transactions unattractive • Lenght of TCP/IP headers

Improving TCP over Wireless • Solutions: • • • modify or eliminate slow start

Improving TCP over Wireless • Solutions: • • • modify or eliminate slow start Use larger initial windows Count the data acknowlegde not the number of ACK Change the spacingbetween ACKs Compress headers or compress IP payload SNOOP (Berkeley) • Split connection approach, but maintaining end-to-end semantic • retransmission of lost packets only locally • suppression of duplicate ACKs from receiver to sender

Improving Client-Server Paradigm • Satyanarayanan [1996]: • Extremes of adaptation: laissez-fair and applicationtransparent Improving

Improving Client-Server Paradigm • Satyanarayanan [1996]: • Extremes of adaptation: laissez-fair and applicationtransparent Improving Client-Server Paradigm Application-aware (collaboration) Laissez-faire (no system support) Application-transparent (no changes to applications)

Enhancing the Communication Layer • Example: Coda File System Applications Mobile File Server File

Enhancing the Communication Layer • Example: Coda File System Applications Mobile File Server File System APIs Mobile File System APIs File System Proxy Mobile Host Fixed Network

Mowgli Project

Mowgli Project

Monads • Adaptation agents for Nomadic Application. • The key work is ”prediction” through

Monads • Adaptation agents for Nomadic Application. • The key work is ”prediction” through learning

Addressing the Mobility Issues • Mobile IP

Addressing the Mobility Issues • Mobile IP

Enhancing The Middleware Layer Nomadic RMI

Enhancing The Middleware Layer Nomadic RMI

Remote Method Invocation • RMI protocol interface lets Java objects on different hosts communicate

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

Java RMI - Layers Logical Path Server Program Client Program Skeleton (JDK 1. 1)

Java RMI - Layers Logical Path Server Program Client Program Skeleton (JDK 1. 1) Stub Remote Reference Layer Transport Layer The Internet Transport Layer

Java RMI - Protocol Server Virtual Machine Client Object Registry 2 3 Server 1

Java RMI - Protocol Server Virtual Machine Client Object Registry 2 3 Server 1 Remote Object 8 Stub 5 4 7 6 Skeleton

Java RMI in a Nutshell Client Lookup(): where is Hello? Server Registry Hello is

Java RMI in a Nutshell Client Lookup(): where is Hello? Server Registry Hello is here Client Send the me stub Here is the stub Stub-server Server-stub DGC messages invoke. Method() Stub “Return. Value” Server

Java RMI in a Nutshell Client Lookup(): where is Hello? Server Registry Hello is

Java RMI in a Nutshell Client Lookup(): where is Hello? Server Registry Hello is here Client Send the me stub Here is the stub Stub-server Server-stub DGC messages invoke. Method() Stub “Return. Value” Server

“Hello World” Example Client TCP 2 Registry TCP 1 Header Protocol. Ack, EPId, Lookup()

“Hello World” Example Client TCP 2 Registry TCP 1 Header Protocol. Ack, EPId, Lookup() Server. Ref Header Protocol. Ack, EPId, dirty() Lease Ping Ack Parallel DGCAck Ping Ack say. Hello() “Hello World” . . . clean() clean result Server

Data traffic analysis

Data traffic analysis

RMI Optimization • Maintain compatibility with Java RMI specifications • Avoid redundancy in communication

RMI Optimization • Maintain compatibility with Java RMI specifications • Avoid redundancy in communication protocol • Use compression and caching to minimize data transmission

Java RMI Optimization • Protocol • Use of Mediators to minimize the exchange of

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 • Class Loading • If possible, avoid to download stubs

Protocol Optimization • The idea is to de-couple the connection between the client and

Protocol Optimization • The idea is to de-couple the connection between the client and the server using mediators. Mobile Node Access Node Naming Client RMIAgent RMIProxy Wireless Link

Optimized RMI Mobile Node Fake. Stubs Access Node Registry Agent Monads Registry Server Cache

Optimized RMI Mobile Node Fake. Stubs Access Node Registry Agent Monads Registry Server Cache Proxy Client Registry Server

Optimized RMI Mobile Node Fake. Stubs Access Node Registry Agent Monads Registry Server Cache

Optimized RMI Mobile Node Fake. Stubs Access Node Registry Agent Monads Registry Server Cache Proxy Client Registry Server

Optimized Remote Invocation Client RMI Agent Registry RMI Proxy Header Protocol Ack Lookup() In

Optimized Remote Invocation Client RMI Agent Registry RMI Proxy Header Protocol Ack Lookup() In cache? lookup Lookup() Server. Ref Internal. Ref Agent. Ref Header Protocol Cache and mark for sync Lease Ack dirty() Header count[ref]++ Lease Protocol Ack DGCAck Header Protocol dirty() First? Ack DGCAck say. Hello () say. Hello() “Hello World” . . . say. Hello () “Hello World” clean() Last? clean() clean result Server

Comparison between RMI and RMI

Comparison between RMI and RMI

Test Arrangements • Operating Systems • • Clients: • Windows 98 • Linux (Red

Test Arrangements • Operating Systems • • Clients: • Windows 98 • Linux (Red Hat 6. 1, kernel 2. 2. 14) Server • Windows NT (SP 6) • Linux (Red Hat 6. 1, kernel 2. 2. 14)

Test Arrangements • Java Virtual Machine • Sun JDK 1. 2. 2 (Linux and

Test Arrangements • Java Virtual Machine • Sun JDK 1. 2. 2 (Linux and Windows) • Wireless communication • GSM HSCSD (5 configurations) • Benchmark Suite • Ka. RMI from University of Karlsruhe

Lookup Results (windows)

Lookup Results (windows)

Lookup Differences

Lookup Differences

Invocation Results Image Uplink (Linux)

Invocation Results Image Uplink (Linux)

Invocation Results Two-way Text uplink

Invocation Results Two-way Text uplink

Nomadic RMI • The previous solution does not support mobility • If the connection

Nomadic RMI • The previous solution does not support mobility • If the connection between mobile host and RMI Agent is interrupted the system is in an unstable state • RMI (Nomadic RMI) Protocol addresses this problem • It allows Handover between different access points

Nomadic RMI

Nomadic RMI

Enhancing The Middleware Layer Wireless CORBA

Enhancing The Middleware Layer Wireless CORBA

Issues of CORBA in Nomadic Environment • IIOP servers are not expected to change

Issues of CORBA in Nomadic Environment • IIOP servers are not expected to change their transport connection endpoint • IIOP and the transport connections are supposed to be reliable • It is not possible to change network interface during an IIOP connection • Connections are expected to enjoy high bandwidth

Wireless CORBA – Architecture Home domain Home Location Agent Terminal Bridge Terminal Domain Access

Wireless CORBA – Architecture Home domain Home Location Agent Terminal Bridge Terminal Domain Access Bridge GIOP tunnel Visited domain Access Bridge

w. CORBA Framework • Mobile IOR • • Identifies the terminal on which the

w. CORBA Framework • Mobile IOR • • Identifies the terminal on which the target object resides And its Access Bridge • Home Location Agent • Keeps track of the current location of the terminal • Access Bridge • End-point of the GIOP tunnel in the network side • Terminal Bridge • GIOP tunnel

w. CORBA Framework • Terminal Bridge • End-point of the GIOP tunnel on the

w. CORBA Framework • Terminal Bridge • End-point of the GIOP tunnel on the terminal side • GIOP tunnel • Is the means to transmit GIOP messages between the Terminal Bridge and the Access Bridge

Wireless CORBA - GIOP Tunneling Protocol CORBA invocations Object GIOP messages GIOP GTP msgs

Wireless CORBA - GIOP Tunneling Protocol CORBA invocations Object GIOP messages GIOP GTP msgs GTP adaptation layer transport Terminal ORB Access Bridge ORB IIOP TCP IIOP messages IIOP TCP byte stream TCP peer ORB

Wireless CORBA – Handoff old AB TB new AB HLA start_handoff Handoff. Tunnel. Request

Wireless CORBA – Handoff old AB TB new AB HLA start_handoff Handoff. Tunnel. Request transport_address_request Establishment of transport connectivity Establish. Tunnel. Request Establish. Tunnel. Reply Handoff. Tunnel. Reply handoff_completed Release. Tunnel. Request Release. Tunnel. Reply Handoff. Notification notify other ABs Departing. Terminal. Notification report_handoff_status location_upadte Arriving. Terminal. Notification