<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tim[后端技术] &#187; facebook</title>
	<atom:link href="http://timyang.net/tag/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://timyang.net</link>
	<description>Tim&#039;s blog, 关于后端架构、互联网技术、分布式、大型网络应用、NoSQL、Key Value等</description>
	<lastBuildDate>Mon, 26 Jul 2010 15:32:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>FarmVille(美版开心农场)谈架构:所有模块都是一个可降级的服务</title>
		<link>http://timyang.net/architecture/farmville/</link>
		<comments>http://timyang.net/architecture/farmville/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 11:23:00 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[架构]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[网游服务器]]></category>

		<guid isPermaLink="false">http://timyang.net/?p=577</guid>
		<description><![CDATA[
在2009年Facebook Developer Garage Shanghai活动上，Five Minutes程延辉 介绍开心农场架构，让大家了解了SNS game的一些挑战和设计模式。
由于农场游戏风靡全球，最近highscalability.com网站采访了美版开心农场FarmVille的Luke Rajlich，他介绍了FarmVille的部分架构资料(1)。
所有模块都是一个可降级的服务
For any web application, high latency kills your app and highly variable latency eventually kills your app.
由于大型的网络应用需要依赖各种底层及内部服务，但是服务调用的高延迟是各种应用的最大问题，在竞争激烈的SNS app领域更是如此。解决此问题的方法是将所有的模块设计成一种可降级的服务，包括Memcache, Database, REST API等。将所有可能会发生大延迟的服务进行隔离。这可以通过控制调用超时时间来控制，另外还可以通过应用中的一些开关来关闭某些某些功能避免服务降级造成的影响。
上面这点我也有一些教训，曾碰到过由于依赖的一些模块阻塞造成服务不稳定的现象。
1. 某Socket Server使用了ThreadPool来处理所有核心业务。
2. 不少业务需要访问内网的一个远程的User Service(RPC)来获取用户信息。
3. User Service需要访问数据库。
4. 数据库有时候会变慢，一些大查询需要10秒以上才能完成。
结果4造成3很多调用很久才能执行完，3造成2的RPC调用阻塞，2造成1的ThreadPool堵塞，ThreadPool不断有新任务加入，但是老的任务迟迟不能完成。因此对于最终用户的表现是很多请求没有响应。部分用户认为是网络原因会手工重复提交请求，这样会造成状况并进一步恶化。上面的问题根本是没有意识到远程服务可能会超时或失败，把远程服务RPC调用当成一个本地调用来执行。
解决思路一：RPC增加Timeout
解决思路二：将RPC改成异步调用。
另一分布式大牛James Hamilton谈到(2)上面这种做法就是他论文Designing and Deploying Internet-Scale Services中的graceful degradation mode(优雅降级)。
FarmVille其他数据

FarmVille基于LAMP架构，运行在EC2上。
读写比例是3:1。
使用开源工具来做运维监控，如nagios报警，munin监控，puppet配置。另外还开发了很多内部的程序来监控Facebook DB, Memcache等。
到Facebook接口的流量峰值达到3Gb/s，同时内部的cache还承担了1.5Gb/s。
另外可动态调整到Facebook与Cache之间的流量，Facebook接口变慢时，可以利用cache数据直接返回，终极目的是不管发生了那个环节的故障，能够让用户继续游戏。

小结
尽管FarmVille公布了上面一些技术资料，凭借上面这些资料无法全部了解FarmVille的架构。但是所有模块都是一个可降级服务的概念值得设计大规模应用的同行参考。
Resource

How FarmVille Scales to Harvest 75 Million Players a Month
Scaling FarmVille

Similar Posts:Facebook平台设计(一)

Twitter“鲸鱼”故障技术剖析

Facebook平台设计(二)

构建可扩展的微博架构(qcon [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-582" title="farmville" src="http://timyang.net/blog/wp-content/uploads/2010/03/farmville.png" alt="" width="240" height="182" align="right" /><br />
在2009年Facebook Developer Garage Shanghai活动上，<a href="http://www.javaeye.com/wiki/facebook/1766-five-minutes-happy-farm-structure-introduced">Five Minutes程延辉 介绍开心农场架构</a>，让大家了解了SNS game的一些挑战和设计模式。</p>
<p>由于农场游戏风靡全球，最近<a href="http://highscalability.com/">highscalability.com</a>网站采访了美版开心农场FarmVille的Luke Rajlich，他介绍了FarmVille的部分架构资料(1)。</p>
<h3>所有模块都是一个可降级的服务</h3>
<blockquote><p>For any web application, high latency kills your app and highly variable latency eventually kills your app.</p></blockquote>
<p>由于大型的网络应用需要依赖各种底层及内部服务，但是服务调用的高延迟是各种应用的最大问题，在竞争激烈的SNS app领域更是如此。解决此问题的方法是将所有的模块设计成一种可降级的服务，包括Memcache, Database, REST API等。将所有可能会发生大延迟的服务进行隔离。这可以通过控制调用超时时间来控制，另外还可以通过应用中的一些开关来关闭某些某些功能避免服务降级造成的影响。</p>
<p>上面这点我也有一些教训，曾碰到过由于依赖的一些模块阻塞造成服务不稳定的现象。</p>
<p>1. 某Socket Server使用了ThreadPool来处理所有核心业务。<br />
2. 不少业务需要访问内网的一个远程的User Service(RPC)来获取用户信息。<br />
3. User Service需要访问数据库。<br />
4. 数据库有时候会变慢，一些大查询需要10秒以上才能完成。</p>
<p>结果4造成3很多调用很久才能执行完，3造成2的RPC调用阻塞，2造成1的ThreadPool堵塞，ThreadPool不断有新任务加入，但是老的任务迟迟不能完成。因此对于最终用户的表现是很多请求没有响应。部分用户认为是网络原因会手工重复提交请求，这样会造成状况并进一步恶化。<strong>上面的问题根本是没有意识到远程服务可能会超时或失败，把远程服务RPC调用当成一个本地调用来执行。</strong></p>
<p>解决思路一：RPC增加Timeout<br />
解决思路二：将RPC改成异步调用。</p>
<p>另一分布式大牛<a href="http://perspectives.mvdirona.com/">James Hamilton</a>谈到(2)上面这种做法就是他论文<a href="http://mvdirona.com/jrh/talksAndPapers/JamesRH_Lisa.pdf">Designing and Deploying Internet-Scale Services</a>中的graceful degradation mode(优雅降级)。</p>
<h3>FarmVille其他数据</h3>
<ul>
<li>FarmVille基于LAMP架构，运行在EC2上。</li>
<li>读写比例是3:1。</li>
<li>使用开源工具来做运维监控，如nagios报警，munin监控，puppet配置。另外还开发了很多内部的程序来监控Facebook DB, Memcache等。</li>
<li>到Facebook接口的流量峰值达到3Gb/s，同时内部的cache还承担了1.5Gb/s。</li>
<li>另外可动态调整到Facebook与Cache之间的流量，Facebook接口变慢时，可以利用cache数据直接返回，终极目的是不管发生了那个环节的故障，能够让用户继续游戏。</li>
</ul>
<h3>小结</h3>
<p>尽管FarmVille公布了上面一些技术资料，凭借上面这些资料无法全部了解FarmVille的架构。但是所有模块都是一个可降级服务的概念值得设计大规模应用的同行参考。</p>
<h3>Resource</h3>
<ol>
<li><a href="http://highscalability.com/blog/2010/2/8/how-farmville-scales-to-harvest-75-million-players-a-month.html">How FarmVille Scales to Harvest 75 Million Players a Month</a></li>
<li><a href="http://perspectives.mvdirona.com/2010/02/13/ScalingFarmVille.aspx">Scaling FarmVille</a></li>
</ol>
Similar Posts:<ul><li><a href="http://timyang.net/sns/facebook-platform-f8-07/" rel="bookmark" title="June 10, 2009">Facebook平台设计(一)</a></li>

<li><a href="http://timyang.net/tech/twitter-whale/" rel="bookmark" title="March 8, 2010">Twitter“鲸鱼”故障技术剖析</a></li>

<li><a href="http://timyang.net/sns/facebook-f8-0/" rel="bookmark" title="July 1, 2009">Facebook平台设计(二)</a></li>

<li><a href="http://timyang.net/architecture/microblog-design-qcon-beijing/" rel="bookmark" title="May 11, 2010">构建可扩展的微博架构(qcon beijing 2010演讲)</a></li>

<li><a href="http://timyang.net/architecture/twitter-cache-architecture/" rel="bookmark" title="October 28, 2009">Twitter架构图(cache篇)</a></li>
</ul><!-- Similar Posts took 13.009 ms -->]]></content:encoded>
			<wfw:commentRss>http://timyang.net/architecture/farmville/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook平台设计(二)</title>
		<link>http://timyang.net/sns/facebook-f8-0/</link>
		<comments>http://timyang.net/sns/facebook-f8-0/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 13:29:34 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[SNS]]></category>
		<category><![CDATA[f8]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://timyang.net/?p=301</guid>
		<description><![CDATA[上个月介绍了Facebook平台设计(一)，再继续看f8 2008。f8平台推出在短短一年的应用开发者已经超过40万。keynote继续由Facebook创始人兼CEO Mark Zuckerberg主持(视频)，Mark介绍了一年中不少成功的应用案例，如iLike推出4天就增长到100万用户,以及 livingsocial, Zynga等成功案例。主要的议题包括
一、Facebook Connect
Facebook开放平台之后围墙的问题依然存在，所有的用户所有的内容都在facebook网站的内部。facebook connect可以将facebook的用户，好友，feed和第三方网站作深度整合。将social graph扩大到所有的Web领域。到目前为止Facebook Connect的应用已经非常广泛，比如6月27号的Facebook Developer Garage Shanghai介绍了不少基于Facebook Connect的网站，如提供给外国人分享在上海活动图片的citymoments就非常不错。
二、Facebook新的设计
Mark介绍了很多Facebook新的设计, 比如应用可以不再局限在profile box里面，可以作为一个独立的profile tab, 相当一个独立的页面，应用开发商有更多独立的发挥空间。
另外facebook开放了翻译工具, facebook的翻译工具可以让全球的用户帮助将第三方开发的应用翻译成各种本地语言，并由用户投票每个条目最合适的翻译结果。这个本来用于facebook平台自身的国际化，此次开放给第三方开发者。
三、平台指导原则
f8 keynote后半部分由Benjamin Ling主讲(视频)，Ben也是一位神奇的人物。他本来在Google当产品总监，2007年跳槽到facebook做Director of Platform, 不过好像现在又跑回youtube去了。Ben是亚洲面孔，不知道是不是华人。他介绍了facebook平台的三大指导原则(Guide principle for great social app)
1. meaningful/有意义
a. social(graph), e.g. Green Patch
b. useful/有用，如Carpool
c. Expressive/表达, Graffiti, draw on friend profile
d. Engaging, 比如2008/5，用户投入在playfish上的时间有9亿分钟。
2. trustworthy/信任
safe/安全, trusted
secure &#8211; 平台越提供更多的privacy控制, 用户才会产生越多内容
respectful
transparent
3. well designed/良好的设计
clean, facebook平台确实很干净，值得陈赞, 因此平台要求应用也如此。
fast, use more, 访问速度越快，用户用得越多。
robust, [...]]]></description>
			<content:encoded><![CDATA[<p>上个月介绍了<a href="http://timyang.net/sns/facebook-platform-f8-07/">Facebook平台设计(一)</a>，再继续看<a href="http://www.facebook.com/f8">f8 2008</a>。f8平台推出在短短一年的应用开发者已经超过40万。keynote继续由Facebook创始人兼CEO Mark Zuckerberg主持(<a href="http://www.facebook.com/f8#/video/video.php?v=28083185043">视频</a>)，Mark介绍了一年中不少成功的应用案例，如iLike推出4天就增长到100万用户,以及 livingsocial, Zynga等成功案例。主要的议题包括</p>
<p><strong>一、Facebook Connect</strong></p>
<p>Facebook开放平台之后围墙的问题依然存在，所有的用户所有的内容都在facebook网站的内部。facebook connect可以将facebook的用户，好友，feed和第三方网站作深度整合。将social graph扩大到所有的Web领域。到目前为止Facebook Connect的应用已经非常广泛，比如6月27号的<a href="http://www.facebook.com/event.php?eid=87128979603">Facebook Developer Garage Shanghai</a>介绍了不少基于Facebook Connect的网站，如提供给外国人分享在上海活动图片的<a href="http://www.citymoments.cn/">citymoments</a>就非常不错。</p>
<p><strong>二、Facebook新的设计</strong></p>
<p>Mark介绍了很多Facebook新的设计, 比如应用可以不再局限在profile box里面，可以作为一个独立的profile tab, 相当一个独立的页面，应用开发商有更多独立的发挥空间。<br />
另外facebook开放了翻译工具, facebook的翻译工具可以让全球的用户帮助将第三方开发的应用翻译成各种本地语言，并由用户投票每个条目最合适的翻译结果。这个本来用于facebook平台自身的国际化，此次开放给第三方开发者。</p>
<p><strong>三、平台指导原则</strong></p>
<p>f8 keynote后半部分由<a href="http://www.facebook.com/benjamin.ling">Benjamin Ling</a>主讲(<a href="http://www.facebook.com/f8#/video/video.php?v=28083085043&amp;ref=mf">视频</a>)，Ben也是一位神奇的人物。他本来在Google当产品总监，2007年跳槽到facebook做Director of Platform, 不过好像现在又跑回youtube去了。Ben是亚洲面孔，不知道是不是华人。他介绍了facebook平台的三大指导原则(Guide principle for great social app)</p>
<p><strong>1. meaningful/有意义</strong><br />
a. social(graph), e.g. Green Patch<br />
b. useful/有用，如Carpool<br />
c. Expressive/表达, Graffiti, draw on friend profile<br />
d. Engaging, 比如2008/5，用户投入在playfish上的时间有9亿分钟。</p>
<p><strong>2. trustworthy/信任</strong><br />
safe/安全, trusted<br />
secure &#8211; 平台越提供更多的privacy控制, 用户才会产生越多内容<br />
respectful<br />
transparent</p>
<p><strong>3. well designed/良好的设计</strong><br />
clean, facebook平台确实很干净，值得陈赞, 因此平台要求应用也如此。<br />
fast, use more, 访问速度越快，用户用得越多。<br />
robust, 强壮</p>
<p>原则总结起来就一句话，&#8221;<strong>keep the ecosystem safe for user, fair for developers</strong>&#8220;, 平台设计的目标是对用户安全，对开发者公平。</p>
Similar Posts:<ul><li><a href="http://timyang.net/sns/facebook-platform-f8-07/" rel="bookmark" title="June 10, 2009">Facebook平台设计(一)</a></li>

<li><a href="http://timyang.net/sns/open-api-practice/" rel="bookmark" title="June 22, 2009">国内开放API平台实践的一些问题</a></li>

<li><a href="http://timyang.net/sns/facebook-feed/" rel="bookmark" title="June 2, 2009">Facebook的feed格式设计</a></li>

<li><a href="http://timyang.net/sns/web20-forum/" rel="bookmark" title="June 6, 2010">Web 2.0技术沙龙设想</a></li>

<li><a href="http://timyang.net/tech/guangzhou-salon-090808/" rel="bookmark" title="July 24, 2009">广州技术沙龙安排</a></li>
</ul><!-- Similar Posts took 9.264 ms -->]]></content:encoded>
			<wfw:commentRss>http://timyang.net/sns/facebook-f8-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>国内开放API平台实践的一些问题</title>
		<link>http://timyang.net/sns/open-api-practice/</link>
		<comments>http://timyang.net/sns/open-api-practice/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 01:43:57 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[SNS]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open api]]></category>
		<category><![CDATA[开放平台]]></category>

		<guid isPermaLink="false">http://timyang.net/?p=294</guid>
		<description><![CDATA[随着在国外一些开放API的成功，国内开放的趋势尤其是在SNS领域也开始涌现，实际上开放的需求不局限SNS领域，所有的互联网应用都可以从开放API获得更多的用户使用等潜在的价值。Tim在这方面也进行了一些尝试和思考，这里初步探讨开放API产品及开发方面实践中需要面对的几个问题。
一、设计开放API没有明显的标准可以遵循


如何设计一个好的鉴权(authentication)体系，安全，便利，简单。
如何设计一个好的用户SSO(Single Sign-On)体系，达到无缝的在第三方网站与平台之间切换，或者支持将平台的内容无缝嵌入第三方网站，类似facebook connect这样的体系。
国外的一些标准是否适合引进，比如OpenID与OAuth，OpenID国内还没有成功案例或领头羊，因此支持OpenID的用途就大打了折扣。OAuth解决了平台对第三方应用的信任(authorization)问题，但对于国内的第三方开发者是否太复杂。


二、缺少深度理解开放平台设计的产品及开发人员
国内大部分从业人员可能都没一手接触国外的开放平台产品及API，可能没写过一个hello world的Facebook应用，说不出Gadget的原理或者理解twitter client跟服务器交互的具体流程。大部分从业人员可能简单的理解facebook就是开心网一样。因此即使有意愿也很难设计出能真实满足用户需要的接口。
三、没有生态圈或者短期不能形成生态圈
Facebook的魅力就是从f8 2007推出到2008 f8已经形成40万开发者的规模，这40万开发人员对Facebook Platform的稳定及成熟起了非常重要的作用。但对于国内每一个新的开放平台可能设计人员并不清楚下游开发者在哪里，也很难进一步了解潜在的需求，很容易造成闭门造车的局面。
四、不清楚盈利模式
由于找不到清晰的赢利模式，不但对于提供平台的公司还是对于下游的开发者都缺乏推动力，所以大部分公司都是抱着试试看的心态去公开一些非核心的API。另外平台本身也有顾虑开放API是否会对本身原有的业务带来冲击，因此在公司内部也不太容易得到大力的支持，所以都是在小圈子内充当着试验田的角色。
Similar Posts:Facebook平台设计(二)

Facebook平台设计(一)

Facebook的feed格式设计

Twitter API最近的一些飞跃

Web 2.0技术沙龙设想
]]></description>
			<content:encoded><![CDATA[<p>随着在国外一些开放API的成功，国内开放的趋势尤其是在SNS领域也开始涌现，实际上开放的需求不局限SNS领域，所有的互联网应用都可以从开放API获得更多的用户使用等潜在的价值。Tim在这方面也进行了一些尝试和思考，这里初步探讨开放API产品及开发方面实践中需要面对的几个问题。</p>
<h2 id=":fk" class="ii gt">一、设计开放API没有明显的标准可以遵循</h2>
<div class="ii gt">
<ul>
<li>如何设计一个好的鉴权(authentication)体系，安全，便利，简单。</li>
<li>如何设计一个好的用户SSO(Single Sign-On)体系，达到无缝的在第三方网站与平台之间切换，或者支持将平台的内容无缝嵌入第三方网站，类似facebook connect这样的体系。</li>
<li>国外的一些标准是否适合引进，比如<a href="http://openid.net/">OpenID</a>与<a href="http://oauth.net">OAuth</a>，OpenID国内还没有成功案例或领头羊，因此支持OpenID的用途就大打了折扣。OAuth解决了平台对第三方应用的信任(authorization)问题，但对于国内的第三方开发者是否太复杂。</li>
</ul>
</div>
<h2 class="ii gt">二、缺少深度理解开放平台设计的产品及开发人员</h2>
<div class="ii gt">国内大部分从业人员可能都没一手接触国外的开放平台产品及API，可能没写过一个hello world的Facebook应用，说不出Gadget的原理或者理解twitter client跟服务器交互的具体流程。大部分从业人员可能简单的理解facebook就是开心网一样。因此即使有意愿也很难设计出能真实满足用户需要的接口。</div>
<h2 class="ii gt">三、没有生态圈或者短期不能形成生态圈</h2>
<div class="ii gt">Facebook的魅力就是从f8 2007推出到2008 f8已经形成40万开发者的规模，这40万开发人员对Facebook Platform的稳定及成熟起了非常重要的作用。但对于国内每一个新的开放平台可能设计人员并不清楚下游开发者在哪里，也很难进一步了解潜在的需求，很容易造成闭门造车的局面。</div>
<h2 class="ii gt">四、不清楚盈利模式</h2>
<div class="ii gt">由于找不到清晰的赢利模式，不但对于提供平台的公司还是对于下游的开发者都缺乏推动力，所以大部分公司都是抱着试试看的心态去公开一些非核心的API。另外平台本身也有顾虑开放API是否会对本身原有的业务带来冲击，因此在公司内部也不太容易得到大力的支持，所以都是在小圈子内充当着试验田的角色。</div>
Similar Posts:<ul><li><a href="http://timyang.net/sns/facebook-f8-0/" rel="bookmark" title="July 1, 2009">Facebook平台设计(二)</a></li>

<li><a href="http://timyang.net/sns/facebook-platform-f8-07/" rel="bookmark" title="June 10, 2009">Facebook平台设计(一)</a></li>

<li><a href="http://timyang.net/sns/facebook-feed/" rel="bookmark" title="June 2, 2009">Facebook的feed格式设计</a></li>

<li><a href="http://timyang.net/sns/twitter-api-changes/" rel="bookmark" title="December 30, 2009">Twitter API最近的一些飞跃</a></li>

<li><a href="http://timyang.net/sns/web20-forum/" rel="bookmark" title="June 6, 2010">Web 2.0技术沙龙设想</a></li>
</ul><!-- Similar Posts took 9.736 ms -->]]></content:encoded>
			<wfw:commentRss>http://timyang.net/sns/open-api-practice/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Facebook平台设计(一)</title>
		<link>http://timyang.net/sns/facebook-platform-f8-07/</link>
		<comments>http://timyang.net/sns/facebook-platform-f8-07/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 14:50:40 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[SNS]]></category>
		<category><![CDATA[f8]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://timyang.net/?p=264</guid>
		<description><![CDATA[为了研究Facebook platform的设计, 我们可以从最早的第一个版本f8 07开始了解，当时是由Facebook创始人兼CEO Mark Zuckerberg 在2007年5月f8开发者会议上发布的。根据当时的数据是，50%以上的Facebook用户会每天都访问Facebook，超过同行3倍以上。
为了理解Facebook平台，我们可以从Facebook相册说起。Facebook相册虽然只提供了最简单的特性，比如不能存高像素原图，没有编辑工具等，非常简单，但是Facebook的相册流量是是其他所有相册(Flickr, Picasa&#8230;)流量之和的2倍以上。为什么？这就是Mark介绍的Social Graph的力量。
1. 用户A上传图片，他所有好友都能看到。
2. 用户A继续在图片上tag people(标注图片上的好友)，这个tag的图片会出现在被tag好友B profile wall上，接着B的好友接着可以看到这个图片(受privacy设置控制，默认开启)。
特别是第2点它扩大了传播范围，在Facebook认为，第2点比1更为重要，Facebook平台的意义就是在这里。&#8221;we build the platform optimize for build apps for social graph&#8221;，开放平台的意义就是让扩展应用将social graph发扬光大。
“在Facebook开放平台以前，social network封闭式平台，但是今天这种情况结束了”
Facebook Platform的三大目标
1. Apps深度整合到Facebook平台(Deep Integration Into Facebook Website)

app可以集成到用户profile
app拥有独立的首页(canvas page)，首页完全是应用自己控制的，可放任何内容，包括广告。
app可以以用户身份发布feed
app可以发送消息，邀请，提醒等

一个应用只要被用户授权访问他的profile之后，应用就可以调用api获取到比如user/friend/application/privacy information，Facebook API接口也值得各种平台设计者学习。比如用户API接口
2. 病毒式的传播(Mass Distribution through the Social Graph)
传播的核心是feed体系(从09年的眼光来看，Twitter的feed可能比它做得更出色，甚至造成了威胁，并进一步引发它最近的homepage改版)。App可以发布3种不同类型的Feed

application story，相当与应用添加提醒，比如A添加了某应用。
simple story, feed里面表现为一行文本。
full story, 详细，可以预览图片，视频等。

关于feed可参看另外一篇技术分析文章：Facebook的feed格式设计
App可以发送notification(提醒)，request(邀请)。Facebook还提供平台级别的工具如friend selector供app使用。Facebook还通过应用嵌入到Profile通过exposure让更多的用户来使用，比如用户看到好友Profile某个应用有趣也会立即add。
通过以上途径，促进应用的传播，促进信息的传播，促进人的社会化交流。
3. 商业机会(New Business Opportunity)
canvas page可以放任何广告，也可以进行电子商务进行销售，app可以获得所有收入。对于这两种方式，Facebook都是持支持态度。
视频：Mark Zuckerberg Keynote Speech f8 [...]]]></description>
			<content:encoded><![CDATA[<p>为了研究Facebook platform的设计, 我们可以从最早的第一个版本<a href="http://developers.facebook.com/news.php?blog=1&amp;story=21" target="_blank">f8 07</a>开始了解，当时是由Facebook创始人兼CEO Mark Zuckerberg 在2007年5月f8开发者会议上发布的。根据当时的数据是，50%以上的Facebook用户会每天都访问Facebook，超过同行3倍以上。</p>
<p>为了理解Facebook平台，我们可以从Facebook相册说起。Facebook相册虽然只提供了最简单的特性，比如不能存高像素原图，没有编辑工具等，非常简单，但是Facebook的相册流量是是其他所有相册(Flickr, Picasa&#8230;)流量之和的2倍以上。为什么？这就是Mark介绍的Social Graph的力量。</p>
<p>1. 用户A上传图片，他所有好友都能看到。</p>
<p>2. 用户A继续在图片上tag people(标注图片上的好友)，这个tag的图片会出现在被tag好友B profile wall上，接着B的好友接着可以看到这个图片(受privacy设置控制，默认开启)。</p>
<p>特别是第2点它扩大了传播范围，在Facebook认为，第2点比1更为重要，Facebook平台的意义就是在这里。&#8221;we build the platform optimize for build apps for social graph&#8221;，开放平台的意义就是让扩展应用将social graph发扬光大。</p>
<p>“在Facebook开放平台以前，social network封闭式平台，但是今天这种情况结束了”</p>
<p>Facebook Platform的三大目标</p>
<h2>1. Apps深度整合到Facebook平台(Deep Integration Into Facebook Website)</h2>
<ul>
<li>app可以集成到用户profile</li>
<li>app拥有独立的首页(canvas page)，首页完全是应用自己控制的，可放任何内容，包括广告。</li>
<li>app可以以用户身份发布feed</li>
<li>app可以发送消息，邀请，提醒等</li>
</ul>
<p>一个应用只要被用户授权访问他的profile之后，应用就可以调用api获取到比如user/friend/application/privacy information，Facebook API接口也值得各种平台设计者学习。比如<a href="http://wiki.developers.facebook.com/index.php/Users.getInfo" target="_blank">用户API</a>接口</p>
<h2>2. 病毒式的传播(Mass Distribution through the Social Graph)</h2>
<p>传播的核心是feed体系(从09年的眼光来看，Twitter的feed可能比它做得更出色，甚至造成了威胁，并进一步引发它最近的homepage改版)。App可以发布3种不同类型的Feed</p>
<ul>
<li>application story，相当与应用添加提醒，比如A添加了某应用。</li>
<li>simple story, feed里面表现为一行文本。</li>
<li>full story, 详细，可以预览图片，视频等。</li>
</ul>
<p>关于feed可参看另外一篇技术分析文章：<a href="http://timyang.net/sns/facebook-feed/">Facebook的feed格式设计</a></p>
<p>App可以发送notification(提醒)，request(邀请)。Facebook还提供平台级别的工具如friend selector供app使用。Facebook还通过应用嵌入到Profile通过exposure让更多的用户来使用，比如用户看到好友Profile某个应用有趣也会立即add。</p>
<p>通过以上途径，促进应用的传播，促进信息的传播，促进人的社会化交流。</p>
<h2>3. 商业机会(New Business Opportunity)</h2>
<p>canvas page可以放任何广告，也可以进行电子商务进行销售，app可以获得所有收入。对于这两种方式，Facebook都是持支持态度。</p>
<p>视频：Mark Zuckerberg Keynote Speech f8 2007<br />
<a href="http://www.facebook.com/video/video.php?v=28202665043&amp;ref=mf" target="_blank"> http://www.facebook.com/video/video.php?v=28202665043&amp;ref=mf</a></p>
Similar Posts:<ul><li><a href="http://timyang.net/sns/facebook-f8-0/" rel="bookmark" title="July 1, 2009">Facebook平台设计(二)</a></li>

<li><a href="http://timyang.net/sns/facebook-feed/" rel="bookmark" title="June 2, 2009">Facebook的feed格式设计</a></li>

<li><a href="http://timyang.net/architecture/friendfeed-like-aggregator/" rel="bookmark" title="April 3, 2009">Ideas for creating a friendfeed like feed aggregator system</a></li>

<li><a href="http://timyang.net/sns/web20-forum/" rel="bookmark" title="June 6, 2010">Web 2.0技术沙龙设想</a></li>

<li><a href="http://timyang.net/sns/twitter-api-changes/" rel="bookmark" title="December 30, 2009">Twitter API最近的一些飞跃</a></li>
</ul><!-- Similar Posts took 8.947 ms -->]]></content:encoded>
			<wfw:commentRss>http://timyang.net/sns/facebook-platform-f8-07/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
