KR20170027331A - 모바일 환경에서의 리소스 다운로드 방법 및 시스템 - Google Patents

모바일 환경에서의 리소스 다운로드 방법 및 시스템 Download PDF

Info

Publication number
KR20170027331A
KR20170027331A KR1020170026150A KR20170026150A KR20170027331A KR 20170027331 A KR20170027331 A KR 20170027331A KR 1020170026150 A KR1020170026150 A KR 1020170026150A KR 20170026150 A KR20170026150 A KR 20170026150A KR 20170027331 A KR20170027331 A KR 20170027331A
Authority
KR
South Korea
Prior art keywords
resource
downloading
server
thread
resources
Prior art date
Application number
KR1020170026150A
Other languages
English (en)
Other versions
KR102250378B1 (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 KR1020170026150A priority Critical patent/KR102250378B1/ko
Publication of KR20170027331A publication Critical patent/KR20170027331A/ko
Application granted granted Critical
Publication of KR102250378B1 publication Critical patent/KR102250378B1/ko

Links

Images

Classifications

    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

일 실시예에 따른 모바일 환경에서의 리소스를 다운로드(Download)하는 방법은, 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및 상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계를 포함할 수 있다.

Description

모바일 환경에서의 리소스 다운로드 방법 및 시스템{METHOD AND SYSTEM FOR DOWNLOADING THE RESOURCE IN A MOBILE ENVIRONMENT}
아래의 설명은 모바일 환경에서 다운로드의 속도를 향상시키기 위한 기술에 관한 것이다.
도 1은 리소스 다운로드 시스템의 동작을 설명하기 위한 도면이다.
리소스 다운로드 시스템은 빠른 구현을 위하여 일반적으로 싱글 스레드(Single-Thread)(100)를 통하여 리소스의 다운로드를 수행할 수 있다. 예를 들면, 리소스 다운로드 시스템은 싱글 스레드를 기반으로 서버에 접속하여 리소스를 다운로드할 수 있다. 리소스 다운로드 시스템은 리소스의 다운로드를 완료함에 따라 스토리지에 기록할 수 있다.
하지만 종래의 리소스 다운로드 시스템은 싱글 스레드를 기반으로 복수의 리소스의 다운로드를 수행하는데 있어서, 하나의 리소스에 대하여 다운로드를 완료한 이후에, 다른 리소스의 다운로드를 수행해야 한다는 불편함이 있다. 또한, 종래의 리소스 다운로드 시스템은 싱글 스레드를 기반으로 리소스의 다운로드를 수행할 경우, 서버에 접속하기 위한 대기 시간, 접속 후 요청 응답 시간, 파일 기록 시간 등으로 인하여 네트워크 자원이 비효율적으로 사용하게 된다는 문제점이 존재한다.
한국공개특허 제10-2013-0116166호는 멀티-코어 프로세서용 멀티스레드 애플리케이션-인지 메모리 스케줄링 기법에 관하여 개시하고 있다.
일 실시예에 따른 리소스 다운로드 시스템은 멀티 스레드를 기반으로 모바일 환경에서 최적화된 다운로드 방식을 제공한다.
일 실시예에 따른 리소스 다운로드 시스템은 모바일 단말에서 리소스의 다운로드 속도를 향상시킴으로써 유저의 이탈을 최소화하기 위한 방안을 제공한다.
컴퓨터 시스템이 모바일 환경에서의 리소스를 다운로드(Download)하는 방법은, 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및 상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계를 포함할 수 있다.
상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는, 상기 각각의 스레드를 기반으로 상기 접속을 시도한 서버순으로 상기 서버에 대응하는 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신하여 상기 파일 단위로 압축된 리소스에 대한 다운로드를 수행하는 단계를 포함할 수 있다.
상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는, 상기 서버에 대응하는 리소스의 다운로드가 완료됨에 따라 상기 파일 단위로 압축된 리소스를 언패킹(Unpacking)하여 스토리지에 기록하는 단계를 포함할 수 있다.
상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는, 상기 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행하는 단계를 포함할 수 있다.
상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는, 상기 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하고, 상기 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입하는 단계를 포함할 수 있다.
상기 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계는, 상기 멀티 스레드를 기반으로 상기 서버에 대응하는 리소스의 다운로드를 수행 중에 또 다른 서버의 접속을 감지하는 단계를 포함할 수 있다.
상기 모바일 환경에서의 리소스 다운로드 방법은, 상기 리소스를 파일 단위로 압축하여 대응하는 서버로 업로드하는 단계를 더 포함할 수 있다.
컴퓨터 시스템이 모바일 환경에서 리소스를 다운로드하도록 제어하는 명령(instruction)을 포함하는 컴퓨터 판독가능 매체로서, 상기 명령은, 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및 상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계를 포함하는 방법에 의하여 상기 컴퓨터 시스템을 제어할 수 있다.
컴퓨터 시스템이 모바일 환경에서의 리소스를 다운로드(Download)하는 방법을 실행시키기 위해 저장매체에 저장된 컴퓨터 프로그램은, 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및 상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계를 포함할 수 있다.
모바일 환경에서의 리소스 다운로드(Download) 시스템은, 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 실행부; 및 상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 다운로드부를 포함할 수 있다.
상기 다운로드부는, 상기 각각의 스레드를 기반으로 상기 접속을 시도한 서버순으로 상기 서버에 대응하는 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신하여 상기 파일 단위로 압축된 리소스에 대한 다운로드를 수행할 수 있다.
상기 다운로드부는, 상기 서버에 대응하는 리소스의 다운로드가 완료됨에 따라 상기 파일 단위로 압축된 리소스를 언패킹(Unpacking)하여 스토리지에 기록할 수 있다.
상기 다운로드부는, 상기 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행할 수 있다.
상기 다운로드부는, 상기 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하고, 상기 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입할 수 있다.
상기 실행부는, 상기 멀티 스레드를 기반으로 상기 서버에 대응하는 리소스의 다운로드를 수행 중에 또 다른 서버의 접속을 감지할 수 있다.
상기 모바일 환경에서의 리소스 다운로드 시스템은, 상기 리소스를 파일 단위로 압축하여 대응하는 서버로 업로드부를 더 포함할 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 모바일 환경에서 멀티 스레드를 기반으로 리소스의 다운로드를 수행함으로써 다운로드의 소요 시간 및 유저의 이탈을 최소화시킬 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 멀티 스레드 방식을 이용함으로써 모바일 단말의 하드웨어를 효율적으로 이용할 수 있다. 리소스 다운로드 시스템은 최신의 모바일 환경에서 더욱 최적화된 형태의 다운로드 방식이기 때문에 효과가 배가될 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 파일 단위로 압축된 리소스를 다운로드하는 자동 패키징 방법을 수행함으로써 다운로드의 속도를 향상시킬 수 있다.
도 1은 리소스 다운로드 시스템의 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 리소스 다운로드 시스템의 개괄적인 동작을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 리소스 다운로드 시스템의 구성을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 리소스 다운로드 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 5는 일 실시예에 따른 리소스 다운로드 시스템의 구체적인 동작을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 리소스 다운로드 시스템의 리소스 다운로드 방법을 설명하기 위한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
실시예들에 따르면, 리소스 다운로드 시스템은 모바일 단말에서 리소스의 다운로드 속도를 향상시킴으로써 유저의 이탈을 최소화시키기 위한 방안을 제안하고자 한다. 리소스 다운로드 시스템은 멀티 스레드를 기반으로 리소스의 다운로드를 수행할 수 있다. '스레드'(Thread)란 컴퓨터 프로그램(또는 어플리케이션)을 수행 시 프로세스 내부에 존재하는 수행 경로로서, 한번에 복수 개의 액션 또는 순차적 액션들을 실행할 수 있도록 할 수 있다. 리소스 다운로드 시스템은 멀티 스레드를 기반으로 복수의 스레드를 실행할 수 있다.
도 2는 일 실시예에 따른 리소스 다운로드 시스템의 개괄적인 동작을 설명하기 위한 도면이다.
리소스 다운로드 시스템(200)과 모바일 단말(210)은 네트워크(220)를 통하여 데이터를 송수신할 수 있으며, 네트워크의 구성은 도 2에 도시된 것보다 더 많거나 또는 더 적은 컴포넌트들, 커넥션들 및 상호 작용들을 포함할 수 있다.
네트워크(220)는 데이터 프로세싱 시스템들, 컴퓨터들, 서버들, 각종 장치들 간의 통신 링크들을 제공하는데 사용되는 매체일 수 있다. 네트워크(220)는 리소스 다운로드 시스템(200)과 모바일 단말(210)이 서로 통신하기 위하여 TCP/IP(Transmission Control Protocol Internet Protocol) 프로토콜 스위트(suite of protocols)를 사용하는 네트워크들 및 게이트웨이들의 월드와이드 컬렉션을 나타낼 수 있다. 일부 예들에서, 네트워크(220)는 인트라넷, LAN(local area network) 또는 WAN(wide area network)을 포함하거나 또는 그 일부일 수 있다. 일부 예들에서, 네트워크(220)는 인터넷의 일부일 수 있다.
모바일 단말(210)은 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer) 등과 같이 휴대성이 있는 기기로서, 리소스 다운로드 시스템(200)과 관련된 모바일 사이트의 접속 또는 서비스 전용 어플리케이션의 설치 및 실행이 가능한 모든 단말 장치를 의미할 수 있다. 이때, 모바일 단말(210)은 모바일 사이트 또는 전용 어플리케이션의 제어 하에 서비스 화면 구성, 데이터 입력, 데이터 송수신, 데이터 저장 등 서비스 전반의 동작을 수행할 수 있다.
리소스 다운로드 시스템(200)은 다운로드 서비스를 제공하는 다운로드 플랫폼 상에 구현될 수 있으며, 다운로드 서비스를 이용하는 클라이언트(client)인 모바일 단말(210)을 대상으로 리소스의 다운로드를 수행하는 환경을 제공할 수 있다.
리소스 다운로드 시스템(200)은 다운로드 서비스를 제공하는 다운로드 서버(미도시)의 플랫폼에 포함되는 형태로 구현될 수 있고, 이에 한정되는 것은 아니며 다운로드 서버와 별개의 시스템으로 구축되어 다운로드 서버와의 연동을 통해 리소스를 다운로드하는 형태로 구현되는 것 또한 가능하다.
리소스 다운로드 시스템(200)은 적어도 일부의 구성 요소가 모바일 단말(210) 상에 설치되는 어플리케이션 형태로 구현되거나, 혹은 클라이언트-서버 환경에서 서비스를 제공하는 플랫폼에 포함되는 형태로 구현되는 것 또한 가능하다.
도 3은 일 실시예에 따른 리소스 다운로드 시스템의 구성을 설명하기 위한 도면이다.
리소스 다운로드 시스템(300)은 Unity Plugin(310), Platform Bridge(320), Core Library(330) 모듈로 구성될 수 있다.
Unity Plugin(310)은 유니티 개발을 위한 플러그인으로서, 브릿지 모듈을 통해 연결될 수 있다.
Platform Bridge(320)는 각각의 플랫폼으로 연결을 위한 브릿지 모듈로서, 각각의 플랫폼에 맞는 언어로 작성될 수 있다. Platform Bridge(320)는 Win32 Bridge, MacOs Bridge, iOS Bridge, Android Bridge를 포함할 수 있다. Platform Bridge(320)은 Win32를 C++, Mac과 iOS를 Objective C, Android를 Java 또는 Jni로 작성될 수 있다.
Core Library(330)는 C++로 작성된 라이브러리로서, http Connection을 관리할 수 있다. Core Library(330)는 File Pack과 Unpack을 수행할 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 플랫폼에 제한없이 모바일 단말에서 사용할 수 있다.
도 4는 일 실시예에 따른 리소스 다운로드 시스템의 내부 구성을 설명하기 위한 블록도이다.
리소스 다운로드 시스템(400)은 모바일 환경에서 접속을 시도한 서버순으로 각각의 스레드를 병렬적으로 동작시킴으로써 각각의 스레드를 기반으로 리소스를 다운로드하기 위한 것으로, 감지부(410), 실행부(420) 및 다운로드부(430)를 포함할 수 있다.
감지부(410)는 모바일 단말로부터 적어도 하나의 서버에 접속을 시도함을 감지할 수 있다. 감지부(410)는 스레드를 기반으로 서버에 대응하는 리소스의 다운로드를 수행하는 중에 또 다른 서버의 접속을 감지할 수 있다.
실행부(420)는 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드를 실행시킬 수 있다.
다운로드부(430)는 각각의 스레드에 기초하여 서버에 대응하는 리소스의 다운로드를 수행함에 따라 파일 단위로 압축된 리소스를 언패킹할 수 있다. 다운로드부(430)는 각각의 스레드를 기반으로 서버로 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신하여 파일 단위로 압축된 리소스에 대하여 다운로드를 수행할 수 있다.
다운로드부(430)는 파일 단위로 압축된 리소스에 대하여 다운로드가 완료됨에 따라 리소스를 언패킹하여 스토리지에 기록할 수 있다. 다운로드부(430)는 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하고, 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입할 수 있다.
도 5는 일 실시예에 따른 리소스 다운로드 시스템의 구체적인 동작을 설명하기 위한 도면이다.
리소스 다운로드 시스템은 모바일 환경에서 멀티 스레드(500)를 기반으로 접속을 시도한 서버 순으로 각각의 스레드를 병렬적으로 동작시킴으로써 각각의 스레드를 기반으로 서버와 관련된 리소스를 다운로드할 수 있다. 리소스 다운로드 시스템은 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행할 수 있다.
리소스 다운로드 시스템은 모바일 단말로부터 적어도 하나의 서버에 접속을 시도함을 감지할 수 있다. 예를 들면, 사용자는 모바일 단말을 통하여 제1 어플리케이션의 다운로드를 시도할 수 있다. 이때, 리소스 다운로드 시스템은 모바일 단말로부터 제1 서버에 접속을 시도함을 감지할 수 있다. 리소스 다운로드 시스템은 제1 서버에 접속을 시도함에 응답하여 멀티 스레드를 기반으로 제1 스레드를 실행시킬 수 있다.
리소스 다운로드 시스템은 제1 스레드에 기초하여 제1 서버에 대응하는 리소스의 다운로드를 시작할 수 있다. 리소스 다운로드 시스템은 제1 스레드를 기반으로 제1 서버로 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신함으로써 다운로드를 수행할 수 있다. 리소스 다운로드 시스템은 제1 서버에 대응하는 파일 단위로 압축된 리소스를 수신함으로써 파일 단위로 압축된 리소스를 언패킹할 수 있다. 리소스 다운로드 시스템은 파일 단위로 압축된 리소스에대하여 다운로드가 완료됨에 따라 리소스를 언패킹하여 스토리지에 기록할 수 있다.
리소스 다운로드 시스템은 제1 서버에 대응하는 리소스를 다운로드하는 동시에 또 다른 서버에 접속을 시도함을 감지할 수 있다. 예를 들면, 사용자는 모바일 단말을 통하여 제1 어플리케이션의 다운로드가 수행되는 중에, 제2 어플리케이션의 다운로드를 시도할 수 있다. 이때, 리소스 다운로드 시스템은 제2 서버에 접속을 시도함을 감지할 수 있다.
리소스 다운로드 시스템은 제2 서버에 접속을 시도함에 응답하여 멀티 스레드를 기반으로 제2 스레드를 실행시킬 수 있다. 이때, 리소스 다운로드 시스템은 접속을 시도한 서버순으로 각각의 스레드를 병렬적으로 동작시킴으로써 각각의 스레드를 기반으로 서버와 관련된 리소스를 다운로드할 수 있다.
리소스 다운로드 시스템은 제2 스레드에 기초하여 제2 서버에 대응하는 리소스의 다운로드를 시작할 수 있다. 리소스 다운로드 시스템은 제2 스레드를 기반으로 제2 서버로 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신함으로써 다운로드를 수행할 수 있다. 리소스 다운로드 시스템은 제2 서버에 대응하는 파일 단위로 압축된 리소스를 수신함으로써 파일 단위로 압축된 리소스를 언패킹할 수 있다. 리소스 다운로드 시스템은 파일 단위로 압축된 리소스에 대하여 다운로드가 완료됨에 따라 리소스를 언패킹하여 스토리지에 기록할 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 파일 단위로 압축된 리소스에 대하여 다운로드를 수행함으로써 다운로드에 소요되는 시간을 최소화시킬 수 있다.
리소스 다운로드 시스템은 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하기 때문에 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입할 수 있다.
마찬가지로, 리소스 다운로드 시스템은 제2 서버에 대응하는 리소스를 다운로드하는 동시에 또 다른 서버에 접속을 시도함을 감지할 수 있다. 이때, 리소스 다운로드 시스템은 스레드의 개수에 상관없이 멀티 스레드를 기반으로 복수의 스레드가 실행되어 동작될 수 있다. 또한, 리소스 다운로드 시스템은 모바일 단말의 운영체제(OS)에서 자동으로 스케줄링할 수 있다.
도 6은 일 실시예에 따른 리소스 다운로드 시스템의 리소스를 다운로드하는 방법을 설명하기 위한 흐름도이다.
리소스를 다운로드하는 방법은 리소스 다운로드 시스템에 의하여 수행될 수 있으며, 리소스 다운로드 시스템은 모바일 환경에서 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행할 수 있다.
사용자가 모바일 단말(610)을 통하여 어플리케이션의 다운로드를 수행한다고 가정하자. 리소스 다운로드 시스템은 모바일 단말(610)로부터 적어도 하나의 서버(620)에 접속을 시도함을 감지할 수 있다. 예를 들면, 리소스 다운로드 시스템은 IDC(Internet Data Center)를 통하여 어플리케이션을 다운로드할 수 있다.
모바일 단말(610)은 어플리케이션을 다운로드하기 위하여 서버에 접속 및 패치 정보를 요청할 수 있고(631), 서버(620)로부터 패치 파일 정보를 수신할 수 있다(632). 이때, 모바일 단말(610)은 수신된 패치 파일 정보를 분석할 수 있다(633).
모바일 단말(610)은 서버(620)에 접속을 시도함에 응답하여 멀티 스레드를 기반으로 각각의 스레드를 실행시킬 수 있다. 예를 들면, 모바일 단말(610)은 어플리케이션을 다운로드하기 위하여 서버(620)에 접속할 수 있고, 모바일 단말(610)은 제1 스레드(630)를 실행시킬 수 있다. 이때, 모바일 단말은 운영체제에서 스레드를 제어하기 때문에 스레드가 자동으로 스케줄링될 수 있다.
모바일 단말(610)은 제1 스레드(630)를 기반으로 서버(620)로 리소스를 요청할 수 있고(634), 서버(620)로부터 파일 단위로 압축된 리소스를 수신할 수 있다(635). 모바일 단말(610)은 파일 단위로 압축된 리소스를 다운로드를 수행할 수 있다(636). 이때, 모바일 단말(610)은 파일 단위로 압축된 리소스에 대하여 다운로드를 수행함으로써 다운로드에 소요되는 시간을 최소화시킬 수 있다. 모바일 단말(610)은 파일 단위로 압축된 리소스에 대하여 다운로드가 완료됨에 따라 리소스를 언패킹하여 스토리지에 기록할 수 있다.
또한, 모바일 단말(610)은 어플리케이션의 다운로드를 수행하는 중에, 또 다른 어플리케이션의 다운로드를 수행하기 위하여 또 다른 서버에 접속을 시도할 수 있다. 모바일 단말(610)은 서버(620)에 접속을 시도함에 응답하여 멀티 스레드를 기반으로 각각의 스레드를 실행시킬 수 있다. 예를 들면, 모바일 단말(610)은 어플리케이션을 다운로드하기 위하여 서버(620)에 접속할 수 있고, 모바일 단말(610)은 제2 스레드를 실행시킬 수 있다. 리소스 다운로드 시스템은 접속을 시도한 서버순으로 각각의 스레드를 병렬적으로 동작시킴으로써 멀티 스레드를 기반으로 서버와 관련된 리소스를 다운로드할 수 있다.
리소스 다운로드 시스템은 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하기 때문에 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입할 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 멀티 스레드를 이용함에 있어서, 최신의 모바일 단말에 더욱 최적화된 다운로드 방식을 제공할 수 있다. 다시 말해서, 리소스 다운로드 시스템은 모바일 단말의 하드웨어가 발전할수록 효과가 더 크다.
일 실시예에 따른 리소스 다운로드 시스템은 모바일 환경에서 멀티 스레드를 기반으로 리소스를 파일 단위로 자동으로 압축하여 업로드함으로써 다운로드하는 리소스의 사이즈를 줄이고, 파일 단위로 압축된 리소스를 다운로드한 후 언패킹함으로써 보다 빠르게 다운로드를 수행할 수 있다. 이를 위해, 리소스 다운로드 시스템은 리소스를 파일 단위로 압축하여 대응하는 서버로 업로드하는 업로드부(미도시)를 더 포함할 수 있다. 예를 들어 어플리케이션 형태의 리소스 다운로드 시스템이 설치된 모바일 단말에서 서버로 업로드하고자 하는 리소스를 파일 단위로 압축하고, 파일 단위로 압축된 리소스를 서버로 업로드할 수 있다. 이때, 해당 모바일 단말 또는 리소스를 제공받고자 하는 다른 모바일 단말들은 파일 단위로 압축된 리소스를 수신한 이후에 모바일 단말에서 언패킹을 수행하여 원래의 리소스를 얻음으로써 다운로드할 데이터의 양을 줄일 수 있고, 데이터의 양이 감소됨에 따라 다운로드 속도를 향상시킬 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 모바일 환경에서 멀티 스레드를 기반으로 리소스의 다운로드를 수행함으로써 다운로드의 소요 시간 및 유저의 이탈을 최소화시킬 수 있다.
일 실시예에 따른 리소스 다운로드 시스템은 멀티 스레드 방식을 기반으로 모바일 단말의 하드웨어를 효율적으로 이용할 수 있다. 리소스 다운로드 시스템은 최신의 모바일 환경에서 더욱 최적화된 형태의 다운로드 방식으로 효과가 배가될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 컴퓨터 시스템이 모바일 환경에서의 리소스를 다운로드(Download)하는 방법에 있어서,
    적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  2. 제1항에 있어서,
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는,
    상기 각각의 스레드를 기반으로 상기 접속을 시도한 서버순으로 상기 서버에 대응하는 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신하여 상기 파일 단위로 압축된 리소스에 대한 다운로드를 수행하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  3. 제2항에 있어서,
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는,
    상기 서버에 대응하는 리소스의 다운로드가 완료됨에 따라 상기 파일 단위로 압축된 리소스를 언패킹(Unpacking)하여 스토리지에 기록하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  4. 제1항에 있어서,
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는,
    상기 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  5. 제1항에 있어서,
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계는,
    상기 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하고, 상기 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계는,
    상기 멀티 스레드를 기반으로 상기 서버에 대응하는 리소스의 다운로드를 수행 중에 또 다른 서버의 접속을 감지하는 단계
    를 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  7. 제1항에 있어서,
    상기 리소스를 파일 단위로 압축하여 대응하는 서버로 업로드하는 단계
    를 더 포함하는 모바일 환경에서의 리소스 다운로드 방법.
  8. 컴퓨터 시스템이 모바일 환경에서 리소스를 다운로드하도록 제어하는 명령(instruction)을 포함하는 컴퓨터 판독가능 매체로서,
    상기 명령은,
    적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계
    를 포함하는 방법에 의하여 상기 컴퓨터 시스템을 제어하는, 컴퓨터 판독가능 저장 매체.
  9. 컴퓨터 시스템이 모바일 환경에서의 리소스를 다운로드(Download)하는 방법을 실행시키기 위해 저장매체에 저장된 컴퓨터 프로그램에 있어서,
    적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 단계; 및
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 단계
    를 포함하는 것을 특징으로 하는 저장매체에 저장된 컴퓨터 프로그램.
  10. 모바일 환경에서의 리소스 다운로드(Download) 시스템에 있어서,
    적어도 하나의 서버에 접속을 시도함에 응답하여 멀티 스레드(Multi-Thread)를 기반으로 각각의 스레드(Thread)를 병렬적으로 실행시키는 실행부; 및
    상기 각각의 스레드에 기초하여 상기 서버에 대응하는 리소스의 다운로드를 수행하는 다운로드부
    를 포함하는 모바일 환경에서의 리소스 다운로드 시스템.
  11. 제10항에 있어서,
    상기 다운로드부는,
    상기 각각의 스레드를 기반으로 상기 접속을 시도한 서버순으로 상기 서버에 대응하는 리소스를 요청함에 따라 파일 단위로 압축된 리소스를 수신하여 상기 파일 단위로 압축된 리소스에 대한 다운로드를 수행하는
    것을 특징으로 하는 모바일 환경에서의 리소스 다운로드 시스템.
  12. 제11항에 있어서,
    상기 다운로드부는,
    상기 서버에 대응하는 리소스의 다운로드가 완료됨에 따라 상기 파일 단위로 압축된 리소스를 언패킹(Unpacking)하여 스토리지에 기록하는
    것을 특징으로 하는 모바일 환경에서의 리소스 다운로드 시스템.
  13. 제10항에 있어서,
    상기 다운로드부는,
    상기 멀티 스레드를 기반으로 네트워크의 자원을 분산시킴으로써 대기 시간없이 각각의 리소스의 다운로드를 수행하는
    것을 특징으로 하는 모바일 환경에서의 리소스 다운로드 시스템.
  14. 제10항에 있어서,
    상기 다운로드부는,
    상기 각각의 스레드에서 수행되는 리소스에 대한 다운로드의 속도가 각각 상이하고, 상기 다운로드가 완료된 스레드가 우선적으로 휴면 상태로 진입하는
    것을 특징으로 하는 모바일 환경에서의 리소스 다운로드 시스템.
  15. 제10항에 있어서,
    상기 실행부는,
    상기 멀티 스레드를 기반으로 상기 서버에 대응하는 리소스의 다운로드를 수행 중에 또 다른 서버의 접속을 감지하는
    것을 특징으로 하는 모바일 환경에서의 리소스 다운로드 시스템.
  16. 제10항에 있어서,
    상기 리소스를 파일 단위로 압축하여 대응하는 서버로 업로드부
    를 더 포함하는 모바일 환경에서의 리소스 다운로드 시스템.
KR1020170026150A 2017-02-28 2017-02-28 모바일 환경에서의 리소스 다운로드 방법 및 시스템 KR102250378B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170026150A KR102250378B1 (ko) 2017-02-28 2017-02-28 모바일 환경에서의 리소스 다운로드 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170026150A KR102250378B1 (ko) 2017-02-28 2017-02-28 모바일 환경에서의 리소스 다운로드 방법 및 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150113695A Division KR101713114B1 (ko) 2015-08-12 2015-08-12 모바일 환경에서의 리소스 다운로드 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170027331A true KR20170027331A (ko) 2017-03-09
KR102250378B1 KR102250378B1 (ko) 2021-05-12

Family

ID=58402839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170026150A KR102250378B1 (ko) 2017-02-28 2017-02-28 모바일 환경에서의 리소스 다운로드 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102250378B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050072554A (ko) * 2004-01-07 2005-07-12 주식회사 엑스씨이 컨텐츠 리소스로부터 모바일 컨텐츠용 프로그램을 자동생성하기 위한 웹 기반 시스템 및 방법
KR20060082646A (ko) * 2005-01-13 2006-07-19 에스케이 텔레콤주식회사 Wipi 단말에서의 컨텐츠 다운로드 시스템 및 그 방법
KR20070000867A (ko) * 2005-06-28 2007-01-03 케이티하이텔 주식회사 업데이트 파일 제공 장치 및 그 방법과, 그를 이용한업데이트 파일 다운로딩 장치 및 그 방법
KR20090073199A (ko) * 2006-10-30 2009-07-02 마이크로소프트 코포레이션 웹 기반 애플리케이션의 오프라인 실행
KR20120140670A (ko) * 2010-03-12 2012-12-31 넷플릭스, 인크. 병렬 스트리밍

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050072554A (ko) * 2004-01-07 2005-07-12 주식회사 엑스씨이 컨텐츠 리소스로부터 모바일 컨텐츠용 프로그램을 자동생성하기 위한 웹 기반 시스템 및 방법
KR20060082646A (ko) * 2005-01-13 2006-07-19 에스케이 텔레콤주식회사 Wipi 단말에서의 컨텐츠 다운로드 시스템 및 그 방법
KR20070000867A (ko) * 2005-06-28 2007-01-03 케이티하이텔 주식회사 업데이트 파일 제공 장치 및 그 방법과, 그를 이용한업데이트 파일 다운로딩 장치 및 그 방법
KR20090073199A (ko) * 2006-10-30 2009-07-02 마이크로소프트 코포레이션 웹 기반 애플리케이션의 오프라인 실행
KR20120140670A (ko) * 2010-03-12 2012-12-31 넷플릭스, 인크. 병렬 스트리밍

