SlideShare una empresa de Scribd logo
1 de 21
OpenSocial Gadgets
& Eclipse
Benjamin Cabé
<bcabe@sierrawireless.com
>
What is OpenSocial?
• Open Specification
– 1.0 version released in March
– Many companies involved
• Lightweight web components
• Modularity in mind
• Social features
Write once, run anywhere 
• Many social networking sites are OpenSocial
compatible
– MySpace, Hi5, LinkedIn, iGoogle, Orkut…
• Eclipse
– e4 team working on an OpenSocial
implementation too
Enterprise usage
• Many enterprise-oriented gadgets
– Calendar, To-Do List, Map, Doodle, …
– Atlassian provides gadgets for JIRA metrics
• Bringing OpenSocial support into an existing
application is not that hard
– Existing web apps: Apache Shindig
– Rich client apps: e4!
• “Social Enterprise”
Social, you said?
• Many APIs to crawl user’s social network
• Data model
– Person (friends, groups, tastes, …)
• AppData for each gadget
– Activities (music being listened, …)
– Messages, Albums, …
Gadget/module definition
• XML file
– Metadata
– Dependencies
– Application implementation
• In-line HTML / CSS / JavaScript
• or URL to external definition (a la IFRAME)
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Hello, world!«
author="Benjamin Cabé">
<Require feature="opensocial-0.8"/>
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript">
function init() {
$("handler").innerHTML = "Hello, world."
;
}
gadgets.util.registerOnLoadHandler(function() {
init();
});
</script>
<div id="handler"></div>
]]>
</Content>
</Module>
Core Gadget API
• gadgets.flash
• gadgets.io
• gadgets.json
• gadgets.MiniMess
age
• gadgets.Prefs
• gadgets.pubsub
• gadgets.rpc
• gadgets.skins
• gadgets.Tab
• gadgets.TabSet
• gadgets.util
• gadgets.views
• gadgets.window
The simple way…
• Stand-alone HTML/JS/CSS in your preferred
editor
• Worry about gadget.xml later
– Debug made easier
• Wrap in gadget.xml at the very end
– “url” content-type => IFRAME
OpenSocial
Development Environment
• Built-in Shindig server for local testing
• Forms editor for the gadget definition
• Social data handling (embedded database)
• Testing
– Easy iGoogle deployment
– Performance testing with Firefox
Why?
• Deploy existing gadgets into views
• … and develop new ones leveraging Eclipse
services
– Only HTML, CSS & Javascript
– Not mandatory to know the Eclipse API
– OpenSocial spec fits quite well in Eclipse
architecture
– De-facto self-hosting
Collaborative development
• Make e4 « social-aware »
– Communicate with co-workers
– Share information (project, code snippets) with
your social network
– Share gadgets themselves (« Coworker John
suggests you to add the XYZ gadget »)
Implementation overview
• HTML rendering: SWT Browser widget
• Since 3.5, the Browser is on steroids:
– Browser#evaluate(String) allows
evaluation of arbitrary JavaScript from your Java
code
– BrowserFunction allows to have Java
implementation for JavaScript functions
Implementation overview
• Modules express dependencies towards features
– Extension point to register new OpenSocial features in
the container
– OSGi Resolver to solve constraints expressed by a
Module
• Available features in the container: mapped to Bundles
• Features required by a module: Require-Bundle
directives
• Eclipse specific APIs exposed through
the e4 OpenSocial feature
Plan
• Create bridges to more Eclipse Application
Services
• Merge some of recent investigations made in
http://github.com/kartben
• ATF integration (JS/CSS debugging support)
• Social REST APIs directly exposed by ECF
Questions?
Further reading
• http://www.opensocial.org
• http://wiki.opensocial.org/index.php?title=JavaScript_API_Reference
• http://shindig.apache.org/
• https://sites.google.com/site/opensocialdevenv/
• http://borisoneclipse.blogspot.com/2009/11/opensocial-igoogle-gadgets-in-eclipse.html

Más contenido relacionado

La actualidad más candente

EDS selection & implementation @ CCC
EDS selection & implementation @ CCCEDS selection & implementation @ CCC
EDS selection & implementation @ CCC
Molly Beestrum
 
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn BoogaardFlex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Esri Nederland
 
Anatomy and Architecture of a WordPress Theme
Anatomy and Architecture of a WordPress ThemeAnatomy and Architecture of a WordPress Theme
Anatomy and Architecture of a WordPress Theme
Julie Kuehl
 

La actualidad más candente (20)

Manage your external libraries with CocoaPods
Manage your external libraries with CocoaPodsManage your external libraries with CocoaPods
Manage your external libraries with CocoaPods
 
Mainframe, the fast PHP framework
Mainframe, the fast PHP frameworkMainframe, the fast PHP framework
Mainframe, the fast PHP framework
 
Jive, dropbox and other integrations
Jive, dropbox and other integrationsJive, dropbox and other integrations
Jive, dropbox and other integrations
 
LTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS IntegrationLTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS Integration
 
Our First ADF Experience
Our First ADF ExperienceOur First ADF Experience
Our First ADF Experience
 
EDS selection & implementation @ CCC
EDS selection & implementation @ CCCEDS selection & implementation @ CCC
EDS selection & implementation @ CCC
 
Solr
SolrSolr
Solr
 
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek MastykarzO365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
O365Con18 - SharePoint Framework for Administrators - Waldek Mastykarz
 
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Alfresco DevCon 2019 Performance Tools of the Trade
Alfresco DevCon 2019   Performance Tools of the TradeAlfresco DevCon 2019   Performance Tools of the Trade
Alfresco DevCon 2019 Performance Tools of the Trade
 
PLAT-5 Jive, Dropbox & Other Integrations
PLAT-5 Jive, Dropbox & Other IntegrationsPLAT-5 Jive, Dropbox & Other Integrations
PLAT-5 Jive, Dropbox & Other Integrations
 
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn BoogaardFlex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
Flex en silverlight viewer configuratie, Esri, Mark Jagt, Boudewijn Boogaard
 
Web APIs
Web APIsWeb APIs
Web APIs
 
eMusic: WordPress in the Enterprise
eMusic: WordPress in the EnterpriseeMusic: WordPress in the Enterprise
eMusic: WordPress in the Enterprise
 
Using Features
Using FeaturesUsing Features
Using Features
 
Anatomy and Architecture of a WordPress Theme
Anatomy and Architecture of a WordPress ThemeAnatomy and Architecture of a WordPress Theme
Anatomy and Architecture of a WordPress Theme
 
Lokalise
LokaliseLokalise
Lokalise
 
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/DjangoScot Hacker: Building a Killer Bucketlist Site with Python/Django
Scot Hacker: Building a Killer Bucketlist Site with Python/Django
 

Similar a OpenSocial gadgets at Eclipse

Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3
Lars Vogel
 

Similar a OpenSocial gadgets at Eclipse (20)

Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3Eclipse E4 Open Social Gadgetsvrs3
Eclipse E4 Open Social Gadgetsvrs3
 
Android Training
Android TrainingAndroid Training
Android Training
 
Android Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptxAndroid Application Development GDSC DCE Darbhanga.pptx
Android Application Development GDSC DCE Darbhanga.pptx
 
Developing for the Atlassian Ecosystem
Developing for the Atlassian EcosystemDeveloping for the Atlassian Ecosystem
Developing for the Atlassian Ecosystem
 
Open social & cmis oasistc-20100712
Open social & cmis   oasistc-20100712Open social & cmis   oasistc-20100712
Open social & cmis oasistc-20100712
 
Android app development
Android app developmentAndroid app development
Android app development
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android Application Development (2).ppt
Android Application Development (2).pptAndroid Application Development (2).ppt
Android Application Development (2).ppt
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android application development
Android application developmentAndroid application development
Android application development
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android application development
Android application developmentAndroid application development
Android application development
 
Android Application Development.ppt
Android Application Development.pptAndroid Application Development.ppt
Android Application Development.ppt
 
Android Application Development.pdf
Android Application Development.pdfAndroid Application Development.pdf
Android Application Development.pdf
 
Android application development
Android application developmentAndroid application development
Android application development
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Android application development
Android application developmentAndroid application development
Android application development
 

Más de Benjamin Cabé

Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
Benjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
Benjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
Benjamin Cabé
 

Más de Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 

OpenSocial gadgets at Eclipse

  • 1. OpenSocial Gadgets & Eclipse Benjamin Cabé <bcabe@sierrawireless.com >
  • 2.
  • 3. What is OpenSocial? • Open Specification – 1.0 version released in March – Many companies involved • Lightweight web components • Modularity in mind • Social features
  • 4. Write once, run anywhere  • Many social networking sites are OpenSocial compatible – MySpace, Hi5, LinkedIn, iGoogle, Orkut… • Eclipse – e4 team working on an OpenSocial implementation too
  • 5. Enterprise usage • Many enterprise-oriented gadgets – Calendar, To-Do List, Map, Doodle, … – Atlassian provides gadgets for JIRA metrics • Bringing OpenSocial support into an existing application is not that hard – Existing web apps: Apache Shindig – Rich client apps: e4! • “Social Enterprise”
  • 6. Social, you said? • Many APIs to crawl user’s social network • Data model – Person (friends, groups, tastes, …) • AppData for each gadget – Activities (music being listened, …) – Messages, Albums, …
  • 7.
  • 8. Gadget/module definition • XML file – Metadata – Dependencies – Application implementation • In-line HTML / CSS / JavaScript • or URL to external definition (a la IFRAME)
  • 9. <?xml version="1.0" encoding="UTF-8"?> <Module> <ModulePrefs title="Hello, world!« author="Benjamin Cabé"> <Require feature="opensocial-0.8"/> </ModulePrefs> <Content type="html"> <![CDATA[ <script type="text/javascript"> function init() { $("handler").innerHTML = "Hello, world." ; } gadgets.util.registerOnLoadHandler(function() { init(); }); </script> <div id="handler"></div> ]]> </Content> </Module>
  • 10. Core Gadget API • gadgets.flash • gadgets.io • gadgets.json • gadgets.MiniMess age • gadgets.Prefs • gadgets.pubsub • gadgets.rpc • gadgets.skins • gadgets.Tab • gadgets.TabSet • gadgets.util • gadgets.views • gadgets.window
  • 11. The simple way… • Stand-alone HTML/JS/CSS in your preferred editor • Worry about gadget.xml later – Debug made easier • Wrap in gadget.xml at the very end – “url” content-type => IFRAME
  • 12. OpenSocial Development Environment • Built-in Shindig server for local testing • Forms editor for the gadget definition • Social data handling (embedded database) • Testing – Easy iGoogle deployment – Performance testing with Firefox
  • 13.
  • 14. Why? • Deploy existing gadgets into views • … and develop new ones leveraging Eclipse services – Only HTML, CSS & Javascript – Not mandatory to know the Eclipse API – OpenSocial spec fits quite well in Eclipse architecture – De-facto self-hosting
  • 15. Collaborative development • Make e4 « social-aware » – Communicate with co-workers – Share information (project, code snippets) with your social network – Share gadgets themselves (« Coworker John suggests you to add the XYZ gadget »)
  • 16.
  • 17. Implementation overview • HTML rendering: SWT Browser widget • Since 3.5, the Browser is on steroids: – Browser#evaluate(String) allows evaluation of arbitrary JavaScript from your Java code – BrowserFunction allows to have Java implementation for JavaScript functions
  • 18. Implementation overview • Modules express dependencies towards features – Extension point to register new OpenSocial features in the container – OSGi Resolver to solve constraints expressed by a Module • Available features in the container: mapped to Bundles • Features required by a module: Require-Bundle directives • Eclipse specific APIs exposed through the e4 OpenSocial feature
  • 19. Plan • Create bridges to more Eclipse Application Services • Merge some of recent investigations made in http://github.com/kartben • ATF integration (JS/CSS debugging support) • Social REST APIs directly exposed by ECF
  • 21. Further reading • http://www.opensocial.org • http://wiki.opensocial.org/index.php?title=JavaScript_API_Reference • http://shindig.apache.org/ • https://sites.google.com/site/opensocialdevenv/ • http://borisoneclipse.blogspot.com/2009/11/opensocial-igoogle-gadgets-in-eclipse.html