-
Notifications
You must be signed in to change notification settings - Fork 8
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
Agree on a common definition of "out-of-the-box-interoperability" #155
Comments
The definition I proposed on the WoT Architecture call today was: "Any Consumer which conforms with a given profile can interact with any Thing which conforms with the same profile, without additional customization." |
@benfrancis, thanks for this proposed text. Can you please clarify which consumers you think about? Clients, Servers, Servients, Intermediaries, Humans? |
@mlagally wrote:
For profiles in general Consumers can theoretically be a client or server or both. Consumer-Producers can be intermediaries for other Consumers. Humans are a separate issue because they don't generally consume Thing Descriptions at the API layer, they consume a human-computer interface at the UI layer, which has lots of other considerations! For the initial HTTP+JSON profile, I anticipate an assumption that Consumers are clients and Producers are servers. |
To facilitate the discussion and make sure we consider all interoperability aspects, I propose we use the terminology as defined in the "H2020 – CREATE-IoT Project - Recommendations for commonalities and https://european-iot-pilots.eu/wp-content/uploads/2018/11/D06_02_WP06_H2020_CREATE-IoT_Final.pdf • Technical Interoperability: usually associated with communication protocols and the • Syntactic Interoperability: usually associated with data formats and encodings along with • Semantic Interoperability: associated with shared understanding of the meaning of the • Organisational Interoperability: associated with the ability of organisations to effectively |
IMHO so far the recent discussions were focused on protocols, i.e. technical interoperability. |
As I said during the editor's call I would support a definition based on the literature. Another good reference that I used in the past is Interoperability in Internet of Things: Taxonomies and Open Challenges. There the authors define a slightly different classification:
If we try to map this classification with the one from H2020 Create-IoT
|
My personal take on OOTBI is that we should restrict TD language to have a precise protocol achieving Device, Network, and Syntactic interoperability. Regarding semantics, I don't have a strong opinion to include it or not, but if we ever include it my preference is to select a set of standard well know ontologies, no ad hoc keywords or new fields in the TD. I would say that platform interop is out of the scope. |
@mlagally Is your thinking that the WoT Profile specification would address all of those layers or are you just trying to define out-of-the-box interoperability more generally? A simple way of looking at those layers of interoperability in the context of WoT is that:
In practice it's a bit more complicated than this because the current Core Profile does arguably define some additional semantics as part of the sub-protocol, like the I think the big open question is to what extent a Profile should extend or constrain the semantics of the information model of a Thing Description. My view is that ideally Thing Descriptions should be responsible for semantic interoperability and the Profile should focus on the protocol interoperability. If we decide that a Profile does constrain semantics (the information model) of a Thing Description then I suggest it should only do so when essential for interoperability (e.g. date formats and units) and only when those constraints can't be applied to all Thing Descriptions in the Thing Description specification. |
@benfrancis Technical Interoperability: OOTBI at protocol layer, use of HTTP(s), authentication mechanisms, self descriptive things (discovery) Syntactic Interoperability: well defined JSON format, validation, max lengths, common field names, guaranteed fields. common error response format, event payload, error codes, unambiguous mapping of HTTP protocol verbs (e.g. PUT vs. POST). Semantic Interoperability: consistent data model across things, e.g. unambiguous units, date + time representation, fields have the same "meaning", i.e. comon interpretation of values across devices and vendors. Organisational Interoperability: things have the same behavior, if they are used in the same way. This is independent from the manufacturer, geographical location, and other situation context. Behavior is independent from the network topology or protocol stack. |
@relu91 , I think the semantic and behavioral aspects are critical for OOTBI (see also my response to @benfrancis). Consider the action "close valve" on an industrial tank. If it would behave the opposite (i.e. open a valve) on a specific thing implementation, you could cause serious problems. The same is true for mismatching units, see the mars climate orbiter: https://en.wikipedia.org/wiki/Mars_Climate_Orbiter for a prominent example. |
@mlagally wrote:
I'm sure that's true, but that wasn't what I asked. My question is whether the WoT Profile specification needs to solve all of these problems? I suggest that a profile should focus on a subset (ideally just technical/network interoperability according to the definitions above) and leave the other layers to other parts of the WoT stack. |
Profile call on Feb 16.2.:
• Syntactic Interoperability: usually associated with data formats and encodings along with • Semantic Interoperability: • Organisational Interoperability: |
Closed by #176 |
Please propose your understanding / definition in this issue.
The text was updated successfully, but these errors were encountered: