SlideShare a Scribd company logo
1 of 50
SHINDIG IN 2 HOURS [email_address] Social team
 
[object Object],[object Object],[object Object],[object Object],[object Object],In 2 hours ...
Shindig Introduction
 
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig (Introduction)
Apache Shindig What is shindig? -  OpenSocial container ->start hosting  OpenSocial apps quickly by: + Providing the code to render gadgets + Open Social API, RESTful, RPC  protocol services -  Java  and  PHP Goal Lauch a new container in  under an hour's worth of work .
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Apache Shindig (History) Nov 2007
Apache Shindig (In Production)
Apache Shindig. Why Use? •  Strong Open Source community •  High quality production-ready code •  Used by: hi5, orkut, iGoogle, Netlog, Hyves … •  Synchronized with specification •  Language neutral (Java, PHP, ...)
Apache Shindig (Getting Started-Java) http://shindig.apache.org/getting-started.html - Check out code svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk - Build & Run (Jetty Server) mvn clean install mvn -Prun - Run (tomcat server) http://localhost:8080/container/sample1.html http://localhost:8080/social/rest/people/canonical/@self?format=xml
Shindig Architecture
•  Gadget Server Parses gadget XML, renders as HTML/JS/CSS •  OpenSocial Data Server -  Plugs into social graph data -  RESTful, RPC protocol services •  Downloaded JavaScript libraries Core gadgets, OpenSocial client JavaScript environment Shindig Architecture (Components)
Apache Shindig (APIs – Entry Points) - OS API renderGadget() req.send() req..requestCreateActivity() - REST API ..social/rest/people/... ..social/rest/activities/...
•  Shindig Client and Server Components •  Gadget Server •  Social Data Server Shindig Architecture
•  Shindig Client and Server Components •  Gadget Server •  Social Data Server Shindig Architecture
Shindig Architecture (Components)
Shindig Architecture (Server Comps) - _Servlets are entry points to take calls from client side.
Shindig Architecture (How It Works?) Req TYPE FETCH_PEOPLE  : Get Person data FETCH_PERSON_APP_DATA  : Get the data attributes for a person UPDATE_PERSON_APP_DATA  : update attributes of a person FETCH_ACTIVITIES  : Get List of activities for a Particular Person CREATE_ACTIVITY  : create Activity associated with a Person
•  Shindig Client and Server Components •  Gadget Server •  Social Data Server Shindig Architecture
Gadget Server -  Gadget Container JavaScript : JavaScript for general gadget functionality. -  Gadget Rendering Server : to  render  the gadget XML into HTML. Gadget Gadget Server Social Data Server HTML
Gadget Rendering in Flow
•  Shindig Client and Server Components •  Gadget Server •  Social Data Server Shindig Architecture
Social Data Server People Relationships Activities
Social Data Server -  OpenSocial Container JavaScript : JavaScript environment that  provides  OpenSocial specific functionality  (Profiles, Relationships, Activities). -  OpenSocial Data Server : with  extension points  so others can  connect it to  their own backends . Gadget Gadget Server Social Data Server JSON
Social Data Server http://rollerweblogger.org/roller/entry/shindig_java_internals_diagram_updated
Social Data Server
Shindig Integration
[object Object],[object Object],[object Object],Integration. Why?
Integration. How? - Shindig  Implementation : Java, PHP … - Gadget Server, Social Data Server
Integration Render gadget OpenSocial Container (Social Data Server)
•  Customize  sample comtainer (Gadget Container) •  Implement Interfaces – People, Friends, Activities (Social  Server) •  Write Guice Modules (binding) •  Add mapping information to web.xml (servlets, filters, guices-  modules … ) •  Add more SecurityTokenDecoder, etc. (Enabling OAuth  support) Integration (SUMMARIZE)
•  Customize  sample comtainer (Gadget Container) •  Implement Interfaces – People, Friends, Activities (Social  Server) •  Write Guice Modules (binding) •  Add mapping information to web.xml (servlets, filters, guices-  modules … ) •  Add more SecurityTokenDecoder, etc. (Enabling OAuth  support) Integration
•  Customize  sample comtainer (Gadget Container) •  Implement Interfaces – People, Friends, Activities (Social  Server) •  Write Guice Modules (binding) •  Add mapping information to web.xml (servlets, filters, guices-  modules … ) •  Add more SecurityTokenDecoder, etc. (Enabling OAuth  support) Integration
-  People Service public  class  ExoPeopleService   extends  ExoService  implements  PersonService, AppDataService { public  Future<RestfulCollection<Person>> getPeople(...) {} public  Future<Person> getPerson(...) {} } -  Activitiy Service public  class ExoActivityService  extends  ExoService  implements  ActivityService { public  Future<RestfulCollection<Activity>>  getActivities (...) {} public  Future<Void>  createActivity (...) {} } Copyright 2010 eXo Platform SAS Integration (Implement Interfaces)
•  Customize  sample comtainer (Gadget Container) •  Implement Interfaces – People, Friends, Activities (Social  Server) •  Write Guice Modules (binding) •  Add mapping information to web.xml (servlets, filters, guices-  modules … ) •  Add more SecurityTokenDecoder, etc. (Enabling OAuth  support) Integration
public  class ExoSocialApiGuiceModule  extends  AbstractModule { @Override protected void  configure() { bind(PersonService. class ).to(ExoPeopleService. class ); bind(AppDataService. class ).to(ExoPeopleService. class ); bind(ActivityService. class ).to(ExoActivityService. class ); bind(Person. class ).to(ExoPersonImpl. class ); } } Copyright 2010 eXo Platform SAS Integreation (Guice Module)
•  Customize  sample comtainer (Gadget Container) •  Implement Interfaces – People, Friends, Activities (Social  Server) •  Write Guice Modules (binding) •  Add mapping information to web.xml  (servlets, filters, guices-  modules … ) •  Add more SecurityTokenDecoder, etc. (Enabling OAuth  support) Integration
webapp/opensocial/src/main/webapp/WEB-INF/web.xml <context-param> <param-name>guice-modules</param-name> <param-value> org.exoplatform.social.opensocial.ExoSocialApiGuiceModule </param-value> </context-param> Copyright 2010 eXo Platform SAS Integration (Config in Web.xml)
Re-Cap
- OpenSource implementation of OpenSocial & Gadgets standard (Java, PHP) - Client and Server side (Container, REST, OpenSocial APIs …) - Java version: Servlet stack - Multiple entry points for various kinds of calls (servlets) - Others: Image Resizer, Content Rewriter/Compressor ... Copyright 2010 eXo Platform SAS Re-Cap
Copyright 2010 eXo Platform SAS Why not?
Home Page:  http://shindig.apache.org/ Downloads:  http://shindig.apache.org/download/index.html Mailing Lists:  http://shindig.apache.org/mail-lists.html Source Code:  http://svn.apache.org/repos/asf/shindig/ Issue Tracking:  https://issues.apache.org/jira/browse/SHINDIG Wiki:  http://cwiki.apache.org/confluence/display/SHINDIG/ Copyright 2010 eXo Platform SAS Resources
Thank you!

