KR20110058744A - 전자 문서를 트랜스코딩하고 디스플레이하는 방법, 시스템 및 장치 - Google Patents

전자 문서를 트랜스코딩하고 디스플레이하는 방법, 시스템 및 장치 Download PDF

Info

Publication number
KR20110058744A
KR20110058744A KR1020107028602A KR20107028602A KR20110058744A KR 20110058744 A KR20110058744 A KR 20110058744A KR 1020107028602 A KR1020107028602 A KR 1020107028602A KR 20107028602 A KR20107028602 A KR 20107028602A KR 20110058744 A KR20110058744 A KR 20110058744A
Authority
KR
South Korea
Prior art keywords
document
layout
markup language
display
block
Prior art date
Application number
KR1020107028602A
Other languages
English (en)
Inventor
페르 헤드보어
요한 쇤
Original Assignee
오페라 소프트웨어 에이에스에이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오페라 소프트웨어 에이에스에이 filed Critical 오페라 소프트웨어 에이에스에이
Publication of KR20110058744A publication Critical patent/KR20110058744A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents

Abstract

구성요소의 구조화된 리스트를 포함하는 수신된 마크업 언어 문서는, 문서의 구조를 분석하는 단계, 문서의 레이아웃의 가상 렌더링을 생성하는 단계 및 가상 렌더링으로부터 각각이 적어도 하나의 구성요소를 함유하는 하나 이상의 사각형을 식별하는 단계를 포함하는 방법에 의해 트랜스코딩된다. 마크업 언어 문서를 나타내는 데이터가 생성되는데, 사각형 및 레이아웃 내에서 그 위치의 리스트를 포함한다. 트랜스코딩된 문서는 생성된 데이터를 수신하는 장치에서 표시될 수 있다. 문서 내 위치 혹은 방향이 선택되면, 그 장치는 위치 혹은 방향에 기초하여 적어도 하나의 사각형을 선택하도록 문서의 레이아웃을 분석할 수 있다. 그 후 장치는 식별된 사각형이 디스플레이 상에 미리 정의된 위치로 정해지도록 선택된 문서의 적어도 일부분을 표시할 수 있다.

Description

전자 문서를 트랜스코딩하고 디스플레이하는 방법, 시스템 및 장치{METHODS, SYSTEMS AND DEVICES FOR TRANSCODING AND DISPLAYING ELECTRONIC DOCUMENTS}
본 발명은 장치의 디스플레이에 전자 문서(electronic document)를 표시하는 것을 가능하게 하기 위한 전자 문서의 트랜스코딩(transcoding)에 관한 것이다. 특히 본 발명은 문서 내에 구성요소 블록(element block)을 식별하고 문서의 트랜스코딩된 버전에서 식별된 블록 및 그 위치의 리스트를 포함하는 방법에 관한 것이다.
웹페이지와 같은 전자 문서는 많은 경우에 표준 사이즈의 디스플레이를 가진 정규 데스크탑 컴퓨터에서 표시되도록 설계된다. 그러한 문서가 예를 들어 핸드헬드 장치, 모바일 폰, 텔레비전 세트 혹은 게임 콘솔과 같은 타 장치에서 표시될 때, 디스플레이의 사이즈 및 레이아웃이 사용자에게 편안한 방식으로 문서를 렌더링하지 못할 수 있다. 상대적으로 낮은 해상도를 가지는 작은 디스플레이에서는, 단지 문서의 작은 일부분만이 장치의 뷰포트(viewport) 내에 보여질 수 있도록 문서가 표시될 수 있다. 디스플레이 밖에 있는 문서의 일부분을 보기 위해서 사용자는 수평 및 수직으로 스크롤해야 한다. 이러한 스크롤링 동작(scrolling operation)은 보통 사용자에게 불편한데, 이는 특히 해당 장치의 사용자 입력 인터페이스가 문서의 정확한 스크롤링을 위해서 설계되어 있지는 않기 때문이다.
이 문제의 대표적인 해결책은 이미지 사이즈를 줄이거나, 문서의 레이아웃을 변경함으로써 세로단(column)의 수를 감소시키거나, 색상, 콘트라스트, 밝기 및 폰트 사이즈를 변경하는 것과 같이 문서의 일부분을 리사이즈하거나 이동시키는 것이었다. 이러한 접근은 문서 저자가 의도한대로 문서가 표시되지 않고, 문서의 레이아웃 내에 내재하는 정보가 손실될 수 있다는 문제점을 가지고 있다.
본 발명에 따르면, 장치 상에 표시되기 전에 문서의 식별된 구성요소 및 문서 내에서의 그 위치의 리스트를 문서 내에 포함하는 방법이 제공된다. 본 발명의 제1 측면에 따르면, 트랜스코딩 서버는 원본 문서를 수신하고, 본 발명의 원리에 부합하는 방법을 수행하며, 표시될 요청 장치(requesting device)로 트랜스코딩된 문서를 포워딩할 수 있다.
본 발명의 제2 측면에 따르면, 장치는 트랜스코딩된 문서를 표시하는 방법을 수행하고 구성요소들의 리스트된 위치에 상응하여 문서의 일부분을 선택하고 표시하도록 구현될 수 있다.
본 발명의 상세한 내용은 첨부된 청구항에서 정의되며, 예시적인 실시예가 도면을 참조하여 이하 제시된다.
도 1은 컴퓨팅 장치의 기본 구성요소를 나타낸 도면;
도 2는 웹 브라우저와 같은 사용자 에이전트의 기본 아키텍처를 나타낸 도면;
도 3은 웹 페이지의 일례를 나타낸 도면;
도 4는 도 3의 웹 페이지의 레이아웃이 어떻게 조직될 수 있는지를 나타낸 도면;
도 5는 트랜스코딩 서버를 나타낸 블록 다이어그램;
도 6은 문서를 트랜스코딩하는 방법의 일례를 나타낸 순서도;
도 7은 본 발명에 따른 코딩되거나 트랜스코딩된 문서를 표시하도록 구현된 사용자 에이전트를 나타낸 블록 다이어그램;
도 8은 본 발명에 따른 코딩되거나 트랜스코딩된 문서를 표시하는 방법을 나타낸 순서도.
본 발명은 이제 첨부된 도면을 참조하여 보다 상세히 설명될 것이다. 본 발명은 많은 다른 형태로 구현될 수 있으며, 여기에서 제시하는 실시예에 한정되는 것으로 해석되지 않아야 한다. 오히려 이 실시예들은 해당 기술분야의 기술자에게 본 발명에 대한 완전한 이해를 제공하기 위한 예시로서 제공된다.
특히 예시들이 인터넷과 월드와이드웹(World Wide Web) 상에서 콘텐츠를 생성, 포맷, 전달 및 표시하기 위한 특정 표준 및 포맷을 언급하고 있지만, 본 발명은 여기에 언급된 특정 표준에 한정되는 것으로 해석되지 않아야 함이 이해되어야 할 것이다.
도 1은 본 발명의 다양한 측면을 시행하기 위한 환경으로서 이용될 수 있는 일반 컴퓨팅 장치(100)를 설명하고 있다. 도면에 도시된 다양한 구성요소들은 트랜스코딩된 문서를 표시하는 장치에서뿐만 아니라 문서의 트랜스코딩을 수행하는 서버에서 구현될 수 있지만, 다른 타입의 장치에서는 다양한 컴포넌트(component)가 사이즈, 성능 및 능력 면에서 달라질 수 있음이 해당 기술분야의 통상의 기술자에 의해 인식될 것이다.
도 1에서, 장치(100)는 중앙처리장치(CPU)(101), 메모리(102), 통신 포트(들) 혹은 입출력 포트들(이하 'I/O'라 칭함)(103), 비디오 인터페이스(104) 및 네트워크 인터페이스(105)를 포함한다. 이 유닛들은 시스템 버스(106)를 경유하여 서로 간에 통신한다.
ROM, RAM, 플래시 메모리, 하드 드라이브, 혹은 고정식 및 탈착식 메모리의 그 밖의 조합을 포함할 수 있는 메모리는 기본 입출력 시스템(BIOS)(141), 운영체제(operating system)(142), 어플리케이션과 장치 드라이버, 다양한 타입의 데이터(144)를 포함하는 다양한 컴퓨터 프로그램(143), 및 매크로 및 스크립트(145)와 같은 타 실행 파일(executable file)이나 인스트럭션(instruction)과 같이 시스템의 다양한 소프트웨어 컴포넌트들(software components)을 저장한다.
I/O 포트(103)는 키보드, 마우스, 혹은 리모트 컨트롤러와 같은 사용자 입력 장치와, 프린터와, 미디어 플레이어와, 외부 메모리 장치와, 그리고 예를 들어 GPS(global positioning system) 수신기 혹은 텔레비전 셋탑박스와 같은 특수 용도 장치와 같은 하나 이상의 로컬 장치(110)에 연결될 수 있다. I/O 포트(103)는 USB, PS/2, RS-232, 적외선(IR), 블루투스, 프린터 포트, 혹은 로컬 장치를 위한 그 밖의 표준화된 혹은 전용의 통신 인터페이스와 같은 포트의 조합일 수 있다.
비디오 인터페이스 장치(104)는 외부 모니터 혹은 LCD 디스플레이와 같은 통합 디스플레이(integrated display)일 수 있는 디스플레이 유닛(120)에 연결된다. 디스플레이 유닛(120)은 터치 감응 스크린을 가질 수 있으며, 이 경우 디스플레이 유닛은 사용자 입력 장치의 역할도 겸할 수 있다. 디스플레이 유닛의 사용자 입력 장치적인 측면은 통신 포트(103)를 통해 통신하는 로컬 장치(110) 중 하나로서 고려될 수 있다.
네트워크 인터페이스 장치(105)는 원격 장치(130)와 통신하기 위해 네트워크에 연결하는 능력을 장치(100)에 제공한다. 도 1에서 단지 네트워크 인터페이스(105)를 원격 장치(130)에 연결하는 라인으로서 도시된 통신 네트워크는 예를 들어 로컬 영역 네트워크(local area network) 혹은 인터넷일 수 있다. 원격 장치는 원칙적으로 장치(100)와 유사한 통신 능력(communication capabilities)을 가지는 임의의 컴퓨팅 장치일 수 있지만, 전형적으로는 서버나 네트워크 서비스를 제공하는 일부 다른 유닛일 수도 있다. 통신 네트워크가 임의의 공중 액세스 가능한 네트워크이거나, 혹은 인터넷, GSM과 같은 셀룰러 모바일 네트워크, 공중전화 네트워크, 케이블 네트워크, 혹은 아날로그 또는 디지털 방송 혹은 위성을 포함하는 네트워크의 조합일 수 있음은 해당 기술분야의 통상의 기술자에 의해 이해될 것이다.
도 1에 도시된 장치(100)는 사이즈(size) 혹은 리소스(resources)에 관하여 특정 구현이나 실시예에 제한되지 않음이 이해될 것이다. 도시된 다양한 컴포넌트들은 장치(100)의 하나 이상의 통합된 유닛으로 구현되거나 몇 개의 유닛으로 구분될 수 있다. 물론 다른 유닛이나 능력도 존재할 수 있다. 더구나 장치(100)는 예를 들어 서버(server)이거나 PC, PDA(personal digital assistant), 셀폰 혹은 스마트폰, 혹은 게임 콘솔이나 텔레비전 셋탑박스나 미디어 센터와 같은 다용도 컴퓨터일 수 있다.
본 발명의 다양한 측면은 사용자 에이전트(user agent)나 브라우저(browser)의 일부분을 구성하는 컴포넌트 및/또는 기능(functionality)으로 구현될 수 있으며, 장치(100)에 어플리케이션(application)으로 설치될(installed) 수도 있다. 도 2는 이러한 사용자 에이전트에 존재할 수 있는 많은 모듈의 예시를 보여준다. 모듈은 전형적으로 CPU(101)에 의해 실행될 수 있는 소프트웨어 모듈이거나 소프트웨어의 일부 다른 구현일 것이다.
사용자 에이전트(200)는 사용자에게 도 1에 도시된 디스플레이 유닛(120) 상에서 표시될 수 있는 사용자 인터페이스(user interface)(201)를 제공한다. 사용자 인터페이스는 사용자가 입력장치를 사용하여 사용자 에이전트(200)로 검색하기 윈하는 문서 혹은 서비스의 URI를 입력할 수 있는 주소 필드(address field)(202)를 포함할 수 있다. 또한 주소 필드(202)는 마우스, 스크롤링 장치 혹은 표시된 아이템을 선택하기 위한 기타 수단과 같은 포인팅 장치를 사용하는 사용자에 의해 활성화될 수 있는 표시된 링크일 수 있다. 그 대신에 URI는 사용자 에이전트에 의해 이미 로드된 문서 혹은 스크립트의 코드 내에 특정되어 있을 수 있다.
어느 경우이든 URI는 사용자 에이전트(200)에 연관되거나 그 일부분인 사용자 인터페이스의 입력 부분을 나타내는 윈도우 및 입력 매니저(window and input manager)(203)에 의해 수신될 수 있다. 그 후 URI는 URI에 의해 식별된 문서의 일부분으로서 수신된 데이터를 관리하는 문서 매니저(document manager)(204)로 포워딩될 수 있다.
문서 매니저(204)는 통신 모듈(communication module)(206)이 식별된 리소스에 대한 액세스를 다시 요청하도록 지시하는 URI 매니저(URI manager)(205)로 URI를 포워딩한다. 통신 모둘(206)은 하이퍼텍스트 전송 프로토콜(HTTP) 혹은 HTTPS나 FTP 같은 타 프로토콜을 이용하는 네트워크를 통해 서버와 같은 원격 장치(remote device)(130)로부터 데이터를 액세스하고 검색할 수 있다. 통신 모듈은 로컬 메모리(local memory)(102)에 저장된 데이터를 액세스할 수도 있다.
예를 들어 URI를 액세스하기 위해 사용되는 프로토콜에 의해 특정되는 것과 같이 장치(100) 외부의 통신이 암호화될 것을 요청받으면, 암호화/복호화 모듈(encryption/decryption module)(207)은 URI 매니저(205) 및 통신 모듈(206) 사이의 통신을 다룬다(handle).
요청에 대한 응답으로 통신 유닛(206)에 의해 수신된 데이터는 URI 매니저(205)로 포워딩된다. 그 후 URI 매니저는 문서 및 이미지 캐시(document and image cache)(209)를 관리하는 캐시 매니저(cache manager)(208)를 이용하여 로컬 메모리(102) 내에 수신된 콘텐츠의 사본을 저장할 수 있다. 이후에 동일한 URI가 요청된다면, URI 매니저(205)는 캐시 매니저(208)로부터 그것을 요청할 수 있으며, 캐시된 사본이 삭제되지 않았다면 캐시(209)로부터 데이터를 검색하고 URI 매니저(205)에게 그것을 포워딩할 것이다. 이 경우 동일한 URI가 두번째 요청될 때 다시 원격 장치(130)로부터 데이터를 검색할 필요가 없을 것이다.
URI 매니저(205)는 HTML, XML 및 CSS와 같은 콘텐츠를 파싱(parsing)할 수 있는 파서(parser)(210)로 수신된 데이터를 포워딩한다. 그 후 콘텐츠는 그 타입 및 성질(nature)에 따라 ECMA스크립트 엔진(211), 문서 객체 모듈(DOM, document object model) 구조를 다루기 위한 모듈(212) 및/또는 레이아웃 엔진(213)에 의해 추가적으로 다루어질 수 있다.
검색된 콘텐츠의 이러한 처리는 문서 매니저(204)에 의해 관리되며, 또한 추가적인 URI 요청이 검색된 콘텐츠의 처리 결과로서 URI 매니저(205)로 포워딩될 수 있다. 이러한 추가적인 URI는 원본 URI에 의해 특정된 문서 내에 내장되어야 하는, 예를 들면 이미지 혹은 다른 추가적인 파일을 지정할 수 있다.
지정된 문서의 콘텐츠를 나타내는 데이터가 처리되었으면, 렌더링 엔진(rendering engine)(214)에 의해 렌더링되고 사용자 인터페이스(201) 상에 표시되도록 하기 위해 문서 매니저(204)로부터 포워딩된다.
그러므로 프로세서가 시스템 버스(들)(106)를 통해 인스트럭션과 데이터를 수신함으로써 전술한 다양한 모듈이 프로세싱 유닛(processing unit)(101)에 의해 실행된다. 통신 모듈(206)은 네트워크 인터페이스(network interface)(105)를 이용하여 원격 장치(remote device)(130)와 통신한다. 물론 다양한 모듈의 기능은 더 적은 수의 모듈로 통합되거나 복수의 모듈로 분배 혹은 복제될 수 있다.
또한 전술한 사용자 에이전트(200)는 어플리케이션 프로그램(143)으로 구현될 수 있는 것으로 이해될 수 있을 것이지만, 일부 기능은 운영 시스템(142)의 일부분이거나 심지어는 장치(100)의 BIOS(141)일 수 있다. URI 요청에 대한 응답으로 수신한 콘텐츠는 이하 설명될 데이터(144), 스크립트(145) 혹은 이들의 조합일 수 있다.
웹페이지와 같은 전자 문서는 HTML, XHTML 혹은 XML과 같은 마크업 언어를 이용하여 생성되며, 표준 컴퓨터 디스플레이를 위해 디자인된 레이아웃이 보통 정해져 있다. 하지만, 브라우저와 같은 사용자 에이전트가 점점 더 PDA, 셀폰, 텔레비전 셋탑박스 및 게임 콘솔과 같은 다른 타입의 장치에 설치되고 있다. 이러한 장치는 서로 다른 사이즈, 모양 및 해상도를 가진 다양한 디스플레이를 가지고 있다. 이러한 장치는 유의미한 방식으로 웹페이지를 렌더링하고 표시할 수 없을 수도 있다. 문서는 읽을 수 없을 정도로 사이즈가 줄어들 수 있거나, 한번에 문서의 매우 작은 일부분만이 표시될 수 있거나, 문서의 레이아웃이 결코 그 문서의 창작자가 의도하지 않은 방식으로 변경될 수 있다.
이제 도 3에 언급되어 있으며, 도 3a에서는 일 예에 따른 웹페이지(300)의 전체 레이아웃(layout)을 보여주고 있다. 웹페이지는 좌측 여백(left margin)(301)과 메인 콘텐츠 영역(main content area)(302)을 포함한다. 메인 콘텐츠 영역(302)은 헤드라인(303)으로 시작하는 글(article)을 포함하며, 좌측 여백(301)은 동일 웹사이트의 다른 부분에 대한 하이퍼링크(hyperlink)일 수 있는 수많은 메뉴 항목(menu entries)을 가지는 탐색 메뉴(304)를 포함한다. 메인 콘텐츠 영역(302)에는 헤드라인(303) 아래에 2개의 텍스트 세로단이 뒤따르며, 우측 세로단 내에 이미지(306)가 삽입되어 있다.
도 3b는 브라우저 윈도우(browser window) 혹은 사용자 에이전트 윈도우(user agent window)에 표시된 도 3a의 웹페이지의 일부분을 보여준다. 사용자 에이전트는 도 2를 참조하여 전술하였던 것과 유사할 수 있으며, 윈도우는 도1을 참조하여 전술하였던 것과 유사하게 장치의 디스플레이 상에 표시될 수 있다.
윈도우는 탐색 버튼(navigation button)(311), 요구되는 문서의 URL이 입력될 수 있는 주소 필드(312), 및 수직 스크롤바(313)를 포함한다. 브라우저 윈도우의 나머지 부분은 문서(300)의 일부분을 표시하는데 사용된다. 이러한 윈도우의 나머지 부분을 뷰포트라 칭하기로 한다. 도 3b에 도시된 예시에서 뷰포트는 웹페이지(300)의 전체 너비를 표시할만큼 충분히 넓지만, 문서의 상부 부분만이 보여질 수 있음에 주의해야 할 것이다. 문서의 나머지를 보기 위해서 수직 스크롤바(313)가 제공되었다. 이 스크롤바는 문서(300)에 대하여 상대적으로 뷰포트를 아래로 움직이는 것이 가능하도록 한다.
도 3c는 다시 웹페이지(30))의 일부분을 보여주지만, 이번에는 PDA 혹은 셀폰의 디스플레이일 수 있는 작은 디스플레이에서 표시되고 있다. 사용자 에이전트 윈도우는 탐색 버튼(311) 및 수직 스크롤바(313)와 같은 도 3b에 도시된 브라우저 윈도우의 일부 특징을 포함한다. 추가적으로 수평 스크롤바(314)도 제공되었다. 뷰포트의 작은 사이즈 때문에 문서의 일부분만이 표시될 수 있다. 전체 문서를 보기 위해서 사용자는 수평 및 수직으로 스크롤해야 할 것이다.
도 3b에 도시된 경우에서는 큰 어려움 없이 전체 문서를 읽는 것이 가능할 수 있다. 하지만, 예를 들어 사용자가 문서의 특정 구성요소 상에서 줌인(zoom in), 즉 단지 작은 섹션만이 뷰포트 내에 표시되도록 문서를 확대하기 원하는 이유가 있을 수 있다. 이러한 이유 중 한 예는 사용자 에이전트 윈도우가 표시되는 디스플레이(120)가 저해상도이고, 디스플레이(120)가 텔레비전 스크린일 수 있는 경우에서와 같이 디스플레이(120)로부터 일정 거리를 두고 위치한 사용자인 경우와 결합된 상태에서는 표시된 콘텐츠를 적절히 보는 것이 어려울 수 있다는 것일 수 있다. 다른 이유는 사용자가 나쁜 시력을 가지고 있고 문서의 다양한 부분을 확대하기 원하는 것일 수 있다.
도 3c에 도시된 경우에서, 문서를 탐색하는 것이 어려울 수 있으며, 뷰포트보다 텍스트 라인이 더 큰 폭을 가지는 경우 텍스트(305)를 읽는 것이 특히 어려울 것임을 알아야 할 것이다. 그리고 적어도 일차원적으로 뷰포트 내에 원하는 콘텐츠를 전부 가져오는 동안 사용자는 문서의 줌인 및 아웃(zoom in and out)을 원할 수 있다.
이제 도 4에 언급되어 있으며, 문서(300)가 레이아웃 면에서 어떻게 조직될 수 있는지를 나타내고 있다. 이는 몇 개의 예시들 중 하나일 뿐이며, 동일한 레이아웃이 문서(300)의 마크업 언어 코드(markup language code)의 구조(structure)에 종속되는 몇 개의 방식으로도 이루어질 수 있음이 해당 기술분야의 통상의 기술자에 의해 이해될 것이다.
도 4에 도시된 예시는 http://www.w3.org/TR/CSS21/에 있는 월드와이드웹 컨소시엄(W3C)에 의해 공표되고 이로써 레퍼런스에 포함된 CSS(Cascading Styles Sheets) 레벨 2 리비젼 1에 기초하고 있다. 하지만, 본 발명은 CSS의 이번 버전, 혹은 특히 CSS에 제한되지는 않는다. 아래 주어진 예시는 다소 간략화된 것이며, 모든 가능성 및 특징이나 예외를 포함하지는 않을 수 있다.
마크업 언어 문서(markup language document)가 도 2에 도시된 것과 같은 사용자 에이전트에 의해 수신될 때, 문서는 보통 전술한 바와 같이 처리된다. 레이아웃 엔진(213)은 문서의 DOM 구조에 기초하여 DOM 트리 내 구성요소에 기초한 다수의 박스를 생성할 수 있다. CSS 2.1 박스 모델의 일반적인 접근에 따르면, 블록 박스(block box)로 정의된 박스는 후손 박스(descendant box)를 위한 컨테이닝 블록(containing block)을 설정한다. (인라인 박스(inline box)와 같은 어떤 다른 타입의 블록은 블록 박스가 아니다.) 추가적으로 다양한 테이블 구성요소와 같이 박스로 정의되지 않은 어떤 다른 타입의 구성요소도 컨테이닝 블록을 설정한다.
주어진 박스의 크기(dimension) 및 위치(position)는 그 컨테이닝 블록의 에지(edge)에 대하여 계산될 수 있다. 도 4에서 최상위레벨 박스(top level box)(400)는 전체 페이지(entire page)에 대한 컨테이닝 블록이다. 좌측 여백(301)은 하나의 후손 박스(401) 내에 함유되며(contained), 메인 콘텐츠(302)는 다른 후손 박스(402)에 함유된다. 그리고 메뉴(304)의 위치는 그 컨테이닝 블록(401)의 에지에 기초하여 계산될 수 있다. 헤드라인(303)은 박스(402)를 컨테이닝 블록으로 가지는 박스(403) 내에 함유될 수 있다. 박스(402)는 문서(300)의 메인 텍스트(305)를 함유하는 추가적인 박스(404)를 함유할 수 있다. 헤드라인(303)의 위치는 그 컨테이닝 블록, 즉 박스(403)의 에지에 기초하여 계산될 수 있다. 텍스트(305)가 2개의 세로단으로 구분되어 있기 때문에, 박스(404)는 2개의 후손 박스(405 및 406)를 함유할 수 있다. 이 두 박스는 모두 그들의 컨테이닝 블록으로 박스(404)를 가진다. 마지막으로, 박스(406)는 박스(406)를 컨테이닝 블록으로 가지고 결과적으로 이미지(306)에 대해 컨테이닝 블록으로서 역할하는 추가적인 박스(407)를 함유한다.
도 4에 도시되지 않은 추가적인 박스들 또한 존재할 수 있다. 보통 박스(405, 406)에 함유된 텍스트의 각 라인은 자신만의 라인 박스(line box)를 가지며, 텍스트가 하이퍼링크를 포함한다면 이 링크는 인라인 박스 내에 함유될 수 있다. 다양한 타입의 박스에 대한 보다 상세한 논의는 앞서 언급한 CSS 명세서(specification)에서 찾을 수 있다.
마지막으로 블록(408)은 문서의 일부분을 표시하는 장치의 뷰포트의 위치를 나타낸다.
이러한 문서 구조의 분석은 문서의 관심 영역을 선택하고 표시하기 위해 이용될 수 있음이 동일 양수인에게 양도된 미국특허출원 11/525,177에서 제안되었다. 상기 특허 출원의 내용 전체가 레퍼런스로서 여기에 포함된다.
본 발명의 발명자는, 작은 장치가 효율적으로 전체 문서를 분석하기에는 연산력이 부족할 수 있으며 문서의 압축된 버전 혹은 문서의 일부분만을 나타내는 데이터를 수신하는데에 바람직할 수 있도록 이러한 많은 장치들이 문서를 요청하고 수신할 때 이용가능한 대역폭(bandwidth)이 제한되어 있음을 인식하였다. 이는 심지어 문서 레이아웃 구조의 로컬 분석을 더 어렵게 만들 수 있다. 본 발명의 일 측면에 따르면, 트랜스코딩 서버에 의해 분석이 수행될 수 있으며, 분석 결과를 나타내는 데이터가 트랜스코딩된 문서의 일부분으로서 포함될 수 있다.
이제 도 5에 언급되어 있으며, 본 발명의 원리에 부합하는 트랜스코딩 서버(transcoding server)(500)가 컴퓨터 상에 설치되어 있는 소프트웨어 모듈로서, 장치로부터 문서 요청을 수신하고, 문서를 페치(fetch)하며, 본 발명의 원리에 상응하여 이를 변환하고, 요청 장치로 포워딩하는 프록시 서버(proxy server)로서 동작하도록 구현된 소프트웨어 모듈의 관점에서 어떻게 조직되어(organized) 있는지를 설명한다.
제1 모듈(501)은 장치로부터 요청을 수신하도록 구현될 수 있는 통신 모듈이다. 통신 모듈(501)은 TCP/IP를 통해 HTTP(S) 요청을 수신할 수 있지만, 본 발명의 원리에 부합하도록 통신 장치(501)는 또한 다른 표준이나 프로토콜 및 인터넷이 아닌 다른 타입의 네트워크를 이용하여 통신을 수행할 수도 있다. 일례로, 통신 모듈(501)은 GSM, UMTS, CDMA 같은 모바일 전화 네트워크 혹은 Wi-Fi 무선랜(IEEE 802.11)이나 WiMAX(IEEE 802.16) 같은 무선 네트워크를 통해 직접적으로 혹은 간접적으로 통신하도록 구현되어 있을 수 있다.
통신 모듈(501)은 인증 및 인가 모듈(authentication and authorization module)(502)에 연결되어 있을 수 있으며, 인증 및 인가 모듈(502)은 요청 클라이언트가 인증될 필요가 있는지 여부를 판단하고 클라이언트가 서버(500)를 통해 요청된 리소스에 액세스하도록 인가받아야 하는지 여부를 판단한다. 인증 및 인가는 해당 기술분야의 통상의 기술자에 의해 알려진 방법을 써서 처리될 수 있다. 이러한 방법 중 한 예는 사용자명/패스워드 조합이다.
수신된 요청 및 인증 결과는 로깅 모듈(logging module)(503)에 로그될 수 있다.
통신 모듈(501)에 의해 수신되면 요청이 HTTP 혹은 HTTPS 요청 형태인지 혹은 다른 포맷인지 여부는 임의의 방식으로 문서나 웹페이지 같은 리소스에 참조 표시될 것이며, 이러한 식별자(identification)는 보통 URI 형태이거나 혹은 통신 모듈(501)에 의해 URI로 변환될 수 있을 것이다.
문서 매니저(504)는 도 2에 도시되어 있고 도 2를 참조하여 설명한 문서 매니저(204)에 상응할 수 있다. 묘사를 간단히 하기 위해, 문서 매니저(504)는 HTML/XML/CSS 파서(210), ECMA스크립트 엔진(211), DOM 모듈(212) 및 레이아웃 엔진(213) 같이 도 2에서 보여진 추가적인 모듈로부터의 기능도 포함하고 있는 것으로 가정할 수 있다.
URI는 요청의 일부분으로서 통신 모듈(501)에 의해 수신되었다. 이 후 URI는 URI에 의해 식별된 문서의 일부분으로서 수신된 데이터를 관리하는 문서 매니저(504)로 포워딩될 수 있으며, 도 2를 참조하여 전술한 것과 같이 URI가 윈도우 및 입력 매니저(203)로부터 포워딩된 것과 같은 방식일 수 있다.
문서 매니저(504)는 식별된 리소스로의 액세스를 요청하도록 제2 통신 모듈(506)에 다시 지시하는 URI 매니저(505)로 URI를 포워딩할 수 있다. 통신 모듈(506)은 HTTP 혹은 HTTPS나 FTP 같은 다른 프로토콜을 사용하는 네트워크를 통해 서버와 같은 원격 장치(130)로부터 데이터를 액세스하고 검색하는 것이 가능할 수 있다. 통신 모듈은 로컬 메모리(102)에 저장된 데이터에 액세스하는 것이 가능할 수도 있다. 제1 통신 모듈(501) 및 제2 통신 모듈(506)에 의해 사용되는 통신 표준 및 프로토콜이 동일하다면, 두 모듈은 서버(500)로의 및 서버(500)로부터의 모든 통신을 다루는 하나의 통신 모듈로 구현될 수 있다.
제2 통신 모듈(506)에 의해 전송된 요청에 응답하여, 하나 이상의 파일 형태를 가지는 데이터가 수신될 수 있다. 이 후 수신된 데이터는 URI 매니저(505)로 포워딩될 수 있다. 이 후 URI 매니저는 로컬 메모리 캐시 매니저(208)에 수신된 콘텐츠의 사본을 저장할 수 있다. 나중에 동일한 URI가 요청되면, 심지어 다른 장치로부터일지라도, URI 매니저(505)는 캐시 매니저(508)로부터 그것을 요청할 수 있다. 도 2를 참조하여 설명한 것과 같이, 이는 장치에 설치된 로컬 사용자 에이전트에 의해 수행된 캐싱(caching)에 상응하며, 또한 해당 기술분야의 통상의 기술자에게 잘 알려진 프록시 서버에 의해 수행되는 방법에 상응한다.
그 후 URI 매니저(505)는 문서 매니저(504)에게 수신된 데이터를 포워딩할 수 있다. 그 후 문서 매니저는 이 경우 문서가 디스플레이로 반드시 렌더링될 필요는 없다는 점을 제외하고는 도 2를 참조하여 설명한 것과 유사한 방식으로 데이터를 처리할 수 있다. 대신에 문서 혹은 문서들은 가상 메모리(virtual memory)로 렌더링될 수 있다. 본 발명의 원리에 부합하게, 문서는 예를 들어 디스플레이 매니저 혹은 컨트롤러(display manager or controller)로 포워딩되었을 때 디스플레이 상에 하나의 라인을 각각 도시하는 명령어 같은 드로잉 명령어(drawing command)들의 집합으로 렌더링될 수 있다. 본 발명의 일부 실시예들에 따르면, 이 명령어는 문서의 렌더링을 설명하는데 필수적인 데이터량을 감소시키기 위한 이진 포맷(binary format)일 수 있다.
본 발명의 일 측면에 따르면, 문서는 우선 모든 이미지를 회색 사각형(grey rectangle) 혹은 많은 데이터 전송을 요구하지 않는 다른 패턴으로 도시하는 드로잉 명령어들의 집합에 의해 설명된다. 이러한 문서의 설명이 장치로 전송된 이후, 이미지를 설명하고 회색 사각형 위에 이미지를 도시하도록 디스플레이 컨트롤러에 명령할 수 있는 추가적인 드로잉 명령어가 전송된다. 이 방법에서는 페이지의 대부분(majority)이 모든 이미지 데이터가 수신되기 이전에 장치의 디스플레이에 렌더링될 수 있다. 본 발명의 이러한 측면에 부합하는 일 실시예에서, 사각형은 회색으로 렌더링되지 않고, 각 이미지의 평균 색상을 나타내는 색상으로 렌더링된다.
더구나 도 4를 참조하여 설명한 것과 같이 텍스트, 이미지 및 하이퍼링크와 같은 구성요소들의 블록 혹은 박스 및 그 위치를 식별하기 위해, 문서는 문서 트랜스코더(document transcoder)(507)에 의해 분석될 수 있다. 이 분석으로 인해 미리 정의된 타입의 콘텐츠를 나타내는 사각형, 혹은 콘텐츠 블록(content block)의 리스트가 생성될 수 있다. 콘텐츠 블록의 위치는 예를 들어 전체 문서 레이아웃의 좌상단 코너와 같은 레퍼런스 포인트(reference point)에 대해 상대적으로, 예를 들면 콘텐츠 블록인 사각형의 대각 방향으로의(diagonally) 2개의 코너를 나타내는 좌표로서 식별될 수 있다. 각 블록에 대해서, 콘텐츠 블록의 리스트는 그 위치에 추가적으로, 예를 들면 블록이 함유하는 구성요소 타입(텍스트, 이미지, 하이퍼링크, 테이블 셀 등)과 같은 정보를 포함할 수 있다. 블록이 하이퍼링크를 함유한다면, URI 혹은 URI의 또는 URI에 관한 일부 표현(representation) 또한 포함될 수 있다.
본 발명의 일부 실시예들에 따르면, 어느 콘텐츠 블록이 리스트에 포함되어야 하는지를 결정하기 위해 다양한 규칙들이 시행될 수 있다. 이러한 규칙들은 구성요소 타입(예를 들면, 텍스트 블록, 이미지 블록, 테이블 및 하이퍼링크 블록인 모든 블록), 문서 DOM 트리에서의 위치, 사이즈 등에 기초할 수 있다.
원본 형태가 무엇이든지 일련의 드로잉 명령어들로 트랜스코딩되거나 다른 방식으로 트랜스코딩된 문서는 이제 메타 데이터(meta data)를 나타내는 사각형의 리스트와 함께 패키지될(packaged) 수 있다. 그 후 메타 데이터를 포함하는 문서 데이터는 문서 매니저(504)로부터 통신 모듈(501)로 포워딩될 수 있다. 대역폭 사용을 줄이기 위해, 통신 모듈(501)은 문서 데이터의 일부분만을 전송하도록 구현될 수 있으며, 선택된 일부분은 디스플레이 사이즈 및/또는 해상도를 설명하는 정보 및 문서의 다양한 부분을 통한 탐색(스크롤링)을 나타내는 사용자 입력을 포함하는, 요청 장치로부터 수신된 입력에 기초할 수 있다.
도 6은 장치로부터의 요청을 수신했을 때 트랜스코딩 서버가 동작하는 방법을 나타낸 순서도이다.
우선 단계 601에서 장치로부터의 요청(request)이 서버에 의해 수신된다. 요청은 예를 들어 웹페이지와 같은 리소스를 식별한다. 리소스는 그 URI에 의해 식별될 수 있다.
다음으로 단계 S602에서 요청 장치가 트랜스코딩 서버와 통신하도록 인증되었는지 여부를 판단한다. 이 프로세스는 예를 들어 사용자명과 패스워드를 획득하거나 디지털 서명(digital certificate)을 획득하기 위한 장치와의 추가적인 통신을 수반할 수 있다.
인증(authorization)을 얻지 못한다면, 단계 603에서 서버에 의해 요청은 거부되고, 서버는 장치로부터의 다음 요청을 대기하도록 되돌아간다.
단계 602에서 인증 모듈에 의해 인증이 확인되면 해당 요청이 처리되고, 다음 단계 604에서 제2 통신 모듈(506)이 URI에 의해 식별된 리소스를 해당 리소스가 저장된 서버, 또한 발신 서버(originating server)로 언급되는 서버로부터 획득하기 위해 HTTP 혹은 HTTPS 요청을 보내도록 지시받는다.
단계 605에서 요청된 리소스는 제2 통신 모듈(506)에 의해 수신된다. 수신된 리소스는 별개의 HTTP 요청을 통해 획득되어야 하는 추가 구성요소에 대한 참조를 포함할 수 있으며, 이 경우 추가 요청은 제2 통신 모듈(506)에 의해 전송된다.
다음 단계 606에서 전술한 것과 같이 문서 매니저(504)와 문서 트랜스코더(507)에 의해 가상 렌더링(virtual rendering) 및 트랜스코딩이 수행된다.
단계 607에서 트랜스코딩된 문서는 드로잉 명령어들의 집합, 페이지 상의 콘텐츠의 위치를 설명하는 사각형 리스트, 그 위치를 포함하는 하이퍼링크의 리스트 및 그들이 참조하는 URI로 조직될(organized) 수 있다. 전술한 것과 같이 초기에 드로잉 명령어의 스트림(stream) 내에서 이미지는 예를 들어 각 이미지의 평균 색상과 같은 단순한 색상이나 패턴을 가지는 사각형으로서 묘사될 수 있으며, 실제 이미지를 설명하는 드로잉 명령어는 마지막에 전송된다.
단계 608에서 트랜스코딩된 문서는 요청 장치로 전송된다.
트랜스코딩된 데이터를 수신하는 장치는 데이터를 수신할 수 있는 사용자 장치를 포함할 수 있고, 장치의 디스플레이 상에 문서를 렌더링할 수 있다. 사용자 에이전트는 단지 이러한 타입의 데이터를 액세스하도록 구현될 수 있거나, 도 2에서 설명한 것과 같이 일반 브라우저 타입으로서 본 발명의 원리에 상응하여 트랜스코딩된 문서를 처리하는데 필수적인 추가 능력을 가지는 사용자 에이전트일 수 있다.
이제 도 7에 언급되어 있고, 트랜스코딩된 문서를 다루도록 구현되고, 트랜스코딩 서버에서 시행되었던 정상(normal) HTML/CSS 처리 능력은 없는 사용자 에이전트(700)를 설명하고 있다.
장치는 사용자 인터페이스(701)와 주소 입력 필드(702)를 포함할 수 있다. 윈도우 매니저/입력 매니저(703)는 주소 입력 필드(702)로부터 혹은 포인터나 커서 같은 임의의 사용자 입력 장치로부터 사용자 입력을 수신할 수 있다. 입력 매니저(703)는 보통 (후술할 것과 같이, 콘텐츠 사각형 내의 위치와 콘텐츠 사각형까지의 거리를 포함하는) 문서 내 포인터의 위치 및 하이퍼링크 혹은 문서 내 다른 입력 구성요소와의 상호작용(interaction)을 등록할 수 있을 것이다.
문서 매니저(704)는 일반 HTML/CSS 능력 (및 HTML/XML/CSS 파서, DOM 모듈 및 레이아웃 엔진과 같은 연관 모듈)이 존재할 필요가 없다는 점에서, 도 2를 참조하여 설명하였던 상응하는 문서 매니저와는 다를 수 있다(하지만, 이미 언급한 것처럼 본 발명을 시행하는 사용자 에이전트에 이러한 능력이 존재하도록 하는 것이 본 발명의 원리에 부합한다). 문서 매니저는 사용자 입력을 수신하고, 이러한 입력이 그 URI를 통해 식별되는 문서에 대한 요청을 나타내는 경우 URI 매니저(705)로 이러한 입력을 포워딩하도록 구현된다. URI 매니저(705)는 통신 모듈(706)로 요청을 포워딩하고, 도 2를 참조하여 설명했던 것과 상응하는 프로세스 내에서 통신 모듈(706)로부터 임의의 수신된 요청을 수신할 수 있다. 사용자 에이전트(700)는 또한 캐시 매니저(708)와 로컬 메모리에 저장된 문서 캐시(709)를 이용하여 캐싱을 시행할 수 있다.
게다가 문서 매니저(704)는 URI 매니저로부터 문서 콘텐츠를 수신하고 디스플레이 컨트롤러(715)로 수신된 드로잉 명령어를 전송하도록 구현될 수 있다. 디스플레이 컨트롤러(715)는 장치의 디스플레이 상에 사용자 에이전트(700)의 사용자 인터페이스 내에 문서의 관련된 부분을 도시함으로써 응답한다.
문서는 보통 사용자 인터페이스(701)의 뷰포트보다 클 것이다. 문서 매니저(704)는 사용자에게 문서의 많은 부분 혹은 전체 문서의 개요(overview)를 제공하는 모드에서 문서를 표시하기 위해서, 그리고 텍스트를 읽고 이미지를 보기에 편안한 해상도를 허용하는 모드에서 문서를 표시하기 위해서, 몇 개의 줌 레벨(zoom level)에서의 디스플레이를 요청하는 사용자 입력을 수신하도록 구현될 수 있다. 본 발명에 따르면, 하나 이상의 줌 레벨은 콘텐츠 사각형으로서 수신된 데이터에 함유된 정보에 기초한 스크롤링(scrolling)을 지원할 수 있다.
문서 매니저는 특정 방향으로 스크롤하라는 요청을 나타내는 사용자 입력을 수신하면, 문서 매니저는 스크린에 드로잉 명령어를 전송하도록 디스플레이 컨트롤러(715)에 지시할 수 있으며, 콘텐츠 사각형의 에지가 사용자 인터페이스(701)의 뷰포트의 에지를 따라 위치할 때까지 문서가 요청된 방향으로 스크롤된다.
본 발명의 원리에 부합하도록, 사각형 내에서 "클릭(click)"을 나타내지만 하이퍼링크 혹은 입력 박스 내와 같은 기타 타입의 특수 구성요소와 연관되지 않은 사용자 입력은, 식별된 사각형이 사용자 인터페이스(701)의 뷰포트의 좌상단 코너에 위치하도록 스크롤하는 요청 혹은 그 대신에 사각형의 한 에지가 뷰포트의 상응하는 에지를 따라 정렬되도록(aligned with) 일 방향으로 스크롤하는 요청으로서 해석될 수 있다.
앞서 언급한 것과 같이, 입력 매니저(703)는 마우스 포인터 같은 포인팅 장치의 위치를 추적할 수 있을 것이다. 본 발명의 일부 실시예들에 부합되도록, 이 위치는 문서 설명의 일부분으로서 수신된 사각형의 리스트와 비교될 수 있으며, 사각형은 다른 사각형과 오버랩되거나 다른 사각형 내에 있을 수 있으며, 예를 들면 이미지를 나타내는 사각형은 그 전부가 이미지와 연관된 글을 나타내는 텍스트 블록을 나타내는 사각형 내에 있을 수 있다. 그러므로 포인터 혹은 커서는 동시에 몇 개의 박스 내에 있을 수 있다. 이는 몇 개의 사각형 내에 있는 위치를 정의하는 사용자 입력이 입력 매니저(703)에 의해 수신되면 어느 사각형이 사용자 인터페이스(703)의 뷰포트를 따라 정렬되어야 하는지를 결정하기 위한 규칙이 수립되어야 함을 의미한다. 본 발명의 일 실시예에 따르면, 가장 안쪽의 사각형(innermost rectangle)-그 자신이 아닌 어떤 사각형도 함유하지 않는 사각형-이 선택된다. 일례로서, 도 4에서 설명한 문서가 장치에 의해 표시되는 것을 가정하면, 박스(405) 내의 위치를 정의하는 사용자 입력은 또한 반드시 404, 402, 400의 박스 내에 있을 것이다. 하지만, 박스(405)가 가장 안쪽의 사각형이고, 본 발명의 실시예에 따르면, 뷰포트(408) 및 문서는 서로 상대적으로 움직여서 세로단(405) 및 상응하는 텍스트 블록(305)가 뷰포트(408)를 따라 정렬될 수 있다. 유사하게, 포인터가 박스(407) 내에 있다면 이는 텍스트(305)의 우측 세로단이 아니라 이미지(306)가 선택된 것이다.
위치가 하나 이상의 사각형 내에 있을 때 사각형을 선택하는 대안 혹은 추가 규칙이 가능하다. 일 대안은 텍스트, 이미지, 테이블 등과 같이 사각형에 연관된 구성요소 타입에 기초하여 우선권(priority)을 주는 것이다. 다른 대안은 트랜스코딩 서버에서 시행하는 규칙에 기초하여 우선권을 부여하고, 장치의 사용자 에이전트 내에서 가장 높은 우선권을 가지는 사각형을 선택하는 것이다.
도 8은 장치에 설치된 사용자 에이전트의 일부분으로서 본 발명에 부합하는 방법이 시행될 수 있는 방법의 일 실시예를 요약한 순서도이다.
우선 단계 801에서 사용자 에이전트(700)는 문서를 수신한다. 문서는 이전에 사용자 에이전트로부터의 등록된 요청에 대한 응답으로서 수신될 수 있는데, 이는 예를 들어 사용자가 하이퍼링크를 클릭했거나 주소 입력 필드(702)에 URI를 입력했거나 사용자가 선호 리스트(북마크(bookmark))에서 선택했기 때문이다. 다음 단계 802에서 트랜스코딩 서버로부터 수신된 드로잉 명령어에 상응하여 사용자 인터페이스(701)의 뷰포트 내에 꼭 맞도록 사용자 에이전트는 페이지 혹은 페이지의 적어도 일부분을 도시한다.
그 후 사용자 에이전트는 단계 803에서 수신될 수 있는 사용자 입력을 기다린다. 본 실시예에 따르면, 사용자 에이전트는 다음 단계 804에서 사용자 입력이 사용자가 스크롤하기 원하는 방향을 정의하는지 여부를 판단한다. 만약 그렇다면, 스크롤링 입력의 방향으로 첫번째 사각형이 식별될 때까지 트랜스코딩 서버로부터 수신된 사각형 리스트(list of rectangles) 내에서 서치(search)가 수행된다(805). 그 후 뷰포트는 단계 813에서 서치에서 식별된 사각형을 따라 정렬된다. 그 후 본 방법은 단계 803으로 되돌아가 추가적인 사용자 입력을 기다린다.
입력이 방향을 식별하지 않는다면, 사용자 에이전트는 단계 806에서 입력이 문서 내의 위치를 식별하는지 여부를 판단한다. 입력이 위치를 나타낸 것으로 판단되면, 단계 807에서 그 위치가 하이퍼링크에 연관된 것인지를 판단한다. 만약 그렇다면, 프로세스는 단계 808로 진행하여 하이퍼링크에 연관된 문서에 대한 요청이 트랜스코딩 서버로 전달되고, 프로세스는 단계 801로 되돌아간다.
입력이 하이퍼링크에 연관되지 않은 위치를 나타낸다면, 프로세스는 단계 809로 진행하여 식별된 위치를 함유하는 사각형을 식별하기 위한 서치가 수행된다. 전술한 것과 같이 그 위치가 몇몇 오버랩되거나 함유된 사각형(several overlapping and nested rectangles) 내에 있다면 어느 사각형이 선택될 것인지를 결정하기 위해 다양한 규칙이 시행될 수 있다.
적절한 사각형이 선택된 후에, 단계 813에서 뷰포트는 식별된 사각형을 따라 정렬된다. 다시 전술한 것과 같이 사각형과 뷰포트를 정렬하는 방법에 대한 다양한 규칙이 시행될 수 있다. 단계 813 다음으로, 본 방법은 단계 803으로 되돌아가 추가적인 사용자 입력을 기다린다.
단계 806에서 입력이 위치를 식별하지 않는 것으로 판단되면(그리고 단계 804에서 이미 판단된 것처럼 방향도 아닌 경우), 단계 810에서 입력이 줌 레벨을 변경하는 요청을 나타내는지 여부를 판단한다. 만약 그렇다면, 줌 레벨의 변경이 수행된 이후 뷰포트를 따라 정렬할 사각형을 식별하기 위해 단계 811에서 사각형 리스트 내에서의 서치가 수행된다. 일부 실시예에서 줌 레벨을 변경하는 요청은 주변의 줌 인(혹은 아웃)할 위치를 포함할 수 있으며, 이는 단계 806에서 판단되어야 함을 이해해야 할 것이다.
단계 811에서 행해진 판단에 기초하여, 예를 들어 문서의 렌더링된 부분의 해상도를 변경함으로써 주밍 동작(zooming operation)이 수행되며, 뷰포트는 전술한 것과 같이 적절한 규칙에 상응하여 단계 813에서 식별된 사각형을 따라 정렬된다. 그 후 본 방법은 단계 803으로 되돌아가 추가적인 사용자 입력을 기다린다.
단계 810에서 해당 요청이 줌 레벨 변경 요청도 아닌 것으로 판단되면, 사용자 에이전트 기능의 일부 다른 부분이 인계받고, 단계 812에서 예를 들어 입력 필드 내에 텍스트를 쓰는 것, 메뉴를 꺼내는(bring up) 것, 스크린의 방향(orientation)을 변경하는 것 등 사용자가 요청한 액션이 무엇이든지 이를 수행한다. 그 후 프로세스는 단계 803으로 되돌아가 추가 입력을 기다린다.
도 8을 참조한 논의에서 본 발명은 사용자 입력의 성질(nature)을 판단하기 위한 테스트 혹은 다른 일련의 단계들이 시행될 수 있음을 이해해야 할 것이다.
본 발명의 일 측면에 따르면, 뷰포트의 에지 혹은 코너를 따라 정렬되어야 하는 사각형의 에지 혹은 코너를 선택하는 것이 표시될 문서의 결과 부분을 즉시 다시 도시하는 것으로 귀결되는 것은 아니다. 이는 사용자에게 혼동을 줄 수 있는, 문서의 일 부분에서 다른 부분으로 불연속적으로 점프하는 것으로 귀결될 것이다. 대신에 사용자 입력이 수신되었을 때 표시되고 있는 부분으로부터 선택된 새로운 부분이 표시될 때까지의 스크롤링 움직임이 시작과 끝 사이의 경로를 따르는 중간 부분을 계산함으로써 생성될 수 있다. 이는 사용자에게 그 혹은 그녀가 문서를 통해 어떻게 탐색하고 있는지를 명확하게 해 줄 것이며, 문서의 다른 부분으로 되돌아가는 것을 보다 용이하게 해 줄 것이다.
또한 사각형의 선택과 줌 레벨에서의 변경을 조합하는 것이 본 발명의 원리에 부합된다. 이 경우 사용자가 줌 인 혹은 줌 아웃을 선택하면 줌 동작 이후 뷰포트의 에지에의 접근성(closeness)에 기초하여 사각형이 선택될 수 있으며, 뷰포트의 위치는 스크롤링이나 클리킹(clicking)에 관해 전술한 것과 같은 방식으로 선택된 사각형을 따라 조정될 수 있다. 또한 사용자에게 그 혹은 그녀가 문서를 통해 어떻게 탐색하고 있는지에 관한 정보를 주는 것을 도와주기 위해서 줌 동작은 중간 스크롤 위치와 유사한 중간 줌 레벨을 수반할 수 있다.
줌 동작(zoom operation)은 또한 문서 내의 위치를 식별하는 사용자 입력에 의해 초기화될 수도 있을 것이다. 이 위치가 리스트된 사각형 내에 있다면, 이 사각형은 줌 레벨이 변경된 후 뷰포트를 따라 정렬될 사각형으로서 선택될 수 있다.
사용자 에이전트는 단순히 포인터가 구성요소 위를 맴돌기(hover) 때문에 어떤 액션이 수행되도록 구현될 수도 있다. 본 발명의 원리에 부합하는 일 예시는, 포인팅 장치가 사각형 내에 위치하고 있고 사각형이 하이퍼링크에 연관되어 있다면. 사각형이 경계(border)를 가지거나 다른 배경색을 가지도록 하거나, 혹은 사각형을 페이지의 나머지로부터 더 돋보이게 만드는 일부 다른 방식으로 사각형을 나타내는 것이다.
포인터 타입의 입력 장치 없는 사각형의 선택은 보다 복잡할 수 있지만, 본 발명에 따라 사각형으로부터 사각형으로 움직이는 키보드나 조이스틱 입력 같은 수많은 대안이 시행될 수 있다.
일부 실시예에서 구성요소는 몇몇 사각형을 스팬(span)함으로써 정의될 수 있으며, 다시 말해서 하나가 선택되면 모두가 선택되도록 몇몇 사각형이 연관되어 있을 수 있다. 그 결과 사각형과는 다른 형상을 가진 영역으로 취급되지만, 사각형을 뷰포트를 따라 정렬하는 규칙이 동일한 방식으로 시행될 수 있다. 이러한 사각형 조합은 주로 하이퍼링크가 우측 여백을 가지지 않는 텍스트의 몇몇 라인을 스팬하거나 몇몇 구성요소(예를 들어 이미지 및 텍스트 링크)가 동일한 URI를 참조하는 것을 지시하기 위해서 유용할 것이다.
논의된 다양한 예시들 및 실시예들은 단지 예시적인 것이며, 첨부된 청구항으로 정의될 본 발명의 범위를 제한하는 것으로 이해되어서는 안 될 것이다.