Also Published As

Publication number Publication date
KR102250378B1 (ko) 2021-05-12

Similar Documents

Publication Publication Date Title
US11438253B2 (en) Method and system for implementing high availability (HA) web application firewall (WAF) functionality
US10496446B2 (en) Altruistic dependable memory overcommit for virtual machines
US9571332B2 (en) Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure
US9262231B2 (en) System and method for modifying a hardware configuration of a cloud computing system
US9152532B2 (en) System and method for configuring a cloud computing system with a synthetic test workload
JP6373840B2 (ja) クラウドコンピューティングシステムをチューニングするためのシステム及び方法
US8887056B2 (en) System and method for configuring cloud computing systems
US9658895B2 (en) System and method for configuring boot-time parameters of nodes of a cloud computing system
EP3454213B1 (en) Function library build architecture for serverless execution frameworks
US20140047095A1 (en) System and method for tuning a cloud computing system
US20140047342A1 (en) System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
US20140047079A1 (en) System and method for emulating a desired network configuration in a cloud computing system
US20150278032A1 (en) Providing services on system being recovered
US20200167215A1 (en) Method and System for Implementing an Application Programming Interface Automation Platform
JP6966432B2 (ja) クラウドファイル処理方法および装置
CN111432033A (zh) 应用程序下载方法、装置、系统、ios设备及介质
KR101713114B1 (ko) 모바일 환경에서의 리소스 다운로드 방법 및 시스템
KR20170027331A (ko) 모바일 환경에서의 리소스 다운로드 방법 및 시스템
US20140280965A1 (en) Software product instance placement
KR101155203B1 (ko) 패키지 파일의 다운로드 및 어플리케이션 설치를 병행하는 단말기 및 그 방법
CN113721930A (zh) 部署应用程序的方法、装置、设备、介质和程序产品
WO2022250708A1 (en) Parallelizing opengl rendering pipelines
CN113722084A (zh) 数据处理方法、装置、电子设备和计算机存储介质
US20140189076A1 (en) Configuration of computer systems via simple object access protocol connections

Legal Events

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