第五章 面向资源的架构:在web中
这一章展示的是聚焦信息的架构,它和web有一样的明确特点:伸缩性、弹性、架构迁移策略、信息驱动的访问控制等。在一些企业中内部的信息管理比不上web,造成状况的原因与技术有关和公司策略也有关。作者首先介绍了传统的web的概念,大概就是文档和链接。Web使用的命名机制让我们能标识文档、数据、服务甚至概念。关注点分离式web交互方式的关键抽象之一。但这不是必需的,我们可以复用同样的逻辑名称、支持多种类型的交换。面向资源的架构的标识是向命名的资源发起逻辑请求的过程。这些请求的某种引擎解释,转成该资源的物理表现形式。当组织机构摆脱了数据寻址的麻烦之后,就可以得到一些好处,撤了可以让后台系统缓存结果之外,还可以通过谨慎的方式迁移一些新技术。面向资源的架构方法实现了一些折中,一方面,对于传统的方法来说,这些方法可能看起来有些奇怪,而且没有尝试过。另一方面,对于那些研究过web和它的基本组成模块的人来说,它很有意义,代表了人们设想和实现过的最大、最成功的网络软件架构。一方面,它要求一种完全不同的思考方式。另一方面,它支持一种强大的机制,包装并复用已有的代码、服务和基础设施,为它们踢狗逻辑命名接口,对所有形式的交互都不透露实现细节。
第六章数据增长:facebook平台的架构
这是一个围绕数据建立架构的例子,包括用户提交的个人关系映射表、传记信息,以及文本或其他媒体内容。Facebook的工程师在构建站点其余部分的架构时,关注的是显示和操作这些社会关系数据。“facebook社会关系网站”在概念上是一个标准的n层栈,用户的请求会从Facebook的内部库中取出数据,然后通过Facebook的逻辑进行转换,最后facebook的界面输出。Web应用,即使是不提供也不使用任何的数据平台,基本上仍然是由它们内部的数据来驱动的。随着所谓的“web2.0”的网络技术逐渐流行,数据在系统中的核心地位就变得更明显了。Web2.0展现的核心主题就是它们是数据驱动的,用户本身提供了绝大部分的数据。创建一个社会关系web服务,在数据方面要创建一个XML Web服务,然后简单的web服务认证握手。创建社会关系数据查询服务,通过批量方法调用,用FQl查询语言包装内部数据。创建一个社会关系web门户:FBML。Facebook的用户贡献的社会关系有效地提高了所有页面的效用。这样的新型数据服务不一定局限于社会关系信息。随着用户贡献和使用的信息越来越多,这些信息在许多容器站上都很有用。