KR20200047491A - Unnecessary resource recognition and release plan in application hot deploy on distributed system - Google Patents

Unnecessary resource recognition and release plan in application hot deploy on distributed system Download PDF

Info

Publication number
KR20200047491A
KR20200047491A KR1020200050723A KR20200050723A KR20200047491A KR 20200047491 A KR20200047491 A KR 20200047491A KR 1020200050723 A KR1020200050723 A KR 1020200050723A KR 20200050723 A KR20200050723 A KR 20200050723A KR 20200047491 A KR20200047491 A KR 20200047491A
Authority
KR
South Korea
Prior art keywords
application
version
server
service
information
Prior art date
Application number
KR1020200050723A
Other languages
Korean (ko)
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 KR1020200050723A priority Critical patent/KR20200047491A/en
Publication of KR20200047491A publication Critical patent/KR20200047491A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

According to an embodiment of the present disclosure, disclosed is a method for managing a non-stop version of an application in a system including a plurality of application servers. The operations stored in a computer program to perform the method comprise: an operation of recording service performing relation information by each of a plurality of versions of an application stored in the application server; an operation of transmitting at least one of retention version information, the service performing relation information by version, version information of an application performing a service to an application management server; an operation of transmitting unused version information including version information of an application having no service to be performed to the application management service when there is no service which an application of a version other than a newest version among applications of a plurality of versions based on the service performing relation information by version; and an operation of receiving an unused version removal command from the application management server.

Description

분산 환경 시스템에서의 어플리케이션 무중단 배포 시 불필요한 리소스 인식 및 해제 방안{UNNECESSARY RESOURCE RECOGNITION AND RELEASE PLAN IN APPLICATION HOT DEPLOY ON DISTRIBUTED SYSTEM}Unnecessary resource recognition and release plan for non-disruptive deployment of applications in distributed environment systems {UNNECESSARY RESOURCE RECOGNITION AND RELEASE PLAN IN APPLICATION HOT DEPLOY ON DISTRIBUTED SYSTEM}

본 발명은 어플리케이션 무중단 배포 시 응용 프로그램 버전 정합성을 위한 방법 및 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램에 관한 것으로, 보다 구체적으로 분산 환경에서 응용 프로그램 버전 정합성을 위한 방법에 관한 것이다.The present invention relates to a method for conforming application versions during nondisruptive distribution of applications and a computer program stored in a computer-readable medium, and more particularly, to a method for conforming application versions in a distributed environment.

무중단 배포는 서버의 중단 없이 서버에 업데이트 버전의 어플리케이션을 배포하여, 사용자들의 서비스를 중단시키지 않고, 업데이트 버전의 어플리케이션을 서비스를 처리하는 어플리케이션 서버에 적용할 수 있도록 한다. 분산 환경에서는 다수의 서버가 운영이 되며, 다수의 서버에서 서비스의 처리가 함께 이루어질 수 있다.Nondisruptive distribution distributes the updated version of the application to the server without stopping the server, so that the user can apply the updated version of the application to the application server processing the service without interrupting the service of users. In a distributed environment, multiple servers can be operated, and service processing can be performed on multiple servers.

업데이트 버전의 어플리케이션이 배포되는 서버의 순서에 따라 서버마다 어플리케이션의 적용 시점이 달라질 수 있다. 아직 업데이트 버전의 어플리케이션이 적용되지 않은 서버에 최신 버전으로 서비스가 요청되는 경우 오류가 발생하거나 잘못된 결과를 반환하게 되는 문제가 있었다.Depending on the order of the servers in which the updated version of the application is distributed, the application time of each application may vary for each server. When a service is requested with the latest version to a server that has not yet applied the updated version of the application, an error occurs or an incorrect result is returned.

업데이트 버전의 어플리케이션이 배포된 이후에 이전 버전의 어플리케이션이 남아 있게 되면 메모리가 부족하게 되는 문제가 있었다.There was a problem in that if an older version of the application remains after the updated version of the application is distributed, the memory becomes insufficient.

따라서, 분산 환경에서 업데이트 버전으로 어플리케이션의 정합성을 맞추는 방법 및 업데이트 이전 버전의 어플리케이션 리소스를 제거하는 방법에 대한 수요가 당업계에 존재한다.Accordingly, there is a need in the art for a method of matching application consistency with an updated version in a distributed environment and a method of removing application resources of an updated version.

대한민국 등록 특허 KR20027000225호는 응용 프로그램과 관련된 클래스를 로딩하는 방법을 개시한다.Korean Registered Patent KR20027000225 discloses a method of loading a class related to an application program.

본 개시는 전술 한 배경기술에 대응하여 안출 된 것으로, 어플리케이션 무중단 버전 관리 방법을 제공하는 것을 목적으로 한다.The present disclosure has been devised in response to the background art described above, and aims to provide a method for non-disruptive version management of an application.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 어플리케이션 서버의 하나 이상의 프로세서에서 실행되는 경우 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하며 상기 동작들은, 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하는 동작; 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하는 동작; 기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하는 동작; 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하는 동작; 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하는 동작을 포함할 수 있다.A computer program stored in a computer-readable storage medium according to an embodiment of the present disclosure for realizing the above-described problems, wherein the computer program includes a plurality of application servers when executed in one or more processors of the application server In order to perform the following operations for non-disruptive version management in the application, the operations include: transmitting the retained application version information to the application management server; Receiving an updated version of the application file and version information corresponding to the application file from the application management server; Loading an application file of an updated version and determining that a service using the updated version of the application is available; When it is determined that a service using the updated version of the application can be performed, transmitting the application update preparation complete information to the application management server; It may include an operation of receiving an application command of the updated version from the application management server.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 업데이트 버전의 적용 명령은, 상기 복수의 어플리케이션 서버를 포함하는 시스템의 모든 어플리케이션 서버로부터 상기 어플리케이션 관리 서버에 상기 어플리케이션 업데이트 준비 완료 정보가 수신되는 경우 상기 어플리케이션 관리 서버에서 생성될 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, the application command of the updated version includes a system comprising the plurality of application servers When the application update preparation completion information is received from all application servers of the application management server, the application management server may generate the information.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 업데이트 버전의 적용이 실패한 경우, 상기 어플리케이션 관리 서버에 상기 업데이트 버전의 적용 실패 정보를 전송하는 동작; 상기 어플리케이션 관리 서버로부터 업데이트 버전 적용 취소 명령을 수신하는 동작; 및 상기 업데이트 버전의 어플리케이션 이전 버전을 이용하여 서비스를 수행하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, when the application of the updated version fails, the updated version is applied to the application management server. Transmitting failure information of the application; Receiving an update version application cancellation command from the application management server; And performing a service by using the updated version of the application prior to the application.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하는 경우, 상기 업데이트 버전의 어플리케이션을 최신 버전으로 결정하는 동작; 및 상기 업데이트 버전의 적용 명령 수신 이후의 서비스는 상기 업데이트 버전의 어플리케이션을 이용하여 수행하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, when receiving an update version applying command from the application management server, the update Determining the version of the application as the latest version; And the service after receiving the application command of the updated version may further include an operation performed by using the updated version of the application.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 다른 어플리케이션 서버로부터 서비스를 수신하는 동작; 상기 서비스에 버전 정보가 존재하는 경우, 상기 서비스의 버전 정보에 기초하여 식별된 버전의 어플리케이션으로 상기 서비스를 수행하거나, 상기 서비스에 버전 정보가 존재하지 않는 경우, 최신 버전의 어플리케이션으로 상기 서비스를 수행하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, receiving a service from another application server; If version information exists in the service, perform the service with the identified version of the application based on the version information of the service, or if version information does not exist in the service, perform the service with the latest version of the application It may further include the operation.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 방법으로서, 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하는 단계; 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하는 단계; 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하는 단계; 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하는 단계; 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하는 단계를 포함할 수 있다.A method for non-disruptive version management of an application in a system including a plurality of application servers according to an embodiment of the present disclosure for realizing the above-described problems, the method comprising: transmitting retained application version information to an application management server; Receiving an updated version of the application file and version information corresponding to the application file from the application management server; Determining that it is possible to perform a service using the updated version of the application by loading the updated version of the application file; When it is determined that a service using the updated version of the application is available, transmitting application ready preparation information to the application management server; And receiving an application command of an updated version from the application management server.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 어플리케이션 서버로서, 하나 이상의 코어를 포함하는 프로세서; 및 메모리를 포함하고, 상기 프로세서는, 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하고, 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하고, 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하고, 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하고, 그리고 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하도록 할 수 있다.An application server for non-disruptive version management of an application in a system including a plurality of application servers according to an embodiment of the present disclosure for realizing the above-described problems, comprising: a processor including one or more cores; And a memory, wherein the processor transmits retained application version information to an application management server, receives an updated version of the application file and version information corresponding to the application file from the application management server, and the updated version of the application. When it is determined that the service using the updated version of the application can be performed by loading a file, and when it is determined that the service using the updated version of the application can be performed, the application management server receives application preparation preparation information from the application management server. It is possible to transmit and receive an update version application command from the application management server.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 어플리케이션 서버의 하나 이상의 프로세서에서 실행되는 경우 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하며 상기 동작들은, 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하는 동작; 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하는 동작; 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하는 동작; 및 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하는 동작을 포함할 수 있다.A computer program stored in a computer-readable storage medium according to an embodiment of the present disclosure for realizing the above-described problems, wherein the computer program includes a plurality of application servers when executed in one or more processors of the application server In order to perform the following operations for non-disruptive version management in the application, the operations include: recording service performance related information for each version of a plurality of versions of applications stored in the application server; Transmitting at least one of version information of a retained application, information related to service execution for each version, and version information of an application executing the service to an application management server; If there is no service being executed by an application of a version other than the latest version among the plurality of versions of the application based on the service execution related information for each version, version information of the application for which the service being executed does not exist in the application management server Transmitting unused version information including; And receiving an unused version removal command from the application management server.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 제거 명령을 수신하는 경우, 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for application uninterrupted version management in a system including a plurality of application servers, when receiving the unused version removal command, based on the unused version removal command It may further include an operation of determining the version of the application identified by the removal standby state.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 제거 명령을 수신하는 경우, 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보를 상기 어플리케이션 관리 서버에 전송하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for application uninterrupted version management in a system including a plurality of application servers, when receiving the unused version removal command, based on the unused version removal command The method may further include transmitting unused version removal preparation completion information for the identified version of the application to the application management server.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 제거 명령은, 상기 복수의 어플리케이션 서버를 포함하는 시스템의 모든 어플리케이션 서버로부터 상기 어플리케이션 관리 서버에 동일한 버전의 어플리케이션에 대한 미사용 버전 정보가 수신된 경우 상기 어플리케이션 관리 서버에서 상기 미사용 버전 정보에 기초하여 생성될 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system comprising a plurality of application servers, the command to remove unused versions comprises: When unused version information for an application of the same version is received from the application management server from all application servers, the application management server may generate the unused version information based on the unused version information.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system comprising a plurality of application servers, terminate an instance for the identified version of the application based on the unused version information. And recovering the allocated main memory.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 제거 명령을 수신하는 경우, 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for application uninterrupted version management in a system including a plurality of application servers, when receiving the unused version removal command, based on the unused version removal command The method may further include an operation of terminating the instance for the identified version of the application and retrieving the allocated main memory.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 어플리케이션 관리 서버로부터 미사용 버전의 제거 확정 명령을 수신하는 동작; 및 상기 어플리케이션 관리 서버로부터 미사용 버전의 제거 확정 명령을 수신하는 경우, 상기 미사용 버전의 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수하는 동작; 및 상기 미사용 버전의 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션을 저장 매체에서 삭제하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, receiving an unused version removal confirmation command from the application management server; And when an unused version removal confirmation command is received from the application management server, terminating an instance of the identified version of the application based on the unused version removal confirmation command and recovering the allocated main memory. And deleting the identified version of the application from the storage medium based on the removal confirmation command of the unused version.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 미사용 버전의 제거 확정 명령은, 상기 복수의 어플리케이션 서버를 포함하는 시스템의 모든 어플리케이션 서버로부터 상기 어플리케이션 관리 서버에 동일한 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보가 수신된 경우 상기 어플리케이션 관리 서버에서 상기 미사용 버전 제거 준비 완료 정보에 기초하여 생성될 수 있다.In an alternative embodiment of computer program operations to perform the following operations for non-disruptive version management of an application in a system including a plurality of application servers, the removal confirmation command of an unused version includes a system comprising the plurality of application servers. When unused version removal preparation information for an application of the same version is received from all application servers of the application management server, the application management server may generate the unused version removal preparation information.

복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 미사용 버전 제거 명령을 수신하는 경우, 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션으로 수행되는 서비스가 다른 어플리케이션 서버로 전달된 것인지 여부를 결정하는 동작; 및 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션으로 수행되는 서비스가 다른 어플리케이션 서버로 전달된 경우, 어플리케이션 관리 서버에 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션의 버전 제거 불가 정보를 전송하는 동작을 더 포함할 수 있다.In an alternative embodiment of computer program operations to perform the following operations for application uninterrupted version management in a system including a plurality of application servers, when receiving the unused version removal command, based on the unused version removal command Determining whether a service performed by the identified version of the application is delivered to another application server; And when a service performed by the application of the version identified based on the unused version removal command is delivered to another application server, the application management server may not receive version removal information of the version of the application identified based on the unused version removal command. It may further include the operation of transmitting.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 방법으로서, 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하는 단계; 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하는 단계; 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하는 단계; 및 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하는 단계를 포함할 수 있다.As a method for non-disruptive version management of an application in a system including a plurality of application servers according to an embodiment of the present disclosure for realizing the above-described problems, for each version of each of a plurality of versions of applications stored in the application server Recording service related information; Transmitting at least one of version information of a retained application, information related to service execution for each version, and version information of an application executing the service to an application management server; If there is no service being executed by an application of a version other than the latest version among the plurality of versions of the application based on the service execution related information for each version, version information of the application for which the service being executed does not exist in the application management server Transmitting unused version information including; And receiving an unused version removal command from the application management server.

전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 복수의 어플리케이션 서버를 포함하는 시스템에서의 어플리케이션 무중단 버전 관리를 위한 어플리케이션 서버로서, 하나 이상의 코어를 포함하는 프로세서; 및 메모리를 포함하고, 상기 프로세서는, 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하고, 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하고, 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하고, 그리고 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하도록 할 수 있다.An application server for non-disruptive version management of an application in a system including a plurality of application servers according to an embodiment of the present disclosure for realizing the above-described problems, comprising: a processor including one or more cores; And a memory, wherein the processor records service execution related information for each version of a plurality of versions of applications stored in the application server, version information of the application held in the application management server, service related information for each version, and the If at least one of version information of an application performing a service is transmitted, and a service of an application of a version other than the latest version among the plurality of versions of the application is not performed based on the service performance related information for each version, the It is possible to transmit unused version information including version information of an application for which the service being executed does not exist to the application management server, and receive an unused version removal command from the application management server.

본 개시는 어플리케이션 무중단 버전 관리 방법을 제공할 수 있다.The present disclosure may provide a method for non-disruptive version management of an application.

도 1은 본 개시의 일 실시예에 따라 어플리케이션의 무중단 버전 관리를 위한 동작을 수행하는 시스템을 도시한 개략도 도면이다.
도 2는 본 개시의 일 실시예에 따라 어플리케이션 관리 서버의 블록 구성도를 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따라 어플리케이션 서버의 블록 구성도를 도시한 도면이다.
도 4는 본 개시의 일 실시예에 어플리케이션 무중단 버전 관리를 위한 순서도이다.
도 5는 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 순서도이다.
도 6은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 로직을 도시한 블록 구성도이다.
도 7은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 모듈을 도시한 블록 구성도이다.
도 8은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 회로를 도시한 블록 구성도이다.
도 9는 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 수단을 도시한 블록 구성도이다.
도 10은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 로직을 도시한 블록 구성도이다.
도 11은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 모듈을 도시한 블록 구성도이다.
도 12는 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 회로를 도시한 블록 구성도이다.
도 13은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 수단을 도시한 블록 구성도이다.
도 14는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.
1 is a schematic diagram illustrating a system for performing an operation for non-disruptive version management of an application according to an embodiment of the present disclosure.
2 is a block diagram of an application management server according to an embodiment of the present disclosure.
3 is a block diagram of an application server according to an embodiment of the present disclosure.
4 is a flowchart for non-disruptive version management of an application in one embodiment of the present disclosure.
5 is a flowchart for application non-disruptive version management according to another embodiment of the present disclosure.
6 is a block diagram illustrating logic for non-disruptive version management of an application according to an embodiment of the present disclosure.
7 is a block diagram illustrating a module for non-disruptive version management of an application according to an embodiment of the present disclosure.
8 is a block diagram illustrating a circuit for non-disruptive version management of an application according to an embodiment of the present disclosure.
9 is a block diagram showing a means for non-disruptive version management of an application according to an embodiment of the present disclosure.
10 is a block diagram illustrating logic for non-disruptive version management of an application according to another embodiment of the present disclosure.
11 is a block diagram illustrating a module for non-disruptive version management of an application according to another embodiment of the present disclosure.
12 is a block diagram illustrating a circuit for non-disruptive version management of an application according to another embodiment of the present disclosure.
13 is a block diagram illustrating a means for non-disruptive version management of an application according to another embodiment of the present disclosure.
14 is a block diagram of a computing device according to an embodiment of the present disclosure.

다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.Various embodiments are now described with reference to the drawings. In this specification, various descriptions are presented to provide an understanding of the present disclosure. However, it is apparent that these embodiments can be practiced without these specific details.

본 명세서에서 사용되는 용어 "컴포넌트", "모듈", "시스템" 등은 컴퓨터-관련 엔티티, 하드웨어, 펌웨어, 소프트웨어, 소프트웨어 및 하드웨어의 조합, 또는 소프트웨어의 실행을 지칭한다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 처리과정(procedure), 프로세서, 객체, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이들로 제한되는 것은 아니다. 예를 들어, 컴퓨팅 장치에서 실행되는 애플리케이션 및 컴퓨팅 장치 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세서 및/또는 실행 스레드 내에 상주할 수 있다. 일 컴포넌트는 하나의 컴퓨터 내에 로컬화 될 수 있다. 일 컴포넌트는 2개 이상의 컴퓨터들 사이에 분배될 수 있다. 또한, 이러한 컴포넌트들은 그 내부에 저장된 다양한 데이터 구조들을 갖는 다양한 컴퓨터 판독가능한 매체로부터 실행할 수 있다. 컴포넌트들은 예를 들어 하나 이상의 데이터 패킷들을 갖는 신호(예를 들면, 로컬 시스템, 분산 시스템에서 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터 및/또는 신호를 통해 다른 시스템과 인터넷과 같은 네트워크를 통해 전송되는 데이터)에 따라 로컬 및/또는 원격 처리들을 통해 통신할 수 있다.As used herein, the terms “component”, “module”, “system” and the like refer to computer-related entities, hardware, firmware, software, combinations of software and hardware, or execution of software. For example, a component can be, but is not limited to, a process executed on a processor, a processor, an object, a thread of execution, a program, and / or a computer. For example, both the application and the computing device running on the computing device can be components. One or more components can reside within a processor and / or thread of execution. One component can be localized in one computer. One component can be distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored therein. Components are, for example, signals having one or more data packets (e.g., data and / or signals from one component interacting with other components in a local system, distributed system, etc.) through other systems and networks such as the Internet (Transmitted data) may be communicated through local and / or remote processes.

더불어, 용어 "또는"은 배타적 "또는"이 아니라 내포적 "또는"을 의 미하는 것으로 의도된다. 즉, 달리 특정되지 않거나 문맥상 명확하지 않은 경우에, "X는 A 또는 B를 이용한다"는 자연적인 내포적 치환 중 하나를 의미하는 것으로 의도된다. 즉, X가 A를 이용하거나; X가 B를 이용하거나; 또는 X가 A 및 B 모두를 이용하는 경우, "X는 A 또는 B를 이용한다"가 이들 경우들 어느 것으로도 적용될 수 있다. 또한, 본 명세서에 사용된 "및/또는"이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise or unclear in context, "X uses A or B" is intended to mean one of the natural inclusive substitutions. That is, X uses A; X uses B; Or, if X uses both A and B, "X uses A or B" can be applied in either of these cases. It should also be understood that the term “and / or” as used herein refers to and includes all possible combinations of one or more of the listed related items.

또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하는 것으로 이해되어야 한다. 다만, "포함한다" 및/또는 "포함하는"이라는 용어는, 하나 이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다. 또한, 달리 특정되지 않거나 단수 형태를 지시하는 것으로 문맥상 명확하지 않은 경우에, 본 명세서와 청구범위에서 단수는 일반적으로 "하나 또는 그 이상"을 의미하는 것으로 해석되어야 한다.In addition, the terms “comprises” and / or “comprising” should be understood as meaning that the corresponding feature and / or component is present. It should be understood, however, that the terms “comprises” and / or “comprising” do not exclude the presence or addition of one or more other features, elements, and / or groups thereof. In addition, unless otherwise specified or contextually unclear as indicating a singular form, the singular in the specification and claims should generally be construed to mean "one or more."

당업자들은 추가적으로 여기서 개시된 실시예들과 관련되어 설명된 다양한 예시 적 논리적 블록들, 구성들, 모듈들, 회로들, 수단들, 로직들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양쪽 모두의 조합들로 구현될 수 있음을 인식해야 한다. 하드웨어 및 소프트웨어의 상호교환성을 명백하게 예시하기 위해, 다양한 예시 적 컴포넌트들, 블록들, 구성들, 수단들, 로직들, 모듈들, 회로들, 및 단계들은 그들의 기능성 측면에서 일반적으로 위에서 설명되었다. 그러한 기능성이 하드웨어로 또는 소프트웨어로서 구현되는지 여부는 전반적인 시스템에 부과된 특정 어플리케이션(application) 및 설계 제한들에 달려 있다. 숙련된 기술자들은 각각의 특정 어플리케이션들을 위해 다양한 방법들로 설명된 기능성을 구현할 수 있다. 다만, 그러한 구현의 결정들이 본 개시내용의 영역을 벗어나게 하는 것으로 해석되어서는 안된다.Those skilled in the art additionally describe various exemplary logical blocks, configurations, modules, circuits, means, logics, and algorithm steps described in connection with the embodiments disclosed herein in electronic hardware, computer software, or a combination of both. It should be recognized that it can be implemented as To clearly illustrate the interchangeability of hardware and software, various illustrative components, blocks, configurations, means, logics, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented in hardware or as software depends on the specific application and design limitations imposed on the overall system. Skilled technicians can implement the functionality described in various ways for each particular application. However, such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 발명은 여기에 제시된 실시예들로 한정되는 것이 아니다. 본 발명은 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.Descriptions of the presented embodiments are provided so that those skilled in the art of the present disclosure may use or practice the present invention. Various modifications to these embodiments will be apparent to those skilled in the art of the present disclosure. The general principles defined herein can be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present invention is not limited to the embodiments presented herein. The invention should be interpreted in its broadest scope consistent with the principles and novel features presented herein.

본 개시의 일 실시예에서 서버는 서버의 서버 환경을 수행하기 위한 다른 구성들이 포함될 수도 있다. 서버는 임의의 형태의 장치는 모두 포함할 수 있다. 서버는 디지털 기기로서, 랩탑 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 웹 패드, 이동 전화기와 같이 프로세서를 탑재하고 메모리를 구비한 연산 능력을 갖춘 디지털 기기일 수 있다. 서버는 서비스를 처리하는 웹 서버일 수 있다. 전술한 서버의 종류는 예시일 뿐이며 본 개시는 이에 제한되지 않는다. In one embodiment of the present disclosure, the server may include other configurations for performing the server environment of the server. The server can include any type of device. The server is a digital device, and may be a digital device equipped with a processor and having computing power, such as a laptop computer, a notebook computer, a desktop computer, a web pad, and a mobile phone. The server may be a web server that processes services. The above-mentioned types of servers are only examples, and the present disclosure is not limited thereto.

도 1은 본 개시의 일 실시예에 따라 어플리케이션의 무중단 버전 관리를 위한 동작을 수행하는 시스템을 도시한 개략도 도면이다. 본 명세서에서 어플리케이션 관리 서버(100)는 복수의 어플리케이선 서버(200) 각각에 설치되고 서비스에 사용되는 어플리케이션의 버전을 관리하기 위한 동작들을 수행할 수 있다. 어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 각각에 업데이트 버전의 어플리케이션을 배포하고, 미사용 버전의 어플리케이션을 복수의 어플리케이션 서버(200) 각각에 제거하도록 명령할 수 있다. 어플리케이션 서버(200)는 서비스에 대한 요청을 처리하는 서버이다. 어플리케이션 서버(200)는 하나의 서비스를 단독으로 처리할 수 있다. 분산 환경에서는 복수의 서버가 운영이 될 수 있다. 분산 환경에서는 복수의 어플리케이션에 리소스가 나눠져서 배포 되어있을 수 있다. 분산 환경에서는 복수의 어플리케이션 서버(200)에서 하나의 서비스를 함께 처리할 수 있다.1 is a schematic diagram illustrating a system for performing an operation for non-disruptive version management of an application according to an embodiment of the present disclosure. In the present specification, the application management server 100 may perform operations for managing a version of an application installed in each of the plurality of application server 200 and used for a service. The application management server 100 may distribute an updated version of the application to each of the plurality of application servers 200 and instruct the application server 200 to remove the unused version of each application. The application server 200 is a server that processes requests for services. The application server 200 can process one service alone. In a distributed environment, multiple servers can be operated. In a distributed environment, resources may be distributed among multiple applications and distributed. In a distributed environment, a plurality of application servers 200 may process one service together.

도 1에 도시된 시스템(10)의 구성은 간략화 하여 나타낸 예시일 뿐이다. 도 1 에서는 어플리케이션 서버가 3개인 것으로 도시되어 있으나 이는 예시일 뿐이며 어플리케이션 서버의 수, 어플리케이션 관리 서버의 수는 이에 제한되지 않는다.The configuration of the system 10 shown in FIG. 1 is only an example simplified. In FIG. 1, three application servers are shown, but this is only an example, and the number of application servers and the number of application management servers are not limited thereto.

시스템(10)은 시스템에 포함된 서버들을 이용하여 서비스의 처리를 제공한다. 서비스는 어플리케이션 서버(200)가 보유한 어플리케이션을 이용하여 수행될 수 있다. 시스템(10)은 어플리케이션을 이용하여 서비스를 수행하는 하나 이상의 어플리케이션 서버(200) 및 어플리케이션 서버(200) 모두의 어플리케이션의 버전을 관리하는 어플리케이션 관리 서버(100)를 포함할 수 있다. The system 10 provides processing of services using servers included in the system. The service may be performed using an application held by the application server 200. The system 10 may include one or more application servers 200 that perform services using an application and an application management server 100 that manages versions of applications of both the application servers 200.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 보유 어플리케이션 버전 정보를 전송할 수 있다. 보유 어플리케이션은 어플리케이션 서버(200)에 저장되거나, 설치되었거나, 설치되어 서비스의 처리가 가능한 어플리케이션 모두를 포함할 수 있으며, 보유 어플리케이션 버전 정보는 각각의 상태의 어플리케이션 각각의 버전 정보를 포함할 수 있다. The application server 200 may transmit the retained application version information to the application management server 100. The retained application may include all applications stored in the application server 200, installed, or installed and capable of processing a service, and the retained application version information may include version information of each application in each state.

어플리케이션 관리 서버(100)는 관리 시스템(미도시)으로부터 무중단 배포 명령을 수신하는 경우, 복수의 어플리케이션 서버(200) 각각에게 업데이트 버전의 어플리케이션 파일 및 해당 어플리케이션 파일에 대응되는 버전 정보를 전송할 수 있다. 버전 정보는 어플리케이션의 버전을 식별하기 위한 정보로서, 각각의 버전에 고유한 값으로 구성될 수 있다. 버전 정보는 어플리케이션 관리 서버(100)에서 복수의 어플리케이션 서버(200) 각각에게 업데이트 버전의 어플리케이션 파일을 전송하는 무중단 배포를 수행할 때 마다, 어플리케이션 관리 서버(100)에서 하나씩 발급할 수 있다. 어플리케이션 관리 서버(100)에서 발급되는 버전 정보는 다른 버전 정보와 중복되지 않는다. 어플리케이션 관리 서버(100) 및 어플리케이션 서버(200)는 버전 정보를 통해 여러 버전의 어플리케이션 파일을 구분할 수 있다. 예를 들어, 업데이트 버전의 어플리케이션 파일이 대출 이자에 대한 이율 계산 로직인 경우, 대출 이자에 대한 이율 계산 로직에 대한 어플리케이션 파일을 어플리케이션 서버(200)로 전송할 때 마다 어플리케이션 관리 서버(100)는 새로운 버전 정보를 발급할 수 있다. 어플리케이션 관리 서버(100) 및 복수의 어플리케이션 서버(200)는 어제의 대출 이자에 대한 이율 계산 로직은 버전 정보가 1이고 오늘의 대출 이자에 대한 이율 계산 로직은 버전 정보가 2일 경우, 버전 정보를 통해 어느 날짜의 대출 이자에 대한 이율 계산 로직인지 구분할 수 있다.When receiving an uninterrupted distribution command from the management system (not shown), the application management server 100 may transmit the updated version of the application file and version information corresponding to the application file to each of the plurality of application servers 200. The version information is information for identifying the version of the application, and may be configured with values unique to each version. The version information may be issued one by one from the application management server 100 whenever the application management server 100 performs an uninterrupted distribution of transmitting the updated version of the application file to each of the plurality of application servers 200. The version information issued by the application management server 100 does not overlap with other version information. The application management server 100 and the application server 200 may distinguish application files of various versions through version information. For example, if the updated version of the application file is the interest rate calculation logic for the loan interest, the application management server 100 is a new version whenever the application file for the interest rate calculation logic for the loan interest is transmitted to the application server 200 Information can be issued. In the application management server 100 and the plurality of application servers 200, the interest rate calculation logic for yesterday's loan interest is version information 1, and the interest rate calculation logic for today's loan interest is version information when version information is 2. Through this, it is possible to distinguish which date is the interest rate calculation logic for the loan interest.

어플리케이션 관리 서버(100)가 복수의 어플리케이션 서버(200) 각각에게 전달하는 업데이트 버전의 어플리케이션 파일은 배포하고자 하는 새로운 버전의 어플리케이션의 모든 정보를 포함할 수도 있고, 어플리케이션 관리 서버(100)가 복수의 어플리케이션 서버(200) 각각에게 전달하는 업데이트 버전의 어플리케이션 파일은 배포하고자 하는 새로운 버전의 어플리케이션과 이전에 배포된 버전의 차이점만이 반영된 정보를 포함할 수 있다.The updated version of the application file that the application management server 100 delivers to each of the plurality of application servers 200 may include all information of the new version of the application to be distributed, and the application management server 100 may include multiple applications. The updated version of the application file delivered to each of the servers 200 may include information reflecting only the difference between the new version of the application to be distributed and the previously distributed version.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)로부터 수신한 업데이트 버전의 어플리케이션 파일 및 해당 어플리케이션 파일에 대응되는 버전 정보를 버전 별로 별도의 저장소에 저장할 수 있다. 어플리케이션 서버(200)는 업데이트 버전으로 서비스가 요청되는 경우 업데이트 버전으로 서비스의 처리가 가능하도록 업데이트 버전의 어플리케이션 파일을 로드 할 수 있다. 어플리케이션 서버(200)는 수신한 업데이트 버전의 어플리케이션 파일로 서비스의 처리가 가능하도록 로드 된 경우 어플리케이션 관리 서버(100)로 어플리케이션 업데이트 준비 완료 정보를 전송할 수 있다.The application server 200 may store the updated version of the application file received from the application management server 100 and version information corresponding to the application file in a separate storage for each version. The application server 200 may load the updated version of the application file to enable processing of the service with the updated version when a service is requested with the updated version. When the application server 200 is loaded to enable processing of a service with the received update version of the application file, the application management server 100 may transmit the application update preparation completion information to the application management server 100.

어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 모두로부터 동일한 버전의 어플리케이션 업데이트 준비 완료 정보를 수신하는 경우, 복수의 어플리케이션 서버(200) 각각에 업데이트 버전의 어플리케이션 적용 명령을 전송할 수 있다.The application management server 100 may transmit an application application command of the updated version to each of the plurality of application servers 200 when receiving the same version of the application update preparation complete information from all of the plurality of application servers 200.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)로부터 업데이트 버전의 적용 명령을 수신하는 경우, 업데이트 버전의 어플리케이션을 최신 버전으로 결정할 수 있다. 어플리케이션 서버(200)는 이후 수신한 서비스를 업데이트한 최신 버전의 어플리케이션을 이용하여 수행할 수 있다. 어플리케이션 서버(200)는 서비스를 수신하는 경우 서비스가 수행될 어플리케이션의 버전 정보를 부여할 수 있다. 서비스는 서비스가 완료될 때까지 처음에 어플리케이션 서버(200)로부터 부여 받은 버전의 어플리케이션으로 서비스가 수행될 수 있다. 즉, 하나의 서비스는 서비스 처리의 정합성을 위하여 하나의 버전의 어플리케이션으로 처리될 수 있다. 어플리케이션 서버1(200)은 어플리케이션 서버2(201)로부터 서비스를 수신하는 경우, 수신한 서비스에 버전 정보가 존재하는지 여부를 판단할 수 있다. 어플리케이션 서버1(200)은 어플리케이션 서버2(201)로부터 수신한 서비스에 버전 정보가 존재하는 경우, 해당 버전으로 서비스를 수행할 수 있다. 어플리케이션 서버1(200)은 어플리케이션 서버2(201)로부터 수신한 서비스에 버전 정보가 존재하지 않는 경우, 최신 버전의 어플리케이션으로 서비스를 수행할 수 있다.When receiving the application command of the updated version from the application management server 100, the application server 200 may determine the updated version of the application as the latest version. The application server 200 may then perform using the latest version of the application that updated the received service. When receiving the service, the application server 200 may provide version information of an application to be performed. The service may be performed with a version of the application initially received from the application server 200 until the service is completed. That is, one service may be processed as one version of the application for consistency of service processing. When receiving a service from the application server 2 (201), the application server 1 (200) may determine whether version information exists in the received service. When the version information exists in the service received from the application server 2 201, the application server 1 200 may perform the service with the corresponding version. If the version information does not exist in the service received from the application server 2 201, the application server 1 200 may perform the service with the latest version of the application.

어플리케이션 서버(200)는 업데이트 버전의 어플리케이션을 최신 버전으로 결정하는 과정에 문제가 생겨 적용에 실패한 경우, 업데이트 버전의 적용 실패로 판단할 수 있다. 어플리케이션 서버(200)는 업데이트 버전의 적용이 실패한 경우, 업데이트 버전의 적용 실패에 관한 정보를 어플리케이션 관리 서버(100)에 전송할 수 있다.If the application server 200 fails to apply due to a problem in the process of determining the updated version of the application as the latest version, it may be determined that the application of the updated version has failed. When the application of the updated version fails, the application server 200 may transmit information regarding the failure to apply the updated version to the application management server 100.

어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 중 적어도 하나로부터 업데이트 버전의 적용 실패에 관한 정보를 수신하는 경우, 업데이트 버전의 적용 취소 명령을 생성할 수 있다. 어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 각각에 업데이트 버전의 적용 취소 명령을 전송할 수 있다.The application management server 100 may generate a command for canceling the application of the updated version when receiving information about a failure to apply the updated version from at least one of the plurality of application servers 200. The application management server 100 may transmit an application version cancel command to each of the plurality of application servers 200.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)로부터 업데이트 버전의 적용 취소 명령을 수신하는 경우, 업데이트 버전의 어플리케이션을 최신 버전으로의 결정을 취소할 수 있다. 어플리케이션 서버(200)는 이후 수신한 서비스를 업데이트 이전 버전의 어플리케이션을 이용하여 수행할 수 있다.When the application server 200 receives a command to cancel the application of the updated version from the application management server 100, the application server 200 may cancel the determination of the updated version of the application as the latest version. The application server 200 may then perform the received service using an application of a version prior to the update.

어플리케이션 관리 서버(100)는 업데이트 버전의 어플리케이션 배포의 성공 여부를 저장할 수 있다. 어플리케이션 서버(200) 중 업데이트 버전의 어플리케이션을 최신 버전으로 결정하는 과정에 문제가 생겨 중지된 서버는 재가동 시 어플리케이션 관리 서버(100)에 최신 버전의 어플리케이션과 전달된 어플리케이션들의 이용 여부를 확인할 수 있다. 어플리케이션 서버(200) 중 업데이트 버전의 어플리케이션을 최신 버전으로 결정하는 과정에 문제가 생겨 중지된 서버는 보유하고 있는 업데이트 버전의 어플리케이션 파일을 적용하거나 적용 취소할 수 있다. 중단 후 재 가동된 어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 현재 가용중인 어플리케이션의 버전 정보와 어플리케이션 파일을 요청할 수 있다. The application management server 100 may store whether the application distribution of the updated version is successful. Among the application servers 200, the server that is stopped due to a problem in determining an updated version of the application as the latest version may check whether the latest version of the application and the delivered applications are used to the application management server 100 when restarting. Among the application servers 200, a server that is stopped due to a problem in determining an updated version of an application as the latest version may apply or cancel the application file of the updated version. The application server 200 restarted after the interruption may request version information and application files of an application currently available to the application management server 100.

본 개시의 일 실시예의 복수의 어플리케이션 서버(200)에 대한 버전 관리 방법을 이용하여 복수의 어플리케이션 서버(200)에서 서비스를 처리하는 어플리케이션의 버전 정합성을 유지할 수 있다. 어플리케이션 서버(200)에서 서비스를 처리하는 어플리케이션의 버전 정합성을 유지함으로써 복수의 어플리케이션 서버(200)가 서비스를 처리하는 경우에 발생할 수 있는 오류를 방지할 수 있어 복수의 어플리케이션 서버(200)의 서비스 처리 성능을 향상시킬 수 있다. 어플리케이션 서버(200)에서 서비스를 처리하는 어플리케이션의 버전 정합성을 유지함으로써 복수의 어플리케이션 서버가 서비스를 처리하는 경에 발생할 수 있는 오류를 방지할 수 있어 복수의 어플리케이션 서버(200)의 서비스 처리에 대한 신뢰성을 향상시킬 수 있다.A version control method for a plurality of application servers 200 according to an embodiment of the present disclosure may maintain version consistency of applications processing services in the plurality of application servers 200. The application server 200 maintains version consistency of applications that process services, thereby preventing errors that may occur when a plurality of application servers 200 process services, thereby processing services of a plurality of application servers 200 Performance can be improved. Reliability of service processing of the plurality of application servers 200 can be prevented by preventing errors that may occur when a plurality of application servers process services by maintaining version consistency of applications that process services in the application server 200 Improve it.

