cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Donald <dona...@mad.scientist.com>
Subject RE: [C2]Access control using sitemap
Date Sat, 09 Sep 2000 04:05:51 GMT
At 09:57  8/9/00 -0400, you wrote:
>Peter,
>
>Could you expand a little on exactly what you thing the differences are
>between a web-publishing framework and a web-application framework (incl.
>what responsibilities each has)? 

well there is a few ways of looking at it really. The way I choose to look
at it (which may differ from others :P) is as follows. Cocoon2 is primarily
about passing fragments through a pipeline. By fragments I mean XML
fragments. The pipeline starts at generators, then transformers and then
serializers. Each of these are considered "stages" in the pipeline.

The result of a particular stage is determined by
1> What type of stage it is ? (ie generator/transformer/serializer)
2> What is purpose of stage ? (ie xslt transformer stage transfroms via xsl)
3> Context in which pipeline is called (ie user session information, logic
vairables, web-application parameters etc)

Cocoon2 is great in that it gives great support to 1 and 2 and minimalist
support to 3.

So what I see cocoons main strength is building the pipeline and "running" it.

There are other requirements for a complete web-development system, two of
which are aggregation and application logic. 

Aggregation means the method through which multiple pipelines are merged to
produce 1 oupput. Currently cocoon has support for 1 pipeline producing
multiple outputs but no support for multiple pipelines producing one
output. (thou you can do it with certain hacks and perhaps via XInclude -
it is not easy).

Aggregation will be served by Jetspeed (an apache project that is currently
at java.apache.org but will soon be at xml.apache.org). Jetspeed does a lot
more than aggregate - it mixes in lots of other options.

Web-application logic is something different again - it includes all the
"doing" aspects of the system. So if your applications contacts a database
and performs a whole heap of transactions, performs complex processing etc
then this should be done in web-application level. Apache has a
web-application framework (Turbine at java.apache.org) that includes a lot
of this functionality (Identity management, authentication, authorisation,
database pools, "actions" etc).

So in effect when a request comes in it goes via a "sitemap" (not to be
confused with C2s sitemap) that maps request to a web-application. The
web-application does it's stuff and then chooses a C2 pipeline to output
via. It then fills a "context" with relevent information (like result data)
and executes the pipeline with relevent context. Aggregator sits on top of
this.

None of these applications are yet easy to use with cocoon. I have been
trying to get people to adopt diferent apache products for a while but so
far I have only got them to se cocoon out of these three. There are changes
in place to make usage of these products easier (specifically turbine has a
simple developers kit setup in progress) but that still leaves a lot of the
Integration for you to do. Currently there is also a move to standadise the
packaging of all apache products (I believe PMC is or will in future be
discussing this possibility) which will help this progress.

SO in conclusiong, publishing is about managing and running pipelines,
applications is about doing stuff and filling "context" data to pipeline
start and aggregation is about binding multiple pipelines to one output.

>And, if Cocoon isn't a web-app framework,
>are there any web-app frameworks it'll integrate with easily?

Well currently Jetspeed does it and it wouldn't be hard to add it to
turbine. The problem is that neither is yet easy to set up and they require
a lot of knowledge. Personally I wouldn't recomend it atm but in the future
that is the way to go.

If you have a product out in next few months just write xsp to do it for
you - if your product timeline is longer (end of next year) then doing it
the *right* way may be in order. I am trying at the moment to get some
funding to setup an integrated solution and if so will start an OS frontend
next march. Heres hoping :P



Cheers,

Pete

*------------------------------------------------------*
| "Nearly all men can stand adversity, but if you want |
| to test a man's character, give him power."          |
|       -Abraham Lincoln                               |
*------------------------------------------------------*

Mime
View raw message