<div dir="ltr"><div><div>Dear Utkarsh,<br></div>thank you for these very clear explanations and for offering to fix the issue with loading the initial collaboration state. Although I had understood that data sources can only be created by the master, it wasn't obvious to me that the same holds for views. I think I have a better understanding now.<br><br></div><div>Concerning the master-slave differentiation I will have some questions in the near future. Maybe you can quickly answer some thoughts on this topic so that I don't follow the wrong path. I would like to implement "real" collaboration where the master can allow selected clients to change the rendering pipeline themselves. I don't see a contradiction why noone besides the master should modify the pipeline if the state is properly synchronized among all participants, do you?<br></div><div>I can imagine two or three options how to achieve this more open collaboration without changing too much of the paraview design:<br></div><div>1) Let the master promote any slave to "temporary" master on request and expect the temporary master to promote the original master again after finishing the pipeline modification. Pro: easy implementation, Con: problematic if original master is not promoted again for any reason.<br></div><div>2) Let the master modify the pipeline on behalf of slave requests. Slaves would stream their requests to the master who actually performs the requested changes. Pro: clean solution, Con: more complex implementation<br></div><div>3) Weaken the master-slave differentiation in a way that every participant gets certain rights for modifications. Con: probably too many side effects<br></div><div>Can you recommend ad hoc, whether any of the approaches sound reasonable or something similar is maybe already implemented?<br><br></div><div>Finally, I believe that I will have to dive into message passing between paraview clients, soon. Not exactly talking about MPI, but rather in the style of the collaboration messages that ParaView sends around, although I am not familiar with any of the details. I would need something like "Hey Master, please add this source X to the pipeline, append filter Y. And notify me when you're done."<br></div><div>Do you happen to remember some blog post, tutorial or documentation that gives any introduction how this can be done using ParaView classes?<br><br></div><div>Thanks a lot<br></div><div>Peter<br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-06-16 21:41 GMT+02:00 Utkarsh Ayachit <span dir="ltr"><<a href="mailto:utkarsh.ayachit@kitware.com" target="_blank">utkarsh.ayachit@kitware.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Peter,<br>
<br>
In ParaView's collaboration support there's the notion of a master and<br>
everyone else. The first client that connects to the pvserver is the<br>
"master" by default. The master is the only one that should create new<br>
proxies. This doesn't preclude the other clients from not creating new<br>
proxies, but if they do, things start acting funny. Also all client<br>
have exactly the same views as the proxy. They can be showing a<br>
different camera, but not have different number of views or types of<br>
views etc.<br>
<span class=""><br>
> If I compile the example with "USEVIEW" defined in the beginning,<br>
> a) Starting in the order pvserver->example->ParaView, ParaView reports "This<br>
> code may not work in multi-clients mode. Could not locate server on which<br>
> the source is being added." and shows the sphere in the renderer, but not in<br>
> the pipeline panel.<br>
<br>
</span>There seems to be a bug where the ParaView client has trouble loading<br>
existing state from another client. It seems to work as expected if<br>
the "master" starts creating sphere etc. after the other client has<br>
connected.<br>
<span class=""><br>
> c) Starting in the order pvserver->example->ParaView, ParaView reports<br>
> "Could not locate server on which the source is being added." and shows<br>
> nothing.<br>
<br>
</span>Same issue as (a).<br>
<span class=""><br>
> d) Starting in the order pvserver->ParaView->example, ParaView shows "Sph1"<br>
> in the pipeline panel, but nothing in the renderer.<br>
<br>
</span>In this case your non-master example has created a view which is not supported.<br>
<span class=""><br>
> Why does the Sphere not show up in ParaView's pipeline panel in case a)?<br>
<br>
</span>A bug in loading initial collaboration state.<br>
<span class=""><br>
> Why does the Sphere show up in ParaView's pipeline panel, but not in the<br>
> renderer in case d)?<br>
<br>
</span>You're showing sphere in a view not known to master.<br>
<span class=""><br>
> And what does "This code may not work in multi-clients mode" and "Could not<br>
> locate server on which the source is being added" exactly wnat to tell me?<br>
<br>
</span>Proxies are being created before the session was "ready for use". Like<br>
I said, collaboration isn't being used actively in production so such<br>
issues are expected. Since I don't have active projects funding this,<br>
I will try to track down the bug exposed by (a) and give you a fix<br>
over the weekend if I can.<br>
<span class="HOEnZb"><font color="#888888"><br>
Utkarsh<br>
</font></span></blockquote></div><br></div>