TOC |
|
There are currently several protocols developed by different standards organizations that implement a basic design pattern where a client requests location from a location server and the server responds with location information. This document defines a general data model for such protocols, and describes how some existing geolocation protocols can be mapped into this unified model.
This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 3, 2010.
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License.
1.
Introduction
2.
Definitions
3.
Data Model Overview
4.
Request parameters
4.1.
General
4.1.1.
Target
4.1.2.
Callback
4.1.3.
Language
4.1.4.
Accuracy
4.1.5.
Age
4.1.6.
Response Time
4.2.
Protocol
4.2.1.
Protocol Name
4.2.2.
Protocol Version
4.2.3.
Request Type
4.3.
Identifiers
4.3.1.
Unique Identifier (UID)
4.3.2.
Network Access Identifier (NAI)
4.3.3.
Network Access Password
4.3.4.
Group
4.3.5.
IP Address
4.3.6.
MAC Address
4.3.7.
Port Number
4.3.8.
URI
4.3.9.
Fully Qualified Domain Name
4.3.10.
[Cellular] Telephony
4.4.
Measurements
4.4.1.
WiFi
4.4.2.
Cellular
4.4.3.
w16e
4.4.4.
GNSS
4.5.
Other parameters
5.
Response parameters
5.1.
General parameters
5.1.1.
Timestamp
5.1.2.
Target
5.2.
Location [PIDF-LO]
5.2.1.
Geodetic location
5.2.2.
Civic location
5.2.3.
Location by reference
5.3.
Other parameters
6.
Protocol mapping summary
6.1.
Google Gears Geolocation API Mapping
7.
Applications
8.
Privacy Considerations
9.
Security Considerations
10.
References
10.1.
Normative References
10.2.
Informative References
§
Authors' Addresses
TOC |
Over time, the increasing mobility of Internet endpoints, and the global basis on which Internet applciations are delivered, have driven demand for geolocation information about Internet hosts. In order to respond to the demand, many different organizations have developed geolocation platforms and protocols. For example, the SUPL and MLP location protocols for cellular networks were developed in the 3GPP and OMA, while the Parlay/X location protocol for tradional fixed-line telephone networks was developed in ETSI. While many of these protocols have matured idependently, because they are similiar in purpose, the data models that they define are also similiar. While the terminoligy for data elements may vary, the definitions are often analogous, if not equivalent. Despite the clear overlap of function, different protocols continue to be used independently, perpetuating a fragmented marketplace for location services. This fragmentation did not cause problems while the domains of different protocols remained distinct. However, many different types of networks, with their own "native" location protocols, are now being used to carry IP traffic. At the same time, geolocation functiosn are being introduced as core components of modern web browsers and operating systems. These trends argue for a unification of the current space of location protocols in order to facilitate location services that are interoperable across the entire Internet.
Obviously, a proliferation of protocols has practical implications as well. Without a single universal data model, developers are forced to choose which protocols to use or support in their implemetations. Server and client components have little re-usability and interoperability across protocols. Transitioning from one protocol to another is expensive and difficult. This is an unfortunate situation, espescially because it could be avoided given the similarities among protocols. In fact, if a universal data model is agreed upon, and the process for mapping various protocols to and from that data model is standardized, these problems can be resolved.
This document introduces a universal geolocation data model that will meet the needs of the majority of exisiting protocols and be extensible to accomodate future protocols.
This document also provides mappings of some exisiting geolocation protocols to this data model. A main goal of these mappings is to reduce confusion resulting from the use of different terminology to mean the same thing in different specifications.
TOC |
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.) [1].
TOC |
It is logical for the data model to consist of two top level objects: Request and Response. The two natural architectures for location sharing are pull and push style systems. In both of these systems, there is an entity that wants to know location (requester) and an entity that provides location (responder). The request object represents the messages that originate from requesters, and likewise, the response object represents messages originating from responders.
A geolocation data model organized into top level request and response objects would satistfy the needs nearly all current location location protocols. Protocols that use client-request/server-response message flows (HELD, MLP, Parlay/X, Google Gears) are well aligned to use this data model. The data model also fits into protocols that use client-subscribe/server-notify message flows (Parlay/X, [LOC]SIP). Geolocation platforms that depend on client-post location updates can also sue this data model. In short, this request/response structured data model is flexible enough to fit into many different types of protocols and message flows.
The request object contains any information that is necessary/helpful for a location provider. This includes the type of request, identifiers, measurements, constraints on the response, callback URIs, and other relevant information.
The response object contains any information relevant to the location requester. In addition to a location object, this includes the type of response, identifiers, time information, error messages, and any other useful information. Furthermore, a response object does not necessarily have to be used as a "response" in a message flow. It can be used by any entity that wants to send a location object to another, ie, a client posting a location update to a location server.
Obviously, the standard request and response objects will not cover all elements of all protocols; hovever, they are both extensible so they can be customized for individual protocols and extended for futurue use. This document will define a standard way of generically extending the universal data model.
TOC |
TOC |
Parameters listed under "General" are top level parameters not falling under any particular categorization.
TOC |
The Request object MAY specify the target device to which the location request should be sent using the "target" parameter. The value of this paramter is a URI.
TOC |
The Request object MAY specify a callback address to which the location response should be sent using the "callback" parameter. The value of this paramter is a URI. In the case of a third-party location query, this field SHOULD be used to specify the address of the first-party device that is performing the lookup on behalf of the third-party device.
TOC |
The Request objecy MAY define the requested langauge for a response containing a civic address using the "language" parameter. Language values should follow two-character and three-character representations defined is ISO639.
TOC |
The Request object MAY define the requested accuracy for a response containing a geodetic address using the "accuracy" parameter. [What units should accuracy use? How should protocols that request mutliple accuracies be mapped to the unified data model?]
TOC |
The Request object MAY define the maximum age of the location in the response using the "age" parameter. [How should we handle tolerance of this request parameter if it cannot be satisfied? Let each protocol define it? Add tolerance parameters?]
TOC |
The Request object MAY define the requested maximum response time for the location provider to respond to the location request using the "response_time" parameter. [How should this be represented? milliseconds? let protocol decide/define untis?]
TOC |
A Request object MAY define a Protocol object that defines the protocol specific aspects of the request.
TOC |
The "protocol:name" parameter is a string representation of the protocol being used by the universal data model, ie "HELD".
TOC |
The "protocol:version" parameter is a string representation of the version of the protocol being used, which is defined by the "protocol:name" parameter. An example value for this field is "1.1".
TOC |
Protocols that have multiple types of requests can use this field to define what request type to use. For example, Parlay/X might use this field to distinguish a "getLocation" request from a "getTerminalDistance" request or a "startPeriodicalNotification" subscription request.
TOC |
Identifiers are parameters that identify the device that is requesting location. For third-party location queries, these should describe the third-party device, not the first-party requester. That is, if Device A requesting location on behalf of Device B, identifiers should describe Device B, and Device A can be specified via the "callback" parameter.
TOC |
The "uid" parameter MAY be used to define any Unique Identifier applicable to the protocol being represented. [ie, "DUID" for location over dhcp]
A "uid" should not be confused with a network access identifier (see NAI).
TOC |
To be used with protocols that require authentication ie, username, user@domain [See RFC4282]
TOC |
Password associated with UNI for networks that require username/password authentication
TOC |
The "group" parameter MAY be used to define a group/buddy list when looking up a location for multiple users. This is used for third-party requests.
TOC |
The IP address of the requester can be stored using the "ip" parameter.
TOC |
The MAC address (bssid) of the requester can be stored using the "mac" parameter.
TOC |
The "port" parameter MAY be used to specify the UDP or TCP Port being used. This is useful for mulitple requesters running on same IP on different ports.
TOC |
A URI specifying the requester can be stored in the "uri" parameter. For a first-party location query, this SHOULD be the same as the "callback" parameter if both contain values.
TOC |
The fully qualified domain name of the requester can be stored in the "fqdn" parameter. This should be a domain name that resolves to a SINGLE device. ie, server-1.example.com.
TOC |
The "telephony" parameter can be used to store various telephony identifiers, such as MSISDN, IMSI, IMEI, MIN, MDN.
TOC |
Measurements get a little bit tricky with fields, attributes, and units varying across protocols... Need to consider these factors when deciding how to map them to a unversial data model
TOC |
Parameters for storing WiFi Data.
TOC |
Parameters for storing Cellular Data.
TOC |
Parameters for storing w16e Data
TOC |
Parameters for storing GNSS Data
TOC |
Describle how the universal data model can be extended here.
TOC |
TOC |
Parameters listed under "General" are top level parameters not falling under any particular categorization.
TOC |
The time the location was discovered.
TOC |
The device to receiving the response. The value of this parameter is a URI.
TOC |
The Location model is essentially a one-to-one mapping of a PIDF-LO.
TOC |
TOC |
TOC |
TOC |
TOC |
This section shows how existing protocols map to the above unified data model
TOC |
Request Model | Gears |
---|---|
language | address_language |
target | host |
callback | |
accuracy | |
response_age | |
response_time | |
protocol:name | "Google Gears Geolocation" |
protocol:version | |
protocol:request_type | request_address |
identifiers:uid | access_token |
identifiers:nai | |
identifiers:nap | |
identifiers:group | |
identifiers:ip | |
identifiers:mac | |
identifiers:port | |
identifiers:uri | |
identifiers:fqdn | |
identifiers:cellular | |
measurements:wifi | WiFi Data |
measurements:cellular | Cell Data |
measurements:w16e | |
measurements:gnss |
Table 1: Mapping for Google Gears Geolocation API to Request Object
Table 1 |
Response Model | Gears |
---|---|
timestamp | |
target | |
location | |
location:geo | |
location:geo:point:latitude | latitude |
location:geo:point:longitude | longitude |
location:geo:point:altitude | altitude |
location:geo:point:accuracy | accuracy |
location:geo:point:altitude_accuracy | altitude_accuracy |
location:civic | |
location:civic:language | |
location:civic:country | address:country |
location:civic:a1 | address:region |
location:civic:a2 | address:country |
location:civic:a3 | address:city |
location:civic:a4 | |
location:civic:a5 | |
location:civic:a6 | address:street |
location:civic:prd | |
location:civic:pod | |
location:civic:sts | address:street_number |
location:civic:hno | |
location:civic:hns | |
location:civic:lmk | |
location:civic:loc | |
location:civic:name | |
location:civic:pc | address:postal_code |
location:civic:bld | address:premises |
location:civic:unit | |
location:civic:flr | |
location:civic:room | |
location:civic:plc | |
location:civic:pcn | |
location:civic:pobox | |
location:civic:addcode | |
location:civic:seat | |
location:civic:rd | |
location:civic:rdsec | |
location:civic:rdbr | |
location:civic:rdsubbr | |
location:civic:prm | |
location:civic:pom | |
location:reference | |
location:reference:uris |
Table 2: Mapping for Google Gears Geolocation API to Response Object
Table 2 |
TOC |
This section provides use cases for the unified data model (UDM):
TOC |
[Text here]
TOC |
[Text here]
TOC |
TOC |
[1] | Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML). |
[2] | Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar, J., Polk, J., and J. Rosenberg, “Common Policy: A Document Format for Expressing Privacy Preferences,” RFC 4745, February 2007 (TXT). |
[3] | Mealling, M., “The IETF XML Registry,” BCP 81, RFC 3688, January 2004 (TXT). |
[4] | Schulzrinne, H., Tschofenig, H., Morris, J., Cuellar, J., and J. Polk, “Geolocation Policy: A Document Format for Expressing Privacy Preferences for Location Information,” draft-ietf-geopriv-policy-21 (work in progress), January 2010 (TXT). |
[5] | Barnes, M., Winterbottom, J., Thomson, M., and B. Stark, “HTTP Enabled Location Delivery (HELD),” draft-ietf-geopriv-http-location-delivery-16 (work in progress), August 2009 (TXT). |
[6] | Polk, J., “Dynamic Host Configuration Protocol (DHCP) IPv4 and IPv6 Option for a Location Uniform Resource Identifier (URI),” draft-ietf-geopriv-dhcp-lbyr-uri-option-07 (work in progress), March 2010 (TXT). |
TOC |
[7] | Peterson, J., “A Presence-based GEOPRIV Location Object Format,” RFC 4119, December 2005 (TXT). |
[8] | Peterson, J., Hardie, T., and J. Morris, “Implications of 'retransmission-allowed' for SIP Location Conveyance,” RFC 5606, August 2009 (TXT). |
[9] | Marshall, R., “Requirements for a Location-by-Reference Mechanism,” draft-ietf-geopriv-lbyr-requirements-09 (work in progress), November 2009 (TXT). |
[10] | Tschofenig, H. and H. Schulzrinne, “GEOPRIV Layer 7 Location Configuration Protocol; Problem Statement and Requirements,” draft-ietf-geopriv-l7-lcp-ps-10 (work in progress), July 2009 (TXT). |
[11] | Polk, J., Schnizlein, J., Linsner, M., Thomson, M., and B. Aboba, “Dynamic Host Configuration Protocol Options for Coordinate-based Location Configuration Information,” draft-ietf-geopriv-rfc3825bis-09 (work in progress), March 2010 (TXT). |
TOC |
Kevin M. Doran | |
BBN Technologies | |
9861 Broken Land Parkway | |
Columbia, MD 21046 | |
US | |
Phone: | +1 410 290 6175 |
Email: | kdoran@bbn.com |
Richard L. Barnes | |
BBN Technologies | |
9861 Broken Land Parkway | |
Columbia, MD 21046 | |
US | |
Phone: | +1 410 290 6169 |
Email: | rbarnes@bbn.com |