KR19980703861A - 웹 브라우저 애플리케이션의 성능 향샹을 위한 방법 및 장치, 웹 브라우저 애플리케이션의 성능 향상을 위한 컴퓨터 프로그램 제품, 클라이언트/서버 시스템의 성능 향상 장치 - Google Patents

웹 브라우저 애플리케이션의 성능 향샹을 위한 방법 및 장치, 웹 브라우저 애플리케이션의 성능 향상을 위한 컴퓨터 프로그램 제품, 클라이언트/서버 시스템의 성능 향상 장치 Download PDF

Info

Publication number
KR19980703861A
KR19980703861A KR1019970707261A KR19970707261A KR19980703861A KR 19980703861 A KR19980703861 A KR 19980703861A KR 1019970707261 A KR1019970707261 A KR 1019970707261A KR 19970707261 A KR19970707261 A KR 19970707261A KR 19980703861 A KR19980703861 A KR 19980703861A
Authority
KR
South Korea
Prior art keywords
server
client
web browser
computer
data stream
Prior art date
Application number
KR1019970707261A
Other languages
English (en)
Other versions
KR100289520B1 (ko
Inventor
비틴저리드리차드
프렌켈미셀레비
호우셀배론코넬리어스
린드퀴스트데이비드브루스
Original Assignee
포만제프리엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만제프리엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만제프리엘
Publication of KR19980703861A publication Critical patent/KR19980703861A/ko
Application granted granted Critical
Publication of KR100289520B1 publication Critical patent/KR100289520B1/ko

Links

Classifications

    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따르면, 제 1 컴퓨터상에 상주하며, 이 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 서버 애플리케이션과 통신하는 클라이언트 애플리케이션을 구비한 클라이언트/서버 시스템의 성능을 향상시키는 방법, 장치, 프로그램 제품이 개시된다. 상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행된다. 본 발명에 따른 방법, 장치, 프로그램 제품은 외부 통신 링크상에 통신을 전송하기 이전에 원격지의 클라이언트에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 인터셉트하고 클라이언트에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환한다. 상기 변환된 통신은 상기 외부 통신 링크를 통해 전송되고 상기 외부 통신 링크를 통해 전송된 통신으로부터 수신된다. 외부 통신 링크를 통해 수신되는 통신은 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환되고 원격지의 클라이언트에 의해 개시되는 통신은 클라이언트/서버 독립 통신 프로토콜의 서버에 제공된다. 차분 기법, 캐쉬 기법, 또는 프로토콜 감축 기법은 외부 통신 링크를 통한 성능을 향상시킨다. 애플리케이션들은 웹 브라우저 및 웹 서버일 수 있으며 무선 통신 링크를 통해 통신가능하다.

Description

클라이언트 및 서버 애플리케이션을 구비한 클라이언트/서버 시스템의 성능을 향상시키기 위한 방법, 장치, 프로그램 제품
최근 정보 고속화(information superhighway)에 대한 여론 및 중요성이 크게 대두되었으며 인터넷(Internet)을 대중 통신 매체로 채택하였다. 또한, 이러한 인터넷이 다중 네트워크를 거쳐 통신 및 대화하기 위한 실행가능한 매체로서 광범위하게 인식됨에 따라, 컴퓨터 네트워크들간의 대화를 위해 다수의 사용자에 의해 설정되도록 설계된 인터넷 표준 프로토콜들이 생겨났다.
이러한 인터넷에 대한 사례로는 인터넷 클라이언트(브라우저)가 인터넷 서버와 통신하는 클라이언트 서버 관계를 들 수 있다. 인터넷에 대한 액세스를 보다 많이 제공하기 위해, 클라이언트 및 서버에 의해 사용되는 통신 프로토콜 및 언어는 표준화되었다. 이들 프로토콜은 클라이언트와 서버 사이를 통신하는데 사용되는 통신 프로토콜인 HTTP(Hyper-Text Transfer Protocol)와 TCP/IP를 포함하며, TCP 부분은 컴퓨터 또는 애플리케이션들 사이를 통신하기 위한 이동 지정 프로토콜(transport specific protocol)이다. 클라이언트 및 서버가 통신하는 HTML(Hyper-Text Markup Language)로 일컬어지는 언어도 또한 표준화된다. 이들 프로토컬 및 언어는 머신(machine)과 독립적이고, 전송 정보에 대해 최대의 효율보다 떨어지는 접속-프로토콜을 이용하기 때문에, 각각의 트랜잭션(transaction)은 모두 자체 포함된다. 따라서, 예를 들어, 클라이언트로부터의 각각의 메시지는 브라우저의 성능에 대한 정보를 포함하며, 통신을 완료하기 위해 임의의 다른 통신과는 독립적이다. 이와 같이 클라이언트와 서버간의 통신을 자체 구비한 특징은 스테이트리스(stateless) 통신으로 일컬어지며, 주어진 통신을 위해 클라이언트와 서버 사이에 전송되는 데이타의 양을 증대시킨다.
월드 와이드 웹(World Wide Web)의 클라이언트/서버 애플리케이션 환경에서, 클라이언트는 사용자 인터페이스로서 기능하는 웹 브라우저일 수 있다. 웹 브라우저는 사용자 요구를 적절한 웹 서버에 전송하고, 웹 서버로부터 반환된 HTML 데이타를 포맷하여 디스플레이한다. 또한, 웹 브라우저는 HTML 데이타를 평가하여, HTML의 데이타에 차후의 브라우저 요구를 필요로 하는 소정의 내장형 하이퍼 링크 구문(hyper-link statements)이 존재하는지를 판정하며, 이러한 브라우저 요구는 브라우저에 의해 개시될 수 있다. 웹 서버는 클라이언트에 대한 서버로서 기능을 수행하고, 웹 브라우저의 요구를 프로세싱하고, 요구된 응답을 HTTP 데이타 스트림의 HTML 데이타의 일부로서 반환한다.
전형적인 월드 와이드 웹(WWW) 통신의 하나의 예로서, 웹 서버로부터 홈 페이지(home page)에 대한 요구를 개시하는 웹 브라우저의 경우는 HTTP, HTML, TCP, 웹 브라우저 및 서버간의 기본 관계를 나타낸다. 웹 브라우저의 사용자가 지정된 웹 사이트로부터의 정보를 요구하면, 웹 브라우저는 예를 들어 홈 페이지일 수 있는 원하는 웹 사이트의 URL(Universal Resource Locator)을 지정하는 웹 서버에 획득된(get) 요구를 전송함으로써 웹 서버와 통신을 개시한다. URL은 웹 사이트의 어드레스로서 기능을 수행하며 인터넷 전체를 통해 단지 하나만 존재한다. 이어서, 웹 서버는 URL에 의해 지정된 홈 페이지에 대응하는 HTML 데이타를 획득하여 이를 웹 브라우저에게 제공할 수 있다. 이러한 동작은 인터넷 웹 서버에 의한 인터넷상의 통신을 또한 포함할 수 있고, 또한 URL은 브라우저가 접속되는 로컬 네트워크에 위치하는 서버를 지정할 수 있다. 이어서, 웹 브라우저는 웹 서버로부터 HTTP 데이타 스트림으로서 수신된 HTML 데이타를 평가하여 아이콘(icon) 또는 이미지와 같은 소정의 내장형 하이퍼 링크가 존재하는지를 판정할 수 있다. 만일 하이퍼 링크가 존재하면 하이퍼 링크의 URL을 지정하는 요구를 개시하여 지정된 데이타를 획득할 수 있다. 그러면, 획득된 데이타는 홈 페이지에 통합되고 사용자에게 디스플레이될 수 있다. 이와 같은 단순한 예의 경우와 같이, 웹 브라우저에 의한 단일 사용자 입력 요구의 결과에 따라 사용자 입력 요구에 대응하는 HTML 데이타의 수신에 응답하여 웹 브라우저에 의해 자동적으로 수행되는 다수의 부가적인 요구가 생성될 수 있다.
도 1에는 인터넷을 기초로 하는 시스템의 기본적인 통신 구조가 도시되어 있다. 도 1에서, 웹 브라우저(10)는 통신 링크(15)를 통해 웹 서버(20)와 통신한다. 이러한 통신 링크는 통상적으로 근거리망 접속, 광역망 접속, 전화선을 통한 접속 또는 이들의 조합이다. 웹 브라우저(10)는 TCP/IP를 이용하여 웹 서버(20)와 통신한다. 대부분의 인터넷 통신에 있어서, 웹 브라우저는 웹 브라우저와 웹 서버 사이의 TCP/IP 링크를 통해 웹 브라우저와 웹 서버 사이로 전송되는 일반적인 통신 프로토콜인 HTTP를 이용하여 웹 서버와 통신한다. 전술한 바와 같이, 웹 브라우저(10)와 웹 서버(20) 사이에 전송되는 실제 데이타는 HTTP 데이타 오브젝트(예를 들어, HTML 데이타)이다. 웹 서버(20)는 다수의 웹 브라우저로부터 웹 브라우저 통신을 수신하고 이들을 적절한 서버에 라우팅하는 프락시(proxy)일 수 있다.
웹 브라우저/웹 서버, 이들의 공통적인 정보, 전송 프로토콜, HTML 및 HTTP의 대중화로 인해 네트워크의 정보 액세스에 대한 범용 인터페이스와 같은 웹 기술이 급격히 보편화되었다. 또한, 웹 브라우저와 웹 서버간의 통신에 대한 프로토콜 및 언어가 표준화됨에 따라, 사용자가 네트워크 정보를 액세스하기 위해 Netscape NavigatorTM, NCSA MosaicTM, WebExplorerTM또는 임의의 다른 웹 브라우저를 웹 브라우저로서 사용하더라도 통신 프로토콜 및 언어는 동일하다. 따라서, HTTP에 의해 정의된 CGI(Common Gateway Interface)를 이용함으로써 인터넷의 접속과 웹 애플리케이션 서버의 용이한 기록을 조합한 웹 브라우저에 대한 대량 설정된 사용자 베이스로 인해, 다수의 부류의 형태를 기초로 한 애플리케이션에 매우 적합한 웹 기술이 구현된다.
최근 인터넷이 대중화되고 보편화됨과 동시에 이동 컴퓨터도 또한 크게 일반화되었다. 랩탑, 노트북, PDA/PCA(Personal Digital/Communication Assistants) 및 다른 휴대용 장치의 사용 증가로 인해 무선 통신의 수요가 급격히 증가되었다. 그렇지만, 무선 광역망, 셀룰라 통신 및 패킷 무선을 웹 문맥(web context)에 사용하는 경우 여러가지 공통적인 문제점들이 발생되었다. 통신 바이트당 고비용과, 낮은 응답 시간과, 낮은 대역폭과, 낮은 신뢰성은 모두 월드 와이드 웹(world wide web)의 스테이트리스 통신 프로토콜에 대한 무선 기술의 사용에서 저해 요인이다. 또한, 웹 프로토콜은 스테이트리스이므로, 통신을 자체적으로 구비하지 않으면, 요구당 데이타의 양과 무선 접속을 통해 전송된 통신 요구의 수는 필요로 하는 것보다 많다. 따라서, 보편적으로 웹 기술이 발전함에 따라 무선 기술의 문제점이 더욱 저해되기 때문에, 무선 기술 또는 소정의 저속 통신 기술을 웹 기술과 조합하는 것은 비실용적이다
본 발명은 웹 브라우저(web browser) 및 웹 서버(web server)와 같은 클라이언트 서버 애플리케이션들(client server applications)간의 통신에 관한 것이다. 특히, 본 발명은 한쪽 컴퓨터가 클라이언트 애플리케이션을 실행하고 다른쪽 컴퓨터가 서버 애플리케이션을 실행하는 두개의 컴퓨터들 사이에 저속 또는 무선 통신 링크를 통한 통신 수행에 관한 것이다.
도 1은 전형적인 웹 브라우저/웹 서버 시스템의 블럭도이다.
도 2는 클라이언트 인터셉트 및 서버 인터셉트를 이용하는 본 발명의 하나의 실시예에 따른 웹 브라우저/웹 서버 시스템의 블럭도이다.
도 3은 코히어런트 캐쉬 시스템을 이용하여 본 발명의 바람직한 실시예의 클라이언트측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 4는 코히어런트 캐쉬 시스템을 이용하여 본 발명의 바람직한 실시예의 클라이언트측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 5는 코히어런트 캐쉬 시스템을 이용하여 본 발명의 바람직한 실시예의 서버측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도
도 6은 코히어런트 캐쉬 시스템을 이용하여 본 발명의 바람직한 실시예의 서버측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 7은 상이한 데이타 전송 시스템을 이용하여 본 발명의 바람직한 실시예의 클라이언트측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 8은 상이한 데이타 전송 시스템을 이용하여 본 발명의 바람직한 실시예의 클라이언트측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 9는 상이한 데이타 전송 시스템을 이용하여 본 발명의 바람직한 실시예의 서버측 인터셉트 모듈에 의해 수행되는 동작을 도시한 흐름도이다.
도 10은 상이한 데이타 전송 시스템을 이용하여 본 발명의 바람직한 실시예의 서버측 인터셉트에 의해 수행되는 동작을 도시한 흐름도이다.
도 11은 가상 소켓을 이용하는 본 발명의 하나의 실시예의 블럭도이다.
도 12는 가상 소켓을 이용하는 본 발명의 하나의 실시예에 따른 클라이언트측 인터셉트 모듈 및 서버측 인터셉트 모듈의 블럭도이다.
도 13은 가상 소켓을 이용하여 본 발명의 하나의 실시예에 따른 클라이언트측 인터셉트 모듈 또는 서버측 인터셉트 모듈의 소켓 관리자에 의해 수행되는 동작을 도시한 흐름도이다.
도 14는 가상 소켓을 이용하여 본 발명의 하나의 실시예의 클라이언트측 인터셉트 함수에 의해 수행되는 동작을 도시한 흐름도이다.
도 15는 가상 소켓을 이용하여 본 발명의 하나의 실시예의 서버측 인터셉트 함수에 의해 수행되는 동작을 도시한 흐름도이다.
도 16-1은 가상 소켓을 이용하여 본 발명의 하나의 실시예에 따른 가상 생성 동작을 도시한 흐름도이다.
도 16-2는 가상 소켓을 이용하는 본 발명의 하나의 실시예에 따른 가상 전송 동작을 도시한 흐름도이다.
도 16-3은 가상 소켓을 이용하는 볼 발명의 하나의 실시예에 따른 가상 수신 동작을 도시한 흐름도이다.
도 16-4는 가상 소켓을 이용하는 본 발명의 하나의 실시예에 따른 가상 선택 동작을 도시한 흐름도이다.
도 17-1은 가상 소켓을 이용하는 본 발명의 하나의 실시예에 따른 가상 플러쉬 동작을 도시한 흐름도이다.
도 17-2는 가상 소켓을 이용하는 본 발명의 하나의 실시예에 따른 가상 폐쇄 동작을 도시한 흐름도이다.
전술한 측면에 있어서, 본 발명의 한 목적은 무선 통신과 같은 저속 통신 환경에서 설치된 사용자 기본 월드 와이드 웹(WWW) 기법을 이용하는 데 있다.
본 발명의 다른 목적은 웹 브라우저 애플리케이션 또는 웹 서버 애플리케이션을 변형시키지 않고도 저속 혹은 무선 통신 시스템에서 기존의 통신 프로토콜 및 언어를 사용하는 데 있다.
본 발명의 또 다른 목적은 필요한 통신 양을 감소시키는 외부 통신 링크를 통한 통신 방법을 제공하여 통신 시스템의 성능을 향상시키는데 있다.
본 발명의 전술한 점 및 다른 목적의 측면에서, 본 발명은 제 1 컴퓨터상에 상주하며 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션과 통신하는 웹 브라우저 애플리케이션의 성능을 향상시키는 방법을 제공하는 데 있다. 제 1 컴퓨터의 웹 브라우저 애플리케이션과 제 2 컴퓨터의 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행된다. 본 발명의 방법에 대한 한 실시예는 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 외부 통신 링크에 전송하기 이전에 인터셉트하는 단계를 포함한다. 웹 브라우저에 의해 개시되어 인터셉트된 HTTP 데이타 스트림은 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환되고 변환된 웹 브라우저에 의해 개시된 통신은 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 제 2 컴퓨터로 전송된다. 제 2 컴퓨터는 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 수신하고, 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환시킴으로써 웹 브라우저로부터의 통신에 대응하는 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로부터 외부 통신 링크를 통해 재구성한다. 웹 브라우저에 의해 개시되는 통신은 HTTP 데이타 스트림으로서 웹 서버에 제공된다.
본 발명의 다른 실시예에서, 웹 브라우저에 의해 개시되는 변환된 통신은 무선 통신 링크를 통해 전송된다.
제 1 컴퓨터에 상주하는 캐쉬를 이용하는 본 발명의 다른 특징은 웹 서버에 대해 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하도록, 제 1 컴퓨터에 상주하는 캐쉬내의 웹 서버에 대해 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 의해 수신되는 HTTP 데이타 스트림을 저장하는 단계 및 수단을 포함한다. 웹 브라우저에 의해 개시되는 통신들은 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하도록 조회된다. 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하면 클라이언트 캐쉬 엔트리는 웹 브라우저에 의해 개시되는 통신에 응답하여 HTTP 데이타 스트림으로서 웹 브라우저에 제공된다.
본 발명의 또 다른 특징은 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구에 관련한 사용자 정의 정보를 저장하는 단계 및 수단을 포함한다. 웹 브라우저에 의해 개시되는 통신들은 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는지를 판정하도록 조회되고, 저장되는 사용자 정의 정보는 웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응하는 경우, 웹 브라우저에 의해 개시되는 통신에 응답하여 HTTP 데이타 스트림으로서 웹 브라우저에 제공된다.
시간 코히어런트 캐쉬 기법을 이용하는 본 발명의 또 다른 실시예는 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리의 생성 시각을 저장하고, 웹 브라우저가 정보를 요구하기 이전에 사전결정된 클라이언트 코히어런시 시간 간격내에서 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하도록 클라이언트 캐쉬 엔트리 시각 기록을 평가하는 단계 및 수단을 포함한다. 웹 브라우저가 정보를 요구하기 이전에 사전결정된 클라이언트 코히어런시 시간 간격내에서 클라이언트 캐쉬 엔트리가 생성되어 있는 경우, 클라이언트 캐쉬 엔트리는 웹 브라우저에 의해 개시되는 통신에 응답하여 HTTP 데이타 스트림으로서 웹 브라우저에 제공된다. 클라이언트 캐쉬 엔트리는 또한 웹 브라우저의 다수의 인스탄스를 통해 유지될 수 있다.
본 발명의 또 다른 실시예는 브라우저에 의해 개시되는 통신에 응답하여 웹 서버로부터 수신된 HTTP 데이타 스트림이 제 2 컴퓨터에 상주하는 캐쉬에 저장되어 서버 요구 캐쉬 엔트리를 생성시키는 서버 캐쉬를 포함한다. 웹 브라우저에 의해 개시되는 통신은 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 캐쉬에 사전에 저장되어 있는지를 판정하도록 조회된다. 서버 캐쉬 엔트리가 존재하는 경우, 브라우저에 의해 개시되는 통신에 관련한 서버 캐쉬 엔트리는 클라이언트/서버 지정 통신 프로토콜로 변환되고, 외부 통신 링크를 통해 제 1 컴퓨터에 클라이언트/서버 지정 데이타 스트림으로서 전송된다. 제 1 컴퓨터는 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 획득하고, 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환시킴으로써 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터, 서버 요구 엔트리에 대응하는 HTTP 데이타 스트림을 재구성한다. 웹 브라우저에 의해 요구되는 정보에 대응하는 서버 요구 캐쉬 엔트리는 HTTP 데이타 스트림으로서 웹 브라우저에 제공된다.
본 발명의 캐쉬 기법의 또 다른 실시예는 제 2 컴퓨터가 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에서 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하는 단계 및 수단과, 사전결정된 클라이언트 코히어런시 시간 간격내에서 서버 요구 캐쉬 엔트리가 생성된 경우, 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계 및 수단을 포함한다. 또 다른 실시예는 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 단계 및 수단을 포함한다. 제 2 컴퓨터가 웹 브라우저에 의해 개시되는 통신을 수신했을때와 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성된 시기 사이의 시간 간격은 엔트리 수명 데이타를 제공하도록 산출된다. 두 캐쉬 엔트리가 동일한 경우, 외부 통신 링크상에서 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리의 엔트리 수명 데이타를 포함하는 코히어런트 엔트리 응답은 제 1 컴퓨터로 전송된다. 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리 시각 기록은 제 1 컴퓨터의 현재 시각으로부터 코히어런트 엔트리 응답으로부터 수신된 엔트리 수명 데이타를 감산함으로써 갱신된다.
외부 통신 링크상의 데이타를 감소시키기 위해 차분화하는 단계 및 수단을 포함하는 본 발명의 한 실시예에서, 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI) 요구에 대응한다. 인터셉트된 CGI 요구는, 서버 CGI 기본 형태를 제공하도록 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하도록 조회된다. 공통 게이트웨이 인터페이스(CGI)에 대한 요구인 브라우저에 의해 개시되는 통신에 응답하여 웹 서버로부터 수신되는 HTTP 데이타 스트림은 서버 기본 캐쉬 엔트리를 생성하도록 제 2 컴퓨터에 상주하는 캐쉬에 저장되며, CGI에 대한 요구인 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 제공될 HTTP 데이타 스트림은 클라이언트 기본 캐쉬 엔트리를 생성하도록 제 1 컴퓨터에 상주하는 캐쉬에 저장된다. 인터셉트된 CGI 요구에 응답하여 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림은 외부 통신 링크에 HTTP 데이타 스트림을 전송하기 이전에 인터셉트된다. 인터셉트되는 CGI 응답은 인터셉트되는 CGI 응답과 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하도록 서버 CGI 기본 형태와 비교되고, CGI 차분 데이타는 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 제 1 컴퓨터의 웹 브라우저에 전송된다. 제 2 컴퓨터에 의해 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림은 제 1 컴퓨터에 의해 획득되며, 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림은 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록 외부 통신 링크를 통해 수신된 CGI 차분 데이타와 클라이언트 CGI 기본 형태를 조합함으로써 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성된다. 웹 서버에 의해 개시되는 통신은 HTTP 데이터 스트림으로서 웹 브라우저에 제공된다.
본 발명의 차분화 측면의 기본 재설정 실시예는 서버 CGI 기본 형태가 서버 CGI 기본 형태와 동일한지를 판정하고, 서버 CGI 기본 형태와 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 웹 브라우저에 전송한다. 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림은 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 외부 통신 링크를 통해 수신되는 서버 CGI 기본 형태와 CGI 차분 데이타를 조합함으로써 외부 통신 링크를 통해 수신되는 클라이언트/서버 지정 데이타 스트림으로부터 재구성된다. CGI 요구에 대응하는 클라이언트 CGI 기본 형태는 수신된 서버 CGI 기본 형태를 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 갱신된다.
본 발명의 다른 측면에서, 서버 CGI 기본 형태는 또한 서버 CGI 기본 형태와 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정함으로써 갱신될 수 있다. CGI 차분 데이타가 더 크다고 판정되면, CGI 요구에 대응하는 서버 CGI 기본 형태는 웹 서버로부터 수신된 CGI 응답을 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 갱신되고, 다음의 비교에는 제 1 컴퓨터로 전송되는 상기 갱신된 서버 CGI 기본 형태가 이용된다.
본 발명의 프로토콜 감축의 측면에서, 제 1 컴퓨터와 제 2 컴퓨터 사이에는 외부 통신 링크를 통해 지속적인 접속이 확립된다. 지속적인 접속은 모든 웹 브라우저에 의해 개시되는 통신들이 완료될 때까지 유지된다. 복수의 웹 브라우저에 의해 개시되는 통신들은 지속적인 접속이 유지되는 동안 인터셉트되어 외부 통신 링크상에 멀티플렉싱된다. 다음, 클라이언트/서버 지정 데이타 스트림은 디멀티플렉싱되어 복수의 HTTP 데이타 스트림을 생성하고, 생성된 복수의 HTTP 데이타 스트림은 웹 서버에 제공된다.
본 발명의 헤더 축소의 측면은 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 외부 통신 링크를 통해 제 2 컴퓨터에 제공하는 단계 및 수단과, 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 저장하여 브라우저 헤더 정보를 제공하는 단계 및 수단을 포함한다. 제 1 컴퓨터는 웹 브라우저에 의해 개시되는 통신으로부터 컴퓨터 지정 정보를 제거하며, 제 2 컴퓨터는 저장된 브라우저 헤더 정보와 클라이언트/서버 지정 데이타 스트림을 조합하여 HTTP 데이타 스트림을 생성한다.
본 발명의 다른 특징에 있어서, 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림은 HTTP 데이타 스트림을 외부 통신 링크에 전송하기 이전에 캡쳐되고, HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환된다. 변환된 웹 서버에 의해 개시되는 통신은 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 웹 브라우저에 전송된다. 제 1 컴퓨터는 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 획득하고, 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재건한다. 웹 서버에 의해 개시되는 통신은 HTTP 데이타 스트림으로서 웹 브라우저에 제공된다.
본 발명의 헤더 축소 측면의 또 다른 실시예는 제 2 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 외부 통신 링크를 통해 제 1 컴퓨터에 제공하는 단계 및 수단과, 제 2 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 특성 정보를 저장하여 서버 헤더 정보를 제공하는 단계 및 수단을 포함한다. 제 2 컴퓨터는 웹 서버에 의해 개시되는 통신으로부터 컴퓨터 지정 정보를 제거하며, 제 1 컴퓨터는 서버 헤더 정보와 클라이언트/서버 지정 데이타 스트림을 조합하여 HTTP 데이타 스트림을 생성한다.
본 발명의 프로토콜 감축 측면의 또 다른 실시예에서, 제 1 컴퓨터와 제 2 컴퓨터 사이에는 외부 통신 링크를 통해 지속적인 접속이 확립된다. 지속적인 접속은 모든 웹 서버에 의해 개시되는 통신들이 완료될 때까지 유지된다. 복수의 웹 서버에 의해 개시되는 통신들은 지속적인 접속이 유지되는 동안 인터셉트되어 외부 통신 링크상에 멀티플렉싱된다. 클라이언트/서버 지정 데이타 스트림은 디멀티플렉싱되어 복수의 HTTP 데이타 스트림을 생성하며, 복수의 HTTP 데이타 스트림은 웹 서버에 제공된다.
본 발명의 또 다른 실시예는, 제 1 컴퓨터상에 상주하며 이 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 서버 애플리케이션과 통신하는 클라이언트 애플리케이션을 구비한 클라이언트/서버 시스템의 성능을 향상시키는 방법을 포함한다. 클라이언트 애플리케이션 및 서버 애플리케이션은 클라이언트와 서버 사이의 통신을 위해 클라이언트/서버 독립 통신 프로토콜(즉, 스테이트리스(stateless))을 이용하며, 제 1 컴퓨터의 클라이언트 애플리케이션과 제 2 컴퓨터의 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행된다. 이 방법은 원격지의 클라이언트에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 외부 통신 링크에 전송하기 이전에 인터셉트하는 단계 및 수단을 포함한다. 클라이언트에 의해 개시되는 인터셉트된 통신들은 제 2 클라이언트/서버 지정 통신 프로토콜로 변환되어 외부 통신 링크를 통해 전송된다. 제 2 컴퓨터는 외부 통신 링크를 통해 전송된 통신들을 수신하고 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환한다. 원격지의 클라이언트에 의해 개시되는 통신은 클라이언트/서버 독립 통신 프로토콜로 서버에 제공된다. 본 발명의 또 다른 측면은 서버에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 외부 통신 링크에 전송하기 이전에 인터셉트하는 단계 및 수단을 포함한다. 인터셉트된 통신들은 제 2 클라이언트/서버 지정 통신 프로토콜로 변환되어 외부 통신 링크를 통해 전송된다. 이러한 통신들은 제 1 컴퓨터에 의해 외부 통신 링크로부터 수신되어 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환된다. 서버에 의해 개시되는 통신은 클라이언트/서버 독립 통신 프로토콜로 원격지의 클라이언트에 제공된다.
본 발명의 통상의 지식을 가진 자라면 이해하듯이, 전술한 본 발명의 특징들은 컴퓨터에 의해 판독가능한 프로그램 수단을 구비한 장치 또는 프로그램 제품으로 제공될 수 있다.
이하, 본 발명은 본 발명의 바람직한 실시예가 도시된 첨부된 도면을 참조하여 더욱 상세히 기술될 것이다. 그렇지만, 본 기술 분야에 통상의 지식을 가진 자라면, 본 발명은 본 발명을 완전히 이해하도록 제공된 본 발명의 실시예 대신 본 발명의 영역을 벗어나지 않은 범위내에서 다수의 다른 형태로 제공될 수 있으며, 본 명세서에 개시된 실시예로 한정되지 않음을 이해할 것이다. 동일한 참조 부호는 동일한 구성 요소를 나타낸다.
도 3 내지 도 10과 도 13 내지 도 17-2는 본 발명에 따른 방법 및 시스템을 도시한 흐름도이다. 예시된 흐름도의 각각의 블럭과 예시된 흐름도의 블럭의 조합들은 컴퓨터 프로그램 인스트럭션에 의해 구현될 수도 있음을 이해하여야 한다. 이들 컴퓨터 프로그램 인스트럭션은 컴퓨터 또는 다른 프로그램가능한 장치상에서 실행하는 인스트럭션들이 흐름도의 블럭(들)에 지정된 함수를 실행하는 수단을 생성하도록 머신(machine)을 생성하는 컴퓨터 또는 다른 프로그램가능한 장치상으로 로딩될 수 있다. 이들 컴퓨터 프로그램 인스트럭션은 컴퓨터 또는 다른 프로그램가능한 장치를 지정한 방식으로 함수에 지정하는 컴퓨터에 의해 판독가능한 메모리에 또한 저장될 수 있으며, 이에 따라 컴퓨터에 의해 판독가능한 메모리에 저장된 인스트럭션은 흐름도의 블럭(들)에 지정된 함수를 실행하는 인스트럭션 수단을 포함하는 제조 물품을 생성시킬 수 있다. 또한, 컴퓨터 또는 다른 프로그램가능한 장치상에서 실행하는 인스트럭션들이 흐름도의 블럭(들)에 지정된 함수를 실행하는 단계들을 제공하기 위해, 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 다른 프로그램가능한 장치에서 일련의 동작 단계들을 수행하여 컴퓨터에 의해 실행되는 프로세스를 생성하는 컴퓨터 또는 다른 프로그램가능한 장치상으로 로딩될 수 있다.
따라서, 예시된 흐름도의 블럭들은 지정된 함수를 수행하는 수단들의 조합과 지정된 함수를 수행하는 단계들의 조합을 지원한다. 예시된 흐름도의 각각의 블럭과 예시된 흐름도의 블럭의 조합은 지정된 함수 또는 단계를 수행하는 특수 목적의 하드웨어 기반의 컴퓨터 또는 특수 목적의 하드웨어 및 컴퓨터 인스트럭션의 조합에 의해 실행될 수도 있음을 이해하여야 한다.
도 2는 본 발명의 하나의 실시예를 도시한 도면이다. 도 2에 도시된 바와 같이, 웹 브라우저(10)는 클라이언트측 인터셉트 모듈(client-side intercept module: CSI)(30)과 통신한다. 웹 서버(20)는 서버측 인터셉트 모듈(server-side intercept module: SSI)(40)과 통신한다. 이어서, 클라이언트측 인터셉트 모듈(30)은 통신 링크(35)를 통해 서버측 인터셉트 모듈(40)과 통신한다. 웹 브라우저(10)와 클라이언트측 인터셉트 모듈(30)은 제 1 컴퓨터(5)내에 포함될 수 있다. 서버측 인터셉트 모듈(40)과 웹 서버(20)는 제 2 컴퓨터(6)내에 포함될 수 있다. 제 1 컴퓨터(5)와 제 2 컴퓨터(6)는 외부 통신 링크(35)를 통해 통신한다.
바람직하게, 웹 브라우저(10)는 HTTP 및 HTML을 이용하고 인터넷 웹 서버(20)와 통신하는 인터넷 웹 브라우저로서, 인터넷 웹 서버(20)도 HTTP 및 HTML을 또한 사용한다. 동작시, 웹 브라우저(10)는 클라이언트측 인터셉트 모듈(30)에 의해 인터셉트된 HTTP 데이타 스트림을 출력할 수 있다. 클라이언트측 인터셉트 모듈(30)에 의한 HTTP 데이타 스트림의 인터셉트는 클라이언트측 인터셉트 모듈(30)이 127.0.0.1과 같은 127 네트워크 번호를 갖는 IP 어드레스에서 상주하는 TCP/IP의 역 루프 형태(loop-back feature)를 이용함으로써 달성될 수 있다. 이어서, 클라이언트측 인터셉트 모듈(30)은 HTTP 데이타 스트림을 클라이언트/서버 지정 프로토콜로 변경하거나 혹은 변환하고, 클라이언트/서버 지정 데이타 스트림을 외부 통신 링크(35)상으로 전송한다. 서버 사이트 인터셉트 모듈(40)은 클라이언트/서버 지정 데이타 스트림을 수신하고, 웹 브라우저에 의해 개시되는 통신에 대응하는 원래의 HTTP 데이타 스트림을 재구성한다. 이어서, 재구성된 HTTP 데이타 스트림은 웹 서버(20)로 전송된다. 웹 서버(20)는 인터넷 웹 서버의 정규 방식으로 HTTP 데이타 스트림에 응답한다. 본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 웹 서버(20)는 또한 다수의 브라우저가 인터넷에 접속하도록 하는 프락시일 수 있다.
예를 들어, 지정된 URL 홈 페이지에 대한 브라우저 요구에 응답하여 웹 서버(20)가 웹 브라우저(10)에 전송하기 위한 정보를 수신하면, 웹 서버(20)는 통신에 대응하는 HTTP 데이타 스트림을 웹 브라우저(10)로 출력한다. 이러한 웹 서버에 의해 개시되는 통신은 서버측 인터셉트 모듈(40)에 의해 인터셉트되고, 클라이언트/서버에 의해 지정된 데이타 스트림으로 변환된다. 이어서, 웹 서버에 의해 개시된 통신에 대응하는 클라이언트/서버 지정 데이타 스트림은 제 2 컴퓨터로부터 외부 통신 링크(35)를 통해 제 1 컴퓨터로 전송된다. 클라이언트/서버 지정 데이타 스트림은 클라이언트측 인터셉트 모듈(30)에 의해 수신되고, 웹 서버에 의해 개시된 통신에 대응하는 원래의 HTTP 데이타 스트림은 재구성되어 웹 브라우저(10)로 제공된다.
본 발명의 지정한 실시예에 있어서, 외부 통신 링크(35)는 무선 통신 링크이다. 이 경우, 사용자에게 허용가능한 성능을 갖춘 시스템을 제공하기 위해, 외부 통신 링크(35)상의 통신의 크기를 통신 링크(35)상으로 전송되는 통신 주파수 및 정보의 크기로 줄이는 것이 바람직하다. 따라서, 본 발명은 캐쉬 기법, 차분 기법 및 프로토콜 감축 기법을 이용하여 외부 통신 링크(35)상에서 필요로 하는 통신의 크기를 최소화할 수 있다. 이러한 기법들은 HTTP의 스테이트리스 프로토콜(stateless protocol) 또는 확률 프로토콜(stochastic protocol)을 클라이언트/서버 지정 프로토콜로 변환함으로써 구현되며, 클라이언트 서버 지정 프로토콜은 클라이언트 및 서버에 대해 지정된 정보를 이용하여 통신의 크기 및 빈도를 줄일 수 있다.
본 발명은 단일 웹 브라우저 애플리케이션 및 단일 웹 서버 애플리케이션에 대해 기술되지만, 본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 본 발명의 이점 및 장점들은 단일 웹 서버와 관련된 다수의 웹 브라우저를 이용함으로써 또한 달성될 수 있다. 따라서, 본 발명의 방법, 장치 및 프로그램 제품은 클라이언트측 인터셉트 모듈 및 이들 클라이언트측 인터셉트 모듈과 각각 통신하는 다수의 브라우저와 함께 웹 서버 또는 웹 프락시의 서버측 인터셉트 모듈과 통신할 수 있다.
본 발명의 하나의 실시예에 있어서, 클라이언트측 인터셉트 모듈(30) 및 서버측 인터셉트 모듈(40)은 캐쉬 저장 능력을 갖는다. 제 1 컴퓨터에 상주하는 클라이언트 캐쉬는 웹 브라우저에 의해 개시된 통신에 응답하여 웹 브라우저에 의해 수신되는 HTTP 데이타 스트림을 저장한다. 제 2 컴퓨터에 상주하는 서버 캐쉬는 브라우저에 의해 개시된 통신에 응답하여 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장한다.
본 발명의 통상의 지식을 가진 자라면 이해하듯이, 제 1 컴퓨터 또는 제 2 컴퓨터에 상주하는 캐쉬는 컴퓨터의 지정 하드웨어 구성을 기초로 하여 소정의 크기를 가질 수 있다. 이들 캐쉬는 통신 URL과, 통신 데이타의 사이클 중복 검사(cyclic redundancy check: CRC)와 같이 통신 내용을 기초로 한 고유의 식별자와, 캐쉬 엔트리가 생성 또는 재생될 때의 시간을 나타내는 저장 날짜 시간(store date time: SDT)과, 통신 데이타를 포함하는 각각의 통신 정보를 저장한다. 따라서, 캐쉬내에 저장된 각각의 통신에 대한 캐쉬 엔트리의 디렉토리가 생성될 수 있다. 또한, 소정의 주어진 하드웨어 구성에서 이용할 수 있는 자원이 한정되어 있기 때문에, 본 기술 분야에 통상의 지식을 가진 자에게 잘 알려진 캐쉬 방안들 중 임의의 방안을 이용하여 제 1 컴퓨터 및 제 2 컴퓨터에 상주하는 캐쉬를 보유할 수 있다. 따라서, 예를 들어, 캐쉬는 새로운 엔트리를 추가할 때 사용자에 의해 정의된 캐쉬 사이즈가 초과되는 경우 가장 오래된 디렉토리 엔트리를 무효화하고, 무효화된 엔트리대신 새로운 엔트리를 추가할 수 있다. 또한, 웹 브라우저 또는 웹 서버 애플리케이션 또는 제 1 또는 제 2 컴퓨터의 전원 사이클의 다수의 인터탄스(instances)상에 캐쉬 엔트리를 보유할 수 있다.
이하, 클라이언트측 인터셉트 모듈(30) 및 서버측 인터셉트 모듈(40)의 동작을 기술한 흐름도인 도 3 내지 도 6을 참조하여 본 발명의 하나의 특징에 따른 캐쉬 구조의 동작이 기술될 것이다.
도 3을 참조하면, 블럭(100)은 클라이언트측 인터셉트 모듈(30)이 웹 브라우저(10)로부터의 요구를 수신한 것을 나타낸다. 이러한 요구는 HTTP 데이타 스트림의 형태를 취할 수 있다. 블럭(105)에서 클라이언트측 인터셉트 모듈(30)은 입력중인 요구의 URL을 검사한다. 클라이언트측 인터셉트 모듈(30)은 URL로부터 웹 브라우저에 의해 개시된 요구에 대응하는 정보가 이전에 제 1 컴퓨터에 상주하는 클라이언트 캐쉬내에 저장되었는지를 판정한다.
URL에 대응하는 정보가 클라이언트 캐쉬에 이전에 저장되지 않았으면, 클라이언트측 인터셉트 모듈에 의해 블럭(106)에 도시된 동작이 수행된다. 클라이언트측 인터셉트 모듈(30)은 요구를 외부 통신 링크(35)를 통해 서버측 인터셉트 모듈(40)에 전송한다.
그러나, 웹 브라우저에 의해 개시된 통신에 대한 질의 신호가 제공될 때 블럭(105)에 도시된 바와 같이 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하면, 가장 간단한 실시예로 이 정보는 웹 브라우저에 HTTP 데이타 스트림으로서 제공될 수 있다. 그러나, 도 3에 도시된 바와 같이, 본 발명의 바람직한 실시예는 웹 브라우저에 의해 개시되는 통신에 대응하는 캐쉬 엔트리상에서 코히어런시 인터벌 검사(coherency interval check)를 수행한다. 이러한 동작은 도 3의 블럭(110)에 도시되어 있다.
클라이언트측 인터셉트 모듈의 코히어런시 인터벌은 사용자에 의해 정의될 수 있고, 캐쉬 엔트리가 무효화되기 전에 존재하는 시간 주기이며, 만일 캐쉬 엔트리가 존재하면 캐쉬 엔트리는 웹 서버로부터 웹 브라우저에 의해 개시된 통신에 대응하는 정보를 요구함으로써 필수적으로 재생된다. 블럭(110)에 도시된 코히어런시 인터벌 검사는 현재의 날짜 및 시간을 웹 브라우저에 의해 개시된 통신에 대응하는 캐쉬 엔트리의 SDT와 사용자에 의해 지정된 코히어런시 인터벌의 합과 비교함으로써 이루어질 수 있다. 현재의 날짜 및 시간이 전술한 합보다 크면, 웹 브라우저에 의해 개시되는 통신에 대응하는 캐쉬에 저장된 정보는 무효화되고 블럭(110)의 부정 경로가 선택된다. 그러나, 현재의 날짜 및 시간이 SDT와 사용자에 의해 정의된 코히어런시 인터벌의 합보다 적으면, 블럭(111)에 도시된 바와 같이, 블럭(110)의 긍정 경로가 선택되고, 캐쉬 엔트리는 브라우저에 HTTP 데이타 스트림으로서 제공된다. 그러면, 도 3의 블럭(100)의 클라이언트측 인터셉트 모듈(30)에 의해 수신된 브라우저 개시 통신은 완료된다.
블럭(110)에 도시된 코히어런시 인터벌 검사에서 제 1 컴퓨터에 상주하는 캐쉬 엔트리가 무효인 것으로 판정되면, 서버측 인터셉트 모듈(40)에 대한 요구를 생성하여 제 2 컴퓨터에 상주하는 캐쉬 엔트리의 코히어런시를 검사한다. 이러한 동작은 도 3의 블럭(112)에 도시되어 있다. 이것은 지정한 클라이언트측 인터셉트 모듈(30)에 대한 코히어런시 인터벌과, 웹 브라우저(10)에 의해 개시된 HTTP 요구와, 웹 브라우저에 의해 개시된 통신의 URL에 대응하는 클라이언트 캐쉬의 내용의 고유의 표시신호를 외부 통신 링크(35)를 거쳐 서버측 인터셉트 모듈(40)에 제공함으로써 달성된다. 바람직한 실시예에 있어서, 고유의 표시신호는 캐쉬 엔트리에 대한 CRC의 결과이다.
도 5를 참조하면, 클라이언트측 인터셉트 모듈(30)로부터 외부 통신 링크(35)를 통해 수신된 정보에 응답하여 수행하는 서버측 인터셉트 모듈의 동작이 도시되어 있다. 서버측 인터셉트 모듈(40)이 클라이언트측 인터셉트 모듈로부터의 요구를 수신할 때, 서버측 인터셉트 모듈(40)은 사전설정된 클라이언트 코히어런시 시간 인터벌, 클라이언트 캐쉬 엔트리에 대한 CRC 값 및 웹 브라우저에 의해 개신된 HTTP 요구를 수신한다. 이러한 정보의 수신은 도 5의 블럭(120)에 도시되어 있다.
클라이언트측 인터셉트 모듈(30)로부터 정보를 수신한 후, 서버측 인터셉트 모듈(40)은 제 2 컴퓨터에 상주하는 서버 캐쉬를 검사하여, 웹 브라우저에 의해 개시된 HTTP 요구의 URL에 대응하는 서버 캐쉬 엔트리가 존재하는지를 판정한다. 만일 조건이 충족되면, 블럭(125)에 도시된 바와 같이, 웹 브라우저에 의해 개시되는 통신에 대한 질의신호를 제공한 후, 서버측 인터셉트 모듈(40)이 웹 브라우저에 의해 개시되는 통신에 의해 요구된 정보에 대응하는 캐쉬 엔트리가 존재하는 것으로 판정하면, 블럭(125)의 긍정 경로가 선택된다. 이어서, 서버측 인터셉트 모듈(40)은 SSI 모듈(40)의 현재의 날짜 및 시간을 웹 브라우저에 의해 개시된 통신에 의해 요구된 정보에 대응하는 서버 캐쉬 엔트리의 SDT와 클라이언트측 인터셉트 모듈로부터 수신된 사전설정된 클라이언트 코히어런시 시간 인터벌의 합과 비교한다.
현재의 날짜 및 시간이 서버 캐쉬 엔트리 및 코히어런시 인터벌에 대한 SDT의 합보다 적으면, 도 5의 블럭(130)의 긍정 경로가 선택된다. 이어서, 서버측 인터셉트 모듈(40)은 서버 캐쉬 엔트리의 CRC를 클라이언트 캐쉬 엔트리의 CRC와 비교하여, 두개의 캐쉬 엔트리가 동일한지를 판정한다. 두개의 캐쉬 엔트리가 동일하면, 블럭(136)에 도시된 바와 같이 블럭(135)의 긍정 경로가 선택되고, 코히어런트 응답은 클라이언트측 인터셉트 모듈(30)로 제공된다.
블럭(135)의 조건에서 CRC가 동일하지 않은 것으로 판정되면, 클라이언트 캐쉬와 서버 캐쉬에 포함된 정보는 동일하지 않으며, 블럭(137)에 도시된 바와 같이 서버측 인터셉트 모듈은 서버 캐쉬 엔트리를 외부 통신 링크를 통해 제 1 컴퓨터에 제공한다. 서버 캐쉬 엔트리를 클라이언트측 인터셉트 모듈(30)에 전송시, 서버측 인터셉트 모듈은 엔트리를 클라이언트 지정 통신 프로토콜로 변환하며, 이 프로토콜은 서버 캐쉬 엔트의 CRC와, 서버 캐쉬 엔트리의 데이타와, 서버 캐쉬 엔트리의 수명(age)를 포함한다. 서버 캐쉬 엔트리의 수명은 현재의 날짜 및 시간과 캐쉬 엔트리의 SDT를 감산함으로써 계산된다.
마지막으로, 도 5를 참조하면, SDT와 사전설정된 클라이언트 코히어런시 시간 인터벌간의 합이 현재의 날짜 및 시간보다 적거나 또는 웹 브라우저에 의해 개시된 통신의 URL에 대응하는 캐쉬 엔트리가 존재하지 않으면, 블럭(130)의 부정 경로 또는 블럭(125)의 부정 경로가 각각 선택된다. 그러면, 블럭(126)의 동작이 수행되고, 서버측 인터셉트 모듈(40)은 웹 브라우저에 의해 개시된 통신을 서버에 HTTP 데이타 스트림으로서 전송할 것이다. 서버측 인터셉트 모듈(40)이 웹 브라우저에 의해 개시된 통신을 서버에 HTTP 데이타 스트림으로서 전송하는 경우, 서버측 인터셉트 모듈(40)은 도 6의 동작을 실행할 것이다.
도 6의 블럭(140)에 도시된 바와 같이, 웹 브라우저에 의해 개시된 통신에 응답하여 서버측 인터셉트 모듈은 웹 서버(20)로부터 HTTP 데이타 스트림을 수신할 것이다. HTTP 데이타 스트림을 수신하면, 서버측 인터셉트 모듈(40)은 HTTP 데이타 스트림에 대한 CRC를 계산하고, HTTP 데이타 스트림을 임시 저장할 것이다. 이어서, 블럭(145)에 도시된 바와 같이, 서버측 인터셉트 모듈은 HTTP 데이타 스트림을 질의하여, HTTP 데이타 스트림의 URL에 대응하는 서버 캐쉬 엔트리가 존재하는지를 판정한다. 만일 엔트리가 존재하면, 블럭(145)의 긍정 경로가 선택된다. 이어서, 블럭(150)에 도시된 바와 같이, 서버측 인터셉트 모듈(40)은 웹 서버(20)로부터 수신된 HTTP 데이타 스트림의 최근에 계산된 CRC를 웹 서버에 의해 개시된 응답 통신의 URL에 대응하는 서버 캐쉬 엔트리의 CRC와 비교한다. 이들 CRC가 동일하면, 블럭(150)의 긍정 경로가 선택된다. 서버측 인터셉트 모듈(40)은 블럭(151)에 도시된 바와 같이 서버 캐쉬 엔트리에 대한 SDT 엔트리를 갱신하고, 블럭(152)에 도시된 바와 같이 웹 서버(20)에 의해 수신된 임시 저장장치로부터의 HTTP 데이타 스트림을 삭제한다.
CRC의 비교 결과 서버 캐쉬 엔트리가 웹 서버(20)로부터 수신된 HTTP 데이타 스트림과 다른 것으로 나타나면, 블럭(150)의 부정 경로가 선택된다. 서버측 인터셉트 모듈(40)은 블럭(153)에 도시된 바와 같이 서버 캐쉬로부터 기존의 데이타를 제거하고, 이어서 블럭(154)에 도시된 바와 같이 새로운 정보를 갖는 서버 캐쉬를 갱신한다. 블럭(154)에 도시된 바와 같이, 이러한 갱신은 웹 서버 통신의 CRC를 서버 캐쉬에 저장하는 단계와, 캐쉬 엔트리에 대한 SDT와 동일한 현재의 날짜 및 시간을 캐쉬 엔트리의 일부로서 저장하는 단계와, HTTP 데이타 스트림을 저장하는 단계를 포함한다. 이 경우, 서버 캐쉬 엔트리가 갱신되거나 혹은 서버 캐쉬 엔트리가 웹 서버(20)로부터 수신된 HTTP 데이타 스트림과 동일한 것으로 검출되면, 서버측 인터셉트 모듈은 서버 캐쉬 엔트리가 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리와 동일한지를 판정한다. 이러한 동작은 블럭(155)에 도시되어 있다.
웹 서버(20)로부터 수신된 응답에 대응하는 캐쉬 엔트리가 서버측 인터셉트 모듈(40)에 의해 존재하지 않은 것으로 판정되면, 블럭(145)의 부정 경로가 선택된다. 블럭(146)에 도시된 바와 같이 서버 캐쉬 엔트리는 웹 서버로부터의 응답의 URL을 저장하고, 웹 서버로부터의 응답의 CRC를 저장하고, HTTP 데이타 스트림을 저장하고, 현재의 날짜 및 시간을 SDT로서 저장함으로써 생성된다. 웹 브라우저에 의해 개시된 통신에 대응하는 캐쉬 엔트리를 생성한 후, 블럭(155)에 도시된 바와 같이 서버측 인터셉트 모듈(40)은 이 서버 캐쉬 엔트리의 CRC를 대응하는 클라이언트 캐쉬 엔트리의 CRC와 다시 비교한다.
서버 캐쉬 엔트리와 클라이언트 캐쉬 엔트리의 비교 결과 이들 캐쉬 엔트리가 동일한 것으로 나타나면, 블럭(155)의 긍정 경로가 선택되고, 블럭(156)의 동작이 수행된다. 블럭(156)에 도시된 바와 같이, 서버측 인터셉트 모듈(40)은 코히어런트 응답을 클라이언트측 인터셉트 모듈(30)에 전송한다. 코히어런트 응답을 전송하고 제로의 수명을 클라이언트측 인터셉트 모듈에 전송함으로써, 서버측 인터셉트 모듈(40)은 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로 변환시킨다.
서버측 인터셉트 모듈(40)에 의해 클라이언트 캐쉬 엔트리가 웹 브라우저에 의해 개시된 통신에 대응하는 서버 캐쉬 엔트리와 동일하지 않은 것으로 판정되면, 블럭(155)의 부정 경로가 선택되고, 블럭(157)의 동작이 수행된다. 블럭(157)에 도시된 바와 같이, 서버측 인터셉트 모듈(40)은 서버 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로 변경하거나 혹는 변환시킨다. 데이타 스트림은 서버 캐쉬 엔트리의 CRC와, 서버 캐쉬 엔트리의 HTTP 데이타 스트림과, 제로로 세트된 캐쉬 엔트리의 수명을 포함한다. 이어서, 이러한 클라이언트/서버 지정 통신은 외부 통신 링크(35)를 통해 클라이언트측 인터셉트 모듈(30)로 전송된다.
이하, 서버측 인터셉트 모듈로부터 통신을 수신할 때의 클라이언트측 인터셉트 모듈(30)의 함수를 도 4를 참조하여 기술할 것이다. 블럭(160)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 외부 통신 링크(35)를 통해 제공된 클라이언트/서버 지정 데이타 스트림을 수신하거나 혹은 획득한다. 이어서, 블럭(165)에 도시된 바와 같이 클라이언트측 인터셉트 모듈은 서버측 인터셉트 모듈(40)로부터 수신된 응답의 유형이 어떤 것인지를 판정한다. 서버측 인터셉트 모듈(40)에 의해 클라이언트 캐쉬 엔트리가 코히어런트인 것으로 나타나면, 즉, 서버 캐쉬 엔트리와 클라이언트 캐쉬 엔트리가 동일한 것으로 나타나면, 블럭(166)에 도시된 동작이 수행된다. 블럭(166)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 현재의 날짜 및 시간과 서버측 인터셉트 모듈(40)로부터 수신된 수명간의 차이를 이용하여 웹 브라우저에 의해 개시된 통신에 대응하는 클라이언트 캐쉬 엔트리의 SDT를 갱신한다. 따라서, 제 1 컴퓨터(5)와 제 2 컴퓨터(6)의 두개의 클럭을 동기화시키지 않고서도 본 발명은 제 1 컴퓨터의 캐쉬 엔트리의 코히어런시 시간을 정정하여 제 2 컴퓨터의 새로운 데이타를 나타날 수 있다. 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리의 SDT를 갱신한 후, 클라이언트측 인터셉트 모듈(30)은 클라이언트 캐쉬 엔트리를 웹 브라우저(10)에 HTTP 데이타 스트림으로서 제공한다. 이러한 동작을 블럭(174)에 도시되어 있다.
그라나, 클라이언트측 인터셉트 모듈(30)에 의해 응답 유형이 데이타 또는 데이타 스트림 응답인 것으로 판정되면, 블럭(165)의 스트림 경로가 선택되고, 블럭(167)의 동작이 수행된다. 클라이언트측 인터셉트 모듈(30)은 HTTP 데이타 스트림을 수신하고 이 데이타를 임시 저장한다. 이어서, 도 4의 블럭(170)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 웹 브라우저에 의해 개시되는 통신에 대응하는 캐쉬 엔트리가 존재하는지를 판정한다. 캐쉬 엔트리가 존재하면, 블럭(170)의 긍정 경로가 선택되고, 블럭(171)에 도시된 바와 같이 현재의 캐쉬 엔트리가 플러쉬(flush)된다. 이어서, 클라이언트측 인터셉트 모듈은 서버측 인터셉트 모듈(40)로부터 수신된 HTTP 데이타 스트림의 CRC를 저장하고, 현재의 날짜 및 시간과 서버측 인터셉트 모듈(40)로부터 수신된 수명간의 차이를 SDT로서 저장하고, HTTP 데이타 스트림을 저장함으로써, 웹 브라우저에 의해 개시된 통신에 대응하는 클라이언트 캐쉬 엔트리를 갱신한다. 이러한 동작은 블럭(172)에 도시되어 있다.
웹 브라우저에 의해 개시되는 통신에 대응하는 캐쉬 엔트리가 존재하지 않으면, 블럭(170)의 부정 경로가 선택된다. 클라이언트 캐쉬 엔트리는 블럭(173)에 도시된 동작을 수행함으로써 생성된다. 블럭(173)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 서버측 인터셉트 모듈(40)로부터 수신된 HTTP 데이타 스트림의 URL을 저장하고, 서버측 인터셉트 모듈(40)로부터 수신된 HTTP 데이타 스트림의 CRC를 저장하고, HTTP 데이타 스트림을 저장함으로써, 클라이언트 캐쉬 엔트리를 생성한다. 또한, 클라이언트측 인터셉트 모듈(30)은 현재의 날짜 및 시간에서 서버측 인터셉트 모듈(40)로부터 외부 통신 링크(35)를 통해 수신된 수명을 감산함으로써 SDT를 갱신하거나 혹은 SDT를 저장한다.
하지만, 클라이언트측 인터셉트 모듈이 클라이언트 캐쉬 엔트리를 웹 브라우저(10)에 HTTP 데이타 스트림으로서 전송하거나 혹은 제공하는데 블럭들(166, 172 또는 173) 중 어떠한 블럭을 선택해서 동작을 행하더라도 클라이언트 캐쉬 엔트리가 생성된다. 이들 동작은 도 4의 블럭(174)에 도시되어 있다.
본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 클라이언트 캐쉬 및 서버 캐쉬는 메모리로 구현되거나 혹은 하드 디스크, 판독/기록 CD-ROM, 광 디스크 또는 다른 저장 기술과 같은 대량 저장장치로 구현될 수 있다. 또한, 본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈은 소프트웨어, 하느웨어 또는 이들을 조합하여 구현될 수 있다.
본 발명은 지정한 제 1 또는 제 2 컴퓨터에 상주하는 캐쉬를 참조하여 기술하였지만, 본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이, 캐쉬를 제 1 컴퓨터에 상주시키지 않고 단순히 컴퓨터와 동일한 외부 통신 링크측상에 위치시켜도 본 발명을 구현할 수 있다. 따라서, 하드웨어 캐쉬는 클라이언트 캐쉬로서 수행하는 제 1 컴퓨터 외부에서 구현되고 고속 통신에 의한 제 1 컴퓨터에 접속될 수 있으며, 캐쉬를 제 1 컴퓨터와 동일한 외부 통신 링크측에 위치시키면 본 발명의 장점들이 구현될 수 있다.
본 발명의 또다른 실시예에 있어서, 서버측 인터셉트 모듈(40)은 웹 서버(20)로부터 수신된 HTTP 데이타 스트림의 사본을 보유하지 않고, 단순히 통신에 대한 디렉토리 엔트리만을 보유한다. 디렉토리 엔트리는 통신 URL과, HTTP 데이타 스트림에 대해 계산된 CRC 및 HTTP 데이타 스트림이 웹 서버로부터 수신된 시간과, CRC가 계산될 때의 시간으로 세트되는 통신 SDT를 포함할 수 있다. 이 경우, 클라이언트측 인터셉트 모듈(30)에 의해 서버측 인터셉트 모듈이 CTC 및 SDT를 보유한 URL에 대응하는 통신 서버 사이트 인터셉트 모듈(40)에 요구가 전송되면, 서버측 인터셉트 모듈은 클라이언트측 인터셉트 모듈(30)로부터 수신된 CRC를 검사하고, 이 CRC가 지정된 URL에 대해 가장 나중의 HTTP 데이타 스트림의 CRC에 대응하는지를 판정한다. 만일 정합이 이루어지면, 코히어런트 응답이 클라이언트측 인터셉트 모듈에 제공된다. 정합이 이루어지지 않으면, 서버측 인터셉트 모듈은 클라이언트측 인터셉트 모듈로부터 수신된 HTTP 데이타 스트림을 웹 서버(20)에 전송하고, 웹 서버(20)로부터 수신된 응답을 클라이언트측 인터셉트 모듈(30)로 반환시킨다.
차분 기법을 이용하여 외부 통신 링크(35)를 통해 제공되는 데이타를 줄이는 본 발명의 다른 실시예에 있어서, 도 7, 8, 9 및 10은 클라이언트측 인터셉트 모듈(30) 및 서버측 인터셉트 모듈(40)에 의해 수행되는 동작을 도시한 도면이다. 도 7에 도시된 바와 같이, 블럭(200)에서 클라이언트측 인터셉트 모듈(30)은 웹 브라우저(10)로부터 HTTP 요구를 수신한다. 블럭(205)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 웹 브라우저(10)로부터 인터셉트된 HTTP 요구를 질의하여 이 요구가 공통 게이트웨이 인터페이스(CGI)에 관한 것인지를 판정한다. 만일 요구가 공통 게이트웨이 인터페이스에 관한 것이 아니면, 도 3 내지 도 6에 도시되고 도 7의 블럭(206)으로 도시된 바와 같이 클라이언트측 인터셉트 모듈(30)은 요구를 서버측 인터셉트 모듈에 제공한다.
그러나, 웹 브라우저에 의해 개시된 통신이 CGI 요구에 대응하면, 블럭(205)의 긍정 경로가 선택된다. 블럭(210)에 도시된 바와 같이, 대응하는 CGI 요구에 응답하여 클라이언트/서버 인터셉트 모듈(30)은 웹 브라우저에 이전에 제공된 HTTP 데이타 스트림에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정한다. 이러한 CGI 요구의 질의는 웹 브라우저에 의해 개시된 통신 URL을 클라이언트 기본 캐쉬에 저장된 URL과 비교함으로써 달성될 수 있다.
클라이언트 기본 캐쉬는 클라이언트측 인터셉트 모듈(30)에 의해 수신되어 주어진 URL에 대해 웹 브라우저(10)로 제공되는 제 1 HTTP 데이타 스트림을 저장함으로써 초기화될 수 있다. 웹 브라우저(10)의 다수의 인스탄스 또는 세션(sessions)을 통해 이러한 클라이언트 기본 캐쉬 엔트리를 보유할 수 있다. 클라이언트 기본 캐쉬 엔트리는 도 7, 8, 9 및 도 10에 도시된 바와 같이 갱신될 수 있다. 웹 브라우저에 의해 개시된 통신에 대한 URL에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하면, 외부 통신 링크(35)를 통해 서버측 인터셉트 모듈(40)에 전송되는 CRC는 도 7의 블럭(211)에 도시된 바와 같이 클라이언트 기본 캐쉬 엔트리에 대한 CRC와 동일하게 세트된다. 클라이언트 기본 캐쉬 엔트리가 존재하지 않으면, 도 7의 블럭(210)의 부정 경로가 선택되고, 외부 통신 링크(35)를 통해 서버측 인터셉트 모듈(40)에 전송되는 요구에 대한 CRC는 널(null)된다. 이러한 동작은 도 7의 블럭(212)에 도시되어 있다.
블럭(213)은 CGI 요구를 외부 통신 링크를 통해 서버측 인터셉트 모듈(40)에 전송하는 동작을 도시한 것이다. 블럭(213)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 HTTP 요구와, CGI 요구의 URL에 대한 클라이언트 기본 캐쉬 엔트리가 존재하지 않은 경우 널로 세트되고 엔트리가 존재하는 경우 클라이언트 기본 캐쉬 엔트리의 CRC로 세트되는 CRC 요구를 전송한다. 따라서, 클라이언트측 인터셉트 모듈은 CGI 요구를 클라이언트/서버 지정 프로토콜로 변경하고, 클라이언트/서버 지정 통신을 서버측 인터셉트 모듈(40)에 의해 수신되는 외부 통신 링크상으로 전송하였다.
도 9에는 CGI 요구가 수신될 때 서버측 인터셉트 모듈에 의해 취해진 동작이 도시되어 있다. 블럭(220)에는 서버측 인터셉트 모듈(40)에 의한 CGI 요구 수신이 도시되어 있다. 서버측 인터셉트 모듈(40)이 CGI 요구를 수신하면 모듈(40)은 CRC의 값 및 HTTP 요구의 사본을 저장한다. 블럭(221)에 도시된 바와 같이, 서버측 인터셉트 모듈(40)은 HTTP 요구를 웹 서버(20)에 제공한다.
서버측 인터셉트 모듈(40)이 웹 브라우저에 의해 개시된 통신에 대응하는 HTTP 요구 또는 CGI 요구에 대한 응답을 수신하면, 도 10의 블럭(230)에 도시된 바와 같이 서버측 인터셉트 모듈(40)은 이 응답을 HTTP 데이타 스트림으로서 수신한다. 블럭(230)에 도시된 바와 같이, 서버측 인터셉트 모듈(40)은 HTTP 데이타 스트림을 저장하고, 웹 서버(20)로부터 수신된 HTTP 데이타 스트림에 대한 CRC 값을 계산한다. 또한, 서버측 인터셉트 모듈(40)은 차분값을 널화하여 차분 데이타를 초기화한다. 이어서, 블럭(235)에 도시된 바와 같이 서버측 인터셉트 모듈은 웹 서버에 의해 개시된 통신으로서 수신된 응답이 CGI에 대한 응답인지를 판정한다. 만일 응답이 부정이면, 도 10의 블럭(235)의 부정 경로가 선택되고, 블럭(236)의 동작을 실행하여 HTTP 데이타 스트림을 클라이언트측 인터셉트 모듈에 전송한다. 블럭(236)에 도시된 바와 같이, 이러한 동작은 도 3 내지 도 6에 도시된 캐쉬 동작을 포함할 수 있다. 블럭(230)에 수신된 응답이 CGI 응답이면, 블럭(235)의 긍정 경로가 선택되고, 이어서 블럭(240)에 도시된 바와 같이 서버측 인터셉트 모듈은 CGI 응답에 대한 서버 기본 캐쉬 엔트리가 존재하는지를 판정한다.
서버측 인터셉트 모듈(40)이 CGI 요구에 대한 응답을 수신하는 제 1 시간 동안 서버 기본 캐쉬 엔트리가 생성될 수 있다. 이 경우, 블럭(240)에 도시된 조건 결과에 따라 블럭(240)의 부정 경로가 선택될 것이다. 이어서, 서버측 인터셉트 모듈(40)은 CGI에 대한 URL과, CGI 요구에 응답하는 HTTP 데이타 스트림과, HTTP 데이타 스트림에 대한 CRC를 저장함으로써 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리를 생성한다. 이러한 동작은 블럭(241)에 도시되어 있다. 도 3 내지 도 6에 예시된 코히어런트 캐쉬 시스템을 비교해 보면, 서버 기본 캐쉬 엔트리는 SDT를 또한 포함할 수 있다. 본 명세서에 사용된 서버 CGI의 기본 형태는 웹 브라우저(10)로부터 수신된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로 지칭한다.
CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하면, 블럭(240)의 긍정 경로가 선택된다. 서버측 인터셉트 모듈은 서버 기본 캐쉬 엔트리의 CRC를 웹 서버(20)로부터 수신된 응답의 CRC과 비교한다. 이러한 동작은 도 10의 블럭(245)에 도시되어 있다. 이들 CRC가 동일하면, 서버측 인터셉트 모듈은 서버 기본 캐쉬 엔트리에 대한 CRC가 클라이언트 기본 캐쉬 엔트리에 대한 CRC에 대응한다. 이들 두 CRC 값이 동일하면, 클라이언트 기본 캐쉬 엔트리, 서버 기본 캐쉬 엔트리 및 웹 서버(20)로부터 수신된 응답은 모두 동일한 HTTP 데이타 스트림을 포함한다. 서버 기본 캐쉬 엔트리와 클라이언트 기본 캐쉬 엔트리의 비교는 블럭(250)에 도시되어 있다.
이들 두 기본 캐쉬 엔트리가 동일하면, 서버측 인터셉트 모듈은 전술한 기본 캐쉬 엔트리를 클라이언트측 인터셉트 모듈(30)에 전송할 필요가 없으므로, 블럭(251)에 도시된 바와 같이 클라이언트측 인터셉트 모듈(30)에 전송되는 HTTP 데이타 스트림 데이타는 널화된다. 이어서, 블럭(252)에 도시된 바와 같이, CGI 요구에 대응하는 서버 기본 캐쉬에 저장된 HTTP 데이타 스트림의 CRC와, 널화된 HTTP 데이타 스트림 데이타와, 널화된 차분 데이타를 전송하여 CGI 요구에 대한 응답이 클라이언트 기본 캐쉬 엔트리와 동일함을 나타내기 위해, 서버측 인터셉트 모듈(40)은 웹 서버(20)로부터 수신된 HTTP 데이타 스트림을 클라이언트/서버 지정 통신 프로토콜로 변환된다.
블럭(245)을 참조하면, 웹 브라우저에 의해 개시된 CGI 요구에 응답하여 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리에 대한 CRC가 웹 서버로부터 수신된 응답에 대한 CRC와 상이하면, 블럭(245)의 부정 경로가 선택된다. 이어서, 서버측 인터셉트 모듈(40)은 블럭(246)에 도시된 동작을 수행한다. 서버측 인터셉트 모듈(40)은 인터셉트된 CGI 응답을 인트셉트된 CGI 요구 또는 서버 CGI의 기본 형태에 대응하는 서버 기본 캐쉬 엔트리와 비교한다. 이러한 서버 CGI 기본 형태에 대해 인터셉트된 CGI 응답과 서버 CGI의 기본 형태와의 비교에서는 인터셉트된 CGI 응답과 서버 CGI의 기본 형태간의 차에 대응하는 CGI 차분 데이타를 제공한다.
기본 형태와 변경된 형태간의 차이를 판정하는 차분 동작은 본 기술 분야에 통상의 지식을 가진 자에게 잘 알려져 있는 소정의 방법으로 수행될 수 있다. 본 발명에서 사용하는데 적절한 차분 동작의 하나의 방법은 카피터스(Coppieters)에 의해 기술되어a Cross-platform Binary Diff이란 명칭의Dr. Dobb's Journal, May 1995, pp. 32-36의 문헌에 개시되어 있으며, 이는 본 발명의 참조로 인용된다. 차분 데이타를 판정하는데 사용되는 다른 방안은IBM Technical Disclosure Bulletin, Vol. 22, No. 8A, January 1980의 문헌에 개시되어 있으며, 이는 본 발명의 참조로 인용된다.
이어서, 블럭(247)에 도시된 바와 같이 서버측 인터셉트 모듈(40)은 서버 CGI의 기본 형태를 갱신해야 하는지를 판정한다. 이러한 판정은 인터셉트된 CGI 응답과 서버 CGI의 기본 형태간의 평균 차분 데이타가 서전정의된 임계치를 초과하는지를 판정함으로써 결정될 수 있다. CGI 요구에 대응하는 서버의 기본 캐쉬 엔트리를 갱신해야 하는지를 판정하는 다른 방안은 도 3 내지 도 6에 개시된 것과 같은 시간 코히어런시를 포함하거나 혹은 새로운 기본 캐쉬 엔트리를 생성하여 재기준화(rebase)하여 시스템의 성능이 향상될 정도로 차분 데이타가 증가되었는지를 판정하는 본 기술 분야에 통상의 지식을 가진 자에게 잘 알려진 다른 방안들을 포함할 수 있다.
서버의 재기준화가 필요치 않으면, 블럭(247)의 부정 경로가 선택되고, 서버측 인터셉트 모듈(40)은 블럭(250)의 동작을 수행하여 클라이언트 기본 캐쉬 엔트리의 CRC가 서버 기본 캐쉬 엔트리의 것과 동일한지 혹은 서버 CGI 기본 형태가 웹 브라우저에 의해 개시된 통신의 지정한 CGI 요구에 대응하는 서버 및 클라이언트의 기본 캐쉬 엔트리인 클라이언트 CGI 기본 형태와 동일한지를 판정한다. 이들 기본 형태가 동일하면, 블럭(251)에 도시된 바와 같이 클라이언트는 재기준화될 필요가 없으며, HTTP 데이타 스트림 정보는 널화된다. 이어서, 서버측 인터셉트 모듈(40)은 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리의 CRC(즉, 서버 CGI 기본 형태의 CRC)를 전송하고, 기본 데이타에 대응하는 널화된 HTTP 데이타 스트림을 전송하고, 블럭(246)에서 결정된 차분 데이타를 전송함으로써, 차분 응답을 클라이언트측 인터셉트 모듈(30)에 전송한다. 이러한 동작은 도 10의 블럭(252)에 도시되어 있다.
서버측 인터셉트 모듈(40)에 의해 클라이언트 CGI 기본 형태 및 서버 CGI 기본 형태에 대한 이들 CRC가 동일하지 않은 것으로 판정되면, 클라이언트는 재기준화될 필요가 없다. 클라이언트의 재기준화 동작에서는 서버 CGI 기본 형태를 클라이언트측 인터셉트 모듈(30)에 전송하는 단계를 포함한다. 이러한 동작을 수행하기 위해 서버측 인터셉트 모듈은 서버 CGI의 기본 형태와 동일한 클라이언트측 인터셉트 모듈(30)에 전송될 HTTP 데이타 스트림 데이타를 세트시킨다. 이러한 동작은 블럭(253)에 도시되어 있다. 이어서, 블럭(252)에 도시된 바와 같이, 서버측 인터셉프 모듈(40)은 서버 CGI의 기본 형태의 CRC와, 서버 CGI의 기본 형태에 대응하는 HTTP 데이타 스트림 데이타와, CGI의 기본 형태와 웹 서버로부터 수신된 응답간의 차분 데이타를 전송함으로써, 웹 서버로부터 수신된 HTTP 데이타 스트림을 클라이언트/서버 지정 프로토콜로 변환시킨다. 이어서, 이러한 정보는 외부 통신 링크(35)를 통해 클라이언트측 인터셉트 모듈(30)에 전송된다.
블럭(247)을 참조하면, 서버의 재기준화를 필요로 하면, 블럭(247)의 긍정 경로가 선택된다. 블럭(248)에 도시된 바와 같이, 서버측 인터셉트 모듈은 브라우저에 의해 개시된 통신에 대응하는 서버 기본 캐쉬 엔트리를 웹 서버로부터 수신된 HTTP 데이타 스트림과 갱신한다. 응답 CRC도 또한 갱신되고, CGI 차분 데이타는 널화된다. 이어서, 서버측 인터셉트 모듈은 블럭(250)에 도시된 바와 같이 새로운 서버측 캐쉬 엔트리의 CRC를 비교하고 전술한 바와 같이 전송한다.
도 8에는 서버측 인터셉트 모듈(40)로부터 응답 수신시 클라이언트측 인터셉트 모듈의 동작이 도시되어 있다. 블럭(260)에는 클라이언트측 인터셉트 모듈(30)에 의한 서버측 인터셉트 모듈(40)로부터의 응답 수신이 도시되어 있다. 블럭(265)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 응답이 CGI 요구에 대한 응답인지를 판정한다. 응답이 CGI 요구에 대한 응답이 아니면, 클라이언트측 인터셉트 모듈은 도 3 내지 도 6에 도시된 캐쉬 동작을 포함하는 블럭(267)의 동작을 수행한다. 그러나, 응답이 CGI 요구에 대한 응답이면, 블럭(265)의 긍정 경로가 선택된다. 클라이언트측 인터셉트 모듈(30)은 외부 통신 링크를 통해 제공된 HTTP 데이타 스트림 데이타와, 차분 데이타와, 클라이언트/서버 지정 데이타 스트림으로부터 획득된 CRC를 저장한다. 이러한 동작은 도 8의 블럭(266)에 도시되어 있다.
이어서, 클라이언트측 인터셉트 모듈(30)은 클라이언트 CGI 기본 형태를 포함할 수 있는 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정한다. 이러한 질의는 블럭(270)에 도시되어 있으며, HTTP 요구 또는 HTTP 응답의 URL을 조사함으로써 수행될 수 있다. 클라이언트 CGI 기본 형태가 존재하면, 블럭(270)의 긍정 경로가 선택된다. 이어서, 블럭(275)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 외부 통신 링크를 통해 수신된 CRC를 클라이언트 CGI 기본 형태의 CRC와 비교한다. 만일 이들이 상이하면, 블럭(275)의 부정 경로가 선택되고, 클라이언트는 웹 브라우저에 의해 개시된 통신에 대한 CGI 요구의 URL에 대응하는 클라이언트 기본 캐쉬 엔트리를 서버측 인터셉트 모듈(40)로부터 외부 통신 링크(35)를 통해 수신된 HTTP 데이타 스트림 데이타로 대체하여 CGI 기본 형태를 갱신함으로써 재기준화한다. 또한, 클라이언트 기본 캐쉬 엔트리는 HTTP 데이타 스트림에 대한 CRC에 대해 갱신된다. 이러한 동작은 도 8의 블럭(276)에 도시되어 있다.
외부 통신 링크(35)를 통해 수신된 CRC는 CGI 기본 형태의 CRC와 동일하면, 서버측 인터셉트 모듈 서버 CGI 기본 형태는 클라이언트측 인터셉트 모듈 클라이언트 CGI 기본 형태와 동일하고, 블럭(275)의 긍정 경로가 선택된다.
이들 기본 형태가 동일하거나 혹은 클라이언트가 재기준화되면, 블럭(277)에 도시된 동작이 클라이언트측 인터셉트 모듈(30)에 의해 수행된다. 블럭(277)에서, 클라이언트 CGI 기본 형태를 외부 통신 링크(35)를 통해 수신된 CGI 차분 데이타와 조합함으로써 클라이언트측 인터셉트 모듈(30)은 외부 통신 링크(35)를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 웹 서버(20)로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하여, 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성한다. 블럭(278)에 도시된 바와 같이, 이러한 응답은 웹 브라우저(10)에 HTTP 데이타 스트림으로서 제공된다.
CGI 요구의 URL에 대응하는 클라이언트에 CGI 기본 형태가 존재하지 않으면, 도 8의 블럭(270)의 부정 경로가 선택된다. 블럭(271)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)은 URL과, 서버측 인터셉트 모듈(40)로부터 외부 통신 링크를 통해 수신된 HTTP 데이타 스트림의 CRC와, 실제 HTTP 데이타 스트림의 데이타를 저장함으로써 CGI 요구의 URL에 대응하는 클라이언트 기본 캐쉬 엔트리를 생성한다. 이러한 정보 저장에서는 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리를 생성하므로, 클라이언트 CGI의 기본 형태가 생성된다. 이어서, 클라이언트측 인터셉트 모듈은 블럭(277)의 동작을 수행하여, 클라이언트 CGI 기본 형태를 널화된 CGI 차분 데이타과 조합하거나 병합함으로써 HTTP 데이타 스트림이 재구성되도록 한다.
본 발명의 차분 방안은 비-CGI 데이타에도 또한 적용될 수 있다. 예를 들어, 서버측 인터셉트 모듈(40)은 다수의 서버 기본 캐쉬 엔트리를 계속적으로 생성하여 웹 서버에 접속된 웹 브라우저의 클라이언트측 인터셉트 모듈이 다른 기본 형태를 갖도록 할 수 있다. 이어서, 서버측 인터셉트 모듈은 정합이 이루어질 때까지 클라이언트측 인터셉트 모듈로부터 수신된 CRC를 이전에 생성된 각각의 서버 기본 형태의 CRC를 비교할 수 있다. 이어서, 서버측 인터셉트 모듈(40)은 클라이언트측 인터셉트 모듈(30)을 선택사양적으로 재설정하거나 혹은 차분 데이타를 단순히 클라이언트측 인터셉트 모듈(30)에 제공할 수 있다. 따라서, 본 명세서에서 CGI 요구에 대해 기술된 차분 방안들은 소정의 HTTP 요구 및 응답에도 동일하게 적용할 수 있다.
기본 형태를 다수로 생성하는 전술한 시스템은 비-CGI 요구에 대한 차분 방안을 사용할 수 있도록 하지만, 이러한 방안은 메모리 또는 저장장치의 저장 능력을 더욱 높일 수 있지만 전술한 캐쉬 용량을 충분히 활용하지는 못한다. 메모리 또는 저장장치의 요건을 줄이고 전술한 캐쉬 방안들을 활용하기 위해, 비-CGI 요구에 대한 차분 방안을 이용하는 다음과 같은 바람직한 방안이 사용될 수 있다. 이러한 바람직한 구현에 있어서, 서버측 인터셉트 모듈은 요구에 대응하는 서버 기본 형태와 웹 서버로부터의 응답 HTTP 데이타 스트림간의 차를 계산한다. 그러면, 이러한 차분 데이타는 서버측 인터셉트 모듈에 의해 저장된다. 이어서, 서버 기본 형태는 기본 형태의 CRC를 갱신하는 것을 포함하여 기본 형태를 웹 서버로부터의 새로운 응답으로 대체함으로써 갱신된다. 그러나, 이전의 CRC를 포기하지 않고 이전의 기본 형태에 대한 CRC가 차분 데이타로서 저장된다. 이어서, 이전의 생성된 차분 데이타 및 CRC는 비-CGI 요구에 대응하는 클라이언트 기본 형태의 CRC를 기초로 하여 클라이언트측 인터셉트 모듈로 선택적으로 전송된다.
비-CGI 차분 방안의 하나의 예로서, 서버측 인터셉트 모듈이 비-CGI 요구를 수신하는 경우, 이 요구는 비-CGI 요구의 URL에 대응하는 클라이언트측 인터셉트 모듈에 상주하는 기본 형태의 CRC와 함께 제공될 수 있다. 서버측 인터셉트 모듈이 웹 서버로부터 응답을 수신한 경우에, 서버측 인터셉트 모듈은 응답의 CRC를 계산할 수 있다. 이어서, 서버측 인터셉트 모듈은 이러한 응답과 URL에 대한 서버 기본 형태간의 차를 계산하고 이 차분 데이타를 저장할 수 있다. 서버측 인터셉트 모듈은 응답 데이타를 이용하여 서버 기본 형태를 갱신하고, 이전의 기본 형태의 CRC와 응답 및 이전의 기본 형태간의 차분 데이타를 보관할 수 있다. 이어서, 서버측 인터셉트 모듈은 클라이언트 기본 형태의 CRC와 서버 기본 형태의 CRC 및 소정의 저장 또는 보관된 CRC를 비교하여 정합이 이루어졌는지를 판정할 수 있다. 정합이 검출되지 않았으면, 응답은 클라이언트측 인터셉트 모듈에 단순히 전송된다.
만일 정합이 검출되면, CRC 정합에 대응하는 차분 데이타와 현재의 차분 데이타까지 포함하는 소정의 차후의 차분 데이타는 클라이언트측 인터셉트 모듈에 전송된다. 이어서, 클라이언트측 인터셉트 모듈은 차분 데이타를 클라이언트 기본 형태로 제공하여 응답을 재구성한다. 따라서, 만일 CRC의 정합이 이전에 3개로 생성된 기본 형태의 CRC와 함께 이루어지면, 3개의 차분 데이타 세트는 클라이언트측 인터셉트 모듈에 전송되고 응답 구성은 3개의 연속적인 차분 데이타 세트를 클라이언트 기본 형태로 제공함으로써 달성될 수 있다. 그러나, 응답을 재구성하는데 필요한 차분 데이타 세트의 수 또는 차분 데이타 세트의 크기가 너무 커서 실제 응답 전송이 데이타 전송보다 적은 경우, 응답은 서버측 인터셉트 모듈에 의해 자체적으로 전송될 수 있다. 어떤 경우에 있어서, 응답을 재구성하거나 수신한 후, 클라이언트측 인터셉트 모듈은 응답 데이타를 이용하여 요구 URL에 대한 클라이언트 기본 형태를 갱신하고, 응답 CRC를 이용하여 CRC를 갱신할 수 있다. 클라이언트 기본 형태는 응답이 지정한 URL에 대해 수신될 때 갱신되기 때문에, 전술한 클라이언트 캐쉬는 클라이언트 기본 형태에 대한 캐쉬로서 이용될 수 있으며, 그 결과 차분 방안이 비-CGI 요구시 이용되는 경우 클라이언트 기본 형태에 대한 각각의 캐쉬를 구비하지 않아도 된다.
본 발명의 또다른 특징에 있어서, 부가적인 통신 저장 방안은 HTTP와 같은 스테이트리스 통신 프로토콜의 중복성을 기초로 하여 달성될 수 있다. 이와 같은 프로토콜에 있어서, 클라이언트는 통신이 개시될 때마다 자신에 관한 정보를 서버에 전송한다. 마찬가지로, 서버는 응답이 개시될 때마다 자신에 관해 지정된 정보를 클라이언트에 전송한다.
본 발명의 또다른 실시예에 있어서, 제 1 컴퓨터(5)는 제 1 컴퓨터의 사전정의된 특징에 대응하는 컴퓨터 지정 정보를 제 2 컴퓨터(6)에 전송한다. 제 2 컴퓨터는 컴퓨터 지정 정보를 저장한다. 그러면, 제 1 컴퓨터는 외부 통신 링크(35)를 통해 전송하기 전에 차후의 웹 브라우저에 의해 개시된 통신으로부터 컴퓨터 지정 정보를 제거한다. 이어서, 제 2 컴퓨터(6)는 저장된 컴퓨터 지정 정보를 외부 통신 링크(35)를 통해 수신된 차후의 통신과 조합한 다음 원래의 웹 브라우저에 의해 개시된 통신을 재설정하여 HTTP 데이타 스트림을 생성한다.
웹 브라우저에 의해 개시된 통신으로부터 컴퓨터 지정 정보를 제거하는 것과 더불어, 웹 서버에 의해 개시된 통신으로부터 컴퓨터 지정 정보를 또한 제거할 수 있다. 이 경우, 도 2의 제 2 컴퓨터(6)는 제 2 컴퓨터(6)의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 외부 통신 링크(35)를 통해 제 1 컴퓨터(5)에 제공한다. 제 1 컴퓨터(5)는 컴퓨터 지정 정보를 저장하여 서버 헤더 정보를 제공할 수 있도록 한다. 차후의 통신에서, 제 2 컴퓨터(6)는 웹 서버에 의해 개시된 통신으로부터 컴퓨터 지정 정보를 제거하고, 웹 서버에 의해 개시된 통신의 나머지 부분을 외부 통신 링크(35)상으로 전송한다. 제 1 컴퓨터(5)는 외부 통신 링크를 통해 통신을 수신하고, 서버 헤더 정보와 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림을 조합함으로써 원래의 웹 서버에 의해 개시된 통신을 재설정하여 HTTP 데이타 스트림을 생성한다. 이러한 실시예에 있어서, 컴퓨터 지정 정보를 제거하고 정보를 저장하여 서버 헤더 정보 또는 클라이언트 헤더 정보중 어느 하나를 생성하는 동작은 이 동작이 제 1 컴퓨터(5) 또는 제 2 컴퓨터(6)에서 발생되는지에 따라 클라이언트측 인터셉트 모듈(30) 또는 서버측 인터셉트 모듈(40)에 의해 수행된다.
본 발명의 하나의 실시예에 있어서, 웹 브라우저(10)는 TCP/IP를 이용하여 클라이언트측 인터셉트 모듈(30)과 통신한다. TCP는 외부 통신 링크(35)를 통해 클라이언트측 인터셉트 모듈(30)과 서버측 인터셉트 모듈(40) 사이의 통신에 또한 사용될 수 있다. 마지막으로, TCP는 서버측 인터셉트 모듈(40)과 웹 서버(20) 사이의 통신에 사용될 수 있다. TCP는 본 발명의 시스템을 구성하는 여러 구성 요소들 사이의 통신에 사용될 수 있지만, HTTP 프로토콜은 외부 통신 링크를 통해 통신하는데 필요한 가장 효율적인 수단을 제공하지는 못한다. 외부 통신 링크(35)의 성능을 향상시키기 위해, 본 발명의 하나의 실시예에서는 웹 브라우저와 클라이언트측 인터셉트 모듈(30)간의 접속 및 서버측 인터셉트 모듈(40)과 웹 서버(20)간의 접속에 사용되는 가상 소켓(virtual sockets)으로 일컬어지는 것을 생성한다. 이러한 가상 소켓의 동작은 이하 도 11 내지 도 17을 참조하여 기술될 것이다.
도 11은 가상 소켓의 개념을 이용한 본 발명의 실시예의 블럭도이다. 도 11에 도시된 바와 같이, 컴퓨터(5)와 컴퓨터(6)는 외부 통신 링크(35)를 통해 접속된다. 웹 브라우저(10)는 웹 브라우저(10)와 클라이언트측 인터셉트 모듈(30)을 접속하는 다수의 실제 소켓을 포함한다. 도 11에 도시된 바와 같이, 참조부호(65a)로 도시된 제 1 실제 소켓은 웹 브라우저(10)상에 위치되고, 참조부호(65b)로 도시된 대응하는 소켓은 클라이언트측 인터셉트 모듈(30)상에 위치되어 있다. 제 1 실제 소켓은 TCP 소켓으로서, 웹 브라우저(10)는 이 소켓을 통해 클라이언트측 인터셉트 모듈(30)로부터의 다른 접속을 요구한다.
웹 브라우저(10)가 새로운 TCP 접속을 요구하면, 실제 소켓(65b)에서 수신되는 통신은 실제 소켓(65a)을 통해 이루어진다. 이어서, 클라이언트측 인터셉트 모듈(30)은 웹 브라우저(10)와의 통신을 위해 또다른 실제 소켓을 생성할 것이다. 도 11에 도시된 바와 같이, 다수의 실제 소켓은 웹 브라우저(10)상에서 생성되고, 대응하는 실제 소켓도 클라이언트측 인터셉트 모듈(30)상에서 생성된다. 이들 실제 소켓은 웹 브라우저(10)상에 참조부호(60a∼64a)로 도시되고, 클라이언트측 인터셉트 모듈(30)상에 참조부호(60b∼64b)로 도시되어 있다. 이들 실제 소켓을 통해 웹 브라우저(10)는 클라이언트측 인터셉트 모듈(30)과의 통신을 수행한다. 실제 소켓(60a∼64a 및 60b∼64b)을 생성한 후, 이들 소켓을 통해 이루어지는 통신은 클라이언트측 인터셉트 모듈(30)을 외부 통신 링크(35)에 액세스하는 실제 소켓(36a)상에서 멀티플렉싱된다. 실제 소켓(36a 및 36b)은 요구가 컴퓨터(5)의 실제 소켓(37a)를 통해 컴퓨터(6)의 실제 소켓(37b)에 제공될 때 생성된다. 실제 소켓(37b)에 의한 접속 요구를 수신시, 실제 소켓(36a 및 36b)이 생성된다. 소켓(37a 및 37b)은 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈 사이의 통신을 위한 제 1 실제 소켓으로서 기능하고, 소켓(36a 및 36b)으로 도시된 두개의 모듈간의 접속을 설정하는 데에만 사용될 수 있다. 이들 각각의 소켓들은 표준 TCP/IP 프로토콜에 따라 동작한다. 제 2 컴퓨터(6)가 외부 통신 링크(35)를 통해 통신을 수신하면, 통신은 실제 소켓(36b)에서 수신된다. 이어서, 서버측 인터셉트 모듈(40)은 소켓(36b)에서 수신된 통신을 디멀티플렉싱하고, 이를 웹 서버(20)에 전송하는데 적합한 소켓에 제공한다. 따라서, 지정된 URL로부터 정보를 요구하기 위해 예를 들어, 소켓(60a)을 통해 소켓(60b)으로 제공되는 통신은 소켓(36a)상에서 멀티플렉싱되고, 소켓(36b)에 의해 수신되고, 서버측 인터셉트 모듈(40)에 의해 디멀티플렉싱되고, 소켓(60c)로부터 웹 서버(20)상의 소켓(60d)로 전송된다. 마찬가지로, 소켓(61a)상에서 발생된 통신은 소켓(61b)에 의해 수신되고, 클라이언트측 인터셉트 모듈(30)에 의해 멀티플렉싱되고, 소켓(36a)으로부터 소켓(36b)에 전송되며, 소켓(36b)에서 서버측 인터셉트 모듈(40)은 통신을 디멀티플렉싱하여 이를 소켓(61c)을 통해 소켓(61d)에 전송한다. 따라서, 소켓(60a 및 60b, 61a 및 61b, 62a 및 62b, 63a 및 63b, 64a 및 64b)은 통한 통신은 서버측 인터셉트 모듈(40)과 웹 서버(20) 사이의 소켓(60c 및 60d, 61c 및 61d, 62c 및 62d, 63c 및 63d, 64c 및 64d)의 각각의 대응하는 소켓상으로 전송된다.
유사한 방식으로, 웹 브라우저(10)로부터의 요구에 대한 웹 서버(20)의 응답은 또한 웹 서버(20)와 서버측 인터셉트 모듈(40)을 접속하는 소켓을 거쳐 외부 통신 링크(35)와 클라이언트측 인터셉트 모듈(30)을 통해 웹 브라우저(10)로 또한 전송된다. 따라서, 예를 들어 웹 서버(20)에 의해 개시된 응답은 소켓(60d)를 통해 소켓(60c)으로 전송되고, 서버측 인터셉트 모듈(40)에 의해 소켓(36b)상에서 멀티플렉싱되고, 외부 통신 링크(35)를 통해 소켓(36a)으로 전송된다. 이어서, 클라이언트측 인터셉트 모듈(30)은 통신을 디멀티플렉싱한 다음 이를 소켓(60b)에 제공하여 웹 브라우저(10)상의 소켓(60a)에 전송되도록 한다. 웹 브라우저(10) 또는 웹 서버(20)에 의해 사용되는 각각의 소켓에 대한 통신 경로도 이와 유사하게 설정될 수 있다. 본 발명은 웹 브라우저(10)와 웹 서버(20) 사이에 4개의 소켓 접속에 대해 기술되었지만, 본 기술 분야에 통상의 지식을 가진 자라면, 웹 브라우저(10)와 웹 서버(20) 사이에 통신을 액세스하는 소켓이 임의의 갯수로 제공될 수 있음을 이해할 것이다.
도 12는 클라이언트측 인터셉트 모듈(30)과 서버측 인터셉트 모듈(40)의 가상 소켓 시스템의 실시예를 도시한 블럭도이다. 이들 모듈 외부에 위치한 클라이언트측 인터셉트 모듈(30)과 웹 브라우저(10)간의 실제 소켓과, 서버측 인터셉트 모듈(40)과 웹 서버(20)간의 실제 소켓은 정규 TCP/IP 소켓으로서 기능한다. 따라서, 웹 브라우저(10)와 웹 서버(20)에 대한 가상 소켓의 사용을 명백하게 이해할 것이다.
이하, 도 12의 블럭도 및 도 13 내지 도 17의 흐름도에 대한 본 발명의 지정한 실시예가 기술될 것이다. 도 13은 도 12에 블럭(68)으로 도시된 소켓 관리자에 대한 흐름도이다. 도 13을 참조하면, 블럭(300)에서 클라이언트측 인터셉트 모듈(30)의 실제 소켓 관리자(68)가 생성된다. 실제 소켓 관리자(68)가 생성된 후, 관리자(68)는 도 12의 소켓(65b)으로서 도시된 제 1 실제 소켓을 생성한다. 이러한 제 1 실제 소켓의 생성은 도 13의 블럭(301)에 도시되어 있다. 도 13의 블럭(302)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈(30)에 상주하고 본 명세서에 클라이언트 소켓 관리자로서 또한 일컬어지는 소켓 관리자(68)는 제 1 실제 소켓(65b)상의 이벤트(event)를 대기한다. 제 1 실제 소켓(65b)상에서 이벤트가 수신되면, 도 13의 블럭(305)에 도시된 바와 같이 실제 소켓 관리자(68)는 이벤트를 검사하고, 이러한 검사를 기초로 하여 5개의 경로들 중 하나를 선택한다.
제 1 실제 소켓(65b)에서 수신된 통신 요구에 응답하여 실제 소켓이 생성되면, 도 13의 블럭(305)에서 블럭(306)으로 진행되는 경로에 나타난 바와 같이, 실제 소켓 관리자(68)는 실제 소켓을 실제 이벤트 리스트에 추가한다. 이어서, 블럭(307)에 도시된 바와 같이, 실제 소켓 관리자는 단방향 가상 소켓을 생성한다. 도 13의 블럭(308)에 도시된 바와 같이, 클라이언트측 인터셉트 모듈의 경우에 있어서, 실제 소켓 관리자는 생성된 가상 소켓에 대한 클라이언트측 인터셉트 모듈의 함수를 수행하는 애플리케이션 함수를 개시한다.
본 명세서에서 사용된 단방향 소켓(simplex socket) 또는 단향향 가상 소켓(simplex virtual socket)은 단일 소켓 또는 단일 애플리케이션과 직접 접속하는 소켓으로 지칭한다. 본 명세서에서 사용된 다중 소켓(multiplex socket)은 다수의 다른 소켓과 접속하는 소켓으로 지칭한다. 따라서, 다중 소켓은 멀티플렉싱 또는 디멀티플렉싱 함수를 수행하고, 단방향 소켓은 1 대 1 접속을 수행한다. 따라서, 예를 들어, 도 13의 블럭(306 내지 308)의 함수를 수행하는 경우, 클라이언트 소켓 관리자(68)는 제 1 실제 소켓(65b)에 의해 수신된 제 1 접속 요구에 응답하여 실제 소켓(60b) 및 단방향 가상 소켓(70)을 생성하고, 애플리케이션(80)의 클라이언트측 인터셉트 함수를 개시할 수 있다. 마찬가지로, 실제 소켓이 생성되는 차후의 이벤트의 경우, 실제 소켓 관리자는 실제 소켓(61b, 62b, 63b 또는 64b)와 단방향 가상 소켓(71, 72, 73 또는 74)을 생성하고, 생성된 실제 소켓 및 도 12에 블럭(81, 82, 83 또는 84)으로 도시된 가상 소켓에 대응하는 CSI를 개시할 수 있다.
이하, 도 12에 도시된 실제 소켓(60b), 단방향 가상 소켓(70) 및 클라이언트측 인터셉트 함수(80)에 대한 클라이언트측 인터셉트 함수의 동작이 기술될 것이다. 도 14의 블럭(325)은 클라이언트측 인터셉트 함수(80)의 생성을 나타낸다. 생성시, 블럭(326)으로 도시된 바와 같이, 클라이언트측 인터셉트 함수(80)는 단방향 가상 소켓(70)상의 이벤트를 대기한다. 이러한 대기 동작은 도 16-4에 도시되어 있는 가상 선택 함수를 수행함으로써 행해진다. 이벤트 수신시, 블럭(330)에 도시된 바와 같이 이벤트를 검사한다. 만일 이벤트가 폐쇄된 가상 소켓이면, 클라이언트측 인터셉트 함수(80)는 블럭(349)에 도시된 바와 같이 단방향 가상 소켓(70)을 제거하고 도 14의 블럭(350)에서 종료한다.
만일 이벤트가 데이타를 수신하면, 블럭(330)에서 블럭(331)으로 진행되는 경로가 선택되고, 클라이언트측 인터셉트 함수(80)는 도 16-3에 대해 본 명세서에서 기술된 가상 수신 동작을 실행함으로써 단방향 가상 소켓(70)으로부터 브라우저에 의해 개시된 통신을 수신한다. 이어서, 블럭(332)에 도시된 바와 같이 클라이언트측 인터셉트 함수는 전술한 바와 같이(예를 들어 도 3 및 도 7을 참조) 클라이언트측 인터셉트 모듈의 함수를 수행한다. 이어서, 클라이언트측 인터셉트 함수(80)는 클라이언트측 인터셉트 모듈(30)의 실제 소켓(36a)에 접속되는 다중 가상 소켓(90)을 생성한다. 실제 소켓(36a)은 서버측 인터셉트 모듈(40)상의 실제 소켓(36b)과 접속된다. 다중 가상 소켓의 생성은 도 14의 블럭(33)에 도시되어 있으며, 도 16-1을 참조하여 본 명세서에서 기술된 가상 생성 동작을 수행함으로써 행해진다. 블럭(334)은 웹 브라우저에 의해 개시된 통신에 대한 클라이언트측 인터셉트 함수(80)를 수행한 후, 웹 브라우저로부터 실제 소켓(60b) 및 단방향 가상 소켓(70)을 통해 수신된 정보를 전송하는 동작을 나타낸다. 이러한 통신은 도 16-2를 참조하여 본 명세서에 기술된 가상 전송 동작을 수행함으로써 다중 가상 소켓(90)에 큐잉(queue)된다. 클라이언트측 인터셉트 함수(80)는 요구를 다중 가상 소켓(90)에 큐잉한 후, 도 14의 블럭(335)에 도시된 바와 같이 다중 가상 소켓(90)에 큐잉된 데이타를 플러쉬하고, 이어서 블럭(336)에 도시된 다중 가상 소켓상의 이벤트를 대기한다. 가상 플러쉬 함수는 다중 가상 소켓의 큐로부터 데이타를 취하고 이를 실제 소켓(36a)에 제공하는 도 17-1을 참조하여 본 명세서에서 기술된 가상 플러쉬 동작을 수행함으로써 행해진다. 대기 동작은 도 16-4에 도시된 가상 선택 함수를 수행함으로써 행해질 수 있다. 이때, 클라이언트측 인터셉트 모듈은 웹 브라우저에 의해 개시된 통신을 인터셉트하고, 통신을 외부 통신 링크(35)를 통해 서버측 인터셉트 모듈로 전송한다.
도 13을 참조하면, 서버측 인터셉트 모듈(40) 또는 클라이언트측 인터셉트 모듈(30)의 소켓 관리자에 대한 흐름도가 도시되어 있다. 도 12의 블럭(69)에 도시된 바와 같이, 서버측 인터셉트 모듈의 실제 소켓 관리자 또는 서버 소켓 관리자는 블럭(68)에 도시된 클라이언트 소켓 관리자와 동일한 함수를 수행한다. 블럭(301)에 도시된 제 1 실제 소켓을 생성하는 경우, 서버측 인터셉트 모듈(30)은 서버측 인터셉트 모듈(40)과 관련된 클라이언트측 인터셉트 모듈(30)로부터 소켓에 대한 요구를 수신하기 위해 공지의 포트(37b)를 생성한다. 서버측 인터셉트 모듈(40)의 실제 소켓(36b)상에 실제 이벤트가 발생되면, 블럭(305)에 도시된 바와 같이 이벤트를 검사한다. 이 경우, 실제 소켓(36a)으로부터 데이타를 수신하는 이벤트이면, 도 13의 블럭(305)에서 블럭(320)으로 진행하는 경로가 선택된다. 실제 소켓(36b)상에서 수신된 데이타를 조사할 때, 예를 들어 데이타가 클라이언트측 인터셉트 모듈에 의해 전송된 웹 브라우저 개시 통신이면, 서버측 인터셉트 모듈(40)에 새로운 가상 소켓을 생성해야 한다. 따라서, 도 13의 블럭(320)에서 블럭(321)으로 진행하는 경로가 선택된다. 이어서, 서버 소켓 관리자(69)는 도 13의 블럭(321, 322, 323, 324)에 도시된 동작을 수행한다. 서버 소켓 관리자(69)는 블럭(321)에 도시된 바와 같이 다수의 가상 소켓(95)을 생성하고, 블럭(322)에 도시된 바와 같이 다수의 소켓 활성 타이머를 취소하고, 도 13의 블럭(323)의 블럭으로 도시되고 도 12의 블럭(85)으로 도시된 바와 같이 서버측 인터셉트 함수의 애플리케이션을 개시한다. 이어서, 실제 소켓(36b)에서 수신된 데이타는 다중 가상 소켓(95)에 큐잉되고, 가상 이벤트가 제공된다.
블럭(323)에 도시된 바와 같은 서버측 인터셉트 함수의 생성은 도 15의 블럭(360)에 도시되어 있다. 서버측 인터셉트 함수(85)를 생성한 후, 함수는 클라이언트측 인터셉트 모듈(30)로부터 제공되고 웹 브라우저에 의해 개시된 통신에 대응하는 다중 가상 소켓(95)으로부터 데이타를 수신한다. 이러한 동작은 도 15의 블럭(361)에 도시되어 있다. 블럭(362)에는 서버측 함수의 수행이 도시되어 있다(예를 들어, 도 5 및 도 9를 참조). 정보를 프로세싱한 후, 서버측 인터셉트 함수(85)는 가상 생성을 수행함으로써 단방향 가상 소켓(75)을 생성하며, 이러한 가상 생성 동작은 본 명세서에서 도 16-1을 참조하여 기술된다. 이러한 동작은 도 15의 블럭(363)에 도시되어 있다. 이어서, 서버측 인터셉트 함수(85)는 가상 전송을 수행함으로써 블럭(364)에 도시된 바와 같이 웹 브라우저에 의해 개시된 통신을 단방향 가상 소켓(75)에 전송하며, 이러한 가상 전송 동작은 본 명세서에서 도 16-2를 참조하여 기술된다. 이어서, 서버측 인터셉트 함수(85)는 가상 플러쉬(virtual flush)를 수행하여 단방향 가상 소켓(75)에 큐잉된 데이타를 실제 소켓(60C)으로 플러쉬하고, 단방향 가상 소켓(75)상의 이벤트를 대시한다. 가상 플러쉬 동작은 본 명세서에서 도 17-1을 참조하여 기술될 것이다. 전송 및 플러쉬 동작은 도 15의 블럭(364) 및 블럭(365)에 도시되어 있다. 서버측 인터셉트 함수(85)가 단방향 가상 소켓(75)을 생성하면, 이에 대응하는 실제 소켓(60c)도 또한 생성된다. 웹 브라우저에 의해 개시된 통신을 단방향 가상 소켓(75)에 전송함으로써, 서버측 인터셉트 함수(85)는 웹 브라우저에 의해 개시된 통신을 웹 서버에 전송한다.
서버측 인터셉트 모듈(40)이 실제 소켓(60c)상의 웹 서버로부터 응답을 수신하면, 실제 이벤트가 발생되고, 서버 소켓 관리자(69)는 도 13의 블럭(302)으로 진행하여 블럭(305)에 도시된 바와 같이 실제 소켓(60c)상에서 발생된 이벤트를 조사한다. 이 경우, 이벤트가 기존의 가상 소켓에 대한 데이타이면, 도 13의 블럭(320)에서 블럭(324)으로 진행되는 경로가 선택된다. 실제 소켓(60c)상에서 수신된 데이타는 가상 소켓(75)에 큐잉되고 가상 이벤트에 신호가 제공된다. 가상 이벤트가 제공되면, 가상측의 인터셉트 함수(85)는 도 15의 블럭(366)을 빠져나와 블럭(370)에서 이벤트를 조사한다. 이벤트가 폐쇄된 소켓이면, 에러 상태가 발생되고, 도 15의 블럭(375)에 도시된 바와 같이 에러 메시지는 응답으로서 구성된다. 그러나, 이벤트가 데이타 수신에 관한 것이면, 블럭(370)에서 블럭(371)으로 진행되는 경로가 선택되고, 도 16-3을 참조하여 본 명세서에서 기술된 바와 같이 서버측 인터셉트 함수(85)는 가상 수신을 수행하여, 블럭(371)에 도시된 바와 같이 단방향 가상 소켓(75)으로부터 서버 응답을 획득한다. 이어서, 서버측 인터셉트 함수(85)는 본 명세서에서 도 17-2에 대해 기술되고 블럭(372)으로 도시된 바와 같이 단방향 가상 소켓(75)을 가상적으로 폐쇄하고, 서버측 인터셉트 모듈에 대해 기술하고 블럭(373)에 도시된 응답을 프로세싱한다(예를 들어, 도 6 및 도 10을 참조).
도 15의 블럭(370)의 출력 경로가 블럭(375)에 대한 에러 경로 혹은 블럭(371)에 대한 데이타 경로이든지 간에, 블럭(374)에서 단방향 가상 소켓(75)이 제거된다. 이어서, 서버측 인터셉트 함수는 다중 가상 소켓(95)에 대한 가상 전송 동작을 수행하여, 블럭(376)에 도시된 바와 같이 웹 서버에 의해 개시된 통신이 클라이언트측 인터셉트 모듈(30)로 제공되도록 한다. 이어서, 서버측 인터셉트 함수(85)는 가상 플러쉬 동작을 수행하여 다중 가상 소켓(95)에 큐잉된 데이타를 플러쉬한다. 이들 동작은 블럭(377)에 도시되어 있다. 이어서, 도 15의 블럭(378)에 도시된 바와 같이 서버측 인터셉트 함수(85)는 가상 폐쇄 동작을 수행하여 다중 가상 소켓(95)을 폐쇄한다. 마지막으로, 블럭(379 및 380)에 도시된 바와 같이, 서버측 인터셉트 함수(85)는 다중 가상 소켓을 제거하여 종료한다.
서버측 인터셉트 함수는 다중 가상 소켓(95)에 대한 가상 전송 및 플러쉬 동작을 수행한다. 실제 소켓(36a) 및 클라이언트 소켓 관리자(68)상의 트리거 이벤트(trigger events)는 블럭(302)를 빠져나와 블럭(305)에 도시된 바와 같이 이벤트를 조사하며, 만일 실제 소켓(36a)상에서 데이타가 수신되면 도 13의 블럭(305)에서 블럭(320)으로 진행되는 경로가 선택되고, 데이타는 다중 가상 소켓(90)에 큐잉된다. 따라서, 실제 소켓(36a)이 실제 소켓(36b)으로부터 외부 통신 링크(35)를 통해 웹 서버 응답을 수신하면, 이 정보는 디멀티플렉싱되어 적절한 다중 가상 소켓으로 제공된다. 데이타를 수신하면 도 13의 블럭(324)에 도시된 바와 같이 가상 이벤트가 발생되고, 도 14의 블럭(336)은 종료되고, 클라이언트측 인터셉트 함수(80)는 도 14의 블럭(340)에 도시된 바와 같이 이벤트를 조사할 수 있다.
만일 이벤트가 폐쇄된 소켓 응답이면, 도 14의 블럭(340)에서 블럭(345)으로 진행되는 경로가 선택되고, 클라이언트측 인터셉트 함수(80)는 에러 메시시 응답을 생성하여 블럭(14)의 블럭(344)으로 진행한다. 만일 이벤트가 본 예의 경우와 같이 수신된 데이타이면, 도 14의 블럭(340)에서 블럭(341)으로 진행되는 경로가 선택되고, 클라이언트측 인터셉트 함수(80)는 가상 수신 동작을 수행하여 다중 가상 소켓(90)으로부터 응답을 수신한다. 이러한 수신 동작은 도 14의 블럭(341)에 도시되어 있다. 다중 가상 소켓(90)으로부터 데이타를 수신한 후, 블럭(342)에 도시된 바와 같이 클라이언트측 인터셉트 함수(80)는 가상 폐쇄 동작을 수행하여 다중 가상 소켓(90)을 폐쇄시킨다. 이어서, 블럭(343)에 도시된 바와 같이, 클라이언트측 인터셉트 함수(80)는클라이언트측 인터셉트 모듈에 대해 전술한 응답을 프로세싱한다(예를 들어, 도 4 및 도 8을 참조).
이어서, 블럭(340)을 출력하는 경로가 어느 쪽으로 선택되더라도, 블럭(344)의 동작이 수행된다. 클라이언트측 인터셉트 함수(80)는 블럭(344)에 도시된 바와 같이 다중 가상 소켓을 제거하고, 이어서 블럭(346)에 도시된 바와 같이 응답을 단방향 가상 소켓(70)을 거쳐 브라우저에 전송한다. 가상 전송 동작이 완료되면, 클라이언트측 인터셉트 함수(80)는 가상 플러쉬 동작을 수행하여 블럭(347)에 도시된 바와 같이 단방향 가상 소켓에 큐잉된 데이타를 실제 소켓(60b)에 플러쉬하고, 이어서 가상 폐쇄 동작을 수행하여 블럭(348)에 도시된 바와 같이 단방향 가상 소켓을 폐쇄한다. 클라이언트측 인터셉트 함수에 대한 단방향 가상 소켓이 폐쇄된 후, 도 14의 블럭(349 및 350)에 도시된 바와 같이 단방향 가상 소켓이 제거되고, 클라이언트측 인터셉트 함수가 종료된다.
본 발명은 단방향 및 다중 가상 소켓과 클라이언트측 인터셉트 및 서버측 인터셉트 함수의 생성의 하나의 지정한 실시예로 기술되었지만, 이들 다수의 함수들은 본 기술 분야에 통상의 지식을 가진 자라면 이해하듯이 단일 클라이언트측 인터셉트 모듈 또는 서버측 인터셉트 모듈내에서 생성될 수 있음을 이해할 것이다. 따라서, 본 발명에 따른 클라이언트측 인터셉트 모듈 및 서버측 인터셉트 모듈은 클라이언트측 인터셉트 모듈(30)과 서버측 인터셉트 모듈(40) 사이에서 TCP/IP 접속을 생성하고, 이어서 TCP/IP 접속을 유지하는 동안 TCP/IP상에서 웹 브라우저 또는 웹 서버에 의해 개시된 다수의 통신을 멀티플렉싱할 수 있다.
나머지 클라이언트 소켓 관리자 및 서버 소켓 관리자의 함수들은 도 16-1∼도 16-4 및 도 17-1 및 도 17-2를 참조하면 용이하게 이해될 수 있으며, 이들 도면은 도 14 및 도 15의 흐름도로 도시된 바와 같이 가상 생성, 가상 전송, 가상 수신, 가상 선택, 가상 플러쉬 또는 가상 폐쇄 동작이 실행될 때 클라이언트측 인터셉트 모듈 및 서버측 인터셉트 모듈에 의해 수행되는 동작을 나타낸다. 도 14의 블럭(333) 및 도 15의 블럭(363)에 도시된 바와 같이 가상 생성 동작이 수행되면, 도 16-1의 블럭(400)에서 개시되는 동작이 수행된다. 이어서, 블럭(405)에 도시된 바와 같이, 소켓 관리자는 실제 소켓을 필요로 하는지를 판정한다. 만일 기존의 실제 소켓에 접속되는 다중 가상 소켓을 생성하는 경우와 같이 실제 소켓이 이미 존재하면, 블럭(405)의 부정 경로가 선택되고, 가상 소켓은 블럭(409)에 도시된 바와 같이 실제 소켓에 접속된다. 그러나, 만일 실제 소켓을 필요로 하면, 블럭(405)의 긍정 경로가 선택된다. 이어서, 블럭(406)에서 실제 소켓이 생성된다. 이어서, 도 13의 블럭(302)에 도시된 바와 같은 감시를 위해 블럭(408)에서 실제 소켓은 이벤트 리스트에 추가된다. 실제 소켓이 생성되고 접속이 설정된 후, 블럭(409)에서 가상 소켓은 실제 소켓에 접속되고, 블럭(410)에서 생성 동작이 완료된다.
도 14의 블럭(334 및 246) 또는 도 15의 블럭(364 및 376)에 도시된 가상 전송 동작을 수행하기 위해, 도 16-2의 블럭(420)에서 동작이 수행된다. 데이타는 블럭(427)에 도시된 바와 같이 가상 소켓 큐에 추가되고, 이러한 추가 동작이 완료되면 블럭(428)에 도시된 바와 같이 전송 동작을 종료한다.
도 14의 블럭(331 및 341) 및 도 15의 블럭(361 및 371)에 도시된 가상 수신 동작은 도 16-3의 블럭(430)에서 개시되는 동작을 수행함으로써 행해진다. 블럭(435)에 도시된 바와 같이, 가상 소켓 큐를 평가하여, 가상 소켓 큐에 소정의 데이타가 존재하는지를 판정한다. 만일 가상 소켓 큐상에 데이타가 존재하면, 블럭(435)의 긍정 경로가 선택되고, 블럭(436)에 도시된 바와 같이 데이타는 수신 동작을 호출하는 함수에 반환된다. 만일 가상 소켓 큐상에 데이타가 존재하지 않고 소켓이 폐쇄로 표시되지 않으면, 판단 블럭(440)의 부정 경로가 선택되고, 블럭(441)에 도시된 바와 같이 영(nothing)을 반환한다. 그러나, 데이타가 큐상에 존재하지 않고 소켓이 폐쇄로 표시되면, 블럭(440)의 긍정 경로가 선택되고, 블럭(442)에 도시된 바와 같이 소켓은 폐쇄된 것으로 표시되고, 블럭(443)에 도시된 바와 같이 폐쇄된 소켓 응답은 수신을 요구하는 동작으로 반환된다.
도 14의 블럭(326 및 336) 및 도 15의 블럭(366)에서 수행되는 가상 선택 동작은 도 16-4의 블럭(445)에서 개시되는 동작을 수행함으로써 행해진다. 블럭(446)에 도시된 바와 같이, 선택된 가상 소켓에 대해 데이타 또는 가상 폐쇄 동작이 수행(pending)중인지를 우선 판정한다. 만일 데이타 또는 가상 폐쇄 동작이 수행중에 있지 않으면, 블럭(446)의 부정 경로가 선택되고, 블럭(447)에 도시된 바와 같이 선택된 가상 소켓상의 가상 이벤트를 대기하고, 블럭(448)에 도시된 바와 같이 이벤트를 수신한 후에 프로세스를 종료한다. 만일 데이타 또는 가상 폐쇄 동작이 선택된 가상 소켓에 대해 수행중이면, 가상 이벤트는 이미 발생되었으며, 블럭(446)의 긍정 경로가 선택되고, 블럭(448)에서 프로세스를 종료한다.
도 14의 블럭(335 및 347) 및 도 15의 블럭(365 및 377)에서의 가상 플러쉬 동작은 도 17-1의 블럭(450)에서 개시되는 동작을 수행함으로써 행해진다. 호출되면, 판단 블럭(455)에서 플러쉬되는 가상 소켓 큐에 소정의 데이타가 존재하는지를 판정한다. 가상 소켓 큐에 데이타가 존재하지 않으면, 플러쉬 동작은 종료되어 블럭(455)의 부정 경로의 호출 함수로 반환된다. 그러나, 큐에 데이타가 존재하면, 블럭(455)의 긍정 경로가 선택되고, 블럭(460)에서 가상 소켓 큐가 다중 소켓에 대한 것인지를 판정한다. 만일 다중 소켓이 존재하면, 블럭(461)에 도시된 바와 같이 소켓에 대해 고유의 식별자 및 전송자의 데이타의 크기를 나타내고 3 바이트로 구성된 소켓 헤더가 실제 소켓 버퍼에 부가된다. 다중 소켓이든지 혹은 단방향 소켓이든지 간에, 블럭(462)에 도시된 바와 같이 실제 소켓에 대한 데이타는 실제 소켓 버퍼로 이동된다. 실제 소켓 버퍼가 충만하면, 블럭(465)의 긍정 경로가 선택되고, 블럭(466)에 도시된 바와 같이 실제 소켓 버퍼로부터의 데이타는 실제 소켓상으로 전송된다. 만일 실제 버퍼가 충만되지 않으면, 블럭(465)의 부정 경로가 선택된다. 이어서, 가상 플러쉬 함수는 소정의 다른 다중 가상 소켓 큐상에 실제 소켓에 전송되는 소정의 다른 데이타가 존재하는지를 판정한다. 만일 조건이 긍정이면, 블럭(470)의 긍정 경로가 선택되고, 가상 플러쉬 동작이 다시 호출되어 다른 가상 소켓 큐들중 하나가 플러쉬될 때까지 실제 소켓 버퍼내의 데이타는 전송되지 않는다. 만일 다른 데이타가 존재하지 않거나 혹은 다른 다중 가상 소켓으로부터 데이타가 부가되면, 블럭(466)의 동작이 수행되고, 실제 소켓 버퍼내의 데이타는 실제 소켓상으로 전송된다. 가상 플러쉬 동작을 호출한 함수에 대응하는 가상 소켓 큐내의 모든 데이타가 실제 소켓으로 전송된 후에, 블럭(467)에서 가상 플러쉬 동작이 종료된다.
도 14의 블럭(342 및 348) 및 도 15의 블럭(372 및 378)에 도시된 가상 폐쇄 동작은 도 17-2의 블럭(480)에서 개시되는 동작을 수행함으로써 행해진다. 가상 폐쇄 동작이 호출되면, 블럭(485)에 도시된 바와 같이 가상 폐쇄가 다중 가상 소켓인지를 판정한다. 만일 가상 폐쇄가 다중 가상 소켓이면, 블럭(485)의 긍정 경로가 선택되고, 폐쇄 동작 표시자가 가상 소켓 큐에 부가된다. 가상 폐쇄가 다중 가상 소켓이든지 아니든지 간에 가상 폐쇄 동작은 블럭(487)에 도시된 바와 같이 가상 플러쉬 동작을 호출하고, 블럭(488)에서 실제 소켓으로부터의 접속을 해제한다. 이어서, 블럭(490)에 도시된 바와 같이 가상 폐쇄가 단방향 가상 소켓인지를 판정하며, 만일 조건이 충족되지 않으면, 블럭(495)의 부정 경로가 선택된다. 가상 폐쇄가 다중 가상 소켓이므로, 블럭(495)에서 가상 폐쇄가 최종 다중 가상 소켓인지를 판정하고, 만일 가상 폐쇄가 최종 다중 가상 소켓이면 블럭(496)에 도시된 바와 같이 다중 활성 타이머를 세트시킨다. 만일 가상 폐쇄가 최종 다중 가상 소켓이 아니면, 블럭(496)을 스킵(skip)한다.
블럭(496)에서 가상 폐쇄가 단방향 가상 소켓이면, 블럭(491)에 도시된 바와 같이 이벤트 리스트로부터 대응하는 실제 소켓이 제거되고, 블럭(492)에 도시된 바와 같이 실제 소켓이 폐쇄되고 제거된다. 이러한 소켓이 단방향 또는 다중 가상 소켓이든지 간에 가상 소켓은 블럭(497)에서 폐쇄된 것으로 표시되고, 블럭(498)에서 폐쇄 동작을 종료한다.
이하, 도 16-1 내지 도 16-4 및 도 17-1 및 도 17-2와 관련하여 도 13을 기술할 것이다. 실제 이벤트가 발생되면, 도 13의 블럭(302)을 통과하고, 소켓 관리자는 이벤트가 어떻게 발생되었는지를 기초로 하여 이벤트를 조사한다. 만일 이벤트가 도 17-2의 블럭(496)에서 세트된 다중 소켓 활성 타이머를 타이밍 아웃하면, 도 13의 블럭(305)에서 블럭(312)로 진행되는 경로가 선택된다. 이어서, 도 13에 도시된 바와 같이 블럭(312 및 313)의 동작은 소켓 관리자에 의해 수행되어, 다중 실제 소켓을 폐쇄하고, 클라이언트측 인터셉트 모듈을 서버측 인터셉트 모듈에 접속하는 소켓에 대응하는 다중 실제 소켓을 제거한다. 이어서, 소켓 관리자는 후속 실제 이벤트를 대기한다. 이러한 다중 이벤트 타이머는 블럭(322)에 도시된 바와 같이 다중 가상 소켓을 생성함으로써 리셋된다.
실제 소켓상에서 발생되는 이벤트가 웹 서버와 서버측 인터셉트 모듈 사이의 소켓 접속상에서 폐쇄 동작을 수행하는 웹 서버와 같은 실제 소켓 폐쇄이면, 도 13의 블럭(305)에서 블럭(309)로 진행되는 경로가 선택된다. 소켓 관리자는 블럭(309)에 도시된 바와 같이 실제 이벤트 리스트로부터 실제 소켓을 제거하고, 블럭(310)에 도시된 바와 같이 실제 소켓(들)로부터의 다수의 다중 소켓인 경우 가상 소켓(들)을 접속 해제한다. 이어서, 소켓 관리자는 가상 소켓을 폐쇄로서 표시하고 가상 이벤트에 신호한다. 이러한 동작은 블럭(311)에 도시되어 있으며, 가상 소켓 큐로부터 모든 데이타가 존재하지 않으면, 가상 소켓은 폐쇄될 것이다. 가상 소켓이 폐쇄된 것으로 표시된 후, 판단 블럭(315)에 도시된 바와 같이 소켓 관리자는 폐쇄되는 실제 소켓이 단방향 소켓인지를 판정한다. 이어서, 블럭(302)에 도시된 바와 같이 소켓 관리자는 후속 실제 이벤트를 대기한다.
실제 소켓이 폐쇄되는 단방향 실제 소켓이 아니면, 블럭(315)의 부정 경로가 선택되고, 이어서 소켓 관리자는 후속 실제 이벤트를 대기한다. 따라서, 다중 실제 소켓 또는 클라이언트측 인터셉트 모듈 및 서버측 인터셉트 모듈을 접속하는 소켓은 다중 소켓 활성 타이머를 타이밍 아웃함으로써 유일하게 폐쇄될 수 있다. 이로 인해, 모듈들 간의 최종 통신이 사용자에 의해 지정된 사전설정된 시간 동안 발생된 후에도 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈간의 접속을 계속 유지할 수 있다. 다중 소켓 활성 타이머를 타이밍 아웃하기 전에 브라우저로부터 차후 접속이 요구되는 경우, 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈간의 접속을 재설정하지 않고서도 통신을 수행할 수 있으며, 그 결과 접속을 재설정하기 위한 오버헤드를 줄일 수 있다.
도 13에 도시된 최종 경로는 실제 이벤트가 발생될 때 이벤트가 도 12의 다중 실제 소켓(들)(36a 또는 36b)상의 데이타를 수신하는 것에 관한 것이다. 다중 실제 소켓상의 데이타를 수신할 때 이 데이타를 조사하고, 도 17-2의 블럭(486)에서 가상 큐에 부가되는 것과 같이 데이타가 폐쇄 동작 표시자를 포함하면, 가상 폐쇄 동작이 수행되고, 블럭(320)에서 블럭(310)으로 진행되는 경로가 선택된다. 소켓 관리자는 블럭(310)에 도시된 바와 같이 실제 소켓상에서 수신된 데이타로 식별된 다중 가상 소켓을 실제 소켓으로부터 접속 해제시키고, 블럭(311)에 도시된 바와 같이 가상 소켓을 폐쇄로서 표시하고, 가상 이벤트에 신호한다. 폐쇄 소켓이 다중 가상 소켓에 대한 것이므로, 블럭(315)의 부정 경로가 선택되고, 소켓 관리자는 블럭(302)에 도시된 바와 같이 다른 실제 이벤트를 대기한다.
도 13∼17에 도시된 동작을 수행함으로써, 본 발명의 지정한 실시예에서는 외부 통신 링크를 통해 제 1 컴퓨터와 제 2 컴퓨터 사이에 지속적인 접속(persistent connection)을 설정한다. 지속적인 접속은 모든 웹 브라우저에 의해 개시된 통신이 완료되고 다수의 웹 브라우저에 의해 개시된 통신이 인터셉트될 때까지 유지되며, 지속적인 접속이 유지되는 동안 외부 통신 링크상에서 이들 통신이 멀티플렉싱된다. 이어서, 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하여 다수의 HTTP 데이타 스트림을 생성하고, 다수의 HTTP 데이타 스트림은 웹 서버에 제공된다. 또한, 지속적인 접속은 웹 서버에 의해 개시된 통신이 모두 완료될 때까지 유지된다. 지속적인 접속이 유지되는 동안 웹 서버에 의해 개시된 다수의 통신이 인터셉트되고 외부 통신 링크상에서 멀티플렉싱된다. 또한, 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하여, 다수의 HTTP 데이타 스트림 및 웹 서버에 제공되는 다수의 HTTP 데이타 스트림을 생성할 수 있다.
본 발명의 바람직한 실시예가 개시된 도면 및 명세서에서는 지정한 용어들이 사용되고 있지만, 이들 용어는 일반적이고 서술적인 의미로만 사용되며 이하의 특허 청구범위에 정의된 본 발명의 영역을 제한하고자 의도한 것은 아니다.

Claims (129)

  1. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 방법―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 단계와,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서, 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터로 전송하는 단계와,
    ④ 상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 수신하는 단계와,
    ⑤ 상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써, 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 브라우저로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 단계와,
    ⑥ 상기 웹 브라우저에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 서버에 제공하는 단계
    를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  2. 제 1 항에 있어서,
    상기 전송 단계는 상기 웹 브라우저에 의해 개시되는 변환된 통신을 무선 통신 링크를 통해 전송하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  3. 제 1 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 단계―상기 생성 단계 및 판정 단계들은 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재한다면 상기 변환 단계와, 전송 단계와, 수신 단계와, 재구성 단계와, 제공 단계를 대체함―와,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  4. 제 1 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하는 단계를 더 포함하며,
    상기 제공 단계는, 웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정 단계가 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하는 단계를 포함하며,
    상기 판정 단계는 상기 웹 브라우저에 상기 저장된 사용자 정의 정보가 제공되는 경우 상기 전송 단계와, 상기 수신 단계와, 상기 재구성 단계를 대체하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  5. 제 4 항에 있어서,
    통신 링크를 통해 상기 제 1 컴퓨터로부터 상기 사용자 정의 정보를 수신하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  6. 제 3 항에 있어서,
    상기 저장 단계는 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하는 단계를 더 포함하며,
    상기 판정 단계는 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하는 단계를 더 포함하며,
    상기 제공 단계는 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정 단계가 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  7. 제 6 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  8. 제 1 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 웹 서버로부터 수신되는 상기 HTTP 데이타 스트림을 저장하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 캐쉬에 저장되었는지를 판정하는 단계와,
    상기 브라우저에 의해 개시되는 통신에 관련한 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 상기 제 1 컴퓨터로 전송하는 단계와,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 단계를 더 포함하며,
    상기 재구성 단계는 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 요구 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하는 단계를 포함하며,
    상기 제공 단계는 상기 웹 브라우저에 의해 요구되는 정보에 대한 서버 요구 캐쉬 엔트리를 HTTP 데인터 스트림으로서 상기 웹 브라우저에 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  9. 제 6 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 서버로부터 HTTP 데이타 스트림을 저장하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 평가하여 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 존재하는지를 판정하는 단계와,
    상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 단계와,
    상기 외부 통신 링크상에 클라이언트/서버 지정 데이타 스트림을 전송함으로써 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 서버 요구 캐쉬 엔트리를 전송하는 단계와,
    상기 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 상기 제 2 컴퓨터에 의해 획득하는 단계를 더 포함하며,
    상기 재구성 단계는 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하는 단계를 포함하며,
    상기 제공 단계는 상기 웹 브라우저에 의해 요구되는 정보에 대응하는 서버 요구 캐쉬 엔트리를 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  10. 제 9 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하는 단계를 더 포함하며,
    상기 변환 단계는, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정 단계가 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  11. 제 9 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 단계를 더 포함하며,
    상기 변환 단계는 상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신할 때와 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었을 때 사이의 시간 간격을 산출하여 엔트리 수명(entry age) 데이타를 제공하는 단계를 포함하며,
    상기 전송 단계는 상기 제 1 컴퓨터에 대한 코히어런트 엔트리 응답―이는 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리에 대한 엔트리 수명 데이타를 포함함―을 상기 외부 통신 링크를 통해 클라이언트/서버 지정 프로토콜로서 전송하는 단계를 포함하며,
    상기 재구성 단계는 상기 제 1 컴퓨터의 현재 시각으로부터 상기 코히어런트 엔트리 응답으로부터 수신되는 엔트리 수명 데이타를 감산함으로써 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리 시각 기록을 갱신하는 단계를 포함하며,
    상기 제공 단계는, 상기 외부 통신 링크로부터 코히어런트 엔트리 응답이 수신되는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리로서 저장된 HTTP 데이타 스트림을 HTTP 데이타 스트림으로서 상기 웹 브라우저로 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  12. 제 1 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 방법은
    클라이언트 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하는 단계와,
    서버 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하는 단계와,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하는 단계와,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하는 단계와,
    상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하는 단계와,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하는 단계와,
    상기 웹 브라우저에 대한 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하는 단계와,
    상기 제 2 컴퓨터에 의해 상기 외부 통신 링크를 통해 전송되는 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 단계를 더 포함하며,
    상기 재구성 단계는 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 단계를 포함하며,
    상기 제공 단계는 상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  13. 제 12 항에 있어서,
    상기 서버 CGI 기본 형태가 클라이언트 CGI 기본 형태와 동일한지를 판정하는 단계를 더 포함하며,
    상기 전송 단계는 상기 서버 CGI 기본 형태를 전송하는 단계와 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 단계를 포함하며,
    상기 재구성 단계는 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 단계와,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  14. 제 12 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하는 단계와,
    만약 CGI 차분 데이타가 더 큰 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하는 단계를 더 포함하며,
    상기 비교 단계 및 상기 전송 단계는 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  15. 제 1 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 단계와,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 단계를 더 포함하며,
    상기 인터셉트 단계는 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하는 단계와 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  16. 제 15 항에 있어서,
    상기 재구성 단계는 복수의 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하는 단계를 포함하며,
    상기 제공 단계는 상기 복수의 HTTP 데이타 스트림을 상기 웹 서버에 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  17. 제 1 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하는 단계와,
    브라우저 헤더 정보를 제공하도록 상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하는 단계를 더 포함하며,
    상기 전송 단계는 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 단계를 포함하며,
    상기 재구성 단계는 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 브라우저 헤더 정보를 조합하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  18. 제 1 항에 있어서,
    상기 외부 통신 링크에 HTTP 데이타 스트림을 전송하기 이전에 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 캡쳐하는(capturing) 단계와,
    상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환시키는 단계와,
    상기 웹 서버에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 단계와,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 단계와,
    상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크를 통해 수신된 상기 클라이언트/서버 지정 데이타 스트림으로부터 재건하는 단계와,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  19. 제 18 항에 있어서,
    상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 제공하는 단계와,
    서버 헤더 정보를 제공하도록 상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하는 단계를 더 포함하며,
    상기 변환 단계는 상기 웹 서버에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 단계를 포함하며,
    상기 재건 단계는 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 서버 헤더 정보를 조합하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  20. 제 18 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 단계와,
    웹 서버에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 단계를 더 포함하며,
    상기 캡쳐 단계는 웹 서버에 의해 개시되는 복수의 통신을 인터셉트하는 단계와 지속적인 접속이 유지되는 동안 상기 외부 통신 링크상에 상기 복수의 통신을 멀티플렉싱하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  21. 제 20 항에 있어서,
    상기 재건 단계는 복수의 HTTP 데이타 스트림을 생성하도록 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하는 단계를 포함하며,
    상기 제공 단계는 상기 웹 서버에 복수의 HTTP 데이타 스트림을 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  22. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 방법―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 단계와,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 서버에 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  23. 제 22 항에 있어서,
    상기 전송 단계는 무선 통신 링크를 통해 상기 웹 브라우저에 의해 개시되는 변환된 통신을 전송하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  24. 제 22 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 단계―상기 생성 단계 및 판정 단계들은 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재한다면 상기 변환 단계와 전송 단계를 대체함―와,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  25. 제 22 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하는 단계와,
    웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정 단계가 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하는 단계를 더 포함하며,
    상기 판정 단계 및 제공 단계는 상기 웹 브라우저에 상기 저장된 사용자 정의 정보가 제공되는 경우 상기 전송 단계를 대체하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  26. 제 25 항에 있어서,
    상기 통신 링크를 통해 상기 제 1 컴퓨터로부터 사용자 정의 정보를 수신하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  27. 제 24 항에 있어서,
    상기 저장 단계는 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하는 단계를 더 포함하며,
    상기 판정 단계는 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하는 단계를 더 포함하며,
    상기 제공 단계는 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정 단계가 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  28. 제 27 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  29. 제 22 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 방법은
    클라이언트 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하는 단계와,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하는 단계와,
    HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 단계와,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  30. 제 29 항에 있어서,
    상기 재구성 단계는 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 단계와,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  31. 제 22 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 단계와,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 단계를 더 포함하며,
    상기 인터셉트 단계는 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하는 단계와 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  32. 제 31 항에 있어서,
    상기 제 2 컴퓨터로부터 상기 외부 통신 링크를 통해 클라이언트/서버 지정 데이타 스트림을 수신하는 단계와,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하기 위해, 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하여, 복수의 HTTP 데이타 스트림을 생성하는 단계와,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  33. 제 22 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하는 단계를 더 포함하며,
    상기 전송 단계는 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  34. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 방법―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 단계와,
    ② 상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    ③ 상기 웹 서버에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  35. 제 34 항에 있어서,
    상기 제 2 컴퓨터에 상주하는 캐쉬내의 브라우저에 의해 개시되는 통신에 응답적으로, 상기 웹 서버로부터 수신될 HTTP 데이타 스트림을 저장하여, 서버 요구 캐쉬 엔트리를 생성하는 단계와,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 상기 캐쉬내에 저장되었는지를 판정하는 단계를 더 포함하며,
    상기 변환 단계는 상기 브라우저에 의해 개시되는 통신에 관련한 상기 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 단계를 포함하며,
    상기 전송 단계는 상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  36. 제 35 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하는 단계를 더 포함하며,
    상기 변환 단계는, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정 단계가 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  37. 제 35 항에 있어서,
    웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  38. 제 34 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 방법은
    서버 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하는 단계와,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하는 단계를 더 포함하며,
    상기 인터셉트 단계는 상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하는 단계와,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하는 단계를 포함하며,
    상기 전송 단계는 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  39. 제 38 항에 있어서,
    상기 서버 CGI 기본 형태가 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태와 동일한지를 판정하는 단계를 더 포함하며,
    상기 전송 단계는 상기 서버 CGI 기본 형태를 전송하는 단계와 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 단계를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  40. 제 38 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하는 단계와,
    만약 CGI 차분 데이타가 더 큰 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하는 단계를 더 포함하며,
    상기 비교 단계 및 상기 전송 단계는 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  41. 제 34 항에 있어서,
    웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 방법.
  42. 제 1 컴퓨터상에 상주하는 클라이언트 애플리케이션을 구비하며 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 서버 애플리케이션과 통신하는 클라이언트/서버 시스템의 성능을 향상시키는 방법―상기 클라이언트 애플리케이션 및 서버 애플리케이션은 클라이언트와 서버 사이의 통신을 위해 클라이언트/서버 독립 통신 프로토콜을 사용하며, 상기 제 1 컴퓨터내의 클라이언트 애플리케이션과 제 2 컴퓨터내의 서버 애플리케이션 사이의 적어도 한 통신 세그먼트가 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 원격지의 클라이언트에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하는 단계와,
    ② 상기 클라이언트에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    ③ 상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하는 단계와,
    ④ 상기 외부 통신 링크를 통해 전송된 통신을 수신하는 단계와,
    ⑤ 상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 상기 클라이언트/서버 독립 통신 프로토콜로 변환하는 단계와,
    ⑥ 상기 원격지의 클라이언트에 의해 개시되는 통신을 상기 클라이언트/서버 독립 통신 프로토콜의 서버에 제공하는 단계
    를 포함하는 클라이언트/서버 시스템의 성능 향상 방법.
  43. 제 42 항에 있어서,
    상기 서버에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하는 단계와,
    상기 서버에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하는 단계와,
    상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하는 단계와,
    상기 외부 통신 링크를 통해 전송된 통신을 수신하는 단계와,
    상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환하는 단계와,
    상기 서버에 의해 개시되는 통신을 클라이언트/서버 독립 통신 프로토콜의 원격지 클라이언트에 제공하는 단계를 더 포함하는 클라이언트/서버 시스템의 성능 향상 방법.
  44. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 장치―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 수단과,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서, 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터로 전송하는 수단과,
    ④ 상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 수신하는 수단과,
    ⑤ 상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써, 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 브라우저로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 수단과,
    ⑥ 상기 웹 브라우저에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 서버에 제공하는 수단
    를 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  45. 제 44 항에 있어서,
    상기 전송 수단은 상기 웹 브라우저에 의해 개시되는 변환된 통신을 무선 통신 링크를 통해 전송하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  46. 제 44 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  47. 제 44 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하는 수단을 더 포함하며,
    상기 제공 수단은, 웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정 수단이 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  48. 제 46 항에 있어서,
    상기 제 1 컴퓨터로부터의 사용자 정의 정보를 상기 통신 링크를 통해 수신하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  49. 제 44 항에 있어서,
    상기 저장 수단은 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하는 수단을 더 포함하며,
    상기 판정 수단은 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하는 수단을 더 포함하며,
    상기 제공 수단은 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  50. 제 49 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  51. 제 44 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 웹 서버로부터 수신되는 상기 HTTP 데이타 스트림을 저장하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 캐쉬에 저장되었는지를 판정하는 수단과,
    상기 브라우저에 의해 개시되는 통신에 관련한 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 상기 제 1 컴퓨터로 전송하는 수단과,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 수단을 더 포함하며,
    상기 재구성 수단은 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 요구 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하는 수단을 포함하며,
    상기 제공 수단은 상기 웹 브라우저에 의해 요구되는 정보에 대한 서버 요구 캐쉬 엔트리를 HTTP 데인터 스트림으로서 상기 웹 브라우저에 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  52. 제 49 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 서버로부터 HTTP 데이타 스트림을 저장하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 평가하여 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 수단과,
    상기 외부 통신 링크상에 클라이언트/서버 지정 데이타 스트림을 전송함으로써 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 서버 요구 캐쉬 엔트리를 전송하는 수단과,
    상기 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 상기 제 2 컴퓨터에 의해 획득하는 수단을 더 포함하며,
    상기 재구성 수단은 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하는 수단을 포함하며,
    상기 제공 수단은 상기 웹 브라우저에 의해 요구되는 정보에 대응하는 서버 요구 캐쉬 엔트리를 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  53. 제 52 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하는 수단을 더 포함하며,
    상기 변환 수단은, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  54. 제 52 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 수단을 더 포함하며,
    상기 변환 수단은 상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신할 때와 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었을 때 사이의 시간 간격을 산출하여 엔트리 수명(entry age) 데이타를 제공하는 수단을 포함하며,
    상기 전송 수단은 상기 제 1 컴퓨터에 대한 코히어런트 엔트리 응답―이는 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리에 대한 엔트리 수명 데이타를 포함함―을 상기 외부 통신 링크를 통해 클라이언트/서버 지정 프로토콜로서 전송하는 수단을 포함하며,
    상기 재구성 수단은 상기 제 1 컴퓨터의 현재 시각으로부터 상기 코히어런트 엔트리 응답으로부터 수신되는 엔트리 수명 데이타를 감산함으로써 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리 시각 기록을 갱신하는 수단을 포함하며,
    상기 제공 수단은, 상기 외부 통신 링크로부터 코히어런트 엔트리 응답이 수신되는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리로서 저장된 HTTP 데이타 스트림을 HTTP 데이타 스트림으로서 상기 웹 브라우저에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  55. 제 44 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 인터셉트된 통신은 인터셉트된 CGI 요구이며,
    클라이언트 CGI 기본 형태를 제공하도록, 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    서버 CGI 기본 형태를 제공하도록, 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하는 수단과,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하는 수단과,
    상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하는 수단과,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하는 수단과,
    상기 웹 브라우저에 대한 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하는 수단과,
    상기 제 2 컴퓨터에 의해 상기 외부 통신 링크를 통해 전송되는 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 수단을 더 포함하며,
    상기 재구성 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 수단을 포함하며,
    상기 제공 수단은 상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  56. 제 55 항에 있어서,
    상기 서버 CGI 기본 형태가 클라이언트 CGI 기본 형태와 동일한지를 판정하는 수단을 더 포함하며,
    상기 전송 수단은 상기 서버 CGI 기본 형태를 전송하는 수단과 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 수단을 포함하며,
    상기 재구성 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 수단과,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  57. 제 56 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하는 수단과,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 크다고 상기 판정 수단이 판정하는 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하는 수단을 더 포함하며,
    상기 비교 수단 및 상기 전송 수단은 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  58. 제 44 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 수단을 더 포함하며,
    상기 인터셉트 수단은 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하는 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  59. 제 58 항에 있어서,
    상기 재구성 수단은 복수의 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하는 수단을 포함하며,
    상기 제공 수단은 상기 복수의 HTTP 데이타 스트림을 상기 웹 서버에 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  60. 제 44 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하는 수단과,
    브라우저 헤더 정보를 제공하도록 상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하는 수단을 더 포함하며,
    상기 전송 수단은 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 수단을 포함하며,
    상기 재구성 수단은 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 브라우저 헤더 정보를 조합하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  61. 제 44 항에 있어서,
    상기 외부 통신 링크에 HTTP 데이타 스트림을 전송하기 이전에 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 캡쳐하는(capturing) 수단과,
    상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환시키는 수단과,
    상기 웹 서버에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 수단과,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하는 수단과,
    상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크를 통해 수신된 상기 클라이언트/서버 지정 데이타 스트림으로부터 재건하는 수단과,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  62. 제 61 항에 있어서,
    상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 제공하는 수단과,
    서버 헤더 정보를 제공하도록 상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하는 수단을 더 포함하며,
    상기 변환 수단은 상기 웹 서버에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 수단을 포함하며,
    상기 재건 수단은 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 서버 헤더 정보를 조합하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  63. 제 61 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 수단과,
    웹 서버에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 수단을 더 포함하며,
    상기 캡쳐 수단은 웹 서버에 의해 개시되는 복수의 통신을 인터셉트하는 수단과 지속적인 접속이 유지되는 동안 상기 외부 통신 링크상에 상기 복수의 통신을 멀티플렉싱하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  64. 제 63 항에 있어서,
    상기 재건 수단은 복수의 HTTP 데이타 스트림을 생성하도록 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하는 수단을 포함하며,
    상기 제공 수단은 상기 웹 서버에 복수의 HTTP 데이타 스트림을 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  65. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 장치―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 수단과,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 서버에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  66. 제 65 항에 있어서,
    상기 전송 수단은 무선 통신 링크를 통해 상기 웹 브라우저에 의해 개시되는 변환된 통신을 전송하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  67. 제 65 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  68. 제 65 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하는 수단과,
    웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정 수단이 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  69. 제 68 항에 있어서,
    상기 통신 링크를 통해 상기 제 1 컴퓨터로부터 사용자 정의 정보를 수신하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  70. 제 67 항에 있어서,
    상기 저장 수단은 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하는 수단을 더 포함하며,
    상기 판정 수단은 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하는 수단을 더 포함하며,
    상기 제공 수단은 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  71. 제 70 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하는 단계를 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  72. 제 65 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 장치는
    클라이언트 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하는 수단과,
    HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 수단과,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  73. 제 72 항에 있어서,
    상기 재구성 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하는 수단과,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  74. 제 65 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 수단을 더 포함하며,
    상기 인터셉트 수단은 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하는 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  75. 제 74 항에 있어서,
    상기 제 2 컴퓨터로부터 상기 외부 통신 링크를 통해 클라이언트/서버 지정 데이타 스트림을 수신하는 수단과,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하기 위해, 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하여, 복수의 HTTP 데이타 스트림을 생성하는 수단과,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  76. 제 65 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하는 수단을 더 포함하며,
    상기 전송 수단은 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  77. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션과 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션의 성능을 향상시키는 장치―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하는 수단과,
    ② 상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    ③ 상기 웹 서버에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  78. 제 77 항에 있어서,
    상기 제 2 컴퓨터에 상주하는 캐쉬내의 브라우저에 의해 개시되는 통신에 응답적으로, 상기 웹 서버로부터 수신될 HTTP 데이타 스트림을 저장하여, 서버 요구 캐쉬 엔트리를 생성하는 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 상기 캐쉬내에 저장되었는지를 판정하는 수단을 더 포함하며,
    상기 변환 수단은 상기 브라우저에 의해 개시되는 통신에 관련한 상기 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 수단을 포함하며,
    상기 전송 수단은 상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  79. 제 78 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하는 수단을 더 포함하며,
    상기 변환 수단은, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키는 수단을 더 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  80. 제 78 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하는 수단을 더 포함하며,
    상기 변환 수단은 상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신할 때와 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었을 때 사이의 시간 간격을 산출하여 엔트리 수명(entry age) 데이타를 제공하는 수단을 포함하며,
    상기 전송 수단은 상기 제 1 컴퓨터에 대한 코히어런트 엔트리 응답―이는 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리에 대한 엔트리 수명 데이타를 포함함―을 상기 외부 통신 링크를 통해 클라이언트/서버 지정 프로토콜로서 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  81. 제 77 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 장치는
    서버 CGI 기본 형태를 제공하도록, 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하는 수단과,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하는 수단을 더 포함하며,
    상기 인터셉트 수단은 상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하는 수단과,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하는 수단을 포함하며,
    상기 전송 수단은 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  82. 제 81 항에 있어서,
    상기 서버 CGI 기본 형태가 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태와 동일한지를 판정하는 수단을 더 포함하며,
    상기 전송 수단은 상기 서버 CGI 기본 형태를 전송하는 수단과 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  83. 제 81 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하는 수단과,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 크다고 상기 판정 수단이 판정하는 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하는 수단을 더 포함하며,
    상기 비교 수단 및 상기 전송 수단은 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  84. 제 77 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하는 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하는 수단을 더 포함하며,
    상기 인터셉트 수단은 웹 서버에 의해 개시되는 복수의 통신을 인터셉트하는 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키는 수단을 포함하는 웹 브라우저 애플리케이션 및 웹 서버 애플리케이션의 성능 향상 장치.
  85. 제 1 컴퓨터상에 상주하는 클라이언트 애플리케이션을 구비하며 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 서버 애플리케이션과 통신하는 클라이언트/서버 시스템의 성능을 향상시키는 장치―상기 클라이언트 애플리케이션 및 서버 애플리케이션은 클라이언트와 서버 사이의 통신을 위해 클라이언트/서버 독립 통신 프로토콜을 사용하며, 상기 제 1 컴퓨터내의 클라이언트 애플리케이션과 제 2 컴퓨터내의 서버 애플리케이션 사이의 적어도 한 통신 세그먼트가 외부 통신 링크를 통해 수행됨―에 있어서,
    ① 상기 원격지의 클라이언트에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하는 수단과,
    ② 상기 클라이언트에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    ③ 상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하는 수단과,
    ④ 상기 외부 통신 링크를 통해 전송된 통신을 수신하는 수단과,
    ⑤ 상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 상기 클라이언트/서버 독립 통신 프로토콜로 변환하는 수단과,
    ⑥ 상기 원격지의 클라이언트에 의해 개시되는 통신을 상기 클라이언트/서버 독립 통신 프로토콜의 서버에 제공하는 수단
    을 포함하는 클라이언트/서버 시스템의 성능 향상 장치.
  86. 제 85 항에 있어서,
    상기 서버에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하는 수단과,
    상기 서버에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하는 수단과,
    상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하는 수단과,
    상기 외부 통신 링크를 통해 전송된 통신을 수신하는 수단과,
    상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환하는 수단과,
    상기 서버에 의해 개시되는 통신을 클라이언트/서버 독립 통신 프로토콜의 원격지 클라이언트에 제공하는 수단을 더 포함하는 클라이언트/서버 시스템의 성능 향상 장치.
  87. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    컴퓨터로 판독가능한 프로그램 코드 수단이 매립된 컴퓨터로 판독가능한 저장매체를 구비하되, 상기 컴퓨터로 판독가능한 프로그램 코드 수단은,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서, 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터로 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ④ 상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 수신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ⑤ 상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써, 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 브라우저로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ⑥ 상기 웹 브라우저에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 서버에 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단
    을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  88. 제 87 항에 있어서,
    상기 전송을 위한 컴퓨터 판독가능한 프로그램 단계는 상기 웹 브라우저에 의해 개시되는 변환된 통신을 무선 통신 링크를 통해 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  89. 제 87 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  90. 제 87 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은, 웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정을 위한 컴퓨터 판독가능한 프로그램 코드 수단이 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  91. 제 90 항에 있어서,
    통신 링크를 통해 상기 제 1 컴퓨터로부터 상기 사용자 정의 정보를 수신하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  92. 제 87 항에 있어서,
    상기 저장을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 판정을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정을 위한 컴퓨터 판독가능한 프로그램 코드 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  93. 제 92 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  94. 제 87 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 웹 서버로부터 수신되는 상기 HTTP 데이타 스트림을 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 캐쉬에 저장되었는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 브라우저에 의해 개시되는 통신에 관련한 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 외부 통신 링크를 통해 상기 제 1 컴퓨터로 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 요구 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 브라우저에 의해 요구되는 정보에 대한 서버 요구 캐쉬 엔트리를 HTTP 데인터 스트림으로서 상기 웹 브라우저에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  95. 제 92 항에 있어서,
    서버 요구 캐쉬 엔트리를 생성하도록 상기 제 2 컴퓨터내에 상주하는 캐쉬의 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 서버로부터 HTTP 데이타 스트림을 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 평가하여, 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크상에 클라이언트/서버 지정 데이타 스트림을 전송함으로써 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 서버 요구 캐쉬 엔트리를 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크를 통해 전송된 클라이언트/서버 지정 데이타 스트림을 상기 제 2 컴퓨터에 의해 획득하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환하므로써, 서버 캐쉬 엔트리에 대응하는 HTTP 데이타 스트림을 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 재구성하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 브라우저에 의해 요구되는 정보에 대응하는 서버 요구 캐쉬 엔트리를 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  96. 제 95 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 변환을 위한 컴퓨터 판독가능한 프로그램 코드 수단 단계는, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정을 위한 컴퓨터 판독가능한 프로그램 코드 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  97. 제 95 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 변환을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신할 때와 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었을 때 사이의 시간 간격을 산출하여 엔트리 수명(entry age) 데이타를 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 전송을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 제 1 컴퓨터에 대한 코히어런트 엔트리 응답―이는 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리에 대한 엔트리 수명 데이타를 포함함―을 상기 외부 통신 링크를 통해 클라이언트/서버 지정 프로토콜로서 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 제 1 컴퓨터의 현재 시각으로부터 상기 코히어런트 엔트리 응답으로부터 수신되는 엔트리 수명 데이타를 감산함으로써 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리 시각 기록을 갱신하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은, 상기 외부 통신 링크로부터 코히어런트 엔트리 응답이 수신되는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리로서 저장된 HTTP 데이타 스트림을 HTTP 데이타 스트림으로서 상기 웹 브라우저로 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  98. 제 87 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 인터셉트된 통신은 인터셉트된 CGI 요구이며,
    상기 컴퓨터 프로그램 제품은
    클라이언트 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    서버 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 대한 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 제 2 컴퓨터에 의해 상기 외부 통신 링크를 통해 전송되는 상기 클라이언트/서버 지정 데이타 스트림을 획득하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  99. 제 98 항에 있어서,
    상기 서버 CGI 기본 형태가 클라이언트 CGI 기본 형태와 동일한지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 전송을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 서버 CGI 기본 형태를 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  100. 제 99 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 크다고 상기 판정을 위한 컴퓨터 판독가능한 프로그램 코드 수단이 판정하는 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 비교를 위한 컴퓨터 판독가능한 프로그램 코드 수단 및 상기 전송을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  101. 제 87 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 인터셉트를 위한 컴퓨터 판독가능한 프로그램 코드 수단은 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  102. 제 101 항에 있어서,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 복수의 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 복수의 HTTP 데이타 스트림을 상기 웹 서버에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  103. 제 87 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    브라우저 헤더 정보를 제공하도록 상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 전송을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 재구성을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 브라우저 헤더 정보를 조합하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  104. 제 87 항에 있어서,
    상기 외부 통신 링크에 HTTP 데이타 스트림을 전송하기 이전에 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 캡쳐하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환시키기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 서버에 의해 개시되는 변환된 통신을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크를 통해 전송된 상기 클라이언트/서버 지정 데이타 스트림을 획득하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 클라이언트/서버 지정 통신 프로토콜로 수신된 클라이언트/서버 지정 데이타 스트림을 HTTP 데이타 스트림으로 변환함으로써 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크를 통해 수신된 상기 클라이언트/서버 지정 데이타 스트림으로부터 재건하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 상기 웹 브라우저에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  105. 제 104 항에 있어서,
    상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    서버 헤더 정보를 제공하도록 상기 제 2 컴퓨터의 사전정의된 특성에 대응하는 상기 컴퓨터 지정 정보를 저장하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    상기 변환을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 서버에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 재건을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 HTTP 데이타 스트림을 생성하도록 상기 클라이언트/서버 지정 데이타 스트림과 상기 서버 헤더 정보를 조합하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  106. 제 104 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과,
    웹 서버에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 캡쳐를 위한 컴퓨터 판독가능한 프로그램 코드 수단은 웹 서버에 의해 개시되는 복수의 통신을 인터셉트하기 위한 컴퓨터 판독가능한 프로그램 코드 수단과 지속적인 접속이 유지되는 동안 상기 외부 통신 링크상에 상기 복수의 통신을 멀티플렉싱하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  107. 제 106 항에 있어서,
    상기 재건을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 복수의 HTTP 데이타 스트림을 생성하도록 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하며,
    상기 제공을 위한 컴퓨터 판독가능한 프로그램 코드 수단은 상기 웹 서버에 복수의 HTTP 데이타 스트림을 제공하기 위한 컴퓨터 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  108. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    컴퓨터로 판독가능한 프로그램 코드 수단이 매립된 컴퓨터로 판독가능한 저장매체를 구비하되, 상기 컴퓨터로 판독가능한 프로그램 코드 수단은,
    ① 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ② 상기 웹 브라우저에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ③ 상기 웹 브라우저에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 서버에 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  109. 제 108 항에 있어서,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 무선 통신 링크를 통해 상기 웹 브라우저에 의해 개시되는 변환된 통신을 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  110. 제 108 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 캐쉬의 웹 서버에 대해 개시되는 웹 브라우저의 통신에 응답적으로, 상기 웹 브라우저에 의해 수신될 HTTP 데이타 스트림을 저장하여, 상기 웹 서버에 대한 웹 브라우저의 통신에 대응하는 클라이언트 캐쉬 엔트리를 생성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  111. 제 108 항에 있어서,
    상기 제 1 컴퓨터에 상주하는 사용자 정의 정보를 제공하도록 지정 웹 브라우저 정보 요구와 관련된 사용자 정의 정보를 저장하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여, 웹 브라우저에 의해 요구되는 정보가 사용자 정의 정보가 저장되는 요구에 대응하는 지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    웹 브라우저에 의해 개시되는 통신이 사용자 정의 정보가 저장되는 요구에 대응한다고 상기 판정 단계가 판정하는 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 웹 브라우저에 상기 저장된 사용자 정의 정보를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  112. 제 111 항에 있어서,
    상기 통신 링크를 통해 상기 제 1 컴퓨터로부터 사용자 정의 정보를 수신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  113. 제 110 항에 있어서,
    상기 저장을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 클라이언트 캐쉬 엔트리 시각을 기록하도록 클라이언트 캐쉬 엔트리 생성 시간을 저장하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 판정을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 클라이언트 캐쉬 엔트리 시각 기록을 평가하여, 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간(coherency time)내에 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 생성되었는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 제공을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 웹 브라우저가 상기 정보를 요구하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 클라이언트 캐쉬 엔트리가 생성되었음을 상기 판정을 위한 컴퓨터로 판독가능한 프로그램 코드 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 응답하여 상기 웹 브라우저에 클라이언트 캐쉬 엔트리를 HTTP 데이타 스트림으로서 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  114. 제 113 항에 있어서,
    상기 웹 브라우저의 다수의 인스탄스(instances)를 통해 클라이언트 캐쉬 엔트리를 유지하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  115. 제 108 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 컴퓨터 프로그램 제품은
    클라이언트 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    클라이언트 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 1 컴퓨터내에 상주하는 캐쉬내의 CGI에 상기 웹 브라우저에 제공될 HTTP 데이타 스트림을 저장하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 클라이언트 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 서버에 의해 개시되는 통신을 HTTP 데이타 스트림으로서 웹 브라우저에 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  116. 제 115 항에 있어서,
    상기 재구성을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 인터셉트된 CGI 응답에 대응하는 HTTP 데이타 스트림을 생성하도록, 상기 외부 통신 링크를 통해 수신된 상기 CGI 차분 데이타와 상기 서버 CGI 기본 형태를 조합함으로써 상기 외부 통신 링크를 통해 수신된 클라이언트/서버 지정 데이타 스트림으로부터 상기 웹 서버로부터의 통신에 대응하는 HTTP 데이타 스트림을 재구성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 수신된 서버 CGI 기본 형태를 상기 CGI 요구에 대응하는 클라이언트 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태를 갱신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  117. 제 108 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 인터셉트를 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 웹 브라우저에 의해 개시되는 복수의 통신을 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  118. 제 117 항에 있어서,
    상기 제 2 컴퓨터로부터 상기 외부 통신 링크를 통해 클라이언트/서버 지정 데이타 스트림을 수신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하기 위해, 상기 클라이언트/서버 지정 데이타 스트림을 디멀티플렉싱하여, 복수의 HTTP 데이타 스트림을 생성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 상기 복수의 HTTP 데이타 스트림을 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  119. 제 108 항에 있어서,
    상기 제 1 컴퓨터의 사전정의된 특성에 대응하는 컴퓨터 지정 정보를 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터에 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 웹 브라우저에 의해 개시되는 통신으로부터 상기 컴퓨터 지정 정보를 제거하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  120. 제 1 컴퓨터상에 상주하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품―상기 웹 브라우저 애플리케이션은 하이퍼 텍스트 전송 프로토콜(HTTP)을 이용하여 웹 서버 애플리케이션과 통신하고, 상기 제 1 컴퓨터에 상주하는 웹 브라우저 애플리케이션과 상기 제 2 컴퓨터상에 상주하는 웹 서버 애플리케이션 사이의 적어도 한 통신 세그먼트는 외부 통신 링크를 통해 수행됨―에 있어서,
    컴퓨터로 판독가능한 프로그램 코드 수단이 매립된 컴퓨터로 판독가능한 저장매체를 구비하되, 상기 컴퓨터로 판독가능한 프로그램 코드 수단은,
    ① 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 상기 외부 통신 링크로 전송하기 이전에 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ② 상기 웹 서버에 의해 개시되는 HTTP 데이타 스트림을 HTTP 프로토콜로부터 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ③ 상기 웹 서버에 의해 개시되는 변환된 HTTP 데이타 스트림을 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  121. 제 120 항에 있어서,
    상기 제 2 컴퓨터에 상주하는 캐쉬내의 브라우저에 의해 개시되는 통신에 응답적으로, 상기 웹 서버로부터 수신될 HTTP 데이타 스트림을 저장하여, 서버 요구 캐쉬 엔트리를 생성하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 웹 브라우저에 의해 개시되는 통신을 조회하여 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 사전에 상기 캐쉬내에 저장되었는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 변환을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 브라우저에 의해 개시되는 통신에 관련한 상기 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하며,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 변환된 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 제 1 컴퓨터에 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  122. 제 121 항에 있어서,
    상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신하기 이전의 사전결정된 클라이언트 코히어런시 시간 간격내에 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하며,
    상기 변환을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은, 상기 사전결정된 클라이언트 코히어런시 시간 간격내에 상기 서버 요구 캐쉬 엔트리가 생성되었음을 상기 판정을 위한 컴퓨터로 판독가능한 프로그램 코드 수단이 판정한 경우, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리를 클라이언트/서버 지정 통신 프로토콜로 변환시키기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  123. 제 121 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리와 동일한, 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 클라이언트 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하며,
    상기 변환을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 제 2 컴퓨터가 상기 웹 브라우저에 의해 개시되는 통신을 수신할 때와 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 요구 캐쉬 엔트리가 생성되었을 때 사이의 시간 간격을 산출하여 엔트리 수명(entry age) 데이타를 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하며,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 제 1 컴퓨터에 대한 코히어런트 엔트리 응답―이는 상기 웹 브라우저에 의해 개시되는 통신에 대응하는 서버 캐쉬 엔트리에 대한 엔트리 수명 데이타를 포함함―을 상기 외부 통신 링크를 통해 클라이언트/서버 지정 프로토콜로서 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  124. 제 120 항에 있어서,
    상기 웹 브라우저에 의해 개시되는 통신은 공통 게이트웨이 인터페이스(CGI:Common Gateway Interface) 요구에 대응하며,
    상기 컴퓨터 프로그램 제품은
    서버 CGI 기본 형태를 제공하도록 상기 인터셉트된 CGI 요구를 조회하여, 상기 인터셉트된 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리가 존재하는지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    서버 기본 캐쉬 엔트리를 생성하도록, 요구인 브라우저에 의해 개시되는 통신에 응답하여 상기 제 2 컴퓨터내에 상주하는 캐쉬내의 공통 게이트웨이 인터페이스(CGI)에 상기 웹 서버로부터 수신되는 HTTP 데이타 스트림을 저장하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 인터셉트를 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 외부 통신 링크상에 HTTP 데이타 스트림을 전송하기 이전에 상기 인터셉트된 CGI 요구에 응답하여 상기 웹 서버에 의해 개시되는 통신에 대응하는 HTTP 데이타 스트림을 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 서버 CGI 기본 형태와 상기 인터셉트된 CGI 응답을 비교하여, 상기 인터셉트된 CGI 응답과 상기 서버 CGI 기본 형태 사이의 차이에 대응하는 CGI 차분 데이타를 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하며,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  125. 제 124 항에 있어서,
    상기 서버 CGI 기본 형태가 상기 CGI 요구에 대응하는 클라이언트 CGI 기본 형태와 동일한지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 서버 CGI 기본 형태를 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과 상기 CGI 차분 데이타를 클라이언트/서버 지정 데이타 스트림으로서 상기 외부 통신 링크를 통해 상기 웹 브라우저에 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  126. 제 124 항에 있어서,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 큰지를 판정하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 서버 CGI 기본 형태와 상기 CGI 응답 사이의 차분이 사전정의된 차분 임계치보다 더 크다고 판정을 위한 컴퓨터로 판독가능한 프로그램 코드 수단이 판정하는 경우, 상기 웹 서버로부터 수신되는 상기 CGI 응답을 상기 CGI 요구에 대응하는 서버 기본 캐쉬 엔트리로서 저장함으로써 상기 CGI 요구에 대응하는 서버 CGI 기본 형태를 갱신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 비교를 위한 컴퓨터로 판독가능한 프로그램 코드 수단 및 상기 전송을 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 상기 갱신된 서버 CGI 기본 형태를 이용하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  127. 제 120 항에 있어서,
    상기 제 1 컴퓨터와 제 2 컴퓨터 사이의 지속적인 접속을 상기 외부 통신 링크를 통해 확립하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    웹 브라우저에 의해 개시되는 모든 통신이 완료될 때까지 상기 지속적인 접속을 유지하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하며,
    상기 인터셉트를 위한 컴퓨터로 판독가능한 프로그램 코드 수단은 웹 서버에 의해 개시되는 복수의 통신을 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과 상기 지속적인 접속이 유지되는 동안 상기 복수의 통신을 상기 외부 통신 링크상에 멀티플렉싱시키기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 포함하는 웹 브라우저 애플리케이션의 성능을 향상시키는 컴퓨터 프로그램 제품.
  128. 제 1 컴퓨터상에 상주하는 클라이언트 애플리케이션을 구비하며 상기 제 1 컴퓨터로부터 원격지에 위치한 제 2 컴퓨터상에 상주하는 서버 애플리케이션과 통신하는 클라이언트/서버 시스템의 성능을 향상시키는 컴퓨터 프로그램 제품―상기 클라이언트 애플리케이션 및 서버 애플리케이션은 클라이언트와 서버 사이의 통신을 위해 클라이언트/서버 독립 통신 프로토콜을 사용하며, 상기 제 1 컴퓨터내의 클라이언트 애플리케이션과 제 2 컴퓨터내의 서버 애플리케이션 사이의 적어도 한 통신 세그먼트가 외부 통신 링크를 통해 수행됨―에 있어서,
    컴퓨터로 판독가능한 프로그램 코드 수단이 매립된 컴퓨터로 판독가능한 저장매체를 구비하되, 상기 컴퓨터로 판독가능한 프로그램 코드 수단은,
    ① 상기 원격지의 클라이언트에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ② 상기 클라이언트에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ③ 상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ④ 상기 외부 통신 링크를 통해 전송된 통신을 수신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ⑤ 상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 상기 클라이언트/서버 독립 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    ⑥ 상기 원격지의 클라이언트에 의해 개시되는 통신을 상기 클라이언트/서버 독립 통신 프로토콜의 서버에 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단
    을 포함하는 클라이언트/서버 시스템의 성능 향상을 위한 컴퓨터 프로그램 제품.
  129. 제 128 항에 있어서,
    상기 서버에 의해 개시되는 클라이언트/서버 독립 통신 프로토콜의 통신을 상기 외부 통신 링크에 전송하기 이전에 인터셉트하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 서버에 의해 개시되는 통신을 제 2 클라이언트/서버 지정 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 변환된 통신을 상기 외부 통신 링크를 통해 전송하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크를 통해 전송된 통신을 수신하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 외부 통신 링크를 통해 수신된 통신을 클라이언트/서버 지정 통신 프로토콜로부터 클라이언트/서버 독립 통신 프로토콜로 변환하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단과,
    상기 서버에 의해 개시되는 통신을 클라이언트/서버 독립 통신 프로토콜의 원격지 클라이언트에 제공하기 위한 컴퓨터로 판독가능한 프로그램 코드 수단을 더 포함하는 클라이언트/서버 시스템의 성능 향상을 위한 컴퓨터 프로그램 제품.
KR1019970707261A 1996-02-15 1996-07-11 웹브라우저애플리케이션의성능향상방법및장치,클라이언트/서버시스템의성능향상방법및장치 KR100289520B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8/601804 1996-02-15
US8/601,804 1996-02-15
US08/601,804 US5754774A (en) 1996-02-15 1996-02-15 Client/server communication system
PCT/US1996/011551 WO1997030538A2 (en) 1996-02-15 1996-07-11 Client/server communication system

Publications (2)

Publication Number Publication Date
KR19980703861A true KR19980703861A (ko) 1998-12-05
KR100289520B1 KR100289520B1 (ko) 2001-05-02

Family

ID=24408840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970707261A KR100289520B1 (ko) 1996-02-15 1996-07-11 웹브라우저애플리케이션의성능향상방법및장치,클라이언트/서버시스템의성능향상방법및장치

Country Status (16)

Country Link
US (2) US5754774A (ko)
EP (1) EP0823170B1 (ko)
JP (2) JP3953109B2 (ko)
KR (1) KR100289520B1 (ko)
CN (1) CN1148927C (ko)
AT (1) ATE196707T1 (ko)
CA (1) CA2218169C (ko)
CZ (1) CZ287988B6 (ko)
DE (1) DE69610495T2 (ko)
ES (1) ES2151176T3 (ko)
HK (1) HK1017789A1 (ko)
HU (1) HUP9801295A3 (ko)
MY (1) MY122038A (ko)
PL (1) PL180570B1 (ko)
TW (1) TW297194B (ko)
WO (1) WO1997030538A2 (ko)

Families Citing this family (342)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
JP3245425B2 (ja) * 1996-02-28 2002-01-15 グローバルメディアオンライン株式会社 広告等のメッセージを端末装置の利用者へ配信する通信システム
US6194992B1 (en) * 1997-04-24 2001-02-27 Nomadix, Llc Mobile web
US5859972A (en) * 1996-05-10 1999-01-12 The Board Of Trustees Of The University Of Illinois Multiple server repository and multiple server remote application virtual client computer
US5935207A (en) * 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US6049820A (en) 1996-06-03 2000-04-11 International Business Machines Corporation Multiplexing of clients and applications among multiple servers
US6091518A (en) * 1996-06-28 2000-07-18 Fuji Xerox Co., Ltd. Image transfer apparatus, image transmitter, profile information transmitter, image receiver/reproducer, storage medium, image receiver, program transmitter, and image color correction apparatus
JP2924817B2 (ja) * 1996-09-13 1999-07-26 日本電気株式会社 情報サーバシステム
US6166734A (en) * 1996-10-01 2000-12-26 Diamond Multimedia Systems, Inc. Portable interactive graphics display tablet and communications system
US6052120A (en) * 1996-10-01 2000-04-18 Diamond Multimedia Systems, Inc. Method of operating a portable interactive graphics display tablet and communications systems
US6084584A (en) * 1996-10-01 2000-07-04 Diamond Multimedia Systems, Inc. Computer system supporting portable interactive graphics display tablet and communications systems
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6144990A (en) * 1996-12-23 2000-11-07 International Business Machines Corporation Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling
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
US5898833A (en) * 1996-12-31 1999-04-27 Intel Corporation Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data
US6456974B1 (en) * 1997-01-06 2002-09-24 Texas Instruments Incorporated System and method for adding speech recognition capabilities to java
US7020700B1 (en) * 1997-02-28 2006-03-28 International Business Machines Corporation Client side socks server for an internet client
US6057854A (en) 1997-03-07 2000-05-02 Micrografx, Inc. System and method of providing interactive vector graphics over a network
US5948066A (en) * 1997-03-13 1999-09-07 Motorola, Inc. System and method for delivery of information over narrow-band communications links
US6073173A (en) * 1997-03-17 2000-06-06 International Business Machines Corporation Method and apparatus for optimal rebasing of web page transmission
US6182122B1 (en) * 1997-03-26 2001-01-30 International Business Machines Corporation Precaching data at an intermediate server based on historical data requests by users of the intermediate server
US5996016A (en) * 1997-04-15 1999-11-30 International Business Machines Corporation Reinitiation of bind calls for IP applications concurrently executing with alternate address
US6273622B1 (en) * 1997-04-15 2001-08-14 Flash Networks, Ltd. Data communication protocol for maximizing the performance of IP communication links
US5907678A (en) * 1997-05-07 1999-05-25 International Business Machines Corporation Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6184996B1 (en) * 1997-06-18 2001-02-06 Hewlett-Packard Company Network printer with remote print queue control procedure
US6105028A (en) * 1997-06-26 2000-08-15 Digital Equipment Corporation Method and apparatus for accessing copies of documents using a web browser request interceptor
US5991760A (en) * 1997-06-26 1999-11-23 Digital Equipment Corporation Method and apparatus for modifying copies of remotely stored documents using a web browser
US6081512A (en) 1997-06-30 2000-06-27 Sun Microsystems, Inc. Spanning tree support in a high performance network device
US6115378A (en) * 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US7058720B1 (en) * 1997-06-30 2006-06-06 Microsoft Corporation Geographical client distribution methods, systems and computer program products
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6081522A (en) 1997-06-30 2000-06-27 Sun Microsystems, Inc. System and method for a multi-layer network element
US6044418A (en) 1997-06-30 2000-03-28 Sun Microsystems, Inc. Method and apparatus for dynamically resizing queues utilizing programmable partition pointers
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6016310A (en) 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6044087A (en) 1997-06-30 2000-03-28 Sun Microsystems, Inc. Interface for a highly integrated ethernet network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6094435A (en) 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6021132A (en) * 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6128666A (en) * 1997-06-30 2000-10-03 Sun Microsystems, Inc. Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine
US6049528A (en) 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
CA2264781C (en) * 1997-07-01 2002-02-12 Progress Software Corporation Testing and debugging tool for network applications
US6058425A (en) * 1997-07-21 2000-05-02 International Business Machines Corporation Single server access in a multiple TCP/IP instance environment
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US6324565B1 (en) * 1997-07-28 2001-11-27 Qwest Communications International Inc. Dynamically generated document cache system
KR100571059B1 (ko) * 1997-08-06 2006-04-14 태크욘 인코포레이티드 예비 페칭을 위한 분산된 시스템 및 방법
US5935212A (en) * 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
US6070184A (en) * 1997-08-28 2000-05-30 International Business Machines Corporation Server-side asynchronous form management
US6035324A (en) * 1997-08-28 2000-03-07 International Business Machines Corporation Client-side asynchronous form management
US6631424B1 (en) * 1997-09-10 2003-10-07 Fmr Corp. Distributing information using a computer
US20060193278A1 (en) 1997-10-15 2006-08-31 Wolfgang Theimer Mobile telephone for Internet applications
US6292835B1 (en) * 1997-11-26 2001-09-18 International Business Machines Corporation Network bandwidth and object obsolescence sensitive scheduling method and apparatus for objects distributed broadcasting
US6185617B1 (en) * 1997-11-26 2001-02-06 International Business Machines Corporation Construction and usage of a pre-warmed cache for client-server emulator
US6360257B1 (en) * 1998-01-30 2002-03-19 Telefonaktiebolaget L M Ericsson (Publ) Managing group IP addresses in mobile end stations
FI112897B (fi) 1998-03-03 2004-01-30 Nokia Corp Menetelmä tiedonsiirtoverkossa ja tiedonsiirtolaite
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US7025209B2 (en) * 1998-05-29 2006-04-11 Palmsource, Inc. Method and apparatus for wireless internet access
CA2333033C (en) * 1998-05-29 2011-08-02 Palm, Inc. Method and apparatus for communicating information over low bandwidth communications networks
US6343318B1 (en) 1998-05-29 2002-01-29 Palm, Inc. Method and apparatus for communicating information over low bandwidth communications networks
US6185608B1 (en) * 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6574618B2 (en) * 1998-07-22 2003-06-03 Appstream, Inc. Method and system for executing network streamed application
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US7127493B1 (en) 1998-08-20 2006-10-24 Gautier Taylor S Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria
US6535509B2 (en) 1998-09-28 2003-03-18 Infolibria, Inc. Tagging for demultiplexing in a network traffic server
US6321250B1 (en) * 1998-10-01 2001-11-20 Ericsson Inc. Data communication system and method for transporting objects over a permanent connections
EP0993163A1 (en) 1998-10-05 2000-04-12 Backweb Technologies Ltd. Distributed client-based data caching system and method
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
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8060656B2 (en) 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6230165B1 (en) * 1998-10-16 2001-05-08 Cerulean Method for encoding and transporting database objects over bandwidth constrained networks
US6279041B1 (en) 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
EP1003114A1 (en) * 1998-11-17 2000-05-24 International Business Machines Corporation Method of interconnecting computers and computer network
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US6813640B1 (en) 1998-12-08 2004-11-02 Macrovision Corporation System and method for controlling the editing by user action of digital objects created in a document server application
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6973300B1 (en) 1998-12-23 2005-12-06 Nortel Networks Limited Intelligent wireless terminal with virtual memory
US6266678B1 (en) * 1998-12-31 2001-07-24 Computer Associates Think, Inc. System and method for dynamically viewing contents of a data file
WO2000060825A1 (en) * 1999-04-02 2000-10-12 Infolibria, Inc. Connection pass-through to optimize server performance
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
US6484212B1 (en) 1999-04-20 2002-11-19 At&T Corp. Proxy apparatus and method for streaming media information
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6510458B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Blocking saves to web browser cache based on content rating
US6430739B1 (en) * 1999-07-16 2002-08-06 Acceleration Software International Corporation Software execution contingent on home page setting
US6507891B1 (en) * 1999-07-22 2003-01-14 International Business Machines Corporation Method and apparatus for managing internal caches and external caches in a data processing system
US6658462B1 (en) 1999-08-26 2003-12-02 International Business Machines Corporation System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet
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
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
US6553412B1 (en) 1999-09-10 2003-04-22 Avantgo, Inc. System, method, and computer program product for web content aggregation and development, and web content delivery to clients
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
US20010047394A1 (en) * 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US6757717B1 (en) * 1999-09-16 2004-06-29 Proxyconn, Inc. System and method for data access
US8108245B1 (en) 1999-09-17 2012-01-31 Cox Communications, Inc. Method and system for web user profiling and selective content delivery
US6308238B1 (en) 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
US6877036B1 (en) 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US6801927B1 (en) 1999-09-24 2004-10-05 Akamba Corporation Network adaptor card with reverse proxy and cache and method implemented therewith
FR2803706B1 (fr) * 1999-09-27 2002-03-08 Bull Cp8 Procede et architecture de pilotage a distance d'une station d'utilisateur via un reseau de type internet et leur application a un demonstrateur de carte a puce
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6864904B1 (en) * 1999-12-06 2005-03-08 Girafa.Com Inc. Framework for providing visual context to www hyperlinks
US6708217B1 (en) 2000-01-05 2004-03-16 International Business Machines Corporation Method and system for receiving and demultiplexing multi-modal document content
US6983315B1 (en) 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
US7418498B2 (en) * 2001-01-24 2008-08-26 Telecommunication Systems, Inc. System and method to publish information from servers to remote monitor devices
US6435164B1 (en) 2000-12-07 2002-08-20 Ford Global Technologies, Inc. Fuel weathering method for vehicle evaporative emission system
US7970898B2 (en) 2001-01-24 2011-06-28 Telecommunication Systems, Inc. System and method to publish information from servers to remote monitor devices
US7693981B2 (en) * 2001-01-24 2010-04-06 Telecommunication Systems, Inc. System and method to publish information from servers to remote monitor devices
US8370435B1 (en) 2000-01-31 2013-02-05 Telecommunication Systems, Inc. System and method for servers to send alerts to connectionless devices
US7689696B2 (en) * 2000-01-31 2010-03-30 Telecommunication Systems, Inc. System and method for re-directing requests from browsers for communications over non-IP based networks
US8090856B1 (en) 2000-01-31 2012-01-03 Telecommunication Systems, Inc. Intelligent messaging network server interconnection
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US7096418B1 (en) * 2000-02-02 2006-08-22 Persistence Software, Inc. Dynamic web page cache
US6820133B1 (en) 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US6947440B2 (en) * 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
US7028251B2 (en) * 2000-03-02 2006-04-11 Iora, Ltd. System and method for reducing the size of data difference representations
US6789128B1 (en) * 2000-03-11 2004-09-07 Oracle International Corporation System and method for reducing network traffic between two computing devices
US7020719B1 (en) 2000-03-24 2006-03-28 Netli, Inc. System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7187947B1 (en) 2000-03-28 2007-03-06 Affinity Labs, Llc System and method for communicating selected information to an electronic device
AUPQ653800A0 (en) * 2000-03-28 2000-04-20 Sharinga Networks Inc. A data delivery process
US6654794B1 (en) 2000-03-30 2003-11-25 International Business Machines Corporation Method, data processing system and program product that provide an internet-compatible network file system driver
US7194468B1 (en) 2000-04-13 2007-03-20 Worldlink Information Technology Systems Limited Apparatus and a method for supplying information
US6990531B2 (en) 2000-04-17 2006-01-24 Circadence Corporation System and method for providing last-mile data prioritization
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US8996705B2 (en) 2000-04-17 2015-03-31 Circadence Corporation Optimization of enhanced network links
US7979880B2 (en) * 2000-04-21 2011-07-12 Cox Communications, Inc. Method and system for profiling iTV users and for providing selective content delivery
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6990526B1 (en) * 2000-05-22 2006-01-24 Pointred Technologies, Inc. Method and apparatus for web caching
US7062475B1 (en) * 2000-05-30 2006-06-13 Alberti Anemometer Llc Personalized multi-service computer environment
FI20001617A (fi) * 2000-07-06 2002-01-07 Nokia Mobile Phones Ltd Tiedonsiirtomenetelmõ ja -jõrjestely
FR2811504B1 (fr) * 2000-07-06 2003-07-04 Centre Nat Etd Spatiales Dispositif serveur de realisation multi-utilisateur en libre-service et de diffusion d'emissions de television et reseau de television
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
WO2002019636A1 (en) * 2000-08-31 2002-03-07 Padcom, Inc. Method and apparatus for routing data over multiple wireless networks
US20020087717A1 (en) * 2000-09-26 2002-07-04 Itzik Artzi Network streaming of multi-application program code
US6757894B2 (en) 2000-09-26 2004-06-29 Appstream, Inc. Preprocessed applications suitable for network streaming applications and method for producing same
US7801978B1 (en) 2000-10-18 2010-09-21 Citrix Systems, Inc. Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US7283805B2 (en) * 2000-11-20 2007-10-16 Cingular Wireless Ii, Llc Methods and systems for providing application level presence information in wireless communication
US20020196793A1 (en) * 2000-11-29 2002-12-26 Quikcat.Com, Inc. End-user communication systems access network
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US7174305B2 (en) 2001-01-23 2007-02-06 Opentv, Inc. Method and system for scheduling online targeted content delivery
US7195923B2 (en) * 2001-01-31 2007-03-27 Scripps Laboratories, Inc. Ratiometric determination of glycated protein
US7665115B2 (en) * 2001-02-02 2010-02-16 Microsoft Corporation Integration of media playback components with an independent timing specification
US20020138331A1 (en) * 2001-02-05 2002-09-26 Hosea Devin F. Method and system for web page personalization
US6963930B2 (en) * 2001-02-15 2005-11-08 Centric Software, Inc. Automatic transfer and expansion of application-specific data for display at a website
US6968553B1 (en) * 2001-03-01 2005-11-22 Alcatel Element manager common gateway architecture system and method
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7185094B2 (en) * 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
US20020156900A1 (en) * 2001-03-30 2002-10-24 Brian Marquette Protocol independent control module
US20020184363A1 (en) * 2001-04-20 2002-12-05 Steven Viavant Techniques for server-controlled measurement of client-side performance
US7031314B2 (en) * 2001-05-16 2006-04-18 Bytemobile, Inc. Systems and methods for providing differentiated services within a network communication system
EP1564960B1 (en) * 2001-05-16 2007-03-28 Bytemobile, Inc. System and methods for providing differentiated services within a network communication system
US6965765B2 (en) * 2001-05-17 2005-11-15 Palmsource, Inc. Transactional message-queue communication for wirelessly networked devices system and method
WO2002096022A2 (en) * 2001-05-18 2002-11-28 Bytemobile, Inc. Dual mode service platform within network communication system
US7493397B1 (en) 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US7165112B2 (en) * 2001-06-22 2007-01-16 Motorola, Inc. Method and apparatus for transmitting data in a communication system
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US20020198956A1 (en) * 2001-06-25 2002-12-26 International Business Machines Corporation Method and apparatus for managing a cache
EP1438669B1 (en) 2001-06-27 2014-01-22 SKKY Incorporated Improved media delivery platform
US7594001B1 (en) * 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7092997B1 (en) 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US7188214B1 (en) 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
US7822843B2 (en) * 2001-08-13 2010-10-26 Cox Communications, Inc. Predicting the activities of an individual or group using minimal information
US7099957B2 (en) * 2001-08-23 2006-08-29 The Directtv Group, Inc. Domain name system resolution
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
WO2003032201A1 (en) * 2001-10-09 2003-04-17 Wildblue Communications, Inc. Performance enhancing proxy for high latency data
US7000238B2 (en) * 2001-10-10 2006-02-14 Borland Software Corporation Development system providing extensible remoting architecture
JP2003205483A (ja) * 2001-11-07 2003-07-22 Sony Corp ロボットシステム及びロボット装置の制御方法
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US20030106057A1 (en) * 2001-12-05 2003-06-05 Predictive Networks, Inc. Television navigation program guide
EP1318461A1 (en) * 2001-12-07 2003-06-11 Sap Ag Method and computer system for refreshing client-data
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7263562B2 (en) * 2002-03-21 2007-08-28 Microsoft Corporation Method and system for describing uploaded files statement regarding federally-sponsored research or development
US20030182424A1 (en) * 2002-03-22 2003-09-25 Steve Odendahl Scriptable proxy server
US7111038B2 (en) * 2002-04-03 2006-09-19 International Business Machines Corporation Enhancing application server performance by relocating performance-degrading processing
EP1355238A1 (en) * 2002-04-19 2003-10-22 Sap Ag Method and computer system for delta-handling in server-pages
US7703015B2 (en) * 2002-04-30 2010-04-20 Sap Aktiengesellschaft Delta-handling in server-pages
US7987491B2 (en) * 2002-05-10 2011-07-26 Richard Reisman Method and apparatus for browsing using alternative linkbases
US6996584B2 (en) * 2002-05-14 2006-02-07 Pervasive Software, Inc. System and method of maintaining functional client side data cache coherence
US7434163B2 (en) * 2002-05-31 2008-10-07 Sap Aktiengesellschaft Document structures for delta handling in server pages
US9357013B2 (en) * 2002-07-26 2016-05-31 International Business Machines Corporation Client-side script to application communication system
US7765255B2 (en) * 2002-07-30 2010-07-27 Sap Ag Extended web infrastructure for business applications
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7941542B2 (en) 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7401158B2 (en) 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7730155B1 (en) * 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7574653B2 (en) 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US8364815B2 (en) 2005-03-18 2013-01-29 Riverbed Technology, Inc. Reliability and availability of distributed servers
US7650416B2 (en) 2003-08-12 2010-01-19 Riverbed Technology Content delivery for client-server protocols with user affinities using connection end-point proxies
US8176186B2 (en) 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US7120666B2 (en) 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US6667700B1 (en) 2002-10-30 2003-12-23 Nbt Technology, Inc. Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation
ATE380431T1 (de) * 2002-11-15 2007-12-15 Ibm Steuerung von netzwerkverkehr in einer peer-to- peer umgebung
JP2004240650A (ja) * 2003-02-05 2004-08-26 Brother Ind Ltd 通信システム、スイッチ操作部材、端末装置およびプログラム
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
US8069076B2 (en) * 2003-03-25 2011-11-29 Cox Communications, Inc. Generating audience analytics
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
WO2004114529A2 (en) * 2003-06-16 2004-12-29 Mentat Inc. Pre-fetch communication systems and methods
US7882510B2 (en) * 2003-08-06 2011-02-01 Microsoft Corporation Demultiplexer application programming interface
US7853699B2 (en) * 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
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
US7472254B2 (en) * 2003-10-10 2008-12-30 Iora, Ltd. Systems and methods for modifying a set of data objects
US7774774B1 (en) * 2003-10-22 2010-08-10 Apple Inc. Software setup system
US7441011B2 (en) * 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US20050091226A1 (en) * 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
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
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
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
WO2006042155A2 (en) * 2004-10-08 2006-04-20 E-Klone, Inc. Floating vector scrambling methods and apparatus
US7908397B1 (en) 2005-02-28 2011-03-15 Adobe Systems Incorporated Application server gateway technology
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US20060224702A1 (en) * 2005-03-31 2006-10-05 Patrick Schmidt Local workflows in a business process management system
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9692725B2 (en) * 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8204058B2 (en) * 2005-07-28 2012-06-19 Riverbed Technology, Inc. Automatic framing selection
US8370583B2 (en) * 2005-08-12 2013-02-05 Silver Peak Systems, Inc. Network memory architecture for providing data based on local accessibility
US8392684B2 (en) 2005-08-12 2013-03-05 Silver Peak Systems, Inc. Data encryption in a network memory architecture for providing data based on local accessibility
US8171238B1 (en) 2007-07-05 2012-05-01 Silver Peak Systems, Inc. Identification of data stored in memory
US8095774B1 (en) 2007-07-05 2012-01-10 Silver Peak Systems, Inc. Pre-fetching data into a memory
US8811431B2 (en) 2008-11-20 2014-08-19 Silver Peak Systems, Inc. Systems and methods for compressing packet data
US8489562B1 (en) 2007-11-30 2013-07-16 Silver Peak Systems, Inc. Deferred data storage
US8929402B1 (en) 2005-09-29 2015-01-06 Silver Peak Systems, Inc. Systems and methods for compressing packet data by predicting subsequent data
US7805670B2 (en) * 2005-12-16 2010-09-28 Microsoft Corporation Partial rendering of web pages
US7924884B2 (en) 2005-12-20 2011-04-12 Citrix Systems, Inc. Performance logging using relative differentials and skip recording
US20070203973A1 (en) * 2006-02-28 2007-08-30 Microsoft Corporation Fuzzing Requests And Responses Using A Proxy
CN101043522B (zh) * 2006-03-22 2013-11-13 腾讯科技(深圳)有限公司 一种基于Web服务器的通信方法及系统
US8140618B2 (en) * 2006-05-04 2012-03-20 Citrix Online Llc Methods and systems for bandwidth adaptive N-to-N communication in a distributed system
WO2008005629A2 (en) * 2006-05-26 2008-01-10 Riverbed Technology, Inc. Throttling of predictive acks in an accelerated network communication system
WO2007149687A2 (en) 2006-05-30 2007-12-27 Riverbed Technology, Inc. Selecting proxies from among autodiscovered proxies
KR100765785B1 (ko) * 2006-06-05 2007-10-12 삼성전자주식회사 무선 usb를 이용한 단일 무선장치와 다수의 호스트 간의접속 방법 및 시스템
US20070300243A1 (en) * 2006-06-22 2007-12-27 Sap Portals Israel Ltd. Modular caching method and system for enabling offline functionality of server-client systems
US7941560B1 (en) * 2006-07-14 2011-05-10 Intuit Inc. Client caching of target addresses for network requests
US8755381B2 (en) * 2006-08-02 2014-06-17 Silver Peak Systems, Inc. Data matching using flow based packet data storage
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8493858B2 (en) 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
TR200606833A2 (tr) * 2006-12-01 2007-10-22 B�Lmed B�Lg�Sayar Ve Yazilim A.�. Web tarayıcı tabanlı uygulamalarda performans arttırma yöntemi
US7733910B2 (en) * 2006-12-29 2010-06-08 Riverbed Technology, Inc. Data segmentation using shift-varying predicate function fingerprinting
CN101242337B (zh) * 2007-02-08 2010-11-10 张永敏 一种计算机网络的内容发布方法及系统
US8533310B2 (en) * 2007-03-09 2013-09-10 Riverbed Technology, Inc. Method and apparatus for acceleration by prefetching associated objects
CN101272442B (zh) * 2007-03-21 2010-05-26 杭州波导软件有限公司 数字图像无损压缩方法和装置、解析方法及图像译码器
US9930099B2 (en) * 2007-05-08 2018-03-27 Riverbed Technology, Inc. Hybrid segment-oriented file server and WAN accelerator
US20090097470A1 (en) * 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
US8190876B2 (en) * 2007-11-19 2012-05-29 Red Hat, Inc. Renegotiating SSL/TLS connections with client certificates on post requests
US8307115B1 (en) * 2007-11-30 2012-11-06 Silver Peak Systems, Inc. Network memory mirroring
US8635361B2 (en) * 2007-12-03 2014-01-21 Riverbed Technology, Inc. Transaction acceleration using application-specific locking
US8775550B2 (en) * 2008-02-08 2014-07-08 Microsoft Corporation Caching HTTP request and response streams
US8442052B1 (en) 2008-02-20 2013-05-14 Silver Peak Systems, Inc. Forward packet recovery
US8463941B1 (en) * 2008-06-16 2013-06-11 Riverbed Technology, Inc. Cross-session protocol acceleration and its application to storage area network file systems
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US8743683B1 (en) 2008-07-03 2014-06-03 Silver Peak Systems, Inc. Quality of service using multiple flows
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US8793339B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8793398B2 (en) * 2008-08-29 2014-07-29 Red Hat, Inc. Facilitating client server interaction
US8925034B1 (en) 2009-06-30 2014-12-30 Symantec Corporation Data protection requirements specification and migration
US8387047B1 (en) 2009-08-03 2013-02-26 Symantec Corporation Method of virtualizing file extensions in a computer system by determining an association between applications in virtual environment and a file extension
US8352937B2 (en) * 2009-08-03 2013-01-08 Symantec Corporation Streaming an application install package into a virtual environment
US8090744B1 (en) 2009-08-26 2012-01-03 Symantec Operating Corporation Method and apparatus for determining compatibility between a virtualized application and a base environment
US8473444B1 (en) 2009-08-28 2013-06-25 Symantec Corporation Management of actions in multiple virtual and non-virtual environments
US8438555B1 (en) 2009-08-31 2013-05-07 Symantec Corporation Method of using an encapsulated data signature for virtualization layer activation
US8458310B1 (en) 2009-09-14 2013-06-04 Symantec Corporation Low bandwidth streaming of application upgrades
US8566297B1 (en) 2010-01-14 2013-10-22 Symantec Corporation Method to spoof data formats from image backups
US8290912B1 (en) 2010-01-29 2012-10-16 Symantec Corporation Endpoint virtualization aware backup
US8707296B2 (en) 2010-04-27 2014-04-22 Apple Inc. Dynamic retrieval of installation packages when installing software
US10142157B2 (en) 2010-06-10 2018-11-27 Blackberry Limited Method and system for reducing transmission of redundant data
US8495625B1 (en) 2010-07-27 2013-07-23 Symantec Corporation Method and system for creation of streamed files on-demand
WO2012106573A1 (en) * 2011-02-04 2012-08-09 Opnet Technologies, Inc. Correlating input and output requests between client and server components in a multi-tier application
WO2013041922A1 (en) 2011-09-23 2013-03-28 Gilat Satellite Networks, Ltd. Decentralized caching system
US9130991B2 (en) 2011-10-14 2015-09-08 Silver Peak Systems, Inc. Processing data packets in performance enhancing proxy (PEP) environment
US9626224B2 (en) 2011-11-03 2017-04-18 Silver Peak Systems, Inc. Optimizing available computing resources within a virtual environment
US9084058B2 (en) 2011-12-29 2015-07-14 Sonos, Inc. Sound field calibration using listener localization
US20130212227A1 (en) * 2012-02-09 2013-08-15 Cogent Real-Time Systems Inc. System and method for streaming data via http
WO2013119253A2 (en) 2012-02-10 2013-08-15 Empire Technology Development Llc Monitoring connection quality
US9219460B2 (en) 2014-03-17 2015-12-22 Sonos, Inc. Audio settings based on environment
US9106192B2 (en) 2012-06-28 2015-08-11 Sonos, Inc. System and method for device playback calibration
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US9880776B1 (en) 2013-02-22 2018-01-30 Veritas Technologies Llc Content-driven data protection method for multiple storage devices
JP6088853B2 (ja) * 2013-02-27 2017-03-01 株式会社東芝 通信装置、通信方法および通信プログラム
US9264839B2 (en) 2014-03-17 2016-02-16 Sonos, Inc. Playback device configuration based on proximity detection
US9613158B1 (en) * 2014-05-13 2017-04-04 Viasat, Inc. Cache hinting systems
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
US9952825B2 (en) 2014-09-09 2018-04-24 Sonos, Inc. Audio processing algorithms
CN105491078B (zh) * 2014-09-15 2019-01-22 阿里巴巴集团控股有限公司 Soa系统中的数据处理方法及装置、soa系统
EP3012739A1 (en) 2014-10-20 2016-04-27 TISOFT Wojciech Jedrzejewski System for synchronizing web browsers
EP3531714B1 (en) 2015-09-17 2022-02-23 Sonos Inc. Facilitating calibration of an audio playback device
US9693165B2 (en) 2015-09-17 2017-06-27 Sonos, Inc. Validation of audio calibration using multi-dimensional motion check
US9743207B1 (en) 2016-01-18 2017-08-22 Sonos, Inc. Calibration using multiple recording devices
US10003899B2 (en) 2016-01-25 2018-06-19 Sonos, Inc. Calibration with particular locations
US11106423B2 (en) 2016-01-25 2021-08-31 Sonos, Inc. Evaluating calibration of a playback device
US9864574B2 (en) 2016-04-01 2018-01-09 Sonos, Inc. Playback device calibration based on representation spectral characteristics
US9860662B2 (en) 2016-04-01 2018-01-02 Sonos, Inc. Updating playback device configuration information based on calibration data
US9763018B1 (en) 2016-04-12 2017-09-12 Sonos, Inc. Calibration of audio playback devices
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US9794710B1 (en) 2016-07-15 2017-10-17 Sonos, Inc. Spatial audio correction
US10372406B2 (en) 2016-07-22 2019-08-06 Sonos, Inc. Calibration interface
US10459684B2 (en) 2016-08-05 2019-10-29 Sonos, Inc. Calibration of a playback device based on an estimated frequency response
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US10361997B2 (en) 2016-12-29 2019-07-23 Riverbed Technology, Inc. Auto discovery between proxies in an IPv6 network
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
CN110663173B (zh) 2017-10-04 2023-09-19 谷歌有限责任公司 基于房间特性自动均衡音频输出的方法和系统
KR102274055B1 (ko) * 2017-12-26 2021-07-06 삼성에스디에스 주식회사 메시지 시스템 및 애플리케이션 활성화 방법과 이를 수행하기 위한 사용자 단말
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
US10299061B1 (en) 2018-08-28 2019-05-21 Sonos, Inc. Playback device calibration
US11206484B2 (en) 2018-08-28 2021-12-21 Sonos, Inc. Passive speaker authentication
US10868892B1 (en) * 2019-05-31 2020-12-15 Micro Focus Llc Replacement code implementing full-duplex communication channel protocol for message interception
US10734965B1 (en) 2019-08-12 2020-08-04 Sonos, Inc. Audio calibration of a portable playback device
US11968417B2 (en) * 2021-12-30 2024-04-23 Comcast Cable Communications, Llc Systems, methods, and apparatuses for buffer management

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438511A (en) * 1980-11-10 1984-03-20 Telebit Corporation Packetized ensemble modem
US5021949A (en) * 1988-02-29 1991-06-04 International Business Machines Corporation Method and apparatus for linking an SNA host to a remote SNA host over a packet switched communications network
US4893307A (en) * 1988-02-29 1990-01-09 International Business Machines Corporation Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network
US5473772A (en) * 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5220501A (en) * 1989-12-08 1993-06-15 Online Resources, Ltd. Method and system for remote delivery of retail banking services
JP2511591B2 (ja) * 1990-10-29 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 無線光通信システムの動作方法および光通信システム
US5224098A (en) * 1991-07-17 1993-06-29 International Business Machines Corporation Compensation for mismatched transport protocols in a data communications network
US5481721A (en) * 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
DE4131133B4 (de) * 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
US5442633A (en) * 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
US5737536A (en) * 1993-02-19 1998-04-07 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5412654A (en) * 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5581558A (en) * 1995-03-29 1996-12-03 Lucent Technologies Inc. Apparatus for bridging non-compatible network architectures
US5829023A (en) * 1995-07-17 1998-10-27 Cirrus Logic, Inc. Method and apparatus for encoding history of file access to support automatic file caching on portable and desktop computers
US5850517A (en) * 1995-08-31 1998-12-15 Oracle Corporation Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server
US5737619A (en) * 1995-10-19 1998-04-07 Judson; David Hugh World wide web browsing with content delivery over an idle connection and interstitial content display
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5878213A (en) * 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
JPH09270794A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp ネットワーク管理装置
US5764910A (en) * 1996-04-02 1998-06-09 National Semiconductor Corporation Method and apparatus for encoding and using network resource locators
US5857201A (en) * 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US5870558A (en) * 1996-06-25 1999-02-09 Mciworldcom, Inc. Intranet graphical user interface for SONET network management
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network

Also Published As

Publication number Publication date
JP2004164630A (ja) 2004-06-10
EP0823170B1 (en) 2000-09-27
DE69610495D1 (de) 2000-11-02
WO1997030538A2 (en) 1997-08-21
DE69610495T2 (de) 2001-05-10
JP3953109B2 (ja) 2007-08-08
PL180570B1 (pl) 2001-02-28
CA2218169C (en) 2004-12-14
WO1997030538A3 (en) 1998-04-30
TW297194B (en) 1997-02-01
EP0823170A2 (en) 1998-02-11
US6003087A (en) 1999-12-14
ATE196707T1 (de) 2000-10-15
HK1017789A1 (en) 1999-11-26
CZ287988B6 (cs) 2001-03-14
MY122038A (en) 2006-03-31
PL327294A1 (en) 1998-12-07
JP3962369B2 (ja) 2007-08-22
HUP9801295A2 (hu) 1998-08-28
HUP9801295A3 (en) 1998-10-28
US5754774A (en) 1998-05-19
CA2218169A1 (en) 1997-08-21
ES2151176T3 (es) 2000-12-16
KR100289520B1 (ko) 2001-05-02
CZ354297A3 (cs) 1998-03-18
CN1148927C (zh) 2004-05-05
CN1195443A (zh) 1998-10-07
JPH11500895A (ja) 1999-01-19

Similar Documents

Publication Publication Date Title
KR100289520B1 (ko) 웹브라우저애플리케이션의성능향상방법및장치,클라이언트/서버시스템의성능향상방법및장치
KR100295003B1 (ko) 데이타캐싱방법및장치
KR100289521B1 (ko) 통신링크를통해전송되는데이타를감소시키는방법및장치
KR100295730B1 (ko) 통신링크를통해전송되는데이타의감소방법및장치
CZ354197A3 (cs) Způsob zachycování dat přijatých od druhé aplikace, zařízení a počítačový programový produkt k jeho provádění

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