incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "DimensionsProposal" by AntonioPetrelli
Date Mon, 07 Jan 2008 13:14:21 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The following page has been changed by AntonioPetrelli:

The comment on the change is:
Created Dimensions proposal

New page:
#pragma section-numbers on
#language en
#format wiki
#pragma keywords Tiles, multichannel, CC/PP, multidevice

= Dimensions Project Proposal =

''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.''

''Author:''         Antonio Petrelli [[MailTo(apetrelli AT apache DOT org)]]

''Date:''           January 2008

''Online version:''

''Status:''         .:: D R A F T ::.

== Dimensions, a multi-channel framework Proposal ==

=== 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 "Definitions''''''Factory", and it cannot exist without Tiles.

=== Background ===

The initial idea was (here goes initial story by Aaron Roller).

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

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

=== 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

===== Homogeneous 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.

===== An 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:

The [ CC/PP standard] is used to recognize certain

=== 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

=== External Dependencies ===

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

=== Scope of the sub projects ===

The below artifacts are being proposed to make up the initial core Bennu system
(See: 4. Initials Goals as well).

 * Bennu mediation core (i.e. the service management abstraction layer)
 * Management Web service
 * HTML based management interface (Ajax/RIA based)
 * Various Core Service Implementations
 * Central administration facility (may reassemble parts of the HTML GUI)

=== Cryptography ===

Dimensions does not handle cryptography in any way.

=== Required Resources ===

==== mailing list(s) ====

During incubation, the Dimensions team could make use of the usual set of lists
  * dimensions-user AT incubator DOT apache DOT org
  * dimensions-dev AT incubator DOT apache DOT org
  * dimensions-commits AT incubator DOT apache DOT org

until Dimensions really joins Apache Tiles.

==== Subversion repository ====

 * []

==== Issue Tracking ====

 * Dimensions (DIMS) inside [ Struts JIRA instance], under
the "Tiles Framework" category.

=== Initial Committers ===

  * Aaron Roller: aroller at motionbased dot com (*)
  * Antonio Petrelli: apetrelli at apache dot org
  * Craig R. Mc''''''Clanahan: craigmcc at apache dot org
  * David H. De''''''Wolf: ddewolf at apache dot org
  * Greg Reddin: greddin at apache dot org
  * Joe Germuska: germuska at apache dot org
  * Martin Cooper: martinc at apache dot org
  * Nathan Bubna: nbubna at apache dot org
  * Wendy Smoak: wsmoak at apache dot org

=== Affiliations ===

(These affiliation should be verified).
  * Aaron Roller [ MotionBased].

=== Sponsors ===

==== Champion ====

==== Nominated Mentors ====

==== Sponsoring Entity ====

 * Apache Tiles Project.

=== Annotations ===

(*) Aaron Roller has not filed a CLA yet, the other initial committers are already Tiles committers/PMC

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message