More Related Content

What's hot

Building an Angular 2 App
Building an Angular 2 AppBuilding an Angular 2 App
Building an Angular 2 AppFelix Gessert
 
FIWARE Developers Week_BootcampWeBUI_presentation2
FIWARE Developers Week_BootcampWeBUI_presentation2FIWARE Developers Week_BootcampWeBUI_presentation2
FIWARE Developers Week_BootcampWeBUI_presentation2FIWARE
 
Introduction to Shield and kibana
Introduction to Shield and kibanaIntroduction to Shield and kibana
Introduction to Shield and kibanaKnoldus Inc.
 
GraphTour - Utilizing Powerful Extensions for Analytics & Operations
GraphTour - Utilizing Powerful Extensions for Analytics & OperationsGraphTour - Utilizing Powerful Extensions for Analytics & Operations
GraphTour - Utilizing Powerful Extensions for Analytics & OperationsNeo4j
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...mfrancis
 
Building Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEisBuilding Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEisFIWARE
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoDavid Lapsley
 
Swift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangSwift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangHui Cheng
 
Entity framework 6
Entity framework 6Entity framework 6
Entity framework 6Ken Tucker
 
Getting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverGetting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverDataStax Academy
 
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All ObjectsEddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All ObjectsJeff Prestes
 
Google Web Toolkitのすすめ
Google Web ToolkitのすすめGoogle Web Toolkitのすすめ
Google Web ToolkitのすすめKaisei Hamamoto
 
