<?xml version="1.0"?>
<!-- 
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 -->

<document>

 <properties>
  <title>Turbine Model 2+1</title>
 </properties>

<body>

<section name="What is model 2+1?">

<source test=""><![CDATA[
   To: turbine@list.working-dogs.com
   Subject: Re: Is Turbine MVC or HMVC?
   Date: Wed, 11 Oct 2000 14:04:52 +0200
   From: Christoph Reck Christoph.Reck@dlr.de
]]></source>

<p>
Turbine follows the MVC desing pattern.
</p>
<p>
<ul>
<li>  Model      - the underlying data sources (via peers or beans)</li>
<li>  View       - one of the templating engines</li>
<li>  Controller - Turbine servlet plus your action+screen classes</li>
</ul>
</p>

<p>
Since the view and the controller are tightly coupled in Turbine,
it is stated to follow the Model2 design pattern, with a + 1
addition due to way actions are used (hence Model 2 + 1).
</p>

<p>
Turbine does not directly support the Hierachical MVC pattern, but
it cout be used this way by defining multiple module and template
paths (would impact performance). Note that in the HMVC each MVC
instance is self-contained and separable from the rest.
</p>

<p>
Note that many components within a MVC system follow themselves
the MVC pattern, therefore most MVC systems are also HMVC systems
(this also applies to Turbine as a whole, but your application with
Turbine is normally not HMVC).
</p>

<p>
Also note that you could use Turbine in a non MVC manner, but
normally it leads you to use it as MVC (which JSP does not).
</p>

<p>
I hope this clarifies your question,
Christoph
</p>

</section>

<section name="Jon's Comments">
<p>
That is a GREAT explanation and I'm going to use that for now on...except it
isn't entirely true. :-)
</p>

<p>
The +1 was a joke on my part to see what people would do with it. I figured
that people were believing this Model 2 hype with JSP and such and I wanted
to improve on it. I love playing with marketing games. I read that Model 2
paper and then figured that Turbine was better than what they declared as
Model 2.
</p>

<p>
Calling it Model 3 would have been like saying that Turbine was just a third
generation of Model 2. So, instead I figured that making it +1 just made it
appear to be an improved Model 2 model since that is what Turbine really is.
:-)
</p>

<p>
Oh yea...one more reason for the +1...
</p>

<p>
It is the Apache <a href="http://jakarta.apache.org/guidelines/decisions.html">voting style</a>. :-)
</p>

<p>
Turbine is Model 2 .......... +1 ! :-)
</p>

<p>-jon stevens</p>
</section>

<section name="Resources">
<p>
<a href="http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html">
Understanding JavaServer Pages Model 2 architecture</a>
</p>

</section>
</body>
</document>
