CN105677540A - 对远程不可达软件系统的运行状态进行远程监控的方法 - Google Patents
对远程不可达软件系统的运行状态进行远程监控的方法 Download PDFInfo
- Publication number
- CN105677540A CN105677540A CN201610067330.1A CN201610067330A CN105677540A CN 105677540 A CN105677540 A CN 105677540A CN 201610067330 A CN201610067330 A CN 201610067330A CN 105677540 A CN105677540 A CN 105677540A
- Authority
- CN
- China
- Prior art keywords
- software system
- monitoring
- unreachable
- long
- range
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件运行状态监控技术领域,提供一种对远程不可达软件系统的运行状态进行远程监控的方法,该方法包括:在远程软件系统上实现AOP;近端通讯终端向远程管理计算机的远程软件系统发送检测指令;远程软件系统通过监控切面代码获取检测参数并将检测参数返回给近端通讯终端。本发明提出的技术方案减少了操作人员维护远程软件系统的工作量,增加了远程软件系统的安全性、可靠性。
Description
技术领域
本发明属于软件运行状态监控技术领域,特别涉及一种对远程不可达软件系统的运行状态进行远程监控的方法。
背景技术
为了保障远程管理软件系统的正常、安全、稳定运行,必须对软件运行状态进行实时监控,对系统运行过程中出现的异常信息做出及时响应并提供相应的处理措施。
处理远程软件系统运行时故障时,需要考虑到对于长期远程运行的系统,近端对其软件状态的控制能力不足,尤其是在监测与处置的实时性上,能力较弱。因此,必须研究远程软件故障检测和诊断技术,使远程运行软件具备自主健康管理、系统容错和重构能力,使远程运行软件可以相对独立于近端和相对独立于操作人员进行远程故障处置,在各种预定或变化、异常环境下,具有一定的问题求解、判断和自维护的能力,减少操作人员的工作量,增加远程系统的安全性、可靠性。
AOP(Aspect-OrientedProgramming)是一种将函数的辅助性功能与业务逻辑相分离的编程泛型,其目的是将横切关注点分离出来,使得程序具有更高的模块化特性。在当前大多数支持面向对象的编程语言中(例如C#,Java等),函数(Function)是表述程序功能的最小单元,而一个函数的代码层面往往同时含有核心业务逻辑和辅助性功能。核心业务逻辑指一个函数本身主要要实现的业务功能,例如在远程物资信息管理软件系统中,“TaskManagement”函数其核心业务逻辑是“任务管理”,而“UserManagement”函数其核心业务是“用户管理”。但是,一个函数除了核心业务代码外,往往还会有一些辅助性功能代码,如事务处理、缓存处理、日志记录、异常处理等等。而这些辅助性功能一般会存在于大多数甚至所有业务函数中,即形成AOSD中的横切关注点。
软件开发过程中,一个关注点(Concern)就是一个特定的目的、概念或人们感兴趣的区域,是软件系统开发的基本处理模块。通俗地讲,即人们所关心的系统各个方面。在面向过程的编程方法中,关注点被表达为过程和函数;在面向对象的编程中,分离的关注点被模块化为对象或类。软件的生命周期中,在抽象层次(需求、分析和概要设计阶段)上,关注点一般体现为一些概念;在实现层次(详细设计和编码阶段)上,体现为程序结构中的一些实体单元。
关注点的基本动机是将软件分解和组织成为更小、更易管理、更易被理解的部件,每个这样的部件就是一个或多个关注点。我们可以把一个复杂的系统看作是由多个关注点来组合实现的,一个典型的系统可能会包括几个方面的关注点,如业务逻辑、性能、数据存储、日志和调试信息、授权、线程安全、错误检查等,还有开发过程中的关注点,例如易理解性、易维护性、易追查性、易扩展性等。
横切关注点的存在,造成了如下几个问题:
1)代码编写和维护困难
横切关注点不仅横切各个函数,还可能在不同类甚至不同工程间横切,使得同一个辅助功能(如事务处理)分散到各处,如果要增加新函数时要时刻注意别忘了添加所有需要的横切代码。另外,如果需要对其进行修改,则需要到所有被横切的函数中修改,维护难度极大。
2)引入大量冗余代码
由于同一个辅助性功能的代码几乎是完全相同的,这样就会令同样的代码在各个函数中出现,引入了大量冗余代码。
3)降低代码质量
横切关注点令核心业务代码和辅助性代码杂糅纠缠在一起,破坏了业务函数代码的纯净性和函数职责的单一性,引入了大量繁杂的代码和结构,使得代码质量下降。
所以,AOP的核心思想就是在编写代码时将横切关注点分离出来,形成单独的模块,单独编写和维护,不再分散到各业务函数,使得业务函数仅包含核心业务代码,从而解决以上问题。而在程序编译或运行时,通过某些技术手段令独立的横切关注点代码可以与核心业务代码自动协作运行,完成本身需要的功能。
发明内容
【要解决的技术问题】
本发明的目的是提供一种对远程不可达软件系统的运行状态进行远程监控的方法,使远程运行软件具备自主健康管理、系统容错和重构能力。
【技术方案】
本发明是通过以下技术方案实现的。
本发明涉及一种对远程不可达软件系统的运行状态进行远程监控的方法,包括步骤:
A、开发人员根据待监控的检测参数编写监控关注点描述文件,通过监控关注点描述语言预编译器对监控关注点描述文件进行预编译,将其转换为监控切面代码,调用相应的AOP编织工具将监控切面代码静态注入远程管理计算机的远程软件系统;
B、近端通讯终端的近端管理软件向远程管理计算机的远程软件系统发送检测指令;
C、远程管理计算机的远程软件系统接收到检测指令后自动通过监控切面代码获取检测参数,并将检测参数返回给近端通讯终端。
作为一种优选的实施方式,所述检测参数包括网络状态、单机状态、数据库信息以及应用软件系统信息中的一个或多个。
作为另一种优选的实施方式,所述应用软件系统信息包括核心业务函数名称、核心业务函数参数、核心业务函数的返回值及核心业务函数的执行时间、核心业务函数的结果。
作为另一种优选的实施方式,所述远程管理计算机与近端通讯终端之间采用第三方消息中间件DotNetMQ进行数据传输。
作为另一种优选的实施方式,所述近端通讯终端的近端管理软件通过自动或手动方式向远程管理计算机的远程软件发送检测指令。
作为另一种优选的实施方式,所述步骤C中远程管理计算机的远程软件系统将检测参数以文件的形式返回给近端通讯终端。
【有益效果】
本发明提出的技术方案具有以下有益效果:
通过本发明,远程运行软件可以相对独立于近端和操作人员进行远程故障处置,在各种预定或变化、异常环境下,具有一定的问题求解、判断和自维护的能力,减少了操作人员维护远程软件系统的工作量,增加了远程软件系统的安全性、可靠性。
附图说明
图1为本发明的实施例一提供的对远程不可达软件系统的运行状态进行远程监控的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的具体实施方式进行清楚、完整的描述。
图1为本发明实施例一提供的对远程不可达软件系统的运行状态进行远程监控的方法的流程图。如图1所示,包括步骤S1至步骤S3,下面分别对各个步骤进行详细说明。
步骤S1:在远程软件系统上实现AOP。
步骤S1中,开发人员根据待监控的检测参数编写监控关注点描述文件,通过监控关注点描述语言预编译器对监控关注点描述文件进行预编译,将其转换为监控切面代码,调用相应的AOP编织工具将监控切面代码静态注入远程管理计算机的远程软件系统,通过该步骤,远程软件系统具备了监控能力。具体地,静态注入是指在编译好的程序集中的类型或者某个方法里注入IL代码(而不是在程序集的运行时注入),注入的地方称为连接点。PostSharp是一个用于在.NET平台上实现AOP的框架,使用静态注入方式实现AOP,其连接点非常丰富,该框架结合了MSBuildTask和MSILInjection技术,从另外一个角度实现AOP编程。由于采用MSILInjection,因此静态代码注入的执行效率要高于使用ReflectionEmit。使用MSBuildTask,使得开发人员可以像使用编译器内置Attribute那样使用AOP。PostSharp不是VS的一个插件,也不是在编辑器里修改代码。它是把自己作为一系列的BuildTask来插入到生成过程的,然后修改了VS调用MSBiuld的默认配置,从而使VS的Build命令执行了它所指定的Task。PostSharp采用Post-Compile的方式实现AOP,即对已经生成的程序集,按照拦截规则进行修改,对需要拦截的方法注入拦截代码。这种方式与基于动态代理的方式相比,没有过多限制,比如不需要目标方法为virtual类型或者实现了接口等;将横切关注点单独分离出来,提高了代码的清晰性和可维护性;只需要在Aspect中编写辅助性功能代码,在一定程度上减少了工作量和冗余代码。另外,本实施例中,检测参数包括网络状态、单机状态、数据库信息以及应用软件系统信息等等。其中应用软件系统信息包括核心业务函数名称、核心业务函数参数、核心业务函数的返回值及核心业务函数的执行时间、核心业务函数的执行结果。
步骤S2:近端通讯终端向远程管理计算机的远程软件系统发送检测指令。
步骤S2中,近端通讯终端的近端管理软件向远程管理计算机的远程软件系统发送检测指令。具体地,远程管理计算机与近端通讯终端之间采用第三方消息中间件DotNetMQ进行数据传输。近端通讯终端的近端管理软件通过自动或手动方式向远程管理计算机的远程软件发送检测指令。
步骤S3:远程软件系统通过监控切面代码获取检测参数并将检测参数返回给近端通讯终端。
步骤S3中,远程管理计算机的远程软件系统接收到检测指令后自动通过监控切面代码获取检测参数,并将检测参数返回给近端通讯终端。其中,远程软件系统将检测参数以文件的形式返回给近端通讯终端。
从以上实施例可以看出,本发明实施例中,远程运行软件可以相对独立于近端和操作人员进行远程故障处置,在各种预定或变化、异常环境下,具有一定的问题求解、判断和自维护的能力,减少了操作人员维护远程软件系统的工作量,增加了远程软件系统的安全性、可靠性。
需要说明,上述描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
Claims (6)
1.一种对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于包括步骤:
A、开发人员根据待监控的检测参数编写监控关注点描述文件,通过监控关注点描述语言预编译器对监控关注点描述文件进行预编译,将其转换为监控切面代码,调用相应的AOP编织工具将监控切面代码静态注入远程管理计算机的远程软件系统;
B、近端通讯终端的近端管理软件向远程管理计算机的远程软件系统发送检测指令;
C、远程管理计算机的远程软件系统接收到检测指令后自动通过监控切面代码获取检测参数,并将检测参数返回给近端通讯终端。
2.根据权利要求1所述的对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于所述检测参数包括网络状态、单机状态、数据库信息以及应用软件系统信息中的一个或多个。
3.根据权利要求2所述的对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于所述应用软件系统信息包括核心业务函数名称、核心业务函数参数、核心业务函数的返回值及核心业务函数的执行时间、核心业务函数的执行结果。
4.根据权利要求1所述的对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于所述远程管理计算机与近端通讯终端之间采用第三方消息中间件DotNetMQ进行数据传输。
5.根据权利要求1所述的对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于所述近端通讯终端的近端管理软件通过自动或手动方式向远程管理计算机的远程软件发送检测指令。
6.根据权利要求1所述的对远程不可达软件系统的运行状态进行远程监控的方法,其特征在于所述步骤C中远程管理计算机的远程软件系统将检测参数以文件的形式返回给近端通讯终端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610067330.1A CN105677540A (zh) | 2016-01-29 | 2016-01-29 | 对远程不可达软件系统的运行状态进行远程监控的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610067330.1A CN105677540A (zh) | 2016-01-29 | 2016-01-29 | 对远程不可达软件系统的运行状态进行远程监控的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677540A true CN105677540A (zh) | 2016-06-15 |
Family
ID=56303895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610067330.1A Pending CN105677540A (zh) | 2016-01-29 | 2016-01-29 | 对远程不可达软件系统的运行状态进行远程监控的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677540A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844153A (zh) * | 2017-01-20 | 2017-06-13 | 北京奇虎科技有限公司 | 应用程序运行监控方法、装置以及终端 |
CN108132873A (zh) * | 2016-12-01 | 2018-06-08 | 无锡中科西北星科技有限公司 | 系统过程日志打印与远程多终端日志调试控制系统 |
CN109284226A (zh) * | 2018-08-24 | 2019-01-29 | 广州视源电子科技股份有限公司 | 软件故障远程定位方法、装置和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842079A (zh) * | 2005-03-28 | 2006-10-04 | 华为技术有限公司 | 对目标系统进行远程管理的方法和装置 |
CN103034578A (zh) * | 2011-09-29 | 2013-04-10 | 北京新媒传信科技有限公司 | 一种应用数据监控方法和装置 |
CN103617038A (zh) * | 2013-11-28 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种分布式应用系统的服务监控方法及装置 |
-
2016
- 2016-01-29 CN CN201610067330.1A patent/CN105677540A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842079A (zh) * | 2005-03-28 | 2006-10-04 | 华为技术有限公司 | 对目标系统进行远程管理的方法和装置 |
CN103034578A (zh) * | 2011-09-29 | 2013-04-10 | 北京新媒传信科技有限公司 | 一种应用数据监控方法和装置 |
CN103617038A (zh) * | 2013-11-28 | 2014-03-05 | 北京京东尚科信息技术有限公司 | 一种分布式应用系统的服务监控方法及装置 |
Non-Patent Citations (2)
Title |
---|
JUN ZHU 等: ""A Runtime-Monitoring-Based Dependable Software Construction Method"", 《THE 9TH INTERNATIONAL CONFERENCE FOR YOUNG COMPUTER SCIENTISTS》 * |
李振东: ""基于字节码的软件监控及可信演化框架设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132873A (zh) * | 2016-12-01 | 2018-06-08 | 无锡中科西北星科技有限公司 | 系统过程日志打印与远程多终端日志调试控制系统 |
CN106844153A (zh) * | 2017-01-20 | 2017-06-13 | 北京奇虎科技有限公司 | 应用程序运行监控方法、装置以及终端 |
CN106844153B (zh) * | 2017-01-20 | 2020-02-11 | 北京奇虎科技有限公司 | 应用程序运行监控方法、装置以及终端 |
CN109284226A (zh) * | 2018-08-24 | 2019-01-29 | 广州视源电子科技股份有限公司 | 软件故障远程定位方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bernardi et al. | Model-driven dependability assessment of software systems | |
CN103441900A (zh) | 集中式跨平台自动化测试系统及其控制方法 | |
CN105491143A (zh) | 一种软件运行状态监控系统及其实现方法 | |
CN102375731A (zh) | 一种免编码集成应用软件平台系统 | |
CN105676808B (zh) | 一种工业控制系统逻辑断点调试功能的实现方法 | |
CN105677540A (zh) | 对远程不可达软件系统的运行状态进行远程监控的方法 | |
CN109062152A (zh) | 一种基于逻辑组态产生的Loacl变量在线监控方法 | |
CN104517181A (zh) | 一种核电站企业内容管理系统及方法 | |
Marin et al. | A classification of crosscutting concerns | |
CN103412745A (zh) | 一种开发及应用平台 | |
CN103440165A (zh) | 一种面向个人的任务分派与处理方法 | |
CN107430895B (zh) | 安全关键系统 | |
CN116643950A (zh) | 一种基于FaaS的云原生应用自动化运维方法 | |
Hopsu et al. | On portability of IEC 61499 compliant structures and systems | |
CN101685420A (zh) | 多线程调试方法和装置 | |
Muccini et al. | Monitoring architectural properties in dynamic component-based systems | |
Orth et al. | Enabling All-Electric Subsea Control Systems without Compromising Safety-A Case Study Comparing Functional Safety Systems Using Springs or Batteries | |
CN105204869B (zh) | 一种通信系统的数据处理方法 | |
Giese et al. | Separation of non-orthogonal concerns in software architecture and design | |
Gutierrez et al. | A comparison between expert systems and autonomic computing plus mobile agent approaches for fault management. | |
CN116301836A (zh) | 一种基于国产自主可控环境的嵌入式开发系统 | |
Lavery et al. | An actor-based runtime monitoring system for web and desktop applications | |
Saadi et al. | An approach for the dynamic reconfiguration of software architecture | |
Francalanza et al. | Synthesising correct concurrent runtime monitors | |
da Cruz et al. | Using explicit control processes in distributed workflows to gather provenance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |
|
RJ01 | Rejection of invention patent application after publication |