KR101099272B1 - 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법 - Google Patents

외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법 Download PDF

Info

Publication number
KR101099272B1
KR101099272B1 KR1020040043661A KR20040043661A KR101099272B1 KR 101099272 B1 KR101099272 B1 KR 101099272B1 KR 1020040043661 A KR1020040043661 A KR 1020040043661A KR 20040043661 A KR20040043661 A KR 20040043661A KR 101099272 B1 KR101099272 B1 KR 101099272B1
Authority
KR
South Korea
Prior art keywords
theme
delete delete
webpage
control component
web page
Prior art date
Application number
KR1020040043661A
Other languages
English (en)
Other versions
KR20040107445A (ko
Inventor
니요기산꾸에스.
양팅-하오
에보데이비드서게
가스리스코트데이비드
하워드로버트엠.
크로니조셉케이.
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040107445A publication Critical patent/KR20040107445A/ko
Application granted granted Critical
Publication of KR101099272B1 publication Critical patent/KR101099272B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

웹페이지 정의로부터 웹페이지를 생성하는 컴퓨팅 시스템에서의 웹페이지 렌더링 메커니즘에 관한 것이다. 웹페이지 클래스는 웹페이지 정의로부터 컴파일된다. 테마-특정 특성(theme-specific properties)들은 테마 클래스로 컴파일된 테마-지향(theme-oriented) 텍스트 문서 내의 웹페이지 정의로부터 개별적으로 설명된다. 웹페이지는 테마 클래스의 인스턴스와 관련하여 웹페이지 클래스의 인스턴스를 실행함으로써 렌더링된다. 웹페이지 객체는 렌더링될 각각의 제어 구성 요소를 위한 객체를 포함할 수 있다. 또한, 테마 객체는 각각의 제어 구성 요소 유형을 갖는 제어 구성 요소들을 위한 객체를 포함할 수 있다. 특정 유형의 제어 구성 요소를 렌더링하는 경우에, 제어 구성 요소에 대응하는 객체는 웹페이지 객체로부터 실행된다. 또한, 제어 구성 요소 유형에 대응하는 객체는 테마 객체로부터 실행된다.
Figure R1020040043661
웹페이지 정의, 웹페이지, 컴퓨팅 시스템, 웹페이지 렌더링 메커니즘, 웹페이지 클래스, 테마 클래스, 테마-지향 텍스트 문서, 웹페이지 객체, 테마 객체

Description

외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법{WEB PAGE RENDERING MECHANISM USING EXTERNAL PROGRAMMATIC THEMES}
본 발명에 대한 여러 가지 장점들 및 특징들을 얻기 위한 방식을 설명하기 위한, 본 발명의 보다 특정한 설명은 첨부된 도면에서 도시된 특정 실시예를 참조하여 제공될 것이다. 이러한 도면들은 본 발명에 대한 단지 통상적인 실시예를 묘사하는 것으로, 그 범주를 한정하기 위한 것이 아니며, 본 발명은 첨부 도면을 사용하여 추가 특수성 및 상세를 설명하고 기술할 것이다.
도 1은 본 발명의 특징들을 구현할 수 있는 적절한 컴퓨팅 시스템을 도시한다.
도 2는 본 발명의 원리들에 따라, 테마를 갖는 웹페이지를 렌더링하기 위한 방법의 플로우 차트를 도시한다.
도 3은 본 발명의 원리들에 따라, 렌더링 프로세스와 관련된 데이터 구조 프로세싱을 도시한다.
도 4A는 적용된 테마가 없는 사용자 인터페이스를 도시한다.
도 4B는 적용된 테마를 갖는 도 4A의 사용자 인터페이스를 도시한다.
도 5는 종래 기술에 따른 렌더링 프로세스와 관련된 데이터 구조 프로세싱 플로우를 도시한다.
<도면의 주요 부분에 대한 부호의 설명>
120 : 컴퓨터
121 : 프로세싱 유닛
122 : 시스템 메모리
123 : 시스템 버스
132 : 하드 디스크 드라이브 인터페이스
133 : 자기 디스크 드라이브-인터페이스
134 : 광 드라이브 인터페이스
146 : 직렬 포트 인터페이스
149a, 149b : 원격 컴퓨터
153 : 네트워크 인터페이스
본 발명은 웹페이지 렌더링 기술에 관한 것이다. 보다 구체적으로, 본 발명은 웹페이지 정의에 명기된 테마와 관련된 특정 속성들을 가지고 있지 않은 웹페이지에 테마가 공급될 수 있는 메커니즘에 관한 것이다.
컴퓨팅 기술은 우리가 작업하고 재생하는 방향(way)을 변환한다. 예를 들어, 네트워크나 인터넷-기반(Internet-enabled) 컴퓨팅 시스템을 갖는 사용자, 또는 브라우저를 갖는 디바이스는 전 세계적으로 퍼져있는 수천 개의 서로 다른 웹사 이트들로 내비게이트할 수 있다. 내비게이션은 웹사이트를 유지하는 서버에 웹페이지 요청을 전송하고, 그 다음, 서버로부터 웹페이지를 나타내는 마크업 언어를 수신하는 것을 수반한다. 그 때, 브라우저는 웹페이지의 마크업 언어 표현을 사용하여 스크린 상에 웹페이지를 표시한다.
통상적으로, 웹페이지들은 대화식 구성 요소들(interactive elements)을 포함하여, 렌더링될 때 그 결과로서 제어 구성 요소들을 얻는데, 이 제어 구성 요소들은 사용자가 웹페이지와 임의의 레벨의 상호 작용을 갖도록 한다. 예를 들어, 제어 구성 요소는, 사용자가 임의의 기능을 수행하기 위해 마우스로 선택할 수 있는 버튼을 포함할 수도 있다(예컨대, "go" 버튼, "help" 버튼, "send" 버튼 및 "submit" 버튼, "next" 버튼 등). 또한, 제어 구성 요소는, 사용자가 주소, 전화 번호, 검색 조건(search terms), 제품명 등의 문서 정보(textual information)를 입력할 수 있는 텍스트 박스일 수도 있다. 또한, 제어 구성 요소는 라벨일 수도 있다. 보다 복잡한 제어 구성 요소는, 사용자가 다양한 뷰(views)를 선택하여 내비게이트하거나 캘린더 또는 약속 엔트리들을 입력할 수 있는 캘린더일 수도 있다.
웹페이지로의 그러한 제어들의 삽입을 가능하게 하는 많은 기술들이 존재한다. 종래의 하나의 접근법이 도 5와 관련하여 기술되는데, 웹페이지 텍스트 문서(501)(특히, ASPX 웹페이지 문서)가 제어 집합(502)으로 변환되고, 그 다음, 제어 집합(502)은 브라우저에 의해 직접 해석될 수 있는 마크업 언어(예컨대, HyperText Markup Language)의 유형으로, 웹페이지(503)를 렌더링하기 위해 사용된다.
이러한 예에 있어서, 웹페이지 텍스트 문서(501)는, 수직 생략 부호(511A ~ 511E)로 표현된 그 외의 정적 마크업 언어(511)들 사이에 산재될 수 있는 제어 구성 요소 참조문(512 ~ 515)을 포함하는 복수의 제어 구성 요소들에 대한 참조문을 포함한다. 제어 구성 요소 참조문들 각각은 제어 구성 요소들의 동작(behaviors)을 지정하는 하나 이상의 속성들을 포함한다. 제어 구성 참조문들 각각은, 제어 구성 요소가 브라우저에 의해 직접 해석될 수 있는 마크업 언어로 서버에서 렌더링될 것임을 나타내는 값을 구비하는 속성 "runat"을 갖는다. 또한, 제어 구성 요소 참조문(512)은 식별자 속성 "input"을 갖고 텍스트 속성 "Name:"을 갖는 라벨 제어 구성 요소를 참조문으로 인용한다. 제어 구성 요소 참조문(513)은 TextBox 제어 구성 요소를 참조문으로 인용한다. 제어 구성 요소 참조문(514)은 캘린더 제어 구성 요소를 참조문으로 인용한다. 제어 구성 요소 참조문(515)은 텍스트 속성 "Go", 및 사용자가 버튼 제어 구성 요소의 대응 시각적 표현 상을 클릭할 때 실행되는 "foo"라 불리는 기능을 그 결과로서 얻는 OnClick 속성을 갖는 버튼 제어 구성 요소를 참조문으로 인용한다. 기능 "foo"는 웹페이지 텍스트 문서(501)의 내부 또는 외부에 존재할 수 있다.
화살표(515)에 의해 표현되는 바와 같이, 웹페이지 텍스트 문서(501)는 제어 집합(502)으로 구문 분석되고(parsed) 컴파일된다. 제어 집합(502)은, 페이지 객체들을 실증하고, 실행되는 경우에(화살표(525)에 의해 표현되는 바와 같이) 브라우저에 의해 직접 해석될 수 있는 마크업 언어로 웹페이지(503)를 렌더링하는 오버아칭 페이지 객체 클래스(520)를 포함하는 다수의 객체 클래스를 포함한다. 명확 히 하기 위해, 웹페이지(503)는 이러한 스테이지, 즉, 마크업 언어 문서보다는, 궁극적으로 브라우저에 의해 제시되는 것으로 설명된다.
페이지 객체 클래스(520)는, 리터럴 객체들(literal objects)을 실증하고, 실행되는 경우에 정적 마크업 언어 부분(531)(웹페이지(503)에서 531A 및 531B 부분들로 표현되는)을 렌더링하는 리터럴 클래스(521)를 포함하는 여러 개의 하강 객체 클래스들을 포함한다. 페이지 객체 클래스(520)는 라벨 객체를 실증하고, 실행되는 경우에 라벨 제어 구성 요소(532)를 렌더링하는 하강 라벨 클래스(522)를 포함한다. 페이지 객체 클래스(520)는 TextBox 객체를 실증하고, 실행되는 경우에 TextBox 제어 구성 요소(533)를 렌더링하는 하강 TextBox 클래스(523)를 포함한다. 페이지 객체 클래스(520)는 캘린더 객체를 실증하고, 실행되는 경우에 캘린더 제어 구성 요소(534)를 렌더링하는 하강 캘린더 객체 클래스(524)를 포함한다. 또한, 페이지 객체 클래스(520)는 버튼 객체를 실증하고, 실행되는 경우에 캘린더 제어 구성 요소(535)를 렌더링하는 하강 버튼 객체 클래스(525)를 포함한다.
지금 막 설명한 렌더링 기술은 제어 구성 요소의 기능성에 있어 유연성을 허용한다는 점에서 유익하다. 또한, 그 이상의 제어 구성 요소들이 특정 웹페이지에 대해 필요한 것으로서 정의될 수 있다. 제어 구성 요소들은 제어 구성 요소의 전체 외관(overall look)에 영향을 미치는 그 이상의 속성들도 고려한다. 예를 들어, 제어 구성 요소들은 백그라운드 컬러, 포그라운드 컬러, 폰트 사이즈, 폰트 타입, 텍스트 컨텐트, 이미지, 템플릿, 복잡한 특성 등에 대한 속성을 가질 수도 있다. 다양한 제어 구성 요소들에 특정한 속성들을 적용함으로써, 웹페이지의 외관 및 느낌이 개별화(customize)될 수 있고, 심지어, 특정한 조직이나 제품과 관련되어 브랜드 인식을 강화하는 것으로서 인식될 수도 있다.
그러나, 또 다른 관련 웹페이지에 유사한 외관 또는 테마를 적용하기 위해, 관련 웹페이지는 유사한 속성 설정들을 갖는 제어 구성 요소들을 구비할 것이다. 이러한 관련 웹페이지들에 대한 전체 테마의 변경이 희망된다면, 통상적으로, 각각의 웹페이지는 각 문서 내의 제어 구성 요소들에 대한 속성들을 꼼꼼하게 변경함으로써 개조될 것이다. 이를 위해서는 상당한 소비 시간이 소요될 수 있다.
따라서, 테마가 다수의 관련 문서에 걸쳐서 시종 일관 보다 쉽게 적용될 수 있고, 테마에 대한 변경이 모든 관련 웹페이지 텍스트 문서에 걸쳐서 보다 쉽게 적용될 수 있는 방식으로, 웹페이지 문서에 테마를 적용하는 메커니즘이 유익할 것이다. 하나 이상의 하강 제어 구성 요소 클래스를 갖는 페이지 객체 클래스의 컨텍스트에 테마가 적용됨으로써, 제어 구성 요소들을 렌더링하기 위한 메커니즘 및 유형에 있어서 유연성의 이득과, 제어 구성 요소에 의해 가능해지는 대응하는 유연한 기능성을 유지하게 된다는 점에서 더 유익할 것이다.
종래 기술이 갖는 앞선 문제점들은, 웹페이지 정의 내에 요구되는 테마와 관련된 특성들이 없는 웹페이지에 테마가 적용되는 것으로, 컴퓨팅 시스템이 웹페이지 정의로부터 웹페이지를 생성하는 웹페이지 렌더링 메커니즘에 관한 본 발명의 원리에 의해 극복된다.
웹페이지 정의는 라벨, 버튼, 텍스트 박스, 캘린더 등과 같은 제어 구성 요 소들을 참조문으로 인용한다. 렌더링 프로세스 동안, 웹페이지 정의에 대응하는 웹페이지에 테마가 적용되어 있는지가 판정된다. 이는 디폴트(예컨대, 배열 설정을 사용하여)에 의해, 또는 테마가 적용될 것임을 나타내는 지시어를 검출함으로써 판정된다. 이에 응하여, 보다 많은 테마-지향 텍스트 문서들 중 하나가 액세스된다. 테마-지향 문서들은 제어 구성 요소들과 관련되고, 테마에 대한 소정 외관 및 느낌을 창출하는 특성들 또는 속성들을 총괄적으로 설명한다. 그러한 속성들은 백그라운드 컬러, 포그라운드 컬러, 폰트 사이즈, 폰트 타입, 이미지, 템플릿, 복잡한 특성 등을 포함할 수 있고, 제어 구성 요소의 각 유형에 대해 지정될 수 있다. 또한, 속성들은, 날짜에 대한 상세를 갖는 일간(daily) 모드에서 캘린더 표시가 초기화되는지 여부, 또는 주간(weekly)이나 월간(monthly) 모드에서 캘린더 표시가 초기화되는지 여부 등, 보다 복잡한 동작들을 포함할 수 있다.
그 때, 테마 클래스는 하나 이상의 테마-지향 문서들에 기초하여 생성되고 컴파일된다. 테마 객체는 테마 클래스로부터 실증된다. 테마 객체는, 실행되는 경우에 그 결과로서 제어 구성 요소에 대한 특정 테마-지향 특성들의 애플리케이션을 얻는 부분들을 포함한다. 그 후, 적절한 테마 특성 세트를 갖는 제어 구성 요소는 제어 구성 요소를 렌더링하는 객체 인스턴스에 의해 호출될 때 실행될 수 있다. 일 실시예에 있어서, 테마 객체는 특정 제어 구성 요소 유형에 대응하는 하강 객체들을 포함한다.
또한, 렌더링 메커니즘은 웹페이지 정의에 기초하여 웹페이지 객체를 생성한다. 웹페이지 객체는 제어 구성 요소를 렌더링하고, 제어 구성 요소에 테마-지향 특성들을 적용하는 테마 객체에 대한 호출 기능을 포함하는 객체를 포함한다. 그 때, 웹페이지는 웹페이지 클래스의 인스턴스를 실행함으로써 렌더링된다.
본 발명의 추가 특징들 및 장점들은 다음 기재를 통해 설명될 것이고 일부는 그러한 기재로부터 명백해질 것이며, 또한, 이는 발명의 실시에 의해 습득될 수 있다. 본 발명의 특징들 및 장점들은 기기들 및 특히 첨부된 청구 범위에서 지적된 조합들에 의해 실시될 수 있고 얻어질 수 있다. 본 발명의 이러한 여러 특징들은 다음 기재 및 첨부된 청구 범위로부터 보다 전체적으로 명확해 지게 될 것이고, 또한, 이후 설명되는 바와 같은 발명의 실시에 의해 습득될 수 있다.
본 발명의 원리는 컴퓨팅 시스템이 웹페이지 정의로부터 웹페이지를 생성하는 웹페이지 렌더링 메커니즘에 관한 것이다. 렌더링 프로세스는 제어 구성 요소의 테마-특정 특성들이 웹페이지 정의 내에 포함될 것을 요구하지 않고, 특정 테마를 갖는 제어 구성 요소들을 렌더링한다. 대신, 테마-특정 특성들은 하나 이상의 테마-지향 텍스트 문서들에서 설명된다. 테마-지향 텍스트 문서들은 테마 클래스로 컴파일되고, 웹페이지 정의는 웹페이지 클래스로 컴파일된다. 웹페이지는 테마 클래스의 인스턴스와 관련하여 웹페이지 클래스의 인스턴스를 실행함으로써 렌더링된다.
본 발명의 범주 내의 실시예들은 컴퓨터-실행가능 명령어 또는 거기에 저장된 데이터 구조를 전하거나 구비하기 위한 컴퓨터-판독가능 매체를 포함한다. 그러한 컴퓨터-판독가능 매체는 일반적인 목적 또는 특수 목적 컴퓨터에 의해 액세스 될 수 있는 임의의 이용가능한 매체일 수 있다. 예로서, 이에 한정되는 것은 아니지만, 그러한 컴퓨터-판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 그 외 광학적 디스크 저장 장치, 자기 디스크 저장 장치 또는 그 외 자기 저장 장치와 같은 물리적 컴퓨터-판독 가능 매체를 포함할 수 있으며, 또한, 컴퓨터-실행 가능 명령어 또는 데이터 구조의 유형으로 소정의 프로그램 코드 수단을 전하거나 저장하기 위해 사용될 수 있고, 일반 목적 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다.
정보가 네트워크 또는 다른 통신 접속부(하드 와이어드, 무선, 또는 하드와이어드 혹은 무선의 조합)를 통해 컴퓨터로 전송되거나 제공되는 경우에, 컴퓨터는 접속부를 컴퓨터-판독가능 매체로 본다. 따라서, 임의의 그러한 접속부는 컴퓨터-판독가능 매체로 칭해진다. 또한, 상기 조합들은 컴퓨터-판독가능 매체의 범주 내에 포함되어야 한다. 컴퓨터-실행가능 명령어들은 예를 들어, 일반 목적 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스가 임의의 기능 또는 기능 집합을 수행하도록 하는 임의의 명령어들 및 데이터를 포함한다. 컴퓨터-실행가능 명령어는 예를 들어, 2진, 어셈블리 언어와 같은 중간 포맷 명령어, 또는 소스 코드일 수도 있다. 요구되지 않더라도, 본 발명은 네트워크 환경에서 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터-실행가능 명령어의 일반 컨텍스트에서 설명될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 요약 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다.
당업자라면, 본 발명이 퍼스널 컴퓨터, 휴대용 디바이스, 멀티-프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능 소비자 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 많은 유형의 컴퓨터 시스템 배열을 갖는 네트워크 컴퓨팅 환경에서 실시될 수 있음을 이해할 것이다. 또한, 본 발명은 통신 네트워크를 통해 (하드와이어드 링크, 무선 링크, 또는 하드와이어드 혹은 무선 링크의 조합 중 어느 하나에 의해) 링크되는 국부 및 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 국부 및 원격 메모리 기억 장치 모두에 위치될 수 있다.
도 1은 본 발명의 원리가 컴퓨터(120) 유형에서 이용될 수 있는 적절한 컴퓨팅 환경을 도시한다. 컴퓨터(120)는 프로세싱 유닛(121), 시스템 메모리(122), 및 시스템 메모리(122)를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(121)에 결합하는 시스템 버스(123)를 포함한다.
시스템 버스(123)는 메모리 버스나 메모리 제어기, 주변 버스, 및 임의의 다양한 버스 아키텍쳐를 사용하는 로컬 버스를 포함하는 임의의 여러 가지 유형의 버스 구조일 수 있다. 시스템 메모리는 ROM(read only memory; 124) 및 RAM(random access memory; 125)을 포함한다. 시동 동안과 같이, 컴퓨터(120) 내에 있는 구성 요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 BIOS(basic input/output system; 126)는 ROM(124)에 저장될 수 있다.
컴퓨터(120)는 또한 자기 하드 디스크(139)로부터 판독하고 기입하기 위한 자기 하드 디스크 드라이브(127), 분리 가능 자기 디스크(129)로부터 판독하고 기 입하기 위한 자기 디스크 드라이브(128), 및 분리 가능 광 디스크(131)로부터 판독하고 기입하기 위한 CD-ROM 또는 그 외의 광 매체와 같은 광 디스크 드라이브(130)를 포함할 수 있다. 자기 하드 디스크 드라이브(127), 자기 디스크 드라이브(128), 및 광 디스크 드라이브(130)는 하드 디스크 드라이브 인터페이스(132), 자기 디스크 드라이브-인터페이스(133), 및 광 드라이브 인터페이스(134)에 의해 각각 시스템 버스(123)에 접속된다. 드라이브 및 그들의 관련 컴퓨터-판독가능 매체는 컴퓨터(120)에 대해 컴퓨터-실행가능 명령어, 데이터 구조, 프로그램 모듈 및 그 외의 데이터의 불휘발성 저장을 제공한다. 비록 여기 기술된 전형적인 환경에서는 자기 하드 디스크(139), 분리 가능 자기 디스크(129) 및 분리 가능 광 디스크(131)를 사용하지만, 데이터를 저장하기 위한 것으로서, 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지, RAM, ROM 등을 포함하는 그 외의 유형의 컴퓨터 판독가능 매체가 사용될 수도 있다.
하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 운영 체제(135), 하나 이상의 애플리케이션 프로그램(136), 그 외의 프로그램 모듈(137), 및 프로그램 데이터(138)를 포함하는 하드 디스크(139), 자기 디스크(129), 광 디스크(131), ROM(124) 또는 RAM(125)에 저장될 수 있다. 사용자는 키보드(140), 포인팅 디바이스(142), 또는 조이 스틱, 게임 패드, 위성 접시, 스캐너 등과 같은 그 외의 입력 디바이스(도시되지 않음)를 통해 컴퓨터(120)에 명령 및 정보를 입력할 수 있다. 이러한 여러 입력 디바이스들은 종종 시스템 버스(123)에 결합된 직렬 포트 인터페이스(146)를 통해 프로세싱 유닛(121)에 접속 된다. 대안적으로, 입력 디바이스는 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 그 외의 인터페이스에 의해 접속될 수 있다. 모니터(147)나 다른 표시 디바이스 역시 비디오 어댑터(148)와 같은 인터페이스를 경유하여 시스템 버스(123)에 접속된다. 모니터뿐만 아니라, 퍼스널 컴퓨터는 통상적으로 스피커 및 프린터와 같은 그 외의 주변 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(120)는 원격 컴퓨터(149a, 149b)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(149a, 149b)는 각각 또 다른 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 디바이스, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(150a, 150b) 및 그들의 관련 애플리케이션 프로그램(136a, 136b)만이 도시되어 있지만, 컴퓨터(120)에 관하여 상술한 구성 요소 중 다수 또는 모든 구성 요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 실시예를 통해 여기 제시된 근거리 통신망(LAN; 151) 및 원거리 통신망(WAN; 152)을 포함하지만, 이에 한정되는 것은 아니다. 이러한 네트워크 환경은 사무실 광역 또는 기업 광역 컴퓨터 네트워크(office-wide or enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(120)는 네트워크 인터페이스 또는 어댑터(153)를 통해 LAN(151)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(120)는 일반적으로 인터넷 등의 WAN(152)을 경유하여 통신을 구축하기 위한 모뎀(154), 무선 링크, 또는 기타 수단을 포함할 수 있다. 내장형 또는 외장형일 수 있는 모뎀(154)은 직렬 포트 인터페이스(146)를 경유하여 시스템 버스(123)에 접속된다. 네트워크 환경에서, 컴퓨터(120)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며, WAN(152)를 경유하여 통신을 구축하는 그 외의 수단이 사용될 수 있다.
도 1은 본 발명에 대한 적절한 운영 환경을 나타내는 한편, 본 발명의 원리는 네트워크 사이트로 브라우징할 수 있는 임의의 컴퓨팅 시스템에서 사용될 수 있다. 도 1에 도시된 컴퓨팅 시스템은 단지 예시적인 것으로서, 본 발명의 원리가 구현될 수 있는 매우 다양한 환경 중 아주 작은 부분을 나타내는 것이다. 설명 및 청구 범위에 있어서, "컴퓨팅 시스템"은 하나 이상의 기능을 수행하기 위해 소프트웨어를 사용할 수 있는 임의의 하드웨어 컴포넌트 또는 컴포넌트들로서 폭넓게 정의된다. 컴퓨팅 시스템의 예는 데스크탑 컴퓨터, 랩탑 컴퓨터, PDA(Personal Digital Assistants), 전화, 또는 프로세싱 능력을 갖는 또 다른 시스템이나 디바이스를 포함한다.
도 2는 웹페이지 정의에 포함되어 있는 테마와 관련된 특성들이 없는 테마가 웹페이지에 적용되는 방식으로, 웹페이지 정의로부터 웹페이지를 생성하기 위한 방법(200)에 대한 플로우 차트를 도시한다. 도 3은 데이터 구조 프로세스 플로우(300)를 도시한다. 도 3의 데이터 구조 프로세서 플로우(300)는 도 2의 방법(200)을 자주 참조하여 설명될 것이다.
데이터 구조 프로세스 플로우(300)는 웹페이지 정의의 일례로서 역할을 하는 웹페이지 텍스트 문서(301)를 포함한다. 일 실시예에 있어서, 웹페이지 텍스트 문서는 비록 요구되는 것은 아니지만, ASPX 웹페이지 문서이다. 또한, 웹페이지 정의는 데이터베이스 또는 웹 서비스로부터 추출될 수 있다. 그러나, 설명된 실시예에 있어서, 웹페이지 정의는 웹페이지 텍스트 문서의 유형을 취하고, 따라서 본 발명의 원리는 웹페이지 텍스트 문서와 관련하여 설명될 것이다. 그러나, 당업자라면, 이 설명을 검토한 이후에, 본 발명의 범주 내에 있는 또 다른 웹페이지 정의로부터의 웹페이지에 대해서도 인지할 것이다. 웹페이지 텍스트 문서(301)는 테마명이 "Contemporary"인 테마가 적용될 것임을 나타내는 지시어(directive; 310)를 포함한다. 컴퓨팅 시스템은 이러한 테마에 대응하는 다수의 테마-지향 텍스트 문서(341)로 액세스한다. 하나 이상의 그 외의 테마와 관련된 그 외의 테마-지향 문서들 역시 존재할 수 있다. 일 실시예에 있어서, 모든 테마-지향 문서들은 공통 디렉토리에 위치한다. 디렉토리는 각각의 가능 테마(possible theme)에 대해 하나씩, 다수의 서브디렉토리를 가질 수 있다. 비록, 다수의 테마-지향 문서들(보다 구체적으로, 생략 부호(341E)로 표기된 것과 같은 잠재적인 것들 중에서 문서(341A ~ 341D))이 있지만, 단지 하나 혹은 또 다른 수의 테마-지향 문서가 있는 것이 편리할 것이다.
도 2를 참조하면, 방법(200)은 클라이언트 컴퓨팅 시스템으로부터 웹페이지에 대한 요청을 수신하는 단계를 포함한다(단계 201). 이 웹페이지는 도 3의 웹페이지 텍스트 문서(301)와 같은 웹페이지 텍스트 문서로부터 동적으로 생성된다. 커런트 요청/응답-지향 프로토콜(네트워크를 경유하여 웹페이지를 검색하는 HTTP(HyperText Transport Protocol) 공통과 같은)에 있어, 웹페이지는 종종 요청에 응답하여 검색된다. 그러나, 본 발명의 원리는 요청/응답 지향 환경 내의 애플리케이션에 제한되지 않는다. 웹페이지는 네트워크를 경유하여 수신된 임의의 요청의 이행(fulfillment)에 관련되지 않는 임의의 다른 이유(reason)에 대해 동적으로 구성될 수 있다.
컴퓨팅 시스템이, 웹페이지 텍스트 문서에 대응하는 웹페이지가 구성될 것임을 판정할 때(요청 또는 그 반대 중 하나에 응답하여), 컴퓨팅 시스템은 웹페이지 텍스트 문서에 대응하는 웹페이지에 테마가 적용되어 있는지를 판정한다(단계 202). 이는, 대응 웹페이지 텍스트 문서 내의 지시어를 판독하는 컴퓨팅 시스템에 의해 달성될 수 있다. 예를 들어, 웹페이지 텍스트 문서(301)에 대해, 지시어(310)가 판독되고 평가된다. 대안적으로, (예컨대, 배열 설정에 의해 표시되는 바와 같은) 디폴트 룰은 테마가 적용되어 있는지를 나타낼 수 있다. 이러한 경우에, 컴퓨팅 시스템이 디폴트 룰을 위반하는 것이 없는 것으로 판정한다면, 이에 대응하여 컴퓨팅 시스템은 테마가 적용되어 있는 것으로 판정할 수 있다. 이전에 언급한 바와 같이, 렌더링에 이용가능한 다수의 테마가 존재할 수 있다. 따라서, 지시어 또는 디폴트 룰은 테마가 적용되어 있음을 상술할 수 있다.
컴퓨팅 시스템은 웹페이지 텍스트 문서 내의 상세한 테마 정보를 요구하지 않고 웹페이지 텍스트 문서에 테마를 적용하는 기능적, 결과-지향 단계를 수행한다(단계 210). 이는 이러한 결과를 달성하는 임의의 대응 액트들(acts)을 포함할 수 있다. 그러나, 기술된 실시예에 있어서, 단계 210은 대응 액트 211 ~ 214 및 221 ~ 223을 포함한다.
구체적으로, 컴퓨팅 시스템은, 테마에 대응하고 웹페이지 텍스트 문서의 제어 구성 요소에 적용될 적어도 하나의 특성을 총괄적으로 설명하는 보다 많은 테마-지향 텍스트 문서 중 하나를 액세스한다(액트 211). 도 3에 있어서, 테마-지향 텍스트 문서는 테마-지향 텍스트 문서(341)에 의해 표현된다.
제1 테마-지향 텍스트 문서(341A)의 컨텐트가 설명된다. 테마-지향 문서(341A) 내의 제어 구성 요소 참조문의 포맷은, 동일한 것은 아니지만, 공통 유형의 제어 구성 요소에 대한 웹페이지 텍스트 문서(301) 내의 제어 참조문의 포맷과 어떻게 유사한지를 주목한다. 실제로, 테마-지향 문서(341A) 내의 제어 구성 요소 참조문의 스키마는 임의의 소정 유형에 대한 웹페이지 텍스트 문서(301)의 제어 구성 요소 참조문의 스키마와 동일할 수도 있다.
예를 들어, 제어 구성 요소 참조문의 스키마는 각 문서에 대해 접두사 "asp:"를 갖는 서버측 제어 구성 요소를 포함한다. 제어 구성 요소 참조문은 제로 또는 더 많은 속성들, 즉, 대응 제어 구성 요소가 브라우저에 의해 직접 해석가능한 마크업 언어로 렌더링될 위치를 나타내는 값을 갖는 "runat" 속성을 포함한다. 상술한 실시예에 있어서, 모든 제어 구성 요소 참조문에 대한 "runat" 속성은, 모든 제어 구성 요소에 대한 전체 렌더링 프로세스가 임의의 원격 브라우저보다는, 웹페이지를 호스트하는 컴퓨팅 시스템에 의해 처리(handle)된다는 것을 나타내는 "server"의 값을 갖는다. 제어 구성 요소 참조문의 스키마는 유사하거나 심지어 동일하기 때문에, 테마-지향 문서들은 테마-지향 특성들을 지정하기 위한 경(minor) 편집들, 즉, 단순한 잘라내기 및 붙이기, 또는 복사하기 동작에 의해 매우 쉽게 구성될 수 있다.
그 다음, 컴퓨팅 시스템은 하나 이상의 테마-지향 텍스트 문서에 기초한 테마 클래스를 생성한다(액트 212). 테마 클래스는 소스 코드 또는 기타 컴파일가능 명령어들로 표현될 수 있다. 일 실시예에 있어서, 테마 클래스는 C#에서 생성된다. 그 때, 테마 클래스는 테마 객체를 실증하기 위해 사용될 수 있는 테마 클래스로 컴파일된다(액트 213). 그 다음, 테마 객체는 컴파일된 테마 클래스를 사용하여 실증된다(액트 214). 이러한 클래스 생성, 컴파일링, 및 실증 동작은 도 3에서 화살표 355로 표현되고, 그 결과 테마 제어 집합(342)이 생성된다.
테마 제어 집합(342)은 그것의 루트에 테마 객체(360)를 포함한다. 테마 객체(360)는 여러 개의 하강 제어 구성 요소 객체(361 ~ 367)를 포함한다.
예를 들어, 라벨 제어 구성 요소(361)는 스킨 식별자 "Sticker"를 갖는 특정한 스킨에 대응한다. 라벨 제어 구성 요소(361)는 원 테마-지향 텍스트 문서(341A) 내의 제어 구성 요소 참조문(351)에 액트 212 ~ 214인 클래스 생성, 컴파일링, 및 실증 프로세스(instantiation process)를 실시하여 생성된다. 라벨 제어 구성 요소 참조문(351)에 표시된 바와 같이, 라벨 제어 구성 요소는, 실행되는 경우에, "Sticker" 스킨을 야기하는 임의의 라벨 제어 구성 요소에 어떠한 포그라운드 컬러를 적용할 것이다.
라벨 제어 구성 요소(362)는 임의의 특정 스킨에 대응하지 않는다. 따라서, 라벨 제어 구성 요소(362)는 스킨 식별자를 지정하지 않거나, 존재하지 않는(non- existent) 스킨 식별자를 지정하는 임의의 라벨 제어 구성 요소에 디폴트에 의해 적용된다. 라벨 제어 구성 요소(362)는 원 테마-지향 텍스트 문서(341A) 내의 제어 구성 요소 참조문(352)에 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성된다. 라벨 제어 구성 요소 참조문(352)에 표시된 바와 같이, 라벨 제어 구성 요소는, 실행되는 경우에, 또 다른 어떠한(certain) 포그라운드 컬러를 라벨에 적용할 것이다.
TextBox 제어 구성 요소(363)은 임의의 특정 스킨에 대응하지 않는다. 따라서, TextBox 제어 구성 요소(363)는 스킨 식별자를 지정하지 않거나, 존재하지 않는 스킨 식별자를 지정하는 임의의 TextBox 제어 구성 요소에 디폴트에 의해 적용된다. TextBox 제어 구성 요소(363)는 원 테마-지향 텍스트 문서(341A) 내의 제어 구성 요소 참조문(353)에 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성된다. TextBox 제어 구성 요소 참조문(353)에 표시된 바와 같이, TextBox 제어 구성 요소는, 실행되는 경우에, 또 다른 어떠한 백그라운드 컬러를 라벨에 적용할 것이다.
TextBox 제어 구성 요소(364)는 스킨 식별자 "Modern"를 갖는 특정 스킨에 대응한다. TextBox 제어 구성 요소(364)는 원 테마-지향 텍스트 문서 내의 제어 구성 요소 참조문(354)에 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성된다. TextBox 제어 구성 요소 참조문(354)에 표시된 바와 같이, TextBox 제어 구성 요소는, 실행되는 경우에, "Modern" 스킨을 야기하는 임의의 TextBox 제어 구성 요소에 어떠한 백그라운드 컬러를 적용할 것이다.
또한, 캘린더 객체(365)는 테마-지향 텍스트 문서(341) 중 하나의 대응 캘린더 제어 구성 요소 참조문(도시되지 않음)에 액트 212 ~ 214인 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성된다. 캘린더 객체(365)는 특정 스킨에 대응하지 않으므로, 디폴트에 의해 적용된다.
버튼 객체(366)는 테마-지향 텍스트 문서(341) 중 하나의 대응 버튼 제어 구성 요소 참조문(도시되지 않음)에 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성되고, 식별자 "CommandButton"를 갖는 스킨에 대응한다.
기타 객체(367)는 하나 이상의 그 외의 제어 구성 요소 객체들 역시, 하나 이상의 테마-지향 텍스트 문서(341)에 대응하는 하나 이상의 그 외의 제어 구성 요소 참조문(도시되지 않음)에 클래스 생성, 컴파일링, 및 실증 프로세스를 실시함으로써 생성될 수 있다는 것을 나타낸다.
도 2에 있어서, 테마 객체는 테마-지향 문서들을 액세스하고(액트 211), 테마 클래스를 생성하고(액트 212), 테마 클래스를 컴파일링한(액트 213) 이후에 실증된다. 그러나, 이전의 액트 211 ~ 213 실행으로 인해 테마 클래스가 이미 존재한다면, 액트 211 ~ 213인 액세스, 생성, 컴파일링 동작은 반복될 필요가 없다.
또한, 컴퓨팅 시스템은 웹페이지 객체의 인스턴스가 웹페이지 텍스트 문서에 기초하여 생성될 수 있을 때, 웹페이지 클래스를 생성한다(액트 221). 웹페이지 클래스는 웹페이지 문서로부터 직접 컴파일링될 수 있다. 대안적으로, 웹페이지 클래스는 웹페이지 텍스트 문서에 기초하여 컴파일되지 않은 웹페이지 클래스(예컨대, 소스 코드 또는 그 외의 컴파일가능 텍스트를 포함할 수 있음)를 우선 생성함으로써 생성될 수 있고, 그 다음 컴파일되지 않은 웹페이지 클래스를 웹페이지 클래스로 컴파일할 수 있다.
그 때, 컴퓨팅 시스템은 웹페이지 클래스를 사용하여 웹페이지 객체를 실증한다(액트 222). 웹페이지는 웹페이지 객체를 실행함으로써 (즉, 브라우저에 의해 직접 해석될 수 있는 마크업 언어로) 렌더링될 수 있다(액트 223). 웹페이지 렌더링이 액트 201에서와 같이 클라이언트 요청에 응답한다면, 그 때 렌더링된 웹페이지는 클라이언트로 다운로드될 수 있다(액트 231).
예를 들어, 도 3을 참조하면, 웹페이지 텍스트 문서(301)에 화살표 315로 표시되는 바와 같이, 액트 221 및 222인 클래스 생성 및 실증 프로세스가 실시되어, 페이지 객체(320)를 그것의 루트 노드로서 포함하는 페이지 제어 집합(302)을 생성할 수 있다.
페이지 객체(320)는 실행되는 경우에, 렌더링된 페이지(303)의 정적 마크업 언어 부분을 렌더링하는 리터럴 객체(321)를 포함하는 여러 개의 하강 객체들을 포함한다. 그 리터럴 객체는 웹페이지 텍스트 문서(301)의 정적 부분들(311A ~ 311F)에 액트 211 및 22인 클래스 생성 및 실증 프로세스를 실시함으로써 생성된다.
하강 라벨 제어 구성 요소 객체(322)는 실행되는 경우에, 렌더링된 페이지(303)의 라벨 제어 구성 요소를 렌더링한다. 라벨 제어 구성 요소 객체(322)는 라벨 제어 구성 요소 참조문(312)에 클래스 생성 및 실증 프로세스를 실시함으로써 생성된다. 라벨 제어 구성 요소는 텍스트 "Name:"를 라벨에 적용할 것이고, 라벨 제어 구성 요소 참조문(312)의 속성들에 의해 표현되는 바와 같은 식별자 "input"에 의해 식별될 것이다. 라벨 제어 구성 요소 참조문(312)은 대응 스킨 식별자 속성 "Sticker"를 갖는다는 것도 주목한다. 따라서, 렌더링된 웹페이지(303) 내의 라벨 제어 구성 요소를 생성하기 위해 라벨 제어 구성 요소 객체(322)를 실행하는 경우에, 테마 객체(360)의 라벨 제어 구성 요소 객체(361) 또한 실행될 것이고, 이로써, 스티커 스킨을 라벨 객체에 적용할 것이다.
하강 TextBox 제어 구성 요소 객체(323)는, 실행되는 경우에, 렌더링된 페이지(303)의 TextBox 제어 구성 요소를 렌더링한다. TextBox 제어 구성 요소 객체(323)는 TextBox 제어 구성 요소 참조문(313)에 클래스 발생 및 실증 프로세스를 실시함으로써 생성된다. TextBox 제어 구성 요소 참조문(313)은 대응 스킨 식별자 속성을 갖지 않는다. 따라서, 렌더링된 웹페이지(303) 내의 TextBox 제어 구성 요소를 생성하기 위해 TextBox 제어 구성 요소 객체(323)를 실행하는 경우에, 테마 객체(360)의 디폴트 TextBox 제어 구성 요소 객체(363) 역시 실행될 것이고, 이로써, 테마를 라벨 객체에 적용할 것이다.
캘린더 제어 구성 요소 객체(324)는, 실행되는 경우에, 렌더링된 페이지(303)의 캘린더 제어 구성 요소를 렌더링한다. 캘린더 제어 구성 요소 객체(324)는 캘린더 제어 구성 요소 참조문(314)에 클래스 발생 및 실증 프로세스를 실시함으로써 생성된다. 캘린더 제어 구성 요소 참조문(314)은 대응 스킨 식별자 속성을 갖지 않는다. 따라서, 렌더링된 웹페이지(303) 내의 캘린더 제어 구성 요소를 생성하기 위해 캘린더 제어 구성 요소 객체(324)를 실행하는 경우에, 테마 객체(360)의 디폴트 캘린더 제어 구성 요소 객체(365) 역시 실행될 것이고, 이로써, 테마를 캘린더 라벨 객체에 적용할 것이다.
버튼 제어 구성 요소 객체(325)는, 실행되는 경우에, 렌더링된 페이지(303)의 버튼 제어 구성 요소를 렌더링한다. 버튼 제어 구성 요소 객체(325)는 버튼 제어 구성 요소 참조문(315)에 클래스 발생 및 실증 프로세스를 실시함으로써 생성된다. 버튼 제어 구성 요소 참조문(315)은 대응 스킨 식별자 속성, "CommandButton"을 갖는다. 따라서, 렌더링된 웹페이지(303) 내의 버튼 제어 구성 요소를 생성하기 위해 버튼 제어 구성 요소 객체(324)를 실행하는 경우에, 테마 객체(360)의 버튼 제어 구성 요소 객체(366) 역시 실행될 것이고, 이로써, 테마를 버튼 제어 구성 요소 객체에 적용할 것이다.
기타 제어 구성 요소 객체(326)는 웹페이지 텍스트 문서(301) 내의 그 외의 제어 구성 요소 참조문에 기초하여 생성될 수 있는 하나 이상의 그 외의 제어 구성 요소 객체를 나타낸다. 예를 들어, 이미지 제어 구성 요소 참조문(316)은 웹페이지 내의 어떠한 위치에서의 이미지 사용을 나타낸다. 이미지 제어 구성 요소 참조문(316)은 스킨 "LogoImage"를 식별한다. 따라서, 테마-지향 문서(341) 중 하나에 대응 테마 제어 구성 요소 참조문이 존재할 것이다. 대응 테마 제어 구성 요소 참조문은 이미지 제어 구성 요소 참조문일 것이고, 이미지 제어 구성 요소에 대해 렌더링하기 위해 특정 이미지 파일을 식별할 것이다. 이미지는, 예를 들어, 로고일 수 있다.
웹페이지 객체(320)가 액트 223으로 실행되는 경우에, 제어 구성 요소 각각 은 페이지 객체의 대응 제어 구성 요소 뿐만 아니라 테마-지향 문서들의 대응 테마 제어 구성 요소 객체를 실행함으로써 렌더링될 것이다. 이러한 방식에 있어, 다수의 웹페이지의 공통 테마는 테마 지향 문서의 단일 세트를 단순히 변경함으로써 쉽게 바뀔 수 있다. 게다가, 테마-지향 텍스트 문서 내의 제어 구성 요소 참조문이 특정 제어 구성 요소 유형에 대한 웹페이지 텍스트 문서 내의 제어 구성 요소 참조문과 동일한 스키마를 따를 수 있기 때문에, 테마-지향 문서는 매우 쉽게 그리고 직관적으로 이해가능하게 생성될 수 있다.
본 발명의 원리들은 특정 사용자 인터페이스를 생성하는 특정 실시예의 사용을 통해 보다 명백해 질 수 있다.
도 4A는 적용된 테마가 없는 사용자 인터페이스를 도시한다. 사용자 인터페이스는 웹페이지 텍스트 문서와 관련하여 상술된 프로세스를 수행함으로써 생성될 수 있다. 특정 웹페이지 텍스트 문서는 다음과 같이 설명된다:
Figure 112004025588859-pat00001
비록, 스킨 식별자가 다수의 제어 구성 요소 내에 포함되지만, 이러한 경우에 있어서, 이용가능한 테마-지향 문서들은 존재하지 않고, 도 4A의 사용자 인터페 이스는 공정하게 비-테마적 톤(non-thematic tone)을 반영한다.
이제, 다음과 같은 테마-지향 문서가 이용가능하고, 이는 웹페이지 텍스트 문서에 의해 적용된 테마에 대응하는 것으로 가정한다(라인 넘버링은 명백함을 위해 추가된다).
Figure 112004025588859-pat00002
도 4B는 이 테마-지향 문서가 이용가능한 경우에 도 4A의 사용자 인터페이스를 설명한 것이다. 웹페이지 텍스트 문서 내의 이미지 제어 구성 요소는 테마-지향 텍스트 문서 내의 라인 1의 이미지 제어 구성 요소 참조문의 견지에서 렌더링되므로, 로고가 지금 어떻게 적용되는지를 주목한다. 또한, TextBox 및 Button 제어 구성 요소의 외관 및 느낌은 테마-지향 텍스트 문서의 대응 제어 구성 요소 참조문의 견지에서 렌더링되므로, 마찬가지로 변화들이 존재하게 된다.
본 발명은 그 진의 또는 본질적 특성으로부터 이탈하지 않는 한 그 외의 특정 폼으로 구현될 수 있다. 상술한 실시예들은 단지 실례가 되는 것으로 제한적인 것은 아님을 고려한다. 따라서, 본 발명의 범주는 앞선 설명보다는 첨부된 청구 범위에 의해 지시된다. 청구범위와 등가인 의미 및 범위 내에 있는 모든 변경들은 그들의 범주 내에 포함될 것이다.

Claims (40)

  1. 웹사이트에 대한 복수의 관련 웹페이지를 생성하기 위한 컴퓨터 시스템 - 각 웹페이지의 정보 컨텐트는 해당 페이지를 위해 구축된 웹페이지 텍스트 문서에 의해 정의됨 - 에서, 상기 복수의 관련 웹페이지에 대한 외관 및 느낌을 정의하는 테마를 적용하는 방법 - 상기 테마와 관련된 속성들은 각각의 웹페이지에 대한 상기 정보 컨텐트를 제어하는 상기 웹페이지 텍스트 문서에 영향을 미치지 않고도 상기 웹사이트 상의 복수의 웹페이지에 적용될 수 있음 - 을 구현하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 기록 매체로서,
    상기 컴퓨터 프로그램은 상기 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 때 상기 컴퓨터 시스템이 상기 방법을 실행하도록 하며, 상기 방법은,
    각각이 개별적이며 상기 웹사이트 상의 상기 웹페이지 각각의 정보 컨텐트를 제어하기 위해 사용된 상기 웹페이지 텍스트 문서로부터 분리되는, 하나 이상의 테마-지향(theme-oriented) 텍스트 문서를 준비하는 단계 - 상기 하나 이상의 테마-지향 텍스트 문서는 상기 웹사이트 상의 상기 복수의 웹페이지 중에서 공통 외관 및 느낌을 생성하기 위해 사용될 복수의 제어 구성요소(control elements)를 포함함 - ;
    상기 하나 이상의 테마-지향 텍스트 문서에 액세스하는 단계;
    상기 관련 웹페이지에서 상기 테마의 상기 공통 외관 및 느낌을 렌더링할 때 상기 하나 이상의 테마-지향 텍스트 문서의 상기 제어 구성요소를 인스턴스화하기 위해 사용되는 복수의 객체로 구성된 테마 클래스를 정의하는 테마 제어 트리를 생성하는 단계 - 상기 테마 제어 트리의 상기 객체 각각은 상기 복수의 테마-지향 텍스트 문서의 적어도 하나의 상기 제어 구성요소에 대응하며, 상기 테마 제어 트리를 생성하는 단계는, 컴파일되지 않은 웹페이지 테마 클래스를 정의하는 소스 코드를 생성함으로써 상기 테마-지향 텍스트 문서의 상기 제어 구성요소 중 적어도 일부에 기초하여 상기 컴파일되지 않은 웹페이지 테마 클래스를 생성하는 단계; 및 상기 컴파일되지 않은 웹페이지 테마 클래스를 컴파일하는 단계를 포함함 - ;
    상기 웹사이트 상의 상기 복수의 웹페이지 중 적어도 하나의 제어 구성요소를 인스턴스화하기 위해 사용되는 복수의 페이지 제어 객체로 구성된 페이지 클래스를 정의하기 위해 생성된 페이지 제어 트리의 적어도 하나의 페이지 제어 객체에 대응하는 것으로서, 상기 복수의 테마 제어 객체 중에서 적어도 하나의 테마 제어 객체를 식별하는 단계 ; 및
    상기 적어도 하나의 테마 제어 객체와 함께 상기 적어도 하나의 페이지 제어 객체를 실행함으로써, 어떠한 웹페이지의 웹페이지 텍스트 문서에도 영향을 미치지 않고, 상기 테마에 의해 정의된 공통 외관 및 느낌으로 상기 웹사이트 상의 상기 복수의 웹페이지 중 적어도 하나를 렌더링하는 단계;
    를 포함하는, 컴퓨터 판독가능 기록 매체.
  2. 제1항에 있어서, 상기 하나 이상의 테마-지향 텍스트 문서의 상기 제어 구성요소는 상기 웹페이지 텍스트 문서 중 하나의 적어도 하나의 제어 구성요소와 동일한 스키마를 따르는, 컴퓨터 판독가능 기록 매체.
  3. 제1항에 있어서, 클라이언트 컴퓨팅 시스템으로부터 웹페이지에 대한 요청을 수신하는 단계를 더 포함하는, 컴퓨터 판독가능 기록 매체.
  4. 제3항에 있어서, 요청된 상기 웹페이지를 상기 클라이언트 컴퓨팅 시스템에 다운로드 및 렌더링하는 단계를 더 포함하는, 컴퓨터 판독가능 기록 매체.
  5. 제1항에 있어서, 하나 이상의 렌더링된 상기 웹페이지를 클라이언트 컴퓨팅 시스템에 다운로드하는 단계를 더 포함하는, 컴퓨터 판독가능 기록 매체.
  6. 제1항에 있어서, 어떠한 웹페이지의 웹페이지 텍스트 문서에도 영향을 미치지 않고, 상기 테마에 의해 정의된 공통 외관 및 느낌으로 상기 웹사이트의 상기 복수의 웹페이지 중 적어도 하나를 렌더링하는 단계는, 웹페이지 텍스트 문서가 제공하는 지시어(a directive)를 판독하는 단계를 포함하는, 컴퓨터 판독가능 기록 매체.
  7. 제6항에 있어서, 웹페이지 텍스트 문서의 디폴트 룰은 테마가 적용되는 것이고, 상기 테마 적용 방법은,
    상기 디폴트 룰을 위반하는 것이 없다고 판단하는 단계
    를 더 포함하는, 컴퓨터 판독가능 기록 매체.
  8. 제7항에 있어서, 상기 디폴트 룰은 구성 설정(configuration setting)에 기초하는, 컴퓨터 판독가능 기록 매체.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020040043661A 2003-06-13 2004-06-14 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법 KR101099272B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/461,781 2003-06-13
US10/461,781 US7197702B2 (en) 2003-06-13 2003-06-13 Web page rendering mechanism using external programmatic themes

Publications (2)

Publication Number Publication Date
KR20040107445A KR20040107445A (ko) 2004-12-20
KR101099272B1 true KR101099272B1 (ko) 2011-12-26

Family

ID=33299861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040043661A KR101099272B1 (ko) 2003-06-13 2004-06-14 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법

Country Status (10)

Country Link
US (1) US7197702B2 (ko)
EP (1) EP1486884A3 (ko)
JP (1) JP4643931B2 (ko)
KR (1) KR101099272B1 (ko)
CN (1) CN100444158C (ko)
AU (1) AU2004202235B8 (ko)
BR (1) BRPI0401905A (ko)
CA (1) CA2470425C (ko)
MX (1) MXPA04005724A (ko)
RU (1) RU2390832C2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100454291B1 (ko) * 2002-01-03 2004-10-26 김윤홍 오소리를 주 원료로 한 약용증류주의 제조 공정.

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228500B2 (en) * 2003-06-13 2007-06-05 Microsoft Corporation Web page rendering priority mechanism
US7197702B2 (en) * 2003-06-13 2007-03-27 Microsoft Corporation Web page rendering mechanism using external programmatic themes
JP4007452B2 (ja) * 2003-10-10 2007-11-14 株式会社Access ブラウザを利用して機器情報を表示するシステム、およびプログラム
US20050102380A1 (en) * 2003-11-06 2005-05-12 International Business Machines Corporation Method, system, and computer program product for theme configuration and deployment
US8661338B2 (en) * 2004-01-14 2014-02-25 Xerox Corporation System and method for dynamic document layout
GB2428953A (en) * 2005-08-04 2007-02-07 Ibm Identifying remote objects on a client system GUI
US8473971B2 (en) * 2005-09-06 2013-06-25 Microsoft Corporation Type inference and type-directed late binding
CN100403312C (zh) * 2006-01-16 2008-07-16 华为技术有限公司 一种实现智能链接的方法
CN100422997C (zh) * 2006-02-21 2008-10-01 西安迪戈科技有限责任公司 网页加入可搜索的深标签及浏览器插件和脚本结合的方法
US7770106B2 (en) 2006-03-17 2010-08-03 Microsoft Corporation Dynamic generation of compliant style sheets from non-compliant style sheets
WO2008076741A1 (en) * 2006-12-15 2008-06-26 Accenture Global Services Gmbh Cross channel optimization systems and methods
EP1970835A1 (en) * 2007-03-15 2008-09-17 Lucent Technologies Inc. Method and apparatus for secure web browsing
US20080320453A1 (en) * 2007-06-21 2008-12-25 Microsoft Corporation Type inference and late binding
US8321836B2 (en) * 2007-06-21 2012-11-27 Microsoft Corporation Late bound programmatic assistance
US10216854B2 (en) * 2007-07-26 2019-02-26 International Business Machines Corporation Optimized page script downloads in a component based architecture
US8290929B2 (en) * 2007-10-26 2012-10-16 Yahoo! Inc. Media enhancement mechanism using embed code
US9418171B2 (en) * 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8477143B2 (en) 2008-03-04 2013-07-02 Apple Inc. Buffers for display acceleration
US8289333B2 (en) * 2008-03-04 2012-10-16 Apple Inc. Multi-context graphics processing
US8549497B2 (en) * 2008-05-05 2013-10-01 University Of New Brunswick High-level hypermedia synthesis for adaptive web
US20100023872A1 (en) * 2008-07-28 2010-01-28 Yahoo! Inc. Web page serving architecture
US20100087173A1 (en) * 2008-10-02 2010-04-08 Microsoft Corporation Inter-threading Indications of Different Types of Communication
US20100087169A1 (en) * 2008-10-02 2010-04-08 Microsoft Corporation Threading together messages with multiple common participants
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US20100107100A1 (en) 2008-10-23 2010-04-29 Schneekloth Jason S Mobile Device Style Abstraction
US20100105441A1 (en) * 2008-10-23 2010-04-29 Chad Aron Voss Display Size of Representations of Content
US8355698B2 (en) 2009-03-30 2013-01-15 Microsoft Corporation Unlock screen
US8238876B2 (en) 2009-03-30 2012-08-07 Microsoft Corporation Notifications
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
KR101682092B1 (ko) * 2009-11-12 2016-12-05 삼성디스플레이 주식회사 박막 트랜지스터 표시판 및 이를 포함하는 액정 표시 장치
US8572591B2 (en) 2010-06-15 2013-10-29 Microsoft Corporation Dynamic adaptive programming
US8392452B2 (en) 2010-09-03 2013-03-05 Hulu Llc Method and apparatus for callback supplementation of media program metadata
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9256401B2 (en) 2011-05-31 2016-02-09 Microsoft Technology Licensing, Llc Editor visualization of symbolic relationships
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
KR102298602B1 (ko) 2014-04-04 2021-09-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 확장가능한 애플리케이션 표시
WO2015154273A1 (en) 2014-04-10 2015-10-15 Microsoft Technology Licensing, Llc Collapsible shell cover for computing device
CN105359055A (zh) 2014-04-10 2016-02-24 微软技术许可有限责任公司 计算设备的滑盖
CN104020924B (zh) * 2014-05-21 2016-08-31 小米科技有限责任公司 标签创建方法、装置及终端
US9639263B2 (en) 2014-08-05 2017-05-02 Weebly, Inc. Native overlay for rapid editing of web content
US10139998B2 (en) 2014-10-08 2018-11-27 Weebly, Inc. User interface for editing web content
US9674335B2 (en) 2014-10-30 2017-06-06 Microsoft Technology Licensing, Llc Multi-configuration input device
CN106708496B (zh) * 2015-11-18 2020-03-17 腾讯科技(深圳)有限公司 图形界面中标签页的处理方法和装置
CN109145272B (zh) * 2018-07-27 2022-09-16 广州视源电子科技股份有限公司 文本渲染和布局方法、装置、设备和存储介质
US11409948B2 (en) 2018-12-10 2022-08-09 Block, Inc. Centralized brand asset management
WO2020228031A1 (zh) * 2019-05-16 2020-11-19 深圳市欢太科技有限公司 指令处理方法、装置、电子设备以及存储介质
CN111221515A (zh) * 2020-01-15 2020-06-02 南京鼎震信息技术有限公司 一种修改web前端主题的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020000948A (ko) * 2000-06-22 2002-01-09 오재철 웹 사이트 구축 및 관리 시스템
KR20020004154A (ko) * 2000-07-03 2002-01-16 이준범 웹 기반의 자동 홈페이지 통합관리 시스템 및 서비스 방법
KR20020014039A (ko) * 2000-08-14 2002-02-25 주식회사 인포웨어 인터넷을 통해 사이트를 구축하는 방법
US6697825B1 (en) * 1999-11-05 2004-02-24 Decentrix Inc. Method and apparatus for generating and modifying multiple instances of element of a web site
EP1486884A2 (en) * 2003-06-13 2004-12-15 Microsoft Corporation Weg page rendering mechanism using external programmatic themes

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428730A (en) * 1992-12-15 1995-06-27 International Business Machines Corporation Multimedia system having software mechanism providing standardized interfaces and controls for the operation of multimedia devices
US6460036B1 (en) * 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US6353923B1 (en) * 1997-03-12 2002-03-05 Microsoft Corporation Active debugging environment for debugging mixed-language scripting code
US6230309B1 (en) * 1997-04-25 2001-05-08 Sterling Software, Inc Method and system for assembling and utilizing components in component object systems
US6212536B1 (en) * 1998-01-08 2001-04-03 International Business Machines Corporation Method for generating web browser sensitive pages
US6349408B1 (en) * 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
JP3542930B2 (ja) * 1999-07-30 2004-07-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示情報確定方法及び装置、表示情報確定のためのソフトウエア・プロダクトを格納した記憶媒体
US20040172415A1 (en) * 1999-09-20 2004-09-02 Messina Christopher P. Methods, systems, and software for automated growth of intelligent on-line communities
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
CA2327159C (en) * 2000-11-30 2008-10-07 Ibm Canada Limited-Ibm Canada Limitee System and method for dynamically displaying html form elements
US8065620B2 (en) * 2001-01-31 2011-11-22 Computer Associates Think, Inc. System and method for defining and presenting a composite web page
US6772144B2 (en) * 2001-01-31 2004-08-03 Microsoft Corporation Method and apparatus for applying an adaptive layout process to a layout template
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US20030014442A1 (en) * 2001-07-16 2003-01-16 Shiigi Clyde K. Web site application development method using object model for managing web-based content
JP2003108475A (ja) * 2001-09-27 2003-04-11 Brother Ind Ltd 通信システム、通信装置、およびコンピュータプログラム
US7523174B2 (en) * 2002-10-15 2009-04-21 International Business Machines Corporation Dynamic portal assembly
US20050044173A1 (en) * 2003-02-28 2005-02-24 Olander Daryl B. System and method for implementing business processes in a portal
US20050108648A1 (en) * 2003-02-28 2005-05-19 Olander Daryl B. Method for propagating look and feel in a graphical user interface
US20040225995A1 (en) * 2003-02-28 2004-11-11 Kyle Marvin Reusable software controls
US20040250205A1 (en) * 2003-05-23 2004-12-09 Conning James K. On-line photo album with customizable pages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697825B1 (en) * 1999-11-05 2004-02-24 Decentrix Inc. Method and apparatus for generating and modifying multiple instances of element of a web site
KR20020000948A (ko) * 2000-06-22 2002-01-09 오재철 웹 사이트 구축 및 관리 시스템
KR20020004154A (ko) * 2000-07-03 2002-01-16 이준범 웹 기반의 자동 홈페이지 통합관리 시스템 및 서비스 방법
KR20020014039A (ko) * 2000-08-14 2002-02-25 주식회사 인포웨어 인터넷을 통해 사이트를 구축하는 방법
EP1486884A2 (en) * 2003-06-13 2004-12-15 Microsoft Corporation Weg page rendering mechanism using external programmatic themes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100454291B1 (ko) * 2002-01-03 2004-10-26 김윤홍 오소리를 주 원료로 한 약용증류주의 제조 공정.

Also Published As

Publication number Publication date
AU2004202235A1 (en) 2005-01-06
CN100444158C (zh) 2008-12-17
RU2004117799A (ru) 2006-01-10
RU2390832C2 (ru) 2010-05-27
CA2470425A1 (en) 2004-12-13
EP1486884A3 (en) 2007-12-19
JP4643931B2 (ja) 2011-03-02
CN1573749A (zh) 2005-02-02
AU2004202235B8 (en) 2009-12-17
BRPI0401905A (pt) 2005-02-09
AU2004202235B2 (en) 2009-11-12
KR20040107445A (ko) 2004-12-20
US7197702B2 (en) 2007-03-27
JP2005004772A (ja) 2005-01-06
US20050015722A1 (en) 2005-01-20
EP1486884A2 (en) 2004-12-15
MXPA04005724A (es) 2005-03-23
CA2470425C (en) 2012-03-27

Similar Documents

Publication Publication Date Title
KR101099272B1 (ko) 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법
EP3876116B1 (en) Method and apparatus for running mini program, electronic device, and storage medium
US6901585B2 (en) Active ALT tag in HTML documents to increase the accessibility to users with visual, audio impairment
JP5009293B2 (ja) ウェブページのレンダリング優先度機構
US8775930B2 (en) Generic frequency weighted visualization component
US7089330B1 (en) System and method for transforming custom content generation tags associated with web pages
US9122762B2 (en) Method and system to maintain a web page
US7657869B2 (en) Integration of external tools into an existing design environment
US20040205587A1 (en) System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable
Northwood et al. Front End
Bouillon Reverse Engineering of Declarative User Interfaces
CN116401487A (zh) 一种简易搭建网站的方法、装置和介质
Bouillon " Reverse Engineering of User Interfaces
Motti et al. Automatic Evaluation of Accessibility in RIA

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee