Download presentation
Presentation is loading. Please wait.
Published byKristian McDowell Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.