OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

obix message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [obix] Groups - obix-websocket-v1.0-wd03.pdf uploaded


Hello,

I found some time to have a look on the proposed Web socket binding.

I have some suggestions for changes that can be split into two design options, which are mereley:

-) Option 1: Using SOAP for the Web Socket binding or

-) Option 2: A Web socket connection represents one concrete instance of a Watch acting as a per-client state object

Option 1:

The question is if we want to expose the full oBIX protocol over Web sockets. The issue is here the RESTful design that resides at the core of oBIX. Every object is identified using a URI and the protocol is mapped to the HTTP protocol verbs. Furthermore the oBIX protocol more or less assumes a request/response interaction for message exchange, since oBIX does not provide any means to map request and response messages.

Protocol messages:

You have addressed this by defining oBIX objects for request, response and update (Line 122 to 129) --> similar wrapping types have been defined for the SOAP binding. We could reuse them.

Mapping responses to requests:

For this problem you want to add a message id, as facet. This brings information that is related to the issues the transport protocol to the application layer. If we use SOAP, the WS-Addressing standard would provide according features to support correlation of messages for asynchronous transports that do not have a request/response interaction semantic.

So as a conclusion for this design option I would suggest to use SOAP + WS-Addressing over Web sockets to rely here on already established solutions.

Option 2:

Maybe the Web socket binding could be much simpler, since we just want to take the advantage of the async. communication capabilities of Web sockets. For "normal" protocol interaction we can stay with the regular HTTP binding.

Assume that if a client connects using Web socket a Watch is created and all the interaction over Web Socket is based on WatchIn and WatchOut messages. The Watch operations are not available and follow an implicit definition. Like if a WatchIn is passed with a list of hrefs, all referenced objects are observed. If href is passed again it is removed from the watch.

In this case we don't need to map the protocol interactions and the correlation of requests and responses is also not really an issue. Since the client can just assume to receive WatchOut objects with updated oBIX objects over the Web socket connection. PollRefresh is not available but in that case the client could also use the regular HTTP binding to poll the current state of objects.

Please take this just as my subjective comment. It would be really interesting to hear the opinion of the other TC members on this topic. Maybe we can have a discussion on this topic in one of the next telcos.

Unfortunately I cannot join the telco today.

Bests,

Markus



Am 15.08.2013 02:57, schrieb Matthias Hub:
Submitter's message
Incorporated review comments from Gareth (especially introducing a Request / Response / Update frame and a request ID facet)
-- Mr. Matthias Hub
Document Name: obix-websocket-v1.0-wd03.pdf

Description
WebSocket wd03

Incorporated review comments by Gareth Johnson:
- added Request / Response / Update frame
- added request ID to correlate messages

Added conformance section

Minor updates to detail the oBIX requests
Download Latest Revision
Public Download Link

Submitter: Mr. Matthias Hub
Group: OASIS Open Building Information Exchange (oBIX) TC
Folder: Standards
Date submitted: 2013-08-14 10:57:03



-- 
Dipl.-Ing. Markus Jung
Research Assistant
mjung@auto.tuwien.ac.at
Tel. +43 1 58801-18322
Fax +43 1 58801-18391
Institute of Computer Aided Automation
Treitlstr. 1-3/4. Stock/E183-1
Vienna University of Technology


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]