Implementing an OpenSocial Container Lou Moore, hi5.com.

Slides:



Advertisements
Similar presentations
IBM WebSphere Everyplace Access for Multiplatforms Managing the e-business Customer Experience.
Advertisements

MySpace Developer Platform Dive Into OpenSocial Maxwell Newbould Development Manager OpenSocial Container Team, MySpace Seattle.
UBIQUITY V3 An extensible platform for creating dynamic, customized, and geocentric native mobile applications.
BeKnown How-to: Company Profiles & Jobs App for Timeline.
Performance Challenges for the Open Web Stanford CS193H 29 September 2008.
Behzad Samin 0 An End-to-End Overview of a RESTful Web Service.
Broadband Session Michael Byrne. Broadband Map Technical Details Data Integration Map Presentation Since Launch.
The Status of Technology Today (in 30 min) AmeriCorps National Best Practices Conference May 6, 2009 Galen Panger, Google for Non-Profits.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Mobile Chicago User Group. LP Mobile Each Month… 60 Million Visits Monitored 4 Million Messages Sent.
Yammer Technical Solutions Overview
OASIS OData Technical Committee. AGENDA Introduction OASIS OData Technical Committee OData Overview Work of the Technical Committee Q&A.
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
© 2005 AT&T, All Rights Reserved. 11 July 2005 AT&T Enhanced VPN Services Performance Reporting and Web Tools Presenter : Sam Levine x111.
Whats New in Microsoft Office 365 Module 01 | Daniel Sierra | Account Technology Strategist Microsoft Education México.
Extending Your Reach with SharePoint and Office. Ignite: Office SharePoint Azure.
31242/32549 Advanced Internet Programming Advanced Java Programming
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
Technology & Implementation. Our Company Founded in 2003, Opt-Intelligence operates a leading Opt-In Ad Solution built on our patent-pending Clear-Request™
OpenSocial CS : Survey of Contemporary Technologies.
Web Services Darshan R. Kapadia Gregor von Laszewski 1http://grid.rit.edu.
Government Uses and Benefits. Social Communications Specialist Chair, Statewide Social Media
Byte Size: Facebook. Who We Are Forrester predicted FB would achieve the same number of registered users as MySpace in Q4 of 2008, or early 2009 Reached.
The Social Application World Jia Shen Founder of RockYou!
IBM WebSphere Portal © 2008 IBM Corporation 1 Deliver an Irresistible User Experience  Provides an interactive user experience  No programming needed,
Our aims ease the pain – for all our users get with the times better communication with our supporters recruit and engage people to our campaigns raise.
Objectives Moodle is an online learning environment where instructors & their students interact. In this workshop you will learn: 1.Configure system requirements.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Kentico CMS 5.0 Full-featured Flexible Web Content Management System for All Your Needs.
Creating Online Class Communities Jennifer Dorman Discovery Education
Developing Content for Mobile Devices Larry D. Lee Web Developer for K4Health.
Top 5 Facebook Tips Mark Smith Rosemary Turner. What is Facebook? Users create a personalised profile for themselves and then add people as friends to.
App development in SharePoint 2013 LIVE Introducing Cloud App Model Cloud-hosted Apps Experiences from the Field.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
How to Expand Your School’s Online Reach using Facebook, Blogs and Twitter.
Presented by…. Group 2 1. Programming language 2Introduction.
Web 2.0: Concepts and Applications 2 Publishing Online.
Plugging In Connecting with your Membership On Line T HE A MERICAN L EGION.
Project Rickshaw SEARCH - FIND - GO. Project Rickshaw TEAM MEMBERS KEVIN AUGUSTINO – MATT FOX – DAVID MOORE SPONSORS KARASU TECHNOLOGIES - ERIK PAUL -
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
OpenSocial ANATOMY AND LIFE CYCLE Paul Lindner, Architect, Hi5 Networks November 27th, 2007.
Crystal Hoyer Program Manager IIS Team Preview of features that will be announced at MIX09 Please do not blog, take pictures or video of session.
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125) SPRING 2008 (CVN) NAVID AZIMI (NA2258) Web Platforms, or: How I Learned To Stop Worrying And Love Facebook.
Social Media at LISC June LISC Social Media What is it? New ways to distribute our news and stories that engages, interacts and shares. Why do it?
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
PUBLISHING ONLINE Chapter 2. Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals.
AJAX and Atlas in ASP.NET 2.0 William J. Steele MSDN Developer Evangelist Microsoft Corporation
HOW-TO: Driving Traffic with Twitter Cards & Analytics 9 types of Twitter Cards to install on your site and how to measure ROI for subscription sales.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
The OpenSocial API CS : Survey of Contemporary Technologies.
Eyeblaster Widgets | Grab a Beta April 2008 …. Eyeblaster Widgets How do Eyeblaster Widgets fit into your plan? Distributing and Seeding Eyeblaster Widgets.
Facebook for Beginners One Session Class. What will you learn today? What can you do on Facebook? Creating a profile Privacy Connecting with friends Sending.
Users are moving towards web applications Content on the web is more personal & meaningful Development on the web is easier than the OS.
John Maver (978)
Powered by Microsoft Azure, Auctori Is the Next Generation in Multilingual, Global, Search Engine Optimized Web Content Management Systems MICROSOFT AZURE.
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
Easy-to-Use RedFlag System Delivers Notifications via Phone, , Text, Social Media, and More to Improve Effectiveness of Your Communications COMPANY.
The hold seems to be with the administration… 85% of students surveyed have no problem using Facebook to communicate according to PEW research.
Apache Solr Dima Ionut Daniel. Contents What is Apache Solr? Architecture Features Core Solr Concepts Configuration Conclusions Bibliography.
Homepage Layout Management. Note: This is our last Core Publisher training in the series! You will be checking in with your Station Relations Support.
Getting Started Telligent or SharePoint (or Hybrid)?
© 2014 IBM Corporation Activity Streams Integration IBM Connections 5.0 Workshop Author: Paul Godby IBM Ecosystem Development Duration: 45 minutes.
April 2016 Demo and Training NetApp Content Syndication.
EIONET Portal Tool Kit Miruna Bulandra Finsiel Romania Copenhagen, 28 May 2002.
DESKALERTS. INTERNAL COMMUNICATIONS | | DeskAlerts Enterprise Edition Features.
Knowledge Hub Walkthrough August
Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals Wikis are collections of searchable,
Discover How Your Business Can Benefit from a Facebook Fanpage
Discover How Your Business Can Benefit from a Facebook Fanpage
Presentation transcript:

Implementing an OpenSocial Container Lou Moore, hi5.com

hi5 The Truly Global Social Network

hi5 International Leader Africa Cote d'Ivoire Ghana Tunisia Asia Thailand Mongolia #1 social network in 26 countries: 80M+ registered members 40M WW monthly uniques 80M+ registered members 40M WW monthly uniques Europe Portugal Romania Greece Cyprus Malta Albania Macedonia Luxembourg Latin America & Caribbean Mexico Venezuela Costa Rica Honduras Ecuador El Salvador Guatemala Peru Nicaragua Dominican Republic Cuba Jamaica Barbados

hi5 Truly Global Social Network 15% 25% 30% 20% 10% hi5 Traffic Across the Globe

Offered in 23 Language Options Coming soon: hi5 tool to translate your application! Coming soon: hi5 tool to translate your application! English Español (3 dialects: Español, España & Argentina) Português (2 dialects: Portugal & Brasil) Français Italiano Ελληνικά Русский (traditional & simplified scripts) Deutsch Nederlands Türkçe Română Polski Magyar Česky YkpaÏHCbKa

hi5 User Demographics

Opportunity to Reach New Users ~20% users overlap ~30% users overlap ~20% users overlap ~40M WW hi5 unique users

Motivation Why Platform? Why OpenSocial?

