KR100288490B1 - 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템 - Google Patents
상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1087—Peer-to-peer [P2P] networks using cross-functional networking aspects
- H04L67/1091—Interfacing with client-server systems or between P2P systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Abstract
상태 정보 비보존 프로토콜, 예를 들어 HTTP를 사용하여 월드 와이드 웹(WWW)과 같은 네트워크상에서 통신하는 컴퓨터내에 상태를 보존하는 방법 및 시스템이 제공된다. 서비스를 수행하고, 서비스로부터의 출력내의 모든 연결 어구(하이퍼링크)를 식별하고, 클라이언트로 전송된 출력내의 모든 식별된 연결 어구내에 상태 정보를 반복적으로 삽입함으로써 서버로부터 서비스를 요구하는 클라이언트의 대화가 진행되는 동안 상태가 보존된다. 상태 정보는 서버에 의해 클라이언트로 삽입되며, 전송될 수 있다. 선택적으로, 동적으로 다운로드가능한 프로그램 코드가 클라이언트에서 상태 정보를 삽입하는데 사용될 수 있다. 사전설정된 기준에 따라, 부가적인 특성은 서비스로부터 출력된 하이퍼링크 및 데이타의 필터링 및/또는 가산을 가능하게 한다. 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하기 위해, HTML 파일을 요구하는 식별된 연결 어구를 변경함으로써 상태 정보가 삽입될 수 있다. 상태 정보는 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 프로그램을 호출하는 식별된 연결 어구를 변경함으로써 또한 삽입될 수 있으며, 삽입 단계는 CGI 프로그램에 의해 수행된다. 선택적으로, CGI 프로그램을 호출하는 식별된 연결 어구는 식별된 연결 어구와, CGI 프로그램과 관련된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달되는 상태 정보로 CGI 변환기 프로그램을 호출하도록 변경될 수 있다. 여기서, 삽입은 변환 프로그램에 의해 수행된다.
Description
본 발명은 컴퓨터 및 컴퓨터 네트워크에 관한 것이다. 특히, 본 발명은 상태 정보 비보존 프로토콜(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에 도시된다.
많은 웹 브라우저는 디스플레이되는 임의의 문서의 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에 대한 호출을 나타내는 연결 어구는
의 형식을 가질 것이며, 여기서 service1(605)은 서비스이며 <service-arg-list>는 클라이언트가 연결 어구를 선택할 경우 해당 서비스로 전달되는 서비스 인자(610)의 리스트이다. 도 6에 도시된 바와 같이, 본 발명의 convert1 프로그램은 각각의 연결 어구(1)를
의 형식으로 변경함으로써 상태를 보존하며, 여기서 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)
- 상태 정보 비보존 프로토콜(a stateless protocol)을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터화된 방법(a computerized method) ― 상기 서비스는 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 클라이언트와 하나 이상의 서버간의 상기 서비스에 대한 통신 시퀀스이며, 상기 서버로부터의 각 응답에는 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구(continuations)가 포함되고, 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ― 에 있어서,① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 상기 클라이언트가 개시하는 단계와,② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 단계와,③ 상기 검출 단계에 응답하여, 상기 서비스를 수행하고 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 단계와,④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로(recursively) 삽입하는 단계와,⑤ 상기 삽입 단계에 응답하여, 상기 클라이언트로 상기 출력을 전송하는 단계 ― 상기 상태 정보는 상기 대화가 지속되는 동안 보존되고 모든 서비스로 제공된다 ―를 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 1 항에 있어서,상기 삽입 단계는 상기 서버에 의해 수행되며, 상기 전송 단계는 상기 삽입 단계에 응답하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 2 항에 있어서,상기 서버에 결합된 메모리내에 적어도 상기 상태 정보의 일부를 저장하는 단계를 더 포함하며,상기 삽입 단계는 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부를 나타내는 인덱스를 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 1 항에 있어서,상기 클라이언트로 출력을 전송하는 상기 단계에 응답하는 상기 삽입 단계를 수행하기 위해 상기 클라이언트로 컴퓨터 프로그램 코드를 동적으로 다운로드하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 4 항에 있어서,상기 클라이언트에 결합된 메모리내에 적어도 상기 상태 정보의 일부를 저장하는 단계를 더 포함하며,상기 삽입 단계는 상기 상태 정보의 일부를 나타내는 인덱스를 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 1 항에 있어서,삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 상기 클라이언트가 제 2 연결 어구를 선택하는 단계와,상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련된 제 2 서비스를 호출하는 단계와,상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내의 상기 상태 정보를 반복적으로 식별하고 삽입하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 1 항에 있어서,상기 상태 정보를 특정 대화와 상호관련시키는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 1 항에 있어서,상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol)이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일(hypertext markup language files) 및 공통 게이트웨이 인터페이스(common gateway interface) 프로그램중 하나에 대한 하이퍼링크인 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 8 항에 있어서,사전설정된 기준에 따라, 상기 서비스로부터 출력되는 상기 하이퍼링크 및 데이타중 하나를 필터링하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 8 항에 있어서,사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 8 항에 있어서,상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 8 항에 있어서,상기 삽입 단계는 식별된 연결 어구 및 인자로서 전달된 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 8 항에 있어서,상기 삽입 단계는 CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며,상기 삽입 단계는 상기 변환기 프로그램에 의해 수행되는 상태 정보를 보존하는 컴퓨터화된 방법.
- 상태 정보 비보존 프로토콜을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터 시스템 ― 상기 서비스는 상기 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 서비스에 대한 상기 클라이언트 및 하나 이상의 서버간의 통신 시퀀스이며, 상기 서버로부터의 각 응답은 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구를 포함하고, 상기 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ―에 있어서,① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 개시하는 상기 클라이언트와,② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 상태 검출 로직과,③ 상기 검출에 응답하여, 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 검색 로직(search logic)과,④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로 삽입하는 변환기 로직과,⑤ 상기 클라이언트로 상기 출력을 전송하는 전송 로직 ― 상기 상태 정보는 상기 대화가 지속될 동안 보존되고 모든 서비스로 제공된다 ―을 포함하는상태 정보 보존 컴퓨터 시스템.
- 제 14 항에 있어서,상기 변환기 로직은 상기 서버에 의해 실행되며, 상기 전송 로직은 삽입된 상태 정보와 함께 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하는 상태 정보 보존 컴퓨터 시스템.
- 제 15 항에 있어서,상기 서버에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 로직은 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 14 항에 있어서,상기 전송 로직은 삽입된 상태 정보를 갖지 않는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하며, 상기 서버는 실행을 위해 상기 변환기 로직을 상기 클라이언트로 동적으로 다운로드하는 상태 정보 보존 컴퓨터 시스템.
- 제 17 항에 있어서,상기 클라이언트에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 로직은 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 14 항에 있어서,상기 클라이언트는 삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 제 2 연결 어구를 선택하며,상기 변환기 로직은 상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련 제 2 서비스를 호출하며, 상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내에서 상기 상태 정보를 식별하고 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 14 항에 있어서,상기 상태 정보는 특정 대화와 상호관련된 상태 정보 보존 컴퓨터 시스템.
- 제 14 항에 있어서,상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜이고, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일 및 공통 게이트웨이 인터페이스 프로그램중 하나에 대한 하이퍼링크인 상태 정보 보존 컴퓨터 시스템.
- 제 21 항에 있어서,사전설정된 기준에 따라 상기 서비스로부터 출력된 상기 하이퍼링크 및 데이타중 하나를 필터링하는 필터 로직을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
- 제 21 항에 있어서,사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 통합 로직(integration logic)을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
- 제 21 항에 있어서,상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보 보존 컴퓨터 시스템.
- 제 21 항에 있어서,상기 삽입 단계는, 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
- 제 21 항에 있어서,상기 삽입 단계는, CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며, 상기 삽입 단계는 변환기 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
- 상태 정보 비보존 프로토콜을 통해 클라이언트와 네트워크로 연결된 하나 이상의 서버로부터 서비스를 요구하는 클라이언트간의 대화가 진행되는 동안 상태 정보를 보존하는 컴퓨터 시스템 ― 상기 서비스는 상기 클라이언트가 요구할 수 있는 하나 이상의 데이타 및 프로그램을 포함하며, 상기 대화는 상기 서비스에 대한 상기 클라이언트 및 하나 이상의 서버간의 통신 시퀀스이며, 상기 서버로부터의 각 응답은 상기 서비스에 대한 다른 요구를 가능하게 하는 하나 이상의 연결 어구를 포함하고, 상기 클라이언트는 상기 대화를 지속하기 위해 상기 연결 어구중 하나를 호출해야 한다 ― 에 있어서,① 상기 상태 정보 비보존 프로토콜을 사용하여 상기 서버와의 상기 대화를 개시하는 상기 클라이언트와,② 서비스에 대한 상기 요구가 상태 정보의 보존을 요구하는 시기를 검출하는 상태 검출 수단과,③ 상기 검출에 응답하여, 상기 서비스로부터의 출력내의 모든 연결 어구를 식별하는 검색 수단과,④ 모든 식별된 연결 어구내에 상기 상태 정보를 반복적으로 삽입하는 변환기 수단과,⑤ 상기 클라이언트로 상기 출력을 전송하는 전송 수단 ― 상기 상태 정보는 상기 대화가 지속될 동안 보존되고 모든 서비스로 제공된다 ― 을 포함하는상태 정보 보존 컴퓨터 시스템.
- 제 27 항에 있어서,상기 변환기 수단은 상기 서버에 의해 실행되며, 상기 전송 수단은 삽입된 상태 정보를 갖는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하는 상태 정보 보존 컴퓨터 시스템.
- 제 28 항에 있어서,상기 서버에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 수단은 상기 모든 식별된 연결 어구내에 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 27 항에 있어서,상기 전송 수단은 삽입된 상태 정보를 갖지 않는 상기 출력을 상기 서버로부터 상기 클라이언트로 전송하며, 상기 서버는 실행을 위해 상기 변환기 수단을 상기 클라이언트로 동적으로 다운로드하는 상태 정보 보존 컴퓨터 시스템.
- 제 30 항에 있어서,상기 클라이언트에 결합되어 상기 상태 정보의 적어도 일부분을 저장하는 메모리를 더 포함하며, 상기 변환기 수단은 상기 상태 정보의 일부분을 나타내는 인덱스를 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 28 항에 있어서,상기 클라이언트는 삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터 제 2 연결 어구를 선택하며,상기 변환기 수단은 상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고, 복구된 상태 정보로 관련 제 2 서비스를 호출하며, 상기 제 2 서비스로부터의 출력과 관련된 모든 연결 어구내에 상기 상태 정보를 식별하고 삽입하는 상태 정보 보존 컴퓨터 시스템.
- 제 32 항에 있어서,사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 통합 수단을 더 포함하는 상태 정보 보존 컴퓨터 시스템.
- 제 27 항에 있어서,상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일 및 공통 게이트웨이 인터페이스 프로그램중 하나에 대한 하이퍼링크인 상태 정보 보존 컴퓨터 시스템.
- 제 34 항에 있어서,상기 삽입 단계는, HTML 파일에 대한 요구인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하는 상태 정보 보존 컴퓨터 시스템.
- 제 34 항에 있어서,상기 삽입 단계는, 식별된 연결 어구 및 인자로서 전달된 상기 상태 정보로 CGI 프로그램의 호출인 상기 식별된 연결 어구를 변경하는 단계를 더 포함하며, 상기 삽입 단계는 CGI 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
- 제 34 항에 있어서,상기 삽입 단계는, CGI 프로그램에 대한 호출인 식별된 연결 어구를 변경하여 상기 식별된 연결 어구와, 상기 CGI 프로그램과 연관된 다수의 인자를 나타내는 인자 카운터와, 인자로서 전달된 상태 정보로 CGI 변환기 프로그램을 호출하는 단계를 더 포함하며, 상기 삽입 단계는 변환기 프로그램에 의해 수행되는 상태 정보 보존 컴퓨터 시스템.
- 하나 이상의 서버로부터 서비스를 요구하는 클라이언트와 상태 정보 비보존 프로토콜을 통해 대화하는 동안 상태 정보를 보존하는 컴퓨터화된 방법에 있어서,상기 상태 정보 비보존 프로토콜을 통해, 상태 정보를 포함하는 서비스 요구를 수신하는 단계와,상기 요구에 응답하여, 상기 서비스로부터의 출력 내의 모든 연결 요구를 식별하고 모든 식별된 연결 어구 내에 상기 상태 정보를 반복적으로 삽입하는 단계와,상기 연결 어구 및 삽입된 상태 정보를 포함하는 응답(a response)을 전송하는 단계 ― 상기 연결 어구는 또다른 서비스 요구를 가능하게 하며, 상기 연결 어구 중 하나는 상기 대화가 지속되도록 호출되어야 함 ― 를 포함하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 38 항에 있어서,상기 삽입 단계는 서버에 의해 수행되며, 상기 전송 단계는 상기 삽입 단계에 응답하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 39 항에 있어서,상기 서버에 접속된 메모리 내에 상기 상태 정보의 적어도 일부를 저장하는 단계를 더 포함하며, 상기 삽입 단계는 상기 모든 식별된 연결 어구 내에 상기 상태 정보의 상기 일부를 나타내는 인덱스를 삽입하는 단계를 포함하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 38 항에 있어서,상기 전송 단계에 응답하여, 상기 삽입 단계를 수행하기 위해 컴퓨터 프로그램 코드를 상기 클라이언트로 동적으로 다운로딩하는 단계를 더 포함하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 41 항에 있어서,상기 클라이언트에 접속된 메모리 내에 상기 상태 정보의 적어도 일부를 저장하는 단계를 더 포함하며, 상기 삽입 단계는 상기 상태 정보의 상기 일부를 나타내는 인덱스를 삽입하는 단계를 포함하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 38 항에 있어서삽입된 상태 정보를 갖는 상기 모든 식별된 연결 어구로부터의 제 2 연결 어구와 연관된 제 2 요구를 수신하는 단계와,상기 제 2 연결 어구로부터 상기 상태 정보를 복구하고 복구된 상태 정보로써 연관된 제 2 서비스를 호출하는 단계와,상기 제 2 서비스로부터의 출력과 연관된 모든 연결 어구 내에 반복적으로 상기 상태 정보를 식별하고 삽입하는 단계를 더 포함하는상태 정보를 보존하는 컴퓨터화된 방법.
- 제 38 항에 있어서,상기 클라이언트 및 상기 서버는 월드 와이드 웹을 통해 네트워크로 연결되며, 상기 상태 정보 비보존 프로토콜은 하이퍼텍스트 전송 프로토콜(hypertext transfer protocol)이며, 상기 연결 어구는 하이퍼텍스트 마크업 언어 파일(hypertext markup language files) 및 공통 게이트웨이 인터페이스(common gateway interface) 프로그램중 하나에 대한 하이퍼링크인상태 정보를 보존하는 컴퓨터화된 방법.
- 제 44 항에 있어서,사전설정된 기준에 따라, 상기 서비스로부터 출력되는 상기 하이퍼링크 및 데이타중 하나를 필터링하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
- 제 44 항에 있어서,사전설정된 기준에 따라, 상기 하이퍼링크 및 데이타중 하나를 상기 서비스로부터의 상기 출력에 부가하는 단계를 더 포함하는 상태 정보를 보존하는 컴퓨터화된 방법.
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)
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)
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 | コンピュータシステム |
-
1996
- 1996-06-07 US US08/660,633 patent/US5961601A/en not_active Expired - Lifetime
-
1997
- 1997-04-24 KR KR1019970015267A patent/KR100288490B1/ko not_active IP Right Cessation
- 1997-05-16 CN CN97111570A patent/CN1108682C/zh not_active Expired - Lifetime
- 1997-05-22 EP EP97303519A patent/EP0812088A3/en not_active Withdrawn
- 1997-05-30 JP JP14176297A patent/JP3290377B2/ja not_active Expired - Lifetime
- 1997-06-02 CA CA002206685A patent/CA2206685C/en not_active Expired - Lifetime
- 1997-06-06 TW TW086107800A patent/TW349305B/zh not_active IP Right Cessation
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 |