cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefano Mazzocchi <stef...@apache.org>
Subject [report] Cocoon Hackaton #1
Date Tue, 18 Jul 2000 09:47:16 GMT
All right,

the week-end is over, Ricardo is in Milano talking to the immigration
lawyer, I passed (finally!) my college exam that I has been bugging me
for the last two months so I finally have some time to dedicate to this.

Giacomo, Ricardo and I had the first official "Cocoon Hackaton" in my
place here in Pavia, Italy, this week end. I wished more could come and
I'll try to make this become a regular thing with more and more people
involved over the years.... for now, I just want to let you guys know
what we discussed to receive your invaluable feedback (sheesh, I wish
you all were there!)

We discussed mainly about:

 1) object model
 2) sitemap implementation
 
later on, after Giacomo left, Ricardo and I talked about "business logic
taglibs" that should include the notion of "form taglibs" as well as
"web application definition schemas".

Given Ricardo's decades-old knowldge on DBMS application development, I
believe he has the right ideas to "engineer" those web-app creation
practices that each one of us has been reinventing everytime.

But this is way to early to tell and we both agreed to stay at the
window to see what happens with Jeremy's FP and how that works in
practice.

Anyway, taglibs are a second order priority: first we have to finish
Cocoon2 implementation. second, we define taglibs.

                 ------------------- o ------------------

                            Cocoon Hackaton #1
                       July 15-16, 2000, Pavia, Italy

Object Model
------------

The environments Cocoon2 will care about are:
 - web
 - command line

The "mail" environment (as a JAMES mailet) will be postponed for later
generations: this means we don't care about it at this point.

"command line" works on top of the "web" model: Cocoon2 from the command
line will act as both client and server "crawling" itself to generate
web snapshots.

Each pipeline component must be aware of the enviornment objects, but
only the serializer will be given the access to the output stream.

The enviornment objects will follow the Servlet API, but, the 

 response.getOutputStream()
 response.getWriter()

methods will return an

 IllegalStateException

if called from "generators" and "transformers".

Normal web sanity rules apply: "send http headers before the content".
This is up to the generator implementation to enforce this, Cocoon2
won't perform any buffering of the response at the core level (is up to
the generator implementation to do that if needed).

Cocoon will add the notion of views

 String request.getView();


Sitemap Generation
------------------

Sitemaps must be nestable, to allow linear site scalability and reduce
bottlenecks and possible "complexity saturation" problems.

Sitemaps must be automatically reloaded to avoid "restarting"
bottlenecks.

Sitemaps must not introduce request-time delays in the resource serving.

Sitemap reloading should be tuned on/off on a sitemap basis. (ie. some
sitemaps never change so Cocoon can avoid looking for changes at runtime
for them, increasing performance).

Sitemap reloading MUST NOT deny service. (ie. Cocoon2 must _always_ be
responsive).

Sitemap reloading must be atomical and independent. (ie. a change in a
single sitemap should _not_ reflect in changes in other sitemaps)

Giacomo designed a very nice solution for all of this that he
volunteered to implement. It is based on the notion of sitemap
compliation thru a sitemap manager that acks as a proxy for Cocoon.

When a sitemap changes, a compilation thread will be spawned in the
background that will update the sitemap state without interrupting
service. The GC capabilities of JVMs will be used to cleanup old
sitemaps wirings and implementation.


Conclusion
----------

The main benefits of this meeting were:

 1) establishing friendship and real-life relationship
 2) remove all implementation problems for Cocoon2 core to "happen"
 3) synchronize visions and expectance
 4) remove knowledge gaps (ie I re-explained the "views" idea)


Result
------

As a result, I believe Cocoon2 time-to-market was reduced by this
increase of focus.



Next Episode
------------

Next Cocoon Hackaton is scheduled around October 20, London, England at
ApacheCON 2000 Europe.

         ---------------- o --------------------

Comments welcome!

-- 
Stefano Mazzocchi      One must still have chaos in oneself to be
                          able to give birth to a dancing star.
<stefano@apache.org>                             Friedrich Nietzsche
--------------------------------------------------------------------
 Missed us in Orlando? Make it up with ApacheCON Europe in London!
------------------------- http://ApacheCon.Com ---------------------


Mime
View raw message