关于在分布处理系统中开发程序的方法

文档序号:6405300阅读:179来源:国知局
专利名称:关于在分布处理系统中开发程序的方法
技术领域
本发明叙述的是一种在一个由多个处理器分别执行一系列处理的分布处理系统中开发程序的方法,在此系统中,用一个开发这种程序的开发处理器开发将要由各自的处理器执行的应用程序,並且将已制定好的应用程序装入各自的处理器中。
在分布处理系统中开发程序,美国专利USP4,627,055中已描述过了。日本专利JP-A-57-146361公开了一种与公共传输线相连的各处理器分布地处理一系列任务的分布处理方法。在此方法中为了执行各自的一系列处理中的各程序被分布地存入各自的处理器中,並且,当必要的执行该程序的数据已经从传输线装到各自的处理器中时,各自的处理器中的程序被启动。这种方法能够用各自的处理器分布处理各系列的处理而不需要控制整个系统的控制处理器。
日本专利JP-A-61-286959公开了一种本身的方法,用来在一条传输线上作为一条信息广播要被各自的处理器执行的诸程序本身的方法,因而每一个处理器接受在传输上广播的一些必要的程序,並将它们存入各自的处理器中。
在过去各程序被共同地开发。因此,如果一个程序要被修改和采纳以开发一个新的程序版本,已开发的程序的新旧两个版本仅仅用增加一串数(生成数)就能够区别了,这串数表示修正原程序的次数。根据该数能够确定已开发的程序是否要被进一步修正(修改或补充)或者该程序是否能在执行计算机中使用。
然而,该方法並没有考虑这种情况,在各独立的开发系统中根据具有多个开关系统的分布处理系统中的一条程序分别地修改或补充各个程序。
在先前技术的分布处理系统中,由于程序之间的接口仅仅由程序的输入/输出数据来确定,因此可以单独地开发各自的程序。然而在先前技术的方法中,设有办法检查在这些单独开发的程序中或者程序之间是否存在一致性,也没有办法为这些程序确定信息。这样就在开发该程序中产生了一个问题。
在先前技术的方法中,当所开发的程序要装入各自的处理器中时必须确定程序的输入/输出信息,以便区别程序的输入/输出数据,如果确定了错误信息,程序将用与予期的信息完全不同的信息执行这个处理。
本发明的一个目的是提供一种关于在分布处理系统中开发程序的方法,它能检查已开发的程序之间的一致性並且根据在装入处理器中的程序属性信息产生对于装入所必要的信息,以使程序开发的效率增强。
本发明的另一个目的是提供一种在一个由多个处理器执行一系列处理的分布处理系统中开发程序的方法,在该方法中,在将要装入各自的处理器中的程序开发期间,可以检测出具有输入/输出信息的信息和输入或输出这些信息的程序之间的关系,因此可以了解程序的准备状况。
本发明的另一个目的是提供一种关于在分布处理系统中开发程序的方法,在此方法中在各种程序被装入各自的处理器、並在那里启动之前就可以得出各程序之间的关系。並且测检出这个关系中的不正常现象,以便提高软件可靠性。
本发明另外一个目的是提供一种关于在分布处理系统中开发程序的方法,在此方法中程序並不是由中央控制功能件开发的,而是由多个开发系统和一个处理器的组合开发的,並且,按照每个处理器的规定特征信息加到这个已开发的程序上,根据该特征信息,每个处理器就能确定它是否能够执行该程序。
本发明另外一个目的是提供一种分布处理系统,在该系统中,合作开发程序的复杂开发系统(例如,开发系统並行地修改原始程序或者顺序地修改不同部分)能够容易的认出程序产生、程序之间的关系以及由它们自己决定的程序特点。
本发明另外一个目的是提供具有多个处理器的一种分布处理系统,它不需要作为集中管理程序的中央控制机构,並且能够合作开发程序而不受在系统中增加一个新处理器或者对处理器的维修工作的影响。
实现本发明的上述目的方法是在源程序编辑期间把源程序上确定的输入/输出信息上的特征信息分开,按照与编辑好的寄存模块的相应关系将它储存起来,並且准备一张根据特征信息表示程序之间关系的表格。
在开发过程中对于每一个程序建立它的输入/输出信息,並且各自的程序的输入/输出信息是相互关连的,为的是在开发过程中了解程序之间的关系,並且由此可以检查一致性。在装入程序时,自动地产包括程序的装入模块和输入/输出信息的装入消息。
在分布处理系统中的程序开发中,程序在传输线上不用从正常的数据中区别它们即可广播,在分布处理系统中程序开发处理器仅仅根据表示这些程序的编码来接纳必要的程序,並且把该程序的特征信息和关于更新过程的信息加起来,以便只用各自处理器的规定来管理已开发的程序。程序的特征信息,(即为了辨认部分程序的信息,)和程序版本信息被加到这些处理器之中的将要准备的或者将要修改的程序上並且在公共传播媒介上广播它们。各自的开发处理器,当它们从公共传播媒介中收到信息时,根据程序的特征信息修改程序並且送它们到传播媒介上。因此,复杂的程序开发系统能够在合作方式中开发程序。


