程序跟踪装置的制作方法

文档序号:6359788阅读:143来源:国知局
专利名称:程序跟踪装置的制作方法
技术领域
本发明涉及用于分布式系统中的动作解析的程序跟踪装置。
背景技术
有这样一种分布式系统,该分布式系统将搭载了微型计算机、处理器等的编入设备(built-in)、计算机系统通过网络进行连接,分别经由网络相互进行数据通信,并分散进行规定处理。在单个的编入设备或者计算机系统的动作解析中,通过嵌入向程序上输出日志的模块可以进行动作解析。在分布式系统的动作解析中,多个编入设备、计算机系统协调动作,因此,即使从各个编入设备、计算机系统输出日志,进行系统整体的动作解析也是困难的。另外,由于日志的信息量变得庞大,产生数据的保存区域的庞大化等问题。在这样的分布式系统中,在用于进行系统整体的动作解析的日志(以下,称为跟踪 数据)的取得方法中,已知有例如如下的技术。首先,在为了执行作为跟踪对象的处理而收发的消息中附加控制跟踪的数据(跟踪控制数据),只在处理由跟踪控制数据指示了实施跟踪的消息时进行跟踪。另外、在编入设备、计算机系统中,有时对由某个接收消息引起而从任务送出的消息中移交该接收消息的跟踪控制数据。由此,在跨越多个节点并行地进行的多个处理中,可以只限于与跟踪对象处理相关的程序取得日志(例如,参照专利文献I)。专利文献I :日本特开平7-93182号公报(第4页、第7图)

发明内容
但是,在专利文献I中,分布式系统中的全部的编入设备、计算机系统分别保存跟踪数据,因此,分别需要存储区域。因此,无法适用在包含没有存储区域或者不能确保充分容量的存储区域的编入设备等的分布式系统中。另外、为了分布式系统整体的动作解析,需要集中在各自的编入设备、计算机系统中保存的跟踪数据。本发明是为了解决上述那些问题而完成的,第一个目的在于得到也可以适用于如下分布式系统的程序跟踪装置,该分布式系统包含没有存储区域或者不能确保充分的存储区域的编入设备等。第二个目的在于,得到在由多个编入设备、计算机系统构成的分布式系统中将跟踪数据集约在一个编入设备或者计算机系统中来保存的程序跟踪装置。本发明所涉及的程序跟踪装置进行分布式系统的动作解析,在该分布式系统中,具备连接到网络的多个执行单元,所述多个执行单元分别经由所述网络对其他执行单元收发消息,并执行规定的处理,其中,作为所述多个执行单元中的一个的主执行单元具备第一应用程序部,生成包含所述规定的处理的执行指示数据的第一数据;ID附加部,对所述第一数据附加对每个所述执行指示数据的处理内容预先分配了的消息ID ;CPU间通信次数附加部,对所述第一数据附加CPU间通信次数的规定的初始值;错误状态检测部,将接收的所述消息中的CPU间通信次数与进行了正常的处理的情况下的规定的值进行核对,由此检测出从所述主执行单元发送所述消息开始至接收经由所述多个执行单元的所述消息为止的处理中发生了错误;以及跟踪数据保存部,根据所述错误状态检测部的检测结果,从接收的所述消息抽取跟踪数据并保存,作为所述多个执行单元中的除了所述主执行单元以外的单元的从执行单元具备第二应用程序部,基于接收的所述消息中的所述执行指示数据执行规定的处理并生成第二数据;以及CPU间通信次数更新部,对所述第二数据更新并设定所述消息中的所述CPU间通信次数。根据本发明,在包含没有存储区域或者不能确保充分存储区域的编入设备等的分布式系统中,也可以得到可以适用的程序跟踪装置。另外,可以得到在由多个编入设备、计算机系统构成的分布式系统中将跟踪数据集约在一个编入设备或者计算机系统中来保存的程序跟踪装置。


图I是本发明的实施方式I中的分布式系统的程序跟踪装置的结构图。
图2(a)是表示在本发明的实施方式I中的各执行单元之间进行交换的消息数据的流向的时序图。(b)是表示在本发明的实施方式I中的各执行单元之间进行交换的消息的数据构造的图。图3是本发明的实施方式I中的正常动作时通信次数表510的结构图。图4是本发明的实施方式I中的错误状态检测部140以及跟踪数据保存部150的处理流程图。图5是表示本发明的实施方式I中的跟踪数据例子的图。图6是表示本发明的实施方式2中的正常动作时通信次数表510的结构例子的图。图7是本发明的实施方式2中的错误状态检测部140以及跟踪数据保存部150的处理流程图。图8是本发明的实施方式3中的程序跟踪装置的结构图。图9(a)是表示在本发明的实施方式3中的各执行单元之间进行交换的消息数据的流向的时序图。(b)是表示本发明的实施方式3中的消息数据的数据构造的图。图10是本发明的实施方式4中的程序跟踪装置的结构图。图11是本发明的实施方式4中的消息数据的结构图。图12是本发明的实施方式5中的程序跟踪装置的结构图。图13是本发明的实施方式5中的程序跟踪装置的结构图。图14是本发明的实施方式5中的从触发处理部290a以及CPU间通信次数更新部260a的处理流程图。图15是表示在本发明的实施方式5中的各执行单元之间进行交换的消息数据的流向的时序图。(附图标记说明)100 :主执行单元;110、210a、210b :应用程序部;120 ID附加部;130 =CPU间通信次数附加部;140 :错误状态检测部;150 :跟踪数据保存部;200a、200b :从执行单元;260a、260b CPU间通信次数更新部;270a、270b :通信次数错误判定部;280a、280b :CPU标识符附加部;290a、290b :从触发处理部;400 :网络;500、600 :缓冲器(缓冲器,buffer) ;510 :正常动作时通信次数表;610 :跟踪数据;700 :跟踪触发控制部。
具体实施例方式实施方式I图I表示用于实施本发明的实施方式I中的分布式系统的程序跟踪装置的结构。如该图所示,分布式系统中多个执行单元100、200a、200b被连接到网络400。设将一个执行单元称为主执行单元100,而将除此之外的执行单元称为从执行单元。在图I中示出连接两个从执行单元200a以及200b的结构例子。但是并不局限于这个结构。换句话说,只要是除了主执行单元100以外作为从执行单元连接一个以上的结构即可。另外,这在以下所有的实施方式中也是相同的。在此为了说明的方便,如图I所示,示出作为从执行单元连接200a、200b的结构例子。
在本实施方式中的分布式系统中作为对象的是,主执行单元100发送作为对从执行单元200a、200b分别指示跟踪处理的触发的消息数据,在针对所指示的跟踪处理的最终处理完成时,向主执行单元100回复消息数据。设将主执行单元成为跟踪处理的触发的处理称为主触发处理。本发明中的执行单元是指,具有设计了一个以上的顺序控制功能等的应用程序部,并基于输入的执行指示来执行规定的处理的单元。它是指例如搭载了顺序控制专用的微型计算机的编入设备或者计算机系统。主执行单元100内置了存储正常动作时通信次数表510以及跟踪数据610的缓冲器(存储区域)500以及600。或者,主执行单元100也可以具有与用于存储正常动作时通信次数表510以及跟踪数据610的缓冲器的接口。另一方面,从执行单元200a、200b是搭载了顺序控制专用的微型计算机的编入设备等为了进行规定的处理而必要的区域的存储区域以外没有多余的存储区域,或者存储容量中没有余量的单元。另外,网络400是指使用了依照IEEE1394标准的串行总线的网络、以LAN和WAN为代表的连接多个计算机的计算机网络等。其次,说明主执行单元100的结构。主执行单元100包含应用程序部110、ID附加部120、CPU间通信次数附加部130、错误状态检测部140、跟踪数据保存部150、具有正常动作时通信次数表510的缓冲器(存储区域)500、保存跟踪数据610的缓冲器(存储区域)600。另外、主执行单元100中具备未图示的通信接口,并经由网络400收发消息。应用程序部110发布包含向从执行单元200a、200b的执行指示数据的应用程序数据(第一数据)。ID附加部120对从应用程序部110发布的第一数据附加消息ID。另外,CPU间通信次数附加部130对ID附加部120的输出附加规定的初始值作为CPU间通信次数。接着,主执行单元100将消息数据经由通信接口发送至网络400上。错误状态检测部140根据主执行单元100经由网络400接收的消息数据中包含的CPU间通信次数,参照正常动作时通信次数表510来判定CPU间通信次数是否正常。这里,在正常动作时通信次数表510中,预先与消息ID相对应地保持执行了正常动作的情况下的通信次数(正常动作时通信次数)。跟踪数据保存部150根据错误状态检测部140的判定结果从主执行单元100接收的消息抽取跟踪数据610,并保存到缓冲器600。执行指示数据是与该分布式系统中的处理执行相关的信息。在执行指示数据中包含例如与成为对象的执行单元相关的信息、指出该执行单元所具有的应用程序部中的处理内容的信息和进行该处理时使用的自变量的信息、数据等。它也可以是例如为了执行各执行单元中的规定的处理而定义的程序中的函数名、顺序号等、以及进行那些处理时使用的自变量的信息、数据等。另外,消息ID是针对应用程序部110发布的第一数据,与该数据具有的处理内容相对应起来的。这关于即使是相同的处理内容也会根据自变量等附带的数据而正常动作时的通信次数不同的情况,设为分别不同的消息ID。消息ID可以是单纯的编号,也可以是示出表示处理内容的函数名等的字符串等。正常动作时通信次数表510存储在缓冲器500中,而跟踪数据随时保存在缓冲器600中。这些缓冲器500以及600也可以在硬盘、闪速存储器、存储卡、DVD等外部存储装置内构成。或者,也可以使用主执行单元100搭载的处理器所内置的存储器。其次,说明从执行单元200a、200b的结构。从执行单元200a包含第二应用程序部210a,基于接收的消息数据的执行指示数据执行规定的处理,并输出应用程序数据(第二 数据);以及CPU间通信次数更新部260a,发送向所述第二数据附加了该消息ID和对该CPU间通信次数作为规定值加上I而更新的CPU间通信次数的消息数据。同样地,从执行单元200b由基于接收的消息数据的执行指示数据执行规定的处理,并输出第二数据的第二应用程序部210b,以及发送向所述第二数据附加了该消息ID和对该CPU间通信次数作为规定值加上I而更新的CPU间通信次数的消息数据的CPU间通信次数更新部260b构成。在图2(a)中举例说明示出本实施方式的结构中各执行单元之间进行交换的消息数据的流向的时序。另外,该图(b)中示出消息的数据构造。以下,沿该时序图的流向说明抽取本实施方式跟踪数据的动作。首先,主执行单元100的应用程序部110生成并输出具有执行指示数据的第一数据(Datal)。其次,在ID附加部120中对第一数据附加与处理内容相对应的消息ID。此处,作为附加单纯的编号作为消息ID的例子,附加(I)。进一步地,在CPU间通信次数附加部130中,对附加了消息ID的第一数据附加规定的初始值,例如I,来作为CPU间通信次数。将该附加了消息ID和CPU间通信次数的初始值的第一数据作为消息数据发送到网络400上。设将该消息数据中的消息ID和CPU间通信次数的组合表示成(消息ID、CPU间通信次数)=(1、1)。作为该消息数据的发送目的地的执行单元的从执行单元200a进行接收,并由应用程序部210a进行规定的处理。在该处理完成并经由网络400向主执行单元100发送第二数据(Data2)时,由CPU间通信次数更新部260a将接收的该消息ID (I)和对接收的该CPU间通信次数(I)作为规定值加上I来更新CPU间通信次数而发送到执行单元100。此时,成为(消息ID、CPU间通信次数)=(1、2)。另外,作为与上述不同的处理,进行从执行单元200a对其它的从执行单元200b经由网络400进行通信时的说明。这种情况下,对由应用程序部210a生成的第二数据(Data3)附加由CPU间通信次数更新部260a接收的该消息ID( I)。另外、对接收的该CPU间通信次数(I)作为规定值加上I来更新CPU间通信次数。接下来,将消息发送给从执行单元200b。此时,成为(消息ID、CPU间通信次数)=(I、2 )。从执行单元200b接收来自从执行单元200a消息数据,并由应用程序部210b进行规定的处理。在该处理完成并向从执行单元200a发送第二数据(Data4)之前,由CPU间通信次数更新部260b附加所接收的消息中的消息ID (I)。进一步地,对接收的消息中的CPU间通信次数(2)作为规定值加上I来更新CPU间通信次数。接下来,经由网络400发送给从执行单元200a。此时,成为(消息ID、CPU间通信次数)=(1、3)。从执行单元200a接收来自从执行单元200b的消息数据,并由应用程序部210a进行规定的处理。作为此处的应用程序部210a中的处理,在某个处理中将第二数据(Data5)发送给主执行单元100,在与其不同的处理中将第二数据(Data6)发送给主执行单元100的情况下,哪一个都是由CPU间通信次数更新部260a更新的CPU间通信次数成为4 (消息ID、CPU间通信次数)=(1、4)。也就是说,即使是在应用程序部210a的处理内容不同的情况下,消息ID以及CPU通信次数也成为相同的值。像这样,不依赖于应用程序部210a的处理内容,传递所发送的消息ID,并传递每次在执行单元中接收时依次更新了 CPU通信次数的消息数据。另外,在主执行单元100从应用程序部110新生成具有执行指示数据的第一数据 (Data7)的情况下,在ID附加部120中,对第一数据附加消息ID (2)并进行与上述同样的处理。图3中示出正常动作时通信次数表510的结构例子。正常动作时通信次数表510存储如下次数作为正常动作时通信次数在进行分布式系统的动作解析时对消息ID正常地实施了通信的情况下作为直到返回到主执行单元100为止的通信次数是正确的次数。在图3中示出,例如在消息ID是I的处理中,对主执行单元100从其它的从执行单元进行发送时的通信次数有2或者4的情况。同样地,示出在消息ID是2的处理中,对主执行单元100从其它的从执行单元进行发送时的通信次数有2或者6的情况。分配给第一数据的消息ID和处理内容是预先唯一地确定而设计的,并按照上述设计的规格,准备消息ID和与其相对应的正常动作时的通信次数的表。图4中示出主执行单元100接收来自其它的执行单元的消息时的错误状态检测部140以及跟踪数据保存部150的处理流程。主执行单元100接收从从执行单元发送的消息(步骤ST010),接下来,错误状态检测部140从正常动作时通信次数表510取得与接收的消息数据中存在的消息ID相对应的正常动作时通信次数(步骤ST020)。接下来,错误状态检测部140判定在接收的消息中的CPU间通信次数是否与在步骤ST020中取得的正常动作时通信次数相应(在有多个值的情况下,与其中任何一个一致),并输出Yes还是No的判定结果(步骤ST030)。这里,Yes意味着接收的消息数据中的CPU间通信次数与在步骤ST020中取得的正常动作时通信次数相应,而No则表示不相应。错误状态检测部140,如果步骤ST030的结果是Yes,则向应用程序部110提供所接收的消息数据中的数据(步骤ST060)。另一方面,如果步骤ST030的结果是No,则判定为有错误并向跟踪数据保存部150通知有错误(步骤ST040)。跟踪数据保存部150,在有错误时,根据接收的消息数据和正常动作时通信次数表510中存储的与该消息ID相对应的正常动作时通信次数,将动作解析中使用的信息作为跟踪数据抽取并保存到缓冲器600中(步骤 ST050)。图5示出跟踪数据的例子。如该图所示,保存接收的消息数据的CPU间通信次数、该消息数据中的应用程序数据、消息ID、正常动作时通信次数。也可以不将这些全部作为跟踪数据保存,例如,将消息内的数据除去等来削减保存的信息量。接下来,与步骤ST030的结果是Yes的情况相同,向应用程序部110提供所接收的消息数据中的数据(步骤ST060)。如果按照本实施方式,可以只在主执行单元100中进行对象的处理流程是否按正常的通信次数被处理的判定,根据该判定结果和主执行单元100接收的消息数据抽取跟踪数据并保存。因此,能够在主执行单元100中将跟踪数据集约并保存,达到从执行单元不需要有保存跟踪数据的存储区域的效果。进一步地,将跟踪数据集约并保存,因此省去每次在动作解析时都将多个跟踪数据集中的麻烦。实施方式2在实施方式I中,由ID附加部120附加与第一数据的处理内容相对应的消息ID,正常动作时通信次数表510准备了与消息ID相对应的CPU间通信次数,但是在实施方式2中,取代消息ID,将每当发布第一数据时分配的顺序号由ID附加部120附加,作为跟踪数据将顺序号包含在保存对象中。
本实施方式中的程序跟踪装置的结构与由图I示出的结构相同。在本实施方式中,每当应用程序部110发布第一数据时,ID附加部120分配分别独立的顺序号并附加。另外,正常动作时通信次数表510中对每个消息ID存储该顺序号。设顺序号是例如从I开始按编号顺序设定。另外,该顺序号只要是对各消息ID分别独立并且可以判別执行順序即可。因此,不限于从I开始分配编号,也可以是与当前时刻、经过时间等匹配地设定的方法。由图6示出本实施方式中的正常动作时通信次数表510的结构例子。如该图所示,除了与消息ID相对应地保持的正常动作时通信次数之外,还设置了存储针对该消息ID附加的顺序号的区域,此处存储ID附加部120附加的顺序号。在本实施方式中,向消息数据附加的是顺序号而取代消息ID,因此,在从执行单元200a、200b中,CPU间通信次数更新部260a或者260b向应用程序部210a或者210b生成的第二数据附加所接收了的消息中的顺序号。进一步地,发送附加了向接收了的消息中的CPU间通信次数作为规定值加上例如I来更新了的CPU间通信次数的消息数据。由图7示出主执行单元100从其它的从执行单元接收消息数据时的错误状态检测部140以及跟踪数据保存部150的处理流程。主执行单元100接收从从执行单元发送了的消息(步骤ST110),错误状态检测部140从正常动作时通信次数表510取得与接收了的消息中的顺序号相对应的正常动作时通信次数(步骤ST120)。接下来,将相应的顺序号从正常动作时通信次数表510中删除(步骤ST130)。通过将相应的顺序号从正常动作时通信次数表510中删除,产生可以不使正常动作时通信次数表510的存储区域冗余地增加的效果。接下来,错误状态检测部140判定在接收了的消息中的CPU间通信次数是否与在步骤ST120中取得的正常动作时通信次数相应,并输出Yes还是No的判定结果(步骤ST140)。关于以下的步骤ST14(TST170,与在实施方式I中的图4的步骤ST03(TST060是相同的。也就是说,如果步骤ST140的结果是Yes,则错误状态检测部140向应用程序部110提供在接收的消息数据中的数据(步骤170)。另一方面,如果步骤ST140的结果是No,则判定为有错误并向跟踪数据保存部150通知有错误(步骤ST150)。跟踪数据保存部150在有错误时从接收的消息数据和正常动作时通信次数表510中存储的与该消息ID相对应的正常动作时通信次数中抽取在动作解析中使用的信息作为跟踪数据并保存到缓冲器600(步骤 ST160)。此处,作为跟踪数据保存接收的消息数据的CPU间通信次数、应用程序数据、消息ID、顺序号、正常动作时通信次数。也可以不将这些都作为跟踪数据保存,例如,将应用程序数据除去等来削减保存的信息量。根据本实施方式,与实施方式I相同地,可以只在主执行单元100中进行对象的处理流程是否按正常的通信次数被处理的判定,并从该判定结果和主执行单元100接收的消息数据中抽取跟踪数据并保存。因此,能够在主执行单元100中 使跟踪数据集约并保存,可以达到不需要在从执行单元中具有保存跟踪数据的存储区域的効果。进一步地,跟踪数据被集约保存,因此达到省去每次动作解析时都将多个跟踪数据集中的麻烦的效果。另外,不是与处理内容相对应的消息ID,而是将每次在进行执行指示数据的发布时分配并附加了顺序号的消息数据进行通信。因此,在主执行单元100接收的消息数据的CPU间通信次数和与相应的处理内容相对应的正常动作时通信次数不相应的情况下,保存包含了顺序号的跟踪数据。由此,在动作解析时根据顺序号的信息以时间序列掌握有错误的处理变得容易,因此,可以更明确地掌握在哪个定时发生了错误,并能够进行更详细的动作解析。实施方式3.在以上的实施方式中,在主执行单元100中的CPU间通信次数附加部130中,作为CPU间通信次数附加例如初始值I,在从执行单元中的CPU间通信次数更新部(260a或者260b)中,对接收的消息中的CPU间通信次数作为规定值加上I来更新CPU间通信次数。在本实施方式中,将与消息ID相对应的正常动作时通信次数之中的最大的次数设为初始值,在从执行单元中的CPU间通信次数更新部中减去I来更新CPU间通信次数。由图8示出本实施方式中的程序跟踪装置的结构。另外,在图8中与实施方式I的图I相同的符号的部分分别相当于实施方式I的相同的符号的部分,因此将该说明省略。另外,在本实施方式中,对各执行单元分配分别独立的CPU标识符。关于CPU标识符,例如,关于主执行单元100设为100,从执行单元200a、200b分别设为200a、200b。主执行单元100的CPU间通信次数附加部130从正常动作时通信次数表510读出与由ID附加部120附加的消息ID相对应的正常动作时通信次数,并发送附加了读出的正常动作时通信次数中的最大次数作为CPU间通信次数的初始值的消息数据。由此,进行正常通信时的消息数据中的CPU间通信次数总是成为O以上的值。关于从执行单元的结构,将从执行单元200a作为例子进行说明。以下的动作在其它的从执行单元(例如,从执行单元200b )中也是相同的。在从执行单元200a中,除了实施方式I中的图I的结构以外,还具有通信错误判定部270a。通信次数错误判定部270a判定所接收的消息中的CPU间通信次数是否是O以上。如果CPU间通信次数是O以上,则向应用程序部210a按原样提供该消息数据(或者只是应用程序数据)。另一方面,在CPU间通信次数是负值的情况下,判定为在该时刻处理没有正常动作,在消息数据中附加自己的执行单元(即,从执行单元200a)的CPU标识符和发送该消息数据的执行单元的CPU标识符,并发送给主执行单元100。这种情况下,处理没有正常动作,因此没有必要向从执行单元200a的应用程序部210a提供该消息数据(或者应用程序数据)。另外,在将CPU间通信次数以例如4bit的二进制数的2的补数(compIement)表现的方式给出的情况下,将-I表现为(1111),如果看最高位bit,则可以容易地判定CPU间通信次数在10进制数形式下是负值。由图9(a)示出表示在各执行单元之间交换的消息数据的流向的时序图的例子。另外,在该图(b)中,在从执行单元200a中的通信次数错误判定部270a中,将判定为错误的情况下的消息数据的数据构造和数据例子一起表示。在图9(a)中,举例说明从执行单元200a从从执行单元200b作为第二数据收到(0&七&9)时的动作(图9(幻的空心箭头的部分)。此时,通信次数错误判定部270b根据接收 的消息中的CPU间通信次数是-I即负值判断为在该时刻处理不是正常动作。另外,在消息数据中附加自身的CPU (即从执行单元200b)的CPU标识符即200b和作为发送该消息数据的执行单元的从执行单元200a的标识符即200a,并发送给主执行单元100。图9 (b)示出判定为错误时的数据的一个例子。主执行单元100接收从从执行单元200a、200b发送的消息。主执行单元100中的错误状态检测部140在接收的消息数据的CPU间通信次数是O以上的情况下,向应用程序部110提供接收的消息数据(或者应用程序数据)。另一方面,在CPU间通信次数是负值的情况下,向跟踪数据保存部150通知有错误。跟踪数据保存部150将接收的消息数据和正常动作时通信次数表510中存储的与该消息的消息ID相对应的正常动作时通信次数作为跟踪数据610抽取并保存到缓冲器600中。作为跟踪数据610的例子,除了接收的消息数据的CPU间通信次数、应用程序数据、消息ID、正常动作时通信次数之外,还保存检测出错误的执行单元的CPU标识符和发送源CPU标识符。也可以不将这些全部作为跟踪数据保存,例如,将应用程序数据除去等来削减保存的信息量。由此,在各执行单元中进行CPU间通信次数的错误判定,根据检测到错误的CPU编号可以确定相应的执行单元,因此,在分布式系统的动作解析中,错误发生位置的确定变得容易,能够取得错误发生时的更详细的跟踪数据。在本实施方式中也可以得到与实施方式I以及2相同的效果。实施方式4图10示出实施方式4中的程序跟踪装置的结构。另外,图10中与实施方式I中的图I相同的符号的部分分别相当于实施方式I的相同的符号的部分,因此将该说明省略。另外,在本实施方式中,和实施方式3相同地,对各执行单元分配分别独立的CPU标识符。除了实施方式I中的图I的结构,在各从执行单元200a、200b中还具备CPU标识符附加部280a、280b。在从执行单元200a、200b中,各自中的应用程序部210a、2IOb在输出第二数据之后,在CPU标识符附加部280a、280b中按顺序附加该执行单元的CPU标识符。图11示出该情况下的消息数据的结构。如该图所示,在消息中,除了 CPU间通信次数、消息ID、应用程序数据之外,还附加了 CPU标识符I、CPU标识符2、……、PU标识符n (CPU标识符η表示附加的最终的CPU标识符)的信息。在该图中的CPU标识符f η的括号中示出附加的CPU标识符信息的例子。此时,在主执行单元100的错误状态检测部140判定为错误的情况下,作为跟踪数据保存部150抽取的数据,除了实施方式I的跟踪数据之外,还保存对消息数据附加的消息所经由的CPU编号的信息。通过保存以上所述的跟踪数据,能够追踪在错误发生时所经由的执行单元的经过信息,因此作为分布式系统的动作解析,能够进行更详细的解析。本实施方式也可以适用于如实施方式2那样使用顺序号的程序跟踪装置中,在这种情况下也可以达到和本实施方式相同的效果。根据本实施方式,除了得到能够追踪上述的错误发生时所经由的执行单元的经过信息的效果,还可以得到实施方式I以及2中的効果。 实施方式5在以上的实施方式广4中,主执行单元100成为跟踪执行的触发(主触发处理)。在本实施方式中示出在从执行单元成为跟踪执行的触发的情况下也可以适用的程序跟踪装置的结构。此处,以下将从执行单元成为跟踪执行的触发,即,成为起动跟踪的执行单元的情况称为从触发处理。从触发处理在对例如特定的从执行单元以后的处理是否是正确的动作有疑问的情况下推进分布式系统的解析时成为有效。即,在判明了从主执行单元开始至上述特定的从执行单元跟前为止处理是正常的、或者确实的情况下,将对象缩小为该特定的从执行单元以后的动作的分布式系统的解析变得容易。另外,在本实施方式中,也和实施方式f 4相同地,以如下情形为对象由主执行单元100指示的、针对从执行单元的执行指示(针对应用程序部210a、210b等的指示)派生到各从执行单元,在它们的最终的处理完成的情况下,必定会向主执行单元100经由网络400发送消息。由图12示出本实施方式中的程序跟踪装置的结构。另外,在图12中与实施方式I中的图I相同的符号的部分分别相当于实施方式I的相同的符号的部分,因此将该说明省略。以下,举例说明从执行单元200a。在从执行单元200a中,除了实施方式I中的图I的结构,还具备从触发处理部290a。从执行单元200a中的应用程序部210a与实施方式Γ4相同,基于在由其他的执行单元发送的消息中的应用程序数据(第一或者第二数据)来执行规定的处理并发布应用程序数据(第二数据)。在本实施方式中,设为在某一个从执行单元成为跟踪的触发的情况下,不进行主执行单元100成为触发的跟踪。这一点可以通过例如在用于实施对主执行单元100中的应用程序部110、从执行单元200a、200b中的应用程序部210a、210b等设定的执行指示的程序中,以能够进行上述的排他处理的方式预先制作程序来实现。
或者,如图13所示,也可以设置跟踪触发控制部700,该跟踪触发控制部700设定在分布式系统中由哪个执行单元进行跟踪的触发处理。也可以是该跟踪触发控制部700具备例如由显示器、键盘等构成的输入单元(未图示),分布式系统的操作员通过该输入单元设定作为跟踪触发的执行单元。或者,也可以是在跟踪触发控制部700中预先编入程序等并使该程序动作,由此设定作为跟踪触发的执行单元。另外,在图13中示出了跟踪触发控制部700经由网络400连接到各执行单元的结构例子,但是也可以是不经过网络而连接到各执行单元。如上述那样,在本实施方式中,在进行从触发处理的情况下,不进行主触发处理。因此,来自于主执行单元100的消息中不包含用于跟踪的消息ID。在该情况下,由主执行单元100发送的是针对从执行单元200a、200b等的应用程序部210a、210b等的指示数据。在此,用于通信接口对网络400收发应用程序数据或者消息的数据的网络地址等是和本发明的实施方式1飞中的消息ID不同的信息。即,各执行单元间的通信功能不依赖于在本实施方式中叙述的消息ID来实现。 接下来,说明动作。以下,按照图12进行说明,但是图13的情况也是相同的。在图12中,从触发处理部290a接着应用程序处理部210a的处理来执行。由图14示出从触发处理部290a以及CPU间通信次数更新部260a的处理流程。从触发处理部290a接着上述的应用程序处理部的处理来被起动(步骤ST200)。接下来,在步骤ST210中,本CPU、即、在该情况下是从执行单元200a判定是否为跟踪执行的触发。关于“本CPU是跟踪执行的触发”,例如,可以根据由所图13所示的跟踪触发控制部700设定的信息知道。或者,除了使用跟踪触发控制部700的方法以外,可以根据在应用程序部210a生成的应用程序数据(第二数据)中的规定的位置中设定的标志是ON或者OFF的信息来判断(例如,预先确定ON是处理执行的触发的意思)。或者,也有如下方法在从执行单元200中的应用程序部200a中将设定是处理执行的触发的命令嵌入到规定的位置,并通过上述命令的执行将上述标志设为ON或者OFF。或者,也有如下情况在从执行单元200a中具备由显示器、键盘等构成的输入单元,并根据来自进行分布式系统的操作的操作员的指令等输入信息来指定是处理执行的触发。进一步地,也可以是从主执行单元100通过基于消息等的通信来通知作为处理执行的触发。如果步骤ST210的判定结果是Yes,则进入步骤ST220。在步骤ST220中,将预先分配给本CPU (即从执行单元200a)的消息ID附加到上述的应用程序数据(第二数据)中。接下来,附加CPU间通信次数的初始值(步骤ST230)。如果步骤ST210的判定结果是No,则本CPU不是触发。在该情况下,有主执行单元100是跟踪的触发的情况、以及其他的从执行单元是跟踪的触发的情况这两种情况。此处,关于哪一个执行单元都没有成为触发的情况,是本发明的对象外的情况,因此省略说明。首先,在主执行单元100成为跟踪触发处理的情况(主触发处理)下,在步骤ST250中将接收的消息的消息ID附加到消息之后,向CPU间通信次数更新部260a提供消息。CPU间通信次数更新部260a在步骤ST260中与实施方式f 4相同地更新CPU间通信次CPU间通信次数。接下来,在其他的从执行单元进行从触发处理的情况下,在来自于相应的从单元的消息中包含该从执行单元设定的消息ID以及CPU通信次数(参照步骤ST220、ST230)。因此,在步骤ST250、ST260中,与上述的主触发处理的情况同样地,将接收的消息的消息ID附加到消息(将接收的消息中的应用程序数据通过应用程序部210a制作的第二数据进行更新)中之后,由CPU间通信次数更新部260a更新CPU间通信次数。在步骤ST230、ST260中的任意一个的情况下,接下来都进入步骤T240,发布的消息经由通信接口被发送到网络400 中。由图15示出表示本实施方式中的、在从执行单元200a成为处理执行的触发的情况下在各执行单元间交换的消息数据的流向的时序图的例子。在该图中,从执行单元200a成为处理执行的触发。从从执行单元200a经过从执行单元200b、200a,向主执行单元100发送最终的消息并结束。此处,消息的数据构造可以使用与图2(b)所示相同的结构。
如图15的处理流程中看到的那样,可知与实施方式I中的图2所示的处理流程比较,作为跟踪数据610成为保存对象的数据量可以进一步地削减。此处,在图14的步骤ST220中,说明了附加分配给本CPU的消息ID的情况,但是,这可以通过在构成分布式系统的执行单元之间预先分配作为处理的触发的情况下的消息ID来实现。或者,也可以由上述的跟踪触发控制部700设定。另外,也可以包含其他的执行单元使用的消息ID,在各执行单元中共有消息ID的分配信息。这种情况下,在图14的步骤ST210中的判断中可以利用该消息ID分配信息,能够可靠地进行判断。也就是说,例如,应用程序部210a生成的数据是更新了所接收的消息的应用程序数据得到的,如果包含已经分配给其他的执行单元的消息ID,则容易判定接收的消息是其他的执行单元成为触发的消息。在正常动作时通信次数表510中也准备有如下信息在从执行单元成为触发的处理中相对应的消息ID和向主执行单元100最后发送时的CPU间通信次数的信息。另外,本实施方式中的从执行单元200a的结构也可以关于全部的连接到分布式系统的从执行单元同样地构成。由此,任意一个从执行单元都能进行从触发处理,而能够进行分布式系统的更精细的解析。或者,也可以选择I个以上的几个从执行单元设成与本实施方式中的从执行单元200a相同的结构。由此,可以是特定的从执行单元进行触发处理,从而可以高效率地进行缩小为来自必要的从执行单元的处理的精细的解析。按照本实施方式,可以实现从执行单元是跟踪的触发的分布式系统的动作。另外,在本实施方式中,也可以在主执行单元100中将跟踪数据集约保存。另外,可以缩小为在解析中必要的跟踪数据来产生跟踪数据并保存,能够进行分布式系统的细致的解析。进一步地,能够进一步削减在跟踪数据保存中必要的存储区域。实施方式6在以上的实施方式中,在主执行单元100接收由其他的执行单元发送的消息数据时,通过错误状态检测部140,只保存消息数据的CPU间通信次数被判断为不正确的消息的跟踪数据。在本实施方式中,在主执行单元100中,在错误状态检测部140中不进行错误判定,而将接收的消息数据的跟踪数据全部保存。
在主执行单元100中可以准备的缓冲器600的容量充分大的情况下,也可以采取这样的结构。像这样,在主执行单元100中不实施错误判定,通过将接收的消息数据的跟踪数 据全部保存,用户不管是否有错误发生而检查主执行单元100接收的全部的消息,能够详细地解析分布式系统的动作,通过解析还包含正常时的动作的处理,可以提高系统的动作解析的精度。
权利要求
1.一种程序跟踪装置,该程序跟踪装置进行分布式系统的动作解析,在该分布式系统中,具备连接到网络的多个执行单元,所述多个执行单元分别经由所述网络对其他执行单元收发消息,并执行规定的处理,该程序跟踪装置的特征在于, > 作为所述多个执行单元中的一个的主执行单元具备 第一应用程序部,生成包含所述规定的处理的执行指示数据的第一数据; ID附加部,对所述第一数据附加对每个所述执行指示数据的处理内容预先分配了的消息ID ; CPU间通信次数附加部,对所述第一数据附加CPU间通信次数的规定的初始值; 错误状态检测部,将接收的所述消息中的CPU间通信次数与进行了正常的处理的情况下的规定的值进行核对,由此检测出从所述主执行单元发送所述消息开始至接收经由所述多个执行单元的所述消息为止的处理中发生了错误;以及 跟踪数据保存部,根据所述错误状态检测部的检测结果,从接收的所述消息抽取跟踪数据并保存, 作为所述多个执行单元中的除了所述主执行单元以外的单元的从执行单元具备 第二应用程序部,基于接收的所述消息中的所述执行指示数据执行规定的处理并生成第二数据;以及 CPU间通信次数更新部,对所述第二数据更新并设定所述消息中的所述CPU间通信次数。
2.一种程序跟踪装置,其特征在于 CPU间通信次数附加部针对每个消息ID,作为主执行单元向从执行单元发送具有所述消息ID的消息开始至接收所述消息为止的多个执行单元之间的通信次数,将正常的情况下的值即正常动作时通信次数中的最大的值设定为规定的初始值; CPU通信次数更新部将从执行单元接收的消息中的CPU间通信次数减I来更新; 错误状态检测部在接收的所述消息中的CPU间通信次数是负值的情况下,判定为错误。
3.根据权利要求项I所述的程序跟踪装置,其特征在于, 主执行单元具备正常动作时通信次数表,该正常动作时通信次数表针对每个消息ID,作为主执行单元向从执行单元发送具有所述消息ID的消息开始至接收所述消息为止的多个执行单元之间的通信次数,保持正常的情况下的值即正常动作时通信次数;以及 错误状态检测部在所述主执行单元接收所述消息时,将所述消息中包含的CPU间通信次数和所述正常动作时通信次数表中的针对所述消息中的所述消息ID的所述正常动作时通信次数进行核对,由此检测发生了错误。
4.根据权利要求项2所述的程序跟踪装置,其特征在于, 从执行单元具备通信次数错误判定部,该通信次数错误判定部在接收的消息中的CPU间通信次数是负值时判定为错误。
5.根据权利要求项4所述的程序跟踪装置,其特征在于, 多个执行单元具有各自独立的CPU标识符, 在通信次数错误判定部判定为错误时,对接收的消息附加作为向所述从执行单元发送所述消息的所述多个执行单元中的某一个的执行单元所具有的CPU标识符以及所述从执行单元所具有的(PU标识符并发送给主执行单元。
6.根据权利要求项I所述的程序跟踪装置,其特征在于, 从执行单元具备从触发处理部,该从触发处理部判定是否进行从所述从执行单元起动跟踪的从触发处理,在判定为进行所述从触发处理的情况下,对所述从执行单元中的第二应用程序部生成的第二数据附加预先分配给所述从执行单元的消息ID以及CPU通信次数的规定的初始值。
7.根据权利要求项6所述的程序跟踪装置,其特征在于,具备 跟踪触发控制部,设定多个执行单元中的哪一个成为跟踪执行的触发。
全文摘要
为了得到在包含存储区域的容量贫乏的编入设备、计算机的分布式系统中也可以适用的程序跟踪装置,主执行单元(100)具备ID附加部(120),在每个处理内容中附加预先分配了的消息ID;CPU间通信次数附加部(130),附加CPU间通信次数的规定的初始值;错误状态检测部(140),将接收的消息中的CPU间通信次数和进行了正常的处理的情况下的规定值进行核对,由此,检测在直到主执行单元(100)接收为止的处理中发生了错误;跟踪数据保存部(150),根据错误状态检测部(140)的检测结果,从消息中抽取跟踪数据并保存。从执行单元(200)具有CPU间通信次数更新部(260),将接收的消息中的CPU间通信次数进行更新并设定。
文档编号G06F11/28GK102782658SQ20118001222
公开日2012年11月14日 申请日期2011年2月24日 优先权日2010年3月5日
发明者中川隆志, 山口喜久, 赤穗贤吾 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1