KR20140010402A - 애플리케이션 저장 애플리케이션의 필터링 및 프로모션 - Google Patents

애플리케이션 저장 애플리케이션의 필터링 및 프로모션 Download PDF

Info

Publication number
KR20140010402A
KR20140010402A KR1020137024500A KR20137024500A KR20140010402A KR 20140010402 A KR20140010402 A KR 20140010402A KR 1020137024500 A KR1020137024500 A KR 1020137024500A KR 20137024500 A KR20137024500 A KR 20137024500A KR 20140010402 A KR20140010402 A KR 20140010402A
Authority
KR
South Korea
Prior art keywords
application
client device
system information
client
information
Prior art date
Application number
KR1020137024500A
Other languages
English (en)
Other versions
KR101961965B1 (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 마이크로소프트 코포레이션
Publication of KR20140010402A publication Critical patent/KR20140010402A/ko
Application granted granted Critical
Publication of KR101961965B1 publication Critical patent/KR101961965B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0603Catalogue ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

클라이언트 장치에게 필터링된 애플리케이션 정보 및/또는 애플리케이션 프로모션(promotion)을 제공하는데 사용될 수 있는 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하기 위한 기술이 설명된다. 필터링 및 프로모션은 클라이언트 장치의 구성 및 성능을 설명하는 시스템 정보에 적어도 부분적으로 기초할 수 있다. 하나 이상의 실시예에서, 클라이언트 장치에 대한 다양한 시스템 정보가 검출된다. 검출된 클라이언트 장치에 대한 시스템 정보는 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는데 사용된다. 애플리케이션 카탈로그와의 상호작용을 위해 클라이언트 장치에 제공될 페이지 정보는 이후에 필터링된 애플리케이션 데이터를 사용하여 확인된다. 페이지 정보는 클라이언트 장치가 필터링된 애플리케이션 정보 및/또는 검출된 시스템 정보에 기초하여 선택된 프로모션 내용을 가진 타깃 애플리케이션 저장 페이지를 렌더링하는 것을 가능하게 하기에 충분하다.

Description

애플리케이션 저장 애플리케이션의 필터링 및 프로모션{FILTERING AND PROMOTING APPLICATION STORE APPLICATIONS}
타블릿 장치, 랩톱, 모바일 폰, 데스크톱 컴퓨터 등을 포함하는 다양한 컴퓨팅 장치의 사용자에게 이용가능한 애플리케이션 콘텐츠의 양이 점점 증가하고 있다. 그러나, 사용자가 이용할 수 있는 많은 양의 애플리케이션 선택권은 사용자로 하여금 관련 있고 관심이 있는 애플리케이션을 찾는 것을 어렵게 할 수 있다. 제한된 시간을 갖는 사용자는 많은 애플리케이션 중에서 검색을 하는데 많은 시간을 소모하는 것을 원하지 않을 수 있고 이에 따라 자신의 장치를 위한 "최적의" 애플리케이션 중 일부를 전혀 발견할 수 없을 수 있으며, 이는 전체 사용자 경험을 손상시키고 애플리케이션 개발자를 위한 기회를 제한한다. 애플리케이션에 대한 제삼자 추천 및 인기있는 애플리케이션 목록이 관련 애플리케이션을 찾는 사용자를 보조하는데 사용되어 왔다. 그러나, 이러한 추천 목록은 애플리케이션 콘텐트의 양이 증가함에 따라 급증하였고, 사용자가 탐색하기에 매우 부담스러울 수 있다.
본 요약은 상세한 설명에서 이하에 추가로 설명되는 선택 개념을 간략한 형태로 소개하고자 제공된다. 본 요약은 청구된 발명의 대상의 핵심 특징 또는 주요 특징을 밝히기 위한 것이 아니며, 청구된 발명의 대상의 범위를 제한하는데 사용하려는 것도 아니다.
클라이언트 장치에게 필터링된 애플리케이션 정보 및/또는 애플리케이션 프로모션(promotion)을 제공하기 위해 사용될 수 있는 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하기 위한 기술이 설명된다. 필터링 및 프로모션은 클라이언트 장치의 구성 및 성능을 기술하는 시스템 정보에 적어도 부분적으로 기초할 수 있다. 하나 이상의 실시예에서, 클라이언트 장치에 대한 다양한 시스템 정보가 검출된다. 검출된, 클라이언트 장치에 대한 시스템 정보는 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는데 사용된다. 애플리케이션 카탈로그와의 상호작용을 위해 클라이언트 장치에 제공될 페이지 정보가 이후에 필터링된 애플리케이션 데이터를 사용하여 확인된다. 페이지 정보는 클라이언트 장치가, 필터링된 애플리케이션 정보 및/또는 검출된 시스템 정보에 기초하여 선택된 프로모션 내용을 가진 타깃 애플리케이션 저장 페이지를 렌더링하는 것을 가능하게 하기에 충분하다.
도면 전체에서 동일한 특징을 언급하는데 동일한 번호가 사용된다.
도 1은 하나 이상의 실시예에 따라 본 명세서에 설명된 다양한 원리가 사용될 수 있는 운영 환경을 도시한다.
도 2는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 3은 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 4는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다.
도 5는 하나 이상의 실시예에 따른 예시적인 사용자 인터페이스이다.
도 6은 하나 이상의 실시예를 구현하는데 사용될 수 있는 예시적인 컴퓨팅 시스템을 도시한다.
개관
클라이언트 장치에게, 필터링된 애플리케이션 정보 및/또는 애플리케이션 프로모션 내용을 제공하는데 사용될 수 있는 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하는 기술이 설명된다. 필터링 및 프로모션은 클라이언트 장치의 구성 및 성능을 설명하는 시스템 정보에 적어도 부분적으로 기초할 수 있다. 하나 이상의 실시예에서, 클라이언트 장치에 대한 다양한 시스템 정보가 검출된다. 검출된 클라이언트 장치에 대한 시스템 정보는 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는데 사용된다. 애플리케이션 카탈로그와의 상호작용을 위해 클라이언트 장치에 제공될 페이지 정보가 이후에 필터링된 애플리케이션 데이터를 사용하여 확인된다. 페이지 정보는 클라이언트 장치가, 필터링된 애플리케이션 정보 및/또는 검출된 시스템 정보에 기초하여 선택된 프로모션 내용을 가진 타깃 애플리케이션 저장 페이지를 렌더링하는 것을 가능하게 하기에 충분하다.
다음의 논의에서, "운영 환경"이라는 제목의 섹션이 제공되고 하나 이상의 실시예가 이용할 수 있는 하나의 환경이 설명된다. 이에 뒤이어, "예시적인 방법"이라는 제목의 섹션은 하나 이상의 실시예에 따라 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하는 예시적인 기술을 설명한다. 다음으로, "예시적인 사용자 인터페이스"라는 제목의 섹션은 하나 이상의 실시예에 따른 예시적인 사용자 인터페이스를 설명한다. 마지막으로, "예시적인 시스템"이라는 제목의 섹션은 하나 이상의 실시예를 구현하는데 사용될 수 있는 예시적인 컴퓨팅 시스템 및 장치를 설명한다.
운영 환경
도 1은 일반적으로 하나 이상의 실시예에 따른 운영 환경(100)을 도시한다. 운영환경(100)은 하나 이상의 프로세서(104), 하나 이상의 컴퓨터-판독가능 매체(106) 및 컴퓨터-판독가능 매체에 상주하고 프로세서(들)에 의해 실행될 수 있는 하나 이상의 애플리케이션(108)을 구비하는 클라이언트(102)를 포함한다. 클라이언트 장치(102)는 예시로서(제한이 아님), 데스크톱 컴퓨터, 휴대용 컴퓨터, 태블릿 컴퓨터, 핸드헬드 컴퓨터(가령, PDA), 휴대폰, 셋톱 박스 등과 같은 임의의 적합한 컴퓨팅 시스템 및/또는 장치로 구현될 수 있다. 클라이언트(102)를 포함하는 다양한 시스템 및/또는 장치를 나타낼 수 있는 컴퓨팅 시스템의 일 예가 도 6에 도시되며 이하에서 설명된다.
컴퓨터-판독가능 매체는 예시로서(제한이 아님), 모든 형태의 휘발성 및 비-휘발성 메모리 및/또는 전형적으로 컴퓨팅 장치와 연관되는 저장 매체를 포함할 수 있다. 이러한 매체는 ROM, RAM, 플래시 메모리, 하드 디스크, 이동식 매체 등을 포함할 수 있다. 컴퓨터-판독가능 매체는 "컴퓨터-판독가능 저장 매체" 및 "통신 매체" (이들의 예는 도 6의 예시적인 컴퓨팅 시스템에 대한 논의에서 찾을 수 있음) 양자를 포함할 수 있다.
또한, 클라이언트(102)는 통신 모듈(110)의 형태의 소프트웨어 애플리케이션을 포함한다. 통신 모듈(110)은 다양한 다른 엔티티(예, 다른 클라이언트, 제공자, 서버, 웹 사이트)와 통신 및 상호작용을 하도록 동작 가능한 클라이언트의 기능을 나타낸다. 예를 들어, 통신 모듈(110)은 웹 브라우저로 구성될 수 있다. 다른 엔티티와의 상호작용은 엔티티들 간에 다양한 형태의 전자 메시지(예, 이메일, 인스턴트 메시지, 텍스트 메시지 등)를 송신 및 수신하는 것, 다른 엔티티로부터 자원(예, 콘텐트 및 서비스)을 획득하는 것, 온라인 애플리케이션 카탈로그 또는 저장소로부터 다양한 애플리케이션(108)을 다운로딩 하는 것 등을 포함할 수 있다.
또한, 클라이언트(102)는 온라인 애플리케이션 데이터베이스, 카탈로그 또는 저장소(예, 애플리케이션 마켓플레이스)에 대한 클라이언트의 액세스를 가능하게 하는 기능을 제시하는 애플리케이션 저장 모듈(이를 통해 다양한 애플리케이션(108)이 클라이언트에게 이용가능하게 될 수 있음)을 포함할 수 있다. 애플리케이션 저장 모듈(111)은 애플리케이션의 데이터베이스에 대한 액세스 및 탐색(navigation), 애플리케이션의 선택 및/또는 구매, 및 애플리케이션의 클라이언트(102)로의 다운로드를 용이하게 하기 위한 다양한 방식으로 구현될 수 있다. 애플리케이션 저장 모듈(111)은 전술한 그리고 이하에 설명된 애플리케이션을 필터링 및 프로모션하기 위한 기술의 측면들을 구현하기 위해 추가로 구성될 수 있다.
애플리케이션 저장 모듈(111)은 독립형 클라이언트 애플리케이션으로서 및/또는 통신 모듈(110)의 컴포넌트로서 구현될 수 있다(예를 들면, 웹 브라우저를 위한 애드-인으로서 구현됨). 또한, 애플리케이션 저장 모듈(111)은 클라이언트(102)가 액세스하고 네트워크에서(예를 들면, "클라우드 에서") 서비스 제공자와 함께 실행하는 웹-호스팅된 애플리케이션으로 구현될 수도 있다. 따라서, 애플리케이션 저장 모듈(111)은 상이한 구성 및 성능을 가질 수 있는 상이한 클라이언트 장치를 위해 다른 방식으로 구현될 수 있다.
예를 들어, 클라이언트(102)는 네트워크(112)(가령, 인터넷)를 통해, 자원이 수신되고 송신될 수 있는 하나 이상의 서비스 제공자(114)와 통신가능하게 연결될 수 있다. 도 1의 예시적인 서비스 제공자(114)는 하나 이상의 프로세서(116) 및 하나 이상의 컴퓨터-판독가능 매체(118)를 구비하는 것으로 각각 도시된다. 서비스 제공자(114)는 하나 이상의 서버 장치를 이용하여 구현될 수 있다. 따라서, 서비스 제공자(114)를 위해 제공되고 설명된 다양한 예시적인 컴포넌트가 단일 서버 장치에 포함될 수 있으며 및/또는 다수의 상이한 서버 장치 간에 분리될 수 있다.
서비스 제공자(114)는 자원 관리자 모듈(120)을 포함하는 것으로 도시된다. 자원 관리자 모듈(120)은 네트워크(112)에서 이용할 수 있는 다양한 자원(122)을 관리하기 위해 서비스 제공자(140)에 의해 동작될 수 있는 기능을 나타낸다. 예를 들어, 다양한 자원(122)은 웹 페이지, HTML 페이지, 애플리케이션 UI, 또는 클라이언트(102)에 의한 출력을 위해 네트워크(112)에서 통신되는 다른 사용자 인터페이스(124)를 이용하여 제공될 수 있다. 자원 관리자 모듈(120)은 자원(122)으로의 액세스, 자원(122)의 성능, 사용자 인터페이스의 구성 또는 자원(122)을 제공하기 위한 데이터 등을 관리할 수 있다.
일반적으로, 서비스 제공자(114)에 의해 액세스될 수 있는 자원(122)은 하나 이상의 서비스 및/또는 콘텐트를 포함할 수 있다. 서비스 제공자(114)는 하나 이상의 웹 서버 및/또는 사이트를 제공할 수 있고, 클라이언트(102)는 자원(122)을 액세스하기 위해 탐색할 수 있다. 자원(122)은 하나 이상의 제공자에 의해 네트워크를 통해 전형적으로 이용할 수 있는 서비스 및/또는 콘텐트의 임의의 적합한 조합을 포함할 수 있다. 서비스의 일부 예는, 애플리케이션(108)의 데이터베이스를 관리 및 제공하기 위한 애플리케이션 저장 서비스, 검색 서비스, 이메일을 송신 및 수신하기 위한 이메일 서비스, 클라이언트(102) 사이에 인스턴트 메시지를 제공하기 위한 인스턴트 메시징 서비스, 및 공통 관심 및 활동을 공유하는 사용자 그룹 사이의 연결 및 상호작용을 용이하게 하기 위한 소셜 네트워킹 서비스를 포함하나, 이에 한정되는 것은 아니다. 서비스에 대한 추가 예는 쇼핑 서비스, 웹로그 서비스, 생산성 서비스(productivity service), 인증 서비스, 뉴스 서비스, 몇몇을 지명하는 광고 서비스를 포함한다. 콘텐트는 텍스트, 비디오, 광고, 오디오, 멀티-미디어 스트림, 애니메이션, 이미지, 웹 페이지, 웹 애플리케이션, 장치 애플리케이션, 브라우저 또는 기타 장치 애플리케이션에 의한 디스플레이를 위한 콘텐트, 페이지, URL 및/또는 애플리케이션 저장 모듈(111)에 의한 사용을 위한 링크 등의 다양한 조합을 포함할 수 있다.
또한, 서비스 제공자(114)는 구매 및/또는 다운로드를 위해 클라이언트(102)가 이용할 수 있는 애플리케이션에 관련된 다양하고 상이한 애플리케이션 데이터(128)를 저장하도록 구성되는 하나 이상의 애플리케이션 카탈로그(126)를 포함할 수 있거나 이를 이용할 수 있다. 다양한 애플리케이션 데이터(128)는 네트워크(112)를 통해 하나 이상의 콘텐트 제공자로부터 수집될 수 있다. 콘텐트 제공자(130)는 개발자, 장치 제조자 및 애플리케이션을 개발할 수 있고 서비스 제공자(114)에 의해 관리되며 도 1에 도시된 예시적인 환경(100)에 의해 제공되는 애플리케이션 저장 인프라스트럭처를 사용하여 클라이언트에게 애플리케이션을 배포할 수 있는 다른 제삼자를 나타낸다. 콘텐트 제공자(130)는 서비스 제공자(114)를 통해 자신이 개발하는 애플리케이션을 공표할 수 있으며, 이는 애플리케이션 카탈로그(126)에 포함시키기 위해 애플리케이션 데이터(128)를 제공하는 것을 포함할 수 있다. 자연적으로, 서비스 제공자(114)는 또한 애플리케이션 카탈로그(126) 내에 자신의 애플리케이션을 포함시킬 수 있다. 클라이언트(102)는 이어서 애플리케이션 저장 모듈(111)을 사용하여 애플리케이션 카탈로그(126)로부터 다운로드하기 위한 애플리케이션을 탐색 및 선택할 수 있다.
도 1에 도시된 것과 같이, 애플리케이션을 기술하는 애플리케이션 데이터(128)는 애플리케이션 세부사항(132), 페이지 정보(134) 및 필터 데이터(136)와 같은 다양한 데이터를 포함할 수 있다. 애플리케이션 세부사항(132)은 식별자, 가격 정보, 카테고리 데이터, 개발자 정보, 레이팅(ratings), 설명, 프로모션, 다운로드 URL 또는 어드레스 등과 같은, 애플리케이션을 기술하는 상세한 정보를 애플리케이션 카탈로그에 포함할 수 있다. 또한, 다운로드를 위한 애플리케이션은 애플리케이션 세부사항(132)의 일부로서 유지될 수 있다. 추가적으로 또는 선택적으로 다운로드 URL 또는 어드레스는, 클라이언트(102)의 피어-투-피어 네트워크를 사용하여 및/또는 임의의 다른 적합한 다운로드 메커니즘을 사용하여, 상이한 콘텐트 제공자(130)로부터, 예를 들면, 서비스 제공자(114)에 의해 관리되는 다운로드 서버를 통해서 다양한 위치로부터 애플리케이션을 액세스하는데 사용될 수 있다.
페이지 정보(134)는 애플리케이션 카탈로그와의 상호작용을 위해 다양한 페이지를 제작 및/또는 출력하는데 사용될 수 있는 다양한 콘텐트를 나타낸다. 페이지 정보(134)는 완전한 페이지, 페이지의 일부분, HTML 코드 또는 기타 마크업 언어 코드, 스크립트, URL 및 링크, 이미지 및/또는 페이지 제작에 전형적으로 사용되는 다른 데이터를 포함할 수 있다. 클라이언트가 애플리케이션 저장 모듈(111)을 거쳐 애플리케이션 카탈로그(126)를 통해 탐색을 하는 경우에, 사용자가 애플리케이션 카탈로그와의 상호작용을 위한 페이지를 렌더링하는 것을 가능하게 하기에 충분한 페이지 정보(134)가 네트워크(112)에서 통신될 수 있다. 이는 서버 측에서 제작된 페이지 및/또는 클라이언트(102)로 하여금 클라이언트 측에서 페이지를 제작하는 것을 가능하게 하는 정보를 통신하는 것을 포함할 수 있다.
필터 데이터(136)는 다양한 방식으로 애플리케이션을 필터링하는데 사용될 수 있는 데이터를 나타낸다. 예를 들어, 필터 데이터(136)는 장치 구성 및 성능에 기초하여 애플리케이션을 클라이언트에게 보내는데 사용될 수 있다. 애플리케이션 개발자는 자신의 애플리케이션을 설계된 장치 구성 및 성능에 맞추기 위해 필터 데이터(136)를 사용할 수 있다. 따라서, 애플리케이션의 다른 버전이 다른 장치 구성 및 성능에 대해 개발될 수 있다. 이는 특정 하드웨어 구성을 식별하는 것 및 특정 하드웨어 구성과 작업하도록 구성되는 애플리케이션을 타깃으로 하는 것을 포함할 수 있다. 이러한 방식으로, 클라이언트(102)는 특정 장치와 함께 잘 동작하도록 설계되며, 특정 장치에게 프로모션되고 있는 보다 관련 있고 관심 있는 애플리케이션을 드러내고 프로모션하는 애플리케이션 카탈로그(136)의 필터링된 뷰를 제공받을 수 있다. 필터 데이터(136)는 또한 특정한 장치와 잘 동작할 수 없는 애플리케이션에 관한 통지(notifications)를 숨김 및/또는 제공하는 데 사용될 수도 있다. 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 기술에 대한 추가적인 세부사항은 다음의 도면과 관련하여 찾아볼 수 있다.
또한, 다양한 다른 데이터(136)가 제공될 수 있으며, 이러한 데이터의 예는 상이한 관련 토픽 내에서 애플리케이션을 조직화하고 프로모션하는데 사용될 수 있는 토픽 데이터, 애플리케이션 지원 데이터, 인증 데이터, 클라이언트 계정, 계정 데이터 등을 포함한다.
예시적인 운영 환경을 설명하였으나, 지금부터는 하나 이상의 실시예에 따라 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하기 위한 예시적인 방법을 고려한다.
예시적인 방법
다음의 섹션에서는 하나 이상의 실시예에 따라 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하기 위한 예시적인 방법의 단계를 설명하는 흐름도에 대한 논의가 제공된다. 이 방법은 임의의 적합한 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합과 함께 구현될 수 있다. 적어도 일부의 실시예에서, 이 방법은 예를 들면, 자원 관리자 모듈(120)을 포함하거나 이를 이용하는 도 1의 예시적인 서비스 제공자(114)와 같은, 적합하게 구성된 컴퓨팅 장치를 이용하여 구현될 수 있다.
도 2는 하나 이상의 실시예에 따른 방법의 단계를 설명하는 흐름도이다. 구체적으로, 도 2는 장치에 대해 검출된 시스템 정보가 애플리케이션 카탈로그의 애플리케이션을 필터링하는데 사용되는 방법을 나타낸다.
단계(200)는 장치에 대한 시스템 정보를 검출한다. 장치에 대한 시스템 정보의 검출은 다양한 방식으로 이루어질 수 있다. 일 예에서, 자원 관리자 모듈(120)은 하나 이상의 클라이언트 장치(102)로부터 시스템 정보를 수집하도록 동작할 수 있다. 이는 애플리케이션 카탈로그(126)를 액세스하기 위해 클라이언트 장치를 통해 이루어진 요청에 응답하여 이루어질 수 있다. 예를 들어, 클라이언트(102)의 애플리케이션 저장 모듈(111)은 클라이언트 장치의 구성 및 성능을 기술하는 시스템 정보를 수집 및 유지하도록 구성될 수 있다. 이러한 시스템 정보는 이후에 자원(122)을 액세스하기 위한 요청과 함께 서비스 제공자(114)에게 네트워크(112)를 통해 제공될 수 있다.
다른 접근법에서, 자원 관리자 모듈(120)은 대응하는 시스템 정보를 획득하기 위해 다양한 시점에(at various times) 클라이언트(120)를 폴링(polling)하도록 동작할 수 있다. 자원 관리자 모듈(120)은 이어서 이 정보를 사용하여 애플리케이션 카탈로그(126)로부터의 애플리케이션을 포함하는 자원(122)을 선택적으로 제공한다. 또 다른 접근법에서, 시스템 정보는 클라이언트 계정과 함께 서비스 제공자(114)에 의해 수집 및 유지될 수 있다. 이에 따라, 자원 관리자 모듈(120)은 대응하는 시스템 정보를 검출하기 위해 클라이언트(102)와 연관된 클라이언트 계정을 참조하도록 구성될 수 있다.
다양한 시스템 정보가 수집 및 사용될 수 있다. 일반적으로, 시스템 정보는 클라이언트(102)의 구성 및 성능을 기술한다. 시스템 정보는 예시로서(제한은 아님), 클라이언트 장치의 하드웨어 구성에 관한 적어도 일부의 정보를 포함할 수 있다. 예를 들어, 시스템 정보는 (가령, 장치가 무선 안테나, 텔레비전 튜너, 카메라, GPS 수신기, 터치 스크린, 가속도계, 자이로스코프 등을 포함하든 포함하지 않든) 장치에 포함되는 하드웨어 컴포넌트를 기술할 수 있다. 또한, 시스템 정보는 클라이언트 장치와 연관되며, 연결되거나 연결가능한 주변 장치(예, 키보드, 마우스, 터치 패드, 스피커, 프린터, 스캐너 및 기타 주변 장치)를 기술할 수 있다. 더 나아가, 시스템 정보는 메모리, 저장장치, 프로세싱 전력, 장치 아키텍처 등과 같은 클라이언트의 기본 하드웨어 성능을 포괄한다.
또한, 시스템 정보는 예시로서(제한은 아님), 설치된 소프트웨어 또는 애플리케이션(운영 시스템 및 기타 장치 애플리케이션을 포함함)에 관한 정보를 포함할 수 있다. 이는 애플리케이션 및/또는 어느 버전의 애플리케이션이 설치되어 있는지에 대한 식별자(idenfification)를 포함할 수 있다. 선택적으로 또는 추가적으로, 일부 실시예에서, 시스템 정보는 클라이언트(102)와 연관된 장치 클래스 데이터를 포함할 수 있다. 장치 클래스 데이터는, 이하에 도 3에 관하여 상세히 설명되는 것과 같이, 상이한 클라이언트에 할당될 수 있고 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하는 측면을 구현하기 위해 사용될 수 있는 다른 클래스의 클라이언트 장치를 정의하도록 구성된다.
단계(202)는 검출된, 장치에 관한 시스템 정보에 기초하여 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링한다. 다양한 필터링이 애플리케이션 카탈로그(126)의 애플리케이션을 식별 및 선택하기 위해 전술한 상이한 유형의 시스템 정보의 조합을 사용하여 이루어질 수 있다. 일반적으로, 애플리케이션 데이터(128)는 타깃 애플리케이션을 발견하기 위해, 또는 매칭을 위해 또는 검출된 시스템 정보와 일치하거나 부합하도록 필터링될 수 있다. 예를 들어, GPS 수신기를 사용하도록 설계된 애플리케이션은 GPS 수신기를 가진 장치와 매칭되거나 일치할 수 있고, 이에 따라 이러한 장치를 위해 선택될 수 있다. 다른 한편으로, 예시적인 GPS 애플리케이션은 GPS 수신기를 포함하지 않는 장치에 대해서 걸러질(filtering out) 수 있다. 마찬가지로, 터치 스크린을 이용하기 위해 개발되는 애플리케이션은 터치 스크린 타블릿 장치와 매칭될 수 있고, 터치 스크린을 포함하지 않는 데스크톱 컴퓨팅 장치에 대해서 걸러질 수 있다. 언급한 바와 같이, 적어도 일부 실시예에서, 필터링은 서로 다른 장치에 관해 정의되고 할당된 서로 다른 장치 클래스에 기초할 수 있다. 장치 클래스를 사용하여 애플리케이션 카탈로그를 필터링하는 예가 이하에서 도 3과 관련하여 상세히 설명된다.
단계(204)는 필터링된 애플리케이션 데이터를 사용하여 애플리케이션 카탈로그와의 상호작용을 위한 페이지 정보를 확인한다. 단계(206)는 장치가 애플리케이션 카탈로그와의 상호작용을 위해 페이지를 렌더링하는 것을 가능하게 하기에 충분한, 확인된 페이지 정보를 장치로 전송한다. 예를 들어, 필터링된 애플리케이션 데이터는 페이지 정보(134)를 사용하여 애플리케이션 카탈로그(126)와 상호작용하기 위해 사용될 수 있는 페이지를 선택, 생성 및/또는 렌더링하는데 사용될 수 있다. 특히, 애플리케이션 카탈로그의 필터링된 뷰를 제공하는 하나 이상의 페이지가 임의의 적합한 방식으로 클라이언트(102)로 제공될 수 있다.
예를 들어, 확인된 페이지 정보(134)를 사용하여, 페이지가 서비스 제공자(114)에 의해, 클라이언트(102)에 의해, 및/또는 서비 제공자(114)와 클라이언트(102)의 조합에 의해 동적으로 생성될 수 있다. 서비스 제공자(114)는 또한 애플리케이션 저장 모듈(111)에 의한 사용을 위해 클라이언트(102)로 네트워크를 통해 제공되는 사전-구성된 페이지를 선택할 수 있다. 또 다른 접근법에서, 페이지 정보(134)는 콘텐트로의 링크, URL, 이미지 및 클라이언트에서 로컬로 페이지를 생성하기 위해 애플리케이션 저장 모듈(111)에 의해 사용되는 기타 페이지 정보와 같은 데이터를 포함할 수 있다. 또한, 페이지 정보는 애플리케이션 저장 모듈(111)이 애플리케이션 카탈로그(126)의 하나 이상의 필터링된 뷰를 선택적으로 생성하는 것을 가능하게 하는 필터링된 애플리케이션 데이터를 포함할 수 있다.
따라서, 클라이언트 장치에 대한 시스템 정보를 사용하여 적용되는 필터링을 반영하는 다양한 페이지를 통해, 클라이언트 장치의 사용자가 애플리케이션 카탈로그의 하나 이상의 필터링된 뷰와 상호작용할 수 있다. 또한, 페이지는 선택적으로 필터링을 켜거나 끄기 위한 옵션을 사용자에게 제공하도록 구성될 수 있다. 다양한 페이지가 애플리케이션 카탈로그(126)와의 상호작용을 가능하게 하는 다양한 방식으로 정렬될 수 있다. 애플리케이션 카탈로그와의 상호작용을 위한 페이지가 구성될 수 있는 다른 방식에 관한 몇몇 예시가 도 5 도시된 예시적인 사용자 인터페이스와 관련하여 이하에 설명된다.
지금 설명한 방식으로 시스템 정보를 이용함으로써, 콘텐트 제공자(130)는 전술한 및 이하에 설명된 장치 구성 및 성능을 특정하기 위한 애플리케이션을 개발, 타깃팅 및 프로모션할 수 있다. 애플리케이션 카탈로그와의 상호작용을 위한 페이지가 관련 및 관심 있는 애플리케이션을 찾는 사용자를 보조하기 위해 애플리케이션 카탈로그의 필터링된 뷰를 선택적으로 제시하도록 구성될 수 있다. 나아가, 특정한 장치 구성과 함께 잘 동작하도록 설계된 애플리케이션이 시스템 정보에 기초한 장치 매칭을 위해 표면화될 수 있다. 이는 사용자가 보다 쉽게 애플리케이션을 찾는 것을 도움으로써 그리고 사용자의 특정 장치와 잘 동작할 애플리케이션을 프로모션함으로써 전체적인 사용자 경험을 개선할 수 있다. 추가적으로, 콘텐트 제공자(130)는 애플리케이션 콘텐트가 사용자의 특정 장치에 맞춤화되기 때문에, 애플리케이션 콘텐트를 다운로드 및/또는 구매할 가능성이 가장 높은 사용자에게 타깃팅되는 방식으로 자신의 애플리케이션 콘텐트를 노출할 수 있는 혜택을 받는다.
도 3은 하나 이상의 실시예에 따른 다른 방법의 단계를 설명하는 흐름도이다. 구체적으로, 도 3은 상이한 장치 클래스에 기초하여 애플리케이션을 필터링하는 것에 관한 세부사항을 나타낸다. 도 3의 예시적인 방법은 장치와 연관된 시스템 정보가 애플리케이션 저장 애플리케이션의 필터링을 위해 사용될 수 있는, 단지 하나의 예시적인 방식을 나타낸다.
단계(300)는 애플리케이션 카탈로그에 대한 복수의 장치 클래스를 정의한다. 일반적으로, 장치 클래스는 공통 구성 및 성능에 기초하여 장치를 그룹으로 분류하도록 정의된다. 하나의 접근법에서, 장치 클래스는 장치 유형에 따라 장치를 광범위하게 분류하도록 구성된다. 예를 들면, 장치 클래스는 슬레이트(slate)(예, 타블릿), 모바일, 데스크톱, 랩톱, 올인원, 셋톱 박스 장치에 대해 상이한 클래스를 포함하도록 구성될 수 있다.
선택적으로 또는 추가적으로, 보다 세부적인(more granular) 클래스 및/또는 서브클래스가 시스템 정보에 의해 기술되는 상이한 구성 및 성능과 관련된 클래스를 생성하도록 정의될 수 있다. 예시로서(제한은 아님), 서로 다른 클래스가 단독 클래스로서, 또는 카메라, GPS 수신기, 또는 터치 스크린과 같은 소정의 컴포넌트를 가진 장치를 위한, 및/또는 선택된 양의 메모리, 프로세싱 파워, 운영 시스템 버전, 아키텍처 등과 같은 선택된 성능을 가진 장치를 위한 서브클래스로서 정의될 수 있다. 시스템 정보에 기초한 다양한 다른 클래스가 청구된 발명의 대상의 사상을 벗어나지 않는 한 사용될 수 있다.
하나의 접근법에서, 광역 분류(broad classification)는 장치를 분류하기 위한 다수의 옵션을 생성하도록 상이한 서브클래스와 조합될 수 있다. 예시로서(제한은 아님), 클래스는 몇몇 예를 호칭(naming)하기 위해, 카메라를 구비한 슬레이트, 카메라를 구비하지 않은 슬레이트, 적어도 4 기가바이트의 RAM을 구비한 데스크톱, 및/또는 10 기가바이트 하드 드라이브를 구비한 셋톱 박스와 같은 클래스를 형성하도록 조합될 수 있다. 또한 열거된 예와 대응하는 다양한 다른 조합이 사용될 수 있다.
임의의 적합한 데이터, 필드 또는 식별자가, 클래스를 설계하고 특정한 장치에 장치 클래스를 할당하기 위해 사용될 수 있다. 클라이언트(102)의 애플리케이션 저장 모듈(111)은 예를 들면, 장치 클래스 필드를 적합한 값으로 설정함으로써 장치에 대해 장치 클래스를 식별, 할당, 및/또는 유지하도록 구성될 수 있다.
단계(302)는 애플리케이션 카탈로그에 액세스하는 장치의 시스템 정보를 획득한다. 서비스 제공자(114)는 임의의 적합한 방식으로 시스템 정보를 획득할 수 있다. 이러한 단계는 도 2와 관련하여 전술한 것과 대응하는 기술을 사용하여 장치에 대한 시스템 정보를 검출 및/또는 수집함으로써 수행될 수 있다. 예를 들어, 서비스 제공자(114)의 자원 관리자 모듈(120)은 애플리케이션 카탈로그(126)를 액세스하기 위한 요청과 함께 애플리케이션 저장 모듈(111)에 의해 전송되는 클라이언트에 대한 시스템 정보를 획득할 수 있다. 서비스 제공자(114)는 다양한 시점에 시스템 정보를 획득 및/또는 저장하기 위해 선택적으로 및 주도적으로(pro-actively) 클라이언트(102)를 폴링(polling)할 수 있다.
단계(304)는 장치 클래스가 이용가능한지 여부를 판정한다. 이 단계는 장치가 장치 클래스 데이터를 확인하기 위해 획득한 시스템 정보를 검사하는 것을 포함한다. 예를 들어, 장치 클래스 필드 또는 기타 적합한 데이터가 장치 클래스를 클라이언트(102)와 연관시키기 위해 시스템 정보에 포함될 수 있다. 장치 클래스 필드가 장치 클래스와 함께 포함되는 경우에, 장치 클래스는 애플리케이션의 필터링 및 프로모션을 위해 직접적으로 사용될 수 있다. 다르게 설명하면, 장치 클래스 필드가 공백(empty)이거나 장치 클래스 정보가 이용가능하지 않은 경우에, 클라이언트 장치에 의해 제공된 시스템 정보가 클라이언트 장치를 위한 장치 클래스를 결정하기 위해 및/또는 애플리케이션의 필터링 및 프로모션을 수행하기 위해 사용될 수 있다.
하나의 접근법에서, 클라이언트(102)의 애플리케이션 저장 모듈(111)은 이용가능하면, 장치 클래스를 제공하도록 구성될 수 있으며, 또는 장치 클래스가 클라이언트(102)에서 이용가능하지 않으면 시스템 정보를 서비스 제공자(114)에 의한 사용을 위해 제공하도록 구성될 수 있다. 다르게 설명하면, 장치 클래스는 서비스 제공자에 의해 획득될 수 있으며, 장치가 애플리케이션 카탈로그와 상호작용을 하는 경우에 장치에 대한 완전한 시스템 정보를 획득해야하는 것에 대한 대안으로 사용될 수 있다. 이러한 접근법은 네트워크 상의 통신 트래픽을 감소시킬 수 있고, 분석 시간을 줄일 수 있으며, 서비스 제공자(114)와 클라이언트(102) 모두에 대한 데이터 수집을 줄일 수 있다. 동시에, 장치 클래스를 제공할 수 없는 및/또는 장치 클래스 접근법을 지원하지 않는 장치는 여전히, 설명된 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 기술을 이용할 수 있다.
보다 구체적으로, 장치 클래스가 이용가능하면, 단계(306)는 장치의 성능에 기초하여 장치에 대한 장치 클래스를 판정한다. 여기서, 자원 관리자 모듈(120)은 전술한 클래스 중 하나 이상에 클라이언트 장치를 매칭하기 위해 시스템 정보를 분석하도록 동작할 수 있다. 이는 장치를 폭넓게 정의된 클래스 및/또는 하나 이상의 서브클래스에 할당하는 것을 포함한다. 예를 들어, 클라이언트(120)는 시스템 정보에 기초하여 모바일 장치 클래스, 및 카메라 및 터치 스크린에 관한 클래스에 할당될 수 있다. 할당을 위해, 자원 관리자 모듈(120)은 클래스를 정의하는데 사용되는 다양한 기준을 검사하고, 시스템 정보에 의해 정의된 장치의 구성 및 성능을 클래스에 관한 기준과 매칭시키기 위한 클래스를 결정한다. 이어서 장치는 장치 클래스 필드를 설정하거나 장치에 관한 다른 적합한 데이터를 적합한 값으로 설정함으로써 이러한 매칭에 할당될 수 있다.
단계(308)는 장치 클래스에 관한 정보를 장치로 반환한다. 예를 들어, 자원 관리자 모듈(120)은 네트워크(112)를 통해 클라이언트(102)에게 단계(306)에서 결정된 클래스를 기술하는 데이터를 반환할 수 있다. 이는 클라이언트(102)의 애플리케이션 저장 모듈(111)이 애플리케이션 카탈로그(126)와의 후속 상호작용을 위해 장치 클래스를 이용하는 것을 가능하게 한다.
단계(304)에서 직접적으로 장치 클래스를 결정하거나, 단계(306) 및 단계(308) 마다 시스템 정보를 분석함으로서, 단계(310)는 장치 클래스에 기초하여 장치로 타깃팅되는 애플리케이션을 식별하도록 애플리케이션 카탈로그를 필터링한다. 이는 도 3에서 예시적인 서브단계(312 내지 318)에 의해 표시된 장치 클래스를 사용하여 복수의 상한 카테고리 및 유형의 애플리케이션을 검색하는 것을 포함할 수 있다. 일반적으로, 하나 이상의 실시예에서, 필터링은 특히 장치를 타깃으로 하는 또는 장치 클래스에 의해 표현된 장치 구성 및 성능과 잘 매칭되는 애플리케이션을 발견하기 위해 장치 클래스를 애플리케이션 데이터(128)와 비교하는 것을 포함할 수 있다.
구체적으로, 단계(312)는 특히 장치 클래스로 타깃팅된 애플리케이션을 식별한다. 필터링 동작을 위해 검사된 애플리케이션은, 콘텐트 제공자(130)로부터의 제삼자 애플리케이션 및 서비스 제공자(114)에 의해 개발된 애플리케이션 모두를 포함할 수 있다. 애플리케이션은 자신을 선택된 장치 클래스와 매칭시키는 장치 클래스 데이터와 애플리케이션 카탈로그에서 연관될 수 있다. 예를 들어, 이전의 예에서 카메라와 터치 스크린을 구비한 모바일 장치에 대해 수행된 필터링은, 그 장치와 연관된 하나 이상의 장치 클래스를 사용하여, 모바일 장치, 카메라, 터치 스크린, 및/또는 이들의 조합을 타깃으로 하는 다양한 애플리케이션을 식별할 수 있다.
단계(314)는 각각의 장치 클래스에 대해 일반 애플리케이션(general application)으로 지정되는 애플리케이션을 결정한다. 이러한 애플리케이션은 각각의 장치 클래스에 적합한 것으로 여겨지는 것일 수 있다. 이러한 일반 애플리케이션은 장치 클래스에 기초하여 효과적으로 필터링되지 않는다.
단계(316)는 장치에 설치된 애플리케이션을 확인하고, 단계(318)는 장치와 호환될 수 없는 애플리케이션을 찾는다. 언급한 바와 같이, 시스템 정보는 애플리케이션을 식별하는 정보 및 장치에 이미 설치된 애플리케이션 버전을 포함할 수 있다. 또한, 장치 클래스는 장치와 호환될 수 없는 또는 장치에 적합하지 않은 애플리케이션을 식별하는데 사용될 수 있다. 예를 들어, 카메라 애플리케이션은 카메라를 포함하지 않는 장치와 호환될 수 없는 것으로 간주될 수 있다. 마찬가지로, GPS를 사용하는 매핑 프로그램은 GPS 수신기를 가지지 않는 장치와 호환될 수 없는 것으로 간주될 수 있다.
단계(320)는 필터링된 애플리케이션 카탈로그 정보를 장치로 반환한다. 예를 들어, 단계(310 내지 318)에 관하여 설명한 것과 같은 필터링 동작은 특정 장치/장치 클래스에 관련되는 상이한 필터 그룹에 애플리케이션을 배치하는 필터링된 애플리케이션 카탈로그를 생성할 수 있다. 필터링된 애플리케이션 카탈로그 및 필터 그룹은 도 1에 나타낸 필터 데이터(136)로 저장될 수 있다. 필터링된 애플리케이션 카탈로그 정보는 다양한 방식으로 클라이언트(102)로 반환될 수 있다. 이는 필터링을 반영하는 페이지 정보 및/또는 페이지를 반환하는 것을 포함할 수 있다. 클라이언트(120)는 하나 이상의 페이지를 통해 애플리케이션 카탈로그의 필터링된 뷰를 제공하기 위해 다양한 방식으로 필터링된 애플리케이션 카탈로그 정보를 사용할 수 있다. 이는 상이한 뷰 및/또는 페이지에서 상이한 필터 그룹 내에 배치되는 애플리케이션을 선택적으로 보여주거나 숨기는 것을 포함할 수 있다.
구체적으로, 상이한 필터 그룹은 타깃팅된 애플리케이션, 일반 애플리케이션, 설치된 애플리케이션, 비-호환형 애플리케이션 등을 포함할 수 있다. 이러한 방식으로 필터 그룹을 필터링하고 형성함으로써, 타깃팅된 애플리케이션이 선택적으로 표면화되고, 프로모션되며, 하이라이트되고, 노출되며, 또는 애플리케이션 카탈로그(126)와의 상호작용을 위해 사용되는 페이지 내의 다른 애플리케이션과 다르게 식별될 수 있다. 일반 애플리케이션은 타깃팅된 애플리케이션과 함께 및/또는 서로 다른 페이지, 뷰, 및/또는 페이지의 일부분을 이용하여 보여질 수 있다. 장치에 이미 설치된 애플리케이션은 비-호환형 애플리케이션과 함께 감춰지고, 플래깅되고, 또는 다양한 페이지의 타깃팅된 애플리케이션 및/또는 일반 애플리케이션과 차별화될 수 있다.
또한, 애플리케이션 저장 모듈(111)은 사용자가 필터링을 켜고 끄는 것을 가능하게 하기 위해 선택가능한 다양한 옵션을 제공할 수 있다. 따라서, 디폴트 뷰는 일반 애플리케이션, 모든 애플리케이션 등을 포함하도록 뷰를 확장하는데 사용될 수 있는 선택형 컨트롤을 이용하여 타깃팅된 애플리케이션을 보여주도록 구성될 수 있다. 따라서, 필터링된 애플리케이션 카탈로그 정보 및 필터 그룹을 포함하는 필터 데이터(136)가 애플리케이션 카탈로그를 보고 탐지하는데 매우 큰 유연성을 제공하는 페이지를 제작하기 위해 다양한 방식을 사용될 수 있으며, 이에 대한 추가적인 예는 도 5의 예시적인 사용자 인터페이스와 관련하여 이하에서 찾아볼 수 있다.
도 4는 하나 이상의 실시예에 따른 또 다른 방법의 단계들을 설명하는 흐름도이다. 구체적으로, 도 4는 서비스 제공자(114)에 의해 이용될 수 있는 애플리케이션 카탈로그(126)와 클라이언트(102)의 상호작용에 관한 세부사항을 포함하는 방법을 나타낸다. 적어도 일부 실시예에서, 이 방법은 전술한 그리고 이하에 설명된 애플리케이션 저장 모듈(111)에 의해 수행될 수 있다.
단계(400)는 장치에 대한 시스템 정보를 수집한다. 예를 들어, 애플리케이션 저장 모듈(111)은 클라이언트(120)에서 다양한 시스템 구성 및 성능 데이터를 수집 및 유지하도록 동작할 수 있다. 이는 클라이언트(102)의 운영 체제와의 상호작용을 통해 이루어질 수 있다. 일부 실시예에서, 애플리케이션 프로그래밍 인터페이스(API)는 운영 시스템으로부터 시스템 정보를 획득하고, 시스템 정보에 대한 변경을 모니터하며, 시스템 정보를 적절히 업데이트하는데 사용될 수 있다.
전술한 바와 같이, 애플리케이션 저장 모듈(111)은 또한 장치 클래스 데이터를 유지할 수 있다. 또한, 애플리케이션 저장 모듈(111)은 시스템 정보를 사용하여 장치 클래스를 얻도록 동작할 수 있다. 이는 애플리케이션 카탈로그에 액세스하려는 시도와 함께 및/또는 다른 시점에(예를 들면, 주기적으로, 시스템 변경에 응답하여서 등) 일어날 수 있다. 하나의 접근법에서, 애플리케이션 저장 모듈(111)은 다양한 장치 클래스를 기술하는 데이터를 획득하기 위해 네트워크를 통해 상호작용할 수 있다. 애플리케이션 저장 모듈(111)은 이후에 장치 클래스를 얻기 위해 클라이언트에서 로컬로 이러한 데이터를 사용할 수 있다. 다른 예에서, 애플리케이션 저장 모듈(111)은 서비스 제공자(114)에게 시스템 정보를 통신할 수 있으며, 이러한 통신에 응답하여 서비스 제공자(114)에 의해 결정된 장치 클래스를 획득할 수 있다. 다시, 이는 다른 시점에 일어날 수 있다(서비스 제공자(114)로부터의 애플리케이션 카탈로그에 액세스하려는 시도와 함께 이루어질 수 있으나, 이에 제한되는 것은 아님).
단계(402)는 애플리케이션 카탈로그로의 타깃팅된 액세스를 용이하게 하기 위해 서비스 제공자에게 수집된 시스템 정보를 통신한다. 예를 들어, 애플리케이션 저장 모듈(111)은 요청시에, 애플리케이션 카탈로그(126)를 액세스하려는 시도 등과 함께, 서비스 제공자(114)에게 시스템 정보를 통신하도록 동작할 수 있다. 이는 이용할 수 있는 경우에 장치 클래스 및/또는 시스템 정보를 클라이언트(112)에 의해 서비스 제공자(114)에게 송신하는 것을 포함할 수 있다. 이러한 통신에 응답하여, 서비스 제공자(114)는 전술한 및 이하에 설명되는 다양한 접근법을 이용하여 장치의 구성 및 성능에 기초하여 애플리케이션 카탈로그를 필터링하도록 장치 클래스 및/또는 시스템 정보를 사용할 수 있다.
단계(404)는 통신된 시스템 정보에 기초하여 애플리케이션 카탈로그의 필터링을 반영하며 서비스 제공자에 의해 반환된 페이지 정보를 획득한다. 예를 들어, 애플리케이션 저장 모듈(111)은 서비스 제공자(114)로부터 다양한 페이지 정보를 획득하도록 동작할 수 있다. 이는 클라이언트(102)가 애플리케이션 카탈로그(126)를 액세스하려고 시도하는 경우에 이루어진다. 서비스 제공자(114)는 또한 클라이언트(102)가 애플리케이션 카탈로그(126)를 액세스하려고 시도하는 경우 이외의 시점에 클라이언트(102)에게 페이지 정보를 포함하는 애플리케이션 저장 업데이트를 푸시할 수 있다. 애플리케이션 저장 모듈(111)은 이어서 서비스 제공자(114)와 통신할 필요 없이 로컬로 (예를 들면, 장치가 "오프라인(offline)"인 경우에) 애플리케이션 저장 업데이트를 사용할 수 있다.
단계(406)는 반환된 페이지 정보를 사용하여 애플리케이션 카탈로그와의 상호작용을 가능하게 하기 위한 하나 이상의 페이지를 출력한다. 구체적으로, 애플리케이션 저장 모듈(111)은 단독으로 또는 자원 관리 모듈(120)과 함께, 애플리케이션 카탈로그와의 상호작용을 위한 페이지를 제작 및/또는 출력하기 위해 단계(404)에서 획득된 다양한 페이지 정보를 사용할 수 있다. 페이지는 다양한 방식으로 타깃팅된 애플리케이션을 표현하도록 구성될 수 있다. 이는 타깃팅된 애플리케이션만선택적으로 보여주기 하는 것, 하나 이상의 타깃팅된 애플리케이션을 하이라이팅하거나 프로모션하는 것, 사용자가 모든 애플리케이션 또는 타깃팅된 애플리케이션만을 선택적으로 보여주는 것을 가능하게 하는 것 등을 포함할 수 있다. 페이지는 서비스 제공자(114)로부터 획득된 페이지를 사전 구성한 페이지일 수 있다. 페이지 또는 이들의 일부분은 또한 서비스 제공자에 의해 반환된 페이지 정보에 기초하여 클라이언트(102)에서 동적으로 생성될 수 있다. 이는 페이지의 적어도 일부분을 동적으로 구성하기 위해 페이지 및/또는 코드 템플릿을 사용함으로써 이루질 수 있다. 페이지를 제작하는데 사용되는 페이지, 템플릿, 코드, URL, 이미지 등이 임의의 적합한 기술(XML 또는 기타 마크업 언어 코드, 문서, 태그를 포함하나 이에 한정되는 것은 아님)을 사용하여 정의되고 구현될 수 있다.
애플리케이션 저장 애플리케이션을 필터링하고 프로모션하는 다양하는 예시적인 방법을 고려하였으나, 이제는 하나 이상의 실시예에 따라 애플리케이션 저장 애플리케이션을 필터링하고 프로모션하는 다양한 측면들을 구현하는데 사용될 수 있는 예시적인 사용자 인터페이스가 고려된다.
예시적인 사용자 인터페이스
도 5는 500에서 일반적으로, 애플리케이션 저장 모듈(111)을 통해 출력될 수 있는 애플리케이션 카탈로그(126)와의 상호작용을 위한 사용자 인터페이스(124)에 대한 일 예를 나타낸다. 이 예에서, 사용자 인터페이스(124)는 시스템 정보에 기초하여 애플리케이션의 필터링 및 프로모션을 구현하도록 구성되는 다양한 부분을 포함할 수 있는 페이지(502)를 포함한다. 예시적인 페이지(502)는 다양한 다른 페이지로의 탐색을 가능하게 하도록 구성될 수 있는 애플리케이션의 홈 페이지를 나타낸다. 홈 페이지의 일부분은 다른 페이지에서와 마찬가지로, 타깃팅되지 않은 애플리케이션에 비하여 더 두드러지게 하는 방식으로(in a more prominent way) 타깃팅된 애플리케이션을 제시 및 하이라이트 하기 위한 다양한 방식으로 구성될 수 있다.
구체적으로, 페이지(502)는 장치 특정 애플리케이션을 식별 및 제공하기 위한 임의의 적합한 방식으로 구성될 수 있는 장치 특정 애플리케이션 부분(504)을 포함할 수 있다. 이러한 예에서, 장치 특정 애플리케이션 부분(504)은 선택가능한 타이틀로 표현된다. 이러한 부분에 대한 선택은 본 명세서에 설명한 시스템 정보에 기초하여 특정 장치를 타깃으로 하는 다양한 애플리케이션의 목록 또는 다른 뷰를 제시하는 또 다른 페이지를 노출할 수 있다.
또한, 페이지(502)는 특정 엔티티에 의해 추천 애플리케이션을 식별 및 제공하기 위한 적합한 방식으로 구성될 수 있는 추천 애플리케이션 부분(506)을 포함한다. 또한 이 예에서, 추천 애플리케이션 부분(506)은 선택되는 경우에, 대응하는 엔티티에 의한 추천 애플리케이션의 목록 또는 다른 뷰를 제시하는 또 다른 페이지를 노출할 수 있는 타이틀로 보여진다. 이 부분은 엔티티(가령, 콘텐트 제공자(130), 장치 제조자, 및 서비스 제공자(114))가 특정 장치에 대해 "승인된(approved)" 또는 잘 맞는 것으로 생각되는 애플리케이션을 타깃팅 및/또는 프로모션하는 것을 가능하게 한다.
예를 들어, 예시적인 제공자인 "X"가 특정한 랩톱 장치의 제조자일 수 있다. 제공자 X는 자신의 설비를 이용하여 좋은 경험을 하는 것을 바라기 때문에, 제공자 X는 그러한 경험을 제공하는 것으로 생각되는 애플리케이션을 추천하기 위해 추천 애플리케이션 부분(506)을 사용할 수 있다. 일부 실시예에서, 장치 클래스는 특정 콘텐트 제공자, 제조자 또는 다른 엔티티에 대응하도록 정의될 수 있다. 추천 애플리케이션 부분(506)은 특정 장치 클래스에 따라 상이한 추천을 제안하도록 구성될 수 있다. 따라서, 콘텐트 제공자, 제조자 또는 기타 엔티티는 설명된 기술을 사용하여 애플리케이션을 추천하기 위해 자신의 장치 클래스를 이용할 수 있다.
또한, 페이지(502)는 프로모션된 애플리케이션 부분(508)을 포함한다. 여기서, 특별한 제안, 새로운 애플리케이션, 인기있는 아이템 또는 기타 애플리케이션 프로모션될 수 있다. 프로모션된 애플리케이션 부분(508)이 서로 다른 장치로 서로 다른 프로모션을 제시하도록 구성될 수 있다. 구체적으로, 프로모션된 애플리케이션 부분(508)에 보여질 프로모션은 장치 구성 및 성능에 기초하여 및/또는 장치 클래스를 사용하여 선택될 수 있다. 따라서, 서로 다른 구성 및 성능을 가진 장치가 서로 다른 프로모션을 제공받을 수 있다. 이 예에서, "볼 브레이커 프로(Ball Breaker Pro)" 애플리케이션이 터치 스크린을 가진 장치를 위해 선택될 수 있다. 터치 스크린을 구비하지 않은 다른 장치는 이러한 애플리케이션을 적절히 사용할 수 없을 수 있다. 따라서, 이러한 장치는 다른 장치 특정 프로모션을 제공받을 수 없다.
다른 특징은 선택적으로 필터링을 켜거나 끄는 데 사용될 수 있는 필터 선택 컨트롤(510)이다. 필터 선택 컨트롤(510)은 애플리케이션 저장 모듈(111)에 의해 제시되는 페이지의 서로 다른, 필터링된 뷰 및 필터링되지 않은 뷰를 토글하는데 사용될 수 있다. 이러한 필터 선택 컨트롤(510)은 서로 다른 필터링된 뷰를 켜거나 끄기 위해 이전에 설명된 방식으로 얻어진 서로 다른 필터 그룹을 이용할 수 있다. 예를 들어, 예시적인 페이지(502)의 "변화(Change)" 링크는 사용자가 사용자 인터페이스(124) 내의 서로 다른 필터 그룹을 보이게 할지 또는 숨길지 여부를 선택하는 것을 가능하게 하는 다양한 옵션을 노출시키도록 선택될 수 있다.
또한, 페이지(502)는 추가로 애플리케이션 카탈로그의 다른 페이지 사이의 탐색을 이용하여 사용자를 보조할 수 있는 다양한 네비게이션 링크를 제시하는 네비게이션 바(512)를 포함한다. 네비게이션 링크는 다양한 방식으로 구성될 수 있다. 설명된 예에서, 링크는 선택된 카테고리 내에서 상이한 뷰를 제시하도록 구성된다. 예를 들어, "홈(Home)" 링크는 도 5에 나타낸 예시적인 홈 페이지로의 탐색에 이용될 수 있다. "토픽(Topics)" 링크는 서로 다른 토픽에 따라 구성된 애플리케이션의 뷰로의 탐색을 가능하게 할 수 있다. 토픽은 상이한 관심 분야(가령, 지리적 위치, 특정 장치 또는 제조자, 현재의 이벤트 또는 휴일 등)를 반영하도록 배열될 수 있다. 토픽 페이지는 다양한 토픽에 관련되는 애플리케이션의 서로 다른 뷰를 제시할 수 있다. "뉴(New)" 링크는 새롭게 이용가능한 애플리케이션의 뷰로의 탐색을 가능하게 할 수 있다. 예시적인 추가 링크가 사용자의 친구, 작업 애플리케이션, 게임, 키드 애플리케이션 등에 관련된 애플리케이션과 같은 추가적인 카테고리를 나타내는데 사용될 수 있다.
애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 예시적인 사용자 인터페이스를 고려하였으나, 지금부터는 하나 이상의 실시예에 따라 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하는 다양한 측면을 구현하도록 사용될 수 예시적인 시스템을 고려한다.
예시적인 시스템
도 6은 600에서, 전술한 다양한 실시예를 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 장치를 대표하는 예시적인 컴퓨팅 장치(602)를 포함하는 예시적인 시스템을 나타낸다. 컴퓨팅 장치(602)는 예를 들면, 서비스 제공자(114)의 서버, 클라이언트(102)와 연관된 장치(예, 클라이언트 장치), 온칩 시스템 및/또는 임의의 다른 적합한 컴퓨팅 장치 또는 컴퓨팅 시스템일 수 있다.
예시적인 컴퓨팅 장치(602)는 하나 이상의 프로세서(604) 또는 프로세싱 유닛, 하나 이상의 메모리 및/또는 저장 컴포넌트(608)를 포함하는 하나 이상의 컴퓨터-판독가능 매체(606), 입출력(I/O) 장치를 위한 하나 이상의 입출력(I/O) 인터페이스(610) 및 다양한 컴포넌트 및 장치가 서로 통신하는 것을 가능하게 하는 버스(612)를 포함한다. 컴퓨터-판독가능 매체(606) 및/또는 하나 이상의 입출력 장치가 컴퓨팅 장치(602)의 일부로서 포함되거나 또는 선택적으로 컴퓨팅 장치에 연결될 수 있다. 버스(612)는 여러 유형의 버스 구조(메모리 버스 또는 버스 콘트롤러, 주변 버스, 가속 그래픽 포트, 다양한 버스 아키텍처 중 임의의 하나를 사용하는 프로세서 또는 로컬 버스를 포함함) 중 하나 이상을 나타낸다. 버스(612)는 유선 및/또는 무선 버스를 포함할 수 있다.
하나 이상의 프로세서(604)는 본 명세서에 사용되는 프로세싱 메커니즘 또는 프로세서를 형성하는 재료에 의해 제한되지 않는다. 예를 들어, 프로세서는 반도체(들) 및/또는 트랜지스터(예, 전자 집적 회로(IC))로 구성될 수 있다. 이러한 맥락에서, 프로세서-실행가능 명령어는 전자적으로 실행가능한 명령어일 수 있다. 메모리/저장 컴포넌트(608)는 하나 이상의 컴퓨터-판독가능 매체와 연관된 메모리/저장 용량을 나타낸다. 메모리/저장 컴포넌트(608)는 휘발성 매체(가령, RAM) 및/또는 비휘발성 매체(가령, ROM, 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 메모리/저장 컴포넌트(608)는 고정식 매체(예, RAM, ROM, 고정식 하드 드라이버 등)과 함께 이동식 매체(예, 플래시 메모리 장치, 이동식 하드 드라이브, 광학 디스크 등)를 포함할 수 있다.
입출력 인터페이스(들)(610)는 사용자가 컴퓨팅 장치(602)로 커맨드 및 정보를 입력하는 것을 가능하게 하고, 또한 다양한 입출력 장치를 사용하여 정보가 사용자 및/또는 다른 컴포넌트나 장치에게 제공되는 것을 가능하게 한다. 입력 장치의 예는 키보드, 커서 콘트롤 장치(예, 마우스), 마이크로폰, 스캐너 등을 포함한다. 출력 장치의 예는 디스플레이 장치(예, 모니터 또는 프로젝터), 스피커, 프린터, 네트워크 카드 등을 포함한다.
본 명세서에서, 다양한 기술이 소프트웨어, 하드웨어(고정식 로직 회로) 또는 프로그램 모듈에 관한 일반적인 내용으로 설명될 수 있다. 일반적으로, 이러한 모듈은 특정한 작업을 수행하거나 특정한 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 이러한 모듈 및 기술의 구현은 몇몇 형태의 컴퓨터-판독가능 매체에 저장될 수 있으며 또는 이를 통해 송신될 수 있다. 컴퓨터-판독가능 매체는 컴퓨팅 장치에 의해 액세스될 수 있는 다양한 가용 매체 또는 매체들을 포함할 수 있다. 예로서(제한이 아님), 컴퓨터-판독가능 매체는 "컴퓨터-판독가능 저장 매체" 및 "통신 매체"를 포함할 수 있다.
"컴퓨터-판독가능 저장 매체"는 단순한 신호 전송, 반송파, 또는 신호 그 자체와 대조되는, 정보의 지속적 및/또는 비 지속적 저장을 가능하게 하는 매체 및/또는 장치를 나타낼 수 있다. 따라서, 컴퓨터-판독가능 저장 매체는 신호를 포함하지 않는 매체를 나타낸다. 컴퓨터-판독가능 저장 매체는 또한 설명된 기술의 측면들을 구현하기 위해 일부 실시예에서 사용될 수 있는 하드웨어 형태로 구현되는 명령어, 모듈, 및/또는 고정식 장치 로직을 포함하는 하드웨어 요소를 포함한다.
컴퓨터-판독가능 저장 매체는 정보(가령, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 로직 요소/회로 또는 기타 데이터)의 저장에 적합한 방법 또는 기술로 구현되는 휘발성 및 비-휘발성 이동식 및 비-이동식 매체 및/또는 저장 장치를 포함한다. 컴퓨터-판독가능 저장 매체의 예는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD_ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 저장장치, 하드 디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장 장치, 집적 회로 또는 칩의 하드웨어 요소(예, 고정식 로직) 또는 기타 저장 장치, 유형의 매체, 또는 컴퓨터에 의해 액세스될 수 있고 원하는 정보를 저장하기에 적합한 제조 물품을 포함할 수 있으나, 이에 한정되는 것은 아니다.
"통신 매체"는 예를 들면 네트워크(112)를 통해, 컴퓨팅 장치의 하드웨어로 명령어를 송신하도록 구성되는 신호 저장 매체를 나타낼 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 모듈화된 데이터 신호 내의 다른 데이터(가령, 반송파, 데이터 신호 또는 기타 전송 메커니즘)를 구현할 수 있다. 통신 매체는 또한 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하기 위한 방식으로 자신의 하나 이상의 특성이 설정 또는 변경된 신호를 의미한다. 예로서(제한이 아님), 통신 매체는 유선 매체(예를 들면, 유선 네트워크 또는 직접-유선 연결) 및 무선 매체(예를 들면, 음향, RF, 적외선 및 기타 무선 매체)를 포함한다.
또한, 전술한 것들의 임의의 조합이 컴퓨터-판독가능 매체의 범주에 포함된다. 따라서, 소프트웨어, 하드웨어 또는 프로그램 모듈(자원 관리자 모듈(120), 애플리케이션(108), 통신 모듈(110), 애플리케이션 저장 모듈(111) 및 기타 프로그램 모듈 포함)이 컴퓨터-판독가능 매체의 몇몇 형식으로 구현되는 하나 이상의 명령어 및/또는 로직으로 구현될 수 있다.
따라서, 본 명세서에 설명된 특정한 모듈, 기능, 컴포넌트 및 기술은 소프트웨어, 하드웨어, 펌웨어 및/또는 이들의 조합으로 구현될 수 있다. 컴퓨팅 장치(602)는 컴퓨터-판독가능 매체에 구현되는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정한 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 명령어 및/또는 기능은 다른 기술과 함께 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 기술을 구현하도록 하나 이상의 제조 물품(예를 들면, 하나 이상의 컴퓨팅 장치(602) 및/또는 프로세서(604)에 의해 실행/동작가능할 수 있다. 이러한 기술은 본 명세서에 설명된 예시적인 절차를 포함하나, 이에 한정되는 것은 아니다. 따라서, 컴퓨터-판독가능 매체는 본 명세서에 설명된 하나 이상의 장치에 의해 실행되는 경우에, 애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 다양한 기술을 수행하는 명령어를 저장 또는 제공하도록 구성될 수 있다.
결론
애플리케이션 저장 애플리케이션을 필터링 및 프로모션하기 위한 기술이 본 명세서에 설명되었다. 설명된 기술은 클라이언트 장치의 구성 및 성능을 기술하는 시스템 정보에 적어도 부분적으로 기초하여 필터링된 애플리케이션 정보 및/또는 애플리케이션 프로모션을 클라이언트 장치에 제공하기 위해 사용될 수 있다. 클라이언트 장치에 대한 시스템 정보는 다양한 방식으로 검출될 수 있고, 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는데 사용될 수 있다. 애플리케이션 카탈로그와의 상호작용을 위해 클라이언트 장치에 제공될 페이지 정보는 이후에 필터링된 애플리케이션 데이터를 사용하여 확인된다. 페이지 정보는 사용자가 필터링된 애플리케이션 정보 및/또는 검출된 시스템 정보에 기초하여 선택된 프로모션을 포함하는 타깃팅된 애플리케이션 저장 페이지를 렌더링하는 것을 가능하게 한다.
발명의 대상이 구조적인 특징 및/또는 방법론적 단계에 특정된 언어로 설명되었으나, 첨부된 청구항에 정의된 발명의 대상이 전술한 특정한 특징 또는 단계에 제한될 필요는 없다는 것을 이해할 것이다. 오히려, 전술한 특정한 특징 및 단계는 청구항 구현의 예시적인 형태로서 설명된다.

Claims (10)

  1. 컴퓨팅 장치에 의해 실행되는 경우에, 상기 컴퓨팅 장치로 하여금 자원 관리자 모듈을 구현하도록 하는 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 자원 관리자 모듈은,
    클라이언트 장치에 대한 시스템 정보를 검출하는 단계;
    검출된 상기 클라이언트 장치에 대한 시스템 정보에 기초하여 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는 단계;
    필터링된 상기 애플리케이션 데이터를 사용하여 상기 애플리케이션 카탈로그와의 상호작용을 위한 페이지 정보를 확인하는 단계; 및
    상기 클라이언트 장치가 상기 애플리케이션 카탈로그와의 상호작용을 위한 페이지를 렌더링하는 것을 가능하게 하기에 충분한, 확인된 페이지 정보를 상기 클라이언트 장치로 통신하는 단계를 수행하도록 구성되는
    컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 시스템 정보는 상기 클라이언트 장치의 하드웨어 구성에 관한 정보를 포함하는
    컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 시스템 정보는 상기 클라이언트 장치에 대해 할당된 장치 클래스에 관한 정보를 포함하는
    컴퓨터 판독가능 저장 매체.
  4. 제3항에 있어서,
    상기 클라이언트 장치에 할당된 장치 클래스는 상기 클라이언트 장치에 대한 장치의 유형을 나타내도록 구성되는
    컴퓨터 판독가능 저장 매체.
  5. 제3항에 있어서,
    상기 클라이언트 장치에 할당된 장치 클래스는 상기 클라이언트 장치의 하나 이상의 하드웨어를 나타내도록 구성되는
    컴퓨터 판독가능 저장 매체.
  6. 제1항에 있어서,
    상기 클라이언트 장치에 대한 시스템 정보를 검출하는 단계는 서비스 제공자로부터의 자원에 액세스하기 위한 상기 클라이언트 장치의 요청과 함께, 상기 서비스 제공자에게 네트워크를 통해 상기 클라이언트 장치에 의해 제공된 시스템 정보를 수집하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  7. 제1항에 있어서,
    상기 클라이언트 장치에 대한 시스템 정보를 검출하는 단계는 상기 시스템 정보를 획득하기 위해 상기 클라이언트 장치와 연관된 클라이언트 계정을 참조하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  8. 제1항에 있어서,
    검출된 상기 클라이언트 장치에 대한 시스템 정보에 기초하여 상기 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는 단계는 상기 검출된 시스템 정보에 의해 기술된 상기 클라이언트 장치의 장치 구성에 타깃팅된 애플리케이션을 식별하도록 상기 애플리케이션을 필터링하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  9. 제1항에 있어서,
    검출된 상기 클라이언트 장치에 대한 시스템 정보에 기초하여 상기 애플리케이션 카탈로그의 애플리케이션 데이터를 필터링하는 단계는,
    상기 검출된 시스템 정보를 사용하여 상기 클라이언트 장치의 구성 및 성능을 판정하는 단계; 및
    판정된 상기 클라이언트 장치의 구성 및 성능과 매칭(matching)되는 상기 애플리케이션 데이터에 의해 기술된 애플리케이션을 선택하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  10. 제1항에 있어서,
    상기 페이지 정보는 상기 클라이언트 장치가 상기 애플리케이션 카탈로그의 하나 이상의 필터링된 뷰를 선택적으로 생성하는 것을 가능하게 하는 필터링된 애플리케이션 데이터를 포함하는
    컴퓨터 판독가능 저장 매체.
KR1020137024500A 2011-03-21 2012-03-09 애플리케이션 저장 애플리케이션의 필터링 및 프로모션 기법 KR101961965B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/052,983 2011-03-21
US13/052,983 US9424018B2 (en) 2011-03-21 2011-03-21 Filtering and promoting application store applications
PCT/US2012/028386 WO2012128968A2 (en) 2011-03-21 2012-03-09 Filtering and promoting application store applications

Publications (2)

Publication Number Publication Date
KR20140010402A true KR20140010402A (ko) 2014-01-24
KR101961965B1 KR101961965B1 (ko) 2019-03-25

Family

ID=46858903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137024500A KR101961965B1 (ko) 2011-03-21 2012-03-09 애플리케이션 저장 애플리케이션의 필터링 및 프로모션 기법

Country Status (6)

Country Link
US (2) US9424018B2 (ko)
EP (1) EP2689388A4 (ko)
JP (1) JP6072759B2 (ko)
KR (1) KR101961965B1 (ko)
CN (1) CN102693495B (ko)
WO (1) WO2012128968A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
CN102957727A (zh) * 2011-08-26 2013-03-06 腾讯科技(深圳)有限公司 Sns网络中好友动态提示方法、系统、客户端及服务器
US20130337785A1 (en) * 2012-06-01 2013-12-19 Airpush, Inc. Methods and systems for providing a dynamic array of services and information through a dynamic icon
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US8584019B1 (en) * 2012-08-29 2013-11-12 Mitesh Gala Location-based and other criteria-based establishment management systems and methods
CN102930017B (zh) * 2012-10-31 2016-08-03 百度在线网络技术(北京)有限公司 一种用于在移动终端上提供搜索结果的方法和设备
US10942735B2 (en) * 2012-12-04 2021-03-09 Abalta Technologies, Inc. Distributed cross-platform user interface and application projection
WO2014092289A1 (ko) * 2012-12-12 2014-06-19 에스케이플래닛 주식회사 클라우드 서비스 제공 방법, 이를 위한 시스템 및 장치
CN111475170B (zh) 2012-12-12 2024-02-02 华为技术有限公司 多屏应用启用和分发服务
EP2959381A4 (en) * 2013-02-21 2016-09-14 Sweetlabs Inc SYSTEMS AND METHODS FOR INTEGRATED RECOMMENDATIONS
US10656800B2 (en) 2013-03-29 2020-05-19 Microsoft Technology Licensing, Llc Visual configuration and activation
US10452222B2 (en) * 2013-05-29 2019-10-22 Microsoft Technology Licensing, Llc Coordination of system readiness tasks
CN110049488B (zh) 2013-11-18 2022-01-14 华为终端有限公司 应用程序推送方法、装置、设备及系统
US10324987B2 (en) * 2013-12-31 2019-06-18 Samsung Electronics Co., Ltd. Application search using device capabilities
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US9402003B2 (en) 2014-04-08 2016-07-26 Alcatel-Lucent Data allocation for pre-paid group data plans
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US20150365469A1 (en) * 2014-06-17 2015-12-17 Google Inc. System and method for integrating web and native applications from web-based contexts
CN104615452A (zh) * 2014-09-19 2015-05-13 安一恒通(北京)科技有限公司 信息提供方法和装置
CN104375891A (zh) * 2014-11-04 2015-02-25 普华基础软件股份有限公司 一种应用程序管理系统
US9876849B2 (en) 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
CN105162842A (zh) * 2015-08-04 2015-12-16 北京金山安全软件有限公司 一种应用墙中应用的显示方法及装置
CN105141680A (zh) * 2015-08-18 2015-12-09 北京金山安全软件有限公司 一种推荐网络资源的方法和装置
DE112015006537T5 (de) * 2015-08-20 2018-02-15 Google LLC (n.d.Ges.d. Staates Delaware) Gerätebasierte filterung von inhaltselementen, die mit mobilen anwendungen verbunden sind
EP3427127B1 (en) 2016-03-11 2022-06-15 Limbic Life Ag Occupant support device and system for controlling objects
EP3226182A1 (en) * 2016-03-29 2017-10-04 Locatee AG Device, system and method for monitoring usage of functional facilities
US9800994B1 (en) * 2016-04-08 2017-10-24 Quest Software Inc. Systems and methods for cloud-based device configuration management of heterogeneous devices
CN107515818B (zh) * 2016-06-15 2021-02-05 阿里巴巴(中国)有限公司 测试软件开放方法、系统及装置
CN108229160A (zh) * 2016-12-09 2018-06-29 广州市动景计算机科技有限公司 应用程序的筛选方法、装置及服务器
GB2557611A (en) 2016-12-12 2018-06-27 Virtuosys Ltd Edge computing system
GB2557615A (en) * 2016-12-12 2018-06-27 Virtuosys Ltd Edge computing system
JP6819386B2 (ja) * 2017-03-17 2021-01-27 株式会社リコー 画像処理装置、システムおよび情報処理方法
CN107229861A (zh) * 2017-06-27 2017-10-03 广东欧珀移动通信有限公司 应用存储、显示方法及应用存储、显示装置及终端设备
US10942836B2 (en) 2017-10-26 2021-03-09 Nutanix, Inc. Application curation
US10417232B2 (en) 2017-12-22 2019-09-17 Microsoft Technology Licensing, Llc Associating hardware to store applications
US10740085B2 (en) * 2018-11-30 2020-08-11 Target Brands, Inc. Webserver interface for deployment management tool
CN110766526B (zh) * 2019-10-28 2023-10-10 陈灏 一种接入平板电脑应用商店的应用发现与定制系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088367A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Mobile wireless communications device and system providing dynamic management of carrier applications and related methods
KR20110020178A (ko) * 2009-08-21 2011-03-02 삼성전자주식회사 애플리케이션 다운로드 서비스방법, 애플리케이션 제공 서비스방법, 및 이를 적용한 사용자 단말기

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US6327623B2 (en) * 1997-05-30 2001-12-04 Texas Instruments Incorporated Computer system with environmental detection
US6496979B1 (en) * 1997-10-24 2002-12-17 Microsoft Corporation System and method for managing application installation for a mobile device
US6356905B1 (en) * 1999-03-05 2002-03-12 Accenture Llp System, method and article of manufacture for mobile communication utilizing an interface support framework
US8161129B2 (en) * 1999-06-24 2012-04-17 Sony Corporation Communication system, network system, information controller and terminal equipment
US6836792B1 (en) 1999-12-03 2004-12-28 Trend Micro Incorporated Techniques for providing add-on services for an email system
KR20000049446A (ko) 2000-03-20 2000-08-05 김희석 이동단말기용 게임 프로그램 다운로딩 시스템 및 그 방법
US7031945B1 (en) * 2000-07-24 2006-04-18 Donner Irah H System and method for reallocating and/or upgrading and/or rewarding tickets, other event admittance means, goods and/or services
US7127705B2 (en) * 2000-09-06 2006-10-24 Oracle International Corporation Developing applications online
JP2008269634A (ja) 2000-12-08 2008-11-06 Seiko Epson Corp ソフトウェアのインストール方法
SE0100188L (sv) * 2001-01-24 2002-07-25 Ericsson Telefon Ab L M En anordning och ett förfarande relaterande till access av slutanvändarstationer i en portalstruktur
US20040030746A1 (en) * 2001-08-13 2004-02-12 Sathyanarayanan Kavacheri Hierarchical client detection in a wireless portal server
US7752326B2 (en) * 2001-08-20 2010-07-06 Masterobjects, Inc. System and method for utilizing asynchronous client server communication objects
JP3785640B2 (ja) 2002-02-25 2006-06-14 ソニー株式会社 サービス提供装置及びサービス提供方法
GB2402781A (en) * 2002-03-22 2004-12-15 Sun Microsystems Inc Mobile download system
US7779407B2 (en) 2002-05-29 2010-08-17 Adams Phillip M Computer-hardware, life-extension apparatus and method
US7233790B2 (en) * 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
CA2494122A1 (en) * 2002-07-31 2004-02-12 Truecontext Corporation Contextual computing system
US7113776B2 (en) * 2002-08-30 2006-09-26 Qualcomm Inc. System and method for application and application metadata filtering based on wireless device capabilities
US7461067B2 (en) * 2002-09-13 2008-12-02 Motricity, Inc. System for supporting production, management and delivery of media content for wireless devices
EP1398948B1 (en) * 2002-09-13 2013-11-06 Ricoh Company, Ltd. Image forming apparatus, methods used therein and a computer readable storage medium
EP1526448B1 (en) * 2003-10-24 2008-11-12 Sap Ag Method and computer system for document authoring
KR20050048320A (ko) 2003-11-19 2005-05-24 삼성전자주식회사 네트워크를 통하여 소프트웨어를 설치하는 장치 및 방법
US20050198265A1 (en) * 2004-01-30 2005-09-08 Peter Veprek Method and apparatus for information notification
US20090019061A1 (en) * 2004-02-20 2009-01-15 Insignio Technologies, Inc. Providing information to a user
US7607141B2 (en) * 2004-05-03 2009-10-20 Microsoft Corporation Systems and methods for support of various processing capabilities
US7966391B2 (en) * 2004-05-11 2011-06-21 Todd J. Anderson Systems, apparatus and methods for managing networking devices
US7493388B2 (en) * 2004-08-20 2009-02-17 Bdna Corporation Method and/or system for identifying information appliances
GB0426736D0 (en) 2004-12-06 2005-01-12 Omnifone Ltd MyFone
US7810105B2 (en) * 2004-12-29 2010-10-05 Motorola, Inc. Method and apparatus for running different types of applications on a wireless mobile device
US7512401B2 (en) * 2005-04-04 2009-03-31 Nokia Corporation Method and system for updating capabilities of a device
US20080270561A1 (en) * 2005-06-30 2008-10-30 Cascada Mobile Corp. System and Method of Recommendation and Provisioning of Mobile Device Related Content and Applications
US7804787B2 (en) * 2005-07-08 2010-09-28 Fluke Corporation Methods and apparatus for analyzing and management of application traffic on networks
US7724399B2 (en) * 2005-09-19 2010-05-25 Silverbrook Research Pty Ltd Method of downloading and installing a software object
US7558597B2 (en) * 2005-09-19 2009-07-07 Silverbrook Research Pty Ltd. Retrieving a ringtone via a coded surface
US8209620B2 (en) * 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions
US8788588B2 (en) * 2006-05-03 2014-07-22 Samsung Electronics Co., Ltd. Method of providing service for user search, and apparatus, server, and system for the same
JP4127315B2 (ja) * 2006-05-24 2008-07-30 株式会社日立製作所 デバイス管理システム
US20080178202A1 (en) * 2007-01-18 2008-07-24 General Instrument Corporation Interface For Supporting an Element Management System
US20080250323A1 (en) * 2007-04-04 2008-10-09 Huff Gerald B Method and apparatus for recommending an application-feature to a user
WO2009149063A1 (en) * 2008-06-02 2009-12-10 Azuki Systems, Inc. Media mashup system
US20090307682A1 (en) 2008-06-08 2009-12-10 Sam Gharabally Techniques for Acquiring Updates for Application Programs
US20100057790A1 (en) * 2008-08-29 2010-03-04 Johnson R Brent Secure virtual tape management system with console and catalog monitoring and updating
US8745153B2 (en) 2009-02-09 2014-06-03 Apple Inc. Intelligent download of application programs
US8855601B2 (en) * 2009-02-17 2014-10-07 Lookout, Inc. System and method for remotely-initiated audio communication
US8340635B2 (en) 2009-03-16 2012-12-25 Apple Inc. Capability model for mobile devices
US9189244B2 (en) * 2009-08-18 2015-11-17 Adobe Systems Incorporated Methods and systems for managing data service specifications
EP2288113B1 (en) 2009-08-21 2014-09-24 Samsung Electronics Co., Ltd. Apparatuses for downloading applications via application lists
US9485535B2 (en) * 2010-01-13 2016-11-01 Qualcomm Incorporated Notification of interactivity event asset delivery sources in a mobile broadcast communication system
US20110177775A1 (en) * 2010-01-13 2011-07-21 Qualcomm Incorporated Signaling mechanisms, templates and systems for creation and delivery of interactivity events on mobile devices in a mobile broadcast communication system
US9032466B2 (en) * 2010-01-13 2015-05-12 Qualcomm Incorporated Optimized delivery of interactivity event assets in a mobile broadcast communication system
US8676991B2 (en) * 2010-01-13 2014-03-18 Qualcomm Incorporated Signaling mechanisms and systems for enabling, transmitting and maintaining interactivity features on mobile devices in a mobile broadcast communication system
US8166106B2 (en) * 2010-04-15 2012-04-24 Microsoft Corporation Targeting applications based on mobile operator
US9584624B2 (en) * 2010-04-15 2017-02-28 Blackberry Limited Method and system for transmitting an application to a device
US20110307354A1 (en) * 2010-06-09 2011-12-15 Bilgehan Erman Method and apparatus for recommending applications to mobile users
US9372885B2 (en) * 2010-06-11 2016-06-21 Doat Media Ltd. System and methods thereof for dynamically updating the contents of a folder on a device
US8396759B2 (en) * 2010-06-18 2013-03-12 Google Inc. Context-influenced application recommendations
US20120072312A1 (en) * 2010-09-22 2012-03-22 Microsoft Corporation Curated Application Store
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US20120096435A1 (en) * 2010-10-18 2012-04-19 Microsoft Corporation Capability-based application recommendation
US9703539B2 (en) * 2010-10-29 2017-07-11 Microsoft Technology Licensing, Llc Viral application distribution
US8869307B2 (en) * 2010-11-19 2014-10-21 Mobile Iron, Inc. Mobile posture-based policy, remediation and access control for enterprise resources
US8359016B2 (en) * 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US8953199B2 (en) * 2011-01-31 2015-02-10 Hewlett-Packard Development Company, L.P. Method and system to recommend an application
US20120216122A1 (en) * 2011-02-23 2012-08-23 Microsoft Corporation Application store topics
US8516308B1 (en) * 2011-03-09 2013-08-20 Amazon Technologies, Inc. Crash based incompatibility prediction for classes of mobile devices crash data
US8788944B1 (en) * 2011-03-09 2014-07-22 Amazon Technologies, Inc. Personalized mobile device application presentation using photograph-based capability detection
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
US9208253B2 (en) * 2011-11-09 2015-12-08 Cellco Partnership Efficient transfer of web content to different user platforms
US9055120B1 (en) * 2011-12-16 2015-06-09 Google Inc. Device capability filtering
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
US20150365469A1 (en) * 2014-06-17 2015-12-17 Google Inc. System and method for integrating web and native applications from web-based contexts

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088367A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Mobile wireless communications device and system providing dynamic management of carrier applications and related methods
KR20110020178A (ko) * 2009-08-21 2011-03-02 삼성전자주식회사 애플리케이션 다운로드 서비스방법, 애플리케이션 제공 서비스방법, 및 이를 적용한 사용자 단말기

Also Published As

Publication number Publication date
EP2689388A4 (en) 2014-08-27
US9424018B2 (en) 2016-08-23
CN102693495A (zh) 2012-09-26
JP6072759B2 (ja) 2017-02-01
JP2014512039A (ja) 2014-05-19
KR101961965B1 (ko) 2019-03-25
CN102693495B (zh) 2018-08-07
WO2012128968A3 (en) 2012-11-08
WO2012128968A2 (en) 2012-09-27
US20120246291A1 (en) 2012-09-27
US20160321718A1 (en) 2016-11-03
EP2689388A2 (en) 2014-01-29

Similar Documents

Publication Publication Date Title
KR101961965B1 (ko) 애플리케이션 저장 애플리케이션의 필터링 및 프로모션 기법
US8479108B2 (en) Methods and systems for shareable virtual devices
US20160189214A1 (en) Personalizing Advertisements Using Subscription Data
US8744912B2 (en) Method and system for an advanced player in a network of multiple live video sources
US10713666B2 (en) Systems and methods for curating content
US20140067702A1 (en) Method and System for Dynamically Publishing, Sharing, Communication and Subscribing
US20120124126A1 (en) Contextual and task focused computing
JP6639528B2 (ja) ソーシャルネットワーキングシステムリソースに対するコール・トゥ・アクションを作成するためのシステムおよび方法
US20120246191A1 (en) World-Wide Video Context Sharing
US9424563B2 (en) Accessing medial context information using contextual links
KR20120116905A (ko) 사용자 정의된 애셋의 집합의 생성 및 공유를 가능화하는 컴퓨터 구현 방법
US8938759B2 (en) Program guide and apparatus
JP2016520887A (ja) コンテンツ及びサービスの集約、管理及び提示のシステム
CN102880627A (zh) 用于支持播客的技术和系统
US20110161091A1 (en) Systems and Methods for Connecting Entities Through Content
RU2741479C2 (ru) Система и способ предоставления мобильной рекламы
KR102481258B1 (ko) 미디어-플레이어 장치와의 딥 링크
US20170193059A1 (en) Searching For Applications Based On Application Usage
US8725795B1 (en) Content segment optimization techniques
US10671804B2 (en) Obtaining attribution information for representations
KR100824197B1 (ko) 멀티미디어 쇼핑 콘텐츠 제공 시스템 및 그 방법
JP5487299B2 (ja) 操作情報生成装置および操作情報生成方法
KR20170137815A (ko) 현재 애플리케이션 상태에서 광고 애플리케이션 상태로의 액세스
US20160188543A1 (en) Accessing Related Application States From A Current Application State
CN101203853B (zh) 用于支持播客的技术和系统

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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