与 Mike Amundsen 的访谈,《RESTful Web APIs》的作者

Carson Gross

Mike Amundsen 是一位计算机程序员、作者和演讲者,是世界上 REST 与超媒体领域的领先专家之一。他从 2008 年开始撰写关于 REST 和超媒体的文章,并出版了两本相关书籍:

Mike 同意接受我的访谈,分享他对超媒体历史以及当前状况的看法。

Q: 超媒体的“标准”历史是 Vannevar Bush 的“As We May Think”,随后 Nelson 在 1963 年引入“hypermedia”一词,Englebart 在 1968 年的“Mother of all Demos”,然后 Berners-Lee 在 1990 年创建了 The Web。您认为沿途还有其他重要的点吗?

我认为以 Bush 开始现代 Web 的历史是非常合理的。主要因为你可以直接将 Bush 与 Engelbart、Nelson、Berners-Lee 和 Fielding 联系起来。这半个多世纪的学术研究、设计和实现,我们可以研究、学习并加以扩展。

与此同时,我认为超媒体故事中有一个无名英雄,这个故事可以追溯到 20 世纪初。我指的是比利时作家和企业家 Paul Otlet。Otlet 设想了一个名为“World Wide Network”的多媒体信息系统。他看到了如何将文本、音频和视频结合成一种实时和按需回放内容的混合形式,从世界各地获取内容。他甚至设想了一种多媒体工作站,支持搜索、存储和播放内容,这是我能找到的最早的“流媒体服务”概念实例。

为了支持这一切,他创建了 一个研究者社区,他们阅读专著、文章和书籍,然后将其总结成一页或更少的长度。他设计了一个识别系统——类似于我们今天的 URI/URN/URL,并创建了一个庞大的卡片目录系统,以实现搜索和整理结果,形成可以分享的包——甚至通过邮政服务发送给接收者。他在 1920 年代创建了通过邮件进行的网络搜索!

这是一个远超时代的人,我希望在超媒体和信息系统圈子中能更多地谈论他。

Question: 您认为为什么 The Web 胜过了其他超媒体系统(如 Xanadu)?

简短的原因是,我认为 Xanadu 是一种更详细和具体的文档链接方式,记录来源并补偿作者。这是一个宏大的愿景,但在 Nelson 在 60 年代和 70 年代分享他的想法时,很难实现。

当然,还有很多其他因素。Berners-Lee 的愿景要小得多(他试图让 CERN 员工更容易分享联系信息!)。我认为 Berners-Lee 在实现细节上更务实。他自己说他使用了现有技术(DNS、数据包网络等)来实现他的想法。这意味着他吸引了来自不同社区的兴趣(电话、信息系统、计算、网络等)。

我还想说,我希望 Wendy HallMicrocosm 能获得更多关注。Hall 和她的同事在 90 年代构建了一个极其丰富的超媒体系统,并在 Berners-Lee 的“The Web”版本可用之前发布了它。而且 Hall 的 Microcosm 更紧密地遵循了 Bush、Englebart 和 Nelson 对超媒体系统实现的思考——主要是通过在单独的“锚点文档”中存储超链接,而不是在源文档本身中。

Question: 您如何看待我的文章“How did REST come to mean the opposite of REST”?您对其中有哪些观点不同意?

我在 2022 年您发布它时读过那篇文章,并很喜欢它。虽然我没有什么可争论的,但有一些观察可以分享。

我认为大多数超媒体开发者和研究者都会经历一个循环:先接触“常见”的 REST,然后后来了解“Fielding 的 REST”,然后带着获得的知识返回“常见 REST”世界,并试图让其他人加入;通常只取得一点小成功。

我知道您喜欢 meme,所以我在这里添加我的。这个远离家园、进入扩展知识并返回曾经平凡生活的旅程——对我来说——只是 Campbell 的 Hero’s Journey 的另一个例子<g>。我对此感觉如此强烈,以至于我创建了 我自己的 Hero’s Journey 演示文稿,多年来在 API 会议上呈现。

更直接地说。我认为许多读者(那些真正读过它的人)错过了 Fielding 论文的一些关键点。Fielding 的论文是关于设计网络架构的,而不是关于 REST。REST 被作为真实世界的例子提供,但它只是一个例子;是他对信息网络设计方法的例子。来自同一学派(UC Irvine)的其他设计包括 Justin Erenkrantz 的 Computational REST (CREST) 和 Rohit Kare 的 Asynchronous REST (A-REST)。这些努力传达了 Fielding 的信息:“让我们设计网络软件系统!”

但这是大多数真实世界开发者需要处理的更抽象的工作。他们必须快速且一致地将代码推出去并运行。Fielding 的工作,他承认,是在 “数十年规模”——这是一个大多数开发者没有报酬去考虑的规模。

从长远来看,我认为一篇近四分之一世纪前的博士论文对日常开发者有如此强烈的影响是非常惊人的。这很罕见。

Question: Hyperview 是 Adam Stepinski 创建的移动超媒体,它明确基于您的书籍。您看过他的系统吗?

我看过 Hyperview,并喜欢我所看到的。然而,我必须承认,我不再编写移动代码了,所以我还没有亲自编写任何 hyperview 代码。但我喜欢它。

我在 2022 年与 Adam 谈论了 Hyperview,并对他的想法印象深刻。我希望看到更多人谈论和使用 Hyperview 方法。

我当时很可能对 Adam 提到的一件事是,Hyperview 让我想起了 Wireless Markup Language (WML)。这是一个基于 XML 的文档模型,旨在在功能手机(智能手机技术之前)上渲染早期 Web 内容。另一个基于 XML 的超媒体领域特定文档格式是 VoiceXML。我仍然认为超媒体驱动的领域特定标记语言 (DSML) 有很大的应用潜力,并希望看到更多这样的使用。

Question: 这或许是痴心妄想,但我感觉对超媒体和 REST(真正的 REST)想法的兴趣正在复苏。您也这样认为吗?您觉得企业是否开始认识到这种方法的优势?

我自己认为超媒体启发的设计和实现正在增长,我很高兴看到这一点。我认为 API 领域的许多工作已经引导市场开始思考如何降低使用和互操作远程独立服务的入门门槛。而超媒体控制范式(您和您的同事在论文 “Hypermedia Controls: Feral to Formal” 中讨论的那个)提供了一种优秀的方式来实现这一点。

我认为在商业中使用更多超媒体的最大障碍是 几年前被 Leonard Richardson 相当确凿地阐述 的。他帮助构建了一个强大的 基于超媒体的图书共享服务器和客户端 系统,以支持世界各地的公共图书馆。他指出,在图书馆领域,每个站点不是竞争者而是合作伙伴。这意味着图书馆被鼓励更容易借出书籍并与其他图书馆互操作。

大多数企业采用相反的模式。它们通常通过创建入门障碍和囤积资产而不是分享来成功。超媒体使分享和交互更容易,而无需中央控制或其他类型的“守门”。

话虽如此,我认为增加使用超媒体以降低门槛并提高交互的成熟领域是在大型组织的企业层面。大多数大公司花费巨资构建和重建界面,以改善他们的内部信息系统。我不禁认为设计和实现超媒体驱动的解决方案将带来长期节约,并实现近期可持续的互操作性。

Question: 您认为超媒体中有哪些概念是我们忽略的?或者换句话说,一些值得再次审视的旧想法?

嗯,正如我刚才提到的,我认为超媒体在互操作性领域有重要作用。而且我认为 API 时代在某些方面分散了我们对超媒体控制作为服务对服务交互设计元素的注意力。

虽然我认为 Nelson、Berners-Lee 和其他人已经很好地阐述了人与机器交互的可能性,但我认为我们忽略了超媒体为机器对机器交互提供的可能性。我惊讶于今天我们没有更多基于超媒体的工作流系统可用。

而且我认为 LLM 驱动自动化流行的兴起是创建基于超媒体的可组合服务并“即时编排”的另一个伟大机会。我担心我们会过于纠结于让生成式 AI 系统看起来和表现得像人类用户,从而错过设计专为利用统计语言模型优势而设计的超媒体工作流的机会。

我在这个领域看到了一些有趣的东西,包括 Zdenek NemecSuperface 项目,它已经在这个基于超媒体的工作流上工作了几年。

我只是认为有很多机会应用我们从过去 100 年(包括 Otlet)超媒体思考中学到的东西。而且我期待看到接下来会发生什么。

</>