Internet DRAFT - draft-hardie-ecrit-iris

draft-hardie-ecrit-iris






Network Working Group                                          T. Hardie
Internet-Draft                                            Qualcomm, Inc.
Expires: April 24, 2006                                        A. Newton
                                                          Verisign, Inc.
                                                           H. Tschofenig
                                                                 Siemens
                                                        October 21, 2005


           An IRIS schema for Emergency Service contact URIs
                      draft-hardie-ecrit-iris-03.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of 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 April 24, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document describes an XML-based protocol for passing location
   information to a server that returns emergency service contact URIs.
   It is intended to fit within a larger framework of standards.
   Specifically, it presumes the existence of a URI scheme appropriate
   for signalling that emergency service is required and distinguishing



Hardie, et al.           Expires April 24, 2006                 [Page 1]

Internet-Draft                    ECON                      October 2005


   among emergency services if appropriate.  It also presumes that an
   entity requesting this response will be able to handle the URIs
   returned as input to appropriate handlers.

Table of Contents

   1.  Requirements notation  . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.1   Usage  . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.2   Discovery  . . . . . . . . . . . . . . . . . . . . . . . .  5
     2.3   A Simple Example . . . . . . . . . . . . . . . . . . . . .  5
     2.4   Deployment Methods . . . . . . . . . . . . . . . . . . . .  7
   3.  Schema Description . . . . . . . . . . . . . . . . . . . . . . 11
     3.1   Query Derivatives  . . . . . . . . . . . . . . . . . . . . 11
       3.1.1   <findEconByCivic> Query  . . . . . . . . . . . . . . . 11
       3.1.2   <findEconByGeo> Query  . . . . . . . . . . . . . . . . 11
       3.1.3   <listServices> Query . . . . . . . . . . . . . . . . . 12
     3.2   Service Types  . . . . . . . . . . . . . . . . . . . . . . 12
     3.3   Result Derivatives . . . . . . . . . . . . . . . . . . . . 12
       3.3.1   <emergencyContact> Result  . . . . . . . . . . . . . . 12
       3.3.2   <emergencyService> Result  . . . . . . . . . . . . . . 13
     3.4   Error Derivatives  . . . . . . . . . . . . . . . . . . . . 13
       3.4.1   <invalidCivicData> . . . . . . . . . . . . . . . . . . 13
       3.4.2   <invalidGeoData> . . . . . . . . . . . . . . . . . . . 13
   4.  Formal Syntax  . . . . . . . . . . . . . . . . . . . . . . . . 14
   5.  Database Replication . . . . . . . . . . . . . . . . . . . . . 18
     5.1   ECONREP Model  . . . . . . . . . . . . . . . . . . . . . . 18
     5.2   ECONREP Formal Syntax  . . . . . . . . . . . . . . . . . . 19
   6.  URI Resolution . . . . . . . . . . . . . . . . . . . . . . . . 24
     6.1   Application Service Label  . . . . . . . . . . . . . . . . 24
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 25
   8.  Internationalization Considerations  . . . . . . . . . . . . . 26
   9.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 27
     9.1   XML Namespace URN Registration . . . . . . . . . . . . . . 27
     9.2   S-NAPTR Registration . . . . . . . . . . . . . . . . . . . 27
     9.3   BEEP Registration  . . . . . . . . . . . . . . . . . . . . 28
   10.   References . . . . . . . . . . . . . . . . . . . . . . . . . 29
     10.1  Normative References . . . . . . . . . . . . . . . . . . . 29
     10.2  Informative References . . . . . . . . . . . . . . . . . . 29
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 30
   A.  Object Signing . . . . . . . . . . . . . . . . . . . . . . . . 31
       Intellectual Property and Copyright Statements . . . . . . . . 32









Hardie, et al.           Expires April 24, 2006                 [Page 2]

Internet-Draft                    ECON                      October 2005


1.  Requirements notation

   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 [5].














































Hardie, et al.           Expires April 24, 2006                 [Page 3]

Internet-Draft                    ECON                      October 2005


2.  Introduction

   This document describes a protocol for taking location information
   compatible with PIDF-LO [8] and passing it to an IRIS [3] server
   using an XML schema specific to the task of returning emergency
   service contact URIs.  These URIs may be of multiple forms, including
   sip, xmpp, and tel, and multiple URIs may be returned to a single
   query.  This document does not presume that this activity takes place
   at any specific point in a call flow.  It is a feature of the overall
   system of which this forms a part that multiple entities may request
   the lookup and perform the substitution of the emergency service
   contact URI.

   This document names this protocol usage "ECON", short for Emergency
   Contact.  The features of ECON are:

   o  Supports queries using civic as well as geospatial location
      information.

   o  Can be used in both recursive and iterative resolution.

   o  Through the re-use of an existing protocol, contains search-
      oriented directory semantics.

   o  Can be used for civic address validation.

   o  Hierarchical deployment of ECON services is independent of civic
      location labels.

   o  Can communicate erroneous requests to facillitate debugging and
      proper user feedback while simultaneously providing best-effort
      answers.


