Download - Open Social Frameworks
Open Social Frameworks and solutions
Why OpenSocial?• Provide framework to connect different applications using single
entry point.• Sites or Application having Open Social support can share data
easily.• Rest support makes communication between applications platform
independent.• Gadgets or Widgets applications are easily portable among different
environments supporting OpenSocial API's.• Users can use their existing Google or Yahoo accounts or OpenID
URL’s to login to different applications.• Signed requests can be sent using OpenAuth• Supported in large number of containers
OpenSocial in Google IO
http://code.google.com/events/io/sessions/OpenSocialEnterprise.htmlhttp://code.google.com/events/io/sessions.html#social
This diagram shows the standard high-level technical architecture of OpenSocial Gadgets. A Gadget Hosting Server is any web server that hosts a Gadget Spec XML file. The Gadget Rendering Server is responsible for tranforming the Gadget Spec into HTML. A Container is any application that puts a Gadget in one of its Web pages. Gadgets can make request to Backend Applications by proxying requests through the Rendering Server using OpenSocial's JavaScript API. http://www.atlassian.com/opensocial/atlassian-and-opensocial.jsp
OpenSocial Reach
Intrusting thing in this slide is how containers from all over the world are evolving and making their contributions to OpenSocial Society.
Apache Shindig• Gadget Container JavaScript -- core JavaScript foundation for general gadget functionality. This JavaScript
manages security, communication, UI layout, and feature extensions, such as the OpenSocial API.• Gadget Server -- an open source version of gmodules.com, which is used to render the gadget xml into
JavaScript and HTML for the container to expose via the container JavaScript.• OpenSocial Container JavaScript -- JavaScript environment that sits on top of the Gadget Container JS
and provides OpenSocial specific functionality (profiles, friends, activities).• OpenSocial Gateway Server -- an open source implementation of the server interface to container-
specific information, including the OpenSocial REST APIs, with clear extension points so others can connect it to their own backends.
Apache Sling• Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store
and manage content.• REST based web framework to access to JSR-170 Java Content Repositories• Sling applications use either scripts or Java servlets, selected based on simple name conventions, to
process HTTP requests in a RESTful way.• The embedded Apache Felix OSGi The Dynamic Module System for Java framework and console provide a
dynamic runtime environment, where code and content bundles can be loaded, unloaded and reconfigured at runtime.
Introduction to API’s used
Frameworks looked into and other projects
Wookiehttp://wiki.apache.org/incubator/WookieProposalhttp://getwookie.org/
Sakai3http://3akai.sakaiproject.org/dev/
eXo Portal and WebOShttp://bit.ly/eXoPortalhttp://bit.ly/eXoWebOS
Atlassian + OpenSocialhttp://www.atlassian.com/opensocial/
Other projects Liferay (Using Shindig plugin to support open social) http://bit.ly/VDrN7
Project Zero (Web 2.0 with PHP scripting, REST and Dojo)http://www.projectzero.org/
Wookie• Effort by CETIS to create OpenSocial container to run Widgets or Gadgets inside
Moodle.Moodle is a Course Management System (CMS), also known as a Learning Management System (LMS) or a Virtual Learning Environment (VLE).
• OpenSocial Support using Shindig(0.8).• Based on the W3C Widgets specification and support for Google Wave Gadgets. • Project in Apache incubator but does not have any code checked in yet.• Currently code is part of TENCompetence sourceforge project which have liferay
based deployment. WookieProposal Source Code
Summary of my research
1 Was able to Download Wookie and run it locally. 2 I am not able to find any technical document about their approach on Open social.3 Code is not available in Apache yet as standalone project but will be available. 4 Will continue my research when code is available.
Sakai 3 + K2(Sakai Kernel) introduction
• Significant improvements in the user experience, drawing heavily on Web 2.0 thinking, such as dashboards, widgets, gadgets, drag-and-drop support, etc. Content authoring and organization capabilities to provide more flexibility in populating and organizing sites.
• Add social networking capabilities.• Ease of development through improved separation of concerns between java
developers, java script programmers, and user experience designers.• Simplified installation and expansion requirements.• Framework using all the latest active open source projects. • Advantage for building from scratch is consider all the aspects for OpenSocial,
but not hacking code to make it work for new technologies.• Example of pure multi-tier framework where K2 will act as gateway to connect to
different applications.• Email with Sakai team(Ian Boston) says “The intention is to embed both the
Gadget server and the Social API into the Sakai3 backend. The back end (K2) has the beginnings of a Social Container implementation and we will be wiring the REST based Social API in Shindig upto the data representations in K2.This will make it possible to add white listed Gadgets into any page within Sakai3.”
Proposed Shindig integration in Sakai 3
• Shindig container will run inside Sling K2 to provide close integration with Shidig.
• Shindig container will run as separate container to give flexibility to modify or update Shindig container.
• Email with Sakai team says “The intention is to embed both the Gadget server and the Social API into the Sakai3 backend. The back end (K2) has the beginnings of a Social Container implementation and we will be wiring the REST based Social API in Shindig upto the data representations in K2.This will make it possible to add white listed Gadgets into any page within
Sakai3.”
Summary of my research1 3akai Milestone 1 Release is not the code base they are using now.2 Current focus is K2 development but lot of components are not implemented yet like Shindig Bundle.3 Portals SVN and K2 GIT are at separate locations and was difficult for me to build. I took me few times to
even get code compiled and running.4 Not enough documents available to help how to add new gadgets and widgets.5 There are lot of things unsaid in the proposal about when different components will be available. 6 I am constantly watching the progress Sakai team is making and looking forward to use it at some point.
eXo Portal and WebOS
• Access personalized and collaborative content and applications from a single entry point.
• Create their own user experience with personalized applications based on groups, roles in groups, context, and team collaboration needs.
• Deliver rich content that is updated dynamically via AJAX.• Personal user dashboard allows users to customize a page with their preferred
gadgets.• Based on Shindig 0.8 and Tomcat.• Rest support.• Integration available with Central Authentication Service (CAS).• Portlet support : WSRP 2, JSR 168 and 286.• Concept of WebOS is to provide your web application desktop look. • Easy installation to try out your own gadget application.• OW2 Consortium Project
Detail features list
Summary of my research1 Stable code release is available and was easy to install.2 I was able to include OpenSocial example and run it.3 Have portal container with JSF and Portal bridge support4 Shindig 0.8 is included in the container itself
Atlassian + OpenSocial
• Embracing dashboards and OpenSocial gadgets as a method of integration between their own products and between other enterprise software
• OpenSocial-compliant containers on the Internet, like Gmail or iGoogle. • JIRA 4 framework is available with OpenSocial support.• Main focus was to look how they integrate different development tools.
This diagram shows the high-level technical architecture of OpenSocial Gadget mapped to Atlassian applications. Each of the OpenSocial components Gadget Hosting Server, Rending Server and Container are implemented as Atlassian Plugins. An Atlassian application JIRA, as an example can act as both a Gadget Hosting Server and Container. Atlassian applictions can have different roles as well. For example, Bamboo can act as a Gadget Hosting Server and provide a Bamboo Build Status Gadget that JIRA renders and displays on its dashboard.
Summary of my researchTODO—coming soon!!!!!!!!! With other research on Liferay and others.