[X3D-Public] multiuser mode (node identity)
john.carlson3 at sbcglobal.net
Fri May 7 00:07:42 PDT 2010
On May 6, 2010, at 7:53 PM, John Carlson wrote:
> On May 5, 2010, at 10:54 PM, Paul Aslin wrote:
>> ps: An opensource MU X3D server just isn't a viable idea, it would never attract enough interest from programmers or other developers.
>> Lots of complex and time consuming code is needed, for avatars/gestures, storage, shared events, editing and admin. I can't see the consortium or other groups paying key developers for what is needed to make anything half decent.
> Ah, I was mostly talking about what clients are doing. Sorry for the confusion. I wasn't talking about a server, I was talking about infrastructure required to do CRUD on a scenegraph anywhere on the net.(whether it's peer to peer or client server doesn't matter--I'm not concerned with server implementations). Ids are useful for global identity, when cooperating servers share clients. I'm not talking about personal identity, I'm talking about node identity.
Perhaps I left out some context here. Back in 1992-3, when we were designing a DUI (distributed user interface), we were transmitting class-ids and object-ids in the protocol. We discovered a problem. How can two communicating entities both create objects w/o trampling over each others object-ids? Our solution was to limit the server to creating even object-ids and the client to creating odd object-ids. Obviously, we did not have to global perspective provided by the WWW at that point, with its URLs URIs and URNs. SGML was in existence--and even promoted within the same program I was in. One thing nice about the DUI, the user interface libraries were written in C++, however debugging was a pain, exactly because we used class ids and object ids in the protocol. SGML and HTML provide a much cooler way of using tag names instead of class ids. The code was already in place before I got a chance to provide input about using class names instead of class-ids We never got to the idea of rich text or hypertext--we were pretty forms oriented at the time. I did not have the vision of disconnecting the session between form submits (or the problems with maintaining sessions).
I believe that we chose the class-id object-id approach because we had used it on a previous project where we were persisting objects to flat files in an ISAM way. Unfortunately we did not combine the approaches, and we couldn't persist the state of the GUI (only the form contents in a database)--there was an attempt at a GUI Builder that emitted C++, but it was never finished. I guess the SGML/HTML/Interface Builder/HyperCard lead the way in persisting user interfaces in declarative form. The intention of DUI was to provide a higher level of abstraction than the X11 protocol. Initially, there were Windows and tty interfaces. Later, X11, and an attempt at porting to Qt and the web. The web port failed just because it did not provide ids back to the server. Perhaps if we had embedded id's in URI's, we could have accomplished it (maybe someone has). My contribution to the project was to create factories for different user interface libraries to make the system more cross platform. Essentially, I made it a distributed and non-distributed user interface (DANDUI), written in C++. I really learned the lesson of using a factory for porting across different toolkits--each toolkit needs it's own factory.
So what if we could address stuff within a virtual world by a URI combined with XPath. Would that be a good enough identifier to work in a multi-client, multi-server environment? Is that a good enough combination for data manipulation? Why do I want to do this? My use case is creating an multiuser interactive dynamic 3D hypergraph of nodes and edges (no not interactive by writing code-I want to CRUD nodes from the browser/player). Simple, right? Try to do it in X3D in a browser portable fashion, and see where you end up. I know, this is not the niche that X3D (as a player) is trying to fill (yes, I realize that Vivaty can probably do it). Unfortunately real world applications do this all the time (what supports standard authoring in the standard?)
Given a C++ X3D toolkit, how hard would it be to create a forms interface library on top of it?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the X3D-Public