Apache MetaConfiguration Language

Hi all. I reposted this to the list so it would be archived and so
everyone could reply to the list instead of the extensive To: field.
I am using sendmail -t hoping it will keep the Message-ID. We'll see.
-------------------------------------------------------------------

Hi everybody,

this may or may not interest you, but at least it's something you all
should be aware off.

I'm happy to announce that the Java Apache Project, the Apache GUI
Project, and the World Wide Web Consortium (W3C) have joined together to
define a configuration language as a proposal for the new Apache 2.0
project.

This came out from an idea that Daniel Lopez Ridruejo and I had a few
months ago: creating a configuration language flexible and powerful
enough to be adopted easily by all Apache projects (mainly Apache and
JServ) and a base for GUI frontends.

Daniel and I came to the idea that rather than defining a common
configuration language (that would have created troubles and friction in
the mailing lists), a new language should be created to define a common
set of rules to "encapsulate" configuration metadata and syntax in a
very abstract and indipendent manner.

Automatic configuration tools will parse this metadata language to
prepare the framework and the configuration file (a separate file!) to
get actual configuration data.

This would allow these benefits:
1) A single tool could configure any program having the
metaconfiguration file in an automatic way.
2) Even if this language could become complex, users will never need to
touch it.
3) Infact, configuration formats are not touched by this (Apache could
still use the same format and keep it simple, human readable and vi
changeable!)
4) Apache would define a common ground for any project (present and
future)
5) W3C support could help exporting this idea on other open-source
projects.
6) installation scripts could increase their intelligence using these
metaconfiguration information (knowing which configuration are needed to
start, which are not, valid rules, help language, and so on...)

These are the obstacles:
1) The language should be very well thought-out and defined.
2) In modular programs like Apache, every module writer should learn how
to incorporate parts of the metaconfigurations into the main file. (to
solve this, a tool may extract module configuration information from the
source code and traslate it)

After the ApacheCon, Daniel, Pierpaolo, Eric and I got together to
define this language. Eric Prud'hommeaux from W3C introduced us to the
magic wonders of XML and RDF (resource definition format) and helped us
defined the first super-alpha draft of the language that follows here:

<xml version="1.0">
<rdf:RDF xmlns:rdf="http://www....rdf#"
         xmlns:c="http://www....codepage#"
         xmlns:h="http://www....help#"
         xmlns:g="http://www....gui#"
         xmlns:a="http://www.apache.org/configuration/xml#">
  <a:directive name="serverName">
    <a:type>String</a:type>
    <a:description>This sets the name of the server</a:description>
    <a:priority>Needed</a:priority>
    <g:type>Textfield</g:type>
  </a:directive>
  <a:directive name="port">
    <a:type>Integer</a:type>
    <a:description>The port this host is listening to</a:description>
    <a:priority>Needed</a:priority>
    <a:default>80</a:default>
    <a:format>&lt;port=%d&gt;</a:format>
    <g.type>Counter</g.type>    
  </directive>
</rdf>

Of course, this is nothing working, but just a flavor of what we talked
about.

Since this is just a starting point, Eric set up a mailing list for
those who are interested in continuing this process. Something around 10
people are already associated to this list (from W3C and Apache
projects) but the more we are the better. For this reason, I ask you
guys (expecially Brian Behlendorf) to forward this mail to everyone on
the Apache Core Group that may be interested in helping us deciding the
spec.

The roadmap is the following:
1) define the spec
2) submit the spec for approuval to all projects who are interested in
adopting this standard (for now Apache and Java Apache)
3) refine the spec until is approuved
4) create browsers for this language

Even if point 4 comes last, Daniel (the creator of the Tck/tk GUI
frontend for Apache named Commanche (see http://gui.apache.org)) is
already working at Commanche 2.0 that will incorporate his own
specification of the same idea. But as soon as the language takes shape,
he will move to any specification is defined.

The Java Apache Project will then work on a java browser for the
language that will be a GUI/servlets frontend.

To subscribe to the "www-rdf-config@w3.org" mailing list, please send a
mail to "eric@w3.org".

Sorry for the long letter.

Stefano.

-- 
Stefano Mazzocchi                                   Java Apache Group 
"To infinity and beyond!" - Buzz Lightyear     http://java.apache.org

Received on Tuesday, 27 October 1998 09:04:37 UTC