KR20160003505A - Dynamic module, Method and apparatus for dynamic upgrade having the same - Google Patents

Dynamic module, Method and apparatus for dynamic upgrade having the same Download PDF

Info

Publication number
KR20160003505A
KR20160003505A KR1020140082048A KR20140082048A KR20160003505A KR 20160003505 A KR20160003505 A KR 20160003505A KR 1020140082048 A KR1020140082048 A KR 1020140082048A KR 20140082048 A KR20140082048 A KR 20140082048A KR 20160003505 A KR20160003505 A KR 20160003505A
Authority
KR
South Korea
Prior art keywords
module
dynamic
upgrade
work
core library
Prior art date
Application number
KR1020140082048A
Other languages
Korean (ko)
Other versions
KR101907418B1 (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 KR1020140082048A priority Critical patent/KR101907418B1/en
Publication of KR20160003505A publication Critical patent/KR20160003505A/en
Application granted granted Critical
Publication of KR101907418B1 publication Critical patent/KR101907418B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Abstract

Provided are a dynamic module, a device and method for a dynamic upgrade having the same. The dynamic upgrade device includes: a dynamic module for upgrading a module core library without pausing a module processor for providing the functions of network equipment; and a dynamic upgrade management unit linked with the dynamic module for controlling the upgrade of the dynamic module.

Description

동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법{Dynamic module, Method and apparatus for dynamic upgrade having the same}TECHNICAL FIELD [0001] The present invention relates to a dynamic module, a dynamic upgrade apparatus having the dynamic module,

본 발명은 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법에 관한 것으로, 더욱 상세하게는 네트워크 장비의 가용성을 높이기 위해 네트워크 장비를 이중화하지 않고도 네트워크 모듈 프로세서 자체의 중단 없이, 즉 네트워크 서비스의 중단 없이 네트워크 장비의 소프트웨어 모듈을 동적으로 업그레이드하기 위한 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법에 관한 것이다. The present invention relates to a dynamic module and a dynamic upgrading apparatus and method thereof. More particularly, the present invention relates to a dynamic module and a dynamic upgrading method for the network module without interrupting the network module processor itself, And more particularly, to a dynamic module for dynamically upgrading a software module of a device, and a dynamic upgrade apparatus and method having the same.

고가용성(High Availability, HA) 기능이란 필요한 서비스를 중단 없이 지속적으로 운영이 가능하도록 서비스의 연속성(Continuous Service)을 제공하는 시스템이나 컴포넌트를 나타낸다. 가용성의 정도는 서비스 시간 대비 장애발생 시간의 비율로서 표현된다. 예를 들어, 가용성 100%는 가장 이상적인 수치이나 아무리 견고한 시스템이라도 장애가 발생할 수 있는 확률이 분명이 존재하기 때문에, 높은 수준의 가용성을 제공하는 시스템인 경우 "파이브 나인(Five 9)"으로 명명되는 99.999%로 표현된다. 즉, 일년 중 장애로 인한 다운타임이 52분 미만의 확률로 존재하는 것이다. High Availability (HA) is a system or component that provides continuous service to enable continuous operation without interruption. The degree of availability is expressed as a ratio of service time to failure time. For example, 100% availability is the most ideal number, but because there is a clear probability that a faulty system will ever fail, a system that provides a high level of availability is called "Five Nine" %. That is, there is a probability of less than 52 minutes of downtime due to disability during the year.

일반적으로 서비스의 연속성을 저해하는 요인은 크게 계획된 다운타임(Planned Downtime)과 계획되지 않은 다운타임(Unplanned Downtime)으로 구분된다. 계획된 다운타임 동안에는 시스템 변경, 신규 시스템 도입, 데이터 백업, 소프트웨어 변경 등과 같이 시스템을 운영하는데 필수적인 요인들로 계획된 작업을 수행하며, 계획된 다운타임 동안에도 서비스를 제공하지 못하는 상황은 필수적으로 발생한다. 계획되지 않은 다운타임은 서비스 시스템에 갑자기 발생하는 장애로 인해 발생하며, 장애의 종류와 정도에 따라 복구에 소요되는 시간이 달라지게 되어 다운타임 시간도 달라질 수 있다.In general, factors that impede the continuity of services are classified into Planned Downtime and Unplanned Downtime. During planned downtime, it is imperative to perform planned tasks with the necessary factors to operate the system, such as system change, new system introduction, data backup, software change, etc., and fail to provide service even during planned downtime. Unplanned downtime is caused by a sudden failure in the service system, and depending on the type and severity of the failure, the time required for recovery may vary and downtime may vary.

고가용성 기능이 중요한 이유중의 하나는 서비스 시스템의 다운타임이 곧바로 손실로 이어지기 때문이다. 서비스의 종류와 중요도에 따라 손실액은 달라지겠지만, 일반적으로 네트워크의 경우을 살펴보면 하나의 CORE ROUTER 또는 DNS SERVER의 장애가 전체 네트워크 사용자의 접속 불가 상태를 야기할 수 있으며, 그에 따른 피해손실은 천문학적인 수치일 수 있다. 따라서, 고가용성의 목적은 서비스의 다운타임을 최소화하여 가용성을 극대화하는 것이다. One of the reasons why high availability is important is that the downtime of the service system is immediately lost. Although the amount of loss will vary depending on the type and importance of the service, in general, a failure of a CORE ROUTER or a DNS SERVER may cause the entire network user to be unreachable, and the damage caused thereby may be an astronomical numerical value have. Therefore, the goal of high availability is to maximize availability by minimizing service downtime.

일반적으로 고가용성 기능을 구현하기 위해 하나의 시스템이 다운되더라도 다른 시스템이 서비스를 계속 제공할 수 있도록 하는 이중화 기술을 많이 사용한다. 즉, 네트워크 장비의 고가용성 기능은 관리자가 없는 경우에도 장비의 장애상태를 감시하고, 장애가 감지되면 이중화되어 있는 대기 장비에서 서비스를 처리하도록 하여 서비스의 연속성을 제공하는 것이다.In order to implement the high-availability function in general, a lot of redundancy technology is used so that another system can continue to provide services even if one system is down. That is, the high availability function of the network equipment monitors the failure state of the equipment even if there is no administrator, and provides the continuity of service by processing the service in the redundant standby equipment when a failure is detected.

실제로 이중화를 이용한 HA 기술은 대용량 네트워크 장비에서 필수적으로 제공하는 기능이며, 많은 네트워크 시스템에서 중요한 요소기술로서 구현이 요구된다. 그러나, 이중화를 이용한 HA 기술은 장비를 이중화시켜야 하므로 비용이 증가하는 문제점이 있다. 그에 따라 고가의 대용량 네트워크 장비에서는 이중화를 이용한 HA 기능을 기본적으로 제공하지만, 저가 및 저성능의 네트워크 장비에서는 비용적인 문제로 인해 HA 기능이 전혀 제공되지 않는 문제점이 있다. HA technology using redundancy is indispensable in large-capacity network equipment, and it is required to be implemented as an important element technology in many network systems. However, the HA technology using redundancy has a problem that the cost is increased because the equipment must be duplicated. Accordingly, although expensive high-capacity network equipment basically provides HA function using redundancy, there is a problem that HA function is not provided at all due to a cost problem in low-cost and low-performance network equipment.

따라서, 저가 및 저성능의 네트워크 장비에서도 장애 및 소프트웨어 업그레이드는 필수적으로 발생하며 서비스 다운타임이 발생할 수 있으므로, 장애가 발생하거나 소프트웨어 업그레이드를 수행할 때 서비스를 종료하지 않고 실시간으로 소프트웨어 업그레이드를 수행할 수 있는 동적 소프트웨어 업그레이드 기술이 요구된다.Therefore, failures and software upgrades are indispensable for low-cost and low-performance network equipment, and service downtime may occur, so that when a failure occurs or a software upgrade is performed, the software upgrade can be performed in real- Dynamic software upgrade technology is required.

한국 등록 특허 제10-0871778호("중앙집중형 동적 어드레싱 매니저를 이용한 동적 어드레싱방법 및 장치", 이노패스 소프트웨어, 아이엔시, 2006.07.27 공개)Korean Patent No. 10-0871778 ("Dynamic addressing method and apparatus using a centralized dynamic addressing manager ", InnoPath Software, Inc., published on July 27, 2006)

전술한 문제점을 해결하기 위한 본 발명의 목적은 네트워크 장비의 가용성을 높이기 위해 네트워크 장비를 이중화하지 않고도 네트워크 모듈 프로세서 자체의 중단 없이, 즉 네트워크 서비스의 중단 없이 네트워크 장비의 소프트웨어 모듈을 동적으로 업그레이드하기 위한 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법에 관한 것이다. SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and to provide a method and apparatus for upgrading a software module of a network device without interruption of the network module processor itself, And a dynamic upgrade apparatus and method having the same.

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

전술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 네트워크 장비의 소프트웨어를 동적으로 업그레이드하는 장치에 있어서, 상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서의 중단 없이 모듈 코어 라이브러리를 업그레이드하는 동적 모듈; 및 상기 동적 모듈과 연동하여 상기 동적 모듈의 업그레이드를 제어하는 동적 업그레이드 관리부를 포함하는 것을 특징으로 한다.In accordance with an aspect of the present invention, there is provided an apparatus for dynamically upgrading software of a network device, the method comprising: upgrading a module core library without stopping a module processor for providing functions of the network equipment; Dynamic module; And a dynamic upgrade manager for controlling the upgrade of the dynamic module in association with the dynamic module.

상기 동적 모듈은, 상기 동적 업그레이드 장치로부터 전달된 업그레이드 요청 메시지를 제어워크(Control WORK)로 변환하여 업그레이드를 수행하는 모듈 프레임워크부; 및 상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 프로세서의 중단 없이 상기 모듈 코어 라이브러리를 업그레이드하는 모듈 코어부를 포함하는 것을 특징으로 한다.Wherein the dynamic module comprises: a module framework part for performing an upgrade by converting an upgrade request message transferred from the dynamic upgrade device into a control work; And a module core unit for upgrading the module core library without stopping the module processor using a module framework implementing function for processing the control work.

상기 동적 업그레이드 관리부는, 상기 업그레이드 요청 메시지를 상기 동적 모듈로 전달하는 업그레이드 관리 모듈; 및 상기 동적 모듈의 프로세스 운용여부를 관리하는 프로세스 관리 모듈을 포함하는 것을 특징으로 한다.Wherein the dynamic upgrade management module comprises: an upgrade management module for delivering the upgrade request message to the dynamic module; And a process management module for managing the process operation of the dynamic module.

상기 동적 업그레이드 관리부는, 상기 동적 모듈의 업그레이드를 요청하는 운용자 모듈 업그레이드 명령을 처리하는 커맨드 관리모듈; 상기 동적 모듈의 내부 데이터 동기화를 체크하는 체크포인트 관리 모듈; 및 상기 동적 모듈과의 통신을 위한 메시지를 처리하는 메시지 관리 모듈을 더 포함하는 것을 특징으로 한다.Wherein the dynamic upgrade management unit comprises: a command management module for processing an operator module upgrade command for requesting an upgrade of the dynamic module; A checkpoint management module for checking synchronization of internal data of the dynamic module; And a message management module for processing a message for communication with the dynamic module.

상기 업그레이드 관리 모듈은, 상기 커맨드 관리모듈로부터 상기 운용자 모듈 업그레이드 명령이 전달되면, 상기 동적 모듈의 프로세스 운용여부를 상기 프로세스 관리 모듈로 요청하는 것을 특징으로 한다.The upgrade management module requests the process management module to determine whether the dynamic module is operated or not when the upgrade command is received from the command management module.

상기 업그레이드 관리 모듈은, 상기 동적 모듈의 프로세스가 운용중인 것으로 판단되면 상기 업그레이드 요청 메시지를 상기 동적 모듈로 전달하는 것을 특징으로 한다.And the upgrade management module transfers the upgrade request message to the dynamic module when it is determined that the process of the dynamic module is in operation.

전술한 본 발명의 목적을 달성하기 위한 본 발명의 다른 측면에 따른 외부에서 네트워크 장비의 소프트웨어 업그레이드를 제어하는 동적 업그레이드 장치와 연동하여 동작하는 동적 모듈에 있어서, 상기 네트워크 장비의 기능이 구현된 모듈 코어 라이브러리의 변경 요청 시 모듈 프로세서를 중단하지 않고 상기 모듈 코어 라이브러리를 업그레이하는 모듈 코어부; 및 상기 동적 업그레이드 장치와 연동하여 동작하며, 상기 모듈 코어부를 제어하여 상기 모듈 코어 라이브러리의 업그레이드를 수행하는 모듈 프레임워크부를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a dynamic module operating in conjunction with a dynamic upgrade apparatus for controlling software upgrade of a network device from outside, the dynamic module comprising: A module core unit for upgrading the module core library without interrupting the module processor upon request for change of the library; And a module framework unit that operates in conjunction with the dynamic upgrade apparatus and controls the module core unit to upgrade the module core library.

상기 모듈 프레임워크부는, 상기 동적 업그레이드 장치로부터 전달되는 업그레이드 요청 메시지를 수신하여 제어워크(Control WORK)로 변환하는 메시지 쓰레드; 상기 메시지 쓰레드로부터 상기 워크를 전달받아 버퍼링(Buffering)을 수행하는 워크큐; 및 상기 워크큐로를 통해 전달된 워크를 처리하기 위한 모듈 프레임워크 구현 함수를 상기 모듈 코어부로 요청하는 워크 쓰레드를 포함하는 것을 특징으로 한다.The module framework includes a message thread for receiving an upgrade request message transmitted from the dynamic upgrade apparatus and converting the upgrade request message into a control work; A work queue receiving the work from the message thread and performing buffering; And a work thread for requesting a module framework implementing function for processing a work delivered via the work queue to the module core unit.

상기 메시지 쓰레드는, 상기 업그레이드 요청 메시지가 수신되면, 상기 모듈 코어 라이브러리의 업그레이드를 위한 상기 제어워크를 순차적으로 상기 워크큐로 전달하는 것을 특징으로 한다.And the message thread sequentially transfers the control work for upgrading the module core library to the work queue when the upgrade request message is received.

상기 워크 쓰레드는, 상기 워크큐를 통해 전달된 제어워크의 종류에 따라 모듈 프레임워크 구현 함수를 결정하여 상기 모듈 프레임워크 구현부로 요청하는 것을 특징으로 한다.The work thread determines a module framework implementation function according to the type of the control work delivered through the work queue and requests the module framework implementation unit.

상기 모듈 코어부는, 상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수의 집합을 이용하여 상기 모듈 프로세서를 중단하지 않고 상기 모듈 코어 라이브러리를 업그레이드하는 모듈 프레임워크 구현부; 및 상기 모듈 코어 라이브러리를 구비하며, 상기 모듈 프레임워크 구현부의 제어에 따라 상기 모듈 코어 라이브러리를 수정하는 모듈 코어 라이브러리부를 포함하는 것을 특징으로 한다.Wherein the module core unit comprises: a module framework implementing unit for upgrading the module core library without interrupting the module processor using a set of module framework implementing functions for processing the control work; And a module core library unit having the module core library and modifying the module core library under the control of the module framework implementing unit.

전술한 본 발명의 목적을 달성하기 위한 본 발명의 다른 측면에 따른 동적 업그레이드 장치에서 네트워크 장비의 기능이 구비된 모듈 코어 라이브러리의 업그레이드를 수행하는 방법에 있어서, 상기 모듈 코어 라이브러리의 업그레이드를 위한 업그레이드 요청 메시지를 전달하는 단계; 상기 업그레이드 요청 메시지를 제어워크로 변환하는 단계; 및 상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 이용하여 상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서의 중단 없이 상기 모듈 코어 라이브러리를 업그레이드하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for upgrading a module core library having a function of a network device in a dynamic upgrade apparatus, Transmitting a message; Converting the upgrade request message to a control work; And upgrading the module core library without interrupting a module processor for providing functions of the network equipment using a module framework implementing function for processing the control work.

상기 전달하는 단계는, 상기 모듈 코어 라이브러리를 구비한 동적 단말의 업그레이드 명령을 운영자로부터 전달받는 단계; 상기 동적 단말의 프로세스 운용여부를 확인하는 단계; 및 상기 확인 결과에 기초하여 상기 명령을 실행하기 위한 업그레이드 요청 메시지를 생성하는 단계를 포함하는 것을 특징으로 한다.Wherein the delivering comprises: receiving an upgrade command of a dynamic terminal having the module core library from an operator; Confirming whether or not the dynamic terminal is operating a process; And generating an upgrade request message for executing the command based on the checking result.

상기 운용여부를 확인하는 단계는, 상기 동적 단말의 프로세스가 운용 중이 아니면, 업그레이드를 종료하기 위해 오류 메시지를 전달하는 단계; 및 상기 동적 단말의 프로세스가 운용 중이면, 상기 업그레이드 요청 메시지를 상기 동적 단말로 전달하는 단계를 포함하는 것을 특징으로 한다.The step of confirming whether or not the operation is performed includes the steps of: transmitting an error message to terminate the upgrade if the process of the dynamic terminal is not in operation; And transmitting the upgrade request message to the dynamic terminal if the process of the dynamic terminal is in operation.

상기 모듈 코어 라이브러리를 업그레이드하는 단계는, 상기 모듈 코어 라이브러리의 업그레이드 수행에 필요한 데이터 블록을 복사 및 백업하는 단계; 상기 모듈 코어 라이브러리를 새로운 모듈 코어 라이브러리로 링크시키는 단계; 및 상기 새로운 모듈 코어 라이브러리의 데이터 블록을 복사하며 백업 데이터를 복구하는 단계를 포함하는 것을 특징으로 한다.Upgrading the module core library comprises: copying and backing up a data block necessary for upgrading the module core library; Linking the module core library to a new module core library; And recovering the backup data by copying the data block of the new module core library.

전술한 본 발명의 목적을 달성하기 위한 본 발명의 다른 측면에 따른 외부에서 네트워크 장비의 소프트웨어 업그레이드를 제어하는 동적 업그레이드 장치와 연동하여 동작하는 동적 모듈에서 업그레이드를 수행하는 방법에 있어서, 상기 동적 업그레이드 장치로부터 전달된 업그레이드 요청 메시지를 제어워크로 변환하는 단계; 상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 호출하는 단계; 및 상기 모듈 프레임워크 구현 함수를 이용하여 상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서를 중단하지 않고 모듈 코어 라이브러리를 업그레이드하는 단계를 포함하는 것을 특징으로 한다.In accordance with another aspect of the present invention, there is provided a method for performing an upgrade in a dynamic module operating in conjunction with a dynamic upgrade apparatus for controlling software upgrade of an external network device, Converting the upgrade request message transferred from the upgrade request message into a control work; Calling a module framework implementation function for processing the control work; And upgrading the module core library without interrupting the module processor for providing the function of the network equipment using the module framework implementing function.

상기 요청 메시지를 제어워크로 변환하는 단계는, 상기 모듈 코어 라이브러리의 기능 중단을 요청하는 제1 제어워크를 생성하는 단계; 상기 모듈 코어 라이브러리의 데이터에 대한 백업을 요청하는 제2 제어워크를 생성하는 단계; 새로운 모듈 코어 라이브러리로의 교환을 요청하는 제3 제어워크를 생성하는 단계; 상기 새로운 모듈 코어 라이브러리의 데이터를 복사하고 백업 데이터의 복구를 요청하는 제4 제어워크를 생성하는 단계; 및 업그레이드 완료 후 일반워크를 수행할 것을 요청하는 제5 제어워크를 생성하는 단계를 포함하는 것을 특징으로 한다.Wherein the converting the request message to a control work includes: generating a first control work requesting a function interruption of the module core library; Generating a second control work requesting a backup of data of the module core library; Creating a third control work requesting an exchange to a new module core library; Generating a fourth control work that copies data of the new module core library and requests recovery of backup data; And a fifth control work requesting execution of the general work after completion of the upgrade.

상기 호출하는 단계는, 상기 제1 내지 제5 제어워크에 대응하여 동작하는 제1 내지 제5 모듈 프레임워크 구현 함수를 순차적으로 호출하는 단계를 포함하는 것을 특징으로 한다.The calling step may include sequentially calling first through fifth module framework implementing functions corresponding to the first through the fifth control work.

상기 모듈 코어 라이브러리를 업그레이드하는 단계는, 상기 제1 모듈 프레임워크 구현 함수를 이용하여 현재 수행중인 상기 모듈 코어 라이브러리의 기능을 중단하는 단계; 상기 제2 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 코어 라이브러리의 데이터를 복사 및 백업하는 단계; 상기 제3 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 코어 라이브러리의 링크를 종료한 후 상기 새로운 모듈 코어 라이브러리를 링크시키는 단계; 상기 제4 모듈 프레임워크 구현 함수를 이용하여 상기 새로운 모듈 코어 라이브러리의 데이터 복사 및 백업 데이터를 복구하는 단계; 및 상기 제5 모듈 프레임워크 구현 함수를 이용하여 상기 일반워크를 처리하는 단계를 포함하는 것을 특징으로 한다.Wherein upgrading the module core library comprises: stopping the function of the module core library currently being executed using the first module framework implementation function; Copying and backing up data of the module core library using the second module framework implementing function; Linking the new module core library after terminating the link of the module core library using the third module framework implementation function; Recovering data copy and backup data of the new module core library using the fourth module framework implementation function; And processing the general work using the fifth module framework implementing function.

상술한 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법에 따르면, 동적 모듈의 구성을 외부에서 네트워크 장비의 소프트웨어 업그레이드를 제어하는 장치와 연동하여 동적 업그레이드를 수행하는 모듈 프레임워크 및 네트워크 장비의 핵심기능이 구현된 모듈 코어 라이브러리로 완전히 분리시켜 동작함에 따라 업그레이드하려는 모듈에 대한 분석없이 모듈 프로세스를 종료하지 않고도 모듈 코어 라이브러리 함수만을 실시간 변경하여 동적 소프트웨어 업그레이드를 수행할 수 있다. According to the above-described dynamic module and the dynamic upgrade apparatus and method having the same, the core functions of the module framework and the network equipment for performing the dynamic upgrade by linking the configuration of the dynamic module with the device for controlling the software upgrade of the network equipment from the outside As the module core library is completely separated and operated, it is possible to perform dynamic software upgrade by changing only the module core library function in real time without terminating the module process without analyzing the module to be upgraded.

또한, 본 발명의 실시예에 따르면, Dynamic Patches 방식과는 다르게 소프트웨어 아키텍쳐 프레임워크 기반의 동적 소프트웨어 업그레이드를 수행함에 따라 모든 모듈 개발자는 동적 모듈을 개발할 수 있는 표준 외부 인터페이스를 제공받을 수 있으며, 보다 용이하게 핵심기능을 라이브러리 형태로 개발하고 이를 업그레이드 할 수 있다. In addition, according to the embodiment of the present invention, dynamic software upgrading based on a software architecture framework is performed differently from the dynamic patch method, so that all module developers can be provided with a standard external interface capable of developing a dynamic module, The core functions can be developed in the form of libraries and upgraded.

도 1은 일반적인 이중화를 통한 소프트웨어 업그레이드 기술과 DSU 기술의 일례를 나타내는 도면이다.
도 2는 일반적인 DSU 기술을 이용한 소프트웨어 모듈 업그레이드의 일례를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 동적 업그레이드 장치를 나타내는 도면이다.
도 4는 도 3에 도시한 동적 모듈의 프레임워크를 나타내는 도면이다.
도 5는 도 3에 도시한 동적 모듈의 메시지 처리 절차를 나타내는 도면이다.
도 6은 본 발명의 실시예에 따른 동적 모듈과 전체 동적 업그레이드 소프트웨어 프레임워크간의 인터페이스 절차를 나타내는 도면이다.
도 7 및 도 8은 본 발명의 실시예에 따른 동적 모듈에서의 동적 업그레이드 프로토콜 내부 처리 절차를 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 동적 업그레이드 방법을 나타내는 순서도이다.
1 is a diagram showing an example of a software upgrade technique and a DSU technology through a general redundancy.
2 is a diagram showing an example of software module upgrade using general DSU technology.
3 is a diagram illustrating a dynamic upgrade apparatus according to an embodiment of the present invention.
Fig. 4 is a diagram showing the framework of the dynamic module shown in Fig. 3. Fig.
5 is a diagram showing a message processing procedure of the dynamic module shown in FIG.
6 is a diagram illustrating an interface procedure between a dynamic module and an overall dynamic upgrade software framework according to an embodiment of the present invention.
FIGS. 7 and 8 are diagrams illustrating a procedure of a dynamic upgrade protocol internal processing in a dynamic module according to an embodiment of the present invention.
9 is a flowchart illustrating a dynamic upgrade method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 일반적인 이중화를 통한 소프트웨어 업그레이드 기술과 DSU 기술의 일례를 나타내는 도면이다. 도 2는 일반적인 DSU 기술을 이용한 소프트웨어 모듈 업그레이드의 일례를 나타내는 도면이다. 1 is a diagram showing an example of a software upgrade technique and a DSU technology through a general redundancy. 2 is a diagram showing an example of software module upgrade using general DSU technology.

도 1에 도시한 바와 같이, 일반적으로 고가용성 기능을 구현하기 위한 DSU(Dynamic Software Upgrading)(10) 기술과 같은 동적 소프트웨어 업그레이드 방법은 이중화를 통한 ISSU(In-Service Service Upgrading)(20) 기술과 같이 하드웨어(Hardware) 중복을 고려하지 않으므로 비용적인 측면에서 유리한 기술이나, 구현이 매우 복잡하고 어렵다. DSU(10) 기술은 업그레이드 하려는 소프트웨어 모듈만이 변경되며, 하나의 소프트웨어 모듈이 변경되는 동안 다른 모든 소프트웨어 모듈들은 변함없이 계속 수행되고 있어야 한다. DSU(10) 기술은 하나의 소프트웨어 모듈의 변경이 전체 소프트웨어의 구성 및 무결성에 전혀 영향을 주지 않아야 한다. 또한, DSU(10) 기술은 변경된 소프트웨어 모듈이 변경된 이후에도 변경되기 이전의 상태정보를 그대로 유지하고 있어야 한다. 이러한 요구사항으로 인해 DSU(10) 기술은 소프트웨어 모듈의 업그레이드 시기도 주의하여 결정해야 한다. As shown in FIG. 1, a dynamic software upgrade method such as a DSU (Dynamic Software Upgrading) 10 technique for implementing a high availability function is generally classified into an ISSU (In-Service Service Upgrading) Since hardware redundancy is not taken into consideration, it is advantageous in terms of cost, but implementation is very complicated and difficult. The DSU (10) technology changes only the software modules that are to be upgraded, while all other software modules must remain running while one software module is being modified. The DSU (10) technology should not affect the configuration and integrity of the entire software at all in one software module change. In addition, the DSU 10 technology must maintain state information prior to the change even after the changed software module is changed. Due to these requirements, the DSU (10) technology should also be carefully determined when software modules are upgraded.

예를 들어, 도 2와 같이 DSU(10) 기술을 이용하여 소프트웨어 모듈(30)의 Component A(31)의 함수인 "Func-a()"를 Component A(32)의 "Func-a()"로 업그레이드하는 것으로 가정했을 때, Component A(31)의 "Func-a()"가 수행되는 동안 변경이 일어날 수 있으며 그에 따라 다양한 로컬변수 및 수행중인 정보들의 상태가 달라질 수 있어 업그레이드 후에 상태의 일관성 문제가 발생할 수 있다. 다시 말해, "Func-a()"가 수행되기 이전 또는 수행이 완료된 시점에 "Func-a()"로 변경되어야 일관성이 유지될 수 있다. 이처럼 DSU(10) 기술을 이용하여 소프트웨어 모듈(30)을 업그레이드 하기 위해서는 업그레이드 이전과 이후의 상태가 일관성이 있어야 하며, 업그레이드를 하더라도 상태의 변경이 없는 안정상태(Stable State 또는 Quiescence state)의 시점을 찾아 업그레이드를 수행해야 한다.For example, the (32) "Func-a 'g., Using a DSU (10) described as 2 software modules 30 of the Component A (31) the" Func-a () "of Component A function of () ", The change may occur while the" Func-a () "of Component A 31 is being executed, and thus the status of various local variables and information being executed may be changed, State consistency problems may occur. In other words, it must be changed to "Func-a ' ()" before "Func-a ()" is executed or when the execution is completed, and consistency can be maintained. In order to upgrade the software module 30 using the DSU 10 technology, the state before and after the upgrade must be consistent, and the state of the stable state or the quiescence state in which the state is not changed even when the upgrade is performed You must perform an upgrade.

이러한 동적 소프트웨어 업그레이드 기술의 기반은 대부분 Dynamic Patches를 기반으로 한다. Dynamic Patches 기술을 구현하기 위해서는 Dynamic Patches 지원하는 별도의 전용 컴파일러(compiler) 개발, 소스 변경에 대한 분석을 통한 소스 패치 발생장치(surce ptch gnerator) 개발 및 실제 구동(running) 프로그램에 적용하기 위한 업그레이드 제어툴(udate control tool) 개발을 포함한다. 하지만, 전용 컴파일러 및 패치툴을 개발하는 것은 쉽지 않을 뿐만 아니라, 현재 사용중인 Dynamic Patches 기술들도 논문의 형태로 연구되고 있는 단계이며, 특정 목적에 부합하도록 시스템을 구성하였기 때문에 일반적인 모든 소프트웨어 모듈에 적용하기에는 어려움이 있다. 다시 말해, Dynamic Patch 기반의 DSU(10) 기술은 지금까지 단지 하나의 특정 목적에 부합하도록 연구되고 있어 산업계의 일반적인 모든 소프트웨어에 적용할 수준의 제품 또는 시스템이 요구된다. Most of these dynamic software upgrade technologies are based on Dynamic Patches. To implement Dynamic Patches technology, we developed a separate compiler that supports Dynamic Patches, developed a source patch generator by analyzing source changes, and upgraded to apply to real running programs. And development of tools (udate control tools). However, it is not easy to develop a dedicated compiler and patch tool, and the Dynamic Patches technologies currently being used are being studied in the form of papers. Since the system is configured for a specific purpose, it is applied to all general software modules There are difficulties in doing so. In other words, the DSU (10) technology based on Dynamic Patch has been studied so far to meet only one specific purpose, requiring a level of product or system that is applicable to all general software in the industry.

아래에서는 일반적인 Dynamic Patches 기반의 업그레이드 기술과 다르게 소프트웨어 모듈에 대한 분석을 전혀 수행하지 않고, 소프트웨어 모듈을 자유롭게 제어할 수 있는 본 발명의 실시예에 따른 소프트웨어 아키텍쳐 프레임워크 기반의 동적 소프트웨어 업그레이드 방법을 설명한다.
Hereinafter, a dynamic software upgrade method based on a software architecture framework according to an embodiment of the present invention, which can freely control a software module without analyzing the software module unlike the conventional Dynamic Patches-based upgrade technology, will be described .

도 3은 본 발명의 실시예에 따른 동적 업그레이드 장치를 나타내는 도면이다.3 is a diagram illustrating a dynamic upgrade apparatus according to an embodiment of the present invention.

도 3에 도시한 바와 같이, 본 발명의 실시예에 따른 동적 업그레이드 장치(100)는 동적 업그레이드 소프트웨어 프레임워크(Dynamic Upgrade Software Framework)로서 동적 업그레이드 관리부(110) 및 동적 모듈부(120)를 포함한다. 3, the dynamic upgrade apparatus 100 according to the embodiment of the present invention includes a dynamic upgrade management module 110 and a dynamic module module 120 as a dynamic upgrade software framework .

동적 업그레이드 관리부(110)는 동적 소프트웨어 업그레이드를 수행하기 위해 다양한 기능의 서비스 소프트웨어 매니져를 지원하는 프레임워크 서비스(Framework Services)를 제공한다. 이러한 동적 업그레이드 관리부(110)는 커맨트 관리모듈(Command Manager Module)(111), 업그레이드 관리모듈(Upgrade Manager Module)(112), 프로세스 관리모듈(Process Manager Module)(113), 체크포인트 관리모듈(Check-Point Manager Module)(114) 및 메시지 관리모듈(Message Manager Module)(115)을 포함한다. 본 발명의 실시예에 따른 동적 업그레이드 관리부는 다섯 개의 프레임워크 서비스를 지원하는 소프트웨어 관리모듈로 구성되는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 필요한 서비스 기능에 따라 확장될 수 있다. The dynamic upgrade management unit 110 provides a framework service (Framework Services) that supports a variety of service software managers to perform a dynamic software upgrade. The dynamic upgrade management unit 110 includes a command management module 111, an upgrade management module 112, a process management module 113, -Point Manager Module 114 and a Message Manager Module 115. Although the dynamic upgrade management module according to the embodiment of the present invention is configured as a software management module that supports five framework services, the present invention is not limited thereto and can be extended according to required service functions.

커맨트 관리모듈(111)는 운용자와의 통신을 수행하며, 운용자로부터 전달되는 명령을 처리한다. The comment management module 111 performs communication with the operator and processes commands transmitted from the operator.

프로세스 관리모듈(113)는 네트워크 장비에서 운용되는 모든 동적 모듈의 프로세스를 관리한다. The process management module 113 manages the processes of all the dynamic modules operating in the network equipment.

업그레이드 관리모듈(112)는 동적 모듈에 대한 업그레이드 절차를 수행한다. The upgrade management module 112 performs an upgrade procedure for the dynamic module.

체크포인트 관리모듈(114)는 동적 모듈의 내부 데이터 동기화를 수행한다. The checkpoint management module 114 performs internal data synchronization of the dynamic module.

메시지 관리모듈(115)는 모든 모듈간 상호통신을 위해 전달되는 메시지를 처리한다. The message management module 115 processes messages transferred for mutual communication among all the modules.

한편, 동적 모듈부(120)는 네트워크 장비에 탑재되어 핵심기능을 수행하고 동적으로 업그레이드가 가능한 동적 모듈들(1201-120N)을 포함한다. 동적 모듈들(1201-120N)은 동적 업그레이드를 위해 동적 업그레이드 관리부(110)의 관리 모듈들(111-115)과 표준화된 인터페이스로 상호 연동한다. 이를 위해 동적 모듈들(1201-120N)은 고유의 내부 구조를 가지며, 보다 구체적인 내용은 후술한다. Meanwhile, the dynamic module unit 120 includes dynamic modules 120 1 - 120 N that are mounted on the network equipment and perform core functions and can be dynamically upgraded. The dynamic modules 120 1 - 120 N interoperate with the management modules 111 - 115 of the dynamic upgrade manager 110 for a dynamic upgrade to a standardized interface. To this end, the dynamic modules 120 1 - 120 N have their own internal structure, and more details will be described later.

본 발명의 실시예에 따른 동적 업그레이드 소프트웨어 프레임워크는 각 소프트웨어 모듈간의 상호 의존성을 줄이기 위해 모든 소프트웨어 모듈이 하나의 운영체제(OS, 예를 들어 Linux/Unix/Window 등) 프로세스로 동작하며, 모듈간의 직접적인 함수 호출(Direct Access)을 없애고, 메시지 관리모듈(115)을 통하여 메시지 통신방식의 간접적인 호출(Indirect Access)로 동작한다.
The dynamic upgrade software framework according to an embodiment of the present invention operates in a single OS (e.g., an OS (e.g., Linux / Unix / Window)) process in order to reduce interdependency between software modules, (Direct Access), and acts as an indirect call of the message communication method through the message management module 115.

도 4는 도 3에 도시한 동적 모듈의 프레임워크를 나타내는 도면이다. Fig. 4 is a diagram showing the framework of the dynamic module shown in Fig. 3. Fig.

도 4에 도시한 바와 같이, 본 발명의 실시예에 따른 동적 모듈부(120)의 동적 모듈들(1201-120N)의 구성은 동일하므로 동적 모듈(1201)을 이용하여 구체적으로 설명한다. 4, since the dynamic modules 120 1 -120 N of the dynamic module 120 according to the embodiment of the present invention are identical to each other, the dynamic module 120 1 will be described in detail .

동적 모듈(1201)은 동적 업그레이드 모듈 프레임워크(Dynamic Upgrade Module Framework)로서 모듈 프레임워크부(121) 및 모듈 코어부(122)를 포함한다. The dynamic module 120 1 includes a module framework part 121 and a module core part 122 as a dynamic upgrade module framework.

모듈 프레임워크부(121)는 모듈 프레임워크(Module Framework)로서 동적 업그레이드 관리부(110)와 연동하여 동작한다. 이러한 모듈 프레임워크부(121)는 메시지 쓰레드(Message Thread)(1211), 워크큐(Work Queue)(1212) 및 워크 쓰레드(Work Thread)(1213)를 포함한다. The module framework unit 121 operates in conjunction with the dynamic upgrade management unit 110 as a module framework. The module framework unit 121 includes a message thread 1211, a work queue 1212, and a work thread 1213.

메시지 쓰레드(1211)는 외부로부터 요청 메시지가 전달되면, 요청 메시지를 내부의 워크(WORK)로 변환한다. 그리고, 메시지 쓰레드(1211)는 워크(WORK)를 워크큐(1212)로 전달한다. The message thread 1211 converts the request message into an internal work (WORK) when the request message is transmitted from the outside. Then, the message thread 1211 delivers the work WORK to the work queue 1212.

워크큐(1212)는 메시지 쓰레드(1211)로부터 워크(WORK)를 전달받는다. 워크큐(1212)는 워크(WORK)의 버퍼링(Buffering)을 수행한다. 워크큐(1212)는 소정 시간 후 워크(WORK)를 워크 쓰레드(1213)로 전달한다. The work queue 1212 receives the work WORK from the message thread 1211. The work queue 1212 performs buffering of the work WORK. The work queue 1212 delivers the work WORK to the work thread 1213 after a predetermined time.

워크 쓰레드(1213)는 워크큐(1212)로부터 워크(WORK)를 전달받는다. 워크 쓰레드(1213)는 전달된 워크(WORK)를 모듈 코어부(122)로 전달한다. The work thread 1213 receives the work WORK from the work queue 1212. The work thread 1213 transfers the delivered work WORK to the module core unit 122.

한편, 모듈 코어부(122)는 모듈 코어 동적 라이브러리(Module Core Dynamic Library)로서 네트워크 장비에서 동작하기 위한 실제 모듈의 기능을 수행하며, 모듈 프로세스를 종료하지 않고 모듈 코어 라이브러리를 업그레이드한다. 이러한 모듈 코어부(122)는 모듈 프레임워크 구현부(1221) 및 모듈 코어 라이브러리부(1222)를 포함한다. Meanwhile, the module core unit 122 functions as an actual module for operating in a network equipment as a module core dynamic library, and upgrades the module core library without terminating the module process. The module core section 122 includes a module framework implementation section 1221 and a module core library section 1222.

모듈 프레임워크 구현부(1221)는 워크 쓰레드(1213)가 워크(WORK) 처리를 위해 호출할 수 있는 표준화된 모듈 프레임워크 구현 함수 API(Application Program Interface)의 집합을 구비한다. 모듈 프레임워크 구현부(1221)는 API의 집합을 이용하여 동적 업그레이드 소프트웨어 프레임워크와 연동하여 동적 모듈(1201)의 모듈 코어 라이브러리를 업그레이드한다. 다시 말해, 모듈 프레임워크 구현부(1221)는 핵심기능 변경이 필요한 경우, 동적 모듈의 프로세스를 종료하지 않고 모듈 코어 라이브러리부(1222)의 모듈 코어 라이브러리 함수만을 실시간 변경하여 실제 소프트웨어 모듈 코어 라이브러리의 동적 업그레이드를 수행한다.The module framework implementation unit 1221 includes a set of standardized module framework implementation APIs (application program interfaces) that the work thread 1213 can call for work processing. The module framework implementation unit 1221 upgrades the module core library of the dynamic module 120 1 in conjunction with the dynamic upgrade software framework using a set of APIs. In other words, when a core function change is required, the module framework implementing unit 1221 changes only the module core library function of the module core library unit 1222 in real time without terminating the process of the dynamic module, Perform the upgrade.

모듈 코어 라이브러리부(1222)는 동적 업그레이드가 가능하도록 소프트웨어 단위 모듈의 핵심기능이 동적 라이브러리 형태로 구현된 모듈 코어 라이브러리를 포함한다. The module core library unit 1222 includes a module core library in which core functions of software unit modules are implemented in the form of a dynamic library so that dynamic upgrading is possible.

이처럼 동적 모듈의 동적 업그레이드 모듈 프레임워크는 외부 소프트웨어 프레임워크와 연동하기 위한 모듈 프레임워크부(121)와 네트워크 장비의 핵심기능이 구현된 모듈 코어 라이브러리를 구비한 모듈 코어부(122)를 완전히 분리하고, 모듈 프레임워크부(121)를 통해 모듈 개발자가 동적 모듈을 개발할 수 있도록 표준 외부 인터페이스를 제공하며, 모듈 개발자는 핵심기능을 모듈 코어 라이브러리 형태로 개발하여 모듈 프레임워크에 의해 동적인 소프트웨어 업그레이드를 수행할 수 있다.
As described above, the dynamic upgrade module framework of the dynamic module completely separates the module core portion 122 provided with the module framework portion 121 for interlocking with the external software framework and the module core library in which the core function of the network equipment is implemented , And a module external to the module framework section 121 to allow a module developer to develop a dynamic module. The module developer develops core functions in the form of a module core library and performs a dynamic software upgrade by a module framework can do.

도 5는 도 3에 도시한 동적 모듈의 메시지 처리 절차를 나타내는 도면이다. 5 is a diagram showing a message processing procedure of the dynamic module shown in FIG.

도 5에 도시한 바와 같이, 본 발명의 실시예에 동적 모듈부(120)의 동적 모듈들(1201-120N)의 구성은 동일하므로 동적 모듈(1201)을 이용하여 구체적으로 설명한다.As shown in FIG. 5, the dynamic modules 120 1 -120 N of the dynamic module 120 are the same in the embodiment of the present invention, so that the dynamic module 120 1 will be described in detail.

모듈 프레임워크부(121)의 메시지 쓰레드(1211)는 반복루프(Loop)를 수행하며, 외부로부터 입력되는 요청 메시지(이하, "외부 요청 메시지"라고 함)가 있는 지의 여부를 확인한다. 본 발명의 실시예에서는 동적 모듈(1202)로부터 외부 요청 메시지가 입력되는 것으로 가정한다. 외부 요청 메시지가 있는 경우, 메시지 쓰레드(1211)는 외부 요청 메시지를 워크(WORK)로 변환하여 워크큐(1212)로 전달한다. 이와 유사하게 워크 쓰레드(1213)도 반복루프(Loop)를 수행하며, 워크큐(1212)에 워크(WORK)가 있는 지의 여부를 확인한다. 워크큐(1212)에 워크(WORK)가 존재하면, 워크 쓰레드(1213)는 워크(WORK)를 모듈 코어부(122)로 전달한다. The message thread 1211 of the module framework unit 121 performs an iterative loop and checks whether there is a request message input from the outside (hereinafter referred to as an "external request message"). In the embodiment of the present invention, it is assumed that an external request message is input from the dynamic module 120 2 . If there is an external request message, the message thread 1211 converts the external request message into a work (WORK) and delivers it to the work queue 1212. Similarly, the work thread 1213 also performs an iterative loop and checks whether the work queue 1212 has a work WORK. If the work WORK exists in the work queue 1212, the work thread 1213 delivers the work WORK to the module core unit 122. [

본 발명의 실시예에 따른 외부 요청 메시지는 하나의 워크(WORK)로 처리되며, 이처럼 외부 요청에 대한 작업을 단위 트랜잭션(Transaction)으로 처리함에 따라 모듈의 업그레이드가 필요한 경우 안정상태(Quiescent State)를 확보할 수 있다. 다시 말해, 워크 쓰레드(1213)는 모듈 코어 라이브러리의 업그레이드를 수행할 때, 앞서 수행된 워크(WORK)에 대한 트랜잭션 수행이 완전히 종료된 이후를 동적 모듈의 업그레이드 가능한 안정상태로 판단하여 모듈 업그레이드를 수행한다. 또한, 동적 모듈(1201)의 업그레이드가 수행되는 동안, 외부 요청에 대한 워크(WORK)는 워크큐(1212)에서 버퍼링되고 있으므로 워크 쓰레드(1213)는 현재 진행중인 업그레이드를 종료한 이후에 다시 외부 요청을 처리할 수가 있다.The external request message according to the embodiment of the present invention is processed as one WORK. When the external request is processed as a unit transaction, the module needs to be upgraded in a quiescent state . In other words, when performing the upgrade of the module core library, the work thread 1213 determines that the dynamic operation of the work (WORK) performed before the execution of the previous work is completely completed, do. In addition, while the upgrade of the dynamic module 120 1 is being performed, since the work for the external request is buffered in the work queue 1212, the work thread 1213 is again able to request an external request Can be processed.

다음은 동적 모듈(1201)에서 처리하는 워크(WORK)의 종류를 설명한다. 동적 모듈(1201)은 일반적인 외부 메시지 요청인 경우 "요청워크"로 처리하며, 업그레이드에 대한 외부 메시지 요청인 경우, "업그레이드워크"로 처리한다.The following describes the types of work (WORK) processed by the dynamic module 120 1 . The dynamic module 120 1 processes it as a "request work" in the case of a general external message request and as an "upgrade work" in the case of an external message request for an upgrade.

1. 요청워크(Request WORK): 모듈에서 수행하는 일반적인 워크1. Request Work: A typical work performed by a module

2. 제어워크(Control WORK): 업그레이드워크를 수행하기 위한 다섯 가지 제어워크(CW1-CW5)이며, 필요에 따라 제어목적으로 확장가능2. Control Work: Five control works (CW1-CW5) for performing upgrade work, and can be extended for control purpose if necessary

- 종료워크(TERM WORK)(CW1): 모듈 코어 라이브러리의 중단 요청- TERM WORK (CW1): Request to interrupt the module core library

- 체크포인트아웃워크(CKPT-OUT WORK)(CW2): 동적 업그레이드를 위한 모듈 코어 라이브러리의 중요 데이터에 대한 백업 요청- Checkpoint outwork (CKPT-OUT WORK) (CW2): Module for core dynamic upgrade

- 교환워크(CHNG WORK)(CW3): 새로운 모듈 코어 라이브러리로의 교환 요청- Exchange work (CHNG WORK) (CW3): exchange request to new module core library

- 체크포인트인워크(CKPT-IN WORK)(CW4): 동적 업그레이드 후에 교체된 새로운 모듈 코어 라이브러리에 백업된 중요 데이터를 읽고 복구하라는 요청- CKPT-IN WORK (CW4): New module replaced after dynamic upgrade. Request to read and recover critical data backed up to the core library.

- 시작워크(START WORK)(CW5): 동적 업그레이드 완료 이후 모듈 코어 라이브러리의 기능을 다시 수행하도록 요청- START WORK (CW5): Request to re-perform the functions of the module core library after completing the dynamic upgrade

한편, 워크 쓰레드(1213)는 워크큐(1212)로부터 워크(WORK)가 전달되면, 모듈 코어부(122)의 모듈 프레임워크 구현부(1221)로 해당 워크(WORK)에 대한 모듈 프레임워크 구현 함수를 요청한다. 본 발명의 실시예에 따른 모듈 프레임워크 구현 함수는 다음과 같으며, 필요에 따라 확장가능하다. On the other hand, when the work WORK is transferred from the work queue 1212 to the work thread 1213, the module framework implementation unit 1221 of the module core unit 122 transmits the module framework implementation function Lt; / RTI > A module framework implementation function according to an embodiment of the present invention is as follows, and is expandable as needed.

- processWork: 요청워크를 처리할 경우 호출- processWork: invoked when processing the request work

- termWork: 업그레이드워크 수행중 종료워크를 처리할 경우 호출- termWork: invoked when processing an end work during upgrade work

-checkpointWork: 업그레이드워크 중 체크포인트아웃워크 및 체크포인트인워크를 처리할 경우 호출-checkpointWork: Called when handling Checkpoint Outwork and Checkpoint Inwork during upgrade work.

다음은 동적 모듈(1201)에서 요청워크(Request WORK) 프로토콜 처리 절차를 설명한다. The following describes the Request Work protocol processing procedure in the dynamic module 120 1 .

동적 모듈(1201)에서 모듈 프레임워크부(121)의 메시지 쓰레드(1211)는 동적 모듈(1202)로부터 외부 요청 메시지를 전달받는다(S100). 메시지 쓰레드(1211)는 외부 요청 메시지를 내부에서 처리하기 위한 워크(WORK)로 변환한다(S110). 메시지 쓰레드(1211)는 변환한 워크(WORK)를 워크큐(1212)로 전달한다(S120). 워크큐(1212)는 워크(WORK)의 버퍼링(Buffering)을 수행한다.In the dynamic module 120 1 , the message thread 1211 of the module framework part 121 receives the external request message from the dynamic module 120 2 (S 100). The message thread 1211 converts the external request message into a work (WORK) for internal processing (S110). The message thread 1211 delivers the converted work (WORK) to the work queue 1212 (S120). The work queue 1212 performs buffering of the work WORK.

워크 쓰레드(1213)는 워크(WORK)로부터 하나의 워크(WORK)를 가져온다(S130). 워크 쓰레드(1213)는 워크(WORK)가 요청워크인지의 여부를 판단한다. 워크 쓰레드(1213)는 워크(WORK)가 요청워크이면, 모듈 코어부(122)의 모듈 프레임워크 구현부(1221)로 해당 워크(WORK)에 대한 모듈 프레임워크 구현 함수인 "processWork"를 호출한다(S140). 모듈 코어 라이브러리부(1222)는 "processWork"를 이용하여 해당 워크(WORK)를 처리한다(S150).
The work thread 1213 fetches a work WORK from the work WORK (S130). The work thread 1213 judges whether or not the work WORK is a request work. The work thread 1213 calls the module framework implementation function "processWork" for the work (WORK) to the module framework implementation unit 1221 of the module core unit 122, if the work WORK is a request work (S140). The module core library unit 1222 processes the work WORK using "processWork" (S150).

아래에서는 도 6 내지 도 8을 참고하여 동적 업그레이드 프로토콜 처리 절차를 구체적으로 설명한다. Hereinafter, the dynamic upgrade protocol processing procedure will be described in detail with reference to FIGS. 6 to 8. FIG.

도 6은 본 발명의 실시예에 따른 동적 모듈과 전체 동적 업그레이드 소프트웨어 프레임워크간의 인터페이스 절차를 나타내는 도면이다. 도 6에서는 동적 업그레이드 장치(100)의 동적 업그레이드 관리부(110)와 동적 모듈(1201)간의 인터페이스 절차를 설명한다.6 is a diagram illustrating an interface procedure between a dynamic module and an overall dynamic upgrade software framework according to an embodiment of the present invention. 6, an interface procedure between the dynamic upgrade management unit 110 and the dynamic module 120 1 of the dynamic upgrade apparatus 100 will be described.

도 6에 도시한 바와 같이, 본 발명의 실시예에 따른 운영자는 동적 모듈부(120)의 동적 모듈들(1201-120N) 중 업그레이드가 필요한 동적 모듈(이하, "목표 동적 모듈"이라고 함)에 대하여 새로운 모듈 코어 라이브러리(200)를 작성한다. 그리고, 운영자는 이를 모듈 라이브러리 등록소(300)에 복사한 후 운용자 명령어로 생성된 "운용자 모듈 업그레이드 명령"을 동적 업그레이드 관리부(110)의 커맨트 관리모듈(111)로 입력한다(S200). 본 발명의 실시예에서는 동적 모듈(1201)이 목표 동적 모듈인 것으로 가정하여 설명한다. 여기서, 모듈 라이브러리 등록소(Module Library Repository)는 디스크 등과 같은 메모리를 사용일 수 있다. 그러면 커맨트 관리모듈(111)은 운용자 명령어로 입력된 "운용자 모듈 업그레이드 명령"을 전달받는다.As shown in FIG. 6, an operator according to an embodiment of the present invention may include a dynamic module 120 1 - 120 N of the dynamic module unit 120 (hereinafter, referred to as a "target dynamic module" A new module core library 200 is created. Then, the operator copies it to the module library registry 300 and inputs the "operator module upgrade command" generated by the operator command to the command management module 111 of the dynamic upgrade management unit 110 (S200). In the embodiment of the present invention, it is assumed that the dynamic module 120 1 is a target dynamic module. Here, the Module Library Repository may be a memory such as a disk. Then, the comment management module 111 receives the "operator module upgrade command" input by the operator command.

커맨트 관리모듈(111)은 "운용자 모듈 업그레이드 명령"을 업그레이드 관리모듈(112)로 전달하여 동적 업그레이드를 수행할 것을 요청한다(S210). 업그레이드 관리모듈(112)는 목표 동적 모듈(1201)의 프로세스가 실제로 운용 중인지의 여부를 알려줄 것을 프로세스 관리모듈(113)로 요청한다(S220). 프로세스 관리모듈(113)은 목표 동적 모듈(1201)의 프로세스의 운용여부 결과정보를 업그레이드 관리모듈(112)로 전달한다.The comment management module 111 sends an "operator module upgrade command" to the upgrade management module 112 to request dynamic upgrade (S210). The upgrade management module 112 requests the process management module 113 to inform whether the process of the target dynamic module 120 1 is actually operating or not (S220). The process management module 113 transfers the operation result information of the process of the target dynamic module 120 1 to the upgrade management module 112.

업그레이드 관리모듈(112)은 프로세스 관리모듈(113)로부터 목표 동적 모듈(1201)의 운용여부 결과정보를 전달받는다. 업그레이드 관리모듈(112)은 운용여부 결과정보에 기초하여 목표 동적 모듈(1201)로 업그레이드 요청 메시지를 전달한다(S230). 즉, 업그레이드 관리모듈(112)은 운용여부 결과정보에 기초하여 목표 동적 모듈(1201)의 프로세스가 운용 중이 아닌 것으로 판단되면, 오류 메시지를 커맨트 관리모듈(111)로 전달한다. 목표 동적 모듈(1201)의 프로세스가 운용 중인 것으로 판단되면, 업그레이드 관리모듈(112)은 업그레이드 요청 메시지를 목표 동적 모듈(1201)로 전달한다.The upgrade management module 112 receives the operation result information of the target dynamic module 120 1 from the process management module 113. The upgrade management module 112 transmits an upgrade request message to the target dynamic module 120 1 based on the operational result information (S230). That is, if it is determined that the process of the target dynamic module 120 1 is not in operation based on the operation result information, the upgrade management module 112 transmits an error message to the comment management module 111. If it is determined that the process of the target dynamic module 120 1 is in operation, the upgrade management module 112 transfers the upgrade request message to the target dynamic module 120 1 .

목표 동적 모듈(1201)은 업그레이드 요청 메시지가 전달되면, 동적 모듈 업그레이드 내부절차를 수행한다. 동적 모듈 업그레이드 내부절차의 구체적인 설명은 도 7 및 도 8을 참고하여 후술한다. 목표 동적 모듈(1201)은 동적 모듈 업그레이드가 성공적으로 완료되면 업그레이드 성공완료 메시지를 생성하며, 업그레이드가 성공적으로 완료되지 않으면 업그레이드 실패 메시지를 생성한다. 목표 동적 모듈(1201)은 동적 모듈 업그레이드 성공여부에 따라 업그레이드 성공완료 메시지 또는 업그레이드 실패 메시지를 업그레이드 관리모듈(112)로 전달한다(S240). 업그레이드 관리모듈(112)은 목표 동적 모듈(1201)로부터 업그레이드 성공완료 메시지가 전달되면, 목표 동적 모듈(1201)의 모듈 코어부(122)의 모듈 코어 라이브러리를 새로운 모듈 코어 라이브러리(200)로 변경할 것을 요청한다(S250).The target dynamic module 120 1 performs the dynamic module upgrade internal procedure when an upgrade request message is received. A detailed description of the dynamic module upgrade internal procedure will be given later with reference to FIGS. 7 and 8. FIG. The target dynamic module 120 1 generates an upgrade success completion message upon successful completion of the dynamic module upgrade and generates an upgrade failure message if the upgrade is not successfully completed. The target dynamic module 120 1 transmits an upgrade success completion message or an upgrade failure message to the upgrade management module 112 according to whether the dynamic module upgrade is successful (S240). When the upgrade success completion message is received from the target dynamic module 120 1 , the upgrade management module 112 updates the module core library of the module core part 122 of the target dynamic module 120 1 to the new module core library 200 (S250).

도 7 및 도 8은 본 발명의 실시예에 따른 동적 모듈에서의 동적 업그레이드 프로토콜 내부 처리 절차를 나타내는 도면이다. FIGS. 7 and 8 are diagrams illustrating a procedure of a dynamic upgrade protocol internal processing in a dynamic module according to an embodiment of the present invention.

도 7 및 도 8에 도시한 바와 같이, 본 발명의 실시예에 따른 동적 업그레이드 관리부(110)의 업그레이드 관리모듈(112)은 목표 동적 모듈(1201)로 업그레이드 요청 메시지를 전달한다(S300). 그러면, 목표 동적 모듈(1201)의 모듈 프레임워크부(121)의 메시지 쓰레드(1211)는 반복루프(Loop)를 수행하여 외부 요청 메시지가 있는 지의 여부를 확인한다. 7 and 8, the upgrade management module 112 of the dynamic upgrade management unit 110 according to the embodiment of the present invention delivers the upgrade request message to the target dynamic module 120 1 (S300). Then, the message thread 1211 of the module framework part 121 of the target dynamic module 120 1 performs an iterative loop to check whether there is an external request message.

메시지 쓰레드(1211)는 외부 요청 메시지가 업그레이드 요청 메시지인지를 판단한다. 외부 요청 메시지가 업그레이드 요청 메시지이면, 메시지 쓰레드(1211)는 제어워크(CW1-CW5)를 순차적으로 발생하여 워크큐(1212)에 입력한다. 그러면, 워크 쓰레드(1213)는 워크큐(1212)를 통해 순차적으로 제어워크(CW1-CW5)를 입력받는다(S301). 본 발명의 실시예에 따른 워크 쓰레드(1213)에 입력되는 순서는 종료워크(CW1), 체크포인트아웃워크(CW2), 교환워크(CW3), 체크포인트인워크(CW4) 및 시작워크(CW5)의 순으로 입력된다.The message thread 1211 determines whether the external request message is an upgrade request message. If the external request message is an upgrade request message, the message thread 1211 sequentially generates the control work CW1-CW5 and inputs it to the work queue 1212. [ Then, the work thread 1213 sequentially receives the control works CW1 to CW5 through the work queue 1212 (S301). The order of input to the work thread 1213 according to the embodiment of the present invention is the end work CW1, the check point out work CW2, the exchange work CW3, the check point work CW4 and the start work CW5, .

먼저, 워크 쓰레드(1213)는 도 7과 같이 종료워크(CW1)가 워크큐(1212)로부터 입력되면, 모듈 프레임워크 구현 함수 중 종료워크(CW1)에 대한 모듈 프레임워크 구현 함수 "termWork"를 모듈 코어부(122)로 호출한다(S302). "termWork"가 호출되면, 모듈 코어부(122)는 현재 수행중인 동적 모듈 라이브러리의 모든 기능을 중단하고, 안정상태를 유지하고 대기한다. 7, the work thread 1213 inputs the module framework implementation function "termWork" for the end work CW1 in the module framework implementation function to the module To the core unit 122 (S302). When "termWork" is called, the module core unit 122 stops all functions of the dynamic module library currently being executed, and stays in a stable state and waits.

워크 쓰레드(1213)는 체크포인트아웃워크(CW2)를 워크큐(1212)로부터 입력받는다. 워크 쓰레드(1213)는 체크포인트아웃워크(CW2)가 입력되면, 모듈 프레임워크 구현 함수 중 체크포인트아웃워크(CW2)에 대한 모듈 프레임워크 구현 함수 "checkpointWork"를 모듈 코어부(122)로 호출한다(S303). 이때, 파라미터로 체크포인트아웃(checkpoint-OUT) 임을 명시한다. 모듈 코어부(122)는 "checkpointWork"가 호출되면, 모듈 코어 라이브러리 업그레이드 수행에 필요한 모든 데이터 블록들을 체크포인트 관리모듈(114)로 복사 및 백업한다(S304). The work thread 1213 receives the checkpoint out work CW2 from the work queue 1212. [ When the checkpoint outwork CW2 is input, the work thread 1213 calls the module framework implementation function "checkpointWork" for the checkpoint outwork CW2 in the module framework implementation function to the module core unit 122 (S303). At this time, specify as checkpoint-OUT as a parameter. When the " checkpointWork "is called, the module core unit 122 copies and backs up all the data blocks necessary for performing the module core library upgrade to the checkpoint management module 114 (S304).

워크 쓰레드(1213)는 교환워크(CW3)를 워크큐(1212)로부터 입력받는다. 워크 쓰레드(1213)는 교환워크(CW3)가 입력되면, 현재 링크되어 있는 모듈 코어부(122)의 모듈 코어 라이브러리를 종료시기 위한 종료 함수를 모듈 코어부(122)로 호출한다(S305). 모듈 코어부(122)는 종료 함수가 호출되면, 현재 링크되어 있는 모듈 코어 라이브러리를 종료한다(S306). 예를 들어, 워크 쓰레드(1213)는 모듈 코어부(122)가 Linux로 동작하는 경우 "dlclose" 함수를 호출하며, 다른 OS로 동작하는 경우 해당 OS에 맞는 링크 종료 함수를 호출하여 모듈 코어 라이브러리를 종료시킨 후 메모리에서 삭제시킨다.The work thread 1213 receives the exchange work CW3 from the work queue 1212. [ When the exchange work CW3 is input, the work thread 1213 calls the termination function for terminating the module core library of the currently linked module core unit 122 to the module core unit 122 (S305). When the termination function is called, the module core unit 122 terminates the currently linked module core library (S306). For example, the work thread 1213 calls the "dlclose " function when the module core 122 operates on Linux, and calls the link termination function appropriate to the OS when operating on another OS, Terminate it and delete it from the memory.

현재 링크를 종료시킨 다음 워크 쓰레드(1213)는 모듈 라이브러리 등록소(300)에 저장된 새로운 모듈 코어 라이브러리(200)를 모듈 코어 라이브러리부(1222)로 링크하기 위한 처리를 수행하고(S307), 이를 삽입하는 과정을 수행한다(S308). 예를 들어, 워크 쓰레드(1213)는 모듈 코어부(122)가 Linux로 동작하는 경우 " dlopen" 함수를 호출하며, 다른 OS로 동작하는 경우 해당 OS에 맞는 링크 시작 함수를 호출하여 새로운 모듈 코어 라이브러리(200)를 연결한다. 새로운 모듈 코어 라이브러리(200)의 링크가 정상적으로 완료되면, 워크 쓰레드(1213)는 모듈 코어부(122)에 새로운 모듈 코어 라이브러리(200)가 업그레이드된 것으로 판단한다. The work thread 1213 performs a process for linking the new module core library 200 stored in the module library register 300 to the module core library unit 1222 in step S307, (S308). For example, the work thread 1213 calls the "dlopen" function when the module core unit 122 operates in Linux, and calls the link start function corresponding to the OS when operating as a different OS, (200). When the link of the new module core library 200 is normally completed, the work thread 1213 judges that the new module core library 200 is upgraded to the module core unit 122.

다음 워크 쓰레드(1213)는 도 8과 같이 체크포인트인워크(CW4)를 워크큐(1212)로부터 입력받는다. 워크 쓰레드(1213)는 체크포인트인워크(CW4)가 입력되면, 모듈 프레임워크 구현 함수 중 체크포인트인워크(CW4)에 대한 모듈 프레임워크 구현 함수 "checkpointWork"를 모듈 코어부(122)로 호출한다(S309). 이때, 파라미터로 중 체크포인트인(checkpoint-IN) 임을 명시한다. 모듈 코어부(122)는 "checkpointWork"가 호출되면, 새로운 모듈 코어 라이브러리(200)의 수행에 필요한 모든 데이터 블록들을 체크포인트 관리모듈(114)로부터 복사하며, 백업 데이터를 복구하여 업그레이드 전의 상태와 동일한 상태로 유지한다(S310).The next work thread 1213 receives the work CW4 as a check point from the work queue 1212 as shown in FIG. When the checkpoint work CW4 is input, the work thread 1213 calls the module framework implementation function "checkpointWork" for the work (CW4) as a checkpoint in the module framework implementation function to the module core unit 122 (S309). At this time, it is a checkpoint of the parameter (checkpoint-IN). When the " checkpointWork "is called, the module core unit 122 copies all the data blocks required for the execution of the new module core library 200 from the checkpoint management module 114, and restores the backup data, (S310).

워크 쓰레드(1213)는 시작워크(CW5)를 워크큐(1212)로부터 입력받는다. 워크 쓰레드(1213)는 시작워크(CW5)가 입력되면, 모듈 프레임워크 구현 함수 중 시작워크(CW5)에 대한 모듈 프레임워크 구현 함수 "processWork"를 모듈 코어부(122)로 호출한다(S311). 모듈 코어부(122)는 "processWork"가 호출되면, 모듈 코어 라이브러리의 업그레이드가 성공적으로 완료되어 일반적인 요청워크 처리가 가능한 것으로 판단하여 워크큐(1212)로부터 요청워크를 입력받아 정상적인 처리를 수행한다. The work thread 1213 receives the start work CW5 from the work queue 1212. [ When the start work CW5 is input, the work thread 1213 calls the module framework implementation function "processWork" for the start work CW5 among the module framework implementation functions to the module core unit 122 (S311). When the " processWork "is called, the module core unit 122 judges that the module core library has been successfully upgraded successfully and that general request work processing is possible, and receives the request work from the work queue 1212 and performs normal processing.

마지막으로 메시지 쓰레드(1211)는 업그레이드 완료 메시지를 업그레이드 관리모듈(112)로 전달하여 목표 동적 모듈(1201)의 모듈 코어 라이브러리의 업그레이드 성공을 알린다(S312).
Finally, the message thread 1211 transmits an upgrade completion message to the upgrade management module 112 to inform the upgrade success of the module core library of the target dynamic module 120 1 (S312).

도 9는 본 발명의 실시예에 따른 동적 업그레이드 방법을 나타내는 순서도이다. 도 9에서는 동적 모듈들(1201-120N) 중 동적 모듈(1201)이 목표 동적 모듈인 것으로 가정하여 설명한다.9 is a flowchart illustrating a dynamic upgrade method according to an embodiment of the present invention. In FIG. 9, it is assumed that the dynamic module 120 1 among the dynamic modules 120 1 - 120 N is a target dynamic module.

도 6 및 도 9를 참고하면, 본 발명의 실시예에 따른 동적 업그레이드 장치(100)에서 동적 업그레이드 관리부(110)의 커맨트 관리모듈(111)은 목표 동적 모듈(1201)의 동적 업그레이드를 위한 "운용자 모듈 업그레이드 명령"을 운용자로부터 전달받는다(S400). 커맨트 관리모듈(111)은 "운용자 모듈 업그레이드 명령"을 업그레이드 관리모듈(112)로 전달하여 업그레이드할 것을 요청한다. 업그레이드 관리모듈(112)는 목표 동적 모듈(1201)의 프로세스가 실제로 운용 중인지의 여부를 알려줄 것을 프로세스 관리모듈(113)로 요청한다. 프로세스 관리모듈(113)은 목표 동적 모듈(1201)의 프로세스의 운용여부 결과정보를 업그레이드 관리모듈(112)로 전달한다. 6 and referring to Figure 9, keomaenteu management module 111 of the dynamic upgrade management unit 110 in the dynamic upgrading apparatus 100 according to an embodiment of the present invention "for dynamic upgrading of the target dynamic module (120 1) Quot; operator module upgrade command "from the operator (S400). The comment management module 111 sends an "operator module upgrade command" to the upgrade management module 112 to request upgrade. The upgrade management module 112 requests the process management module 113 to inform whether or not the process of the target dynamic module 120 1 is actually operating. The process management module 113 transfers the operation result information of the process of the target dynamic module 120 1 to the upgrade management module 112.

업그레이드 관리모듈(112)은 프로세스 관리모듈(113)로부터 운용여부 결과정보를 전달받는다(S410). 업그레이드 관리모듈(112)은 운용여부 결과정보에 기초하여 목표 동적 모듈(1201)의 프로세스가 운용 중인지의 여부를 판단한다(S420). The upgrade management module 112 receives operational result information from the process management module 113 (S410). The upgrade management module 112 determines whether the process of the target dynamic module 120 1 is in operation based on the operation result information (S420).

S420 단계의 판단결과, 목표 동적 모듈(1201)의 프로세스가 운용 중이 아니면, 업그레이드 관리모듈(112)은 오류 메시지를 커맨트 관리모듈(111)로 전달하고 동적 소프트웨어 업그레이드 절차를 종료한다. 한편, S420 단계의 판단결과, 목표 동적 모듈(1201)의 프로세스가 운용 중이면, 업그레이드 관리모듈(112)은 업그레이드 요청 메시지를 목표 동적 모듈(1201)로 전달한다(S430).If it is determined in operation S420 that the process of the target dynamic module 120 1 is not in operation, the upgrade management module 112 transmits an error message to the comment management module 111 and terminates the dynamic software upgrade procedure. If it is determined in operation S420 that the process of the target dynamic module 120 1 is in operation, the upgrade management module 112 transmits an upgrade request message to the target dynamic module 120 1 (S 430).

그러면, 목표 동적 모듈(1201)의 모듈 프레임워크부(121)는 업그레이드 요청 메시지를 전달받는다(S430). 모듈 프레임워크부(121)는 업그레이드 요청 메시지를 변환하여 제어워크(CW1-CW5)를 생성하고, 이를 순차적으로 모듈 코어부(122)로 전달한다(S440).Then, the module framework part 121 of the target dynamic module 120 1 receives the upgrade request message (S430). The module framework unit 121 converts the upgrade request message to generate the control work CW1 to CW5 and sequentially transmits the control work to the module core unit 122 at step S440.

구체적으로, 모듈 프레임워크부(121)는 제어워크(CW1,CW2)에 대한 모듈 프레임워크 구현 함수를 모듈 코어부(122)로 호출한다. 모듈 코어부(122)는 현재 수행중인 동적 모듈 라이브러리의 모든 기능을 중단하고, 모듈 코어 라이브러리 업그레이드 수행에 필요한 모든 데이터 블록들이 체크포인트 관리모듈(114)로 복사 및 백업한다(S450). Specifically, the module framework unit 121 calls the module framework implementation function for the control workloads CW1 and CW2 to the module core unit 122. [ The module core unit 122 stops all the functions of the current dynamic module library and copies and backs up all the data blocks necessary for performing the module core library upgrade to the checkpoint management module 114 in operation S450.

모듈 프레임워크부(121)는 제어워크(CW3)에 대한 모듈 프레임워크 구현 함수를 모듈 코어부(122)로 호출한다. 모듈 코어부(122)는 현재 링크되어 있는 모듈 코어 라이브러리를 종료하고, 모듈 라이브러리 등록소(300)에 저장된 새로운 모듈 코어 라이브러리(200)를 모듈 코어 라이브러리부(1222)로 링크한다(S460).The module framework unit 121 calls the module framework implementation function for the control work CW3 to the module core unit 122. [ The module core unit 122 closes the currently linked module core library and links the new module core library 200 stored in the module library registry 300 to the module core library unit 1222 in operation S460.

모듈 프레임워크부(121)는 제어워크(CW4)에 대한 모듈 프레임워크 구현 함수를 모듈 코어부(122)로 호출한다. 모듈 코어부(122)는 새로운 모듈 코어 라이브러리(200)의 수행에 필요한 모든 데이터 블록들을 체크포인트 관리모듈(114)로부터 복사하며, 백업 데이터를 복구하여 업그레이드 전의 상태와 동일한 상태로 유지한다(S470).The module framework unit 121 calls the module framework implementation function for the control work CW4 to the module core unit 122. [ The module core unit 122 copies all data blocks necessary for the execution of the new module core library 200 from the checkpoint management module 114 and restores the backup data to maintain the same state as that before the upgrade (S470) .

모듈 프레임워크부(121)는 제어워크(CW5)에 대한 모듈 프레임워크 구현 함수를 모듈 코어부(122)로 호출한다. 모듈 코어부(122)는 모듈 코어 라이브러리의 업그레이드가 성공적으로 완료되어 일반적인 요청워크 처리가 가능한 것으로 판단하여 워크큐(1212)로부터 요청워크를 입력받아 정상적인 처리를 수행한다(S480). 그리고, 모듈 프레임워크부(121)는 동적 업그레이드 완료 메시지를 업그레이드 관리모듈(112)로 전달하여 목표 동적 모듈(1201)의 모듈 코어 라이브러리의 업그레이드 성공을 알린다(S490).
The module framework unit 121 calls the module framework implementation function for the control work CW5 to the module core unit 122. [ The module core unit 122 determines that the module core library has been successfully upgraded and that the general request work process is possible, receives the request work from the work queue 1212, and performs a normal process (S480). Then, the module framework unit 121 transmits a dynamic upgrade complete message to the upgrade management module 112 to inform the upgrade success of the module core library of the target dynamic module 120 1 (S490).

이상, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하였으나 이는 본 발명의 권리 범위를 한정하는 것으로 해석될 수 없으며, 이하에서 기술되는 특허 청구 범위에 의해 판단되는 본 발명의 사상 및 범위를 벗어나지 않는 한도 내에서 해당 기술 분야에서 통상의 지식을 가진 자에 의해 다양하게 변형되어 실시될 수 있을 것이다. While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, And various modifications may be made by those skilled in the art without departing from the scope of the present invention.

100 : 동적 업그레이드 장치 110 : 동적 업그레이드 관리부
111 : 커맨트 관리모듈 112 : 업그레이드 관리모듈
113 : 프로세스 관리모듈 114 : 체크포인트 관리모듈
115 : 메시지 관리모듈 120 : 동적 모듈부
121 : 모듈 프레임워크부 122 : 모듈 코어부
100: dynamic upgrade device 110: dynamic upgrade management module
111: comment management module 112: upgrade management module
113: Process management module 114: Checkpoint management module
115: message management module 120: dynamic module module
121: module framework part 122: module core part

Claims (19)

네트워크 장비의 소프트웨어를 동적으로 업그레이드하는 장치에 있어서,
상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서의 중단 없이 모듈 코어 라이브러리를 업그레이드하는 동적 모듈; 및
상기 동적 모듈과 연동하여 상기 동적 모듈의 업그레이드를 제어하는 동적 업그레이드 관리부
를 포함하는 것을 특징으로 하는 동적 업그레이드 장치.
1. An apparatus for dynamically upgrading software of a network equipment,
A dynamic module for upgrading the module core library without interruption of a module processor for providing the function of the network equipment; And
A dynamic upgrade management unit operable to control the upgrade of the dynamic module in cooperation with the dynamic module;
The dynamic upgrade apparatus comprising:
제1항에 있어서,
상기 동적 모듈은,
상기 동적 업그레이드 장치로부터 전달된 업그레이드 요청 메시지를 제어워크(Control WORK)로 변환하여 업그레이드를 수행하는 모듈 프레임워크부; 및
상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 프로세서의 중단 없이 상기 모듈 코어 라이브러리를 업그레이드하는 모듈 코어부를 포함하는 것을 특징으로 하는 동적 업그레이드 장치.
The method according to claim 1,
The dynamic module comprises:
A module framework part for converting the upgrade request message transferred from the dynamic upgrading device into a control work and performing upgrading; And
And a module core unit for upgrading the module core library without stopping the module processor using a module framework implementation function for processing the control work.
제2항에 있어서,
상기 동적 업그레이드 관리부는,
상기 업그레이드 요청 메시지를 상기 동적 모듈로 전달하는 업그레이드 관리 모듈; 및
상기 동적 모듈의 프로세스 운용여부를 관리하는 프로세스 관리 모듈을 포함하는 것을 특징으로 하는 동적 업그레이드 장치.
3. The method of claim 2,
Wherein the dynamic upgrade management unit comprises:
An upgrade management module for delivering the upgrade request message to the dynamic module; And
And a process management module for managing whether or not the process of the dynamic module is operated.
제3항에 있어서,
상기 동적 업그레이드 관리부는,
상기 동적 모듈의 업그레이드를 요청하는 운용자 모듈 업그레이드 명령을 처리하는 커맨드 관리모듈;
상기 동적 모듈의 내부 데이터 동기화를 체크하는 체크포인트 관리 모듈; 및
상기 동적 모듈과의 통신을 위한 메시지를 처리하는 메시지 관리 모듈을 더 포함하는 것을 특징으로 하는 동적 업그레이드 장치.
The method of claim 3,
Wherein the dynamic upgrade management unit comprises:
A command management module for processing an operator module upgrade command requesting an upgrade of the dynamic module;
A checkpoint management module for checking synchronization of internal data of the dynamic module; And
Further comprising a message management module for processing messages for communication with the dynamic module.
제4항에 있어서,
상기 업그레이드 관리 모듈은,
상기 커맨드 관리모듈로부터 상기 운용자 모듈 업그레이드 명령이 전달되면, 상기 동적 모듈의 프로세스 운용여부를 상기 프로세스 관리 모듈로 요청하는 것을 특징으로 하는 동적 업그레이드 장치.
5. The method of claim 4,
The upgrade management module includes:
And requests the process management module to inquire whether or not the process of the dynamic module is operated when the operator module upgrade command is transmitted from the command management module.
제5항에 있어서,
상기 업그레이드 관리 모듈은,
상기 동적 모듈의 프로세스가 운용중인 것으로 판단되면 상기 업그레이드 요청 메시지를 상기 동적 모듈로 전달하는 것을 특징으로 하는 동적 업그레이드 장치.
6. The method of claim 5,
The upgrade management module includes:
And the upgrade request message is delivered to the dynamic module if it is determined that the process of the dynamic module is in operation.
외부에서 네트워크 장비의 소프트웨어 업그레이드를 제어하는 동적 업그레이드 장치와 연동하여 동작하는 동적 모듈에 있어서,
상기 네트워크 장비의 기능이 구현된 모듈 코어 라이브러리의 변경 요청 시 모듈 프로세서를 중단하지 않고 상기 모듈 코어 라이브러리를 업그레이하는 모듈 코어부; 및
상기 동적 업그레이드 장치와 연동하여 동작하며, 상기 모듈 코어부를 제어하여 상기 모듈 코어 라이브러리의 업그레이드를 수행하는 모듈 프레임워크부
를 포함하는 것을 특징으로 하는 동적 모듈.
A dynamic module operating in conjunction with a dynamic upgrading device for controlling software upgrades of network equipment from outside,
A module core unit for upgrading the module core library without interrupting a module processor when a module core library in which functions of the network equipment are requested is changed; And
A module framework part operating in conjunction with the dynamic upgrading device and performing an upgrade of the module core library by controlling the module core part,
And a dynamic module.
제7항에 있어서,
상기 모듈 프레임워크부는,
상기 동적 업그레이드 장치로부터 전달되는 업그레이드 요청 메시지를 수신하여 제어워크(Control WORK)로 변환하는 메시지 쓰레드;
상기 메시지 쓰레드로부터 상기 워크를 전달받아 버퍼링(Buffering)을 수행하는 워크큐; 및
상기 워크큐로를 통해 전달된 워크를 처리하기 위한 모듈 프레임워크 구현 함수를 상기 모듈 코어부로 요청하는 워크 쓰레드를 포함하는 것을 특징으로 하는 동적 모듈.
8. The method of claim 7,
Wherein the module framework part comprises:
A message thread for receiving an upgrade request message transmitted from the dynamic upgrade apparatus and converting the upgrade request message into a control work;
A work queue receiving the work from the message thread and performing buffering; And
And a work thread for requesting a module framework implementing function for processing a work delivered via the work queue to the module core unit.
제8항에 있어서,
상기 메시지 쓰레드는,
상기 업그레이드 요청 메시지가 수신되면, 상기 모듈 코어 라이브러리의 업그레이드를 위한 상기 제어워크를 순차적으로 상기 워크큐로 전달하는 것을 특징으로 하는 동적 모듈.
9. The method of claim 8,
The message thread,
And when the upgrade request message is received, transferring the control work for upgrading the module core library sequentially to the work queue.
제9항에 있어서,
상기 워크 쓰레드는,
상기 워크큐를 통해 전달된 제어워크의 종류에 따라 모듈 프레임워크 구현 함수를 결정하여 상기 모듈 프레임워크 구현부로 요청하는 것을 특징으로 하는 동적 모듈.
10. The method of claim 9,
The work thread,
Wherein a module framework implementation function is determined according to a kind of control work delivered through the work queue and the module framework implementation unit requests the module framework implementation function.
제10항에 있어서,
상기 모듈 코어부는,
상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수의 집합을 이용하여 상기 모듈 프로세서를 중단하지 않고 상기 모듈 코어 라이브러리를 업그레이드하는 모듈 프레임워크 구현부; 및
상기 모듈 코어 라이브러리를 구비하며, 상기 모듈 프레임워크 구현부의 제어에 따라 상기 모듈 코어 라이브러리를 수정하는 모듈 코어 라이브러리부를 포함하는 것을 특징으로 하는 동적 모듈.
11. The method of claim 10,
The module core portion includes:
A module framework implementing unit for upgrading the module core library without interrupting the module processor using a set of module framework implementing functions for processing the control work; And
And a module core library unit having the module core library and modifying the module core library under the control of the module framework implementing unit.
동적 업그레이드 장치에서 네트워크 장비의 기능이 구비된 모듈 코어 라이브러리의 업그레이드를 수행하는 방법에 있어서,
상기 모듈 코어 라이브러리의 업그레이드를 위한 업그레이드 요청 메시지를 전달하는 단계;
상기 업그레이드 요청 메시지를 제어워크로 변환하는 단계; 및
상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 이용하여 상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서의 중단 없이 상기 모듈 코어 라이브러리를 업그레이드하는 단계
를 포함하는 것을 특징으로 하는 동적 업그레이드 장치에서의 동적 업그레이드 방법.
A method for performing an upgrade of a module core library having a function of a network equipment in a dynamic upgrade apparatus,
Transferring an upgrade request message for upgrading the module core library;
Converting the upgrade request message to a control work; And
Upgrading the module core library without interruption of a module processor for providing the functionality of the network equipment using a module framework implementation function for processing the control work
And a dynamic upgrade method in the dynamic upgrade apparatus.
제12항에 있어서,
상기 전달하는 단계는,
상기 모듈 코어 라이브러리를 구비한 동적 단말의 업그레이드 명령을 운영자로부터 전달받는 단계;
상기 동적 단말의 프로세스 운용여부를 확인하는 단계; 및
상기 확인 결과에 기초하여 상기 명령을 실행하기 위한 업그레이드 요청 메시지를 생성하는 단계를 포함하는 것을 특징으로 하는 동적 업그레이드 장치에서의 동적 업그레이드 방법.
13. The method of claim 12,
The method of claim 1,
Receiving an upgrade command of a dynamic terminal having the module core library from an operator;
Confirming whether or not the dynamic terminal is operating a process; And
And generating an upgrade request message for executing the command based on the result of the checking.
제13항에 있어서,
상기 운용여부를 확인하는 단계는,
상기 동적 단말의 프로세스가 운용 중이 아니면, 업그레이드를 종료하기 위해 오류 메시지를 전달하는 단계; 및
상기 동적 단말의 프로세스가 운용 중이면, 상기 업그레이드 요청 메시지를 상기 동적 단말로 전달하는 단계를 포함하는 것을 특징으로 하는 동적 업그레이드 장치에서의 동적 업그레이드 방법.
14. The method of claim 13,
The method of claim 1,
If the process of the dynamic terminal is not in operation, transmitting an error message to terminate the upgrade; And
And forwarding the upgrade request message to the dynamic terminal if the process of the dynamic terminal is in operation.
제12항에 있어서,
상기 모듈 코어 라이브러리를 업그레이드하는 단계는,
상기 모듈 코어 라이브러리의 업그레이드 수행에 필요한 데이터 블록을 복사 및 백업하는 단계;
상기 모듈 코어 라이브러리를 새로운 모듈 코어 라이브러리로 링크시키는 단계; 및
상기 새로운 모듈 코어 라이브러리의 데이터 블록을 복사하며 백업 데이터를 복구하는 단계를 포함하는 것을 특징으로 하는 동적 업그레이드 장치에서의 동적 업그레이드 방법.
13. The method of claim 12,
Wherein upgrading the module core library comprises:
Copying and backing up data blocks necessary for upgrading the module core library;
Linking the module core library to a new module core library; And
And copying the data block of the new module core library and restoring the backup data.
외부에서 네트워크 장비의 소프트웨어 업그레이드를 제어하는 동적 업그레이드 장치와 연동하여 동작하는 동적 모듈에서 업그레이드를 수행하는 방법에 있어서,
상기 동적 업그레이드 장치로부터 전달된 업그레이드 요청 메시지를 제어워크로 변환하는 단계;
상기 제어워크를 처리하기 위한 모듈 프레임워크 구현 함수를 호출하는 단계; 및
상기 모듈 프레임워크 구현 함수를 이용하여 상기 네트워크 장비의 기능을 제공하기 위한 모듈 프로세서를 중단하지 않고 모듈 코어 라이브러리를 업그레이드하는 단계
를 포함하는 것을 특징으로 하는 동적 모듈에서의 동적 업그레이드 방법.
1. A method for performing an upgrade in a dynamic module operating in conjunction with a dynamic upgrade apparatus for controlling a software upgrade of a network equipment from outside,
Converting an upgrade request message delivered from the dynamic upgrade apparatus to a control work;
Calling a module framework implementation function for processing the control work; And
Upgrading the module core library without interrupting the module processor for providing the functions of the network equipment using the module framework implementing function
The dynamic upgrade method comprising:
제16항에 있어서,
상기 요청 메시지를 제어워크로 변환하는 단계는,
상기 모듈 코어 라이브러리의 기능 중단을 요청하는 제1 제어워크를 생성하는 단계;
상기 모듈 코어 라이브러리의 데이터에 대한 백업을 요청하는 제2 제어워크를 생성하는 단계;
새로운 모듈 코어 라이브러리로의 교환을 요청하는 제3 제어워크를 생성하는 단계;
상기 새로운 모듈 코어 라이브러리의 데이터를 복사하고 백업 데이터의 복구를 요청하는 제4 제어워크를 생성하는 단계; 및
업그레이드 완료 후 일반워크를 수행할 것을 요청하는 제5 제어워크를 생성하는 단계를 포함하는 것을 특징으로 하는 동적 모듈에서의 동적 업그레이드 방법.
17. The method of claim 16,
The step of converting the request message into a control work includes:
Generating a first control work requesting a function interruption of the module core library;
Generating a second control work requesting a backup of data of the module core library;
Creating a third control work requesting an exchange to a new module core library;
Generating a fourth control work that copies data of the new module core library and requests recovery of backup data; And
And generating a fifth control work requesting to perform a general work after completion of the upgrade.
제17항에 있어서,
상기 호출하는 단계는,
상기 제1 내지 제5 제어워크에 대응하여 동작하는 제1 내지 제5 모듈 프레임워크 구현 함수를 순차적으로 호출하는 단계를 포함하는 것을 특징으로 하는 동적 모듈에서의 동적 업그레이드 방법.
18. The method of claim 17,
Wherein the calling comprises:
And sequentially calling the first through fifth module framework implementing functions corresponding to the first through the fifth control work.
제18항에 있어서,
상기 모듈 코어 라이브러리를 업그레이드하는 단계는,
상기 제1 모듈 프레임워크 구현 함수를 이용하여 현재 수행중인 상기 모듈 코어 라이브러리의 기능을 중단하는 단계;
상기 제2 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 코어 라이브러리의 데이터를 복사 및 백업하는 단계;
상기 제3 모듈 프레임워크 구현 함수를 이용하여 상기 모듈 코어 라이브러리의 링크를 종료한 후 상기 새로운 모듈 코어 라이브러리를 링크시키는 단계;
상기 제4 모듈 프레임워크 구현 함수를 이용하여 상기 새로운 모듈 코어 라이브러리의 데이터 복사 및 백업 데이터를 복구하는 단계; 및
상기 제5 모듈 프레임워크 구현 함수를 이용하여 상기 일반워크를 처리하는 단계를 포함하는 것을 특징으로 하는 동적 모듈에서의 동적 업그레이드 방법.
19. The method of claim 18,
Wherein upgrading the module core library comprises:
Stopping the function of the module core library currently being executed using the first module framework implementing function;
Copying and backing up data of the module core library using the second module framework implementing function;
Linking the new module core library after terminating the link of the module core library using the third module framework implementation function;
Recovering data copy and backup data of the new module core library using the fourth module framework implementation function; And
And processing the general work using the fifth module framework implementation function. ≪ Desc / Clms Page number 21 >
KR1020140082048A 2014-07-01 2014-07-01 Dynamic module, Method and apparatus for dynamic upgrade having the same KR101907418B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140082048A KR101907418B1 (en) 2014-07-01 2014-07-01 Dynamic module, Method and apparatus for dynamic upgrade having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140082048A KR101907418B1 (en) 2014-07-01 2014-07-01 Dynamic module, Method and apparatus for dynamic upgrade having the same

Publications (2)

Publication Number Publication Date
KR20160003505A true KR20160003505A (en) 2016-01-11
KR101907418B1 KR101907418B1 (en) 2018-10-12

Family

ID=55169635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140082048A KR101907418B1 (en) 2014-07-01 2014-07-01 Dynamic module, Method and apparatus for dynamic upgrade having the same

Country Status (1)

Country Link
KR (1) KR101907418B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185318A (en) * 1994-12-29 1996-07-16 Nec Corp Dynamic substitution system of program
KR100871778B1 (en) 2003-10-23 2008-12-05 이노패스 소프트웨어, 아이엔시. Dynamic addressing da using a centralized da manager
KR20110071218A (en) * 2009-12-21 2011-06-29 한국전자통신연구원 Apparatus and method for dynamically updateable game servers
WO2011104825A1 (en) * 2010-02-23 2011-09-01 富士通株式会社 Update method, update device, and update program
KR20120047352A (en) * 2010-11-02 2012-05-14 한국전자통신연구원 Method of updating software in real-time system and apparatus for the same
JP2012141973A (en) * 2010-12-31 2012-07-26 Internatl Business Mach Corp <Ibm> Method and computer program for dynamic software version selection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410703A (en) 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185318A (en) * 1994-12-29 1996-07-16 Nec Corp Dynamic substitution system of program
KR100871778B1 (en) 2003-10-23 2008-12-05 이노패스 소프트웨어, 아이엔시. Dynamic addressing da using a centralized da manager
KR20110071218A (en) * 2009-12-21 2011-06-29 한국전자통신연구원 Apparatus and method for dynamically updateable game servers
WO2011104825A1 (en) * 2010-02-23 2011-09-01 富士通株式会社 Update method, update device, and update program
KR20120047352A (en) * 2010-11-02 2012-05-14 한국전자통신연구원 Method of updating software in real-time system and apparatus for the same
JP2012141973A (en) * 2010-12-31 2012-07-26 Internatl Business Mach Corp <Ibm> Method and computer program for dynamic software version selection

Also Published As

Publication number Publication date
KR101907418B1 (en) 2018-10-12

Similar Documents

Publication Publication Date Title
US6438707B1 (en) Fault tolerant computer system
US9229707B2 (en) Zero downtime mechanism for software upgrade of a distributed computer system
US7076689B2 (en) Use of unique XID range among multiple control processors
US20110191627A1 (en) System And Method for Handling a Failover Event
JPH0145658B2 (en)
CN111327467A (en) Server system, disaster recovery backup method thereof and related equipment
US7366949B2 (en) Distributed software application software component recovery in an ordered sequence
US7509630B2 (en) Software component initialization in an ordered sequence
JP3901060B2 (en) Application update processing method, update processing system, and update processing program
JPH07306794A (en) Distributed system and enhancing method for reliability
US8245190B2 (en) First and second manager components that communicate to initialize and/or shut down software components in an ordered sequence
KR101907418B1 (en) Dynamic module, Method and apparatus for dynamic upgrade having the same
US11954509B2 (en) Service continuation system and service continuation method between active and standby virtual servers
US7406678B2 (en) Manager component resource addition and/or resource removal on behalf of distributed software application
US7873941B2 (en) Manager component that causes first software component to obtain information from second software component
JP6554801B2 (en) Redundant communication device and control method thereof
JP4193754B2 (en) Data duplication method and program
JP3140064B2 (en) How to replace online distributed programs
US20240036852A1 (en) In-service software upgrade centralized database versioning and migration
JP2005157462A (en) System switching method and information processing system
US7627871B2 (en) Instructing management support software of a first software component to set up a communication channel between the first software component and a second software component
KR960007659B1 (en) Cdma
US7587632B2 (en) High availability, high performance software component architecture
KR100462860B1 (en) Setup method of new version software package for open architecture system
KR101585435B1 (en) Intelligent network system and control method the same

Legal Events

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