KR20140126328A - 애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법 - Google Patents

애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법 Download PDF

Info

Publication number
KR20140126328A
KR20140126328A KR1020147022883A KR20147022883A KR20140126328A KR 20140126328 A KR20140126328 A KR 20140126328A KR 1020147022883 A KR1020147022883 A KR 1020147022883A KR 20147022883 A KR20147022883 A KR 20147022883A KR 20140126328 A KR20140126328 A KR 20140126328A
Authority
KR
South Korea
Prior art keywords
application
resource
cache
downloading
resources
Prior art date
Application number
KR1020147022883A
Other languages
English (en)
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 마이크로소프트 코포레이션
Publication of KR20140126328A publication Critical patent/KR20140126328A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

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

Abstract

다양한 실시예는 로컬 클라이언트 머신 상에 이용될 수 있는 설치가능 애플리케이션이 웹 상에 원격으로 상주하는 애플리케이션 캐시 매니페스트를 이용하여, 설치된 애플리케이션이 로컬 클라이언트 머신 상에 배치된 후 오프라인으로 업데이트될 및 이용가능한 다양한 리소스를 정의할 수 있도록 해준다. 매니페스트 파일의 콘텐츠가 웹 상에서 업데이트될 때마다, 설치된 애플리케이션은 자동으로 그의 로컬 애플리케이션 캐시 리소스를 업데이트하여 설치된 애플리케이션이 해당 리소스를 오프라인으로 사용할 수 있게 한다. 이러한 것은 애플리케이션의 새로운 업데이트를 설치할 필요없이 또는 사용자가 업데이트된 콘텐츠를 얻기 위한 위치로 이동하게 하지 않아도 이루어진다.

Description

