Greetings!

There has been some discussion on developing alternative
administration interfaces for Midgard before.

So far the discussion has stopped into the point that
Midgard would need bindings to other languages before
they could be used to develop a new Admin system.

However, since this topic touches integration quite
much, and that is a topic I need to think about a lot
at work, I've been seeking for other ways of solving
this problem.

Now, once we think about it, if there were language
bindings to another language, say, Python or Java,
in midgard-lib, and we were to use that for the
interface, then practically every user running this
interface would be using direct database connections
- something that can be troublesome.

The other solution would be to use some kind of 
RPC system with which would enable the normal 
Midgard application server to serve these desktop 
clients just as it does Web-based ones, reducing 
the number of needed database connections (or the 
need of even enabling those connections from 
outside the Web server).

Good options for this exist. For example, XML-RPC
is a relatively simple HTTP-based protocol for
which you can find support libraries to many different
languages, including Python, Java, PHP and Perl.
Yes, PHP is one of those, meaning that you can use
a Midgard server as a XML-RPC client or server
even now.

We're using this for a couple of applications at
Stonesoft, and will surely be using it for many
more in near future. These applications range from
a GNOME panel applet written in Python fetching
the corporation's realtime stock quote from our
Midgard server to backend Perl scripts creating
articles into the database from incoming email.

With this, we could write the administrative
programs quite easily, and possibly extend existing
ones as well. Think about an Open Source PHP code
editor that could also edit Midgard styles and
pages. All this needs is a couple of programmers
getting familiar with the spec, and a XML-RPC
server that would provide the needed Midgard 
functions as methods (which is really quick to 
write).

If this would become a popular method of 
administrating the Midgard database, we could then
rewrite the XML-RPC support libraries in C and
place them into the actual Midgard packages as
an extension - just like Repligard will be.

XML-RPC spec: 
        http://www.xmlrpc.com

XML-RPC support for PHP:
        http://www.usefulinc.com/xmlrpc/php.html

There is also another potentially useful standard
out there - SOAP (Simple Object Access Protocol),
an extension of XML-RPC developed by Microsoft. However,
this is slightly more complex, and also lacks the
level of language support XML-RPC has.

SOAP spec:
        http://develop.com/soap/

There are also some other XML-over-HTTP -based RPC
systems available. While these wouldn't replace the
need for native bindings, they will surely be a nice
addition, and provide interesting integration
opportunities as well.

Another slightly different approach would be to use
Mozilla for the interface. Mozilla is a multiplatform
application environment that comes with its own
system for defining GUI programs and the data they
use. What is interesting in the XUL standard, is that
at least most of the UI and data used in it can be 
loaded from a remote server just as easily as a local
one. This could enable us to create a XUL-based admin
site, maybe as a superset of the HTML-based one, and
the users could use that just as they do a normal
desktop application.

Mozilla XPToolkit:
        http://mozilla.org/xpfe/
XUL tutorial:
        http://www3.sympatico.ca/ndeakin/mozilla/xultu/

And then there is also CORBA, which Emile has been
looking at lately.

While I wouldn't rule any of these opportunities out
entirely, it is clear that we don't currently have the
developer resources to pursue all of them, but will
rather have to select one or two options to concentrate
on.

But even if we won't end up with complete bindings to
all of these options at once, they provide good
opportunities that probably are of interest to all of you
who seek to integrate other information systems with
Midgard. Which I'm sure that many of you do.

/Bergie

-- 
-- Henri Bergius -- +358 40 525 1334 -- [EMAIL PROTECTED] --
               http://www.iki.fi/Henri.Bergius


--
This is The Midgard Project's mailing list. For more information,
please visit the project's web site at http://www.midgard-project.org

To unsubscribe the list, send an empty email message to address
[EMAIL PROTECTED]

Reply via email to