어플리케이션 서버(200)는 별도의 저장소에 저장되어 관리되고 있는 복수의 버전의 어플리케이션에 대한 정보를 기록할 수 있다. 어플리케이션 서버(200)는 별도의 저장소에 저장되어 관리되고 있는 어플리케이션 각각의 버전 별로 어떤 서비스가 수행되고 있는지에 대한 정보를 기록할 수 있다. 어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 보유 어플리케이션 버전 정보를 전송할 수 있다. 예를 들어, 어플리케이션 서버(200)는 어플리케이션 A의 버전1, 버전2 및 버전3을 보유하고 있다는 버전 정보를 어플리케이션 관리 서버(100)에 전송할 수 있다. 어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 버전 별로 어떤 서비스가 수행되고 있는지에 대한 정보를 전송할 수 있다. 예를 들어, 어플리케이션 서버(200)는 버전1로 수행 중인 서비스는 없고, 버전2로 서비스1과 서비스2가 수행 중이고, 그리고 버전3으로 서비스3이 수행 중이라는 정보를 어플리케이션 관리 서버(100)에 전송할 수 있다. 어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 서비스를 수행 중인 어플리케이션의 버전 정보를 전송할 수 있다. 예를 들어, 버전2 및 버전3으로 서비스가 수행 중이라는 정보를 어플리케이션 관리 서버(100)에 전송할 수 있다. 어플리케이션 서버(200)는 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션으로 수행 중인 서비스가 존재하는지 여부를 판단할 수 있다. 어플리케이션 관리 서버(100)는 버전 별 서비스 수행 정보에 기초하여 복수의 어플리케이션 서버(200)에서 서비스를 수행 중이 아닌 버전을 식별할 수 있다. 어플리케이션 서버(200)는 수행 중인 서비스가 존재하지 않는 버전의 어플리케이션에 관하여 해당 버전을 미사용 버전으로 판단할 수 있다. 어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 미사용 버전 정보를 전송할 수 있다. 어플리케이션 서버(200)는 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다. 인스턴스는 어플리케이션 서버에서 해당 버전으로 서비스를 처리하기 위해 어플리케이션 파일을 실행중인 상태일 수 있다. 어플리케이션 서버(200)는 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 관해 메인 메모리에서 제거할 수 있다. 어플리케이션 서버(200)는 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 관해 보조기억장치인 하드 디스크에서는 설치와 저장을 종료하지 않고 유지할 수도 있다.The application server 200 may record information about a plurality of versions of applications that are stored and managed in separate storages. The application server 200 may record information on which service is being performed for each version of each application that is stored and managed in a separate storage. The application server 200 may transmit the retained application version information to the application management server 100. For example, the application server 200 may transmit version information indicating that version 1, version 2, and version 3 of application A are transmitted to the application management server 100. The application server 200 may transmit information about what service is being performed for each version to the application management server 100. For example, the application server 200 does not have a service running in version 1, and service 1 and service 2 are running in version 2, and service 3 is running in version 3 to the application management server 100. Can transmit. The application server 200 may transmit version information of an application performing a service to the application management server 100. For example, information indicating that the service is being performed in version 2 and version 3 may be transmitted to the application management server 100. The application server 200 may determine whether there is a service being executed as an application of a version other than the latest version of the plurality of versions of the application, based on information related to service execution for each version. The application management server 100 may identify a version that is not performing a service in a plurality of application servers 200 based on service performance information for each version. The application server 200 may determine the corresponding version as an unused version for an application of a version in which the service being performed does not exist. The application server 200 may transmit unused version information to the application management server 100. The application server 200 may terminate the instance of the identified version of the application based on the unused version information and recover the allocated main memory. The instance may be running an application file in order to process a service in a corresponding version on the application server. The application server 200 may remove a version of the application identified from the unused version information from the main memory. The application server 200 may maintain the installation and storage on the hard disk, which is the auxiliary storage device, for the version of the application identified based on the unused version information without ending installation and storage.

어플리케이션 관리 서버(100)는 모든 어플리케이션 서버(200)로부터 상기 어플리케이션 관리 서버(100)에 동일한 버전의 어플리케이션에 대한 미사용 버전 정보가 수신된 경우 상기 어플리케이션 관리 서버(100)에서 상기 미사용 버전 정보에 기초하여 미사용 버전 제거 명령을 생성할 수 있다. 어플리케이션 관리 서버(100)는 모든 어플리케이션 서버(200) 각각에 미사용 버전 제거 명령을 전송할 수 있다.The application management server 100 is based on the unused version information in the application management server 100 when unused version information for the same version of the application is received from the application management server 100 from all the application servers 200. An unused version removal command can be generated. The application management server 100 may transmit an unused version removal command to each of all application servers 200.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)로부터 미사용 버전 제거 명령을 수신할 수 있다. 어플리케이션 서버(200)는 수신한 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정할 수 있다. 제거 대기 상태로 결정된 버전의 어플리케이션은 이후 어플리케이션 관리 서버(100)로부터 미사용 제거 확정 명령을 수신하는 경우, 저장 매체에서 삭제될 수 있다. 어플리케이션 서버(200)는 수신한 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다. 인스턴스는 어플리케이션 서버에서 해당 버전으로 서비스를 처리하기 위해 어플리케이션 파일을 실행중인 상태일 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 할당된 메인 메모리를 제거할 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 보조기억장치인 하드 디스크에서는 설치와 저장을 종료하지 않고 유지할 수도 있다. 어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정하는 경우 미사용 버전에 대해 제거 준비 완료로 판단할 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보를 상기 어플리케이션 관리 서버(100)에 전송할 수 있다.The application server 200 may receive an unused version removal command from the application management server 100. The application server 200 may determine an application of the identified version as a standby for removal based on the received unused version removal command. The version-determined application determined to be removed may be deleted from the storage medium when an unused removal confirmation command is received from the application management server 100. The application server 200 may terminate the instance of the identified version of the application based on the received unused version removal command and recover the allocated main memory. The instance may be running an application file in order to process a service in a corresponding version on the application server. The application server 200 may remove the main memory allocated for the identified version of the application based on the unused version removal command. The application server 200 may maintain the installation and storage on the hard disk, which is the auxiliary storage device, for the version of the application identified based on the unused version removal command, without ending installation and storage. The application server 200 may determine that the unused version is ready to be removed, if the application of the identified version is determined to be in the standby state for removal based on the uninstall command of the version identified based on the unused version removal command. The application server 200 may transmit unused version removal preparation completion information for the identified version of the application to the application management server 100 based on the unused version removal command.

어플리케이션 관리 서버(100)는 모든 어플리케이션 서버(200)로부터 상기 어플리케이션 관리 서버(100)에 동일한 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보를 수신한 경우 상기 미사용 버전 제거 준비 완료 정보에 기초하여 미사용 버전의 제거 확정 명령을 생성할 수 있다. 어플리케이션 관리 서버(100)는 모든 어플리케이션 서버(200) 각각에 미사용 버전의 제거 확정 명령을 전송할 수 있다.The application management server 100 receives unused version removal preparation completion information for an application of the same version from all application servers 200 to the application management server 100 based on the unused version removal preparation completion information. You can generate an order to confirm the removal. The application management server 100 may transmit an unused version removal confirmation command to each of the application servers 200.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)로부터 미사용 버전의 제거 확정 명령을 수신하는 경우, 상기 미사용 버전의 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다. 인스턴스는 어플리케이션 서버에서 해당 버전으로 서비스를 처리하기 위해 어플리케이션 파일을 실행중인 상태일 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 메인 메모리에서 제거할 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 저장 매체에서 제거할 수 있다. 어플리케이션 서버(200)는 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 보조기억장치인 하드 디스크에서 설치와 저장을 종료할 수 있다.When the application server 200 receives a confirmation command to remove an unused version from the application management server 100, the application server 200 terminates an instance for the identified version of the application based on the removal confirmation command to remove the unused version, and allocates the allocated main memory. Can be recovered. The instance may be running an application file in order to process a service in a corresponding version on the application server. The application server 200 may remove the identified version of the application from the main memory based on the unused version removal confirmation command. The application server 200 may remove the application of the identified version from the storage medium based on the unused version removal confirmation command. The application server 200 may end the installation and storage on the hard disk that is the auxiliary storage device for the identified version of the application based on the unused version removal confirmation command.

어플리케이션 서버(200)는 업데이트 버전의 어플리케이션이 배포하고자 하는 새로운 버전의 어플리케이션의 모든 정보를 포함하는 경우, 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 해당 파일 전체를 보조기억장치인 하드 디스크에서 제거할 수 있다. 어플리케이션 서버(200)는 업데이트 버전의 어플리케이션이 배포하고자 하는 새로운 버전의 어플리케이션과 이전에 배포된 버전의 차이점만이 반영된 정보를 포함하는 경우, 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 관해 해당 파일 전체를 제거하는 것이 아니라, 업데이트 버전을 미사용 버전과 파일을 합쳐 보조기억 장치인 하드 디스크에서 설치와 저장을 유지할 수 있다. When the updated version of the application includes all the information of the new version of the application to be distributed, the application server 200 hardly uses the entire file as an auxiliary storage device for the identified version of the application based on the unused version removal confirmation command. It can be removed from the disc. When the updated version of the application includes information that reflects only the difference between the new version of the application to be distributed and the previously distributed version, the application server 200 relates to the identified version of the application based on the unused version removal confirmation command. Rather than removing the entire file, the updated version can be merged with the unused version to keep the installation and storage on the secondary storage hard disk.

각각의 서비스는 동기 연동 방식 또는 비동기 연동 방식으로 다른 어플리케이션을 호출하거나 다른 어플리케이션 서버를 호출하여 처리될 수 있다. 동기 연동 방식은, 하나의 어플리케이션 서버가 다른 어플리케이션 서버에게 서비스에 관하여 호출을 하는 경우, 호출된 서비스에 관하여 결과를 수신할 때까지 기다리는 방식을 의미한다. 비동기 연동 방식은, 하나의 어플리케이션 서버가 다른 어플리케이션 서버에게 서비스에 관하여 호출을 하는 경우, 호출된 서비스에 관하여 결과를 수신하는 지 여부와 관계없이 다른 서비스를 수행하는 방식을 의미한다.Each service can be processed by calling another application or calling another application server in a synchronous or asynchronous connection method. The synchronous interworking method refers to a method in which one application server waits until a result is received with respect to the called service when the application server makes a call to the service. The asynchronous interworking method means a method in which one application server performs another service regardless of whether or not a result is received in relation to the called service when the application server makes a call to the service.

어플리케이션 서버(200)에서 서비스가 동기 연동 방식으로 수행될 수 있다. 어플리케이션 서버1(200)이 어플리케이션 서버2(201)에게 서비스를 요청할 수 있다. 어플리케이션 서버1(200)은 서비스를 요청한 어플리케이션 서버2(201)로부터 해당 서비스에 대한 처리 완료를 수신하기 전까지 해당 서비스가 수행되는 어플리케이션 버전에 관해 미사용 버전으로 판단하지 않을 수 있다.In the application server 200, a service may be performed in a synchronous interlocking manner. The application server 1 200 may request a service from the application server 2 201. The application server 1 200 may not determine an unused version of the application version on which the service is performed until the service server 2 201 requesting the service receives the processing completion for the service.

어플리케이션 서버(200)에서 서비스가 비동기 연동 방식으로 수행될 수 있다. 어플리케이션 서버1(200)이 어플리케이션 서버2(201)에게 서비스를 요청할 수 있다. 어플리케이션 서버1(200)은 미사용 버전 제거 명령을 수신하는 경우, 상기 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션으로 수행되는 서비스가 다른 어플리케이션 서버로 전달된 것인지 여부를 판단할 수 있다. 어플리케이션 서버1(200)은 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션으로 수행되는 서비스가 어플리케이션 서버2(201)로 전달되었으면, 해당 버전의 버전 제거 불가 정보를 생성할 수 있다. 어플리케이션 서버1은(200) 어플리케이션 관리 서버(100)에 버전 제거 불가 정보를 전송할 수 있다.In the application server 200, a service may be performed in an asynchronous interlocking manner. The application server 1 200 may request a service from the application server 2 201. When receiving the unused version removal command, the application server 1 200 may determine whether a service performed with the identified version of the application is delivered to another application server based on the unused version removal command. If the service performed by the application of the identified version is transmitted to the application server 2 201 based on the unused version removal command, the application server 1 200 may generate version removal information of the corresponding version. The application server 1 may transmit version non-removal information to the application management server 100.

어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 중 적어도 하나로부터 버전 제거 불가 정보를 수신하는 경우, 버전 제거 불가 정보에 기초하여 식별되는 버전의 어플리케이션에 대한 미사용 버전 제거 취소 명령을 생성할 수 있다. 어플리케이션 관리 서버(100)는 복수의 어플리케이션 서버(200) 모두에게 미사용 버전 제거 취소 명령을 전송할 수 있다.When receiving version non-removal information from at least one of the plurality of application servers 200, the application management server 100 may generate an unused version removal cancel command for the identified version of the application based on the version non-removal information. have. The application management server 100 may transmit an unused version removal cancel command to all of the plurality of application servers 200.

어플리케이션 서버(200)가 어플리케이션 관리 서버(100)로부터 미사용 버전 제거 취소 명령을 수신하는 경우, 상기 미사용 버전 제거 취소 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 제거 대기 상태를 취소할 수 있다. 어플리케이션 서버(200)가 어플리케이션 관리 서버(100)로부터 미사용 버전 제거 취소 명령을 수신하는 경우, 상기 미사용 버전 제거 취소 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스 종료와 메인 메모리 회수를 취소할 수 있다.When the application server 200 receives a command for canceling an unused version removal from the application management server 100, it is possible to cancel the removal standby state for the identified version of the application based on the unused version removal cancel command. When the application server 200 receives a command for canceling an unused version removal from the application management server 100, it is possible to cancel the instance termination and main memory recovery for the identified version of the application based on the unused version removal cancel command. .

본 개시의 다른 일 실시예의 복수의 어플리케이션 서버(200)에 대한 버전 관리 방법을 이용하여 복수의 어플리케이션 서버(200)에서 수행중인 서비스가 존재하지 않는 불필요한 버전을 제거할 수 있다. 어플리케이션 서버(200)에서 불필요한 버전을 제거함으로써 복수의 어플리케이션 서버(200)의 메모리(230)를 효율적으로 사용함에 따라 어플리케이션 서버(200)의 서비스 처리 성능을 향상시킬 수 있다.By using a version management method for a plurality of application servers 200 according to another embodiment of the present disclosure, unnecessary versions in which a service being performed by the plurality of application servers 200 does not exist may be removed. By removing unnecessary versions from the application server 200, as the memory 230 of the plurality of application servers 200 is efficiently used, service processing performance of the application server 200 can be improved.

