open source junction: apache wookie and w3c widgets
DESCRIPTION
Presentation at Open Source Junction in Oxford, 30 March 2011TRANSCRIPT
Widgets & Wookies
Scott WilsonApache Wookie (incubating)http://incubator.apache.org/[email protected]@scottbw This work is licensed under a Attribution-
NonCommercial-ShareAlike 2.0 licence
Topics
• W3C Widgets - what are they?• Wookie - what is it?• Open development - what did we
do?
Widgets
HTML
JavaScript
CSS
config.xml
mywidget.wgtIcon.png
W3C Widgets: for Web,Mobile, or Desktop?
Apple DashboardWindows SidebarGoogle DesktopKonfabulatorOpera Widgets
OpenSocialGoogle GadgetsGoogle Wave
GadgetsWidgetBoxSpringWidgets
Nokia WidgetsiPhone AppsAndroid AppsSamsung Bada
How about, “yes”?
Basic Widget AuthoringProcess
• 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
Device APIs: Adding ExtraCapabilities to Widget
JavaScript
• W3C Widget API
• WAC
• W3 DAP
• W3 Geo
• Address Book• Calendar• Files• Media capture
(camera)• Messaging• System• Policy• Media Gallery• Tasks• Comms Log
JavaScript
ExtensibilityYou can connect all kinds of functionality to widgets by
injecting a JS API for it at runtime - and not just deviceAPIs 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”/>
JavaScript config.xml
Otherclever stuffI18n/l10n
distribute multi-local apps as a single widget!Updates
automatic updates! Not patented by Apple!Signing
Author-trust and store-trustWidget JS Object
Preferences, metadata…WARP
Configure access policies for remote services
config.xml
Mobile Web:Widgets vs Sites
• Largely same access to device APIs thoughwidgets may have simpler permissions configdepending 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
W3C Widget Implementations
MobileObigo WRT for AndroidOpera WAC for AndroidBlackberry WidgetsSamsung BadaAplix WRTBorqs WRT
DesktopOpera 11Widgeon
WebsiteMyWiWallApache Wookie (incubating)
JBaron WidgetPortal
OtherPrometheanSMART (using Wookie)
* “Wookie” is not a clever acronym. so if you spell it WOOKIE you’re shouting!
A Java server application inthe Apache Incubator.Includes a W3C Widgetparser library.
http://incubator.apache.org/wookie
Wookie is…
• A standalone widget runtimedesigned for supporting webapplications
• Enables any web application tobecome a widget container
Integrating Wookie• Connector Framework
– Java, PHP, Python, C#, Flex…• Plugins
– Elgg, Wordpress, Jetspeed, Drupal,Moodle, Liferay…
• Backend:– JPA, JCR
Apache WookieComponents
• W3C Widget Parser (library)• Widget Server (servlet)• Feature Extensions
– WAC camera capture, Wave Gadget,JQMobile…
• Connector Framework• Shindig OpenSocial integration
Wookie and OpenInnovation
• How we went from a fundedacademic project to an ASFincubator
• How commoditization is enablingR&D
• Why a very, very small dept withlimited funding chose to invest it inthis…
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
Questions I was asked bymy boss
• “What is our commitment andexposure?”
• “How can you work on this whenthere isn’t a cost code for it?”
• “What if we get another projectthat needs you to work on it?”
The Business Case• With some help from Ross @ OSSWatch…• Identified a “survival budget” for core
staff to manage the transition to ASF andmaintain basic contributions for 2 years
• Identified a range of potential sources ofvalue and funding– New projects– Consultancy– Internal ITS adoption/support
The Proposal
http://wiki.apache.org/incubator/WookieProposal
Thank you Ross !
The Process• Incubator vote• IP due diligence
– Rewriting some code– Lots of emails
• CLA• ICLA• Transfer of codebase• Induction
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
0
50
100
150
200
250
300
350
400
450
500
Value£ (000's)
2007 2008 2009 2010 2011 2012Year
Community Added ValueIEC EU
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
R&D building on Wookie
Telco mashups research
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
New R&D• OMELETTE:
– Telecom service mashups with widgets– Portable device-agnostic multi-widget
workspaces• ITEC:
– Interactions between widgets on interactivewhiteboards, tablets and mobiles
• Apache Rave
New practices• Rather than just build stuff in projects, ask…
– Would this be a viable piece of OSS outside thisproject?
– 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 thatis a valid research outcome; don’t investresources building it just because “it’s adeliverable”
So what have we got out ofit?
• Better software than we could havecreated alone
• More interesting researchopportunities
• Research impact• Partnerships• Money
Thanks
http://incubator.apache.org/wookie
http://scottbw.wordpress.com
@scottbw
This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence