web platforms, or: how i learned to stop worrying and love facebook
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 PresentationTRANSCRIPT
WEB-ENHANCED INFORMATION MANAGEMENT (COMS E6125)
SPRING 2008 (CVN)
NAVID AZIMI (NA2258)
Web Platforms, or: How I Learned To Stop Worrying And Love
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
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
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
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)
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
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.
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
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
COMMENTS? QUESTIONS?
Thank you!
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.