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
Hides the effect of mobility to applications and users.
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.
Application defined quality-of-service (QoS) for the underlying network connections is sustained through a QoS manager .
Allows applications and users to be aware of their mobility and the absolute and real physical positions of real-world objects.
Applications can exploit this information for customizing their functionality and users can benefit from this information for navigation purposes.
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.
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
Acquires information about the – absolute or relative – physical location of real world objects in which an application is interested.
Hides from applications which locating technology is being used.
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.
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 ).
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
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.
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.
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
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 .
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
The decision to include or exclude a candidate cell is based on whether the resulting configuration will have a lower expected load on MSS.
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).
In case of inter_RA handoffs and call-deliveries we spilt the signaling overhead equally between the two MSSs involved.
Handoffs to cell x from cells of RA r become intra-RA handoffs.
Handoffs from cell x to rest of RA r performed by users already registered in r become intra-RA handoffs.
Calls to x from cells of r are now intra-RA calls.
Calls from users of r that are in x to rest of r are now intra-RA calls.
Mobility of users in r that move out of cell x into a new RA is now inter-RA mobility.
Inter-RA calls of users in r that call from cell x is inter-RA call loading to r.
Call the decreasing part of the load Cost in ( x , r ) and the increasing part Cost ex ( x , r ).
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 .
[Bejerano98] define a multiple-level hierarchy of overlapping Location Areas:
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.
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.
Logarithmic number of levels
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.
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.
A movement update goes up to the LA that embraces both ending and starting cells of the user’s movement.
If there is no downward pointer, then the search is propagated upward until a LA has a downward pointer of the user.
The downward pointers are followed until the user is reached.
Scheme shows very good average and best case costs, but very bad worst case.
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
Extend two-tier schemes by maintaining a hierarchy of location databases.
Location database at higher level contains location of users located at levels below it.
Usually hierarchy is tree structured:
Location database at a leaf serves a single cell and contains entries for all users registered in that cell.
A database at an internal node maintains location of users registered in the set of cells in its subtree.
location information can be either
pointer to an entry at a lower level database or
the user’s actual current location.
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
When user x moves from cell i to j , following entries for x in databases are updated:
1. along the path from j to LCA ( i,j ), and
2. along the path from LCA ( i,j ) to i .
When a caller located at cell i places a call for a user y located at cell j , the lookup procedure:
1. queries databases starting from node i and proceeding upwards the tree until the first entry for x is encountered (at LCA ( i,j )).
2. Then the lookup procedure proceeds downwards following the pointers to node j .
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
Forward bypass pointer is an entry at an ancestor of caller’s cell,
say s, that points to an ancestor of callee’s cell, say t.
The reverse bypass pointer is from t to s.
In simple caching both s and t are leaf nodes.
In level caching s and t can belong to any (possibly different) levels.
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)
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
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
Queries differ in the complexity of location constraint :
“Find me a doctor near the campus” has
one non-location based constraint, and
another unary constraint on location.
“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”).
Goal: Minimize the communication cost to answer the queries (in presence of imprecise knowledge about locations of users).