svgopen09 - SVG Communicating Widgets
svgopen09 - SVG Communicating Widgets
svgopen09 - SVG Communicating Widgets
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