Claims (22)

  1. 구성요소(element)의 구조화된 리스트(structured list)를 포함하는 마크업 언어 문서를 수신하는 단계;
    상기 문서의 구조(structure)에 기초하여 상기 문서의 레이아웃을 나타내는 가상 렌더링(virtual rendering)을 생성하는 단계;
    상기 가상 렌더링으로부터 하나 이상의 구성요소 블록(element block)을 식별하는 단계-각 구성요소 블록은 적어도 하나의 상기 구성요소를 함유하고 있음-; 및
    상기 마크업 언어 문서를 나타내는 데이터를 생성하는 단계-상기 구성요소 블록 및 상기 레이아웃 내에서의 그 위치의 제1 리스트를 상기 데이터에 포함시킴-
    를 포함하는 문서 트랜스코딩(document transcoding) 방법.
  2. 제1항에 있어서,
    상기 식별된 블록 및 위치의 리스트를 포함하는, 상기 마크업 언어 문서를 나타내는 상기 데이터를 상기 레이아웃에 상응하여 상기 장치의 스크린에 상기 문서를 렌더링하는 것이 가능한 브라우저를 포함하는 장치로 전달하는 단계를 더 포함하는 것을 특징으로 하는 문서 트랜스코딩 방법.
  3. 제1항에 있어서,
    상기 수신 단계는 HTTP 혹은 HTTPS 요청을 전송하고 HTTP 혹은 HTTPS 응답을 수신하는 단계를 포함하는 것을 특징으로 하는 문서 트랜스코딩 방법.
  4. 제1항에 있어서,
    상기 문서의 가상 레이아웃을 생성하는 단계는 장치의 디스플레이 컨트롤러로의 인스트럭션(instruction)을 생성하는 단계를 포함하되,
    상기 인스트럭션은 상기 디스플레이 컨트롤러가 상기 디스플레이 상에 상기 레이아웃의 표현(representation)이 도시되도록 하는 것을 특징으로 하는 문서 트랜스코딩 방법.
  5. 제4항에 있어서,
    상기 마크업 언어 문서를 나타내는 데이터는 적어도 상기 인스트럭션의 부분집합을 포함하는 것을 특징으로 하는 문서 트랜스코딩 방법.
  6. 제1항에 있어서,
    상기 구성요소 블록은 텍스트 블록인 것을 특징으로 하는 문서 트랜스코딩 방법.
  7. 제1항에 있어서,
    상기 블록은 사각형(rectangle)이고, 상기 위치는 적어도 2쌍의 좌표에 의해 정의되는 것을 특징으로 하는 문서 트랜스코딩 방법.
  8. 제1항에 있어서,
    수신된 상기 마크업 언어 문서는 타 문서를 참조하는 하나 이상의 참조를 포함하되,
    상기 가상 렌더링으로부터 하나 이상의 참조 블록(reference block)을 식별하는 단계-각 참조 블록은 또 다른 문서에의 참조(reference)를 함유함-; 및
    상기 식별된 참조 블록 및 상기 레이아웃 내에서의 위치의 제2 리스트를 상기 데이터에 포함시키는 단계를 더 포함하는 것을 특징으로 하는 문서 트랜스코딩 방법.
  9. 제8항에 있어서,
    상기 참조는 하이퍼링크인 것을 특징으로 하는 문서 트랜스코딩 방법.
  10. 제1항에 있어서,
    상기 마크업 언어는 HTML, XHTML 혹은 XML인 것을 특징으로 하는 문서 트랜스코딩 방법.
  11. 구성요소(element)의 구조화된 리스트(structured list)를 가지는 마크업 언어 문서를 나타내는 데이터를 수신하는 단계-상기 데이터는 하나 이상의 구성요소 블록(element block) 및 상기 마크업 언어 문서의 레이아웃 내에서의 그 위치의 제1 리스트를 포함하고, 각 구성요소 블록은 적어도 하나의 상기 구성요소를 함유함-;
    상기 문서 내에서 위치(position) 혹은 방향(direction)을 선택하는 단계;
    상기 위치 혹은 방향에 기초하여 적어도 하나의 상기 구성요소 블록을 선택하기 위해 상기 문서의 레이아웃을 분석하는 단계; 및
    상기 장치의 디스플레이 상에 상기 마크업 언어 문서의 적어도 일부분을 렌더링하는 단계-상기 식별된 구성요소 블록이 상기 디스플레이 상의 미리 정의된 위치로 정해지도록 상기 위치가 선택됨-
    를 포함하는 장치 상에서의 문서 표시 방법.
  12. 제11항에 있어서,
    상기 마크업 언어 문서를 나타내는 데이터는 상기 장치의 디스플레이 컨트롤러가 상기 디스플레이 상에서 상기 레이아웃의 표현(representation)이 도시되도록 하는 인스트럭션(instruction)을 포함하고, 상기 렌더링은 적어도 상기 위치와 연관된 상기 인스트럭션의 부분집합을 상기 디스플레이 컨트롤러로 전송하는 것을 포함하는 것을 특징으로 하는 문서 표시 방법.
  13. 제11항에 있어서,
    상기 구성요소 블록은 텍스트 블록인 것을 특징으로 하는 문서 표시 방법.
  14. 제11항에 있어서,
    상기 블록은 사각형이고 상기 위치는 적어도 2쌍의 좌표에 의해 정의되는 것을 특징으로 하는 문서 표시 방법.
  15. 제11항에 있어서,
    상기 수신된 데이터는 하나 이상의 참조 블록 및 상기 마크업 언어 문서의 상기 레이아웃 내에서의 위치의 제2 리스트를 포함하고, 각 참조 블록은 또 다른 문서로의 적어도 하나의 참조(reference)를 함유하는 것을 특징으로 하는 문서 표시 방법.
  16. 제15항에 있어서,
    상기 참조는 하이퍼링크이거나 하이퍼링크의 표현(representation)인 것을 특징으로 하는 문서 표시 방법.
  17. 제11항에 있어서,
    상기 마크업 언어는 HTML, XHTML 혹은 XML인 것을 특징으로 하는 문서 표시 방법.
  18. 제11항에 있어서,
    상기 위치 혹은 상기 방향은 상기 장치의 사용자 인터페이스로부터 수신된 사용자 입력에 기초하여 선택된 것을 특징으로 하는 문서 표시 방법.
  19. 제1항 내지 제10항 중 어느 한 항에 기재된 방법을 수행하도록 구현된 서버.
  20. 제11항 내지 제18항 중 어느 한 항에 기재된 방법을 수행하도록 구현된 장치.
  21. 컴퓨터 판독가능 매체에 구현되고, 서버가 제1항 내지 제10항 중 어느 한 항에 기재된 방법을 수행하도록 허용하는 인스트럭션을 포함하는 컴퓨터 프로그램 제품.
  22. 컴퓨터 판독가능 매체에 구현되고, 장치가 제11항 내지 제18항 중 어느 한 항에 기재된 방법을 수행하도록 허용하는 인스트럭션을 포함하는 컴퓨터 프로그램 제품.
