incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <>
Subject [Incubator Wiki] Update of "WookieProposal" by RossGardler
Date Fri, 03 Jul 2009 13:49:22 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 RossGardler:

The comment on the change is:
Initial proposal

New page:
= Abstract =

Wookie is a project to create open source software for adding widgets to your applications.

= Proposal =

Wookie will create a Java server application that allows you to upload and deploy widgets
for your applications. Wookie is based on the W3C Widgets specification, but widgets can also
be included that use extended APIs such as Google Wave Gadgets and OpenSocial. 

= Background =

The [ W3C defines widgets] as:

''Small client-side Web applications for displaying and updating remote data, that are packaged
in a way to allow a single download and installation on a client machine, mobile phone, or
mobile Internet device. Typical examples of widgets include clocks, CPU gauges, sticky notes,
battery-life indicators, games, and those that make use of Web services, like weather forecasters,
news readers, email checkers, photo albums and currency converters.''

The Widgets v1.0 working draft targets platforms such as Apple Dashboard, Microsoft Sidebar,
Yahoo! Konfabulator, and mobile platforms such as WidSets. Web widgets, such as Google Gadgets,
are not currently in scope for the specification, although when you dig into the details of
the specification, its obvious that web widgets can potentially be developed in a similar
manner. For example, the OpenSocial API is an example of an extended Web Widget API - in this
case to enable Widgets to access things like friends lists and status information. 

Widgets are intended to be embedded into other applications in order to provide a customised
user experience on a variety of platforms and form factors. A widget will therefore typically
consist of Javascript, HTML and CSS.

= Rationale =

Wookie is based on the W3C Widgets specification, and includes an open source Widget Engine
together with a number of plugins for popular web applications such as Wordpress. The Wookie
engine can render widgets using alternative APIs by a feature extension mechanism (for example,
it allows Widgets to also use the Google Wave Gadgets API), or by acting as a proxy. For example,
it leverages Apache Shindig (Incubating) to render OpenSocial gadgets.

By adopting the W3C Widgets specification and by providing a means for embedding alternative
widgets standards Wookie provides a means to share widgets more widely.

Furthermore, since there is currently no reference implementation for the W3C Widget Specification
(which is currently a Working Draft) we feel this is an ideal time to make this software more
widely available. In the past The Apache Software Foundation has proven it is the best place
this type of development. One of the current developers, Scott Wilson, is also an active participant
in the development of the W3C Widgets specification, and has contributed to the Widgets Packaging
and Configuration specification, and the Widgets API and Events specification. 

= Current Status =

The current implementation of Wookie includes a Widget Engine, a number of plugins to allow
Wookie widgets to be included in popular web applications (Wordpress, Moodle and ELGG) and
published API for widgets. 

Wookie exposes two APIs:

The Widget API is an extended version of the W3C Widget API and Events specification, which
is itself based upon things like Apple Dashboard and Windows Vista Sidebar. The extensions
support collaboration tools and were developed as part of the [
TENCompetence project], funded by the European Commission through the IST Programme; these
extensions to some extent overlap the Google Wave Gadget API, and the developers have enabled
Widget authors to use the Google Wave Gadget API to access the same collaboration functionality.

The Widget Plugin API is a very simple method for Plugins to ask a Widget Server to make a
new instance of a Widget. This API provides a means for exsiting container applications to
embed Wookie Widgets.

As well as these APIs, Wookie uses the W3C Widgets Packaging specification for bundling and
sharing Widgets. You can usually import Widgets directly to Wookie Server if they are in this

A [ demo server] using Moodle (a Virtual Learning
Environment) is available.

== Meritocracy ==

The initial developers are aware of the meritocratic model of developing software, although
they have little experience of it in practice. The development team believe that the meritocratic
model is the best way to ensure that the Wookie software continues to develop as an independant
implementation of, arguably, one of the most important standards to emerge in recent years.

The Apache Software Foundation has been chosen specifically because the initial developers
want to encourage this style of development for the project and feel that the Apache Incubator
is the place to ensure the initial project members succeed in realising the goal of a fully
meritocratic project.

== Community ==

Wookie currently has significant interest within the teaching and learning space, but wishes
to develop a wider community which includes as many of the significant widget stakeholders
as possible. The Apache Software Foundation provides the neutral ground upon which this will
be possible.

= Core Developers =

The initial set of committers are all based at the University of Bolton, UK. All work on this
project is currently funded by Eurpoean Commission grants.

