人类所有的计算模型都包括如下四个要素:
1)输入集合或者输入变量(I);
2)输出集合或者输出变量(O);
3)处理或者变化(P);
4)数据或者状态(D)。
即ComputingModel =(I,O,P,D)–注意其中用的是逗号(,),其中的输入输出是处理或者变化元素的输入输出。有系统应用价值的计算模型包括图灵机和Petri网两个。
图灵机在已知输入输出情况下研究处理和数据的实现问题,即Turing’s machine = (I,O;P,D)–注意其中用的是分号(;),处理就是算法、程序Programming,数据是DataStructure。图灵机的工程化技术已经成熟,包括从汇编语言到UML语言在内的全系列软件工程和程序设计语言,核心是结构化程序设计语言。
Petri网在已知变化状态条件下研究输入和输出的网络结构问题,即Petri nets =(P,D;I,O)–注意其中用的是分号(;)。
图灵机是“从蛋(I,O)开始研究蛋(I,O)孵鸡(P,D)”问题,而Petri网是“从鸡(P,D)开始研究鸡(P,D)生蛋(I,O)”问题。两者精确对偶,统一起来就可以完全解决了“蛋(I,O)孵鸡(P,D)、鸡(P,D)生蛋(I,O)”的自然循环,因此被我统称为自然(或实)计算模型,目的是区别于我预计10年后才有可能研究成熟并公开的“虚计算模型”。
对偶定律告诉我们,对偶模型可以相互解决它俩各自所不能解决的问题。Petri网的实践(语用网)可以解决Turing机所不能解决的“软件模块复用(也就是计算协作)”问题;而 Turing机的实践(算法分析-也就是软件工程)解决了Petri网所不能解决的“节点爆炸”问题。这就是我把它俩统一起来研究的原因。
如此成熟的两个对偶计算模型,理论和工程界的人们却都不愿意统一起来研究和实现,难道不是一件很值得奇怪的事情吗?怎么反而怪起解决计算实践问题的我“在骗鬼”来了呢?
近来网络里面在热烈讨论“胡戈vs陈凯歌”问题,也在激愤地讨论着“中国汉芯”的上海交大微电子学院的陈进问题。前者有了一句著名论断:“做人不要太陈凯歌了”,今天我要送出一句同样的话:“做学术不能太陈进了”,对于“网格计算和语义网格”领域里的“骗不了鬼只能骗人”的主流科学家们,无论Ian Foster的Globus、英国的e-Science、徐志伟老师的织女星网格、诸葛海教授的语义网格,还是那些博士硕士生们。我还是那句话,首先要系统阅读这个博客里的全部文章,否则都是白搭,而且会误了国家、最终也误了自己。
语用网仅仅是一个计算网络系统技术,IBM叫它"服务科学",微软是“BigTop”计划,是任何人都不可能埋没得了的–技术进步有其自然发展规律。历史无数次地证明:对于技术进步,人可以阻止得一时,却不能阻止得一世。
这里说出一件我亲历的真事。当我向硕士学位论文评审人,著名的东南大学校长顾冠群院士和计算机系主任罗军舟博导的国家重点网络实验室,阐述上面的两个计算模型时,那个曹玖新博士、硕士生导师居然说:如此根本称不上理论的简单系统,我们实验室里的任何本科生都可以轻松搞得出来,作为本科毕设都不能够格!
居然还有这么牛逼的视Turing和Petri如无物的计算机“文盲”专家? 这就是我们计算机领域现在的主流吗?
人类是在实践中不断认识世界的,一般的实践领域都包括世界观(即模型理论)、方法论(即工程技术)和具体实践(即应用系统)3个相互关联的部分,见下图的“认识与实践的‘三角形’”。
具体到计算机软件领域来讲,就是图灵机模型、软件工程与程序设计和计算机应用系统的3个方面。图灵机可以表示为四元组Turing’s machine = (输入变量,输出变量,加工程序,内部状态)。其中输入变量又称输入集合,集合是变量的变化范围;同样输出变量也叫输出集合;加工程序就是著名的算法,内部状态就是著名的数据结构。一种简化的图灵机要特别单独研究,即无内部状态的模型三元组TM‘ = (输入变量,输出变量,加工程序)。计算机应用系统就是我们针对具体应用问题而实现的解决方案。如何实现?从理论到方案之间必需要工程化技术,这就是软件工程与程序设计的领域了,总结在下图“认识与实践的‘三角形’”里。
关于图灵机模型的理论主要是Turing本人的贡献,其他人的东西至多可以浏览一下,参考参考。可惜国内的读者能够接触到原创资料的不多,一则不象国外到处都有公立图书馆里的原著经典,二则国内原先不重视原始创新、也不向西方学习创新之道。整个上图所示的计算机软件领域里,人们看重的就是计算机应用系统方法论的工程化技术,我们大量学习的正是软件工程。软件工程的目标是获得主要以算法和数据结构表达的应用系统,而软件工程的方法论、即工具,就是软件语言,如UML(统一模块语言)以及Basic、C、Java等众多的程序设计语言。可以说语言是计算表达的唯一方式。
语言就是符号系统,与在人类长期发展中演化而来的自然语言的符号系统具有复杂、现象和片段性不同,软件语言都是根据图灵机模型构造出来的计算机工程工具,简单、规则和统一。在以Morris1938年等开始的研究符号语言规律的现代语法学里,软件语言属于语义学语言,即类似于英语的从有限集合的字母、由字母有限组合为单词、由单词有限组合为语句、由语句有限组合为文章的符号系统结构,软件高级程序设计语言总是从有限集合的关键字、由关键字有限组合为结构化的程序语句、由程序语句有限组合为函数过程或对象等基本模块、由基本模块有限组合为软件应用系统。
古典语法学里有语义学而没有语用学,现代语法学重新阐释了古典的语义学,并从中分离出语用学来,为下面提及的Petri网计算系统奠定了方法论和工具基础。语义学阐述符号语言表达主观意识,语用学阐述符号语言表达客观规律。语义学阐释的主观意识是否符合客观规律,还需要在语用学所构造的虚拟社会里得到检验并受其调整。详见本blog的“形式语用学”(http://blog.donews.com/ygzw/category/94286.aspx)。
下面揭示软件工程的边界、即局限性问题。软件工程就是根据用户需求的客观事物逻辑,用软件语言表达出来的应用系统。先有用户事物,后有软件系统;用户需求决定软件系统。但是用户需求不是固定的一成不变的,而是不断变化发展的,导致软件系统也应当不断维护升级。当软件工程技术发展到一定阶段,接近成熟的时候,这种由于事物变化而导致的系统维护升级的矛盾就特别突显出来,成为计算机工程的主要问题了。前些年IBM就提出了“随需应变”等口号,以及其它机构的类似做法,说明人们都意识到了这个问题。一个叫Brooks的图灵奖获得者在1986年给出了“软件怪兽”和“没有银弹”的著名论断,说的就是不可能用软件工程方法来解决这个问题。最近几年火热的“网格计算”等也是针对的这个问题,中科院计算所的徐志伟老师在领导实践了织女星网格计划之后,也于2003年底得出了同样的“计算机领域面临大变革”的结论。
人们至今没有解决这个问题,以Foster领头的Globus小组的“网格计算项目”在风光了两年后,旋即销声匿迹了。我们虽然知道微软等巨头们早就在行动了,但它们只字不提,闷声研究,我们就不得而知了。IBM改变前几年的“随需应变”和“网格计算”的口号为最近1年来的“服务科学”,我认为IBM应该是找到解决这个问题的窍门:服务离不开社会,IBM应当是在实现虚拟社会。但IBM在去年放出“服务科学”的“洋屁”后,就再也不肯说出里面的理论模型和工程方法论了,可能的解释是IBM还没有准备好,要么是技术封锁?
好的猎人总是能够从猎物遗留的气味中判断出猎物的种类来,我们不应该满足于闻闻IBM的“服务科学”屁声,更应当探索和揭示里面的道道–究竟是吃了什么样的“食物”后才能放出这样的“洋屁”来呢?
“用户事物的发展变化导致计算系统的维护升级”,是我们面临的下一个计算问题。如果客观事物不变化,那么计算系统就不必升级。在数学里,通常设定这个变化为一个微小变量得尔塔(dlta),通过对这个微小变量得尔塔(dlta)的研究,往往可以揭示出一个更加高级的数学理论。如微积分,就是研究初等曲线微小变量得尔它(dlta)的规律而获得的高等数学的基础理论。如果我们找出客观事物的变化规律,就可以揭示计算系统的升级规律,从而获得计算系统的升级方法论,最终在更高的一个抽象级别上实现下一代的计算系统工程化技术。
用户事物不是孤立存在的,它的变化发展是受到其存在的环境影响的,普遍联系的哲学原理恰当地揭示了事物的变化发展规律。“事物之间的联系是物质的、客观
的、可以通过观察得到的(语用学的)、而不是您脑子里臆想的(语义学的)东西”,Petri早在1963年就”用计算机科学的语言揭示出了这个物理理论”,被称为Petri网理论
(Petri nets theory)。完整的Petri网论也包括与上图相仿的“认识与实践的‘三角形’”,收录在下图里。(如果图不清楚,请参见http://www.chinagrid.net/dvnews/show.aspx?id=1503&cid=6的图形)
Petri是物理学家,已经80高龄了,他现在不可能也没有必要亲自来实现这个工程化技术了,但是他在过去的40多年里已经全部深入地给出了网论的这三个方面(http://www.informatik.uni-hamburg.de/TGI/publikationen/public/biblio_petri_eng.html)。Petri网论已经完全发育成熟(我很奇怪:计算机领域的人们不习惯于阅读发明人的原创资料,去总是道听途说地去理解前人伟大的思想?这是科技研究,特别是尖端科技研究的大忌!)。本博客(http://blog.donews.com/ygzw/)里试图阐述清楚的就是实现这个叫“虚拟社会”的工程化技术–“语用网和计算自然语言(Pragmatic Network/Web & Natrual Languge Computing)”项目实现“语用设计语言”并支持“人件知识工程”。
计算机的未来将毫无疑问地集中于此,有人曾经预测这个技术市场的规模是20万亿美金。我们下一步该做什么了呢?我在迷惘中等待着国人们的觉醒。
[注:本段文字主要总结了“人件知识工程与语用设计语言”在整个计算机系统领域里的作用与地位,并兼顾回答北京大学袁崇义教授(Petri的嫡系弟子,《Petri网原理》等系列教科书的作者,被称为国内Petri网论权威)的不理解“模拟能力等价的Petri网论怎么就比图灵机高级了呢?”:初等曲线的自然指数有限多项式(+aiX^i,i=0,1,2,...,n)的微积分仍然属于自然指数有限多项式集合,二者模拟能力等价,但微积分却属于高等数学范畴。]
“ 汝水边上有一个土财主,家财很多,但几代不认识一个字。有一年,聘请楚地的一个读书人教他儿子。先生叫他儿子握笔描红,写一画说:“这是一字。”写两画说:“这是二字。”写三画说:“这是三字。”他儿子便高高兴兴地把笔一丢,跑到父亲那里说:“我已经会了,可以不必麻烦先生,多花费一些学费了。还是辞退了他吧。”他父亲听了很高兴,依了他的主张,准备了一些报酬把先生打发走了。
“过了一段时间,那财主准备请一个姓万的朋友来喝酒。叫儿子清早起来写请贴。很久了还没写完,他父亲去催促。他儿子大发脾气说: “天下的姓多得很,为什么他一定要姓万?我从清早写到现在,才写了五百画。”
“刚刚懂得一点道理的读书人,偶然有了一点心得,马上就沾沾自喜地骄傲起来,大概有点像这个富翁的儿子吧。”
这个寓言故事,可以来评述当前Petri网论的学习与研究状况。
Petri老先生在1963年近40岁时才提出来Petri网论的,后网论在全世界成千上万科学家们的努力下,至今历40余载方逐步发展成熟至完善。整个60年代,发展的是叫特殊网论的Petri网系统;70年代Petri又提出通用网论的Petri网逻辑;80年代提出的是形式语用学的Petri网工程。因人们始终局限于特殊网论,而不顾通用网论,更不知有计算语用学,故90年代至今Petri就不再公开他研究的更为高级的量子计算系统了。(参见Prof. Dr. Carl Adam Petri的数量上很少的原著列表http://www.chinagrid.net/dvnews/show.aspx?id=1366&cid=6。)
网论的学习者,特别是我国的那些所谓Petri网的科学家们,看中的只是网系统花里胡哨的图形化表示和数学公式,目的为了提高论文的档次,才接触和学习了特殊网论,就可以完成论文和学位的目标了。因此就不再继续学习和深入研究了,反而认为Petri网模型很不咋样,模拟能力也非常有限,自己已经掌握了这个东西,从而不再学习通用网论了,更妄论形式语用学了。这不刚好就是那个”汝水边土财主的儿子“吗?
Petri网论包含3个不可分割的部分:60年代初始时提出来的叫特殊网论的Petri网系统,70年代Petri提出的叫通用网论的Petri网逻辑;80年代Petri指出的是形式语用学的Petri网工程。3者之间,网系统是Petri网计算的应用表现形式,如同软件应用系统一样,是Petri网理论的外在体现和物化。网逻辑是Petri网论不同于其它一切计算机系统模型的独特之处,是Petri网论的实质与精髓。Petri网逻辑与当前热点的语义Web里OWL的描述逻辑一样都根植于古老而深邃的数理逻辑。网工程是Petri网论的终极目标,正如同软件工程是图灵机模型的终极目标一样。Petri发明网论的目标就是要实现Petri网计算系统,而不仅仅是为了在繁多系统模型里增添一束浪花,或者是为了后人获得学位和论文增添一条理论捷径。毕竟不能实现的计算机系统模型,再好也只能是镜花水月、海市蜃楼,这也是Petri很罕见地点名批评了的那个清华大学林创老师们曾经致力搞的随机Petri网模型的原因。
本网站公开的语用网项目完全改变和突破了这一现状,将实现Petri老先生的工程化梦想。我们知道,汉语并非是财主儿子想象的那么简单,更非他实现的那么复杂。Petri网论亦然,并非学习者们认为的那么不中用,也不是他们想象的多么复杂。事实上,实现Petri网工程的语用网系统,就是用语用单元典的方法实现用汉语言来描述计算机应用的覆盖层(overlay,沿用P2P的overlay网络之意)系统技术。
上一篇日记里,从我多次谈到的“九方皋相马”的故事里感想出来的一段在计算机应用领域里可以作为小学生基础知识的话:
“图灵机是一个控制流计算机系统模型,Petri网是一个数据流计算机系统模型。计算机不就只能是硬件系统,软件也是计算机,人件更是计算机。整个计算机领域都是以应用为牵动的,离开应用,计算机就什么也没有了。应用就是实践,就是物理–对客观规律的掌握。图灵机模拟实现的是个人实践的包括加工和存储在内的程序处理过程,而Petri网模拟实现的则是社会实践的包括物质和数据在内的资源流动过程。”
学友说:“Petri说通过四次网射可以把所有东东成PN。”
对。我首先解释Petri的四次网射。
Petri是对数据流建模的,数据穿过一系列的图灵机,从初始位置到达终止位置。这个为人类社会的物资流建立模型的数据流,在穿越图灵机的过程中不是封闭的,而是开放的、有数据交换的。 这个交换过程就是内射,即添加需要的、去除不要的,这个过程是变迁完成的。所以内射就是“去粗取精、去伪存真”的辨证的变化发展过程。内射,排在四射之首,就是这个道理。
网论认为,全社会、全世界都是普遍联系的,叫虚拟社会,包括人类社会、物理世界和语用网支持的Petri网空间,是唯一一个“宇宙”和现实宇宙的“完美网”。所有的网系统,即语用应用都是其中的一个子部分,这个部分对于物质流和数据流来说不是封闭的,而是要与虚拟社会的其它部分发生交换的。这个性质叫做网论的“内射”,是第一位重要的性质。
Petri网里,所有的网应用都是一个虚拟组织,如同现实社会的一个组织一样。社会组织当然要与社会发生联系,毫无解释的必要,因为这就是社会存在。
在Petri网系统里,所有的应用,即虚拟组织,都是一个子Petri网,整个包括人类社会和物理世界在内的虚拟社会才是一个完整封闭的Petri网系统。一个子Petri网,就相当于图灵机里的一个函数,一个对象,也是一个系统的模块。
2、求精,搞网论应用的人最需要知道的就是“什么是求精”。
求精,不是要求到所有的具体细节出来,而是求到恰当的细节,就可以了。
具体到语用网里,就是求到一个子网系统,至多是一个图灵机。而不是袁老师的一条指令,更不是一个与非门。
求精的要点是避免“节点爆炸”。在应用中也很重要,所以排在第二位。而第一位的内射是Petri网所以成系统模型的核心所在,更重要。
求精,我觉得好象称为“分解”更合适一点。过去人们没有Petri网的实现基础,一个系统用Petri网来模拟,总是不断求精下去,袁老师的C-net,就是求到硬件的机器指令一级,取代了整个图灵机软件层。更有7、80年代探索的硬件Petri网计算机,居然一直要搞到与非门里面,连硬件计算机系统也不要了,而单独自成一套。
这样的工作,也许在理论上可以说说,但实际应用中,有这个可能吗?Petri从来不主张这么搞的。我要吃饭,直接去饭店就可以了,完全没有必要为了吃饭而去碾米、还去种稻,还要育种,那些东西是社会其他部门的工作啊,没有必要我们自己承担的,开放世界,是普遍联系的啊,我们不可能把自己封闭起来的。
这就是Petri的分解理论。在语用网里,应用分解到字(图灵机)、词(图灵机组合)和句(一个子Petri网系统),就可以了。正如汉语里,用字词句来写文章的过程。在语用网里,分解与合成,统一起来了。
3、应用是有目的的,但网系统模拟的是社会,社会没有目的,只有发展。网论是应用模型,所以有目的性。
所有的网应用系统,都是有目的的,正如社会组织,都有目的性一样,公司要赚钱啊,农民要种地啊,等等。没有什么好解释的。
4、就是通用网论的语用学了。这个是我的深化。也是我的实现,是语用网所以成为一个项目的价值所在。
理解“形式语用学用符号语言的上下文关系,表达了图灵机的协同计算,或者说语用计算用图灵机的协同工作支持了符号语言的上下文关系”,是正确认识Petri网论的关键所在。每一个符号(即字,就是原子语用单元)代表一个图灵机,符号上下文就是词和句,代表有消息传递而同步的相关图灵机组合,这些图灵机组合为一个Petri网应用系统。
最后一射,是我的发明创造,稍微有了一点困难。语用网项目沟通了符号语言与程序语言,理解这个就真正理解了Petri网思想了。前面三射就是为了这条服务的,这条才是Petri创造网论的真实目的。
上面的大段是为了说明下面的问题的。
学友又说:“可他的出发点和我们不同的”.。如果你说Petri的原意是为了解决“自动机通信”,这就对了。这里的自动机指的就是图灵机了,而自动机通信,就只能是图灵机的消息传递了。通过图灵机的消息传递来实现数据流计算系统模型,这就是Petri创立网论的本意啊。
学友一定还会说,当时的自动机指的是有限状态自动机,与现在OO的程序设计技术方法语言和现代并发OS有了很大的差别,即使是图灵机通信也不只是消息传递一种。对,这就是我一直强调的计算机以应用为导向、属于社会实践的工具论范畴的原因所在:实践总是不断发展着的,作为工具的应用技术也总是不断演化着的,理论也就随之而换了“马甲”。我们不能因为理论换了马甲就不认识了它,甚至就否认了它。学习和研究千万不能“读死书”啊。所谓要用发展的眼光来看待问题,指的就是这种不断变换马甲的系统理论认识方法。
学友又说:“要是你看看变种是如何来的,就明白他为什么做不到了。或者说许多人认为他做不到了”。把一个好的理论变没了,犹如把一个蒸蒸日上的企业搞垮了、搞砸了,虽然确实是绝大多数时候的规律性事实,但也不是什么光彩的值得炫耀的事情。相反,把一个不大适用的理论转化为Killer理论,叫做创新,而在没有理论的地方硬是搞出一个模型来,叫做原始创新,才是值得炫耀的,也正是我们科技研究的职责所在。
学友又说:“以我的水平,我认为Petri网做不到”、“要是只有Petri一个人做得到,他又不说如何做,那还有用吗?” 这些话似曾相识,当年人们诘问爱因斯坦的相对论时也出现过的。
事实上Petri把全部网论都说出来了,你也说是你“自己看不懂”的,现在却反而说是人家没有用。
学友的这种“不识庐山真面目,只缘身在此山中”的研究状况,可能是不知道或者忽略了应用实践在计算机科技领域里的极端重要性,而完全是“为学习而学习、为研究而研究”的科研出发点所导致的。这种轻视应用实践的研究思路,是特别不适合于计算机应用系统技术领域的。
语用网是我在工程实践中解决软件协同计算问题而提出来的计算应用系统技术方法,我当然希望里面的理论都是我自己的原始创新啦,但我又怎能无视前人的工作,而肆意地去剽窃和抄袭呢?语用网里的全部理论都是Petri网论,而且Petri网论已经很成熟了,我不可能再添加什么更有价值的东西了。
以下是摘自我这个博客里的“九方皋相马”的感想的最后一段话。
“这里我一万次地强调:图灵机是一个控制流计算机系统模型,Petri网是一个数据流计算机系统模型。计算机不就只能是硬件系统,软件也是计算机,人件更是计算机。整个计算机领域都是以应用为牵动的,离开应用,计算机就什么也没有了。应用就是实践,就是物理–对客观规律的掌握。图灵机模拟实现的是个人实践的包括加工和存储在内的程序处理过程,而Petri网模拟实现的则是社会实践的包括物质的和数据在内的资源流动过程。”
昨天一个群中学友问我:语用网到底实现了那类Petri网计算系统啊?是基本网?EN系统?C/E系统?要么信息流网?P/T?Pr/T?、、、,我一时语塞。
晚上,有感而发地重述了我多次强调的上面一段话。
其实群里没有几个懂Petri网论的,能遇到一个知道些的,我真的很高兴啊。可是为什么人们总是懂得了一点点的时候,就自满了,就不再孜孜以求下去了呢?其实很多道理啊、理论啊什么的,只要明白过来,就一通百通了啊。牛顿的万有引力,之前的人恐怕谁都不明白,而现在恐怕小学生都理解了吧?
关于模型问题,其实是一个很重要的问题,我应当在什么地方公开过了,但我一时没有找到。
计算机仅仅是一个工具,所有关于计算机的理论研究不能逃得出这个工具论的范畴。
一个谁说过的名言:不管白猫黑猫,逮到老鼠就是好猫。
在图灵机的理论里,也有许多图灵机类型的,但我们搞软件开发的,编程序时是否都想过自己搞的到底是哪个图灵机系统的吗?
当然有人说,不同的程序设计语言自身就遵循了不同的图灵机模型了。是的,所以世界上就有了很多程序语言啊,有的模型抽象得好,语言就流传得广。而另外一些科学家呢?没有深刻理解系统理论,就匆匆上马,也去搞出个程序语言。结果大多数的程序语言,都躺在实验室里睡大觉,发明者还抱怨说组织推广不力。
希望我们在Petri网领域的语用网计算实践里,能够汲取前人的经验教训,尽量避免类似情况的发生。
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网就是直接给物理世界的自然规律建立的计算模型。