Re: [Webpush] 202 (Accepted) and simplifying acknowledgements

Costin Manolache <costin@gmail.com> Fri, 19 February 2016 22:22 UTC

Return-Path: <costin@gmail.com>
X-Original-To: webpush@ietfa.amsl.com
Delivered-To: webpush@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0B0881B317F for <webpush@ietfa.amsl.com>; Fri, 19 Feb 2016 14:22:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4r10R3himeky for <webpush@ietfa.amsl.com>; Fri, 19 Feb 2016 14:22:42 -0800 (PST)
Received: from mail-oi0-x234.google.com (mail-oi0-x234.google.com [IPv6:2607:f8b0:4003:c06::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 917BD1B2EDA for <webpush@ietf.org>; Fri, 19 Feb 2016 14:22:42 -0800 (PST)
Received: by mail-oi0-x234.google.com with SMTP id m82so21778490oif.1 for <webpush@ietf.org>; Fri, 19 Feb 2016 14:22:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=TWHtJsCepY9F+CGvGRp+SnAphjczM7Hj3l/zlTuNh9A=; b=gPMPmlR8TD24cuftSypSfAr/y90UH5xjK1FdClaE9LJ7C2oj0G+TXBF/Y0JxLmesPb 0UOFLlEfpptjlXex9pNjR94slTFdPkXqpvs4GjNzkQT8FlmSlta+FPL6IdGf2Pu7NdNf V+I9TqpEOHAOmwSRxKzpMPpjkKc5T1tmmO0suApoDQ9dGX2Z/KllkgD530WH1SibYzy0 M1gIhKxe4f0spyZYaHRZkfTteAu2kR0hL94uTKDLlMguH9cSjGFZooTka5piJ3t5PQGu Gq7c88nmW8Vn/0Pu3QHp8TYc0cWXWbFNeiGGn/4hVVwfxLDxKRuABu5+N9No53DKapB1 lFGA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=TWHtJsCepY9F+CGvGRp+SnAphjczM7Hj3l/zlTuNh9A=; b=PiY1LyKGX+UJPo4SchrBp41MUHNX4ZGggZB8AxwNGeL+SSvuVbQwK3ejXUuxw8rEbz 0GMckm9dve+pk21XenBnoBGtFAh6ucmwpgDZUAoDW+yETvB6jGRFGtosaJpN8IiSR62W vmd/LiFghfWQ8RulyB6rslcLW0LVK850pRUcMRliV3YemqsZ+UmI58gLdpc1esAn4T+A KfhbMbhhO6FS0vxvjrFUrJkrFRQAdly8zggL9bvRz1ItVfX1LpU8B7p53PZNlCtN3DTp j3xmNU33C51RzJgSCtHjSLuP6Zqx3bdnVj4TBX/DEFMmTma7erS6ywjdFZE+cudH8XZa lRGg==
X-Gm-Message-State: AG10YOS4RkA9N5ai5zTimt2CPI6LhXAz3oP8HtzyNKQ0yuMNZ4ZW2+IBjK5t96Zc6EtD/4nv4RwsYk+vmcIVlQ==
MIME-Version: 1.0
X-Received: by 10.202.102.69 with SMTP id a66mr13282601oic.93.1455920561999; Fri, 19 Feb 2016 14:22:41 -0800 (PST)
Received: by 10.76.75.35 with HTTP; Fri, 19 Feb 2016 14:22:41 -0800 (PST)
In-Reply-To: <BY2PR0301MB06475638E9DE5D87782E71C783A00@BY2PR0301MB0647.namprd03.prod.outlook.com>
References: <BY2PR0301MB06475638E9DE5D87782E71C783A00@BY2PR0301MB0647.namprd03.prod.outlook.com>
Date: Fri, 19 Feb 2016 14:22:41 -0800
Message-ID: <CAP8-Fq=WfSmD8+4sKsB5RJVLKt-ht9HNz9AgkmqdJkBOoKJKkQ@mail.gmail.com>
From: Costin Manolache <costin@gmail.com>
To: Brian Raymor <Brian.Raymor@microsoft.com>
Content-Type: multipart/alternative; boundary=001a1140f400eb54a0052c26eb8d
Archived-At: <http://mailarchive.ietf.org/arch/msg/webpush/X97zzFOJSj5UiXMMiwzZVGSkfRs>
Cc: "webpush@ietf.org" <webpush@ietf.org>
Subject: Re: [Webpush] 202 (Accepted) and simplifying acknowledgements
X-BeenThere: webpush@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussion of potential IETF work on a web push protocol <webpush.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webpush>, <mailto:webpush-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webpush/>
List-Post: <mailto:webpush@ietf.org>
List-Help: <mailto:webpush-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webpush>, <mailto:webpush-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Feb 2016 22:22:45 -0000

Sounds good.

The optional "push:receipt" is very important for everyone, and we should
add some info about the additional
costs of requesting a receipt.

At least in some implementation the push receipts can be more expensive
than the actual messages, and in
most cases the UA will make some http requests to the AS - so the ACK is
redundant.

I assume the rest of the receipt will be the same: AS will connect to the
URL, make a GET and get push promises,
like in the case of UA getting messages ?

Costin

On Fri, Feb 19, 2016 at 12:26 PM, Brian Raymor <Brian.Raymor@microsoft.com>
wrote:

>
> I've thought a bit more about the 202 discussion with Ben, Costin, and
> Martin. I have a small proposal that I've run past Martin and Elio for a
> sanity check.
>
> Currently - when an application server requests push message delivery,
> there are separate flows for message creation and message delivery:
>
> 1. Message Creation - The push service returns a 201 (Created) returned by
> the POST with a Location resource
> 2. Subsequent notification of delivery success or failure using Receipt
> Acknowledgements.
>
> Receipt Acknowledgements also has many moving parts:
>
> 1. The PS returns :push and :push:receipts to the UA during its message
> subscription process.
> 2. The UA distributes :push and :push:receipts to its AS.
> 3. The AS requests a receipts subscription (:push:receipt) from the PS
> using :push:receipts.
> 4. The AS requests message delivery from the PS using :push and includes
> :push:receipt.
> 5. The PS returns a 201 (Created) on success for the message delivery
> request from the AS. It also includes a Location.
> 6. The AS monitors :push:receipt for success (acknowledgements) or failure
> (expiration or delivery attempts ceased).
>
> A more natural flow could use 202 (Accepted) with the :push:receipt as the
> "status monitor". As Costin noted:
>
> > This is pretty much what webpush is doing - accepts the request, and
> some other
> > process ( the connection side ) may deliver it later :-)
>
> 1. The PS returns :push to the UA during its message subscription process.
> 2. The UA distributes :push to its AS.
> 3. The AS requests message delivery from the PS using :push.
> 4. The PS returns a 202 (Accepted) on success for the message delivery
> request from the AS. It also includes a Location and :push:receipt as the
> "status monitor" suggested for a 202.
> 5. The AS monitors :push:receipt for success (acknowledgements) or failure
> (expiration or delivery attempts ceased).
>
> This eliminates the need for the :push:receipts link relation and its
> "machinery" and simplifies the flow a bit.
>
> Another difference is that the current design allows the AS to request
> acknowledgements by including :push:receipt with its message delivery
> request to the PS.  If we want to maintain this optional behavior, then we
> would need a header - perhaps reusing Prefer: respond-async as a hint -
> http://tools.ietf.org/html/rfc7240#section-4.1 - that would be included
> when the AS requests message delivery.
>
> If a pull request would offer more clarity, please let me know.
>
> Thoughts?
>
> ...Brian
>
> _______________________________________________
> Webpush mailing list
> Webpush@ietf.org
> https://www.ietf.org/mailman/listinfo/webpush
>