ParaView in a collaborative context
ParaView has undergone some major updates under the cover since 3.10. One of the reason for those changes was to support collaboration. Those changes were done in 3 steps:
- Change the client/server communication from a command base paradigm to a state base one. To achieved that all the Proxy layer has been cleaned up and now we rely on Protobuf messages to store and encode proxy state across processes. This work has been released with ParaView 3.12.
- The second step was to allow a pvserver to accept several clients and make sure the client get synchronized in someway so simulation analysis could be achieved across different sites at the same time.
- Finally, drop the client limitation by allowing a client to connect to several servers at the same time.
Those changes were not trivial to make and even if we tried to keep the API unchanged for backward compatibility we definitely break some stuff. We are doing our best to keep the documentation updated as well as the main ParaView code. For more details about the API changes and logic underneath, please read the Developer corner section.
But now, it is possible to connect several clients to a single pvserver and share the pipeline and visualization across different clients. Those clients can be either the regular ParaView Qt client or simply a pvpython batch or even a ParaViewWeb application. Moreover, a ParaView client can now handle several connected servers at the same time. Such configuration even works with collaborative server even if in such configuration it can be thought to understand what is going on and who is controlling the application. ;-)
Those major changes open new doors to the usage of ParaView and not only application wise but also framework wise. Nowadays, more projects are considering using ParaView as a library instead of VTK. The reason for such move reside in the benefit of the ParaView framework where scalability, distributed architecture became transparent. And now on top of that we provide collaboration as a built-in feature.
But before going further what do we mean by Collaboration support in ParaView ?