KR20080107412A - 페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적렌더링 제어 데이터의 추정 - Google Patents

페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적렌더링 제어 데이터의 추정 Download PDF

Info

Publication number
KR20080107412A
KR20080107412A KR1020087022158A KR20087022158A KR20080107412A KR 20080107412 A KR20080107412 A KR 20080107412A KR 1020087022158 A KR1020087022158 A KR 1020087022158A KR 20087022158 A KR20087022158 A KR 20087022158A KR 20080107412 A KR20080107412 A KR 20080107412A
Authority
KR
South Korea
Prior art keywords
data
page
computing system
dynamic rendering
network
Prior art date
Application number
KR1020087022158A
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 KR20080107412A publication Critical patent/KR20080107412A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

동적 렌더링 컨트롤을 사용한 웹 페이지 렌더링의 간소화. 서버는 클라이언 트로 다운로드될 페이지에 대한 표현을 식별한다. 이 표현은 그 페이지의 일 부분을 렌더링하기 위해 사용될 수 있는 동적 렌더링 컨트롤을 포함한다. 클라이언트가 적절히 렌더링하기 위해 동적 렌더링 컨트롤에 의해 사용될 데이터의 초기 집합에 대해 접근하게끔 하기보다는, 서버는 사용되는 데이터의 초기 집합을 추정하고, 추정된 데이터의 초기 집합을 포함하는 네트워크 응답을 전송한다. 렌더링 컴포넌트의 실행 시, 클라이언트는 네트워크 소스로부터의 데이터에 접근해야 하기보다는, 간단히 네트워크 응답 내에 제공된 데이터를 사용하여 페이지의 부분을 렌더링할 수 있다.
동적 렌더링 컨트롤, 데이터 추정, 네트워크 소스, 클라이언트, 서버

Description

페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적 렌더링 제어 데이터의 추정 {ESTIMATION OF INITIAL DYNAMIC RENDERING CONTROL DATA}
컴퓨팅 기술은 인류 발전에 많은 공헌을 해 왔다. 컴퓨팅 시스템은 데스크탑 컴퓨터, 랩탑 컴퓨터, 개인용 디지털 보조기(PDA), 전화기만이 아니라, 예를 들어, 냉장고나 자동차 등의 일반적으로 컴퓨팅 시스템으로 생각되지 않던 장치들조차도 포함하는 다양한 형태로 다가오고 있다. 따라서, 컴퓨팅 시스템은 어떠한 타입의 프로세서 및 메모리를 가지는 어떠한 장치 또는 시스템이 될 수 있다.
흔히 컴퓨팅 시스템들은 하나로 네트워크화되어, 컴퓨팅 시스템들 간에 통신할 수 있다. 네트워크는 2개의 컴퓨터를 서로 연결하는 단일의 유/무선 연결과 같이 간단할 수도 있고, 또는 인터넷과 같이 복잡할 수도 있다. 가장 일반적으로 사용되는 응용들 중 대부분은 네트워크 기술에 의존하고 있다. 이러한 응용들은, 예를 들어, 이메일, 인스턴트 메시징, 웹 브라우징, 원격 네트워크 액세스, 전자 칠판, 음성(Voice-over-IP) 전화 통신, 비디오 회의, 원격 동기화(remote synchronization) 및 많은 다른 응용들을 포함한다. 웹 브라우징 기술에서, 어느 한 컴퓨팅 시스템(주로 "클라이언트"라고 대략 지칭됨)이 또 다른 컴퓨팅 시스템("서버"라고 대략 지칭됨)으로 페이지에 대한 요청을 보낸다. 그러면, 서버는 페이지에 대한 표현으로 클라이언트에게 응답하며, 이것이 스크린 상에 디스플레이된 다.
페이지가 클라이언트에서 디스플레이될 수 있도록 하기 위한 페이지를 다운로딩하는 여러 많은 기술들이 존재한다. 일 기술로는, 서버가 페이지에 대한 완전한 렌더링 명령어들을 생성한 후 클라이언트로 렌더링 명령어들을 다운로딩시키는 것이 포함된다. 이후, 클라이언트는 렌더링 명령어 구문을 해석하고 실행한다. 렌더링 명령어의 일 예로, HTML(HyperText Markup Language) 페이지를 들 수 있다. 이 기술의 이점은 오직 하나의 요청-응답의 왕복(single request-response round trip)으로 전체(entire) 페이지가 다운로드될 수 있다는 것이다. 이 기술의 단점은, 클라이언트가 서버로 새로운 요청을 전송할 시, 만일 페이지가 어떠한 식으로든 변경되어야 한다면(예를 들어, 사용자가 페이지의 일 부분을 선택함), 서버는 클라이언트에게 다른 완전한 렌더링 명령어들의 집합을 전송한다는 것이다. 이는 페이지가 어떠한 식으로든 변경될 때마다, 렌더링 명령어들을 형식화(formulate)함에 있어 서버 상에서의 상당한 리소스의 처리를 필요로 한다.
다른 기술은 전혀 달라, 페이지를 변경해야 할 때마다 전체 페이지의 다운로드를 필요로 하지 않는다. 서버가 페이지에 대한 요청을 수신하면, 서버는 페이지를 렌더링하는데 필요로 될 렌더링 명령어들의 일부만을 생성한다. 예를 들어, 서버는 페이지의 골격(scaffolding)을 표현하는 HTML을 생성할지도 모른다. 서버는 클라이언트에서 실행되는 컨트롤과 더불어 HTML을 다운로드한다. 컨트롤은 하나 이상의 기능을 클라이언트로 하여금 수행하도록 허가하는 로직을 포함한다. 이러한 기능(들)을 수행하기 위해서, 컨트롤은 잠정적으로 다른 클라이언트 측의 컨트 롤 또는 심지어 서버와 상호 작용을 할 수 있다. 컨트롤의 한 유형(본원에서 "동적 렌더링 컨트롤"로도 지칭되어짐)은, 예를 들어, HTML 등의 렌더링 명령어들을 렌더링한다(render out). 동적 렌더링 컨트롤은 컨트롤을 렌더링할 시에, 클라이언트에게 알려졌지만 서버에게는 반드시 알려지지는 않은 상태 정보를 로직으로 하여금 고려하도록 허가한다. 만일 상태 정보가 변경된다면, 디스플레이된 컨트롤 형태 역시 서버로부터의 페이지 요청 없이 변경될 수 있다. 따라서, 많은 경우에서, HTML 골격 내에 포함된 동적 렌더링 컨트롤의 사용은 커다란 유연성을 허용한다.
불행히도, 디스플레이 상에 적절히 렌더링하기 위해서, 때로는 클라이언트가 동적 렌더링 컨트롤에 의해 필요한 모든 정보를 항상 가지고 있지는 않는다. 이 경우, 동적 렌더링 컨트롤은 네트워크를 통해 클라이언트로 하여금, 원래는 클라이언트로 페이지를 다운로드해주는 서버 또는 다른 서버 또는 서버 클러스터 모두 중 어느 하나로부터 정보를 요청하게 한다. 따라서, 동적 렌더링 제어 기술의 이용이 더 유연해질 수 있다 해도, 제2 요청-응답 왕복을 역시 요구할 수 있으므로 페이지 렌더링 시에 한층 더한 지연(latency) 및 네트워크 대역 요건이 도입된다.
<간단한 개요>
제한적이지는 않지만, 본 발명의 실시예는 클라이언트로의 페이지 다운로딩에 관한 것이다. 서버가 클라이언트로부터 페이지에 대한 요청을 수신하면, 서버는 해당 네트워크 요청에 상응하는 페이지에 대한 표현(이 표현은 페이지의 일 부분을 렌더링하기 위해 사용될 수 있는 동적 렌더링 컨트롤을 포함함)을 식별한다. 클라이언트가 초기 페이지의 부분을 적절히 렌더링하기 위해 네트워크를 통하여 초기 데이터(동적 렌더링 컨트롤에 의해 사용됨)에 접근하게끔 하기보다, 서버가 이 초기 데이터의 적어도 일부를 추정한다. 이후, 서버는 초기 데이터의 전체 또는 일부를 포함하는 네트워크 응답을 전송한다. 동적 렌더링 컨트롤의 실행 시, 클라이언트는 제2 왕복에서 네트워크 소스로부터 초기 데이터에 접근하기보다는, 페이지의 부분을 렌더링하기 위하여 네트워크 응답 내에 제공된 초기 데이터를 단순히 사용할 수 있다.
이 개요는 아래 "발명의 상세한 설명"에 추후 기술되는 간단한 형태의 개념에 대한 선택을 소개하기 위해 제공된 것이다. 이 개요는 청구된 내용에 대한 핵심적인 특징 또는 본질적인 특징을 식별하기 위해 의도된 것이 아니며, 청구된 내용의 범주를 결정하도록 돕기 위해 사용되도록 의도되지도 않았다.
본 발명의 실시예를 더 특별하게 기술하기 위해서 첨부된 도면들이 사용된다. 도면들은 본 발명의 전형적인 실시예들에 대해서만 묘사하고 있지만, 그 범주에 제한적으로 고려되도록 하지 않는다는 점을 이해해야 하며, 실시예는(아래의) 동반된 도면의 사용을 통해 추가적인 특수성 및 세부성과 함께 기술 및 설명되어질 것이다.
도 1은 본 발명의 원리에 대한 실시예가 동작할 수 있는 컴퓨팅 시스템을 도시한 도면.
도 2는 본 발명의 실시예에 따라, 요청-응답이 동적 렌더링 컴포넌트에 대한 초기 데이터를 포함하는 클라이언트와 서버 간의 요청-응답 흐름도.
도 3A는 본 발명의 실시예에 따라, 서버에 의해 제공된 초기 데이터를 사용하여 초반에 페이지를 렌더링하기 위한 방법에 대한 흐름도.
도 3B는 동적 렌더링 컨트롤이 그와 연관된 페이지의 부분을 재-렌더링하기 위한 방법에 대한 흐름도.
도 4는 페이지에 대한 표현 및 연관된 초기 데이터 소스 데이터 구조를 개략적으로 도시한 도면.
도 5는 초기 데이터 소스 데이터 구조를 사용하여 서버가 또 다른 네트워크 소스로부터의 초기 데이터에 액세스하기 위한 방법에 대한 흐름도.
본 발명의 실시예는 동적 렌더링 컨트롤을 포함하는 초기 웹 페이지를 클라이언트로 다운로드할 시, 동적 렌더링 컨트롤에 대한 초기 데이터를 제공함으로써 서버에 의한 웹 페이지의 렌더링을 간소화하는 것까지 확장된다. 따라서, 초기 데이터의 부분을 동적 렌더링 컨트롤이 렌더링하기 위한 초기 데이터를 클라이언트가 다시 요청하기보다는, 동적 렌더링 컨트롤은 페이지에 대한 본래의 요청에 대한 응답 내에 제공된 초기 데이터를 간단히 사용하여 웹 페이지의 부분을 렌더링할 수 있다. 따라서, 업데이트가 보장되었으므로, 웹페이지의 업데이트를 위해 동적 렌더링 컨트롤의 사용을 여전히 허용하면서, 페이지는 초기에 오직 하나의 요청-응답 왕복으로 렌더링될 수 있다.
본 발명의 실시예는 아래에서 더 자세히 논의되는 것처럼, 다양한 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용의 컴퓨터를 포함할 수 있다. 도 1은 본 발명의 특징들을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템(100)의 예에 대한 개략도를 보여주고 있다. 기술된 컴퓨팅 시스템은 단지 이러한 적절한 컴퓨팅 시스템 등의 예이며, 본 발명의 사용 또는 기능의 범주에 있어서 어떠한 제한을 가하도록 의도되지 않았다. 또한, 본 발명이 도 1에 도시된 어떤 컴포넌트 또는 컴포넌트들의 조합에 대한 어떠한 의존성 또는 요건을 가진다고 해석되어서도 안된다.
컴퓨팅 시스템은 이제 광범위한 형태를 취하는 추세이다. 컴퓨팅 시스템은, 예를 들어, 핸드헬드 장치, 가정용 기구(appliance), 랩탑 컴퓨터, 데스크탑 컴퓨터, 메인프레임, 분산 컴퓨팅 시스템, 또는 통상적으로 컴퓨팅 시스템으로 고려되지 않았던 장치들조차도 될 수 있다. 이러한 기술 및 청구항들에서, "컴퓨팅 시스템"이라는 용어는 적어도 하나의 프로세서, 및 그 프로세서에 의해 실행될 수 있는 컴퓨터 실행 가능 명령어들을 가질 수 있는 메모리를 포함하는 어떤 장치 또는 시스템(또는 그 조합으로부터)을 광범위하게 포함하도록 정의되어 있다. 메모리는 어떠한 형태도 취할 수 있으며, 그 컴퓨팅 시스템의 속성 및 형태에 의존할 수 있다. 컴퓨팅 시스템은 네트워크 환경에 걸쳐 분산될 수 있으며, 복수의 구성 컴퓨팅 시스템을 포함할 수 있다.
도 1을 참조하면, 가장 기본적인 구성에 있어서, 컴퓨팅 시스템(100)은 전형적으로 적어도 하나의 처리장치(102) 및 메모리(104)를 포함한다. 메모리(104)는 휘발성, 비휘발성 또는 그 두 가지의 조합의 어떤 것일 수 있는 시스템 메모리일 수 있다. 휘발성 메모리의 일 예는 랜덤 액세스 메모리(RAM)을 포함한다. 비휘발성 메모리의 예는 판독 전용 메모리(ROM), 플래시 메모리, 또는 그와 유사한 것을 포함한다. "메모리"라는 용어는 본원에서 역시 물리적 저장 매체 등의 비휘발성 저장장치를 지칭하도록 사용될 수 있다. 이러한 저장장치는 이동식 또는 비이동식일 수 있고, PCMCIA 카드, 자기 및 광 디스크, 자기 테이프 및 그와 유사한 것(하지만 이에 한정되지 않음)을 포함할 수 있다.
본원에서 사용된 것처럼, "모듈" 또는 "컴포넌트"라는 용어는 컴퓨팅 시스템 상에서 실행되는 소프트웨어 오브젝트 또는 루틴을 지칭할 수 있다. 본원에서 기술된 다른 컴포넌트, 모듈, 엔진, 및 서비스는 컴퓨팅 시스템 상에서 실행되는 오브젝트 또는 프로세스(예를 들어, 개별적인 쓰레드)로서 구현될 수 있다. 본원에서 기술된 시스템 및 방법들은 소프트웨어로 구현될 수 있는 한편, 하드웨어로의 구현, 및 소프트웨어와 하드웨어의 조합으로의 구현 역시 가능하고 심사숙고된다.
다음의 기술에서, 본 발명의 실시예는 하나 이상의 컴퓨팅 시스템에 의해 수행되는 단계(act)들을 참조하여 기술되고 있다. 만일 이러한 단계들이 소프트웨어로 구현된다면, 단계를 수행하는 연관된 컴퓨팅 시스템의 하나 이상의 프로세서는 실행된 컴퓨터 실행가능 명령어들을 가지는 것에 대한 응답으로 컴퓨팅 시스템 동작을 연출한다. 이러한 동작의 예로는 데이터 조작을 포함한다. 컴퓨터 실행가능 명령어(그리고 조작된 데이터)는 컴퓨팅 시스템(100)의 메모리(104)에 저장될 수 있다.
컴퓨팅 시스템(100)은 통신 채널(108) 역시 포함할 수 있는데, 이 채널은 컴퓨팅 시스템(100)이, 예를 들어, 네트워크(110)를 통해 다른 컴퓨팅 시스템들과 통신할 수 있도록 하게 한다. 통신 채널(108)은 통신 매체의 예이다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘 등의 변조된 데이터 신호 내의 다른 데이터를 포함하고, 어떤 정보 제공 매체를 포함한다. 예로서, 이에 한정되지는 않지만, 통신 매체는 유선 네트워크 및 직접 연결된 유선 연결 등의 유선 매체, 아쿠스틱, 라디오, 적외선 등의 무선 매체, 그리고 다른 무선 매체를 포함한다. 본원에서 사용된 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 모두를 포함한다.
본 발명의 범주 내에서의 실시예는 컴퓨터 실행가능 명령어 또는 데이터 구조를 전달 및 보유하기 위한 컴퓨터 판독가능 매체(컴퓨터 실행가능 명령어 또는 데이터를 포함함) 역시 포함하고 있다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있는 어떤 가용 매체가 될 수 있다. 예로서, 이에 한정되지는 않지만, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 등의 물리적 저장 장치 및/또는 메모리 매체 또는 다른 광 디스크 저장장치, 자기 디스크 저장장치 또는 다른 자기 저장 장치, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조 형태의 바람직한 프로그램 코드 수단(mean)을 전달 및 저장하기 위해 사용될 수 있고, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 어떤 다른 매체를 포함할 수 있다. 정보가 네트워크 또는 또 다른 통신 연결(유선, 무선, 또는 유무선 조합 중 하나)을 통해 컴퓨터로 전송 또는 제공되면, 컴퓨터는 그 연결을 컴퓨터 판독가능 매체로서 간주한다. 따라서, 임의 그런 연결을 컴퓨터 판독가능 매체라고 적절히 지칭한다. 위의 조합도 역시 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
컴퓨터 실행가능 명령어는, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 처리 장치로 하여금 특정한 기능 또는 기능들의 집합을 수행하도록 하는 명령어들 및 데이터를 포함한다. 본 발명의 주제가 구조적 특징 및/또는 방법론적인 단계에 특정한 언어로 서술되었지만, 첨부된 청구항들에 정의되는 청구 대상은 상기 설명된 어떤 특정한 특징이나 단계로 제한되는 것이 아님을 알아야 한다. 오히려, 본건에서 기술되어진 특정한 특징과 단계들은 청구항들을 구현하는 예시적인 형태로 개시된다.
도 2는 본 발명의 원리에 따라, 페이지 다운로딩을 간편화하기 위한 클라이언트(210)와 서버(220) 사이의 통신에 관한 로직 흐름을 도시하고 있다. 페이지는, 예를 들어, 웹 페이지가 될 수 있으며, 이 웹 페이지는 클라이언트가 페이지의 정적인 부분을 디스플레이할 수 있도록 구문 분석 및 실행할 수 있는 정적 렌더링 명령어를 표현하는 텍스트 기반 마크업 언어(text-based markup language)를 포함할 수 있다. 예를 들어,웹 페이지는 HTML의 기본 골격으로서는 종종 HTML을 사용하고 스크립트 구성 요소 또는 다른 마크업 언어 구성요소(XML(eXtensible Markup Language) 구성요소 등)를 이용하여 형식화된다.
페이지는 하나 이상의 동적 렌더링 컨트롤 역시 포함할 수 있다. 인스턴스화하면(instantiated), 동적 렌더링 컨트롤은 이와 연관된 데이터를 사용하여 페이지의 일 부분을 동적으로 렌더링한다. 이러한 연관된 데이터는 서버로부터 제공된 동적 렌더링 컨트롤 내에 존재할 수 있거나, 클라이언트 상에서 존재할 수 있거나, 또는 네트워크를 통해 클라이언트에 의해 얻어질 수 있다. 만약 연관된 데이터가 변경되어야 한다면, 업데이트된 웹 페이지에 대한 클라이언트의 재요청 없이도 동적 렌더링 제어는 페이지의 그 부분을 재렌더링(re-render)할 수 있다. 따라서, 동적 렌더링 컨트롤은 데이터의 변경에 대해 동적으로 그리고 유연하게 응답한다.
이 설명 및 청구항들에서, 경우에 따라 "클라이언트" 컴퓨팅 시스템 및 "서버" 컴퓨팅 시스템을 참조할 수 있다. 이 설명 및 청구항들에서, "클라이언트" 및 "서버"라는 용어들은 넓게 해석되도록 의도되어 있다. "서버" 또는 "서버 컴퓨팅 시스템"이라는 용어는, 따라서, 임의 종류의 서비스를 또 다른 컴퓨팅 시스템에 제공하는 임의 컴퓨팅 시스템이다. "클라이언트" 또는 "클라이언트 컴퓨팅 시스템"이라는 용어는 임의 종류의 서비스를 또 다른 컴퓨팅 시스템에 의해 제공받아 소비하는 임의 컴퓨팅 시스템이다. 본 기술분야의 통상적인 기술을 가진 당업자는 네트워킹 기술이 과거의 간단한 클라이언트-서버 토폴로지에 비해 훨씬 더 복잡하게 되었다는 것을 알 수 있을 것이다. 따라서, 단일 컴퓨팅 시스템은 서비스를 소비 및 제공할 수 있고, 따라서, 클라이언트 및 서버 컴퓨팅 시스템 모두일 수 있다.
도 3A는 동적 렌더링 컨트롤이 렌더링하기 위해 필요한 추가적인 데이터에 대해 그 자신이 요청을 행할 필요 없이, 동적 렌더링 컨트롤을 간소화하는 방법으로 웹 페이지를 다운로딩하는 방법(300A)에 대한 흐름도이다. 따라서, 초기의 웹 페이지는 오직 하나의 왕복 요청-응답 조합을 사용하여 디스플레이될 수 있으므로 초기 페이지의 디스플레이에 있어서 효율 및 수행의 향상을 가져온다. 도 2의 클라이언트(210)에 의해 수행되는 단계들은, "클라이언트"라는 제목하에 도 3A의 왼쪽 절반부에 나열되어 있다. 도 2의 서버(220)에 의해 수행되는 단계들은 "서버"라는 제목하에 도 3A의 오른쪽 절반부에 나열되어 있다. 방법(300)은 도 2의 로직 흐름(200)을 이용하여 수행될 수 있다. 따라서, 도 2 및 도 3A는 서로 자주 참조하면서 기술될 것이다.
클라이언트는 디스플레이 되어야 하는 페이지를 결정한다(단계(311)). 예를 들어, 사용자는 웹 브라우저와 상호작용할 수 있고, 현재 웹 페이지 내의 하이퍼링크를 선택하거나 또는 URL(Uniform Resource Locator)을 선택할 수 있다. 예를 들어, URL은 웹 브라우저의 주소 필드에 URL을 타이핑해 넣음으로써 선택될 수 있다.
응답으로, 클라이언트는 이후 연관된 페이지에 대한 요청을 제출한다(단계(312)). 이 요청(또한 본원에서는 "네트워크 요청"이라고도 불림)은 요청 "211"로서 도 2에 표현되어 있는 반면, 그 전송은 화살표 A를 사용하여 나타난다. 요청은 HTTP(HyperText Transport Protocol)의 어떠한 버전과도 순응할 수 있고, 예를 들어, HTTP GET 요청일 수 있다. 하지만, 요청은 클라이언트와 서버 간에 요청이 통신되도록 허가하는 임의 프로토콜에 따른 임의 요청일 수 있다.
클라이언트로부터 페이지에 대한 네트워크 요청을 수신 시(단계(331)), 서버는 해당 네트워크 요청에 상응하는 페이지에 대한 표현을 식별한다(단계(332)). 예를 들어, 페이지 렌더링 시, 서버는 클라이언트가 실행하는 렌더링 명령어들에 액세스 할 수 있고, 또는 렌더링 명령어들을 형식화할 수 있다.
도 4는, 서버 상에 존재할 수 있거나, 서버에 의해 액세스 될 수 있거나, 또는 서버에 의해 형식화될 수 있는 페이지 표현 데이터 구조(400)에 대해 추상적으로 도시하고 있다. 페이지 표현은 정적 렌더링 명령어(401)를 포함하며, 이는, 예를 들어, 해당 페이지의 기초 골격을 정의하는 HTML 코드일 수 있다. 페이지 표현(400)은 해당 페이지의 동적인 부분들을 렌더링하기 위하여 클라이언트에 의해 실행될 수 있는 스크립트(402)를 선택적으로 포함할 수도 있다. 클라이언트 상에서 및/또는 네트워크를 통해, 페이지 표현(400)은 적어도 임의 동적 렌더링 컨트롤(403) 역시 포함할 수 있고, 인스턴스는 클라이언트로 하여금 동적 렌더링 컨트롤 내에 존재하는 연관된 데이터를 사용하여 페이지의 상응하는 부분을 동적으로 렌더링하도록 할 것이다. 페이지 표현(400)은 수직의 타원(404)들에 의해 표현된 것 뿐만이 아니라, 다른 아이템들 역시 포함할 수 있다.
동적 렌더링 컨트롤이 적절히 렌더링하기 위해 필요한 임의 초기 데이터를 클라이언트로 하여금 네트워크를 통해 액세스하도록 내버려두기보다는, 페이지의 부분을 초기에 렌더링하기 위해서 동적 렌더링 컨트롤이 필요로 하는 초기 데이터를 서버가 추정한다(단계(333)). 이 추정은 초기 페이지의 연관된 부분을 렌더링하는 데 필요한 초기 데이터를 제공하는 어떤 방식으로도 이루어질 수 있다. 일 실시예에서, 페이지의 작성자(author)는 단순히 서버에서 페이지와 연관된 데이터 구조(예를 들어, 이후로는 명확성을 위해 "초기 데이터 소스 데이터 구조"로서 지칭됨)를 포함한다. 예를 들어, 초기 데이터 소스 데이터 구조(410)는 원하는 페이지에 대한 페이지 표현(400)과의 연관(411)을 갖고 도시된다. 이 초기 데이터 소스 데이터 구조(410)는 심지어 페이지 표현(400) 내에 초기에 포함될 수도 있다.
초기 데이터는 초기 데이터 소스 데이터 구조 내에 포함될 수 있다. 이 경우, 초기 데이터에 대한 추정은 단순히 초기 데이터 소스 데이터 구조(410)에 대한 액세싱 및 초기 데이터 소스 데이터 구조 내에 포함된 초기 데이터가 응답 내에 포함되었다는 것을 보증을 포함한다. 대안으로, 만일 동적 렌더링 컴포넌트의 초기 데이터가 초기 데이터 소스 데이터 구조(410) 내에 있지 않다면, 초기 데이터 소스 데이터 구조(410)는 초기 데이터에 액세스하는 방법에 대한 서버로의 명령어들을 포함할지도 모른다. 후자의 경우, 도 5는 서버가 네트워크를 통해 초기 데이터에 접근해야할 필요가 있을 시의 초기 데이터에 대해 추정하는 방법(500)을 도시하고 있다.
구체적으로 설명하자면, 서버는 페이지 표현과 연관된 초기 데이터 소스 데이터 구조에 액세스한다(단계(501)). 이 경우, 초기 데이터 소스 데이터 구조는 초기 데이터가 구해질 수 있는 네트워크 소스를 제공한다. 서버는 이후 초기 데이터 소스 데이터 구조에 명시된 네트워크 소스로부터 초기 데이터를 요청하고(단계(502)), 그 결과 네트워크 소스로부터 초기 데이터가 수신된다(단계(503)).
예를 들어, 초기 데이터 소스 데이터 구조는 서버에서의 XML 수도 코드(pseudo code)내에 표현된 것과 같이 다음과 같이 나타날 수 있다:
<asp:InitialData RunAt="Server"
SourceURL="MYSVC.ASMX"
AssociatedDataSource="DS1"/>
이 데이터 구조에서, 데이터 구조는 "InitialData"로 제목이 붙여지고, 데이터 구조가 실행을 위해 클라이언트로 보내지기보다는 서버에서 분해될 것임을 나타내도록 속성 "RunAt"은 "Server"라는 값을 갖는다. SourceURL 요소는 초기 데이터가 URL "MYSCV.ASMX"에 상응하는 위치에서 발견될 수 있음을 규정한다. AssociatedDataSource 요소는 초기 데이터가 페이지 내에 포함된 데이터 소스 요소에 상응함을 규정한다. 따라서, 초기 데이터가 액세스 되면, 초기 데이터는 데이터 소스 요소 내에 배치되거나 또는 연관될 수 있다. 이후 클라이언트는 초기 데이터를 어디에서 찾아야 하는지를 알 수 있다.
도 3으로 돌아가서, 초기 데이터는, 따라서, 추정될 수 있다(단계(323)). 이 기술 및 청구항들에서, 초기 데이터에 대한 "추정"은 초기 데이터에 대한 결정적인 식별 역시 포함할 수 있다. 따라서, "추정하다"라는 용어의 사용은 초기 데이터의 옳고 그름의 여부에 대한 어떤 불확실성이 있는지에 대한 요건으로서 해석해서는 안된다. 하지만, 본 발명의 원리는 초기 데이터의 정확성이 의심될 수 있는 상황으로 확대된다.
초기 데이터가 어떻게 추정되는지에 관계없이, 서버는 이후 클라이언트로 요청에 상응하는 네트워크 요청을 전송한다(단계(334)). 도 2에서, 네트워크 응답은 응답(212)에 의해 표현되는 반면, 그 전송은 화살표 B에 의해 나타난다. 네트워크 응답(212)은 적어도 변환된 버전의 페이지의 표현 및 동적 렌더링 컴포넌트의 추정된 초기 데이터를 포함한다. 이 초기 데이터는 도 2의 네트워크 응답(212) 내의 동적 렌더링 컨트롤(214) 내에 포함되거나 또는 연관되어 있는 초기 데이터(213)에 의해 개략적으로 표현된다. 페이지 표현은, 예를 들어, 전송에 적절한 형식으로 변환되는 텍스트에 기반한 표현(HTML 웹 페이지 등)일 수 있다. 예를 들어, 웹 페이지는 압축화 및/또는 암호화, 그리고 직렬화(serialized) 될 수 있다. 네트워크 응답에 포함된 둘 이상의 동적 렌더링 컨트롤에 대한 초기 데이터를 추정하여 네트워크 응답에 포함시킬 수 있다.
클라이언트가 네트워크 응답을 수신한다면(단계(313)), 클라이언트는 웹 페이지를 디스플레이한다. 이를 행하기 위해서, 클라이언트는 서버에 의해 제공된 페이지 표현 내에 포함된 임의의 정적 렌더링 명령어(도 4의 "401" 참조) 및 스크립트(도 4의 "402" 참조)를 실행한다. 게다가, 클라이언트는 각각의 동적 렌더링 컨트롤을 시작한다(단계(314)).
동적 렌더링 컨트롤을 실행하기 위해서, 클라이언트는 먼저 클라이언트에 존재하는 연관된 정보를 사용하여 동적 렌더링 컨트롤을 인스턴스화한다. 동적 렌더링 컨트롤은 렌더링 제어 트리의 노드일 수 있다. 예를 들어, 렌더링 컨트롤이 "ListView" 컨트롤이 될 수도 있기 때문에, 본 발명의 원리는 컨트롤의 해당 유형으로 한정되지 않는다.
동적 렌더링 컨트롤은 이후 웹 페이지의 부분을 완전히 렌더링하기 위해서 추가적인 초기 데이터가 필요한지 여부에 대해 결정을 내린다(결정 블록(315)). 만약 필요치 않다면(결정 블록(315)에서 "아니오"), 웹 페이지의 상응하는 부분은 동적 렌더링 컨트롤을 사용하여 렌더링될 수 있다(단계(316)). 만약 필요하다면(결정 블록(315)에서 "예"), 동적 렌더링 제어는 이후 네트워크 응답이 초기 데이터의 추정치를 포함하는지 여부를 결정한다(결정 블록(317)). 만일 초기 데이터가 네트워크 응답 내에 존재한다면(결정 블록(317)에서 "예"), 동적 렌더링 컨트롤은 이후 네트워크 응답에서 발견된 추가의 초기 데이터에 비추어, 초기 데이터의 부분을 렌더링하기 위해 필요한 모든 초기 데이터를 현재 보유하고 있는지의 여부를 결정한다(결정 블록(315)로 돌아가서).
일 실시예에서, 초기 데이터는 페이지 표현 내의 데이터 소스 데이터 구조로부터 얻어져 왔을 수 있다. 그 경우, 초기 데이터는 초기 데이터의 데이터 소스 컴포넌트에 질의하는 동적 렌더링 제어에 의해 액세스될 수 있으며, 그 결과, 데이터 소스 컴포넌트는 렌더링 컴포넌트에 초기 데이터를 제공한다.
예를 들어, 동적 렌더링 컨트롤이 "ListView" 컨트롤이라고 가정해 보자. 동적 렌더링 컨트롤은 다음과 같이 나타날 수 있다:
<ListView AssociatedDataSource="D1"
OTHER LIST VIEW ATTRIBUTES AND STATE
/>
ListView 컨트롤은 초기 데이터에 액세스하기 위하여 컨트롤이 가야할 데이터 소스가 "D1"에 의해 식별됨을 규정한다. 다음은 "D1"으로 식별된 상응하는 데이터 소스 컨트롤에 대한 예를 나타낸다:
<DataSource ID="D1">
<Data>
INITIAL DATA
</Data>
</DataSource>
여기서, 초기 데이터는 데이터 소스 컨트롤의 데이터 요소 내에 포함되어 있다. 데이터 소스 제어는 데이터 소스 컴포넌트를 "D1"으로서 식별하는 속성 "ID"를 포함한다. 따라서, ListView 컴포넌트는 데이터 소스 컨트롤 내의 초기 데이터에 액세스할 수 있을 것이다. 데이터가 동적 렌더링 컨트롤에 의해 해석될 수 있거나, 또는 클라이언트에 의해 변경되어 동적 렌더링 컨트롤에 의해 해석되어 질 수 있는 한, 초기 데이터는 구조화된 데이터(예를 들어, XML을 사용하여 표현될지도 모르는), 또는 구조화되지 않은 데이터일 수 있다.
이 경우(결정 블록(317)에서 "예", 그 뒤의 결정 블록(315)에서 "아니오"), 초기 데이터는 네트워크 응답에 포함되었고, 따라서 동적 렌더링 컨트롤이 제2 요청-응답 왕복을 수행할 필요 없이 렌더링할 수 있었다. 만일 하나 이상의 추가의 요청-응답 왕복을 보통은 요구할 것인 하나 이상의 동적 렌더링 컨트롤에 대한 초기 데이터가 존재하면, 렌더링 프로세스는 그러한 추가의 왕복으로부터 생략됨으로써, 초기 웹 페이지의 렌더링에서의 수행을 향상시킨다. 이 생략은 특히, 웹 페이지 내에 많은 동적 렌더링 컨트롤이 있을 수 있고 및 각각의 동적 렌더링 컨트롤이 디스플레이의 각 해당 부분을 렌더링하기 위해 요구되는 모든 데이터를 얻기 위해서 둘 이상의 추가적인 왕복을 요구할 수 있는 것을 고려할 때, 명백해진다.
예를 들어, 만일 네트워크 응답이 초기 데이터를 포함하고 있지 않았다면(결정 블록(317)에서 "아니오"), 클라이언트는 다른 네트워크 소스로부터 데이터를 요청했을 것이다(단계(318)). 예를 들어, 도 2에서, 클라이언트는 전송 "C"에 의해 표현된 것과 같이 데이터에 대한 요청(211)을 보낸다. 그 다른 네트워크 소스는 서버(220)일 수 있고, 또는 소정의 다른 서버일 수도 있다. 이 요청에는 동적 렌더링 컨트롤이 데이터에 대한 데이터 소스 컨트롤에 질의하는 것이 수반될 수 있다. 응답으로, 데이터 소스 컨트롤은 데이터 소스 제어 내에 식별된 네트워크 소스로부터 추가적인 데이터를 요청할 수 있다. 예를 들어, 데이터 소스 컨트롤은 그 대신에 다음과 같이 구조화 되었을 수 있다:
<DataSource ServiceURL="MYSVC.ASMX" ID="D1">
데이터가 네트워크를 통해 데이터 소스 컨트롤에 반환된다면(도 2의 데이터(223)를 포함하는 제2 응답(222)을 포함하는 전송 "D" 참조), 데이터 소스 컨트롤은 동적 렌더링 컨트롤에 데이터를 반환할 것이다. 동적 렌더링 컨트롤은 렌더링 컴포넌트를 사용하여 웹 페이지의 부분을 렌더링하기 위해 다른 네트워크 소스로부터 획득된 데이터를 사용할 수 있다(단계(316)).
초기 웹 페이지가 단일 요청 및 응답으로써 렌더링될 수 있도록 하며, 이 경우 초기 데이터는 초기 웹 페이지의 요청에 대한 응답으로 반환된다. 도 3B는 동적 렌더링 컨트롤이 웹 페이지의 컨트롤과 연관된 부분이 업데이트될 거라고 결정하면, 웹페이지를 업데이트시켜야 할 경우, 클라이언트에서 발생할 수 있는 프로세스(300B)에 대해 도시하고 있다. 구체적으로 설명하자면, 웹 페이지의 연관된 페이지가 업데이트될 거라고 검출 시(단계(320)), 동적 렌더링 컨트롤은 업데이트된 페이지를 렌더링하기 위해 필요한 업데이트된 데이터에 액세스한다(단계(321)). 이것에는 동적 렌더링 컨트롤이 네트워크를 통해 업데이트된 데이터에 액세싱하는 것이 수반될 수 있다. 동적 렌더링 컨트롤은 이후 웹 페이지의 그 부분을 업데이트하기 위해 업데이트된 데이터를 사용한다(단계(322)).
도 3A 및 3B에 관한 방법들을 기술하였지만, 본 발명의 원리는 하나 이상의 컴퓨터 실행가능 명령어를 가지는 하나 이상의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로까지 확대되며, 하나 이상의 컴퓨터 실행 가능 명령어가 서버 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 이들 명령어는 이러한 방법들의 모든 또는 부분 또는 어느 하나 또는 모두를 컴퓨팅 시스템으로 하여금 수행하도록 한다. 예를 들어, 도 1을 참조하여, 메모리(104) 및 통신 채널(108)은 그러한 컴퓨터 판독가능 매체의 예를 나타낼 수 있다. 메모리(104)는 물리적인 저장 장치 및/또는 메모리 매체 형태의 물리적인 컴퓨터 판독가능 매체의 예를 나타내고 있다. 본 발명의 원리는 도 3A 및/또는 도 3B의 방법들의 모든 부분을 수행하기 위해 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합을 통해 구성되는 컴퓨팅 시스템 자신까지도 확대된다.
따라서, 동적 렌더링 컨트롤이 처음에 렌더링하기 위해 필요한 정보를 획득하기 위해 추가적인 네트워크 대역폭을 동적 렌더링 컨트롤이 사용하기 위한 어떠한 요건 없이도, 본 발명의 원리는 페이지 내의 동적 렌더링 컨트롤을 메커니즘에게 사용하도록 허락한다. 이로써, 웹 페이지 렌더링에 있어서의 효율을 향상시킨다.
본 발명은 본 발명의 의도 또는 본질적인 특징에서 벗어나지 않는 한 다른 특정한 형태로 구체화될 수 있다. 기술된 실시예들은 모든 면에 있어, 단지 예로서 기술된 것이지만 제한적이지 않은 것으로 간주된다. 본 발명의 범주는, 그러므로, 앞서의 기술내용에 의해서라기보다 첨부된 청구항들에 의해서 정해진다. 청구항들의 등가의 의미 및 범위 내에서의 모든 변경들은 본 발명의 범주 내에 포함된다.

