0
Marcos Caceres (QUT) :: WDS ::26 September, 2007
<ul><li>Interaction designer/developer by trade </li></ul><ul><li>Joined W3C Web Apps Formats WG in 2006 </li></ul><ul><li...
<ul><li>What are Widgets and Widget Engines? </li></ul><ul><li>Problem (lack of standards) </li></ul><ul><li>How to addres...
<ul><li>A single function application </li></ul><ul><li>Made from web technologies (easy to build) </li></ul><ul><li>Usual...
<ul><li>DESKTOP WIDGETS </li></ul><ul><li>WEB WIDGETS </li></ul>05/27/09 Yahoo! Widgets and Sidebar iGoogle Gadgets
<ul><li>MOBILE WIDGETS </li></ul><ul><li>PHYSICAL WIDGET </li></ul>05/27/09 Webwag WidgetStation
<ul><li>Software on which widgets run. </li></ul><ul><li>Dashboard, Sidebar, Yahoo, Google Gadgets </li></ul>05/27/09 Dash...
05/27/09 Widget: “An end-user's conceptualisation of an interactive single purpose application for displaying and/or updat...
<ul><li>Make a web page </li></ul><ul><li>Zip it up </li></ul><ul><li>Publish it online (or send it out) </li></ul><ul><li...
<ul><li>To make a widget more useful:  </li></ul><ul><li>Ajax (web 2.0 stuff) </li></ul><ul><li>Web services </li></ul><ul...
<ul><li>Anyone </li></ul><ul><li>Enterprise uses </li></ul><ul><ul><li>Eg: SAP </li></ul></ul>05/27/09 SAP Prototype Widge...
<ul><li>No interoperability across widget engines </li></ul><ul><li>Security issues not fully resolved </li></ul><ul><li>A...
<ul><li>PACKAGING </li></ul><ul><li>Format and Media Type </li></ul><ul><li>Automatic Updates </li></ul><ul><li>Auto-disco...
<ul><li>Format </li></ul><ul><ul><li>Zip (version 2) </li></ul></ul><ul><ul><ul><li>Deflate or uncompressed </li></ul></ul...
<ul><li>Keep widget up to date </li></ul><ul><li>Widget engine periodically checks for updates: </li></ul><ul><ul><li>Is t...
<ul><li>AUTO-DISCOVERY  </li></ul><ul><li>Auto-discovery enables a browser to identify and install a widget that is associ...
<ul><li>XML Digital Signature </li></ul><ul><li>Sign everything in a package </li></ul><ul><ul><li>Signed Info  </li></ul>...
<ul><li>BOOTSTRAPPING </li></ul><ul><li>Automatically finding the start folder and file: </li></ul><ul><ul><li>HTML, XML, ...
<ul><li>Leverage JavaScript+XHR </li></ul><ul><li>Widget Object </li></ul><ul><ul><li>openURL(url); </li></ul></ul><ul><ul...
<ul><li>SECURITY MODEL </li></ul><ul><li>No yet specified. </li></ul><ul><li>Should we lock it down or open it up? </li></...
<ul><li>[email_address] </li></ul><ul><li>Widget images (Microsoft Vista Sidebar) </li></ul><ul><li>References </li></ul><...
Upcoming SlideShare
Loading in...5
×

Widgets

5,200

Published on