== Alignment ==

The developers of Wookie want to work with the Apache Software Foundation specifically because
the Apache Software Foundation has been proven to provide a strong foundation and set of practices
for developing standards-based infrastructure and server components. 

At present Wookie uses Apache Shindig to provide support of Open Social widgets. There is
also potential for collaboration with projects such as Apache Roller, Apache JSPWiki and Apache

= Known Risks =

== Orphaned Products ==

This work is, at present, funded by a grant from the European Commission which expires in
November 2009. Activity with Wookie in the University of Bolton is wider than the developer
group. The University has established a demonstrator server for its own purposes, and is exploring
the use of Wookie in its institutional Virtual Learning Environment. Additionally, the University
provides a UK service for standards and interoperability (CETIS), and there is commitment
to continue engaging in development of Wookie as part of that service's work with W3C. Additional
project funding is also being sought, but is not guaranteed.

Whilst there is a risk of this product being orphaned as a result of discontinued funding
we believe that there is sufficient commitment from the initial committers to ensure that
a community can be built around this project which is likely to gather interest as the W3C
working draft matures.

== Inexperience with Open Source ==

All of the initial committers have participated in, and in some cases managed, open source
projects. Wookie is currently a [ SourceForge
hosted] open source project. NOTE: the sourceforge site is for all outputs from the TENCompetence
project, this proposal is for the Wookie project only (

The Wookie team are fully aware of the commitment they are making in entering the Incubator
and look forward to the challenge.

== Homogenous Developers ==

All developers are, at this time, from the University of Bolton.

== Reliance on Salaried Developers ==

Two of the three developers on Wookie are salaried developers. However, they are academic
developers and make their living through specialisation. Individual interest in Wookie and
related technologies is likely to continue beyond existing salaried positions. 

The third developer participates in development as part of his engagement in W3C and also
as a platform for research, and would also continue to engage through interest irrespective
of salaried work.

== Relationships with Other Apache Products ==

Wookie uses Apache Shindig (Incubating) to provide OpenSocial support and Apache Tomcat as
the servlet engine.

==  A Excessive Fascination with the Apache Brand ==

It would not be true to claim that the Apache brand is unimportant to Wookie. It is hoped
that the brand will help assure widget stakeholders that Wookie is a neutral place for collaboration.
It is this wide collaboration that will make Wookie a success and the Apache brand is an important
part of that success.

However, the primary driver for coming to the ASF is to learn and adopt the processes and
practices of a meritocratic development model. The academic sector has a very chequered history
with respect to producing sustinable communities and software. We believe that by bringing
Wookie to the ASF we will be able to build a diverse community that is difficult, if not impossible,
through other routes.

= Documentation =

W3C Widget Requirements (Working Draft):

W3C Widgets: Packaging and Configuration (Last Call Working Draft):

W3C Widgets: API and Events (Working Draft):

Google Wave Gadgets API:

Wookie Project Site:

Scott Wilsons Blog:

= Initial Source =

The intiial source comprises code developed as part of the TENCompetence project since April
2007 and can be found in the sourceforge [

= Source and Intellectual Property Submission Plan =

It is understood, at the time of writing, that all code is copyright the University of Bolton
and that no other participant in the TENCompetence project have contributed to these outputs.
It is recommended, given the size and complexity of TENCompetence, that copies of the collaboration
agreement between University of Bolton and other partners are examined in detail to ensure
this is the case.

TENCompetence central project management (Open University of the Netherlands) is aware of
the proposal to submit Wookie to Apache, sees this as a positive development.

= External Dependencies =

The initial code depends on the following incompatibly licensed libraries:

 * c3p0 
 * Java Transactions API 
 * MySQL Connector 
 * Hibernate 

= Required Resources =

 * Mailing lists
   * wookie-private (with moderated subscriptions) 
   * wookie-dev 
   * beehive-user 
   * Subversion Directory
 * Subversion directory
 * Issue tracker
   * JIRA Wookie (WOOKIE)
 * Wiki

= Initial Committers =

 * Scott Wilson, University of Bolton
 * Paul Sharples, University of Bolton
 * Kris Popat, University of Bolton
= Sponsors =

== Champion ==
 * Ross Gardler

== Nominated Mentors ==

 * Ross Gardler
 * Gavin McDonald

== Sponsoring Entity ==

The Apache Incubator.

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

View raw message