20.01.2013 Views

svgopen09 - SVG Communicating Widgets

svgopen09 - SVG Communicating Widgets

svgopen09 - SVG Communicating Widgets

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

page 1<br />

<strong>SVG</strong> <strong>Communicating</strong> <strong>Widgets</strong><br />

Jean-Claude Dufourd, Jean Le Feuvre et<br />

Cyril Concolato<br />

Department of Signal and Image Processing<br />

Télécom ParisTech<br />

J.C. Dufourd <strong>SVG</strong> Open '09


� Apple Dashboard<br />

� Google Gadgets<br />

� Microsoft Gadgets<br />

Examples of widgets and widget UAs<br />

� Yahoo! Connected TV <strong>Widgets</strong><br />

� Opera <strong>Widgets</strong><br />

� …<br />

page 1<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 3<br />

<strong>SVG</strong> in <strong>Widgets</strong> and Widget UAs<br />

� W3C <strong>Widgets</strong> P&C and A&E<br />

• Will use DigSig later<br />

� Large parts of Widget UA unspecified<br />

• Aspect, behaviour, flexibility<br />

� WUA easy to implement in <strong>SVG</strong> + script<br />

• One for mobile<br />

• One for iTV<br />

J.C. Dufourd <strong>SVG</strong> Open '09


Specific<br />

to this<br />

WUA<br />

Generic<br />

to all<br />

WUA<br />

page 4<br />

WUA Architecture<br />

<strong>SVG</strong>: presentation of<br />

the UI<br />

ES: business logic<br />

of the WUA<br />

ES: generic<br />

Widget UA code<br />

GPAC (C/C++):<br />

- <strong>SVG</strong> engine<br />

- ES engine<br />

- UPnP engine<br />

J.C. Dufourd <strong>SVG</strong> Open '09<br />

� UI is designed in <strong>SVG</strong><br />

� WUA logic is<br />

implemented in ES<br />

• GPAC Specific APIs<br />

� A layer of C isolates<br />

Widget ES from WUA ES<br />

� In a sense, this is a WUA<br />

design environment


WUA: Managing <strong>Widgets</strong><br />

� Install or discover widgets ?<br />

• Install each widget<br />

• All from a directory<br />

• Announced on network (UPnP, web service…)‏<br />

� Present available widgets<br />

• List of icons, home page, dock…<br />

� Present running widgets<br />

• One at a time<br />

• More<br />

• Allow user layout / manipulation (move, resize)‏<br />

J.C. Dufourd <strong>SVG</strong> Open '09


WUA: Widget Features<br />

� Preferences / Execution State Save / Restore<br />

• element or .preference attribute<br />

� Can <strong>Widgets</strong> have a live, synced icon ?<br />

• Allowed by sharing the scene<br />

� <strong>Widgets</strong> in a choice of formats<br />

• WUA chooses which version it can render<br />

� Transfer a Widget across Devices<br />

• WUA is a UPnP service, discoverable by other<br />

WUAs<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 7<br />

WUA Features: Last But Not Least<br />

� Widget talking to a service<br />

• UPnP / DLNA services in the home environment<br />

� Widget talking to other widgets transparently<br />

• See other widgets as plain (UpnP) services<br />

� Widget Modularity<br />

• In particular for adaptation<br />

J.C. Dufourd <strong>SVG</strong> Open '09


<strong>Widgets</strong> Communication<br />

� Abstract communication model:<br />

• Messages with arguments (in / out)‏<br />

• Sets of messages are interfaces<br />

� Declaration in the widget manifest<br />

• Message arguments are connected to scene<br />

attributes or events or script functions<br />

• Messages are triggered by scene interaction or<br />

scripting<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 9<br />

Binding<br />

� Interface binding by the WUA<br />

� Binding by type (URN in UPnP)‏<br />

� Messages and arguments have to match if present<br />

• Messages and arguments can be ignored<br />

� <strong>Widgets</strong> have limited information about what is<br />

connected to an interface: other widget ? UPnP<br />

service ? …<br />

• Independence from network addresses<br />

• Independence from executing device<br />

J.C. Dufourd <strong>SVG</strong> Open '09


Declarations<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

page 10<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 11<br />

Widget Modularity<br />

� Modular Widget == multiple widgets designed to<br />

work together<br />

� Messaging/voting widget connected to TV channel<br />

• Broadcast with channel<br />

• Display on TV<br />

• Interaction components, one of which is activated:<br />

- One for touchscreen mobile<br />

- One for full-keyboard mobile<br />

- One for remote control<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 12<br />

Implementation and Demo<br />

� GPAC open source multimedia framework<br />

� Fastest open source <strong>SVG</strong>T1.2 implementation<br />

� Three Widget UAs<br />

� Demo:<br />

• iPhone-style WUA<br />

• <strong>Communicating</strong> widgets (within a WUA or between 2<br />

WUAs on same machine)‏<br />

• Widget migration<br />

J.C. Dufourd <strong>SVG</strong> Open '09


page 13<br />

Conclusion<br />

� WUA design environment<br />

� Uses <strong>SVG</strong>T1.2 for presentation<br />

� Communication/component extensions<br />

� Will work with any discovery protocol<br />

� Location of services is transparent<br />

• Improved security<br />

� One-to-many, many-to-one and many-to-many<br />

connections<br />

� Move widgets across devices: TV, PC, mobile<br />

• Potential for convergence of TV, mobile and Internet<br />

� Split widgets into collaborating parts<br />

� Asynchronous connection and disconnection<br />

� Works on small devices without script engine<br />

J.C. Dufourd <strong>SVG</strong> Open '09

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!