Presentation is loading. Please wait.

Presentation is loading. Please wait.

MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University

Similar presentations


Presentation on theme: "MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University"— Presentation transcript:

1 MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University slash@ht.sfc.keio.ac.jp SPA (Systems for Programming and Applications) 1999 @Atagawa, JAPAN http://www.softlab.is.tsukuba.ac.jp/~kato/spa99/ 1999.3.17-19

2 Mobile Computing Environment z“Work Continuity” for users Mobile Host Internet A A B ?

3 MobileSocket is... TCP/UDP IP Socket interface TCP/UDP IP Socket interface Application MobileSocket lib (Mobile-IP) (TCP-R) (MSOCKS)

4 MobileSocket Applications (1) zJava Network Applications Mobile Host Internet A A B

5 MobileSocket Applications (2) zJava Mobile Applications AppB Host-B Host-A AppA AppA ’ Object Serialization MSockA (Socket X ) MSockA (Socket Y ) Host-C

6 MobileSocket Applications (3) zEven Exchanging Socket... Host-A Host-B Host-C AppA AppC AppB MSockA MSockB MSockA ’ Send “ MobileSocket ” Object via ObjectSerialization

7 Today’s Outline z1. Research Background - Continuous Operation - z2. MobileSocket Design z3. MobileSocket Mechanism z4. MobileSocket Programming z5. Evaluation z6. Conclusion & Future Work

8 1. Background zGoal: Continuous Operation for users’ “Work Continuity” zContinuous Operation Framework for Applications yMobility… Transparent Host Identifier yConnection Continuity… Stream Consistency

9 Issues for Continuos Operation z(1) Avoidance of modification in existing applications z(2) Simplified and minimized implementation z(3) Byte Stream Consistency support for virtual circuit connection z(4) Adaptation in applications

10 2. MobileSocket Design zDesign Features y(1) Mobility and connection continuity support in application layer y(2) User-level library implementation in Java y(3) Both implicit & explicit redirection operations y(4) Adaptation in applications (JavaEvent model)

11 Dynamic Socket Switching (DSS) IP CH CH IP MH1 MH1 Application (MobileHost) Application (Correspondent Host) Internal Socket Connection (1) Before IP Layer TCP Layer Socket Layer MobileSocket Layer

12 Dynamic Socket Switching (DSS) IP Layer TCP Layer Socket Layer MobileSocket Layer IP CH CH IP MH1 MH1 IP MH2 MH2 Application (MobileHost) After Application (Correspondent Host) Relocation Internal Socket Connection (2)

13 Application Layer Window (ALW) MobileSocket in Sender MobileSocket in Receiver DataSocket ControlSocket Data ACK Data Application ALW Data ACK Data ALW_COUNTER write() read() recv flush write store count read send zUser-level sliding window inside library zprovides Byte Stream Consistency

14 3. MobileSocket Mechanism zState Transition Diagram zTime Sequence yEstablishment yImplicit Redirection yExplicit Redirection

15 Established Implicitly Suspended Explicitly Suspended Closed Connected to Server (DSS-EstablishmentPhase(Client) ) Connected from Client (DSS-EstablishmentPhase(Server) ) Lost IP address Get IP address (Reconnect to CH, DSS- ImplicitResume Phase) Reconnected from MH (DSS-ImplicitResume Phase) suspend() Called suspend() (send SUSPEND_SIGNAL, DSS-ExplicitSuspend Phase) resume() Called resume() (Reconnect to CH, DSS- ExplicitResume Phase) reconnected from MH (DSS-ExplicitResume Phase) received SUSPEND_SIGNAL (DSS-ExplicitSuspend Phase) DataSocket broken-pipe Reconnected from MH (DSS-ImplicitResume Phase) close() Called close() (close connection) close() Called close() or timedout (close connection) close() Called close() (close connection) close() Called close() or timedout (close connection) Normal Transitions for CH Normal Transitions for MH Normal Transitions for Client Normal Transitions for Server Transition trigger (action) START POINT State

16 DSS(1) Establishment Phase

17 ClientServer Data Socket Control Socket connect accept() ControlSocket port, AuthenticationSEED1 accept() connect() ACK AuthenticationSEED1 DSS-Establishment Phase Redirection ServSocket RedirectionServer port, Next_SEED Data ALW ACK Data Socket Control Socket Redirection ServSocket Create Socket

18 DSS(2) Explicit Suspend Phase

19 Mobile Host Correspondent Host Data Socket Control Socket lock ACK SUSPEND_SIGNAL DSS-ExplicitSuspend Phase Redirection ServSocket WRITE_COUNTER Data Socket Control Socket Redirection ServSocket lock Compute DIFF Invoke Suspend SubPhase (if DIFF>0) ACK (DIFF_IS_ZERO) Close Suspend SubPhase

