信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

四年前的畅想:基因软件

已有 3417 次阅读 2011-9-14 16:43 |个人分类:基因软件开放实验室|系统分类:科研笔记| 基因软件

何谓“基因软件

基因软件是一种摹仿生命系统架构特征的软件,是一种可演进的软件。主要针对解决软件如何随需应变的问题。

生命系统的架构特征

生命胚体在其细胞的核酸片段中隐藏着特定遗传信息-这就是生命的基因。

胚体从母体中吸收营养,在遗传基因密码的控制下重组营养成份,逐渐形成自身的肌体组织,具备各种生命机能。

胚体从母体中分离,独立面对自然环境,运用已经形成的生命机能从自然环境中吸取营养,消化处理,新陈代谢,不断让自身成长壮大,同时对自然环境产生影响,并寻找机会改善自身的基因,得到进化。

胚体是基因的承载者,从胚体的角度看,母体和自然环境都属于外部环境。生命系统架构特征就是:胚体(基因的代理者)植根在外部环境之上,接受外部环境刺激,从外部环境吸收营养,成长壮大,同时影响和改变外部环境,进而优化自身基因结构,朝更高级生命体进化。而更高级的生命体则是能使世界整体运转更高效,更稳定的生命体。

模拟生命系统的软件基础架构

将软件分为两类:生命软件和世界软件。

软件胚和软件生命

假设可以提取某类软件最核心、最本质的生长控制信息,对其进行编码,那么就相当于得到了该类软件的基因。软件基因可以托付在“软件胚”的形式上在软件世界中发布。软件胚在软件世界中,在软件基因控制下,可演变、成长,壮大为软件生命。

软件世界

软件世界是可以植入软件胚,支持软件胚与其他“软件生命”和“非软件生命”进行信息交互的运行环境系统。各种流动着的数据信息就是软件生命赖以成长的养份。

软件世界可大可小。小到只能处理一个领域的专门性问题的运行平台,大到未来的连接全球甚至全宇宙的计算机互联网络的软件,那将是一个超级的软件世界。

现有软件基本架构的生命特征

现有应用软件的基本架构已经具备了一定的生命特征。

操作系统软件相当于世界软件,应用程序就是生命软件,在操作系统上安装一个应用程序,就是在软件世界中诞生一个新的软件生命。卸载一个应用程序就是结束一个软件生命。

但现有应用软件结构和功能是靠代码来僵化固定的,一旦软件生命诞生,只有结束其生命,重新缔造,才能改变软件的结构和功能。

基因软件和现有软件的不同点

基因软件的基础架构和现有软件基础架构相同,只是把操作系统和应用程序的定位更加清晰化,更加突出操作系统的生态环境特征和应用程序的生命特征。使应用程序的使用过程,不仅成为沟通、处理和保管信息的过程,而且成为对信息处理能力不断提升的过程,也就是应用程序功能不断加强的过程。

要达到基因软件的目的,就必须从根本上改变对应用软件结构的传统观念,即应用软件的结构是可以不事先规定死的,是可以按一定预设模式成长和演变的。

基因软件在使用上和现有软件在使用上也没有什么大的区别,只是用户在使用软件的过程中,在得到信息处理的结果的同时,自然地还“教”了软件一些信息,软件可以用这些信息作为“养料”,通过自身基因的控制,来演进式地自己构造出新的功能来。

基因软件的开发和使用过程

工具开发者首先开发出两个工具系统:软件基因编制系统和软件运行环境(软件世界)系统;

接着,软件基因的编制者利用软件基因编制工具,根据不同的应用方向,编制出一个个的“软件胚”。软件胚和普通的软件程序不同的是,它不仅规定了软件胚本身具备什么可用的功能的信息,还规定了软件胚可以沿着怎样的方向,如何扩充成长的信息。

然后,软件用户从软件工具开发商那里选购到适当的软件世界,从软件基因编制者处选购到适合自己应用方向的软件胚。将软件胚安装到软件世界中,软件胚就完成“播种”过程。需要指出的是,在同一个软件世界中,是可以播种多个软件胚的。

