This sounds a bit like how I planned to implement UI's in Piper: ---------------------------------------------- Basically, we've extended the GNOME communities ideas in libglade. Libglade, as you know, reads in an XML file for an application describing its interface and uses it to display the application. A major innovation since this allows users to customize programs without recompiling. What we've done is two things: 1) moved the signal handling from the program to BlueBox (our version of libglade). This means that the program doesn't need to have any GNOME or GTK dependencies. It also means that the program and the interface are completely separated. 2) Handle communications between the program and the interface with network calls, right now SOAP, but it could just as easily be CORBA or XML-RPC. So, what's this mean. It means that BlueBox loads an XML file just like libglade does and displays the buttons, toolbars, etc. using the native toolkit of whatever environment it is in, i.e., GTK, QT, Win32, etc. This is possible because there are no signal handling dependencies. Then, when a user interacts with the interface, BlueBox sends network calls to the program to the effect that "Hey, this button has been pressed," etc. The program then signals back-again in SOAP (but it could be CORBA)-"Well, then change this." All of this is very similar to how web pages work: A platform independent interface (HTML) and an intemediary talking to the server. It requires extremely low network traffic and allows GNOME to serve programs over an intranet or the Internet. This in turn means that GNOME can be the platform of choice for both centralized software management and ASP. ---------------------------------------------- >From a Gnotices announcement http://news.gnome.org/gnome-news/960578167/index_html about dLoo BlueBox http://www.dloo.com/ Cheers. Jeff -- +----------------------------------+ | J.W. Bizzaro | | | | http://bioinformatics.org/~jeff/ | | | | BIOINFORMATICS.ORG | | The Open Lab | | | | http://bioinformatics.org/ | +----------------------------------+