도 2는 본 개시의 일 실시예에 따라 어플리케이션 관리 서버의 블록 구성도를 도시한 도면이다.2 is a block diagram of an application management server according to an embodiment of the present disclosure.

어플리케이션 관리 서버(100)는 네트워크부(110), 프로세서(120), 메모리(130)를 포함할 수 있다. 프로세서(120)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 어플리케이션 무중단 버전 배포 관리를 수행할 수 있다.The application management server 100 may include a network unit 110, a processor 120, and a memory 130. The processor 120 may read a computer program stored in the memory 130 to perform application non-disruptive version distribution management according to an embodiment of the present disclosure.

네트워크부(110)는 송신부 및 수신부를 포함할 수 있다. 네트워크부는 네트워크 접속을 위한 유/무선 인터넷 모듈을 포함할 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다. 유선 인터넷 기술로는 XDSL(Digital Subscriber Line), FTTH(Fibers to the home), PLC(Power Line Communication) 등이 이용될 수 있다.The network unit 110 may include a transmitter and a receiver. The network unit may include a wired / wireless Internet module for network access. Wireless Internet technology (Wireless LAN) (Wi-Fi), Wibro (Wireless broadband), Wimax (World Interoperability for Microwave Access), HSDPA (High Speed Downlink Packet Access) may be used. As a wired Internet technology, digital subscriber line (XDSL), fibers to the home (FTTH), and power line communication (PLC) may be used.

네트워크부(110)는 근거리 통신 모듈을 포함하여, 서비스 처리 장치와 비교적 근거리에 위치하고 근거리 통신 모듈을 포함한 전자 장치와 데이터를 송수신할 수 있다. 근거리 통신(short range communication) 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. 본 개시의 일 실시예에서, 네트워크부는 네트워크의 연결 상태 및 네트워크의 송수신 속도를 감지할 수 있다. 네트워크부를 통해 수신된 데이터는 메모리를 통해 저장되거나, 또는 근거리 통신 모듈을 통해 근거리에 있는 다른 전자장치들로 전송될 수 있다.The network unit 110 includes a short-range communication module, and is located at a relatively short distance from the service processing device and transmits and receives data to and from an electronic device including the short-range communication module. Bluetooth, radio frequency identification (RFID), infrared data association (IrDA), ultra wideband (UWB), ZigBee, etc. may be used as short range communication technology. In one embodiment of the present disclosure, the network unit may detect a connection state of the network and a transmission / reception speed of the network. Data received through the network unit may be stored through a memory or may be transmitted to other electronic devices at a short distance through a short range communication module.

네트워크부(110)는 업데이트 버전의 어플리케이션 파일을 외부 컴퓨팅 장치로부터 수신할 수 있다. 업데이트 버전의 어플리케이션 파일을 외부 컴퓨팅 장치로부터 네트워크부(110)가 수신하여, 프로세서(120)에 전달할 수 있다. 네트워크부(110)는 복수의 어플리케이션 서버(200)의 네트워크부(210) 각각에게 업데이트 버전의 어플리케이션 파일 및 해당 어플리케이션 파일에 대응되는 버전 정보를 전송할 수 있다.The network unit 110 may receive the updated version of the application file from the external computing device. The network unit 110 may receive the updated version of the application file from the external computing device and transmit it to the processor 120. The network unit 110 may transmit the updated version of the application file and version information corresponding to the application file to each of the network units 210 of the plurality of application servers 200.

네트워크부(110)는 복수의 어플리케이션 서버(200)의 네트워크부(210) 모두로부터 동일한 버전의 어플리케이션 업데이트 준비 완료 정보를 수신할 수 있다. 프로세서(120)는 복수의 어플리케이션 서버(200)의 네트워크부(210) 모두로부터 동일한 버전의 어플리케이션 업데이트 준비 완료 정보를 수신하는 경우 업데이트 버전의 어플리케이션 적용 명령을 생성할 수 있다. 네트워크부(110)는 복수의 어플리케이션 서버(200)의 네트워크부(210) 각각에 업데이트 버전의 어플리케이션 적용 명령을 전송할 수 있다.The network unit 110 may receive information about the application update preparation completion of the same version from all of the network units 210 of the plurality of application servers 200. The processor 120 may generate an application application command of the updated version when receiving the same version of the application update preparation complete information from all of the network units 210 of the plurality of application servers 200. The network unit 110 may transmit an update version application application command to each of the network units 210 of the plurality of application servers 200.

네트워크부(110)는 복수의 어플리케이션 서버(200)의 네트워크부(210) 중 적어도 하나로부터 업데이트 버전의 적용 실패에 관한 정보를 수신할 수 있다. 프로세서(120)는 복수의 어플리케이션 서버(200) 중 적어도 하나로부터 업데이트 버전의 적용 실패에 관한 정보를 수신하는 경우 업데이트 버전의 적용 취소 명령을 생성할 수 있다. 네트워크부(110)는 복수의 어플리케이션 각각에 업데이트 버전의 적용 취소 명령을 전송할 수 있다.The network unit 110 may receive information on the failure to apply the updated version from at least one of the network units 210 of the plurality of application servers 200. When receiving information about a failure to apply the updated version from at least one of the plurality of application servers 200, the processor 120 may generate a command to cancel the application of the updated version. The network unit 110 may transmit an application version cancellation command to each of the plurality of applications.

메모리(130)는 업데이트 버전의 어플리케이션 배포의 성공 여부를 저장할 수 있다. 메모리(130)는 어플리케이션 서버로부터 전송된 보유 어플리케이션 버전 정보를 저장할 수 있다. The memory 130 may store whether the application distribution of the updated version is successful. The memory 130 may store retained application version information transmitted from the application server.

프로세서(120)는 하나 이상의 코어로 구성될 수 있으며, 스레드, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 서비스 처리 위한 프로세서를 포함할 수 있다. 프로세서(120)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 서비스 처리 방법을 수행할 수 있다. 또한, 본 개시의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.The processor 120 may be composed of one or more cores, threads, a central processing unit (CPU) of a computing device, a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU: tensor processing unit), and a processor for data analysis and service processing. The processor 120 may read a computer program stored in the memory 130 to perform a service processing method according to an embodiment of the present disclosure. Further, the computer program executed in the computing device according to an embodiment of the present disclosure may be a CPU, GPGPU, or TPU executable program.

프로세서(120)는 메모리(130)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 어플리케이션 무중단 버전 관리를 수행할 수 있다.The processor 120 may read a computer program stored in the memory 130 to perform application non-disruptive version management according to an embodiment of the present disclosure.

네트워크부(110)는 모든 어플리케이션 서버(200)의 네트워크부(210)로부터 상기 어플리케이션 관리 서버(100)에 동일한 버전의 어플리케이션에 대한 미사용 버전 정보를 수신할 수 있다. 프로세서(120)는 상기 미사용 버전 정보에 기초하여 미사용 버전 제거 명령을 생성할 수 있다. 네트워크부(110)는 모든 어플리케이션 서버(200)의 네트워크부(210) 각각에 미사용 버전 제거 명령을 전송할 수 있다.The network unit 110 may receive unused version information for an application of the same version from the network unit 210 of all application servers 200 to the application management server 100. The processor 120 may generate an unused version removal command based on the unused version information. The network unit 110 may transmit an unused version removal command to each of the network units 210 of all application servers 200.

네트워크부(110)는 모든 어플리케이션 서버(200)의 네트워크부(210)로부터 동일한 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보를 수신할 수 있다. 프로세서(120)는 상기 미사용 버전 제거 준비 완료 정보에 기초하여 미사용 버전의 제거 확정 명령을 생성할 수 있다. 네트워크부(110)는 모든 어플리케이션 서버(200)의 네트워크부(210) 각각에 미사용 버전의 제거 확정 명령을 전송할 수 있다.The network unit 110 may receive unused version removal preparation completion information for the same version of the application from the network unit 210 of all application servers 200. The processor 120 may generate an unused version removal confirmation command based on the unused version removal preparation completion information. The network unit 110 may transmit an unused version removal confirmation command to each of the network units 210 of all application servers 200.

도 3은 본 개시의 일 실시예에 따라 어플리케이션 서버의 블록 구성도를 도시한 도면이다.3 is a block diagram of an application server according to an embodiment of the present disclosure.

어플리케이션 서버(200)는 네트워크부(210), 프로세서(220), 메모리(230)를 포함할 수 있다. 프로세서(220)는 메모리(230)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 어플리케이션 무중단 버전 배포를 수행할 수 있다.The application server 200 may include a network unit 210, a processor 220, and a memory 230. The processor 220 may read a computer program stored in the memory 230 to perform application non-disruptive version distribution according to an embodiment of the present disclosure.

네트워크부(210)는 송신부 및 수신부를 포함할 수 있다. 네트워크부는 네트워크 접속을 위한 유/무선 인터넷 모듈을 포함할 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access) 등이 이용될 수 있다. 유선 인터넷 기술로는 XDSL(Digital Subscriber Line), FTTH(Fibers to the home), PLC(Power Line Communication) 등이 이용될 수 있다.The network unit 210 may include a transmitter and a receiver. The network unit may include a wired / wireless Internet module for network access. Wireless Internet technology (Wireless LAN) (Wi-Fi), Wibro (Wireless broadband), Wimax (World Interoperability for Microwave Access), HSDPA (High Speed Downlink Packet Access) may be used. As a wired Internet technology, digital subscriber line (XDSL), fibers to the home (FTTH), and power line communication (PLC) may be used.

