Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Location Cluster with Nearest Neighbors in Signal Space: An Implementation in Mobile Service Discovery and Tracking Jon Tong-Seng Quah 1, and Luo-Ren Lim 1 1 School of Electrical & Electronic Engineering, Nanyang Technological University, Singapore Abstract - A rapid development in mobile telecommunication is the use of location information for context aware service. To amalgamate multiple location sensor technologies, we developed an Intelligent Service Area and Region Identification System (iSARIS) to allocate system resource for mobile service discovery and tracking. Primary location service is provided by cell identification which maps a wide region of physical space. A switching module toggles a secondary localization service within the interest space. This service provides additional localization performance through Wi-Fi pattern mapping to further segment smart spaces where independent providers can offer their mobile services. The technique uses location cluster to minimize search boundary through the use of an enhanced Nearest Neighbor in Signal Space algorithm. Keywords: Location Service, Mobile Service Discovery 1 Introduction The primary function of communication in a mobile phone today has rapidly expanded to include many computing features. Shrinking of computing capabilities into more portable form is becoming mainstream. Smartphone brings an evolutionary change to how people view computing power. Technologies such as GSM, UMTS, GPS, Wi-Fi, and Bluetooth are included in a single mobile platform that can support many computing activities. By creating intelligent user centric services through the extraction of meaningful contexts in mobile devices, developers greatly improve user experience. Many of today’s popular mobile applications utilize wireless localization. Location information is therefore emerging as a key context for mobile applications. Techniques for wireless localization can be generalized into deterministic and probabilistic methods. Deterministic methods perform well in environment with clear line-of-sight (LOS) propagation paths but are not as applicable in enclosed spaces where probabilistic methods [1] are more commonly used. This is due to problems like multipath propagation, fading and signal dragging effects. Mobile phones on the move are likely to visit locations which encompass both outdoor and indoor situations. As optimal localization techniques differ for both situations, location systems require a rethink of how we can offer seamless user experience in an environment transition. Getting user to manually switch applications is inefficient. 2 Mobile Localization Location is the most utilized aspect of context awareness and can be expressed as a spatial form or textual descriptions. Spatial location is expressed in a coordinate system involving latitude, longitude and altitude using standard like the World Geodetic System (WGS 84) datum. Textual description can either be an address or a landmark and often more ambiguous than a spatial expression. Many existing applications exploit location information to search for products, create tour guide, offer direction guidance, match neighboring devices, send mobile advertising and social networking [2]. The main classes of applications are listed in Table I. TABLE I WIRELESS LOCALIZATION APPLICATIONS Applications Uses Examples Navigation Handling routes Road directions, between locations Journey planning, Tour guide Positioning Tracking Mapping 2.1 Identifying a spatial fix Monitoring movement of objects Emergency services Creating graphical representation Terrain mapping People locator, Assets tracking, Social networking, Mobile advertising Network Localization The Cell Global Identity (CGI) is a globally unique identity made up of Cell Identification (CID), Location Area Code (LAC), Mobile Network Code (MNC), and Mobile Country Code (MCC) to address mobile cells worldwide. The concept works on the fact that mobile phone is always connected to the closest cell towers. By identifying which towers the phone communicates with, we will know that the phone is near to a particular Base Transceiver Station (BTS) and hence estimate its location. In practice, this process is complicated and involves parameters that network can optimize such as signal quality and variability. Mobile phone usually locks onto the strongest signal but not necessarily the closest as mobile networks are optimized for capacity and call handling rather than localization. Trevisani E. and Vitaletti A. [3] estimate an average accuracy to about 500-800 meters and suggest its use in resource discovery service. CGI depends on distribution of base stations for location precision. Network knowledge of the phone within the controlling cell site together with sector information enables a rough estimate of the location of the caller, regardless of phone type. E-CID [4] enables accuracy improvement over conventional Cell ID by using additional Timing Advance and Network Management Records from GSM networks to fine tune measurements by adding measured time between the start of a radio frame and a data burst to CGI. Other forms of network based techniques process localization results at a network server. In GSM networks, information flows are managed through free-to-access control channel. This allows manufacturers to implement features to monitor neighboring cells and its corresponding RSS value. Accuracy is dependent on the concentration of BTS cells. Uplink Time Difference of Arrival (U-TDOA) is one network based solution that determines location through cellular signal. It compares the times a signal reaches multiple Location Measurement Units (LMUs) installed at the operator's base transceiver stations. U-TDOA is well suited for indoor and urban environments relying on multilateration to get a location fix. Enhanced Observed Time Difference (EOTD) systems utilize cellular characteristics of asynchronous GSM network. Each GSM based BTS emits a synchronization burst to all mobile subscribers in its vicinity regularly. Mobiles monitor the synchronization bursts of the service and neighboring BTSs to maintain connection. EOTD extends on this GSM functionality. Location is determined by comparing signal arrival times from three or more BTSs at the mobile phone. The mobile phone records burst arrival times and deduce a position using the coordinates of the BTSs, arrival time of synchronization bursts from each BTS and the timing differences between BTSs. The use of an external reference point eliminates the need for transceivers to remain time-synchronized, but in contrast it requires enhancement to phone software and additional network equipment. 2.2 Satellite Localization The global positioning system (GPS) [5] is a wide area outdoor radio positioning system that employs orbiting satellites for location fix. The system consists of 24 satellites in 6 circular orbits at an altitude of approximately 20200km. Each orbit contains 4 equally spaced satellites inclined at 55 degrees. Once a receiver locked-on to a satellite, the receiver recognizes and time shifts its internal clock through a unique Coarse/Acquisition code. The time to lock-on is known as the time-to-first-fix (TTF) and can take up to 15 mins from a cold start. When the clock synchronized with the satellite’s atomic clocks, the distance to each satellite could be determined by subtracting the known transmission time from the calculated receiver time. Two signals in the L1 (1575.42MHz) and L2 (1227.60MHz) bands are broadcast by the satellites but only L1 is for public use. Receivers make pseudorange or carrier phase measurement on the L1/L2 signals to generate a location reading. A lock-on would not be achieved from fragmentary signal until a clear signal can be received continuously. Ignoring ground effects, the worse case horizontal positioning accuracy based on line of sight signals is ≤ 22m at 95% confidence interval although accuracy up to ≤10m is typically achieved. Upgrades under a GPS Modernization program [6] improved acquisition codes to better account for ionospheric errors, radio frequency and multipath interferences. Assisted Global Positioning System (A-GPS) [7] improves startup performance of GPS system by using network data. Some A-GPS implementations reduced the amount of processing required by offloading the processing work onto the network’s server. An assistance server have better satellite signal due to static placement and has higher computational performance. It can supply the GPS almanac to a receiver, thus allowing the GPS module to lock on to the satellites more rapidly. It can also provide precise timing information. Cell towers with assistance functions have accurate coordinates which account for various local factors affecting the GPS signal. The tower can also compare fragmentary signals received from GPS receivers with its own reading to obtain a faster location fix. 2.3 Short Range Radio Localization Short range radio technologies such as Wi-Fi and Bluetooth are commonly found in smartphones. Wi-Fi allows mobile user access to internet with WLAN access points. Bluetooth is a short range PAN standard used in simple file transfer and headset connectivity. These network protocols are often adapted to implement location schemes. Such technique uniquely identifies locations by comparing and deducing RSS signal patterns. However, they are certain limitations. Despite its association with power, RSSI value is arbitrarily decided by the equipment manufacturers. Different manufacturers provide their own accuracy, granularity, and range for the actual power and RSSI values. Thus, different equipment or software would exhibit different sensitivity to a single transmission despite being at the same location. This affects the accuracy of signal fingerprinting based techniques as radio maps generated is often only generic to the device where it was created and not easily ported to other devices. Nevertheless, this method has proven to be a fairly efficient way to conduct positioning in multipath and obstructions dominated spaces compared to conventional deterministic methods. Short range radio localization using k-Nearest Neighbor (kNN) algorithm has been frequently applied for Wi-Fi location tracking [8-10, 13]. Jayaraman et. al. [14] demonstrated 3 dimensional space localization processes using mobile data collectors in wireless sensor network. 3 3.1 iSARIS Platform Purpose The primary objective of iSARIS is to integrate sensing technologies onto a single layer where the strengths of each can be maximized. Localization services are migrated to a single platform where mobile entity switches smartly to the correct technologies for the relevant environment. Our approach is to implement a location based solution that allows mobile device to passively observe surrounding radio signals and recognize Service Region (SR) and Service Area (SA) space for smart services. 3.2 Service Discovery Background Service A mobile service discovery service was developed using Microsoft Visual Studio 2008 and Windows Mobile SDK 6. This background service runs on the mobile phone to retrieve the active CID parameters. Retrieving cell tower information from Windows Mobile devices requires access to the Radio Interface Layer (RIL). RIL functions are implemented via a device driver through two distinct layers. The lower level Platform Dependent Driver (PDD) layer of the RIL is radio stack dependent and its implementation differs with manufacturers. The Model Device Driver (MDD) layer on the other hand is radio stack independent and contains code to communicate with the RIL Proxy as well as code that implements any radio stack independent features in the RIL driver. Cell tower information is returned to the caller of RIL_GetCellTowerInfo through a callback function. public class CellTowerInfo { private static AutoResetEvent dataReceived = new AutoResetEvent(false); private static RIL.RILCELLTOWERINFO towerInfo; public static CellTower GetCellTowerInfo() { IntPtr hRIL = IntPtr.Zero; IntPtr hResult = IntPtr.Zero; hResult = RIL.RIL_Initialize(1, new RIL.RILRESULTCALLBACK(CellTowerData), null, 0, 0, out hRIL); if (hResult != IntPtr.Zero) return null; hResult = RIL.RIL_GetCellTowerInfo(hRIL); dataReceived.WaitOne(); RIL.RIL_Deinitialize(hRIL); CellTower tower = new CellTower(); tower.LAC = (int)towerInfo.dwLocationAreaCode; tower.MCC = (int)towerInfo.dwMobileCountryCode; tower.MNC = (int)towerInfo.dwMobileNetworkCode; tower.CID = (int)towerInfo.dwCellID; return tower; } programming languages, like PHP, java and C. Simulations are conducted on the Windows Mobile 6 Emulator to test the prototype. When the service scanned for CID from the GSM network, it compares the current active CID with the dataset in the SQLite database to determine if the location is a known SR. A CID match indicates the mobile phone has entered into the vicinity of the shopping complex. If the CID does not match any known SR, the process maintains its monitoring mode. The database is shown in Fig 1 Fig. 1. CID table in the SQLite Database. The table shows the search space for the background service and is stored locally on the mobile device. 3.3 Service Region and Area BTS towers are located at the corners where three hexagonal coverage cells converge in a cellular map. Each tower has three sets of directional antennas aimed in three different directions and receiving/transmitting into three different cells at different frequencies. This provides a minimum of three channels for each cell. Large cells are subdivided into smaller cells for higher volume areas. A SR is made up of the mobile coverage cells servicing the physical location of the complex and its immediate vicinity. The background service observes telecommunication exchanges between the device and its associated BTS. Any additional power used to monitor signals while on the move is kept minimal as the process runs parallel to normal telecommunication operation. private static void CellTowerData(uint dwCode, IntPtr hrCmdID, IntPtr lpData, uint cbData, uint dwParam) { towerInfo = new RIL.RILCELLTOWERINFO(); Marshal.PtrToStructure(lpData, (object)towerInfo); dataReceived.Set(); } } To retrieve the location of the cell tower that the mobile is connected to, the background service queries a SQLite database. SQLite was used to store known SR CID information due to its lightweight design for embedded system. Its low memory cost is ideal for mobile platforms and can support software development on mainstream operating system such as Windows, Linux and Unix as well as Fig 2 A mobile enters a SR from the public area as it nears the complex (left) and accessing a SA defined under Wi-Fi coverage (right). A rapid coarse estimate of the location is obtained through the background service discovery service. An alert is flagged when an operating SR is identified which in turn triggers a secondary positioning method suitable for indoor environment. Many complexes today are equipped with WLAN for internet access purposes. Access points placed at strategic locations create Wi-Fi hotspots for consumer to access via Wi-Fi enabled devices. Users can access data services through these wireless hotspots. Signal pattern matching forms the basis for SA creation. These SAs marked a clear definition of smart space where a particular service is valid. A single SR may contain multiple SAs and overlapping areas between SAs are also possible. SA allows individual service space to be built for smaller players to offer individualized services on a smaller physical scale. Functions include accessing information from mall and vendors, interactive service selection and service registration. A mobile client user interface is implemented to deliver these functions to the user. The location module handles mobile client location related events. It monitors the setup and dismantling of vendor-designated SAs and alerts mobile that enters into the physical locality of a defined SA. 4 4.3 4.1 Mobile Application Design Overview A shopping mall services system was built based on the proposed iSARIS platform. Customers can interact with smart services which include those by the mall operator and shop vendors housed within the same complex. Our shopping complex implementation defined the physical shopping complex and its immediate surroundings as a SR. Upon entering the SR, customer receives an automated alert from the complex service server listing the offerings available. While roaming in the SR, the mobile device can access shopping mall services such as directory information, special events, mall promotions and helpdesk chat service. This is delivered through the shopping mall WLAN infrastructure. Once within the SR, the mobile device enables the Wi-Fi module to improve positioning accuracy and identifies available SAs. SAs are created for vendors to define smaller physical spaces to offer their own unique services. The mall Wi-Fi infrastructure handles vendor content and decides which service to push to customer when they enter a SA. A typical service in a SA can include discount notifications, pricelists, shop advertisements and vendor promotions. 4.2 System Deployment Mobile devices connect to the position and data server via the wireless access points (AP) installed in the shopping mall. RSSI & Media Access Control/ Service Set Identifier (MAC/SSID) information from the devices are sent to the server for processing. The devices also communicate with the server for mall and vendor information. The position server is tasked with the collection of (MAC/SSID, signal strength) value pairs gathered by customers’ mobile devices to determine each device’s position. Vendor websites can be access through the mall server. The mall server provides vendors corresponding authorities in the shopping mall server to manage their websites. A position server tracks mobile positions with respect to SAs in the vicinity and determines if related information is forwarded to the mobile. Toggling between primary to secondary localization services during the detection of a SR is managed by a switching service on the device. The process of switching between positioning technology is automated with no active intervention from user. In the shopping mall implementation, the mobile automatically diverts location recognition from telecommunication cell identification to a Wi-Fi based pattern search when the mobile device nears the shopping mall. The interface module contains browsing and selection services. Location Service 1) Position & Data Server Design: Position and data handling applications are MFC programs hosted on a mall server. The server handles tasks such as receiving signal signature from devices, running location algorithm and determining relevant vendor data to send to customer. Position server receives mobile device signal strength parameters via TCP connections. A location algorithm is used to calculate an estimated position fix for each client. Fig 3 Allocation of SA on the position server. The position of the device determines whether it is in a vendor-defined SA. Data server sends corresponding vendor information to the device across a UDP connection. 2) Signal Strength Acquisition: The implementation code contains two main parts. A static ScanThreadFunc() function create a scanning thread responsible for wireless access points scan in the shopping mall. Scans for Wi-Fi access points are handled as a loop task in this thread. The thread is created when SR is identified and terminated whenever the Wi-Fi connection is disabled. The acquisition of access points’ signal strength is handled in the WifiScanConnect class by a ScanWifi() member function. DWORD __stdcall WifiScanConnect::ScanThreadFunc( void* pParam ) { THREAD_PARAM *pThreadParam = (THREAD_PARAM *)pParam; HANDLE hEvent = pThreadParam->hEvent; WifiScanConnect *pWifiScanConnect = (WifiScanConnect *)pThreadParam->lpObject; while(WaitForSingleObject(hEvent,500) == WAIT_TIMEOUT) { pWifiScanConnect->ScanWifi(); } return 0; } void WifiScanConnect::ScanWifi(void) { ULONG oidcode; ULONG bytesreturned; static BOOL bFlag = TRUE; if(bFlag) { m_pBSSIDList = (NDIS_802_11_BSSID_LIST *)VirtualAlloc(NULL, sizeof( NDIS_802_11_BSSID_LIST) * NUMBEROF_BSSIDS, MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE); bFlag = FALSE; } if( m_pBSSIDList == NULL) { return; } else { memset(m_pBSSIDList, 0, sizeof( NDIS_802_11_BSSID_LIST) * NUMBEROF_BSSIDS); oidcode = OID_802_11_BSSID_LIST_SCAN; DeviceIoControl(m_handle, IOCTL_NDIS_QUERY_GLOBAL_STATS, &oidcode,sizeof( oidcode), (ULONG *) NULL,0,&bytesreturned,NULL); memset( m_pBSSIDList, 0, sizeof( NDIS_802_11_BSSID_LIST) *NUMBEROF_BSSIDS); oidcode = OID_802_11_BSSID_LIST ; if(DeviceIoControl(m_handle, IOCTL_NDIS_QUERY_GLOBAL_STATS, &oidcode, sizeof( oidcode), (ULONG *) m_pBSSIDList, sizeof( NDIS_802_11_BSSID_LIST) * NUMBEROF_BSSIDS, &bytesreturned, NULL)) { if (m_pBSSIDList != NULL) { EnterCriticalSection(&cs); for(unsigned int i =0; i < m_pBSSIDList>NumberOfItems; i++) { SSIDSignal.clear(); SSID_SIGNAL_VALUE stSsidSignalValue; int temp = i; PNDIS_WLAN_BSSID cpBssid = m_pBSSIDList>Bssid; while(temp != 0 ) { cpBssid = (PNDIS_WLAN_BSSID)((char*)cpBssid + cpBssid>Length); temp--; } strcpy_s(stSsidSignalValue.cWifiSsid, NDIS_802_11_LENGTH_SSID, (const char*)cpBssid->Ssid.Ssid); stSsidSignalValue.lSignalValue = cpBssid>Rssi; SSIDSignal.push_back(stSsidSignalValue); } LeaveCriticalSection(&cs); } } 3) Location Algorithm: The location server collects signal strength signature observed by client devices to decide their approximate position. To enable better efficiency, factors such as computation time, accuracy and power consumption are considered for the localization processes. The design reduces computation time by only extracting useful information required and optimizing location data storage. The method is based on signal pattern matching using a radio map. Its implementation is divided into two phases: Calibration Phase and Online Positioning Phase. During the calibration phase, the RSS of APs are collected at different locations to construct radio maps. Certain factors are predetermined during this phase. Due to signal fluctuations or larger distances, some APs are not always visible throughout the scan. Signals from these rogue APs are often very weak or appear intermittently. A noise filter is applied to remove the irrelevant rogue APs from the input dataset to reduce unnecessary calculation. The noise filter module sets a time t to record all RSS values and APs detected. APs present most frequently within the time interval are chosen. Time t has to be as short as possible to reduce computation time while ensuring that sufficient information and good RSS measurements are captured for location estimation. Tests revealed optimal t to be at least 17 seconds. The next criterion is to determine the number of relevant APs n such that there are sufficient distinguishable APs to determine the location. The condition for n is such that all the locations are covered by at least n number of APs most of the time. This ensures a minimum set of APs to distinguish positions with reasonable accuracy. To minimize data search complexity, a radio map clustering module is created to reduce the search space required to return a result. It does so by categorizing locations that shared the same set of APs during calibration phase thereby cutting down on computation time. Each group of locations is called a cluster. During the online positioning phase, the module only searches the relevant cluster which contains the detected APs instead of probing the entire radio map search space for a match. Each location cluster has at least q APs detected. The matching of signal signature uses a method similar to Nearest Neighbors in Signal Space (NNSS) pattern recognition adopted in RADAR [8-10]. In general, k-Nearest Neighbors (kNN) networks tessellate the input space by setting weights and thresholds of first layer hidden neurons. This is done by calculating the boundaries of space containing points nearest the training pattern. Subsequent processing layer handles the classification for the unknown input pattern [11]. Three hidden layers of processing are applied. The first layer is an input layer that distributes all input patterns. Second layer provides feedback control input back to the first layer. The final layer forms variable threshold neurons for output classification. The kNN algorithm is adapted to calculate the degree of match between calibrated RSS dataset and online RSS signature. Euclidean distances are applied to measure the similarity between two points M = (m1, m2, … , mn) and L = (l1,l2,…,ln): The calibration data are compared with the signal strength measurements in the mobile device during the online positioning phase using: 5 where : RSS values of APi at point j in the signal strength map, : is the measured RSS value of APi , n: total number of APs. Performance Analysis The influence of the clustering module on computation time was investigated using a test area divided into a 10x10 grid under Wi-Fi coverage of 6 randomly placed APs shown in fig 4. Signal signature at each grid is recorded. By varying cluster size q, a series of location cluster were formed to reduce the search space. Small dj distance value between a target location and an identified location may signify close proximity between two locations. The pattern matching implementation is as follows: int PatternRec::LeastDistance(int ReNum) { double min = 10000; for(int d=0; d<10; d++) { if(MatchData(type[d].Feature, InputNum)<min) { min = MatchData(type[d].Feature, InputNum); ReNum = d; } } LocNumber = ReNum; return ReNum; } However, conventional NNSS method put together RSS values from all known APs without considering RSS variation from individual AP. Variations in RSS can influence d. Thus, k lowest d values are considered to estimate true deviation. The choice of k depends on the size of the dataset. Larger k reduces the effect of noise on the classification but decrease the ability to distinguish boundaries between classes. An enhancement to NNSS [12] algorithm is integrated to take into account the threshold for RSS variation around its mean, θ and the maximum number of APs from which RSS varies beyond that threshold, τ. Input: sorted neighbor list of size S, where begin for m = 1 to k begin count=0 for i = 1 to n begin if ( count = count + 1 endfor if (count τ) remove neighbor m from neighbor list endfor if (less than k entries in neighbor list) return old list else return updated list end This enhanced NNSS technique is performed on the first k entries of the input neighbor list sorted according to Euclidean distance. Using cross-validation techniques, k = 3 was determined to be the optimal distinguishing parameter for boundary determination purpose. Fig 4 Wi-fi coverage of 6 randomly placed APs in test area. No. of clusters formed TABLE II COMPARISON OF q q=1 q=2 100 12 q=3 9 q=4 3 q=5 0 Largest cluster coverage N.A. 20% 13% 14% N.A. Smallest cluster coverage Average coverage N.A. N.A. 6% 11% 6% 8.40% 9% 11.3% N.A. N.A. From Table II, q = 3 is most effective at reducing the search boundary of the matching algorithm. This is, however, not enough to draw conclusion about the computational performance. Manual code instrumentation was applied to establish the runtime for each execution to evaluate the effect of cluster size and number of clusters. The software was executed repeatedly to determine the computation performance for various clusters. The program was adjusted such that only the tested cluster is executed. Table III shows the average time taken for different type of clusters to complete the computation. Against the various possible q values, q=3 offers the best performance across different type of clusters except when cluster size is smallest. TABLE III AVERAGE TIME TAKEN TO COMPLETE CLUSTER COMPUTATION (ms) First Last Smallest Largest Cluster Cluster Cluster Cluster 17.5 19.9 18.6 16.9 q=2 16.6 19.3 22.7 16.9 q=3 20.5 21.2 20.5 19.4 q=4 q is set at 3 to achieve the optimal performance and an average of 7% decrease in computation time is observed with the use of the clustering module. The performance gain is likely to be even more substantial in congested Wi-Fi environment due to the added benefit from clustering large number of APs. Fig 5 Influence of q=2,3,4 (left to right) on computation time. The vertical axis represents the computation time in milliseconds (ms). Horizontal axis represents the amount of executed runs. 6 Conclusion and Future Works The concept and architecture of the iSARIS platform is presented in this paper and its use is illustrated in a shopping mall scenario. The optimal localization techniques in different situations are determined by how radio wave transmissions are affected in both indoor and outdoor environment. A switching module toggle between primary and secondary localization services during the detection of a service region. Primary location service provided by cell identification based technique can quickly identify a coarse region of physical space. This space could be a building, a group of buildings or other entities where cell identification level of positioning performance is no longer acceptable. Secondary positioning service through the Wi-Fi infrastructural cluster enhanced kNN classifier provides additional positioning performance and is used sparingly to avoid resource draining in this shopping mall implementation. Further smart space segmentation in the form of service areas are created where independent service provider offers related online services. By automating the transition process using the iSARIS platform, the mobile offer a better and more seamless user experience. This location based service provisioning design offers a simple and practical approach to reduce service engagement time and is suitable for mobile environment where quick and efficient means of switching localization control is required. Current software distribution model requires user to download the relevant applications in order to use a service. Majority of applications downloaded to a mobile device are often not used on a regular basis. To avoid this inefficiency, it is also our intention to further develop the iSARIS platform to implement a different application distribution model where software applications are only sent to user when they are needed. We hope to utilize the SA feature to determine a smart area where any application of interest to the user will be make available on the mobile when it enters the SA and removed the instant the mobile leaves the relevant SA. The possible benefit of this system is less storage as less applications need to be installed in the mobile and indirectly reducing the interface clutter experienced by user when too many applications are downloaded. A further area of work we are working on is to implement application recommender for each smart space using user participation tags. 7 Acknowledgement This research work is supported by the Singapore National Research Foundation Interactive Digital Media R&D Program, under research grant NRF2007IDM-IDM002-080. 8 References [1] Castro P, Chiu P, Kremenek T and Muntz R, A Probabilistic Room Location Service for Wireless Networked Environments, presented at the Ubicomp 2001: Ubiquitous Computing, 2001, pp. 18-34. [2] Barkhuus L, Brown B, Bell M, Sherwood S, Hall M and Chalmers M, From awareness to repartee: sharing location within social groups, presented at the Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems, Florence, Italy, 2008, pp. 497-506. [3] Trevisani E and Vitaletti A, Cell-ID Location Technique, Limits and Benefits: An Experimental Study, presented at the Proceedings of the Sixth IEEE Workshop on Mobile Computing Systems and Applications, 2004, pp. 51-60. [4] Kunczier H and Anegg H, Enhanced cell ID based terminal location for urban area location based applications, Consumer Communications and Networking Conference, 2004. CCNC 2004. First IEEE, 2004, pp. 595-599. [5] Hofmann-Wellenhof B, Lichtenegger H and Collins J, Global positioning System. Theory and Practice. 1993. [6] McDonald K, The modernization of GPS: plans, new capabilities and the future relationship to Galileo, Journal of Global Positioning Systems, 2002; 1(1), pp. 1-17. [7] Richton B, Vannucci G and Wilkus S, Assisted GPS for Wireless Phone Location — Technology and Standards. 2002, pp. 129-155. [8] Bahl P and Padmanabhan VN, RADAR: an in-building RF-based user location and tracking system, INFOCOM 2000. Nineteenth Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE, 2000, pp. 775-784 vol.2. [9] Bahl P, Padmanabhan VN and Balachandran A, Enhancements to the RADAR User Location and Tracking System, Microsoft Research, 2000. [10] Bahl P, Padmanabhan VN and Balachandran A, A Software System for Locating Mobile Users: Design, Evaluation, and Lessons, Microsoft Research Technical Report MSR-TR-2000-12, 2000. [11] Yan Qiu C, Damper R.I and Nixon M.S, On neural-network implementations of k-nearest neighbor pattern classifiers, Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on , vol.44, no.7, 1997, pp.622-629. [12] Tran Q, Tantra J, Foh C, Tan A, Yow K and Qiu D, Wireless Indoor Positioning System with Enhanced Nearest Neighbors in Signal Space Algorithm, IEEE Vehicular Technology Conference, 2006. VTC-2006 Fall, 2006, pp. 1-5. [13] Kelly D, Behan R, Villing R and McLoone S., Computationally tractable location estimation on WiFi enabled mobile phones, Signals and Systems Conference (ISSC 2009), IET Irish , 10-11 June 2009, pp.1-6. [14] Jayaraman P, Zaslavsky A and Delsing J, Intelligent Processing of K-Nearest Neighbors Queries Using Mobile Data Collectors in a Location Aware 3D Wireless Sensor Network. Trends in Applied Intelligent Systems, Lecture Notes in Computer Science, 2010, pp. 260-270.