KR101123685B1 - 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템 - Google Patents

동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템 Download PDF

Info

Publication number
KR101123685B1
KR101123685B1 KR1020090060008A KR20090060008A KR101123685B1 KR 101123685 B1 KR101123685 B1 KR 101123685B1 KR 1020090060008 A KR1020090060008 A KR 1020090060008A KR 20090060008 A KR20090060008 A KR 20090060008A KR 101123685 B1 KR101123685 B1 KR 101123685B1
Authority
KR
South Korea
Prior art keywords
terminal
upgrade
program
patch file
flash memory
Prior art date
Application number
KR1020090060008A
Other languages
English (en)
Other versions
KR20110002516A (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 KR1020090060008A priority Critical patent/KR101123685B1/ko
Publication of KR20110002516A publication Critical patent/KR20110002516A/ko
Application granted granted Critical
Publication of KR101123685B1 publication Critical patent/KR101123685B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Abstract

본 발명은 단말기로 전송된 패치파일을 이용하여 RAM 상의 프로그램을 동적으로 업그레이드한 다음에, 전송된 패치파일에 버그가 존재하는 경우 단말기를 재부팅하고, 단말기 재부팅 정보를 이용하여 단말기 내의 프로그램을 효과적으로 업그레이드하기 위한 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템에 관한 것이다. 이를 위해 본 발명은 업그레이드 서버로부터 업그레이드 정보를 포함하는 패치파일을 수신하는 단계; 상기 패치파일을 이용하여 상기 단말기 내 RAM 상에서 업그레이드 대상 프로그램을 동적으로 업그레이드 하는 단계; 상기 패치파일에 버그가 존재하지 않아 상기 업그레이드된 프로그램을 실행하는데 문제가 발생하지 않는 경우, 상기 업그레이드 서버로부터 플래쉬 메모리 업그레이드 정보를 수신하는 단계; 및 상기 플래쉬 메모리 업그레이드 정보를 이용하여 상기 단말기 내 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하는 단계;를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법을 제공한다. 또한, 본 발명은 만일 업그레이드된 프로그램을 실행하는데 문제가 발생하는 경우, 단말기를 재부팅함으로써 기 적용된 업그레이드 작업을 안정하게 취소시킬 수 있는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법을 제공한다.

Description

동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템{System and method for upgrading program in terminal with dynamic software upgrade technology}
본 발명은 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템에 관한 것으로, 더욱 상세하게는 단말기로 전송된 패치파일을 이용하여 RAM 상에서 프로그램을 동적으로 업그레이드한 다음에, 전송된 패치파일에 버그가 존재하는 경우 단말기를 재부팅하고, 단말기 재부팅 정보를 이용하여 단말기 내의 프로그램을 효과적으로 업그레이드하기 위한 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템에 관한 것이다.
지금까지의 이동통신 단말기에서의 일반적인 프로그램 업그레이드(또는 신규 프로그램 설치)는 사용자가 새로운 버전의 패치파일(또는 신규 프로그램을) 다운로드 받아 설치하는 방법이 대부분이다. 즉, 통상적으로 사용되는 이동통신 단말기의 프로그램 업그레이드 방법은 사용자가 직접 이동통신 단말기의 서비스 업체나 대리점 등을 방문하여 오프라인으로 업그레이드 하는 방법과, 무선 데이터 망을 이용하 는 방법이 있을 수 있다. 그리고 그 중에서 무선 데이터 망을 이용하는 방법은 사용자가 직접대리점 등을 방문할 필요가 없다는 이점 때문에 주로 사용되고 있다.
그런데 프로그램 업그레이드를 위해 배포하는 패치파일에 버그가 존재하는 경우에는 업그레이드를 통해 예상치 못한 결과가 발생하여 단말기가 작동하지 않는 문제점이 발생할 수 있으나 이에 대한 구체적인 해결방법이 존재하지 않는다.
또한 신규 프로그램을 배포하는 경우에도 단말기 내에서 신규 프로그램을 실행했을 때 예상치 못한 문제가 발생하여 단말기가 작동하지 않는 문제점이 발생하는데, 이 경우에 프로그램 개발회사는 신규 프로그램에 문제점이 있다는 사실을 빠르게 인식하지 못하여 신규 프로그램의 검증에 시간이 많이 소요되는 문제점이 있다.
종래기술인 "소프트웨어 업그레이드 수행을 위한 시스템 및 방법 "(출원번호 10-2007-0113537)에는 휴대단말기에서 소프트웨어를 업그레이드하기 위한 시스템 및 방법이 개시되어 있다. 상기 종래기술은 관리 서버에서 소프트웨어 업그레이드 정보를 포함하는 적어도 하나의 메시지를 생성하여, 휴대단말기로 전송하는 과정과, 휴대단말기에서 소프트웨어 업그레이드 정보가 포함된 메시지가 수신되면 상기 수신된 소프트웨어 업그레이드정보를 판단하고 상기 판단된 소프트웨어 업그레이드 정보를 이용하여 해당 소프트웨어를 업그레이드하는 과정을 통해 소프트웨어 업그레이드를 수행한다.
그러나 상기 종래기술에는 소프트웨어(즉 프로그램)를 업그레이드하기 위해 전송된 메시지(예를 들면, 패치파일)에 버그가 존재하는 경우에 대한 해결방법이 존재하지 않아, 전송된 메시지에 포함된 버그에 의해 휴대폰단말기가 작동되지 않는 문제점을 해결할 수 없었으며, 상기 버그의 존재여부에 대한 신속한 판단을 할 수 없어 메시지 제공회사가 신속하게 버그를 제거할 수 없는 문제점이 있었다.
임베디드 시스템의 경우 업그레이드 작업으로 문제가 생기면 장비 자체가 동작을 멈추는 경우도 발생하고 또한 이의 복구도 아주 어렵기 때문에(대부분 AS 센터에 방문하여 해결함) 업그레이드 작업을 매우 신중하게 수행해야 하는 문제점이 있다. 본 발명을 적용하면 기 적용된 업그레이드 작업을 쉽고, 안전하고, 확실하게 취소시키고 원상복구시킬 수 있으며, 임베디드 시스템에서의 소프트웨어 업그레이드 작업의 위험성을 최소화하여 사용자로 하여금 임베디드 시스템 장비의 소프트웨어 업그레이드 작업을 부담없이 수행하게 도와준다.
또한, 소프트웨어 개발사가 직접 검증작업을 수행하는 경우 다양한 실제 환경을 대상으로 한 검증이 현실적으로 불가능한 문제점이 있으나, 본 발명을 이용하면 실제 환경에서 구동중인 임베디드 시스템 장비에서 신규 소프트웨어를 구동시키고 그 결과를 수집할 수 있게 되므로 실제 사용자들이 사용하고 있는 장비를 검증용 테스트베드처럼 활용할 수 있다는 잇점도 얻을 수 있다. 즉, 보다 정확하고 현실성있는 테스트가 가능하게 된다.
상기와 같은 문제점을 해결하기 위해, 본 발명은 단말기 내 프로그램을 업그레이드하기 위한 패치파일을 배포하는 경우에 있어서, 패치파일에 버그가 존재하는 경우에 단말기를 재부팅함으로써 원래 상태로 되돌아 갈 수 있는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템을 제공하는데 그 목적이 있다.
또한 상기와 같은 문제점을 해결하기 위해, 본 발명은 단말기에 신규 프로그램을 설치하는 경우에 있어서, 신규 프로그램에 오류가 존재하는 경우에 단말기는 재부팅을 통해 원래 상태로 되돌리고, 프로그램 개발업자는 오류 존재 여부를 쉽게 파악할 수 있는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 프로그램을 설치하는 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위해, 본 발명은 업그레이드 서버로부터 업그레이드 정보를 포함하는 패치파일을 수신하는 단계; 상기 패치파일을 이용하여 상기 단말기 내 RAM 상에서 업그레이드 대상 프로그램을 동적으로 업그레이드 하는 단계; 상기 패치파일에 버그가 존재하지 않아 상기 업그레이드된 프로그램을 실행하는데 문제가 발생하지 않는 경우, 상기 업그레이드 서버로부터 플래쉬 메모리 업그레이드 정보를 수신하는 단계; 및 상기 플래쉬 메모리 업그레이드 정보를 이용하여 상기 단말기 내 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하는 단 계;를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법을 제공한다.
상기 단말기 내의 프로그램 업그레이드 방법은 상기 패치파일에 버그가 존재하여 상기 업그레이드된 프로그램을 실행하는데 문제가 발생하는 경우, 상기 단말기 내 플레쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하지 않고 상기 단말기를 재부팅하는 단계; 및 상기 재부팅 발생 정보를 상기 업그레이드 서버로 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
상기 단말기를 재부팅하는 단계는 상기 단말기 내의 Watchdog프로그램에 의해 수행되거나 또는 사용자에 의해 수행되는 것을 특징으로 한다.
상기 플래쉬 메모리 업그레이드 정보는 상기 패치파일을 이용하여 상기 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하라는 정보를 포함하거나, 또는 상기 패치파일 및 상기 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하라는 특정 플래그 정보를 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위해, 본 발명은 단말기 내의 프로그램을 업그레이드하는 방법에 있어서, 복수의 단말기로 단말기 내 RAM 상에서 업그레이드 대상 프로그램을 동적으로 업그레이드 하기 위한 패치파일을 송신하는 단계; 상기 복수의 단말기로부터 상기 패치파일에 존재하는 버그에 의해 발생한 상기 복수의 단말기의 재부팅 정보를 수신하는 단계; 및 상기 재부팅 정보를 이용하여 상기 패치파일의 적합여부를 결정하는 단계;를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법을 제공한다.
상기 패치파일의 적합여부를 결정하는 단계는 상기 재부팅 정보를 이용하여 복수의 단말기에서 발생한 재부팅 횟수를 계산하는 단계; 및 상기 재부팅 횟수가 미리 설정된 기준값을 초과하는 경우 상기 패치파일이 부적합하다고 결정하고, 상기 재부팅 횟수가 상기 기준값을 초과하지 않는 경우 상기 패치파일이 적합하다고 결정하는 단계;를 포함하는 것을 특징으로 한다.
상기 단말기 내의 프로그램 업그레이드 방법은 상기 패치파일이 적합하다고 결정된 경우, 상기 복수의 단말기로 단말기 내의 플래쉬 메모리에 저장된 프로그램을 업그레이드하기 위한 플래쉬 메모리 업그레이드 정보를 송신하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위해, 본 발명은 업그레이드 정보를 포함하는 패치파일을 복수의 단말기로 송신하기 위한 업그레이드 서버; 및 상기 패치파일을 이용하여 상기 단말기 내의 RAM 상에서 업그레이드 대상 프로그램을 동적으로 업그레이드하고, 상기 업그레이드된 프로그램 실행을 통해 획득된 상기 패치파일에 버그가 존재하는지에 관한 정보를 상기 업그레이드 서버로 전송하기 위한 단말기;를 포함하되, 상기 업그레이드 서버는 상기 버그 존재여부에 관한 정보를 이용하여 상기 패치파일의 적합여부를 결정하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 시스템을 제공한다.
상기 버그 존재여부에 관한 정보는 상기 단말기 재부팅 정보를 포함하는 것을 특징으로 하며, 상기 업그레이드 서버는 상기 단말기 재부팅 정보를 이용하여 재부팅 횟수를 계산하고, 상기 재부팅 횟수가 미리 결정된 기준값을 초과하는 경우 상기 패치파일이 부적합하다고 결정하고, 상기 재부팅 횟수가 미리 결정된 기준값을 초과하지 않는 경우 상기 패치파일이 적합하다고 결정하는 것을 특징으로 한다.
상기 업그레이드 서버는 상기 패치파일이 적합하고 결정된 경우, 상기 단말기로 단말기 내의 플래쉬 메모리에 저장된 프로그램을 업그레이드하기 위한 플래쉬 메모리 업그레이드 정보를 송신하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위해 본 발명은 프로그램 공급 서버로부터 신규 소프트웨어를 수신하는 단계; 동적 소프트웨어 업그레이드 기술을 이용하여 상기 신규 소프트웨어를 단말기 내 RAM 상에서 실행하는 단계; 상기 신규 소프트웨어를 실행하는데 문제가 발생하지 않는 경우, 상기 프로그램 공급 서버로부터 플래쉬 메모리 설치 정보를 수신하는 단계; 및 상기 플래쉬 메모리 설치 정보를 이용하여 상기 단말기 내 플래쉬메모리에 상기 신규 소프트웨어를 저장하는 단계;를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 소프트웨어를 설치하는 방법을 제공한다.
상기 단말기 내에 신규 소프트웨어를 설치하는 방법은 상기 신규 소프트웨어를 실행하는데 문제가 발생하는 경우, 상기 단말기 내 플레쉬메모리에 상기 신규 소프트웨어를 저장하지 않고 상기 단말기를 재부팅하는 단계; 및 상기 재부팅 발생 정보를 상기 프로그램공급서버로 송신하는 단계;를 더 포함하는 것을 특징으로 한다.
본 발명에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프 로그램 업그레이드 방법 및 시스템은 잘못된 패치파일을 배포하는 경우에, 최악의 경우라도 모든 단말기가 한 번씩만 재부팅되면 모두 패치파일 적용 이전의 원래 상태로 되돌아 갈 수 있는 효과가 있다. 따라서 단말기의 패치파일을 배포할 때 위험부담이 그만큼 적어져, 패치파일에 대한 사전테스트에 지나치게 많은 시간과 비용을 투입할 필요가 없게 해 주는 효과가 있다.
단말기용 프로그램 개발 회사의 입장에서 보면 본 발명에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템을 사용하는 경우 제품 검증 시간을 단축함으로써 제품의 시장 출시 시점을 앞당길 수 있는 경제적인 이득을 얻을 수 있는 효과가 있다. 이는 단말기 사용자들이 자발적으로 베타테스트를 수행해 주기 때문이다..
단말기 사용자들의 입장에서 보면 패치파일의 적용 작업이 동적 SW 업그레이드 기술에 의해 (사용자가 모르는 사이에) 수행되기 때문에 부담이나 거추장스러움을 느끼지 않으며, 재부팅이라는 간단한 방법에 의해 패치파일이 적용되기 전의 이전상태로 쉽게 돌아갈 수 있기 때문에 부담감도 전혀 느끼지 않는 효과가 있다.
본 명세서에서 실시예들에 관한 설명은 구조적 내지 기능적 설명들을 위하여 예시된 것에 불과하므로, 본 발명의 권리범위는 본 명세서 설명된 실시예들에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예들은 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 실시예들의 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
도 1은 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램을 업그레이드하기 위한 시스템의 구성도이다. 도 1을 참조하면, 본 발명에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램을 업그레이드하기 위한 시스템은 업그레이드서버(100) 및 사용자단말기(300)를 포함한다.
상기 업그레이드서버(100)는 사용자단말기(300) 내의 특정 프로그램을 업그레이드하기 위한 패치파일을 네트워크(200)를 이용하여 상기 사용자단말기(300)로 전송한다. 상기 네트워크(200)는 유선 또는 무선 인터넷통신망을 포함하고, 상기 사용자단말기(300)는 휴대폰, PDA, 컴퓨터, 세탑박스 등을 포함한다.
상기 사용자단말기(300)는 상기 패치파일을 이용하여 상기 사용자단말기(300) 내의 RAM 상에서 업그레이드 대상 프로그램을 동적으로 업그레이드하고, 상기 업그레이드된 프로그램 실행을 통해 획득된 상기 패치파일에 버그가 존재하는지에 관한 정보를 상기 네트워크(200)를 통해 상기 업그레이드서버(100)로 전송하는 역할을 수행한다.
상기 업그레이드서버(100)는 상기 네트워크(200)를 통해 수신된 상기 버그 존재여부에 관한 정보를 이용하여 패치파일의 적합여부를 결정하고, 상기 패치파일이 적합한 경우 상기 사용자단말기(300)로 사용자단말기(300) 내의 플래쉬 메모리에 저장된 프로그램을 업그레이드하기 위한 플래쉬 메모리 업그레이드 정보를 송신하는 역할을 수행한다.
도 2는 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용하여 RAM 상에서 프로그램을 업그레이드하기 위한 사용자단말기의 구성도이다. 도 2를 참조하면, 본 발명에 따른 사용자단말기(300)는 패치파일저장모듈(310), 동적소프트웨어업그레이드모듈(320), RAM(330) 및 플래쉬메모리(340)를 포함한다.
상기 패치파일저장모듈(310)은 업그레이드서버(100)로부터 수신한 패치파일을 저장하는 역할을 수행한다. 도 2에서 상기 패치파일저장모듈(310)은 상기 RAM(330)과 별도로 존재하는 것으로 도시하고 있으나, 본 발명은 이에 한정하지 않고 상기 패치파일저장모듈(310)이 상기 RAM(330) 내에 존재하는 것을 포함한다.
상기 동적소프트웨어업그레이드모듈(320)은 상기 패치파일을 이용하여 상기 RAM(330) 상에서 업그레이드 대상이 되는 프로그램을 업그레이하는 역할을 수행하고, 상기 업그레이드서버(100)로부터 플래쉬메모리 업그레이드 정보를 수신하면 플래쉬메모리(340)에 저장된 업그레이드 대상 프로그램을 업그레이드하는 역할을 수행한다.
도 3은 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램을 업그레이드하는 방법을 나타내는 흐름도이다.
도 1, 도 2 및 도 3을 참조하면, 먼저 사용자는 사용자단말기(300)를 이용하여 업그레이드서버(100)에 접속하여 "단말기 소프트웨어 업그레이드 서비스”에 가입한다(S301). 업그레이드서버(100)는 새로운 업그레이드용 패치파일이 나오면 상기 패치파일을 네트워크(200)를 이용하여 상기 사용자단말기(300)로 전송한다(S302).
사용자단말기(300) 내의 동적소프트웨어업그레이드모듈(320)은 RAM(330) 상에서 상기 패치파일을 적용한다(S303). 즉, 상기 업그레이드 정보를 포함하는 패치파일을 이용하여 RAM(330) 상에서 업그레이대 대상 프로그램을 동적으로 업그레이드 한다. 이 때 플래쉬메모리(340)에 대한 업그레이드 작업은 수행되지 않는다. 사 용자는 (모르는 사이에) 새로운 패치파일이 적용된 프로그램을 사용하게 되고, 자연스럽게 새로운 패치파일에 대한 검증작업에 참여하게 된다.
만일, 상기 업그레이드서버(100)로부터 상기 사용자단말기(300)로 전송된 패치파일에 예상치 못한 새로운 버그가 존재하는 경우(S304), 이 버그에 의해 문제가 발생한 사용자단말기(300)는 Watchdog 프로그램에 의해서 또는 사용자에 의해서 재부팅된다(S305). 이와 같이 사용자단말기(300)가 비정상적으로 재부팅되는 경우 사용자단말기(300)는 스스로 이런 사실을 인지하여 부팅 과정 중에 업그레이드서버(100)로 비정상적인 재부팅이 발생했음을 나타내는 재부팅 발생정보를 전송한다(S306).
상기 업그레이드서버(100)는 수집된 재부팅 발생정보를 카운트하여 얼마나 많은 사용자단말기(300)에서 문제가 발생했는지를 파악하고(S308), 재부팅 발생 횟수가 기준값을 초과하는 경우(S309) 기 배포된 패치파일이 부적합하다는 결론을 내린다(S310). 사용자단말기(300)에 전송된(RAM상에 설치된) 패치파일은 시간이 지나면서 사용자단말기(300)가 재부팅되는 과정을 통해 자연적으로 소멸된다(S307).
만일, 배포된 패치파일에 별다른 문제 보고가 없는 경우, 즉 재부팅 발생 횟수가 기준값을 초과하지 않는 경우(S309), 상기 업그레이드서버(100)는 상기 사용자단말기(300)로 플레쉬메모리 업그레이드 정보를 송신한다(S312). 상기 플래쉬메모리 업그레이드 정보는 기 배포된 패치파일을 이용하여 사용자단말기(300) 내의 플래쉬메모리(340)내에 저장되어 있는 프로그램을 업그레이드하라는 특정 명령정보를 포함하거나, 또는 다시 사용자단말기(300)에 기 배포된 패치파일 및 상기 패치 파일을 이용하여 플래쉬메모리(340) 내에 저장된 프로그램을 업그레이드하기 위한 특별한 flag 정보를 포함한다.
사용자단말기(300)는 상기 플레쉬메모리 업그레이드 정보를 이용하여 플래쉬메모리(340)내에 저장되어 있는 프로그램을 업그레이드한다(S313). 즉, 사용자단말기(300)는 배포된 패치파일에 별다른 문제가 없는 경우에 부팅 등 특별한 프로세스를 수행하지 않고 그대로 있다가 상기 플레쉬메모리 업그레이드 정보를 수신하면 플래쉬메모리(340)내에 저장되어 있는 프로그램을 업그레이드한다.
이와같이 본 발명의 기본 사상은 프로그램을 업데이트하는 경우 뿐만 아니라, 신규 프로그램을 배포하는 과정 등 다양한 분야에 이용될 수 있다.
도 4는 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 프로그램을 설치하는 방법을 나타내는 흐름도이다. 도 4를 참조하면, 본 발명에 따른 단말기 내에 신규 프로그램을 설치하는 방법은 도 3을 참조하여 기술된 단말기 내의 프로그램을 업그레이드하는 방법과 유사하다.
도 1, 도 2 및 도 4을 참조하면, 먼저 사용자는 사용자단말기(300)를 이용하여 프로그램공급서버(400)에 접속하여 "신규 소프트웨어 테스트 서비스”에 가입한다(S401). 프로그램공급서버(400)는 신규 소프트웨어가 나오면 상기 신규 소프트웨어를 네트워크(200)를 이용하여 상기 사용자단말기(300)로 전송한다(S402).
사용자단말기(300) 내의 동적소프트웨어업그레이드모듈(320)은 상기 신규 소프트웨어를 RAM(330) 상에서 실행한다(S403). 이 때 상기 신규 소프트웨어를 플래쉬메모리(340)에 설치하지 않는다.
만일, 상기 프로그램공급서버(400)로부터 상기 사용자단말기(300)로 전송된 신규 소프트웨어에 예상치 못한 문제점이 존재하는 경우(S404), 상기 문제가 발생한 사용자단말기(300)는 Watchdog 프로그램에 의해서 또는 사용자에 의해서 재부팅된다(S405). 이와 같이 사용자단말기(300)가 비정상적으로 재부팅되는 경우 사용자단말기(300)는 스스로 이런 사실을 인지하여 부팅 과정 중에 프로그램공급서버(400)로 비정상적인 재부팅이 발생했음을 나타내는 재부팅 발생정보를 전송한다(S406).
상기 프로그램공급서버(400)는 수집된 재부팅 발생정보를 카운트하여 얼마나 많은 사용자단말기(300)에서 문제가 발생했는지를 파악하고(S408), 재부팅 발생 횟수가 기준값을 초과하는 경우(S409) 기 배포된 신규 소프트웨어가 부적합하다는 결론을 내린다(S410). 사용자단말기(300) 내의 RAM(330)상에 설치된 신규 소프트웨어는 시간이 지나면서 사용자단말기(300)가 재부팅되는 과정을 통해 자연적으로 소멸된다(S407).
만일, 배포된 신규 소프트웨어에 별다른 문제 보고가 없는 경우, 즉 재부팅 발생 횟수가 기준값을 초과하지 않는 경우(S409), 상기 프로그램공급서버(400)는 상기 신규 소프트웨어가 적합하다고 결정하고(S411), 상기 사용자단말기(300)로 플레쉬메모리 설치 정보를 송신한다(S412). 상기 플래쉬메모리 설치 정보는 기 배포된 신규 소프트웨어를 사용자단말기(300) 내의 플래쉬메모리(340)내에 저장하라는 특정 명령정보를 포함하거나, 또는 다시 사용자단말기(300)에 기 배포된 신규 소프트웨어 및 상기 신규 소프트웨어를 플래쉬메모리에 설치하기 위한 특별한 flag 정보를 포함한다.
사용자단말기(300)는 상기 플레쉬메모리 설치 정보를 이용하여 플래쉬메모리(340)내에 신규 소프트웨어를 설치한다(S413). 즉, 사용자단말기(300)는 배포된 신규 소프트웨어에 별다른 문제가 없는 경우에 부팅 등 특별한 프로세스를 수행하지 않고 그대로 있다가 상기 플레쉬메모리 설치 정보를 수신하면 플래쉬메모리(340)내에 신규 소프트웨어를 설치한다.
지금까지 본 발명에 대하여 몇몇 실시예들을 들어 구체적으로 설명하였으나, 상기 실시예들은 본 발명을 이해하기 위한 설명을 위해 제시된 것이며, 본 발명의 범위가 상기 실시예에 제한되는 것은 아니다. 당업자라면 본 발명의 기술적 사상의 범위를 벗어나지 않고도 다양한 변형이 가능함을 이해할 수 있을 것이며, 본 발명의 범위는 첨부된 특허청구범위에 의해서 해석되어야 할 것이다.
도 1은 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램을 업그레이드하기 위한 시스템의 구성도
도 2는 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용하여 RAM 상에서 프로그램을 업그레이드하기 위한 단말기의 구성도
도 3은 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램을 업그레이드하는 방법을 나타내는 흐름도
도 4는 본 발명의 일실시예에 따른 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 프로그램을 설치하는 방법을 나타내는 흐름도

Claims (15)

  1. 단말기 내의 프로그램을 업그레이드하는 방법에 있어서,
    업그레이드 서버로부터 업그레이드 정보를 포함하는 패치파일을 수신하는 단계;
    상기 패치파일을 이용하여 상기 단말기 내 RAM(Random Access Memory) 상에서 이미 실행되고 있는 업그레이드 대상 프로그램을 시스템의 재부팅 없이 업그레이드 하되, 플레쉬 메모리에 대한 업그레이드 작업은 수행하지 않고, 상기 패치파일에 버그가 존재하여 상기 업그레이드된 프로그램을 실행하는데 문제가 발생하는 경우, 상기 단말기 내 플레쉬 메모리에 저장된 업그레이드 대상 프로그램을 업그레이드 하지 않고 상기 단말기를 재부팅하면, 상기 RAM 상의 패치파일을 제거시켜 상기 단말기를 패치파일 적용 전의 상태로 복원시키며, 상기 재부팅 발생 정보를 상기 업그레이드 서버로 송신하는 단계;
    상기 패치파일에 버그가 존재하지 않아 상기 업그레이드된 프로그램을 실행하는데 문제가 발생하지 않는 경우, 상기 업그레이드 서버로부터 플래쉬 메모리 업그레이드 정보를 수신하는 단계; 및
    상기 플래쉬 메모리 업그레이드 정보는 상기 패치파일을 이용하여 상기 단말기 내 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하는 단계;
    를 포함하고,
    상기 플래쉬 메모리 업그레이드 정보는 상기 패치파일을 이용하여 상기 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하라는 정보를 포함하거나, 또는 상기 패치파일 및 상기 플래쉬메모리에 저장된 업그레이드 대상 프로그램을 업그레이드하라는 특정 플래그 정보를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 단말기를 재부팅하는 단계는 상기 단말기 내의 Watchdog프로그램에 의해 수행되거나 또는 사용자에 의해 수행되는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법.
  4. 삭제
  5. 단말기 내의 프로그램을 업그레이드하는 방법에 있어서,
    버그가 있는 경우 플레쉬 메모리에 대한 업그레이드 작업은 수행하지 않고,복수의 단말기로 단말기 내 RAM 상에서 이미 실행되고 있는 업그레이드 대상 프로그램을 업그레이드하기 위한 패치파일을 송신하는 단계;
    상기 복수의 단말기로부터 상기 패치파일에 존재하는 버그에 의해 발생한 상기 복수의 단말기의 재부팅 정보를 수신하는 단계; 및
    상기 재부팅 정보를 이용하여 상기 패치파일의 적합여부를 결정하되, 상기 재부팅 정보를 이용하여 복수의 단말기에서 발생한 재부팅 횟수를 계산하고, 상기 재부팅 횟수가 미리 설정된 기준값을 초과하는 경우, 상기 패치파일이 부적합하다고 결정하고, 상기 재부팅 횟수가 상기 기준값을 초과하지 않는 경우 상기 패치파일이 적합하다고 결정하는 단계;
    상기 패치파일이 적합하다고 결정된 경우, 상기 복수의 단말기로 단말기 내의 플래쉬 메모리에 저장된 프로그램을 업그레이드하기 위한 플래쉐 메모리 업그레이드 정보를 송신하는 단계;
    를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법.
  6. 삭제
  7. 삭제
  8. 단말기 내의 프로그램을 업그레이드하기 위한 시스템에 있어서,
    업그레이드 정보를 포함하는 패치파일을 복수의 단말기로 송신하기 위한 업그레이드 서버; 및
    버그가 있는 경우 플레쉬 메모리에 대한 업그레이드 작업은 수행하지 않고,상기 패치파일을 이용하여 상기 단말기 내의 RAM 상에서 업그레이드 대상 프로그램을 업그레이드하되, 상기 업그레이드된 프로그램 실행을 통해 획득된 상기 패치파일에 버그가 존재하는지에 관한 정보-단말기 재부팅 정보를 포함함-를 상기 업그레이드 서버로 전송하기 위한 단말기;를 포함하고,
    상기 업그레이드 서버는 상기 버그 존재여부에 관한 정보를 이용하여 상기 패치파일의 적합여부를 결정하되, 상기 단말기 재부팅 정보를 이용하여 재부팅 횟수를 계산하고, 상기 재부팅 횟수가 미리 결정된 기준값을 초과하는 경우, 상기 패치파일이 부적합하다고 결정하고, 상기 재부팅 횟수가 미리 결정된 기준값을 초과하지 않는 경우 상기 패치파일이 적합하다고 결정하며, 상기 패치파일이 적합하고 결정된 경우, 상기 단말기로 단말기 내의 플래쉬 메모리에 저장된 프로그램을 업그레이드하기 위한 플래쉬 메모리 업그레이드 정보를 송신하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 시스템.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 단말기 내에 신규 소프트웨어를 설치하는 방법에 있어서,
    프로그램 공급 서버로부터 신규 소프트웨어를 수신하는 단계;
    동적 소프트웨어 업그레이드 기술을 이용하여 상기 신규 소프트웨어를 단말기 내 RAM 상에서 실행하되, 상기 신규 소프트웨어를 실행하는데 문제가 발생하는 경우, 상기 단말기 내 플래쉬메모리에 상기 신규 소프트웨어를 저장하지 않고 상기 단말기를 재부팅하고, 상기 재부팅 발생 정보를 상기 프로그램공급서버로 송신하는 단계;
    상기 신규 소프트웨어를 실행하는데 문제가 발생하지 않는 경우, 상기 프로그램 공급 서버로부터 플래쉬 메모리 설치 정보를 수신하는 단계; 및
    상기 플래쉬 메모리 설치 정보를 이용하여 상기 단말기 내 플래쉬메모리에 상기 신규 소프트웨어를 저장하는 단계;
    를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 소프트웨어를 설치하는 방법.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 단말기를 재부팅하는 단계는 상기 단말기 내의 Watchdog프로그램에 의해 수행되거나 또는 사용자에 의해 수행되는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 소프트웨어를 설치하는 방법.
  15. 제 12 항에 있어서,
    상기 플래쉬 메모리 설치 정보는 상기 신규 소프트웨어를 상기 플래쉬메모리에 저장하라는 정보를 포함하거나, 또는 상기 신규 소프트웨어 및 상기 플래쉬메모리에 상기 신규 소프트웨어를 설치하라는 특정 플래그 정보를 포함하는 것을 특징으로 하는 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내에 신규 소프트웨어를 설치하는 방법.
KR1020090060008A 2009-07-02 2009-07-02 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템 KR101123685B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090060008A KR101123685B1 (ko) 2009-07-02 2009-07-02 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090060008A KR101123685B1 (ko) 2009-07-02 2009-07-02 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20110002516A KR20110002516A (ko) 2011-01-10
KR101123685B1 true KR101123685B1 (ko) 2012-03-20

Family

ID=43610698

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090060008A KR101123685B1 (ko) 2009-07-02 2009-07-02 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101123685B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526363B2 (en) 2019-07-04 2022-12-13 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614130A (zh) * 2018-12-12 2019-04-12 湖南康通电子股份有限公司 一种带有试运行、自检查的云广播升级方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022587A (ja) * 1999-07-06 2001-01-26 Yamaha Corp 通信回線接続装置のファームウェアのバージョンアップ方法および通信回線接続装置
KR20020078410A (ko) * 2001-04-09 2002-10-18 주식회사 팬택앤큐리텔 더블유엘엘 단말기의 소프트웨어 업그레이드방법
US20060190773A1 (en) * 2002-11-21 2006-08-24 Rao Bindu R Software self-repair toolkit for electronic devices
KR20070038681A (ko) * 2005-10-06 2007-04-11 삼성에스디에스 주식회사 펌웨어 업데이트 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022587A (ja) * 1999-07-06 2001-01-26 Yamaha Corp 通信回線接続装置のファームウェアのバージョンアップ方法および通信回線接続装置
KR20020078410A (ko) * 2001-04-09 2002-10-18 주식회사 팬택앤큐리텔 더블유엘엘 단말기의 소프트웨어 업그레이드방법
US20060190773A1 (en) * 2002-11-21 2006-08-24 Rao Bindu R Software self-repair toolkit for electronic devices
KR20070038681A (ko) * 2005-10-06 2007-04-11 삼성에스디에스 주식회사 펌웨어 업데이트 방법 및 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526363B2 (en) 2019-07-04 2022-12-13 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof

Also Published As

Publication number Publication date
KR20110002516A (ko) 2011-01-10

Similar Documents

Publication Publication Date Title
US9940225B2 (en) Automated error checking system for a software application and method therefor
KR101515198B1 (ko) 모바일 단말의 펌웨어 업그레이드 장치 및 방법
CN106598835B (zh) 一种应用的测试方法及装置、***
US20190138431A1 (en) Conditional upgrade and installation of software based on risk-based validation
CN107193607B (zh) 用于更新代码文件的方法和装置、存储介质、处理器以及终端
CN109558160A (zh) 升级方法、嵌入式***
US20120117557A1 (en) Method and system for upgrading wireless data card
CN106980565B (zh) 升级过程监控方法及装置
CN109753300B (zh) 一种算法升级方法、计算任务发送方法及相关装置
CN106897223A (zh) 一种基于持续集成的软件包交付方法及装置
US20200379742A1 (en) Validation of configurations of factory installations
CN105045671B (zh) 一种智能终端的***升级方法及装置
CN110737548B (zh) 数据请求方法和服务器
CN112214405A (zh) 一种软件测试方法、装置、电子设备和可读存储介质
CN116775079A (zh) 车辆零部件刷写方法、装置、电子设备及存储介质
CN105677394A (zh) 一种终端设备的应用程序升级方法和装置
KR101123685B1 (ko) 동적 소프트웨어 업그레이드 기술을 이용한 단말기 내의 프로그램 업그레이드 방법 및 시스템
EP3754489A1 (en) Method for evaluating application deployment, apparatus, computer program product, and readable medium
CN103336698A (zh) 一种wifi设备软件升级的方法及wifi设备和***
CN111679842B (zh) 应用程序热更新处理方法、装置及***
WO2013161522A1 (ja) ログ収集サーバ、ログ収集システム、ログ収集方法
CN111984287A (zh) 设备升级方法及***
CN111381995A (zh) 用于还原用户操作的方法及装置、计算机
CN109683929A (zh) 基于fota***更新的测试方法、***及存储介质
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160212

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161208

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee