You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by Ilkka Priha <ip...@surfeu.fi> on 2003/02/02 09:24:07 UTC

[ANN] Tammi 1.0 Released - differences between Turbine 3

Hello

The Norther Organization has released Tammi 1.0 open source development
framework for web applications at http://tammi.sourceforge.net/.

Tammi's design is based on the ideas by Jason et al. presented during
planning of features for Turbine 3, i.e. a pipeline and valve based
template processing, dynamically configurable service framework and
jar based plug-in components. However, instead of being compatible
with earlier versions Turbine, we decided to apply new solutions
to speed up development. Hopefully, these solutions can be utilized
back in Turbine in one form or another.

The main differences between Tammi and Turbine are:

Tammi's uses Sun's JMX as its service framework. As JMX provides a
generic server for any kinds of objects, Tammi implements all of its
logic, including filters, connectors, user interface variables, etc. as
JMX MBeans. This also frees services from being singletons.

Instead of proprietary pipelines, Tammi uses the filter chain mechanism
of Servlet API 2.3. As Servlet API specifies only interfaces, we have
simply extended them to implement Pipe Filters, Branching Filters,
Secure Filters, etc.

Instead of the RunData class, Tammi sticks to Servlet API's
ServletRequest and ServletResponse interfaces and wraps them with filter
specific implementations when applicable. Extensions are provided by
saving extension objects as ServletRequest attributes made available
through fixed attribute key naming.

A more detailed list of differences includes:

Services that are based on Turbine source are FactoryMBean, PoolMBean,
ContentTypeMapMBean, TaskLoaderMBean, TemplateEngineMBean and
VelocityEngine corresponding to FactoryService, PoolService,
MimeTypeService, AssemblerBrokerService, TemplateService and
VelocityService.

Filters that are based on Turbine source are ContextFilterMBean,
ActionFilterMBean, TemplateFilterMBean and LayoutFilterMBean
corresponding to PullService and TemplateService (TemplateService have
been split to several MBeans).

Services having about the same functionality as Turbine are
MBeanFinderMBean, LoggerMBean, SharedCacheMBean, SchedulerMBean and
ScripterMBean corresponding to ServiceBroker, LoggingService,
CacheService, SchedulerService and BSFService.

TerminalFilterMBean, LocaleFilterMBean and ResourceFinderMBean
correspond to an extended LocalizationService.

HTML form validation with FormFilterMBean corresponds to IntakeService.

Authentication is handled by HttpBasicAuthFilterMBean,
HttpDigestAuthFilterMBean, HttpFormAuthFilterMBean, HttpSspiFilterMBean
and TerminalAuthFilterMBean. The supported realms corresponding to
SecurityService include MemoryRealmMBean, JndiRealmMBean and
NativeRealmMBean.

Additional services and filters include support for concurrency
(ExecutorMBean, TimeoutMBean), support for relations (RelationMBean),
support for dynamic data types and their conversions (VariableMBean,
ConverterMBean), support for static content (ContentFilterMBean,
CGIBinFilterMBean), support for native libraries (LibraryMBean), and
support for an HTTP server (ConnectorMBean, SessionManagerMBean).

Missing support for persistence will be a plug-in based on OJB.
Preliminary versions are available at http://www.norther.org/.

Regards
      Ilkka Priha
      ilkka.priha@norther.org





---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org


Re: [ANN] Tammi 1.0 Released - differences between Turbine 3

Posted by "Henning P. Schmiedehausen" <hp...@intermeta.de>.
Ilkka Priha <ip...@surfeu.fi> writes:

>Thanks Jon, I appreciate your support. It would be really fine for me to 
>get Tammi back under Turbine, but I don't believe on making it much more 
>compatible with earlier versions as it is now. Is that acceptable?

Oh cool, then we have three code bases instead of two (or already
three with Plexus). Why not simply keep it "Tammi"? This makes it easy
for you to keep developing and we can strive for backward
compatibility while still moving code back and forth.

I really appreciate your effort and I will take a closer look at Tammi
because it looks like something that Turbine strives to be.

>Also, the recent plans for Turbine's new service framework are somewhat 
>overlapping with Tammi's JMX architecture. Our goal has been to keep the 
>architecture as flat as possible by avoiding any hierarchical structures 
>and I'd like to keep it that way.

Cool.

>But if the community accepts Tammi as the continuation of Turbine, I'd 
>be the first for it.

I'd like to quote another apache devloper here: "Diversity is good. We
all can learn from each other".

	Regards
		Henning

-- 
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen                  INTERMETA GmbH
hps@intermeta.de           +49 9131 50 654 0        http://www.intermeta.de/

  Java, perl, Solaris, Linux, xSP Consulting, Web Services -- hero for hire
        freelance consultant -- Jakarta Turbine Development  -- RHSCLG

---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org


Re: [ANN] Tammi 1.0 Released - differences between Turbine 3

Posted by Ilkka Priha <ip...@surfeu.fi>.
Jon Scott Stevens wrote:
> on 2003/2/2 2:42 AM, "Ilkka Priha" <ip...@surfeu.fi> wrote:
 >
 >-- cut --
> 
>>Also, the recent plans for Turbine's new service framework are somewhat
>>overlapping with Tammi's JMX architecture. Our goal has been to keep the
>>architecture as flat as possible by avoiding any hierarchical structures
>>and I'd like to keep it that way.
> 
> 
> Yes, we will need to figure something out about that. I need to brush up on
> my JMX skills and review your code more so that I can make a clear argument
> for or against it. It seems that your use of JMX and Avalon kind of overlap.
> My general dislike for anything Sun produces seems like that might be a
> problem. I'm open for discussion on it if you are.

Discussion is always fun, but to come to a common conclusion is usually 
hard :-) JMX as it is today is not perfect for Tammi, but there are a 
few good points for it.

The pragmatic one is that even a poor standard is better than no 
standard at all.

The architectural one is the one I prefer most. As a generic object 
server, JMX enables architecture where the framework itself, i.e. the 
kind of meta-level of Tammi applications, doesn't define or require any 
specific roles for the application objects it serves, but they are all 
equal from the server's point of view. The objects themselves must agree 
upon their mutual relationships, which makes the framework extremely 
flexible for different purposes and future extensions (e.g. we have 
integrated it as an object management server for a legacy system of ship 
design where it provides db services, web services and a Swing based 
user interface).

 From the developer's point of view, the run-time administration 
interface of JMX provides debugging support even for systems running in 
production, which significantly improves quality as those 
most-difficult-to-find production time bugs become visible.

And finally, even switching JMX to e.g. Phoenix in Tammi should not be 
an impossible task, the resulting system would be, once again, a totally 
new one and could be as well developed directly from the current Turbine 
sources (integrating Tammi as a whole to Avalon though some generic 
wrapper without generating depencies inside Tammi is of cource OK).

-- Ilkka

BTW there are already at least two open source implementations of JMX: 
MX4J (http://mx4j.sourceforge.net/) and JBoss-MX 
(http://www.jboss.org/developers/projects/jboss/jbossmx.jsp), and IBM's 
distributable version TMX4J 
(http://www.alphaworks.ibm.com/aw.nsf/download/TMX4J). At least JBoss-MX 
is compatible with Tammi, so you don't have to stick to Sun's product ;-)




---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org


Re: [ANN] Tammi 1.0 Released - differences between Turbine 3

Posted by Jon Scott Stevens <jo...@latchkey.com>.
on 2003/2/2 2:42 AM, "Ilkka Priha" <ip...@surfeu.fi> wrote:

> Thanks Jon, I appreciate your support. It would be really fine for me to
> get Tammi back under Turbine, but I don't believe on making it much more
> compatible with earlier versions as it is now. Is that acceptable?

A 4.0 release doesn't necessarily need to be backwards compatible. My
personal view is that Turbine 3.0 is a dead end. It is a great working
framework (Scarab is built on it!), but the general community support for it
is long gone mostly because we haven't put the effort in to finish it yet.
It is also full of to much legacy code that we have all learned a tremendous
amount from, but would do differently the next time. I have been waiting to
see what happens with Summit, but haven't really seen anything come of it
yet.

That is why I like your code...at first glance of the source, it looks quite
good and the documentation is a great start.

Minor Typo: Figure 10 says: "The facory package"

> Also, the recent plans for Turbine's new service framework are somewhat
> overlapping with Tammi's JMX architecture. Our goal has been to keep the
> architecture as flat as possible by avoiding any hierarchical structures
> and I'd like to keep it that way.

Yes, we will need to figure something out about that. I need to brush up on
my JMX skills and review your code more so that I can make a clear argument
for or against it. It seems that your use of JMX and Avalon kind of overlap.
My general dislike for anything Sun produces seems like that might be a
problem. I'm open for discussion on it if you are.

> But if the community accepts Tammi as the continuation of Turbine, I'd
> be the first for it.

That is good news!

-jon


---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org


Re: [ANN] Tammi 1.0 Released - differences between Turbine 3

Posted by Ilkka Priha <ip...@surfeu.fi>.
Thanks Jon, I appreciate your support. It would be really fine for me to 
get Tammi back under Turbine, but I don't believe on making it much more 
compatible with earlier versions as it is now. Is that acceptable?

Also, the recent plans for Turbine's new service framework are somewhat 
overlapping with Tammi's JMX architecture. Our goal has been to keep the 
architecture as flat as possible by avoiding any hierarchical structures 
and I'd like to keep it that way.

But if the community accepts Tammi as the continuation of Turbine, I'd 
be the first for it.

-- Ilkka


Jon Scott Stevens wrote:
> Why not make that Turbine 4.0?
> 
> I would really support that. Tammi looks really good!
> 
> -jon
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
> 
> .
> 





---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org


Re: [ANN] Tammi 1.0 Released - differences between Turbine 3

Posted by Jon Scott Stevens <jo...@latchkey.com>.
Why not make that Turbine 4.0?

I would really support that. Tammi looks really good!

-jon


---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org