一个好的架构的形成不仅是架构师的功劳,还有团队的集体合作,主要因素:确实进行有意为之的前端设计;设计者有很好的素质和经验;在开发过程中,保持清晰的设计观点;授权团队负责软件的整体设计;不要害怕改变设计;让合适的人加入到团队中,让团队保持健康的工作关系;在合适的时候做出决定;好的项目管理和合适的最后期限。
在后来介绍架构伸缩性的时候以常见的在线游戏的设计为例,这类软件对系统的伸缩性要求很高,要能实时伸缩,减少延时。随即提出了两种解决方案:分区和基于地理位置,每个地理区域的玩家运行在一台服务器上。
在介绍数据增长对架构影响的时候以以Facebook为例,说明了Facebook的独特平台是如何解决了数据迅速增长的情况下系统的架构是如何维持稳定的。Facebook的独特平台主要是有一下几个部分组成的:
Facebook API是为了实现通过一个外部可以访问的Web服务来提供Facebook数据,实现应用可以利用在Facebook上的用户社会关系数据,但是不能直接访问。
Facebook的FQL的提出是为了解决从其平台API获取数据比获取内部数据的开销大得多的问题,FQL提供的是一种查询服务。类似内部数据采用的模式,实现外部数据访问模式。它能让开发者更快的处理它的请求,能够以比API更好的力度来访问数据,同时保持了SQL类似的语法。
FBML的提出时基于这样一个实际问题:对于社会关系应用来说,要获得引人注目的关键性用户数,支持它的社会关系网络上的用户必须要能注意到其他用户在利用这些应用进行交互;外部应用不能够使用Facebook没有通过Web服务暴露出来的哪些核心数据元素。FBML是一种数据驱动的标记语言,在社会关系站点上创建应用执行和显示的内容,让用户在一个受信任的环境下操作。
原文地址:http://www.cnblogs.com/liguoshuai/p/6414264.html