KR100262432B1 - 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템 - Google Patents

인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템 Download PDF

Info

Publication number
KR100262432B1
KR100262432B1 KR1019970029752A KR19970029752A KR100262432B1 KR 100262432 B1 KR100262432 B1 KR 100262432B1 KR 1019970029752 A KR1019970029752 A KR 1019970029752A KR 19970029752 A KR19970029752 A KR 19970029752A KR 100262432 B1 KR100262432 B1 KR 100262432B1
Authority
KR
South Korea
Prior art keywords
client
page
server
document
setup
Prior art date
Application number
KR1019970029752A
Other languages
English (en)
Other versions
KR19980018172A (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 KR19980018172A publication Critical patent/KR19980018172A/ko
Application granted granted Critical
Publication of KR100262432B1 publication Critical patent/KR100262432B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Digital Computer Display Output (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명에 개시된 메커니즘은 인터액티브 프로세싱 시스템에 기초한 클라이언트-서버에서 인터액티브 어플리케이션을 실행하기 위한 것으로서, 이들 어플리케이션은 문서로서 클라이언트에 표시된다.
본 발명의 메커니즘은 문서 페이지의 프리젠테이션을 위해 클라이언트 시스템 자원에 관계없이 문서를 기술하고, 페이지 셋업을 위해 실질적인 기능적 특징만을 결정하기 위해 제안되었다. 어플리케이션의 프리젠테이션을 위해 모든 가능한 시스템 자원에 공평하도록, 대화의 기술은 어플리케이션을 실행하기 위해 요구되는 최소 필요 사용자 상호작용 장치와 같은 기능적인 면에만 국한될 필요가 있다.
실제 프린젠테이션 셋업은 사용자에 의해 상호작용의 가능한 모드가 결정되는 클라이언트측(1)에 위치된 하드웨어 특정 자원 관리 장치(11)에 의해 생성된다. 서버(2)와 클라이언트(1)간의 대화 관련 정보의 전송(3)에 앞서, 문서는 클라이언트측의 페이지 셋업을 위해서만 사용되는 페이지 셋업 정보와 사용자 대화에 관련된 페이지 정보 내용으로 분리하여 기술된다. 이 페이지 셋업 정보는, 예를 들어, 클라이언트측의 정보를 프리캐싱함으로써 실제 대화의 시작에 앞서 클라이언트측에 제공될 수 있다.
제안된 메커니즘 및 클라이언트-서버 구조는 이동 클라이언트가 무선 네트워크를 통해 어플리케이션 서버와 통신하는 이동 컴퓨팅의 분야에서 유리하게 적용될 수 있으며, 이것은 서버에 제공된 균일한 어플리케이션이 프리젠테이션을 위해 각종 상이한 시스템 자원을 포함하는 원격 클라이언트에서 대화를 프리젠테이션할 수 있게 한다. 또한, 어플리케이션의 교환 혹은 어플리케이션의 수정은 전체 클라이언트(도 1)가 아닌 서버측에서만 실행되어야 한다.

Description

인터액티브 어플리케이션 실행 방법 및 클라이언트-서버 다이얼로그 시스템{DEVICE INDEPENDENT AND TRANSFER OPTIMIZED INTERACTIVE CLIENT-SERVER DIALOG SYSTEM}
본 발명은 인터액티브 프로세싱 시스템(interactive processing system)에 기초한 클라이언트-서버(a client-server)에서 인터액티브 어플리케이션(interactive application)을 실행하는 것에 관한 것으로서, 인터액티브 어플리케이션은 사용자(a user)와 대화가능한 문서(documents)로서 클라이언트에 표시된다. 특히, 본 발명은 이동 클라이언트(a mobile client)가 무선 네트워크(a radio network)를 통해 어플리케이션 서버(a application server)와 통신하는 이동 컴퓨팅(mobile computing)에 관한 것이다.
이동 네트워크 컴퓨팅(mobile network computing) 분야에 있어서, 자동차에서와 같이 핸드헬드(handhelds), 랩탑(laptops)[노트북(notebooks)], 팜탑(palmtops), 혹은 내장형 컴퓨터(on-board computers)와 같은 휴대형 컴퓨터(portable computer)가 사용되고 있다. 통신 링크(communication links)는 무선 통신 네트워크(a wireless telecommunication network)를 통해 휴대형 단말 장치(a portable end-device)(클라이언트)와 고정 어플리케이션 서버(a stationary application server)간에 유지된다. 불행히도, 이동 컴퓨팅은 시스템 성능의 측면에서 많은 제약을 가할 수 있다.
예컨대, 통상의 클라이언트 하드웨어(common client hardware)의 성능은 디스크 오퍼레이팅 시스템(a Disk Operating System : DOS)과 종종 비슷하며, 이에 따라 어플리케이션 소프트웨어(application software)는 제한을 받을 수 있다. 게다가, 서버와 통신하는 데 사용되는 시스템 오버헤드는 이동 컴퓨팅 시스템의 전체 성능에 더욱 영향을 미칠 수 있다.
현재 사용되는 이동 컴퓨터의 디스플레이 자원(display resources)은 일반적으로 데스크탑 컴퓨터(desktop computers) 혹은 워크스테이션(workstations)에 비해 한정되어 있다. 또한, 이들 디스플레이는 종종, 서로서로 매우 상이한 디스플레이 포맷을 포함한다.
현재 사용되는 이동 컴퓨터는 정보의 사용자 입/출력(user input/output)을 위해 매우 제한되고 다양한 자원을 제공한다. 예를 들면, 자동차 산업에 사용되는 내장형 컴퓨터는 종종 소수의 간단한 입력 키(input keys)만을 제공한다. 반면에, 다른 장치들은 키보드 전체를 구비한다. 어떠한 결점도, 클라이언트측에 설치된 드라이버 소프트웨어(driver software)를 사용하여 완전한 기능 입력 장치(a full function input device)를 에뮬레이션(emulation)함에 의해 보완될 수 있다. 이는 어플리케이션에게는 투명하다.
결국, 이동 컴퓨팅을 위해 이용되는 네트워크는 사용하기에 매우 비쌀 수 있다. 또한, 이들 네트워크는 낮은 전송 속도를 제공할 수 있다.
IBM사의 System/370과 같은 호스트 메인프레임 컴퓨터(a host mainframe computer)와 주변 퍼스널 컴퓨터(peripheral Personal Computers)(PC)간의 대화형 통신(conversational communication) 분야에 있어서 일반적인 해결법이 존재한다. 각각의 클라이언트에 설치된 특정 드라이버 소프트웨어는 3270 터미널 에뮬레이션(terminal emulation)을 가능하게 한다. 이들 시스템에 제공된 어플리케이션은, 클라이언트가 한명 이상의 사용자와 상호 대화를 가능하게 한다는 것을 인식하지 못한다. 또한, 이들 클라이언트의 디스플레이 자원은 터미널 클래스의 제한된 세트(a limited set of terminal classes)로 분류된다. 최소 디스플레이 크기는 이들 디스플레이 클래스중 하나에 대하여, 라인당 80 문자, 24개의 라인이다. 어플리케이션은 일반적으로 클라이언트측의 다이얼로그 페이지(dialog pages)를 포맷할 책임이 있다. 어플리케이션은 클라이언트측 상에서의 어플리케이션의 프리젠테이션을 위한 시스템 자원을 알아야 하고, 필요하다면 어플리케이션을 구성해야 한다. 따라서, 이러한 3270 에뮬레이터 해결법은 각각의 클라이언트측에 제공된 별개의 하드웨어 플랫폼(hardware platform)에 관계없이 획일적인 호스트 통신(uniform host communication)(대화)만을 가능하게 한다.
또 다른 일반적인 통신 방식은, 예를 들어, 인터넷(Internet)에서 일반적으로 사용되는 "하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol :HTTP)" 통신 프로토콜이다. 이 프로토콜은 이미 클라이언트측에서 상이한 하드웨어 플랫폼의 사용을 가능하게 하며, 그에 따라 단지 하나의 고유 프로토콜만을 이용한다. 그러나, 인터넷은 정보 기반형 시스템(an information based system)이지, 다이얼로그 기반형 시스템은 아니다. 따라서, 인터넷은 소위 "웹 브라우저(Web Browser)"에 의해 검색될 수 있는 다량의 정보만을 제공한다. 게다가, 이들 브라우저의 대화형 기능들은 매우 한정되어 있고 정보의 브라우징 메커니즘(browsing mechanism) 및 업-앤-다운로딩(up-and-downloading)에만 집중되어 있다. 결국, 이들 브라우저의 구현을 위한 필요한 시스템 자원은 일반적으로 이동 컴퓨터 시스템의 관점에서 볼 때, 상당히 과도하다.
이동 컴퓨팅에서, 기존의 휴대용 컴퓨터는 일반적으로 로컬하게 설치된 소프트웨어를 사용하며, 이에 따라 제한된 성능을 갖게 돤다. 더욱이, 각각의 어플리케이션 소프트웨어의 변경이 각각의 클라이언트에서 이루어져야 한다. 이는 비용이 많이 들고, 시간 소모적이며 에러에 취약하다.
따라서, 본 발명의 목적은 전술한 기존의 해결법이 갖는 결점을 해결하기 위해, 클라이언트-서버 기반 시스템(a client-server information handling system)에서 장치 독립성을 허용하면서 최적화된 대화를 전송할 수 있는 방법 및 시스템을 제공하는데 있다. 더욱이, 본 발명은 어플리케이션에 대한 변경이 서버측상에서만 이루어 질 수 있게 하는 클라이언트-서버 통신을 위한 방법 및 시스템을 제공하는 데 그 목적이 있다.
본 발명은 정보 처리 시스템에 기초한 일반적인 클라이언트 서버(a generic client-server)에서 대화형 다이얼로그를 처리하기 위한 메커니즘(a mechanism), 각각의 다이얼로그 시스템 구조(a dialog system architecture), 및 각각의 기본적인 클라이언트의 하드웨어에 관계없이 멀티미디어 프리젠테이션(multimedia presentation)이 가능하도록 클라이언트측에 사용될 수 있는 특별한 터미널 장치(a particular terminal device)를 제공함으로써 상기 목적을 달성한다. 특히, 클라이언트의 터미널 장치는 특정한 하드웨어를 요구하는 어플리케이션에 대하여 자동 구성(self-configuration)이 가능하다.
본 발명의 기본적인 개념은, 각각의 (문서) 페이지의 프리젠테이션을 위한 클라이언트 시스템 자원에 관계없이 상호 대화용 문서를 기술하고, 페이지 셋업을 위한 단지 실질적인 기능적 특징만을 결정한다는 것이다. 어플리케이션의 프리젠테이션을 위한 모든 가능한 시스템 자원을 허용하려면, 대화(다이얼로그 및 예상 응답)의 기술은, 어플리케이션(a definite application)을 실행하는 데 사용되는 필요 최소한의 사용자 상호작용 장치(minimum necessary user interaction devices)(버튼 등)와 같은 기능적인 면에만 국한된다.
실제 프리젠테이션 셋업은, 클라이언트측에 위치한 하드웨어 특정 자원 관리 장치(a hardware specific resource management device)에 의해 생성된다. 이 장치는, 예를 들어, 키보드(a keyboard), 터치스크린(a touchscreen), 혹은 소프트웨어 에뮬레이트형 버튼(software emulated buttons)을 통해 사용자에 의한 가능한 상호작용 모드를 결정한다. 또한, 이 장치는 클라이언트측상의 추상적인 기능적 멀티미디어 요소를 프리젠테이션하는 것을 담당한다. 바람직한 실시예에서, 이 관리 장치는 네트워크와 클라이언트의 프리젠테이션 장치(예를 들면, 클라이언트 디스플레이) 사이에 제공되는 자원 적응 소프트웨어 층(resource adaptation software layer)으로서 구현된다. 그러면, 어플리케이션은 각각의 현존 클라이언트에 의해 구현될 수 있는 사용자 입력 메카니즘을 이용하기만 하면 된다.
서버와 클라이언트 간에 대화 관련 정보를 전송하기 전에, 문서는 실제 사용자 대화(an actual user conversation) 그 자체를 위해서가 아니라, 단지 클라이언트측상에서의 페이지의 셋업만을 위해서 사용되는 페이지 셋업 정보와, 어플리케이션과 사용자간의 대화와 관련되고 차후 대화 단계에서 전송되는 페이지 정보 내용을 분리하는 것에 의해 기술된다. 이러한 페이지 셋업 정보는, 예를 들어 클라이언트측상에 그러한 정보를 (사전)캐싱함으로써, 실제 대화를 시작하기에 앞서 클라이언트측에 제공될 수 있다.
따라서, 본 발명에 의하면, 서버 시스템상의 어플리케이션은 프리젠테이션을 위한 각종 상이한 시스템 자원을 포함하는 원격 클라이언트(remote client)에서 대화를 프리젠테이션할 수 있다. 더욱이, 어플리케이션의 변경 혹은 어플리케이션의 수정은 모든 클라이언트에서가 아니라 단지 서버측에서만 수행되면 된다.
또한, 기반 통신 네트워크의 전술한 결점은, 지능형 캐싱 메커니즘과, 전송된 정보를 줄일 수 있는 효율적인 프로토콜에 의해 해결되며, 이에 따라 이동 컴퓨팅의 성능이 개선된다. 문서의 일부 구성요소는 클라이언트측에서 캐싱될 수 있다. 바람직하게는, 사전로드되고 어플리케이션의 실행 시간동안 변경되지 않는 문서 정보를 캐싱하기 위한 정적 캐시(a static cache)와, 어플리케이션의 실행시간동안 수집되는 정보를 캐싱하기 위한 동적 캐시(a dynamic cache)가 제공된다. 이들 두 캐시 메모리는 캐시 관리자(a cache manager)에 의해 제어될 수 있다.
객체 지향 프로그래밍 실시예에서, 페이지 셋업 정보는 기능적인 객체가 클라이언트 프리젠테이션 하드웨어 플랫폼(client presentation hardware platform)과 무관하게 정의될 수 있는 기능적인 객체(functional objects)와, 프리젠테이션 객체에 의해 표현될 수 있다. 그 제안된 구조를 사용하는 것에 의해, 문서를 특정 클라이언트 하드웨어에 맞게 적응시키는 것은 자동적으로 이루어지게 되며, 사용자에게 투명하다.
본 발명의 다른 실시예에서, 문서의 멀티미디어 프리젠테이션을 위한 특수한 객체들, 예를 들어, 음성, 버튼, 스크린 셋업 등과 관련된 객체들이 제공된다. 추상적 멀티미디어 기능적 요소가 더욱 제공됨으로써, 클라이언트의 초기 알려지지 않은 멀티미디어 자원에 자동적으로 적응할 수 있다.
문서(페이지)의 프리젠테이션은 컴퓨터 디스플레이(a computer display)상에서 볼 수 있는 페이지에 국한될 필요는 없다. 더욱이, 사운드, 동화상(motion pictures) 등과 같은 멀티미디어 구성요소의 구현에 대해 전혀 제한을 둘 필요는 없다.
전송된 정보 스트림은 전송을 위한 대역폭을 최소화하기 위해 더욱 압축 및 확장될 수 있다. 클라이언트측의 사용자 질의로 인한 서버 액세스와 같은 어플리케이션을 구동하기 위해 서버측에 필요한 특정 정보의 전송을 가능하게 하기 위해 서버와 클라이언트간 정보 흐름은 양방향인 것이 바람직할 수 있다. 예를 들면, 클라이언트는 멀티미디어 프리젠테이션 객체를 표시하기 위한 자신의 시스템 자원에 관해 서버에 통지할 수 있다.
본 발명은 클라이언트의 디스플레이 포맷에 무관하고 그 디스플레이 포맷에 자동으로 적응할 수 있으면서, 서로에 대해 박스의 상대 치수를 유지할 수 있는 확장가능한 박스를 사용하여 구현될 수 있다. 각각의 박스는 멀티미디어 프리젠테이션 객체(a multimedia presentation object)를 포함할 수 있으며, 이 경우 확장가능한 박스의 목적은 각각의 서버에 좌우되며 각각의 어플리케이션에 의해 결정된다. 본 발명의 바람직한 실시예에서, 이들 박스는 문서의 연속적인 라인들에서 제공된다.
클라이언트측에 표시된 다이얼로그 마스크(dialog masks)는 입력 어레이를 포함하는데, 이 경우 클라이언트에서 서버로의 전체 문서의 중간 전송(an intermediate transmission)과 대조적으로 다이얼로그 마스크의 작은 일부분만이 갱신될 필요가 있을 수 있다. 예를 들면, 도 3에 도시된 의학용 어플리케이션의 경우에 있어서, 어레이내의 소정 필드를 클릭하면 건강 회사의 목록이 표시되고 이들 회사중 한 회사가 차후의 다이얼로그의 단계를 위해 선택될 수 있다. 이것은 사용자에 의한 어떠한 상호작용도 없이 클라이언트로부터 서버로 전송되는 소위 "자동-전송 필드(auto-send fields)"를 사용함으로써 달성된다.
본 발명의 이러한 목적 및 기타 목적, 특징 및 장점은 첨부 도면을 참조함으로써 보다 잘 이해될 것이다.
도 1은 이동 클라이언트가 고정 어플리케이션 서버(a stationary application server)에 접속되는 본 발명에 따른 바람직한 구조를 도시하는 블록도
도 2는 확장가능한 박스에 기초한 예시적인 시각(문서) 페이지 셋업을 도시하는 도면
도 3은 의료 환자 정보 처리의 분야에서 예시적인 대화를 도시하는 도면
도 4a 및 도 4b는 각각의 다이얼로그 마스크의 프리젠테이션을 위한 상이한 시스템 자원을 제공하는 두 클라이언트에 표시되는 동일한 어플리케이션 다이얼로그의 두 스냅샷
도면의 주요 부분에 대한 부호의 설명
1 : 이동 클라이언트 2 : 고정 서버
4, 5 : 캐시 관리 모듈
6 : 어플리케이션 프로그램 인터페이스(API)
9 : 가상 터미널 모듈
11 : 하드웨어 종속 디바이스 드라이버 유닛
12 : 정적 부분(캐시) 23 : 더미 확장가능 박스
47 : 어플리케이션 원도우 53 : 스크롤바
클라이언트-서버 구조
도 1은 이동 클라이언트(a mobile client)(1)가 고정 서버(a stationary server)(2)와 통신하는 클라이언트-서버 시스템(a client-server system)의 바람직한 구조를 도시한다. 이 경우, 상기 고정 서버(2)는 서버에 적합한 임의의 컴퓨터 시스템일 수 있다. 서버 및 클라이언트는 무선 네트워크(a wireless network)(3)를 통해 상호접속되어 있다. 하지만, 본 발명은 무선 네트워크에 국한되지 않는다. 인터넷 혹은 사설 인트라넷(private Intranet)으로서 ISDN(Integrated Switching Digital Network) 혹은 기타 광역 네트워크(wide area network :WAN) 혹은 근거리 통신망(local area network :LAN)과 같은 통신 네트워크가 사용될 수 있다. 상점들내에 제공되는 것과 같은 적외선(IR) 광 제어 통신망도 또한 사용될 수 있다.
어플리케이션의 실행은 클라이언트측상에서의 어플리케이션의 프리젠테이션에 대해, 서버와 클라이언트간의 정보 교환을 수반한다. 이 정보는 프리젠테이션의 셋업과 관련된 정보와, 문서의 정보 내용으로 간주될 수 있는 사용자 상호작용에 의해 교환되는 정보로 구분될 수 있다. 이들 정보 스트림은 서버(2)와 클라이언트측(1)에 각기 제공된 캐시 관리 모듈(cache management module)(4, 5)을 통과한다. 임의의 캐싱된 정보에 대해서는, 참조 정보(a reference information)만이 전송될 뿐이다. 캐시 관리 모듈(4,5)을 통과할 필요가 없는 예외적인 정보는 서버(2)와 클라이언트(1)간에 교환되는 기본적인 제어 및 명령(질의) 정보이다.
모든 종류의 어플리케이션이 서버에서 실행될 수 있는 어플리케이션 프로그램 인터페이스가 또한 제공된다. 이 경우, 어플리케이션 프로그램 인터페이스(Application Program Interface :API)(6)을 직접 이용하거나, 혹은 예를 들어, 호스트-PC 통신에 이용될 수 있는 적응층(adaption layer)(7)을 삽입하는 것에 의해, 어플리케이션이 실행된다.
전송된 정보 스트림은 클라이언트측(1) 상의 이미 캐싱된 정보의 측면에서 볼 때, 축소되는 것이 유리하다. 정보 스트림은 무선 전송 라인(a wireless radio transmission line)(3)을 통해 이동 클라이언트(1)로 전송된다. 클라이언트측(1)의 캐시 관리 모듈(5)은 스트림을 원래의 형태로 다시 확장시킨다. 문서 내용 정보의 경우, 확장된 스트림은 페이지 생성 모듈(a page generation module)(8)에 의해 해석되어 가상 터미널 모듈(a virtual terminal module)(9)로 보내진다. 가상 터미널 모듈은 페이지의 추상적 기능적인 기술에 근거하여 실제(문서) 페이지를 구축하고, 이 페이지는 하드웨어 종속형 디바이스 드라이버 유닛(a hardware dependent device driver unit)(11)에 의해 기존의 클라이언트 하드웨어(10)에 표시된다.
본 실시예에서, 디바이스 드라이버 유닛(11)은 또한 소정 수의 프리젠테이션 프리미티브를 제공한다. 이들 프리미티브를 사용하여, 추가적인 통지가 클라이언트의 터미널에 의해 표시될 수 있다. 이는 가상 터미널 모듈(9)에 관계없이 표시된다. 예컨대, 경고 신호, 원격측정 데이터 등이 표시될 수 있다. 따라서, 클라이언트에 의해 제공된 로컬 어플리케이션, 예를 들어 자동차의 엔진 데이터, 혹은 위치 측정 시스템(global positioning system :GPS) 데이터와 같은 원격측정 데이터의 질의를 위한 어플리케이션이 처리될 수 있다. 이들 데이터는 또한 장치 종속형 드라이버 유닛(11)의 프리젠테이션 프리미티브를 이용하여 표시될 수 있다.
문서 기술(Document Description)
본 발명에 따르면, 문서, 즉 셋업 및 정보 내용의 기술은, 클라이언트의 개별 프리젠테이션 자원들의 측면에서 볼 때, 추상적이고 장치 독립적인 방식으로 수행된다. 문서의 구체적인 물리적 의미는 예를 들어 페이지 단위로 문서가 클라이언트의 터미널 장치(10)에 표시될 때 최초로 제공된다. 프리젠테이션의 외양(appearance)은 개별 클라이언트의 프리젠테이션 능력에 따라 다를 수 있다. 그러나, 문서의 기본적인 요소 및 그에 따른 기능성은 추상적인 기술로 인해 유지된다.
본 발명에 따라 문서를 생성하기 위한 실시예가 다수 존재한다. 제 1 실시예에서, 문서의 생성은 형식 기술 언어(a formal description language)를 이용하여, 순전히 텍스트 형식(a pure textual form)으로 달성될 수 있다. 다른 실시예에서, 문서의 생성은 개별 API 기능을 이용하여, 페이지 요소를 구성함으로써 실현된다. 따라서, 문서의 내부 표현을 위한 각각의 데이터 구조는 어플리케이션의 프로그램 코드내에 명시적으로 생성되며, 이와 함께 그 기술은 파서(a parser)를 이용한 형식 언어에 의해 내부 페이지 프리젠테이션으로 변환된다.
전술한 실시예에서, 문서는 정적 부분과 제 2 동적 부분으로 세분된다. 정적 부분은, 어플리케이션과 사용자간의 대화형 다이얼로그에 대응하는 문자 패턴 의 일부의 보유(retention) 및 제거(elimiation)를 제어하는데 사용되는 다이얼로그 마스크(a dialog mask)에 대응하며, 제 2 동적 부분은 문서의 입력 및 출력 필드의 내용 혹은 사용자에 의한 필드의 실제 선택에 대응한다. 전송전에, 두 부분은 하나의 문서로 생성되나, 전송 단계에서는 별개로 취급된다. 문서의 정적 부분(즉, 캐시(12))이 클라이언트측(1)에 이미 제공되어(즉, 캐싱되어) 있기 때문에, 동적 정보만이 기존의 마스크내에 삽입되도록 클라이언트에게 전송될 필요가 있을 뿐이다.
본 실시예에서, 문서는 다수의 중첩 라인으로 기술된다. 각각의 라인은 적어도 하나의 나란하게 배치된 박스를 포함한다. 그 박스는 제공된 프리젠테이션 포맷으로 자동 확장되고 출력 정보(예를 들면, 텍스트) 혹은 입력 필드와 같은 적어도 하나의 형상 요소에 대응한다. 라인의 높이는 가장 큰 박스에 의해 결정된다. 라인내의 박스는 최대 라인 높이에 대하여 중심에 위치될 수 있거나, 혹은 라인의 상부 혹은 하부에 표시될 수 있다. 라인(20)내에 표시된 박스(20)는 나란히 정렬되지만, 또한 가장 넓은 라인의 최대 폭, 적어도 각각의 클라이언트의 프리젠테이션 장치의 최대 물리적인 폭 포맷까지 확장될 수 있다. 이것은 도 2에 참조로서 예시되어 있으며, 전체적인 폭은 제 2 라인(22)의 폭에 의해 결정된다. 제 1 라인내에 표시된 박스(20)는 그 폭까지 확장되어 있다. 더미(빈) 확장가능한 박스(dummy expansible boxes)(23)는 중앙에 혹은 오른쪽 정렬된 위치에 표시된 기능적 박스들의 전면에 위치하거나 그 기능적 박스에 부착되어 있다. 각각의 AUTO_FILL(확장가능한) 박스는 동일한 라인(행(row))내 기존의 AUTO_FILL 박스의 총 수에 대하여 좌측 빈 공간의 동일한 비율을 차지할 수 있으며, 이로써 박스를 임의의 위치에 장치 독립적으로 위치시킬 수 있다.
또한, 박스는 기능적인 요소뿐 아니라, 다수의 라인 혹은 기타 논리적인 페이지를 포함할 수 있다. 이에 따라, 재귀적 순환(recursive nesting)이 가능하다. 따라서, 문서는 의도된 시스템 자원 독립성에 영향을 끼치지 않고 자유로이 설계될 수 있다.
상기 기술 언어 개념에 의해 생성된 한 (문서) 페이지의 실제적인 물리적 크기는 클라이언트측의 표시 장치에 의해 전적으로 결정된다. 따라서, 어플리케이션의 관점에서 볼 때, 절대적인 프리젠테이션 크기는 명시되지 않는다. 입력 및 출력 필드를 위해 사용되는 문자 폭 혹은 라인의 수만이 명시적 한도내에서 결정될 수 있다. 그러나, 최종적인 크기는 클라이언트에서의 문자 세트에 좌우된다.
각각의 확장가능한 박스는 기술된 문서의 하나 이상의 개별적인 기능 요소에 대한 프레임을 나타낸다. 대화는 이들 요소를 결합함으로써 설계될 수 있다. 전술한 실시예의 요소는 표 1에 도시되어 있다. 이는 예시적인 것이다. 왜냐하면,개별 클라이언트 하드웨어에 의해 지원될 수 있는 모든 종류의 멀티미디어 구성요소가 포함될 수 있기 때문이다. "AUTO_FILL"의 필드 폭을 명시함으로써, 각각의 확장가능한 박스는 그 전체 라인 폭이 가장 넓은 라인의 폭까지, 적어도 표시된 디스플레이의 물리적인 폭까지 연장될 수 있다. 2 이상의 필드가 이러한 파라미터를 포함하면, 이들 박스 모두는 비례적으로 확장된다. 입력 필드에 대한 '자동 활성(auto-activation)' 속성과, 1/n 선택 필드는, 임의의 선택 혹은 입력 확인이 버튼의 활성화로서 취급된다, 즉, 대응하는 메시지가 서버에 전송된다는 것을 의미한다. 이들 기능의 구현을 위한 형식 기술 언어가 이하 본 명세서에 제시된다.
각각의 필드 요소는 다수의 속성을 포함한다. 이들 속성의 일부는 모든 필드 타입에 대하여 유사하고, 나머지는 각각의 필드 혹은 소정 수의 필드에 대하여 특정되어 있다. 폭 및/혹은 높이가 결정되지 않은 필드에 대해 각각의 박스 크기는 표시된 필드 내용으로부터 계산된다. 필드의 사전결정된 폭 및/혹은 높이가 예를 들어, 선택된 문자 세트의 표준 문자 라인(a standard character line)의 배수인 경우, 넓은(spacious) 프리젠테이션은 그 필드 타입에 따라, 절단되거나, 분해되거나, 혹은 수동으로 프리젠테이션 공간의 가시(visible) 부분내로 스크롤된다.
도 4a 및 도 4b에는 2개의 상이한 클라이언트 터미널 장치(40, 41)상에서의 어플리케이션 다이얼로그 마스크의 디스플레이 프리젠테이션이 도시되어 있다. 이들 클라이언트는 문서의 프리젠테이션을 위해 서로 상이한 시스템 자원을 갖는다. 도 4a의 장치는 디스플레이 영역(display area)(42)과, "OK", "Cancel" 및 "Func" 실행을 위한 3개의 기능키(43, 44, 45)와, 디스플레이 네비게이션(display navigation)을 위한 화살표키(46)를 포함한다. 디스플레이상에는 어플리케이션 다이얼로그 원도우(application dialog window)의 현재 스냅샷(snapshot)이 도시되어 있다.
이와 대조적으로, 도 4b에 도시된 터미널 장치는 상이한 형상 및 크기의 디스플레이(a display)(47)와, 기능키(43, 44, 45) 및 화살표 키(46)를 대신하는 8개의 기능키("F1-F8")(48)와, 디스플레이 네비게이션을 위한 트랙볼(a trackball)(49)을 포함한다.
도 4b에서 알 수 있는 바와 같이, 어플리케이션 원도우(47)는 모니터 타입(a monitor type), 머더보드 타입(a motherboard type) 혹은 사운드카드 타입과 같이 다수의 컴퓨터 부품을 디스플레이하는 상부(an upper portion)(50)를 포함한다. 또다른 원도우 부분(51)에는, 상부 원도우(50)내의 각각의 항목에 대한 이용가능한 배경 정보가 디스플레이되어 있다. 항목은 "F1" 버튼을 누르면 선택되고, "F2" 버튼을 누르면 취소되는데, 이는 디스플레이의 하부(52)에서 사용자에게 표시되어 있다. 사용자는 트랙볼(49)을 이용해 상부 디스플레이 원도우를 처음부터 끝까지 스크롤할 수 있으며, 이 경우 실제 아이템은 스크롤바(슬라이더)(a scroll bar)(53)에 접속된 커서 바(a cursor bar)에 의해 밝게 표시된다. 도 4b의 터미널 장치(41)의 경우, 필요한 상호작용 수단("OK" 및 "Cancel" 기능)은 기존 물력적 기능키(48)로 매핑되고, 이러한 맵핑은 또한 디스플레이(47) 하부의 추가적인 정보 라인(52)에서 스크린(47)에 디스플레이된다.
특히, 도 4a에 도시된 장치(40)의 디스플레이 영역(42)은 도 4b에 도시된 디스플레이(47)에 비해 크기가 작다. 결과적으로, 추가의 슬라이더(a slider)(54)가 디스플레이(42)의 우측에 디스플레이되는데, 이는 현재의 페이지가 클라이언트 터미널(40)에 의해 물리적으로 제공된 공간 보다 더 수직인 공간을 필요로 하기 때문이다.
페이지 설명 언어
이어서, 전술한 기능성이 구현될 수 있는 형식 기술 언어가 기술된다. 이 형식 언어에 의해, 대화형 다이얼로그 및 상호작용 특징(interactive features)이 기술된다. 도 3에 도시된 예시적인 다이얼로그는 다음과 같은 의사 코드(pseudo code)에 따라서 기술될 수 있다.
Figure pat00001
예시적인 문서는 사용자의 표준 응답 "OK", "Cancel" 및 "F0"의 리턴에 대해 구성된 것이다. 클라이언트 터미널상의 이들 응답의 프리젠테이션은 각각의 하드웨어 자원에 좌우된다. 클라이언트의 하드웨어가 이들 기능에 대해 적절한 기능 요소, 예를 들어, 키보드의 기능키를 제공하는 경우, 추가적인 요소가 클라이언트의 디스플레이상에 표시될 필요가 없다. 반면에, 클라이언트가 이러한 키를 제공하지 않으면, 각각의 기능들이 클라이언트의 디스플레이상에 표시될 수 있다.
문서를 기술하기 위한 형식 언어가 다음과 같이 도시된다. 간결하게 하기 위해, 단지 기본 데이터 타입만이 언급된다.
Figure pat00002
어플리케이션 프로그램 인터페이스
소정 어플리케이션에 대한 문서의 생성을 위해, 다음과 같은 어플리케이션 프로그램 인터페이스(API)를 사용하는 것이 바람직할 수 있다. API는 모든 필요한 구조를 생성하기에 충분한 몇개의 기본 기능만을 포함하면 된다.
문서의 내부 표현은 사용자가 볼 수 없게 할 수 있다. 문서는 동적 출력 필드의 정의를 위해 혹은 선택 필드에서의 사용자의 선택을 위해, 사전결정된 텍스트로서 혹은 입력 필드에 대한 코멘트로서 사용되는 동적으로 변하는 정보 뿐만 아니라, 전송된 정보 스트림의 정적 부분(다이얼로그 마스크)을 저장한다. 이들 동적 데이터는 전송 예정인 정보 스트림의 생성 단계에서만 존재하며, 그후에는 폐기된다. 이 결과, 기타 동적 정보의 첨부 후 이전 데이터가 다시 전송되는 것이 방지된다. API를 사용함으로써 문서의 동적 부분은 어느 때나 수정될 수 있으며 각각의 정적 부분(다이얼로그 마스크)에 관계없이 클라이언트에 전송될 수 있다.
전송된 정보 스트림은 제어 명령(control command) 및 질의 명령(query command), 혹은 추가의 동적 데이터에 의해 확대될 수 있으며, 그 완전한 정보 패킷은 하나의 블럭으로서 클라이언트에게 전송될 수 있다.
다음은 C-언어로 작성된 프로그램 코드중 일부를 발췌한 것으로, 도 3에 도시된 예시적인 대화(다이얼로그)의 생성을 나타낸다. 각각의 속성명은 접두사 "TT_"에 의해 확장되는 허용된 기술 언어 파라미터를 포함한다. 도 3에 도시된 의학용 어플리케이션에서, 어레이 내의 하부 필드(30)를 클릭하면, 건강 보험 회사의 리스트가 표시되며, 이들 회사중 하나를 선택하여 다이알로그의 이후의 단계로 진행할 수 있다.
Figure pat00003
이어, API에 의한 함수가 열거된다. 가능한 리턴 코드는 "tt_api.h"로 지정된 API 헤더 파일의 각 코멘트로부터 축적될 수 있다.
TTDocHandle ttNewDocument(void)
이 함수는 새로운 빈 문서의 생성을 위해 사용된다. 리턴된 핸들은 이러한 문서에 대한 모든 연산에 대하여 명명되어야 한다. ("포인터(pointer)"와 대조적으로, "핸들(handle)"은 객체에 대한 추상적 참조 (용어)이다.
int ttFreeDocument(TTDocHandle handle)
각각의 문서에 대해 내부적으로 다수의 자원이 할당될 것이다. 이 경우, 그 문서가 더 이상 필요없으며, 이들 자원은 이 함수에 의해 완전히 다시 해제될 수 있다.
int ttFreeDynamic(TTDocHandle handle)
이 함수는 문서의 모든 동적 데이터를 해제시킬 것이며 문서의 동적 부분이 함수 "ttAddDyn2DataStream"에 의해 정보 스트림내에 삽입될 때 자동적으로 실행될 것이다.
TTDocHandle ttParseDocument(char *string)
TTDL 문서가 널-종료 버퍼(a null-terminal buffer)(C-스트링)에 제공될 때, TTDL 문서는 이 함수에 의해 문서 핸들(a document handle)로 변환될 수 있다. 성공적인 변환 후, 이 함수는 문서 핸들을 전달한다.
char *ttLastParseError(void)
이 함수는 문서를 스캐닝 혹은 파싱(parsing)하는 동안 각각의 마지막 에러를 지정하는 스트링(a string)에 대한 포인터(a pointer)를 운반한다.
TTDocHandle ttReadDocument(char *filename)
TTDL 포맷이 텍스트 파일(a text file)로 제공될 때, TTDL 포맷은 이 함수에 의해 내부 포맷으로 변환될 수 있다. 성공적인 판독 및 변환 후 문서 핸들이 리턴된다.
int ttWriteDocument(TTDocHandle handle, char *filename)
이 함수에 의해, 문서 핸들에 의해 제공된 문서는 TTDL 텍스트 문서로서 파일에 기록될 수 있다.
int ttAddReply(TTDocHandle handle, int button, char *modifier)
여기서, 표준 응답 버튼(a standard response button)이 문서에 대해 결정될 수 있다. 무수정 타이틀(no modified title)이 필요하면, 각각의 '널' 포인터가 명명되어야 한다.
int ttAddRow(TTDocHandle handle)
이 함수는 새로운 빈 라인을 문서에 첨부한다.
int ttAddBox(TTDocHandle handle, int fieldType, int v_align)
이 함수는 우측에 정렬된 새로운 박스를 문서의 실제 라인내에 삽입한다. 박스의 구체적인 수직 조정이 필요없다면, 디폴트값으로서 "TT_DEFAULT"가 명명되어야 한다. 더욱이, 포함된 기능적 요소의 유형, 즉 "TT_STATIC", "TT_DYNAMIC", "TT_INPUT", "TT_RADIO", "TT_MULTI", 혹은 "TT BUTTON"이 선언되어야 한다.
int ttSetAttribute(TTDocHandle handle, int attrib_type, AttribValue Value)
이 함수에 의해, 실제의, 막 생성되거나 혹은 "ttSetCurrentBox"가 세트된 박스의 소정 기능 요소의 모든 속성들이 결정될 수 있다.
int ttSetCurrentBox(TTDocHandle handle, char *id)
이 함수에 의해, 식별자(an identification) "id"를 갖는 박스가 실제로 세트될 수 있으며, 따라서 "ttSetAttribute"와 같은 또다른 연산이 그 박스에 관련된다. 이 기능은, 각각의 식별자 속성이 박스의 구성 단계에서 정의된 박스들에만 적용될 수 있다.
TTDataStreamHandle ttOpenDataStream(void)
이 함수에 의해 본 발명에 따른 데이터 스트림이 확립될 수 있다. 그후, 이 정보 스트림은 임의의 문서, 혹은 동적 제어 및 질의 데이터로 채워진 후 전송될 수 있다.
void ttCloseDataStream(TTDataStreamHandle ttds)
더 이상 필요없는 데이터 스트림은, 그 핸들과 연관된 자원을 이 함수에 전달함으로써, 해제될 수 있다.
int ttAddDoc2DataStream(TTDataStreamHandle ttds, TTDocHandle doc)
전달된 문서의 정적 및 동적 부분은 주어진 데이터 스트림내에 삽입될 수 있다. 그 후, 문서의 동적 정보가 폐기된다.
int ttAddDyn2DataStream(TTDataStreamHandle ttds, TTDocHandle doc)
전달된 문서의 동적 부분은 이 함수에 의해 주어진 데이터 스트림내에 삽입될 수 있다. 삽입 후, 전술한 바와 같이 동적 정보는 폐기된다. 동적 데이터를 실제 문서내에 삽입하기 위해 클라이언트에 개별적으로 전송될 문서내의 동적 데이터의 변경의 경우, 이들 동적 데이터는 데이터 스트림에 포함된 단지 그 부분일 것이다.
표 2에는 함수 "ttSetAttribute"에 대한 가능한 파라미터가 보다 상세히 서술된다.
데이터 스트림의 코딩
정보 스트림의 생성에 의해, 데이터는 전송 패킷을 가능한 한 압축하기 위해 데이터가 코딩된다. 1바이트보다 큰 워드 길이(a word length)를 갖는 모든 데이터는 "네트워크 바이트 순서(Network Byte Order)"로 버퍼링된다. 즉 워드의 최상위 바이트(MSB)가 하위 어드레스에서 제공된다. 양의 정수에 대해, "Packed Unsigned Integer: PUINT(밀집 무부호형 정수)" 데이터 타입이 사용되고, 즉 1바이트중 7개의 비트들이 수의 값에 대해 사용되며, 최상위 바이트가 세트된 경우는 또다른 바이트가 이어진다는 것을 의미한다.
이어서, 이러한 데이터 스트림의 구조는 앞서 도시한 코드 예와 유사한 표기법에 의해 예시된다. 모든 코멘트는 괄호내에 세트되고 라인의 각 끝에 흘림글씨로 제시된다.
Figure pat00004
Figure pat00005
캐싱 메커니즘
문서의 설계 단계에서 이미, 정보 스트림은 정적 부분과 동적 부분으로 나뉘어진다. 이들 별개의 데이터 타입은 서로 독립적으로 캐싱되는 두 개의 분리된 블록내에서 처리된다. 따라서, 예를 들면, 다이얼로그 마스크는 전적으로 정적(사전로드된) 캐시 메모리(a static cache memory)(13)내에서 클라이언트측(1)상에 전부 제공될 수 있으며, 이에 의해 마스크의 정보 내용만이 각각 전송된다.
사용자가 데이터 스트림(a data stream)의 발생 단계동안 개별적인 데이터 블록을 선택함으로써 캐시 성능에 영향을 줄 수 있다 하더라도, 전송된 정보의 캐싱은 제 1 정보 스트림의 전송 동안 전송된 정보의 캐싱은 사용자에게 투명하다.
따라서, 본 발명은 전술한 기존의 해결법이 갖는 결점을 해결하여 클라이언트-서버 정보 처리 시스템(a client-server information handling system)에서 장치에 무관하고 최적화된 대화의 전송을 가능하게 하는 방법 및 시스템을 제공한다. 더욱이, 본 발명은 어플리케이션의 변경 혹은 수정이 모든 클라이언트에서가 아니라 서버측에서만 이루어질 수 있도록 한다.
본 발명은 정보 처리 시스템에 기초한 일반적인 클라이언트 서버(a generic client-server)에서 대화형 다이얼로그를 처리하기 위한 메커니즘(a mechanism), 각각의 다이얼로그 시스템 구조(a dialog system architecture), 및 각각의 기본적인 클라이언트의 하드웨어에 관계없이 멀티미디어 프리젠테이션(multimedia presentation)이 가능하도록 클라이언트측에 사용될 수 있는 특별한 터미널 장치(a particular terminal device)를 제공함으로써 상기 목적을 달성한다. 특히, 클라이언트의 터미널 장치는 특정한 하드웨어를 요구하는 어플리케이션에 대하여 자동-구성(self-configuration)이 가능하다.
Figure pat00006
Figure pat00007

Claims (20)

  1. 서로 통신하는 클라이언트와 서버를 포함하는 클라이언트-서버 기반 다이알로그 시스템에서 인터액티브 어플리케이션을 실행하는 방법에 있어서,
    상기 서버에서, 페이지 셋업(a page setup)과, 상기 페이지 셋업과는 별개인 페이지 정보 내용(page information contents)을 생성함으로써, 상기 인터액티브 어플리케이션을 나타내는 서버 문서들을 생성하는 단계 ― 상기 페이지 셋업과 상기 페이지 정보 내용은 모두 클라이언트 시스템 자원들과 독립적임 ― 와,
    상기 생성된 페이지 셋업과 상기 생성된 페이지 정보 내용을 독립적으로 상기 서버로부터 클라이언트로 전송하는 단계와,
    상기 클라이언트에서, 상기 독립적으로 전송된 페이지 셋업 및 페이지 정보 내용을 결합하는 것에 의해, 상기 독립적으로 전송된 페이지 셋업 및 페이지 정보 내용으로부터 클라이언트 문서(a client document)를 생성하는 단계 ― 상기 클라이언트 문서는 상기 클라이언트 시스템 자원들과 독립적임 ― 와,
    상기 클라이언트에서, 상기 클라이언트 문서로부터, 상기 클라이언트 시스템 자원들에 종속적인 문서 페이지(a document page)를 생성하는 단계와,
    상기 클라이언트 시스템 자원을 사용하여, 상기 문서 페이지를 상기 클라이언트상에 표시하는 단계와,
    상기 클라이언트에서의 사용자 입력에 기초하여 상기 클라이언트에서 제 2 페이지 정보 내용을 생성하는 단계와,
    인터액티브 다이알로그를 제공하기 위해, 상기 클라이언트로부터의 상기 제 2 페이지 정보 내용을 상기 서버로 전송하는 단계를 포함하는
    인터액티브 어플리케이션 실행 방법.
  2. 제 1 항에 있어서,
    상기 클라이언트 시스템 자원에 종속하는 문서 페이지를 상기 클라이언트 문서로부터 생성하는 상기 단계는, 상기 인터액티브 어플리케이션의 기능적 요건(functional requirements)을 상기 클라이언트 시스템 자원으로 매핑하기 위해, 상기 페이지 셋업을 상기 클라이언트 시스템 자원으로 매핑하는 단계를 포함하는 인터액티브 어플리케이션 실행 방법.
  3. 제 1 항에 있어서,
    상기 페이지 셋업 정보는 기능적인 객체 및 프리젠테이션 객체에 의해 표현되는 인터액티브 어플리케이션 실행 방법.
  4. 제 1 항에 있어서,
    상기 서버에서 서버 문서를 생성하는 상기 단계는, 상기 서버에서 상기 페이지 셋업 및 상기 페이지 정보 내용을 캐싱하는 단계를 더 포함하는 인터액티브 어플리케이션 실행 방법.
  5. 제 4 항에 있어서,
    상기 캐싱 단계는, 상기 서버에서, 상기 페이지 셋업을 정적으로 캐싱하며 상기 페이지 정보 내용을 동적으로 캐싱하는 단계를 포함하는 인터액티브 어플리케이션 실행 방법.
  6. 제 1 항에 있어서,
    상기 전송된 페이지 셋업 및 페이지 정보 내용으로부터 클라이언트 문서를 생성하는 상기 단계는, 상기 클라이언트에서 상기 페이지 셋업 및 페이지 정보 내용을 캐싱하는 단계를 더 포함하는 인터액티브 어플리케이션 실행 방법.
  7. 제 6 항에 있어서,
    상기 캐싱 단계는, 상기 클라이언트에서, 상기 페이지 셋업을 정적으로 캐싱하고 상기 페이지 정보 내용을 동적으로 캐싱하는 단계를 포함하는 인터액티브 어플리케이션 실행 방법.
  8. 제 1 항에 있어서,
    상기 전송 단계에 앞서, 상기 서버에서 상기 생성된 페이지 셋업 및 페이지 정보 내용을 압축하는 단계가 진행되는 인터액티브 어플리케이션 실행 방법.
  9. 제 1 항에 있어서,
    페이지 셋업을 생성하는 상기 단계는, 그 내부에 복수의 박스를 포함하는 문서를 생성하는 단계를 포함하는 인터액티브 어플리케이션 실행 방법.
  10. 제 9 항에 있어서,
    상기 문서는 복수의 라인들을 포함하고, 이 경우 상기 박스들 각각은 상기 복수의 라인들 중 하나의 라인내에 위치하게 되는 인터액티브 어플리케이션 실행 방법.
  11. 제 10 항에 있어서,
    상기 박스는, 그 라인 전체를 채우도록, 자동적으로 확장되는 확장가능한 박스인 인터액티브 어플리케이션 실행 방법.
  12. 제 10 항에 있어서,
    상기 박스는, 자동적으로 소정 라인상의 중앙에 위치하는 중앙위치형 박스(a centered box)인 인터액티브 어플리케이션 실행 방법.
  13. 인터액티브 어플리케이션을 실행하기 위한 클라이언트-서버 시스템에 있어서,
    클라이언트(a client)와,
    상기 클라이언트와 통신하는 서버(a server)와,
    상기 서버내에서, 페이지 셋업(a page setup)과, 상기 페이지 셋업과는 별개인 페이지 정보 내용(page information contents)을 생성함으로써, 상기 인터액티브 어플리케이션을 나타내는 서버 문서들을 생성하는 수단 ― 상기 페이지 셋업과 상기 페이지 정보 내용은 모두 클라이언트 시스템 자원들과 독립적임 ― 과,
    상기 생성된 페이지 셋업과 상기 생성된 페이지 정보 내용을 독립적으로 상기 서버로부터 클라이언트로 전송하는 수단과,
    상기 클라이언트내에서, 상기 독립적으로 전송된 페이지 셋업 및 페이지 정보 내용을 결합하는 것에 의해, 상기 독립적으로 전송된 페이지 셋업 및 페이지 정보 내용으로부터 클라이언트 문서(a client document)를 생성하는 페이지 생성 수단 ― 상기 클라이언트 문서는 상기 클라이언트 시스템 자원들과 독립적임 ― 과,
    상기 클라이언트내에서, 상기 클라이언트 문서로부터, 상기 클라이언트 시스템 자원들에 종속적인 문서 페이지(a document page)를 생성하는 자원 관리 수단과,
    상기 클라이언트내에서, 상기 클라이언트 시스템 자원을 사용하여, 상기 문서 페이지를 상기 클라이언트상에 표시하는 수단과,
    상기 클라이언트내에서, 상기 클라이언트에서의 사용자 입력에 기초하여, 상기 제 2 페이지 정보 내용을 생성하는 수단과,
    인터액티브 다이알로그를 제공하기 위해, 상기 클라이언트로부터의 상기 제 2 페이지 정보 내용을 상기 서버로 전송하는 수단을 포함하는
    클라이언트-서버 시스템.
  14. 제 13 항에 있어서,
    상기 자원 관리 수단은, 상기 인터액티브 어플리케이션의 기능적 요건(functional requirements)을 상기 클라이언트 시스템 자원으로 매핑하기 위해, 상기 페이지 셋업을 상기 클라이언트 시스템 자원으로 매핑하는 수단을 포함하는 클라이언트-서버 시스템.
  15. 제 13 항에 있어서,
    서버 문서를 생성하는 상기 수단은, 상기 서버에서 상기 페이지 셋업 및 페이지 정보 내용을 캐싱하는 수단을 포함하는 클라이언트-서버 시스템.
  16. 제 15 항에 있어서,
    상기 캐싱 수단은,
    사전로드되고 어플리케이션 실행 시간 동안 변경될 수 없는 문서 정보를 캐싱하는 정적 캐시 수단과,
    상기 실행 시간 동안 수집되는 정보를 캐싱하는 동적 캐시 수단과,
    상기 동적 및 정적 캐시 수단을 제어하는 캐시 관리 수단을 포함하는
    클라이언트-서버 시스템.
  17. 제 13 항에 있어서,
    페이지 셋업을 생성하는 상기 수단은, 그 내부에 복수의 박스들을 포함하는 문서를 생성하는 수단을 포함하는 클라이언트-서버 시스템.
  18. 제 17 항에 있어서,
    상기 문서는, 복수의 라인들을 포함하고, 이 경우 상기 박스들 각각은, 상기 복수의 라인들중 하나의 라인내에 위치하는 클라이언트-서버 시스템.
  19. 제 18 항에 있어서,
    상기 박스는, 그 라인 전체를 채우도록, 자동적으로 확장되는 확장가능한 박스인 클라이언트-서버 시스템.
  20. 제 18 항에 있어서,
    상기 박스는, 자동적으로 소정 라인상의 중앙에 위치하는 중앙위치형 박스인 클라이언트-서버 시스템.
KR1019970029752A 1996-08-19 1997-06-30 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템 KR100262432B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96113274.3 1996-08-19
EP96113274 1996-08-19

Publications (2)

Publication Number Publication Date
KR19980018172A KR19980018172A (ko) 1998-06-05
KR100262432B1 true KR100262432B1 (ko) 2000-08-01

Family

ID=8223122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970029752A KR100262432B1 (ko) 1996-08-19 1997-06-30 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템

Country Status (5)

Country Link
US (1) US5937421A (ko)
JP (1) JPH10133989A (ko)
KR (1) KR100262432B1 (ko)
CN (1) CN1109306C (ko)
TW (1) TW359800B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101071960B1 (ko) 2001-12-12 2011-10-11 밸브 코포레이션 리소스들을 프리로딩 하기 위한 방법 및 시스템
KR20220015101A (ko) 2020-07-30 2022-02-08 김세연 간편세척구조를 갖는 가발 세척장치

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US10361802B1 (en) 1999-02-01 2019-07-23 Blanding Hovenweep, Llc Adaptive pattern recognition based control system and method
JP3076260B2 (ja) * 1997-03-10 2000-08-14 松下電器産業株式会社 情報提供装置
US6065041A (en) * 1997-09-18 2000-05-16 Electronics For Imaging, Inc. Interface code architecture
US6226750B1 (en) 1998-01-20 2001-05-01 Proact Technologies Corp. Secure session tracking method and system for client-server environment
US6108675A (en) * 1998-01-22 2000-08-22 International Business Machines Corporation Positioning of transmitted document pages in receiving display station windows for maximum visibility of information on pages
JPH11249948A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムで使用されるファイルリソース切り替え方法および記録媒体
US6108003A (en) * 1998-03-18 2000-08-22 International Business Machines Corporation Maintaining visibility and status indication of docked applications and application bars
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US7089331B1 (en) * 1998-05-29 2006-08-08 Oracle International Corporation Method and mechanism for reducing client-side memory footprint of transmitted data
US6757705B1 (en) * 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US6385642B1 (en) 1998-11-03 2002-05-07 Youdecide.Com, Inc. Internet web server cache storage and session management system
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US20020078300A1 (en) * 1999-08-16 2002-06-20 Chanda Dharap Semantics-based caching policy to minimize latency
GB9921720D0 (en) * 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
GB9921721D0 (en) * 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
WO2001057721A2 (en) 2000-02-04 2001-08-09 America Online Incorporated Dynamic web page generation
US7389284B1 (en) 2000-02-29 2008-06-17 Oracle International Corporation Method and mechanism for efficient processing of remote-mapped queries
US8751248B2 (en) * 2000-07-28 2014-06-10 Visual Telecommunications Network, Inc. Method, apparatus, and medium using a master control file for computer software interoperability between disparate operating systems
US7092803B2 (en) * 2000-08-18 2006-08-15 Idsc Holdings, Llc Remote monitoring, configuring, programming and diagnostic system and method for vehicles and vehicle components
KR100436702B1 (ko) * 2000-10-11 2004-07-03 맹성현 가상문서 제공 시스템 및 그 방법
US20020184507A1 (en) * 2001-05-31 2002-12-05 Proact Technologies Corp. Centralized single sign-on method and system for a client-server environment
US7155321B2 (en) * 2001-08-06 2006-12-26 Idsc Holdings Llc System, method and computer program product for remote vehicle diagnostics, monitoring, configuring and reprogramming
US7103590B1 (en) 2001-08-24 2006-09-05 Oracle International Corporation Method and system for pipelined database table functions
US7831278B2 (en) * 2001-12-18 2010-11-09 Intel Corporation Method and device for communicating data with a personal wireless storage device
US7202783B2 (en) * 2001-12-18 2007-04-10 Intel Corporation Method and system for identifying when a first device is within a physical range of a second device
US20030115038A1 (en) * 2001-12-18 2003-06-19 Roy Want Method and device for emulating electronic apparatus
US20030162523A1 (en) * 2002-02-27 2003-08-28 Michael Kapolka Vehicle telemetry system and method
US7610351B1 (en) 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US6973457B1 (en) * 2002-05-10 2005-12-06 Oracle International Corporation Method and system for scrollable cursors
US7813910B1 (en) * 2005-06-10 2010-10-12 Thinkvillage-Kiwi, Llc System and method for developing an application playing on a mobile device emulated on a personal computer
US8589140B1 (en) 2005-06-10 2013-11-19 Wapp Tech Corp. System and method for emulating and profiling a frame-based application playing on a mobile device
US20120144123A1 (en) 2010-12-01 2012-06-07 International Business Machines Corporation Read-ahead processing in networked client-server architecture
TWI692958B (zh) * 2016-07-15 2020-05-01 王逸塵 智慧型通訊裝置用雙向資訊交流方法及運用該方法之系統

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0540696A (ja) * 1991-08-02 1993-02-19 Canon Inc 仮想記憶アドレス制御の方法及びその情報処理装置
US5491820A (en) * 1994-11-10 1996-02-13 At&T Corporation Distributed, intermittently connected, object-oriented database and management system
US5754771A (en) * 1996-02-12 1998-05-19 Sybase, Inc. Maximum receive capacity specifying query processing client/server system replying up to the capacity and sending the remainder upon subsequent request
US5768510A (en) * 1996-07-01 1998-06-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server application enabler system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101071960B1 (ko) 2001-12-12 2011-10-11 밸브 코포레이션 리소스들을 프리로딩 하기 위한 방법 및 시스템
KR20220015101A (ko) 2020-07-30 2022-02-08 김세연 간편세척구조를 갖는 가발 세척장치

Also Published As

Publication number Publication date
US5937421A (en) 1999-08-10
TW359800B (en) 1999-06-01
CN1109306C (zh) 2003-05-21
CN1175036A (zh) 1998-03-04
JPH10133989A (ja) 1998-05-22
KR19980018172A (ko) 1998-06-05

Similar Documents

Publication Publication Date Title
KR100262432B1 (ko) 인터액티브어플리케이션실행방법,클라이언트-서버다이얼로그시스템
US7054952B1 (en) Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing interactive javascript support
US6725424B1 (en) Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing assistive technology support
KR101099272B1 (ko) 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법
US6829746B1 (en) Electronic document delivery system employing distributed document object model (DOM) based transcoding
JP5306429B2 (ja) デジタルドキュメント処理のための方法
US7366976B2 (en) Methods and systems for generating a viewable document using view descriptors and generic view stylesheets
US6996772B2 (en) Formatting a content item in a text file using a discrimination stylesheet created using a heuristics stylesheet
US6510468B1 (en) Adaptively transforming data from a first computer program for use in a second computer program
US8793341B2 (en) Web page content translator
US7216177B1 (en) Apparatus and method for supplying electronic content to network appliances
US5778372A (en) Remote retrieval and display management of electronic document with incorporated images
US6445458B1 (en) Method and system for virtual machine rendering of non-Latin1 Unicode glyphs
US20020087596A1 (en) Compact tree representation of markup languages
US20020010725A1 (en) Internet-based font server
US20100218077A1 (en) Modifying a markup language document which includes a clickable image
US20050060648A1 (en) Document transformation
JPH1055269A (ja) 情報処理装置
KR20030094320A (ko) 마크업 언어로 인코딩된 문서의 효율적인 프로세싱 방법및 그 시스템
WO2002015002A2 (en) System and method for building applications that adapt for multiple device and protocol standards
US20050262042A1 (en) Generating a dynamic content creation program
JP4590080B2 (ja) プリンタシステム及びその制御方法
US7149969B1 (en) Method and apparatus for content transformation for rendering data into a presentation format
US20010054114A1 (en) Wireless data transport of internet content to display device
US6343328B1 (en) Digital computer system using embedded comments to manipulate virtual controller functions

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
FPAY Annual fee payment

Payment date: 20050324

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee