KR102124330B1 - 어플리케이션 업데이트 방법 및 이를 지원하는 단말 - Google Patents

어플리케이션 업데이트 방법 및 이를 지원하는 단말 Download PDF

Info

Publication number
KR102124330B1
KR102124330B1 KR1020130140548A KR20130140548A KR102124330B1 KR 102124330 B1 KR102124330 B1 KR 102124330B1 KR 1020130140548 A KR1020130140548 A KR 1020130140548A KR 20130140548 A KR20130140548 A KR 20130140548A KR 102124330 B1 KR102124330 B1 KR 102124330B1
Authority
KR
South Korea
Prior art keywords
application
terminal
store
update
information
Prior art date
Application number
KR1020130140548A
Other languages
English (en)
Other versions
KR20150057328A (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 KR1020130140548A priority Critical patent/KR102124330B1/ko
Publication of KR20150057328A publication Critical patent/KR20150057328A/ko
Application granted granted Critical
Publication of KR102124330B1 publication Critical patent/KR102124330B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/1735Network adapters, e.g. SCI, Myrinet

Landscapes

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

Abstract

본 발명은 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것으로서, 더욱 상세하게는 사용자 레벨의 API(Application Programming Interface)를 이용하여, 단말 플랫폼이 제공하는 리소스에 접근이 불가능한 스토어 어플리케이션이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여 배포된 하나 이상의 어플리케이션의 업데이트를 진행할 수 있는 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것이다.
이를 위한, 본 발명의 일 실시 예에 따른 단말은 어플리케이션 마켓 서버로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션을 관리하고, 상기 어플리케이션의 업데이트 정보를 확인하여 업데이트가 필요한 것으로 판단되면, 어댑터 모듈로 상기 어플리케이션의 업데이트를 요청하는 어플리케이션 관리 모듈 및 상기 어플리케이션 관리 모듈의 요청에 따라, 플랫폼 레벨의 API(Application Programming Interface)를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하는 어댑터 모듈을 포함하여 구성될 수 있다.

Description

어플리케이션 업데이트 방법 및 이를 지원하는 단말{METHOD FOR UPDATING OF APPLICATION AND APPARATUS FOR THE SAME}
본 발명은 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것으로서, 더욱 상세하게는 사용자 레벨의 API(Application Programming Interface)를 이용하여, 단말 플랫폼이 제공하는 리소스에 접근이 불가능한 스토어 어플리케이션이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여 배포된 하나 이상의 어플리케이션의 업데이트를 진행할 수 있는 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근, 스마트폰(smartphone)의 보급이 활성화되면서 다양한 종류의 어플리케이션(application)이 빠르게 보급되고 있으며, 이러한 어플리케이션들은 어플리케이션 스토어(application store)를 통해 유통되고 있다.
어플리케이션 스토어란 전술한 바와 같이, 게임, 전자책, 음악, 동영상 등 사용자들이 원하는 다양한 종류의 어플리케이션과 컨텐츠 등을 쉽게 다운로드 받을 수 있게 서비스하는 공간으로, 사용자는 어플리케이션 스토어를 제공하는 어플리케이션 마켓 서버에 접속하여, 자신이 원하는 어플리케이션을 무료 또는 유료의 형태로 다운로드 받고, 자신의 스마트폰에 설치한 후 해당 어플리케이션을 이용하게 된다.
이러한 어플리케이션 스토어 또한 어플리케이션의 형태로 사용자에게 배포될 수 있는데, 이때의 어플리케이션 스토어는 크게 단말 운영체제(OS; Operating System)가 제공하는 플랫폼 레벨(platform level)의 API(Application Programming Interface)를 이용하는 어플리케이션 스토어와 사용자 레벨(user level)의 API만을 이용하는 어플리케이션 스토어로 구분할 수 있다.
플랫폼 레벨의 API를 이용하는 어플리케이션 스토어는 단말 플랫폼이 제공하는 다양한 API를 통해 단말의 리소스(resource) 및 기능의 일부 또는 전부에 접근하여 이용이 가능하다. 반면, 사용자 레벨의 API를 이용하는 어플리케이션 스토어는 단말의 한정적인 자원 및 기능만을 이용할 수 있다.
한편, 어플리케이션들은 지속적으로 발전하며, 어플리케이션의 버전(version)은 수시로 업데이트된다. 사용자들은 어플리케이션 스토어를 제공하는 어플리케이션 마켓 서버에 접속하여, 자신이 이용하고 있는 어플리케이션의 버전이 업데이트되어 있는 지 여부를 확인하고, 어플리케이션을 업데이트할 수 있다.
최근에는 자동 업데이트 기능을 제공하기도 하는데, 플랫폼 레벨의 API를 이용하는 어플리케이션 스토어를 통해 배포되어, 상기 어플리케이션 스토어에 의해 관리되는 어플리케이션들은 사용자의 별다른 개입이 없더라도, 버전이 변경된 경우 단말 플랫폼이 제공하는 API를 이용하여 자동 업데이트가 가능하다. 그러나, 사용자 레벨의 API를 어플리케이션 스토어를 통해 배포되어, 상기 어플리케이션 스토어에 의해 관리되는 어플리케이션들은 단말 플랫폼이 제공하는 리소스 접근이 제한적이여서, 자동 업데이트 기능의 구현이 사실상 불가능하다.
한국공개특허 제2013-0066421호, 2013년 6월 20일 공개 (명칭: 단말 및 단말에 설치된 애플리케이션의 업데이트 방법)
상술한 바와 같이, 본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 자동 업데이트 기능의 구현이 불가능한 스토어 어플리케이션을 통해 배포된 어플리케이션의 업데이트를 자동 업데이트 기능의 구현이 가능한 스토어 어플리케이션을 이용하여 업데이트할 수 있는 어플리케이션 업데이트 방법 및 이를 지원하는 단말을 제공하는 데 목적이 있다.
이를 위해, 본 발명은 사용자 레벨의 API(Application Programming Interface)를 이용하여, 단말 플랫폼이 제공하는 리소스에 접근이 불가능한 스토어 어플리케이션이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여 배포된 하나 이상의 어플리케이션의 업데이트를 진행할 수 있는 어플리케이션 업데이트 방법 및 이를 지원하는 단말을 제공하는 데 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말은 어플리케이션 마켓 서버로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션을 관리하고, 상기 어플리케이션의 업데이트 정보를 확인하여 업데이트가 필요한 것으로 판단되면, 어댑터 모듈로 상기 어플리케이션의 업데이트를 요청하는 어플리케이션 관리 모듈; 및 상기 어플리케이션 관리 모듈의 요청에 따라, 플랫폼 레벨의 API(Application Programming Interface)를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하는 어댑터 모듈;을 포함하여 구성될 수 있다.
이때, 상기 어댑터 모듈은 사용자 정보 및 단말 정보를 상기 어플리케이션 마켓 서버로 전송하여, 상기 사용자 정보 및 단말 정보와 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키를 수신하여 저장하고, 상기 어플리케이션 관리 모듈로부터 상기 어플리케이션 업데이트 요청이 전달되면, 기 저장된 상기 인증키를 상기 어플리케이션 마켓 서버로 전송하여, 상기 어플리케이션 마켓 서버로부터 인증 성공 정보가 수신되면, 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행할 수 있다.
또한, 상기 어댑터 모듈은 상기 플랫폼 레벨의 API를 이용하는 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 어플리케이션 프레임워크, 라이브러리, 커널을 이용하여 상기 어플리케이션의 업데이트를 진행할 수 있다.
또한, 상기 어댑터 모듈은 상기 어플리케이션 관리 모듈에 의해 관리되는 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션이 강제 종료되지 않도록, 상기 어플리케이션의 우선순위를 높여 메모리 풀에 등록되도록 제어할 수 있다.
또한, 상기 어댑터 모듈은 상기 어플리케이션의 우선순위를 높여 메모리 풀에 등록되도록, 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 메모리 관리자(Push Indicator)로 요청할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법은 단말이 제2 스토어 어플리케이션을 통해 어플리케이션 마켓 서버로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션의 업데이트 정보를 확인하는 단계; 및 상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 플랫폼 레벨의 API(Application Programming Interface)를 이용하는 제1 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하며, 상기 어플리케이션의 업데이트를 진행하는 단계;를 포함하여 구성될 수 있다.
이때, 상기 업데이트 정보를 확인하는 단계 이전에, 상기 단말이 사용자 정보 및 단말 정보를 상기 어플리케이션 마켓 서버로 전송하는 단계; 상기 단말이 상기 사용자 정보 및 단말 정보와 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키를 상기 어플리케이션 마켓 서버로부터 수신하는 단계; 및 상기 단말이 상기 수신된 인증키를 저장하는 단계;를 더 포함하여 구성될 수 있다.
또한, 상기 어플리케이션의 업데이트를 진행하는 단계는 상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 상기 저장된 인증키를 상기 어플리케이션 마켓 서버로 전송하는 단계; 상기 어플리케이션 마켓 서버로부터 인증 성공 정보가 수신하는 단계; 및 상기 단말이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여, 상기 어플리케이션의 업데이트를 진행하는 단계;를 포함하여 구성될 수 있다.
또한, 상기 업데이트를 진행하는 단계 이후에, 상기 단말이 상기 제2 스토어 어플리케이션이 제공하는 어플리케이션의 업데이트가 진행되면, 상기 어플리케이션이 강제 종료되지 않도록 상기 제1 스토어 어플리케이션을 통해 우선순위를 높여 메모리 풀에 등록되도록 요청하는 단계;를 더 포함하여 구성될 수 있다.
또한, 상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 사용자에게 상기 어플리케이션의 업데이트를 알리기 위한 푸시(push) 메시지를 출력하는 단계;를 더 포함하여 구성될 수 있다.
본 발명의 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 의하면, 단말 플랫폼에 접근이 어려워, 자동 업데이트 기능이 원천적으로 불가능한 스토어 어플리케이션이 자동 업데이트 기능의 구현이 가능한 스토어 어플리케이션을 이용하여, 자신이 관리하는 하나 이상의 어플리케이션의 업데이트를 자동적으로 수행할 수 있다는 효과가 있다.
다시 말해, 본 발명에 의하면, OS(Operating System) 벤더(Vendor), 통신 사업자에 의해 개발되어, 단말 플랫폼이 제공하는 리소스에 접근이 가능한 스토어 어플리케이션을 이용하여, 단말 플랫폼이 제공하는 리소스에 접근이 불가능한 기업용 앱스토어와 같은 서드파티(3rd party) 개발사에 의해 개발된 스토어 어플리케이션을 통해 배포된 어플리케이션의 업데이트를 자동적으로 진행할 수 있다는 우수한 효과가 있다.
또한, 본 발명은 상술한 기능을 지원하는 모듈을 웹 소스 형태로 배포함으로써, 단말 플랫폼의 종류와는 상관없이 어떠한 단말에도 적용할 수 있다는 우수한 효과가 있다.
또한, 본 발명은 업데이트 진행 시 서버 기반의 인증키 공유를 통해 보안을 강화하였으며, 메모리 관리 방식을 개선하여, 상술한 기능을 지원하는 모듈의 구동 안정성 확보가 가능하다는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 스토어 어플리케이션을 통해 배포되는 어플리케이션의 자동 업데이트 방법을 설명하기 위한 시스템 예시도이다.
도 2는 본 발명의 실시 예에 따른 단말 플랫폼의 구조를 설명하기 위한 예시도이다.
도 3은 본 발명의 실시 예에 따른 단말 플랫폼의 구조를 보다 구체적으로 설명하기 위한 예시도이다.
도 4는 본 발명의 실시 예에 따른 스토어 어플리케이션의 주요 기능 및 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 실시 예에 따른 어플리케이션 마켓 서버의 주요 기능 및 구성을 설명하기 위한 블록도이다.
도 6은 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법을 개략적으로 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 또한 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 하나, 이는 본 발명을 특정한 실시 형태로 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이제 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 대하여 도면을 참조하여 상세하게 설명하도록 한다. 이때, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용하며, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시 예에 따른 스토어 어플리케이션을 통해 배포되는 어플리케이션의 자동 업데이트 방법을 설명하기 위한 시스템 예시도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 시스템(1000)은 제1 스토어 어플리케이션(30) 및 제2 스토어 어플리케이션(40)을 포함하는 단말(100)과, 제1 어플리케이션 마켓 서버(200a), 제2 어플리케이션 마켓 서버(200b) 및 통신망(300)을 포함하여 구성될 수 있다.
먼저, 단말(100)은 사용자의 조작에 따라 통신망(300)을 경유하여 제1 어플리케이션 마켓 서버(200a) 및 제2 어플리케이션 마켓 서버(200b)와 통신하며, 각종 데이터를 송수신할 수 있는 사용자의 장치를 의미한다. 이러한 단말(100)은 통신망(300)을 통해 음성 또는 데이터 통신을 수행할 수 있으며, 제1 어플리케이션 마켓 서버(200a) 및 제2 어플리케이션 마켓 서버(200b)와 다양한 정보를 송수신할 수 있다. 이를 위한 본 발명의 단말(100)은 정보의 송수신을 위한 브라우저, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.
또한, 단말(100)은 프로세서(processor), 운영체제(operating system), 어플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)를 포함하며, 하나 이상의 어플리케이션 및 운영체제 간의 통신을 제공하는 처리 시스템을 포함할 수 있다. 이러한 처리 시스템은 다양한 어플리케이션, 예컨대 게임, 증권, 일정 관리 등 다양한 기능을 지원하는 어플리케이션을 실행하도록 구성될 수 있다.
특히, 본 발명의 실시 예에 따른 단말(100)은 플랫폼 레벨의 API를 이용하는 제1 스토어 어플리케이션(30) 및 사용자 레벨의 API를 이용하는 제2 스토어 어플리케이션(40)을 포함하여 구성될 수 있다.
여기서, 스토어 어플리케이션(30, 40)은 어플리케이션 마켓 서버(200a, 200b)와 통신하며, 사용자가 하나 이상의 어플리케이션(또는 컨텐츠)을 무료 또는 유료의 형태로 다운로드하여 이용할 수 있는, 소정의 공간을 제공하는 역할을 수행한다.
이러한 스토어 어플리케이션(30, 40) 또한 어플리케이션의 형태로 단말(100) 내 하나 이상 존재할 수 있다. 상기 스토어 어플리케이션 중 제1 스토어 어플리케이션(30)을 통해 단말(100)은 제1 어플리케이션 마켓 서버(200a)에 접속하며, 상기 제1 어플리케이션 마켓 서버(200a)가 제공하는 하나 이상의 어플리케이션을 다운로드하여 이용할 수 있다. 이때, 상기 제1 스토어 어플리케이션(30)은 전술한 바와 같이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션으로, 상기 플랫폼 레벨의 API를 통해 단말 플랫폼이 제공하는 다양한 리소스에 접근하여, 자동 업데이트와 같은 다양한 기능의 지원이 가능하다.
이러한, 제1 스토어 어플리케이션(30)은 단말 OS 벤더(vendor), 단말 제조사, 통신 사업자에 의해 제작되어 미리 단말(100)에 설치된 스토어 어플리케이션으로서, 예시로, 구글(***) 사의 플레이스토어, 삼성(Samsung) 사의 앱스(apps), 에스케이텔레콤(sktelecom) 사의 T스토어, 케이티(KT) 사의 올레마켓 등을 들 수 있다.
한편, 제2 스토어 어플리케이션(40)은 하나 이상의 어플리케이션을 제공하는 제2 어플리케이션 마켓 서버(200b)와 정보를 송수신하며, 단말(100)은 상기 제2 스토어 어플리케이션(40)을 통해 제2 어플리케이션 마켓 서버(200b)에 접속하여, 상기 제2 어플리케이션 마켓 서버(200b)가 제공하는 하나 이상의 어플리케이션을 다운로드하여 이용할 수 있다. 이때, 상기 제2 스토어 어플리케이션(40)은 전술한 바와 같이 사용자 레벨의 API를 이용하는 스토어 어플리케이션이다. 사용자 레벨의 API를 이용하므로, 플랫폼 레벨의 API를 이용하는 제1 스토어 어플리케이션(30)과 달리 단말 리소스 및 기능 이용이 제한적이다. 이러한 제2 스토어 어플리케이션(40)은 서드파티(3rd party) 개발사에 의해 제작된 것으로, 단말(100)은 제2 스토어 어플리케이션(40)을 이용하기 위해, 제1 스토어 어플리케이션(30) 또는 별도의 웹 페이지에 접속하여 상기 제2 스토어 어플리케이션(40)을 다운로드하여 설치한 후 상기 제2 스토어 어플리케이션(40)을 이용할 수 있다.
이러한, 제2 스토어 어플리케이션(40)의 일례로, 기업용 어플리케이션을 제공하는 기업용 앱 스토어(app store)를 들 수 있으며, 상술한 예시에서, 단말(100) 사용자가 가입한 통신 사업자인 에스케이텔레콤 사의 T스토어가 기본적으로 설치된 제1 스토어 어플리케이션(30)일 경우, 케이티(KT) 사의 올레마켓은 제1 스토어 어플리케이션(30)을 통해 다운로드되어 설치된 제2 스토어 어플리케이션(40)이 될 수 있다.
이와 같이, 본 발명의 제1 스토어 어플리케이션(30)은 단말(100) 내 기본적으로 설치된, 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 의미하며, 제2 스토어 어플리케이션(40)은 별도로 다운로드하여 설치된, 사용자 레벨의 API를 이용하는 스토어 어플리케이션을 의미한다.
제2 스토어 어플리케이션(40)은 전술한 바와 같이 사용자 레벨의 API를 이용하므로, 단말 플랫폼이 제공하는 리소스 이용이 제한적이다. 이에 대해 도 2 및 도 3을 참조하여 설명하도록 한다.
도 2는 본 발명의 실시 예에 따른 단말 플랫폼의 구조를 설명하기 위한 예시도이며, 도 3은 본 발명의 실시 예에 따른 단말 플랫폼의 구조를 보다 구체적으로 설명하기 위한 예시도이다.
먼저, 도 2를 참조하면, 본 발명의 실시 예에 따른 단말(100)은 크게 단말 하드웨어 레이어(10), 상기 하드웨어 레이어에서 입력된 신호를 처리하고 전달하는 플랫폼 레이어(20) 및 상기 플랫폼을 기반으로 구동되는 각종 어플리케이션들로 구성되는 어플리케이션 레이어(50)로 구분할 수 있다.
여기서, 플랫폼은 단말(100)의 운영체제에 따라 안드로이드 플랫폼, 윈도우 모바일 플랫폼, iOS 플랫폼 등으로 구분될 수 있으며, 각각의 플랫폼에 따라 조금씩 그 구조가 상이하나 기본적인 역할을 동일하다.
안드로이드 플랫폼은 안드로이드 OS를 기반으로 생성된 플랫폼으로, 리눅스 커널 위에서 동작하며, 다양한 안드로이드 시스템 구성 요소에서 사용되는 C 또는 C++ 라이브러리들을 포함하고 있다. 이러한 안드로이드 플랫폼은 도 3에 도시된 바와 같이, 각종 하드웨어의 관리 등을 담당하며 어플리케이션의 요청을 하드웨어에 전달하고, 하드웨어의 응답을 다시 응용 프로그램에 전달하는 리눅스 커널 계층(23), C 또는 C++로 구성되어 하드웨어와 프레임워크 계층을 연결하는 라이브러리 계층(22), 각종 어플리케이션을 관리하기 위한 어플리케이션 프레임워크 계층(21)으로 구성된다.
반면, 윈도우 모바일 플랫폼의 경우, 윈도우 코어 계층이 상기 리눅스 커널 계층에 해당하며, 코어 계층과 어플리케이션 프레임워크 계층을 연결하며 각종 언어 지원이나 기능 지원을 위한 인터페이스 계층으로 구성된다.
또한, iOS 플랫폼의 경우, 코어 OS 계층이 상기 리눅스 커널 계층에 해당하며, 코어 서비스 계층이 상기 라이브러리 계층 및 어플리케이션 프레임워크 계층과 유사하고, 멀티미디어 기능을 제공하는 미디어 계층, 각종 어플리케이션을 위한 계층인 코어 터치 계층으로 구성된다.
이하의 설명에서는, 설명의 편의를 위해 안드로이드 플랫폼을 예시로 들어 설명하나, 이에 한정되는 것은 아니다.
안드로이드 플랫폼에 대해 보다 구체적으로 설명하면, 리눅스 커널 계층(23)은 단말(100) 내 다양한 하드웨어와 내부 메모리 관리, 프로세스 관리, 네트워킹 관리 등을 담당하는 역할을 수행한다. 이러한 리눅스 커널 계층(23)을 통해 안드로이드 플랫폼이 단말(100) 하드웨어를 이용하여 동작이 가능하다.
C 또는 C++로 구성되는 라이브러리 계층(22)은 단말(100)의 하드웨어를 사용하기 위한 기능을 제공한다. 예컨대, 라이브러리 계층(22)은 그래픽을 구현하기 위한 그래픽 라이브러리와 동영상 재생을 위한 코덱 관련 라이브러리를 제공한다. 또한 라이브러리 계층(22)은 자바 언어로 구현된 어플리케이션을 동작시키기 위한 런타임(runtime) 엔진 등을 포함할 수 있다.
어플리케이션 프레임워크 계층(21)은 안드로이드 플랫폼 기반으로 구현된 어플리케이션 실행을 위한 기능들을 제공하는 역할을 수행한다. 어플리케이션 프레임워크 계층(21)은 어플리케이션 레이어(50)에 위치하는 다양한 어플리케이션으로 필요한 API를 제공하게 된다.
여기서, API는 크게 플랫폼 레벨의 API와 사용자 레벨의 API로 구분될 수 있다. 어플리케이션 프레임워크 계층(21)은 자신이 제공하는 플랫폼 레벨의 API를 이용하여 구현된 어플리케이션의 플랫폼 레벨의 접근을 지원한다. 반면, 어플리케이션 프레임워크 계층(21)은 자신이 제공하는 사용자 레벨의 API를 이용하여 구현된 어플리케이션의 플랫폼 레벨의 접근을 한정적으로 지원한다. 따라서, 플랫폼 레벨의 API를 이용하는 어플리케이션은 상기 API를 통해 단말 하드웨어를 비롯한 단말(100)이 제공하는 다양한 리소스 및 기능의 이용이 가능하다. 반면, 사용자 레벨의 API를 이용하는 어플리케이션은 단말(100)이 제공하는 리소스 및 기능의 이용이 제한적이다.
다시 도 2를 참조하면, 전술한 바와 같이 제1 스토어 어플리케이션(30)은 플랫폼 레벨의 API를 이용하므로, 단말(100) 플랫폼이 제공하는 리소스 및 기능의 이용이 가능하다. 단말(100)은 상기 제1 스토어 어플리케이션(30)을 통해 하나 이상의 어플리케이션을 다운로드하여 단말(100)내 설치할 수 있으며, 상기 제1 스토어 어플리케이션(30)의 관리 하에, 상기 제1 스토어 어플리케이션(30)을 통해 배포된 하나 이상의 어플리케이션들은 단말(100) 플랫폼이 제공하는 리소스를 이용하여 자동 업데이트가 가능하다.
그러나, 제2 스토어 어플리케이션(40)은 사용자 레벨의 API를 이용하므로, 단말(100) 플랫폼이 제공하는 리소스 및 기능의 이용이 제한적이다. 단말(100)은 상기 제2 스토어 어플리케이션(40)을 통해 하나 이상의 어플리케이션 다운로드하여 단말(100) 내 설치할 수 있으며, 상기 제2 스토어 어플리케이션(40)의 관리 하에, 상기 제2 스토어 어플리케이션(40)을 통해 배포된 하나 이상의 어플리케이션들은 사용자의 요청에 따른 수동 업데이트만이 가능하다. 즉, 사용자는 상기 제2 스토어 어플리케이션(40)을 실행하고, 로그인 한 후, 업데이트가 필요한 어플리케이션을 확인하고 선택하여, 설치 여부를 최종 선택한 후, 어플리케이션을 업데이트할 수 있다. 또한, 사용자는 어플리케이션의 업데이트가 완료되면, 확인 버튼을 입력하고, 업데이트가 완료된 어플리케이션을 실행하여 해당 어플리케이션을 이용하게 된다. 이는 많은 사용자의 개입을 요구하므로 사용자의 입장에서 여간 불편한 것이 아니다.
따라서, 본 발명은 이러한 문제점을 해결하기 위한 것으로, 제1 스토어 어플리케이션(30)과의 연동을 통해, 단말 플랫폼이 제공하는 리소스를 이용하고자 한다.
이를 위해, 상기 제2 스토어 어플리케이션(40)은 단말 플랫폼의 종류와 무관한 웹 기반의 프로그램 형태로 배포될 수 있다. 즉, 단말(100)은 상기 제1 스토어 어플리케이션(30)을 실행한 후, 상기 제1 스토어 어플리케이션(30)을 통해 통신망(300)을 거쳐 제1 어플리케이션 마켓 서버(200a)에 접속한다. 그리고, 단말(100)은 상기 제1 어플리케이션 마켓 서버(200a)로부터 상기 제2 스토어 어플리케이션(40)을 다운로드하여 설치한다. 상기 제2 스토어 어플리케이션(40)은 웹 기반의 프로그램 형태로 배포되며, 상기 제1 스토어 어플리케이션(30)의 주요 자원에 접목되어 설치될 수 있다. 다시 말해, 제2 스토어 어플리케이션(40)은 상기 제1 스토어 어플리케이션(30)의 플랫폼 레벨의 API를 이용 가능하도록 설치되며, 상기 제1 스토어 어플리케이션(30)의 플랫폼 레벨의 API를 통해 단말 플랫폼이 제공하는 어플리케이션 프레임워크, 라이브러리, 커널의 진입이 가능하게 된다.
이러한 제2 스토어 어플리케이션(40)의 주요 구성 및 동작 방법에 대해서는 도 4를 참조하여 보다 구체적으로 설명하도록 한다.
한편, 제1 어플리케이션 마켓 서버(200a) 및 제2 어플리케이션 마켓 서버(200b)는 단말(100) 내 설치된 제1 스토어 어플리케이션(30) 및 제2 스토어 어플리케이션(40)을 통해 하나 이상의 어플리케이션(또는 컨텐츠)의 제공을 지원하는 역할을 수행한다. 또한, 제2 어플리케이션 마켓 서버(200b)는 제1 어플리케이션 마켓 서버(200a)로 자신이 지원하는 제2 스토어 어플리케이션(40)의 배포 과정을 지원할 수 있다.
또한, 상기 제1 어플리케이션 마켓 서버(200a)를 통해 배포되는 하나 이상의 어플리케이션은 공개된 어플리케이션이 될 수 있으며, 상기 제2 어플리케이션 마켓 서버(200b)를 통해 배포되는 하나 이상의 어플리케이션은 기업 전용 어플리케이션과 같이 일정 사용자를 타겟으로 배포되는 어플리케이션이 될 수 있다.
아울러, 도면에는 도시되지 않았으나, 상기 제1 어플리케이션 마켓 서버(200a) 및 제2 어플리케이션 마켓 서버(200b)로 하나 이상의 어플리케이션의 제공하는 하나 이상의 어플리케이션 제공 서버(미도시)를 포함하여 구성될 수도 있다.
특히, 본 발명의 실시 예에 따른 제2 스토어 어플리케이션(40)의 배포 과정을 지원하며, 상기 제2 스토어 어플리케이션(40)을 통해 배포된 하나 이상의 어플리케이션의 업데이트를 지원하는 제2 어플리케이션 마켓 서버(200b)는 상기 제2 스토어 어플리케이션(40)을 통해 배포된 하나 이상의 어플리케이션의 업데이트 시 상기 단말(100)을 인증하는 과정을 수행할 수 있다.
다시 말해, 상기 제2 스토어 어플리케이션(40)이 단말(100) 내 설치되게 되면, 단말(100)은 상기 제2 어플리케이션 마켓 서버(200b)로 사용자 정보, 단말 정보를 전송하게 된다. 여기서, 사용자 정보는 사용자로부터 입력된 아이디(ID) 및 패스워드(password) 정보가 될 수 있다. 또한, 단말 정보는 단말 맥 주소(MAC address)가 될 수 있다.
상기 사용자 정보 및 단말 정보가 수신되면, 제2 어플리케이션 마켓 서버(200b)은 상기 사용자 정보 및 단말 정보와 그리고 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 이용하여 인증키를 생성하게 된다. 인증키는 기 설정된 규칙 또는 랜덤 방식에 따라 생성될 수 있다.
그리고 나서, 제2 어플리케이션 마켓 서버(200b)는 생성된 인증키를 상기 단말(100)로 전송하고, 단말(100)은 수신된 인증키를 저장한다. 그리고, 전술한 바와 같이, 제2 스토어 어플리케이션(40)을 통해 다운로드되어 설치된 하나 이상의 어플리케이션 중 업데이트가 필요한 것으로 판단되는 어플리케이션이 존재할 경우, 상기 어플리케이션의 자동 업데이트를 진행하기 이전에, 상기 제2 어플리케이션 마켓 서버(200b)로 상기 인증키를 전송하여 상기 인증키에 대한 인증을 요청한다.
이를 수신한 제2 어플리케이션 마켓 서버(200b)는 기 저장된 상기 인증키와 상기 단말(100)로부터 수신된 인증키를 비교하여, 일치하는 경우 인증 성공 정보를 생성하여 상기 단말(100)로 전송한다.
이를 수신한 단말(100)은 제1 스토어 어플리케이션(30)이 제공하는 플랫폼 레벨의 API를 이용하여 단말 플랫폼이 제공하는 리소스를 이용하여 상기 제2 스토어 어플리케이션(40)을 통해 배포된 어플리케이션에 대한 자동 업데이트를 진행하게 된다.
이와 같이, 본 발명은 제2 스토어 어플리케이션(40)을 제공하는 제2 어플리케이션 마켓 서버(200b)로부터 인증 정보가 수신되는 경우에만 업데이트를 진행함으로써, 무분별한 단말 플랫폼의 접근을 제한할 수 있어 보안을 강화할 수 있다는 우수한 효과가 있다.
아울러, 본 발명의 일 실시 예에서는 단말(100)은 제2 스토어 어플리케이션(40)을 통해 배포된 어플리케이션의 업데이트 시에만 인증 절차를 수행하는 것을 예로 들어 설명하였으나, 이에 한정되는 것은 아니며, 제2 스토어 어플리케이션(40)이 실행될 때 인증 절차를 수행할 수도 있다.
보다 구체적인 제2 스토어 어플리케이션(40)과 이를 지원하는 제2 어플리케이션 마켓 서버(200b)의 주요 구성 및 동작 방법에 대해서는 후술하도록 한다.
아울러, 본 발명의 실시 예에 따른 단말(100) 및 어플리케이션 마켓 서버(200a, 200b)에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
또한, 본 발명의 실시 예에 따른 단말(100) 및 어플리케이션 마켓 서버(200a, 200b)는 통신망(300)을 통해 관련된 다양한 정보를 송수신하게 되며, 이때의 통신망(300)은 다양한 형태의 통신망이 이용될 수 있다.
예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식을 이용할 수 있다.
또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
이하, 본 발명의 실시 예에 따른 제2 스토어 어플리케이션(40)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 스토어 어플리케이션의 주요 기능 및 구성을 설명하기 위한 블록도이다.
도 1 및 도 4를 참조하면, 본 발명의 실시 예에 따른 제2 스토어 어플리케이션(40)은 어플리케이션 관리 모듈(41) 및 어댑터 모듈(42)를 포함하여 구성될 수 있다.
어플리케이션 관리 모듈(41)은 제2 어플리케이션 마켓 서버(200b)로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션을 관리하는 역할을 수행한다. 여기서, 어플리케이션이란 단말(100)에서 동작하는 컨텐츠를 포함하는 일종의 프로그램 블록을 의미하는 것으로, 단말(100)의 각종 하드웨어, 소프트웨어 및 저장 정보 등을 이용하여 프로그램된 동작을 수행한다. 어플리케이션 관리 모듈(41)은 이러한 어플리케이션 중 제2 어플리케이션 마켓 서버(200b)를 통해 단말(100)로 다운로드되어 설치된 하나 이상의 어플리케이션을 관리하는 역할을 수행한다. 예를 들어 어플리케이션 관리 모듈(41)은 어플리케이션이 단말(100)에 설치되는 과정을 제어하며, 단말(100)에 설치된 어플리케이션의 목록을 저장하고, 어플리케이션의 유효 기간, 인증 정보, 업데이트 버전 정보, 최근 업데이트 날짜 정보 및 지원하는 OS 버전 정보 중 적어도 어느 하나를 저장하고 관리할 수 있다. 이를 위해, 어플리케이션 관리 모듈(41)은 어플리케이션 정보 데이터베이스를 포함할 수 있다.
특히, 본 발명의 실시 예에 따른 어플리케이션 관리 모듈(41)은 상기 어플리케이션의 업데이트 정보를 확인하여, 업데이트가 필요한 것으로 판단되면, 어댑터 모듈(42)로 상기 어플리케이션의 업데이트를 요청하는 역할을 수행한다.
어댑터 모듈(42)은 상기 어플리케이션 관리 모듈(41)의 요청에 따라, 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션, 즉, 도 1에 도시된, 제1 스토어 어플리케이션(30)을 통해 단말(100) 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하게 된다.
또한, 본 발명의 어댑터 모듈(42)은 상기 업데이트를 진행하기 이전에, 상기 업데이트 과정이 정상적인 과정인 지 여부를 판단하기 위한 인증 과정을 수행할 수 있다. 이를 위해, 상기 어댑터 모듈(42)은 상기 제2 스토어 어플리케이션(40)이 단말(100) 내 설치될 시, 사용자로부터 입력되는 사용자 정보와 단말(100)의 고유 정보인 단말 정보를 확인한 후, 상기 사용자 정보 및 단말 정보를 제2 어플리케이션 마켓 서버(200b)로 전송하게 된다. 그리고 나서, 상기 제2 어플리케이션 마켓 서버(200b)로부터 상기 사용자 정보 및 단말 정보, 그리고 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키가 수신되면, 수신된 인증키를 저장하게 된다.
그리고 나서, 어댑터 모듈(42)은 어플리케이션 관리 모듈(41)로부터 어플리케이션 업데이트 요청이 전달되면, 상기 기 저장된 인증키를 상기 제2 어플리케이션 마켓 서버(200b)로 전달하여 인증을 요청한다. 그리고 상기 제2 어플리케이션 마켓 서버(200b)로부터 인증 성공 정보가 수신되면, 상기 제1 스토어 어플리케이션(30)을 통해 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하게 된다.
아울러, 본 발명의 어댑터 모듈(42)은 상기 어플리케이션 관리 모듈(41)이 관리하는 하나 이상의 어플리케이션의 메모리 관리를 제1 스토어 어플리케이션(30)을 통해 단말 플랫폼에 요청하는 역할을 수행할 수도 있다.
이에 대해 구체적으로 설명하면, 제2 스토어 어플리케이션(40) 및 상기 제2 스토어 어플리케이션(40)을 통해 배포된 하나 이상의 어플리케이션들은 사용자 레벨의 API를 이용하는 어플리케이션으로, 여러 가지 요인으로 인해, 단말 플랫폼이 발생시키는 이벤트에 따라 강제 종료가 될 수 있다. 이를 사전에 예방하기 위해, 어댑터 모듈(42)은 상기 제1 스토어 어플리케이션(30)의 플랫폼 레벨의 API를 통해 단말(100) 플랫폼에 접근하게 된다. 특히, 도 3의 어플리케이션 프레임워크(21)에 위치하는 메모리 관리자(Push Indicator)에 접근할 수 있다. 그리고 나서, 어댑터 모듈(42)은 상기 메모리 관리자에게 자신을 비롯하여, 상기 어플리케이션 관리 모듈(41)을 통해 관리되는 하나 이상의 어플리케이션이 강제 종료되지 않도록 우선순위를 높여 메모리 풀(memory pool)에 등록되도록 요청할 수 있다.
이러한 과정을 거쳐, 우선순위를 높여 메모리 풀에 등록되면, 상기 제2 스토어 어플리케이션(40)을 비롯하여, 상기 제2 스토어 어플리케이션(40)을 통해 배포된 어플리케이션들이 강제로 종료되는 경우를 사전에 예방할 수 있어, 구동 안정성 확보가 가능하게 된다.
이러한 기능을 지원하기 위해 어댑터 모듈(42)은 인증 처리부(42a), 메모리 관리부(42b) 및 자원 처리부(42c)를 포함하여 구성될 수 있다. 여기서, 자원 처리부(42c)는 전술한 바와 같이 제1 스토어 어플리케이션(30)을 통해 플랫폼 레벨의 API를 이용하여 단말 플랫폼에 접근하는 과정을 지원하게 된다. 이를 위해, 상기 어댑터 모듈(42)은 웹 소스 형태로 구현될 수 있다.
이때, 어댑터 모듈(42)은 제2 스토어 어플리케이션(40)과 이원적 시스템 형태로 동작할 수 있는데, 먼저, 상기 제2 스토어 어플리케이션(40)이 단말(100) 내 설치되고, 상기 제2 어플리케이션 마켓 서버(200b)가 상기 제2 스토어 어플리케이션(40)을 설치하고 있는 단말(100)로 상기 어댑터 모듈(42)만을 제공할 수도 있다.
이후, 어댑터 모듈(42)은 상기 제1 스토어 어플리케이션(30)을 통해 플랫폼 레벨의 API를 이용하여, 단말(100) 플랫폼이 제공하는 어플리케이션 프레임워크, 라이브러리, 커널에 접근하고, 해당 플랫폼에 적합하게 동작하도록 빌드(build)될 수 있다. 이러한 과정을 통해, 본 발명의 어댑터 모듈(42) 및 상기 어댑터 모듈(42)을 포함하는 제2 스토어 어플리케이션(40)은 플랫폼의 종류와 무관하게 일관된 동작이 가능하게 된다.
아울러, 어댑터 모듈(42)은 어플리케이션의 업데이트가 필요한 것으로 판단되면, 사용자에게 상기 어플리케이션의 업데이트를 알리기 위한 푸시(push) 메시지를 출력할 수 있으며, 이를 확인한 사용자의 요청에 따라, 또는 사용자의 별다른 개입이 없더라도 바로 자동 업데이트 과정을 진행할 수 있다.
이상으로 본 발명의 실시 예에 따른 제2 스토어 어플리케이션(40) 및 이를 지원하는 단말(100)의 주요 구성 및 동작 방법에 대해 설명하였다.
그러나, 도 2 내지 도 4를 통해 도시된 구성 요소에 단말(100)이 한정되는 것은 아니며, 단말(100) 내 존재하는 하드웨어 자원의 기능 및 역할에 따라 단말(100)은 사용자 입력을 지원하는 입력부, 스토어 어플리케이션을 통해 다양한 정보를 표시하는 표시부, 어플리케이션 마켓 서버(200a, 200b)와 정보를 송수신하기 위한 통신부, 플랫폼, 스토어 어플리케이션(30, 40) 및 상기 스토어 어플리케이션(30, 40)을 통해 배포된 하나 이상의 어플리케이션 등의 정보를 저장하고 관리하는 저장부 등을 포함하며, 상기 입력부, 표시부, 통신부, 저장부 등의 동작을 제어하기 위한 제어부를 포함하여 구성될 수도 있다. 이때, 상술한 바와 같은 동작 수행은 제어부의 제어 하에 진행될 수도 있다.
아울러, 본 발명의 단말(100)은 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 단말(100)은 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수 있다.
이러한 본 발명의 단말(100)은 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 범용의 운영체제 플랫폼 상에 다양한 어플리케이션이 자유롭게 추가되고 삭제될 수 있으며, 통신망(300)을 통해 어플리케이션 마켓 서버(200a, 200b)로부터 스토어 어플리케이션(30, 40)을 비롯하여 하나 이상의 어플리케이션을 다운로드 받아 이용할 수 있는 단말(100)이라면, 그 어떠한 장치도 본 발명의 단말(100)로 적용 가능하다.
이하, 본 발명의 실시 예에 따른 어플리케이션 마켓 서버의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 5는 본 발명의 실시 예에 따른 어플리케이션 마켓 서버의 주요 기능 및 구성을 설명하기 위한 블록도이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 어플리케이션 마켓 서버, 즉 도 1에 도시된 제2 어플리케이션 마켓 서버(200b)는 서버 통신부(210), 서버 제어부(220) 및 서버 저장부(230)을 포함하여 구성될 수 있다.
서버 통신부(210)는 통신망(300)을 통해 자신이 지원하는 스토어 어플리케이션, 즉 도 1에 도시된 제2 스토어 어플리케이션(40)을 포함하는 단말(100)과 다양한 정보를 송수신하는 역할을 수행한다. 특히, 서버 통신부(210)는 서버 제어부(220)의 제어에 따라 상기 단말(100)이 요청한 하나 이상의 어플리케이션을 상기 통신망(300)을 거쳐 상기 제2 스토어 어플리케이션(40)을 통해 제공할 수 있다.
또한, 본 발명의 실시 예에 따른 서버 통신부(210)는 상기 단말(100)로 어댑터 모듈의 기능 수행을 위한 웹 소스를 제공할 수 있으며, 상기 단말(100)로부터 사용자 정보 및 단말 정보를 수신할 수 있다. 이후, 서버 제어부(220)의 제어에 따라 생성된 인증키를 상기 단말(100)로 제공할 수도 있다.
서버 제어부(220)는 본 발명의 실시 예에 따른 제2 어플리케이션 마켓 서버(200b)의 전반적인 제어를 수행하는 것으로서, 자신이 지원하는 제2 스토어 어플리케이션(40)을 포함하는 단말(100)로 하나 이상의 어플리케이션을 제공할 수 있다.
또한, 본 발명의 서버 제어부(220)는 상기 단말(100)로부터 사용자 정보 및 단말 정보가 수신되면, 상기 사용자 정보 및 단말 정보와 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 인증키를 생성할 수 있다. 이때, 상기 인증키는 기 정해진 규칙에 따라 또는 랜덤하게 생성될 수 있다. 그리고 나서, 서버 제어부(220)는 생성된 인증키를 상기 서버 통신부(210)를 통해 상기 단말(100)로 전송되는 과정을 제어할 수 있으며, 생성된 인증키(233)를 상기 사용자 정보(231), 단말 정보(232)에 대응하여 서버 저장부(230)에 저장하는 과정을 제어할 수 있다.
이러한 정보들을 저장하고 관리하는 서버 저장부(230)는 제2 어플리케이션 마켓 서버(200b) 내의 저장소가 될 수 있으며, 제2 어플리케이션 마켓 서버(200b) 외부에 위치하여 상기 제2 어플리케이션 마켓 서버(200b)와 데이터 송수신이 가능한 데이터 저장 서버가 될 수도 있다. 또한, 상기 서버 저장부(230)는 자신이 지원하는 제2 스토어 어플리케이션(40)을 통해 배포할 수 있는 하나 이상의 어플리케이션(234)를 저장하고 관리하는 역할을 수행할 수 있다.
이상으로 본 발명의 실시 예에 따른 스토어 어플리케이션을 지원하기 위한 어플리케이션 마켓 서버의 주요 구성 및 동작 방법에 대해 설명하였다.
이러한 어플리케이션 마켓 서버는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다. 어플리케이션 마켓 서버는 웹서버 또는 네트워크 서버의 형태로 구현될 수 있으며, 웹서버는 일반적으로 인터넷과 같은 개방형 컴퓨터 네트워크를 통하여 불특정 다수 클라이언트 및/또는 다른 서버와 연결되어 있고, 클라이언트 또는 다른 웹서버의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 및 그를 위하여 설치되어 있는 컴퓨터 소프트웨어(웹서버 프로그램)를 뜻하는 것이다. 그러나, 전술한 웹서버 프로그램 이외에도, 웹서버상에서 동작하는 일련의 응용 프로그램(Application Program)과 경우에 따라서는 내부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다. 이러한 어플리케이션 마켓 서버는 일반적인 서버용 하드웨어에 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 매킨토시(Macintosh) 등의 운영체제에 따라 다양하게 제공되고 있는 웹서버 프로그램을 이용하여 구현될 수 있으며, 대표적인 것으로는 윈도우 환경에서 사용되는 웹사이트(Website), IIS(Internet Information Server)와 유닉스환경에서 사용되는 CERN, NCSA, APPACH 등이 이용될 수 있다. 더하여, 본 발명의 어플리케이션 마켓 서버는 클라우드 방식으로 동작하는 하나 이상의 서버로 구현될 수 있다. 특히, 본 발명의 실시 예에 따른 시스템(100)을 통해 송수신되는 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 영구적으로 저장될 수 있는 클라우드 컴퓨팅(Cloud Computing) 기능을 통해 제공될 수 있다. 여기서, 클라우드 컴퓨팅은 데스크톱, 태블릿 컴퓨터, 노트북, 넷북 및 스마트폰 등의 디지털 단말기에 인터넷 기술을 활용하여 가상화된 IT(Information Technology) 자원, 예를 들어, 하드웨어(서버, 스토리지, 네트워크 등), 소프트웨어(데이터베이스, 보안, 웹 서버 등), 서비스, 데이터 등을 온 디맨드(On demand) 방식으로 서비스하는 기술을 의미한다. 본 발명에 있어서, 단말 및 어플리케이션 마켓 서버를 통해 송수신되는 모든 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 저장되고, 언제 어디서든 전송될 수 있다.
이하, 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법에 대해 도 6 및 도 7을 참조하여 설명하도록 한다.
도 6은 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법을 개략적으로 설명하기 위한 흐름도이다.
도 1 및 도 6을 참조하여 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법을 설명하기 이전에, 단말(100)이 제1 스토어 어플리케이션(30) 및 제2 스토어 어플리케이션(40)을 모두 구비하고 있는 것을 가정하여 설명하도록 한다. 여기서, 제1 스토어 어플리케이션(30)은 전술한 바와 같이 플랫폼 레벨의 API를 이용하여 단말 플랫폼에 접근할 수 있는 스토어 어플리케이션이며, 제2 스토어 어플리케이션(40)은 사용자 레벨의 API를 이용하여 단말 플랫폼의 접근이 제한된 스토어 어플리케이션을 의미한다. 또한, 제1 스토어 어플리케이션(30) 및 제2 스토어 어플리케이션(40)은 자신을 통해 배포된 하나 이상의 어플리케이션을 관리할 수 있다. 이때, 제1 스토어 어플리케이션(30)은 제1 어플리케이션 마켓 서버(200a)로부터 하나 이상의 어플리케이션을 수신할 수 있으며 제2 스토어 어플리케이션(40)은 제2 어플리케이션 마켓 서버(200b)로부터 하나 이상의 어플리케이션을 수신할 수 있다. 또한, 제2 스토어 어플리케이션(40)은 제1 스토어 어플리케이션(30)을 통해 제1 어플리케이션 마켓 서버(200a)로부터 수신되어 단말(100) 내 설치될 수 있다. 예를 들면, 상기 제1 스토어 어플리케이션(30)은 단말(100) 내 미리 설치된 어플리케이션 스토어로 모든 사용자를 대상으로 공개된 하나 이상의 어플리케이션의 배포를 지원하는 어플리케이션 스토어일 수 있다. 반면, 제2 스토어 어플리케이션(40)은 추후 다운로드되어 설치된 어플리케이션 스토어로, 기업용 어플리케이션 등과 같이 특정 사용자를 대상으로 하는 어플리케이션의 배포를 지원하는 어플리케이션 스토어일 수 있다.
이러한 상태에서, 단말(100)이 먼저, 제2 스토어 어플리케이션(40)은 상기 제2 스토어 어플리케이션(40)을 지원하는 제2 어플리케이션 마켓 서버(200b)로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션의 업데이트 정보를 확인하게 된다(S101).
그리고 나서, 단말(100)은 상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 플랫폼 레벨의 API를 이용하는 제1 스토어 어플리케이션(30)을 통해 단말 플랫폼이 제공하는 리소스에 접근하여, 해당 어플리케이션 업데이트를 진행할 수 있다(S103).
본 발명의 어플리케이션 업데이트 방법에 대해 도 7을 참조하여 보다 구체적으로 설명하도록 한다.
도 7은 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법을 보다 구체적으로 설명하기 위한 흐름도이다.
도 1 및 도 7을 참조하면, 단말(100)은 먼저, 사용자의 요청에 따라 제2 스토어 어플리케이션(40)이 설치되는 과정을 진행할 수 있다(S201). 이때, 제2 스토어 어플리케이션(40), 보다 정확하게는 제2 스토어 어플리케이션(40)의 기능을 지원하는 어댑터 모듈은 제1 스토어 어플리케이션(30)이 제공하는 플랫폼 리소스에 빌드(build)될 수 있으며, 이때, 속성 정보를 상기 플랫폼이 지원하는 운영체제 형식에 따라 변경될 수 있다. 그리고 이러한 과정이 완료되면, 제2 스토어 어플리케이션(40) 내부에 상기 기능을 지원하는 어댑터 모듈이 탑재될 수 있다.
이러한 과정을 거치게 되면, 단말(100)의 제2 스토어 어플리케이션(40)은 자신을 통해 입력되는 사용자 정보(예컨대, 사용자로부터 입력된 아이디 및 패스워드) 및 확인된 단말 정보(예컨대, 맥 주소 정보)를 자신을 지원하는 제2 어플리케이션 마켓 서버(200b)로 전송한다(S203).
이후에, 단말(100)의 제2 스토어 어플리케이션(40)은 상기 제2 어플리케이션 마켓 서버(200b)로부터 상기 사용자 정보 및 단말 정보, 그리고 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키를 수신한다(S205).
이후에, 단말(100)의 제2 스토어 어플리케이션(40)은 상기 제2 어플리케이션 마켓 서버(200b)로부터 수신된 인증키를 저장하고(S207), 상기 제2 어플리케이션 마켓 서버(200b)가 제공하는 하나 이상의 어플리케이션의 다운로드하여 설치되는 과정을 지원할 수 있다(S209).
이후에, 단말(100)의 제2 스토어 어플리케이션(40)은 자신이 관리하는 하나 이상의 어플리케이션의 업데이트 정보를 확인하여, 어플리케이션의 업데이트가 필요한 지 여부를 판단할 수 있다(S211).
상기 판단 결과, 어플리케이션의 업데이트가 필요한 것으로 판단되면, 단말(100)의 제2 스토어 어플리케이션(40)은 제2 어플리케이션 마켓 서버(200b)로 인증키를 전송하고(S213), 이를 수신한 제2 어플리케이션 마켓 서버(200b)는 상기 수신한 인증키와 S203 단계 이후에, 생성되어 저장된 인증키를 비교하게 된다. 그리고, 비교 결과 상기 인증키가 일치하는 것으로 판단되면, 제2 어플리케이션 마켓 서버(200b)는 인증 성공 정보를 생성하고, 단말(100)로 전송한다.
단말(100)의 제2 스토어 어플리케이션(40)은 상기 제2 어플리케이션 마켓 서버(200b)로부터 인증 성공 정보가 수신되면(S215), 제1 스토어 어플리케이션(30)을 통해 단말 플랫폼이 제공하는 리소스에 접근하여 업데이트를 진행하게 된다(S217).
그리고 나서, 단말(100)은 어플리케이션이 업데이트되는 동안 강제 종료되지 않도록 제1 스토어 어플리케이션(30)을 통해 우선순위를 높여 메모리 풀에 등록되도록 요청하여 메모리 풀에 등록하게 된다(S219).
그리고 나서, 단말(100)의 제2 스토어 어플리케이션(40)은 상기 어플리케이션의 자동 업데이트를 완료할 수 있다(S221).
본 발명의 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 의하면, 단말 플랫폼에 접근이 어려워, 자동 업데이트 기능이 원천적으로 불가능한 스토어 어플리케이션, 즉 제2 스토어 어플리케이션(40)이 자동 업데이트 기능의 구현이 가능한 스토어 어플리케이션, 즉 제1 스토어 어플리케이션(30)을 이용하여, 자신이 관리하는 하나 이상의 어플리케이션의 업데이트를 자동적으로 수행할 수 있다는 효과가 있다.
또한, 본 발명은 상술한 기능을 지원하는 어댑터 모듈을 웹 소스 형태로 배포함으로써, 단말 플랫폼의 종류와는 상관없이 어떠한 단말에도 적용할 수 있다는 효과가 있으며, 서버 기반의 인증키 공유를 통해 보안을 강화하였으며, 메모리 관리 방식을 개선하여, 상술한 기능을 지원하는 어댑터 모듈의 구동 안정성 확보가 가능하다는 효과가 있다.
이상으로 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 실시 예에 따른 어플리케이션 업데이트 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 이때, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
본 발명은 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것으로서, 더욱 상세하게는 사용자 레벨의 API(Application Programming Interface)를 이용하여, 단말 플랫폼이 제공하는 리소스에 접근이 불가능한 스토어 어플리케이션이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여 배포된 하나 이상의 어플리케이션의 업데이트를 진행할 수 있는 어플리케이션 업데이트 방법 및 이를 지원하는 단말에 관한 것이다.
본 발명에 의하면, 단말 플랫폼에 접근이 어려워, 자동 업데이트 기능이 원천적으로 불가능한 스토어 어플리케이션이 자동 업데이트 기능의 구현이 가능한 스토어 어플리케이션을 이용하여, 자신이 관리하는 하나 이상의 어플리케이션의 업데이트를 자동적으로 수행할 수 있다는 우수한 효과가 있으며, 이를 통해 서드파티(3rd party) 개발사에 의해 개발된 스토어 어플리케이션의 배포를 촉진할 수 있어, 어플리케이션 산업의 발전에 이바지할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
10: 단말 하드웨어 레이어 20: 플랫폼 레이어
21: 어플리케이션 프레임워크 22: 라이브러리
23: 리눅스 커널 30: 제1 스토어 어플리케이션
40: 제2 스토어 어플리케이션 41: 어플리케이션 관리 모듈
42: 어댑터 모듈 42a: 인증 처리부 42b: 메모리 관리부
42c: 자원 처리부 50: 어플리케이션 레이어 100: 단말
200a: 제1 어플리케이션 마켓 서버 200b: 제2 어플리케이션 마켓 서버
210: 서버 통신부 220: 서버 제어부 230: 서버 저장부
231: 사용자 정보 232: 단말 정보 233: 인증키
234: 어플리케이션 300: 통신망

Claims (10)

  1. 사용자 레벨의 API를 이용하는 제2 스토어 어플리케이션을 통해 어플리케이션 마켓 서버로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션을 관리하고, 상기 어플리케이션의 업데이트 정보를 확인하여 업데이트가 필요한 것으로 판단되면, 어댑터 모듈로 상기 어플리케이션의 업데이트를 요청하는 어플리케이션 관리 모듈; 및
    상기 어플리케이션 관리 모듈의 요청에 따라, 플랫폼 레벨의 API(Application Programming Interface)를 이용하는 제1 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하는 어댑터 모듈;
    을 포함하는 것을 특징으로 하는 단말.
  2. 제1항에 있어서,
    상기 어댑터 모듈은
    사용자 정보 및 단말 정보를 상기 어플리케이션 마켓 서버로 전송하여, 상기 사용자 정보 및 단말 정보와 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키를 수신하여 저장하고, 상기 어플리케이션 관리 모듈로부터 상기 어플리케이션 업데이트 요청이 전달되면, 기 저장된 상기 인증키를 상기 어플리케이션 마켓 서버로 전송하여, 상기 어플리케이션 마켓 서버로부터 인증 성공 정보가 수신되면, 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 리소스를 이용하여 상기 어플리케이션의 업데이트를 진행하는 것을 특징으로 하는 단말.
  3. 제1항에 있어서,
    상기 어댑터 모듈은
    상기 플랫폼 레벨의 API를 이용하는 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 어플리케이션 프레임워크, 라이브러리, 커널을 이용하여 상기 어플리케이션의 업데이트를 진행하는 것을 특징으로 하는 단말.
  4. 제1항에 있어서,
    상기 어댑터 모듈은
    상기 어플리케이션 관리 모듈에 의해 관리되는 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션이 강제 종료되지 않도록, 상기 어플리케이션의 우선순위를 높여 메모리 풀에 등록되도록 제어하는 것을 특징으로 하는 단말.
  5. 제4항에 있어서,
    상기 어댑터 모듈은
    상기 어플리케이션의 우선순위를 높여 메모리 풀에 등록되도록, 상기 스토어 어플리케이션을 통해 상기 단말 플랫폼이 제공하는 메모리 관리자(Push Indicator)로 요청하는 것을 특징으로 하는 단말.
  6. 단말이 사용자 레벨의 API를 이용하는 제2 스토어 어플리케이션을 통해 어플리케이션 마켓 서버로부터 다운로드 받아 설치된 적어도 하나의 어플리케이션의 업데이트 정보를 확인하는 단계; 및
    상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 플랫폼 레벨의 API(Application Programming Interface)를 이용하는 제1 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하며, 상기 어플리케이션의 업데이트를 진행하는 단계;
    를 포함하는 것을 특징으로 하는 어플리케이션 업데이트 방법.
  7. 제6항에 있어서,
    상기 업데이트 정보를 확인하는 단계 이전에,
    상기 단말이 사용자 정보 및 단말 정보를 상기 어플리케이션 마켓 서버로 전송하는 단계;
    상기 단말이 상기 사용자 정보 및 단말 정보와 상기 사용자 정보 및 단말 정보가 수신된 시점의 시간 정보를 기초로 생성된 인증키를 상기 어플리케이션 마켓 서버로부터 수신하는 단계; 및
    상기 단말이 상기 수신된 인증키를 저장하는 단계;
    를 더 포함하는 것을 특징으로 하는 어플리케이션 업데이트 방법.
  8. 제7항에 있어서,
    상기 어플리케이션의 업데이트를 진행하는 단계는
    상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 상기 저장된 인증키를 상기 어플리케이션 마켓 서버로 전송하는 단계; 및
    상기 어플리케이션 마켓 서버로부터 인증 성공 정보가 수신하는 단계; 및
    상기 단말이 플랫폼 레벨의 API를 이용하는 스토어 어플리케이션을 통해 단말 플랫폼이 제공하는 리소스에 접근하여, 상기 어플리케이션의 업데이트를 진행하는 단계;
    를 포함하는 것을 특징으로 하는 어플리케이션 업데이트 방법.
  9. 제6항에 있어서,
    상기 업데이트를 진행하는 단계 이후에,
    상기 단말이 상기 제2 스토어 어플리케이션이 제공하는 어플리케이션의 업데이트가 진행되면, 상기 어플리케이션이 강제 종료되지 않도록 상기 제1 스토어 어플리케이션을 통해 우선순위를 높여 메모리 풀에 등록되도록 요청하는 단계;
    를 더 포함하는 것을 특징으로 하는 어플리케이션 업데이트 방법.
  10. 제6항에 있어서,
    상기 업데이트 정보를 확인한 결과, 상기 어플리케이션의 업데이트가 필요한 것으로 판단되면, 상기 단말이 사용자에게 상기 어플리케이션의 업데이트를 알리기 위한 푸시(push) 메시지를 출력하는 단계;
    를 더 포함하는 것을 특징으로 하는 어플리케이션 업데이트 방법.
