KR102519132B1 - System and method for operating self-growing software based on microservice - Google Patents

System and method for operating self-growing software based on microservice Download PDF

Info

Publication number
KR102519132B1
KR102519132B1 KR1020200120772A KR20200120772A KR102519132B1 KR 102519132 B1 KR102519132 B1 KR 102519132B1 KR 1020200120772 A KR1020200120772 A KR 1020200120772A KR 20200120772 A KR20200120772 A KR 20200120772A KR 102519132 B1 KR102519132 B1 KR 102519132B1
Authority
KR
South Korea
Prior art keywords
unit function
module
software
operating state
state data
Prior art date
Application number
KR1020200120772A
Other languages
Korean (ko)
Other versions
KR20220037839A (en
Inventor
주현태
정용무
Original Assignee
한국전자기술연구원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 한국전자기술연구원 filed Critical 한국전자기술연구원
Priority to KR1020200120772A priority Critical patent/KR102519132B1/en
Publication of KR20220037839A publication Critical patent/KR20220037839A/en
Application granted granted Critical
Publication of KR102519132B1 publication Critical patent/KR102519132B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

마이크로서비스 기반의 자가성장형 소프트웨어 운영방법이 제공된다. 상기 방법은 소정의 서비스를 제공하는 시스템(이하, 서비스 제공 시스템)에서 운영되는 적어도 하나의 소프트웨어의 단위 기능을 식별하는 단계; 상기 식별된 단위 기능별로 상기 소프트웨어를 모듈화(이하 단위 기능별 모듈)하는 단계; 상기 단위 기능별 모듈을 저장소에 저장하는 단계; 상기 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 상기 소프트웨어에 상응하는 서비스를 제공하는 단계; 상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계; 및 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계를 포함한다.A microservice-based self-growth software operating method is provided. The method may include identifying a unit function of at least one software operated in a system providing a predetermined service (hereinafter referred to as a service providing system); modularizing the software for each identified unit function (hereinafter referred to as module for each unit function); storing the module for each unit function in a storage; reading only some modules for each unit function stored in the storage and providing a service corresponding to the software; determining whether to autonomously respond to the service by tracking operating state data of the service providing system; and reading out at least one module for each unit function from among the stored modules for each unit function according to the autonomous correspondence and applying it to the software.

Description

마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템 및 방법{SYSTEM AND METHOD FOR OPERATING SELF-GROWING SOFTWARE BASED ON MICROSERVICE}Microservice-based self-growth software operating system and method {SYSTEM AND METHOD FOR OPERATING SELF-GROWING SOFTWARE BASED ON MICROSERVICE}

본 발명은 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템 및 방법에 관한 것이다.The present invention relates to a microservice-based self-growing software operating system and method.

종래에는 IoT나 생산시설 또는 각종 무인 운영 시스템에 대하여 변화된 요구사항이나 결함 등의 돌발 상황이 발생한 경우, 운영자의 즉각적인 개입이 어려운 상황에서, 중요도나 긴급성에 따라 결함이 존재하는 상태로 운영하거나 일정 시간동안 시스템을 중단해야 하는 문제가 있었다.Conventionally, when an unexpected situation such as changed requirements or defects occurs for IoT, production facilities, or various unmanned operating systems, in a situation where immediate intervention by the operator is difficult, it is operated in a state where defects exist according to importance or urgency, or for a certain period of time There was a problem with the system needing to be stopped for a while.

또한, 기존의 자동 업데이트 기술은 새로운 소프트웨어의 전송 및 적용까지 시스템의 가동을 중단해야 하는 경우가 일반적이었다. 이 또한, 소프트웨어의 부분적인 요소의 성장형 아키텍처가 아닌 소프트웨어 전체를 새로운 것으로 대체하는 방식으로 이루어지므로 네트워크의 상황이나 적용 시스템의 환경에 따라 많은 한계점이 존재하였다.In addition, in the conventional automatic update technology, it is common to have to stop the operation of the system until new software is transmitted and applied. Also, since this is done in a way to replace the entire software with a new one rather than a growth-type architecture of partial elements of the software, there are many limitations depending on the network situation or the environment of the applied system.

본 발명의 실시예는 소프트웨어를 탑재하고 구동하는 IT 시스템의 운영에 있어서, 오류, 결함, 신규 기능에 대한 요구사항 등 다양한 이슈가 발생하는 경우, 이를 해결하기 위한 관리자의 개입이나 시스템 운영 중단을 최소화하면서 이슈를 해결할 수 있도록 하는 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템 및 방법을 제공한다. An embodiment of the present invention minimizes administrator's intervention or system operation interruption to solve various issues such as errors, defects, and requirements for new functions in the operation of an IT system loaded with and running software. It provides a microservice-based self-growing software operating system and method that can solve issues while doing so.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 마이크로서비스 기반의 자가성장형 소프트웨어 운영 방법은 소정의 서비스를 제공하는 시스템(이하, 서비스 제공 시스템)에서 운영되는 적어도 하나의 소프트웨어의 단위 기능을 식별하는 단계; 상기 식별된 단위 기능별로 상기 소프트웨어를 모듈화(이하 단위 기능별 모듈)하는 단계; 상기 단위 기능별 모듈을 저장소에 저장하는 단계; 상기 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 상기 소프트웨어에 상응하는 서비스를 제공하는 단계; 상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계; 및 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계를 포함한다. 이때, 상기 운영상태 데이터는 상기 서비스 제공 시스템의 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함한다.As a technical means for achieving the above-mentioned technical problem, the microservice-based self-growth software operating method according to the first aspect of the present invention is at least one operating system that provides a predetermined service (hereinafter referred to as a service providing system). identifying unit functions of the software; modularizing the software for each identified unit function (hereinafter referred to as module for each unit function); storing the module for each unit function in a storage; reading only some modules for each unit function stored in the storage and providing a service corresponding to the software; determining whether to autonomously respond to the service by tracking operating state data of the service providing system; and reading out at least one module for each unit function from among the stored modules for each unit function according to the autonomous correspondence and applying it to the software. At this time, the operating state data includes resource usage, memory usage, and input/output data of the service providing system.

본 발명의 일부 실시예에서, 상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계는, 상기 운영상태 데이터에 기초하여 상기 서비스 제공 시스템의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하는 단계; 상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하는 단계; 및 상기 소프트웨어의 결함이 존재하는 것으로 판단한 경우 상기 자율 대응할 것을 결정하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of tracking operating state data of the service providing system and determining whether to autonomously respond to the service may include changes in the operating state of the service providing system based on the operating state data and searching whether at least one of the pattern changes of the operating state data occurs; determining whether the software is defective by analyzing the operating state data when at least one of the operating state change and the pattern change occurs; and determining to take the autonomous response when it is determined that the software defect exists.

본 발명의 일부 실시예에서, 상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하는 단계는, 상기 운영상태 데이터를 기반으로 분석된, 소정의 제1 시간 구간 및 상기 제1 시간 구간 이후에 연속되는 소정의 제2 시간 구간에서의 상기 서비스 제공 시스템의 각 리소스 사용량이 소정의 제1 오차 범위를 초과하되, 상기 소프트웨어에 대응하여 수집 또는 처리 중인 데이터의 상기 제1 및 제2 시간 구간에서의 수집량 또는 처리량의 변화가 소정의 제2 오차 범위 내인 경우 상기 소프트웨어에 결함이 존재하는 것으로 판단할 수 있다.In some embodiments of the present invention, the step of determining whether the software is defective by analyzing the operating state data may include a predetermined first time interval analyzed based on the operating state data and after the first time interval. In the first and second time intervals, the amount of resource usage of the service providing system in the second consecutive predetermined time period exceeds the first predetermined error range, but the data being collected or processed corresponding to the software When the change in the amount of collection or throughput is within a predetermined second error range, it may be determined that the software has a defect.

본 발명의 일부 실시예에서, 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는, 상기 저장소에 저장된 단위 기능별 모듈 중 상기 소프트웨어의 결함에 상응하는 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하는 단계; 및 상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시키는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of reading out at least one module for each unit function from among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software may include detecting a defect in the software among the modules for each unit function stored in the storage. Searching whether a corresponding module for each unit function is stored; and downloading the searched module for each unit function and loading the module into the memory.

본 발명의 일부 실시예에서, 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는, 상기 탐색 결과에 따른 단위 기능별 모듈의 다운로드 가능 여부를 판단하는 단계; 및 상기 단위 기능별 모듈의 다운로드가 불가능할 경우, 상기 저장소에 저장된 단위 기능별 모듈을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키는 단계를 더 포함할 수 있다.In some embodiments of the present invention, the step of reading out at least one module for each unit function from among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software determines whether or not the module for each unit function can be downloaded according to the search result. judging; and if it is impossible to download the module for each unit function, dynamically loading or calling (remote procedure call) the module for each unit function stored in the storage to apply the module to the software.

본 발명의 일부 실시예에서, 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는, 상기 탐색된 단위 기능별 모듈을 다운로드하기로 결정함에 따라, 상기 저장소에 저장된 단위 기능별 모듈의 기능을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키는 단계를 더 포함할 수 있다.In some embodiments of the present invention, the step of reading at least one module for each unit function from among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software may include determining to download the searched module for each unit function. , Dynamically loading or calling (remote procedure call) functions of modules for each unit function stored in the storage and applying them to the software may be further included.

본 발명의 일부 실시예에서, 상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계는, 상기 운영상태 데이터에 기초하여 상기 서비스 제공 시스템의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하는 단계; 상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터로부터 샘플 데이터 및 메타 데이터 중 적어도 하나의 추출 가능 여부를 판단하는 단계; 및 상기 샘플 데이터 또는 메타 데이터의 추출이 가능한 경우 상기 자율 대응할 것으로 결정하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of tracking operating state data of the service providing system and determining whether to autonomously respond to the service may include changes in the operating state of the service providing system based on the operating state data and searching whether at least one of the pattern changes of the operating state data occurs; determining whether at least one of sample data and meta data can be extracted from the operating state data when at least one of the operating state change and the pattern change occurs; and determining to perform the autonomous correspondence when extraction of the sample data or meta data is possible.

본 발명의 일부 실시예에서, 상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는, 상기 저장소에 단위 기능별 모듈 중 상기 샘플 데이터 또는 메타 데이터에 상응하는 상기 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하는 단계; 및 상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시키는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of reading out at least one module for each unit function from among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software includes the sample data or meta data among the modules for each unit function in the storage. searching whether a module for each unit function corresponding to is stored; and downloading the searched module for each unit function and loading the module into the memory.

또한, 본 발명의 제2 측면에 따른 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템은 소정의 서비스를 제공하는 소프트웨어의 단위 기능별 모듈이 저장된 저장소, 상기 단위 기능별 모듈을 독출하여 상기 서비스를 제공하는 위한 프로그램이 저장된 메모리, 상기 저장소에 저장된 단위 기능별 모듈을 독출하여 상기 메모리에 전송하는 통신모듈 및 상기 메모리에 저장된 프로그램을 실행시키는 프로세서를 포함하되, 상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 상기 서비스를 제공하고, 상기 소프트웨어와 관련된 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하며, 상기 자율 대응 여부에 따라 상기 저장소에 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키고, 상기 운영상태 데이터는 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함한다.In addition, the microservice-based self-growth software operating system according to the second aspect of the present invention includes a storage in which modules for each unit function of software providing predetermined services are stored, and a program for reading the module for each unit function and providing the service A communication module that reads a stored memory, a module for each unit function stored in the storage, and transmits the read module to the memory, and a processor that executes a program stored in the memory, wherein the processor executes the program, and the part stored in the storage Provides the service by reading only modules for each unit function of the software, tracks operating state data related to the software, determines whether or not to respond autonomously corresponding to the service, and determines at least one of the modules for each unit function stored in the storage according to the autonomous response. A module for each unit function is read and applied to the software, and the operating state data includes resource usage, memory usage, and input/output data.

본 발명의 일부 실시예에서, 상기 프로세서는 상기 운영상태 데이터에 기초하여 상기 소프트웨어의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하여, 상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터를 분석하여 상기 자율 대응할 것인지를 결정하되, 상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하여 상기 소프트웨어의 결함이 존재하는 것으로 판단한 경우, 상기 운영상태 데이터로부터 샘플 데이터 및 메타 데이터 중 적어도 하나를 추출 가능한 경우 상기 자율 대응할 것으로 결정할 수 있다.In some embodiments of the present invention, the processor searches whether at least one of a change in the operating state of the software and a change in the pattern of the operating state data occurs based on the operating state data, and the change in the operating state and When at least one of the pattern changes occurs, the operating state data is analyzed to determine whether to take the autonomous response, and the operating state data is analyzed to determine whether or not the software is defective. When it is determined that the software has a defect, When at least one of sample data and meta data can be extracted from the operating state data, it may be determined to respond autonomously.

본 발명의 일부 실시예에서, 상기 프로세서는 상기 저장소에 저장된 단위 기능별 모듈 중 상기 소프트웨어의 결함에 상응하는 단위 기능별 모듈, 상기 샘플 데이터 및 메타 데이터 중 적어도 하나에 상응하는 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하고, 상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시킬 수 있다.In some embodiments of the present invention, the processor may include at least one unit of a module for each unit function corresponding to a defect in the software among modules for each unit function stored in the storage, and a module for each unit function corresponding to at least one of the sample data and meta data. It may be searched whether a module for each function is stored, and the searched module for each unit function may be downloaded and loaded into the memory.

본 발명의 일부 실시예에서, 상기 프로세서는 상기 탐색 결과에 따른 단위 기능별 모듈의 다운로드 가능 여부를 판단하고, 상기 단위 기능별 모듈의 다운로드가 불가능할 경우, 상기 저장소에 저장된 단위 기능별 모듈을 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시킬 수 있다.In some embodiments of the present invention, the processor determines whether the module for each unit function can be downloaded according to the search result, and if the download of the module for each unit function is impossible, the module for each unit function stored in the storage is called (Remote Procedure Call ) and can be applied to the software.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공될 수 있다.In addition to this, another method for implementing the present invention, another system, and a computer readable recording medium recording a computer program for executing the method may be further provided.

상기와 같은 본 발명에 따르면, 서비스 제공 시스템의 여러가지 운영상 이슈 발생시 관리자의 개입 전까지, 또는 경우에 따라서는 관리자의 개입이 필요 없는 신속한 대응이 가능하도록 하여 서비스 제공의 안전성 및 안정성을 향상시킬 수 있다.According to the present invention as described above, when various operational issues of the service providing system occur, it is possible to quickly respond before the intervention of the administrator or, in some cases, without requiring the intervention of the administrator, thereby improving the safety and stability of service provision.

또한, 소프트웨어의 모듈화 및 모듈의 동적 연결과 호출이 가능하도록 하는 한편, 소프트웨어 모듈을 직접적으로 보유하고 있지 않은 상태에서도 원격지에 존재하는 모듈의 기능 호출이 가능하도록 하여 다양한 운영상의 필요와 상황에 대응이 가능하다는 장점이 있다. 즉, 자가성장 트리거 이후 단위 기능별 모듈 수신 완료 전에도 새로운 단위 기능별 모듈을 사용하거나, IoT 등과 같은 제한적인 리소스를 갖는 컴퓨팅 환경에서도 자가성장 적용이 가능하다는 장점이 있다.In addition, while enabling software modularization and dynamic connection and calling of modules, it is possible to call functions of modules that exist in remote locations even without directly possessing software modules, thereby responding to various operational needs and situations. There are advantages to being able to. That is, after the self-growth trigger, a new module for each unit function is used even before module reception is completed, or self-growth can be applied even in a computing environment having limited resources such as IoT.

이와 더불어, 관리자의 개입과 시스템 운영 중단을 반드시 동반할 필요가 없도록 함으로써, 자동 업데이트 기술보다 더욱 진보한 시스템 유지 관리가 가능하게끔 할 수 있다.In addition, it is possible to perform system maintenance that is more advanced than automatic update technology by eliminating the need to necessarily accompany the administrator's intervention and system operation shutdown.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영방법의 순서도이다.
도 2는 본 발명의 일 실시예에서의 자율 대응 여부에 따른 프로세스를 설명하기 위한 도면이다.
도 3a 내지 도 3d는 본 발명의 일 실시예에서 단위 기능별 모듈을 독출하는 일 예시를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영 시스템을 설명하기 위한 도면이다.
1 is a flowchart of a self-growing software operating method according to an embodiment of the present invention.
Figure 2 is a diagram for explaining a process according to whether or not to respond autonomously in an embodiment of the present invention.
3A to 3D are diagrams illustrating an example of reading a module for each unit function in an embodiment of the present invention.
4 is a diagram for explaining a self-growing software operating system according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, only these embodiments are intended to complete the disclosure of the present invention, and are common in the art to which the present invention belongs. It is provided to fully inform the person skilled in the art of the scope of the invention, and the invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.Terminology used herein is for describing the embodiments and is not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. As used herein, "comprises" and/or "comprising" does not exclude the presence or addition of one or more other elements other than the recited elements. Like reference numerals throughout the specification refer to like elements, and “and/or” includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various components, these components are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first element mentioned below may also be the second element within the technical spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings commonly understood by those skilled in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined.

본 발명은 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템(100) 및 방법에 관한 것이다. The present invention relates to a microservice-based self-growing software operating system (100) and method.

본 발명의 일 실시예는 적절한 인공지능 기술에 의하여 자가성장이 필요한 시점 및 요구사항을 파악할 수 있으며, 이를 기반으로 하여 이후의 소프트웨어의 구조적인 성장을 지원할 수 있다.An embodiment of the present invention can grasp the time and requirements for self-growth by appropriate artificial intelligence technology, and based on this, it can support the structural growth of software in the future.

본 발명의 일 실시예는 필요에 따라 스스로의 구성요소를 자율적으로 추가 또는 변경함으로써 성능이나 기능을 향상시킬 수 있는 지능형 소프트웨어 기술인 자가성장 소프트웨어 기술을 적용하는 것을 특징으로 하고 있다. 본 발명의 일 실시예에서의 자가성정 소프트웨어 기술은 소프트웨어의 구동 상황을 인지하고 개선이나 추가 등의 변화가 필요한 사항을 도출할 수 있는 인공지능 기술과, 자가 생성 또는 외부로부터 획득한 모듈을 구동 중인 소프트웨어에 추가할 수 있는 소프트웨어 아키텍처 기술로 구성된다.One embodiment of the present invention is characterized by applying self-growth software technology, which is an intelligent software technology capable of improving performance or function by autonomously adding or changing its own components as needed. In one embodiment of the present invention, the self-development software technology recognizes the operating situation of the software and derives the matters that need to be changed, such as improvement or addition, and artificial intelligence technology that is running a self-generated or externally acquired module. It consists of software architecture techniques that can be added to software.

이하 도 1 내지 도 5를 참조하여, 본 발명의 일 실시예에 따른 마이크로서비스 기반의 자가성장형 소프트웨어 운영방법(이하, 자가성장형 소프트웨어 운영방법)에 대하여 설명하도록 한다.Referring to FIGS. 1 to 5 , a microservice-based self-growth software operating method (hereinafter, self-growth software operating method) according to an embodiment of the present invention will be described.

도 1은 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영방법의 순서도이다.1 is a flowchart of a self-growing software operating method according to an embodiment of the present invention.

한편, 도 1에 도시된 단계들은 자가성장형 소프트웨어 운영 시스템(100)에 의해 운영되는 서버(이하, 서버)에 의해 수행되는 것으로 이해될 수 있지만, 이에 제한되는 것은 아니다.Meanwhile, the steps shown in FIG. 1 may be understood to be performed by a server (hereinafter referred to as a server) operated by the self-growing software operating system 100, but is not limited thereto.

먼저, 서버는 소정의 서비스를 제공하는 시스템(이하 서비스 제공 시스템)에서 운영되는 적어도 하나의 소프트웨어의 단위 기능을 식별하고(S110), 식별된 단위 기능별로 소프트웨어를 모듈화(이하, 단위 기능별 모듈)한다(S120).First, the server identifies a unit function of at least one software operated in a system providing a predetermined service (hereinafter, a service providing system) (S110), and modularizes the software for each identified unit function (hereinafter, a module for each unit function). (S120).

일 실시예로, 서버는 소프트웨어의 제1 단위 기능과 제2 단위 기능을 식별하고, 식별된 제1 단위 기능에 상응하는 부분을 모듈화하여 제1 단위 기능 모듈을 생성하고, 제2 단위 기능에 상응하는 부분을 모듈화하여 제2 단위 기능 모듈을 생성한다. In one embodiment, the server identifies the first unit function and the second unit function of the software, modularizes a part corresponding to the identified first unit function to generate a first unit function module, and corresponds to the second unit function. A second unit function module is created by modularizing the part to be performed.

이때, 제1 및 제2 단위 기능은 설명의 편의를 위해 지칭한 것으로 소프트웨어를 구성하는 전체 단위 기능으로 한정되는 것은 아니다. 즉, 소프트웨어는 식별되는 단위 기능에 따라 적어도 하나의 단위 기능별 모듈로 모듈화될 수 있다.In this case, the first and second unit functions are referred to for convenience of description, and are not limited to entire unit functions constituting software. That is, the software may be modularized into at least one module for each unit function according to the identified unit function.

또한, 본 발명의 일 실시예에서의 단위 기능은 복수 개의 단위 기능의 조합으로 구성되거나, 복수 개의 단위 기능이 그룹화되어 구성된 후 단위 기능별 모듈로 모듈화될 수도 있음은 물론이다.In addition, it goes without saying that the unit function in an embodiment of the present invention may be composed of a combination of a plurality of unit functions, or may be modularized into modules for each unit function after the plurality of unit functions are grouped and configured.

한편, 본 발명의 일 실시예에서 서비스 제공 시스템과 소프트웨어 운영 시스템(100)은 각각 독립적인 서버 컴퓨터에서 실행되거나, 하나의 서버로 구현되어 서버 컴퓨터에 서버 프로그램(server program)으로 탑재되어 서비스될 수 있다. 바람직하게는, 서비스 제공 시스템은 본 발명에서의 소프트웨어 운영 시스템(100)과 원격지에 있어 별개로 운영될 수 있다.On the other hand, in one embodiment of the present invention, the service providing system and the software operating system 100 may be executed on an independent server computer, or may be implemented as one server and loaded as a server program on the server computer to be serviced. there is. Preferably, the service providing system can be operated separately from the software operating system 100 in the present invention in a remote location.

다음으로, 서버는 단위 기능별 모듈을 저장소에 저장한 후(S130), 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 소프트웨어에 상응하는 서비스를 제공한다(S140).Next, after the server stores the module for each unit function in the storage (S130), the server reads only some of the modules for each unit function stored in the storage and provides a service corresponding to the software (S140).

즉, 서버는 각 단위 기능을 담당하는 모듈을 컴파일 시점에 링크하지 않고, 구동 중 필요한 시점에 서비스 제공 시스템의 메모리에 적재하고 호출할 수 있도록 하되, 단위 기능별 모듈은 저장소에서 관리하도록 하여 자가성장의 요구사항에 신속한 대응이 가능하도록 할 수 있다. In other words, the server does not link the module in charge of each unit function at the time of compilation, but allows the server to load and call the module in the memory of the service providing system at the time necessary during operation, but manages the module for each unit function in the storage to achieve self-growth. We can enable you to respond quickly to your needs.

한편, 서버는 소프트웨어에 상응하는 단위 기능이 추가됨에 따라, 추가된 부분에 상응하는 단위 기능을 식별하여 단위 기능별 모듈을 생성하고, 이를 저장소에 저장할 수도 있다.Meanwhile, as a unit function corresponding to software is added, the server may identify a unit function corresponding to the added part to create a module for each unit function, and store it in a storage.

다음으로, 서버는 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 서비스에 상응하는 자율 대응 여부를 결정하고(S150), 자율 대응 여부에 따라 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 소프트웨어에 적용시킨다(S160).Next, the server tracks the operating state data of the service providing system to determine whether or not to respond autonomously corresponding to the service (S150), and reads at least one module for each unit function among stored modules for each unit function according to whether or not to respond autonomously to the software. Apply (S160).

일 실시예로, 운영상태 데이터는 서비스 제공 시스템의 CPU 부하와 같은 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함할 수 있다. 이러한 운영상태 데이터는 미리 학습된 기계학습 알고리즘을 통해 지속적으로 학습될 수 있다. 일 예로, 운영상태 데이터를 기계학습 알고리즘의 입력 데이터로 설정하고, 자율 대응 필요 여부를 출력 데이터로 설정하여 학습을 수행할 수 있으며, 서버는 학습된 기계학습 알고리즘을 이용하여 자율 대응 여부를 결정할 수 있다.As an embodiment, the operating state data may include resource usage such as CPU load of the service providing system, memory usage, and input/output data. Such operating state data can be continuously learned through pre-learned machine learning algorithms. For example, operation state data may be set as input data of a machine learning algorithm, and autonomous response necessity may be set as output data to perform learning, and the server may determine autonomous response using the learned machine learning algorithm. there is.

일 실시예로, 서버는 소정의 제1 시간 구간 동안에서의 운영상태 데이터를 트래킹 및 분석하고, 제1 시간 구간 이후에 연속되는 소정의 제2 시간 구간 동안에서의 운영상태 데이터를 트래킹 및 분석한다. 이때, 본 발명에서는 편의상 제1 시간 구간은 서비스 제공 시스템의 평소 운영상태에 대응하며, 제2 시간 구간은 평소 운영상태와는 달리 특정한 이슈가 발생하여 자율 대응이 필요한 상태로 판단되는 시간 구간인 것으로 가정하도록 한다.In one embodiment, the server tracks and analyzes operating state data during a first predetermined time interval, and tracks and analyzes operating state data during a second predetermined time interval consecutive after the first time interval. . At this time, in the present invention, for convenience, the first time interval corresponds to the usual operating state of the service providing system, and the second time interval is determined to be a state in which autonomous response is required due to a specific issue occurring unlike the usual operating state. let's assume

도 2는 본 발명의 일 실시예에서의 자율 대응 여부에 따른 프로세스를 설명하기 위한 도면이다.Figure 2 is a diagram for explaining a process according to whether or not to respond autonomously in an embodiment of the present invention.

먼저, 서버는 운영상태 데이터에 기초하여 서비스 제공 시스템의 운영상황의 변화 및 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되었는지 여부를 탐색한다(S205).First, the server searches whether at least one of a change in the operating state of the service providing system and a change in the pattern of the operating state data has occurred based on the operating state data (S205).

그 다음, 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생한 경우, 서버는 운영상태 데이터를 분석하여 소프트웨어의 결함 여부를 판단한다(S210). 그리고 서버는 소프트웨어의 결함이 존재하는 것으로 판단한 경우 자율 대응할 것으로 결정한다.Next, when at least one of a change in operating conditions and a change in pattern occurs, the server analyzes the operating state data to determine whether or not the software is defective (S210). In addition, the server determines to autonomously respond when it is determined that a software defect exists.

일 예로, 서버는 운영상태 데이터를 기반으로 분석된, 소정의 제1 시간 구간 및 제1 시간 구간 이후에 연속되는 소정의 제2 시간 구간에서의 서비스 제공 시스템의 각 리소스 사용량이 소정의 제1 오차 범위를 초과한는 반면, 소프트웨어에 대응하여 수집 또는 처리 중인 데이터의 제1 및 제2 시간 구간에서의 수집량 또는 처리량의 변화가 소정의 제2 오차 범위 내인 경우 소프트웨어에 결함이 존재하는 것으로 판단할 수 있다.For example, the server calculates the usage of each resource of the service providing system in a first predetermined time interval and a second predetermined time interval consecutive after the first time interval, which is analyzed based on operating state data, with a predetermined first error. While exceeding the range, if the change in the amount of collection or processing amount in the first and second time intervals of the data being collected or processed corresponding to the software is within the second predetermined error range, it can be determined that the software has a defect. .

즉, 서버는 서비스 제공 시스템의 CPU 부하나 메모리의 사용량이 비정상적으로 늘어나는 경우, 해당 상황을 촉발하는 제1 단위 기능별 모듈에 대하여 개선할 사항이 있는지 여부를 후술하는 저장소의 탐색을 통해 제2 단위 기능별 모듈을 적용할 수 있다.That is, when the CPU load or memory usage of the service providing system abnormally increases, the server determines whether or not there is something to be improved for the module for each function of the first unit that triggers the situation. module can be applied.

다른 실시예로, 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생한 경우, 서버는 운영상태 데이터로부터 샘플 데이터 및 메타 데이터 중 적어도 하나의 추출 가능 여부를 판단하고(S215, S225), 추출 가능한 것으로 판단한 경우 샘플 데이터나 메타 데이터를 추출한 후(S220, S230) 이를 기반으로 자율 대응할 것으로 결정할 수 있다.In another embodiment, when at least one of a change in operating situation and a change in pattern occurs, the server determines whether at least one of sample data and meta data can be extracted from the operating state data (S215 and S225), and determines that it is extractable. In this case, after extracting sample data or meta data (S220 and S230), it may be determined to autonomously respond based on this.

즉, 서버는 운영상태 데이터를 기반으로 서비스 제공 시스템이 평소 수집 및 처리하던 것과 다른 패턴의 데이터가 수집되는 것을 탐색하고, 수집된 데이터의 샘플을 저장소로 전달하여 이에 사응하는 단위 기능별 모듈이 있는지를 탐색한 후, 탐색된 단위 기능별 모듈을 소프트웨어에 적용시킬 수 있다.In other words, based on the operating state data, the server searches for the collection of data of a different pattern than the one normally collected and processed by the service providing system, and sends samples of the collected data to the storage to determine if there is a corresponding module for each unit function. After discovery, the searched module for each unit function can be applied to software.

또는, 운영상태 데이터를 기반으로 서비스에 상응하는 소프트웨어에 필요한 모듈의 기능 등에 대한 기초 정보를 명시한 메타 데이터를 추출하고, 저장소에 추출된 메타 데이터에 상응하는 단위 기능별 모듈이 있는지를 탐색한 후, 탐색된 단위 기능별 모듈을 소프트웨어에 적용시킬 수 있다.Alternatively, based on the operating state data, meta data specifying basic information about the functions of modules required for the software corresponding to the service is extracted, and after searching whether there is a module for each unit function corresponding to the extracted meta data in the repository, search Modules for each unit function can be applied to software.

이때, 본 발명의 일 실시예는 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생한 경우, 소프트웨어에 결함이 있는지 여부, 샘플 데이터를 추출 가능한지 여부 및 메타 데이터를 추출 가능한지 여부에 대하여 도 2에 도시된 바와 같이 순차적으로 판단할 수 있고, 도 2와는 달리 각각 독립적으로 판단하여 어느 하나에 해당하는지 여부에 따라 자율 대응 여부를 결정할 수도 있다.At this time, in an embodiment of the present invention, when at least one of a change in operating situation and a change in pattern occurs, whether there is a defect in the software, whether sample data can be extracted, and whether or not meta data can be extracted are shown in FIG. As shown in FIG. 2, it may be judged sequentially, and unlike FIG. 2, it is also possible to independently determine whether or not to respond autonomously depending on whether one corresponds to the other.

도 3a 내지 도 3d는 본 발명의 일 실시예에서 단위 기능별 모듈을 독출하는 일 예시를 도시한 도면이다.3A to 3D are diagrams illustrating an example of reading a module for each unit function in an embodiment of the present invention.

서버는 소프트웨어에 결함이 존재하는 경우, 이를 기반으로 저장소에 저장된 단위 기능별 모듈 중 소프트웨어의 결함에 상응하는 단위 기능별 모듈이 저장되어 있는지 여부를 탐색한다(S235).If there is a defect in the software, the server searches whether a module for each unit function corresponding to the defect in the software is stored among the modules for each unit function stored in the storage based on this (S235).

그리고, 소프트웨어의 결함에 상응하는 단위 기능별 모듈이 존재하는 경우(S240), 탐색된 단위 기능별 모듈을 다운로드하여 서비스 제공 시스템의 메모리에 적재시킬 수 있다(S250).And, if there is a module for each unit function corresponding to the software defect (S240), the searched module for each unit function may be downloaded and loaded into the memory of the service providing system (S250).

일 실시예로, 서버는 서비스 제공 시스템의 리소스나 네트워크 상황 등에 기초하여 탐색된 단위 기능별 모듈을 다운로드 또는 메모리에 적재시킬 수 있는지 그 가능 여부를 판단할 수 있다. As an embodiment, the server may determine whether the module for each unit function searched for can be downloaded or loaded into a memory based on resources or network conditions of the service providing system.

만약, 단위 기능별 모듈의 다운로드나 서비스 제공 시스템의 메모리 상에 적재가 불가능한 것으로 판단된 경우(S245-N), 서버는 도 3a 내지 도 3c와 같이 저장소에 저장된 단위 기능별 모듈을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 소프트웨어(Application Core Module)에 적용시킬 수 있다. 이때, 서버는 단위 기능별 모듈을 동적으로 로드하여 적용시키거나(도 3a), 단위 기능별 모듈을 호출하여 적용시킬 수 있다(도 3b). 또는, 적용 대상인 단위 기능별 모듈이 복수 개인 경우 도 3c와 같이 이를 동시에 독출하여 적용시킬 수도 있다.If it is determined that the module for each unit function cannot be downloaded or loaded in the memory of the service providing system (S245-N), the server dynamically loads the module for each unit function stored in the storage as shown in FIGS. 3A to 3C or can be called (Remote Procedure Call) and applied to software (Application Core Module). At this time, the server may dynamically load and apply the module for each unit function (FIG. 3A) or call and apply the module for each unit function (FIG. 3B). Alternatively, when there are a plurality of modules for each unit function to be applied, they may be simultaneously read and applied as shown in FIG. 3C.

이에 따라, 서비스 제공 시스템은 메모리 상에 직접적으로 필요로 하는 단위 기능 모듈을 보유하고 있지 않더라도, 추가 또는 변경되는 기능의 동적 로드 또는 호출을 통한 적용이 가능한 자가성장 구현이 가능하다는 장점이 있다. 또한, 서비스 제공 시스템의 컴퓨팅 환경이 제한적인 경우 등에도 자가성장형 소프트웨어 구현이 가능하다는 장점이 있다.Accordingly, the service providing system has the advantage of being able to implement self-growth that can be applied through dynamic loading or calling of functions to be added or changed, even if it does not directly hold necessary unit function modules in the memory. In addition, there is an advantage in that self-growth software can be implemented even when the computing environment of the service providing system is limited.

또 다른 실시예로, 서버는 탐색된 단위 기능별 모듈을 다운로드하기로 결정함에 따라, 저장소에 저장된 단위 기능별 모듈을 호출하여 소프트웨어에 적용시킬 수 있다.As another embodiment, upon determining to download the searched module for each unit function, the server may call the module for each unit function stored in the storage and apply the module to the software.

즉, 도 3d와 같이 서버는 단위 기능별 모듈을 다운로드하는 중에도 다운로드 중인 단위 기능별 모듈을 동적 로드 또는 호출할 수 있으며, 이와 상이한 새로운 단위 기능별 모듈에 대한 기능에 대해서도 동적 로드 또는 호출할 수 있다. 이를 통해 IoT 등 제한적인 컴퓨팅 환경에서 새로운 단위 기능별 모듈의 다운로드 없이 RPC를 통해 새로운 기능의 호출 및 이용이 가능하다는 장점이 있다. That is, as shown in FIG. 3D, the server can dynamically load or call the downloaded module for each unit function even while downloading the module for each unit function, and can also dynamically load or call a function for a new module for each unit function that is different from the downloaded module. Through this, there is an advantage in that it is possible to call and use new functions through RPC without downloading modules for each new unit function in a limited computing environment such as IoT.

일 예로, 서버는 네트워크의 리소스 등의 상황 정보, 다운로드될 단위 기능별 모듈의 데이터 크기 정보에 기초하여 단위 기능별 모듈의 다운로드 시간 및 적용 완료 시간을 산출하고(이하 제 1 시간), 동일한 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 적용시 소요되는 총 시간(이하 제2 시간)을 산출한 후, 제1 시간이 제2 시간을 초과하는 경우, 다운로드와 동시에 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 소프트웨어에 적용시킬 수도 있다. For example, the server calculates the download time and application completion time of the module for each unit function based on situation information such as network resources and data size information of the module for each unit function to be downloaded (hereinafter, a first time), and If the first time exceeds the second time after calculating the total time (hereinafter referred to as the second time) required for dynamic loading or calling and application of the may apply.

이와 같이, 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영 방법은 자가성장 기술이 적용된 소프트웨어의 전반적인 운영, 즉 단위 기능별 모듈의 설치와 구동 등의 관리, 단위 기능별 모듈의 연결 및 호출에 관여하며, 단위 기능별 모듈을 전체 소프트웨어의 컴파일시 미리 소프트웨어에 연결시키는 것이 아니라, 필요한 시점에 동적으로 서비스 제공 시스템의 메모리에 적재하고 호출하는 방식으로 소프트웨어에 연동되도록 할 수 있다.As such, the self-growth software operating method according to an embodiment of the present invention is involved in overall operation of software to which self-growth technology is applied, that is, management of installation and operation of modules for each unit function, connection and call of modules for each unit function, Modules for each unit function may not be linked to software in advance when the entire software is compiled, but may be dynamically loaded and called into the memory of the service providing system at the time of need so as to be interlocked with software.

한편, 본 발명의 일 실시예는 서비스 제공 시스템에서의 운영상황이나 데이터의 패턴 발생 변화를 탐지한 이후, 소프트웨어의 결함이 없고, 샘플 데이터 및 메타 데이터의 추출이 불가능한 경우, 또는 이에 해당되는 경우라 하더라도 저장소에 상응하는 단위 기능별 모듈이 존재하지 않는 경우 최종적으로 관리자에게 통지할 수 있다(S260). 즉, 본 발명의 일 실시예에서 관리자의 개입은 가장 마지막 과정에서 이루어지게 된다.On the other hand, in one embodiment of the present invention, after detecting a change in the operating situation or pattern occurrence of data in a service providing system, when there is no software defect and sample data and meta data cannot be extracted, or in this case, However, if there is no module for each unit function corresponding to the storage, the manager may be finally notified (S260). That is, in one embodiment of the present invention, the administrator's intervention is made in the last process.

한편, 상술한 설명에서, 단계 S110 내지 단계 S260 은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 3d에 기술된 내용은 도 4의 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템(100)에도 적용된다.Meanwhile, in the above description, steps S110 to S260 may be further divided into additional steps, or combined into fewer steps, according to an embodiment of the present invention. Also, some steps may be omitted if necessary, and the order of steps may be changed. In addition, even if other omitted contents, the contents described in FIGS. 1 to 3D are also applied to the microservice-based self-growth software operating system 100 of FIG. 4 .

이하에서는 본 발명의 일 실시예에 따른 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템(100, 이하 자가성장형 소프트웨어 운영 시스템이라 한다)에 대하여 설명하도록 한다.Hereinafter, a microservice-based self-growing software operating system (100, hereinafter referred to as a self-growing software operating system) according to an embodiment of the present invention will be described.

도 4는 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영 시스템(100)을 설명하기 위한 도면이다.4 is a diagram for explaining a self-growing software operating system 100 according to an embodiment of the present invention.

도 4를 참조하면, 자가성장형 소프트웨어 운영 시스템(100)는 저장소(110), 메모리(120), 통신모듈(130) 및 프로세서(140)를 포함한다.Referring to FIG. 4 , the self-growing software operating system 100 includes a storage 110 , a memory 120 , a communication module 130 and a processor 140 .

저장소(110)는 소정의 서비스를 제공하는 소프트웨어의 단위 기능별 모듈이 저장되고, 메모리(120)에는 단위 기능별 모듈을 독출하여 서비스를 제공하기 위한 프로그램이 저장된다.The storage 110 stores modules for each unit function of software providing predetermined services, and the memory 120 stores programs for reading out modules for each unit function and providing services.

통신모듈(130)은 저장소(110)에 저장된 단위 기능별 모듈을 독출하여 메모리(120)에 전송하며, 프로세서(140)는 메모리(120)에 저장된 프로그램을 실행시킨다.The communication module 130 reads modules for each unit function stored in the storage 110 and transmits them to the memory 120, and the processor 140 executes a program stored in the memory 120.

프로세서(140)는 저장소(110)에 저장된 일부의 단위 기능별 모듈만을 독출하여 서비스를 제공하고, 소프트웨어와 관련된 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함하는 운영상태 데이터를 트래킹하여 서비스에 상응하는 자율 대응 여부를 결정하며, 자율 대응 여부에 따라 저장소(110)에 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 소프트웨어에 적용시킨다.The processor 140 provides a service by reading only some of the modules for each unit function stored in the storage 110, and autonomously responds corresponding to the service by tracking operating state data including resource usage, memory usage, and input/output data related to software. At least one module for each unit function among the modules for each unit function stored in the storage 110 is read out and applied to the software according to the autonomous correspondence.

이상에서 전술한 본 발명의 일 실시예에 따른 자가성장형 소프트웨어 운영 방법은, 하드웨어인 서버와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The self-growth software operating method according to an embodiment of the present invention described above may be implemented as a program (or application) to be executed in combination with a server, which is hardware, and stored in a medium.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The aforementioned program is C, C++, JAVA, machine language, etc. It may include a code coded in a computer language of. These codes may include functional codes related to functions defining necessary functions for executing the methods, and include control codes related to execution procedures necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, these codes may further include memory reference related codes for which location (address address) of the computer's internal or external memory should be referenced for additional information or media required for the computer's processor to execute the functions. there is. In addition, when the processor of the computer needs to communicate with any other remote computer or server in order to execute the functions, the code uses the computer's communication module to determine how to communicate with any other remote computer or server. It may further include communication-related codes for whether to communicate, what kind of information or media to transmit/receive during communication, and the like.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, cache, or memory, but a medium that stores data semi-permanently and is readable by a device. Specifically, examples of the storage medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc., but are not limited thereto. That is, the program may be stored in various recording media on various servers accessible by the computer or various recording media on the user's computer. In addition, the medium may be distributed to computer systems connected through a network, and computer readable codes may be stored in a distributed manner.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.Steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, implemented in a software module executed by hardware, or implemented by a combination thereof. A software module may include random access memory (RAM), read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, hard disk, removable disk, CD-ROM, or It may reside in any form of computer readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features of the present invention. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

100: 자가성장형 소프트웨어 운영 시스템
110: 저장소
120: 메모리
130: 통신모듈
140: 프로세서
100: self-growth software operating system
110: storage
120: memory
130: communication module
140: processor

Claims (12)

컴퓨터에 의해 수행되는 방법에 있어서,
소정의 서비스를 제공하는 시스템(이하, 서비스 제공 시스템)에서 운영되는 적어도 하나의 소프트웨어의 단위 기능을 식별하는 단계;
상기 식별된 단위 기능별로 상기 소프트웨어를 모듈화(이하 단위 기능별 모듈)하는 단계;
상기 단위 기능별 모듈을 저장소에 저장하는 단계;
상기 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 상기 소프트웨어에 상응하는 서비스를 제공하는 단계;
상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계; 및
상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계를 포함하되,
상기 운영상태 데이터는 상기 서비스 제공 시스템의 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함하되,
상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계는,
상기 운영상태 데이터를 입력단으로 설정하고, 자율 대응 필요 여부를 출력단으로 설정하여 학습된 기계학습 알고리즘을 이용하여 자율 대응 여부를 결정하고,
상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는,
상기 자율 대응 여부에 따라 탐색된 단위 기능별 모듈을 다운로드하기로 결정함에 따라, 상기 탐색된 단위 기능별 모듈을 다운로드하는 중에 다운로드 중인 단위 기능별 모듈을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키는 단계를 더 포함하고,
상기 소프트웨어에 적용시키는 단계는,
네트워크의 상황정보 및 상기 다운로드 할 단위 기능별 모듈의 데이터 크기 정보에 기초하여 단위 기능별 모듈의 다운로드 시간 및 적용 완료 시간인 제1 시간을 산출하고, 동일한 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 적용시 소요되는 총 시간인 제2 시간을 산출한 후, 상기 제1 시간이 제2 시간을 초과하는지 여부를 판단하여 초과하는 경우, 다운로드와 동시에 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 상기 소프트웨어에 적용시키는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
In a method performed by a computer,
identifying a unit function of at least one software operated in a system providing a predetermined service (hereinafter referred to as a service providing system);
modularizing the software for each identified unit function (hereinafter referred to as module for each unit function);
storing the module for each unit function in a storage;
reading only some modules for each unit function stored in the storage and providing a service corresponding to the software;
determining whether to autonomously respond to the service by tracking operating state data of the service providing system; and
Reading at least one module for each unit function among the stored modules for each unit function according to whether the autonomous correspondence is performed and applying the module to the software;
The operating state data includes resource usage, memory usage, and input/output data of the service providing system,
The step of tracking the operating state data of the service providing system and determining whether to respond autonomously corresponding to the service,
Setting the operating state data as an input terminal and setting the need for autonomous response as an output terminal to determine autonomous response using a learned machine learning algorithm,
The step of reading at least one module for each unit function among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software,
When it is determined to download the module for each unit function that has been searched for according to the autonomous correspondence, the module for each unit function being downloaded is dynamically loaded or called (Remote Procedure Call) while the searched module for each unit function is being downloaded. Further comprising the step of applying to the software,
The step of applying the software,
Based on the network status information and the data size information of the module for each unit function to be downloaded, the first time, which is the download time and application completion time of the module for each unit function to be downloaded, is calculated, and it takes time to dynamically load or call and apply the same module for each unit function. After calculating the second time, which is the total time to be used, determining whether the first time exceeds the second time, and if it exceeds, dynamically loading or calling a module for each unit function at the same time as downloading to apply the software to the software. person,
Microservice-based self-growth software operation method.
제1항에 있어서,
상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계는,
상기 운영상태 데이터에 기초하여 상기 서비스 제공 시스템의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하는 단계;
상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하는 단계; 및
상기 소프트웨어의 결함이 존재하는 것으로 판단한 경우 상기 자율 대응할 것을 결정하는 단계를 포함하는,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 1,
The step of tracking the operating state data of the service providing system and determining whether to respond autonomously corresponding to the service,
searching for whether at least one of a change in an operating state of the service providing system and a change in a pattern of the operating state data occurs based on the operating state data;
determining whether the software is defective by analyzing the operating state data when at least one of the operating state change and the pattern change occurs; and
Including the step of determining that the autonomous response is to be made when it is determined that a defect in the software exists.
Microservice-based self-growth software operation method.
제2항에 있어서,
상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하는 단계는,
상기 운영상태 데이터를 기반으로 분석된, 소정의 제1 시간 구간 및 상기 제1 시간 구간 이후에 연속되는 소정의 제2 시간 구간에서의 상기 서비스 제공 시스템의 각 리소스 사용량이 소정의 제1 오차 범위를 초과하되,
상기 소프트웨어에 대응하여 수집 또는 처리 중인 데이터의 상기 제1 및 제2 시간 구간에서의 수집량 또는 처리량의 변화가 소정의 제2 오차 범위 내인 경우 상기 소프트웨어에 결함이 존재하는 것으로 판단하는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 2,
Analyzing the operating state data to determine whether the software is defective,
Each resource usage of the service providing system in a first predetermined time interval and a predetermined second time interval consecutive after the first time interval, analyzed based on the operating state data, falls within a predetermined first error range. exceed,
Determining that a defect exists in the software when a change in the amount of collection or processing in the first and second time intervals of data being collected or processed corresponding to the software is within a second predetermined error range,
Microservice-based self-growth software operation method.
제2항에 있어서,
상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는,
상기 저장소에 저장된 단위 기능별 모듈 중 상기 소프트웨어의 결함에 상응하는 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하는 단계; 및
상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시키는 단계를 포함하는,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 2,
The step of reading at least one module for each unit function among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software,
searching for a module for each unit function corresponding to a defect in the software among the modules for each unit function stored in the storage; and
Including the step of downloading the searched module for each unit function and loading it into the memory,
Microservice-based self-growth software operation method.
제4항에 있어서,
상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는,
상기 탐색 결과에 따른 단위 기능별 모듈의 다운로드 가능 여부를 판단하는 단계; 및
상기 단위 기능별 모듈의 다운로드가 불가능할 경우, 상기 저장소에 저장된 단위 기능별 모듈을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키는 단계를 더 포함하는,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 4,
The step of reading at least one module for each unit function among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software,
determining whether a module for each unit function can be downloaded according to the search result; and
Further comprising the step of dynamically loading or calling (remote procedure call) the module for each unit function stored in the storage and applying it to the software when it is impossible to download the module for each unit function.
Microservice-based self-growth software operation method.
삭제delete 제1항에 있어서,
상기 서비스 제공 시스템의 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하는 단계는,
상기 운영상태 데이터에 기초하여 상기 서비스 제공 시스템의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하는 단계;
상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터로부터 샘플 데이터 및 메타 데이터 중 적어도 하나의 추출 가능 여부를 판단하는 단계; 및
상기 샘플 데이터 또는 메타 데이터의 추출이 가능한 경우 상기 자율 대응할 것으로 결정하는 단계를 포함하는,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 1,
The step of tracking the operating state data of the service providing system and determining whether to respond autonomously corresponding to the service,
searching for whether at least one of a change in an operating state of the service providing system and a change in a pattern of the operating state data occurs based on the operating state data;
determining whether at least one of sample data and meta data can be extracted from the operating state data when at least one of the operating state change and the pattern change occurs; and
Including the step of determining to respond autonomously when extraction of the sample data or meta data is possible,
Microservice-based self-growth software operation method.
제7항에 있어서,
상기 자율 대응 여부에 따라 상기 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키는 단계는,
상기 저장소에 단위 기능별 모듈 중 상기 샘플 데이터 또는 메타 데이터에 상응하는 상기 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하는 단계; 및
상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시키는 단계를 포함하는,
마이크로서비스 기반의 자가성장형 소프트웨어 운영방법.
According to claim 7,
The step of reading at least one module for each unit function among the stored modules for each unit function according to whether or not the autonomous correspondence is performed and applying the module to the software,
searching whether a module for each unit function corresponding to the sample data or meta data among modules for each unit function is stored in the storage; and
Including the step of downloading the searched module for each unit function and loading it into the memory,
Microservice-based self-growth software operation method.
마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템에 있어서,
소정의 서비스를 제공하는 소프트웨어의 단위 기능별 모듈이 저장된 저장소,
상기 단위 기능별 모듈을 독출하여 상기 서비스를 제공하는 위한 프로그램이 저장된 메모리,
상기 저장소에 저장된 단위 기능별 모듈을 독출하여 상기 메모리에 전송하는 통신모듈 및
상기 메모리에 저장된 프로그램을 실행시키는 프로세서를 포함하되,
상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 저장소에 저장된 일부의 단위 기능별 모듈만을 독출하여 상기 서비스를 제공하고, 상기 소프트웨어와 관련된 운영상태 데이터를 트래킹하여 상기 서비스에 상응하는 자율 대응 여부를 결정하며, 상기 자율 대응 여부에 따라 상기 저장소에 저장된 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈을 독출하여 상기 소프트웨어에 적용시키고,
상기 운영상태 데이터는 리소스 사용량, 메모리 사용량 및 입출력 데이터를 포함하는,
상기 프로세서는 상기 운영상태 데이터를 입력단으로 설정하고, 자율 대응 필요 여부를 출력단으로 설정하여 학습된 기계학습 알고리즘을 이용하여 자율 대응 여부를 결정하고,
상기 자율 대응 여부에 따라 탐색된 단위 기능별 모듈을 다운로드하기로 결정함에 따라, 상기 탐색된 단위 기능별 모듈을 다운로드하는 중에 다운로드 중인 단위 기능별 모듈을 동적으로 로드(load)하거나 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키되,
네트워크의 상황정보 및 상기 다운로드 할 단위 기능별 모듈의 데이터 크기 정보에 기초하여 단위 기능별 모듈의 다운로드 시간 및 적용 완료 시간인 제1 시간을 산출하고, 동일한 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 적용시 소요되는 총 시간인 제2 시간을 산출한 후, 상기 제1 시간이 제2 시간을 초과하는지 여부를 판단하여 초과하는 경우, 다운로드와 동시에 단위 기능별 모듈에 대한 동적 로드 또는 호출하여 상기 소프트웨어에 적용시키는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템.
In a self-growing software operating system based on microservices,
A repository in which modules for each unit function of software providing predetermined services are stored;
a memory storing a program for reading the module for each unit function and providing the service;
A communication module for reading the module for each unit function stored in the storage and transmitting it to the memory; and
Including a processor that executes the program stored in the memory,
As the program is executed, the processor provides the service by reading only some of the modules for each unit function stored in the storage, and tracks operating state data related to the software to determine whether or not to autonomously respond to the service, , reading at least one module for each unit function from among the modules for each unit function stored in the storage according to whether or not the autonomous correspondence is performed and applying the module to the software;
The operating state data includes resource usage, memory usage, and input/output data.
The processor sets the operating state data as an input terminal and sets the need for autonomous response as an output terminal to determine whether to autonomously respond using a learned machine learning algorithm,
When it is determined to download the module for each unit function that has been searched for according to the autonomous correspondence, the module for each unit function being downloaded is dynamically loaded or called (Remote Procedure Call) while the searched module for each unit function is being downloaded. applied to the software,
Based on the network status information and the data size information of the module for each unit function to be downloaded, the first time, which is the download time and application completion time of the module for each unit function to be downloaded, is calculated, and it takes time to dynamically load or call and apply the same module for each unit function. After calculating the second time, which is the total time to be used, determining whether the first time exceeds the second time, and if it exceeds, dynamically loading or calling a module for each unit function at the same time as downloading to apply the software to the software. person,
Self-growing software operating system based on microservices.
제9항에 있어서,
상기 프로세서는 상기 운영상태 데이터에 기초하여 상기 소프트웨어의 운영상황의 변화 및 상기 운영상태 데이터의 패턴 변화 중 적어도 하나가 발생되는지 여부를 탐색하여, 상기 운영상황의 변화 및 패턴 변화 중 적어도 하나가 발생된 경우 상기 운영상태 데이터를 분석하여 상기 자율 대응할 것인지를 결정하되,
상기 운영상태 데이터를 분석하여 상기 소프트웨어의 결함 여부를 판단하여 상기 소프트웨어의 결함이 존재하는 것으로 판단한 경우, 상기 운영상태 데이터로부터 샘플 데이터 및 메타 데이터 중 적어도 하나를 추출 가능한 경우 상기 자율 대응할 것으로 결정하는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템.
According to claim 9,
The processor searches whether at least one of a change in the operating state of the software and a change in the pattern of the operating state data occurs based on the operating state data, and determines whether at least one of the change in the operating state and the pattern change has occurred. In this case, the operating state data is analyzed to determine whether to respond autonomously,
Analyzing the operating state data to determine whether or not the software is defective, and when it is determined that the software has a defect, determining to respond autonomously if at least one of sample data and meta data can be extracted from the operating state data person,
Self-growing software operating system based on microservices.
제10항에 있어서,
상기 프로세서는 상기 저장소에 저장된 단위 기능별 모듈 중 상기 소프트웨어의 결함에 상응하는 단위 기능별 모듈, 상기 샘플 데이터 및 메타 데이터 중 적어도 하나에 상응하는 단위 기능별 모듈 중 적어도 하나의 단위 기능별 모듈이 저장되어 있는지 여부를 탐색하고, 상기 탐색된 단위 기능별 모듈을 다운로드하여 상기 메모리에 적재시키는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템.
According to claim 10,
The processor determines whether at least one module for each unit function among modules for each unit function stored in the storage is stored, among modules for each unit function corresponding to a defect in the software and modules for each unit function corresponding to at least one of the sample data and meta data. Searching, downloading the searched module for each unit function and loading it into the memory,
Self-growing software operating system based on microservices.
제11항에 있어서,
상기 프로세서는 상기 탐색 결과에 따른 단위 기능별 모듈의 다운로드 가능 여부를 판단하고, 상기 단위 기능별 모듈의 다운로드가 불가능할 경우, 상기 저장소에 저장된 단위 기능별 모듈을 호출(Remote Procedure Call)하여 상기 소프트웨어에 적용시키는 것인,
마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템.
According to claim 11,
The processor determines whether the module for each unit function can be downloaded according to the search result, and if it is impossible to download the module for each unit function, calling the module for each unit function stored in the storage (Remote Procedure Call) to apply the module to the software person,
Self-growing software operating system based on microservices.
KR1020200120772A 2020-09-18 2020-09-18 System and method for operating self-growing software based on microservice KR102519132B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200120772A KR102519132B1 (en) 2020-09-18 2020-09-18 System and method for operating self-growing software based on microservice

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200120772A KR102519132B1 (en) 2020-09-18 2020-09-18 System and method for operating self-growing software based on microservice

Publications (2)

Publication Number Publication Date
KR20220037839A KR20220037839A (en) 2022-03-25
KR102519132B1 true KR102519132B1 (en) 2023-04-07

Family

ID=80935548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200120772A KR102519132B1 (en) 2020-09-18 2020-09-18 System and method for operating self-growing software based on microservice

Country Status (1)

Country Link
KR (1) KR102519132B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102605173B1 (en) * 2022-11-09 2023-11-22 신경희 Platform modularization system by service type and function

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064737B1 (en) * 2009-03-20 2011-09-16 주식회사 케이티 Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module
US20200089215A1 (en) * 2017-08-02 2020-03-19 Strong Force Iot Portfolio 2016, Llc Systems for self-organizing data collection and storage

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376870B2 (en) * 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064737B1 (en) * 2009-03-20 2011-09-16 주식회사 케이티 Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module
US20200089215A1 (en) * 2017-08-02 2020-03-19 Strong Force Iot Portfolio 2016, Llc Systems for self-organizing data collection and storage

Also Published As

Publication number Publication date
KR20220037839A (en) 2022-03-25

Similar Documents

Publication Publication Date Title
US8868623B2 (en) Enhanced garbage collection in a multi-node environment
EP2210183B1 (en) Managing updates to create a virtual machine facsimile
US9535754B1 (en) Dynamic provisioning of computing resources
CN110941528B (en) Log buried point setting method, device and system based on fault
CN111144839B (en) Project construction method, continuous integration system and terminal equipment
US10579513B2 (en) Test run control method and apparatus
KR102519132B1 (en) System and method for operating self-growing software based on microservice
CN111679852B (en) Detection method and device for conflict dependency library
CN111144571B (en) Deep learning reasoning operation method and middleware
CN114968272A (en) Algorithm operation method, device, equipment and storage medium
CN111427943A (en) Task management method and device in ET L system
CN112612587B (en) Spark platform dynamic resource allocation method for flow analysis
CN116841653A (en) Execution method and device of operation and maintenance job, processor and electronic equipment
CN115543577A (en) Kubernetes resource scheduling optimization method based on covariates, storage medium and equipment
CN114968482A (en) Server-free processing method and device and network equipment
CN111209197B (en) Application continuous integration test method, system, equipment and storage medium
CN114968277A (en) Method and device for generating master burning program file, computer equipment and medium
CN113392016A (en) Protocol generation method, device, equipment and medium for processing program abnormal condition
CN113296822A (en) Dynamic library-based database system online upgrading method and system
CN112631763A (en) Program changing method and device of host program
CN113722083A (en) Big data processing method and device, server and storage medium
US6496975B1 (en) Method, system, and program for performing conditional program operations
CN111240728A (en) Application program updating method, device, equipment and storage medium
CN116069504B (en) Scheduling method and device for multi-core processor in automatic driving simulation
JP3747663B2 (en) Database control method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant