Back to SISO Website
SISO Discussion Forums

Help for SAC-PDG-WEBLVC Discussion Forum List


SAC-PDG-WEBLVC Discussion Forum List

SAC-PDG-WEBLVC Discussion Forum List


SAC-PDG-WEBLVC@DISCUSSIONS.SISOSTDS.ORG


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Monospaced Font

SISO Discussions Home

SISO Discussions Home

SAC-PDG-WEBLVC Home

SAC-PDG-WEBLVC Home

SAC-PDG-WEBLVC  March 2017

SAC-PDG-WEBLVC March 2017

Subject:

object life cycle

From:

Brad Dillman <[log in to unmask]>

Reply-To:

SAC-PDG-WebLVC <[log in to unmask]>

Date:

Fri, 10 Mar 2017 10:17:16 -0500

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (26 lines)

Last SIW a problem dubbed "dangling objects" was identified. The problem is, if a WebLVC client (imagine a web browser running JavaScript) connects and creates an object by issuing an AttributeUpdate message then disconnects, the object remains until an ObjectDeleted message is issued by some client. So a naive client might create a unique object each time the page is loaded or refreshed, resulting in many unused objects "dangling" (and a corresponding memory leak in the server).

The suggested resolution was to have the server delete objects created by a client when the client disconnects. However, there are other cases where it would be desirable to have the objects remain when the client which created them disconnects. This lead to an involved discussion of the life cycle for objects (but not interactions, they have no life cycle).

Here are my recommendations, for your review. Please respond with comments, etc.

1) add optional boolean property "create" to the AttributeUpdate message, default is "true". If this is true, create the object if it doesn't already exist. If false, don't create the object if it doesn't already exist.

2) add optional boolean property "publisher" to the AttributeUpdate message, default is "true". If this is true the server recognizes the client which sends this message as a publisher of this object instance; if false the server will not recognize the sending client as a publisher of this object instance. The server maintains an implicit set of which clients are publishers of each object instance.

3) add optional string property "lifecycle" to the AttributeUpdate message, default is "forever". If value is "forever", the object will not be deleted until an explicit ObjectDeleted message is received from any client. If value is "published", the object will be deleted when all publisher clients (as determined using the optional "publisher" property) disconnect, or when explicitly deleted by an ObjectDeleted message. The last value overwrites the previous value.

An additional issue was raised, how can the server know when a client is disconnect? If using a websocket as the transport the server is notified when the websocket connection is dropped. But if the WebLVC messages are received over some other transport the server might not be able to automatically detect a client disconnection.

I suggest that we add the requirement that a server must be able to detect a disconnection to the spec. For transports which don't support this (e.g. UDP datagrams) the implementation could set up a "leasing" connection model, i.e. timeouts where inactivity results in disconnection. I don't think we need to add details on how each transport model detects disconnection, but we could add maybe some suggestions.

Please respond after consideration.

Thanks,
Brad Dillman

########################################################################

To unsubscribe from the SAC-PDG-WEBLVC list, click the following link:
https://discussions.sisostds.org/index.htm?SUBED1=SAC-PDG-WEBLVC&A=1

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search SISO Discussions

Search SISO Discussions


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Discussion Forum List

January 2020
February 2019
September 2018
May 2018
April 2018
March 2018
January 2018
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
March 2017
October 2016
September 2016
August 2016
July 2016
November 2015
September 2015
June 2015
March 2015
February 2015
January 2015
December 2014

ATOM RSS1 RSS2