图1表示的是实现本发明的程序开发的例子,在这个例子中程序被装入开发处理器中;
图2表示的是用本发明开发的程序将要装入的一个系统;
图3表示的是源程序的格式的实例,该源程序是本发明的程序开发的课题;
图4至图7展示了本发明;
图8画的是依照本发明的分布处理系统的方块图;
图9显示了将要通过传输媒介发送和接收的信息的消息格式;
图10到图12表示的是程序修改的实例;
图13表示的是按照本发明的处理器中的处理流程图。
图2a至图2c显示了一个应用本发明的系统。图2a表示的是整个系统的配置。数字11~14表示处理器,在这些处理器中储存並执行应用程序。数字15表示开发程序的处理器,它开发出来的程序由11~14处理器执行。磁盘1502和阴极射线管(CRT)终端1501与处理器15相连。所有这些单元一起被称作为开发系统。已开发的程序由执行系统执行。处理器11~15与网络1相连,网络1可以是任何形式的。处理器11~14的处理结果(数据)送到网络1。为了执行在它自己的处理器中的程序,每一个处理器从在网络上广播的消息中接受必要的消息(包括程序和数据),当所有对于于执行所必要的消息都已接受到的时候就启动程序。已启动的程序执行它自己的处理过程並且将结果输出。
图2b表示的是在网络1上广播的消息的格式。每个处理器根据表示数据内容的存数码(CC)202来决定从网络上收到的消息对它自己的程序是不是必要的。源地址(SA)203是已经发布消息的处理器的地址,C204是一串表示发送次序的数。数据205表示被程序处理过的结果内容,FCS206是对发送数据的错误检查数据,而F201和F207是指示消息开始和结束的标志位。
图2C展示了一张表,每个处理器为了决定它自己的程序启动都有这张表。图2C的表中行1051、1052、……与各自己程序相对应。在第一行中Prog10512是将要被启动的程序的信息储存区,而IData10511是执行从网络收到的程序Prog10512所必要的消息的储存区域。第二行1052设计成这样只有当二个消息IData-110521和IData-210522已经存入时程序才能执行。第三行和以下接着的各行都有类似的结构。对于执行程序所必须的消息存数码以前就已存入每个程序的表中IData10511内。每个处理器对从网络上收到的消息的CC202与它自己处理器中的表上的存数码进行比较,並且将该消息存入比较IData区10511。当所有的必要消息已经存入IData区10511时,处理器利用该消息中的数据去执行该Prog区10512中的程序。当所有的必要消息都已存入IData-1和IData-2区时,Prog区10521就被执行。
参照图1,图3,图4a,图4b,图5a,图5b,图6a,图6b,图6c,图7a和图7b,现在详细说明关于用上述系统执行的程序的程序开发系统。
图1表示了关于处理在开发处理器15中的消息的程序。程序15001,15002和15003被装入处理器15中。这些程序随着从显示(CRT)终端1501的输入而启动。程序15001是特征产生程序,为了指定源程序文件3011,3012,……中的一个,特征产生程序产生装入模块文件3501~350n和一个特征文件。程序15002是广播程序,它通过装入模块文件和特征文件联合的方法制定装入消息,並且在网络1上广播该消息。程序15003是一致性检查程序,根据特征文件3500的内容它使各程序相关。下面会说明这些程序处理的内容。首先用图3和图4来说明程序15001的处理。图3表示的是图1中的源程序3011~301n的内容。这些源程序予先已经由程序开发器从CRT终端1501送入。作为本发明的课题的源程序包括特征部分401和过程部分402。特征部分401包括程序名定义字段4011;输入消息存数码字段4012;输出消息存数码定义字段4013;以及为了测试程序用的信息4014(例如测试输入的及它的结果)。过程部分包括编码程序。
图4a表示了程序15001的处理流程。当由终端1501指定转换到装入模块中的源程序文件时,编码程序15001处理开始。特征产生移序15001把指定的源程序分成特征部分和过程部分(551步)。检查已分离的特征部分的格式(552步)。在格式检查中,检查特征部分的内容是否与图3中的401相等。如果格式检查的结果是OK,处理过程继续进行到554步,而假如结果不是OK,就产生一个错误消息(557步)並且处理过程就终止。在554步中,从551步中分离出来的过程部分被编辑以产生装入模块文件。如果编辑正常地终止,处理就继续到556步,假如是错误的终止,就在557步中产生一个错误消息,处理被终止,在556步中,已通过格式检查的特征部分401的条目的右边被收集来准备一个特征文件(图1中的3500)(556步)。于是,已准备的特征文件和装入模块文件的结构如图4b所示。特征文件3500包含特征表格35001,35002……,它们与554步中准备的装入模块文件3501,3502,……一一对应。表35001包括一个PN350011区,它包含一个由图3中的源程序特征部分401确定的程序名4011;一个ICC350012区,它包括由特征部分401确定的输入消息存数码4012;一个OCC350013区,它包含输出消息存数码4013;以及文件指示字FP350014,文件指示字指示从源程序准备的装入模块文件,而源文件是具有PN区,ICC区和OCC区特征的。表35002,35003,……具有相同结构。装入模块文件3501,3502,……总是通过特征表35001,35002,……取数。即装入模块文件靠程序名来取数。因此,当装入模块文件要被删去时,相应的特征表也应被删去。在图4a的556步中,如果已经有一张具有同样程序名PN的特征表,则原有的特征表和相应的装入模块文件都被删除,並且准备一份特征表。
为了产生装入到处理器的消息,参照图5来说明图1中的装入程序15002。当要装入的程序的程序名从CRT终端通过网络1被指定时,该程序被执行。具有与指定的程序名相同的PN字段(图4b)的特征表从特征文件中找到(581步)。然后,检索过的特征表和相应的装入模块相结合,以准备要装入的消息(582步)。在582步中准备好的要装入的消息,它的数据字段(图2b中的205)的内容如图5b所示。PN591存的是特征表的程序名PN,而ICC592和OCC593分别存的是特征表的输入存数码ICC和输出存数码OCC。
LM594存的是装入模块文件的内容。当如图5b和2b所示的消息的制备已经完成时,要装入的消息的CC字段(图2b中的202)存的是与程序相应的存数码,广播程序15002通过网络广播该消息(583步)。由图5的处理过程制备的並且通过网络传送的消息被与网络相连的处理器收到。根据消息中的CC字段,处理器确定消息中的程序对它自己的处理器是否是必要的,如果是必要的,将收到的消息送入自己的处理器中。当该处理器接纳此消息时,它把消息的数据字段的LM内容存到处理器的存储器区並且根据消息的数据字段中PN,ICC和OCC的内容(见图5b)把已装入的程序登记到程序登记表上,如图2C所示。然后,为了用特征信息中的测试信息进行测试,已装入的程序被启动,也就是,测试输入数据以确定被程序处理过的输出数据是否与输入数据有予定的关系。如果测试结果是OK,程序变为联线。在上述过程中,假定表示被处理器要求的程序的存数码已经登记在那个处理器中了。
参照图6和图7说明一致性检查程序15003(图1)的处理过程,一致性检查程序根据特征文件的内容使程序之间相互关连。图6a表示的是一张表,该表显示了由程序15003准备的各输入/输出程序之间的关系。输入/输出关系程序包括行601,602,……与各自的存数码相对应。第一行601包括一个储存存数码的CC6011区;一个储存程序名的IPROG6012区,该程序输入具有CC6011区的存数码的消息;以及一个储存程序名的OPROG6013区,该程序输出具有CC6011区的存数码的消息。第二行和接下来的各行具有同样的结构。
图6b表示了准备图6a中的输入/输出关系表的处理流程图。首先予置一个计数器变量i(651步)。根据第i张特征表的内容(图4b),按照图6b中的流程图(652步)设置输入/输出关系表。从输入/输出关系表中,在CC字段中搜索具有存数码与设置在特征表中的ICC字段中的存数码相同的一行(681步)。如果相应的行存在,特征表的PN字段的内容被设置到那一行的IPROG6012区(682步)。如果相应的行不存在,新的一行被补充到输入/输出关系表中,並且特征表的ICC字段的内容和PN字段的内容都被分别地设置到那一行的CC字段和IPROG字段(683步)。然后,从输入/输出关系表中搜索包含的存数码包含在特征表OCC字段中的存数码相同的一行(684步)。如果存在相应的行,特征表的PN字段的内容设置到那一行的输出程序LOPROG)区(685步)。如果不存在相应的行,图4的程序名被设置到输入/输出关系表的新的一行,並且特征表的OCC字段的内容和PN字段的内容分别被设置到那原始的CC字段和OPROG字段(686步)。图6c的处理以后,检查特征文件中的所有特征表是否都已经处理过了(653步),如果它们还没处理过,计数器变量i就增加1(654步)並且处理过程回到652步。
因此,根据已准备的输入/输出关系表,能够了解被具有任一存数码的消息启动的程序和了解输出具有那个存数码的消息的程序。通过搜索一行没被设置过的表的IPROG区或OPROG区的程序可以检测出不包含输出该输入消息的程序的程序和可以检测出不包含接纳该输出消息的程序的程序。这是一个在程序关系中错误检测的例子。用这个输入/输出关系表,可以检测出一系列对任一消息所启动的程序。因此,参照图7a和图7b来说明处理过程。处理过程被指定的作为触发器功能的消息之存数码启动。内部的计数字l置于“0”(700步)。在输入/输出关系表中搜索一个程序,该程序收到具有指定的存数码的消息,存数码是由操作员通过终端1501指定的,並且确定该程序为l级程序(701步)。对于搜索过的每一个l级程序,搜索那个接收它的输出消息的程序,並且该程序被确定为(l+1)级程序(702步)。用从特征表中对程序检测该输出消息的存数码和从输入/输出关系表中搜索那个接收具有该码的消息的程序就可以获得这一步。检查与在702步中搜索过的(l+1)级程序相同的程序是否存在于至今已搜索过的(0-l级程序)程序中,如果它存在,对于循环检查(703步)(l+1)级程序是不允许的。这是一个检测异常结构的处理过程,如图7b所示,图中数字761和762表示程序,数字751表示具有存数码CC1的消息,而数字752表示具有存数码CC2的消息。这种结构中,用程序762的输出消息启动程序761的处理流程是循环的,並且存在程序之间有异常关系的可能性。因此,703步也是一个检测程序之间异常关系的例子。在704步中,检查是否存在(l+1)级程序,如果不存在,处理过程就终止。如果存在,内部变量 增加1,並且处理过程回到702步。在704步中,对于循环检查不允许的程序被处理了,好像不曾存在(l+1)电平程序一样。
在这种方法中,只需确定与一个源程序的输入/输出消息有关的信息,就能自动产生将该程序装入执行处理器的信息。也能够了解程序之间的关系並且检测出程序之间的任何异常关系。
在本实例中,程序的特征表与它的装入模块一起产生。另一方面,可以只产生特征表面不产生装配模块。甚至当只确定了源程序中的特征字段时,就可以检查程序之间的关系。在本实例中,特征表是存在文件里的而不是存在装入模块里的。另一方面,装入模块和相应的特征表可以存在一个文件里並且处理成一个单元。
在本实例中,使用一个包括多元复杂处理器的系统,虽然本方法同样适用于包含单一处理器的系统(在这种系统中开发处理器和执行处理器是不分开的)。
在本实例中,装有程序的处理器根据程序特征信息中的测试信息测试程序。在开发处理器中,根据程序特征信息自动地测试已开发的程序是可能的。
图8表示的是实现本方法的分类处理系统的方块图。在本分布处理系统中,几个处理器111,112,… 1n彼此通过公共传输媒介用与处理器相连的传输控制单元121,123…12n互相通讯。每个处理器能够修改和产生程序。
图9表示的是在公共传输媒介上传输的信息的传输格式。在分布处理系统中,在传输媒介传输的信息被传输控制单元所接收,它阅读信息的存数码200並且确定是否是该处理器所要求的。如果是需要的,信息被传送到相连的处理器。当具有那个存数码的信息已经完成收入存在处理器中的程序里,它作为要执行的程序之输入数据而被阅读和处理。(假设存数码已经存入传输控制单元的存储器中。)在本例子中,处理过程按存数码以数据流的形式被分类。在本方法的具体实例中,信息可以在处理器之间用指派终点的通信协议互相交换而不必使用存数码。
至少由分布处理系统的一个处理器产生的、通过公共媒介广播的程序被写入图9的数据字段220。与写入该数据字段的程序有关的后面的信息被写入程序信息字段210。程序信息包括(1)程序内容信息,(2)程序产生信息,(3)程序特性信息。
程序内容信息描述程序的功能和内容。例如,它叙述程序的输入/输出关系。在本具体实例的程序中,该具体实例是以数据流形式利用存数码处理的,输入/输出关系可以包括对于处理所必要的信息的存数码和处理后要输出的信息的存数码。
程序产生信息描述由复杂处理器加到一条程序上的修改过程。在本具体实例中考虑的分布处理系统中,一条程序通过处理器通过公共传输媒介流动以及每个处理器补充、删除或者置换该程序。程序产生信息用来从修改后的源程序中识别修改以前的源程序。这个信息可以用补充上所有修改处理来描述,因而在分布处理系统中程序开发结构可以被认出。换句话说,如图10所示,处理器所做的每次修改,原始程序的修改次数可以被计数。在此方法中,如图10所示,如果复杂处理器单独地修改一个程序A,一个复杂的程序A2(这里下标2表示程序产生和修改的版本)存在于分布处理系统中。在程序开发处理的各自的处理器中修改工作已经予定和用收集同样形式的程序使一条源程序将要建立起来的地方可以使用这种方法。程序产生信息除了与修改区有关的信息外还包括与版本修改次数有关的信息。修改区信息可以用一条程序的语句级指出修改的区域,或者一个修改区域的源模块级可以被只考虑在一个源程序中的源程序模块结构所描述,如图11所示。在对每个模块级开发程序方面这种方法是足够的。在图12中,程序A1被处理器修改。(传输控制单元没有画出)。A1,A2,A3,……表示修改的次数,而1-1和1-2表示修改的区域(模块级)。
程序特性信息叙述程序执行中的程序的特性,它包括(1)执行时间,(2)程序长度,和(3)存储能力。这个信息被加入处理器中,在处理器中程序已经被修改了而且当程序被执行的时候就要利用这个信息了。
上面叙述过的(1)程序内容信息,(2)程序产生信息和(3)程序特性信息符合程序的外部技术要求。在本发明中,外部的技术要求被加到程序上並且它们通过公共传输媒介被广播,所以不需要任何中央控制机构,按它自己的处理器的决定就可以进一步开发程序和在处理器中执行程序。
程序信息字段210(图9所示)包含信息(1)到(3)的全部或者部分。
图13表示的是依照本方法的处理器中的处理流程。
如图13所示,每个处理器都收到通过公共传输媒介送来的源程序(61步),检查包含在程序中的程序内容信息,程序产生信息和程序特性信息,以确定该程序是否要修改(62步和63步)。
如果要修改的並且不需要其他程序(64步),该程序就被修改(65步)以及新的程序内容信息、产生信息和特性信息都被加到该程序上(66步),並且通过公共传输媒介,它们被传输出去(67步)。如果需要其他程序,那个程序就被储存起来(68步)。
权利要求
1.关于在分类处理系统中至少由一个处理器为了用程序在由传输线内部连接的多元复杂处理器中分别处理一系列步的开发程序的方法,该方法由包括以下的各步来描述(a)在一个处理器中,把与一个程序的输入/输出有关的特征信息加到描述各步的上述程序上;(b)通过所说的传输线广播所说的包含特征信息的程序,为的是用处理器中的一个装入它。
2.关于根据权利要求1的一种开发程序的方法,可以用程序根据的特征信息,检查程序的输入/输出数据关系这一步来进一步的描述。
3.关于根据权利要求1的一种开发程序的方法中,每一个处理器根据通过传输线广播的消息的特征信息,装入由它自己的处理器需要的消息。
4.关于根据权利要求1的一种开发程序的方法可以用为了使各程序相关所以根据特征信息准备一份表这一步来更进一步的描述。
5.关于根据权利要求1的一种开发程序的方法中所说的特征信息包括为了测试该程序的信息。
6.关于根据权利要求1的一种开发程序的方法用以下各步可以再作进一步的描述通过所说的传输线广播具有加到那里的程序产生信息、程序内容信息和程序修改信息;在每个处理器内根据已广播的程序中的信息修改程序,並且按照此修改更新信息的内容;通过传输线重新广播修改过的程序。
全文摘要
在分布处理系统中由处理器开发的程序的特征信息包括为了确定程序的输入/输出操作的输入/输出数据,该数据在程序描写形式中已给出了。根据特征信息的内容检查程序的相互关系。程序产生信息、程序内容信息和程序修改信息共同地加到开发的程序中并且在开发过程中修正它们。
文档编号G06F9/445GK1035189SQ8810870
公开日1989年8月30日 申请日期1988年12月17日 优先权日1987年12月18日
发明者茂昌之, 森欣司, 铃木靖雄, 河野克己, 小泉稔, 中井耕三, 笠広和 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1