# Patent

## Title
Multi-level database management system and method for an object tracking service that protects user privacy

## Abstract

An improved system and method for defining an event based upon an object location and a user-defined zone and managing the conveyance of object location event information among computing devices where object location events are defined in terms of a condition based upon a relationship between user-defined zone information and object location information. One or more location information sources are associated with an object to provide the object location information. One or more user-defined zones are defined on a map and one or more object location events are defined. The occurrence of an object location event produces object location event information that is conveyed to users based on user identification codes. Accessibility to object location information, zone information, and object location event information is based upon an object location information access code, a zone information access code, and an object location event information access code, respectively.

## Background
FIELD OF THE INVENTION
The present invention relates generally to a system and method for defining an event based on the relationship of an object location and a user-defined zone and managing the conveyance of information related to such object location event among computing devices. More particularly, the present invention relates to defining an object location event based on the location of an object relative to a user-defined zone and managing the conveyance of object location event information among computing devices based on user identification codes associated with the computing devices.
BACKGROUND OF THE INVENTION
Various sources of information are available for determining the location of an object. Such location information sources include Global Positioning System (GPS) receivers, radars, radio frequency identification (RFID) tags, and variety of other technologies that can be used to determine location information pertaining to an object, which might be moving or stationary. Such location information has been used to track vehicles, packages, people, etc. and to enable a variety of location aware applications including location aware toll systems, material handling and supply chain management systems, and the like. Thus far, such location aware applications have mostly involved computing devices specifically programmed to provide location-aware functionality in a useful but predetermined manner. For example, scanners have been used as sources of information to convey the locations of shipping containers as they progress through various stages en route to a destination, where the specific location of a given shipping container on a shipping dock or in a cargo hold can be accessed at any given time via a control system.
Technological advancements in computing devices and information networks, in particular wireless networks, have enabled users of a variety of computing devices such as smart phones, personal digital assistants (PDAs), laptop computers, etc. to access and utilize information in more and more locations. For example, such advances now allow users to wirelessly check their email or to surf the Internet from anywhere that is covered by an appropriate data service. Some computing devices have become equipped with technologies that integrate various sources that provide information about the location of the devices. For example, known mobile devices have been equipped with GPS receivers, which enable the users to know where they are located at any given time.
As sources that offer location information become more useful in computing devices and within information networks, there is a need for a system and method that correlates events with location of objects and conveys information about such events to computing devices.
SUMMARY OF THE INVENTION
Briefly, the present invention relates to conveying information relating to an object to one or more users. The invention requires defining a zone by the one or more users. An event is also defined in terms of a condition related to a relationship between an object location and the zone. The condition can relates to entry by the object into the zone, exit by the object from the zone, or proximity of the object to the zone Upon meeting the condition, information regarding the event is conveyed to the at least one of the one or more users. The one or more users can access at least one of the location information, information relating to the zone or conveyed information regarding the event using one or more access control codes. The access control codes can be configured to require multiple levels of access control.
Thus, the present invention relates to a system and method for defining events that are correlated with the location of one or more objects to one or more zones. Hereinafter, such events are referred to as object location events. The object location events can be defined at an application level or a user level. The system and method of the invention also conveys information relating to the object location event to one or more computing devices, which, in an exemplary embodiment of the invention, are associated with corresponding identification codes of one or more users. For example, association of a user identification code with a computing device can be an embedded association (e.g., hard-wired) or it can be based on a user log-in at the computing device. In one embodiment, the object location event relates to information about a location of an object and information about a zone that is defined by a user. The information about the location can be derived from a location information source that is associated with the object. Under this embodiment, the object location event occurs by satisfaction of a defined relationship or condition between the object location information and user-defined zone information. Once the condition is satisfied, information corresponding to the occurrence of the object location event is conveyed to a computing device. In one embodiment of the invention, the information is conveyed to the computing device in accordance with a corresponding user identification code.
In one exemplary embodiment, a user can associate a source of location information with an object and define a zone. Under this arrangement, any other authorized user that has access to information about location of an object and a user-defined zone can also define an object location event for that zone and receive information about occurrence of the event. Under another arrangement, only the user who defines a user-defined zone can define an object location event for that zone.
In a further embodiment, an access code is associated with information about the location of an object. Under this embodiment, the object location information is conveyed to the computing device based upon the user identification code and an access code associated with the location information. Under another arrangement, only the user that associates a source of location information with an object can associate the access code with the object location information as determined by the source of location information.
In yet another embodiment, an access code is associated with the user-defined zone information. Under this embodiment, the user-defined zone information is conveyed to at least one of the computing devices based upon a corresponding user identification code and an access code for the user-defined zone information. Under another arrangement, only the user that defines a user-defined zone can associate the access code with the user-defined zone information.
In still another embodiment, an access code is associated with information about an object location event. Under this embodiment, the information about the object location event is conveyed to at least one of the computing devices based upon a corresponding user identification code and an access code for the object location event information. Under another arrangement, only the user that defines the object location event can associate the access code with the object location event information.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.
FIG. 1 illustrates an exemplary information-sharing environment including computing devices having wired or wireless connectivity to the Internet and a map server, and various objects for which location information sources provide object location information;
FIG. 2 illustrates an exemplary map retrieved from the map server of FIG. 1 via the Internet that includes an icon indicating a location of a vehicle relative to three user-defined zones.
FIG. 3 illustrates a first embodiment of a method of the invention where object location event information is conveyed to computing devices based upon user identification codes;
FIG. 4 illustrates a second embodiment of a method of the invention where object location information is conveyed to computing devices based upon an object location information access code and user identification codes, and object location event information is conveyed to computing devices based upon user identification codes;
FIG. 5 illustrates a third embodiment of a method of the invention where user-defined zone information is conveyed to computing devices based upon a user-defined zone information access code and user identification codes, and object location event information is conveyed to computing devices based upon user identification codes;
FIG. 6 illustrates a fourth embodiment of a method of the invention where object location event information is conveyed to computing devices based upon an object location event information access code and user identification codes;
FIG. 7 illustrates a fifth embodiment of a method of the invention where object location information are conveyed to computing devices based upon an object location information access code and user identification codes, user-defined zone information is conveyed to computing devices based upon a user-defined zone information access code and user identification codes, and object location event information is conveyed to computing devices based upon an object location event information access code and user identification codes;
FIG. 8 illustrates an exemplary PDA Application Launch Screen used to begin execution of a Location and Tracking software as implemented according to the present invention;
FIG. 9 illustrates an exemplary Main Screen of the Location and Tracking software from which additional screens are accessed;
FIG. 10 illustrates an exemplary Configuration Screen of the Location and Tracking software used to manage information corresponding to the user of the PDA;
FIG. 11 illustrates an exemplary GPS Screen of the Location and Tracking software used to manage a GPS receiver that is associated with a user's PDA via a Bluetooth connection;
FIG. 12a illustrates an exemplary Tracking Setup Screen of the Location and Tracking software used to control the rate at which GPS data is polled;
FIG. 12b illustrates an exemplary Log File Selection Screen of the Location and Tracking software used to select a log file for storing GPS information;
FIG. 13a illustrates an exemplary Map Screen of the Location and Tracking software used to display a map received from a map server;
FIG. 13b illustrates an exemplary Data Screen of the Location and Tracking software used to manage conveyance of tracking and zone information to specific users based on access codes;
FIG. 13c illustrates an exemplary Zone Screen of the Location and Tracking software used to define user-defined zones;
FIG. 13d illustrates an exemplary Size Screen of the Location and Tracking software used to manage the size and other characteristics of a displayed map;
FIG. 13e illustrates an exemplary About Screen of the Location and Tracking software used to provide a notice concerning Tracking Privacy Issues, software version information, and copyright information;
FIG. 14 illustrates an exemplary Group Screen of the Location and Tracking software used to manage information corresponding to groups of contacts;
FIG. 15 illustrates an exemplary Contact Screen of the Location and Tracking software used to manage information corresponding to contacts;
FIG. 16 illustrates an exemplary Camera Screen of the Location and Tracking software used to manage pictures to be associated with contact location information;
FIG. 17 illustrates an exemplary Big Buttons Screen of the Location and Tracking software used to provide easy access to key application commands while walking or driving;
FIG. 18 illustrates an exemplary Map Viewer Web Page used for displaying maps and other information conveyed by the Location and Tracking software;
FIG. 19 illustrates an exemplary Contact Viewer Web Page used for displaying contact information conveyed by the Location and Tracking software;
FIG. 20 illustrates an exemplary web page-based display of a map overlaid with GPS tracking and zone information conveyed by the Location and Tracking software;
FIG. 21 illustrates an exemplary web page for creation of a zone used by the Location and Tracking software;
FIG. 22 illustrates an exemplary map displayed on a web page depicting logging of contact location information while a contact is within a zone and logging of contact location information when a contact enters or leaves a zone; and
FIG. 23 illustrates an exemplary map displayed on a web page depicting a picture associated with a location of a contact.



DETAILED DESCRIPTION OF THE INVENTION
The present invention will now be described more fully in detail with reference to the accompanying drawings, in which the preferred embodiments of the invention are shown. This invention should not, however, be construed as limited to the embodiments set forth herein; rather, they are provided so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
The present invention provides a system and method for defining an event that relates to a location of an object and managing the conveyance of related information among computing devices associated with corresponding user identification codes. In accordance with the present invention, an information-sharing environment consists of a computing network including a map server and computing devices. Objects associated with sources of location information provide object location information comprising one or more coordinates. In an exemplary embodiment, the coordinates correspond to one or more determined locations of the objects within an established coordinate system. In the system and method of the present invention, an object can comprise any device, thing, person or entity that can be located or tracked. A user of a computing device can retrieve a map, for example, from a map server and define a user-defined zone on the map. According to one aspect of the invention, an object location event is defined based on a relationship between one or more object locations and one or more user-defined zones, where the occurrence of the object location event is determined when a condition associated with the relationship is satisfied. Thus, an occurrence of the object location event is determined based on object location information and user-defined zone information. In other words, an object location event is determined based on the location of an object relative to a user-defined zone. More generally, an object location event may be determined based on the location(s) of one or more objects relative to one or more user-defined zones. Upon occurrence of the object location event, object location event information is conveyed to at least one computing device based upon a corresponding user identification code(s) associated with the computing device(s).
The present invention can be implemented in a variety of information-sharing environments. The sharing of information may be managed among a small number of users such as a family or group of friends, or among a very large number of users such as among employees of very large business, or among a worldwide user base such as a might be provided via an Internet service. Furthermore, information-sharing environments may involve information-sharing environments within information-sharing environments. That is, one or more smaller information-sharing environments may overlap or coexist independent of each other within one or more larger information-sharing environments.
In one embodiment, one or more administrators may be given privileges to configure the information-sharing environment. Such configuration could include specifying authorized users of the environment and their access privileges, etc. Such configuration can also define groups of users as part of an established organizational structure associated with the information-sharing environment. Pre-defined zones comprising domains can be configured along with events that define relationships between object locations relative to such domains. Moreover, sources of publicly available object location information, such as weather tracking systems; can also be configured for use with the system and method of the present invention. Because smaller information-sharing environments can exist within larger information-sharing information environments, various levels of administrator privileges can exist. For example, an Internet service based on the present invention can be provided and administered such that anyone having access to the Internet can purchase the service and be an authorized user. A purchaser of the service can set up a company-wide information-sharing environment within the larger world-wide information-sharing environment that includes company employees, affiliates, Board members, guests, etc. A division within a company may set up its own information-sharing environment, and so on. A family can set up its own information-sharing environment and an individual may set up his or her own information-sharing environment. As such, each information-sharing environment can be administered so as to manage conveyance of information among computing devices based on user identification codes. Management of users, groups, domains, and publicly available object location information sources is described in greater detail below.
Referring to FIG. 1, information-sharing environment 100 includes computing network 102 having wired and wireless network links 104, 106 and connectivity to the Internet 108 that provides access to a map server 110 and map information 112. Also shown are objects associated with sources that provide object location information. Location information sources are shown including Global Positioning System (GPS) satellites 114a and GPS receivers 114b. Examples of various types of computing devices are shown interfacing with the computing network 102 including a PDA 116a, PDA having a GPS receiver 116b, a wireless smart phone 118a, a wireless smart phone having a GPS receiver 118b, a laptop computer 120a, a laptop computer having a GPS receiver 120b, a personal computer 122a, a personal computer having a GPS receiver 122b, and a digital television 124. Typically, one or more of the computing devices could be used as a control station. FIG. 1 also illustrates various examples of objects (e.g., devices, things, people, vehicles, animals, etc.) that can be associated with location information sources enabling object location information to be conveyed to computing devices. Examples of such objects depicted in FIG. 1 include a fireman 126a, semi truck 126b, crate 126c, car 126d, cow 126e, woman 126f, soldier 126g, child 126h, dog 126i, and a building 126j. Generally, any object can be associated with a location information source in accordance with the present invention including the computing devices themselves. Such objects may be outdoors or indoors and may be included within another object such as, for example, a crate 126c within a semi truck 126b. Such objects may be mobile or fixed. At any given time, mobile objects may be moving or stationary. An object may located in any place, or be any thing. Examples of a place, or thing, in accordance with the invention include a restaurant, gas station, destination, airport, hospital, first aid station, hazardous location, vehicle repair shop, shopping mall, museum, park, residence, business, train station, bus station, post office, bank, police station, first station, department store, or storage bin.
Although FIG. 1 depicts a wireless network tower to represent wireless connectivity, any of various well known forms of networking technologies such as WI-FI, Wireless USB, cellular, Bluetooth, optical wireless, etc. can be used alone or in combination to provide the wired and/or wireless connectivity among the computing devices. Furthermore, any of various other location information sources can be used in place of or in combination with GPS to provide object location information. Alternative location information sources include cellular network based wide area location systems, infrared-based location systems, ultrasound-based location systems, video surveillance location systems, RF signal-based location systems such as WLAN-based location systems, ultra wideband location systems, and near field electromagnetic ranging location systems. GPS systems may be augmented using space based augmentation systems (SBAS) and/or local area augmentation systems (LAAS), radar-based information sources, and a data file. GPS systems can be outdoor GPS sources or indoor GPS sources. Alternatives to GPS also include GLONASS and Galileo. Generally, any form of location information system can be used that can provide a coordinate of an object allowing an icon indicating the object location to be depicted on a map.
In accordance with the present invention, the users of the computing devices each have user identification codes that can be associated with the computing devices in order to manage the conveyance of information to the computing devices based upon the identify of the user and information access privileges. Such user identification codes may be managed by a control station or may be established based on user unique user information. Such codes would typically include an identifier (e.g., a user account name or user number) and can be associated with one or more groups, and one or more information access privilege classifications, etc. For example, a given user may be included in a group indicating members of a family, a company, a club, or an association. Similarly, employees of a company may belong to one or more defined groups within the company (e.g., Management, Engineering, Accounting, etc.). Membership within a group may indicate the user can have access to confidential information such as company proprietary information or classified information such as the coordinates of military assets on a battlefield. Access to confidential information may also be based on an access privilege classification, such as a security clearance level. In accordance with the invention, a user's access privileges can change by entering or leaving a domain, for example, the premises of a shopping mall, a particular store within a shopping mall, a museum, a restaurant, an airport, etc. The use of domains in accordance with the present invention is described in greater detail below. Furthermore, user identification codes are typically associated with other user information such as the user name, title, address information, email address, phone numbers, etc. As such, user identification codes can be associated with computing devices and used to manage the conveyance of information among the computing devices. Association of a given user identification code with a given computing device may be via a user login process whereby a user enters a user account name and password. Certain computing devices (e.g., a PDA or smart phone) may allow a user identification code to be embedded or programmed into a computing device's memory such that any user of the computing device is considered to be the user owning the device.
In accordance with the present invention, access codes can be associated with information to manage the conveyance of the information to computing devices. Specifically, an object location information access code can be associated with object location information. A user-defined zone information access code can be associated with user-defined zone information and/or an object location event information access code can be associated with object location event information. These access codes can be used in various ways. In one arrangement, an access code specifies the individual users and/or groups of users having access to the information to which the access code is associated. Such an access code would typically include specific user identification codes and/or group codes. For example, by a user logging into a computing device, a given user identification code is associated with the computing device. The user identification code may also be associated with one or more groups having corresponding group identification codes. The user identification code and group identification code(s) are compared to those included in the access code whereby a match would indicate the user is authorized to receive the information. As such, the information is conveyed to those computing devices that are associated with the users having access to the information as specified by the access code.
Under another arrangement, an access code is assigned to information in the form of a user-defined access code (i.e., a password) that a given user must have knowledge of in order to be granted access to the information. With this approach, the user associating the access code with information defines the user-defined access code and then conveys the user-defined access code to other trusted users to which the user desires to have access to the information. Those trusted users must enter the access code into their computing devices in order to be granted access to the information.
Under still another arrangement, an access code specifies the individual users or groups having access to the information to which the access code is associated provided a given user knows the password. As such, the access code may specify one or more users and/or one or more groups that can enter the appropriate password in order to access the information. With this approach there are two conditions that must be met to gain access, being included on the access list and having knowledge of the password allowing access to information to be managed by changing the access list and/or changing the password.
Under yet another arrangement, an access code may include a clearance classification code such as Proprietary, Confidential, Secret, Top Secret, etc. These access codes may also specify individual users or groups and may be used with passwords. For example, employees of a company having at least a Secret clearance classification that know the password are provided access to certain information. Generally, many different variations of access code approaches can be used to practice the present invention.
FIG. 2 illustrates an exemplary map 200 retrieved via the Internet from a map service provider, such as YAHOO!, displayed on a PDA or other computing device. Any map available from any of various map providers via the Internet can be used in accordance with the present invention. Referring to FIG. 2, map 200 depicts an area including a portion of Huntsville, Ala. alongside part of Redstone Arsenal, Ala. Shown on the map is an icon 202 that indicates the location of a car equipped or somehow associated with a source of location information, such as GPS. The location information source determines the location of the car and conveys the object location information to the computing environment to which the computing device displaying the map is interfaced. Most location information sources include communications capabilities enabling them to convey object location information. Also shown in FIG. 2 are three user-defined zones 204, 206, and 208. Such user-defined zones can be defined using various graphical techniques such as selecting a point and dragging to another point causing a rectangular shaped zone (like 208) to be defined. Alternatively, a point can be selected indicating the center of a circular zone and a dragging action made to define a range of the circular zone (like 206). Various other common drawing techniques such as free form drawing can be used to define a zone not having a basic shape (like 204). Furthermore, non drawing techniques can be employed to define a user-defined zone including use of coordinates stored in a database. For example, the perimeter coordinates of a surveyed property that are stored in a database could be automatically used to define a user-defined zone in accordance with the invention.
In accordance with the present invention, one or more object location events can be defined relating a given user-defined zone to the location of a given object or objects. Occurrence of an object location event can result in generating relevant information (i.e., object location event information) or performing a function (i.e., object location event function). The object location event function can include generating a time/date stamp, send an email, place a call, sound an alarm, etc. Thus, an object location event in accordance with the invention can require the performance or control of a function based on an object location relative to a user-defined zone. An object location event can, for example, be defined to occur when a specific object or any one or more objects enter, leave, or are within a defined proximity of a user-defined zone. An object location event may also be defined to occur periodically as long as an object is outside a user-defined zone or inside a user-defined zone. Alternatively, an object location event may be defined to occur when the location of an object is determined to be within a given proximity of a user-defined zone, for example, within 500 feet of a user-defined zone corresponding to the grounds of a school, a shopping mall, a building, an army base, etc. An event may also be defined to occur when one or more objects or specific objects have entered or exited one or user-defined zones or specific user-defined zones.
Referring again to FIG. 2, an example scenario is described relating the location of the vehicle 202 to the three user-defined zones 204, 206, and 208. The exemplary scenario involves a mother desiring to track the location of a teenage daughter while she drives the vehicle 202. The vehicle 202 is equipped with a location information source (e.g., a GPS receiver) and is configured to transmit the location of the car at some data rate (e.g., transmits location every 5 seconds) when the car is powered on (i.e., car key is in the on position). The mother sets an object location information access code such that only the mother, specifically, a PDA or other computing device used by the mother, has authorized access to the object location information of the vehicle 202. The mother and daughter discuss her scheduled activity for the day and the corresponding travel among different places the daughter plans to go. According to the daughter's schedule, the daughter is to attend a softball game at a local ballpark, have lunch with friends at a local restaurant, and then go to a library on the campus of a local university to do research for a paper.
After discussing the daughter's plans for the day, the mother, using a PDA, retrieves a map and defines the three user-defined zones relating to three locations the daughter is supposed to be at during the day. Specifically, the mother creates the three user-defined zones 204, 206, 208 corresponding to the ballpark parking lot, restaurant, and university library, respectively, and defines object location events for each user-defined zone. For each of the three user-defined zones 204, 206, and 208, the mother defines an object location event where the mother will receive an email indicating the occurrence and time of the object location events, which correspond to when her daughter's car enters or leaves any of the three user-defined zones. The mother defines each of the three ‘leaving user-defined zone’ object location events such that when they occur they cause her PDA to make a sound (e.g., beep). The user-defined zones and defined object location events allow the mother to know when the daughter has safely arrived at the three places the daughter is to go that day. Furthermore, when the PDA beeps, the mother knows the daughter is in transit and can view the displayed map on the PDA to watch the icon indicating the location of the car as it travels between the user-defined zones or to home. The emails received based on the defined events provide a record of the daughter's entering and leaving the three user-defined zones and can be used to indicate characteristics of movement including the speed of a vehicle.
FIG. 3 illustrates a first embodiment of a method of the invention where object location event information is conveyed to computing devices based upon user identification codes. Referring to FIG. 3, a first embodiment of a method 300 of the invention consists of six steps 302-312. The first step 302 is to associate user identification codes with computing devices. The association can be an embedded association, for example, programming the user identification code in the memory of the computing device, or it can be accomplished via a log-in process at the computing devices using the user identification codes. The second step 304 is to associate a location information source with an object. Such association may involve equipping or attaching the object with or to the source of location information. A third step 306 is to define a zone. The zone can be defined by a user at any time. A fourth step 308 defines an object location event in terms of a relationship between information relating to the object location and user-defined zone. The fifth step 310 is to determine an occurrence of the object location event for example by detecting entry into, exit from or proximity with the user-defined zone. A sixth step 312 is to convey object location event information to computing devices based upon the user identification codes, for example, by sending an e-mail. The step 312 can also involve performing a function such as generating an alarm.
In accordance with one embodiment of the invention, any user can associate a source of location information with an object, define a user-defined zone, and define an object location event. As such, in relation to the example scenario of FIG. 2, steps 304-308 of method 300 are used by the user (i.e., a mother) to associate a GPS device with her daughter's vehicle and define three user-defined zones corresponding to the ballpark parking lot, restaurant, and university library. The user can also define object location events in terms of conditions that relate to entering into, leaving from or being in the proximity of the three user-defined zones. As stated above, upon the occurrence of the object location events, information can be conveyed to the mother's computing device via emails. Occurrence of event can also result in performance of certain functions, e.g., causing the mother's PDA to beep.
In addition to or alternatively to the event information, object location and/or zone information can be conveyed to the computing devices based on user identification codes, which comprise a first level of access control. The conveyance of any one or combination of the foregoing information, i.e., location, zone and/or event, can be to the same users or groups or different users or groups. A second, third, or additional layers of access control can also be applied to any one or combination of the location, zone and/or event information using corresponding access codes as further described below.
Referring to FIG. 4, another embodiment of a method 400 of the invention consists of six steps 302-312 of the first method 300 along with two additional steps 402, 404. As with the first method 300, the first two steps 302, 304 of method 400 associate user identification codes with computing devices and associate a source of location information with an object. With method 400, however, the added two steps 402, 404 associate an access code with the object location information and convey the object location information to computing devices based upon the access code of the object location information and user identification codes. The final four steps 306-312 of method 400 are the same as those of method 300, including conveying object location event information to computing devices based upon user identification codes.
Thus, FIG. 4 illustrates an embodiment where the object location information can be accessed by those users that have knowledge of the access code of the object location information. Under this embodiment, the user can give the access code to other trusted users for accessing the location information. Those having the knowledge of access code for the location information may or may not have access to other information such as the zone or event. Alternatively, users may be granted access to the object location information based on the access code without having knowledge of the access code.
In accordance with another exemplary embodiment, any one user can associate a location information source with an object, define a user-defined zone, and define an object location event. The user that associates a location information source with an object can also associate an access code with the object location information provided by the source. As such, in relation to the example scenario of FIG. 2, the mother can facilitate the conveyance of the object location information to another trusted user, who has knowledge of the access code, such as the father of the daughter. The mother may or may not allow conveyance of the zone or event information to the father. Alternatively, a user may be granted access to the object location information based on the object location information access code without having knowledge of the access code.
Referring to FIG. 5, a third embodiment of a method 500 of the invention consists of six steps 302-312 of the first method 300 along with two additional steps 502, 504. As with the first method 300, the first three steps 302, 304, 306 of method 500 are to associate user identification codes with computing devices, to associate a location information source with an object, and to define a user-defined zone. With method 500, however, the added two steps 502, 504 also associate an access code with the user-defined zone information. As a result, zone information can be conveyed to the computing devices based upon the access code for the user-defined zone information and user identification codes. The final three steps 308-312 of method 500 are the same as those of method 300, including conveying object location event information to computing devices based upon user identification codes. The event information under this embodiment however may or may be conveyed to those users with knowledge of the user-defined zone information access code. As such, in relation to the example scenario of FIG. 2, the method 500 enables the user (i.e., the mother) to associate a GPS device with her daughter's vehicle, to define three user-defined zones, and to define object location events associated with the three user-defined zones causing, upon the occurrence of the object location events, emails to the sent to the mother and her PDA to beep. By also associating user-defined zone information access codes with the three defined user-defined zones, the mother also enables the user-defined zone information to be conveyed to another user with knowledge of the access code, such as the father of the daughter.
In a further embodiment, steps 402 and 404 of method 400 could also be used with method 500, whereby the user (i.e., the mother) also associates an object location access code with the object location information such that both the mother and father receive the object location information allowing both parents to see the icon indicating the position of the daughter's car in relation to the three user-defined zones. In an alternative embodiment, any user having access to the user-defined zone information is enabled to define an object location event relating object location information to the user-defined zone information. Thus, under one arrangement, only the user who defines a user-defined zone can define an object location event relating to the user-defined zone, while under another arrangement, any user(s) having access to user-defined zone information can define an object location event relating to the corresponding user-defined zone.
FIG. 6 illustrates a fourth embodiment of a method of the invention where object location event information is conveyed to computing devices based upon an object location event information access code and user identification codes. Referring to FIG. 6, a fourth embodiment of a method 600 of the invention consists of five steps 302-310 of the first method 300 along with two additional steps 602, 604. As with the first method 300, the first four steps 302, 304, 306, 308 of method 600 associate user identification codes with computing devices, associate a location information source with an object, define a user-defined zone, and define an object location event in terms of a relationship between object location information and user-defined zone information. With method 600, however, step five 602 associates an object location event information access code with the object location event information relating to the object location event. After step six 310 determines the occurrence of an object location event, step seven 604 conveys object location event information to the computing devices based upon an access code for the object location event information and user identification codes. Thus, by using the object location event information access code, the mother could enable both parents to receive the object location event information corresponding to the object location events defined by the mother. In other words, both parents could receive emails indicating when the daughter entered or exited one of the three user-defined zones. In accordance with a preferred embodiment of the invention, the user that defines object location events can also associate access code for information that correspond to object location events. By also associating object location event information access codes with the defined object location events, the mother can enable the object location event information to be conveyed to another user with knowledge of such access code, such as the father of the daughter. Thus, with the method 600 in relation to the example of FIG. 2, the father would receive the object location event information but may or may not receive object location information or user-defined zone information.
In an alternative arrangement, steps 502 and 504 of method 500 could also be used with method 600 whereby a user (e.g., the mother) also associates an access code with the user-defined zone information for conveyance to another user with knowledge of such access code (e.g., the father). Under such an alternative arrangement, the object location event can be defined by any user(s) having access to the user-defined zone information or only the user that defined the user-defined zone. In either case, only the user that defines an object location event can associate an object location event information access code with object location event information corresponding to the object location event.
FIG. 7 illustrates a fifth embodiment of a method of the invention where object location information is conveyed to computing devices based upon an object location information access code and user identification codes, user-defined zone information is conveyed to computing devices based upon a user-defined zone information access code and user identification codes, and object location event information is conveyed to computing devices based upon an object location event information access code and user identification codes. Referring to FIG. 7, in the method 700, the steps of method 600 are again used with the addition of the two steps 402, 404 of method 400 and the two steps 502, 504 of method 500. With these additional four steps, when referring to the example of FIG. 2, the mother could associate object location information access codes and user-defined zone information access codes with object location information and user-defined zone information, respectively, in such a way as to allow both parents to receive emails, beeps, and view the movement of the daughter's car using their respective PDAs.
In accordance with the present invention, an administrator of an information-sharing environment maintains a database of user information for those having access to the information-sharing environment. Such a database can be maintained on a central or distributed control station that may be a company's computer server or on an individual's personal computer. Information maintained for a user typically includes a user account name and password and a user identification code, and may include a variety of information about the user including the user's name, address, phone number(s), email address(s), company name, title, birth date, etc. A user may be given access privileges to certain classes of information based on the user's position or role within a company or family, a Government security clearance, and/or for other reasons deemed appropriate for a given information-sharing environment.
An administrator can define one or more groups to which a given user can be associated. Groups may be defined in accordance with an organizational structure or hierarchy. For example, an administrator for an information-sharing environment corresponding to a company may define groups for the various organizations within the company, such as legal, accounting, shipping, etc., and for groups of users not based on organization, such as executive, management, administrative, exempt employees, non-exempt employees, etc. After a group has been defined, the administrator can associate individual users with one or more of the defined groups. Similarly, a parent administering an information-sharing environment might define groups such as parents, teenagers, children, drivers, and so forth. Information maintained for a group typically includes a group name and group identification code, and may include a variety of information about the group including the group's address, phone number, email address, website, point-of-contact, etc. As such, a user may be associated with one or more groups defined by an administrator of an information-sharing environment.
In accordance with the present invention, any user can define a group, for example, a group of friends, a study group, etc. Information for such user-defined groups may be maintained in a central database or may be maintained on an individual user's computer. As such, knowledge of the defined group my be available to other users of an information-sharing environment or may be maintained solely for an individual user's benefit.
In accordance with the present invention, one or more location information sources can be associated with an object to provide object location information consisting of a one or more coordinates corresponding to one or more determined locations of the object within an established coordinate system. In accordance with the invention, one or more coordinate systems can be established by an administrator to describe object locations within an information-sharing environment. The coordinate system may be established to accommodate the coordinate system used by any suitable map service. A typical coordinate system is known as the latitude, longitude, and height system. Alternative coordinate systems include the Earth Centered, Earth Fixed Cartesian (ECEF X-Y-Z) coordinate system, Universal Transverse Mercator (UTM) coordinate system, Military Grid Reference System (MGRS), World Geographic Reference System (GEOREF), Universal Polar Stereographic projection (UPS), national grid systems, state plane coordinates, public land rectangular surveys, metes and bounds, etc. A coordinate system may also be established corresponding to a domain, for example, an office building or a shopping mall. Additionally, one or more users may define a coordinate system for example, making the location of a user's home or business or a user's own location the (0,0) reference point within an X-Y coordinate system. As such, computing devices used in accordance with the invention may include means for translating between coordinate systems. Coordinate systems may be based upon the location information source(s) used. For example, a GPS receiver location information source may be placed at a location, for example the entry door of a building, and its GPS location in latitude and longitude and height used as a (0,0,0) reference point for a coordinate system used inside the building along with a second location information source such as UWB system better suited for indoor operation. As such, one or more coordinate systems established by an administrator or by a user of an information-sharing environment can be used to provide object location information.
In accordance with the present invention, when a user associates multiple location information sources with an object, the user can determine whether or how the object location information is used (e.g., combined). In particular, the user can determine how handoffs are to occur between location information sources such as switching among available GPS satellites based on received signal strength or switching between a GPS and UWB system when a user goes indoors, which might be based on loss or degradation of a GPS signal. Handoff among location information sources can be based upon object location information.
In accordance with the present invention, a user that associates an information location source with an object can determine how often object location information is updated. Under one arrangement, the user can determine the rate at which object location information is provided. Under another arrangement, object location information may be provided by the location information source at a certain rate which the user may select as the appropriate update rate or the user may select to update object location information less often or to only maintain (or use) the current object location information. Depending on whether object location information is being logged (i.e., stored) and/or conveyed to other users, decisions concerning the update rate typically involve a tradeoff of available storage capabilities (e.g., in memory, to a physical storage media, etc.) versus granularity of stored object location information and resulting accuracy of its display on a map. For example, object location information stored in a log file once every 5 seconds would allow a more accurate display of the movement of a vehicle than object location information stored once per minute, but the once per 5 second update rate requires twelve times the storage space compared to the space required to store object location information once per minute. When only maintaining the current object location information, the same memory/storage location can be repeatedly rewritten. The selected update rate also determines how often the object location information can be conveyed to users. The user can also determine whether a time stamp is associated with each update to indicate the actual time that an object was at a given location.
As previously described, the user that associates an information location source with an object can also associate an object location information access code with the object location information provided by the information source and can thereby manage the conveying of the object location information to one or more users. As generally described above, an object location information access code can specify individual users or groups allowed access to the object location information, may specify a password a user must know to receive access to the object location information, and/or may include a clearance classification code. As such, the object location information access code determines which user(s) are conveyed the object location information.
In accordance with the present invention, a user that associates an information location source with an object can determine whether to store object location information in a log file, which can be played back. The storage of object location information to a log file may be the result of the occurrence of a defined object location event. For example, a user could define two zones, a first object location event that starts logging object location information when an object exits the first zone, and a second object location event that ends the logging of object location information when the object enters the second zone, thereby allowing the movement of the object between the two zones to be reviewed at a later time. Alternatively, object location information may be provided by a simulation. For example, military officers could define battle plans based upon movement of personnel and equipment having location information sources into and out of defined zones and corresponding object location events. For training purposes, the movement of personnel and equipment could be produced by a simulation that inputs the object location information into the information sharing environment allowing the military officers to react by changing plans, defining new zones, new object location events, etc. Furthermore, object location information may by provided by emergency information sources, which might indicate the location of a fire, flood, earthquake, bridge out, etc. or by weather information sources, which might indicate the location of a severe thunderstorm, tornado, winter storm, hurricane, etc.
In accordance with the present invention, object location information and zone information is displayed on a map received from a map information source. In the example described previously in relation to FIG. 2, a map from an Internet map service was used that shows the streets of the city of Huntsville, Ala. at an appropriate scale for illustrating the movement of the daughter among three locations in the city. Under one scenario, a user could zoom in or out from a street scale to a world scale. Generally, any electronic map can be used in accordance with the present invention as appropriate to meet the informational requirements of the users involved. Furthermore, multiple maps can be used allowing different levels of scale as appropriate for the requirements of the user(s) involved in the sharing of information. A world map might be used, for example, that enables the locations of ships traveling to and from user-defined zones associated with various ports around the world to be displayed. A map of an amusement park might be used by a family visiting the park. A map may correspond to the inside of a building such as an office building or a shopping mall. A map may correspond to a battlefield. As such, map information corresponding to a given electronic map would be accessible to the computing devices of the information sharing environment receiving object location information, zone information, and/or object location event information that is to be displayed on the map. However, certain types of devices may be included in the information sharing environment that do not have the ability to receive or display a map but that can receive useful object location information, zone information, and/or object location event information, nonetheless. For example, an expecting woman might define a zone around her hospital and an object location event causing her Blackberry to call her sister's cellular telephone when her car enters the zone telling her that she has safely arrived at the hospital to deliver her baby.
Various commonly used map display management techniques can be employed in accordance with the present invention. For instance, an automatic zoom level selection scheme may be established where the zoom level defaults to the closest in level that can display all user-defined zones. An automatic centering approach might set the center of the map to correspond to the location of a given object such as the current location of a user or to the average location of multiple objects. Icons can be set to flash to indicate movement or non-movement of an object. Colors of lines or areas indicating a zone may change when an object has entered or exited the zone. Such map display management techniques may be controllable by an administrator and/or by individual users. In accordance with the present invention, a user can define a user-defined zone on a map that can then be used to define an object location event relating object location information to user-defined zone information. A user-defined zone can be defined graphically using various techniques such as selecting a point and then dragging to another point to define either a rectangular shaped zone or a circular zone, drawing a zone by freehand to create a zone having an oddly shaped boundary, etc. As such, a user-defined zone has a boundary that can be specified in accordance with an established coordinate system. Typically user-defined zone information maintained for a user-defined zone includes a zone identification code and its boundary coordinates and may include a zone name, a zone security level, a zone danger level, etc. Generally, a user that defines a zone can associate zone information with the zone that can be conveyed to other users.
As stated above, a user that defines a zone can also associate a zone information access code with the user-defined zone information corresponding to the user-defined zone and can thereby manage the conveying of the user-defined zone information to one or more users. As generally described above, a user-defined zone information access code can specify individual users or groups allowed access to the user-defined zone information, may specify a password a user must know to receive access to the user-defined zone information, and/or may include a clearance classification code. As such, the user-defined zone information access code determines which user(s) are conveyed the user-defined zone information.
In accordance with the present invention, a user can define an object location event relating object location information to user-defined zone information. An object location event may be something that is to occur whenever a specific object enters and/or leaves a specific user-defined zone or an object location event may be something that is to occur whenever an object is or is not within a specified proximity of a user-defined zone. Under one aspect the invention, the occurrence of an object location event results in the conveyance of object location event information which includes object location information and user-defined zone information. Typically object location event information maintained for a defined object location event includes an object location event identification code and may include an object location event name, a time stamp, an object location event security level, an object location event danger level, etc. Generally, a user that defines an object location event can associate object location event information with the object location event that can be conveyed to other users. Under another aspect of the invention, the occurrence of an object location event results in performance of a function, including the control of a device such as a camera, motion sensor, garage door, web cam, lighting device, etc.
In accordance with the present invention, a user that defines an object location event can also associate an object location event information access code with the object location event information corresponding to the object location event and can thereby manage the conveying of the object location event information to one or more users. As generally described above, an object location event information access code can specify individual users or groups allowed access to the object location event information, may specify a password a user must know to receive access to the object location event information, and/or may include a clearance classification code. As such, the object location event information access code determines which user(s) are conveyed the object location event information.
An important distinction exists between the user-defined zones and object location events of the present invention, and predefined zones (or domains) and predefined object location events that have previously been used in location-aware applications. Predefined zones are used to provide location-aware functionality in a useful but predetermined manner where users of computing devices within the information sharing environment do not define the domain(s) or the events that occur as objects enter or leave the domains. A predefined zone may be a house, a room, a business perimeter, or a predefined area within a much larger area. One or more events involving the location of objects relative to the predefined zone is predetermined. The user of the computing devices in prior art shared information environment participates but does not otherwise control or manage the conveyance of information, which has all been predetermined. For instance, an alarm condition may be set when a person carries an object having a non-deactivated RFID tag into a predefined zone about an exit to a store whereby the alarm condition causes a recorded warning message to play on a loudspeaker. A motion detector may detect a person walking through a predefined area near a building and turn on a light. Kiosks within a zoo may interact with individuals carrying tracking devices that enter predefined areas about the kiosks. A super mall, itself a domain, may be subdivided into its tenant stores or even departments within stores, each a separate domain, and customers carrying tracking devices may be offered specials as they move about the mall.
The user-defined zones of the present invention can be defined by any user of the information sharing environment. User-defined zones can be used in conjunction with domains. For example, three teenage girls, each carrying a smart phone with a location information source, go to a mall where each of the three girls is a member of the mall's interactive shopping club. As they enter the mall, their smart phones automatically interface with the information sharing environment available within the mall. Their phones load the mall's map and begin to indicate their locations within the mall. The girls decide to split up and meet later at their favorite hangout spot within the mall, which is a sitting area near an escalator. One of them defines a user-defined zone on the mall's map corresponding to the sitting area and an object location event whereby the smart phones are sent an email and caused to beep when any of the girls enters the sitting area. They then split up to do some shopping. As they walk about the mall, they walk near kiosks that recognize their presence within predefined areas within the mall (via the smart phones) and the kiosks provide personalized specials such as, “Cindy. Your favorite pre-washed jeans are 30% off!” When one of the girls finishes shopping and goes to the sitting area, the other two girls are automatically emailed and their phones beep so that they know to go meet their friend at the sitting area. With this example, the user-defined zone (i.e., the sitting area) and the object location event (i.e., the emails/beeps) were not predefined as were the personalized specials provided by the kiosks as the girls walked into predefined zones.
Thus, a key distinction between the user-defined zones of the present invention and predefined zones of previous location-aware applications is that the occurrence of object location events and the management of the conveyance of object location event information is determined by the user of the computing device and not by someone else. Take for example, a traveling salesman who wants to make his day more efficient. In accordance with the present invention, prior to venturing out on the road, the salesman determines the nine sales calls he intends to make for the day and defines a user-defined zone about each sales call location. For each user-defined zone he defines object location events related to the location of his car and each zone. The time he enters or leaves each zone is to be recorded and, as he enters each zone, his PDA is to automatically receive the latest, up-to-the-minute customer information maintained by his sales office. For all but his last sales call he defines an object location event for when he leaves the corresponding zone to email his next sales call to let them know that he's en route to their business. The email sent when leaving his fourth call specifically mentions he'll be arriving in about one hour that is to include a lunch break. He also defines an object location event to email his wife letting her know the time when he leaves the zone corresponding to his last sales call thus allowing her to better plan her evening.
In accordance with the present invention, information packages can be associated with object location information, user-defined zone information, and/or object location event information where an information package may include a picture, movie, audio file, document, and/or data file. The information packages may include sensor information received from one or more sensors including those sensors that measure a characteristic of a physical environment, such as temperature, humidity, radioactivity, etc. and/or sensors that measure physical characteristics, such as heart rate, breathing rate, etc. At least one time stamp may be associated with an information package indicating the timing of the information included in the package, for example, the times when pictures were taken or sensor measurements were made. Under one arrangement, any user can associate an information package with object location information, user-defined zone information, and/or object location event information.
In accordance with the present invention, a user that associates an information package with object location information, user-defined zone information, and/or object location event information can also associate an information package access code with the information package and can thereby manage the conveying of the information package to one or more users. As generally described above, an information package access code can specify individual users or groups allowed access to the information package, may specify a password a user must know to receive access to the information package, and/or may include a clearance classification code. As such, the information package access code determines which user(s) are conveyed the information package.
Generally, the present invention enables any user of a multiple user computing environment to define object location events relating object location information to user-defined zones and to manage to conveyance of object location event information based on user identification codes. By also using access codes, multiple users can collaboratively define and manage events and manage the conveyance of corresponding object location information, user-defined zone information, and/or object location event information among computing devices. Moreover, the present invention provides a system and method for generating user-defined location aware applications. Described below are four examples of such user-defined location aware applications that are supported by the present invention.
Parole Officer Support
Parolees have associated with them a location information source. A parole officer can, on a case-by-case basis, identify good locations and bad locations for parolees and define object location events for entering such good and bad locations causing him to be notified of a given parolee visiting the locations.
Pet Tracking
A pet has associated with it a location information source. The pet owner defines zones that the pet is supposed to stay in (e.g., a yard) and may define zones in which the pet is not allowed (e.g., a garden). An object location event for leaving the yard sends an email and phones the pet owner. An object location event for entering the garden might cause a siren to go off to scare the pet.
Child Tracking
A child has associated with it a location information source. A parent identifies zones in the neighborhood where the child is allowed to play and explicitly not allowed to play. Object location events are defined where the parent is emailed or otherwise notified as the child moves about the neighborhood.
Hiking
Several hikers have associated with them location information sources. The hiking trail as indicated on a map includes user-defined zones corresponding to key locations along the route. Object location events are defined such that each hiker receives an email on their smart phone whenever another hiker enters or exits a zone.
The present invention is implemented by a Location and Tracking software that executes on PDAs, telephones, and personal computers. The Location and Tracking software is used for tracking the location of a user whereby user location information is conveyed to contacts based upon the location of the user relative to one or more zones defined by the user. As such, user location information described below corresponds to object location information generally described above.
The Location and Tracking software is typically used in the LOCATION mode. This means that a GPS connection is active and a polling rate is set to periodically send location packets indicating the location of the user to a central database. If a user sets TRACKING to OFF, location packets only update the current location record. If TRACKING is set to ON, location packet are saved in individual records that can be displayed as a ‘Mapped Track’ on a user's PDA, Phone, or PC.
Current and prior user location information for one or more users can be conveyed to one or more users having access privileges to the user location information for display on the one or more users' computing device(s). The current position of a given user is indicated by a black square. As such, as the user moves, black squares indicate the current and past location of the user thereby showing the movement or path of the user.
Zones comprise geographic boundaries. If the GPS receiver indicates a user's location passes over a zone boundary, an exit or entry alert is issued. A notification is sent to one or more individuals as defined when the zone is created. Different types of zones can be created with each zone type causing different types of information to be conveyed when a user's location enters, exits, and/or is within a zone. Codes associated with the zones determine which users receive location information. As such, the codes associated with the zones correspond to the zone information access codes and object location event information access codes described generally above. Specifically, by sharing the Phone number and Code other users can ‘load’ the zone into their device and it will respond with alerts to the defined addressees thereby enabling group tracking and location management.
FIG. 8 illustrates an exemplary PDA Application Launch Screen 800 used to begin execution of the Location and Tracking software. Referring to FIG. 8, a PDA application launch screen 800 typically includes various icons corresponding to programs available for execution such as the Location and Tracking software icon 802. When a user selects the Location and Tracking software icon 802, the Location and Tracking software is executed.
FIG. 9 illustrates an exemplary Main Screen 900 of the Location and Tracking software that appears when the software is launched. The Main Screen 900 is the primary screen from which additional screens of the software are accessed via the buttons labeled Maps, Contacts, GPS, Config, Groups, Camera, and Buttons. Main Screen 900 is also the screen to which the user of the software is returned when closing screens associated with the buttons. The Exit button ends execution of the software and returns the user to the Application Launch Screen 800.
FIG. 10 illustrates an exemplary Configuration Screen 1000 of the Location and Tracking software used to manage information corresponding to the user of the PDA (or other computing device). The user of the program accesses the Configuration Screen 1000 by selecting the Config button of the Main Screen 900. Configuration Screen 1000 provides fields for entering a user data access code, user phone number, log file name, and a user domain or IP address. The screen is also used to toggle logging on and off.
FIG. 11 illustrates an exemplary GPS Screen 1100 of the Location and Tracking software used to manage a GPS receiver that is associated with a user's PDA (or other computing device) via a Bluetooth connection. GPS Screen 1100 includes fields for displaying and controlling GPS device settings, a button for turning the Bluetooth connection on and off, a button for turning the GPS device on and off, and buttons for controlling whether real-time or simulated GPS data is conveyed. GPS Screen 1100 also includes Setup button 1102 used to launch the Tracking Setup Screen.
FIG. 12a illustrates an exemplary Tracking Setup Screen 1200 of the Location and Tracking software used to control the rate at which GPS information is polled, to examine GPS information records, and to turn on or off the TRACKING mode. Tracking Setup Screen 1200 includes Files button 1202 that is used to launch Log File Selection Screen 1204 that is used to select a log file. A log file can be written to and then later read, as controlled by the Use button, to cause a play back of GPS information.
FIG. 12b illustrates an exemplary Log File Selection Screen 1204 of the Location and Tracking software used to select a log file for storing GPS information. Log File Selection Screen 1024 provides a typical Open dialog window allowing a user to open a log file stored at any storage location to which the user (and the user's device) has access.
FIG. 13a illustrates an exemplary Map Screen 1300 of the Location and Tracking software used to display a map received from a map server. The Map Screen 1300 is used to request and locate a map using the current latitude and longitude of the user, to turn the TRACKING mode on or off, to display/edit data location records, to create zones, and to size the map. These various functions are controlled via a row of buttons 1302 at the bottom of Map Screen 1300. The row of buttons 1302 is also displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310.
FIG. 13b illustrates an exemplary Data Screen 1304 of the Location and Tracking software used to manage conveyance of tracking and zone information to specific users based on access codes. It is accessed by selecting the Data button included in the row of buttons 1302 displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310. Specifically, Data Screen 1304 is used to set access codes and to associate email addresses and phone alerts with zones.
FIG. 13c illustrates an exemplary Zone Screen 1306 of the Location and Tracking software used to define user-defined zones. It is accessed by selecting the Zone button included in the row of buttons 1302 displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310. The Zone Screen is used to define a zone and/or to load a zone defined by another user. A user can use the Zone Screen to control whether zone information is shared (i.e., made public) to other users and to control whether the TRACKING mode is on or off.
FIG. 13d illustrates an exemplary Size Screen 1308 of the Location and Tracking software used to manage the size and other characteristics of a displayed map. It is accessed by selecting the Size button included in the row of buttons 1302 displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310. The Size Screen 1308 is used to set the scale (or zoom) of the map, to turn on or off the display of zone boundaries, and to control auto centering of maps.
FIG. 13e illustrates an exemplary About Screen 1310 of the Location and Tracking software used to provide a notice concerning Tracking Privacy Issues, software version information, and copyright information. It is accessed by selecting the About button included in the row of buttons 1302 displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310.
The row of buttons 1302 displayed on the bottom of Data Screen 1304, Zone Screen 1306, Size Screen 1308, and About Screen 1310 also includes a Close button that when selected returns the user to the Main Screen 900.
FIG. 14 illustrates an exemplary Group Screen 1400 of the Location and Tracking software used to manage information corresponding to groups of contacts. The Group Screen 1400 is used to add or remove users from a stored ‘buddy list’ containing the user name, phone number and code for each ‘buddy’. If a public zone is available it can be selected and loaded into the user's device. Users share access codes in order to share zones. As such, a user tells another user the access code needed to load a zone.
FIG. 15 illustrates an exemplary Contact Screen 1500 of the Location and Tracking software used to manage information corresponding to contacts (i.e., other users). The Contact Screen 1500 allows the user to populate information corresponding to contacts such as name and address information.
FIG. 16 illustrates an exemplary Camera Screen 1600 of the Location and Tracking software used to manage pictures associated with user location information. The Camera Screen 1600 is used to associate pictures and text with a user and to convey the picture information to other users. The pictures correspond to information packages described generally above, which could also include other forms of information. The Camera Screen 1600 could alternatively be a Device Screen that controlled multiple devices including cameras, motion sensors, garage doors, web cams, etc. and corresponding information as described previously. As described previously, picture or other information packages can be associated with zone information or event information.
FIG. 17 illustrates an exemplary Big Buttons Screen 1700 of the Location and Tracking software used to provide easy access to key application commands while walking or driving.
FIG. 18 illustrates an exemplary Map Viewer Web Page 1800 used for displaying maps and other information conveyed by the Location and Tracking software.
FIG. 19 illustrates an exemplary Contact Viewer Web Page 1900 used for displaying contact information conveyed by the Location and Tracking software.
FIG. 20 illustrates an exemplary web page-based display of a map 2000 overlaid with GPS tracking and zone information conveyed by the Location and Tracking software. In FIG. 20, balloon icons labeled alphabetically that indicate logged locations of a user for which information is available. Also shown are two zones represented by rectangles. When a given balloon is selected, information is displayed, for example, as shown in the information box in the center of the map corresponding to the balloon labeled F. Similarly, information is displayed corresponding to either of the zones when either is selected.
FIG. 21 illustrates an exemplary web page for creation of zones 2100 that can be used with the Location and Tracking software. As shown in FIG. 21, a zone is created by selecting a first point on a map indicated by a first balloon and dragging to another point on a map indicated by a second balloon where the two points correspond to opposite corners of a rectangle representing the user-defined zone boundary.
FIG. 22 illustrates an exemplary map displayed on a web page 2200 depicting logging of user location information while a user is within a zone and logging of user location information when a user enters or leaves a zone. As depicted in FIG. 22, one type of zone 2202 provides user location information periodically while a user is within the zone. Another type of zone 2204 only provides user location information when the user enters or exits the zone.
FIG. 23 illustrates an exemplary map displayed on a web page 2300 depicting a picture associated with a location of a user. As shown in FIG. 23, a balloon labeled F corresponds to a location of a user. An information package consisting of a picture that has been associated with the user's location is available as part of the information displayed when the balloon is selected. In the information window is a thumbnail of the picture which when selected displays the fully enlarged picture.
The Location and Tracking software described herein was provided as an example of the types of applications that are enabled by the present invention. While particular embodiments and several exemplary applications (or implementations) of the invention have been described, it will be understood, however, that the invention is not limited thereto, since modifications may be made by those skilled in the art, particularly in light of the foregoing teachings. It is, therefore, contemplated by the appended claims to cover any such modifications that incorporate those features or those improvements which embody the spirit and scope of the present invention.

## Claims

1. A database management system used in a mobile device tracking service that tracks locations of a plurality of mobile devices identified by corresponding device identification codes (DID codes) in one or more databases, said database management system accessing the one or more databases by one or more centralized or distributed servers controlled under a first level of administrative privilege of an administrator of the mobile device tracking service, the mobile device tracking service being provided to a plurality of users who are identified by corresponding user identification codes (UID codes) who track the plurality of mobile devices, said plurality of users including users who are allowed to receive certain alerts relating to the locations of the tracked mobile devices and users who are not allowed to receive the certain alerts, the one or more servers being configured to:
check the first level of administrative privilege of the administrator before the administrator performs a first set of administrative functions that include:
specifying a plurality of groups of users of the plurality of users who track the plurality of mobile devices, including a group identified by a group identification code (GID code), said group being associated with a first mobile device identified by a first DID code and a second mobile device identified by a different second DID code and one or more users identified by corresponding UID codes in the group identified by the GID code, said UID codes being different from each other and the first and second DID codes;
controlling user membership in the groups;
specifying an authorized user ID code (AUID code) that identifies an authorized user other than the administrator in the group identified by the GID code;
giving a second level of administrative privilege to the authorized user to perform a second set of administrative functions, wherein the administrator having the first level of administrative privilege does not perform the second set of administrative functions performed under the second level of administrative privilege given to the authorized user;

check a first level of access control based on the AUID code before the administrator gives the second level administrative privilege to the authorized user; and
check the second level of administrative privilege of the authorized user before the authorized user performs the second set of administrative functions that includes:
i. setting an event for the group that occurs when the first mobile device or the second mobile device crosses a zone comprising a boundary location on a reference coordinate system that is defined after the group is specified; and

ii. specifying an information access code comprising an access list that identifies by corresponding UID codes which users of the plurality of the users are allowed to receive 1) location information from a first location information source associated with the first DID code or a second location information source associated with the second DID code over a wireless network and 2) event information other than location information conveyed when the database management system determines that the event has occurred, wherein the location of the zone is independent of locations of the plurality of mobile devices, and wherein the access list comprises one or more UID codes that identify one or more users as recipients who are allowed to receive an alert when the event occurs such that any user who is not identified on the access list is not a recipient of the alert when the event occurs, wherein the alert is only conveyed to the one or more recipients of the alert identified on the access list when the event occurs;
receive the location information of the first and second mobile devices identified by the first DID code and the second DID code;
determine whether to send the alert based on a comparison of the location of the zone with the location information of the first or second mobile devices in the group;
check a second level of access control based on one or more UID codes in the access list to cause the alert to be sent to the one or more recipients identified on the access list such that only identified users of the plurality of users can receive the alert when the event occurs, and
convey the location information of the first or second mobile devices to one or more recipients identified on the access list such that only identified users of the plurality of users can receive the location information.

2. The system of claim 1, wherein the second set of administrative functions further include:
specifying a sub-group of users in the group identified by the GID code;
identifying the sub-group with a sub-group ID code (SGID code) on the access list;
specifying a second user ID code for a second user in the sub-group.

3. The system of claim 2, wherein the second set of administrative functions further include giving a third level of administrative privilege to the second user to identify one or more users in the sub-group on the access list as one or more recipients of the alert in the sub-group.

4. The system of claim 3, wherein the one or more servers are further configured to: a) check the second level of administrative privilege of the authorized user before the authorized user gives the third level of administrative privilege to the second user; and b) check a third level of access control based on the UID code of the second user to perform a set of functions that are assigned to the second user based on the authorized user's role in an organization or the authorized user's security-clearance.

5. The system of claim 4, wherein the one or more servers are further configured to check the third level of administrative privilege of the second user before performing the set of functions that are assigned to the second user based on the second user's role in the organization or the second user's security-clearance.

6. The system of claim 3, wherein the one or more servers are further configured to check the third level of administrative privilege of the second user before enabling the second user to specify a second access list comprising UID codes identifying one or more recipients in the sub-group who are allowed to receive a second alert different from the alert; and check a fourth level of access control based on the second access list before causing the second alert to be sent only to the one or more recipients in the sub-group.

7. The system of claim 1, wherein the one or more servers are further configured to determine the occurrence of a second event that is different from the event, said second event being based on a condition determined by the proximity of the first and second mobile devices to each other or to a mobile object identified by a mobile object ID code (OID code) different from the DID codes, and wherein the occurrence of the second event is determined based on the OID code and the first or second DID codes, wherein a mobile object and a mobile device are of different kinds.

8. The system of claim 7, wherein the one or more servers are further configured to determine occurrence of the second event based on location information received from one or more wireless proximity location information sources used to provide location information of the mobile object identified by the OID code.

9. The system of claim 8, wherein the proximity location source provides proximity locations of the mobile object to the first mobile device or to the second mobile device or to another identified fixed or mobile object.

10. The system of claim 9, wherein the proximity device is an NFC device, a Bluetooth device, an RFID device or a sensor device that measures temperature, humidity, heart rate, speed or motion.

11. A method for tracking locations of a plurality of mobile objects associated with one or more wireless location information sources that provide mobile object locations which allows a plurality of users of a tracking service provider having an administrator with a first level of administrative privilege of controlling user membership in groups to track the plurality of mobile objects, the mobile device tracking service being provided by the administrator to the plurality of users in the groups who track the plurality of mobile devices, the method being executed in a database management system that interfaces with one or more databases that identify the plurality of mobile objects by corresponding object identification codes (OID codes) and the plurality of users by corresponding user identification codes (UID codes) to determine which users are allowed to be recipients of certain notification information when events based on the mobile object locations occur, wherein one or more users are not allowed to be recipients of the certain notification information when such events occur, said method comprising:
a. checking the first level of administrative privilege of the administrator before controlling user membership in one or more groups specified by the administrator, said groups including a group identified by a group ID code (GID code) of users of the plurality of users who are identified by corresponding UID codes, wherein the group includes 1) an authorized user other than the administrator identified by an authorized user ID code (AUID code) having a second level of administrative privilege given by the administrator to authorized user to control conveyance of notifications in the group, wherein the administrator having the first level of administrative privilege does not exercise the second level of administrative privilege given to the authorized user, and 2) a second user identified by a second user ID code (SUID code) different from the AUID code and 3) a mobile object identified by an OID code different from the AUID code and SUID code; and
b. checking the second level of administrative privilege of the authorized user based on the AUID code before providing one or more users interfaces to the authorized user to specify:
i. an event condition based on the mobile object locations that causes a group event to occur; and
ii. an information access code comprising an access list that identifies one or more users of the plurality of users by corresponding UID codes including the SUID code of the second user who are recipients of a notification information when the group event occurs such that any user of the plurality of users who is not identified on the access list is not a recipient of the notification information when the group event occurs; and

c. checking a first level of access control based on the UID codes to determine which users of the plurality of users can receive the notification information when the group event occurs; and
d. checking a second level of access control based on the information access code before sending the notification information when the database management system determines that the group event has occurred; the notification information being sent to the one or more recipients identified on the access list including the second user to protect user privacy such that only identified users of the plurality of users on the access list can receive the notification information.

12. The method of claim 11 further comprising the step of receiving the mobile object locations before determining whether the group event has occurred.

13. The method of claim 11, wherein any user of the plurality of users without knowledge of the information access code on the access list can receive the notification information if identified on the access list.

14. The method of claim 13 further comprising the steps of allowing the plurality of users to log into a tracking service network operated by the tracking service provider based on corresponding UID codes and user login passwords before providing the one or more user interfaces based on the second level of administrative privilege, and allowing the notification information to be sent to a recipient identified on the access list who has entered the corresponding UID code and the user login password to log into the tracking service network.

15. The method of claim 14 further including the steps of:
a. checking the first level of access control based on 1) the AUID code and the authorized user login password before providing one or more user interfaces that enables the authorized user identified by the AUID code to use the second level of administrative privilege to control user membership as a second administrator of a sub-group of users within the group;
b. checking the second level of access control based on the SUID code and the second user's login password before giving
c. sending a third level of administrative privilege to the second authorized user to control conveyance of notifications in the sub-group of users, wherein the third level of administrative privilege of the second authorized user is used to specify a second information access code different from the first information access code comprising a second access list of recipients of notifications.

16. The method of claim 14, wherein the first level of access control is based on a UID code and a user login password and an additional passcode conveyed to the user that must be entered before providing the one or more user interfaces.

17. The method of claim 11 further including the step of checking the first level of administrative privilege before configuring one or more centralized or distributed servers of the tracking service provider to interface with the database management system to associate one or more OID codes with one or more location information sources of mobile objects in the group.

18. The method of claim 11, wherein the event condition is based on the mobile object's locations relative to or within a zone comprising a location on a referenced coordinate.

19. The method of claim 18 further comprising the step of determining the mobile object's locations before determining whether the group event occurred and receiving an information package including an image, video, or multi-media file that is incorporated into the information package when the mobile object is within the zone and accessing the image, video, or multi-media file based on the information access code.

20. The method of claim 11, wherein the mobile objects comprise mobile sensor devices having one or more wireless sensor information sources that provide a measure of temperature, humidity, heart rate, motion or speed, wherein the event condition is based the location-of the measure.

21. The method of claim 20 further comprising the step of receiving the measure before determining whether the group event has occurred and including the measure in the notification information when the group event occurs.

22. The method of claim 20, wherein the mobile sensor devices operate in a sensor network of the one or more wireless sensor information sources, and wherein the event condition is further based on sensor information received from the sensor network operating independent of one or more central or distributed servers of the tracking service provider.

23. The method of claim 22 further including the step of checking the first level of administrative privilege before configuring one or more centralized or distributed servers to interface with the sensor network based on a sensor network administrative privilege that provides sensor services to the plurality of users, wherein the sensor network administrative privilege is independent of the first level of administrative privilege.

24. The method of claim 11, wherein the mobile objects comprise proximity devices associated with one or more wireless proximity location information sources, and wherein the event condition is based on proximities of a mobile object to another fixed or mobile object comprising a second object identified different from the mobile object.

25. The method of claim 24 further comprising the step of receiving a proximity location information from a proximity device before determining whether the group event has occurred.

26. The method of claim 24, wherein the proximity device comprises a Bluetooth or RFID code or NFC device.

27. The method of claim 25, wherein the proximity devices operate in a proximity network of the one or more wireless proximity location information sources, and wherein the event condition is based on proximity locations received from the proximity network operating independent of one or more central or distributed servers of the tracking service provider.

28. The method of claim 27 further including the step of checking the first level of administrative privilege before configuring the one or more centralized or distributed servers to interface with the proximity network based on a proximity network administrative privilege that provides proximity services to the plurality of the users, wherein the proximity network administrative privilege is independent of the first level of administrative privilege.

29. The method of claim 11 further comprising the steps of: 1) specifying a second event condition based on measures of temperature, humidity, heart rate, motion or speed by an identified fixed or mobile wireless sensor device other than the mobile object, wherein the mobile object and the fixed or mobile wireless sensor device are not the same kind, and wherein satisfaction of the second event condition causes a second event to occur and 2) checking the second level of access control based on the information access code before sending a notification information when the database management system determines based on the second event condition that the second event has occurred.

30. The method of claim 29 further comprising the step of receiving a measure before determining whether the second event has occurred and including the measure in the notification information when the group event occurs.

31. The method of claim 11 further comprising the steps of specifying: 1) a second event condition based on the proximity of the mobile object to another fixed or mobile object comprising at least one second object, wherein satisfaction of the second event condition causes a second event to occur and 2) checking the second level of access control based on the information access code before sending a notification information when the database management system determines based on the second event condition that the second event has occurred.

32. The method of claim 31, wherein the second object is a proximity device associated with one or more wireless proximity location information sources, the method further comprising the step of receiving a proximity location from the proximity device before determining whether the second event has occurred.

33. The method of claim 11 further comprising the steps of specifying : 1) a second event condition that is based on the mobile object's locations relative to a zone comprising a location in a reference coordinate system , wherein satisfaction of the second event condition causes a second event to occur and 2) checking the second level of access control based on the information access code before sending a notification information when the database management system determines based on the second event condition that the second event has occurred.

34. The method of claim 33 further comprising the step of receiving the mobile object's locations before determining whether the second event has occurred.

35. The method of claim 32, wherein a mobile objects comprises a GPS device, wherein the group event condition is based on the GPS device's location and the second event condition is based on the proximity of the GPS device to the proximity device.

36. The method of claim 35, wherein the proximity device comprises a Bluetooth or RFID code or NFC device.

37. The method of claim 32, wherein the mobile objects are identified by corresponding OIDs codes and second objects are identified by second OID codes (SOID codes), wherein an OID code identifies a vehicle and an SOID code identifies a proximity device associated with a driver identification code (driver ID code), wherein the event condition is based on the vehicle's location relative to a boundary and the second event is based on the proximity of the diver identified by the driver ID code to the vehicle identified by the OID code.

38. The method of claim 37, wherein the proximity device comprises an NFC device.

39. The method of claim 31, wherein the mobile object is associated with one or more wireless location information sources that provide the mobile object locations and one or more wireless proximity location information sources that provide the proximity locations of the mobile object to the second object, and wherein the group event condition is based on the mobile object locations and the second event condition is based on the proximity locations.

40. The method of claim 39, wherein a proximity location information source comprises a proximity device.

41. The method of claim 40, wherein the proximity device comprises a Bluetooth or RFID code or NFC device.

42. The method of claim 11, wherein the group event occurs based on a sequence of events specified by the authorized user, wherein the event condition is based on the mobile object locations and the sequence of events that cause the group event to occur.

43. The method of claim 11, wherein the occurrence of the group event is based on the event condition being determined by a remote computing device that provides event determination information to one or more computing devices of the database management system to determine whether the group event occurred.

44. A method that uses a wireless system having an administrator for tracking locations of a plurality of mobile objects received from one or more location information sources over a wireless location network that provides the mobile object locations to a database management system that determines which users of a plurality of users of a tracking service provider are privileged to receive notification information when events that are based on the locations of the mobile objects occur, wherein one or more users are not privileged to receive such notification information when the events occur, the method being executed in the database management system interfacing with the wireless location network and a database that identifies the plurality of the users by corresponding user identification codes and the plurality of the mobile objects by corresponding object identification codes, said method comprising the steps of:
a. configuring one or more centralized or distributed servers of the tracking service provider to interface with the database management system to identify groups of users of the plurality users who the track mobile objects under at least three different levels of access control, including:
i. a first level of access control of the administrator of the tracking service provider identified by an administrator ID code (AID code), the administrator having a first level of administrative privilege to control user membership in the group by specifying authorized users;
ii. a second level of access control of an authorized user other than the administrator identified by an authorized user ID code (AUID code), the authorized user having a second level of administrative privilege given by the administrator to control conveyance of a notification to the group, wherein the administrator having the first level of administrative privilege does not exercise the second level of administrative privilege given to the authorized user, and
iii. a third level of access control of a second user identified by a second user ID code (SUID code) specified by the authorized user identified by the AUID code before the second user receives the notification information;

b. checking the first level of access control based on the AID code before identifying a group by a group ID code (GID code) that includes the authorized user, the second user and a mobile object identified by a mobile object identification code (OID code); and
c. checking the second level of access control based on the AUID code before allowing the authorized user to use the second level of administrative privilege to specify 1) an event condition based on the mobile object's locations that causes a group event to occur and 2) an information access code comprising an access list that identifies one or more users who are privileged to be recipients of a notification information when the group event occurs such that any user who is not identified on the access list is not a recipient of the notification information when the group event occurs and 3) identify the SUID code on the access list; and
d. determining the mobile object's locations based on the OID code;
e. determining whether the group event occurred based on the event condition and the mobile object's locations; and
f. checking the third level of access control based on the SUID code before sending the notification information to the second user when the group event occurs such that only identified users of the plurality of users on the access list can receive the notification.

45. The method of claim 44, wherein the second level of access control is used by the authorized user to assign a role in an organization or a security-clearance to the second user, wherein the one or more central or distributed servers are configured to interface with the database management system such that the second user is given privilege to perform one or more administrative functions that are based on the assigned role or the security-clearance.

46. The method of claim 44, wherein the second level of access control is based on the AUID code and an additional passcode conveyed to the authorized that must be entered before allowing the authorized user to perform the second set of administrative functions.

47. The method of claim 46, wherein the third level of access control is based on the SUID code and an additional passcode conveyed to the second user that must be entered before allowing the second user to receive the notification information.

48. The method of claim 44 further comprising the step of configuring one or more centralized or distributed servers to interface with the database management system based on the first level of administrative privilege for associating a location information source with the OID.

49. The method of claim 44, wherein any user without knowledge of the information access code can receive the notification information if identified on the access list.