Presentation is loading. Please wait.

Presentation is loading. Please wait.

MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN

Similar presentations


Presentation on theme: "MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN"— Presentation transcript:

1 MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN slash@ht.sfc.keio.ac.jp Eighth International Conference on Computer Communication and Networks IEEE ICCCN’99 October 11-13, 1999 @Boston, USA

2 Research Abstract Goal: Communication Continuity for network applications for users ’ Work Continuity MobileSocket … Is an application layer approach implemented as an user-level library. Is effective for Conventional Network Application Java Mobile Applications

3 With MobileSocket library … Java network applications can continue their communication with the one continuous socket connection, even after the mobile host ’ s relocation. No need to modify source code Additional APIs for adaptation

4 Today ’ s Outline 1. Research Background 2. Communication Continuity MobileSocket 3. Design 4. Implementation 5. Programming & Applications 6. Evaluation 7. Conclusion & Future Work

5 1. Background Mobile Computing Environment Mobile hosts and users move around network even during applications are communicating with the remote. Mobile Host Internet A A B

6 1. Background (Cont ’ d) Research Goal To realize users ’ “ Continuous Operation ” supported by the continuous behavior of applications For network applications … “ Communication Continuity ” with remote

7 2. Communication Continuity Communication Continuity consists of … “ Mobility ” “ Virtual Circuit Continuity ” Other Issues

8 “ Mobility ” identify each other Capability of the protocol functionality in the both communication endpoints to identify each other independent of the location changes of the endpoints. E.g.: Mobile IP Identify each other (Location Transparent ID)

9 “ Virtual Circuit Continuity ” keeping a virtual circuit connection the byte stream consistency Capability of keeping a virtual circuit connection alive, retaining reliability and the byte stream consistency independent of the location changes of the endpoints. E.g.: TCP-R Keep a virtual circuit connection

10 Toward Communication Continuity For applications with … Datagram communication ( e.g. UDP/IP) Mobility support Virtual circuit communication ( e.g. TCP/IP) Mobility support Virtual circuit continuity support ⇒ Both “ Mobility ” and “ VC Continuity ” supports are the requirements for communication continuity.

11 Other Issues for Communication Continuity Support 2) Simplified and minimized implementation 3) Avoidance of modification in existing applications 4) Adaptation interfaces for MobileSocket-aware applications

12 3. MobileSocket Design in application layer (1) mobility and connection continuity support in application layer Dynamic Socket Switching (DSS) Application Layer Window (ALW) (2) User-level library in Java implicit & explicit (3) Supports both implicit & explicit redirection operations (4) Adaptation APIs for applications

13 (1) Application Layer Approach Application IP Layer TCP Layer Socket Layer Mobile IP TCP-R MSOCK MobileSocket Layer MobileSocket Application

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

15 Dynamic Socket Switching 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)

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

17 (2) User-Level Library TCP/UDP IP Socket interface TCP/UDP IP Socket interface Application MobileSocket lib (Mobile-IP) (TCP-R) (MSOCKS)

18 (3) Connection Redirection Schemes Implicit Redirection Mechanism by which a connection is automatically redirected such that application is unaware of the relocation. No need to modify and insert any additional lines to applications No adaptability in applications behavior Explicit Redirection

19 (4) Explicit Redirection & Adaptation Interfaces Implicit Redirection Explicit Redirection Mechanism by which the application programmers can explicitly specify where the connection redirection takes place suspend(); resume(); Realized by specific APIs ( suspend(); resume(); ) Adaptive behavior of application Need to modify application ’ s source code

20 4. MobileSocket Implementation State Transition Diagram Time Sequence Connection Establishment Implicit Redirection Explicit Redirection

21 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

22 DSS(1) Establishment Phase

23 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

24 DSS(2) Explicit Suspend Phase

25 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

26 DSS(3) Explicit Resume Phase

27 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

28 DSS(4) Implicit Redirection

29 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

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

31 5. Programming & Applications 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

32 Applications with MobileSocket “ Serializable ” MobileSocket class for Mobile Applications and Agents AppB Host-B Host-A AppA AppA ’ Object Serialization MSockA (Socket X ) MSockA (Socket Y ) Host-C

33 Applications with MobileSocket MobileSocket Exchanging Host-A Host-B Host-C AppA AppC AppB MSockA MSockB MSockA ’ Send “ MobileSocket ” Object via ObjectSerialization

34 6. Evaluation Performance Measurement Explicit Redirection Comparison with Related Works

35 Measurement Environment Implementation JavaCoreAPI 1.1 jp.ac.keio.sfc.ht.MobileSocket jp.ac.keio.sfc.ht.MobileSocket package Evaluation Environment Dynabook SS-R590 (Pentium 90MHz, 40MB) for MH Sony PCG-737 (PentiumMMX 233MHz, 64MB) for CH Closed 10Base-T Network FreeBSD2.2.1R + JDK 1.1.6.V98-9-23 for FreeBSD

36 Performance Results at MH

37 Explicit Redirection Performance Explicit Suspending

38 82.14% Explicit Redirection Performance Explicit Resuming

39 Comparison with Related Works NameLayer ConnectionImplementation ContinuityMHCHOthers IP LimitedKHA,FA Mobile-IPIP LimitedKHA,FA TCP YesKK - TCP-RTCP YesKK - Socket Limited UProxy MSOCKSSocket Limited UProxy Socket Yes U U - MobileSocketSocket Yes U U - upper upper

40 7. Conclusion Conclusion Application Layer Mobility and Connection Continuity User-Level library in Java Implicit & Explicit Redirection for Conventional Apps. & Mobile Apps. Future Work More Optimization Security Issues

41 Fin

42 Eval.1 MobileSocket Overhead Conventional Java.net.Socket 100 MobileSocket (contains Mobility Support) 80? 90?

43 Eval.2 Socket Creation Overhead Why is Socket Creation so heavy in Java? Where is bottle neck? C & Java Java80.4ms (71ms object constructor) C

44 Eval.3 ALW In the case of large size ALW? Buffer overflow? Lock? Defined buffer size? ALW size and Transfer bandwidth could not evaluate because of bug in JDK FreeBSD Or Solaris ?

45 read & write mechanism

46 Adaptation in Application Java Event

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

48 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

49 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

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

51 MobileSocket Applications (1) Java network applications Mobile Host Internet A A B

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

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


Download ppt "MobileSocket Toward Continuous Operation for Java Applications Tadashi OKOSHI Graduate School of Media and Governance Keio University, JAPAN"

Similar presentations


Ads by Google