throbber
US 6,327,535 B1
`
`17
`service module can use the information to determine a
`current device context.
`In the case where the context of the device is the device’s
`location, sources 606 provide various information to the
`location providers 604 that pertains to the device’s current
`location. As an example, the sources of the information can
`include various information transmitters such as a GPS
`system, cell phone or cell ID, wireless transmitters that
`transmit
`location information,
`location beacons, 802.11
`transmitters and various other sources of information. The
`sources of information can also include other computing
`devices that might, for example, provide location informa-
`tion through Bluetooth technology. In addition, a source of
`information 606 might include a person who, for example,
`physically enters location information into the device 600 so
`that the device can process the information to determine its
`location.
`When the device 600 receives the location information
`
`from the sources 606, it processes the information with the
`location providers 604 and provides the information to the
`location service module 602. The location service module
`602 processes the location information and determines a
`particular node on one or more of the hicrarchical tree
`structures to which it has access which correspondsto its
`current location. The location service module 602 can then
`traverse the tree structures to determine a complete location
`for the device. Once the complete location is determined, the
`device 600 can begin to interact with one or more applica-
`tions 608 that can query the device about
`its particular
`location so that one or more location-dependent services can
`be rendered to the device. In this example, the applications
`608areillustrated as being separate from the device. It is to
`be understood, however,
`that
`the applications could be
`executing on the device, e.g. a browser application.
`As shown, the applications 608 can make calls to the
`device to ask the device where it is located. The device is
`configured to receive the calls and respond in an appropriate
`manner to the application. Once the application has the
`device’s location information,
`it can then render location
`specific services to the device.
`Consider the following example: You are a traveler and
`have a hand-held mobile computing device thal contains a
`Master World tree and a Secondary World tree for SeaTac
`International Airport. You are scheduled to depart on a plane
`for China from Concourse C. SeaTac International Airport
`has designed its Secondary World to have the following
`nodes: “Arrivals”, “Departures”, “Concourses”, “Airlines”,
`“Gates assigned to Airlines”, and “Gate Location”. When
`you arrive at
`the airport, as you enter the airport your
`computing device receives location information from dif-
`ferent sources and with that information your device deter-
`mines that your location is in the Arrivals node. SeaTac
`International has bank of servers that are executing appli-
`cations to assist you while you are in the airport. There are
`applications that can help you find services, locate facilities
`(e.g. coffee shops, restaurants), give directions (e.g. how to
`get to your departure gate), update you onthestatus of your
`flight, and even check you in automatically for your flight.
`Consider also that as you walk through the airport your
`location changes. Your computing device, however, can
`receive continuous location information updates so that it
`can continue to determine its location as you movethrough
`the airport. At one point, as you pass a Starbucks coffee
`shop, your hand held device notifies you that if you purchase
`a latte at Starbucks and present your hand held device, you
`will receive a 50 cent discount on yourlatte. In this example,
`the utility of the Secondary World is demonstrated. By
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`18
`knowing where its particular customers are in its facility,
`SeaTac International is able to provide a host of services that
`were not possible before.
`Assume further that you are in the airport and your flight
`is canceled. You must find a place to stay for the night.
`Accordingly, you wish to determine the closest Double Tree
`hotel because you really like the warm chocolate chip
`cookies they give you when you check in. You execute a
`search engine on your computing device to find the nearest
`Double Tree hotel. The search engine applicationfirst deter-
`mines your current location in the Master World as indicated
`by the EID of the Master World node that corresponds to
`your location. Executing a search, the search engine appli-
`cation looks for a Double Tree hotel that has an attribute that
`
`includes an EID that matches your EID. If it finds one, it
`simply indicates for you the result. If it does not find one
`with the corresponding EID, it can use an adjacent geozone
`to search for a Double Tree hotel. It may also provide driving
`directions to the hotel. The search engine application was
`able to do this because it was able to ascertain your location
`in the Master World. It did this quickly and automatically
`with little or no effort from you.
`Consider further that as you are driving from the airport
`to the hotel you decide that you want to find the nearest
`Kinko’s so that you can print 100 copies of a presentation
`that you are to give in the morning. Consider that your
`hand-held computing device is a cellular phone and that
`Sprint is the carrier. Sprint has defined its own Secondary
`World that might, for example, be designated in termsof cell
`nets. By virtue of having Sprint’s Secondary World on your
`computing device, you are able to ascertain your location in
`Sprint’s Secondary World and, accordingly, your location in
`the Master World. Consider that Kinko’s also has a Second-
`ary World that links with the Master World. By executing a
`search application on your device, you are able to ascertain
`the location of the nearest Kinko’s as well as driving
`directions thereto. All of this is possible because your device
`has access to the Master World and one or more Secondary
`Worlds.
`In this example,
`the Master World provides a
`mechanism to daisy chain two or more Secondary Worlds
`together.
`‘This is possible because the Secondary Worlds
`have at least one reference or link into the Master World.
`
`Exemplary Device Architecture
`FIG. 7 shows computing device 600 in somewhat more
`detail. In this particular embodiment, device 600 comprises
`an architecture that includes the following components: a
`location service module 602, a location provider interface
`700, an application program interface (API)/Events module
`702, a privacy manager 704 a location conversion module
`706, onc or more applications 608 and onc or more location
`providers 606. Also included in the architecture is an active
`directory 708, Web service 710, location database 712, and
`personal places 714. The architecture can be implemented in
`any suitable hardware, software, firmware or combination
`thereof. The architecture mentioned above is advantageous
`in that it enables each computing device to determine its own
`context or location.
`Common Location Provider Interface
`
`One particularly advantageous aspect of the described
`embodimentis that it employs a commoninterface 700 that
`provides a standard interface through which the location
`providers 606 communicate. By having a commoninterface,
`the location providers are extensible (to support future
`providers) in that they can be dynamically added or removed
`fromthe collection of location providers. All that is required
`of a particular location provider 606 is that it be written to
`support the commoninterface.
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0019
`EXHIBIT 1006 - PAGE 0019
`
`