2.1  Usage

   The intended usage of this protocol (ECON) is a simple client query
   to a server that yields a result.  The result may contain a URI for a
   single contact method or URIs for multiple contact methods, a
   reference to another server to which the client should send a query,
   and error messages indicating problems with interpretation of
   location information.  The combination of these components are left
   to the needs and policy of the jurisdiction where the server is being
   operated.

   The framing and formalization of these results are accomplished with
   XML using the IRIS [3] framework.  Though IRIS may be used with
   multiple transfer protocols, this specification intends to target



Hardie, et al.           Expires April 24, 2006                 [Page 4]

Internet-Draft                    ECON                      October 2005


   small XML interactions and stateless transactions so that the UDP-
   based transfer protocol LWZ [9] may be employeed for fast response
   times.

2.2  Discovery

   Discovery of ECON services is to be provided by network elements
   local to the client, hopefully via the same mechanisms providing
   clients with location information.  For instance, clients may obtain
   their location information via DHCP using optional civic or location
   request methods.  Therefore, DHCP could also be used to provide
   clients a reference to the most appropriate ECON server.

2.3  A Simple Example

   After performing link layer attachment, an end host performs stateful
   address autoconfiguration (in our example) using DHCP.  DHCP provides
   the end host with civic location information (encoded in UTF-8
   format):

      +--------+---------------+
      | CAtype | CAvalue       |
      +--------+---------------+
      | 0      | US            |
      | 1      | New York      |
      | 3      | New Yor       |
      | 6      | Broadway      |
      | 22     | Suite 75      |
      | 24     | 10027-0401    |
      +--------+---------------+

                       Figure 1: DHCP Civic Example

   Additionally, DHCP provides information about the ECON server that
   has to be contacted.  An additional step of indirection is possible,
   for example by referring to a domain name that has to be resolved to
   one or multiple IP addresses referring to ECON servers).

   When the user wants to make an emergency call (seeking help from the
   police) the following protocol interaction takes place using UDP-
   based transfer protocol LWZ.  The client encapsulates the received
   civic location information into XML and puts it into a UDP packet.
   The header represents information from IRIS, as detailed in LWZ [9].
   The search query is constructed according to Section 4.  The message
   flow is shown below.






Hardie, et al.           Expires April 24, 2006                 [Page 5]

Internet-Draft                    ECON                      October 2005


   C:           (request packet)
   C: 0x08      (header: V=0,RR=request,PD=no,DS=yes,PT=xml)
   C: 0x03 0xA4 (transaction ID=932)
   C: 0x05 0xDA (maximum response size=1498)
   C: 0x09      (authority length=9)
   C:           (authority="localhost")
   C: 0x6c 0x6f 0x63 0x61 0x6c 0x68 0x6f 0x73 0x74
   C:           (IRIS XML request)
   C: <request xmlns="urn:ietf:params:xml:ns:iris1">
   C:
   C:   <searchSet>
   C:
   C:     <findEconByCivic
   C:       xmlns="urn:ietf:params:xml:ns:econ1" >
   C:
   C:       <civilAddress>
   C:          <country>US</country>
   C:          <A1>New York</A1>
   C:          <A3>New York</A3>
   C:          <A6>Broadway</A6>
   C:          <HNO>123</HNO>
   C:          <LOC>Suite 75</LOC>
   C:          <PC>10027-0401</PC>
   C:       </civilAddress>
   C:
   C:       <service>sos.police</service>
   C:
   C:     </findEconByCivic>
   C:
   C:   </searchSet>
   C:
   C: </request>

                                 Figure 2

   Since the contacted ECON server has the requested information
   available the following response message is returned.  The response
   indicates, as a human readable display string that the 'New York City
   Police Department' is responsible for the given geographical area.
   The indicated URI allows the user to start SIP based communication.











Hardie, et al.           Expires April 24, 2006                 [Page 6]

Internet-Draft                    ECON                      October 2005


   S:           (response packet)
   S: 0x20      (header: V=0,RR=response,PD=no,DS=no,PT=xml)
   S: 0x03 0xA4 (transaction ID=932)
   S:           (IRIS XML response)
   S: <response xmlns="urn:ietf:params:xml:ns:iris1">
   S:
   S:   <resultSet>
   S:     <answer>
   S:
   S:       <emergencyContact xmlns="urn:ietf:params:xml:ns:econ1"
   S:         authority="example.com" registryType="econ1"
   S:         entityClass="econ" entityName="nypd" >
   S:
   S:         <displayName>
   S:           New York City Police Department
   S:         </displayName>
   S:         <service>sos.police</service>
   S:         <uri>
   S:           sip:nypd@example.com
   S:           xmpp:nypd@example.com
   S:         </uri>
   S:
   S:       </emergencyContact>
   S:
   S:     </answer>
   S:
   S:   </resultSet>
   S:
   S: </response>


2.4  Deployment Methods

   Because services for emergency contact resolution may differ
   depending jurisdiction need, this document only specifies the "wire
   format" for ECON services and explicitly leaves open the possibility
   for many different types of deployment.

   For instance:

      During discovery, a client may be directed to issue all queries to
      an ECON service completely authoritative for a given jursidiction.

      A client may be directed to issue queries to an ECON server that
      acts as a reflector.  In such a case, the ECON server analyzes the
      query to determine the best server to wich to refer the client.





Hardie, et al.           Expires April 24, 2006                 [Page 7]

Internet-Draft                    ECON                      October 2005


      Or the client may be directed to a server that performs further
      resolution on behalf of the client.

   An ECON service may also be represented by multiple ECON servers,
   either grouped together or at multiple network locations.  Section 5
   discusses database replication of ECON data to multiple servers.
   Using S-NAPTR [11], clients may be given a list of multiple servers
   to which queries can be sent for a single service.

   For instance, the service at emergency.example.com may advertise ECON
   service at local1.emergency.example.com,
   local2.emergency.example.com, and master.emergency.example.com.  Each
   server may given a different preference.  In this case, 'local1' and
   'local2' may be given a lower preference (more preferred) than
   'master', which might be a busier server or located further away.

   +-----------+             pref 10 +-----------+
   |           |-------------------->+           |
   |  client   |------               |  local1   |
   |           |---   \              |           |
   +-----------+   \   \             +-----------+
                    \   \
                     \   \           +-----------+
                      \   \  pref 10 |           |
                       \   --------->|  local2   |
                        \            |           |
                         \           +-----------+
                          \
                           \                           +-----------+
                            \                  pref 20 |           |
                             ------------------------->|  master   |
                                                       |           |
                                                       +-----------+

   For scenarios requiring redirection, a contact ECON server can
   instruct the client to redirect the query to another ECON server.  If
   a client were to issue a query (such as the one in Figure 2), the
   responding ECON server could redirect the client to another ECON
   server with the following response:












Hardie, et al.           Expires April 24, 2006                 [Page 8]

Internet-Draft                    ECON                      October 2005


   S:           (response packet)
   S: 0x20      (header: V=0,RR=response,PD=no,DS=no,PT=xml)
   S: 0x03 0xA4 (transaction ID=932)
   S:           (IRIS XML response)
   S: <response xmlns="urn:ietf:params:xml:ns:iris1">
   S:
   S:   <resultSet>
   S:     <answer>
   S:
   S:       <searchContinuation authority="another.server.example">
   S:
   S:         <findEconByCivic
   S:           xmlns="urn:ietf:params:xml:ns:econ1" >
   S:
   S:           <civilAddress>
   S:              <country>US</country>
   S:              <A1>New York</A1>
   S:              <A3>New York</A3>
   S:              <A6>Broadway</A6>
   S:              <HNO>123</HNO>
   S:              <LOC>Suite 75</LOC>
   S:              <PC>10027-0401</PC>
   S:           </civilAddress>
   S:
   S:           <service>sos.police</service>
   S:
   S:         </findEconByCivic>
   S:
   S:       </searchContinuation>
   S:
   S:     </answer>
   S:
   S:   </resultSet>
   S:
   S: </response>

   Finally, some deployment scenarios may find it necessary to minimize
   the number of packets sent across the network for reasons of
   performance.  Given the same bootstrap process in Section 2.3, the
   client would be given the following URIs:











Hardie, et al.           Expires April 24, 2006                 [Page 9]

Internet-Draft                    ECON                      October 2005


      +--------------+-----------------------------+
      | Purpose Type | URI Value                   |
      +--------------+-----------------------------+
      | 8            | iris.lwz:econ1//192.0.2.11/ |
      | 9            | iris.lwz:econ1//192.0.2.22/ |
      | 10           | iris.lwz:econ1//192.0.2.33/ |
      | 11           | iris.lwz:econ1//192.0.2.44/ |
      +--------------+-----------------------------+

                        Figure 6: DHCP URI Example

   For the sake of redundancy, multiple URIs may be given pointing to
   different servers or one URI may be given utilizing an anycast IP
   address routing to multiple servers.  Utilizing either method, there
   is only one round-trip to map a location to a URI.




































Hardie, et al.           Expires April 24, 2006                [Page 10]

Internet-Draft                    ECON                      October 2005


3.  Schema Description

   IRIS [3] requires the derivation of both query and result elements by
   a registry schema.  These descriptions follow.

   References to XML elements without a namespace qualifier are from the
   schema defined in this document.  References to elements and
   attributes with the "iris" XML namespace qualifier are from the
   schema defined in IRIS [3].  Reference to elements and attributes
   with the "civilLoc" XML namespace qualifier are from the civil
   location schema defined in PIDF-LO [8].  References to elements and
   attributes with the "gml" XML namespace qualifier are from the GML
   [7].

   The descriptions contained within this section refer to XML elements
   and attributes and their relation to the exchange of data within the
   protocol.  These descriptions also contain specifications outside the
   scope of the formal XML syntax.  This section will use terms defined
   by RFC 2119 to describe these.  While reading this section, please
   refer below for needed details on the formal XML syntax.

3.1  Query Derivatives

3.1.1  <findEconByCivic> Query

   The <findEconByCivic> query allows a client to search for an
   emergency contact using civic information.  Civic information is
   communicated via a <civilAddress> element defined in the
   urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc namespace defined by
   the civil location schema in PIDF-LO [8].

   This query may also have a <service> element as defined in
   Section 3.2.

   Finally, this query has an optional 'validate' attribute that can
   either be true or false (the default is false).  This attribute
   indicates that the query is being performed for validation purposes.

3.1.2  <findEconByGeo> Query

   The <findEconByGeo> query allows a client to search for an emergency
   contact using geo-spatial location information.  This geo-spatial
   information is communicated via a <location> element defined by GML
   [7].

   This query may also have a <service> element as defined in
   Section 3.2.




Hardie, et al.           Expires April 24, 2006                [Page 11]

Internet-Draft                    ECON                      October 2005


   Finally, this query has an optional 'validate' attribute that can
   either be true or false (the default is false).  This attribute
   indicates that the query is being performed for validation purposes.

3.1.3  <listServices> Query

   The <listServices> query allows a client to obtain a list of
   emergency services supported by an ECON server.  Like the other
   queries, it to has a 'validate' attribute that can either be true or
   false (the default is false).

3.2  Service Types

   Types of emergency service are specified by the <service> element.
   Its well-known values are:

   1.  sos.fire

   2.  sos.police

   3.  sos.medical

   This information is provided as a hint from the client to the server
   and is not intended to produce no results should the <service>
   element not be given or if its specified type is not available.  In
   other words, servers MUST ignore this information if it would cause
   no result to be returned.

   The purpose of defining a well-known list for this element is so that
   these tokens may be localized by client user interfaces.  However,
   ECON servers may recognize other tokens and may pass them back via
   the <listServices> query.

3.3  Result Derivatives

3.3.1  <emergencyContact> Result

   The <emergencyContact> result describes the URIs to be used to reach
   an emergency contact.  It may have an optional <displayName> element
   and <service> element (see Section 3.2 which may be used by user
   agents for user feedback purposes.

   The primary information relayed in this result are URIs to be used to
   make contact with emergency services.  This result may contain
   multiple URIs.  These URIs are not provided in preference order, and
   clients MUST NOT attach preference to any URI based upon its position
   in the list.  Server MUST NOT provide more than one URI of the same
   URI scheme in a result (e.g. two "sip:" URIs are not allowed).  The



Hardie, et al.           Expires April 24, 2006                [Page 12]

Internet-Draft                    ECON                      October 2005


   purpose of providing multiple URIs is to offer multiple methods of
   contact.

   This query has an optional 'timeToLive' attribute which expresses the
   number of minutes a client SHOULD wait before requerying the ECON
   server if the client's location has not changed.  For clients with
   knowledge of their geo-spatial location, this query may also contain
   a <polygon> element as defined by GML [7].  This polygon indicates to
   the client that the server considers a location change to mean that
   the client has moved outside of the polygon.

3.3.2  <emergencyService> Result

   The <emergencyService> result describes an emergency service provided
   by the ECON server.  It consists of a display name and a <service>
   element as found in Section 3.2.

3.4  Error Derivatives

   The following errors indicate that either a civic address or geo-
   spatial location were in some way invalid.  These errors provide for
   free form text to further explain the error.

3.4.1  <invalidCivicData>

   Servers may use the <invalidCivicData> error to inform clients of
   semantically invalid civil address information sent in a query.  When
   the validate attribute on the query was set to true, a server MAY
   return this error when the CivicData provided is not recognized as
   valid even if the data provided would normally have returned a URI or
   set of URIs.  This can occur, for example, when an invalid street
   name or number is provided but the algorithm for determining the
   correct URI is satisfied when a valid county is provided.  This
   facility will normally only be used in debugging and by technical
   professionals; it is not recommended outside of that context.

3.4.2  <invalidGeoData>

   Servers may use the <invalidGeoData> error to inform clients of
   semantically invalid geo-spatial data sent in a query.  When the
   validate attribute on the query was set to true, a server MAY return
   this error when the GeoData provided is not recognized as valid even
   if the data provided would normally return a URI or set of URIs.
   This facility will normally only be used in debugging and by
   technical professionals; it is not recommended outside of that
   context.





Hardie, et al.           Expires April 24, 2006                [Page 13]

Internet-Draft                    ECON                      October 2005


4.  Formal Syntax

   This registry schema is specified in the XML Schema notation (see [1]
   and [2]).  The formal syntax presented here is a complete schema
   representation suitable for automated validation of an XML instance
   when combined with the formal schema syntax of IRIS [3], PIDF-LO [8]
   Civil Location, and GML [7].

   <?xml version="1.0"?>
   <schema
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:econ="urn:ietf:params:xml:ns:econ1"
     xmlns:iris="urn:ietf:params:xml:ns:iris1"
     xmlns:civilLoc="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc"
     xmlns:gml="http://www.opengis.net/gml"
     targetNamespace="urn:ietf:params:xml:ns:econ1"
     elementFormDefault="qualified" >

     <import namespace="urn:ietf:params:xml:ns:iris1" />
     <import
       namespace="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc" />
     <import namespace="http://www.opengis.net/gml" />

     <annotation>
       <documentation>
         A schema for finding Emergency Contacts (ECON)
         using the Internet Registry Information Service (IRIS)
       </documentation>
     </annotation>


     <!--             -->
     <!-- Query types -->
     <!--             -->

     <complexType name="findEconByCivicType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element name="civilAddress"
               type="civilLoc:civilAddress"/>
             <element name="service"
               type="token" minOccurs="0" />
           </sequence>
           <attribute name="validate" type="boolean"
             default="false" />
         </extension>
       </complexContent>



Hardie, et al.           Expires April 24, 2006                [Page 14]

Internet-Draft                    ECON                      October 2005


     </complexType>

     <element name="findEconByCivic"
       type="econ:findEconByCivicType"
       substitutionGroup="iris:query" />

     <complexType name="findEconByGeoType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element
               ref="gml:location"/>
             <element name="service"
               type="token" minOccurs="0" />
           </sequence>
           <attribute name="validate" type="boolean"
             default="false" />
         </extension>
       </complexContent>
     </complexType>

     <element name="findEconByGeo"
       type="econ:findEconByGeoType"
       substitutionGroup="iris:query" />

     <complexType name="listServicesType">
       <complexContent>
         <extension base="iris:queryType">
           <attribute name="validate" type="boolean"
             default="false" />
         </extension>
       </complexContent>
     </complexType>

     <element name="listServices"
       type="econ:listServicesType"
       substitutionGroup="iris:query" />

     <!--              -->
     <!-- Result types -->
     <!--              -->

     <complexType name="emergencyContactType">
       <complexContent>
         <extension base="iris:resultType">
           <sequence>
             <element name="displayName"
               type="normalizedString" minOccurs="0" />



Hardie, et al.           Expires April 24, 2006                [Page 15]

Internet-Draft                    ECON                      October 2005


             <element name="service"
               type="token"/>
             <element ref="gml:Polygon" minOccurs="0" />
             <element name="uri"
               type="anyURI"
               minOccurs="1" maxOccurs="unbounded" />
           </sequence>
           <attribute name="timeToLive"
             type="positiveInteger" />
         </extension>
       </complexContent>
     </complexType>

     <element name="emergencyContact"
       type="econ:emergencyContactType"
       substitutionGroup="iris:result" />

     <complexType name="emergencyServiceType">
       <complexContent>
         <extension base="iris:resultType">
           <sequence>
             <element name="displayName"
               type="normalizedString" minOccurs="0" />
             <element name="service"
               type="token"/>
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="emergencyService"
       type="econ:emergencyServiceType"
       substitutionGroup="iris:result" />

     <!--             -->
     <!-- Error types -->
     <!--             -->

     <element name="invalidCivicData"
       type="iris:codeType"
       substitutionGroup="iris:genericCode" />

     <element name="invalidGeoData"
       type="iris:codeType"
       substitutionGroup="iris:genericCode" />

   </schema>




Hardie, et al.           Expires April 24, 2006                [Page 16]

Internet-Draft                    ECON                      October 2005


                            Figure 7: econ.xsd


















































Hardie, et al.           Expires April 24, 2006                [Page 17]

Internet-Draft                    ECON                      October 2005


5.  Database Replication

   Local copies of the emergency contact database will need to have data
   replicated from a master copy of the emergency contact database.
   Three methods may be employeed to conduct this database replication:

   1.  Database contents may be serialized to a file using the format
       specified in Section 5 of IRIS [3].  These files may then be
       transfered using FTP or other appropriate file transfer
       protocols.

   2.  Periodic and incremental database replication may be accomplished
       using the ECONREP schema provided in Section 5.1.

   3.  Native database replication methods found with many commercial
       and/or highly scalable database management systems may be used as
       appropriate.


5.1  ECONREP Model

   This section describes a method for replicating ECON databases using
   a distinct IRIS profile.  This is not the only mechanism for database
   replication and any other method that produces synchronization of the
   required atomicity and freshness is permitted.  ECONREP has the
   following characteristics:

   o  Replication may occur incrementally.

   o  Changes to ECON data may be replicated to local copies before the
      effective date of the changes.

   o  Replication requests may conducted over XPC [10] allowing the
      server to retain lower protocol overhead when transfering large
      quantities of data.

   o  It is a distinctly different set of queries and results for the
      purpose of database replication and does not muddle the semantics
      of the ECON query and response semantics used between an ECON
      client and an ECON service.

   Utilizing ECONREP, local copies periodically query the master copy
   for a list of changes.  The master may reply with the entire list of
   changes or may only provide a partial list of changes and inform the
   local copy to requery later for the remainder of the change list.

   The queries used to conduct replication are <listEconCivicChanges>
   and <listEconGeoChanges>, for civic addresses and geospatial



Hardie, et al.           Expires April 24, 2006                [Page 18]

Internet-Draft                    ECON                      October 2005


   locations respectively.  Both queries take three parameters: a
   location (either geospatial or civic), an emergency service type, and
   starting synchronization point (expressed either as a date or as a
   starting change set).

   Depending on the query, the server will return a series of
   <civicChange> results or <geoChange> results.  Both types of result
   have the following components: the change set to which they belong,
   the effective date for the change (may be in the future), a list of
   covered locations, and the emergency contact for the covered
   locations.  The effective date allows replication of future changes
   to the data.  Its absence means the change is to be effective
   immediately.

   A change set is composed of two values, a serial number and a set
   number.  The serial number indicates an overall version of the
   database.  The set number is used to group results together in sets.
   The method used to group sets of results is implementation dependent,
   however this is the key used by the client to indicate the last set
   of data that was replicated.  Entire change sets SHOULD be set at one
   time.

   If a master becomes too busy or wishes to incrementally replicate
   data for other reasons, it may issue a <replicationLimit> error.
   This can be done after sending change sets in a response, such as:

      response

         change set 1

         change set 2

         change set 3

         replication limit

   The <replicationLimit> error may have an optional 'backOff' attribute
   indicating the number of minutes that should elapse before a
   subsequent replication query is attempted.

5.2  ECONREP Formal Syntax

   This registry schema is specified in the XML Schema notation (see [1]
   and [2]).  The formal syntax presented here is a complete schema
   representation suitable for automated validation of an XML instance
   when combined with the formal schema syntax of IRIS [3], ECON,
   PIDF-LO [8] Civil Location, and GML [7].




Hardie, et al.           Expires April 24, 2006                [Page 19]

Internet-Draft                    ECON                      October 2005


   <?xml version="1.0"?>
   <schema
     xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:econrep="urn:ietf:params:xml:ns:econ1rep1"
     xmlns:econ="urn:ietf:params:xml:ns:econ1"
     xmlns:iris="urn:ietf:params:xml:ns:iris1"
     xmlns:civilLoc="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc"
     xmlns:gml="http://www.opengis.net/gml"
     targetNamespace="urn:ietf:params:xml:ns:econ1rep1"
     elementFormDefault="qualified" >

     <import namespace="urn:ietf:params:xml:ns:iris1" />
     <import namespace="urn:ietf:params:xml:ns:econ1" />
     <import
       namespace="urn:ietf:params:xml:ns:pidf:geopriv10:civilLoc" />
     <import namespace="http://www.opengis.net/gml" />

     <annotation>
       <documentation>
         A schema for replicating Emergency Contact (ECON)
         data stores.
       </documentation>
     </annotation>


     <!--             -->
     <!-- Query types -->
     <!--             -->

     <complexType name="listEconCivicChangesType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element name="civilAddress"
               type="civilLoc:civilAddress"
               minOccurs="0"/>
             <element name="service"
               type="token" minOccurs="0" />
             <choice>
               <element name="since" type="dateTime" />
               <element name="startingChangeSet"
                 type="econrep:changeSetType" />
             </choice>
           </sequence>
         </extension>
       </complexContent>
     </complexType>




Hardie, et al.           Expires April 24, 2006                [Page 20]

Internet-Draft                    ECON                      October 2005


     <element name="listEconCivicChanges"
       type="econrep:listEconCivicChangesType"
       substitutionGroup="iris:query" />

     <complexType name="listEconGeoChangesType">
       <complexContent>
         <extension base="iris:queryType">
           <sequence>
             <element
               ref="gml:location"
               minOccurs="0"/>
             <element name="service"
               type="token" minOccurs="0" />
             <choice>
               <element name="since" type="dateTime" />
               <element name="startingChangeSet"
                 type="econrep:changeSetType" />
             </choice>
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="listEconGeoChanges"
       type="econrep:listEconGeoChangesType"
       substitutionGroup="iris:query" />

     <complexType name="changeSetType">
       <attribute name="serialNumber"
         type="positiveInteger" use="required" />
       <attribute name="setNumber"
         type="positiveInteger" use="required" />
     </complexType>

     <!--              -->
     <!-- Result types -->
     <!--              -->

     <complexType name="civicChangeType">
       <complexContent>
         <extension base="iris:resultType">
           <sequence>
             <element name="changeSet"
               type="econrep:changeSetType" />
             <element name="effective"
               type="dateTime" minOccurs="0" />
             <element name="coveredLocations">
               <complexType>



Hardie, et al.           Expires April 24, 2006                [Page 21]

Internet-Draft                    ECON                      October 2005


                 <sequence>
                   <element name="civilAddress"
                     type="civilLoc:civilAddress"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
                 </sequence>
                 <attribute
                   name="coversAllMoreSpecificAddresses"
                   type="boolean" default="false"/>
               </complexType>
             </element>
             <element ref="econ:emergencyContact"
               minOccurs="0" maxOccurs="unbounded" />
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="civicChange"
       type="econrep:civicChangeType"
       substitutionGroup="iris:result" />

     <complexType name="geoChangeType">
       <complexContent>
         <extension base="iris:resultType">
           <sequence>
             <element name="changeSet"
               type="econrep:changeSetType" />
             <element name="effective"
               type="dateTime" minOccurs="0" />
             <element name="coveredLocations">
               <complexType>
                 <sequence>
                   <element
                     ref="gml:location"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
                 </sequence>
               </complexType>
             </element>
             <element ref="econ:emergencyContact"
               minOccurs="0" maxOccurs="unbounded" />
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element name="geoChange"



Hardie, et al.           Expires April 24, 2006                [Page 22]

Internet-Draft                    ECON                      October 2005


       type="econrep:geoChangeType"
       substitutionGroup="iris:result" />

     <!--             -->
     <!-- Error types -->
     <!--             -->

     <complexType name="replicationLimitType">
       <complexContent>
         <extension base="iris:codeType">
           <attribute name="backOff"
             type="positiveInteger" />
         </extension>
       </complexContent>
     </complexType>

     <element name="replicationLimit"
       type="econrep:replicationLimitType"
       substitutionGroup="iris:genericCode" />

   </schema>

                           Figure 8: econrep.xsd




























Hardie, et al.           Expires April 24, 2006                [Page 23]

Internet-Draft                    ECON                      October 2005


6.  URI Resolution

6.1  Application Service Label

   The application service label associated with ECON MUST be "ECON1".
   This is the abbreviated form of the URN for this registry type,
   urn:ietf:params:xml:ns:econ1.

   The application service label associated with ECONREP MUST be
   "ECON1REP1".  This is the abbreviated form of the URN for this
   registry type, urn:ietf:params:xml:ns:econ1rep1.








































Hardie, et al.           Expires April 24, 2006                [Page 24]

Internet-Draft                    ECON                      October 2005


7.  Security Considerations

   There are multiple threats to the overall system of which this forms
   a part.  An attacker that can obtain emergency service contact URIs
   can use those URIs to attempt to disrupt emergency services.  An
   attacker that can prevent the lookup of contact URIs can hinder the
   request of emergency services.  An attacker that can eavesdrop on the
   communication requesting this lookup can surmise the existence of an
   emergency and possibly its nature, and may be able to use this as a
   springboard to a physical attack.









































Hardie, et al.           Expires April 24, 2006                [Page 25]

Internet-Draft                    ECON                      October 2005


8.  Internationalization Considerations

   Implementers should be aware of considerations for
   internationalization in IRIS [3].















































Hardie, et al.           Expires April 24, 2006                [Page 26]

Internet-Draft                    ECON                      October 2005


9.  IANA Considerations

9.1  XML Namespace URN Registration

   This document makes use of a proposed XML namespace and schema
   registry specified in XML_URN [6].  Accordingly, the following
   registration information is provided for the IANA regarding ECON:

   o  URN/URI:

      *  urn:ietf:params:xml:ns:econ1

   o  Contact:

      *  Andrew  Newton <andy@hxr.us>

      *  Ted Hardie  <hardie@qualcomm.com>

   o  XML:

      *  The XML Schema specified in Section 4

   This document makes use of a proposed XML namespace and schema
   registry specified in XML_URN [6].  Accordingly, the following
   registration information is provided for the IANA regarding ECONREP:

   o  URN/URI:

      *  urn:ietf:params:xml:ns:econ1rep1

   o  Contact:

      *  Andrew  Newton <andy@hxr.us>

      *  Ted Hardie  <hardie@qualcomm.com>

   o  XML:

      *  The XML Schema specified in Section 5.2


9.2  S-NAPTR Registration

   The following S-NAPTR application service labels will need to be
   registered with IANA according to the IANA considerations defined in
   IRIS [3]:





Hardie, et al.           Expires April 24, 2006                [Page 27]

Internet-Draft                    ECON                      October 2005


      ECON1

      ECON1REP1


9.3  BEEP Registration

   The following BEEP Profile URIs are to be registeried with IANA, in
   addition to the registration provided in IRIS-BEEP [4].

      http://iana.org/beep/iris1/econ1

      http://iana.org/beep/iris1/econ1rep1






































Hardie, et al.           Expires April 24, 2006                [Page 28]

Internet-Draft                    ECON                      October 2005


10.  References

10.1  Normative References

   [1]  World Wide Web Consortium, "XML Schema Part 2: Datatypes",
        W3C XML Schema, October 2000,
        <http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>.

   [2]  World Wide Web Consortium, "XML Schema Part 1: Structures",
        W3C XML Schema, October 2000,
        <http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>.

   [3]  Newton, A. and M. Sanz, "Internet Registry Information Service",
        RFC 3891, January 2005.

   [4]  Newton, A. and M. Sanz, "Internet Registry Information Service
        (IRIS) over Blocks Extensible Exchange Protocol (BEEP)",
        RFC 3893, January 2005.

   [5]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", RFC 2119, BCP 14, March 1997.

   [6]  Mealling, M., "The IETF XML Registry",
        draft-mealling-iana-xmlns-registry-03 (work in progress),
        November 2001.

   [7]  OpenGIS, "Open Geography Markup Language (GML) Implementation
        Specification", OGC OGC 02-023r4, January 2003.

   [8]  Peterson, J., "A Presence-based GEOPRIV Location Object Format",
        draft-ietf-geopriv-pidf-lo-03 (work in progress),
        September 2004.

10.2  Informative References

   [9]   Newton, A., "A Lightweight UDP Transport for IRIS",
         draft-ietf-crips-iris-lwz-03 (work in progress), June 2005.

   [10]  Newton, A., "XML Pipelining with Chunks",
         draft-ietf-crips-iris-xpc-01 (work in progress), June 2005.

   [11]  Daigle, L. and A. Newton, "Domain-Based Application Service
         Location Using SRV RRs and the Dynamic Delegation Discovery
         Service (DDDS)", RFC 3958, January 2005.







Hardie, et al.           Expires April 24, 2006                [Page 29]

Internet-Draft                    ECON                      October 2005


Authors' Addresses

   Ted Hardie
   Qualcomm, Inc.


   Andrew Newton
   Verisign, Inc.


   Hannes Tschofenig
   Siemens







































Hardie, et al.           Expires April 24, 2006                [Page 30]

Internet-Draft                    ECON                      October 2005


Appendix A.  Object Signing

   The authors considered several mechanisms for attaching digital
   signatures to one or more parts of the ECON response.  After this
   consideration, they were all rejected.  The authors believe that the
   mechanisms available to check the validity of the digital signature
   are too heavyweight for the use cases in which the query is made
   immediately prior to an emergency call.  In those cases, the authors
   believe that the rational response is to attempt the emergency call
   whether the digital signature is valid or invalid.  Further, we
   believe that the check could add significant time and network round
   trips to the call set-up, which is clearly undesirable in this case.

   Other use cases, for validation or replication, might benefit from
   object signatures, but they have been omitted at this time as
   requiring more implementation and deployment resources than are
   justified by the return.  Details on lightweight mechanisms which
   might change the value of digital signatures for one or more of these
   use cases would be welcomed by the authors.
































Hardie, et al.           Expires April 24, 2006                [Page 31]

Internet-Draft                    ECON                      October 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Hardie, et al.           Expires April 24, 2006                [Page 32]