애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법{USING AN APPLICATION CACHE TO UPDATE RESOURCES OF INSTALLED APPLICATIONS}
기존의 컴퓨팅 환경은 일반적으로 새로운 콘텐츠가 오프라인으로 이용될 수 있기 전에 사용자에게 그들의 애플리케이션을 업데이트할 것을 요구한다. 즉, 애플리케이션이 이용가능한 업데이트를 가지고 있는 경우, 사용자는 일반적으로 그 업데이트에 대해 잘 알아야 하고 새로운 콘텐츠를 사용하기 전에 그 업데이트를 확보 및 설치하기 위해 원격 애플리케이션 스토어로 물리적으로 이동해야 한다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 개념들 중 선택된 것들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니다.
다양한 실시예는 로컬 클라이언트 머신 상에 이용될 설치가능 애플리케이션이 웹 상에 원격으로 상주하는 애플리케이션 캐시 매니페스트 파일을 이용하여, 설치된 애플리케이션이 로컬 클라이언트 머신 상에 배치된(deployed) 이후 오프라인으로 업데이트될 및 이용가능한 다양한 리소스를 정의할 수 있도록 해준다. 설치된 애플리케이션은 자신의 환경에서 실행되고 웹 브라우저에 의존하지 않거나 또는 웹 브라우저에서 실행하지 않는 독립적인 애플리케이션으로 간주될 수 있다. 매니페스트 파일의 콘텐츠가 웹 상에서 업데이트될 때마다, 설치된 애플리케이션은 자동으로 그의 로컬 애플리케이션 캐시 리소스를 업데이트하여 설치된 애플리케이션이 해당 리소스를 오프라인으로 사용할 수 있게 한다. 이러한 것은 애플리케이션의 새로운 업데이트를 설치할 필요없이 또는 사용자가 업데이트된 콘텐츠를 얻기 위한 위치로 이동하게 하지 않아도 이루어진다.
상세한 설명은 첨부된 도면을 참조하여 설명한다. 도면에서, 참조 번호의 가장 왼쪽의 숫자(들)는 참조 번호가 처음 나타나는 도면을 나타낸다. 상세한 설명 및 도면에서 서로 다른 사례에서의 동일한 참조 부호의 사용은 유사하거나 동일한 항목을 나타낼 수 있다.
도 1은 본 명세서에 설명된 다양한 실시예를 수행하도록 동작하는 예시적인 구현 환경의 예시이다.
도 2는 하나 이상의 실시예에 따른 설치된 애플리케이션을 사용할 수 있는 예시적인 구현을 도시한다.
도 3은 하나 이상의 실시예에 따른 예시적인 프로세스의 양태를 도시한다.
도 4는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 5는 도 1을 참조하여 설명한 컴퓨팅 장치를 포함하는 예시적인 시스템을 도시한다.
도 6은 본 명세서에 설명된 임의의 유형의 컴퓨팅 장치로 구현될 수 있는 예시적인 장치의 다양한 구성 요소를 도시한다.
개요
다양한 실시예는 예를 들어, 로컬 클라이언트 머신에서 사용될 설치가능 애플리케이션이 웹 상에서 원격으로 상주하는 애플리케이션 캐시 매니페스트 파일을 이용하여, 설치된 애플리케이션이 로컬 클라이언트 머신 상에 배치된 이후 오프라인으로 업데이트될 및 이용가능한 사진, 미디어, 스크립트, CSS 스타일 시트, HTML 등과 같은 다양한 리소스를 정의할 수 있도록 해준다. 설치된 애플리케이션은 자신의 환경에서 실행되고 웹 브라우저에서 의존하지 않거나 그 웹 브라우저에서 실행되지 않는 독립적인 애플리케이션으로 간주될 수 있다. 이를 위해, 설치된 애플리케이션은 본 문서의 맥락에서 웹 브라우저가 아니다. 오히려, 설치된 애플리케이션은 제한이 아닌 예로서, ScaleForm, XUI (Xbox UI), HTML, XAML 등과 같은 마크업 기반 콘텐츠를 이용 및 활용할 수 있다. 설치된 애플리케이션은 일반적으로 사용자의 설치된 애플리케이션과 상호작용하기 위해 사용자에 의해 이용되는 사용자 인터페이스를 비롯한 사용자 인터페이스를 제공하기 위해 HTML 및/또는 다른 웹 기술을 활용하는 특정 애플리케이션 경험에 타겟팅된다. 매니페스트 파일의 콘텐츠가 웹 상에서 업데이트될 때마다, 설치된 애플리케이션은 자동으로 그의 로컬 애플리케이션 캐시 리소스를 업데이트하고 설치된 애플리케이션이 해당 리소스를 오프라인으로 사용할 수 있게 한다. 업데이트된 콘텐츠에 대한 확인(checking)은 배포시 즉시, 또는 배포에 후속하여 비동기식으로, 또는 제1 실행시에, 또는 실행시마다 수행될 수 있다. 이러한 것은 애플리케이션의 새로운 업데이트를 설치할 필요없이 또는 사용자로 하여금 업데이트된 콘텐츠를 얻을 수 있는 위치(예컨대, 애플리케이션 스토어)로 이동하게 하지 않아도 행해진다.
이하의 설명에서, 본원에 기재된 기술을 채용할 수 있는 예시적인 환경이 먼저 설명된다. 이후 이러한 예시적인 환경 및 다른 환경에서 수행될 수 있는 예시적인 절차가 기술된다. 따라서, 예시적인 절차의 성능은 예시적인 환경에 국한된 네트워크는 아니며, 예시적인 환경은 예시적인 절차의 성능에 국한되지 않는다.
예시적인 환경
도 1은 일반적으로 참조번호(100)로 도시된 하나 이상의 실시예에 따른 환경을 도시한다. 환경(100)은 하나 이상의 프로세서(104), 하나 이상의 컴퓨터 판독가능 저장 매체(106), 컴퓨터 판독가능 저장 매체에 상주하고 프로세서(104)에 의해 실행가능한 하나 이상의 애플리케이션(108) 및 하나 이상의 설치된 애플리케이션(110)을 구비한 컴퓨팅 장치(102)("로컬 클라이언트 머신"이라고도 함)를 포함한다. 컴퓨팅 장치(102)는 제한이 아닌 예로서, 데스크톱 컴퓨터, 휴대용 컴퓨터, 개인 보조 단말기(PDA)와 같은 핸드헬드 컴퓨터, 휴대 전화, 텔레비전, 태블릿 컴퓨터 등과 같은 임의의 적절한 컴퓨팅 장치로서 구현될 수 있다. 컴퓨팅 장치(102)에 대한 다양한 다른 예들 중 하나가 도 5 및 6과 관련하여 이하에서 도시 및 설명된다.
애플리케이션(108)은 제한이 아닌 예로서, 웹 브라우저를 포함하는 임의의 적절한 유형의 애플리케이션을 포함할 수 있다. 웹 브라우저는 네트워크(112)를 통해 네비게이팅하도록 구성된다. 네트워크(112)가 인터넷으로 도시되어 있지만, 네트워크는 다양한 구성을 취할 수 있다. 예를 들어, 네트워크(112)는 광역 네트워크(WAN), 근거리 통신망(LAN), 무선 네트워크, 공중 전화 네트워크, 인트라넷 등을 포함할 수 있다. 하나의 네트워크(112)가 도시되어 있지만, 또한, 네트워크(112)는 다수의 네트워크를 포함하도록 구성될 수 있다.
브라우저는, 예를 들어, 네트워크를 통해 네비게이팅하여 하나 이상의 웹 서버(114)로부터 이용가능한 콘텐츠와 상호작용할 뿐만 아니라, 하나 이상의 웹 서버 (114)로 데이터를 통신, 예를 들어 다운로드 및 업로드를 수행하도록 구성될 수 있다. 웹 서버(114)는 네트워크(112)를 통해 액세스가능한 하나 이상의 서비스를 제공하도록 구성될 수 있다. 이러한 서비스의 예는 이메일, 웹 페이지, 사진 공유 사이트, 소셜 네트워크, 콘텐츠 공유 서비스, 미디어 스트리밍 서비스 등을 포함한다.
하나 이상의 애플리케이션(108)은 예를 들어 직접적으로 및/또는 브라우저(110)를 통해 네트워크(112)에 액세스하도록 구성될 수 있다. 예를 들어, 하나 이상의 애플리케이션은 이메일, 인스턴트 메시지 등과 같은 메시지를 통신하도록 구성될 수 있다. 추가적인 예로서, 애플리케이션(108)은 예컨대, 소셜 네트워크에 액세스하고, 날씨 업데이트를 획득하고, 하나 이상의 웹 서버(114)에 의해 구현되는 북스토어 서비스와 상호작용하고, 워드 프로세싱을 지원하며, 스프레드시트 기능을 제공하고, 프레젠테이션의 생성 및 출력을 지원하도록 구성될 수 있다.
따라서, 애플리케이션(108)은 또한 직접적인 또는 간접적인 네트워크(112) 액세스를 포함할 수 있는 다양한 기능을 위해 구성될 수 있다. 예를 들어, 애플리케이션(108)은 이 애플리케이션(108)에 의해 로컬로 이용될 수 있고 또 다른 컴퓨팅 장치에서 실행되는 애플리케이션과 동기화될 수 있는 구성 설정 및 다른 데이터를 포함할 수 있다. 이러한 방식으로, 이들 설정은 장치들에 의해 공유될 수 있다. 다양한 다른 예들도 고려된다. 따라서, 컴퓨팅 장치(102)는 서로 다른 다양한 소스로부터 다양한 방법으로 콘텐츠와 상호 작용할 수 있다.
웹 브라우저와는 별개이고 독립적인 설치된 애플리케이션(들)(110)은 주기적으로 웹에 대한 액세스를 가질 수 있고 온라인 및 오프라인에서 사용될 수 있는 애플리케이션 기능을 나타낸다. 설치된 애플리케이션은 일반적으로 로컬 클라이언트 머신으로부터 떨어져 실행되는데 이 로컬 클라이언트 머신은 웹 애플리케이션에 대한 근원지 사이트의 역할을 한다. 로컬 클라이언트 머신이 웹에 연결될 때 설치된 애플리케이션은 업데이트될 수 있다. 본 문서의 맥락에서, 설치된 애플리케이션은 자신의 환경에서 실행되고 웹 브라우저에 의존하지 않거나 또는 그 웹 브라우저에서 실행되지 않는 독립형 애플리케이션으로서 간주될 수 있다. 적어도 일부 경우에서, 설치된 애플리케이션은 컴퓨팅 장치(102)에서 애플리케이션으로서 설치되고 실행 가능한 프로그램 코드 또는 소프트웨어를 호스팅하는 전용 애플리케이션 내에서 렌더링되는 웹 페이지로서 간주될 수 있다. 설치된 애플리케이션의 한 특정 유형은 Metro 스타일 애플리케이션, 즉 앱이다. 이러한 애플리케이션은 자바 스크립트를 사용할 수 있으며, 앞서 언급한 HTML, CSS, 자바 스크립트 및 기타를 비롯한 웹의 기술로 구축될 수 있다. 웹 사이트와는 달리, 자바 스크립트를 사용하는 Metro 스타일 앱은 웹 서버로부터 페이지 단위로 전개되지 않으며, 그 보다 소프트웨어 패키지로서, 실행에 앞서, 그들의 시스템에서 로컬로 사용자에 의해 설치된다.
또한, 컴퓨팅 장치(102)는 설치된 애플리케이션 저장소(118)를 포함하고, 이 저장소(118)는 이하에서 명확해지는 바와 같이 컴퓨팅 장치(102)가 온라인일 경우, 로컬 애플리케이션 캐시(120)를 자동으로 업데이트하기 위해 원격 애플리케이션 콘텐츠와 연계하여 사용될 수 있는 업데이트 모듈(116) 및 로컬 애플리케이션 캐시(120)를 포함한다. 애플리케이션 캐시(120)는 예를 들어, 설치된 애플리케이션(110)과 연계하여 사용되는 리소스의 생성 및 디스플레이에 관련되는 오디오, 비디오, 스타일 시트, 스크립트, 이미지, HTML 데이터 등과 같은, 웹 사이트로부터 얻어진 데이터, 예컨대 리소스를 저장하는데 사용될 수 있는 하나 이상의 캐시를 나타낸다. 하나 이상의 실시예에서, 애플리케이션 캐시(120)는 해당 데이터의 소스가 이용가능하지 않는 경우에도, 예를 들어 데이터를 제공한 웹 서버(114)가 오프라인이고, 네트워크가 연결되어 있지 않은 경우 등에서도 액세스될 수 있다. 이와 같이, 설치된 애플리케이션(110)은 콘텐츠 및 리소스가 네트워크 연결을 통해 획득된 것처럼 컴퓨팅 장치(102)에 로컬로 저장된 콘텐츠 및 리소스를 이용할 수 있어, 원활한 사용자 경험을 제공할 수 있다.
일반적으로, 본 명세서에서 기술된 임의의 기능은 소프트웨어, 펌웨어, 하드웨어(예를 들면, 고정된 로직 회로), 또는 이들 구현의 조합을 이용하여 구현될 수있다. 본 명세서에서 사용되는 "모듈", "기능" 및 "로직"이라는 용어는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 소프트웨어 구현의 경우, 모듈, 기능, 또는 로직은 프로세서(예를 들어, CPU 또는 CPU들)상에서 실행될 때 특정 태스크를 수행하는 프로그램 코드를 나타낸다. 프로그램 코드는 하나 이상의 컴퓨터 판독가능 메모리 장치에 저장될 수 있다. 아래에 설명된 기술의 특징은 기술들이 다양한 프로세서를 갖는 다양한 상업용 컴퓨팅 다양한 플랫폼상에서 구현될 수 있음을 의미하는 플랫폼 독립적이다.
예를 들면, 컴퓨팅 장치(102)는 또한 컴퓨팅 장치(102)의 하드웨어 또는 가상 머신으로 하여금 동작들, 예를 들어, 프로세스, 기능 블록 등을 수행하게 하는 엔티티(예를 들어, 소프트웨어)를 포함할 수 있다. 예를 들어, 컴퓨팅 장치(102)는 컴퓨팅 장치, 특히 운영 체제 및 컴퓨팅 장치(102)의 관련 하드웨어가 동작들을 수행하게 하는 명령어들을 유지하도록 구성될 수 있는 컴퓨터 판독가능 매체를 포함할 수 있다. 따라서, 명령어들은 동작들을 수행하도록 운영 체제 및 관련 하드웨어를 구성하고 이러한 방식으로 기능을 수행하도록 하는 운영 체제 및 관련 하드웨어의 변환을 야기하는 기능을 한다. 명령어들은 컴퓨터 판독 가능 매체에 의해 다른 다양한 구성을 통해 컴퓨팅 장치(102)에 제공될 수 있다.
컴퓨터 판독 가능 매체의 하나의 이러한 구성은 신호 전달 매체이며, 따라서 예를 들어 네트워크를 통해 같은 컴퓨팅 장치로 (예를 들어, 반송파로서) 명령어들을 송신하도록 구성된다. 컴퓨터 판독가능 매체는 또한 컴퓨터 판독가능 저장 매체로 구성될 수 있고, 따라서 신호 전달 매체는 아니다. 컴퓨터 판독가능 저장 매체의 예는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 광 디스크, 플래시 메모리, 하드 디스크 메모리, 및 명령어들 및 다른 데이터를 저장하기 위해 자기, 광학 및 기타 기법을 사용할 수 있는 다른 메모리 장치를 포함한다.
본 명세서에서 기술된 기법이 동작될 수 있는 예시적인 환경이 설명되었으며, 이제 본 명세서에서 설명된 원리들을 이용할 수 있는 몇몇 예시적인 실시예들에 대해 설명한다.
예시적인 실시예
도 2는 도 1의 몇몇 컴포넌트를 이하의 설명과 연계하여 일반적으로 참조번호(200)로 나타낸다.
하나 이상의 실시예들에서, 설치된 애플리케이션(110)은 애플리케이션 캐시(115)를 이용하고, 보다 구체적으로는, 웹에 상주하고 설치된 애플리케이션이 온라인뿐만 아니라 오프라인으로도 콘텐츠를 디스플레이하는데 사용하게 될 리소스 세트를 정의하기 위해 네트워크(112)를 통해 액세스가능한 애플리케이션 캐시 매니페스트 파일(115a)을 이용한다. 하나 이상의 실시예에서, 이들 리소스는 처음으로 애플리케이션이 사용되거나 애플리케이션 매니페스트가 서버에서 업데이트될 때 다운로드되고, 나중에 사용하기 위해 로컬 애플리케이션 캐시(120)에 캐싱된다. 특정 구현에서, 애플리케이션 캐시(115)는 W3C HTML5 애플리케이션 캐시에 부합하도록 구현된다. 그러나, 청구 대상의 사상 및 범위를 벗어나지 않으면서 다른 캐시 구현이 이용될 수 있다는 것이 이해된다.
이 예에서, 설치가능 프로그램(110)이 설치되고, 리소스가 다운로드되고 캐싱되고, 그 다음으로 설치된 애플리케이션이 이용되고 이 설치된 애플리케이션이 리소스를 사용하고자 하면, 매니페스트 파일 내의 지정된 리소스가 컴퓨팅 장치(102) 상의 애플리케이션 캐시(120)으로부터 제공되고, 온라인 접속을 가정하면, 업데이트 모듈(116)은 새로운 리소스를 액세스 및 검색하기 위해 매니페스트 파일(115a)이 업데이트되었는지 여부를 확인할 것이다.
예를 들어, 이후에 개발자가 설치된 애플리케이션(110) 및 매니페스트 파일(115a)에 의해 사용되는 리소스를 업데이트하는 경우를 가정하면, 설치된 애플리케이션(110)은 업데이트 모듈(116)을 통해 해당 리소스를 다운로드 하여 설치 이후 첫 실행시에 즉시 사용되도록 하거나 또는 애플리케이션이 시작 또는 재로딩되는 다음 번에 사용되도록 한다. 이후, 최종 사용자가 설치된 애플리케이션을 액세스하는 경우, 새로운 리소스는 애플리케이션 캐시(120)로부터 사용될 것이다. 이것은 설치된 애플리케이션(110)이 애플리케이션을 업그레이드할 필요없이 새로운 리소스(예를 들어, 이미지, 소리, 비디오 등)를 오프라인으로 디스플레이 및 조작할 수 있도록 해준다. 또한, 사용자는 설치된 애플리케이션을 업그레이드할 필요가 없고, 몇몇 경우 프로세스에 관여하지 않을 수 있다.
또한, 적어도 몇몇 실시 예에서, 설치가능 프로그램의 설치 동안, 애플리케이션 캐시 매니페스트 파일(115a)은 제1 애플리케이션 실행 동안 처리되는 웹 콘텐츠의 다운로드를 가능하게 하는 메커니즘으로서 작용할 수 있다. 이것은 개발자가 그들의 설치가능 애플리케이션에 대한 일 유형의 구성 도구로서 애플리케이션 캐시 매니페스트 파일(115a)을 사용할 수 있게 해준다.
이제 하나 이상의 실시예에 따른 예시적인 프로세스를 나타내는 일반적으로 참조번호(300)로 도시된 도 3에 대한 특정 구현 예를 고려한다.
이 예에서, 별개이나 서로 관련 있는 두 개의 프로세스, 즉 애플리케이션 배치 프로세스(302) 및 애플리케이션 실행 프로세스(304)가 있다. 이들 프로세스는 컴퓨터 판독가능 매체와 같은 소정 유형의 컴퓨터 판독가능 매체에 상에 상주하는 소프트웨어로 구현될 수 있다. 예시 및 기술된 예에서, 각 설치가능 애플리케이션은 대응하는 애플리케이션 패키지(306)를 갖는다. 애플리케이션 패키지(306)는 애플리케이션 매니페스트(308)를 포함하고 설치가능 애플리케이션을 포함하는 마크업 문서, 예를 들어 웹 페이지(310)를 참조한다. 웹 애플리케이션 매니페스트(308)는 제한이 아닌 예로서 원격 애플리케이션 캐시 매니페스트 파일(115a)(도 1)의 위치를 가리키는 URI와 같은 리소스 식별자를 포함한다. 웹 페이지(310)에 대한 참조는 설치가능 애플리케이션을 포함하는 대응하는 웹 페이지들(예를 들어, 리소스들)의 각각의 위치를 포함한다.
애플리케이션 매니페스트(308) 내의 리소스 식별자에 의해 참조되는 애플리케이션 캐시 매니페스트 파일은 애플리케이션 배치 프로세스(302) 동안 처음 설치될 모든 리소스를 검색하기 위해 이용된다. 따라서, 배치 프로세스 동안, 컴퓨팅 장치는 "1"로 표시된 애플리케이션 패키지(306)를 획득 및 판독한다. 애플리케이션 매니페스트(308)는 "2"로 표시된 설치가능 애플리케이션에 의해 사용되는 모든 리소스 또는 웹 페이지를 프리 페치 또는 다운로드하기 위해 판독 및 이용된다. 이후 이들 리소스는 "3"로 표시된 애플리케이션 캐시(120)에 저장된다. 일단 애플리케이션 캐시(120)에 저장되면, 설치가능 또는 설치된 애플리케이션은 바로 아래에서 설명되는 애플리케이션 실행 프로세스(304) 동안 온라인 및 오프라인 시나리오에서 이용될 수 있다.
애플리케이션 실행 프로세스(304) 동안, 설치된 애플리케이션은 "4" 및 "5"로 표시된 설치된 애플리케이션에 의해 이용되는 로컬 캐싱된 모든 리소스를 검색하기 위해 애플리케이션 캐시(120)를 이용한다. 또한, 네트워크 연결이 있는 경우, 애플리케이션 실행 프로세스(304)는 또한 "6"으로 표시된 업데이트된 애플리케이션 매니페스트(308)의 존재를 체크한다. 이것은 예를 들어, 로컬 애플리케이션 캐시 매니페스트 파일과 연관된 타임스탬프 또는 애플리케이션 캐시의 콘텐츠의 변경을 체크하여, 그것이 원격으로 유지되는 원격 애플리케이션 캐시 매니페스트 파일(115a)(도 1)과 동일한 값을 공유하는지 여부를 확인함으로써 수행될 수 있다. 원격 애플리케이션 캐시 매니페스트 파일의 업데이트 버전이 있는 경우에, 애플리케이션 수행 프로세스(304)는 업데이트된 버전을 다운로드 및 사용하여 "6"으로 표시된 연관된 리소스를 다운로드하여 "4"로 표시된 애플리케이션 캐시(120)에 새로운 버전을 생성한다. 새로 얻어진 이들 리소스는 설치된 애플리케이션의 추가 실행에 사용될 수 있다.
업데이트된 콘텐츠의 다운로드는 개별 리소스 단위로 일어날 수 있다는 것을 이해하고 알아야한다. 개별 리소스는 몇 가지 예를 들면 전체 웹 페이지 또는 개별 웹 페이지 내에 나타내는 리소스를 포함할 수 있다. 이러한 방법으로, 업데이트된 콘텐츠의 다운로드는 완전히 새로운 애플리케이션 패키지를 다운로드할 필요가 없는 방식으로 이루어질 수 있다. 따라서, 이것은 네트워크 대역폭을 보존하고, 콘텐츠의 로컬 수신자의 경우에는 예를 들어 이동 통신사에서 청구된 대역폭의 사용량의 절감을, 그리고 서버 운영자의 경우에는 예컨대 송신 비용 측면에서의 절감을 가져오는데 일조한다.
적어도 일부 실시예에서, 애플리케이션 실행 프로세스(304)는 업데이트 프로세스가 완료되면 애플리케이션에게 알리는 메시지를 설치된 애플리케이션에 보낼 수 있다. 적어도 일부 실시예에서, 애플리케이션은 새로운 정보를 사용자에게 알릴 수 있고, 새로 업데이트된 캐시 내의 새로운 코드 및 사용자 인터페이스 요소로 전환할 수 있다. 전환이 완료되면, 설치된 애플리케이션은 다운로드된 새로운 리소스를 자동으로 이용할 수 있다. 적어도 일부 실시예에서, 이것은 사용자가 예를 들어 애플리케이션 스토어를 통해 대응하는 애플리케이션을 업데이트하기 위해 원격 위치로 물리적으로 반드시 이동해야 할 필요없이 설치된 애플리케이션 및 해당 리소스의 최신 버전과 상호작용할 수 있게 해준다. 즉, 사용자는 업데이트 프로세스에 전혀 관여할 필요가 없다. 오히려, 업데이트 프로세스는 은밀히 자동으로 수행되고, 대다수의 경우, 위에서 언급한 바와 같이, 새롭게 다운로드된, 업데이트된 리소스 또는 사용자 인터페이스의 지각가능 요소의 존재를 통지받을 때까지 또는 사용자 기능이 변경될 때까지 사용자에게 알려지지 않는다. 이것은 설치된 애플리케이션이 최신 콘텐츠에 액세스할 수 있고 이러한 콘텐츠가 오프라인 시나리오에서 소비될 수 있도록 함으로써 설치된 애플리케이션이 웹 사이트처럼 더 행동하게 할 수 있다.
전술한 바와 같이, 다운로드될 리소스의 유형과 관련하여, 이러한 리소스의 유형은 제한이 아닌 예로서, 당업자라면 알 수 있는 바와 같이 설치된 애플리케이션에 의해 일반적으로 사용되는 임의의 적합한 유형의 매체(예를 들면, 시청각 파일) 또는 다른 리소스를 포함할 수 있다. 적어도 일부 실시예에서, 다운로드된 리소스의 유형은 다양한 이유로, 예를 들어 보안상의 이유로 제한될 수 있다. 예를 들어, 자바스크립트와 같은 실행 스크립트를 포함하는 리소스는 반드시 다운로드될 필요는 없다.
전술한 바와 같은 예시적인 실시예를 설명하였으며, 이제 하나 이상의 실시예에 따른 예시적인 방법이 설명된다.
예시적인 방법
도 4는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합과 연계하여 구현될 수 있다. 적어도 일부 실시예에서, 이 방법은 컴퓨터 판독가능 저장 매체의 형태에 상주하는 소프트웨어로 구현된다.
단계(400)는 애플리케이션 설치를 시작한다. 이 단계는 임의의 적합한 방식으로 수행될 수 있다. 예를 들어, 사용자는 애플리케이션과 연관된 특정 웹 사이트로 이동하고, "설치" 링크를 클릭함으로써 애플리케이션 설치 프로세스가 시작될 수 있게 한다. 대안적으로 또는 부가적으로, 애플리케이션은 애플리케이션 스토어로부터 설치될 수 있다. 예시 및 설명된 실시예에서, 애플리케이션이 설치되는 경우, 원격 애플리케이션 캐쉬, 예를 들어 애플리케이션 캐시(115)(도 1)가 액세스되고 애플리케이션 캐시 매니페스트가 이용되어 다운로드될 관련 리소스를 확인함으로써 리소스는 온라인 및 오프라인 시나리오 모두에서 이용될 수 있다. 따라서, 애플리케이션 매니페스트 캐시를 액세스한 경우, 단계(402)는 설치된 애플리케이션과 연관된 리소스를 다운로드한다. 리소스를 다운로드함으로써, 설치된 애플리케이션은 설치 절차 후 즉시 오프라인으로 사용될 수 있다. 적어도 일부 실시예에서, 이 단계는 표준 W3C HTML5 애플리케이션 캐시 구현을 사용하여 수행될 수 있다. 구체적으로는, 애플리케이션 캐시 매니페스트 내부에, HTML5 애플리케이션 캐시 매니페스트의 URI를 포함하는 섹션이 있다. 이는 도 3에서 맨 위의 HTML 발췌부분에 표시되어 있다. 배치하는 동안, 설치 메커니즘은 이 섹션을 찾고 HTML5 애플리케이션 캐시 매니페스트의 콘텐츠를 사용하여 모든 리소스를 프리 페치한다. 설치 메카니즘은 로컬 애플리케이션 캐시 저장소를 생성하고 전술한 바와 같이, 이러한 저장소에 리소스를 저장한다. 대안적으로, 몇몇 구현예는 설치된 애플리케이션의 시작 페이지로부터 HTML5 애플리케이션 캐시 URI를 검색하고 도 3의 최하부에 있는 HTML 발췌부분에 나타낸 바와 동일한 프로세스를 수행하는 배치 메카니즘을 가질 수 있다.
단계(404)는 설치된 애플리케이션을 실행한다. 설치된 애플리케이션이 실행되면, 그것은 설치된 애플리케이션에 의해 이용될 모든 리소스를 검색하기 위해 로컬 애플리케이션 캐시를 활용한다. 또한, 네트워크 연결이 있는 경우, 단계(406)는 업데이트된 애플리케이션 캐시 매니페스트의 존재를 확인할 것이다. 단계(408)에서, 매니페스트 업데이트가 없으면, 단계(410)는 이전에 다운로드된 로컬 리소스를 사용하여 설치된 애플리케이션을 실행한다. 반면에, 업데이트된 매니페스트가있는 경우, 단계(412)는 애플리케이션이 실행되는 동안 업데이트된 리소스를 다운로드한다. 적어도 일부 실시예에서, 이 단계는 HTML 태그 속성에서 URI가 가리키는 매니페스트 콘텐츠가 변경되었는지를 확인하기 위해 HTML5 애플리케이션 캐시 기능을 사용하여 적어도 부분적으로 수행될 수 있다. 예시적인 HTML 태그 속성은 위에서 제공된다.
단계(414)는 다운로드된 리소스를 사용하여 설치된 애플리케이션을 실행한다. 하나 이상의 실시예에서, 이것은 제한이 아닌 예로서 애플리케이션 캐시의 새로운 버전을 생성하고 프로세스가 완료되면 설치된 애플리케이션에게 알리는 메시지를 설치된 애플리케이션에 전송하는 것을 포함할 수 있다. 이어서, 적어도 몇몇 실시예에서, 애플리케이션은 이 새로운 정보를 사용자에게 알릴 수 있고, 리소스로 전환할 수 있다. 전환이 완료되면, 사용자는 설치된 애플리케이션에 새로운 리소스를 자동으로 이용할 수 있다. 이것은 전술한 바와 같이 사용자가 경험의 어떤 부분도 잃어버리지 않고 설치된 애플리케이션을 온라인 또는 오프라인으로 실행할 수 있도록 해준다. 또한, 전술한 바와 같이, 이러한 프로세스는 애플리케이션 스토어로부터의 업데이트를 설치할 것을 사용자에게 요구하지 않고 수행될 수 있다. 따라서, 이것은 설치된 애플리케이션이 온라인 및 오프라인 시나리오에서 사용될 수 있는 최신 콘텐츠에 대한 액세스를 가지게 함으로써 이들 설치된 애플리케이션이 보다 웹 사이트처럼 행동할 수 있게 해준다.
하나 이상의 실시예에 따른 예시적인 방법을 설명하였으며, 이제 전술한 실시예들을 구현하는데 이용될 수 있는 예시적인 시스템 및 장치를 설명한다.
예시적인 시스템 및 장치
도 5는 도 1을 참조하여 설명한 바와 같은 컴퓨팅 장치(102)를 포함하는 예시적인 시스템(500)을 도시한다. 예시적인 시스템(500)은 개인용 컴퓨터(PC), 텔레비전 장치, 및/또는 모바일 장치에서 애플리케이션을 실행할 때 원활한 사용자 경험을 제공하기 위한 유비쿼터스 환경을 가능하게 한다. 애플리케이션을 이용하고, 비디오 게임을 하며, 비디오를 시청하는 등 동안, 하나의 장치에서 다음 장치로 전환할 때 서비스 및 애플리케이션은 공통의 사용자 경험에 대한 세 가지 환경에서 실질적으로 유사하게 실행된다.
이 예시적인 시스템(500)에서, 다수의 장치는 중앙 컴퓨팅 장치를 통해 상호 접속된다. 중앙 컴퓨팅 장치는 다수의 장치에 대해 로컬일 수도 있고, 다수의 장치들로부터 원격으로 위치될 수 있다. 일 실시예에서, 중앙 컴퓨팅 장치는 네트워크, 인터넷 또는 기타 데이터 통신 링크를 통해 다수의 장치에 연결되어 있는 하나 이상의 서버 컴퓨터의 클라우드일 수 있다. 일 실시예에서, 이러한 상호연결 구조는 기능이 여러 장치의 사용자에게 공통적이고 원활한 경험을 제공하기 위해 다수의 장치에 걸쳐 전달될 수 있도록 해준다. 다수의 장치들 각각은 서로 다른 물리적 요건 및 능력을 가질 수 있고, 중앙 컴퓨팅 장치는 장치에 맞춤화될 수 있고 또한 모든 장치에 공통적일 수 있는 장치로의 경험의 전달을 가능하게 하는 플랫폼을 사용한다. 일 실시 예에서, 타겟 장치들의 클래스가 생성되고 경험은 장치의 일반적인 클래스에 맞춤화된다. 장치의 클래스는 물리적 특성, 용도의 종류, 또는 장치의 다른 일반적인 특성에 의해 정의될 수 있다.
다양한 구현예에서, 컴퓨팅 장치(102)는 예를 들어 컴퓨터(502), 모바일(504), TV(506) 사용을 위해 다양한 다른 구성을 가정할 수 있다. 이러한 구성들 각각은 일반적으로 다른 구조 및 기능을 가질 수 있는 장치를 포함하고, 따라서, 컴퓨팅 장치(102)는 하나 이상의 상이한 장치 클래스에 따라 구성될 수 있다. 예를 들어, 컴퓨팅 장치(102)는 개인용 컴퓨터, 데스크탑 컴퓨터, 멀티 스크린 컴퓨터, 랩톱 컴퓨터, 노트북 등을 포함하는 장치의 컴퓨터(502)의 클래스로서 구현될 수 있다. 이들 다른 구성의 각각은, 전술한 바와 같은 애플리케이션(108), 설치된 애플리케이션(110), HTML 렌더러(111), 업데이트 모듈(116) 및 애플리케이션 캐시(120)의 포함을 통해 도시된 본 명세서에 기재된 기술을 채용할 수 있다. 도시되고 설명된 실시예에서, 애플리케이션(108) 및 설치된 애플리케이션(110)은 HTML 렌더러(111)의 독립적인 호스트이다.
컴퓨팅 장치(102)는 이동 전화, 휴대용 음악 플레이어, 휴대용 게이밍 장치, 태블릿 컴퓨터, 멀티 스크린 컴퓨터 등의 모바일 기기를 포함하는 모바일(504) 클래스의 장치로서 구현될 수 있다. 컴퓨팅 장치(102)는 또한 평소의 시청 환경에서 일반적으로 보다 큰 스크린를 갖는 또는 그에 접속된 텔레비전(506) 클래스의 장치로서 구현될 수 있다. 이러한 장치는 텔레비전, 셋톱 박스, 게임 콘솔 등을 포함한다. 본원에 설명된 기술은 컴퓨팅 장치(102)의 이러한 다양한 구성에 의해 지원될 수 있으며, 본 명세서에서 설명된 기술의 특정 실시 예에 국한되지 않는다.
클라우드(508)는 콘텐츠 서비스(512)의 플랫폼(510)을 포함하고 및/또는 그를 나타낸다. 플랫폼(510)은 하드웨어(예를 들어, 서버)의 기본 기능 및 클라우드(508)의 소프트웨어 리소스를 추상화한다. 콘텐츠 서비스(512)는 컴퓨팅 장치(102)로부터 원격인 서버 상에서 컴퓨터 프로세싱이 실행되는 동안 이용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 콘텐츠 서비스(512)는 셀룰러 또는 Wi-Fi 네트워크와 같은 인터넷 및/또는 가입자 네트워크를 통해 서비스로서 제공될 수 있다.
플랫폼(510)은 컴퓨팅 장치(102)를 다른 컴퓨팅 장치와 연결하기 위한 리소스 및 기능을 추상화할 수 있다. 플랫폼(510)은 또한 플랫폼(510)을 통해 구현되는 콘텐츠 서비스(512)에 대한 발생한 수요에 대해 대응하는 스케일의 수준을 제공하기 위해 리소스의 스케일링을 추상화하는 기능을 할 수 있다. 따라서, 상호연결된 장치의 실시예에서, 본원에 설명된 기능의 구현은 시스템(500)을 통해 분산될 수 있다. 예를 들어, 기능은 컴퓨팅 장치(102)상에서 뿐만 아니라 클라우드(508)의 기능을 추상화하는 플랫폼(510)을 통해 부분적으로 구현될 수 있다.
도 6은 본 명세서에 기재된 기술의 실시예를 구현하기 위해 도 1, 도 2 및 도 5을 참조하여 설명한 바와 같은 임의의 유형의 컴퓨팅 장치로 구현될 수 있는 예시적인 장치(600)의 다양한 컴포넌트를 도시한다. 장치(600)는 장치 데이터(604)(예를 들면, 수신된 데이터, 수신되는 데이터, 방송 예정된 데이터, 데이터의 데이터 패킷 등)의 유선 및/또는 무선 통신을 가능하게 하는 통신 장치(602)를 포함한다. 장치 데이터(604) 또는 다른 장치의 콘텐츠는 장치의 구성 설정, 장치에 저장된 미디어 콘텐츠, 및/또는 장치의 사용자와 연관된 정보를 포함할 수 있다. 장치(600)에 저장된 미디어 콘텐츠는 임의의 유형의 오디오, 비디오 및/또는 이미지 데이터를 포함할 수 있다. 장치(600)는 하나의 이상의 데이터 입력(606)을 포함하고, 이 입력(606)을 통해 임의의 유형의 데이터, 미디어 콘텐츠, 및/또는 입력, 예를 들어 사용자 선택가능 입력, 메시지, 음악, 텔레비전 미디어 콘텐츠, 녹화된 비디오의 콘텐츠, 및 임의의 콘텐츠 및/또는 데이터 소스로부터 수신된 임의의 다른 유형의 오디오, 비디오, 및/또는 이미지 데이터가 수신될 수 있다.
장치(600)는 또한 직렬 및/또는 병렬 인터페이스, 무선 인터페이스, 임의의 유형의 네트워크 인터페이스, 모뎀 중 하나 이상으로서 구현될 수 있고, 또한 임의의 다른 유형의 통신 인터페이스로서 구현될 수 있는 통신 인터페이스(608)를 포함한다. 이 통신 인터페이스(608)는 장치(600)와 통신 네트워크 간의 접속 및/또는 통신 링크를 제공하며, 이 링크를 통해 다른 전자, 컴퓨팅 및 통신 장치들은 장치 (600)와 데이터를 통신한다.
장치(600)는 다양한 컴퓨터 실행가능 명령어들을 실행하여 장치(600)의 동작을 제어하고 본 명세서에 기재된 기술의 실시예들을 구현하는 하나 이상의 프로세서(610)(예를 들어, 마이크로 프로세서, 제어기 등 중 임의의 것)를 포함한다. 대안적으로 또는 부가적으로, 장치(600)는 일반적으로 참조번호(612)로 식별된 프로세싱 및 제어 회로들과 연계하여 구현되는 하드웨어, 펌웨어, 또는 고정된 논리 회로의 임의의 하나 또는 조합으로 구현될 수 있다. 도시되어 있지 않지만, 장치(600)는 장치 내의 다양한 컴포넌트들을 결합하는 시스템 버스 또는 데이터 전송 시스템을 포함할 수 있다. 시스템 버스는 메모리 버스 또는 메모리 제어기, 주변 버스, 범용 직렬 버스, 및/또는 임의의 다양한 버스 구조를 이용하는 프로세서 또는 로컬 버스와 같은 다른 버스 구조들 중 어느 하나 또는 조합을 포함할 수 있다.
장치(600)는 또한 하나 이상의 메모리 컴포넌트와 같은 컴퓨터 판독가능 매체(614)를 포함하고, 이에 대한 예는 랜덤 액세스 메모리(RAM), 비 휘발성 메모리(예를 들면, 판독 전용의 메모리(ROM), 플래시 메모리, EPROM, EEPROM 등 중 임의의 하나 이상), 및 디스크 저장 장치를 포함한다. 디스크 저장 장치는 하드 디스크 드라이브, 기록가능 및/또는 재기록 가능 콤팩트 디스크(CD), 임의의 유형의 디지털 다기능 디스크(DVD) 등과 같은 임의의 유형의 자기 또는 광 저장 장치로서 구현될 수 있다. 장치(600)는 또한 대용량 저장 미디어 장치(616)를 포함할 수 있다.
컴퓨터 판독가능 매체(614)는 장치 데이터(604)뿐만 아니라, 다양한 장치 애플리케이션(618) 및 장치(600)의 동작 양태에 관련된 임의의 다른 유형의 정보 및/또는 데이터를 저장하는 데이터 저장 메커니즘을 제공한다. 예를 들어, 운영 체제(620)는 컴퓨터 판독가능 매체(614)를 통해 컴퓨터 애플리케이션으로서 유지될 수 있고 프로세서(610)에서 실행될 수 있다. 장치 애플리케이션(618)은 장치 관리자(예를 들어, 제어 애플리케이션, 소프트웨어 애플리케이션, 신호 처리 및 제어 모듈, 특정 장치에 고유한 코드, 특정 장치에 대한 하드웨어 추상화 계층 등)를 포함한다. 장치 애플리케이션(618)은 또한 본 명세서에 기재된 기술의 실시예를 구현하기 위한 임의의 시스템 컴포넌트 또는 모듈을 포함한다. 이 예에서, 장치 애플리케이션(618)은 소프트웨어 모듈 및/또는 컴퓨터 애플리케이션으로서 도시되어 있는 인터페이스 애플리케이션(622) 및 입력/출력 모듈(624)을 포함한다. 입력/출력 모듈(624)은 입력을 캡처하도록 구성된 장치, 예를 들어 터치 스크린, 트랙 패드, 카메라, 마이크 등과의 인터페이스를 제공하는 데 사용되는 소프트웨어를 나타낸다. 대안적으로 또는 부가적으로, 인터페이스 애플리케이션(622) 및 입력/출력 모듈(624)은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로서 구현될 수 있다. 또한, 입력/출력 모듈(624)은 비주얼 입력 및 오디오 입력을 각각 캡처하기 위한 별도의 장치와 같은 다수의 입력 장치를 지원하도록 구성될 수 있다.
장치(600)는 오디오 데이터를 오디오 시스템(628)에 제공하고 비디오 데이터를 디스플레이 시스템(630)에 제공하는 오디오 및/또는 비디오 입출력 시스템(626)을 포함한다. 오디오 시스템(628)은 오디오, 비디오 및 이미지 데이터를 처리, 디스플레이, 및/또는 렌더링하는 임의의 장치를 포함할 수 있다. 비디오 신호 및 오디오 신호는 RF (무선 주파수) 링크, S-비디오 링크, 복합 비디오 링크, 컴포넌트 비디오 링크, DVI (디지털 비디오 인터페이스), 아날로그 오디오 연결, 또는 다른 유사한 통신 링크를 통해 장치(600)로부터 오디오 장치 및/또는 디스플레이 장치로 통신될 수 있다. 일 실시예에서, 오디오 시스템(628) 및/또는 디스플레이 시스템(630)은 장치(600)에 대한 외부 컴포넌트들로서 구현될 수 있다. 이와 달리, 오디오 시스템(628) 및/또는 디스플레이 시스템(630)은 예시적인 장치(600)의 통합된 컴포넌트들로 구현된다.
결론
다양한 실시예는 설치된 애플리케이션이 로컬 클라이언트 머신 상에 배치된 후 오프라인으로 업데이트될 및 이용가능한 다양한 리소스를 정의하기 위해, 로컬 클라이언트 머신 상에 이용될 수 있는 설치된 애플리케이션이 웹 상에 원격으로 상주하는 애플리케이션 캐시 매니페스트를 이용할 수 있도록 해준다. 매니페스트 파일의 콘텐츠가 웹 상에서 업데이트될 때마다, 설치된 애플리케이션은 자동으로 그의 로컬 애플리케이션 캐시 리소스를 업데이트하여 설치된 애플리케이션이 해당 리소스를 오프라인으로 사용할 수 있게 한다. 이러한 것은 애플리케이션의 새로운 업데이트를 설치할 필요없이 또는 사용자가 업데이트된 콘텐츠를 얻기 위한 위치로 이동하게 하지 않아도 이루어진다.
본 발명은 구조적 특징 및/또는 방법론적 동작에 특정한 언어로 설명되었지만, 첨부된 청구항에 정의된 본 발명은 설명된 특정한 특징 또는 동작에 한정되지 않는 것으로 이해되어야한다. 그보다, 특정 특징 및 동작은 청구된 발명을 구현하기 위한 예시적인 형태로서 개시된다.

