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.