Claims (20)

  1. 클라이언트에서 페이지의 렌더링을 간편화하기 위한 서버 컴퓨팅 시스템의 방법으로서,
    페이지에 대한 네트워크 요청을 클라이언트로부터 수신하는 단계;
    상기 네트워크 요청에 상응하는 상기 페이지의 일 부분을 렌더링하기 위해 사용될 수 있는 적어도 하나의 동적 렌더링 컨트롤을 포함하는 상기 페이지의 표현을 식별하는 단계;
    상기 페이지의 상기 부분을 상기 동적 렌더링 컨트롤이 적절히 렌더링하는데 필요한 소정의 또는 모든 초기 데이터의 집합을 추정하는 단계; 및
    상기 클라이언트로 네트워크 응답 - 상기 네트워크 응답은 상기 네트워크 요 청에 상응하고, 적어도 변환된 버전의 상기 페이지에 대한 상기 표현 및 소정의 또는 모든 초기의 데이터 집합을 포함함- 을 전송하는 단계
    를 포함하는 서버 컴퓨팅 시스템 방법.
  2. 제1항에 있어서,
    상기 페이지의 상기 표현은 텍스트에 기반한 표현이고 상기 페이지의 상기 표현의 변환된 버전을 사용하여 전송되는
    서버 컴퓨팅 시스템 방법.
  3. 제2항에 있어서,
    상기 페이지의 상기 표현에 대한 상기 변환된 버전은 전송에 알맞은 포맷으로 변환되는 상기 텍스트 기반의 표현의 버전인
    서버 컴퓨팅 시스템 방법.
  4. 제1항에 있어서,
    상기 소정의 또는 모든 초기의 데이터 집합을 추정하는 단계는:
    상기 페이지의 상기 표현으로부터 초기 데이터 소스 데이터 구조 - 데이터의 상기 초기 집합을 규정함 - 로 액세싱하는 단계
    를 포함하는 서버 컴퓨팅 시스템 방법.
  5. 제1항에 있어서,
    상기 소정의 또는 모든 초기의 데이터 집합을 추정하는 단계는:
    상기 페이지의 상기 표현으로부터 초기 데이터 소스 데이터 구조 - 상기 초기 데이터 소스 데이터 구조는 상기 초기 데이터를 얻을 수 있는 네트워크 소스를 제공함 - 에 액세싱하는 단계;
    상기 네트워크 소스로부터 상기 초기 데이터를 요청하는 단계; 및
    상기 네트워크 소스로부터 상기 초기 데이터의 요청에 대한 응답으로 상기 네트워크 소스로부터 상기 초기 데이터를 수신하는 단계
    를 포함하는 서버 컴퓨팅 시스템 방법.
  6. 하나 이상의 컴퓨터 실행 가능 명령어를 갖는 하나 이상의 컴퓨터 판독 가능 매체를 포함한 컴퓨터 프로그램으로서, 상기 하나 이상의 컴퓨터 실행 가능 명령어들이 상기 서버 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 이들 명령어가 상기 컴퓨팅 시스템으로 하여금 제1항의 방법을 수행하게 하는 컴퓨터 프로그램 제품.
  7. 제1항에 따른 방법을 수행하도록 구성된 컴퓨팅 시스템.
  8. 클라이언트 컴퓨팅 시스템이 페이지를 다운로드하기 위한 방법으로서,
    서버로 보내지는 웹 페이지 요청에 대한 응답으로, 상기 웹 페이지의 일 부 분을 렌더링하기 위해 사용될 수 있는 적어도 하나의 동적 렌더링 컨트롤을 포함하는 상기 웹 페이지에 대한 표현의 형태로 상기 요청에 대한 응답을 수신하는 단계;
    상기 동적 렌더링 컨트롤을 실행하는 단계;
    상기 동적 렌더링 컨트롤을 실행하면서:
    상기 웹 페이지의 상기 부분을 완전히 렌더링하기 위해서 추가적인 데이터가 필요한지의 여부를 결정하는 단계;
    상기 네트워크 응답이 상기 추가적인 데이터에 대한 추정치도 포함하는지의 여부를 결정하는 단계; 및
    만일 상기 네트워크 응답이 상기 추가적인 데이터에 대한 상기 추정치를 포함한다고 결정되면, 상기 동적 렌더링 컨트롤을 사용하여 상기 웹 페이지의 상기 부분을 렌더링하기 위해서 상기 추가적인 데이터에 대한 상기 추정치를 사용하는 단계; 및
    만일 상기 네트워크 응답이 상기 추가적인 데이터에 대한 상기 추정치를 포함하고 있지 않다고 결정되면, 다른 네트워크 소스로부터 상기 추가적인 데이터를 요청하는 단계; 및 상기 동적 렌더링 컨트롤을 사용하여 상기 웹 페이지의 상기 부분을 렌더링하기 위해 상기 다른 네트워크 소스로부터 얻어진 상기 추가적인 데이터를 사용하는 단계를 수행하는
    것을 포함하는 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  9. 제8항에 있어서,
    상기 네트워크 응답은 데이터 소스 제어에 대한 표현을 포함하고
    상기 추가적인 데이터에 대한 상기 추정치를 사용하는 단계는,
    상기 동적 렌더링 컨트롤이 상기 추가적인 데이터에 대해 상기 데이터 소스 컨트롤에 질의하는 단계; 및
    상기 데이터 소스 컨트롤이 상기 데이터 소스 컨트롤 내에 포함된 상기 추가적인 데이터를 상기 동적 렌더링 컴포넌트에 제공하는 단계
    를 포함하는 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  10. 제8항에 있어서,
    상기 네트워크 응답은 데이터 소스 컨트롤에 대한 표현을 포함하고
    다른 네트워크 소스로부터의 상기 추가적인 데이터를 요청하는 단계는,
    상기 동적 렌더링 컨트롤이 상기 추가적인 데이터에 대해 상기 데이터 소스 컨트롤에 질의하는 단계; 및
    상기 데이터 소스 컨트롤이 상기 데이터 소스 컴포넌트 내에 식별된 네트워크 소스로부터의 상기 추가적인 데이터를 요청하는 단계
    를 포함하는 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  11. 제8항에 있어서,
    상기 웹 페이지를 업데이트해야 하는지를 검출하는 단계;
    상기 동적 렌더링 컨트롤이 업데이트된 데이터에 액세싱하는 단계; 및
    상기 동적 렌더링 컨트롤이 상기 업데이트된 데이터를 사용하여 상기 웹 페이지의 상기 부분을 재렌더링하는 단계
    를 더 포함하는 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  12. 제11항에 있어서,
    상기 동적 렌더링 컨트롤이 업데이트된 데이터에 액세싱하는 단계는
    네트워크를 통해 상기 클라이언트 컴퓨팅 시스템이 상기 업데이트된 데이터를 요청하는 단계
    를 포함하는 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  13. 제8항에 있어서,
    상기 요청은 HTTP(HyperTextTransportProtocol) 요청인 클라이언트 컴퓨팅 시스템의 페이지 다운로드 방법.
  14. 하나 이상의 컴퓨터 실행 가능 명령어를 갖는 하나 이상의 컴퓨터 판독 가능 매체를 포함한 컴퓨터 프로그램으로서, 상기 하나 이상의 컴퓨터 실행 가능 명령어들이 상기 서버 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 이들 명령어가 상기 컴퓨팅 시스템으로 하여금 제8항의 방법을 수행하게 하는 컴퓨터 프로그램 제품.
  15. 제8항에 따른 방법을 수행하도록 구성된 컴퓨팅 시스템.
  16. 하나 이상의 컴퓨터 실행 가능 명령어를 갖는 하나 이상의 컴퓨터 판독 가능 매체를 포함한 컴퓨터 프로그램으로서, 상기 하나 이상의 컴퓨터 실행 가능 명령어들이 상기 서버 컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행될 때, 이들 명령어가 상기 컴퓨팅 시스템으로 하여금 웹 페이지에 대한 네트워크 요청에 대한 응답 수신에 대한 응답으로,
    상기 동적 렌더링 컨트롤을 실행하는 단계;
    상기 동적 렌더링 컨트롤을 실행시에는:
    상기 웹 페이지의 상기 부분을 완전히 렌더링하기 위해서 추가적인 데이터가 필요한지의 여부를 결정하는 단계;
    상기 응답이 상기 추가적인 데이터에 대한 추정치를 포함하는지의 여부를 결정하는 단계; 및
    상기 동적 렌더링 컨트롤을 사용하여 상기 웹 페이지의 상기 부분을 렌더링하기 위해 상기 추가적인 데이터에 대한 상기 추정치를 사용하는 단계
    를 수행하게 하는 컴퓨터 프로그램 제품.
  17. 제16항에 있어서,
    상기 동적 렌더링 컨트롤이 컨트롤 트리(control tree)의 일부인 컴퓨터 프로그램 제품.
  18. 제16항에 있어서,
    상기 추가적인 데이터에 대한 추정치를 사용하는 상기 단계를 수행하는 상기 컴퓨터 실행가능 명령어가,
    상기 동적 렌더링 컨트롤로 하여금 상기 웹 페이지에 대한 상기 표현에 역시 제공된 데이터 소스 컨트롤로부터 상기 추가적인 데이터를 요청하게 하는 단계; 및
    상기 데이터 소스 컨트롤로 하여금 상기 추가적인 데이터를 상기 동적 렌더링 컨트롤에 제공하게 하는 단계
    를 수행하는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨터 프로그램 제품.
  19. 제16항에 있어서,
    상기 하나 이상의 컴퓨터 판독가능 매체는 물리적 저장 매체인 컴퓨터 프로그램 제품.
  20. 제16항에 있어서,
    상기 하나 이상의 컴퓨터 판독가능 매체는 물리적 메모리 매체인 컴퓨터 프로그램 제품.
KR1020087022158A 2006-03-17 2007-02-02 페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적렌더링 제어 데이터의 추정 KR20080107412A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/377,995 2006-03-17
US11/377,995 US20070220083A1 (en) 2006-03-17 2006-03-17 Estimation of initial dynamic rendering control data

Publications (1)

Publication Number Publication Date
KR20080107412A true KR20080107412A (ko) 2008-12-10

Family

ID=38519222

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087022158A KR20080107412A (ko) 2006-03-17 2007-02-02 페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적렌더링 제어 데이터의 추정

Country Status (12)

Country Link
US (1) US20070220083A1 (ko)
EP (1) EP2005322A1 (ko)
JP (1) JP2009530736A (ko)
KR (1) KR20080107412A (ko)
CN (1) CN101405723B (ko)
AU (1) AU2007227774A1 (ko)
BR (1) BRPI0708793A2 (ko)
CA (1) CA2644339A1 (ko)
MX (1) MX2008011659A (ko)
RU (1) RU2008137141A (ko)
TW (1) TW200822649A (ko)
WO (1) WO2007108866A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090106651A1 (en) * 2007-10-19 2009-04-23 Gorog Christopher P Rendering Data From A Server For Display In A Web Browser On A Client Computer
US8290929B2 (en) * 2007-10-26 2012-10-16 Yahoo! Inc. Media enhancement mechanism using embed code
US10025760B2 (en) * 2013-01-25 2018-07-17 Ebay Inc. Mapping page states to URLs
US9451005B2 (en) 2013-07-15 2016-09-20 Microsoft Technology Licensing, Llc Delegation of rendering between a web application and a native application
CN105183636A (zh) * 2015-07-23 2015-12-23 柳州永旺科技有限公司 一种应用侧软件环境的检测方法
CN105183638A (zh) * 2015-07-23 2015-12-23 柳州永旺科技有限公司 一种大数据软件环境的过滤方法
CN105095776A (zh) * 2015-07-23 2015-11-25 柳州易旺科技有限公司 一种服务器侧网页数据加密方法
CN105138449A (zh) * 2015-07-23 2015-12-09 柳州永旺科技有限公司 一种通用软件环境的实现方法
CN105183637A (zh) * 2015-07-23 2015-12-23 柳州永旺科技有限公司 一种基于云计算的软件环境测试方法
US10223460B2 (en) 2015-08-25 2019-03-05 Google Llc Application partial deep link to a corresponding resource
CN106611340A (zh) * 2015-10-21 2017-05-03 阿里巴巴集团控股有限公司 动态展示方法和装置、动态设置方法和装置
US10162500B2 (en) * 2016-08-24 2018-12-25 Microsoft Technology Licensing, Llc Dynamically render large dataset in client application
GB2564165B (en) * 2017-02-02 2021-11-24 Google Llc Custom digital components
US11184249B2 (en) * 2019-04-30 2021-11-23 Salesforce.Com, Inc. Declarative and reactive data layer for component-based user interfaces
CN111782993A (zh) * 2019-07-23 2020-10-16 北京京东尚科信息技术有限公司 页面显示方法、装置及服务器
CN111026463B (zh) * 2019-12-20 2023-12-26 深圳乐信软件技术有限公司 一种页面加载方法、装置、设备和存储介质
CN111857908A (zh) * 2020-06-15 2020-10-30 北京达佳互联信息技术有限公司 挂件展示的控制方法、装置、系统、电子设备、服务器及存储介质
CN113779448A (zh) * 2020-08-10 2021-12-10 北京沃东天骏信息技术有限公司 一种页面处理方法和装置
CN113515712A (zh) * 2021-05-24 2021-10-19 京东科技控股股份有限公司 集成系统的页面生成方法、装置、电子设备和存储介质
CN114625997A (zh) * 2022-03-22 2022-06-14 通号智慧城市研究设计院有限公司 页面渲染方法及装置、电子设备、计算机可读介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10132956A (ja) * 1996-10-30 1998-05-22 East Kurieiteibu:Kk 気象情報提供装置および方法
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6021426A (en) * 1997-07-31 2000-02-01 At&T Corp Method and apparatus for dynamic data transfer on a web page
US6313854B1 (en) * 1998-10-16 2001-11-06 International Business Machines Corporation Display mechanism for HTML frames
US6412008B1 (en) * 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
US6691176B1 (en) * 1999-11-04 2004-02-10 Microsoft Corporation Method for managing client services across browser pages
US6606525B1 (en) * 1999-12-27 2003-08-12 Motorola, Inc. System and method of merging static data in web pages
US7207000B1 (en) * 2000-02-24 2007-04-17 International Business Machines Corporation Providing dynamic web pages by separating scripts and HTML code
US7509404B2 (en) * 2000-03-08 2009-03-24 Oracle International Corporation Methods and systems for partial page caching of dynamically generated content
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US7051084B1 (en) * 2000-11-02 2006-05-23 Citrix Systems, Inc. Methods and apparatus for regenerating and transmitting a partial page
US7346842B1 (en) * 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US7000008B2 (en) * 2001-04-16 2006-02-14 Sun Microsystems, Inc. Method, system, and program for providing data updates to a page including multiple regions of dynamic content
US20030177175A1 (en) * 2001-04-26 2003-09-18 Worley Dale R. Method and system for display of web pages
US7346843B2 (en) * 2001-09-18 2008-03-18 International Business Machines Corporation Low-latency, incremental rendering in a content framework
US7844909B2 (en) * 2002-01-03 2010-11-30 International Business Machines Corporation Dynamically rendering a button in a hypermedia content browser
US7308488B2 (en) * 2002-09-12 2007-12-11 International Business Machines Corporation Method, system and program products for distributing portal content processing
US7177918B2 (en) * 2002-12-20 2007-02-13 International Business Machines Corporation Method and system for efficiently processing multiframe data in a client/server computing environment
US7386786B2 (en) * 2003-01-24 2008-06-10 The Cobalt Group, Inc. Method and apparatus for processing a dynamic webpage
US7392293B2 (en) * 2003-03-18 2008-06-24 Leonik Thomas E Method and apparatus for dynamically displaying real world data in a browser setting
US7624160B2 (en) * 2004-05-04 2009-11-24 International Business Machines Corporation Methods, systems, and computer program products for client side prefetching and caching of portlets
US8239749B2 (en) * 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US7500181B2 (en) * 2004-08-31 2009-03-03 International Business Machines Corporation Method for updating a portal page
US20070006069A1 (en) * 2005-06-27 2007-01-04 Bea Systems, Inc. System and method for improved web portal design through control tree file utilization
US7814410B2 (en) * 2005-09-12 2010-10-12 Workman Nydegger Initial server-side content rendering for client-script web pages

