陈建二教授:透明计算原理及应用实践

6月5日,第七届中国云计算大会进入第三日。中南大学教授,“千人计划”专家陈建二进行了“透明计算原理及应用实践”的主题演讲。
 

以下为演讲实录:

今天给大家在这里汇报一下透明计算,很多人都挺熟悉这个题目,在这里给大家汇报一下透明计算在近期研究上的一些进展,包括对透明计算原理的介绍,以及它的应用前景的一些介绍。

首先,讲讲背景。透明计算大概在这么一个环境下开始产生出来的。由于计算理论本身的建立,使人们在上个世纪40年代,第一台计算机问世了。然后在这么几十年来,计算机硬件大概朝着两个方向发展,一个是大的方向发展,像后来的大型机,超大型机,巨型机,中国的“天河二号”。另外一个方面是向小的方面发展,经历过原来的小型机、台式机,以及笔记本,以及后来的平板电脑,还有手机。但目前来说,越来越多的我们看到就是很多的穿戴式的一些计算仪器。

随着计算机硬件的发展,计算机软件,特别是计算机的系统程序的核心,操作系统本身也经历过一系列的发展。从最开始没有操作系统的这样的计算机,到后来有像多程序的,以及分时的操作系统。然后,随着小型机这个方向发展,在台式机、手机,以及目前的智能终端系统方面都在有一系列的操作系统本身的开发,以及它的应用。

然后,70年代开始,计算进入网络时代,特别是互联网出来以后,互联网中间有三大要素,一个是大数据,另外一个是移动互联网,再加上云计算。特别我们看看这三个要素,一方面在大数据方面,由于互联网的建立,使得人们可以现在用到以前根本不可想象的大量的数据,并且提供了分析跟处理它的能力。移动互联网是以移动无线网为基础的做成的一个互联网的结构。这个结构本身它有一些特点。一个是它的移动性很大,另外,它是比较容易携带,并且有用户跟系统本身的粘连性,还有比如即时性,时间碎片化等一系列的特点。云计算可以这么理解,它是由于在互联网的存在下,现在可以把大量的数据,以及处理数据的能力都把它汇集在我们大的计算中心中间去。

在这中间,特别是介绍一下在云计算的基础上有那么一套虚拟机的技术,虚拟机的技术可以想像是在大的计算机上面,我们可以开发不同的虚拟机,不同的虚拟机可以运行不同的平台,从用户的角度上来说,他们就可以用道不同的平台,而起到跨平台使用计算机的这么一个特点。

在整个过程中间,网络计算本身它也面临新的一些挑战问题。一个最大的问题就是由于大家对终端本身的功能要求越来越高,于是终端就越来越大,多核的现在已经有了。一个直接的效果就是它耗电量非常大,对能量产生很多的影响。在传统的机器上面,终端本身,它的硬件本身是跟某一个平台,或者更明确一点,某个操作系统捆定的,在一个操作系统下,没有办法用跨平台的应用,比如苹果上没有办法用Android的APP,也不好用。终端本身的相对独立性,使得对管理整个系统本身也变得非常困难,使安全性降低了。但是操作从某种程度来说,还是太复杂,我们一般要用新的APP,我们现在到网络上进行搜索,搜索到我们要下载,下载以后还要安装,然后我们可以使用这样的新的APP,本身这个过程比较长,很多时候如果我们是即时要使用APP,我们都不大耐烦了,好像做一系列的工作才能把APP下载下来。另外一个特点,它的换代特别快,几个月之内就换代了,这些性质本身,影响它的成本造价比较高。

另外一个方面,按照虚拟技术来说,很多应用中间,其实我们并不需要那么大的能力,很多情况只是起输出输入和显示的作用,如果我们造出很大的终端,实际上它中间的计算资源本身都被浪费掉了。而我们现在在IT服务这个行业中间,有一个趋势是把计算仪器游戏化,游戏化牵扯到很多高度的交互式的应用,以及在本地处理的,需要本地计算能力的一些应用。

另外,从系统的角度上来说,也因为终端本身的相对独立性,使整个系统本身的控制不容易,可信度也下降了。从互联网本身来看,互联网本身已经做到了像我们在数据上的汇集,而且云计算的技术已经把计算能力本身的汇集都已经实现了。没有着重的去讨论对软件的汇集以及它的服务这个问题,没有明确的讨论这个问题。这是我们的研究背景。

第二、介绍一下透明计算本身是怎么一回事。按照Intel的定义,实际上这个定义本身是Intel的总裁Renee James在2012年做主题报告的大会上提出的一个思路,另外的一些高层人员,比如软件中心的总经理Michael Greene都对这个进行了评价,他们都认为透明计算本身会成为下一代的计算时代,他们对透明计算给予了一个定义,包括它的跨平台语言,他特别指出用HTML5,另外就是它的云结构,或者透明计算结构在中间,第三个是安全问题。在Renee James跟Michael Greene提到云计算这一块的时候,他们都指出,他们整个工作来源于中国透明计算的研究。这中间有一些东西,比如通过我们和Intel高层人员之间的通讯,以及Michael Greene做的一些讲话。在所有这些上面,他们都明确的提出来,透明计算这一块工作是源于我们中国的计算原来的研究。恩

什么叫透明计算?透明计算它强调要把软件是放在服务器端,但是把计算放到用户端,而且实现流式性的执行方式,从而达到小终端和跨平台的目的。其实可以这么说,透明计算是云计算的一种形式,实际上透明计算的概念比云计算提出来的时间更早,透明计算给出了一套非常明确的具体的计算方案,但是可以说透明计算是云计算的一种体现形式。我们把透明计算用三个词语来描述一下,一个它强调着重研究的是软件的云化问题。第二、它坚持研究把计算本身下放,放到用户端进行。第三、流式执行的方式。

由于这些特点,云计算在透明计算中间比较容易达到跨软件和硬件的平台,并且可以在小终端上面运行大的软件,并且在安全上面也可以有一套新的思路,达到低成本和使用方便这么一些目的。所以,对云计算的几个要素讨论一下,一个是HTML5,另外一个是云结构,另外一个是安全问题。安全问题主要的技术措施是通过Meta Os实现的。首先看一下HTML5,这个不是我们做的工作,HTML5它本身现在跟以前的版本比起来,显得更加丰富,特别它是加强了在它的离线处理的能力,在离线存储的操作中间,可以使得网络暂时终端的时候,可以继续运行。

它跟一般的APP比有一些特点。APP当我们下载下来以后,我们是直接在本地的资源进行执行,HTML5是放在应用层。整个执行过程也不一样,一个APP本身,如果需要用,先从网络上查找,查找以后下载,下载以后安装,软件装在你自己的机器中间,你再执行。HTML5本身也是通过网址的查找,但是通过解析它的网页,就可以对它进行执行,所以它们的方法是不太一样的。这中间由于这个特点,HTML5有它的优点,一种优点就是让它实现了应用层的跨平台,就是在HTML5中间可以装不同版本上平台上的应用,开发成本比较高,因为它只是做软件开发。但是,HTML5还是有一些缺点,一个缺点就是HTML5它主要是基于浏览器的,所以浏览器本身的差异也会对整个HTML5的执行本身产生比较大的影响。另外,它必须要求终端能够支持比较强大的浏览器。由于HTML5是在应用层做的,所以它在安全方面可以做一些处理,来处理应用层的安全问题,但是没有办法再往底下走。

所以,透明计算这个项目在做的过程中间,跟HTML5在技术上有一个不同。我们把HTML5在应用层这个东西下沉到操作系统底下,把它放在计算机硬件平台跟操作系统之间。这样使得我们可以屏蔽掉浏览器本身的差异性。

另外是透明计算的云架构。透明计算有透明服务器跟透明终端,就是透明用户。服务器终端包括硬件本身的要求,整个透明计算系统有一个Meta Os来对透明计算本身系统的运行进行管理。所以,在这个服务器端它有一个Meta Os来管这些事情,并且它汇集了很多的应用程序跟现有程序,包括各式各样的操作系统。在客户端,它有必要的硬件,以及它也用Meta Os管理它在透明计算系统中间整个的运行。但是,除了这两个东西以外,它上面所需要的计算平台,也就是操作系统,以及操作系统上面所需要的这些APP,这些硬程序,它都不装在上面。我们假设在用户端,我们的透明计算用户端是没有硬盘的,所以一关机,上面东西都没有了。每当我们要执行一个应用,这个应用本身它需要某一个平台的时候,我们从用户端通过网络向服务其端下载和启动必要的操作系统,应用程序来进行执行。由于这个原因,所以我们在透明用户段五可以运行不同的平台以及不同的应用程序。所以,如果我们在不同的平台上面,由于这点通过透明计算本身我们可以在不同平台里面,屏蔽到硬件本身的差异,而达到可以使用的,得到同样的服务。反过来说,如果我们用的是同一个平台,通过透明计算这个系统,并且通过透明计算中间所提供的各种不同的计算资源,我们可以获取不同的服务。

比较技术一点的透明计算的架构。我们介绍一下整个支持透明计算系统的技术方案主要体现在Meta Os方面。Meta Os从概念上来说,它是一个运行在传统的操作系统跟机器的硬件平台之间的这么一个系统程序。这个系统本身,要使这个系统能够正常运行,它必须解决一些关键问题,一个是内核本身的分布,我们传统的操作系统该放在哪里,然后再启动Meta Os的时候,到底这个内核应该怎么样处理,以及我们明确提出在计算、管理跟存储,我们要在物理上跟逻辑上都把他们分开。第二、透明计算整个运行的过程采取的是流式化的执行过程,或者不是以文件系统为基础,而是以运行快为基础的方式。另外,它的缓存方案本身,由于系统不一样,我们需要研究新的缓存方案以及它的通讯协议和虚拟化技术。

在透明计算服务器端可能是高度分布式的服务器,通过网络跟用户服务器连接起来,当用户需要某一种计算资源的时候,可以通过整个网络共享在整个服务器端所有的计算资源。另外,比较重要的从观念上来说,我们物理说,跟逻辑上把存储,管理、存储分开,我们把计算放到用户端执行,把管理跟存储交给服务器端进行管理。

块-流,事实上它没有硬盘这一块,所有它需要的数据,以及需要的计算资源都存在服务器中间,这个时候当然我们传统的计算本身需要在硬盘拿到新的数据,或者新的计算资源的时候,它解决的方案是通过网络把这些请求直接传到服务器端,而服务器本身根据他们的要求提供所需要的或者是数据,或者是软件,甚至系统软件,包括操作系统,把它再传到用户端。而用户端在执行完这个操作以后,把这些软件直接就流掉了,而不是返回到服务器端去。由于现在的系统跟原来的不一样,现在在逻辑上跟物理上已经把它分作两块了,有用户端,有服务器端。以前传统缓存方面的方案不能直接用,所以在用户端,在服务器端我们都有新的缓存方案。

在透明计算用户端跟透明计算服务器端之间,它们网络连接的地方我们设计了两个通信协议,一个叫做MRBP这个协议主要管的事情就是管操作系统,就是多操作系统本身的远程动态的启动。一旦客户端需要启动一个新的操作系统的时候,MRBP通过网络从服务器端把所需要的操作系统以及还有它需要的APP都通过网络下载到用户端,用户端再把它启动,运行到所需要的这个平台来。另外一个网络协议,透明计算的用户端在用户中间用了,透明计算原来是没有硬盘的,每当读硬盘的时候读不到,这个就是把原来传统的I/O中断请求,转换成网络上的中断请求。

由于网络的技术出现了一些问题,用户端本身没有磁盘,但是用的时候,从用户端本身来看,看不出来有没有磁盘,所以必须处理一些传统的像磁盘读写这样的问题,所以有一整套的序列磁盘的方案。我们跟VMware比,VMWare是多个大虚拟机并行在不同平台运行。我们是小终端,好像没有必要同时运行几个不同的平台。所以,我们做的办法是用串行的形式,每当要一个平台,把一个平台下载下来运行,当换一个平台,把前一个平台流掉,再下载下一个平台进行应用。这就是我们画的表,把透明计算、云计算、以及虚拟技术本身的一个总结,大概有这么一些特点。另外,我们写出来一些近年来在透明计算中间发表的论文,大概有这么一些论文,大部分论文都是2012年以后的。

最后谈一谈透明计算跟安全的关系。有几点,一方面对操作系统启动本身的安全,我们对它如何加强。透明计算系统它的Meta Os跟传统的Os,可以说跟硬件平台之间的一个系统,因为它在比较底层,所以它更容易监控到这个指令本身的执行,这样可以达到做一些更多的安全的措施。然后,远程操作系统启动本身通过MRBP这么一个协议执行,在MRBP当中可以加入很多安全方面的措施,保证操作系统启动的安全性。另外流式执行本身,这个方案对病毒防范所起的作用。可以这样看,传统的系统中间,事实上当从服务器传了一个数据到终端,或者终端在别的网上拿了一个数据,如果这个数据有病毒,在执行以后,偶然传统的终端它是有硬盘的,这个数据可能存在硬盘里边,这个终端本身的安全就受到了伤害。而在透明计算的系统中间,假设终端中间没有硬盘,当流过来的数据哪怕是有病毒的,或者是软件,执行完以后一关机,它已经流掉了,不能永久的保存在终端。当然,你说我服务器本身出了差错怎么办?服务器本身我们还是假设用传统的安全措施,用比较有利的方法来保证服务器的安全。但是,这种方式本身使得在终端本身的安全方面,我们有一定的优势。

最后,用透明计算在数码流控制的监控和管理方面也可以做一些工作。大概思路是这么一个情况。传统的机器CPU,以及它的内存跟外层中间是被总线绑定的,在这个过程中间,数据传输的过程很难再加入新的监控。透明计算系统本身,它本内层跟外层中间拉开来了,中间加入了一个网络,这中间有更多可能的测试点保证数据本身的安全。

透明计算这几年在国内外的一些影响。事实上这几年国际上有很多媒体都报道了这个课题的工作。比如在美国的每日科学中间说的云中的操作系统,TransOS,就是我们的Meta Os,或者代替传统的OS。在英国的技术视野上也说,研究人员想把操作系统放到云中间。美国的技术新闻说中国人希望把计算机的大脑放到云中,有一系列的报道。一些专家也都给透明计算思路很高的评价,我们列出来近期一些专家对它的评价。美国国防部曾经发布了一个透明计算招标书,它的透明计算跟我们的并不是完完全全一样的,它其实跟我们中间很多的思路都是吻合的。它是把信息平面的东西放到系统平面上,使得可以进行监控,特别可以对网络上面的攻击行为进行追溯。其实刚才的介绍,因为透明计算本身给我们增加了一些新的监控点,我们都可以实现这样的操作。

日本今年成立了一个透明计算联盟,这个联盟本身包括了日本很多的大学跟企业。它们主要研究跨终端本身的应用,以及透明计算跟大数据的关系等一系列有关的课题。

下面介绍一下透明计算的产业案例。一个是核高基的重大专项项目里面,中国移动旗下卓望公司牵头研发开发了NTOS的系统,另外透明计算产生了一些产业化的成果,比如形成了服务平板电脑的商用化,以及促进了Mobile Market跟开发者社区的发展,并且打造了中国移动的数据业务的搜索引擎。透明计算的原理也甬道了一些其他的方面,比如说通用测试公司他们在测试系统本身,德百祺公司做定位系统,东方世纪做物联网系统,应用了透明计算的原理,中间很重要的一件事情,就是他们是小终端,测试系统本身,他们在测试的时候其实不知道需要什么样的软件,又不可能把终端做的很大。所以,透明计算的原理,很简单的一件事,你有那么多软件,就放到网里面去,你要什么,再把它下载下来就是了,大概这么一个原理在这儿。这是湘雅大数据的系统,通过透明计算做的软件本身的技术加载,把技术在终端执行,达到数据共享以及软件共享的这么一个程度。

最后它未来的发展。首先,有一些动态,Google提出把Android应用移植到 Chrome OS系统上。透明计算本身的产业化方面,一方面在透明计算终端本身它提出了一些新的要求,这些对透明计算本身的制造,对于芯片以及接口服务都会产生一些商业化的影响。透明计算服务器中间,也由于我们需要一些更大的能力,而且不同的一些要求,它对像计算中心,以及硬件,意见基础设施这些方面也都可以产生商业化的影响。最后是由这些在互联网上产生的影响,因为我们互联网上透明计算本身对它的要求是比较特殊的。从而能够形成一种新兴的透明计算的终端,再加上基础设施,再加上互联网,形成一个新的一种产业链,这就是我的报告,谢谢大家!