Re: [Geopriv] GEOPRIV Event Package Drafts (draft-ietf-geopriv-loc-filters, draft-polk-sip-location-get, and draft-winterbottom-sip-location-package)
"James M. Polk" <jmpolk@cisco.com> Thu, 24 July 2008 06:33 UTC
Return-Path: <geopriv-bounces@ietf.org>
X-Original-To: geopriv-archive@megatron.ietf.org
Delivered-To: ietfarch-geopriv-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id ED75C3A6971; Wed, 23 Jul 2008 23:33:50 -0700 (PDT)
X-Original-To: geopriv@core3.amsl.com
Delivered-To: geopriv@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 57BBD28C0D6 for <geopriv@core3.amsl.com>; Wed, 23 Jul 2008 23:33:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.579
X-Spam-Level:
X-Spam-Status: No, score=-6.579 tagged_above=-999 required=5 tests=[AWL=0.020, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x6eGR+DM86se for <geopriv@core3.amsl.com>; Wed, 23 Jul 2008 23:33:47 -0700 (PDT)
Received: from sj-iport-1.cisco.com (sj-iport-1.cisco.com [171.71.176.70]) by core3.amsl.com (Postfix) with ESMTP id 871DE3A68B7 for <geopriv@ietf.org>; Wed, 23 Jul 2008 23:33:47 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.31,244,1215388800"; d="scan'208";a="56970881"
Received: from sj-dkim-4.cisco.com ([171.71.179.196]) by sj-iport-1.cisco.com with ESMTP; 24 Jul 2008 06:34:30 +0000
Received: from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238]) by sj-dkim-4.cisco.com (8.12.11/8.12.11) with ESMTP id m6O6YTlb029786; Wed, 23 Jul 2008 23:34:29 -0700
Received: from xbh-sjc-231.amer.cisco.com (xbh-sjc-231.cisco.com [128.107.191.100]) by sj-core-5.cisco.com (8.13.8/8.13.8) with ESMTP id m6O6YTg8009554; Thu, 24 Jul 2008 06:34:29 GMT
Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-231.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 23 Jul 2008 23:34:28 -0700
Received: from jmpolk-wxp01.cisco.com ([10.21.116.35]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 23 Jul 2008 23:34:28 -0700
X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9
Date: Thu, 24 Jul 2008 01:34:31 -0500
To: Adam Roach <adam@nostrum.com>
From: "James M. Polk" <jmpolk@cisco.com>
In-Reply-To: <48881375.3070701@nostrum.com>
References: <48881375.3070701@nostrum.com>
Mime-Version: 1.0
Message-ID: <XFE-SJC-212YAPNXRPm00004a8c@xfe-sjc-212.amer.cisco.com>
X-OriginalArrivalTime: 24 Jul 2008 06:34:28.0248 (UTC) FILETIME=[52858980:01C8ED57]
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; l=16220; t=1216881269; x=1217745269; c=relaxed/simple; s=sjdkim4002; h=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version; d=cisco.com; i=jmpolk@cisco.com; z=From:=20=22James=20M.=20Polk=22=20<jmpolk@cisco.com> |Subject:=20Re=3A=20GEOPRIV=20Event=20Package=20Drafts=0A=2 0=20(draft-ietf-geopriv-loc-filters,=20draft-polk-sip-locati on-get,=20and=0A=20=20draft-winterbottom-sip-location-packag e) |Sender:=20; bh=T/cOuUeaAuUrtI6LtwLpkCyvaeesf8J4zLDbNto5X64=; b=PGKT3ClAkMmnmx/Ufd1GI0rvhlSrDZkLtJjg6qNcBgfGpkpzy5npcEP+HC Dc6G/b5mImWBM1kuMP/5po/MeF4V1jgmgyByIflKIaSc3P6/JbxhHkn7MfKM IFwhzQ0cp+;
Authentication-Results: sj-dkim-4; header.From=jmpolk@cisco.com; dkim=pass ( sig from cisco.com/sjdkim4002 verified; );
Cc: GEOPRIV Working Group <geopriv@ietf.org>, Rohan Mahy <rohan@ekabal.com>, James Winterbottom <james.winterbottom@andrew.com>
Subject: Re: [Geopriv] GEOPRIV Event Package Drafts (draft-ietf-geopriv-loc-filters, draft-polk-sip-location-get, and draft-winterbottom-sip-location-package)
X-BeenThere: geopriv@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Geographic Location/Privacy <geopriv.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/geopriv>, <mailto:geopriv-request@ietf.org?subject=unsubscribe>
List-Archive: <https://www.ietf.org/mailman/private/geopriv>
List-Post: <mailto:geopriv@ietf.org>
List-Help: <mailto:geopriv-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/geopriv>, <mailto:geopriv-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Sender: geopriv-bounces@ietf.org
Errors-To: geopriv-bounces@ietf.org
Adam Thanks for doing this analysis. I learned a lot in what you wrote below. I don't know if you know this, but at least I (in draft-polk-sip-location-get) didn't know the other IDs were coming - and I suspect each of the other authors were in the same situation. I thought draft-ietf-geopriv-loc-filters was dead (from the IETF69 that presence was to be the only event package used for location), and didn't know about draft-winterbottom-sip-location-package as that ID was submitted after mine. That doesn't make mine right, but it could give you a hint as to how these 3 IDs basically 'showed up at the same time'. All that said, I can't disagree with what you said about draft-polk-sip-location-get below, and will take the guidance as 'what I should do' in the next version of the ID. Thank you James At 12:30 AM 7/24/2008, Adam Roach wrote: >Robert has asked me to review the >RFC3265-related work currently underway in >GEOPRIV, and to provide feedback where necessary. > >I'll preface this by saying that I am only dimly >aware of the overall state of GEOPRIV and its >documents, and I have not been following list >discussion. Forgive me if I show naïvité in >GEOPRIV-specific matters. On the other hand, I >believe I can render an informed opinion on the >RFC3265-related aspects of this work. > >My general impression, on first read, is that >there is a lot of work underway that is either >re-inventing solutions that are under >development elsewhere; or developing >point-solutions that are laser-specific to >GEOPRIV problems, when generalized solutions can >be developed with little or no additional effort. > >In the first case, I believe (based on the >constituents involved) that the re-invention is >being done because the ongoing work elsewhere >doesn't *quite* meet GEOPRIV's requirements. I >would argue that a more fruitful approach would >be ensuring that the mechanisms under >development in the various SIP working groups >take GEOPRIV's requirements into consideration >(or, where RFCs are already published, extending >those mechanisms instead of reinventing them). >In the second case, I suspect that there has >simply been no need to consider whether >particular approaches can be made general, so >the entire concept has simply been ignored. > >Some specific examples (forgive the lack of rigor in the XML): > >draft-ietf-geopriv-loc-filters defines a novel >format for conveying event filtering, even >though mechanisms developed and being developed >elsewhere can accomplish most of what is >desired. I'll take the "initial list of >Interesting Events" as a starting point. > >------------------------------------------------------------ > > 1. the resource moves more than a specific distance horizontally or > vertically since the last notification > > >This is currently proposed to use something like: > > <location-filter> > <movedHoriz uom="urn:ogc:def:uom:EPSG::9001">20</movedHoriz> > <movedVert uom="urn:ogc:def:uom:EPSG::9001">3</movedVert> > </location-filter> > >However, use of RFC4660/4661 would appear to be >sufficient for this purpose. Keep in mind that >RFC4660/4661 is *intended* to be extended by >specific event packages to accommodate the >specific data associated with those event packages. > >I'm going to throw out a strawman based on 4660/4661: > > <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter"> > <ns-bindings> > <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/> > </ns-bindings> > <filter id="123" uri="sip:presentity@example.com"> > <trigger> > <changed component="latlong" by="20"> > /gp:geopriv/gp:location-info/gml:location/gml:coordinates > </changed> > </trigger> > <trigger> > <changed component="altitude" by="3"> > /gp:geopriv/gp:location-info/gml:location/gml:coordinates > </changed> > </trigger> > </filter> > </filter-set> > >Because <gml:coordinates> is effectively a >compound type, we're having to define a new >"component" attribute for <changed>, but this >seems a reasonable package-specific extension. >(This would be cleaner if we could use xpath to >point at a specific component of the >coordinates, but I'm pretty sure you can't refer >to sub-portions of CDATA with xpath). > >------------------------------------------------------------ > > 2. the resource exceeds a specific speed > >This requires just a touch of extra work which, >I'm happy to notice, someone has already brought >to the GEOPRIV working group. I would propose >that you leverage the new elements defined in >draft-singh-geopriv-pidf-lo-dynamic; and, define >a new attribute for the <changed> element, called "toMoreThan": > > <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter"> > <ns-bindings> > <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/> > </ns-bindings> > <filter id="123" uri="sip:presentity@example.com"> > <trigger> > <changed toMoreThan="3"> > /gp:geopriv/gp:location-info/gml:speed > </changed> > </trigger> > </filter> > </filter-set> > >------------------------------------------------------------ > > 3. the resource enters or exits one or more GML objects (for > example, a set of 2-dimensional or 3-dimensional regions) > included or referenced in the filter. > >This one is, admittedly, more tricky than the >rest. However, I wouldn't abandon the event >filter framework altogether here -- it was >specifically designed to be extended with new >trigger types. So, instead of wrapping the ><enterOrExit> in the GEOPRIV-specific ><location-filter>, things would work just as well with: > > <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter"> > <ns-bindings> > <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/> > </ns-bindings> > <filter id="123" uri="sip:presentity@example.com"> > <trigger> > <gp:enterOrExit> > <my:Building> > <gml:name>Building 10</gml:name> > <gml:extentOf> > <gml:Polygon > srsName="urn:ogc:def:crs:EPSG::4326" > xmlns:gml="http://www.opengis.net/gml"> > <gml:exterior> > <gml:LinearRing> > <gml:posList > 37.41188 -121.93243 > 37.41142 -121.93243 > 37.41142 -121.93132 > 37.41188 -121.93132 > 37.41188 -121.93243 > </gml:posLis> > </gml:LinearRing> > </gml:exterior> > </gml:Polygon> > </gml:extentOf> > </my:Building> > </gp:enterOrExit> > </trigger> > </filter> > </filter-set> > > >------------------------------------------------------------ > > 4. one or more of the values of the specified address labels has > changed for the resource (for example, the A1 value of the > civilAddress has changed from California to Nevada) > >This is the _exact_ kind of use case that RFC 4660/4661 was defined for: > > <filter-set xmlns="urn:ietf:params:xml:ns:simple-filter"> > <ns-bindings> > <ns-binding prefix="pidf" urn="urn:ietf:params:xml:ns:pidf"/> > </ns-bindings> > <filter id="123" uri="sip:presentity@example.com"> > <trigger> > ><changed>/gp:geopriv/gp:location-info/c1:civilAddress/c1:A1</changed> > </trigger> > <trigger> > ><changed>/gp:geopriv/gp:location-info/c1:civilAddress/c1:A2</changed> > </trigger> > <trigger> > ><changed>/gp:geopriv/gp:location-info/c1:civilAddress/c1:A3</changed> > </trigger> > <trigger> > ><changed>/gp:geopriv/gp:location-info/c1:civilAddress/c1:PC</changed> > </trigger> > </filter> > </filter-set> > >------------------------------------------------------------ > > 5. a mininum and maximum rate of reports regardless of movement > >Here, we leave the 4660/4661 work behind, and >start looking at throttling. Specifically, I >point to draft-niemi-sipping-event-throttle-06. >Admittedly, that work does not yet take into >account the prospect of forcing a minimum rate >of reports, but that is exactly the kind of >requirement that can be added with very little effort. > >So, for example, if notifications were to be >sent no more frequently than once every 10 >seconds, the SUBSCRIBE message would contain an >Event header field looking something like this: > > Event: presence;throttle=10 > >(or, if the event package name ends up changing -- I'll comment on this below) > > Event: loc-event;throttle=10 > >Now, if we wanted to force updates to be sent >even when they wouldn't otherwise happen, we can >add another requirement to the ongoing throttle >work. I imagine the solution would end up >looking something like this (no more frequently >than once every 10 seconds, and no less frequently than once every 60 seconds): > > Event: presence;throttle=10;force=60 >or > Event: loc-event;throttle=10;force=60 > >------------------------------------------------------------ > >Turning now to draft-polk-sip-location-get-00; >I'll use the various filter types in section 6 to guide the use cases: > > Filter #1 - specifies that a watcher wants location from a specific > presentity/target, or a group of presentities/targets > (i.e., a bulk transfer). > >This is a list subscription (RFC4662) with an >ad-hoc URI list >(draft-ietf-sip-uri-list-subscribe-02) and list >subscribe bodies >(draft-roach-sip-list-subscribe-bodies-00). It >doesn't need to be a filter at all. (This >approach also gets around the some of the >restrictions documented in >draft-polk-sip-location-get, such as having the >same triggers for all the resources in the subscription). > >------------------------------------------------------------ > > Filter #2 - specifies which location format the watcher wants > returned in the NOTIFY (coordinate, civic, or future > location format). The watcher can place a wildcard 'any' > format that is available to the presentity Any filter > specifying more than one locationURI will have all other > filters applied to it within a dialog. > >This appears to be a straightforward application >of the <include> and <exclude> elements from >RFC4661. I'm concerned by suggestions that we >might define a new set of enumerated choices, >such as "geo-only", "civic-only", etc, when you >can achieve these just fine with: > > <!-- civic only --> > <what> > <include > type="xpath">/gp:geopriv/gp:location-info/c1:civilAddress</include> > <exclude > type="xpath">/gp:geopriv/gp:location-info/gml:location</exclude> > </what> > >(and obvious variations on the theme). > >This is particularly nice, because it extends >naturally without having to define tokens for >every combination of location types one might want. > >------------------------------------------------------------ > > Filter #3 - a watcher could want to specify that it wants the > subscription to last over a period of time, or for a > specific number of updates. This would be creating a > dialog, to have the subscription last longer than a > one_time_only location reply. > >I don't have a specific proposal here. However, >I feel rather strongly that any solution to this >kind of filter should be crafted so as to be >general to all event packages instead of >specific to GEOPRIV. I can easily imagine other >event packages needing to do this in the future, >and it would be unfortunate to force them to reinvent this particular wheel. > >------------------------------------------------------------ > > Filter #4 - a watcher could specify exactly which elements of > location it needs to have in the reply. >I think this is most appropriately an extension of 4661; something like: > > > <what> > <include mandatory="true" type="xpath"> > /gp:geopriv/gp:location-info/c1:civilAddress/c1:PC > </include> > <what> > >(where we define a new "mandatory" attribute to >the <include> element, or something similar). > >------------------------------------------------------------ > > Filter #5 - a watcher could add specifically which elements of > location it wants to have in the reply, in other words, > which location elements are optional to include (based > on availability and permissions), but not mandatory to > include in the notification. > >This is the RFC4661 <include> usage straight up. > >------------------------------------------------------------ > > Filter #6 - filter for periodic intervals > >See the discussion of draft-niemi-sipping-event-throttle-06, above. > >------------------------------------------------------------ > > Filter #7 - filter for triggered notifications > > Filter #8 - filter for what constitutes 'movement' in Filter#7, for > example, how many feet did a target move since the last > notification, or how many fractions of a degree did a > target move since the last notification. > > >These two filter appear to refer to most of the >"Interesting Events" from >draft-ietf-geopriv-loc-filters-02, discussed >above. There may be some additional work >necessary to specify units on the <trigger> >predicates, but that should be straightforward work. > >------------------------------------------------------------ > >Turning finally to >draft-winterbottom-sip-location-package-00 -- >I'm a bit befuddled by this work, and I'm >relatively sure it's a lack of background on my part. > >My initial reaction is, "Why are we defining a >new event package for this? Why are we using a >different MIME type?" As far as I am aware, the >information that is being conveyed is precisely >information about a user's presence, and the >format being used is precisely PIDF. How is this not RFC 3856? > >I'm sure there are good answers to these >questions -- or at least, to the one about MIME >types. I don't necessarily want them given in >response to this email (as I can imaging they >may be elementary for most WG participants). >These reasons should, however, be addressed in >the sip-location-package document itself -- I >would suggest a "relationship to RFC 3856" section in the document. > >Also, please keep in mind that the change of >MIME type does not necessitate a change to the >event package type. It would be eminently >reasonable to simply define how >application/held+xml is used with RFC 3856. This >would help save you the trouble of re-inventing >that part of the wheel. (A casual read of the >proposed loc-event event package currently being >proposed doesn't reveal any implied requirements that make 3856 unsuitable). > >/a > >P.S. If you'll forgive a curmudgeonly comment >that is quite squarely in the "bike shed >painting" category -- Assuming GEOPRIV sees >reason to define a new event package, "loc-event >event package" is awkward to say and to type. >And context makes it clear that it's an event >package, so "-event" is completely redundant. >What's wrong with calling the event package "location"? _______________________________________________ Geopriv mailing list Geopriv@ietf.org https://www.ietf.org/mailman/listinfo/geopriv
- [Geopriv] GEOPRIV Event Package Drafts (draft-iet… Adam Roach
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… James M. Polk
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Hannes Tschofenig
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Brian Rosen
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Brian Rosen
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Adam Roach
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Salvatore Loreto
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Adam Roach
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Rohan Mahy
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Adam Roach
- Re: [Geopriv] GEOPRIV Event Package Drafts (draft… Rohan Mahy