KR20140009175A - 서버로부터의 문서의 부분 로딩 및 편집 - Google Patents

서버로부터의 문서의 부분 로딩 및 편집 Download PDF

Info

Publication number
KR20140009175A
KR20140009175A KR1020137011950A KR20137011950A KR20140009175A KR 20140009175 A KR20140009175 A KR 20140009175A KR 1020137011950 A KR1020137011950 A KR 1020137011950A KR 20137011950 A KR20137011950 A KR 20137011950A KR 20140009175 A KR20140009175 A KR 20140009175A
Authority
KR
South Korea
Prior art keywords
document
server computer
client computer
computer
objects
Prior art date
Application number
KR1020137011950A
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 KR20140009175A publication Critical patent/KR20140009175A/ko

Links

Images

Classifications

    • 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
    • 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]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Computer And Data Communications (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

클라이언트 컴퓨터 상에서, 문서의 제 1 부분을 열라는 요청이 서버 컴퓨터로 전송된다. 상기 문서는 서버 컴퓨터에 저장되어 있다. 문서의 제 1 부분은 전체 문서보다 작다. 상기 요청은 문서의 제 1 부분의 크기를 결정하기 위해 서버 컴퓨터에 의해 사용되는 정보를 포함한다. 문서의 제 1 부분은 서버 컴퓨터로부터 수신된다. 문서의 제 2 부분은 클라이언트 컴퓨터 상의 디스플레이 스크린 상에 렌더링된다. 문서의 제 2 부분은 문서의 제 1 부분의 부분집합이다. 클라이언트 컴퓨터가 사용자가 문서의 제 3 부분을 스크롤했고 문서의 더 많은 부분이 서버 컴퓨터에서 이용 가능하다고 결정할 때, 문서의 추가 일부분을 열라는 제 2 요청이 서버 컴퓨터로 전송된다.

Description

서버로부터의 문서의 부분 로딩 및 편집{PARTIAL LOADING AND EDITING OF DOCUMENTS FROM A SERVER}
클라이언트 컴퓨터에 의해 액세스되는 문서는 흔히 네트워크를 통해 서버 컴퓨터 또는 데이터베이스 상에 저장된다. 일반적인 문서 액세스는 클라이언트 컴퓨터 상의 웹 브라우저를 통해 서버 컴퓨터 상에 저장된 문서를 보는 것(viewing)과 클라이언트 컴퓨터 상의 애플리케이션 프로그램을 통해 서버 컴퓨터 상에 저장된 문서를 편집하는 것을 포함한다.
네트워크를 통해 클라이언트 컴퓨터 상의 문서를 액세스할 때, 전송 거리, 문서 길이, 및 그 밖의 다른 요인들로 인해서 시간 딜레이가 발생할 수 있다.
이 개요는 이하의 상세한 설명에 추가로 기재될 개념들의 모음을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 청구되는 발명의 핵심 특징 또는 필수 특징을 식별하기 위한 의도가 아니며, 청구되는 발명의 범위를 결정하려는 의도도 갖지 않는다.
본 발명의 실시예는 클라이언트 컴퓨터에서 문서를 액세스하기 위한 방법에 관한 것이다. 클라이언트 컴퓨터에서, 문서의 제 1 부분을 열라는 제 1 요청이 서버 컴퓨터로 전송된다. 상기 문서는 서버 컴퓨터에 저장되어 있다. 상기 문서의 제 1 부분은 전체 문서보다 작다. 요청은 상기 문서의 제 1 부분의 크기를 결정하기 위해 서버 컴퓨터에 의해 사용되는 정보를 포함한다. 클라이언트 컴퓨터에서, 문서의 제 1 부분은 서버 컴퓨터로부터 수신된다. 상기 문서의 제 1 부분이 서버 컴퓨터로부터 수신된 후, 문서의 제 2 부분이 상기 클라이언트 컴퓨터 상의 디스플레이 스크린 상에 렌더링된다. 상기 문서의 제 2 부분은 문서의 제 1 부분의 부분집합이다. 클라이언트 컴퓨터에서, 문서의 더 많은 부분이 서버 컴퓨터에서 이용 가능함에 대한 결정이 이뤄진다. 클라이언트 컴퓨터에서, 사용자가 클라이언트 컴퓨터의 디스플레이 스크린 상에서 문서의 제 3 부분을 스크롤했음에 대한 결정이 이뤄진다. 클라이언트 컴퓨터가 상기 사용자가 문서의 제 3 부분을 스크롤했다고 결정할 때 및 클라이언트 컴퓨터가 문서의 더 많은 부분이 서버 컴퓨터에서 이용 가능하다고 결정할 때, 문서의 추가 일부분을 열라는 제 2 요청이 서버 컴퓨터로 전송된다.
이러한, 그리고 그 밖의 다른 특징 및 이점이 이하의 상세한 설명을 읽고 연관된 도면을 검토함으로써 자명해질 것이다. 이상의 일반적인 설명 및 이하의 상세한 설명 모두 예시에 불과하며, 청구되는 양태를 제한하는 것이 아님을 이해하여야 한다.
도 1은 네트워크를 통해 문서를 액세스하는 데 사용되는 예시적 시스템을 도시한다.
도 2는 도 1의 서버 컴퓨터에 저장된 예시적 문서의 하나의 페이지를 도시한다.
도 3은 도 1의 클라이언트 컴퓨터 상의 예시적 메모리 영역에서의 문서 저장의 예를 도시한다.
도 4는 도 1의 클라이언트 컴퓨터 상의 예시적 메모리 영역에서의 문서 저장의 또 다른 예를 도시한다.
도 5는 도 1의 클라이언트 컴퓨터 상의 예시적 메모리 영역에서의 문서 저장의 또 다른 예를 도시한다.
도 6은 문서의 일부분을 열기 위한 클라이언트 컴퓨터에서의 예시적 방법을 도시한다.
도 7은 문서의 일부분을 열기 위한 서버 컴퓨터에서의 예시적 방법을 도시한다.
도 8은 도 7에서 열릴 문서의 일부분에 대한 객체 임계치를 결정하기 위한 예시적 방법을 도시한다.
도 9는 도 1의 클라이언트 컴퓨터 및 서버 컴퓨터의 예시적 구성요소를 도시한다.
본 출원은 서버 컴퓨터 상에 저장된 문서의 부분 로딩(partial loading)과 편집(editing)을 위한 시스템 및 방법에 관한 것이다.
예시적 실시예에서, 서버 컴퓨터 상에 저장된 문서가 클라이언트 컴퓨터 상에서 액세스될 때, 상기 서버 컴퓨터는 문서의 일부분만 열고, 문서의 열린 부분을 클라이언트 컴퓨터로 전송한다. 일반적으로 문서의 열린 부분의 크기는 클라이언트 컴퓨터 상의 디스플레이 스크린 상에 들어 맞을 수 있는 문서의 크기에, 스크롤링을 가능하게 하기 위한 문서 부분을 약간 더한 것에 대응한다. 문서의 열린 부분은 클라이언트 컴퓨터 상의 메모리로 로딩된다. 전체 문서 대신 문서의 일부분만 열고, 문서의 이 일부분을 클라이언트 컴퓨터 상으로 로딩함으로써, 전체 문서가 열릴 경우보다 문서는 클라이언트 컴퓨터 상에 더 빠르게 렌더링될 수 있다.
본원에서, 문서의 일부분을 여는 것은 서버 컴퓨터에서 문서에 대한 취급권을 얻고, 문서의 일부분을 클라이언트 컴퓨터로 전송하는 것을 일컫는다.
도 1은 네트워크를 통해 문서를 액세스하는 데 사용되는 예시적 시스템(100)을 도시한다. 상기 예시적 시스템(100)은 클라이언트 컴퓨터(102, 104), 네트워크(110), 및 서버 컴퓨터(112)를 포함한다. 이보다 더 많거나 더 적은 클라이언트 컴퓨터 및 서버 컴퓨터가 사용될 수 있다.
서버 컴퓨터(112)는 네트워크(110)를 통해 클라이언트 컴퓨터(102 및 104)에 의해 액세스 가능하다. 네트워크(110)의 예로는 인터넷(Internet) 및 기업 인트라넷(corporate Intranet)이 있다. 네트워크(110)의 그 밖의 다른 예가 가능하다.
예시적 클라이언트 컴퓨터(102)는 웹 브라우저(106)를 포함하고, 예시적 클라이언트 컴퓨터(104)는 클라이언트 소프트웨어 애플리케이션(108)을 포함한다. 예시적 클라이언트 소프트웨어 애플리케이션은 Microsoft Corporation(워싱턴, 레드몬드)의 Microsoft Word® 2010 워드 프로세싱 프로그램이다.
클라이언트 컴퓨터(102) 상의 웹 브라우저(106)에 의해 서버 컴퓨터(112) 상에 저장된 문서가 액세스될 때, 클라이언트 컴퓨터(102)는 문서를 열라는 요청을 서버 컴퓨터(112)로 전송한다. 일반적으로 요청은 클라이언트 컴퓨터(102) 상의 정보의 디스플레이와 관련된 하나 이상의 파라미터를 포함한다. 예를 들어, 하나의 파라미터는 문서가 렌더링될 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기를 특정할 수 있다. 또 다른 파라미터가 문서가 렌더링될 때의 폰트 크기를 특정할 수 있다. 세 번째 파라미터는 픽셀로 된 디스플레이 스크린 해상도를 특정할 수 있다. 그 밖의 다른 파라미터가 사용될 수 있다.
예시적 서버 컴퓨터(112)가 문서를 열라는 요청을 수신할 때, 서버 컴퓨터(112)는 문서가 부분적으로 열릴 것을 결정한다. 일부 예에서, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102) 상의 정보의 디스플레이와 관련된 하나 이상의 파라미터의 존재에 의해 문서가 부분적으로 열릴 것을 결정한다. 또 다른 예에서, 문서를 열라는 요청은 문서가 부분적으로 열리도록 특정하는 기능 코드(function code)를 포함할 수 있다. 서버 컴퓨터(112)가 문서가 부분적으로 열려야 한다고 결정하기 위한 또 다른 수단이 가능하다.
서버 컴퓨터(112)는 문서의 얼마나 많은 부분이 클라이언트 컴퓨터(102)로 전송되어야 하는지를 결정하기 위해 하나 이상의 파라미터에 포함된 정보를 이용한다. 서버 컴퓨터(112)는 문서의 얼마나 많은 부분이 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기에 들어 맞을 것인지를 결정한다. 서버 컴퓨터(112)가 문서의 얼마나 많은 부분이 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기에 들어 맞을 것인지를 결정할 때, 서버 컴퓨터(112)는 결정된 크기에 추가 크기를 더한 만큼에 대해 문서를 연다. 추가 크기는 클라이언트 컴퓨터(102)로 로딩되지만 당장 디스플레이되지는 않을 문서의 부분을 나타낸다. 예를 들어, 문서를 열 때, 추가 크기는 하나의 디스플레이 스크린에 들어 맞는 문서의 초기 부분 아래의 하나의 디스플레이 스크린에 대응할 수 있다. 클라이언트 컴퓨터(102)의 사용자가 문서의 최초 디스플레이된 스크린을 지나 스크롤할 때, 문서의 두 번째 스크린이 이미 로딩되어 있고, 디스플레이될 준비가 되어 있다.
서버 컴퓨터(112)가 문서의 얼마나 많은 부분이 열리는지를 결정할 때, 서버 컴퓨터(112)는 서버 컴퓨터(112)가 열린 문서의 일부분을 클라이언트 컴퓨터(102)로 전송한다. 클라이언트 컴퓨터(102)가 서버 컴퓨터(112)로부터 문서의 일부분을 수신할 때, 클라이언트 컴퓨터(102)는 문서의 수신된 일부분을 클라이언트 컴퓨터(102)의 메모리로 로딩한다. 그 후, 클라이언트 컴퓨터(102)는 문서의 첫 페이지를 클라이언트 컴퓨터(102)의 디스플레이 스크린에 렌더링한다.
도 2는 서버 컴퓨터(112) 상에 저장된 예시적 문서(200)의 하나의 페이지를 도시한다. 예시적 문서(200)의 페이지는 5개의 상위 객체(top-level object), 즉 4개의 문단 및 1개의 표를 포함한다. 본원에서 사용될 때, 객체는 문서의 특정 구성요소이다. 예시적 객체는 문단, 표, 그림, 문장, 단어, 표의 칸, 및 하이퍼링크(hyperlink)를 포함한다. 그 밖의 다른 예시적 객체가 가능하다. 객체, 가령, 문단, 표, 및 그림은 추가 내장된 객체(embedded object)를 포함할 수 있기 때문에, 상위 객체라고 지정된다. 예를 들어, 문단 객체는 하나 이상의 문장 객체를 포함할 수 있다. 또 다른 상위 객체가 가능하다. 각각의 상위 객체는 고유의 식별자를 가진다. 따라서 하나의 문서 내 각각의 문단, 문장, 단어, 그림, 표 및 표의 칸, 등은 고유하게 식별된다.
예시적 문서(200) 내 제 1 상위 객체는 문단(202)이다. 예시적 문단(202)은 ID # 100로 식별된다. 문서(200) 내 또 다른 상위 객체는 문단(204)(ID # 200), 문단(206)(ID # 300), 표(208)(ID # 400), 및 문단(210)(ID # 500)을 포함한다. 예를 들어, 객체 내에 내장된 객체, 가령, 문단 내 문장, 또는 문장 내 단어는 더 상위 객체와 연관된 ID를 가질 수 있다. 예를 들어, 문단(202) 내 제 1 문장이 110으로 식별될 수 있으며, 상기 제 1 문장 내 제 1 단어가 101로 식별될 수 있다. 예를 들어, ID 번호는 서로 다른 포맷을 가질 수 있다. 고유 ID를 갖는 문서 내 각각의 객체를 식별하는 것은 문서의 편집(editing)을 용이하게 하며, 이는 이하에서 더 상세히 설명될 것이다.
일반적으로 문서는 서버 컴퓨터(112) 상에 문서의 고유 포맷으로 저장된다. 예를 들어, 일반적으로 Mocrosoft Word® 워드 프로세싱 문서는 Word® 워드 프로세싱 문서와 일관되는 포맷으로 저장된다. 일부 버전의 Microsoft Word® 워드 프로세싱 애플리케이션의 경우, 상기 포맷은 XML일 수 있다. 그 밖의 다른 버전의 Microsoft Word® 워드 프로세싱 애플리케이션의 경우, 포맷은 독점적(proprietary)일 수 있다. 그러나 Word® 워드 프로세싱 문서가 클라이언트 컴퓨터(102)의 웹 브라우저 상에 렌더링될 때, 상기 Word® 워드 프로세싱 문서는 상기 웹 브라우저와 일관되는 포맷, 가령, HTML 포맷으로 렌더링된다. 서버 컴퓨터(112)는 문서의 열린 부분을 클라이언트 컴퓨터(102)에게, 상기 클라이언트 컴퓨터(102)가 HTML로 변환시킬 수 있는 포맷으로 전송한다. 예를 들어, 서버 컴퓨터(112)가 클라이언트 컴퓨터(102) 상에서 렌더링될 문서의 일부분을 열 때, 상기 서버 컴퓨터(112)는 문서를 Word® 워드 프로세싱 포맷에서 XML 포맷으로 바꿀 수 있다. 그 후, 상기 서버 컴퓨터(112)는 문서의 열린 부분을 XML 포맷으로 클라이언트 컴퓨터(102)로 전송한다.
서버 컴퓨터(112)가 문서의 일부분을 열기로 결정할 때, 서버 컴퓨터(112)는 상기 문서의 열린 부분에 포함될 객체의 개수에 대한 임계치를 결정한다. 서버 컴퓨터(112)는 몇 가지 방법들 중 하나를 통해 객체 임계치를 결정할 수 있다. 한 가지 방법에서, 문서를 열라는 요청에서 클라이언트 컴퓨터(102)로부터 서버(112)로 전송되는 하나 이상의 파라미터로 제공되는 것으로서, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)의 디스플레이 스크린에 대한 정보를 획득한다.
하나 이상의 파라미터에 포함되는 디스플레이 스크린 정보는 디스플레이 스크린의 크기, 디스플레이 스크린 상에서 사용되는 폰트의 크기, 및 픽셀로 된 디스플레이 스크린 해상도를 포함할 수 있다. 디스플레이 스크린 정보를 이용할 때, 서버 컴퓨터(112)는 디스플레이 스크린 상에 들어 맞을 객체의 개수를 결정한다. 또 다른 방법에서, 디스플레이 스크린 상에 들어 맞을 객체의 개수는 문서의 일부분을 열라는 클라이언트 컴퓨터(102)로부터의 요청 메시지에 포함된 힌트(hint)로부터 결정된다.
그 후, 서버 컴퓨터(112)는 객체의 추가 개수를 결정하는데, 이는 일반적으로 하나 또는 두 개의 추가 디스플레이 스크린 크기에 대응한다. 객체 임계치는 디스플레이 스크린 상에 들어 맞을 객체의 개수에 추가 객체의 개수를 더한 합에 대응한다. 하나 또는 두 개의 추가 디스플레이 스크린 크기에 대응하는 문서의 일부분에 의해, 클라이언트 컴퓨터(102) 상에서 사용자는 페이지를 스크롤하고, 인접 페이지를 클라이언트 컴퓨터(102) 상의 메모리로부터 렌더링되게 한다. 객체 임계치를 계산하기 위한 또 다른 방법이 가능하다.
서버 컴퓨터(112)는 객체 임계치 크기에 대응하는 문서의 일부분을 열고, 문서로부터 클라이언트 컴퓨터(102)로 객체를 전송하기 시작한다. 객체 임계치에 도달할 때, 상위 객체의 끝 부분에 도달할 때까지 서버 컴퓨터(112)는 객체를 클라이언트 컴퓨터(102)로 계속 전송한다. 상위 객체의 끝 부분에 도달할 때까지 전송함으로써, 예를 들어, 문서의 열린 부분이 문단 또는 표의 중간에서 끊기는 것 대신, 상위 객체에서 끊기는 것이 보장된다. 객체 임계치에 도달하고 상위 객체의 끝 부분에 도달할 때, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)로 객체를 전송하는 것을 중단한다.
도 3은 서버 컴퓨터(112)로부터 클라이언트 컴퓨터(102)로 전송될 문서의 열린 부분을 로딩하고 저장하기 위해 클라이언트 컴퓨터(102) 상의 메모리 영역(308)을 사용하는 것을 도시한다. 메모리 영역(308)은 서로 다른 상위 객체 크기를 수용하기 위해 가변적인 크기를 가진다. 예시적 메모리 영역(308)은 문서의 열린 부분 중 3 페이지 부분으로부터의 데이터를 저장한다. 또 다른 예에서, 페이지의 부분의 더 많거나 더 적은 페이지를 포함하는 여러 다른 메모리 크기가 저장될 수 있다.
도 3에서, 두꺼운 검은 선 경계를 이용해 나타낸 페이지(304)는 클라이언트 컴퓨터(102) 상에서 렌더링되는 문서 데이터의 한 페이지에 대응한다. 페이지(304)는 3개의 예시적 상위 객체 - 객체(316, 318 및 320)를 포함한다. 페이지(302)는 페이지(304) 앞의 문서 페이지에 대응하고, 페이지(306)는 페이지(304) 뒤의 문서 페이지에 대응한다. 도 3에서, 페이지(302 및 306)의 일부분만 클라이언트 컴퓨터(102) 상의 메모리 영역(308)으로 실제로 로딩된다. 예를 들어, 페이지(302)의 객체(312 및 314)는 메모리 영역(308)으로 로딩되지만, 객체(310)는 로딩되지 않는다. 마찬가지로 객체(320, 322 및 324)는 메모리 영역(308)으로 로딩되지만, 객체(326)는 로딩되지 않는다.
앞서 언급한 바와 같이, 일반적으로 서버 컴퓨터(112)는, 렌더링된 데이터의 하나의 페이지에 문서의 추가 섹션을 더한 것에 대응하는 열린 문서 데이터를 클라이언트 컴퓨터(102)로 전송한다. 도 3에서 페이지(304)는 렌더링된 페이지에 대응한다. 페이지(302)의 객체(312, 314) 및 페이지(306)의 객체(320, 322, 및 324)는 문서의 추가 섹션에 대응한다. 문서의 추가 섹션을 로딩하고 저장하는 이유는 사용자에 의한 문서의 매끄러운 스크롤이 가능해지도록 하기 위함이다.
예를 들어, 사용자가 페이지(304)의 하부를 지나 스크롤 다운(scroll down)하는 경우, 클라이언트 컴퓨터(102) 상의 메모리에 이미 저장된 객체(320)는 어떠한 추가 다운로딩 없이, 보여질 수 있다. 마찬가지로, 사용자가 페이지(304)의 상부를 지나 스크롤 업(scroll up)하는 경우, 역시 객체(314)가 클라이언트 컴퓨터(102) 상의 메모리에 이미 저장되어 있고, 어떠한 추가 다운로딩 없이 보여질 수 있다.
도 3에 도시된 것처럼, 메모리 영역(308)에 로딩되고 저장된 첫 번째 객체는 객체(312)이고, 메모리 영역(308)에 로딩되고 저장된 마지막 객체는 객체(324)이다. 메모리 영역(308)은 완전한 상위 객체를 저장한다. 메모리 영역(308)의 상부는 아이템(328)으로 지정되고, 상위 객체(312)의 첫 번째 줄에 대응한다. 마찬가지로 메모리 영역(308)의 하부는 아이템(330)으로 지정되고 상위 객체(324)의 마지막 줄에 대응한다. 페이지(306)가 클라이언트 컴퓨터(102)의 디스플레이 스크린 상에 렌더링되도록 사용자가 페이지(304)의 하부까지 스크롤 다운할 때, 객체(312)는 메모리 영역(308) 밖으로 이동하고, 객체(326)는 메모리 영역(308) 안으로 이동할 수 있다.
이러한 방식으로, 메모리 영역(308)은 새로운 상위 객체를 포함하고 오래된 상위 객체를 제거하기 위해 크기를 조절한다. 추가로 이하에서 언급되겠지만, 메모리 영역(308)으로부터 제거되는 상위 객체가 클라이언트 컴퓨터(102)로부터 언로딩될 수 있고, 추가 객체가 서버 컴퓨터(112)로부터 수신되고 메모리 영역(308)에 저장될 수 있다.
도 4는 도 2의 문서의 일부분이 클라이언트 컴퓨터(102)에서 초기에 열리고 서버 컴퓨터(112)로부터 수신될 때의 클라이언트 컴퓨터(102)의 메모리 영역(402)의 일례를 도시한다. 메모리 영역(402)에 로딩되고 저장되는 문서의 예시적인 부분은 문서(200)의 첫 번째 페이지와 문서의 두 번째 페이지(404)의 일부를 포함한다. 예로서, 문서의 두 번째 페이지(404) 전체가 메모리 영역(402)에 로딩되고 저장될 수도 있다.
문서(200)의 첫 번째 페이지는 클라이언트 컴퓨터(102)의 디스플레이 스크린 상에 렌더링된다. 일반적으로, 렌더링된 페이지 앞의 문서 페이지 또는 페이지 부분이 또한 메모리 영역(402)에 로딩되고 저장된다. 그러나 이 예시의 경우, 렌더링된 페이지가 문서의 첫 번째 페이지이기 때문에, 상기 첫 번째 페이지에 앞서는 어떠한 콘텐츠도 로딩되지 않는다. 이 예시에서, 이는 문서(200)의 첫 번째 페이지에 앞서는 빈 페이지(401)로 표시된다. 이 예에서, 사용자가 페이지(200)의 하부까지 그리고 페이지(402)까지 스크롤할 때 페이지(200)를 저장하기 위한 메모리 공간을 허용하기 위해 페이지(200)가 로딩되는 장소 위의 메모리 영역(402)의 부분이 사용되지 않는다. 메모리 영역(402)에서의 스크롤링의 구현은 이하에서 더 상세히 설명될 것이다.
도 4에 도시된 것처럼, 문서의 첫 번째 페이지(200)는 객체(202, 204, 206 및 208)와 객체(210)의 부분을 포함한다. 문서의 두 번째 페이지(404)는 객체(210)의 나머지 부분을 포함하고 (408, 410 및 412)도 또한 포함한다. 그러나 이 예에서, 문서의 두 번째 페이지(404)의 일부분만 로딩되기 때문에, 객체(412)는 메모리 영역(402) 아래에 있고 이 시점에서는 클라이언트 컴퓨터(102) 상에 실제로 로딩 및 저장되지는 않는다. 객체(412)는 페이지(404)의 부분임을 나타내도록 도 4에 도시되어 있다.
객체(202, 204, 206, 208, 210, 408, 410 및 412)는 모두 상위 객체이고, 이 예에서, 이는, 이들은 문단, 표, 목록 또는 그림 같은 객체를 포함함을 의미한다. 서버 컴퓨터(112)가 서버 컴퓨터(112)에 의해 계산되는 객체 임계치를 기초로 열릴 문서의 일부분의 크기를 결정할 때, 서버 컴퓨터는 객체 임계치에 대응하는 객체를 포함하는 상위 객체의 끝 부분까지, 객체 임계치에 대응하는 객체를 지나 계속한다. 도 4에 도시된 것처럼, 메모리 영역(402)에 로딩되고 저장되는 마지막 상위 객체는 객체(410)이다. 객체(410)의 마지막 줄(406)은 메모리 영역(402)의 끝 부분에 대응한다.
서버 컴퓨터(112)가 문서의 일부분을 클라이언트 컴퓨터(102)로 전송할 때, 서버 컴퓨터(112)는 또한, 서버 컴퓨터(112)에서 문서의 더 많은 부분이 이용 가능할 수 있다는 표시를 제공한다. 서버 컴퓨터(112)는 문서의 일부분을 클라이언트 컴퓨터(102)로 전송하기 위해 사용되는 메시지 내 플래그(flag)를 설정함으로써, 문서의 더 많은 부분이 이용 가능하다는 표시를 제공할 수 있다. 일반적으로 상기 플래그는 문서의 더 많은 부분이 이용 가능할 때 설정된다. 플래그를 이용하는 것 대신, 서버 컴퓨터(112)는 전송된 문서의 일부분 내 마지막 객체의 ID와 문서 내 마지막 객체의 ID를 메시지에 포함할 수 있다. ID를 평가함으로써, 클라이언트 컴퓨터(102)는 서버 컴퓨터(112)로부터 문서의 더 많은 부분이 이용 가능한지 여부를 결정할 수 있다. 클라이언트 컴퓨터(102)과 서버 컴퓨터(112) 사이에 전송되는 메시지는 HTTP 통신 프로토콜을 이용한 표준 웹-기반 메시지이다.
사용자가 렌더링된 문서를 완전히 스크롤하기 시작하고 클라이언트 컴퓨터(102)로 전체 문서가 로딩된 것은 아닐 때, 클라이언트 컴퓨터(102)는 문서의 더 많은 부분이 열리고 클라이언트 컴퓨터(102)로 다운로드될 필요가 있다고 결정한다. 클라이언트 컴퓨터(102)는 스크롤링의 정도(degree of scrolling)에 기초해, 문서의 더 많은 부분이 획득될 필요가 있다고 결정한다. 예를 들어, 클라이언트는 스크롤링된 상위 객체의 개수를 계산하고 스크롤링된 상위 객체의 개수가 임계치, 예를 들어 렌더링된 데이터의 페이지의 절반에 대응하는 임계치보다 클 때, 클라이언트 컴퓨터(102)는 서버 컴퓨터(112)로부터 문서의 추가 일부분을 요청한다. 예를 들어, 임계치는 페이지의 절반보다 크거나 작을 수 있다. 예를 들어, 임계치는 1 페이지 또는 4분의 3 페이지일 수 있다.
도 5는 사용자가 문서 내 하나의 페이지를 스크롤 다운할 때의 예시적 메모리 영역(402)을 도시한다. 도 5에 도시된 바에 따르면, 사용자에게 렌더링된 문서의 일부분은 객체(408, 410 및 412)와 객체(210)의 부분을 포함하는 페이지(404)이다. 메모리 영역(402)의 상부는 객체(206)의 상부 줄(504)로 조정된다. 객체(202 및 204)는 이제 메모리 영역(402) 밖에 있다. 예를 들어, 스크롤링의 결과로서 객체가 메모리 영역(402) 밖으로 이동할 때, 클라이언트 컴퓨터(102) 상의 메모리 자원을 보존하기 위해 객체는 클라이언트 컴퓨터(102)로부터 언로딩될 수 있다. 예를 들어, 메모리 객체(202 및 204)는 클라이언트 컴퓨터(102)에 의해 언로딩될 수 있다. 클라이언트 컴퓨터(102)에 의해 메모리 객체(202 및 204)가 언로딩될 때, 이들 메모리 객체는, 사용자가 문서의 상부까지 스크롤할 때, 서버 컴퓨터(112)로부터 다시 획득될 필요가 있다.
또한 도 5는 문서 내 하나의 페이지를 스크롤 다운한 결과로서, 서버 컴퓨터(112)가 페이지(502)로 표현되는, 문서 내 다음 페이지를 메모리 영역(402)으로 로딩하는 것을 도시한다. 이 예에서, 문서 내 다음 페이지는 객체(510)에 대응하는 그림이다. 서버 컴퓨터(112)가 상위 객체를 클라이언트 컴퓨터(102)에 전송하기 때문에, 메모리 영역(402)의 하부는 객체(510)의 마지막 줄(506)로 조정된다.
예를 들어, 서버 컴퓨터(112)는 (객체(506)에 대응하는) 문서의 다음 페이지를 클라이언트 컴퓨터(102)로부터의 요청 메시지의 결과로서 전송한다. 클라이언트 컴퓨터(102)가 사용자가 하나의 페이지를 스크롤 다운했음을 검출할 때, 상기 클라이언트 컴퓨터가 요청 메시지를 서버 컴퓨터(102)로 전송한다. 요청 메시지는 서버 컴퓨터(112)에게 문서의 추가 일부분, 이 경우, 하나의 페이지에 대응하는 부분을 열도록 명령하고 문서의 추가 일부분을 클라이언트 컴퓨터(102)로 전송한다. 예를 들어, 사용자가 하나의 페이지보다 더 많거나 적게 스크롤한 결과로서 클라이언트 컴퓨터(102)가 서버 컴퓨터(112)로 요청을 발행(issue)할 수 있다.
클라이언트 컴퓨터(102) 상의 문서의 일부분을 스크롤링하고 보는 것에 추가로, 사용자가 문서의 하나 이상의 부분을 편집(edit)하거나 문서에 콘텐츠를 추가할 수 있다. 언급된 것처럼, 문서 내 객체 각각은 고유 ID 번호에 의해 식별된다. 사용자가 문서의 일부분을 편집할 때, 서버 컴퓨터(112)에서 문서의 열린 부분에 대해 편집된 객체가 식별되고 업데이트된다. 새로운 객체, 예를 들어, 새로운 단어, 문장, 또는 문단이 추가되는 경우, 단어, 문장, 또는 문단에 대해 ID 번호가 생성된다. 예를 들어, 추가된 단어, 문장, 또는 문단의 위치를 반영하기 위해 기존 객체의 ID 번호가 조절될 수 있다. 덧붙여, 문서의 일부분만 열리고 편집된 객체의 ID가 열리기 때문에, 전체 문서를 열 필요 없이, 문서는 편집될 수 있고, 변경사항이 서버 컴퓨터(112)로 저장된다.
도 6은 클라이언트 컴퓨터에서 문서의 일부분을 열기 위한 방법(600)의 예시적 흐름도이다. 예를 들어, 상기 문서의 일부분은 클라이언트 컴퓨터(102)에 있는 웹 브라우저(106)에서 열릴 수 있다. 또는, 상기 문서의 일부분은 클라이언트 애플리케이션에서, 예를 들어, 클라이언트 컴퓨터(104)에 있는 Microsoft Word® 워드 프로세싱 애플리케이션(108)에서 열릴 수 있다. 열릴 문서는 서버 컴퓨터, 가령, 서버 컴퓨터(112) 상에 저장된다.
동작(602)에서, 문서의 일부분을 열라는 요청 메시지가 클라이언트 컴퓨터(102)로부터 서버 컴퓨터(112)로 전송된다. 요청 메시지는 문서의 열릴 부분의 크기를 나타내는 정보를 포함한다. 예를 들어, 요청 메시지는 문서의 일부분에 포함될 객체의 개수를 나타내는 힌트를 포함할 수 있다. 또는, 요청 메시지는 클라이언트 컴퓨터(102)에서 정보의 디스플레이와 관련된 정보를 제공하는 하나 이상의 파라미터를 포함할 수 있다. 정보는 디스플레이 스크린 크기, 폰트 크기, 및 픽셀로 된 디스플레이 해상도 같은 아이템을 포함할 수 있다.
동작(604)에서, 문서의 제 1 부분이 서버 컴퓨터(112)로부터 수신된다. 일반적으로 문서의 제 1 부분은 문서의 첫 번째 페이지에 문서의 추가 양, 일반적으로, 한 페이지 또는 한 페이지의 일부분만큼 더한 것을 포함한다. 예를 들어, 문서의 제 1 부분의 크기는 이 크기보다 크거나 작은 크기를 포함할 수 있다. 문서의 한 페이지보다 많이 포함하는 이유는 클라이언트 컴퓨터(102)에서 사용자가 첫 번째 페이지를 지나 스크롤할 수 있게 하고, 두 번째 페이지 또는 두 번째 페이지의 부분이 클라이언트 컴퓨터(120)상의 메모리로부터 빠르게 디스플레이되도록 하기 위함이다.
문서의 제 1 부분을 전송하는 것에 추가로, 서버 컴퓨터(112)는 문서의 더 많은 부분이 이용 가능한지 여부를 클라이언트 컴퓨터에게 나타낸다. 서버 컴퓨터(112)는 서버 컴퓨터(112)로부터 클라이언트 컴퓨터(102)로 전송된 메시지 내 플래그를 설정함으로써 문서의 더 많은 부분이 이용 가능하다고 나타낼 수 있다. 문서의 더 많은 부분이 이용 가능하다고 나타내기 위한 또 다른 방법이 가능하다. 예를 들어, 서버 컴퓨터(112)는 문서 내 마지막 객체의 ID와 전송된 부분 내 마지막 객체의 ID를 포함할 수 있다. 그 후, 클라이언트 컴퓨터(102)는 문서의 더 많은 부분이 이용 가능하다고 결정하기 위해, ID들을 비교할 수 있다.
동작(606)에서, 서버 컴퓨터(112)로부터 수신된 문서의 제 1 부분이 클라이언트 컴퓨터(102) 상의 제 1 메모리 영역으로 로딩된다. 제 1 메모리 영역은 문서의 일부분을 저장하는 데 특화된 클라이언트 컴퓨터(102) 상의 메모리의 영역이다. 일반적으로 메모리 영역은 문서의 2 또는 3 페이지를 저장하기에 충분하지만, 예를 들어, 메모리 영역은 문서의 2 또는 3 페이지보다 더 많거나 적게 저장할 수도 있다. 문서의 2 페이지를 저장하기에 충분히 큰 메모리 영역은 현재 페이지와, 이전 페이지의 절반과, 이후 페이지의 절반이 저장될 수 있게 해준다. 3 페이지를 저장하기에 충분히 큰 메모리 영역은 현재 페이지와, 이전 페이지 전체와, 이후 페이지 전체가 저장될 수 있게 해준다. 예를 들어, 문서의 일부분이 메모리 영역으로부터 렌더링되기 때문에, 상기 메모리 영역은 뷰포트(viewport)라고도 알려져 있다.
서버 컴퓨터(112)로부터 획득되고 메모리 영역에 저장되는 문서의 일부분은 하나 이상의 객체를 포함한다. 각각의 객체는 문서의 특정 부분, 가령, 단어, 문장, 문단, 표, 표의 칸, 등을 나타낸다. 각각의 객체는 고유 ID를 가진다. 이에 덧붙여, 객체들 중 하나 이상은 상위 객체로 지정된다. 상위 객체는 하나 이상의 다른 객체를 포함하는 문서 내 객체이다. 예를 들어, 문단은 하나 이상의 문장 객체 및 단어 객체를 포함하는 상위 객체이다.
메모리 영역에 저장된 문서의 일부분 내 객체들은 상위 객체 경계 상에 배열된다. 따라서 메모리 영역은 상위 객체의 첫째 줄부터 시작하고, 메모리 영역은 상위 객체의 마지막 줄에서 끝난다. 일반적으로 상위 객체는 XML 코드의 하나 이상의 줄을 포함한다. 메모리 영역의 크기는 메모리 영역 내 마지막 상위 객체의 크기에 대해 조절 가능하다.
동작(608)에서, 문서의 제 2 부분이 클라이언트 컴퓨터(102)의 디스플레이 스크린 상에서 렌더링된다. 일반적으로, 제 2 부분은 문서 데이터의 하나의 페이지를 포함한다. 문서의 제 2 부분은 클라이언트 컴퓨터(102) 상의 메모리 영역으로부터 렌더링되고, 문서의 제 1 부분의 일부를 포함한다. 도 4의 페이지(200) 및 도 5의 페이지(404)는 클라이언트 컴퓨터(102)의 메모리 영역으로부터 렌더링되는 문서의 페이지의 예이다.
동작(610)에서, 사용자는 문서를 완전히 스크롤한다. 동작(612)에서, 서버 컴퓨터(112) 상에서 문서의 더 많은 부분이 이용 가능한지 여부에 대한 결정이 이뤄진다. 예를 들어, 결정은 동작(604)에서의 문서의 제 1 부분과 함께 서버 컴퓨터(112)에서 클라이언트 컴퓨터(102)로 전송된 메시지 내 플래그의 상태를 체크하는 것을 포함할 수 있다. 또 다른 예를 들면, 클라이언트 컴퓨터(102)는 서버 컴퓨터(112)로부터 전송된 문서의 일부분 내 마지막 ID를 문서 내 마지막 ID와 비교할 수 있다.
동작(614)에서, 서버 컴퓨터(112) 상에서 문서의 더 많은 부분이 이용 가능하다고 결정될 때, 클라이언트 컴퓨터(102)는 서버 컴퓨터(112)로부터 문서의 더 많은 부분을 획득할 때를 결정한다. 예를 들어, 사용자에 의해 문서의 하나의 페이지가 스크롤된 후, 클라이언트 컴퓨터는 서버 컴퓨터(112)로부터 문서의 더 많은 부분을 획득하기로 결정한다. 다른 예를 들면, 사용자가 클라이언트 컴퓨터(102) 상에서 문서의 임의의 부분을 스크롤할 때면 언제나, 클라이언트 컴퓨터는 서버 컴퓨터(112)로부터 문서의 더 많은 부분을 획득하기로 결정한다. 그 밖의 다른 예도 가능하다.
동작(616)에서, 클라이언트 컴퓨터(102)에서, 서버 컴퓨터(112)로부터 문서의 더 많은 부분을 획득하기로 결정이 이뤄질 때, 클라이언트 컴퓨터(102)는 문서의 제 3 부분에 대한 요청 메시지를 서버 컴퓨터(112)로 전송한다. 요청 메시지는 문서의 제 3 부분의 크기에 대한 정보를 포함한다. 예를 들어, 문서의 크기에 대한 정보는 문서의 제 3 부분에 포함될 객체의 개수에 대한 힌트를 포함할 수 있다. 예를 들어, 문서의 크기에 대한 정보는 클라이언트 컴퓨터(102) 상에서 렌더링되는 문서가 스크롤되는 양을 나타내는 하나 이상의 파라미터를 포함할 수 있다. 서버 컴퓨터(112)는 문서의 제 3 부분의 크기를 결정하기 위해 문서의 크기에 대한 정보를 이용한다.
동작(618)에서, 문서의 제 3 부분은 서버 컴퓨터(112)로부터 수신된다. 동작(620)에서, 문서의 제 3 부분은 제 1 메모리 영역으로 로딩된다. 문서의 제 3 부분이 제 1 메모리 영역으로 로딩될 때, 사용자가 문서를 스크롤 다운했기 때문에, 문서의 제 3 부분이 제 1 메모리 영역의 끝 부분에 추가된다. 문서의 제 3 부분의 크기를 수용하기 위해 제 1 메모리 영역의 크기가 확장된다. 문서의 제 3 부분의 끝 부분은 상위 객체이고, 이 상위 객체의 끝 부분은 제 1 메모리 영역의 끝 부분에 대응한다.
예를 들어, 문서의 제 3 부분이 제 1 메모리 영역에 추가될 때, 일반적으로, 문서의 제 3 부분과 크기가 유사한 문서의 일부분이 제 1 메모리 영역으로부터 언로딩된다. 제 1 메모리 영역으로부터 문서의 일부분을 언로딩하는 것은 클라이언트 컴퓨터(102)에서의 메모리 소비량을 감소시킨다.
동작(622)에서, 문서의 제 4 부분이 제 1 메모리 영역으로부터 언로딩된다. 문서의 제 4 부분은 문서의 제 1 부분의 부분집합(subset)이다. 앞서 언급한 바와 같이, 일반적으로 문서의 제 4 부분은 문서의 제 3 부분과 유사한 크기를 가진다. 제 1 메모리 영역이 상위 객체에서 끝나고 문서의 제 1 부분과 제 3 부분 내 상위 객체의 크기가 서로 다를 수 있기 때문에, 일반적으로 문서의 제 4 부분의 크기는 문서의 제 3 부분과 유사하지만, 문서의 제 3 부분과 동일하지는 않다. 문서의 제 3 부분이 제 1 메모리 영역에 추가될 때 제 1 메모리 영역으로부터 문서의 제 4 부분을 언로딩하는 것이 클라이언트 컴퓨터(102)에서의 메모리 소비량을 조정한다.
동작(624)에서, 사용자가 클라이언트 컴퓨터(102) 상에 렌더링된 문서의 일부분을 편집한다. 예를 들어, 문서는 문서가 클라이언트 컴퓨터(102) 상에 디스플레이될 때 언제라도 편집될 수 있다. 이는 문서가 초기에 디스플레이된 때, 또는 문서가 스크롤링된 후를 포함한다. 도 6이 서버 컴퓨터(112)로부터 문서의 어떠한 부분도 더 이상 이용 가능하지 않을 때 문서가 편집되는 것을 보여주지만, 이는 문서가 편집될 수 있을 때의 한 가지 예에 불과하다.
동작(626)에서, 사용자는 클라이언트 컴퓨터(102)에 문서의 편집된 부분을 저장한다. 일반적으로 사용자는 클라이언트 컴퓨터(102) 상의 저장 버튼을 누르거나 클릭함으로써, 문서의 편집된 부분을 저장한다. 동작(628)에서, 클라이언트 컴퓨터(102)는 서버 컴퓨터(112)가 문서의 편집된 부분을 저장할 것을 요청하기 위한 요청 메시지를 서버 컴퓨터(112)로 전송한다. 서버 컴퓨터(112)는 전체 문서를 열거나 저장할 필요 없이 문서의 편집된 부분을 저장한다. 열린 문서의 일부분만 저장된다.
도 7은 서버 컴퓨터, 예를 들어, 서버 컴퓨터(112)에서 문서의 일부분을 열기 위한 방법(700)의 예시적 흐름도를 도시한다. 동작(702)에서, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)로부터, 서버 컴퓨터(112) 상에 저장된 문서의 일부분을 열라는 요청 메시지를 수신한다. 요청 메시지는 문서의 열릴 부분의 크기와 관련된 정보를 포함한다. 예를 들어, 정보는 열릴 문서 내 객체의 개수와 관련된 힌트를 포함할 수 있다. 또 다른 예에서, 정보는 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기, 클라이언트 컴퓨터(102) 상에서 사용되는 폰트 크기, 디스플레이 스크린 해상도, 등 같은 정보를 특정하는 하나 이상의 파라미터를 포함할 수 있다.
동작(704)에서, 서버 컴퓨터(112)는 문서의 열릴 부분에 대한 객체 임계치를 결정한다. 객체 임계치는 문서의 열릴 부분에 포함될 객체의 개수를 식별한다. 클라이언트 컴퓨터(102)에 의해 객체 임계치에 대한 힌트가 제공되지 않을 때, 일반적으로, 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기에 객체의 추가 개수를 더한 크기에 들어 맞은 문서 내 객체의 개수를 결정함으로써, 객체 임계치가 계산된다. 일반적으로 객체의 추가 개수는 하나의 디스플레이 스크린의 크기에 들어 맞는 객체의 개수의 배수이다.
동작(706)에서, 서버 컴퓨터(112)는 요청받은 문서를 열고, 객체 임계치에 도달할 때까지, 문서 내 하나 이상의 객체를 클라이언트 컴퓨터(102)로 전송한다. 객체가 클라이언트 컴퓨터(102)로 전송되기 전에, 각각의 객체는 클라이언트 컴퓨터(102)에서 필요한 포맷으로 변환된다. 예를 들어, Word® 포맷으로 된 각각의 객체는 XML 포맷으로 변환될 수 있다.
객체 임계치에 도달할 때, 동작(708)에서, 서버 컴퓨터(112)는 객체 임계치에 대응하는 객체에 대응하는 상위 객체를 결정한다. 객체 임계치에 대응하는 객체내에 더 많은 객체가 있을 때, 동작(710)에서 상위 객체 내 마지막 객체에 도달할 때까지 서버 컴퓨터(112)는 객체를 클라이언트 컴퓨터(102)로 계속 전송한다.
동작(712)에서, 문서의 끝 부분에 도달한지 여부에 대한 결정이 이뤄진다. 동작(712)에서, 문서의 끝 부분에 도달했다고 결정될 때, 동작(714)에서, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)로부터의 추가 액션을 기다린다. 추가 액션은 문서의 편집된 부분을 저장하기, 문서를 닫기, 등일 수 있다.
동작(712)에서, 문서의 끝 부분에 도달하지 않았다고 결정될 때, 동작(716)에서 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)에게 문서에 추가 콘텐츠가 있다고 통지한다. 일반적으로 서버 컴퓨터(112)는 메시지를 통해 통지를 클라이언트 컴퓨터(102)로 전송한다. 예를 들어, 새로운 메시지로 통지를 전송하는 것 대신, 통지가 문서 콘텐츠를 포함하는 메시지, 가령, 동작(706 또는 710)에서의 메시지에 포함될 수 있다. 또 다른 예를 들면, 클라이언트 컴퓨터는 문서 내 추가 콘텐츠가 이용 가능한지 여부에 대해 질의하는 메시지를 서버 컴퓨터(112)로 전송할 수 있고; 상기 질의 메시지에 응답하여 서버(112)가 클라이언트 컴퓨터(102)로 통지를 전송할 수 있다.
동작(718)에서, 서버 컴퓨터(112)는 클라이언트 컴퓨터(102)로부터 문서의 추가 일부분에 대한 요청 메시지를 수신한다. 일반적으로 요청 메시지는 문서의 추가 일부분의 크기에 대한 정보를 포함한다. 예를 들어, 정보는 상기 문서의 추가 일부분에 포함될 객체의 개수에 대한 힌트일 수 있다. 또 다른 예를 들면, 정보는 페이지의 수 또는 열릴 페이지의 부분의 수를 포함할 수 있다. 그 밖의 다른 예가 가능하다.
동작(720)에서, 서버 컴퓨터(112)는 문서의 추가 일부분의 크기를 결정한다. 일반적으로 서버 컴퓨터(112)는 요청 메시지에 포함된 정보를 이용해 문서의 추가 일부분의 크기를 결정한다. 예를 들어, 문서의 추가 일부분의 크기는 서버 컴퓨터(112) 상에서 구성(configure) 또는 하드 코딩(hard code)될 수 있다.
동작(722)에서, 객체 임계치가 문서의 추가 일부분에 대해 결정된다. 상기 객체 임계치는 문서의 추가 일부분에 포함될 객체의 개수에 대응한다. 문서의 추가 일부분에 포함될 객체의 개수에 도달할 때, 동작(724)에서, 서버 컴퓨터(112)는 객체 임계치에서 객체를 포함하는 상위 객체를 결정한다. 동작(726)에서, 서버 컴퓨터(112)는 문서의 추가 일부분으로부터의 하나 이상의 객체를 클라이언트 컴퓨터(102)로 전송한다. 객체 임계치에 도달할 때까지 서버 컴퓨터(112)는 하나 이상의 객체를 클라이언트 컴퓨터(102)로 전송한다. 객체 임계치에 도달할 때, 객체 임계치에서 객체에 대응하는 상위 객체 내 마지막 객체에 도달할 때까지, 서버 컴퓨터(102)는 클라이언트 컴퓨터(102)로 객체를 계속 전송한다.
동작(728)에서, 서버 컴퓨터(112)는 문서의 편집된 부분을 클라이언트 컴퓨터(102)로부터 수신한다. 문서의 편집된 부분은 하나 이상의 편집된 객체를 포함하거나 하나 이상의 새로 추가 또는 삭제된 객체를 포함할 수 있다. 객체 각각이 고유 객체 ID를 갖기 때문에, 하나 이상의 객체가 새로 추가 또는 삭제될 때, 문서 내 객체 ID는 새로 추가 또는 삭제된 객체의 위치에 따라 조절된다.
동작(730)에서, 문서의 편집된 부분이 서버 컴퓨터(112)에 저장된다. 전체 문서를 열 필요 없이 문서의 편집된 부분이 저장된다.
도 8은 문서의 열릴 부분에 대해 객체 임계치를 결정하기 위한 방법(704)의 예시적 흐름도를 도시한다. 동작(802)에서, 클라이언트 컴퓨터(102)로부터 서버 컴퓨터(112)로의 요청 메시지에서, 문서의 열릴 부분의 크기에 대한 정보가 식별된다. 문서의 열릴 부분의 크기가 요청 메시지에 포함된 하나 이상의 파라미터에 포함될 수 있다.
동작(804)에서, 객체 임계 크기에 대한 힌트가 요청 메시지에 포함되는지 여부에 대한 결정이 이뤄진다. 힌트는 하나 이상의 파라미터에 포함되거나, 힌트는 요청 메시지 내 임의의 곳에 포함될 수 있다. 힌트가 요청 메시지에 포함된 경우, 서버 컴퓨터(112)에 의해 열리고 클라이언트 컴퓨터(102)로 전송될 메시지의 일부분에 대한 객체 임계치에 대응하는 객체의 개수를 제공한다.
힌트가 요청 메시지에 포함된다고 결정될 때, 동작(806)에서, 힌트로 식별되는 객체의 개수가 요청 메시지로부터 추출된다. 힌트가 요청 메시지에 포함되지 않는다고 결정될 때, 동작(808)에서, 객체 임계치에 대한 그 밖의 다른 정보가 요청 메시지로부터 추출된다. 그 밖의 다른 정보, 일반적으로 요청 메시지 내 하나 이상의 파라미터에 포함된 정보는 아이템, 가령, 클라이언트 컴퓨터(102) 상의 디스플레이 스크린의 크기, 사용되는 폰트의 크기, 및 디스플레이 스크린의 픽셀로 된 스크린 해상도를 포함할 수 있다. 그 밖의 다른 유형의 정보도 역시 가능하다.
동작(810)에서, 동작(808)으로부터 획득된 정보가 디스플레이 스크린의 크기로 들어 맞는 객체의 개수를 결정하도록 사용된다. 예를 들어, 디스플레이 스크린의 크기가 알려져 있고 디스플레이 스크린 상에서 사용되는 폰트의 크기가 알려져 있으며, 객체의 평균 크기가 알려져 있다면, 디스플레이 스크린의 크기 내에서 크기가 들어 맞을 수 있는 객체의 개수의 추정치가 획득될 수 있다.
동작(812)에서, 동작(810)의 계산에서 획득된 객체의 개수, 또는 동작(806)에서 요청 메시지에 포함된 힌트의 결과로서 획득된 객체의 개수에 배율(multiplying factor)이 곱해진다. 상기 배율은 객체 임계치를 결정하기 위해 사용된다. 일반적으로 배율은 페이지 크기의 배수이다. 예를 들어, 2의 배율은 2 페이지에 대응하는 크기를 나타내고, 1.5의 배율은 반 페이지(half-page)에 대응하는 크기를 나타낸다. 예를 들어, 그 밖의 다른 배율이 사용될 수 있다.
동작(814)에서, 단계(812)에서의 곱셈의 결과가 객체 임계치로서 지정된다. 예를 들어, 배율이 1.5이 경우, 객체 임계치의 객체의 개수는 디스플레이 스크린의 크기에 들어 맞는 객체의 개수에 디스플레이 스크린의 절반 크기에 들어 맞는 객체의 개수를 더한 값에 대응한다.
도 9를 참조하면, 클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)의 예시적 구성 요소가 도시된다. 예시적 실시예에서, 클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 컴퓨팅 장치이다. 클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 입/출력 장치, 중앙 처리 장치("CPU"), 데이터 저장 장치, 및 네트워크 장치를 포함할 수 있다.
기본 구성에서, 일반적으로 클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 적어도 하나의 프로세싱 유닛(902) 및 시스템 메모리(904)를 포함한다. 정확한 구성 및 컴퓨팅 장치의 유형에 따라, 시스템 메모리(904)는 휘발성(가령, RAM), 비휘발성(가령, ROM, 플래시 메모리, 등), 또는 이들의 조합일 수 있다. 시스템 메모리(904)는 일반적으로 네트워크 연결된 개인용 컴퓨터의 동작을 제어하기에 적합한 운영 체제(906), 가령, 워싱턴, 레드몬드 소재의 Microsoft Corporation의 Windows® 운영 체제, 또는 서버, 가령, 워싱턴, 레드몬드 소재의 Microsoft Corporation의 Microsoft Exchange Server 2007를 포함한다. 시스템 메모리(904)는 또한 하나 이상의 소프트웨어 애플리케이션(908)도 포함할 수 있고, 프로그램 데이터를 포함할 수 있다.
클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 추가 특징 또는 기능을 가질 수 있다. 예를 들어, 클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 또한 컴퓨터 판독형 매체도 포함할 수 있다. 컴퓨터 판독형 매체는 컴퓨터 판독형 저장 매체와 통신 매체를 모두 포함할 수 있다.
컴퓨터 판독형 저장 매체는 물리적 매체, 가령, 데이터 저장 장치(이동식 및/또는 비-이동식)이며, 자기 디스크, 광학 디스크, 또는 테이프를 포함한다. 이러한 추가 저장장치는 도 9에 이동식 저장장치(910) 및 비-이동식 저장장치(912)로 도시되어 있다. 컴퓨터 판독형 저장 매체는 정보, 가령, 컴퓨터 판독형 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터를 저장하기 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함할 수 있다. 컴퓨터 판독형 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD), 또는 그 밖의 다른 광학 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치, 또는 그 밖의 다른 자기 저장 장치, 또는 원하는 정보를 저장하도록 사용될 수 있고 클라이언트 컴퓨터(102, 104)에 의해 액세스될 수 있는 그 밖의 다른 임의의 매체를 포함할 수 있으나, 이에 국한되지는 않는다. 이러한 임의의 컴퓨터 판독형 저장 매체는 클라이언트 컴퓨터(102, 104)의 일부일 수 있다. 또한 클라이언트 컴퓨터(102, 104)는 입력 장치(들)(914), 가령, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 등을 포함할 수 있다. 출력 장치(들)(916), 가령, 디스플레이 스피커, 인쇄기, 등도 포함될 수 있다.
클라이언트 컴퓨터(102, 104) 및 서버 컴퓨터(112)는 또한, 가령, 분산 컴퓨팅 환경, 가령, 인트라넷 또는 인터넷에서 네트워크를 통해, 장치가 다른 컴퓨팅 장치(920)와 통신할 수 있게 해주는 통신 연결(918)을 포함할 수 있다. 통신 연결(918)은 통신 매체의 한 예이다. 일반적으로 통신 매체는 컴퓨터 판독형 명령, 데이터 구조, 프로그램 모듈, 또는 그 밖의 다른 데이터에 의해 변조된 데이터 신호, 가령, 반송파, 또는 그 밖의 다른 전송 메커니즘으로 구현될 수 있고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호의 특성 중 하나 이상이 신호 내 정보를 인코딩하기 위한 방식으로 설정 또는 변경한 신호를 의미한다. 예를 들면, 통신 매체는 유선 매체, 가령, 유선 네트워크 또는 직접 배선 연결, 및 무선 매체, 가령, 음향, RF, 적외선, 및 그 밖의 다른 무선 매체를 포함한다.
앞서 기재된 다양한 실시예는 단지 예로서 제공된 것이며, 한정으로 해석되서는 안 된다. 앞서 기재된 실시예들의 다양한 수정 및 변경이 본원의 진실한 사상 및 범위 내에서 가능하다.

