> As far as XML goes, all worship XML!!! Actually, I don't care. XML is at
> least public and easily understandable. Initially, it also helped because
> it is easy to edit by hand. If you have something you like better, fine.
> I think XML is a good combination of being easy to understand,
> cross-platform, and parseable. I would assume that Advantive is doing
> something a little more scalable.

We are looking into a number of alternatives.  As for "scalability," it
depends on your definition.  Reading and writing directly to the file system
(or better yet, a raw partition) is just about as fast as you can
get...providing you do it in a reasonably intelligent way.  Where the
scalability of using files breaks down is in the dimension of complexity.

When I think of scalability, I think terms of three different dimensions:

1) throughput: transaction volume, bandwidth, etc.

2) capacity: number of objects (possibly differentiated based on object
types)

3) complexity: can complex objects be handled easily, can old objects be
easily upgraded with new behaviors and footprints, can object relationships
be easily expressed

Perhaps there are some more dimensions to add to this list.

In the absence of a more fundamental approach to object persistence
(including scalability of image capacity (distributed objects and GC) and
performance (SMP support)), an object externalization framework is needed.
In addition to the externalization framework, various mapping frameworks
need to plug into the externalization framework (OO-Relational, OO-XML,
OO-Whatever)...AND...to bring all this stuff together, to coordinate
multiple levels of syncronization...a transaction service is needed.

It's a lot of stuff.

I would recommend not using subclassing to specialize the type of storage
behavior that SwikiPages have.  Instead, I would develop an abstract mapper
class, with an XML subclass, whose instances can be taught how to map
certain objects to an XML file (one instance might know how to map a
SwikiPage to an XML file for example).  I would specialize SwikiPages to
override behavior such as what happens when a page gets edited, viewed,
rendered, locked, etc.  Right now, I think the use of templates and actions
really is an alternative to subclassing...it's really more like Prototypes
(from Self)...which is also a way that I would explore...try building
SwikiPages by cloning a Prototype object.

Speaking of XML, I've starting looking into the XML parser.  Was TGen used
to generate it?  I've started typing the XML EBNF into TGen directly from
the W3C spec.  Has anyone already done this?  I'm hoping that I'll be able
to get TGen to generate a parser that implements the full spec (TGen is a
great tool!).

- Stephen

Reply via email to