[IPython-dev] [sage-notebook] Re: Using Google App Engine channels instead of zmq in new IPython
Jason Grout
jason-sage at creativetrax.com
Mon Feb 13 18:01:17 EST 2012
On 2/13/12 4:48 PM, Fernando Perez wrote:
> On Mon, Feb 13, 2012 at 2:32 PM, Brian Granger<ellisonbg at gmail.com> wrote:
>> At this point, ZeroMQ is not a minor implementation detail of IPython,
>> it is really our secret sauce. ZeroMQ has abstractions, such as
>> queues and messaging patterns, that go beyond simple point to point
>> messaging and we rely on those throughout the code base. I don't see
>> how ZeroMQ could be replaced without rewriting good parts of IPython.
>
> Very true. Furthermore, we are working on integrating more and more
> the code that runs a single interactive kernel with that used by
> engines in a parallel setting, to make use of the parallel tools more
> seamless with the rest of our clients (notebook, qt console, etc).
> And the parallel code is pretty much unthinkable without zeromq, as
> this diagram should make fairly clear:
>
> http://ipython.org/ipython-doc/dev/development/parallel_connections.html
Those are some very nice diagrams!
>
> So I concur with Brian, that pulling zmq out of ipython is probably
> not a very realistic goal, and at least it's not one that we have in
> our radar to commit any effort towards. Obviously the code is all
> there, and if you find ways of using IPython successfully for Sage
> without zmq, that's great. I just think that from our side, there
> won't be work put in that direction, given how many other things are
> on our plate and how much we continue to build *upon* zmq rather than
> wanting to move away from it.
Thanks for the feedback. We already have a websocket<->zmq bridge,
right? I think now that GAE channels could basically replace the
websocket portion. I assume that would be much easier? So the basic
architecture would be:
browser <-GAE channel-> Sage server on GAE <-GAE channel-> (bridge
<-ZMQ-> IPython kernel)
where the part in parentheses would be the worker running on a compute
server, and the shim is the bridge between GAE channels and zmq. Does
that seem more reasonable? What does the architecture of your websocket
bridge look like?
Thanks,
Jason
More information about the IPython-dev
mailing list