OpenStack Neutron Reverse Engineered
OpenStack Neutron Reverse EngineeredOpenStack Neutron Reverse Engineered
OpenStack Neutron Reverse Engineeredopenstackindia
 
Introduction of Blockchain @ Airtel Payment Bank
Introduction of Blockchain @ Airtel Payment BankIntroduction of Blockchain @ Airtel Payment Bank
Introduction of Blockchain @ Airtel Payment BankRajesh Kumar
 
2 years without Java. Kotlin only
2 years without Java. Kotlin only2 years without Java. Kotlin only
2 years without Java. Kotlin onlyKirill Rozov
 

What's hot (20)

Keystone Federation
Keystone Federation Keystone Federation
Keystone Federation
 
Building an Angular 2 App
Building an Angular 2 AppBuilding an Angular 2 App
Building an Angular 2 App
 
FIWARE Developers Week_BootcampWeBUI_presentation2
FIWARE Developers Week_BootcampWeBUI_presentation2FIWARE Developers Week_BootcampWeBUI_presentation2
FIWARE Developers Week_BootcampWeBUI_presentation2
 
Introduction to Shield and kibana
Introduction to Shield and kibanaIntroduction to Shield and kibana
Introduction to Shield and kibana
 
GraphTour - Utilizing Powerful Extensions for Analytics & Operations
GraphTour - Utilizing Powerful Extensions for Analytics & OperationsGraphTour - Utilizing Powerful Extensions for Analytics & Operations
GraphTour - Utilizing Powerful Extensions for Analytics & Operations
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
 
Building Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEisBuilding Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEis
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
 
Log analytics with ELK stack
Log analytics with ELK stackLog analytics with ELK stack
Log analytics with ELK stack
 
Swift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangSwift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex Yang
 
Entity framework 6
Entity framework 6Entity framework 6
Entity framework 6
 
Getting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net DriverGetting Started with Datatsax .Net Driver
Getting Started with Datatsax .Net Driver
 
Eddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All ObjectsEddystone Beacons - Physical Web - Giving a URL to All Objects
Eddystone Beacons - Physical Web - Giving a URL to All Objects
 
Google Web Toolkitのすすめ
Google Web ToolkitのすすめGoogle Web Toolkitのすすめ
Google Web Toolkitのすすめ
 
Geo servershell
Geo servershellGeo servershell
Geo servershell
 
OpenStack Neutron Reverse Engineered
OpenStack Neutron Reverse EngineeredOpenStack Neutron Reverse Engineered
OpenStack Neutron Reverse Engineered
 
Introduction of Blockchain @ Airtel Payment Bank
Introduction of Blockchain @ Airtel Payment BankIntroduction of Blockchain @ Airtel Payment Bank
Introduction of Blockchain @ Airtel Payment Bank
 
Vanilla JS*
Vanilla JS*Vanilla JS*
Vanilla JS*
 
2 years without Java. Kotlin only
2 years without Java. Kotlin only2 years without Java. Kotlin only
2 years without Java. Kotlin only
 
Wayin devops-2013
Wayin devops-2013Wayin devops-2013
Wayin devops-2013
 

Similar to Shindig in 2 hours

Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchMongoDB
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Nuwan Bandara
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overviewmarpierc
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8David Chou
 
Web_of_Things_2013
Web_of_Things_2013Web_of_Things_2013
Web_of_Things_2013Max Kleiner
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeNokiaAppForum
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsSPC Adriatics
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングscalaconfjp
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Ngoc Dao
 
Mastering the IoT With JavaScript and C++ - Günter Obiltschnig
Mastering the IoT With JavaScript and C++ - Günter ObiltschnigMastering the IoT With JavaScript and C++ - Günter Obiltschnig
Mastering the IoT With JavaScript and C++ - Günter ObiltschnigWithTheBest
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationChris Schalk
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Startedguest1af57e
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaSAppsembler
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWAREFIWARE
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioGünter Obiltschnig
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE
 

Similar to Shindig in 2 hours (20)