Claims (10)

  1. 클라이언트 컴퓨터에서 문서를 액세스하기 위한 방법으로서,
    클라이언트 컴퓨터에서, 문서의 제 1 부분을 열라는 제 1 요청을 서버 컴퓨터로 전송하는 단계 - 상기 문서는 상기 서버 컴퓨터에 저장되어 있고, 상기 문서의 제 1 부분은 전체 문서보다 작고, 상기 요청은 상기 문서의 제 1 부분의 크기를 결정하기 위해 상기 서버 컴퓨터에 의해 사용되는 정보를 포함함 - ;
    상기 클라이언트 컴퓨터에서, 상기 서버 컴퓨터로부터 상기 문서의 제 1 부분을 수신하는 단계;
    상기 클라이언트 컴퓨터에서, 상기 문서의 제 1 부분이 상기 서버 컴퓨터로부터 수신된 후, 상기 문서의 제 2 부분을 상기 클라이언트 컴퓨터 상의 디스플레이 스크린 상에 렌더링하는 단계 - 상기 문서의 제 2 부분은 상기 문서의 제 1 부분의 부분집합임 - ;
    상기 클라이언트 컴퓨터에서, 상기 문서의 더 많은 부분이 상기 서버 컴퓨터에서 이용 가능함을 판정하는 단계;
    상기 클라이언트 컴퓨터에서, 사용자가 상기 클라이언트 컴퓨터의 디스플레이 스크린 상에서 상기 문서의 제 3 부분을 스크롤했음을 판정하는 단계; 및
    상기 클라이언트 컴퓨터가 상기 사용자가 상기 문서의 제 3 부분을 스크롤했다고 판정할 경우 및 상기 클라이언트 컴퓨터가 상기 문서의 더 많은 부분이 상기 서버 컴퓨터에서 이용 가능하다고 판정할 경우, 상기 문서의 추가 일부분을 열라는 제 2 요청을 상기 서버 컴퓨터로 전송하는 단계를 포함하는
    문서를 액세스하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트 컴퓨터에서, 상기 문서의 적어도 하나 이상의 추가 일부분이 상기 서버 컴퓨터에서 이용 가능함을 판정하는 단계는 상기 서버 컴퓨터로부터 상기 문서의 더 많은 부분이 이용 가능하다고 나타내는 메시지를 수신하는 단계를 더 포함하는
    문서를 액세스하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 사용자가 디스플레이 스크린 상에서 상기 문서의 제 3 부분을 스크롤했음을 판정하는 단계는 상기 사용자가 상기 디스플레이 스크린 상에서 사전 지정된 개수의 객체를 스크롤했는지를 판정하는 단계를 더 포함하는
    문서를 액세스하기 위한 방법.
  4. 제 3 항에 있어서,
    상기 사전 지정된 개수의 객체 내 객체 각각은 상위 객체(top-level object)이며, 상기 상위 객체 각각은 문단, 표, 목록, 및 그림 중 하나인
    문서를 액세스하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 클라이언트 컴퓨터가 상기 서버 컴퓨터에게 상기 문서의 추가 일부분을 요청할 경우, 상기 클라이언트 컴퓨터는 상기 문서의 유사한 크기의 일부분을 자신에게서 언로딩하는
    문서를 액세스하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 서버 컴퓨터로부터 상기 문서의 추가 일부분을 수신하는 단계와, 상기 문서의 추가 일부분이 상기 서버 컴퓨터로부터 수신될 때, 상기 클라이언트 컴퓨터로부터 상기 문서의 일부분을 언로딩하는 단계를 더 포함하는
    문서를 액세스하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 제 1 요청에 포함된 정보는 상기 클라이언트 컴퓨터 상의 디스플레이 스크린의 크기, 디스플레이 스크린 상에서 사용되는 폰트의 크기, 및 디스플레이 스크린의 픽셀 해상도 중 하나 이상을 포함하는
    문서를 액세스하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 제 1 요청에 포함된 정보는 상기 문서의 제 1 부분에 포함될 객체의 개수에 대한 힌트를 포함하는
    문서를 액세스하기 위한 방법.
  9. 서버 컴퓨터 상에 저장된 문서를 부분적으로 열기 위해 상기 서버 컴퓨터 상에서 구현되는 방법으로서,
    상기 서버 컴퓨터 상에서, 클라이언트 컴퓨터로부터 제 1 메시지를 수신하는 단계 - 상기 제 1 메시지는 상기 문서의 제 1 부분을 열라는 요청이며, 상기 문서의 제 1 부분은 하나 이상의 객체를 포함하고, 상기 요청은 상기 문서의 제 1 부분의 크기를 결정하기 위한 정보를 포함함 - ;
    상기 서버 컴퓨터 상에서, 상기 문서의 제 1 부분의 크기를 결정하는 단계 - 상기 문서의 제 1 부분의 크기의 결정은 상기 문서의 제 1 부분에 대한 객체 임계치(object threshold)를 결정하는 것을 포함하고, 상기 객체 임계치는 상기 문서의 제 1 부분에 포함될 객체의 최소 개수에 대응함 - ; 및
    상기 서버 컴퓨터에서, 상기 클라이언트 컴퓨터로 상기 문서의 하나 이상의 객체를 전송하는 단계 - 상기 하나 이상의 객체는 상기 문서의 시작부분에서부터 시작하여 상기 클라이언트 컴퓨터로 전송되는 객체의 개수가 객체 임계치와 동일해질 때까지의 객체를 포함함 - 을 포함하는
    서버 컴퓨터 상에서 구현되는 방법.
  10. 명령어를 포함하는 컴퓨터 판독가능 저장 매체로서, 상기 명령어는, 컴퓨팅 장치에 의해 실행될 때 컴퓨팅 장치로 하여금:
    문서의 제 1 부분을 열라는 제 1 요청을 서버 컴퓨터로 전송하게 하며 - 상기 문서는 상기 서버 컴퓨터에 저장되어 있고, 상기 문서의 제 1 부분은 전체 문서보다 작고, 상기 요청은 상기 문서의 제 1 부분의 크기를 결정하기 위해 상기 서버 컴퓨터에 의해 사용되는 정보를 포함함 - ;
    상기 서버 컴퓨터로부터 상기 문서의 제 1 부분을 수신하게 하고;
    상기 문서의 제 1 부분이 상기 서버 컴퓨터로부터 수신된 후, 상기 클라이언트 컴퓨터 상의 디스플레이 스크린 상에 상기 문서의 제 2 부분을 렌더링하게 하며 - 상기 문서의 제 2 부분은 상기 문서의 제 1 부분의 부분집합임 - ;
    상기 문서의 더 많은 부분이 서버 컴퓨터에서 이용 가능함을 판정하게 하며;
    사용자가 상기 클라이언트 컴퓨터의 디스플레이 스크린 상에서 상기 문서의 제 3 부분을 스크롤했음을 판정하게 하며 - 상기 문서의 제 3 부분은 사전 지정된 개수의 객체를 포함하고, 상기 객체 각각은 문단, 표, 목록 및 그림 중 하나임 - ; 및
    상기 사용자가 상기 문서의 제 3 부분을 스크롤했다고 판정되고 상기 문서의 더 많은 부분이 상기 서버 컴퓨터에서 이용 가능하다고 판정될 때, 상기 문서의 추가 일부분을 열라는 제 2 요청을 상기 서버 컴퓨터로 전송하게 하는 - 상기 문서의 추가 일부분은 상기 문서의 스크롤된 제 3 부분과 유사한 크기임 -
    컴퓨터 판독가능 저장 매체.
KR1020137011950A 2010-11-09 2011-11-03 서버로부터의 문서의 부분 로딩 및 편집 KR20140009175A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/942,118 2010-11-09
US12/942,118 US10911550B2 (en) 2010-11-09 2010-11-09 Partial loading and editing of documents from a server
PCT/US2011/059232 WO2012064588A2 (en) 2010-11-09 2011-11-03 Partial loading and editing of documents from a server

Publications (1)

Publication Number Publication Date
KR20140009175A true KR20140009175A (ko) 2014-01-22

Family

ID=46020830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011950A KR20140009175A (ko) 2010-11-09 2011-11-03 서버로부터의 문서의 부분 로딩 및 편집

Country Status (18)

Country Link
US (1) US10911550B2 (ko)
EP (1) EP2638480B1 (ko)
JP (2) JP2013544400A (ko)
KR (1) KR20140009175A (ko)
CN (1) CN102546747B (ko)
AR (1) AR083824A1 (ko)
AU (1) AU2011326270B2 (ko)
BR (1) BR112013011583A2 (ko)
CA (1) CA2815929C (ko)
CL (1) CL2013001240A1 (ko)
CO (1) CO6721000A2 (ko)
IL (1) IL225997A (ko)
MX (1) MX336547B (ko)
MY (1) MY198430A (ko)
SG (2) SG189480A1 (ko)
TW (1) TWI548999B (ko)
WO (1) WO2012064588A2 (ko)
ZA (1) ZA201302904B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911550B2 (en) 2010-11-09 2021-02-02 Microsoft Technology Licensing, Llc Partial loading and editing of documents from a server
US9049167B2 (en) * 2011-04-28 2015-06-02 Xerox Corporation Mobile access notification service interface
US20120317492A1 (en) * 2011-05-27 2012-12-13 Telefon Projekt LLC Providing Interactive and Personalized Multimedia Content from Remote Servers
US20130290657A1 (en) * 2012-04-26 2013-10-31 Nick Baciu Storing data in containers
US20140055495A1 (en) * 2012-08-22 2014-02-27 Lg Cns Co., Ltd. Responsive user interface engine for display devices
CN102929849B (zh) * 2012-11-07 2016-01-20 中标软件有限公司 一种文档加载方法及其装置
US8504827B1 (en) 2013-02-27 2013-08-06 WebFilings LLC Document server and client device document viewer and editor
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US9934207B1 (en) * 2014-05-02 2018-04-03 Tribune Publishing Company, Llc Online information system with continuous scrolling and previous section removal
US9141515B1 (en) 2014-07-15 2015-09-22 Sap Se Limiting display content in editor for large data volumes
US10289296B1 (en) * 2015-08-21 2019-05-14 Google Llc Systems and methods for dynamically appending supplemental content to an information resource responsive to scroll activity
US9805011B2 (en) * 2016-01-04 2017-10-31 International Business Machines Corporation High-performance editing of large remote files in client-server architecture
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506983A (en) 1992-07-06 1996-04-09 Microsoft Corporation Method and system for transactioning of modifications to a tree structured file
US5781785A (en) * 1995-09-26 1998-07-14 Adobe Systems Inc Method and apparatus for providing an optimized document file of multiple pages
JP2972640B2 (ja) 1997-04-18 1999-11-08 神戸日本電気ソフトウェア株式会社 ウィンドウシステムのオブジェクトプログラムプリロード方法およびその方法のためのプログラムを記録した記録媒体
US6249804B1 (en) * 1998-07-22 2001-06-19 Roger Kin-Hung Lam Computer network read-ahead caching method
US6204846B1 (en) 1999-02-16 2001-03-20 International Business Machines Corporation Data set user interface control for use in accessing information in a computer
US6658462B1 (en) 1999-08-26 2003-12-02 International Business Machines Corporation System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet
US6658452B1 (en) 1999-12-09 2003-12-02 International Business Machines Corporation Schemes for selecting and passing an application from an application provider to an application service provider
JP3879350B2 (ja) * 2000-01-25 2007-02-14 富士ゼロックス株式会社 構造化文書処理システム及び構造化文書処理方法
WO2001065354A1 (en) * 2000-03-01 2001-09-07 Celltrex Ltd. System and method for document division
US6754621B1 (en) * 2000-10-06 2004-06-22 Andrew Cunningham Asynchronous hypertext messaging system and method
US20020062398A1 (en) * 2000-11-20 2002-05-23 William Ho Chang Controller for mobile and pervasive output
US20040230572A1 (en) * 2001-06-22 2004-11-18 Nosa Omoigui System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation
US7001979B2 (en) * 2002-06-14 2006-02-21 H.B. Fuller Licensing & Financing Inc. Polyamide and composition and article including same
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
US7228496B2 (en) 2002-07-09 2007-06-05 Kabushiki Kaisha Toshiba Document editing method, document editing system, server apparatus, and document editing program
US20040036912A1 (en) 2002-08-20 2004-02-26 Shih-Ping Liou Method and system for accessing documents in environments with limited connection speed, storage, and screen space
JP4188718B2 (ja) 2003-02-07 2008-11-26 シャープ株式会社 データ表示システム、データ表示装置、および、データ表示プログラムを記録した記録媒体
WO2004097654A1 (ja) 2003-04-28 2004-11-11 Fujitsu Limited Webコンテンツの有効性評価方法、これを用いたWebコンテンツ検索方法、Webコンテンツ課金方法及び検索サーバ、コンテンツ提供装置
US20050102371A1 (en) 2003-11-07 2005-05-12 Emre Aksu Streaming from a server to a client
US20050114791A1 (en) * 2003-11-20 2005-05-26 International Business Machines Corporation Cueing mechanism that indicates a display is able to be scrolled
US20060031760A1 (en) * 2004-08-05 2006-02-09 Microsoft Corporation Adaptive document layout server/client system and process
US20060048051A1 (en) 2004-08-25 2006-03-02 Research In Motion Limited Method for rendering formatted content on a mobile device
US8032482B2 (en) 2004-09-30 2011-10-04 Microsoft Corporation Method, system, and apparatus for providing a document preview
US7533420B2 (en) 2004-12-09 2009-05-12 Microsoft Corporation System and method for restricting user access to a network document
JP2006185155A (ja) 2004-12-27 2006-07-13 Matsushita Electric Ind Co Ltd コンテンツ表示装置
JP4789513B2 (ja) 2005-06-07 2011-10-12 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US20070157112A1 (en) * 2005-12-30 2007-07-05 Peters Johan C On-demand scrollbar
US7667719B2 (en) * 2006-09-29 2010-02-23 Amazon Technologies, Inc. Image-based document display
JP5312349B2 (ja) 2007-02-09 2013-10-09 ノキア コーポレイション 情報コンテンツの一部分をクライアント装置に与える方法およびシステム
JP2009075977A (ja) * 2007-09-21 2009-04-09 Fujifilm Corp 携帯端末閲覧文書配信サーバ、携帯端末、及び携帯端末閲覧文書配信システム
JP5017687B2 (ja) 2007-10-05 2012-09-05 カシオ計算機株式会社 クライアント装置およびプログラム
US20090217352A1 (en) 2008-02-25 2009-08-27 Tong Shen Web managed multimedia asset management method and system
US8108441B2 (en) 2009-04-21 2012-01-31 Microsoft Corporation Efficient creation, storage, and provision of web-viewable documents
US10911550B2 (en) 2010-11-09 2021-02-02 Microsoft Technology Licensing, Llc Partial loading and editing of documents from a server

