+ All Categories
Home > Technology > Widgets - the Wookie project

Widgets - the Wookie project

Date post: 08-May-2015
Category:
Upload: scottw
View: 5,124 times
Download: 0 times
Share this document with a friend
Description:
An overview of our widgets work using W3C, for the Sakai team
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
Transcript
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.


Recommended