Claims (10)

  1. 로컬 컴퓨팅 장치에서 애플리케이션 설치를 시작하는 단계- 상기 애플리케이션은 웹 브라우저 이외의 애플리케이션을 포함함 -와,
    상기 애플리케이션 설치가 시작된 설치된 애플리케이션과 연관된 애플리케이션 매니페스트와 연관된 리소스를 다운로드하는 단계와,
    원격 업데이트된 애플리케이션 캐시 매니페스트의 존재를 확인하는 단계와,
    상기 설치된 애플리케이션을 위해, 업데이트된 리소스를 다운로드하는 단계와,
    다운로드된 리소스를 사용하여 상기 설치된 애플리케이션을 실행하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    리소스를 다운로드하는 단계는 W3C HTML5 애플리케이션 캐시 구현을 사용하는 단계를 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    다운로드하는 단계는 애플리케이션 매니페스트에서 URI에 의해 참조되는 애플리케이션 캐시 매니페스트 파일을 사용하는 단계를 포함하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 리소스는 온라인 및 오프라인 시나리오에서 사용되도록 구성되는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    리소스를 다운로드하는 단계는 하나 이상의 마크업 문서를 다운로드하는 단계를 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    리소스를 다운로드하는 단계는 개개의 마크업 문서를 렌더링하기 위해 이용되는 리소스를 다운로드하는 단계를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 설치된 애플리케이션과 연관된 리소스의 다운로딩과 업데이트된 리소스의 다운로딩은 연관된 사용자가 상기 리소스를 얻기 위한 위치로 이동할 필요없이 수행되는
    컴퓨터 구현 방법.
  8. 시스템을 구현하는 컴퓨터 판독가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 시스템은 실행되는 경우 애플리케이션 배치 프로세스 및 애플리케이션 실행 프로세스를 포함하며,
    상기 애플리케이션 배치 프로세스는
    애플리케이션 매니페스트를 포함하는 설치가능 애플리케이션 패키지 또는 관련 리소스들의 세트를 획득 및 판독하고- 상기 애플리케이션 매니페스트는 연관된 설치가능 애플리케이션에 의해 이용되는 리소스를 다운로드하는데 이용됨 -,
    온라인 및 오프라인 시나리오에서 사용될 수 있도록 다운로드된 리소스를 애플리케이션 캐시에 저장하도록 구성되고,
    상기 애플리케이션 실행 프로세스는
    상기 설치된 애플리케이션에 의해 이용되는 리소스를 검색하기 위해 상기 애플리케이션 캐시를 이용하고,
    원격으로 위치한 업데이트된 애플리케이션 매니페스트를 확인하고,
    상기 업데이트된 애플리케이션 매니페스트를 사용하여 연관된 리소스를 다운로드하고,
    상기 애플리케이션 캐시를 상기 다운로드된 연관된 리소스로 업데이트하며,
    상기 설치된 애플리케이션의 실행을 위해 상기 다운로드된 연관된 리소스의 사용을 인에이블링하도록 구성된
    컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 설치된 애플리케이션은 웹 브라우저 이외의 애플리케이션을 포함하는
    컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서,
    상기 애플리케이션 배치 프로세스 및 상기 애플리케이션 실행 프로세스는 W3C HTML5 애플리케이션 캐시를 사용하도록 구성된
    컴퓨터 판독가능 저장 매체.
KR1020147022883A 2012-02-16 2013-02-13 애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법 KR20140126328A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/398,321 2012-02-16
US13/398,321 US20130219383A1 (en) 2012-02-16 2012-02-16 Using an Application Cache to Update Resources of Installed Applications
PCT/US2013/025795 WO2013122965A1 (en) 2012-02-16 2013-02-13 Using an application cache to update resources of installed applications

Publications (1)

Publication Number Publication Date
KR20140126328A true KR20140126328A (ko) 2014-10-30

Family

ID=48983370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022883A KR20140126328A (ko) 2012-02-16 2013-02-13 애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법

Country Status (6)

Country Link
US (1) US20130219383A1 (ko)
EP (1) EP2815311B1 (ko)
JP (1) JP6253110B2 (ko)
KR (1) KR20140126328A (ko)
CN (1) CN104106048B (ko)
WO (1) WO2013122965A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020626A (ko) * 2018-08-16 2020-02-26 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812451B2 (en) * 2009-03-11 2014-08-19 Microsoft Corporation Programming model for synchronizing browser caches across devices and web services
US9053337B2 (en) 2011-06-07 2015-06-09 Blackberry Limited Methods and devices for controlling access to a computing resource by applications executable on a computing device
US8650550B2 (en) * 2011-06-07 2014-02-11 Blackberry Limited Methods and devices for controlling access to computing resources
US9582603B1 (en) * 2012-02-27 2017-02-28 Amazon Technologies, Inc. Managing preloading of data on client systems
SG194245A1 (en) * 2012-04-17 2013-11-29 ZingMobile Pte Ltd A method for real-time synchronization between a device and host servers
US9489193B2 (en) 2012-05-01 2016-11-08 Sophos Limited Method and system for providing software updates to local machines
US9043469B2 (en) * 2012-06-29 2015-05-26 International Business Machines Corporation Cache control for web application resources
US9736121B2 (en) * 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
US9128792B2 (en) * 2012-09-28 2015-09-08 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9253279B2 (en) * 2012-11-06 2016-02-02 International Business Machines Corporation Preemptive caching of data
US20140228014A1 (en) * 2013-02-12 2014-08-14 Mistral Mfs Oy Method, System and Computer Program for Remotely Configurable Mobile Application
US20140289609A1 (en) * 2013-03-20 2014-09-25 Tencent Technology (Shenzhen) Company Limited Method For Implementing Off-Line Application and Apparatus Therefor
US10195520B1 (en) * 2013-05-14 2019-02-05 Take-Two Interactive Software, Inc. System and method for network gaming architecture
GB2516009A (en) * 2013-07-01 2015-01-14 Muntedhar Sahib Alhakim Automated software deployment management
KR101525519B1 (ko) * 2013-11-21 2015-06-03 (주)판도라티비 Html5를 기반으로 하는 오프라인상에서의 웹브라우징 방법
US9400643B2 (en) 2014-03-03 2016-07-26 Google Inc. Methods and systems for updating components on a computing device
JP6385157B2 (ja) * 2014-04-25 2018-09-05 キヤノン株式会社 情報処理端末、制御方法及びプログラム
US9672026B2 (en) 2014-07-21 2017-06-06 Xiaomi Inc. Light app offline updating method, device and terminal
US9880824B2 (en) 2015-06-05 2018-01-30 Apple Inc. On demand resources
US10447812B2 (en) 2015-06-05 2019-10-15 Apple Inc. On demand resources
CN107666459B (zh) * 2016-07-27 2020-10-16 阿里巴巴(中国)有限公司 应用缓存校验方法和装置以及计算设备
CN108287758A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 一种应用资源管理方法、使用方法及装置
GB2567665B (en) * 2017-10-19 2022-06-22 Arm Ip Ltd Asset update service
CN108600382A (zh) * 2018-04-28 2018-09-28 广州联欣信息科技有限公司 一种在网络离线时app内容缓存的方法和计算机可读存储介质
CN109358873A (zh) * 2018-09-25 2019-02-19 平安普惠企业管理有限公司 一种应用程序更新方法、存储介质和终端设备
EP3754486B1 (en) * 2019-06-20 2024-04-10 BlackBerry Limited Selectively installing applications based on manifest files
CN110377360A (zh) * 2019-07-12 2019-10-25 深圳市酷开网络科技有限公司 webview快速加载的方法、显示终端及计算机可读存储介质
US20220236998A1 (en) * 2021-01-27 2022-07-28 Salesforce.Com, Inc. Systems and methods for bootstrap management

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL121815A (en) * 1997-09-22 2000-09-28 Security 7 Software Ltd Method and system for the identification and the suppression of executable objects
US6182045B1 (en) * 1998-11-02 2001-01-30 Nortel Networks Corporation Universal access to audio maintenance for IVR systems using internet technology
US6968539B1 (en) * 1999-09-30 2005-11-22 International Business Machines Corporation Methods and apparatus for a web application processing system
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
US7275105B2 (en) * 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
US8316361B2 (en) * 2003-01-09 2012-11-20 Hewlett-Packard Development Company, L.P. Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
EP1618482A2 (en) * 2003-05-01 2006-01-25 Long, Jim Network meeting system
US7395534B2 (en) * 2003-05-22 2008-07-01 Microsoft Corporation System and method for progressively installing a software application
US20040237082A1 (en) * 2003-05-22 2004-11-25 Alcazar Mark A. System, method, and API for progressively installing software application
US8271774B1 (en) * 2003-08-11 2012-09-18 Symantec Corporation Circumstantial blocking of incoming network traffic containing code
US20050091107A1 (en) * 2003-10-22 2005-04-28 Scott Blum Media player and access system and method and media player operating system architecture
US8930944B2 (en) * 2003-11-18 2015-01-06 Microsoft Corporation Application model that integrates the web experience with the traditional client application experience
US7353454B2 (en) * 2004-05-21 2008-04-01 International Business Machines Corporation Web based device management and monitoring interface
US20060148462A1 (en) * 2004-10-14 2006-07-06 Xiongwei Zhu Customizable mobile phone using at command
JP4405939B2 (ja) * 2005-05-18 2010-01-27 キヤノン株式会社 画像処理装置とその制御方法および画像処理システム
US7814234B2 (en) * 2006-10-30 2010-10-12 Microsoft Corporation Offline execution of web based applications
US20080313628A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Metrics pack distribution for data reporting tool
US9483255B2 (en) * 2008-03-04 2016-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Application resource updates
US20100318967A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Supplementary deployment actions
US8386718B2 (en) * 2009-11-18 2013-02-26 Research In Motion Limited Method and apparatus for managing application data in a shared cache of a mobile electronic device
EP2383645B1 (en) * 2010-04-30 2015-03-04 BlackBerry Limited Method and device for application installation to multiple memory components
US8800050B2 (en) * 2010-11-09 2014-08-05 Microsoft Corporation Security system for computing resources pre-releases
JP5686046B2 (ja) * 2011-03-31 2015-03-18 富士通株式会社 アプリ提供システム、アプリ提供方法及びアプリ提供プログラム
US10136097B2 (en) * 2012-02-02 2018-11-20 Apple Inc. Digital camera raw image support

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200020626A (ko) * 2018-08-16 2020-02-26 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법

Also Published As

Publication number Publication date
CN104106048B (zh) 2018-07-06
CN104106048A (zh) 2014-10-15
EP2815311A1 (en) 2014-12-24
US20130219383A1 (en) 2013-08-22
JP2015513726A (ja) 2015-05-14
WO2013122965A1 (en) 2013-08-22
JP6253110B2 (ja) 2017-12-27
EP2815311A4 (en) 2015-08-26
EP2815311B1 (en) 2019-03-27

Similar Documents

Publication Publication Date Title
JP6253110B2 (ja) インストールされたアプリケーションのリソースを更新するためのアプリケーションキャッシュの利用
US10110590B2 (en) Live tiles without application-code execution
US9077770B2 (en) Mobile web app infrastructure
US9307007B2 (en) Content pre-render and pre-fetch techniques
KR102354803B1 (ko) 웹 어플리케이션 관리를 위한 사용자 장치 및 그 방법
US20160191627A1 (en) Method and apparatus for execution of applications in a cloud system
EP2919440B1 (en) Advertisement processing method and device
US10282185B2 (en) Method and apparatus for firmware virtualization
WO2019154014A1 (zh) 视频播放方法、装置、存储介质及电子设备
US10037215B2 (en) Method and apparatus for interworking application and web browser
US20140359408A1 (en) Invoking an Application from a Web Page or other Application
US20100161754A1 (en) Method, apparatus and computer program product for providing unrestricted content on a user terminal
CN102426576B (zh) 提高在嵌入式系统上检索数据的速度的方法和嵌入式系统
CN111372115A (zh) 应用程序的访问方法及装置、通讯系统
AU2015376591A1 (en) Desktop sharing method and mobile terminal
JP2021064359A (ja) ウェブページ処理方法、ウェブページ処理装置、電子デバイス、非一時的コンピュータ可読記憶媒体及びコンピュータプログラム
EP3011451A1 (en) Synchronization points for state information
CN104615622A (zh) 打开文件的方法、装置及移动终端
JP5643449B1 (ja) 端末装置に表示画面を表示させるサーバ及び方法
WO2018231869A1 (en) Teaser of an application available for installation
US20130339469A1 (en) Self-replenishing caches
KR101553539B1 (ko) 동적 링크 제공 방법 및 이를 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR20110134593A (ko) 단말의 플랫폼을 이용한 광고 제공 방법 및 시스템

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application