Re: Straight-through or Other Processing?

Alex Milowski wrote:
 >
 > As I see it, we have three kinds of processing models we can
 > consider:
 >
 > 1. Straight-through: a pipeline is a sequence of steps where each step's
 >    output is chained to the next.
 >
 > 2. A dependancy-based model where steps have input dependancies.  A
 >    target is choosen and the sequence of steps is determined by chasing
 >    these inputs down.
 >
 > 3. A parallel model where any step can ask for an additional model and
 >    that causes another pipeline "chain" to execute--possibly in
 >    parallel.

You are introducing the question of imperative vs. functional
programming, which is an important topic as the XML processing model
we will define will probably have to work in one of those two ways.

XPL follows a functional approach, where pipelines and pipeline steps
can be seen as functions with a number of inputs and number of
outputs. Like in functional programming, the processing model follows
the idea of lazy evaluation, i.e. you evaluate only what you need to
produce the requested result(s) (well, your implementation may be free
to evaluate more, but then it will perform useless tasks).

For example, if your pipeline has two outputs, o1, and o2, and an
external consumer requires the XML infoset provided by o1, the
dependencies of o1 will be looked at. If o1 is produced for example by
an XSLT transformation, then that tranformation must run. In turn,
that transformation probably requires inputs, in which case those a
evaluated as needed. Etc. However if o2 is not requested, then its
dependencies do not need to be even looked at.

 From an implementation point of view, the approach is simple to
implement, and it makes sense from a user's point of view too, that is
if you are familiar with functional programming. Of course you are
already familiar with this kind of approach if you know XSLT and
XPath.

The functional approach is firmly rooted in theory but also in
practice. Declarative and functional approaches have been a
"tradition" at W3C, from XSLT, XPath and XQuery as languages to
XForms' calculation model, for example. For these reasons, we at
Orbeon probably have a slight bias toward functional solutions.

-Erik

Received on Monday, 16 January 2006 11:51:45 UTC