프로세서(220)는 하나 이상의 코어로 구성될 수 있으며, 스레드, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치 (GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 데이터 분석, 서비스 처리 위한 프로세서를 포함할 수 있다. 프로세서(220)는 메모리(230)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 서비스 처리 방법을 수행할 수 있다. 또한, 본 개시의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 컴퓨터 프로그램은 CPU, GPGPU 또는 TPU 실행가능 프로그램일 수 있다.The processor 220 may be composed of one or more cores, threads, a central processing unit (CPU) of a computing device, a general purpose graphics processing unit (GPGPU), and a tensor processing unit (TPU: tensor processing unit), and a processor for data analysis and service processing. The processor 220 may read a computer program stored in the memory 230 to perform a service processing method according to an embodiment of the present disclosure. Further, the computer program executed in the computing device according to an embodiment of the present disclosure may be a CPU, GPGPU, or TPU executable program.

네트워크부(210)는 근거리 통신 모듈을 포함하여, 서비스 처리 장치와 비교적 근거리에 위치하고 근거리 통신 모듈을 포함한 전자 장치와 데이터를 송수신할 수 있다. 근거리 통신(short range communication) 기술로 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(IrDA, infrared Data Association), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다. 본 개시의 일 실시예에서, 네트워크부는 네트워크의 연결 상태 및 네트워크의 송수신 속도를 감지할 수 있다. 네트워크부를 통해 수신된 데이터는 메모리를 통해 저장되거나, 또는 근거리 통신 모듈을 통해 근거리에 있는 다른 전자장치들로 전송될 수 있다.The network unit 210 includes a short-range communication module, and is located at a relatively short distance from the service processing device, and may transmit and receive data to and from an electronic device including the short-range communication module. Bluetooth, radio frequency identification (RFID), infrared data association (IrDA), ultra wideband (UWB), ZigBee, etc. may be used as short range communication technology. In one embodiment of the present disclosure, the network unit may detect a connection state of the network and a transmission / reception speed of the network. Data received through the network unit may be stored through a memory or may be transmitted to other electronic devices at a short distance through a short range communication module.

네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로부터 업데이트 버전의 어플리케이션 파일 및 해당 어플리케이션 파일에 대응되는 버전 정보를 수신할 수 있다. 메모리(230)는 업데이트 버전의 어플리케이션 파일 및 해당 어플리케이션 파일에 대응되는 버전 정보를 저장할 수 있다. 메모리(230)는 해당 버전으로 서비스가 요청되는 경우 해당 버전으로 서비스의 처리가 가능하도록 업데이트 버전의 어플리케이션 파일을 로드 할 수 있다. 프로세서(220)는 수신한 업데이트 버전의 어플리케이션 파일로 서비스의 처리가 가능하도록 로드 된 경우 어플리케이션 업데이트 준비 완료 정보를 생성할 수 있다. 네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로 업데이트 준비 완료 정보를 전송할 수 있다.The network unit 210 may receive an updated version of the application file and version information corresponding to the application file from the network unit 110 of the application management server 100. The memory 230 may store an updated version of the application file and version information corresponding to the application file. When the service is requested in the corresponding version, the memory 230 may load the updated version of the application file to enable processing of the service in the corresponding version. The processor 220 may generate application update preparation completion information when it is loaded to enable processing of a service with the received update version application file. The network unit 210 may transmit update ready information to the network unit 110 of the application management server 100.

네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로부터 업데이트 버전의 적용 명령을 수신할 수 있다. 프로세서(210)는 업데이트 버전의 어플리케이션을 최신 버전으로 결정할 수 있다. 프로세서(220)는 이후 수신한 서비스를 업데이트한 최신 버전의 어플리케이션을 이용하여 수행할 수 있다.The network unit 210 may receive an application command of an updated version from the network unit 110 of the application management server 100. The processor 210 may determine the updated version of the application as the latest version. The processor 220 may then perform using the latest version of the application that updated the received service.

프로세서(220)는 업데이트 버전의 어플리케이션을 최신 버전으로 결정하는 과정에 문제가 생겨 결정에 실패한 경우, 업데이트 버전의 적용 실패로 판단할 수 있다. 네트워크부(210)는 업데이트 버전의 적용이 실패한 경우, 업데이트 버전의 적용 실패에 관한 정보를 어플리케이션 관리 서버(100)의 네트워크부(110)에 전송할 수 있다.The processor 220 may determine that the application of the updated version has failed when the determination fails due to a problem in the process of determining the updated version of the application as the latest version. When the application of the updated version fails, the network unit 210 may transmit information regarding the failure to apply the updated version to the network unit 110 of the application management server 100.

네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로부터 업데이트 버전의 적용 취소 명령을 수신할 수 있다. 프로세서(220)는 업데이트 버전의 어플리케이션을 최신 버전으로의 결정을 취소할 수 있다. 프로세서(220)는 이후 수신한 서비스를 업데이트 이전 버전의 어플리케이션을 이용하여 수행할 수 있다.The network unit 210 may receive an application version cancel command from the network unit 110 of the application management server 100. The processor 220 may cancel the determination of the updated version of the application to the latest version. The processor 220 may then perform the received service using an application of a version prior to the update.

메모리(230)는 복수의 버전의 어플리케이션에 대한 정보를 기록할 수 있다. 메모리(230)는 어플리케이션 각각의 버전 별로 어떤 서비스가 수행되고 있는지에 대한 정보를 기록할 수 있다.The memory 230 may record information on a plurality of versions of applications. The memory 230 may record information on which service is being performed for each version of the application.

프로세서(220)는 메모리(230)에 저장된 컴퓨터 프로그램을 판독하여 본 개시의 일 실시예에 따른 어플리케이션 무중단 버전 관리를 수행할 수 있다.The processor 220 may read a computer program stored in the memory 230 to perform application uninterrupted version management according to an embodiment of the present disclosure.

네트워크부(220)는 어플리케이션 관리 서버(100)의 네트워크부(120)에 보유 어플리케이션 버전 정보, 버전 별로 어떤 서비스가 수행되고 있는지에 대한 정보 및 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송할 수 있다.The network unit 220 may transmit at least one of the version information of the retained application, information on which service is being performed for each version, and version information of the application performing the service to the network unit 120 of the application management server 100. have.

프로세서(220)는 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션으로 수행 중인 서비스가 존재하는지 여부를 판단할 수 있다. 프로세서(220)는 수행 중인 서비스가 존재하지 않는 어플리케이션에 관하여 해당 버전을 미사용 버전으로 판단할 수 있다. 네트워크부(220)는 어플리케이션 관리 서버(100)의 네트워크부(120)에 미사용 버전 정보를 전송할 수 있다. 프로세서(220)는 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다.The processor 220 may determine whether there is a service being executed as an application of a version other than the latest version among the plurality of versions of the application. The processor 220 may determine the corresponding version as an unused version with respect to an application for which the service being performed does not exist. The network unit 220 may transmit unused version information to the network unit 120 of the application management server 100. The processor 220 may terminate the instance of the identified version of the application based on the unused version information and recover the allocated main memory.

네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로부터 미사용 버전 제거 명령을 수신할 수 있다. 프로세서(220)는 수신한 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정할 수 있다. 프로세서(220)는 수신한 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다. 프로세서(220)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정하는 경우 미사용 버전에 대해 제거 준비 완료로 판단할 수 있다. 네트워크부(210)는 미사용 버전 제거 준비 완료 정보를 상기 어플리케이션 관리 서버(100)의 네트워크부(110)에 전송할 수 있다.The network unit 210 may receive an unused version removal command from the network unit 110 of the application management server 100. The processor 220 may determine an application of the identified version as a standby for removal based on the received unused version removal command. The processor 220 may terminate the instance of the identified version of the application based on the received unused version removal command and recover the allocated main memory. The processor 220 may determine that the unused version is ready to be removed, if the application of the identified version is determined to be in the standby state for removal based on the uninstall command of the version identified based on the unused version removal command. The network unit 210 may transmit unused version removal preparation completion information to the network unit 110 of the application management server 100.

네트워크부(210)는 어플리케이션 관리 서버(100)의 네트워크부(110)로부터 미사용 버전의 제거 확정 명령을 수신할 수 있다. 프로세서(220)는 미사용 버전의 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수할 수 있다. 메모리(230)는 미사용 버전 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션을 메모리(230)에서 삭제할 수 있다.The network unit 210 may receive an unused version removal confirmation command from the network unit 110 of the application management server 100. The processor 220 may terminate the instance for the identified version of the application based on the removal confirmation command of the unused version and recover the allocated main memory. The memory 230 may delete the identified version of the application from the memory 230 based on the unused version removal confirmation command.

도 4는 본 개시의 일 실시예에 어플리케이션 무중단 버전 관리를 위한 순서도이다.4 is a flowchart for non-disruptive version management of an application in one embodiment of the present disclosure.

어플리케이션 서버(200)는 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버(100)로부터 수신(410)한다. The application server 200 receives the updated version of the application file and version information corresponding to the application file from the application management server 100 (410).

어플리케이션 서버(200)는 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단(420)한다. The application server 200 loads an updated version of the application file and determines 420 that a service using the updated version of the application is available.

어플리케이션 서버(200)는 어플리케이션 관리 서버(100)에 어플리케이션 업데이트 준비 완료 정보를 전송(430)한다. The application server 200 transmits the application update preparation completion information to the application management server 100 (430).

어플리케이션 서버(200)는 모든 어플리케이션 서버로부터 어플리케이션 관리 서버(100)에 상기 어플리케이션 업데이트 준비 완료 정보가 수신되는 경우 어플리케이션 관리 서버(100)에서 생성되는 업데이트 버전의 적용 명령을 어플리케이션 관리 서버(100)로부터 수신(440)한다. When the application update preparation completion information is received from the application management server 100 from all application servers, the application server 200 receives an application command of an update version generated by the application management server 100 from the application management server 100 (440).

어플리케이션 서버(200)는 업데이트 버전의 어플리케이션을 최신 버전으로 결정(450)한다.The application server 200 determines 450 the updated version of the application as the latest version.

도 5는 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 제거를 위한 순서도이다.5 is a flowchart for removing an uninterrupted version of an application according to an embodiment of the present disclosure.

어플리케이션 무중단 버전 관리를 위한 시스템(10)으로서, 어플리케이션 서버(200)는 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 어플리케이션 관리 서버(100)에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송(510)한다. As a system 10 for non-disruptive version management of an application, the application server 200 is based on information related to service execution for each version, and when a service of a version other than the latest version of the plurality of applications does not exist In operation 510, unused version information including version information of an application for which a service being executed does not exist is transmitted to the application management server 100.

어플리케이션 서버(200)는 미사용 버전 정보에 기초하여 식별되는 버전의 어플리케이션에 대한 인스턴스를 종료하고 할당된 메인 메모리를 회수(520)한다. The application server 200 terminates the instance for the identified version of the application based on the unused version information and recovers the allocated main memory (520).

어플리케이션 서버(200)는 모든 어플리케이션 서버로부터 상기 어플리케이션 관리 서버(100)에 동일한 버전의 어플리케이션에 대한 미사용 버전 정보가 수신된 경우 어플리케이션 관리 서버(100)에서 상기 미사용 버전 정보에 기초하여 생성되는 미사용 버전 제거 명령을 어플리케이션 관리 서버(100)로부터 수신(530)한다. The application server 200 removes the unused version generated based on the unused version information from the application management server 100 when unused version information for the same version of the application is received from the application management server 100 from the all application servers. The command is received 530 from the application management server 100.

어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션을 제거 대기 상태로 결정(540)한다. The application server 200 determines 540 an application of the identified version to be in a standby state for removal based on an unused version removal command.

어플리케이션 서버(200)는 미사용 버전 제거 명령에 기초하여 식별되는 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보를 어플리케이션 관리 서버(100)에 전송(550)한다. The application server 200 transmits 550 the unused version removal preparation completion information for the identified version of the application to the application management server 100 based on the unused version removal command.

어플리케이션 서버(200)는 모든 어플리케이션 서버로부터 어플리케이션 관리 서버(100)에 동일한 버전의 어플리케이션에 대한 미사용 버전 제거 준비 완료 정보가 수신된 경우 어플리케이션 관리 서버(100)에서 상기 미사용 버전 제거 준비 완료 정보에 기초하여 생성되는 미사용 버전의 제거 확정 명령을 어플리케이션 관리 서버(100)로부터 수신(560)한다. The application server 200 is based on the unused version removal preparation completion information from the application management server 100 when the unused version removal preparation information for the same version of the application is received from the application management server 100 from all application servers. The generated unused version removal confirmation command is received from the application management server 100 (560).

어플리케이션 서버(200)는 미사용 버전의 제거 확정 명령에 기초하여 식별되는 버전의 어플리케이션을 저장 매체에서 삭제(570)한다.The application server 200 deletes (570) the identified version of the application from the storage medium based on the removal confirmation command of the unused version.

도 6은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 로직을 도시한 블록 구성도이다.6 is a block diagram illustrating logic for non-disruptive version management of an application according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 로직에 의해 구현될 수 있다.The method for non-disruptive version management of an application according to an embodiment of the present disclosure may be implemented by the following logic.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하기 위한 로직(610); 상기 어플리케이션 서버가 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하기 위한 로직(620); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하기 위한 로직(630); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하기 위한 로직(640); 상기 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하기 위한 로직(650)을 포함할 수 있다.A method for non-disruptive version management of an application according to an embodiment of the present disclosure includes: a logic 610 for an application server to transmit retained application version information to an application management server; Logic (620) for the application server to receive an updated version of the application file and version information corresponding to the application file from the application management server; Logic (630) for determining that the application server is capable of performing a service using the updated version of the application by loading the updated version of the application file; Logic (640) for transmitting application update preparation completion information to the application management server when it is determined that the application server can perform a service using the updated version of the application; The application server may include logic 650 for receiving an update version application command from the application management server.

도 7은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 모듈을 도시한 블록 구성도이다. 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 모듈에 의해 구현될 수 있다.7 is a block diagram illustrating a module for non-disruptive version management of an application according to an embodiment of the present disclosure. A method for non-disruptive version management of an application according to an embodiment of the present disclosure may be implemented by the following module.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하기 위한 모듈(710); 상기 어플리케이션 서버가 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하기 위한 모듈(720); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하기 위한 모듈(730); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하기 위한 모듈(740); 상기 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하기 위한 모듈(750)을 포함할 수 있다.A method for non-disruptive version management of an application according to an embodiment of the present disclosure includes: a module 710 for an application server to transmit retained application version information to an application management server; A module 720 for the application server to receive an updated version of the application file and version information corresponding to the application file from the application management server; A module 730 for determining that the application server is capable of performing a service using the updated version of the application by loading the updated version of the application file; A module 740 for transmitting application update preparation completion information to the application management server when it is determined that the application server can perform a service using the updated version of the application; The application server may include a module 750 for receiving an update version application command from the application management server.

도 8은 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 회로를 도시한 블록 구성도이다.8 is a block diagram illustrating a circuit for non-disruptive version management of an application according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 회로에 의해 구현될 수 있다.According to an embodiment of the present disclosure, a method for non-disruptive version management of an application may be implemented by the following circuit.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하기 위한 회로(810); 상기 어플리케이션 서버가 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하기 위한 회로(820); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하기 위한 회로(830); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하기 위한 회로(840); 상기 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하기 위한 회로(850)를 포함할 수 있다.A method for non-disruptive version management of an application according to an embodiment of the present disclosure includes: a circuit 810 for an application server to transmit retained application version information to an application management server; A circuit 820 for the application server to receive an updated version of the application file and version information corresponding to the application file from the application management server; A circuit 830 for determining, by the application server, that the application file of the updated version is capable of performing a service using the updated version of the application; A circuit 840 for transmitting application update preparation completion information to the application management server when it is determined that the application server can perform a service using the updated version of the application; The application server may include circuitry 850 for receiving an update version application command from the application management server.

도 9는 본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 수단을 도시한 블록 구성도이다.9 is a block diagram showing a means for non-disruptive version management of an application according to an embodiment of the present disclosure.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 수단에 의해 구현될 수 있다.A method for non-disruptive version management of an application according to an embodiment of the present disclosure may be implemented by the following means.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보를 전송하기 위한 수단(910); 상기 어플리케이션 서버가 업데이트 버전의 어플리케이션 파일 및 상기 어플리케이션 파일에 대응되는 버전 정보를 상기 어플리케이션 관리 서버로부터 수신하기 위한 수단(920); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션 파일을 로드하여 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태임을 판단하기 위한 수단(930); 상기 어플리케이션 서버가 상기 업데이트 버전의 어플리케이션을 이용하는 서비스의 수행이 가능한 상태로 판단되는 경우, 상기 어플리케이션 관리 서버에 어플리케이션 업데이트 준비 완료 정보를 전송하기 위한 수단(940); 상기 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 업데이트 버전의 적용 명령을 수신하기 위한 수단(950)을 포함할 수 있다.According to an embodiment of the present disclosure, a method for non-disruptive version management of an application includes means (910) for an application server to transmit retained application version information to an application management server; Means (920) for the application server to receive an updated version of the application file and version information corresponding to the application file from the application management server; Means (930) for determining that the application server is capable of performing a service using the updated version of the application by loading the updated version of the application file; Means (940) for transmitting the application update preparation completion information to the application management server when it is determined that the application server can perform a service using the updated version of the application; The application server may include means 950 for receiving an update version application command from the application management server.

도 10은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 로직을 도시한 블록 구성도이다.10 is a block diagram illustrating logic for non-disruptive version management of an application according to another embodiment of the present disclosure.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 로직에 의해 구현될 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application may be implemented by the following logic.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하기 위한 로직(1010); 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하기 위한 로직(1020); 어플리케이션 서버가 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하기 위한 로직(1030); 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하기 위한 로직(1040)을 포함할 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application includes logic 1010 for an application server to record service execution related information for each version of a plurality of versions of applications stored in the application server; A logic 1020 for the application server to transmit at least one of application version information held by the application management server, service performance related information for each version, and version information of an application executing the service; If a service in which an application of a version other than the latest version of the plurality of versions of the application does not exist is performed by the application server based on the service execution related information for each version, an application in which the service running in the application management server does not exist A logic 1030 for transmitting unused version information including version information of; The application server may include logic 1040 for receiving an unused version removal command from the application management server.

도 11은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 모듈을 도시한 블록 구성도이다.11 is a block diagram illustrating a module for non-disruptive version management of an application according to another embodiment of the present disclosure.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 모듈에 의해 구현될 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application may be implemented by the following module.

본 개시의 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하기 위한 모듈(1410); 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하기 위한 모듈(1420); 어플리케이션 서버가 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하기 위한 모듈(1430); 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하기 위한 모듈(1440)을 포함할 수 있다.According to an embodiment of the present disclosure, a method for non-disruptive version management of an application includes a module 1410 for an application server to record service execution related information for each version of a plurality of versions of applications stored in the application server; A module 1420 for the application server to transmit at least one of application version information, application-related service information for each version, and version information of an application executing the service to the application management server; If a service in which an application of a version other than the latest version of the plurality of versions of the application does not exist is performed by the application server based on the service execution related information for each version, an application in which the service running in the application management server does not exist A module 1430 for transmitting unused version information including version information of; The application server may include a module 1440 for receiving an unused version removal command from the application management server.

도 12는 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 회로를 도시한 블록 구성도이다.12 is a block diagram illustrating a circuit for non-disruptive version management of an application according to another embodiment of the present disclosure.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 다음과 같은 회로에 의해 구현될 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application may be implemented by the following circuit.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하기 위한 회로(1210); 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하기 위한 회로(1220); 어플리케이션 서버가 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하기 위한 회로(1230); 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하기 위한 회로(1240)를 포함할 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application includes a circuit 1210 for an application server to record service performance related information for each version of a plurality of versions of applications stored in the application server; A circuit 1220 for the application server to transmit at least one of application version information held by the application management server, service related information for each version, and version information of an application executing the service; If a service in which an application of a version other than the latest version of the plurality of versions of the application does not exist is performed by the application server based on the service execution related information for each version, an application in which the service running in the application management server does not exist A circuit 1230 for transmitting unused version information including version information of; The application server may include circuitry 1240 for receiving an unused version removal command from the application management server.

도 13은 본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 수단을 도시한 블록 구성도이다.13 is a block diagram illustrating a means for non-disruptive version management of an application according to another embodiment of the present disclosure.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 수단은 다음과 같은 모듈에 의해 구현될 수 있다.According to another embodiment of the present disclosure, a means for non-disruptive version management of an application may be implemented by the following module.

본 개시의 다른 일 실시예에 따라 어플리케이션 무중단 버전 관리를 위한 방법은 어플리케이션 서버가 상기 어플리케이션 서버에 저장된 복수의 버전의 어플리케이션 각각의 버전 별 서비스 수행 관련 정보를 기록하기 위한 수단(1310); 어플리케이션 서버가 어플리케이션 관리 서버에 보유 어플리케이션 버전 정보, 상기 버전 별 서비스 수행 관련 정보 및 상기 서비스를 수행 중인 어플리케이션의 버전 정보 중 적어도 하나를 전송하기 위한 수단(1320); 어플리케이션 서버가 상기 버전 별 서비스 수행 관련 정보에 기초하여 상기 복수의 버전의 어플리케이션 중 최신 버전이 아닌 버전의 어플리케이션이 수행 중인 서비스가 존재하지 않는 경우, 상기 어플리케이션 관리 서버에 수행 중인 서비스가 존재하지 않는 어플리케이션의 버전 정보를 포함하는 미사용 버전 정보를 전송하기 위한 수단(1330); 어플리케이션 서버가 상기 어플리케이션 관리 서버로부터 미사용 버전 제거 명령을 수신하기 위한 수단(1340)을 포함할 수 있다.According to another embodiment of the present disclosure, a method for non-disruptive version management of an application includes: means (1310) for an application server to record service performance-related information for each version of a plurality of versions of applications stored in the application server; Means (1320) for the application server to transmit at least one of the version information of the application held by the application management server, the service performance related information for each version, and the version information of the application performing the service; If a service in which an application of a version other than the latest version of the plurality of versions of the application does not exist is performed by the application server based on the service execution related information for each version, an application in which the service running in the application management server does not exist Means (1330) for transmitting unused version information including version information of; The application server may include means 1340 for receiving an unused version removal command from the application management server.

도 14는 본 개시의 일 실시예에 따른 컴퓨팅 장치의 블록 구성도이다.14 is a block diagram of a computing device according to an embodiment of the present disclosure.

도 14는 본 개시의 실시예들이 구현될 수 있는 예시적인 컴퓨팅 환경에 대한 간략하고 일반적인 개략도를 도시한다.14 shows a simplified and general schematic diagram of an exemplary computing environment in which embodiments of the present disclosure can be implemented.

본 개시가 일반적으로 하나 이상의 컴퓨터 상에서 실행될 수 있는 컴퓨터 실행가능 명령어와 관련하여 전술되었지만, 당업자라면 본 개시가 기타 프로그램 모듈들과 결합되어 및/또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다는 것을 잘 알 것이다.Although the present disclosure has been described above in general with respect to computer-executable instructions that may be executed on one or more computers, those skilled in the art will appreciate that the present disclosure may be implemented in combination with other program modules and / or as a combination of hardware and software. will be.

일반적으로, 프로그램 모듈은 특정의 태스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타 등등을 포함한다. 또한, 당업자라면 본 개시의 방법이 단일-프로세서 또는 멀티프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터는 물론 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 기타 등등(이들 각각은 하나 이상의 연관된 장치와 연결되어 동작할 수 있음)을 비롯한 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 잘 알 것이다.Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. In addition, those of ordinary skill in the art may appreciate that the methods of the present disclosure may include single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc. It will be appreciated that it may be implemented in other computer system configurations, including one that may operate in conjunction with one or more associated devices.

본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.The described embodiments of the present disclosure may also be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

컴퓨터는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있다. 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 일시적(transitory) 및 비일시적(non-transitory) 매체, 이동식 및 비-이동식 매체를 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체 및 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 일시적 및 비-일시적 매체, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital video disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만, 이에 한정되지 않는다.Computers typically include a variety of computer readable media. Any computer-accessible medium can be a computer-readable medium. Computer-readable media includes volatile and non-volatile media, transitory and non-transitory media, removable and non-removable media. By way of example, and not limitation, computer readable media may include computer readable storage media and computer readable transmission media. Computer-readable storage media are volatile and non-volatile media, temporary and non-transitory media, removable and non-removable, implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data Includes media. Computer storage media includes RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital video disk (DVD) or other optical disk storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, Or any other medium that can be accessed by a computer and used to store desired information.

컴퓨터 판독가능 전송 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터등을 구현하고 모든 정보 전달 매체를 포함한다. 피변조 데이터 신호라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 제한이 아닌 예로서, 컴퓨터 판독가능 전송 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들 중 임의의 것의 조합도 역시 컴퓨터 판독가능 전송 매체의 범위 안에 포함되는 것으로 한다.Computer readable transmission media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and Includes all information delivery media. The term modulated data signal means a signal in which one or more of the characteristics of the signal are set or changed to encode information in the signal. By way of example, and not limitation, computer readable transmission media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of any of the above-described media are also intended to be included within the scope of computer-readable transmission media.

컴퓨터(1102)를 포함하는 본 개시의 여러가지 측면들을 구현하는 예시적인 환경(1100)이 나타내어져 있으며, 컴퓨터(1102)는 처리 장치(1104), 시스템 메모리(1106) 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 시스템 메모리(1106)(이에 한정되지 않음)를 비롯한 시스템 컴포넌트들을 처리 장치(1104)에 연결시킨다. 처리 장치(1104)는 다양한 상용 프로세서들 중 임의의 프로세서일 수 있다. 듀얼 프로세서 및 기타 멀티프로세서 아키텍처도 역시 처리 장치(1104)로서 이용될 수 있다.An exemplary environment 1100 is shown that implements various aspects of the present disclosure, including a computer 1102, and the computer 1102 includes a processing device 1104, a system memory 1106, and a system bus 1108. do. System bus 1108 connects system components, including, but not limited to, system memory 1106 to processing device 1104. The processing device 1104 can be any of a variety of commercial processors. Dual processor and other multiprocessor architectures may also be used as the processing unit 1104.

시스템 버스(1108)는 메모리 버스, 주변장치 버스, 및 다양한 상용 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스에 추가적으로 상호 연결될 수 있는 몇 가지 유형의 버스 구조 중 임의의 것일 수 있다. 시스템 메모리(1106)는 판독 전용 메모리(ROM)(1110) 및 랜덤 액세스 메모리(RAM)(1112)를 포함한다. 기본 입/출력 시스템(BIOS)은 ROM, EPROM, EEPROM 등의 비휘발성 메모리(1110)에 저장되며, 이 BIOS는 시동 중과 같은 때에 컴퓨터(1102) 내의 구성요소들 간에 정보를 전송하는 일을 돕는 기본적인 루틴을 포함한다. RAM(1112)은 또한 데이터를 캐싱하기 위한 정적 RAM 등의 고속 RAM을 포함할 수 있다.The system bus 1108 can be any of several types of bus structures that can be further interconnected to a memory bus, peripheral bus, and local bus using any of a variety of commercial bus architectures. System memory 1106 includes read-only memory (ROM) 1110 and random access memory (RAM) 1112. The basic input / output system (BIOS) is stored in a non-volatile memory 1110 such as ROM, EPROM, EEPROM, etc., and this BIOS is basic to help transfer information between components in the computer 1102 at the same time as during startup. Contains routines. The RAM 1112 may also include high-speed RAM, such as static RAM for caching data.

컴퓨터(1102)는 또한 내장형 하드 디스크 드라이브(HDD)(1114)(예를 들어, EIDE, SATA)-이 내장형 하드 디스크 드라이브(1114)는 또한 적당한 섀시(도시 생략) 내에서 외장형 용도로 구성될 수 있음-, 자기 플로피 디스크 드라이브(FDD)(1116)(예를 들어, 이동식 디스켓(1118)으로부터 판독을 하거나 그에 기록을 하기 위한 것임), 및 광 디스크 드라이브(1120)(예를 들어, CD-ROM 디스크(1122)를 판독하거나 DVD 등의 기타 고용량 광 매체로부터 판독을 하거나 그에 기록을 하기 위한 것임)를 포함한다. 하드 디스크 드라이브(1114), 자기 디스크 드라이브(1116) 및 광 디스크 드라이브(1120)는 각각 하드 디스크 드라이브 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126) 및 광 드라이브 인터페이스(1128)에 의해 시스템 버스(1108)에 연결될 수 있다. 외장형 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 그 둘 다를 포함한다.Computer 1102 is also an internal hard disk drive (HDD) 1114 (eg, EIDE, SATA)-this internal hard disk drive 1114 can also be configured for external use within a suitable chassis (not shown). Yes, magnetic floppy disk drive (FDD) 1116 (e.g., for reading from or writing to removable diskette 1118), and optical disk drive 1120 (e.g., CD-ROM Disc 1122, or for reading from or writing to other high-capacity optical media such as a DVD). The hard disk drive 1114, the magnetic disk drive 1116, and the optical disk drive 1120 are respectively connected to the system bus 1108 by the hard disk drive interface 1124, the magnetic disk drive interface 1126, and the optical drive interface 1128. ). The interface 1124 for implementing an external drive includes at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.

