1. Kaolin Project Proposal

This is a draft version of the Kaolin proposal. Please use the Incubator general mailing list or the separate KaolinProposalDiscussion 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 <apetrelli AT apache DOT org>

Date: January 2008

Online version: http://wiki.apache.org/incubator/KaolinProposal

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

1.1. Kaolin, a multi-channel framework Proposal

1.1.1. Abstract

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

1.1.2. Proposal

The Kaolin 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.

Kaolin is the new name of Dimensions, due to the fact that there is already a software called Dimensions.

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

1.1.3. Background

The initial idea was to deliver different views for different client devices, leaving the same business logic and control. This way much of the development can be reused, changing only the "view" layer of the application.

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.

The name "Kaolin" came out when we needed to rename Dimensions: the kaolin is the main constituent of tiles (as in masonry) and colored as the need of the end customers.

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

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

1.1.5. Initial Goals

The initial goals of the proposed project are:

1.1.5.1. Current Status

1.1.5.1.1. Meritocracy

All initial committers are familiar with the meritocracy principles of Apache, and have already worked on the various source codebases. We will follow the normal meritocracy rules also with other potential contributors.

1.1.5.1.2. Community

Kaolin community will be, probably, Apache Tiles community, i.e. people that relies on the "Composite View" pattern in web applications. Kaolin will help this people to build multi-user web application easily.

Moreover, multi-device web application developers would benefit from the client device recognition facility of Kaolin. There are a number of similar targeted projects around the WWW that could help in creating a broader community, like WURFL and Milyn Tinak.

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

1.1.5.1.4. Alignment

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

1.1.5.2. Known Risks

1.1.5.2.1. Orphaned products

There is a risk of making Kaolin 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 Kaolin will be abandoned.

1.1.5.2.2. Inexperience with open source

All the initial developers have worked and are PMC members of Apache Tiles.

1.1.5.2.3. Homogeneous developers

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

1.1.5.2.4. Reliance on salaried developers

Kaolin does not rely on salaried developers.

1.1.5.2.5. Relationships with Other Apache Products

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

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

1.1.5.2.6. An Excessive Fascination with the Apache Brand

All of us are familiar with Apache and we have participated in Apache projects as contributors, committers, and PMC members. We feel that Apache Tiles is a natural home for a project like this.

1.1.6. Documentation

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

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

1.1.7. Initial Source

Kaolin will take all of his source code from Dimensions Sourceforge site. Due to the fact that there is an existing piece of software named Dimensions, Tiles developers decided to rename it to Kaolin.

1.1.8. Source and Intellectual Property Submission Plan

All source code is copyrighted by Aaron Roller, Free2Be LLC, Antonio Petrelli.

Aaron Roller wants to donate the code without further involvement in the the development but he has not filed a CLA yet.

Free2Be LLC changed its name to "MotionBased", and Aaron Roller is the sole owner and committer of the code.

1.1.9. External Dependencies

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

1.1.10. Cryptography

Kaolin does not handle cryptography in any way.

1.1.11. Required Resources

1.1.11.1. mailing list(s)

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

until Kaolin really joins Apache Tiles.

1.1.11.2. Subversion repository

1.1.11.3. Issue Tracking

1.1.12. Initial Committers

1.1.13. Affiliations

No affiliations.

1.1.14. Sponsors

1.1.14.1. Champion

1.1.14.2. Nominated Mentors

1.1.14.3. Sponsoring Entity

1.1.15. Annotations

No annotations

KaolinProposal (last edited 2009-09-20 23:06:49 by localhost)