CN107566171A - 一种发布/订阅分布式系统分层错误定位方法 - Google Patents
一种发布/订阅分布式系统分层错误定位方法 Download PDFInfo
- Publication number
- CN107566171A CN107566171A CN201710749108.4A CN201710749108A CN107566171A CN 107566171 A CN107566171 A CN 107566171A CN 201710749108 A CN201710749108 A CN 201710749108A CN 107566171 A CN107566171 A CN 107566171A
- Authority
- CN
- China
- Prior art keywords
- mistake
- component
- error
- location
- publish
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种发布/订阅分布式系统分层错误定位方法,在发布/订阅分布式系统运行出错时进行在线的错误定位工作。该方法可根据系统运行时各构件间的应用逻辑关系自动生成系统的错误传播模型,并将错误传播模型分解为单个构件上的和跨构件的错误传播模型,实行先由单构件利用单构件错误传播模型进行定位而后再由服务器利用跨构件错误模型进行定位的分层错误定位方案。本发明在已收集到发布/订阅分布式系统运行中发生的错误的基础上,设计了一种分层错误定位方案,对已收集到的错误进行溯源,解决了发布/订阅分布式系统运行出错时的在线纠错问题。
Description
技术领域
本发明涉及一种发布/订阅分布式系统分层错误定位方法,具体涉及基于错误传播模型的发布/订阅分布式系统分层错误定位方法,属于计算机技术领域。
背景技术
发布/订阅的通信模式具有松耦合的特点,但基于发布/订阅中间件构建的分布式系统的应用逻辑中,各构件之间往往有互相调用、依赖的紧耦合关系。系统中不同的业务逻辑对应着不同的流程,流程之间可能存在并发、构件共享、互斥等复杂的情况。当系统中出现错误时,由于构件之间通过消息的传递推动流程的进行,因此构件间具有逻辑上的依赖关系,导致系统具有错误传播的特点。在系统测试的时候,希望能由中间件自动进行错误定位来代替由人力进行错误定位。而在中间件层面,中间件并不了解系统的应用逻辑,并且发布/订阅通信模式的松耦合特点也掩盖了错误的传播路径,使得对错误的在线定位和溯源变得更加困难。
发布/订阅分布式系统的测试执行框架提供了对发布/订阅分布式系统的自动化测试能力。测试执行框架在获得了待测试系统的流程信息之后,能够自动地部署待测构件,收集测试数据及反馈测试过程中出现的错误信息。测试执行框架对外提供测试数据和错误信息相关接口,用户可基于这些信息进行进一步的开发。
发明内容
本发明所要解决的技术问题是:提供一种发布/订阅分布式系统分层错误定位方法,能够在发布/订阅分布式系统运行出错时对已经收集到的错误进行自动的在线错误定位,大幅提高用户检错纠错的效率。
本发明为解决上述技术问题采用以下技术方案:
一种发布/订阅分布式系统分层错误定位方法,包括如下步骤:
步骤1,从系统运行流程的描述文件中提取系统运行的应用逻辑关系,包括单个构件内的逻辑关系和构件间的逻辑关系,根据单个构件内的逻辑关系构建单个构件内的错误传播模型,根据构件间的逻辑关系构建构件间的错误传播模型;
步骤2,当有构件运行过程中出现不符合预期规定的行为时,各构件根据各自对应的单个构件内的错误传播模型对本构件上出现的错误进行定位,并标注定位结果,将错误及其定位结果上传至服务器端;
步骤3,当服务器端收到所有构件提交的错误及其定位结果时,根据构件间的错误传播模型进行构件间的错误定位,并将错误定位结果返回至用户。
作为本发明的一种优选方案,所述步骤1的具体过程为:
步骤11,根据系统运行流程的描述文件,分析系统运行过程中所有可能产生的错误实例;
步骤12,将所有可能产生的错误实例按照每个构件进行分类,得到单个构件内可能产生的错误实例;
步骤13,单个构件内可能产生的错误实例结合系统的错误类型故障树以及单个构件内的逻辑关系,生成单个构件内的错误传播模型;
步骤14,在服务器端提取构件间的逻辑关系,生成构件间的错误传播模型。
作为本发明的一种优选方案,步骤13所述单个构件内的错误传播模型采用错误实例故障树的形式表示。
作为本发明的一种优选方案,步骤14所述构件间的错误传播模型采用动作依赖图的形式表示。
作为本发明的一种优选方案,所述步骤2的具体过程为:
步骤21,当有构件运行过程中发生错误时,该构件对当前的错误查找其在错误实例故障树中的最小割集进行错误定位;
步骤22,将该错误及其定位结果记录在已定位错误列表中;
步骤23,将已定位错误列表上传至服务器端。
作为本发明的一种优选方案,所述步骤3的具体过程为:
步骤31,服务器端接收到各构件上传的错误信息后,将错误信息按照发生时间先后顺序进行排序,并存储在服务器端的未定位错误列表中;
步骤32,从未定位错误列表中按从后往前的顺序取出错误信息,根据动作依赖图进行定位,并显示错误定位结果。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、本发明提出的分层错误定位方法在发布/订阅分布式系统运行出错时对收集到的错误进行自动的在线错误定位,大幅提高用户检错纠错的效率。
2、本发明提出的分层错误定位方法将错误定位过程分为离线定位和在线定位,即在错误还没有被检测出来时,就将流程的错误传播模型构建好,并在单构件上求解好每一个可能发生的错误实例的最小割集,减少了在线错误定位的时间。
3、本发明提出的分层错误定位方法将尽可能多的在线错误定位工作在单个构件上本地完成,仅保留最低限度必需的信息传递,降低网络开销的同时实现了错误定位在各构件上的并行处理,提高了错误定位的性能和效率。
附图说明
图1是本发明一种发布/订阅分布式系统分层错误定位方法的流程图。
图2是发布/订阅分布式系统运行的流程实例。
图3是错误传播模型的分布示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
如图1所示,本发明的基于错误传播模型的发布/订阅分布式系统分层错误定位方法主要分为两大部分。
第一部分的任务是构建系统运行流程中的错误传播模型,主要包括以下几个步骤:
(1)首先根据流程定义文件,进行流程特有错误实例故障树的构建,每个构件构建自身的错误实例故障树,该故障树存于构件上。
(2)整个流程根据每个构件间的数据发布订阅依赖关系,构建动作依赖图存于服务器上。动作依赖图根据流程定义文件里的依赖构件和动作一致性条件进行绘制。首先进行构件内部动作依赖关系的绘制,此部分根据构件的动作一致性条件,由先发生的动作引出箭头指向后发生的动作。然后进行构件间的动作依赖图的绘制,此部分根据构件的依赖构件关系,由被依赖的构件及发出的动作引出箭头指向当前的构件及其发出的动作。由此完成整个流程的动作依赖图的绘制。
(3)对每一个构件上的非原子类型错误实例进行最小割集求解。求解最小割集的方法可采用上行法、下行法。
以上三部分内容可以离线完成。
第二部分的任务是根据系统运行过程中出现的错误进行在线的错误定位工作,主要包括以下几个步骤:
(1)将每个构件上的错误按照时间顺序排序。从后往前,即从最近发生的错误开始,在构件故障树上,依次寻找每一个非原子类型错误的最小割集。
(2)首先进行单个构件上的错误分析,若最小割集中的全部错误在当前构件产生的错误中都有映射,则认为该错误的源头就在该构件上。拥有相同最小割集的错误认为是同源错误。定位完成后,将错误实例及其最小割集均上报服务器。
(3)如果一个错误最小割集中全部错误在当前构件产生的错误中并没有全部映射(最小割集中含有“其他”结点),那么可以认为该错误的源头有可能并不在当前构件上,需将该错误提升至服务器进行定位。
(4)在服务器中根据当前流程的动作依赖图进行定位。即将构件提交的错误实例在动作依赖图中进行映射,然后找出最先发生错误的动作,即可认为该动作上发生的错误实例是源头。则该实例最小割集为所有未定位错误的源头。并将结果存储,同时反馈给测试执行框架,至此完成错误定位工作。
如图2所示,是发布/订阅分布式系统运行的流程实例。本流程由三个构件组成。温度计发布主题为当前温度的数据。控制台在接收到主题为当前温度的数据后发布主题为是否降温的数据。空调接收到主题是否降温的数据后进行相应的操作。整个流程由温度计发布主题为当前温度的数据开始。
在图2所示的运行流程中有相应的运行状态约束。主题为当前温度的数据值域需在-20到40之间。控制台发布是否降温的动作需在控制台订阅到30条当前温度的动作之后发生,且响应时间为一分钟之内。温度计发布当前温度的动作频率需为1次/s。控制台发布是否降温的动作频率需为1次/min。空调订阅是否降温的动作频率需为1次/min。且温度计,控制台,空调都有相应的资源限制条件。
如图3所示,是错误传播模型的分布示意图。实施例中的运行流程中包含三个构件,错误传播模型分别分布在三个构件上以及服务器上。分布在构件上的错误传播模型为每个构件可能产生的所有错误实例构成的错误实例故障树,分布在服务器上的错误传播模型为系统运行流程中会产生的所有发布/订阅动作构成的动作依赖图。
假设在流程运行的某时刻检测出错误如下:
温度计:
(1)当前温度发布的数据内容不在范围内;
(2)当前发布数据的频率不在范围内;
控制台:
(1)订阅当前温度的数据频率不在范围内;
(2)发布是否降温的数据频率不在范围内;
空调:
(1)订阅是否降温的数据频率不在范围内。
根据错误定位方案,测试执行框架将在检测出错误的各个构件中调用错误定位模块,各构件上的错误定位模块独立地通过检查各自的错误实例故障树进行错误定位。
在温度计上:首先,将温度计当前错误与温度计的错误实例故障树对应,找出其中不为原子类型的错误,由温度计的错误实例故障树查找相应错误实例的最小割集,将结果记录并上传服务器。其余两个构件同理。
单构件分析结束,进行服务器上的跨构件错误定位,在依赖图上进行分析,找出最上层的源头,即为错误定位结果。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (6)
1.一种发布/订阅分布式系统分层错误定位方法,其特征在于,包括如下步骤:
步骤1,从系统运行流程的描述文件中提取系统运行的应用逻辑关系,包括单个构件内的逻辑关系和构件间的逻辑关系,根据单个构件内的逻辑关系构建单个构件内的错误传播模型,根据构件间的逻辑关系构建构件间的错误传播模型;
步骤2,当有构件运行过程中出现不符合预期规定的行为时,各构件根据各自对应的单个构件内的错误传播模型对本构件上出现的错误进行定位,并标注定位结果,将错误及其定位结果上传至服务器端;
步骤3,当服务器端收到所有构件提交的错误及其定位结果时,根据构件间的错误传播模型进行构件间的错误定位,并将错误定位结果返回至用户。
2.根据权利要求1所述发布/订阅分布式系统分层错误定位方法,其特征在于,所述步骤1的具体过程为:
步骤11,根据系统运行流程的描述文件,分析系统运行过程中所有可能产生的错误实例;
步骤12,将所有可能产生的错误实例按照每个构件进行分类,得到单个构件内可能产生的错误实例;
步骤13,单个构件内可能产生的错误实例结合系统的错误类型故障树以及单个构件内的逻辑关系,生成单个构件内的错误传播模型;
步骤14,在服务器端提取构件间的逻辑关系,生成构件间的错误传播模型。
3.根据权利要求2所述发布/订阅分布式系统分层错误定位方法,其特征在于,步骤13所述单个构件内的错误传播模型采用错误实例故障树的形式表示。
4.根据权利要求2所述发布/订阅分布式系统分层错误定位方法,其特征在于,步骤14所述构件间的错误传播模型采用动作依赖图的形式表示。
5.根据权利要求3所述发布/订阅分布式系统分层错误定位方法,其特征在于,所述步骤2的具体过程为:
步骤21,当有构件运行过程中发生错误时,该构件对当前的错误查找其在错误实例故障树中的最小割集进行错误定位;
步骤22,将该错误及其定位结果记录在已定位错误列表中;
步骤23,将已定位错误列表上传至服务器端。
6.根据权利要求4所述发布/订阅分布式系统分层错误定位方法,其特征在于,所述步骤3的具体过程为:
步骤31,服务器端接收到各构件上传的错误信息后,将错误信息按照发生时间先后顺序进行排序,并存储在服务器端的未定位错误列表中;
步骤32,从未定位错误列表中按从后往前的顺序取出错误信息,根据动作依赖图进行定位,并显示错误定位结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749108.4A CN107566171A (zh) | 2017-08-28 | 2017-08-28 | 一种发布/订阅分布式系统分层错误定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710749108.4A CN107566171A (zh) | 2017-08-28 | 2017-08-28 | 一种发布/订阅分布式系统分层错误定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107566171A true CN107566171A (zh) | 2018-01-09 |
Family
ID=60977365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710749108.4A Pending CN107566171A (zh) | 2017-08-28 | 2017-08-28 | 一种发布/订阅分布式系统分层错误定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566171A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112218272A (zh) * | 2019-07-10 | 2021-01-12 | 大唐移动通信设备有限公司 | 一种事件订阅方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044630A1 (en) * | 2002-08-30 | 2004-03-04 | Walker William T. | Software licensing for spare processors |
CN1551006A (zh) * | 2003-03-06 | 2004-12-01 | 微软公司 | 分布式计算系统架构及分布式应用的设计、部署和管理 |
CN102710757A (zh) * | 2012-05-21 | 2012-10-03 | 北京航空航天大学 | 一种分布式云存储数据完整性保护方法 |
CN104537147A (zh) * | 2014-12-01 | 2015-04-22 | 艾法能源工程股份有限公司 | Mds中自动检查管支架模型错误的方法及功能模块 |
CN105608258A (zh) * | 2015-12-16 | 2016-05-25 | 苏州同元软控信息技术有限公司 | 一种基于模型的系统设计及信息流可视化仿真系统及方法 |
-
2017
- 2017-08-28 CN CN201710749108.4A patent/CN107566171A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040044630A1 (en) * | 2002-08-30 | 2004-03-04 | Walker William T. | Software licensing for spare processors |
CN1551006A (zh) * | 2003-03-06 | 2004-12-01 | 微软公司 | 分布式计算系统架构及分布式应用的设计、部署和管理 |
CN102710757A (zh) * | 2012-05-21 | 2012-10-03 | 北京航空航天大学 | 一种分布式云存储数据完整性保护方法 |
CN104537147A (zh) * | 2014-12-01 | 2015-04-22 | 艾法能源工程股份有限公司 | Mds中自动检查管支架模型错误的方法及功能模块 |
CN105608258A (zh) * | 2015-12-16 | 2016-05-25 | 苏州同元软控信息技术有限公司 | 一种基于模型的系统设计及信息流可视化仿真系统及方法 |
Non-Patent Citations (2)
Title |
---|
周滢滢,沈卓炜: "面向发布/订阅分布式系统测试的流程描述方法", 《综合测试与故障诊断技术》 * |
杜翠兰,谭建龙: "基于事件处理的分布式系统故障定位技术", 《计算机科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112218272A (zh) * | 2019-07-10 | 2021-01-12 | 大唐移动通信设备有限公司 | 一种事件订阅方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726234B (zh) | 基于工业互联网的集成电路测试信息化管理系统 | |
WO2016090929A1 (zh) | 软件系统故障诊断方法、服务器及系统 | |
CN104598376B (zh) | 一种数据驱动的分层自动化测试系统和方法 | |
GB2595815A (en) | Distributed industrial performance monitoring and analytics platform | |
GB2604821A (en) | Distributed industrial performance monitoring and analytics | |
GB2545302A (en) | Distributed industrial performance monitoring and analytics | |
GB2545303A (en) | Data analytic services for distributed industrial performance monitoring | |
GB2545535A (en) | Source-independent queries in distributed industrial system | |
US20180004781A1 (en) | Data lineage analysis | |
CN101794106B (zh) | 质量控制系统、质量控制装置以及质量控制方法 | |
CN109636117A (zh) | 一种装配信息集成管理系统 | |
CN103902816A (zh) | 基于数据挖掘技术的带电检测数据处理方法 | |
JP2006343952A (ja) | 製造管理装置、製造管理方法および製造管理プログラム | |
CN104021248B (zh) | 一种航空机载机械类产品fmeca分析方法 | |
JPWO2014049804A1 (ja) | 分散システムにおけるシステム動作トレース方法 | |
KR102543064B1 (ko) | Rpa 기반 제조환경 모니터링 서비스 제공 시스템 | |
KR102043928B1 (ko) | 시간기반의 장비 센서 데이터 및 재료기반의 계측 통계적 프로세스 제어 데이터의 양방향적 연관 및 그래픽적 획득 | |
CN111859047A (zh) | 一种故障解决方法及装置 | |
CN117056688A (zh) | 一种基于数据分析的新材料生产数据管理系统及方法 | |
CN107566171A (zh) | 一种发布/订阅分布式系统分层错误定位方法 | |
KR102411291B1 (ko) | 스마트공장 데이터 품질평가 방법 | |
US20110078218A1 (en) | Event history storage device, event history tracking device, event history storage method, event history storage program, and data structure | |
JP4336251B2 (ja) | トレーサビリティシステム、トレース情報管理方法、トレース情報管理プログラム、及び記録媒体 | |
CN105354671A (zh) | 通用配置管理系统以及包含该系统的企业级信息系统 | |
CN115712623A (zh) | 一种基于捕获元数据变更的批量数据容错采集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180109 |