이들 드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어, 기타 등등의 비 휘발성 저장을 제공한다. 컴퓨터(1102)의 경우, 드라이브 및 매체는 임의의 데이터를 적당한 디지털 형식으로 저장하는 것에 대응한다. 상기에서의 컴퓨터 판독가능 매체에 대한 설명이 HDD, 이동식 자기 디스크, 및 CD 또는 DVD 등의 이동식 광 매체를 언급하고 있지만, 당업자라면 집 드라이브(zip drive), 자기 카세트, 플래쉬 메모리 카드, 카트리지, 기타 등등의 컴퓨터에 의해 판독가능한 다른 유형의 매체도 역시 예시 적인 운영 환경에서 사용될 수 있으며 또 임의의 이러한 매체가 본 개시의 방법들을 수행하기 위한 컴퓨터 실행가능 명령어를 포함할 수 있다는 것을 잘 알 것이다.These drives and their associated computer-readable media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. In the case of computer 1102, drives and media correspond to storing any data in a suitable digital format. Although the above description of computer readable media refers to HDDs, removable magnetic disks, and removable optical media such as CDs or DVDs, zip drives, magnetic cassettes, flash memory cards, cartridges, etc. It will be appreciated that other types of media readable by a computer, etc., may also be used in the exemplary operating environment and any such media may include computer-executable instructions for performing the methods of the present disclosure.

