KR20170097120A - Iot 장치 데이터에 근거한 브라우저 제안의 생성 - Google Patents

Iot 장치 데이터에 근거한 브라우저 제안의 생성 Download PDF

Info

Publication number
KR20170097120A
KR20170097120A KR1020177019515A KR20177019515A KR20170097120A KR 20170097120 A KR20170097120 A KR 20170097120A KR 1020177019515 A KR1020177019515 A KR 1020177019515A KR 20177019515 A KR20177019515 A KR 20177019515A KR 20170097120 A KR20170097120 A KR 20170097120A
Authority
KR
South Korea
Prior art keywords
information
user
web browser
recommendation
search
Prior art date
Application number
KR1020177019515A
Other languages
English (en)
Other versions
KR102373939B1 (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 KR20170097120A publication Critical patent/KR20170097120A/ko
Application granted granted Critical
Publication of KR102373939B1 publication Critical patent/KR102373939B1/ko

Links

Images

Classifications

    • G06F17/30867
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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
    • G06F17/3053
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 명세서에서는 사용자의 장치에 포함된 임베디드 시스템에 의해 생성된 데이터를 수집하고 분석하여 사용자의 웹 브라우저 컨텍스트 내에서 사용자에게 제시할 추천을 작성하는 시스템, 방법 및 컴퓨터 프로그램 제품이 기술되어 있다. 추천은 예를 들어, 제안된 정보 자원 및/또는 검색 질의를 포함할 수 있다. 이러한 추천은 새로운 탭 페이지의 일부로서 또는 웹 브라우저의 그래픽 사용자 인터페이스의 주소 표시줄 내에서 사용자에게 제시될 수 있다. 추가적인 실시 예들에 따르면, 사용자 장치 데이터는 검색 결과 및/또는 검색 결과의 순위 지정(ranking)을 생성하기 위하여, 검색 엔진에 의해 사용될 수 있다.

Description

IOT 장치 데이터에 근거한 브라우저 제안의 생성 {GENERATION OF BROWSER SUGGESTIONS BASED ON INTERNET OF THINGS DEVICE DATA}
웹 브라우저는 월드 와이드 웹(World Wide Web)에서 정보 자원(information resources)을 검색, 제시 및 트래버스(traverse)하는 데 흔히 사용되는 소프트웨어 응용 프로그램이다. 각 정보 자원은 URL(Uniform Resource Locator)로 식별되며 웹 페이지, 이미지, 비디오 또는 기타 콘텐츠 부분일 수 있다. 정보 자원에 존재하는 하이퍼 링크를 통해 사용자는 웹 브라우저에서 관련 정보 자원을 쉽게 탐색(navigate)할 수 있다. 현대의 웹 브라우저의 예들은 워싱턴 주, 레드몬드(Redmond)의 마이크로소프트에서 공개한 INTERNET EXPLORER®, 캘리포니아 주, 마운틴 뷰(Mountain View)의 구글에서 공개한 CHROME™, 캘리포니아 주, 마운틴 뷰의 모질라 재단(Mozilla Foundation)에서 공개한 FIREFOX®, 캘리포니아 주, 쿠퍼티노(Cupertino)의 애플에서 공개한 SAFARI®를 포함하지만, 이에 한정되는 것은 아니다. 웹 브라우저는 기본적으로 월드 와이드 웹을 탐색하기 위한 것이지만 개인 네트워크 또는 파일 시스템의 파일에서 웹 서버가 제공하는 정보에 액세스하는데도 사용할 수 있다.
웹 브라우저는 일반적으로 정보가 검색될 때 사용자가 제공하는 입력만을 기반으로 정보를 얻는다. 예를 들어, 사용자는 웹 브라우저의 사용자 인터페이스(user interface, UI)의 주소 표시줄(address bar)에 자원의 URL을 타이핑함으로써, 특정 정보 자원으로 웹 브라우저를 안내(direct)할 수 있다. 또 다른 예로서, 사용자는 웹 브라우저를 통해 인터넷 검색 엔진에 액세스한 다음, 웹 브라우저의 컨텍스트 내에서 제시되는 검색 엔진의 UI에 검색 질의를 타이핑함으로써 정보를 얻을 수 있다. 둘 중 어느 경우에나 사용자가 유용한 정보를 찾기가 어려울 수 있는데, 그 이유는 사용자가 유용한 정보를 제공하는 정보 자원의 URL, 또는 유용한 정보를 포함하는 정보 자원을 검색 엔진이 식별하도록 하는 정확한 키워드 집합을 알아야 하기 때문이다.
일부 웹 브라우저는 사용자가 즐겨 찾기(favorite) 또는 북마크된(bookmarked) 웹 페이지의 리스트를 유지할 수 있게 하여 그에 대한 용이한 액세스를 제공한다. 일부 웹 브라우저는 주소 표시줄, 새로운 탭 페이지 등을 통하여, 자주 액세스하거나 최근 액세스한 URL을 사용자에게 제시할 수도 있다. 이러한 기능은 사용자가 과거에 액세스한 정보 자원으로 이동할 수 있게만 한다는 점에서 한계가 있다. 이는 사용자가 새로운 정보 소스를 찾는 데 도움이 되지 않는다. 또한, 일부 검색 엔진은 사용자의 이전 검색 이력에 기초하거나 검색 엔진의 다른 사용자들 사이에서 현재 유행하는 검색 질의(search queries)에 기초하여 사용자에게 추천 검색 질의(recommended search query)를 제시할 수 있다. 그러나 이러한 추천 검색 질의는 사용자가 유용한 정보를 필요로 할 때 얻을 수 있도록 돕는 데 종종 도움이 되지 못한다.
본 명세서에서는 사용자의 장치(예를 들어, 사용자의 IoT 장치)에 포함된 임베디드 시스템에 의해 생성된 데이터를 수집하고 분석하여 사용자의 웹 브라우저 컨텍스트 내에서 사용자에게 제시할 추천(recommendations)을 작성하는 시스템, 방법 및 컴퓨터 프로그램 제품이 기술되어 있다. 추천은 예를 들어, 제안된 정보 자원(예를 들어, 웹 페이지, 비디오 등) 및/또는 제안된 검색 질의를 포함할 수 있다. 이러한 추천은 새로운 탭 페이지의 일부로서 또는 웹 브라우저의 그래픽 사용자 인터페이스(graphic user interface, GUI)의 주소 표시줄 내에서 사용자에게 제시될 수 있다. 실시 예들이 사용자 자신의 장치(및 일부 실시 예에서는 다른 사람들에 의해 소유된 동일한 장치들의 다른 인스턴스들)로부터 수집된 데이터에 기초하여 추천을 생성하기 때문에, 추천은 사용자와 관련이 있을 것이다. 더욱이, 실시 예들은 사용자 장치 데이터를 신속하게 수집하고 분석할 수 있기 때문에, 사용자가 추천 정보를 원할 가능성이 높은 시점에서 추천이 생성될 수 있다. 다른 실시 예들에 따르면, 사용자 장치 데이터는 검색 엔진에 의해 사용되어, 보다 관련성 높은 검색 결과 및/또는 검색 결과의 개선된 순위(ranking)를 제공한다.
이 요약은 아래의 상세한 설명에서 더 설명되는 단순화된 형태의 개념의 선택을 소개하기 위해 제공된다. 이 요약은 청구된 주제(claimed subject matter)의 주요 특징 또는 필수 특징을 식별하기 위한 것이 아니며 청구된 주제의 범위를 제한하는 데 사용되지도 않는다. 또한, 청구된 주제는 상세한 설명 및/또는 본 명세서의 다른 부분들에서 설명된 특정 실시 예들에 제한되지 않는다는 것을 알아야 한다. 이러한 실시 예들은 설명의 목적으로만 본 명세서에 제시된다. 추가의 실시 예들은 본 명세서에 포함된 내용에 기초하여 당업자에게 명백할 것이다.
본 명세서에 통합되고 명세서의 일부를 형성하는 첨부 도면은 본 발명의 실시 예를 도시하고, 또한, 상세한 설명과 함께 본 발명의 원리를 설명하고 당업자가 발명을 만들고 사용하는 것을 가능하게 하는 역할을 한다.
도 1은 웹 브라우저가 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 자동으로 생성된 정보 자원 제안을 사용자에게 제공할 수 있게 하는 예시적인 시스템의 블록도이다.
도 2는 일 실시 예에 따른 예시적인 새로운 탭 페이지 서비스의 블록도이다.
도 3은 일 실시 예에 따른 예시적인 추천 엔진의 블록도이다.
도 4는 일 실시 예에 따라 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 하나 이상의 추천된 네트워크 액세스 가능(network-accessible) 정보 자원에 관한 정보를 웹 브라우저에 제공하기 위한, 추천 엔진에 의해 수행되는 방법의 흐름도를 도시한다.
도 5는 일 실시 예에 따라 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 사용자에게 제공하기 위한, 웹 브라우저에 의해 수행되는 방법의 흐름도를 도시한다.
도 6은 일 실시 예에 따라 사용자 자신의 IoT 장치 데이터에 기초한 정보 자원 추천을 새로운 탭 페이지 내에서 사용자에게 디스플레이하는 예시적인 웹 브라우저 GUI를 도시한다.
도 7은 웹 브라우저가 사용자 자신의 IoT 장치로부터 획득된 데이터에 기초하여, 자동으로 생성된 정보 자원 제안 및 검색 질의 제안을 사용자에게 제공할 수 있게 하는 예시적인 시스템의 블록도이다.
도 8은 일 실시 예에 따른 예시적인 주소 표시줄 서비스의 블록도이다.
도 9는 일 실시 예에 따른 예시적인 추천 엔진의 블록도이다.
도 10은 일 실시 예에 따라, 사용자의 IoT 장치로부터 얻어진 데이터에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원 및/또는 하나 이상의 추천 검색 질의에 관한 정보를 웹 브라우저에 제공하기 위한, 추천 엔진에 의해 수행되는 방법의 흐름도를 도시한다.
도 11은 일 실시 예에 따라, 사용자의 IoT 장치로부터 얻어진 데이터에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원 및/또는 하나 이상의 추천 검색 질의에 관한 정보를 사용자에게 제공하기 위한, 웹 브라우저에 의해 수행되는 방법의 흐름도를 도시한다.
도 12는 일 실시 예에 따라, 사용자의 IoT 장치로부터 얻어진 데이터에 기초하여 정보 자원 추천 및/또는 검색 질의 추천을 주소 표시줄 드롭 다운 메뉴(address bar drop-down menu) 내에서 사용자에게 디스플레이하는 예시적인 웹 브라우저 GUI를 도시한다.
도 13은 일 실시 예에 따라 사용자를 대신하여 검색 결과를 생성하고/생성하거나 사용자를 대신하여 검색 결과를 순위 지정하기 위해 사용자 IoT 장치 데이터가 검색 엔진에 의해 사용되는 시스템의 블록도이다.
도 14는 일 실시 예에 따라 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 사용자를 위하여 검색 결과를 생성하기 위한, 검색 엔진에 의해 수행되는 방법의 흐름도를 도시한다.
도 15는 다양한 실시 예들을 구현하는데 사용될 수 있는 예시적인 모바일 장치의 블록도이다.
도 16은 다양한 실시 예들을 구현하는데 사용될 수 있는 예시적인 프로세서 기반의(processor-based) 컴퓨터 시스템의 블록도이다.
본 발명의 특징 및 이점은 첨부된 도면과 함께 이하의 상세한 설명으로부터 더욱 명백해질 것이며, 도면에서, 유사한 참조 번호는 전체적으로 대응하는 요소를 식별한다. 도면에서, 유사한 참조 번호는 동일하고, 기능적으로 유사하고, 및/또는 구조적으로 유사한 요소를 일반적으로 나타낸다. 요소가 처음 나타나는 도면은 해당 참조 번호의 가장 왼쪽 숫자로 표시된다.
I. 소개(Introduction)
하기의 상세한 설명은 본 발명의 예시적인 실시 예들을 도시하는 첨부 도면들을 참조한다. 그러나, 본 발명의 범위는 이들 실시 예들에 한정되지 않고 대신, 첨부된 청구 범위에 의해 정의된다. 따라서, 도시된 실시 예들의 수정된 버전과 같이, 첨부된 도면에 도시된 것을 넘어서는 실시 예들도 본 발명에 포함될 수 있다.
명세서에서 "일 실시 예(one embodiment)", "실시 예(an embodiment)", "예시적인 실시 예(an example embodiment)" 등의 언급은 기술된 실시 예가 특정 특징(feature), 구조(structure) 또는 특성(characteristic)을 포함할 수 있음을 나타내지만, 모든 실시 예가 그 특정 특징, 구조 또는 특성을 반드시 포함하는 것은 아니다. 또한, 이러한 문구는 반드시 동일한 실시 예를 지칭하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 실시 예와 관련하여 기술될 때, 이러한 특징, 구조 또는 특성을 명시적으로 설명되었든 아니든 간에 다른 실시 예들과 연관시켜 구현하는 것은 본 기술 분야의 당업자의 지식의 범위 내에 있다.
사용자의 웹 브라우저의 컨텍스트 내에서 사용자에게 제시할 추천을 생성하기 위해 사용자의 장치 내에 포함된 임베디드 시스템에 의해 출력되는 데이터를 수집하고 분석하는 시스템, 방법 및 컴퓨터 프로그램 제품이 여기에 기술된다. 추천은 예를 들어, 제안된 정보 자원(예를 들어, 웹 페이지, 비디오 등) 및/또는 제안된 검색 질의를 포함할 수 있다. 이러한 추천은 새로운 탭 페이지의 일부로서 또는 웹 브라우저 GUI의 주소 표시줄 내에서 사용자에게 제시될 수 있다. 실시 예들은 사용자 자신의 장치(및 일부 실시 예들에서는 다른 사람들에 의해 소유된 동일한 장치들의 다른 인스턴스들)로부터 수집된 데이터에 기초하여 추천을 생성하기 때문에, 추천은 사용자와 관련이 있을 것이다. 또한, 실시 예들이 사용자 장치 데이터를 신속하게 수집하고 분석할 수 있기 때문에, 그러한 실시 예들은 사용자가 추천 정보를 원할 가능성이 높은 시점에 추천을 생성할 수 있다. 다른 실시 예들에 따르면, 사용자 장치 데이터는 검색 엔진에 의해 사용되어, 보다 관련성 높은 검색 결과 및/또는 검색 결과의 개선된 순위를 제공한다.
웹 브라우저는 새로운 정보를 찾는 사용자가 가장 일반적으로 사용하는 응용 프로그램 중 하나이다. 사용자는 웹 브라우저를 사용하여 교육하고, 즐기며, 다른 사람들과 소통하고, 생산성 관련 작업을 수행한다.
IoT(Internet of Things)의 진화에 따라 점점 더 많은 장치가 인터넷에 연결되고 있다. 이러한 장치의 예로는 (세탁기, 건조기, 식기 세척기, 냉장고, 스토브, 에어컨, 온수기 등과 같은) 주요 가정 기기들, (커피메이커, 전자레인지, 텔레비전, CD 및 DVD 플레이어, 비디오 게임 콘솔, 캠코더, 카메라, 시계, 알람 시계 등과 같은) 소형 가정 기기들, 전원 콘센트, 보안 경보 장치, 주거 및 상업용 조명, 개인용 피트니스(fitness) 장치, 자동차 장치, 의료(healthcare) 장치, 제조 장치, 에너지 관리 장치 및 소매 장치를 포함하지만, 이에 한정되는 것은 아니다.
여기에 기술된 실시 예들은, 점점 더 많은 장치들이 인터넷에 연결됨에 따라, 이들 장치들에 의해 출력된 정보가 웹 브라우저 사용자들에 대한 추천을 생성하는데 사용됨으로써, 그러한 사용자들이 그들이 찾고 있는 콘텐츠를 액세스하는 것을 더 용이하게 한다는 인식을 전제로 한다. 여기에 설명된 실시 예들은 사용자가 소유한 장치 및/또는 그러한 장치의 현재 상태에 기초하여 사용자에게 콘텐츠를 추천함으로써 이를 달성한다.
실시 예들에 따르면, 웹 브라우저는 적어도 사용자 자신의 IoT 장치로부터 수집된 데이터에 기초하여 생성되는 자동 생성 정보 자원(예를 들어, 웹 페이지) 제안 및/또는 검색 질의 제안을 사용자에게 제공한다. 이러한 자동 생성 제안은 새로운 탭 페이지 및 주소 표시줄을 포함하여 다양한 상이한 웹 브라우저 GUI 컴포넌트 또는 "표면(surface)"을 통해 제시될 수 있다. 이러한 제안을 제시하면 사용자가 유용한 정보를 제공하는 정보 자원의 식별자(예를 들어, URL) 또는 유용한 정보를 포함하는 정보 자원을 검색 엔진이 식별하도록 할 정확한 키워드 집합을 알지 못하는 경우에도 사용자가 원하는 정보에 쉽게 액세스할 수 있다.
다양한 실시 예에 따라, 사용자의 일상적인 장치에 의해 생성되는 정보는 하나 이상의 네트워크 기반 통신 채널을 통해 추천 엔진(recommendation engine)에 제공된다. 이 정보는 추천 엔진에 의해 사용되어, 제안된 콘텐츠 및 검색을 사용자의 웹 브라우저 컨텍스트에서 사용자에게 직접 제공하므로, (예를 들어, 추측에 근거한 검색 용어 집합을 입력함으로써) 사용자가 자신의 장치에 대해 알고 수동으로 검색해야 할 필요가 없다. 예를 들어, 사용자의 제빙기(ice maker)에서 필터를 교체할 때가 되면 사용자의 웹 브라우저는 새 필터를 구입할 수 있는 링크와 필터 교체에 대한 명령어들과 함께, 웹 브라우저의 새로운 탭 페이지(또는 다른 곳)에 관련 제안을 제공할 수 있다.
다른 실시 예들에 따르면, 사용자 IoT 장치 데이터는 검색 엔진에 의해 사용되어 사용자를 위한 보다 관련 있는 검색 결과 및/또는 사용자를 위한 검색 결과의 개선된 순위를 생성한다.
사용자가 웹 페이지 등과 같은 원하는 네트워크 액세스 가능 정보를 보다 신속하게 찾을 수 있게 함으로써, 본 명세서에 설명된 실시 예들은 예를 들어 장치에 의한 전력 소모, 프로세서 사용률 및 네트워크 사용률을 감소시킴으로써 웹 브라우저를 실행하는 사용자 컴퓨팅 장치의 성능을 향상시킬 수 있다. 이는 원하는 정보를 얻기 위해 브라우징에 더 적은 시간이 소모되어야 하기 때문이다. 또한, 사용자가 원하는 네트워크 액세스 가능 정보를 보다 신속하게 찾을 수 있게 함으로써, 여기에 기술된 실시 예들은 웹 브라우저 및 검색 엔진을 지원하는 백엔드(backend) 자원과 통신하는 데 필요한 네트워크 자원의 이용을 감소시킬 뿐만 아니라 백엔드 자원 자체의 이용을 감소시킬 수 있다.
이하의 섹션에서, 전술한 시스템, 방법 및 컴퓨터 프로그램 제품의 실시 예가 더 완전하게 설명될 것이다. 특히, 섹션 II는 웹 브라우저가 사용자 자신의 IoT 장치로부터 얻은 데이터에 기초하여 자동으로 생성된 정보 자원 제안 및/또는 검색 질의 제안을 사용자에게 제공할 수 있게 하는 시스템, 방법 및 컴퓨터 프로그램 제품을 기술한다. 섹션 III은 검색 엔진이 사용자 자신의 IoT 장치로부터 얻은 데이터에 기초하여 사용자를 위한 보다 관련 있는 검색 결과 및/또는 사용자를 위한 검색 결과의 향상된 순위를 리턴(return)할 수 있게 하는 시스템, 방법 및 컴퓨터 프로그램 제품을 기술한다. 섹션 IV는 다양한 실시 예를 구현하는데 사용될 수 있는 예시적인 모바일 장치를 기술한다. 섹션 V는 다양한 실시 예를 구현하는데 사용될 수 있는 예시적인 프로세서 기반 컴퓨터 시스템을 기술한다. 섹션 VI는 몇몇 추가적인 예시적인 실시 예들을 기술한다. 섹션 VII는 몇 가지 결론을 제시한다.
II. IoT 장치 데이터에 기초하여 사용자에게 추천을 제공함(Providing a User with Recommendations Based on IoT Device Data)
도 1은 웹 브라우저가 사용자 자신의 IoT 장치로부터 획득된 데이터에 기초하여 자동으로 생성된 정보 자원 제안을 사용자에게 제공할 수 있게 하는 예시적인 시스템(100)의 블록도이다. 도 1에 도시된 실시 예에서, 정보 자원 제안은 웹 브라우저의 새로운 탭 페이지에 표시된다. 도 1에 도시된 바와 같이, 시스템(100)은 복수의 사용자 IoT 장치(102), IoT 연결 허브(114), 인텔리전트 시스템 서비스(Intelltigent Systems Service, ISS)(116), 검색 엔진 서비스(118), 추천 엔진(120), 새로운 탭 페이지 서비스(122), 및 웹 브라우저(126)를 실행하는 사용자 컴퓨팅 장치(124)를 포함한다. 이제 시스템(100)의 이들 요소들 각각이 설명될 것이다.
사용자 IoT 장치(102)는 사용자에 의해 소유되거나, 액세스될 수 있거나, 다른 방식으로 연관된 장치를 나타내기 위한 것이다. 사용자 IoT 장치(102) 각각은 유선 또는 무선 연결을 통해 적어도 하나의 다른 엔티티에 정보를 전달할 수 있는 적어도 하나의 임베디드 시스템을 포함한다. 본 명세서에서 사용되는 "임베디드 시스템(embedded system)"이라는 용어는 복잡한 임베디드 컴퓨터 및 간단한 센서를 포함하여 장치 내에 배치될 수 있는 임의의 유형의 자동화된 기능을 광범위하게 포함하는 것으로 의도된다. 사용자 IoT 장치(102) 내의 각각의 임베디드 시스템은 (예를 들어, 디지털 및/또는 아날로그 회로를 사용하는) 하드웨어로, 소프트웨어(예를 들어, 하나 이상의 범용 및/또는 특수 목적 프로세서에 의해 실행되는 소프트웨어)로, 또는 하드웨어와 소프트웨어의 결합으로서 구현될 수 있다.
사용자 IoT 장치(102)는 (세탁기, 건조기, 식기 세척기, 냉장고, 스토브, 에어컨, 온수기 등과 같은) 주요 가정 기기들, (커피메이커, 전자레인지, 텔레비전, CD 및 DVD 플레이어, 비디오 게임 콘솔, 캠코더, 카메라, 시계, 알람 시계 등과 같은) 소형 가정 기기들, 전원 콘센트, 보안 경보 장치, 주거 및 상업용 조명, 개인용 피트니스 장치, 자동차 장치, 의료 장치, 제조 장치, 에너지 관리 장치 및 소매 장치를 포함하지만 이에 한정되는 것은 아닌, 매우 다양한 상이한 유형의 장치들을 포함할 수 있다.
사용자 IoT 장치(102)의 몇몇 특정 예가 도 1에 도시된다. 특히, 도 1에 도시된 바와 같이, 사용자 IoT 장치(102)는 피트니스 장치(104)(예를 들어 마이크로 소프트의 MICROSOFT BANDTM 또는 핏빗(Fitbit)의 FITBIT® 활동 추적 장치들 중 임의의 하나), 디지털 비디오 레코더(digital video recorder, DVR)(106), 조명(108), 알람(110) 및 기기(112)를 포함한다. 이들 장치는 단지 예로서 제시되며 제한하려는 것은 아니다. 당업자는 IoT의 진화에 따라 다른 엔티티들과 자동으로 통신할 수 있는 기능을 갖는 임베디드 시스템이 점점 더 많은 유형의 장치 내에 통합될 것이라는 것을 인식할 것이다.
상술한 바와 같이, 사용자 IoT 장치(102) 내에 배치된 임베디드 시스템 각각은 유선 또는 무선 연결을 통해 하나 이상의 다른 엔티티에 정보를 제공하도록 동작 가능하다. 특정 임베디드 시스템에 의해 전달될 수 있는 정보 유형은 장치 또는 장치 유형에 따라 다를 수 있다. 예를 들어, 피트니스 장치(104) 내의 임베디드 시스템은 사용자 활동 레벨, 자외선(UV) 노출, 심장 박동수 등에 관한 정보를 전달할 수 있다. 대조적으로, DVR(106) 내의 임베디드 시스템은 장치 상태(예를 들어, 온/오프, 녹화중(recording)/녹화중이 아님(not recording) 등), 저장된 프로그램, 장래의 녹화를 위해 스케줄링된 프로그램, 미사용 저장 공간의 양 등에 관한 정보를 전달할 수 있다. 다른 예로서, 조명(108) 내의 임베디드 시스템은 온/오프 상태, 전구가 교체된 이후의 시간 량 등과 같은 정보를 전달할 수 있다.
사용자 IoT 장치(102) 내의 특정 임베디드 시스템에 의해 출력되는 정보는 특정 스키마(schema)에 따라 포맷될 수 있다. 이러한 스키마는 장치의 특정 브랜드 또는 모델(예를 들어, 세탁기의 특정 브랜드 또는 모델) 또는 장치 유형의 클래스(예를 들어, 모든 세탁기)와 연관될 수 있다. 장치와 연관된 스키마는 장치에 의해 출력된 데이터 내에 포함되는 정보 요소의 유형 및 이러한 요소가 주어진 통신 페이로드(payload) 내에 위치하는 곳 모두를 나타낼 수 있다. 스키마는 예를 들어, XML(extended markup language) 스키마, JSON(JavaScript Object Notation) 스키마 또는 일부 다른 유형의 스키마를 포함할 수 있다.
사용자 IoT 장치(102) 내의 각각의 임베디드 시스템이 외부 엔티티와 통신하는 방식은 또한 다양할 수 있다. 예를 들어, 임베디드 시스템은 블루투스(Bluetooth) 프로토콜 또는 IEEE 802.11("WiFi") 프로토콜과 같은 통신 프로토콜을 이용하여 외부 엔티티와 무선으로 통신할 수 있다. 그러나, 이들은 단지 예시일 뿐이고, 다른 무선 주파수(radio frequency, RF) 통신 프로토콜 또는 적외선(infrared, IR) 통신 프로토콜이 무선 통신을 수행하는데 사용될 수 있다. 일부 실시 예들에서, 임베디드 시스템은 유선 연결을 이용하여 외부 엔티티와 통신한다. 유선 접속을 통한 통신은 직렬 통신 프로토콜(예를 들어, USB(Universal Serial Bus) 프로토콜) 또는 다른 적절한 통신 프로토콜을 사용하여 수행될 수 있다. 유선 연결은 예를 들어 가정용 전력선 네트워크 또는 가정용 전화선 네트워크를 포함할 수도 있다.
도 1에 도시된 시스템에서, 각각의 사용자 IOT 장치(102) 내의 각각의 임베디드 시스템은 IoT 장치 데이터를 IoT 연결 허브(114)에 전달하도록 동작 가능하다. 이러한 통신은 일반적으로 화살표(130)로 표시된다. 그러한 통신이 발생하는 시간 및 주파수는 사용자 IoT 장치(102)에 따라 다를 수 있다. 또한, 상이한 사용자 IoT 장치(102)는 상이한 통신 매체 및 프로토콜을 사용하여 IoT 장치 허브(114)에 IoT 장치 데이터를 전달할 수 있다. 일정한 통신이 특정 사용자 IoT 장치(102)에 의해 자동적으로 트리거될 수 있거나 IoT 연결 허브(114)로부터의 요청에 응답하여 수행될 수 있다.
IoT 연결 허브(114)는 사용자 IoT 장치(102) 내에 통합된 각각의 임베디드 시스템으로부터 IoT 장치 데이터를 수신할 수 있는 장치를 나타내는 것으로 의도된다. 일 실시 예에서, IoT 연결 허브(114)는 캘리포니아 주, 얼바인(Irvine)의 스마트랩(Smartlabs, Inc.)에 의해 판매되는 INSTEON® 홈 자동화 허브와 같은) 홈 자동화 허브를 포함하지만, 이는 단지 예에 불과하다. IoT 연결 허브(114)가 홈 자동화 허브를 포함하는 실시 예에서, IoT 연결 허브(114)는 사용자 IoT 장치(102) 각각과 통신하여 사용자에게 이러한 장치들에 대한 중앙 집중화된 모니터링 및/또는 제어를 제공할 수 있다.
사용자는 지원되는 사용자 IoT 장치를 IoT 연결 허브(114)에 연결하기 위한 특정 조치를 취할 필요가 있을 수 있으며, 취해지는 조치들은 허브 유형 및/또는 사용자 IoT 장치 유형에 따라 달라질 수 있다.
IoT 연결 허브(114)는 또한 사용자 IoT 장치들(102) 내의 임베디드 시스템들 각각으로부터 IoT 장치 데이터를 모으고(aggregate) 그러한 IoT 장치 데이터를 인터넷과 같은 광역 네트워크(wide area network, WAN)를 통해 ISS 서비스(116)로 전달하도록 동작 가능하다. 이러한 데이터의 전달은 도 1에 화살표(132)로 나타나 있다. 새로운 IoT 장치 데이터는 IoT 연결 허브(114)로부터 ISS(116)로 연속적으로(continually) 전달될 수 있지만, 그러한 데이터가 전달되는 시간 및 그러한 데이터가 전달되는 빈도는 구현마다 다를 수 있다. IoT 연결 허브(114)로부터 ISS(116)로 전달되는 IoT 장치 데이터는 사용자 IoT 장치(102)와 연관된 사용자의 식별자(ID)를 포함한다. 일 실시 예에서, 사용자의 ID는 MSA(Microsoft Managed Service Account) ID와 같은 계정 ID를 포함한다.
도 1에서, 사용자 IoT 장치(102) 내의 임베디드 시스템에 의해 생성된 모든 IoT 장치 데이터는 IoT 연결 허브(114)를 통해 ISS(116)로 전달된다. 따라서, IoT 연결 허브(114)는 사용자 IoT 장치(102) 내의 임베디드 시스템 및 인터넷 간의 브리지(bridge)로서 작용한다. 이러한 브리지는, 임베디드 시스템이 유선 또는 무선 매체를 통해 통신할 수는 있지만 완전한 인터넷 스택(full Internet stack)을 지원하지 않을 수 있기 때문에 필요할 수 있다. 물론, 임베디드 시스템이 완전한 인터넷 스택을 지원하는 경우, 임베디드 시스템이 IoT 장치 데이터를 ISS(116)에 직접 전달할 수 있다.
ISS(116)는 인터넷을 통해 기계로 생성된(machine-generated) 데이터를 안전하게 수집, 관리 및보고하기 위한 클라우드 기반 서비스 집합을 나타낸다. 이러한 서비스는 하나 이상의 프로세서 기반 컴퓨팅 장치(예를 들어, 서버)에서 실행된다. 일 실시 예에서, ISS(116)는 워싱턴 주, 레드몬드의 마이크로소프트에 의해 공개된 마이크로소프트 애저(Microsoft AZURE ™) 인텔리전트 시스템 서비스를 포함한다. 그러나 이것은 단지 예일 뿐이고, ISS(116)는 IoT 연결 허브(114) 및 인터넷을 통한 다른 엔티티로부터 IoT 장치 데이터를 수집할 수 있는 임의의 서비스를 포함할 수 있다. ISS(116)는 (다른 IoT 연결 허브들을 포함하지만 이에 한정되지 않는 다른 엔티티들로부터뿐만 아니라) IoT 연결 허브(114)로부터 수신된 IoT 장치 데이터의 데이터 피드(134)를 검색 엔진 서비스(118)에 제공하도록 동작한다.
검색 엔진 서비스(118)는 검색 엔진(예를 들어, 마이크로소프트의 BING® 검색 엔진)을 지원하고 사용자가 그들의 컴퓨팅 장치를 통해 원하는 정보를 얻는 것을 돕는 서비스 세트를 포함한다. 이러한 서비스는 하나 이상의 프로세서 기반 컴퓨팅 장치(예를 들어, 서버)에서 실행된다. 도 1에 도시된 실시 예에서, 데이터 피드(134)는 검색 엔진 서비스(118)에 의해 추천 엔진(120)에 전달되며, 추천 엔진(120)은 그 안에 포함된 데이터를 사용하여 새로운 탭 페이지 서비스(122)로부터의 요청에 응답하여 사용자를 위한 정보 자원 추천을 생성할 수 있다. 검색 엔진 서비스(118)와 같이, 추천 엔진(120) 및 새로운 탭 페이지 서비스(122)는 각각 하나 이상의 프로세서 기반 컴퓨팅 장치(예를 들어, 서버) 상에서 실행된다. IoT 장치 데이터가 검색 엔진 서비스(118)로부터 추천 엔진(120)으로 전달되는 것이 도 1에 화살표(136)에 의해 도시된다.
IoT 장치 데이터를 수신하면, 추천 엔진(120)은 사용자가 관심 있어 할 수 있는 정보 자원을 식별하는데 사용될 수 있는 데이터로부터 정보 요소(예를 들어, 장치 ID, 장치 유형, 장치 모델, 장치 상태 정보, 장치 에러 코드 등)를 추출하도록 동작한다. 특히, 추천 엔진(120)은 적절한 스키마를 사용하여 데이터를 디코딩함으로써 IoT 장치 데이터로부터 정보 요소를 추출한다. 예를 들어, 추천 엔진(120)은 세탁기로부터 얻어진 IoT 데이터로부터 정보 요소를 추출하기 위해 세탁기용 스키마를 이용할 수 있다. 그 다음, 추천 엔진(120)은 추출된 정보 요소를 이용하여 사용자가 관심 있어 할 수 있는 네트워크 액세스 가능 콘텐츠(예를 들어, 웹 페이지, 비디오, 이미지 등)를 검색할 수 있다.
구현에 따라, 추천 엔진(120)은 단순히 IoT 장치 데이터로부터 정보 요소를 추출할 수 있고, 그 후 IoT 장치 데이터와 함께 제공된 사용자 ID와 관련하여 정보 요소를 저장할 수 있다. 그런 다음, 새로운 탭 페이지 서비스(122)로부터 사용자 ID에 의해 식별된 사용자를 위해 하나 이상의 추천 정보 자원을 제공하라는 요청이 수신될 때, 추천 엔진(120)은 그 정보 요소를 이용하여 검색을 수행할 수 있다. 대안적인 구현에서, 추천 엔진(120)은 새로운 탭 페이지 서비스(122)로부터 임의의 요청을 수신하기 전에 정보 요소를 사용하여 추천 정보 자원에 대한 검색을 수행할 수 있다. 이러한 대안적인 구현에 따르면, 추천 엔진(120)은 그 후 사용자 ID와 연관된 검색에 의해 발결된 정보 자원의 식별자(예를 들어, URL)을 저장할 수 있다. 그러한 식별자들은 나중에 새로운 탭 페이지 서비스(122)로부터의 요청에 응답하여 신속하게 액세스될 수 있다.
또한, 도 1의 시스템(100)에 따르면, 사용자 IoT 장치(102)와 연관된 사용자는 사용자 컴퓨팅 장치(124)에서 실행중인 웹 브라우저(126)와 상호 작용한다. 사용자 컴퓨팅 장치(124)는 웹 브라우저를 실행할 수 있는 임의의 장치를 포함할 수 있다. 예를 들어 제한 없이, 사용자 컴퓨팅 장치(124)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 넷북, 스마트폰, 게임 콘솔, 스마트 TV 등을 포함할 수 있다.
웹 브라우저(126)와 상호 작용하는 동안, 사용자는 웹 브라우저(126)의 GUI 내에 새로운 탭 페이지가 디스플레이되게 한다. 예를 들어, 사용자는 웹 브라우저를 시작하거나 웹 브라우저(126)의 "새로운 탭(new tab)" GUI 컴포넌트를 클릭함으로써, 새로운 탭 페이지가 디스플레이되게 할 수 있다. 이것이 일어날 때, 새로운 탭 페이지는 인터넷을 통해 새로운 탭 페이지 콘텐츠(138)에 대한 요청을 새로운 탭 페이지 서비스(122)에 전송한다. 요청(138)은 사용자의 사용자 ID(예를 들어, MSA ID)를 포함하거나 다른 방식으로 관련되어 있다. 예를 들어, 사용자가 자신의 사용자 ID를 사용하여 웹 브라우저(126)를 통해 그의/그녀의 계정에 로그온하였기 때문에 웹 브라우저(126)는 이러한 사용자 ID에 액세스할 수 있다.
요청(138)을 수신하면, 새로운 탭 페이지 서비스(122)는 질의(140)를 추천 엔진(120)에 전송한다. 질의(140)는 새로운 탭 페이지에 포함될 추천 정보 자원들의 리스트에 대한 요청을 포함한다. 질의(140)는 사용자의 사용자 ID를 포함한다.
질의(140)를 수신하는 것에 응답하여, 추천 엔진(120)은 추천 정보 자원들의 리스트를 생성한다. 일 실시 예에서, 추천 엔진(120)은 질의(140)에 포함된 사용자 ID를 사용하여 사용자 ID에 의해 식별된 사용자와 연관된 IoT 장치 데이터 정보 요소 세트에 액세스한다. 그 다음, 추천 엔진(120)은 정보 요소를 이용하여 사용자에게 관심의 대상이 될 수 있는 정보 자원(예를 들어, 웹 페이지, 비디오, 이미지 등)에 대한 검색을 수행한다. 정보 자원 식별자들(예를 들어, URL들)의 리스트를 포함할 수 있는 검색 결과는 그 후 질의 응답(142)의 일부로서 새로운 탭 페이지 서비스(122)에 제공된다. 대안적인 실시 예에서, 그러한 검색은 미리 수행될 수 있고 결과가 검색 엔진(120)에 의해 사용자 ID와 관련하여 저장된다. 그러한 실시 예에 따라, 추천 엔진(120)은 질의(140)에 포함된 사용자 ID를 이용하여 이전에 저장된 추천 정보 자원의 리스트에 액세스하고 그 리스트를 질의 응답(142)의 일부로서 리턴한다.
추천 정보 자원들의 리스트를 포함하는 질의 응답(142)을 수신한 후에, 새로운 탭 페이지 서비스(122)는 새로운 탭 페이지의 콘텐츠를 동적으로 구축한다. 새로운 탭 페이지의 내용은 질의 응답(142)으로부터의 추천 정보 자원에 관한 정보를 포함하고, 각각의 그러한 추천 정보 자원의 식별자(예를 들어, URL)를 포함할 수 있다. 새로운 탭 페이지 서비스는 그 후 새로운 탭 페이지(144)의 콘텐츠를 웹 브라우저(126)로 리턴한다. 그러면 웹 브라우저(126)는 사용자에 의해 열린 새로운 탭 페이지 내에 새로운 탭 페이지의 콘텐츠를 디스플레이한다.
도 2는 일 실시 예에 따른 예시적인 새로운 탭 페이지 서비스(200)의 블록도이다. 새로운 탭 페이지 서비스(200)는 도 1의 새로운 탭 페이지 서비스(122)의 예시적인 구현을 포함할 수 있다. 도 2에 도시된 바와 같이, 새로운 탭 페이지 서비스(200)는 웹 브라우저 인터페이스(202), 추천 엔진 질의 로직(204), 및 새로운 탭 페이지 콘텐츠 빌더(new tab page content builder, 206)를 포함한다. 이들 컴포넌트 각각은 소프트웨어(예를 들어, 하나 이상의 범용 및/또는 특수 목적 프로세서에 의해 실행되는 소프트웨어)로, (예를 들어, 디지털 및/또는 아날로그 회로 사용하는) 하드웨어로 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다. 일 실시 예에서, 하나 이상의 컴포넌트는 하나 이상의 서버 컴퓨터 상에 구현된다.
웹 브라우저 인터페이스(202)는 사용자 컴퓨팅 장치(124) 상에서 실행되는 웹 브라우저(126)와 같이, 클라이언트 장치에서 실행중인 웹 브라우저로부터 새로운 탭 페이지 콘텐츠에 대한 요청을 수신하고, 그러한 요청에 대한 응답을 다시 그러한 클라이언트 장치에 전송하도록 동작 가능한 로직을 포함한다. 응답에는 웹 브라우저 GUI의 새로운 탭 페이지 부분에 포함할 콘텐츠가 포함된다.
추천 엔진 질의 로직(204)은 웹 브라우저 인터페이스(202)를 통한 새로운 탭 콘텐츠 페이지에 대한 클라이언트 요청의 수신에 응답하여, 추천 엔진(120)과 같은 추천 엔진에 질의를 생성하고 송신하도록 동작 가능한 로직을 포함한다. 일 실시 예에서, 질의는 하나 이상의 추천 정보 자원의 리스트에 대한 요청을 포함한다. 질의는 또한 특정 사용자 ID를 포함하거나 다른 방식으로 연관될 수 있다. 추천 엔진 질의 로직(204)은 추천 엔진으로부터 하나 이상의 추천 정보 자원의 리스트를 수신하고 그 리스트를 새로운 탭 페이지 콘텐츠 빌더(206)에 제공하도록 동작 가능한 로직을 더 포함한다.
새로운 탭 페이지 콘텐츠 빌더(206)는 웹 브라우저 인터페이스(202)를 통한 새로운 탭 콘텐츠 페이지에 대한 클라이언트 요청의 수신에 응답하여 새로운 탭 페이지 콘텐츠를 동적으로 구축하도록 동작 가능한 로직을 포함한다. 이러한 콘텐츠는 추천 엔진 질의 로직(204)으로부터 수신된 추천 정보 자원에 관한 정보를 포함할 수 있으며, 각각의 추천 정보 자원의 식별자(예를 들어, URL)를 포함할 수 있다. 새로운 탭 페이지 콘텐츠 빌더(206)에 의해 생성된 새로운 탭 페이지 콘텐츠는 웹 브라우저 인터페이스(202)에 제공되어 그 콘텐츠를 요청한 웹 브라우저로 전송된다.
도 3은 일 실시 예에 따른 예시적인 추천 엔진(300)의 블록도이다. 추천 엔진(300)은 도 1의 추천 엔진(120)의 예시적인 구현을 포함할 수 있다. 도 3에 도시된 바와 같이, 추천 엔진(300)은 IoT 데이터 수신기(302), IoT 정보 요소 추출기(304), 정보 자원 식별자(306) 및 질의 응답 로직(308)을 포함한다. 이들 컴포넌트 각각은 소프트웨어(예를 들어, 하나 이상의 범용 및/또는 특수 목적 프로세서에 의해 실행되는 소프트웨어)로, (예를 들어, 디지털 및/또는 아날로그 회로를 사용하는) 하드웨어로 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있다. 일 실시 예에서, 하나 이상의 컴포넌트는 하나 이상의 서버 컴퓨터 상에 구현된다.
IoT 데이터 수신기(302)는 다양한 사용자들과 연관된 장치 내에 배치된 임베디드 시스템으로부터 비롯된 IoT 장치 데이터를 수신하도록 동작 가능한 로직을 포함한다. 이러한 IoT 장치 데이터는 (도 1의 IoT 연결 허브(114)와 같은) 임의의 수의 IoT 연결 허브에 의해 수집되어, 이에 의해 (도 1의 ISS 서비스(116)와 같은) ISS 서비스로 전달될 수 있고, ISS 서비스로부터 (도 1의 검색 엔진 서비스(118)와 같은) 검색 엔진 서비스로 전달될 수 있다. 검색 엔진 서비스는 IoT 장치 데이터를 추천 엔진(300)에 제공한다. 그러나 IoT 데이터 수신기(302)는 또한 다른 방식으로 IoT 장치 데이터를 수신할 수도 있다. 일 실시 예에서, IoT 데이터 수신기(302)는 다수의 사용자에 대한 IoT 장치 데이터를 수신하고, 특정 사용자에 대한 IoT 장치 데이터는 그러한 IoT 장치 데이터와 연관된 사용자 ID에 의해 식별된다.
IoT 정보 요소 추출기(304)는 IoT 장치 데이터로부터 정보 요소(예를 들어, 장치 ID, 장치 유형, 장치 모델, 장치 상태 정보, 장치 에러 코드 등)를 추출하도록 동작 가능한 로직을 포함한다. 특히, IoT 정보 요소 추출기(304)는 적절한 스키마를 사용하여 데이터를 디코딩함으로써 IoT 장치 데이터로부터 정보 요소를 추출하도록 동작 가능하다. IoT 정보 요소 추출기(304)는 특정 사용자 ID와 관련하여 IoT 장치 데이터의 특정 세트에 대하여 추출된 정보 요소를 저장할 수 있다.
정보 자원 식별자(306)는 특정 사용자 ID에 의해 식별된 사용자에 대한 하나 이상의 추천 정보 자원에 대한 검색을 수행하기 위해 그 특정 사용자 ID와 연관된 정보 요소를 이용하도록 동작 가능한 로직을 포함한다. 예를 들어, 정보 자원 식별자(306)는 네트워크 액세스 가능 정보 자원의 색인을 검색할 때 검색 용어로서 정보 요소를 이용할 수 있다. 일 실시 예에서, 정보 자원 식별자(306)는 사용자 ID를 포함하거나 다른 방식으로 연관되어 있는 (도 1의 새로운 탭 페이지 서비스(122)와 같은) 새로운 탭 페이지 서비스로부터의 질의의 수신에 응답하여 그러한 검색을 수행하도록 동작 가능하다. 다른 실시 예에서, 정보 자원 식별자(306)는 새로운 탭 페이지 서비스로부터 임의의 요청을 수신하기 전에 특정 사용자 ID와 연관된 정보 요소를 사용하여 그 사용자 ID에 대한 추천 정보 자원에 대한 검색을 수행할 수 있다. 이러한 실시 예에 따라, 정보 자원 식별자(306)는 사용자 ID와 관련하여 검색에 의해 발견된 추천 정보 자원의 식별자들(예를 들어, URL들)을 저장할 수 있다. 이러한 식별자는 새로운 탭 페이지 서비스로부터의 요청에 응답하여, 나중에 빠르게 액세스할 수 있다.
질의 응답 로직(308)은 새로운 탭 페이지 서비스(예를 들어, 도 1의 새로운 탭 페이지 서비스(122) 또는 도 2의 새로운 탭 페이지 서비스(200))로부터 질의를 수신하고 정보 자원 식별자(306)에 의해 생성된 추천 정보 자원의 리스트를 제공함으로써 그러한 질의에 응답하도록 동작 가능한 로직을 포함한다. 일 실시 예에서, 새로운 탭 페이지 서비스로부터 수신된 각각의 질의는 사용자 ID를 포함하고, 질의 응답 로직(308)은 사용자 ID를 정보 자원 식별자(306)에 제공하도록 동작하여, 정보 자원 식별자(306)는 특정 사용자 ID에 의해 식별된 사용자를 위하여 추천 정보 자원들의 리스트를 생성할 수 있다. 일 실시 예에서, 질의 응답 로직(308)에 의해 새로운 탭 페이지 서비스로 리턴되는 추천 정보 자원들의 리스트는 추천 정보 자원들의 URL 리스트를 포함한다.
도 4는 일 실시 예에 따라 사용자의 IoT 장치들로부터 획득된 데이터에 기초하여 추천 네트워크 액세스 가능 정보 자원들의 리스트를 웹 브라우저에 제공하기 위한, 추천 엔진에 의해 수행되는 방법의 흐름도(400)를 도시한다. 흐름도(400)의 방법은 예를 들어, 도 1의 추천 엔진(120)에 의해 또는 도 3의 추천 엔진(300)에 의해 구현될 수 있다. 그러나, 본 방법은 이들 실시 예들에 한정되지 않는다.
도 4에 도시된 바와 같이, 흐름도(400)의 방법은 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보가 수신되는 단계(402)에서 시작한다. 일 실시 예에서, 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다. 일 실시 예에서, 단계(402)는 추천 엔진(300)의 IoT 데이터 수신기(302)에 의해 수행된다.
단계(404)에서, 하나 이상의 정보 요소가 단계(402) 동안 수신된 정보로부터 추출된다. 일 실시 예에서, 이 단계는 수신된 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 단계를 포함한다. 그 다음, 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마가 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위해 수신된 정보의 적어도 일부에 적용된다. 또한, 이러한 실시 예에 따르면, 미리 정의된 스키마는 XML 스키마 또는 JSON 스키마를 포함할 수 있는데, 이들은 단지 예에 불과하다. 일 실시 예에서, 단계(404)는 추천 엔진(300)의 IoT 정보 요소 추출기(304)에 의해 수행된다.
단계(406)에서, 단계(404) 동안 추출된 하나 이상의 정보 요소는 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하는데 이용된다. 각각의 네트워크 액세스 가능 정보 자원은 예를 들어 웹 사이트, 웹 페이지, 이미지, 비디오 등을 포함하지만 이에 제한되지 않는다. 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 하나 이상의 정보 요소를 이용하는 것은, 예를 들어, 네트워크 액세스 가능 정보 자원의 색인에 대해 수행되는 질의에서 검색 용어로서 하나 이상의 정보 요소를 이용하는 단계를 포함할 수 있다. 일 실시 예에서, 단계(406)는 추천 엔진(300)의 정보 자원 식별자(306)에 의해 수행된다.
단계(408)에서, 하나 이상의 추천 네트워크 액세스 가능한 정보 자원 각각의 식별자가 사용자와 연관된 웹 브라우저로의 전달을 위해 제공된다. 이 단계는 예를 들어 웹 브라우저에 전달하기 위한 새로운 탭 페이지 콘텐츠를 동적으로 구성하는 새로운 탭 페이지 서비스에 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 제공하는 단계를 포함할 수 있다. 새로운 탭 페이지 콘텐츠에는 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각에 대한 정보가 들어 있다. 단계(408)는 예를 들어, 웹 브라우저로부터 새로운 탭 페이지 콘텐츠에 대한 요청의 수신에 응답하여 수행될 수 있다. 일 실시 예에서, 단계(408)는 추천 엔진(300)의 질의 응답 로직(308)에 의해 수행된다.
도 5는 일 실시 예에 따라 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 추천 네트워크 액세스 가능 정보 자원의 리스트를 사용자에게 제공하기 위한, 웹 브라우저에 의해 수행되는 방법의 흐름도(500)를 도시한다. 흐름도(500)의 방법은 예를 들어 도 1의 웹 브라우저(126)에 의해 구현될 수 있다. 그러나, 본 방법은 그 실시 예에 제한되지 않는다.
도 5에 도시된 바와 같이, 흐름도(500)의 방법은 웹 브라우저가 사용자의 식별자(ID)와 연관된 요청을 전송하는 단계(502)에서 시작한다. 사용자 ID는, 예를 들어 전술한 바와 같은 마이크로소프트 MSA ID 또는 특정 사용자를 식별하기에 적합한 임의의 다른 ID를 포함할 수 있다. 이 요청은 예를 들어, 도 1의 새로운 탭 페이지 서비스(122) 또는 도 2의 새로운 탭 페이지 서비스(200)와 같은 새로운 탭 페이지 서비스로 전송될 수 있다.
단계(504)에서, 요청에 응답하여, 웹 브라우저는 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 수신한다. 하나 이상의 네트워크 액세스 가능 정보 자원은 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보에 적어도 기초하여 선택된다. 일 실시 예에서, 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다. 단계(504) 동안 수신된 식별자(들)는 예를 들어, 도 1의 새로운 탭 페이지 서비스(122) 또는 도 2의 새로운 탭 페이지 서비스(200)와 같은 새로운 탭 페이지 서비스로부터 수신될 수 있다.
단계(506)에서, 웹 브라우저는 웹 브라우저의 UI 내에 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이한다. 예를 들어, 웹 브라우저는 웹 브라우저의 GUI의 새로운 탭 페이지 부분 내에 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이할 수 있다.
도 6은 새로운 탭 페이지 내에서 사용자에게 정보 자원 추천을 디스플레이하는 예시적인 웹 브라우저 GUI(600)를 도시하며, 정보 자원 추천은 사용자 자신의 IoT 장치 데이터에 기초한다. 도 6에 도시된 바와 같이, GUI(600)는 사용자가 포인터(604)로 클릭한 새로운 탭 페이지 활성화 컴포넌트(602)(탭 형태임)를 포함한다. 포인터(604)는 마우스와 같은 사용자 입력 장치에 의해 제어될 수 있다. 물론, 컴포넌트(602)와 상호 작용하는 다른 방법들이 가능하다. 예를 들어, 웹 브라우저가 터치 스크린을 갖는 장치상에서 실행되고 있는 실시 예에서, 사용자는 컴포넌트(602) 위의 터치 스크린의 일부를 터치함으로써 컴포넌트(602)와 상호 작용할 수 있다. 어떤 경우에라도, 사용자는 컴포넌트(602)와 상호 작용함으로써 웹 브라우저가 새로운 탭 페이지 콘텐츠에 대한 요청을 (도 1의 새로운 탭 페이지 서비스(122) 또는 도 2의 새로운 탭 페이지 서비스(200)와 같은) 새로운 탭 페이지 서비스에 전송하게 한다. 새로운 탭 페이지 콘텐츠는 그 후 새로운 탭 페이지 서비스에 의해 웹 브라우저로 리턴되고, 웹 브라우저는 GUI(600) 내에 콘텐츠를 디스플레이한다.
도 6에 더 도시된 바와 같이, 새로운 탭 페이지 서비스로부터 리턴되는 새로운 탭 페이지 콘텐츠는 추천 정보 자원에 관한 정보를 포함하며, 각각의 추천 정보 자원은 정보 세트(606i-6068)에 의해 표현된다. 도 6에 도시된 예시적인 GUI에서, 각 정보 세트는 추천 정보 자원을 나타내는 썸네일(thumbnail) 이미지 및 추천 정보 자원의 식별자(예를 들어, URL)를 포함한다. 예를 들어, 정보 세트(6061)는 썸네일 이미지(6081) 및 식별자(6101)를 포함한다. 일 실시 예에서, 썸네일 이미지 또는 식별자 중 하나를 클릭하면 웹 브라우저가 그와 연관된 추천 정보 자원으로 이동할 것이다.
전술한 바와 같이, GUI(600)에 디스플레이되는 정보에 관한 각각의 정보 자원은 사용자에 의해 소유되거나 사용자와 다른 방식으로 연관된 하나 이상의 장치로부터 획득된 IoT 장치 데이터에 기초하여 유리하게 추천될 수 있다. 따라서, 예를 들어, 사용자의 세탁기가 오작동하고 있고 특정 에러 코드를 보고하고 있는 시나리오에서, 하나 이상의 추천 정보 자원은 세탁기가 그 특정 에러 코드를 보고하고 있을 때 사용자에 의해 소유된 세탁기의 모델을 수리하는 것을 다루는 정보 자원을 포함할 수 있다. 예를 들어, 추천되는 정보 자원은 세탁기 제조업체의 웹 사이트, 세탁기 수리 방법을 설명하는 웹 페이지, 에러 코드의 의미를 설명하는 웹 페이지, 세탁기 수리에 관한 사용법 비디오, 지역 세탁기 수리 서비스와 연관된 웹 페이지 등을 포함할 수 있다. 사용자 IoT 장치 데이터가 어떻게 정보 자원 제안을 유도(drive)하는데 사용될 수 있는지 설명하는 추가의 예시 시나리오가 본 명세서에서 설명될 것이다.
도 7은 웹 브라우저가 사용자 자신의 IoT 장치로부터 획득된 데이터에 기초하여 자동 생성 정보 자원 제안 및 검색 질의 제안을 사용자에게 제공할 수 있게 하는 예시적인 시스템(700)의 블록도이다. 도 7에 도시된 실시 예에서, 정보 자원 제안 및 검색 질의 제안은 웹 브라우저의 주소 표시줄 드롭 다운 메뉴에 디스플레이된다. 도 7에 도시된 바와 같이, 시스템(700)은 복수의 사용자 IoT 장치(702), IoT 연결 허브(714), ISS(716), 검색 엔진 서비스(718), 추천 엔진(720), 주소 표시줄 서비스(722) 및 웹 브라우저(726)를 실행하는 사용자 컴퓨팅 장치(724)를 포함한다. 시스템(700)의 이들 요소 각각에 대하여 이제 설명할 것이다.
(피트니스 장치(704), DVR(706), 조명(708), 알람(710), 및 기기(712)를 포함하는) 사용자 IoT 장치(702), IoT 연결 허브(714), ISS(716), 검색 엔진 서비스(718), 사용자 컴퓨팅 장치(724) 및 웹 브라우저(726)는 도 1의 (피트니스 장치(104), DVR(106), 조명(108), 알람(110), 및 기기(112)를 포함하는) 사용자 IoT 장치(102), IoT 연결 허브(114), ISS(116), 검색 엔진 서비스(118), 사용자 컴퓨팅 장치(124) 및 웹 브라우저(126)와 각각 실질적으로 유사한 형태로 구현되고, 실질적으로 유사한 기능을 수행하도록 동작한다. 결과적으로 간결성을 위해 이들 컴포넌트에 대한 상세한 설명이 여기 제공되지 않을 것이다.
사용자 IoT 장치(702) 각각 내의 각 임베디드 시스템은 IoT 장치 데이터를 IoT 연결된 허브(714)에 전달하도록 동작 가능하다. 이러한 전달은 일반적으로 도 7의 화살표(730)로 표시된다. IoT 연결 허브(714)는 사용자 IoT 장치(702) 내의 임베디드 시스템 각각으로부터 IoT 장치 데이터를 모으고 인터넷 또는 다른 네트워크를 통해 그러한 IoT 장치 데이터를 ISS 서비스(716)로 전달하도록 동작 가능하다. 이러한 데이터의 전달은 도 7에 화살표(732)에 의해 나타나 있다. IoT 연결 허브(714)로부터 ISS(716)로 전달되는 IoT 장치 데이터는 사용자 IoT 장치(702)와 연관된 사용자의 ID를 포함한다.
ISS(716)는 (다른 IoT 연결 허브들을 포함하지만 이에 한정되지 않는 다른 엔티티들로부터뿐만 아니라) IoT 연결 허브(714)로부터 수신된 IoT 장치 데이터의 피드(734)를 검색 엔진 서비스(718)로 제공하도록 동작한다. 검색 엔진 서비스(718)는 IoT 장치 데이터를 추천 엔진(720)에 전달하여, 추천 엔진(720)이 그러한 데이터를 사용하여 주소 표시줄 서비스(722)로부터의 요청에 응답하여 사용자를 위한 정보 자원 추천 및/또는 검색 질의 추천을 생성할 수 있다. 추천 엔진(720) 및 주소 표시줄 서비스(722)는 각각 하나 이상의 프로세서 기반 컴퓨팅 장치(예를 들어, 서버) 상에서 실행된다. IoT 장치 데이터가 검색 엔진 서비스(718)로부터 추천 엔진(720)으로 전달되는 것이 화살표(736)에 의해 도 7에 도시된다.
IoT 장치 데이터를 수신하면, 추천 엔진(720)은 사용자가 관심 있어 할 수 있는 정보 자원을 식별하는데 사용될 수 있는 데이터로부터 정보 요소(예를 들어, 장치 ID, 장치 유형, 장치 모델, 장치 상태 정보, 장치 에러 코드 등)를 추출하고/하거나, 사용자를 위한 추천 검색 질의를 생성하도록 동작한다. 특히, 추천 엔진(720)은 적절한 스키마를 사용하여 데이터를 디코딩함으로써 IoT 장치 데이터로부터 정보 요소를 추출한다. 예를 들어, 추천 엔진(720)은 세탁기에서 얻어진 IoT 데이터로부터 정보 요소를 추출하기 위해 세탁기용 스키마를 이용할 수 있다. 그 다음, 추천 엔진(720)은 추출된 정보 요소를 이용하여 사용자가 관심을 가질 수 있는 네트워크 액세스 가능 콘텐츠(예를 들어, 웹 페이지, 비디오, 이미지 등)를 검색하고/하거나 사용자를 위한 추천 검색 질의를 생성할 수 있다.
구현에 따라, 추천 엔진(720)은 단순히 IoT 장치 데이터로부터 정보 요소를 추출할 수 있고, 그 후 IoT 장치 데이터와 함께 제공된 사용자 ID와 관련하여 정보 요소를 저장할 수 있다. 그런 다음, 사용자 ID에 의해 식별된 사용자를 위한 하나 이상의 추천 정보 자원 및/또는 하나 이상의 추천 검색 질의를 제공하라는 요청이 주소 표시줄 서비스(722)로부터 수신될 때, 추천 엔진(720)은 정보 요소를 이용하여 이러한 정보 자원에 대한 검색을 수행하고/하거나 이러한 검색 질의를 생성할 수 있다. 대안적인 구현 예에서, 추천 엔진(720)은 주소 표시줄 서비스(722)로부터 임의의 요청을 수신하기 전에, 추천 정보 자원에 대한 검색을 수행하고/하거나 정보 요소를 사용하여 추천 검색 질의를 생성할 수 있다. 대안적인 구현에 따르면, 추천 엔진(720)은 검색에 의해 발견된 정보 자원의 식별자(예를 들어, URL) 및/또는 생성된 검색 질의를 사용자 ID와 연관시켜 저장할 수 있다. 이러한 식별자 및/또는 검색 질의는 나중에 주소 표시줄 서비스(722)로부터의 요청에 응답하여 신속하게 액세스될 수 있다.
또한, 도 7의 시스템(700)에 따르면, 사용자 IoT 장치(702)와 연관된 사용자는 사용자 컴퓨팅 장치(724)에서 실행중인 웹 브라우저(726)와 상호 작용한다. 웹 브라우저(726)와 상호 작용하는 동안, 사용자는 웹 브라우저(726)의 GUI 내에 디스플레이되는 주소 표시줄과 상호 작용할 수 있다. 예를 들어, 사용자는 간단히 주소 표시줄을 클릭하거나 주소 표시줄에 하나 이상의 문자를 입력함으로써, 주소 표시줄과 상호 작용할 수 있다. 이것이 발생할 때, 웹 브라우저(726)는 인터넷을 통해 주소 표시줄 추천(738)에 대한 요청을 주소 표시줄 서비스(722)로 전송한다. 요청(738)은 사용자의 사용자 ID(예를 들어, MSA ID)를 포함하거나 이와 다른 방식으로 연관된다. 웹 브라우저(726)는 예를 들어 사용자가 그의/그녀의 사용자 ID를 사용하여 웹 브라우저(726)를 통해 그의/그녀의 계정에 로그온했기 때문에, 이 사용자 ID에 액세스할 수 있다.
요청(738)을 수신하면, 주소 서비스(722)는 추천 엔진(720)에 질의(740)를 전송한다. 질의(740)는 주소 표시줄에 디스플레이될 추천 정보 자원 및/또는 추천 검색 질의의 리스트에 대한 요청을 포함한다. 질의(740)는 사용자의 사용자 ID를 포함한다. 일 실시 예에서, 사용자가 이미 주소 표시줄에 타이핑을 시작했다면, 질의(740)는 또한 사용자가 텍스트 표시줄(text bar)에 이미 입력한 텍스트를 포함할 수 있다.
질의(740)를 수신하는 것에 응답하여, 추천 엔진(720)은 추천 정보 자원 및/또는 추천 검색 질의의 리스트를 생성한다. 일 실시 예에서, 추천 엔진(720)은 질의(740)에 포함된 사용자 ID를 사용하여 사용자 ID에 의해 식별된 사용자와 연관된 IoT 장치 데이터 정보 요소 세트에 액세스한다. 그 다음, 추천 엔진(720)은 정보 요소를 이용하여 사용자에게 관심의 대상이 될 수 있는 정보 자원(예를 들어, 웹 페이지, 비디오, 이미지 등)을 검색하고/하거나 사용자를 위한 추천 검색 질의를 생성한다. 정보 자원 식별자(예를 들어, URL)의 리스트 및/또는 추천 검색 질의를 포함할 수 있는 검색 결과는 질의 응답(742)의 일부로서 주소 표시줄 서비스(722)에 제공된다. 대안적인 실시 예에서, 정보 자원에 대한 검색 및/또는 검색 질의의 생성은 미리 수행되어, 결과가 추천 엔진(720)에 의해 사용자 ID와 연관되어 저장될 수 있다. 이러한 실시 예에 따르면, 추천 엔진(720)은 질의(740)에 포함된 사용자 ID를 사용하여 추천 정보 자원 및/또는 검색 질의의 이전에 저장된 리스트를 액세스하여, 이 리스트를 질의 응답(742)의 일부로서 리턴한다. 특정 실시 예들에서, 추천 엔진(720)은 추천 정보 자원 또는 추천 검색 질의를 선택하는 데 있어서, 사용자가 주소 표시줄에 이미 타이핑한 텍스트를 고려한다.
추천 정보 자원 및/또는 추천 검색 질의의 리스트를 포함하는 질의 응답(742)을 수신한 후, 주소 표시줄(722)은 웹 브라우저(726)의 주소 표시줄 드롭 다운 메뉴에 디스플레이될 콘텐츠를 동적으로 구축한다. 콘텐츠는 각 추천 정보 자원의 식별자(예를 들어, URL) 및/또는 하나 이상의 추천 검색 질의를 포함할 수 있다. 그 다음, 주소 표시줄 서비스(722)는 콘텐츠를 웹 브라우저(726)로 리턴한다. 그 다음, 웹 브라우저(726)는 콘텐츠를 주소 표시줄 드롭 다운 메뉴 내에 디스플레이한다.
도 8은 일 실시 예에 따른 예시적인 주소 표시줄 서비스(800)의 블록도이다. 주소 표시줄 서비스(800)는 도 7의 주소 표시줄 서비스(722)의 예시적인 구현을 포함할 수 있다. 도 8에 도시된 바와 같이, 주소 표시줄 서비스(800)는 웹 브라우저 인터페이스(802), 추천 엔진 질의 로직(804), 및 주소 표시줄 콘텐츠 빌더(806)를 포함한다. 이들 컴포넌트 각각은 소프트웨어(예를 들어, 하나 이상의 범용 및/또는 특수 목적 프로세서에 의해 실행되는 소프트웨어)로, (예를 들어, 디지털 및/또는 아날로그 회로를 사용하는) 하드웨어로 또는 소프트웨어와 하드웨어의 조합으로서 구현될 수 있다. 일 실시 예에서, 하나 이상의 컴포넌트는 하나 이상의 서버 컴퓨터 상에 구현된다.
웹 브라우저 인터페이스(802)는 사용자 컴퓨팅 장치(724)에서 실행중인 웹 브라우저(726)와 같이 클라이언트 장치에서 실행중인 웹 브라우저로부터 주소 표시줄 콘텐츠에 대한 요청을 수신하고 이러한 요청에 대한 응답을 그러한 클라이언트 장치로 다시 전송하도록 동작 가능한 로직을 포함한다. 응답에는 웹 브라우저 GUI의 주소 표시줄 드롭 다운 메뉴에 포함할 콘텐츠가 포함된다.
추천 엔진 질의 로직(804)은 웹 브라우저 인터페이스(802)를 통해 주소 표시줄 콘텐츠 페이지에 대한 클라이언트 요청의 수신에 응답하여 추천 엔진(720)과 같은 추천 엔진에 질의를 생성하여 송신하도록 동작 가능한 로직을 포함한다. 일 실시 예에서, 질의는 하나 이상의 추천 정보 자원 및/또는 하나 이상의 추천 검색 질의의 리스트에 대한 요청을 포함한다. 질의는 또한 특정 사용자 ID를 포함하거나 다른 방식으로 연관될 수 있다. 질의는 사용자가 이미 주소 표시줄에 타이핑한 텍스트를 더 포함할 수 있다. 추천 엔진 질의 로직(804)은 추천 엔진으로부터 하나 이상의 추천 정보 자원 및/또는 하나 이상의 추천 검색 질의의 리스트를 수신하고, 이 리스트를 주소 표시줄 콘텐츠 빌더(806)에 제공하도록 동작 가능한 로직을 더 포함한다.
주소 표시줄 콘텐츠 빌더(806)는 웹 브라우저 인터페이스(802)를 통해 주소 표시줄 콘텐츠 페이지에 대한 클라이언트 요청을 수신하는 것에 응답하여 주소 표시줄 콘텐츠를 동적으로 어셈블링하도록 동작 가능한 로직을 포함한다. 이러한 콘텐츠는 추천 엔진 질의 로직(804)으로부터 수신된 추천 정보 자원 및/또는 추천 검색 질의에 대한 정보를 포함할 수 있다. 주소 표시줄 콘텐츠 빌더(806)에 의해 생성된 주소 표시줄 콘텐츠는 콘텐츠를 요청한 웹 브라우저로 전송되도록 웹 브라우저 인터페이스(802)에 제공된다.
도 9는 일 실시 예에 따른 예시적인 추천 엔진(900)의 블록도이다. 추천 엔진(900)은 도 7의 추천 엔진(720)의 예시적인 구현을 포함할 수 있다. 도 9에 도시된 바와 같이, 추천 엔진(900)은 IoT 데이터 수신기(902), IoT 정보 요소 추출기(904), 정보 자원 식별자(906), 검색 질의 생성기(908) 및 질의 응답 로직(910)을 포함한다. 이들 컴포넌트 각각은 소프트웨어(예를 들어, 하나 이상의 범용 및/또는 특수 목적 프로세서에 의해 실행되는 소프트웨어)로, (예를 들어, 디지털 및/또는 아날로그 회로를 사용하는) 하드웨어로 또는 소프트웨어와 하드웨어의 조합으로서 구현될 수 있다. 일 실시 예에서, 하나 이상의 컴포넌트는 하나 이상의 서버 컴퓨터 상에 구현된다.
IoT 데이터 수신기(902)는 다양한 사용자와 연관된 장치들 내에 배치된 임베디드 시스템들로부터 비롯된 IoT 장치 데이터를 수신하도록 동작 가능한 로직을 포함한다. 이러한 IoT 장치 데이터는 (도 7의 IoT 연결 허브(714)와 같은) 임의의 수의 IoT 연결 허브에 의해 수집되어, 이에 의해 (도 7의 ISS 서비스(716)와 같은) ISS 서비스로 전달될 수 있으며, 그 후 (예컨대, 도 7의 검색 엔진 서비스(718)와 같은) 검색 엔진 서비스로 전달된다. 검색 엔진 서비스는 IoT 장치 데이터를 추천 엔진(900)에 제공한다. 그러나, IoT 데이터 수신기(902)는 또한 다른 방식으로 IoT 장치 데이터를 수신할 수도 있다. 일 실시 예에서, IoT 데이터 수신기(902)는 다수의 사용자에 대한 IoT 장치 데이터를 수신하고, 특정 사용자에 대한 IoT 장치 데이터는 그러한 IoT 장치 데이터와 연관된 사용자 ID에 의해 식별된다.
IoT 정보 요소 추출기(904)는 IoT 장치 데이터로부터 정보 요소들(예를 들어, 장치 ID, 장치 유형, 장치 모델, 장치 상태 정보, 장치 에러 코드 등)을 추출하도록 동작 가능한 로직을 포함한다. 특히, IoT 정보 요소 추출기(904)는 적절한 스키마를 사용하여 데이터를 디코딩함으로써 IoT 장치 데이터로부터 정보 요소를 추출하도록 동작 가능하다. IoT 정보 요소 추출기(904)는 특정 사용자 ID와 관련하여 IoT 장치 데이터의 특정 세트에 대한 추출된 정보 요소를 저장할 수 있다.
정보 자원 식별자(906)는 특정 사용자 ID에 의해 식별된 사용자에 대한 하나 이상의 추천 정보 자원에 대한 검색을 수행하기 위해 그 특정 사용자 ID와 연관된 정보 요소를 이용하도록 동작 가능한 로직을 포함한다. 예를 들어, 정보 자원 식별자(906)는 네트워크 액세스 가능 정보 자원의 색인의 검색에서 검색 용어로서 정보 요소를 이용할 수 있다. 일 실시 예에서, 정보 자원 식별자(906)는 사용자 ID를 포함하거나 다른 방식으로 연관된 (도 7의 주소 표시줄 서비스(722)와 같은) 주소 표시줄 서비스로부터의 질의의 수신에 응답하여 그러한 검색을 수행하도록 동작 가능하다. 다른 실시 예에서, 정보 자원 식별자(906)는 주소 표시줄 서비스로부터 임의의 요청을 수신하기 전에, 특정 사용자 ID에 대한 추천 정보 자원에 대한 검색을 그 사용자 ID와 연관된 정보 요소를 사용하여 수행할 수 있다. 이러한 실시 예에 따라, 정보 자원 식별자(906)는 사용자 ID와 관련하여 검색에 의해 발견된 추천 정보 자원의 식별자(예를 들어, URL)를 저장할 수 있다. 이러한 식별자는 나중에 주소 표시줄 서비스로부터의 요청에 대한 응답으로 신속하게 액세스될 수 있다.
검색 질의 생성기(908)는 특정 사용자 ID에 의해 식별된 사용자에 대한 하나 이상의 추천 검색 질의를 생성하기 위해 그 특정 사용자 ID와 연관된 정보 요소를 이용하도록 동작 가능한 로직을 포함한다. 예를 들어, 검색 질의 생성기(908)는 정보 요소를 추천 검색 질의의 컴포넌트로서 또는 추천 검색 질의를 검색하는데 사용될 키워드로서 이용할 수 있다. 일 실시 예에서, 검색 질의 생성기(908)는 사용자 ID를 포함하거나 다른 방식으로 연관된 (도 7의 주소 표시줄 서비스(722)와 같은) 주소 표시줄 서비스로부터의 질의의 수신에 응답하여 하나 이상의 추천 검색 질의를 생성하도록 동작 가능하다. 다른 실시 예에서, 검색 질의 생성기(908)는 주소 표시줄 서비스로부터 임의의 요청을 수신하기 전에, 특정 사용자 ID에 대한 추천 검색 질의를 그 사용자 ID와 연관된 정보 요소를 사용하여 생성할 수 있다. 그러한 실시 예에 따라, 검색 질의 생성기(908)는 사용자 ID와 관련하여 추천 검색 질의를 저장할 수 있다. 이러한 식별자는 나중에 주소 표시줄 서비스로부터의 요청에 응답하여 신속하게 액세스될 수 있다.
질의 응답 로직(910)은 주소 표시줄 서비스(예를 들어, 도 7의 주소 표시줄 서비스(722))로부터 질의를 수신하고, 정보 자원 식별자(906)에 의해 생성된 추천 정보 자원의 리스트 및/또는 검색 질의 생성기(908)에 의해 생성된 추천 검색 질의의 리스트를 제공함으로써, 그러한 질의에 응답하도록 동작 가능한 로직을 포함한다. 일 실시 예에서, 주소 표시줄 서비스로부터 수신된 각각의 질의는 사용자 ID를 포함하고 질의 응답 로직(910)은 사용자 ID를 정보 자원 식별자(906)에 제공하도록 동작하여, 정보 자원 식별자(906)는 특정 사용자 ID에 의해 식별된 사용자를 위한 추천 정보 자원들의 리스트를 생성할 수 있다. 일 실시 예에서, 질의 응답 로직(910)에 의해 주소 표시줄 서비스에 리턴되는 추천 정보 자원들의 리스트는 추천 정보 자원들의 URL들의 리스트를 포함한다. 질의 응답 로직(910)은 검색 질의 생성기(908)가 특정 사용자 ID에 의해 식별된 사용자에 대한 추천 검색 질의의 리스트를 생성할 수 있도록, 사용자 ID를 검색 질의 생성기(908)에 제공하도록 또한 동작할 수 있다.
도 10은 일 실시 예에 따라 사용자의 IoT 장치들로부터 얻어진 데이터에 기초하여 추천 네트워크 액세스 가능 정보 자원들의 리스트 및/또는 추천 검색 질의들의 리스트를 웹 브라우저에 제공하기 위한, 추천 엔진에 의해 수행되는 방법의 흐름도(1000)를 도시한다. 흐름도(1000)의 방법은, 예를 들어 도 7의 추천 엔진(720) 또는 도 9의 추천 엔진(900)에 의해 구현될 수 있다. 그러나, 본 방법은 이들 실시 예에 한정되지 않는다.
도 10에 도시된 바와 같이, 흐름도(1000)의 방법은 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보가 수신되는 단계(1002)에서 시작한다. 일 실시 예에서, 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다. 일 실시 예에서, 단계(1002)는 추천 엔진(900)의 IoT 데이터 수신기(902)에 의해 수행된다.
단계(1004)에서, 하나 이상의 정보 요소가 단계(1002) 동안 수신된 정보로부터 추출된다. 일 실시 예에서, 이 단계는 수신된 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 단계를 포함한다. 그 다음, 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마가 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위해 수신된 정보의 적어도 일부에 적용된다. 또한, 이러한 실시 예에 따르면, 미리 정의된 스키마는 XML 스키마 또는 JSON 스키마를 포함할 수 있는데, 이들은 단지 예에 불과하다. 일 실시 예에서, 단계(1004)는 추천 엔진(900)의 IoT 정보 요소 추출기(904)에 의해 수행된다.
단계(1006)에서, 단계(1006) 동안 추출된 하나 이상의 정보 요소는 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하고/식별하거나 하나 이상의 추천 검색 질의를 생성하는데 이용된다. 각각의 네트워크 액세스 가능 정보 자원은 예를 들어 웹 사이트, 웹 페이지, 이미지, 비디오 등을 포함할 수 있지만 이에 제한되지 않는다. 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 하나 이상의 정보 요소를 이용하는 것은, 예를 들어, 네트워크 액세스 가능 정보 자원의 색인에 대해 수행되는 질의에서 검색 용어로서 하나 이상의 정보 요소를 이용하는 단계를 포함할 수 있다. 하나 이상의 추천 검색 질의를 생성하기 위해 하나 이상의 정보 요소를 이용하는 것은, 예를 들어, 추천 검색 질의의 컴포넌트로서, 또는 추천 검색 질의를 검색하는데 사용될 키워드로서 하나 이상의 정보 요소를 이용하는 단계를 포함할 수 있다. 일 실시 예에서, 단계(1006)는 추천 엔진(900)의 정보 자원 식별자(906) 및/또는 검색 질의 생성기(908)에 의해 수행된다.
단계(1008)에서, 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자 및/또는 하나 이상의 추천 검색 질의는 사용자와 연관된 웹 브라우저로의 전달을 위해 제공된다. 이 단계는 예를 들어, 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자 및/또는 하나 이상의 추천 검색 질의를 웹 브라우저에 전달하기 위한 주소 표시줄 콘텐츠를 동적으로 어셈블링하는 주소 표시줄 서비스에 제공하는 단계를 포함할 수 있다. 단계(1008)는 예를 들어, 웹 브라우저로부터 주소 표시줄 콘텐츠에 대한 요청의 수신에 응답하여 수행될 수 있다. 일 실시 예에서, 단계(1008)는 추천 엔진(900)의 질의 응답 로직(910)에 의해 수행된다.
도 11은 일 실시 예에 따라 사용자의 IoT 장치로부터 얻어진 데이터에 기초하여 추천 네트워크 액세스 가능 정보 자원들의 리스트 및/또는 추천 검색 질의들의 리스트를 사용자에게 제공하는, 웹 브라우저에 의해 수행되는 방법에 따른 흐름도(1100)를 도시한다. 흐름도(1100)의 방법은 예를 들어 도 7의 웹 브라우저(726)에 의해 구현될 수 있다. 그러나, 본 방법은 그 실시 예에 제한되지 않는다.
도 11에 도시된 바와 같이, 흐름도(1100)의 방법은 웹 브라우저가 사용자의 식별자(ID)와 연관된 요청을 전송하는 단계(1102)에서 시작한다. 사용자 ID는 예를 들어 전술한 바와 같은 마이크로소프트 MSA ID 또는 특정 사용자를 식별하기에 적합한 다른 ID를 포함할 수 있다. 요청은 예를 들어, 도 7의 주소 표시줄 서비스(722) 또는 도 8의 주소 표시줄 서비스(800)와 같은 주소 표시줄 서비스로 전송될 수 있다.
단계(1104)에서, 요청에 응답하여, 웹 브라우저는 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자 및/또는 하나 이상의 추천 검색 질의를 수신한다. 하나 이상의 추천 네트워크 액세스 가능 정보 자원 및/또는 하나 이상의 추천 검색 질의는 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보에 적어도 기초하여 선택된다. 일 실시 예에서, 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다. 단계(1104) 동안 수신된 하나 이상의 식별자 및/또는 하나 이상의 검색 질의는 예를 들어 도 7의 주소 표시줄 서비스(722) 또는 도 8의 주소 표시줄 서비스(800)와 같은 주소 표시줄 서비스로부터 수신될 수 있다.
단계(1106)에서, 웹 브라우저는 웹 브라우저의 UI 내에 하나 이상의 추천 네트워크 액세스 가능 정보 자원 및/또는 하나 이상의 추천 검색 질의에 관한 정보를 디스플레이한다. 예를 들어, 웹 브라우저는 웹 브라우저의 GUI의 주소 표시줄 드롭 다운 메뉴 내에 하나 이상의 추천 네트워크 액세스 가능 정보 자원 및/또는 하나 이상의 추천 검색 질의에 관한 정보를 디스플레이할 수 있다.
도 12는 사용자 자신의 IoT 장치 데이터에 기초한 정보 자원 추천 및/또는 검색 질의 추천을 주소 표시줄 드롭 다운 메뉴 내에서 사용자에게 디스플레이하는 예시적인 웹 브라우저 GUI(1200)를 도시한다. 도 12에 도시된 바와 같이, GUI(1200)는 주소 표시줄(1202)을 포함한다. 사용자가 (예를 들어 주소 표시줄을 클릭하거나 주소 표시줄에 텍스트를 입력함으로써) 주소 표시줄(1202)과 상호 작용할 때, 사용자는 웹 브라우저가 (도 7의 주소 표시줄 서비스(722) 또는 도 8의 주소 표시줄 서비스(800)와 같은) 주소 표시줄 서비스에 주소 표시줄 콘텐츠에 대한 요청을 전송하도록 한다. 주소 표시줄 콘텐츠는 이후 주소 표시줄 서비스에 의해 웹 브라우저로 리턴되며, 웹 브라우저는 GUI(1200) 내에 그 콘텐츠를 디스플레이한다.
특히, 웹 브라우저는 GUI(1200)의 주소 표시줄 드롭 다운 메뉴(1204) 내에 콘텐츠를 디스플레이한다. 주소 표시줄 콘텐츠는 추천 정보 자원의 하나 이상의 식별자(예를 들어, URL) 및/또는 하나 이상의 추천 검색 질의를 포함할 수 있다. 사용자는 주소 표시줄 드롭 다운 메뉴(1204) 내의 정보 자원 식별자를 클릭하거나 다른 방식으로 상호 작용함으로써, 웹 브라우저로 하여금 대응 정보 자원으로 이동하게 한다. 사용자는 주소 표시줄 드롭 다운 메뉴(1204) 내의 검색 질의를 클릭하거나 다른 방식으로 상호 작용함으로써, 웹 브라우저로 하여금 검색 엔진을 호출하여 선택된 검색 질의를 사용하여 콘텐츠를 검색하게 하고 검색 결과를 리턴하게 하며, 그 후 검색 결과는 웹 브라우저에 의해 디스플레이된다.
이전에 설명된 바와 같이, 주소 표시줄 드롭 다운 메뉴(1204)에서 식별된 각각의 정보 자원 및 주소 표시줄 드롭 다운 메뉴(1204)에 디스플레이된 각각의 검색 질의는 유리하게는, 사용자에 의해 소유되거나 사용자와 다른 방식으로 연관된 하나 이상의 장치로부터 획득된 IoT 장치 데이터에 기초하여 추천될 수 있다. 따라서, 예를 들어 사용자의 세탁기가 오작동하고 있고 특정 에러 코드를 보고하고 있는 시나리오에서, 주소 표시줄 드롭 다운 메뉴(1204)에서 식별된 하나 이상의 추천 정보 자원은 세탁기가 그 특정 에러 코드를 보고하고 있을 때 사용자에 의해 소유된 세탁기의 모델을 수리하는 것을 다루는 정보 자원을 포함할 수 있다. 예를 들어, 정보 자원은 세탁기 제조업체의 웹 사이트, 세탁기 수리 방법을 설명하는 웹 페이지, 에러 코드의 의미를 설명하는 웹 페이지, 세탁기 수리에 관한 사용법 비디오, 지역 세탁기 수리 서비스와 연관된 웹 페이지 등을 포함할 수 있다. 또한, 주소 표시줄 드롭 다운 메뉴(1204)에서 디스플레이되는 검색 질의는 세탁기가 특정 에러를 보고할 때 세탁기를 수리하는 것에 관한 유용한 정보를 리턴하도록 만들어질 수 있다. 예를 들어, 추천 검색 질의는 에러 코드뿐 아니라 세탁기의 이름, 모델, 또는 다른 식별자를 포함할 수 있다.
전술한 예들에서, 추천 정보 자원들 및/또는 추천 검색 질의들에 관한 정보가 웹 브라우저 GUI의 새로운 탭 페이지 또는 주소 표시줄 드롭 다운 메뉴 내에 제공되었지만, 여기에 기술된 기술들은 그러한 정보가 웹 브라우저 GUI의 다른 부분에 표시되게 하는 데 사용될 수 있다. 또한, 추천 정보 자원들 및/또는 추천 검색 질의들은 다른 GUI들(예를 들어, PDA(digital personal assistant)의 GUI)을 통해 또는 비-그래픽(non-graphical) UI를 통해 사용자에게 제시될 수 있다.
사용자 IoT 장치 데이터가 정보 자원 제안 및 검색 질의 제안을 유도(drive)하는 데 어떻게 사용될 수 있는지를 설명하는 추가의 예시 시나리오가 이제 설명될 것이다.
사용자가 그녀의 차로 집으로 운전하고 있고, 자동차의 엔진 점검 표시등(check engine light)이 켜진다. 차량 내부의 임베디드 시스템은 엔진 경고등(check engine) 상태를 보고하며, 이 데이터는 도 1 또는 도 7의 이전에 설명된 기반 구조를 통해 추천 정보 자원을 식별하고/하거나 웹 브라우저를 통한 제공을 위한 검색 질의를 생성하는 추천 엔진에 전달된다. 사용자는 집에 도착할 때 자신의 웹 브라우저를 열어, 엔진 점검 표시등에 대한 정보를 검색하기 시작한다. 웹 브라우저는 새로운 탭 페이지 서비스 또는 추천 엔진과 통신하는 주소 표시줄 서비스를 호출한다. 이 서비스(들)는 추천 정보 자원 및/또는 검색 질의에 대한 정보가 사용자의 웹 브라우저 내에 디스플레이되도록 한다. 따라서, 예를 들어, 브라우저는 사용자를 돕기 위해 즉각적인 응답을 제공하는 특정 웹 사이트 또는 질의를 제안할 수 있다. 이러한 방식으로 사용자가 얻을 수 있는 정보의 예로는 지역 서비스 센터의 이름, 주소 및 연락처 정보 및 엔진 경고등 상태, 표준 원인 및 제안된 해결책(예를 들어, 연료 탱크 뚜껑을 검사하여 단단히 잠겨졌는지 확인하는 것)에 대한 자세한 정보가 포함될 수 있다. 사용자는 자동차에 대한 구체적인 정보를 제공하지 않고도 유용한 정보를 얻을 수 있다. 예를 들어, 일 실시 예에서, 사용자는 관련 정보 자원 또는 검색 질의가 제공되도록 주소 표시줄(또는 다른 데이터 입력 인터페이스 컴포넌트)에 "check en..."을 입력하기 시작하기만 하면 된다. 대안적인 실시 예에서, 그러한 정보 자원에 대한 링크 또는 검색 질의는 사용자가 어떠한 정보도 입력하지 않고 제공될 수 있다.
다른 예시적인 시나리오에서 사용자의 식기 세척기가 오작동하고 있으며 장치의 패널에 에러 코드가 표시된다. 식기 세척기 내의 임베디드 시스템은 오작동 및 에러 코드를 보고하며, 이 데이터는 앞서 설명된 도 1 또는 도 7의 기반 구조를 통해 추천 정보 자원을 식별하고/하거나 웹 브라우저를 통한 제공을 위한 검색 질의를 생성하는 추천 엔진에 전달된다. 사용자는 에러에 대한 정보를 검색하기 위해 웹 브라우저를 시작한다. 사용자가 웹 브라우저를 시작하면 웹 브라우저의 새로운 탭 페이지는 추천 엔진과 통신하는 새로운 탭 페이지 서비스를 호출한다. 이 서비스는 추천 정보 자원에 대한 정보가 새로운 탭 페이지 내에 디스플레이되도록 한다. 추천 정보 자원에는 식기 세척기의 에러 코드와 명확하게 연관된 웹 사이트가 포함된다. 따라서 한 번의 클릭으로 사용자는 에러 코드, 서비스 센터 정보 및 제안된 해결책에 대한 자세한 정보를 얻을 수 있다.
또 다른 예시적인 시나리오에서, 사용자의 냉장고 제빙기 필터가 교체될 필요가 있다. 냉장고 내의 임베디드 시스템은 이 상태를 보고하고, 데이터는 앞서 설명된 도 1 또는 도 7의 기반 구조를 통해 추천 정보 자원을 식별하고/하거나 웹 브라우저를 통한 제공을 위한 검색 질의를 생성하는 추천 엔진에 전달된다. 다음에 사용자가 웹 브라우저를 시작할 때 새로운 탭 페이지는 추천 엔진과 통신하는 새로운 탭 페이지 서비스를 호출한다. 이 서비스는 추천 정보 자원에 대한 정보가 새로운 탭 페이지 내에 디스플레이되도록 한다. 따라서 새로운 탭 페이지는 필터 상태에 대한 세부 정보를 제공하고 새 필터를 구입할 수 있는 링크를 제공할 수 있다.
또 다른 예시적인 시나리오에서, 사용자는 피트니스 장치(fitness device)를 착용하고 있고, 3 마일 달리기를 하고 돌아온다. 피트니스 장치 내의 임베디드 시스템은 달리기 중에 수집된 데이터를 보고하며, 이 데이터는 앞서 설명된 도 1 또는 도 7의 기반 구조를 통해 추천 정보 자원을 식별하고/하거나 웹 브라우저를 통한 제공을 위한 검색 질의를 생성하는 추천 엔진에 전달된다. 다음에 사용자가 웹 브라우저를 시작할 때, 새로운 탭 페이지는 추천 엔진과 통신하는 새로운 탭 페이지 서비스를 호출한다. 이 서비스는 추천 정보 자원에 대한 정보가 새로운 탭 페이지 내에 디스플레이되도록 한다. 예를 들어, 추천 정보 자원에는 피트니스 관련 기사, 건강한 레시피 및 피트니스 장비에 대한 정보가 포함될 수 있다. 사용자가 운동을 계속하고 건강을 향상시키면, 웹 브라우저에서 제공하는 제안을 사용자에게 맞게 조정할 수 있다.
추가의 예시적인 시나리오에서, 사용자의 의류 건조기 내의 임베디드 시스템은 사용자를 대신하여 많은 세탁물을 건조시킬 때 점점 더 길어지는 건조 시간을 보고한다. 이 데이터는 앞서 설명된 도 1 또는 도 7의 기반 구조를 통해 추천 정보 자원을 식별하고/하거나 웹 브라우저를 통한 제공을 위한 검색 질의를 생성하는 추천 엔진에 전달된다. 다음에 사용자가 웹 브라우저를 시작할 때, 새로운 탭 페이지는 추천 엔진과 통신하는 새로운 탭 페이지 서비스를 호출한다. 이 서비스는 추천 정보 자원에 대한 정보가 새로운 탭 페이지에 디스플레이되도록 한다. 예를 들어, 이 서비스는 건조기의 성능을 향상시키는 방법에 대한 웹 사이트, 기사 및 비디오에 대한 링크를 초래할 수 있다.
전술한 많은 예들에서, 단일 IoT 장치로부터 얻어진 데이터는 웹 브라우저 추천을 유도(drive)하는데 사용된다. 그러나, 특정 실시 예들에서, 이질적인(disparate) 장치 유형 내의 다수의 임베디드 시스템으로부터 얻어진 데이터가 또한 특정 정보 자원 또는 검색 질의의 추천을 유도하는데 사용될 수 있다. 예를 들어, 사용자의 세탁기가 오작동을 보고하고 있고 사용자의 집에 있는 다른 센서가 바닥에 있는 물을 보고하고 있다면, 추천 엔진은 그러한 IoT 장치 데이터를 분석하여, 세탁기가 누출을 발생시켰다고 추론하여, 이 추론에 기초하여 추천을 생성할 수 있다. 다른 예로서, 사용자의 연기 탐지기(smoke alarm)가 연기가 검출되었다고 보고하고 있고 사용자의 오븐이 오작동을 보고하고 있다면, 추천 엔진은 그러한 IoT 장치 데이터를 분석하여 사용자의 오븐이 연기를 발생시키고 있다고 추론하고, 그 추론에 기초하여 추천을 생성할 수 있다. 또 다른 예로서, 만일 보일러(furnace) 및 스토브 모두가 가스 공급이 불가능하다고 보고하고 있다면, 추천 엔진은 그러한 IoT 장치 데이터를 분석하여 사용자 집으로의 가스 공급이 차단되었다고 추론하고, 그 추론에 기초하여 추천을 생성할 수 있다. 또 다른 예로서, 사용자의 냉각 시스템은 그와 연관된 공기 필터가 시간 내에(in some time) 변경되지 않았다고 보고할 수 있으며, 사용자의 집의 위층 방의 온도 조절기가 비정상적으로 따뜻한 온도를 보고하고 있을 수 있다. 추천 엔진은 그러한 IoT 장치 데이터를 분석하여 공기 필터가 즉시 변경되어야 한다고 추론할 수 있으며, 그 추론에 기초하여 추천을 생성할 수 있다.
또 다른 실시 예들에서, 상이한 사용자들에 의해 소유된 동일한 장치 유형의 인스턴스들 내의 다수의 임베디드 시스템으로부터 얻어진 데이터는 특정 정보 자원 또는 검색 질의의 추천을 유도하는데 사용될 수 있다. 예를 들어, 특정 브랜드의 많은 세탁기가 유사한 에러 코드 또는 문제를 보고하고 있다면, 에러 코드 또는 문제와 연관된 추천은, 해당 사용자의 세탁기가 그 에러 코드 또는 문제를 아직 경험하지 않았다 할지라도 그 세탁기를 소유한 사용자에게 전달될 수 있다. 따라서, 장치를 소유한 모든 사용자에게 추천 또는 제안이 이루어질 수 있다. 이런 식으로 사용자들은 장치에 문제가 발생하기 전에 경고를 받을 수 있다. 예를 들어, 추천 엔진은 사용자 장치의 수명 및 상이한 사용자들이 소유한 동일한 장치의 다른 인스턴스들에서 생성된 데이터에 근거하여, 특정 정보 자원 또는 검색 질의가 웹 브라우저에서 사용자에게 제공되도록 할 수 있다.
추가 실시 예들에서, 하나 이상의 개별 장치 내의 하나 이상의 임베디드 시스템으로부터 획득된 데이터는 웹 브라우저의 사용자들로의 특정 정보 자원, 검색 질의 또는 다른 정보의 추천을 유도하는데 사용될 수 있으며, 여기서 다른 사용자들은 각 장치들 어느 것도 소유하고 있지 않다. 예를 들어 사용자 장치로부터 획득된 데이터를 사용하여 검색 엔진에 전원을 공급하고 그 장치를 소유하지 않은 사용자에 대해서도 답변을 제공할 수 있다. 예를 들어, 시애틀의 평균 실내 온도, 특정 인구에 의해 시청된 텔레비전의 시간 수, 특정 가정이 비어 있는 시간 등과 같은 정보 항목을 수집하여 웹 브라우저 또는 검색 엔진 내에서 사용자로의 정보 전달을 유도하는 데 사용할 수 있다. 이러한 시나리오들에서 모든 데이터는 익명으로 처리되어 사용자의 개인 정보를 보호한다.
III. 사용자 IoT 장치 데이터를 기반으로 검색 결과 생성 및/또는 순위 지정(Generating and/or Ranking Search Rsults based on User IoT Device Data)
도 13은 사용자 IoT 장치 데이터가 검색 엔진에 의해 사용되어 사용자를 대신하여 보다 관련 있는 검색 결과를 생성하고/하거나 사용자를 대신하여 검색 결과를 순위 지정하는 것을 돕는 시스템(1300)의 블록도이다. 도 13에 도시된 바와 같이, 시스템(1300)은 사용자 컴퓨팅 장치(1302), 및 사용자 컴퓨팅 장치(1302)가 통신 가능하게 접속되는 검색 엔진(1304)을 포함한다.
사용자 컴퓨팅 장치(1302)는 웹 브라우저를 실행할 수 있는 임의의 장치를 포함할 수 있다. 예를 들어 제한 없이, 사용자 컴퓨팅 장치(1302)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 넷북, 스마트폰, 게임 콘솔, 스마트 TV 등을 포함할 수 있다. 검색 엔진(1304)은 하나 이상의 프로세서 기반 컴퓨팅 장치(예를 들어, 서버들) 상에서 실행되는 하나 이상의 컴퓨터 프로그램을 포함한다. 사용자 컴퓨팅 장치(1302)는 인터넷(이에 국한되지 않음)과 같은 네트워크를 통해 검색 엔진(1304)에 통신 가능하게 접속된다.
사용자는 검색 엔진(1304)에 검색 질의(1308)를 제출하기 위해 사용자 컴퓨팅 장치(1302) 상에서 실행되는 웹 브라우저(1306)와 상호 작용한다. 검색 질의(1308)를 수신하는 것에 응답하여, 검색 엔진(1304)은 검색 질의(1308)와 관련 있는 하나 이상의 정보 자원(예를 들어, 웹 사이트, 웹 페이지, 비디오, 이미지 등)을 찾기 위하여 검색을 실행한다. 검색 엔진(1304)은 검색 결과 페이지(1310)의 일부로서 웹 브라우저(1306)에 하나 이상의 정보 자원의 식별자를 리턴한다.
검색 엔진(1304)은 질의를 제출한 사용자와 연관된 IoT 장치 데이터(1312)를 수신한다. 이러한 IoT 장치 데이터(1312)는, 예를 들어, 도 1 또는 도 7에 도시된 것과 유사한 기반 구조를 사용하여 수신되어, 각각 데이터 피드(134 또는 734)를 생성할 수 있다. 검색 엔진(1304)은 검색 질의(1308) 및 IoT 장치 데이터(1312) 모두를 이용하여 관련 정보 자원에 대한 검색을 수행할 수 있다. 검색 엔진(1304)은 IoT 장치 데이터(1312)와 연관된 사용자 ID를 질의(1308)와 연관된 사용자 ID와 매칭시킴으로써, IoT 장치 데이터(1312)를 질의(1308)를 제출한 사용자와 상관시킬 수 있다.
검색 질의(1308)와 관련하여 IoT 장치 데이터(1312)를 이용함으로써, 검색 엔진(1304)에 의해 구현되는 검색 알고리즘은 사용자와 특별한 관련성이 있는 정보 자원을 찾을 수 있다. 예를 들어, 사용자가 고장난 세탁기를 가지고 있고, "고장난 세탁기(broken washing machine)"라는 키워드를 포함하는 검색 질의(1308)를 제출한다고 가정한다. 그러나, IoT 장치 데이터(1312)가 특정 에러 코드를 포함하는 사용자의 세탁기로부터의 데이터를 포함한다고 또한 가정한다. 그 다음, 이 경우에, 검색 엔진(1304)은 사용자의 검색 질의뿐만 아니라 세탁기 자체에 의해 보고된 에러 코드를 고려한 검색 결과들(1310)을 리턴할 수 있다. 따라서, 검색 결과들(1310)은 사용자의 세탁기가 겪고 있는 특정 문제를 직접 다루는 정보 자원을 포함할 수 있다.
다른 예로서, 사용자가 고장난 세탁기를 가지고 있고, "고장난 세탁기"라는 키워드를 포함하는 검색 질의를 제출한다고 다시 가정한다. 또한, IoT 장치 데이터(1312)는 사용자가 특정 브랜드의 세탁기를 가지고 있음을 표시한다고 가정한다. 또한, 검색 엔진(1304)이 다른 사용자들이 소유한 동일한 세탁기의 많은 다른 인스턴스들로부터 모든 세탁기가 동일한 결함을 겪고 있음을 나타내는 IoT 장치 데이터를 수신한다고 가정한다. 그 다음, 이 경우에, 검색 엔진(1304)은 사용자의 검색 질의뿐만 아니라 사용자의 세탁기 브랜드가 특정 결함을 겪는 것으로 알려져 있다는 사실을 고려한 결과들(1310)을 리턴할 수 있다. 따라서, 검색 결과들(1310)은 사용자의 세탁기 브랜드에 공통인 특정 결함을 다루는 정보 자원들을 포함할 수 있다.
보다 관련 있는 검색 결과를 리턴하기 위해 IoT 장치 데이터(1312)를 사용하는 것에 추가하여, 검색 엔진(1304)은 또한 IoT 장치 데이터(1312)를 사용하여 검색 결과를 순위 지정할 수 있다. 예를 들어, "고장난 세탁기"라는 검색 질의에 기초하여 식별된 정보 자원은 사용자의 세탁기로부터 얻어진 IoT 장치 데이터(1312) 내에 특정 정보 요소를 포함하는지 또는 이와 유사한 것으로 간주되는지를 결정하기 위해 분석될 수 있다. 정보 요소와의 상관성이 높은 정보 자원은 검색 결과에서 더 관련성이 높고 순위가 더 높은 것으로 간주될 수 있다. IoT 장치 데이터(1312)에 기초하여 검색 결과의 순위를 매기는데 또 다른 방법들이 사용될 수 있다.
도 14는 일 실시 예에 따라 사용자의 IoT 장치로부터 획득된 데이터에 기초하여 사용자를 위한 검색 결과를 생성하기 위한, 검색 엔진에 의해 수행되는 방법의 흐름도(1400)를 도시한다. 흐름도(1400)의 방법은, 예를 들어, 도 13의 검색 엔진(1304)에 의해 구현될 수 있다. 그러나, 본 방법은 그 실시 예에 제한되지 않는다.
도 14에 도시된 바와 같이, 흐름도(1400)의 방법은 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보가 수신되는 단계(1402)에서 시작한다. 일 실시 예에서, 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다.
단계(1404)에서, 하나 이상의 정보 요소가 단계(1402) 동안 수신된 정보로부터 추출된다. 일 실시 예에서, 이 단계는 수신 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 단계를 포함한다. 그 다음, 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마가 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위해 수신된 정보의 적어도 일부에 적용된다. 또한, 이러한 실시 예에 따르면, 미리 정의된 스키마는 XML 스키마 또는 JSON 스키마를 포함할 수 있는데, 이들은 단지 예에 불과하다.
단계(1406)에서, 검색 질의가 사용자로부터 수신된다. 예를 들어, 검색 질의는 웹 브라우저를 통해 사용자로부터 수신될 수 있다.
단계(1408)에서, 하나 이상의 네트워크 액세스 가능 정보 자원이 검색 질의 및 단계(1404) 동안 추출된 하나 이상의 정보 요소에 기초하여 식별된다. 각각의 네트워크 액세스 가능 정보 자원은 예를 들어 제한 없이 웹 사이트, 웹 페이지, 이미지, 비디오 등을 포함할 수 있다.
단계(1410)에서, 하나 이상의 네트워크 액세스 가능 정보 자원에 관한 정보가 사용자에게 제공되도록 초래된다. 예를 들어, 이 단계는 하나 이상의 네트워크 액세스 가능 자원(각각에 대한 링크를 포함할 수 있음)에 관한 정보를 포함하는 검색 결과 페이지를 생성하는 단계와, 검색 결과 페이지를 웹 브라우저에 전송하여 사용자에게 제공하는 단계를 포함할 수 있다.
전술한 흐름도(1400)의 방법은 단계(1404) 동안 추출된 하나 이상의 정보 요소에 기초하여 하나 이상의 네트워크 액세스 가능 정보 자원을 순위 지정하는 단계를 더 포함할 수 있다.
전술한 검색 엔진은 검색 질의 및 이질적인 장치 유형들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소에 기초하여 특정 네트워크 액세스 가능 정보 자원을 식별할 수 있다는 것을 유의해야 한다. 또한, 상술한 검색 엔진은 검색 질의 및 상이한 사용자들에 의해 소유된 동일한 장치 유형의 인스턴스 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소에 기초하여 특정 네트워크 액세스 가능 정보 자원을 식별할 수 있다.
IV. 예시적인 모바일 장치 구현(Example Mobile Device Implementation)
도 15는 여기에 기술된 실시 예들을 구현할 수 있는 예시적인 모바일 장치(1502)의 블록도이다. 예를 들어, 모바일 장치(1502)는 도 1의 사용자 컴퓨팅 장치(124), 도 7의 사용자 컴퓨팅 장치(724), 또는 도 13의 사용자 컴퓨팅 장치(1302) 중 임의의 장치를 구현하는데 사용될 수 있다. 도 15에 도시된 바와 같이, 모바일 장치(1502)는 다양한 선택적인 하드웨어 및 소프트웨어 컴포넌트를 포함한다. 모바일 장치(1502) 내의 임의의 컴포넌트는 임의의 다른 컴포넌트와 통신할 수 있지만, 설명의 용이함을 위해 모든 접속이 도시되지는 않는다. 모바일 장치(1502)는 다양한 컴퓨팅 장치들(예를 들어, 셀폰, 스마트폰, 핸드헬드 컴퓨터, PDA 등) 중 임의의 것일 수 있고, 셀룰러 또는 위성 네트워크와 같은 하나 이상의 모바일 통신 네트워크, 또는 근거리 통신망 또는 광역 통신망과의 무선 양방향 통신을 허용할 수 있다.
도시된 모바일 장치(1502)는 신호 코딩, 데이터 프로세싱, 입/출력 프로세싱, 전력 제어 및/또는 다른 기능과 같은 작업을 수행하기 위한 제어기 또는 프로세서(1510)(예를 들어, 신호 프로세서, 마이크로프로세서, ASIC 또는 다른 제어 및 프로세싱 로직 회로)을 포함할 수 있다. 운영 체제(1512)는 모바일 장치(1502)의 컴포넌트들의 할당 및 사용을 제어할 수 있고, ("애플리케이션" 또는 "앱"이라고도 하는) 하나 이상의 애플리케이션 프로그램(1514)에 대한 지원을 제공할 수 있다. 애플리케이션 프로그램(1514)은 공통 모바일 컴퓨팅 애플리케이션(예를 들어, 이메일 애플리케이션, 캘린더, 연락처 관리자, 웹 브라우저, 메시징 애플리케이션) 및 임의의 다른 컴퓨팅 애플리케이션들(예를 들어, 워드 프로세싱 애플리케이션, 매핑 애플리케이션, 미디어 플레이어 애플리케이션)을 포함할 수 있다.
도시된 모바일 장치(1502)는 메모리(1520)를 포함할 수 있다. 메모리(1520)는 비분리형(non-removable) 메모리(1522) 및/또는 분리형(removable) 메모리(524)를 포함할 수 있다. 비분리형 메모리(1522)는 RAM, ROM, 플래시 메모리, 하드 디스크, 또는 다른 잘 알려진 메모리 장치 또는 기술을 포함할 수 있다. 분리형 메모리(1524)는 플래시 메모리, 또는 "스마트 카드(smart card)"와 같이 GSM 통신 시스템 또는 다른 잘 알려진 메모리 장치 또는 기술에서 잘 알려진 SIM(subscriber Identity Module) 카드를 포함할 수 있다. 메모리(1520)는 운영 체제(1512) 및 애플리케이션(1514)를 실행하기 위한 데이터 및/또는 코드를 저장하는데 사용될 수 있다. 예시적인 데이터는 웹 페이지, 텍스트, 이미지, 사운드 파일, 비디오 데이터, 또는 하나 이상의 유선 또는 무선 네트워크를 통해 하나 이상의 네트워크 서버 또는 다른 장치들로 보내지고/보내지거나 이들로부터 수신되는 다른 데이터를 포함할 수 있다. 메모리(1520)는 IMSI(International Mobile Subscriber Identity)와 같은 가입자 식별자 및 IMEI(International Mobile Equipment Identifier)와 같은 장비 식별자를 저장하는데 사용될 수 있다. 이러한 식별자들은 사용자 및 장비를 식별하기 위해 네트워크 서버로 전송될 수 있다.
모바일 장치(1502)는 터치 스크린(1532), 마이크로폰(1534), 카메라(1536), 물리적 키보드(1538) 및/또는 트랙볼(1540)과 같은 하나 이상의 입력 장치(1530), 및 스피커(1552) 및 디스플레이(1554)와 같은 하나 이상의 출력 장치(1550)를 포함한다. 터치 스크린(1532)과 같은 터치 스크린은 상이한 방식들로 입력을 검출할 수 있다. 예를 들어, 용량성 터치 스크린은 물체(예를 들어, 손가락 끝)가 표면을 가로 질러 흐르는 전류를 왜곡 또는 차단할 때 터치 입력을 검출한다. 다른 예로서, 터치 스크린은 광학 센서를 사용하여, 광학 센서로부터의 빔이 차단될 때 터치 입력을 검출할 수 있다. 어떤 터치 스크린에서는 입력을 검출하기 위해 스크린 표면과의 물리적 접촉이 반드시 필요한 것은 아니다.
다른 가능한 출력 장치(도시되지 않음)는 압전기 또는 다른 햅틱 출력 장치를 포함할 수 있다. 일부 장치는 하나보다 많은 입/출력 기능을 제공할 수 있다. 예를 들어, 터치 스크린(1532) 및 디스플레이(1554)는 단일 입/출력 장치에 결합될 수 있다. 입력 장치(1530)는 NUI(Natural User Interface)를 포함할 수 있다.
무선 모뎀(들)(1560)은 안테나(들)(도시되지 않음)에 결합될 수 있고 당업계에 잘 알려진 바와 같이 프로세서(1510)와 외부 장치 사이의 양방향 통신을 지원할 수 있다. 모뎀(들)(1560)은 일반적으로 도시되어 있으며 모바일 통신 네트워크(1504) 및/또는 다른 무선 기반 모뎀(예를 들어, 블루투스(1564) 및/또는 Wi-Fi(1562))과 통신하기 위한 셀룰러 모뎀(1566)을 포함할 수 있다. 무선 모뎀(들)(1560) 중 적어도 하나는 통상적으로 단일 셀룰러 네트워크 내의 데이터 통신 및 음성 통신을 위한 GSM 네트워크와 같은 하나 이상의 셀룰러 네트워크와의 통신, 셀룰러 네트워크 간 또는 모바일 장치와 공중 전화망(public switched telephone network, PSTN) 간의 통신을 위해 구성된다.
모바일 장치(1502)는 적어도 하나의 입력/출력 포트(1580), 전원 공급 장치(l582), GPS(Global Positioning System) 수신기와 같은 위성 내비게이션 시스템 수신기(satellite navigation system receiver, 1584), 가속도계(1586) 및/또는 USB 포트, IEEE 1394(FireWire) 포트 및/또는 RS-232 포트일 수 있는 물리적 커넥터(1590)를 더 포함할 수 있다. 모바일 장치(1502)의 도시된 컴포넌트는 요구되거나 모든 것을 포함하지는 않는데, 그 이유는 임의의 컴포넌트가 삭제될 수 있고 당업자가 인식할 수 있는 다른 컴포넌트가 추가될 수 있기 때문이다.
일 실시 예에서, 모바일 장치(1502)는 도 1의 사용자 컴퓨팅 장치(124), 도 7의 사용자 컴퓨팅 장치(724), 또는 도 13의 사용자 컴퓨팅 장치(1302)의 기능들 중 임의의 기능을 수행하도록 구성된다. 이들 장치의 기능을 수행하기 위한 컴퓨터 프로그램 로직은 메모리(1520)에 저장되어 프로세서(1510)에 의해 실행될 수 있다. 이러한 컴퓨터 프로그램 로직을 실행함으로써, 프로세서(1510)는 이들 장치 중 임의의 특징을 구현하도록 초래될 수 있다. 또한, 이러한 컴퓨터 프로그램 로직을 실행함으로써, 프로세서(1510)는 도 5 또는 도 11에 도시된 임의의 또는 모든 흐름도의 임의의 단계 또는 모든 단계를 수행하도록 초래될 수 있다.
V. 예시적인 컴퓨터 시스템 구현(Example Computer System Implementation)
도 16은 여기에 설명된 다양한 실시 예를 구현하는데 사용될 수 있는 예시적인 프로세서 기반 컴퓨터 시스템(1600)을 도시한다. 예를 들어, 시스템(1600)은 도 1을 참조하여 전술한 ISS(116), 검색 엔진 서비스(118), 추천 엔진(120), 새로운 탭 페이지 서비스(122) 또는 사용자 컴퓨팅 장치(124), 도 2를 참조하여 전술한 새로운 탭 페이지 서비스(200), 도 3을 참조하여 전술한 추천 엔진(300), 도 7을 참조하여 전술한 ISS(716), 검색 엔진 서비스(718), 추천 엔진(720), 주소 표시줄 서비스(722) 또는 사용자 컴퓨팅 장치(724), 도 8을 참조하여 전술한 주소 표시줄 서비스(800), 도 9를 참조하여 전술한 추천 엔진(900), 도 13을 참조하여 전술한 사용자 컴퓨팅 장치(1302) 또는 검색 엔진(1304) 중 임의의 것을 구현하는데 사용될 수 있다. 시스템(1600)은 또한 도 4, 도 5, 도 10, 도 11 또는 도 14에 도시된 임의의 또는 모든 흐름도의 임의의 단계 또는 모든 단계를 구현하는데 사용될 수 있다. 여기에 제공된 시스템(1600)의 설명은 설명의 목적으로 제공되며, 제한하려는 것은 아니다. 실시 예들은 관련 기술 분야(들)의 당업자에게 공지된 바와 같이, 추가 유형의 컴퓨터 시스템에서 구현될 수 있다.
도 16에 도시된 바와 같이, 시스템(1600)은 프로세싱 유닛(1602), 시스템 메모리(1604) 및 시스템 메모리(1604)를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(1602)에 결합시키는 버스(1606)를 포함한다. 프로세싱 유닛(1602)은 하나 이상의 마이크로프로세서 또는 마이크로프로세서 코어를 포함할 수 있다. 버스(1606)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 포트, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 프로세서 또는 로컬 버스를 포함하는 여러 유형의 버스 구조 중 하나 이상을 나타낸다. 시스템 메모리(1604)는 ROM(1608) 및 RAM(1610)을 포함한다. BIOS(basic input/output system)(1612)는 ROM(1608)에 저장된다.
시스템(1600)은 하드 디스크로부터 판독하고 하드 디스크에 기록하기 위한 하드 디스크 드라이브(1614), 분리형 자기 디스크(1618)로부터 판독하거나 여기에 기록하기 위한 자기 디스크 드라이브(1616), 및 CD ROM, DVD ROM, BLU-RAY™ 디스크 또는 다른 광학 매체와 같은 분리형 광학 디스크(1622)로부터 판독하거나 그에 기록하기 위한 광학 디스크 드라이브(1620) 중 하나 이상을 구비한다. 하드 디스크 드라이브(1614), 자기 디스크 드라이브(1616) 및 광학 디스크 드라이브(1620)는 각각 하드 디스크 드라이브 인터페이스(1624), 자기 디스크 드라이브 인터페이스(1626) 및 광학 드라이브 인터페이스(1628)에 의해 버스(1606)에 접속된다. 드라이브 및 관련 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 및 컴퓨터에 대한 다른 데이터의 비휘발성 저장을 제공한다. 하드 디스크, 분리형 자기 디스크 및 분리형 광학 디스크가 설명되었지만, 다른 유형의 컴퓨터 판독 가능 메모리 장치들 및 저장 구조들이 플래시 메모리 카드, DVD(digital video disk), RAM, ROM 등과 같이, 데이터를 저장하는데 사용될 수 있다.
다수의 프로그램 모듈이 하드 디스크, 자기 디스크, 광학 디스크, ROM 또는 RAM에 저장될 수 있다. 이들 프로그램 모듈은 운영 체제(1630), 하나 이상의 애플리케이션 프로그램(1632), 다른 프로그램 모듈(1634) 및 프로그램 데이터(1636)를 포함한다. 다양한 실시 예들에 따라, 프로그램 모듈들은 도 1을 참조하여 전술한 ISS(116), 검색 엔진 서비스(118), 추천 엔진(120), 새로운 탭 페이지 서비스(122) 또는 사용자 컴퓨팅 장치(124), 도 2를 참조하여 전술한 새로운 탭 페이지 서비스(200), 도 3을 참조하여 전술한 추천 엔진(300), 도 7을 참조하여 전술한 ISS(716), 검색 엔진 서비스(718), 추천 엔진(720), 주소 표시줄 서비스(722) 또는 사용자 컴퓨팅 장치(724), 도 8을 참조하여 전술한 주소 표시줄 서비스(800), 도 9를 참조하여 전술한 추천 엔진(900), 또는 도 13을 참조하여 전술한 사용자 컴퓨팅 장치(1302) 또는 검색 엔진(1304)의 임의의 기능 및 특징 또는 모든 기능 및 특징을 수행하기 위하여, 프로세싱 유닛(1602)에 의해 실행될 수 있는 컴퓨터 프로그램 로직을 포함할 수 있다. 프로그램 모듈들은 또한 프로세싱 유닛(1602)에 의해 실행될 때, 도 4, 도 5, 도 10, 도 11, 및 도 14의 흐름도를 참조하여 도시되거나 설명된 임의의 단계 또는 동작을 수행하는 컴퓨터 프로그램 로직을 포함할 수 있다.
사용자는 키보드(1638) 및 포인팅 장치(1640)와 같은 입력 장치를 통해 명령 및 정보를 시스템(1600)에 입력할 수 있다. 다른 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 제어기, 스캐너 등을 포함할 수 있다. 일 실시 예에서, 터치 스크린은 사용자가 터치 스크린상의 하나 이상의 포인트에 (예를 들어 손가락 또는 스타일러스에 의한) 터치를 가함으로써 사용자 입력을 제공할 수 있게 하기 위하여, 디스플레이(1644)와 함께 제공된다. 이러한 입력 장치 및 다른 입력 장치는 버스(1606)에 결합되는 직렬 포트 인터페이스(1642)를 통해 종종 프로세싱 유닛(1602)에 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스에 의해 연결될 수 있다. 이러한 인터페이스는 유선 또는 무선 인터페이스일 수 있다.
디스플레이(1644)는 비디오 어댑터(1646)와 같은 인터페이스를 통해 버스(1606)에 또한 접속된다. 디스플레이(1644) 이외에, 시스템(1600)은 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)를 포함할 수 있다.
시스템(1600)은 네트워크 인터페이스 또는 어댑터(1650), 모뎀(1652), 또는 네트워크를 통한 통신을 설정하기 위한 다른 적절한 수단을 통해 네트워크(1648)(예를 들어, 근거리 통신망 또는 인터넷과 같은 광역 네트워크)에 접속된다. 내부 또는 외부에 있을 수 있는 모뎀(1652)은 직렬 포트 인터페이스(1642)를 통해 버스(1606)에 접속된다.
본 명세서에 사용된 바와 같이, 용어 "컴퓨터 프로그램 매체(computer program medium)", "컴퓨터 판독 가능 매체(computer-readable medium)" 및 "컴퓨터 판독 가능 저장 매체(computer-readable storage medium)"는 일반적으로 플래시 메모리 카드, DVD, RAM, ROM 등과 같은 다른 메모리 장치 또는 저장 구조뿐 아니라, 하드 디스크 드라이브(1614)와 연관된 하드 디스크, 분리형 자기 디스크(1618), 분리형 광학 디스크(1622)와 같은 메모리 장치 또는 저장 구조를 가리키는데 사용된다. 이러한 컴퓨터 판독 가능 저장 매체는 통신 매체와 구별되고 중첩되지 않는다(통신 매체를 포함하지 않음). 통신 매체는 통상적으로 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 반송파와 같은 변조된 데이터 신호로 된 다른 데이터를 구현한다. "변조된 데이터 신호(modulated data signal)"라는 용어는 신호의 정보를 인코딩하는 방식으로 하나 이상의 특성을 설정하거나 변경한 신호를 의미한다. 예로서, 통신 매체는 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되는 것은 아니다. 실시 예들은 또한 그러한 통신 매체에 관한 것이다.
전술한 바와 같이, (애플리케이션 프로그램(1632) 및 다른 프로그램 모듈(1634)을 포함하는) 컴퓨터 프로그램들 및 모듈들은 하드 디스크, 자기 디스크, 광학 디스크, ROM 또는 RAM에 저장될 수 있다. 이러한 컴퓨터 프로그램은 또한 네트워크 인터페이스(1650), 직렬 포트 인터페이스(1642), 또는 임의의 다른 인터페이스 유형을 통해 수신될 수 있다. 이러한 컴퓨터 프로그램은 애플리케이션에 의해 실행되거나 로딩될 때, 시스템(1600)이 본 명세서에서 논의된 본 발명의 실시 예들의 특징을 구현할 수 있게 한다. 따라서, 이러한 컴퓨터 프로그램은 시스템(1600)의 제어기를 나타낸다.
실시 예들은 또한 임의의 컴퓨터 사용 가능 매체(computer useable medium) 상에 저장된 소프트웨어를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 이러한 소프트웨어는 하나 이상의 데이터 프로세싱 장치에서 실행될 때, 데이터 프로세싱 장치(들)가 본 명세서에 기술된 바와 같이 동작하게 한다. 본 발명의 실시 예들은 현재 또는 미래에 공지된 임의의 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체를 사용한다. 컴퓨터 판독 가능 매체의 예는 RAM, 하드 드라이브, 플로피 디스크, CD ROM, DVD ROM, 짚(zip) 디스크, 테이프, 자기 저장 장치, 광학 저장 장치, MEM, 나노 기술 기반의 저장 장치 등과 같은 메모리 장치 및 저장 구조를 포함하지만 이에 한정되지 않는다.
대안적인 구현들에서, 시스템(1600)은 하드웨어 로직/전기 회로 또는 펌웨어로서 구현될 수 있다. 추가적인 실시 예들에 따르면, 이들 컴포넌트 중 하나 이상은 시스템-온-칩(system-on-chip, SoC)으로 구현될 수 있다. SoC는 프로세서(예를 들어, 마이크로 제어기, 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP) 등), 메모리, 하나 이상의 통신 인터페이스 및/또는 추가적인 회로들 중 하나 이상을 포함하는 집적 회로 칩 및/또는 그 기능을 수행하는 임베디드 펌웨어를 포함할 수 있다.
VI. 추가의 예시적인 실시 예들(Additional Exemplary Embodiments)
여기에 컴퓨터로 구현되는 추천 엔진이 설명되어 있다. 컴퓨터 구현 추천 엔진은 하나 이상의 프로세서, 및 하나 이상의 프로세서에 연결된 하나 이상의 메모리 장치를 포함한다. 하나 이상의 메모리 장치는 동작들을 수행하도록 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 프로그램 로직을 저장한다. 상기 동작들은, 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보를 수신하는 동작; 상기 수신된 정보로부터 하나 이상의 정보 요소를 추출하는 동작; 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 하나 이상의 정보 요소를 이용하는 동작; 및 상기 사용자와 연관된 웹 브라우저에 전달하기 위해 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 제공하는 동작을 포함하고, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자는 사용자를 대신하여 웹 브라우저에 의해 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 액세스하는데 사용될 수 있다.
전술한 컴퓨터 구현 추천 엔진의 일 실시 예에서, 상기 동작들은 하나 이상의 정보 요소를 이용하여 하나 이상의 추천 검색 질의 및 결과를 생성하는 동작; 및 상기 웹 브라우저에 전달하기 위해 상기 하나 이상의 추천 검색 질의 및 결과를 제공하는 동작을 더 포함한다.
전술한 컴퓨터 구현 추천 엔진의 다른 실시 예에서, 하나 이상의 임베디드 시스템으로부터 비롯된 정보는 유선 또는 무선 연결을 통해 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 제공 동작은 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를, 웹 브라우저로의 전달을 위한 새로운 탭 페이지 콘텐츠를 동적으로 구성하는 새로운 탭 페이지 서비스에 제공하는 동작을 포함하고, 상기 새로운 탭 페이지 콘텐츠는 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각에 관한 정보를 포함한다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 제공 동작은 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를, 주소 표시줄 드롭 다운 메뉴 내에서 제시하기 위한 웹 브라우저로의 전달을 위해 제공하는 동작을 포함한다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 제공 동작은 상기 웹 브라우저로부터의 요청을 수신하는 것에 응답하여 수행된다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 추출 동작은, 수신된 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 동작; 및 상기 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위하여 상기 수신된 정보의 적어도 일부에 상기 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마를 적용하는 동작을 포함한다. 또한 이러한 실시 예에 따르면, 미리 정의된 스키마는 XML 스키마 또는 JSON 스키마 중 하나를 포함한다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 상기 하나 이상의 정보 요소를 이용하는 동작은, 이질적인(disparate) 장치 유형들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함한다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 상기 하나 이상의 정보 요소를 이용하는 동작은, 상이한 사용자들에 의해 소유된 동일한 장치 유형의 인스턴스들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함한다.
프로세서 기반의 컴퓨팅 장치 상에서 실행되는 웹 브라우저에 의해 구현되는 방법이 또한, 여기에 기술된다. 상기 방법은, 사용자의 식별자와 연관된 요청을 전송하는 단계; 상기 요청에 응답하여, 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 수신하는 단계로서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원은 상기 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보에 적어도 기초하여 선택되는 것인, 상기 식별자 수신 단계; 및 상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계를 포함한다.
전술한 방법의 일 실시 예에서, 상기 하나 이상의 임베디드 시스템으로부터 비롯된 정보는, 유선 또는 무선 연결을 통하여 상기 하나 이상의 임베디드 시스템으로부터 상기 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 얻어진다.
전술한 방법의 일 실시 예에서, 상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계는, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 포함하는 새로운 탭 페이지를 디스플레이하는 단계를 포함한다.
전술한 방법의 일 실시 예에서, 상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계는, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 주소 표시줄 드롭 다운 메뉴에서 디스플레이하는 단계를 포함한다.
컴퓨터로 구현되는 검색 엔진(search engine)이 또한 여기에 기술된다. 컴퓨터 구현 검색 엔진은 하나 이상의 프로세서, 및 상기 하나 이상의 프로세서에 연결된 하나 이상의 메모리 장치를 포함한다. 상기 하나 이상의 메모리 장치는 동작들을 수행하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 프로그램 로직을 저장하고, 상기 동작들은, 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보를 수신하는 동작; 상기 수신된 정보로부터 하나 이상의 정보 요소를 추출하는 동작; 상기 사용자로부터 검색 질의를 수신하는 동작; 상기 검색 질의 및 상기 하나 이상의 정보 요소에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작; 및 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 상기 사용자에게 제시되게 하는 동작을 포함한다.
전술한 컴퓨터 구현 검색 엔진의 일 실시 예에서, 상기 하나 이상의 임베디드 시스템으로부터 비롯된 정보는, 유선 또는 무선 연결을 통해 상기 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT 연결 허브로부터 획득된다.
전술한 컴퓨터 구현 검색 엔진의 또 다른 실시 예에서, 상기 추출 동작은, 수신된 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 동작; 및 상기 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위하여 상기 수신된 정보의 적어도 일부에 상기 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마(schema)를 적용하는 동작을 포함한다.
전술한 컴퓨터 구현 검색 엔진의 또 다른 실시 예에서, 상기 동작들은, 상기 하나 이상의 정보 요소에 기초하여 상기 하나 이상의 네트워크 액세스 가능 정보 자원을 순위 지정하는 동작을 더 포함한다.
전술한 컴퓨터 구현 검색 엔진의 또 다른 실시 예에서, 상기 검색 질의 및 상기 하나 이상의 정보 요소에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작은, 상기 검색 질의, 및 이질적인 장치 유형들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함한다.
전술한 컴퓨터 구현 추천 엔진의 또 다른 실시 예에서, 상기 검색 질의 및 상기 하나 이상의 정보 요소에 기초하여 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작은, 검색 질의, 및 상이한 사용자들에 의해 소유된 동일한 장치 유형의 인스턴스들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함한다.
VII. 결론(Conclusion)
다양한 실시 예들이 앞에서 설명되었지만, 이들은 단지 예로서 제시된 것이지 제한적인 것은 아니라는 것을 이해해야 한다. 관련 기술 분야의 당업자는 본 발명의 사상 및 범위를 벗어나지 않으면서 형태 및 세부 사항에서 다양한 변화가 이루어질 수 있음을 명백히 알 수 있을 것이다. 따라서, 본 발명의 폭(breadth) 및 범위는 상술한 예시적인 실시 예들 중 어느 것에 의해서도 제한되어서는 안 되며, 다음의 청구 범위 및 그 등가물에 따라서만 정의되어야 한다.

