New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Producer is missing in terminology section #656
Comments
Arch call on Dec 23rd: Where do we use the "expose" term? So far we used "consumer"/"producer", not sure about what discovery does |
We talked about this a bit in the Editor's call as I wanted to clarify how the term "Expose" is used in the Scripting API. There was also some related discussion in Discovery a few months ago that I think is relevant. Currently, "Expose" means "to make available the network API described by a Thing Description". It does NOT mean "make the TD available", and I don't think we want to confuse the two. In particular, in the Scripting API to "Expose a TD" just means to generate the network API described by the TD; it does NOT mean make it available for discovery. I also mentioned that I think "Producer" has the problem that implies both "generation" and "providing" of the TD. So I would like to propose the following terms: These may not all be the same entity. For a self-describing Thing, it may be both "Provider" and "Exposer". A Thing might also self-Generate its own TD if all it has to do is plug a base IP address into a TM. In other cases these might all be separate. For instance, a small device may have its TD Generated by an installer and registered in a Directory. Then the installer is the Generator, the Directory is the Provider, but the device is the Exposer. |
Ben's original definition seemed to make "Exposer" and "Producer" equivalent. However, Sebastian's PR defines "Producer" to be equivalent to what I have called "Generator" above, and Sebastian's definition does not imply that the "Producer" is also the "Exposer", which is good. HOWEVER, I think to address Ben's original point, we should also define "Exposer" to be consistent with "Consumer". And to have names for ALL the entities, I think adding a definition for "Provider" would also be useful. Anyway, I'm ok with Sebastian's definition (== Generator in my comment, but I'm ok with Producer), but I think it's just 1 out of the 3 definitions we need. |
Thanks for breaking this down, @mmccool. You are right that what I had in mind for "Producer" was simply the counterpart to "Consumer", which I assumed would carry out all three roles. The definition of a Consumer:
This implies that a "Consumer" both parses a Thing Description (the counterpart to generating it) and interacts with the affordances of the Thing it describes (the counterpart to exposing affordances). Perhaps a Consumer might discover a Thing too, by acting as a consumer of a discovery service (the distinction from "Discoverer" is still not clear to me, since that term sounds like the opposite of its definition). It would be much easier to understand in the majority of cases if there was simply a Producer (which generates and provides a Thing Description and exposes its affordances) and a Consumer (which discovers and parses a Thing Description and interacts with its affordances), but I agree that in theory the three roles could be carried out by three separate entities and sometimes it's necessary to distinguish between them. Note that the line from the Thing Description specification which sparked this discussion...
...implies that a "producer" can at least perform the generation part, so if the definition of producer does not include that function (or is not defined at all) then the Thing Description specification will need updating. FWIW, in the Web Thing Protocol CG we so far just define the terms "WoT Client", "WoT Device" (aka "web thing"), "WoT Gateway" and "WoT Directory" which makes things more concrete, but I'm not going to open the "Servient" can of worms again! |
as @benfrancis noted in w3c/wot-thing-description#1324 there is a "Consumer" definition, however, no one for "Producer".
Maybe this issue can be simple solved to add simple "Producer" in the title of
So it comes "Thing or Web Thing or Producer"
The text was updated successfully, but these errors were encountered: