MoBed: MoBed: A A Mo Mo bile Test- bile Test- Bed Bed for Investigating Web for Investigating Web Access Solutions for J2ME-enabled devices Access Solutions for J2ME-enabled devices By By Mildred Ambe Mildred Ambe Supervisors: Supervisors: Eleni Stroulia, Yannis Nikolaidis Eleni Stroulia, Yannis Nikolaidis January 23, 2004 January 23, 2004
56
Embed
Presentations - Webdocs Cs Ualberta - University of Alberta
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
MoBed:MoBed: A A MoMobile Test-bile Test-BedBed for Investigating Web for Investigating WebAccess Solutions for J2ME-enabled devicesAccess Solutions for J2ME-enabled devices
Life is becoming more mobile!Life is becoming more mobile!
Wireless devicesWireless devices
FeaturesFeatures
Compact,mobile/wireless,
customizable to userneeds, No time/place
restrictions
UseUse
Instant messaging, voicemail, digital/video
recording, calendar,email, Web browsing
(Access to News,Corporate data), etc.
ConstraintsConstraints
Small screen/keypad,limited memory andprocessing speed,
unreliable connections(high error bit rate, low
bandwidth)
ManufacturersManufacturers
Nokia, Motorola,Samsung, Mitsubishi,Palm, Sony Ericsson,
Siemens, etc.
Why J2ME?Why J2ME?
J2ME J2ME (Java II Micro Edition):(Java II Micro Edition):
Version of Java targeting software development for smallerdevices,e.g. pagers, PDAs, phones, etc.
Increasing in popularity and widely adopted as a platform fordelivering wireless Web services. Why?– Uses Java as the programming language for software development
– Addresses a wide range of devices:
Low-end devicesLow-end devices
e.g. Cell phones, pagers, PDAs, etc.
High-end devicesHigh-end devices
e.g. Internet TVs, high-end wirelessentertainment/navigation systems, etc.
Basics of J2ME ArchitectureBasics of J2ME Architecture
J2MEJ2ME
MIDPMIDP
CLDCCLDC
K VMK VM
ProfilesProfiles
CDCCDC
J VMJ VMJ VMJ VM
J2EEJ2EE
J2SEJ2SE
ServerServer DesktopDesktop
High-endHigh-enddevicesdevices
Low-endLow-enddevicesdevices
J2ME Concepts: Profile and Configuration.J2ME Concepts: Profile and Configuration.
Profile:Profile: Vertical device family. Extends a configuration.
Configuration:Configuration: Horizontal grouping of devices
KVM:KVM: Compact JVM, small processor/memory footprint
J2ME vs. Other Java Editions:J2ME vs. Other Java Editions:
MIDPMIDP
CLDCCLDC
K Virtual MachineK Virtual Machine
Operating SystemOperating System
J2ME for low-end devicesJ2ME for low-end devices
The Research ProblemThe Research Problem
Java II Platform, Micro Edition (J2ME)Java II Platform, Micro Edition (J2ME)– Emerges as the standard for the fast-growing wireless Web industry
– Positions itself as the best solution for an extremely wide range of smalldevices [LG-J2ME].
A general test-bed is required for J2MEA general test-bed is required for J2ME– Addressing low bandwidth connectivity.
– Improving performance by locally caching accessed and anticipated web-based content, for future requests.
““an intelligent an intelligent ‘‘Client-Proxy-ServerClient-Proxy-Server’’ test-bed architecture for flexibly test-bed architecture for flexiblycombining caching and prefetching schemes while separating thecombining caching and prefetching schemes while separating the
mobile-resident and proxy-resident functionalitymobile-resident and proxy-resident functionality””
Related ResearchRelated Research
Web Caching:Web Caching:– Soft Caching Proxy System [KKO98] – Caching a ‘lower version’ of a web
object at a proxy.
– Temporal locality exploitation of HTTP requests [Dej99] – Estimatingprobabilities for predicting the time of next access of same web object.
Transcoding Web Data (via distillation/refinement):Transcoding Web Data (via distillation/refinement):– Load balancing resource locator for proxies [Cha95] – Centralized
server maintained for intelligently managing proxies and allocatingtranscoders to different proxies.
– Using real-time distillation to reduce WWW latency and bandwidthrequirements [FB95] – Different data representations created from multipledistillers.
Related ResearchRelated Research
J2ME and the Web:J2ME and the Web:– J2ME and J2EE client-server applications [Hem02] – J2ME applications
that interact with an enterprise server take on interesting challenges thattraditional client/server and browser applications do not face:
• Mobile applications show dependence on the network
• Mobile device constraints: high latency, low bandwidth, poor connectivity.
– Using J2ME / J2EE together [SUN03] – Guidelines for designing wirelessclients for enterprise applications using J2ME and J2EE technology:
• HTTP networking bridges gap between J2ME device and J2EE applicationserver
• Three aspects to networked wireless applications: client-side architecture,messaging and presentation.
Related Research (c.)Related Research (c.)
Web access on Mobile devices:Web access on Mobile devices:– ‘Scalable Browser’ [CM03] – Fetch on-demand; progressive content
rendering to client; display on-demand navigation style
– ‘m-Links’ [STHK03] – Browsing architecture designed to achieve web-navigation via “dig and do” model; partial content delivery via linkhierarchies.
– Text summarization for Web browsing [BGMP00] – Summarizing webpages into ‘STUs’ by extraction/summary techniques; display viaprogressive disclosure.
– Proxies for mobile Web access [Sab97] – Use proxies to controlinformation flow from mobile client to server.
Related Research (c.)Related Research (c.)
Caching and/or prefetching using proxies:Caching and/or prefetching using proxies:
– Prefetching based on content analysis [HBA99] – ‘Proxy-initiated
prefetching’ through collected user access logs and user interest profiles.
– Top-10 approach to prefetching [MC98] – Client-proxy-server framework;
prefetching based on clients’ access profiles & their top 10 popular docs.
– Predictive prefetching [PM96] – Study showing benefits of making
prefetching-related decisions from proxy (with local cache).
– Coordinated data prefetching [CZ01] – Coordinated proxy prefetching
technique using reference access information; prefetching at proxy or server
level.
Client Baseline ArchitectureClient Baseline Architecture A Web browser application (MIDlet) was developed to access and
display web content (static pages and dynamic forms).
The following Browser functionality was completely implemented
on the mobile device:• user interface generation/maintenance• web data retrieval• HTML parsing of data
Very inefficientVery inefficient due to limited device memory and the slowconnections to the network.
Demonstrates that simply porting an application suitable for wireddesktops is not sufficient for wireless clients – re-architecture isneeded.
Assumed as the ““reference pointreference point”” for future research comparisons.
Hashing algorithm ⇒ convertsURL to unique hash code.
Proxy CacheProxy Cache
Cache management:Cache management:
– Cope with limited resources of a caching proxy using cache eviction policiescache eviction policies→ to determine what documents should be replaced when cache is full.
– Variety of eviction parameters, e.g. document size, access frequency, etc.
– 2 replacement schemes investigated in MoBed:
•• Least Recently Used (LRU)Least Recently Used (LRU)
– When cache is full, the least recently used document is replaced with the new
document to be stored.
– Cache → collection of documents sorted by cache access times.
•• Least Frequently Used (LFU)Least Frequently Used (LFU)
– When cache is full, the least accessed document is replaced with the new
document to be stored.
– Cache → collection of documents sorted by total number of accesses.
Session TrackerSession Tracker
Maintains a registry of all clients and their corresponding accesshistories (sessions) within a pre-defined time frame.– Useful heuristic for prefetching based on users’ access histories.
Example:Example: Updating a user’s access history:
<<<< IP - 123.4.567IP - 123.4.567; time - t; time - t11; ; URL 4URL 4 >>>>
Client IPClient IP SessionSession23.45.12323.45.123 34 56 78 34 56 78
123.4.567 123.4.567 100 4 100 4
FromFrom
ToToUpdate the Update the latestlatestrequest timerequest time for for
IPIP
IP IP 123.4.567123.4.567requests requests URL # 4URL # 4
at time at time tt11
Prediction EnginePrediction Engine
PredictionPrediction → An informed guess of future request(s).
Prefetching scheme investigated - Prediction using Path ProfilesPrediction using Path Profiles [SKS98].
Algorithm → generates predictions based on efficient path profiles built from
previous user requests (obtained from standard HTTP logs).
νν Algorithm terminologyAlgorithm terminology::
–– PathPath → ordered sequence of URLs accessed by a single user
–– User sessionUser session → Path describing ordered, full set of requests within time frame
–– Path profilePath profile → Set of pairs, ∃ pair - path and its occurrence frequency
–– Path TreePath Tree → Generated from user paths.
RecallRecall ““One main goal of MoBed One main goal of MoBed →→ determine how prefetching can improvedetermine how prefetching can improvemobile Web access mobile Web access →→ implement a prediction scheme to achieve this. implement a prediction scheme to achieve this.””
Prediction EnginePrediction Engine
3 main steps3 main steps in using this prediction scheme:
Generate user sessions
Construct Path tree from user sessions (storing profiles).
– Cache: designed to store ‘‘CacheableCacheable’’ objects (URL + transcoded Web content)
– 2 cache sizes evaluated: 50 and 100.
Simulation runs for Experiment 1:Simulation runs for Experiment 1:
Proxy Caching CacheLocation Policy Size
1 Remote LRU 502 Remote LRU 1003 Web server LRU 504 Web server LRU 1005 Remote LFU 506 Remote LFU 1007 Web server LFU 508 Web server LFU 100
Run
Factors
Proxy on Web server, Proxy on Web server, reducedreducedlatencylatency (resources are closer (resources are closer
to Proxy)to Proxy)
Under Under __ second latency second latencyfor over 99% of requestsfor over 99% of requests
Experiment 1 - ResultsExperiment 1 - ResultsTable shows: % of proxy process times that fall within the specified time range% of proxy process times that fall within the specified time rangeRecall: Recall: Measure → delay at proxy-level only, when satisfying a client request
Proxy Latency: Proxy Latency: Delays → due to fetching (from cache/Web server) and transcoding webcontent
Time sequence illustration:Time sequence illustration:Captures transfer of a requested/prefetched filetransfer of a requested/prefetched file to client before another client request.
Mobile ClientMobile Client
Proxy ServerProxy Server
WWW ServerWWW Server
REQ (URL)
REQ (url, M, t)
( 1 ) t + request / 9.6( 1 ) t + request / 9.6
Response(bytes)
( 2 ) t + request / 9.6 +( 2 ) t + request / 9.6 +doc_transfer_timedoc_transfer_time
Response(L bytes) ( 3 ) t + request / 9.6 +( 3 ) t + request / 9.6 +
Complete Simulation Methodology on MoBed Proxy:Complete Simulation Methodology on MoBed Proxy:
- Read user sessions from file- Build Path Tree- Condense Path profiles
TRAIN
- Read in test requests from file- Build MobileRequest objects
Initialize:- Cache- Session tracker- Mobile Cache Manager
StartStartSetup
Testingreqs.
- Iterate for all mobile reqs.- Check cache for request- If Proxy is Idle, start prefetch- Interrupt prefetch if necessary
TEST
- Use test reqs from last interval⇒ New Training set- Build profiles from new Train set- Update current path profile list- Build new Condense Path profiles- Resume testing phase
Impact of client caches: Impact of client caches:– Measure → with respect to: % requests satisfied from client caches, % prefetch-interrupts from large files, # clients serviced, # files prefetched.
Observations: Observations:
– From the 2 workloads used, C301 dataset is more closely related to possibleaccess behavior for mobile clients than CS dataset ( less dense URL structure;sparser access pattern over time).
– From 3-1, best results show 28.8%28.8% of all client requestsof all client requests were satisfiedfrom client caches (as a result of prefetching).
– Caching results of popular accesses in addition to prefetched documentscould be widely effective in reducing mobile client-perceived latency andoverall proxy/server loads.
Experiment 3 - ResultsExperiment 3 - Results
Experiment 3-2: Accuracy of Prediction EngineExperiment 3-2: Accuracy of Prediction Engine
–– Predicted File Hit:Predicted File Hit:
• Recorded when Predicted item is actually the next request
• Defined by: (Total # correct guess (Total # correct guess ÷÷ total # guesses) total # guesses)
–– Predicted Byte Hit:Predicted Byte Hit:
• Recorded when there is prefetch file hit (bytes for correct guess)
• Defined by: (Total # correct file bytes (Total # correct file bytes ÷÷ total # bytes guessed) total # bytes guessed)
–– Record only Record only ‘‘client-based prediction ratesclient-based prediction rates’’::
• Do not include predictions made at end of a user’s session
• Request at the start of user’s session is not predicted
Important!Important!
Predictions are made only when the userPredictions are made only when the user’’s current session has been previouslys current session has been previously‘‘learnedlearned’’ (even though this reduces # times prefetching occurs). (even though this reduces # times prefetching occurs).
Due to differentDue to differentnature ofnature of
workloadsworkloads
Experiment 3.2 Experiment 3.2 –– Summary Summary
Accuracy of the Proxy Prediction Engine: Accuracy of the Proxy Prediction Engine:– Measure → the Predicted File hit and Byte hit ratios - Prediction usingPrediction usingPath ProfilesPath Profiles [SKS98].
– File hits = (Total # correct guess (Total # correct guess ÷÷ total # guesses) total # guesses)
– Inclusion of a re-training phase → very slight increase in performance (only 0.1 to 0.6% increase at best).– Prediction accuracy decreased with increased workload size– Increasing T-value → better accuracy (max. accuracy of 40.6%).
Research ContributionsResearch Contributions MoBed objective achieved:MoBed objective achieved:
– Combination of caching and prefetching schemes
– Client and proxy levels allow for separation of mobile-resident from proxy-resident functionality.
Enhanced J2ME awareness:Enhanced J2ME awareness:– J2ME: fairly new specification with rapidly growing popularity
– MoBed introduces a fresh perspective on mobile web access targeting theJ2ME platform.
MoBed architecture:MoBed architecture:– Shows that Client-proxy architecture is invaluable for wireless web access– Speculates that caching and prefetching at proxy-level could be particularly
advantageous to J2ME devices with more than minimum CLDC/MIDPrequirements.
– Even though it is not yet extensible, this architecture design is configurableand modular.
Future WorkFuture Work
Architecture deployment:Architecture deployment:– Currently, application development has been restricted to the J2ME
Wireless toolkit.
– Deployment on actual J2ME-enabled device will reveal issues/concernsnot apparent in the architecture at the moment.
Improvements to some MoBed components:Improvements to some MoBed components:– Improved HTML Parsing scheme
– Data transcoding technique with reduced overhead, efficient HTMLcompression
– Implement an accurate model for simulating transfer delays on the mobile-to-proxy link.
Building a MoBed framework:Building a MoBed framework:– Such a framework - ideal for flexiblyflexibly combining caching and prefetching
schemes for investigating Web access solutions.
– Possible framework hookshooks – caching and/or prefetching extension point,data compression/transcoding and HTML parsing extension points.
– Such hooks would ensure framework adaptation by enabling/disabling,replacing or augmenting the extensions.
Servicing multiple, diverse clients:Servicing multiple, diverse clients:– Proxy services available to J2ME clients with different device
capabilities/constraints.
– ‘Discrimination’ between clients: maintain knowledge base of all clients &their device capabilities; prefetch differently (liberal/conservative) to clientsbased on their capabilities.
ConclusionConclusion
Wireless devices like cell phones, pagers, etc. are increasinglyused nowadays:– They provide convenient services: email, instant messaging, Internet access,
etc.
– They are not restricted by place or time; easily customizable to user needs.
A lot of research has been reported on performance of Webcaching/prefetching for wired Internet access; challenges arise in awireless network.
Achieved its objective via the implementation and experimentation ofAchieved its objective via the implementation and experimentation ofMoBed Client-Proxy-Server architecture.MoBed Client-Proxy-Server architecture.
Results show promise Results show promise ⇒⇒ encouraging further research in this area. encouraging further research in this area.
ReferencesReferences[Hem02] - David Hemphill; J2ME and J2EE: Together – “At Last Sun has developed a blueprint for
creating mobile and wireless applications that access enterprise services—where do we go from
here?”
[SUN03] - Java Blueprints for a Wireless white paper - Designing Wireless Clients for Enterprise
Applications with Java Technology;
[CM03] - H. Chen and P. Mohapatra; A Novel Navigation and Transmission Technique for mobile
handheld devices;
[STHK03] - Bill N. Schilit, Jonathan Trevor, David M. Hilbert, and Tzu Khiau Koh; m-links: An
infrastructure for very small Internet devices;
[BGMP00] - O. Buyukkokten, H. Garcia-Molina, and A. Paepcke; Seeing the Whole in parts: Text
Summarization for Web Browsing on Handheld devices;
[Sab97] - K. Sabnani; Wireless Data Services;
[HP1.1] - HTML Parser version 1.1; http://htmlparser.sourceforge.net/
[SKS98] - S.E. Schechter, M. Krishan, M.D. Smith; Using Path Profiles to Predict HTTP Requests;