Your SlideShare is downloading. ×

Shindig in 2 hours

6,147

Published on

In 2 hours, we discuss about apache shindig and how to integrate shindig in eXo Platform production. The presentation lay-out in a simple way to understand about shindig, why and how using shindig as …

In 2 hours, we discuss about apache shindig and how to integrate shindig in eXo Platform production. The presentation lay-out in a simple way to understand about shindig, why and how using shindig as a part of developing product. Since shindig is a best implementation of OpenSocial then know about it and find the way to apply it is needed. In eXo Platform now, shindig is being used as Gadget Container/Server and the based Container to enable eXo Social fully support OpenSocial standard. Short but clear about shindig, hope it helps.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total Views
6,147
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
150
Comments
1
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SHINDIG IN 2 HOURS [email_address] Social team
  • 2.  
  • 3.
    • Apache Shindig :
    • - Introduction
    • - Architecture
    • Shindig integration (eXo)
    • Objective: 3W
    In 2 hours ...
  • 4. Shindig Introduction
  • 5.  
  • 6. Apache Shindig (Introduction)
  • 7. Apache Shindig (Introduction)
  • 8. Apache Shindig (Introduction)
  • 9. Apache Shindig (Introduction)
  • 10. Apache Shindig (Introduction)
  • 11. Apache Shindig (Introduction)
  • 12. Apache Shindig (Introduction)
  • 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.
    • Version Release OpenSocial
    • 3.0.0
    • 2.0.3 01/Dec/10
    • 2.0.2 30/Oct/10
    • 2.0.0 07/Sep/10
    • 2.0.0-RC2 10/Aug/10
    • 1.1-BETA5 23/Nov/09 0.9
    • 1.0.1 10/May/10 0.8
    • 1.0 19/Jun/09
    Apache Shindig (History) Nov 2007
  • 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
  • 18. Shindig Architecture
  • 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
  • 23. Shindig Architecture (Components)
  • 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
  • 28. Gadget Rendering in Flow
  • 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
  • 33. Social Data Server
  • 34. Shindig Integration
  • 35.
    • Utilize existing Open Source container code.
    • Wants Gadgets
    • Wants Social features : Profiles, Relationships, Activities
    Integration. Why?
  • 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)
  • 46. Re-Cap
  • 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
  • 50. Thank you!

×