Workshop Slides from Web Direction South W3C SIG day.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,200
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
304
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Transcript of "Widgets"

  1. 1. Marcos Caceres (QUT) :: WDS ::26 September, 2007
  2. 2. <ul><li>Interaction designer/developer by trade </li></ul><ul><li>Joined W3C Web Apps Formats WG in 2006 </li></ul><ul><li>Edit: </li></ul><ul><ul><li>Widgets 1.0 Requirements </li></ul></ul><ul><ul><li>Widgets 1.0 Specification (with Anne van Kesteren, Opera Software) </li></ul></ul><ul><ul><li>XBL 2.0 Primer (with Lachlan Hunt) </li></ul></ul><ul><li>Doing a PhD on widgets </li></ul>05/27/09
  3. 3. <ul><li>What are Widgets and Widget Engines? </li></ul><ul><li>Problem (lack of standards) </li></ul><ul><li>How to address the problem </li></ul><ul><li>Widget 1.0 Spec </li></ul><ul><ul><li>Packaging </li></ul></ul><ul><ul><li>Runtime instances </li></ul></ul>05/27/09
  4. 4. <ul><li>A single function application </li></ul><ul><li>Made from web technologies (easy to build) </li></ul><ul><li>Usually access local info or web services </li></ul><ul><li>Types: </li></ul><ul><ul><li>Desktop </li></ul></ul><ul><ul><li>Mobile </li></ul></ul><ul><ul><li>Web </li></ul></ul><ul><ul><li>Physical </li></ul></ul>05/27/09
  5. 5. <ul><li>DESKTOP WIDGETS </li></ul><ul><li>WEB WIDGETS </li></ul>05/27/09 Yahoo! Widgets and Sidebar iGoogle Gadgets
  6. 6. <ul><li>MOBILE WIDGETS </li></ul><ul><li>PHYSICAL WIDGET </li></ul>05/27/09 Webwag WidgetStation
  7. 7. <ul><li>Software on which widgets run. </li></ul><ul><li>Dashboard, Sidebar, Yahoo, Google Gadgets </li></ul>05/27/09 Dashboard (Apple Inc.) Yahoo! Widgets engine
  8. 8. 05/27/09 Widget: “An end-user's conceptualisation of an interactive single purpose application for displaying and/or updating local data or data on the Web, packaged in a way to allow a single download and installation on a user's machine or mobile device.” [Widget-reqs]
  9. 9. <ul><li>Make a web page </li></ul><ul><li>Zip it up </li></ul><ul><li>Publish it online (or send it out) </li></ul><ul><li>… or at least it should be that easy. </li></ul>05/27/09
  10. 10. <ul><li>To make a widget more useful: </li></ul><ul><li>Ajax (web 2.0 stuff) </li></ul><ul><li>Web services </li></ul><ul><li>RSS/podcasts </li></ul><ul><li>Web APIs/mashups </li></ul><ul><li>Access to device </li></ul><ul><ul><li>Camera, SMS, etc </li></ul></ul>05/27/09
  11. 11. <ul><li>Anyone </li></ul><ul><li>Enterprise uses </li></ul><ul><ul><li>Eg: SAP </li></ul></ul>05/27/09 SAP Prototype Widget [SAP] “… in the U.S. marketing spending on mobile widgets will reach [US]$500 million by 2010, up from about $2 million [in March 2007]” [BusinessWeek] “ 2007: year of the Widget?” [Newsweek]
  12. 12. <ul><li>No interoperability across widget engines </li></ul><ul><li>Security issues not fully resolved </li></ul><ul><li>Are all user needs met? </li></ul><ul><ul><ul><li>Enterprise requirements </li></ul></ul></ul><ul><ul><ul><li>Internationalisation </li></ul></ul></ul><ul><ul><ul><li>Accessibility </li></ul></ul></ul><ul><li>How will they work on phones? </li></ul><ul><ul><li>Mobility </li></ul></ul><ul><ul><li>Persistent storage? Keeping costs down. </li></ul></ul>05/27/09
  13. 13. <ul><li>PACKAGING </li></ul><ul><li>Format and Media Type </li></ul><ul><li>Automatic Updates </li></ul><ul><li>Auto-discovery </li></ul><ul><li>Embedding in HTML </li></ul><ul><li>Digital Signature </li></ul><ul><li>WIDGET INSTANCE </li></ul><ul><li>Initialisation (bootstrapping) </li></ul><ul><li>Metadata/Preferences </li></ul><ul><li>DOM APIs and Events </li></ul><ul><ul><li>Cross-widget communication </li></ul></ul><ul><li>Rendering </li></ul><ul><li>Security model </li></ul>05/27/09
  14. 14. <ul><li>Format </li></ul><ul><ul><li>Zip (version 2) </li></ul></ul><ul><ul><ul><li>Deflate or uncompressed </li></ul></ul></ul><ul><ul><li>Excludes support for: </li></ul></ul><ul><ul><ul><li>64Bit </li></ul></ul></ul><ul><ul><ul><li>Encryption </li></ul></ul></ul><ul><ul><ul><li>Splitting </li></ul></ul></ul><ul><ul><ul><li>Unicode  </li></ul></ul></ul><ul><ul><li>Maximize interoperability </li></ul></ul><ul><li>Media Type </li></ul><ul><ul><li>application/widget </li></ul></ul><ul><li>Extension </li></ul><ul><ul><li>*.wgt </li></ul></ul>05/27/09
  15. 15. <ul><li>Keep widget up to date </li></ul><ul><li>Widget engine periodically checks for updates: </li></ul><ul><ul><li>Is the Version number </li></ul></ul><ul><ul><li>HTTP Caching control </li></ul></ul><ul><ul><ul><li>Etags, Last modified date </li></ul></ul></ul><ul><li>What happens when there is no caching info? </li></ul><ul><li>What happens when a widget is auto generated?d </li></ul>05/27/09
  16. 16. <ul><li>AUTO-DISCOVERY </li></ul><ul><li>Auto-discovery enables a browser to identify and install a widget that is associated with an web page. </li></ul><ul><li><a rel=&quot;widget“ href=“my.wgt“>Widget</a> </li></ul><ul><li>EMBEDDING IN HTML </li></ul><ul><li>HTML4/XHTML </li></ul><ul><ul><li>Using <object> </li></ul></ul><ul><li>HTML5? </li></ul><ul><ul><li>We will be approaching HTML-WG. </li></ul></ul><ul><ul><li><widget src=“my.wgt”> </li></ul></ul><ul><ul><ul><li><div>…Fallback content…</div> </li></ul></ul></ul><ul><ul><li></widget?> </li></ul></ul><ul><li>We are still investigating how to do this. </li></ul>05/27/09
  17. 17. <ul><li>XML Digital Signature </li></ul><ul><li>Sign everything in a package </li></ul><ul><ul><li>Signed Info </li></ul></ul><ul><ul><ul><li>Crypto algorithm </li></ul></ul></ul><ul><ul><li>Signed value </li></ul></ul><ul><ul><li>Key info </li></ul></ul><ul><ul><ul><li>Digital certificate </li></ul></ul></ul><ul><ul><li>Manifest </li></ul></ul><ul><ul><ul><li>The files </li></ul></ul></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><Signature xmlns=&quot;http://www.w3.org/2000/09/xmldsig#&quot;> </li></ul><ul><li><SignedInfo> </li></ul><ul><li><CanonicalizationMethod </li></ul><ul><li>Algorithm=&quot;http://www.w3.org/TR/2001/REC-xml-c14n-20010315&quot;/> </li></ul><ul><li><SignatureMethod </li></ul><ul><li>Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#rsa-sha1&quot; /> </li></ul><ul><li><Reference URI=&quot;#References&quot; </li></ul><ul><li>Type=&quot;http://www.w3.org/2000/09/xmldsig#Manifest&quot;> </li></ul><ul><li><DigestMethod </li></ul><ul><li>Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot;/> </li></ul><ul><li><DigestValue>725x3fVasdfvBGFGjhjyDSFvUk=</DigestValue> </li></ul><ul><li></Reference> </li></ul><ul><li></SignedInfo> </li></ul><ul><li><SignatureValue>MC0E~LE=</SignatureValue> </li></ul><ul><li><KeyInfo> </li></ul><ul><li><X509Data> </li></ul><ul><li><X509Certificate>MI...lVN</X509Certificate> </li></ul><ul><li></X509Data> </li></ul><ul><li></KeyInfo> </li></ul><ul><li><Manifest Id=&quot;References&quot;> </li></ul><ul><li><Reference URI=&quot;config.xml&quot;> </li></ul><ul><li><DigestMethod Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot; /> </li></ul><ul><li><DigestValue>j6...8nk=</DigestValue> </li></ul><ul><li></Reference> </li></ul><ul><li><Reference URI=&quot;index.html&quot;> </li></ul><ul><li><DigestMethod Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot;/> </li></ul><ul><li><DigestValue>lm...34=</DigestValue> </li></ul><ul><li></Reference> </li></ul><ul><li><Reference URI=&quot;pictures/picture1.gif&quot;> </li></ul><ul><li><DigestMethod Algorithm=&quot;http://www.w3.org/2000/09/xmldsig#sha1&quot;/> </li></ul><ul><li><DigestValue>pq...56=</DigestValue> </li></ul><ul><li></Reference> </li></ul><ul><li></Manifest> </li></ul><ul><li></Signature> </li></ul>05/27/09
  18. 18. <ul><li>BOOTSTRAPPING </li></ul><ul><li>Automatically finding the start folder and file: </li></ul><ul><ul><li>HTML, XML, SVG support (?) </li></ul></ul><ul><li>Internationalized context </li></ul><ul><ul><li>/en/,/en-au/ ,/en-us/ </li></ul></ul><ul><li>Automatically launching the start file and configuring the application </li></ul><ul><li>METADATA </li></ul><ul><li>config.xml </li></ul><ul><li>Metadata/Preferences </li></ul><ul><ul><li>Widget (id, version, width, height, start) </li></ul></ul><ul><ul><ul><li>title </li></ul></ul></ul><ul><ul><ul><li>Author (url, email) </li></ul></ul></ul><ul><ul><ul><li>description </li></ul></ul></ul><ul><ul><ul><li>License </li></ul></ul></ul><ul><li>Namespace  : </li></ul><ul><ul><li>http://www.w3.org/ns/widgets </li></ul></ul>05/27/09
  19. 19. <ul><li>Leverage JavaScript+XHR </li></ul><ul><li>Widget Object </li></ul><ul><ul><li>openURL(url); </li></ul></ul><ul><ul><li>preferenceForKey(key) </li></ul></ul><ul><ul><li>setPreferenceForKey(value, key) </li></ul></ul><ul><li>Extensions to window </li></ul><ul><ul><li>resizeTo, resizeBy, moveTo, moveBy </li></ul></ul><ul><li>Events </li></ul><ul><ul><li>state change, modal priorities </li></ul></ul><ul><li>Cross widget communication </li></ul><ul><ul><li>HTML 5’s model </li></ul></ul>05/27/09
  20. 20. <ul><li>SECURITY MODEL </li></ul><ul><li>No yet specified. </li></ul><ul><li>Should we lock it down or open it up? </li></ul><ul><li>Disk access? </li></ul><ul><li>Cross-domain requests? </li></ul><ul><li>Plugins? Flash? Java? Executables? </li></ul><ul><li>RENDERING </li></ul><ul><li>Handling transparency in irregularly shaped widgets </li></ul>05/27/09
  21. 21. <ul><li>[email_address] </li></ul><ul><li>Widget images (Microsoft Vista Sidebar) </li></ul><ul><li>References </li></ul><ul><li>[HTML5] </li></ul><ul><li>http://www.whatwg.org/specs/web-apps/current-work/ </li></ul><ul><li>[BusinessWeek] </li></ul><ul><li>Kharif, O. (2007, March 27). Widgets Gone Wireless. Retrieved 5 21, 2007: http://www.businessweek.com/technology/content/mar2007/tc20070327_532303.htm </li></ul><ul><li>[SAP] </li></ul><ul><li>https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/5598 </li></ul><ul><li>[Widget-reqs] </li></ul><ul><li>http://www.w3.org/TR/widget-reqs/ </li></ul><ul><li>[Widget-spec] </li></ul><ul><li>http://www.w3.org/TR/widget/ </li></ul>05/27/09
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×