Widgets - the Wookie project

28
institute for educational cybernetics QuickTime™ and a TIFF (LZW) decompres are needed to see this Widgets Scott Wilson institute for educational cybernetics university of bolton

description

An overview of our widgets work using W3C, for the Sakai team

Transcript of Widgets - the Wookie project

Page 1: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Widgets

Scott Wilsoninstitute for educational cybernetics university of

bolton

Page 2: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

A Bit Of Background

• Direction One:– IMS learning design and “services”– TenCompetence EU Project and the

“Connection Protocol”

• Direction Two:– Connecting PLEs and institutions– Ubolton’s OnlyConnect project

Page 3: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

TenCompetence & IMS LD

• Make LD less like programming• Move from early to late binding model -

more outlining than authoring• Better integration of authoring and

runtime - make the whole thing less abstract, and more like LAMS

• Support dynamic editing from activities by users (including learners) - a.k.a. the widget widget

Page 4: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

ReCourse mockup

• Late binding with runtime integration

Page 5: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Runtime experience

Page 6: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

OnlyConnect

• Use Widgets to enable core institutional services to be distributed in both institutional, departmental, workplace, and personal platforms

• Focus on timetable information and messaging; may in future extend to library and other services

• A lot of backend work needed to funnel down to a few syllables of useful information

• A lot of potential target platforms: WebCT, Moodle, Sharepoint, Wordpress, Elgg (etc)

Page 7: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 8: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 9: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

State of Widgets Today

Page 10: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

State of Widgets Today - 2

Page 11: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

State of Widgets Today - 3

Page 12: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Unbundled Architecture

Yes, its called wookie

No, I don’t know why

Page 13: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Standards

• W3C Widget Specification 1.0– Derived from Apple Dashboard, Windows

Sidebar, Opera Widgets, Nokia Widgets vendor specifications

• Proprietary vendor specs– Google Gadgets & OpenSocial– Netvibes Universal Widget Spec– Apple iPhone SDK– Lots and lots more…

• IMS LTI

Page 14: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Adapting/Extending W3C spec

• Widget instantiation service– Way for engine to manage instances in a multi-

container, multi-user (web) environment and use opaque api key to keep user states separate

• Proxying– Avoid AJAX security issues without killing

functionality

• Shared states– Widgets with shared state between multiple

users, for collaborative tools, games, etc.

Page 15: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Architecture

Page 16: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Widget Config API

• Offers containers controls for instantiating and controlling widgets from engine

• Invoked from container plugin (e.g. Elgg plugin, Moodle plugin)

• Methods: getWidget, stopWidget, resumeWidget, setProperty

Page 17: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Example

HTTP GET engine/getWidget(user_id, run_id, service_id, ‘chat’)

<?xml version="1.0" encoding="UTF-8"?><widgetdata><url>http://localhost:8080/wookie/wservices/www.tencompetence.org/

widgets/WP3/natter/chat.htm?idkey=xR8OG1IFX58z/YVvlz910PQVtv8.eq.&amp;url=http://localhost:8080/wookie/dwr/interface/widget.js&amp;proxy=http://localhost:8080/wookie/proxy</url>

<height>383</height><width>255</width><maximize>false</maximize></widgetdata>

Page 18: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Widget API

• Extensions to W3C Widget 1.0, itself based on Apple Dashboard

• New methods and events:– sharedDataForKey(key)– appendSharedDataForKey(key)– setSharedDataForKey(key,value)– Lock– Unlock

• Enables synchronous collaboration in widgets using reverse AJAX/comet

Page 19: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Collaborative widget

Elgg plugin uses its native widget system

Converted Apple widgets

Page 20: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Moodle plugin uses “blocks”

Page 21: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Wordpress plugin uses its native widget sidebar

Page 22: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Widget management

• Basic admin interface for uploading new widgets as W3C widget packages

• Whitelist proxy for enabling remote service access by widgets

• Tagging to enable instantiation of widgets by type rather than id (esp. for portable learning designs)

Page 23: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Page 24: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Access and security

• Widget engine deliberately uses NO authentication (except for its admin webapp)

• User relationship managed by container only. Engine generates opaque non-guessable keys for each widget instance

• Container can push properties to a widget it instantiates (e.g. display name, moderator status)

• Widgets can send things like completion state data back to container, but not implemented in current version as it requires more work for containers

Page 25: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Implementation

• Engine– Java Web App (tomcat or Jboss)– MySQL– DWR (Direct Web Remoting) library– Pretty small (about 1mb WAR plus 11mb of common libs)– One engine can serve multiple containers

• Widgets– Chat, Voting, Forum– Converted Apple widgets (add W3C manifest, remove/re-

route apple dependencies)

• Plugins– Wordpress, Moodle, Elgg. All PHP using platform API

Page 26: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

For the future

• Grabbable widgets - dragging the whole thing off into your own personal containers straight out of another container such as VLE. Can do it now… but want to check more security angles!

• oAuth - put the user in control of how widgets gain access to remote services

• Widget state coupling using events and listeners (already prototyped by Palette project at Lausanne)

Page 27: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Next steps

• Package and document all our stuff so others can use it more easily

• Work with other OSS projects, particularly Elgg and Moodle, possibly Apache Shindig

• Publish extensions/profile of W3C spec for W3C or other spec bodies to take forwards

• Make more cool widgets

Page 28: Widgets - the Wookie project

institute for educational cybernetics

QuickTime™ and aTIFF (LZW) decompressor

are needed to see this picture.

Thanks for listening - over to you

http://www.cetis.ac.uk/members/scott

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.