Apache Shindig, a word meaning party, was originally started by Google in 2007 as a reference container for hosting OpenSocial compatible widgets in any website. Originally a port of Google's iGoogle gadget container, with Brian McCallister's PHP code, Apache Shindig threw off it's egg shell, and showed that Google was serious about making OpenSocial accessible to a larger number of sites. Since December 2007, Apache Shindig is now an Apache project.

Apache Shindig's Objectives

Apache Shindig's primary goal is to provide infrastructure for those wishing to host OpenSocial apps on their websites.

Apache Shindig Components

Server Side

The Java version of Apache Shindig have 3 major server side components:

  1. Persistent Data Loading Mechanism.
  2. Gadget Rendering Infrastructure.
  3. OpenSocial server side implementation.
Components of Apache Shindig Java Server Side container

Client Side

The Javascript features are:

Put It Together: OpenSocial Flow

The following is a typical flow to get a list of Friends.

Server Side Flow

  1. Call JsonRpcServlet.
  2. Get the appropriate handler.
  3. Get the JSON object from the DB.
  4. Populate responses into a list.
  5. Return to the client.

In the case of the REST use, the flow will be:

  1. Call DataServiceServlet.
  2. Get the appropriate converter.
  3. Get the handler.
  4. Get the JSON object from the DB.
  5. Return to the client.

Client Side Flow

  1. Create request object.
  2. Populate request parameters.
  3. Send the request.

OpenSocial APIs

Apache Shindig implements several OpenSocial APIs:

For more information on the OpenSocial APIs see the OpenSocial spec.