重生(2005年9月写的,现在我已经有了比文章描述的更成熟的思想,欢迎大家指正)

重生
——向上帝学习,软件活化技术简介
 
 
 
 
 
 
2005 9
 
 
本文取名“重生”,无非是为了与《绝地》一文相呼应,造成姊妹篇的效应。绝地和重生,按照先后顺序,有凤凰涅磐的意思。
本文主要讲的是一项向造物主学习的技术——软件活化技术。看过《绝地》的朋友,应该看到重生的希望,软件活化技术就是希望所在。这是一项站在造物主肩膀上的技术,而且也凝结了人类自己的智慧。
 
本人拟通过此文联络各方有志有慧者,共同推进软件活化技术的发展。故此文档可四处任意传阅,无需征的本人同意,只请附带作者姓名以及联系方式,以方便相互联络、咨询和交流。
       此文所提及之技术,欲要概其全貌,远非此一小小“简介”能及之。所谓“姜太公钓鱼、愿者上钩”,我自信有志有慧者必能上钩,本“简介”无非是四处撒线撒钩之作,方便诸位上钩。凡上钩者,必能从我这里识此技术初始模样。我坚信此乃人类科技一重要起步,以我一人之力,实难将此技术发扬光大,故还须诸位上钩者群策群力。
       此文非商业计划书一类,故其中主要说明了技术架构和一些应用,而不见市场分析,但有志有慧者定能透析其无限的市场潜力。
       再次强调,本人非夸夸其谈者,而是确实在这不到两年的时间内有了初步的实现(此时,已经是第二个版本),而且可以在实践中应用。
       此一文,主分为两部分。
第一部分——造物主之手——软件活化技术之前,上帝是造物主;软件活化技术之后,我们会是造物主吗?主要描述了软件活化技术之轮廓,以及将会带来的变化。
第二部分——告别过去——昨天是今天的基石,今天是明天的基石。脚踩基石,方能向上;告别过去,方能展望未来。通过和原来软件技术的比较,分析其弊病,透析软件活化技术之特点。
最后,本文有很多有关遗传学的术语和知识,限于本人初触这门科学,表达上不免有些不妥,但整体表意应该不会有太大的偏差,还请大家见谅。
我学习生物学,主要是通过S.L. 埃尔罗德和W. 斯坦斯菲尔德写的《遗传学》,配合以马特· 里德利写的《基因组 人种自传23 章》,以下有部分会引用他们的话。我还和中国生命科学论坛 http://www.bioon.net/index.asp 的网友交流,他们给了我很多知识,谢谢他们。
 
       虽不尽知现世万物为何因何物所造,但这总有个源头,故借《圣经》中的造物主一用,称其源头为上帝。
       上帝会造物,人类也会造物。想上帝之造人,初始一夏娃、一亚当、一毒蛇及一禁果即可,而后上帝便不再操心,人类自然而然的在地球上发展,便有了如今之庞大而复杂的人类社会。比较之,以视如今人类之造物,无不相形见绌,差了十万八千里。
