SlideShare a Scribd company logo
1 of 20
Download to read offline
A W3C Widget implementation:
  The Palette Portal


         Jérôme Bogaerts, Alain Vagner
          {firstname.lastname}@tudor.lu
        W3C WAFWG meeting, 02-26-2009
                                      1
Context


®The Palette Project (EU FP6)
           ® Target:  Communities of Practice in the learning sector
           ® Lots of heterogeneous tools and services
              => need of integration


           ® Proposed    integration services
                  Unified search
              q

                  Unified authentication
              q

                  Unified storage
              q

                  ...
              q

                  Web Portal
              q




02/25/09
Palette Services Portal


® In Palette:
           ® Wide    range of services available
                  Web Applications, Desktop Applications, Web Services
              q




           ® Different   Communities of Practice with specific needs
                  Selection and adaptation needed in the proposed services
              q




® The Palette Services Portal provides:
           ® Central  access point to the services
           ® Customizable view
           ® Global view of the group activity
           ® Interaction between these services




02/25/09
Requirements


® Lightweight
               Easy and fast development of new web widgets
           ®


® Well-known technologies
               No need to learn a new environment
           ®


® Integration in the web architecture
               Rest web services, ROA
           ®


® Interoperable and open solution
               Not be tied to a specific vendor / proprietary platform
           ®




02/25/09
Widget specs study

® Evaluated specs
  ® Google gadgets, Netvibes Universal Widgets, Yahoo! Widgets,
  Microsoft Gadgets, Apple Dashboard Widgets, and Opera Widgets

® Common denominator
      Widget configuration section
  ®
           Meta-data, settings
       q


      Main Widget file
  ®
           Logic, layout and structure
       q




® Similar to MVC
    View: widget layout and structure
  ®
  ® Controller: programming logic of the widget
  ® Model: widget settings and user preferences




                                                                  5
Choice of the widget spec

® All widgets formats very similar
® Only one open standard matching the requirements
® Some extensions needed
  ®provided   by none of these specs


=> choice of the W3C Widget format spec as a basis




                                                     6
Implementation 1/2

® Moving target
           ® Freeze of the version used for implementing
           ® Last version of the portal aligned with the last   spec
® Partial implementation
           ® Implementation  in priority
              q Base of the spec

           ® Not implemented (packaging & API)
              q Window Modes
              q Updates
              q Features
              q Widget signature
              q I18n




02/25/09
Implementation 2/2

® Main problem
           ® Same origin policy on XHR
           ® W3C Widget spec oriented towards   desktop widgets
              -> out of scope
           ® Currently: XHR proxying
             => W3C Cross Origin Resource Sharing spec ?




02/25/09
Current implementation


® A prototype
               Tested in the project on 2 groups of users, real data
           ®
               Security, performance not really tested
           ®


® Open source
               Freely available on Google Code
           ®
               Free software: GPL v2
           ®
               Community: external contributions welcome
           ®
               Presentation & demos:
           ®
                    http://palette.tudor.lu/content/index.php?page=palette-services-portal
                q


               Sources:
           ®
                    http://code.google.com/p/mywiwall/source/checkout
                q


               Mailing List « Talk about widgets »
           ®
                    http://groups.google.com/talk-about-widgets
                q




02/25/09
Some extensions 1/2

® Innovation
     ® Extensions     as a mean to explore new use cases
® Clean separation of extensions
     ® Extensions spec in a specific document
     ® Manifest extensions in a separate namespace
® Compatibility
     ® widget     compliant with the W3C spec without our
           extensions should work
® No unnecessary extension
     ® what     can be done with the strict spec should not be
           extended by laziness




02/25/09
Some extensions 2/2

® Main extensions categories
     ® Preferences handling
     ® Remote connexions
     ® Widget authentication
     ® Inter-widget messaging
     ® Drag & drop between widgets




02/25/09
Extensions: Preferences


® Prefs declaration in the manifest file
               Used by the portal to serve a configuration form
           ®


® Optional prefs typing
               Basic types
           ®
               Enum
           ®




02/25/09
Extensions: Remote connexions


® Necessity to bypass same origin policy on XHR
               Simple proxy, Rest compatible
           ®


® Extension of the widget object
               Widget.httpGet .httpPost, .httpPut, .httpDelete, .httpGetJson
           ®
               Widget.setHttpCredentials
           ®
               Widget.setContentProxy
           ®


® Rewrite needed
               Homogenization with Tencompetences APIs
           ®
               Implementation of W3C Cross Origin Resource Sharing spec ?
           ®




02/25/09
Extensions: widget authentication


® Use case: log in to the portal and be logged in all widgets

® Trust between widgets and external web services

® Authentication on the Portal propagated to web services

® Encryption: 256bit AES

® Need to be coupled to a distributed identity system
  (OpenId)




02/25/09
Extensions: inter-widget messaging


® Several communications modes possible between
  widgets in a same container
               Unicast
           ®
               Multicast
           ®
               Broadcast
           ®
® Event type as URI
® No server-side event propagation




02/25/09
Extensions: Drag & drop


® Exploits the inter-widget messaging system
               Widget.bindWidgetToDropType()
           ®
               Widget.addDragData()
           ®




02/25/09
Demonstration




                17
Ongoing and future works


® Ongoing work
               Security
           ®
                    Google-caja ?
                q


               Compatibility with other widget formats
           ®
                    Google gadgets, Netvibes UWA
                q




® Future work
               I18n
           ®
               Multi-container messaging system
           ®
                    Comet
                q


               Manifest for groups of widgets
           ®
               RDA-based desktop widget platform
           ®
                    Mozilla Prism, Adobe Air ?
                q




02/25/09
Conclusion


® Possible to use the W3C widget spec for Web Widgets

® Inter-widget messaging, DnD
               Different from the Tencompetences solution
           ®
               Convergence possible
           ®
               Interesting functionalities
           ®
               Probably need to be standardized
           ®


® Palette extensions spec:
               http://palette.tudor.lu/files/portal/specifications/palette-widget-format-specification-january-2009.pdf
           ®



® Palette Services Portal Website
               http://palette.tudor.lu/content/index.php?page=palette-services-portal
           ®




02/25/09
Thanks for your attention!



                http://palette.tudor.lu
      Jérôme Bogaerts, Alain Vagner
       {firstname.lastname}@tudor.lu
                                     20

More Related Content

Similar to A W3C Widget implementation: The Palette Portal

Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudGenuitec, LLC
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soaumityalcinalp
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5Vinayak Tavargeri
 
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)Sam Vanhoutte
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudGoogleTecTalks
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesChakradhar Rao Jonagam
 
Copado - SoftClouds | Expertise
Copado - SoftClouds | ExpertiseCopado - SoftClouds | Expertise
Copado - SoftClouds | ExpertiseSoftClouds LLC
 
GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformDidier Girard
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudOleg Posyniak
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineKit Merker
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG PresentationDerrick Bowen
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web ToolkitDidier Girard
 
Brice Leblevennec @ FOWA Feb 07
Brice Leblevennec @ FOWA Feb 07Brice Leblevennec @ FOWA Feb 07
Brice Leblevennec @ FOWA Feb 07carsonsystems
 
2012-08-21 NRO GED Industry Day
2012-08-21 NRO GED Industry Day2012-08-21 NRO GED Industry Day
2012-08-21 NRO GED Industry DayShawn Wells
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...WSPDC & FEDSPUG
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Nedelcho Delchev
 

Similar to A W3C Widget implementation: The Palette Portal (20)

Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google Cloud
 
Enterprise Mashups With Soa
Enterprise Mashups With SoaEnterprise Mashups With Soa
Enterprise Mashups With Soa
 
Cloud Foundry Overview
Cloud Foundry OverviewCloud Foundry Overview
Cloud Foundry Overview
 
What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5What's new in Portal and WCM 8.5
What's new in Portal and WCM 8.5
 
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
AzureConf 2014 - Azure hybrid connections (Sam Vanhoutte)
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
Copado - SoftClouds | Expertise
Copado - SoftClouds | ExpertiseCopado - SoftClouds | Expertise
Copado - SoftClouds | Expertise
 
GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platform
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container Engine
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG Presentation
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
 
Brice Leblevennec @ FOWA Feb 07
Brice Leblevennec @ FOWA Feb 07Brice Leblevennec @ FOWA Feb 07
Brice Leblevennec @ FOWA Feb 07
 
2012-08-21 NRO GED Industry Day
2012-08-21 NRO GED Industry Day2012-08-21 NRO GED Industry Day
2012-08-21 NRO GED Industry Day
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
vRA7 What's New
vRA7 What's NewvRA7 What's New
vRA7 What's New
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

