GeoNexus proximity detector network

Information

  • Patent Grant
  • 9167553
  • Patent Number
    9,167,553
  • Date Filed
    Wednesday, November 20, 2013
    10 years ago
  • Date Issued
    Tuesday, October 20, 2015
    8 years ago
Abstract
A GeoNexus proximity network provides quick determination of proximity of a large group of associated mobile devices (e.g., ‘friends’, all devices associated with those who ‘like’ a given posting, etc.) To respond to a given proximity request, a list of identities is obtained for the group of associated mobile devices for which proximity is to be determined. A bucket index is determined of a place to which proximity is to be determined for each of the plurality of associated mobile devices. A target geonexus node associated with the determined bucket index is queried, which in turn queries geonexus nodes adjacent thereto, to quickly determine which of the group of mobile devices are proximate, without the need to individually query for location of each mobile device in the group.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


This invention relates generally to network location services, and more particularly to a network service that maintains information sufficient to provide a near-real-time determination of proximity of affiliated mobile devices.


2. Background of Related Art


Today, every mobile cellular (e.g. CDMA, GSM, LTE, etc.) device is being located all of the time. As a mobile device moves, a cellular network does a signal hand-off between the mobile device's current controlling cell site sector and the mobile device's new cell site sector (the cell site sector into which the mobile device is moving). Signal handoff enables continuous and unbroken signaling to be maintained for a mobile device. Every cell site sector has an associated location. Hence, by inference, a mobile device's general location is known by a respective cell site.


As cellular infrastructure technology becomes deployed in greater density patterns (picocells, a.k.a., “femtocells”), a general location inferred from a cell site with which a mobile device is primarily communicating becomes higher fidelity.


Many cellular carriers are currently in the process of adding location probes to all deployed macro-cell sites. Location probes will enable carriers to maintain much more accurate location information for mobile devices located within range of these macro-cell sites.


SUMMARY

A method and apparatus for determining proximity of a plurality of associated mobile devices comprises, receiving a proximity request relating to a plurality of associated mobile devices, obtaining a list of identities for each of the plurality of associated mobile devices, and determining a bucket index, comprised of the places at which proximity is to be determined for each of the plurality of associated mobile devices.


In accordance with the principles of the present invention, a query is sent to a GeoNexus proximity evaluator function/mechanism to determine whether or not a plurality of other GeoNexus entities are located within a specified proximity resolution or specified proximity measurement, of a designated principal GeoNexus entity. Exemplary GeoNexus entities include: a mobile device, event location, attractor_point, repulsor_point, affinity_confluence, etc.


In accordance with the principles of the present invention, the GeoNexus proximity evaluator scans the plurality of GeoNexus entities indicated in the proximity request and separates the entities into discrete and ambiguous entities. For all discrete GeoNexus Entities, the GeoNexus proximity evaluator performs arithmetic computation of Proximity=TRUE|FALSE. For all ambiguous GeoNexus Entities, the GeoNexus proximity evaluator communicates with a GeoNexus node server that is responsible for maintaining a bucket in which the principal GeoNexus entity is located. When necessary, the GeoNexus node server sends requests to it's adjacent GeoNexus node servers (node servers responsible for buckets near the principal GeoNexus entity's bucket), to prompt those nodes to search for GeoNexus entities with a declared affinity that matches that of the ambiguous entity/entities included in the plurality of other GeoNexus entities.


A proximity request response includes a proximity determination for each of the plurality of associated mobile devices.





BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the present invention will become apparent to those skilled in the art from the following description with reference to the drawings, in which:



FIG. 1 shows a GeoNexus proximity detector network, in accordance with the principles of the present invention.



FIG. 2 depicts an exemplary GeoNexus database of mobile devices within responsible area of the relevant GeoNexus node server, in accordance with the principles of the present invention.



FIG. 3A depicts an exemplary pyramid of buckets for devices within a given responsible area, in accordance with the principles of the present invention.



FIG. 3B depicts a plurality of GeoNexus proximity detector node servers adjacent a central GeoNexus proximity detector node surrounded thereby, in accordance with the principles of the present invention.



FIG. 4 shows figurative coverage of the Earth's surface with successively finer grained gridlines, in accordance with the principles of the present invention.



FIG. 5 shows an exemplary mobile device loc table including identifier, location (latitude and longitude), and optimization indices, in a node of the GeoNexus proximity detector network, in accordance with the principles of the present invention.



FIG. 6 shows a matrix for primary indices for a mobile device GeoNexus proximity detector gateway node that maintains a collection of matrices in temporary memory such as Random Access Memory (RAM), i.e., not in a relational database, in accordance with the principles of the present invention.





DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention comprises a GeoNexus Proximity Detector Network (GPDN) for tracking mobile device location. In accordance with the principles of the present invention, all available location information pertaining to mobile devices, event locations, attractor points, repulsor points, affinity confluences, and all other discretely locatable entities, can and will be sent to the GeoNexus Proximity Detector Network (GPDN). The inventive GeoNexus Proximity Detector Network (GPDN) passively tracks everything in the network in a manner that can easily and quickly be consumed.


The GeoNexus Proximity Detector Network (GPDN) is not a single computer (no single computer could keep up with the amount of device location information continuously flowing in from so many different sources). Rather, the GeoNexus is an array of computing devices (i.e. servers), in which each node in the array is responsible for tabulating location information at a very specific level of granularity, for every mobile entity located within that node's responsible area of coverage.


To manage the enormous amount of information that is to barrage the GeoNexus every second of every day, the GeoNexus indexes each mobile device's identifier into a particular “bucket” (i.e. node) within each level of granularity (rather than maintaining location information as a double precision floating point value that represents latitude and longitude). The concept of the GeoNexus layers from lowest fidelity, or broadest expanse “location bucket” to highest fidelity, or smallest expanse “location bucket”.


At a lowest fidelity (e.g., least level of granularity where each area of coverage is approximately 700 miles by 700 miles), any number of mobile devices may be logged within any particular bucket/node. In accordance with the principles of the present invention, the location at that level of fidelity of every device within that bucket/node is represented as the node's center latitude/longitude (a VERY coarse location).


The GeoNexus may contain five or six distinct levels of granularity/fidelity. Hence, if a grossly coarse location is not what a particular consumer/application wants or needs, that consumer/application can simply query the GeoNexus for location resolution at a higher fidelity.


