[Paraview] ParaViewWeb & TomCat

Andy Bauer andy.bauer at kitware.com
Wed Nov 30 12:01:17 EST 2011


Hi Chris,

I think Sebastien and I need to talk a bit about this to figure it out
since neither of us has enough knowledge on our own to solve this.

I cc'ed the paraview mailing list since someone else may have some good
input too or may want to follow your path in the future.

Andy

On Tue, Nov 29, 2011 at 11:39 PM, Chris Kees <cekees at gmail.com> wrote:

> Hi Sebastien and Randall,
>
> I think I'm probably the user Randall mentioned earlier.  I'm responding
> off list because these seems a bit detailed for a regular post--feel free
> to post it back to the paraview list if you like.
>
> Here's a rough idea of what I'm up to. I'm running the IPython notebook
> server (http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html).
> I'm looking for a way to do interactive 3D graphics inside an IPython
> "notebook". I don't claim to know all the details of how the notebook
> server works but I think the set of connected services looks something like
> this:
>
> WebClient (browser) <-> Tornado Web Server <-> IPython Client <-> IPython
> Kernel/Hub <-1-to-N-> Python Engines
>
> where <-> is just some abstract connection (e.g. http, zeromq
> sockets,etc).
>
> This set of processes basically gets started when I start the IPython
> Kernel on the command line of the server, though I can start "engines"
> later as well and connect/disconnect browsers without killing anything
> else.  The kernel starts up a Tornado web server to begin serving up
> "notebook" pages, which are JSON files containing executable python code
> and text "cells". When somebody  points a browser to a notebook (say
> localhost:8000/some_path/test.pynb). You can then execute and run the
> python code in the code cells by doing various things on the webpage
> representing the notebook (push 'run cell' etc.). The code cells can be
> executed either on the client python process, or the code can be sent
> through the hub to be run on a collection of "engines" also running python
> (and communicating with each other via MPI in my case).
>
> If the code cell is run on engines you can pull objects in the engines'
> namespaces back onto the client.  Now, on the client, if an expression
> returns an object that implements the interface of an IPython DisplayObject
> (
> http://ipython.org/ipython-doc/dev/api/generated/IPython.core.display.html),
> then it gets displayed as part of the webpage in an "output" cell.
> DisplayObject's can return HTML, JSON, javascirpt, SVG, and range of image
> formats. I'm attaching a pdf of a simple IPython notebook that has an
> expression returning a PNG DisplayObject at the very end.
>
> In my case, the python engines are running MPI and solve a PDE in
> parallel. The data structures for the solution all get attached to VTK
> objects and a visualization pipeline on the engines.  Also, Andy Bauer
> helped me get those VTK objects attached to paraview using the
> servermanager module a few weeks ago so I can do co-processing now as well.
>   I'm already able to composite, render, and interact with 3D objects using
> my Qt front end and the python VTK API.  I think it will be fairly simple
> to have the rank 0 engine generate a PNG of the rendered/composited image
> that will fulfill the requirements of an IPython PNG DisplayObject. That
> would give us non-interactive images of the solution in the notebook.
>
> My question is whether there is a way to add ParaViewWeb into this
> collection of processes so we can generate not only stills but get full
> interactive 3D visualization in the notebook. I was thinking that a
> DisplayObject of type HTML, JSON, or Javascript might be able to write a
> bit of code that would point the browser to the tomcat server running a
> paraview web service. That service would itself be connected back to the
> same data sets on the engines. Something like this:
>
> WebClient <-> Tornado <-> IPython Client ....  <-> python engines (with
> VTK objects and a servermanager)
>                                  ^
>                     ^
>                                   |
>                        |
>                             Tomcat <-> ParaViewWS <->       PW server
>
> Anyway, if this seems like it's feasible I'd be willing to build all the
> paraview web components on my laptop where I already have IPython, VTK, and
> Paraview co-processing working. If that works then we might be able to get
> some support for something more ambitious where the engines are running on
> HPC machines.
>
> Thanks,
> Chris
>
>
> On Nov 29, 2011, at 12:26 PM, Sebastien Jourdain wrote:
>
> Hi Randall,
>
> This sounds good, so tomcat can easily be used on any user account
> with no right outside his home. You can even strip down the default
> package of tomcat so you get only the minimum required for ParaViewWeb
> and you can run it on any port higher than 1024.
>
> To do that, you will need to download tomcat on your own and
> unzip/untar it, then deploy ParaViewWeb into it and start tomcat
> yourself.
> That's basically what we are doing for its development.
>
> Hope this help,
>
> Seb
>
> On Tue, Nov 29, 2011 at 1:01 PM, Randall Hand <randall.hand at gmail.com>
> wrote:
>
> Something I can run entirely without any higher-permissions to the system,
>
> with no access to /etc or /usr folders.
>
>
> Sebastien Jourdain wrote:
>
>
> Hi Randall,
>
>
> Can you be more specific by what you mean by "standalone" and by
>
> "can't use Tomcat" ?
>
> Because, for me tomcat can be standalone. Would you think something
>
> more embedded such as Jetty or something that does not involved Java
>
> at all ?
>
>
> Thanks,
>
>
> Seb
>
>
> On Tue, Nov 29, 2011 at 10:00 AM, Randall Hand<randall.hand at gmail.com>
>
>  wrote:
>
>
> I have a user interested in using ParaViewWeb as a front-end to some
>
> visualization tasks, however we can't use TomCat in our environment.  Is
>
> there any kind of "Standalone" service that can be used as a replacement?
>
>
> I know several apps that expose a web interface offer a limited function
>
> webserver (trac, ipython, etc) that allows it to work standalone without
>
> any
>
> external webserver configured.  Does such a setup exist for ParaViewWeb?
>
> --
>
> Randall Hand
>
> http://www.vizworld.com
>
>
> _______________________________________________
>
> Powered by www.kitware.com
>
>
> Visit other Kitware open-source projects at
>
> http://www.kitware.com/opensource/opensource.html
>
>
> Please keep messages on-topic and check the ParaView Wiki at:
>
> http://paraview.org/Wiki/ParaView
>
>
> Follow this link to subscribe/unsubscribe:
>
> http://www.paraview.org/mailman/listinfo/paraview
>
>
>
> --
>
> Randall Hand
>
> http://www.vizworld.com
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20111130/c44ec0b0/attachment.htm>


More information about the ParaView mailing list