We define social network sites as web-based services that allow individuals to
1. Construct a public or semi-public profile within a bounded system,
2. Articulate a list of other users with whom they share a connection, and
3. View and traverse their list of connections and those made by others within the system
Contains specific components that allow people to:
define an online profile (or persona)
list their connections (e.g., friends and colleagues)
receive notifications on the activities of those connections
participate in group or community activities
control permission, preference and privacy settings
Social Networking Sites: Definition
To orchestrate and manage these components, a social site application services layer is necessary
A social network site is a web site that minimally includes the following capabilities:
LAMP technologies used
Alternative PHP Cache (APC)
Three main server points
APC is a free, open, and robust framework for caching and optimizing PHP intermediate code. Provides a significant interpreter performance.
Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.
Asynchronous event handling mechanism
Memcached is a high-performance distributed memory object caching system, generic in nature, but intended to use in speeding up dynamic web applications by alleviating data base load.
RAM is 165000 times faster than disk access
Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl and Haskell.
Thrift allows you to define data types and service interfaces in a simple definition file . Taking that file as input, the compiler generates code to be used to easily build RPC clients and servers that communicate seamlessly across programming languages.
Thrift is one of Facebook's core software engineering resources. It is used in various ways across many products, including: Search , Mobile , Posts , Notes , Feed , Platform . If you use the site, you've used Thrift.
Scribe is a server for aggregating log data streamed in real time from a large number of servers.
It is designed to be scalable, extensible without client-side modification, and robust to failure of the network or any specific machine.
Scribe is implemented as a thrift service using the non-blocking C++ server. The installation at facebook runs on thousands of machines and reliably delivers tens of billions of messages a day.
Faceboon – News feed page
Architecture – Facebook app
FBML & FQL
Facebook Markup Language ( FBML ) enables you to build full Facebook Platform applications that deeply integrate into a user's Facebook experience. You can hook into several Facebook integration points, including the profile, profile actions, Facebook canvas, News Feed and Mini-Feed.
Facebook Query Language ( FQL) allows you to use a SQL-style interface to more easily query the same Facebook social data that you can access through other Facebook API methods (assuming your application has access!).
Facebook Connect is a powerful set of APIs for developers that lets users bring their identity and connections everywhere. Developers can access a user's:
Identity: name, photos, events, and more.
Social Graph: friends and connections.
Stream: activity, distribution, and integration points within Facebook, like stream stories and Publishers.
Facebook connect “ Google AdWords sit between queries and results, but Facebook sits between people and their friends. That’s where the money in Facebook Connect is. “