[Pipet Devel] toolkit and data access/storage

Carlos Maltzahn carlosm at moet.cs.colorado.edu
Thu Jan 21 20:12:32 EST 1999


Jeff Bizzaro wrote:
    
    Again, we are going with distributed Python objects via Paos.  
    But the "query" or command language used is something I haven't
    thought much about.  We do want the XML that is returned to be
    something the client can handle.  For example, the client asks
    (queries) the Gatekeeper for a Chao-Fasman prediction of protein
    secondary structure.  It should get something back that can be
    displayed by that client, or the client may have to pass the info
    along to another client.  In any case, the data has to be of the
    type that has a client in existence for it.

Paos does have a (pretty ad-hoc) query language. The README in the
distribution contains a terse description/definition.
(ftp://ftp.cs.colorado.edu/users/carlosm/README.paos). Results are Python
objects. The client module and the base classes for schema definitions are
optimized for reducing object serialization overhead. The result of a
query are objects that match the query and all "primitive objects" such as
strings and numbers that are values of instance variables. Pointers to
other objects are internally represented as object IDs in the form of
strings. They are transparently loaded from the server as the user
references them. The client maintains a local cache so that re-references
of attributes that point to other objects don't cause any client/server
traffic. Cache consistency depends on the use of notification services.
Objects that are received via notifications are written into the same
cache. Thus, one can maintain very tight cache consistency by
appropriately defining notification requests. But notification requests
also allow you to limit the scope of cache consistency to a few relevant
objects.

I'm not sure how Paos should communicate with the actual tools (in the
case people agree to use it as "gatekeeper"). I personally don't like CGI
because of it's unflexible fork-request-once-response-once-terminate
assumption. I suspect these tools are running for a longer time period and
we would like to be able to find out about their state. On the other
hand it's probably not a good idea to run them natively in Paos
because of their size, no? What are people's thoughts about this?

Carlos



More information about the Pipet-Devel mailing list