blob: ff477c033d8d545016dc9e1138af5d2886ef8cd4 [file] [log] [blame]
<?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</title>
<author email="jon@latchkey.com">Jon S. Stevens</author>
</properties>
<body>
<section name="What is Turbine?">
<p>
Turbine is a servlet based framework that allows experienced Java
developers to quickly build secure web applications. Parts of
Turbine can also be used independently of the web portion of Turbine
as well. In other words, we strive to make portions of Turbine
easily available for use in other applications.
</p>
<p>
<strong>A web based application is an application where users use
their favorite web browser in order to access secure business
logic.</strong>
</p>
<p>
A couple example web applications that can benefit from using this
framework include e-commerce shopping cart
systems, Yahoo style link conservatories and project / <a
href="http://scarab.tigris.org/">bug/issue</a> tracking systems as
well as cool XML integration applications like <a
href="http://portals.apache.org/jetspeed-1/">Jetspeed</a>.
</p>
<p>
<strong>A platform for building applications, not just running
them.</strong>
</p>
<p>
Many commercial (and non-commercial!) software companies will
attempt to sell you an "Application Server", but what few people
realize is that it is only half of the battle to creating a web
application. There is often quite a lot of code that your engineers
end up re-inventing the wheel with or grabbing various packages from
all over the net with various licenses that you may or may not agree
to.
</p>
<p>
The point of Turbine is to collect that code into one location and
make it easy to create re-usable components (such as
ParameterParsing, Database Connection Pools, Job Scheduling,
GlobalCaches, integration with other tools such as Torque, Velocity,
etc...) all under a <a href="/common/license.html">license</a>
(Apache) that allows you to create useful websites for your
customers without worrying about viral code. Turbine is not the end
all answer, but it sure is a nice way to make your development life
easier.
</p>
<p>
This framework has an intended audience that is directed at web
engineers, not necessarily the web designers. By using this
framework, it is possible for the web engineers to build intuitive
high level systems for the web designers to use, but the low level
framework is strictly for web engineers. Turbine is not a web
application server. It is a tool for building web applications. Your
<a href="http://tomcat.apache.org/">servlet engine</a> is your
application server and the application that you develop using this
framework is your web application.
</p>
<p>
<strong>Integration with Velocity is well
defined and makes doing applications using these tools painless for
both the developers and the web designers!</strong>
</p>
<p>
Turbine can be integrated with existing <a
href="http://velocity.apache.org/engine/">Velocity</a>, <a
href="http://java.sun.com/products/jsp/">Java Server Pages (JSP)</a>
and <a href="http://cocoon.apache.org/">Cocoon</a> technologies by
specially creating Screens that use Services to parse templates.
Screens can also be created to read files from other websites as
well as off disk. This makes it easy to have designers simply put
the body of a page on disk and Turbine can serve these files when
requested. All of this is described in more detail in the
documentation section below.
</p>
<p>
The reason why Turbine works so well is because it applies object oriented
principles to the entire process of building a complex secure web application.
We try to follow the
<a href="http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html">Model
2 methodology</a> yet expand on it to encompass "View" technologies other
than just JSP as well as more mature methodologies such as
<a href="./howto/action-event-howto.html">Action
Event</a> handling. Turbine is considered as Model 2 <strong>+ 1</strong>. :-) Please
see the <a href="model2+1.html">discussion</a> of Model 2+1 for more information.
</p>
<p>
This all sounds like a bunch of marketing talk, but in reality,
Turbine has been developed by developers for developers. We are not
trying to sell you something that does not really work, instead we
are trying to solve (or do something about) the problems that our
fellow developers keep having over and over again. Come be a part of
the revolution!
</p>
</section>
<section name="Where do I get releases?">
<p>
Please refer to the main
<a href="http://turbine.apache.org/download.html">Turbine Download
page</a>.
</p>
</section>
<section name="How do I contribute, give feedback, fix bugs and so on?">
<p>
We really need and appreciate any contributions you can give. This
includes documentation help, source code and feedback. Discussion
about changes should come in the form of source code and/or very
detailed and well thought out constructive feedback. The <a
href="how-to-help.html">How To Help</a> document has details and hints
how to get engaged with Turbine Development. We also have a <a
href="todo.html">To Do</a> document that describes work to do with
the current Turbine code.
</p>
<ul>
<li>
We have a <a href="http://turbine.apache.org/contact.html">Turbine mailing
lists</a> for discussion.</li>
<li>
You can also access the <a href="scm-usage.html">Turbine SVN
repository</a></li>
</ul>
</section>
</body>
</document>