Also Published As

Publication number Publication date
SG10201509076WA (en) 2015-12-30
MX336547B (es) 2016-01-22
TW201220072A (en) 2012-05-16
AU2011326270A1 (en) 2013-05-23
EP2638480A4 (en) 2014-11-26
US20120117481A1 (en) 2012-05-10
EP2638480B1 (en) 2017-12-20
WO2012064588A2 (en) 2012-05-18
RU2013119971A (ru) 2014-11-10
US10911550B2 (en) 2021-02-02
WO2012064588A3 (en) 2012-08-30
CN102546747A (zh) 2012-07-04
IL225997A0 (en) 2013-06-27
MY198430A (en) 2023-08-29
AR083824A1 (es) 2013-03-27
CA2815929A1 (en) 2012-05-18
CN102546747B (zh) 2015-05-20
MX2013005296A (es) 2013-07-03
IL225997A (en) 2017-03-30
CA2815929C (en) 2020-04-28
TWI548999B (zh) 2016-09-11
CL2013001240A1 (es) 2013-11-15
AU2011326270B2 (en) 2016-05-19
EP2638480A2 (en) 2013-09-18
JP2013544400A (ja) 2013-12-12
JP2017107586A (ja) 2017-06-15
SG189480A1 (en) 2013-05-31
BR112013011583A2 (pt) 2016-08-09
CO6721000A2 (es) 2013-07-31
ZA201302904B (en) 2015-09-30

