罗伊·菲尔丁:现代网络架构师
在1994年至2000年间的某个时候,加利福尼亚州欧文市的一名研究生做了两件几乎从不同时发生的事情。他参与构建了运行世界上大多数网络服务器的软件,并撰写了理论来解释网络为何能够运作。前者使他成为Apache软件基金会的创始人之一。后者是一篇博士论文,其第五章命名了一种名为REST的架构风格——这四个字母如今出现在比过去三十年计算机科学系提出的任何其他想法都多的职位描述中,而输入这些字母的人中几乎没有人读过它。
拉古纳海滩
罗伊·托马斯·菲尔丁 (Roy Thomas Fielding) 于1965年9月出生在加利福尼亚州的拉古纳海滩。他曾这样描述自己,这种表达方式很适合一位将职业生涯投入到互操作性的人:“部分毛利人、新西兰人、美国人、爱尔兰人、苏格兰人、英国人和加州海滩流浪汉。”他在学术上从未离开过家乡:他在加利福尼亚大学欧文分校获得了全部三个信息与计算机科学学位——1988年的学士学位、1993年的硕士学位以及2000年的博士学位。
那十二年的跨度值得驻足思考。菲尔丁之所以重要的原因大多发生在这期间,与他的课程同步进行,而不是在其之后。他既不是后来加入工业界的学者,也不是后来积累资历的工程师。他在该对象被发明的确切年份,在同一个对象上同时完成了这两项工作。
吞噬互联网的服务器
菲尔丁共同创办了Apache HTTP服务器项目,这是一个开源的网络服务器,成为早期商业互联网的默认基础设施。随后,他从事了大多数技术创始人避之不及的平淡无奇的机构工作:他担任了HTTP服务器项目的副总裁,1999年至2003年担任Apache软件基金会的董事,并从1999年至2002年担任其首任主席,直到2014年5月一直留在董事会。他协助建立的基金会模式——一种允许竞争公司在不拥有代码所有权的情况下贡献共享代码的法律与治理外壳——此后被全行业效仿。
认可很快就到来了。Apache HTTP服务器于1999年获得了ACM软件系统奖。同年,《麻省理工科技评论》将他列入35岁以下顶尖创新者TR100名单,2000年,奥莱利(O'Reilly)授予他开源阿帕卢萨愿景奖。
编写协议
更深层次的贡献在于规范。菲尔丁是HTTP规范的主要作者,他的名字出现在定义本质上每一个联网应用至今如何通信的文件上。他撰写或共同撰写了关于相对URL的RFC 1808、关于HTTP/1.0的RFC 1945、关于HTTP/1.1的RFC 2068和RFC 2616,以及关于统一资源标识符通用语法的RFC 2396和RFC 3986。他还深度参与了HTML的开发。
特别是RFC 2616统治了互联网十多年,而RFC 3986至今仍是回答什么是URL这一问题的文档。编写这种规范是一门奇怪的学科:它与其说是发明,不如说是立法,即精确地描述世界上已经存在的事物,使得成千上万个独立的实现能够相互达成共识。菲尔丁为有史以来部署最广泛的协议完成了这项工作。
REST
2000年的博士论文《基于网络软件架构的架构风格与设计》是对这一切的理论说明。其论点与通常的软件设计方向相反。菲尔丁没有提出一个系统,而是提出了一套架构风格的词汇表——即约束集——并询问哪一组约束能产生全球、去中心化、可演进网络所需的属性。他推导出并命名为“表征状态转移”(Representational State Transfer,即REST):这是一种客户端-服务器、无状态、可缓存、统一接口、分层的风格,其中各个部分是资源,客户端通过跟随服务器提供的超媒体在应用程序中移动。2000年,他为最后一个约束创造了术语HATEOAS——即“超媒体作为应用状态引擎”。
实际上,这篇论文是对网络为何在工程上更优越的分布式系统未能幸免的情况下,度过了自身爆炸式增长的阶段的追溯性解释。它成为了该行业引用率最高的架构文档。
Waka
他也试图超越它。2001年至2006年间,菲尔丁致力于开发Waka,这是一种基于二进制、令牌的HTTP替代方案,旨在比他自己制定的文本协议更有效地匹配REST风格。它从未完成,也从未部署。互联网继续在HTTP上运行。
为什么罗伊被称为天才
这里的具体能力是架构抽象:即能够审视一个正在运作、混乱且在历史上具有偶然性的系统,并从中提取出实际上解释其属性的小型约束集。菲尔丁弄清楚了网络运作的“原因”——为什么无状态性带来了可扩展性,为什么统一接口带来了独立演进,为什么缓存和分层允许在原始设计者从未见过的地方插入中介。推导出这些后,他将其用作设计纪律,指导HTTP/1.1和URI标准,以便网络的增长不会破坏他分析中所指出的承重属性。在数百万用户正在使用基础设施的同时,他一边工作一边同时进行理论、标准编写和参考实现,这才是真正不寻常的部分。
反面观点是公平的。他的声誉很大程度上建立在一个想法及其编码文档之上。他的主要奖项,1999年ACM软件系统奖,授予了Apache服务器——一个协作产品——这里咨询的任何来源都没有记录任何权威称他为天才。他试图超越自己协议的尝试(Waka)运行了五年,但毫无结果。而REST的命运本身就是对清晰度的一种控诉:这个概念的名称现在不加区别地应用于任何在HTTP上传输JSON的接口,其中大多数忽略了他认为必不可少的超媒体约束。那是影响力,但这并不等同于被理解。
遗产
菲尔丁在工业界穿梭,从未离开过这一学科:1999年至2002年担任eBuilt的首席科学家,2002年至2010年担任Day Software及随后的Adobe首席科学家,此后在圣何塞的Adobe担任高级首席科学家。他明确列出了自己的研究兴趣——万维网、基于网络应用程序的软件架构、应用层网络协议、协作软件开发方法以及全球软件工程环境——并将三十年的时间全部投入在这些领域中。
衡量他工作的标准是它是无形的。每一个网络请求都遵守他写下的规则;每一个URL是合法的,因为有他署名的文件定义了合法的含义;每一个声称“REST API”的工程师都在引用(通常不准确)他在欧文写的论文章节。基础设施是唯一一种通过被遗忘而成功的作者形式,而菲尔丁被遗忘得比大多数人都彻底。

