KR102507535B1 - 전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법 - Google Patents

전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102507535B1
KR102507535B1 KR1020160062195A KR20160062195A KR102507535B1 KR 102507535 B1 KR102507535 B1 KR 102507535B1 KR 1020160062195 A KR1020160062195 A KR 1020160062195A KR 20160062195 A KR20160062195 A KR 20160062195A KR 102507535 B1 KR102507535 B1 KR 102507535B1
Authority
KR
South Korea
Prior art keywords
text
electronic device
web page
scroll
browser application
Prior art date
Application number
KR1020160062195A
Other languages
English (en)
Other versions
KR20170070782A (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 삼성전자주식회사
Priority to EP16183539.2A priority Critical patent/EP3182302B1/en
Priority to CN201610895627.7A priority patent/CN107103015B/zh
Publication of KR20170070782A publication Critical patent/KR20170070782A/ko
Application granted granted Critical
Publication of KR102507535B1 publication Critical patent/KR102507535B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

웹 브라우저(web browser)를 지원하는 전자 장치는 웹페이지(webpage)를 표현하는 어플리케이션(application)을 저장하는 메모리(memory), 상기 저장된 어플리케이션을 실행하고, 상기 웹 브라우저의 상태 정보를 식별하며, 상기 웹 브라우저의 상기 상태 정보를 다른 전자 장치에게 송신하는 프로세서(processor)를 포함할 수 있고, 상기 상태 정보는, 상기 웹페이지의 URL(universal resource locator) 및 상기 웹페이지의 뷰포트(viewport)와 관련된 스크롤(scroll)의 위치 정보를 포함할 수 있고, 상기 위치 정보는, 상기 뷰포트의 미리 정의된 지점과 가장 가까운 아이템(item)에 대응하는 스크롤 위치를 포함할 수 있다.

Description

전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법{APPARATUS AND METHOD FOR SHARING STATE INFORMATION OF WEB BROWSER IN ELECTRONIC DEVICE}
일반적으로, 아래의 설명들은 브라우저(browser)를 지원할 수 있는 전자 장치에 관한 것으로, 보다 구체적으로 브라우저를 지원할 수 있는 전자 장치들 간 브라우저의 강화된(enhanced) 상태 정보를 송신하기 위한 장치 및 방법에 관한 것이다.
많은 전자 장치들(예: 컴퓨터들(computers), 스마트폰들(smartphones), 스마트 TV들(smart TVs), 타블릿 컴퓨터들(tablet computers))은 다른 전자 장치와 통신할 수 있고, 다른 전자 장치로 작업(task)을 이동시킬 수 있다. 예를 들어, 사용자는 스마트폰에서 웹페이지(webpage) 탐색을 시작할 수 있고, 타블릿 또는 랩탑 컴퓨터(laptop computer)에서 동일한 링크(link)를 찾아낼(pick up) 수 있다. 그러나, 웹 브라우저의 상태 정보를 송신하는 일반적인 시스템들은 필수적으로 현재의 브라우저 웹페이지의 URL(universal resource locator)을 송신하는 것으로 제한된다. 이로 인해, 사용자는 동일한 웹페이지를 계속 탐색할 수 있지만, 브라우저 상태의 중요한 정보는 유실된다. 예를 들어, 스크롤(scroll)의 위치가 유실된다. 이 경우, 사용자는 다른 전자 장치에서 웹페이지를 처음부터 시작해야만 하고, 다른 전자 장치로 웹페이지의 URL을 송신할 때 사용자가 멈춘 웹페이지 상 동일한 위치로 스크롤을 해야만 한다. 또한, 세션(session) 정보가 유실된다. 예를 들어, 웹페이지가 보안 웹페이지라면, 사용자는 다른 전자 장치에서 식별정보(identification) 및 비밀번호를 다시 입력해야만 한다. 또한, 사용자는 다른 전자 장치에서 처음부터 쇼핑 프로세스(shopping process)를 다시 시작해야만 한다. 또한, 폼 데이터(form data)가 보존되지 않아서, 사용자가 전자 장치에서 양식을 작성하는 도중에 상기 양식의 작성을 멈춘다면, 사용자는 다른 전자 장치에서 모든 입력 데이터를 다시 입력해야만 한다.
이러한 문제는 전자 장치들이 다양한 화면 크기들을 이용하는 사실에 의해 더 복잡해진다. 전자 장치가 다른 전자 장치와 같은 웹페이지를 읽어오더라도, 상기 다른 전자 장치의 웹페이지 컨텐츠(content)의 배치(layout)는 상기 전자 장치의 웹페이지 컨텐츠의 배치와 상당히 다를 수 있다. 뷰포트(viewport)가 상대적으로 동일한 위치(same relative position)로 웹페이지를 스크롤하는 것은 동일한 컨텐츠 화면들을 보장하지 않는다. 다른 문제는 웹페이지 자체의 컨텐츠다. 두 전자 장치들이 상당히 다르다면, 동일한 웹페이지의 URL은 동일한 웹페이지의 다른 컨텐츠(예를 들어, 모바일 버전(mobile version)의 컨텐츠와 데스크탑 버전(desktop version)의 컨텐츠)를 검색할 수 있다.
그러므로, 전자 장치로부터 다른 전자 장치에게 웹 브라우저의 상태 정보를 송신하기 위한 향상된 장치 및 방법이 요구된다. 특히, 웹 브라우저를 지원할 수 있는 프로세싱 시스템들(processing systems) 간 스크롤의 위치 및 폼 컨텐츠(form content)를 송신하기 위한 장치 및 방법이 요구된다.
아래의 설명들은, 웹 브라우저(web browser)를 지원할 수 있는 전자 장치들 간 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법을 제공하고자 한다.
일 실시 예에 따르는 웹 브라우저(web browser)를 지원하는 전자 장치는 웹페이지(webpage)를 표현하는 어플리케이션(application)을 저장하는 메모리(memory), 상기 저장된 어플리케이션을 실행하고, 상기 웹 브라우저의 상태 정보를 식별하며, 상기 웹 브라우저의 상기 상태 정보를 다른 전자 장치에게 송신하는 프로세서(processor)를 포함할 수 있고, 상기 상태 정보는, 상기 웹페이지의 URL(universal resource locator) 및 상기 웹페이지의 뷰포트(viewport)와 관련된 스크롤(scroll)의 위치 정보를 포함할 수 있고, 상기 위치 정보는, 상기 뷰포트의 미리 정의된 지점과 가장 가까운 아이템(item)에 대응하는 스크롤 위치를 포함할 수 있다.
다른 실시 예에 따르는 웹페이지를 표현하는 어플리케이션을 저장하는 메모리 및 상기 저장된 어플리케이션을 실행하는 프로세서를 포함하는 전자 장치의 동작 방법은 상기 웹 브라우저의 상태 정보를 식별하는 과정과, 다른 전자 장치에게 상기 웹 브라우저의 상기 상태 정보를 송신하는 과정을 포함할 수 있고, 상기 상태 정보는, 상기 웹페이지의 URL 및 상기 웹페이지의 뷰포트와 관련된 스크롤의 위치 정보를 포함할 수 있고, 상기 위치 정보는, 상기 뷰포트의 미리 정의된 지점과 가장 가까운 아이템에 대응하는 스크롤 위치를 포함할 수 있다.
다양한 실시 예들에 따르면, 전자 장치들 간 웹 브라우저(web browser)의 상태 정보가 공유될 수 있다.
보다 완전한 이해를 위해, 첨부된 도면을 참조하여 아래의 설명들이 이루어진다. 도면에서 동일한 참조번호는 동일한 구성요소를 나타낸다.
도 1은 일 실시 예에 따른 브라우저(browser)를 지원할 수 있는 전자 장치들이 브라우저의 상태 정보를 교환하는 통신 네트워크를 도시한다.
도 2는 일 실시 예에 따른 브라우저의 강화된 상태 정보를 교환하는 전자 장치들을 도시한다.
도 3은 일 실시 예에 따른 전자 장치의 디스플레이에 표시되는 뷰포트(viewport)를 도시한다.
도 4는 일 실시 예에 따른 전자 장치의 기능적 구성을 도시한다.
도 5a 및 5b는 일 실시 예에 따른 송신 장치에서 브라우저 어플리케이션에 의한 브라우저에 대한 상태 정보의 수집과 송신을 나타내는 흐름도이다.
도 6은 일 실시 예에 따른 송신 장치에서 브라우저 어플리케이션에 의한 브라우저에 대한 다른 상태 정보의 수집과 송신을 나타내는 흐름도이다.
도 7은 일 실시 예에 따른 수신 장치에서 브라우저 어플리케이션에 의한 브라우저에 대한 상태 정보의 수신과 처리를 나타내는 흐름도이다.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.
이하 본 개시는 웹 브라우저(web browser)의 상태 정보를 공유하기 위한 장치 및 방법에 대하여 설명한다. 이하 설명에서 사용되는 웹 페이지의 구성 요소들을 지칭하는 용어(예: 인라인 텍스트 상자(in-line text box), 노드(node) 등), 웹페이지의 전체 또는 일부를 지칭하는 용어(예: 뷰포트(viewport)), 네트워크 객체(network entity)들을 지칭하는 용어, 장치의 구성 요소를 지칭하는 용어 등은 설명의 편의를 위해 예시된 것이다. 따라서, 본 개시가 후술되는 용어들에 한정되는 것은 아니며, 동등한 기술적 의미를 가지는 다른 용어가 사용될 수 있다.
통상의 기술자들은 본 개시의 원리가 적절하게 배치된 브라우저를 지원할 수 있는(browser-capable) 전자 장치로 구현될 수 있음을 이해할 것이다.
본 개시는 제1(예: 오리지날(original), 전송, 송신) 전자 장치로부터 제2(수신) 전자 장치에게 브라우저의 상태 정보가 송신된 후, 브라우저의 이전 상태로 상기 브라우저를 복원하는 장치 및 방법을 제공한다. 브라우저의 강화된(enhanced) 상태 정보는 상당히 다른 장치들/폼 요소들(form factors)(PC(personal computer), 모바일 전화(mobile phone), 타블릿(tablet), TV(television), 머리에 착용하는 장치, 웨어러블(wearable) 장치) 간 송신되는 웹페이지(webpage)의 URL(universal resource locator), 발견적 해결 방법(heuristic approach)을 이용하는 웹페이지의 스크롤(scroll) 위치, 쿠키들(cookies)을 이용하는 웹페이지의 세션 정보(session information), 웹페이지에 대한 폼 데이터(form data), 및 웹 상태 및 세션(session)을 포함할 수 있다.
도 1은 일 실시 예에 따른 브라우저를 지원할 수 있는 전자 장치들 120, 130, 140 및 150이 브라우저의 상태 정보를 교환하는 통신 네트워크 100을 도시한다.
도 1을 참고하면, 일부 실시 예들에서, 전자 장치 120은 모바일 전화로 가정되고, 전자 장치 130은 타블릿으로 가정되고, 전자 장치 140은 스마트 TV(smart television)로 가정되며, 전자 장치 150은 랩탑 컴퓨터(laptop computer)로 가정된다. 본 개시의 원리들에 따라, 전자 장치들 120, 130, 140, 및 150은 인터넷(internet) 또는 홈 네트워크(home network)와 같은 인터넷 프로토콜(internet protocol, IP) 네트워크 110을 통해 브라우저의 강화된 상태 정보를 교환한다. 전자 장치들 120, 130, 140, 및 150은 장치의 특성 및 종류에 따라 서로 다른 화면 크기들 및 해상도들을 가질 수 있으며, 다른 입력 장치들에 의해 작동될 수 있다.
도 2는 일 실시 예에 따른 브라우저의 강화된 상태 정보를 교환하는 전자 장치들 210 및 250을 도시한다.
도 2를 참고하면, 전자 장치들 210 및 250 각각은 모바일 전화, 타블릿, 스마트 TV, 및 랩탑 컴퓨터 중 하나일 수 있다. 도 2에서, 전자 장치 210은 송신 장치 210인 것으로 가정된다. 또한, 전자 장치 250은 수신 장치 250인 것으로 가정된다. 사용자가 송신 장치 210의 브라우저 어플리케이션(application) 215로부터 전송 동작(transfer action)을 시작했을 때, 송신 장치 210의 브라우저 어플리케이션 215는 상기 브라우저의 강화된 상태 정보를 모두 수집하기 시작한다.
다음에, 송신 장치 210의 브라우저 어플리케이션 215는 강화된 상태 정보를 텍스트 메시지(text message)로 구성할 수 있고, 스마트폰들과 타블릿들의 전송 서비스(transfer service)와 같은 통신 링크(communication link)를 통하여 수신 장치 250에게 상기 텍스트 메시지를 송신한다. 도 2에서, 송신 장치 210의 전송 서비스 220을 이용하여 수신 장치 250과 통신 링크를 설정한다. 송신 장치 210은 상기 통신 링크를 통해 강화된 상태 정보를 포함하는 텍스트 메시지를 송신하고, 수신 장치 250의 사용자를 상기(prompt)시킨다. 수신 장치 250의 브라우저 어플리케이션 255는 수신 장치 250에서 실행된다. 상기 수신 장치 250의 브라우저 어플리케이션 255는 전송 서비스 260을 이용하여 수신된 웹페이지의 상태로의 복원을 준비한다. 먼저, 수신 장치 250의 브라우저 어플리케이션 255는 웹페이지에 대한 쿠키들(cookies)을 복원한다. 다음으로, 수신 장치 250의 브라우저 어플리케이션 255는 웹페이지 URL을 로드(load)한다. 웹페이지가 완전히 로드된 후, 수신 장치 250의 브라우저 어플리케이션 255는 스크롤 위치, 폼 데이터, 및 줌 레벨(zoom level)을 포함하는 다른 브라우저의 상태들을 복원한다.
아래에서 본 개시는 스크롤의 위치 정보가 송신 장치 210의 브라우저 어플리케이션 215로부터 어떻게 수집되는지와 스크롤의 위치 정보가 수신 장치 250의 브라우저 어플리케이션 255에서 어떻게 복원되는지를 설명한다. 스크롤 위치의 복원 프로세스(process)는 발견적 해결 방법을 포함할 수 있다. 먼저, 송신 장치 210의 브라우저 어플리케이션 215는 현재 웹페이지의 스크롤 오프셋(offset)을 특정할 수 있는 오리지날 웹페이지에서 콘텍스트 텍스트 문자열(context text string)을 식별한다. 송신 장치 210은 수신 장치 250에게 상기 식별된 콘텍스트 텍스트 문자열에 대한 정보를 포함하는 신호를 송신한다. 수신 장치 250이 송신 장치 210으로부터 상기 신호를 수신한 후, 수신 장치 250의 브라우저 어플리케이션 255는 동일한 콘텍스트 텍스트 문자열을 검출한다. 수신 장치 250의 브라우저 어플리케이션 255는 상기 콘텍스트 텍스트 문자열을 나타내기 위해 웹페이지를 스크롤한다.
상기 문자 기반의 스크롤 위치의 복원은 수신 장치 250의 웹페이지 배치가 송신 장치 210과 다르더라도 수행될 수 있다. 상기 문자 기반의 스크롤 위치의 복원은 수신 장치 250의 웹페이지 컨텐츠(content)(즉, 다른 브라우저들에 대한 다른 컨텐츠, 동적 뉴스 컨텐츠(dynamic news content), 다른 웹 배너들(banners), 등)가 송신 장치 210과 다르더라도 수행될 수 있다. 공공에 보여지는(public-facing) IP 주소는 사용자 세션의 저장 및 복원 간에 변화하지 아니하므로, 브라우저의 강화된 상태 정보의 전송은 로컬 영역 네트워크들(local area networks)(예: 홈 네트워크들)에서 최적의 효과를 발휘할 수 있다. 따라서 오리지날 웹페이지의 서버는 상기 전송을 검출하지 않는다.
스크롤의 위치 정보를 수집 - 송신 장치 210의 브라우저 어플리케이션 215는 수신 장치 250의 브라우저 어플리케이션 255에서 스크롤 위치를 복원하기 위해 이용되는 스크롤의 위치 정보를 수집한다. 송신 장치 210의 브라우저 어플리케이션 215는 좌표 기반의 스크롤 위치뿐만 아니라, 콘텍스트 텍스트를 결정한다. 송신 장치 210의 브라우저 어플리케이션 215는 송신 장치 210의 뷰포트의 좌측 상단 모서리에서 충분한 컨텐츠를 포함하는 일부 텍스트를 검출하고 식별한다. 세부 사항은 아래의 도 5a 및 5b에 도시되어 있다. 상기 뷰포트가 대부분 이미지들(images)로 구성되어 있을 때, 좌측 상단 이미지의 소스(source) URL이 이용될 수 있다. 다만, 송신 장치 210의 브라우저 어플리케이션 215가 상기 텍스트 및 이미지의 소스 URL과 같은 아이템(item)을 검출하고 식별하는 지점은 상기 뷰포트의 좌측 상단 모서리에 한정되지 않고, 미리 정의된 다양한 지점일 수 있다. 예를 들어, 상기 미리 정의된 다양한 지점은 상기 뷰포트의 우측 상단 모서리, 좌측 하단 모서리, 및 우측 하단 모서리일 수 있다.
여기서, 뷰포트는 전자 장치를 통해 표시되는 웹페이지의 전체 또는 일부를 의미한다. 예를 들어, 뷰포트는 도 3에서 도시된 것과 같이 웹페이지의 일부일 수 있다. 도 3은 일 실시 예에 따른 전자 장치 120의 디스플레이에 표시되는 뷰포트 320을 도시한다. 도 3을 참고하면, 사용자가 전자 장치 120을 이용하여 웹페이지 310을 열람하는 경우, 전자 장치 120의 디스플레이의 크기 및 해상도의 제한으로 인해, 웹페이지 310의 일부만이 표시된다. 이때, 표시되는 웹페이지 310의 일부는 '뷰포트'라 지칭된다. 즉, 뷰포트 320은 전자 장치 120의 디스플레이를 통해 사용자에게 보여지는 영역을 의미한다. 따라서, 뷰포트 320은 '표시 영역', '웹페이지의 일부 영역', 및 '브라우저의 윈도우(browser window) 영역'등으로 지칭될 수 있다.
일부 실시 예들에서, 전자 장치 120의 디스플레이의 하드웨어 성능 및 웹페이지 310의 크기에 따라, 뷰포트 320은 전체 웹페이지 310일 수 있다. 또한, 다른 일부 실시 예들에서, 뷰포트 320은 웹페이지 310의 가로축의 일부와 세로축의 일부로 표현되는 영역일 수 있다.
스크롤의 위치 정보를 구성 - 송신 장치 210의 브라우저 어플리케이션 215는 스크롤의 위치 정보를 결정한다. 상기 스크롤의 위치 정보는 아래의 <표 1>에서 설명되는 몇몇 데이터 필드들(data fields)로 구성될 수 있다.
isImage scrollToText가 이미지 소스 URL인지 여부를 나타냄
scrollToText isImage가 false라면 첫 번째 InlineTextBox의 텍스트 또는 isImage가 true라면 이미지 소스 URL의 텍스트
scrollToContextText 콘텍스트 텍스트 문장들의 텍스트
scrollToTextPositionInView 뷰포트에 대한 scrollToText의 위치
scrollViewPosition 문서의 컨텐츠에 대한 뷰포트에서 스크롤 위치
일부 실시 예들에서, 상기 데이터 필드들은 다른 브라우저의 상태 정보에 따라 자바 스크립트 객체 표기법(java script object notation, JSON) 포맷(format)으로 입력될 수 있고, 수신 장치 250의 브라우저 어플리케이션 255에게 송신될 수 있다.
스크롤 위치를 복원 - 브라우저의 강화된 상태 정보가 수신 장치 250에게 송신 된 후, 수신 장치 250의 브라우저 어플리케이션 255는 스크롤 위치를 복원하기 위하여 텍스트 메시지에서의 브라우저의 상태 정보를 이용한다. 상기 스크롤 위치는 웹페이지의 URL이 성공적으로 로드된 후 복원된다. 수신 장치 250의 브라우저 어플리케이션 255는 웹페이지에서 텍스트를 탐색하거나 ("isImage"필드가 "TRUE"라면) 텍스트와 이미지의 소스 URL을 매치시키고, 매치되는 위치로 웹페이지를 스크롤한다. 세부 사항은 아래의 도 6 및 도 7에서 설명된다.
쿠키를 송신 - 송신 장치 210의 브라우저 어플리케이션 215는 수신 장치 250의 브라우저 어플리케이션 255를 이용하여 웹페이지의 세션 상태를 복원하기 위하여 수신 장치 250에게 현재 웹페이지의 URL의 쿠키들을 송신한다. 일부 실시 예들에서, 아래의 <표 2>에서의 속성들을 포함하는 쿠키는 수신 장치 250에게 송신될 수 있다.
Name 쿠키의 이름
Value 쿠키의 값
domain 사이트의 도메인을 특정함
path 쿠키에 속하는 디렉터리(directory) 경로를 특정함
expiryDate GMT(Greenwich mean time) 포맷에서 쿠키의 만료 시간을 특정함
isSecure https를 통해 쿠키를 송신할지 여부를 지시함
isHttpOnly 쿠키가 클라이언트 측 스크립트(client-side script)에 의해 접속가능한지 여부를 특정함
폼 데이터를 송신 - 송신 장치 210의 브라우저 어플리케이션 215는 일반적인(conventional) 웹 어플리케이션 프로그래밍 인터페이스(application programming interface, API)들을 이용하여 폼 데이터를 수집한다. 수신 장치 250의 브라우저 어플리케이션 255는 원격 장치(remote device)에서 데이터가 채워진(filled-in) 폼을 복원한다.
도 2를 참고하여 설명한 실시 예에서, 각 단계의 수행 주체는 송신 장치 210의 브라우저 어플리케이션 215 또는 수신 장치 250의 브라우저 어플리케이션 255로 설명되었다. 브라우저 어플리케이션 215 및 브라우저 어플리케이션 255는 논리적 주체로서 예시된 것이며, 하드웨어적 관점에 의하면, 도 2에 도시된 절차는 송신 장치 210 또는 수신 장치 250에 의해 수행되는 것으로 이해될 수 있다.
도 4는 일 실시 예에 따른 전자 장치 120의 기능적 구성을 도시한다. 전자 장치 120은 모바일 전화일 수 있다. 또한, 전자 장치 120은 타블릿, 스마트 TV, 및 랩탑 컴퓨터 등을 대표할 수 있다. 전자 장치 120은 본 개시의 원리들에 따른 브라우저의 강화된 상태 정보를 교환하여 송신 장치 210 또는 수신 장치 250과 같이 동작할 수 있다.
도 4를 참고하면, 전자 장치 120은 코어 회로(core circuitry) 400을 포함하고, 상기 코어 회로 400은 ROM(read-only memory) 405, RAM(random access memory) 410, 중앙 처리 장치(central processing unit, CPU) 415, 디지털 신호 프로세서(digital signal processor, DSP) 420, 디지털-아날로그 변환기(digital-to-analog converter, DAC)/아날로그-디지털 변환기(analog-to-digital converter, ADC) 회로 425, 기저 대역(baseband, BB) 회로 블록 430, 코덱(codec) 회로 블록 435, 라디오 주파수(radio frequency, RF) 회로 블록 440, 송신(transmit, TX)/수신(receive, RX) 스위치(switch) 445, 및 안테나(antenna) 495를 포함한다.
일부 실시 예들에서, ROM 405는 부트 루틴(boot routine) 및 다른 정적 데이터(static data)를 저장할 수 있다. RAM 410은 어플리케이션들 412, 프로토콜 스택(protocol stack) 414, 및 본 개시에서 설명되지 않은 운영 체제를 저장할 수 있다. 다른 일부 실시 예들에서, ROM 405 및 RAM 410은 플래시 메모리(flash memory)와 같은 전자적으로 지워질 수 있는 단일 메모리(single electronically erasable memory)를 포함할 수 있다. 상기 전자적으로 지워질 수 있는 단일 메모리는 동적 데이터(dynamic data)를 저장하기 위해 이용되는 일반적인 RAM 메모리와 함께 이용된다. 메모리에서 어플리케이션들 412는 소셜 프레젠스 서버(social presence server)와 상호작용하는 소셜 프레젠스 어플리케이션(즉, RCS(rich communication suite) 프레젠스), 달력 서버와 통신하는 달력 어플리케이션, 소셜 네트워크 서비스(social network service, SNS) 어플리케이션, 및 전자 장치 120이 다른 가입자들에 의해 이용되는 모바일 전화들과 소셜 프레젠스 정보를 교환할 수 있도록 하는 것들을 포함할 수 있다.
메모리에서 어플리케이션 412는 본 개시의 원리들에 따른 브라우저의 강화된 상태 정보를 처리하고 교환하기 위하여 CPU 415의 제어 하에서 실행되는 브라우저 어플리케이션을 포함할 수 있다. 따라서, CPU 415는 송신 장치 210의 브라우저 어플리케이션 215 및 수신 장치 250의 브라우저 어플리케이션 255에 대해 본 개시에서 설명되는 기능들을 수행한다.
전자 장치 120은 SIM(subscriber identification module) 카드(card) 450, USB(universal serial bus) 인터페이스 455, GPS(global positioning system) 수신기 460, 블루투스(Bluetooth) 송수신기 465, WiFi(wireless fidelity) (또는 WLAN(wireless local area network)) 송수신기 470, 스피커(speaker) 및 마이크로폰(microphone) 회로 블록 475, 키보드(keyboard) 480, 디스플레이(display) 485, 및 카메라(camera) 490을 더 포함한다. 일부 실시 예들에서, 키보드 480 및 디스플레이 485는 터치스크린(touch screen) 디스플레이와 함께 구현될 수 있다.
CPU 415는 전자 장치 120의 전반적인 동작을 담당할 수 있다. 일부 실시 예들에서, CPU 415는 어플리케이션 412 및 프로토콜 스택 414를 실행한다. CPU 415는 어플리케이션 레이어(layer)를 실행한다. 다양한 어플리케이션들은 스마트폰에서 실행될 수 있다. 어플리케이션들 412는 오디오(audio), 비디오(video), 브라우저, 및 이미지/그래픽(graphic) 어플리케이션들을 포함할 수 있다. CPU 415는 MP3, MP4, WAV, 및 RM과 같은 다양한 오디오 포맷들을 지원하는 어플리케이션들 412를 실행할 수 있다. CPU 415는 JPEG 이미지 포맷들을 지원하는 어플리케이션들 412 및 비디오 포맷들(예를 들어, MPEG-1 내지 MPEG-5)을 지원하는 어플리케이션들 412를 실행할 수 있다. CPU 415는 Symbian, java, android, RT-Linux, Palm, 및 본 개시에서 설명되지 않는 다양한 운영 체제들을 지원할 수 있다. 시간이 중요한 어플리케이션들에 대해, CPU 415는 실시간 운영 체제(real-time operating system, RTOS)를 실행한다. 물리 계층뿐만 아니라, 프로토콜 스택 414를 포함하는 다른 계층들이 있다. 상기 다른 계층들은 전자 장치 120이 네트워크 기지국과 동작할 수 있도록 한다. 일부 실시 예들에서, 프로토콜 스택 414는 CPU 415에 포트(port)된다.
DAC/ADC 회로 블록 425는 전자 장치 120에서 아날로그 음성 신호들을 디지털 신호들로 변환하고, 디지털 신호들을 아날로그 음성 신호들로 변환한다. 송신 경로에서, 아날로그 음성 신호에서 디지털 신호로 변환된 디지털 신호는 음성 코더(speech coder)에게 송신된다. 시그마 델타 타입(sigma delta type)을 포함하는 ADC들의 다양한 타입들이 이용될 수 있다. 자동 이득 제어(automatic gain control, AGC) 및 자동 주파수 제어(automatic frequency control, AFC)는 이득 및 주파수를 제어하기 위한 수신 경로에서 이용된다. AGC는 DAC 회로들의 동적 범위 내에서 신호들을 유지하여 만족스러운 DAC 성능을 유지하는 것을 돕는다. AFC는 향상된 수신기 성능을 획득하기 위하여 제한 범위 내에서 주파수 오류의 발생을 유지한다.
기저대역 회로 블록 430은 DSP 420의 일부로 구현될 수 있다. 상기 기저 대역 회로 블록 430은 다수의 기저 대역 프로세싱(processing) 기능들(즉, 물리 계층, 계층 1, 또는 L1 기능들)을 실행한다. 기저대역 회로 블록 430은 전자 장치 120의 지연 및 전력 요구사항들을 만족시키기 위하여 DSP 420과 포트될 수 있다. 기저대역 회로 블록 430은 무선 인터페이스를 통해 송신되는 음성 및 데이터를 I/Q(in-phase quadrature) 기저대역 신호들로 변환한다.
기저대역 회로 블록 430은 GSM(global standard for mobile communication), CDMA(code division multiple access), Wimax, LTE(long term evolution), HSPA(high speed packet access)와 같은 다양한 무선 인터페이스 표준들 중 하나를 지원할 수 있다. 기저대역 회로 블록 430은 물리 계층, 계층 1, 또는 L1을 의미할 수 있다. GSM 네트워크에서 동작하는 모바일 전화에 대해, DSP 420에서 실행되는 기저대역 부분(계층 1) 및 CPU 415에서 실행되는 프로토콜 스택 414는 GSM 표준에 기반한다. CDMA 네트워크에서 동작하는 모바일 전화에 대해, 계층 1 및 프로토콜 스택 414는 CDMA 표준에 기반한다. LTE 네트워크에서 동작하는 모바일 전화에 대해, 계층 1 및 프로토콜 스택 414는 LTE 표준에 기반한다. HSPA 네트워크에서 동작하는 모바일 전화에 대해, 계층 1 및 프로토콜 스택 414는 HSPA 표준에 기반한다. 다른 표준 통신 방식을 이용하는 모바일 전화에 대해, 계층 1 및 프로토콜 스택 414는 다른 표준 통신 방식에 기반한다.
음성 또는 오디오 입력들에 대해, 코덱 회로 블록 435는 데이터가 송신되는 프레임(frame)에 대한 데이터 레이트(data rate)를 일치시키기 위해 신호를 압축하고 압축을 해체할 수 있다. 예를 들어, 코덱 회로 블록 435는 8KHz 샘플링 레이트(sampling rate)에서의 음성을 최고 레이트 음성 트래픽 채널(full rate speech traffic channel)에 대해 13kbps 레이트로 변환할 수 있다. 상술한 변환을 하기 위해서, RELP(residually excited linear predictive) 음성 코더는 13kbps 레이트를 획득하기 위하여 260 비트들(bits)을 20 밀리세컨드(20 millisecond)의 지속시간으로 압축할 수 있다.
기저대역 또는 물리 계층은 오류 정정뿐만 아니라 오류 검출을 가능하게 하기 위하여 여분의 비트들을 추가한다. 오류 검출은 (송신 경로에서 이용되는) 컨벌루션 인코더(convolution encoder) 및 (수신 경로에서 이용되는) 비터비 디코더(Viterbi decoder)와 같은 CRC(cyclic redundancy check), 포워드 오류 정정(forward error correction) 기술들에 의해 수행될 수 있다. 인터리빙(interleaving)은 데이터에 대해 수행될 수 있고, 상기 인터리빙은 오류를 분산하는데 도움이 된다. 인터리빙은 수신기가 프레임을 디인터리빙(de-interleave)하고 디코딩(decoding)하는 것을 돕는다.
RF 회로 블록 440은 RF 업컨버터(up-converter) 및 RF 다운컨버터(down-converter)를 포함한다. GSM 시스템에 대해, RF 업컨버터는 원점 중간 주파수(intermediate frequency, IF) 또는 몇몇 중간 주파수에서 모듈화된(modulated) 기저대역 신호들(I 및 Q)을 RF 신호들(890-915 MHz)로 변환한다. RF 다운컨버터는 RF 신호들(935 내지 960MHz)을 기저대역 신호들(I 및 Q)로 변환한다. GSM 시스템에 대해, GMSK(gaussian minimum shift keying) 모듈이 이용된다.
안테나 495는 전자기 신호를 전기 신호로 변환하거나 전기 신호를 전자기 신호로 변환하는 금속성 물체일 수 있다. 일반적으로 이용되는 안테나들은 나선형 타입, 평판형 역 F-타입(planar inverted F-type), 휩(whip) 타입, 또는 패치(patch) 타입을 포함할 수 있다. 마이크로스트립(microstrip) 패치 타입 안테나들은 작은 크기, 인쇄 회로 기판에서 쉬운 통합, 및 동작에 대한 다중 주파수 대역 때문에 모바일 전화들 사이에서 대중적이다. 전자 장치 120에 대한 일부 실시 예들에서, 안테나 495는 WiFi(WLAN), 블루투스 등을 포함하는 근거리 표준들뿐만 아니라, GSM, CDMA, LTE, 및 WiMAX를 포함하는 다양한 광역 표준들을 지원할 수 있다.
안테나 495가 서로 다른 시간 구간들(different times)에서 송신 및 수신 동작 모두를 위해 이용되는 하나의 안테나만을 포함한다면, TX/RX 스위치 445는 서로 다른 시간 구간들에서 TX 경로 및 RX 경로를 안테나 495에게 연결한다. TX/RX 스위치 445는 하향링크 및 상향링크에서 특히 GSM 모바일 전화에 대해 할당된 물리적 슬롯(slot)과 관련하여 GSM 프레임 구조에 기반하여 DSP 420에 의해 자동으로 제어된다. 주파수 분할 듀플렉싱(frequency division duplexing, FDD) 시스템들에 대해, TX/RX 스위치 445는 다양한 주파수 대역들을 분리하는 필터(filter)처럼 동작하는 듀플렉서(duplexer)로 구현될 수 있다.
전자 장치 120은 WiFi(WLAN) 송수신기 470, 블루투스 송수신기 465, 및 USB 인터페이스 455를 이용하는 랩탑들 또는 다른 장치들과의 연결을 제공한다. 또한, 전자 장치 120은 위치 정보를 요구하는 어플리케이션들 412에서 GPS 수신기 460을 이용한다. 전자 장치 120이 일반적인 스마트폰이라면, 어플리케이션들 412는 전자 장치 120에 미리 설치된 다양한 게임들(games), 브라우저, 및 여러 어플리케이션들을 포함할 수 있다.
스피커 및 마이크로폰 회로 블록 475는 음파 에너지(즉, 음성 또는 다른 소리들에 의해 야기되는 공기압의 변화들)를 이후의 과정을 위한 전기 신호들로 변환하는 마이크로폰 회로(또는 마이크(mic))를 포함한다. 스피커 및 마이크로폰 475는 전기적 오디오 신호를 사람이 듣기 위한 가청(audible) 신호(압력의 변화들)로 변환하는 스피커 회로를 더 포함한다. 스피커 회로는 오디오 신호의 필요한 증폭을 얻기 위하여 오디오 증폭기를 포함할 수 있다. 스피커 회로는 오디오 신호의 증폭을 변화(증가 또는 감소)시키기 위하여 음량 제어 회로를 더 포함할 수 있다.
전자 장치 120은 카메라 490을 포함할 수 있다. 최근에 거의 모든 모바일 전화들이 카메라 모듈을 포함한다. 카메라 490은 12 메가픽셀(megapixel), 14 메가픽셀, 또는 41 메가픽셀 카메라를 포함할 수 있다.
예를 들어, 디스플레이 485는 LCD(liquid crystal display), TFT(thin-film transistor) 디스플레이, 및 OLED(organic light emitting diode) 디스플레이, TFD(thin-film diode) 디스플레이, 또는 용량성(capacitive) 및 저항성(resistive) 타입의 터치스크린을 포함할 수 있다.
일부 실시 예들에서, 키보드 480은 숫자들(0 내지 9), 알파벳(alphabetic) 문자들(A 내지 Z), 특수 문자들, 및 특정 기능 키들(keys)을 포함할 수 있다. 스마트폰 실행에 대한 다른 일부 실시 예들에서, 키보드 480은 모바일 전화 소프트웨어에서 구현될 수 있다. 키보드 480은 디스플레이 485에 나타나고, 손가락 터치를 이용하는 사용자에 의해 동작된다.
도 5a 및 5b, 도 6, 및 도 7에서, 상기 방법들은 고정된 위치의 텍스트 노드들은 무시하면서, 송신 장치 210의 웹페이지로부터 콘텍스트 텍스트를 검출하고, 송신 장치 210의 뷰포트에 기반하여 HitTestResults를 획득하며, HitTestResults 내의 텍스트 노드들을 스캔한다. 상기 방법들은 텍스트 노드들 각각의 InlineTextBoxes을 통해 텍스트를 스캔한다. 상기 방법들은 모든 HitTestResults 중 뷰포트의 좌측 상단 모서리와 가장 가까운 텍스트 노드를 결정한다. 우측 상단과 가까운 노드들에게 몇몇 이점을 주는 거리 함수는 10*Y+X이다. 상기 검출된 타겟 텍스트에 기반하여, 상기 방법은 후보군 문단으로서 첫 번째 긴 문단을 결정한다. 후보군 문단에서 첫 번째 InlineTextBox로부터 시작하는 상기 방법들은 충분히 긴 텍스트를 포함하는 문장들을 검출하고, 마지막 콘텍스트 텍스트로서 상기 문장들을 이용한다.
웹페이지가 대부분 이미지들로 구성되는 경우, 상기 방법들은 고정된 위치의 이미지들은 무시하면서, 뷰포트에 기반하여 HitTestResults를 획득하고, HitTestResults 내의 이미지 구성 요소들을 통하여 이미지를 스캔한다. 상기 방법들은 뷰포트의 좌측 상단 모서리와 가장 가까운 이미지 구성 요소를 결정한다. 우측 상단과 가까운 노드들에게 몇몇 이점을 주는 거리 함수는 10*Y+X일 수 있다. 상기 방법들은 마지막 콘텍스트 텍스트로서 이미지의 소스 URL을 이용한다.
도 5a 및 5b, 도 6, 및 도 7에서, 상기 방법들은 수신 장치 250이 스크롤 위치를 복원할 때, 텍스트 탐색 및 좌표 조정들의 결합을 이용한다. 오리지날 스크롤의 위치가 0이라면, 텍스트를 탐색하는 것은 요구되지 않는다. 상기 오리지날 스크롤의 위치가 0이 아니라면, 상기 방법들은 오리지날 텍스트 소스에 기반하여 이미지들의 소스 URL들 또는 웹 컨텐츠에서 텍스트를 탐색한다. 텍스트 매치(text match)는 정확한 매치(exact match) 또는 특정 정도의 유사 매치(a degree of similarity match)에 기반할 수 있다. 또한, 상기 방법들은 상기 뷰포트에 대하여 오리지날 텍스트의 위치에 기반하여 추가적인 조정을 수행한다.
도 5a 및 5b는 일 실시 예에 따른 송신 장치 210에서 브라우저 어플리케이션 215에 의한 브라우저에 대한 상태 정보의 수집과 송신을 나타내는 흐름도이다.
도 5a를 참고하면, 먼저 송신 장치 210의 브라우저 어플리케이션 215는 브라우저 화면의 뷰포트에서 노드들을 식별한다. 다음에 505 단계에서, 상기 노드들은 상기 뷰포트에 기반하여 레코드 HitTestResults(record HitTestResults) 내에 저장된다.
510 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 HitTestResults 내의 노드들 각각을 검사한다. 515 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 노드가 텍스트 노드인지 여부를 결정한다. 상기 노드가 텍스트 노드가 아니라면, 510 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 HitTestResults 내의 다음 노드를 검사한다. 상기 노드가 텍스트 노드라면, 520 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 텍스트 노드가 고정된 위치를 갖는지 여부를 결정한다. 상기 텍스트 노드가 고정된 위치를 갖는다면, 510 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 다음 노드를 검사한다. 상기 텍스트 노드가 고정된 위치를 갖지 않는다면, 525 단계에서 송신 장치 210의 브라우저 어플리케이션 215는, 상기 노드에서의 인라인 텍스트 상자 각각에 대해, 상기 뷰포트의 좌측 상단과 가장 가까운 인라인 텍스트 상자를 결정한다.
530 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 상기 노드가 검사할 마지막 노드인지 또는 상기 뷰포트의 좌측 상단과 가장 가까운 인라인 텍스트 상자인지 여부를 결정한다. 상기 노드가 검사할 마지막 노드가 아니거나 상기 뷰포트의 좌측 상단과 가장 가까운 인라인 텍스트 상자가 아니라면, 510 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 HitTestResults 내의 다음 노드를 검사한다. 상기 노드가 검사할 마지막 노드이거나 상기 뷰포트의 좌측 상단과 가장 가까운 인라인 텍스트 상자라면, 송신 장치 210의 브라우저 어플리케이션 215는 도 5a의 탐색 루프를 종료하고, 도 5b의 535 단계를 수행한다.
도 5b를 참고하면, 535 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 상기 인라인 텍스트 상자를 포함하는 문단을 선택한다. 540 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 상기 선택된 문단에서 상기 텍스트가 충분히 긴(long)지 여부를 결정한다. 상기 텍스트가 충분히 길지 않다면, 545 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 다음 문단을 선택하고, 다시 540 단계를 수행한다. 상기 텍스트가 충분히 길다면, 550 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 선택된 첫 번째 테스트(test) 노드의 첫 번째 인라인 텍스트 상자를 타겟 텍스트(target text) 및 타겟 콘텍스트 텍스트(target context text)로 이용한다.
555 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 상기 콘텍스트 텍스트가 충분히 긴지 여부를 결정한다. 상기 콘텍스트 텍스트가 충분히 길지 않다면, 560 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 타겟 콘텍스트 텍스트를 다음 문장으로 확장하고, 다시 555 단계를 수행한다.
상기 콘텍스트 텍스트가 충분히 길다면, 565 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 송신 장치 210의 브라우저 어플리케이션 215가 상기 타겟 콘텍스트 텍스트, 상기 타겟 텍스트, 및 상기 타겟 텍스트의 위치를 결정할 수 있다. 이는 수신 장치 250의 브라우저 어플리케이션 255에게 송신되는 브라우저의 강화된 상태 정보의 일부이다.
도 5a 및 5b를 참고하여 설명한 실시 예에서, 각 단계의 수행 주체는 송신 장치 210의 브라우저 어플리케이션 215로 설명되었다. 브라우저 어플리케이션 215는 논리적 주체로서 예시된 것이며, 하드웨어적 관점에 의하면, 도 5a 및 5b에 도시된 절차는 송신 장치 210에 의해 수행되는 것으로 이해될 수 있다.
도 6은 일 실시 예에 따른 송신 장치 210에서 브라우저 어플리케이션 215에 의한 브라우저에 대한 다른 상태 정보의 수집과 송신을 나타내는 흐름도이다.
도 6을 참고하면, 먼저 송신 장치 210의 브라우저 어플리케이션 215는 브라우저 화면의 뷰포트에서 노드들을 식별한다. 다음에 605 단계에서, 상기 노드들은 상기 뷰포트에 기반하여 레코드 HitTestResults 내에 저장된다.
610 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 HitTestResults 내의 노드들 각각을 검사한다. 615 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 노드가 이미지 구성요소인지 여부를 결정한다. 상기 노드가 이미지 구성요소가 아니라면, 610 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 HitTestResults 내의 다음 노드를 검사한다. 상기 노드가 이미지 구성요소라면, 620 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 이미지 구성요소가 고정된 위치를 갖는지 여부를 결정한다. 상기 이미지 구성요소가 고정된 위치를 갖는다면, 610 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 다음 노드를 검사한다. 상기 이미지 구성요소가 고정된 위치를 갖지 않는다면, 625 단계에서 송신 장치 210의 브라우저 어플리케이션 215는 상기 뷰포트의 좌측 상단과 가장 가까운 이미지 구성요소를 결정한다. 630 단계에서, 송신 장치 210의 브라우저 어플리케이션 215는 탐색 루프를 종료하고, 이미지 소스 URL 및 상기 이미지 구성요소의 위치에 대응하는 타겟 텍스트를 검출하였음을 결정한다.
도 6을 참고하여 설명한 실시 예에서, 각 단계의 수행 주체는 송신 장치 210의 브라우저 어플리케이션 215로 설명되었다. 브라우저 어플리케이션 215는 논리적 주체로서 예시된 것이며, 하드웨어적 관점에 의하면, 도 6에 도시된 절차는 송신 장치 210에 의해 수행되는 것으로 이해될 수 있다.
도 7은 일 실시 예에 따른 수신 장치 250에서 브라우저 어플리케이션 255에 의한 브라우저에 대한 상태 정보의 수신과 처리를 나타내는 흐름도이다.
도 7을 참고하면, 705 단계에서, 수신 장치 250의 브라우저 어플리케이션 255는 상기 <표 1>에서의 데이터 필드 scrollViewPosition이 0인지 여부를 결정한다. 상기 데이터 필드 scrollViewPosition이 0이 아니라면, 710 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 상기 <표 1>에서의 데이터 필드 isImage가 TRUE인지 여부를 결정한다.
상기 데이터 필드 isImage가 TRUE라면, 720 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 상기 문서(예: 웹페이지) 내의 이미지 구성요소 각각을 검사한다. 725 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 소스 URL이 상기 <표 1>에서의 데이터 필드 scrollToText인지 여부를 결정한다. 상기 소스 URL이 상기 <표 1>에서의 데이터 필드 scrollToText가 아니라면, 수신 장치 250의 브라우저 어플리케이션 255는 다시 720 단계를 수행한다. 상기 소스 URL이 상기 데이터 필드 scrollToText라면, 730 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 상기 <표 1>에서의 데이터 필드 scrollToTextPositionInView의 값에 의해 오프셋들 및 이미지 구성요소로 웹페이지를 스크롤한다.
상기 데이터 필드 isImage가 TRUE가 아니라면, 740 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 상기 <표 1>에서의 데이터 필드 scrollToContexText의 값을 결정한다. 예를 들어, 수신 장치 250의 브라우저 어플리케이션 255는 데이터 필드 rangeOfString( )의 값을 이용하여 상기 <표 1>에서의 데이터 필드 scrollToContexText의 값을 결정할 수 있다. 745 단계에서 다음 문단이 선택되지 않는다면, 수신 장치 250의 브라우저 어플리케이션 255는 프로세스를 종료한다. 다음 문단이 선택되면, 750 단계에서 수신 장치 250의 브라우저 어플리케이션 255는 데이터 필드 scrollToTextPositionInView의 값에 의해 오프셋들 및 상기 선택된 문단으로 웹페이지를 스크롤한다.
도 7을 참고하여 설명한 실시 예에서, 각 단계의 수행 주체는 수신 장치 250의 브라우저 어플리케이션 255로 설명되었다. 브라우저 어플리케이션 255는 논리적 주체로서 예시된 것이며, 하드웨어적 관점에 의하면, 도 7에 도시된 절차는 송신 장치 250에 의해 수행되는 것으로 이해될 수 있다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 RAM, 플래시 메모리를 포함하는 불휘발성(non-volatile) 메모리, ROM, 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다.
또한, 상기 프로그램은 인터넷, 인트라넷(intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (14)

  1. 전자 장치에 있어서,
    웹 페이지를 나타내는 브라우저 애플리케이션을 저장하도록 구성된 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는,
    상기 브라우저 애플리케이션을 실행하고 웹 페이지의 뷰 포트를 디스플레이 하고,
    상기 웹 페이지에서 상기 뷰 포트와 관련된 스크롤의 위치 정보를 수집하고, 컨텐츠 아이템이 텍스트 아이템인지 또는 이미지 요소인지 여부 및 상기 컨텐츠 아이템이 상기 뷰 포트 내 고정된 위치를 갖는지 여부를 식별하고, 상기 식별된 컨텐츠 아이템은 상기 스크롤의 좌표 기반 위치 정보에 대응하는 상기 웹 페이지의 상기 뷰 포트의 미리 결정된 포인트에 가장 가까운 컨텐츠 아이템이고,
    상기 식별된 컨텐츠 아이템이 상기 고정된 위치를 갖지 않는 텍스트 아이템인 경우, 상기 수집된 위치 정보는 상기 스크롤의 상기 좌표 기반 위치 정보 및 상기 텍스트 아이템의 대응하는 텍스트 컨텐츠를 포함하고,
    상기 식별된 컨텐츠 아이템이 상기 고정된 위치를 갖지 않는 이미지 요소인 경우, 상기 수집된 위치 정보는 상기 스크롤의 상기 좌표 기반 위치 정보 및 상기 이미지 요소의 소스 URL(uniform resource locator)의 텍스트를 포함하고,
    상기 브라우저 애플리케이션의 상태 정보를 식별하고, 상기 상태 정보를 다른 전자 장치에게 전송하도록 구성되고,
    상기 상태 정보는 상기 웹 페이지의 URL, 상기 URL의 쿠키 데이터, 상기 웹 페이지의 상기 뷰 포트와 관련된 상기 스크롤의 상기 수집된 위치 정보를 포함하는,
    전자 장치.
  2. 제1항에 있어서,
    상기 상태 정보는 폼 데이터(form data)를 더 포함하는,
    전자 장치.
  3. 제1항에 있어서,
    상기 텍스트 아이템은 인라인 텍스트 상자(in-line text box) 내의 텍스트인,
    전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    문자 메시지를 이용하여 상기 상태 정보를 상기 다른 전자 장치에게 전송하도록 더 구성된,
    전자 장치.
  5. 전자 장치의 동작 방법에 있어서, 상기 전자 장치는 웹 페이지를 나타내는 브라우저 애플리케이션을 저장하도록 구성된 메모리, 및 상기 브라우저 애플리케이션을 실행하고 웹 페이지의 뷰 포트를 디스플레이 하도록 구성된 프로세서를 포함하고,
    상기 웹 페이지에서 상기 뷰 포트와 관련된 스크롤의 위치 정보를 수집하는 과정과, 컨텐츠 아이템이 텍스트 아이템인지 또는 이미지 요소인지 여부 및 상기 컨텐츠 아이템이 상기 뷰 포트 내 고정된 위치를 갖는지 여부를 식별하는 과정과, 상기 식별된 컨텐츠 아이템은 상기 스크롤의 좌표 기반 위치 정보에 대응하는 상기 웹 페이지의 상기 뷰 포트의 미리 결정된 포인트에 가장 가까운 컨텐츠 아이템이고,
    상기 식별된 컨텐츠 아이템이 상기 고정된 위치를 갖지 않는 텍스트 아이템인 경우, 상기 수집된 위치 정보는 상기 스크롤의 상기 좌표 기반 위치 정보 및 상기 텍스트 아이템의 대응하는 텍스트 컨텐츠를 포함하고,
    상기 식별된 컨텐츠 아이템이 상기 고정된 위치를 갖지 않는 이미지 요소인 경우, 상기 수집된 위치 정보는 상기 스크롤의 상기 좌표 기반 위치 정보 및 상기 이미지 요소의 소스 URL(uniform resource locator)의 텍스트를 포함하고,
    상기 브라우저 애플리케이션의 상태 정보를 식별하는 과정과, 상기 상태 정보를 다른 전자 장치에게 전송하는 과정을 포함하고,
    상기 상태 정보는 상기 웹 페이지의 URL, 상기 URL의 쿠키 데이터, 상기 웹 페이지의 상기 뷰 포트와 관련된 상기 스크롤의 상기 수집된 위치 정보를 포함하는,
    방법.
  6. 제5항에 있어서,
    상기 상태 정보는 폼 데이터(form data)를 더 포함하는,
    방법.
  7. 제6항에 있어서,
    상기 텍스트 아이템은 인라인 텍스트 상자(in-line text box) 내의 텍스트인,
    방법.
  8. 제5항에 있어서,
    상기 프로세서는,
    문자 메시지를 이용하여 상기 상태 정보를 상기 다른 전자 장치에게 전송하는 과정을 더 포함하는,
    방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
KR1020160062195A 2015-12-14 2016-05-20 전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법 KR102507535B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16183539.2A EP3182302B1 (en) 2015-12-14 2016-08-10 Apparatus and method for sharing state information of web browser in electronic device
CN201610895627.7A CN107103015B (zh) 2015-12-14 2016-10-13 在电子设备中共享网络浏览器的状态信息的装置和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/968,624 2015-12-14
US14/968,624 US10447758B2 (en) 2015-12-14 2015-12-14 System and method for sharing web browser state information between user devices

Publications (2)

Publication Number Publication Date
KR20170070782A KR20170070782A (ko) 2017-06-22
KR102507535B1 true KR102507535B1 (ko) 2023-03-08

Family

ID=59020349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160062195A KR102507535B1 (ko) 2015-12-14 2016-05-20 전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US10447758B2 (ko)
KR (1) KR102507535B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10126927B1 (en) * 2013-03-15 2018-11-13 Study Social, Inc. Collaborative, social online education and whiteboard techniques
US11899757B2 (en) * 2019-12-02 2024-02-13 Cox Automotive, Inc. Systems and methods for temporary digital content sharing
US11044279B1 (en) 2019-12-19 2021-06-22 Capital One Services, Llc Systems and methods for secure browser session transfer
JP2022012403A (ja) * 2020-07-01 2022-01-17 キヤノン株式会社 プログラム、情報処理装置及び制御方法
US11880425B2 (en) 2021-04-02 2024-01-23 Content Square SAS System and method for identifying and correcting webpage zone target misidentifications

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198941A1 (en) 2001-04-16 2002-12-26 Alexandru Gavrilescu Web site cobrowsing
US20150046832A1 (en) 2013-08-06 2015-02-12 Adobe Systems Incorporated Sharing and consuming web content across multiple devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867156A (en) * 1995-11-08 1999-02-02 Intel Corporation Automatic viewport display synchronization during application sharing
US7747782B2 (en) 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
JP3852742B2 (ja) * 2000-11-02 2006-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、端末装置、情報処理方法および記憶媒体
US20030061286A1 (en) * 2001-09-27 2003-03-27 Lin Jin Kun Co-browsing system including form and focal-point synchronization capabilities for both secure and non-secure web documents
US7693832B2 (en) * 2006-02-28 2010-04-06 Microsoft Corporation Rich set of synchronization rules across multiple accounts with multiple folder and consent types
GB2462563A (en) * 2007-06-28 2010-02-17 Taptu Ltd Sharing mobile search results
US8015496B1 (en) * 2007-10-26 2011-09-06 Sesh, Inc. System and method for facilitating visual social communication through co-browsing
KR101542520B1 (ko) * 2009-01-13 2015-08-07 삼성전자주식회사 통신 망에서 프리젠스 서비스를 통한 정보 공유 장치 및 방법
US20110022945A1 (en) 2009-07-24 2011-01-27 Nokia Corporation Method and apparatus of browsing modeling
KR101990450B1 (ko) * 2012-03-08 2019-06-18 삼성전자주식회사 웹 페이지 상에서 본문 추출을 위한 방법 및 장치
WO2014081727A1 (en) * 2012-11-20 2014-05-30 Denninghoff Karl L Search and navigation to specific document content
ES2550816T3 (es) * 2013-04-15 2015-11-12 Himmelsbach Computer Gmbh Procedimiento y sistema para la sincronización de máscaras de programa
WO2015017738A2 (en) * 2013-07-31 2015-02-05 Been, Inc. Synchronized web-browsing
US9792266B1 (en) * 2014-12-08 2017-10-17 Amazon Technologies, Inc. Content synchronization across devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198941A1 (en) 2001-04-16 2002-12-26 Alexandru Gavrilescu Web site cobrowsing
US20150046832A1 (en) 2013-08-06 2015-02-12 Adobe Systems Incorporated Sharing and consuming web content across multiple devices

Also Published As

Publication number Publication date
KR20170070782A (ko) 2017-06-22
US20170171285A1 (en) 2017-06-15
US10447758B2 (en) 2019-10-15

Similar Documents

Publication Publication Date Title
KR102507535B1 (ko) 전자 장치에서 웹 브라우저의 상태 정보를 공유하기 위한 장치 및 방법
US20170302990A1 (en) Method, terminal, and system for processing data of video stream
US10191728B2 (en) System and method to reduce storage area usage of android application
CN108540193B (zh) 支持使用多频带的设备到设备通信的前端模块及电子设备
WO2018068483A1 (zh) 一种终端设备的搜网显示的方法、装置和终端设备
CN105653729A (zh) 一种录音文件索引的装置及方法
EP3376797B1 (en) Method for searching for network and terminal
US20140317483A1 (en) Method and terminal for adding quick link
CN105722059A (zh) 一种移动终端及双调制解调器系统的通信方法
CN106547439B (zh) 一种处理消息的方法和装置
US10148737B2 (en) System and method for managing applications as IoT objects
KR20130097806A (ko) Ⅰp 멀티미디어 서브시스템을 위한 카드 툴킷 지원
US20170147188A1 (en) Apparatus and Method for Rotating 3D Objects on a Mobile Device Screen
US9344921B2 (en) Apparatus and method for supporting communication network in portable terminal
CN110583054B (zh) 同步信号块的定时方法及用户设备和网络设备
CN105141979A (zh) 视频字幕匹配装置、系统及方法
EP3182302B1 (en) Apparatus and method for sharing state information of web browser in electronic device
EP3121783A1 (en) Apparatus and method for distributing social presence information based on calendar events
US8453154B2 (en) System and method for managing memory resource(s) of a wireless handheld computing device
CN106909395B (zh) 一种界面调用方法及终端
US9015293B2 (en) Method and apparatus for configuring ping interval in a portable terminal
KR20120017333A (ko) 이동 단말기 및 그의 모션 인식방법
CN105117221A (zh) 基于网页的语言数据写入方法和装置
US9374762B2 (en) Electronic device and wireless communication method utilizing geolocation service provider
US20170149903A1 (en) System and Method for Sharing Data/Objects Between Electronic Devices Via IMS Infrastructure

Legal Events

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