KR100290198B1 - 클라이언트와비상주서버프로그램사이의통신을위한시스템 - Google Patents

클라이언트와비상주서버프로그램사이의통신을위한시스템 Download PDF

Info

Publication number
KR100290198B1
KR100290198B1 KR1019970056527A KR19970056527A KR100290198B1 KR 100290198 B1 KR100290198 B1 KR 100290198B1 KR 1019970056527 A KR1019970056527 A KR 1019970056527A KR 19970056527 A KR19970056527 A KR 19970056527A KR 100290198 B1 KR100290198 B1 KR 100290198B1
Authority
KR
South Korea
Prior art keywords
block
user
document
browser
name
Prior art date
Application number
KR1019970056527A
Other languages
English (en)
Other versions
KR19980070058A (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 KR19980070058A publication Critical patent/KR19980070058A/ko
Application granted granted Critical
Publication of KR100290198B1 publication Critical patent/KR100290198B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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

Landscapes

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

Abstract

본 발명에 따른, 복제 블록을 포함하는 탬플릿으로부터 하나의 폼을 생성하기 위한 향상된 문서 브라우징 방법 및 장치는, 적어도 제1 및 제2 복제된 필드를 생성하기 위해 블록 명칭에 의해 특정되는 적어도 하나의 복제 블록에서 적어도 하나의 복제 필드를 복제하고; 상기 블록 명칭을 수정하여 제1 필드 명칭을 생성하고; 상기 블록 명칭을 수정하여 제2 필드 명칭을 생성하고; 이들 필드 명칭을 제1 및 제2 복제된 필드 각각에 연관시키고; 복제의 수를 계수하고; 상기 복제의 수를 적어도 하나의 클라이언트 컴퓨터로 전송한다.

Description

클라이언트와 비상주 서버 프로그램 사이의 통신을 위한 시스템{A SYSTEM FOR COMMUNICATING BETWEEN A CLIENT AND TRANSIENT SERVER PROGRAMS}
본 발명은 데이터 처리 분야에 관한 것으로서, 클라이언트 및 비상주(transient) 서버 프로그램 사이의 통신을 위한 시스템에 관한 것이다.
초기의 컴퓨터에 있어서는, 프로세서 및 메모리의 제조 비용이 매우 비쌌었다. 다행스럽게도, 사용자 인터페이스가 단순했기 때문에, 한 개인 사용자가 프로세서 및 메모리에 부과할 수 있는 요구가 작았으며, 초보적인 수준이었다. 이 사용자 인터페이스는 디스플레이 단말상의 하나의 명령 라인으로 이루어져 있다. 이러한 제한을 수용하기 위해, 당시의 컴퓨터 설계자는, 복수의 사용자가 각각 하나의 디스플레이 단말에서 하나의 중앙-배치(centrally-located) 프로세서 및 메모리를 공유하게 되는 시분할(time-sharing), 트랜잭션-기반(transaction-based) 컴퓨터 모델을 이용했다.
따라서, 중앙 배치된 프로세서(소위, 호스트 또는 서버로 불림)는 그것에 부착된 복수의 디스플레이 단말을 갖고 있었다. 단말은 통상적으로, 디스플레이 스크린, 키보드, 및 단말에서 정보를 디스플레이하고 한 스크린 분량의 데이터를 트랜잭션의 형태로 호스트 프로세서로 전송하는데 필요한 만큼의 메모리 및 제어 회로를 포함했었다. 오늘날에는, 이러한 단말을 ″덤 단말(dumb terminals)″로 부르는데, 그 이유는 고도의 프로세서 및 메모리를 갖고 있지 않기 때문이다. 사용자는 통상적으로, 단말에서 한 스크린 분량의 데이터를 타이핑하고, ″엔터″나, ″전송(transmit)″ 키를 침으로써 그것을 호스트로 전송하게 된다. 이 데이터는 호스트에게 트랜잭션을 수행할 것을 요구하게 된다. 그러면, 호스트는 트랜잭션을 수행하기 위해 트랜잭션 프로그램을 시작하고, 트랜잭션이 완료되면, 호스트는 데이터를 다시 단말로 전송하고 비상주 프로그램은 종료되게 된다. 다음에, 호스트는 그 다음 트랜잭션 때까지 사용자에 관해 무시하게 된다. 만일 사용자가 호스트로 복수의 트랜잭션을 제출하였으면, 호스트 비상주 프로그램은 이들 트랜잭션이 관련되어 있는지의 여부를 알지 못했다. 마찬가지로, 호스트도 사용자가 트랜잭션 발행을 완료한 때를 알지 못했다. 그러므로, 각각의 비상주 프로그램은 독립적이었으며(self-contained), 한 비상주 프로그램으로부터 그 다음 비상주 프로그램으로 정보를 세이브하지 못했다. 이러한 모델은 양호하게 동작했는데, 그 이유는 한 사용자로부터의 한 트랜잭션에 관한 요구가 호스트의 처리 능력에 비해 매우 작았으며, 따라서, 프로세서는 사용자가 스크린 상에 정보를 타이핑하는 것을 대기하는 동안에 다른 사용자로부터의 트랜잭션을 서비스하게 되기 때문이다. 그러므로, 이것은 시분할, 트랜잭션-기반 모델로 불린다.
그래픽 사용자 인터페이스 - 여기서, 사용자는 영상, 심볼 및 그래픽스를 통해 컴퓨터와 대화함 - 의 출현으로, 중앙 처리장치에 대한 요구가 증가되었으며, 따라서, 더 이상 다수의 디스플레이 단말에서 다수의 사용자의 요구에 서비스할 수 없게 되었다. 다행스럽게도, 프로세서 및 메모리의 가격이 극적으로 저하되었으며, 따라서, 사용자는 그 데스크 상에 고도의 프로세서 및 메모리를 완비한 완성된 컴퓨터를 구비할 수 있게 되었다. 그러나, 새로 설비된 데스크탑 자치성(autonomy) 및 처리 능력을 구비했음에도 불구하고, 사용자는 여전히 전세계에 퍼져 있는 친구, 협력자, 고객 및 공급자와 정보를 공유할 수 있도록, 중앙에 배치된 컴퓨터에 접속하길 원하고 있다.
정보를 공유하기 위한 한가지 방도로서 인터넷이 있으며, 이것은 클라이언트 및 서버를 포함하는 컴퓨터가 상호 접속된 네트워크의 한 예이다. 인터넷상에서 정보를 공유하기 위한 한가지 방법은 브라우징을 이용하는 것이다. 클라이언트 컴퓨터의 사용자가 서버 컴퓨터의 정보를 브라우징하길 원하면, 사용자는 클라이언트의 브라우저에 서버의 원하는 문서(document)의 어드레스를 제공한다. 문서는 제어-코드(control-code)및 그 제어-코드가 기술(記述)하는 정보의 파일이다. 클라이언트의 브라우저는 이 어드레스를 서버로 전송한다. 다음에, 서버는 지정된 문서를 클라이언트 브라우저로 전송하고, 이 브라우저는 문서 내의 정보 페이지를 사용자에게 제시하게 된다. 페이지는 브라우저가 사용자에게 제시하는 정보로서, 브라우저가 제어-코드를 해석하여 이를 포맷한다. 이러한 프리젠테이션은 예를 들어, 디스플레이 스크린상의 브라우저 윈도우를 통해 시각적으로 이루어지거나, 또는 스피커를 통해 청각적으로 이루어질 수도 있다.
비록 대부분의 사람들이 1990년대 초기에 인터넷에 대해 처음 듣게 되었지만, 인터넷은 실제적으로는 1960년대에 개발되었으며, 따라서, 오래된 트랜잭션-기반 컴퓨터 모델에도 구축되어 있다. 그러나, 오늘날의 사용자는 오래된 모델로 되돌아가길 원하지 않으며, 고도의 그래픽 사용자 인터페이스 및 그 데스크탑에서의 처리 능력의 즉시성(immediacy)을 포기하길 원하지 않는다. 다음은 트랜잭션-기반 모델에 관련된 문제의 예이다.
첫 번째로, 사용자는 사용자가 스크린 상에 입력하는 데이터의 타당성(validity)에 관한 즉각적 피드백을 받지 못한다. 대신에, 사용자는, 클라이언트가 트랜잭션을 서버로 전송하고, 서버가 데이터를 확인(validate)하고, 서버가 다시 메시지 - 이 메시지는 타당성 에러를 포함할 가능성이 있음 - 를 클라이언트로 전송할 때까지 대기해야 한다.
두 번째로, 사용자는 사용자가 선택한 동작에 대한 즉각적인 피드백을 받지 못한다. 사용자가 제어 버튼을 선택하는 경우에, 사용자 인터페이스는 제어 버튼이 선택되었다는 것을 나타내지 않는다. 이것은 특히, 스크린상의 옵션의 수가 많아지고, 서버가 응답하는 시간이 길어지게 됨에 따라 뚜렷한 사용 가능성의 문제가 될 수 있다.
세 번째로, 사용자가 도움말 정보를 필요로 할 때, 서버는 그것을 새로운 윈도우로서 클라이언트로 전송하게 되는데, 이 새로운 윈도우는 원래의 윈도우와 동일한 크기로 되어 있으며, 원래의 윈도우의 상부에 직접 오버레이 된다. 따라서, 일단 클라이언트가 도움말 정보를 디스플레이하면, 사용자는 그 사용자가 도움말을 필요로하는 정보를 포함하는 원래의 윈도우를 더 이상 볼 수 없게 된다.
마지막으로, 트랜잭션들이 함께 링크되지 않는다. 사용자는 사용자로부터의 제2 트랜잭션을 위한 요구시, 재입력하기 위해 제1 트랜잭션에서의 정보의 일부를 서버에게 요구할 수도 있다.
전술한 이유로 인해 클라이언트 및 비상주 서버 프로그램 사이의 통신을 위한 시스템에 대한 필요성이 존재한다.
본 발명의 목적은 정보에 대한 사용자 억세스를 향상시키는 것이다.
이들 목적 및 다른 목적은, 적어도 제1 및 제2 복제된 필드를 생성하기 위해 블록 명칭에 의해 특정되는 적어도 하나의 복제 블록에서 적어도 하나의 복제 필드를 복제하고; 블록 명칭을 수정하여 제1 필드 명칭을 생성하고; 블록 명칭을 수정하여 제2 필드 명칭을 생성하고; 이들 필드 명칭을 제1 및 제2 복제된 필드 각각에 연관시키고; 복제의 수를 계수하고; 복제의 수를 적어도 하나의 클라이언트 컴퓨터로 전송하는, 복제 블록을 포함하는 탬플릿으로부터 하나의 폼을 생성하기 위한 향상된 문서 브라우징 방법 및 장치에 의해 실현된다.
도1은 본 발명의 양호한 실시예에 따른, 네트워크를 통해 서버 컴퓨터에 부착된 클라이언트 컴퓨터를 도시하는 블록도.
도2는 본 발명의 양호한 실시예에 따른, 디스플레이 스크린내의 브라우저 윈도우의 블록도.
도3은 본 발명의 양호한 실시예에 따른, 메인 문서 및 태스크-프레임 제어-객체 문서의 블록도.
도4a는 본 발명의 양호한 실시예에 따른, 운영 사용자를 위한 브라우저 윈도우의 예시도.
도4b는 본 발명의 양호한 실시예에 따른, 비-운영 사용자를 위한 브라우저 윈도우의 예시도.
도5 및 도6은 본 발명의 양호한 실시예에 따른, 클라이언트측의 사용자가 서버로 사인-온(sign on) 할 때 프로세스의 단계를 도시하는 흐름도.
도7은 본 발명의 양호한 실시예에 따른 스코프 연산의 처리를 위한 프로세스의 단계를 도시하는 흐름도.
도8은 본 발명의 양호한 실시예에 따른 운영 사용자 및 비-운영 사용자에 대한 검사를 처리하기 위한 프로세스의 단계를 도시하는 흐름도.
도9는 본 발명의 양호한 실시예에 따른 태스크 제어-객체를 확장하기 위한 프로세스의 단계를 도시하는 흐름도.
도10은 본 발명의 양호한 실시예에 따른 태스크 프레임내의 제어-객체로부터의 태스크의 선택을 처리하기 위한 프로세스의 단계를 도시하는 흐름도.
도11은 본 발명의 양호한 실시예에 따른 사용자가 태스크-프레임내의 소정의 태스크를 선택할 때의 프로세스의 단계를 도시하는 흐름도.
도12는 본 발명의 양호한 실시예에 따른 호출된 HTML 템플릿이 복제될 필드를 포함하는지 판단하기 위한 프로세스의 단계를 도시하는 흐름도.
도13은 본 발명의 양호한 실시예에 따른 HTML 폼의 생성시 HTML 템플릿의 필드를 복제하기 위한 서버 컴퓨터 단계의 흐름도.
도14는 본 발명의 양호한 실시예에 따른 폼의 복제된 필드로 입력되는 데이터를 검증하기 위한 브라우저 단계의 흐름도.
도15는 본 발명의 양호한 실시예에 따른 복제 블록을 가진 HTML 폼이 렌더링되었을 때 발생되는, 사용자 컴퓨터로부터의 POST 데이터에서 수신된 데이터를 처리하기 위해 서버 컴퓨터에 의해 착수되는 단계의 흐름도.
도16은 본 발명의 양호한 실시예를 실행하기 위한 컴퓨터-실행가능한 또는 해석가능한 코드를 저장하기 위한 저장 매체를 포함하는 제조 물품 또는 컴퓨터 프로그램-제품의 블록도.
도17은 본 발명의 양호한 실시예에 따른, 확장 이전의 브라우저 윈도우내의 태스크-프레임의 한 예의 블록도.
도18은 본 발명의 양호한 실시예에 따른 확장 이후의 브라우저 윈도우내의 태스크-프레임의 한 예의 블록도.
도19는 본 발명의 양호한 실시예에 따른 스코프 윈도우의 한 예의 블록도.
도20a 및 도20b는 본 발명의 양호한 실시예에 따른 사용자-리스트 윈도우에 대한 2개의 상이한 상태를 도시하는 블록도.
〈 도면의 주요 부분에 대한 부호의 설명 〉
100,146,147 : 클라이언트 컴퓨터
102,152 : CPU
104 : 입력 장치
106 : 디스플레이 장치
108,154 : 네트워크 접속부
110 : 메모리
120 : 브라우저
124 : 네트워크 처리 프로그램
126 : 다운로드된 문서
145 : 네트워크
150 : 서버 컴퓨터
기술 개요
인터넷은 상호접속된 컴퓨터 네트워크의 한 예이다. 브라우저는 서버측의 문서를 조사하고 브라우징하는 클라이언트측의 유틸리티 프로그램이다. 브라우저의 예로는, IBM의 웹 익스플로러(Web Explorer), 넷스케이프 네비게이터(Netscape Navigator), 및 NCSA(National Center of Supercomputing Applications) 모자이크(Mosaic)가 있다.
문서(document)는 제어-코드 - 예, 하이퍼텍스트 마크업 언어 코드(HyperText Markup Language code: HTML) - 및 이 제어-코드가 기술하는 정보의 파일이다. HTML 문서는 순수 텍스트이며, 디스플레이 또는 재생(play back)되는 것에 적용하기 위한 속성(예를 들어, 크기나 페이지상의 위치) 뿐만 아니라 디스플레이 또는 플레이할 것에 관한 브라우저로의 명령어이다. HTML 문서의 개발자는 HTML 텍스트를 직접 생성할 수도 있으며, 또는 이러한 생성을 보조하기 위해 여러 가지 툴 중 하나를 이용할 수도 있다. 또한, 개발자는 HTML의 구문 분석시(parsing) 그 디스플레이 또는 재생이 브라우저에 의해 이루어지도록 HTML 텍스트에 지정하기 위해 멀티미디어 객체(예컨대, 디지털화 그래픽, 사운드 파일, 또는 비디오 파일)를 개발하거나, 탐색하거나 또는 구입할 수도 있다. 페이지는 브라우저가 사용자에게 제시하는, 제어-코드를 해석하는 브라우저에 의해 포맷된 바와 같은 정보이다. 이러한 프리젠테이션(제시)은 예를 들어, 디스플레이 스크린상의 브라우저 윈도우를 통해 시각적으로 이루어질 수도 있으며, 또는 스피커를 통해 청각적으로 이루어질 수도 있다.
서버측의 문서를 브라우징하기 위해, 사용자는 클라이언트 컴퓨터측의 브라우저를 통해, 서버측에 있는 원하는 문서의 어드레스인 균일 자원 로케이터(Uniform Resource Locator:URL)를 입력한다. 클라이언트 컴퓨터측의 브라우저는 서버 컴퓨터와 통신하기 위해 이 URL을 이용한다. 다음에, 서버는 URL에 의해 명시된 문서를 사용자로의 프리젠테이션을 위해 클라이언트 브라우저로 전송한다. 검색된 문서는 그 자체적으로 멀티미디어 객체(예, 텍스트, 비트맵, 사운드 파일, 비디오 파일)에 링크하는 내장된 URL을 더 포함할 수도 있으며, 따라서, 클라이언트 브라우저는 검색된 문서를 구문분석하고, 디스플레이 또는 플레이백을 통한 프리젠테이션을 위해 링크된 멀티미디어 객체를 다운로드한다.
클라이언트로부터 서버로 데이터를 전송하고 서버에 연산을 수행할 것을 요구하는 한가지 방법은 HTML에서 ″폼(form)″으로 불리는 컨스트럭트를 포함하는 문서를 이용하는 것이다. 용어 ″폼″이 이러한 개념을 나타내는 것은 다른 통상적인 상황과의 유사성 때문이다. 예를 들어, 당신이 데이터를 당신의 보험회사로 제출하길 원하면, 당신은 당신의 데이터를 보험회사의 ″폼″상에 입력하고, 그것을 우송(mail)하게 된다. 유사하게, 클라이언트측의 사용자가 서버로 데이터를 제출하길 원하면, 사용자는 전자 HTML 폼을 채운다. 그러므로, 폼은 브라우저에 의해 해석될 때, 클라이언트측의 사용자로 하여금 서버의 연산을 요구하고 데이터를 서버로 제출하는 것을 허용한다.
폼은 사용자가 브라우징되는 문서를 제어하기 위해 사용할 수도 있는 ″버튼″ 객체를 포함할 수도 있다. 용어 ″버튼″이 이러한 개념을 나타내는 것은 다른 통상적인 상황과의 유사성 때문이다. 예를 들어, 당신이 당신의 라디오를 제어하길 원하면, 당신은 방송국을 변경하기 위해 버튼을 누르게 된다. 이와 유사하게, 클라이언트측의 사용자가 브라우징되는 문서를 제어하길 원하면, 사용자는 버튼을 전자식으로 ″푸시'하거나, 클릭하거나, 또는 선택한다. 사용자가 문서를 제어하기 위해 사용할 수도 있는, 소위 제어-객체로 불리는 다양한 폼 객체가 있는데, 예를 들어, 동작을 선택하기 위한 푸시-버튼, 옵션 그룹 중에서 하나의 선택을 수행하기 위한 라디오 버튼, 한 라인의 텍스트를 입력하기 위한 텍스트-박스 또는 입력 필드, 및 단일의 독립된 옵션을 선택하거나 또는 선택해제하기 위한 첵크-박스를 포함한다.
폼은 그래픽 사용자 인터페이스에 의해 디스플레이되는, 지각 가능한 구조로 포맷된 개체(entity)이다. 이와 같은 폼은 사용자가 데이터를 타이핑할 수 있는 필드를 포함한다. 이러한 관점에서, 용어 ″폼″은 또한, 폼이 디스플레이되도록 하는 소프트웨어 및 데이터 구조를 나타낸다. HTML 폼은 템플릿으로부터 파생될 수도 있다. 템플릿은 그 내에서 소프트웨어가 HTML을 구문분석하고, 값을 삽입 및/또는 변경하고, 섹션을 삭제하고, 템플릿의 섹션을 복제(replicate)할 수도 있는, HTML내의 구조적이고 기능적인 사양이다. 이러한 관계에서, 용어 ″복제 블록″은, 복제될 섹션의 개시점을 마킹하기 위한 하나의 복제 식별자와, 복제될 섹션의 말단을 마킹하기 위한 다른 복제 식별자가 있는, HTML 템플릿의 일부분을 기술하기 위해 사용되게 된다.
폼 생성 동안에, 전자 복제는, 복제 식별자 사이에 HTML을 카피하는 단계와, HTML의 카피를 소프트웨어에 의해 결정되는 소정의 횟수만큼 복제하는 단계, 및 각각의 복제에 대해 한 번씩 복제 식별자 사이에 복제된 HTML을 삽입하는 단계로 이루어진다. 복제되는 동안, 소프트웨어는 복제된 HTML 섹션을 구문분석할 수도 있으며, 또한 값을 삽입 및/또는 변경하고 섹션을 삭제할 수도 있다.
다음에, 이 프로세스 복제 블록을 가진 소프트웨어-프로세스 HTML 템플릿은 HTML 폼으로서 서버에 의해 웹 사용자의 브라우저로 제공된다. 웹 사용자는 HTML 폼 내의 필드로부터 값을 변경, 부가 및/또는 삭제할 수도 있으며, 또한, 이들 값을 소프트웨어-구현 공통 게이트웨이 인터페이스 프로그램(CGI)에 의해 처리되도록 제출할 수도 있다.
사용자가 웹 페이지 상에 데이터를 입력할 때, 사용자는 데이터를 HTML 폼 내로 입력한다. 다음에, 사용자는 마우스를 적절하게 클릭하거나, 키보드 상의 엔터 키를 누르거나, 또는 다른 제어-장치를 이용하여 HTML 폼을 서버로 전송할 수 있다. 서버 컴퓨터가 폼을 실행할 때, 서버 컴퓨터는 이 HTML 폼에 명시된 동작을 실행하기 위해 소프트웨어에 의해 구현되는 CGI를 호출한다.
HTML 폼 내의 복제 블록 내로부터 복수의 값을 리턴하는 것이 대체로 유익하다. 예를 들어, 만일 복제 블록이 사용자로부터의 입력을 얻기 위해 사용되면, 즉, 많은 파라미터를 가진 커맨드를 구축하기 위해 사용되면, 복제 블록은 각각의 파라미터 값에 대해 하나의 HTML 변수를 포함할 수도 있다. 예를 들어, 다음과 같은 커맨드를 구축하기 위한 것이다.
″ns5250 host 1-title″my host″-wide enable'
여기서, host 1은 사용자에 의해 입력되는 값의 호스트 명칭이고, -title 옵션 값은 사용자에 의해 입력되고, -wide 옵션 값은 사용자에 의해 선택되며, 복제 블록내의 입력 필드는 다음과 같이 명명될 수도 있다.
Figure pat00001
이 경우에, 사용자는 HTML 폼 내의 필드로 값을 입력시키고, ″제출″ 버튼을 누르고, CGI는 이들 HTML 변수 명칭 및 사용자에 의해 입력된 값을 포함하는 POST 데이터를 수신하게 된다(POST는 인터넷을 통해 통신할 때 폼을 제출하는 잘 알려진 방법이다). POST 데이터는 다음과 같이 이들 각각의 HTML 변수 중 하나와, 사용자에 의해 입력된 값을 포함하게 된다.
Figure pat00002
사용자는 복수의 5250 커맨드를 구축하길 원할 수도 있으며, 또한 사용자는 각각의 복제된 필드 셋트 내의 파라미터 값에 대한 변분(variation)을 입력하길(따라서, 동일한 커맨드의 상이한 변분을 구축하는 것을) 원할 수도 있다. 이 경우에, 복제 블록은 각각의 파라미터 값에 대해 하나의 HTML 변수를 포함할 수도 있으며, 사용자가 구축을 요구하는 각각의 명령어에 대해 여러 번에 걸쳐 복제될 수도 있다. 예를 들어, 사용자는 다음의 2개의 5250 커맨드를 구축하길 원할 수도 있다.
Figure pat00003
이 경우에, 복제 블록은 2개의 상이한 커맨드에 대해 2개 셋트의 값을 홀드(hold)하기 위해 2번 복제되게 된다.
첫 번째 경우와 같이, 사용자가 HTML 폼 내의 필드로 값을 입력시키고, ″제출″ 버튼을 누르면, CGI는 다음과 같이 이들 HTML 변수 명칭 및 사용자에 의해 입력된 값을 포함하는 POST 데이터를 수신하게 된다.
Figure pat00004
HTML 템플릿 내에 하나 이상의 복제 블록을 갖는 것이 가능하다. 예를 들어, 하나의 HTML 템플릿은 전술한 예에서 설명된 바와 같이 ns5250 커맨드를 구축하기 위한 복제 블록과, ns3270 커맨드 또는 자바(java) 가상 머신 애플리케이션 커맨드에 대한 파라미터를 위한 다른 복제 블록을 포함할 수도 있다. 복제 블록이 폼에서 한 번 이상 복제될 때마다, 그 HTML 폼으로부터 POST 데이터를 처리하는 데 있어 동일한 문제가 발생하게 된다.
복수의 변수를 리턴할 수 있는 폼을 생성하기 위한 직접적 방법이 아닌 상대적으로 시간 소비적인 방법은 각각의 특정 애플리케이션에 대해 맞추어진 폼을 생성하는 것이다. 그러나, 폼을 빠르고 효율적으로 생성하는 것을 용이하게 하기 위해서는 그런 폼을 생성하기 위한 템플릿을 제공하는 것이 편리하고 유익하다.
템플릿은, HTML 파일을 구문분석하고, 각각의 특정한 대체 변수(substitution variables)를 복수의 데이터로 대체하도록 서버 컴퓨터의 CGI에게 알려주는 복제 인디케이터를 포함할 수 있다. 이것을 수행하기 위해, CGI는 HTML 폼 내의 복제 인디케이터들 사이에 있는 폼의 섹션을 복제하는데, 각각의 복제는 랜더링될 데이터의 각각의 인스턴스에 대응한다. HTML 폼의 섹션이 복제될 때, 복제된 필드의 명칭도 또한 복제된다.
이와 같은 복제는 동일한 명칭을 가지는 상이한 값을 가진 복수의 HTML 필드를 초래한다. 이것은 웹 사용자로부터 수신된 데이터를 처리하는 데 있어 CGI의 태스크를 복잡하게 한다. 더욱 구체적으로 말하자면, 필드 및 그 명칭이 복제될 때, 명칭은 더 이상 고유한 것이 아니며, 결과적으로, CGI는 정확한 값을 정확한 필드 명칭에 그룹지울 수 없다. 또한, CGI는 복제 이후에 어떤 데이터 항목이 함께 그룹지워질 것인지 미리 알지 못한다.
복제 가능한 필드를 가진 HTML 템플릿의 이용으로부터 초래되는 두 번째 복잡성은 데이터 확인과 관련하여 발생한다. 특히, 사용자 컴퓨터의 웹 브라우저는, HTML 폼의 필드로의 사용자 입력을 확인하기 위해, HTML의 일부인 ″자바스크립트(Javascript)″로서 알려진 언어를 호출하며, 모든 필드에의 입력이 확인되는 것을 보장하기 위해, 자바스크립트는 얼마나 많은 필드가 확인되어야 하는지 알아야 한다. 본 명세서에서 ″블록″으로도 칭해지는 복제가능한 테이블을 가진 HTML 템플릿의 경우에, 자바스크립트는 얼마나 많은 필드가 확인되어야 하는지 미리 알지 못한다.
양호한 실시예의 개요
적어도 제1 및 제2 복제된 필드를 생성하기 위해 블록 명칭에 의해 특징지워지는 적어도 하나의 복제 블록에서 적어도 하나의 필드를 복제하고; 제1 필드 명칭을 생성하기 위해 블록 명칭을 수정하고; 제2 필드 명칭을 생성하기 위해 블록 명칭을 수정하고; 이들 필드 명칭을 제1 및 제2 복제된 필드 각각에 연관시키고; 복제의 수를 계수하고; 복제의 수를 적어도 하나의 클라이언트 컴퓨터로 전송하는, 복제 블록을 포함하는 탬플릿으로부터 한 폼을 생성하기 위한 향상된 문서 브라우징 방법 및 장치.
상세한 설명
이제 도면, 특히 도1을 참조하면, 본 발명의 양호한 실시예가 구현될 수도 있는 데이터 처리 시스템의 블록도가 도시되어 있다. 클라이언트로서 작용하는 컴퓨터(100,146,147)는 네트워크(145)를 통해 서버 컴퓨터(150)에 접속된 것으로 도시되어 있다. 본 발명의 양호한 실시예에서, 네트워크(145)는 인터넷이다. 그러나, 근거리 통신망(LAN)이나 인트라넷과 같은 다른 종류의 네트워크가 될 수도 있다.
클라이언트 컴퓨터(100)는 버스(112)를 통해 입력장치(104), 디스플레이 장치(106), 네트워크 접속부(connection)(108), 및 메모리(110)에 접속된 프로세서인 중앙 처리 장치(CPU)(102)를 포함하고 있다. 클라이언트 컴퓨터(146)는 5250 에뮬레이터를 포함하고, 클라이언트 컴퓨터(147)는 3270 에뮬레이터를 포함한다. ″5250″과 ″3270″은 서버 컴퓨터로 접속하는 데 상이한 프로토콜을 지원하는 상이한 형태의 디스플레이 단말을 나타낸다. 따라서, 5250 에뮬레이터는 클라이언트 컴퓨터(146)상의 5250 디스플레이 단말의 동작을 에뮬레이트하는 프로그램이다. 마찬가지로, 3270 에뮬레이터는 클라이언트 컴퓨터(147)상의 3270 디스플레이 단말의 동작을 에뮬레이트하는 프로그램이다. 그러므로, 이들 에뮬레이터는 디스플레이 단말의 각각의 형태가 되는 서버(150)에 대한 외관을 클라이언트 컴퓨터(146,147)에 제공한다. 비록 클라이언트 컴퓨터(100,146,147)가 상이한 컴퓨터로 도시되어 있지만, 이들 컴퓨터는 실제적으로는 모두 동일한 컴퓨터가 될 수 있으며, 예를 들어, 클라이언트 컴퓨터(100)가 3270 에뮬레이터와 5250 에뮬레이터 모두를 실행할 수도 있다.
입력 장치(104)는 사용자가 클라이언트 컴퓨터(100)로 입력을 제공하기에 적합한 어떤 장치도 될 수 있는데, 예를 들어, 키보드, 키패드, 라이트펜(light-pen), 터치 스크린, 버튼, 마우스, 또는 음성 인식 장치가 사용될 수 있다. 디스플레이 장치(106)는 디스플레이 스크린, 텔레비젼 셋트, 또는 오페레이터 패널 등과 같은 적절한 디스플레이 장치가 될 수 있다. 비록 입력 장치(104)가 디스플레이 장치(106)와 분리된 것으로 도시되어 있지만, 예를 들어, 일체화된 터치스크린을 가진 디스플레이나 일체화된 키보드를 가진 디스플레이와 같이, 이들 장치는 조합될 수 있다.
메모리(110)는 필요한 프로그래밍 및 데이터 구조를 홀드할 만큼 충분히 큰 기억장치이다. 비록 메모리(110)가 단일 엔티티로서 도시되어 있지만, 이 메모리(110)는 실제적으로는 다수의 기억장치를 포함할 수도 있으며, 플로피-디스크 드라이브, 고정-디스크 드라이브, 테이프 드라이브, CD-ROM 드라이브, 또는 광 드라이브를 위해, 고속 레지스터 및 캐시(caches)로부터 속도는 보다 낮지만 보다 큰 용량의 DRAM 칩까지 다양한 레벨로 존재할 수도 있다. 비록 메모리(110)가 클라이언트 컴퓨터(100)에 전부 존재하는 것으로 도시되어 있지만, 이 메모리(110)는 실제적으로는 네트워크(145)나 근거리 통신망(도시 안됨)의 어느 곳이라도 존재하는 원격 메모리가 될 수도 있다.
이 메모리(110)는 브라우저(120), 다운로드된 문서(126), 및 네트워크-처리 프로그램(124)을 내장한다. 브라우저(120)는 서버(150)로부터의 문서를 메모리(110)내의 다운로드된 문서(126)로 다운로드할 수 있으며, 상세하게 후술되는 바와 같이 이들 다운로드된 문서(126)에 대해 동작할 수 있다. 비록 다운로드된 문서(126)가 단일 엔티티로서 도시되어 있지만, 이것은 실제적으로는 복수의 엔티티로서 존재할 수도 있다. 후술되는 논의에서 서버(150)로부터의 문서를 해석하고, 서버(150)로부터의 문서내의 펑션을 실행하는 브라우저(120)를 언급할 때, 이 브라우저(120)는 실제적으로는 다운로드된 문서(126)들에 존재하는 이들 문서의 복사본에 대해 동작한다는 것을 이해해야 된다.
네트워크-처리 프로그램(124)은, CPU(102)상에서 실행될 때, 서버 컴퓨터(150)와 같은 네트워크(145)내의 컴퓨터에 클라이언트 컴퓨터(100)가 접속하는 것을 지원하는 명령어를 포함한다.
CPU(102)는 다운로드된 문서(126)와 같은 문서를 브라우징하도록 브라우저(120)에 의해 적절하게 프로그램된다. 대안으로, 브라우저(120)의 펑션은 프로세서-기반 시스템 대신에 로직 게이트나 프로그램가능 로직 장치, 또는 다른 하드웨어 컴포넌트를 이용하여 제어 회로에 의해 구현될 수 있다. 본 발명의 양호한 실시예에서, 브라우저(120)는 넷스케이프 네비게이터이지만, 이 브라우저(120)는 제어-코드 및 스크립트를 해석하는 여하한 종류의 번역 프로그램(interpreter)도 될 수 있다.
본 발명의 양호한 실시예에서, 네트워크 접속부(108)는 TCP/IP 네트워크 접속부이지만, 이것은 다른 형태의 적절한 네트워크 접속부가 될 수도 있다. 클라이언트 컴퓨터(100,146,147)는 전화 라인이나 케이블 라인을 통해, 또는 무선 통신을 이용하여 네트워크(145) 및 궁극적으로는 서버 컴퓨터(150)에 접속된다. 비록 클라이언트 컴퓨터(100,146,147) 및 서버 컴퓨터(150)가 네트워크(145)로부터 독립된 개체로 도시되어 있지만, 이들 컴퓨터는 실제적으로는 네트워크(145)의 일부가 될 수 있다.
서버 컴퓨터(150)는 버스(153)를 통해 네트워크 접속부(154) 및 메모리(156)에 접속된 중앙 처리 장치(CPU)(152)를 포함한다. 네트워크 접속부(154)는 서버 컴퓨터(150)를 네트워크(145)에 접속한다. 메모리(156)는, 메인-CGI(371), 시작-관리자 문서(350), 시작-관리자-CGI(351), 로그온(logon) 문서(370), 로그온-CGI(371), 로그온-폼-CGI(375), 스코프 문서(326), 사용자-리스트-CGI(325), 메인 문서(390), 태스크-프레임 제어-객체 문서(311), 스타트업(startup) 문서(404), 서버 프로그램(158), 및 네트워크-스테이션-관리자(network-station -manager) 문서(300)를 포함한다.
이들 여러 가지 문서는 본 발명의 양호한 실시예에서 HTML 문서이며, 도3에 대한 설명에서 더 상세하게 설명되게 된다. HTMM폼이 이들 여러 CGI 프로그램의 연산에 대해서는 도5-19에 대한 설명에서 보다 상세하게 설명된다.
태스크-프레임 제어-객체 문서(311)는, 네트워크-스테이션-관리자 문서(300)에 의해 사용되며 하이퍼링크를 통해 네트워크-스테이션-관리자 문서(300)에 의해 참조되는 제어-객체에 대한 제어-코드를 포함한다. 비록 태스크-프레임 제어-객체 문서(311)가 서버 컴퓨터(150)에 포함된 것으로 도시되어 있지만, 이것은 네트워크(145)내의 어떤 서버 상에도 존재할 수 있다. 태스크-프레임 제어-객체 문서(311)에 대해서는 도3에 대한 설명에서 보다 상세하게 설명되게 된다.
서버 프로그램(158)은, CPU(152)상에서 실행될 때 서버 컴퓨터(150)를 네트워크 접속부(154)를 통해 네트워크(145)에 접속하고 클라이언트 컴퓨터(100)로부터의 요구에 대한 응답을 지원하는 컴퓨터 실행가능 명령어를 포함한다. 본 발명의 양호한 실시예에서, 서버 프로그램(158)은 HTTP 를 지원한다.
비록 도1에는 오직 하나의 서버 컴퓨터만이 도시되어 있지만, 실제적으로는 복수의 서버 컴퓨터가 존재할 수 있다. 또한, 비록 서버 컴퓨터(150)가 네트워크(145)에 직접 접속된 것으로 도시되어 있지만, 이것은 예를 들어 근거리 통신망(도시 안됨)을 통해 간접적으로 접속될 수도 있다.
클라이언트 컴퓨터(100)는 OS/2TM운영 체제를 실행하는 IBM 개인용 컴퓨터와 같은 어떤 적절한 클라이언트 컴퓨터를 이용하여 구현될 수 있다. 이 클라이언트 컴퓨터(100)는 네트워크 접속부(108)를 통해 직접 네트워크(145)에 접속될 수 있으며, 또는 예를 들어 근거리 통신망(도시 안됨)을 통해 간접적으로 접속될 수도 있다.
서버 컴퓨터(150)는 OS/400TM운영 체제를 실행하는 AS/400TM컴퓨터 시스템과 같은 어떤 적절한 서버를 이용하여 구현될 수도 있으며, 이들 제품은 모두 미국 뉴욕 아몬크 소재의 IBM 사의 제품이다.
클라이언트 컴퓨터(100,146,147)는 다른 형태의 컴퓨터 시스템이 될 수도 있으며, 이들 컴퓨터는 애플 매킨토시와 같은 마이크로컴퓨터가 되든지, 또는 IBM 시스템/390과 같은 메인프레임 컴퓨터가 되든지 간에, 여전히 본 발명의 사상 및 범위에 속한다. 또한, 클라이언트 컴퓨터(100,146,147)와 서버 컴퓨터(150)는 전술한 바와 같은 마이크로컴퓨터가 될 수 있지만 보다 큰 컴퓨터 시스템에 접속될 수 있다. 클라이언트 컴퓨터(100,146,147)는 또한, 고정 디스크 드라이브를 갖고 있지 않은 씬(thin) 클라이언트나 또는 인터넷 어플라이언스와 같은 컴퓨터가 될 수도 있다. 본 발명의 원리가 다른 메인프레임, 마이크로컴퓨터, 네트워크 서버, 수퍼컴퓨터, 개인용 컴퓨터, 또는 워크스테이션, 및 또한 다른 전자 응용기기와 같은 다른 컴퓨터 응용 기기에 적용될 수 있다는 것은 쉽게 이해될 수 있을 것이다. 그러므로, 본 명세서에서의 논의는 특정 애플리케이션에 집중되지만, 본 발명은 특정한 하드웨어 설계, 소프트웨어 설계, 통신 프로토콜, 성능 파라미터, 또는 여기에서 설명되는 애플리케이션-특정 펑션에 제한되지 않아야 한다.
이제, 도2를 참조하면, 디스플레이 장치(106)상의 샘플 스크린의 블록도가 도시되어 있다. 디스플레이 장치(106)상의 윈도우는 3개의 프레임, 즉 태스크-프레임(210), 작업-프레임(220), 및 제어-프레임(230)으로 분할되어 있다. 브라우저(120)는, 도3 및 도5에 대한 설명에서 상세하게 후술되는 바와 같이, 다운로드된 네트워크-스테이션-관리자 문서(300)내의 프레임 제어-코드(310)를 해석하므로써 윈도우에 프레임을 생성한다. 태스크-프레임(210)은 태스크-X 버튼(212), 태스크-Y 버튼(214), 및 태스크-Z 버튼(216)을 포함한다. 브라우저(120)는, 도3 및 도5에 대한 설명에서 상세하게 후술되는 바와 같이, 다운로드된 네트워크-스테이션-관리자 문서(300) 및 태스크-프레임 제어-객체 문서(311)를 해석함으로써 이들 태스크 버튼을 생성한다.
도2에 도시된 예에서, 사용자는 태스크-Y 버튼(214)을 선택했다. 이 선택으로 인해, 브라우저(120)는 태스크-Y 문서를 다운로드하고, 태스크-Y 정보 내의 포맷 제어-코드에 근거하여 작업-프레임(220)에 포맷된 태스크-Y 정보(222)와 같이 태스크-Y 정보를 디스플레이하게 된다. 브라우저(120)는 또한, 태스크-Y 문서 내의 제어-코드(또는 제어 태그)를 해석하고, 이들 제어-코드에 근거하여 제어-객체(235)를 디스플레이하는데, 이들 객체는 본 실시예에서 도4 및 도5에 대한 설명에서 더 상세하게 설명되는 바와 같이, 제어-프레임(230)내의 버튼이다.
제어-프레임(230)에 도시된 바와 같이, 본 실시예에서 제어-객체(235)를 위한 샘플 버튼은 ″back″, ″next″, ″help″, 및 ″finish″ 버튼이다. 그러나, ″OK″, ″cancel″, ″add″, 및 ″apply″를 포함하여 아주 다양한 제어 펑션이 사용될 수 있으며, 여기에 제한되지 않는다. 비록 본 실시예에서는 버튼이 사용되지만, 다른 어떤 제어-객체도 사용될 수 있다. 제어-객체는, 사용자에 의해 선택될 때 작업-프레임(220)에 디스플레이되는 정보의 내용을 제어하는 작용을 하거나, 또는 정보를 서버 컴퓨터(150)로 제출하는 작용을 하는 객체이다. 이들 제어-객체의 형태에 관한 예로서는, 한 라인의 텍스트를 입력하기 위한 텍스트-박스 또는 입력 필드, 옵션 그룹 중에서 하나를 선택하기 위한 라디오 버튼, 단일의 독립적인 옵션을 선택하거나 선택해제하기 위한 체크-박스, 및 그래픽 또는 텍스트 하이퍼텍스트 링크가 있다. 본 발명의 양호한 실시예에서, 제어-프레임(230)은 작업-프레임 아래에 인접하여 배치되어 있는데, 이 프레임은 어느 곳이라도 배치될 수 있다.
이제 도3을 참조하면, 본 발명의 양호한 실시예에 따른, 네트워크-스테이션-관리자 문서(300), 시작-관리자 문서(350), 로그온 문서(370), 메인 문서(390), 및 태스크-프레임 제어-객체 문서(311)가 도시되어 있다. 네트워크-스테이션-관리자 문서(300)는 프레임 제어-코드(310), 시작-관리자 문서를 위한 URL(318), 전역 변수(320), 스크립트 펑션(322), 제어 펑션(352), 명칭(name) 펑션(372), 확인 펑션(374), 및 태스크-프레임 제어-객체 문서에 대한 포인터(317)를 포함한다. 전역 변수(320)는 도움말 콘텍스트, 운영 플래그(admin flag), 스코프 상태 정보, 및 시스템 명칭(321)을 포함한다. 제어 펑션(352)은 로그온 문서(370)의 어드레스인 로그온 URL(353)을 포함한다. 브라우저(120)는 태스크-프레임(210), 작업-프레임(220), 및 제어-프레임(230)을 생성하기 위해 프레임 제어-코드(310)를 해석한다.
시작-관리자 문서(350)는 숨은 변수(hidden variables)(354) 및 제어 펑션에 대한 포인터(357)를 포함한다. 제어 펑션에 대한 포인터(357)는 브라우저(120)가 시작-관리자 문서(350)를 로드할 때 실행될 네트워크-스테이션 관리자 문서(300)내의 펑션을 식별한다. 숨은 변수(354)는 시스템 명칭(356)을 포함한다.
로그온 문서(370)는 네트워크-스테이션 관리자 문서 내의 제어-펑션에 대한 포인터(374), 제어-코드(376), 및 명칭-제어-코드(378)를 포함한다. 제어-펑션에 대한 포인터(379)는 브라우저(120)가 로그온 문서(370)를 로드할 때 브라우저(120)가 실행할 네트워크-스테이션 관리자 문서(300)내의 펑션을 식별한다.
메인 문서(390)는 제어-펑션에 대한 포인터(391), 필수적(required)-숨은-변수(392), 및 선택적(optional)-숨은-변수(394)를 포함한다. 제어-펑션에 대한 포인터(391)는 브라우저(120)가 메인 문서(390)를 로드할 때 브라우저(120)가 실행할 네트워크-스테이션 관리자 문서(300)내의 펑션을 식별한다.
다음은 네트워크-스테이션 관리자 문서(300)의 스크립트 부분의 일례이다:
Figure pat00005
다음은 HTML 포맷으로 기록된 메인 문서(390)의 일례이다:
Figure pat00006
다음은 메인 문서(390)를 위한 스크립트 펑션의 일례이다:
Figure pat00007
다음은 HTML 포맷으로 기록된 로그온 문서(370)의 일례이다:
Figure pat00009
다음은 로그온 문서(370)를 위한 스크립트 펑션의 일례이다:
Figure pat00010
도4a는 본 발명의 양호한 실시예에 따른, 운영 사용자를 위한 브라우저 윈도우의 일례를 도시하는 도면이다. 도4a의 참조번호는 도2의 참조번호와 대응하는데, 접미어 ″a″가 붙어 있다. 브라우저 윈도우는 태스크-프레임(210a), 작업-프레임(220a), 및 제어-프레임(230a)을 포함한다. 태스크-프레임(210a)은 선택 객체(212a,214a,217a)를 포함한다. 선택 객체(217a)는 객체(214a)에 대한 부-객체(sub-objects) 이다. 도4a에 관한 양호한 실시예의 동작에 대해서는 도9에 대한 설명에서 보다 상세하게 설명되게 된다.
도4b는 본 발명의 양호한 실시예에 따른, 비-운영 사용자를 위한 브라우저 윈도우의 일례를 도시하는 도면이다. 도4b의 참조번호는 도2의 참조번호와 대응하는데, 접미어 ″b″가 붙어 있다. 태스크-프레임(210b)은 선택 객체(212b,214b,217b)를 포함한다. 선택 객체(217b)는 객체(214b)에 대한 부-객체(sub-objects) 이다. 도4b에 관한 양호한 실시예의 동작에 대해서는 도9에 대한 설명에서 보다 상세하게 설명되게 된다.
이제 도5의 흐름도에 도시된 바와 같이, 본 발명의 양호한 실시예의 동작에 대해 보다 상세하게 설명하게 된다. 본 실시예는 블록(500)에서 시작된다. 블록(505)에서, 클라이언트 컴퓨터(100)측의 브라우저(120)는 서버 컴퓨터(150)측의 메인-CGI(302)의 호출을 요구한다. 브라우저(120)는 이것을 자진하여 수행할 수 있으며, 또는 사용자가 URL을 입력하는 것에 응답하여 네트워크-스테이션-관리자 문서(300)를 요구할 수도 있다. 블록(510)에서, 서버 컴퓨터(150)는, 이 요구를 처리하여 네트워크-스테이션-관리자 문서(300)를 클라이언트(100)로 전송하는 메인-CGI(302)를 호출한다. 다음에, 블록(515)에서, 브라우저(120)는 태스크-프레임(210), 작업-프레임(220), 및 제어-프레임(230)을 디스플레이하기 위해 프레임 제어-코드(310)를 해석한다. 블록(522)에서, 브라우저(120)는 네트워크-스테이션-관리자 문서(300)내의 시작-관리자에 대한 URL을 이용하여 시작-관리자 문서(350)를 요구한다. 그러면, 블록(524)에서, 서버(150)는 시작-관리자 문서(350)를 브라우저(120)로 전송한다. 다음에, 블록(526)에서, 브라우저(120)는 이것이 브라우저(120)가 시작-관리자 문서(350)를 처리한 첫 번째인지 검사하는 제어-펑션(352)을 실행한다.
만일 제어-펑션(352)에 의해, 이것이 브라우저(120)가 시작-관리자 문서(350)를 처리한 첫 번째라는 것으로 판단되면, 이 제어는 블록(528)로 계속되며, 여기서, 제어-펑션(352)은 서버(150)측의 시작-관리자-CGI(351)를 호출하는 폼을 서버(150)로 제출한다. 다음에, 블록(530)에서, 시작-관리자-CGI(351)는 이 폼을 처리하고, 사용자가 억세스하는 시스템 명칭을 시작-관리자 문서(350)의 숨은 변수(354)내의 시스템 명칭(356)에 카피하고, 이것이 두 번째 처리라는 것을 나타내도록 제어-펑션(352)내의 인디케이터를 셋트한다. 다음에, 제어는 블록(524)으로 복귀한다.
만일 제어-펑션(352)에 의해, 이것이 브라우저(120)가 시작-관리자 문서(350)를 처리한 첫 번째가 아닌 것으로 판단되면, 제어는 블록(532)으로 계속되며, 여기서 제어-펑션(352)은 시작-관리자 문서(350)내의 시스템 명칭(356)을 네트워크-스테이션-관리자 문서(300)내의 시스템 명칭(321)에 카피한다. 블록(534)에서, 제어-펑션(352)은 로그온 URL(353)을 이용하여 로그온 문서(370)에 대한 요구를 서버(150)로 전송한다.
블록(538)에서, 로그온 CGI(371)는 이 요구를 처리하고 로그온 문서(370)를 클라이언트(100)로 전송한다. 블록(540)에서, 브라우저(120)는 로그온 문서(370)내의 제어-코드(376)를 해석하고 명칭-펑션(372)을 호출하는데, 이 펑션은 네트워크-스테이션-관리자 문서(300)로부터 시스템 명칭(321)을 판독하고, 시스템 명칭(321)의 값을 포함하는 명칭-제어-코드(378)를 로그온 문서(370)에 생성한다. 블록(542)에서, 브라우저(120)는 로그온 문서(370)내의 제어-코드(376)를 해석하는 것에 응답하여 디스플레이(106)상의 로그온 윈도우 내에 로그온 스크린을 생성한다.
블록(546)에서, 사용자는 사용자-id 및 패스워드를 로그온 스크린 상에 입력한다. 블록(548)에서, 확인-펑션(374)은 사용자-id 및 패스워드를 확인한다. 블록(550)에서, 브라우저(120)는 로그온 문서(370)내의 제어-코드(376)를 해석하는 것에 응답하여 확인된 사용자-id 및 패스워드를 가진 폼을 서버(150)로 전송한다. 이 폼은 로그온-폼-CGI(375)를 식별하며, 또한 메인 문서(390)에 대한 URL을 포함한다.
블록(551)에서, 로그온-폼-CGI(375)는 이 폼을 처리하고, 필수적 숨은 변수(392)를 설정하는데, 이 변수는 메인 문서(390)내의 이 로그온과 관련된 각각의 미래의 CGI 프로그램에 의해 필요로 되게 된다. 필수적 숨은 변수(392)의 예로서는 사용자-id, IP 어드레스, 언어 버전(national language version), 클라이언트가 네트워크 스테이션인지 또는 PC인지 여부, 및 예를 들어 사용자가 운영자인지 또는 비-운영자인지의 여부와 같은 사용자의 권한 또는 보안 레벨이 있다. 로그온-폼-CGI(375)는 또한, 예를 들어 서버(150)가 자바, 넷스케이프, 또는 스파이글래스(Spyglass)를 지원하는지 여부 등과 같이, 사용자가 억세스하기 위해 이용가능한 어떤 제품이 서버(150)에 설치되어 있는지를 나타내는 선택적-숨은-변수(394)를 셋트한다. 블록(555)에서, 로그온-폼-CGI(375)는 메인 문서(390)를 클라이언트(100)로 전송한다.
이제 제어는 도6으로 계속되며, 블록(605)에서, 브라우저(120)는 메인 문서(390)를 수신하여 로드하고, 네트워크-스테이션-관리자 문서(300)내의 스크립트 펑션(322)을 호출한다. 브라우저(120)는 펑션에 대한 포인터(391)를 이용하여 스크립트 펑션(322)을 검색(find)한다. 스크립트 펑션(322)은 메인 문서(390)로부터 필수적 숨은 변수(392) 및 선택적 숨은 변수(394)를 전역 변수(320)로 카피한다. 스크립트 펑션(322)은 또한 어떤 도움말 파일(콘텍스트-감지 가능 도움말)(context-sensitive help)을 사용할 것인지 판단하는 변수를 전역 변수(320)에 세이브하고, 사용자가 운영자인지 여부를 세이브한다. 블록(607)에서는, 도8에 대한 설명에서 보다 상세하게 설명되는 바와 같이, 운영자 및 비-운영자에 대한 처리가 수행된다. 블록(610)에서, 사용자는 태스크-프레임(210)내의 스타트업 제어-객체(212)를 이용하여 스타트업 태스크를 선택한다. 이것은 네트워크-스테이션-관리자 문서(300)로부터 전역 변수(320)내의 숨은 변수를 제출될 폼으로 카피하는, 스크립트 펑션(322)을 호출한다. 이것은 또한, 이 폼으로 요구가 이루어지는 클라이언트에 대한 새로운 숨은 변수를 메인 문서(390)에 셋트한다. 블록(620)에서, 브라우저(120)는 이 폼을 서버(150)로 전송하고, 이것은 블록(625)에서, 제출된 폼으로부터의 숨은 변수를 스코프 문서(326)내의 숨은 변수(327)로 카피하는 스코프-CGI(329)를 호출한다. 블록(630)에서, 스코프-CGI(329)는 스코프 문서(326)를 클라이언트(100)로 전송한다. 블록(635)에서, 브라우저(120)는 스코프 문서(326)를 처리하고, 숨은 변수(327)를 네트워크-스테이션-관리자 문서(300)내의 전역 변수(320)로 카피하기 위해 스크립트 펑션(322)을 호출한다. 블록(635)의 내용은 도7에 대한 설명에서 보다 상세하게 논의된다. 브라우저(120)는 또한 올바른 도움말 텍스트 값을 셋트하여, 사용자가 제어-프레임(235)으로부터 도움말 제어-객체를 선택하는 경우에, 현재의 콘텍스트에 대한 올바른 도움말이 디스플레이되도록 한다. 콘텍스트-감지가능 도움말의 동작에 대해서는 도10에 대한 설명에서 상세하게 후술되게 된다. 스코프 문서(326)는, 사용자가 설치되지 않은 제품에 대한 값을 셋트하려고 시도하는 경우에 사용자에게 경고하는 경고 펑션(328)을 포함한다. 이것은 네트워크-스테이션-관리자 문서(300)내의 전역 변수(320)를 이용하여 실행된다.
이제 도7을 참조하면, 블록(700)에서 스코프 문서에 대한 처리가 시작된다. 스코프 문서의 목적은 후술되게 되는 바와 같이, 운영자로 하여금 정규 사용자의 리스트를 작성하고 그들을 위한 프리퍼런스(preference) 파일 정보를 셋트할 수 있도록 하는 것이다. 블록(705)에서, 브라우저(120)는 스코프 문서(326)를 해석하고, 디스플레이 장치(106)상에 엔트리 필드 및 버튼을 디스플레이한다. 블록(710)에서, 운영 사용자는 이 버튼을 누른다. 블록(715)에서는, 사용자가 버튼을 누르는 것에 응답하여, 브라우저(120)는 스코프 문서(326)를 해석하고, 독립된 윈도우를 열고, HTML 폼을 서버(150)로 제출한다. 이 제출된 폼과 관련된 것으로는, 사용자-리스트-CGI(325)의 식별 및 그 출력을 새로 생성된 독립된 윈도우에 제공하기 위한 사용자-리스트-CGI(325)에 대한 요구가 있다. HTML 폼의 수신에 응답하여, 서버(150)는, 서버(150)로 로그온할 수 있는 모든 정의된 사용자의 리스트를 생성하는 사용자-리스트-CGI(325)를 호출한다. 또한 블록(725)에서, 사용자-리스트-CGI는 폼내의 사용자 리스트를 다시 클라이언트(100)로 전송한다. 다음에 블록(735)에서, 브라우저(120)는 폼을 해석하고 그 출력을 새로 생성된 독립된 윈도우에 기록한다. 블록(740)에서, 운영자는 브라우저(120)가 독립된 윈도우 내로 가져오고 버튼을 누른 사용자 리스트로부터 정규 사용자를 선택한다. 다음에 블록(745)에서는, 사용자가 버튼을 누르는 것에 응답하여, 브라우저(120)는 윈도우를 닫고, 선택된 엔트리를 엔트리 필드 내로 가져온다. 블록(750)에서, 스크립트 펑션(322)은 네트워크-스테이션-관리자 문서(300)의 전역 변수(320)에 엔트리 필드로부터의 사용자 선택을 세이브한다. 나중에, 태스크-프레임(210)내의 다른 태스크와 같은 다른 애플리케이션이 선택되면, 이것의 스코프 패널은 전역 변수(320)로부터 세이브된 정보로 그 HTML 폼을 갱신하기 위해 스크립트 펑션(322)을 사용하게 된다.
도8은 운영자 및 비-운영자에 대한 검사를 처리하기 위한 프로세스 단계를 도시하는 흐름도이다. 비록 도8은 스타트업 태스크와 관련하여 설명되어 있지만, 어떤 CGI 프로그램 및 문서에도 적용될 수 있다. 도8을 참조하면, 제어는 블록(800)에서 시작된다. 블록(820)에서, 브라우저(120)는 사용자가 운영자인지 판단하기 위해 스크립트 펑션(322)을 실행한다. 만일 사용자가 운영자이면, 제어는 블록(835)으로 계속되어, 스크립트 펑션(322)은 운영자에 대한 도움말을 위한 콘텍스트를 전역 변수(320)에 세이브한다. 본 발명의 양호한 실시예에서, 도움말을 위한 콘텍스트는 디스플레이 장치(106)상의 작업-프레임(220)에 스타트업 문서를 위해 디스플레이되는 페이지에 대응하는 도움말 텍스트의 페이지를 식별하는 URL이다. 다음에 제어는 블록(840)으로 계속되어, 브라우저(120)는 태스크-프레임(210)의 내용을 운영자를 위해 적절하게 기록하게 되는데, 그 일례가 도4a에 도시되어 있다. 이제 제어는 블록(845)으로 계속되어, 사용자는 도움말 버튼을 선택한다. 이 선택에 응답하여, 브라우저(120)는 전역 변수(320)로부터 도움말을 위한 콘텍스트를 검색하고 디스플레이 장치(106)상에 적절한 도움말 페이지를 디스플레이하는 스크립트 펑션(322)을 호출한다. 스크립트 펑션(322)은 이 콘텍스트에 근거하여 URL을 구성(construct)하고, 그것을 서버(150)로 제출하는데, 서버는 적절한 도움말 문서를 전송한다. 다음에, 스크립트 펑션(322)은 디스플레이(106)상에 윈도우를 열고, 검색된 도움말 문서를 디스플레이한다. 이제 제어는 블록(850)으로 계속되어, 루틴은 복귀된다.
만일 블록(820)에서 사용자가 운영자가 아니었으면, 제어는 블록(825)으로 계속되어, 브라우저(120)는 비-운영자에 대한 도움말을 위한 콘텍스트를 전역 변수(320)에 세이브하는 스크립트 펑션(322)을 호출한다. 이러한 방식으로, 운영-사용자와 비-운영-사용자에 대한 도움말 텍스트가 달라지게 된다. 이제 제어는 블록(830)으로 계속되어, 스크립트 펑션(322)은 비-운영자를 위해 적절하게 태스크-프레임(210)의 내용을 로드하게 되는데, 그 일례가 도4b에 도시되어 있다. 이제, 제어는 전술한 바와 같은, 블록(845)으로 계속된다.
도9는 사용자가 태스크-프레임(210)으로부터 태스크를 선택할 때의 로직을 도시하고 있다. 비록 이 로직은 스타트업 태스크와 관련하여 설명되어 있지만, 태스크-프레임(210)내의 어떤 태스크에도 비슷하게 적용될 수 있다. 이 시점에서, 브라우저 윈도우는 도17에 도시된 상태에 있다. 블록(905)에서, 사용자는 도17의 스타트업-선택-객체(214)(도4a의 214a)를 선택한다. 블록(906)에서는, 스타트업-선택-객체(214)의 선택에 응답하여, 브라우저(120)는 ″확장된 스타트업(expanded startup)″으로 명명된 변수를 ″참(true)″으로 설정하고 그것을 네트워크-스테이션-관리자 문서(300)내의 전역 변수(320)에 세이브하기 위해 스크립트 펑션(322)을 실행한다. 블록(907)에서, 스크립트 펑션(322)은 도8에 대한 설명에서 전술된 바와 같이, 운영자인지를 대해 검사한다. 블록(908)에서, 스크립트 펑션(322)은 태스크-프레임 제어-객체 문서(311)를 재로드하기 위한 요구를 서버(150)로 전송한다. 블록(909)에서, 서버(150)는 태스크-프레임 제어-객체 문서(311)를 브라우저(120)로 전송하고, 브라우저는 도18에 도시된 바와 같이, 서브-태스크 선택-객체 문서(217)를 디스플레이하기 위해, 태스크-프레임 제어-객체 문서(311)에서 전역 변수(320)로부터의 ″확장된 스타트업″을 이용하여 HTML을 동적으로 재생성하도록 태스크-프레임 제어-객체 문서(311)내의 스크립트 펑션(313)을 호출한다. 블록(911)에서, 태스크-프레임 제어-객체 문서(311)내의 스크립트 펑션(313)은 새로 생성된 HTML을 태스크-프레임 제어-객체 문서(311)에 기록한다. 블록(913)에서, 브라우저(120)는 태스크-프레임 제어-객체 문서(311)의 로딩을 종료한다. 브라우저 윈도우의 상태는 도18에 도시된 바와 같지 않다. 블록(915)에서는, 처리가 완료된다.
시작 문서(404)내의 제어-코드의 일례가 다음의 샘플 HTML 및 자바스크립트에 예시되어 있다.
Figure pat00011
도10은 본 발명의 양호한 실시예에 따른, 태스크 프레임내의 제어-객체로부터 운영 사용자에 의한 태스크의 선택을 처리하기 위한 프로세스 단계를 도시하고 있다. 처리는 블록(930)에서 시작된다. 블록(932)에서, 운영 사용자는 서버(150)로부터 사용자 리스트를 요구하기 위해 도19상의 브라우즈 버튼(252)을 선택한다. 블록(934)에서, 브라우저(120)는 스코프 문서(326)내의 스크립트 펑션(329)을 호출한다. 블록(936)에서, 스크립트 펑션(329)은 도20a에 도시된 바와 같이, 사용자-리스 트 윈도우(254)를 열고, 리스트-메인 문서(330)를 요구하는 URL을 서버 컴퓨터(150)로 전송한다. 다음에, 블록(938)에서, 서버 컴퓨터(150)는 리스트-메인 문서(330)를 브라우저(120)로 전송하고, 브라우저는 그것을 사용자-리스트 윈도우(254)에 디스플레이한다. 리스트-메인 문서(330)는 도20에 도시된 바와 같이, 프레임(255,256)을 명시하는 제어 코드를 포함한다. 또한, 리스트-메인 문서(330)는 도20a에 도시된 바와 같이, 작업-프레임(255)에 ″please wait(대기하십시오)″ 라는 메시지를 제공하고, 제어-프레임(256)에 CGI-요구-블랭크(CGI-requesting-blank) 문서를 제공하는 스크립트 펑션을 포함한다. 블록(940)에서, CGI-요구-블랭크 문서는, 전역 변수를 폼으로 카피하고, 작업-프레임(255)을 그 결과에 대한 타겟으로서 명시하고, 폼을 서버(150)측의 사용자-리스트-CGI(325)로 제출하는 스크립트 펑션을 포함한다. 블록(942)에서, 서버(150)는, 사용자 리스트를 판단하고, 그 사용자 리스트를 사용자-리스트 문서(331)에 부가하고, 사용자-리스트 문서(331)를 브라우저(120)로 전송하는 사용자-리스트-CGI(325)를 호출한다. 다음에, 브라우저(120)는 도20b에 도시된 바와 같이, ″please wait″ 메시지 대신에 페이지(259)로서 작업-프레임(255)에 사용자-리스트 문서(331)를 디스플레이한다. 블록(946)에서, 브라우저(120)는 또한, 도20b에 도시된 바와 같이, 제어-객체를 제어-프레임(256)에 배치하기 위해, 선택-리턴 제어-객체(257)(select-and-return control-object)및 닫기 제어-객체(258)에 대한 제어-코드를 포함하는 사용자-리스트 문서(331)를 해석한다.
다음에 블록(948)에서, 사용자는 페이지(259)내의 한 엔트리를 강조표시(highlights)하고, 선택-리턴 제어-객체(257)를 선택한다. 블록(950)에서, 제어-객체(257)의 선택은 네트워크-스테이션-관리자 문서(300)내의 스크립트-펑션(322)을 호출하며, 이 스크립트 펑션은, 페이지(259)로부터 선택된 명칭을 검색하여 그것을 엔트리-필드(253)(도19)에 배치하고, (사용자에 의해 이미 선택되지 않은 경우에) 라디오 버튼(260)(도19)을 선택하고, 사용자-리스트 윈도우(254)를 닫는다. 블록(952)에서, 스크립트-펑션(322)은 이 패널에 의해 나중에 사용하기 위해 선택된 사용자 명칭을 세이브하고 사용자-리스트 윈도우(254)를 닫은 다음, 구성 파라미터를 셋트하기 위해, 선택된 사용자 명칭을 서버(150)로 제출한다. 다음에, 처리는 블록(954)에서 종료된다.
도11은 사용자가 태스크-프레임(2100내의 어떤 태스크를 선택할 때 호출되는 로직을 도시하고 있다. 처리는 블록(970)에서 시작된다. 다음에 블록(972)에서, 사용자는 태스크-프레임(210)내의 한 태스크를 요구한다. 이 선택에 응답하여, 브라우저(120)는 스코프 문서(326)를 요구하기 위해 서버(150)로 폼을 제출한다. 다음에, 서버(150)는 스코프 문서(326)를 브라우저(120)로 전송하고, 브라우저는 그것을 작업-프레임(220)에 디스플레이한다. 블록(974)에서, 브라우저(120)는 네트워크-스테이션-관리자 문서(300)내의 스크립트-펑션(322)을 호출하고, 이것은, 디스플레이된 스코프 패널내의 라디오 버튼 중 어느 것이 선택될 것인지 알기 위해 전역 변수(320)내의 ″최종-스코프″ 전역 변수에 질의하고, 전역 변수(320)내의 ″최종-사용자″ 전역 변수에 저장되었던, 이전에 세이브된 사용자 정보 및 올바르게 선택된 라디오 버튼으로 스코프 문서(326)를 갱신한다.
블록(975)에서, 사용자는 제어-프레임(230)내의 제어-객체를 선택한다. 다음에 블록(976)에서, 네트워크-스테이션-관리자 문서(300)내의 스크립트 펑션(322)은 라디오 버튼의 현재 상태를 전역 변수 ″최종-스코프″로 세이브한다.
블록(977)에서, 스크립트 펑션(329)은 엔트리-필드(253)(도19)가 블랭크인지 검사한다. 만일 블랭크가 아니면, 블록(978)에서, 엔트리-필드(253)의 내용이 전역 변수 ″최종 사용자″에 세이브된다. 다음에, 처리는 블록(985)에서 종료된다.
이제 도12를 참조하면, 단계(1032)에서 클라이언트 컴퓨터(100)의 사용자는 클라이언트 컴퓨터(100)와 연결된 디스플레이 장치(106)상에 페이지를 디스플레이하기 위해 서버 컴퓨터(150)로부터 하나의 웹 페이지를 선택한다. 다음에 단계(1034)에서, 서버 컴퓨터(150)는 선택된 페이지를 네트워크(145)를 통해 클라이언트 컴퓨터(100)로 전송한다. 선택된 페이지가 디스플레이 장치(106)상에 디스플레이되면, 클라이언트 컴퓨터(100)의 사용자는 디스플레이 장치(106)의 커서를 사용자가 추가 정보를 원하는 정보 항목 상에 위치시키기 위해 입력 장치(104)를 적절하게 조작하고, 이 기술 분야에 잘 알려진 수단, 예를 들어 마우스 버튼을 클릭함으로써 그 항목을 선택할 수 있게 된다.
항목이 클릭되면, HTML 폼이 호출될 수 있다. 폼이 호출되면, 서버 컴퓨터(150)상의 CGI 프로그램은 템플릿을 이용하여 폼을 생성하고, 이 폼은 사용자가 그 폼의 필드로 데이터를 입력할 수 있도록 서버 컴퓨터(150)로부터 클라이언트 컴퓨터(100)로 전송된다. 따라서, 판단 단계(1038)에서, 서버 컴퓨터(150)는 클라이언트 컴퓨터(100)로 리턴될 호출된 HTML 폼을 명시하는 템플릿이 복제 인디케이터를 포함하는지 판단한다. 만일 포함하지 않으면, 그 폼은 단계(1039)에서 생성되어 리턴되며, 다음에 본 발명의 양호한 실시예의 목적을 위해 처리는 단계(1040)에서 종료된다. 한편, 복제 인디케이터를 가진 HTML 템플릿이 호출되었으면, 제어는 단계(1042)로 이동되어, 다른 것 중에서도 생성중인 폼 내의 복제 인디케이터 사이에 존재하는 HTML을 복제함으로써 폼을 생성한다. 다음에, 단계(1044)에서는, 동일한 복제 블록내에서는 변수가 동일한 고유의 접미어(suffix)를 갖게 되도록 복제된 블록내의 변수 명칭에 접미어가 부가된다. 다음에, 단계(1045)에서 폼을 전송하고, 단계(1040)에서 처리를 종료한다.
복제 필드를 가진 한 예시적인 HTML 템플릿의 한 섹션은 다음과 같다:
Figure pat00012
본 발명의 양호한 실시예에 따르면, ″NSM_SUB_RBEGIN″는 시작 복제 인디케이터이고, ″NSM_SUB_REND″는 종료 복제 인디케이터이다. 이들 인디케이터는 후술되는 프로세스를 이용하여, 인디케이터 사이의 블록을 복제할 것을 서버 컴퓨터(150)상의 CGI 프로그램에 통지한다. 후술될 목적을 위해 도시된 바와 같이 변수 명칭에는 접미어 ″UNQ″가 포함된다.
단계(1042,1044)에서 수행되는 복제 프로세스 이후에, 전술한 단일 테이블 템플릿이 다음과 같은 이중 테이블 폼이 되게 된다.
Figure pat00013
도시된 바와 같이, 접미어 ″UNQ″는 구문분석 중에 수치 접미어로 대치되었으며, 제1 블록값 명칭은 접미어 ″1″을 갖고, 제2 블록값 명칭은 접미어 ″2″를 갖고 있다. 더 이상의 블록 복제가 수행되게 되는 경우에는, 제3 블록의 접미어 ″UNQ″가 수치 ″3″으로 대치되는 등으로 진행된다. 또한, 구문분석 동안에, 값 필드는 데이터(예, 제1 블록에서 ″rchas317″ 및 제2 블록에서 ″rchaslkb″)로 채워졌으며, 이들 채워진 값 필드는 변수 명칭에 대응하며, 이들 변수 명칭 각각은 이제 고유의 접미어를 갖는다. 원하는 경우에, 각각의 복제된 블록내의 각 변수 명칭에는 고유의 명칭이 제공될 수 있으며, 서버 컴퓨터(150)는 어떤 변수 명칭이 각각의 블록에 관련되어 있는지 기록한다. 본질적으로, 부가된 접미어를 이용한 전술한 프로세스는 이것을 실현하는 것이다.
도13에는 HTML 템플릿으로부터 HTML 폼을 생성하는데 있어 수행되는 복제 프로세스의 상세도가 도시되어 있다. 이 프로세스는 단계(1046)에서 시작되어, 카운터 변수 ″iterCount″가 제로로 초기화된다. 다음에, 프로세스는 단계(1046)로부터 판단 단계(1048)로 이동하여, 호출된 HTML 폼이 전술한 아직 처리되지 않은 복제 인디케이터를 포함하는 템플릿에 의해 명시되어 있는지 판단하게 된다. 만일 그렇다면, 본 발명의 양호한 실시예의 로직은 단계(1050)로 이동하여 HTML 템플릿으로부터 그 다음 미처리 복제 블록을 추출한 다음, 단계(1052)에서, 카운터 변수 replCount 및 unqCount 가 각각 제로(0) 와 1로 셋트된다.
다음에, 로직은 단계(1052)로부터 단계(1054)로 이동되어, 복제될 블록을 서버 컴퓨터(150)내의 작업 버퍼(working buffer)로 카피한다. 다음에, 단계(1056)에서는, 블록내의 접미어 ″UNQ″ 가 카운터 변수 unqCount로 대치된다. 또한, 단계(1056)에서는 전술한 바와 같이 변수 값 필드로 데이터가 삽입된다.
일단 값 필드가 채워지고 필드 명칭에 블록-고유 접미어가 제공되면, 프로세스는 단계(1058)로 이동되어, 버퍼 블록을 생성중인 HTML 폼으로 삽입하게 된다. 다음에 단계(1060)로 이동하여, 카운터 replCount 및 unqCount가 단위(unity) 만큼 증가되고, 다음에 판단 단계(1062)에서, 검사중인 블록이 복제될 더 이상의 데이터를 포함하고 있는지에 관한 판단이 이루어진다. 만일 그렇다면, 프로세스는 단계(1054)로 되돌아간다.
그러나 다른 한편으로, 현재의 블록이 완전히 복제되었다면, 프로세스는 판단 단계(1062)에서 단계(1064)로 이동한다. 단계(1064)에서는, 카운트 어레이 값(CountArray[iterCount])이 카운터 replCount 와 동일하게 셋트된다. 그러므로, 카운트 어레이는 replCount=iterCount 엘리먼트를 갖는다. 또한 단계(1064)에서는, 방금 복제된 블록이 카운트 어레이로 삽입된다. 실제적으로, 단계(1064)는 폼의 필드를 적절한 값으로 채우기 위해 HTML 템플릿의 값 필드를 구문분석한다. 다음에, 프로세스는 단계(1064)로부터 판단 단계(1048)로 되돌아간다.
판단 단계(1048)는 템플릿에 어떤 다른 복제 인디케이터가 존재하는지 검사한다는 것을 상기하자. 만일 판단 단계(1048)에서의 검사 결과가 부정이면, 프로세스는 도시된 바와 같이 단계(1066)로 이동하여, 사용자 브라우저에 의한 후속 필드 검증시 사용하기 위해 카운트 변수를 설정한다.
특히, 단계(1066)에서는, 각각의 카운트 어레이 테이블, 즉 동일한 수치 접미어를 가진 카운트 어레이내의 각각의 필드 그룹에 대해 DO 루프에 들어간다. 이 기술에 통상의 지식을 가진 자는 DO 루프가 각각의 [(0) to iterCount] 카운트 어레이 테이블에 대해 실행된다는 것을 인식할 것이다. 다음에 단계(1068)로 이동하여, 카운트 변수에 접미어가 부가되는데, 부가된 접미어는 특정 블록 엘리먼트가 받은 복제의 수를 나타낸다. (이 접미어는 스크립트 펑션에 알려져 그 테이블에 대한 고유 카운터를 검색하기 위해 사용되기 때문에 중요하다.) 다음에는 단계(1070)에서, 후술될 검증 목적을 위해 카운트 변수가 검사중인 어레이에 대한 숨은 변수로서 삽입된다. 다음에, 프로세스는 단계(1066)로 되돌아가 카운트 어레이내의 모든 테이블이 처리 완료될 때까지 계속된다.
도13을 참조하여 전술한 프로세스는 클라이언트 컴퓨터(100)의 사용자가 복제 필드를 가진 HTML 템플릿에 의해 명시된 HTML 폼을 요구했을 때 서버 컴퓨터(150)측의 CGI 프로그램의 연산에 관한 것이다. 특히, 전술한 프로세스는 완전한 폼을 클라이언트 컴퓨터(100)로 렌더링하기 위해 행해지는 복제 및 필드 재명명(renaming) 프로세스를 설명하고 있다. 한편, 도14는, HTML 폼이 전술한 바와 같이 생성되어 네트워크(145)를 통해 클라이언트 컴퓨터(100)로 렌더링된 후에, 사용자가 복제된 필드를 가진 HTML 폼의 여러 필드로 데이터를 입력하는 것에 응답하여, 클라이언트 컴퓨터(100)의 브라우저(120)에 의해 행해지는 데이터 검증 프로세스를 도시하고 있다.
단계(1072)에서 시작하여, 브라우저(120)는 서버 컴퓨터(150)로부터 HTML 폼을 수신한다. 단계(1074)에서는, nro의 각각의 테이블, 즉 동일한 수치 접미어를 가진 블록 그룹에 대해 DO 루프로 들어간다. 다음에 단계(1076)로 이동하여, 전술한 숨은 카운트 변수는 카운트 변수의 명칭을 이용하여 억세스되는데, 브라우저(120)가 카운트 변수의 명칭을 자동적으로 알고 있다는 것을 이해할 수 있다. (CGI에 의해 부가된 접미어는 스크립트 펑션에 알려져 있다.) 다음에, 브라우저(120)는 카운트 변수와 동일한 것으로 테이블내의 로우(rows)의 수를 계산한다.
다음에 단계(1078)에서는, 테이블내의 각각의 ″i″개의 필드가 검증되는데, 브라우저(120)는 테이블내의 로우의 수와 한 로우당 필드의 수의 프러덕트(product)를 판단함으로써 ″i″의 값을 알게된다. 한 로우당 필드의 수는 브라우저(120)가 알고 있다. 다음에, 판단 단계(1080)에서는, 검증 프로세스가 충족되었는지 판단이 이루어지고, 만일 충족되었다면, HTML 폼의 필드로 입력된 데이터는 서버 컴퓨터(150)로 전송되고, 단계(1084)에서 검증을 위해 그 다음 테이블이 검색된다. 한편, 사용자 엔트리가 판단 단계(1080)에서의 검증에 실패하면, 프로세스는 단계(1086)으로 이동되어, 클라이언트 컴퓨터(100)의 사용자에게 에러 신호를 전송하고, 다음에 프로세스는 단계(1084)로 이동하여 그 다음 테이블을 검색한다.
이제 도15를 참조하면, 복제된 블록을 가진 폼이 클라이언트 컴퓨터(100)의 사용자에게 렌더링된 후에, 사용자는 그 폼을 변경하거나 그 필드를 채울 수 있으며, 다음에, 예를 들어 입력 장치(104)를 적절하게 조작함으로써 그 폼을 다시 서버 컴퓨터(150)로 제출할 수 있다. 이 기술분야에 통상의 지식을 가진 자는 알 수 있는 바와 같이, 리턴된 HTML 폼 내의 데이터는, 예를 들어 HTML 폼 상의 ACTION 지시문(directive)내의 명세에 의해 서버 컴퓨터(150)의 CGI 프로그램으로 향할 수 있다. ACTION 지시문의 수신시, 서버 컴퓨터(150)는 전술한 바와 같이 도15에 도시된 단계를 실행하는 CGI 프로그램을 호출한다. 다음의 단계를 설명하는데 있어, 본 발명의 시스템에 의해 사용되는 데이터 절차는 소위 ″POST″ 절차인 것으로 가정한다. 그러나 본 발명은 POST 이외의 다른 절차의 이용도 고려한 것이다.
단계(1100)에서 시작하여, 카운터 UnqNumber는 제로로 셋트되고, 플래그 ″found″는 ″TRUE(참)″의 값을 갖도록 셋트된다. 다음에, 판단 단계(1102)에서, 프로세스는 플래그 ″found″가 TRUE와 동일하게 셋트되었는지 판단하고, 만일 동일하지 않다면, 프로세스는 단계(1104)에서 종료된다. 그렇지 않으면, 프로세스는 단계(1106)로 이동한다. 따라서, 흐름도를 통하는 제1 경로에 있어서, 프로세스는 판단 단계(1102)로부터 단계(1106)로 이동한다.
단계(1106)에서는, 검사중인 폼에 대한 시드(seed) HTML 변수 명칭 셋트가 검색된다. 시드 명칭 셋트는 전술한 블록 복제 프로세스 동안에 발생될 수도 있으며, 또는 정적으로(statically) 셋트될 수도 있다는 것을 이해할 것이다. 각각의 시드 명칭은 검사중인 폼 내의 각각의 복제 블록과 연관된다. 예를 들어, 현재의 폼이, HTML 변수 명칭 ″NSM_SUB_5250*TITLE″을 가진 제1 복제 블록 및 HTML 변수 명칭 ″NSM_SUB_3270*TITLE″을 가진 제2 복제 블록을 포함하면, 전술한 변수 명칭은 모두 시드 명칭 셋트에 나타나게 된다. 이 시드 명칭 셋트 내의 시드 명칭은 거기에 부가되어 있던 도13을 참조하여 논의된 접미어를 갖고 있지 않다는 것을 쉽게 알 수 있을 것이다. 또한 단계(1106)에서, 카운터 UnqNumber는 단위(1) 만큼 증가되고, 플래그 ″found″는 FALSE(거짓)의 값을 갖도록 셋트된다.
단계(1106)로부터, 로직은 단계(1108)로 진행하여, 시드 명칭 셋트에 더 이상의 시드 명칭(즉, 전술한 로직 단계에서 아직 검사되지 않은 시드 명칭)이 존재하는지 판단하게 된다. 검사 결과가 부정이면, 프로세스는 판단 단계(1102)로 되돌아가게 되지만, 그러나, 제1 경로에 있어서는, 판단 단계(1108)의 검사가 긍정이 되게 되며, 따라서 로직은 단계(1110)로 진행한다.
단계(1110)에서, 시드 명칭 셋트에서 그 다음 검사되지 않은 시드 명칭이 검색되고, UnqNumber의 카운트 값이 그 명칭에 부가된다. 다음에, 판단 단계(1112)에서, 접미어를 가진 명칭이 클라이언트 컴퓨터(100)로부터 검색된 POST 데이터에 나타나는지에 대한 판단이 이루어진다. 만일 접미어를 가진 명칭이 POST 데이터에 나타나지 않으면, 로직은 판단 단계(1108)로 되돌아가고, 만일 명칭이 나타나면, 로직은 단계(1114)로 진행한다.
도15는 블록(1114)에서, ″found″ 플래그가 접미어를 가진 시드 명칭이 POST 데이터에서 검색되었다는 것을 나타내는 TRUE와 동일하게 셋트되는 것을 도시하고 있다. 또한 단계(1114)에서는, 검사중인 시드 변수 명칭에 근거하여 어떤 복제 블록이 현재 처리되고 있는지에 관한 판단이 이루어진다. 예를 들어, ″NSM_SUB_5250*TITLE″의 시드 명칭은, 예를 들어, ″NSM_SUB_5250*WIDE″, ″NSM_SUB_5250*HOSTNAME″, 및 나타낸 바와 같은 ″NSM_SUB_5250*TITLE″과 같이, 수치 ″5250″ 과 관련된 필드를 가진 블록을 나타낸다. 다른 한편으로, ″NSM_SUB_3270*TITLE″의 시드 명칭은, 예를 들어, ″NSM_SUB_3270*WIDE″, ″NSM_SUB_3270*HOSTNAME″, 및 나타낸 바와 같은 ″NSM_SUB_3270*TITLE″ 등과 같이, 수치 ″3270″ 과 관련된 필드를 가진 블록을 나타낸다.
단계(1114)에서, 처리되고 있는 복제 블록을 확인한 후에, 로직은 이 블록에 대한 변수 명칭의 완전한 셋트를 얻기 위해 단계(1116)로 진행한다. 이 시점에서, 완전한 셋트내의 변수 명칭은 도13을 참조하여 논의된 접미어를 갖고 있지 않다. 블록(1114)과 관련하여 논의된 예에서, 검사 블록에 대한 명칭의 완전한 셋트는 ″NSM_SUB_5250*WIDE″, ″NSM_SUB_5250*HOSTNAME″, 및 ″NSM_SUB_5250*TITLE″이 될 수도 있다.
다음에는, 판단 단계(1118)로 이동하여, 단계(1116)에서 얻어진 셋트 내의 어느 명칭이 후술되는 단계에 의해 처리되기 위해 남아 있는지 판단한다. 만일 남아 있지 않으면, 프로세스는 판단 단계(1108)로 되돌아간다. 그렇지 않으면, 프로세스는 단계(1120)로 이동하여, 단계(1116)에서 얻어진 셋트로부터 그 다음 미처리 변수 명칭을 얻고, 그 것에 접미어로서 카운트 UnqNumber의 값을 부가하게 된다. 다음에는 판단 단계(1122)로 이동하여, 현재의 명칭이 POST 데이터에 포함되어 있는지에 관한 판단이 이루어지고, 만일 포함되어 있지 않으면, 프로세스는 판단 단계(1118)로 되돌아가고, 그렇지 않으면, 단계(1124)에서 특정 호출된 애플리케이션에 따라 적절하게 현재 명칭에 대한 값을 얻고 그것을 처리한다. 처리 이후에, 로직은 판단 단계(1118)로 이동되어, 단계(1116)에서 얻어진 그 다음 HTML 변수 명칭을 검색한다.
다시 말하면, 단계(1118)와 단계(1124) 사이의 로직은 현재의 복제 블록에 대해 모든 변수 명칭이 처리될 때까지 계속된다. 또한, 단계(1118)와 단계(1124) 사이의 로직은 모든 시드 HTML 변수 명칭이 처리될 때까지 계속된다. 결국, POST 데이터에는 부가된 특정 UnqNumber를 가진 새로운 시드 HTML 변수 명칭이 발견되지 않게 되며, 이 시점에서 로직은 판단 단계(1102)로 이동하고, 여기서는 ″found″ 플래그가 FALSE 로 판단되게 되고 ,따라서, 프로세스는 단계(1104)에서 종료된다.
도16은 도1의 시스템에서 본 발명의 방법을 실행하기 위한 프로그램 수단을 저장하기 위한 신호-내포-매체(signal-bearing-media)를 포함하는 제조 물품 또는 컴퓨터 프로그램 제품을 도시하고 있다. 비록 본 발명이 컴퓨터 시스템과 관련하여 설명되었지만, 본 발명의 메카니즘은 다양한 형태의 프로그램 제품으로서 분배될 수 있으며, 본 발명은 이러한 분배를 실제적으로 수행하는데 사용되는 신호-내포-매체의 특정 형태에 관계없이 동일하게 적용된다. 신호-내포-매체의 예로서는, 플로피 디스크와 CD-ROM 과 같은 기록가능 매체와, 무선 통신 링크를 포함하여 디지탈 및 아날로그 통신 링크와 같은 전송 매체가 있다.
도16에는 이러한 제조 물품의 일례로서 사전-기록된 플로피 디스크(1002)가 도시되어 있다. 이 플로피 디스크(1002)는 데이터 처리 시스템과 함께 사용하기 위한 것이며, 자기 저장 매체(1004) 및 본 발명의 실시를 용이하게 하도록 브라우저(120)에 지시하기 위한, 상기 매체 상에 기록된 프로그램 수단(1006,1008,1010,1012)을 포함한다. 이와 같은 장치 또는 제조 물품도 본 발명의 사상 및 범위 내에 속한다는 것을 이해할 것이다.
비록 본 발명이 양호한 실시예 및 대안의 실시예에 관해 설명되었지만, 이 기술분야에 통상의 지식을 가진 자는 본 발명의 사상, 범위 및 교훈을 벗어나지 않고 그 상세에서 다양한 변경이 이루어질 수 있다는 것을 이해할 것이다. 비록 양호한 실시예가 폼 내의 버튼에 관해 설명되었지만, 브라우징되는 문서를 제어하기 위한 어떤 형태의 메카니즘도 사용될 수 있다. 또한, 컴퓨터 네트워크는 오늘날 알려져 있는 것과 아주 다르게 사용될 수도 있으며, 예를 들어, 연료 분사장치와 같은 한 엘리먼트를 제어하는 서버 컴퓨터와, 오퍼레이터 디스플레이와 같은 다른 엘리먼트를 제어하는 클라이언트 컴퓨터를 구비한 자동차내의 컴퓨터 네트워크가 존재할 수도 있다. 또한, 브라우저를 사용하는 애플리케이션의 형태가 오늘날 알려진 것으로부터 변경될 수도 있다. 또한, 브라우징 기술이 소비자 전자기기, 어플라이언스, 및 자동차를 위한 오퍼레이터 패널과 같은 소비자 애플리케이션에 폭넓게 사용될 수도 있다. 마지막으로, 비록 양호한 실시예가 독립된 클라이언트 및 서버 컴퓨터에 관해 설명되었지만, 클라이언트와 서버는 동일한 컴퓨터 시스템 상에 존재할 수 있다. 따라서, 본 발명은 오직 다음의 특허청구의 범위에 의해 명시된 것에 의해서만 제한되게 된다.
전술한 바와 같은 본 발명에 따르면, 클라이언트 및 비상주 서버 프로그램 사이의 통신을 위한 시스템이 제공되고 정보에 대한 사용자 억세스를 향상시킬 수 있는 효과가 있다.

Claims (1)

  1. 복제 블록을 포함하는 템플릿으로부터 폼을 생성하기 위한 컴퓨터에 구현된 방법에 있어서,
    적어도 제1 및 제2 복제된 필드를 생성하기 위해 블록 명칭에 의해 특정되는 적어도 하나의 복제 블록에서 적어도 하나의 필드를 복제하는 단계와;
    상기 블록 명칭을 수정하여 제1 필드 명칭을 생성하는 단계와 - 상기 수정 단계는 상기 블록 명칭에 제1 접미어를 부가하는 단계를 포함함 - ;
    상기 블록 명칭을 수정하여 제2 필드 명칭을 생성하는 단계와 - 상기 수정 단계는 상기 블록 명칭에 제2 접미어를 부가하는 단계를 포함하고, 상기 제2 접미어와 상기 제1 접미어는 상이함 - ;
    상기 필드 명칭들을 상기 제1 및 제2 복제된 필드 각각에 연관시키는 단계와;
    복제의 수를 계수하는 단계;
    상기 복제의 수를 적어도 하나의 클라이언트 컴퓨터로 전송하는 단계와;
    상기 계수 단계에서 결정된 복제의 수를 이용하여 사용자 입력을 확인하는 단계
    를 포함하는 템플릿으로부터 폼을 생성하기 위한 컴퓨터에 구현된 방법.
KR1019970056527A 1997-02-25 1997-10-30 클라이언트와비상주서버프로그램사이의통신을위한시스템 KR100290198B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/810,156 1997-02-25
US08/810,156 US6108673A (en) 1997-02-25 1997-02-25 System for creating a form from a template that includes replication block

Publications (2)

Publication Number Publication Date
KR19980070058A KR19980070058A (ko) 1998-10-26
KR100290198B1 true KR100290198B1 (ko) 2001-05-15

Family

ID=25203162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970056527A KR100290198B1 (ko) 1997-02-25 1997-10-30 클라이언트와비상주서버프로그램사이의통신을위한시스템

Country Status (5)

Country Link
US (1) US6108673A (ko)
EP (1) EP1002283A4 (ko)
JP (1) JP3444471B2 (ko)
KR (1) KR100290198B1 (ko)
WO (1) WO1998039867A2 (ko)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253228B1 (en) * 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
US6684369B1 (en) * 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US6052629A (en) 1997-07-18 2000-04-18 Gilbarco Inc. Internet capable browser dispenser architecture
US5960411A (en) 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US7222087B1 (en) 1997-09-12 2007-05-22 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US6237035B1 (en) * 1997-12-18 2001-05-22 International Business Machines Corporation System and method for preventing duplicate transactions in an internet browser/internet server environment
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US6507856B1 (en) * 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US6760748B1 (en) * 1999-01-20 2004-07-06 Accenture Llp Instructional system grouping student terminals
JP2002539534A (ja) * 1999-03-08 2002-11-19 サン・マイクロシステムズ・インコーポレイテッド オンラインフォームシステムにデータを発信する方法および装置
US6553363B1 (en) * 1999-03-31 2003-04-22 International Business Machines Corporation Method and apparatus for processing documents in a browser
US7013284B2 (en) * 1999-05-04 2006-03-14 Accenture Llp Component based interface to handle tasks during claim processing
US7617240B2 (en) 1999-05-04 2009-11-10 Accenture Llp Component based task handling during claim processing
US7979382B2 (en) 1999-05-04 2011-07-12 Accenture Global Services Limited Component based information linking during claim processing
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
WO2002087112A2 (en) 2001-04-18 2002-10-31 Space Data Corporation Unmanned lighter-than-air safe termination and recovery methods
US7356390B2 (en) 1999-06-29 2008-04-08 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US7519905B2 (en) * 1999-10-12 2009-04-14 Webmd Corp. Automatic formatting and validating of text for a markup language graphical user interface
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
WO2001088661A2 (en) * 2000-05-16 2001-11-22 U.S. Army Medical Research And Material Command System and method for providing access to forms and maintaining the data used to complete the forms
US7774715B1 (en) 2000-06-23 2010-08-10 Ecomsystems, Inc. System and method for computer-created advertisements
WO2002001391A2 (en) 2000-06-23 2002-01-03 Ecomsystems, Inc. System and method for computer-created advertisements
US8285590B2 (en) 2000-06-23 2012-10-09 Ecomsystems, Inc. Systems and methods for computer-created advertisements
US7665105B2 (en) 2000-06-23 2010-02-16 Ecomsystems, Inc. System and method for computer-created advertisements
US7249042B1 (en) * 2000-11-01 2007-07-24 Microsoft Corporation Method and system for visually indicating project task durations are estimated using a character
US20020103826A1 (en) * 2001-01-29 2002-08-01 Banta Corporation System and method for creating documents populated with variable data
US9908608B2 (en) 2001-04-18 2018-03-06 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9643706B2 (en) 2001-04-18 2017-05-09 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US9632503B2 (en) 2001-04-18 2017-04-25 Space Data Corporation Systems and applications of lighter-than-air (LTA) platforms
US20020198935A1 (en) * 2001-06-25 2002-12-26 Crandall Steven Allen Methods and systems for validating the fields of a form
US8234156B2 (en) 2001-06-28 2012-07-31 Jpmorgan Chase Bank, N.A. System and method for characterizing and selecting technology transition options
CN1575582A (zh) 2001-09-28 2005-02-02 塞维斯通讯公司 可配置的自适应全球通信控制和管理
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030101414A1 (en) * 2001-11-28 2003-05-29 Peiya Liu Two-layer form-based document generation for multimedia data collection and exchange
US7143359B2 (en) 2002-01-03 2006-11-28 International Business Machines Corporation Emulating advanced graphical user interface elements in a hypermedia content browser
US7216303B2 (en) * 2002-01-03 2007-05-08 International Business Machines Corporation Menu emulation for content browser clients
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20040103370A1 (en) * 2002-11-27 2004-05-27 International Business Machines Corporation System and method for rendering MFS XML documents for display
US7130893B2 (en) * 2003-05-19 2006-10-31 International Business Machines Corporation System and method for representing MFS control blocks in XML for MFS-based IMS applications
US7421701B2 (en) * 2002-09-16 2008-09-02 International Business Machines Corporation System for facilitating transactions between thin-clients and message format service (MFS)-based information management system (IMS) applications
US20040083158A1 (en) * 2002-10-09 2004-04-29 Mark Addison Systems and methods for distributing pricing data for complex derivative securities
US7340650B2 (en) 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
TW200413959A (en) * 2003-01-17 2004-08-01 Ec Server Com Inc Web form making method
US7401156B2 (en) 2003-02-03 2008-07-15 Jp Morgan Chase Bank Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment
US7484087B2 (en) * 2003-02-24 2009-01-27 Jp Morgan Chase Bank Systems, methods, and software for preventing redundant processing of transmissions sent to a remote host computer
US8261062B2 (en) * 2003-03-27 2012-09-04 Microsoft Corporation Non-cryptographic addressing
US7409544B2 (en) * 2003-03-27 2008-08-05 Microsoft Corporation Methods and systems for authenticating messages
US7610487B2 (en) * 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7624264B2 (en) * 2003-03-27 2009-11-24 Microsoft Corporation Using time to determine a hash extension
US8126742B2 (en) 2003-05-09 2012-02-28 Accenture Global Services Limited Automated assignment of insurable events
US7418508B2 (en) * 2004-01-26 2008-08-26 International Machines Corporation System and method to facilitate XML enabled IMS transactions between a remote client and an IMS application program
US7702767B2 (en) * 2004-03-09 2010-04-20 Jp Morgan Chase Bank User connectivity process management system
US7929689B2 (en) 2004-06-30 2011-04-19 Microsoft Corporation Call signs
US7665127B1 (en) 2004-06-30 2010-02-16 Jp Morgan Chase Bank System and method for providing access to protected services
US20060085492A1 (en) * 2004-10-14 2006-04-20 Singh Arun K System and method for modifying process navigation
TW200704183A (en) 2005-01-27 2007-01-16 Matrix Tv Dynamic mosaic extended electronic programming guide for television program selection and display
EP1899902B1 (en) * 2005-05-30 2011-12-28 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US8875196B2 (en) 2005-08-13 2014-10-28 Webtuner Corp. System for network and local content access
US8572516B1 (en) 2005-08-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
US7933786B2 (en) 2005-11-01 2011-04-26 Accenture Global Services Limited Collaborative intelligent task processor for insurance claims
US8181016B1 (en) 2005-12-01 2012-05-15 Jpmorgan Chase Bank, N.A. Applications access re-certification system
US7913249B1 (en) 2006-03-07 2011-03-22 Jpmorgan Chase Bank, N.A. Software installation checker
US7895565B1 (en) 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US8086842B2 (en) 2006-04-21 2011-12-27 Microsoft Corporation Peer-to-peer contact exchange
US7765464B2 (en) * 2007-01-12 2010-07-27 International Business Machines Corporation Method and system for dynamically assembling presentations of web pages
US8515786B2 (en) 2008-02-22 2013-08-20 Accenture Global Services Gmbh Rule generation system adapted for an insurance claim processing system
US8478769B2 (en) 2008-02-22 2013-07-02 Accenture Global Services Limited Conversational question generation system adapted for an insurance claim processing system
CA2720353C (en) 2008-04-04 2016-01-19 Level 3 Communications, Llc Handling long-tail content in a content delivery network (cdn)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CA2666212C (en) * 2009-05-20 2017-12-12 Ibm Canada Limited - Ibm Canada Limitee Multiplexed forms
US8296183B2 (en) 2009-11-23 2012-10-23 Ecomsystems, Inc. System and method for dynamic layout intelligence
EP2710752A4 (en) 2011-05-17 2014-10-22 Webtuner Corp SYSTEM AND METHOD FOR A HIGH PRECISION SCALABLE SENSOR AND ID-BASED PUBLIC MEASUREMENT SYSTEM
CN103649906A (zh) 2011-05-24 2014-03-19 韦伯图纳公司 提高观众测量系统中的分析报告产生的效率和速度的系统和方法
US9021543B2 (en) 2011-05-26 2015-04-28 Webtuner Corporation Highly scalable audience measurement system with client event pre-processing
US9720655B1 (en) 2013-02-01 2017-08-01 Jpmorgan Chase Bank, N.A. User interface event orchestration
US10002041B1 (en) 2013-02-01 2018-06-19 Jpmorgan Chase Bank, N.A. System and method for maintaining the health of a machine
US9088459B1 (en) 2013-02-22 2015-07-21 Jpmorgan Chase Bank, N.A. Breadth-first resource allocation system and methods
US9619410B1 (en) 2013-10-03 2017-04-11 Jpmorgan Chase Bank, N.A. Systems and methods for packet switching
US9542259B1 (en) 2013-12-23 2017-01-10 Jpmorgan Chase Bank, N.A. Automated incident resolution system and method
US9868054B1 (en) 2014-02-10 2018-01-16 Jpmorgan Chase Bank, N.A. Dynamic game deployment
US9851952B2 (en) * 2014-09-25 2017-12-26 Oracle International Corporation Seamless restful API generation and consumption through a single channel
CA2972381A1 (en) 2014-12-24 2016-06-30 Space Data Corporation Techniques for intelligent balloon/airship launch and recovery window location
BR112017013836B1 (pt) 2014-12-24 2022-05-24 Space Data Corporation Separação de uma plataforma mediante colisão pendente
US10059421B2 (en) 2014-12-30 2018-08-28 Space Data Corporation Multifunctional balloon membrane

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444841A (en) * 1991-11-08 1995-08-22 International Business Machines Corporation Graphical user interface control for replicating data fields in forms

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461710A (en) * 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
US5704029A (en) * 1994-05-23 1997-12-30 Wright Strategies, Inc. System and method for completing an electronic form

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444841A (en) * 1991-11-08 1995-08-22 International Business Machines Corporation Graphical user interface control for replicating data fields in forms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
국내 교보문고, 최신 컴퓨터/통신/방송 표준기술 314페이지 및 관련 인터넷 사이트(1996, 1997, 99.8.13) *

Also Published As

Publication number Publication date
KR19980070058A (ko) 1998-10-26
WO1998039867A2 (en) 1998-09-11
JP3444471B2 (ja) 2003-09-08
JPH10340252A (ja) 1998-12-22
EP1002283A4 (en) 2006-05-10
US6108673A (en) 2000-08-22
EP1002283A2 (en) 2000-05-24
WO1998039867A3 (en) 1999-01-07

Similar Documents

Publication Publication Date Title
KR100290198B1 (ko) 클라이언트와비상주서버프로그램사이의통신을위한시스템
US5920696A (en) Dynamic windowing system in a transaction base network for a client to request transactions of transient programs at a server
US6177936B1 (en) Browser hierarchical contextual information for web pages
US8832181B2 (en) Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
US7216298B1 (en) System and method for automatic generation of HTML based interfaces including alternative layout modes
US9092137B2 (en) Customization of client-server interaction in an internet application
US7225225B2 (en) Selective synchronization of web browsers
US6144990A (en) Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling
US7234107B1 (en) System for customizing web page
US6918066B2 (en) Method and system for evaluating applications on different user agents
US7263663B2 (en) Customization of user interface presentation in an internet application user interface
US7103627B2 (en) Web-based system and method
US7437312B2 (en) Method for context personalized web browsing
US6732142B1 (en) Method and apparatus for audible presentation of web page content
TW413764B (en) Method for generating display control information and computer
US20020169789A1 (en) System and method for accessing, organizing, and presenting data
US6782430B1 (en) Invalid link recovery
US8627344B2 (en) Methods and apparatuses for user interface management
US20060265662A1 (en) System and method for generating and updating user interfaces of web-based applications
US20020026441A1 (en) System and method for integrating multiple applications
US20030005159A1 (en) Method and system for generating and serving multilingual web pages
US7451393B1 (en) System and method for a page rendering framework
US7814020B2 (en) System, method and computer program product for the recording and playback of transaction macros
Mueller Web matrix developer's guide

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
LAPS Lapse due to unpaid annual fee