[x3d-public] pub/sub for multiuser. SP-ARK input. pub/sub inevent loop for X3Dv4

John Carlson yottzumm at gmail.com
Sun Mar 31 17:52:47 PDT 2019


With pub/sub, publishers send messages to topics, and subscribers receive (or poll) messages from topics (many-to-many). You can have one-to-one messaging with a similar or same product. Oracle AQ, Java JMS work with database tables or similar to implement message queues.  So central service yes, but see below, email.  There used to be a pub/sub server run by google, but no longer.  One publishes to a topic and the recipient filters messages.  It may be worth reading some message queuing literature for terminology. I am most familiar with Oracle AQ and Java JMS.

You can send text or objects over these.  I don’t recommend video, but let me look for a video messaging queuing system.  We can pass URLs or we can use WebRTC for live videos.

Email is a distributed message queuing system.   Topics involve mailing lists and threads.  People publish email to topics People subscribe to email with their email address. Email is distributed pub/sub.

So the idea I want to get across is pub/sub, not central versus distributed. A lot of software used the idea of federation.  I think we want the idea of a federated messaging system—but that may be too complex for a small team, so we’d have to select a product or get someone to build us one (XMPP has federation, conferences/topics already).   So we design the content, and choose something (an existing standard) to do transport and signaling.

What content are we designing in to our messages?   What do we require of the underlying system beside transport? Multimedia? In-order messages?  Signaling?

By Broker do you mean Message Transfer Agent/MX Host?  https://en.wikipedia.org/wiki/Message_transfer_agent.   There used to be something called “Store and forward” in the days of UUCP (dialup).  Sendmail would queue up the mail, and when a UUCP connection happened, it would send the mail over the phone lines, the mail would hop from host to host along a path specified in the address.  Also USENET (topic software) https://en.wikipedia.org/wiki/Usenet went over UUCP.   Practically before my time.  These were intended to use MIME for multimedia.  I remember when sending images over UseNet was a big thing.

I would rather discuss the HLAP (High Level Application Protocol), and let the HLAP choose a software infrastructure based on requirements of the HLAP (That is, set requirements for the lower level protocols).   Once we have a shopping list of requirements, we go shopping for something compatible with Web3D’s Intellectual Property rules.

Requirements of a transport for HLAP:
1. Many to Many topics and messaging capable of carrying or referring to X3D multimedia, Avatars, Inventory and Communication.  At up to ?? messages per second
2. Federated messaging (possibly spatiotemporal)
3. Conferences/Rooms/Channels/Topics for private X3D worlds
4. Block a publisher
5. Report a publisher
6. Message log/replay.
7. Edit own messages.
8. Conference/Topic/Room/Channel search?
9. Usable from HTML5 web.

Please provide input for this list.

Valentin, you may post this to the SP-ARK site.

Note that I have difficulty talking about state because of multiple meanings, political, physics etc.   Do you really just mean state, state of what?  What does the state transition network look like?

John

Sent from Mail for Windows 10

From: Christoph Valentin
Sent: Sunday, March 31, 2019 6:19 PM
To: John Carlson; Don Brutzman
Cc: X3D Graphics public mailing list
Subject: Re: [x3d-public] pub/sub for multiuser. SP-ARK input. pub/sub inevent loop for X3Dv4

John,

When you say "pub/sub vs. messaging" do I get you right you mean "using a central server yes vs. no" ?

Messages are addressed to concrete destinations vs. publishing a state always to a server?

This the topic you want to discuss?

Thanks
-- 
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.
Am 01.04.19, 00:51, Christoph Valentin <christoph.valentin at gmx.at> schrieb:
Hi John,

About pub/sub. I am not aware of this abbreviation, but let me guess you mean "publish" / "subscribe" and let me assume we are talking about network functions well known as so called brokers. 



The Network Sensor node is exactly such an interface that is used to communicate with a broker (aka collaboration server).



When the NS is initialized, then it sends an STS "Subscribe to Stream" to the broker and tells him about the interest 


When a new state is published, then this is done with a SUN "State Update Notification".

Publishing is done by SURE "State Update Request" and SCR "State Change Request

All the best 
-- 
Diese Nachricht wurde von meinem Android Mobiltelefon mit GMX Mail gesendet.
Am 01.04.19, 00:35, John Carlson <yottzumm at gmail.com> schrieb:
 
What do you think about using pub/sub or messaging?  What “style” of protocol works best in SP-ARK’s case?  I think one to many and many to one is one of the best features of pub/sub, but often it takes a lot infrastructure to maintain the queues.
 
Maybe we should step back and define the objects we are communicating.
 
1. Avatar (initial H-Anim figure) and position, orientation, motion (ongoing).   This is done by pc.multiplayer tag around the world
2. Things the avatar might be carrying (shapes transformed by the avatars position, orientation and motion)
3. Sounds-chat-video applied to avatar position
4. ???
 
 
 
Thus some actions might be:
 
Subscribe to Avatar Topic, Reply Address
Subscribe to Inventory Topic, Reply Address
Subscribe to Communication Topic, Reply Address
Avatar Publish
Inventory Publish
Communication Publish
Receive Avatar Publish
Receive Inventory Publish
Receive Communication Publish
 
This feels a lot more natural to me than the SQL, Chat or REST protocols.
 
We can create different topics to communicate about, probably subclasses of NetworkSensor or some such.
 
Check out the High Fidelity intro video for ideas about what might be done, re: Inventory.   This will be important when we get to VR controllers.
 
Collaboration as far as the scene itself is a lot like SAI, but perhaps we need to consider network traffic for that?
 
Don, what do you think about putting a network pub/sub interface into the event loop for X3Dv4?  Is there a popular JavaScript pub/sub?
 
John
_______________________________________________ x3d-public mailing list x3d-public at web3d.org http://web3d.org/mailman/listinfo/x3d-public_web3d.org 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190331/5b34506b/attachment.html>


More information about the x3d-public mailing list