Similar Documents

Publication Publication Date Title
US10911550B2 (en) Partial loading and editing of documents from a server
US10437907B2 (en) Link expansion service
CN110688595B (zh) 一种文件在线预览方法、装置、设备和存储介质
TWI234717B (en) Method and system for dynamically determining web resource to be loaded and saving space
US20120278281A1 (en) Storing metadata inside file to reference shared version of file
JP2011108102A (ja) ウェブサーバ、ウェブブラウザおよびウェブシステム
JP2008542875A (ja) 変更可能文書を複数のクライアントと同期するための方法、システム、およびコンピュータ可読記憶媒体
TW200844838A (en) Adaptive server-based layout of web documents
EP3080722B1 (en) Web page rendering on wireless devices
US8954846B2 (en) Communication apparatus and storage medium storing program
JP4451925B1 (ja) ガイドライン管理装置及びガイドライン管理プログラム
US8156428B1 (en) Method and apparatus for merging digital content
JP2006526190A (ja) 文書コンテンツの複数のレンディションを提供するためのシステムおよび方法
CA2722511C (en) Efficient change tracking of transcoded copies
EP2336912A2 (en) Compressing photos for devices
RU2575684C2 (ru) Частичная загрузка и редактирование документов с сервера
US20180046601A1 (en) Modifying a document graph to reflect information relating to a document it represents
JP5428918B2 (ja) 文書配信装置
JP2014127090A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment