<div><div class="gmail_quote">On Mon, Feb 13, 2012 at 10:44, Jason Grout <span dir="ltr">&lt;<a href="mailto:jason-sage@creativetrax.com" target="_blank">jason-sage@creativetrax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Over the Sage camp, we&#39;re starting to experiment with using Google App<br>
Engine to manage communication between browser frontends and worker<br>
(kernel) backends.  The idea is to use GAE to host the notebook, while<br>
browsers and backend kernels communicate to send and retrieve work and<br>
results through the Google App Engine &quot;channel&quot; architecture [1].  The<br>
result would be a massively more scalable notebook running in the cloud.<br></blockquote><div><br></div><div>Scalability / Cloud are great, and certainly an ultimate goal, but my perspective is that if replacing zmq is part of the GAE solution, then it is just not the place for IPython.</div>

<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
We&#39;d (or at least I&#39;d) also like to eventually switch to IPython 0.12,<br>
and try to leverage the new IPython architecture and communication in<br>
the Sage notebook.  So my question is: how well is the zmq parts<br>
encapsulated, and do you think it would be hard to write a google app<br>
engine &quot;channel&quot;-based solution that plugs in the place of the zmq<br>
communication (and websocket for the html notebook) communication?<br></blockquote><div><br></div><div>zmq is used principally in two places:</div><div><br></div><div>* The Session object, which abstracts network communication.  You would have to write a new version of this object</div>

<div>* The event/polling loops everywhere (specifically Kernel, KernelManager, NotebookApp).  If GoogleAppEngine channels can be made to work with the tornado IOLoop, then this shouldn&#39;t be too tricky.  Otherwise, you would have to rewrite the eventloop of every application/thread we have.</div>

<div><br></div><div>-MinRK</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I&#39;ve CCd both the ipython list and the sage-notebook list---hopefully<br>
the discussion can be carried on both lists.  Also a disclaimer: I have<br>
about zero experience with GAE; I&#39;m just trying to throw the idea out<br>
there and understand a little more about the possible work required.<br></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Thanks,<br>
<br>
Jason<br>
<br>
<br>
[1] <a href="http://code.google.com/appengine/docs/python/channel/" target="_blank">http://code.google.com/appengine/docs/python/channel/</a><br>
<br>
_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org" target="_blank">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
</blockquote></div><br></div>