[AG-TECH] AGTk Development: Can a Shared Application Run on a PC without a Venue Client?

Justin Binns binns at mcs.anl.gov
Wed Jun 4 15:23:33 CDT 2003


Let me first qualify this by saying that I'm not a member of the core AG
dev team (though I certainly work with them on a daily basis ;-), and that
the 'right' answer to these questions is still under heavy discussion (a
discussion that anyone and everyone is invited to take part in during town
halls, via AG-Tech, in the meadow, etc.).  Having given that caveat,
here's how I see it:

First, we should differentiate between a 'service', in the generic, and a
'Node Service', in the specific.  What you describe below (i.e.,
implementing start, stop, configure) is a Node Service.  Such things have
a very specific purpose, and a very specific interface requirement.  They
are intended to represent resources available to the Node, such as video
or audio resources.  While some class of things certainly falls in this
category, and perhaps a dumb consumer of model data would arguably fit,
it's not a good fit for the general case of an application.

A shared application is also a specific thing, which may or may not be a
good fit.  A shared application is, at some level, also a service, though
it interacts with the venue in a prescribed way and provides specific
resources.  If you aren't using the event channel, there is some argument
perhaps that the shared application framework isn't an exact fit, because
the shared application framework really only provides an event service and
a state repository.  It seems that your application is looking for more
than that (or different than that, at any case).

Even though the shared application framework isn't an exact fit, it's
closer than the Node Service (in my opinion).  Someone else on the AG Core
team (Tom Uram, Ivan Judson) may have more/different feedback - I'll leave
it to them to follow up further.  My primary point in all this was that
the shared application framework can be used to do what you want (it seems
to me) and shared applications can be spawned without a Venue Client
(though, of course, you still need the AGTk and a valid proxy).

Hope that helps.

Justin

P.S.  One important point - by design, the AG Node Services don't (can't) 
interact directly with the Venue.  This would be a big reason not to use 
the Node Service concept for an application - getting at Venue data or 
state would be a violation of the abstractions that have been established.

On Wed, 4 Jun 2003, Allan Spale wrote:

