<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>
<div>Dear Friends of SrrTrains,</div>
<div> </div>
<div>I felt free to create a new sub-directory in the SP-ARK repository, where I will collect information about X3D MU protocols.</div>
<div> </div>
<div><a href="https://github.com/christoph-v/spark/tree/master/3rd-party-input/esdp-bs">https://github.com/christoph-v/spark/tree/master/3rd-party-input/esdp-bs</a></div>
<div>
<div> </div>
<div>A new meaning of the acronym BS: brainstorming :-)</div>
<div> </div>
<div>Have a nice week</div>
<div>Christoph</div>
<div> </div>
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b> Freitag, 15. März 2019 um 19:38 Uhr<br/>
<b>Von:</b> "Christoph Valentin" <christoph.valentin@gmx.at><br/>
<b>An:</b> "x3d-publicweb3d.org" <x3d-public@web3d.org><br/>
<b>Betreff:</b> [x3d-public] This is merely brain storming</div>
<div name="quoted-content">Hi all,<br/>
<br/>
Maybe I'm again carrying coals to Newcastle :-)<br/>
<br/>
Please ignore, if so.<br/>
<br/>
Have a nice weekend<br/>
Christoph<br/>
<br/>
P.S.:<br/>
<br/>
1 Scope of the Text<br/>
--------------------<br/>
The following text is written in a spirit of trying to inspire ideas about a<br/>
future application layer protocol for X3D multiuser scenes.<br/>
<br/>
Abbreviations:<br/>
PDU ......Protocol Data Unit – a well defined piece of information that can be<br/>
piggy backed on the back of some lower layer protocols<br/>
<br/>
2 Assumptions about an X3D MU Protocol ("Protocol X")<br/>
------------------------------------------------------<br/>
<br/>
1. "Protocol X" shall define PDUs (and even collections of PDUs) that carry<br/>
collections of values of states and/or events, which are applicable to X3D<br/>
MU scenes (the terms "state" and "event" will be defined later in this text)<br/>
<br/>
(a) The transmission of the (collections of) PDUs shall be done in a piggy<br/>
backed way on the back of some transport protocol (e.g. in the message<br/>
body of SIP messages or HTTP messages)<br/>
<br/>
(b) "Protocol X" shall be specified in a "global protocol spec" (GPS)<br/>
<br/>
i. The GPS shall define the PDUs for "protocol X", e.g.<br/>
A. Login Request/Challenge/Grant (LI-R, LI-CH, LI-G)<br/>
----> LI-R invokes either LI-CH or LI-G<br/>
B. State Publish and Query Request (SPQR)<br/>
----> invokes SUN back to originator<br/>
----> can invoke SUN to one, some or all scene instances<br/>
C. State Publish Request (SPRE)<br/>
----> can invoke SUN to one, some or all scene instances<br/>
D. State Change Request (SCR)<br/>
----> can invoke SUN to one, some or all scene instances<br/>
E. State Update Notification (SUN)<br/>
F. Subscribe To State (STS)<br/>
----> can invoke SUN back to originator (state exists already)<br/>
G. Broadcast Event (BEV)<br/>
H. Route Event (REV)<br/>
I. and so on (these are just funny examples !!!!!!!!!!!!!!!!!!!!!!!!!)<br/>
<br/>
ii. The GPS shall define communication paths, which can be taken by the<br/>
PDUs. One, some or all of the following communication paths shall be<br/>
taken:<br/>
A. From one scene instance to one server (hierarchy)<br/>
B. From one scene instance to one server (hierarchy) and then – if<br/>
a response PDU is invoked – back to the originating, to some or<br/>
to all scene instances of a multiuser session<br/>
C. From a server (hierarchy) to one, some or all scene instances of<br/>
a multiuser session<br/>
D. From one scene instance to one, some or all scene instances of a<br/>
multiuser session<br/>
E. From one scene instance to one scene instance and then – if a<br/>
response PDU is invoked – back to the originating, to some or to<br/>
all scene instances of a multiuser session<br/>
F. and so on (these are just funny examples !!!!!!!!!!!!!!!!!!!!!!!!!)<br/>
<br/>
iii. A syntax for the PDUs shall be defined (e.g. an XML schema)<br/>
<br/>
iv. The GPS shall publish best current practices about how the routing of<br/>
PDUs (and of collections of PDUs) via the defined communication paths<br/>
can be combined to create senseful use cases.<br/>
<br/>
(c) "Supplementary standards" shall define about how the protocol shall be<br/>
transmitted over the possible transport protocols. This shall be<br/>
compliant with the decision that WebRTC + AJAX shall be used, if the 3D<br/>
scene runs in a browser<br/>
<br/>
i. Supplementary Standard "Protocol X over transport protocol 1"<br/>
<br/>
ii. Supplementary Standard "Protocol X over transport protocol 2"<br/>
<br/>
iii. and so on ad. inf.<br/>
<br/>
(d) The GPS shall define general requirements for the used transport protocol<br/>
<br/>
i. Security<br/>
<br/>
ii. Needed infrastructure for routing<br/>
<br/>
iii. acknowledged transmission, checksums, error rates, ......<br/>
<br/>
iv. and so on ......<br/>
<br/>
2. Note: states are variables that describe a part of the shared state of a<br/>
scene.<br/>
A scene instance (or a part of a scene instance) needs the current value of<br/>
all of the states that are related to it (i.e. its "current shared state")<br/>
to get initialized, after it (the (part of the) scene instance) has been<br/>
(down)loaded from the data storage or from the 3D Web.<br/>
<br/>
Examples of states:<br/>
<br/>
(a) position of an avatar (SFVec3f)<br/>
(b) orientation of an avatar (SFRotation)<br/>
(c) openness of a door (SFBool)<br/>
(d) velocity of a train (SFFloat)<br/>
(e) position of a train (MFString)<br/>
(f) content of a key container (MFString)<br/>
<br/>
3. Note: events describe happenings that have happened in one scene instance<br/>
and that need to be communicated to all, to some or to one scene<br/>
instance or to the server (hierarchy)<br/>
<br/>
Examples of events:<br/>
<br/>
(a) user X has touched geometry Y<br/>
(b) user X wants to change velocity of train Y by amount Z m/sec<br/>
(c) user X wants to toggle openness of door Y<br/>
(d) user X has left the game -> remove avatars<br/>
<br/>
_______________________________________________<br/>
x3d-public mailing list<br/>
x3d-public@web3d.org<br/>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></div>
</div>
</div>
</div></div></body></html>