Claims (14)

  1. 컴퓨터 구현 추천 엔진(computer-implemented recommendation engine)에 있어서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 연결된 하나 이상의 메모리 장치를 포함하고,
    상기 하나 이상의 메모리 장치는 동작들을 수행하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 프로그램 로직을 저장하고,
    상기 동작들은,
    사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된(originate) 정보를 수신하는 동작;
    상기 수신된 정보로부터 하나 이상의 정보 요소(information element)를 추출하는 동작;
    하나 이상의 추천 네트워크 액세스 가능 정보 자원(recommended network-accessable information resources)을 식별하기 위해 상기 하나 이상의 정보 요소를 이용하는 동작; 및
    상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를, 상기 사용자와 연관된 웹 브라우저로의 전달을 위한 새로운 탭 페이지 콘텐츠 - 상기 새로운 탭 페이지 콘텐츠는 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각에 관한 정보를 포함함 - 를 동적으로 구성하기 위해 상기 식별자(들)를 이용하는 새로운 탭 페이지 서비스에 제공하는 동작을 포함하는 것인 컴퓨터 구현 추천 엔진.
  2. 제1항에 있어서, 상기 동작들은,
    하나 이상의 정보 요소를 이용하여 하나 이상의 추천 검색 질의 및 결과를 생성하는 동작; 및
    상기 웹 브라우저로의 전달을 위해 상기 하나 이상의 추천 검색 질의 및 결과를 제공하는 동작을 더 포함하는 것인 컴퓨터 구현 추천 엔진.
  3. 제1항에 있어서, 하나 이상의 임베디드 시스템으로부터 비롯된 정보는, 유선 또는 무선 연결을 통해 상기 하나 이상의 임베디드 시스템으로부터 정보를 수신하는 적어도 하나의 IoT(Internet of Things) 연결 허브로부터 획득되는 것인 컴퓨터 구현 추천 엔진.
  4. 제1항에 있어서, 상기 하나 이상의 임베디드 시스템은 기기(appliance), 전원 콘센트, 보안 경보 장치, 조명, 개인 피트니스(fitness) 장치, 자동차 장치, 의료(healthcare) 장치, 제조 장치, 에너지 관리 장치 및 소매(retail) 장치 중 하나 이상을 포함하는 것인 컴퓨터 구현 추천 엔진.
  5. 제1항에 있어서,
    주소 표시줄 드롭 다운 메뉴(address bar drop down menu) 내에서 제시하기 위한 상기 웹 브라우저로의 전달을 위하여 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 제공하는 동작을 더 포함하는 것인 컴퓨터 구현 추천 엔진.
  6. 제1항에 있어서, 상기 제공 동작은 상기 웹 브라우저로부터의 요청의 수신에 응답하여 수행되는 것인 컴퓨터 구현 추천 엔진.
  7. 제1항에 있어서, 상기 추출 동작은,
    수신된 정보의 적어도 일부가 비롯된 장치와 연관된 장치 유형 및/또는 장치 모델을 식별하는 동작; 및
    상기 하나 이상의 정보 요소 중 적어도 하나를 식별하기 위하여 상기 수신된 정보의 적어도 일부에 상기 장치 유형 및/또는 장치 모델과 연관된 미리 정의된 스키마(schema)를 적용하는 동작을 포함하는 것인 컴퓨터 구현 추천 엔진.
  8. 제7항에 있어서, 상기 미리 정의된 스키마는 XML(extended markup language) 스키마 또는 JSON(JavaScript Object Notation) 스키마를 포함하는 것인 컴퓨터 구현 추천 엔진.
  9. 제1항에 있어서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 상기 하나 이상의 정보 요소를 이용하는 동작은,
    이질적인(disparate) 장치 유형들 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함하는 것인 컴퓨터 구현 추천 엔진.
  10. 제1항에 있어서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원을 식별하기 위해 상기 하나 이상의 정보 요소를 이용하는 동작은,
    상이한 사용자들에 의해 소유된 동일한 장치 유형의 인스턴스들(instances) 내의 다수의 임베디드 시스템으로부터 비롯된 정보 요소들에 기초하여 단일 추천 네트워크 액세스 가능 정보 자원을 식별하는 동작을 포함하는 것인 컴퓨터 구현 추천 엔진.
  11. 프로세서 기반의 컴퓨팅 장치 상에서 실행되는 웹 브라우저에 의해 구현되는 방법에 있어서,
    사용자의 식별자와 연관된 요청을 전송하는 단계;
    상기 요청에 응답하여, 하나 이상의 추천 네트워크 액세스 가능 정보 자원 각각의 식별자를 수신하는 단계로서, 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원은 상기 사용자와 연관된 하나 이상의 장치 내에 배치된 하나 이상의 임베디드 시스템으로부터 비롯된 정보에 적어도 기초하여 선택되는 것인, 상기 식별자 수신 단계;
    상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계를 포함하는 웹 브라우저에 의해 구현되는 방법.
  12. 제11항에 있어서, 상기 하나 이상의 임베디드 시스템으로부터 비롯된 정보는, 유선 또는 무선 연결을 통하여 상기 하나 이상의 임베디드 시스템으로부터 상기 정보를 수신하는 적어도 하나의 IoT(Internet of Things) 연결 허브로부터 얻어지는 것인 웹 브라우저에 의해 구현되는 방법.
  13. 제11항에 있어서,
    상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계는,
    상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 포함하는 새로운 탭 페이지를 디스플레이하는 단계를 포함하는 것인 웹 브라우저에 의해 구현되는 방법.
  14. 제11항에 있어서,
    상기 웹 브라우저의 사용자 인터페이스 내에 상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 디스플레이하는 단계는,
    상기 하나 이상의 추천 네트워크 액세스 가능 정보 자원에 관한 정보를 주소 표시줄 드롭 다운 메뉴에서 디스플레이하는 단계를 포함하는 것인 웹 브라우저에 의해 구현되는 방법.
