facebook架构设计中文版

facebook架构设计中文版

ID:15355960

大小:599.32 KB

页数:39页

时间:2018-08-02

facebook架构设计中文版_第1页
facebook架构设计中文版_第2页
facebook架构设计中文版_第3页
facebook架构设计中文版_第4页
facebook架构设计中文版_第5页
资源描述:

《facebook架构设计中文版》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、原则与特性结构第6章Ö功能多样性Ö模块概念完整性Ö依赖关系Ö修改独立性进程Ö自动传播Ö数据访问可构建性Ö增长适应性数据增长:Ö熵增抵抗力Facebook平台的架构DaveFetterman给我看你的流程图而藏起你的表,我将仍然莫名其妙。如果给我看你的表,那么我将不再需要你的流程图,因为它们太明显了。—FredBrooks,《TheMythicalMan-Month》(人月神话)6.1简介当前大多数计算机科学的学生将FredBrooks的这句话理解为:“给我看你的代码而藏起你的数据结构⋯⋯”信息架构师坚

2、信,处于大多数系统核心的是数据,而不是算法。随着Web的兴起,用户产生和消费的数据比以往更加推动了信息技术的使用。Web用户不会去接触QuickSort(快速排序)。他们会访问一个数据仓库。这些数据可以是通用的,如一本电话簿;也可以是私有的,如一个在线仓库;也可以是个人的,如一个博客;也可以是开放的,如当地的天气情况;还可以是严格保护的,如在线银行记录。在任何情况下,Web呈现的几乎所有面对用户的功能归根结底都是提供一个界面,访问站点专有的一组核心数据。这些信息构成了几乎所有网站的核心价值,不论它是由

3、顶级员工研究团队创建的还是由世界各地的用户创建的。数据推动了用户喜欢的产品,所以架构师围绕数据创建了其余的传统“n层”软件栈(逻辑层与显示层)。这个故事讲的是Facebook的数据,以及它如何与Facebook平台的创建一起发展。Facebook(http://facebook.com)是一个很有用的围绕数据建立架构的例子,包括用户提交的个人关系映射表、传记信息,以及文本或其他媒体内容。Facebook的工程师在构建109站点其余部分的架构时,关注的是显示和操作这些社会关系数据。这个站点的大多数业务逻

4、辑与这些社会关系数据密切相关,诸如对各种页面的流程和访问模式,搜索的实现,查看新闻内容,以及对内容应用可见性规则。对于用户来说,这个站点的价值直接来自于他和与他有关的人对该系统所贡献的数据的价值。“Facebook社会关系网站”在概念上是一个标准的n层栈,用户的请求会从Facebook的内部库中取出数据,然后通过Facebook的逻辑进行转换,最后通过Facebook的界面输出。Facebook的工程师意识到这些数据的用处超过了这些容器的限制。Facebook平台的创建显著地改变了Facebook数据

5、访问系统的形态,它包含的愿景远远超出了n层栈的分离功能,目标是以应用的形式来集成外部的系统。利用居于架构中心的用户社会关系数据,该平台开发了一组Web服务(Facebook平台应用编程接口,或FacebookAPI)、一门查询语言(Facebook查询语言,或FQL),以及一种数据驱动的标记语言(Facebook标记语言,或FBML),目的是将应用开发者的系统与Facebook的系统结合在一起。随着某些数据集越来越广泛地提供出来,而且用户要求跨越多个网和桌面应用来统一使用他们的数据,阅读本章的架构师可

6、能会发现自己已经是这样一个平台的消费者,或者围绕着自己站点的数据建立了类似的平台。本章将向读者展示Facebook以一种受控的方式向外界开放数据的过程,跟随数据演进的每一步的架构选择,以及调和数据开放与渗透在社会关系系统中独特的隐私需求的过程。它包括:•促进这些类型的集成。•将数据功能从内部栈调用移到外部可见的Web服务上(FacebookAPI)。•授权访问这个Web服务,注意保持这个社会关系系统的隐私性。•创建一种数据查询语言,减轻这个Web服务的新客户端的负担(FacebookFQL)。•创建一

7、种数据驱动的标记语言,将应用的显示集成回Facebook,同时也支持使用其他方式不能访问的数据(FacebookFBML)。当我们将应用的架构从分离的栈进行了足够的演进之后:•创建一些技术来弥补Facebook体验与外部应用体验之间的差异。对于数据平台的使用者,本章展示了我们所做的设计决定和这些决定背后的理由。用户会话、身份认证、Web服务和各种处理应用逻辑的方式等概念将不断重复出现,它们是Web上所有这些类型的平台的主题。理解它们背后的思想为数据架构提供了巨大的实践机会,而且考虑到这些平台制造者将来

8、可能创建的功能和形式,这种理解也相当重要。我们鼓励数据平台制造者心里想着自己的数据集,然后从Facebook开放其数据模型的方式中学习。某些设计选择和折中可能只适合Facebook,或只适合处理有隐私保护的社会110第6章关系数据,可能不完全适用于给定的数据集。但不管怎样,在每一步我们都给出了一个实际的问题、一个数据驱动的解决方案,以及该解决方案的高层实现。对于每个新的解决方案,我们基本上会创建一个新的产品或平台,所以在任何时候我们都必须让这个新产品符合

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。