Article

Making Rich Web Application Architecture Usable

Page: 1 2 3 4

Logic

Logic is the code that describes the behavior of the application. It connects components, presentation, and the data. Object oriented principles can be used to reduce the complexity in the logic. The application programmer is responsible for the logic that goes into the application.

Components

Components are the basic building blocks of the interface. A few types of components are interaction components, data loading components, navigation components and agent/alert components.

Interaction components provide visualizations and get interactions from the user for a particular data type. Separation of the component from logic, data presentation, and structure will assist rapid development and give the application designer the flexibility to implement accessible user interfaces. The components should take in text and provide accessible visualizations to all users.

Providing various ways to input the same information helps users interact with the application without changing their user model. Auto-completion-capable components also reduce the work load on the user.

Ensuring the learnability and scanability of components make them easy for both novice and advanced users. The components should be able to log user actions and take in actions to enable the undo feature.

Real world metaphors and affordances enable the user to interact with the software without learning new things. Various metaphors can be used to make the interaction with the components simpler.

The Web uses the travel metaphor, where users click on objects to go to a new page to perform an operation. Desktop applications use the workshop metaphor, where we have lots of tools to work on different selectable objects. In the morphic graphic system, the tasks appear on the objects itself after selecting it, which comes under the examine metaphor. A set of industry wide standard components following a consistent metaphor will make it possible for the user to learn once and use that knowledge anywhere.

Data loading components manage the data on the client and the server side. They provide the progress updates to the page, send partial data downloads to the interaction components and provide seamless online and offline data access. Navigation components encapsulate the page and navigation information in the application. Alert or agent components run in the background and give different types of alerts to the user.

Presentation

Presentation deals with the visual display of the components. The location, sizes, colors and backgrounds of the components are defined by the presentation.

Consistent location for similar types of elements is encouraged by separating the presentation from the application. Most of the benefits that come with using CSS in Web pages apply here too. The visual designer is responsible for the presentation part of the application.

Advantages of the Pattern

In summary, the pattern provides the application designer and developer with a range of benefits that help them develop usable rich Internet applications. The pattern...

  1. decouples tasks according to expert domains, allowing semi-parallel application development
  2. allows the developers to work within usability constraints
  3. separates components from the software, enabling faster development
  4. creates an environment where the page is independent of navigation, which supports just-in-time processes
  5. makes presentation independent of pages, encouraging consistent page layout
  6. provides greater scalability of the application due to reduced complexity
  7. allows for easier maintenance through the splitting of the application into different parts

Even if the current tools do not support this pattern, it is advantageous to think of an application in this way because of the benefits it presents: it provides flexibility, gives independence to domain experts, and simplifies the problem with out losing track of usability constraints.

The availability of multiple options sometimes overwhelms new designers and increases complexity. The restrictions introduced through design patterns breed creativity under design constraints.

Patterns help reduce complexity and enable the easier understanding of a given problem. However, a design pattern is not a silver bullet or panacea to any problem, and should only be applied when the flexibility it affords is actually needed.

For more information, see:

HTML's time is over. Let's move on.
http://www.boxesandarrows.com/archives/htmls_time_is_over_lets_move_on.php

Macromedia central white paper.
http://www.macromedia.com/software/central/whitepaper/central_wp.pdf

Smart client application model and .NET framework.
http://msdn.microsoft.com/netframework/using/building/windows/analystreports/smartclient.aspx

Java Web start architecture.
http://java.sun.com/products/javawebstart/architecture.html

If you liked this article, share the love:
Print-Friendly Version Suggest an Article

Sponsored Links

Rate This Article

  • 1
    Poor
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
    Great

Post A Comment

You need to be a member of the SitePoint Forums to comment on this post. Sign Up

Already a member? Post using your SitePoint Forums account: