SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a A W3C Widget implementation: The Palette Portal

Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
GoogleTecTalks
 
Introduction to Google Web Toolkit
Introduction to Google Web ToolkitIntroduction to Google Web Toolkit
Introduction to Google Web Toolkit
Didier Girard
 
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
 

Similar a 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
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

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