Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Department of Computer Science The Hong Kong University of Science & Technology [email_address] November 9, 1998
  • Li-Ion (Lithium-Ion)
  • Query By Icons (QBI): Iconic visual Language [Massari&Chrysanthis95]
  • bursty network activity during connections
  • prioritization of actions upon reconnection PDAs are unreliable
  • Caching: what, when and how charging the laptop with "local" info
  • Slides

    1. 1. Location Management for Mobile Computing Sandeep Gupta Arizona State University
    2. 2. Tutorial Outline <ul><li>1. Introduction </li></ul><ul><li>- Technical Issues & Technologies </li></ul><ul><li>- New (database) Applications </li></ul><ul><li>2. Location Information Services </li></ul><ul><li>3. Location Management </li></ul><ul><li>4. Location Based Queries </li></ul><ul><li>5. Summary </li></ul>
    3. 3. Introduction
    4. 4. Motivation <ul><li>Information is the core of business success. </li></ul><ul><li>The Internet has changed the way information is accessed. </li></ul><ul><li>Wireless networks are in place. </li></ul><ul><li>Mobile devices are available in the market. </li></ul><ul><li>Users like to go mobile and get ubiquitous access of information. </li></ul><ul><li>New applications requiring data management </li></ul>Why do we care about mobile database management?
    5. 5. Mobile Applications <ul><li>Expected to create an entire new class of Applications </li></ul><ul><ul><li>new massive markets in conjunction with the Web </li></ul></ul><ul><ul><li>Mobile Information Appliances - combining personal computing and consumer electronics </li></ul></ul><ul><li>Applications: </li></ul><ul><ul><li>Vertical: vehicle dispatching, tracking, point of sale, information service (yellow pages), Law enforcement </li></ul></ul><ul><ul><li>Horizontal: mail enabled applications, filtered information provision, collaborative computing… </li></ul></ul>
    6. 6. Medical Example <ul><li>911 Call </li></ul><ul><li>Ambulance arrives/departs </li></ul><ul><li>Closest hospital </li></ul><ul><li>Access patient records </li></ul><ul><li>Send vital signs </li></ul><ul><li>Update patient records </li></ul><ul><li>Page hospital personnel </li></ul><ul><li>Order medical supplies </li></ul>
    7. 7. Party on Friday <ul><li>Update Smart Phone’s calendar with guests names. </li></ul><ul><li>Make a note to order food from Dinner-on-Wheels. </li></ul><ul><li>Update shopping list based on the guests drinking preferences. </li></ul><ul><li>Don’t forget to swipe that last can of beer’s UPS label. </li></ul><ul><li>The shopping list is always up-to-date. </li></ul>
    8. 8. Party on Friday <ul><li>AutoPC detects a near Supermarket that advertises sales. </li></ul><ul><li>It accesses the shopping list and your calendar on the Smart Phone. </li></ul><ul><li>It informs you the soda and beer are on sale, and reminds you. </li></ul><ul><ul><li>that your next appointment is in 1 hour. </li></ul></ul><ul><li>There is enough time based on the latest traffic report. </li></ul>
    9. 9. Party on Friday <ul><li>TGIF… </li></ul><ul><li>Smart Phone reminds you that you need to order food by noon. </li></ul><ul><li>It downloads the Dinner-on-Wheels menu from the Web on your PC with the guests’ preferences marked. </li></ul><ul><li>It sends the shopping list to your </li></ul><ul><ul><li>CO-OP’s PC. </li></ul></ul><ul><li>Everything will be delivered by the time </li></ul><ul><li>you get home in the evening. </li></ul>
    10. 10. Wireless Networks <ul><li>Cellular - GSM (Europe+), TDMA & CDMA (US) </li></ul><ul><ul><ul><li>FM: 1.2-9.6 Kbps; Digital: 9.6-14.4 Kbps (ISDN-like services) </li></ul></ul></ul><ul><ul><ul><li>Cellular Subscribers in the United States: </li></ul></ul></ul><ul><ul><ul><ul><li>90,000 in 1984; 4.4 million in 1990; 13 million in 1994; 120 million in 2000; 187.6 million by 2004 (Cahner In-State Group Report) . </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Handheld computer market will grow to $1.77 billion by 2002 </li></ul></ul></ul></ul><ul><li>Public Packet Radio - Proprietary </li></ul><ul><ul><ul><li>19.2 Kbps (raw), 9.6 Kbps (effective) </li></ul></ul></ul><ul><li>Private and Share Mobile Radio </li></ul><ul><li>Paging Networks – typically one-way communication </li></ul><ul><ul><ul><li>low receiving power consumption </li></ul></ul></ul><ul><li>Satellites – wide-area coverage (GEOS, MEOS, LEOS) </li></ul><ul><ul><ul><li>LEOS: 2.4 Kbps (uplink), 4.8Kbps (downlink) </li></ul></ul></ul>
    11. 11. Wireless Networks (Cont.) <ul><li>Wireless Local Area Networks </li></ul><ul><ul><li>IEEE 802.11 Wireless LAN Standard based systems, e.g., Lucent WaveLan. </li></ul></ul><ul><ul><ul><li>Radio or Infrared frequencies: 1.2 Kbps-15 Mbps </li></ul></ul></ul><ul><li>Packet Data Networks </li></ul><ul><ul><li>ARDIS </li></ul></ul><ul><ul><li>RAM </li></ul></ul><ul><ul><li>Cellular Digital Packet Data (CDPD) </li></ul></ul><ul><li>Private Networks </li></ul><ul><ul><li>Public safety, UPS. </li></ul></ul>
    12. 12. Wireless Local Area Network <ul><li>Data services: IP packets </li></ul><ul><li>Coverage Area: Offices, buildings, campuses </li></ul><ul><li>Roaming: Within deployed systems </li></ul><ul><li>Internet access: via LAN. </li></ul><ul><li>Type of services: Data at near LAN speed. </li></ul>
    13. 13. Wireless Data <ul><li>Data can be everywhere: </li></ul><ul><ul><li>Computers </li></ul></ul><ul><ul><li>LAN </li></ul></ul><ul><ul><li>Internet </li></ul></ul><ul><ul><li>Air! </li></ul></ul>
    14. 14. Recent History of Wireless Data <ul><li>1970s: First use of mobile data systems in police cars. </li></ul><ul><li>1980s: IBM/Motorola build ARDIS data network. </li></ul><ul><li>1990s: RAM Mobile Data Network. </li></ul><ul><li>1990s: CDPD packet network. </li></ul><ul><li>1990s: GSM cellular systems support circuit-switched data access. </li></ul><ul><li>1998: CDMA PCS systems support 14.4 circuit-switched data access. </li></ul>
    15. 15. If the history repeats itself Wireless data will be booming pretty soon!
    16. 16. Future Wireless Services <ul><li>Source: Rysavy Research, 1999 </li></ul>Technology Service Data Capability Expected Deployment   GSM High-speed circuit-switched 28.8 to 56 Kbps service likely Limited 1999 and 2000   General Packet Radio Service IP and X.25 over Kbps Rollout of service 2001   Enhanced Data Rates for GSM Evolution IP to 384 Kbps. Roaming with IS-136 networks Rollout of service 2002   Wideband CDMA Similar to EDGE but adds 2Mbps indoor capability Initial in 2002 or 2003 IS-136 TDMA EDGE IP to 384 Kbps. Roaming with GSM networks Initial in 2002 or 2003   WCDMA or Wideband Similar to EDGE but adds 2Mbps indoor capability No stated deployment plans CDMA IS-95B IP communications: 64 Kbps Japanese markets in 2000   CDMA2000-1XRTT IP communications: 144 Kbps Trial in 2001, rollout 2002   CDMA2000 - 3XRTT IP: 384 Kbps(out), 2 Mbps(in) Initial in 2002 or 2003
    17. 17. Mobile and Wireless Computing <ul><li>Goal: Access Information Anywhere, Anytime, and in Any Way. </li></ul><ul><li>Aliases: Mobile, Nomadic, Wireless, Pervasive, Invisible, Ubiquitous Computing. </li></ul><ul><li>Distinction: </li></ul><ul><ul><li>Fixed wired network: Traditional distributed computing. </li></ul></ul><ul><ul><li>Fixed wireless network: Wireless computing. </li></ul></ul><ul><ul><li>Wireless network: Mobile Computing. </li></ul></ul><ul><li>Key Issues: Wireless communication, Mobility, Portability . </li></ul>
    18. 18. Mobile Network Architecture
    19. 19. Wireless characteristics <ul><li>Variant Connectivity </li></ul><ul><ul><li>Low bandwidth and reliability </li></ul></ul><ul><li>Frequent disconnections </li></ul><ul><ul><li>predictable or sudden </li></ul></ul><ul><li>Asymmetric Communication </li></ul><ul><ul><li>Broadcast medium </li></ul></ul><ul><li>Monetarily expensive </li></ul><ul><ul><li>Charges per connection or per message/packet </li></ul></ul><ul><li>Connectivity is weak, intermittent and expensive </li></ul>
    20. 20. Portable Information Devices <ul><li>PDAs, Personal Communicators </li></ul><ul><ul><li>Light, small and durable to be easily carried around </li></ul></ul><ul><ul><li>dumb terminals [InfoPad, ParcTab projects], </li></ul></ul><ul><ul><li>palmtops, wristwatch PC/Phone, walkstations </li></ul></ul><ul><li>will run on AA+ /Ni-Cd/Li-Ion batteries </li></ul><ul><li>may be diskless </li></ul><ul><li>I/O devices: Mouse is out, Pen is in </li></ul><ul><li>wireless connection to information networks </li></ul><ul><ul><li>either infrared or cellular phone </li></ul></ul><ul><li>specialized HW (for compression/encryption) </li></ul>
    21. 21. Portability Characteristics <ul><li>Battery power restrictions </li></ul><ul><ul><li>transmit/receive, disk spinning, display, CPUs, memory consume power </li></ul></ul><ul><li>Battery lifetime will see very small increase </li></ul><ul><ul><li>need energy efficient hardware (CPUs, memory) and system software </li></ul></ul><ul><ul><li>planned disconnections - doze mode </li></ul></ul><ul><li>Power consumption vs. resource utilization </li></ul>
    22. 22. Portability Characteristics <ul><li>Resource constraints </li></ul><ul><ul><li>Mobile computers are resource poor </li></ul></ul><ul><ul><li>Reduce program size – interpret script languages (Mobile Java?) </li></ul></ul><ul><ul><li>Computation and communication load cannot be distributed equally </li></ul></ul><ul><li>Small screen sizes </li></ul><ul><li>Asymmetry between static and mobile computers </li></ul>
    23. 23. Mobility Characteristics <ul><li>Location changes </li></ul><ul><ul><li>location management - cost to locate is added to communication </li></ul></ul><ul><li>Heterogeneity in services </li></ul><ul><ul><li>bandwidth restrictions and variability </li></ul></ul><ul><li>Dynamic replication of data </li></ul><ul><ul><li>data and services follow users </li></ul></ul><ul><li>Querying data - location-based responses </li></ul><ul><li>Security and authentication </li></ul><ul><li>System configuration is no longer static </li></ul>
    24. 24. What Needs to be Reexamined? <ul><li>Operating systems </li></ul><ul><li>File systems </li></ul><ul><li>Data-based systems </li></ul><ul><li>Communication architecture and protocols </li></ul><ul><li>Hardware and architecture </li></ul><ul><li>Real-Time, multimedia, QoS </li></ul><ul><li>Security </li></ul><ul><li>Application requirements and design </li></ul><ul><li>PDA design: Interfaces, Languages </li></ul>
    25. 25. Query/Transaction Processing <ul><li>Concern shifts from CPU time and network delays to battery power, communication costs, and tariffs </li></ul><ul><li>Updates may take the form of long-running transactions </li></ul><ul><ul><li>nodes may continue in disconnected mode </li></ul></ul><ul><ul><li>need new transaction models [Chrysanthis 93, Satya 94] </li></ul></ul><ul><li>Context (location) based query responses </li></ul><ul><li>Consistency, autonomy, recovery </li></ul><ul><li>Providing uniform access in a heterogeneous environment </li></ul><ul><li>Design of human-computer interfaces (pen-based computing) </li></ul><ul><li>Dynamic system info: Location information, user profiles </li></ul>
    26. 26. Issues in Information Access <ul><li>tariff </li></ul><ul><li>scalability: massive # users accessing read-only data </li></ul><ul><li>security (of data and user profiles/location) </li></ul><ul><li>approximate answers </li></ul><ul><li>consistency, autonomy, recovery </li></ul><ul><ul><li>PDAs are unreliable </li></ul></ul><ul><li>prioritization of actions upon reconnection </li></ul><ul><li>providing uniform access in a heterogeneous environment </li></ul><ul><li>design of human-computer interfaces (pen-based computing) </li></ul>
    27. 27. Recurrent Themes <ul><li>Handling disconnections (planned failures?) </li></ul><ul><ul><li>caching strategies </li></ul></ul><ul><ul><li>managing inconsistencies </li></ul></ul><ul><li>Delayed write-back and prefetch: use network idle times </li></ul><ul><ul><li>increases memory requirements </li></ul></ul><ul><li>Buffering/batching: allows bulk transfers </li></ul><ul><li>Partitioning and replication </li></ul><ul><ul><li>triggered by relocation </li></ul></ul><ul><li>Compression: increase effective bandwidth increases battery power requirements </li></ul><ul><li>Receiving needs less power than sending </li></ul>
    28. 28. Everybody is ready! <ul><li>End users : they want to access to data ubiquitously. </li></ul><ul><li>Wireless networks : there are many choices of digital wireless data networks. </li></ul><ul><li>Mobile devices : they are wireless-ready today. </li></ul><ul><li>Applications : Internet standards are in progress to facilitate developments of wireless applications. </li></ul>
    29. 29. Location Information Services
    30. 30. Location Information Services:Types <ul><li>Location-Transparent </li></ul><ul><li>Location-Tolerant </li></ul><ul><li>Location-Aware </li></ul>
    31. 31. Location-Transparent Services <ul><li>Hides the effect of mobility to applications and users. </li></ul><ul><li>Network services and resources can be transparently accessed by means of a resource and service broker functions which map the application’s service type requests on adequate service provider instances. </li></ul><ul><li>Application defined quality-of-service (QoS) for the underlying network connections is sustained through a QoS manager . </li></ul>
    32. 32. Location-Tolerant Services <ul><li>Allows applications and users to tolerate the effects of mobility that can not be hidden by the platform. </li></ul><ul><li>A trader function allows the application to perform a service and service type re-negotiation to achieve a graceful degradation instead of dumb service termination. </li></ul><ul><li>A profile handler function allows to retrieve user and terminal characteristics to perform application adaptation according to terminal type currently being used. </li></ul>
    33. 33. Location-Aware Services <ul><li>Allows applications and users to be aware of their mobility and the absolute and real physical positions of real-world objects. </li></ul><ul><li>Applications can exploit this information for customizing their functionality and users can benefit from this information for navigation purposes. </li></ul><ul><li>This abstraction level is realized by the location information server (LIS) function that allows to query location information and to be notified about the occurrences of predefined location-related events. </li></ul>
    34. 34. Platform for Mobile and Location-Aware Applications mobility-management services mobile and location-aware multimedia applications platform access protocols generic support functions Infrastructure and network interfaces Mobility Management Domain mobility management signalling protocol application APIs application APIs mobility manager APIs mobile application platform resource & service broker QoS manager location manger server profile handler wired & wireless networks locating infrastructure
    35. 35. Location Information Server <ul><li>Acquires information about the – absolute or relative – physical location of real world objects in which an application is interested. </li></ul><ul><li>Hides from applications which locating technology is being used. </li></ul><ul><li>Has map and relationship knowledge to translate the low-level position information from the locating infrastructure into location information having meaningful abstraction level for application. </li></ul><ul><li>Application can query the LIS about current location of objects (LIS directory database ) or can request to be notified when certain location-related conditions between objects locations are fulfilled (LIS event handler ). </li></ul>profile handler directory database Location information server (LIS) event handler location-aware application LIS API location-aware application LIS API other midlleware components directory access protocol other APIs to remote platforms locater Infrastructure to locate physical objects
    36. 36. A Generic Locating Model <ul><li>LIS locates objects ( identified by object-ID) representing either persons or resources inside areas ( identified by area-ID). </li></ul><ul><li>Objects have a tag ( identified by tag-ID) attached to them that identifies and localizes them. </li></ul><ul><ul><li>Resources can serve as tags e.g. badges, cordless telephones, PDAs, or laptops. </li></ul></ul><ul><li>A LIS: </li></ul><ul><ul><li>maintains relations between objects and tags. </li></ul></ul><ul><ul><li>provides graphical map in human-readable format and calculates shortest paths between areas. </li></ul></ul><ul><ul><li>finds objects that are nearest to a specified area and fulfill certain conditions. </li></ul></ul><ul><ul><li>supports both querying and notification services. </li></ul></ul><ul><li>A locator provides the interface between locating infrastructure and LIS. </li></ul>
    37. 37. LIS Data Model <ul><li>Locating rules: </li></ul><ul><ul><li>A tag is located within an area by means of sensors installed in that area. This information is collected by the locator and published to LIS, which uses a map to translate sensor-ID into area-ID. </li></ul></ul><ul><ul><li>A tag may determine its absolute geographical position (e.g. using GPS) and publish this through the locator to LIS, which uses map to translate geographical location into area-ID. </li></ul></ul>database/ event handler application maps relations position  area sensor  area object  tag object  area tag  sensor tag  position tag tag tag tag tag sensor sensor locator locator positioning system tag location information server
    38. 38. LIS Service Types <ul><li>Location retrieval service </li></ul><ul><li>Location-dependent object and area selection service </li></ul><ul><li>Event notification service </li></ul><ul><li>Map retrieval service </li></ul><ul><li>Identifier mapping service </li></ul><ul><li>Relationship service </li></ul>
    39. 39. Location Retrieval Service <ul><li>Provides physical location of static/mobile object with/without tags, e.g. </li></ul><ul><ul><li>In which area is person A (and when was her last sighting)? </li></ul></ul><ul><ul><li>How many (or which persons) are present in area B? </li></ul></ul><ul><ul><li>Where is equipment C (e.g. printer) in area B? </li></ul></ul>
    40. 40. Location-dependent Object and Area Selection Service <ul><li>Provides type or class oriented location information, e.g. </li></ul><ul><ul><li>Which object of type D is present in area B? </li></ul></ul><ul><ul><li>Which one is the nearest object of type D (relative to my own location) and where it is located? </li></ul></ul><ul><ul><li>Which (nearest) area fulfils certain condition (e.g. which one is the nearest unoccupied meeting room)? </li></ul></ul>
    41. 41. Event Notification Service <ul><li>Avoids repeated polling the LIS by an application. This functionality is, e.g., needed to start a function on a mobile device as soon as it enters a certain area. Examples of events are </li></ul><ul><ul><li>Inform me when person A enters (or leaves) area B! </li></ul></ul><ul><ul><li>Inform me when area B is empty! </li></ul></ul><ul><ul><li>Inform me next time person A meets person B anywhere! </li></ul></ul>
    42. 42. Map Retrieval Service <ul><li>To help users (of navigation based applications) in finding others persons, resources, or areas by providing maps and navigation instructions, e.g. </li></ul><ul><ul><li>Provide me with with a (human-readable) map of area A! </li></ul></ul><ul><ul><li>Provide me with the shortest-path between area A and area B! </li></ul></ul>
    43. 43. Identifier Mapping Service <ul><li>Provides mappings between identifiers of areas, sensors, and positions </li></ul><ul><ul><li>to support internal LIS operations, </li></ul></ul><ul><ul><li>for other support functions of mobile application platform, and </li></ul></ul><ul><ul><li>for location-aware applications operating at tag-level. </li></ul></ul>
    44. 44. Relationship Service <ul><li>Provides relationship information between objects and tags for applications operating at tag level instead of object level, or for applications that want to communicate with objects through its tag, e.g . </li></ul><ul><ul><li>Which object is associated with tag A? </li></ul></ul><ul><ul><li>Which (if any) tag does object B posses ? </li></ul></ul><ul><ul><li>Associate tag A with objet B! </li></ul></ul>
    45. 45. LIS: Implementation Issues <ul><li>DBMS-based or Directory-based (such as X.500 [Maas MONET 98]) </li></ul><ul><ul><li>LIS do not require full functionality of DBMS </li></ul></ul><ul><ul><li>Should support distributed implementation on multiple platforms </li></ul></ul><ul><li>Communication with external locator </li></ul><ul><ul><li>Dramatically increases search time </li></ul></ul><ul><ul><li>Minimize the interaction with external locator using </li></ul></ul><ul><ul><ul><li>Precise search filters </li></ul></ul></ul><ul><ul><ul><li>Location query optimization techniques </li></ul></ul></ul><ul><li>Event Monitoring </li></ul><ul><ul><li>Active Databases </li></ul></ul>
    46. 46. Location Management Schemes
    47. 47. Location Management: Context <ul><li>Mobility Management : Enables users to support mobile users, allowing them to move, while simultaneously offering them incoming calls, data packets, and other services. </li></ul><ul><ul><li>Types of mobility: </li></ul></ul><ul><ul><ul><li>Terminal mobility : ability of terminal to retain connectivity with the network so that all on-going communication services remain active despite terminal’s migration. </li></ul></ul></ul><ul><ul><ul><li>Personal mobility : disassociates user from the terminal (e.g. in GSM a mobile station = mobile terminal + smart card with subscriber identification module (SIM)). </li></ul></ul></ul><ul><ul><ul><li>Service mobility : provides continuous service to mobile clients across multiple administrative domains. </li></ul></ul></ul><ul><ul><li>Consists of: </li></ul></ul><ul><ul><ul><li>Location management : tracking mobiles and locating them prior to establishing incoming calls (deliverying pending messages). </li></ul></ul></ul><ul><ul><ul><li>Handoff management (a.k.a. automatic link transfer): rerouting connections with minimal degradation of QoS. </li></ul></ul></ul>
    48. 48. Location Management Problem <ul><li>In static networks, a terminal’s network address serves two purposes: </li></ul><ul><ul><ul><li>End-point identifier </li></ul></ul></ul><ul><ul><ul><li>Location identifier </li></ul></ul></ul><ul><ul><li>Mobility prevents using a single address for both purposes </li></ul></ul><ul><ul><li>Both end-point identifier and location identifier are needed. </li></ul></ul><ul><ul><li>Location management keeps mapping between an end-point identifier and its location identifier </li></ul></ul><ul><ul><ul><li>Basically a directory problem. </li></ul></ul></ul><ul><li>Two primitive operations: </li></ul><ul><ul><li>Lookup (a.k.a. search/find/paging/locating) operation: is the procedure by which the network finds the location of the mobile. </li></ul></ul><ul><ul><ul><li>required when a call (message) to a user is placed (to be delivered) </li></ul></ul></ul><ul><ul><li>Update (a.k.a tracking/move/registration) operation: is the procedure by which the network elements update information about the location of the mobile. </li></ul></ul><ul><ul><ul><li>required when a user changes its “location” </li></ul></ul></ul><ul><ul><ul><li>The information gathered during updating/tracking is used during the locating operation </li></ul></ul></ul>
    49. 49. Location Management: Issues <ul><li>More precise location needs to be maintained as cell size shrink: </li></ul><ul><ul><li>Wide area cells are 10’s – 100’s km in diameter </li></ul></ul><ul><ul><li>Macro-cells: 1-10 km </li></ul></ul><ul><ul><li>Micro-cells: 100’s m </li></ul></ul><ul><ul><li>Pico-cells: under 10 m </li></ul></ul><ul><li>Database issues in tracking mobile users: </li></ul><ul><ul><li>Maintaining update intensive location information </li></ul></ul><ul><ul><li>Strategies to reduce location query latency (such as replication) and traffic (such as caching) </li></ul></ul><ul><ul><li>Consistency between replicas; Cache management polices </li></ul></ul>
    50. 50. Location Management: Schemes <ul><li>Several schemes have been developed which are motivated by fundamental trade-off between search operation cost and update operation cost . </li></ul><ul><ul><li>Schemes which try to minimize one cost tend to increase the other cost </li></ul></ul><ul><ul><li>Try to optimize the aggregate cost or normalized cost. </li></ul></ul><ul><li>Categorization: </li></ul><ul><ul><li>Update Scheme: Static or Dynamic </li></ul></ul><ul><ul><ul><li>Static update scheme: registration areas </li></ul></ul></ul><ul><ul><ul><li>Dynamic update scheme: distance/time/movement based strategy </li></ul></ul></ul><ul><ul><li>Locating Scheme: Static or Dynamic </li></ul></ul><ul><ul><ul><li>Static location scheme: page all the cells in the network </li></ul></ul></ul><ul><ul><ul><li>Dynamic location scheme: expanding ring search centered at last reported location of the the user </li></ul></ul></ul><ul><ul><li>Database Architecture: Flat or Hierarchical </li></ul></ul>
    51. 51. Selection of LM Schemes <ul><li>Cost of location updates and lookups </li></ul><ul><li>Maximum service capacity of each location database = </li></ul><ul><ul><li>the maximum rate of updates and lookups that each database can service </li></ul></ul><ul><li>Space restrictions (size of the location database) </li></ul><ul><li>Type and relative frequency of call to move operations (call-to-mobility ratio (CMR)) </li></ul>
    52. 52. One-Tier Scheme <ul><li>A home database, called Home Location Register (HLR) is associated with each mobile user. </li></ul><ul><li>The HLR of a user x maintains the current location of x as part of x’s profile. </li></ul><ul><li>To locate a user x, x’s HLR is identified and queried. </li></ul><ul><li>When a user x moves to a new cell, x’s HLR is updated. </li></ul>
    53. 53. Two-Tier (Basic) Scheme <ul><li>Visitor Location Registers (VLRs) are maintained in each zone (registration area). </li></ul><ul><li>VLR in a zone stores copies of profiles of users not at home and currently located in that zone. </li></ul><ul><li>When a call is placed from cell i to user x, the VLR at cell i is queried first, and only if the user is not found there, is x’s HLR contacted. </li></ul><ul><li>When user x moves from cell i to j, in addition to updating x’s HLR, the entry of x is deleted from VLR at cell i, and a new entry for x is added to the VLR at cell j. </li></ul>
    54. 54. Two-Tier Scheme: Standards <ul><li>Many current and proposed standards use this scheme: </li></ul><ul><ul><li>Electronics Industry Association Telecommunications Industry Associations (EIA/TIA) Interim Standard 41 (IS 41) - commonly used in North America. </li></ul></ul><ul><ul><li>Global Systems for Mobile Communications (GSM) - used in Europe. </li></ul></ul><ul><ul><li>Internet Engineering Task Force (IETF) Mobile IP protocol </li></ul></ul>
    55. 55. Enhancements to Basic Scheme <ul><li>Per User Location Caching (dynamic replication) [Jain et. al., IEEE JSAC 12(8), ‘94] </li></ul><ul><ul><li>reduces search (lookup) cost </li></ul></ul><ul><ul><li>increases update cost </li></ul></ul><ul><ul><li>exploits locality in call pattern </li></ul></ul><ul><li>(Static) Replication </li></ul><ul><ul><li>Per User Profile Replication [Shivakumar & Widom Mobicom’95] </li></ul></ul><ul><ul><li>Working Set Replication [Rajagopalan et. al., Mobicom’95] </li></ul></ul><ul><li>Forwarding Pointers [Jain & Lin, Wireless Networks 1, ’95] </li></ul><ul><ul><li>reduces update (move) cost </li></ul></ul>
    56. 56. Per User Location Caching <ul><li>Basic Idea: </li></ul><ul><ul><li>Every time user x is called, x’s location (or a pointer to this location) is cached at the VLR in the caller’s zone. </li></ul></ul><ul><ul><li>Any subsequent call to x originating from that zone can use this information: </li></ul></ul><ul><ul><ul><li>Upon call origination the cache at the VLR of the caller’s zone is checked before querying the callee’s HLR. </li></ul></ul></ul><ul><li>Issues: </li></ul><ul><ul><li>cache replacement schemes (LRU can be used) </li></ul></ul><ul><ul><li>cache invalidation schemes </li></ul></ul><ul><ul><ul><li>eager caching or lazy caching </li></ul></ul></ul>
    57. 57. Eager and Lazy Caching <ul><li>Eager Caching </li></ul><ul><ul><li>Every time a user moves to a new location, all cache entries for this user’s location are updated. </li></ul></ul><ul><ul><li>The cost of move operations increases for those users whose address are cached. </li></ul></ul><ul><li>Lazy Caching </li></ul><ul><ul><li>the cached pointer for any given user is updated only on a cache miss </li></ul></ul><ul><ul><li>for lazy scheme to work better than basic scheme p  C H /C B where p is the hit ratio, C H is the cost of a lookup when there is a hit and C B is the cost of lookup in the basic scheme. </li></ul></ul>
    58. 58. Replication <ul><li>To reduce the lookup cost, the location of specific users is replicated at selected sites. </li></ul><ul><li>Let </li></ul><ul><ul><li> : cost savings when local lookup succeeds as opposed to a remote query, </li></ul></ul><ul><ul><li> : cost of updating a replica, </li></ul></ul><ul><ul><li>C i,j : expected number of calls made from cell j to i in a unit time. </li></ul></ul><ul><ul><li>U i : expected number of moves by i in unit time </li></ul></ul>Then a replication of the location of user i at cell j is judicious if  C i,j  U i .
    59. 59. Per User Profile Replication <ul><li>Objective: to minimize the total cost of moves and calls, while maintaining </li></ul><ul><ul><li>Constraint 1: a maximum of r i replicas for user i, and </li></ul></ul><ul><ul><li>Constraint 2: a maximum of p j replicas in the database of cell j. </li></ul></ul><ul><li>Replication assignment problem: The profile of user i is replicated at all cells in set R(i) such that the system cost </li></ul> N i=1  M j=1,j  R(i) (  U i -  C i,j ) is minimized, where N is the number of users and M is the number of cells., and constraints 1 and 2 above are met.
    60. 60. Replication Assignment <ul><li>Flow Network based solution: </li></ul>Solving Min-Cost Max-Flow on the Flow Network finds the required assignment. s t users cells 1 i N (0,r 1 ) (0,r i ) (0,r N ) 1 M j (0,p j ) (0,p 1 ) (0,p M ) (  U i -  C i,j ,1) (  U N -  C N,M ,1) Edges are labeled with (cost,capacity) tuple. source sink
    61. 61. Working Set (WS) Replication <ul><li>Relies on the observation that each user communicates frequently with a small number of sources called its working set. </li></ul><ul><li>Copies of location are maintained at the members of its working set. </li></ul><ul><li>No constraints are placed on database storage capacity or on number of replicas per user. </li></ul><ul><li>Hence, the decision to provide the information of the location of a mobile unit i to zone j can be made independently for each user. </li></ul><ul><li>Adapts to user’s call and mobility patterns </li></ul>
    62. 62. Working Set Adaptation <ul><li>The inequality Q:  C i,j  U i . is evaluated locally at a mobile unit I each time: </li></ul><ul><ul><li>1. a call is set up, </li></ul></ul><ul><ul><li>2. the mobile unit moves. </li></ul></ul><ul><li>In case 1, Q is evaluated only if the caller’s site is not a member of mobile’s WS: </li></ul><ul><ul><li>If the inequality holds then the caller’s site becomes member of the callee’s working set. </li></ul></ul><ul><li>In case 2, the Q is evaluated for every member of WS; the members for which Q no longer holds are dropped from WS. </li></ul>
    63. 63. Performance of WS Replication <ul><li>Computation overhead: </li></ul><ul><ul><li>in case 1 all four terms of Q need to be reevaluated </li></ul></ul><ul><ul><li>in case 2 only the number of moves (U i ) needs to be reevaluated. </li></ul></ul><ul><li>Adaptability: </li></ul><ul><ul><li>when call-to-mobility ratio (CMR) value is low the WS scheme performs like a scheme without replication. </li></ul></ul><ul><ul><li>when CMR value is high, the scheme behaves like a static scheme in which the WS for a user is fixed. </li></ul></ul><ul><li>Performance is mainly dependent upon the CMR of individual users (not on num. of users). </li></ul>
    64. 64. Forwarding Pointers <ul><li>Each time a mobile unit x moves to a new location, a forwarding pointer is set up to its previous VLR to point to the new VLR. </li></ul><ul><li>To establish a call, the HLR of callee is queried to find the first VLR in the forwarding pointer chain. This chain is followed to get to the current VLR of the callee. </li></ul><ul><li>To bound the time taken for lookup procedure, the length of the chain is bound to a max value of K. </li></ul><ul><li>Pointer compression is used to eliminate loops. </li></ul>
    65. 65. Forwarding Pointers (Cont.) <ul><li>Mobile IP protocol includes pointer forwarding in conjunction with lazy caching. </li></ul><ul><li>The forwarding pointer strategy is useful for those users who receive calls infrequently relative to the rate at which they change registration areas. </li></ul><ul><li>Benefits of forwarding depends also upon the cost of setting up and traversing pointers relative to the costs of updating the HLR. </li></ul>
    66. 66. Overlapping Registration Areas <ul><li>Inter-RA hand-off: a user changes cells and RAs </li></ul><ul><li>Intra-RA hand-off: a user changes cells within an RA. </li></ul><ul><li>Inter-RA hand-off doesn’t happen as long as the hand-off can be intra-RA. </li></ul><ul><li>Inter-RA call is when caller and callee are in separate RAs </li></ul><ul><li>Intra-RA call is when caller and callee are in same RA. </li></ul><ul><li>A non-overlapping cell is serviced by one LR. </li></ul><ul><li>A overlapping cell is serviced by multiple LRs. </li></ul><ul><ul><li>Reduction of inter-RA hand-offs. </li></ul></ul>Without overlapping With overlapping A B C C B A 1 2 3 1 2 3
    67. 67. Overlapping RAs (cont.) <ul><li>Advantages: </li></ul><ul><ul><li>Each RA can provide service to more mobiles within their covered area. </li></ul></ul><ul><ul><li>Reduces the number of inter-RA handoffs </li></ul></ul><ul><ul><li>Reduce the load to update mobile’s HLR. </li></ul></ul><ul><li>Disadvantages: </li></ul><ul><ul><li>the communication overhead for call-delivery and intra-RA handoff is increased. </li></ul></ul><ul><ul><li>the increase in overhead depends upon the underlying network topology. </li></ul></ul><ul><ul><li>If this overhead is ignored then the extreme configuration in which each RA has all the cells in the system becomes the “optimal” configuration. </li></ul></ul>
    68. 68. Overlapping RAs (cont.) <ul><li>Dynamically Resizing RAs </li></ul><ul><ul><li>We need to find optimal configuration (allowing overlapping RAs) i.e. configuration which minimizes load on MSSs. </li></ul></ul><ul><ul><li>When move and call patterns periodically change, a static scheme may not provide a good solution </li></ul></ul><ul><ul><li>Our Approach: Allow RAs to be dynamically adapted. </li></ul></ul><ul><ul><li>Periodically resize RAs to minimize MSS load: </li></ul></ul><ul><ul><ul><li>Resizing criterion: load reduction due to lesser number of inter-RA handoffs > increase in load due to more expensive call delivery and intra-RA handoffs. </li></ul></ul></ul><ul><ul><ul><li>If resizing criterion is ignored then each RA will grow to maximum size. </li></ul></ul></ul>
    69. 69. Overlapping RAs (cont.) <ul><li>Even though mobiles a and b belong to the same RA, any </li></ul><ul><li>calls between them would need to go through two MSSs. </li></ul><ul><li>Negative effect of underlying conventional star topology on signaling overhead under overlapping RAs </li></ul>Backbone Network MSS/LR Cells RA B RA A RA C a b
    70. 70. Overlapping RAs (cont.) <ul><li>Inclusion and Exclusion Boundary </li></ul><ul><ul><li>In order to facilitate orderly growth and shrinking of RAs, an MSS only includes and excludes cells from its RAs current boundary. </li></ul></ul><ul><ul><li>Two types of boundary: </li></ul></ul><ul><ul><ul><li>Internal Boundary </li></ul></ul></ul><ul><ul><ul><li>External Boundary </li></ul></ul></ul>MH BS MSS
    71. 71. Overlapping RAs (cont.) <ul><li>Inclusion/Exclusion Decision </li></ul><ul><ul><li>The decision to include or exclude a candidate cell is based on whether the resulting configuration will have a lower expected load on MSS. </li></ul></ul><ul><ul><li>For a given system configuration A, mobility pattern M, and call C, SystemLoad(A,M,C) is the combined signaling load (in terms of message time complexity) as a result of all the handoffs due to M and call-deliveries due to C: SystemLoad(A,M,C) =  Load(k,M,C). </li></ul></ul><ul><ul><li>In case of inter_RA handoffs and call-deliveries we spilt the signaling overhead equally between the two MSSs involved. </li></ul></ul>
    72. 72. Overlapping RAs (cont.) <ul><li>What changes when cell x is included in RA r? </li></ul><ul><ul><li>Handoffs to cell x from cells of RA r become intra-RA handoffs. </li></ul></ul><ul><ul><li>Handoffs from cell x to rest of RA r performed by users already registered in r become intra-RA handoffs. </li></ul></ul><ul><ul><li>Calls to x from cells of r are now intra-RA calls. </li></ul></ul><ul><ul><li>Calls from users of r that are in x to rest of r are now intra-RA calls. </li></ul></ul><ul><ul><li>Mobility of users in r that move out of cell x into a new RA is now inter-RA mobility. </li></ul></ul><ul><ul><li>Inter-RA calls of users in r that call from cell x is inter-RA call loading to r. </li></ul></ul><ul><li>Call the decreasing part of the load Cost in ( x , r ) and the increasing part Cost ex ( x , r ). </li></ul><ul><ul><li>At intervals T each MSS/LR r computes I_Boundary( r ) and E_Boundary( r ) and for each cell x in the two sets computes Cost in ( x , r ) and Cost ex ( x , r ). By comparing the two values, it decides if it is worth keeping excluded, keeping included, including or excluding the cell c . </li></ul></ul>
    73. 73. Dynamic Updating <ul><li>Most schemes have fixed locations (i.e. the boundaries of registration areas) where the mobiles update. </li></ul><ul><li>Users that move around boundaries cause a lot of registrations. </li></ul><ul><li>[Bar-Noy95] Solution: introduce dynamic update schemes that don’t depend on location of mobile. </li></ul>
    74. 74. Dynamic Updating (cont.) <ul><li>Time-based </li></ul><ul><ul><li>User updates location at intervals of time T independent of actual location. </li></ul></ul><ul><li>Movement-based </li></ul><ul><ul><li>User updates location after crossing M hops (cells) from last updated location. </li></ul></ul><ul><li>Distance-based </li></ul><ul><ul><li>User updates location after being distance D from last updated location. </li></ul></ul><ul><li>Two metrics to evaluate schemes: </li></ul><ul><ul><li>update rate (# of updates/sec) </li></ul></ul><ul><ul><li>search area (# of cells/search) </li></ul></ul>
    75. 75. Dynamic Updating (cont.) <ul><li>Time-based versus Movement-Based </li></ul><ul><li>Update rate </li></ul><ul><ul><li>If user crosses less than M cells per time T, then time-based makes more updates, otherwise time-based makes less updates </li></ul></ul><ul><ul><li>If M is average hops traversed per time T, then two schemes have same rate of updates. </li></ul></ul><ul><li>Search area </li></ul><ul><ul><li>Search area in time-based is the cells that can be reached from last updated location at max user speed in time T. </li></ul></ul><ul><ul><li>Search area in movement-based is cells that can be reached in M or less hops from last updated location </li></ul></ul>
    76. 76. Dynamic Updating (cont.) <ul><li>Movement-based versus Distance-based </li></ul><ul><li>Update rate </li></ul><ul><ul><li>If D=M, distance-based will do at most as many updates as movement-based </li></ul></ul><ul><li>Search area </li></ul><ul><ul><li>Search area is same in both schemes (cells that can are at distance D or less from last updated location) </li></ul></ul>
    77. 77. Look-ahead update <ul><li>[Tsai97] Proposed a look-ahead update scheme based on the distance-based scheme of [Bar-Noy95]. </li></ul><ul><li>Mobility is modeled as a “normal walk” where the mobile tends to keep the direction of movement </li></ul><ul><li>Look-ahead update scheme: in distance-based scheme don’t update current location, but update a location Δ hops ahead </li></ul><ul><li>Under normal walk mobility model, user is more probable to cross standard circle (solid) before crossing look-ahead circle (dotted). Therefore look-ahead saves updates. </li></ul>
    78. 78. Dynamic Hierarchy <ul><li>[Ho97] Proposed a hybrid scheme with different hierarchy levels. </li></ul><ul><li>Directory Registers: are a inter-mediate level of hierarchy between VLRs and HLRs. </li></ul><ul><li>For each user there is the consept of Local DR, the DR that is above the VLR. </li></ul><ul><li>HLRs may point to VLRs (direct pointer) or to LDRs (indirect pointer). Hence, the two hierarchies: </li></ul><ul><ul><li>Two levels: HLR  VLR </li></ul></ul><ul><ul><li>Three levels: HLR  LDR  VLR </li></ul></ul><ul><li>Scheme includes Forwarding Pointers Of users various DRs to other DRs or LRs </li></ul>Local DR MSC a Remote DR 1 Remote DR 2 MSC b MT a MT b HLR a HLR b Indirect HLR pointer Direct HLR pointer Direct DR remote pointer Indirect DR remote pointer
    79. 79. Multiple-level Hierarchical Scheme <ul><li>[Bejerano98] define a multiple-level hierarchy of overlapping Location Areas: </li></ul><ul><ul><li>If LAs are viewed as circles of radius r , then the outer r / 2 part (periphery) overlaps with the inner parts (cores) of neighboring LAs, and the inner r / 2 part (core) overlaps with the outer parts (peripheries) of neighboring LAs. </li></ul></ul><ul><ul><li>At each level n , there is twice the number of the ( n +1)-level Location Areas and half of the ( n -1)-level Location Areas. </li></ul></ul><ul><ul><li>Logarithmic number of levels </li></ul></ul><ul><ul><li>For every user, there is at least one LA at each level that has a “location pointer” to a LA to the next lower level. </li></ul></ul>
    80. 80. Multiple-level Hierarchical Scheme (cont.) <ul><li>Update policy: </li></ul><ul><ul><li>At each level, starting from lowest, if the user moves between two cells that are not in the same LA, the move is “updated” to the LA in the above level as well. </li></ul></ul><ul><ul><li>A movement update goes up to the LA that embraces both ending and starting cells of the user’s movement. </li></ul></ul><ul><li>Search Policy: </li></ul><ul><ul><li>If there is no downward pointer, then the search is propagated upward until a LA has a downward pointer of the user. </li></ul></ul><ul><ul><li>The downward pointers are followed until the user is reached. </li></ul></ul><ul><li>Scheme shows very good average and best case costs, but very bad worst case. </li></ul>
    81. 81. Summary of Variations to 2-Tier Scheme Adaptive Distributed: the replication sites are computed locally at each mobile host Working Set Cache update overhead occurs at calls Lazy Caching Additional constraints are set on the number of replicas per site and on the number of replicas per user Cache update overhead occurs at moves Small LCMR Restrict the length of the chain of forwarding pointers Forwarding Pointers When x moves, add a forwarding pointer from its old to its new address. Large LCMR Per-user profile Replication Replication Selectively replicate x’s address at the zones from which it receives the most calls Large LCMR Eager caching Caching When x is called by y, cache x’s location at y’ zone. Used When : Variations Method
    82. 82. Hierarchical Schemes (HS) <ul><li>Extend two-tier schemes by maintaining a hierarchy of location databases. </li></ul><ul><li>Location database at higher level contains location of users located at levels below it. </li></ul><ul><li>Usually hierarchy is tree structured: </li></ul><ul><ul><li>Location database at a leaf serves a single cell and contains entries for all users registered in that cell. </li></ul></ul><ul><ul><li>A database at an internal node maintains location of users registered in the set of cells in its subtree. </li></ul></ul><ul><ul><li>location information can be either </li></ul></ul><ul><ul><ul><li>pointer to an entry at a lower level database or </li></ul></ul></ul><ul><ul><ul><li>the user’s actual current location. </li></ul></ul></ul>
    83. 83. Hierarchical Location Scheme [Jain, ICC ’96] 0 1 2 5 6 3 4 7 8 9 10 11 12 13 14 15 16 17 18 user x x x x 9 entries for user x when the location database maintain pointers x 9 x 9 entries for user x when the location database maintain actual location x 9 x x 9
    84. 84. Updates/Lookups with Pointers <ul><li>LCA ( i,j ): least common ancestor of i and j . </li></ul><ul><li>When user x moves from cell i to j , following entries for x in databases are updated: </li></ul><ul><ul><li>1. along the path from j to LCA ( i,j ), and </li></ul></ul><ul><ul><li>2. along the path from LCA ( i,j ) to i . </li></ul></ul><ul><li>When a caller located at cell i places a call for a user y located at cell j , the lookup procedure: </li></ul><ul><ul><li>1. queries databases starting from node i and proceeding upwards the tree until the first entry for x is encountered (at LCA ( i,j )). </li></ul></ul><ul><ul><li>2. Then the lookup procedure proceeds downwards following the pointers to node j . </li></ul></ul>
    85. 85. Update/Lookup Example 0 1 2 5 6 3 4 7 8 9 10 11 12 13 14 15 16 17 18 user x (moved from cell 9 to cell 10) x x x 9 x LCA (9,10) x x 10 upward phase: till entry for callee is found downward phase: follow the pointer LCA (10,13) a node in cell 13 calls user x
    86. 86. Lookup/Update with Actual Location <ul><li>When user x moves from cell i to cell j: </li></ul><ul><ul><li>record for x is deleted from all the databases from node i to LCA(i,j), and </li></ul></ul><ul><ul><li>record for x is updated to indicate the current location to be cell j in all the databases from root node to leaf node j. </li></ul></ul><ul><li>When a user x from cell i places a call to user y in cell j the lookup procedure queries database at node i proceeding upwards till node LCA(i,j). </li></ul><ul><li>Compared to pointers case, in this case: </li></ul><ul><ul><li>1. updates are more expensive operation, and </li></ul></ul><ul><ul><li>2. lookups are less expensive operation. </li></ul></ul>
    87. 87. Update/Lookup Example 0 1 2 5 6 3 4 7 8 9 10 11 12 13 14 15 16 17 18 user x (moved form cell 9 to cell 10) x x x 9 x LCA (9,10) x x 10 9 9 10 9 10 10 a node in cell 13 calls user x LCA (10,13)
    88. 88. Caching in Hierarchical Scheme <ul><li>Forward bypass pointer is an entry at an ancestor of caller’s cell, </li></ul><ul><li>say s, that points to an ancestor of callee’s cell, say t. </li></ul><ul><li>The reverse bypass pointer is from t to s. </li></ul><ul><li>In simple caching both s and t are leaf nodes. </li></ul><ul><li>In level caching s and t can belong to any (possibly different) levels. </li></ul>0 1 2 5 6 3 4 7 8 9 10 11 12 13 14 15 16 17 18 s t forward bypass pointer reverse bypass pointer user y (callee) search procedure user x (caller)
    89. 89. Forwarding Pointers in Hierarchical Scheme Reduces the update cost in case of move from cell i to cell j, instead of updating all databases on the path from j through LCA(i,j) to i, only the databases up to a level m are updated and a forwarding pointer is set from a node s to node t, where s is the ancestor of i at level m and t is ancestor of j at level m. 0 1 2 5 6 3 4 7 8 9 10 11 12 13 14 15 16 17 18 user x new location new enteries old enteries user x old location level m Forwarding Ptr Lookup cost for calls initiated from any cell in this subtree is increased
    90. 90. Hierarchical Schemes: Summary When x moves from cell i to cell j, instead of updating all databases on the path from j to LCA(i,j) and from LCA(i,j) to j, update all databases up to level m and add a forwarding pointer at the level m ancestor of I to point to the level m ancestor of j. Forwarding Pointers Selectively replicate x’s location at internal and/or leaf database. Replication When x at zone i is called by user y at zone j, cache at a node on the path from j to LCA(i,j) a pointer to a node on the path from I to LCA(i,j) to be used by subsequent calls to x from zone j. Caching Description Method
    91. 91. Hierarchical vs. Two-Tier Scheme <ul><li>No pre-assigned HLR </li></ul><ul><li>Support Locality </li></ul><ul><li>Increased number of operations (database operations and communication messages) </li></ul><ul><li>Increased load and storage requirements at the higher-levels </li></ul>
    92. 92. Location Management: Summary <ul><li>Location management is a rich research topic; the following represents 3D space of possible solution [ What(granularity), Where (availability), When (currency)]: </li></ul>Availability nowhere at all sites At selective sites (e.g., at frequent callers) Currency Never update Always update (at each movement) Granularity Exact location the whole network some partition
    93. 93. References <ul><li>[Akyildiz97] J. S. M. Ho and I. F. Akyildiz. Dynamic Hierarchical Location Management in PCS Networks. IEEE/ACM Transactions on Networking , 5(5):646–660, October 1997. </li></ul><ul><li>[Bejerano98] Y. Bejerano and I. Cidon. An Efficient Mobility Management Strategy for Personal Communication Systems. pages 215–222, MobiCom 98 , April 1998. </li></ul><ul><li>[Bar-Noy95] A. Bar-Noy, I. Kessler, M. Sidi, Mobile Users: To Update or not to Update? ACM/Baltzer Wireless Networks Journal . Vol 1, no 2, 1995, pp. 175-186. </li></ul><ul><li>[Tsai97] I-F Tsai, R-H Jan, The Lookahead Strategy for Distance-Based Location Tracking in Wireless Cellular Networks, Mobile Computing and Communications Review , Vol 3, No 4, 1997 </li></ul>
    94. 94. Location Querying
    95. 95. Challenges <ul><li>Managing queries that involve the location of moving objects is challenging because </li></ul><ul><ul><li>location is a fast changing data </li></ul></ul><ul><ul><li>result of such queries may depend on the location of the user posing it, e.g. all the trucks that are within 1 mile of truck ABC123 (which needs assistance). </li></ul></ul><ul><ul><li>queries may not directly include location, but may require tracking mobile objects e.g. queries that involve data produced and located at mobile hosts. </li></ul></ul><ul><li>In general, queries may be initiated by either static or mobile users and may include databases located at both static and mobile sites. </li></ul>
    96. 96. Types of Location Queries <ul><li>Location queries with transient data </li></ul><ul><ul><li>transient data: whose value changes while the query is being processed e.g. a moving user asking for nearby hospitals. </li></ul></ul><ul><li>Continuous queries e.g. a moving car asking for hotels located within a radius of 5 miles and requesting the answer to the query to be continuously updated. </li></ul><ul><ul><li>Issues include: </li></ul></ul><ul><ul><ul><li>when and how often should continuous queries be re-evaluated? </li></ul></ul></ul><ul><ul><ul><li>the possibility of partial or incremental evaluation. </li></ul></ul></ul>
    97. 97. Handling Imprecise Location Data <ul><li>Maintaining precise location of a user is very expensive in terms of communication cost. </li></ul><ul><li>Profile Partitioning is a technique for reducing the update volume [Imielinski & Badrinath VLDB’ ‘92]: </li></ul><ul><ul><li>Partition: glues together cells between which the user relocated very often and separates cells between which the user relocates infrequently. </li></ul></ul>P1 P2 6 6 6 6 1 1 4 4 4 The numbers on the edges indicate the number of times the user relocates between the end locations connected by the edge during certain interval of time.
    98. 98. Profile Partitioning <ul><li>User do not have to inform the location server about each and every change of their location </li></ul><ul><ul><li>location server maintain which partition the user is currently in. </li></ul></ul><ul><ul><li>the user informs the location server whenever it moves from one partition to another. </li></ul></ul><ul><li>Supports bounded ignorance : </li></ul><ul><ul><li>the real position of the mobile and the position which is know are always in the same partition. </li></ul></ul><ul><ul><li>“I do not know where you are exactly at this time but I know that you are in downtown Boston.” </li></ul></ul><ul><li>Search is always within a partition </li></ul>
    99. 99. Modeling Fast Changing Values <ul><li>Issues: </li></ul><ul><ul><li>margin of error </li></ul></ul><ul><ul><li>how to find better (or more precise) value </li></ul></ul><ul><ul><li>cost of finding precise value finding procedure </li></ul></ul><ul><li>Distinction is made between actual and stored value of a dynamic attribute (such as location, temperature) </li></ul><ul><li>Partitions help in defining margin of error </li></ul><ul><li>Following locating methods provide exact values at additional cost </li></ul><ul><ul><li>paging/broadcasting to all cells in partition </li></ul></ul><ul><ul><li>maintain a list of locations, ordered by likelihood of user being at a given location; search each location in the list order </li></ul></ul><ul><ul><li>maintain forwarding pointers </li></ul></ul>
    100. 100. Additional Attributes & Methods <ul><li>The following additional attributes are associated with a mobile object MO : </li></ul><ul><ul><li>Partitions: {P1,P2, ...} where P i : set of cells and P i  P j =  , i  j. </li></ul></ul><ul><ul><li>Correctors: method to be used for finding exact location of MO </li></ul></ul><ul><ul><li>Predictors: method/set-of-rules to be used to find default location of MO (in case MO has not notified location server about exceptional behavior). </li></ul></ul><ul><li>The following methods are defined on MO: </li></ul><ul><ul><li>LOC: MO.LOC returns the stored location of MO </li></ul></ul><ul><ul><li>ERR: MO.LOC.ERR returns the partition which is stored in MO’s profile and contains MO.LOC </li></ul></ul><ul><ul><li>loc: MO.loc returns the actual location of MO </li></ul></ul><ul><ul><ul><li>involves additional considerable communication along with database access. </li></ul></ul></ul>
    101. 101. An Example <ul><li>Additional attributes of user John </li></ul><ul><ul><li>Object: John </li></ul></ul><ul><ul><li>Partitions: {Cell 1 ,Cell 2 }, {Cell 3 ,Cell 4 ,Cell 5 } </li></ul></ul><ul><ul><li>Correctors: Paging with pointers </li></ul></ul><ul><ul><li>Predictors: {John is at home, in Cell 2 after 6 P.M.} </li></ul></ul><ul><li>John.LOC : returns stored location of John, say Cell 1 . </li></ul><ul><li>John.LOC.ERR: returns {Cell 1 ,Cell 2 } </li></ul><ul><li>John.loc: </li></ul><ul><ul><li>If invoked before 6pm: pages Cell 1 and Cell 2 to determine the exact location of John and returns that location. </li></ul></ul><ul><ul><li>If invoked after 6pm: pages Cell 2 (John’s home) first before paging Cell 1 . </li></ul></ul>
    102. 102. Query Processing <ul><li>Queries differ in the complexity of location constraint : </li></ul><ul><ul><li>“Find me a doctor near the campus” has </li></ul></ul><ul><ul><ul><li>one non-location based constraint, and </li></ul></ul></ul><ul><ul><ul><li>another unary constraint on location. </li></ul></ul></ul><ul><ul><li>“Find a gas station, fast-food restaurant, and grocery store such that all of them are on the same highway and in the above order.”: involves ternary constraint (between) plus three unary constraints on individual location (“on the highway”). </li></ul></ul><ul><li>Goal: Minimize the communication cost to answer the queries (in presence of imprecise knowledge about locations of users). </li></ul>
    103. 103. Query Processing: Problem <ul><li>Main problem arising in query processing in presence of imprecise knowledge about locations of users is: </li></ul><ul><ul><li>How to minimize the communication cost to “find out” the missing information necessary to answer the query? </li></ul></ul><ul><li>General query in “pseudo SQL” form: </li></ul><ul><ul><li>SELECT x 1 .loc , .... , x m .loc </li></ul></ul><ul><ul><li>FROM Users </li></ul></ul><ul><ul><li>WHERE ( x 1 .loc = l 1  ...  x m .loc = l m ) </li></ul></ul><ul><ul><li> C ( l 1 , ... , l m )  W ( x 1 , ... , x m ) </li></ul></ul><ul><ul><li>C ( l 1 , ... , l m ) is an m-ary constraint on locations l 1 , ... , l m . </li></ul></ul><ul><ul><li>W ( x 1 , ... , x m ) is a constraint on individual object locations. </li></ul></ul><ul><ul><li>Users: class which stores all instances of users in the system </li></ul></ul><ul><ul><li>Query wants to evaluate a predicate over actual locations of users, while the only locations available are { x 1 .LOC , .... , x m .LOC } with the associated “error” determined by ERR. </li></ul></ul>
    104. 104. Query Processing Strategies <ul><li>Naïve strategy: </li></ul><ul><ul><li>Find objects a 1 , …, a m such that W ( x 1 , ... , x m ) is satisfied. </li></ul></ul><ul><ul><li>Determine exact locations a 1 .loc , .... , a m .loc by paging partitions a 1 .LOC.ERR , .... , a m .LOC.ERR. </li></ul></ul><ul><ul><li>Check if the results satisfies C ( a 1 .loc , .... , a m .loc ). </li></ul></ul><ul><li>Naïve strategy has high communication cost </li></ul><ul><ul><li>In terms of number of cells paged </li></ul></ul><ul><li>Computation is less expensive that communication. </li></ul><ul><li>Optimization Strategies (to reduce #paging msgs.): </li></ul><ul><ul><li>Paging can be avoided completely if it can be determined that C ( a 1 .loc , .... , a m .loc ) is true (or false) for all combinations in the Cartesian product a 1 .LOC.ERR  …  a m .LOC.ERR. </li></ul></ul><ul><ul><li>Only partial paging may be required in some cases e.g. after determining exact location for a1 and a2 it may be determined that the constraint is true/false irrespective of location of other objects. </li></ul></ul>
    105. 105. Query Processing: An Example <ul><li>Give the names of doctors (possibly mobile) located near John’s current location: </li></ul><ul><ul><li>{ d : Near( d.loc, John.loc )  Doctors( d )}, where </li></ul></ul><ul><ul><ul><li>Near(y,x): true if x is a neighbor of y; false otherwise. </li></ul></ul></ul><ul><li>Possible strategies: </li></ul><ul><ul><li>Page both John.LOC.ERR and d.LOC.ERR </li></ul></ul><ul><ul><li>First page John.LOC.ERR and then determine if it is necessary to page d.LOC.ERR, or </li></ul></ul><ul><ul><li>First page d.LOC.ERR and then determine if it is necessary to page John.LOC.ERR </li></ul></ul><ul><li>Strategy 2 or 3 are better than 1; But which is better? </li></ul><ul><ul><li>depends upon the profiles and locations of John and doctors </li></ul></ul><ul><li>Cost is characterized using Classification Tree </li></ul>
    106. 106. Classification Tree (CT) <ul><li>Used for determining (expected) minimal cost strategy to evaluate the query </li></ul><ul><ul><li>Strategy  sequence in which partitions are paged. </li></ul></ul><ul><li>A CT for strategy with variables x 1 , …, x m : </li></ul><ul><ul><li>Consists of two special types of terminal nodes: </li></ul></ul><ul><ul><ul><li>POS: indicates constraint is true </li></ul></ul></ul><ul><ul><ul><li>NEG: constraints is false </li></ul></ul></ul><ul><ul><li>Has edges labeled with conditions: </li></ul></ul><ul><ul><ul><li>( x i .loc = l i ); l i  x i .LOC.ERR </li></ul></ul></ul><ul><ul><li>Associates with each node N a predicate path(N) which is conjunction of all conditions along the path from root to N . </li></ul></ul><ul><ul><ul><li>A path terminates with POS (NEG) node iff the conjunction of all the conditions along the path implies (does not imply) the constraint C ( x 1 .loc , ... , x m .loc ). </li></ul></ul></ul>
    107. 107. Determining Evaluation Cost <ul><li>Cost of a node = the number of outgoing edges which do not terminate in NEG node </li></ul><ul><ul><li>this is the cost of paging; since we do not need to page locations which we can determine lead to failure. </li></ul></ul><ul><li>Cost of a path = the sum of the cost of nodes along the path. </li></ul><ul><li>Expected cost of using the strategy associated with a CT = the sum of costs of all paths weighted by the associates probabilities. </li></ul><ul><ul><li>corresponds to the expected number of paging messages which will have to be sent in order to determine if x 1 .loc , ... , x m .loc satisfy the query. </li></ul></ul><ul><li>The problem of finding a tree corresponding to the optimal strategy is NP-complete. </li></ul>
    108. 108. Example (Cont.) <ul><li>Classification tree </li></ul>L9 L10 L5 L11 L1 L12 L6 L7 L8 L2 L3 L4 U = d.LOC.ERR V = John.LOC.ERR Strategy 2 L10 L11 L12 L3 L4 L7 L3 L3 L4 L4 L7 L7 L3 L4 L7 Strategy 3 John d d d d NEG NEG POS NEG NEG POS NEG NEG POS NEG NEG POS