<?xml version="1.0"?>

<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you 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>
  <author email="jon@latchkey.com">Jon S. Stevens</author>
 </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 Hierarchical 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/site/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>
