KR101277462B1 - 여러 장치에 걸친 브라우징 전후관계 연속성 - Google Patents

여러 장치에 걸친 브라우징 전후관계 연속성 Download PDF

Info

Publication number
KR101277462B1
KR101277462B1 KR1020120135291A KR20120135291A KR101277462B1 KR 101277462 B1 KR101277462 B1 KR 101277462B1 KR 1020120135291 A KR1020120135291 A KR 1020120135291A KR 20120135291 A KR20120135291 A KR 20120135291A KR 101277462 B1 KR101277462 B1 KR 101277462B1
Authority
KR
South Korea
Prior art keywords
web
session data
data
web client
clients
Prior art date
Application number
KR1020120135291A
Other languages
English (en)
Other versions
KR20130063462A (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 KR20130063462A publication Critical patent/KR20130063462A/ko
Application granted granted Critical
Publication of KR101277462B1 publication Critical patent/KR101277462B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/954Navigation, e.g. using categorised browsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

데스크탑 웹 클라이언트로부터 모바일 장치 상의 웹 클라이언트로의 브라우저 데이터의 자동화된 동기화를 위한 구성이 제공된다. 특히, 데스크탑 웹 클라이언트 상의 하나 이상의 방문된 웹 페이지의 방문 히스토리를 포함하는 세션 데이터는 모바일 장치와 동기화될 수 있다. 초기에, 데스크탑 웹 클라이언트로부터의 세션 데이터는 네트워크를 통해 수신된다. 다음으로, 일부 구성에서, 모바일 장치 상의 모바일 웹 클라이언트와 동기화를 위하여 세션 데이터가 사용가능하다는 것을 나타내기 위한 통지가 모바일 장치로 전송될 수 있다. 다음으로, 세션 데이터는 모바일 웹 클라이언트로 전송된다. 모바일 장치에서, 수신된 세션 데이터는 모바일 웹 클라이언트의 윈도우 내에 디스플레이될 수 있다.

Description

여러 장치에 걸친 브라우징 전후관계 연속성{BROWSING CONTEXT CONTINUATION ACROSS MULTIPLE DEVICES}
본 발명은 여러 장치에 걸친 브라우징 전후관계 연속성에 관한 것으로, 더욱 상세하게는, 웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법 및 장치에 관한 것이다.
주어진 웹 클라이언트(예를 들어, 웹 브라우저)에서, 웹 컨텐츠가 웹 클라이언트 내에서 디스플레이될 수 있다. 예를 들어, 웹 컨텐츠는 문자 및 그래픽(예를 들어, 이미지 또는 사진 등)의 혼합을 포함할 수 있다. 상이한 웹 클라이언트가 웹 컨텐츠를 디스플레이하는데 사용가능하다. 예를 들어, 데스크탑 웹 클라이언트가 웹 컨텐츠를 디스플레이할 수 있다. 다른 예에서, 모바일 장치 상의 모바일 웹 클라이언트가 웹 컨텐츠를 디스플레이할 수 있다.
본 기술은 하나 이상의 웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 것을 제공한다. 본 기술은 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터가 사용가능한지 판단한다. 업데이트된 세션 데이터는 하나 이상의 웹 클라이언트 상의 브라우징 활동을 나타내고, 사용자 입력에 기초하는 웹 페이지 폼 요소를 포함한다. 본 기술은 업데이트된 세션 데이터가 사용가능하다면, 네트워크를 통해 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터를 수신한다.
본 기술은 제1 웹 클라이언트와의 동기화를 위하여 하나 이상의 웹 클라이언트로부터의 세션 데이터를 저장하는 것이 제공된다. 본 기술은 하나 이상의 웹 클라이언트에서 업데이트된 세션 데이터가 사용가능한지 판단하고, 업데이트된 세션 데이터는 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함한다. 다음으로, 본 기술은, 업데이트된 세션 데이터가 사용가능하다면, 업데이트된 세션 데이터에 대한 요청을 전송한다. 다음으로, 업데이트된 세션 데이터는 하나 이상의 웹 클라이언트로부터 수신된다. 다음으로, 본 기술은 업데이트된 세션 데이터를 저장한다.
본 기술의 또 다른 양태는 하나 이상의 웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 시스템을 제공한다. 시스템은 메모리, 하나 이상의 프로세서 및 메모리에 저장되고 하나 이상의 프로세서에 의한 실행을 위하여 구성되는 하나 이상의 모듈을 포함한다. 시스템은, 하나 이상의 웹 클라이언트에서 업데이트된 세션 데이터가 사용가능한지 판단하도록 구성되는 세션 모니터링 모듈을 포함하고, 업데이트된 세션 데이터는 하나 이상의 웹 클라이언트 상의 브라우징 활동을 나타내고, 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함한다. 시스템은 업데이트된 세션 데이터가 사용가능하다면, 제1 웹 클라이언트에게 통지를 전송하도록 구성된 통지 모듈을 더 포함한다. 또한, 시스템은, 네트워크를 통해 제1 웹 클라이언트에 업데이트된 세션 데이터를 전송하도록 구성된 동기화 모듈을 포함한다.
본 기술은 하나 이상의 웹 클라이언트에서 업데이트된 세션 데이터가 사용가능한지 판단하는 것을 더 제공하고, 업데이트된 세션 데이터는 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함한다. 본 기술은, 업데이트된 세션 데이터가 사용가능하다면, 업데이트된 세션 데이터에 대한 요청을 전송한다. 다음으로, 업데이트된 세션 데이터가 하나 이상의 웹 클라이언트로부터 수신된다. 본 기술은 업데이트된 세션 데이터를 저장한다. 또한, 본 기술은 업데이트된 세션 데이터를 네트워크를 통해 제1 웹 클라이언트에 전송한다.
본 기술의 다른 구성이 이어지는 발명을 실시하기 위한 구체적인 내용으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명하게 될 것이라는 것이 이해되며, 본 기술의 다양한 구성이 예로서 설명된다. 인식하는 바와 같이. 본 기술은 모두가 본 기술의 범위를 벗어나지 않는 다른 상이한 기술이 가능하며, 그리고 그 여러 상세는 모두가 본 기술의 범위를 벗어나지 않는 다양한 다른 양태로 변경이 가능하다. 따라서, 도면 및 발명을 실시하기 위한 구체적인 내용은 한정적인 것이 아니라 본질적으로 예시적인 것으로 간주되어야 한다.
본 기술의 신규한 특징이 첨부된 특허청구범위에서 설명된다. 그러나, 설명을 위하여, 본 기술의 구성이 다음의 도면에서 설명된다:
도 1은 데스크탑 웹 클라이언트로부터 모바일 장치로의 세션 데이터를 자동으로 동기화하는 예시적인 프로세스를 개념적으로 도시한다.
도 2는 모바일 웹 클라이언트와의 동기화를 위하여 데스크탑 웹 클라이언트로부터의 세션 데이터를 저장하는 예시적인 프로세스를 개념적으로 도시한다.
도 3은 본 기술의 일부 구성이 구현될 수 있는 그래픽 사용자 인터페이스를 개념적으로 도시한다.
도 4는 예시적인 컴퓨팅 환경을 개념적으로 도시한다.
도 5는 애플리케이션 프로그래밍 인터페이스(application programming interface(API)) 아키텍처를 개념적으로 도시한다.
도 6은 모바일 장치 아키텍처의 예이다.
도 7은 본 기술의 일부 구현례가 구현될 수 있는 시스템을 개념적으로 도시한다.
이하 설명되는 발명을 실시하기 위한 구체적인 내용은 본 기술의 다양한 구성에 대한 설명으로서 의도되며, 본 기술이 실시될 수 있는 유일한 구성을 나타내려고 의도되지 않는다. 첨부된 도면은 여기에 포함되며, 발명을 실시하기 위한 구체적인 내용의 일부를 구성한다. 발명을 실시하기 위한 구체적인 내용은 본 기술의 완전한 이해를 제공하는 목적으로 특정 상세를 포함한다. 그러나, 본 기술이 여기에서 설명된 특정 상세에 한정되지 않으며 이러한 특정 상세 없이 실시될 수 있다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하고 자명할 것이다. 일부 경우에, 널리 공지된 구조 및 컴포넌트가 본 기술의 개념을 흐리게 하는 것을 방지하기 위하여 블록도 형태로 도시된다.
본 기술은 데스크탑 웹 클라이언트(예를 들어, 데스크탑 웹 브라우저)로부터 모바일 장치 상의 웹 클라이언트로의 브라우저 데이터의 자동화된 동기화를 제공한다. 데스크탑 웹 클라이언트를 이용한 세션 동안에, 사용자는 하나 이상의 상이한 페이지로 방문함으로써 데스크탑 웹 클라이언트와 상호작용할 수 있으며, 하나 이상의 탭 윈도우(tabbed window)가 전술한 페이지를 디스플레이할 수 있다. 일례에서, 사용자는 검색 엔진에 대한 검색 질의를 제출하고, 검색 결과 항목은 데스크탑 웹 클라이언트에 의해 대응하는 탭 윈도우 내에 디스플레이될 수 있다. 이어서 사용자는 상이한 탭 윈도우에서 검색 결과 항목 중 하나를 열 수 있다. 일부 경우에, 사용자는 모바일 장치(예를 들어, 휴대 전화, 스마트폰, 태블릿 등) 상에서 모바일 웹 클라이언트(예를 들어, 모바일 웹 브라우저)와 같은 다른 장치로 동기화된 탭 윈도우 활동을 포함하는 세션 상태를 가지기 원할 수 있다. 그러나, 데스크탑 웹 클라이언트로부터 방문된 웹 페이지의 탭 원도우 활동에 대한 사용자의 세션 데이터는, 모바일 웹 클라이언트가 (예를 들어, 데스크탑 웹 클라이언트 상의 세션으로부터) 탭 원도우 활동을 다시 디스플레이할 수 있도록, 모바일 웹 클라이언트와 쉽게 동기화되지 않는다.
전술한 문제점(들)을 해결하기 위하여, 데스크탑 웹 클라이언트로부터 모바일 장치로의 세션 데이터를 동기화하는 프로세스가 제공된다. 일례에서, 모바일 장치는 데스크탑 웹 클라이언트에 대한 업데이트가 발생할 때(예를 들어, 사용자가 상이한 웹 페이지를 브라우징함에 따라) 통지 서버로부터 통지를 수신하도록 신청할 수 있다. 예를 들어, 사용자가 하나 이상의 웹 페이지로 방문함으로써 데스크탑 웹 클라이언트와 상호작용함에 따라, 데스크탑 웹 클라이언트는 저장을 위한 원격 서버(예를 들어, 스토리지 서버)로 업데이트된 세션 데이터를 전송할 수 있다. 일부 구성의 통지 서버는 원격 서버 상의 세션 데이터에 대한 업데이트를 추적하고 업데이트된 세션 데이터가 사용가능하다는 것을 나타내는 하나 이상의 통지를 모바일 장치로 주기적으로 전송할 수 있다. 그 다음, 모바일 장치는 통지를 수신한 후에 원격 서버로부터 업데이트된 세션 데이터를 수신할 수 있다. 모바일 웹 클라이언트가 모바일 장치 상에 활성화되는 경우에, 업데이트된 세션 데이터가 사용자가 액세스하기 위한 모바일 웹 클라이언트 상에서 (예를 들어, 하나 이상의 탭 윈도우 내에서) 사용가능하다. 업데이트된 세션 데이터는 데스크탑 웹 클라이언트로부터 방문된 웹 페이지의 방문 히스토리를 포함할 수 있다.
전술한 데이터에 더하여, 본 기술은 브라우징 전후관계(context) 또는 세션 내의 데이터를 모바일 장치에 동기화시키기 위한 추가적인 종류의 데이터를 포함할 수 있다. 예를 들어, 지속되는 웹페이지 폼(form) 요소에 대한 데이터가 동기화될 수 있다. 일례에서, 웹 검색은 데스크탑 웹 클라이언트 상에서 (웹 검색 엔진의 웹 페이지 상에서 텍스트 상자(textbox) 폼 요소 내에 하나 이상의 검색 질의 키워드를 입력함으로써) 웹 검색 엔진에서 수행될 수 있다. 그 다음, 웹 검색 엔진의 웹 페이지에서 텍스트 상자 폼 요소 내에 입력된 하나 이상의 검색 질의 키워드는 모바일 장치로 동기화될 수 있어, 모바일 장치 상이 보이는 웹 검색 엔진의 웹 페이지 상의 텍스트 상자 폼 요소는 (예를 들어, 데스크탑 웹 클라이언트에 입력된 것과) 동일한 키워드로 자동으로 채워진다. 또한, 북마크, 패스워드/자동완성 데이터, 옴니박스(omnibox) 데이터(예를 들어, 타이핑된 URL에 대한 통계, 이전 질의 등), 텍스트 필드, 텍스트 영역, 선택 팝업 등을 포함하는 다른 종류의 데이터가 모바일 장치에 동기화될 수 있다. 여기에서 구체적으로 언급되지 않은 다른 종류의 데이터가 모바일 장치에 동기화될 수 있으며, 본 기술의 범위 내에 여전히 있을 것이다.
전술한 예가 데스크탑 웹 클라이언트로부터 모바일 웹 클라이언트로 세션 데이터를 동기화하는 것을 설명하지만, 세션 데이터는 하나 이상의 웹 클라이언트 사이에서 동기화될 수 있다는 것이 이해되어야 한다. 예를 들어, 모바일 웹 클라이언트로부터의 세션 데이터가 전술한 방식과 유사한 방식으로 데스크탑 웹 클라이언트에 동기화될 수 있다. 또한, 모바일 웹 클라이언트 및/또는 데스크탑 웹 클라이언트는 하나 이상의 다른 웹 클라이언트(예를 들어, 하나 이상의 데스크탑 웹 클라이언트, 하나 이상의 모바일 웹 클라이언트 등)와 동기화될 수 있다. 더하여, 일부 구성에서, 통지는 업데이트된 세션 데이터를 나타내도록 모바일 장치에 전송되지 않는다. 대신, 모바일 장치는 원격 스토리지 서버로부터 업데이트된 세션 데이터를 (만약에 있다면) 요청할 수 있다. 일부 구성에서, 원격 스토리지 서버 및 통지 서버는 모바일 장치 및/또는 데스크탑 웹 클라이언트와 통신하기 위한 단일 서버로서 구현될 수 있다.
도 1은 하나 이상의 웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 예시적인 프로세스(100)를 도시한다. 일례에서, 프로세스(100)는 데스크탑 웹 클라이언트 및/또는 다른 웹 클라이언트로부터 세션 데이터를 동기화하기 위하여 모바일 장치에 의해 구현될 수 있다. 일부 구성에서, 프로세스(100)는 세션 데이터를 동기화하기 위하여 후술되는 동작을 주기적으로 수행한다. 예를 들어, 프로세스(100)는 모바일 장치 상에 실행되고 있는 모바일 웹 클라이언트를 업데이트하기 위하여 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터가 사용가능한 것을 검출할 수 있다.
프로세스(100)는 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터가 사용가능한지를 판단하는 105에서 시작한다. 일례에서, 업데이트된 세션 데이터는 통지 서버로부터 업데이트된 세션 데이터의 통지를 수신할 때 사용가능하다. 통지 서버는 데스크탑 웹 클라이언트로부터의 세션 데이터를 모니터하는 네트워크를 통한 원격 서버일 수 있다. 업데이트된 세션 데이터가 사용가능한지 여부를 결정하는 것은 모바일 웹 클라이언트가 활성화된 후에 발생할 수 있다. 일례에서, 모바일 웹 클라이언트는 모바일 웹 브라우저이다. 업데이트된 세션 데이터는 데스크탑 웹 클라이언트(들)에서의 하나 이상의 방문된 웹 페이지에 대한 방문 히스토리 데이터를 포함한다. 또한, 업데이트된 세션 데이터는 하나 이상의 웹 사이트(예를 들어, 데스크탑 웹 클라이언트(들)에 의해 저장된 것과 같은)에 대응하는 북마크 데이터(예를 들어, 지역적으로 저장된 URI(Uniform Resource Identifier))를 포함할 수 있다. 또한, 업데이트된 세션 데이터는 데스크탑 웹 클라이언트(들)(또는 임의의 다른 웹 클라이언트)로부터의 탭 윈도우 데이터(또는 다른 윈도우 데이터)를 포함할 수 있다. 일부 구성에서, 탭 윈도우 데이터는 리소스의 위치를 나타내는 URL을 특정한다. 리소스는 웹 컨텐츠, 이미지 데이터, 오디오, 비디오 등을 포함할 수 있다. 일례에서, (예를 들어, 사용자가 전술한 바와 같은 텍스트 상자 폼 요소에 대한 입력을 제공하는 경우) 업데이트된 세션 데이터는 사용자 입력에 기초하여 웹 페이지 폼 요소 데이터를 포함한다.
전술한 바와 같이, 다른 종류의 데이터가 업데이트된 세션 데이터에 포함될 수 있으며, 이는 본 기술의 범위 내에 여전히 있다. 예를 들어, 지속되는 웹 페이지 폼 요소에 대한 데이터, 하나 이상의 북마크, 패스워드/자동완성 데이터, 옴니박스(omnibox) 데이터(예를 들어, 타이핑된 URL에 대한 통계, 이전 질의 등), 텍스트 필드, 텍스트 영역, 선택 팝업 등이 모바일 장치에 동기화될 수 있다. 여기에서 구체적으로 언급되지 않은 다른 종류의 데이터가 모바일 장치에 동기화될 수 있으며, 본 기술의 범위 내에 여전히 있을 것이다.
다음으로, 110에서, 프로세스(100)는 업데이트된 세션 데이터가 사용가능하다면 네트워크를 통해 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터를 수신한다. 전술한 바와 같이, 업데이트된 세션 데이터를 수신하는 것은 수신하는 웹 클라이언트(예를 들어, 모바일 장치 상의 모바일 웹 브라우저) 내에서 발생할 수 있다. 115에서, 프로세스(100)는 수신하는 웹 클라이언트의 윈도우에 수신된 업데이트된 세션 데이터를 디스플레이한다. 디스플레이된 세션 데이터의 일례는 도 3과 관련하여 더욱 상세하게 후술된다. 다음으로, 프로세스(100)는 종료한다.
도 2는 제1 웹 클라이언트와 동기화하기 위하여 하나 이상의 웹 클라이언트로부터의 세션 데이터를 저장하는 예시적인 프로세스(200)를 개념적으로 도시한다. 일부 구성에서, 프로세스(200)는 데스크탑 웹 클라이언트 및/또는 다른 웹 클라이언트로부터 세션 데이터를 수신하는 스토리지 서버에 의해 구현될 수 있다. 일부 구성에서, 스토리지 서버는 데스크탑 웹 클라이언트 및 제1 웹 클라이언트(예를 들어, 모바일 웹 클라이언트)와 네트워크를 통해서 통신할 수 있다.
프로세스(200)는 하나 이상의 웹 클라이언트에서 업데이트된 세션 데이터가 사용가능한지를 판단하는 205에서 시작한다. 210에서, 프로세스(200)는 업데이트된 세션 데이터가 사용가능하면 업데이트된 세션 데이터에 대한 요청을 전송한다. 일례에서, 프로세스(200)는 사용가능한 업데이트된 세션 데이터를 검색하도록 하나 이상의 웹 클라이언트에게 요청을 전송한다. 215에서, 프로세스(200)는 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터를 수신한다. 다음으로, 220에서, 프로세스(200)는 업데이트된 세션 데이터를 저장한다.
일부 구성에서, 프로세스(200)는 225에서 제1 웹 클라이언트에 네트워크를 통해 업데이트된 세션 데이터를 나타내는 통지를 전송한다. 일례에서, 제1 웹 클라이언트는 모바일 장치 상의 모바일 웹 클라이언트이다. 예를 들어, 프로세스(200)는 모바일 장치 상의 모바일 웹 클라이언트에 통지를 푸시(push)할 수 있다. 다음으로, 230에서, 프로세스(200)는 네트워크를 통해 제1 웹 클라이언트에 업데이트된 세션 데이터를 전송한다. 업데이트된 세션 데이터는 일례에서 데스크탑 웹 클라이언트 상의 하나 이상의 방문된 웹 사이트에 대한 방문 히스토리 데이터를 포함한다. 다음으로, 프로세스(200)는 종료한다.
프로세스(200)가 210에서 업데이트된 세션 데이터에 대한 요청을 전송하는 동작과 225에서 통지를 전송하는 동작을 포함하지만, 본 기술은 프로세스(200)에서 전술한 동작을 모두 수행하는 것을 필요로 하지 않는다. 예를 들어, 프로세스(200)의 일부 구성은 210에서의 요청 및/또는 225에서의 통지를 전송하는 것을 무시할 수 있다. 이러한 경우(들)에, 프로세스(200)는 210에서의 요청 없이 215에서 세션 데이터를 수신하고 그리고/또는 225에서의 통지 없이 230에서 세션 데이터를 전송할 수 있다.
도 3은 본 기술의 일부 구성이 구현될 수 있는 그래픽 유저 인터페이스(GUI)(300)를 도시한다. 더욱 구체적으로는, GUI(300)는 웹 클라이언트(예를 들어, 데스크탑 웹 클라이언트)로부터 수신되거나 동기화된 세션 데이터를 디스플레이하기 위한 상이한 세트의 그래픽 요소를 포함할 수 있다. 그래픽 요소는 버튼, 체크 박스, 라디오 버튼, 슬라이더, 리스트 상자, 드롭 다운(drop-down) 리스트, 메뉴, 콤보 상자, 아이콘, 텍스트 상자, 스크롤 바 등을 포함하지만 이에 한정되지 않는다. 일례에서, GUI(300)는 도 1의 프로세스(100)에서의 동작을 수행한 후에 웹 클라이언트에 디스플레이된다. 특히, GUI(300)는 모바일 장치 상의 모바일 웹 클라이언트의 윈도우 내에(예를 들어, 모바일 웹 브라우저의 탭 윈도우 내에) 디스플레이될 수 있다. 다른 예에서, GUI(300)는 데스크탑 웹 클라이언트 및/또는 임의의 다른 웹 클라이언트의 윈도우 내에 디스플레이될 수 있다.
도 3에 도시된 바와 같이, GUI(300)는 하나 이상의 탭을 포함한다. 특히, GUI(300)는 하나 이상의 상이한 디스플레이 영역(310, 320, 330, 340)을 보기 위한 탭(305)을 포함한다. 디스플레이 영역(310, 320, 330, 340)는 각각 데스크탑 웹 클라이언트로부터의 세션 데이터로부터 웹 사이트를 포함한다. 디스플레이 영역의 각각에서, 웹 사이트는 각각의 웹 사이트를 나타내기 위한 아이콘(370, 372, 374 또는 376)를 포함할 수 있다. 또한, 데스크탑 웹 클라이언트로부터의 세션 데이터 내에 포함된 웹 사이트를 나타내기 위하여, GUI(300)는 세션 데이터의 소스를 나타내는 아이콘(350)을 포함할 수 있다. 도시된 바와 같이, 디스플레이 영역(310, 320, 330, 340)의 각각은 세션 데이터의 소스를 나타내는 이러한 아이콘을 포함한다. 예를 들어, GUI(300)는 모바일 웹 클라이언트로부터인 웹 사이트에 대한 "웹 사이트 4"라 하는 (예를 들어, 모바일 웹 클라이언트 상에서 열린) 특정 웹 사이트를 나타내는 아이콘(360)(예를 들어, 모바일 장치를 나타내는)을 포함할 수 있다.
사용자는 모바일 웹 클라이언트 상에서 GUI(300)와 상호작용할 수 있다. 예로서, 사용자는 디스플레이(310, 320, 330, 340) 중 어느 하나를 선택하여 해당하는 디스플레이 영역에 리스트된 선택된 웹 사이트를 열거나 브라우징할 수 있다. 일례에서, 모바일 웹 클라이언트는 데스크탑 웹 클라이언트로부터의 세션 데이터 내에 포함된 하나 이상의 웹 사이트를 자동으로 열 수 있다. 이러한 방식으로, 모바일 웹 클라이언트는 데스크탑 웹 클라이언트에서의 사용자 세션을 미러링할 수 있다.
도 3에 대한 설명이 GUI(300) 내의 상이한 예시적인 그래픽 요소를 포함하지만, 일부 구현례는 GUI(300) 내의 다른 그래픽 요소를 포함할 수 있으며, 본 기술의 범위 내에 여전히 있다. 또한, GUI(300)는 전술한 그래픽 요소의 모두를 포함하는 것을 필요로 하지 않는다. 예를 들어, GUI(300)는 데스크탑 웹 클라이언트 및/또는 모바일 웹 클라이언트로부터의 세션 데이터를 표시할 때 아이콘(들) 또는 탭(들)을 생략할 수 있다.
도 4는 시스템을 포함하는 예시적인 컴퓨팅 환경(400)을 도시한다. 특히, 도 4는 도 2에서 전술한 프로세스를 구현하기 위한 시스템(405)을 도시한다. 일부 구성에서, 시스템(405)은 특정 기계(예를 들어, 서버)를 실행시키는 구현의 일부이다.
도 4에 도시된 바와 같이, 시스템(405)은 상이한 기능을 제공하는 여러 모듈을 포함한다. 시스템(405)은 세션 모니터링(410), 통지 모듈(415) 및 동기화 모듈(420)을 포함하도록 구성된다. 세션 모니터링 모듈(410)은 업데이트된 세션 데이터가 하나 이상의 웹 클라이언트 상에서 사용가능한지 판단하도록 구성된다. 세션 모니터링 모듈(410)은 업데이트된 세션 데이터가 사용가능한지를 여부를 판단하기 위하여 하나 이상의 웹 클라이언트에 요청을 전송하도록 더 구성될 수 있으며, 업데이트된 세션 데이터는 하나 이상의 웹 클라이언트 상의 브라우징 활동을 나타내며 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함한다. 통지 모듈(415)은 업데이트된 세션 데이터가 사용가능하면 제1 웹 클라이언트에 통지를 전송하도록 구성된다. 일례에서, 제1 웹 클라이언트는 모바일 장치 상의 모바일 웹 클라이언트일 수 있다. 통지 모듈(415)은 업데이트된 세션 데이터가 사용가능하면 상이한 웹 클라이언트(예를 들어, 데스크탑 웹 클라이언트, 다른 모바일 웹 클라이언트 등)에 하나 이상의 통지를 전송하도록 구성된다. 일부 구성에서, 하나 이상의 통지는 모바일 웹 클라이언트 및/또는 다른 웹 클라이언트에 주기적으로 전송된다. 동기화 모듈(420)은 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터를 수신할 수 있다. 동기화 모듈(420)은 제1 웹 클라이언트(예를 들어, 모바일 장치 상의 모바일 웹 클라이언트)에 네트워크를 통하여 업데이트된 세션 데이터를 전송하도록 구성된다. 동기화 모듈은 일부 구성에서 업데이트된 세션 데이터의 전송을 조절하도록 더 구성된다.
도 4에 도시된 바와 같이, 전술한 모듈의 각각은 서로 통신하도록 구성될 수 있다. 예를 들어, 상이한 데이터, 메시지, API 호출 및 리턴이 시스템(405)에서 상이한 모듈 사이에서 통과될 수 있다.
시스템(405)은 네트워크(450)를 통해서 데스크탑 클라이언트(460), 모바일 장치(470) 및 하나 이상의 다른 클라이언트(480)와 통신할 수 있다. 데스크탑 클라이언트(460), 모바일 장치(470) 및 하나 이상의 다른 클라이언트(480)는 각각 시스템(405)의 전술한 모듈과 통신하도록 구성될 수 있다. 예를 들어, 데스크탑 클라이언트(460)는 네트워크(450)를 통해 시스템(405)에 세션 데이터를 전송할 수 있다. 그 다음, 시스템(405)은 네트워크(450)를 통해 모바일 장치(470) 및/또는 다른 클라이언트(480)에 세션 데이터를 전송할 수 있다.
전술한 특징 및 애플리케이션의 많은 것은 기계 판독가능한 저장 매체(컴퓨터 판독가능한 매체라고도 한다) 상에 기록된 명령어 세트로서 구체화되는 소프트웨어 프로세스로서 구현된다. 이러한 명령어들이 하나 이상의 프로세싱 유닛(들)(예를 들어, 하나 이상의 프로세서, 프로세서 코어 또는 다른 프로세싱 유닛)에 의해 실행될 때, 이들은 프로세싱 유닛(들)이 명령어에서 지시된 동작을 수행하게 한다. 기계 판독가능한 매체의 예는 CD-ROM, 플래시 드라이브, RAM 칩, 하드 드라이브, EPROM 등을 포함하지만 이에 한정되지 않는다. 기계 판독가능한 매체는 무선으로 또는 유선 연결을 통해 통과하는 반송파 및 전자 신호를 포함하지 않는다.
본 명세서에서, "소프트웨어(software)"라는 용어는 ROM(read-only memory)에 상주하는 펌웨어 및/또는 프로세서에 의한 처리를 위하여 메모리로 읽어들여질 수 있는 자기 스토리지에 저장된 애플리케이션을 포함하도록 의도된다. 또한, 일부 구현례에서, 여러 소프트웨어 컴포넌트가 여전히 개별 소프트웨어 컴포넌트이면서 더 큰 프로그램의 서브 부분으로서 구현될 수 있다. 일부 구현례에서, 여러 소프트웨어 주제 컴포넌트는 개별 프로그램으로서 구현될 수 있다. 마지막으로, 여기에서 설명되는 소프트웨어 컴포넌트(들)을 함께 구현하는 개별 프로그램의 임의의 조합은 본 기술의 범위 내에 있다. 일부 구현례에서, 소프트웨어 프로그램은, 하나 이상의 시스템 상에서 동작하도록 설치될 때, 소프트웨어 프로그램의 동작을 실행하고 수행하는 하나 이상의 특정 기계 구현례를 정의한다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로서도 알려짐)은 임의의 형태의 컴파일 또는 인터프리트 언어, 서술적 또는 절차적 언어를 포함하는 프로그래밍 언어로 기록될 수 있으며, 단독(stand alone) 프로그램 또는 모듈로서 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 임의의 형태로 채용될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만 그럴 필요는 없다. 프로그램은 논의 대상의 프로그램에 전용되는 단일 파일 또는 여러 조직화된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 포함하는 파일)에서 다른 프로그램 또는 데이터(예를 들어, 마크업 언어 문서(markup language document)에 저장된 하나 이상의 스크립트)를 유지하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은 한 사이트에 위치되거나 여러 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호 연결된 하나의 컴퓨터 또는 여러 컴퓨터 상에 실행되도록 사용될 수 있다.
일부 구성은 하나 이상의 인터페이스를 통해 호출되는 다른 프로그램 코드와 상호작용하는 호출 프로그램 코드를 갖는 환경에서 하나 이상의 애플리케이션 프로그램 인터페이스(API)를 포함하는 소프트웨어 프로세스로서 구현된다. 다양한 종류의 파라미터를 포함할 수 있는 다양한 함수 호출, 메시지 또는 다른 종류의 발동(invocation)은 호출 프로그램과 호출되는 코드 사이에서 API를 통해 전송될 수 있다. 또한, API는 API에서 정의되고 호출되는 프로그램 코드에서 구현되는 데이터 종류 또는 클래스를 사용할 수 있는 능력을 호출 프로그램 코드에 제공할 수 있다.
하나 이상의 API가 일부 구성에서 사용될 수 있다. API는 상이한 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트("API 호출 컴포넌트(API calling component)")가 하나 이상의 함수, 방법, 절차(procedure), 데이터 구조, 클래스 및/또는 API 구현 컴포넌트에 의해 제공된 다른 서비스를 액세스하여 사용하게 하는 프로그램 코드 컴포넌트 또는 하드웨어 컴포넌트("API 구현 컴포넌트(API implementing component)")에 의해 구현되는 인터페이스이다. API는 API 호출 컴포넌트와 API 구현 컴포넌트 사이에서 통과되는 하나 이상의 파라미터를 정의할 수 있다.
API는 (서드 파티 개발자일 수 있는) API 호출 컴포넌트 개발자가 API 구현 컴포넌트에 의해 제공된 특정 특징을 활용할 수 있게 한다. 하나의 API 호출 컴포넌트가 있을 수 있거나, 2 이상의 이러한 컴포넌트가 있을 수 있다. API는 컴퓨팅 시스템 또는 프로그램 라이브러리가 애플리케이션으로부터의 서비스에 대한 요청을 지원하기 위하여 제공하는 소스 코드 인터페이스일 수 있다. 운영 체계(OS)는 여러 API를 가질 수 있어, OS 상에 실행되는 애플리케이션이 하나 이상의 이러한 API를 호출하게 하며, 서비스(프로그램 라이브러리와 같은)는 여러 API를 가질 수 있어, 서비스를 사용하는 애플리케이션이 하나 이상의 이러한 API를 호출하게 한다. API는 애플리케이션이 구축될 때 인터프리트되거나 컴파일될 수 있는 프로그램 언어 측면에서 특정될 수 있다.
일부 구성에서, API 구현 컴포넌트는 2 이상의 API를 제공할 수 있으며, 각각은 API 구현 컴포넌트에 의해 구현되는 상이한 양태의 기능을 액세스하는 다른 양태의 또는 다른 양태를 갖는 상이한 관점을 제공한다. 예를 들어, API 구현 컴포넌트의 한 API는 제1 함수 세트를 제공할 수 있어 서드 파티 개발자에게 공개될 수 있고, API 구현 컴포넌트의 다른 API는 숨겨질 수 있고(공개되지 않을 수 있고), 제2 함수 세트와, 제1 함수 세트에 있지 않은 시험 또는 디버깅 함수와 같은 다른 함수 세트를 제공할 수 있다. 다른 구성에서, API 구현 컴포넌트 자체는 하부에 놓이는 API를 통해 하나 이상의 다른 컴포넌트를 호출할 수 있어, 이에 따라 API 호출 컴포넌트 및 API 구현 컴포넌트 모두일 수 있다.
API는 API 구현 컴포넌트의 특정 특징을 액세스하여 사용하는 경우에 API 호출 컴포넌트가 사용하는 언어 및 파라미터를 정의한다. 예를 들어, API 호출 컴포넌트는 API에 의해 공개된 (예를 들어, 함수 또는 방법 호출에 의해 구체화된) 하나 이상의 API 호출 또는 발동을 통해 API 구현 컴포넌트의 특정 특징을 액세스하고, API 호출 또는 발동을 통해 파라미터를 이용하여 데이터 및 제어 정보를 통과시킨다. API 구현 컴포넌트는 API 호출 컴포넌트로부터의 API 호출에 응답하여 API를 통해 값을 리턴할 수 있다. API가 API 호출의 문법(syntax) 및 결과를 정의하지만(예를 들어, API 호출을 어떻게 작동시키는지, API 호출이 무엇을 하는지), API는 API 호출에 의해 특정된 함수를 API 호출이 어떻게 달성하는지는 밝히지 않을 수 있다. 다양한 API 호출이 호출(API 호출 컴포넌트) 및 API 구현 컴포넌트 사이에서 하나 이상의 애플리케이션 프로그램 인터페이스를 통해 전송된다. API 호출을 전송하는 것은, 발행, 개시, 발동, 호출, 수신, 리턴 또는 함수 호출이나 메시지에 대한 응답을 포함할 수 있다. 다른 말로 하면, 전송하는 것은 API 호출 컴포넌트 또는 API 구현 컴포넌트 중 하나에 의한 동작을 설명할 수 있다. 함수 호출 또는 API의 다른 발동은 파라미터 리스트 또는 다른 구조를 통해 하나 이상의 파라미터를 전송 또는 수신할 수 있다. 파라미터는 정수(constant), 키, 데이터 구조, 객체, 객체 클래스, 변수, 데이터 종류, 포인터, 어레이, 리스트 또는 함수나 방법에 대한 포인터 또는 API를 통해 통과될 데이터 또는 다른 항목을 참조하기 위한 다른 방법일 수 있다.
또한, 데이터 종류 또는 클래스는 API에 의해 제공되어 API 구현 컴포넌트에 의해 구현될 수 있다. 따라서, API 호출 컴포넌트는 변수를 선언하고, 포인터를 사용하고, API 내에 제공된 정의를 이용하여 이러한 종류 또는 클래스의 정수값을 사용하거나 예시할 수 있다.
일반적으로, API는 API 구현 컴포넌트에 의해 제공된 서비스 또는 데이터를 액세스하기 위하여 또는 API 구현 컴포넌트에 의해 제공된 연산 또는 계산의 성능을 초기화하는데 사용될 수 있다. 예로서, API 구현 컴포넌트 및 API 호출 컴포넌트는 각각 운영 체계, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램 또는 다른 모듈 중 임의의 하나일 수 있다(API 구현 컴포넌트 및 API 호출 컴포넌트는 동일하거나 또는 서로 상이한 종류의 모듈일 수 있다는 것이 이해되어야 한다). API 구현 컴포넌트는 일부 경우에 펌웨어, 마이크로 코드 또는 다른 하드웨어 로직으로 적어도 부분적으로 구체화될 수 있다. 일부 구성에서, API는 클라이언트 프로그램이 SDK(Software Development Kit) 라이브러리에 의해 제공된 서비스를 사용하게 할 수 있다. 다른 구성에서, 애플리케이션 또는 다른 클라이언트 프로그램은 애플리케이션 프레임워크에 의해 제공된 API를 이용할 수 있다. 이러한 구성에서, 애플리케이션 또는 클라이언트 프로그램은 SDK에 의해 제공되고 API에 의해 제공된 함수 또는 방법에 대한 호출을 포함하거나, SDK 내에서 정의되고 API에 의해 제공된 데이터 종류 또는 객체를 사용할 수 있다. 이러한 구성에서, 애플리케이션 프레임워크는 프레임워크에 의해 정의된 다양한 이벤트에 응답하는 프로그램을 위한 메인 이벤트 루프를 제공할 수 있다. API는 애플리케이션이 이벤트를 특정하고 애플리케이션 프레임워크를 이용하여 이벤트에 응답하게 한다. 일부 구현례에서, API 호출은 입력 성능 및 상태, 출력 성능 및 상태, 처리 성능, 파워 상태, 저장 용량 및 상태, 통신 성능 등과 같은 양태에 관련된 것을 포함하는 하드웨어 장치의 성능 또는 상태를 애플리케이션에 보고할 수 있고, API는 하드웨어 컴포넌트 상에서 부분적으로 실행하는 펌웨어, 마이크로 코드 또는 다른 저 수준 로직으로 부분적으로 구현될 수 있다.
API 호출 컴포넌트는 로컬 컴포넌트(즉, API 구현 컴포넌트와 동일한 데이터 프로세싱 시스템 상의) 또는 네트워크를 통해 API를 통하여 API 구현 컴포넌트와 통신하는 원격 컴포넌트(즉, API 구현 컴포넌트와 상이한 데이터 프로세싱 시스템 상의)일 수 있다. API 구현 컴포넌트가 API 호출 컴포넌트 역할도 할 수 있고(즉, 상이한 API 구현 컴포넌트에 의해 공개된 API에 대하여 API 호출을 할 수 있다), API 호출 컴포넌트가 상이한 API 호출 컴포넌트에 노출된 API를 구현함으로써 API 구현 컴포넌트 역할도 할 수 있다는 것이 이해되어야 한다.
API는 상이한 프로그래밍 언어로 작성된 여러 API 호출 컴포넌트가 API 구현 컴포넌트와 통신할 수 있게 한다(따라서, API는 API 구현 컴포넌트 및 API 호출 컴포넌트 사이의 호출 및 리턴을 번역하는 특징을 포함할 수 있다). 그러나, API는 특정 프로그래밍 언어에 관하여 구현될 수 있다. API 호출 컴포넌트는, 한 구성에서, OS 제공자로부터의 한 API 세트와 플러그인 제공자로부터의 다른 API 세트 및 다른 제공자(예를 들어, 소프트웨어 라이브러리의 제공자) 또는 다른 API 세트의 창작자로부터의 다른 API 세트와 같은 상이한 제공자로부터의 API들을 호출할 수 있다.
다음의 설명은 본 기술의 일부 구성이 구현될 수 있는 예시적인 API 아키텍처를 설명한다.
도 5는 본 기술의 일부 구성에서 사용될 수 있는 예시적인 API 아키텍처를 도시하는 블록도이다. 도 5에 도시된 바와 같이, API 아키텍처(500)는 API(510)를구현하는 API 구현 컴포넌트(515)(예를 들어, 운영 체계, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 소프트웨어 또는 다른 모듈)를 포함한다. API(510)는 하나 이상의 함수, 방법, 클래스, 객체, 프로토콜, 데이터 구조, 포맷 및/또는 API 호출 컴포넌트(505)에 의해 사용될 수 있는 API 구현 컴포넌트의 다른 특징을 특정한다. API(510)는 API 구현 컴포넌트 내의 함수가 API 호출 컴포넌트로부터의 파라미터를 어떻게 수신하는지와 그 함수가 API 호출 컴포넌트에 결과를 어떻게 리턴하는지를 특정하는 적어도 하나의 호출 관례를 특정한다. API 호출 컴포넌트(505)(예를 들어, 운영 체계, 라이브러리, 장치 드라이버, API, 애플리케이션 프로그램, 소프트웨어 또는 다른 모듈)는 API(500)에 의해 특정되는 API 구현 컴포넌트(515)의 특징을 액세스하여 이용하기 위하여 API(510)을 통해 API 호출을 한다. API 구현 컴포넌트(515)는 API 호출에 응답하여 API 호출 컴포넌트(505)에 API(510)를 통해 값을 리턴할 수 있다.
API 구현 컴포넌트(515)가 추가적인 함수, 방법, 데이터 구조 및/또는 API(510)를 통해 특정되지 않고 API 호출 컴포넌트(505)에 사용가능하지 않은 다른 특징을 포함할 수 있다는 것이 이해될 것이다. API 호출 컴포넌트(505)가 API 구현 컴포넌트(515)와 동일한 시스템 상에 있을 수 있거나, 원격에 배치되어 네트워크를 통해 API(510)를 이용하여 API 구현 컴포넌트(515)를 액세스할 수 있다는 것이 이해되어야 한다. 도 5가 API(510)와 상호작용하는 단일의 API 호출 컴포넌트(505)를 도시하고 있지만, API 호출 컴포넌트(505)와는 상이한 언어(또는 동일한 언어)로 작성될 수 있는 다른 API 호출 컴포넌트가 API(510)를 사용할 수 있다는 것이 이해되어야 한다.
API 구현 컴포넌트(515), API(510) 및 API 호출 컴포넌트(505)는 기계(예를 들어, 컴퓨터 또는 다른 데이터 프로세싱 시스템)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함하는 기계 판독가능한 매체에 저장될 수 있다. 예를 들어, 기계 판독가능한 매체는 자기 디스크, 광 디스크, RAM, ROM, 플래시 메모리 장치 등을 포함한다.
도 6은 모바일 장치 아키텍처(600)의 예이다. 모바일 장치의 구현례는 하나 이상의 프로세싱 유닛(605), 메모리 인터페이스(610) 및 주변장치 인터페이스(615)를 포함한다. 컴퓨팅 장치 아키텍처를 구성하는 이러한 부품의 각각은 개별 부품이거나 하나 이상의 집적 회로에 집적될 수 있다. 또한, 이러한 다양한 부품은 하나 이상의 통신 버스 또는 신호 라인에 의해 함께 연결될 수 있다.
주변장치 인터페이스(615)는 카메라 서브 시스템(620), 무선 통신 서브 시스템(들)(625), 오디오 서브 시스템(630) 및 입/출력 서브 시스템(635)을 포함하는 다양한 센서 및 서브 시스템에 연결될 수 있다. 주변장치 인터페이스(615)는 프로세스와 주변장치 사이의 통신을 가능하게 한다. 주변장치는 모바일 장치를 위한 상이한 기능을 제공한다. 배향 센서(645) 또는 가속도 센서(650)와 같은 주변장치는 배향 및 가속도 기능을 용이하게 하기 위하여 주변장치 인터페이스(615)에 연결될 수 있다. 또한, 모바일 장치는 상이한 위치 데이터를 제공하기 위하여 위치 센서(675)를 포함할 수 있다. 특히, 위치 센서는 위도, 경도 및 고도와 같은 상이한 위치 데이터를 제공하기 위하여 GPS(Global Positioning System)를 이용할 수 있다.
카메라 서브 시스템(620)은 CCD(charged coupled device) 광 센서 또는 MOS(complementary metal-oxide-semiconductor) 광 센서와 같은 하나 이상의 광 센서에 연결될 수 있다. 센서와 연결된 카메라 서브 시스템(620)은 이미지 및/또는 비디오 데이터 캡쳐와 같은 카메라 기능을 용이하게 할 수 있다. 무선 통신 서브 시스템(625)은 통신 기능을 용이하게 하는 역할을 할 수 있다. 무선 통신 서브 시스템(625)은 무선 수신기 및 송신기와, 광 수신기 및 송신기를 포함할 수 있다. 전술한 수신기 및 송신기는 LTE(Long Term Evolution), GSM(Global System for Mobile Communication) 네트워크, 와이파이 네트워크, 블루투스 네트워크 등과 같은 하나 이상의 통신 네트워크를 통해 동작하도록 구현될 수 있다. 오디오 서브 시스템(610)은 음성 인식, 디지털 녹음 등과 같은 음성에 의해 이네이블되는 기능을 용이하게 하도록 스피커 및 마이크로폰에 연결될 수 있다.
I/O 서브 시스템(635)은 디스플레이, 터치 스크린 등과 같은 입/출력 주변장치와 주변장치 인터페이스를 통한 프로세서(605)의 데이터 버스 사이의 전송을 포함한다. I/O 서브 시스템(635)은 이러한 기능을 용이하게 하기 위한 터치 스크린 컨트롤러(655) 및 다른 입력 컨트롤러(660)를 포함할 수 있다. 터치 스크린 컨트롤러(655)는 터치 스크린(665)에 연결되어 여러 터치 감지 기술 중 임의의 것을 이용하여 스크린 상에서의 접촉 및 이동을 검출할 수 있다. 다른 입력 컨트롤러(60)는 하나 이상의 버튼과 같은 다른 입/출력 장치에 연결될 수 있다.
메모리 인터페이스(610)는 고속 RAM 및/또는 플래시 메모리와 같은 비휘발성 메모리를 포함할 수 있는 메모리(670)에 연결될 수 있다. 메모리(670)는 운영 체계(OS)를 저장할 수 있다. OS는 기본적인 시스템 서비스를 핸들링하고 하드웨어 종속적인 작업을 수행하기 위한 명령어를 포함할 수 있다.
또한, 예로서, 메모리는 하나 이상의 추가 장치와의 통신을 용이하게 하기 위한 통신 명령어, 그래픽 유저 인터페이스 처리를 용이하게 하기 위한 그래픽 유저 인터페이스 명령어, 이미지/비디오 관련 처리 및 기능을 용이하게 하기 위한 이미지/비디오 처리 명령어, 전화 관련 프로세스 및 기능을 용이하게 하기 위한 전화 명령어, 미디어 통신 및 처리 관련 프로세스 및 기능을 용이하게 하기 위한 미디어 교환 및 처리 명령어, 카메라 관련 프로세스 및 기능을 용이하게 하기 위한 카메라 명령어, 비디오 컴퍼런스 프로세스 및 기능을 용이하게 하기 위한 비디오 컨퍼런스 명령어를 포함할 수 있다. 전술한 명령어는 개별 소프트웨어 프로그램 또는 모듈로서 구현될 필요는 없다. 모바일 장치의 다양한 기능은 하나 이상의 신호 처리 및/또는 ASIC(application specific integrated circuit)을 포함하는 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
다음의 설명은 본 기술의 양태가 구현될 수 있는 예시적인 시스템을 설명한다.
도 7은 본 기술의 일부 구현례가 구현될 수 있는 시스템(700)을 개념적으로 도시한다. 시스템(700)은 컴퓨터, 전화기, PDA 또는 임의의 다른 종류의 전자 장치를 포함할 수 있다. 이러한 시스템은 다양한 종류의 컴퓨터 판독가능한 매체 및 다양한 종류의 컴퓨터 판독가능한 매체를 위한 인터페이스를 포함한다. 시스템(700)은 버스(705), 프로세싱 유닛(들)(710), 시스템 메모리(715), ROM(720), 스토리지 장치(715), 선택적인 입력 인터페이스(730), 선택적인 출력 인터페이스(735) 및 네트워크 인터페이스(740)를 포함한다.
버스(705)는 시스템(700)의 많은 내부 장치를 통신가능하게 연결하는 시스템, 주변장치 및 칩셋 버스를 모두 집합적으로 나타낸다. 예를 들어, 버스(705)는 프로세싱 유닛(들)(710)을 ROM(720), 시스템 메모리(715) 및 스토리지 장치(725)와 통신가능하게 연결한다.
이러한 다양한 메모리 유닛으로부터, 프로세싱 유닛(들)(710)은 본 기술의 프로세스를 실행하기 위하여 실행할 명령어와 처리할 데이터를 검색한다. 프로세싱 유닛(들)은 상이한 구현례에서 단일 프로세서 또는 멀티코어 프로세서일 수 있다.
ROM(read-only memory)(720)는 프로세싱 유닛(들)(710) 및 시스템(700)의 다른 모듈에 의해 요구되는 정적 데이터 및 명령어를 저장한다. 한편, 스토리지 장치(725)는 판독-기록 메모리 장치이다. 이 장치는 시스템(700)이 꺼질 때에도 명령어 및 데이터를 저장하는 비휘발성 메모리 유닛이다. 본 기술의 일부 구현례는 스토리지 장치(725)로서 대량 스토리지 장치(자기 또는 광 디스크 및 대응하는 디스크 드라이브와 같은)를 이용한다.
다른 구현례는 스토리지 장치(725)로서 탈착가능한 저장 장치(플래시 드라이브, 플로피 디스크 및 대응하는 디스크 드라이브와 같은)를 사용한다. 스토리지 장치(725)와 유사하게, 시스템 메모리(715)는 판독-기록 메모리 장치이다. 그러나, 스토리지 장치(725)와는 다르게, 시스템 메모리(715)는 RAM과 같은 휘발성 판독-기록 메모리이다. 시스템 메모리(715)는 프로세스가 실시간으로 요구하는 명령어 및 데이터의 일부를 저장한다. 일부 구현례에서, 본 기술의 프로세스는 시스템 메모리(715), 스토리지 장치(725) 및/또는 ROM(720) 내에 저장된다. 예를 들어, 다양한 메모리 유닛이 일부 구현례에 따라 멀티미디어 아이템을 처리하기 위한 명령어를 포함한다. 이러한 다양한 메모리 유닛으로부터, 프로세싱 유닛(들)(710)은 일부 구현례의 프로세스를 실행하기 위하여 실행할 명령어와 처리할 데이터를 검색한다.
또한, 버스(705)는 선택적인 입력 및 출력 인터페이스(730, 735)에 연결된다. 선택적인 입력 인터페이스(730)는 사용자가 정보를 통신하고 명령에 대한 명령을 선택할 수 있게 한다. 선택적인 입력 인터페이스(730)는 문자 키보드 및 지시 장치("커서 제어 장치"라고도 한다)와 인터페이스할 수 있다. 선택적인 출력 인터페이스(735)는 시스템(700)에 의해 생성된 디스플레이 이미지를 제공할 수 있다. 선택적인 출력 인터페이스(735)는 CRT(cathode ray tubes) 또는 LCD(liquid crystal displays)와 같은 디스플레이 장치 및 프린트와 인터페이스할 수 있다. 일부 구현례는 입력 및 출력 장치 모두로서 기능하는 터치 스크린과 같은 장치와 인터페이스할 수 있다.
마지막으로, 도 7에 도시된 바와 같이, 버스(705)는 네트워크 어댑터(미도시)를 통해 시스템(700)을 네트워크 인터페이스(740)에 연결한다. 이러한 방식으로, 컴퓨터는 LAN(local area network), WAN(wide area network) 또는 인트라넷과 같은 컴퓨터 네트워크, 또는 인터넷과 같은 네트워크들의 상호 연결된 네트워크의 일부일 수 있다. 시스템(700)의 임의의 또는 모든 컴포넌트는 본 기술과 함께 사용될 수 있다.
전술한 이러한 기능들은 디지털 전자 회로 내에서, 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 기술은 하나 이상의 컴퓨터 프로그램 제품을 이용하여 구현될 수 있다. 프로그래머블 프로세서 및 컴퓨터는 모바일 장치에 포함되거나 모바일 장치로서 패키징될 수 있다. 프로세스 및 논리 플로우는 하나 이상의 프로그래머블 프로세서에 의해 그리고 하나 이상의 프로그래머블 논리 회로에 의해 수행될 수 있다. 범용의 그리고 특수 목적의 컴퓨팅 장치 및 스토리지 장치가 통신 네트워크를 통해 상호 연결될 수 있다.
일부 구현례는 기계 판독가능하거나 컴퓨터 판독가능한 매체(이 대신에, 컴퓨터 판독가능한 저장 매체, 기계 판독가능한 매체 또는 기계 판독가능한 저장 매체라고 함) 내에 컴퓨터 프로그램 명령어를 저장하는 마이크로프로세서, 스토리지 및 메모리와 같은 전자 부품을 포함한다. 이러한 컴퓨터 판독가능한 매체의 일부 예는 RAM, ROM, CD-ROM(read-only compact disc), CD-R(recordable compact disc), CD-RW(rewritable compact disc), 읽기 전용 디지털 휘발성 디스크(read-only digital versatile disc)(예를 들어, DVD-ROM, 듀얼 레이어 DVD-ROM), 다양한 기록/재기록용 DVD(예를 들어, DVD-RAM, DVD-RW, DVD+RW, 등), 플래시 메모리(예를 들어, SD 카드, 미니-SD 카드, 마이크로-SD 카드 등), 자기 및/또는 솔리드 스테이트 하드 디스크 드라이브, 읽기 전용 및 기록용 Blu-Ray® 디스크, 초고밀도(ultra density) 광 디스크, 임의의 다른 광 또는 자기 매체 및 플로피 디스크를 포함한다. 컴퓨터 판독가능한 매체는 적어도 하나의 프로세싱 유닛에 의해 실행가능한 컴퓨터 프로그램을 저장할 수 있으며, 다양한 연산을 수행하는 명령어 세트를 포함한다. 컴퓨터 프로그램 또는 컴퓨터 코드의 예는 컴파일러에 의해 생성된 것과 같은 기계 코드와, 인터프리터를 이용하여 컴퓨터, 전자 부품 또는 마이크로프로세서에 의해 실행되는 고수준 코드를 포함하는 파일을 포함할 수 있다.
전술한 논의가 주로 소프트웨어를 실행하는 마이크로프로세서 또는 멀티코어 프로세서를 참조하지만, 일부 구현례는 ASIC(application specific integrated circuit) 또는 FPGA(field programmable gate array)와 같은 하나 이상의 집적 회로에 의해 수행된다. 일부 구현례에서, 이러한 집적 회로는 회로 자체에 저장된 명령어를 실행한다.
본 명세서 및 본 출원의 임의의 청구항에서 사용된 바와 같이, "컴퓨터(computer)", "서버(server)", "프로세서(processor)" 및 "메모리(memory)"라는 용어는 모두 전자기술 또는 다른 기술의 장치에 관련된다. 이러한 용어는 사람 또는 사람 그룹을 배제한다. 본 명세서의 목적을 위하여, 디스플레이 및 디스플레이하다라는 용어는 전자 장치 상에 디스플레이하는 것을 의미한다. 본 명세서 및 본 출원의 임의의 청구항에서 사용된 바와 같이, "컴퓨터 판독가능한 매체(computer readable medium(media))"라는 용어는 컴퓨터에 의해 판독가능한 형태로 정보를 저장하는 유형의 물리적 객체에 전적으로 한정된다. 이러한 용어는 임의의 무선 신호, 유선 다운로드 신호 및 임의의 다른 수명이 짧은 신호를 배제한다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에서 설명된 본 발명의 구현례는 사용자에게 정보를 디스플레이하기 위한 예를 들어 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터인 디스플레이 장치와, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 예를 들어 마우스 또는 트랙볼과 같은 지시 장치를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 장치는 역시 사용자와의 상호작용을 제공하는데 사용될 수 있다; 예를 들어, 사용자에게 제공된 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백인 임의의 형태의 감각적인 피드백일 수 있다; 그리고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 장치로 문서를 전송하거나 그 장치로부터 문서를 수신함으로써, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 웹 페이지를 사용자의 웹 클라이언트 장치 상의 웹 브라우저에 웹 페이지를 전송함으로써, 사용자와 상호작용할 수 있다.
본 명세서에서 설명된 본 발명의 구성은 예를 들어 데이터 서버인 백엔드 컴포넌트를 포함하거나, 예를 들어 애플리케이션 서버인 미들웨어 컴포넌트를 포함하거나, 또는 예를 들어 사용자가 본 명세서에서 설명된 본 발명의 구현례와 상호작용할 수 있는 그래픽 유저 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터인 프론트엔드 컴포넌트를 포함하는 컴퓨팅 시스템 또는 하나 이상의 이러한 백엔드 컴포넌트, 미들웨어 컴포넌트 또는 프론트엔드 컴포넌트의 조합으로 구현될 수 있다. 시스템의 컴포넌트는 예를 들어 통신 네트워크인 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 상호연결될 수 있다. 통신 네트워크의 예는 LAN(local area network)과 WAN(wide area network), 내부 네트워크(예를 들어, 인트라넷) 및 피어투피어(peer-to-peer) 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있으며, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트 및 서버의 관계는 해당 컴퓨터 상에 실행되고 서로에 대한 클라이언트-서버 관계를 가지는 컴퓨터 프로그램에 의해 발생한다. 일부 구성에서, 서버는 클라이언트 장치에 (예를 들어, 데이터를 클라이언트 장치에 디스플레이하고 클라이언트 장치와 상호작용하는 사용자로부터의 사용자 입력을 수신하기 위하여) 데이터(예를 들어, HTML 페이지)를 전송한다. 클라이언트 장치에서 생성된 데이터(예를 들어, 사용자 상호작용의 결과)는 서버에서 클라이언트 장치로부터 수신될 수 있다.
개시된 프로세스에서의 단계들의 임의의 특정 순서 또는 계층은 예시적인 접근에 대한 예시인 것이 이해된다. 설계 선호도에 따라, 프로세스에서의 특정 순서 또는 계층은 재배열될 수 있거나 또는 예시된 모든 단계들이 수행될 수 있다는 것이 이해된다. 단계들의 일부는 동시에 수행될 수 있다. 예를 들어, 일부 경우에, 멀티태스킹 및 병렬 처리가 유익할 수 있다. 더하여, 전술한 구성에서의 다양한 시스템 컴포넌트의 분리는 모든 구성에서 이러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템인 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나, 여러 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야만 한다.
전술한 발명을 실시하기 위한 구체적인 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 명세서에 설명된 다양한 양태를 실시할 수 있게 하기 위하여 제공된다. 이러한 양태에 대한 다양한 수정이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명할 것이고, 본 명세서에서 정의된 일반적인 원리는 다른 양태에 적용될 수 있다. 따라서, 특허청구범위는 본 명세서에 보인 양태에 한정되려고 의도되지 않고, 문언적 특허청구범위와 일치하는 전체 범위에 부합되어야하며, 구성요소에서 단수에 대한 참조는 특별히 언급되지 않으면 "하나의 그리고 유일한 하나"를 의미하려고 의도되지 않으며, 오히려 "하나 이상"을 의미하려고 의도된다. 달리 특별히 언급되지 않는다면, "일부(some)"라는 용어는 하나 이상을 말한다. 남성을 나타내는 대명사(예를 들어, "그")는 여성 및 중성(예를 들어, "그녀" 및 "그것")을 포함하며, 반대의 경우도 마찬가지이다. 제목 및 부제는, 만약에 있다면, 편의를 위해서만 사용되며, 본 기술을 제한하지 않는다.
"양태(aspect)"와 같은 문구는 이러한 양태가 본 기술에 본질적이거나 이러한 양태가 본 기술의 모든 구성에 적용된다는 것을 의미하지 않는다. 양태와 관련된 개시 내용은 모든 구성 또는 하나 이상의 구성에 적용될 수 있다. 양태와 같은 문구는 하나 이상의 양태를 지칭할 수 있으며, 반대의 경우도 마찬가지이다. "구성(configuration)"과 같은 용어는 이러한 구성이 본 기술에 본질적이거나 이러한 구성이 본 기술의 모든 구성에 적용된다는 것을 의미하지 않는다. 구성과 관련된 개시 내용은 모든 구성 또는 하나 이상의 구성에 적용될 수 있다. 구성과 같은 문구는 하나 이상의 구성을 지칭할 수 있으며, 반대의 경우도 마찬가지이다.
"예(example)"라는 단어는 본 명세서에서 "예 또는 예시 역할을 하는 것"을 의미하도록 사용된다. 본 명세서에서 "예"로서 설명된 임의의 양태 또는 설계는 다른 양태 또는 설계에 비하여 반드시 바람직하거나 유익한 것으로 간주되지 않는다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 알려져 있거나 추후에 알려질 본 개시 내용을 통해 설명된 다양한 양태의 구성요소에 대한 모든 구조적 기능적 균등물은 본 명세서에 참조로서 명확하게 포함되며, 특허청구범위에 의해 포함되는 것으로 의도된다. 더하여, 본 명세서에 개시되지 것은 어떠한 것도 이러한 개시 내용이 특허청구범위에 명시적으로 언급되는지 여부에 관계없이 공중에 헌정되는 것으로 의도되지 않는다.

