Patent Abstract:
Methods and systems are provided for identifying a computing device and/or the user of such a device and granting or prohibit access to one or more devices based on the location of the computing device. User devices include receivers and emitters for localization signals, and behavior of user devices or user interaction devices are modified according to received localization signals. Example systems may provide tracking media streaming to local devices, automatic configuration of transmitters, or adaptation of multi-user interactions based on user location.

Full Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    Some of the aspects of the methods and systems described herein have been described in U.S. Provisional Application Nos. 61/780,408 entitled “Systems And Methods To Synchronize Data To A Mobile Device Based On A Device Usage Context”, filed Mar. 13, 2013; 61/781,252 entitled “Systems And Methods To Secure Short-Range Proximity Signals”, filed Mar. 14, 2013; 61/781,509 entitled “Systems And Methods For Securing And Locating Computing Devices”, filed Mar. 14, 2013; 61/779,931 entitled “Systems And Methods For Securing The Boot Process Of A Device Using Credentials Stored On An Authentication Token”, filed Mar. 13, 2013; 61/790,728 entitled “Systems And Methods For Enforcing Security In Mobile Computing”, filed Mar. 15, 2013; and U.S. Non-Provisional application Ser. No. 13/735,885 entitled “Systems and Methods for Enforcing Security in Mobile Computing”, filed Jan. 7, 2013, each of which is hereby incorporated by reference herein in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    The present invention is in the technical field of computer security. More particularly, the present invention is in the technical field of identifying a computing device and/or the user of such a device using credentials stored on an authentication token and/or based on the location of the computing device. 
       SUMMARY OF THE INVENTION 
       [0003]    As mobile devices, such as smartphones and tablet computers, become more powerful and ubiquitous, it becomes advantageous to use them for an increasing number of applications. In some instances, these applications may require that sensitive information be stored in nonvolatile memory on the device. It is therefore important to be able to protect said information stored on the device both while the device is running and while the device is powered off. Securing a device may include authenticating a user&#39;s credentials. 
         [0004]    An additional element of security may be added based on the location of the device. For example, a user of a device may be able to authenticate on the device, but may not get access to certain files unless the device is in a certain location. Similarly, a user may be able to authenticate on the device, but may be prohibited from accessing certain applications while in a certain location (e.g. prohibited from texting while in a car). 
         [0005]    Embodiments provide a plurality of beacons in the environment, wherein each beacon emits a localization signal. A system receives data derived from a localization signal from a user device and determines the initial location of a user device within the environment based on the localization signal. A plurality of devices are also located within the environment, each of which may provide user interaction. A first user interaction is provided via a first device, where the first device is selected from the plurality based on an initial location of the user device. An updated location of the user device is determined, and a second user interaction is provided via a second device, where the second device is selected from the plurality based on the updated location of the user device. Embodiments also operate by providing multiple user devices, each of which emits and receives localization signals. Each device may include a display, a receiver, and an emitter. At least some devices also include a modification system which modifies the display of the device based on localization signals received from other devices. 
         [0006]    Tracking user devices may also enable additional applications for the user devices. For example, location information may be used for gathering input for customer analytics, enabling the user devices to behave as universal remotes, and enhancing multiplayer games. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0007]      FIG. 1  depicts certain components of a system that may be utilized in providing a secure device. 
           [0008]      FIG. 2  depicts a workflow for securing a computing system based on the presence of users of a group of users. 
           [0009]      FIG. 3  depicts a workflow for securing a computing system based on a user authenticated on a computing device in proximity to the computing system. 
           [0010]      FIG. 4  depicts a workflow for securing a device. 
           [0011]      FIG. 5  depicts a workflow for identifying the location of a computing device. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    A platform for tracking the location of a user device may be useful for enhancing the security of the user device and other computing systems. Additionally, the location information derived from such a platform may permit additional functionality for the user device, the other computing systems or both. 
         [0013]    Referring to  FIG. 1 , methods and systems of a platform for tracking a user device may comprise a network  114 , one or more user devices  102 A-C in an environment  120  and enabled to communicate via the network  114 , a locator enabled to communicate via the network  114 , and a computing system  162  enabled to communicate via the network  114  and to determine the location in the environment of the one or more user devices  102 A-C. In embodiments, the locator may be a location beacon  160  enabled to receive presence information, such as a high frequency sound created by a user device  102 A. In some embodiments, the locator may be a transmitter  130  enabled to send presence information, such as a high frequency sound to be received by a user device  102 A, B, and/or C. In embodiments, the locator may be a plurality of locators. 
         [0014]    In embodiments, the user device  102 A, B, and/or C may be a mobile device, such as a tablet, a mobile phone or a laptop. The user device  102 A, B, and/or C may comprise a processor  164 , a memory  168 , an application  138 , a microphone  144 , a speaker  142 , a display  154 , a data  148 , a screen lock facility  104 , a credential processing facility  110 , an authentication token reading facility  108 , a device location monitor  132  and an IR remote control facility  150 . 
         [0015]    The computing system  162  may be a server, a workstation, a desktop, a laptop, a missile launching facility, a testing facility, a mobile device, a vehicle system and/or some other computing system. The network  114  may be one or more of a LAN, a wireless network, a wired network, and the like. 
         [0016]    It may be imperative that the identity of the user be verified before granting access to the information stored on a device. Current solutions to this problem involve using a “screen lock” function, which requires users to enter a password or PIN before granting access to the device. However, passwords may still be a point of insecurity, since the passwords may be shared, stolen, sniffed, cracked, and/or have poor password strength. Such vulnerabilities relating to password security present a broad attack surface to malicious users. A need exists for improved solutions. 
         [0017]    To provide the greatest level of security, methods and systems are provided herein to prevent unauthorized users from unlocking a device, including without limitation by reducing the exposure to attacks by requiring a user to authenticate himself or herself prior to unlocking the device. 
         [0018]    The present invention includes a system for securing the screen lock of a device using credentials stored on an authentication token. 
         [0019]    The present disclosure may provide greater security than just password protection in the respect that users of a device may be required to authenticate with an external authentication token before the device allows the users to access the screen lock. 
         [0020]    This disclosure may increase the security of a mobile device by preventing access to the device screen lock. This may be accomplished using an external authentication token. Said tokens may provide a greater level of security by increasing the number of possible unlock combinations. For instance, a challenging password to remember may be 10 characters long, for example. By comparison, authentication tokens may provide passwords of 256 characters or longer. An example of such an authentication token is a Common Access Card (CAC). Another example of such an authentication token is a Personal Identity Verification card, such as a card implementing NIST standard FIPS  201 . 
         [0021]    Referring to  FIG. 1 , a device  102 A may comprise a screen lock facility  104 , an authentication token reading facility  108  and a credential processing facility  110 . In embodiments, devices  102  B and C may also comprise such facilities and components as device  102 A, and devices  102 B and C may also communicate with the same items as described in relation to device  102 A although such specific facilities, components, and communications may not be shown. In various embodiments described throughout, it is understood that while a specific elements, such as device  102 A, B, and/or C is described, it is understood that a plurality of devices (or other elements) may be employed as appropriate. The device  102 A, B and/or C may be a mobile device, such as a mobile phone, a smartphone, a tablet, a laptop or some other device. The operating system  104  may be Android, bada, BlackBerry OS, iOS, Series40, Symbian OS, Windows Phone or some other operating system. Such operating systems may support built-in screen lock facilities. The screen lock facility  104  may require user authentication (e.g. by providing PIN, or by requiring the user to swipe to unlock, etc.) in order to authenticate the user. A custom screen lock facility  104  may be implemented as software widget that replaces or otherwise overrides the operating system&#39;s built-in screen lock facility  104 . In embodiments, the screen lock facility  104  may be implemented either as an accessory application, or the screen lock facility  104  may implement code for directly controlling the native screen locking functions. For example, the screen lock facility  104  may use OptioCore code to implement a screen lock for an Android device. 
         [0022]    In embodiments, a user may be required to authenticate on the device  102 A, B and/or C using an external authentication token  112  in order to access the screen lock facility  104  on the device  102 A, B and/or C. In embodiments, the user may also be required to authenticate on the device  102 A, B and/or C using an external authentication token  112  in order to decrypt a root file system on the device  102 A, B and/or C, and/or to use an operating system on the device  102 A, B and/or C. When the device  102 A, B and/or C is locked, the credential processing facility  110  may instruct the user of the device  102 A, B and/or C to provide authentication information via the authentication token reading facility  108 . The authentication token reading facility  108  may read authentication information from a physical device. The information may be an authentication token  112 . The authentication token  112  may be stored on a Common Access Card, Personal Identity Verification card (e.g. a card implementing NIST standard FIPS  201 ), a smartcard, a USB token, a SD card, a key fob, or some other physical device. The authentication token  112  may be a cryptographic key, such as a public key certificate, a digital signature, biometric data, a user id, or some other authentication information. In some embodiments, the authentication token reading facility  108  may be an external device connected to the device  102 A, B and/or C. In such embodiments, the authentication token reading facility  108  may be configured to communicate with the device  102 A, B and/or C via a communications medium, such as Bluetooth, near field communication (“NFC”), Wi-Fi, or other wired or wireless communications medium. For example, the authentication token reading facility  108  may be a smartcard reader connected to the device  102 A, B and/or C via Bluetooth. 
         [0023]    In embodiments, the device  102 A, B and/or C may be enabled to connect to a network  114 . In such embodiments, authenticating the user on the device  102 A, B and/or C may include communicating first, second, and third authentication data over a short-range wireless signal between the device  102 A, B and/or C and an in-location access point, wherein the second authentication data from the device  102 A, B and/or C is based on the first authentication data from the in-location access point and the third authentication data from the in-location access point is based on the second authentication data; communicating a fourth authentication data between the mobile device and a web-based information system, wherein the fourth authentication data comprises at least a portion of at least one of the first, second, and third authentication data; and authenticating access to network accessible content by the mobile device with the web-based information system. The first authentication data may be the authentication token  112  data. The web-based information system may be a proxy  118 . For example, the authentication token reading facility  108  associated with the device  102 A, B and/or C may receive the authentication token  112  via NFC, send the second authentication data to the in-location access point via Bluetooth heartbeat messages, receive the third authentication data as responses to the Bluetooth heartbeat messages, send a request to a web proxy  118  that includes the third authentication data (e.g. in the form of hypertext transport protocol (HTTP) request with such data in the HTTP headers, for example), and receive access to the device if the proxy  118  determines that the user is authorized, based on the third authentication data. 
         [0024]    The credential processing facility  110  may determine whether the authentication token  112  data is valid and whether the user is permitted to access the screen lock facility  104 , based on the user provided authentication token  112 . Credential processing may include local or distributed processing, using processing and storage capabilities of the authentication token device  112  or using remote (e.g., server-based) processing capabilities. Upon determining that the authentication token  112  data is valid and the user is permitted to access the screen lock facility  104 , the device  102 A, B and/or C may present the user with the unlock screen and prompt the user for a password and/or PIN. Upon determining that the authentication token  112  data is invalid and/or the user is not permitted to access the screen lock facility  104 , the credential processing facility  110  may prevent the device  102 A, B and/or C from presenting the user with the unlock screen. In some embodiments, the credential processing facility  110  could erase part or all of the data stored on the device  102 A, B and/or C upon a predetermined number of failed authentication attempts. 
         [0025]    For example, the user of the device  102 A, B and/or C may provide a smartcard to be read by the authentication token reading facility  108  associated with the device  102 A, B and/or C, where the smartcard includes the user&#39;s authentication token  112 . The authentication token  112  data may be one or more X.509 certificates. In this example, the authentication token reading facility  108  may read the authentication token  112  from the smartcard and provide the authentication token  112  information to the credential processing facility  110 . The credential processing facility  110  may, then, determine whether the user is authorized to access the screen lock facility  104 , based on the authentication token  112  information. 
         [0026]    Referring now to  FIG. 4 , the process for authenticating the user may comprise locking a device  402 ; prompting a user to provide an authentication token  404 ; reading, by the device, the authentication token  408 ; determining, by a credential processing facility, whether the user is authorized to access the device, based on the authentication token  410 ; and granting a user access to the device&#39;s unlock screen. In some embodiments, granting the user access to the device&#39;s unlock screen may include presenting the unlock screen, if the user is determined to be authorized by the credential processing facility  414 . In some embodiments, presenting the unlock screen  414  may include prompting the user for a password and/or PIN, if the user is determined to be authorized by the credential processing facility. If the user is unauthorized to access the device&#39;s unlock screen, based on the authentication token, then the device may prohibit access to the unlock screen by the user  412 . 
         [0027]    In retail store environments, such as BestBuy, Wal-Mart, Target, and others, the appropriation of customer service representatives to particular areas of the store is typically performed on a predetermined schedule. For example, at any given time, three customer service reps may be assigned to the electronics section, while two others are in home goods. Currently, there is no effective method for determining, in real time, the number of customer service representatives that are needed in a given product section of a store. The most effective method currently employed is for customers to actively seek out existing personnel. However, this can become problematic in times of heavy volume, since personnel in one section may become overwhelmed while personnel in another section are idle. It would be advantageous for a retail store to be able to dynamically appropriate personnel based on number of customers in a particular area. 
         [0028]    Therefore, it may be useful to implement a system for identifying the locations and distribution of customers within a store and tracking the same based on the locations of the customers&#39; mobile computing devices. Location services, such as GPS provide reliable and precise location information when the receiver has a clear view of the sky. However, these technologies are not effective indoors, making them unsuitable for use in determining concentrations of customers at particular product areas within a retail store. Instead, it may be desirable to utilize a network of transmitters, transmitting an electronic heartbeat message to establish a precise location for each user in the store. 
         [0029]    Referring to  FIG. 1 , in embodiments, methods and systems of a customer service representative dispatch system to locate and track customers in an environment  120  may comprise a network  114 ; one or more transmitters  130 A-C located in the environment  120  and enabled to emit an electronic heartbeat message and to connect to the network  114 ; a user device  102 A-C enabled to connect to the network  114  and to send location information based on a received electronic heartbeat message; and a server  122  enabled to connect to the network  114 . The server  114  may be comprised of a customer location monitor facility  124  enabled to track the user device  102 A-C based on the location information, and a customer service dispatch facility  128  enabled to dispatch a customer service representative based on the user device  102 A-C location. In embodiments, such device  102  A, B and/or C may further comprise additional devices as would suit the number of users in the environment. 
         [0030]    In embodiments, the transmitter  130 A-C may be enabled to send an electronic heartbeat message. Such heartbeat message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like. In embodiments, a transmitter may broadcast a unique identifier. For example, if an environment  120  has a plurality of transmitters  130 A-C, each transmitter  130  may broadcast its own unique identifier so that the location within the environment  120  of a customer&#39;s mobile device  102 A, B and/or C may be determined based on the unique identifier(s) received by the customer&#39;s mobile device  102 A, B and/or C. 
         [0031]    In some embodiments, the customer mobile computing device  102 A-C may be a cellular phone, such as an iPhone, a Motorola Droid Razr Maxx, a HTC One X, a Samsung Focus 2, a Samsung Gusto 2, or some other cellular phone. In other embodiments, the customer mobile computing device may be a tablet, such as an iPad, an Asus Eee Pad Transformer Prime, a Sony Tablet S, a Samsung Galaxy Tab 10.1, or some other tablet. 
         [0032]    The server  122  may be comprised of a customer location monitor facility  124  and a customer service dispatch facility  128 . The server may be connected to the one or more transmitters  130 A-C in the environment via a network  114 . The network  114  may be one or more of a wireless network, a wired network, a LAN, a WAN, a MAN or some other network. In some embodiments, the server  122  may also be connected to a data store  134 . Such data store  134  may be a database or file system. 
         [0033]    The customer mobile computing device  102 A, B, and/or may be enabled to use the unique identifier received from a transmitter  130 A, B and/or C to determine the said customer mobile computing device&#39;s  102 A, B and/or C location in the environment  120 . In some embodiments, the step of determining may involve uploading the unique identifier by the customer mobile computing device  102 A, B and/or C to the server  122  via the network  114 . The customer location monitor facility  124  on the server  122  may use the unique identifier to look up in a data store  134  the location of the transmitter  130  A, B and/or C transmitting said unique identifier, where the data store  134  may store the unique identifier associated with each such transmitter and the location of each such transmitter. In embodiments, determining the location of the customer mobile computing device  102 A, B and/or C may comprise the customer mobile computing device  102 A, B and/or C comparing a first identifier with a local data store, such as a database or file system, containing a plurality of identifiers and corresponding location information to determine the location of a first transmitter  130 A. The location of the first transmitter  130 A may then be used to determine the location of the customer mobile computing device  102 A, B and/or C based on one or more of the configuration parameters of said electronic heartbeat message and the transmitter  130 A (e.g. the range of the transmitter&#39;s signal, a triangulation based on a plurality of heartbeat messages from a plurality of transmitters, etc.). 
         [0034]    In embodiments, once the location of the customer mobile computing device  102 A has been determined, said location of mobile computing device  102 A, B and/or C may be accessed at the server  122 . In some embodiments, the server  122  may not be the same server  122  that determined the location of the customer mobile computing device  102 A, B and/or C. For example, the customer location monitor facility  124  may determine the location of the customer mobile computing device  102 A, B and/or C and pass the location information to the customer dispatch facility  128 . The customer service dispatch facility  128  on the server  122  may then, automatically or otherwise, dispatch one or more customer service representatives to the location in the environment  120  where the customer mobile computing devices  102 A, B and/or C is located. The customer service dispatch facility  128  may also be enabled to perform business intelligence based on the customer mobile computing devices  102 A, B and/or C location information. For example, the customer service dispatch facility  128  may determine that there are a sufficient number of customer service representatives in the vicinity of the customer mobile computing devices  102 A, B and/or C. In another example, the customer service dispatch facility  128  may determine that there are more customers in a different location in the environment and that one or more customer service representatives in the vicinity of the customer mobile computing devices  102 A, B and/or C should be dispatched to a location of greater need in the environment  120 . In embodiments, a person may actively monitor the system and/or data therefrom and may dispatch personnel based on the same. The step of dispatching could occur in other ways as well. 
         [0035]    Referring now to  FIG. 5 , the process for identifying the location of a user device may comprise entering a shopping environment by a user with a device  502 , transmitting a heartbeat message by a transmitter  504 , receiving the heartbeat message by the user device  508 , determining the user device&#39;s location based on the heartbeat message  510 , dispatching to a location one or more customer service representatives based on the number of devices at the user device&#39;s location  512 . As discussed above, the environment may be a store, an arena, a mall, or some other shopping environment. Similarly, as discussed above, the user device may be a mobile computing device, such as a mobile phone or a tablet. As also discussed above, the heartbeat message may include a unique identifier. In embodiments, the unique identifier may be location-related information (e.g. the coordinates of the transmitter, the name of a section or some other location-related information). 
         [0036]    In embodiments, the heartbeat message may comprise one or more of a unique identifier, a location identifier and/or some other identifier information. In embodiments, determining the user device&#39;s location based on the heartbeat message  510  may comprise determining the location by the user device. For example and as discussed above, the user device may determine its location by comparing the heartbeat message to data in a local data store. In embodiments, such local data store may reside on the user device. In some embodiments, determining the user device&#39;s location based on the heartbeat message  510  may comprise determining the location by a server. For example and as discussed above, the user device may receive a heartbeat message with a unique identifier from a transmitter, transmit the unique identifier to a server via a network, and the server may determine the location of user device based on the received unique identifier. 
         [0037]    In embodiments, dispatching to a location one or more customer service representatives based on the number of devices at the user device&#39;s location  512  may further comprise determining a heat map of user devices in the shopping environment, determining a heat map of customer service representatives in the shopping environment, determining a redistribution of customer service representatives by comparing the two heat maps, and dispatching to a location or more customer service representatives. For example, if the user device is located in an area with a ratio of customers-to-customer service representatives is over a specified threshold, a customer service representative may be dispatched to that location to provide additional assistance. The step of dispatching may occur automatically using an automated dispatch system, or could include a person actively monitoring the system and dispatching personnel as appropriate. The step of dispatching could occur in other ways as well. Determining a redistribution of customer service representatives may further comprise a business intelligence analysis. For example, the server may perform one or more of the following steps in connection with determining the redistribution of customer service representatives: record a customer shopping pattern, record a customer service representative redistribution outcome, analyze a customer shopping pattern, analyze a customer service representative redistribution outcome, or some other business intelligence action. 
         [0038]    Businesses may also benefit from the ubiquity of mobile devices and networks by using information regarding the locations of user devices to dispense coupons for encouraging users in certain locations. 
         [0039]    Referring to  FIG. 1 , in embodiments, systems and methods for dispensing coupons based on the location of a user may comprise providing a user device  102  A, B and/or C, which may comprise a display  154  and a microphone  144 , and which may execute an application  138 ; providing a transmitter  130 A, B and/or C, wherein the transmitter  130 A, B and/or C may be enabled to emit a high frequency sound and may be located in an environment  120 ; receiving, by the microphone  144  on the device  102 A, B and/or C, a high frequency sound from the transmitter  130 A, B and/or C; and altering the display  154 , by the application  138 , to provide a coupon, based on the one or more of the characteristics and contents of the high frequency sound. In embodiments, the transmitter  130 A, B and/or C may be a plurality of transmitters  130 A-C. In embodiments, the display  154  may be a touch screen. The transmitter  130  may be a speaker. The characteristics and contents of the high frequency sound may include location information of the transmitter  130 A, B and/or C, location information of an item in the environment (e.g. the location of a good for sale in a store), a timestamp, the frequency, a pattern of the high frequency sound, or some other characteristics and contents. 
         [0040]    For example, the user device  102 A, B and/or C may execute an application  138  that runs in the background and that monitors the microphone  144  for high frequency sounds. When the application  138  determines that the microphone  144  has received a broadcast from a speaker within a retail store, the application  138  may change the display  154  to depict a coupon, such as in a web browser or other application, for use in the retail store. 
         [0041]    In some embodiments, the transmitter  130 A, B and/or C may emit a high frequency sound to alter one or more of a sale, transaction, lease, offer for sale, proposed transaction, or other information. Such alteration may be a change to the sale price, the characteristics of a sale, lease, or other transaction. For example, the transmitter  130 A, B and/or C may be located in a store in the vicinity of a particular good that the store is marketing heavily. When the application  138  determines that the microphone  144  has received a broadcast from the transmitter  130 A, B and/or C, the application  138  may change the sale price for the good and the like. 
         [0042]    In embodiments, the high frequency sound emitted by the transmitter  130 A, B and/or C may include an information associated with a product or category of products located in proximity with the transmitter  130 . For example, the transmitter  130  may be located near a particular television or brand of televisions, and the high frequency sound emitted by the transmitter  130  may include information regarding discounts on such televisions. 
         [0043]    In embodiments, when the application  138  determines that the microphone  144  has received the high frequency sound emitted by the transmitter  130 A, B and/or C, the application  138  may send information related to the high frequency sound to a server  122 . The information may be one or more characteristics and contents of the high frequency sound. The server  122  may include a coupon analytics facility  158 . The coupon analytics facility  158  may, based on the information received from the application  138 , determine a coupon to be displayed on the device display  154  and send such coupon to the device  102 A, B and/or C via the network  114 . Additionally, the coupon analytics facility  158  may be enabled to direct the transmitter  130 A, B and/or C to emit a particular high frequency sound in order to change the response of the application  138 . Returning to the example above with the transmitter  130 A, B and/or C near the televisions, the coupon analytics facility  158  may direct the transmitter  130 A, B and/or C to change the high frequency sound it emits so that an application  138  would display a new sales price or an offer for a discount on an existing price. In such embodiments, the coupon analytics facility&#39;s  158  direction to a transmitter  130 A, B and/or C to emit a particular high frequency sound may be based on one or more of marketing input, inventory input, a timer input, customer location input, other customer data input, or other inputs. 
         [0044]    Currently, large retail locations do not have a good method for analyzing the movements of customers within a store. This kind of information could be extremely valuable to commercial organizations that typically operate in large spaces, helping them to arrange the store layout in such a way that improves customer experience, increases purchases and reduces lost sales to other retailers, such as e-commerce platforms. Furthermore, such information could also allow retailers to deliver targeted advertisements based on previous customer interest in products and services. 
         [0045]    As described above, businesses may track customers in a retail space in order to dispatch customer service representatives. Tracking customers may also be useful for analyzing the behavior of the customers 
         [0046]    Referring again to  FIG. 1 , methods and systems of analyzing customer behavior based on tracking customer locations may comprise providing a transmitter  130  A, B and/or C in an environment  120  wherein such transmitter is enabled to emit a high frequency sound signal; providing one or more customers each with a user device  102  A, B and/or C comprising a microphone  144  enabled to receive a high frequency sound signal, and wherein the user device  102  A, B and/or C is enabled to send data based on the received high frequency sound signal; providing a computing system  162 , wherein the computing system  162  is enabled to receive data from each such user device  102 A, B and/or C and to determine the user device  102 A, B and/or C location in the environment  120  based on such received data; and analyzing the user device  102 A, B and/or C location information by the computing system  162  to identify useful characteristics. In embodiments, such device  102 A, B and/or C may further comprise additional devices as would suit the number of users in the environment. Such analysis may include one or more of generating a heat map based on where the user spent time in the environment  120 , comparing what the user purchased against the heat map, totaling the time user spent in the environment  120 , comparing what the user purchased against other users, comparing the user heat map with other heat maps, or other analyses. Based on the analysis, the business for whom the analysis is performed may perform one or more of push data to customers (e.g. coupons, updated sales or marketing materials, product comparison information, etc.), optimize the layout of the business (e.g. move products to be highlighted to certain end caps or other high-traffic areas), provide information to vendors (e.g. customer heat map information related to the vendors&#39; products, etc.) and use the analysis for other business purposes. 
         [0047]    For example, a grocery store may have high frequency emitting transmitters located in several aisles to provide the customers devices with location information. The customers devices could transmit periodic updates to a server  122  connected via the store&#39;s wireless network  114 . The store&#39;s server  122  may analyze the customer location data received to identify customer movement patterns. The customer movement patterns to be used, for example, by a consultant, to reorganize the layout of the store in order to make a typical customer&#39;s movement path more efficient or draw customer attention to certain sections of the store to increase revenue and customer experience. 
         [0048]    Methods and systems of a customer service representative dispatch system may be used to locate and track customers in an environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations as described herein, for example. By way of example, the determination to dispatch a customer service representative may be based on the results of analyzing customer behavior based on tracking customer locations. In this example, based on the analysis of the customer behavior, a business may note that there is not much customer traffic near where a popular consumer good is being sold, and, therefore, may dispatch one or more customer service representatives to that area to help customers find the good. 
         [0049]    Methods and systems for dispensing coupons based on the location of a user may be used to track customers in an environment and offer for sale some good in the environment. Such methods and systems may be associated with analyzing customer behavior based on tracking customer locations. By way of example, the determination to dispense a coupon may be based on the results of analyzing customer behavior based on tracking customer locations, as described herein, for example. In this example, based on the analysis of the customer behavior, the business may determine that one or more users with certain heat map patterns are less likely to buy certain goods sold by the business. Based on this determination, the business may issue a coupon for such goods to users who exhibit similar or the same patterns. 
         [0050]    As devices become more mobile and networks become more ubiquitous, device users have a growing number of options of outputs to connect to their devices. For example, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home. Similarly, offices have multiple output sources for users, such as monitors at a user&#39;s desk and a projector in a meeting room. Often, users of these systems will move throughout their environment, whether at home or in the office, and switch their output device. In the home user example, the user may move through their home while listening to or otherwise consuming content. Currently, such users must manually turn on and turn off output devices based on the room they are entering or leaving respectively. It would be advantageous for such a system to be able to automatically enable or disable output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching. 
         [0051]    Referring again to  FIG. 1 , in embodiments, systems and methods for automatic switching of output devices based on a location may comprise providing a user device  102 A, B and/or C in an environment  120 , providing a plurality of output devices  140 A-B located in the environment  120 , providing one or more transmitters  130 A-C in the environment for determining the location of the user device  102 A, B and/or C within the environment  120 , streaming a media stream to a first output device  140 A, determining the location of the user device  102 A, B and/or C in the environment  120 , and switching a media stream from a first output device  140 A to a second output device  140 B, based on the location determination. The media stream may be an audio stream (e.g. a radio broadcast, a podcast, mp3 audio, audio played from a CD, or some other media stream), a video stream (e.g. images to be displayed on a monitor), an audio/video stream (e.g. a movie, a television show or some other combined audio and video stream), or some other media stream. 
         [0052]    The environment  120  may be a home, an office, or some other environment. The user device  102  A, B and/or C may be a mobile device, such as a cell phone, a personal assistant, a tablet, a laptop or some other mobile device. The user device  102 A, B and/or C may be comprised of a microphone  144 . An output device  140  may be a monitor, a television, an audio component, a printer, a media device (e.g. a Roku, an Apple TV, a PlayStation, an Xbox, etc.), another user device  102 B, or some other output device. 
         [0053]    In embodiments, the user device  102 A, B and/or C, the transmitter  130 , and the output devices may be connected via a network  114 . The network  114  may be wired or wireless. The network  114  may be a LAN. 
         [0054]    In embodiments, the transmitters  130 A-C may be enabled to emit a message and/or data. In embodiments, such message may be a high frequency. As previously noted, such message may utilize one or more protocols, such as, but not limited to Wi-Fi, Bluetooth, Bluetooth LE, ultrasonic sound, Zigbee and the like. 
         [0055]    In embodiments, the user may select an output device  140  for the user device  102 A, B and/or C. Selecting the output device  140  may include one or more of selecting the initial output device  140 A and/or B, selecting a default output device  140 , selecting the output device  140 A and/or B for the current location, selecting the output device  140 A and/or B for a different location and selecting the output device  140  A and/or B for some other purpose. Selecting an output device  140  A and/or B may also include defining a location within the environment  120 . 
         [0056]    When a user with a user device  102  A, B and/or C enters into an environment, the user device may be enabled to receive a message from a first transmitter  130 A. For example, the user may enter the living room in his home and his cell phone may receive a high frequency sound from a first transmitter  130 A located in the living room. In this example, the user device&#39;s  102  A, B and/or C may receive, via a microphone  144 , the high frequency sound from the first transmitter  130 A. If the user has an output device  140 A, for example, associated with that location, the device  102  A, B and/or C, upon receiving the high frequency sound may route output to the associated output device  140 A. In this example, the output device  140 A may be a set of speakers located in the living room. If, in this example, the user has a second transmitter  130 B located in his bedroom and walks to his bedroom, the user device  102 A, B and/or C may receive a high frequency sound from the second transmitter  130 B located in the bedroom. Upon receiving the new high frequency sound and the user device  102 A, B and/or C may switch the media stream to the second output device  140 B associated with the bedroom, for example, a different set of speakers in the bedroom. 
         [0057]    In some embodiments, the media stream may be from a remote computing system (e.g. a streaming media device, like a Roku, or a cable box, etc.). In such embodiments, the user device  102 A may, in response to receiving a high frequency sound from a transmitter  130 A, B and/or C, may transmit data (e.g. observed characteristics of the high frequency sound) to a remote computing system, such as a server  122 . The remote computing system may associate the (e.g. the characteristics of the high frequency sound) with an output device  140 A and/or B and, then switch the media stream to the output device  140 . 
         [0058]    In embodiments, the device  102 A, B and/or C may be further enabled to determine when it no longer is receiving a message from a first transmitter  130 A. When the device  102 A, B and/or C no longer is receiving a message from the first transmitter  130 A, the device  102 A, B and/or C may communicate such determination to the server  122 . In response to receiving such determination, the server  122  may terminate the media stream to the first output device  140 A. 
         [0059]    As devices become more mobile and networks become more ubiquitous, device users also have a growing number of devices that may be controlled remotely, either by IR signals or over some other protocol. As previously noted, many home audio or theater systems are networked and may contain multiple speakers and other output devices throughout a home, and such devices may be controlled remotely, including by other devices on the network. Since the user already has one device, it may be desirable to enable that device to control the other devices in the environment. Furthermore, it may be desirable to enable the device to automatically detect its location and configure itself to control the devices in the same location. In the home user example, the user may start watching a media stream in one room and use the user device to control the home media system in the first room. If the user moves to another room to finish watching the media, it may be useful to have the user device identify the location change and reconfigure which devices it is set to control. Currently, such users must either keep separate controls for each room, or manually switch a controller based on the room they are entering or leaving. It would be advantageous for such a system to be able to automatically enable or disable the control of the output devices based on the detected location of the user. Again, providing transmitters throughout an environment may provide a desirable solution for such automatic switching. 
         [0060]    Referring still to  FIG. 1 , in embodiments, systems and methods for automatic switching of the controls of a plurality of output devices based on a location may comprise providing a user device  102 A, B and/or C in an environment  120 , providing a plurality of output devices  140 A-B located in the environment  120 , providing one or more transmitters  130 A-C in the environment for determining the location of the user device  102 A, B and/or C within the environment  120 , providing a control interface for the first output device  140 A on the display  154  of the user device  102 A, B and/or C, determining the location of the user device  102 A, B and/or C in the environment  120 , and modifying the IR remote control facility  150  and the display  154  of the user device  102 A, B and/or C to control of a second output device  140 B, based on the location determination. As noted above, the user device  102 A, B and/or C may include a microphone. The transmitters  130 A-C may be enabled to emit a message and may each be associated with one of the output devices  140 A-B. In some embodiments, a transmitter  130  may be physically located within close proximity to the output device  140  controlled by the user device  102 . For example, the transmitter  130 A, B and/or C associated with a speaker system in one room may be located adjacent to that speaker system, and the transmitter  130 A, B and/or C associated with a speaker system in another room would be located adjacent to that speaker. 
         [0061]    In some embodiments, the systems and methods may further comprise altering an output from the user device  102 A, B and/or C based on the characteristics or contents of the message received from a transmitter  130 A, B and/or C. For example, the user device  102  A, B and/or C may be enabled to, based on the frequency of sound received from a transmitter  130 A, B and/or C, download and configure specific IR remote control facility codes for controlling an output device in the environment  120  via the IR remote control facility  150  on the user device  102 A, B and/or C. 
         [0062]    Modifying the IR remote control facility on the user device  102 A, B and/or C may further comprise determining which output device  140  is located at a location and associated with a transmitter  130 A, B and/or C, based on the message from the transmitter  140 A and/or B, then modifying the control interface. Modifying the control interface may also include changing one or more output signals and/or protocols from the user device  102 A, B and/or C for controlling the correct output device  140 A and/or B. For example, the user device  102 A, B and/or C may, but is not limited to, determine its location based upon a high frequency sound from a transmitter  130 A, B and/or C in the room, and adjust the volume of all speakers within a home in order to maintain a consistent volume to the user as they move from room to room. 
         [0063]    Returning the example of the user at home, the user may walk into the living room. The user device  102 A, B and/or C may receive a message from a first transmitter  130 A located in the living room. Upon receiving the message from the first transmitter  130 A, the device may modify the IR remote control facility  150  to control an output device  140 A and modify the display  154  to depict controls for an output device  140 A in the living room, such as a home theater system. The controls depicted on the display  154  may include the controls available via the IR remote control facility  150 , such as a volume control, frequency tuning control, a device input control, a power control, a DVD player control or some other device control. 
         [0064]    Staying with this example, when the user walks into the kitchen, the user device  102 A, B and/or C may receive a message from a second transmitter  130 B located in the kitchen. Upon receiving the message from the second transmitter  130 B, the device may modify the IR remote control facility  150  and the display  154  to depict controls for an output device  140 B in the kitchen, which may be an iPod docking station, for example. 
         [0065]    Methods and systems of automatically switching of output devices based on a location may be used to track a user in environment and provide dynamic output selection, based on the user&#39;s location. Such methods and systems may be associated with automatically switching the controls for a plurality of output devices. For example, upon determining that a user has moved from one location associated with a first output device to a second location associated with a second output device, the user device may automatically switch the media stream from the first to the second output device and automatically switch the controls and the display on the user device from the controls associated with the first output device to those associated with the second output device. In embodiments, such determination may be made by receiving at the device a high frequency message from a transmitter associated with a specific output device, as described herein, for example. 
         [0066]    In addition to the foregoing security and business benefits discussed above, locating and tracking a user based on the location of the user&#39;s device may have game and/or multiplayer game applications. This may provide an inexpensive way of introducing potentially asymmetric information dissemination to players of a multiplayer game. Asymmetric gameplay is an emerging sector of the game industry, and has the potential to drive a large amount of innovation, as evidenced by the development of the Wii U. 
         [0067]    Referring still to  FIG. 1 , in embodiments, systems and methods of detecting players for a multiplayer game, may comprise a multiplayer game; a first user device  102 A for playing the game and comprising a display  154 , a microphone  144  and a speaker  142  for emitting a high frequency sound signal; and a second user device  102 B for playing the multiplayer game and comprising a display  154 , a microphone  144  and a speaker  142  for emitting a high frequency sound signal, wherein the second user device  102 B is enabled to alter the content of the first user device&#39;s  102 A display  154 , based on a high frequency sound signal emitted by the speaker  142  of the first user device  102 A. The multiplayer game may be an application  138  executing on the device  102 A, B and/or C. The multiplayer game may be a coop game, a competitive coop game, a sports game, a deathmatch-style game, a capture-the-flag-style game, a king-of-the-hill-style game, or some other multiplayer game. The device  102 A, B and/or C may be a game system, such as Wii U, an Xbox, a PlayStation 3, a PlayStation Vita, a Gameboy, a tablet (e.g. an iPad) with a game installed, a controller for a game system (e.g. a Wii U GamePad) or some other game system and/or component of a game system. Altering the content of the first user device&#39;s  102 A display  154  based on a high frequency sound signal emitted by the speaker  142  of the first user device  102 A may include altering the display  154  to show location information related to the user of the second user device  102 B. 
         [0068]    For example, two players may be playing a multiplayer game on a Wii U in the same room. The players&#39; characters may be located in different parts of the same game map and the first player may be hiding from the second player. The first player&#39;s controller may emit a sound, such as a high frequency sound based on the first player&#39;s character&#39;s location in the game map. The second player&#39;s GamePad may receive the sound, analyze it in whole and/or in part, and update the map information displayed on the GamePad to indicate the general direction of the first player&#39;s character. In embodiments, the emitted sound may alter one or more of various devices and/or one or more of various devices may emit a sound for altering content of the display of one or more devices based on an analysis of the sound and/or an analysis of the sound and other data and/or one or more items. In embodiments, devices such as a game headset could alter the intensity of an indicator and/or display to reflect a detected amplitude of a specific sound frequency, and may thereby indicate the proximity of other players. 
         [0069]    In some situations, it may be beneficial to ensure that all the users of a particular system are present in the same location before granting any user access to a system. A potential example of this need arises from a testing scenario in which no user should be granted an unfair advantage over another user by being granted access to test materials before any other user. Another example involves the authorization of particular actions that carry significant consequences, such as launching a missile or overriding a safety control. In such cases, it may be necessary to guarantee that the required users are physically present together before allowing a specific action (e.g. launching a missile) to be executed. This may be accomplished by securing access to some resource, such as a computing system, until all the required users are located in the vicinity of the resource. Tracking and confirming the locations of the required users may be accomplished with a location beacon to track unique sounds emitted by enabled devices carried by the required users. 
         [0070]    Referring again to  FIG. 1 , in embodiments, methods and systems of authenticating a group of users may comprise a plurality of user devices  102 A, B and/or C, each comprising a speaker for emitting a high frequency sound signal; a location beacon in an environment  120  and enabled to receive a plurality of high frequency sound signals; and a computing system enabled to communicate with the location beacon and comprising a location determination facility that is enabled to provide access to the computing system based on a determination that every user of a plurality of users is located within the environment. The high frequency sound signals may be unique for each user device  102 A, B and/or C, for example in a given environment  120 , so that each user device  102 A, B and/or C may be uniquely identified. For example, each device  102 A, B and/or C may be assigned a high frequency sound signal with a unique variation in frequency or other acoustic characteristic. 
         [0071]    For example, a testing environment may have a fixed location beacon  160  that is configured to receive ultrasonic signals. The students who are required to be present for the test may each have a user device  102 A, B and/or C. Each device  102 A, B and/or C may have a speaker  142  enabled to produce an ultrasonic signal. The location beacon  160  and the user devices  102  A, B and/or C may each be connected to a computing system  162  via a wireless network  114 . The user devices  102 A, B and/or C may receive from the computing system  162  a specific ultrasonic signal configuration, unique to each device  102 . For example, when a user signs up for the test, the computing system  162  may send said user&#39;s device  102 A, B and/or C the specific ultrasonic signal configuration to be emitted for a period before the exam and during the exam. Each device  102 A, B and/or C may then transmit the specific signal with the configuration received from said computing system  162 . The location beacon  160  may provide updates to the computing system  162  regarding the ultrasonic signals from the devices received by the location beacon  160 . The computing system  162  may track which students are located in the testing environment based on the updates from the location beacon  160 . Once the computing system  162  determines that all the required students are located in the testing environment, the computing system  162  may begin the test and grant the students access to the test materials. 
         [0072]    Referring now to  FIG. 2 , authenticating a group of users may comprise providing a computing system, including a fixed location beacon configured to receive signals  202 ; entering of an environment by a user with a user device  204 ; receiving by the computing system via the location beacon of a signal from the user device  208 ; determining by the computing system whether all the users required in a group are in the environment, based on the received signals  210 ; providing access to the computing system if all the required users are in the environment  214 ; and accessing of the computing system by the group of users  218 . In embodiments, if not all the required users are in the environment, all the users may be prohibited from accessing the computing system  212 . In embodiments, where not all users are in the environment at a particular time, the system may continue receive signals from users until all users are present or some other defied time. 
         [0073]    An additional application for location-based security is to secure access to data in a file system (i.e. read, write, execute, modify, delete, copy, and/or transmit) based on a user&#39;s location. 
         [0074]    Referring again to  FIG. 1 , systems and methods of controlling access to data on a device may comprise a first user device  102 A, comprising a speaker  142  enabled to send a heartbeat message; a second user device  102 B, comprising a microphone  144  enabled to receive a heartbeat message and a speaker  142 , enabled to send a first data, including data to indicate receipt or failure to receive the heartbeat message; and a third user device  102 C enabled to send a second data upon receiving the first data from the second user device  102 B and determining that the second data may be sent to the second user device. In embodiments, the determination of whether the second data may be sent to the second device may be a location-related determination. For example, the determination may be based whether the location of the second device is considered secure (e.g. based on where, whether the user of the second device is authorized to access the second data in the given location, whether the second data is related to the location of the second user device (e.g. the user of the second device may be permitted to access a second data related to a room of museum based on whether the second device is located in the relevant room in the museum), or some other location-related determination. 
         [0075]    For example, a user device could pick up a high frequency sound broadcast by a speaker device, identify the frequency of the sound, and report the frequency to a remote file server in an effort to gain access to files on that server. The server would then process the reported data and determine whether to grant access to the mobile device. 
         [0076]    In some embodiments, the heartbeat message may be sent as a high frequency sound embedded in television or radio media. A mobile device  102 A, B and/or C may be enabled to receive such media and use the high frequency sound to request content from a server  122  that may be relevant advertising content. 
         [0077]    By way of example, in embodiments, controlling access to first data stored on a first device may include sending a heartbeat message from a second device to a third device (having memory, a processing unit and a microphone), prompting the third device to send second data to a fourth device (which may also be the first device) said data including, but not limited to, information signifying receipt or failure to receive heartbeat messages, so that the fourth device may process the second data in whole or in part to determine whether access to the first data should be granted to the third device. Such access may include the ability to read, copy, modify, delete and/or transmit said data. In embodiments, such firs, second, third, fourth, etc, device may comprise a plurality of devices such that messages are send to and from one or more devices at the steps described. In embodiments, a mobile device may pick up a high frequency sound broadcast by a speaker device, identify the frequency, and report the frequency to a remote file server in an effort to gain access to files on that server. The server may then process the reported data and determine whether to grant access to the mobile device. 
         [0078]    An additional application for location-based security is to secure access to an application based on a user&#39;s location. 
         [0079]    Referring again to  FIG. 1 , methods and systems of controlling access to an application  138  on a device  102 A, B and/or C may comprise providing a transmitter  130 A, B and/or C enabled to emit a high frequency sound; providing a user device  102 A, B and/or C enabled to receive a high frequency sound; and blocking access by a user of the user device  102 A, B and/or C to an application on the user device, while the user device  102 A, B and/or C receives the high frequency sound from the transmitter  130 A, B and/or C. 
         [0080]    For example, the transmitter  130 A, B and/or C may be located in a car, truck, other automobile, or other piece of machinery around which certain kinds of phone usage might be dangerous. In this example, the transmitter  130 A, B and/or C may broadcast a signal whenever the automobile is not in park, so that the driver&#39;s mobile device disables the SMS messaging application  138  during the operation of the automobile. 
         [0081]    Methods and systems of controlling access to data on a device may be used to track users and either grant or block access to files, based on where the user is located. Such methods and systems may be associated with granting and/or blocking user access to one or more applications, based on where the user is located. Per an example above, a user located in a car may not be permitted to use the SMS application on the user&#39;s device while the car is running Additionally, the user may be permitted to access certain media files while in the car (e.g. MP3s) and prohibited from accessing certain other media files while in the car (e.g. video files). Tracking a player of game based on the location of the player&#39;s device is a species of the foregoing. So, for example, a function or data in multiplayer game may be associated with detecting or locating another player. Such function or data may be enabled or disabled, based on the proximity of a first player to a second player of the game. 
         [0082]    The process of entering user credentials before being granted access to a computing system is a necessary yet tedious process. In many systems, it is imperative that a user is authenticated before being shown sensitive data in order to ensure, for example, privacy, confidentiality, or security. If only performed once, this process is trivial, but in environments where users must log in and log out of systems 20, 30, 40 or more times per day, this trivial amount of time becomes significant. It therefore becomes advantageous to streamline this process and provide a different authentication medium. 
         [0083]    Mobile devices, such as smartphones, tablets and other mobile computing devices are becoming ubiquitous and, when tied to an individual, possess the capability to authenticate a user in a different system. A secured computing system may be maintained without requiring a nearby user to repeat the step of logging in by tracking the previously authenticated user&#39;s location. 
         [0084]    Referring to  FIG. 3 , systems and methods of logging in a current user to a computing device based on the user location may comprise providing a computing system enabled to communicate with a user&#39;s device  302 ; storing, by the computing system, the user&#39;s credentials capable of authenticating the user  304 ; authenticating on the computing system by the user with the user&#39;s device  308 ; determining by the computing system the location of the user based on the location of the user&#39;s device  310  (such location determination mechanism could be a system such as GPS or could be a proprietary system implemented using a technology such as ultrasonic sound, RF signals, Bluetooth signals, Wi-Fi signals, NFC tags, and/or the like); confirming the user&#39;s credentials by the user&#39;s device  312 ; transmitting by the user&#39;s device the user&#39;s credentials to the computing system  314 ; authenticating the user by the computing system if the determination is made that the user&#39;s device is in proximity to the computing system  320 ; and providing the user access to the computing system  322 . In embodiments, confirming the users credentials with the user device  312  may comprise requiring the user to re-authenticate if the user&#39;s credentials are not confirmed. In embodiments, if the user device is not within proximity to the computing system, the computing system may prohibit access by the user  318  and may require the user re-authenticate. In embodiments, the user may be required to confirm transmission of credentials before transmission. In embodiments, a user may be authenticated without user intervention. In embodiments, authenticating the user may include authenticating the user based on one or more of a token, a password, a PIN, biometrics (e.g. retina scan, thumbprint, voice recognition, etc.). 
         [0085]    Referring again to  FIG. 1 , the computing system  162  may be a server, such as a web server, a file server, an application server, a mail server, an SaaS, an IaaS, a PaaS, a media server, a FTP server or some other server. In other embodiments, the computing system  162  may be a laptop, a terminal, a desktop, a workstation, a game console or some other computing system. The user&#39;s device  102  A, B and/or C may be a smartphone, tablet or other mobile device. 
         [0086]    The user device  102 A, B and/or C may determine its location by way of a location determination mechanism. This location determination mechanism could be a system such as GPS or could be a proprietary system implemented using a technology such as ultrasonic sound, RF signals, Bluetooth signals, Wi-Fi signals, NFC tags, and/or the like, such that the location of the user device  102 A, B and/or C can be determined to be close to the location of the computing system  162 . Upon determining, that the user device  102 A, B and/or C is in proximity to the computing system  162 , authentication credentials are automatically transmitted to the computing system  162  either directly or indirectly. In embodiments, transmitting the authentication credentials may include transmitting them via a network  114 , which may be a wireless LAN. The computing system  162  may then authenticate the user and may grant access to the secured content without user intervention at the computing system  162 . In some embodiments, the user device  102 A, B and/or C may require the user to confirm the transmission of credentials before transmission of credentials from the user device  102 A, B and/or C to the computing system  162 . In some embodiments, upon determining that the user device  102  A, B and/or C is no longer present at the location corresponding to the computing system  162 , the computing system  162  may automatically de-authenticate the user. A person of skill in the art would understand that arbitrary levels of security may be added to this system without significant deviation from the aforementioned embodiments, such as encryption, device authentication, and the like. 
         [0087]    While only a few embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that many changes and modifications may be made thereunto without departing from the spirit and scope of the present invention as described in the following claims. All patent applications and patents, both foreign and domestic, and all other publications referenced herein are incorporated herein in their entireties to the full extent permitted by law. 
         [0088]    The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software, program codes, and/or instructions on a processor. The present invention may be implemented as a method on the machine, as a system or apparatus as part of or in relation to the machine, or as a computer program product embodied in a computer readable medium executing on one or more of the machines. In embodiments, the processor may be part of a server, cloud server, client, network infrastructure, mobile computing platform, stationary computing platform, or other computing platform. A processor may be any kind of computational or processing device capable of executing program instructions, codes, binary instructions and the like. The processor may be or may include a signal processor, digital processor, embedded processor, microprocessor or any variant such as a co-processor (math co-processor, graphic co-processor, communication co-processor and the like) and the like that may directly or indirectly facilitate execution of program code or program instructions stored thereon. In addition, the processor may enable execution of multiple programs, threads, and codes. The threads may be executed simultaneously to enhance the performance of the processor and to facilitate simultaneous operations of the application. By way of implementation, methods, program codes, program instructions and the like described herein may be implemented in one or more thread. The thread may spawn other threads that may have assigned priorities associated with them; the processor may execute these threads based on priority or any other order based on instructions provided in the program code. The processor, or any machine utilizing one, may include memory that stores methods, codes, instructions and programs as described herein and elsewhere. The processor may access a storage medium through an interface that may store methods, codes, and instructions as described herein and elsewhere. The storage medium associated with the processor for storing methods, programs, codes, program instructions or other type of instructions capable of being executed by the computing or processing device may include but may not be limited to one or more of a CD-ROM, DVD, memory, hard disk, flash drive, RAM, ROM, cache and the like. 
         [0089]    A processor may include one or more cores that may enhance speed and performance of a multiprocessor. In embodiments, the process may be a dual core processor, quad core processors, other chip-level multiprocessor and the like that combine two or more independent cores (called a die). 
         [0090]    The methods and systems described herein may be deployed in part or in whole through a machine that executes computer software on a server, client, firewall, gateway, hub, router, or other such computer and/or networking hardware. The software program may be associated with a server that may include a file server, print server, domain server, internet server, intranet server, cloud server and other variants such as secondary server, host server, distributed server and the like. The server may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other servers, clients, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the server. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the server. 
         [0091]    The server may provide an interface to other devices including, without limitation, clients, other servers, printers, database servers, print servers, file servers, communication servers, distributed servers, social networks and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the server through an interface may include at least one storage medium capable of storing methods, programs, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs. 
         [0092]    The software program may be associated with a client that may include a file client, print client, domain client, internet client, intranet client and other variants such as secondary client, host client, distributed client and the like. The client may include one or more of memories, processors, computer readable media, storage media, ports (physical and virtual), communication devices, and interfaces capable of accessing other clients, servers, machines, and devices through a wired or a wireless medium, and the like. The methods, programs or codes as described herein and elsewhere may be executed by the client. In addition, other devices required for execution of methods as described in this application may be considered as a part of the infrastructure associated with the client. 
         [0093]    The client may provide an interface to other devices including, without limitation, servers, other clients, printers, database servers, print servers, file servers, communication servers, distributed servers and the like. Additionally, this coupling and/or connection may facilitate remote execution of program across the network. The networking of some or all of these devices may facilitate parallel processing of a program or method at one or more location without deviating from the scope of the disclosure. In addition, any of the devices attached to the client through an interface may include at least one storage medium capable of storing methods, programs, applications, code and/or instructions. A central repository may provide program instructions to be executed on different devices. In this implementation, the remote repository may act as a storage medium for program code, instructions, and programs. 
         [0094]    The methods and systems described herein may be deployed in part or in whole through network infrastructures. The network infrastructure may include elements such as computing devices, servers, routers, hubs, firewalls, clients, personal computers, communication devices, routing devices and other active and passive devices, modules and/or components as known in the art. The computing and/or non-computing device(s) associated with the network infrastructure may include, apart from other components, a storage medium such as flash memory, buffer, stack, RAM, ROM and the like. The processes, methods, program codes, instructions described herein and elsewhere may be executed by one or more of the network infrastructural elements. The methods and systems described herein may be adapted for use with any kind of private, community, or hybrid cloud computing network or cloud computing environment, including those which involve features of software as a service (SaaS), platform as a service (PaaS), and/or infrastructure as a service (IaaS). 
         [0095]    The methods, program codes, and instructions described herein and elsewhere may be implemented on a cellular network having multiple cells. The cellular network may either be frequency division multiple access (FDMA) network or code division multiple access (CDMA) network. The cellular network may include mobile devices, cell sites, base stations, repeaters, antennas, towers, and the like. The cell network may be a GSM, GPRS, 3G, EVDO, mesh, or other networks types. 
         [0096]    The methods, programs codes, and instructions described herein and elsewhere may be implemented on or through mobile devices. The mobile devices may include navigation devices, cell phones, mobile phones, mobile personal digital assistants, laptops, palmtops, netbooks, pagers, electronic books readers, music players and the like. These devices may include, apart from other components, a storage medium such as a flash memory, buffer, RAM, ROM and one or more computing devices. The computing devices associated with mobile devices may be enabled to execute program codes, methods, and instructions stored thereon. Alternatively, the mobile devices may be configured to execute instructions in collaboration with other devices. The mobile devices may communicate with base stations interfaced with servers and configured to execute program codes. The mobile devices may communicate on a peer to peer network, mesh network, or other communications network. The program code may be stored on the storage medium associated with the server and executed by a computing device embedded within the server. The base station may include a computing device and a storage medium. The storage device may store program codes and instructions executed by the computing devices associated with the base station. 
         [0097]    The computer software, program codes, and/or instructions may be stored and/or accessed on machine readable media that may include: computer components, devices, and recording media that retain digital data used for computing for some interval of time; semiconductor storage known as random access memory (RAM); mass storage typically for more permanent storage, such as optical discs, forms of magnetic storage like hard disks, tapes, drums, cards and other types; processor registers, cache memory, volatile memory, non-volatile memory; optical storage such as CD, DVD; removable media such as flash memory (e.g. USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, Zip drives, removable mass storage, off-line, and the like; other computer memory such as dynamic memory, static memory, read/write storage, mutable storage, read only, random access, sequential access, location addressable, file addressable, content addressable, network attached storage, storage area network, bar codes, magnetic ink, and the like. 
         [0098]    The methods and systems described herein may transform physical and/or or intangible items from one state to another. The methods and systems described herein may also transform data representing physical and/or intangible items from one state to another. 
         [0099]    The elements described and depicted herein, including in flow charts and block diagrams throughout the figures, imply logical boundaries between the elements. However, according to software or hardware engineering practices, the depicted elements and the functions thereof may be implemented on machines through computer executable media having a processor capable of executing program instructions stored thereon as a monolithic software structure, as standalone software modules, or as modules that employ external routines, code, services, and so forth, or any combination of these, and all such implementations may be within the scope of the present disclosure. Examples of such machines may include, but may not be limited to, personal digital assistants, laptops, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication devices, transducers, chips, calculators, satellites, tablet PCs, electronic books, gadgets, electronic devices, devices having artificial intelligence, computing devices, networking equipment, servers, routers and the like. Furthermore, the elements depicted in the flow chart and block diagrams or any other logical component may be implemented on a machine capable of executing program instructions. Thus, while the foregoing drawings and descriptions set forth functional aspects of the disclosed systems, no particular arrangement of software for implementing these functional aspects should be inferred from these descriptions unless explicitly stated or otherwise clear from the context. Similarly, it will be appreciated that the various steps identified and described above may be varied, and that the order of steps may be adapted to particular applications of the techniques disclosed herein. All such variations and modifications are intended to fall within the scope of this disclosure. As such, the depiction and/or description of an order for various steps should not be understood to require a particular order of execution for those steps, unless required by a particular application, or explicitly stated or otherwise clear from the context. 
         [0100]    The methods and/or processes described above, and steps associated therewith, may be realized in hardware, software or any combination of hardware and software suitable for a particular application. The hardware may include a general purpose computer and/or dedicated computing device or specific computing device or particular aspect or component of a specific computing device. The processes may be realized in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors or other programmable device, along with internal and/or external memory. The processes may also, or instead, be embodied in an application specific integrated circuit, a programmable gate array, programmable array logic, or any other device or combination of devices that may be configured to process electronic signals. It will further be appreciated that one or more of the processes may be realized as a computer executable code capable of being executed on a machine readable medium. 
         [0101]    The computer executable code may be created using a structured programming language such as C, an object oriented programming language such as C++, or any other high-level or low-level programming language (including assembly languages, hardware description languages, and database programming languages and technologies) that may be stored, compiled or interpreted to run on one of the above devices, as well as heterogeneous combinations of processors, processor architectures, or combinations of different hardware and software, or any other machine capable of executing program instructions. 
         [0102]    Thus, in one aspect, methods described above and combinations thereof may be embodied in computer executable code that, when executing on one or more computing devices, performs the steps thereof. In another aspect, the methods may be embodied in systems that perform the steps thereof, and may be distributed across devices in a number of ways, or all of the functionality may be integrated into a dedicated, standalone device or other hardware. In another aspect, the means for performing the steps associated with the processes described above may include any of the hardware and/or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure. 
         [0103]    While the disclosure has been disclosed in connection with the preferred embodiments shown and described in detail, various modifications and improvements thereon will become readily apparent to those skilled in the art. Accordingly, the spirit and scope of the present disclosure is not to be limited by the foregoing examples, but is to be understood in the broadest sense allowable by law. 
         [0104]    The use of the terms “a” and “an” and “the” and similar referents in the context of describing the disclosure (especially in the context of the following claims) is to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure. 
         [0105]    While the foregoing written description enables one of ordinary skill to make and use what is considered presently to be the best mode thereof, those of ordinary skill will understand and appreciate the existence of variations, combinations, and equivalents of the specific embodiment, method, and examples herein. The disclosure should therefore not be limited by the above described embodiment, method, and examples, but by all embodiments and methods within the scope and spirit of the disclosure. 
         [0106]    All documents referenced herein are hereby incorporated by reference.

Technology Classification (CPC): 8