Faites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB StitchFaites évoluer votre accès aux données avec MongoDB Stitch
Faites évoluer votre accès aux données avec MongoDB Stitch
 
Shindig Apachecon Asia 09
Shindig Apachecon Asia 09Shindig Apachecon Asia 09
Shindig Apachecon Asia 09
 
OGCE Project Overview
OGCE Project OverviewOGCE Project Overview
OGCE Project Overview
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8
 
Web_of_Things_2013
Web_of_Things_2013Web_of_Things_2013
Web_of_Things_2013
 
Miha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web RuntimeMiha Lesjak Mobilizing The Web with Web Runtime
Miha Lesjak Mobilizing The Web with Web Runtime
 
Made for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile AppsMade for Mobile - Let Office 365 Power Your Mobile Apps
Made for Mobile - Let Office 365 Power Your Mobile Apps
 
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディングXitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
Xitrum Web Framework Live Coding Demos / Xitrum Web Framework ライブコーディング
 
Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014Xitrum @ Scala Matsuri Tokyo 2014
Xitrum @ Scala Matsuri Tokyo 2014
 
Mastering the IoT With JavaScript and C++ - Günter Obiltschnig
Mastering the IoT With JavaScript and C++ - Günter ObiltschnigMastering the IoT With JavaScript and C++ - Günter Obiltschnig
Mastering the IoT With JavaScript and C++ - Günter Obiltschnig
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial Presentation
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
Html5
Html5Html5
Html5
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
 

Recently uploaded

Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoUXDXConf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 

Recently uploaded (20)

Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 

Shindig in 2 hours

  • 1. SHINDIG IN 2 HOURS [email_address] Social team
  • 2.  
  • 3.
  • 5.  
  • 13. Apache Shindig What is shindig? - OpenSocial container ->start hosting OpenSocial apps quickly by: + Providing the code to render gadgets + Open Social API, RESTful, RPC protocol services - Java and PHP Goal Lauch a new container in under an hour's worth of work .
  • 14.
  • 15. Apache Shindig (In Production)
  • 16. Apache Shindig. Why Use? • Strong Open Source community • High quality production-ready code • Used by: hi5, orkut, iGoogle, Netlog, Hyves … • Synchronized with specification • Language neutral (Java, PHP, ...)
  • 17. Apache Shindig (Getting Started-Java) http://shindig.apache.org/getting-started.html - Check out code svn co http://svn.apache.org/repos/asf/incubator/shindig/trunk - Build & Run (Jetty Server) mvn clean install mvn -Prun - Run (tomcat server) http://localhost:8080/container/sample1.html http://localhost:8080/social/rest/people/canonical/@self?format=xml
  • 19. • Gadget Server Parses gadget XML, renders as HTML/JS/CSS • OpenSocial Data Server - Plugs into social graph data - RESTful, RPC protocol services • Downloaded JavaScript libraries Core gadgets, OpenSocial client JavaScript environment Shindig Architecture (Components)
  • 20. Apache Shindig (APIs – Entry Points) - OS API renderGadget() req.send() req..requestCreateActivity() - REST API ..social/rest/people/... ..social/rest/activities/...
  • 21. • Shindig Client and Server Components • Gadget Server • Social Data Server Shindig Architecture
  • 22. • Shindig Client and Server Components • Gadget Server • Social Data Server Shindig Architecture
  • 24. Shindig Architecture (Server Comps) - _Servlets are entry points to take calls from client side.
  • 25. Shindig Architecture (How It Works?) Req TYPE FETCH_PEOPLE : Get Person data FETCH_PERSON_APP_DATA : Get the data attributes for a person UPDATE_PERSON_APP_DATA : update attributes of a person FETCH_ACTIVITIES : Get List of activities for a Particular Person CREATE_ACTIVITY : create Activity associated with a Person
  • 26. • Shindig Client and Server Components • Gadget Server • Social Data Server Shindig Architecture
  • 27. Gadget Server - Gadget Container JavaScript : JavaScript for general gadget functionality. - Gadget Rendering Server : to render the gadget XML into HTML. Gadget Gadget Server Social Data Server HTML
  • 29. • Shindig Client and Server Components • Gadget Server • Social Data Server Shindig Architecture
  • 30. Social Data Server People Relationships Activities
  • 31. Social Data Server - OpenSocial Container JavaScript : JavaScript environment that provides OpenSocial specific functionality (Profiles, Relationships, Activities). - OpenSocial Data Server : with extension points so others can connect it to their own backends . Gadget Gadget Server Social Data Server JSON
  • 32. Social Data Server http://rollerweblogger.org/roller/entry/shindig_java_internals_diagram_updated
  • 35.
  • 36. Integration. How? - Shindig Implementation : Java, PHP … - Gadget Server, Social Data Server
  • 37. Integration Render gadget OpenSocial Container (Social Data Server)
  • 38. • Customize sample comtainer (Gadget Container) • Implement Interfaces – People, Friends, Activities (Social Server) • Write Guice Modules (binding) • Add mapping information to web.xml (servlets, filters, guices- modules … ) • Add more SecurityTokenDecoder, etc. (Enabling OAuth support) Integration (SUMMARIZE)
  • 39. • Customize sample comtainer (Gadget Container) • Implement Interfaces – People, Friends, Activities (Social Server) • Write Guice Modules (binding) • Add mapping information to web.xml (servlets, filters, guices- modules … ) • Add more SecurityTokenDecoder, etc. (Enabling OAuth support) Integration
  • 40. • Customize sample comtainer (Gadget Container) • Implement Interfaces – People, Friends, Activities (Social Server) • Write Guice Modules (binding) • Add mapping information to web.xml (servlets, filters, guices- modules … ) • Add more SecurityTokenDecoder, etc. (Enabling OAuth support) Integration
  • 41. - People Service public class ExoPeopleService extends ExoService implements PersonService, AppDataService { public Future<RestfulCollection<Person>> getPeople(...) {} public Future<Person> getPerson(...) {} } - Activitiy Service public class ExoActivityService extends ExoService implements ActivityService { public Future<RestfulCollection<Activity>> getActivities (...) {} public Future<Void> createActivity (...) {} } Copyright 2010 eXo Platform SAS Integration (Implement Interfaces)
  • 42. • Customize sample comtainer (Gadget Container) • Implement Interfaces – People, Friends, Activities (Social Server) • Write Guice Modules (binding) • Add mapping information to web.xml (servlets, filters, guices- modules … ) • Add more SecurityTokenDecoder, etc. (Enabling OAuth support) Integration
  • 43. public class ExoSocialApiGuiceModule extends AbstractModule { @Override protected void configure() { bind(PersonService. class ).to(ExoPeopleService. class ); bind(AppDataService. class ).to(ExoPeopleService. class ); bind(ActivityService. class ).to(ExoActivityService. class ); bind(Person. class ).to(ExoPersonImpl. class ); } } Copyright 2010 eXo Platform SAS Integreation (Guice Module)
  • 44. • Customize sample comtainer (Gadget Container) • Implement Interfaces – People, Friends, Activities (Social Server) • Write Guice Modules (binding) • Add mapping information to web.xml (servlets, filters, guices- modules … ) • Add more SecurityTokenDecoder, etc. (Enabling OAuth support) Integration
  • 45. webapp/opensocial/src/main/webapp/WEB-INF/web.xml <context-param> <param-name>guice-modules</param-name> <param-value> org.exoplatform.social.opensocial.ExoSocialApiGuiceModule </param-value> </context-param> Copyright 2010 eXo Platform SAS Integration (Config in Web.xml)
  • 47. - OpenSource implementation of OpenSocial & Gadgets standard (Java, PHP) - Client and Server side (Container, REST, OpenSocial APIs …) - Java version: Servlet stack - Multiple entry points for various kinds of calls (servlets) - Others: Image Resizer, Content Rewriter/Compressor ... Copyright 2010 eXo Platform SAS Re-Cap
  • 48. Copyright 2010 eXo Platform SAS Why not?
  • 49. Home Page: http://shindig.apache.org/ Downloads: http://shindig.apache.org/download/index.html Mailing Lists: http://shindig.apache.org/mail-lists.html Source Code: http://svn.apache.org/repos/asf/shindig/ Issue Tracking: https://issues.apache.org/jira/browse/SHINDIG Wiki: http://cwiki.apache.org/confluence/display/SHINDIG/ Copyright 2010 eXo Platform SAS Resources