Widgets

  • 5,122 views
Uploaded on

Workshop Slides from Web Direction South W3C SIG day.

Workshop Slides from Web Direction South W3C SIG day.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,122
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
303
Comments
0
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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