Open Source Junction: Apache Wookie and W3C Widgets
1. Widgets
&
Wookies
Scott Wilson
Apache Wookie (incubating)
http://incubator.apache.org/wookie
scottbw@apache.org
@scottbw
This work is licensed under a Attribution-
NonCommercial-ShareAlike 2.0 licence
2. Topics
• W3C Widgets - what are they?
• Wookie - what is it?
• Open development - what did we
do?
3. Widgets
HTML
config.xml
JavaScript
CSS Icon.png
mywidget.wgt
4. W3C Widgets: for Web,
Mobile, or Desktop?
Apple Dashboard OpenSocial Nokia Widgets
Windows Sidebar Google Gadgets iPhone Apps
Google Desktop Google Wave Android Apps
Konfabulator Gadgets Samsung Bada
Opera Widgets WidgetBox
SpringWidgets
6. Basic Widget Authoring
Process
• Make a webapp (HTML5, JS, CSS,
jquery etc)
• Make a basic config.xml with name,
author
• Give it an icon (icon.png)
• Zip it up
• Change extension from .zip to .wgt
7. Device APIs: Adding Extra
Capabilities to Widget
JavaScript
• Address Book
• W3C Widget API • Calendar
• Files
• WAC • Media capture
(camera)
• Messaging
• W3 DAP
• System
• Policy
• W3 Geo
• Media Gallery
• Tasks
JavaScript • Comms Log
8. Extensibility
You can connect all kinds of functionality to widgets by
injecting a JS API for it at runtime - and not just device
APIs either
<feature name=“http://bondi.omtp.org/api/camera.capture”
required=“true”/>
<feature name=“http://opensocial.org/osapi.person”
required=“true”/>
<feature name=“http://wave.google.com”
required=“true”/>
<feature name=“http://jquerymobile.com”
required=“true”/>
config.xml
JavaScript
9. Other config.xml
clever stuff
I18n/l10n
distribute multi-local apps as a single widget!
Updates
automatic updates! Not patented by Apple!
Signing
Author-trust and store-trust
Widget JS Object
Preferences, metadata…
WARP
Configure access policies for remote services
10.
11. Mobile Web:
Widgets vs Sites
• Largely same access to device APIs though
widgets may have simpler permissions config
depending on the WRT
• All files distributed and installed in the package,
supporting offline access
• Package versioning and updates
• Metadata and icons for app store distribution
12. W3C Widget Implementations
Mobile Desktop
Obigo WRT for Android Opera 11
Opera WAC for Android Widgeon
Blackberry Widgets
Website
Samsung Bada
MyWiWall
Aplix WRT
Apache Wookie (incubating)
Borqs WRT JBaron WidgetPortal
Other
Promethean
SMART (using Wookie)
13. A Java server application in
the Apache Incubator.
Includes a W3C Widget
parser library.
http://incubator.apache.org/wookie
* “Wookie” is not a clever acronym. so if you spell it WOOKIE you’re shouting!
14.
15. Wookie is…
• A standalone widget runtime
designed for supporting web
applications
• Enables any web application to
become a widget container
19. • How we went from a funded
academic project to an ASF
incubator
• How commoditization is enabling
R&D
• Why a very, very small dept with
limited funding chose to invest it in
this…
20.
21. the proposition
• Implementation of emerging standard
• Can be extracted from larger project
context as a discrete project
• A good fit with ASF - home to other W3C
ref implementations
• Already some interest from outside the
project
22. Questions I was asked by
my boss
• “What is our commitment and
exposure?”
• “How can you work on this when
there isn’t a cost code for it?”
• “What if we get another project
that needs you to work on it?”
23. The Business Case
• With some help from Ross @ OSSWatch…
• Identified a “survival budget” for core
staff to manage the transition to ASF and
maintain basic contributions for 2 years
• Identified a range of potential sources of
value and funding
– New projects
– Consultancy
– Internal ITS adoption/support
25. The Process
• Incubator vote
• IP due diligence
– Rewriting some code
– Lots of emails
• CLA
• ICLA
• Transfer of codebase
• Induction
26. So what happened?
• Income generated from this work far, far exceeded the
survival budget.
• Total income generated for next 4 years: ~£700k from
two FP7 projects
• Plus very substantial value added by the community
• Only actually core funded from Dec 09-Sep10 @ 0.2FTE
(around £12k)
• Wookie reused by at least six other EU consortia projects
• Wookie has already effectively paid for 20% of me and 100%
of two developers for the next three years
27. 500
450
Community Added Value
400 IEC
EU
350
300
Value
250
£ (000's)
200
150
100
50
0
2007 2008 2009 2010 2011 2012
Year
28. Added Value
• Work contributed to Wookie by the incubator
community
• Bug fixes
• New features
• Build and install process
• Connection framework
• New plugins
• New persistence layer
• Connectors in PHP, C#, Python, Ruby …
• Documentation, screencasts etc
40. New Partnerships
• T-Systems MMS
• SAP
• Gesfor SA
• Huawei
• University of Trento
• Chemnitz University
• University of Madrid
• University of Vallodolid
• TIE Kinetix
• SMART
• Promethean
• Icodeon
• Opera
41. New R&D
• OMELETTE:
– Telecom service mashups with widgets
– Portable device-agnostic multi-widget
workspaces
• ITEC:
– Interactions between widgets on interactive
whiteboards, tablets and mobiles
• Apache Rave
42. New practices
• Rather than just build stuff in projects, ask…
– Would this be a viable piece of OSS outside this
project?
– Who is not in our consortium but would contribute?
– Are there existing communities we can tap into?
– How can we manage this?
If its not viable, find out why its not viable and that
is a valid research outcome; don’t invest
resources building it just because “it’s a
deliverable”
43.
44.
45. So what have we got out of
it?
• Better software than we could have
created alone
• More interesting research
opportunities
• Research impact
• Partnerships
• Money