\contentsline {chapter}{List of Tables}{vii} \contentsline {chapter}{List of Figures}{viii} \contentsline {chapter}{Abstract}{ix} \contentsline {chapter}{Acknowledgments}{xi} \contentsline {chapter}{\numberline {1}Introduction}{1} \contentsline {section}{\numberline {1.1}Prerequisite Knowledge}{2} \contentsline {section}{\numberline {1.2}Research Questions}{2} \contentsline {section}{\numberline {1.3}Thesis Structure}{2} \contentsline {chapter}{\numberline {2}Mobile Computing Issues}{3} \contentsline {section}{\numberline {2.1}Introduction}{3} \contentsline {section}{\numberline {2.2}Wireless Communication Infrastructure}{3} \contentsline {subsection}{\numberline {2.2.1}Mobile Telephony}{4} \contentsline {subsection}{\numberline {2.2.2}Wireless LAN}{4} \contentsline {subsection}{\numberline {2.2.3}Satellites}{6} \contentsline {section}{\numberline {2.3}Modes of operations}{6} \contentsline {subsection}{\numberline {2.3.1}Full and Partial Connection Operations}{7} \contentsline {subsection}{\numberline {2.3.2}Disconnection Operations}{7} \contentsline {subsection}{\numberline {2.3.3}Extended Client/Server Model}{8} \contentsline {subsection}{\numberline {2.3.4}Connection Re-established}{9} \contentsline {section}{\numberline {2.4}Summary}{9} \contentsline {chapter}{\numberline {3}Mobile File Replication}{10} \contentsline {section}{\numberline {3.1}File Caching Issues}{10} \contentsline {subsection}{\numberline {3.1.1}Caching Relationship}{11} \contentsline {subsection}{\numberline {3.1.2}Cache Consistency}{11} \contentsline {subsection}{\numberline {3.1.3}Caching Design}{12} \contentsline {subsubsection}{Location}{12} \contentsline {subsubsection}{Unit size}{12} \contentsline {subsection}{\numberline {3.1.4}Replacement Policy}{13} \contentsline {subsection}{\numberline {3.1.5}Implementation}{13} \contentsline {section}{\numberline {3.2}Prefetching Issues}{13} \contentsline {subsection}{\numberline {3.2.1}Prefetching Models}{14} \contentsline {subsection}{\numberline {3.2.2}Simplified Prefetching Strategies}{14} \contentsline {subsection}{\numberline {3.2.3}Intelligent Prefetching Strategies}{15} \contentsline {section}{\numberline {3.3}File Reintegration Issues}{15} \contentsline {subsection}{\numberline {3.3.1}Conflict handling}{15} \contentsline {section}{\numberline {3.4}Adaptive File Replication}{16} \contentsline {subsection}{\numberline {3.4.1}Application Files and Type}{16} \contentsline {subsubsection}{Application Files}{16} \contentsline {subsubsection}{Mobile Applications}{17} \contentsline {subsection}{\numberline {3.4.2}User Patterns}{19} \contentsline {subsection}{\numberline {3.4.3}Case Studies}{19} \contentsline {subsection}{\numberline {3.4.4}Adaptive Caching and Prefetching Implementations}{20} \contentsline {subsubsection}{SEER}{20} \contentsline {subsubsection}{Tait's Working File Set}{20} \contentsline {subsubsection}{CODA's Hoard Profile}{21} \contentsline {section}{\numberline {3.5}Summary}{21} \contentsline {chapter}{\numberline {4}Mobile File Caching Implementations}{22} \contentsline {section}{\numberline {4.1}CODA}{22} \contentsline {subsection}{\numberline {4.1.1}Disconnection Operation}{22} \contentsline {subsection}{\numberline {4.1.2}Rapid Cache Validation}{23} \contentsline {subsection}{\numberline {4.1.3}Trickle Reintegration}{23} \contentsline {subsection}{\numberline {4.1.4}Handling Cache Miss}{24} \contentsline {subsection}{\numberline {4.1.5}Caching Implementation}{24} \contentsline {section}{\numberline {4.2}Sprite}{24} \contentsline {subsection}{\numberline {4.2.1}Caching Policy}{26} \contentsline {section}{\numberline {4.3}Ficus}{27} \contentsline {subsection}{\numberline {4.3.1}Replication}{28} \contentsline {subsection}{\numberline {4.3.2}Reconciliation}{28} \contentsline {section}{\numberline {4.4}Tait's Mobile File System}{28} \contentsline {subsection}{\numberline {4.4.1}Efficient Variable-Consistency Replication}{29} \contentsline {subsection}{\numberline {4.4.2}Failures}{29} \contentsline {section}{\numberline {4.5}Summary}{29} \contentsline {chapter}{\numberline {5}Partial Cache Consistency Framework}{30} \contentsline {section}{\numberline {5.1}Introduction}{30} \contentsline {section}{\numberline {5.2}System Design}{30} \contentsline {subsection}{\numberline {5.2.1}File Map}{31} \contentsline {subsubsection}{File Map Contents}{32} \contentsline {subsubsection}{File Map Ordering}{32} \contentsline {subsection}{\numberline {5.2.2}File Validation}{33} \contentsline {subsubsection}{Determining the Status}{34} \contentsline {subsection}{\numberline {5.2.3}Connection Phase}{34} \contentsline {subsection}{\numberline {5.2.4}Disconnection Phase}{35} \contentsline {subsubsection}{Elective}{35} \contentsline {subsubsection}{Non-elected}{36} \contentsline {subsection}{\numberline {5.2.5}Reintegration}{36} \contentsline {section}{\numberline {5.3}Conclusion}{37} \contentsline {chapter}{\numberline {6}Partial Cache Consistency Model Simulation}{38} \contentsline {section}{\numberline {6.1}Client Side Process}{38} \contentsline {subsection}{\numberline {6.1.1}Features Not Implemented}{39} \contentsline {subsection}{\numberline {6.1.2}Validation Calculation}{39} \contentsline {subsubsection}{Proximity to Invalidation}{40} \contentsline {subsubsection}{Importance and Longevity Calculation}{40} \contentsline {section}{\numberline {6.2}Server Side Process}{41} \contentsline {subsection}{\numberline {6.2.1}Features Not Implemented}{42} \contentsline {section}{\numberline {6.3}The Bandwidth Control System}{42} \contentsline {subsection}{\numberline {6.3.1}File and File Map Transfer Performance}{42} \contentsline {subsection}{\numberline {6.3.2}Disconnection Events}{43} \contentsline {section}{\numberline {6.4}Simulation Parameters}{43} \contentsline {subsection}{\numberline {6.4.1}Disconnection Pattern}{44} \contentsline {subsection}{\numberline {6.4.2}Connection Types}{44} \contentsline {subsection}{\numberline {6.4.3}Working-Set Patterns}{44} \contentsline {subsection}{\numberline {6.4.4}File Importance and Longevity}{44} \contentsline {section}{\numberline {6.5}Simulation Aims and Descriptions}{46} \contentsline {section}{\numberline {6.6}Simulation Development}{46} \contentsline {chapter}{\numberline {7}Analysis of Results}{48} \contentsline {section}{\numberline {7.1}Effect of Disconnection on Acceptable Performance}{48} \contentsline {subsection}{\numberline {7.1.1}Disconnection Utilisation}{49} \contentsline {subsection}{\numberline {7.1.2}Limitation}{50} \contentsline {section}{\numberline {7.2}Benefit for Pronounced File Access}{50} \contentsline {subsection}{\numberline {7.2.1}Pronounced File Accesses}{50} \contentsline {subsection}{\numberline {7.2.2}Limitation}{51} \contentsline {section}{\numberline {7.3}Effects of Throughput on Performance}{51} \contentsline {subsection}{\numberline {7.3.1}Throughput Performance}{51} \contentsline {subsection}{\numberline {7.3.2}Limitation}{52} \contentsline {section}{\numberline {7.4}Comparison with Existing Systems}{53} \contentsline {subsection}{\numberline {7.4.1}Disconnected Validation}{53} \contentsline {subsection}{\numberline {7.4.2}Cache Consistency}{54} \contentsline {subsection}{\numberline {7.4.3}Limited Bandwidth Systems}{54} \contentsline {section}{\numberline {7.5}Summary}{55} \contentsline {chapter}{\numberline {8}Conclusions}{56} \contentsline {section}{\numberline {8.1}Research Assessment}{56} \contentsline {section}{\numberline {8.2}Area of Future Work}{56} \contentsline {chapter}{Vita}{58} \contentsline {chapter}{Appendix 1 : Simulation Source Code}{63} \contentsline {chapter}{Appendix 2 : Disconnection Patterns}{108} \contentsline {chapter}{Appendix 3 : File Traces - Working Set Pattern}{110}