- From: Ben Francis <ben@krellian.com>
- Date: Wed, 5 Jun 2024 11:27:31 +0100
- To: "Kaebisch, Sebastian" <sebastian.kaebisch@siemens.com>
- Cc: "public-wot-wg@w3.org" <public-wot-wg@w3.org>
- Message-ID: <CAMpSprk+swpHhHb6sH1U-RReqP3wwKRmJ-jXgcoEVARnjwb6EA@mail.gmail.com>
On Wed, 5 Jun 2024 at 11:08, Kaebisch, Sebastian < sebastian.kaebisch@siemens.com> wrote: > > In the case of an asynchronous action, a Consumer should not have any > expectations about the response to an invokeaction request in HTTP, since > as far as I can tell there is no default specified anywhere. > > > > Well, the default should be specified in the TD. > > > > > Since the response to an asynchronous invokeaction request is > unspecified in the HTTP Binding Template, I would argue this is in fact > entirely compliant with TD 1.1. If a Consumer expects a particular > response then that's a bug in the implementation. > > > > This may work well when the actions do not return any output value. > However, if an output is also defined in an asynchronous action, this > implicit Action Status <https://w3c.github.io/wot-profile/#ActionStatus> > must be known to the consumer beforehand so that it can correctly parse > the actual value. This is definitely not in line with the behavior > assumption of TD1.1. > The problem is that as far as we have been able to tell TD 1.1 is simply not expressive enough to describe how to access an asynchronous action output via HTTP. Therefore no Thing Description can be expected to describe this, and no Consumer can be expected to consume it. The only option for a generic TD 1.1 Consumer in this scenario is therefore to "fire and forget" the invoke action request. This is true for brownfield implementations which have an asynchronous output as well as greenfield implementations implementing the profile. If profiles are constrained by the limitations of Thing Descriptions and the HTTP binding template in this way, then there is simply no way to provide interoperability for asynchronous actions. We have worked around this in the only way we can think of. Since the outputs of asynchronous actions will be inaccessible to generic TD 1.1 Consumers regardless, I personally don't see why this kind of progressive enhancement should block the publication of the Profiles 1.0 specification. Kind regards Ben
Received on Wednesday, 5 June 2024 10:27:47 UTC