We have a project that's mostly wrapped up called Origami. I think
I've mentioned it before but here's a re-cap: Essentially you go to a
web-page, search for data, fill out a form indicating what you want
to do with the data, and then submit it to the processing cluster via
XML RPC. You get notified when the job is done (RPC again) and goto
the status page and launch IDV/McV via a dynamically created JNLP
link and kablam! it's all set with the data already loaded via
OPeNDAP and you're all ready to go.
What I want to do is take the functionality of the webpage and be
able to do all of that right from McV. I'm not looking for something
polished and production ready, quick and dirty is fine, just
something that could be end-to-end right from the application ...
find data - fire off job - wait - view data.
My first thought was to simply create a formula that popped up a
window to allow you to do the search, etc..., and just sit there and
wait until it got the notification message from the cluster saying
the data was ready then create the field and return it. However, I
believe that this by nature would be synchronous, there by locking
the application until the cluster completed the job, which could be a
while depending on how full the job queue is.
My second thought was to create a plugin with a chooser that spawned
some thread that waited for the processing complete message. I'm not
sure if it would be possible to plop the OPeNDAP URL for the
processed data into the URL chooser once it's done though. Maybe it
would be possible to simply popup a dialog with the list of currently
available displays and ask which one to put it in.
The first idea would work but I really want asynchronous
communication. I'm not sure if the second way would work.
What do you think?