Re: [Geopriv] GEOPRIV Event Package Drafts (draft-ietf-geopriv-loc-filters, draft-polk-sip-location-get, and draft-winterbottom-sip-location-package)
Salvatore Loreto <salvatore.loreto@ericsson.com> Thu, 24 July 2008 19:23 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 673BB3A6A64; Thu, 24 Jul 2008 12:23:09 -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 6C85E3A6A63 for <geopriv@core3.amsl.com>; Thu, 24 Jul 2008 12:23:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.65
X-Spam-Level:
X-Spam-Status: No, score=-3.65 tagged_above=-999 required=5 tests=[HELO_EQ_SE=0.35, 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 pnTP6EDV9Isw for <geopriv@core3.amsl.com>; Thu, 24 Jul 2008 12:23:06 -0700 (PDT)
Received: from mailgw3.ericsson.se (mailgw3.ericsson.se [193.180.251.60]) by core3.amsl.com (Postfix) with ESMTP id EFDE23A6A62 for <geopriv@ietf.org>; Thu, 24 Jul 2008 12:23:05 -0700 (PDT)
Received: from mailgw3.ericsson.se (unknown [127.0.0.1]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id E8259206D3; Thu, 24 Jul 2008 21:00:27 +0200 (CEST)
X-AuditID: c1b4fb3c-ab896bb00000193b-b6-4888d14b8896
Received: from esealmw128.eemea.ericsson.se (unknown [153.88.254.121]) by mailgw3.ericsson.se (Symantec Mail Security) with ESMTP id B959D20425; Thu, 24 Jul 2008 21:00:27 +0200 (CEST)
Received: from esealmw128.eemea.ericsson.se ([153.88.254.176]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Thu, 24 Jul 2008 21:00:27 +0200
Received: from mail.lmf.ericsson.se ([131.160.11.50]) by esealmw128.eemea.ericsson.se with Microsoft SMTPSVC(6.0.3790.1830); Thu, 24 Jul 2008 21:00:27 +0200
Received: from nomadiclab.lmf.ericsson.se (nomadiclab.lmf.ericsson.se [131.160.33.3]) by mail.lmf.ericsson.se (Postfix) with ESMTP id 159A92464; Thu, 24 Jul 2008 22:00:27 +0300 (EEST)
Received: from nomadiclab.lmf.ericsson.se (localhost [127.0.0.1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id C8B274DC75; Thu, 24 Jul 2008 22:00:26 +0300 (EEST)
Received: from localhost.localdomain (localhost [IPv6:::1]) by nomadiclab.lmf.ericsson.se (Postfix) with ESMTP id 1D8B04DB19; Thu, 24 Jul 2008 22:00:26 +0300 (EEST)
Message-ID: <4888D14A.4060007@ericsson.com>
Date: Thu, 24 Jul 2008 22:00:26 +0300
From: Salvatore Loreto <salvatore.loreto@ericsson.com>
User-Agent: Thunderbird 2.0.0.16 (X11/20080707)
MIME-Version: 1.0
To: Hannes Tschofenig <Hannes.Tschofenig@gmx.net>
References: <48881375.3070701@nostrum.com> <4888565F.5000609@gmx.net>
In-Reply-To: <4888565F.5000609@gmx.net>
X-Virus-Scanned: ClamAV using ClamSMTP
X-OriginalArrivalTime: 24 Jul 2008 19:00:27.0633 (UTC) FILETIME=[8931AE10:01C8EDBF]
X-Brightmail-Tracker: AAAAAA==
Cc: GEOPRIV Working Group <geopriv@ietf.org>, Rohan Mahy <rohan@ekabal.com>, James Winterbottom <james.winterbottom@andrew.com>, James Polk <jmpolk@cisco.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
Hi Hannes, maybe it should be useful try to setup a meeting between Adam and all the people interested on this stuff /Sal Hannes Tschofenig wrote: > Hi Adam, > > I was aware that the work Rohan did will be continued in the GEOPRIV > working group as it is a chartered item and several folks asked for it > getting completed. > > I obviously wasn't aware of the document James Polk was preparing. > > We did work on a HTTP dereferencing protocol in GEOPRIV and I wanted > to accomplish the same functionality with SIP -- I couldn't figure out > how todo that and hence I helped James Winterbottom with his work on > the document. > > I know that SIP is so complex that one needs experts to extend and use > it but I was hoping that we could write something into a document that > explains the poor implementer fairly quickly on how to get things done. > > I would like to chat with you at the IETF meeting about the details of > this stuff. When do you arrive? > > Ciao > Hannes > > 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 mailing list > Geopriv@ietf.org > https://www.ietf.org/mailman/listinfo/geopriv > _______________________________________________ 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