From owner-freebsd-arch Tue Mar 27 17:30:25 2001 Delivered-To: freebsd-arch@freebsd.org Received: from molly.straylight.com (molly.straylight.com [209.68.199.242]) by hub.freebsd.org (Postfix) with ESMTP id A7E7B37B719 for ; Tue, 27 Mar 2001 17:30:21 -0800 (PST) (envelope-from jonathan@graehl.org) Received: from dickie (case.straylight.com [209.68.199.244]) by molly.straylight.com (8.11.0/8.10.0) with SMTP id f2S1UEE01539; Tue, 27 Mar 2001 17:30:14 -0800 From: "Jonathan Graehl" To: "Terry Lambert" Cc: "freebsd-Arch" Subject: RE: configuration files Date: Tue, 27 Mar 2001 17:29:50 -0800 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) In-Reply-To: <200103280049.RAA26184@usr01.primenet.com> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Importance: Normal Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > If the XML file were > > the primary source of configuration information for my program, I > > would not want any accessor/mutator functions at all; I would > > simply provide validation constraints and construct what I need > > from the configuration file on startup, or when signaled. > > This gets back to the cached configuration data problem. For > the sendmail example, the host name might change, and sendmail > would not be aware of the change, and would therefore answer > connection requests with incorrect data. > > Similarly, the need to HUP a bind serving 10,000 domains takes > the bind out of service for the reload period (DNSUPDAT can help > this, but only if you hack bind to permit zone creation/deletion > via DNSUPDAT). > > The problem with this approach is that you are, in effect, making > your server unreliable, in exchange for making the changes take > effect more quickly. Excellent point - I did not consider the need to incrementally (atomically) update huge configuration stores while the server still acts on the old configuration. > It is simply not acceptable to have to take on the maintenance burden > of teching every open source package on the planet how to do its own > link management, without a centralized policy enforcement mechanism. I agree. Similarly, we can't expect every package to spontaneously come up with a common configuration file format ;) > By the same token, a centralize policy enforcement mechanism is > needed for UNIX configuration data as well. > > Vanilla XML, without a protocol, API, or other procedural access > point to provide subschema enforcement of your validation > constraints suffers many of the same weaknesses we fought.. I agree; vanilla XML simply replaces many arbitrary data formats with a single flexible format (with an explicit DTD). Having XML configuration files would be wonderful, but you are right, there are other problems to solve as well. > ACAP is one option. My personal preference would be LTAP, if the > LDAP server modifications for asynchronous notification could be > pried free from Lucent. LDAP would work, if a simple transaction > extension were added (nesting would not be required, if data were > properly normalized). The back end data store for the protocol > server could be XML (or ROT-13 binary files; it doesn't matter). First I've heard of the two ... http://asg.web.cmu.edu/acap/ ACAP RFC: ftp://ftp.isi.edu/in-notes/rfc2244.txt (looks like a nice idea; web page seems to be neglected) http://www-db.research.bell-labs.com/project/ltap/ (patent filed?) LTAP looks like a gateway to a backend that lacks triggers, where you access the backend through the gateway and you can request notifications when certain accesses are made by others? Do you like their protocol, or just the idea? > I have to say I'm violently opposed to signaling as a catch-all; > I understand that it's the standard means of informing a daemon > of a configuration change, but an overly simplistic, low granularity > approach is exactly what must be avoided. Well, like it or not, it is the easiest way to do things. A basic configuration file meta-format and signaling mechanism would still be good. I agree that more fine-grained stuff for updating in-use configuration data should be developed, and that such a beast might as well have nothing to do with XML (except that an XML language could describe the interfaces/data types :). In cases where static configuration files make sense, I would like those configuration files to be XML (or some other unified meta-format which can be programmatically operated on without case-specific coding). > > > XML gives you a data interchange format, not an actual protocol. Shared XML > > schemas can be extended while still allowing for base interoperability. > > I'm (I guess) known for the statement "standard plus extensions > is not standard". I think that deviations from standards render > code practically useless. The "extension" I was referring to was that of augmenting a DTD such that it still has enough in common with the "standard DTD" that programs will still be able to get the standard information out of your document. I was not referring to an extension to XML itself. A protocol for passing around bits of XML data is outside the scope of the XML standard itself. I didn't realize that people passed around XML documents without publicizing their DTDs. That sucks. I'm not sure a requirement to include the DTD to be "standards compliant" would prevent people from being proprietary if they still want to. -- Jonathan Graehl http://jonathan.graehl.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message