KR101810536B1 - 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 - Google Patents

라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 Download PDF

Info

Publication number
KR101810536B1
KR101810536B1 KR1020140058317A KR20140058317A KR101810536B1 KR 101810536 B1 KR101810536 B1 KR 101810536B1 KR 1020140058317 A KR1020140058317 A KR 1020140058317A KR 20140058317 A KR20140058317 A KR 20140058317A KR 101810536 B1 KR101810536 B1 KR 101810536B1
Authority
KR
South Korea
Prior art keywords
library
child
storage area
parent
shared storage
Prior art date
Application number
KR1020140058317A
Other languages
English (en)
Other versions
KR20150131535A (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 KR1020140058317A priority Critical patent/KR101810536B1/ko
Priority to CN201580037932.6A priority patent/CN106662993B/zh
Priority to US15/310,516 priority patent/US20170075686A1/en
Priority to PCT/KR2015/000348 priority patent/WO2015174609A1/ko
Publication of KR20150131535A publication Critical patent/KR20150131535A/ko
Application granted granted Critical
Publication of KR101810536B1 publication Critical patent/KR101810536B1/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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

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)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것으로, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하며, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.

Description

라이브러리 업데이트 방법, 이를 위한 단말 및 시스템{METHOD FOR UPDATING OF LIBRARY, APPARATUS AND SYSTEM FOR THE SAME}
본 발명은 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
최근, 스마트폰(smartphone)과 같은 단말의 성능 향상 및 통신 기술의 급속한 발전으로 인해, 단말에서 실행 가능한 다양한 종류의 어플리케이션(application)이 빠르게 보급되고 있으며, 이를 위한 다양한 어플리케이션 개발 방법이 소개되고 있다.
최근에는 어플리케이션에서 공통적으로 사용하는 코드와 리소스를 별도의 부프로그램으로 구성하여 개발하고 있다. 이러한 부프로그램을 라이브러리(library)라고 불린다. 어플리케이션 개발자들은 개발의 효율성을 위해 라이브러리 형태로 서비스 기능의 개발 방법(SDK; Software Development Kit)을 제공한다.
이렇게 제작된 SDK 라이브러리는 개발자의 어플리케이션에 함께 내포되어 빌드되고 배포되며, 런타임 과정에서 어플리케이션 코드와 함께 실행되는 방식이다.
현재까지의 SDK 라이브러리는 이를 사용하여 개발되는 어플리케이션마다 개별적으로 내포되어 배포됨으로써, 하나의 단말 상에 동일한 SDK 라이브러리가 여러 개 존재한다는 문제점이 있다.
또한, SDK 라이브러리 전체가 어플리케이션에 내포되어 배포됨으로써, 어플리케이션 전송 시 많은 네트워크 자원을 소모한다는 문제점이 있다.
또한, SDK 라이브러리가 내포되는 시점이 어플리케이션의 빌드 시점임에 따라, SDK 라이브러리의 변경 사항이 발생하였을 때, 어플리케이션의 빌드, 배포에 대한 비용이 발생된다는 문제점이 있다.
한국공개특허 제10-2005-0089072호, 2005년 9월 7일 공개 (명칭: 모바일 장치들 상의 라이브러리들을 공유하기 위한 방법 및 장치)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 특히 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템을 제공하는 데 목적이 있다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말은 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함하며, 상기 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 저장부; 및 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 제어부;를 포함하여 구성될 수 있다.
이때, 상기 제어부는 상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 단말은 여러 어플리케이션이 공유할 수 있는 공유 저장 영역에 위치하며, 부모 라이브러리의 요청에 따라 리소스를 제공하는 자식 라이브러리; 및 어플리케이션 각각에 할당되는 비공유 저장 영역에 위치하며, 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 하나 이상의 부모 라이브러리;를 포함하여 구성될 수 있다.
이때, 상기 부모 라이브러리는 상기 자식 라이브러리의 업데이트 여부를 판단하는 자식 라이브러리 관리부; 상기 서비스 장치로부터 수신된 상기 라이브러리를 상기 공유 저장 영역에 저장하는 자식 라이브러리 적재부; 및 상기 공유 저장 영역에 저장된 라이브러리를 자식 라이브러리로 동작하도록 클래스를 조회하여 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 자식 라이브러리 호출부;를 포함하여 구성될 수 있다.
이때, 상기 자식 라이브러리 관리부는 상기 서비스 장치와의 연결을 위한 서버 연결부; 상기 서버 연결부를 통해 상기 서비스 장치와 연결되면, 상기 서비스 장치에 구비된 라이브러리의 버전을 질의하여 확인하는 버전 확인부; 및 상기 버전 확인부를 통해 확인된 라이브러리의 버전과 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 저장 영역 연결부;를 포함하여 구성될 수 있다.
이때, 상기 저장 영역 연결부는 상기 기 저장된 자식 라이브러리를 사용하는 어플리케이션을 확인하여, 상기 자식 라이브러리를 사용하는 어플리케이션이 하나 이상 존재하는 경우, 상기 자식 라이브러리를 여러 어플리케이션이 공유하는 것으로 판단할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 라이브러리 업데이트 시스템은 하나 이상의 어플리케이션이 이용 가능한 라이브러리를 저장하고 관리하는 서비스 장치; 및 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하며, 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단말;을 포함하여 구성될 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법은 상기 단말이 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계; 상기 단말이 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하는 단계; 상기 비교 결과 상이할 경우, 상기 단말이 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신하는 단계; 및 상기 단말이 수신된 상기 라이브러리 관련 파일을 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법은 상기 부모 라이브러리가 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계; 및 상기 부모 라이브러리가 확인된 버전과 상기 자식 라이브러리의 버전을 비교하는 단계; 상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 제어하는 단계는 상기 부모 라이브러리가 상기 수신된 라이브러리를 상기 공유 저장 영역에 저장하는 단계; 상기 부모 라이브러리가 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하는 단계; 및 상기 부모 라이브러리가 생성된 상기 자식 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 버전을 비교하는 단계 이후에, 상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 단계;를 더 포함하여 이뤄질 수 있다.
추가로 본 발명은 상술한 라이브러리 업데이트 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공할 수 있다.
본 발명의 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 의하면, 단말 환경을 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하도록 구현하고, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하도록 함으로써, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하게 된다.
또한, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.
또한, 실제 기능에 대한 내용을 포함하는 자식 라이브러리에 업데이트가 발생되었을 경우, 어플리케이션별로 업데이트를 수행할 필요 없이, 여러 어플리케이션이 접근하여 공유할 수 있는 자식 라이브러리만을 업데이트함으로써, 어플리케이션 유지보수 비용이 절감된다는 우수한 효과가 있다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도 1은 본 발명의 실시 예에 따른 라이브러리 업데이트 방법이 적용된 어플리케이션 제공 시스템의 개략적인 구성도이다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 단말의 주요 구성을 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 저장부의 구성을 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따른 부모 라이브러리의 주요 구성을 도시한 블록도이다.
도 5는 본 발명의 실시 예에 따른 자식 라이브러리의 주요 구성을 도시한 블록도이다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 서비스 장치의 주요 구성을 도시한 블록도이다.
도 7은 본 발명의 실시 예에 따른 라이브러리 업데이트를 위해 서비스 장치로부터 라이브러리 파일을 수신하는 과정을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 라이브러리 파일을 자식 라이브러리로 불러오는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시 예에 따른 부모 라이브러리가 업데이트된 자식 라이브러리를 사용하는 방법을 설명하기 위한 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 핵심을 흐리지 않고 더욱 명확히 전달하기 위함이다. 또한 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 하나, 이는 본 발명을 특정한 실시 형태로 한정하려는 것은 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이제 본 발명의 실시 예에 따른 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 대하여 도면을 참조하여 상세하게 설명하도록 한다. 이때, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용하며, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 본 발명의 실시 예에 따른 라이브러리 업데이트 방법이 적용된 어플리케이션 제공 시스템의 개략적인 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 라이브러리 업데이트 시스템(100)은 단말(10), 서비스 장치(20) 그리고 상기 단말(10) 및 서비스 장치(20) 사이의 정보의 송수신을 지원하는 통신망(30)을 포함하여 구성될 수 있다.
각 구성요소에 대해 개략적으로 설명하면, 먼저, 단말(10)은 사용자의 조작에 따라 통신망(30)을 경유하여 각종 데이터를 송수신할 수 있는 사용자의 장치를 의미한다. 이러한 단말(10)은 통신망(30)을 통해 음성 또는 데이터 통신을 수행할 수 있으며, 서비스 장치(20)와 다양한 정보를 송수신할 수 있다. 이를 위한 본 발명의 단말(10)은 정보의 송수신을 위한 브라우저, 프로그램 및 프로토콜을 저장하는 메모리, 각종 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비할 수 있다.
특히, 본 발명의 실시 예에 따른 단말(10)은 저장부를 포함하여 구성되며, 이때의 저장부는 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함한다. 이때, 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하여 구성될 수 있다.
이러한 저장 환경이 구현된 상태에서, 본 발명의 단말(10)은 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치(20)로부터 라이브러리 관련 파일을 수신할 수 있다. 그리고, 단말(10)은 실행된 어플리케이션에 할당된 상기 부모 라이브러리를 제어하여 서비스 장치(20)로부터 수신된 라이브러리를 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어할 수 있다.
보다 구체적인 단말(10)에서의 저장 환경 및 라이브러리 업데이트 방법에 대해서는 후술하도록 한다.
서비스 장치(20)는 본 발명의 실시 예에 따른 특정 기능을 수행할 수 있는 클래스, 메소드, 객체의 리소스의 집합인 라이브러리를 관리하고, 단말(10)의 요청에 따라 제공하는 역할을 수행한다. 특히, 서비스 장치(20)는 어플리케이션 내에 라이브러리를 내포하여 배포되는 과정을 제어할 수 있으며, 단말(10)에 구비된 어플리케이션의 요청에 따라, 특정 기능을 수행할 수 있는 예컨대 광고 서비스를 위한 라이브러리를 제공하는 역할을 수행할 수 있다.
아울러, 서비스 장치(20)가 제공하는 특정 기능을 수행할 수 있는 리소스의 집합인 라이브러리는 수시로 업데이트될 수 있으며, 업데이트된 라이브러리는 단말(10)로 제공되어 단말(10)의 자식 라이브러리 동작하는 과정 전반을 지원할 수 있다.
보다 구체적인 서비스 장치(20)의 주요 구성 및 동작 방법에 대해서는 후술하도록 하며, 본 발명의 실시 예에 따른 단말(10) 및 서비스 장치(20)에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
또한, 본 발명의 실시 예에 따른 단말(10) 및 서비스 장치(20)는 통신망(30)을 통해 관련된 다양한 정보를 송수신하게 되며, 이때의 통신망(30)은 다양한 형태의 통신망이 이용될 수 있다.
예컨대, 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) 등의 유선 통신 방식을 이용할 수 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
이하, 본 발명의 실시 예에 따른 단말(10)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 2는 도 1에 도시된 본 발명의 실시 예에 따른 단말의 주요 구성을 도시한 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시 예에 따른 단말(10)은 통신부(11), 입력부(12), 제어부(13), 저장부(14) 및 표시부(15)를 포함하여 구성될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 먼저, 통신부(11)는 통신망(30)을 통해 서비스 장치(20)와 다양한 정보의 송수신을 지원하는 역할을 수행한다. 특히, 본 발명의 실시 예에 따른 통신부(11)는 서비스 장치(20)가 제공하는 라이브러리 관련 파일을 수신할 수 있으며, 서비스 장치(20)로 라이브러리 버전을 질의하는 과정을 지원할 수 있다.
입력부(12)는 사용자로부터 입력되는 숫자 및 문자 정보 등의 다양한 정보, 각종 기능 설정 및 단말(10)의 기능 제어와 관련하여 입력되는 신호를 제어부(13)로 전달한다. 특히, 본 발명의 입력부(12)는 특정 기능을 지원하는 어플리케이션을 실행하기 위한 사용자 입력을 지원할 수 있다.
이러한 입력부(12)는 상술한 바와 같이, 키보드나 키패드와 같은 키 입력 수단, 터치센서나 터치 패드와 같은 터치 입력 수단, 음성 입력 수단, 자이로 센서, 지자기 센서, 가속도 센서와 근접 센서, 그리고 카메라 중 적어도 하나 이상을 포함하여 이루어지는 제스처 입력 수단을 포함할 수도 있다.
이 외에도 현재 개발 중이거나 향후 개발될 수 있는 모든 형태의 입력 수단이 포함될 수 있다.
제어부(13)는 단말(10)의 전반적인 제어를 수행하는 것으로, 하드웨어적으로 CPU(Central Processing Unit)/MPU(Micro Processing Unit)를 포함하는 적어도 하나 이상의 프로세서와 적어도 하나 이상의 메모리 로딩 데이터가 로딩되는 실행 메모리(예컨대, 레지스터 및/또는 RAM(Random Access Memory)) 및 상기 프로세서와 메모리로 적어도 하나 이상의 데이터들을 입출력하는 버스(BUS)를 포함하여 이루어질 수 있다. 또한 소프트웨어적으로 단말(10)에 정의된 기능을 수행하기 위해 소정의 기록매체로부터 상기 실행 메모리로 로딩되어 상기 프로세서에 의해 연산 처리되는 소정의 프로그램 루틴(Routine) 또는 프로그램 데이터를 포함하여 이루어질 수 있다. 다시 말해, 본 발명의 실시 예에 따른 라이브러리 업데이트 방법을 처리하기 위해 단말(10)에 구비되는 기능 중 소프트웨어적으로 처리가 가능한 구성 요소를 제어부(13)의 기능으로 판단할 수 있다.
이러한, 본 발명의 제어부(13)는 본 발명의 실시 예에 따른 라이브러리 업데이트 방법을 지원하기 위해 구비되는 적어도 하나 이상의 구성 요소와 기능적으로 연결된다. 즉, 제어부(13)는 통신부(11), 입력부(12), 저장부(14) 및 표시부(15)와 기능적으로 연결되며, 상기 각 구성 요소에 전원 공급 및 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이러한 제어부(13)는 어플리케이션 처리 모듈(13a)을 포함하여 구성되며, 하나 이상의 어플리케이션이 저장부(14)에 저장되어 설치되는 과정을 지원할 수 있다. 또한, 제어부(13)는 설치된 어플리케이션이 실행되면, 해당 어플리케이션과 관련된 다양한 정보의 송수신 및 처리 과정을 지원할 수 있다.
특히, 본 발명의 실시 예에 따른 제어부(13)는 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 통신부(11)를 통해 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 저장부(14)의 공유 저장 영역(14b)에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치(20)로부터 라이브러리 관련 파일을 수신한 후, 상기 저장부(14)의 공유 저장 영역(14b)에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역(14b)에 기 저장된 자식 라이브러리를 대체하도록 제어하는 과정을 수행할 수 있다.
기 저장된 자식 라이브러리를 대체하기 위해, 제어부(13)는 서비스 장치(20)로부터 수신된 라이브러리가 저장부(14)의 공유 저장 영역(14b)에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 부모 라이브러리의 클래스를 생성함과 동시에 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 메소드를 호출하여, 자식 라이브러리의 클래스에 접근하고, 해당 메소드를 호출하는 과정을 제어할 수 있다.
이러한 제어부(13)에서의 동작은 저장부(14)에 구비된 자식 라이브러리 및 부모 라이브러리의 동작 방법과 연계하여 설명하도록 한다.
저장부(14)는 본 발명의 실시 예에 따른 기능 동작에 필요한 프로그램을 비롯하여, 프로그램 실행 중에 발생되는 다양한 데이터를 일시적으로 저장할 수 있다. 또한, 저장부(14)는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 프로그램 영역은 단말(10)을 부팅시키는 운영체제(OS)와 같은 단말(10) 구동을 위한 관련된 정보들을 저장한다. 데이터 영역은 단말(10)의 사용에 따라 발생되는 데이터가 저장되는 영역으로, 상기 데이터 영역은 상술한 비공유 저장 영역(14a) 및 공유 저장 영역(14b)으로 구분될 수 있다. 이러한, 저장부(14)는 플래시 메모리(flash memory), 하드디스크(hard disk), 멀티미디어 카드 마이크로(multimedia card micro) 타입의 메모리(예컨대, SD 또는 XD 메모리 등), 램(RAM), 롬(ROM) 등의 저장매체를 포함하여 구성될 수 있다.
특히, 본 발명의 실시 예에 따른 저장부(14)는 어플리케이션 각각에 할당되는 비공유 저장 영역(14a) 및 여러 어플리케이션이 접근하여 자원을 이용할 수 있는 공유 저장 영역(14b)으로 구분될 수 있다.
이에 대해 도 3을 참조하여 보다 구체적으로 설명하도록 한다.
도 3은 본 발명의 실시 예에 따른 저장부의 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 저장부(14)는 전술한 바와 같이 어플리케이션 각각에 할당되는 비공유 저장 영역(14a) 및 여러 어플리케이션이 데이터를 공유하는 공유 저장 영역(14b)으로 구분될 수 있다.
먼저, 비공유 저장 영역(14a)은 어플리케이션 각각에 할당되며, 해당 어플리케이션별 데이터 저장을 위한 공간으로, 비공유 저장 영역(14a)은 단말(10)에 설치되는 어플리케이션의 수에 따라 그 공간의 크기가 증가되거나 감소될 수 있다.
또한, 비공유 저장 영역(14a) 내에 존재하는 하나 이상의 어플리케이션들은 각각 어플리케이션 고유의 데이터를 저장하는 개별 코드 및 부모 라이브러리(300)을 포함한다. 여기서 부모 라이브러리(300)는 어플리케이션 개발자에 의해 어플리케이션 개발 시점에 직접 어플리케이션 내에 구비되는 라이브러리로서, 라이브러리의 호출을 위한 API(Application Programming Interface)를 제공한다. 그러나, 이때의 API에 해당하는 실질적은 기능에 대한 내용은 부모 라이브러리(300)에 존재하지 않으며, 실질적인 기능에 대한 내용은 자식 라이브러리(400)의 리소스를 통해 존재한다. 다시 말해, 본 발명의 부모 라이브러리(300)는 자식 라이브러리의 접근을 지원하는 역할을 수행하게 된다.
여러 어플리케이션이 접근하여 자원을 이용할 수 있는 공유 저장 영역(14b)은 자식 라이브러리(400)를 포함한다. 어플리케이션에 실질적인 기능을 제공을 위한 리소스를 제공하는 자식 라이브러리는 각각의 어플리케이션에 구비된 부모 라이브러리와 한 벌로 공유되어 사용될 수 있으며, 공유 저장 영역(14B)에 라이브러리 버전, 파일 정보 등과 같은 정보와 함께 저장되고 관리될 수 있다.
부모 라이브러리 및 자식 라이브러리의 주요 구성 및 역할에 대해 도 4 및 도 5를 참조하여 보다 구체적으로 설명하도록 한다.
도 4는 본 발명의 실시 예에 따른 부모 라이브러리의 주요 구성을 도시한 블록도이다.
도 4를 참조하면, 부모 라이브러리(300)는 크게 어플리케이션 프로그래밍 인터페이스(310), 자식 라이브러리 관리부(320), 자식 라이브러리 수신부(330), 자식 라이브러리 적재부(340), 자식 라이브러리 저장부(350), 자식 라이브러리 호출부(360)를 포함하여 구성될 수 있으며, 이러한 구분은 논리적 구분을 의미하고, 실질적은 동작은 제어부(13) 및 통신부(11)와 연계하여 이뤄질 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 어플리케이션 프로그래밍 인터페이스(310)는 자식 라이브러리에 접근하는 과정을 지원한다.
자식 라이브러리 관리부(320)는 서버 연결부(321), 버전 확인부(322), 저장 영역 연결부(323), 설치 확인부(324), 명령 처리부(325)를 포함하여 구성될 수 있다. 자식 라이브러리 관리부(320)의 서버 연결부(321)는 서비스 장치(20)와의 연결을 위한 역할을 수행한다. 버전 확인부(322)는 상기 서버 연결부(321)를 통해 서비스 장치(20)와 연결되면, 상기 서비스 장치(20)에 구비된 라이브러리의 버전을 확인하는 역할을 수행하게 된다.
저장 영역 연결부(323)는 상기 라이브러리의 버전과 단말(10) 내 설치되어 있는 자식 라이브러리의 버전, 다시 말해, 저장부(14)의 공유 저장 영역(14b)에 저장된 자식 라이브러리의 버전과 비교하게 된다. 상기 비교 결과, 상이할 경우, 저장 영역 연경부(323)는 상기 서비스 장치(20)에 구비된 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 판단하고, 판단 결과에 따라 상기 라이브러리가 공유 저장 영역(14a)에 저장되도록 연결하거나, 비공유 저장 영역(14b)에 저장되도록 연결하는 과정을 수행한다.
설치 확인부(324)는 상기 저장 영역 연결부(323)와 연동하여, 상기 저장 영역 연결부(323)에 요청에 따라 단말(10) 내 구비된 라이브러리의 버전을 확인하는 역할을 수행한다. 명령 처리부(325)는 수신, 저장, 저장, 호출 등 상술한 바와 같은 동작 수행을 위해 필요한 명령어들로 구성될 수 있다.
자식 라이브러리 수신부(330)는 상기 자식 라이브러리 관리부(320)의 요청에 따라, 업데이트를 하고자 하는 라이브러리를 서비스 장치(20)로부터 수신하기 위해, 서비스 장치(20)와의 연결을 지원하는 서버 연결부(331) 및 라이브러리를 수신하는 수신 실행부(332)를 포함하여 구성될 수 있다.
자식 라이브러리 적재부(340)는 자식 라이브러리 관리부(320)의 적재 명령에 의해 라이브러리 파일을 읽어 들여 적재하고 라이브러리 파일 내 리소스를 적재하는 역할을 수행한다. 이러한 자식 라이브러리 적재부(340)는 바이너리 적재부(341) 및 리소스 적재부(342)를 포함하여 구성될 수 있으며, 바이너리 적재부(241)는 라이브러리 파일을 바이너리 코드 형태로 적재하는 역할을 수행하며, 리소스 적재부(342)는 라이브러리 파일 내 리소스를 적재하는 역할을 수행한다.
자식 라이브러리 저장부(350)는 공유 저장 영역 연결부(351), 비공유 저장 영역 연결부(352), 바이너리 저장부(353), 버전 정보 저장부(354)를 포함하여 구성될 수 있다. 공유 저장 영역 연결부(351) 및 비공유 저장 영역 연결부(352)는 공유 저장 영역(14b) 및 비공유 저장 영역(14a) 간의 인터페이스를 제공하며, 바이너리 저장부(353)는 라이브러리 파일의 저장을 수행하며, 버전 정보 저장부(354)는 라이브러리 버전 및 파일 정보를 저장하고 관리하는 역할을 수행한다.
자식 라이브러리 호출부(360)는 적재된 라이브러리 내에서 클래스를 조회하여 객체를 생성하고 생성된 객체를 통해 메소드를 조회하고 메소드를 호출하는 역할을 수행한다. 이러한 자식 라이브러리 호출부(360)는 클래스를 조회하는 클래스 조회부(361), 조회된 클래스를 이용하여 객체를 생성하는 객체 생성부(362), 생성된 객체를 통해 메소드를 조회하는 메소드 조회부(363), 조회한 메소드를 호출하는 메소드 호출부(364)를 포함하여 구성될 수 있다.
이하, 자식 라이브러리의 주요 구성 및 역할에 대해 설명하도록 한다.
도 5는 본 발명의 실시 예에 따른 자식 라이브러리의 주요 구성을 도시한 블록도이다.
도 5를 참조하면, 자식 라이브러리(400)는 크게 부모 라이브러리 연결부(410), 자식 라이브러리 호출부(420), 클래스 제공부(430), 메소드 제공부(440), 리소스 제공부(450)를 포함하여 구성될 수 있다.
부모 라이브러리 연결부(410)는 부모 라이브러리(300)를 위한 연결 기능을 지원하며, 클래스 명세부(411), 메소드 명세부(412), 리소스 명세부(413)를 통해 부모 라이브러리(300)는 자식 라이브러리(400) 내에 접근할 수 있는 대상을 조회할 수 있다.
자식 라이브러리 호출부(420)는 부모 라이브러리 연결부(410)를 통해 얻은 명세를 바탕으로 클래스와 메소드를 조회하고, 생성하고 호출할 수 있는 구성을 제공하며, 이러한 자식 라이브러리 호출부(420)는 클래스 조회부(421), 메소드 조회부(422), 객체 생성부(423), 메소드 호출부(424)를 포함하여 구성된다.
클래스 제공부(430), 메소드 제공부(440), 리소스 제공부(340)는 자식 라이브러리(400) 내에 실제 기능이 구현된 클래스, 메소드, 리소스를 부모 라이브러리(300)로 제공하는 역할을 수행한다.
부모 라이브러리(300) 및 자식 라이브러리(400) 간의 연동을 통한 라이브러리 업데이트 방법에 대해서는 이하의 흐름도를 참조하여 보다 더 구체적으로 설명하도록 하며, 다시 도 2를 참조하여, 단말(10)의 장치 구성에 대해 설명하도록 한다.
표시부(15)는 단말(10)의 기능 수행 중에 발생하는 일련의 동작 상태 및 동작 결과 등에 대한 정보를 표시한다. 특히, 본 발명의 표시부(15)는 어플리케이션 실행 중에 발생되는 다양한 정보, 예컨대 자식 라이브러리가 제공하는 특정 기능에 대한 정보의 출력을 지원할 수 있다.
이러한, 표시부(15)는 상술한 바와 같이 입력부(12)와 함께 하나의 터치패널(또는 터치스크린)의 형태로 구현될 수도 있으며, 상기 입력부(12)와 함께 구현되는 경우, 사용자의 터치 동작에 따라 발생되는 다양한 정보들을 표시할 수 있다.
또한, 상술한 바와 같은 본 발명의 표시부(15)는 LCD(Liquid Crystal Display), TFT-LCD(Thin Film Transistor LCD), OLED(Organic Light Emitting Diodes), 발광다이오드(LED), AMOLED(Active Matrix Organic LED), 플렉시블 디스플레이(Flexible display) 및 3차원 디스플레이(3 Dimension) 등으로 구성될 수 있다. 또한 이들 중 일부 디스플레이는 그를 통해 외부를 볼 수 있도록 투명형 또는 광투과형으로 구성될 수 있다. 이는 TOLED(Transparant OLED)를 포함하는 투명 디스플레이 형태로 구성될 수 있다.
이와 같이, 도 2를 통해 단말(10)의 주요 구성요소에 대해 설명하였다. 그러나 도 2를 통해 도시된 구성요소가 모두 필수 구성요소인 것은 아니며, 도시된 구성요소보다 많은 구성 요소에 의해 단말(10)이 구현될 수도 있고, 그 보다 적은 구성요소에 의해 단말(10)이 구현될 수도 있다. 예컨대, 단말(10)은 전기적인 신호인 음원을 아날로그 신호로 변환하여 출력하는 음원 출력부(미도시)를 더 포함하여 구성될 수 있다.
또한, 도 2를 통해 도시된 단말(10)의 주요 구성요소의 위치는 얼마든지 편의상 또는 다른 이유로 바뀔 수 있음이 물론이다. 또한, 제어부(13)를 구성하는 모듈은 어플리케이션 처리 모듈(13a)만을 도시하였으나, 이에 한정되는 것은 아니며, 다양한 기능을 수행하는 다양한 모듈로 제어부(13)가 구성될 수도 있다.
이상으로 본 발명의 실시 예에 따른 단말(10)의 주요 구성 및 동작 방법에 대해 설명하였다. 이러한 본 발명의 단말(10)은 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 단말(10)은 스마트 폰(smart phone), 타블렛 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), MP3 Player 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수도 있다.
이러한 본 발명의 단말(10)은 디지털 기기의 컨버전스(convergence) 추세에 따라 휴대 기기의 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 유닛들과 동등한 수준의 유닛이 본 발명에 따른 단말(10)로 사용될 수도 있으며, 저장부(14)를 구비하며, 통신망(30)을 통해 서비스 장치(20)와 정보를 송수신할 수 있는 단말이라면 그 어떠한 장치도 본 발명의 단말(10)로 적용 가능하다.
이하, 본 발명의 실시 예에 따른 서비스 장치(20)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도 6은 도 1에 도시된 본 발명의 실시 예에 따른 서비스 장치의 주요 구성을 도시한 블록도이다.
도 1 및 도 6을 참조하면, 본 발명의 실시 예에 따른 서비스 장치(20)는 서비스 통신부(21), 서비스 제어부(22) 및 서비스 저장부(23)를 포함하여 구성될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 먼저 서비스 통신부(21)는 통신망(30)을 통해 하나 이상의 단말(10)과 다양한 정보를 송수신하는 역할을 지원하게 된다. 특히, 본 발명의 서비스 통신부(21)는 어느 하나의 단말(10)로부터 라이브러리 버전에 대한 질의를 수신할 수 있으며, 상기 단말(10)로 라이브러리 버전을 제공할 수 있다.
서비스 제어부(22)는 본 발명의 실시 예에 따른 서비스 장치(20)의 전반적인 제어를 수행하는 것으로, 특히, 본 발명의 실시 예에 따른 서비스 제어부(22)는 하나 이상의 단말(10)로 제공되는 라이브러리를 저장하고 관리하는 역할을 수행할 수 있다. 이때의 라이브러리는 어플리케이션 배포 당시에 상기 어플리케이션에 내포되어 배포되는 부모 라이브러리와 다르게, 지정된 기능을 어플리케이션을 통해 제공하기 위한 클래스, 메소드, 객체의 집합이 될 수 있다. 이러한 라이브러리는 단말(10)에 탑재될 경우, 부모 라이브러리와 연동 가능한 자식 라이브러리 동작하게 된다. 서비스 제어부(22)는 상술한 과정이 이뤄지도록 라이브러를 저장하고 관리하며, 단말(10)로 배포되는 과정을 지원할 수 있다. 이러한 서비스 제어부(22)는 어느 하나의 단말(10)로부터 라이브러리의 버전에 대한 질의를 수신할 수 있으며, 이에 대한 응답으로 상기 단말(10)로 라이브러리의 버전에 대한 정보를 제공할 수 있다. 그리고, 서비스 제어부(22)는 단말(10)의 요청에 따라 구비된 라이브러리를 단말(10)로 제공할 수 있다.
서비스 저장부(22)는 서비스 장치(20)의 기능 실행에 따른 모든 프로그램을 저장한다. 특히, 본 발명에 따른 서비스 저장부(22)는 지정된 기능(예컨대, 광고 서비스 등)을 수행하기 위한 리소스의 집합인 라이브러리를 저장하고 관리할 수 있다.
이러한, 본 발명의 서비스 저장부(23)는 서비스 장치(20) 내 위치하는 저장소일 수 있고, 서비스 장치(20) 외부에 위치하여 서비스 장치(20)와 데이터 송수신이 가능한 데이터 저장 서버가 될 수도 있다.
이상으로 본 발명의 실시 예에 따른 서비스 장치(20)의 주요 구성 및 동작 방법에 대해 설명하였다.
본 발명의 실시 예에 따른 서비스 장치(20)는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다. 서비스 장치(20)는 웹서버 또는 네트워크 서버의 형태로 구현될 수 있으며, 웹서버는 일반적으로 인터넷과 같은 개방형 컴퓨터 네트워크를 통하여 불특정 다수 클라이언트 및/또는 다른 서버와 연결되어 있고, 클라이언트 또는 다른 웹서버의 작업수행 요청을 접수하고 그에 대한 작업 결과를 도출하여 제공하는 컴퓨터 시스템 및 그를 위하여 설치되어 있는 컴퓨터 소프트웨어(웹서버 프로그램)를 뜻하는 것이다. 그러나, 전술한 웹서버 프로그램 이외에도, 웹서버 상에서 동작하는 일련의 응용 프로그램(Application Program)과 경우에 따라서는 내부에 구축되어 있는 각종 데이터베이스를 포함하는 넓은 개념으로 이해되어야 할 것이다. 이러한 서비스 장치(20)는 일반적인 서버용 하드웨어에 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 매킨토시(Macintosh) 등의 운영체제에 따라 다양하게 제공되고 있는 웹서버 프로그램을 이용하여 구현될 수 있으며, 대표적인 것으로는 윈도우 환경에서 사용되는 웹사이트(Website), IIS(Internet Information Server)와 유닉스환경에서 사용되는 CERN, NCSA, APPACH 등이 이용될 수 있다. 또한, 서비스 장치(20)는 서비스 가입 정보를 분류하여 회원 데이터베이스(Database)에 저장시키고 관리할 수 있으며, 이러한 데이터베이스는 서비스 장치(20)의 내부 또는 외부에 구현될 수 있다. 이때, 서비스 장치(20) 내부에 구현되는 상기 데이터베이스는 서비스 저장부(23)가 될 수 있다.
또한, 본 발명의 서비스 장치(20)는 서버 기반 컴퓨팅 방식 또는 클라우드 방식으로 동작하는 하나 이상의 서버로 구현될 수 있다. 특히, 라이브러리 업데이트 시스템(100)을 통해 송수신되는 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 영구적으로 저장될 수 있는 클라우드 컴퓨팅(Cloud Computing) 기능을 통해 제공될 수 있다. 여기서, 클라우드 컴퓨팅은 데스크톱, 태블릿 컴퓨터, 노트북, 넷북 및 스마트폰 등의 디지털 단말기에 인터넷 기술을 활용하여 가상화된 IT(Information Technology) 자원, 예를 들어, 하드웨어(서버, 스토리지, 네트워크 등), 소프트웨어(데이터베이스, 보안, 웹 서버 등), 서비스, 데이터 등을 온 디맨드(On demand) 방식으로 서비스하는 기술을 의미한다. 본 발명에 있어서, 하나 이상의 단말(10)과 서비스 장치(20) 사이에 송수신되는 모든 정보는 인터넷 상의 클라우드 컴퓨팅 장치에 저장되고, 언제 어디서든 전송될 수 있다.
한편, 단말(10) 또는 서비스 장치(20)에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
아울러, 본 발명의 실시 예에서 사용되는 '~모듈'이라는 용어는 소프트웨어 구성요소를 의미하며, '~모듈'은 어떤 역할들을 수행한다. 일 예로서 '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 또한, 구성요소들과 '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~모듈'들로 결합되거나 추가적인 구성요소들과 '~모듈'들로 더 분리될 수 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이하, 본 발명의 실시 예에 따른 라이브러리 업데이트 방법에 대해 설명하도록 한다.
도 7은 본 발명의 실시 예에 따른 라이브러리 업데이트를 위해 서비스 장치로부터 라이브러리 파일을 수신하는 과정을 설명하기 위한 흐름도이다.
도 1 내지 도 7을 참조하여, 먼저, 단말(10)의 제어부(13)는 저장부(14)의 비공유 저장 영역(14a)에 저장된 부모 라이브러리를 통해 서비스 장치(20)가 보유하고 있는 라이브러리의 버전을 질의하여(S101), 서비스 장치(20)가 보유하고 있는 라이브러리의 버전을 수신한다(S103). 이때, 보다 정확하게는 제어부(13)의 요청에 따라 부모 라이브러리(300)의 자식 라이브러리 관리부(320)가 서버 연결부(321)를 통해 서비스 장치(20)에 연결하고, 버전 확인부(322)를 통해 서비스 장치(20)로 라이브러리의 버전을 질의하고, 버전 확인부(322)가 서버 연결부(321)를 통해 서비스 장치(20)로부터 라이브러리의 버전을 수신할 수 있다.
그리고, 단말(10)의 제어부(13)의 요청에 따라 부모 라이브러리, 보다 정확하게는 부모 라이브러리(300)의 저장 영역 연결부(323)가 설치 확인부(324)를 통해 설치된 라이브러리의 버전을 확인하고, 상이할 경우, 서비스 장치(20)가 보유하고 있는 라이브러리의 목적을 확인하게 된다(S105 ~ S109).
다시 말해, 서비스 장치(20)가 보유하고 있는 라이브러리가 여러 어플리케이션이 공유할 라이브러리일 경우, 저장 영역 연결부(323)는 공유 저장 영역을 연결하고(S111), 그렇지 않을 경우, 부모 라이브러리(300)가 존재하고 있는 해당 비공유 저장 영역(S113)을 연결하게 된다.
이후에, 단말(10)의 제어부(13)의 요청에 따라, 부모 라이브러리(300)의 자식 라이브러리 수신부(330)를 통해 라이브러리 파일을 수신하고(S115), 자식 라이브러리 저장부(350)를 통해 수신된 라이브러리 파일을 공유 저장 영역(14b)에 저장하게 된다(S117).
공유 저장 영역(14b)에 저장된 라이브러리 파일을 자식 라이브러리로 불러오는 과정에 대해 이하에서 설명하도록 한다.
도 8은 본 발명의 실시 예에 따른 라이브러리 파일을 자식 라이브러리로 불러오는 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 어느 하나의 어플리케이션이 실행되면, 단말(10) 제어부(13)의 요청에 따라 해당 어플리케이션 내에 존재하는 부모 라이브러리(300)는 공유 저장 영역(14b)에 새로이 설치된 라이브러리의 버전, 파일명 등 라이브러리와 관련된 정보를 확인한다(S201). 그리고, 부모 라이브러리(300)는 상기 라이브러리가 공유 저장 영역(14b)에 존재하므로, 해당 어플리케이션이 상기 공유 저장 영역(14b)에 접근 가능한 지 접근 가능한 저장 영역을 확인하고(S203), 해당 버전의 파일이 존재하는 지 확인하여(S207), 이상이 없을 경우(S209), 해당 라이브러리 파일을 로딩하고(S213), 클래스 명세서 리소스 명세를 로딩하는 과정을 수행한다(S215 ~ S217). 반면, 상기 S209 단계에서 서비스 장치(20)로부터 수신된 라이브러리에 이상이 있을 경우, 부모 라이브러리(300)는 공유 저장 영역(14b)에 저장된 라이브러리를 삭제하고, 다시 다운로드 받는 과정을 수행할 수 있다(S211).
이러한 과정을 통해, 실행된 어플리케이션의 부모 라이브러리(300)는 새로운 자식 라이브러리를 이용하여 클래스에 접근하고, 해당 클래스를 이용하여 메소드를 호출하는 등 자식 라이브러리를 이용할 수 있게 된다.
이에 대해 도 9 및 도 10을 참조하여 설명하면, 먼저, 도 9에서, 부모 라이브러리의 API를 통해 자식 라이브러리를 로딩하고 부모 라이브러리 내 클래스 생성할 수 있다(S301). 부모 라이브러리의 클래스가 생성되는 것과 동시에, 해당 클래스 내에서는 자식 라이브러리 내의 클래스 명세를 확인하고(S303), 조회한 후(S305), 자식 라이브러리 내의 클래스를 생성할 수 있다(S307).
도 10은 생성된 자식 라이브러리 내의 클래스를 통해 자식 라이브러리 내의 메소드를 호출하는 과정을 설명하기 위한 것으로, 부모 라이브러리의 API를 통해 부모 라이브러리 내의 생성된 클래스에 접근하고(S404) 해당 클래스가 제공하는 메소드를 호출할 수 있다(S403). 그리고, 이를 호출된 부모 라이브러리 내의 메소드는 자식 라이브러리 내의 클래스에 접근하고(S405), 자식 메소드 명세를 확인한 후(S407), 조회하여 자식 라이브러리 내의 메소드를 호출할 수 있게 된다(S409).
이러한 과정을 거쳐, 해당 어플리케이션은 자식 라이브러리를 이용하여, 어플리케이션 실행 중 자식 라이브러리가 제공하는 기능을 실행할 수 있다. 예를 들어, 자식 라이브러리가 서비스 장치(20)로부터 광고 데이터를 가져와 어플리케이션을 통해 출력하는 기능을 지원하는 경우, 해당 어플리케이션은 실행 중에 서비스 장치(20)가 제공하는 광고 데이터를 출력할 수 있게 된다.
이러한, 본 발명의 라이브러리 업데이트 방법에 의하면, 단말 환경을 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하도록 구현하고, 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하도록 함으로써, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 리소스 활용이 가능하게 된다.
또한, 어플리케이션 배포 시, 실제 기능에 대한 내용인 클래스, 메소드, 객체를 포함하고 있는 자식 라이브러리에 접근 가능한 API로 구성되는 부모 라이브러리만을 어플리케이션에 내포하여 배포함으로써, 네트워크 자원을 보다 효율적으로 활용할 수 있게 된다.
또한, 실제 기능에 대한 내용을 포함하는 자식 라이브러리에 업데이트가 발생되었을 경우, 어플리케이션별로 업데이트를 수행할 필요 없이, 여러 어플리케이션이 접근하여 공유할 수 있는 자식 라이브러리만을 업데이트함으로써, 어플리케이션 유지보수 비용이 절감된다는 우수한 효과가 있다.
이상으로 본 발명의 실시 예에 따른 라이브러리 업데이트 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 라이브러리 업데이트 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 이때, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 여러 어플리케이션이 접근 가능한 공유 저장 영역 및 어플리케이션 각각에 할당되는 비공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 관한 것으로서, 더욱 상세하게는 공유 저장 영역은 모든 어플리케이션이 이용할 수 있는 자식 라이브러리를 포함하고, 상기 비공유 저장 영역은 어플리케이션별로 동작하는 부모 라이브러리를 포함하며, 상기 부모 라이브러리가 상기 자식 라이브러리의 버전을 서비스 장치와 연동하여 비교하고, 업데이트가 필요한 경우, 상기 서비스 장치로부터 자식 라이브러리 관련 파일을 수신하여, 자식 라이브러리 사용될 수 있도록 제어할 수 있는 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템에 관한 것이다.
본 발명에 의하면, 단말 내 동일한 라이브러리의 중복을 배제하여 보다 효율적인 단말 자원 활용이 가능하며, 어플리케이션의 용량을 최소화할 수 있는 네트워크 자원을 보다 효율적으로 활용할 수 있으며, 이를 통해 어플리케이션 산업의 발전에 이바지할 수 있다.
더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
10: 단말 11: 통신부 12: 입력부
13: 제어부 13a: 어플리케이션 처리 모듈
14: 저장부 14a: 비공유 저장 영역
14b: 공유 저장 영역 15: 표시부 20: 서비스 장치
21: 서비스 통신부 22: 서비스 제어부
23: 서비스 저장부 30: 통신망
100: 라이브러리 업데이트 시스템

Claims (13)

  1. 어플리케이션 각각에 할당되는 비공유 저장 영역 및 여러 어플리케이션이 공유할 수 있는 공유 저장 영역을 포함하며, 상기 비공유 저장 영역은 어플리케이션별로 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하고, 상기 공유 저장 영역은 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 저장부; 및
    어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 제어부;를 포함하며,
    상기 제어부는,
    상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 것을 특징으로 하는 라이브러리 업데이트를 위한 단말.
  2. 삭제
  3. 여러 어플리케이션이 공유할 수 있는 공유 저장 영역에 위치하며, 부모 라이브러리의 요청에 따라 리소스를 제공하는 자식 라이브러리; 및
    어플리케이션 각각에 할당되는 비공유 저장 영역에 위치하며, 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 하나 이상의 부모 라이브러리;를 포함하며,
    상기 자식 라이브러리는 하나 이상의 부모 라이브러리의 요청에 따라, 특정 기능 수행을 위한 클래스, 메소드, 객체를 요청한 상기 부모 라이브러리로 제공하는 것을 특징으로 하는 라이브러리 업데이트를 위한 단말.
  4. 삭제
  5. [청구항 5은(는) 설정등록료 납부시 포기되었습니다.]
    제3 항에 있어서,
    상기 부모 라이브러리는
    상기 자식 라이브러리의 업데이트 여부를 판단하는 자식 라이브러리 관리부;
    상기 서비스 장치로부터 수신된 상기 라이브러리를 상기 공유 저장 영역에 저장하는 자식 라이브러리 적재부; 및
    상기 공유 저장 영역에 저장된 라이브러리를 자식 라이브러리로 동작하도록 클래스를 조회하여 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 자식 라이브러리 호출부;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트를 위한 단말.
  6. [청구항 6은(는) 설정등록료 납부시 포기되었습니다.]
    제5 항에 있어서,
    상기 자식 라이브러리 관리부는
    상기 서비스 장치와의 연결을 위한 서버 연결부;
    상기 서버 연결부를 통해 상기 서비스 장치와 연결되면, 상기 서비스 장치에 구비된 라이브러리의 버전을 질의하여 확인하는 버전 확인부; 및
    상기 버전 확인부를 통해 확인된 라이브러리의 버전과 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 저장 영역 연결부;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트를 위한 단말.
  7. [청구항 7은(는) 설정등록료 납부시 포기되었습니다.]
    제6 항에 있어서,
    상기 저장 영역 연결부는
    상기 기 저장된 자식 라이브러리를 사용하는 어플리케이션을 확인하여, 상기 자식 라이브러리를 사용하는 어플리케이션이 하나 이상 존재하는 경우, 상기 자식 라이브러리를 여러 어플리케이션이 공유하는 것으로 판단하는 것을 특징으로 하는 라이브러리 업데이트를 위한 단말.
  8. 하나 이상의 어플리케이션이 이용 가능한 라이브러리를 저장하고 관리하는 서비스 장치; 및
    어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하며, 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하고, 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하여 상이할 경우, 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후, 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단말;을 포함하며,
    상기 단말은,
    상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하고, 생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 것을 특징으로 하는 라이브러리 업데이트 시스템.
  9. 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 있어서,
    상기 단말이 어느 하나의 어플리케이션이 실행되면, 상기 어플리케이션에 할당된 부모 라이브러리를 제어하여 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계;
    상기 단말이 확인된 버전과 상기 공유 저장 영역에 구비된 자식 라이브러리의 버전을 비교하는 단계;
    상기 비교 결과 상이할 경우, 상기 단말이 상기 부모 라이브러리를 제어하여 상기 서비스 장치로부터 라이브러리 관련 파일을 수신하는 단계; 및
    상기 단말이 수신된 상기 라이브러리 관련 파일을 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하며,
    상기 제어하는 단계는,
    상기 수신된 라이브러리가 상기 공유 저장 영역에 저장되도록 제어한 후, 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 상기 부모 라이브러리의 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하는 단계; 및
    생성된 상기 부모 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 단계를 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  10. 어플리케이션 각각에 할당되며 자식 라이브러리를 접근하여 이용할 수 있는 부모 라이브러리를 포함하는 비공유 저장 영역 및 여러 어플리케이션이 공유하며 부모 라이브러리로 리소스를 제공하는 자식 라이브러리를 포함하는 공유 저장 영역을 포함하는 단말 환경에서의 라이브러리 업데이트 방법에 있어서,
    상기 부모 라이브러리가 할당된 어플리케이션이 실행되면, 서비스 장치와 연동하여 상기 서비스 장치에 구비된 라이브러리의 버전을 확인하는 단계;
    상기 부모 라이브러리가 확인된 버전과 상기 자식 라이브러리의 버전을 비교하는 단계; 및
    상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치로부터 라이브러리 관련 파일을 수신한 후 상기 공유 저장 영역에 저장되도록 제어하고, 상기 수신된 라이브러리가 상기 공유 저장 영역에 기 저장된 자식 라이브러리를 대체하도록 제어하는 단계;를 포함하며,
    상기 제어하는 단계는,
    상기 부모 라이브러리가 상기 수신된 라이브러리를 상기 공유 저장 영역에 저장하는 단계;
    상기 부모 라이브러리가 상기 수신된 라이브러리가 제공하는 기능 수행을 위해 클래스를 생성함과 동시에 상기 자식 라이브러리의 클래스를 생성하는 단계; 및
    상기 부모 라이브러리가 생성된 상기 자식 라이브러리의 클래스를 통해 객체를 생성하고, 생성된 객체를 통해 메소드를 조회하고 호출하는 과정을 제어하는 단계;
    를 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  11. 삭제
  12. [청구항 12은(는) 설정등록료 납부시 포기되었습니다.]
    제10 항에 있어서,
    상기 버전을 비교하는 단계 이후에,
    상기 비교 결과 상이할 경우, 상기 부모 라이브러리가 상기 서비스 장치의 라이브러리를 여러 어플리케이션이 공유하는 지 여부를 확인하여 저장 영역을 연결하는 단계;
    를 더 포함하는 것을 특징으로 하는 라이브러리 업데이트 방법.
  13. [청구항 13은(는) 설정등록료 납부시 포기되었습니다.]
    제9항, 제10항 및 제12항 중 어느 하나의 항에 기재된 라이브러리 업데이트 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020140058317A 2014-05-15 2014-05-15 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템 KR101810536B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140058317A KR101810536B1 (ko) 2014-05-15 2014-05-15 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
CN201580037932.6A CN106662993B (zh) 2014-05-15 2015-01-13 用于更新库的方法及用于其的终端和系统
US15/310,516 US20170075686A1 (en) 2014-05-15 2015-01-13 Method for updating library, and terminal and system therefor
PCT/KR2015/000348 WO2015174609A1 (ko) 2014-05-15 2015-01-13 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140058317A KR101810536B1 (ko) 2014-05-15 2014-05-15 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템

Publications (2)

Publication Number Publication Date
KR20150131535A KR20150131535A (ko) 2015-11-25
KR101810536B1 true KR101810536B1 (ko) 2017-12-20

Family

ID=54480122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140058317A KR101810536B1 (ko) 2014-05-15 2014-05-15 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템

Country Status (4)

Country Link
US (1) US20170075686A1 (ko)
KR (1) KR101810536B1 (ko)
CN (1) CN106662993B (ko)
WO (1) WO2015174609A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564959B2 (en) * 2017-03-14 2020-02-18 Google Llc Shared software libraries for computing devices
US10853057B1 (en) * 2017-03-29 2020-12-01 Amazon Technologies, Inc. Software library versioning with caching
US10572275B2 (en) * 2017-06-15 2020-02-25 Microsoft Technology Licensing, Llc Compatible dictionary layout
US10565090B1 (en) 2018-01-03 2020-02-18 Amazon Technologies, Inc. Proxy for debugging transformed code
US10798464B1 (en) 2018-04-27 2020-10-06 Amazon Technologies, Inc. Streaming delivery of client-executable code
US10838716B1 (en) * 2019-11-19 2020-11-17 Capital One Services, Llc Automated dependency detection and response
KR20230059631A (ko) * 2021-10-26 2023-05-03 한화비전 주식회사 복수의 애플리케이션들 사이에서 데이터 통신을 수행하기 위한 장치 및 방법
CN116560699B (zh) * 2023-07-10 2024-02-13 易方信息科技股份有限公司 通过sdk版本混搭进行快速修复的方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275857B1 (en) * 1996-10-30 2001-08-14 Microsoft Corporation System and method for freeing shared resources in a computer system
US6202205B1 (en) * 1998-07-21 2001-03-13 Hewlett-Packard Company System and method for profile-based, on-the-fly optimization of library code
JP2002333990A (ja) * 2001-03-05 2002-11-22 Omron Corp プログラム更新装置およびプログラム更新方法
US7792797B2 (en) * 2002-12-24 2010-09-07 International Business Machines Corporation Fail over resource manager access in a content management system
KR100767785B1 (ko) * 2005-06-22 2007-10-18 (주)에이티솔루션 모바일 단말기용 어플리케이션 갱신 시스템
CN100461875C (zh) * 2005-10-21 2009-02-11 华为技术有限公司 移动终端共享存储空间的方法及其系统
KR100835269B1 (ko) * 2006-12-07 2008-06-05 한국전자통신연구원 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법
CN101415270B (zh) * 2008-11-27 2010-07-21 华为终端有限公司 移动终端及其处理模块的通讯方法
US8918566B2 (en) * 2009-01-23 2014-12-23 Hewlett-Packard Development Company, L. P. System and methods for allocating shared storage resources
KR101064737B1 (ko) * 2009-03-20 2011-09-16 주식회사 케이티 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법
US8434060B2 (en) * 2010-08-17 2013-04-30 Sap Ag Component load procedure for setting up systems
US8595715B2 (en) * 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
KR20140029733A (ko) * 2012-08-29 2014-03-11 주식회사 팬택 어플리케이션 관리 기능을 갖는 디바이스 및 이를 위한 어플리케이션 관리 방법
US9009693B2 (en) * 2013-05-08 2015-04-14 Microsoft Corporation Out-of-band framework libraries within applications
CN103744618B (zh) * 2013-12-20 2017-09-15 金蝶软件(中国)有限公司 实现团队共享存储的方法及系统
WO2015120134A1 (en) * 2014-02-06 2015-08-13 Openpeak Inc. Method and system for linking to shared library

Also Published As

Publication number Publication date
CN106662993A (zh) 2017-05-10
CN106662993B (zh) 2019-11-22
KR20150131535A (ko) 2015-11-25
WO2015174609A1 (ko) 2015-11-19
US20170075686A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
KR101810536B1 (ko) 라이브러리 업데이트 방법, 이를 위한 단말 및 시스템
JP7018463B2 (ja) アプリケーションコンテナを使用するコードおよび従属データの送達の管理
US9182975B2 (en) Automatic application updates
KR101585350B1 (ko) 관리 엔진을 사용하는 컴포넌트 업데이트
CA2768752C (en) Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform
US20160378511A1 (en) Electronic device having an external memory and method for operating the same
KR101369428B1 (ko) 이종의 게스트 오퍼레이팅 시스템을 지원하는 휴대용 단말을 위한 어플리케이션 관리 장치 및 방법
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
US20180349193A1 (en) Streaming program execution method of intelligent terminal
WO2013148665A1 (en) Global computing interface
CN104268017A (zh) 一种同时运行Android/Linux操作系统的方法
JP2013536518A (ja) クラウド・コンピューティング環境においてハイパーバイザの制御を可能にする方法
US9626213B2 (en) System and method for file injection in virtual machine configuration
US20180336058A1 (en) Apparatus for providing virtual desktop service and method for the same
CN104714792A (zh) 多进程共享数据处理方法和装置
KR102124330B1 (ko) 어플리케이션 업데이트 방법 및 이를 지원하는 단말
Xu et al. Condroid: a container-based virtualization solution adapted for android devices
KR102111574B1 (ko) 어플리케이션 기반 식별 정보 생성 방법, 이를 위한 장치 및 시스템
CN114579167A (zh) 一种下载应用升级文件的方法、装置及存储介质
KR20160029282A (ko) 클라우드 스토리지 서비스 제공 방법 및 이를 구현한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US11385876B1 (en) Infrastructure control interface for database systems
KR102297576B1 (ko) 딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들
US11494050B2 (en) Electronic device and method for controlling the electronic device
CN115185979A (zh) 数据访问路由方法、装置设备、存储介质和程序产品
CN115878901A (zh) 代码仓库关键词查找方法、装置、设备及存储介质

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right