KR1020130140548A 2013-11-19 2013-11-19 어플리케이션 업데이트 방법 및 이를 지원하는 단말 KR102124330B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130140548A KR102124330B1 (ko) 2013-11-19 2013-11-19 어플리케이션 업데이트 방법 및 이를 지원하는 단말

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130140548A KR102124330B1 (ko) 2013-11-19 2013-11-19 어플리케이션 업데이트 방법 및 이를 지원하는 단말

Publications (2)

Publication Number Publication Date
KR20150057328A KR20150057328A (ko) 2015-05-28
KR102124330B1 true KR102124330B1 (ko) 2020-06-18

Family

ID=53392216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130140548A KR102124330B1 (ko) 2013-11-19 2013-11-19 어플리케이션 업데이트 방법 및 이를 지원하는 단말

Country Status (1)

Country Link
KR (1) KR102124330B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022255652A1 (ko) * 2021-06-01 2022-12-08 삼성전자 주식회사 어플리케이션 업데이트 방법 및 그 전자 장치
WO2024076123A1 (ko) * 2022-10-05 2024-04-11 삼성전자 주식회사 어플리케이션 업데이트 방법 및 그 전자 장치
US12050900B2 (en) 2021-06-01 2024-07-30 Samsung Electronics Co., Ltd. Method for updating application and electronic device of the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102000162B1 (ko) 2016-03-17 2019-07-16 한국전자통신연구원 저사양 기기의 소프트웨어 업데이트 지원 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100943126B1 (ko) * 2009-02-10 2010-02-18 주식회사 아레오네트웍스 모듈형 무선 애플리케이션 프레임워크와 애플리케이션 업데이트 방법 및 이를 위한 기록매체
US20130019233A1 (en) 2011-07-12 2013-01-17 Apple Inc. System and method for linking pre-installed software to a user account on an online store

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2012203903B2 (en) * 2011-07-12 2015-03-12 Apple Inc. System and method for linking pre-installed software to a user account on an online store
KR101537098B1 (ko) * 2011-12-12 2015-07-16 주식회사 케이티 단말 및 단말에 설치된 프리로드 애플리케이션의 관리 방법
KR20130066421A (ko) 2011-12-12 2013-06-20 주식회사 케이티 단말 및 단말에 설치된 애플리케이션의 업데이트 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100943126B1 (ko) * 2009-02-10 2010-02-18 주식회사 아레오네트웍스 모듈형 무선 애플리케이션 프레임워크와 애플리케이션 업데이트 방법 및 이를 위한 기록매체
US20130019233A1 (en) 2011-07-12 2013-01-17 Apple Inc. System and method for linking pre-installed software to a user account on an online store

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022255652A1 (ko) * 2021-06-01 2022-12-08 삼성전자 주식회사 어플리케이션 업데이트 방법 및 그 전자 장치
US12050900B2 (en) 2021-06-01 2024-07-30 Samsung Electronics Co., Ltd. Method for updating application and electronic device of the same
WO2024076123A1 (ko) * 2022-10-05 2024-04-11 삼성전자 주식회사 어플리케이션 업데이트 방법 및 그 전자 장치

Also Published As

Publication number Publication date
KR20150057328A (ko) 2015-05-28

Similar Documents

Publication Publication Date Title
US10681050B2 (en) Ephemeral applications
US11240348B2 (en) Remotely managing application settings using hash value comparison
KR102191017B1 (ko) eSIM 프로비저닝 방법과 이를 지원하는 서버 장치
US9451039B1 (en) Push notifications for web applications and browser extensions
US9887965B2 (en) Method and system for browser identity
JP6752969B2 (ja) アカウントログインのための方法、装置及びサーバ
US9710252B2 (en) Authentication and notification heuristics
US20130332575A1 (en) Efficient data transfer for cloud storage by centralized management of access tokens
US9389873B2 (en) Kiosk application mode for operating system
US10922445B2 (en) Computing systems and methods
US9208338B2 (en) Method and apparatus for securely executing multiple actions using less than a corresponding multiple of privilege elevation prompts
US11924210B2 (en) Protected resource authorization using autogenerated aliases
EP2823395A1 (en) Tiers of data storage for web applications and browser extensions
CN110780930A (zh) 启动Android***的方法、装置、电子设备及存储介质
KR102124330B1 (ko) 어플리케이션 업데이트 방법 및 이를 지원하는 단말
CN112966257B (zh) 一种应用程序的授权方法及装置
US10805427B1 (en) Backup and restore of customer devices
US20160044060A1 (en) Policy synchronization for multiple devices
US20140282446A1 (en) Modification of compiled applications and application management using retrievable policies
CN104158812A (zh) 一种终端应用的安全控制方法及***
US11757976B2 (en) Unified application management for heterogeneous application delivery
US9491231B1 (en) Mobile communication device stateful applications system
KR102111574B1 (ko) 어플리케이션 기반 식별 정보 생성 방법, 이를 위한 장치 및 시스템
KR20160029282A (ko) 클라우드 스토리지 서비스 제공 방법 및 이를 구현한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US20190065167A1 (en) Software package installations with proximity tags

Legal Events

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