This document discusses integrating the Apache Shindig open-source social container with eXo Platform. It provides an overview of Shindig's architecture and components, describes how to customize Shindig by implementing interfaces for people, activities, and writing Guice modules, and configuring servlets and filters in the web.xml file. The objective is to launch a new Shindig container within eXo Platform in under an hour.
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 .
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
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
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)
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)