web platforms, or: how i learned to stop worrying and love facebook

11
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125) SPRING 2008 (CVN) NAVID AZIMI (NA2258) Web Platforms, or: How I Learned To Stop Worrying And Love Facebook

Upload: dawn-puckett

Post on 31-Dec-2015

26 views

Category:

Documents


1 download

DESCRIPTION

Web Platforms, or: How I Learned To Stop Worrying And Love Facebook. Web-enhanced information management ( Coms e6125) Spring 2008 ( Cvn ) navid azimi (na2258). My Project. Extend and document Facebook.NET Facebook.NET is an open-source managed wrapper around the Facebook REST APIs. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125)

SPRING 2008 (CVN)

NAVID AZIMI (NA2258)

Web Platforms, or: How I Learned To Stop Worrying And Love

Facebook

Page 2: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

My Project

Extend and document Facebook.NET Facebook.NET is an open-source managed wrapper

around the Facebook REST APIs.

Used by Facebook application developersFacebook APIs facilitate application

developers to leverage user data e.g. personal information, profile real estate, social

graph, etc

Facebook APIs are only one facet of the Facebook Platform

Page 3: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Facebook Platform

Allows third parties to develop web or desktop applications that leverage user data and Facebook’s social graph

e.g. name, networks, photos, friends, marketplace, etc deeply integrate into the Facebook ecosystem

e.g. profile real estate, mini-feed, look and feel, etc

Frontend Integration (UI) Reusing Facebook’s controls and styles

Backend Integration (Data) Access to user data and settings as well as scalable

data store

Page 4: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Frontend Platform

Markup (FBML) Stands for Facebook Markup Language Improves usability by allowing third-party applications

to leverage existing Facebook UI controls dashboard, invite users, comments, forms, type-ahead, etc

Adheres to each user’s privacy settings automatically

Scripting (FBJS) Stands for Facebook JavaScript Facilitates “Javascript” functionality in a safe context Includes native support for Ajax and Animation

libraries

Page 5: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Backend Platform

Query (FQL) Stands for Facebook Query Language Offers SQL-like interface to get/set user data

Interface (API) Offers REST-like interface to get/set user data Client (wrapper) libraries exist in 17+ programming languages

PHP, Ruby, C#, Java, Perl, Python, Lisp, etc Encapsulate common, mundane and generally difficult to “get

right” tasks such as authentication, encryption, transformation, etc

Data Store Facebook offers applications free (though capped) data store

that is highly scalable (i.e. optimized distributed tables)

Page 6: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Platform Architecture

Each application hosts its own site (along with its own database).

Users load application page through Facebook http://apps.facebok.com/[appname]/[blah]

Facebook sends a request to the application callback url on behalf of the user along with some data http://www.domain.com/[path_to_your_app]/[blah]

The application renders the page and returns it to Facebook which may or may not contain FBML code

Facebook in turn renders the page again for security and functionality and displays it to the user

Page 7: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Application Request Life Cycle

This has obvious performance implications.

They are in large part mitigated via aggressive caching and server load-balancing.

Facebook automatically times-out after a mere eight seconds!

Creates a need for high performing and scalable hosts.

Page 8: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

And the results?

There are 910,230,809910,230,809 installs across 22,14322,143 applications. Over 200,000200,000 developers are currently evaluating the platform. (data from www.adonomics.com)

Facebook has successfully opened up their walled garden of data

Application developers can monetize their own sites via advertisement, subscription fees, affiliate fees, etc. Facebook itself does not advertise on application canvas

pages!Applications (supposedly) add value to the

Facebook ecosystem thereby generating more traffic and revenue for Facebook

Page 9: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

So, what’s missing?

Developer tools and support are both sorely lacking No Facebook sandbox or staging environment Poorly designed test user accounts Technical support limited to community discussion forums Live site monitoring is poor and unreliable

Applications are now becoming walled gardens of data themselves Potentially create “application-to-application” platform Similar concept (Permissions API) has already gone into BETA

Allows one application to make Facebook API calls on behalf of another application

Page 10: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

COMMENTS? QUESTIONS?

Thank you!

Page 11: Web Platforms, or: How I Learned To Stop Worrying And Love  Facebook

Facebook Applications I’ve Developed

Professionally Microsoft Dynamics Connect

Recreationally Kiwi: your story told by friends Profile Watcher You Are Bootyful Hooray Beer!

Installation base of 900k+ and steadily growing.