Claims (32)

  1. 하나 이상의 웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 기계로 구현되는 방법에 있어서,
    모바일 장치 상에서, 상기 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터가 사용가능한지 판단하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 하나 이상의 웹 클라이언트 상에서의 해당하는 세션에 대한 브라우징 활동을 나타내고, 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계;
    상기 모바일 장치 상에서, 상기 업데이트된 세션 데이터가 사용가능하다면, 네트워크를 통해 상기 하나 이상의 웹 클라이언트로부터 업데이트된 세션 데이터를 수신하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태를 포함하고, 상기 브라우징 활동의 현재 상태는 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션 동안 방문된 웹 페이지의 탭 윈도우 활동을 포함하고, 상기 하나 이상의 웹 클라이언트 중 적어도 하나는 데스크탑 컴퓨팅 장치 상에서 실행되는 데스크탑 웹 클라이언트를 포함하는 단계; 및
    모바일 웹 클라이언트가 상기 모바일 장치 상에서 활성화된 후에, 수신된 상기 업데이트된 세션 데이터를 상기 모바일 장치 상의 모바일 웹 클라이언트의 윈도우 내에 디스플레이하는 단계로서, 상기 모바일 웹 클라이언트의 윈도우 내에 디스플레이된 상기 업데이트된 세션 데이터는 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태에 대응하고, 디스플레이된 상기 업데이트된 세션 데이터는 방문된 웹 페이지의 상기 탭 윈도우 활동과, 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계
    를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  2. 제1항에 있어서,
    상기 업데이트된 세션 데이터가 사용가능한지 판단하는 단계는, 통지 서버로부터 상기 업데이트된 세션 데이터의 통지를 수신하는 단계를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  3. 제1항에 있어서,
    상기 업데이트된 세션 데이터가 사용가능한지 판단하는 단계는, 상기 모바일 웹 클라이언트가 활성화된 후에 사용가능하게 발생하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동은, 상기 데스크탑 웹 클라이언트 상의 하나 이상의 방문된 웹 페이지에 대한 방문 히스토리 데이터를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  5. 삭제
  6. 제4항에 있어서,
    상기 탭 윈도우 데이터는 리소스의 위치를 나타내는 URL(universal resource locator)를 특정하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 업데이트된 세션 데이터는 장치에서 열린 하나 이상의 탭에 대응하는 해당 데이터를 포함하고, 하나 이상의 탭에 대응하는 상기 해당 데이터는 각 탭의 방문 히스토리를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  10. 삭제
  11. 삭제
  12. 제1 웹 클라이언트와의 동기화를 위하여 하나 이상의 웹 클라이언트로부터의 세션 데이터를 저장하는 기계로 구현되는 방법에 있어서,
    상기 하나 이상의 웹 클라이언트에서 해당하는 세션에 대하여 업데이트된 세션 데이터가 사용가능한지 판단하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계;
    상기 업데이트된 세션 데이터가 사용가능하다면, 네트워크를 통해 상기 하나 이상의 웹 클라이언트에 상기 업데이트된 세션 데이터에 대한 요청을 전송하는 단계;
    상기 네트워크를 통해 상기 하나 이상의 웹 클라이언트로부터 상기 업데이트된 세션 데이터를 수신하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태를 포함하고, 상기 브라우징 활동의 현재 상태는 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션 동안 방문된 웹 페이지의 탭 윈도우 활동을 포함하고, 상기 하나 이상의 웹 클라이언트 중 적어도 하나는 데스크탑 컴퓨팅 장치 상에서 실행되는 데스크탑 웹 클라이언트를 포함하는 단계; 및
    모바일 장치 상의 모바일 웹 클라이언트에서의 디스플레이를 위하여 상기 네트워크를 통해 상기 업데이트된 세션 데이터를 상기 모바일 장치 상의 모바일 웹 클라이언트에 전송하는 단계로서, 전송된 상기 업데이트된 세션 데이터는 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태에 대응하고, 전송된 상기 업데이트된 세션 데이터는 방문된 웹 페이지의 상기 탭 윈도우 활동과, 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계
    를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
  13. 제12항에 있어서,
    상기 네트워크를 통해 상기 모바일 장치 상의 모바일 웹 클라이언트에 상기 업데이트된 세션 데이터를 나타내는 통지를 전송하는 단계를 더 포함하는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
  14. 제13항에 있어서,
    상기 통지는 상기 모바일 장치 상의 모바일 웹 클라이언트에 푸시되는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
  15. 삭제
  16. 제12항에 있어서,
    상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션에 대한 브라우징 활동은 방문 히스토리 데이터를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
  17. 하나 이상의 웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템에 있어서,
    메모리;
    하나 이상의 프로세서; 및
    메모리에 저장되고 상기 하나 이상의 프로세서에 의한 실행을 위하여 구성되는 하나 이상의 모듈
    을 포함하고,
    상기 모듈은,
    상기 하나 이상의 웹 클라이언트 상에서 해당하는 세션에 대하여 업데이트된 세션 데이터가 사용가능한지 판단하도록 구성되는 세션 모니터링 모듈로서, 상기 업데이트된 세션 데이터는 상기 하나 이상의 웹 클라이언트 상에서의 해당하는 세션에 대한 브라우징 활동을 나타내고 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하며, 상기 업데이트된 세션 데이터는, 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태를 나타내고, 상기 브라우징 활동의 현재 상태는 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션 동안 방문된 웹 페이지의 탭 윈도우 활동을 포함하고, 상기 하나 이상의 웹 클라이언트 중 적어도 하나는 데스크탑 컴퓨팅 장치 상에서 실행되는 데스크탑 웹 클라이언트를 포함하는, 상기 세션 모니터링 모듈;
    상기 업데이트된 세션 데이터가 사용가능하다면, 제1 웹 클라이언트에게 통지를 전송하도록 구성된 통지 모듈; 및
    상기 제1 웹 클라이언트 상에서의 디스플레이를 위하여, 네트워크를 통해 상기 제1 웹 클라이언트에 상기 업데이트된 세션 데이터를 전송하도록 구성된 동기화 모듈로서, 전송된 상기 업데이트된 세션 데이터는 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태에 대응하고, 전송된 상기 업데이트된 세션 데이터는 방문된 웹 페이지의 상기 탭 윈도우 활동과, 상기 하나 이상의 웹 클라이언트 상에서의 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는, 상기 동기화 모듈
    을 포함하는,
    웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템.
  18. 제17항에 있어서,
    상기 세션 모니터링 모듈은, 상기 업데이트된 세션 데이터가 사용가능한지를 판단하기 위하여 상기 하나 이상의 웹 클라이언트에 요청을 전송하도록 더 구성되는,
    웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템.
  19. 제17항에 있어서,
    하나 이상의 통지가 모바일 장치 상의 모바일 웹 클라이언트에 주기적으로 전송되는,
    웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템.
  20. 제17항에 있어서,
    상기 동기화 모듈은 상기 업데이트된 세션 데이터의 전송을 조절하도록 더 구성되는,
    웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템.
  21. 기계에 의해 실행될 때 상기 기계가,
    하나 이상의 웹 클라이언트에서 해당하는 세션에 대하여 업데이트된 세션 데이터가 사용가능한지 판단하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계;
    상기 업데이트된 세션 데이터가 사용가능하다면, 네트워크를 통해 상기 하나 이상의 웹 클라이언트에 상기 업데이트된 세션 데이터에 대한 요청을 전송하는 단계;
    상기 네트워크를 통해 상기 하나 이상의 웹 클라이언트로부터 상기 업데이트된 세션 데이터를 수신하는 단계로서, 상기 업데이트된 세션 데이터는, 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태를 나타내고, 상기 브라우징 활동의 현재 상태는 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션 동안 방문된 웹 페이지의 탭 윈도우 활동을 포함하고, 상기 하나 이상의 웹 클라이언트 중 적어도 하나는 데스크탑 컴퓨팅 장치 상에서 실행되는 데스크탑 웹 클라이언트를 포함하는 단계; 및
    제1 웹 클라이언트 상에서의 디스플레이를 위하여, 네트워크를 통해 상기 제1 웹 클라이언트에 상기 업데이트된 세션 데이터를 전송하는 단계로서, 전송된 상기 업데이트된 세션 데이터는 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션에 대한 브라우징 활동의 현재 상태에 대응하고, 전송된 상기 업데이트된 세션 데이터는 방문된 웹 페이지의 상기 탭 윈도우 활동과, 상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션 동안 상기 하나 이상의 웹 클라이언트에 의해 수신된 사용자 입력에 기초하는 웹 페이지 폼 요소 데이터를 포함하는 단계
    를 포함하는 동작을 수행하게 하는 명령어를 저장하는,
    비일시적인 기계 판독가능한 매체.
  22. 제21항에 있어서,
    상기 하나 이상의 웹 클라이언트에서의 상기 해당하는 세션에 대한 브라우징 활동은 상기 하나 이상의 웹 클라이언트 상의 하나 이상의 방문된 웹 페이지에 대한 방문 히스토리 데이터를 포함하는,
    비일시적인 기계 판독가능한 매체.
  23. 제21항에 있어서,
    상기 제1 웹 클라이언트는 모바일 장치 상의 모바일 웹 클라이언트인,
    비일시적인 기계 판독가능한 매체.
  24. 제1항에 있어서,
    사용자 입력에 기초하는 상기 웹 페이지 폼 요소 데이터는 웹 검색 엔진에서의 검색 질의에 대응하는 사용자에 의해 입력된 하나 이상의 검색 질의어를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  25. 제12항에 있어서,
    사용자 입력에 기초하는 상기 웹 페이지 폼 요소 데이터는 웹 검색 엔진에서의 검색 질의에 대응하는 사용자에 의해 입력된 하나 이상의 검색 질의어를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
  26. 제17항에 있어서,
    사용자 입력에 기초하는 상기 웹 페이지 폼 요소 데이터는 웹 검색 엔진에서의 검색 질의에 대응하는 사용자에 의해 입력된 하나 이상의 검색 질의어를 포함하는,
    웹 클라이언트로부터 세션 데이터를 자동으로 동기화하는 시스템.
  27. 제21항에 있어서,
    사용자 입력에 기초하는 상기 웹 페이지 폼 요소 데이터는 웹 검색 엔진에서의 검색 질의에 대응하는 사용자에 의해 입력된 하나 이상의 검색 질의어를 포함하는,
    비일시적인 기계 판독가능한 매체.
  28. 제1항에 있어서,
    상기 업데이트된 세션 데이터는 상기 데스크탑 웹 클라이언트로부터의 탭 윈도우 데이터를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  29. 제6항에 있어서,
    상기 리소스는 웹 콘텐츠를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  30. 제1항에 있어서,
    수신된 상기 업데이트된 세션 데이터를 상기 모바일 웹 클라이언트의 윈도우 내에 디스플레이하는 단계를 더 포함하는,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  31. 제1항에 있어서,
    상기 모바일 웹 클라이언트는 모바일 웹 브라우저인,
    웹 클라이언트로부터의 세션 데이터를 자동으로 동기화하는 방법.
  32. 제13항에 있어서,
    상기 네트워크를 통해 상기 업데이트된 세션 데이터를 상기 모바일 장치 상의 모바일 웹 클라이언트에 전송하는 단계를 더 포함하고,
    상기 업데이트된 세션 데이터는 상기 데스크탑 웹 클라이언트 상에서의 하나 이상의 방문된 웹 페이지에 대한 방문 히스토리 데이터를 포함하는,
    웹 클라이언트로부터의 세션 데이터를 저장하는 방법.
KR1020120135291A 2011-12-06 2012-11-27 여러 장치에 걸친 브라우징 전후관계 연속성 KR101277462B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/312,950 2011-12-06
US13/312,950 US8392617B1 (en) 2011-12-06 2011-12-06 Browsing context continuation across multiple devices

Publications (2)

Publication Number Publication Date
KR20130063462A KR20130063462A (ko) 2013-06-14
KR101277462B1 true KR101277462B1 (ko) 2013-06-21

Family

ID=47559094

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120135291A KR101277462B1 (ko) 2011-12-06 2012-11-27 여러 장치에 걸친 브라우징 전후관계 연속성

Country Status (8)

Country Link
US (1) US8392617B1 (ko)
EP (1) EP2639712A3 (ko)
JP (1) JP5291240B2 (ko)
KR (1) KR101277462B1 (ko)
CN (2) CN103761320B (ko)
AU (1) AU2012258293B2 (ko)
BR (1) BR102012030997A8 (ko)
CA (1) CA2797384C (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938422B1 (en) * 2011-09-02 2015-01-20 Google Inc. Delay retrieval of synchronization information
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US8769624B2 (en) 2011-09-29 2014-07-01 Apple Inc. Access control utilizing indirect authentication
US9313100B1 (en) 2011-11-14 2016-04-12 Amazon Technologies, Inc. Remote browsing session management
US9330188B1 (en) * 2011-12-22 2016-05-03 Amazon Technologies, Inc. Shared browsing sessions
US9336321B1 (en) 2012-01-26 2016-05-10 Amazon Technologies, Inc. Remote browsing and searching
US9680927B2 (en) * 2012-02-05 2017-06-13 Apple Inc. Cloud tabs
US9589541B2 (en) 2012-02-28 2017-03-07 Ebay Inc. Location-based display of pixel history
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
KR101901881B1 (ko) * 2013-09-26 2018-09-27 구글 엘엘씨 차량에 네비게이션 데이터를 제공하기 위한 시스템 및 방법
US9740777B2 (en) 2013-12-20 2017-08-22 Ebay Inc. Systems and methods for saving and presenting a state of a communication session
RU2580392C2 (ru) * 2013-12-31 2016-04-10 Общество С Ограниченной Ответственностью "Яндекс" Способ синхронизации первой и второй сессии просмотра страниц для пользователя и сервер
US9549028B2 (en) * 2014-02-18 2017-01-17 Ebay Inc. Systems and methods for automatically saving a state of a communication session
RU2646351C2 (ru) * 2014-03-27 2018-03-02 Общество С Ограниченной Ответственностью "Яндекс" Способ передачи пользователю уведомления о непрочитанном сообщении электронной почты (варианты ) и электронное устройство, используемое в нем
US9967401B2 (en) 2014-05-30 2018-05-08 Apple Inc. User interface for phone call routing among devices
JP6328797B2 (ja) 2014-05-30 2018-05-23 アップル インコーポレイテッド 1つのデバイスの使用から別のデバイスの使用への移行
CN104270336B (zh) * 2014-07-30 2018-10-30 深信服科技股份有限公司 远程应用运行终端的迁移方法、装置及系统
US10339293B2 (en) 2014-08-15 2019-07-02 Apple Inc. Authenticated device used to unlock another device
KR101594149B1 (ko) * 2014-08-19 2016-02-15 네이버 주식회사 사용자 단말 장치,서버 장치 및 이들에 의한 이어보기 서비스 제공 방법
JP6397312B2 (ja) 2014-11-06 2018-09-26 キヤノン株式会社 ネットワークシステム、及び、ネットワークシステムの制御方法
US9912758B2 (en) * 2014-12-16 2018-03-06 Yahoo Holdings, Inc. Continuing an application session on a different device
US10275116B2 (en) 2015-06-07 2019-04-30 Apple Inc. Browser with docked tabs
JP6005887B1 (ja) 2016-04-12 2016-10-12 株式会社Cygames プログラム、情報処理装置、情報処理方法及び情報処理システム
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US11070630B2 (en) 2018-05-04 2021-07-20 Citrix Systems, Inc. Computer system providing SAAS application session state migration features and related methods
WO2020053996A1 (ja) 2018-09-12 2020-03-19 株式会社Kokusai Electric 基板処理装置、半導体装置の製造方法およびプログラム
US10924545B2 (en) * 2018-10-10 2021-02-16 Citrix Systems, Inc. Computer system providing mirrored SAAS application sessions and related methods
US11556699B2 (en) * 2019-02-04 2023-01-17 Citrix Systems, Inc. Data migration across SaaS applications
US11010121B2 (en) 2019-05-31 2021-05-18 Apple Inc. User interfaces for audio media control
KR20240049648A (ko) 2019-05-31 2024-04-16 애플 인크. 오디오 미디어 제어를 위한 사용자 인터페이스
US11669291B2 (en) * 2019-10-23 2023-06-06 Co-Commerce Shopping Platform Ltd. System and method for sharing altered content of a web page between computing devices
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044799A1 (en) 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US20090307375A1 (en) 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976094B1 (en) * 2000-05-09 2005-12-13 Nortel Networks Limited Automated web browser synchronization by using session initiation protocol during a real-time session
US6874037B1 (en) * 2000-06-19 2005-03-29 Sony Corporation Method and apparatus for synchronizing device information
US8707185B2 (en) * 2000-10-10 2014-04-22 Addnclick, Inc. Dynamic information management system and method for content delivery and sharing in content-, metadata- and viewer-based, live social networking among users concurrently engaged in the same and/or similar content
US7225225B2 (en) * 2001-03-30 2007-05-29 Sharp Laboratories Of America, Inc. Selective synchronization of web browsers
US7925698B2 (en) * 2004-08-18 2011-04-12 Siemens Enterprise Communications, Inc. Apparatus and method for a synchronized mobile communication client
US7865571B2 (en) * 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7937451B2 (en) * 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
CN101431814B (zh) * 2007-11-05 2012-11-14 网秦无限(北京)科技有限公司 基于中间件的手机与pc互操作的方法与系统
US7917521B2 (en) 2008-03-10 2011-03-29 International Business Machines Corporation User/browser state information sharing between browser applications
US20090307376A1 (en) * 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements
CN101924779B (zh) * 2009-06-15 2014-10-08 北京搜狗科技发展有限公司 浏览器客户端共享资源的方法、设备及系统
KR101590357B1 (ko) * 2009-06-16 2016-02-01 엘지전자 주식회사 휴대 단말기, 휴대 단말기 동작방법 및 휴대 단말기 싱크 시스템
CN101969636B (zh) * 2009-12-31 2013-10-30 优视科技有限公司 一种用于移动通讯用户终端的书签管理系统及其应用方法
US20110239133A1 (en) * 2010-03-29 2011-09-29 Microsoft Corporation Shared resource computing collaboration sessions management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040044799A1 (en) 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US20090307375A1 (en) 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements

Also Published As

Publication number Publication date
JP5291240B2 (ja) 2013-09-18
AU2012258293A1 (en) 2013-06-20
BR102012030997A2 (pt) 2014-03-18
JP2013120603A (ja) 2013-06-17
CN103761320B (zh) 2017-09-08
CA2797384C (en) 2013-11-05
EP2639712A3 (en) 2013-11-06
BR102012030997A8 (pt) 2018-01-02
KR20130063462A (ko) 2013-06-14
EP2639712A2 (en) 2013-09-18
CN103220319A (zh) 2013-07-24
CA2797384A1 (en) 2013-05-09
AU2012258293B2 (en) 2015-04-16
CN103761320A (zh) 2014-04-30
US8392617B1 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
KR101277462B1 (ko) 여러 장치에 걸친 브라우징 전후관계 연속성
US8650481B1 (en) Stable and secure use of content scripts in browser extensions
EP2962216B1 (en) Sharing application states
US8935755B1 (en) Managing permissions and capabilities of web applications and browser extensions based on install location
US9348921B2 (en) Determining access to comments
KR102159416B1 (ko) 하이브리드 모바일 애플리케이션을 구축하고 사용하는 시스템 및 방법
US20140040761A1 (en) Providing an update associated with a user-created point of interest
US8655913B1 (en) Method for locating web elements comprising of fuzzy matching on attributes and relative location/position of element
US10257342B2 (en) Validating stateful dynamic links in mobile applications
US20140071091A1 (en) Camera Based Hover Detection for Touch-Based Mobile Devices
US11200287B2 (en) Global address list
US7912924B1 (en) Adding functionality with respect to one or more web pages
WO2013184343A1 (en) Collecting web pages/links from communications and documents for later reading
US20150212670A1 (en) Highly Customizable New Tab Page
US20150019994A1 (en) Contextual reference information on a remote device
CN113835571A (zh) 一种终端设备、信息展示方法和存储介质
US20130081010A1 (en) Template and server content download using protocol handlers
US20130332806A1 (en) Collecting Web Pages/Links from Communications and Documents for Later Reading
US9373148B2 (en) Connect social networking users who simultaneously check-in at a geolocation
US20140317536A1 (en) Browser Dialogue Box Wrapper
KR20150116875A (ko) 네트워크를 거치는 애드-혹 디바이스 공유
US9977703B2 (en) Subscriber-based event subscription
CN110099122B (zh) 用于发送网络请求的方法和装置
US20150205585A1 (en) Delayed compiling of scripting language code
US8700990B1 (en) PDF plugin to view any page

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160607

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170609

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190611

Year of fee payment: 7