`

`US 6,327,535 B1
`
`19
`In this example, there are several location providers 606.
`These location providers provide location information in
`different forms. For example, a GPS location provider might
`provide location information that is GPS specific. Similarly,
`an IP/Subnet location provider might provide information
`that is specific to an Internet Protocol. A mobile phone
`location provider might provide location information in the
`form of a cell ID. In addition, a location User Interface (UI)
`might provide location information in the form of a user
`entry that specifies a city, street or building. All of the
`location information that is provided by the various location
`providersis processed by the location service module 602 so
`that a current device location can be determined. To deter-
`mine the current device location, the location service mod-
`ule 602 may have to consult with an active directory 708, a
`Web service 710, or a location database 712. In the illus-
`trated example, the active directory 708 might, for example,
`maintain a secondary world and other networking metadata
`such as subnet and “site” information that can help deter-
`mine location based on networking connectivity. Web ser-
`vice 710 can hold the master or secondary worlds,
`the
`attributes of which can be usedto find location. For example,
`if a cell phone knowsits cell tower ID, then the location
`provider can query the sccondary world to ascertain the
`nodes that match that cell tower ID. Location database 712
`
`is basically a version of the web service that is hosted or
`cached locally.
`Location Providers
`
`10
`
`15
`
`As indicate above, the architecture contemplates multiple
`different location providers that can provide location infor-
`mationto the location service module 602. This information
`
`30
`
`can come in many different forms and quality levels. The
`information is then processedbythe location service module
`602 to determine a current device location. To do this, the
`service module 602 ascertains from the location information
`a particular node ID (EID and/or LUID) and a URLthatis
`associated with the tree structure with which the node is
`associated. Once the location service module ascertains a
`node ID,
`it can then query the tree structure (or more
`accurately a server that managesthetree structure) using the
`URLto ascertain more information about the tree structure.
`For example, if the location service module 602 ascertains
`a LUID from a particular Secondary World, it might then
`query an active directory 708 (or an Intranet server—which
`is another location database) to discover the parents and the
`children of the node. This would then enable the location
`
`service module to build the Secondary World.
`The location providers 606 can provide the location
`information to the location service module 602 in many
`different ways. For example, some location providers 606
`may continuously provide information (e.g. the GPS pro-
`vider may continuously provide GPS coordinates).
`Alternately, the location providers can periodically provide
`location information such as at specific times or on the
`occurrence of definable events. For example, a user may
`define specific times when the location information should
`be updated. Alternately, the location information might be
`updated only when a device’s location changes (ie.
`a
`location change event). Additionally, the location providers
`might provide location information when polled by the
`location service module 602. For example,
`the location
`service module 602 can call the location provider interface
`700 and request location information from one or more of
`the location providers.
`One specific location provider 606 is shown as a cache.
`The cache provider essentially maintains a current device
`contextor location. That is, once the location service module
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`20
`602 has ascertained its current location, it writes this loca-
`tion to a cache. This enables the device 600 to ascertain its
`
`location with a degree of confidence in the eventall of the
`other location providers are not able to provide location
`information (e.g. the GPS provider may not receive GPS
`information because the GPS transmitter that supplies it with
`the information is unable to contact a requisite number of
`satellites).
`Confidence and Accuracy Parameters
`One important and useful
`feature of the described
`embodiment is that one or more ofthe location providers are
`configured to assign confidence parameters and/or accuracy
`parameters to the information that
`they provide to the
`location service module 602. Confidence parameters provide
`a measure of a provider’s confidence in the information that
`it provides to the location service module 602. For example,
`assume that a GPS transmitter must receive information
`from five or more satellites in order to provide highly
`confident information. Assume that only three satellites are
`available at
`the time. The GPS transmitter would then
`
`transmit its information based only on the three satellites.
`The GPS provider would then know that the information it
`receives from the GPS transmitter was based only on three
`satellites rather than the desired five or more. In this case, the
`GPSprovider can set a confidence parameteron the location
`informationthat indicates that it has a lower confidence level
`than if the information were based on the desired five or
`moresatellites. In this case, the location service module 602
`can take the confidence parameters for all of the location
`providers into account when determining the location of the
`device. This is discussed in more detail below.
`
`With respect to the accuracy parameters, considerthat the
`location information that
`is received from the location
`providers is accurate to varying degrees. Some information
`may be accurate to within one mile, while other information
`may be accurate to within 100 feet. The location providers
`are desirably configured to assign accuracy parametersto the
`location information that they provide to the location service
`module 602. The accuracy parameters give the location
`service module an indication of the accuracy of the infor-
`mation.
`
`Whenthe confidence and accuracy parameters are used by
`the location service module 602,
`the module can make
`decisions on how to use the location informationit receives
`
`from each provider. For example, the location service mod-
`ule 602 might disregard completely any information that has
`a low confidence parameter. It might, on the other hand,
`strike a balance between the accuracy of the information and
`its confidence. For example,
`the module 602 might be
`programmed to use information with lower levels of accu-
`racy only whenthere is a high level of confidence in the
`information. The module 602 mightutilize the parameters to
`assign weights to the information so that the location is
`calculated as a weighted function of the confidence and
`accuracy of the information.
`Another use of the confidence parameters is as follows:
`Assumethat the location service module has determined a
`device location and has written that location to a cache. At
`the time whenthe location is written to a cache, it is assigned
`perhaps a high confidence level. Assume further that all of
`the other location providers are unavailable to provide
`location information. For a period of time,
`the location
`service module 602 can use the cache location as a current
`
`its information is
`that
`location and be fairly confident
`generally accurate. In this case, the location service module
`might assign a linearly decreasing confidence level to the
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0020
`EXHIBIT 1006 - PAGE 0020
`
`

`

`US 6,327,535 B1
`
`21
`information over time so that at some point, it ceases to use
`the information or informs the user that the information
`
`cannot be guaranteed.
`Location, Trust, and Timestamp
`Whenthe location providers provide their information to
`the location service module 602,
`the information can
`include,
`in addition to the confidence and accuracy
`parameters,
`the actual
`location information in a known
`format, a trust parameter and a imestamp. The trust param-
`eter is a metric that
`is assigned by the location service
`module 602 to one or more of the location providers and
`defines the trust that the location service module hasfor the
`
`particular location provider. The timestamp is a metric that
`defines the time whenthe location information was provided
`by the location provider. This assists the location service
`module 602 in ascertaining whether information is stale and
`might need refreshed.
`Once the location service module 602 has all of the
`
`location information, it can then set about determining the
`location of the device.
`
`FIG. 8 is a flow diagram that describes steps in a method
`of determining a device context which, in this example, is
`the device location. These steps are implemented by the
`location service module 602.
`
`Step 800 gets the current device context. The current
`context can be the last calculated device context that is
`stored in the cache. Step 802 determines whether any of a
`numberof context providersare available to provide context
`information. The location service module might do this by
`polling the context providers to ascertain which of the
`providersare active and valid. Step 804 determines whether
`all of the providers are inactive. If all of the providers are
`inactive, step 806 decreases the confidence in the current
`context over time and uses the current context as the device
`
`context. Step 802 then continues to monitor for current
`active and valid providers. If step 804 determines that one or
`more of the context providers are active,
`then step 808
`orders the active and valid context providers. When the
`location service module 602 orders or sorts the context
`providers, it does so as a function of the confidence of the
`provider’s information and/or the trust
`that
`the location
`service module has in the location provider. This provides a
`ranked list of the location providers. Step 810 checks to
`ascertain whether the context information appears to be
`correct. For example, where the contextis the location of the
`device, the location service module 602 might knowthatfive
`seconds ago the current
`location was Redmond, Wash.
`Accordingly, location information that indicates that
`the
`current location is Beijing, China would be incorrect. Step
`812 then determines whether any of the context information
`conflicts with either the device’s current context or the
`
`context information from other providers. For example, the
`location service module 602 can compare the context infor-
`mation from each of the context providers with the infor-
`mation in the cache. If any of the information conflicts with
`the cached information,
`then the information from that
`context provider can be discarded. Similarly,
`if context
`information varies inordinately as between the context
`providers, then step 814 can select the context providers
`having a predefined level of trust and perhaps use just their
`information (Step 816 ). If there are no conflicts, then step
`816 determines the current context based upon the informa-
`tion that is provided byall of the context providers. In the
`described embodiment, this step is implemented by using,
`the information to map to a particular node in one or more
`of the hierarchical tree structures mentioned above. For
`
`22
`example, the location of the device can be ascertained by
`mapping the information to a particular node, and then
`completely traversing the tree structure until the root node is
`reached. Step 818 then updates the current context by
`perhaps writing it to the cache and returns to step 802 to
`determine the active and valid context providers.
`‘The method described above provides a way for the
`location service module to receive location information and
`use only the location information that appears mostly likely
`to represent a current location. Conflicting information can
`be discounted or disregarded thereby assuring that only the
`most trusted, accurate and confident information is utilized
`to determine the device’s current location.
`
`Self Monitoring
`In addition to the confidence and accuracy parameters,
`one or more of the location providers are advantageously
`programmedto self monitor their own operation for various
`irregularities that can occur. On the occurrence of an
`iregularity, the location providers are configured to notify
`the location service module 602. For example, the source
`from which the location provider receives its information
`may go off line for a period of time so that the location
`provider is unable to reccive any additional information. In
`this case, the location provider might generate a “provider
`out” message and sendit to the location service module 602.
`Whenthe location service module 602 receives the “pro-
`vider out” message, it can then take steps to exclude the
`location information from that provider from any location
`calculations that it performs. When the location provider’s
`source comes back online, it can generate a “provider on”
`message that informs the location service module 602 that it
`is able to transmit location information to the module. Of
`course, the location service module can be notified by the
`location providers on the occurrence of other operational
`wregularities, with the above example constituting but one
`specific case.
`Applications
`Oncethe location service module 602 has determined the
`device’s location, it can receive queries from one or more
`applications 608. In the FIG. 7 example, the applications
`include a web site application, an Outlook application, and
`a service discovery application. In the present example, the
`web site application can be any web site application that is
`capable of rendering location-specific services. For
`example, the user of the device 602 might access Amazon-
`.com’s web site to buy a favorite book. When the user
`purchases their book, Amazon.com must now compute the
`taxes that the user must pay. In this example, a script
`executing on Amazon.com’s website might query device
`602 to learn of the user’s location. In this particular example,
`the device might respond to the query by returning the state
`in which the user is making the purchase. Amazon.com can
`then assess the tax automatically. Amazon.com might also
`desire to know where the individual is located so that they
`can select an optimal shipping method (UPS or Express
`Mail). Depending on where the individual is located, one
`method may be preferred over the other. The Outlook
`application might query the location service module to
`ascertain the location because it (or the operating system,
`e.g. Windows) may change device settings based on the
`location of the computing device. For example, the user may
`print on one particular printer while at work, and another
`particular printer when at home. When the Outlook appli-
`cation determines that the user has gone home for the day,
`it can automatically change the device settings for the printer
`at the user’s home. It might acquire the print settings from
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0021
`EXHIBIT 1006 - PAGE 0021
`
`

`

