KR100874985B1 - 웹 서버 - Google Patents

웹 서버 Download PDF

Info

Publication number
KR100874985B1
KR100874985B1 KR1020037004318A KR20037004318A KR100874985B1 KR 100874985 B1 KR100874985 B1 KR 100874985B1 KR 1020037004318 A KR1020037004318 A KR 1020037004318A KR 20037004318 A KR20037004318 A KR 20037004318A KR 100874985 B1 KR100874985 B1 KR 100874985B1
Authority
KR
South Korea
Prior art keywords
web page
code
data
information
device type
Prior art date
Application number
KR1020037004318A
Other languages
English (en)
Other versions
KR20030043969A (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 KR20030043969A publication Critical patent/KR20030043969A/ko
Application granted granted Critical
Publication of KR100874985B1 publication Critical patent/KR100874985B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

웹 서버(1)는 원격 사용자 디바이스(2)로부터의 요구 메시지에 응답하여, 상기 원격 사용자 디바이스가 해석할 수 있는 웹 페이지 코드를 동적으로 발생시킨다. 디바이스 타입 식별자(45)는 상기 요구 메시지로부터 추출되어 코드 발생 엔진(25)으로 입력되며, 상기 코드 발생 엔진(25)은 상기 디바이스 타입 식별자에 대응하는 선택된 디바이스-종속 정보를 참조하여 상기 웹 페이지 코드를 발생시키는 저장된 명령들을 해석한다. 웹 페이지 정보는 스크립트 언어로 기입된 한 세트의 명령들을 포함하는 컨텐트 문서로서 저장된다. 상기 웹 서버는 웹 페이지들을 한 형태로부터 타 형태로 변환할 필요없이 각각의 사용자 디바이스에 대한 적절한 형태로 웹 페이지들을 발생시킨다.
웹 서버, 사용자 디바이스, 인터넷, 코드

Description

웹 서버{WEB SERVER}
본 발명은 웹 서버들에 관한 것으로 특히, 비록 이에만 한정되는 것은 아니지만은 원격 사용자 디바이스들로부터 인터넷을 통해 수신된 요구 메시지들에 응답하는 웹 서버 및 상기 원격 사용자 디바이스의 성능들을 만족하도록 조정(tailor)된 웹 페이지 코드로 응답할 수 있는 웹 서버에 관한 것이다.
최근에 거의 모든 기업이 정보 및 온라인 구매 기능을 제공하기 위해 자신의 웹사이트를 가지고 있을 정도로 인터넷의 사용이 확산되었다. 과거에 대다수의 이러한 웹사이트들은 비교적 소수의 이용가능한 브라우저 어플리케이션들 중 하나를 이용하는 PC(개인용 컴퓨터)들인 원격 사용자 디바이스들에 의해 접속됨으로써, 대체로, 상기 웹사이트들은 상기 사용자 디바이스에서 보기 위한 단일 포맷으로 웹 페이지 코드를 출력해야 했다.
더 최근에, PDA(개인 휴대 정보 단말기)들, WAP(무선 어플리케이션 프로토콜) 기능들을 구비한 이동 전화들, IDTV(양방향 디지털 텔레비전), 정보 안내 시스템들(information kiosks), 게임들, 콘솔들(consoles) 및 가전 제품들과 같은 인터넷 기능을 갖춘 새로운 디바이스들이 확산되었다. 이 디바이스들의 성능들은 화면 크기와 색상 처리력에 관한 디스플레이 기능, 대역폭 및 이용가능한 메모리뿐만 아니라 이미지 포맷, 통신 프로토콜 및 마크업 언어(markup language)를 포함하는 통신 관련 변수들 면에 있어서 디바이스들마다 현저하게 다르다.
이들 서로 다른 디바이스들의 사용자들이 그들의 웹사이트들에 접속할 수 있도록 하기 위해서, 많은 기업들은 각각의 디바이스 타입에 서비스를 제공하기 위해 개별적인 웹 서버 구축에 의지하였다. 그러나, 이는 데이터 관리 문제들을 초래하고, 고객은 예를 들어, 동일 계정 사용정보(account details)를 이용하는 상인과 통신하기 위해 서로 다른 디바이스들을 이용하는 선택권을 갖기를 원할 수 있으며, 그후 상기 상인들은 신규 또는 추가 자료에 요구될 때 관리 및 갱신되도록 서로 다른 웹 서버 어플리케이션들의 확산을 요구한다.
대안적인 접근 방법은 대안적인 타입의 사용자 디바이스에 의해 접속될 수 있는 웹사이트의 개별 포트를 제공하는 것이었으며, 상기 개별 포트는 전형적으로 하이퍼텍스트 마크업 언어(HTML) 포맷의 원래의 PC 기반 웹 페이지 코드를 WAP 전화들에 이용되는 무선 마크업 언어(WML)와 같은 다른 디바이스 포맷들로 변환함으로써 요구되는 웹 페이지 코드를 획득한다. 그러나, 일반적으로 이러한 해결책들은 디바이스의 사용자에게 최적의 프리젠테이션(presentation)을 전달하는데 실패하였다. 변환 처리(종종 "변환 부호화(transcoding)"라 칭함)는 설계(engineer)하기가 어렵다. 예를 들어, PC보다 더 낮은 성능을 갖는 디바이스의 디스플레이에서 생략되어야 할 적절한 정보 선택을 제공하는 것이 필요하다. 상기 변환 부호화 처리는 또한 재설계(reengineer)되어야 하기 때문에 이러한 어려움은 원래의 PC 웹 페이지 코드를 갱신하는 것이 필요할 때 더욱 심해진다.
인터넷을 통한 웹 페이지 정보 접속에 이용되는 프로토콜들은 서로 다른 성능들을 갖는 원격 사용자 디바이스들로부터 생긴 문제점들을 없애기 위해 표준을 채택하여 단일화되어야 한다고 제안하였다. 웹 페이지 코드에 대한 포맷으로서 확장성 마크업 언어(XML)의 사용이 제안되었다. XML은 컨텐트(content)를 정의하는 마크업 언어이고, 표현할 때 XML 문서들을 양식 시트(style sheet)로 변환하는데 이용되는 XSL(확장성 양식시트 언어)과 함께 이용될 수 있다. 그러나 아직까지는, 이러한 표준들은 채택되지 않았고 이 해결책은 모든 디바이스 타입들에 대해 최적이 아닌 것 같다.
본 발명은 서로 다른 타입의 원격 사용자 디바이스에 서비스를 제공할 수 있는 다중 채널 성능들을 갖는 개선된 웹 서버를 제공하고자 한다.
본 발명에 따르면, 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하여, 상기 사용자 디바이스에 의해 디스플레이될 하나 또는 그 이상의 웹 페이지들을 표시하는 웹 페이지 코드를 발생시켜 이 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 장치가 개시된다.
바람직하게는 상기 장치는 상기 요구 메시지로부터 상기 원격 사용자 디바이스를 식별하는 디바이스 타입 식별자를 추출(extract)하는 추출 수단을 포함하며, 상기 원격 사용자 디바이스는 서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나이다.
상기 장치는 바람직하게는 상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작시키는 프로세서와, 상기 웹 페이지 정보를 한 세트의 명령들로서 저장하는 제 1 메모리 수단과, 그리고 상기 웹 페이지 코드를 상기 디바이스 타입의 성능들에 맞게 조정하는 서로 다른 디바이스 타입들 각각에 대한 디바이스-종속정보를 저장하는 제 2 메모리 수단을 갖는다.
상기 코드 발생 엔진은 바람직하게는 상기 디바이스 타입 식별자에 대응하는 선택된 디바이스-종속 정보를 참조하여 상기 명령들을 해석하는 해석 수단을 포함하며, 이로써 상기 코드 발생 수단은 상기 웹 페이지 코드가 상기 원격 사용자 디바이스의 성능들에 맞게 조정되는 형태로 상기 웹 페이지 코드를 발생시키는 동작을 행할 수 있다.
본 발명의 바람직한 실시예들은 이제 첨부 도면들을 참조하여 단지 예시적으로 설명될 것이다.
도 1은 웹 서버와 원격 사용자 디바이스들 사이의 접속의 개략도이고;
도 2a는 도 1의 상기 웹 서버의 개략도이고;
도 2b는 도 2a의 상기 웹 서버에서 신호 흐름을 예시하는 기능 관계도이고;
도 3은 도 2의 상기 웹 서버와 사용하기 위한 정책(policy) 테이블들의 개략도이고;
도 4는 코드 발생 엔진의 동작을 예시하는 개략도이고;
도 5a는 PC에 대한 배치도를 예시하고;
도 5b는 텔레비전에 대한 배치도를 예시하고;
도 5c는 PDA에 대한 배치도를 예시하고;
도 5d는 WAP 전화에 대한 배치도를 예시하고;
도 5e는 대형 화면을 갖는 디바이스에 대한 배치도를 예시하고;
도 5f는 소형 화면을 갖는 디바이스에서 조각들(fragments)의 디스플레이를 예시하고;
도 5g는 대형 화면 디바이스에서 다중 메뉴 구조를 예시하고;
도 5h는 도 5g의 배치도에서 제어 세그먼트들과 컨텐트 세그먼트들 사이의 관계를 예시하고;
도 6은 디바이스 정책 테이블의 계층 구조를 예시하고;
도 7은 상기 웹 서버에 제공된 소프트웨어를 개략적으로 예시하고;
도 8은 상기 웹 서버에 의해 요구되는 하드웨어를 개략적으로 예시하고;
도 9는 상기 코드 발생 엔진에 의해 사용하기 위해 컨텐트 코드와 프리젠테이션 정보의 분리를 개략적으로 예시하고;
도 10은 생산 서버와 개발 서버를 포함하는 시스템을 개략적으로 예시하고;
도 11은 새로운 타입의 사용자 디바이스가 처음으로 접속될 때 도 10의 상기 시스템에서의 신호들의 교환을 예시하고;
도 12는 캐시 메모리를 갖는 서버를 개략적으로 예시하고;
도 13은 도 12의 게이트웨이 서버의 동작 방법을 예시하는 흐름도이고;
도 14는 도 12의 동적 웹 페이지 서버의 동작을 예시하는 흐름도이고;
도 15는 구성요소 로직 소프트웨어 모듈을 예시하는 개략도이고;
도 16은 상기 구성요소 로직 소프트웨어 모듈을 이용하는 코드 발생 동작을 예시하는 흐름도이고;
도 17은 단일 구성요소명에 의해 참조된 데이터의 서로 다른 버전들인 데이터 객체들의 계층 구조를 예시하고;
도 18은 서로 다른 텍스트 코드 크기들 및 언어들을 갖는 텍스트 객체들의 계층 구조를 예시하고;
도 19는 패인 분할(pane dissection)이 일어나는 웹 서버에서 신호 흐름을 예시하고;
도 20은 패인 분할을 예시하는 흐름도이고;
도 21은 패인을 조각들(shards)로 분할한 것을 예시하고;
도 22는 양식을 작성하는 동안 사용자 세션 메모리의 사용을 예시하고;
도 23은 양식 작성시에 이용된 패인의 분할을 예시하고;
도 24는 그래픽 사용자 인터페이스의 기능을 예시하고; 그리고
도 25는 파일 저장 방법을 예시하는 흐름도이다.
도 1은 인터넷(3)을 통해 원격 사용자 디바이스들(2)에 접속되는 웹 서버(1)를 예시한다. 상기 원격 사용자 디바이스들은 PC, 텔레비전, PDA 및 WAP 기능을 구비한 이동 전화로 예시되지만, 인터넷 성능(capability)을 갖는 어떤 수의 서로 다른 디바이스들을 포함할 수 있다. 상기 웹 서버(1)는 상기 웹 서버의 오퍼레이터가 문서들을 작성하고, 일반적으로 상기 웹 서버의 동작을 제어 및 유지할 수 있게 해주는 웹 서버 GUI(그래픽 사용자 인터페이스)(4)를 구비한다. 또한, 상기 웹 서버(1)는 서비스 센터(5)와 상기 인터넷(3)을 통해 연결되며, 이 서비스 센터(5)는 임의의 새로운 타입의 사용자 디바이스에 관한 정보를 획득하여, 요구될 때 상기 웹 서버(1)에 필연적인 소프트웨어 수정을 제공한다.
도 2a는 도 1의 상기 웹 서버(1)의 간략한 개략도이다. 상기 웹 서버(1)는 하나의 프로세서(20)를 포함하며, 이 프로세서(20)는 웹 페이지 코드를 발생시킬 것을 요구받으면 상기 프로세서에 의해 구동되는 어플리케이션의 형태로 코드 발생 엔진(21)을 동작시킨다. 이 실시예에서 상기 코드 발생 엔진(21)은 자바 프로그래밍 언어로 기입되고, 상기 웹 서버의 동작 동안 바이트 코드로 컴파일된 형태로 상기 프로세서(20)의 동작(working) 메모리에 존재하고, 자바 실행시의 환경 내에서 구현가능하다.
메모리(22)는 컨텐트 코드(23)를 저장하며, 이 컨텐트 코드(23)는 본 실시예에서 JSP1.1(자바 서버 페이지들)인 마크업 언어로 기입된 문서들의 형태로 웹 페이지 정보를 정의한다. 이 문서들은 전형적으로 그래픽 사용자 인터페이스(4)를 이용하는 상기 웹 서버(1)의 오퍼레이터에 의해 작성된다. 상기 메모리(22)는 또한 운용 데이터(24)를 저장하며, 이 운용 데이터(24)는 예를 들어, 상기 사용자 디바이스(2)로부터의 특정 질문(query)들에 응답하여 실행 시에 발생된 웹 페이지 코드로 통합될 필요가 있는 데이터와 상기 웹 서버의 사용을 감시함으로써 획득된 데이터를 포함한다. 상기 컨텐트 코드(23)에 의해 참조된 데이터 객체들은 데이터베이스(19)에 저장된다. 이 데이터 객체들은 이미지 또는 텍스트와 그리고 작성자가 발생될 상기 웹 페이지 코드에 포함시키고자 하는 데이터 객체들의 다른 형태들을 포함하는 파일들을 포함할 수 있다.
메모리(22)에 디바이스-종속 정보(25)가 또한 저장되며, 이 디바이스-종속 정보(25)는 주로 하기에 설명된 정책 테이블들로 구성된다. 상기 메모리(22)는 또한 프로그램 코드(26)도 저장하며, 이 프로그램 코드(26)는 상기 서버(1)의 동작 동안 프로세서(20)에 의해 접속될 수 있거나 시동 시간에 상기 코드 발생 엔진(21)과 같은 소프트웨어를 검색하는데 이용될 수 있다. 상기 프로그램 코드(26)는 또한 마크업 언어에 이용되는 한 세트의 태그들을 정의하는 코드를 포함하며, 상기 문서들은 하기에 설명된 바와 같이 마크업 언어로 작성된다.
인터페이스(27)가 상기 프로세서(20) 및 메모리를 서빙하는 데이터 버스(28)와 인터넷(3)과의 외부 접속부와의 사이에서 교신하여, 요구 메시지들을 수신하고 응답 메시지들을 전송한다.
수신 메시지들로부터 타입에 의해 원격 사용자 디바이스(2)를 식별하는 디바이스 타입 식별자를 추출하기 위해 디바이스 식별 엔진(29)이 제공된다. 본 실시예에서의 상기 디바이스 식별 엔진(29)은 상기 프로세서(20)에 의해 소프트웨어로 구현된다. 이 실시예에서, 인터넷을 통해 수신된 요구 메시지는 하이퍼텍스트 전송 프로토콜(HTTP) 헤더를 포함하며, 이 HTTP 헤더는 상기 요구 메시지를 발생시킬 때 발신 디바이스가 이용했던 사용자 대리인의 이름을 선언하는 ID 스트링(string)을 포함한다. 상기 사용자 대리인 소프트웨어의 이름은 예를 들어 브라우저 버전과 상기 디바이스의 마크업 언어 성능을 정의하며, 예를 들어, 검색 테이블로서 저장될 수 있는 상기 디바이스 타입 식별자를 이용하는 상기 발신 디바이스를 식별하기 위해 상기 디바이스 식별 엔진(29)에 의해 이용된다.
또한 상기 HTTP 헤더는 상기 요구 메시지를 발신했던 사용자의 쿠키(cookie) 관련 세부사항에 포함된 정보를 산출할 수 있다. 이러한 쿠키들은 상기 웹 서버(1)에 의해 만들어진 응답의 개인화에 이용되는 다른 데이터를 포함할 수 있다.
도 2b는 신호 흐름을 예시하는 방식으로 기능적인 요소들을 도시한 상기 웹 서버(1)의 다른 예시도이다. 프론트 엔드 프로세서(300)는 인터넷(3)으로부터 수신된 요구 메시지들 및 인터넷을 통해 사용자 디바이스(2)에 전송된 응답 메시지들에 대한 통신 인터페이스를 제공한다. 상기 프론트 엔드 프로세서(300)는 웹 어플리케이션 프로세서(302)에 URL 정보(301)를 전송하며, 이 웹 어플리케이션 프로세서(302)는 상기 URL로부터, 사용자에 의해 요구된 웹 페이지에 포함될 적절한 정보를 결정한다. 상기 웹 어플리케이션 프로세서(302)는 데이터베이스(303)에 접속하며, 이 데이터베이스(303)는 상기 프로세서에 대해 로컬일 수 있거나 적절한 통신 링크를 통해 접속할 수 있는 원격 위치에 있을 수 있다.
상기 웹 어플리케이션 프로세서(302)는 웹 페이지 코드를 발생시키는 명령들을 포함하는 문서(304)를 출력한다. 상기 문서(304)는 그 자체적으로는 사용자 디바이스의 브라우저에 의해 해석될 수 없으므로, 본 설명의 목적을 위한 "웹 페이지 코드"를 구성하지 않는다.
상기 문서(304)는 컨텐트 데이터 구조(305)와 정책 테이블들(40)의 세트를 참조하여 웹 페이지 코드를 발생시키는 상기 코드 발생 엔진(21)에 입력된다. 상기 코드 발생 엔진의 출력은 상기 사용자 디바이스(2)의 브라우저에 의해 해석될 수 있는 형태로 된 웹 페이지 코드 문서(306)이다. 상기 웹 페이지 코드 문서(306)는 상기 프론트 엔드 프로세서(300)에 의해 수신되어, 상기 인터넷(3)을 통해 상기 사용자 디바이스(2)로 전송된 응답 메시지로서 패키징(package)된다.
상기 코드 발생 엔진(21)이 상기 컨텐트 데이터 구조(305)에서 적절한 데이터를 선택하고 적절한 정책 테이블들(40)에 접속할 수 있도록 하기 위해서, 이는 또한 상기 프론트 엔드 프로세서(300)로부터 메시지 헤더 신호(307)를 수신함에 응답하여 디바이스 식별 엔진(29)에 의해 제공되는 디바이스 타입 식별자(45)의 입력을 요구하며, 여기서 상기 신호는 상기 사용자 디바이스로부터 수신된 요구 메시지의 메시지 헤더로부터 추출된 정보를 포함한다.
도 3은 도 2a의 상기 디바이스-종속 정보(25)를 구성하는 정책 테이블들(40)을 개략적으로 예시한다.
본 설명에서, 용어 "정책(policy)"은 상기 코드 발생 엔진(21)에 의해 이용될 정보를 나타내는데 이용되며, 이는 서로 다른 디바이스 타입들의 서로 다른 기술적 성능들로 인한 필요에서 또는 상기 컨텐트 코드(23)의 작성자에 의해 실행된 선택의 결과로서 서로 다른 디바이스 타입들에 대해 서로 다르게 정의될 수 있다.
상기 정책 테이블들(40)은 상기 디바이스 타입의 서로 다른 기술적 양상에 관한 다수의 필드(field)들을 포함하는 디바이스 정책 테이블(30)을 포함한다. 예시적으로, 하기의 표 1은 디바이스 타입과 관계될 수 있는 몇개의 디바이스 정책들을 열거하며, 이는 상기 테이블의 한 필드(즉, 열)에 각각 대응한다. 단일 디바이스 타입(즉, 단일 행)에 대한 값들이 예시된다. 상기 디바이스 정책 테이블(30)은 실제로 상기 테이블을 컴팩트 형태로 나타내기 위해서 계층적 테이블 구조를 이용하는 다중 디바이스 타입들에 대해 다수의 서로 다른 필드들과 값들을 포함할 것이다.
표 1 - 디바이스 정책 테이블의 부분
정책 값들
GIF 포맷 이미지들을 지원한다 참/거짓
JPEG 포맷 이미지들을 지원한다 참/거짓
MP3 포맷 오디오들을 지원한다 참/거짓
WAV 포맷 오디오들을 지원한다 참/거짓
전체적인 위치(GPS)를 보고할 수 있다 참/거짓
상기 디바이스 정책 테이블(30)에 접속함으로써, 상기 코드 발생 엔진(21)은 상기 사용자 디바이스(2)의 기술적인 성능들에 적합하도록 코드 발생의 선택에 관한 결정을 실행할 수 있다. 예를 들어, 이미지가 상기 웹 페이지 코드에 이미지 파일로서 포함된다면, 상기 코드 발생 엔진(21)은 상기 요구 메시지를 발신하는 상기 사용자 디바이스(2)에 이용가능한 이미지 데이터 압축의 형태를 알 필요가 있다. 상기 디바이스 정책 테이블(30)은 상기 디바이스에 의해 GIF 또는 JPEG 포맷 이미지들이 압축이 풀릴 수 있는지 여부를 표시하는 필드들을 포함한다. 유사하게, 오디오 파일들은 MP3 포맷을 포함하는 다수의 서로 다른 형태로 압축될 수 있으며, 상기 디바이스 정책 테이블(30)은 또한 상기 디바이스가 MP3를 지원하는지 여부를 표시하는 필드를 포함한다.
상기 프로토콜 정책 테이블(31)은 디바이스 출력 프로토콜들 간의 등치(equivalences)에 대한 매핑을 담당하며, 이 디바이스 출력 프로토콜들은 일반적으로 마크업 언어들이라 불린다. 예로는 WML, HTML, 휴대용 기기 마크업 언어(HDML) 및 소형 HTML(cHTML)가 있다. 표 2는 디바이스 타입들 중 하나의 디바이스 타입에 대한 상기 프로토콜 정책 테이블(31) 필드의 6개의 예이다.
표 2 - 프로토콜 정책 테이블의 부분
프로토콜 요소
HTML 버전 4.0 <thead>
HTML 버전 3.2 <thead>
HTML i-모드 등치 없음
XHTML 기초 <thead>
WML 버전 1.1 <thead>
HDML 버전 3 등치 없음
양식 정책 테이블(32)은 도 3에 예시된 바와 같이 표제들, 이미지 테두리 및 단락 바탕색의 글자체, 글자 크기, 글자 속성 및 색상을 정의하는 다수의 필드를 포함하며, 상기 도 3은 디바이스 타입들 중 하나의 디바이스 타입에 대한 상기 양식 정책 테이블의 부분을 도시한다. 이로써, 상기 코드 발생 엔진(21)은 예를 들어 특정 기업 엔티티에 의해 일반적인 거래 양식으로 채택된 협정 양식을 반영할 수 있는 소정의 결정에 따라, 상기 디바이스 타입에 적절한 코드를 발생시킬 수 있다.
양식 정보를 다루는 방식은 서로 다른 디바이스들 사이에서, 실제로는 서로 다른 디바이스 출력 프로토콜들 사이에서 변한다. 일부 경우에 있어서, 양식 정보는 발생된 웹 페이지 코드 내에 포함되어야 한다. 다른 경우들에 있어서, 양식 정보는 개별적으로 발생된 코드에 제공되어야 하며, 종종 "양식 시트"라고 불린다.
표 3 - 양식 정책 테이블의 부분
정책 값들
표제 1 글자체 글자체 명(예를 들어, Times)
표제 1 글자 크기 글자 크기(예를 들어, 20)
표제 1 글자 속성 글자 속성(예를 들어, 굵게)
표제 1 색상 색상
이미지 테두리 색상 이미지들의 테두리에 대한 생상
단락 바탕색 단락의 바탕색에 대한 색상
유사하게, 주제 정책 테이블(33)은 그들의 웹 페이지들에 대해 기업 엔티티들에 의해 채택된 장식적인 수식들 및 로고들과 관련한 필드들을 포함하고, 주제 정책의 작성자가 상기 디바이스 타입들 각각에 대한 크기와 같은 로고의 장식적인 특성들 및 양상들을 조정할 수 있다.
배치(layouts) 정책 테이블(35)은 예컨대 서로 다른 화면 모양 및 서로 다른 디바이스 타입들을 고려하기 위해 사용자 디바이스에서의 이미지들을 렌더링하는 시점에서 텍스트, 로고들, 이미지들 등을 포함하는 요소들의 배치에 관한 필드들을 포함한다.
동적 정책 테이블(36)은 시변(time varying) 파라미터들에 따라 조정될 서로 다른 디바이스 타입들에 대한 코드를 고려하는 필드들을 포함한다. 예로써, WAP 기능을 구비한 이동 전화는 인터넷에 접속하기 위해 전화에 의해 사용되는 셀룰러 이동 전화망을 통해 이용가능한 신호의 세기에 따른 시간에 의해 변하는 응답 메시지들을 수신하는 대역폭을 가질 수 있다. 상기 동적 정책은 저대역폭 상태하에서는 저대역폭, 그리고 양호한 상태하에서는 더 높은 대역폭을 요구하는 코드를 발생하도록 구성될 수 있다. 예를 들어 이미지 데이터의 양은 상기 응답 메시지를 나르는데 요구되는 대역폭을 제어하기 위해 조정될 수 있다. 단순히 로고 또는 다른 이미지를 생략함으로써, 상기 응답 메시지가 디바이스에 다운로드될 수 있는 속도는 불충분한 신호 세기 상태하에서도 유지될 수 있다.
또한, 하기에 설명된 데이터 객체들의 선택을 결정하기 위한 목적으로 구성요소 정책 테이블(37)이 제공된다.
도 4는 상기 코드 발생 엔진(21)이 상기 정책 테이블들(40)에 있는 데이터를 이용하는 방식을 개략적으로 도시한다. 시동시에, 상기 프로세서(20)는 저장된 프로그램 코드(26)로부터 시동 프로그램을 검색하고, 여기서 정책 객체들(41)로 불리는 자바 객체들(자바 빈즈(자바 beans))의 시리즈에 상기 정책 테이블들(40)의 정보를 흡수시키기 위해 상기 시동 프로그램을 구동하며, 상기 정책 객체들(41)은 이후 상기 코드 발생 엔진(21)의 실행 시간 환경(46) 내에서 이용가능하게 된다. 상기 실행 시간 환경은 적절한 자바 버추얼 머신(자바 Virtual Machine)에 의해 제공된다. 상기 정책 객체들(41) 각각은 특정 양상의 코드 발생을 처리하고, 각각의 정책 객체가 각각의 디바이스 타입에 대한 상기 정책 테이블들(40)로부터 이용가능한 관련 정보 전체를 알 수 있도록 구성된 로직 및 데이터 객체들을 포함한다. 예를 들어 일 정책 객체(41)는 이미지 포맷 성능과 관계될 수 있는 반면, 타 정책 객체는 출력 코드에 대한 마크업 언어의 선택과 관계될 수 있다. 실행 시간에서의 상기 코드 발생 엔진(21)은 컨텐트 코드 문서(23)의 컴파일 버전을 처리하며, 상기 컨텐트 코드는 일련의 명령들(42)로 구성되고, 각각의 명령은 한 세트의 마크업 태그들(43) 중 하나를 포함한다.
도 4에 있어서, 태그(43)가 다수의 커스텀(custom) 또는 스마트 태그들 중 하나로서 예시되는 바, 이는 도 4에 개략적으로 도시된 바와 같이 처리시 상기 태그들의 요구된 기능을 수행하도록 기입된 클래스들의 집합(44)을 참조한다. 이 클래스들(44)은 또한 상기 정책 테이블들(40)에 포함된 데이터를 기초로 디바이스 타입에 의존한 프로그램 결정이 취해질 때마다 하나 또는 그 이상의 정책 객체들(41)을 참조한다.
본 실시예에 따라 제공된 커스텀 태그들(43)의 예들은 테이블들(4 및 5)에 요약된다. 상기 컨텍트 코드(23)를 정의하는데 이용되는 모든 태그들은 이들이 JSP 커스텀 태그들로 구현되며 디바이스-종속 결정들을 만들기 위해 자바 빈즈(정책 객체들(41))에 접속하는 자바 클래스들과 관계된다는 것을 디바이스에 알려준다. 보다 기본적인 태그들은 표 4에 도시된 간단한 인라인(in-line) 태그들로서 여기서 언급된다. 보다 복잡한 태그들은 표 5에서 주요 블럭 태그들로서 언급된다. 상기 주요 태그들은 전형적으로 결과로 생긴 발생 코드의 마크업 언어(예를 들어, HTML)에서 하나 이상의 태그로 변환된다.
표 4
간단한 인라인 태그들
cite 텍스트가 열거되어 디스플레이되도록 한다
code 코드 샘플들을 예시하는 적절한 텍스트의 포맷을 지정한다
em 텍스트가 강조되어 디스플레이되도록 한다
hr 수평적으로 디스플레이한다
표 5
주요 블럭 태그들
anchor 다른 캔버스, 페이지 또는 부분에 연결한다
canvas 배치 및 주제가 이 캔버스에 적용되도록 정의한다
h1 to h6 6개의 서로 다른 레벨들로 표제들을 정의한다
form 입력 폼을 정의한다
textinput(폼의 부분) 폼에 대해 텍스트 입력 필드를 정의한다
select(폼의 부분) 폼에 대해 선택 필드를 정의한다
option(폼의 부분) 폼에 대한 선택 필드내에서 선택권을 정의한다
image 이미지를 정의한다
logo 로고를 정의한다
menu 메뉴를 정의한다
menuitem(메뉴의 부분) 메뉴내의 하나의 아이템을 정의한다
shopcart 기본적인 쇼핑용 손수레
table 테이블을 정의한다
프로세서(20)에 의해 동작되는 디바이스 식별 엔진(29)은 원격 사용자 디바이스(2) 정보로부터 수신된 요구 메시지의 헤더로부터 디바이스 타입을 식별하는 정보를 추출하여 디바이스 타입 식별자(45)를 출력하는 바, 이 출력은 상기 클래스들의 집합(44)이 상기 정책 객체들(41)로부터 요구 정보를 추출할 수 있도록 하기 위해 상기 코드 발생 엔진(21)에 입력된다.
부록 1에 문서의 예가 주어지며, 이 문서의 예에는 상기 코드 발생 엔진(21)에 의해 실행되는 마크업 언어로 상기 컨텐트 코드(23)를 구성하도록 태그들(43)을 포함하는 명령들(42)의 세트가 포함된다. 예를 들어 라인(2)에서, 태그 <vt:canvas>는 생성될 웹 페이지에 대한 주제 및 배치를 정의하는 데에 이용된다. (두번째 라인과 마지막 라인에서 발생하는) 개/폐 캔버스 태그들 사이에는 커스텀 태그들(43)을 이용하여 또한 구현될 수 있는 구성요소들의 목록이 있다. 상기 구성요소들은 배치에서 패인들을 나타내며, 용어 "패인(pane)"은 웹 페이지가 상기 사용자 디바이스(2)에서 사용자를 표시할 때 디스플레이 화면이 분할되는 (일반적으로) 일련의 직교 영역들 중 하나를 나타내는데 이용된다. 패인들 및 그들의 상대적인 위치들의 수집은 페이지에 대한 배치를 정의한다. 상기 구성요소들은 표시된 페이지에서 소정의 구성요소의 출력이 나타나는지를 정의하는데 즉, 상기 웹 페이지가 예를 들어 제한된 화면 크기를 갖는 사용자 디바이스에 디스플레이될 때 소정의 구성요소가 표시되는지 여부를 결정하는데 이용될 수 있다. 이러한 방식으로, 배치도들은 어떤 디바이스 타입들의 디스플레이 화면에 나타나는 정보의 양을 제한하는데 이용될 수 있다.
도 5a는 예를 들어 PC에 디스플레이하기 위한 패인들(50)의 전형적인 배치도를 예시하며, 로고, 대형 컬러 로고, 사이트 메뉴, 인사말, 제 1,제 2 및 제 3 판촉물 및 계속적인 새 정보를 제공하는 새로운 티커(tiker)를 각각 포함하는 패인들을 포함한다.
텔레비전 화면에 디스플레이하기 위해 발생된 동일한 컨텐트 문서에 대응하는 배치도가 도 5b에 도시되며, 대형 컬러 로고, 인사말, 판촉물 메뉴, 사이트 메뉴 및 사진을 각각 포함하는 감소된 수의 패인들로 구성된다.
도 5c는 PDA에 맞게 조정될 때 동일한 컨텐트 문서에 기초하여 발생된 코드로부터 생긴 대응하는 표시 화면을 예시한다. 패인들의 수는 상기 PDA의 제한된 성능들을 만족시키기 위해 코드 발생 동안 현저하게 감소되며, 중형 흑백 로고, 인사말, 판촉물 메뉴 및 사이트 메뉴를 각각 포함하는 패인들을 포함한다.
도 5d는 WAP 전화에 맞게 조정될 때 동일 문서에 기초하여 코드 발생으로부터 생기는 배치도를 예시한다. 단일 웹 페이지 대신에, 컨텐트는 종종 덱(decks)이라 불리는 한 세트의 조각들(fragments)로 감소되며, 각각은 메뉴 덱(50)을 통해 접속할 수 있는 단일 패인을 포함하며, 덱들의 세트는 판촉물(1, 2 및 3) 각각에 대한 단일 패인 덱들(51, 52 및 53)을 더 포함한다. "덱"은 무선 디바이스에 정보가 전송되는 단위(units)를 나타내기 위해 WAP 표준들에 이용되는 용어이다.
부록 2는 디바이스 타입이 HTML 프로토콜을 이용하는 브라우저를 갖는 PC에 대응하는 부록 1의 컨텐트 코드를 이용하여 발생된 웹 페이지 코드를 예시한다.
부록 3은 WML 프로토콜을 이용하는 WAP 성능들을 갖는 전화에 대응하는 디바이스 타입에 출력될 때 발생되는 대응하는 코드를 예시한다. 부록 3은 상기 발생된 코드에 포함된 한 세트의 덱들 중 오직 하나의 덱을 포함하며, 사용자는 웹 페이지 정보의 다수의 일련의 디스플레이들을 차례로 보기 위해 일련의 덱들을 선택하도록 요구된다. 예를 들어, 도 5d에 덱들에 있는 응답 메시지 코드의 조각이 예시된다.
부록 4는 상기 WAP 전화에 대한 WML 코드로부터 생기는 추가의 덱을 예시하며, 이 때 상기 덱은 사용자에 의해 일련의 덱들에서 보여질 수 있는 스토리(story) 목록을 포함한다는 점에서 도 5d의 메뉴 덱(50)에 대응한다.
부록 5는 상기 스토리들 중 하나에 대해 생성된 덱을 예시한다.
상기 실시예에 있어서, 상기 코드 발생 엔진(21)은 동일 컨텐트 코드(23)가 서로 다른 디바이스 타입들에 대응하는 근본적으로 서로 다른 웹 페이지 코드 출력을 생성하도록 처리할 수 있다. 제 1 디바이스 타입은 부록 2의 코드를 발생하며, 더 낮은 성능들을 갖는 제 2 디바이스 타입은 부록 3, 4 및 5의 코드를 발생한다.
도 5e 및 5f는 2개의 서로 다른 원격 사용자 디바이스(2)에 대한 서로 다른 배치도 정의들의 제공이 웹 페이지의 전체 컨텐트로 하여금 다른 성능들을 갖는 디바이스들에 전달될 수 있도록 하는 방식을 예시한다.
도 5e에서, 대형 화면을 갖는 디바이스에 대한 배치도는 단일 화면에 전체 컨텐트를 디스플레이하는 효과가 있으며, 상기 컨텐트의 부분들은 각각의 패인들(A, B, C, D, E 및 F)에 포함된다. 소형 화면을 갖는 디바이스용으로 포맷된 경우, 상기 패인들(A, B, C, D, E 및 F) 중 오직 하나만이 소정의 시간에 디스플레이되며, 이로써 상기 컨텐트는 도 5f에 예시된 조각들(A, B, C, D, E 및 F)로 분할된다. 조각(A)은 루트(root) 조각으로서 지정되며, 잔여 조각들은 이 루트 조각을 통해 하나의 메뉴를 이용하여 접속될 수 있다.
소형 화면 성능을 갖는 디바이스의 경우, 상기 조각은 재구축되어야 하거나 상기 컨텐트가 서로 다르게 표현되어 그 결과 예를 들어 텍스트를 포함하고 있는 소정의 조각의 전체 컨텐트들을 보기 위해 사용자가 텍스트를 통해 스크롤(scroll)하는 것이 필요할 수 있다.
도 5g 및 5h에 예시된 바와 같이 다중-메뉴 구조가 대안적으로 이용될 수 있다. 패인들에 의하여 상기 배치도를 정의하는 대신에, 상기 배치도는 디스플레이의 영역을 정의하는 일련의 세그먼트들에 의하여 정의되며, 제어 세그먼트들 또는 컨텐트 세그먼트들로서 지정된다. 도 5g에서, 제어 세그먼트(55)는 사용자가 선택할 수 있는 일련의 아이콘들로 구성된 메뉴바(56)를 포함한다.
컨텐트 세그먼트(57)는 디스플레이의 다른 영역을 정의하며, 그 자체는 다른 컨텐트 세그먼트(58)를 포함한다. 컨텐트 세그먼트(57)는 제 2 메뉴바(510)를 포함하는 다른 제어 세그먼트(59)를 더 포함한다.
이 실시예에서, 제 1 메뉴바(56)를 이용한 선택은 도 5h에 도시한 바와 같이 제 2 메뉴바(510) 세트 중 임의의 선택된 메뉴바가 제어 세그먼트(59)내에 디스플레이되게 하며, 메뉴바(510) 각각은 컨텐트 아이템(511)의 각 세트로부터의 선택을 허용한다.
도 5g 및 5h의 실시예는 몽타주(montage) 태그가 컨텐트 세그먼트들 또는 제어 세그먼트들일 수 있는 일련의 세그먼트들에 의하여 페이지 배치도를 정의하는 대안적인 페이지 설명 방법을 예시한다. 이 실시예에 도시된 바와 같이, 컨텐트 세그먼트는 제어 및 컨텐트 세그먼트들 둘다를 포함하는 다른 세그먼트들을 포함할 수 있다.
도 5g는 대형 화면 디바이스에서 볼 수 있는 웹 페이지에 대응한다. 소형 화면 디바이스로 변환될 때, 사용자는 예를 들어 언제든지 단지 하나의 세그먼트만을 볼 수 있으며, 처음에 상기 제 1 제어 세그먼트(55)를 보고, 상기 제 2 메뉴바들(510) 중 하나의 메뉴바의 선택을 허용하고, 후속하여 상기 컨텐트 아이템들(511) 중 하나의 아이템의 선택을 허용한다.
결과로서 생긴 도 5g의 배치도는 HTML의 인라인 프레임들 특성을 이용하여 구현될 수 있다.
상기 도 5a 내지 5h의 실시예들은 사용자 디바이스들의 디스플레이 성능들의 2가지 극단적인 수단을 취한다. 중간 성능의 디바이스들에 대해서, 아마도 2 또는 3의 세그먼트들 또는 패인들을 도시하는 대안적인 배치도들은 적절할 수 있다. 그것은 또한 디바이스의 성능에 따른 각각의 패인 또는 세그먼트내의 컨텐트를 수정하는기에 적절할 수 있다. 예를 들어, PC는 일반적으로 컬러를 포함하고 이미지들 을 이동시키는 더 높은 표준의 이미지 표현을 할 수 있는 반면, WAP 전화는 컬러 기능을 갖지 않으며, 화면 해상도 및 재생율을 제한할 수 있다. 이는 각각의 패인 또는 세그먼트에 대해 컨텐트는 서로 다른 디바이스들에 적절한 다수의 서로 다른 형태들로 저장되어야 함을 요구한다.
정책 테이블들(40)은 디바이스 정책 테이블(30)의 계층 구조를 도시하는 도 6의 실시예에 대해 예시된 구조와 같은 계층 구조를 가지도록 각각 구성된다. 개념적인 루트 디바이스 타입의 특성은 상기 계층 구조의 상위 레벨(61)을 정의한다. 이 루트 타입은 상기 디바이스 정책 테이블(30)에 대한 디폴트 값을 표시하는 것으로 생각될 수 있다. 제 2 계층(62)은 다수의 특징들에서 상기 루트 디바이스 타입과 다른 디바이스 타입들을 정의한다. 따라서, 상기 디바이스 정책 테이블은 상기 루트 디바이스 타입을 설명하는 파라미터들이 계승되지 않는 그들의 필드들에 대해 엔트리들(행들)을 포함할 것이다. 상기 계층 구조의 제 3 계층(63)은 제 1 계층의 일반적인 디바이스 타입들의 세분된 것을 포함하며, 예를 들어, 다수의 서로 다른 PDA 디바이스 타입들이 예시된다. 이 디바이스 타입들 각각은 상기 제 1 계층의 PDA의 성능을 설명하는 많은 파라미터들을 계승할 것이지만, 많은 점에서 서로 다를 것이며, 이로써 계승되지 않는 파라미터들을 포함하는 그들의 필드들에 대해 상기 디바이스 정책 테이블의 각각의 행들에 엔트리들을 요구한다.
상기 계층 구조의 후속 계층들(64 및 65)은 디바이스 타입의 다른 세분된 것을 정의한다.
디바이스 식별자(45)는 이 계층 트리(tree)의 노드를 식별할 것이고, 이후 상기 디바이스 타입과 관련된 완전한 세트의 속성들은 상기 노드로부터 연속적인 계층들을 통해 상기 상위 계층(61)에 정의된 상기 루트 디바이스 타입으로 상기 계층 구조에 의해 정의된 상기 트리를 가로지름으로써 획득될 수 있고, 각각의 계층에서 다른 계승된 속성들을 획득한다.
이러한 계층 구조에서 상기 정책 테이블들(40)의 각각을 구성하는 장점은, 추가 디바이스 타입에 대한 데이터를 포함하기 위해 상기 정책 테이블들(40)을 확장하는 것이 요구될 때, 이것은 상기 계층 트리 구조에 새로운 노드를 삽입하여 이 새로운 노드와 인접 상위 계층의 모(parent) 노드로부터의 가지(branch)를 연결함으로써 달성될 수 있다는 점이다. 상기 모 노드는 상기 디바이스 타입이 가장 완전한 세트의 속성들을 계승하는 노드가 되도록 선택된다.
예를 들어 이동 전화가 이미 상기 정책 테이블들(40)에 나타나 있고 상기 이동 전화의 새로운 모델이 이용가능하게 된다면, 정책에 대한 변화들을 요구하는 상기 새로운 모델의 성능들에 있어 임의의 변화는 그들의 필드들에만 값들을 포함하는 각각의 정책 테이블의 새로운 엔트리에 대응하는 최소량의 데이터에 의해 나타낼 수 있으며, 이에 대한 속성들은 상기 계층 구조의 기존 노드에 의해 나타낸 이동 전화의 기존 모델로부터 계승되지 않는다.
추가 디바이스 타입들을 포함하도록 상기 정책 테이블들(40)을 갱신하기 위한 정보는 도 1에 도시된 서비스 센터(5)에 의해 제공되어, 예를 들어 인터넷(3)을 통해 웹 서버(1)에 전송된다. 이후, 상기 정책 테이블들(40)을 포함하는 상기 디바이스-종속 정보(25)는 데이터 관리기(190), 도 2에 개략적으로 도시된 상기 웹 서버(1)의 소프트웨어 모듈의 동작에 의해 갱신될 수 있다. 일반적으로 이 과정은 상기 웹 서버(1)의 정상 동작 및 코드 발생 엔진(21)의 동작 동안 착수될 수 있다. 갱신된 상기 정책 테이블들(40)에 응답하여, 상기 정책 객체들(41)은 자동적으로 그들 자신을 갱신하며, 그들의 흐름을 관리하는 것은 상기 코드 발생 엔진(21)의 동작 환경(46)에서 이용한다. 이 활동은 상기 코드 발생 엔진(21)에 의해 일반적으로 발생되는 임의의 웹 페이지 코드를 분열시키지 않도록 조정된다.
도 7은 바람직한 실시예에서 상기 웹 서버에 제공된 소프트웨어의 예를 예시한다. 상기 소프트웨어는 정책 테이블들(40)의 집합 및 태그들의 집합(70)을 포함함으로써, 상기 태그들을 구현하는 컨텐트 및 코드 즉, 각각의 태그가 상기 코드 발생 엔진(21)의 동작 환경에서 이용될 때 구동하는 프로그램 코드를 만들 수 있도록 하기 위해 필요한 정보를 제공하는 두 태그 정의들을 포함한다.
상기 웹 서버에 제공되는 아이템들 중에는 코드 발생 엔진(21) 및 디바이스 식별 엔진(29)이 있다. 또한 보고(reporting) 엔진(71)이 제공된다. 이 보고 엔진은 프로세서(20)에 의해, 웹 사이트의 사용량 측정과 같은 일을 수행하는 동작을 한다. 이 정보는 예를 들어, 광고의 목적을 위해, 상기 사이트가 이용되는 정도를 증명하는데 이용될 수 있으며, 개인적 마케팅이 상기 사이트의 사용자들을 목표로 삼을 수 있도록 하는데 또한 이용될 수 있다. 예로써, 사용자들의 데이터베이스는 특정 사용자로부터의 요구 메시지에 대한 응답에 맞게 조정하는데 이용될 수 있어, 응답 메시지는 특정 사용자에게 흥미가 있다고 등록된 제품에 대한 특가 제공을 포함하는 추가 페이지를 포함한다.
상기 소프트웨어는 원격 사용자 디바이스들(2)의 사용자들에 의한 웹사이트의 사용에 응답하여 발생할 수 있는 송장작성 및 구매 주문과 같은 일상적인 활동들과 통신하는 통합 엔진(72)을 더 포함한다.
상기 소프트웨어는 동작을 제어하기 위해, 오류들이 검출되도록 하기 위해, 그리고 그에 따라 리소스들이 제어되도록 하기 위해 전체 시스템을 관리하는 동작 관리기(73)를 더 포함한다.
도 4를 참조하여 상기 설명된 바와 같이 시동에서 정책 객체들의 생성을 위한 프로그램(74)이 또한 제공된다.
상기 디바이스 식별 엔진(29)은 상기 설명된 바와 같이 또한 제공된다.
또한, 웹 어플리케이션(75)은 요구된 웹 페이지를 식별하고 상기 코드 발생 엔진(21)에 중요한 컨텐트 코드(23)의 적절한 문서를 선택하기 위해 수신된 URL 요구를 처리한다.
도 8은 소형 내지 중형 크기의 웹 서버로 본 발명을 실시하는데 요구되는 전형적인 하드웨어를 개략적으로 예시한다. 휴대용 저장 매체(81)로부터 도 7에서 살핀바와 같은 프로그램들을 수신하는 기능들을 갖는 개인용 컴퓨터(80)가 방화벽(82)을 통해 라우터(83)에 연결된다. 상기 라우터(83)는 고 대역폭 전용 회선(84)을 통해, 인터넷(3)과의 접속을 위한 인터넷 서비스 공급자(85)에 연결한다.
상기 웹 서버(1)를 동작시키는데 요구되는 프로그램들 및 데이터는 상기 휴대용 저장 매체(81)의 형태로 또는 대안적으로 인터넷(3)과 같은 네트워크를 통해 통신되는 신호들(86)로서 상기 서비스 센터(5)로부터 통신될 수 있다.
도 9에 개략적으로 예시된 바와 같이, 상기 설명된 웹 서버 및 소프트웨어 구성은 컨텐트 코드(23)가 프리젠테이션 정보(90)와 개별적으로 저장되도록 하여, 상기 시스템에 의해 요구 메시지(91)가 수신될 때, 상기 코드 발생 엔진(21)은 컨텐트 코드와 프리젠테이션 정보의 결합을 나타내는 새로 발생된 웹 페이지 코드를 포함하는 응답 메시지(92)를 동적으로 발생할 수 있다. 이러한 구성의 특정한 장점은 예를 들어, 상기 프리젠테이션 정보(90)를 간단하게 갱신함으로써 양식과 같은 프리젠테이션 정보 및 로고들을 포함하는 주제들을 변경하기가 비교적 쉽다는 점이다. 이로써, 생성된 코드에 대한 대폭적인 재설계를 피할 수 있. 개별 스토리지가 동일한 하드 디스크상의 개별 파일들의 위치 또는 물리적으로 별개인 메모리 디바이스들상의 위치를 사용할 수 있다.
상기 프리젠테이션 정보(90)를 갱신하기 위해, 양식 정책 테이블(32), 주제 정책 테이블(33) 또는 배치도 정책 테이블(35)에 포함된 데이터를 변경하는 것이 단지 필요할 수 있다.
도 10은 상기 웹 서버(1)가 중규모 및 대규모 기업의 업무 환경에서 동작하는 바람직한 실시예를 개략적으로 예시한다. 상기 웹 서버(1)는 원격 사용자 디바이스들(2)로부터의 요구 메시지들과 상기 웹 페이지 코드를 포함하는 응답 메시지들의 출력에 응답하여 웹 페이지 정보의 생산을 담당하는 생산 서버(100)를 포함한다. 따라서, 상기 생산 서버(100)는 이전의 도면들에서 상기 웹 서버(1)에 의해 수행되는 바와 같은 기능들을 수행한다. 여기서, 상기 웹 서버(1)는 개발 서버(101)를 더 포함하며, 이 개발 서버(101)는 상기 웹 서버와 상기 서비스 센터(5) 사이의 상호작용 및 새로운 소프트웨어로 상기 생산 서버(100)를 주기적으로 갱신하는 것을 담당한다.
상기 생산 서버(100)와 개발 서버(101) 각각은 상기 설명된 개인용 컴퓨터(80)보다 실질적으로 더 큰 컴퓨팅 전력을 갖는 개별적인 프로세서 클러스터(cluster)를 포함한다.
상기 개발 서버(101)는, 개발을 수행함과 아울러 몇 개의 테스트 레벨이 상기 생산 서버(100)에 새로운 소프트웨어를 다운로드하기 전에 새로운 소프트웨어에 적용될 수 있도록 하는 처리들을 단계화하는 일련의 프로세서들로 간주될 수 있다.
상기 생산 서버(100)에 의해 실행되는 소프트웨어가, 원격 사용자 디바이스(2)의 새로운 타입들의 전개를 고려하고, 또한 웹 페이지들로서 전달될 새로운 컨텐트를 통합하도록 주기적으로 갱신되게끔 하는 것이 필요하다.
도 10에 도시된 바와 같이, 상기 서비스 센터(5)는 중앙 참조 데이터베이스(12)를 유지보수하는바, 갱신된 정책 테이블들과 같은 데이터가 상기 중앙 참조 데이터베이스(12)로부터 상기 개발 서버(101)에 주기적으로 통신된다. 이러한 데이터 통신은 인터넷을 이용하여 일어나고, XML 신택스(syntax)는 HTTP 프로토콜을 이용하여 전송된 데이터를 구축하는데 이용된다. 도 10에 예시된 바와 같이, 상기 개발 서버(101)는 요구 메시지(103)를 출력함으로써 상기 정책 테이블들(40)의 갱신을 주기적으로 요구하고, 응답 메시지(104)에서 요구된 데이터를 수신한다.
응답 메시지(104) 수신시 상기 개발 서버(101)는 새로운 데이터에 대한 테스 트를 수행하는데 이용되며, 예를 들어 적절한 새로운 배치도들을 추가하기 위해 국부적인 조정들을 행하는데 이용될 수도 있다.
테스트 및 수정 후에, 새로운 정책 테이블들이 적절한 방화벽들을 통해 상기 개발 서버(101)로부터 상기 생산 서버(100)로 통신된다.
상기 생산 및 개발 서버들에서 데이터베이스들을 갱신할 때, 일반적으로 상기 데이터베이스의 전체 컨텐트들을 전송할 필요는 없으며, 대신에 상기 XML 신택스의 메타데이터를 동반하는 전송된 HTTP 프로토콜의 데이터를 구성하는 명령들을 편집하는 것에 의존한다.
도 10에 프로브 사이트(105)가 또한 예시되는데, 이는 인터넷(3)을 통해 접속할 수 있고 URL을 갖는 서버를 나타낸다. 이에 대한 기능은 하기에 설명한다. 본 실시예에서, 상기 프로브 사이트(105)의 물리적 위치는 상기 웹 서버(1)의 위치와 별도로 도시되어 있다.
도 11은 상기 생산 서버(100), 프로브 사이트(105) 및 서비스 센터(5)가 첫번째 조우(encounter)에 응답하여 새로운 타입의 원격 사용자 디바이스(2)와 상호작용하는 방식을 개략적으로 예시한다. 새로운 타입의 디바이스(2)는 예를 들어 WAP을 이용하고 소정의 제조업체에 의해 이전의 모델들의 기능들에 대해 갱신된 기능들을 포함하는 예를 들어 대형화된 크기 및 증강된 디스플레이 기능등의 여러 가지 디스플레이 기능을 갖는 이동 전화의 최근 버전일 수 있다.
상기 웹 서버(1)에 의해 제공되는 웹 사이트에 접속하고자 하는 새로운 디바이스(2)의 사용자는 인터넷(3)을 통해 상기 생산 서버(100)의 URL에 출력되는 요구 메시지(110)를 발생시키기 위해 상기 디바이스내의 브라우저 소프트웨어를 작동시킨다.
상기 생산 서버(100)는 상기 요구 메시지(110)를 수신하여 상기 요구 메시지의 HTTP 헤더에 포함된 ID 스트링으로부터 디바이스 타입 식별자를 추출하고자 할 때 도 2에 도시된 디바이스 식별 엔진(29)에 이 메시지를 입력한다. 그러나 상기 디바이스 식별 엔진(29)은 상기 요구 메시지(110)가 알려지지 않은 식별 스트림을 포함하는지를 결정한다. 그러나 상기 생산 서버(100)는 적절한 정책 테이블들이 접속될 수 있게 하기 위해 디바이스 타입 식별자를 필요로 하는바, 도 4에 예시된 바와 같은 디바이스 ID(45)가 상기 코드 발생 엔진(21)으로의 필수적인 입력이 된다.
상기 생산 서버(100)는 새로운 디바이스(2)에 전송되는 방향 변경(redirect) 메시지를 발생시킴으로써 디바이스 식별 엔진(29)에 의한 이러한 결정에 응답하여, 상기 디바이스로 하여금 상기 프로브 사이트(105)의 URL로 상기 요구 메시지(110)의 방향을 바꾸도록 한다. 결과로서, 상기 디바이스(2)에 의해 새로운 요구 메시지(112)가 출력되고 상기 프로브 사이트(105)에 전송된다.
상기 프로브 사이트(105)는 상기 요구 메시지(112)에 포함된 식별 스트링을 분석하여, 상기 디바이스(2)의 통신 프로토콜들 및 성능들에 관한 일부 기본적인 정보를 추출할 수 있다. 이 한정된 정보는 상기 프로브 사이트(105)가 상기 디바이스(2)의 브라우저에 의해 처리될 수 있는 대리인의 형태로 프로브(113)를 발생시킬 수 있도록 하기에 충분하고, 상기 디바이스의 프로세서에 의해 실행될 수 있는 소프트웨어를 구성한다.
상기 프로브(113)는 추가 메시지(114)로 상기 디바이스(2)에 전송되며, 이 메시지의 수신시 상기 디바이스의 브라우저는 사용자에게 표준 응답 웹 페이지를 디스플레이하고 배경(background)에서 상기 프로브를 처리한다.
상기 프로브(113)는 상기 디바이스(2)로 하여금 추가 요구 메시지(115)를 발생시키도록 하며, 이 메시지(115)는 상기 프로브 사이트(105)로 보내지고, 상기 프로브에 의해 요구된 정보에 따라 상기 디바이스(2)와 관련한 성능들 및 프로토콜들의 더 상세한 정보를 포함한다.
상기 프로브 사이트(105)는 상기 디바이스(2)에 전송되는 추가 방향 변경 메시지(116)에 응답하여, 상기 디바이스에게 상기 생산 서버(100)로 요구 메시지(110)의 방향을 변경하도록 지시한다. 상기 디바이스(2)는 이 방향 변경을 따르고 추가 요구 메시지(117)를 출력한다.
상기 방향 변경 메시지(116)를 출력하는 동시에, 상기 프로브 사이트(105)는 서비스 센터(5)에 통지 메시지(118)를 전송하여, 새로운 디바이스(2)가 존재함을 상기 서비스 센터에 알리고 상기 프로브(113)의 사용에 의해 메시지(115)에서 검색된 정보를 전송한다.
상기 서비스 센터(5)는 나중에 사용하기 위해 검색된 정보를 저장하고, 상기 정보를 처리하여 상기 생산 서버(100)에 전송되는 일시적인 갱신 메시지(119)를 발생시키고, 코드 발생 엔진(21)이 상기 디바이스(2)의 사용자에 의해 요구된 웹 페이지 코드를 발생시킬 수 있도록 하기 위해 디바이스 식별자를 포함한다. 이후, 상기 웹 페이지 코드는 최종 응답 메시지(120)에서 사용자에게 전송된다.
상기 서비스 센터(5)에 의해 발생된 상기 일시적인 갱신 메시지(119)는 상기 생산 서버(100)에 최근의 적절한 기존 디바이스 타입 식별자를 제공한다. 따라서, 발생된 상기 웹 페이지 코드는 상기 새로운 디바이스(2)에 완전히 적합한 것이 아닌 경우가 있지만 일반적으로는 예를 들어 상기 디바이스가 브라우저의 디폴트 설정을 이용하여 해석 및 디스플레이할 수 있다.
이후, 상기 서비스 센터(5)는 수정된 정책 테이블들을 포함하는 적절한 정보로 중앙 기준 데이터베이스(102)를 갱신할 것을 요구받는다. 이후, 이 정보는 최종적으로 상기 생산 서버(100)의 데이터베이스를 갱신하는데 이용되는, 상기 개발 서버(101)와 통신되는 후속 갱신에 포함될 수 있다.
이러한 방식으로, 상기 시스템은 인터넷을 통해 웹 사이트들에 접속하는 새로운 디바이스들의 발전에 대해 상기 새로운 디바이스들의 제조업체들에 의한 사전 통보 및 상세한 기술적 데이터의 제조업체들에 의한 직접 공급을 제공할 필요없이 계속하여 반응하고 순응할 수 있다. 선택적으로, 상기 서비스 센터(5)는 상기 제조업체와 교신함으로써 이러한 데이터를 요구할 수 있지만, 이는 만족스런 동작을 얻기 위해 필수적일 필요는 없다.
도 12는 상기 웹 서버(1)가 캐시 메모리(120)를 구비하는 실시예를 예시한다. 게이트웨이 서버(121)는 원격 사용자 디바이스들(2)로부터 요구 메시지들을 수신하기 위해, 그리고 동적 웹 페이지 서버(123)로부터 상기 웹 페이지 코드의 동적 발생을 요구하거나, 상기 요구된 웹 페이지 코드가 상기 캐시 메모리(120)에서 정적 웹 페이지로서 이미 존재하는 경우, 캐시 메모리로부터 상기 웹 페이지 코드를 검색하여 요구된 웹 페이지 코드(122)를 전송함으로써 응답하기 위해 인터넷(3)과 인터페이스하는 게이트웨이로서 동작한다.
상기 동적 웹 페이지 서버(123)는 수신된 URL 요구로부터 추출된 디바이스 타입 식별자(45) 및 URL에 대응하는 저장된 컨텐트 코드(23)를 이용하여 상기 설명된 방식으로 상기 웹 페이지 코드를 동적으로 발생시키는 기능을 한다.
도 13은 상기 게이트웨이 서버(121)의 프로세서에 의해 수행되는 단계들을 개략적으로 예시한다. 단계(130)에서, 상기 게이트웨이 서버는 상기 URL 요구를 수신하고, 디바이스 타입 ID(45)를 추출하고, 요구된 웹 페이지 코드를 발생시키는데 필요한 명령들을 포함하는 컨텐트 코드(23)의 문서를 식별한다.
단계(131)에서, 상기 게이트웨이 서버(121)는 상기 웹 페이지 코드가 이 디바이스 타입 ID 및 URL에 대해 상기 캐시 메모리(120)에 정적 웹 페이지로서 이미 존재하는지 여부를 질문하고, 이용가능하다면, 단계(132)에서 상기 웹 페이지 코드를 검색한다.
캐시 메모리(120)로부터 이용가능하지 않다면, 단계(133)에서 상기 게이트웨이 서버(121)는 상기 동적 웹 페이지 서버(123)로부터 웹 페이지 코드의 발생을 요구하고 상기 디바이스 타입 ID 및 URL 세부사항을 전송한다.
이에 따라, 단계(134)에서 상기 게이트웨이 서버(121)는 새로 발생된 웹 페이지 코드를 수신한다.
단계(135)에서, 상기 게이트웨이 서버(121)는 인터넷(3)을 통해 상기 원격 사용자 디바이스(2)에 상기 웹 페이지 코드를 출력한다.
도 14는 상기 동적 웹 페이지 서버의 프로세서의 제어하에서 수행되는 단계들을 개략적으로 예시한다. 단계(140)에서, 상기 동적 웹 페이지 서버는 상기 웹 페이지 코드의 발생에 대한 요구를 수신하고, 상기 디바이스 타입 식별자 정보 및 컨텐트 코드(23)의 문서를 식별하는데 요구되는 URL에서 생성된 정보를 또한 수신한다. 상기 요구된 컨텐트 코드(23)는 메모리로부터 검색되고, 코드 발생 엔진(21)의 실행 시간 환경(46)으로 처리되어 단계(142)에서 상기 요구된 웹 페이지 코드를 생성시킨다.
단계(143)에서, 상기 동적 웹 페이지 서버(123)는 상기 컨텐트 코드(23)로부터 상기 결과로서 생긴 웹 페이지 코드가 캐시 메모리(120)에 저장되기에 적합하게 플래그되는지 여부를 결정하고, 만약 그렇다면, 상기 컨텐트 코드로부터 상기 캐시 메모리 버전이 유효한 상태로 있는 주기를 결정한다. 단계(144)에서 이 정보는 메타데이터(metadata)를 생성하는데 이용되며, 이 메타데이터는 상기 웹 페이지 코드를 포함하는 파일에 추가되며, 단계(145)에서 유효 주기 동안 저장되도록 상기 캐시 메모리(120)에 출력된다.
단계(146)에서, 상기 동적 웹 페이지 서버(123)는 상기 설명된 단계(134)에서 수신되도록 상기 게이트웨이 서버(121)에 상기 웹 페이지 코드를 출력한다.
따라서 상기 컨텐트 코드(23)를 작성할 때, 작성자는 결과로 생긴 페이지가 캐시될 수 있는지 여부와 그것이 얼마나 오랫동안 캐시 메모리에서 유효한 채로 있는지를 정의하기 위해 캔버스 태그들에 여분의 속성들을 추가하는 옵션을 갖는다. 상기 캐시 메모리(120)는 유효성이 만료된 임의의 저장된 페이지들에 우선하는 방 식으로 메모리안에 새로운 캐시된 페이지들을 기입한다.
도 12에서, 각 페이지에 대한 각각의 캐시 메모리 제어 데이터(124)와 함께 한 세트의 페이지들의 컨텐트 코드(23)가 개략적으로 표시되며, 상기 제어 데이터는 메모리(120)에 캐시하는 상기 명령들을 결정하기 위해 상기 페이지의 작성자에 의해 설정된다.
코드 발생 엔진(21)에 의한 코드의 발생은 예를 들어 견본(example) 웹 페이지를 발생시키는 컨텐트 코드(23)를 생성시키는데 이용되는 명령들을 나타낸 부록 1을 참조하여 상기에 설명되었다. 전형적으로, 이러한 예에서와 같이, 상기 코드 발생 엔진(21)에 의한 상기 컨텐트 코드(23)의 실행은 컨텐트를 데이터 저장에서 생성되도록 요구할 것이다. 따라서 이미지 파일들과 같은 데이터 객체들이 상기 코드 발생 엔진(21)에 의해 출력되게 되는 웹 페이지 코드에 포함되도록 하기 위해 임포트(import)된다.
상기 웹 페이지의 작성자는 중요한 데이터 객체에 대한 명칭을 가리키기 위해 구성요소를 작성할 수 있다. 상기 데이터 객체의 서로 다른 버전들이 계층적인 데이터 구조에 저장되며, 이러한 서로 다른 계층적인 레벨들은 원격 사용자 디바이스들(2)의 서로 다른 성능들에 대응한다. 상기 컨텐트 코드(23)의 작성자는 도 3에 예시된 구성요소 정책 테이블(37)에 데이터를 기입함으로써 각각의 디바이스 타입 ID(45)에 이용될 적절한 버전을 각각의 객체에 대해 정의할 수 있다. 이후, 상기 구성요소 정책 테이블은 데이터 객체 버전이 각각의 가능한 디바이스 타입 ID에 대해 정의될 수 있도록 하기 위해 도 6a의 계층구조를 따를 것이다. 이러한 방식은 각각의 원격 사용자 디바이스(2)에 이용되도록 상기 데이터 객체의 특정 버전을 타겟화하는 것은 코드의 작성자이기 때문에, 하기에는 타겟화 컨텐트에 관하여 데이터 객체들을 정의하는 것으로 언급하기로 한다.
대안적으로, 데이터 객체의 다수의 버전들에는 각각의 버전에 대해 관련 메타데이터에서 설명되는 데이터 객체의 각각의 버전의 특성들이 계층 형태로 제공될 수 있다. 이후, 도 15에 개략적으로 예시된 구성요소 로직 소프트웨어 모듈(150)을 이용하여 적절한 버전의 자동 선택이 이루어질 수 있다.
상기 구성요소 로직 소프트웨어 모듈(150)은 데이터 객체 메타데이터, 배치도 정책 테이블(35)에 의해 정의된 배치도 고려사항 및 디바이스 정책 테이블(30)에 의해 제공된 디바이스에 관한 정보에 기초하여 적절한 버전을 선택한다. 상기 데이터 객체 버전의 선택에 대한 이러한 방식은 비타겟화 컨텐트 선택으로서 하기에 언급될 것이다.
상기 코드 발생 엔진(21)은 타겟화 컨텐트 또는 비타겟화 컨텐트 선택 중 하나를 이용하여 동작을 행할 수 있다. 대안적으로 그리고 바람직하게는, 상기 코드 발생 엔진(21)은 타겟화 컨텐트 선택과 비타겟화 컨텐트 선택 둘 다를 선택적으로 이용할 수 있으며, 이로써 데이터 객체 버전들을 정의하거나 상기 구성요소 로직 소프트웨어 모듈(150)을 이용하여 선택을 자동적으로 처리되게 하기 위해 상기 컨텐트 코드(23)를 작성할 때 작성자에게 자유를 제공한다.
도 16은 타겟화 컨텐트 및 비타겟화 컨텐트 둘다가 이용될 수 있는 방식을 개략적으로 예시한다. 단계(160)에서, 컨텐트 코드(23)는 상기 디바이스 타입 ID(45)와 함께 상기 코드 발생 엔진(21)에 입력되고, 단계(161)에서 상기 코드의 처리가 시작된다.
데이터 객체가 임포트되어야 함을 요구하는 상기 컨텐트 코드(23)의 구성요소의 각각의 예에서, 상기 코드 발생 엔진(21)은 단계(162)에서 상기 데이터 객체의 작성자 정의 버전을 임포트하는 것을 시도한다. 만일 단계(163)에서 작성자 정의 버전이 존재하고 그리고 이것이 성공적으로 임포트된 경우, 임의의 다른 데이터 객체들이 임포트될 상태로 있는지 여부를 결정하는 단계(164)로 처리가 진행된다.
그러나, 단계(163)에서 임의의 작성자 정의 버전을 성공적으로 임포트하기가 가능하지 않다면, 처리는 적절한 객체 버전을 식별하기 위해 구성요소 로직 소프트웨어 모듈의 동작을 요구하는 단계(165)로 진행된다. 단계(165)에서, 선택된 데이터 객체 버전이 임포트되고 코드 발생 처리가 진행된다. 단계(164)에서 어떤 추가 데이터 객체들도 임포트되지 않는 것으로 결정될 때, 웹 페이지 코드를 발생시키기 위한 나머지 처리는 단계(167)에서 완료되고, 단계(168)에서 완료된 웹 페이지 코드가 출력된다.
도 17은 구성요소 로직 소프트웨어 모듈(150)이 적절한 데이터 객체 버전을 자동적으로 선택하도록 하기 위해 데이터베이스(19)에 저장된 데이터 객체들이 계층적인 데이터 구조에 저장되는 방식을 개략적으로 예시한다.
예를 들어 작성자가 개인용 컴퓨터의 형태의 사용자 디바이스의 화면의 정의된 영역에서 비디오 클립이 디스플레이되는 웹 페이지를 설계하는 경우, 상기 비디오 클립은 비디오 데이터 객체(170)로서 상기 데이터베이스(19)에 저장되며, 관련 구성요소 명칭(171)은 코드 발생 엔진(21)으로 하여금 명칭에 의해 상기 비디오 데이터 객체(170)를 참조하도록 고안된다. 상기 비디오 데이터 객체(170)는 데이터 객체와 관련하여 저장된 메타데이터(172)에 의해 특징지어지고, 상기 구성요소 로직 소프트웨어 모듈(150)이 디바이스 타입 식별자(45)에 의해 정의된 소정의 사용자 디바이스(2)가 데이터 객체로부터의 비디오 클립을 수신 및 디스플레이할 수 있는지 여부에 관해 결정하기에 충분한 데이터 필드들을 포함한다.
작성자는 도 17에 도시된 바와 같이, 각각의 메타데이터를 각각 동반하는 서로 다른 디바이스 타입들에 의해 사용하기에 적절한 비디오 데이터 객체의 서로 다른 버전을 더 저장할 수 있다.
작성자는 메타데이터(174)와 관련하여 포토그래픽 이미지 데이터 객체(173)를 상기 데이터베이스에 더 저장한다. 유사하게, 상기 작성자는 서로 다른 디바이스 타입들에 적절한 속성들을 가지며 각각의 메타데이터를 동반하는 관련 포토그래픽이미지 데이터 객체들(173)의 세트를 저장할 수 있다. 상기 구성요소 로직 소프트웨어 모듈(150)이 상기 메타데이터로부터 상기 비디오 데이터 객체들의 어떤 것도 웹 페이지 코드가 현재 준비되고 있는 사용자 디바이스에 의해 디스플레이될 수 없는지를 결정하는 경우, 상기 포토그래픽 이미지는 정적 포토그래픽 이미지가 상기 비디오 클립의 위치에 있도록 해주는 예전의 위치(fall back position)를 나타낸다. 따라서 상기 포토그래픽 이미지는 일반적으로 관련 주제를 디스플레이할 것이고, 예를 들어 비디오 클립으로부터 취한 스틸 사진을 포함할 수 있다.
또한 상기 작성자는 상기 데이터베이스안에 관련 메타데이터(176)를 갖는 그래픽 이미지 데이터 객체(175)를 기입할 수 있다. 유사하게, 상기 작성자는 서로 다른 디바이스 타입들에 적합한, 각각의 메타데이터를 갖는 관련 그래픽 이미지 데이터 객체들의 세트를 기입할 수 있다. 상기 그래픽 이미지는 적절한 버전의 포토그래픽 이미지가 이용가능하지 않은 경우 사용하기 위해 추가의 예전의 위치를 구성한다.
상기 작성자는 또한 관련 메타데이터(178)를 갖는 간단한 텍스트 객체들(177)과 같은 추가적인 예전의 위치를 기입할 수 있다. 텍스트 데이터 객체(177)는 상기 구성요소 로직 소프트웨어 모듈(150)이 어떤 그래픽 이미지(175)도 상기 사용자 디바이스(2)에 의해 표현될 수 없다고 결정하는 상황에 대한 최종적인 예전 상황을 표현한다.
상기 데이터 객체들(170, 173, 175 및 177)은 도 17에 개략적으로 예시된 계층적인 데이터 구조에서 상기 데이터베이스(19)에 저장되며, 도 17에서 계층 구조의 서로 다른 레벨들은 사용자 디바이스 성능의 레벨들에 대응한다. 이 실시예에서 상기 텍스트 데이터 객체(177)는 사용자 디바이스(2)의 성능의 최하위 레벨을 표시하고, 따라서 최종적인 예전의 위치를 표시하는 계층구조의 루트 레벨이다.
예를 들어 상기 사용자 디바이스(2)가 개인용 컴퓨터인 디바이스 타입 식별자(45)에 의해 식별될 경우, 상기 구성요소 로직 소프트웨어 모듈(150)은 데이터 객체(170)를 선택할 것이다. 상기 사용자 디바이스(2)가 비디오 클립들을 표현하는 성능은 없지만 포토그래픽 이미지들을 표현하는 성능을 갖는 포켓 PC로 식별된 경 우, 상기 구성요소 로직 소프트웨어 모듈(150)은 데이터 객체(173)를 선택할 것이다. 상기 사용자 디바이스(2)가 WAP 기능을 구비한 이동 전화인 것으로 식별된 경우, 상기 모듈(150)은 그래픽 이미지 데이터 객체(175)를 선택할 것이다. 그러나 상기 사용자 디바이스(2)가 WAP 기능을 구비하지 않은 통상적인 이동 전화로서 식별되면, 텍스트 데이터 객체(177)는 선택될 것이다.
계층적인 데이터 구조는 적절한 데이터 객체들이 예를 들어 어떤 종류의 링크를 정의하는 웹 페이지 코드의 경우에서 처럼 선택될 수 있도록 해주기 위해서 데이터 객체의 다른 타입들에 적용한다. 상기 링크는 HTML 링크, WML 링크, 이메일 링크 또는 간단하게는 이동 전화인 상기 사용자 디바이스(2)의 경우에 자동 다이얼 연결을 위한 전화 번호를 포함할 수 있다.
동일한 구성요소명을 이용하여 접속될 수 있는 데이터 객체들의 다른 예는 자바스크립트 및 WML 스크립트와 같은 스크립트 구성요소들의 그것이며, 여기서 동일한 컨텐트는 서로 다른 디바이스들에 사용하기 위한 적절한 스크립트로 기입될 수 있다. 따라서, 상기 작성자는 도 17의 계층 구조에서 저장을 위해 그리고 구성요소명에 응답하여 검색하기 위해 다양한 요구된 스크립트 언어들로 데이터 객체들을 기입할 수 있다. 이전의 실시예들에서와 같이, 디바이스 정책 테이블을 참조하여 디바이스 ID(45)를 이용함으로써 결정되는 바와 같이, 상기 원격 사용자 디바이스(2)의 성능에 기초하여 각각의 데이터 객체를 동반하는 메타데이터에 기초하여 선택될 수 있다.
상기 계층적인 데이터 구조들의 이용은 시스템에 대한 자산 관리의 효율적인 방법을 제공하며, 상기 자산들은 상기 시스템에 의해 웹 페이지 코드 형태로 전달될 수 있는 데이터 객체들의 모음을 포함한다.
도 18은 텍스트 형태의 데이터가 서로 다른 버전의 텍스트가 사용자 디바이스(2)의 성능들 및 사용자의 선호도에 적합하도록 검색될 수 있게 하기 위해서 계층적인 데이터 구조에 저장될 수 있는 방식을 예시한다. 문서 객체의 영어로 된 전체 텍스트는 예를 들어 PC의 화면상에 디스플레이하기에 적합한 박스(box) GB TEXT 1에 저장된다. 작성자에 의해 편집된 텍스트의 축소된 버전은 축소된 화면 크기의 팜(palm)의 휴대용 컴퓨터상에 디스플레이하기에 적합한 데이터 객체 GB TEXT 2로서 저장된다. 제한된 메모리의 휴대용 디바이스에서 디스플레이하기에 적합한 데이터 객체 GB TEXT 3에 편집된 텍스트의 더 작은 스틸 사진 버전이 저장되고, 최종적으로 GB TEXT 4는 이동 전화에서 디스플레이하기 위해 최소 텍스트 버전을 포함한다.
이 텍스트 버전들 각각은 영어로 되어 있다. 불어로 된 대응하는 텍스트 객체들은 FR TEXT 1, FR TEXT 2, FR TEXT 3 및 FR TEXT 4에 포함된다. 유사하게, 독일어로 된 텍스트를 포함하는 데이터 객체들은 DE TEXT 1, DE TEXT 2, DE TEXT 3 및 DE TEXT 4에 포함된다.
상기 데이터 객체들은 구성요소명(171)과, 이 실시예에 있어서, 요구되는 텍스트 버전이 영어 텍스트 버전인지, 불어 텍스트 버전인지, 또는 독일어 텍스트 버전인지를 나타내는 언어 식별자(180)에 의해 어드레스 지정된다.
상기 언어 식별자는 디바이스 ID(45)에 추가하여 코드 발생 엔진에 입력되 며, 전형적으로 사용자에 의한 사용자 선호도의 입력에 응답하여 원격 사용자 디바이스(2)의 브라우저에 의해 발생된 요구 메시지의 보디(body)로부터 추출된다. GB TEXT 1과 같은 텍스트 데이터 객체들 각각은 특히 텍스트를 표시하는 코드의 크기를 포함하는 상기 객체의 관련 파라미터들을 나타내는 메타데이터(MD)(181)와 관계시킨다. 이로써, 소정의 객체가 소정의 원격 사용자 단말기에 대한 검색에 적절한지 여부에 관한 메타데이터(MD)(181)에 의해 표시된 코드의 크기에 기초하여 결정될 수 있다. 이로써, 적절한 데이터 객체가 위치될 때까지 최적의 데이터 객체는 도 18의 계층적인 트리 구조를 가로지름으로써 선택될 수 있다.
도 19는 코드 발생 엔진(21)에 의해 생성된 출력을 수정하기 위해 패인 분할기(190)가 제공되는 다른 실시예를 예시한다. 이러한 구성은 원격 사용자 디바이스(2)의 이용가능한 메모리 성능보다 더 큰 코드의 양을 포함하는 응답 메시지의 전송을 방지하는데 장점이 있다. 이동 전화와 같은 소형 메모리 디바이스들의 경우, 이용가능한 성능의 초과적재는 상기 디바이스의 마이크로프로세서로 하여금 충돌하거나 정체 상황에 빠지게 할 수 있다. 비록 이러한 디바이스들로부터의 질문들에 응답하여 제공될 컨텐트의 작성자가 디바이스의 제한된 메모리 성능에 주목한다 하더라도, 실제로 코드 발생 엔진(21)으로부터 출력될 코드의 실제량을 확실하게 예측하기가 어렵기 때문에, 그 해결책은 유출 코드를 막아서 코드량을 측정하기 위해 상기 코드 발생 엔진(21)의 아래의 상기 패인 분할기(190)와 같은 디바이스를 추가적으로 위치시키는 것이다.
상기 코드량이 상기 사용자 디바이스(2)의 표시된 이용가능한 데이터 성능을 초과하는 경우, 상기 분할기(190)는 문서를 본원에서는 파편들(shards)로 참조된 다수의 조각들로 자동적으로 분리하거나 분할하도록 구성된다.
도 19에 예시된 바와 같이, 상기 패인 분할기(190)는 디바이스 식별 엔진(29)으로부터 디바이스 타입 식별자(45)를 수신하고, 상기 디바이스 타입 식별자로부터 사용자 디바이스(2)의 이용가능한 메모리 성능을 결정하기 위해 디바이스 정책 테이블에 어드레스 지정한다.
패인의 분할이 적절하다면, 결과로서 생긴 파편들 중 첫번째 파편은 프론트 엔드 프로세서(190)에 의해 출력되며, 나머지 파편들은 버퍼 메모리(191)에 저장된다. 이후, 상기 프론트 엔드 프로세서(190)는 각각의 응답 메시지들로 상기 나머지 파편들을 차례로 공급함으로써 상기 사용자 디바이스(2)로부터 후속하는 요구들에 대응할 수 있다.
도 20은 패인의 분할 처리를 개략적으로 예시하며, 문맥상 용어 패인은 원격 사용자 디바이스(2)에 전송시킬 웹 페이지를 나타내는 이용된다.
단계(200)에서, 상기 패인을 표시하는 코드는 상기 디바이스 타입 식별자(45) 및 인터넷(3)을 통해 수신된 요구 메시지의 성질에 기초하여 코드 발생 엔진(21)에 의해 발생된다.
단계(201)에서, 상기 코드 발생 엔진(21)으로부터 출력된 코드는 수신되어 상기 패인 분할기(190)에 의해 측정되며, 단계(202)에서, 상기 패인 분할기는 상기 원격 사용자 디바이스(2)의 데이터 성능을 알아보기 위해 디바이스 정책 테이블에 접속한다.
단계(203)에서, 상기 패인 분할기(190)는 코드의 양이 상기 원격 사용자 단말기(2)의 데이터 성능보다 작거나 같은지 여부를 결정하며, 만약 그렇다면, 단계(204)에서 어떤 분할 단계도 수행하지 않고 상기 코드를 출력한다.
그러나 상기 코드의 양이 상기 이용가능한 데이터 성능보다 더 큰 경우, 단계(205)에서 상기 분할기는 상기 코드를 다수의 파편들로 분할하며, 각각의 파편은 상기 이용가능한 데이터 성능보다 작은 코드의 양을 갖는다. 단계(206)에서, 분할된 패인의 파편들은 버퍼 메모리(191)에 저장된다. 단계(207)에서, 상기 파편들 중 하나는 상기 원격 사용자 디바이스(2)로의 응답 메시지에 포함하기 위해 상기 서버로 출력된다.
도 21은 파편들(211 내지 216)을 형성하기 위해 부분들(A, B, C, D, E 및 F)로 분할된 하나의 패인(210)을 예시하며, 상기 파편들 각각은 버퍼 메모리(191)에 개별적으로 저장되고, 상기 원격 사용자 디바이스(2)에 개별적인 응답 메시지로 전송될 수 있다.
도 22는 서버와 사용자 디바이스(2) 사이의 메시지들이 상기 사용자 디바이스의 제한된 데이터 성능을 고려하여 조각으로 나누어지는 상황하에서 사용자 세션을 정의하는 정보를 저장하기 위한 사용자 세션 메모리(220)로서 하기에 참조되는 추가적인 메모리의 이용을 예시한다.
이러한 구성이 적절한 전형적인 실시예는 폼 기입 연습(form filling exercise)이 사용자 세션에서 완료될 때이다. 개인용 컴퓨터와 같은 고성능 디바이스들에 대해서, 폼이 단일 화면으로 사용자에게 제공되도록 하는 것과 상기 폼을 사용자가 채우도록 하기 위한 다중 필드들을 포함하는 것은 흔한 것이다.
예를 들어, 도 23에서, 폼(230)은 다중 데이터 필드들(231)을 정의한다. 제한된 성능의 디바이스(2)에 대해, 상기 폼을 다수의 조각들(232 내지 237)로 조각내는 것이 필요할 수 있으며, 다수의 조각들(232 내지 237)은 상기 폼(230)의 부분들(A, B, C, D, E 및 F)을 각각 포함한다.
사용자 세션 동안, 상기 폼(230)은 상기 조각들(232 내지 237) 및 버퍼(191)에 저장된 각각의 조각에 대한 대응하는 코드로 분할된다. 처음에 오직 조각(232)만이 상기 사용자 디바이스(2)에 전송되고, 사용자는 서버(1)에 의해 처리된 응답 메시지에 응답한다. 상기 폼의 부분(A)에 포함된 데이터 필드들에 대응하는 응답은 사용자 세션 메모리(220)에 저장된다. 후속 조각(233)은 상기 사용자 디바이스 및 상기 사용자 세션 메모리에 저장된 대응하는 응답에 전송된다. 이러한 처리는 최종 조각(237)이 전송될 때까지 반복된다. 상기 폼의 조각(F)에 대한 응답은 제출 버튼(submit button)(238)의 시동을 포함한다. 상기 제출 버튼(238)의 시동이 최종 응답 메시지에 포함된다면, 상기 사용자 세션 메모리(220)에서 요구되는 정보는 완전하고, 상기 폼 기입 연습으로부터의 완전한 데이터 세트가 데이터 처리 어플리케이션(239)에 전송된다.
상기 폼이 부분들(A, B, C, D, E 및 F)로 분할되는 방식은 배치도 정책의 부분으로서 작성자에 의해 정의된다.
또한, 상기 사용자 디바이스(2)에 전송된 코드는 폼 기입시에 사용자에 의해 기입된 데이터의 정당화 및 검증을 수행하기 위해 전형적으로 원격 사용자 디바이스(2)의 브라우저를 동작시키는 명령들을 정의하는 스크립트를 포함한다. 상기 스크립트는 폼 기입시에 상기 사용자에 의해 기입된 상기 데이터에 적용되도록 타당성 검토 규칙들의 정의를 포함하는 작성자에 의해 기입된 태그들에 기초하여 코드 발생 엔진(21)에 의해 발생된다.
예를 들어, 데이터 필드가 수치 필드인 것으로 표시되면, 수치 제한들은 타당성 검토 목적을 위해 적용될 수 있다.
상기 스크립트 코드가 상기 코드 발생 엔진(21)에 의해 발생되는 방식은 프로토콜 정책에 의해 표시되는 바와 같이, 원격 사용자 디바이스(2)에 적절한 스크립트 언어의 버전에 따라 달라진다.
다른 실시예에 있어서, 사용자 디바이스(2)는 타당성 검사 규칙들이 상기 디바이스의 프로세서 또는 SIM 카드에 존재하는 소프트웨어에 의해 적용되는 이동 전화와 같은 프로세싱 전력을 제한하는 타입이다. 이 경우에, 상기 사용자 디바이스내의 기존 소프트웨어에 의해 표시된 포맷으로 타당성 검사 파라미터들을 제공하기에 충분하기 때문에, 상기 코드 발생 엔진(21)은 타당성 검사 단계들을 수행하기 위해 상기 디바이스에 전송하기 위한 스크립트를 발생하도록 요구되지 않는다.
양식(style) 시트들을 지원하는 프로토콜을 이용하는 원격 사용자 디바이스(2)에 응답하는 경우, 작성자는 양식 시트가 코드 발생 엔진(21)에 의해 발생되도록 지정할 수 있다. 상기 양식 시트는 다중 페이지들을 거쳐 분배될 수 있다. 이용가능한 프로토콜이 양식 시트들을 지원하지 않는 디바이스들의 경우, 작성자에 의해 정의된 양식 시트 정의를 에뮬레이트(emulate)하는 결과로서 생긴 디스플레이 페이지들에 시각적인 효과를 주기 위해 상기 코드 발생 엔진(21)에 의해 추가 코드가 발생된다.
예를 들어, HTML 4 브라우저들은 수신된 HTML에 양식 시트들을 적용할 수 있는 반면, HTML 3 브라우저들은 이를 적용할 수가 없다. 따라서, HTML 3 브라우저들이 상기 양식 시트에 의해 제공된 것과 동일한 효과를 달성하기 위해 글자, 컬러 및 다른 속성들을 추가하는 추가 HTML 코드를 수신하는 것이 필요하다.
작성자는 양식 시트 정보를 정의할 것을 요구받으며, 코드 발생 엔진(21)은 필요하다면, 양식 시트들이 지원되지 않는 경우 요구되는 추가 코드를 자동적으로 발생시킬 것이다.
일부 사용자 디바이스들은 예를 들어, 시각 장애를 가지고 있는 사용자들에 의해 사용하도록 설계된 디바이스들과 같은 시각적 디스플레이를 제공하지 않는다. 이러한 디바이스들은 통상적으로 서비스 공급자에 의해 제공되는바, 이 서비스 공급자는 상기 서비스 공급자의 컴퓨터상의 음성 브라우저를 호스트하여, HTTP로 수신된 코드를 음성 메시지들을 전달하는 통신 신호들로 변환한다. 따라서, 이러한 서비스 공급자는 상기 실시예들의 서버(1)와 원격 사용자 디바이스(2) 사이에서 매개체로서 작용한다. 이후, 상기 출력 웹 페이지 코드는 voiceXML에서 코드 발생 엔진에 의해 출력될 수 있는 유리한 점을 갖는다.
도 24는 웹 페이지 작성(authoring) 동안 생성된 파일들을 저장할 때 이용되는 그래픽 사용자 인터페이스(4)의 기능들 중 하나를 예시한다. 동일한 배경 이미지 및 텍스트가 서로 다른 포맷들을 요구하는 다수의 서로 다른 디바이스 타입들에 다운로드된 웹 페이지들에 통합되는 공통적인 상황이 발생한다. 적절한 파일들을 발생시키는 일에서 상기 작성자를 돕기 위해 본 발명의 다른 실시예에 따라 데이터 변환기(241)가 제공된다. 도 24에 도시된 바와 같이, 작성 스위트(authoring suite)(240)는 상기 작성 스위트에 의해 출력된 데이터 파일을 데이터 구조에서 파일 관리자(242)의 작용에 의해 저장되는 한 세트의 파일들로 변환하는 데이터 변환기(241)를 구비한다.
도 25는 도 24의 요소들을 동작시키는 방법의 단계들을 예시한다. 단계(250)에서, 상기 데이터 변환기(241)는 상기 작성 스위트(240)로부터 데이터 객체로서 저장될 데이터를 포함하는 파일을 수신한다. 예로서, 이 데이터 파일은 GIF 포맷의 이미지를 포함한다.
단계(251)에서, 상기 데이터 변환기(241)는 데이터의 타입(즉, 이미지든지, 텍스트든지 또는 기타 데이터 타입이든지)을 결정하고, 디바이스 타입 식별자(45)의 값에 따른 코드 발생 엔진(21)의 동작 동안 요구될 수 있는 서로 다른 데이터 포맷들의 목록을 결정하기 위해 상기 디바이스 정책 테이블(30)을 참조한다.
단계(253)에서, 상기 데이터 변환기(241)는 상기 목록의 포맷들 각각에 대해 적절한 포맷과 관련 메타데이터를 갖는 변환된 파일을 발생시킨다. 단계(243)에서, 상기 파일 관리자(242)는 데이터 구조에 상기 파일들을 저장한다.
이 구성은 작성자가 텍스트 및 그래픽 파라미터들을 단지 한번 기입할 수 있도록 해주며, 이후 상기 데이터 변환기 및 파일 관리자는 데이터 객체들로서 저장 및 후속하는 사용을 위해 서로 다른 포맷들로 파일들의 세트들을 발생시키는 일을 시작한다.
상기 설명된 실시예들은 예시적으로 자바를 이용하는 실시를 언급하였다. 자바의 대안들이 본 발명을 실시하는데 이용될 수 있으며, 자바, 자바 빈즈 및 자바 버추얼 머신에 대한 참조는 본 발명의 범위를 한정하는 것으로서 읽어서는 않된다.
본 발명은 웹 서버와 관계하여 컴퓨터에서 동작되는 컴퓨터 프로그램에 의해 실시될 수 있다. 그러므로, 본 발명의 양상은 이전에 설명된 바와 같은 방법을 수행하도록 프로세서를 제어하기 위한 명령들을 실시할 수 있는 프로세서를 저장하는 저장 매체를 제공한다.
또한, 상기 컴퓨터 프로그램은 예를 들어 인터넷과 같은 네트워크를 통해 코드를 다운로드함으로써 전기적인 형태로 획득될 수 있다. 본 발명의 다른 양상에 따르면, 이전에 설명된 바와 같은 방법을 수행하도록 프로세서를 제어하는 명령들을 실시할 수 있는 프로세서를 나르는 전기적 신호가 제공된다.
본 발명은 사설 네트워크들 및 다른 공중 네트워크들을 포함하는 인터넷이 아닌 네트워크들에도 적용할 수 있다.
정책 테이블들, 커스텀 태그들 및 코드 발생 엔진은 개별적으로 또는 소프트웨어 키트(kit)로서 결합하여 소프트웨어 제품들로서 공급될 수 있으며, 저장 매체 또는 전기적인 신호 형태로 실시되는지, 본 발명의 다른 양상을 구성한다.
도 6에 표시된 디바이스명들은 상표로서 알려진 디바이스 타입들의 이름들을 계층들(63, 64 및 65)에 포함한다.
부록 1 - 볼랜티스(Volantis) 제품에 대해 작성된 캔버스
Figure 112003010440781-pct00001
부록 2 - HTML을 이용하는 개인용 컴퓨터에 전송된 결과 페이지
Figure 112003010440781-pct00002
Figure 112003010440781-pct00003
Figure 112003010440781-pct00004
Figure 112003010440781-pct00005
부록 3 - 인터넷 가능 이동 전화에 전송된 결과 페이지
Figure 112003010440781-pct00006
부록 4 - 회사 소식을 유지하기 위해 자동적으로 발생된 덱
Figure 112003010440781-pct00007
부록 5 - AT&T에 대한 스토리를 유지하기 위해 자동적으로 발생된 덱
Figure 112003010440781-pct00008

Claims (115)

  1. 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하여, 상기 원격 사용자 디바이스가 하나 또는 그 이상의 웹 페이지들을 디스플레이하기 위해 해석할 수 있는 웹 페이지 코드를 발생시키고 상기 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 장치에 있어서,
    상기 원격 사용자 디바이스를, 상기 요구 메시지로부터 서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나로서 식별하는 디바이스 타입 식별자를 결정하는 정보를 추출하는 추출 수단과;
    상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작시키는 프로세서와;
    상기 웹 페이지 정보를, 상기 웹 페이지 코드를 발생시키는 스크립트 언어로 기입된 한 세트의 명령들을 포함하는 컨텐트 문서로서 저장하는 제 1 메모리 수단과; 그리고
    서로 다른 디바이스 타입들의 세트 각각에 대한 디바이스-종속 정보 (device-dependent information)정보를 저장하는 제 2 메모리 수단을 포함하여 구성되며,
    상기 코드 발생 엔진은 상기 디바이스 타입 식별자에 대응하는 선택된 디바이스-종속 정보를 참조하여 상기 명령들을 해석하는 해석 수단을 포함하며, 이로써, 상기 코드 발생 엔진은 상기 웹 페이지 코드가 상기 원격 사용자 디바이스에 맞게 조정(tailor)되는 형태로 상기 웹 페이지 코드를 발생시키는 동작을 행하고,
    상기 스크립트 언어는 제 1 마크업 언어를 포함하고, 그리고
    상기 컨텐트 문서는 디스플레이될 정보를 정의하는 컨텐트 코드 및 디스플레이될 정보의 프리젠테이션을 제어하는 미리 정의된 태그들을 포함하며,
    상기 해석 수단은 선택된 디바이스-종속 정보를 참조하여 각각의 태그를 해석하는 동작을 행하는 것을 특징으로 하는 장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 디바이스-종속 정보는 한 세트의 테이블들로서 저장되며, 상기 디바이스-종속 정보는 상기 코드 발생 엔진의 실행 시간 환경에서 태그들에 접속할 수 있는 한 세트의 객체들에 동화(assimilate)되는 것을 특징으로 하는 장치.
  5. 제 4 항에 있어서,
    상기 실행 시간 환경은 자바 버추얼 머신을 포함하며, 상기 객체들의 세트는 자바 빈즈를 포함하는 것을 특징으로 하는 장치.
  6. 제 4 항에 있어서,
    상기 테이블들은 노드들이 각각의 디바이스 타입들에 대응하는 계층적인 트리를 정의하는 계층 구조 형태로 되어 있는 것을 특징으로 하는 장치.
  7. 제 6 항에 있어서,
    각각의 디바이스 타입 노드는 디바이스 타입 노드가 파생하는 모 노드의 속성들과 다른 디바이스 타입의 속성들을 정의하기 위해 상기 테이블들 각각에 각각의 엔트리들에 의해 표현되는 것을 특징으로 하는 장치.
  8. 제 4 항에 있어서,
    상기 테이블들의 세트는 각각의 디바이스 타입의 기술적인 속성들을 정의하는 디바이스 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  9. 제 4 항에 있어서,
    상기 테이블들의 세트는 상기 코드 발생 엔진에 의해 발생된 웹 페이지 코드의 포맷을 정의하는 프로토콜 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  10. 제 1 항에 있어서,
    상기 웹 페이지 코드는 제 2 마크업 언어로 발생되는 것을 특징으로 하는 장치.
  11. 제 10 항에 있어서,
    적어도 HTML과 WML을 포함하는 다수의 마크업 언어들로부터 상기 프로토콜 정책 테이블에서 선택된 디바이스-종속 정보에 따라 상기 제 2 마크업 언어를 선택하는 수단을 포함하는 것을 특징으로 하는 장치.
  12. 제 4 항에 있어서,
    상기 테이블들의 세트는 상기 웹 페이지 정보의 프리젠테이션 양식을 정의하는 양식 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  13. 제 12 항에 있어서,
    상기 양식 정책 테이블은 (a) 글자 속성과; (b) 컬러와; 그리고 (c) 배경 중 적어도 하나를 포함하는 속성들을 정의하는 것을 특징으로 하는 장치.
  14. 제 4 항에 있어서,
    상기 테이블들의 세트는 (a) 장식적인 특성과; 그리고 (b) 로고 중 적어도 하나를 정의하는 주제 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  15. 제 4 항에 있어서,
    상기 테이블들의 세트는 각각의 디바이스 타입의 디스플레이 영역에 관한 웹 페이지 정보의 배치도를 각각의 디바이스 타입에 대해 정의하는 배치도 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  16. 제 15 항에 있어서,
    상기 배치도 정책 테이블은 상기 디스플레이 영역의 부분들을 포함하고 웹 페이지 정보의 각각의 부분들을 포함하는 한 세트의 패인들을 참조하여 배치도를 정의하는 것을 특징으로 하는 장치.
  17. 제 16 항에 있어서,
    상기 배치도 정책은 각각의 디바이스 타입에 대해 패인들의 수와 구성을 결정하는 것을 특징으로 하는 장치.
  18. 제 17 항에 있어서,
    최소 화면 영역을 갖는 디바이스 타입에 대해서, 상기 배치도 정책은 덱들을 성공적으로 디스플레이함으로써 상기 웹 페이지 정보를 디스플레이하는데 이용하기 위해 단일 패인들을 포함하는 한 세트의 덱들이 되도록 페이지들의 구성을 결정하는 것을 특징으로 하는 장치.
  19. 제 4 항에 있어서,
    상기 컨텐트 코드는 각각의 데이터 구성요소를 식별하는 적어도 하나의 구성요소명을 포함하며, 상기 장치는 데이터 구조를 포함하며, 적어도 하나의 데이터 구성요소는 상기 데이터 구성요소의 다중 버전들을 정의하는 한 세트의 데이터 객체들로서 존재하고, 상기 데이터 객체들은 서로 다른 원격 사용자 디바이스들에 적용되는 서로 다른 데이터 특성들을 갖는 것을 특징으로 하는 장치.
  20. 제 19 항에 있어서,
    디바이스 타입 식별자에 기초하여 상기 웹 페이지 코드에 포함하기 위해 구성요소명에 의해 식별된 데이터 객체들의 세트로부터 데이터 객체를 선택하는 수단을 포함하는 것을 특징으로 하는 장치.
  21. 제 20 항에 있어서,
    상기 선택 수단은 데이터 객체의 소정의 선택을 찾아보는 구성요소 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  22. 제 20 항에 있어서,
    상기 선택 수단은 원격 사용자 디바이스의 기술적인 속성들을 결정하여 상기 기술적인 속성들과 각각의 데이터 객체의 데이터 특성들을 비교함으로써 데이터 객체를 선택하는 동작을 행하는 것을 특징으로 하는 장치.
  23. 제 22 항에 있어서,
    상기 선택 수단은 디바이스 정책 테이블을 참조함으로써 상기 기술적인 속성들을 결정하는 동작을 행하는 것을 특징으로 하는 장치.
  24. 제 22 항에 있어서,
    상기 데이터 객체들은 데이터 구조에 저장되며, 이 데이터 구조에서 메타데이터는 각각의 데이터 객체와 관련하여 저장되며, 각각의 데이터 객체의 데이터 특성들은 각각의 메타데이터에 의해 정의되는 것을 특징으로 하는 장치.
  25. 제 16 항에 있어서,
    사용자 입력을 수신하는 그래픽 사용자 인터페이스 및 명령들을 발생시키는 웹 페이지의 문서들을 생성하는 상기 그래픽 사용자 인터페이스에 응답하는 문서 작성 수단을 포함하는 것을 특징으로 하는 장치.
  26. 제 25 항에 있어서,
    상기 작성 수단은 데이터를 수신하는 수단과, 그리고 상기 데이터를 각각의 디바이스 타입의 기술적인 속성들에 적용되는 각각의 데이터 버전을 각각 포함하는 한 세트의 데이터 객체들로 변환하는 데이터 변환 수단을 포함하는 것을 특징으로 하는 장치.
  27. 제 26 항에 있어서,
    상기 데이터 객체들의 세트는 한 세트의 이용가능한 사용자 선호도에 대응하는 다중 버전을 더 포함하는 것을 특징으로 하는 장치.
  28. 제 27 항에 있어서,
    요구 메시지로부터 사용자 선호도를 결정하는 수단을 포함하며, 상기 선택 수단은 상기 사용자 선호도에 따른 데이터 객체를 선택하는 동작을 더 행하는 것을 특징으로 하는 장치.
  29. 제 28 항에 있어서,
    상기 다중 버전은 한 세트의 언어들 각각에 버전들을 포함하며, 상기 사용자 선호도는 선호 언어를 포함하는 것을 특징으로 하는 장치.
  30. 제 1 항에 있어서,
    상기 코드 발생 엔진에 의해 발생된 페이지를 표시하는 코드의 양을 측정하는 코드 측정 수단과;
    상기 사용자 디바이스의 기술적인 속성들이 측정된 코드의 양을 수용하기에 충분한 데이터 성능을 포함하는지 여부를 결정하는 결정 수단과; 그리고
    상기 코드를 하나 또는 그 이상의 코드 부분들로 분할해서, 각각의 부분은 상기 페이지의 각각의 부분을 표시하고 상기 사용자 디바이스의 데이터 성능 내의 코드의 양을 포함하는 네거티브 결정에 응답하는 수단을 포함하는 것을 특징으로 하는 장치.
  31. 제 30 항에 있어서,
    상기 결정 수단은 청구항 8항에 기재된 디바이스 정책 테이블을 참조함으로써 기술적 속성들을 결정하는 동작을 행하는 것을 특징으로 하는 장치.
  32. 제 30 항에 있어서,
    상기 사용자 디바이스로의 후속 전송을 위해 코드의 부분들을 저장하는 버퍼 메모리를 포함하는 것을 특징으로 하는 장치.
  33. 제 32 항에 있어서,
    패인의 부분들을 표시하는 각각의 코드의 부분들의 연속적인 전송에 응답하여 상기 사용자 디바이스로부터의 연속적인 메시지들에 수신된 클라이언트 데이터를 저장하는 세션 메모리 및 클라이언트 데이터가 상기 패인의 전체 부분들에 응답하여 수신되는 완료된 세션에 대해 단일 데이터 객체 클라이언트 데이터로서 결합하는 수단을 포함하는 것을 특징으로 하는 장치.
  34. 제 33 항에 있어서,
    상기 패인은 하나의 형태를 정의하며, 상기 패인의 부분들은 상기 형태의 각각의 데이터 필드들을 포함하는 것을 특징으로 하는 장치.
  35. 제 4 항에 있어서,
    상기 테이블들의 세트는 시변 파라미터들의 값들에 따라 결정되는 코드 발생 속성들을 정의하는 동적 정책 테이블을 포함하는 것을 특징으로 하는 장치.
  36. 제 35 항에 있어서,
    상기 코드 발생 속성들은 웹 페이지 코드의 이미지 컨텐트를 정의하며, 상기 시변 파라미터는 디바이스와 통신하기 위해 이용가능한 대역폭인 것을 특징으로 하는 장치.
  37. 제 1 항에 있어서,
    응답 메시지에 웹 페이지 코드의 사본을 저장하는 동작을 행하는 캐시 메모리와; 그리고
    동일 웹 페이지 정보에 대해 다른 요구 메시지를 수신하는 것에 응답하여 저장된 사본으로부터 웹 페이지 코드를 출력하는 수단을 포함하는 것을 특징으로 하는 장치.
  38. 제 37 항에 있어서,
    상기 캐시 메모리는 캐시 메모리 저장에 대한 요구사항이 웹 페이지 코드가 발생되는 컨텐트 문서에 정의되는지 여부에 의존하여 웹 페이지 코드를 선택적으로 저장하는 동작을 행하는 것을 특징으로 하는 장치.
  39. 제 38 항에 있어서,
    캐시 메모리 저장에 대한 상기 요구사항은 상기 컨텐트 문서에 삽입된 태그의 동작에 의해 설정되는 것을 특징으로 하는 장치.
  40. 제 39 항에 있어서,
    상기 태그는 캐시 메모리에 저장된 웹 페이지 코드의 사본의 정당성의 지속 기간을 더 정의하는 것을 특징으로 하는 장치.
  41. 제 1 항에 있어서,
    상기 추출 수단은 요구 메시지의 헤더로부터 식별 정보를 추출하고, 디바이스-종속 정보가 제 2 메모리 수단에 저장되는 디바이스 타입 식별자들의 테이블을 참조함으로써 디바이스 타입 식별자를 결정하는 동작을 행하는 것을 특징으로 하는 장치.
  42. 제 41 항에 있어서,
    상기 추출 수단은 상기 테이블로부터 헤더로부터 얻어진 식별 정보에 대해, 대응하는 디바이스 타입 식별자가 이용가능한지 여부를 결정하고, 만약 이용가능하지 않다면, 사용자 디바이스가 인식되지 않는다는 표시를 발생시키는 동작을 행하는 것을 특징으로 하는 장치.
  43. 제 42 항에 있어서,
    디바이스 정보를 추출하는 사용자 디바이스에 프로브 대리인을 전송하기 위해 상기 사용자 디바이스가 인식되지 않는다는 표시에 응답하는 프로브 수단 및 상기 사용자 디바이스로부터의 상기 디바이스 정보를 포함하는 응답 메시지를 수신하는 수단을 포함하는 것을 특징으로 하는 장치.
  44. 제 43 항에 있어서,
    수신된 디바이스 정보와 알려진 디바이스들에 대한 저장된 디바이스-종속 정보를 비교하는 수단 및 알려진 디바이스들에 대한 상기 저장된 디바이스-종속 정보와 인식되지 않은 디바이스에 대한 디바이스 정보 사이의 최상의 정합에 대응하는 디바이스 타입 식별자를 결정하는 수단을 포함하는 것을 특징으로 하는 장치.
  45. 제 44 항에 있어서,
    상기 코드 발생 엔진은 상기 인식되지 않은 디바이스와 최상의 정합이 있다고 결정된 알려진 디바이스의 디바이스 타입 식별자를 이용하여 웹 페이지 코드를 발생시키는 동작을 행하는 것을 특징으로 하는 장치.
  46. 제 1 항에 있어서,
    상기 장치가 연결되어 사용되는 네트워크를 통해 상기 요구 메시지를 수신하는 수신 수단과; 그리고
    상기 장치가 연결되어 사용되는 상기 네트워크를 통해 사용자 디바이스에 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 출력 수단을 더 포함하는 것을 특징으로 하는 장치.
  47. 제 1 항에 있어서,
    요구 메시지의 컨텐트에 따라 제 1 메모리 수단으로부터 웹 페이지 정보를 선택하는 수단 및 코드 발생 엔진에 웹 페이지 정보와 디바이스 타입 식별자를 입력하는 수단을 포함하는 것을 특징으로 하는 장치.
  48. 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하여, 상기 원격 사용자 디바이스가 하나 또는 그 이상의 웹 페이지들을 디스플레이하기 위해 해석할 수 있는 웹 페이지 코드를 발생시키고 상기 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 방법으로서,
    상기 원격 사용자 디바이스를, 서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나인 것으로 식별하는 디바이스 타입 식별자를 결정하는 요구 메시지 정보로부터 추출하는 단계와;
    상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작하는 단계와;
    상기 웹 페이지 정보를, 상기 웹 페이지 코드를 발생시키는 스크립트 언어로 기입된 한 세트의 명령들을 포함하는 컨텐트 문서로서 제 1 메모리 수단에 저장하는 단계와; 그리고
    제 2 메모리 수단에 서로 다른 디바이스 타입들의 세트의 각각에 대한 디바이스-종속 정보를 저장하는 단계를 포함하여 구성되며,
    상기 코드 발생 엔진은 상기 디바이스 타입 식별자에 대응하는 선택된 디바이스-종속 정보를 참조하여 상기 명령들을 해석하며, 이로써 상기 코드 발생 엔진은 상기 웹 페이지 코드가 상기 원격 사용자 디바이스에 조정되는 형태로 상기 웹 페이지 코드를 발생시키고,
    상기 스크립트 언어는 제 1 마크업 언어를 포함하고, 그리고
    상기 컨텐트 문서는 디스플레이될 정보 및 디스플레이될 정보의 프리젠테이션을 제어하는 미리 정의된 태그들을 정의하는 컨텐트 코드를 포함하며,
    상기 해석은 선택된 디바이스-종속 정보를 참조하여 각각의 태그를 해석하는 것을 특징으로 하는 방법.
  49. 삭제
  50. 삭제
  51. 제 48 항에 있어서,
    상기 디바이스-종속 정보는 한 세트의 테이블들로서 저장되며, 상기 디바이스-종속 정보는 상기 코드 발생 엔진의 실행 시간 환경에서 태그들에 접속할 수 있는 한 세트의 객체들에 동화되는 것을 특징으로 하는 방법.
  52. 제 51 항에 있어서,
    상기 실행 시간 환경은 자바 버추얼 머신을 포함하며, 상기 객체들의 세트는 자바 빈즈를 포함하는 것을 특징으로 하는 방법.
  53. 제 51항에 있어서, 상기 테이블들은 노드들이 연속적인 계층구조의 계층들에서 각각의 디바이스 타입들에 대응하는 계층적인 트리를 정의하는 계층 구조 형태로 되어 있는 것을 특징으로 하는 방법.
  54. 제 53 항에 있어서,
    각각의 디바이스 타입 노드는 디바이스 타입 노드가 파생하는 모 노드의 속성들과 다른 디바이스 타입의 속성들을 정의하기 위해 상기 테이블들 각각의 엔트리들에 의해 표현되는 것을 특징으로 하는 방법.
  55. 제 51 항에 있어서,
    상기 테이블들의 세트는 각각의 디바이스 타입의 기술적인 속성들을 정의하는 디바이스 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  56. 제 51 항에 있어서,
    상기 테이블들의 세트는 상기 코드 발생 엔진에 의해 발생된 웹 페이지 코드의 포맷을 정의하는 프로토콜 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  57. 제 48 항에 있어서,
    상기 웹 페이지 코드는 제 2 마크업 언어로 발생되는 것을 특징으로 하는 방법.
  58. 제 57 항에 있어서,
    적어도 HTML과 WML을 포함하는 다수의 마크업 언어들로부터 상기 프로토콜 정책 테이블에서 선택된 디바이스-종속 정보에 따라 상기 제 2 마크업 언어를 선택하는 수단을 포함하는 것을 특징으로 하는 방법.
  59. 제 51 항에 있어서,
    상기 테이블들의 세트는 상기 웹 페이지 정보의 프리젠테이션 양식을 정의하는 양식 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  60. 제 59 항에 있어서,
    상기 양식 정책 테이블은 (a) 글자 속성과; (b) 컬러와; 그리고 (c) 배경 중 적어도 하나를 포함하는 속성들을 정의하는 것을 특징으로 하는 방법.
  61. 제 51 항에 있어서,
    상기 테이블들의 세트는 (a) 장식적인 특성과; 그리고 (b) 로고 중 적어도 하나를 정의하는 주제 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  62. 제 51 항에 있어서,
    상기 테이블들의 세트는 각각의 디바이스 타입의 디스플레이 영역에 관한 웹 페이지 정보의 배치도를 각각의 디바이스 타입에 대해 정의하는 배치도 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  63. 제 62 항에 있어서,
    상기 배치도 정책 테이블은 상기 디스플레이 영역의 부분들을 포함하고 웹 페이지 정보의 각각의 부분들을 포함하는 한 세트의 패인들을 참조하여 배치도를 정의하는 것을 특징으로 하는 방법.
  64. 제 63 항에 있어서,
    상기 배치도 정책은 각각의 디바이스 타입에 대해 패인들의 수와 구성을 결정하는 것을 특징으로 하는 방법.
  65. 제 64 항에 있어서,
    최소 화면 영역을 갖는 디바이스 타입에 대해서, 상기 배치도 정책은 덱들을 성공적으로 디스플레이함으로써 상기 웹 페이지 정보를 디스플레이하는데 이용하기 위해 단일 패인들을 포함하는 한 세트의 덱들이 되도록 페이지들의 구성을 결정하는 것을 특징으로 하는 방법.
  66. 제 51 항에 있어서,
    상기 컨텐트 코드는 각각의 데이터 구성요소를 식별하는 적어도 하나의 구성요소명을 포함하며, 상기 방법은 데이터 구조에 접속하는 단계를 포함하며, 이 데이터 구조에 적어도 하나의 데이터 구성요소는 상기 데이터 구성요소의 다중 버전들을 정의하는 한 세트의 데이터 객체들로서 존재하고, 상기 데이터 객체들은 서로 다른 원격 사용자 디바이스들에 적용되는 서로 다른 데이터 특성들을 갖는 것을 특징으로 하는 방법.
  67. 제 66 항에 있어서,
    디바이스 타입 식별자에 기초하여 상기 웹 페이지 코드에 포함하기 위해 구성요소명에 의해 식별된 데이터 객체들의 세트로부터 데이터 객체를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  68. 제 67 항에 있어서,
    상기 선택 단계는 데이터 객체의 소정의 선택을 찾아보는 구성요소 정책 테이블에 접속하는 단계를 포함하는 것을 특징으로 하는 방법.
  69. 제 67 항에 있어서,
    상기 선택 단계는 원격 사용자 디바이스의 기술적인 속성들을 결정하여 상기 기술적인 속성들과 각각의 데이터 객체의 데이터 특성들을 비교함으로써 데이터 객체를 선택하는 것을 특징으로 하는 방법.
  70. 제 69 항에 있어서,
    상기 선택 단계는 디바이스 정책 테이블을 참조함으로써 상기 기술적인 속성들을 결정하는 것을 특징으로 하는 방법.
  71. 제 69 항에 있어서,
    상기 데이터 객체들은 데이터 구조에 저장되며, 이 데이터 구조에서 메타데이터는 각각의 데이터 객체와 관련하여 저장되며, 각각의 데이터 객체의 데이터 특성들은 각각의 메타데이터에 의해 정의되는 것을 특징으로 하는 방법.
  72. 제 63 항에 있어서,
    그래픽 사용자 인터페이스를 통해 사용자 입력을 수신하는 단계와, 그리고 명령들을 발생시키는 웹 페이지의 문서들을 생성하는 상기 그래픽 사용자 인터페이스에 응답하는 문서 작성 수단을 동작시키는 단계를 포함하는 것을 특징으로 하는 방법.
  73. 제 72 항에 있어서,
    데이터를 수신하는 단계와, 그리고 상기 데이터를 각각의 디바이스 타입의 기술적인 속성들에 적용되는 각각의 데이터 버전을 각각 포함하는 한 세트의 데이터 객체들로 변환하는 단계를 포함하는 것을 특징으로 하는 방법.
  74. 제 73 항에 있어서,
    상기 데이터 객체들의 세트는 한 세트의 이용가능한 사용자 선호도에 대응하는 다중 버전을 더 포함하는 것을 특징으로 하는 방법.
  75. 제 74 항에 있어서,
    요구 메시지로부터 사용자 선호도를 결정하는 수단을 포함하며, 상기 선택 수단은 상기 사용자 선호도에 따른 데이터 객체를 선택하는 동작을 더 행하는 것을 특징으로 하는 방법.
  76. 제 75 항에 있어서,
    상기 다중 버전은 한 세트의 언어들 각각에 버전들을 포함하며, 상기 사용자 선호도는 선호 언어를 포함하는 것을 특징으로 하는 방법.
  77. 제 48 항에 있어서,
    상기 코드 발생 엔진에 의해 발생된 페이지를 표시하는 코드의 양을 측정하는 단계와;
    상기 사용자 디바이스의 기술적인 속성들이 측정된 코드의 양을 수용하기에 충분한 데이터 성능을 포함하는지 여부를 결정하는 단계와; 그리고
    네거티브 결정에 응답하여, 각각의 부분이 상기 페이지의 각각의 부분을 표시하고 상기 사용자 디바이스의 데이터 성능 내의 코드의 양을 포함하도록 상기 코드를 둘 또는 그 이상의 코드 부분들로 분할하는 단계를 포함하는 것을 특징으로 하는 방법.
  78. 제 77 항에 있어서,
    상기 결정 단계는 청구항 55에 기재된 디바이스 정책 테이블을 참조함으로써 기술적 속성들을 결정하는 것을 특징으로 하는 방법.
  79. 제 77 항에 있어서,
    상기 사용자 디바이스로의 후속 전송을 위해 버퍼 메모리에 코드의 부분들을 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  80. 제 79 항에 있어서,
    페이지의 부분들을 표시하는 각각의 코드의 부분들의 연속적인 전송에 응답하여 상기 사용자 디바이스로부터의 연속적인 메시지들에 수신된 클라이언트 데이터를 세션 메모리에 저장하는 단계 및 클라이언트 데이터가 상기 페이지의 전체 부분들에 응답하여 수신되는 완료된 세션에 대해 단일 데이터 객체 클라이언트 데이터로서 결합하는 단계를 포함하는 것을 특징으로 하는 방법.
  81. 제 80 항에 있어서,
    상기 페이지는 하나의 형태를 정의하며, 상기 페이지의 부분들은 상기 형태의 각각의 데이터 필드들을 포함하는 것을 특징으로 하는 방법.
  82. 제 51 항에 있어서,
    상기 테이블들의 세트는 시변 파라미터들의 값들에 따라 결정되는 코드 발생 속성들을 정의하는 동적 정책 테이블을 포함하는 것을 특징으로 하는 방법.
  83. 제 82 항에 있어서,
    상기 코드 발생 속성들은 웹 페이지 코드의 이미지 컨텐트를 정의하며, 상기 시변 파라미터는 디바이스와 통신하기 위해 이용가능한 대역폭인 것을 특징으로 하는 방법.
  84. 제 48 항에 있어서,
    응답 메시지에서 웹 페이지 코드 출력의 사본을 캐시 메모리에 저장하는 단계와; 그리고
    동일 웹 페이지 정보에 대해 다른 요구 메시지를 수신하는 것에 응답하여 저장된 사본으로부터 웹 페이지 코드를 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  85. 제 84 항에 있어서,
    상기 캐시 메모리는 캐시 메모리 저장에 대한 요구사항이 웹 페이지 코드가 발생되는 컨텐트 문서에 정의되는지 여부에 의존하여 웹 페이지 코드를 선택적으로 저장하는 것을 특징으로 하는 방법.
  86. 제 85 항에 있어서,
    캐시 메모리 저장에 대한 상기 요구사항은 상기 컨텐트 문서에 삽입된 태그의 동작에 의해 설정되는 것을 특징으로 하는 방법.
  87. 제 86 항에 있어서,
    상기 태그는 캐시 메모리에 저장된 웹 페이지 코드의 사본의 정당성의 지속 기간을 더 정의하는 것을 특징으로 하는 방법.
  88. 제 48 항에 있어서,
    상기 추출 단계는 요구 메시지의 헤더로부터 식별 정보를 추출하고, 디바이스-종속 정보가 제 2 메모리 수단에 저장되는 디바이스 타입 식별자들의 테이블을 참조함으로써 디바이스 타입 식별자를 결정하는 것을 특징으로 하는 방법.
  89. 제 88 항에 있어서,
    상기 추출 단계는 상기 테이블로부터 헤더로부터 얻어진 식별 정보에 대해, 대응하는 디바이스 타입 식별자가 이용가능한지 여부를 결정하고, 만약 이용가능하지 않다면, 사용자 디바이스가 인식되지 않는다는 표시를 발생시키는 것을 특징으로 하는 방법.
  90. 제 89 항에 있어서,
    디바이스 정보를 추출하는 사용자 디바이스에 프로브 대리인을 전송하기 위해 상기 사용자 디바이스가 인식되지 않는다는 표시에 응답하여 프로브 수단을 작동시키는 단계와, 그리고 상기 사용자 디바이스로부터의 상기 디바이스 정보를 포함하는 응답 메시지를 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  91. 제 90 항에 있어서,
    수신된 디바이스 정보와 알려진 디바이스들에 대한 저장된 디바이스-종속 정보를 비교하는 단계와, 그리고 알려진 디바이스들에 대한 상기 디바이스-종속 정보와 인식되지 않은 디바이스에 대한 디바이스 정보 사이의 최상의 정합에 대응하는 디바이스 타입 식별자를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  92. 제 91 항에 있어서,
    상기 코드 발생 엔진은 상기 인식되지 않은 디바이스와 최상의 정합이 있다고 결정된 알려진 디바이스의 디바이스 타입 식별자를 이용하여 웹 페이지 코드를 발생시키는 것을 특징으로 하는 방법.
  93. 제 90 항에 있어서,
    네트워크를 통해 요구 메시지를 수신하는 단계와; 그리고
    상기 네트워크를 통해 사용자 디바이스에 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  94. 제 48 항에 있어서,
    요구 메시지의 컨텐트에 따라 제 1 메모리 수단으로부터 웹 페이지 정보를 선택하는 단계와, 그리고 코드 발생 엔진에 웹 페이지 정보와 디바이스 타입 식별자를 입력하는 단계를 포함하는 것을 특징으로 하는 방법.
  95. 하나 또는 그 이상의 웹 페이지들을 디스플레이하고 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 사용자 디바이스에 의해 해석될 수 있는 웹 페이지 코드를 발생시킴으로써 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하는 방법으로서,
    서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나인 것으로 상기 원격 사용자 디바이스를 식별하는 디바이스 타입 식별자를 결정하는 단계와;
    상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작시키는 단계와;
    상기 웹 페이지 코드를 발생시키는 한 세트의 명령들을 포함하는 컨텐트 문서로서 제 1 메모리 수단에 상기 웹 페이지 정보를 저장하는 단계와; 그리고
    제 2 메모리 수단에 서로 다른 디바이스 타입들의 세트에 대한 디바이스-종속 정보를 저장하는 단계를 포함하며,
    여기서, 상기 컨텐트 코드는 상기 웹 페이지 코드에 포함하기 위해 각각의 데이터 구성요소를 식별하는 적어도 하나의 구성요소명을 포함하며,
    상기 데이터 객체들은 서로 다른 원격 사용자 디바이스들에 적용되는 서로 다른 데이터 특성들을 갖는 데이터 구성요소의 다중 버전을 정의하는 한 세트의 데이터 객체들로서 데이터 구성요소가 존재하는 데이터 구조에 접속하는 단계와; 그리고
    상기 디바이스 타입 식별자에 기초하여 상기 웹 페이지 코드에 포함하기 위해 구성요소명에 의해 식별된 데이터 객체들의 세트로부터 데이터 객체를 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  96. 제 95 항에 있어서,
    상기 선택 단계는 데이터 객체의 소정의 선택을 찾아보기 위해 구성요소 정책 테이블에 접속하는 단계를 포함하는 것을 특징으로 하는 방법.
  97. 제 95 항에 있어서,
    상기 선택 단계는 상기 디바이스 타입 식별자에 기초하여 원격 사용자 디바이스의 기술적인 속성들을 결정하고, 상기 기술적인 속성들과 각각의 데이터 객체의 데이터 특성들을 비교함으로써 상기 데이터 객체를 선택하는 것을 특징으로 하는 방법.
  98. 제 97 항에 있어서,
    상기 선택 단계는 디바이스 정책 테이블을 참조함으로써 상기 기술적인 속성들을 결정하는 것을 특징으로 하는 방법.
  99. 제 97 항에 있어서,
    상기 데이터 객체들은 계층적인 데이터 구조에 저장되고, 이 데이터 구조에서 메타데이터는 각각의 데이터 객체와 관련하여 저장되며, 각각의 데이터 객체의 데이터 특성들은 각각의 메타데이터에 의해 정의되는 것을 특징으로 하는 방법.
  100. 제 95 항에 있어서,
    상기 데이터 객체들의 세트는 한 세트의 이용가능한 사용자 선호도에 대응하는 다중 버전들을 더 포함하고; 그리고
    요구 메시지로부터 사용자 선호도를 결정함으로써 상기 선택 단계는 상기 사용자 선호도에 따라 상기 데이터 객체를 선택하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  101. 제 100 항에 있어서,
    상기 다중 버전들은 한 세트의 언어들 각각에 버전들을 포함하며, 상기 사용자 선호도는 선호 언어를 포함하는 것을 특징으로 하는 방법.
  102. 서로 다른 계층적인 레벨들이 데이터 객체들이 제공될 사용자 디바이스들의 기술적인 성능들의 각각의 레벨들에 대응하는 데이터 구성요소의 서로 다른 버전들을 포함하는 계층에 데이터 객체들이 접속할 수 있는 데이터 구조가 수록된 컴퓨터 판독가능 저장 매체.
  103. 서로 다른 기술적인 성능들을 갖는 다수의 가능한 사용자 디바이스들 중 하나에 언제라도 출력할 수 있도록 저장하기 위해 데이터를 처리하는 방법으로서,
    데이터 요소를 수신하는 단계와;
    각각의 데이터 객체가 각각의 데이터 요소에 포함된 데이터의 각각의 버전을 포함하도록 상기 데이터 요소로부터 한 세트의 데이터 객체들을 발생시키는 단계와; 그리고
    데이터 객체들의 상기 세트를 서로 다른 레벨들이 사용자 디바이스들의 각각의 기술적인 성능들에 대응하는 계층적인 데이터 구조에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  104. 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하여, 상기 원격 사용자 디바이스가 하나 또는 그 이상의 웹 페이지들을 디스플레이하기 위해 해석할 수 있는 웹 페이지 코드를 발생시키고 상기 웹 페이지 코드를 포함하는 응답 메시지를 출력하는 장치로서,
    서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나인 것으로 상기 원격 사용자 디바이스를 식별하는 디바이스 타입 식별자를 결정하는 상기 요구 메시지로부터 추출하는 추출 수단과;
    상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작시키는 프로세서와;
    상기 코드 발생 엔진은 상기 웹 페이지 코드가 상기 원격 사용자 디바이스에 맞게 조정되는 형태로 상기 웹 페이지 코드를 발생시키기 위해 디바이스-종속 정보를 이용하여 상기 디바이스 타입 식별자에 응답하여 동작을 행하고;
    여기서, 상기 추출 수단은 상기 요구 메시지의 헤더로부터 식별 정보를 추출하고 디바이스 타입 식별자의 테이블을 참조함으로써 상기 디바이스 타입 식별자를 결정하는 동작을 행하고;
    상기 장치는 디바이스 정보를 추출하는 상기 사용자 디바이스에 프로브 대리인을 전송하기 위해 상기 사용자 디바이스가 인식되지 않는다는 표시에 응답하는 프로브 수단과, 그리고 상기 사용자 디바이스로부터의 상기 디바이스 정보를 포함하는 응답 메시지를 수신하는 수단을 더 포함하는 것을 특징으로 하는 장치.
  105. 제 104 항에 있어서,
    수신된 디바이스 정보와 알려진 디바이스들에 대한 저장된 디바이스-종속 정보를 비교하는 수단과, 그리고 알려진 디바이스들에 대한 상기 디바이스-의존 정보와 인식되지 않는 디바이스에 대한 디바이스 정보 사이의 최상의 정합에 대응하는 디바이스 타입 식별자를 결정하는 수단을 포함하는 것을 특징으로 하는 장치.
  106. 제 105 항에 있어서,
    상기 코드 발생 엔진은 상기 인식되지 않은 디바이스와 최상의 정합이 있다고 결정된 알려진 디바이스의 상기 디바이스 타입 식별자를 이용하여 웹 페이지 코드를 발생시키는 동작을 행하는 것을 특징으로 하는 장치.
  107. 웹 페이지 정보에 대한 원격 사용자 디바이스로부터의 요구 메시지에 응답하여, 상기 원격 사용자 디바이스가 하나 또는 그 이상의 웹 페이지들을 디스플레이하기 위해 해석할 수 있는 웹 페이지 코드를 발생시키는 방법으로서,
    상기 원격 사용자 디바이스를, 서로 다른 성능들을 갖는 한 세트의 가능한 디바이스 타입들 중 하나인 것으로 식별하는 디바이스 타입 식별자를 결정하는 상기 요구 메시지 정보로부터 추출하는 단계와;
    상기 웹 페이지 코드를 발생시키기 위해 코드 발생 엔진을 동작시키는 단계와;
    상기 코드 발생 엔진은 상기 웹 페이지 코드가 상기 원격 사용자 디바이스에 맞게 조정되는 형태로 상기 웹 페이지 코드를 발생시키기 위해 디바이스-종속 정보를 이용하는 상기 디바이스 타입 식별자에 응답하여 동작을 행하고;
    여기서, 상기 추출 단계는 상기 요구 메시지의 헤더로부터 식별 정보를 추출하고 디바이스 타입 식별자의 테이블을 참조함으로써 상기 디바이스 타입 식별자를 결정하고;
    상기 방법은 디바이스 정보를 추출하는 상기 사용자 디바이스에 프로브 대리인을 전송하기 위해 상기 사용자 디바이스가 인식되지 않는다는 표시에 응답하는 프로브 수단을 동작시키는 단계와, 그리고 상기 사용자 디바이스로부터의 상기 디바이스 정보를 포함하는 응답 메시지를 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  108. 제 107 항에 있어서,
    수신된 디바이스 정보와 알려진 디바이스들에 대한 저장된 디바이스-종속 정보를 비교하는 단계와, 그리고 알려진 디바이스들에 대한 상기 디바이스-종속 정보와 인식되지 않는 디바이스에 대한 디바이스 정보 사이의 최상의 정합에 대응하는 디바이스 타입 식별자를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  109. 제 108 항에 있어서,
    상기 코드 발생 엔진은 상기 인식되지 않은 디바이스와 최상의 정합이 있다고 결정된 알려진 디바이스의 상기 디바이스 타입 식별자를 이용하여 웹 페이지 코드를 발생시키는 것을 특징으로 하는 방법.
  110. 제 70 항 또는 제 103 항 또는 제 107 항에 기재된 방법을 수행하는 프로세서를 제어하기 위한 프로세서-실행가능 명령들로 구성된 컴퓨터 프로그램이 수록된 컴퓨터 판독가능 기록 매체.
  111. 삭제
  112. 삭제
  113. 제 1 항에 기재된 장치에서 사용하기 위한 코드 발생 엔진.
  114. 제 48 항에 기재된 방법에서 사용하기 위한 정책 테이블 세트가 저장된 저장매체.
  115. 제 48 항에 기재된 방법에서 사용하기 위한 태그 세트가 저장된 저장 매체.
KR1020037004318A 2000-09-26 2001-09-24 웹 서버 KR100874985B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0023570.5 2000-09-26
GBGB0023570.5A GB0023570D0 (en) 2000-09-26 2000-09-26 Web server
PCT/GB2001/004235 WO2002027543A2 (en) 2000-09-26 2001-09-24 Network server

Publications (2)

Publication Number Publication Date
KR20030043969A KR20030043969A (ko) 2003-06-02
KR100874985B1 true KR100874985B1 (ko) 2008-12-19

Family

ID=9900156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037004318A KR100874985B1 (ko) 2000-09-26 2001-09-24 웹 서버

Country Status (13)

Country Link
US (1) US7739658B2 (ko)
EP (2) EP1641211B1 (ko)
JP (1) JP4865983B2 (ko)
KR (1) KR100874985B1 (ko)
CN (1) CN1268103C (ko)
AT (1) ATE314781T1 (ko)
AU (1) AU2001287920A1 (ko)
DE (1) DE60116343T2 (ko)
ES (1) ES2256292T3 (ko)
GB (3) GB0023570D0 (ko)
HK (1) HK1049046B (ko)
SG (1) SG136805A1 (ko)
WO (1) WO2002027543A2 (ko)

Families Citing this family (180)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060279542A1 (en) * 1999-02-12 2006-12-14 Vega Vista, Inc. Cellular phones and mobile devices with motion driven control
US20060061550A1 (en) * 1999-02-12 2006-03-23 Sina Fateh Display size emulation system
US20060061551A1 (en) * 1999-02-12 2006-03-23 Vega Vista, Inc. Motion detection and tracking system to control navigation and display of portable displays including on-chip gesture detection
US7089330B1 (en) * 2000-09-28 2006-08-08 I2 Technologies Us, Inc. System and method for transforming custom content generation tags associated with web pages
US20020109673A1 (en) * 2001-01-04 2002-08-15 Thierry Valet Method and apparatus employing angled single accelerometer sensing multi-directional motion
AU2002258769A1 (en) 2001-04-09 2002-10-21 America Online Incorporated Server-based browser system
US8776230B1 (en) * 2001-10-02 2014-07-08 Mcafee, Inc. Master security policy server
US20030149981A1 (en) * 2002-01-31 2003-08-07 Paul Finster System and method for generating customized EPG data and EPG application programs
US20030145325A1 (en) * 2002-01-31 2003-07-31 Paul Finster Method and system for presentation of pre-generated programming information
AU2003201126A1 (en) * 2002-02-07 2003-09-02 Koninklijke Philips Electronics N.V. Stylesheet uploading to manage terminal diversity
US7426545B2 (en) * 2002-06-28 2008-09-16 International Business Machines Corporation Systems and methods for transparently accessing Web applications remotely and locally
US8645862B2 (en) * 2002-06-28 2014-02-04 International Business Machines Corporation Displaying and executing web services in multiple content domains
US20040003130A1 (en) * 2002-06-28 2004-01-01 International Business Machines Corporation Systems and methods for accessing web services using a tag library
US7233790B2 (en) 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
US7200818B2 (en) * 2002-06-28 2007-04-03 International Business Machines Corporation Systems and methods for messaging in a multi-frame Web application
US7299033B2 (en) 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7373347B2 (en) * 2002-07-22 2008-05-13 Ricoh Company, Ltd. Information processing apparatus and information processing method
US7051040B2 (en) 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
US7822816B2 (en) * 2002-08-19 2010-10-26 Macrosolve, Inc. System and method for data management
US20040098704A1 (en) * 2002-11-14 2004-05-20 International Business Machines Corporation Systems and methods for defining Web applications pages
US20040111525A1 (en) * 2002-12-09 2004-06-10 International Business Machines Corporation Dynamic web service implementation discovery and selection apparatus and method
US7284039B2 (en) * 2002-12-17 2007-10-16 International Business Machines Corporation Apparatus and method for flexible web service deployment
US7188155B2 (en) * 2002-12-17 2007-03-06 International Business Machines Corporation Apparatus and method for selecting a web service in response to a request from a client device
US7200648B2 (en) * 2003-03-28 2007-04-03 Institute For Information Industry Dynamic searching method of provisioning instance identifiers
JP4340566B2 (ja) * 2003-04-01 2009-10-07 株式会社リコー Webページ生成装置、組み込み装置、Webページ生成の制御方法、Webページ生成プログラム及び記録媒体
US7506069B2 (en) * 2003-04-25 2009-03-17 Sap Ag Accessing data in a computer network
US20040230901A1 (en) * 2003-05-15 2004-11-18 International Business Machines Corporation Portlet style conformity on pervasive agents
US7168063B2 (en) * 2003-06-10 2007-01-23 Microsoft Corporation Systems and methods for employing tagged types in a dynamic runtime environment
KR20050026673A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 네트워크를 통한 컨텐츠 다운로드 시스템
FR2857807B1 (fr) * 2003-07-18 2005-12-02 Cit Alcatel Procede de transaction pour un approvisionnement de regles dans un reseau gere a base de regles
JP4709481B2 (ja) * 2003-07-31 2011-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ、情報処理方法およびプログラム
JP4553599B2 (ja) * 2003-08-29 2010-09-29 コニカミノルタビジネステクノロジーズ株式会社 データ表示システム、データ出力装置、画像形成装置、データ表示装置およびデータ表示プログラム
CN1839598B (zh) * 2003-09-15 2011-06-08 法国电信 传输多媒体消息的系统和方法
US9100814B2 (en) 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
JP4414181B2 (ja) * 2003-09-19 2010-02-10 株式会社Access メッセージ表示端末及びゲートウェイサーバ、並びにメッセージ表示端末用プログラム及びゲートウェイサーバ用プログラム
KR100697416B1 (ko) * 2003-09-30 2007-03-20 교세라 가부시키가이샤 모바일 통신 단말기, 정보 제공 시스템 및 프로그램을기록한 컴퓨터 판독가능한 기록 매체
US7451251B2 (en) 2003-12-29 2008-11-11 At&T Corp. Method for redirection of web streaming clients using lightweight available bandwidth measurement from a plurality of servers
JP4179553B2 (ja) * 2004-03-15 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法、表示制御情報を生成するコンピュータ、およびプログラム
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
AU2005223267B2 (en) 2004-03-16 2010-12-09 Icontrol Networks, Inc. Premises management system
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US10127802B2 (en) 2010-09-28 2018-11-13 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
US11368429B2 (en) * 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US8078731B1 (en) * 2004-05-17 2011-12-13 Webalo, Inc. User proxy server
US7539776B1 (en) * 2004-06-17 2009-05-26 Sun Microsystems, Inc. Dynamic uniform resource locator compression
US7269642B2 (en) * 2004-07-08 2007-09-11 Motorola, Inc. Customizing strings displayed upon a mobile device without altering core software of the device
US20060020699A1 (en) * 2004-07-23 2006-01-26 D Esposito John J Method and computer program for web site performance monitoring and testing by variable simultaneous angulation
EP1790091A4 (en) * 2004-09-02 2009-12-23 Univ California PROGRAMMING OBJECTS COMPATIBLE WITH CHANNELS AND CONTENTS AND ERROR MANAGEMENT
US20060069745A1 (en) * 2004-09-08 2006-03-30 International Business Machines Corporation Method, system and program product for identifying web page dependencies
EP1797732B1 (en) * 2004-10-05 2010-06-09 Research In Motion Limited Mobile device diagnosis, test, application deployment and update from a web page
US20070283036A1 (en) * 2004-11-17 2007-12-06 Sujit Dey System And Method For Providing A Web Page
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US11615697B2 (en) * 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20080288658A1 (en) * 2005-03-22 2008-11-20 Feeva Technology Inc. Systems and methods of network operation and information processing, including use of unique/anonymous identifiers throughout all stages of information processing and delivery
US20070011268A1 (en) * 2005-03-22 2007-01-11 Banga Jasminder S Systems and methods of network operation and information processing, including engaging users of a public-access network
AU2010201379B2 (en) * 2010-04-07 2012-02-23 Limelight Networks, Inc. System and method for delivery of content objects
US20060265359A1 (en) * 2005-05-18 2006-11-23 Microsoft Corporation Flexible data-bound user interfaces
JP4465553B2 (ja) * 2005-05-30 2010-05-19 有限会社ティーシーラボ 一般的なビデオカメラ回路を利用したテレシネ装置
US8631329B2 (en) * 2005-06-22 2014-01-14 France Telecom Method and device for the restitution of multimedia data transmitted by a gateway to a terminal
US20070027809A1 (en) * 2005-08-01 2007-02-01 Jukka Alve Method for signaling geographical constraints
US7647175B2 (en) * 2005-09-09 2010-01-12 Rembrandt Technologies, Lp Discrete inertial display navigation
US20070057911A1 (en) * 2005-09-12 2007-03-15 Sina Fateh System and method for wireless network content conversion for intuitively controlled portable displays
US8086253B1 (en) 2005-12-15 2011-12-27 Google Inc. Graphical mobile e-mail
US20070186150A1 (en) * 2006-02-03 2007-08-09 Raosoft, Inc. Web-based client-local environment for structured interaction with a form
US20070204220A1 (en) * 2006-02-27 2007-08-30 Microsoft Corporation Re-layout of network content
US9032297B2 (en) 2006-03-17 2015-05-12 Disney Enterprises, Inc. Web based video editing
US8645379B2 (en) * 2006-04-27 2014-02-04 Vertical Search Works, Inc. Conceptual tagging with conceptual message matching system and method
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US8150938B1 (en) * 2006-06-21 2012-04-03 Qurio Holdings, Inc. Profile aware mediating server
US8102863B1 (en) 2006-06-27 2012-01-24 Qurio Holdings, Inc. High-speed WAN to wireless LAN gateway
US20080123624A1 (en) * 2006-06-30 2008-05-29 Nokia Corporation Controlling mobile voice calls remotely via a web interface
US9178793B1 (en) * 2006-09-29 2015-11-03 Yahoo! Inc. Engine for processing content rules associated with locations in a page
US8621092B2 (en) * 2006-12-19 2013-12-31 International Business Machines Corporation Remote portlet consumer with enhanced resource URL processing
EP1947575A1 (en) * 2007-01-18 2008-07-23 Wapple.net Ltd Computer system
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US8429185B2 (en) 2007-02-12 2013-04-23 Microsoft Corporation Using structured data for online research
US7917507B2 (en) * 2007-02-12 2011-03-29 Microsoft Corporation Web data usage platform
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US9148437B1 (en) 2007-03-27 2015-09-29 Amazon Technologies, Inc. Detecting adverse network conditions for a third-party network site
KR100851746B1 (ko) * 2007-04-09 2008-08-11 (주) 엘지텔레콤 이동통신 단말기를 포함하는 마크업 페이지 송수신 시스템 및 그 제어방법
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
WO2008148180A1 (en) * 2007-06-04 2008-12-11 Bce Inc. Methods and systems for validating online transactions using location information
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
JP2009043119A (ja) * 2007-08-10 2009-02-26 Fujifilm Corp ウェブ・サーバ・システム
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US8279848B1 (en) * 2007-09-27 2012-10-02 Sprint Communications Company L.P. Determining characteristics of a mobile user of a network
EP2081362B1 (en) * 2008-01-21 2013-07-24 Alcatel Lucent Resource arbitration in a converged multi-media environment
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
GB0802585D0 (en) * 2008-02-12 2008-03-19 Mtld Top Level Domain Ltd Determining a property of communication device
JP4932775B2 (ja) * 2008-04-16 2012-05-16 ヤフー株式会社 ネットワーク端末に表示するページを生成する方法、装置及びプログラム
US8555150B1 (en) * 2008-05-29 2013-10-08 Adobe Systems Incorporated Constraint driven authoring environment
JP2009289123A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd ウェブページデータ提供プログラム、ウェブページデータ提供システム及びウェブページデータ提供方法
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US20090327869A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Online ad serving
US8787579B2 (en) * 2008-06-30 2014-07-22 Verizon Patent And Licensing Inc. Key-based content management and access systems and methods
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US9286045B2 (en) * 2008-08-18 2016-03-15 Infosys Limited Method and system for providing applications to various devices
US8959536B2 (en) * 2008-08-18 2015-02-17 Infosys Limited Method and system for providing applications to various devices
JP4855499B2 (ja) 2008-09-22 2012-01-18 株式会社オプティム 電化製品の種別を決定する情報処理装置、方法、サーバ
US20100082678A1 (en) * 2008-09-30 2010-04-01 Rockwell Automation Technologies, Inc. Aggregation server with industrial automation control and information visualization placeshifting
GB2465138B (en) 2008-10-10 2012-10-10 Afilias Technologies Ltd Transcoding web resources
US20100217873A1 (en) * 2009-02-23 2010-08-26 Xcast Labs, Inc. Method and system for sip access to media and conferences
CN101877136A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 处理图形对象的方法、设备及系统
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US8938533B1 (en) * 2009-09-10 2015-01-20 AppDynamics Inc. Automatic capture of diagnostic data based on transaction behavior learning
US9167028B1 (en) * 2009-09-10 2015-10-20 AppDynamics, Inc. Monitoring distributed web application transactions
US20110087529A1 (en) * 2009-10-14 2011-04-14 Matthew Jason Angell Methods and systems for creation and distribution of promotional materials and gathering of consumer data
US9141724B2 (en) 2010-04-19 2015-09-22 Afilias Technologies Limited Transcoder hinting
GB2481843A (en) 2010-07-08 2012-01-11 Mtld Top Level Domain Ltd Web based method of generating user interfaces
US8438219B2 (en) * 2010-08-19 2013-05-07 At&T Intellectual Property I, Lp Systems, computer program products, and methods for generating custom web pages for mobile devices
GB2483655A (en) * 2010-09-14 2012-03-21 Thunderhead Ltd Device capability modelling and automatic content assembly
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US8769299B1 (en) 2010-10-13 2014-07-01 The Boeing Company License utilization management system license wrapper
US9563751B1 (en) * 2010-10-13 2017-02-07 The Boeing Company License utilization management system service suite
US20120159356A1 (en) * 2010-11-12 2012-06-21 Ryan Steelberg Enhanced World Wide Web-Based Communications
KR101973531B1 (ko) * 2010-12-17 2019-09-02 삼성전자주식회사 복수의 클라이언트 간의 어플리케이션 자동 공유 방법 및 장치
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
KR20120099931A (ko) * 2011-03-02 2012-09-12 삼성전자주식회사 브라우징 방법, 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
CN102655519A (zh) * 2011-03-04 2012-09-05 腾讯科技(北京)有限公司 网络页面信息的处理方法和装置
US8810593B2 (en) * 2011-03-30 2014-08-19 Google Inc. Distributed visualization processing and analytics
US9069459B2 (en) * 2011-05-03 2015-06-30 Microsoft Technology Licensing, Llc Multi-threaded conditional processing of user interactions for gesture processing using rendering thread or gesture processing thread based on threshold latency
US8549579B2 (en) * 2011-07-06 2013-10-01 International Business Machines Corporation Dynamic data-protection policies within a request-reply message queuing environment
CN103890815B (zh) * 2011-08-04 2017-09-12 游戏软件工作室亚洲私人有限公司 用于主管可被远程自动创建、主管和终止的瞬变虚拟世界的方法和系统
US8627204B2 (en) 2011-10-18 2014-01-07 Microsoft Corporation Custom optimization of web pages
US9251126B1 (en) * 2011-11-16 2016-02-02 Google Inc. System and method for using pre-defined character ranges to denote document features
US9064233B2 (en) * 2011-12-22 2015-06-23 Adobe Systems Incorporated Methods and apparatus for device-specific analytics data visualization
US9311598B1 (en) 2012-02-02 2016-04-12 AppDynamics, Inc. Automatic capture of detailed analysis information for web application outliers with very low overhead
JP2013191196A (ja) * 2012-02-17 2013-09-26 Ricoh Co Ltd 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
US9659095B2 (en) * 2012-03-04 2017-05-23 International Business Machines Corporation Managing search-engine-optimization content in web pages
CN102662962B (zh) * 2012-03-08 2014-12-10 北京思特奇信息技术股份有限公司 一种基于网页元素的动态展示方法
JP5658196B2 (ja) * 2012-05-08 2015-01-21 株式会社野村総合研究所 マルチデバイス対応WebサーバシステムおよびWebサーバシステムにおけるマルチデバイス対応方法
CN102710558B (zh) * 2012-05-21 2015-01-28 中兴通讯股份有限公司 适用于多种显示类型的家庭网关的界面显示方法和系统
CN103455493B (zh) * 2012-05-29 2019-05-14 百度在线网络技术(北京)有限公司 用于获取支持结果并进行相应处理的方法、装置和设备
US20140075377A1 (en) 2012-09-10 2014-03-13 Samsung Electronics Co. Ltd. Method for connecting mobile terminal and external display and apparatus implementing the same
US9563713B2 (en) 2012-10-10 2017-02-07 Microsoft Technology Licensing, Llc Automatic mobile application redirection
US20140108413A1 (en) * 2012-10-11 2014-04-17 Dell Products L.P. Responsive Images Service
US9317272B2 (en) * 2013-03-15 2016-04-19 Yahoo! Inc. Computerized system and method for creating a resource URL for rendering the resource in a resource specific application
US10984175B2 (en) 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
US9311422B2 (en) 2013-09-12 2016-04-12 Adobe Systems Incorporated Dynamic simulation of a responsive web page
US20150088970A1 (en) 2013-09-20 2015-03-26 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
CN103685491B (zh) * 2013-12-04 2017-10-17 华为技术有限公司 一种应用服务提供方法、系统及相关设备
US20150156257A1 (en) * 2013-12-04 2015-06-04 Huawei Technologies Co., Ltd. Application service providing method and system, and related device
CN103678600B (zh) * 2013-12-13 2019-07-23 北京奇虎科技有限公司 网页数据的处理方法及设备
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US9588969B2 (en) 2014-05-19 2017-03-07 International Business Machines Corporation Retargeting content segments to multiple devices
AU2015315163B2 (en) * 2014-09-09 2020-07-23 Liveperson, Inc. Dynamic code management
CN104408199A (zh) * 2014-12-15 2015-03-11 北京国双科技有限公司 网络文本发送方法及装置
US9645814B1 (en) * 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
CN106294372B (zh) * 2015-05-15 2019-06-25 阿里巴巴集团控股有限公司 应用程序页面快速访问方法及应用其的移动终端
CN110785749B (zh) * 2018-06-25 2020-08-21 北京嘀嘀无限科技发展有限公司 用于生成宽表的系统和方法
US11734445B2 (en) * 2020-12-02 2023-08-22 International Business Machines Corporation Document access control based on document component layouts
US11893981B1 (en) 2023-07-11 2024-02-06 Seekr Technologies Inc. Search system and method having civility score

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US6161126A (en) * 1995-12-13 2000-12-12 Immersion Corporation Implementing force feedback over the World Wide Web and other computer networks
US5761673A (en) 1996-01-31 1998-06-02 Oracle Corporation Method and apparatus for generating dynamic web pages by invoking a predefined procedural package stored in a database
US6553410B2 (en) 1996-02-27 2003-04-22 Inpro Licensing Sarl Tailoring data and transmission protocol for efficient interactive data transactions over wide-area networks
GB9609431D0 (en) 1996-05-04 1996-07-10 Hugh Symons Group Plc Data processing
US6311197B2 (en) * 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
US6101509A (en) * 1996-09-27 2000-08-08 Apple Computer, Inc. Method and apparatus for transmitting documents over a network
TW347498B (en) * 1996-09-30 1998-12-11 Casio Computer Co Ltd Information supply system
JP3683051B2 (ja) * 1996-10-18 2005-08-17 三菱電機株式会社 データ送信方式
US5956487A (en) * 1996-10-25 1999-09-21 Hewlett-Packard Company Embedding web access mechanism in an appliance for user interface functions including a web server and web browser
US6049831A (en) 1996-11-08 2000-04-11 Gte Laboratories Incorporated System for transmitting network-related information where requested network information is separately transmitted as definitions and display information
CA2198189C (en) * 1997-02-21 2001-05-29 Ibm Canada Limited-Ibm Canada Limitee Internet browser based data entry architecture
GB9706429D0 (en) * 1997-03-27 1997-05-14 British Telecomm Data processing system and method
US6035332A (en) * 1997-10-06 2000-03-07 Ncr Corporation Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants
US6216157B1 (en) * 1997-11-14 2001-04-10 Yahoo! Inc. Method and apparatus for a client-server system with heterogeneous clients
US6167441A (en) * 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
US6229534B1 (en) * 1998-02-27 2001-05-08 Sabre Inc. Methods and apparatus for accessing information from multiple remote sources
JPH11250009A (ja) * 1998-03-04 1999-09-17 Uniden Corp サーバ装置及びウェブデータ変換方式
US6133912A (en) * 1998-05-04 2000-10-17 Montero; Frank J. Method of delivering information over a communication network
JP3202968B2 (ja) * 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
US6300947B1 (en) 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
JP2000112840A (ja) * 1998-09-30 2000-04-21 Matsushita Electric Ind Co Ltd メールシステム
KR100415996B1 (ko) 1998-10-12 2004-01-31 삼성전자주식회사 웹서버에 의한 html문서의 제공방법
SE524391C2 (sv) 1998-12-28 2004-08-03 Spyglass Inc Metod och system för innehållskonvertering av elektroniska dokument för trådlösa klienter.
US6535896B2 (en) 1999-01-29 2003-03-18 International Business Machines Corporation Systems, methods and computer program products for tailoring web page content in hypertext markup language format for display within pervasive computing devices using extensible markup language tools
US7032030B1 (en) * 1999-03-11 2006-04-18 John David Codignotto Message publishing system and method
US6477576B2 (en) * 1999-06-17 2002-11-05 International Business Machines Corporation Methods, systems and computer program products for the automated discovery of a services menu
US6401125B1 (en) * 1999-08-05 2002-06-04 Nextpage, Inc. System and method for maintaining state information between a web proxy server and its clients
US6636863B1 (en) * 1999-09-13 2003-10-21 E. Lane Friesen System and method for generating persistence on the web
JP2001184344A (ja) * 1999-12-21 2001-07-06 Internatl Business Mach Corp <Ibm> 情報処理システム、プロキシサーバ、ウェブページ表示制御方法、記憶媒体、及びプログラム伝送装置
WO2001057652A2 (en) * 2000-01-31 2001-08-09 Mobileq Canada Inc. Method and system for building internet-based applications
EP1117050A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Individual data representation
JP2001222498A (ja) * 2000-02-07 2001-08-17 Isao:Kk コミュニケーションシステム、そのためのサーバ装置、コミュニケーション方法、および、プログラムを記録したコンピュータ読み取り可能な記録媒体
US6845396B1 (en) * 2000-02-25 2005-01-18 Navic Systems, Inc. Method and system for content deployment and activation
US6311180B1 (en) * 2000-03-28 2001-10-30 Linx Data Terminals, Inc. Method for mapping and formatting information for a display device
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US6556217B1 (en) * 2000-06-01 2003-04-29 Nokia Corporation System and method for content adaptation and pagination based on terminal capabilities

Also Published As

Publication number Publication date
WO2002027543A2 (en) 2002-04-04
JP2004510254A (ja) 2004-04-02
EP1641211B1 (en) 2018-07-11
AU2001287920A1 (en) 2002-04-08
GB0122959D0 (en) 2001-11-14
HK1049046A1 (en) 2003-04-25
GB2371896A (en) 2002-08-07
EP1641211A3 (en) 2015-03-04
US7739658B2 (en) 2010-06-15
ES2256292T3 (es) 2006-07-16
KR20030043969A (ko) 2003-06-02
WO2002027543A3 (en) 2002-11-14
US20040049574A1 (en) 2004-03-11
DE60116343D1 (de) 2006-02-02
ATE314781T1 (de) 2006-01-15
DE60116343T2 (de) 2006-08-31
GB0504877D0 (en) 2005-04-13
GB0023570D0 (en) 2000-11-08
GB2371896B (en) 2005-11-09
HK1049046B (zh) 2006-01-20
SG136805A1 (en) 2007-11-29
CN1268103C (zh) 2006-08-02
CN1476712A (zh) 2004-02-18
EP1320972A2 (en) 2003-06-25
EP1641211A2 (en) 2006-03-29
JP4865983B2 (ja) 2012-02-01
EP1320972B1 (en) 2005-12-28

Similar Documents

Publication Publication Date Title
KR100874985B1 (ko) 웹 서버
US7747782B2 (en) System and method for providing and displaying information content
US9916293B2 (en) Module specification for a module to be incorporated into a container document
US9645977B2 (en) Systems and methods for configuring a header and layout of a mobile version of a conventional website
KR100318782B1 (ko) 웹브라우저에서데이터의표시를필터링하고제어하기위한http캐시프록시
US8595186B1 (en) System and method for building and delivering mobile widgets
KR100318778B1 (ko) 텔레비전급표시용인터넷웹페이지의콘텐트수정방법및그시스템
US20020065910A1 (en) Method, system, and program for providing access time information when displaying network addresses
WO2004040481A1 (en) A system and method for providing and displaying information content
JP2004530959A (ja) コンテンツのモバイル装置への配信システム及び配信方法
WO2007070404A2 (en) Customized container document modules using preferences
AU2006326623A1 (en) Remote module incorporation into a container document
WO2007070402A2 (en) Proxy server collection of data for module incorporation into a container document
JP2004021817A (ja) サーバおよびサーバプログラム
US20010039578A1 (en) Content distribution system
US20010049733A1 (en) Content distribution system
JP5393242B2 (ja) データ提供方法および中間サーバ装置
US7831905B1 (en) Method and system for creating and providing web-based documents to information devices
EP2557505A1 (en) Web display program conversion system, web display program conversion method, and program for web display program conversion
US8291311B2 (en) Web display program conversion system, web display program conversion method and program for converting web display program
JP2002236638A (ja) Webページ多様化方法及びWebページ多様化システム
US20030097420A1 (en) Multi-channel delivery system
EP1168162A2 (en) Tag-based user interface
WO2001073561A1 (en) Contents server device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130103

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141219

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee