KR20200033790A - 웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저 - Google Patents

웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저 Download PDF

Info

Publication number
KR20200033790A
KR20200033790A KR1020197012247A KR20197012247A KR20200033790A KR 20200033790 A KR20200033790 A KR 20200033790A KR 1020197012247 A KR1020197012247 A KR 1020197012247A KR 20197012247 A KR20197012247 A KR 20197012247A KR 20200033790 A KR20200033790 A KR 20200033790A
Authority
KR
South Korea
Prior art keywords
action
context
url
computer
web browser
Prior art date
Application number
KR1020197012247A
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 KR20200033790A publication Critical patent/KR20200033790A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents

Abstract

유니폼 리소스 로케이터(URL: Uniform Resource Locator)가 서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터 수신된다. URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션이 식별된다. 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자가 식별된다. 적어도 하나의 컨텍스트 액션과 연관된 항목(inventory) 정보에 대해 적어도 하나의 서비스 공급자와 통신된다. 적어도 하나의 컨텍스트 액션 및 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체가 모바일 웹 브라우저에 전송된다.

Description

웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저
본 출원은 그 전체 내용이 본원에 참조로 통합되는, 2016년 9월 28일자로 출원된 미국 특허 출원 제62/401,137호에 대한 우선권을 주장한다.
모바일 컴퓨팅 디바이스(MCD: Mobile computing device) 브라우저는 통상적으로 네트워크의 컨텐츠 리소스의 위치를 특정하고 네트워크(예를 들어, 인터넷)를 탐색 및 유틸리티의 네트워크로 변환하는 접속을 형성하는 유니폼 리소스 로케이터(URL: Uniform Resource Locators)를 통해 컨텐츠를 탐색한다. 예를 들어, 사용자가 브라우저 문서(예를 들어, 웹 페이지 또는 컨텐츠 리소스)의 하이퍼링크를 클릭하면, 하이퍼링크 내에 포함된 URL은 하나의 웹 페이지 또는 웹의 컨텐츠 리소스로부터 다른 웹 페이지 또는 웹의 컨텐츠 리소스로 사용자를 데려간다. 통상적으로, URL은 컨텐츠 리소스에 명시적으로 추가된다. 수동으로 삽입된 URL은 소프트웨어 개발자에 의해 코딩될 수 있거나 웹 페이지 생성 소프트웨어 어플리케이션에 의해 삽입할 수 있으며, 본질적으로 정적인 것으로 고려된다(참조 컨텐츠에 대한 변경이 이루어지지 않는 한 URL에 의해 참조되는 컨텐츠가 동일하게 유지됨을 의미함). 이와 비교하여, 동적 URL은 예를 들어, 컨텐츠를 생성하기 위해 스크립트를 실행하는 데이터베이스에 의해 구동되는 컨텐츠 서버에 대한 검색의 결과로서 동적으로 생성될 수 있는 컨텐츠를 참조할 수 있다.
웹 컨텐츠 내에 정의된 URL은 주로 플랫폼 독립적이며, MCD 상에서 실행되는 모바일 브라우저의 경계를 넘어 이용 가능한 네이티브(native) 모바일 어플리케이션의 존재에 대한 지식이 없다. 결과적으로, 하이퍼링크의 선택에 후속하여 사용자에게 더 나은 다음-액션 유틸리티를 제의할 수 있는 네이티브 모바일 어플리케이션이 사용자의 전반적인 브라우징 경험을 향상시키는 데 활용되지 않는다.
본 발명은 웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 것을 설명한다.
일 구현에서, 유니폼 리소스 로케이터(URL: Uniform Resource Locator)가 서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터 수신된다. URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션이 식별된다. 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자가 식별된다. 적어도 하나의 컨텍스트 액션과 연관된 항목(inventory) 정보에 대해 적어도 하나의 서비스 공급자와 통신된다. 적어도 하나의 컨텍스트 액션 및 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체가 모바일 웹 브라우저에 전송된다.
상술한 구현을 포함하는 설명되는 주제의 구현은, 컴퓨터로 구현되는 방법; 컴퓨터로 구현되는 방법을 수행하는 컴퓨터 판독가능 명령어들을 저장한 컴퓨터 판독가능 매체; 및 하나 이상의 컴퓨터와 상호 동작 가능하게 커플링되고, 하나 이상의 컴퓨터에 의해 실행될 때 컴퓨터로 구현되는 방법/비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 판독가능 명령어를 수행하는 명령어를 저장하는 유형의 비일시적 기계 판독가능 매체를 갖는 하나 이상의 컴퓨터 메모리 디바이스를 포함하는 컴퓨터로 구현되는 시스템을 사용하여 구현될 수 있다.
본 명세서에서 설명되는 주제는 후술하는 이점들 중 하나 이상을 실현하도록 특정 구현으로 구현될 수 있다. 첫째로, 설명되는 주제는 현재 사용자가 있는 모바일 어플리케이션을 떠나지 않고 제3자 모바일 어플리케이션으로부터의 항목 정보를 사용자가 볼 수 있게 함으로써 모바일 어플리케이션에 대한 사용자의 경험을 향상시킬 수 있다. 둘째로, 설명되는 접근법은 웹 페이지의 컨텐츠와 관련된 동작을 예측하고 모바일 어플리케이션 내에서 사용자에게 액션을 제시함으로써(즉, 모바일 어플리케이션 내에서 액션을 기본적으로(natively) 렌더링함으로써) 모바일 어플리케이션의 웹 페이지의 유틸리티를 개선한다. 셋째로, 설명되는 접근법은 모바일 어플리케이션 레벨에서 기본적으로 액션의 렌더링을 허용하고, 제3자 어플리케이션과의 어트리뷰션(attribution)을 향상시키는 것(예를 들어, 상거래 활동을 발원 모바일 어플리케이션 및/또는 웹 게시자에 귀속시키는 것)을 허용한다. 다른 이점들이 본 기술 분야의 통상의 기술자에게 명백할 것이다.
본 명세서의 주제의 하나 이상의 구현의 상세 사항이 상세한 설명, 청구 범위 및 첨부 도면에서 개진된다. 주제의 다른 특징, 양태 및 이점이 상세한 설명, 청구 범위 및 첨부 도면으로부터 명백해질 것이다.
도 1은 구현에 따라, 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하는 분산 컴퓨팅 시스템의 예를 나타내는 블록도이다.
도 2a 및 도 2b는 구현에 따라, 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하기 위한 방법의 일례를 나타내는 흐름도이다.
도 3은 구현에 따라, 컨텍스트 관련 액션을 식별하는 백엔드(backend) 서버에 대한 방법의 예를 나타내는 흐름도이다.
도 4는 구현에 따라, 컨텍스트 액션을 우선 순위화하는(prioritizing) 백엔드 서버에 대한 방법의 예를 나타내는 흐름도이다.
도 5는 본 발명의 구현에 따라, 설명된 알고리즘, 방법, 기능, 프로세스, 흐름 및 절차와 연관된 계산 기능을 제공하는 데 사용되는 컴퓨터로 구현되는 시스템의 예를 나타내는 블록도이다.
도 6은 일 실시예에 따른 모바일 컴퓨팅 디바이스의 일례를 나타내는 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
후술하는 상세한 설명은 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하는 모바일 웹 브라우저를 설명하고, 본 기술 분야의 통상의 기술자가 하나 이상의 특정 구현의 상황에서 개시된 주제를 만들고 사용할 수 있도록 제시된다. 개시된 구현의 다양한 수정, 개조 및 치환이 이루어질 수 있으며, 본 기술 분야의 통상의 기술자에게 용이하게 명백할 것이며, 정의된 일반적인 원리는 본 발명의 범위를 벗어나지 않고 다른 구현 및 어플리케이션에 적용될 수 있다. 일부 예에서, 설명된 주제의 이해를 얻는 데 불필요한 상세 사항은, 이러한 상세 사항이 본 기술 분야의 통상의 기술자의 기술의 범위 내에 있는 한 하나 이상의 설명되는 구현을 불필요한 상세 사항으로 모호하게 하지 않도록 생략될 수 있다. 본 발명은 설명되거나 나타내어지는 구현에 한정되는 것이 아니라, 설명된 원리 및 특징에 부합하는 가장 넓은 범위에 따르도록 의도된다.
모바일 컴퓨팅 디바이스(MCD)(예를 들어, 스마트 폰, 태블릿 컴퓨터 등) 브라우저는 통상적으로 네트워크의 컨텐츠 리소스의 위치를 특정하는 유니폼 리소스 로케이터(URL)를 통해 컨텐츠를 탐색하고, 네트워크(예를 들어, 인터넷)를 탐색 및 유틸리티의 네트워크로 변환하는 접속을 형성한다. 예를 들어, 사용자가 브라우저 문서(예를 들어, 웹 페이지 또는 컨텐츠 리소스)의 하이퍼링크를 클릭하면, 하이퍼링크 내에 포함된 URL은 하나의 웹 페이지 또는 웹의 컨텐츠 리소스로부터 다른 웹 페이지 또는 웹의 컨텐츠 리소스로 사용자를 데려온다. 통상적으로, URL은 컨텐츠 리소스에 명시적으로 추가된다. 수동으로 삽입된 URL은 소프트웨어 개발자에 의해 코딩되거나 웹 페이지 생성 소프트웨어 어플리케이션에 의해 삽입할 수 있으며, 본질적으로 정적인 것으로 고려된다(참조 컨텐츠에 변경이 이루어지지 않는 한, URL에 의해 참조되는 컨텐츠가 동일하게 유지됨을 의미함). 이와 비교하여, 동적 URL은 예를 들어, 컨텐츠를 생성하기 위해 스크립트를 실행하는 데이터베이스에 의해 구동되는 컨텐츠 서버에 대한 검색의 결과로서 동적으로 생성될 수 있는 컨텐츠를 참조할 수 있다.
웹 컨텐츠 내에 정의된 URL은 주로 플랫폼 독립적이며, MCD 상에서 실행되는 모바일 브라우저의 경계를 넘어 이용 가능한 네이티브 모바일 어플리케이션의 존재에 대한 지식이 없다. 결과적으로, 하이퍼링크의 선택에 후속하여 사용자에게 더 나은 다음-액션 유틸리티를 제의할 수 있는 네이티브 모바일 어플리케이션이 사용자의 전반적인 브라우징 경험을 향상시키는 데 활용되지 않는다.
네이티브 모바일 브라우저 레벨에서 렌더링되는 (예를 들어, 버튼 또는 다른 그래픽 사용자 인터페이스(GUI) 요소로) 관련된 컨텍스트 상거래 액션을 갖는 웹 페이지 상에 발견된 다음-액션 URL을 증가시키도록 구성된 모바일 웹 브라우저가 설명된다. 모바일 웹 브라우저는 사용 중인 웹 페이지의 URL을 백엔드 서버나 서비스에 전송한다. 또한, 상거래 공급자 어플리케이션 프로그래밍 인터페이스(API: Application Programming Interface)의 네트워크에 의해 제공되는 이용 가능한 상거래 액션의 실시간 항목 및 전송된 URL과 연관된 웹 페이지와 함께 포함된 정보로부터 추론된 다음-액션 의도의 지식이 사용자에게 추천된 컨텍스트 브라우징 액션을 제공하는 데 사용된다.
즉, 백엔드 서버는 사용자의 웹 페이지의 컨텐츠에 기초하여 사용자에 대해 관심 있는 다음-액션을 예측할 수 있고, 예측된 다음 액션을 수행할 수 있는 서비스 공급자를 식별할 수 있고, 서비스 공급자 API로부터 항목 정보를 수집할 수 있고, 렌더링을 위해 모바일 웹 브라우저에 다음-액션 및 항목 정보를 전송할 수 있다. 모바일 웹 브라우저는 (예를 들어 위에서 상술한 바와 같이 버튼을 사용하여) 다음-액션을 사용자에게 제시하며, 사용자는 모바일 웹 브라우저로부터 특정 서비스 공급자의 네이티브 어플리케이션으로 전환하지 않고 관련 항목 정보를 볼 수 있다. (예를 들어, 식사 예약을 설정하기 위해 또는 구매를 하기 위해) 제공되는 다음-액션 GUI 요소 또는 연관된 실시간 항목과의 상호 작용은 상거래 공급자의 관련 네이티브 모바일 어플리케이션으로의 딥링크(deeplink) 액션 또는 상거래 공급자의 모바일 웹사이트에 대한 링크로 귀결된다. 일부 구현에서, 상호 작용은, 사용자가 모바일 브라우저 환경을 떠나지 않아도 되도록, 모바일 브라우저의 네이티브 기능 내에서 완전히 완료되도록 구성될 수 있다.
하이-레벨(high-level)에서, 설명되는 기능은 다음과 같다:
1) 사용자의 모바일 브라우저는 네이티브 독립형 어플리케이션 또는 MCD에서 실행되는 모바일 어플리케이션 A(예를 들어, 모바일 GOOGLE CHROME, MOZILLA FIREFOX, APPLE SAFARI 등) 내에서 렌더링되는 브라우저이다. 웹 페이지 A는 모바일 브라우저에서 렌더링된다. 모바일 브라우저가 웹 페이지 A를 사용자에 의해 보여지도록 렌더링하는 것과 동시에(예를 들어, 병렬로), 모바일 브라우저는 관련 사용자-특정 정보(예를 들어, 사용자 위치, 서비스 공급자와 연관된 사용자 식별자, MCD의 유형 및 운영 체제)와 함께 웹 페이지 A의 URL을 갖는 요청을 백엔드 서비스에 전송한다. 모바일 브라우저는, 백엔드 서비스가 컨텍스트적으로 관련된(contextually-relevant) 상거래 액션들 및 컨텍스트적으로 관련된 상거래 액션들을 수행하도록 구비된 서비스 공급자의 목록을 포함하는 데이터 객체를 반환하도록 요청한다.
2) 백엔드 서비스는 잠재적인 다음-액션 사용자 사례의 목록으로서 URL과 연관된 매우 관련성이 있는 다음-액션 상거래 사용 사례를 식별한다. 이러한 사용 사례는 웹 페이지의 컨텐츠(예를 들어, 메타데이터, 텍스트, 링크, 이미지 등)를 평가하고 다음-액션의 컨텍스트 유틸리티("액션 인덱스")의 측정값을 계산하여 식별된다. 일부 경우에, 사용 사례는 또한 사용자-특정 정보 또는 도출된 의도 강도에 기초하여 식별될 수 있다. 특정 문턱값을 충족시키는 사용 사례(예를 들어, 미리 정해진 하위 문턱값 초과 또는 이상을 측정)가 고려된다.
3) 잠재적인 다음-액션 사용 사례의 식별된 목록이 주어지면 백엔드 서비스는 잠재적 사용 사례 중 적어도 하나를 수행하는 것으로 알려진 서비스 공급자에 대한 공급자 API를 사용하여 실시간 항목을 결정한다.
4) 잠재적인 다음-액션 사용 사례 목록, 질의된 실시간 항목 및 임의의 추가적인(선택적인) 정보(예를 들어, 사용자 위치)에 기초하여, 백엔드 서비스는 반환할 특정의 다음-액션을 식별한다. 백엔드 서비스는 데이터 객체를 컴파일하여 모바일 브라우저의 병렬 요청에 대한 응답과 함께 포함한다. 데이터 객체를 수신하면, 모바일 브라우저는 다음 액션을 사용자에게 보이도록 렌더링한다. 렌더링된 다음 액션과의 상호 작용은, 사용자가 항목을 미리 보고(preview), 원하는 다음 액션을 수행하도록 구비된 (예를 들어, 네이티브 어플리케이션 또는 모바일 웹 브라우저 어플리케이션을 사용하여) 서비스 공급자에 링크하고, 일부 경우에 모바일 브라우저의 네이티브 기능 내에서 원하는 다음 액션을 완료할 수 있게 한다.
상술한 설명 및 후술하는 설명의 추가적인 관점 및 이해를 제공하기 위한 특정 예로서, 사용자가 MCD 상에서 모바일 브라우저를 사용하여 웹을 브라우징하는 것을 고려한다. 사용자는 자신에게 추천되었고 다른 사람들이 이에 대해 얘기하는 것을 들은 식당을 검색한다. 사용자는 운영 시간, 위치, 전화 번호 및 메뉴 정보를 제공하는, 그 식당에 대한 공식 홈 페이지로 내비게이팅한다. 그러나, 공식 홈 페이지는 사용자의 다음의 의도된 액션(예를 들어, 배달을 위한 음식 주문, 식당으로의 택시 타기 설정, 예약하기 등)의 계속된 탐색 또는 수행을 위한 어떠한 URL도 제공하지 않는다.
사용자가 공식 홈 페이지 웹 페이지를 브라우징했을 때, 모바일 브라우저는 백엔드 서비스와 병렬로 통신하였고 현재 웹 위치(즉, 식당의 공식 홈 페이지)와 연관된 컨텍스트 상거래 액션의 목록을 요청했다. URL을 입력(사용자-관련 정보 포함)으로 사용하는 백엔드 서비스는, 운송, 음식 배달 및 식당 예약이 현재 웹 페이지 및 사용자와 연관된 잠재적으로 가능성이 있고 높은 컨텍스트의 상거래의 다음 액션이라는 것을 추론할 수 있다. 백엔드 서비스는 모바일 브라우저에 대한 병렬 요청에 대한 응답에서 다음 액션의 목록을 반환한다. 응답에 포함된 다음 액션은 예를 들어 다른 것들 중에서, (식당이 음식을 배달하나요? 음식 배달 서비스를 이용 가능하며 식당으로부터의 배달에 대해 개방되어 있나요? 택시 또는 제3자 운송 서비스가 운영되고 있으며 이들이 운송을 위한 이용 가능한 차량을 가지고 있나요? 등과 같은) 항목의 이용 가능성 및 도출된 사용자에 대한 의도의 강도를 고려하여 공식화된다. 의도의 강도는 웹 페이지로부터 도출되는 컨텍스트, 사용자 위치와 같은 사용자-특정 정보, 또는 시간과 같은 비사용자 특정 정보, 또는 본 발명과 일관되는 다른 데이터(또는 이들의 조합 또는 다른 데이터 유형)에 의해 결정될 수 있다.
백엔드 서비스로부터 응답을 수신하면, 모바일 브라우저는 (예를 들어, 렌더링된 웹 페이지로 통합된 버튼으로서 또는 사용자가 액세스하거나 무시할 수 있는 특정 위치(들)에서) 지나치게 눈에 띄지 않는 방식으로 컨텍스트적으로 관련된 상거래(다음) 액션들이 사용자에게 보이도록 렌더링한다. 사용자에게 제시되는 상거래 액션(다음-액션 옵션)은 사용자에 대한 웹 페이지의 유틸리티를 증대시킨다. 예를 들어, (이 예의 컨텍스트에서) 표면화된 다음-액션은 이하를 포함할 수 있다:
● 운송: 사용자가 (예를 들어, MCD 상의 위치 서비스 또는 다른 위치 결정 방법을 사용하여 결정되는) 현재 위치로부터 식당의 위치까지 사용자가 라이드-헤일링(ride-hailing) 옵션을 미리 볼 수 있게 하는 옵션 및 액션이 반환된다. 이용 가능한 서비스 공급자에 추가하여, 사용자는 예상되는 이동 시간, 이들을 캐리(carry)할 차량의 유형 및 서비스의 추정되는 비용을 제공받을 수 있다.
● 음식 배달: 사용자가 식당으로부터 음식 배달 옵션을 미리 볼 수 있게 하는 옵션 및 액션이 반환된다. 이용 가능한 서비스 공급자에 추가하여, 사용자는 주문 가능한 메뉴 아이템뿐만 아니라 예상되는 배달 시간도 제공받을 수 있다.
● 예약: 사용자가 식당에서 예약할 수 있게 하는 옵션 및 액션이 반환된다. 서비스 공급자에 추가하여, 사용자는 식당에서 이용 가능한 예약 시간 및 파티 크기를 제공받는다.
이 예에서, 사용자는 저녁에 그 식당에서 식사하는 것에 관심이 있다. 예약 옵션을 탐색한 후, 사용자는 자신의 필요에 맞는 시간과 파티 크기를 선택한다. 사용자는 예약 액션을 완료하기 위해 사용자의 지리적 영역에 대한 예약 기능을 제공할 수 있는 서비스 공급자의 네이티브 어플리케이션(예를 들어, OPENTABLE, WEBERVATIONS, PLANYO 등)으로 딥링크된다.
도 1은 구현에 따라, 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하는 분산 컴퓨팅 시스템의 예(EDCS)(100)를 나타내는 블록도이다. 예시적인 EDCS(100)는 모바일 웹 브라우저(110)를 갖는 MCD(102)(예를 들어, 상술한 MCD)를 포함한다. MCD(102)는 네트워크를 통해 (예를 들어, 상술한 바와 같은 "백엔드 서비스"를 제공하는" 백엔드 서버(106)에 접속할 수 있다. 네트워크(104) 및 백엔드 서버(106)는 하나 이상의 서비스 공급자와 연관된 하나 이상의 서비스 공급자 서버(108)에 추가로 접속할 수 있다. 일부 구현에서, 모바일 웹 브라우저(110)는 GOOGLE CHROME, MOZILLA FIREFOX 또는 APPLE SAFARI 웹 브라우저와 유사하게, 예를 들어, MCD(102) 상에 설치된 독립형 웹 브라우저인, MCD(102) 상의 네이티브 독립형 어플리케이션일 수 있다. 일부 구현에서, 모바일 웹 브라우저(110)는 모바일 어플리케이션 내에 렌더링된 웹 브라우저일 수 있다. 사용자가 모바일 어플리케이션을 사용할 때, 모바일 어플리케이션의 웹 페이지는 모바일 웹 브라우저(110) 상에 렌더링될 것이다.
모바일 웹 브라우저(110)는 사용자가 현재 액세스하고 있는 웹 페이지의 URL을 백엔드 서버(106)에 전송할 수 있다. 예를 들어, 모바일 웹 브라우저(110)가 MCD(102) 상의 독립형 어플리케이션인 경우, 사용자가 모바일 웹 브라우저(110)를 사용하여 웹 상에서 내비게이팅할 때, 모바일 웹 브라우저(110)는 액세스하여 URL을 백엔드 서버(106)에 전송할 수 있다. 모바일 웹 브라우저(110)가 모바일 어플리케이션 내에서 렌더링되는 경우, 사용자가 모바일 어플리케이션을 사용하고 모바일 웹 브라우저(110)가 모바일 어플리케이션의 웹 페이지를 렌더링할 때, 모바일 웹 브라우저(110)는 백엔드 서버(106)로 웹 페이지의 URL을 전송할 수 있다. 일부 구현에서, 모바일 웹 브라우저(110)는 웹 페이지와 연관된 액션의 목록을 요청하는 요청을 백엔드 서버(106)에 전송할 수 있으며, 그 요청에 웹 페이지의 URL을 포함할 수 있다.
일부 구현에서, 모바일 웹 브라우저(110)는 또한 URL과 함께 사용자-특정 정보를 백엔드 서버(106)에 전송할 수 있다. 예를 들어, 사용자-특정 정보는 사용자 위치 정보, 사용자 식별자 또는 서비스 공급자와 연관된 계정 정보(즉, 사용자의 UBER 계정 정보와 같은 제3자 사용자 식별자 또는 계정 정보), MCD(102)의 디바이스 유형 및 운영 체제, 및 본 발명과 일관되는 다른 데이터를 포함할 수 있다. 모바일 웹 브라우저(110)는 사용자 위치를 백엔드 서버(106)에 전송할 수 있어(사용자는 예를 들어, MCD/운영 체제로부터 사용자 위치에 대한 모바일 브라우저/어플리케이션 액세스를 허용함으로써 위치 공유에 대해 옵트 인(opt in)하도록 요청받을 수 있음에 유의한다) 위치-기반 항목의 검색 및 표시를 가능하게 한다. 사용자는 로열티(예를 들어, 포인트 또는 캐쉬백) 제의 및 기능을 용이하게 하기 위해 모바일 웹 브라우저(110)가 제3자 식별자 또는 계정 정보를 백엔드 서버(106)와 공유 가능하게 할 수 있다. 또한, 사용자는, 모바일 웹 브라우저(110)가 MCD(102)의 디바이스 유형 및 운영 체제를 백엔드 서버(106)와 공유 가능하게 할 수 있어, 백엔드 서비스는 MCD의 디바이스 유형 및 운영 체제와 매칭되는 적절한 서비스 공급자의 어플리케이션을 찾을 수 있다. 사용자-특정 정보는 표준 HTTP POST 요청 데이터로서 요청(모바일 웹 브라우저(110)에 의해 전송된 컨텍스트 액션의 목록을 요청하는 요청)에 부가될 수 있다. 모바일 웹 브라우저(110)는, 사용자가 URL 또는 사용자-특정 정보를 백엔드 서비스와 공유하기를 원하는지 여부에 대한 사용자 옵션을 제의할 수 있다. 사용자가 위치 공유 및 제3자 식별자/계정 공유의 옵트 아웃(opt out)을 선택하는 경우, 감소된 로열티 제의 및 다른 기능과 같은 감소된 기능이 제공될 수 있다. 사용자가 URL 공유 및 디바이스/운영 체제 공유를 옵트 아웃하는 경우, 컨텍스트 액션을 제공하는 모바일 웹 브라우저(110)의 기능이 또한 전체적으로 비활성화될 수 있다. 일부 구현에서, 백엔드 서비스와 공유된 URL 및 다른 정보가 짧은 기간(예를 들어, 정적으로-사전 정의되거나 동적으로-생성된 기간) 후에 자동으로 지워질 수 있거나, 사용자의 요청시 즉시 삭제될 수 있다.
일부 구현에서, 모바일 웹 브라우저(110)는, 백엔드 서버(106)가 URL의 웹 페이지의 컨텐츠와 컨텍스트적으로 관련된 액션들의 목록과 이러한 액션을 수행하도록 구비된 서비스 공급자의 목록을 포함하는 하나 이상의 데이터 객체를 반환하도록 요청할 수 있다.
백엔드 서버(106)는 URL(및 사용자-특정 정보)을 수신하면, URL과 연관된 관련 다음-액션 사용 사례(즉, 사용자가 다음에 수행할 수 있는 URL과 관련된 액션)를 식별할 수 있다. 일부 구현에서, 백엔드 서버(106)는 URL의 웹 페이지의 컨텐츠(예를 들어, 웹 페이지의 메타데이터, 텍스트, 링크, 웹 페이지의 이미지 등)를 평가하고 각 사용 사례에 대한 컨텍스트 유틸리티의 측정값을 계산함으로써 관련 다음-액션 사용 사례를 식별할 수 있다. 컨텍스트 유틸리티의 측정값은 사용 사례와 URL의 컨텍스트 간의 관련성을 나타낼 수 있다. 일부 구현에서, 백엔드 서버(106)는 미리 정해진 문턱값을 초과하는 컨텍스트 유틸리티의 측정값을 갖는 사용 사례만을 고려할 수 있다. 식별된 다음-액션 사용 사례가 주어지면, 백엔드 서버(106)는 식별된 다음-액션 사용 사례를 수행할 수 있는 서비스 공급자를 식별하고, 실시간 항목과 같은 항목 정보를 서비스 공급자에게 질의할 수 있다. 일부 구현에서, 백엔드 서버(106)는 항목 이용 가능성에 기초하여 서비스를 제공할 수 있는 서비스 공급자만을 고려할 수 있다. 일부 구현에서, 백엔드 서버(106)는 항목 정보 및 이용 가능성 확인 데이터에 대한 서비스 공급자의 API를 통해 서비스 공급자 서버(108)에 질의할 수 있다. 예를 들어, 백엔드 서버(106)는 웹 페이지로부터 추론된 컨텍스트 데이터 및 API 서비스의 지식에 기초하여 적절한 API 질의를 구축할 수 있다. 일부 경우에, 사용자의 현재 위치 정보가 제공되지 않는 경우, 백엔드 서버(116)는 목적지 주위의 항목 정보를 질의할 수 있다.
식별된 다음-액션 사용 사례, 질의된 항목 및 다른 정보(예를 들어, 사용자 위치 정보, 사용자의 제3자 식별자 또는 계정 정보, 디바이스 유형 및 운영 체제와 같은 사용자-특정 정보)에 기초하여, 백엔드 서버(106)는 다음-액션의 목록을 컴파일하여 모바일 웹 브라우저(110)에 반환할 수 있다. 예를 들어, 백엔드 서버(106)는 결정된 항목에 기초하여 적어도 하나의 서비스 공급자에 의해 수행될 수 있는 다음-액션만을 포함할 수 있다. 백엔드 서버(106)는 데이터 객체의 액션을 컴파일하여 모바일 웹 브라우저(110)에 반환할 수 있다. 일부 구현에서, 데이터 객체는 또한 서비스 및 관련 항목 정보를 제공할 수 있는 서비스 공급자를 포함할 수 있다. 또 다른 구현에서, 컴파일된 데이터는 모바일 브라우저(110)에 의해 어셈블링되는 복수의 데이터 객체로 모바일 브라우저(110)에 반환될 수 있다.
일부 구현에서, 백엔드 서버(106)는 다음-액션의 우선 순위화된 목록을 모바일 웹 브라우저(110)에 반환할 수 있다. 예를 들어, 식별된 각각의 다음-액션 사용 사례에 대해, 백엔드 서버(106)는 사용 사례를 수행할 수 있도록 결정된 서비스 공급자를 통해 반복할 수 있다. 백엔드 서버(106)는 서비스 공급자의 API와 통신하여 실시간 항목을 획득하고, 서비스 공급자가 이용 가능한 항목의 이해에 기초하여 특정 사용 사례를 수행할 수 있는지 여부를 결정할 수 있다. 항목에 기초한 액션 랭킹은 주로 웹 페이지로부터 추론된 컨텍스트 및 의도와 관련된 데이터 파라미터에 기초할 수 있다. 예를 들어, 웹 페이지가 뉴욕시(NYC)의 식당 A에서의 식사와 관련되는 경우, 백엔드 서버(106)는 2개의 잠재적인 다음-액션 사용 사례가 존재하는 것으로 결정할 수 있으며: 1) NYC에서 식사 예약을 하고 2) 식당 A에서 식사 예약을 하는 것이다. 서비스 공급자를 통해 서비스 공급자의 API에 대한 질의를 사용하는 것을 반복함으로써, 백엔드 서버(106)는 사용 사례들 중 적어도 하나를 수행할 수 있는 2개의 공급자를 식별할 수 있으며: 1) 공급자 A는 NYC에서 예약/식당을 가지고, 2) 공급자 B는 NYC와 식당 A에서 예약/식당을 갖는다. 이 정보에 기초하여, 정확한 식당에 대해 공급자 B에 의해 반환된 액션/항목이 현재 웹 페이지로부터 추론된 컨텍스트에 더욱 잘 매칭되는 것으로 인해 공급자 A보다 높이 랭킹될 것이다. 즉, 백엔드 서버(106)는 "공급자 A와 예약하기" 액션보다 "공급자 B와 예약하기" 액션을 우선 순위화할 것이다. 이하, 상이한 시나리오를 고려한다. 공급자 B가 식당 A에서 몇 달 동안 이용 가능한 예약을 갖지 않고, 또한 NYC에서 이용 가능한 식당의 제한된 공급을 갖는 경우, 공급자 A와 연관된 액션/목록이 공급자 B보다 높게 랭킹될 수 있다.
일부 경우에, 백엔드 서버(106)는 사용자-특정 정보에 기초하여 다음-액션을 우선 순위화할 수 있다. 예를 들어, 식당이 사용자의 현재 위치에서 멀리 떨어져 있는 경우, 음식 배달 및 택시 탑승의 액션이 예약 액션보다 낮게 랭킹될 수 있다. 모바일 웹 브라우저(110)가 사용자의 제3자 식별자 또는 계정 정보를 제공하는 경우, 백엔드 서버(106)는 보상/로열티 프로그램의 일부인 서비스 공급자 및 항목을 캐쉬백/보상을 제의하지 않는 서비스 공급자 및 항목보다 우선 순위화할 수 있다. 일부 경우에, 백엔드 서버(106)는 즉각적인 제의 및 리베이트를 제공하는 서비스 공급자를 우선 순위화할 수 있다.
데이터 객체를 수신하면, 모바일 웹 브라우저(110)는 예를 들어, 사용자가 현재 있는 웹 페이지 내에서 액션을 렌더링할 수 있다. 예를 들어, 모바일 웹 브라우저(110)는 각 액션에 대한 (아이콘, 버튼 또는 다른 GUI 요소와 같은) GUI 요소를 표시할 수 있다. 일부 구현에서, 렌더링된 액션과의 사용자의 상호 작용은, 사용자가 항목 정보 또는 액션을 수행할 수 있는 서비스 공급자에 대한 링크를 미리 보게 할 수 있다. 예를 들어, 사용자는 액션과 연관된 아이콘을 태핑(tapping)하거나 클릭할 수 있으며, 윈도우가 이용 가능한 항목 또는 서비스 공급자에 대한 링크를 표시하도록 팝-업될 수 있다. 팝-업 윈도우 내에서, 사용자는 서비스 공급자의 어플리케이션으로 사용자를 데려올 수 있는 항목 아이템이나 서비스 공급자에 대한 링크를 태핑하거나 클릭할 수 있으며, 사용자는 서비스 공급자의 어플리케이션 내에서 액션을 수행할 수 있다. 일부 구현에서, 사용자는 서비스 공급자의 어플리케이션으로 전환하지 않고, 모바일 웹 브라우저(110)의 네이티브 기능 내에서 액션을 수행할 수 있다.
위에 제공된 특정 예에 따라, 사용자가 식당 웹 페이지 상에 있는 경우, 모바일 웹 브라우저(110)는 식당 URL을 백엔드 서버(106)에 전송하고, 식당 웹 페이지와 연관된 컨텍스트 액션의 목록을 요청할 수 있다. 백엔드 서버(106)는, URL에 기초하여, 식당에서 예약하고, 식당으로의 승차를 요청하고, 식당으로부터의 음식 배달을 포함할 수 있는, 식당 웹 페이지와 관련성이 높은 컨텍스트 다음 액션을 식별할 수 있다. 백엔드 서버(106)는 이들 액션에 대한 서비스 공급자를 식별하고 항목 정보를 수집할 수 있다. 예를 들어, 백엔드 서버(106)는 현재 이용 가능한 차량의 수, 각각의 이용 가능한 차량의 유형, 추정되는 픽업 시간, 추정되는 이동 시간 및 비용과 같은 사용자의 현재 위치로부터 식당으로의 운송을 위한 옵션을 획득하기 위해 운송 서비스 공급자 서버(108)(예를 들어, UBER, LYFT 등)와 통신할 수 있다. 백엔드 서버(106)는 또한 식당에서 이용 가능한 예약 시간 및 파티 크기와 같은 예약을 위한 옵션을 획득하기 위해 예약 서비스 공급자 서버(108)(예를 들어, OPENTABLE, WEBERVATIONS, PLANYO 등)와 통신할 수 있다.
백엔드 서버(106)는 식별된 다음 액션 및 관련 항목 정보를 MCD(102)에 전송할 수 있다. 수신시에, 모바일 웹 브라우저(110)는 식당 웹 페이지에 다음 액션의 아이콘을 제시할 수 있으며, 예를 들어, 모바일 웹 브라우저(110)는 "Uber로 탑승"을 나타내는 하나의 아이콘과 "OpenTable로 예약"을 나타내는 다른 아이콘을 표시할 수 있다. 일부 구현에서, 모바일 웹 브라우저(110)가 다음 액션의 아이콘을 제시하는 방식은 기본적으로 나타나며 사용자의 브라우징 경험에 방해가 되지 않도록 설계된다. 예를 들어 사용자가 아이콘 "OpenTable로 예약"을 클릭하거나 태핑하는 경우, 윈도우가 팝-업되어 식당에서 이용 가능한 예약 시간과 파티 크기를 나타내는 복수의 엔트리, 예를 들어, "6:30pm, 4명 손님"의 하나의 엔트리 및 "7pm, 2명 손님"의 다른 엔트리를 보여줄 수 있다. 사용자는 예약 시간 및 파티 크기를 선택하고 대응 엔트리를 클릭하거나 클릭할 수 있으며, 이는 사용자를 MCD(102) 상의 OPENTABLE의 네이티브 어플리케이션으로 전환하여 사용자가 예약을 완료할 수 있게 한다. 일부 구현에서, 서비스 공급자의 네이티브 어플리케이션으로 전환할 때, 모바일 웹 브라우저(110)는 특정 컨텍스트 정보를 서비스 공급자의 네이티브 어플리케이션으에 전송할 수 있다. 예를 들어, 사용자가 "7pm, 2명 손님" 항목 엔트리를 선택한 경우, 모바일 웹 브라우저(110)는 이 정보를 OPENTABLE의 네이티브 어플리케이션에 전송하여, 사용자가 OPENTABLE에서 특정 예약을 하기 위해 사용할 수 있도록 컨텍스트 정보가 네이티브 어플리케이션에서 포퓰레이팅될 수 있다. 일부 구현에서, 모바일 웹 브라우저(110)는 서비스 공급자의 네이티브 어플리케이션으로 전환하지 않고 모바일 웹 브라우저(110)의 네이티브 기능 내에서 예약을 완료할 수 있다.
모바일 웹 브라우저(110)는 다음 액션을 다양한 방식으로 사용자에게 제시할 수 있다. 제1 예에서, 아이콘이 브라우저 툴바에서 언제나 보일 수 있고, 액션이 이용 가능할 때 컬러를 변경한다. 아이콘을 태핑하면 다음-액션을 제시한다. 제2 예에서, 브라우저 툴바는 액션(들)이 이용 가능할 때 컬러를 변경할 수 있다. 툴바 상의 태핑이 식별된 다음 액션(들)을 표시한다. 제3 예에서, 버튼은 브라우저 푸터(footer) 툴바 바로 위 또는 브라우저 헤더 툴바 바로 아래의 작은 공간에 렌더링되지만, 스크롤링 동안 사라진다. 본 기술 분야의 통상의 기술자에 의해 이해될 바와 같이, 본 개시와 일관되는 다른 GUI 제시 옵션이 가능하다. 이들 다른 제시 옵션 또한 본 발명의 범위 내에 있는 것으로 고려된다.
일부 구현에서, 액션은 액션의 완료와 관련된 할인 또는 제의로 또는 할인 또는 제의 없이 사용자에게 제시될 수 있다. 제의 및/또는 할인은 거래시 서비스 공급자에게 적용될 수 있거나 또는 사용자가 연관된 로열티 서비스(제1 당사자 또는 제3자)에 해당 로열티 서비스에 특정하여 채용되는 통화의 형태로 적용될 수 있다. 예를 들어 제1 구매에 대한 X% 할인은 액션 버튼(즉, 액션의 GUI 요소)에서 제의될 수 있으며, 구매시에 공급자 어플리케이션에서 자동 할인되며, Y%의 캐쉬백이 액션 버튼에서 제의될 수 있으며 로열티 제공 브라우저 내에서 사용자에게 수여되고, Z% 캐쉬백은 액션 버튼에서 제의될 수 있으며, 사용자가 속한 제3자 캐쉬백 로열티 서비스와 협업하여 수여되거나, 다수의 보너스 마일이 액션 버튼에서 제의될 수 있으며 사용자가 속한 항공 로열티 서비스를 사용하여 사용자에게 수여된다.
도 2a와 도 2b 및 도 3과 도 4는 구현에 따라, 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하기 위한 예시적인 방법을 나타내는 흐름도이다. 설명의 명료성을 위해, 이 설명은 일반적으로 본 발명과 연관된 모든 다른 도면의 일부의 컨텍스트에서 연관된 방법을 설명한다. 그러나, 도 2a와 도 2b 및 도 3과 도 4에 나타낸 방법(각각 200 및 300-400)은 예를 들어, 적절한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템, 환경, 소프트웨어 및 하드웨어의 조합에 의해 적절하게 수행될 수 있음이 이해될 것이다. 일 구현에서, 도 2a와 도 2b 및 도 3과 도 4에 나타낸 방법의 다양한 단계는 병렬로, 조합하여, 루프 내에서 또는 임의의 순서로 실행될 수 있다.
도 2a 및 도 2b는 구현에 따라, 웹 페이지 컨텐츠에 기초하여 컨텍스트 액션을 제공하기 위한 방법(200)의 예를 나타내는 흐름도이다.
방법(200)은 202에서 시작한다. 202로부터, 방법(200)은 204로 진행한다.
204에서, 사용자는 모바일 웹 브라우저에서 URL로 내비게이팅한다. 204로부터, 방법(200)은 206으로 진행한다.
206에서, 모바일 웹 브라우저는 컨텍스트 분석 및 현재 URL의 컨텍스트에 관련된 다음 액션 및 서비스 공급자를 결정하기 위해 백엔드 서버로 현재 URL을 전송한다. 206으로부터, 방법(200)은 208로 진행한다.
208에서(도 3에서 더욱 상세하게 설명되는 바와 같이), 백엔드 서버는 현재의 URL 컨텍스트를 분석하고 URL에 기초하여 다음 액션 및 서비스 공급자를 식별한다. 백엔드 서버는 액션 및 서비스 공급자를 우선 순위화할 수 있다. 예를 들어, 백엔드 서버는 미리 정해진 문턱값을 초과하는 현재 URL에 대한 컨텍스트 관련성의 측정값과, 항목의 이용성에 기초하여 서비스를 제공할 수 있는 서비스 공급자만을 고려할 수 있다. 백엔드 서버는 우선 순위화된 액션 및 서비스 공급자를 목록에 포함할 수 있다. 208로부터, 방법(200)은 210으로 진행한다.
210에서, 모바일 웹 브라우저는 백엔드 서버로부터 컨텍스트 액션 및 서비스 공급자의 우선 순위화된 목록을 수신하여 그 목록을 사용자에게 제시한다. 예를 들어, 모바일 웹 브라우저는 서비스 공급자와 연관된 액션을 나타내는 아이콘 또는 다른 그래픽 사용자 인터페이스 요소를 표시할 수 있다. 210으로부터, 방법(200)은 212로 진행한다.
212에서, 사용자는 모바일 웹 브라우저에 의해 제시된 컨텍스트 액션을 수행할 의도를 표현한다. 사용자의 표현은 모바일 웹 브라우저에서 기본적으로 제시되는 액션 아이콘의 탭, 스와이프 또는 클릭일 수 있다. 사용자의 표현에 응답하여, 모바일 웹 브라우저는 실시간 항목과 같은 선택된 서비스 공급자의 항목 정보를 사용자에게 제시할 수 있다. 일부 구현에서, 사용자는 목록 내에서 하나 이상의 아이템을 선택할 수 있다. 212로부터, 방법(200)은 도 2b의 214로 진행한다.
이하 도 2b를 참조하면, 214에서, 모바일 웹 브라우저는, 사용자가 선택한 액션(예를 들어, 구매 또는 예약)이 네이티브 모바일 웹 브라우저 환경 내에서 완료될 수 있는지 여부를 결정한다. 일부 구현에서, 백엔드 서버는, 네이티브 모바일 웹 브라우저 내에서 액션이 완료될 수 있는지 여부를 결정할 수 있고, 모바일 웹 브라우저에 표시를 전송할 수 있다. 예를 들어, 백엔드 서버가 모바일 웹 브라우저에 액션의 목록을 반환하면, 백엔드 서버는 네이티브 모바일 웹 브라우저 내에서 각 액션이 완료될 수 있는지 여부를 나타낼 수 있다. 백엔드 서버는 공급자 API로부터 반환된 정보, 백엔드 데이터베이스에 저장된 공급자와 관련된 데이터, 사용자 디바이스 및 운영 체제 정보 및 잠재적으로 추가적인 사용자 정보에 기초하여 결정을 내릴 수 있다. 예를 들어, IOS 디바이스 상의 사용자는 테니스 라켓을 표시하는 페이지로 내비게이팅하며, 사용자에게 제시되는 액션은 "jet.com으로부터 라켓 구매"이다. 백엔드 서버는 JET.COM과 연관된 공급자 정보와 사용자 디바이스 및 운영 체제에 대한 지식을 사용하여, APPLE PAY를 사용하여 모바일 웹 브라우저 내에서 JET.COM을 통한 구매가 가능하다는 것을 식별할 수 있다. 백엔드 서버로부터의 표시에 기초하여 사용자가 "jet.com으로부터 라켓 구매" 액션을 위한 아이콘을 태핑하면, 모바일 웹 브라우저는 "Apple Pay로 지불" 버튼이 있는 팝-업 카드 또는 윈도우를 자동으로 표시할 수 있다. 사용자는 "Apple Pay로 지불" 버튼을 태핑하여 지불을 승인하고 거래를 완료할 수 있다. 일부 구현에서, 백엔드 서버가 브라우저에 표시를 전송하는 대신, 사용자가 "jet.com으로부터 라켓 구매" 액션에 대한 아이콘을 태핑하면, 브라우저가 백엔드 서버와 통신할 수 있고, 백엔드 서버가 "Apple Pay로 지불" 버튼을 갖는 팝-업 카드를 표시하도록 모바일 웹 브라우저에 명령할 수 있다.
액션이 네이티브 모바일 웹 브라우저 내에서 완료될 수 있는 것으로 결정되면, 방법(200)은 222로 진행한다. 그렇지 않고, 액션의 완료가 서비스 공급자의 네이티브 어플리케이션으로의 내비게이션을 필요로 하는 것으로 결정되면, 방법(200)은 216으로 진행한다.
216에서, 서비스 공급자의 네이티브 어플리케이션이 MCD 상에 설치되어 있는지 여부에 대한 결정이 이루어진다. 서비스 공급자의 네이티브 어플리케이션이 MCD 상에 설치되어 있지 않은 것으로 결정되면, 방법(200)은 220으로 진행한다. 서비스 공급자의 네이티브 어플리케이션이 MCD 상에 설치되어 있는 것으로 결정되면, 방법(200)은 218로 진행한다.
220에서, MCD는 컨텍스트 액션을 완료하기 위한 전제 조건으로서 서비스 공급자의 네이티브 어플리케이션을 설치하도록 명령받는다. 일부 구현에서는 이는 수동 사용자 프롬프트 및 액션, 완전히 자동화된 프로세스 또는 이 두 가지의 조합에 의해 달성될 수 있음에 유의한다. 220으로부터, 방법(200)은 218로 진행한다.
218에서, 모바일 웹 브라우저는 사용자를 서비스 공급자의 네이티브 어플리케이션으로 전환한다. 일부 구현에서, 모바일 웹을 전환하는 것은 모바일 웹 브라우저가 관련 컨텍스트 정보를 서비스 공급자의 네이티브 어플리케이션에 전송하는 것을 포함한다. 예를 들어, 모바일 웹 브라우저는 사용자가 선택한 항목 아이템을 서비스 공급자의 네이티브 어플리케이션에 전송할 수 있어, 서비스 공급자의 네이티브 어플리케이션이 사용자에 의한 사용을 위해 (예를 들어, 사용자가 선택한 항목 아이템을 예약 또는 구매하기 위해) 서비스 공급자의 네이티브 어플리케이션 인터페이스에 적절한 데이터를 사전-포퓰레이팅할 수 있다. 218 후에, 방법(200)은 222로 진행한다.
222에서, 사용자는 (모바일 웹 브라우저에서 기본적으로 또는 서비스 공급자의 네이티브 어플리케이션 내에서) 컨텍스트 액션을 수행한다. 222 후에, 방법(200)은 224로 진행한다. 224에서, 방법(200)은 중지된다.
도 3은 구현에 따라, 컨텍스트 관련 액션을 식별하는 백엔드 서버에 대한 방법(300)의 예를 나타내는 흐름도이다. 도 2a의 208로부터 도 3의 302에 입력된다.
302에서, 백엔드 서버는 모바일 웹 브라우저로부터 URL(및 다른 사용자-관련 정보)을 포함하는 요청을 수신한다. 302로부터, 방법(300)은 304로 진행한다.
304에서, 백엔드 서버는 예를 들어, URL 파싱, URL 컨텐츠 평가 또는 다른 방법을 사용하여 URL로부터 컨텍스트 데이터를 추출한다. 채용되는 방법은 1) 자연 언어 프로세싱 (URL 컨텐츠로부터 추출된) 구조화되지 않은 텍스트를 구조화된 액션/의도 컨텍스트로 매핑하는 수학적 기능에 기초하는 액션 의도 추론); 2) 자연 엔티티 인식 및 명확화 ((URL 컨텐츠로부터 추출된) 구조화되지 않은 텍스트 및 (URL 컨텐츠로부터 추출된) 파싱된 URL 하이퍼링크를 매핑하는 수학적 함수에 기초한 엔티티 식별(위치, 제품, 장소, 아티스트, 영화)); 3) 엔티티 조화 (하나의 서비스에서 식별된 엔티티를 다른 모든 서비스에서 동일한 엔티티에 매핑하는 수학적 함수에 기초한 크로스-서비스 엔티티 식별(예를 들어, 동일 식당을 나타내는 경우, FOURSQUARE 식당 식별자를 OPENTABLE 식당 식별자에 매칭)); 및 4) 다중-페이지 URL 탐색 (복수의 페이지의 "점프"에 대해 (URL 컨텐츠로부터 추출된) 링크된 웹 URL에 대한 1 및 2 및 3의 적용)을 포함할 수 있지만, 이에 한정되는 것은 아니다. 백엔드 서버는 추출된 컨텍스트 데이터를 사용하여 관련 액션 및 서비스 공급자를 식별할 수 있다. 예를 들어, 추출된(구조화된) 컨텍스트 데이터에 기초하여, 수학적 함수가 사용되어 컨텍스트를 액션 및 항목에 대해 (API를 사용하여) 질의할 연관된 (잠재적인) 공급자의 목록으로 매핑하는 데 사용될 수 있다. 304로부터, 방법(300)은 306으로 진행한다.
306에서, 백엔드 서버는 모든 컨텍스트 액션을 열거한다(enumerate). 예를 들어, 컴퓨터 프로그램 또는 코드는 컨텍스트 액션의 목록을 통해 루핑할 수 있으며, 여기서 컨텍스트 액션은 컨텍스트 액션의 내부(또는 백엔드) 정의 또는 스토리지를 가리키는(pointing) 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함한다. 306으로부터, 방법(300)은 308로 진행한다.
(도 4에서 더욱 상세히 설명되는) 308에서, 각각의 열거된 컨텍스트 액션에 대해, 백엔드 서버는 그 액션에 대한 모든 잠재적인 서비스 공급자에 걸쳐 반복하여, 사용자 및 URL과 관련된 액션 및 공급자 쌍을 식별한다. 예를 들어, 액션이 "식당 A에서 테이블 예약"인 경우, 백엔드 서버는 테이블 예약을 제공하기 위해 백엔드 서비스에 알려진 모든 공급자에 걸쳐 반복할 수 있다(예를 들어, 백엔드 서버는 백엔드 서비스가 알고 있는 서비스 공급자를 포함하는 데이터베이스를 가질 수 있다). 잠재적인 각 공급자에 대해, 백엔드 서버는 백엔드 서비스가 알고 있는 정보(예를 들어, 백엔드 데이터베이스로부터의 정보)가 이 공급자를 고려로부터 제거할 수 있는지(예를 들어, 공급자가 사용자가 거주하는 국가에서 식당을 제공하지 않음)를 우선 확인한다. 그 후, 백엔드 서버는, 추출된 컨텍스트 데이터가 이 공급자를 고려로부터 제거할 수 있는지(예를 들어, 이 식당에 대한 공급자 장소 식별자가 추출된 컨텍스트의 일부가 아님)를 결정할 수 있다. 마지막 두 단계에서 공급자가 제거되지 않으면, 백엔드 서버는 공급자 항목에 대해 공급자 API에 질의하고, API로부터의 항목이 이용 가능한 경우 액션 및 공급자의 쌍을 반환할 수 있다. 308로부터, 방법(300)은 310으로 진행한다.
310에서, 백엔드 서버는 모바일 웹 브라우저에 액션 및 공급자의 우선 순위화된 목록을 반환한다. 310으로부터, 방법(300)은 도 2a의 208로 복귀한다.
도 4는 구현에 따라, 컨텍스트 액션을 우선 순위화하는 백엔드 서버에 대한 방법(400)의 예를 나타내는 흐름도이다. 도 3의 308로부터 도 4의 402에 입력된다.
402에서, 백엔드 서버는 검사될 필요가 있는 더 많은 액션이 있는지 여부를 결정한다. 모든 액션이 검사된 경우, 방법(400)은 412로 진행한다. 검사될 필요가 있는 액션이 더 있다면, 방법(400)은 404로 진행한다.
404에서, 백엔드 서버는 모바일 웹 브라우저에서 기본적으로 또는 서비스 공급자의 네이티브 어플리케이션 내에서 현재 액션(즉, 현재 검사 중인 액션)을 완료할 수 있는 모든 서비스 공급자를 열거한다. 404로부터, 방법(400)은 406으로 진행한다.
406에서, 백엔드 서버는, 현재 액션에 대해 더 많은 공급자가 남아 있는지 여부를 결정한다. 현재 액션과 연관된 모든 공급자가 검사된 것으로(즉, 더 이상 공급자가 없음) 결정되면, 방법(400)은 다음 액션을 검사하기 위해 402로 다시 진행한다. 현재 액션에 대해 더 많은 공급자가 남아 있는 것으로 결정되면, 방법(400)은 다음 공급자를 검사하기 위해 408로 진행한다.
408에서, 백엔드 서버는, 다음 공급자가 예를 들어, 항목 이용 가능성에 기초하여 현재 액션을 완료할 수 있는지 여부를 결정한다. 일부 경우에, 실시간 항목이용 가능하지 않은 경우, 백엔드 서버는 결정을 위해 백엔드 데이터베이스에 저장된 데이터(예를 들어, 공급자가 이전에 제공한 액션 목록)를 사용할 수 있다. 공급자가 액션을 완료할 수 없는 것으로 결정되면, 방법(400)은 다음 공급자를 검사하기 위해 406으로 다시 진행한다. 다음 공급자가 액션을 완료할 수 있는 것으로 결정되면, 방법(400)은 410으로 진행한다.
410에서, 백엔드 서버는 액션 및 액션을 완료할 수 있는 공급자를 사용자에게 반환될 액션 및 공급자의 목록에 추가한다. 일부 구현에서, 새로운 액션 및 공급자 쌍이 추가될 때마다 액션 및 공급자의 목록이 다시 우선 순위화될 수 있다. 우선 순위는 항목 이용 가능성 및 액션과 공급자 간의 관련성을 나타내는 관련성 스코어에 기초할 수 있지만 이에 한정되지는 않는다. 일부 구현에서는 우선 순위화된 목록에서 더 적은 항목을 갖는 공급자에 우선하여 더 많은 항목을 갖는 공급자가 나열될 수 있다. 410으로부터, 방법(400)은 412로 진행한다. 대안적인 흐름에서, 410 후에 412로 진행하는 대신에, 방법(400)은 다시 406으로 진행할 수 있다(참조 문헌 "A" 참조).
412에서, 백엔드 서버는 모바일 웹 브라우저로 액션 및 공급자의 우선 순위화된 목록을 반환한다. 412로부터, 방법(400)은 도 3의 308로 복귀한다.
도 5는 본 개시의 구현에 따라, 설명된 알고리즘, 방법, 기능, 프로세스, 흐름 및 절차와 연관된 계산 기능을 제공하는 데 사용되는 컴퓨터로 구현되는 시스템(500)의 예를 도시하는 블록도이다. 나타낸 구현에서, 시스템(500)은 컴퓨터(502) 및 네트워크(530)를 포함한다.
나타내어진 컴퓨터(502)는 서버, 데스크톱 컴퓨터, 랩톱/노트북 컴퓨터, 무선 데이터 포트, 스마트 폰, 퍼스널 데이터 어시스턴트(PDA), 태블릿 컴퓨팅 디바이스, 이러한 디바이스 내의 하나 이상의 프로세서, 다른 컴퓨팅 디바이스, 또는 컴퓨팅 디바이스의 물리적 및 가상 인스턴스를 포함하는 컴퓨팅 디바이스의 조합, 또는 컴퓨팅 디바이스의 물리적 또는 가상 인스턴스의 조합과 같은 임의의 컴퓨팅 디바이스를 포함하도록 의도된다. 또한, 컴퓨터(502)는 키패드, 키보드, 터치 스크린, 다른 입력 디바이스, 또는 사용자 정보를 수용할 수 있는 입력 디바이스의 조합과 같은 입력 디바이스, 및 그래픽-유형 사용자 인터페이스(UI)(또는 GUI) 또는 다른 UI 상에 디지털 데이터, 비주얼, 오디오, 다른 유형의 정보를 포함하는, 컴퓨터(502)의 동작과 연관된 정보를 전달하는 출력 디바이스를 포함할 수 있다.
컴퓨터(502)는 본 발명에서 설명되는 주제를 수행하기 위한 클라이언트, 네트워크 구성 요소, 서버, 데이터베이스 또는 다른 지속성, 다른 역할 또는 역할들의 조합으로서 분산 컴퓨팅 시스템에서의 역할을 담당할 수 있다. 나타낸 컴퓨터(502)는 네트워크(530)와 통신 가능하게 커플링된다. 일부 구현에서, 컴퓨터(502)의 하나 이상의 구성 요소는 클라우드-컴퓨팅 기반, 로컬, 글로벌, 다른 환경 또는 환경들의 조합을 포함하는 환경 내에서 동작하도록 구성될 수 있다.
높은 레벨에서, 컴퓨터(502)는 설명되는 주제와 연관된 데이터 및 정보를 수신, 송신, 프로세싱, 저장 또는 관리하도록 동작 가능한 전자 컴퓨팅 디바이스이다. 일부 구현에 따르면, 컴퓨터(502)는 또한 어플리케이션 서버, 이-메일 서버, 웹 서버, 캐싱 서버, 스트리밍 데이터 서버, 다른 서버 또는 서버들의 조합을 포함하는 서버를 포함하거나 이에 통신 가능하게 커플링될 수 있다.
컴퓨터(502)는 (예를 들어, 다른 컴퓨터(502) 상에서 실행 중인 클라이언트 소프트웨어 어플리케이션으로부터) 네트워크(530)를 통해 요청을 수신하고, 소프트웨어 어플리케이션 또는 소프트웨어 어플리케이션의 조합을 사용하여 수신된 요청을 프로세싱함으로써 수신된 요청에 응답할 수 있다. 또한, 요청은 (예를 들어, 커맨드 콘솔로부터 또는 다른 내부 액세스 방법에 의해) 내부 사용자, 외부 또는 제3자, 또는 다른 엔티티, 개인, 시스템 또는 컴퓨터로부터 컴퓨터(502)로 또한 전송될 수 있다.
컴퓨터(502)의 각각의 구성 요소는 시스템 버스(503)를 사용하여 통신할 수 있다. 일부 구현에서, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 포함하는 컴퓨터(502)의 구성 요소 중 임의의 것 또는 모든 구성 요소는 어플리케이션 프로그래밍 인터페이스(API)(512), 서비스 계층(513) 또는 API(512)와 서비스 계층(513)의 조합을 사용하여 시스템 버스(503)를 통해 인터페이싱할 수 있다. API(512)는 루틴, 데이터 구조 및 객체 클래스에 대한 명세를 포함할 수 있다. API(512)는 컴퓨터-언어 독립형 또는 의존형일 수 있고, 완전한 인터페이스, 단일 기능 또는 심지어 API 세트를 지칭할 수 있다. 서비스 계층(513)은 컴퓨터(502) 또는 이 컴퓨터(502)에 통신 가능하게 커플링된 다른 구성 요소(나타내든 나타내지 않든)에 소프트웨어 서비스를 제공한다. 컴퓨터(502)의 기능은 이 서비스 계층을 사용하는 모든 서비스 소비자들에게 액세스 가능할 수 있다. 서비스 계층(513)에 의해 제공되는 것과 같은 소프트웨어 서비스는 정의된 인터페이스를 통해 재사용 가능한 정의된 기능을 제공한다. 예를 들어, 인터페이스는 JAVA, C++, 다른 컴퓨팅 언어 또는 확장 가능 마크업 언어(XML) 포맷, 다른 포맷 또는 포맷들의 조합으로 데이터를 제공하는 컴퓨팅 언어의 조합으로 작성된 소프트웨어일 수 있다. 컴퓨터(502)의 통합된 구성 요소로서 나타내어져 있지만, 대안적인 구현은 컴퓨터(502)의 다른 구성 요소 또는 컴퓨터(502)에 통신 가능하게 커플링된 다른 구성 요소(나타내어져 있든 아니든)와 관련하여 독립형 구성 요소로서 API(512) 또는 서비스 계층(513)을 나타낼 수 있다. 또한, API(512) 또는 서비스 계층(513)의 임의의 부분 또는 전체 부분은 본 발명의 범위를 벗어나지 않고 다른 소프트웨어 모듈, 엔터프라이즈 어플리케이션 또는 하드웨어 모듈의 자녀 또는 서브-모듈로서 구현될 수 있다.
컴퓨터(502)는 인터페이스(504)를 포함한다. 도 5에는 단일 인터페이스(504)로서 나타내었지만, 2개 이상의 인터페이스(504)가 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현에 따라 사용될 수 있다. 인터페이스(504)는 분산 환경에서 네트워크(530)에 통신 가능하게 링크된 다른 컴퓨팅 시스템(나타내어져 있든 아니든)과 통신하기 위해 컴퓨터(502)에 의해 사용된다. 일반적으로, 인터페이스(504)는 네트워크(530)와 통신하도록 동작 가능하고, 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 조합으로 인코딩된 로직을 포함한다. 더욱 구체적으로, 인터페이스(504)는 통신과 연관된 하나 이상의 통신 프로토콜을 지원하는 소프트웨어를 포함할 수 있어, 네트워크(530) 또는 인터페이스의 하드웨어는 나타낸 컴퓨터(502)의 내부 및 외부에서 물리적 신호를 통신하도록 동작 가능하다.
컴퓨터(502)는 프로세서(505)를 포함한다. 도 5에는 단일 프로세서(505)로 나타내었지만, 2개 이상의 프로세서가 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현에 따라 사용될 수 있다. 일반적으로, 프로세서(505)는 컴퓨터(502)의 동작 및 임의의 알고리즘, 방법, 기능, 프로세스, 흐름 및 본 발명에서 설명되는 절차를 수행하기 위해 명령어를 실행하고 데이터를 조작한다.
컴퓨터(502)는 또한 컴퓨터(502), 네트워크(530)에 통신 가능하게 링크된 다른 구성 요소(나타내어져 있든 아니든), 또는 컴퓨터(502)와 다른 구성 요소의 조합에 대한 데이터를 보유할 수 있는 데이터베이스(506)를 포함한다. 예를 들어, 데이터베이스(506)는 본 발명과 일관되는 데이터를 저장하는 인-메모리, 종래의 또는 다른 유형의 데이터베이스일 수 있다. 일부 구현에서, 데이터베이스(506)는 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현 및 설명되는 기능에 따라 2개 이상의 상이한 데이터베이스 유형(예를 들어, 하이브리드 인-메모리 및 종래의 데이터베이스)의 조합일 수 있다. 도 5에는 단일 데이터베이스(506)로 나타내었지만, 유사하거나 다른 유형의 2개 이상의 데이터베이스가 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현 및 설명되는 기능에 따라 사용될 수 있다. 데이터베이스(506)가 컴퓨터(502)의 일체형 구성 요소로서 나타내어져 있지만, 대안적인 구현에서, 데이터베이스(506)는 컴퓨터(502) 외부에 있을 수 있다.
또한, 컴퓨터(502)는 컴퓨터(502), 네트워크(530)에 통신 가능하게 링크된 다른 구성 요소 또는 구성 요소들(나타내어져 있든 아니든), 또는 컴퓨터(502)와 다른 구성 요소의 조합에 대한 데이터를 보유할 수 있는 메모리(507)를 포함한다. 메모리(507)는 본 발명과 일관되는 임의의 데이터를 저장할 수 있다. 일부 구현에서, 메모리(507)는 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현 및 설명되는 기능에 따라 2 이상의 상이한 유형의 메모리의 조합(예를 들어, 반도체 및 자기 스토리지의 조합)일 수 있다. 도 5에는 단일 메모리(507)로 나타내었지만, 유사하거나 상이한 유형의 2 이상의 메모리(507)가 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현 및 설명되는 기능에 따라 사용될 수 있다. 메모리(507)가 컴퓨터(502)의 일체형 구성 요소로서 나타내어져 있지만, 대안적인 구현에서, 메모리(507)는 컴퓨터(502) 외부에 있을 수 있다.
어플리케이션(508)은 특히 본 발명에서 설명되는 기능과 관련하여 컴퓨터(502)의 특정 요구, 요망 또는 특정 구현에 따른 기능을 제공하는 알고리즘 소프트웨어 엔진이다. 예를 들어, 어플리케이션(508)은 하나 이상의 구성 요소, 모듈 또는 어플리케이션으로서의 역할을 할 수 있다. 또한, 단일 어플리케이션(508)으로 나타내었지만, 어플리케이션(508)은 컴퓨터(502) 상의 복수의 어플리케이션(508)으로서 구현될 수 있다. 또한, 컴퓨터(502)에 일체형으로 나타내었지만, 대안적인 구현에서, 어플리케이션(508)은 컴퓨터(502) 외부에 있을 수 있다.
컴퓨터(502)는 또한 전원(514)을 포함할 수 있다. 전원(514)은 사용자 또는 비사용자-교체 가능하도록 구성될 수 있는 충전식 또는 비충전식 배터리를 포함할 수 있다. 일부 구현에서, 전원(514)은 (재충전, 대기 또는 다른 전력 관리 기능을 포함하는) 전력-변환 또는 관리 회로를 포함할 수 있다. 일부 구현에서, 전원(514)은 예를 들어, 컴퓨터(502)에 전력을 공급하거나 재충전 가능한 배터리를 재충전하기 위해 컴퓨터(502)가 벽 소켓 또는 다른 전원에 플러깅될 수 있게 하는 전원 플러그를 포함할 수 있다.
컴퓨터(502)를 포함하는 컴퓨터 시스템과 연관된 또는 그 외부에 임의의 개수의 컴퓨터(502)가 있을 수 있으며, 각 컴퓨터(502)는 네트워크(530)를 통해 통신한다. 또한, "클라이언트", "사용자"라는 용어 또는 다른 적절한 용어가 본 발명의 범위를 벗어나지 않고 적절하게 교환 가능하게 사용될 수 있다. 또한, 본 발명은, 많은 사용자가 하나의 컴퓨터(502)를 사용할 수 있거나 하나의 사용자가 복수의 컴퓨터(502)를 사용할 수 있는 것을 고려한다.
도 6은 일 구현에 따른 MCD(600)의 일례를 나타내는 블록도이다. 예시적인 MCD(600)는 프로세싱 유닛(602), 컴퓨터 판독가능 스토리지 매체(604)(예를 들어, ROM 또는 플래시-유형 메모리), 무선 통신 서브시스템(606), 인터페이스(608) 및 I/O 인터페이스(610)를 포함한다. 프로세싱 유닛(602)은 본원에 개시되는 하나 이상의 구현과 관련하여 상술한 하나 이상의 프로세스, 단계 또는 액션과 관련한 명령어를 실행하도록 구성된 하나 이상의 프로세싱 구성 요소(대안적으로 "프로세서" 또는 "중앙 처리 장치(CPU)"로 칭해짐)를 포함할 수 있다. 프로세싱 유닛(602)은 또한 랜덤 액세스 메모리(RAM) 및 판독 전용 메모리(ROM)와 같은 다른 보조 구성 요소를 포함할 수 있다. 컴퓨터 판독가능 스토리지 매체(604)는 디바이스(600)의 운영 체제(OS) 및 상술한 하나 이상의 프로세스, 단계 또는 액션을 수행하기 위한 다양한 다른 컴퓨터-실행 가능 소프트웨어 프로그램을 저장하도록 구성된 비일시적인 매체에 의해 구현될 수 있다.
무선 통신 서브시스템(606)은 프로세싱 유닛(602)에 의해 제공되는 데이터 정보 또는 제어 정보에 대한 무선 통신을 제공하도록 구성될 수 있다. 무선 통신 서브시스템(606)은 예를 들어, 하나 이상의 안테나, 수신기, 송신기, 국부 발진기, 혼합기 및 디지털 신호 프로세싱(DSP) 유닛을 포함할 수 있다. 일부 구현에서, 서브시스템(606)은 다중 입력 다중 출력(MIMO) 송신을 지원할 수 있다. 일부 구현에서, 무선 통신 서브 시스템(606)의 수신기는 진보된 수신기 또는 베이스라인 수신기일 수 있다. 2개의 수신기가 동일하거나 유사하거나 상이한 수신기 프로세싱 알고리즘으로 구현될 수 있다.
사용자 인터페이스(608)는 예를 들어, 하나 이상의 스크린 또는 터치 스크린(예를 들어, 액정 디스플레이(LCD), 발광 디스플레이(LED), 유기 발광 디스플레이(OLED), 미세 전자 기계 시스템(MEMS) 디스플레이), 키보드 또는 키패드, 트랙볼, 스피커 및 마이크로폰을 포함할 수 있다. I/O 인터페이스(610)는 예를 들어, 범용 직렬 버스(USB) 인터페이스를 포함할 수 있다. 본 기술 분야의 통상의 기술자는, 다양한 다른 구성 요소들이 또한 예시적인 MCD(600)에 포함될 수 있다는 것을 용이하게 이해할 것이다.
본 주제의 설명된 구현은 하나 이상의 특징을 단독으로 또는 조합하여 포함할 수 있다.
예를 들어, 제1 구현에서, 컴퓨터로 구현되는 방법은, 서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터 유니폼 리소스 로케이터(URL)를 수신하는 단계; URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션을 식별하는 단계; 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 단계; 적어도 하나의 컨텍스트 액션과 연관된 항목 정보에 대해 적어도 하나의 서비스 공급자와 통신하는 단계; 및 적어도 하나의 컨텍스트 액션 및 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 모바일 웹 브라우저에 전송하는 단계를 포함한다.
상술한 구현 및 다른 구현은 각각 선택적으로 하나 이상의 다음 특징을 포함할 수 있다:
다음 특징들 중 임의의 것과 결합될 수 있는 제1 특징은 URL로부터 컨텍스트 데이터를 추출하는 단계를 더 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제2 특징은, 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션을 열거하는 단계를 더 포함하고, 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제3 특징은, 사용자 및 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 적어도 하나의 컨텍스트 액션에 대해 반복하는 단계를 더 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제4 특징은, 미리 정해진 문턱값에 기초하여, URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하는 단계를 더 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제5 특징은, 모바일 웹 브라우저에 전송된 적어도 하나의 데이터 객체는 수신된 URL에 컨텍스트적으로 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록을 포함하는 것이다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제6 특징은, 모바일 웹 브라우저에서 렌더링된 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 항목 정보를 미리 보기(preview)하는 단계를 더 포함한다.
제2 구현에서, 동작들을 수행하기 위해 컴퓨터 시스템에 의해 실행 가능한 하나 이상의 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 동작들은, 서버에서 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터 유니폼 리소스 로케이터(URL)를 수신하는 동작; URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션을 식별하는 동작; 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 동작; 적어도 하나의 컨텍스트 액션과 연관된 항목 정보에 대해 적어도 하나의 서비스 공급자와 통신하는 동작; 및 적어도 하나의 컨텍스트 액션 및 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 모바일 웹 브라우저에 전송하는 동작을 포함한다.
상술한 구현 및 다른 구현은 각각 선택적으로 하나 이상의 다음 특징을 포함할 수 있다:
다음 특징들 중 임의의 것과 결합될 수 있는 제1 특징은, URL로부터 컨텍스트 데이터를 추출하기 위한 하나 이상의 명령어를 더 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제2 특징은, 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션을 열거하기 위한 하나 이상의 명령어를 더 포함하고, 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제3 특징은, 사용자 및 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 적어도 하나의 컨텍스트 액션에 대해 반복하기 위한 하나 이상의 명령어를 더 포함하다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제4 특징은, 미리 정해진 문턱값에 기초하여, URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하기 위한 하나 이상의 명령어를 더 포함한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제5 특징은, 모바일 웹 브라우저에 전송된 적어도 하나의 데이터 객체는 수신된 URL에 컨텍스트적으로 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록을 포함하는 것이다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제6 특징은, 모바일 웹 브라우저에서 렌더링된 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 항목 정보를 미리 보기하기 위한 하나 이상의 명령어를 더 포함한다.
제3 구현에서, 컴퓨터로 구현되는 시스템으로서, 하나 이상의 컴퓨터; 및 하나 이상의 컴퓨터와 상호 동작 가능하게 커플링되고, 상기 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 동작을 수행하는 하나 이상의 명령어를 저장하는 유형의 비일시적 기계 판독가능 매체를 갖는 하나 이상의 컴퓨터 메모리 디바이스를 포함하고, 동작들은, 서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터 유니폼 리소스 로케이터(URL)를 수신하는 동작; URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션을 식별하는 동작; 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 동작; 적어도 하나의 컨텍스트 액션과 연관된 항목 정보에 대해 적어도 하나의 서비스 공급자와 통신하는 동작; 및 적어도 하나의 컨텍스트 액션 및 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 모바일 웹 브라우저에 전송하는 동작을 포함한다.
상술한 구현 및 다른 구현은 각각 선택적으로 하나 이상의 다음 특징을 포함할 수 있다:
다음 특징들 중 임의의 것과 결합될 수 있는 제1 특징은, URL로부터 컨텍스트 데이터를 추출하기 위한 하나 이상의 동작을 또한 수행한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제2 특징은, 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션 - 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함함 - 을 열거하기 위한 하나 이상의 동작을 또한 수행한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제3 특징은, 사용자 및 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 적어도 하나의 컨텍스트 액션에 대해 반복하기 위한 하나 이상의 동작을 또한 수행한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제4 특징은, 미리 정해진 문턱값에 기초하여, URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하기 위한 하나 이상의 동작을 또한 수행한다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제5 특징은, 모바일 웹 브라우저에 전송된 적어도 하나의 데이터 객체는, 수신된 URL에 컨텍스트적으로 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록을 포함하는 것이다.
이전 특징들 또는 다음 특징들 중 임의의 것과 결합될 수 있는 제6 특징은, 모바일 웹 브라우저에서 렌더링된 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 항목 정보를 미리 보기하기 위한 하나 이상의 동작을 또한 수행한다.
본 명세서에서 설명되는 주제 및 기능적 동작의 구현은 본 명세서 및 그 구조적 균등물에 개시된 구조를 포함하여, 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어에서 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 설명된 주제의 소프트웨어 구현은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 프로세싱 장치에 의한 또는 그 동작을 제어하기 위한 실행을 위해 유형의, 비일시적인 컴퓨터 판독가능 컴퓨터-스토리지 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로, 또는 부가적으로, 프로그램 명령어는 인위적으로 생성된 전파된 신호, 예를 들어, 데이터 프로세싱 장치에 의한 실행을 위해 수신기 장치로의 송신을 위해 정보를 인코딩하도록 생성된 기계적으로-생성된 전기, 광학 또는 전자기 신호에/신호 상에 인코딩될 수 있다. 컴퓨터-스토리지 매체는 기계 판독가능 스토리지 디바이스, 기계 판독가능 스토리지 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 컴퓨터-스토리지 매체들의 조합일 수 있다. 하나 이상의 컴퓨터를 구성하는 것은, 하나 이상의 컴퓨터가, 소프트웨어가 하나 이상의 컴퓨터에 의해 실행될 때 특정 컴퓨팅 동작이 수행되도록, 하드웨어, 펌웨어 또는 소프트웨어(또는 하드웨어, 펌웨어 및 소프트웨어의 조합)을 설치하였음을 의미한다.
"실시간(real-time)", "실시간(real time)", "실시간(realtime)", "실제(빠른) 시간(RFT: real(fast) time)", "거의 실시간(NRT: near(ly) real-time)", "준 실시간(quasi real-time)"이라는 용어 또는 (본 기술 분야의 통상의 기술자에 의해 이해되는 유사한 용어는, 액션 및 응답이 시간적으로 근접하여, 개인이 실질적으로 동시에 발생하는 액션 및 응답을 인지한다는 것을 의미한다. 예를 들어, 데이터에 액세스하기 위한 개인의 액션에 후속하여 데이터의 표시에 대한 응답(또는 표시의 개시)에 대한 시간차는 1 밀리초(ms) 미만, 1 초(s) 미만, 또는 5s 미만일 수 있다. 요청된 데이터가 순간적으로 표시될(또는 표시를 위해 초기화될) 필요는 없지만, 설명된 컴퓨팅 시스템의 프로세싱 제한 및 예를 들어, 데이터를 수집, 정확하게 측정, 분석, 프로세싱, 저장 또는 송신하는 데 필요한 시간을 고려하여, 어떠한 의도적인 지연 없이 표시(또는 표시를 위해 초기화)된다.
"데이터 프로세싱 장치", "컴퓨터" 또는 "전자 컴퓨터 디바이스"(또는 본 기술 분야의 통상의 기술자에 의해 이해되는 등가물)라는 용어는 데이터 프로세싱 하드웨어를 지칭하며, 모든 종류의 장치, 디바이스 및 예를 들어, 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하는 데이터 프로세싱을 위한 기계를 포함한다. 장치는 또한 예를 들어, 중앙 처리 장치(CPU), FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(어플리케이션-특정 집적 회로)와 같은 특수 목적의 로직 회로일 수 있거나 이를 추가로 포함할 수 있다. 일부 구현에서, 데이터 프로세싱 장치 또는 특수 목적의 로직 회로(또는 데이터 프로세싱 장치 또는 특수 목적 로직 회로의 조합)는 하드웨어-기반 또는 소프트웨어-기반(또는 하드웨어-기반 및 소프트웨어-기반 모두의 조합)일 수 있다. 장치는 컴퓨터 프로그램, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 실행 환경의 조합을 구성하는 코드에 대한 실행 환경을 생성하는 코드를 선택적으로 포함할 수 있다. 본 발명은 예를 들어, LINUX, UNIX, WINDOWS, MAC OS, ANDROID, IOS, 다른 운영 체제 또는 운영 체제의 조합과 같은 일부 유형의 운영 체제를 갖는 데이터 프로세싱 장치의 사용을 고려한다.
프로그램, 소프트웨어, 소프트웨어 어플리케이션, 유닛, 모듈, 소프트웨어 모듈, 스크립트, 코드 또는 다른 구성 요소로 또한 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 또는 인터프리팅된 언어 또는 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 예를 들어, 컴퓨팅 환경에서 사용하기 위한 독립형 프로그램, 모듈, 구성 요소 또는 서브루틴을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램 또는 데이터, 예를 들어, 마크업 언어 문서, 문제의 프로그램에 전용인 단일 파일, 또는 복수의 조정된 파일, 예를 들어, 하나 이상의 모듈, 서브-프로그램 또는 코드의 일부를 저장하는 파일에 저장된 하나 이상의 스크립트를 보유하는 파일의 부분에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터, 또는 하나의 사이트에 위치되거나 복수의 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호 접속되는 복수의 컴퓨터 상에서 실행되도록 배포될 수 있다.
다양한 도면에 나타낸 프로그램의 부분이 다양한 객체, 방법 또는 다른 프로세스를 사용하여 설명된 특징 및 기능을 구현하는 유닛 또는 모듈과 같은 개별적인 구성 요소로 나타내어질 수 있지만, 프로그램은 대신에 다수의 서브-유닛, 서브-모듈, 제3자 서비스, 구성 요소, 라이브러리 및 다른 구성 요소를 적절히 포함할 수 있다. 반대로, 다양한 구성 요소의 특징 및 기능이 적절하게 단일 구성 요소로 결합할 수 있다. 계산적 결정을 내리는 데 사용되는 문턱값은 정적으로, 동적으로 또는 정적으로 및 동적으로 결정될 수 있다.
설명된 방법, 프로세스 또는 로직 흐름은 본 발명에 일관되는 기능의 하나 이상의 예를 나타내며 설명된 또는 나타내어진 구현으로 본 발명을 한정하고자 하는 것이 아니라, 설명된 원리 및 특징과 일관되는 가장 넓은 범위에 따르려는 것이다. 설명된 방법, 프로세스 또는 로직 흐름은 입력 데이터를 조작하고 출력 데이터를 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 방법, 프로세스 또는 로직 흐름은 또한 예를 들어, CPU, FPGA 또는 ASIC와 같은 특수 목적의 로직 회로에 의해 수행될 수 있으며, 장치는 또한 이로서 구현될 수 있다.
컴퓨터 프로그램의 실행을 위한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서, 둘 모두, 또는 다른 유형의 CPU에 기초할 수 있다. 일반적으로 CPU는 메모리로부터 명령어 및 데이터를 수신하고 이에 명령어 및 데이터를 기입할 것이다. 컴퓨터의 핵심 요소는 명령어를 수행하거나 실행하기 위한 CPU, 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 예를 들어, 자기, 자기-광 디스크 또는 광 디스크와 같은, 데이터를 저장하기 위한 하나 이상의 대용량 스토리지 디바이스를 포함하거나, 이로부터 데이터를 수신하거나 이로 데이터를 전송하기 위해 동작 가능하게 커플링되거나 둘 모두일 것이다. 그러나, 컴퓨터에는 이러한 디바이스를 가질 필요가 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 모바일 전화, 퍼스널 디지털 어시스턴트(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기 또는 휴대용 메모리 스토리지 디바이스에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기 위한 비일시적-컴퓨터 판독 가능 매체는 모든 형태의 영구/비영구적 또는 휘발성/비휘발성 메모리, 매체 및 메모리 디바이스를 포함할 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 상 변화 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 소거 가능 프로그램 가능 판독-전용 메모리(EPROM), 전기적 소거 가능 프로그램 가능 판독-전용 메모리(EEPROM), 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 예를 들어, 테이프, 카트리지, 카세트, 내부/이동식 디스크와 같은 자기 디바이스; 자기-광 디스크; 예를 들어, 디지털 비디오 디스크(DVD), CD-ROM, DVD+/-R, DVD-RAM, DVD-ROM, HD-DVD 및 BLURAY 및 다른 광 메모리 기술과 같은 광 메모리 디바이스를 예시의 방식으로 포함한다. 메모리는 캐쉬, 클래스, 프레임워크, 어플리케이션, 모듈, 백업 데이터, 잡(job), 웹 페이지, 웹 페이지 템플릿, 데이터 구조, 데이터베이스 테이블, 동적 정보를 저장하는 저장소(repositor) 또는 임의의 파라미터, 변수, 알고리즘, 명령어, 규칙, 제약 또는 참조를 포함하는 다른 적절한 정보를 포함하는 다양한 객체 또는 데이터를 저장할 수 있다. 또한, 메모리는 로그, 정책, 보안 또는 액세스 데이터 또는 보고 파일과 같은 다른 적절한 데이터를 포함할 수 있다. 프로세서 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명되는 주제의 구현은 사용자에게 정보를 표시하기 위한 디스플레이 디바이스, 예를 들어 CRT(음극선 관), LCD(액정 디스플레이), LED(발광 다이오드) 또는 플라즈마 모니터, 및 키보드 및 포인팅 디바이스, 예를 들어 사용자가 컴퓨터에게 입력을 제공할 수 있는 마우스, 트랙볼 또는 트랙패드를 갖는 컴퓨터 상에 구현될 수 있다. 또한 압력 감응을 갖는 태블릿 컴퓨터 표면과 같은 터치스크린, 용량성 또는 전기적 감지를 사용하는 멀티-터치 스크린 또는 다른 유형의 터치스크린을 사용하여 입력이 컴퓨터에 제공될 수 있다. 다른 유형의 디바이스가 사용자와 상호 작용하기 위해 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 (시각, 청각, 촉각, 또는 피드백 유형의 조합과 같은) 임의의 형태의 감각 피드백일 수 있다. 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로든 수신될 수 있다. 또한, 컴퓨터는 (예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 모바일 컴퓨팅 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써) 사용자에 의해 사용되는 클라이언트 컴퓨팅 디바이스로 문서를 전송하고 이로부터 문서를 수신함으로써 사용자와 상호 작용할 수 있다.
"그래픽 사용자 인터페이스" 또는 "GUI"라는 용어는 하나 이상의 그래픽 사용자 인터페이스 및 특정 그래픽 사용자 인터페이스의 디스플레이 각각을 설명하기 위해 단수 또는 복수로 사용될 수 있다. 따라서, GUI는 정보를 프로세싱하고 정보 결과를 사용자에게 효율적으로 제시하는 웹 브라우저, 터치 스크린 또는 커맨드 라인 인터페이스(CLI: command line interface)를 포함하지만 이에 한정되지 않는 임의의 그래픽 사용자 인터페이스를 나타낼 수 있다. 일반적으로 GUI는 상호 작용 필드, 풀-다운 목록 및 버튼과 같은, 웹 브라우저와 일부 또는 전부 연관된 다수의 사용자 인터페이스(UI) 요소를 포함할 수 있다. 이러한 UI 요소 및 다른 UI 요소는 웹 브라우저의 기능과 관련되거나 웹 브라우저의 기능을 나타낼 수 있다.
본 명세서에서 설명된 주제의 구현은, 예를 들어, 데이터 서버와 같은 백엔드 구성 요소를 포함하거나, 예를 들어, 어플리케이션 서버와 같은 미들웨어 구성 요소를 포함하거나, 예를 들어, 사용자가 본 명세서에서 설명되는 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 포론트-엔드 구성 요소, 또는 하나 이상의 이러한 백-엔드, 미들웨어, 또는 프론트-엔드 구성 요소의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 유선 또는 무선 디지털 데이터 통신(또는 데이터 통신의 조합)의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 네트워크(LAN), 무선 액세스 네트워크(RAN), 메트로폴리탄 영역 네트워크(MAN), 광역 네트워크(WAN), 마이크로파 액세스를 위한 월드와이드 상호 운용(WIMAX), 예를 들어, 802.11 a/b/g/n 또는 802.20(또는 802.11x 및 802.20의 조합 또는 본 발명과 일관되는 다른 프로토콜)을 사용하는 무선 근거리 네트워크(WLAN), 인터넷의 전부 또는 일부, 다른 통신 네트워크, 또는 통신 네트워크의 조합을 포함한다. 통신 네트워크는 예를 들어, 인터넷 프로토콜(IP) 패킷, 프레임 릴레이 프레임, 비동기식 전송 모드(ATM) 셀, 음성, 비디오, 데이터 또는 네트워크 노드 사이의 다른 정보와 통신할 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 명세서는 많은 특정 구현의 상세 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 한정으로 해석되어서는 안되며, 오히려 특정 발명의 특정 구현 특정될 수 있는 특징의 설명으로서 해석되어야 한다. 별도의 구현의 상황에서 본 명세서에 설명된 특정의 특징은 또한 단일 구현으로 조합하여 구현될 수 있다. 반대로, 단일 구현의 상황에서 설명되는 다양한 특징은 또한 복수의 구현, 개별적으로 또는 임의의 하위-조합으로 구현될 수 있다. 또한, 상술한 특징이 특정 조합으로 작용하는 것으로 설명될 수 있고, 심지어 초기에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 조합으로부터 제거될 수 있고, 청구된 조합은 하위-조합 또는 하위-조합의 변형에 관한 것일 수 있다.
주제의 특정 구현이 설명되었다. 설명된 구현의 다른 구현, 변경 및 치환은 본 기술 분야의 통상의 기술자에게 명백할 바와 같이 이하의 청구항의 범주 내에 있다. 동작이 도면 또는 청구항에서 특정 순서로 도시되어 있지만, 이는 이러한 동작이 특정의 나타낸 순서 또는 순차적인 순서로 수행되거나, 나타낸 모든 동작이 바람직한 결과를 달성하기 위해 수행될 것을 요구하는 것으로 이해되어서는 안된다(일부 동작은 선택적인 것으로 고려될 수 있다). 특정 상황에서는, 멀티태스킹 또는 병렬 프로세싱(또는 멀티태스킹과 병렬 프로세싱의 조합)이 적절하다고 생각되면 유리하게 수행될 수 있다.
또한, 상술한 구현에서 다양한 시스템 모듈 및 구성 요소의 분리 또는 통합은 모든 구현에서 그러한 분리 또는 통합을 필요로 하는 것으로 이해되어서는 안되며, 설명된 프로그램 구성 요소 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 복수의 소프트웨어 제품으로 패키징될 수 있는 것으로 이해되어야 한다.
따라서, 상술한 예시적인 구현은 본 발명을 정의하거나 제한하지 않는다. 본 발명의 사상 및 범주를 벗어나지 않고도 다른 변화, 치환 및 변경이 또한 가능하다.
또한, 임의의 청구된 구현은 적어도 컴퓨터로 구현되는 방법; 컴퓨터로 구현되는 방법을 수행하기 위한 컴퓨터 판독가능 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체; 및 컴퓨터로 구현되는 방법 또는 비일시적 컴퓨터 판독가능 매체 상에 저장된 명령어를 수행하도록 구성된 하드웨어 프로세서와 상호 작동 가능하게 커플링된 컴퓨터 메모리를 포함하는 컴퓨터 시스템에 적용 가능한 것으로 고려된다.

Claims (20)

  1. 컴퓨터로 구현되는(computer-implemented) 방법에 있어서,
    서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터, 유니폼 리소스 로케이터(URL: Uniform Resource Locator)를 수신하는 단계;
    상기 URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션(contextual action)을 식별하는 단계;
    상기 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 단계;
    상기 적어도 하나의 컨텍스트 액션과 연관된 항목 정보(inventory information)에 대해 상기 적어도 하나의 서비스 공급자와 통신하는 단계; 및
    상기 적어도 하나의 컨텍스트 액션 및 상기 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 상기 모바일 웹 브라우저에 전송하는 단계
    를 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 URL로부터 컨텍스트 데이터를 추출하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  3. 제2항에 있어서, 상기 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션을 열거하는(enumerating) 단계를 더 포함하고, 상기 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는(pointing) 스트링(string) 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함하는 것인, 컴퓨터로 구현되는 방법.
  4. 제3항에 있어서, 사용자 및 상기 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 상기 적어도 하나의 컨텍스트 액션에 대해 반복하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  5. 제4항에 있어서, 미리 정해진 문턱값에 기초하여, 상기 URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하는 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  6. 제4항에 있어서, 상기 모바일 웹 브라우저에 전송된 상기 적어도 하나의 데이터 객체는, 상기 수신된 URL에 컨텍스트적으로(contextually) 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록(prioritized list)을 포함하는 것인, 컴퓨터로 구현되는 방법.
  7. 제1항에 있어서, 상기 모바일 웹 브라우저에서 렌더링된 상기 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 상기 항목 정보를 미리 보기하는(previewing) 단계를 더 포함하는, 컴퓨터로 구현되는 방법.
  8. 동작들을 수행하기 위해 컴퓨터 시스템에 의해 실행 가능한 하나 이상의 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체에 있어서, 상기 동작들은,
    서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터, 유니폼 리소스 로케이터(URL)를 수신하는 동작;
    상기 URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션을 식별하는 동작;
    상기 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 동작;
    상기 적어도 하나의 컨텍스트 액션과 연관된 항목 정보에 대해 상기 적어도 하나의 서비스 공급자와 통신하는 동작; 및
    상기 적어도 하나의 컨텍스트 액션 및 상기 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 상기 모바일 웹 브라우저에 전송하는 동작
    을 포함하는 것인, 동작들을 수행하기 위해 컴퓨터 시스템에 의해 실행 가능한 하나 이상의 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체.
  9. 제8항에 있어서, 상기 URL로부터 컨텍스트 데이터를 추출하기 위한 하나 이상의 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  10. 제9항에 있어서, 상기 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션을 열거하기 위한 하나 이상의 명령어를 더 포함하고, 상기 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  11. 제10항에 있어서, 사용자 및 상기 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 상기 적어도 하나의 컨텍스트 액션에 대해 반복하기 위한 하나 이상의 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  12. 제11항에 있어서, 미리 정해진 문턱값에 기초하여, 상기 URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하기 위한 하나 이상의 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  13. 제11항에 있어서, 상기 모바일 웹 브라우저에 전송된 상기 적어도 하나의 데이터 객체는, 상기 수신된 URL에 컨텍스트적으로 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  14. 제8항에 있어서, 상기 모바일 웹 브라우저에서 렌더링된 상기 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 상기 항목 정보를 미리 보기하기 위한 하나 이상의 명령어를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  15. 컴퓨터로 구현되는 시스템에 있어서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터와 상호 동작 가능하게 커플링되고, 상기 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 동작을 수행하는 하나 이상의 명령어를 저장하는 유형의 비일시적 기계 판독가능 매체를 갖는 하나 이상의 컴퓨터 메모리 디바이스
    를 포함하고, 상기 하나 이상의 동작은,
    서버에서 그리고 모바일 컴퓨팅 디바이스 상에서 실행되는 모바일 웹 브라우저로부터, 유니폼 리소스 로케이터(URL)를 수신하는 동작;
    상기 URL과 연관된 웹 페이지의 적어도 컨텐츠에 기초하여 적어도 하나의 컨텍스트 액션을 식별하는 동작;
    상기 적어도 하나의 컨텍스트 액션과 연관된 적어도 하나의 서비스 공급자를 식별하는 동작;
    상기 적어도 하나의 컨텍스트 액션과 연관된 항목 정보에 대해 상기 적어도 하나의 서비스 공급자와 통신하는 동작; 및
    상기 적어도 하나의 컨텍스트 액션 및 상기 항목 정보와 연관된 정보를 포함하는 적어도 하나의 데이터 객체를 상기 모바일 웹 브라우저에 전송하는 동작
    을 포함하는 것인, 컴퓨터로 구현되는 시스템.
  16. 제15항에 있어서, 상기 URL로부터 컨텍스트 데이터를 추출하기 위한 하나 이상의 동작을 또한 수행하는 것인, 컴퓨터로 구현되는 시스템.
  17. 제16항에 있어서,
    상기 추출된 컨텍스트 데이터에 기초하여 적어도 하나의 컨텍스트 액션 - 상기 적어도 하나의 컨텍스트 액션은 컨텍스트 액션의 정의 또는 스토리지를 가리키는 스트링 또는 식별자 및 대응하는 추출된 컨텍스트 데이터를 포함함 - 을 열거하기 위한, 그리고
    사용자 및 상기 URL과 관련된 액션 및 공급자 쌍들을 식별하기 위해, 잠재적인 서비스 공급자들에 걸쳐 상기 적어도 하나의 컨텍스트 액션에 대해 반복하기 위한 하나 이상의 동작을 또한 수행하는 것인, 컴퓨터로 구현되는 시스템.
  18. 제17항에 있어서, 미리 정해진 문턱값에 기초하여, 상기 URL에 대한 컨텍스트 관련성의 측정값을 갖는 액션들만을 고려하기 위한 하나 이상의 동작을 또한 수행하는 것인, 컴퓨터로 구현되는 시스템.
  19. 제17항에 있어서, 상기 모바일 웹 브라우저에 전송된 상기 적어도 하나의 데이터 객체는, 상기 수신된 URL에 컨텍스트적으로 관련된 액션들 및 서비스 공급자들의 우선 순위화된 목록을 포함하는 것인, 컴퓨터로 구현되는 시스템.
  20. 제15항에 있어서, 상기 모바일 웹 브라우저에서 렌더링된 상기 적어도 하나의 컨텍스트 액션을 나타내는 그래픽 사용자 인터페이스 요소와의 상호 작용에 응답하여 상기 항목 정보를 미리 보기하기 위한 하나 이상의 동작을 또한 수행하는 것인, 컴퓨터로 구현되는 시스템.
KR1020197012247A 2016-09-28 2017-09-28 웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저 KR20200033790A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662401137P 2016-09-28 2016-09-28
US62/401,137 2016-09-28
PCT/US2017/053944 WO2018064294A1 (en) 2016-09-28 2017-09-28 Mobile web browser providing contextual actions based on web page content

Publications (1)

Publication Number Publication Date
KR20200033790A true KR20200033790A (ko) 2020-03-30

Family

ID=61686211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197012247A KR20200033790A (ko) 2016-09-28 2017-09-28 웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저

Country Status (5)

Country Link
US (1) US20180088752A1 (ko)
EP (1) EP3542279A4 (ko)
JP (1) JP2019537778A (ko)
KR (1) KR20200033790A (ko)
WO (1) WO2018064294A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476813B2 (en) 2017-02-15 2019-11-12 Bank Of America Corporation Computerized system for identifying and redistributing complementary resources
US10356074B2 (en) * 2017-02-15 2019-07-16 Bank Of America Corporation Computing system for resource management based on resource attributes and predicting user actions
US10990912B2 (en) 2017-02-15 2021-04-27 Bank Of America Corporation System for identification and integration of like resources and configuring resources for common use
WO2020000381A1 (en) 2018-06-29 2020-01-02 Alibaba Group Holding Limited Managing services associated with url-based two-dimensional codes

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451099B2 (en) * 2000-08-30 2008-11-11 Kontera Technologies, Inc. Dynamic document context mark-up technique implemented over a computer network
US20040260806A1 (en) * 2003-06-20 2004-12-23 Eric Martin System supporting communication between a web enabled application and another application
US20060155764A1 (en) * 2004-08-27 2006-07-13 Peng Tao Personal online information management system
US20080214153A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Mobile User Profile Creation based on User Browse Behaviors
EP2036017A1 (en) * 2006-06-06 2009-03-18 Exbiblio B.V. Contextual dynamic advertising based upon captured rendered text
US20100191624A1 (en) * 2006-09-05 2010-07-29 Bmc Software, Inc. System and method for classifying requests
US7873710B2 (en) * 2007-02-06 2011-01-18 5O9, Inc. Contextual data communication platform
US20090100321A1 (en) * 2007-10-12 2009-04-16 Microsoft Corporation Universal contextual actions menu across windows applications
US20110208801A1 (en) * 2010-02-19 2011-08-25 Nokia Corporation Method and apparatus for suggesting alternate actions to access service content
US8863000B2 (en) * 2010-04-07 2014-10-14 Yahoo! Inc. Method and system for action suggestion using browser history
US8370330B2 (en) * 2010-05-28 2013-02-05 Apple Inc. Predicting content and context performance based on performance history of users
US9177045B2 (en) * 2010-06-02 2015-11-03 Microsoft Technology Licensing, Llc Topical search engines and query context models
US8600979B2 (en) * 2010-06-28 2013-12-03 Yahoo! Inc. Infinite browse
KR101418393B1 (ko) * 2010-10-25 2014-07-14 한국전자통신연구원 모바일 사용자 상황 기반 지능형 광고 서비스 방법 및 장치
WO2012103506A2 (en) * 2011-01-27 2012-08-02 Michael Luna Single action access to context specific content at a mobile device
US9262766B2 (en) * 2011-08-31 2016-02-16 Vibrant Media, Inc. Systems and methods for contextualizing services for inline mobile banner advertising
WO2013048986A1 (en) * 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US20130117105A1 (en) * 2011-09-30 2013-05-09 Matthew G. Dyor Analyzing and distributing browsing futures in a gesture based user interface
KR101521332B1 (ko) * 2011-11-08 2015-05-20 주식회사 다음카카오 인스턴트 메시징 서비스 및 인스턴트 메시징 서비스로부터 확장된 복수의 서비스들을 제공하는 방법
US9767201B2 (en) * 2011-12-06 2017-09-19 Microsoft Technology Licensing, Llc Modeling actions for entity-centric search
US9639853B2 (en) * 2012-06-11 2017-05-02 Retailmenot, Inc. Devices, methods, and computer-readable media for redemption header for merchant offers
US9210714B2 (en) * 2012-09-06 2015-12-08 Dell Products, Lp Method and apparatus for predicting mobile device wireless link quality of service requirements along a predicted path
US20150227973A1 (en) * 2013-02-20 2015-08-13 Stremor Corporation Systems and methods for organizing search results and targeting advertisements
US9904579B2 (en) * 2013-03-15 2018-02-27 Advanced Elemental Technologies, Inc. Methods and systems for purposeful computing
WO2016041175A1 (en) * 2014-09-18 2016-03-24 Intel Corporation Technologies for pre-action execution
US9712587B1 (en) * 2014-12-01 2017-07-18 Google Inc. Identifying and rendering content relevant to a user's current mental state and context
US11048855B2 (en) * 2015-02-11 2021-06-29 Google Llc Methods, systems, and media for modifying the presentation of contextually relevant documents in browser windows of a browsing application

Also Published As

Publication number Publication date
US20180088752A1 (en) 2018-03-29
EP3542279A4 (en) 2020-05-27
WO2018064294A1 (en) 2018-04-05
EP3542279A1 (en) 2019-09-25
JP2019537778A (ja) 2019-12-26

Similar Documents

Publication Publication Date Title
US9600259B2 (en) Programmatic installation and navigation to access deep states of uninstalled applications
US9015140B2 (en) System and method for providing contextual actions on a search results page
KR102251597B1 (ko) 애플리케이션간 통신을 통한 작업 완료 기법
EP2932369B1 (en) Computer application promotion
WO2016109567A1 (en) Bookmarking search results
US11727075B2 (en) Enhancing accuracy of presented search keywords
US20160055256A1 (en) Systems and methods for directing access to products and services
US20170097967A1 (en) Automated Customization of Display Component Data for Search Results
US20170186038A1 (en) Providing Advertisements based on Contextual Data
US9256890B1 (en) Framework for geolocation-based customer-to-product matching hosted in a cloud-computing environment
KR20200033790A (ko) 웹 페이지 컨텐츠에 기초한 컨텍스트 액션을 제공하는 모바일 웹 브라우저
US10120951B2 (en) Bifurcated search
US20160055133A1 (en) Systems and methods for directing access to products and services
WO2011128500A1 (en) Method and apparatus for context-indexed network resource sections
US20160188130A1 (en) Automatic Conditional Application Downloading
US10146559B2 (en) In-application recommendation of deep states of native applications
AU2014240210A1 (en) Accessing location-based content
US11120420B2 (en) Mobile on-card in-app commerce
US20160179882A1 (en) Searching and Accessing Application -Independent Functionality
US8886799B1 (en) Identifying a similar user identifier
US20180357238A1 (en) Providing information based on intent
US9043333B1 (en) Systems and methods for directing access to products and services
KR101607919B1 (ko) 메신저에 검색 기능을 제공하고 검색 결과를 정렬하는 방법과 시스템 및 기록 매체
US20160188721A1 (en) Accessing Multi-State Search Results
US20230418698A1 (en) Generating Deeplinks for Applications Based on Multi-Level Referrer Data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application