Activity Stream Integration
An activity stream, or feed, is an event notification mechanism to which users subscribe. These events represent changes in social graphs and are displayed to users who are allowed to see it. It is one of the most supported and useful features on social platforms. In contrast to email, users have more control over which activities they follow. Also, the visibility of information is not restricted to an individual's inbox. This results in more relevant and timely distribution of information.
The API for integrating with activity streams depends on container's implementation, but REST services that return responses in XML, JSON and ATOM formats are common. Most support different activity types. Some implementations provide additional streaming APIs to receive real-time updates (as opposed to periodic server polling). Vendors who can also support Open Graph objects within their activity streams provide a flexible way to categorize and display related activity items when they are retrieved.
It is also becoming common for vendors to provide add-on solutions that integrate their activity stream, either with another vendor's stream or events from a specific enterprise application. For example, two different activity streams can be combined into a single view with the same category for users to subscribe to. In another case, a CRM system can publish a system-generated event into an activity stream so users can follow changes on accounts or opportunities.
Today, there is an emerging move towards standardization by "ActivityStreams" specification, making it easier for content providers (people or applications) to interface with multiple feed implementations. It defines a general schema representing vocabulary used to describe an activity, such as: Actor, Verb, Object and optional Target (as in: actor performs an action on an object). It supports JSON and ATOM formats. This specification is now increasingly being leveraged by number of vendors. OpenSocial 2.0 specification includes support for it, as well.
Web Widget and Connector Integration
Web widgets are small, pre-built embeddable application components. They can be inserted into any third-party Web page to introduce social capabilities (such as sharing or rating a content) offered by a specific social container. They are not meant to be full-blown business systems -- rather, they socially enhance existing Web applications.
Each social platform typically provides its own set of standard widgets. Examples of commonly used UI widgets include Like, Recommend, Follow, Message, Profile, among others. Commercial vendors encourage software developers to create specialized widgets for their social platforms and offer them in their app stores. Their popularity is gaining momentum, not just for desktops but also for mobile devices.
Widgets can also be used with portlets in in a portal environment. The integration is usually achieved by vendor-supplied "widget wrappers." But in order for widgets to operate across multiple containers there must be a common way of supporting them. While this is not always visible in the marketplace, it is part of the vision for OpenSocial specification. If a widget is created using OpenSocial standards, it is expected to execute in any OpenSocial compliant container without the need for a new version of the code.
Embedding widgets on the client side is not the only way to integrate systems using pre-packaged components. The other option is by using server-side connector modules. A number of vendors provide connectors that need to be installed alongside a typical business application in order to access to social features from that application. This tighter integration can offer wider capabilities, such as unified search, streams, content access, taxonomy and bi-directional data exchange.
Both widgets and connectors provide an easier way to integrate social platform capabilities within applications. Therefore, organizations should inquire about existence of such packaged components before creating custom widgets or integration modules.