Each node in the GeoNexus Proximity Detector Network (GPDN) reduces a mobile device's location (represented in decimal degrees of latitude and longitude) into four (4) (or five (5) or six (6)) layers of latitude and longitude indices. These four layers include:


















1) Primary: tens of degrees
(~700 statute mile resolution)



2) Secondary: Degrees
(~70 statute mile resolution)



3) Tertiary: minutes
(~6000 foot resolution)



4) Quaternary: seconds
(~100 foot resolution)










At a fifth level of fidelity, a location associated with each node/bucket is approximately 10 feet. At a sixth level of fidelity, a location associated with each node/bucket is approximately one foot (likely overkill for most applications).


The fundamental approach of the GeoNexus is precisely the same regardless of the level of fidelity at which a mobile device location is recorded. Central to the invention is the use of buckets, each of which is associated with a particular location and fidelity. Buckets allow the GeoNexus Proximity Detection Network (GPDN) to perform very little actual computation. Instead, nodes of the GeoNexus proximity detector network simply push bits and bytes back and forth between buckets, and infer location information, and ultimately proximity, from each of the buckets and their “adjacent location” buckets.


However, even with the use of buckets, the complexity of the GeoNexus Proximity Detection Network (GPDN) is still very complex.


The GeoNexus Proximity Detector Network (GPDN) can be envisioned as a pyramid of computing devices/elements, wherein the pinnacle of the pyramid represents all mobile devices piled into one big bucket that covers the entire planet, and each lower layer of the pyramid contains more and more buckets to cover the same amount of area covered by the layer above. This pyramid of computing devices/elements is not uniformly distributed. Rather, this particular approach increases the density of computing devices/elements in direct proportion to the population density of a coverage area. For instance, it is possible that a single computation device/element can be used to cover almost all of the ocean area for the planet, with separate computation devices/elements handling the population centers of Hawaii, Samoa, Fiji, and other islands, scattered among the oceans of Terra Firma. Moreover, very (very) dense concentrations of computation devices/elements are required to cover immensely dense population centers, such as Los Angeles, New York (and it's many burroughs), Hong Kong, London, etc. In immensely dense population centers, it is very likely that operations, such as proximity evaluations, will have to be limited to only very high fidelity location layers (i.e. the lower levels) of the pyramid. To enable rapid proximity evaluations, it is required that every node have a known area of coverage and location fidelity, and that every node be able to communicate with all of its' adjacent nodes (as well of coverage areas of it's adjacent nodes).


In addition to the pyramid of computation devices/elements tabulating buckets of mobiles (from which location can be inferred), the nodes of the GeoNexus proximity detector network also maintains a fairly simple (but very large) data array, in which every mobile device is represented. A mobile entity data array records the precise latitude and longitude of a mobile device (if known) and records the indices within each layer of the pyramid the mobile device is bucketed. This MOBILE_ENTITY array is quintessential to optimizing location updates and targeted query speeds. A location update occurs when a mobile device's OLD location is erased and the mobile device's NEW location is recorded.


In accordance with the principles of the present invention, a location update is performed by for a particular mobile device by:

    • 1. using the MOBILE_ENTITY array to directly access old buckets in which the mobile device is recorded for removal;
    • 2. determining new bucket indices within each and every layer of fidelity;
    • 3. saving the mobile device's ID in the new buckets for each layer of fidelity; and
    • 4. saving the new bucket indices in the MOBILE_ENTITY array.


When a location request for a particular mobile device is received (targeted location query) on the GeoNexus Proximity Detector Network (GPDN), a relevant GeoNexus proximity detector network node either directly looks up a precise location saved for the mobile device in the MOBILE_ENTITY array, or extracts a location associated with the highest fidelity node/bucket and returns that value (this is the easy part).


Huge dividends are paid as more and more applications begin to take advantage of proximity, as determined by the GeoNexus Proximity Detector Network (GPDN), i.e., proximity to persons, places, things, and/or areas.


For instance, if an application wants to evaluate proximity of a group of persons (as identified by the person's preferred mobile device) to a particular place (rather a form of geofencing), the application need only compute the bucket index of the desired place, directly query the node responsible for that bucket, and ask the node to query its sibling (adjacent) nodes. The proximity request might require a small sequence of queries if the geofence has an irregular outline. However, even a small sequence of queries can be evaluated very quickly. A query response to a proximity request will either be “NO” (i.e. no proximity detected), or “YES” (i.e. proximity detected) and include a bucket index.


The architecture of the GeoNexus proximity detector network easily supports small groups, such as those within a “trusted circle”. Moreover, GeoNexus can support much larger and more ambiguous groups, such as affinity groups derived from Facebook's many forms of “likes”, “dislikes”, and “friends” groups. Such groups may contain as many as 1000 s or 10 s of thousands of members and membership can change hourly. That is the Holy Grail of location determination and proximity detection as enabled by the GeoNexus proximity detector network, in accordance with the principles of the present invention.


As an optimization, rather than searching through various buckets that are near to one another, a determination of proximity “state” between a known or discrete GeoNexus entity and a plurality of other discrete GeoNexus entities can easily be accomplished using simple arithmetic based on bucket indices associated with each mobile entity.


In particular, using the following layers of fidelity: primary (i.e. tens of degrees, ˜700 statute mile resolution), secondary (i.e. degrees, ˜70 statute mile resolution), tertiary (i.e. minutes, ˜6000 foot resolution), quaternary (i.e. seconds, ˜100 foot resolution), quinary (i.e. 10 ths of seconds, ˜10 foot resolution) and senary (i.e. 100 ths of seconds, ˜1 foot resolution), the inventive method/apparatus need only:


A) choose a fidelity/resolution


B) compute an index span for the fidelity/resolution that represents the desired proximity


C) compute the hypotenuse between a pair of mobile devices' X and Y values, using the following computation:

square_root(((mobile1.X−mobile2.X)*(mobile1.X−mobile2.X))+((mobile1.Y−mobile2.Y)*(mobile1.Y−mobile2.Y))))


D) compare the computed hypotenuse to the representative index span


Square root functions are very expensive, computationally. Therefore, an obvious optimization would be to square the computed index span (i.e. index_span*index_span) and then compare the squared index_span to the following computation:

