Network Computing is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Build Your Social Applications With Open Source

If you want to create social applications either for the enterprise or for public social networks, Jonathan LeBlanc's book will tell you how to do it based on standards and open source tools.

Just ignore the 800-pound gorilla in the room because, for the most part, he is not going to tell you how to build applications for Facebook. On the other hand, if you want to create software to offer in the Jive Apps Market, or maybe just make a proprietary intranet app run in an enterprise social container, he has a lot to teach you.

In Programming Social Applications, published in August by O'Reilly, LeBlanc dispenses with the decision to focus on open standards and open source software with a few paragraphs in chapter one, noting that it was essentially the only way he could address techniques that would work across a range of social platforms rather than a single proprietary platform. It might also have something to do with his role as a contributor to the OpenSocial standards group.

LeBlanc was until recently an evangelist for the Yahoo Developer Network, where part of his job was drumming up interest for integration with products like the Yahoo Pulse social network. He was also the company's technical liaison to the OpenSocial Foundation. LeBlanc recently moved to an evangelist role at X.commerce, an organization eBay created to support software development and integration for all its products, including PayPal and Magento.

Although Facebook has not embraced OpenSocial, other websites such as Yahoo and Google (the original creator of the specification) have done so, as have several overseas social networks and enterprise vendors including Jive, IBM, Socialtext, and Atlassian.

"That doesn't mean OpenSocial is the only thing out there, but focusing on it gives a really good view into understanding social containers," LeBlanc said in an interview. By "container," he means a website or server that lets you embed your application within it. A social container is one that lets you do so within a social context, where the embedded application can request data from the user's profile and social network. An OpenSocial container may not function exactly like Facebook or other proprietary containers, but conceptually they are trying to accomplish the same things, he said.

The availability of an open source implementation, Apache Shindig, means you can set up your own OpenSocial container for testing, or even use it as the basis for your own social networking site. The current release supports OpenSocial 0.9. A Shindig 3.0 beta that supports the recently released OpenSocial 2.0 specification is in the works, but not yet available for download except through the source code repository for the core developers. LeBlanc said he built the examples in the book around OpenSocial 0.9, recognizing that it will take time for social networks to make the switch to the new release.

The book also covers OAuth 1.0a and 2.0, as well as OpenID, and hybrid implementations of OAuth and OpenID. And although he has a tendency to use the word "proprietary" when talking about Facebook, he does acknowledge its embrace of OAuth 2.0 and the Open Graph Protocol.

While Facebook is the biggest champion of the Open Graph Protocol, it has also been embraced by others, including the enterprise vendors Yammer and Socialcast, as a way of extending their social networking capabilities. The Open Graph Protocol prescribes a technique for embedding metadata within a Web page that Facebook uses together with its JavaScript APIs and other elements of its platform to extract information used when someone clicks the "Like" button or otherwise interacts with that page. For example, open graph metadata can specify the title and thumbnail image to be displayed with a post to the user's activity stream. As implemented by Facebook, this works the same regardless of whether the page being liked is displayed as an iFrame inside Facebook or as an independent Web page.

"Any developer can scrape the exact same data from [a] page," LeBlanc said. "I really like what Facebook has done for metadata--the Open Graph Protocol is bringing the semantic Web back."

Ultimately, the hardest part about social software development is not the protocols but the application design, LeBlanc said. "The hardest part is adjusting to the social mindset." Game developers like Zynga have developed some of the most powerful social applications because they don't merely embed their applications in a social container like Facebook, they make full use of the social context. As you play a game like Mafia Wars, you accumulate power by bringing friends into the game, and you get recognition by posting your accomplishments to your social network.

Business application developers need to figure out how to do something similar, building social connections into the way information is shared, projects are managed, tasks are assigned, and achievement is recognized. "The tools are utilized the exact same way, just in a different context," he said.

Automation and orchestration technologies can make IT more efficient and better able to serve the business by streamlining common tasks and speeding service delivery. In this report, we outline the potential snags and share strategies and best practices to ensure successful implementation. Download our report here. (Free registration required.)