20 DSS(3) Explicit Resume Phase

21 Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ExplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data ALW ACK Data Socket Control Socket Redirection ServSocket Mobile Host Correspondent Host New Redirection ServSocket Next_SEED unlock Create Socket

22 DSS(4) Implicit Redirection

23 Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ImplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data Socket Control Socket Redirection ServSocket New Redirection ServSocket Next_SEED unlock READ_COUNTER unACKed Data retransmit ~ disconnected ~ lose IP get IP Create Socket Control Socket connect() accept() ACK, ControlSocket port, AuthenticationSEED3 accept() connect() ACK AuthenticationSEED3 DSS-ImplicitResume Phase Redirection ServSocket → DataSocket RedirectionServer port, Next_SEED Data Socket Control Socket Redirection ServSocket Mobile Host Correspondent Host New Redirection ServSocket Next_SEED unlock READ_COUNTER unACKed Data retransmit ~ disconnected ~ lose IP get IP Create Socket

24 Disconnection Recognition in MH  java.net.InetAddress#getLocalHost  java.net.InetAddress#getLocalHost...IP address based on DNS. z“ Checker” Thread as a adhoc solution java.net.Socket#getLocalAddress  Disconnection (1)get local IP from java.net.Socket#getLocalAddress (2)make Socket to local IP address periodically yReconnection (1) make Socket to Correspondent Host IP address periodically.

25 4. MobileSocket Programming Socket sock = new Socket(host, port); MobileSocket sock = new MobileSocket(host, port);  Class Socket sock = new Socket(host, port); MobileSocket sock = new MobileSocket(host, port); sock.suspend(); sock.resume();  Explicit Redirection (Option) sock.suspend(); sock.resume(); MobilityEvent, MobilityListener  Adaptation Event (Option) MobilityEvent Event, MobilityListener Interface

26 5. Evaluation zPerformance Measurement yExplicit Redirection yMobileSocket Overhead zComparison with Related Works

27 Measurement Environment zImplementation yJavaCoreAPI 1.1  jp.ac.keio.sfc.ht.MobileSocket  jp.ac.keio.sfc.ht.MobileSocket package zEvaluation Environment yDynabook SS-R590 (Pentium 90MHz, 40MB) for MH Sony PCG-737 (PentiumMMX 233MHz, 64MB) for CH yClosed 10Base-T Network yFreeBSD2.2.1R + JDK 1.1.6.V98-9-23 for FreeBSD

28 Performance Results at MH

29 Explicit Redirection Performance zExplicit Suspending

30 Explicit Redirection Performance zExplicit Resuming 82.14%

31 Inside Socket Creation

32 Comparison with Related Works NameLayer ConnectionImplementation ContinuityMHCHOthers Mobile-IPIP LimitedKHA,FA PMI (+M-IP)IP LimitedKKHA,FA MSOCKSTCP Limited UProxy TCP-RTCP YesKK - VNCScreen Yes U Server MobileSocketSocket Yes U U -

33 6. Conclusion zConclusion yApplication Layer Mobility and Connection Continuity yUser-Level library in Java yImplicit & Explicit Redirection yfor Conventional Apps. & Mobile Apps. zFuture Work yUDP & Multicast Socket yMore Optimization

34 Fin. Thank you for your attention...

35 Eval.1 MobileSocket Overhead zConventional Java.net.Socket 100 zMobileSocket (contains Mobility Support) 80? 90?

36 Eval.2 Socket Creation Overhead zWhy is Socket Creation so heavy in Java? z Where is bottle neck? zC & Java yJava80.4ms (71ms object constructor) yC

37 Eval.3 ALW zIn the case of large size ALW? zBuffer overflow? Lock? zDefined buffer size? zALW size and Transfer bandwidth ycould not evaluate because of bug in JDK FreeBSD yOr Solaris ?

38 read & write mechanism

39 Adaptation in Application zJava Event

40 DSS Time Sequence Client Server connect Mobility Preparation DSS- Establishment Phase user data Established State Closed State Explicit Redirection Implicit Redirection Connection Establishment

41 MH ALW Adjustment DSS- Explicit Suspend Phase disconnect Explicity Suspended State CH Suspend() resume() connect Mobility Preparation user data Established State DSS- Explicit Resume Phase Established State Explicit Redirection

42 MH Implicitly Suspended State CH connect ALW Adjustment user data Established State DSS- Implicit Resume Phase Established State lose IP (Disconnect) Broken pipe Implicit Redirection Mobility Preparation


Download ppt "MobileSocket: Library-based Continuous Operation Support for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University"

Similar presentations


Ads by Google