# what's the difference between catalyst and data/render server

**URL:** https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650
**Category:** ParaView Support
**Created:** [September 28, 2018, 3:18pm UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650 "2018-09-28T15:18:10Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![embeddedmz](https://discourse.paraview.org/user_avatar/discourse.paraview.org/embeddedmz/32/142_2.png) [@embeddedmz](https://discourse.paraview.org/u/embeddedmz)
#### Post date: [September 28, 2018, 3:18pm UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650/1 "2018-09-28T15:18:10Z")

</div>

Hello,

I’m really confused : I’m using catalyst but in the documentation I saw that there is this architecture where there’s a client, a render server and a data server. there’s also the programs called pvserver etc… and the connection schemes cs csrc cdsrs and cdsrsrc (and catalyst too).

If there’s a data server why the need of catalyst ? In what contexts data server/render server are used ? and how the data is fed to the server ?

I spent a lot of time reading the code, I was drowned on all that proxy strange code I understood few things but I’m incapable of seeing the bigger picture, can I know why it’s so complex ? what’s the need to have a server manager and a server implementation ?

Thank you.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [October 2, 2018, 12:48am UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650/2 "2018-10-02T00:48:44Z")

</div>

Have a look at Chapter 15 of the [ParaView Guide](https://www.paraview.org/paraview-guide/). It answers some of your questions at a high level. Feel free to ask followup questions here.

---

<div class="post-metadata">

### Author: ![embeddedmz](https://discourse.paraview.org/user_avatar/discourse.paraview.org/embeddedmz/32/142_2.png) [@embeddedmz](https://discourse.paraview.org/u/embeddedmz)
#### Post date: [October 2, 2018, 10:55am UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650/3 "2018-10-02T10:55:56Z")

</div>

Thank you, it’s a little clearer now.

Important questions :  
Can a program using Catalyst (coprocess) be placed before a pvserver and connecting to this last with paraview allows me to retreive the geometries delivered by Catalyst ?

Less important questions :

- Can the rendering be also done in Catalyst ?
- Is there a documentation describing what happens in the wire (the protocol) between the client and the server ? or do I have to dissect the code to understand the protocol (endianess check etc…) ?

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [October 3, 2018, 2:35pm UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650/4 "2018-10-03T14:35:00Z")

</div>

> [@embeddedmz](#):
>
> Can a program using Catalyst (coprocess) be placed before a pvserver and connecting to this last with paraview allows me to retreive the geometries delivered by Catalyst ?

Yes, this is known as a ParaView Live connection. See Sections 2.2 and 2.3 of the [Catalyst Guide](https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v4.3&type=data&os=all&downloadFile=ParaViewCatalystUsersGuide_v2.pdf) for some details.

> [@embeddedmz](#):
>
> Can the rendering be also done in Catalyst ?

Yes, a Catalyst script can produce images without involving a separate ParaView process.

> [@embeddedmz](#):
>
> Is there a documentation describing what happens in the wire (the protocol) between the client and the server ? or do I have to dissect the code to understand the protocol (endianess check etc…) ?

I’m not that familiar with the communication between Catalyst and ParaView, but I would expect it takes advantage of ParaView’s client/server communication mechanism that is generated automatically during the ParaView build. @Dave_DeMarle or @utkarsh.ayachit could speak to that more authoritatively.

---

<div class="post-metadata">

### Author: ![embeddedmz](https://discourse.paraview.org/user_avatar/discourse.paraview.org/embeddedmz/32/142_2.png) [@embeddedmz](https://discourse.paraview.org/u/embeddedmz)
#### Post date: [October 3, 2018, 3:43pm UTC](https://discourse.paraview.org/t/whats-the-difference-between-catalyst-and-data-render-server/650/5 "2018-10-03T15:43:04Z")

</div>

> [@cory.quammen](#):
>
> Yes, this is known as a ParaView Live connection. See Sections 2.2 and 2.3 of the [Catalyst Guide](https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v4.3&type=data&os=all&downloadFile=ParaViewCatalystUsersGuide_v2.pdf) for some details.

If I launch a pvserver instance in a terminal, are there arguments to fill to allow it to accept a connection from Catalyst ?
