[Fiware-miwi] App architecture sketch

Torsten Spieldenner torsten.spieldenner at dfki.de
Fri Sep 13 08:55:10 CEST 2013


Hello,

Am 9/12/2013 3:41 PM, schrieb Erno Kuusela:
> - several options:

>     b) server works like in WebRocket case, using our existing TXML
> scenes and transmitting the ECA structure over to the client.

This is actually how it is done at the moment in the client. The reason 
is, that we already had code at hand from other projects that translate 
Javascript Objects to a declarative XML3D description of the scene. So 
the application workflow currently is as follows:

1. Browser loads page with 3D scene
2. Server transmits Entity data as JavaScript objects to client. This 
data includes a reference to an external XML3D mesh file.
3. Client creates XML3D object and appends it to the DOM, including the 
externally referenced XML3D mesh file.

However, although composing those XML3D representations on client side 
is feasible, I'm planning a more efficient approach that does the 
declarative scene assembly on server side, as you suggested in option a):

    a) server loads the new declarative scene desc, and transmits it to
	the clients via the sync protocol


, and transmits it together with the object notation (ECA structure) of 
the entity. As doing all computations entirely on the DOM nodes is 
costly, I'm planning to have the entities still present in their object 
notation also on client side. Whenever computations are finished, the 
results are updated in the DOM representation as well.

Thus, to sum up, at the moment I am aiming at an entity being 
transmitted in a format, that may look like this in JSON notation:

entity =
{
       id,
       components: { component1, component2, .... component_n },
       viewElement: <XML3D - representation>
}

with

component_i =
{
      attributes: { attribute1, attribute2, ... attribute n}
}

and having synchronisation work on the object representation, with the 
DOM being updated accordingly when necessary. That should give us some 
possibilities to implement optimazition techniques to achieve higher 
efficiency (and scalability), as we can avoid unnecessary DOM operations.

Our first 3D client is running now, and once I included the approaches 
above, I will create an architecture diagram and description that also 
includes the Plugins / Components we have implemented so far.

~ Torsten



More information about the Fiware-miwi mailing list

You can get more information about our cookies and privacy policies clicking on the following links: Privacy policy   Cookies policy