open source junction: apache wookie and w3c widgets

46
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

Upload: scottw

Post on 29-Nov-2014

3.711 views

Category:

Documents


2 download

DESCRIPTION

Presentation at Open Source Junction in Oxford, 30 March 2011

TRANSCRIPT

Page 1: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 2: Open Source Junction: Apache Wookie and W3C Widgets

Topics

• W3C Widgets - what are they?• Wookie - what is it?• Open development - what did we

do?

Page 3: Open Source Junction: Apache Wookie and W3C Widgets

Widgets

HTML

JavaScript

CSS

config.xml

mywidget.wgtIcon.png

Page 4: Open Source Junction: Apache Wookie and W3C Widgets

W3C Widgets: for Web,Mobile, or Desktop?

Apple DashboardWindows SidebarGoogle DesktopKonfabulatorOpera Widgets

OpenSocialGoogle GadgetsGoogle Wave

GadgetsWidgetBoxSpringWidgets

Nokia WidgetsiPhone AppsAndroid AppsSamsung Bada

Page 5: Open Source Junction: Apache Wookie and W3C Widgets

How about, “yes”?

Page 6: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 7: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 8: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 9: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 10: Open Source Junction: Apache Wookie and W3C Widgets
Page 11: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 12: Open Source Junction: Apache Wookie and W3C Widgets

W3C Widget Implementations

MobileObigo WRT for AndroidOpera WAC for AndroidBlackberry WidgetsSamsung BadaAplix WRTBorqs WRT

DesktopOpera 11Widgeon

WebsiteMyWiWallApache Wookie (incubating)

JBaron WidgetPortal

OtherPrometheanSMART (using Wookie)

Page 13: Open Source Junction: Apache Wookie and W3C Widgets

* “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

Page 14: Open Source Junction: Apache Wookie and W3C Widgets
Page 15: Open Source Junction: Apache Wookie and W3C Widgets

Wookie is…

• A standalone widget runtimedesigned for supporting webapplications

• Enables any web application tobecome a widget container

Page 16: Open Source Junction: Apache Wookie and W3C Widgets

Integrating Wookie• Connector Framework

– Java, PHP, Python, C#, Flex…• Plugins

– Elgg, Wordpress, Jetspeed, Drupal,Moodle, Liferay…

• Backend:– JPA, JCR

Page 17: Open Source Junction: Apache Wookie and W3C Widgets

Apache WookieComponents

• W3C Widget Parser (library)• Widget Server (servlet)• Feature Extensions

– WAC camera capture, Wave Gadget,JQMobile…

• Connector Framework• Shindig OpenSocial integration

Page 18: Open Source Junction: Apache Wookie and W3C Widgets

Wookie and OpenInnovation

Page 19: Open Source Junction: Apache Wookie and W3C Widgets

• 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…

Page 20: Open Source Junction: Apache Wookie and W3C Widgets
Page 21: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 22: Open Source Junction: Apache Wookie and W3C Widgets

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?”

Page 23: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 24: Open Source Junction: Apache Wookie and W3C Widgets

The Proposal

http://wiki.apache.org/incubator/WookieProposal

Thank you Ross !

Page 25: Open Source Junction: Apache Wookie and W3C Widgets

The Process• Incubator vote• IP due diligence

– Rewriting some code– Lots of emails

• CLA• ICLA• Transfer of codebase• Induction

Page 26: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 27: Open Source Junction: Apache Wookie and W3C Widgets

0

50

100

150

200

250

300

350

400

450

500

Value£ (000's)

2007 2008 2009 2010 2011 2012Year

Community Added ValueIEC EU

Page 28: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 29: Open Source Junction: Apache Wookie and W3C Widgets
Page 30: Open Source Junction: Apache Wookie and W3C Widgets
Page 31: Open Source Junction: Apache Wookie and W3C Widgets
Page 32: Open Source Junction: Apache Wookie and W3C Widgets

R&D building on Wookie

Page 33: Open Source Junction: Apache Wookie and W3C Widgets
Page 34: Open Source Junction: Apache Wookie and W3C Widgets
Page 35: Open Source Junction: Apache Wookie and W3C Widgets
Page 36: Open Source Junction: Apache Wookie and W3C Widgets
Page 37: Open Source Junction: Apache Wookie and W3C Widgets
Page 38: Open Source Junction: Apache Wookie and W3C Widgets
Page 39: Open Source Junction: Apache Wookie and W3C Widgets

Telco mashups research

Page 40: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 41: Open Source Junction: Apache Wookie and W3C Widgets

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

Page 42: Open Source Junction: Apache Wookie and W3C Widgets

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”

Page 43: Open Source Junction: Apache Wookie and W3C Widgets
Page 44: Open Source Junction: Apache Wookie and W3C Widgets
Page 45: Open Source Junction: Apache Wookie and W3C Widgets

So what have we got out ofit?

• Better software than we could havecreated alone

• More interesting researchopportunities

• Research impact• Partnerships• Money

Page 46: Open Source Junction: Apache Wookie and W3C Widgets

Thanks

http://incubator.apache.org/wookie

http://scottbw.wordpress.com

@scottbw

This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence