Building Java based content-enabled applications (CEVA): the 3rd generation of web applications. What is the best development framework available out there?
This is interesting to see the evolution of open source java based
frameworks and combined that with trends' estimates raised by analysts
(Gartner, Forrester;
).
So one of the latest hot topic is about the development and management of
new Content Enabled Vertical Applications - CEVA
(
http://www.gartner.com/DisplayDocument?doc_cd=137675).
But what does it really mean in term of implementation and application
framework that such new applications could leverage onto (at least in the
Open Source JEE world).
There always were lots of open source java based web development
frameworks. Similar to the Fashion industry, developers also have their
flavored frameworks and such tools are usually varying over the
years.
Remember! Coming back a few years ago there were some tough battles with
all the fans and critics of using one or the other Web Application
Frameworks such as Apache
Turbine (Is someone still using it?) or
Apache Struts (and may others).
Struts finally looked like having got the favor of the largest number of
interested developers at that time. This was the first wave of web
application framework.
A few years later the Spring framework hype took precedence on the Apache
Struts trend. In parallel there was the heavy promotion of the new Java
Portlet standard (JSR168) mainly done by the main IT industry players
(IBM &Co) which all launch their own XYZ Portal Server. This was
about the second wave. But it now looks like declining from its top in
2005 (cf:
http://www.google.com/trends?q=spring+framework%2C+portlet)
Finally we are now seeing the apparition of a third wave of web
application framework: Content Enabled Web Application Framework
(CEWAF?). This wave is also leveraging new web 2.0 oriented "mashups"
which are also taking precedence on portlets starting from 2007
(
http://www.google.com/trends?q=portlet%2C+mashup&ctab=0&geo=all&date=all&sort=0
).
So what would be now the best way to rapidly develop 3rd
generation of portable, reusable, easily deployable, interoperable
content enabled applications and focused on fostering social
relationships?
One would then look now at the assembly of an ideal web content framework
which would rapidly allow him to:
- Easily manage its own
local content objects without having to reinvent the wheel in term of
content persistence, basic content management (graph and tree oriented
kind of basic operations) or in term of content features which are today
becoming more and ore commodities (properties, relationships, mixins,
).
In the Java open source world, it looks like
Apache Jackrabbit is a nice
library to start with.
- Do not have to take
care of redeveloping all the RESTful, OSGi, Scripting facilities which
are today quite commonly required and to just leverage a simple and
ready-to-use framework.
Apache
Sling could certainly rapidly become this framework.
- Easily consume content
syndicated from other content oriented applications or from
3rd party content repositories. The CMIS standard looks like
currently the way to go and then in term of development the
Apache Chemistry
project.
- Be able to leverage
existing customer architecture and all their already deployed Corporate
Portal Servers and be able to leverage the key strengths of such
platforms (SSO; Personalization; cross-portlet communication
). In order
to ease portlet development you can then start by looking at Portal
Starter Pack such as the SUN one :
http://portalpack.netbeans.org/
- Be able to leverage the
new social capabilities which are more and more often required today by
customers by implementing standards such as
OpenSocial (cf:
Apache Shindig).
- And finally work with
existing Web 2.0 AJAX frameworks such as
GWT while
already having all the bridges in place with the aforementioned back-end
libraries in order to get some immediate hands-on.
So will the future 3rd wave web development framework an
assembly of JSR168 Jackrabbit+Sling+Chemistry+Shindig Portlet?
The time will say it as most of these projects are quite new and have
still not reached their maturity point. But how more simple it would be
to develop a new content enabled application if there was already an easy
to use and in-depth integration between all these initiatives. Developers
would really be able then to focus on developing value added content
oriented features rather than spending time trying to assemble a
state-of-the art framework.
And finally, if this is about the 3rd wave of java based web
development framework, what about the 4th one? Could we
already envision what is will be?
AFAIC I personally think that the 4th wave will add support
for more Semantic Web oriented kind of features. Such web development
frameworks will have to ease the work of standard content developers in
order to more easily managed
LinkedData.
So perhaps such a new generation of development framework will come out
from projects such as the EU funded
IKS initiative. Who knows! (and
see you all in Salzburg end of this month in order to discuss about
it)