[Pipet Devel] Code updates
Brad Chapman
chapmanb at arches.uga.edu
Tue Mar 14 11:48:02 EST 2000
Hey everyone;
Just wanted to let everyone know that I just made a huge cvs
commit, and now the front and middle are officially separated! Yay!
All communication between them is now going through sockets, and I
should have restored all of the functionality that we had previously,
with a few exceptions:
1. My "wrapping"/connection code isn't currently compatible with the
structure of everything, so it isn't used right now. It probably won't
be very useful in the future either, with GMS and Overflow and all so
it'll probably be out for a while, if not permanently.
2. The database connectivity stuff only half works because of some
issues I'm having with sockets (more on this below). You can only
connect to a gadfly db, and can't view the contents of tables.
If anything else generates errors, please post on it. I've fixed the
error Jeff noticed with containers (thanks for this!), and so
everything except for what I've mentioned _should_ work right.
I also added a doc directory which has the communication protocols
I'm using kind of outlined.
Maybe if Jeff is feeling like he has free time, and the code seems
okay, he might be able to develop a new snapshot from this, so people
can check it out:) If you are taking a look at the code, the parts to
look at are basically divided as following:
front/gnome/library and subdirectories: The code for the gnome/gtk
based front end.
middle/library/modules/xml: This is all of the code for the current
middle/core. Basically it contains code to create a server to
communicate with the front via XML through sockets, code to create
XML descriptions of the workspace (which can be seen in middle/temp
when the Loci program is running), and code for dealing with the
filesystem and databases.
middle/library/modules/wrap: The old barely started "wrapping"
and "connectivity" code. This isn't currently used, so it can be
ignored.
There is tons o' commenting, but if stuff isn't clear, please feel
free to post. Any comments/criticism are highly encouraged. I
apologize, I'm having trouble getting any of the docstring processing
programs to work without complaining, so there isn't any nice api
documentation like there should be.
Okay, the rest of this has to do with problems I'm having with the
socket connection between the front and back. Basically, I'm having 3
issues:
1. Speed: Both the database and filesystem container views come up
*really* slowly. This is due (I think) to all the extra dom/xml
generation, and also the lag time waiting for the front.
2. Password passing: I've been passing around passwords for databases
in an encrypted format (using the rotor module in the standard
distribution). When encrypted, a password is a jumble of random
characters. The problem I'm having is in passing these through the
socket. When the server receieves a message, it receieves it in small
pieces of strings, and then adds them up (until it gets a newline, the
end of message signal). The problem is that python doesn't like to add
the weird characters generated in the encryption, and so complains
when it tries to add these.
3. Data passing: One thing which we haven't talked about, although I
should have thought of it before, is how to pass a large amount of
"unstructured info" between the front and the middle. For instance,
how should I pass back the columns and row information for a database?
If I format this as XML, this will take impossibly forever for
large tables (which I have quite a few of in my databases), but I
can't think of another way way to pass info cleanly and reusably.
Does anyone have any thoughts on fixes for these problems?
Suggestions? Am I misssing something simple?
Thanks for reading!
Brad
More information about the Pipet-Devel
mailing list