Bruce Flynn wrote:
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?
Bruce - my first thought is wondering why you think the first method has
to be
synchronous. In other words, why can't the entire first method be done
in a
non-modal dialog? If possible, it would be great to have a progress
monitor too.
If necessary, you can spawn a thread to do pretty much anything. Including
the entire process described in your first idea, I'd imagine.
Just my first reaction - we'll see if anyone else chimes in, or if you
want to talk
more gather some of us up around here...
--
Tommy Jasmin
Space Science and Engineering Center
University of Wisconsin, Madison
1225 West Dayton Street, Madison, WI 53706