20.01.2013 Views

svgopen09 - SVG Communicating Widgets

svgopen09 - SVG Communicating Widgets

svgopen09 - SVG Communicating Widgets

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!