在最开始使用软件胚的时候,用户根据自己的实际情况,向软件胚中输入一些初始化信息,同一个软件胚对不同的用户就可能成为内容不同但模式相同的软件生命。此时完成孕育阶段,软件出生,成为可正式的使用软件生命。

用户在使用软件的过程中,不仅会得到越来越多的预定类型的数据资源及其关联关系,而且会建立新的数据资源类型以及新的关联关系。软件生命除了会按已有的功能运行外,还会根据原有的基因信息来提示和控制用户输入新的构建信息,软件生命会根据用户输入的这些信息,构建出新的可使用的功能。

软件基因编制者,利用基因编制工具可以从正在使用中的软件生命中,提取出在使用过程中产生的新的数据资源类型及其关联的信息,分析基因变异的需求,对基因进行修整改造,这个过程不需要结束软件生命,并可以更广泛地传播新的软件基因。

工具开发者会逐渐将所有的软件世界进行融合,让所有的软件生命可以在一个更大更通行的软件世界中成长,同时,对基因编制工具不断进行改进,以得到对更复杂的软件基因的编写能力。

实现基因软件的关键技术

生物基因工程技术的出现,彻底改变了传统生物科学技术的被动状态,使得我们可以克服物种之间的遗传屏障,按照人们的愿望,定向培养或创造出自然界所没有的新的生命形态,以满足人们的要求。

生物基因工程本来是一个“反求”工程:人们是先看到生物的诞生,成长,进化。然后探索生命形成,演进的奥秘,才发现生物基因,进而才能改造和设计新的基因。与此不同的是,计算机软件本来就是人工从一个一个程序指令开始,通过编码来构造出来的,如果说软件生命也有基因工程的话,那么软件的基因工程则是一个“正求”的工程:它更体现在我们如何去设计一个软件生命的诞生和成长过程,以及在设计过程中,我们是否可以和愿意接受生物基因工程技术的启发。

对于“计算机软件”这么一个具有生命形态特征的特殊的人工生命,其基因工程技术的关键内容是什么呢?

软件基因模型技术

这是实现基因软件的最核心的技术。

现有软件的模型技术以面向对象模型技术占主导地位,在面向对象的下层,以实体关系模型技术占辅导地位,在面向对象的上层,以面向服务的模型技术占辅导地位。这种模型的层次主导格局是软件技术长期发展进化的结果,是有其必然性和科学性的。

如果把软件从投入使用到停止使用看作是一条生命线,那么,现有模型技术基本上属于脱离这条生命线的模型技术,建模人员和开发人员通过另外一个工作过程建立模型,实现模型,再升级运行程序,介入一线生命过程。这就是离线方式的模型技术。

软件基因模型技术在不会改变上述的模型技术层次格局,而只会改变形成这种格局的方式和方法。

基因模型技术必须产生的突破在于将离线方式的模型改变为在线方式的模型。只有最初的“胚模型”是离线一次性建模的,一旦软件胚被植入到软件世界中,软件世界就承担了软件生命在成长过程的在线建模任务,在有软件基因变异的需求时,同样是由基因编制工具在线完成模型升级的。这要求基因模型技术需要将模型本身的升级和变迁的过程和方法融入到软件的使用运行过程中去。核心的技术问题,就是解决如何将被建模对象的信息与其演变过程的信息同时表达在一个模型中。

在建模方法上,基因模型技术会继承实体关系模型、面向对象模型、面向服务模型及其横向的架构格局。但由于软件投入运行后的升级建模过程不是在一个专门的离线建模工具中由专业的建模人员来进行,而是在软件运行平台中进行,建模信息是通过用户操作使用软件来输入的。这就需要将原来建模工具的功能,分散到支撑软件成长的软件世界中去,并将基因模型在纵向结构上进行良好的封装,让用户在服务层模型上的操作,可隐含地精确影响到对象层和数据层的结构。

动态产生和执行的链锁反应式程序技术

基因软件要实现在使用中自我成长,在程序结构上必然和现有程序的结构有所不同。

软件在结构形态上经历了程序片段不断细分并与特定数据类型捆绑更紧密的发展趋势。程序片段意味着特定的过程原子,数据类型意味着特定的事物原子,二者捆绑意味着将表层的服务原子化的趋势。这个趋势预示着软件结构形态会朝在服务原子之间建立供求关系的链锁反应网络的趋势发展。这也是现实世界中各种现象实际发生和发展模式的原貌。现有意义的程序,只是在这个链锁反应网络中所找到的经常得到重复发生的链路。

软件在结构形态上的发展趋势,正好可以用来支持可演进的基因软件的运行。因为,基因本质上就是服务原子的信息抽象,在基因信息中,只包含了先天的生命的结构和结构演变的规律的信息,并不包含生命后天与外界事物之间建立的链锁反应结构信息。也就是说,基因可以控制后天生命可以和什么样的外界事物建立链锁反应链,但不可能事先建立好这些链,就象每个人出生时就决定了他或她将来能和一个她或他结合产生下一代,但不会在出生时就把他和她就固定地链接起来的。在软件生命后天的运行中,更需要一个允许动态建立供需链关系的程序模型。其软件程序的结构形态,也必须能够支持“在发生前才建立”的特性。程序的产生和运行过程,将从“一次编写,多次运行”固定归纳模式,发展为“不用编写,随用随造,逐步沉淀”的自然演变模式。

基因软件应用虚构举例

比如开发应用一个企业内部管理系统软件。

在基因软件的应用模式下,并不需要重复事先对整个企业的业务流程和管理制度进行分析,做详细的需求调查,然后经过设计编程,测试和部署实施这样传统的软件开发和应用的过程。

只需要在对通常的企业形态,企业内部结构,企业发展壮大过程中可能的扩张方式和途径进行分析,再根据对不同类型的企业业务过程进行归纳总结,将这些信息按软件基因模型的规范编制在一个一般意义的“企业胚胎”的软件中。这个软件就包含了某种类型的企业的基因信息。这个“企业胚胎”,不仅仅是一个企业在某个发展阶段的一般性结构和过程模式的抽象,还包含了对企业一般性结构和过程模式的演变发展过程的抽象。

 一个现实企业的计算机系统,可能一开始只是一台单机,随着企业的壮大逐渐发展为多机、局域网和广域网,系统上会始终运行一个可相互连接合并,不断扩充规模的运行平台,也就是会提供一个可不断扩大的软件世界。

起先企业将买来的“企业胚胎”安装在某个适当规模的软件世界上,软件世界会将企业胚胎定义的最基本的功能表现出来,比如,建立组织机构,建立员工,建立设备等企业资源模型,并在建立的资源之间建立工作流程,沟通规则等关联关系,这些企业资源和关联关系可以随着企业规模的扩大不断增加数量和复杂性。而且,它们并不是独立存在于计算机中的虚拟模型,他们会通过人机交互界面和机机交互界面和现实世界中的企业资源实现信息同步。

软件的使用者面对的是一个与现实企业实现了主要的信息同步的在线虚拟的企业,软件使用者会根据自身的业务目标,就象面对实际的企业一样在这个虚拟模型上引进、调配资源,构建新的资源关系,组织资源运行,而这些操作的结果,会通过接口与实际的资源实现信息同步。软件的使用者,在操作使用软件的同时,就在不断地创造企业资源的新的组合和运作模式,实际上就是在优化企业的模型,开发新的软件功能。

企业胚胎开发商运用企业基因工具可以从实际运行中的企业生命软件中抽取信息资源的结构模型和演变过程。分析出企业基因可能需要产生的变异。

企业世界平台开发商则致力于开发更通用,更容易扩展的企业软件的运行平台,给企业生命软件提供更顺畅的运行环境,更丰富的信息交互的接口支持。

 

邱嘉文

2007-4-18

畅想于珠海



https://wap.sciencenet.cn/blog-33982-486322.html

上一篇:学点生物信息学-2
下一篇:学点生物信息学-3
收藏 IP: 112.91.148.*| 热度|

2 洪昆辉 许培扬

该博文允许注册用户评论 请点击登录 评论 (6 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-30 17:40

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部