About Java and JRuby Development
JEE, Spring, Guice
Hibernate, Java Persistence (JPA)
and various Web Frameworks

The Web Framework Evaluation – Part 04

In this article series, we are going to explore web frameworks from a
Java point of view. It covers Java based frameworks and frameworks
based on scripting languages that can run inside of a Java application
server. The latter are for example Ruby, Python, PHP, Groovy based
frameworks.� This article is taken from my eBook ‘The Web Framework
Evaluation’.

You can get the eBook at http://www.laliluna.de/shop.

Difference between the free article and the eBook in PDF format.

Characteristics of web application technologies

In the last chapter I questioned if the chosen criteria are
actually valid. There is a wide choice of totally different
technologies. Applying the same criteria to them will probably not
work. But may be a different approach works.

If we can extract the characteristics of the technologies available,
it could be possible to define a process matching the characteristics
of the technologies with the user requirement we have.


Web-like or not web-like? � this is the
question


The World Wide Web is described as a network of HTML documents
which can be navigated through hyper links. HTML can include not only
text but any kind of media content � audio, video, …


When we browse the Internet and we read, watch or listen to
content. Even though there is some interaction with wikis and blogs
and whatever else, the main thing we are doing is consuming content.
The web seems to be content-driven. I am not starting the application
required for a specific website but I just always use the same
application, i.e. my browser. Let’s add the term to the notepad.



Notepad for characteristics
The web is content-driven

If we visit a website then mostly we don’t have to prepare
anything nor define anything. We are not starting a specific
application. The web is mostly stateless. It’s the stateless
characteristic that makes the web work as it is and that allows
navigation and bookmarking.

Notepad for characteristics
The web is content driven
Stateless characteristic of the web
Navigation with hyper links
Bookmarking


Aren’t we loosing the plot? How does this refer to web
application?


No, because now we try to connect this characteristic to one of
the technology options we discussed at the beginning. I can smell
MultiP applications in the air, hopefully you as well.

If the user experience of my web application should resemble the
stateless character of the web, allowing navigation using hyper links
and bookmarking, or if there is a focus on content, then I should use
a technology which helps me to create a stateless web application.
This is related to the technology type, we have called MultiP.

Let’s explore the opposite kind of application.

The opposite of stateless is stateful. State is some kind of
information which is stored either on the server or on the client. A
state has to be created. Open your media player software, insert a CD
and select song number 5. There we are, we created a kind of state.
Alternatively, open your GIMP image editor, create an image and start
painting. Once again, we have created state.

Open the website of your favorite Internet shop, add some articles
to the shopping basket and we already have a problem with the
criteria. Browsing around is likely to be stateless, but the shopping
cart itself is stateful.

What is the consequence?

Most applications are not 100 % stateless or stateful. But there
might be a center of gravity, a main focus. This will provides us
with a general indication.

What is the opposite of content-driven?

I think application-driven but this not completely true. But there
are not many things which are completely true. So we could use
application-driven as a kind of contrast. Application-driven
describes the fact that we are using an application to create, edit
or somehow deal with content.

If my web application is only about changing state, manipulating
content, editing text or graphics then I should use a technology
appropriate to deal with the stateful characteristic of this
requirement.
This is related to the technology type, we have called SingleP.


The following table provides an overview of the criteria.








MultiP web application

SingleP web application

  • Focus on content presentation

  • Stateless characteristic of the web

  • Navigation with hyper links

  • Bookmarking

  • Focus on content manipulation

  • Stateful characteristic of desktop application

But still it is too early to finally decide, which general type of
web application we are going to use. We have not discussed the
disadvantages of SingleP and MultiP technologies. So far, we only
used the ‘web-like’ criteria to get a starting approximation towards
one side or the other. Let’s explore the technologies in chapter 6
to find a clearer answer.

Can’t we use a unified model where there is only one single
technology to address all needs? To put it slightly differently, is
there the single one to conquer the world of the web application.
This is an interesting question to be discussed in chapter 5.

Graphical animations

In the previous chapter, we have discussed mostly characteristics
and requirements of applications which look like ‘boring’ business
applications. `Business application` is not a defined term but think
of an application with forms, input fields, displaying the result of
the interaction in tables, diagrams etc.

Flash-based web application brought us a new level of graphical
effects and animations and Adobe Flex is moving those application
full of animation and rich of graphical effects to the world of
business applications. JavaFX is Sun’s answer to this new approach
and Silverlight is the technology provided by Microsoft.

It might be best to have a look at the demo pages to get a first
impression.

Adobe Flex

http://flex.org/showcase/

JavaFX

http://www.javafx.com/samples/

Microsoft Silverlight

http://silverlight.net/Showcase/

These technologies opens the gate for completely different dialog
concepts with a completely different look and feel compared to
existing applications. Some people might argue that this might be the
future, but I strongly disagree. Animations and graphical effects are
not a general requirement for all applications and to some extent
they can be achieved using Ajax as well. The technologies named in
this chapter are a must, if you want to develop applications with a
strong focus on animations, which might even require hardware based
acceleration of a graphics card. For most application, those
technologies are just an option.

To conclude, animation and graphical effects can be an important
characteristic as well.