> Justin,
> 
> Would it not be simpler to create a service (this is more of a
> prove-why-I-am-wrong question rather than questioning your work and
> approach)?  The shared application I need uses venue data (which makes it
> usage as a shared application more obvious), but there is not any
> collaboration using event channels (which seems to make its usage as a
> shared application less obvious).  Having an AG service would just involve
> implementing start, stop, configrure, and any other method that may be
> relevant to the viewer because I do not programmatically manipulate the
> viewer (as in SharedPresentation with going to next slide, going to
> previous slide, etc.).  So, why would my viewer still be best implemented
> as a shared application rather than a service? 
> 
> Thanks for your patience.
> 
> 
> Allan
> 
> On Wed, 4 Jun 2003, Justin Binns wrote:
> 
> > Hmm, so I don't really have the VenueVNC stuff packaged in a way that I'd 
> > be happy with other folks poking - I'll see if I can't get it wrapped up.  
> > In the mean time, the process is really quite simple - I just set up a 
> > little python script that runs as a daemon (completely outside AGTk) that 
> > responds to remote proceedure calls (I used XMLRPC, you could use the 
> > GSI-SOAP that comes with the AGTk if you'd like) by doing things like 
> > spawning viewers, running programs, etc.  Then my shared app just has to 
> > make the appropriate RPC calls, and the daemons run the bits I need.  The 
> > Venue Client, after all, just executes the configured command in response 
> > to a mime-type match, all I do is propagate that execution over the wire.  
> > 
> > Justin
> > 
> > On Wed, 4 Jun 2003, Allan Spale wrote:
> > 
> > > Justin,
> > > 
> > > I really appreciate your response.  I will take a look at the VNCWall and
> > > XML stuff.  Is the code for VenueVNC posted somewhere that I could look at
> > > how you addressed the problem?
> > > 
> > > In general, given that the world of shared applications is not as
> > > straightforward for some cases, would a future version of the AGTk contain
> > > some APIs that would make this process easier, or would it be possible for
> > > me, as I am working (and if it would acutally be helpful to me), to create
> > > some APIs off of the AGTk to facilitate people's future work in this
> > > direction?
> > > 
> > > Thanks for your time.
> > > 
> > > 
> > > Allan
> > > 
> > > On Wed, 4 Jun 2003, Justin Binns wrote:
> > > 
> > > > Allan,
> > > > 	In my experience in coding the VenueVNC "shared application", I
> > > > looked at similar problems (when integrating the tiled display).  The
> > > > simple answer to your question is that the Venue Client is not necessary
> > > > for the shared application to run, though an AGTk installation is, of
> > > > course, required.  The way I did it with the Tiled Display with VenueVNC
> > > > was to have a separate mechanism for interacting with the Tiled Display (a
> > > > set of Python/XMLRPC applications/daemons that allowed operations similar
> > > > to the VNCWall stuff from NCSA), and a separate client that knew how to 
> > > > make use of the TD stuff to launch my client code remotely (on the Tiled 
> > > > Display nodes) instead of locally.  Does that help?
> > > > 
> > > > Justin
> > > > 
> > > > On Wed, 4 Jun 2003, Allan Spale wrote:
> > > > 
> > > > > Hello,
> > > > > 
> > > > > In my efforts to try to further understand developing AG add-ons using the
> > > > > AGTk, I was wondering if it is possible to run a shared application on a
> > > > > PC in the group/cluster of PCs that encompass the AG node.  For instance,
> > > > > I am trying to integrate a 3-D model viewer application into AG 2 as a
> > > > > shared application.  After chatting with Tom Uram on the MUD (thanks, Tom)
> > > > > about all my questions about the difference between an AG service and
> > > > > shared application, it seemed like writing a shared application was the
> > > > > way to go.
> > > > > 
> > > > > However, there are some wrinkles in this seemingly simple application. 
> > > > > First, the shared app requires access to a file in the venue (provided by
> > > > > specifying URLs to the actual location of the files) that consist of the
> > > > > model being viewed or a set of files for viewing a series of models at one
> > > > > time and a configuration file.  This is not a problem.  When I would
> > > > > choose the file from the venue, it would have a MIME type associated with
> > > > > the viewer application (the MIME type would be registered during the
> > > > > installation of the viewer) on the PC running the venue client.  If there
> > > > > is a need to share the same view of the model, it is provided through
> > > > > using an event server created specifically for this 3-D model viewer (so I
> > > > > am not using an event channel for the shared application, which seems
> > > > > conterintutitive...it is a shared application, but the AGTk is not used to
> > > > > announce events to the viewer application).
> > > > > 
> > > > > So, it seemed like I understood what I wanted to do until I realized
> > > > > something...the 3-D model viewer application needs to run on another PC,
> > > > > which would not run a venue client.  This leads to my question: can a
> > > > > shared application running on a PC with a venue client launch the
> > > > > application being shared on a PC where the venue client is not running?
> > > > > This other PC, where the 3-D model viewer must run, is connected to a
> > > > > passive stereo display (GeoWall).  Now, does this new requirement
> > > > > prohibit me from integrating this viewer as a shared application and
> > > > > necessitate that it is now a service?  Or, is it still a shared
> > > > > application where the user would install the viewer executable (being
> > > > > shared) on the PC connected to the passive stereo system and somehow the
> > > > > shared program running on the PC with the venue client would know to
> > > > > launch that application on the other PC through some programmatic means? 
> > > > > 
> > > > > Any help/advice would be appreciated.
> > > > > 
> > > > > 
> > > > > Allan
> > > > > EVL at UIC
> > > > > Research Assistant
> > > > > 
> > > > > 
> > > > > 
> > > > 
> > > 
> > > 
> > 
> 
> 
> 




More information about the ag-tech mailing list