KR102205458B1 - 어플리케이션 관리 장치 및 방법 - Google Patents

어플리케이션 관리 장치 및 방법 Download PDF

Info

Publication number
KR102205458B1
KR102205458B1 KR1020150148655A KR20150148655A KR102205458B1 KR 102205458 B1 KR102205458 B1 KR 102205458B1 KR 1020150148655 A KR1020150148655 A KR 1020150148655A KR 20150148655 A KR20150148655 A KR 20150148655A KR 102205458 B1 KR102205458 B1 KR 102205458B1
Authority
KR
South Korea
Prior art keywords
application
stability
version
latest version
management device
Prior art date
Application number
KR1020150148655A
Other languages
English (en)
Other versions
KR20170047931A (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 KR1020150148655A priority Critical patent/KR102205458B1/ko
Publication of KR20170047931A publication Critical patent/KR20170047931A/ko
Application granted granted Critical
Publication of KR102205458B1 publication Critical patent/KR102205458B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 어플리케이션 관리 장치는 현재 동작하는 최신 버전의 어플리케이션의 동작에 있어서의 오류를 기초로 상기 최신 버전의 어플리케이션의 안정성을 판별하는 안정성 판별부, 상기 최신 버전의 어플리케이션의 이전 버전과 그 안정성을 함께 저장하는 저장부 및 상기 안정성 판별부로부터 상기 최신 버전의 어플리케이션의 안정성을 전달받으며, 상기 전달받은 안정성이 위험인 경우 상기 저장된 이전 버전의 어플리케이션 중에서 그에 상응하는 안정성을 기초로 어느 하나를 선별한 뒤, 상기 현재 동작하는 최신 버전의 어플리케이션을 상기 선별된 어플리케이션으로 전환하는 전환부를 포함한다.

Description

어플리케이션 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING APPLICATION}
본 발명은 어플리케이션 관리 장치 및 방법에 관한 것이며, 보다 자세하게는 서버에 설치되어 사용자에게 서비스를 제공하는데 사용되는 어플리케이션을 이전 버전의 어플리케이션으로 자동으로 전환하거나 또는 새로운 버전의 어플리케이션으로 자동으로 전환하는 어플리케이션 관리 장치 및 방법에 관한 것이다.
SaaS(Software As A Service)나 PaaS(Platform As A Service)와 같은 서버에는 개발자가 개발한 라이브러리와 같은 어플리케이션(응용 프로그램)이 설치될 수 있다. 이러한 서버는 해당 서버에 접속한 사용자에게 어플리케이션에 기반한 서비스를 제공함과 동시에 개발자에게 개발을 위한 인터페이스도 제공하는 DevOps 프로세스를 제공할 수도 있다.
최근 들어 전술한 서버가 수행하는 기능들 중 많은 기능들이 자동화되고 있다. 예를 들면, 어플리케이션을 서버로 업로드하는 기능 또는 어플리케이션을 컴파일하는 기능들이 자동화되고 있다.
그런데, 서버에서 동작하고 있는 어플리케이션의 안정성에 문제가 있는 경우, 이러한 어플리케이션을 안정성에 문제가 없는 이전 버전의 어플리케이션으로 전환하는 기능 및 이와 같이 전환된 어플리케이션을 배포하는 기능, 즉 blue-green deployment 기능은 지금까지 자동화되지 않고 있다. 이는, 종래에는 사람이 직접 이전 버전의 어플리케이션 중 안정성에 문제가 없는 어플리케이션을 선별하여 배포하는 것이 안정적이라고 여겼기 때문이며, 또한 종래의 서버는 현재 동작하고 있는 어플리케이션의 안정성에 문제가 있는지 여부를 자동으로 판별할 수 없었기 때문이다. 즉, 이전 버전의 어플리케이션 중 안정성에 문제가 없는 어플리케이션을 선별하여 자동으로 배포하기 위해서는, 선행적으로 현재 동작하고 있는 어플리케이션의 안정성에 문제가 있는지 여부를 자동으로 판별할 수 있어야 하는데, 종래의 서버는 오류가 발생하면 로그(log) 등을 통하여 개발자 등에게 알려주기만 하였을 뿐 해당 어플리케이션의 안정성을 자동으로 판별하는 기능은 제공하지 않았다.
이에 따라, 종래의 서버 환경하에서는 개발자가 직접 현재 동작하고 있는 어플리케이션의 안정성에 문제가 있는지를 판별하고, 개발자가 직접 현재 동작하고 있는 어플리케이션을 안정성에 문제가 없는 이전 버전의 어플리케이션으로 전환해야 했었다. 그런데, 해당 서버에 어플리케이션의 개발자가 접근할 수 없어서 어플리케이션을 전환할 수 없는 상황이 발생하면, 해당 서버에 접속한 사용자들은 해당 서버가 제공하는 서비스를 원활하게 사용할 수 없다는 문제점이 있었다.
따라서, 서버에서 현재 동작하고 있는 어플리케이션의 안정성을 자동으로 판별한 뒤, 어플리케이션의 안정성에 문제가 있으면 이러한 어플리케이션을 안정성에 문제가 없는 이전 버전의 어플리케이션으로 자동으로 전환하는 기술에 대한 요구가 있다.
아울러, 서버에서 현재 동작하고 있는 어플리케이션보다 다음 버전의 어플리케이션이 개발자에 의하여 서버에 업로드될 수 있다. 그런데, 종래의 서버 환경 하에서는 현재 동작하고 있는 어플리케이션을 다음 버전의 어플리케이션으로 전환하고 배포하는 기능 또한 자동화되고 있지 않다.
이에, 서버에서 현재 동작하고 있는 어플리케이션을 다음 버전의 어플리케이션으로 자동으로 전환하고 배포하는 기술에 대한 요구가 있다.
한국공개특허공보, 2011-0070634 (2011.06.24.공개)
본 발명의 해결하고자 하는 과제는 서버에서 동작하면서 서버에 접속한 사용자에게 서비스를 제공하는데 사용되는 어플리케이션의 안정성에 문제가 있는지를 자동으로 판별하는 기술을 제공하는 것이며, 또한 안정성에 문제가 있는 어플리케이션을 안정성에 문제가 없는 이전 버전의 어플리케이션으로 자동으로 전환하는 기술을 제공하는 것이다.
또한, 본 발명의 해결하고자 하는 과제는 서버에서 현재 동작하고 있는 어플리케이션을 다음 버전의 어플리케이션으로 자동으로 전환하고 배포하는 기술을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 어플리케이션 관리 장치는 현재 동작하는 최신 버전의 어플리케이션의 동작에 있어서의 오류를 기초로 상기 최신 버전의 어플리케이션의 안정성을 판별하는 안정성 판별부, 상기 최신 버전의 어플리케이션의 이전 버전과 그 안정성을 함께 저장하는 저장부 및 상기 안정성 판별부로부터 상기 최신 버전의 어플리케이션의 안정성을 전달받으며, 상기 전달받은 안정성이 위험인 경우 상기 저장된 이전 버전의 어플리케이션 중에서 그에 상응하는 안정성을 기초로 어느 하나를 선별한 뒤, 상기 현재 동작하는 최신 버전의 어플리케이션을 상기 선별된 어플리케이션으로 전환하는 전환부를 포함한다.
본 발명의 일 양상에 따른 어플리케이션 관리 방법은 현재 동작하는 최신 버전의 어플리케이션의 동작에 있어서의 오류를 기초로 상기 최신 버전의 어플리케이션의 안정성을 위험 또는 안정으로 판별하는 단계, 상기 판별하는 단계에 의하여 판별된 상기 현재 동작하는 최신 버전의 어플리케이션의 안정성이 위험인 경우, 기 저장된 상기 최신 버전의 어플리케이션의 이전 버전 중에서 어느 하나를 그에 상응하는 안정성을 기초로 선별하는 단계 및 상기 현재 동작하는 최신 버전의 어플리케이션을 상기 선별된 어플리케이션으로 전환하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 서버에서 현재 동작하고 있는 어플리케이션의 안정성에 문제가 있는지를 자동으로 판별할 수 있으며, 이를 통해 안정성에 문제가 있는 현재의 어플리케이션을 안정성에 문제가 없는 이전 버전의 어플리케이션으로 자동으로 전환할 수 있다. 따라서, 안정성에 문제가 있는 어플리케이션이 설치되어 동작하는 서버에 어플리케이션의 개발자가 접근할 수 없는 경우에도, 해당 서버에 접속한 사용자들은 해당 서버가 제공하는 서비스를 원활하게 사용할 수 있다.
또한, 개발자에 의하여 서버에서 현재 동작하고 있는 어플리케이션보다 다음 버전의 어플리케이션이 서버에 업로드되는 경우, 현재 동작하고 있는 어플리케이션을 다음 버전의 어플리케이션으로 자동으로 전환하고 배포할 수 있다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 관리 장치 또는 방법이 적용된 시스템을 개념적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 관리 장치의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션 관리 방법의 절차를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따라 어플리케이션을 관리하는 절차를 예시적으로 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션 관리 장치 및 방법이 적용된 시스템을 개념적으로 도시한 도면이며, 다만 이는 예시적인 것이므로 본 발명의 사상이 이와 같이 도시된 시스템에만 적용되는 것으로 한정 해석되는 것은 아니다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 어플리케이션 관리 장치(100)는 서버(1000)에 포함될 수 있다.
서버(1000)는 개발자(30)에게 개발을 위한 인터페이스를 제공(S110)할 수 있으며, 이에 따라 개발자(30)는 서버(1000에 접속하여 어플리케이션(14)을 개발(S120)할 수 있다. 또한 서버(1000)에는 개발자(30)가 개발한 라이브러리와 같은 적어도 하나 이상의 어플리케이션(응용 프로그램)(14)이 설치될 수 있으며, 이에 따라 서버(1000)는 해당 서버(1000)에 접속한 사용자(20)에게 어플리케이션(14)에 기반한 서비스를 제공(S120)할 수 있다. 즉, 서버(1000)는 개발 기능과 서비스 제공 기능을 병행하는 DevOps 프로세스를 제공(S110)할 수 있으며, 다만 이에 한정되는 것은 아니다. 아울러, 서버(1000)에는 예를 들면 SaaS(Software As A Service)나 PaaS(Platform As A Service)와 같은 환경이 구축될 수 있다.
도 1에 도시된 바와 같이 서버(1000)는 사용자(20)에게 서버(1000)에서 현재 동작하는 최신 버전의 어플리케이션(15)을 기반으로 한 서비스를 제공(S120)할 수 있다. 그런데, 이러한 어플리케이션(15)의 동작에 있어서 오류가 발생하게 되면 서버(1000)에 접속한 사용자(20)는 서버(1000)로부터 원활하게 서비스를 제공받을 수 없는 상황을 겪을 수 있다. 종래에는 이러한 상황을 해결하기 위하여 개발자(30)가 서버(1000)에 접근하여 직접 오류가 발생한 어플리케이션을 오류가 없는 이전 버전의 어플리케이션으로 전환하였다. 그러나, 개발자(30)가 서버(1000)에 접근할 수 없는 경우에는, 이러한 상황이 해결될 수 없었다.
이에, 본 발명의 일 실시예에 따른 어플리케이션 관리 장치(100)를 서버(1000)에 적용함으로써, 현재 동작하는 최신 버전의 어플리케이션(15)에 오류가 있는 경우 이를 오류가 없는(즉, 도 1에 도시된 것과 같이 '안정'으로 태그된) 이전 버전의 어플리케이션(11 또는 12)으로 자동으로 전환하는 기술이 제공될 수 있는데, 이하에서는 이러한 어플리케이션 관리 장치(100)에 대하여 보다 자세하게 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션 관리 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 일 실시예에 따른 어플리케이션 관리 장치(100)는 안정성 판별부(130), 저장부(150) 및 전환부(170)를 포함하며, 추가적으로 파라미터 설정부(110)와 어플리케이션 입력부(190)를 포함할 수 있다. 다만, 이는 일 실시예에 따른 것이므로 본 발명의 사상이 이에 한정되는 것은 아니다.
먼저, 일 실시예에 따른 어플리케이션 관리 장치(100)는 현재 동작하는 최신 버전의 어플리케이션의 오류를 기초로 최신 버전의 어플리케이션의 안정성을 판별하고, 판별된 안정성을 기초로 현재 동작하는 최신 버전의 어플리케이션을 이전 버전의 안정성에 문제가 없는 어플리케이션으로 전환하는 기능을 제공한다. 이러한 어플리케이션 관리 장치(100)는 전 기능을 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 메모리 및 이러한 컴퓨터 프로그램을 구동하는 마이크로프로세서 등을 포함하는 연산 처리 장치의 형태로 구현될 수 있다.
파라미터 설정부(110)는 어플리케이션의 안정성을 판별할 때 기준이 되는 파라미터의 기준값을 저장한다. 또한 파라미터 설정부(110)는 이러한 기준값을 개발자로부터 입력받을 수 있으며, 입력받은 기준값으로 기존에 저장되어 있던 기준값을 갱신할 수 있다. 여기서 기준값은 어플리케이션의 동작에 있어서 참고가 되는 파라미터, 예를 들면 발생하는 오류를 측정하는 단위 시간, 오류의 발생 횟수 및 강도에 관한 중 적어도 하나 이상을 포함할 수 있다. 여기서, 단위 시간은 1시간, 1일 등일 수 있고, 오류의 발생 횟수는 10회 발생, 100회 발생 등일 수 있으며, 강도는 info, warning, error 등과 같이 오픈 소스 기반에서 정의한 강도를 따를 수 있으나 이에 한정되는 것은 아니다.
한편, 파라미터 설정부(110)는 전술한 단위 시간, 오류의 발생 횟수 및 강도 중 적어도 두 개 이상을 조합한 것을 어플리케이션의 안정성을 판별할 때의 기준값으로 저장 또는 갱신할 수 있다. 이러한 기준값으로는 '1일 동안 최대 5회의 error 강도까지는 허용한다'는 것 등을 예로 들 수 있다.
파라미터 설정부(110)는 개발자로부터 기준값을 입력받기 위한 입력 인터페이스 그리고 전술한 파라미터 설정부(110)의 기능을 수행하도록 프로그램된 명령어 및 마이크로프로세서에 의하여 구현될 수 있다.
안정성 판별부(130)는 어플리케이션의 동작에 있어서 발생하는 오류를 기초로 해당 어플리케이션의 안정성을 판별한다. 안정성이란 어플리케이션이 안정적으로 동작하는지 여부를 나타내는 성질일 수 있으며, 예를 들면 '안정'과 '위험'으로 구분될 수 있으나 더 세분화되어 구분될 수도 있다. 안정성 판별부(130)는 파라미터 설정부(110)에 저장된 기준값과 현재 동작하는 최신 버전의 어플리케이션에 발생한 오류를 기초로 안정성을 판별할 수 있다. 이를 위하여 도 2에는 도시되지 않았지만 안정성 판별부(130)는 서버(1000)로부터 현재 동작하는 최신 버전의 어플리케이션에 발생한 오류에 대한 정보를 전달받을 수 있다.
한편, 이러한 안정성 판별부(130)는 전술한 기능을 수행하도록 프로그램된 컴퓨터 프로그램을 저장하는 메모리 및 이러한 컴퓨터 프로그램을 구동하는 마이크로프로세서에 의하여 구현될 수 있다.
저장부(150)는 적어도 하나 이상의 어플리케이션을 저장하며, 메모리 등에 의하여 구현될 수 있다. 여기서 저장되는 어플리케이션은 예를 들면 안정성 판별부(130)에 의하여 안정성이 판별된 어플리케이션일 수 있으며, 이 때 안정성은 그에 상응하는 어플리케이션과 함께 저장부(150)에 저장될 수 있다.
추가적으로, 저장부(150)는 안정성 판별부(130)에 의하여 안정성이 판별된 시간을 그에 상응하는 어플리케이션과 함께 저장할 수 있다. 이러한 시간을 기초로, 후술하겠지만 전환부(170)는 가장 최근에 안정하다고 판별된 어플리케이션을 선별할 수 있다.
전환부(170)는 안정성 판별부(130)로부터 현재 동작하는 최신 버전의 어플리케이션의 안정성을 전달받는다. 그리고 전달받은 안정성이 위험인 경우 저장된 이전 버전의 어플리케이션 중 어느 하나를 그에 상응하는 안정성을 기초로 선별한다. 이 때, 전환부(170)는 저장부(150)에 저장된 시간을 기초로 가장 최근에 안정하다고 판별된 이전 버전의 어플리케이션을 선별할 수 있다. 이 후, 현재 동작하는 최신 버전의 어플리케이션을 선별된 어플리케이션으로 전환한다.
한편, 전환부(170)는 현재 동작하는 최신 버전의 어플리케이션의 안정성이 안정인 경우에도 이러한 현재 동작하는 최신 버전의 어플리케이션을 신규 어플리케이션으로 전환할 수 있다.
이를 위하여 본 발명의 일 실시예에 따른 어플리케이션 관리 장치(100)는 저장부(150)에 저장된 어플리케이션과는 상이한 신규 어플리케이션을 입력받는 어플리케이션 입력부(190)를 더 포함할 수 있다. 신규 어플리케이션은 예를 들면 개발자가 저장부(150)에 저장된 어플리케이션을 업그레이드한 어플리케이션이거나 또는 저장부(150)에 저장된 어플리케이션을 기반으로 하지 않은 전혀 새로운 어플리케이션일 수 있다. 여기서, 어플리케이션 입력부(190)는 개발자 등으로부터 어플리케이션을 입력받는 인터페이스를 제공하는 구성을 포함할 수 있다.
이러한 특징을 기초로 보다 구체적으로 살펴보면, 전환부(170)는 안정성 판별부(130)로부터 현재 동작하는 최신 버전의 어플리케이션의 안정성이 안정이라고 전달받을 수 있는데, 이 경우 저장부(150)는 이러한 안정성을 그에 상응하는 어플리케이션과 함께 저장할 수 있으며, 이 때 어플리케이션 입력부(190)에 신규 어플리케이션이 입력되면 전환부(170)는 현재 동작하는 어플리케이션을 신규 어플리케이션으로 전환할 수 있다.
여기서, 안정성 판별부(130)로부터 현재 동작하는 어플리케이션의 안정성이 안정이라고 전달받은 경우에 전환부(170)가 현재 동작하는 어플리케이션을 신규 어플리케이션으로 전환하는 것은 일 실시예에 불과한 것이므로 본 발명의 사상이 이에 한정되는 것은 아니다. 예를 들면, 안정성 판별부(130)로부터 현재 동작하는 어플리케이션의 안정성이 위험이라고 전달받은 경우에도, 전환부(170)는 현재 동작하는 어플리케이션을 신규 어플리케이션으로 전환할 수 있다.
이하에서는 본 발명의 일 실시예에 따른 어플리케이션 관리 방법의 절차에 대하여 살펴보기로 한다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션 관리 방법의 절차를 도시한 도면인며, 이러한 어플리케이션 관리 방법은 도 2에 도시된 어플리케이션 관리 장치에 의하여 수행될 수 있다.
도 3을 참조하면, 어플리케이션의 동작에 있어서의 오류를 기초로 현재 동작하는 최신 버전의 어플리케이션의 안정성을 판별하는 단계(S200), S200의 판별하는 단계에 의하여 판별된 현재 동작하는 최신 버전의 어플리케이션의 안정성이 위험인 경우, 최신 버전의 어플리케이션의 이전 버전의 어플리케이션 중 어느 하나를 그에 상응하는 안정성을 기초로 선별하는 단계(S210) 및 현재 동작하는 최신 버전의 어플리케이션을 선별된 어플리케이션으로 전환하는 단계(S220)가 수행될 수 있다.
이하에서는 도 4를 도 2 및 도 3과 함께 참조하여 본 발명의 일 실시예에 따라 어플리케이션을 관리하는 절차 및 그에 따른 효과를 보다 자세하게 살펴보기로 한다.
도 4는 본 발명의 일 실시예에 따라 어플리케이션을 관리하는 절차를 예시적으로 도시한 도면으로, 이러한 절차는 도 2에 도시된 어플리케이션 관리 장치(100) 및 도 3에 도시된 어플리케이션 관리 방법에 의하여 각각 수행될 수 있다.
어플리케이션 관리 장치(100)는 어플리케이션의 동작에 있어서 발생하는 오류를 기초로 어플리케이션의 안정성을 예를 들면 '안정'과 '위험'으로 판별한다(S300). 이 때, 어플리케이션 관리 장치(100)는 서버(1000)로부터 현재 동작하는 최신 버전의 어플리케이션에 발생한 오류에 대한 정보를 전달받을 수 있으며, 이러한 오류 및 어플리케이션의 안정성을 판별할 때 기준이 되는 기 설정된 기준값을 기초로 어플리케이션의 안정성을 판별할 수 있다. 여기서 기준값은 예를 들면 1시간이나 1일 등과 같은 단위 시간, 10회나 100회와 같은 오류의 발생 횟수, info나 warning 그리고 error 등과 같은 오류의 강도 등일 수 있으며, 또한 '1일 동안 최대 5회의 error 강도까지는 허용한다'는 것과 같이 단위 시간, 오류의 발생 횟수 및 강도 중 적어도 두 개 이상을 조합한 것일 수도 있다.
이를 통해 살펴보면, 어플리케이션 관리 장치(100)는 현재 동작하는 최신 버전의 어플리케이션의 오류를 기초로 어플리케이션의 안정성을 자동으로 판별할 수 있다.
다음으로, 어플리케이션 관리 장치(100)는 판별된 안정성을 그에 상응하는 어플리케이션과 함께 저장한다(S310).
이 때, 어플리케이션 관리 장치(100)는 안정성 판별부(130)에 의하여 안정성이 판별된 시간을 그에 상응하는 어플리케이션과 함께 저장할 수 있다. 이러한 시간을 기초로, 어플리케이션 관리 장치(100)는 가장 최근에 안정하다고 판별된 어플리케이션을 선별할 수 있다.
현재 동작하는 어플리케이션의 안정성이 안정인 경우(S320), 어플리케이션 관리 장치(100)는 신규 어플리케이션이 입력되었는지 여부를 판단할 수 있다(S330). 신규 어플리케이션이 입력되지 않았으면 현재 동작하는 어플리케이션이 계속하여 동작하게 된다. 그러나, 신규 어플리케이션이 입력되는 경우 어플리케이션 관리 장치(100)는 현재 동작하는 어플리케이션을 신규 어플리케이션으로 전환할 수 있다(S340).
여기서, 종래에는 신규 어플리케이션이 입력되는 경우에도 개발자가 직접 서버에 접속하여 현재 동작하는 어플리케이션을 이러한 신규 어플리케이션으로 전환하고 배포하여야 하였으나, 본 발명의 일 실시예에 따르면 신규 어플리케이션이 입력되는 경우 개발자에 의하지 않고 자동으로 이를 전환하고 배포할 수 있다.
한편, 현재 동작하는 최신 버전의 어플리케이션의 안정성이 위험인 경우(S320), 어플리케이션 관리 장치(100)는 저장된 어플리케이션 중 안정성이 안정인 어플리케이션을 선별한다(S350). 이 때, 어플리케이션 관리 장치(100)는 어플리케이션과 함께 저장된 시간(안정성이 평가된 시간)을 기초로, 가장 최근에 안정이라고 판별된 어플리케이션을 선별할 수 있다. 이 후, 어플리케이션 관리 장치(100)는 현재 동작하는 최신 버전의 어플리케이션을 선별된 어플리케이션으로 전환한다(S360).
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따르면 서버에서 현재 동작하고 있는 어플리케이션의 안정성에 문제가 있는지를 자동으로 판별할 수 있으며, 이를 통해 안정성에 문제가 있는 현재의 어플리케이션을 안정성에 문제가 없다고 판별된 이전 버전의 어플리케이션으로 자동으로 전환할 수 있다. 따라서, 안정성에 문제가 있는 어플리케이션이 설치되어 동작하는 서버에 어플리케이션의 개발자가 접근할 수 없는 경우에도, 해당 서버에 접속한 사용자들은 해당 서버에서 제공하는 서비스를 원활하게 사용할 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 품질에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명의 실시예에 따르면 안정성에 문제가 있는 어플리케이션이 설치되어 동작하는 서버에 어플리케이션의 개발자가 접근할 수 없는 경우에도, 해당 서버에 접속한 사용자들은 해당 서버의 어플리케이션에 의하여 제공되는 서비스를 원활하게 사용할 수 있다.
100: 어플리케이션 관리 장치
110: 파라미터 설정부 130: 안정성 판별부
150: 저장부 170: 전환부
190: 어플리케이션 입력부

Claims (7)

  1. 현재 동작하는 최신 버전의 어플리케이션의 동작에 있어서의 오류를 기초로 상기 최신 버전의 어플리케이션의 안정성을 판별하는 안정성 판별부;
    상기 최신 버전의 어플리케이션의 이전 버전의 어플리케이션들, 상기 이전 버전의 어플리케이션들 각각의 안정성 및 상기 이전 버전의 어플리케이션들 각각의 상기 안정성이 판별된 시간을 함께 저장하는 저장부; 및
    상기 안정성 판별부로부터 상기 최신 버전의 어플리케이션의 안정성을 전달받으며, 상기 전달받은 안정성이 위험인 경우, 상기 이전 버전의 어플리케이션들 각각의 안전성 및 상기 이전 버전의 어플리케이션들 각각의 상기 안정성이 판별된 시간에 기초하여, 상기 저장된 이전 버전의 어플리케이션들 중에서 어느 하나를 선별한 뒤, 상기 현재 동작하는 최신 버전의 어플리케이션을 상기 선별된 어플리케이션으로 전환하는 전환부를 포함하는
    어플리케이션 관리 장치.
  2. 제 1 항에 있어서,
    상기 안정성 판별부는,
    기 설정된 시간 동안 발생한 상기 오류의 횟수 및 강도를 기초로 상기 안정성을 판별하는
    어플리케이션 관리 장치.
  3. 제 1 항에 있어서,
    상기 안정성 판별부는 상기 안정성을 주기적으로 판별하고,
    상기 저장부는,
    상기 안정성이 주기적으로 판별될 때마다 상기 주기적으로 판별된 안정성을 그에 상응하는 어플리케이션에 대응되도록 저장하는
    어플리케이션 관리 장치.
  4. 제 1 항에 있어서,
    상기 전환부는,
    상기 안정성 판별부가 상기 최신 버전의 어플리케이션의 안정성을 위험으로 판단한 경우, 상기 저장부에 저장된 이전 버전의 어플리케이션들 중에서 안정성이 안정이면서 상기 안전성이 판별된 시간이 가장 최근인 것을 선별하는
    어플리케이션 관리 장치.
  5. 제 1 항에 있어서,
    어플리케이션을 입력받는 어플리케이션 입력부를 더 포함하고,
    상기 전환부는,
    상기 어플리케이션 입력부를 통하여 상기 현재 동작하는 어플리케이션보다 다음 버전의 어플리케이션이 입력되면, 상기 현재 동작하는 어플리케이션을 상기 다음 버전의 어플리케이션으로 전환하는
    어플리케이션 관리 장치.
  6. 제 1 항에 있어서,
    상기 어플리케이션 관리 장치는,
    다수의 사용자에게 상기 선별된 어플리케이션을 기초로 하는 서비스를 제공하는 서버에 포함되는
    어플리케이션 관리 장치.
  7. 어플리케이션 관리 장치에 의하여 수행되는 어플리케이션 관리 방법으로서,
    현재 동작하는 최신 버전의 어플리케이션의 동작에 있어서의 오류를 기초로 상기 최신 버전의 어플리케이션의 안정성을 위험 또는 안정으로 판별하는 단계;
    상기 판별하는 단계에 의하여 판별된 상기 현재 동작하는 최신 버전의 어플리케이션의 안정성이 위험인 경우, 상기 최신 버전의 어플리케이션의 이전 버전의 기 저장된 어플리케이션들 각각의 안전성 및 상기 기 저장된 어플리케이션들 각각의 상기 안정성이 판별된 시간에 기초하여, 상기 기 저장된 어플리케이션들 중에서 어느 하나를 안정성을 기초로 선별하는 단계; 및
    상기 현재 동작하는 최신 버전의 어플리케이션을 상기 선별된 어플리케이션으로 전환하는 단계를 포함하는
    어플리케이션 관리 방법.
KR1020150148655A 2015-10-26 2015-10-26 어플리케이션 관리 장치 및 방법 KR102205458B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150148655A KR102205458B1 (ko) 2015-10-26 2015-10-26 어플리케이션 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150148655A KR102205458B1 (ko) 2015-10-26 2015-10-26 어플리케이션 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170047931A KR20170047931A (ko) 2017-05-08
KR102205458B1 true KR102205458B1 (ko) 2021-01-20

Family

ID=60163953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150148655A KR102205458B1 (ko) 2015-10-26 2015-10-26 어플리케이션 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102205458B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060142A (ja) * 2009-09-11 2011-03-24 Ricoh Co Ltd 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101231746B1 (ko) 2009-12-18 2013-02-08 한국전자통신연구원 SaaS 환경에서의 소프트웨어 개발 시스템
CN103530199B (zh) * 2012-07-02 2015-12-02 腾讯科技(深圳)有限公司 一种修复软件运行错误的方法、装置及系统
KR102026637B1 (ko) * 2012-12-20 2019-09-30 엘지전자 주식회사 디스플레이장치 및 이의 제어방법
KR101600460B1 (ko) * 2013-06-17 2016-03-08 한국산업기술대학교산학협력단 보안기능을 갖는 ecu 업그레이드시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060142A (ja) * 2009-09-11 2011-03-24 Ricoh Co Ltd 統合管理装置、統合管理システム、統合管理方法、統合管理プログラム、及びそのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
KR20170047931A (ko) 2017-05-08

Similar Documents

Publication Publication Date Title
CN108229686B (zh) 模型训练、预测方法、装置、电子设备及机器学习平台
US8707292B2 (en) Software service notifications based upon software usage, configuration, and deployment topology
Bergmayr et al. UML-based cloud application modeling with libraries, profiles, and templates
US20170085419A1 (en) System and method for deploying an application
US20170269921A1 (en) Continuous and automatic application development and deployment
KR101155207B1 (ko) 소프트웨어 개발 방법 및 이를 위한 장치
RU2011144144A (ru) Способ и устройство для проверки исполняемой программы с использованием модели
CN108459792B (zh) 一种流量切换方法、装置、及计算机设备
US20190347190A1 (en) Code usage map
JP6258159B2 (ja) プログラム情報生成システム、方法、及びプログラム
CN109753300B (zh) 一种算法升级方法、计算任务发送方法及相关装置
CN107203465A (zh) 系统接口测试方法及装置
WO2014149590A1 (en) Systems and methods for software development
CN110502415A (zh) 一种埋点设置方法、装置及设备
JP6879625B2 (ja) プログラマブルコントローラ、管理装置および制御システム
CN105354043A (zh) 终端的升级方法及装置
KR102205458B1 (ko) 어플리케이션 관리 장치 및 방법
US11240127B1 (en) Indicator tools
CN103973681A (zh) 用于运维管理审计系统的二层密码代填方法及模块
CN108052335B (zh) 数据管理方法、装置、计算设备及存储介质
CN103984541A (zh) 基于终端源代码生成应用程序的方法和系统
US11435995B2 (en) Composite content views
Durán et al. R-MOZART: a reconfiguration tool for WebThings applications
JP2016114974A (ja) Bios更新装置、方法及びプログラム
EP3330854A1 (en) Automatic selection of infrastructure on a hybrid cloud environment

Legal Events

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