CCCF专题 | 图灵奖得主罗伯特•卡恩:数字对象与互联网
在《中国计算机学会通讯》(CCCF)第12期专题栏目,刊登了CNCC2018特邀报告整理稿。我们将陆续转载这些文章,将讲者的精彩观点分享给大家。
很荣幸来到这里,这可能是我参加过的关于计算机科学的最大一次聚会。我受CNCC2018大会主席梅宏教授之邀来讨论关于数字对象架构的内容。数字对象在互联网环境中的作用是这次会议关注的重点。自计算机领域诞生以来,在与计算机领域相关的成就里,科研人员发挥了核心作用,这可以追溯到七八十年前,甚至更久之前。在这里,我先讲一些关于互联网发展的历史,以及现在和将来所面临的挑战。
数字对象架构在互联网演化中的作用
我们先了解一下数字对象(digital objects)以及它们在特定时期的位置。
普林斯顿大学数学系有很多人研究与数学看似不相关的东西——符号逻辑,其实这也是数学的一部分。有一个由著名教授阿隆佐·邱奇(Alonzo Church)1管理的小组,专注于lambda演算的研究,后来这个演算成为人工智能中的一种主要编程语言Lisp的基础。还有一个小组由库尔特·哥德尔(Kurt Gödel)2领导,库尔特正在与大学的其他人一起研究递归函数理论,这是一个独立的兴趣领域。与此同时,一个名叫阿兰·图灵(Alan M. Turing)的英国年轻人,正在写一篇关于可计算数字的博士论文。现在你可能认为那是每个人都能够理解的东西,但实际上在当时没有人真正知道这个工作的意义。“可计算的数字”是什么意思呢?二加二等于四,是这个意思吗?当然不是。图灵提出了一个真正的计算机制,称为图灵机。图灵机面向的是一个小问题,涉及一个无限尺寸的磁带的及时前进和后退。但是在实践中人们并没有真正意识到这一点。不久之后,另一位普林斯顿大学校友约翰·冯·诺伊曼(John von Neumann)说:“如果我们能把这个无限长的磁带用有限尺寸的磁带实现,那么虽然不能完成图灵机做的所有事情,但是已经可以做很多事情。”这成为了20世纪后来大部分计算的基础。
有人断言,互联网把计算带到了第三个维度。图灵对计算有了一维的看法,冯·诺伊曼把它带到了互联网上的二维,然后带到了三维。我对这个概念感到困惑,因为互联网不是以任何方式、形状或形式进行计算的,是网络使得计算机协同工作。大多数人谈论互联网,想到的是网络中的计算机,以及构成网络协同工作的所有东西。但实际上,互联网真正的目的是如何使这些东西协同工作。想象一下,在20世纪20年代,有人告诉你他有一个半导体芯片是CPU处理器,还有可以存储位的半导体芯片。他说,如果你把这两件东西放在一起,你就可以拥有电脑了。但是在那个阶段,人们会想,我们需要做什么才能制成电脑呢?在图灵完成他的作品之前,这意味着什么呢?这不仅仅是把这两件东西放在一起那么简单,他们必须了解计算机是什么,神奇的是,他们做到了,并且做得很好。图灵实际上是第一个做编程机器的。但他并不是在谈论编程语言,不是在谈论这些年来计算机科学领域出现的所有创新,也不是说你将要运行的应用程序。我讲这些例子的目的只是想说,早在20世纪20年代,甚至30年代,他们必须对未来有非常远见卓识的看法,才能想象所有这一切。通过这个思想才能理解我过去讲授有关互联网的重要性。
在20世纪70年代,我们在IEEE的一次会议上发表了关于TCP/IP协议的定义。很多人说我做了一次精彩的演讲。我很喜欢这些说法,但是他们并不真正理解,因为最后他们会说,请再告诉我一次,为什么我需要一个IP地址?因此,除非你能够想象出互联网上有一组集体连接的机器,你才能够理解IP地址的作用,否则你根本不知道IP地址可以做什么。
今天,我尝试描述数字对象体系结构,我预测你们中的一些人能够理解并外推这个概念。当我们首次介绍互联网时,它实际上还不存在。人们无法触摸它、无法感觉也无法使用它。人们并不真正了解它的含义。早期的计算机也是如此。但是你们应该能够实现这一思维跳跃,因为你们在这个领域已经有一段时间了。当然有人可能会说:“你讲的技术虽然很好,但我并不需要,因为我想管理的实际上是互联网上数字形式的信息,我今天就可以做到”。
但是你必须问问自己,今天的技术所没有解决的未来社会需求是什么?这需要有一定的眼界。出版业和图书馆是最先认识到资源定位重要性的行业。当他们谈论一种类型的数字期刊时,他们希望有安全和稳定的网站能够持续地提供服务。当它在互联网中被引入时,许多人认为这个技术确实是需要的。这里引入的技术,就是所谓的统一资源定位器(Uniform Resource Locator, URL)。如果你试图引用一个统一资源定位器,它可能会工作100年。也许你想要持续得到公司信息或者是对你非常重要的信息,也许你想让每个人都能持续得到它的研究信息。但是,现有网络并不一定能够为你做到这一点。不过你可以使用数字对象中的一部分技术,设计一个非常规的架构。你需要为这些处理信息添加持久性标识符。互联网上的寻址和识别就和此技术相关,所以处理这些技术问题,也从根本上发生了很大变化。自从我们在1978年发表的论文中首次引入“持久性标识符(persistent identifier)”这一概念以来,互联网上的基础网络已经扩大了大约1000万倍。
尽管协议的基本架构没有改变,但我相信今后的10~20年,它将扩大到10亿或1万亿倍。这在任何技术发展的历史中都是非同寻常的。所以,我想谈谈我们如何发展互联网以促进数字信息的管理。为了方便系统扩展,设计的网络需要具有准确、快速、高效、独立于特定的网络和计算机、开放的体系结构、可随时间扩展等特点。
我认为这是历史上一个非常重要的时刻,可以帮助我们在今年或未来几年在这个领域做出重大改变。你可能会问,为什么我不能一直使用现有的技术?为什么不能用数据库来存储数据?因为数据库有很多不同的类型,并且它们并非全部可互操作。随着时间的推移,它们会发生变化,数据库接口将会改变,而且你不一定要将信息转来转去。你可能会说我们有云,为什么不用云解决方案?因为云只是一个短期的方案。如果你再次审视未来,云方案可能会发生惊人的变化。此外,它们都有自己独立的接口,在某些情况下,它们是专有的。而你真正需要的是实现互操作性并能够经得起时间考验的方法。原始的互联网的整个目标是进入当时称为“分享不同时间、不同信息系统”的计算机。
1970年,我们写了一篇论文,当时分时系统(time sharing system)不能为公众所用,只有一些专门的研究机构才有。美国当时大约有100个,我们还看不到个人电脑、工作站。
今天的技术允许我们做什么?假如你有一个信息文件,它被保存在一台机器中,你将它移动到另一台机器中,那么第二台机器将拥有它。你可以在那台机器上做你想做的工作。如果你要保证所有设备上的这条信息是相同的,那么必须在所有设备上做同样的修改。
我们可以用数字对象架构中的一部分功能来解决这个问题,它将信息管理置于一个共同的框架中。当你操作某个信息时,无论你做什么操作,都是在相同的框架下进行的。你可以以数字形式来访问这条信息,我们称这条信息为数字对象,它具有唯一的持久标识符。在将来的任何时候,你都可以根据该标识符找到这条信息,而无须知道该机器的接口是什么。
互联网的原始定义是利用IP协议的全球信息系统(见图1)。在我看来,这个定义在今天仍然很好。我们要做的是从根本上将互联网发展到另一个级别。互联网旨在将数据从一台机器移动到另一台机器,但是协议应该独立于实际的网络和计算机。如何定义一种开放式的、具有明确的接口协议和消息,一种可随时间扩展的和非专有的架构,仍然是我们要做的事情之一。
假设我们回到100年前,如果你想要获得一些信息,这些信息只在一个给定的文件/图书中。图书馆花了很长一段时间整理实体图书馆藏,并使用卡片目录帮助你找到这些图书,或者在图书寻找失败后向你推荐另一个图书馆。显然,这个方法非常低效。直到20世纪90年代,随着数字期刊的出现,出版商终于不再使用这种方法来解决问题。
他们发现了数字对象架构并且找到了他们感兴趣的部分。当然,现在你不一定去使用架构的每一个部分,但我认为它们的每个部分都是以一种非常重要的方式结合在一起的。
如果你要了解标识符的用途,首先需要了解整个架构的内容,就像你为了理解IP地址为什么有用,而需要了解互联网以及该架构的内容一样。
中国是最具戏剧性的案例之一。去年12月,我参加了在北京举办的DOA论坛3。这个论坛让我大开眼界,让我了解到在工业、建筑业、制药业、电信业、银行业方面都使用了互联网相关技术。但他们都担心现在已经出现或者是未来五年、十年或五十年内会出现的问题,而他们中却有很少人有能力去解决这些问题。
虽然有些问题无法用现有的技术来解决,但是如果可以在很长一段时间内以稳定的方式降低管理信息的障碍,这就是有意义的。这就像使独立的医疗系统协同工作以实现互操作性一样。我们会想出各种各样的方法,但如果从对社会长期影响的角度考虑,这将是我们可以做出的重大贡献。
数字对象架构
什么是数字对象架构(Digital Object Architecture, DOA)呢?我将其视为互联网的逻辑扩展。它们具有相同的属性:简单性、可扩展性、开放式架构和非专有性。无论在短期内还是长期内,数字对象架构都可以降低互联网管理信息的障碍,它不仅发展了互联网,而且完全兼容互联网。
很多人会担忧,今天互联网的某些部分将来会不会消失呢?答案是不会。只要它被广泛利用,就不会消失。在这个架构中,随着时间的推移,我们将看到许多不同类型的信息系统,一部分是旧的,一部分是新的,它们都在动态变化中。物联网一直是我思考这种架构的主要驱动力,因为它不像是某个事物,而是一个小小的设备,它可以向你提供一些简单的信息,比如温度。在不太遥远的未来,可能会有多达数千亿的这种设备出现在不同的场合,通过不同的传感器采集各种信息。
数字对象架构是未来互联网发展的重要组成部分。假如你拥有全球所有不同的信息系统,那么一个更有说服力和价值的工作是如何找出一种方法让它们随着时间的推移而协同工作,并能够持续工作50年甚至100年,以及如何让那些使用不同技术的新系统协同工作。这样,他们将成为非常大的信息系统。但是我们不考虑云以及其他类似的东西。
现在的每架飞机都是一个大型的信息系统,每辆汽车也将成为一个非常大的信息系统,随着自动驾驶技术的出现和完善,这个信息系统将变得更大。但我们必须确保这些信息系统相互协调,并能够很好地运营。汽车需要与汽车互动以避免碰撞,飞机也需要与飞机互动。但是,为什么不让一架飞机与一辆汽车互动,警告汽车当飞机将要降落在高速公路或其他道路上时不要跑到这条道路上去呢?
许多地方都需要互操作性,但是并没有实现。互操作的安全性保证很重要,这有利于我们应对其运营过程中的所有威胁。因此,在数字对象架构中我们集成了安全性,目前是基于公钥基础设施(Public Key Infrastructure, PKI)实现的。这个在以后可以不断更新,就像我们不时更新互联网上的路由一样。
数字对象
数字对象(Digital Object, DO)是一个比特序列,可能包含你熟悉的信息。最初,人们认为它们只是受版权保护的文件,包含有某一方感兴趣、有价值或者拥有某些权利的信息。1997年,我们在科罗拉多大学法学期刊上发表了一篇论文,解释了如何获取数字对象、一组比特并赋予它价值。今天,这个技术在货币加密领域受到广泛关注。
每个数字对象都必须具有关联的唯一持久标识符,这一点非常重要。有些人认为标识符只是附加的,并非必需的。虽然我还不清楚你是如何附加这些标识符的,也不清楚如何将位置信息以及其他相关联的附件附加在位中,但是实际上,已经提出的各种方法都是基于我们的方法解决的。每个数字对象都包含一个或多个元素,这些元素是“类型-值”对,用于描述该元素的所有内容。
数字对象接口协议
数字对象接口协议(DO Interface Protocol, DOIP)有一个源于ITU-X.1255的全球标准,此协议允许客户端软件或其他系统直接与信息本身交互,而不是与文件进行交互。假如100年后有人告诉你,你想要的信息存储在某个文件中,这个文件在100年前的某个IP地址的机器中时,你可能将无法获得这条信息,因为那台机器可能早已不复存在,那条信息也一样。但是如果你拥有这条信息的标识符并且有人管理它,那么你可以直接从标识符找到那个数字对象并获得它。不过不能保证你能够理解其中的信息,因为它可能是加密的,而你没有密钥;或者它可能以专有数据格式表示,而你没有解释它的软件。
当然,这只是一个基本想法,数字对象接口协议和标识符都是数字对象接口的一部分。出版商是最早使用它的人之一。我早些时候听一家公司说过,他们在使用这项技术——我们多年前创建的一种技术,它是标识符的品牌版本——用手写出来并将它们称为数字对象标识符(Digital Object Identifier, DOI)。这个系统已经在全球广泛使用,并且已经运行了近30年,是一个比较鲁棒的系统。
像这样的系统有很多,它们大多都是专有系统或嵌入式系统。一旦你运用了这些技术,我相信你能做的事情是我们创建原始互联网时无法想象的。所以,当有人问我“你是否想过互联网会变成什么样子?”时,我今天的观点对此进行了解释,这是一个值得研究的问题。
数字对象架构的基本组件
数字对象架构的基本组件之一是存储库(DO Repositories)。你可以存储数字对象,并可以通过其标识符来访问它们。数字对象存储库可能是云服务,也可能是磁盘阵列或者其他设施。在未来,我们可以根据标识符找到这些信息,以便进一步处理。这就是数字对象寄存器(DO Registries)的来源,它们存储有关各个数字对象的元数据,并且可以用于搜索。
安全也是数字对象架构必须考虑的一部分。由于安全性已经被嵌入到了数字对象中,必须拥有正确的密钥才能访问,所以你不必担心财务、健康等敏感信息被泄露。
数字对象架构假设互联网环境中用于处理数字对象的每个实体都具有“身份”(identity),所以它一定能够发展起来。你可以轻松访问每个系统、每一条信息,是因为你可以轻松找到公钥。现在假设我们拥有未来物联网中的万亿个设备,而且每个设备都有一个小存储库,但它并没有存储所有的数字对象。如果有人给你一个标识符,你就可以只访问存储那个数字对象的存储库,而不需要遍历所有小存储库。我们多年前创建了一个小型实验系统来实验一个标识符解析系统,该系统能够通过标识符映射到相关的状态信息中。
这里有与标识符接收者相关联的一个或多个公钥。如果它是个人的标识符,则会收到某种资源的公钥标识符。因此,了解了标识符、系统、用户等信息,就可以通过公钥基础架构来完成身份验证。
可以认证这些数字对象吗?你现在无法在任何系统上执行任何操作,它只是提供元数据。如果这些对象是不可变的,那么你可以验证你能用这些对象做什么或不能做什么,这就是许多处理区块链的人所假设的。实际上,你可以将加密验证直接嵌入到标识符本身,因为该对象永远不会更改。
如果它确实发生了变化,就像今天的报纸版本一样,你可以通过标识符系统获取信息记录进行身份验证。我们搭建了一个小系统进行原始实验,它显然无法扩展。因为如果你拥有1万亿个存储库,那么对象的数量可能会达到100万倍,所以你不希望它们都存在一个地方。当我们与越来越多的人交谈时,例如银行业务,他们都说“我们只想管理我们自己的记录,只想给出我们自己的身份”。
数字对象标识
现在可能有成千上万个本地标识服务在运行,在未来,可能会有100万个。所以我们继续创建一个注册表,以便索引这些人或者机构。对于想要创建标识的每个人,我们会给他一个数字,称之为前缀,把它放在任何想要使用的系统前面。
你可以为所有对象编号,生成加密字符串,这样,你的数据将与其他所有人的数据区分开来。要想识别这条信息,只须输入一个你独有的数字即可。现在全球已经有9个组织在做这项工作。第一个大规模使用它的是中国的一个联盟,它由政府的一部分组成;第二个是MIT的一个通信公司;第三个是风险投资集团早期投资的一个创业公司。
我设计计算机网络的初衷是连接被称为计算机的设备,它们实际上是大型信息系统。今天有更多的设备需要连接,可能多达一亿,那么我们将如何处理这个问题呢?我们需要一种方法来管理它,所以我参加了瑞士日内瓦建立的代表数字对象编号权威的基金会(DONA)4,并作为基金会主席负责分配和管理数字对象编号。我们想找到一种方法来高效、快速地路由这个系统。幸运的是我们做到了。
数字对象标识是什么样子的呢?它有一个前缀和后缀,并且用“/”分隔开。前缀通常是一个小数值,例如中国的前缀是“86”,中国的某个机构可以是“86.1234”,也可以是“86.1234.abc”。使用带“.”的复合前缀能够让一个组织授权并管理其他组织创建的标识。这个工作很多年前由美国国家研究推进机构(Corporation for National Research Initiatives, CNRI)建立,称为“Handle System(句柄系统)”,现在由DONA基金会负责。DONA基金会正在推动协议的升级,这也是它的职责之一,就像管理空域的政府机构,你不能通过它预定航道,它只负责保证所有航道的安全。全球有9个有资质的组织在执行数字对象标识的管理工作。他们正在做的一件事是共享数字对象标识,并将这个规范称为“数字对象接口协议”,任何访问用户都可使用该协议。你不仅可以指定与使用此功能的信息系统交互的目标,还可以通过标识符来标识操作。这使得它成为一个超级强大的接口,未来它将是其他系统的前端。
数字对象架构提供了一种独特的统一的方法来管理数字形式的信息,并允许你直接处理对象。它使得使用元数据生成标识的数据可以被找到,不仅保证了对象之间的互操作性,而且保证了协议的互操作性。这个架构的来源是互联网的移动编程。我们创建的编程语言使得人们更容易编写移动程序,被称为Python,现在是世界上最广泛使用的编程语言之一。
在互联网早期,有很多参考软件。尽管我们已经描述了数字对象接口的协议是什么,但是大多数人仍不知道如何创建它。因此,我们推出了一些参考软件供大家使用。你不用再担心协议是如何实现的,也不需要花时间去弄清楚自己该怎么做,我们提供了现成的软件,你可以直接使用它。名为“Cordra”的开源软件的早期版本可以从http://www.cordra.org下载,我们将在接下来的几周发布最新版本。数字对象的整个体系结构很大程度上基于ITU-T协议X.1255。X.1255定义了数字对象为数字实体,数字对象和数字实体的概念名义上是相同的,可以相互引用。它设计了一个标识解析机制,并在2014年建立了数据接口协议。它支持一些核心体系结构标准,并且提供句柄系统的总体管理,包括全局句柄注册表。全局句柄注册表的运行机构可以相互协作,共享前缀数据库。
总结
数字对象架构是互联网的逻辑延伸,是一个通用的框架。它有详细的规范,能够让独立的机构安全地运维本地标识服务和存储库系统。当任何组织,无论是大学、公司,还是政府,要保留他们的数据时,可以用数字对象架构来创建能够被其他系统理解的信息,而不用考虑安全问题,并可以获知信息的去向。这些技术即使现在用不到,将来可能也会用到。因为现在你可以通过现有的其他技术找到你需要的东西,但是在未来的某个时候,你想要访问你需要的信息,就要用到这些技术。我希望这些内容能够给与会者提供帮助。
(本文根据CNCC 2018 特邀报告整理而成)
作者介绍
罗伯特·卡恩
(Robert E.Kahn)
•2004年ACM图灵奖获得者。
•TCP/IP协议发明者之一,互联网雏形Arpanet网络系统设计者。“信息高速公路”概念创立人。DONA基金会主席。
译者介绍
杨旭辉
•兰州大学博士研究生,甘肃省科学院传感技术研究所高级工程师。
•主要研究方向为物联网技术、机器学习等。
1 阿隆·佐邱奇(AlonzoChurch, 1903—1995),美国数学家,1936年发表可计算函数的第一份精确定义,对算法理论的系统发展做出巨大贡献。
2 库尔特·哥德尔(KurtGödel, 1906—1978),生于捷克的布尔诺(现奥地利)后入籍美国。数学家、逻辑学家和哲学家。其最杰出的贡献是哥德尔不完全性定理。
3 2017年12月8~9日,由工业和信息化部指导的首届“DOA技术应用论坛”在北京举办,罗伯特·卡恩作为特邀嘉宾参加了此论坛。
4 多纳基金会(DONA)是一个非营利性组织,于2014年1月20日在瑞士日内瓦成立。DONA是一个多方共同管理的组织,其目的是为促进技术协作、发展、应用,对数字对象架构提供管理、软件开发等服务。DONA的职责之一就是管理、提供和协调数字对象的标识符的注册、解析以及相关的安全信息。
中国计算机学会
微信号:ccfvoice
长按识别二维码关注我们
CCF推荐
【精品文章】
点击“阅读原文”,加入CCF。