[Pipet Devel] we're back

Brad Chapman chapmanb at arches.uga.edu
Wed Mar 1 04:24:28 EST 2000


> Okay, I guess you're talking about different 'sessions' and not about
> multiple
> fronts tapping into one session.  If this is so, perhaps you should 
have...
> 
>  middle/temp/session1/workspace1
>  middle/temp/session2/workspace1
>  middle/temp/session3/workspace1

Okay, sessions then :) The newest cvs does just this--puts the info 
from each front started into a separate session and keeps track of 
them separately. When a front shuts down, the middle will 
automatically delete the xml associated with the session. When all 
fronts shut down, the middle turns itself off. I know that later on 
people might want to leave the middle running all of the time, even 
without any fronts going (ie. if they wanted to be serving specialty 
loci to users at other locations) but for right now I just want to 
make it as clean as possible to start up and close Loci.
 
> My idea for multiple fronts 'listening' or 'tapping' into a single 
session,
> allowed one front to control others.  If you're talking about 
multiple
> sessions, shouldn't each session have its own port?

Why can't all sessions listen on one port? I can distinguish sessions 
over the same port based on the the connection, and properly 
communicate only with a single connection when multiple connections 
are fired up. Is there a performance issue here I should worry about? 
As I mentioned before, I've never tried socket programming, so I don't 
know about this.

> Okay, so the front remains locked up while waiting for a response.

Right--my idea is that the middle can also return errors to the front, 
so this way the front waits until the middle responds positively, 
before it goes ahead and visualizes a change in the GUI. Does this 
make sense?
 
>> So I
>> think it might be worthwhile to put this off a bit until things are
>> smoothed out with this communication method.
> 
> Okay.  But what we're talking about is running the gnome front's GUI 
and
> listening routine as separate threads.  I think it should be done 
this way,
> so that we can have one front manipulated by others.

Okay, if we want to have the front listening on a different thread at 
all times
then we'll need to have some kind of login dialog with the middle like 
the following:

Front asks to login:

<front>
  <login>
    <user name = 'brad'
          password = 'encrypted' />
    <session name = 'my_gnome_session' />
  </login>
</front>

Middle responds:

<middle>
  <success>
    <port number = '12345' />
  </success>
</middle>

Then the front will have to listen on this port for info from the 
middle. The session name gives the session a unique name so that other 
fronts could manipulate the same session. The user name and password 
provide protection for the session. 
    So this could be done, but would require a login type dialog to 
begin a front. I think this is kind of overkill right now since we 
don't even have other fronts to start up :-) I think this is a good, 
and possible, idea, but should wait until things are a little further 
along.

> And I think you're talking about multiple sessions with one middle.  
But
> which
> would be more complex: one middle running multiple sessions or 
multiple
> middles
> with one session each?  Multiple middles would give us the problem I
> mentioned
> of the front (not) knowing which middle to choose.

Multiple middles would be a big pain, because we'd have to have them 
listen on separate ports to start with, and then would have to have 
some file or something where the fronts could find out what middles 
are listening on which ports. I'd rather do things the way I described 
above, with a login dialog. Then the middle can generate all of the 
new ports while running, and pass the info back to the middle. This 
way, all fronts start off by talking to the middle on one standard 
well-known port, and then can subsequently be assigned specific ports 
if necessary. Does this sound snazzy?

Brad







More information about the Pipet-Devel mailing list