`US 6,327,535 B1
`
`24
`The privacy manager 704 addresses privacy concernsthat
`are associated with the information that is collected by the
`computing device. Specifically, the location service module
`can calculate detailed information regarding the location of
`the computing device.
`It may be desirable,
`in some
`instances, to filter the information that is provided to various
`applications. Thatis, it is entirely likely that a user may not
`want
`their specific location information provided to
`untrusted applications. In these instances a user might just
`desire for location service module 602 to inform such
`
`applications that the user is in the State of Washington.
`FIG. 10 shows a flow diagram that describes steps in a
`privacy protection method in accordance with the described
`embodiment. These steps can be implementedby the privacy
`manager 704.
`Step 1000 definesa plurality of privacy levels. Exemplary
`privacy levels are set forth in the table immediately below:
`
`23
`a personal places data store 714. Thus, the device is auto-
`matically configured for use depending on the user’s loca-
`tion. The service discovery application might query the
`device to determine ils location so that
`it can render a
`particular service depending on where the deviceis located.
`For example, if the user asks the application to locate the
`nearest color printer, the service discovery application might
`query the location service module to ascertain the device’s
`current location so that it can use this information and find
`the nearest color printer. Consider also that the Outlook
`application could configure itself email to a work location
`(whenan individual is at work) or to a home location (when
`an individual is at home). In addition, the Outlook calendar
`can become location aware, e.g. when you change time
`zones, your appointments would showupin the proper time
`slots.
`
`As one can imagine, the possibilities are seemingly end-
`less. This functionality is made possible through the use of
`the Master World and one or more Secondary Worlds.
`Application Program Interface/Events
`In the described embodiment, the applications 608 com-
`municate with the location service module 602 through one
`or more application program interfaces (APIs) and/or
`events. The applications can make function calls on the API
`to query the location service module as to its current
`location. Similarly, the applications can register for location
`notifications by using an events registration process. For
`example, an application mayregisterfor a notification when
`the user changes their location. Consider the case where an
`application requests to be notified when the user arrives at
`work or at home so that the application can change the
`device’s configuration (such as printer configuration).
`FIG. 9 is a flow diagram that describes steps in a method
`1n accordance with the described embodiment. Thesteps that
`are described are implemented by device 600. Step 900
`receives information that pertains to the current context of
`the device.
`In this particular example, a portion of the
`information is received from one or more context providers
`which, in this case, are location providers. Step 902 pro-
`cesses the information on and with the device to ascertain
`the current context of the device. In the illustrated example,
`the device maintains (or has access to) one or more of the
`Master World and one or more Secondary Worlds. When the
`device receives all of the location information, it maps the
`information to a particular node in the hierarchical tree
`structure that defines the Worlds. It then traverses the tree
`structures to ascertain the complete context (i.e. location) of
`the device. Step 904 receives calls from one or more
`applications that request information that pertains to the
`device’s current context or location.
`In the illustrated
`
`the applications can call one or more APIs to
`example,
`request the information or the applications can register for
`event notifications. Step 906 then supplies the applications
`with at lcast some information that pertains to the current
`device location. As will be discussed below,a security policy
`or privacy policy can be applied to the information before it
`1s returned to the applications.
`Privacy Manager
`In one embodiment, a privacy manager 704 (FIG. 7) is
`provided. Although the privacy manager is illustrated as
`being incorporated on the device, it could be implemented
`by a trusted entity such as a trusted server that is not part of
`the mobile computing device. The privacy manager can be
`implemented in any suitable hardware, software, firmware
`or combination thereof.
`In the illustrated example,
`the
`privacy manager comprises a software module that is incor-
`porated in the mobile computing device.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Privacy Level
`0
`
`10
`2
`30
`40
`50
`
`60
`
`70
`
`80
`90
`
`100,000 Km
`1,000 Km
`100 Km
`10-100 Km
`10 Km
`
`1 Km
`
`Approximate Scale Level of Revelation
`_
`No location intormation
`is returned.
`Planet/Continent
`Country
`State
`City & County or Region
`Postal Code & Phone
`Area Code
`Full Postal Code (Zip +
`4) & Area Code and
`Exchange
`Phone Number &
`Building/Floor
`Room #
`Exact Coordinates
`
`100 m
`
`10 m
`im
`
`In the illustrated table, 10 different privacy levels are
`defined and each has an associated approximate scale. For
`example, a privacy level of 0 means that no location
`information is returned. A privacy level of 90 means that
`very detailed location information is returned.
`Step 1002 assigns various privacy levels to the individual
`nodes in one or more hierarchical
`tree structures. For
`example, each node of the Master World and the Secondary
`Worlds can have a privacy level associated with it. The root
`node of the Master World tree structure might have a privacy
`level of 10, while the node that represents a current location
`in a Secondary World might have a privacy level of 90. Step
`1004 determines the context of the computing device. In the
`present example,
`the context is the device location and
`examples of how this is done are given above. Individual
`applications that call the location service module can have
`privacy levels associated with them. These privacy levels
`can be assigned by individual users. For example, a trusted
`application might have a privacy level of 90, while an
`untrusted application might havea privacylevel of 30. Step
`1006 receives context queries from one or more applica-
`tions. Iere, an application calls the location service module
`602 (FIG. 7) to ascertain the location of the device. Step
`1008 determines the privacy level associated with the appli-
`cation or applications. For example, if a untrusted applica-
`tion calls to request location information, the privacy man-
`ager 704 would determine that the application has a privacy
`level of 30. The privacy manager then traverses (step 1010
`) one or more hierarchical tree structures to find a node with
`a corresponding privacy level so that
`it can select
`the
`information that
`is associated with that node.
`In this
`
`example,
`
`the traversal might
`
`involve jumping from the
`
`APPLE
`APPLE
`EXHIBIT 1006 - PAGE 0022
`EXHIBIT 1006 - PAGE 0022
`
`

`

`US 6,327,535 B1
`
`25
`Secondary World to the Master World to find the node that
`corresponds to the state in which the user is located. Once
`the corresponding node is found, step 1012 returns the
`context information (e.g. location information) associated
`with the node. In this case, the location service module
`would inform the application that the user’s location is the
`State of Washington.
`As an example, consider the following: Thereis a website
`that gives up to the minute weather of various locations.
`Accordingly, you might assign this web site a privacy level
`of 60 so that you can receive weather information for the
`geographical area that corresponds to your present full
`postal code. Another web site might be a corporation intranet
`web site that is a trusted web site. Thus, any applications
`associated with this web site can be assigned a privacy level
`of 90 so that you can give them precise location information
`as to your whereabouts.
`Thus,
`in the present example, the computing device is
`able to determine the source (i.e. application) ofits queries
`and modulate the information that is returned to the appli-
`cation as a function of the application’s identity. The com-
`puting device is able to do this because it has access to the
`Master World and one or more Secondary Worlds. The
`above description constitutes but one exemplary way of
`accomplishing this feat.
`Location Beacons as a Location Provider
`
`In one embodiment, one of the location providers com-
`prises a location beacon that beaconsor transmits informa-
`tion to enable a computing device to actively participate in
`its current context. Location beacons can comprise standa-
`lone devices that can be retrofitted onto existing
`infrastructures, e.g. a smoke detector or wall outlet in order
`for the device to have a power source.
`FIG. 11 showsan exemplary beacon 1100that is mounted
`on a structure 1102. Structure 1102 can be any suitable
`structure such as a wall in a conference room or public place,
`a smokedetector, an electrical socket and the like. In the
`described embodiment, the location beacons are small inex-
`pensive devices that can be permanently mounted in special
`locations such as conference rooms, building lobbies, airport
`gates, public places and the like. The beacons announce the
`physical location in the form of an EID and/or LUID to all
`mobile devices that are within range, such as laptops, tablet
`PCs, hand held computers, mobile phones, wearable com-
`puters and the like.
`In the described embodiment, the location beacon can
`identify the particular locations by beaconing standard infor-
`mation that will be understood by the mobile computing
`devices. In the present example, the beacons can transmit
`one or two location identifier pairs comprising an EID/URL
`pair and a LUID/URLpair. The beacon mightalso transmit
`multiple LUIDs. The EID and LUID give t

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket