1、 Petri网是计算机的世界观
世界观就是对物理世界的观点和看法。用计算语言来说,就是给现实社会建立一个计算模型。人人都有自己的世界观,即每个人的头脑里都有一个对现实社会的基本映像,人就是根据这个映像来看待社会,并与社会交互的。这个映像就是模型。
Petri认为,世界观是与现实社会交互的必要前提;作为人类工具的计算机,也需要与现实社会交互;因此计算机也应该有世界观。为此,Petri给出这个计算机的世界观模型,就是被大家称为Petri网的系统理论。
按照Petri的逻辑,作为人类朋友的狗,也需要与现实社会交互啊,因此狗也有了世界观罗?这虽然是我的笑问,但他一定会回答:是的,如果我们关心狗怎样看世界,那么我们就要研究狗的世界观模型。现在我们关心计算机怎样看世界,所以要建立这个世界观模型。
所以Petri在袁老师的那本书的序中说:“网论一开始就是以物理为基础,事实上这是用计算机科学的语言提出来的一种物理理论。”指的就是以上的意思。但研究网论的数学家们却极力否认,似乎认为与哲学挂钩会降低自己的身份。他们可以不管网论的物理解释,而邀游于纯理性的空间中,但我们计算机应用技术人员、特别是系统技术的研究设计人员却必须正视它,否则就不能够正确地实现和应用它。
2、Petri网模型
记得一位高僧曾经说过,“世事纷纷,名利之争。”意思是说,人类社会纷繁复杂,在世人眼里,就只有“名与利”两个东西,人类勾心斗角,都是为了它俩。同样,在计算机“眼里或者头脑里”—计算机现在还没有眼睛、还没有头脑,所以我打了引号,但被Petri提出来的这个Petri网正是计算机的大脑,因此以后说“Petri网就是计算机大脑”的时候,就不必加引号了—纷繁复杂的人类社会也只有计算(就是软件构件系统)和存储(就是软件应用系统)两类元素而已。计算元素叫同步元素(T元),用方框表示;存储元素叫异步元素(S元),用圆形表示。
两类元素之间的关系构成为整个世界。关系只有边(T,S)和(S,T),没有(T,T)和(S,S)边。即同步元素周围是异步元素,而异步元素周围一定是同步元素;边有方向;边里流动着的是消息,消息包括现实社会里的物资或者计算机世界里的数据。
静态的Petri网,就是这样一个由同步元素、异步元素相互间隔而成的开放的可以无限扩展的有向网络(T,S;F),其中T是同步元素集合,S是异步元素集合,而F是边(T,S)和(S,T)的集合。
同步元素是无状态元素,其内部实现就是一个用函数表示的加工。元素有n条输入边和m条输出边,且n、m >= 1,即至少有一条输入边和一条输出边。虽然元素内部的函数有确定的终生不变的输入参数和输出参数,但元素边的数量以及边中的消息却是可以随外界而变化的,但是一定保持输入边和输出边里的消息里含有的数据符合函数要求、且总质量不变。简单地讲,就是加工不会贪污,对输入的物资或者数据处理后的总质量保持不变。
同步元素的同步是指同步元素周围的所有n+m条消息,要么同时发生,要么同时不发生,并且称这n+m条消息的同步为“一次执行”。即保证一次执行的原子性。
异步元素也有n条输入边和m条输出边,且n+m >= 1,即至少有一条输入边或者一条输出边。异步元素总是被动地为同步元素提供或接受消息,一次一条。
元素的邻居、及其间的消息,都是由系统定义,与元素自身无关。但要求元素能够接收和发出这些消息。元素的邻居数量、及其重要性不是一成不变的,在不同的应用环境里,可以有很大差别,如同人类的朋友关系。
动态的Petri网,就是在同步元素周围发生的“一次一步”的消息传递,以及由此导致的异步元素里的物资或数据的变化。
同步元素是一个消息(里含有的物资或者数据的)加工系统,即现实世界里的加工厂或者计算机里的函数,叫“变迁”。异步元素就是一个消息(里含有的物资或者数据的)存储系统,即现实世界里的仓库或者计算机里的数据存储系统,叫“库所”。
Petri网是一个“自分解(解构、析构)”和“自组合(重组、重构)”的系统模型,即同步元素和异步元素都可以是另外一个Petri网系统。但其原子元素必须是计算机里的函数或者数据存储系统,即软件构件系统(software components system)或者软件存储系统(software storages system)。Petri网计算系统是建立在软件系统之上的一个P2P网络应用系统。
补充:Petri网就是把一个个封闭的图灵机系统用消息传递联系成为一个整体的“虚拟社会”的。Petri网把所有的软件系统统统分成两类:1类是计算元素的软件构件,如dll文件,是函数集合,负责消息处理和转换。因为计算元素不存储任何中间状态,所以必需立即把处理结果再用消息传递出去,因而叫又同步元素。另1类是存储元素的软件应用系统,用于加工并保存消息中的有用数据。存储元素可以按照应用逻辑的要求保存或者提供(而不是同时既保存又提供)消息里的用户数据,因而又叫异步元素。所有软件系统要么属于计算元素,要么属于存储元素,没有第3类,不可能有既是计算元素同时又是存储元素的软件系统。
一个Petri网应用系统到底侧重于计算还是侧重于存储,我设计了一个衡量标准--同步度来评价。
3、 Petri网的观点
Petri网认为,包含物资流和数据流的消息传递,是社会的本质。系统中的每一个元素都是通过传递消息来体现其社会价值的。不参与消息传递的孤立元素没有系统意义和社会价值。
消息是有社会价值的,但是同步元素的多个输入/输出边里的消息的价值是不平均的,有主次之分。人们通常关注的是具有最大价值的主要消息的流向,这是网系统的社会性。
Petri网模型没有全局状态,也没有任何的中央控制,可以无限扩展。系统的每一个元素只与其周围邻居发生着关系,Petri网就是一个完全分布的P2P网络,如同Gnutella协议。
Petri网是一个P2P网络计算系统,调节了“物理世界、人类社会和计算机空间的三位一体的虚拟社会”。
4、 Petri网系统分析
正确性分析
我们在软件工程中,需要把一个大型应用系统逐步分解为小模块,直到这个小模块可以被一个算法独立实现。但是我们不知道这个分解是否正确,即这个分解后的子系统是否满足原系统的要求?
如果这个分解过程是遵循的Petri网论的话,那么可达性等系统正确性分析就可以验证这个过程是否正确。
这完全是一个数学的分析过程。枯燥乏味。
性能和效率分析
同样,一个大型应用系统分解为小模块时,通常有多种方法,那么各种方法的优劣如何比较呢?这就是不变量分析了。
Petri网认为,系统总是有损耗的,损耗小的系统自然就好。不变量等系统性能与效率分析就是研究系统损耗的理论。数学的东西就更加枯燥了。
Petri网是一个物理计算系统,模拟的是客观物理过程,因此原来用于物理系统的分析和评价的理论和方法都可以应用于网系统。
Petri网系统有许多成熟的分析理论和免费或收费的分析工具。
5、 Petri网的本质
Petri网是用计算机语言刻画物理系统的运行规律,一个物理系统对应一个网模型,一个网模型模拟一个物理过程。一一精确对应,没有一个物理现象不能用网模型来描述和表达的,也没有一个网系统不对应一个物理过程的。
Petri网论结合了数学与哲学,用数学的方法来精确地计算哲学问题。
Petri网论早已成熟,我们必须找到网论的物理解释。因为找到网论的物理解释才是成功应用网论的前提。
6、 通用网论
通用网论研究所有网系统的共同基础,通用网络的研究对象就是网本身,而不再是客观物理规律。通用网论是Petri网的本质和意义所在。
Petri说:“通用网论使得Petri网有别于其它计算系统模型,通用网论是Petri网的关键和精髓。”
在袁老师的那本书的通用网论部分的首页上罗列了Petri为通用网论定下的目标,其中的第7条是“通用网论可以导出有用的形式语用学。”
同样Petri在此书的序中最后说:“4、抽象。即对同属于某一目标的一切活动的抽象。,,,,,你需要一个将这些活动与一个语用单元(袁老师翻译为语用单位)联系起来的概念。这种联系并不只是物的,对你的脑子来说它也是必要的,,,,,” 。
这些表明了以下关系的存在:
消息中的数据就是物资从物理世界到计算机空间里的映像,就像物资在人脑里有映像—可以上升为意识—一样。
无论如何,计算机都属于人类工具的范畴,突出地表现为实践论。如果说 图灵机模拟和解决的是个人实践的计算问题的话,那么 Petri网就是模拟和解决了社会实践的计算问题。
Petri网在计算机的图灵机世界里模拟了人类社会,是虚拟社会理论, 通用网论就是在计算机世界里模拟了人类意识功能。 语用网就是它的实现。
Petri对于网论的研究,主要经历了几个阶段:60年代的网系统,70年代的通用网论,80年代的语用学。有其文章为据,Petri发表很少量。其中通用网论是其精髓。90年代的主要发展是工作流模型和网系统的标准化。
7、我的工作
实现了Petri网计算系统,导出实用的语用学,并实现了语用语言。
8、Petri网应用
不同的世界观有不同的方法论,研究世界观的目的就是揭示其相应的方法论。计算机的世界观就是通用网论,Petri网系统就是其方法论。Petri网就是通过建立一个个的Petri网系统来模拟和刻画客观物理世界的行为规律的。
因此,我们设计计算机应用系统,就是设计Petri网应用系统,其基本工具就是语用语言,语用语言就是计算机的自然语言。
Petri网的学习最好是阅读原著,Petri的原著比一切其他人的文字或综述都要强100倍。越多读原创著作,越能够获得教诲,如同读中国的红楼梦和读其评论一样,再好的评论也不如原著的1/10。ISO15909是Petri网的唯一标准,是全球专家协作的结晶,应当代表当今的认识水平。其他各个时期的论述文字只需浏览、当作反面教材即可。
9、后记
某些学友认为我的语用网里说大话空话,不可能具体实现。其实我说的都是大实话,没有一句虚言,而且实现方法极为简单,任何理解它的程序员都能够轻松地实现它。因为其基础理论和支撑技术都已经成熟而且都是免费公开源代码。
同样,很多人认为Petri网只能作作文章,没有实际应用价值,甚至包括一些网络界著名的Petri网理论和工程的双料专家。由此而阻碍了(Petri网)科学(语用网)技术的发展,实乃人类之大不幸。
最后,某些人认为我的文章很有思想,也很有创新,但都“意犹未尽”,觉得是我在保守、不愿意公开技术内幕。其实,无论新思想、新方法,还是技术创新,特别是原始创新,都是有一个具体的发展进化的过程的。
Petri网论能有今天,除了Petri老先生本人40多年来的不懈努力,更是全世界成千上万的科学家共同努力的结晶。
希望我们的国人们团结起来,共同努力促进新技术的发展与进步吧。
10、学习袁老师的那些书(89年的《Petri网》、98年的《Petri网原理》和2005年的《Petri网原理和应用》)的要点
袁老师的专业是数学,没有涉足计算机、特别是图灵机模型,更不会编程,对近代快速发展的计算机技术知之甚少。他不上网,我与他老人家交流是写信邮寄和打电话。所以袁老师的书中对数据、信息等基本概念分不清楚,更不知道并发计算系统里最重要的消息概念。
如《Petri网原理》p3第一章网和网系统第一节实例的引语“用Petri网描述的系统有一个共同的特征:系统的动态行为表现为资源(物质资源和信息资源)的流动。”是一句很重要的话。应该表述为“用Petri网描述的系统有一个共同的特征:系统的动态行为表现为‘消息传递’,其中‘消息’可以封装现实世界的物质资源或者计算机系统里的数据信息。”
把物理世界的物质资源映射为计算机系统里的数据信息,是建立计算模型的基本方法。资源的流动没有强调资源在流动过程中的改变,事实上,改变才是资源流动的根本目的,如果不能够加工和改变,资源就失去了流动的意义。资源和数据的流动需要封装为消息,消息即运输物资和数据的工具。消息传递表示物资或数据总是在一对具体元素间无改变的流动,而元素是处理(加工或存储)消息(里的物资或数据)的基本单位。
袁老师不是物理学家,对计算应用和物理理论涉足不多。如《Petri网原理与应用》一书中为袁老师称道的电梯实例,就把一个在磁盘存取调度里解决很好的算法问题,硬要用Petri网来复杂化,恰是该书的一大败笔。
不过,书中的一些话确实是Petri的真传,如“上篇Petri网系统”的倒数第二段第一句“以自然规律刻画变迁及变迁间的关系,使Petri网具有区别于其它模型的许多优点。”表达了Petri网就是直接给物理世界的自然规律建立的计算模型。