上帝之手之灵巧,令世人叹为观止,如有一法门能窥其一二,借鉴之,并应用于人类之手,那必将给人类带来大大的进步。我自不量力,以为恰能窥其一角,下面将其述之。
上帝之手和人类之手最大的不同之处在于:上帝造的是活物,而人类现在和以前造的都是死物。所谓活物,如动物、植物之类。这些活物,无不自动自发完成其使命。即使一个个体没有完成其使命,它也会通过繁殖来不断延续其使命,并且不断优化。所谓死物,如斧头、机械之类,这些死物,无非以工具自居,经过人类对自然界已有的东西改制而来。虽然这种改制在今天看来已经到达了非常精深的程度,但是称之为“自动”、“智能”还言之过早,因为这些工具只能在人类的指挥下完成其每一步使命。这些工具只能被替代,不能自我繁殖延续,更加不能自我优化。
我们如何借鉴上帝之手造活物?首先我们必须知道上帝之手所着力的方法。我所窥到的一角让我认为,生命DNA 所透露出来的构造方法,就是上帝之手着力的一个重要方法。虽然受到想象力和生产力的限制,人类还很少能够把生命DNA 应用到其他方面,但是我相信,一旦生命DNA 应用到人类生产,整个社会科技将会得到大大的进步。
那么生命DNA 是怎样一个构造方法呢?是怎样实现自我复制以及有序化的呢?这不是一个讲述生物故事的论文,所以我只能用尽量少、尽量通俗的语言来描述生命DNA
现代生命科学定义活物的能力为:复制自己的能力和制造秩序的能力。这是两种什么能力呢?比如前面说的活物可以进行繁衍,就是复制自己的能力(细胞分裂也是);可以进行自我优化,这就是制造秩序的能力。生命DNA 就是这两个定义的基本体现,我下面就按照这两点来讲(这里的生命 DNA ,除了指DNA ,其实还包括碱基对、基因、染色体、细胞、蛋白质、氨基酸、RNA 等)
l         复制自己的能力
我们人类的身体是由细胞组成的,这些分布在人体各处的细胞,各自又根据功能分成不同的细胞种类。就算这些细胞再不同,它们也有一点是共同的,就是所有细胞(除了精子、卵子以及血红细胞)的细胞核内都有共同22 对常染色体以及1 对性染色体。这些染色体是由双螺旋结构的DNA 形成的。而连接两条DNA 链的就是碱基对,这些碱基对不是A T ,就是C G 的组合。DNA 双链上的这些碱基对序列,可以储存很多信息,就象计算机的0101 一样。的确如此,这些碱基对序列储存了生命的信息,我们把这些信息根据功能划分,每个功能我们称为基因,所以一个基因就是DNA 双链上的一段。
如图1 ,就是碱基对、DNA 、基因、染色体、细胞的简单结构图以及它们之间的关系。
1
       事实上,一个生命个体的绝大多数细胞中的每一个都包含了相同的染色体——也就都包含了的这个生命的所有基因。所以,上帝似乎没有为难我们——想想看,我们只要获得我们身体的100 万亿个细胞中的一个,就能够从里面的23 对染色质中找到存储我们生命信息所有的基因,这非常方便。
       这些基因,有的是说明了你的头发的颜色,有的是让你的儿子在成年后长出胡子,有的让你有了一对漂亮的蓝眼睛……反正这些基因就说明了一件事情:你在某个时期是个什么东西。
这些基因首先出现在我们的父母那里得来的合子(一个精子和卵子组成),这个合子自我复制会到达100 万亿个细胞,这个过程就是细胞的自我复制过程。这个过程中,DNA 链的不断复制、细胞的不断有丝分裂……最后,这100 万亿个细胞中每个细胞都有了原来那个合子中的东西——23 对染色体——所有的基因,我们就有了身体、相貌、头发的颜色、还有你那漂亮的蓝眼睛……。
       从上面我们对生命DNA 的描述我们可以抽象出关于复制自己能力的一个框架:这个框架由一个简单的拥有描述整个框架信息的部分组成,这个部分最后通过不断的自我复制,使整个框架成为由很多不同功能的部分组成。这些不同功能的部分,每个部分中都有相同的描述整个框架的信息。也就是说,只要拥有这个框架的一个部分,我们就可以知道整个框架是什么样子的。软件活化技术很大程度上借鉴的就是这个能力——复制自己的能力。
l         制造秩序的能力
其实光靠基因所保存的信息是不够的,这些信息只是一些静态的东西,光靠这些东西你是不会长出蓝色眼睛的。是的,我们还需要一些力量,这些力量可以直接或间接的使基因所描述的东西发生——这些力量就是氨基酸组成的蛋白质。
举个例子,建造大厦首先需要设计图纸,图纸好了还需要根据图纸安排不同工种的工人干活。我们可以这样看,这个图纸就是基因,而每个工种就是氨基酸,每个工种组合就是蛋白质。于是,根据图纸,确认每个工种的工人,再确认多个工种的组合,然后确认所有的工人……最后大家一起来干活。
所以,从基因到氨基酸蛋白质有个映射的关系,就象从图纸映射到每个工种。基因其实也就是蛋白质的配方。图2 就是基因密码对应20 多种氨基酸的映射表。
2
一个基因到最后对应蛋白质的形成,其实不是那么简单的一蹴而就,而是经过DNA mRNA 的转录,然后是mRNA 到氨基酸蛋白质的翻译,如图3
3
蛋白质根据基因生成,也根据基因来活动。但是蛋白质反过来也帮助DNA 的进行各种活动,比如DNA 的复制、甚至是生成DNA 链等活动。这有点象是厨师和菜单的关系,厨师根据菜单的指令做菜,但反过来,菜单上的每个指令都是厨师写下的。先有厨师还是先有菜单呢?类似的关系还有:先有鸡蛋还是先有鸡?对应到这里,就是先有DNA 还是先有蛋白质?在现在看来,它们原来都不存在,最先存在的是RNA ,一个即能复制自己,又能反作用于自己的东西。RNA 在进化的过程中,逐渐选择了DNA 和蛋白质这种比较稳定关系……这就是制造秩序。
其实RNA 在制造秩序的过程中,其后来的发展是树形的,而且是同时多支的发展,我们人类只是其中的一支。想想看,RNA 的有一些分支并没有选择DNA 和蛋白质这种比较稳定关系,而仍然坚持了RNA ,它们住在地球极其恶劣的环境中……很多遗传学专家认为:尽管它们比我们简单很多,但是他们进化的比我们优秀的多。
当然,DNA 和蛋白质的这种发展,又在今天制造出了智慧。不远的将来,我相信我们的智慧又会反作用于 DNA 和蛋白质,优化我们自身。其实我们现在已经开始这么做了,比如基因组计划等等。到时候又有一个新的关系:先有 DNA 和蛋白质,还是先有智慧?
根据上面所说,我们又可以看到这样一个框架:这个框架里,主要由相互依存、相互促进的 A B 两个部分组成。 A 指示 B 做事情,而 B 在做事情的同时,还能反过来修正 A 不合理的地方……这样,这个框架的发展就会越来越完美。这就是制造秩序的能力——有选择优化自己的能力。
我所窥到的一处,就是自我复制能力和指造秩序的能力的重要性,其实还有他们之间的关系:光有自我复制的能力,而无制造秩序的能力,那么这个生命永远都是一成不变的,而且随时会因为外界环境的改变而被毁灭;光有制造秩序的能力,而无自我复制的能力,那么这个生命也只能在瞬间存在。这也是一个相互依存、相互促进的关系。
1953 2 月克里克在酒吧里说“我们发现了生命的秘密。”他没错,他和沃森使这个秘密变得清楚了: DNA 带有一种密码,写在一条精巧的、缠绕在一起的双螺旋阶梯上,还可以是无限长的。靠着它的字母之间的化学亲和力,这个密码能够复制自己,并且清晰地写明了制造蛋白质的配方,这是通过一本“密码手册”在 DNA 和蛋白质之间建立起对应关系而完成的。
理查德·道金斯说:“载沃森 - 克里克之后,分子生物学的真正革命在于它变成了数码式的,……基因的‘机器语言’不可思议地于计算机语言接近。 ”这也是我所窥到的一处,也是我在计算机软件上应用生命DNA 的一个理由。是啊,为什么我们所看到的上帝的杰作和我们自身发展而来得成果如此相似,似乎有点疏路同归的味道……这是不是一条唯一而且必须的前进之路呢?留给我们大家一起思考吧。
最近,我在中所提到的那个论坛里,遇到过一个博士研究生,我们有一个争论,源于我的一句话:“ 嗨,我是搞计算机的,正在研究基因技术在计算机的应用,如果有兴趣,我们可以交流一下:) ”,而后引来了他在下面的跟贴:“ 我和你一个专业的,听说过很多生物与计算机的交叉学科,但‘基因技术在计算机的应用’还是头一次听说,有这样的应用吗?呵呵。我问了周围很多两方面的专家,谁也没听说过,你自己开创一个学派吧。哈哈。 ”……于是,争论开始了。 尽读书,不活用,不创新,不如不读书。读到后来,不会自己思考,只会引经据典,神似作茧自缚,何苦呢?读书不是目的……我起初认为这位 博士是这样的人,但是后来我们都觉得误会了对方…… 这里若多说就偏题了,大家可以到 http://www.bioon.net/dispbbs.asp?boardID=57&ID=149446&page=1 去看我们的争论。
我想说的是,整个人类文明的历史,就是不断从上帝那里获得灵感,而不断创新和应用的历史。创新从来都面临着一些阻碍,有些创新从此消亡,而大多数都被人类所应用。我在这里,得到了生命 DNA 应用于计算机软件的灵感,并且已经进行了初步的实现,但这只是一个开始,会有很多漏洞和缺陷,我希望大家能够给我肯定或者否定的实质性建议,一起来使之完美。我一个人无论如何,都无法进行一场技术的革命,但是大家如果站在一起,无论是去赞同它还是去否定它,我们就会推进一场技术的革命。
对于这个技术,请大家多贡献一些实质的建议、批评和否定吧!这些实质的建议、批评和否定都将是这个技术成长所必需的营养成分。
怎么从活化技术说到人工智能了?没什么,我只是想部分的否定它,作为一个不在恰当时间出现的研究——我的意思是——人工智能的研究应该晚一点。然后接下来想说明,现在不是人工智能出现的时候,它应该在软件活化技术之后出现。
软件发展到今天,早已从原来作为信息管理和计算的工具,发展到今天可以作为控制其他工具的工具,比如我们现在的很多“自动化”机械就是通过软件来管理的。从这个发展方向,我们可以看到软件似乎就象人类的思维控制人类的行为一样,控制着这些机械。这样,很多人自然而然的就想到了通过学习我们的思维方式来创建会思维的软件,这应该就是人工智能的初意。
这听起来的确激动人心,吸引无数先行者置身其中。然而数十年过去了,我们投入的精力和资源如此多,而成果却如此的少——看看你周围有那些人工智能的成果就可以知道了,SONY 公司的那条狗,其实是个很粗劣的玩意儿。我们现在那些很多所谓“自动”、“智能”的玩意儿,也还都是人类通过软件间接控制的。
我们对于人工智能的研究也举步维艰。真正的要去实现软件能够自动、智能的控制机械,我们需要做的不止是找到正确的方向,更重要是先要选择一条指向正确方向的正确的路。
那里出了差错呢?我认为是先后环节出错了。在研究人工智能之前,应该有一些必要的积累,或者说是基础,人们先要有了这些积累在去研究人工智能就比较合适。我们的思维无疑是上帝的杰作,但这杰作也必须基于上帝上一个杰作。我们人经过了40 亿年的进化,才到了今天会进行智慧思维的程度,我们又凭什么不进行积累而一蹴而就的达到人工智能这个暂时的顶峰呢?
我们现在直接进行人工智能的研究,就好像不打地基便进行大楼的建设。如图4 左,这样没有基础的研究恰似倒三角,其结果可想而知。人类的很多科技上的进步,都是在原来的积累上建立的,如图4 右,正立的三角才稳当。
4
那么这个积累,这个基础是什么呢?我认为就是生命DNA 。而且现在越来越多的科学证据表明,生命的不断自我复制,不断的制造秩序才有了我们今天人类的智慧。也有越来越多人相信这点:我们的智慧是建立在我们复杂有序的机体之上的。就算来路不明的文明给了我们社会种种秩序和道德思想,如各种宗教的教诲等等,从而形成我们地球如今的道德文明和社会秩序,其前提条件也是需要我们有能够接受这些文明的机体。所以我说:我们还是先来研究生命DNA ,再来研究人工智能吧——研究需要一个顺序。
言归正传,下面我们还是来看看生命DNA 如何应用在计算机软件领域的吧。
计算机软件和其他产业不同的地方是:软件开发不直接限于物质条件,一般来说只直接限于我们联想。我们完全可以写一些完全没有意义的程序,也可以模拟一些只有未来世界才会出现的场景……所以 ,生命 DNA 一定会首先应用在软件领域。
在实现软件活化技术的实例Comegg 的时候,其实一开始,我并不是一下子就领略到它可以朝生命DNA 的方向靠拢,但有一点点感觉,说不清楚的感觉。当我把Comegg 的第二个版本实现的同时,我也加深了对软件活化技术的领会,这种感觉就变得不断强烈了,我就想到了DNA 。然后找来有关生物知识的书学习,发现它们之间果然有很多相似,而且还有很多可以借鉴生物学的东西可以应用在这个实现上……最后这个技术的特质就一下子明朗了起来。
l         一个感觉
计算机虽然为我们做了很多事情,但这还远远不够,我们其实需要计算机做超过现在几个数量级的事情,而且现在的计算机也完全能够胜任,只不过我们人类没有找到一个正确的方法去告诉计算机该怎么做。这种感觉就象我刚开始学习计算机程序设计的时候,遇到一个非常非常复杂的问题,想来想去,都要写成千上万的代码才能实现,但心中隐隐觉得应该有个很简单的方法可以解决问题;后来发现——写若干个函数,让这些函数彼此嵌套的调用对方,就把这个问题用几十行代码完成了,那种感觉太棒了。我们现在就缺少这种类似嵌套的方法,去告诉计算机去完成超过现在几个数量级的事情。包括人工智能的实现,我觉得也是因为缺少这么一种方法而举步维艰。现在,我可以肯定的说:拥有复制自己和制造秩序能力的软件活化技术,就是这种类似嵌套的方法——我们需要的方法
l         什么模样
我从前在很多文档中提过我已经实现了软件活化技术,但是都没有说这个技术到底什么模样,以及如何实现,所以很多读者对我说:你的理论是好的,但是太空洞,没有实际的例子支撑。其实我是出于多方面的考虑,尽量的避免了展露更多的资料。现在情况好了一点,虽然大家仍然不能从这里知道如何去实现这项技术,但是我现在可以这个实现的基本模样展现给大家。当然,我合作的伙伴就可以知道更多一些详细的资料。
软件活化技术的实现名字叫Comegg ,意思是“交流的蛋”。它是什么样子的呢?它难道和基因、蛋白质、DNA 等有对应的关系以及对应的变化吗?对,他们的确有对应的关系以及对应的变化。其实在我实现Comegg 之前,我对生物知识并不熟悉,而是在后来才发现他们之间的相似点,不知道这也是不是一种疏路同归(我有些感觉,但还不强烈)
Comegg 是什么模样的呢?我自己在考虑了很久,都无法用一张图描述出来,因为它在不同的状态下,会有不同的表现;所以我就选择用多张图——每个状态下一张图来讲解,但我还是会怀疑你们是否能够懂!不管如何,暂且试一下,而且我还有些提示(如果你对计算软件的抽象理解真的有的话,那么你应该可以看得懂,我这样说的意思是:很多人虽然写了很多程序,但是他从来没有从整体角度来抽象的看待软件)
Comegg 在启动前后,共有三种不同的状态。下面,我按三种状态,分别描述三种不同的结构。
提示:这里的静态区,你可以把它看作是存储区,比如硬盘,光盘之类的。这里的运行区,你可以看作是CPU + L1 cache + …… + L(n) Cache + Memory 的程序运行区域。对于每个细胞,你可以看成是一些存储区作为部分细胞核,一个进程作为其他的细胞部分。对于基因,你可以看成是信息存储。对于蛋白质,你可以看成是部分信息存储,部分可执行。……请充分的联想。
a)         启动前
如图5 启动前,基因和部分事先生成的蛋白质单位都处于静态。这些基因部分是事先人为编排的,而且可以在以后的应用中,根据不同应用目而不断重新编排它,也就是说这个细胞可以在不同的时间重复应用在不同的应用上——可以节省用户的很多成本第二部分会说到。
5
b)        启动中
如图6 启动中,基因和部分事先生成的蛋白质单位共同生产细胞以及细胞的一切。这个过程中,基因还处于静态,部分蛋白质单位处在静态,还有部分却处在运行状态,这部分动态的蛋白质单位相当于完成了转录- 翻译的过程。这里的转录- 翻译在细节上和真正的基因和蛋白质的做法有些区别,这个我们在后面的分析中可以看到。
6
d)        运行中
如图7 ,运行中,细胞已经完全产生,可以完整的开始工作;而基因和蛋白质单位又恢复到原来的静态。这个基因和这个蛋白质单位还可以生成其他很多同样的细胞,甚至是在网络上的另外一台计算机上。
7
l         一些区别
上面,我们看到了Comegg 类似基因和蛋白质活动的基本结构,很明显:基本的一些东西(指那两个能力)他们是一致的,然而在很多细节方面,他们是不一致的。为什么不一致?因为这是上帝造物和人类造物的不一致:上帝造物需要考虑很多我们现在不了解的方面,而我们造的东西都是由具体应用决定的,这些应用比上帝造物简单很多。所以我们只能应用部分上帝的方法,这些方法是我们可以明确知晓其效果的方法,对于我们不能清楚知道其缘由的方法,只能谨慎采用。
对于复制自己的能力,这里借鉴了很多,如基因如何保存整个个体的信息等。但是对于制造秩序的能力,只借鉴了一点点, 原因是我们对于软件应用的环境和目的都有比较明确的了解,所以我们在制造的软件前,就明确的制定了它的秩序——我们在事前就制定好了软件的秩序。我们现在的需求,基本上对自我进化需求还很少,我的Comegg 第二个版本支持的也不够,但随着软件活化技术的发展,对于自我进化功能一定会有强烈的需求的,这些会在下面的新的时代有说明,所以我会在以后的版本增强制造秩序的能力。
下面我们就来看看一些我选取的区别,这些区别还包括和一般计算机软件的区别。
a)         基因的秩序
上帝在制造我们之前,也许也定了明确的秩序,也许在我们的发展过程中,这个秩序在不断的调整……这都不重要,重要的是,我们自己能够调整秩序。
我们在制造软件的时候,也是事前制造好了秩序,比如如何满足需求、什么界面、如何操作等。现在软件的需求,也许是因为没有做好迎接软件活化技术的出现,所以并没有提出让软件自己制造秩序的要求,所以 Comegg 的实现中,基因的排列都是事前人为排列好的——我们事前就把秩序顶好了,尽管这样, Comegg 还是有少许自己制造秩序的能力,以后的版本会增加这种能力——因为我相信软件活化技术出现后,需求会逐渐转向让软件进行自我的调整,从而让计算机干更多的事情。
b)        转录- 翻译
基因通过转录- 翻译到达蛋白质,其实在Comegg 有非常类似的过程,如果你想找出一一对应的关系,我们还可以把转录、翻译、甚至是mRNA 的角色找出来。
如果说一般的计算机软件也有这个能力的话,那么 C/C++ java 等就是基因,而且他们基因和蛋白质在使用前就通过编译器完全的生成了,使用的时候,这些基因就不再有用了,而蛋白质的功能和目的也就固定了。而 Comegg 没有这些代码的概念,它的基因在启动前、中、后都有用,而且蛋白质的生成,一部分是在启动前,还有一部分是在启动中,功能和目的在运行会自我调整。
DNA 的不同之处在于:启动前,不管需要还是不需要, Comegg 事前就会把部分蛋白质转录 - 翻译出来,就是我上面说的蛋白质单位。在启动中 Comegg 会把其它所有的蛋白质求转录 - 翻译出来。在运行中, Comegg 会根据外部或者内部,选择性的让蛋白质起作用——也就是说转录 - 翻译出来的那些蛋白质不是每个都会工作 。而DNA 只有在内在或者外在需要的情况下,动态的把蛋白质转录- 翻译出来,并且立刻工作。
c)        复制自己
计算机的一般软件都可以复制,可以通过外部复制自己,Comegg 的复制也是这样的,前者和后者的区别是:前者的复制只能干同样的事情;而后者的复制可以干不同的事情。
DNA 的复制不同的是,现在版本的 Comegg 只能依靠外部复制自己;而 DNA 可以内部复制自己。 我会在以后的版本中增加Comegg 的内部复制自己功能的基因和蛋白质单位。
d)        其它
在这里,我不多列举其他很多的不同了,在以后资料逐步公开后,大家自己可以罗列。记住,我这里主要可是阐述他们的相似性,而非相异性。前面的列举只是说明现在Comegg 的不足,以及我们的需求的局限性。
l         几个具体应用演示
Comegg 第一个版本完成的时候,我做了4 个应用演示,它们是:即时通信 IM 服务器,天气预报查询单机服务器,天气预报查询数据中心,即时通信服务和天气预报的整合服务器 。后来在实现Comegg 第二个版本的时候,又增加了天气预报分布式查询系统。原想再增加 IP 电话系统 ,但是一来因为原有的应用演示已经可以说明问题了,二来是因为完成了所有IP 电话服务器后,发现客户端的实现比较复杂,故暂时停手。所以,我有了5 个半的应用演示。下面我就挑选两个演示给大家讲讲,一个是即时通信IM 服务器,还有一个是天气预报分布式查询系统。
a)         即时通信 IM 服务器
这个IM 服务器,其实和现在的QQ MSN IM 工具的服务器的原理大同小异,不过功能简化了而已。这个系统中,只是用了一个Comegg 细胞,如图8
8
b)        天气预报分布式查询系统
这个系统,其实就是一个天气预报的查询系统。当用户发送查询天气预报的信息到服务器,服务器就从当日的数据库中取出信息,然后下发给用户。注意这里有两个防火墙,主要是分布式系统负载均衡以及安全的要求,一共使用了3 Comegg 细胞,如图9
9
c)        其它
这里,我不再举实例了,我只想说说我用Comegg 实现上面那些实例的情况。
使用 Comegg 开发天气预报分布式查询系统,我只需要 40 多分钟;使用 Comegg 开发即时通信 IM 服务器,我只需要 20 多分钟;我整合即时通信服务和天气预报的服务为一个 Comegg 只花了 1 分钟不到 (不相信的话,来找我,我亲自给你动手演示)
上面我给大家说明一些软件活化技术的技术特性,还列举了一些应用演示,相信大家对软件和化技术有了进一步的了解。现在,我想和大家谈谈我所想到的,软件活化技术在未来的部分应用,以及对现在应用的一些影响,及未来产生的副作用预测。
l         不久的应用
以下只是我在一小部分领域的应用预测。我相信软件活化技术可以应用在已有的各个领域,而且还会创造很多新领域的应用。这些应用中,Comegg 的复制自己以及制造秩序的能力都会得到大大体现,特别是制造秩序的能力。
a)         分布式集群的负载均衡
现在随着网络的普及化,用户的增多,对于服务器侧的容量、反应等要求也越来越高,负载均衡系统的应用,也越来越广泛。对于分布式集群的负载均衡系统,有许多基于传统软件的实现,有商业的、开源的等等。
传统的负载均衡系统是由一个主机专门担任,当有请求到来的时候,这个主机根据一些算法,把这个请求下放到一个适当的提供服务的主机,这个主机往往是同类主机中负担最轻的。如图10
10
使用软件活化技术,对于分布式集群的负载均衡会有什么改变呢? 最大的改变就是不需要一台主机专门负责负载均衡,而是有所有的主机一起负责。开始准备一定数量的主机,只有一台主机上有服务提供,当请求达到这台主机的限度,这台主机就会复制自己的基因到别的主机,这个主机也有和最初的那台主机相似的特性……这样,整个集群就没有固定控制负载均衡的主机,而是有整体控制,整个集群的伸缩性也增强了,所有的控制有整个集群内部自我调整,性能也可以达到最大的优化。如图11
11
 
b)        搜索领域
网络爬虫是个不错的东西,把网络的信息搜罗到一起,供用户查询,但是世界的信息太多了,我们是否可以及时找到尽量多的信息呢?可以说,现在这么多搜索服务做得并不非常完美。
现在的搜索领域,已逐渐从原来的通用的搜索转向面向专业领域的搜索,比如现在很多SP 开始提供手机上搜索一些城市的美食、房产等信息的服务,还有一些搜索巨头在互联网提供了如地图、音乐、文件等搜索……这也许是下一个正确的方向,但是面向专业领域的搜索之后又会是什么方向呢?我也不知道,但是如果在互联网上出现一个可以回答人们任意问题的服务,那一定是个理想的方向,但也只有在科幻电影中出现。现在的人工智能水平离能够实现这样的服务还有很远的距离。
但是我觉得软件活化技术能够实现这些服务。前面我说过,软件活化技术就是那种类似嵌套的方法,这种方法可以让计算机为我们做超过现在几个数量级的事情,也能够协助我们实现真正的人工智能,也能够真正实现上面所说的那中回答问题的服务。想想看:我们初始一些规则,而以后的发展就是实现软件活化技术的软件自己繁衍,自己制订可以优化自己的规则……
这是我的预言,不管你信不信。如果你不信,请告诉我到底你觉得错误出在什么地方;如果你相信,也请告诉我什么地方让你相信。如果你说不出任何有价值的地方,那么就不要主观的去做一个判断。
l         对现在应用的影响
现在软件处在主流的应用技术,就是一些基于组件思想的中间件技术,如J2EE .NET 之流。我在《绝地》中已经讲了这些技术的弊端,这里不在重复。我想说的是——软件活化技术将会逐渐取代这些技术,而且会应用在更多的其他方面,为什么呢?也许你可以在下面的第二部分可以找到答案。
l         副作用
因为没有广泛的应用基础,所以现在还无法知道软件活化技术的副作用。但是可以想象到的是,复制自己以及制造秩序的两个能力,带来的可能是:我们可以大概的明确软件活化技术的发展方向,但是我们不能严格的控制它们的发展,甚至它们背离我们预定目标的发展,我们也无能为力。
这似乎和科幻电影《骇客帝国》预料的一样:电脑最终有了自己的生态系统,我们是它们的创造者,但最后变成了他们的生存能源。是不是很可怕,软件技术也许是一剂毒药,但我们历史上的很多科技创新又何尝不是毒药呢?人类似乎对这些毒药又强烈的依靠,不知道为什么,去问问上帝吧。
这一部分,不会象第一部分那样让人激动人心,这部分的文字也少得多,但至少也会让人有所触动。这种触动建立在软件活化技术应用和传统技术应用的对比上。通过对比,你们会发现软件活化技术的应用的部分特性,你们会觉得软件活化技术非常优秀,虽然这些还只是一些初步的应用,更多的特性,我也不清楚,还等待我们大家的挖掘。
因为《绝地》已经有了关于传统技术的介绍,所以这里更多的是关于软件活化技术特征的介绍,大家能从这里看到软件活化技术对传统技术的威胁。
l         软件活化技术可以重复使用。比如用户使用 Comegg 实现了一个 IM 通信服务器;过了一年,用户不需要这个 IM 通信服务器了,而是需要天气预报查询系统,它只需要重新改变那个 Comegg 的基因就可以了。这样,可以节省用户的成本。 如果使用传统的软件,那就必须让人重新开发一个新的软件,而原来的就没有用了,这对用户而言是一种浪费。
l         软件活化技术可以实现多样化的人性开发方式,比如图形、问题、甚至声音等,只要这些表达方式最后能够改变基因就可以了。这样就大大简化开发的难度,缩短开发的周期,提高了开发的效率。 传统的软件,需求分析可以很快做完,但是要把需求分析转换为计算机能够理解的语言就非常困难,不仅是需要花费更多的时间,而且经常是由于分工层次的问题,导致各个层次的理解不一致,从而导致设计和实现的不一致。
l         软件活化技术实现了二进制比较合理的优化。 不象多层次的组件叠加一样,又大又慢。我的 Comegg 第二个版本只有 250k 。这样,不止体积变小,运行速度也会变快。
l         可以实现软件的个性化。 下一代网络IP 地址的空前广泛,NGN 的开放……会造成越来越多的普通人,而不是企业,加入到提供服务上来。这是后,如果按照原来的软件开发和运行方式,很难满足这种爆炸式的个性化需求。如果使用软件活化技术,比如 Comegg ,那就非常方便了:个人只要买一个 Comegg ,然后找来各种各种的基因,拼出自己个性化服务的基因序列就可以实现服务了。
l         ……还有很多……
写到这里,我只想说,我很累了,心中想有那么多的思想,但是难于用文字把他们表述出来。就像我们在分析软件需求的时候,只用了1 天;而我们用计算机懂的语言去实现的时候,却用了1 年。好了,大家应该明白我的意思,来找我交流吧,你会得到比这文章多得多的东西。
 
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页