Inter-gadget Event Common Namespace Proposal

Proposal draft for OpenSocial V2.0 specification

Background

With the inclusion of inter-gadget communication in the OpenSocial 1.1 Core Gadget Specification, the namespace org.opensocial.*  was reserved to allow for standards based event types to be defined in the specification.  As vendors start to leverage this capability to build composite applications there are use cases where internal container level applications can interact with third-party gadgets .  The goal with this proposal is to establish a base level set of events that enable a broader ecosystem for interoperability between gadgets and containers for mashup related scenarios.

Example Namespaces
Social Data 

Namespace

Object Type

Description

org.opensocial.social.person 

TBD

event namespace to publish/subscribe for person objects

org.opensocial.social.mediaitem

TBD

event namespace to publish/subscribe for media objects

Container Data 

Namespace

Object Type

Description

org.opensocial.container.selecteditem

TBD

Publish a shared item with the container

...

 

 

Note:  Some of these namespaces may overlap with capabilities in the other container proposals.  We'll need to evaluate which items fall in a standard API vs. common namespace.

Use Cases
Container/Gadget to Gadget Communication  (TODO:  work with community to establish use cases)

A standard dashboard container provides a number of gadgets and UI components.  A third-party application 'Content Management (CMIS)' gadget is installed into the container.  This gadget supports a number of capabilities that enable it to display, act on and filter user related content.  This gadget developer would also like to be able to leverage events to quickly filter data based on other items clicked in container/gadgets.  For example:

  • A user may have a gadget or container level ui component that displays a list of friends/contacts.  When the user clicks on one of the entries an org.opensocial.social.person may be published to the hub.  The gadget could then filter the content based on the person object information.
  • In another scenario, you could have a list of media items in one gadget.  When you click on the media item an org.opensocial.social.mediaitem could be published to the hub.  The receiving gadget could then retrieve the specific file and allow the end user to act on that content.
Gadget to Container Communication (TODO:  Need to work in the community to establish use cases):

 A gadget wants to share some data with the container to enable enhanced capability.  This could support a number of scenarios allowing selected items to be published to the containing page. 

org.opensocial.container.selecteditem:  Publishes a select item to the container to be used for a common function.

Note:  This may support other proposals such as contribution for open search items, etc.