Dimensions, a multi-channel framework

This is a draft version of the Dimensions proposal. Please use the Incubator general mailing list or the separate DimensionsProposalDiscussion page to discuss this proposal. You can "Subscribe" this page to get notified whenever changes are made. See the proposal guide for a description of the expected proposal content.'

Abstract

Dimensions is an Apache Tiles extension that delivers customized content for different users, devices or other criteria.

Proposal

The Dimensions extension for Apache Tiles is capable of delivering different "aspects" of the same website. By recognizing the calling user and its devices, it organizes the pages using different layout, depending on the developers configuration.

This is especially useful for multi-channel websites, to allow a wider range of users to visit a site, by reducing the size of pages for smaller screens, or by showing certain page sections only if a user has sufficient credentials.

Dimensions natural place is as an Apache Tiles extension, since it relies on Tiles' concepts, like "definition" and "DefinitionsFactory", and it cannot exist without Tiles.

Background

The initial idea was (I think that here goes Aaron Roller's story).

But in 2004 the ability of delivering different contents was extended not only on different calling devices, but also on different calling users role. This kind of capability is enabled by using configuration files, that maps all user roles/device crosspoints to a certain site layout.

The concept of a "dimension" arised: the user role was a dimension, while the device was the other. But this kind of concept can be extended infinitely, allowing to create a n-dimensional space in which each crosspoint is a website layout.

Rationale

Currently, when a Java EE website needs to be ported for other devices, it needed the creation of a new project, or at least a new section of the same project. This kind of procedure can lead to code repetition and lack of coherence.

Dimensions solves this problem by providing customized aspects for the same website: only the visible part of it will change (depending on the condition imposed by the developer), but the rest of it will remain the same, including the "controller" and "model" part of the application.

Initial Goals

The initial goals of the proposed project are:

  • Include the Apache Software Foundation header in all source code.
  • Viable community around the Dimensions codebase.
  • Active relationships and possible cooperation with related projects and communities, especially those that include Apache Tiles support.
  • Clean-up of the code, by following the Apache Tiles standard.

Current Status

Meritocracy

All but one (here I suppose that Aaron will be a committer) initial committers are familiar with the meritocracy principles of Apache, and have already worked on the various source codebases. The missing one contributed to several open source projects and probably will learn very fast. We will follow the normal meritocracy rules also with other potential contributors.

Community

Dimensions community will be, probably, Apache Tiles community. But there are a number of similar targeted projects around the WWW that could help in creating a broader one.

Core Developers

The initial set of developers comes from various backgrounds, as they are in Apache Tiles project, with different but compatible needs for the proposed project.

Alignment

Dimensions will likely be widely used by various open source and commercial projects that have a dependency on Apache Tiles.

Known Risks

Orphaned products

There is a risk of making Dimensions an orphaned product, but most probably it will follow Apache Tiles steps. Since Tiles is widely adopted in Java EE applications, it is difficult that Dimensions will be abandoned.

Inexperience with Open Source

All the initial developers have worked on open source and all but one are PMC members of Apache Tiles.

Homogenous Developers

The initial developers come from a variety of backgrounds and with a variety of needs for the proposed extension.

Reliance on Salaried Developers

Dimensions does not rely on salaried developers.

Relationships with Other Apache Products

Dimensions is strongly related to Apache Tiles to the point that it should be a subproject of it.

Dimensions relies on Tiles' concepts, like "definition" and "DefinitionsFactory". Dimensions cannot exist without Tiles.

A Excessive Fascination with the Apache Brand

All but one of us are familiar with Apache and we have participated in Apache projects as contributors, committers, and PMC members. The one that did not, will follow our example easily. We feel that Apache Tiles is a natural home for a project like this.

Documentation

The official documentation is hosted in a Sourceforge website:
http://mutidimensions.sourceforge.net/

The CC/PP standard is used to recognize certain devices..

Initial Source

Dimensions will take all of his source code from its Sourceforge site

Source and Intellectual Property Submission Plan

All source code is copyrighted by Aaron Roller, Free2Be LLC, Antonio Petrelli.
(I think that there is a problem with Free2Be LLC, probably it changed name, that should be addressed).

External Dependencies

Dimensions depends on Apache Tiles and some Jakarta Commons libraries.
The only dependency outside of Apache is DOM4J, that is BSD-style licensed.

Cryptography

Dimensions does not handle cryptography in any way.

Required Resources

Mailing lists

During incubation, the Dimensions team could make use of the usual set of lists

  • dimensions-user@incubator.apache.org
  • dimensions-dev@incubator.apache.org
  • dimensions-commits@incubator.apache.org

until Dimensions really joins Apache Tiles.

Subversion Directory

Issue Tracking

Other Resources

  • none

Initial Committers

Name

Email

CLA

Aaron Roller

aroller at motionbased dot com

no

Antonio Petrelli

apetrelli at apache dot org

yes

Craig R. McClanahan

craigmcc at apache dot org

yes

David H. DeWolf

ddewolf at apache dot org

yes

Greg Reddin

greddin at apache dot org

yes

Joe Germuska

germuska at apache dot org

yes

Martin Cooper

martinc at apache dot org

yes

Nathan Bubna

nbubna at apache dot org

yes

Wendy Smoak

wsmoak at apache dot org

yes

Affiliations

(These affiliation should be verified).

Name

Affiliation

Aaron Roller

MotionBased

Sponsors

Champion

  • TBD

Nominated Mentors

  • TBD

Sponsoring Entity

  • Apache Tiles project.
  • No labels

1 Comment

  1. Anonymous

    I just wanted to comment on your blog and say I really enjoyed reading your blog here. It was very informative and I also digg the way you write! Keep it up and I'll be back soon to find out more mate.Walkie Talkies