今天我学习的是架构之美的第六章——数据增长:Facebook平台的架构。这一章利用Facebook为我们讲述了数据增长的架构。信息架构师坚信,处于大多数系统核心的是数据,而不是算法。Facebook是围绕数据进行架构的,facebook工程师关注的是显示数据和操作数据。
Web应用是由他们内部的数据来驱动的,随着web2.0的网络技术逐渐流行,数据在系统中的核心地位就更明显了,web2.0崭新的核心主题就是它们是数据驱动的,用户本身提供了绝大部分的数据。Facebook主要由一些核心数据映射组成,他们驱动这网站的观感和功能。
一个简单的认证策略——web服务认证握手能够让我们在尊重facebook用户隐私观点的前提下访问数据。Facebook API是为了实现通过一个外部可以访问的Web服务来提供Facebook数据,实现应用可以利用在Facebook上的用户社会关系数据,但是不能直接访问。
Facebook的FQL的提出是为了解决从其平台API获取数据比获取内部数据的开销大得多的问题,FQL提供的是一种查询服务。类似内部数据采用的模式,实现外部数据访问模式。FQL是一种简单的查询语言,包装了facebook的内部数据。输出的格式通常与facebook平台API的输出格式一样,但输入超出了简单的RPC库的模型,变成了SQL查询模型。
FBML的提出基于:1.对于社会关系来说,要获得引人关注的门户数,支持他的社会关系网络上的用户必须能够注意到其他用户在利用这些应用进行交互。2.外部不能使用facebook没有通过web服务器暴漏出来的那些核心数据元素。
Facebook的用户贡献的社会关系有效地提高了http://facebook.com上几乎所有页面的效用。虽然我们将关注重点完全放在那些使用Facebook的社会关系数据平台的应用的潜力和约束上,但像这样的新型数据服务不一定局限于社会关系信息。各式各样的平台提供者可以应用Facebook平台特有数据和web架构背后的这些思想,并从中受益。