운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 기타 프로그램 모듈(1134) 및 프로그램 데이터(1136)를 비롯한 다수의 프로그램 모듈이 드라이브 및 RAM(1112)에 저장될 수 있다. 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 그 일부분이 또한 RAM(1112)에 캐싱될 수 있다. 본 개시가 여러가지 상업적으로 이용가능한 운영 체제 또는 운영 체제들의 조합에서 구현될 수 있다는 것을 잘 알 것이다.A number of program modules may be stored in the drive and RAM 1112, including the operating system 1130, one or more application programs 1132, other program modules 1134, and program data 1136. All or part of the operating system, applications, modules and / or data may also be cached in RAM 1112. It will be appreciated that the present disclosure can be implemented in various commercially available operating systems or combinations of operating systems.

사용자는 하나 이상의 유선/무선 입력 장치, 예를 들어, 키보드(1138) 및 마우스(1140) 등의 포인팅 장치를 통해 컴퓨터(1102)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, IR 리모콘, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치가 종종 시스템 버스(1108)에 연결되어 있는 입력 장치 인터페이스(1142)를 통해 처리 장치(1104)에 연결되지만, 병렬 포트, IEEE 1394 직렬 포트, 게임 포트, USB 포트, IR 인터페이스, 기타 등등의 기타 인터페이스에 의해 연결될 수 있다.The user may input commands and information to the computer 1102 through one or more wired / wireless input devices, for example, pointing devices such as a keyboard 1138 and a mouse 1140. Other input devices (not shown) may include a microphone, IR remote control, joystick, game pad, stylus pen, touch screen, etc. These and other input devices are often connected to the processing unit 1104 through an input device interface 1142 connected to the system bus 1108, but the parallel port, IEEE 1394 serial port, game port, USB port, IR interface, And other interfaces.

모니터(1144) 또는 다른 유형의 디스플레이 장치도 역시 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)에 연결된다. 모니터(1144)에 부가하여, 컴퓨터는 일반적으로 스피커, 프린터, 기타 등등의 기타 주변 출력 장치(도시 생략)를 포함한다.The monitor 1144 or other type of display device is also connected to the system bus 1108 through an interface such as a video adapter 1146. In addition to the monitor 1144, the computer generally includes other peripheral output devices (not shown) such as speakers, printers, and the like.

컴퓨터(1102)는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들)(1148) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화 된 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1148)는 워크스테이션, 컴퓨팅 디바이스 컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(1102)에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함하지만, 간략함을 위해, 메모리 저장 장치(1150)만이 도시되어 있다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(1152) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(1154)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.The computer 1102 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer (s) 1148 via wired and / or wireless communication. The remote computer (s) 1148 may be a workstation, computing device computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other conventional network node, typically in computer 1102. It includes many or all of the components described with respect to, but for simplicity, only the memory storage device 1150 is shown. The illustrated logical connections include wired / wireless connections to a local area network (LAN) 1152 and / or a larger network, such as a wide area network (WAN) 1154. Such LAN and WAN networking environments are common in offices and companies, and facilitate enterprise-wide computer networks such as intranets, all of which can be connected to computer networks around the world, for example, the Internet.

LAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)에의 유선 또는 무선 통신을 용이하게 해줄 수 있으며, 이 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그에 설치되어 있는 무선 액세스 포인트를 포함하고 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함할 수 있거나, WAN(1154) 상의 통신 컴퓨팅 디바이스에 연결되거나, 또는 인터넷을 통하는 등, WAN(1154)을 통해 통신을 설정하는 기타 수단을 갖는다. 내장형 또는 외장형 및 유선 또는 무선 장치일 수 있는 모뎀(1158)은 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크화 된 환경에서, 컴퓨터(1102)에 대해 설명된 프로그램 모듈들 또는 그의 일부분이 원격 메모리/저장 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결이 예시 적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.When used in a LAN networking environment, the computer 1102 is connected to the local network 1152 via a wired and / or wireless communication network interface or adapter 1156. The adapter 1156 may facilitate wired or wireless communication to the LAN 1152, which also includes a wireless access point installed therein to communicate with the wireless adapter 1156. When used in a WAN networking environment, the computer 1102 may include a modem 1158, or connect to a communication computing device on the WAN 1154, or establish communication over the WAN 1154, such as through the Internet. Have other means. The modem 1158, which may be an internal or external and wired or wireless device, is connected to the system bus 1108 through a serial port interface 1142. In a networked environment, program modules described for the computer 1102 or portions thereof may be stored in the remote memory / storage device 1150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between computers can be used.

컴퓨터(1102)는 무선 통신으로 배치되어 동작하는 임의의 무선 장치 또는 개체, 예를 들어, 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA(portable data assistant), 통신 위성, 무선 검출가능 태그와 연관된 임의의 장비 또는 장소, 및 전화와 통신을 하는 동작을 한다. 이것은 적어도 Wi-Fi 및 블루투스 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크에서와 같이 미리 정의된 구조이거나 단순하게 적어도 2개의 장치 사이의 애드혹 통신(ad hoc communication)일 수 있다.The computer 1102 is associated with any wireless device or object that is deployed and operates in wireless communication, such as a printer, scanner, desktop and / or portable computer, a portable data assistant (PDA), communication satellite, or wireless detectable tag. It operates to communicate with any equipment or place and telephone. This includes at least Wi-Fi and Bluetooth wireless technology. Accordingly, the communication may be a predefined structure as in a conventional network or simply ad hoc communication between at least two devices.

Wi-Fi(Wireless Fidelity)는 유선 없이도 인터넷 등으로의 연결을 가능하게 해준다. Wi-Fi는 이러한 장치, 예를 들어, 컴퓨터가 실내에서 및 실외에서, 즉 기지국의 통화권 내의 아무 곳에서나 데이터를 전송 및 수신할 수 있게 해주는 셀 전화와 같은 무선 기술이다. Wi-Fi 네트워크는 안전하고 신뢰성 있으며 고속인 무선 연결을 제공하기 위해 IEEE 802.11(a,b,g, 기타)이라고 하는 무선 기술을 사용한다. 컴퓨터를 서로에, 인터넷에 및 유선 네트워크(IEEE 802.3 또는 이더넷을 사용함)에 연결시키기 위해 Wi-Fi가 사용될 수 있다. Wi-Fi 네트워크는 비인가 2.4 및 5 GHz 무선 대역에서, 예를 들어, 11Mbps(802.11a) 또는 54 Mbps(802.11b) 데이터 레이트로 동작하거나, 양 대역(듀얼 대역)을 포함하는 제품에서 동작할 수 있다.Wi-Fi (Wireless Fidelity) enables a connection to the Internet or the like without a wired connection. Wi-Fi is a wireless technology such as a cell phone that allows a device, for example, a computer to transmit and receive data indoors and outdoors, ie anywhere within the base station's coverage area. Wi-Fi networks use a wireless technology called IEEE 802.11 (a, b, g, etc.) to provide a secure, reliable and high-speed wireless connection. Wi-Fi can be used to connect computers to each other, to the Internet, and to a wired network (using IEEE 802.3 or Ethernet). Wi-Fi networks can operate in unlicensed 2.4 and 5 GHz radio bands, for example, at 11 Mbps (802.11a) or 54 Mbps (802.11 b) data rates, or in products that include both bands (dual band). have.

본 개시의 기술 분야에서 통상의 지식을 가진 자는 정보 및 신호들이 임의의 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명에서 참조될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학장들 또는 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.One of ordinary skill in the art of the present disclosure will understand that information and signals can be represented using any of a variety of different technologies and techniques. For example, data, instructions, instructions, information, signals, bits, symbols and chips that can be referenced in the above description are voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields Or particles, or any combination thereof.

본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 "소프트웨어"로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 본 개시의 기술 분야에서 통상의 지식을 가진 자는 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시의 범위를 벗어나는 것으로 해석되어서는 안 될 것이다.Those of ordinary skill in the art of the present disclosure may use various examples of logical blocks, modules, processors, means, circuits, and algorithm steps described in connection with the embodiments disclosed herein in electronic hardware, (convenience For the sake of understanding, it may be implemented by various forms of program or design code (referred to herein as “software”) or a combination of both. To clearly illustrate this interoperability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art of the present disclosure may implement the functions described in various ways for each particular application, but such implementation decisions should not be interpreted as being outside the scope of the present disclosure.

여기서 제시된 다양한 실시예들은 방법, 장치, 또는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용한 제조 물품(article)으로 구현될 수 있다. 용어 "제조 물품"은 임의의 컴퓨터-판독가능 장치로부터 액세스 가능한 컴퓨터 프로그램, 캐리어, 또는 매체(media)를 포함한다. 예를 들어, 컴퓨터-판독가능 매체는 자기 저장 장치(예를 들면, 하드 디스크, 플로피 디스크, 자기 스트립, 등), 광학 디스크(예를 들면, CD, DVD, 등), 스마트 카드, 및 플래쉬 메모리 장치(예를 들면, EEPROM, 카드, 스틱, 키 드라이브, 등)를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 여기서 제시되는 다양한 저장 매체는 정보를 저장하기 위한 하나 이상의 장치 및/또는 다른 기계-판독가능한 매체를 포함한다. Various embodiments presented herein may be implemented as a method, apparatus, or article of manufacture using standard programming and / or engineering techniques. The term "manufactured article" includes a computer program, carrier, or media accessible from any computer-readable device. For example, computer-readable media include magnetic storage devices (eg, hard disks, floppy disks, magnetic strips, etc.), optical disks (eg, CDs, DVDs, etc.), smart cards, and flash memory Devices (eg, EEPROMs, cards, sticks, key drives, etc.), but are not limited to these. Also, various storage media presented herein include one or more devices and / or other machine-readable media for storing information.

제시된 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조는 예시적인 접근들의 일례임을 이해하도록 한다. 설계 우선순위들에 기반하여, 본 개시의 범위 내에서 프로세스들에 있는 단계들의 특정한 순서 또는 계층 구조가 재배열될 수 있다는 것을 이해하도록 한다. 첨부된 방법 청구항들은 샘플 순서로 다양한 단계들의 엘리먼트들을 제공하지만 제시된 특정한 순서 또는 계층 구조에 한정되는 것을 의미하지는 않는다.It is understood that the specific order or hierarchy of steps in the processes presented is an example of exemplary approaches. Based on design priorities, it is understood that within the scope of the present disclosure, a specific order or hierarchy of steps in the processes may be rearranged. The accompanying method claims provide elements of the various steps in a sample order, but are not meant to be limited to the specific order or hierarchy presented.

제시된 실시예들에 대한 설명은 임의의 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다. 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.Descriptions of the presented embodiments are provided to enable any person of ordinary skill in the art to use or practice the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art of the present disclosure. The general principles defined herein can be applied to other embodiments without departing from the scope of the present disclosure. Thus, the present disclosure should not be limited to the embodiments presented herein, but should be interpreted in the broadest scope consistent with the principles and novel features presented herein.

Claims (1)

컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.

A computer program stored on a computer readable storage medium.

KR1020200050723A 2020-04-27 2020-04-27 Unnecessary resource recognition and release plan in application hot deploy on distributed system KR20200047491A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200050723A KR20200047491A (en) 2020-04-27 2020-04-27 Unnecessary resource recognition and release plan in application hot deploy on distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200050723A KR20200047491A (en) 2020-04-27 2020-04-27 Unnecessary resource recognition and release plan in application hot deploy on distributed system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071975A Division KR102116813B1 (en) 2018-06-22 2018-06-22 Unnecessary resource recognition and release plan in application hot deploy on distributed system

Publications (1)

Publication Number Publication Date
KR20200047491A true KR20200047491A (en) 2020-05-07

Family

ID=70734129

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200050723A KR20200047491A (en) 2020-04-27 2020-04-27 Unnecessary resource recognition and release plan in application hot deploy on distributed system

Country Status (1)

Country Link
KR (1) KR20200047491A (en)

Similar Documents

Publication Publication Date Title
KR102116814B1 (en) Application hot deploy method to guarentee application version consistency and computer program stored in computer readable medium therfor
US8600999B2 (en) System and method for efficient resource management
KR101856486B1 (en) Method for bi-direction calling between open system and mainframe system
CN110704392B (en) Block chain network upgrading method and device, storage medium and electronic equipment
CN110968417A (en) Method, apparatus, system and computer program product for managing storage units
KR102116813B1 (en) Unnecessary resource recognition and release plan in application hot deploy on distributed system
KR102115758B1 (en) Method for processing data flow based service and computer program stored in computer readable medium therfor
KR102089291B1 (en) Method for moving data extent
KR102247247B1 (en) Method to manage database
KR20200047491A (en) Unnecessary resource recognition and release plan in application hot deploy on distributed system
KR20200047490A (en) Application hot deploy method to guarentee application version consistency and computer program stored in computer readable medium therfor
KR20200077488A (en) Application hot deploy method to guarentee application version consistency and computer program stored in computer readable medium therfor
US11010408B2 (en) Hydration of a hierarchy of dehydrated files
CN106254445A (en) Message method and service end
KR20220064744A (en) Blockchain based on cloud system
US20210373881A1 (en) Memory efficient software patching for updating applications on computing devices
KR20200078426A (en) Recovery server and computer programs
KR102224771B1 (en) Method to manage database failure
KR101889749B1 (en) Message scheduling method
CN111309433A (en) Virtualization system and virtual machine data copying method
US20210248108A1 (en) Asynchronous data synchronization and reconciliation
KR20210027315A (en) Method to manage database failure
KR20210038497A (en) Method to manage database
CN106980645B (en) Distributed file system architecture implementation method and device
KR102214186B1 (en) Server using hierarchical sturctured memory management technique on multi process

Legal Events

Date Code Title Description
A107 Divisional application of patent