A W3C Widget implementation: The Palette Portal

  • 1. A W3C Widget implementation: The Palette Portal Jérôme Bogaerts, Alain Vagner {firstname.lastname}@tudor.lu W3C WAFWG meeting, 02-26-2009 1
  • 2. Context ®The Palette Project (EU FP6) ® Target: Communities of Practice in the learning sector ® Lots of heterogeneous tools and services => need of integration ® Proposed integration services Unified search q Unified authentication q Unified storage q ... q Web Portal q 02/25/09
  • 3. Palette Services Portal ® In Palette: ® Wide range of services available Web Applications, Desktop Applications, Web Services q ® Different Communities of Practice with specific needs Selection and adaptation needed in the proposed services q ® The Palette Services Portal provides: ® Central access point to the services ® Customizable view ® Global view of the group activity ® Interaction between these services 02/25/09
  • 4. Requirements ® Lightweight Easy and fast development of new web widgets ® ® Well-known technologies No need to learn a new environment ® ® Integration in the web architecture Rest web services, ROA ® ® Interoperable and open solution Not be tied to a specific vendor / proprietary platform ® 02/25/09
  • 5. Widget specs study ® Evaluated specs ® Google gadgets, Netvibes Universal Widgets, Yahoo! Widgets, Microsoft Gadgets, Apple Dashboard Widgets, and Opera Widgets ® Common denominator Widget configuration section ® Meta-data, settings q Main Widget file ® Logic, layout and structure q ® Similar to MVC View: widget layout and structure ® ® Controller: programming logic of the widget ® Model: widget settings and user preferences 5
  • 6. Choice of the widget spec ® All widgets formats very similar ® Only one open standard matching the requirements ® Some extensions needed ®provided by none of these specs => choice of the W3C Widget format spec as a basis 6
  • 7. Implementation 1/2 ® Moving target ® Freeze of the version used for implementing ® Last version of the portal aligned with the last spec ® Partial implementation ® Implementation in priority q Base of the spec ® Not implemented (packaging & API) q Window Modes q Updates q Features q Widget signature q I18n 02/25/09
  • 8. Implementation 2/2 ® Main problem ® Same origin policy on XHR ® W3C Widget spec oriented towards desktop widgets -> out of scope ® Currently: XHR proxying => W3C Cross Origin Resource Sharing spec ? 02/25/09
  • 9. Current implementation ® A prototype Tested in the project on 2 groups of users, real data ® Security, performance not really tested ® ® Open source Freely available on Google Code ® Free software: GPL v2 ® Community: external contributions welcome ® Presentation & demos: ® http://palette.tudor.lu/content/index.php?page=palette-services-portal q Sources: ® http://code.google.com/p/mywiwall/source/checkout q Mailing List « Talk about widgets » ® http://groups.google.com/talk-about-widgets q 02/25/09
  • 10. Some extensions 1/2 ® Innovation ® Extensions as a mean to explore new use cases ® Clean separation of extensions ® Extensions spec in a specific document ® Manifest extensions in a separate namespace ® Compatibility ® widget compliant with the W3C spec without our extensions should work ® No unnecessary extension ® what can be done with the strict spec should not be extended by laziness 02/25/09
  • 11. Some extensions 2/2 ® Main extensions categories ® Preferences handling ® Remote connexions ® Widget authentication ® Inter-widget messaging ® Drag & drop between widgets 02/25/09
  • 12. Extensions: Preferences ® Prefs declaration in the manifest file Used by the portal to serve a configuration form ® ® Optional prefs typing Basic types ® Enum ® 02/25/09
  • 13. Extensions: Remote connexions ® Necessity to bypass same origin policy on XHR Simple proxy, Rest compatible ® ® Extension of the widget object Widget.httpGet .httpPost, .httpPut, .httpDelete, .httpGetJson ® Widget.setHttpCredentials ® Widget.setContentProxy ® ® Rewrite needed Homogenization with Tencompetences APIs ® Implementation of W3C Cross Origin Resource Sharing spec ? ® 02/25/09
  • 14. Extensions: widget authentication ® Use case: log in to the portal and be logged in all widgets ® Trust between widgets and external web services ® Authentication on the Portal propagated to web services ® Encryption: 256bit AES ® Need to be coupled to a distributed identity system (OpenId) 02/25/09
  • 15. Extensions: inter-widget messaging ® Several communications modes possible between widgets in a same container Unicast ® Multicast ® Broadcast ® ® Event type as URI ® No server-side event propagation 02/25/09
  • 16. Extensions: Drag & drop ® Exploits the inter-widget messaging system Widget.bindWidgetToDropType() ® Widget.addDragData() ® 02/25/09
  • 18. Ongoing and future works ® Ongoing work Security ® Google-caja ? q Compatibility with other widget formats ® Google gadgets, Netvibes UWA q ® Future work I18n ® Multi-container messaging system ® Comet q Manifest for groups of widgets ® RDA-based desktop widget platform ® Mozilla Prism, Adobe Air ? q 02/25/09
  • 19. Conclusion ® Possible to use the W3C widget spec for Web Widgets ® Inter-widget messaging, DnD Different from the Tencompetences solution ® Convergence possible ® Interesting functionalities ® Probably need to be standardized ® ® Palette extensions spec: http://palette.tudor.lu/files/portal/specifications/palette-widget-format-specification-january-2009.pdf ® ® Palette Services Portal Website http://palette.tudor.lu/content/index.php?page=palette-services-portal ® 02/25/09
  • 20. Thanks for your attention! http://palette.tudor.lu Jérôme Bogaerts, Alain Vagner {firstname.lastname}@tudor.lu 20