[Pipet Devel] http protocol

Brad Chapman chapmanb at arches.uga.edu
Thu Feb 24 22:03:14 EST 2000

Gary wrote:
> I'm not an http expert either; I merely proposed it because it is the
> default communication protocol for XML transfer, and web-browsers use
> it.  When we get XML compliant web browsers, then we can connect
> browsers to a loci engine.  The crappy part about this is that, in 
> to manipulate the DOM, we're stuck with java/javascript.  I dont 
know of
> any other way to do client-side processing through a browser, if 
> is I would love to hear about it.  Honestly, the whole web-interface
> idea may be too much for us right now, although I know Dr. Lapointe 
> interested, as is my roommate (who would like to participate in this
> aspect of Loci's interface).  

Good timing, since I'm just programming/thinking on this right this 

    Right now I'm starting to implement and work through the 
microscope server example that I mentioned in my e-mail earlier today. 
This server does a lot of what Jeff mentioned he wanted, including 
allowing multiple connections to a single server. The connections 
are established through sockets (socket programming = scary!) and the 
server handles processing requests, authorizing users, and 
returning information. It works with a web interface by creating a 
simple http server that spits out a basic page and a jar file with the 
    So, anyways, looking at this and looking at basic info on http led 
me to have the following thoughts:

1. I don't think http as a communication protocol will give us a 
multi-client/one server setup like we would like without a huge pain. 
>From looking at things, http seems set up for a simple request and 
response dialog, and I'm not positive how to manipulate it to do what 
we want without having a huge middleware server with a lot of "web 
interface" specific code.

2. How about if instead of relying on the middleware server to spit 
out XML that will eventually be good enough to travel directly into a 
browser (whenever browsers become sufficiently XML aware enough), we 
require the web front to process the XML that the middle returns, and 
then serve up web pages based on this? From what little I know about 
Zope, it seems like it would be ideally suited to this task since I 
think it's meant for publishing "dynamic" web pages like we would need 
for Loci. This way, the developer of the front end could choose use a 
"real" http server (instead of us having to program an http server) 
and could also use other web server tools like MySQL or whatever. This 
seems like it would free up the people interested in developing the 
web interface to be a lot more creative in generating the user 
interface and also to use more standard web tools that we actually 
have now.

3. If the above two points make sense, then we now have a little 
more flexibility for communication methods between front ends and the 
middle. In this case, I would like to propose using corba (instead of 
the sockets used in the microscope server example that I'm looking at) 
to communicate between the front and the middle. This will give us a 
lot of freedom for creating a nice interface and will allow front ends 
to be built in any language. Initially, we could have corba servers 
publish there IORs somewhere on the bioinformatics.org server, and 
then as we got more users, have a dedicated loci program that 
manages/distributes these IORs.
    I also think corba might be a little kinder to us then 
sockets/http in terms of a learning curve.

    Again, I think that once we have corba working, the middle could 
be extended later to use other protocols (once xml and browsers start 
to get along better). But this would give us a way to create the web 
interface with tools we have now.
    Does this sound like a plan? What do the web interface people 
think of this type of arrangement? Does it make sense? (I'm not much 
o' a web programmer myself). If you think it might be worth a try, I 
can whip up an idl interface to start with and we can go from there...


More information about the Pipet-Devel mailing list