KR101962426B1 - 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치 - Google Patents

모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치 Download PDF

Info

Publication number
KR101962426B1
KR101962426B1 KR1020160180192A KR20160180192A KR101962426B1 KR 101962426 B1 KR101962426 B1 KR 101962426B1 KR 1020160180192 A KR1020160180192 A KR 1020160180192A KR 20160180192 A KR20160180192 A KR 20160180192A KR 101962426 B1 KR101962426 B1 KR 101962426B1
Authority
KR
South Korea
Prior art keywords
transaction
request
content
proxy
user
Prior art date
Application number
KR1020160180192A
Other languages
English (en)
Other versions
KR20180076085A (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 KR1020160180192A priority Critical patent/KR101962426B1/ko
Priority to US15/628,884 priority patent/US10452405B2/en
Publication of KR20180076085A publication Critical patent/KR20180076085A/ko
Application granted granted Critical
Publication of KR101962426B1 publication Critical patent/KR101962426B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/2842
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • H04L67/2847
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

모바일 애플리케이션의 응답 시간을 현저히 줄이기 위하여, 애플리케이션 가속화 기회를 자동으로 발견할 수 있는 자동 프로토콜 분석을 이용하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치를 제공한다.

Description

모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치{Method and Apparatus To Accelerate Loading of Mobile Application Content}
본 발명에 따른 일 실시예는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치에 관한 것이다.
이하에 기술되는 내용은 단순히 본 발명에 따른 일 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
Mobile US 2015에 따르면, 2015년에는 모바일 트래픽이 전체 인터넷 트래픽의 56%를 차지하였으며, 이 모바일 트래픽 중 40∼50% 정도가 안드로이드(Android) 애플리케이션(application; app)에 의해 생성되는 것으로 밝혀졌다. 또한, 150만 개 이상의 안드로이드 애플리케이션이 구글(Google)의 오픈 마켓(open market)을 통하여 제공되고 있으며 매달 수만 개의 새로운 애플리케이션이 추가되고 있다. 이는 이미 많은 사용자가 안드로이드 애플리케이션을 사용하고 있으며, 더욱 많은 개발자가 새로이 안드로이드 애플리케이션을 출시할 것이라는 것을 의미한다.
이러한 급변하는 인터넷 환경에서 모바일 애플리케이션 개발자의 이익을 극대화하고 사용자의 품질 만족도를 향상시키기 위해서는 모바일 애플리케이션의 응답 시간을 최소화하는 것이 필수적이다.
가속화된 모바일 애플리케이션에 대한 TCP(transmission control protocol) 가속화, SPDY(speedy networking protocol), 압축 등의 일반적인 접근 방법은 덜 효율적이다. 그 이유는 이러한 접근 방법이 애플리케이션마다 각기 다른 특징을 고려할 수 없기 때문이다.
이러한 문제점을 해결할 수 있는 방법 중 하나가 각 애플리케이션에 특화된 애플리케이션 전용 프록시를 사용하는 방법이다. 애플리케이션 전용 프록시는 동적 캐싱(dynamic caching)과 동적 프리페칭(dynamic prefetching)을 활성화하기 위해 해당 애플리케이션에 특화된 애플리케이션 전용 프로토콜을 사용한다. 그러나 이러한 방법의 사용에는 여러 가지 어려움이 존재한다. 그 어려움 중 하나가 프록시 코드를 생성하는데 너무 많은 시간이 소요된다는 점이다.
따라서 시간을 많이 소요하지 않으면서도 모바일 애플리케이션의 콘텐츠 로딩을 가속화할 수 있는 방법 및 장치가 필요하다.
본 발명의 일 실시예에 따르면, 애플리케이션 가속화 기회를 자동으로 발견할 수 있는 자동 프로토콜 분석을 이용하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치를 제공하는 데에 목적이 있다.
본 발명의 일 실시예에 따르면, 프록시(proxy)를 이용하여 모바일 애플리케이션의 콘텐츠 로딩 속도를 향상시키는 장치를 이용한 콘텐츠 로딩 가속화 방법에 있어서, 적어도 하나의 모바일 애플리케이션을 입력값으로 수신하는 과정; 상기 입력값을 이용하여 상기 적어도 하나의 모바일 애플리케이션을 분석하는 과정; 상기 분석하는 과정의 결과를 이용하여 상기 적어도 하나의 모바일 애플리케이션에 특화된 애플리케이션 전용 프록시를 생성하는 과정; 상기 애플리케이션 전용 프록시를 이용하여 사용자의 요청(request)에 대응될 것으로 예측되는 콘텐츠를 프리페칭(prefetching)하여 프리페칭 콘텐츠를 생성하는 과정; 및 상기 사용자의 요청에 응답(response)하여 콘텐츠를 상기 사용자에게 전송하는 과정을 포함하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법을 제공한다.
본 발명의 일 실시예에 따르면, 모바일 애플리케이션의 콘텐츠 로딩 속도를 향상시키기 위한, 모바일 애플리케이션 콘텐츠 로딩 가속화 장치에 있어서, 애플리케이션 바이너리(application binary) 정보를 수신하여 상기 애플리케이션을 분석하고, 상기 애플리케이션에 적합한 가속화 요소를 산출하는 전용 프록시 자동 생성 장치; 및 요청 신호가 도착할 것으로 예상되는 콘텐츠를 상기 요청 신호가 도착되기 이전에 서버로부터 미리 가져오는 콘텐츠 프리페칭 모듈과 상기 요청 신호가 도착하면 상기 콘텐츠 프리페칭 모듈이 미리 가져온 제 1 콘텐츠를 상기 요청 신호에 대응되는 제 2 콘텐츠와 비교하여, 상기 제 1 콘텐츠가 상기 제 2 콘텐츠와 같으면, 상기 제 1 콘텐츠를 사용자 단말기로 전송하는 프록시를 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 장치를 제공한다.
본 발명의 일 실시예에 따르면, 애플리케이션 가속화 기회를 자동으로 발견하기 위한 자동 프로토콜 분석을 이용하여 모바일 애플리케이션의 콘텐츠 로딩을 가속화할 수 있는 효과가 있다.
또한, 본 발명의 일 실시예의 다른 측면에 의하면, 어느 누구나 애플리케이션 전용 프록시를 생성할 수 있도록 하는 효과가 있다.
또한, 본 발명의 일 실시예의 또 다른 측면에 의하면, 모바일 애플리케이션의 콘텐츠 로딩 응답 시간을 현저히 줄일 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 장치이다.
도 2는 본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 방법의 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 프록시 자동 생성 장치의 개념도이다.
도 4는 본 발명의 일 실시예에 따른 프록시 자동 생성 방법의 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 모바일 애플리케이션 전용 프록시의 개념도이다.
도 6은 본 발명의 일 실시예에 따른 프록시의 동작 원리를 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 프록시를 이용한 이미지 프리페칭 방법을 도시한 타이밍도(timing chart)이다.
도 8는 본 발명의 일 실시예에 따른 프록시를 이용한 비디오 프리페칭 방법을 도시한 타이밍도이다.
도 9는 본 발명의 일 실시예에 따른 프록시를 사용한 경우와 사용하지 않은 경우의 이미지 및 비디오 로딩 지연 시간을 도시한 그래프이다.
도 10은 본 발명의 일 실시예에 따른 이미지 아티클(article) 정보를 포함하는 JSON(javascript object notation)의 일부분이다.
이하, 본 발명의 일 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 본 발명의 일 실시예를 설명함에 있어서 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 일 실시예의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
본 발명에 따른 실시예의 구성요소를 설명하는 데 있어서 제1, 제2, ⅰ), ⅱ), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례 또는 순서 등이 한정되지 않는다. 또한 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부도면을 참조하여 본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치를 설명하면 다음과 같다.
도 1은 본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 장치이다.
본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)는 소프트웨어 형태로 구현되어 모바일 단말기, 데스크탑 등에 설치될 수 있다. 또한, 이러한 기능을 수행할 수 있는 독립적인 모듈의 형태로 구현될 수도 있다.
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)는 프록시 자동 생성 장치(110)와 모바일 애플리케이션 전용 프록시(120, 이하 '프록시')를 포함한다.
프록시 자동 생성 장치(110)는 모바일 애플리케이션 바이너리(binary)만을 입력으로 수신하여 모바일 애플리케이션의 응답 속도를 줄일 수 있도록 모바일 애플리케이션에 특화된 프록시인 모바일 애플리케이션 전용 프록시를 생성한다. 프록시 자동 생성 장치(110)는 수신한 모바일 애플리케이션 바이너리를 자동으로 분석하고, 해당 모바일 애플리케이션이 생성하는 트래픽(traffic)의 유형을 특정하여 정규표현식(regular expression; regex) 형태로 저장한다. 이하, 정규표현식을 시그니처(signature)로 칭한다.
프록시 자동 생성 장치(110)는 이미 작성되어 있는 프록시에 시그니처를 입력하여 해당 모바일 애플리케이션을 가속화하는 프록시(120)를 자동으로 완성한다.
프록시(120)는 사용자의 트래픽을 감시하면서 추후에 사용자가 요청할 것으로 예상되는 콘텐츠를 서버로부터 미리 가져온다(prefetch). 프록시(120)는 프록시(120)가 프리페칭한 콘텐츠를 사용자가 요청할 때, 서버를 대신하여 해당 콘텐츠를 사용자에게 전달한다. 프록시(120)는 기지국(mobile edge cloud)에서 동작하기 때문에 서버보다 더욱 짧은 시간 내에 콘텐츠를 전달할 수 있다.
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)가 어떻게 동작하는지를 프록시 자동 생성 장치(110)와 프록시(120)를 이용하여 요약하면 다음과 같다.
도 2는 본 발명의 일 실시예에 따른 모바일 애플리케이션 콘텐츠 로딩 가속화 방법의 흐름도이다.
프록시 자동 생성 장치(110)는 모바일 애플리케이션 중 하나인 안드로이드의 바이너리를 입력값으로 수신하고(S210), 수신한 모바일 애플리케이션을 분석한다(S220). 프록시 자동 생성 장치(110)는 분석한 결과를 이용하여 모바일 애플리케이션의 응답 속도를 줄일 수 있는 가속화 기회를 식별한다(S230). 프록시 자동 생성 장치(110)는 분석한 내용과 식별된 가속화 기회에 기초하여 프록시 코드를 생성한다(S240). 프록시 자동 생성 장치(110)에서 생성된 프록시(120)는 사용자가 요청할 것으로 예상되는 콘텐츠를 프리페칭하고(S250), 프리페칭된 콘텐츠를 사용자에게 전달한다(S260).
프록시 자동 생성 장치(110)의 동작 원리를 보다 상세히 설명하기 위해 프록시 자동 생성 장치(110)를 기능 모듈로 구분한다.
도 3은 본 발명의 일 실시예에 따른 프록시 자동 생성 장치의 개념도이다.
프록시 자동 생성 장치(110)는 데이터 수집부(312), 데이터 분석부(314), 가속화 기회 식별부(316) 및 코드 생성부(318)를 포함한다.
데이터 수집부(312)는 외부로부터 모바일 애플리케이션 바이너리를 입력값으로 수신한다. 데이터 수집부(312)는 수신한 모바일 애플리케이션 바이너리를 데이터 분석부(314)로 전달한다. 여기서, 모바일 애플리케이션은 안드로이드(Android) 애플리케이션을 포함한다.
데이터 분석부(314)는 데이터 수집부(312)로부터 수신한 안드로이드 애플리케이션을 실행하여 생성된 요청(request) 및 응답(response)에 대한 안드로이드 애플리케이션(320)의 거동을 분석한다. 데이터 분석부(314)가 분석하는 요청 및 응답은 안드로이드 애플리케이션(120)이 생성하는 'URI', '쿼리 스트링(query string)', '요청 방법(request method)', '헤더(header)' 및 '바디(body)'를 포함하는 명령 체계를 의미한다.
데이터 분석부(314)는 안드로이드 애플리케이션 바이너리가 수신되면 자동적·포괄적으로 안드로이드 애플리케이션 프로토콜 거동(Android application protocol behavior) 분석을 수행한다.
데이터 분석부(314)는 애플리케이션 프로토콜 거동 분석 결과에 근거하여, 정규표현식을 생성한다. 데이터 분석부(314)는 이 정규표현식을 가속화 기회 식별부(316)로 전송한다.
데이터 분석부(314)는 하나의 요청을 그 요청에 대응되는 응답에 매칭함으로써 HTTP 트랜잭션(transaction)을 재구성한다.
트랜잭션이란 쪼갤 수 없는 업무처리의 단위이다. 이와 같이 쪼갤 수 없는 하나의 처리 행위를 원자적(atomic) 행위라고 한다. 즉, 트랜잭션은 사용자가 시스템에 요구를 시작하여 시스템 내의 처리, 시스템에서 사용자에게 응답하는 모든 처리를 포함한다.
데이터 분석부(314)는 하나의 응답으로부터 그 응답에 대응하는 요청이 어떠한 필드에서 전달되어 왔는지를 추적함으로써, 트랜잭션 사이의 의존성을 추론한다. 그리고 트랜잭션 사이의 의존성에 대한 분석 결과를 생성한다.
가속화 기회 식별부(316)는 데이터 분석부(314)로부터 정규표현식을 수신한다. 가속화 기회 식별부(316)는 수신된 정규표현식에 기초하여 애플리케이션 전용 가속화 프록시에 포함되어야 할 가속화 특징을 결정한다.
가속화 기회 식별부(316)는 프리페칭(prefetching)을 수행할 대상과 시점에 대한 미리 설정된 정보를 데이터 분석부(314)로부터 수신한다. 가속화 기회 식별부(316)는 이전 응답이 어떤 필드로부터 전달되었는지를 찾을 수 있다. 가속화 기회 식별부(316)의 이전 응답을 찾는 기능은 기 설정된 요청에 대한 응답을 프리페칭하는 데에 있어 매우 유용하다. 왜냐하면, 이러한 응답은 추후에 사용자에 의해 다시 요청될 가능성이 크기 때문이다.
또한, 가속화 기회 식별부(316)는 이전 응답의 정규표현식 시그니처를 이용함으로써 언제 프리페칭을 수행해야 하는지를 예측할 수 있다. 가속화 기회 식별부(316)는 식별된 정규표현식을 출력하여 코드 생성부(318)로 전송한다.
코드 생성부(318)는 가속화 기회 식별부(316)에서 수신한 정규표현식을 이용하여 애플리케이션 전용 프록시를 생성한다.
도 4는 본 발명의 일 실시예에 따른 프록시 자동 생성 방법의 흐름도이다.
프록시 자동 생성 방법의 흐름도는 도 2에 도시한 모바일 애플리케이션 콘텐츠 로딩 가속화 방법을 크게 두 부분으로 나누었을 때 그 두 부분 중 전반부에 해당하는 내용을 담고 있다.
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 데이터 수집부(312)는 안드로이드 애플리케이션으로부터 안드로이드 애플리케이션 바이너리를 입력값으로 수신한다(S410).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 데이터 분석부(314)는 데이터 수집부(312)로부터 전달받은 안드로이드 애플리케이션 바이너리를 이용하여 안드로이드 애플리케이션(320)이 생성하는 URI, 쿼리 스트링, 요청 방법, 헤더 및 바디를 포함하는 명령 체계를 분석한다(S420).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 데이터 분석부(314)는 애플리케이션 분석과정(S420)의 결과에 근거하여 정규표현식 시그니처를 생성한다. 데이터 분석부(314)는 프리페칭을 수행할 대상과 시점을 결정하여 모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 가속화 식별부(316)로 전달한다(S430).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 가속화 기회 식별부(316)는 S230 과정의 결과에 기초하여, 애플리케이션에 특화된 가속화 프록시에 포함되어야 할 가속화 특징을 결정한다(S440). 여기서 가속화 특징은 동적 프리페칭, 동적 캐싱, 미사용 콘텐츠 압축 및 미사용 콘텐츠 제거로부터 선택될 수 있다.
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 가속화 기회 식별부(316)는 데이터 분석부(314)로부터 수신한 프리페칭 대상과 시점 정보를 이용하여, 안드로이드 애플리케이션(320)이 생성하는 명령 체계에 대한 동적 프리페칭, 동적 캐싱, 미사용 콘텐츠 압축 및 제거 중 적어도 한 가지를 수행한다(S450).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 가속화 기회 식별부(316)는 S450 과정의 결과에 근거하여 식별된 정규표현식 시그니처를 출력한다(S460).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)의 코드 생성부(318)는 가속화 기회 식별부(316)에서 출력한 정규표현식을 이용하여 애플리케이션에 특화된 프록시(120)를 생성한다(S470).
모바일 애플리케이션 콘텐츠 로딩 가속화 장치(100)는 생성된 프록시(120)를 안드로이드 애플리케이션에 적용한다(S480).
도 5는 본 발명의 일 실시예에 따른 모바일 애플리케이션 전용 프록시의 개념도이다.
본 발명의 일 실시예에 따른 프록시 자동 생성 장치(110)에 의해 자동으로 생성된 프록시(120)는 데이터 송수신부(510), 프리페칭부(520), 데이터 저장부(530), 프리페칭 판단부(540) 및 데이터 비교부(550)를 포함한다.
데이터 송수신부(510)는 외부와 프록시(120) 사이의 인터페이스 역할을 한다. 데이터 송수신부(510)는 사용자 또는 서버로부터 요청을 수신하거나 각 요청에 대응되는 응답을 수신하고, 사용자 또는 서버로 요청을 송신하거나 각 요청에 대응되는 응답을 송신하는 역할을 한다.
데이터 비교부(550)는 데이터 송수신부(510)로부터 요청을 전달받아, 해당 요청에 대한 응답이 프리페칭되어 있는지 확인한다. 여기서, 응답은 사용자가 요청한 콘텐츠를 가리킨다. 데이터 비교부(550)는 프리페칭되어 있는지에 대한 확인 결과를 프리페칭부(520)로 전달한다.
프리페칭부(520)는 데이터 비교부(550)에 의한 확인 결과, 해당 요청에 대한 응답이 프리페칭되어 있으면, 프리페칭부(520)는 프리페칭되어 있는 응답을 데이터 송수신부(510)로 전달한다. 해당 요청에 대한 응답이 프리페칭되어 있지 않으면, 프리페칭부(520)는 해당 요청을 서버로 전송하여 해당 요청에 대응되는 응답을 서버로부터 수신한다. 그 후, 수신한 응답을 데이터 송수신부(510)로 전달하여, 사용자에게 전송하도록 한다.
또한, 프리페칭부(520)는 프리페칭을 수행하기 위해 해당 트랜잭션이 다른 어떤 트랜잭션의 부모(parent)인지 확인한다. 즉, 프리페칭부(520)는 해당 트랜잭션의 응답에 포함된 데이터 중 일부가 다른 트랜잭션의 요청을 형성하는 값의 일부로 사용되는지를 확인한다.
프리페칭부(520)는 해당 트랜잭션의 번호를 식별하기 위해 '요청 URI', '요청 헤더' 및 '요청 바디'의 세 가지 시그니처를 이용한다. 프리페칭부(520)는 그 후, 식별한 해당 트랜잭션의 번호와 '의존성'을 이용하여 자식(child) 트랜잭션이 존재하는지 확인하고, 그 결과를 데이터 저장부(530)로 전달한다.
또한 프리페칭부(520)는 프리페칭을 할 준비가 되면 프리페칭을 수행하는 역할을 한다.
데이터 저장부(530)는 트랜잭션으로부터 필요한 정보를 추출하여 저장하는 역할을 한다.
데이터 저장부(530)는 프리페칭부(520)로부터 전달받은 결과에 기초하여, 해당 트랜잭션이 다른 트랜잭션의 부모라면, 해당 트랜잭션의 응답에 포함된 데이터 중 다른 트랜잭션의 요청을 형성하는데 사용되는 값들을 추출한다. 예를 들어, 제 1 트랜잭션에 포함된 응답의 바디의 'product_id'가 제 2 트랜잭션에 포함된 요청의 바디의 'p_id'에 사용되면, 제 1 트랜잭션에 포함된 응답의 바디의 'product_id'에 해당하는 값을 추출하여 저장한다.
프리페칭 판단부(540)는 데이터 저장부(530)가 추출하고 저장한 데이터를 참조하여, 해당 트랜잭션에 포함된 응답 값의 일부를 사용하는 요청을 형성하는데 필요한 모든 정보가 수집되었는지를 확인한다.
예를 들어, 제 2 트랜잭션에 포함된 요청을 형성하는 정보가 제 1 트랜잭션으로부터 전달된 'p_id'와 제 3 트랜잭션으로부터 전달된 'cookie' 값이라고 가정하자. 이 경우, 제 3 트랜잭션의 응답이 프록시(120)의 데이터 송수신부(510)에 도착할 때까지 제 2 트랜잭션의 응답을 프리페칭할 수 없다.
제 1 트랜잭션의 응답과 제 3 트랜잭션의 응답이 모두 프록시(120)의 데이터 송수신부(510)에 도착하면, 제 2 트랜잭션의 요청을 형성하기 위해 필요한 모든 데이터들이 준비된다. 이 경우, 제 2 트랜잭션의 응답을 프리페칭할 수 있기 때문에, 프리페칭을 수행할 수 있게 된다. 여기서, 제 2 트랜잭션의 요청을 형성하기 위해, '요청 URI', '요청 헤더', '요청 바디' 및 제 1 트랜잭션의 응답으로부터 전달된 'p_id'와 제 3 트랜잭션의 응답으로부터 전달된 'cookie'의 값이 사용된다.
도 6은 본 발명의 일 실시예에 따른 프록시의 동작 원리를 설명하기 위한 흐름도이다.
데이터 송수신부(510)가 사용자로부터 요청을 수신한다(S610). 사용자로부터의 요청은 인터넷 콘텐츠에 대한 요청을 포함한다.
데이터 비교부(550)는 데이터 송수신부(510)로부터 전달받은 요청에 대한 응답이 프리페칭되어 있는지를 확인한다(S620). 해당 요청에 대한 응답이 프리페칭되어 있으면, 그 응답을 사용자에게 전달한다.
해당 요청에 대한 응답이 프리페칭되어 있지 않으면, 프리페칭부(520)는 데이터 송수신부(510)로 하여금 해당 요청을 서버로 송신하도록 하여, 서버로부터 해당 요청에 대응되는 응답을 획득한다. 그리고 그 응답을 사용자에게 전송한다(S630).
프리페칭부(520)는 S630 과정의 트랜잭션이 다른 어떤 트랜잭션의 부모(parent)인지 확인한다(S640). 즉, 해당 트랜잭션의 응답에 포함된 데이터 중 일부가 다른 트랜잭션의 요청을 형성하는 값의 일부로 사용되는지를 확인한다. 여기서, 프리페칭부(520)는 해당 트랜잭션의 번호를 식별하기 위해 '요청 URI', '요청 헤더' 및 '요청 바디'의 세 가지 시그니처를 이용한다. 해당 트랜잭션이 다른 트랜잭션의 부모가 아니면, 사용자의 다음 요청을 처리하기 위해 처음으로 돌아간다.
데이터 저장부(530)는 해당 트랜잭션이 다른 트랜잭션의 부모라면, 해당 트랜잭션의 응답에 포함된 데이터 중 다른 트랜잭션의 요청을 형성하는데 사용되는 값들을 추출한다(S650). 여기서, 데이터 저장부(530)는 요청과 그 요청에 대응되는 응답을 함께 저장한다.
프리페칭 판단부(540)는 추출하여 저장된 데이터를 확인하여 프리페칭을 위한 모든 데이터가 수집되었는지를 확인한다(S660). 프리페칭을 위한 모든 데이터가 수집되지 않았다면, 사용자의 다음 요청을 처리하기 위해 처음으로 돌아간다.
프리페칭 판단부(540)의 확인 결과, 프리페칭을 위한 모든 정보가 수집되어 있다면, 프리페칭부(520)는 프리페칭을 수행한다(S670).
이러한 방법의 결과에 따른 프록시를 구현하고 그 유효성을 측정하였다. 이 프록시는 낚아챔(interception), 변경(modification), 시험(inspection) 등을 허용하는 mitmproxy(https://mitmproxy.org)에 기반한다. mitmproxy는 클라이언트 및 서버 각각에 대해 SSL(secure sockets layer) 연결을 설정함으로써 암호화된 플로우(flow)의 미가공 데이터(raw data)를 확인할 수 있다.
유효성 측정을 위해, 구글 플레이(Google Play)에서 천만 명이 넘는 클라이언트가 이용하는 BBC 뉴스 애플리케이션을 실험 대상 애플리케이션으로 설정하였다. BBC 뉴스 애플리케이션은 두 가지 종류의 뉴스 아티클을 지닌다. 하나는 이미지이고 다른 하나는 비디오 클립이다.
BBC 뉴스는 대상 콘텐츠의 URL을 나타내기 위해 각 아티클에 대한 JSON 응답을 이용한다. 각각의 JSON 응답은 성적 콘텐츠(sexual contents), 이미지/비디오 클립 URL과 같은 아티클 정보를 포함한다. JSON 응답은 애플리케이션의 홈페이지를 로딩함으로써 애플리케이션으로 전달되거나 인접한 아티클에 접속함으로써 애플리케이션으로 전달된다.
도 7은 본 발명의 일 실시예에 따른 프록시를 이용한 이미지 프리페칭 방법을 도시한 타이밍도(timing chart)이다.
프록시는 아티클 정보를 포함하는 JSON을 입력받는다(①). 프록시는 JSON을 클라이언트에 전송한다(②). 프록시는 데이터 분석부(314)에 의해 제공되는 정규 표현식을 이용하여 이미지 프리페칭을 위한 요청 메시지를 이미지 서버로 전송한다(③). 이미지 프리페칭 요청 메시지를 수신한 이미지 서버는 이미지를 프록시로 전송한다(④).
클라이언트가 애플리케이션이 동작하는 환경에서 아티클을 클릭한다(⑤). 프록시는 지연 시간(latency)을 줄이기 위해 서버를 대신하여 클라이언트로 이미지를 전송한다(⑥).
도 8는 본 발명의 일 실시예에 따른 프록시를 이용한 비디오 프리페칭 방법을 도시한 타이밍도이다.
비디오 클립을 포함하는 아티클의 경우, 해당 아티클 정보에 대한 JSON은 비트레이트(bitrate)에 따른 몇 가지 비디오 URL을 포함하는 다른 JSON의 URL을 포함한다.
클라이언트가 재생 버튼을 터치하면, 프록시는 비디오 URL을 포함하는 JSON을 먼저 요청하고, 비디오 클립을 요청한다.
프록시는 아티클 정보를 포함하는 비디오 URL 서버로부터의 JSON 응답 메시지를 입력받는다(①). 프록시는 비디오 URL 서버로부터 JSON 응답 메시지를 수신하자마자 JSON 메시지를 클라이언트로 전송한다(②). 프록시는 비디오 클립의 URL을 포함하는 JSON 메시지를 URL 서버로 전송한다(③). 서버는 비디오 URL 요청 메시지에 대한 응답을 프록시로 전송한다(④).
프록시는 비디오 클립에 대한 요청을 비디오 서버로 전송한다(⑤). 비디오 클립에 대한 요청을 수신한 비디오 서버는 비디오 클립을 프록시로 전송한다(⑥).
프록시는 이러한 과정을 거쳐 프리페칭을 수행하고, 클라이언트가 아티클을 클릭함으로써 비디오 URL을 요청하면(⑦), 서버를 대신하여 비디오 URL을 클라이언트로 전달한다(⑧). 클라이언트는 수신한 비디오 URL을 이용하여 비디오 클립을 요청하고(⑨), 이 요청을 수신한 프록시는 비디오 서버를 대신하여 비디오 클립을 클라이언트에게 전달한다(⑩).
전술한 프리페칭 방법을 사용한 경우의 지연 시간의 변화를 살펴보기 위해 모바일 단말기 예를 들어, 삼성 SM-N916S(갤럭시 노트 4)를 사용하여 지연 시간을 측정하였다.
프록시는 모바일 기기와 이 모바일 기기를 처리하는 서버 사이에 배치할 수 있다. 이 프록시는 mitmproxy 0.17를 기반으로 하며 Intel i5-4670 상에서 동작한다.
BBC 뉴스는 이미지 및 비디오 URL을 페치하는 오리진 서버(origin server), 다수의 이미지 데이터를 저장하고 처리하는 이미지 서버 및 다수의 비디오 데이터를 저장하고 처리하는 비디오 서버를 사용한다. 이미지 서버 및 비디오 서버는 오리진 서버보다 모바일 기기에 더 가까이 위치하는 CDN(content delivery network) 서버이다.
지연 시간은 도 7 및 도 8에 나타낸 방법을 이용하여 측정할 수 있다.
도 9는 본 발명의 일 실시예에 따른 프록시를 사용한 경우와 사용하지 않은 경우의 이미지 및 비디오 로딩 지연 시간을 도시한 그래프이다.
이미지 및 비디오 로딩 지연 시간은 20번 실행한 값을 평균값으로 구하였지만, 실제 지연 시간은 20번 실행한 값 중 가장 짧은 값일 수도 있고, 가장 긴 값일 수도 있다. 여기서, 참고해야 할 부분은 프록시가 프리페칭을 수행하지 않는 경우에도 프록시가 사용되었다는 것이다.
이미지 로딩 지연 시간을 구하기 위해, 프록시에서 첫 번째 바이트(Byte)가 전송되었을 때의 시각을 측정하였다. 프리페칭을 사용하지 않은 경우, 서버로부터 이미지 전체를 수신할 때까지 걸린 시간은 평균 57 ms였다. 프리페칭을 사용한 경우, 평균 지연 시간은 12 ms로 감소하였다. 이때, 이미지의 평균 데이터 크기는 57.4 kB였다.
비디오 로딩 지연 시간을 구하는 경우에도, 이미지 로딩 지연 시간을 구하는 경우에서와 마찬가지로, 프록시에서 첫 번째 바이트가 전송될 때의 시각을 측정하였다. 프리페칭을 사용하지 않은 경우, 비디오 클립 하나를 수신할 때까지 걸리는 총 지연 시간은 평균 1952 ms였다. URL 프리페칭을 사용한 경우, 즉, 비디오 URL을 포함하는 JSON 프리페칭을 사용한 경우, 지연 시간은 1259 ms로 감소하였다. 이는 추가적인 RTT(round-trip time) 및 HTTP 및 JSON 메시지의 처리 지연 시간을 줄였기 때문이다.
두 가지 모두의 경우, 프록시가 비디오의 최초 4 MB를 전송받을 때까지의 시간을 측정하였다. 이것은 안드로이드 미디어플레이어(MediaPlayer)가 비디오 파일의 최초 4 MB가 수신되면 재생을 시작하기 때문이다.
비디오 클립이 프리페칭된 경우에는 프록시가 최초 33 ms가 지난 이후 최초 바이트를 전송하기 시작하였다. 모바일 장치의 대역폭이 27 Mbps라고 가정하면(대한민국에서의 평균 LTE 대역폭), 최초 4 MB를 수신할 때까지 걸리는 총 지연 시간은 1218 ms이다.
도 10은 본 발명의 일 실시예에 따른 이미지 아티클(article) 정보를 포함하는 JSON(javascript object notation)의 일부분이다.
클라이언트가 한 이미지 아티클을 클릭하면, 대응되는 이미지는 JSON에 존재하는 이미지 URL을 이용함으로써 요청된다. 이는 비디오 프리페칭의 경우에도 마찬가지로 적용된다.
도 2, 도 4 및 도 6에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 도 2, 도 4 및 도 6에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것으로 적용 가능할 것이므로, 도 2, 도 4 및 도 6은 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 2, 도 4 및 도 6에 도시된 흐름도의 각 단계는 컴퓨터로 읽을 수 있는 기록매체(computer-readable recording medium)에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상의 설명은 본 발명에 따른 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명에 따른 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 따른 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명에 따른 일 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 따른 일 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 모바일 애플리케이션 콘텐츠 로딩 가속화 장치
110: 프록시 자동 생성 장치 120: 프록시
312: 데이터 수집부 314: 데이터 분석부
316: 가속화 기회 식별부 318: 코드 생성부
320: 안드로이드 애플리케이션 510: 데이터 송수신부
520: 프리페칭부 530: 데이터 저장부
540: 프리페칭 판단부 550: 데이터 비교부

Claims (12)

  1. 프록시(proxy)를 이용하여 모바일 애플리케이션의 콘텐츠 로딩 속도를 향상시키는 장치를 이용한 콘텐츠 로딩 가속화 방법에 있어서,
    적어도 하나의 모바일 애플리케이션을 입력값으로 수신하는 과정;
    상기 입력값을 이용하여 상기 적어도 하나의 모바일 애플리케이션을 분석하는 과정;
    상기 분석하는 과정의 결과를 이용하여 상기 적어도 하나의 모바일 애플리케이션에 특화된 애플리케이션 전용 프록시를 생성하는 과정;
    상기 애플리케이션 전용 프록시를 이용하여 사용자의 요청(request)에 대응될 것으로 예측되는 콘텐츠를 프리페칭(prefetching)하여 프리페칭 콘텐츠를 생성하는 과정;
    상기 사용자의 요청에 응답(response)하여 콘텐츠를 상기 사용자에게 전송하는 과정;
    상기 사용자의 요청에 대응되는 프리페칭 콘텐츠가 미생성된 경우, 서버로부터 상기 사용자의 요청에 대응되는 콘텐츠를 획득하는 과정;
    상기 서버로부터 상기 사용자의 요청에 대응되는 콘텐츠를 획득하여 상기 사용자에게 전송하는 제 1 트랜잭션(transaction)이 다른 적어도 하나의 트랜잭션의 부모인지 확인하는 트랜잭션 부모 확인과정; 및
    상기 트랜잭션 부모 확인과정의 결과, 상기 제 1 트랜잭션이 다른 적어도 하나의 트랜잭션의 부모가 아니면, 상기 사용자의 다음 요청을 처리하는 과정
    을 포함하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 모바일 애플리케이션을 분석하는 과정은,
    상기 적어도 하나의 모바일 애플리케이션이 생성하는 정규표현식 시그니처(regular expression signature)인 '요청 URI(request URI)', '요청 바디(request body)', '요청 헤더(request header)', '의존성' 및 '의존성 상세정보' 중 적어도 하나를 추출하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  3. 제 1 항에 있어서,
    상기 애플리케이션 전용 프록시를 생성하는 과정은,
    상기 분석하는 과정의 결과를 이용하여, 상기 애플리케이션 전용 프록시에 포함될 '동적 프리페칭(dynamic prefetching)', '동적 캐싱(dynamic caching)', '미사용 콘텐츠 압축 및 제거'로부터 선택된 적어도 하나를 결정하는 과정을 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  4. 제 3 항에 있어서,
    상기 동적 프리페칭은,
    프리페칭 대상 및 시각 정보에 기초하여 프리페칭을 수행하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  5. 제 1 항에 있어서,
    상기 프리페칭 콘텐츠를 생성하는 과정은,
    상기 사용자의 요청에 대응되는 프리페칭 콘텐츠가 생성되어 있는지를 판단하고, 판단 결과, 프리페칭 콘텐츠가 생성되어 있으면, 상기 프리페칭 콘텐츠를 상기 사용자에게 전송하도록 하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  6. 삭제
  7. 제 1 항에 있어서,
    상기 트랜잭션 부모 확인과정은,
    정규표현식 시그니처 중 '요청 URI', '요청 헤더' 및 '요청 바디'에 기초하여 상기 제 1 트랜잭션의 번호를 식별하는 과정을 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  8. 제 1 항에 있어서,
    상기 트랜잭션 부모 확인과정은,
    상기 제 1 트랜잭션의 번호와 정규표현식 시그니처 중 '의존성'에 기초하여 자식 트랜잭션이 존재하는지를 확인하는 과정을 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  9. 삭제
  10. 제 1 항에 있어서,
    상기 트랜잭션 부모 확인과정의 결과, 상기 제 1 트랜잭션이 다른 적어도 하나의 트랜잭션의 부모이면, 상기 제 1 트랜잭션에 포함된 응답 중 상기 다른 적어도 하나의 트랜잭션의 요청을 형성하는 데에 사용된 값들을 추출하는 트랜잭션 데이터 추출과정을 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  11. 제 10 항에 있어서,
    상기 트랜잭션 데이터 추출과정 이후에,
    상기 다른 적어도 하나의 트랜잭션의 요청을 형성하는 데에 필요한 모든 정보가 수집되었는지를 확인하는 과정을 추가로 포함하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 방법.
  12. 애플리케이션 바이너리(application binary) 정보를 수신하여 상기 애플리케이션을 분석하고, 상기 애플리케이션에 적합한 가속화 요소를 산출하는 전용 프록시 자동 생성 장치; 및
    요청 신호가 도착할 것으로 예상되는 콘텐츠를 상기 요청 신호가 도착되기 이전에 서버로부터 미리 가져오며, 상기 요청 신호가 도착하면 미리 가져온 제 1 콘텐츠를 상기 요청 신호에 대응되는 제 2 콘텐츠와 비교하여, 상기 제 1 콘텐츠가 상기 제 2 콘텐츠와 동일하면, 상기 제 1 콘텐츠를 사용자 단말기로 전송하는 프록시
    를 포함하되, 상기 프록시는 상기 요청 신호에 대응되는 프리페칭 콘텐츠가 미생성된 경우, 서버로부터 상기 사용자의 요청에 대응되는 콘텐츠를 획득하여 상기 사용자에게 전송하는 제 1 트랜잭션(transaction)이 다른 적어도 하나의 트랜잭션의 부모인지 확인하고, 확인 결과 상기 제 1 트랜잭션이 다른 적어도 하나의 트랜잭션의 부모가 아니면, 상기 사용자의 다음 요청을 처리하는 것을 특징으로 하는 모바일 애플리케이션 콘텐츠 로딩 가속화 장치.
KR1020160180192A 2016-12-27 2016-12-27 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치 KR101962426B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160180192A KR101962426B1 (ko) 2016-12-27 2016-12-27 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치
US15/628,884 US10452405B2 (en) 2016-12-27 2017-06-21 Method and apparatus for accelerating loading of mobile application content

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160180192A KR101962426B1 (ko) 2016-12-27 2016-12-27 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180076085A KR20180076085A (ko) 2018-07-05
KR101962426B1 true KR101962426B1 (ko) 2019-03-26

Family

ID=62629806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160180192A KR101962426B1 (ko) 2016-12-27 2016-12-27 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치

Country Status (2)

Country Link
US (1) US10452405B2 (ko)
KR (1) KR101962426B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220046885A (ko) * 2020-10-08 2022-04-15 주식회사 이루온 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10320934B1 (en) 2015-08-25 2019-06-11 Instart Logic, Inc. One-time cache
CN110888807B (zh) * 2019-11-15 2024-04-26 苏州金智渠信息技术有限公司 一种安卓应用自动抓包方法
US11983287B2 (en) * 2020-12-02 2024-05-14 Capital One Services, Llc Non-persistent data caching web server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231798A (ja) * 2010-05-26 2010-10-14 Thomson Licensing サービスをダウンロードするためのホットスポットにおけるキャッシュサーバ

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853699B2 (en) * 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
GB0520238D0 (en) * 2005-10-05 2005-11-16 Waterleaf Ltd Commercial transaction system with third party referral
KR100967337B1 (ko) * 2008-08-20 2010-07-05 주식회사 컴퍼니원헌드레드 프록시 서버를 이용한 이동통신 단말기의 웹 브라우저 시스템
US9161080B2 (en) * 2011-01-28 2015-10-13 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
WO2012103515A1 (en) * 2011-01-28 2012-08-02 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
CN103092575A (zh) * 2011-10-28 2013-05-08 谷歌公司 生成小工具应用的方法和***
US20150012608A1 (en) * 2012-08-31 2015-01-08 Panasonic Intellectual Property Corporation Of America Web content prefetch control device, web content prefetch control program, and web content prefetch control method
US20140109072A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Application wrapping for application management framework
US20160191650A1 (en) * 2013-06-06 2016-06-30 Yahoo Inc. Method and system for dynamic content pre-caching
EP3008943A4 (en) * 2013-06-11 2017-02-22 Seven Networks, LLC Optimizing keepalive and other background traffic in a wireless network
KR20150003550A (ko) * 2013-07-01 2015-01-09 삼성전자주식회사 웹 컨텐츠 전송 방법 및 장치
US9819721B2 (en) * 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
US9930132B2 (en) * 2014-01-10 2018-03-27 Facebook, Inc. Content specific router caching
US9591095B2 (en) * 2014-03-10 2017-03-07 Microsoft Technology Licensing, Llc Prefetching application data for periods of disconnectivity
US10924554B2 (en) * 2014-05-05 2021-02-16 Citrix Systems, Inc. Application customization
CN105610909B (zh) * 2015-12-21 2019-01-18 北京大学 一种基于云-端协同的移动浏览器资源加载优化方法
US10447759B2 (en) * 2016-05-27 2019-10-15 Microsoft Technology Licensing, Llc Web page accelerations for web application hosted in native mobile application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231798A (ja) * 2010-05-26 2010-10-14 Thomson Licensing サービスをダウンロードするためのホットスポットにおけるキャッシュサーバ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220046885A (ko) * 2020-10-08 2022-04-15 주식회사 이루온 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법
KR102400703B1 (ko) 2020-10-08 2022-05-23 주식회사 이루온 5g 통신망을 기반으로 하는 가입자 특화 어플리케이션 유통시스템 및 방법

Also Published As

Publication number Publication date
US10452405B2 (en) 2019-10-22
US20180181409A1 (en) 2018-06-28
KR20180076085A (ko) 2018-07-05

Similar Documents

Publication Publication Date Title
US11983234B2 (en) Progressive prefetching
KR101962426B1 (ko) 모바일 애플리케이션 콘텐츠 로딩 가속화 방법 및 장치
US9456050B1 (en) Browser optimization through user history analysis
US10567407B2 (en) Method and system for detecting malicious web addresses
US8171135B2 (en) Accumulator for prefetch abort
US10007668B2 (en) Method and system for triggering ingestion of remote content by a streaming server using uniform resource locator folder mapping
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
US10375192B1 (en) Faster web browsing using HTTP over an aggregated TCP transport
US7987243B2 (en) Method for media discovery
JP2010528370A (ja) 部分利用可能なコンテンツのアンチウィルス・スキャニング
US10305760B2 (en) Identifying an analysis reporting message in network traffic
US20160142432A1 (en) Resource classification using resource requests
CN104023046B (zh) 移动终端识别方法和装置
CN116996578B (zh) 基于内容分发网络的资源处理方法和装置
CN110855786B (zh) 针对网络数据请求的处理方法、设备及计算机存储介质
US9848050B2 (en) Information processing device for packet and header inspection
KR20140092337A (ko) 대상을 획득하는 방법, 장치, 및 시스템
CN113285920B (zh) 业务访问方法、装置、设备及存储介质
KR102196403B1 (ko) 재지향 감소
WO2014133524A1 (en) Resource reference classification
JP5738042B2 (ja) ゲートウェイ装置、情報処理装置、処理方法およびプログラム
EP3029911A1 (en) Method, system and device for delivering a web application to a client
JP5893787B2 (ja) 情報処理装置、処理方法およびプログラム
JP5986695B2 (ja) 情報処理装置、処理方法およびプログラム
WO2022271523A1 (en) Systems and methods for autonomous program detection

Legal Events

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