Wookie is a project to create open source software for adding widgets to your applications.
Wookie is 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.
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.
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 for 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.
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 format.
A demo server using Moodle (a Virtual Learning Environment) is available.
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.
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.
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.
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 SocialSite.
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 (http://tencompetence.cvs.sourceforge.net/viewvc/tencompetence/wp6/org.tencompetence.widgetservice/)
The Wookie team are fully aware of the commitment they are making in entering the Incubator and look forward to the challenge.
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.
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:
The intiial source comprises code developed as part of the TENCompetence project since April 2007 and can be found in the sourceforge repository.
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.
The initial code depends on the following incompatibly licensed libraries:
- Java Transactions API
- MySQL Connector
- Mailing lists
- wookie-private (with moderated subscriptions)
- Subversion Directory
- Subversion directory
- Issue tracker
- JIRA Wookie (WOOKIE)
- Scott Wilson, University of Bolton
- Paul Sharples, University of Bolton
- Kris Popat, University of Bolton
- Ross Gardler
- Ate Douma
- Gavin McDonald
- Luciano Resende
- Andrew Savory
- Henning Schmiedehausen
- Sylvain Wallez
The Apache Incubator.