KR100288490B1 - 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템 - Google Patents

상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템 Download PDF

Info

Publication number
KR100288490B1
KR100288490B1 KR1019970015267A KR19970015267A KR100288490B1 KR 100288490 B1 KR100288490 B1 KR 100288490B1 KR 1019970015267 A KR1019970015267 A KR 1019970015267A KR 19970015267 A KR19970015267 A KR 19970015267A KR 100288490 B1 KR100288490 B1 KR 100288490B1
Authority
KR
South Korea
Prior art keywords
client
state information
server
service
connection
Prior art date
Application number
KR1019970015267A
Other languages
English (en)
Other versions
KR980004051A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24650328&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100288490(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR980004051A publication Critical patent/KR980004051A/ko
Application granted granted Critical
Publication of KR100288490B1 publication Critical patent/KR100288490B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • 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

Abstract

상태 정보 비보존 프로토콜, 예를 들어 HTTP를 사용하여 월드 와이드 웹(WWW)과 같은 네트워크상에서 통신하는 컴퓨터내에 상태를 보존하는 방법 및 시스템이 제공된다. 서비스를 수행하고, 서비스로부터의 출력내의 모든 연결 어구(하이퍼링크)를 식별하고, 클라이언트로 전송된 출력내의 모든 식별된 연결 어구내에 상태 정보를 반복적으로 삽입함으로써 서버로부터 서비스를 요구하는 클라이언트의 대화가 진행되는 동안 상태가 보존된다. 상태 정보는 서버에 의해 클라이언트로 삽입되며, 전송될 수 있다. 선택적으로, 동적으로 다운로드가능한 프로그램 코드가 클라이언트에서 상태 정보를 삽입하는데 사용될 수 있다. 사전설정된 기준에 따라, 부가적인 특성은 서비스로부터 출력된 하이퍼링크 및 데이타의 필터링 및/또는 가산을 가능하게 한다. 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하기 위해, HTML 파일을 요구하는 식별된 연결 어구를 변경함으로써 상태 정보가 삽입될 수 있다. 상태 정보는 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 프로그램을 호출하는 식별된 연결 어구를 변경함으로써 또한 삽입될 수 있으며, 삽입 단계는 CGI 프로그램에 의해 수행된다. 선택적으로, CGI 프로그램을 호출하는 식별된 연결 어구는 식별된 연결 어구와, CGI 프로그램과 관련된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달되는 상태 정보로 CGI 변환기 프로그램을 호출하도록 변경될 수 있다. 여기서, 삽입은 변환 프로그램에 의해 수행된다.

Description

상태 정보를 보존하는 컴퓨터화된 방법 및 상태 정보 보존 컴퓨터 시스템{PRESERVING STATE IN STATELESS NETWORK PROTOCOLS}
본 발명은 컴퓨터 및 컴퓨터 네트워크에 관한 것이다. 특히, 본 발명은 상태 정보 비보존 프로토콜(stateless protocol)을 통해 네트워크상에서 통신하는 동안, 상태(state)를 보존하는 컴퓨터에 관한 것이다. 더 상세히 설명하면, 본 발명은 하이퍼텍스트 전송 프로토콜(HTTP)을 사용하여 인터넷, 특히 월드 와이드 웹(World Wide Web)을 통해 통신하는 컴퓨터내에 상태를 보존하는 방법 및 시스템에 관한 것이다.
주요 용어 해설
본 명세서에서 사용되는 특정한 용어들은 사전적 의미에 의해 암시되는 것들도 있지만, 다음의 용어 해설을 참조하면 유용할 것이다.
인터넷(Internet)
프로토콜중 TCP/IP 슈트(suite)를 사용하는 네트워크들 및 게이트웨이들(gateways)간의 네트워크
TCP/IP
전송 제어 프로토콜(Transmission Control Protocol)/인터넷 프로토콜(Internet Protocol). 이-메일(e-mail)에서 비디오에 이르기까지 인터넷에서 사용되는 데이타의 경로변경(chop), 경로지정(route), 재구성(reconstruct)을 위해 사용되는 패킷 스위칭 방안.
클라이언트(Client)
클라이언트는 커맨드(command)와 관련된 태스크를 수행하는 서버로 커맨드를 송출하는 컴퓨터이다.
서버(Server)
다른 컴퓨터의 커맨드에 따라 태스크를 수행하는 임의의 컴퓨터가 서버이다. 전형적으로, 웹 서버는 하나 이상의 클라이언트를 지원한다.
월드 와이드 웹(World Wide Web)(WWW 또는 Web)
인터넷상에서 정보를 찾는 사용자들이 하이라이트된 관심있는 단어 혹은 문구(하이퍼링크)를 클릭함으로써 서버에서 서버로, 혹은 데이타베이스에서 데이타베이스로 전환하는 것을 가능하게 하는 인터넷의 응용 프로그램. 인터넷 WWW 서버는 클라이언트를 지원하고 정보를 제공한다. 웹(Web)은 모든 자원이 URL로서 주소지정되고, URL에 대응하는 정보를 디스플레이하고, 다른 URL에 대한 포인트 앤 클릭(point-and-click) 인터페이스를 제공하기 위해 HTML을 사용하는 인터넷으로 생각할 수 있다.
표준 자원 위치 입력자(Universal Resource Locator; URL)
인터넷상의 정보를 유일하게 식별하거나 주소지정하는 방법중 하나. 이-메일(e-mail) 어드레스의 웹 문서 버전으로 생각할 수 있다. URL은 다른 것들과 함께 문서내에 깊숙히 감추어진다면 매우 성가시게 될 수 있다. URL은 하이퍼링크로서 액세스될 수 있다. URL에 대한 예로서, "http://ww.arun.com:80/table.html"을 들 수 있다. URL은 4 가지 구성요소로 구성되어 있다. URL의 왼쪽부터 설명하면, 첫 번째 구성요소는 사용할 프로토콜을 나타내며, ":"에 의해 나머지 위치입력자와 구분된다. 그 다음은 목표로 하는 호스트의 호스트네임(hostname) 또는 IP 어드레스를 나타내며, 이는 왼쪽의 "//", 오른쪽의 "/", 혹은 선택사양적으로 ":"에 의해 구분된다. 포트 번호는 선택사양적이며, 왼쪽의 호스트 네임과는 ":"으로, 오른쪽에는 "/"로 구분된다. 네 번째 구성요소는 실제 파일명 또는 프로그램명이다. 이 예에서, ".html" 확장자는 이것이 HTML 파일임을 의미한다.
하이퍼링크(Hyperlink)(또는 하이퍼텍스트 링크)
단어, 문구, 아이콘 혹은 그림에 삽입된 네트워크 어드레스로서 이를 선택할 경우 활성화된다. 웹 브라우저를 사용하여 해당 아이템에 대한 정보가 클라이언트로 복귀되며 디스플레이된다.
하이퍼텍스트 마크업 언어(HyperText Markup Language; HTML)
웹 서버에 의해 사용되는 언어로서 웹 클라이언트가 열람하는 문서를 생성하고 접속하기 위해 사용된다. HTML은 하이퍼텍스트(Hypertext) 문서를 사용한다. 하이퍼텍스트 문서를 이용하는 다른 언어는 번스테인(Bernstein) 등에 1993년 4월 20일 특허허여된 미국 특허 제 5,204,947 호와, 번스테인 등에 1994년 3월 22일 특허허여된 미국 특허 제 5,297,249 호와, 레비스(Lewis) 등에 1994년 10월 11일 특허허여된 미국 특허 제 5,355,472 호에 개시된다. 이들 특허는 모두 본 발명에 참조로서 인용된다.
하이퍼텍스트 전송 프로토콜(Hypertext transfer protocol; HTTP)
HTTP는 상태 정보 비보존 프로토콜의 하나의 예이며, 이는 클라이언트가 서버에 대해 행하는 모든 요구는 독립적으로 취급됨을 의미한다. 서버는 이전 접속(previous connections)에 대한 기록을 갖지 않는다. URL 시작 부분의 "http:"는 파일이 하이퍼링크를 포함한다는 것을 나타낸다.
홈 페이지(Home page)
인터넷상의 한 조직에 관해 저장된 정보를 웹 사용자에게 가이드하는 내용이 담긴 멀티미디어 테이블.
웹 브라우저(Web browser)
컴퓨터에서 실행되는 프로그램으로 인터넷 여행 가이드로서 동작하며, 사용자가 인터넷을 "서핑(surfing)"하는 경우 사용되는 그림으로 표현된 데스크탑과, 디렉토리와, 검색 툴을 완비한다. 본 발명의 응용에서, 웹 브라우저는 월드 와이드 웹과 통신하는 클라이언트 서비스이다.
HTTP 데몬(Daemon)(HTTPD)
하이퍼텍스트 마크업 언어 및 공통 게이트웨이 인터페이스 기능을 갖는 IBM OS/2 웹 서버 혹은 다른 서버. 전형적으로, HTTPD는 TCP/IP와 같이 인트라넷(intranet)상의 머신에 대한 하드웨어 접속 및 인터넷에 대한 액세스를 제공하는 액세스 에이전트에 의해 지원된다.
연결 어구(continuations)
하이퍼텍스트 링크(또는 하이퍼링크)는 클라이언트-서버간 통신에서 연결 어구의 예이다. 연결 어구는 클라이언트가 서버에게 전송할 수 있는 새로운 요구이다. 클라이언트가 서버로부터 무언가를 요구할 때마다, 서버는 이에 대한 응답을 할 때 하나 이상의 연결 어구를 포함할 수 있다. 서버가 요구에 응답할 때, 서버는 임의의 유효한 요구일 수 있는 하나 이상의 연결 어구를 포함할 수 있다. 그러나, 일반적으로, 유용한 연결 어구는 원래의 요구에 논리적으로 연관되어 있다.
대화(conversation)
클라이언트 및 서버간의 통신 시퀀스를 말하며, 여기서 서버는 한 세트의 연결 어구로 각 요구에 응답하고, 클라이언트는 항상 한 세트의 연결 어구로부터 다음 요구를 선택한다. 웹상에서, 하이퍼텍스트 링크는 연결 어구를 나타내고 있으며, 하이퍼텍스트 링크를 따라갈 때마다, 클라이언트는 대화를 하고 있는 것이다.
네트워크는 사람들이 컴퓨팅하는 방식을 변화시켰다. 사용자는 개인용 컴퓨터 또는 워크스테이션으로 인터넷에 접속할 수 있으며, 전 세계에 있는 시스템 및 사람들과 통신할 수 있다. 월드 와이드 웹(WWW 또는 Web)은 인터넷을 사용하는 하나의 방법으로서, 링크된 문서를 통해 전 세계에 분포되어 있는 풍부한 정보에 대한 액세스를 제공한다. 또한, WWW는 원격 서버상에서 작동되고 있는 프로그램을 사용자가 실행할 수 있도록 해 준다. 이 능력으로 인해, 사용자는 하드웨어 및/또는 소프트웨어 한계때문에 국부적으로 실행시킬 수 없는 프로그램으로부터 결과를 얻을 수 있게 된다. 또한, 월드 와이드 웹상에서 원격적으로 저장된 프로그램을 다운로드하고 실행시키는 것이 가능하게 된다. 이는 월드 와이드 웹에 접속된 컴퓨터가 이용할 수 있는 소프트웨어의 양을 크게 증가시키는 잠재력을 갖는다.
네트워크 프로토콜
네트워크 프로토콜은 머신들간에 서로 통신하기 위한 표준 방안을 제공한다. 프로토콜은 네트워크간의 수신 및 전송을 위해 데이타가 어떻게 포맷되어야 할지를 지시한다. 이종 머신(heterogeneous machines)은 표준 프로토콜을 통해 네트워크상에서 이음매없이(seamlessly) 통신할 수 있다. 표준 인터넷 프로토콜의 예로서는,HTTP(1995년 9월 4일, 티. 버너스-리(T. Berners-Lee)와, 알. 필딩(R. Fielding)과, 에이치. 프리스틱(H. Frystyk)에 의한 "Hypertext Transfer Protocol--HTTP/1.0",
http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-03.html 참조)와,SMTP(1982년 8월, USC, 인포메이션 사이언스 인스티튜트(Information Sciences Institute)의 제이. 비. 포스텔(J. B. Postel)에 의한 "Simple Mail Transfer Protocol", RFC 821, http://ds.internic.net/std/std10.txt. 참조)와,NNTP(1986년 2월, UC 샌디아고(San Diego) 및 UC 버클리(Berkeley)의 비. 칸토(B. Kantor) 및 피. 랩슬리(P. Lapsley)에 의한 "Network News Transfer Protocol: A Proposed Standard for the Stream-Based Transmission of News", RFC 977, http://ds.internic.net/rfc/rfc977.txt. 참조)와,FTP(1985년 10월, USC, 정보 과학 인스티튜트(Information Sciences Institute)의 제이. 포스텔(J. Postel) 및 제이. 케이. 레이놀즈(J. K. Reynolds)에 의한 "File Transfer Protocol(FTP)", RFC 959, http://ds.internic.net/std/std9.txt. 참조)와,Gopher(1993년 3월, 미네소타 대학(University of Minnesota)의 에프. 안클레사리아(F.Anklesaria)와, 엠. 맥카힐(M. McCahill)과, 피. 린드너(P. Lindner)와, 디. 존슨(D. Johnson)과, 디. 토레이(D. Torrey)와, 비. 알버티(B. Alberti)에 의한 "The Internet Gopher Protocol: A distributed document search and retrieval protocol", RFC 1436, http://ds.internic.net/rfc/rfc1436.txt. 참조)와,WAIS(1990년 4월, 싱킹 머신사(Thinking Machines Corporation)의 에프. 데이비스(F. Davis)와, 비. 칼(B. Kahle)과, 에이치. 모리스(H. Morris)와, 제이. 살렘(J. Salem)과, 티. 쉔(T. Shen)과, 알. 왕(R. Wang)과, 제이. 슈(J. Sui)와, 엠. 그린바움(M. Grinbaum)에 의한 "WAIS Interface Protocol Prototype Functional Specification"(v1.5)를 들 수 있다.
클라이언트-서버 모델은 네트워크 프로그래밍에서 주류를 이루는 패러다임중 하나를 구성하며, 예로서, 1990년, 뉴저지주의 잉글우드 클리프(Englewood cliffs)의 프렌티스 홀(Prentice Hall) PTR의 더블유. 알. 스티븐스(W. R. Stevens)에 의한 "Unix Network Programming",과, 1991년, 뉴저지주의 잉글우드 클리프(Englewood cliffs)의 프렌티스 홀(Prentice Hall)의 디. 이. 코머(D. E. Comer)에 의한 "Internetworking with TCP/IP" vol 1.을 들 수 있으며, 이 전체는 본 명세서에 참조로 인용된다. 서버 프로그램은 네트워크를 통해 다수의 사용자에 의해 액세스될 수 있는 서비스를 제공한다. 프로그램은 서버로 메시지를 전송하고 서버로부터 응답을 기다릴 경우 클라이언트가 된다. 전형적으로 클라이언트 프로세스는 사용자와의 상호작용(interaction)에 대해 최적화되며, 요구된 서비스 또는 서버의 상세한 동작을 알아야 할 필요없이 요구된 서비스를 사용한다. 월드 와이드 웹상에서, "브라우저"가 클라이언트 프로그램을 구성하는 반면, 브라우저로 정보를 되전송하는 프로그램은 서버 프로그램을 구성한다.
클라이언트 및 서버는 동기적 혹은 비동기적으로 통신할 수 있다. 동기적 통신에서, 클라이언트는 다음 요구를 송출하기 전에 서버로부터의 응답을 기다린다. 비동기적 통신에서, 클라이언트는 이전의 서버에 대한 요구로부터 하나 이상의 응답을 수신하기 전에 서버로 다음 요구를 송출할 수 있다.
클라이언트와 서버간의 많은 네트워크 프로토콜은 상태 정보를 보존하지 않는다(stateless). 이는 클라이언트로부터 서버로 행해지는 모든 요구가 독립적으로 취급됨을 의미한다. 서버는 이전 접속에 대한 기록을 갖고 있지 않다. HTTP는 상태 정보 비보존 프로토콜의 한 예이다. 상태 정보 비보존 프로토콜을 사용하면 효율성과 단순성이라는 두 가지 이점을 갖게 된다. 그러나, 클라이언트와 서버간의 통신이 행해지는 동안 상태 정보를 유지하는 것이 바람직한 상황도 존재한다. 이들 유형의 상호작용에 대해, 상태 정보 비보존 프로토콜에는 문제점이 존재할 수 있다.
HTTP 프로토콜 및 월드 와이드 웹
본 발명의 가장 중요한 응용은 HTTP 프로토콜을 통해 월드 와이드 웹을 브라우징하는 것으로서, 그 예로서는, 1995년 9월 4일 티. 버너스-리와, 알. 필딩과, 에이치. 프리스틱에 의한 "Hypertext Transfer Protocol--HTTP/1.0",
http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-03.html을 들 수 있으며, 이 전체는 참조로 본 발명에 인용된다. 그러나, 본 기술 분야의 통상의 지식을 가진 자라면, 본 발명이 HTTP에 한정되지 않음을 이해할 것이다. 웹의 타당한 측면 및 HTTP와 같은 상태 정보 비보존 프로토콜로 인해 발생하는 한계에 대해 이하 기술될 것이다.
월드 와이드 웹은 서로 네트워크로 연결된 다수의 서버로 구성된다. 전형적으로, 클라이언트는 넷스케이프사(Netscape)의 "NETSCAPE NAVIGATOR"와, NCSA의 "MOSAIC", 또는 IBM의 "WEB EXPLORER"를 상표로 하여 판매되는 것과 같은 표준 브라우저를 사용하여 서버와 통신한다. 클라이언트와 서버간에 통신하는 가장 일반적인 방법은 HTTP 프로토콜을 통하는 것이다. HTTP를 통해, 사용자는 파일을 요구하거나 혹은 서버상에서 실행되는 공통 게이트웨이 인터페이스(Common Gateway Interface; CGI) 프로그램으로 알려진 프로그램을 호출함으로써 서버로부터 데이타를 획득할 수 있게 된다. CGI 프로그래밍은 본 기술 분야에 잘 알려져 있으며, 예를 들어, 인디아나주의 인디아나 폴리스(Indianapolis)의 삼스.네트 퍼블리싱(Sams.net Publishing)의 존 디셈버(John December) 및 마크 긴스버그(Mark Ginsburg)에 의한 "HTML and CGI Unleashed"(1995)에 개시되어 있다. 이어서, 서버는 파일 또는 CGI 프로그램으로부터의 출력을 클라이언트로 전송한다. 전형적으로, 서버는 클라이언트가 액세스할 수 있는 파일 및 프로그램을 제한한다.
서버는 하이퍼텍스트 마크업 언어(HTML)를 사용하여 정보를 클라이언트로 전송하는데, 그 예로서 1995년 뉴욕주의 존 윌리&손스 회사(John Wiley&Sons, Inc.)의 이안 에스. 그라함(Ian S. Graham)에 의한 "The HTML Sourcebook"를 참조로서 들 수 있으며, 이 전체는 본 발명에 참조로 인용된다. HTML 문서는 통상적인 ASCII 텍스트로 구성되며, 여기서 디스플레이되는 정보에는 HTML 마크업 태그가 삽입되어 있다. 이들 태그는 부등호(<.....>)로 둘러싸여 있으며, 브라우저에게 문서의 상이한 부분을 어떻게 해석하는지를 알려준다. 브라우저는 인터넷상의 정보를 유일하게 식별하거나 혹은 주소지정하기 위해 표준 자원 위치입력자(URL)를 사용한다. 브라우저는 URL에 대응하는 HTML 문서를 판독하여, 마크업 태그에 저장된 인스트럭션에 따라서 이들을 디스플레이한다.
이하의 HTML 코드 시퀀스(표 1)는 1996년 6월 3일의 IBM 티. 제이. 왓슨 리서치 센타(T. J. Watson Research Center)의 웹 홈 페이지에 대응하는 HTML 텍스트를 나타낸다. 이 웹 페이지는 URL "http://www.watson.ibm.com/"에 대응한다. 이 페이지를 액세스하는 표준 브라우저상에 디스플레이되는 대응 출력은 도 1에 도시된다.
Figure pat00001
Figure pat00002
많은 웹 브라우저는 디스플레이되는 임의의 문서의 HTML 소스 코드를 사용자가 볼 수 있게 해 준다. 표 1의 HTML 텍스트는 IBM 티. 제이. 왓슨 리서치 센터(T. J. Watson Research Center)에서 웹 서버로 액세스할 수 있는 파일내에 저장된다. 이 웹 서버는 URL "http://www.watson.ibm.com/"에 대한 요구를 수신할 때, 클라이언트의 브라우저로 적절한 파일을 전송한다. 이어서, 클라이언트의 브라우저는 HTML 파일을 판독하여 디스플레이할 것이다. (표 1은 다수의 관련 링크를 포함하고 있다. 하이퍼텍스트 링크 및 이미지 파일은 파일이 특정 디렉토리내에 저장될 경우만 유효하다. 예를 들어, 표 1의 "night.gif" 파일이 임의의 위치(arbitrary location)에 저장될 경우, 하이퍼텍스트 링크는 무효하게 되며, 관련 이미지는 나타나지 않을 것이다.)
"Visitor info and local site directions"라고 표시되는 표 1의 라인은 하이퍼텍스트 링크(혹은, 하이퍼링크로 칭해짐)의 한 예이다. 표준 브라우저에 의해 디스플레이될 수 있는 대응 출력이 도 1에 도시된다. 도 1에 도시된 바와 같이, 브라우저에 의해 디스플레이되었을 때 사용자가 이 링크상에서 클릭할 경우, 새로운 HTML 파일인 "menu.html"이 서버로부터 인출되어 브라우저에 의해 디스플레이된다. 지역 서버(local server)및 원격 서버(remote server) 문서에 대한 하이퍼텍스트 링크가 모두 HTML 파일내에 위치할 수 있다. 전 세계에 걸친 서버상의 문서를 링크시키도록 HTML 파일내에 하이퍼링크를 구현하는 능력은 월드 와이드 웹의 핵심적인 특징중 하나이다. 즉, 단순히 하이퍼텍스트 링크상에서 포인팅 앤 클리킹을 행함으로써, 웹 브라우저는 전 세계에 걸친 서버로부터 정보를 액세스하는 데 사용될 수 있다.
하이퍼텍스트 링크는 클라이언트-서버간의 통신에서 "연결 어구"의 한 예임을 상기하라. 연결 어구는 클라이언트가 서버로 전송할 수 있는 새로운 요구이다. 클라이언트가 서버로부터 무언가를 요구할 때마다, 서버는 응답 내에 하나 이상의 연결 어구를 포함할 수 있다. 연결 어구는 임의의 유효한 요구를 나타낼 수 있다. 그러나, 일반적으로, 유용한 연결 어구는 원래의 요구와 논리적으로 연관되어 있다. 연결 어구가 양호하면, 클라이언트가 서버와 동기적으로 통신하는 것이 쉽게 된다. 각 요구를 수신한 후, 서버는 한 세트의 연결 어구로 응답한다. 클라이언트는 다음 요구에 대해 연결 어구중 하나를 선택한다. "대화"는 클라이언트와 서버간의 통신 시퀀스이며, 여기서 서버는 한 세트의 연결 어구로 각 요구에 응답하며, 클라이언트는 항상 한 세트의 연결 어구중에서 다음 요구를 선택한다.
웹상에서 하이퍼텍스트 링크는 연결 어구를 나타내며, 클라이언트는 하이퍼텍스트 링크를 따라갈 때마다 대화에 관여한다. 클라이언트가 하이퍼텍스트 링크를 따라가는 대신에 새로운 URL을 명시적으로 요구함으로써 새로운 페이지를 획득할 때마다 대화가 인터럽트된다. 인터럽트된 대화에 대응하는 페이지가 예를 들어 브라우저 캐시 또는 디스크 메모리내에 있어서 클라이언트가 여전히 사용할 수 있는 경우, 인터럽트된 대화를 지속시키는 것이 가능하다. 이 경우, 페이지를 리로드(reloading)하고, 계속해서 하이퍼링크를 따라가는 것으로 대화를 지속할 수 있다. 클라이언트는 동일 대화가 행해지는 동안, 다수의 서버와 통신할 수 있다.
좀더 형식적으로 표현하면, 일련의 HTML 페이지 p1, p2, ..., pn은
1. 클라이언트가 p1, p2, ..., pn 모두를 열람했으며,
2. 1<i≤n인 모든 i에 대해, 페이지 pi-1상에서 하이퍼텍스트 링크를 따라감으로써, 페이지 pi를 얻을 수 있는 경우,
대화를 구성한다.
인터럽트되지 않은 대화에서는, 클라이언트는 "백트래킹(backtracking)"하지 않고 단순히 n-1 하이퍼텍스트 링크를 따라감으로써, 페이지 p1에서 pn까지를 얻는다. 인터럽트된 대화에서, 클라이언트는 적어도 한번은 백트래킹한다. 백트래킹이라 함은 클라이언트가
1. 초기에 페이지 pi(1<=i<n)를 방문하며,
2. 하이퍼링크를 따라가거나 혹은 명시적으로 URL을 액세스함으로써 다른 페이지를 열람하며,
3. (pi를 여전히 사용할 수 있는 것으로 가정할 때) 메모리로부터 pi를 리로드함으로써 페이지 pi로 돌아간다.
URL에 대한 모든 요구는 상태 정보를 보존하고 있지 않다. 클라이언트가 페이지를 여러 번 요구할 경우에도, 서버는 이전의 접속에 대한 어떤 히스토리 또는 지식을 보존하고 있지 않다. 클라이언트가 HTML 파일을 요구할 때, 클라이언트가 요구에 대한 부가적인 정보를 통신할 방법은 없다. 따라서, 웹 환경에서 클라이언트가 HTML 파일을 브라우징하는 동안, 대화내내 상태 정보를 보존할 필요가 있다. 본 발명은 이러한 필요성을 역점으로 두고 다루고 있다.
예를 들어, 사업상의 거래를 조작하고 있는 서버를 생각하기로 한다. 적절하게 기능하기 위해, 서버는 클라이언트의 사용자 ID 및 현재의 거래 번호에 대응하는 거래 번호와 같은 상태 정보를 필요로 한다. 따라서, 대화에서 하이퍼링크를 따라감으로써, 클라이언트가 HTML 파일을 브라우징하고 있는 동안 이 정보를 보존할 필요가 있다. 본 발명은 이러한 필요성에 역점을 두고 다루고 있다.
웹상의 상태를 조작하는 현재의 방법
웹상에서 상태를 조작하는 현재의 방법중 하나는 CGI 프로그램을 사용하는 것이다. 클라이언트는 인자(argument)를 CGI 프로그램으로 전달하는 것으로 CGI 프로그램을 호출할 수 있다. 예를 들면, 커맨드,
http://tranman.watson.ibm.com/cgi-bin/get-args?var1=7&var2=10
는 변수 var1=7 및 var2=10을 전달하면서 CGI 프로그램을 호출한다. 클라이언트가 CGI 프로그램으로 변수를 전달하는 데 있어서 엄격한 구문(syntax)을 따를 것을 기대하는 것은 성가신 일이다. 보다 사용자에게 편리한(user-friendly) 방법으로는 사용자가 HTML "양식(form)"을 통해 인자를 입력하도록 하는 방법이다. 웹 브라우저에 의해 디스플레이되는 HTML 양식의 한 예가 도 2에 도시되어 있다. 사용자는 적절한 필드에 타이핑 입력한 후, 전송 버튼을 클리킹하여 서버에게 이 정보를 전송한다. 사용자에 의해 타이핑 입력된 값은 인자와 함께 CGI 스크립트로 전달된다. "양식"은 CGI 프로그램으로 인자를 전달하는 데 편리한 인터페이스를 제공한다. 클라이언트는 호출된 CGI 프로그램 혹은 이 프로그램에 의해 예상되는 인자의 포맷에 대한 상세한 사항은 알 필요가 없다.
양식을 사용하여 클라이언트는 상태 변수를 서버로 전달한다. 서버는 또한 클라이언트에게 변수를 전달하는 데 양식을 사용할 수 있다. 클라이언트에게 디스플레이되지 않고 클라이언트가 이 양식을 제출할 때 서버에게 도로 전달되는 숨겨진 변수(hidden variables)가 이 양식에 포함될 수 있다. 전형적으로, 웹 서버는 양식내의 숨겨진 변수로서 상태 변수를 전달하여 상태를 보존한다. 클라이언트가 양식을 제출할 때, 이 양식을 수신하는 서버는 숨겨진 필드로부터 상태 변수를 획득할 수 있다.
예를 들어, 사업상의 거래 서버가 클라이언트와 통신하고 있는 것을 가정한다. 거래 서버는 클라이언트와의 대화의 나머지 부분을 위해 클라이언트 사용자 ID 및 세션 ID를 알아낼 필요가 있다. 서버는 클라이언트가 제출한 양식으로부터 클라이언트의 사용자 ID를 알아낼 수 있다. 이 양식은 CGI 프로그램을 호출하며, CGI 프로그램은 세션 ID를 발생시킨다. 서버로부터의 각각의 후속 응답은 양식이다. 이 양식은 동적으로 발생되며, 숨겨진 변수로서 삽입된 사용자 및 세션 ID를 포함한다. 클라이언트는 서버에 의해 발생된 양식을 완성하여 제출함으로써 응답한다.
도 3은 HTML 양식을 사용하여 상태를 보존하는 현재의 방법의 한 예를 도시한다. 도시된 바와 같이, 서버(410)는 동적으로 발생되는 HTML 양식(420)에 대해 숨겨진 인자 형식으로 상태 변수를 삽입시킨다. 상태 변수(425)는 클라이언트(450)와 서버(410)간에 서로 전달된다. 양식을 이용하여, 클라이언트(450) 및 서버(410)는 상태 정보(425)를 서로 주고받는다. 즉석에서 HTML 양식(420)을 생성하고, 숨겨진 필드내에 상태 변수(425)를 삽입시키는 것에 의해, 서버(410)는 클라이언트로 상태 정보를 전달한다. 클라이언트(450)는, 서버(410)에 의해 발생된 양식(420')을 완성하여 제출함으로써 상태 정보(425)를 서버에게 도로 전달한다.
상태 조작에 대한 현재 기법의 한계
바로 앞에서 개략적으로 설명한 방안에 대한 문제점은, 대화가 진행될 동안 클라이언트와 서버간에 상호작용의 유형을 극도로 제한한다는 것이다. 서버(410)는 항상 숨겨진 변수(425)를 포함하는 동적으로 발생되는 HTML 양식(420)으로 클라이언트(450)에 응답해야 한다. 클라이언트가 HTML 파일을 브라우징할 동안 상태를 보존할 방법은 없다. 예를 들어, 클라이언트가 세션중에 카탈로그를 브라우징하기를 원한다고 가정한다. 카탈로그는 HTML 파일로 구성된다. 클라이언트가 현재의 기법을 사용하여 상태 정보를 손실하지 않고 카탈로그(내의 상이한 HTML 파일을)를 브라우징할 방법은 없다. 서버가 카탈로그를 열람하는 것에 의해 클라이언트가 대화를 계속하도록 할 경우, 클라이언트가 카탈로그로부터 HTML 파일을 액세스하자마자 상태 정보는 손실될 것이다.
따라서, 클라이언트가 카탈로그를 브라우징하는 시스템 및 방법, 즉 상태 정보를 보존하는 동안 상이한 HTML 파일에 액세스할 수 있는 시스템 및 방법이 요구된다. 본 발명은 카탈로그를 구성하는 HTML 파일이 상이한 서버상에 상주하는 지에 관계없이, 이러한 요구에 역점을 두고 다룰 것이다.
상태를 보존하는 현재의 기술의 한계가 다른 이들에 의해 주지되어 왔으며, 참조 예로서, 1996년, 넷스케이프 커뮤니케이션사(Netscape Communications Corporation)의 "Persistent Client State HTTP Cookies", http://home.netscape.com/newsref/std/cookie_spec.html과, 1995년 9월 22일, AT&T 벨 연구소(Bell Laboratories)의 디. 엠 크리스톨(D. M Kristol)에 의한 "Proposed HTTP State-Info Mechanism", http://www.research.att.com/∼dmk/session01.txt와, 엠. 커틀러(M. Cutler) 및디. 홀(D. Hall)에 의한 "August 1995 Web Watch", http://www.netgen.com/corpinfo/press/webwtchv6n8.html를 들 수 있다. 크리스톨에 의해 제시된 방안은 상태를 보존하기 위해 HTTP 프로토콜을 변경하는 방안이지만, 본 발명은 이 방안과 달리 근본적인 프로토콜의 변화를 요구하지 않고 상태를 보존한다.
넷스케이프 커뮤니케이션사에 의한 다른 해결책으로는 쿠키(Cookies)라고 칭해지는 기능을 브라우저에게 부가하는 방법이 있으며, 1996년 넷스케이프 커뮤니케이션사에 의한 "Persistent Client State HTTP Cookies", http://home.netscape.com/newsref/std/cookie_spec.html에 나타나 있다. 여기서, 서버는 응답에 쿠키로 알려진 상태 객체를 첨부함으로써 HTTP 요구를 만족시킬 수 있다. 쿠키는 상태가 유효한 URL의 범위를 기술하는 부분을 포함한다. 쿠키는 클라이언트상에서 동작하는 넷스케이프 브라우저에 의해 저장된다. 쿠키내에 명시된 URL중 하나에 대해 클라이언트가 행한 이후의 소정의 HTTP 요구에는 쿠키내에 저장된 상태 객체를 클라이언트로부터 서버로 전송하는 것이 포함될 것이다.
이 방안에는 다수의 결점이 있다. 상태를 보존하기를 원하는 서버 어플리케이션은 상태를 사용할 수 있는 모든 URL의 리스트를 제공해야 한다. 이는 성가신 일이며, 때때로 불가능할 수도 있다. 또한, 쿠키는 상태 정보와 특정 대화를 상호관련시키는 방법을 가지고 있지 않다. 예를 들어, 브라우저가 두 개의 별개의 대화내에서 동일한 URL을 액세스한다고 가정한다. 첫 번째 대화동안, URL이 액세스될 때 상태 정보가 존재하고, 쿠키를 통해 서버로 전달된다. 두 번째 대화 동안, URL이 액세스될 때 상태 정보는 존재하지 않는다. 그러나, 이전의 쿠키는 여전히 존재하며, 이전의 쿠키가 여전히 서버로 전달된다. 결과적으로 서버는 이전의 상태 정보가 새로운 대화에 여전히 적용되고 있다고 인식하는 것으로 혼동한다. 다른 문제점은 쿠키가 표준 특성이 아니며, 넷스케이프의 프로토콜을 지원하는 서버 및 브라우저와 함께만 동작한다는 것이다.
따라서, 상태 정보 비보존 프로토콜에서 상태를 보존하며, 상태 정보를 사용할 필요가 있는 URL의 리스트에 제한되지 않고, 상태 정보가 특정 대화와 상호관련될 경우, 이전의 상태 정보가 서버로 전달되는 것을 방지하는 방법 및 시스템이 필요하다. 또한, HTTP 프로토콜을 지원하는 임의의 브라우저와 함께 작동하고, 클라이언트 또는 서버상에 특화된 비표준 특성을 요구하지 않는 HTTP와 같은 프로토콜에서 상태를 보존하는 시스템이 필요하다.
전술한 필요에 따라, 본 발명은 상태 정보 비보존 프로토콜을 사용하여 네트워크상에서 통신하는 컴퓨터에서 상태를 보존하기 위한 방법 및 시스템을 제공한다. 바람직한 실시예에서는 하이퍼텍스트 전송 프로토콜(HTTP)을 사용하여 월드 와이드 웹(WWW 또는 Web)상에서 통신하는 컴퓨터에 대해 기술하지만, 본 발명은 다른 형태의 네트워크 통신에도 또한 적용된다.
클라이언트를 대신하여 서버에 의해 수행되는 서비스는 클라이언트가 호출한 프로그램으로 가정한다. 서비스는 여러가지 다양한 인자를 받아들일 수 있다. 대화는 서비스를 위해 클라이언트와 하나 이상의 서버간에 이루어지는 통신 시퀀스로서, 서버로부터의 각 응답에는 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구가 포함되며, 클라이언트는 대화를 지속하기 위해 연결 어구중 하나를 호출해야 한다.
따라서, 상태 정보 비보존 프로토콜을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버와, 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 본 발명의 특징을 갖는 컴퓨터화된 방법과, 시스템과, 컴퓨터 프로그램 제품이 제공되며, 상태 정보 비보존 프로토콜을 사용하여 클라이언트가 서버와의 대화를 개시하는 단계와, 서비스에 대한 요구가 상태 정보를 보존할 것을 요구하는 시기를 검출하는 단계와, 상태가 보존될 때 서비스를 수행하고 서버스로부터의 출력내의 모든 연결 어구를 식별하는 단계와, 모든 식별된 연결 어구내에 반복적으로 상태 정보를 삽입하는 단계와, 클라이언트로 출력을 전송하는 단계가 포함되며, 상태 정보는 대화가 지속되는 동안 보존되며 모든 서비스로 제공된다.
본 발명의 다른 관점에 따라, 상태 정보를 삽입하는 것은 서버에 의해 수행되며, 서버에 의해 클라이언트로 전송된다. 본 발명의 다른 관점에서는, 서버에 결합된 메모리내에 상태 정보의 적어도 일부분을 저장하는 단계와, 모든 식별된 연결 어구내에 상태 정보의 부분을 나타내는 인덱스를 삽입하는 단계가 포함된다.
본 발명의 또다른 관점에는, 또한 클라이언트로 전송되는 서비스로부터의 출력에 상태 정보를 삽입하기 위해 클라이언트로 컴퓨터 프로그램 코드를 동적으로 다운로드하는 단계가 포함된다. 본 발명의 또다른 관점에는 클라이언트의 메모리내에 상태 정보의 적어도 일부분을 저장하는 단계와, 저장된 상태 정보를 나타내는 인덱스를 삽입하는 단계가 포함된다.
바람직한 실시예에서, 월드 와이드 웹상의 웹 브라우저를 사용하여 하이퍼텍스트 링크를 따라가는 동안 상태가 저장되도록 한다. 하이퍼텍스트 링크는 연결 어구를 구성한다. 클라이언트 브라우저는 새로운 페이지를 인출하기 위해 하이퍼텍스트 링크를 따라감으로써 대화를 진행한다. 본 발명은 임의의 대화가 진행되는 동안 상태 변수를 보존하는 특징을 갖는다. 본 발명의 하나의 관점에 따르면, 대화가 진행되는 동안 보존될 상태 변수는 대화가 진행되는 동안 호출될 수 있는 모든 CGI 프로그램으로 전달된다.
클라이언트 및 서버가 월드 와이드 웹을 통해 네트워크 접속되고, 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜(HTTP)이며, 연결 어구가 하이퍼텍스트 마크업 언어(HTML) 파일 및 공통 게이트웨이 인터페이스(CGI) 프로그램중 하나에 대한 하이퍼링크일 때, 본 발명은 사전설정된 기준에 따라 서비스로부터 출력된 하이퍼링크 및 데이타의 필터링 및/또는 가산을 가능하게 하는 특징을 갖는다. 상태 정보를 삽입하기 위한 본 발명의 또다른 관점에는 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하기 위해 HTML 파일을 요구하는 식별된 연결 어구를 변경하는 단계가 포함된다. 상태 정보를 삽입하기 위한 본 발명의 또다른 관점에는, 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 프로그램을 호출하는 식별된 연결 어구를 변경시키는 단계가 포함되며, 여기서 삽입 단계는 CGI 프로그램에 의해 수행된다. 상태 정보를 삽입하기 위한 본 발명의 또다른 관점에는, 식별된 연결 어구와, CGI 프로그램에 관련된 다수의 인자를 가리키는 인자 카운터와, 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하기 위해 CGI 프로그램을 호출하는 식별된 연결 어구를 변경시키는 단계가 포함되며, 여기서 삽입 단계는 변환기 프로그램에 의해 수행된다.
본 발명의 상기 및 그 밖의 목적, 특징, 국면 및 이익들은 첨부 도면을 참조로 설명하는 이하의 상세한 설명으로부터 더욱 명백해질 것이다.
도 1은 표준 브라우저에 의해 디스플레이되는 HTML 페이지의 한 예를 도시한 도면
도 2는 웹 브라우저가 열람하는 HTML "양식"의 한 예를 도시한 도면
도 3은 상태 변수를 보존하기 위해 "양식"을 사용하는 클라이언트 및 서버의 블럭도
도 4는 상태 정보 비보존 프로토콜을 사용하여 네트워크상에서 본 발명에 따른 상태를 보존하는 일반적인 방법을 도시한 블럭도
도 5는 상태 정보 비보존 프로토콜을 통해 전송하기 위한 데이타 패킷의 일반적인 도면
도 6은 상태 정보를 보존하기 위해 본 발명에 따라 변경된 도 5의 데이타 패킷의 한 예를 도시한 도면
도 7a는 상태를 보존하는 동안, 월드 와이드 웹을 통해 사업에 관한 거래를 하기 위한 본 발명의 특징을 갖는 시스템의 실시예를 도시한 도면
도 7b는 도 7a의 시스템상에 상태를 보존하기 위한 방법을 실시예를 도시한 도면
도 8은 도 7a에 도시된 시스템 및 도 7b의 방법 단계(745)에서 상태를 보존하기 위한 본 발명에 따른 방법의 더 상세한 예를 도시한 도면
도 9aa는 HTML 파일에 대한 하이퍼텍스트 링크의 구조를 도시한 도면
도 9ab는 본 발명에 따라 상태를 보존하기 위해 변경된 도 9aa의 구조를 도시한 도면
도 9ba는 유형1 CGI 프로그램에 대한 하이퍼텍스트 링크의 구조를 도시한 도면
도 9bb는 본 발명에 따라 삽입된 상태 인자를 갖는 도 9ba의 구조를 도시한 도면
도 9ca는 유형2 CGI 프로그램에 대한 하이퍼텍스트 링크의 구조를 도시한 도면
도 9cb는 본 발명에 따라 상태를 보존하기 위해 변경된 도 9ca의 구조를 도시한 도면
도면의 주요 부분에 대한 부호의 설명
450 : 클라이언트 460 : 웹 브라우저
410' : 서버 416 : 변환기
본 발명은 상태 정보 비보존 프로토콜을 통해 네트워크상에서의 컴퓨터 통신을 가능하게 하는 기법이다. 바람직한 실시예는 하이퍼텍스트 전송 프로토콜(HTTP)을 사용하여 월드 와이드 웹(WWW 또는 Web)을 통해 컴퓨터 통신하는 것에 관한 것이지만, 본 발명은 네트워크 통신의 다른 형태에도 또한 적용된다.
도 4는 상태 정보 비보존 프로토콜을 사용하여 상태를 보존하기 위한 본 발명에 따른 일반적인 방법을 도시하며, 이는 월드 와이드 웹을 통해 통신하는 클라이언트 및 서버로 제한되지 않는다. 이하 기술될 바람직한 실시예는 특히 월드 와이드 웹에 적용된다. 단순히하기 위해, 클라이언트를 대신하여 서버에 의해 수행되는 서비스는 클라이언트가 호출한 프로그램이며, 서비스는 가변 갯수의 인자를 받아들일 수 있는 것으로 가정한다.
도시된 바와 같이, 단계(500)에서 클라이언트는 서버로부터 서비스를 요구한다. 제공된 서비스가 상태 보존을 요구하지 않을 경우, 단계(505, 510, 515)로 표시되는 경로가 취해질 것이다. 단계(510)에서, 몇몇 지점에서 현재의 대화에서 호출될 수 있는 모든 서비스에 대해 서버는 상태 변수를 사용할 필요가 있다고 판단하는 요구에 대해 프로세스한다. 그 후, 서버는 그 출력 및 <state-variable-list>에 의해 표시되는 모든 상태 변수를 convert1로 표시된 프로그램으로 전달하고, 프로세스는 단계(520)로 진행된다. 단계(520)에서, convert1 프로그램은 서비스에 의해 제공되는 연결 어구를 변경시키지만, 다른 모든 데이타는 변경되지 않은 상태로 클라이언트로 도로 전달된다.
예를 들면 도 5에 도시된 바와 같이, 통상적인 환경하에서 프로그램 service1에 대한 호출을 나타내는 연결 어구는
Figure pat00003
(1)
의 형식을 가질 것이며, 여기서 service1(605)은 서비스이며 <service-arg-list>는 클라이언트가 연결 어구를 선택할 경우 해당 서비스로 전달되는 서비스 인자(610)의 리스트이다. 도 6에 도시된 바와 같이, 본 발명의 convert1 프로그램은 각각의 연결 어구(1)를
Figure pat00004
(2)
의 형식으로 변경함으로써 상태를 보존하며, 여기서 convert2(650)는 특정 서비스에 대한 호출이며(이에 관해서는 이하 기술된다), service-string(680)은 service1(650)과, <service-arg-list>(610)와, 서비스 인자(610)와 도 6에 도시된 convert2에 대한 호출내의 <state-variable-list>와 구별하기 위한 얼마간의 구분 정보(685)를 포함하는 스트링이다. <state-variable-list>(670)은 대화가 진행되는 동안 보존되고 모든 서비스가 이용할 수 있는 상태 정보를 나타낸다.
도 4를 다시 참조하면, 단계(525)에서 클라이언트는 서버로부터 전송된 출력 및 변경된 연결 어구를 수신한다. 해당 대화에 대해 변경된 각각의 연결 어구는, (2)에서와 같이 이제 convert2 프로그램에 대한 호출이 된다. 단계(540)에서, 클라이언트는 출력을 검사한다. 연결 어구가 선택될 경우, 프로세스는 단계(500)로 복귀하여 (변경된)서비스 요구가 서버로 전송된다. 단계(505)에서, 서버는 변경된 서비스 요구를 프로세싱하며, convert2 프로그램을 호출하고 계속해서 단계(530)에서 프로세스가 진행된다(이전 단계(520)에서 명시적으로 삽입된 호출로 인해). 단계(530)에서, (도 5 및 도 6을 참조하면) convert2 프로그램은 service-string(680)으로부터 서비스(605) 및 서버로 전달될 인자(<service-arg-list>)를 파싱(parsing)한다. convert2 프로그램(650)은 <state-variable-list> 뿐만 아니라 <service-arg-list>(610)상의 모든 변수를 전달함으로써 요구된 서비스(605)(여기서, service1)를 호출한다. 이러한 방식으로, service1은 요구되는 모든 상태 변수에 대한 액세스를 갖는다. 단계(535)에서, convert2 프로그램은 서비스(service1) 출력을 수신하며, 그 출력 및 <state-variable-list>를 convert1로 전달한다. 단계(520)에서, convert1은 전술한 바와 같이, 각각의 연결 어구를 변경한다. 단계(525)에서 출력은 다시 클라이언트로 전송되며, 대화가 지속되는 동안 상태 정보(670)가 보존되면서 프로세스가 반복된다.
바람직한 실시예
도 7a는 월드 와이드 웹상에서 이루어지는 사업상의 거래에 관한 것으로 본 발명의 특징을 갖는 시스템의 실시예를 도시한다. 웹 서버(410')를 통해 인터넷을 통해 상품을 파는 사업이 행해진다. 고객은 표준 브라우저(460)를 작동하고 있는 클라이언트(450)를 통해 서버(410')에 액세스된다. 안전하게 통신하기 위해, 브라운저(460)는 SSL.(1996년 3월, 인터넷, 드래프트(Internet Draft)의 에이. 오. 프레이어(A. O. Freier)와, 피. 칼톤(P. Karlton)과, 피. 시. 코처(P. C. Kocher)에 의한 "The SSL Protocol Version 3.0", http://home.netscape.com/eng/ss13/ss1-toc.html 참조, 이 전체는 본 발명에서 참조로 인용된다)을 사용하여 통신할 수 있어야 한다. 그러나, 몇몇 서비스는 SSL을 지원하지 않는 브라우저에 의해 사용될 수 있다. 사용자는 직접 액세스 저장 장치(DASD)(470)와 같은 안정된 저장 매체상에 저장될 수 있는 카탈로그를 브라우징할 수 있다. 통상적인 카탈로그와 같이, 사용자는 제품에 대한 세부 내역을 브라우징하며, 자신의 구매 리스트에 어떤 아이템을 부가할 것인지를 선택할 수 있다. 구매 리스트가 완성된 것으로 사용자가 판단하면, 사용자는 실제로 구매를 실행하며 이어서 요금이 청구된다.
도시된 바와 같이, 서버(410')는 데이타베이스(475)에 저장된 고객에 관한 정보, 물품 목록에 관한 정보, 제품에 관한 정보를 관리하기 위한 전형적인 데이타베이스 관리 시스템(DBMS)(412)을 포함할 수 있다. 전형적인 DBMS로서 'DB2'라는 상표로 IBM에 의해 판매되는 것을 들 수 있다. 또한, 서버(410')를 통해 사용자는 대화가 진행될 동안에 제품 카탈로그를 브라우징할 수 있다. 서버(410')는 제품 카탈로그의 형식에 대해서는 거의 전제하지 않는다. 카탈로그는 통상적인 CGI 프로그램뿐만 아니라 HTML 파일(425)로 구성될 수 있다. 파일 및/또는 프로그램은 국부 서버 또는 원격 서버와 관련될 수 있다. 사용자 ID 및 세션 ID 등의 상태 정보는 대화가 진행되는 동안 서버(410')와 클라이언트(450)간에 유지되어야 한다. 본 발명은 대화가 진행되는 동안 상태 정보를 투명하게 유지하는 향상된 방법 및 시스템을 제공한다.
임의의 클라이언트(450)는 제품 카탈로그를 열람할 수 있을 뿐만 아니라 서버(410')와 관련된 "홈 페이지"를 액세스할 수 있다. 제품을 구입하고, 고객 정보를 갱신하며, 혹은 소정의 유형의 정보를 액세스하기 위해서는, 사용자가 사용자 Id 및 패스워드를 입력함으로써 사용자 인증(authentification)을 해줄 필요가 있다. 본 발명에 따라, 사용자 인증은 대화마다 한번씩만 요구된다. 사용자가 인증되자마자, 본 발명의 변환기(416)에 의해 사용자 Id는 대화속에 삽입(보존)된다.
도 7b는 상태를 보존하는 동안, HTTP를 사용하여 클라이언트(450)와 서버(410')가 서로 대화하기 위한 본 발명에 따른 방법의 한 예를 도시한 도면이다. 도시한 바와 같이, 클라이언트는 단계(700)에서 서버(410')상에 상주하는 홈 페이지를 액세스한다. 단계(710)에서, 클라이언트는 제품 카탈로그를 브라우징하기 시작하며, 단계(720)에서 예를 들어 온-라인 제품 카탈로그로부터 하이퍼링크를 선택하여 계속해서 카탈로그의 제공을 브라우징한다. 카탈로그를 단순히 브라우징하는 데에는 사용자 인증이 필요없기 때문에, 통신은 상태 정보를 보존하지 않은 채 행해지며, 카탈로그를 브라우징할 수 있는 사람의 수는 최대화된다. 단계(730)에서, 구매 리스트에 추가될 아이템을 발견한다. 그 후, 단계(740)에서 클라이언트는 계속하기 위해 사용자 ID 및 패스워드를 입력해야 한다. 클라이언트가 시스템에 새롭게 접속할 경우, 클라이언트는 사용자 ID와 패스워드를 입력하고, 몇몇 부가적인 선택사양적인 정보(어드레스, 전화번호 등)를 서버에 제공한다. 단계(745)에서, 변환기(416)는 본 발명에 따라 사용자 ID 및 세션 ID를 대화속에 삽입한다. 단계(750)에서, 사용자는 부가적인 제품을 열람하고, 구매 리스트에 부가적인 아이템을 부가하며, 구매를 실행하거나 혹은 데이타베이스 정보를 열람하고 갱신할 수 있다. 상태 변수가 보존되며, 사용자 재인증을 요구하지 않는 장점이 있다. 상태 정보, 즉 사용자 ID 및 세션 ID는 보존될 것이며, 나머지 대화가 진행될 동안 호출되는 모든 CGI 프로그램이 이것을 이용할 수 있다.
현재의 "양식" 기법을 사용할 경우, 구매 리스트에 새로운 아이템을 추가하는 것과 같이 사용자 인증을 요구하는 동작이 실행될 때마다 사용자는 사용자 ID 및 패스워드를 재입력해야 함을 상기하라. 서버가 클라이언트에게 세션 ID를 기억하고, 사용자 인증이 요구될 때마다 이를 입력하라고 요구해야 한다는 점에서 세션 ID에는 더 큰 어려움이 존재할 수 있다.
또한, "쿠키"를 사용할 경우 상태가 보존되는 URL의 범위가 제한됨을 상기하라. 쿠키를 사용할 경우, 상태 정보와 특정 대화를 상호 연관시킬 수 없게 되며, 결과적으로 갱신되지 않은(out-dated) 상태 정보가 서버에게 제공될 수 있다. 결국, 쿠키는 특정 브라우저의 사용을 요구하고, 클라이언트 또는 서버상에 특수하고/하거나 표준적이 아닌 기능을 요구할 수도 있다.
도 8은 도 7a에 도시된 시스템 및 도 7b의 방법 단계(745)에서 상태를 보존시키기 위한 본 발명에 따른 방법의 더 상세한 예를 도시한다. 서버(410')는 TCP/IP 접속과 같은 전형적인 인터넷 접속 및 액세스를 포함하는 통상적인 웹 서버이며, HTML 및 공통 게이트웨이 인터페이스(CGI) 기능(413)을 더 갖는 것으로 가정한다.
도시된 바와 같이, 단계(740')에서 HTTP(상태 정보 비보존 프로토콜)를 통해 웹 서버(410')로 서비스를 요구하기 위해 웹 브라우저를 작동시키는 클라이언트가 하이퍼링크를 선택한 것으로 가정한다. 단계(810)에서, 서버(410')는 예를 들어 URL을 CGI 프로그램 'P1'(415)에 대한 호출로서 해석하고, CGI 프로그램 'P1'(415)는 대화로부터 호출될 수 있는 모든 CGI 프로그램이 액세스될 수 있도록 상태 변수, 가령 'x1, x2, ..., xn'이 대화내에 삽입되어야 한다고 판단한다. P1은 클라이언트(450)가 대화를 지속하도록 하기 위해 하이퍼텍스트 링크를 갖는 HTML 페이지 'h'를 생성한다. 출력, 페이지'h'를 변경되지 않은 상태로 클라이언트로 복귀시키는 대신에, 인자 'h, x1, x2, ..., xn'를 변환기(416)의 convert1 모듈로 전달함으로써 본 발명의 변환기 프로그램(416)을 호출하도록 'p1'이 변형된다. convert1에 대한 호출은,
convert1 'h, x1, x2, ..., xn'
의 형식일 수 있다.
단계(811, 812)에서, 변환기 프로그램의 convert1 모듈은 상태 변수를 보존하기 위해 h에서 HTML에 대한 모든 하이퍼텍스트 링크를 변경시킨다. 모든 상대 하이퍼텍스트 링크(relative hypertext link)는 절대 하이퍼텍스트 링크(absolute hypertext link)(또한 하이퍼링크로 칭해짐)로 변환된다. 상대 어드레스로부터 절대 어드레스로 변환하는 방안에 관해서는 참조로 인용되는 전술한 1995년 8월 7일 츄(Chiu) 등에 의해 개시된 미국 특허 출원 제 512205 호(IBM Docket No. ST995025 호)로서 "A Method for Creating a Hypertext Language for a Distributed Computer Network"이란 명칭의 발명을 참조하라. 본 기술 분야에 통상의 지식을 가진 자라면, HTML 파일에 대한 링크의 변경(단계(811)) 및 CGI 프로그램에 대한 링크의 변경(단계(812))은 본 발명의 범주 및 정신을 벗어나지 않고 원-패스(one-pass) 또는 투-패스(two-pass)로 행해질 수 있음을 이해할 것이다.
도시된 바와 같이, 단계(811)에서 변환기 프로그램(416)의 convert1 모듈은 HTML 페이지 h를 취하며, 상태 변수를 보존하기 위해 HTML 파일에 대한 모든 하이퍼텍스트 링크를 변경한다. HTML 파일에 대한 하이퍼텍스트 링크는 h, x1, ..., xn으로 구성되는 인자를 갖는 CGI 프로그램 convert2에 대한 호출로 변경될 수 있다. 도 9aa를 참조하면, 예를 들어 h가 HTML 파일(915)에 대한 이하의 참조(reference)를 포함하는 것으로 생각하고, 상태 변수(930)가 x=32 및 y=45라고 가정하면,
<A HREF="http://www.watson.ibm.com/mail.html">
은 convert1 논리에 의해 도 9ab에 도시된 형식,
<A HREF=
"http://www.watson.ibm.com/cgi-bin/convert2?url=//www.watson.ibm.com/mail.html&x=32&y=45">
으로 변경될 것이다.
단계(812)에서, 변환기 프로그램의 convert1 모듈은 모든 하이퍼텍스트 링크를 CGI 프로그램으로 변경시킨다. CGI 프로그램을 호출하는 하이퍼텍스트 링크는 두가지 방식 ― 첫 번째 방식으로는
(a) 도 9bb에 도시된 바와 같이, 상태 변수(930')를 CGI 프로그램(940)으로 전달하지만 CGI 프로그램에 의해 발생된 임의의 하이퍼텍스트 링크내에 상태 변수를 삽입하지 않는다. 즉 convert2로 호출을 삽입하지 않는다. 이 방안을 사용하여, CGI 프로그램은 CGI 프로그램이 발생시키는 하이퍼텍스트 링크내에 상태를 전송할 책임이 있다. 두 번째 방식으로는,
(b) 도 9cb에 도시된 바와 같이, 바람직하게 상태 변수(930')를 CGI 프로그램(950)으로 전달하고 (변환기(920')로 삽입된 호출에 의해) CGI 프로그램에 의해 발생되는 하이퍼텍스트 링크내에 상태 변수를 삽입한다. ― 을 통해 상태 변수를 보존할 수 있음을 주지하라.
방식 (a) 및 (b)를 모두 이용하기 위해, 변환기는 본 발명의 범주내에 있는 여러가지 기법중 임의의 하나에 기초하여 CGI 프로그램을 어떻게 구별하는지를 결정할 수 있다. 도 9ba에 도시된 바와 같이, 예를 들어, 명칭이 서브스트링 "type"로 시작되는 임의의 CGI 프로그램은 유형Ⅰ CGI 프로그램으로 간주될 수 있으며, 첫 번째 방식(a)을 사용하여 프로세싱된다고 하는 명령 규약(naming convention)을 사용할 수 있다. 명칭이 서브스트링 "type"으로 시작하지 않는 임의의 서브스트링은 유형Ⅱ CGI 프로그램으로 간주될 수 있으며, 두 번째 방식 (b)를 사용하여 프로세싱된다.
예를 들어, (도 9ba를 참조하여) 이하의 유형Ⅰ CGI 호출의 예,
<A HREF="http://www.watson.ibm.com/cgi-bin/typeⅠ?arg1=55">
를 생각한다. 상태 변수가 x=32 및 y=45라고 가정하면, 변환기(416)는 (도 9bb에 도시된 바와 같이) 이하의 형태
<A HREF="http://www.watson.ibm.com/cgi-bin/typeⅠ&arg1=55&x=32&y=45">
로 상태 변수(930')를 하이퍼텍스트 링크에 첨부한다.
이제, 도 9ca를 참조하여, 유형2 CGI 프로그램에 대한 하이퍼텍스트 링크의 예인
<A HREF="http://www.watson.ibm.com/cgi-bin/prog?arg1=55">
를 생각한다. 상태 변수(930")가 x=32 및 y=45라고 다시 가정하면, (도 9cb에 도시된 바와 같이) 변환기는 이 하이퍼텍스트 링크를 이하의 형태,
< A
HREF="http://www.watson.ibm.com/cgi-bin/convert2?url=//www.watson.ibm.com/cgi -bin/prog&numargs=1&arg1=55&x=32&y=45">
로 변경할 것이며, 여기서 "numargs=1" 인자(970)는 CGI 프로그램(950)이 초기에 자신에게 전달되는 인자를 하나만 가지고, 나머지 인자는 변환기에 의해 전달되는 상태 변수(930")라는 것을 convert2에게 알린다. 그 후, 변경된 출력은 요구 클라이언트로 복귀된다. 단계(813)에서, 클라이언트(450)는 서버(410')로부터 HTML 파일 h를 수신한다. (유형Ⅰ CGI 프로그램으로부터 발생하는 하이퍼텍스트 링크를 제외하고) 클라이언트로 복귀되는 모든 하이퍼텍스트 링크는 이제 변환기의 convert2 루틴에 대한 호출이다. 단계(814)에서, 브라우저(460)를 작동시키는 클라이언트(450)는 하이퍼텍스트 링크중 하나를 선택한다. 단계(815)에서, 서버는 선택된 하이퍼텍스트 링크가 convert2에 대한 호출인지를 판단한다. 만약 그러할 경우, 프로세스는 단계(817)로 진행된다. 단계(817)에서는 다음과 같은 두 가지 가능성이 존재한다.
(1) convert2로 전달된 URL은 HTML 파일을 참조한다. 여기서, 프로세스는 단계(819)로 진행한다. 예를 들어, 클라이언트가 이하의 링크,
< A
HREF="http://www.watson.ibm.com/cgi-bin/convert2?url=//www.watson.ibm.com/mai l.html&x=32&y=45">
를 선택했음을 가정한다.
단계(819)에서, convert2는 파일 "mail.html"에 포함된 HTML 페이지를 인출한다. 그 후, 전술한 바와 같이 HTML 페이지 및 상태 인자 x=32, y=45를 변환기의 convert1 모듈로 전달하며, 프로세스는 단계(811)로 복귀된다.
(2) 하이퍼텍스트 링크는 CGI 프로그램에 대한 호출이다. 이 경우, 프로세스는 단계(818)로 진행된다. 예를 들어, 클라이언트가 이하의 링크,
< A HREF="http://www.watson.ibm.com/cgi-bin/convert2?url=//www.watson.ibm.com/cgi -bin/prog&numargs=1&arg1=55&x=32&y=45">
를 선택한 것으로 가정하자.
여기서, convert2에 대한 두 번째 인자 numargs=1는 최초에 하이퍼텍스트 링크가 "prog"로 하나의 인자, 즉 "arg=55"만 전달했음을 나타낸다. 다른 두 인자, "x=32" 및 "y=45"는 변환기(416)에 의해 삽입되었던 상태 변수이다. convert2는 상태 변수를 포함하여 모든 3 개의 인자를 prog로 전달한다. 그 후, 프로세스는 전술한 바와 같이 단계(811)로 진행된다.
본 발명의 이러한 방법은 클라이언트(450)와 서버(410)간에 서로 전달되는 모든 하이퍼링크내에 상태를 삽입함으로써 상태 정보를 보존하는 장점이 있다. 본 기술 분야에 통상의 지식을 가진 자라면, 대부분의 상태 정보를 서버(410')에 결합되는 파일 시스템 또는 데이타베이스(425)내에 저장함으로써 클라이언트와 서버간에 통신되는 세부사항이 감소될 수 있음을 이해할 것이다. 이 경우, 클라이언트와 서버간에는 상태 변수에 대한 인덱스(또는 포인터)만 서로 주고받으면 된다.
본 발명은 서버로부터 프로그램을 다운로드하는 것을 지원할 필요가 없으며, 클라이언트상에서 실행될 수 있는 표준 브라우저(460)에 대해 작동하도록 설계된다. 자바("애플릿(applets)"), 또는 이와 같은 임의의 다른 언어를 사용하여 작성된 다운로드가능한 서버 프로그램을 지원하는 브라우저에 대해, 부가적인 특징이 가능하다. 자바 프로그래밍 환경은 본 기술 분야에 잘 알려져 있다 예로서, 1996년, 웨이트 그룹 프레스(Waite Gorup Press)의 피. 티마(P. Tyma)와, 지. 토록(G. Torok)과, 티. 다우닝(T. Downing)에 의한 "Java Primer Plus"을 들 수 있으며, 이 문헌은 전체로서 본 발명에 참조로 인용된다. 또한, 1996년, 오스본 맥그로우-힐(Osborne Mcgraw-Hill)의 패트릭 노톤(Patrick Naughton)에 의한 "The Java Handbook"을 예로서 들 수 있으며, 이 문헌은 전체로서 본 발명에 참조로 인용된다. 예를 들면, 서버(410')는 상태가 클라이언트에 저장되도록 하는 다운로드가능한 프로그램을 포함할 수 있다. 이 방안을 사용하여, 상태의 전부 또는 일부분이 클라이언트상에 저장될 수 있다. 전술한 바와 같이, 클라이언트로부터 상태를 검색하기 위해 메모리내의 상태 정보의 위치를 참조하는 인덱스를 서버와 클라이언트간에 서로 전달할 수 있다.
다운로드가능한 서버 코드를 본 발명에 응용한 다른 예로서 '변환기'(416)를 클라이언트상에서 작동하도록 한 것을 들 수 있다. 여기서, 클라이언트는 실행을 위해 '변환기' 로직(416)의 전부 또는 일부분을 서버(410')로부터 클라이언트로 다운로드한다. 결과적으로 본 발명의 전체 기능에 대해 프로세싱의 전부 혹은 일부분이 클라이언트(450)상에서 국부적으로 이루어질 수 있게 된다. 대화가 진행될 동안, 클라이언트는 HTML 페이지를 필터링하기 위해 더 이상 원격 서버를 통할 필요가 없으며, 모든 필터링은 국부적으로 발생한다. 여기서 장점은 서버상의 로드가 감소된다는 것이다. 또한, 클라이언트가 애플릿을 획득하는 서버가 네트워크 장애로 인해 다운되거나 사용이 불가능하게 될지라도 대화를 지속할 수 있게 될 것이다.
다른 실시예
다수의 통신 서버상에 상태를 보존하기
본 기술 분야에 통상의 지식을 가진 자라면, 본 발명의 범주내에서 다수의 서버상에 상태 전송을 위해 다수의 변환기가 사용될 수 있음을 이해할 것이다. 예를 들면, 웹상의 비행기 예약 시스템은 상태를 유지하기 위해 변환기(변환기 A)를 가질 수 있다. 하이퍼텍스트 링크중 하나는 자체적인 변환기(변환기 H)를 구비한 원격 서버상의 호텔 예약 시스템이 될 수 있다. 클라이언트는 비행기 예약 시스템을 이용하여 개시할 수 있다. 몇몇 포인트에서, 상태 정보는 대화에 부가된다. 그 후, 클라이언트는 호텔 예약 시스템에 대한 하이퍼텍스트 링크를 따라간다. 클라이언트가 호텔 예약 시스템을 사용할 동안 변환기 A는 계속해서 상태 정보를 유지하고 있다. 모든 상태 변수는 호텔 예약 시스템의 CGI 프로그램으로 전파된다. 이들 원격 서버 CGI 프로그램은 이들 상태 변수를 단순히 무시할 수도 있다. 반면에, 호텔 예약 시스템이 비행기 예약 시스템으로부터의 상태 변수를 이해할 경우, 이들 변수는 호텔 예약 시스템(변환기 H)에 의해 사용될 수 있다.
몇몇 시점에서, 호텔 예약 시스템 서버는 부가적인 상태 변수를 삽입하기 위해 자신의 변환기(변환기 H)를 호출할 수도 있다. 이 호출이 발생될 경우, 변환기 H에 대한 호출은 변환기 A에 대한 호출에 중첩될(nested) 수도 있으며, 이것으로는 별 문제가 발생하지 않을 것이다. 이제 CGI 프로그램은 변환기 A 및 변환기 H로부터 모두 인자를 전달받을 것이다. 변환기 A가 변환기 H에 대한 호출을 나타내는 CGI 함수를 인식하는 능력을 가질 경우, 이외에도 다음의 일들이 가능하다.
(1) 전술한 바와 같이, 변환기 A는 변환기 H를 유형Ⅰ CGI 프로그램으로서 취급할 수 있다. 이 경우, 변환기 A는 대화도중 다음의 하이퍼텍스트 링크의 모니터링을 중단할 수 있다.
(2) 변환기 A는 변환기 H를 유형Ⅱ CGI 프로그램으로서 취급할 수 있으며, 계속해서 하이퍼텍스트 링크를 변경한다. 또한, 변환기 A는 이후의 HTML 페이지에 특별한 링크를 부가하여 사용자가 두 변환기중 어느 쪽의 제어로부터 탈출하도록 할 수도 있다.
동적 페이지 변경의 다른 예
본 발명은, 대화도중 클라이언트가 HTML 파일을 브라우징하는 동안 클라이언트가 열람하는 모든 HTML 파일을 필터링하는 시스템 및 방법을 제공한다. 예를 들어, 클라이언트가 서버와 접촉해서 대화를 시작한 것으로 가정하자. 서버는 모든 HTML 텍스트를 필터링하여, 적절하지 않은 것으로 판단되는 문구(phrases) 및 하이퍼텍스트 링크를 생략하기를 원한다. 본 발명은, 클라이언트가 필터링을 행하고 있는 서버로부터 멀리 떨어져 있을 수 있는 파일 및 프로그램을 액세스할 동안, HTML 텍스트의 필터링 및/또는 변경을 행하는 방법을 제공한다.
본 발명은, 대화가 진행되는 동안 HTML 페이지가 변경될 필요가 있는 여러가지 광범위한 응용에 적용될 수 있다. 예를 들어, 서버 어플리케이션이 대화도중 클라이언트로 전달되는 모든 HTML 페이지를 필터링하기를 원한다고 가정한다. 변환기는 이들을 클라이언트로 전송하기 전에 HTML 페이지의 원하지 않는 부분을 변경 및/또는 제거할 수 있다. 변환기는 단순히 상이한 서브스트링에 대한 텍스트를 검색하도록 변경되기만 하면 된다. 변환기는 원격 서버상에 상주하는 CGI 프로그램으로부터의 페이지 및 출력을 검열할 수 있음을 주지하라. 클라이언트가 자바와 같은 언어로 작성된 프로그램을 서버로부터 다운로드할 수 있을 경우, 검열을 행하고 있는 변환기는 클라이언트상에서 실행될 수 있다.
다른 예로서, 클라이언트(450)가 대화중에 있고, 주요한 회사의 이름이 텍스트에 자주 나타난다고 가정한다. 변환기(416)를 작동시키는 서버(410')는 주요 회사에 대한 홈 페이지 URL의 데이타베이스(475)에 대한 액세스를 갖는다. 데이타베이스내의 회사의 이름이 HTML 페이지에 나타날 때마다, 서버는 하이퍼텍스트 링크를 부가하기를 원한다. 예를 들면, HTML 페이지에 IBM 또는 인터내셔날 비즈네스 머신즈(International Business Machines)라는 이름이 나타날 때마다, 서버는 IBM의 홈 페이지에 대한 하이퍼텍스트 링크로 참조를 변환하고 싶어한다. 이렇게 함으로써, 클라이언트는 포인팅 앤 클리킹에 의해 대화내에 나타나는 회사에 관한 유용한 정보를 획득할 수 있을 것이다. 이는 데이타베이스내에 나타나는 모든 회사 이름에 대한 HTML 페이지를 검색하도록 변환기(416)를 변경함으로써 달성될 수 있다. 이러한 이름이 발견될 때마다, 해당 회사의 홈 페이지에 대한 하이퍼텍스트 링크가 클라이언트로 복귀되는 HTML 텍스트로 삽입될 수 있다. 변환기(416)는 원격 서버가 하이퍼텍스트 링크를 따라갈 때 계속해서 대화를 모니터할 수 있다. 전술한 바와 같이, 클라이언트가 자바와 같은 언어로 쓰여진 프로그램을 서버로부터 다운로드할 수 있는 경우, 변환기는 클라이언트상에서 실행될 수 있다.
지금까지, 본 발명은 바람직한 실시예를 통해 기술되었지만, 본 기술 분야에 통상의 지식을 가진 자에 의해 변경, 여러가지 개선이 발생될 것이다. 따라서, 바람직한 실시예는 예시로서만 주어지고 제한을 의미하는 것이 아님을 주지해야 한다. 본 발명의 범주는 첨부된 특허청구에 의해 적절하게 한정된다.
본 발명은 상태 정보 비보존 프로토콜을 사용하여 월드 와이드 웹(WWW)과 같은 네트워크상에서 클라이언트와 서버간의 대화가 진행될 동안 상태 정보를 명료하게 유지하는 향상된 방법 및 시스템을 제공한다.

Claims (46)

  1. 상태 정보 비보존 프로토콜(a stateless protocol)을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터화된 방법(a computerized method) ― 상기 서비스는 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 클라이언트와 하나 이상의 서버간의 상기 서비스에 대한 통신 시퀀스이며, 상기 서버로부터의 각 응답에는 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구(continuations)가 포함되고, 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ― 에 있어서,
    ① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 상기 클라이언트가 개시하는 단계와,
    ② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 단계와,
    ③ 상기 검출 단계에 응답하여, 상기 서비스를 수행하고 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 단계와,
    ④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로(recursively) 삽입하는 단계와,
    ⑤ 상기 삽입 단계에 응답하여, 상기 클라이언트로 상기 출력을 전송하는 단계 ― 상기 상태 정보는 상기 대화가 지속되는 동안 보존되고 모든 서비스로 제공된다 ―를 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  2. 제 1 항에 있어서,
    상기 삽입 단계는 상기 서버에 의해 수행되며, 상기 전송 단계는 상기 삽입 단계에 응답하는 상태 정보를 보존하는 컴퓨터화된 방법.
  3. 제 2 항에 있어서,
    상기 서버에 결합된 메모리내에 적어도 상기 상태 정보의 일부를 저장하는 단계를 더 포함하며,
    상기 삽입 단계는 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부를 나타내는 인덱스를 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  4. 제 1 항에 있어서,
    상기 클라이언트로 출력을 전송하는 상기 단계에 응답하는 상기 삽입 단계를 수행하기 위해 상기 클라이언트로 컴퓨터 프로그램 코드를 동적으로 다운로드하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  5. 제 4 항에 있어서,
    상기 클라이언트에 결합된 메모리내에 적어도 상기 상태 정보의 일부를 저장하는 단계를 더 포함하며,
    상기 삽입 단계는 상기 상태 정보의 일부를 나타내는 인덱스를 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  6. 제 1 항에 있어서,
    삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 상기 클라이언트가 제 2 연결 어구를 선택하는 단계와,
    상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련된 제 2 서비스를 호출하는 단계와,
    상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내의 상기 상태 정보를 반복적으로 식별하고 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  7. 제 1 항에 있어서,
    상기 상태 정보를 특정 대화와 상호관련시키는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  8. 제 1 항에 있어서,
    상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol)이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일(hypertext markup language files) 및 공통 게이트웨이 인터페이스(common gateway interface) 프로그램중 하나에 대한 하이퍼링크인 상태 정보를 보존하는 컴퓨터화된 방법.
  9. 제 8 항에 있어서,
    사전설정된 기준에 따라, 상기 서비스로부터 출력되는 상기 하이퍼링크 및 데이타중 하나를 필터링하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  10. 제 8 항에 있어서,
    사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  11. 제 8 항에 있어서,
    상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  12. 제 8 항에 있어서,
    상기 삽입 단계는 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보를 보존하는 컴퓨터화된 방법.
  13. 제 8 항에 있어서,
    상기 삽입 단계는 CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며,
    상기 삽입 단계는 상기 변환기 프로그램에 의해 수행되는 상태 정보를 보존하는 컴퓨터화된 방법.
  14. 상태 정보 비보존 프로토콜을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터 시스템 ― 상기 서비스는 상기 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 서비스에 대한 상기 클라이언트 및 하나 이상의 서버간의 통신 시퀀스이며, 상기 서버로부터의 각 응답은 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구를 포함하고, 상기 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ―에 있어서,
    ① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 개시하는 상기 클라이언트와,
    ② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 상태 검출 로직과,
    ③ 상기 검출에 응답하여, 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 검색 로직(search logic)과,
    ④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로 삽입하는 변환기 로직과,
    ⑤ 상기 클라이언트로 상기 출력을 전송하는 전송 로직 ― 상기 상태 정보는 상기 대화가 지속될 동안 보존되고 모든 서비스로 제공된다 ―을 포함하는
    상태 정보 보존 컴퓨터 시스템.
  15. 제 14 항에 있어서,
    상기 변환기 로직은 상기 서버에 의해 실행되며, 상기 전송 로직은 삽입된 상태 정보와 함께 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하는 상태 정보 보존 컴퓨터 시스템.
  16. 제 15 항에 있어서,
    상기 서버에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 로직은 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
  17. 제 14 항에 있어서,
    상기 전송 로직은 삽입된 상태 정보를 갖지 않는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하며, 상기 서버는 실행을 위해 상기 변환기 로직을 상기 클라이언트로 동적으로 다운로드하는 상태 정보 보존 컴퓨터 시스템.
  18. 제 17 항에 있어서,
    상기 클라이언트에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 로직은 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
  19. 제 14 항에 있어서,
    상기 클라이언트는 삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 제 2 연결 어구를 선택하며,
    상기 변환기 로직은 상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련 제 2 서비스를 호출하며, 상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내에서 상기 상태 정보를 식별하고 삽입하는 상태 정보 보존 컴퓨터 시스템.
  20. 제 14 항에 있어서,
    상기 상태 정보는 특정 대화와 상호관련된 상태 정보 보존 컴퓨터 시스템.
  21. 제 14 항에 있어서,
    상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜이고, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일 및 공통 게이트웨이 인터페이스 프로그램중 하나에 대한 하이퍼링크인 상태 정보 보존 컴퓨터 시스템.
  22. 제 21 항에 있어서,
    사전설정된 기준에 따라 상기 서비스로부터 출력된 상기 하이퍼링크 및 데이타중 하나를 필터링하는 필터 로직을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
  23. 제 21 항에 있어서,
    사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 통합 로직(integration logic)을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
  24. 제 21 항에 있어서,
    상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보 보존 컴퓨터 시스템.
  25. 제 21 항에 있어서,
    상기 삽입 단계는, 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
  26. 제 21 항에 있어서,
    상기 삽입 단계는, CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며, 상기 삽입 단계는 변환기 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
  27. 상태 정보 비보존 프로토콜을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터 시스템 ― 상기 서비스는 상기 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 서비스에 대한 상기 클라이언트 및 하나 이상의 서버간의 통신 시퀀스이며, 상기 서버로부터의 각 응답은 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구를 포함하고, 상기 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ― 에 있어서,
    ① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 개시하는 상기 클라이언트와,
    ② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 상태 검출 수단과,
    ③ 상기 검출에 응답하여, 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 검색 수단과,
    ④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로 삽입하는 변환기 수단과,
    ⑤ 상기 클라이언트로 상기 출력을 전송하는 전송 수단 ― 상기 상태 정보는 상기 대화가 지속될 동안 보존되고 모든 서비스로 제공된다 ― 을 포함하는
    상태 정보 보존 컴퓨터 시스템.
  28. 제 27 항에 있어서,
    상기 변환기 수단은 상기 서버에 의해 실행되며, 상기 전송 수단은 삽입된 상태 정보를 갖는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하는 상태 정보 보존 컴퓨터 시스템.
  29. 제 28 항에 있어서,
    상기 서버에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 수단은 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
  30. 제 27 항에 있어서,
    상기 전송 수단은 삽입된 상태 정보를 갖지 않는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하며, 상기 서버는 실행을 위해 상기 변환기 수단을 상기 클라이언트로 동적으로 다운로드하는 상태 정보 보존 컴퓨터 시스템.
  31. 제 30 항에 있어서,
    상기 클라이언트에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 수단은 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
  32. 제 28 항에 있어서,
    상기 클라이언트는 삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 제 2 연결 어구를 선택하며,
    상기 변환기 수단은 상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련 제 2 서비스를 호출하며, 상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내에 상기 상태 정보를 식별하고 삽입하는 상태 정보 보존 컴퓨터 시스템.
  33. 제 32 항에 있어서,
    사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 통합 수단을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
  34. 제 27 항에 있어서,
    상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일 및 공통 게이트웨이 인터페이스 프로그램중 하나에 대한 하이퍼링크인 상태 정보 보존 컴퓨터 시스템.
  35. 제 34 항에 있어서,
    상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보 보존 컴퓨터 시스템.
  36. 제 34 항에 있어서,
    상기 삽입 단계는, 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
  37. 제 34 항에 있어서,
    상기 삽입 단계는, CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며, 상기 삽입 단계는 변환기 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
  38. 하나 이상의 서버로부터 서비스를 요구하는 클라이언트와 상태 정보 비보존 프로토콜을 통해 대화하는 동안 상태 정보를 보존하는 컴퓨터화된 방법에 있어서,
    상기 상태 정보 비보존 프로토콜을 통해, 상태 정보를 포함하는 서비스 요구를 수신하는 단계와,
    상기 요구에 응답하여, 상기 서비스로부터의 출력 내의 모든 연결 요구를 식별하고 모든 식별된 연결 어구 내에 상기 상태 정보를 반복적으로 삽입하는 단계와,
    상기 연결 어구 및 삽입된 상태 정보를 포함하는 응답(a response)을 전송하는 단계 ― 상기 연결 어구는 또다른 서비스 요구를 가능하게 하며, 상기 연결 어구 중 하나는 상기 대화가 지속되도록 호출되어야 함 ― 를 포함하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  39. 제 38 항에 있어서,
    상기 삽입 단계는 서버에 의해 수행되며, 상기 전송 단계는 상기 삽입 단계에 응답하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  40. 제 39 항에 있어서,
    상기 서버에 접속된 메모리 내에 상기 상태 정보의 적어도 일부를 저장하는 단계를 더 포함하며, 상기 삽입 단계는 상기 모든 식별된 연결 어구 내에 상기 상태 정보의 상기 일부를 나타내는 인덱스를 삽입하는 단계를 포함하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  41. 제 38 항에 있어서,
    상기 전송 단계에 응답하여, 상기 삽입 단계를 수행하기 위해 컴퓨터 프로그램 코드를 상기 클라이언트로 동적으로 다운로딩하는 단계를 더 포함하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  42. 제 41 항에 있어서,
    상기 클라이언트에 접속된 메모리 내에 상기 상태 정보의 적어도 일부를 저장하는 단계를 더 포함하며, 상기 삽입 단계는 상기 상태 정보의 상기 일부를 나타내는 인덱스를 삽입하는 단계를 포함하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  43. 제 38 항에 있어서
    삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터의 제 2 연결 어구와 연관된 제 2 요구를 수신하는 단계와,
    상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고 복구된 상태 정보로써 연관된 제 2 서비스를 호출하는 단계와,
    상기 제 2 서비스로부터의 출력과 연관된 모든 연결 어구 내에 반복적으로 상기 상태 정보를 식별하고 삽입하는 단계를 더 포함하는
    상태 정보를 보존하는 컴퓨터화된 방법.
  44. 제 38 항에 있어서,
    상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol)이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일(hypertext markup language files) 및 공통 게이트웨이 인터페이스(common gateway interface) 프로그램중 하나에 대한 하이퍼링크인
    상태 정보를 보존하는 컴퓨터화된 방법.
  45. 제 44 항에 있어서,
    사전설정된 기준에 따라, 상기 서비스로부터 출력되는 상기 하이퍼링크 및 데이타중 하나를 필터링하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
  46. 제 44 항에 있어서,
    사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
KR1019970015267A 1996-06-07 1997-04-24 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템 KR100288490B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/660,633 US5961601A (en) 1996-06-07 1996-06-07 Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US08/660,633 1996-06-07
US8/660,633 1996-06-07

Publications (2)

Publication Number Publication Date
KR980004051A KR980004051A (ko) 1998-03-30
KR100288490B1 true KR100288490B1 (ko) 2001-05-02

Family

ID=24650328

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970015267A KR100288490B1 (ko) 1996-06-07 1997-04-24 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템

Country Status (7)

Country Link
US (1) US5961601A (ko)
EP (1) EP0812088A3 (ko)
JP (1) JP3290377B2 (ko)
KR (1) KR100288490B1 (ko)
CN (1) CN1108682C (ko)
CA (1) CA2206685C (ko)
TW (1) TW349305B (ko)

Families Citing this family (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6006266A (en) * 1996-06-03 1999-12-21 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
JP3437044B2 (ja) * 1996-10-23 2003-08-18 株式会社野村総合研究所 Www環境下で作動するクライアントサーバーシステムにおけるユーザー認証方法
US6145004A (en) * 1996-12-02 2000-11-07 Walsh; Stephen Kelly Intranet network system
US6901425B1 (en) * 1996-12-23 2005-05-31 International Business Machines Corporation Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US6845505B1 (en) 1997-02-03 2005-01-18 Oracle International Corporation Web request broker controlling multiple processes
US6710786B1 (en) 1997-02-03 2004-03-23 Oracle International Corporation Method and apparatus for incorporating state information into a URL
US6225995B1 (en) * 1997-10-31 2001-05-01 Oracle Corporaton Method and apparatus for incorporating state information into a URL
US6285683B1 (en) * 1997-02-14 2001-09-04 Global Adsi Solutions, Inc. Method and apparatus for providing extended capability telephone services via an automated server
US7020700B1 (en) * 1997-02-28 2006-03-28 International Business Machines Corporation Client side socks server for an internet client
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6170017B1 (en) * 1997-05-08 2001-01-02 International Business Machines Corporation Method and system coordinating actions among a group of servers
JP3883647B2 (ja) * 1997-06-10 2007-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション メッセージ処理方法、メッセージ処理装置及びメッセージ処理を制御するプログラムを格納する記憶媒体
US6182092B1 (en) * 1997-07-14 2001-01-30 Microsoft Corporation Method and system for converting between structured language elements and objects embeddable in a document
US6049877A (en) * 1997-07-16 2000-04-11 International Business Machines Corporation Systems, methods and computer program products for authorizing common gateway interface application requests
US6334114B1 (en) 1997-10-31 2001-12-25 Oracle Corporation Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm
GB9726484D0 (en) * 1997-12-15 1998-02-11 British Telecomm Data communications
EP1049975A1 (en) * 1997-12-29 2000-11-08 Postx Corporation Method and apparatus capable of embedding, extracting and processing data within a file having an html format
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
DE19814859B4 (de) 1998-04-02 2006-04-13 Fujitsu Siemens Computers Gmbh Verfahren zum Steuern des Informationsaustausches unter Verwendung des Internet
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US6353839B1 (en) * 1998-04-30 2002-03-05 Openwave Systems Inc. Method for inline variables management in a hypermedia display language
JP3780099B2 (ja) * 1998-05-14 2006-05-31 キヤノン株式会社 ページデータ生成制御装置及び方法及びコンピュータ読み取り可能なプログラムが格納された記憶媒体
US6308212B1 (en) 1998-05-29 2001-10-23 Hewlett-Packard Company Web user interface session and sharing of session environment information
US6810409B1 (en) * 1998-06-02 2004-10-26 British Telecommunications Public Limited Company Communications network
US6345278B1 (en) * 1998-06-04 2002-02-05 Collegenet, Inc. Universal forms engine
US6311269B2 (en) * 1998-06-15 2001-10-30 Lockheed Martin Corporation Trusted services broker for web page fine-grained security labeling
US6330566B1 (en) * 1998-06-22 2001-12-11 Microsoft Corporation Apparatus and method for optimizing client-state data storage
US6131118A (en) * 1998-07-07 2000-10-10 Compaq Computer Corporation Flexible display of management data in a programmable event driven processing system
US6108701A (en) * 1998-07-20 2000-08-22 Lucent Technologies, Inc. Soft switch extension for internet protocol applications
US6496824B1 (en) * 1999-02-19 2002-12-17 Saar Wilf Session management over a stateless protocol
US6519646B1 (en) * 1998-09-01 2003-02-11 Sun Microsystems, Inc. Method and apparatus for encoding content characteristics
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
CN1287640A (zh) 1998-10-28 2001-03-14 维迪科隆有限公司 用于自动聚集和投递电子个人信息或数据以及涉及电子个人信息或数据的事务处理的装置与方法
EP0999677A1 (de) * 1998-11-05 2000-05-10 Olaf Walkowiak Verfahren und Vorrichtung zum Bereitstellen von Zustandsinformationen bei der Übertragung von Hypertextdokumenten über ein zustandloses Protokoll
US6324539B1 (en) * 1998-11-09 2001-11-27 Unisys Corporation Cool ice state management
US6662343B1 (en) * 1998-11-09 2003-12-09 Unisys Corporation Cool ice automatic footer text on HTML pages
US6295531B1 (en) * 1998-11-09 2001-09-25 Unisys Corporation Cool ICE data wizard
US7222109B1 (en) 1998-11-16 2007-05-22 Sky Technologies Llc System and method for contract authority
WO2000029976A1 (en) * 1998-11-16 2000-05-25 Trade Access, Inc. Integrated remote web authoring system
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US7672879B1 (en) 1998-12-08 2010-03-02 Yodlee.Com, Inc. Interactive activity interface for managing personal data and performing transactions over a data packet network
US7085997B1 (en) 1998-12-08 2006-08-01 Yodlee.Com Network-based bookmark management and web-summary system
US8069407B1 (en) 1998-12-08 2011-11-29 Yodlee.Com, Inc. Method and apparatus for detecting changes in websites and reporting results to web developers for navigation template repair purposes
US6209038B1 (en) * 1999-01-13 2001-03-27 International Business Machines Corporation Technique for aggregate transaction scope across multiple independent web requests
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
JP2000293426A (ja) * 1999-04-01 2000-10-20 Nec Soft Ltd レコードロック方式
US6975937B1 (en) * 1999-05-11 2005-12-13 Christopher Kantarjiev Technique for processing customer service transactions at customer site using mobile computing device
US7177825B1 (en) 1999-05-11 2007-02-13 Borders Louis H Integrated system for ordering, fulfillment, and delivery of consumer products using a data network
US7370005B1 (en) 1999-05-11 2008-05-06 Peter Ham Inventory replication based upon order fulfillment rates
WO2000068856A2 (en) 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
US7305473B2 (en) * 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
US7752535B2 (en) 1999-06-01 2010-07-06 Yodlec.com, Inc. Categorization of summarized information
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
US6557038B1 (en) * 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
FR2796511A1 (fr) * 1999-07-16 2001-01-19 Telediffusion Fse Telecommande d'execution d'une fonction dans un serveur
AU6264100A (en) * 1999-08-28 2001-03-26 Sevenval Ag Providing state information in a stateless data communication protocol
EP1085715A3 (en) * 1999-08-28 2001-06-06 Sevenval AG Providing state information in a data communication protocol
AU1249801A (en) 1999-08-30 2001-03-26 Kerbango, Inc. Search engine to monitor and verify streaming audio sources
US20020052781A1 (en) * 1999-09-10 2002-05-02 Avantgo, Inc. Interactive advertisement mechanism on a mobile device
US8595308B1 (en) 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US7987420B1 (en) 1999-09-10 2011-07-26 Ianywhere Solutions, Inc. System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices
US6779042B1 (en) 1999-09-10 2004-08-17 Ianywhere Solutions, Inc. System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices
US20010047394A1 (en) 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US7392308B2 (en) * 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
WO2001027717A2 (en) * 1999-10-11 2001-04-19 I2 Technologies, Inc. Distributed session services
US6629092B1 (en) 1999-10-13 2003-09-30 Andrew Berke Search engine
WO2001029779A1 (en) * 1999-10-18 2001-04-26 Stamps.Com Secure and recoverable database for on-line value-bearing item system
US7752141B1 (en) 1999-10-18 2010-07-06 Stamps.Com Cryptographic module for secure processing of value-bearing items
US6888942B2 (en) * 1999-11-30 2005-05-03 David A. Crockett Process for administrating over changes to server-administrated client records in a stateless protocol
US8135682B1 (en) 1999-11-30 2012-03-13 Crockett David A Process for administrating over changes to server-administrated client records in a stateless protocol
US6751651B2 (en) 1999-11-30 2004-06-15 David A. Crockett Web-site consistency administration among inconsistent software-object libraries of remote distributed health-care providers
US7107308B2 (en) * 1999-12-01 2006-09-12 Sun Microsystems, Inc. Low cost, stateless, full-featured information appliance
US6970904B1 (en) * 1999-12-29 2005-11-29 Rode Consulting, Inc. Methods and apparatus for sharing computational resources
WO2001050276A1 (fr) * 2000-01-05 2001-07-12 E-Pop Corp. Procede et dispositif servant d'intermediaire d'informations multimedia, procede et systeme de mise a jour de referencement de sites web
CA2397865A1 (en) * 2000-01-24 2001-07-26 Newheights Software Corporation Improved method and system of state management for data communications
WO2001061652A2 (en) 2000-02-16 2001-08-23 Stamps.Com Secure on-line ticketing
KR20010089012A (ko) * 2000-03-20 2001-09-29 전성영 인터넷 금고 서비스 시스템 및 그 방법
GB2348659B (en) * 2000-03-23 2001-03-28 Fmc Corp Tubing hanger saddle valve
WO2001071525A1 (en) * 2000-03-23 2001-09-27 Tingo Inc. System and method for managing user-specific data
US6886037B1 (en) * 2000-03-31 2005-04-26 Ncr Corporation Channel director for cross-channel customer interactions
CN1436418A (zh) * 2000-04-17 2003-08-13 肖恩E·韦德林 在线查号辅助系统
US7240283B1 (en) 2000-11-10 2007-07-03 Narasimha Rao Paila Data transmission and rendering techniques implemented over a client-server system
US6985946B1 (en) 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
WO2001088789A1 (fr) * 2000-05-15 2001-11-22 Nifty Corporation Systeme et procede de traitement des commandes
EP1302880B1 (en) * 2000-05-15 2008-07-30 Nifty Corporation Electronic commerce information processing system and method
US7908200B2 (en) 2000-05-16 2011-03-15 Versata Development Group, Inc. Method and apparatus for efficiently generating electronic requests for quote
AU2001261622A1 (en) * 2000-05-17 2001-11-26 Interactive Video Technologies, Inc. Method for state preservation in http-based communications
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6757900B1 (en) * 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US6792607B1 (en) * 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US6990653B1 (en) 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US7739354B2 (en) * 2000-10-12 2010-06-15 Sap Portals Israel Ltd. Adding data to text pages by means of an intermediary proxy
WO2001093092A1 (en) * 2000-05-29 2001-12-06 Nokia Corporation Synchronization method
BR0111676A (pt) * 2000-06-14 2003-07-08 Johnson & Johnson Health Care Sistema de compras médicas online
US6996599B1 (en) * 2000-06-21 2006-02-07 Microsoft Corporation System and method providing multi-tier applications architecture
JP4010749B2 (ja) * 2000-07-04 2007-11-21 本田技研工業株式会社 共有データベースを備えた電子ファイル管理システム
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6799251B1 (en) 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
US7069292B2 (en) * 2000-08-29 2006-06-27 Fujitsu Limited Automatic display method and apparatus for update information, and medium storing program for the method
US6853994B1 (en) * 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
JP4200645B2 (ja) * 2000-09-08 2008-12-24 日本電気株式会社 情報処理装置、情報処理方法および記録媒体
US7426513B2 (en) * 2000-10-12 2008-09-16 Sap Portals Israel Ltd. Client-based objectifying of text pages
US6848000B1 (en) * 2000-11-12 2005-01-25 International Business Machines Corporation System and method for improved handling of client state objects
US7233914B1 (en) 2000-12-27 2007-06-19 Joyo Wijaya Technique for implementing item substitution for unavailable items relating to a customer order
US7246351B2 (en) * 2001-02-20 2007-07-17 Jargon Software System and method for deploying and implementing software applications over a distributed network
US7720958B2 (en) 2001-03-09 2010-05-18 International Business Machines Corporation Method and system for embedding correlated performance measurements for distributed application performance decomposition
US7380250B2 (en) 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7308423B1 (en) 2001-03-19 2007-12-11 Franklin Goodhue Woodward Technique for handling sales of regulated items implemented over a data network
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
WO2002088951A1 (en) * 2001-04-26 2002-11-07 Telefonaktiebolaget Lm Ericsson (Publ) Stateless server
EP1253517A1 (en) * 2001-04-26 2002-10-30 Telefonaktiebolaget Lm Ericsson Stateless server
CN101833952B (zh) * 2001-05-04 2013-02-13 微软公司 客户服务器系统中处理输入数据的方法
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
GB0112780D0 (en) * 2001-05-25 2001-07-18 Nokia Corp Requests in a communication system
US7493397B1 (en) 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6944797B1 (en) 2001-06-07 2005-09-13 Microsoft Corporation Method and system for tracing
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US6898604B1 (en) 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7162723B2 (en) 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
KR100760789B1 (ko) * 2001-06-30 2007-09-20 주식회사 케이티 인터넷 서비스 시스템에서 과금대행을 위한 컨텐츠 중계방법
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
EP1280054A1 (en) 2001-07-27 2003-01-29 Sap Ag Method and computer system for separating and processing layout information and data of a document
EP1280053B1 (en) 2001-07-27 2010-02-24 Sap Ag Method and computer system for providing and processing a human interface description
DE60141823D1 (de) 2001-07-27 2010-05-27 Sap Ag Verfahren und Rechnersystem zum Herstellen und Verarbeiten einer Browser-angepassten Benutzerschnitstelle
US7216294B2 (en) 2001-09-04 2007-05-08 Microsoft Corporation Method and system for predicting optimal HTML structure without look-ahead
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
GB2382962A (en) * 2001-12-07 2003-06-11 Altio Ltd Data routing without using an address
US20030110266A1 (en) * 2001-12-10 2003-06-12 Cysive, Inc. Apparatus and method of using session state data across sessions
US20040205569A1 (en) * 2002-02-06 2004-10-14 Mccarty Jon S. Method and system to manage outdated web page links in a computing system
US20030182157A1 (en) * 2002-03-25 2003-09-25 Valk Jeffrey W. System architecture for information management system
US20030225885A1 (en) * 2002-05-31 2003-12-04 Comverse, Ltd. Caching for limited bandwidth networks
US20030232245A1 (en) * 2002-06-13 2003-12-18 Jeffrey A. Turak Interactive training software
KR20040028257A (ko) * 2002-09-30 2004-04-03 삼성전자주식회사 네트워크에 접근가능한 장치, 그 보안 방법 및 정보저장매체
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US20040153973A1 (en) * 2002-11-21 2004-08-05 Lawrence Horwitz System and method for automatically storing and recalling application states based on application contexts
CA2508317C (en) * 2002-12-02 2012-07-24 Sap Aktiengesellschaft Session-return enabling stateful web applications
US7472170B2 (en) 2003-02-13 2008-12-30 Bruce Zak System and method for managing content on a network interface
US7634570B2 (en) * 2003-03-12 2009-12-15 Microsoft Corporation Managing state information across communication sessions between a client and a server via a stateless protocol
US7240192B1 (en) 2003-03-12 2007-07-03 Microsoft Corporation Combining a browser cache and cookies to improve the security of token-based authentication protocols
US7451305B1 (en) 2003-04-10 2008-11-11 Cisco Technology, Inc. Method and apparatus for securely exchanging cryptographic identities through a mutually trusted intermediary
JP4209712B2 (ja) * 2003-04-15 2009-01-14 株式会社リコー 情報処理装置及びセッション管理方法
US7107293B2 (en) * 2003-04-30 2006-09-12 International Business Machines Corporation Nested recovery scope management for stateless recovery agents
JP4097584B2 (ja) * 2003-09-19 2008-06-11 株式会社リコー Wwwサーバ機能を有する組み込み機器、ウェブページ提供方法、および、ウェブページ提供制御プログラム
US7873353B2 (en) * 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
WO2005060611A2 (en) * 2003-12-10 2005-07-07 Alex Mashinsky Exchange of centralized control data
US7373502B2 (en) * 2004-01-12 2008-05-13 Cisco Technology, Inc. Avoiding server storage of client state
US7346773B2 (en) * 2004-01-12 2008-03-18 Cisco Technology, Inc. Enabling stateless server-based pre-shared secrets
US7996631B1 (en) 2004-02-17 2011-08-09 Oracle America, Inc. System and method for accessing storage devices attached to a stateless client
US7536672B1 (en) * 2004-03-05 2009-05-19 Adobe Systems Incorporated Management of user interaction history with software applications
US7565538B2 (en) * 2004-04-05 2009-07-21 Microsoft Corporation Flow token
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7464386B2 (en) 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US8156448B2 (en) 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
KR100636147B1 (ko) * 2004-06-24 2006-10-18 삼성전자주식회사 네트워크를 통한 컨텐츠의 제어 방법 및 장치, 컨텐츠제공 방법 및 장치
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
US9552599B1 (en) * 2004-09-10 2017-01-24 Deem, Inc. Platform for multi-service procurement
US20060064470A1 (en) * 2004-09-23 2006-03-23 Sargent Antony J Method, system, and computer program product for improved synchronization efficiency for mobile devices, including database hashing and caching of web access errors
US20060287966A1 (en) * 2004-12-21 2006-12-21 Oracle International Corporation Methods and systems for authoring customized contracts using contract templates that include user-configured rules and questions
US20060230046A1 (en) * 2005-03-30 2006-10-12 Brassil J M Component design by tables within tables
US7350227B2 (en) * 2005-04-26 2008-03-25 Cisco Technology, Inc. Cryptographic peer discovery, authentication, and authorization for on-path signaling
JP4285655B2 (ja) * 2005-07-19 2009-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Webサービスを提供する方法、装置、プログラム
US7757239B2 (en) * 2005-08-29 2010-07-13 Sap Ag Systems and methods for suspending and resuming of a stateful web application
US8176408B2 (en) 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US8756326B1 (en) 2005-11-08 2014-06-17 Rockstar Consortium Us Lp Using interactive communication session cookies in web sessions
US20070106670A1 (en) * 2005-11-08 2007-05-10 Nortel Networks Limited Interactive communication session cookies
US8127304B2 (en) * 2006-05-31 2012-02-28 Rocket Software, Inc. Mapping and communicating data from a user interface to an application program
US8849719B2 (en) * 2006-08-02 2014-09-30 Christopher W. Baker Providing content to a portable playback device
US7606752B2 (en) 2006-09-07 2009-10-20 Yodlee Inc. Host exchange in bill paying services
WO2008032717A1 (fr) * 2006-09-12 2008-03-20 Visionarts, Inc. Procédé de stockage et de lecture de données géré par exécution d'une application sur un client http, et programmes de stockage et de lecture de données
US20080306784A1 (en) * 2007-06-05 2008-12-11 Vijay Rajkumar Computer-implemented methods and systems for analyzing clauses of contracts and other business documents
US8037004B2 (en) 2007-06-11 2011-10-11 Oracle International Corporation Computer-implemented methods and systems for identifying and reporting deviations from standards and policies for contracts, agreements and other business documents
EP2235881A2 (en) * 2007-12-07 2010-10-06 Gallup, Inc. Preserving state information client-server system networked via a stateless protocol
US8122482B2 (en) * 2008-01-24 2012-02-21 Cisco Technology, Inc. Cryptographic peer discovery, authentication, and authorization for on-path signaling
CN101527708B (zh) * 2008-03-04 2012-10-03 华为技术有限公司 恢复连接的方法和装置
US8261334B2 (en) 2008-04-25 2012-09-04 Yodlee Inc. System for performing web authentication of a user by proxy
JP4429363B2 (ja) * 2008-08-18 2010-03-10 株式会社エヌ・ティ・ティ・ドコモ 移動通信方法、交換局及び無線基地局
US8984165B2 (en) * 2008-10-08 2015-03-17 Red Hat, Inc. Data transformation
CN101741442B (zh) * 2008-11-20 2013-03-20 华为技术有限公司 协作多点传输中确定资源映射的方法、网络设备及系统
US8555359B2 (en) 2009-02-26 2013-10-08 Yodlee, Inc. System and methods for automatically accessing a web site on behalf of a client
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
US9258379B2 (en) * 2010-12-29 2016-02-09 Oracle International Corporation Session initiation protocol adapter system and method providing stateless node mapping to a stateful server node hosting a communication session for an actor
WO2013059199A1 (en) 2011-10-17 2013-04-25 Disintermediation Services, Inc. Two-way real time communication allowing asymmetric participation across multiple electronic platforms
US20130290830A1 (en) * 2012-04-30 2013-10-31 Salesforce.Com, Inc. System and method for managing a viewstate of a web application
US9595023B1 (en) 2014-05-21 2017-03-14 Plaid Technologies, Inc. System and method for facilitating programmatic verification of transactions
US9449346B1 (en) 2014-05-21 2016-09-20 Plaid Technologies, Inc. System and method for programmatically accessing financial data
US11574621B1 (en) * 2014-12-23 2023-02-07 Amazon Technologies, Inc. Stateless third party interactions
CA3119897C (en) 2015-09-08 2022-08-09 Plaid Inc. Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts
US10223233B2 (en) 2015-10-21 2019-03-05 International Business Machines Corporation Application specific interaction based replays
US10726491B1 (en) 2015-12-28 2020-07-28 Plaid Inc. Parameter-based computer evaluation of user accounts based on user account data stored in one or more databases
US10984468B1 (en) 2016-01-06 2021-04-20 Plaid Inc. Systems and methods for estimating past and prospective attribute values associated with a user account
US11468085B2 (en) 2017-07-22 2022-10-11 Plaid Inc. Browser-based aggregation
US10878421B2 (en) 2017-07-22 2020-12-29 Plaid Inc. Data verified deposits
US10937011B1 (en) 2018-09-11 2021-03-02 Rodan & Fields, Llc System and method for monitoring and updating content for an e-commerce platform
US11316862B1 (en) 2018-09-14 2022-04-26 Plaid Inc. Secure authorization of access to user accounts by one or more authorization mechanisms
US11887069B2 (en) 2020-05-05 2024-01-30 Plaid Inc. Secure updating of allocations to user accounts
US11327960B1 (en) 2020-10-16 2022-05-10 Plaid Inc. Systems and methods for data parsing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218695A (en) * 1990-02-05 1993-06-08 Epoch Systems, Inc. File server system having high-speed write execution
DE69327448T2 (de) * 1992-12-21 2004-03-04 Sun Microsystems, Inc., Mountain View Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
CA2121612A1 (en) * 1993-05-21 1994-11-22 Chung-Hwa Herman Rao Methods and apparatus for making and using distributed applications
EP0709779B1 (en) * 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US5623656A (en) * 1994-12-15 1997-04-22 Lucent Technologies Inc. Script-based data communication system and method utilizing state memory
US5710918A (en) * 1995-06-07 1998-01-20 International Business Machines Corporation Method for distributed task fulfillment of web browser requests
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5745681A (en) * 1996-01-11 1998-04-28 Sun Microsystems, Inc. Stateless shopping cart for the web
CA2247325A1 (en) * 1996-02-28 1997-09-04 Aim Corporation Information providing system for providing images suitable for particular users, and terminal of information providing system
JP3245425B2 (ja) * 1996-02-28 2002-01-15 グローバルメディアオンライン株式会社 広告等のメッセージを端末装置の利用者へ配信する通信システム
JP3526688B2 (ja) * 1996-03-29 2004-05-17 富士通株式会社 コネクションレスな通信における従量制課金システムおよび方法
JPH09325906A (ja) * 1996-06-04 1997-12-16 Inter Sci Kk コンピュータシステム

Also Published As

Publication number Publication date
EP0812088A2 (en) 1997-12-10
JP3290377B2 (ja) 2002-06-10
CN1173671A (zh) 1998-02-18
TW349305B (en) 1999-01-01
US5961601A (en) 1999-10-05
CA2206685C (en) 2001-04-17
KR980004051A (ko) 1998-03-30
JPH1097483A (ja) 1998-04-14
CN1108682C (zh) 2003-05-14
EP0812088A3 (en) 1998-06-10
CA2206685A1 (en) 1997-12-07

Similar Documents

Publication Publication Date Title
KR100288490B1 (ko) 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템
CA2177917C (en) Computer network for www server data access over internet
US6604135B1 (en) WWW client server dynamic interactive system method
US5793964A (en) Web browser system
US5752246A (en) Service agent for fulfilling requests of a web browser
US6397253B1 (en) Method and system for providing high performance Web browser and server communications
US5710918A (en) Method for distributed task fulfillment of web browser requests
US5745754A (en) Sub-agent for fulfilling requests of a web browser using an intelligent agent and providing a report
KR100413309B1 (ko) 모국어 조회 서비스를 제공하기 위한 방법 및 시스템
US6209048B1 (en) Peripheral with integrated HTTP server for remote access using URL's
US6199104B1 (en) Server-based host monitor
US6754710B1 (en) Remote control of computer network activity
US5740430A (en) Method and apparatus for server-independent caching of dynamically-generated customized pages
US6112228A (en) Client inherited functionally derived from a proxy topology where each proxy is independently configured
KR19990006461A (ko) 월드 와이드 웹을 통한 정보 및 기타 자료의 관리 및 억세스 시스템
US20010047397A1 (en) Method and system for using pervasive device to access webpages
KR20020022374A (ko) 웹 문서의 주소 변환을 이용한 공동 브라우징 방법
US6408296B1 (en) Computer implemented method and apparatus for enhancing access to a file
US20020194327A1 (en) Method for sensing the status of a client from a server
KR100209837B1 (ko) 인터넷을 통해 월드 와이드 웹 서버 데이타를 액세스하기 위한 웹 브라우저 시스템 웹 서버 시스템 웹 브라우저 요구 충족 방법 및 웹 브라우저의 분산 태스크 요구 실행 방법
KR20000051934A (ko) 다자간 연동 브라우징 시스템 및 브라우징 방법과 이를 저장한 저장 매체
JP2002032412A (ja) ホームページの検索方法およびホームページ検索サーバ

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: 20130124

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140124

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20150127

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 16

EXPY Expiration of term