Also Published As

Publication number Publication date
US20070220083A1 (en) 2007-09-20
CA2644339A1 (en) 2007-09-27
AU2007227774A1 (en) 2007-09-27
BRPI0708793A2 (pt) 2011-06-14
CN101405723B (zh) 2012-01-04
JP2009530736A (ja) 2009-08-27
WO2007108866A1 (en) 2007-09-27
EP2005322A1 (en) 2008-12-24
CN101405723A (zh) 2009-04-08
MX2008011659A (es) 2008-09-23
TW200822649A (en) 2008-05-16
RU2008137141A (ru) 2010-03-27

Similar Documents

Publication Publication Date Title
KR20080107412A (ko) 페이지의 부분을 적절히 렌더링하기 위해 필요한 초기 동적렌더링 제어 데이터의 추정
RU2503056C2 (ru) Веб-канал, базируемый на языке xml, для веб-доступа удаленных источников
US7805670B2 (en) Partial rendering of web pages
US9332063B2 (en) Versatile application configuration for deployable computing environments
EP2962216B1 (en) Sharing application states
US8219692B2 (en) Method and apparatus for storing and restoring state information of remote user interface
US20190196891A1 (en) Object-oriented remote procedure calls for browser applications
US20070220177A1 (en) Declarations for transformations within service sequences
KR20090029715A (ko) 복수의 컴퓨팅 시스템에 의해 제공되는 서비스의 위치를 찾는 것을 돕기 위한, 컴퓨팅 시스템을 위한 방법, 컴퓨터 프로그램 제품 및 프록시를 위한 방법
CN110226156A (zh) 客户端与服务器之间的属性值的同步
JP6418004B2 (ja) イベント通知プログラム、イベント通知方法及びイベント通知装置
US11930096B2 (en) Systems and methods for rendering interactive web pages
KR102473967B1 (ko) 원격 객체에 대한 호출 요청의 연기
US20180059887A1 (en) Direct navigation to modal dialogs
US20230412694A1 (en) Communication system for micro-frontends of a web application
US12001458B2 (en) Multi-cloud object store access
US11301538B1 (en) Data management in multi-application web pages
US10114864B1 (en) List element query support and processing
EP3872630B1 (en) Request processing method and apparatus, electronic device, and computer storage medium
Odell et al. The Node. js Application Platform

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application