((mobile1.X−mobile2.X)*(mobile1.X−mobile2.X))+((mobile1.Y−mobile2.Y)*(mobile1.Y−mobile2.Y))


This method of optimization eliminates the use of a square_root function.


In accordance with the principles of the present invention, the reference index_span can be squared once per proximity evaluation, regardless of how many devices are being evaluated. This procedure eliminates ‘N’ square root operations for an entire evaluation (where ‘N’ is equal to the number of mobile devices being evaluated). Even if the value of ‘N’ is only 1, squaring the reference index_span and comparing the square to the above-stated computation is still an optimization, as computing the square of a value (i.e. index_span*index_span) is always a less costly operation than a square_root operation.


For example, when the GeoNexus Proximity Detector Network (GPDN) receives a request to evaluate whether or not two persons, e.g. person A and person B (as determined by the persons' respective mobile devices), are located within 700 feet of one another, the GeoNexus Proximity Detector Network (GPDN) iterates from the top layer (lowest fidelity) down toward the lowest layer (highest fidelity), and compares the requested proximity resolution against the fidelity layer's one-node resolution. When the requested proximity resolution is greater than or equal to the fidelity layer's one-node resolution, the method/apparatus can stop the search and compute the appropriate index_span.


In this particular, example 700 ft is less than 700 mi for the primary layer, so the method/apparatus continues; 700 ft is less than 70 mi for the secondary layer, so the method/apparatus continues; 700 ft is less than 6000 ft for the tertiary layer, so the method/apparatus continues. Finally, 700 ft is greater than or equal to 100 ft for the quaternary layer, so the method/apparatus stops and computes the index_span.


Index_span computation is a simple modulo of the requested proximity resolution, by the fidelity layer's one-node resolution. In this example, 700 ft, modulo the quaternary layer's one-node resolution of 100 ft, results in an index_span of 7 and a remainder of 0. For the purposes of this invention, if a remainder of a modulo function is 0 through 4, the method/apparatus leaves the index_span unaltered. Rather, if a remainder of a modulo function is 5 through 9, the index_span is increased by a value of 1. In this example, the remainder of the modulo function is zero, so the index_span remains at 7 and the reference_value is computed as 7*7=49. Thus, the proximity evaluation for person A and person B becomes:

Proximity=(Reference_Value≧((personA.Quaternary.X−personB.Quaternary.X)2+(personA.Quaternary.Y−personB.Quaternary.Y)2))


The Boolean function, greater than or equal to (“≧”), embedded in the proximity evaluation reduces the entirety of the equation on the right side of the equal sign (‘=’), to TRUE or FALSE. Thus, value “Proximity” represents the desired evaluation. If the reference_distance is greater than or equal to the distance between person A and person B, then person A and person B are, indeed, within the requested proximity resolution, and the value of Proximity is TRUE. Conversely, if the reference_distance is less than the distance between person A and person B, then person A and person B are not within the requested proximity resolution, and the value of Proximity is FALSE.


With regard to proximity detection, the pyramid of computation elements, each of which maintains only a subset of its assigned fidelity layer's “buckets”, becomes especially useful when detecting proximity between a known entity (e.g. a known mobile device) and an unknown collection of entities. For instance, an unknown collection of entities could be derived in near-realtime from affinity groupings provided by any one of a growing number of social media collectives. When evaluating a “known” versus a potentially vast array of social media derived “unknowns”, an optimal approach is to scan everyone within a designated proximity resolution while looking for a desired social affinity, and then report on who or what is found.


An AFFINITY-VECTOR is described in U.S. Application No. ??? to Pitt, et al. entitled “N-Dimensional Affinity Confluencer” (N-DAC), the entirety of which is included herein by reference.


In accordance with the principles of the present invention, whenever a GeoNexus bucket is updated, an affinity vector is computed based on the social affinities of the mobile devices within that bucket. Affinity-Vectors that reach a pre-designated amplitude could result in a new instance of a particular class of GeoNexus “object”, called “AFFINITY-CONFLUENCE” (i.e. mobile device, event, attractor_point, repulsor_point, etc., represented within the GeoNexus Proximity Detector Network (GPDN)). When AFFINITY-VECTORs are computed and AFFINITY-CONFLUENCEs are included as discrete entities in GeoNexus' layers, the ability to create useful proximity based notifications is greatly optimized because a proximity query can be designated, versus a CLASS of AFFINITY-CONFLUENCE, with a simple descriptor, such as a Uniform Resource Name (URN) to designate a particular affinity base for the confluence. In accordance with the principals of the present invention every affinity confluence can be designated by a mobile subscriber to be either ATTRACTIVE or REPULSIVE so that appropriate notification(s) can be delivered to the mobile subscriber's mobile device.



FIG. 1 shows a GeoNexus proximity detector network, in accordance with the principles of the present invention.


In particular, as shown in FIG. 1, a plurality of GeoNexus server nodes 100a, 100b, 100c etc. (collectively referenced herein as 100) comprise a GeoNexus proximity detector network 400. Ideally the GeoNexus proximity detector network 400 includes enough GeoNexus server nodes 100 to have one responsible for every location on earth.


Each GeoNexus server node 100a, 100b, 100c has access to a respective Addresses of Adjacent Nodes database 110a, 110b, 110c, which stores addresses, or other contact information for that GeoNexus server node 100, to enable the GeoNexus server node to be aware of and be able to query all adjacent GeoNexus server nodes 100.


Each GeoNexus server node 100a, 100b, 100c also has access to a respective Mobile Devices Within Responsible Area database 120a, 120b, 120c, which maintains proximity buckets for that node's respective responsible area.


Any mobile device, application server, etc., may request proximity services from the GeoNexus Proximity Detector Network (GPSN). Such proximity request is routed to one server node of the GeoNexus Proximity Detector Network (GPSN) that is responsible for the place at which proximity is to be measured. For instance, a mobile device may send a request to the GeoNexus Proximity Detector Network (GPDN) to determine which of their ‘friends’ in a social media application (as determined by registered mobile devices) are currently proximate to a current location of the requesting mobile device. To make such a request, a single proximity request need be launched to the one GeoNexus proximity detector server node responsible for the requesting mobile device is currently located in. The single targeted GeoNexus server node 100 of the GeoNexus Proximity Detector Network (GPSN) 400 then takes it from there by querying only its adjacent nodes, to determine which of the requesting mobile device's ‘friends’ are currently located within that adjacent GeoNexus server node's area of responsibility (as measured by the inclusion of the ID (e.g., Mobile ID number) of any ‘friends’ mobile devices within any bucket of the node's Mobile Devices Within Responsible Area database 120).



FIG. 2 depicts an exemplary GeoNexus database of mobile devices within a responsible area of a GeoNexus node server, in accordance with the principles of the present invention.


In particular, as shown in FIG. 2, a database of mobile devices within responsible area includes an identity of any/all mobile devices currently located within the physical area for which the relevant GeoNexus server node 100 is responsible for maintaining. A unique ID number (e.g., mobile identification number (MIN)) is stored for each mobile device currently located in the responsible area, as is location information already known, and a resolution to which that location information ascribes. For many devices, a location may be as simple as “within range of the cell station antenna”, which may fit into, e.g., bucket 5 or 6.



FIG. 3A depicts an exemplary pyramid of buckets for devices within a given responsible area, in accordance with the principles of the present invention.


In particular, as shown in FIG. 3A, a pyramid of buckets 1, 2, 3, 4, 5, 6, 7 of varying resolution of location data is depicted; bucket 1 being of the highest resolution (e.g., location is known within 10 feet), to bucket 5 (e.g., being within range of the relevant base station), to bucket 7 which may be, e.g., the entire state (or larger).



FIG. 3B depicts a plurality of GeoNexus proximity detector node servers 120a, 120b, 120c, 120d, 120f, 120g, 120h, 120i adjacent a central GeoNexus proximity detector node 120e surrounded thereby, in accordance with the principles of the present invention.



FIG. 4 shows figurative coverage of the Earth's surface with successively finer grained gridlines, in accordance with the principles of the present invention.


In particular, as shown in FIG. 4, seconds of latitude and longitude yield a grid whose vertices are approximately 100 feet apart at the equator and somewhat closer together the farther away from the equator (North or South) the mobile device is located. Should the need arise to attain even finer granularity than seconds, a fifth (Quinary) and even sixth (Senary) layer can be added to represent 10 ths of seconds (˜10 feet) and 100 ths of seconds (˜12 inches).



FIG. 5 shows an exemplary mobile device loc table including identifier, location (latitude and longitude), and optimization indices, in a node of the GeoNexus proximity detector network, in accordance with the principles of the present invention.


The mobile device GeoNexus gateway node saves a given mobile device's identifier, location (latitude and longitude), and optimization indices in a mobile device loc table as exemplified in FIG. 5.


The Lat and Lon values are normalized to be decimal degrees in the range −90.0 through +90.0 for Latitude and −180.0 through +180.0 for Longitude. The indices are computed as follows:

PrimaryX=int(round((Lon/10.0)−0.5))
PrimaryY=int(round((Lat/10.0)−0.5))
SecondaryX=int(truncate(Lon−(PrimaryX*10.0)))
SecondaryY=int(truncate(Lat−(PrimaryY*10.0)))
TertiaryX=int(truncate((Lon−((PrimaryX*10.0)+SecondaryX))*60.0))
TertiaryY=int(truncate((Lat−((PrimaryY*10.0)+SecondaryY))*60.0))
QuaternaryX=int(truncate((Lon−((PrimaryX*10.0)+SecondaryX+(TertiaryX/60.0)))*3600.0))
QuaternaryY=int(truncate((Lat−((PrimaryY*10.0)+SecondaryY+(TertiaryY/60.0)))*3600.0))


These equations presume that the round( )function always rounds an “n.5” value up, so that 0.5 becomes 1.0, 2.5 becomes 3.0, −3.5 becomes −3.0, etc. Some adjustments might be necessary to accommodate specific hardware architectures, operating systems, and compilers.


The intent, though, is to compute an index based on the lower left corner of a square in which a mobile device is located. The primary square (Q) is a 10 degree by 10 degree square. The secondary square (R) is a one degree by one degree square located within the primary. The tertiary square (S) is a one minute by one minute square located within the secondary. The quaternary square (T) is a one second by one second square located within the tertiary.


These computations produce values in the following ranges:


















−18 <= PrimaryX <= 18
−9 <= PrimaryY <= 9



0 <= SecondaryX <= 9
0 <= SecondaryY <= 9



0 <= TertiaryX <= 60
0 <= TertiaryY <= 60



0 <= QuaternaryX <= 60
0 <= QuaternaryY <= 60











FIG. 6 shows a matrix for primary indices for a mobile device GeoNexus proximity detector gateway node that maintains a collection of matrices in temporary memory such as Random Access Memory (RAM), i.e., not in a relational database, in accordance with the principles of the present invention.


A collection of matrices in accordance with the principles of the present invention, preferably always includes a matrix for the primary indices, as shown in FIG. 6.


The primary matrix is preferably accompanied by a PrimaryCount that indicates how many mobile devices are present.


The primary matrix is also preferably accompanied by an array or list of primary matrix elements in which mobile devices can be found (list will be empty if PrimaryCount is zero).


Each element in the 36×18 primary matrix preferably contains: (1) a count of how many mobile devices are present in that particular 10 deg×10 deg area; and (2) a reference to a secondary matrix (reference will be NULL if count is zero).


Secondary (10×10 matrix), tertiary (60×60), and quaternary (60×60) matrices will be allocated, maintained, and eliminated, as needed, to manage memory use in the mobile device GeoNexus proximity detector gateway.


Each secondary matrix is preferably accompanied by a SecondaryCount indicating how many mobile devices are present in that 10 deg×10 deg area.


Each secondary matrix is also preferably accompanied by an array or list of secondary matrix elements in which mobile devices can be found (the list will be empty if SecondaryCount is zero).


Each element in a 10×10 secondary matrix preferably contains: (1) a count of how many mobile devices are present in that particular 1 deg×1 deg area; and (2) a reference to a tertiary matrix (reference will be NULL if count is zero).


Each tertiary matrix is preferably accompanied by a TertiaryCount, indicating how many mobile devices are present in that 1 deg×1 deg area.


Each tertiary matrix is preferably accompanied by an array or list of tertiary matrix elements in which mobile devices can be found (list will be empty if TertiaryCount is zero).


Each element in a 60×60 tertiary matrix preferably contains: (1) a count of how many mobile devices are present in that particular 1 minute×1 minute area; and (2) a reference to a quaternary matrix (reference will be NULL if count is zero).


Each quaternary matrix is preferably accompanied by a QuaternaryCount indicating how many mobile devices are present in that 1 min×1 min area.


Each quaternary matrix is preferably accompanied by an array or list of quaternary elements in which mobile devices can be found (the list will be empty if QuaternaryCount is zero).


Each element in a 60×60 quaternary matrix preferably contains: (1) a count of how many mobile devices are present in that particular 1 second×1 second area; and (2) an array or list of mobile device identifiers that are present in the 1 sec×1 sec area (the list will be empty if count is zero).


Proximity can be a configured reference value defined in terms of hundreds of feet, thousands of feet, tens of miles, hundreds of miles, etc. Regardless of the defined distance for ‘proximate’, the mobile device GeoNexus proximity detector network is able to rapidly identify which mobile devices meet the criteria. The broader the proximity value is defined, though, the longer it will generally take the GeoNexus proximity detector network to send required notifications, due to latencies imposed by the carrier's core network.


Consider the following use case of a GeoNexus Proximity Detector network, in accordance with the principles of the present invention, referred to herein as “Vigilant-Sentinel”.


In particular, presume that for a given mobile user, “My Car”, is a recognized and tracked mobile device via its onboard telematics equipment, and that, “My iPhone”, is also a recognized and traced mobile device.


Early one morning (9 Nov. 2012) both “My Car” and “My iPhone” are recorded within the same 100 foot by 100 foot GeoNexus bucket (4th layer of fidelity).


At 7:10 am the Vigilant-Sentinel application to which the exemplary user subscribes detects that “My Car” is in motion and quickly checks to see if “My iPhone” is still within the same 4th layer bucket as “My Car's” newly computed location.


VIGILANT-SENTINEL detects that my “My iPhone” is not within the same 4th layer node as “My Car”, but is still within the 4th layer node around a “My House”. The Vigilant-Sentinel application queries “My iPhone's” 5th layer node and detects that “My iPhone” has moved from one 5th layer node to another within the last 10 minutes. The Vigilant-Sentinel application then accesses identities of the user's trusted circle; looks for associated mobile device identifiers such as “My Wife”, “My Child”, “My Daughter”, “My Mother-In-Law”, “My Relative”, etc., and checks to see whether any of those associated mobile devices are within the same 4th layer node as “My Car”. The Vigilant-Sentinel application utilizes the GeoNexus proximity detector network to provide quick and appropriate detection of proximity between “My Car” and “My Daughter's” mobile device. The Vigilant-Sentinel queues up a secondary, tertiary, etc., check for proximity, e.g., 30 seconds in the future, 60 seconds in the future, etc. After verifying continued proximity between “My Car” and “My Daughter's” mobile device, the Vigilant-Sentinel application making use of proximity detection via the GeoNexus proximity detector network, and makes the probable determination that “My Daughter” has borrowed “My Car”. The Vigiland-Sentinel may then notify the owner of “My Car” with an appropriate text message informing the user that “My Daughter” has borrowed “My Car”.


Other use cases are of course possible and envisioned, e.g., the GeoNexus proximity detector network can be used to check for potential auto theft (e.g., when “My Car” is moving and none of the devices within the trusted circle of users are moving along with “My Car”). If the Vigilant-Sentinel concludes that auto theft is likely, it immediately notifies the registered user device via a more timely mechanism (e.g., interactive voice response (IVR)). If the vehicle associated with the “My Car” mobile device is registered as having a theft service, such as LoJack™, installed, the relevant user device may be prompted to authorize the Vigilant-Sentinel application to automatically enable the theft-prevention device (e.g., LoJack device) and notify the relevant authorities, to expedite recovery of the vehicle.


While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments of the invention without departing from the true spirit and scope of the invention.

Claims
  • 1. A method of determining proximity of a plurality of associated mobile devices, comprising: receiving a proximity request relating to a plurality of associated mobile devices;obtaining a list of identities of said plurality of associated mobile devices for which proximity is to be determined;determining a bucket index of a place to which proximity is to be determined for each of said plurality of associated mobile devices;querying a target geonexus node server associated with said determined bucket index requesting which of said plurality of associated mobile devices are currently located within an area of responsibility of said target geonexus node server;initiating a query to each geonexus node server responsible for an area adjacent to said target geonexus node server, requesting which of said plurality of associated mobile devices are currently located within the respective adjacent area of responsibility; andresponding to said proximity request with a proximity determination for each of said plurality of associated mobile devices.
  • 2. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said target geonexus node server initiates said query to each geonexus node server adjacent thereto.
  • 3. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said plurality of associated mobile devices comprise those predesignated as being within a group of trusted mobile devices.
  • 4. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said plurality of associated mobile devices comprise those as having associated with a given social media posting.
  • 5. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said plurality of associated mobile devices comprise those as being within a given predesignated grouping of devices within a social media application.
  • 6. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said plurality of associated mobile devices for which said proximity is determined pursuant to said proximity request is at least 1000 mobile devices.
  • 7. The method of determining proximity of a plurality of associated mobile devices according to claim 1, wherein: said plurality of associated mobile devices for which said proximity is determined pursuant to said proximity request is at least 10,000 mobile devices.
  • 8. Apparatus for determining proximity of a plurality of associated mobile devices, comprising: a geonexus server to receive a proximity request relating to a plurality of associated mobile devices including a list of identities of said plurality of associated mobile devices for which proximity is to be determined, said GeoNexus server comprising: a physical network database to maintain a bucket index of a place to which proximity is to be determined for each of said plurality of associated mobile devices,a target geonexus node server associated with said bucket index to provide an identification of which of said plurality of associated mobile devices are currently located within an area of responsibility of said target geonexus node server;an adjacent target geonexus node server responsible for an area adjacent to said target geonexus node server to provide an identification of which of said plurality of associated mobile devices are currently located within the respective adjacent area of responsibility; anda transmitter to respond to said received proximity request with a proximity determination for each of said plurality of associated mobile devices.
  • 9. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said target geonexus node server initiates said query to each geonexus node adjacent thereto.
  • 10. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said plurality of associated mobile devices comprise those predesignated as being within a group of trusted mobile devices.
  • 11. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said plurality of associated mobile devices comprise those as having associated with a given social media posting.
  • 12. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said plurality of associated mobile devices comprise those as being within a given predesignated grouping of devices within a social media application.
  • 13. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said plurality of associated mobile devices for which said proximity is determined pursuant to said proximity request is at least 1000 mobile devices.
  • 14. The apparatus for determining proximity of a plurality of associated mobile devices according to claim 8, wherein: said plurality of associated mobile devices for which said proximity is determined pursuant to said proximity request is at least 10,000 mobile devices.
Parent Case Info

The present invention is a continuation-in-part of U.S. application Ser. No. 13/954,379 to Pitt et al. entitled “Transmitter Augmented Radar/Laser Detection Using Local Mobile Network Within a Wide Area Network”, filed Jul. 30, 2013; which is a continuation of U.S. application Ser. No. 12/929,502 to Pitt et al. entitled “Cellular Augmented Radar/Laser Detection Using Local Mobile Network Within Cellular Network”, filed Jan. 28, 2011, now U.S. Pat. No. 8,515,414; which is a continuation of U.S. application Ser. No. 11/405,579 to Pitt et al. entitled “Cellular Augmented Radar/Laser Detection Using Local Mobile Network Within Cellular Network”, filed on Apr. 18, 2006, now U.S. Pat. No. 7,899,450, which claims priority from U.S. Provisional No. 60/777,565 to Pitt et al. entitled “Cellular Augmented Radar/Laser Detection Using Local Mobile Network Within Cellular Network”, filed on Mar. 1, 2006, the entirety of all of which are expressly incorporated herein by reference. The present invention also claims priority from U.S. Provisional No. 61/728,546 to Pitt entitled “GeoNexus”, filed Nov. 20, 2012, the entirety of which is also expressly incorporated herein by reference.

US Referenced Citations (347)
Number Name Date Kind
4445118 Taylor Apr 1984 A
4928107 Kuroda May 1990 A
4972484 Theile Nov 1990 A
5126722 Kamis Jun 1992 A
5283570 DeLuca Feb 1994 A
5301354 Schwendeman Apr 1994 A
5311516 Kuznicki May 1994 A
5327529 Fults Jul 1994 A
5335246 Yokev Aug 1994 A
5351235 Lahtinen Sep 1994 A
5365451 Wang Nov 1994 A
5418537 Bird May 1995 A
5422813 Schuchman Jun 1995 A
5479408 Will Dec 1995 A
5485163 Singer Jan 1996 A
5504491 Chapman Apr 1996 A
5506886 Maine Apr 1996 A
5517199 DiMattei May 1996 A
5530655 Lokhoff Jun 1996 A
5530914 McPheters Jun 1996 A
5539395 Buss Jul 1996 A
5539829 Lokhoff Jul 1996 A
5546445 Dennison Aug 1996 A
5568153 Beliveau Oct 1996 A
5583774 Diesel Dec 1996 A
5594780 Weideman Jan 1997 A
5606618 Lokhoff Feb 1997 A
5629693 Janky May 1997 A
5633630 Park May 1997 A
5636276 Brugger Jun 1997 A
5661652 Sprague Aug 1997 A
5661755 Van de Kerkhof Aug 1997 A
5689245 Noreen Nov 1997 A
5699053 Jonsson Dec 1997 A
5704029 Wright, Jr. Dec 1997 A
5721781 Deo Feb 1998 A
5731785 Lemelson Mar 1998 A
5765152 Erickson Jun 1998 A
5771353 Eggleston Jun 1998 A
5774670 Montulli Jun 1998 A
5809415 Rossmann Sep 1998 A
5812086 Bertiger Sep 1998 A
5812087 Krasner Sep 1998 A
5841396 Krasner Nov 1998 A
5857201 Wright, Jr. Jan 1999 A
5864667 Barkan Jan 1999 A
5874914 Krasner Feb 1999 A
5896369 Warsta Apr 1999 A
5898391 Jeffries Apr 1999 A
5922074 Richard Jul 1999 A
5930250 Klok Jul 1999 A
5945944 Krasner Aug 1999 A
5946629 Sawyer Aug 1999 A
5950137 Kim Sep 1999 A
5960362 Grob Sep 1999 A
5983099 Yao Nov 1999 A
5999124 Sheynblat Dec 1999 A
6032051 Hall Feb 2000 A
6052081 Krasner Apr 2000 A
6058338 Agashe May 2000 A
6061018 Sheynblat May 2000 A
6064336 Krasner May 2000 A
6067045 Castelloe May 2000 A
6081229 Soliman Jun 2000 A
6085320 Kaliski, Jr. Jul 2000 A
6118403 Lang Sep 2000 A
6121923 King Sep 2000 A
6124810 Segal Sep 2000 A
6131067 Girerd Oct 2000 A
6133874 Krasner Oct 2000 A
6134483 Vayanos Oct 2000 A
6147598 Murphy Nov 2000 A
6150980 Krasner Nov 2000 A
6154172 Piccionelli Nov 2000 A
6169901 Boucher Jan 2001 B1
6169902 Kawamoto Jan 2001 B1
6178506 Quick, Jr. Jan 2001 B1
6185427 Krasner Feb 2001 B1
6188354 Soliman Feb 2001 B1
6188909 Alanara Feb 2001 B1
6189098 Kaliski, Jr. Feb 2001 B1
6195557 Havinis Feb 2001 B1
6204798 Fleming, III Mar 2001 B1
6205330 Winbladh Mar 2001 B1
6208290 Krasner Mar 2001 B1
6215441 Moeglein Apr 2001 B1
6239742 Krasner May 2001 B1
6247135 Feague Jun 2001 B1
6249873 Richard Jun 2001 B1
6253203 O'Flaherty Jun 2001 B1
6260147 Quick, Jr. Jul 2001 B1
6275692 Skog Aug 2001 B1
6275849 Ludwig Aug 2001 B1
6297768 Allen, Jr. Oct 2001 B1
6307504 Sheynblat Oct 2001 B1
6308269 Proidl Oct 2001 B2
6313786 Sheynblat Nov 2001 B1
6321257 Kotala Nov 2001 B1
6324524 Lent Nov 2001 B1
6327473 Soliman Dec 2001 B1
6333919 Gaffney Dec 2001 B2
6360093 Ross Mar 2002 B1
6360102 Havinis Mar 2002 B1
6363254 Jones Mar 2002 B1
6367019 Ansell Apr 2002 B1
6370389 Isomursu Apr 2002 B1
6377209 Krasner Apr 2002 B1
6400304 Chubbs Jun 2002 B1
6400314 Krasner Jun 2002 B1
6400958 Isomursu Jun 2002 B1
6411254 Moeglein Jun 2002 B1
6421002 Krasner Jul 2002 B2
6429812 Hoffberg Aug 2002 B1
6430504 Gilbert Aug 2002 B1
6433734 Krasner Aug 2002 B1
6442391 Johansson Aug 2002 B1
6449473 Raivisto Sep 2002 B1
6449476 Hutchison, IV Sep 2002 B1
6456852 Bar Sep 2002 B2
6463272 Wallace Oct 2002 B1
6477150 Maggenti Nov 2002 B1
6505049 Dorenbosch Jan 2003 B1
6510387 Fuchs Jan 2003 B2
6512922 Burg Jan 2003 B1
6512930 Sandegren Jan 2003 B2
6515623 Johnson Feb 2003 B2
6519466 Pande Feb 2003 B2
6522682 Kohli Feb 2003 B1
6525687 Roy Feb 2003 B2
6525688 Chou Feb 2003 B2
6529829 Turetzky Mar 2003 B2
6531982 White Mar 2003 B1
6538757 Sansone Mar 2003 B1
6539200 Schiff Mar 2003 B1
6539304 Chansarkar Mar 2003 B1
6542464 Takeda Apr 2003 B1
6542734 Abrol Apr 2003 B1
6542743 Soliman Apr 2003 B1
6549776 Joong Apr 2003 B1
6549844 Egberts Apr 2003 B1
6556832 Soliman Apr 2003 B1
6560461 Fomukong May 2003 B1
6560534 Abraham May 2003 B2
6567035 Elliott May 2003 B1
6570530 Gaal May 2003 B2
6574558 Kohli Jun 2003 B2
6580390 Hay Jun 2003 B1
6584552 Kuno Jun 2003 B1
6594500 Bender Jul 2003 B2
6597311 Sheynblat Jul 2003 B2
6603973 Foladare Aug 2003 B1
6606495 Korpi Aug 2003 B1
6606554 Edge Aug 2003 B2
6609004 Morse Aug 2003 B1
6611757 Brodie Aug 2003 B2
6618670 Chansarkar Sep 2003 B1
6621452 Knockeart Sep 2003 B2
6628233 Knockeart Sep 2003 B2
6633255 Krasner Oct 2003 B2
6640184 Rabe Oct 2003 B1
6650288 Pitt Nov 2003 B1
6661372 Girerd Dec 2003 B1
6665539 Sih Dec 2003 B2
6665541 Krasner Dec 2003 B1
6671620 Garin Dec 2003 B1
6677894 Sheynblat Jan 2004 B2
6680694 Knockeart Jan 2004 B1
6680695 Turetzky Jan 2004 B2
6687504 Raith Feb 2004 B1
6691019 Seeley Feb 2004 B2
6694258 Johnson Feb 2004 B2
6697629 Grilli Feb 2004 B1
6698195 Hellinger Mar 2004 B1
6701144 Kirbas Mar 2004 B2
6703971 Pande Mar 2004 B2
6703972 van Diggelen Mar 2004 B2
6704651 Van Diggelen Mar 2004 B2
6707421 Drury Mar 2004 B1
6714793 Carey Mar 2004 B1
6721871 Piispanen Apr 2004 B2
6724342 Bloebaum Apr 2004 B2
6725159 Krasner Apr 2004 B2
6731940 Nagendran May 2004 B1
6734821 Van Diggelen May 2004 B2
6738013 Orler May 2004 B2
6738800 Aguilon May 2004 B1
6741842 Goldberg May 2004 B2
6745038 Callaway, Jr. Jun 2004 B2
6747596 Orler Jun 2004 B2
6748195 Phillips Jun 2004 B1
6751464 Burg Jun 2004 B1
6756938 Zhao Jun 2004 B2
6757544 Rangarajan Jun 2004 B2
6772340 Peinado Aug 2004 B1
6775655 Peinado Aug 2004 B1
6775802 Gaal Aug 2004 B2
6778136 Gronomeyer Aug 2004 B2
6778885 Agashe Aug 2004 B2
6781963 Crockett Aug 2004 B2
6788249 Farmer Sep 2004 B1
6795699 McCraw Sep 2004 B1
6799050 Krasner Sep 2004 B1
6801124 Naitou Oct 2004 B2
6801159 Swope Oct 2004 B2
6804524 Vandermaijden Oct 2004 B1
6807534 Erickson Oct 2004 B1
6810323 Bullock Oct 2004 B1
6813560 van Diggelen Nov 2004 B2
6816111 Krasner Nov 2004 B2
6816710 Krasner Nov 2004 B2
6816719 Heinonen Nov 2004 B1
6816734 Wong Nov 2004 B2
6820069 Kogan Nov 2004 B1
6829475 Lee Dec 2004 B1
6832373 O'Neill Dec 2004 B2
6833785 Brown Dec 2004 B2
6839020 Geier Jan 2005 B2
6839021 Sheynblat Jan 2005 B2
6842715 Gaal Jan 2005 B1
6853849 Tognazzini Feb 2005 B1
6853916 Fuchs Feb 2005 B2
6856282 Mauro Feb 2005 B2
6861980 Rowitch Mar 2005 B1
6865171 Nilsson Mar 2005 B1
6865395 Riley Mar 2005 B2
6867734 Voor Mar 2005 B2
6873854 Crockett Mar 2005 B2
6885940 Brodie Apr 2005 B2
6888497 King May 2005 B2
6888932 Snip May 2005 B2
6895238 Newell May 2005 B2
6895249 Gaal May 2005 B2
6895324 Straub May 2005 B2
6900758 Mann May 2005 B1
6903684 Simic Jun 2005 B1
6904029 Fors Jun 2005 B2
6907224 Younis Jun 2005 B2
6907238 Leung Jun 2005 B2
6912395 Benes Jun 2005 B2
6915208 Garin Jul 2005 B2
6917331 Gronemeyer Jul 2005 B2
6930634 Peng Aug 2005 B2
6937187 Van Diggelen Aug 2005 B2
6937872 Krasner Aug 2005 B2
6941144 Stein Sep 2005 B2
6944540 King Sep 2005 B2
6947772 Minear Sep 2005 B2
6950058 Davis Sep 2005 B1
6956467 Mercado, Jr. Oct 2005 B1
6957073 Bye Oct 2005 B2
6961562 Ross Nov 2005 B2
6965754 King Nov 2005 B2
6965767 Maggenti Nov 2005 B2
6970917 Kushwaha Nov 2005 B1
6973166 Tsumpes Dec 2005 B1
6973320 Brown Dec 2005 B2
6975266 Abraham Dec 2005 B2
6978453 Rao Dec 2005 B2
6980816 Rohles Dec 2005 B2
6985105 Pitt Jan 2006 B1
6996720 DeMello Feb 2006 B1
6999782 Shaughnessy Feb 2006 B2
7024321 Deninger Apr 2006 B1
7024393 Peinado Apr 2006 B1
7047411 DeMello May 2006 B1
7064656 Belcher et al. Jun 2006 B2
7065351 Carter Jun 2006 B2
7065507 Mohammed Jun 2006 B2
7071814 Schorman Jul 2006 B1
7079857 Maggenti Jul 2006 B2
7103018 Hasen Sep 2006 B1
7103574 Peinado Sep 2006 B1
7106717 Rosseau Sep 2006 B2
7136838 Peinado Nov 2006 B1
7151946 Maggenti Dec 2006 B2
7177623 Baldwin Feb 2007 B2
7209969 Lahti Apr 2007 B2
7218940 Niemenna May 2007 B2
7221959 Lindquist May 2007 B2
7269428 Wallenius Sep 2007 B1
7301494 Waters Nov 2007 B2
7504983 Chen Mar 2009 B2
20010011247 O'Flaherty Aug 2001 A1
20020037735 Maggenti Mar 2002 A1
20020038182 Wong Mar 2002 A1
20020052214 Maggenti May 2002 A1
20020061760 Maggenti May 2002 A1
20020069529 Wieres Jun 2002 A1
20020102999 Maggenti Aug 2002 A1
20020112047 Kushwaha Aug 2002 A1
20020135504 Singer Sep 2002 A1
20020173317 Nykanen Nov 2002 A1
20020198632 Breed et al. Dec 2002 A1
20030009602 Jacobs Jan 2003 A1
20030037163 Kitada Feb 2003 A1
20030065788 Salomaki Apr 2003 A1
20030078064 Chan Apr 2003 A1
20030081557 Mettala May 2003 A1
20030101329 Lahti May 2003 A1
20030101341 Kettler May 2003 A1
20030103484 Oommen Jun 2003 A1
20030114157 Spitz Jun 2003 A1
20030119528 Pew Jun 2003 A1
20030151507 Andre Aug 2003 A1
20030153340 Crockett Aug 2003 A1
20030153341 Crockett Aug 2003 A1
20030153342 Crockett Aug 2003 A1
20030153343 Crockett Aug 2003 A1
20030161298 Bergman Aug 2003 A1
20030204640 Sahinaja Oct 2003 A1
20030223381 Schroderus Dec 2003 A1
20040002326 Maher Jan 2004 A1
20040044623 Wake Mar 2004 A1
20040064550 Sakata Apr 2004 A1
20040068724 Gardner Apr 2004 A1
20040090121 Simonds May 2004 A1
20040204806 Chen Oct 2004 A1
20040205151 Sprigg Oct 2004 A1
20040229632 Flynn Nov 2004 A1
20050003797 Baldwin Jan 2005 A1
20050028034 Gantman Feb 2005 A1
20050039178 Marolia Feb 2005 A1
20050041578 Huotari Feb 2005 A1
20050086340 Kang Apr 2005 A1
20050086467 Asokan Apr 2005 A1
20050112030 Gauss May 2005 A1
20050136895 Thenthiruperai Jun 2005 A1
20050172217 Leung Aug 2005 A1
20050174987 Raghav Aug 2005 A1
20050209995 Aksu Sep 2005 A1
20050246217 Horn Nov 2005 A1
20050259675 Tuohino Nov 2005 A1
20060053225 Poikleska Mar 2006 A1
20060058045 Nilsen Mar 2006 A1
20060074618 Miller Apr 2006 A1
20060090136 Miller Apr 2006 A1
20060132349 Stern Jun 2006 A1
20060212558 Sahinoja Sep 2006 A1
20060212562 Kushwaha Sep 2006 A1
20060234639 Kushwaha Oct 2006 A1
20060234698 Folk Oct 2006 A1
20070026854 Nath Feb 2007 A1
20070030539 Nath Feb 2007 A1
20070030973 Mikan Feb 2007 A1
20070042765 Bailin Feb 2007 A1
20100214148 Kuhn Aug 2010 A1
20100214149 Kuhn Aug 2010 A1
Non-Patent Literature Citations (5)
Entry
B.W. Parkinson et al., Global Positioning System: Theory and Applications, vol. 1, Progress in Astronautics and Aeronatics, vol. 163, American Institute of Aeronautics and Astronautics, Inc., p. 184-187, 1996.
M. Spreitzer et al., Providing Location Information in a Ubiquitous Computing Environment, Operating Systems Review (SIGOPS), Dec. 1993, No. 5, pp. 270-283.
U. Leonhardt et al, Toward a General Location Service for Mobile Environments, Services in a Distributed and Networked Environments, Dept. of Computing, Imperial College, IEEE, 1996, pp. 43-50.
D. Kesdogan, Secure Location Information Management in Cellular Radio Systems, Aachen University of Technology, Computer Science Department, 1995, pp. 35-40.
ETSI Technical Report, Security Techniques Advisory Group (STAG); Definition of user requirements for lawful interception of telecommunications; Requirements of Law Enforcement Agencies, Dec. 1996, ETR 331, pp. 1-22.
Related Publications (1)
Number Date Country
20140080513 A1 Mar 2014 US
Provisional Applications (2)
Number Date Country
60777565 Mar 2006 US
61728546 Nov 2012 US
Continuations (2)
Number Date Country
Parent 12929502 Jan 2011 US
Child 13954379 US
Parent 11405579 Apr 2006 US
Child 12929502 US
Continuation in Parts (1)
Number Date Country
Parent 13954379 Jul 2013 US
Child 14085346 US