[Pipet Devel] http protocol

J.W. Bizzaro bizzaro at geoserve.net
Fri Feb 25 10:32:32 EST 2000

Brad Chapman wrote:
> > adheres to the http 4.0 protocol.

Err, sorry.  I guess it's HTTP 1.0.  HTML is 4.0.

>     My idea was that the web front would take care of all of the
> serving for web pages, and the middle would only supply this Loci
> Transfer Protocol (ie. XML back and forth).


> I figure that whoever does
> the web front can use whatever server/helper programs that they need,
> and I was just throwing Apache/Zope out there as ideas, since Gary
> expressed some concern about the feasibility of things. I think
> getting a loci front going in a web browser will take a lot of
> creativity, so any tools that can help shouldn't be a problem!


>     Besides, if you get to require "monster" Gnome and Gtk for the
> front end you are designing, I think anyone working on the web front
> end could also require Zope/Apache :)

Touche ;-)

>     But, as I said, I don't know anything about web design, so
> whatever people want to use is fine with me!

The Web front-end of Loci will require some creativity, but the developers
won't be suffering from a lack of tools.  As you mentioned, there are many,
many tools out there for Web content generation.  I think we can therefore
worry less about the needs of Loci's Web front-end and focus instead on being

> Right, baby steps all of the way. I just uploaded my first baby step
> with sockets to get the front and middle talking on a single machine.
> I wrote a barely functional middle "socket" server based heavily on
> the design of the microscope server, and then redirected the
> connection stuff so it goes through the socket. So now we actually
> have clean language independent separation between one small part of
> the front and middle (yay!).


>     Okay, right now I have the middle socket server and the main Loci
> program start up via two different scripts (to make it easier for me
> to test things) so to start Loci now you need to first run:
> ./startMiddle.py &
> and then:
> ./loci &

Well, you just hit on something I knew we would have to deal with.  The script
'loci' in the root directory should be a command-line program that launches the
fronts and middle as separate processes.  Right now, it has some Gnome stuff in
it, which it should NOT.  This is a left-over from before our change in
directory structure.

Don't worry about making the 'loci' script work right, Brad.  I want to add
that to my personal TODO.

>     So it looks like we'll start doing things with sockets and see
> where it goes....


>     I think that initially sockets are simpler, but I think things
> might get more difficult as we want to do more complicated things.
> This is where I think corba might be more suitable.
>     But you are right, maybe we should start with sockets and then see
> if problems/limitations develop. Then maybe I'll be able to make a
> better case for corba...

If there is a glaring problem with using ordinary sockets, and CORBA can do
everything we want and better than sockets can, we'll use CORBA.

> > Loci can use corba and http, having the appropriate extensions for
> > them.  But we have to keep Loci as a protocol-agnostic broker for
> > communications.
> This makes sense, but I only want to have to support one communication
> protocol from the front to the middle for now. Otherwise stuff will
> get waaay too complicated for my brain to handle.

I wouldn't characterize Loci's brokerage of different communications protocols
as being front-to-middle communication.


    Front talks to middle
    Middle talks to front
    Middle talks to middle
    Middle talks to back
    Back talks to middle
  >>Back talks to back<<  (when connection has been brokered)

Here's a flowchart:

                 | Front |
                    | /|\
                    |  |
             SOCKET |  | SOCKET
                    |  |
                   \|/ |
                 | Middle |/______________
                 +--------+\             |
                   /    \                |
           SOCKET /      \ SOCKET        | SOCKET
                 /        \              |
       +-----+/_/          \_\+-----+____|
       |     |\              /|     |
       | Back|_______________\|Back |_________\
       |     | ANY PROTOCOL  /|     |   ETC.  /
       +-----+                +-----+

Can ya diggit?  Yes I can!

                      |           J.W. Bizzaro           |
                      |                                  |
                      | http://bioinformatics.org/~jeff/ |
                      |                                  |
                      |        BIOINFORMATICS.ORG        |
                      |           The Open Lab           |
                      |                                  |
                      |    http://bioinformatics.org/    |

More information about the Pipet-Devel mailing list