cziegeler 01/10/04 01:24:37 Modified: documentation/xdocs/userdocs book.xml index.xml documentation/xdocs/userdocs/generators book.xml documentation/xdocs/userdocs/serializers book.xml documentation/xdocs/userdocs/transformers book.xml Log: Added missing navigation in user docs Revision Changes Path 1.2 +5 -4 xml-cocoon2/documentation/xdocs/userdocs/book.xml Index: book.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/book.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- book.xml 2001/09/28 13:41:30 1.1 +++ book.xml 2001/10/04 08:24:37 1.2 @@ -1,11 +1,12 @@ <?xml version="1.0"?> -<book software="Apache Cocoon 2" - title="Apache Cocoon 2 User Documentation" +<book software="@doctitle@" + title="@docname@ User Documentation" copyright="@year@ The Apache Software Foundation"> - <project label="Main" href="/" /> - <project label="Cocoon main" href="../index.html"/> + <menu label="Navigation"> + <menu-item label="Main" href="../index.html"/> + </menu> <menu label="Sitemap"> <menu-item label="Generators" href="generators/generators.html"/> 1.3 +5 -322 xml-cocoon2/documentation/xdocs/userdocs/index.xml Index: index.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/index.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- index.xml 2001/10/01 13:39:03 1.2 +++ index.xml 2001/10/04 08:24:37 1.3 @@ -3,338 +3,21 @@ <document> <header> - <title>Apache Cocoon 2.0</title> - <subtitle>XML Publishing Framework</subtitle> + <title>User Documentation</title> + <subtitle>Overview</subtitle> <authors> - <person name="Stefano Mazzocchi" email="[EMAIL PROTECTED]"/> + <person name="Carsten Ziegeler" email="[EMAIL PROTECTED]"/> </authors> </header> <body> - <s1 title="What is it?"> + <s1 title="Overview"> <p> - Apache Cocoon 2.0 is a complete rewrite of the Apache Cocoon XML publishing framework that - is supposed to remove all those design constraint that emerged from the - Apache Cocoon 1 experience. + Here will soon appear all the user documentation. </p> - <p> - This documentation is alpha, like anything else, so don't expect - that much. If you are not a developer and you are not willing to test - new stuff that may not work as expected, we suggest you to refer to the latest - Apache Cocoon 1 release which is very stable. - </p> - - <p> - Otherwise, if you are brave enough, we welcome you into this new world of XML wonders :-) - </p> </s1> - - <s1 title="A new look"> - <p>The Apache Cocoon Project will evidence its new course with a new logo that was - designed by Cocoon's creator Stefano Mazzocchi. Here it is:</p> - - <figure src="images/cocoon2.gif" alt="The new Apache Cocoon Logo"/> - </s1> - - <s1 title="Introduction"> - <p>The Apache Cocoon Project has gone a long way since its creation on - January 1999. It started as a simple servlet for static XSL styling and became - more and more powerful as new features were added. Unfortunately, design - decisions made early in the project influenced its evolution. Today, some of - those constraints that shaped the project were modified as XML standards have evolved and - solidified. For this reason, those design decisions need to be reconsidered - under this new light.</p> - - <p>While Apache Cocoon started as a small step in the direction of a new - web publishing idea based on better design patterns and reviewed estimations - of management issues, the technology used was not mature enough for tools to - emerge. Today, most web engineers consider XML as the key for an improved web - model and web site managers see XML as a way to reduce costs and ease - production.</p> - - <p>In an era where services rather than software will be key for - economic success, a better and less expensive model for web publishing will - be a winner, especially if based on open standards.</p> - </s1> - - <s1 title="Passive APIs vs. Active APIs"> - <p>Web serving environments must be fast and scalable to be - useful. Apache Cocoon 1 was born as a "proof of concept" rather than - production software and had significant design restrictions, based mainly on - the availability of freely redistributable tools. Other issues were lack of - detailed knowledge on the APIs available as well as underestimation of the - project success, being created as a way to learn XSL rather than a full - publishing system capable of taking care of all XML web publishing needs.</p> - - <p>For the above reasons, Apache Cocoon 1 was based on the DOM level 1 - API which is a <em>passive</em> API and was intended mainly for client side - operation. This is mainly due to the fact that most DOM - implementations require the document to reside in memory. While this is - practical for small documents and thus good for the "proof of - concept" stage, it is now considered a main design constraint for Apache Cocoon - scalability.</p> - - <p>Since the goal of Apache Cocoon 2 is the ability to process - simultaneously multiple 100Mb documents in JVM with a few Mbs of heap size, - careful memory use and tuning of internal components is a key issue. To reach - this goal, an improved API model was needed. This is now identified in the SAX - API which is, unlike DOM, event based (so <em>active</em>, in the sense that its - design is based on the <em>inversion of control</em> principle).</p> - - <p>The event model allows document generators to trigger events that get handled - by the various processing stages and finally get - serialized onto the response stream. This has a significant impact on both - performance (effective and user perceived) and memory needs:</p> - - <dl> - <dt>Incremental operation</dt> - <dd> - The response is created during document production. - Client's perceived performance is dramatically - improved since clients can start receiving data as soon as it is created, - not after all processing stages have been performed. In those cases where - incremental operation is not possible (for example, element sorting), - internal buffers store the events until the operation can be performed. - However, even in these cases performance can be increased with the use of - tuned memory structures. - </dd> - <dt>Lowered memory consumption</dt> - <dd> - Since most of the - server processing required in Apache Cocoon is incremental, an incremental model - allows XML production events to be transformed directly into output events - and character written on streams, thus avoiding the need to store them in - memory. - </dd> - <dt>Easier scalability</dt> - <dd> - Reduced memory needs allow a greater number of - concurrent operations to take place simultaneously, thus allowing the - publishing system to scale as the load increases. - </dd> - <dt>More optimizable code model</dt> - <dd> - Modern virtual machines are based on the idea of <em>hotspots</em>, - code fragments that are used often and, if optimized, increase the process - execution speed by large amounts. - This new event model allows easier detection of hotspots since it is a - method driven operation, rather than a memory driven one. Hot methods can - be identified earlier and can be better optimized. - </dd> - <dt>Reduced garbage collection</dt> - <dd> - Even the most advanced - and lightweight DOM implementation require at least three to five times - (and sometimes much more than this) more memory than the original document - size. This not only reduces the scalability of the operation, but also - impacts overall performance by increasing the amount of memory garbage that - must be collected, tying up CPU cycles. Even if modern - virtual machines have reduced the overhead of garbage collection, - less garbage will always benefit performance and scalability. - </dd> - </dl> - - <p>The above points alone would be enough for the Apache Cocoon 2.0 - paradigm shift, even if this event based model impacts not only the general - architecture of the publishing system but also its internal processing - components such as XSLT processing and PDF formatting. These components will - require substantial work and maybe design reconsideration to be able to follow - a pure event-based model. The Apache Cocoon Project will work closely with the other - component projects to be able to influence their operation in this direction.</p> -</s1> - -<s1 title="Reactors Reconsidered"> - <p>Another design choice that should be revised is the reactor - pattern that was introduced to allow components to be connected in more - flexible way. In fact, by contrast to the fixed pipe model used up to Apache Cocoon - 1.3.1, the reactor approach allows components to be dynamically connected, - depending on reaction instructions introduced inside the documents.</p> - - <p>While this at first seemed a very advanced and highly - appealing model, it turned out to be a very dangerous approach. The first - concern is mainly technical: porting the reactor pattern under an event-based - model requires limitations and tradeoffs since the generated events must be - cached until a reaction instruction is encountered.</p> - - <p>But even if the technical difficulties could be solved, a key limitation - remains: there is no single point of management.</p> -</s1> - -<s1 title="Management Considerations"> - <p>The web was created to reduce information management costs by - distributing them back on information owners. While this model is great for - user communities (scientists, students, employees, or people in general) each - of them managing small amount of personal information, it becomes impractical - for highly centralized information systems where <em>distributed management</em> - is simply not practical.</p> - - <p>While in the HTML web model the page format and URL names - were the only necessary contracts between individuals to create a world wide - web, in more structured information systems the number of contracts increases - by a significant factor due to the need of coherence between the - hosted information: common style, common design issues, common languages, - server side logic integration, data validation, etc...</p> - - <p>It is only under this light that XML and its web model reveal - their power: the HTML web model had too little in the way of contracts to be - able to develop a structured and more coherent distributed information system, - a reason that is mainly imposed by the lack of good and algorithmically certain - information indexing and knowledge seeking systems. Lacks that tend to degrade - the quality of the truly distributed web in favor of more structured web sites - (that based their improved site structure on internal contracts).</p> - - <p>The simplification and engineering of web site management is - considered one of the most important Apache Cocoon 2.0 goals. This is done mainly by - technologically imposing a reduced number of contracts and placing them in a - hierarchical shape, suitable for replacing current high-structure web site - management models.</p> - - <p>The model that Apache Cocoon 2.0 adopts is the "pyramid model of - web contracts" which is outlined in the picture below</p> - - <figure src="images/pyramid-model.gif" alt="The Apache Cocoon 2.0 Pyramid Model of Contracts"/> - - <p>and is composed by four different working contexts (the rectangles)</p> - - <dl> - <dt>Management</dt> - <dd> - The people that decide what the site should - contain, how it should behave and how it should appear - </dd> - <dt>Content</dt> - <dd> - The people responsible for writing, owning and managing - the site content. This context may contain several sub-contexts - - one for each language used to express page content. - </dd> - <dt>Logic</dt> - <dd> - The people responsible for integration with dynamic - content generation technologies and database systems. - </dd> - <dt>Style</dt> - <dd> - The people responsible for information - presentation, look & feel, site graphics and its maintenance. - </dd> - </dl> - - <p>and five contracts (the lines)</p> - - <ul> - <li>management - content</li> - <li>management - logic</li> - <li>management - style</li> - <li>content - logic</li> - <li>content - style</li> - </ul> - - <p>Note that there is no <em>logic - style</em> contract. Apache Cocoon 2.0 aims to - provide both software and guidelines to allow you to remove such a - contract.</p> -</s1> - -<s1 title="Overlapping contexts and Chain Mapping"> - <p>The above model can be applied only if the different contexts - never overlap, otherwise there is no chance of having a single management - point. For example, if the W3C-recommended method to link stylesheets to XML - documents is used, the content and style contexts overlap and it's impossible - to change the styling behavior of the document without changing it. The same - is true for the processing instructions used by the Apache Cocoon 1 reactor to drive - the page processing: each stage specifies the next stage to determine the result, - thus increasing management and debugging complexity. Another overlapping in - context contracts is the need for URL-encoded parameters to drive the page output. - These overlaps break the pyramid model and increase the management costs.</p> - - <p>In Apache Cocoon 2.0, the reactor pattern will be abandoned in favor of - a pipeline mapping technique. This is based on the fact that the number of - different contracts is limited even for big sites and grows with a rate - that is normally much less than its size.</p> - - <p>Also, for performance reasons, Apache Cocoon 2.0 will try to compile - everything that is possibly compilable (pages/XSP into generators, stylesheets - into transformers, etc...) so, in this new model, the <em>processing chain</em> - that generates the page contains (in a direct executable form) all the - information/logic that handles the requested resource to generate its - response.</p> - - <p>This means that instead of using event-driven request-time DTD interpretation - (done in all Apache Cocoon 1 processors), these will be either compiled into transformers - directly (XSLT stylesheet compilation) or compiled into generators using - logicsheets and XSP which will remove totally the need for request-time - interpretation solutions like DCP that will be removed.</p> - - <note>Some of these features are already present in latest Apache Cocoon 1.x - releases but the Apache Cocoon 2 architecture will make them central to its new - core.</note> -</s1> - -<s1 title="Sitemap"> - <p>In Apache Cocoon 2 terminology, a <em>sitemap</em> is the collection of pipeline - matching informations that allow the Apache Cocoon engine to associate the requested - URI to the proper response-producing pipeline.</p> - - <p>The sitemap physically represents the central repository for web site - administration, where the URI space and its handling is maintained.</p> - - <p>Please, take a look at the <link href="../sitemap.html">sitemap documentation</link> - for more information on this.</p> - -</s1> - -<s1 title="Pre-compilation, Pre-generation and Caching"> - <p>The cache system in Apache Cocoon 1 will be ported with very little - design changes since it's very flexible and was not polluted by early design - constraints since it appeared in later versions. The issue regarding static - file caching that, no matter what, will always be slower than direct web server - caching, means that Apache Cocoon 2 will be as <em>proxy friendly</em> as possible.</p> - - <p>To be able to put most of the static part of the job back on the web - server (where it belongs), Apache Cocoon 2 will greatly improve its command line - operation, allowing the creation of <em>site makefiles</em> that will - automatically scan the web site and the source documents and will provide a - way to <em>regenerate</em> the static part of a web site (images and tables - included!) based on the same XML model used in the dynamic operation version.</p> - - <p>Apache Cocoon 2 will, in fact, be the integration between Apache Cocoon 1 and Stylebook.</p> - - <p>It will be up to the web server administrator to use static - regeneration capabilities on a time basis, manually or triggered by some - particular event (e.g. database update signal) since Apache Cocoon 2 will only provide - servlet and command line capabilities. The nice integration is based on the - fact that there will be no behavioral difference if the files are dynamically - generated in Apache Cocoon 2 via the servlet operation and cached internally or - pre-generated and served directly by the web server, as long as URI contracts - are kept the same by the system administrator (via URL-rewriting or aliasing)</p> - - <p>Also, it will be possible to avoid on-the-fly page and stylesheet - compilation (which makes debugging harder) with command line pre-compilation - hooks that will work like normal compilers from a developer's point of view.</p> -</s1> - -<s1 title="Development Status"> - <p>Apache Cocoon 2 development has reached "beta quality" - You might take a look at it on the <em>xml-cocoon2</em> - CVS module. If you are not a CVS expert, this means - typing:</p> - - <source> -cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic login -Password: anoncvs - -cvs -d :pserver:[EMAIL PROTECTED]:/home/cvspublic \ -checkout -r cocoon_20_branch xml-cocoon2 - </source> - <p><sub>(Windows users: Do not enter the '\' symbol, continue typing on the same line.)</sub></p> - <p>For more information on CVS access, refer to the CVS docs on this web site.</p> - <note>To get the current version of Apache Cocoon 2 you have to checkout the - branch called cocoon_20_branch. The HEAD of the cvs repository is used - for the developer team to store and test new ideas which will be - perhaps included in later releases of Apache Cocoon 2.</note> -</s1> </body> </document> 1.2 +7 -5 xml-cocoon2/documentation/xdocs/userdocs/generators/book.xml Index: book.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/generators/book.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- book.xml 2001/09/28 13:41:30 1.1 +++ book.xml 2001/10/04 08:24:37 1.2 @@ -1,11 +1,13 @@ <?xml version="1.0"?> -<book software="Apache Cocoon 2" - title="Apache Cocoon 2 Documentation" - copyright="@year@ The Apache Software Foundation" - xmlns:xlink="http://www.w3.org/1999/xlink"> +<book software="@doctitle@" + title="@docname@ Generators" + copyright="@year@ The Apache Software Foundation"> - <project label="Main" href="/" /> + <menu label="Navigation"> + <menu-item label="Main" href="../../index.html"/> + <menu-item label="User Documentation" href="../index.html"/> + </menu> <menu label="Generators"> <menu-item label="Overview" href="generators.html"/> 1.2 +7 -5 xml-cocoon2/documentation/xdocs/userdocs/serializers/book.xml Index: book.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/serializers/book.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- book.xml 2001/09/28 13:41:31 1.1 +++ book.xml 2001/10/04 08:24:37 1.2 @@ -1,11 +1,13 @@ <?xml version="1.0"?> -<book software="Apache Cocoon 2" - title="Apache Cocoon 2 Documentation" - copyright="@year@ The Apache Software Foundation" - xmlns:xlink="http://www.w3.org/1999/xlink"> +<book software="@doctitle@" + title="@docname@ Serializers" + copyright="@year@ The Apache Software Foundation"> - <project label="Main" href="/" /> + <menu label="Navigation"> + <menu-item label="Main" href="../../index.html"/> + <menu-item label="User Documentation" href="../index.html"/> + </menu> <menu label="Serializers"> <menu-item label="Overview" href="serializers.html"/> 1.2 +7 -5 xml-cocoon2/documentation/xdocs/userdocs/transformers/book.xml Index: book.xml =================================================================== RCS file: /home/cvs/xml-cocoon2/documentation/xdocs/userdocs/transformers/book.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- book.xml 2001/09/28 13:41:31 1.1 +++ book.xml 2001/10/04 08:24:37 1.2 @@ -1,11 +1,13 @@ <?xml version="1.0"?> -<book software="Apache Cocoon 2" - title="Apache Cocoon 2 Documentation" - copyright="@year@ The Apache Software Foundation" - xmlns:xlink="http://www.w3.org/1999/xlink"> +<book software="@doctitle@" + title="@docname@ Transformers" + copyright="@year@ The Apache Software Foundation"> - <project label="Main" href="/" /> + <menu label="Navigation"> + <menu-item label="Main" href="../../index.html"/> + <menu-item label="User Documentation" href="../index.html"/> + </menu> <menu label="Transformers"> <menu-item label="Overview" href="transformers.html"/>
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]