KR1020107028602A 2008-06-19 2009-06-19 전자 문서를 트랜스코딩하고 디스플레이하는 방법, 시스템 및 장치 KR20110058744A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7397208P 2008-06-19 2008-06-19
US61/073,972 2008-06-19

Publications (1)

Publication Number Publication Date
KR20110058744A true KR20110058744A (ko) 2011-06-01

Family

ID=41078010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107028602A KR20110058744A (ko) 2008-06-19 2009-06-19 전자 문서를 트랜스코딩하고 디스플레이하는 방법, 시스템 및 장치

Country Status (7)

Country Link
US (1) US8984395B2 (ko)
EP (1) EP2313840A1 (ko)
KR (1) KR20110058744A (ko)
CN (1) CN102177515B (ko)
BR (1) BRPI0915384B1 (ko)
RU (1) RU2010153781A (ko)
WO (1) WO2009153650A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110126113A1 (en) * 2009-11-23 2011-05-26 c/o Microsoft Corporation Displaying content on multiple web pages
US8756488B2 (en) 2010-06-18 2014-06-17 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
WO2012014209A2 (en) * 2010-07-29 2012-02-02 Infogin Ltd. Internet communication system and method
US8881056B2 (en) * 2010-08-30 2014-11-04 Sap Se Dynamic view computation and display
US9600350B2 (en) 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
CN102903094B (zh) * 2011-07-25 2015-09-02 株式会社理光 电子文档栅格化方法和电子文档栅格化装置
US9146909B2 (en) * 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) * 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US20130145252A1 (en) * 2011-12-02 2013-06-06 Opera Software Asa Page based navigation and presentation of web content
US9099031B2 (en) * 2012-06-15 2015-08-04 Apple Inc. Layout synchronization
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9535887B2 (en) * 2013-02-26 2017-01-03 Google Inc. Creation of a content display area on a web page
CN104035942B (zh) * 2013-03-08 2018-09-07 腾讯科技(深圳)有限公司 屏幕显示模式切换时的输入框调整方法及装置
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
USD755803S1 (en) * 2014-02-21 2016-05-10 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD768667S1 (en) * 2014-02-21 2016-10-11 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US9658758B1 (en) * 2014-05-02 2017-05-23 Tribune Publishing Company, Llc Online information system with continuous scrolling and position correction
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US9792266B1 (en) * 2014-12-08 2017-10-17 Amazon Technologies, Inc. Content synchronization across devices
CN105843494B (zh) * 2015-01-15 2020-06-09 中兴通讯股份有限公司 一种实现区域屏幕截图的方法、装置和终端
CN106156148B (zh) * 2015-04-14 2020-08-21 腾讯科技(深圳)有限公司 一种页面的渲染方法、装置和终端设备
US10089280B1 (en) * 2016-03-22 2018-10-02 Massachusetts Mutual Life Insurance Company Systems and methods for improving workflow efficiency and for electronic record population in a networked environment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
JPWO2002044974A1 (ja) * 2000-11-30 2004-04-02 松下電器産業株式会社 情報処理装置および情報表示方法
US20020129006A1 (en) * 2001-02-16 2002-09-12 David Emmett System and method for modifying a document format
US20040003028A1 (en) * 2002-05-08 2004-01-01 David Emmett Automatic display of web content to smaller display devices: improved summarization and navigation
NO318991B1 (no) 2002-09-05 2005-05-30 Opera Software Asa Presentasjon av HTML-innhold på en liten terminalskjerm
US7362311B2 (en) 2003-04-07 2008-04-22 Microsoft Corporation Single column layout for content pages
US20050041858A1 (en) 2003-08-21 2005-02-24 International Business Machines Corporation Apparatus and method for distributing portions of large web pages to fit smaller constrained viewing areas
KR101068509B1 (ko) 2003-09-24 2011-09-28 노키아 코포레이션 작은 디스플레이 창에서 큰 객체들의 개선된 표현법
US8745515B2 (en) * 2004-04-07 2014-06-03 Nokia Corporation Presentation of large pages on small displays
US7594194B2 (en) 2003-09-24 2009-09-22 Nokia Corporation Portrayal of navigation objects
US7348982B2 (en) * 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US7627592B2 (en) 2004-12-16 2009-12-01 Microsoft Corporation Systems and methods for converting a formatted document to a web page
EP1686454B1 (en) * 2005-01-28 2018-12-26 Kyocera Corporation Display apparatus
US20080059478A1 (en) * 2006-08-31 2008-03-06 Ari Craine Methods, systems, and computer program products for organizing and sharing content
US9128596B2 (en) 2006-09-22 2015-09-08 Opera Software Asa Method and device for selecting and displaying a region of interest in an electronic document
WO2008055204A2 (en) * 2006-10-31 2008-05-08 Dotted Pair, Inc. System and method for interacting with item catalogs
KR100996037B1 (ko) * 2006-12-21 2010-11-22 삼성전자주식회사 무선 인터넷 접속이 가능한 이동 통신 단말기에서 하이퍼링크 정보를 제공하기 위한 장치 및 방법
US20080222273A1 (en) 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US20090298529A1 (en) * 2008-06-03 2009-12-03 Symbol Technologies, Inc. Audio HTML (aHTML): Audio Access to Web/Data

Also Published As

Publication number Publication date
WO2009153650A1 (en) 2009-12-23
RU2010153781A (ru) 2012-07-27
CN102177515B (zh) 2015-11-25
BRPI0915384A2 (pt) 2016-09-06
US8984395B2 (en) 2015-03-17
EP2313840A1 (en) 2011-04-27
US20100023855A1 (en) 2010-01-28
BRPI0915384B1 (pt) 2019-11-26
CN102177515A (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
US8984395B2 (en) Methods, systems and devices for transcoding and displaying electronic documents
EP2074497B1 (en) Method and device for selecting and displaying a region of interest in an electronic document
KR101494285B1 (ko) 전자 문서의 선택 영역 표시 시 텍스트의 동적 래핑 방법 및 장치
US8418054B2 (en) Web content read information display device, method, and program
US7810049B2 (en) System and method for web navigation using images
US7487447B1 (en) Web page zoom feature
US20130145252A1 (en) Page based navigation and presentation of web content
US20050229119A1 (en) Method for the presentation and selection of document links in small screen electronic devices
US20070279437A1 (en) Method and apparatus for displaying document image, and information processing device
JP5235671B2 (ja) 端末装置、コンテンツ表示方法、およびコンテンツ表示プログラム
JPWO2008013128A1 (ja) 端末装置、コンテンツ表示方法、およびコンテンツ表示プログラム
KR20080057907A (ko) 무선 인터넷 접속이 가능한 이동 통신 단말기에서하이퍼링크 정보를 제공하기 위한 방법
US7843437B1 (en) Hand-held browser transcoding
JP2012181693A (ja) ウェブページ表示制御装置およびスクロール制御方法
JP2003108424A (ja) 情報表示装置、情報表示プログラム
JP2000090035A (ja) パーソナルコンピュータにおける画面操作装置

Legal Events

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