Why Platform? Tap talent and creativity of the developer community Provide engaging experience for our users Obtain locally relevant content, provide a locally relevant experience

Why OpenSocial? Standards-based platform for deep integration within hi5 –Decreases our time to market –Leverages open standards –Strong opensource community Draw for developers because OpenSocial apps are easily portable

Defining Your Platform How will applications integrate with your social website?

Views - Profile User profiles are the center for self-expression on hi5 and are a common feature of social sites A profile page may have many applications

Views - Profile

Views – Profile Considerations –Performance: Many applications with dynamic content will impact page load times. –Styling: hi5 Profiles can be heavily styled so application profile views need to be able to seamlessly blend. –Customization: Allow users to control their profile pages via features like module re-ordering. –Common Actions: Provide links to View, Share, and Remove applications. –What apps cant do on hi5 Profiles Use viral channels Advertise or cross-promote

Views - Canvas Dedicated page for applications Monetization opportunity – advertisements allowed

Views - Canvas

Considerations –Vanity URLs for application canvas pages –Canvas page should detect if user has installed the application –Provide links for users to manage application settings –Provide method for users to give feedback to developers

Views - Preview Non-standard view Way for users to interact with an application without installing it Option for installing application –Privacy settings to be applied Displays information about the application –Metadata such as summary and description –Friends with the application –Other apps by the developer –Rankings & ratings

Views - Preview

Considerations –Non-standard view, another size for developers to conform to –Permissions model is complex if viral channels allowed, but allows for a richer pre-install experience (beware the blinking red arrow)

Views – Anywhere you choose! Homepage? Photos? Albums? Define your own views in the context of your social site.

Permissions Access profile data Add profile module Allow friend updates (activity) Allow notifications Allow

Viral Channels - Activity hi5 Friend Updates are displayed on the users profile and their friends homepages

Viral Channels - Notifications Lightweight message sent to a user notifying them of some event. No action required, expire after 2 weeks, and limited to 5 per app/user/day

Viral Channels - Limited to 1 per user/app/day

Viral Channels - Invites Invites are requests sent from a user to a friend inviting them to install an application. Requests do require action on the part of the recipient.

Directory Applications must be approved to be added to the hi5 directory. Randomized at launch to maintain a level playing field. Engagement-based metrics will be introduced to rank applications. Sorting by most recent applications and applications that are locally relevant or support the users language will also be introduced.

Directory

Applications Homepage

Implementing a REST API Creating the web services necessary to support OpenSocial

Publishing the hi5 Web Service Enunciate –Opensource java web service framework –Publishes endpoints in REST, JSON, and SOAP formats –Auto-documenting, annotation-based – Authentication –auth tokens generated based on valid API Key and hi5 user/password combination –Auth token may be obtained via REST call, but is always made available within OpenSocial applications

hi5 REST APIs

REST API OpenSocial core APIs –People –Activity –Persistence hi5 REST endpoints –profile/foaf –feed/activity –profile/appdata Example call –

REST API OpenSocial request* APIs –requestSendMessage –requestCreateActivity hi5 REST endpoints –notifications/send –message/send s –friendUpdates/friendUpdate Example call – ken=xxxxx

OpenSocial REST API Currently no standard REST API across containers OpenSocial REST API spec in progress hi5 will migrate to support this in future

Implementing the OpenSocial API Tying it back to your social data

Shindig Opensource Apache project – implementation of OpenSocial and Gadgets specifications. –Gadget Container JavaScript -- core JavaScript foundation for general gadget functionality. –Gadget Server – renders the gadget XML into JavaScript and HTML –OpenSocial Container JavaScript -- OpenSocial specific functionality (profiles, friends, activities, datastore)

Shindig Structure

Shindig - Features

Shindig – opensocial-reference

Shindig – opensocial-0.7

Shindig – feature.xml

Data Requests opensocial.newDataRequest –newFetchPersonRequest –newFetchPeopleRequest –newFetchActivitiesRequest –newFetchPersonAppDataRequest –newUpdatePersonAppDataRequest Map to hi5 REST endpoints and convert results to OpenSocial objects –opensocial.Person –opensocial.Activity –Persistence returns Map >

jsoncontainer.js – Fetch People

jsoncontainer.js and the SocialData Servlet Request Batching –Java servlet handles batched requests and returns one large JSON response All data fetches routed to SocialData servlet via jsoncontainer.js

Viral Requests (request*) opensocial.requestCreateActivity –supported fields include TITLE, BODY, MEDIA_ITEMS, URL –a and br tags allowed in TITLE and BODY opensocial.requestSendMessage –NOTIFICATION and implemented –PRIVATE_MESSAGE and PUBLIC_MESSAGE return NOT_IMPLEMENTED response opensocial.requestShareApp –implemented as rpc call to navigate to invite page Map requests to hi5 REST api, return opensocial.ResponseItem

hi5container.js – Create Activity

hi5container.js – Share App

Gadgets – Core Prefs –user data including country and language injected into applications io –gadgets.io.makeRequest for remote fetching –signed requests using OAuth

Gadgets – Other Features Views –gadgets.views.requestNavigateTo rpc call to navigate to a desired View –gadgets.views.getCurrentView –gadgets.views.getParams –view-params params in json format to be passed into applications Skins –gadgets.skins.getProperty

hi5 Feature – Extending OpenSocial hi5.newFetchAlbumsRequest hi5.ActivityMediaItemField.LINK hi5.PersonField.PRESENCE Capabilities discovery –gadgets.util.hasFeature –gadgets.views.getSupportedViews –opensocial.getEnvironment().supportsField –Container declares supported features, views, and fields

hi5.js

Running a Shindig Server OpenSocial in a high-volume production environment

Working with Shindig Deployment model –Own shindig svn repository –Build gadgets.jar –Build api war including gadgets.jar (shindig) and friend.jar (hi5) using enunciate –Deploy resulting war as web service on tomcat 6

hi5 Platform Architecture

Production Shindig Stats Currently 30 API/Shindig servers 6.4 billion requests since launch Servers processing on average 200 req/s, possible Overall Traffic peak > 7000 req/s Significant efforts invested in making shindig work well with caching in the browser and on Akamai. Learnings contributed back to OpenSocial

Building a Thriving Developer Community Communication, Communication, Communication

Tools Built-in app editor Language preview Activity preview to come

Communication Wiki, Bug Tracker, Forums IRC!! Blog Posts –Clear explanations of viral channels, ranking systems, guidelines –Post often

Incentives Free translations Hosting through Joyent

Maintaining a Great User Experience Its still all about the users

Privacy Controls My Apps page with controls for each installed app Ability to select privacy settings on preview/install page Choice to uninstall or remove from profile on Remove link on profile

Mitigating Spamminess Blocking an app Reporting spam on all viral channels Collecting feedback Smart limits on viral channels, ability to monitor and control Its a delicate balance between developer freedom and user experience

Internationalization & Localization Basic support available today Activity and Message templates coming soon Crowd-sourced translation services for applications coming soon Developer outreach in global markets, leverage platform to provide a locally relevant experience.

Results Production launch 3/31, full launch to 100% of users 4/4 65 applications at launch, 328 today in 21 categories Averaging > 1 million new installs each day 5 apps with > 1 million installs, 11 more with > 500k installs Top apps getting > 1 million daily canvas views ~50% of active users have at least one application installed Active users average ~3 apps on every profile, with as many as 16

Demo Walkthrough of an OpenSocial application on the hi5 platform: PixWall by PixVerse

Questions?