[Pipet Devel] thoughts on UI->DL communication

J.W. Bizzaro bizzaro at geoserve.net
Tue Apr 11 12:52:28 EDT 2000

Brad, Jarl and I were all talking about UI->DL communication over chat.  I
want to summarize my own thoughts.

First, the VSH plan for the UI->DL parts and the communication between them,
is to re-use Loci's Front->Middle parts and communication.  So,

     VSH            Loci
    ------         ------
    UI->DL  ==  Front->Middle

But Loci's Front->Middle parts and communication are also very similar in
design to VSH's DL->BL parts and communication.  Both Front->Middle and

    * Act like client->server
    * Pass XML
    * Need authentication to connect
    * Can connect across a network

So, I see a lot of duplication between UI->DL and DL->BL in the current plan
that need not be there.

Jarl suggested that VSH use 1 UI per DL.  This makes DL a client rather than a
server and eliminates much of the duplication mentioned above.

But I wonder, if there is only 1 UI per DL, why do they need to be separate? 
Could they both be in Python?  I think there are several advantages:

    (1) Speed: Direct Python communication rather than socket
    (2) Less processes running: 1 processes rather than 2
    (3) Unified code base
    (4) One less authentication system needed (recall we would need 3)
    (5) Elimination of sockets: keep corba as the only protocol
    (6) No XML management (reading and writing) between the two

I would propose that both the UI and the DL be combined into one Python code
base, and have the UI (in particular, the Gnome UI) be a module library for
the DL to import.  This UI library would have a well defined API with events,

But Brad pointed out that there would be (at least) 2 problems:

    (1) There would be a lot of rewriting to do, which would make Brad
        very unhappy.

I'm not suggesting that we re-integrate the two parts.  I think the separation
is good, because the use of the UI as a library would require a separate
anyway.  And as far as work goes, I can do it myself.

    (2) Other UI's would have to be made in Python.

Actually, there are 2 ways we can make UI's in other languages:

    (a) The whole UI->DL part can be written in another language
        and use CORBA to communicate with the BL.

    (b) Write a UI part in Python that can communicate with non-Python
        UI's, using a language-neutral protocol like CORBA.

My argument for doing it now is this: IT WILL BE A LOT HARDER LATER ON WHEN


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

More information about the Pipet-Devel mailing list