I have a local scientific application that uses threads to process independent pieces of a large calculation. My group would like this to become a web application, so now I'm figuring out how to port it (so please forgive any complete bonehead statements). I'm using Google App Engine to take care of the "web" part of it, but I'm still working out what other translations are appropriate.
My first inclination was to leave the calculation completely as is (e.g., digest some web form data into the appropriate format, pass that into calculator which spawns threads, etc).
However, I'm also reading about Queue
s + TaskOptions
- that sort of looks like what I should be using instead of ExecutorService
+ Callable
. The individual sub-calculations can take a bit to process (though they can also differ widely in amount of time required), so I guess ideally I'd like a user to be request the whole calculation and then be taken to a page which loads the results as they become available.
Are Queue
s + TaskOptions
the right thing to be using? If not, what is? If so, are there convenient parallel examples to what I'm looking to do?
Lastly, my group has some short-term qualms about wide-release of the internals of the calculation so its details are all server-side - should that allay those concerns?
Eventually (after some publications etc) we plan to make those internals openly available and presumably then the web version could move the calculation client-side. Is there a preferable way to do implementation now that will make that future translation simpler? Or is that not even worth worrying about (since I already effectively have a "client-side" version in my local application)?