KR1020177019515A 2014-12-18 2015-12-16 Iot 장치 데이터에 근거한 브라우저 제안의 생성 KR102373939B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/574,805 2014-12-18
US14/574,805 US10282475B2 (en) 2014-12-18 2014-12-18 Generation of browser suggestions based on internet of things device data
PCT/US2015/065926 WO2016100416A1 (en) 2014-12-18 2015-12-16 Generation of browser suggestions based on internet of things device data

Publications (2)

Publication Number Publication Date
KR20170097120A true KR20170097120A (ko) 2017-08-25
KR102373939B1 KR102373939B1 (ko) 2022-03-11

Family

ID=55168391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177019515A KR102373939B1 (ko) 2014-12-18 2015-12-16 Iot 장치 데이터에 근거한 브라우저 제안의 생성

Country Status (11)

Country Link
US (1) US10282475B2 (ko)
EP (1) EP3234810A1 (ko)
JP (1) JP6595598B2 (ko)
KR (1) KR102373939B1 (ko)
CN (1) CN107004029B (ko)
AU (1) AU2015362645B2 (ko)
BR (1) BR112017011046A2 (ko)
CA (1) CA2968009C (ko)
MX (1) MX2017007761A (ko)
RU (1) RU2711057C2 (ko)
WO (1) WO2016100416A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102151870B1 (ko) * 2019-03-28 2020-09-03 한국과학기술원 서비스 기반 v2x 소프트웨어 환경에서의 유전 알고리즘을 활용한 서비스 소비 품질 최적화 방법

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996622B2 (en) * 2015-02-06 2018-06-12 Microsoft Technology Licensing, Llc Browser new tab page generation for enterprise environments
US11392580B2 (en) 2015-02-11 2022-07-19 Google Llc Methods, systems, and media for recommending computerized services based on an animate object in the user's environment
US10223459B2 (en) 2015-02-11 2019-03-05 Google Llc Methods, systems, and media for personalizing computerized services based on mood and/or behavior information from multiple data sources
US9769564B2 (en) 2015-02-11 2017-09-19 Google Inc. Methods, systems, and media for ambient background noise modification based on mood and/or behavior information
US10284537B2 (en) 2015-02-11 2019-05-07 Google Llc Methods, systems, and media for presenting information related to an event based on metadata
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
US10127579B2 (en) * 2015-06-02 2018-11-13 Samsung Electronics Co., Ltd. Personalizing advertisements based on proximate computing devices
US9959558B2 (en) * 2015-08-18 2018-05-01 Samsung Electronics Co., Ltd. Application cards as advertisements
JP6571782B2 (ja) * 2015-09-02 2019-09-04 サン電子株式会社 サーバ及びコンピュータプログラム
US10270881B2 (en) * 2015-11-19 2019-04-23 Adobe Inc. Real-world user profiles via the internet of things
US11256828B1 (en) * 2016-07-05 2022-02-22 Wells Fargo Bank, N.A. Method and apparatus for controlling IoT devices by agent device
US10425242B2 (en) * 2016-10-14 2019-09-24 Microsoft Technology Licensing, Llc IoT provisioning service
US11157442B2 (en) * 2017-07-14 2021-10-26 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
WO2019036365A1 (en) * 2017-08-12 2019-02-21 Sri International MODELING PATHS OF CYBERTATICS AND PHYSICAL ATTACKS IN THE INTERNET OF OBJECTS
US11200241B2 (en) * 2017-11-22 2021-12-14 International Business Machines Corporation Search query enhancement with context analysis
KR102423058B1 (ko) * 2018-02-23 2022-07-21 삼성전자주식회사 디스플레이 장치 및 IoT 기반 선호도 확인 방법
US11631497B2 (en) 2018-05-30 2023-04-18 International Business Machines Corporation Personalized device recommendations for proactive health monitoring and management
KR102306542B1 (ko) * 2018-06-05 2021-09-29 삼성전자주식회사 정보 처리 방법 및 디바이스
US11442999B2 (en) * 2018-07-24 2022-09-13 Microsoft Technology Licensing Llc Personalized whole search page organization and relevance
KR20200104719A (ko) * 2019-02-27 2020-09-04 삼성전자주식회사 콘텐츠 추천 방법 및 이를 지원하는 전자 장치
US11538356B2 (en) 2019-11-15 2022-12-27 Samsung Electronics Co., Ltd. Adaptable presentation for network-connected electronic devices
CN111274483B (zh) * 2020-01-19 2024-05-03 北京博学广阅教育科技有限公司 关联推荐方法及关联推荐交互方法
US11790152B2 (en) * 2020-11-05 2023-10-17 OpenFin Inc. Presenting web content based on rules
US11676179B2 (en) * 2020-12-14 2023-06-13 International Business Machines Corporation Personalization of advertisement selection using data generated by IoT devices
WO2022184830A1 (en) * 2021-03-03 2022-09-09 Vesti.Ai Ltd. System and method for natural language conversational ai
US11811681B1 (en) 2022-07-12 2023-11-07 T-Mobile Usa, Inc. Generating and deploying software architectures using telecommunication resources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011002777A2 (en) * 2009-06-30 2011-01-06 Commvault Systems, Inc. Data object store and server for a cloud storage environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005227883A (ja) * 2004-02-10 2005-08-25 Mazda Motor Corp 整備情報提供システム
US8131731B2 (en) * 2007-12-27 2012-03-06 Microsoft Corporation Relevancy sorting of user's browser history
US20090197681A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation System and method for targeted recommendations using social gaming networks
CN102053960B (zh) 2009-11-04 2013-09-18 孙红临 依群需特征构建物联互联双网快准搜索引擎的方法及系统
US8180804B1 (en) * 2010-04-19 2012-05-15 Facebook, Inc. Dynamically generating recommendations based on social graph information
CN102012146A (zh) 2010-10-26 2011-04-13 浙江大学 基于物联网的冰箱食品安全保障方法及系统
CN102258400A (zh) * 2011-04-28 2011-11-30 华南理工大学 一种健康监控系统
CN102790786A (zh) * 2011-05-18 2012-11-21 杭州乐联科技有限公司 基于移动互联网的环境监控平台及监控方法
US8386457B2 (en) 2011-06-22 2013-02-26 International Business Machines Corporation Using a dynamically-generated content-level newsworthiness rating to provide content recommendations
CN103975345B (zh) * 2011-09-27 2018-05-11 瑞典爱立信有限公司 管理社交网络中的联网资源节点之间的数据流
WO2013123445A1 (en) 2012-02-17 2013-08-22 Interdigital Patent Holdings, Inc. Smart internet of things services
JPWO2013125128A1 (ja) * 2012-02-22 2015-07-30 株式会社ニコン 電子機器
KR101362384B1 (ko) 2012-08-09 2014-02-21 한국과학기술원 웹 플랫폼을 이용한 아이피 기반 IoT 사물 브라우징 방법 및 시스템
KR101558236B1 (ko) * 2012-10-16 2015-10-12 전자부품연구원 IoT 브라우징 방법 및 장치
CN102982134A (zh) * 2012-11-16 2013-03-20 北京奇虎科技有限公司 在浏览器地址栏中显示推荐网址信息的系统
US10089639B2 (en) * 2013-01-23 2018-10-02 [24]7.ai, Inc. Method and apparatus for building a user profile, for personalization using interaction data, and for generating, identifying, and capturing user data across interactions using unique user identification
US9847961B2 (en) * 2013-02-25 2017-12-19 Qualcomm Incorporated Automatic IoT device social network expansion
US9292832B2 (en) 2013-02-25 2016-03-22 Qualcomm Incorporated Collaborative intelligence and decision-making in an IoT device group
US10185934B2 (en) * 2013-07-09 2019-01-22 Qualcomm Incorporated Real-time context aware recommendation engine based on a user internet of things environment
CN103354518A (zh) * 2013-07-24 2013-10-16 江苏晓山信息产业股份有限公司 基于Web日志挖掘的智能家居网关及系统
JPWO2015029301A1 (ja) * 2013-08-29 2017-03-02 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 情報提供装置、サーバ装置、情報提供方法、および情報提供プログラム
US9774709B2 (en) * 2013-11-18 2017-09-26 Cable Television Laboratories, Inc. Service discovery
CN103646064A (zh) * 2013-12-04 2014-03-19 青岛海尔软件有限公司 应用于物联网的信息推送方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011002777A2 (en) * 2009-06-30 2011-01-06 Commvault Systems, Inc. Data object store and server for a cloud storage environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102151870B1 (ko) * 2019-03-28 2020-09-03 한국과학기술원 서비스 기반 v2x 소프트웨어 환경에서의 유전 알고리즘을 활용한 서비스 소비 품질 최적화 방법

Also Published As

Publication number Publication date
CN107004029A (zh) 2017-08-01
CN107004029B (zh) 2020-07-24
RU2017120852A (ru) 2018-12-17
KR102373939B1 (ko) 2022-03-11
JP6595598B2 (ja) 2019-10-23
RU2711057C2 (ru) 2020-01-14
MX2017007761A (es) 2017-09-05
US10282475B2 (en) 2019-05-07
AU2015362645A1 (en) 2017-05-25
CA2968009A1 (en) 2016-06-23
US20160179962A1 (en) 2016-06-23
BR112017011046A2 (pt) 2018-01-09
RU2017120852A3 (ko) 2019-07-17
JP2018508058A (ja) 2018-03-22
WO2016100416A1 (en) 2016-06-23
AU2015362645B2 (en) 2020-07-23
CA2968009C (en) 2023-01-17
EP3234810A1 (en) 2017-10-25

Similar Documents

Publication Publication Date Title
KR102373939B1 (ko) Iot 장치 데이터에 근거한 브라우저 제안의 생성
US20140279787A1 (en) Systems And Methods for an Adaptive Application Recommender
US10719769B2 (en) Systems and methods for generating and communicating application recommendations at uninstall time
US9299098B2 (en) Systems for generating a global product taxonomy
US10356077B2 (en) Automated search result adaptation according to user account information
US20170193059A1 (en) Searching For Applications Based On Application Usage
EP3251013B1 (en) Monitoring application loading
US20180232377A1 (en) Search result relevance based on content associated with software applications
US10198518B2 (en) Filtering search results using current software application states
US10157210B2 (en) Searching and accessing software application functionality using application connections
US20160204998A1 (en) Method of constructing data collector, server performing the same and storage medium for the same
JP6684291B2 (ja) データ処理方法及び装置
US10445326B2 (en) Searching based on application usage
US20170171292A1 (en) Generating Software Application Search Results Using Shared Application Connections
US10146879B2 (en) Generating software application search results using application connection keywords
US10380608B2 (en) Marketing data communication control
WO2014062209A1 (en) System and methods thereof for dynamically updating the contents of a folder on a device
KR20130061233A (ko) 개인화된 키워드 정보를 포함하는 뉴스 제공시스템, 방법 및 그에 대한 기록매체

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant