CZ354197A3 - Method of data capture received from another application and computer program product for making the same - Google Patents

Method of data capture received from another application and computer program product for making the same Download PDF

Info

Publication number
CZ354197A3
CZ354197A3 CZ19973541A CZ354197A CZ354197A3 CZ 354197 A3 CZ354197 A3 CZ 354197A3 CZ 19973541 A CZ19973541 A CZ 19973541A CZ 354197 A CZ354197 A CZ 354197A CZ 354197 A3 CZ354197 A3 CZ 354197A3
Authority
CZ
Czechia
Prior art keywords
application
request
client
server
cache
Prior art date
Application number
CZ19973541A
Other languages
Czech (cs)
Other versions
CZ287679B6 (en
Inventor
Reed Richard Bittinger
Michael Levi Fraenkel
Barron Cornelius Housel
David Bruce Lindquist
Original Assignee
International Business Machines Corporation
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 International Business Machines Corporation filed Critical International Business Machines Corporation
Priority to CZ19973541A priority Critical patent/CZ287679B6/en
Publication of CZ354197A3 publication Critical patent/CZ354197A3/en
Publication of CZ287679B6 publication Critical patent/CZ287679B6/en

Links

Abstract

A computer program product is provided for caching data received from a first application and to be provided to a second application in response to a request from the second application. A data stream to be received from the first application and to be provided to the second application is stored in a cache to create a client cache entry corresponding to the request from the second application. The time of creation of a client cache entry is also stored to create a client cache entry time record. Requests from the second application are interrogated to determine if a client cache entry exists corresponding to the request. The client cache entry time record for the client cache entry corresponding to the request from the second application is evaluated to determine if the client cache entry corresponding to the request from the second application was created within a predetermined client coherency time interval prior to the second application requesting the information. The client cache entry is supplied to the second application in response to the request if a client cache entry for the request from the second application was created within a predetermined client coherency time interval prior to the second application requesting the information.

Description

Způsob zachycování dat přijatých od druhé aplikace, zařízení a počítačový programový produkt k jeho prováděníA method of capturing data received from a second application, device, and computer program product to execute it

Oblast technikyTechnical field

Předložený vynález se týká způsobu zachycování dat, který je vhodný zejména u systémů s komunikacemi po pomalém nebo bezdrátovém komunikačním spoji mezi dvěma počítači, kde jeden pracuje s aplikací typu klient a druhý s aplikací typu server. Vynález se dále týká zařízení a počítačového programového produktu k jeho provádění.The present invention relates to a data capture method that is particularly useful in systems with slow or wireless communications between two computers, one operating with a client application and the other operating with a server application. The invention further relates to a device and a computer program product for carrying it out.

Dosavadní stav technikyBACKGROUND OF THE INVENTION

Nedávná publicita a důraz na ‘'informační superdálnici“ měly za následek zvýšení povědomí o internetu a jeho přijetí jako masového komunikačního média. Toto široce založené poznání možností internetu jako životaschopného média pro komunikaci a interakci mezi mnoha různými sítěmi rovněž vytvořilo rozsáhlou uživatelskou bázi vybudovanou na internetových standardizačních protokolech pro interakci mezi počítačovými sí těmi.Recent publicity and emphasis on informační 'information superhighway' have resulted in increased awareness and acceptance of the Internet as a mass communication medium. This broad-based understanding of the potential of the Internet as a viable medium for communication and interaction between many different networks has also created an extensive user base built on Internet standardization protocols for interaction between computer networks.

Typické pro internet je to, že je zde vztah typu klient-server, kde internetový klient (browser) komunikuje s internetovým serverem. V zájmu dosažení lepšího přístupu na internet jsou postupně komunikační protokoly a jazyky používané klienty a servery standardizovány. Tyto protokoly zahrnují i Hyper-Text Transfer Protocol (HTTP), který je komunikačním protokolem používaným pro komunikaci mezi klienty a servery, a dále Transfer Control ProtocoI/Internet Protocol (TCP/IP), kde část protokolu TCP představuje přenosově specifický protoko 1 pro komunikaci mezi počítači nebo ap1 i kacemi.Typical for the Internet is that there is a client-server relationship where the Internet client (browser) communicates with the Internet server. In order to achieve better Internet access, communication protocols and languages used by clients and servers are gradually standardized. These protocols include Hyper-Text Transfer Protocol (HTTP), which is the communication protocol used for communication between clients and servers, and Transfer Control Protocol / Internet Protocol (TCP / IP), where part of TCP is a transmission-specific protocol 1 for communication. between computers or applications.

Standardizovaný je rovněž jazyk, v kterém klienti a serveryStandardized is also the language in which clients and servers

vzájemně komunikují a který se nazývá Hyper-Text Markupthat is called Hyper-Text Markup

Language (HTML). Protože jsou tyto protokoly a jazyk strojově nezávislé a protože používají k odesílání informací protokol s minimalizací propojení a nej lepším výkonem, je každá transakce plně samostatná. To znamená, například, že každé hlášení od klienta obsahuje informace o schopnostech browseru (prohlížeče) a je nezávislé z pohledu komunikace, která má být dokončena, na jakýchkoliv dalších komunikacích. Tato samostatnost komunikace mezi klientem a serverem může být označovaná za “nestavovou komunikaci, která zvyšuje u dané komunikace množství dat, jež musí být přenášeno mezi klientem a serverem.Language (HTML). Because these protocols and language are machine-independent, and because they use a protocol with minimal connection and best performance to send information, each transaction is fully separate. This means, for example, that each report from the client contains information about the capabilities of the browser (s) and is independent from the perspective of the communication to be completed on any other communications. This independence of client-server communication can be referred to as “stateless communication, which increases the amount of data that must be transmitted between the client and server for that communication.

V kontextu World Wide Web aplikací typu k1 ient/server může být klientem web browser, který vytváří uživatelské rozhraní. Tento web browser odesílá požadavky uživatele na příslušný web server a formátuje a zobrazuje data HTML vracená z web serveru. Web browser rovněž vyhodnocuje tato data HTML s cílem určit, zda se zde nachází mnoho vložených hyper-link příkazů, které by vyžadovaly následné požadavky browseru, jež by pak byly browserem iniciovány. Web server pracuje jako server pro klienta a- zpracovává požadavky web browserů a odpovídá jim na požadavky ve formě části dat HTML v datovém toku HTTP.In the context of the World Wide Web applications of the k1 ient / server type, the client can be a web browser that creates a user interface. This web browser sends user requests to the appropriate web server and formats and displays the HTML data returned from the web server. The web browser also evaluates this HTML data to determine if there are many embedded hyper-link commands that would require subsequent browser requests that would then be initiated by the browser. The web server acts as a client server and handles the requests of web browsers and responds to requests in the form of part of the HTML data in the HTTP data stream.

Příkladem typické komunikace world wide web je případ, kdy web browser iniciuje požadavek na home page (domovskou stránku) z web serveru, neboť to ilustruje základní vztah mezi HTTP, HTML, TCP a web browserem a serverem. Když uživatel web browseru požaduje informace ze specifického místa web, iniciuje web browser komunikaci s web serverem odesláním požadavku typu získat” na web server se specifikací Universal Resource Locator (URL) požadovaného místa web, např. na již zmíněnou domovskou stánku. URL přestavuje adresu místa web a jeAn example of a typical world wide web communication is when a web browser initiates a home page request from a web server, as this illustrates the basic relationship between HTTP, HTML, TCP, and the web browser and server. When a web browser user requests information from a specific web site, the web browser initiates communication with the web server by sending a retrieve request to the web server with the Universal Resource Locator (URL) specification of the desired web site, e.g., the aforementioned home page. The URL represents the site's URL and is

jedinečný v celé síti internet. Web server by potom získal a poslal web browseru data HTML odpovídající domovské stránce specifikované URL. Tato operace může zahrnovat další komunikaceunique across the Internet. The web server would then retrieve and send the web browser HTML data corresponding to the homepage of the specified URL. This operation may include additional communications

na internetu on the Internet ze strany web serveru internetu, anebo URL může from the web server's Internet site, or URL can spec i f i kovat speci ficate server v lokální síti, k němuž je browser server in the local network to which the browser is

připojen. Web browser by potom vyhodnotil přijatá data HTMLconnected. The web browser would then evaluate the received HTML data

jako datový as data tok HTTP od web serveru, aby zjistil, zda se zde HTTP flow from the web server to see if there nevyskytuj í do not occur vložené spoje typu hyper-link, jako jsou ikony embedded hyper-link links, such as icons a obrázky, and images, a pokud se vyskytují, iniciuje požadavky and initiates requests, if any

specifikující pro URL hyper-link, jak získat potřebná data. Takto obdržená data jsou pak začleněna do domovské stránkyspecifying the hyper-link URL to get the data needed. The data thus obtained is then incorporated into the homepage

a zobrazena and displayed uživateli. Jak je z tohoto příkladu zřejmé, users. As this example shows,

jednoduchý uživatelský vstupní požadavek od web browseru může mít za následek mnohonásobné dodatečné požadavky, které provádí web browser automaticky v reakci na přijatá data HTML odpovídající vstupnímu požadavku uživatele.a simple user input request from a web browser can result in multiple additional requests that the web browser automatically executes in response to received HTML data corresponding to the user input request.

Popularita web browseru/web serveru a jejich společných informačních a přenosových protokolů, HTML a HTTP, vedla k rychlému přijetí technologie web jako univerzálního stykového rozhraní pro přístup k informacím na síti. Dále v důsledku standardizace protokolů a jazyka pro komunikaci mezi web browsery a web servery budou komunikační protokoly a jazyk stejné nezávisle na tom,, zda uživatel pracuje s programemThe popularity of the web browser / web server and its common information and transmission protocols, HTML and HTTP, has led to the rapid adoption of web technology as a universal interface for accessing information on the network. Furthermore, due to standardization of protocols and language for communication between web browsers and web servers, the communication protocols and language will be the same regardless of whether the user is working with the program

Netscape Navigátor, NCSA Mosaic, WebExplorer nebo jakýmkoli jiným web browserem, který mu umožňuje přístup k síťovým informacím. To znamená, že velká instalovaná uživatelská báze pro web browsery zkombinovaná s připojením na Internet a snadnost zapisování na definovaného HTTP rozhraní vytváří z technologie web aplikační web servery pomocí Common Gateway Interface (CGI) velmi atraktivní prostředek pro velkou třídu aplikací založených na formulářích.Netscape Navigator, NCSA Mosaic, WebExplorer or any other web browser that allows it to access network information. This means that a large installed user base for web browsers combined with an Internet connection and the ease of writing to a defined HTTP interface make web application web servers using the Common Gateway Interface (CGI) a very attractive means for a large class of form-based applications.

V době, kdy rostla popularita internetu a rozšiřovala se jeho dostupnost, rostla rovněž i popularita mobilního výpočetnictví.At a time when the Internet was growing in popularity and its availability expanded, so was the popularity of mobile computing.

Používání laptopů, notebooků, prostředků PersonálUse of laptops, laptops, resources Staff

Digi ta 1/Communicati on Assistants (PDA/PCA) a dalších přenosných zařízení vedlo ke zvýšení požadavků na bezdrátovou komunikaci.Digital 1 / Communicati on Assistants (PDA / PCA) and other portable devices have led to increased wireless communication requirements.

Dálkové bezdrátové komunikační sítě, celulární komunikace a paketové radiospojení však trpí společnými omezeními v situacích, kdy se používají v kontextu web. Vysoké náklady na komunikaci při přepočtení na jeden byte, pomalá časová odezva, malá šířka pásma a nespolehlivost - to vše brání použití bezdrátové technologie pro nestavový komunikační protokol WorldHowever, long-distance wireless communications networks, cellular communications, and packet radio communications suffer from common limitations when used in the web context. High per-byte conversion costs, slow response time, low bandwidth and unreliability - all hamper the use of wireless technology for stateless communication protocol World

Wide Web. Protože je protokol web nestavový, je i množství dat na jeden požadavek a také počet požadavků přenášených po bezdrátových spojeních větší, než by to bylo nezbytné, kdybyWide Web. Because the web protocol is stateless, the amount of data per request, as well as the number of requests transmitted over wireless connections, is greater than would be necessary if

komunikace nebyla samostatná. Takže kombinace bezdrátové technologie nebo j i né pomalé komunikační techno1og i e s t echno1ogi í web se zdá být nepraktická, protože síla technologie web je v její univerzální povaze, a ta obnažuje slabosti bezdrátové technologie.the communication was not independent. Thus, a combination of wireless technology or other slow communication technology with this web seems impractical because the power of web technology is in its universal nature, and it exposes the weaknesses of wireless technology.

Kromě nevýhod při používání bezdrátové komunikace v prostředí web k1 ient/server nabízejí tradiční techniky zachycování pouze omezené použití. Obnova zachycených dat, přijatých z web serveru, znamená spolehlivost a znalost obtíží při použití ve web prostředí. Jsou-1i například zachycená data obnovovánaIn addition to the disadvantages of using wireless communication in a web k1 ient / server environment, traditional capture techniques offer limited use. Recovering captured data received from a web server means reliability and knowledge of the difficulties in use in a web environment. For example, the captured data is restored

pokaždé při iniciaci nové instance web browseru, potom může být generováno více zbytečných požadavků browseru v případě, že tato informace není využita během konkrétní instance web browseru. Jestliže zachycená data nejsou obnovena, potom nejsou tato data v cache paměti spolehlivá.each time a new instance of the web browser is initiated, more unnecessary browser requests may be generated if this information is not used during a particular instance of the web browser. If the captured data is not recovered, then this data in the cache is not reliable.

Podstata vynálezuSUMMARY OF THE INVENTION

Ve světle výše uvedených omezení je jedním z cílů tohoto vynálezu poskytnout systém zachycování, který zajistí spolehlivá data, bez nutnosti nadbytečných aktualizací zachycovaných dat.In view of the above limitations, one object of the present invention is to provide a capture system that provides reliable data without the need for unnecessary updates of the captured data.

Dalším cílem stávajícího vynálezu je poskytnout strukturu zachycování, která může být použita v prostředí web browser/server.It is another object of the present invention to provide a capture structure that can be used in a web browser / server environment.

Cílem tohoto vynálezu je také zachovat kompatibilitu 5 existujícími komunikačními protokoly a jazyky u pomalých nebo bezdrátových komunikačních systémů, bez nutnosti úpravy aplikací web browseru nebo web serveru.It is also an object of the present invention to maintain compatibility with existing communication protocols and languages for slow or wireless communication systems, without the need to modify web browser or web server applications.

K dalším cílům stávajícího vynálezu patří poskytnutí způsobu zachycování, který redukuje objem komunikace, požadované mezi web browserem a web serverem, a tedy zvýšení výkonnosti komunikačního systému.It is another object of the present invention to provide a capture method that reduces the amount of communication required between the web browser and the web server, and thus enhances the performance of the communication system.

Z pohledu těchto a dalších cílů poskytuje stávající vynález způsob zachycování dat, přijatých od druhé aplikace, a také poskytnutých na první aplikaci, v odpovědi na požadavek od první aplikace. Způsob zahrnuje uložení datového toku, který má být přijat z druhé aplikace a který má být poskytnut první aplikaci, do první cache paměti s cílem vytvořit klientův cache zápis, odpovídající požadavku z první aplikace. Čas vytvoření klientova cache zápisu je rovněž uložen tak, aby se vytvořil záznam času klientova cache zápisu. Požadavky z první aplikace jsou zachycovány s cílem stanovit, zda existuje klientův cache zápis odpovídající požadavku. Pokud existuje klientův cache zápis, který odpovídá požadavku, potom je vyhodnocen záznam času klientova cache zápisu pro klientův cache zápis odpovídající požadavku první aplikace tak, aby se určilo, zda byl vytvořen k1 ientův cache zápis, odpovídající požadavku první aplikace, během předem definovaného klientova koherentního časového intervalu před tím, než první aplikace požadovala informace. Klientův cache zápis je předán na první aplikaci v odpovědi na dotaz, zda byl vytvořen klientův cache zápis během předem definovaného klientova koherentního časového intervalu před tím, než první aplikace vyžádala informace.In view of these and other objects, the present invention provides a method of capturing data received from a second application, and also provided on a first application, in response to a request from a first application. The method includes storing the data stream to be received from the second application and to be provided to the first application in a first cache memory to create a client cache entry corresponding to the request from the first application. The client write cache time is also stored to create a client write cache time record. Requests from the first application are intercepted to determine whether there is a client write cache matching the request. If there is a client cache entry that corresponds to the request, then the client entry cache time entry for the client application cache entry corresponding to the first application request is evaluated to determine whether a client application cache entry corresponding to the first application request was created during a predefined client coherent the time interval before the first application requested information. The client write cache is passed to the first application in response to a query of whether the client write cache was created during a predefined client coherent time interval before the first application requested information.

V dalším začlenění stávajícího vynálezu jsou udržovány klientovy cache zápisy pro více instancí první aplikace.In a further embodiment of the present invention, client caches are maintained for multiple instances of the first application.

V alternativním začlenění stávajícího vynálezu je první aplikace rezidentní na prvním počítači a druhá aplikace rezidentní na druhém počítači, přičemž první a druhá aplikace spolu navzájem komunikují přes externí komunikační spoj.In an alternative embodiment of the present invention, the first application is resident on the first computer and the second application resident on the second computer, wherein the first and second applications communicate with each other via an external communication link.

V tomto alternativním začlenění stávající vynález dále zahrnuje uložení datového toku od druhé aplikace v odpovědi na požadavek od první aplikace do druhé cache paměti rezidentní na druhém počítači tak, aby se vytvořil cache zápis požadavku serveru. Požadavek vytvořený první aplikací je dále vyhodnocen s cílem stanovit, zda byl cache zápis požadavku serveru, odpovídající tomuto požadavku, dříve uložen v druhé cache paměti. Cache zápis požadavku serveru, odpovídající požadavku od první aplikace, je potom odeslán na první aplikaci rezidentní na prvním počítači přes externí komunikační spoj.In this alternative embodiment, the present invention further comprises storing the data flow from the second application in response to a request from the first application to a second cache memory resident on the second computer so as to create a server request write cache. The request created by the first application is further evaluated to determine whether the write cache of the server request corresponding to that request was previously stored in the second cache memory. The server request write cache corresponding to the request from the first application is then sent to the first application resident on the first computer over an external communication link.

V jiném alternativním začlenění stávajícího vynálezu určí druhý počítač, zda cache zápis požadavku, serveru, odpovídající požadavku od první aplikace, byl vytvořen během předem definovaného klientova koherentního časového intervalu před tím, než druhý počítač přijal požadavek. Cache zápis požadavku serveru, který odpovídá požadavku od první aplikace, je odeslán na první počítač v případě, že tento cache zápis požadavku serveru byl vytvořen během předem definovaného klientova koherentního časového intervalu.In another alternative embodiment of the present invention, the second computer determines whether the request write cache, the server corresponding to the request from the first application, was created during a predefined client coherent time interval before the second computer received the request. A server request write cache that corresponds to a request from the first application is sent to the first computer if the server request write cache was created during a predefined client coherent time interval.

Alternativní začlenění stávajícího vynálezu může rovněž zahrnovat určení, zda existuje klientův cache zápis, odpovídající požadavku od první aplikace, který je identický se serverovým cache zápisem požadavku. Časový interval mezi tím, kdy druhý počítač přijal požadavek od první aplikace, a tím, kdy byl vytvořen cache zápis požadavku serveru, odpovídající požadavku od první aplikace, je vypočten s cílem poskytnout data o stáří zápisu. Data o stáří zápisu pro serverový cache zápis, odpovídající požadavku od první aplikace, jsou přenesena na první aplikaci rezidentní na prvním počítači, a záznam času k1 i entova apli kace, při jatých počítači.An alternative embodiment of the present invention may also include determining whether there is a client cache entry corresponding to a request from a first application that is identical to the server cache entry request. The time interval between the second computer receiving the request from the first application and the creation of the server request write cache corresponding to the request from the first application is calculated to provide write age data. The write age data for the server cache write corresponding to the request from the first application is transferred to the first application resident on the first computer, and the time record of the application is taken by the computers.

cache zápisu, odpovídajícího požadavku od první aktualizován odečtením dat o stáří zápisu, počítače, od aktuálního času na prvním je z druhéhothe cache of the corresponding request from the first updated by subtracting the age of the entry, the computer, from the current time on the first is from the second

V jiných začleněních web browser a druhou komunikují první a stávajícího vynálezu tvoří první aplikaci aplikaci web server, a v dalším začlenění druhý počítač přes bezdrátový komunikační spoj.In other embodiments, the web browser and the second communicate with the first and the present invention, the first application forms a web server application, and in a further embodiment the second computer over a wireless communication link.

Výše popsané aspekty stávajícího vynálezu mohou být podle potřeb poskytnuty rovněž i v jiné formě, např. jako počítačový program (tj. soubor, který lze číst na počítači).The above-described aspects of the present invention may also be provided in another form as desired, e.g., as a computer program (i.e., a computer-readable file).

Přehled obrázků na výkresechBRIEF DESCRIPTION OF THE DRAWINGS

Vynález je dále blíže objasněn na příkladech provedení pomocí výkresů.The invention is explained in more detail below with reference to the drawings.

Obr. 1 znázorňuje blokový diagram typického systému web browser/web server.Giant. 1 is a block diagram of a typical web browser / web server system.

Obr. 2 znázorňuje blokový diagram systému web browser/web server podle jednoho provedení předloženého vynálezu, využívajícího zachycení klienta a zachycení serveru.Giant. 2 is a block diagram of a web browser / web server system according to an embodiment of the present invention utilizing client capture and server capture.

Obr, 2a znázorňuje blokový diagram systému web browser/web server podle jednoho provedení předloženého vynálezu, využívajícího klientovu první cache pamět a serverovou druhou cache pamět.Fig. 2a shows a block diagram of a web browser / web server system according to an embodiment of the present invention using the client's first cache and the server's second cache.

Obr. 3 znázorňuje vývojový diagram operací prováděných zachycovac í m modulemna straně, klienta v přednostnímGiant. 3 shows a flow chart of operations performed by the intercept module on the client side in the preferred mode

provedení předloženého vynálezu implementujícího koherentní vyrovnávací systém cache.an embodiment of the present invention implementing a coherent cache system.

Obr. 4 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně klienta v přednostním provedení předloženého vynálezu implementujícíhoGiant. 4 illustrates a flow chart of operations performed by a client-side intercept module in a preferred embodiment of the present implementing implement

koherentní vyrovnávací systém cache.a coherent cache system.

Obr. 5 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně serveru v přednostním provedení předloženého vynálezu implementujícího koherentní vyrovnávací systém cache.Giant. 5 is a flowchart of operations performed by a server-side intercept module in a preferred embodiment of the present invention implementing a coherent cache system.

Obr. 6 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně serveru v přednostním provedení předloženého vynálezu implementujícího koherentní vyrovnávací systém cache.Giant. 6 is a flow chart of operations performed by a server-side intercept module in a preferred embodiment of the present invention implementing a coherent cache system.

Obr. 7 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně klienta v přednostním provedení předloženého vynálezu implementujícího přenosový systém rozdílových dat.Giant. 7 illustrates a flow chart of operations performed by a client-side intercept module in a preferred embodiment of the present invention implementing a differential data transmission system.

Obr. 8 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně klienta v přednostním provedení předloženého vynálezu implementujícího přenosový systém rozdílových dat.Giant. 8 illustrates a flow chart of operations performed by a client-side intercept module in a preferred embodiment of the present invention implementing a differential data transmission system.

Obr. 9 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně serveru v přednostním provedení předloženého vynálezu implementujícího přenosový systém rozdílových dat.Giant. 9 is a flowchart of operations performed by a server-side intercept module in a preferred embodiment of the present invention implementing a differential data transmission system.

Obr. 10 znázorňuje vývojový diagram operací prováděných zachycovacím modulem na straně serveru v přednostním provedení předloženého vynálezu implementujícího přenosový systém rozdílových dat.Giant. 10 is a flow chart of operations performed by a server-side intercept module in a preferred embodiment of the present invention implementing a differential data transmission system.

Obr. 11 znázorňuje blokový diagram jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 11 is a block diagram of one embodiment of the present invention using virtual sockets.

Obr. 12 znázorňuje blokový diagram zachycovacího modulu na straně klienta a zachycovacího modulu na straně serveru podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 12 is a block diagram of a client-side intercept module and a server-side intercept module according to an embodiment of the present invention using virtual sockets.

Obr. 13 znázorňuje vývojový diagram popisující operace prováděné manažerem soketů u zachycovacího modulu na straně klienta, anebo zachycovacího modulu na straně serveru, podle jednoho provedení předloženého vynálezu,Giant. 13 is a flowchart describing operations performed by a socket manager of a client-side intercept module or a server-side intercept module, according to an embodiment of the present invention;

využívajícího virtuální sokety.using virtual sockets.

Obr. 14 znázorňuje vývojový diagram popisující operace prováděné zachycovací funkcí na straně klienta v jednom provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 14 is a flowchart describing operations performed by a client-side intercept function in one embodiment of the present invention using virtual sockets.

Obr. 15 znázorňuje vývojový diagram popisující operace prováděné zachycovací funkcí na straně serveru v jednom provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 15 is a flowchart describing operations performed by a server-side intercept function in one embodiment of the present invention using virtual sockets.

Obr. 16-1 znázorňuje vývojový diagram popisující virtuální operaci vytváření podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 16-1 illustrates a flow chart describing a virtual creation operation according to an embodiment of the present invention using virtual sockets.

Obr. 16-2 znázorňuje vývojový diagram popisující virtuální operaci odesílání podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 16-2 is a flowchart describing a virtual send operation according to an embodiment of the present invention using virtual sockets.

Obr. 16-3 znázorňuje vývojový diagram popisující virtuální operaci příjmu podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 16-3 is a flowchart describing a virtual receive operation according to an embodiment of the present invention using virtual sockets.

Obr. 16-4 znázorňuje vývojový diagram popisující virtuální operaci výběru podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 16-4 is a flowchart describing a virtual selection operation according to an embodiment of the present invention using virtual sockets.

Obr. 17-1 znázorňuje vývojový diagram popisující virtuální operaci vyrovnání podle jednoho provedení vynálezu vynálezu, využívajícího virtuální sokety.Giant. 17-1 illustrates a flow chart describing a virtual alignment operation according to an embodiment of the invention using virtual sockets.

Obr. 17-2 znázorňuje vývojový diagram popisující virtuální operaci zavření podle jednoho provedení předloženého vynálezu, využívajícího virtuální sokety.Giant. 17-2 is a flowchart describing a virtual close operation according to an embodiment of the present invention using virtual sockets.

Příklady provedení vynálezuDETAILED DESCRIPTION OF THE INVENTION

Stávající vynález bude nyní popsán podrobněji, a to. s pomocí příslušných obrázků, v nichž jsou znázorněny preferované popisy vynálezu. Tento vynález může být však začleněn v mnoha různých formách a neměl by být konstruován jako limitovaný na zde uváděná začlenění. Tato začlenění jsou uváděna tak, aby jejichThe present invention will now be described in more detail, namely. with reference to the accompanying drawings, in which preferred descriptions of the invention are shown. However, the present invention may be embodied in many different forms and should not be construed as limited to the embodiments herein. These incorporations are presented to them

9a9a

popis byl úplný a kompletní a aby byl plné předkládaný vynález prezentován těm, kdo jej posuzují. V celém dokumentu jednotlivé elementy označují čísla.the description is complete and complete, and that the present invention is fully presented to those of ordinary skill in the art. Throughout the document, individual elements indicate numbers.

Základní komunikační struktura pro systém založený na síti internet je znázorněna na obr. 1 Na obrázku 1 komunikuje web browser 10 s web serverem 20 po komunikačním spoji 1 5. Tento komunikační spoj je obvykle spoj LAN, WAN s využitím *The basic communication structure for the Internet-based system is shown in Fig. 1. In Fig. 1, web browser 10 communicates with web server 20 over communication link 15. This communication link is usually a LAN, WAN link using *

telefonních linek nebo kombinace propojovacích metod. Web browser 10 komunikuje s web serverem 20 pomocí TCP/IP. Většina komunikací po Internetu je taková, s web serverem prostřednictvím že web browser komunikuje generického komunikačního protokolu HTTP, který je přenášen mezi web browserem a web serverem po spoji TCP/IP vytvořeném mezi web browserem a web serverem. Skutečná data přenášená mezi web browserem 10 a web serverem 20 jsou tvořena objekty HTTP (např. data HTML), jak bylo výše popsáno. Web server 20 může být i zprostředkovatelem, který přijímá web browserové komunikace od více web browserů a routerů (směrovačů) a předává je na příslušný server.telephone lines or a combination of interconnection methods. The web browser 10 communicates with the web server 20 via TCP / IP. Most Internet communications are with the web server through that the web browser communicates a generic HTTP communication protocol that is transmitted between the web browser and the web server over a TCP / IP link established between the web browser and the web server. The actual data transmitted between the web browser 10 and the web server 20 is made up of HTTP objects (e.g., HTML data) as described above. The web server 20 may also be an intermediary that receives web browser communications from multiple web browsers and routers and forwards them to the appropriate server.

Obr. 3 až 10 a 13 až 17-2 jsou vývojové diagramy metod a systémů podle vynálezu. Mělo by být jasné, že každý blokGiant. 3 to 10 and 13 to 17-2 are flow diagrams of the methods and systems of the invention. It should be clear that each block

vývojových diagramů a také kombinace těchto bloků mohou být implementovány pomocí instrukce počítačového instrukcí počítačového programu. Tyto programu mohou být zaváděny na počítač nebo mohou být tvořeny jinými programovatelnými zařízenímiflowcharts as well as combinations of these blocks can be implemented using a computer program instruction of a computer program. These programs may be loaded onto a computer or may consist of other programmable devices

s cílem zhotovit stroj tak, aby instrukce, které bude počítač nebo jiné programovatelné zařízení provádět, vytvořily prostředky pro implementování funkcí specifikovaných v bloku nebo v blocích vývojového diagramu. Tyto počítačové programové instrukce mohou být uloženy v počítačem čitelné paměti, která může řídit počítač nebo jiné programovatelné zařízení, aby pracovalo určitým způsobem, tak jako instrukce uložené v počítačem čitelné paměti vytvářejí výrobní článek včetně instrukčních prostředků, které implementují funkciin order to make the machine such that the instructions that the computer or other programmable device will execute provide means for implementing the functions specified in the block or flowchart blocks. These computer program instructions can be stored in a computer readable memory that can control a computer or other programmable device to operate in a particular way, as instructions stored in a computer readable memory create a production article, including instructions that implement a function

- 9b specifikovanou v bloku nebo v blocích vývojového diagramu. Počítačové programové instrukce mohou být rovněž zaváděny do počítače nebo jiného programovatelného zařízení tak, že způsobí řadu funkčních kroků prováděných na počítači nebo jiném programovatelném zařízení s cílem vytvořit počítačem implementovaný proces, tak jako instrukce, které provádějí na počítači nebo jiném programovatelném zařízení kroky pro implementaci funkcí specifikovaných v bloku nebo v blocích vývojového diagramu.- 9b specified in the flowchart or blocks. Computer program instructions may also be loaded into a computer or other programmable device by causing a series of functional steps performed on a computer or other programmable device to create a computer-implemented process, as well as instructions that perform steps on a computer or other programmable device to implement functions. specified in the block or flowchart blocks.

Podobně bloky vývojových diagramů podporují kombinace prostředků kroků pro provádění specifických funkcí. Každý blok na ilustraci vývojového diagramu, popřípadě kombinace bloků, může být i mpIementován speciálním jednoúčelovým hardwarově založeným počítačovým systémem, který provádí specifikované funkce nebo kroky, anebo kombinací speciálního účelového hardware a počítačových instrukcí.Similarly, flowchart blocks support combinations of step means to perform specific functions. Each block to illustrate a flowchart or a combination of blocks may also be implemented by a dedicated dedicated hardware-based computer system that performs the specified functions or steps, or by a combination of special purpose hardware and computer instructions.

-10Obrázek 2 ilustruje jedno začlenění stávajícího vynálezu. Jak je zřejmé z obrázku 2, web browser 10 komunikuje se zachycovacím modulem na straně klienta. 30. Web server 20 komunikuje se zachycovacím modulem na serverové straně 40. Zachycovací modul na klientově straně_30 pak komunikuje se zachycovacím modulem na serverové straně 40 přes komunikační spoj 35. Web browser 10 a zachycovací modul na klientově straně_30 se mohou nacházet v prvním počftačijS. Zachycovací modul na serverové straně 40 a web server_20 se mohou nacházet ve druhém počítači 6. První počítačJLa druhý počítač 6 spolu komunikují přes externí komunikační spoj 35.Figure 2 illustrates one embodiment of the present invention. As shown in Figure 2, the web browser 10 communicates with a client-side intercept module. The web server 20 communicates with the intercept module on the server side 40. The intercept module on the client side 30 then communicates with the intercept module on the server side 40 via the communication link 35. The web browser 10 and the intercept module on the client side 30 may be located in the first computer. The intercept module on the server side 40 and the web server_20 may be located in the second computer 6. The first computer 11 and the second computer 6 communicate with each other via an external communication link 35.

Přednostně je web browser JO internetový web browser využívající hypertext transfer protocol (HTTP) a hypertext markup language (HTML) pro komunikaci s internetovým web serverem 20, který rovněž používá HTTP a HTML. V provozu by web browser 10 dával na výstup datový tok HTTP, který je zachycován modulem na straně klienta 30. Zachycení datového loku HTTP zachycovacím modulem na straně klienta 30 může být prováděno použitím funkce zpětnovazební smyčky TCP/IP, kde zachycovací modul na straně klienta 3^0 je rezidentní na adrese IP a má síťové číslo 127, např. 127.0.0.1. Zachycovací modul na straně klienta 30 potom konvertuje nebo transformuje datový tok HTTP do specifického protokolu klient/server a odešle specifický datový tok klient/server na externí komunikační spoj í!S. Zachycovací modul na straně serveru 40 přijme specifický datový tok a rekonstruuje původní datový tok HTTP odpovídající komunikaci vytvářené web browserem. Tento rekonstruovaný datový tok HTTP je potom odeslán na web server 20^ Web server 20 odpoví na datový tok HTTP obvyklým způsobem pro internetový web server. Z pohledu hodnocení vynálezu je nutné říci, že web server 20 může být rovněž nahrazen tak, aby bylo dosaženo připojení na Internet pro více browserů.Preferably, the web browser is an internet web browser using hypertext transfer protocol (HTTP) and hypertext markup language (HTML) to communicate with an internet web server 20 that also uses HTTP and HTML. In operation, the web browser 10 would output the HTTP data stream that is captured by the client-side module 30. Capture of the HTTP data locator by the client-side intercept module 30 can be performed using the TCP / IP loopback function, where the client-side intercept module 3 ^ 0 is resident at an IP address and has a network number of 127, eg 127.0.0.1. The client-side intercept module 30 then converts or transforms the HTTP data stream into a specific client / server protocol and sends the specific client / server data stream to an external communication link. The server-side intercept module receives a specific bitrate and reconstructs the original HTTP bitrate corresponding to the communication created by the web browser. This reconstructed HTTP data stream is then sent to the web server 20. The web server 20 responds to the HTTP data stream in the usual manner for an Internet web server. In view of the evaluation of the invention, it should be noted that the web server 20 may also be replaced so as to provide an Internet connection for multiple browsers.

Jakmile je informace přijata web servererrr20 pro odeslání na web browser 10, například jako odpověcf na požadavek browserů pro specifickou domovskou stránku URL, odešle web serverJIO výstupní datový tok HTTP odpovídající komunikaci, která má být odeslána na web browser ICLTato komunikace vytvářená web serverem je zachycena zachycovacím modulem na straně serveru JO^a transformována na specifický datový tok klient/server. Tento specifický datový tok klient/server odpovídající komunikaci vytvářenéOnce the information is received by the web servererrr20 for sending to the web browser 10, for example in response to a browser request for a specific homepage URL, the web server sends an HTTP output stream corresponding to the communication to be sent to the web browser. server-side module JO ^ and transformed to a specific client / server bitrate. This specific client / server bitrate corresponds to the communication being created

RA 995 086RA 995 086

1 web serverem je potom odeslán na externí komunikační spoj .35. druhým počítačem do prvního počítače. Specifický datový tok klient/server je přijat prvním zachycovacím modulem na straně klienta 30. který rekonstruuje původní datový tok HTTP odpovídající komunikaci vytvářené web serverem a poskytne jej web browseru 10.1 is then sent to an external .35 communication link. the second computer to the first computer. The specific client / server data stream is received by the first client-side intercept module 30 which reconstructs the original HTTP data stream corresponding to the communication generated by the web server and provides it to the web browser 10.

V konkrétním začlenění stávajícího vynálezu je externí komunikační spoj 35 bezdrátovým komunikačním spojem. V takovém případě, aby bylo dosaženo systémové výkonnosti přijatelné pro uživatele, je zapotřebí snížit objem komunikace přes externí komunikační spoj 35, a to jak co do četnosti komunikace, tak do objemu informací, které musí být přenášeny přes komunikační spoj 35.. Podobně současný vynález využívá techniky vyrovnávání, vytváření rozdílů a redukce protokolů s cílem minimalizovat potřebný objem komunikace přes externí komunikační spoj 35, Tyto techniky jsou prováděny konvertováním nestavových nebo stochastických protokolů HTTP na specifický protokol klient/server, který využívá informace specifické pro klienta a pro server tak, aby minimalizoval objem a četnost komunikace.In a specific embodiment of the present invention, the external communication link 35 is a wireless communication link. In such a case, in order to achieve user-friendly system performance, it is necessary to reduce the volume of communication over the external communication link 35, both in terms of frequency of communication and in the amount of information that must be transmitted over the communication link 35. employs techniques of balancing, creating, and reducing protocols to minimize communication through an external communications link 35 These techniques are performed by converting stateless or stochastic HTTP protocols to a specific client / server protocol that uses client-specific and server-specific information to minimized the volume and frequency of communication.

Zatímco stávající vynález je a bude popisován s ohledem na jednu aplikaci web browser a jednu aplikaci web server je nutné předeslat pro hodnocení tohoto vynálezu, že přednosti a výhody stávajícího vynálezu mohou být rovněž dosahovány násobnými web browsery přiřazenými jednomu web serveru. Stávající vynález se tedy vztahuje i na metody, zařízení a programové produkty ve spojení s násobnými browsery, kde každý z nich komunikuje pomocí zachycovacího modulu na straně klienta a kde tyto zachycovací moduly na straně klienta komunikují se zachycovacím modulem na straně serveru u web serveru nebo jiného obdobného web zařízení.While the present invention is and will be described with respect to one web browser application and one web server application, it should be noted to evaluate the present invention that the advantages and advantages of the present invention can also be achieved by multiple web browsers assigned to one web server. Thus, the present invention also relates to methods, devices, and software products in conjunction with multiple browsers, each of which communicates via a client-side intercept module and wherein the client-side intercept module communicates with the server-side intercept module of the web server or other web device.

V jednom začlenění stávajícího vynálezu jak u prvního zachycovacího modulu na straně klienta, tak u zachycovacíhoIn one embodiment of the present invention, both the first client-side intercept module and the intercept module

modulu na straně serveru 40 se využívá možnosti ukládání do vyrovnávací paměti. Klientova vyrovnávací cache paměť se nachází na prvním počítači a ukládá datové toky HTTP, které mají být přijaty web browserem v odpovědi na komunikaci vytvářenou web browserem. Serverová vyrovnávací cache paměť je rezidentní na druhém počítači a ukládá datové toky HTTP, které jsou přijaty z web serveru v odpovědi na komunikaci vytvářenou browserem.The server-side module 40 utilizes the buffering capability. The client cache is located on the first computer and stores HTTP data streams to be received by the web browser in response to communication generated by the web browser. The server cache is resident on the other computer and stores HTTP data streams that are received from the web server in response to browser-generated communication.

Obr. 2a znázorňuje uložení cache paměti odpovídající zachycovacímu modulu podle provedení vynálezu. Klinetova první cache paměť 31 na prvním zachycovacím modulu na straně klienta 30 je rezidentní na prvním počítači .5 a druhé cache paměti na straně serveru 40 je rezidentní na druhém počítači 6..Giant. 2a shows a cache memory storage corresponding to a capture module according to an embodiment of the invention. Klinet's first cache memory 31 on the first client-side intercept module 30 is resident on the first computer 5, and the second server-side memory cache 40 is resident on the second computer 6.

Z pohledu hodnocení tohoto vynálezu cache paměť rezidentní na prvním počítači nebo na druhém počítači může být libovolné velikostí a libovolného specifického hardware či konfigurace počítače. Tyto vyrovnávací cache paměti uchovávají informace pro jednotlivé komunikace včetně URL komunikace, jednoznačného identifikátoru založeného na komunikacích obsahujícího například cyklickou kontrolu redundance (CRC), dat komunikace, data a času uložení (SDT) indikujících dobu, kdy byl vytvořen nebo obnoven cache zápis, a komunikačních dat. Pro každou komunikaci ukládanou do paměti cache může být tedy vytvořen adresář cache zápisů. Tím jsou klientovy cache zápisy 3.2 uloženy v první cache paměti 31 na straně klienta 30 a cache zápis 42 na straně serveru 40 je uložen v druhé cache paměti 4 1 na straně serveru 42, jak je patrné na obr. 2a. Dále může být libovolný, v důsledku omezených zdrojů dostupných pro danou hardwarovou konfiguraci, počet technik ukládání do vyrovnávací paměti a rovněž udržování rezidentních cache pamětí na prvním i na druhém počítači. Na to vše se vztahuje tento vynález. To znamená, že například cache paměť může zrušit platnost nejstaršího adresáře zápisů v případě, že uživatelem definovanáIn view of the evaluation of the present invention, the cache memory resident on the first computer or on the second computer may be of any size and of any specific hardware or configuration of the computer. These caches store information for each communication, including URL communication, a unique communication-based identifier including, for example, cyclic redundancy check (CRC), communication data, storage date and time (SDT) indicating the time when the write cache was created or refreshed, and communication give. Thus, a write cache directory can be created for each cached communication. Thereby, the client cache 3.2 is stored in the first client-side cache 31 and the server-side cache 42 is stored in the second server-side cache 42, as shown in FIG. 2a. Further, due to the limited resources available for a given hardware configuration, there may be any number of caching techniques as well as maintaining resident caches on both the first and second computers. All of this is covered by the present invention. This means, for example, that the cache memory can invalidate the oldest write directory if it is user-defined

12a12a

cache velikost je překročená v důsledku přidání nového zápisu. Cache zápisy mohou být dále udržovány prostřednictvím násobných entit aplikací web browseru nebo web serveru nebo dokonce cyklů spouštěných po zapnutí na prvním nebo na druhém počítači pro vytvoření stálé cache paměti.cache size is exceeded due to the addition of a new listing. Furthermore, cache writes can be maintained through multiple entities of web browser or web server applications or even power-on cycles on the first or second computer to create a permanent cache.

Činnost struktury vyrovnávání je podle jednoho provedení předloženého vynálezu popsána pomocí obr. 3 až 5, což jsou vývojové diagramy popisující činnost zachycovacího modulu naThe operation of the alignment structure according to one embodiment of the present invention is described with reference to Figs.

straně klienta 30 a zachycovacího modulu na straně serveru 40, Konkrétně u obr. 3 označuje blok 100, že zachycovací modul na straně klienta přijal požadavek od web browseru 10 . Tento požadavek může být ve formě datového toku HTTP. Zachycovací modul na straně klienta 30 kontroluje Uniform Resource Locator (URL) příchozího požadavku, jak je znázorněno v bloku 105. Zachycovací modul na straně klienta 30 určí z URL, jestli byla informace, dříve uložená v klientově cache rezidentní v prvním počítači 5, odpovídající požadavku vytvořeného web browserem.Specifically, in Fig. 3, block 100 indicates that the client-side intercept module has received a request from the web browser 10. This request can be in the form of an HTTP data stream. The client-side intercept module 30 checks the Uniform Resource Locator (URL) of the incoming request as shown in block 105. The client-side intercept module 30 determines from the URL whether the information previously stored in the client cache was resident on the first computer 5 corresponding to the request created by a web browser.

Jestliže informace odpovídající URL nebyla předtím uložena v klientově cache paměti, potom se uskuteční zachycovacím modulem na straně klienta činnosti znázorněné v bloku 106. Zachycovací modul na straně klienta 30 odešle požadavek přes externí komunikační spoj 35 na zachycovací modul na straně serveru 40.If the information corresponding to the URL has not previously been stored in the client cache, then the client-side intercept module performs the action shown in block 106. The client-side intercept module 30 sends a request over the external communication link 35 to the server-side intercept module 40.

PETR KALENSKÝPETR KALENSKÝ

AT7ORNEY AT LAWAT7ORNEY AT LAW

-13Jestliže však po prozkoumání komunikace vytvořené web browserem, jak je znázorněno v bloku 105, se zjistí, že existuje zápis klientovy cache, který odpovídá komunikaci vytvořené web browserem, potom v nejjednodušším začlenění by byla tato informace poskytnuta web browšeru jako datový tok HTTP. Avšak, jak je znázorněno na obrázku 3, provádí preferované začlenění stávajícího vynálezu to, co je zde označováno jako koherentní intervalová kontrola na cache zápisu odpovídající komunikaci vytvořené web browserem. Tato operace je znázorněna v bloku 110 na obrázku 3.However, if, after examining the communication created by the web browser, as shown in block 105, it is found that there is a client cache entry that corresponds to the communication created by the web browser, then in the simplest incorporation this information would be provided to the web browser as an HTTP data stream. However, as shown in Figure 3, the preferred embodiment of the present invention performs what is referred to herein as a coherent interval check on the write cache corresponding to the communication created by the web browser. This operation is illustrated in block 110 of Figure 3.

Koherentní interval pro zachycovací modul na straně klienta může být uživatelem definovaný a je dán časovou délkou, po kterou může existovat cache zápis předtím, než se stane zastaralým, a musí být obnoven položením dotazu na informaci odpovídající komunikaci vytvořené web browserem, a to web serveru. Koherentní intervalová kontrola, znázorněná v bloku 110, může být prováděna porovnáním aktuálního data a času se sumou SDT cache zápisu, odpovídající komunikaci vytvořené web browserem a koherentnímu intervalu specifikovanému uživatelem. Jestliže aktuální datum a čas je větší než tato suma, potom bude informace uložená v cache paměti odpovídající komunikaci vytvářené web browserem zastaralá a uplatní se větev „No“ bloku 110. Jestliže však aktuální datum a čas je menší než suma SDT plus uživatelem definovaný koherentní interval, potom platí větev „Yes“ bloku 110 a jak je dále znázorněno v bloku 111, je cache zápis předán browšeru jako datový tok HTTP. Komunikace vytvářená browserem bude potom přijata zachycovacím modulem na straně klienta 30 v bloku 100, viz obrázek 3.The coherent client-side intercept module can be user-defined and is determined by the length of time that the write cache can exist before it becomes obsolete, and must be refreshed by asking for information corresponding to the communication created by the web browser, the web server. The coherent interval check shown in block 110 can be performed by comparing the current date and time with the sum of the SDT write cache corresponding to the communication created by the web browser and the coherent interval specified by the user. If the current date and time is greater than this amount, then the information stored in the cache corresponding to the communication generated by the web browser will become obsolete and the "No" block of block 110 will apply. However, if the current date and time is less than the SDT sum plus a user defined coherent interval , then the "Yes" branch of block 110 applies, and as further shown in block 111, the write cache is passed to the browser as an HTTP data stream. The communication generated by the browser will then be received by the client-side intercept module 30 in block 100, see Figure 3.

Jestliže kontrola koherentního intervalu znázorněná v bloku 110 urči, že cache zápis, rezidentní na prvním počítači, je zastaralý, vygeneruje požadavek na zachycovací modul na straně serveru JO, aby zkontroloval koherentnost cache zápisu rezidentního na druhém počítači. Tato operace je znázorněna blokem 112 na obrázku 3. Je prováděna pomoci externího komunikačního spoje 35 použitého k předání koherentního intervalu na zachycovací modul na straně serveru 40 pro konkrétní zachycovací modul na straně klienta, který odpovídá web browšeru 10, jenž vytvořil dotaz, a dále je předána jednoznačná indicie o obsahu klientovy cache, odpovídající URL komunikaci vytvářenéIf the coherent interval check shown in block 110 determines that the write cache resident on the first computer is obsolete, it generates a request on the server side intercept module to check the coherence of the write cache resident on the second computer. This operation is illustrated by block 112 in Figure 3. It is performed using an external communication link 35 used to pass a coherent interval to the server-side intercept module 40 for a particular client-side intercept module corresponding to the query web browser 10, and provided clear clues about the content of the client's cache, corresponding to the URL communication generated

RA995 086RA995 086

-14web browserem. V preferovaném začlenění je tato jednoznačná indicie výsledkem cyklické redundanční kontroly nebo CRC pro daný cache zápis.-14web browserem. In a preferred embodiment, this unambiguous indicia is the result of a cyclic redundancy check or CRC for a given cache write.

Věnujme nyní pozornost obrázku 5, který znázorňuje činnost zachycovacího modulu na straně serveru v odpovědi na informaci přijatou pres externí komunikační spoj.35 od zachycovacího modulu na straně klienta 30. Když zachycovací modul na straně serveru 40 přijme požadavek od zachycovacího modulu na straně klienta, zachycovací modul na straně sen/eru 40 přijme předem definovaný klientův koherentní časový interval, CRC hodnotu pro klientův cache zápis a HTTP dotaz, vytvořený web browserem. Potvrzení tétoReferring now to Figure 5, which illustrates the operation of a server-side intercept module in response to information received via an external communication link 35 from the client-side intercept module 30. When the server-side intercept module 40 receives a request from the client-side intercept module, the sen / eru 40 side module receives a predefined client coherent time interval, a CRC value for the client cache entry, and an HTTP query generated by the web browser. Confirm this

informace je znázorněno v bloku 120 na obrázku 5.information is shown in block 120 of Figure 5.

Po přijetí informace od zachycovacího modulu na straně klienta 30 zkontroluje zachycovací modul na straně serveru^O^svou serverovou cache rezidentní na druhém počítači, aby určil, zda existuje serverový cache zápis odpovídající URL požadavku HTTP vytvořeného web browserem. Jestliže po prozkoumání komunikace vytvořené webUpon receiving information from the client-side intercept module 30, the server-side intercept module 30 checks its server cache resident on the other computer to determine if there is a server cache entry corresponding to the URL of the HTTP request generated by the web browser. If after examining the communication created by the site

browserem, jak je naznačeno v bloku 125, určí zachycovací modul na straně serveru 40, že existuje cache zápis odpovídající informaci, která byla vyžádána komunikací vytvořenou web browserem, uplatní se větev „Yes“ bloku 125. Zachycovací modul na straně serveru 40 potom porovná aktuální datum a čas modulu SSI_40 se sumou SDT serverového cache zápisu odpovídajícího informaci, která byla vyžádána komunikací vytvořenou web browserem, a s předem definovaným klientovým koherentním časovým intervalem přijatým od zachycovacího modulu na straně klienta.by the browser, as indicated in block 125, the server-side intercept module determines that there is a cache entry corresponding to the information requested by the communication generated by the web browser, the "Yes" branch of block 125 is applied. the date and time of the SSI_40 module with the sum of the SDT server cache entry corresponding to the information requested by the communication created by the web browser and with a predefined client coherent time interval received from the client-side intercept module.

Jestliže je aktuální datum a čas menší než suma SDT pro serverový cache zápis a koherentní interval, potom se uplatní větev „Yes bloku 130 na obrázku 5. Zachycovací modul na straně serveru 40potom porovná CRC serverového cache zápisu s CRC klientova cache zápisu, aby určil, zda jsou tyto cache zápisy identické. Pokud jsou tyto dva cache zápisy identické, uplatní se větev „Yes“ bloku 135 a jak je znázorněno v bloku 136, odešle se „koherentní odezva na zachycovací modul na straně klíentaJ30.If the current date and time is less than the sum of the SDT for the server write cache and the coherent interval, then the Yes branch of block 130 in Figure 5 applies. The server-side intercept module then compares the CRC of the server write cache with the CRC of the client write cache to whether these caches are identical. If the two caches are identical, the "Yes" branch of block 135 is applied and, as shown in block 136, a "coherent response to the intercept module on the key side 30" is sent.

V případě, že podmínkový blok 135 určí, že CRC nejsou identické, potom nejsou identické ani informace obsažené v klientově cache paměti a v serverové cache paměti aIf the condition block 135 determines that the CRCs are not identical, then the information contained in the client cache and the server cache and

RA995 086RA995 086

-15jak je znázorněno v bloku 137, zachycovací modul na straně serveru odešle serverový cache zápis na první počítač přes externí komunikační spoj. Při odesíláni serverového cache zápisu na zachycovací modul na klientově straně 30 konvertuje zachycovací modul na serverové straně zápis na klientův specifický komunikační protokol, který obsahuje CRC, data a stáří serverového cache zápisu. Stáří serverového cache zápisu je vypočítáváno odečtením SDT cache zápisu od aktuálního data a času.As shown in block 137, the server side intercept module sends the server cache write to the first computer over an external communication link. When the server write cache is sent to the intercept module on the client side 30, the server side intercept module converts the write to the client specific communication protocol that contains the CRC, data, and age of the server write cache. The server write cache age is calculated by subtracting the SDT write cache from the current date and time.

A pokud, jak je konečně znázorněno na obrázku 5, je bud suma SDT plus předem stanovený klientův koherentní časový interval menší než aktuální datum a čas, nebo neexistuje žádný cache zápis odpovídající URL komunikaci, vytvořené web browserem, potom se uplatní větev „No bloku 130, popřípadě větev „No“ bloku 125. Tak se provedou operace bloku 126 a zachycovací modul na straně serveru 40 odešle na server komunikaci vytvořenou web browserem jako datový tok HTTP. Jestliže zachycovací modul na straně serveru 40 musí odeslat komunikaci vytvořenou web browserem na server jako datový tok HTTP, potom zachycovací modul na straně serveru 40 bude provádět operace popsané obrázkem 6.And if, as finally shown in Figure 5, either the sum of SDT plus a predetermined client coherent time interval is less than the current date and time, or there is no cache entry corresponding to the URL communication generated by the web browser, then the branch of No block 130 applies. Thus, block 126 operations are performed and server-side intercept module 40 sends a web browser-generated communication as an HTTP data stream to the server. If the server-side intercept module has to send the communication created by the web browser to the server as an HTTP data stream, then the server-side intercept module will perform the operations described in Figure 6.

Jak je patrno z bloku 140 na obrázku 6, v odpovědi na komunikaci vytvořenou web browserem bude zachycovací modul na straně serveru přijímat datový tok HTTP z webAs can be seen from block 140 in Figure 6, in response to the communication created by the web browser, the server-side intercept module will receive an HTTP stream from the web browser.

serveru 20, Po přijetí datového toku HTTP vypočte zachycovací modul na straně serveru 40_CRC pro datový tok HTTP a dočasně uloží tento datový tok HTTP. Potom, jak je znázorněno v bloku 145, zachycovací modul na straně serveru prozkoumá datový tok HTTP a určí, zda existuje serverový cache zápis odpovídající URL datového toku HTTP.server 20, Upon receiving the HTTP data stream, it calculates the server side intercept module 40_CRC for the HTTP data stream and temporarily stores the HTTP data stream. Then, as shown in block 145, the server-side intercept module examines the HTTP data stream and determines whether there is a server cache entry corresponding to the HTTP data stream URL.

Jestliže takovýto zápis existuje, uplatní se cesta „Yes“ bloku 145. Zachycovací modul na straně serveru 40_potom porovná nedávno vypočtený CRC datového toku HTTP přijatého od web serveru 20 s CRC serverového cache zápisu odpovídajícího URL komunikaci v odpovědi vytvářené web serverem, jak je znázorněno v bloku 150. Jestliže jsou CRC identické, uplatní se větev „Yes“ v bloku 15(LZachycovací modul na straně serveru 40 aktualizuje zápis SDT pro serverový cache zápis, jak je znázorněno v bloku 151, a smaže dočasně uložený datový tok HTTP přijatý web serverem 20, jak je znázorněno blokem 152.If such an entry exists, the "Yes" path of block 145 is used. The server-side intercept module 40_potom compares the recently calculated CRC of the HTTP data stream received from the web server 20 to the CRC of the server write cache corresponding to the URL communication in the response generated by the web server. block 150. If the CRCs are identical, the "Yes" branch of block 15 is applied (The server-side intercept module 40 updates the SDT entry for the server cache entry, as shown in block 151, and clears the temporarily stored HTTP stream received by the web server 20. as shown by block 152.

RA995 086RA995 086

-> 1-> 1

Jestliže výsledky porovnání CRC indikují, že serverový cache zápis je jiný než datový tok HTTP přijatý od web serveru 20, potom se uplatní větev „No bloku 150. Zachycovací modul na serverové straně 40 odstraní ze serverové cache paměti stávající data, jak je znázorněno v bloku 153, a potom, jak je patrné z bloku 154Λ aktualizuje serverovou cache novějšími informacemi. Z bloku 154 je dále patrné, že tato aktualizace zahrnuje uložení CRC komunikace web serveru do serverové cache, uložení aktuálního data aIf the CRC comparison results indicate that the server write cache is different from the HTTP data stream received from the web server 20, then the No block of branch 150 is applied. The server-side intercept module removes existing data from the server cache as shown in 153, and then, as shown in block 154, updates the server cache Λ newer information. It is further evident from block 154 that this update includes storing the CRC of the web server communication in a server cache, storing the current date, and

Času ve formě SDT jako součásti cache zápisu a uložení datového toku HTTP. Vždy při aktualizaci serverového cache zápisu nebo při zjištění, že serverový cache zápis je identický s přijatým datovým tokem HTTP od serveru 20, zachycovací modul na serverové straně určí, zda serverový cache zápis se shoduje s klientovým cache zápisem odpovídajícím komunikaci, která je vytvářena web browserem. Tato operace je znázorněna blokem 155.Time in the form of SDT as part of the cache write and save HTTP stream. Whenever the server write cache is updated or when the server write cache is found to be identical to the received HTTP data stream from server 20, the server-side intercept module determines whether the server write cache matches the client write cache corresponding to the communication created by the web browser . This operation is illustrated by block 155.

Jestliže zachycovací modul na serverové straně 40 určí, že neexistuje cache zápis odpovídající odezve přijaté od web serveru 20, uplatní se větev „No bloku 145. Serverový cache zápis je vytvářen, jak je znázorněno blokem 146, uložením URL. odpovědi od web serveru, uložením CRC odpovědi od web serveru, uložením datového toku HTTP a uložením aktuálního data a času jako SDT. Po vytvoření cache zápisu odpovídajícího komunikaci vytvořené web serverem zachycovací modul na straně serveru 40.znovu porovná CRC tohoto serverového cache zápisu s CRC odpovídajícím klientově cache zápisu, jak je znázorněno v bloku 155.If the intercept module on the server side 40 determines that there is no cache entry corresponding to the response received from the web server 20, the branch "No" of block 145 is applied. The server cache entry is created, as shown by block 146, by storing the URL. responses from a web server, saving a CRC response from a web server, saving an HTTP stream, and saving the current date and time as an SDT. After creating a write cache corresponding to the communication created by the web server, the server-side intercept module 40 again compares the CRC of the server write cache with the CRC corresponding to the client write cache, as shown in block 155.

Jestliže výsledky porovnání serverového cache zápisu a klientova cache zápisu indikují, že cache zápisy jsou identické, uplatní se větev „Yes“ bloku 155 a provedou se operace bloku 156. Z bloku 1^56Je zřejmé, že zachycovací modul na serverové straně 40 odesílá koherentní odezvu na zachycovací modul na straně klienta 30. Zachycovací modul na serverové straně JOJransformuje serverový požadavek o cache zápisu na specifický datový tok klient/server tak, že odešle koherentní odezvu a také nulové stáří na zachycovací modul na straně klienta.If the results of a comparison of the server write cache and the client write cache indicate that the write cache is identical, the "Yes" branch of block 155 is applied and block 156 operations are performed. Block 1 ^ 56It is clear that the intercept module on server side 40 sends a coherent response to the client-side intercept module 30. The server-side intercept module transforms the server request cache write to a specific client / server data stream by sending a coherent response as well as zero age to the client-side intercept module.

Pokud zachycovací modul na straně serveru 40 určí, že klientův cache zápis není identický se serverovým cache zápisem odpovídajícím komunikaci vytvářené webIf the server-side intercept module determines that the client cache entry is not identical to the server cache entry corresponding to the Web site traffic

RA 995 086RA 995 086

-17browserem, uplatní se větev „No“ bloku 155 a provedou se operace bloku 157. Jak je zřejmé z bloku 157, zachycovací modul na serverové straně 40 konvertuje nebo transformuje serverový cache zápis do specifického datového toku klient/server. Tento datový tok zahrnuje CRC serverového cache zápisu, datový tok HTTP serverového cache zápisu a stáří cache zápisu, které je nastaveno na nulu. Tato specifická komunikace klient/server je potom odeslána přes externí komunikační spoj 35 na zachycovací modul na straně klienta 30.By block 17, the "No" branch of block 155 is applied and block 157 operations are performed. As is clear from block 157, the server side intercept module 40 converts or transforms the server cache entry into a specific client / server data stream. This data stream includes the CRC server write cache, the HTTP server write cache, and the write cache age, which is set to zero. This specific client / server communication is then sent via an external communication link 35 to the client-side intercept module 30.

Funkce zachycovacího modulu na straně klienta 30 po přijetí komunikace od zachycovacího modulu na straně serveru bude popsána s ohledem na obrázek 4. Jak je zřejmé z bloku 160, zachycovací modul na straně klienta^ přijímá nebo vyžaduje specifický datový tok klient/server, který byl přenášen přes externí komunikační spoj_35. Zachycovací modul na straně klienta potom určí, jaký typ odezvy byl přijat od zachycovacího modulu na straně serveru 40, jak je znázorněno v bloku 165. Jestliže zachycovací modul na straně serveru 40 indikuje, že klientův cache zápis je koherentní, tj. že jsou identické cache zápisy serveru a klienta, potom se provedou operace znázorněné blokem J66. Jak je zřejmé z bloku 166, aktualizuje zachycovací modul na straně klienta 30 SDT klientova cache zápisu odpovídajícího komunikaci vytvořené web browserem o rozdíly aktuálního data a času a stáří, které byly přijaty od zachycovacího modulu na straně serveru_40. Takže bez synchronizace hodin prvního počítače Ji a druhého počítače 6 stávající vynález zrevidoval koherentní čas cache zápisu prvního počítače tak, aby v něm zohlednil novější data z druhého počítače. Po aktualizaci SDT klientova cache zápisu odpovídajícího komunikaci vytvořené web browserem odešle zachycovací modul na straně klienta 30 klientův cache zápis do web browseru 10 jako i* — -----datový tok HTTP. Tato činnost je znázorněna blokem 174.The function of the client-side intercept module 30 upon receipt of communication from the server-side intercept module will be described with respect to Figure 4. As is clear from block 160, the client-side intercept module receives or requires a specific client / server data stream that has been transmitted. via an external communication link 35. The client-side intercept module then determines what type of response was received from the server-side intercept module 40, as shown in block 165. If the server-side intercept module indicates that the client's write cache is coherent, that is, the identical caches are identical. server and client writes, then the operations shown by block J66 are performed. As seen from block 166, the client-side intercept module 30 of the SDT updates the client's write cache corresponding to the communication created by the web browser by the current date and time and age differences received from the server-side intercept module 40. Thus, without synchronizing the clocks of the first computer J 1 and the second computer 6, the present invention revised the coherent write cache time of the first computer to reflect the newer data from the second computer. After updating the SDT of the client write cache corresponding to the communication created by the web browser, the client-side intercept module 30 sends the client cache write to the web browser 10 as well as an * - ----- HTTP data stream. This activity is illustrated by block 174.

Jestliže však zachycovací modul na straně klienta^Ojjrčí, že typem odpovědi jsou data nebo datový tok, uplatní se větev stream bloku 165 a provedou se operace blokuj 67. Zachycovací modul na straně klienta 30 přijme datový tok HTTP a dočasně tato data uloží. Potom, jak je znázorněno v bloku 170 na obrázku 4, zachycovací modul na straně klienta^30jjrčí, zda existuje cache zápis odpovídající komunikaci vytvořené web browserem. Jestliže tento cache zápis existuje, uplatní se cesta “Yes bloku 170 a jak jeHowever, if the client-side intercept module indicates that the response type is a data or bitrate, the stream branch of block 165 is applied and the block operation 67 is performed. The client-side intercept module 30 receives the HTTP data stream and temporarily stores the data. Then, as shown in block 170 in Figure 4, the client-side intercept module 30 determines whether there is a cache entry corresponding to the communication created by the web browser. If this write cache exists, the "Yes" path of block 170 is used and how it is

RA995 086RA995 086

-18naznačeno v blokuj71 regeneruje se stávající cache zápis. Zachycovací modul na straně klienta potom aktualizuje cache zápis odpovídající komunikaci vytvořené web browserem, a to uložením CRC datového toku HTTP přijatého od zachycovacího modulu na straně serveru 45γ uložením jako SDT rozdílu mezi aktuálním datem, časem a stářím přijatými od zachycovacího modulu na straně serveru 40 a uložením datového toku HTTP. Tato operace je znázorněna blokem 172.-18 indicated in block71 regenerates the existing cache entry. The client-side intercept module then updates the cache entry corresponding to the communication created by the web browser by storing the CRC of the HTTP data stream received from the server side intercept module 45γ by storing as SDT the difference between the current date, time and age received from the server-side intercept module. saving an HTTP stream. This operation is illustrated by block 172.

Jestliže neexistuje cache zápis odpovídající komunikaci vytvořené web browserem, uplatní se cesta No bloku 170. Je vytvořen klientův cache zápis, a lo provedením operací znázorněných blokem 173. Jak je zřejmé z bloku 1J3, vytvoří zachycovací modul na straně klienta 30 klientův cache zápis uložením URL datového toku HTTP přijatého od zachycovacího modulu na straně serveru 40, uložením CRC datového toku HTTP přijatého od zachycovacího modulu na straně serveru uložením datového toku HTTP. Zachycovací modul na straně klienta 30jovněž aktualizuje SDT nebo uloží SDT odečtením stáří od aktuálního data a času, které bylo přijato přes externí komunikační spoj 35 od zachycovacího modulu na straně serveru 40.If there is no cache entry corresponding to the communication created by the web browser, the No path of block 170 is applied. The client cache entry is created, and by performing the operations shown by block 173. As can be seen from block 17, the HTTP data stream received from the server-side intercept module 40, by storing the CRC of the HTTP data stream received from the server-side intercept module by storing the HTTP data stream. The client-side intercept module 30 also updates the SDT or stores the SDT by subtracting the age from the current date and time received via the external communication link 35 from the server-side intercept module 40.

Avšak klientův cache zápis se vytváří při každém průchodu operacemi bloků 166,172 neboj73. V tom případě zachycovací modul na straně klienta předá nebo poskytne klientův cache zápis web browseru 10 jako datový tok HTTP. Tyto operace jsou znázorněny v bloku 174 na obrázku 4.However, the client write cache is created every time it passes through block operations 166,172 or j73. In this case, the client-side intercept module passes or provides the client's cache entry to the web browser 10 as an HTTP data stream. These operations are illustrated in block 174 of Figure 4.

Z pohledu hodnocení tohoto vynálezu je nutné podotknout, že klientova a serverová cache paměť mohou být implementovány s jinou pamětí nebo s hromadnou pamětí, například s pevnými disky, CD-ROM, optickými disky nebo jinými technologiemi ukládání. Dále je nutné v souvislosti s tímto vynálezem zmínit, že zachycovací modul na straně klienta a zachycovací modul na straně serveru mohou být implementovány prostřednictvím softwaru, hardwaru nebo jejích kombinací.In view of the evaluation of the present invention, it should be noted that client and server cache memory can be implemented with other memory or mass storage, for example, hard disks, CD-ROMs, optical disks, or other storage technologies. Further, in the context of the present invention, it should be noted that the client-side intercept module and the server-side intercept module can be implemented through software, hardware or combinations thereof.

Zatímco reference o vytvoření cache pamětí jsou rezidentní na konkrétním prvním nebo druhém počítači, je nutné z pohledu posuzování tohoto vynálezu uvést, že přednosti z něj vyplývající mohou být získány i v případě, že cache paměti nebudou rezidentní na prvnímWhile references to cache creation are resident on a particular first or second computer, it should be noted from the perspective of the present invention that the advantages resulting therefrom can be obtained even if the cache is not resident on the first

RA 995 086RA 995 086

-19počítači, ale jsou pouze na stejné straně externího komunikačního spoje jako počítač. Hardwarová cache paměť muže být implementována externě na první počítač, kde slouží jako klientova cache paměť, a může být připojena k prvnímu počítači vysokorychlostní komunikací a i přesto, pokud je cache na stejné straně komunikačního spoje jako první počítač, bude dosaženo výhod stávajícího vynálezu.-19computers, but they are only on the same side of the external communication link as the computer. The hardware cache memory can be implemented externally on the first computer, where it serves as the client's cache memory, and can be connected to the first computer by high speed communication, and even if the cache is on the same side of the communication link as the first computer, the advantages of the present invention will be achieved.

V alternativním začlenění stávajícího vynálezu zachycovací modul na straně serveru 40 neuchovává kopii datového toku HTTP přijatého od web serveru 20, ale pouze zápis adresáře pro komunikaci. Zápis adresáře pak obsahuje URL komunikace, CRC vypočtený pro datový tok HTTP a čas, kdy byl datový tok HTTP přijat od web serveru, a SDT pro komunikaci, který může být nastaven na čas, kdy byl CRC vypočten. V takovém případě, když zachycovací modul na straně klienta 30 odešle požadavek zachycovacímu modulu na straně serveru 40 na komunikaci odpovídající URL, pro kterou udržuje zachycovací modul na straně serveru CRC a SDT, tak zachycovací modul na straně serveru zkontroluje CRC přijatý od zachycovacího modulu na straně klienta 30, aby určil, zda odpovídá CRC nejnovějšímu datového toku HTTP pro specifikovaný URL. Pokud odpovídá, potom je odeslána koherentní odpověd na zachycovací modul na straně klienta. Neodpovídá-li, odešle zachycovací modu! na straně serveru datový tok HTTP přijatý od zachycovacího modulu na straně klienta na web server 20 a vrátí na zachycovací modul na straně klienta 30 odpověď přijatou od web serveru 20.In an alternative embodiment of the present invention, the server-side intercept module 40 does not retain a copy of the HTTP data stream received from the web server 20, but only writes the communication directory. The directory entry then contains the communication URL, the CRC calculated for the HTTP data stream and the time the HTTP data stream was received from the web server, and the SDT for the communication, which can be set to the time the CRC was calculated. In such a case, when the client-side intercept module 30 sends a request to the server-side intercept module for communication corresponding to the URL for which the CRC and SDT server-side intercept module maintains, the server-side intercept module checks the CRC received from the server-side intercept module. client 30 to determine if the CRC corresponds to the latest HTTP data stream for the specified URL. If it responds, then a coherent response is sent to the client-side intercept module. If it does not, it sends a capture mode! on the server side, the HTTP data stream received from the client-side intercept module to the web server 20 and returns to the client-side intercept module 30 the response received from the web server 20.

Obrázky 7, 8, 9 a 10 znázorňují operace prováděné zachycovacím modulem na straně klienta 30 a zachycovacím modulem na straně serveru 40_v jiném aspektu stávajícího vynálezu, který využívá stanovení rozdílu (diferencování) k tomu, aby snížil množství dat přenášených přes externí komunikační spojj?5. Jak je zřejmé z obrázku 7, blok 200 znázorňuje potvrzení zachycovacího modulu na straně klienta 30 na požadavek HTTP od web browseru 10. Jak je uvedeno v bloku^205, zachycovací modul na straně klienta 30 prozkoumá zachycený požadavek HTTP od web browseru 10, aby určil, zda je tento požadavek Common Gateway Interface (CGI). V případě, že tento požadavek je Common Gateway Interface, postoupí ho zachycovací modul na straně klienta 30 zachycovacímu modulu na straně serveru, jak je znázorněno na obrázcích 3 až 6 a je ilustrováno blokem 206 na obrázku 7.Figures 7, 8, 9 and 10 illustrate operations performed by client-side intercept module 30 and server-side intercept module 40 in another aspect of the present invention that utilizes differential determination to reduce the amount of data transmitted over an external communication link. . As shown in Figure 7, block 200 illustrates client-side intercept module 30 HTTP request from web browser 10. As shown in block 205, client-side intercept module 30 examines the intercepted HTTP request from web browser 10 to determine whether this requirement is a Common Gateway Interface (CGI). In case this request is a Common Gateway Interface, the client-side intercept module 30 passes it to the server-side intercept module as shown in Figures 3 to 6 and is illustrated by block 206 in Figure 7.

RA 995 086RA 995 086

-20Pokud však komunikace vytvořená web browserem odpovídá požadavku CGI, uplatní se větev Yes bloku 205LA jak je reflektováno v bloku 210, zachycovací modul klíent/server 30 stanoví, zda existuje klientův bázový cache zápis odpovídající datovému toku HTTP, který byl předtím poskytnut na web browser v odpovědi na jemu odpovídající požadavek CGI. Toto zachycení požadavku CGI může být prováděno porovnáním URL komunikace vytvořené web browserem s URL uloženými v klientově bázové cache paměti.However, if the communication created by the web browser conforms to the CGI request, the Yes branch of block 205LA is applied as reflected in block 210, the key / server intercept module 30 determines whether there is a client base cache entry corresponding to the HTTP data stream previously provided to the web browser. in response to a corresponding CGI request. This interception of the CGI request can be performed by comparing the URL of the communication created by the web browser to the URL stored in the client base cache.

Klientova bázová cache může být inicializována uložením prvního datového toku HTTP přijatého zachycovacím modulem na straně klienta 30, který by měl být poskytnut na web browser 10 pro daný URL. Tento bázový cache zápis může být udržován pomocí množství entit nebo relací web browseru 10. Klientovy bázové cache zápisy mohou být aktualizované způsobem znázorněným na obrázcích 7, 8, 9 a 10. Jestliže existuje klientův bázový cache zápis odpovídající URL pro komunikaci vytvořenou web browserem, potom CRC,. který má být odeslán na zachycovací modul na straně serveruThe client base cache can be initialized by storing the first HTTP data stream received by the client-side intercept module 30, which should be provided to the web browser 10 for a given URL. This base cache entry may be maintained by a number of entities or web browser sessions 10. The client base cache entries may be updated as shown in Figures 7, 8, 9 and 10. If there is a client base cache entry corresponding to the URL for communication created by the web browser, then CRC ,. to be sent to the server-side intercept module

přes externí komunikační spojJ35, je nastaven stejně jako CRC pro klientův bázový cache zápis, jak je znázorněno v bloku 211 na obrázku 7. Jestliže takový klientův bázový cache zápis existuje, potom se uplatní větev No bloku 210 na obrázku 7 a CRC pro požadavek, který má být odeslán přes externí komunikační spoj 35 na zachycovací modul na straně serveru 40, je nulován. Tato operace je znázorněna v bloku 212 na obrázku 7.via an external communication link 35, it is set in the same way as the CRC for the client base cache entry, as shown in block 211 in Figure 7. If such a client base cache entry exists, then the No branch of block 210 in Figure 7 and CRC is applied for to be sent via the external communication link 35 to the server-side intercept module 40, is reset. This operation is shown in block 212 of Figure 7.

Blok 213 ilustruje operace odesílání požadavku CGI na zachycovací modul na straně serveru 40 přes externí komunikační spoj. Jak je v bloku 213 znázorněno, zachycovací modul na straně klienta 30 odešle požadavek HTTP a požadavek CRC, který má být buď >-=—-----nastaven na nulu (pokud neexistuje klientův bázový cache zápis pro URL požadavku CGI), nebo má být nastaven na CRC klientova bázového cache zápisu (pokud takový zápis existuje). Zachycovací modul na straně klienta tedy konvertoval požadavek CGI na specifický protokol klient/server přenášený specifickou komunikací klient/server přes externí komunikační spoj, který má být přijat zachycovacím modulem na straně serveru 40.Block 213 illustrates operations for sending a CGI request to a server-side intercept module 40 over an external communications link. As shown in block 213, the client-side intercept module 30 sends an HTTP request and a CRC request to be either> - = —----- set to zero (if there is no client base cache entry for the CGI request URL), or should be set to the CRC of the client's base write cache (if any). Thus, the client-side intercept module has converted the CGI request to a specific client / server protocol transmitted by the specific client / server communication over an external communication link to be received by the server-side intercept module 40.

RA 995 086RA 995 086

-21 Činnosti prováděné zachycovacím modulem na straně serveru v době, kdy je přijat požadavek CGI, jsou znázorněny na obrázku 9. Potvrzení požadavku CGI zachycovacím modulem na straně serveru 40 je znázorněno v bloku 220, Když zachycovací modul na straně serveru 40 přijme požadavek CGI, uloží kopii hodnoty CRC a požadavek HTTP. Jak je zřejmé z bloku 221, zachycovací modul na straně serveru 40 předá požadavek HTTP na web server 20.The operations performed by the server-side intercept module while the CGI request is received are shown in Figure 9. Server-side intercept module CGI request acknowledgment is shown in block 220, When the server-side intercept module receives the CGI request, saves a copy of the CRC and the HTTP request. As is clear from block 221, the server-side intercept module forwards the HTTP request to the web server 20.

Když zachycovací modul na straně serveru ^přijme odpověď na požadavek HTTP odpovídající komunikaci vytvořené web browserem nebo požadavek CGI, bude tatoWhen a server-side intercept module receives a response to an HTTP request corresponding to a communication created by a web browser or a CGI request, it will be

odpověď zachycovacím modulem na straně serveru 4Qj3řijata jako datový tok HTTP, jak je znázorněno v bloku 230 na obrázku 10. Jak je zřejmé z bloku 230. zachycovací modul na straně serveru 4O_uloží datový tok HTTP a vypočte hodnotu CRC pro datový tok HTTP přijatý od web serveru 20. Zachycovací modul na straně serveru.40 rovněž vynuluje rozdílovou (diferenční) hodnotu, a to na inicializační rozdílová data. Zachycovací modul na straně serveru potom stanoví, zda odpověď přijatá jako komunikace vytvořenáThe server side intercept module response 40 is received as an HTTP data stream as shown in block 230 of Figure 10. As can be seen from block 230. The server side intercept module 40 stores the HTTP data stream and calculates the CRC for the HTTP data stream received from the web server. 20. The server-side intercept module.40 also resets the differential value to the initialization difference data. The server-side intercept module then determines whether the response received as a communication is established

web serverem je odpověď na požadavek CGI, jak je znázorněno blokem 235. Jestliže je odpověď ne, uplatní se cesta No bloku 235 na obrázku 10 a provedou se operace bloku ^16. pro odeslání datového toku HTTP na zachycovací modul na straně klienta. Jak je zřejmé z bloku 236, může tato operace zahrnovat operace zachycení popsané obrázky 3 až 6, Jestliže odpověď přijatá blokem ^230 je odpověď na požadavek CGI, potom se uplatní cesta Yes bloku 235 a zachycovací modul na straně serveru dále stanoví, jestli existuje serverový bázový cache zápis pro odpověď CGI, jak je znázorněno v bloku 240.the web server is a response to a CGI request, as shown by block 235. If the answer is no, the No path of block 235 in Figure 10 is applied and block ^ 16 operations are performed. to send an HTTP stream to the client-side intercept module. As seen in block 236, this operation may include the capture operations described in Figures 3-6. If the response received by block 230 is a response to a CGI request, then the Yes path of block 235 is applied and the server-side intercept module further determines whether a server exists a base cache write for the CGI response, as shown in block 240.

Serverový bázový cache zápis může být vytvořen, když zachycovací modul na straně serveru poprvé přijme odpověď na požadavek CGI. V tomto případě bude výsledkem podmínky znázorněné blokem 240 provedení cesty No bloku 240. Zachycovací modul na straně serveru 40 potom vytvoří serverový bázový cache zápis odpovídající požadavku CGI, a to uložením URL pro CGI, datového toku HTTP odpovědi na požadavek CGI a CRC pro datový tok HTTP. Tato operace je znázorněna v bloku 241. Má-li být dosaženo kompatibilnosti s koherentním cache systémem popsaným obrázky 3 až 6, může serverový bázový cache zápis také obsahovat SDT. Podobně, jak je zde použito,The server base write cache can be created when the server-side intercept module first receives a response to a CGI request. In this case, the condition represented by block 240 will result in the execution of the No path of block 240. The server-side intercept module then creates a server base cache entry corresponding to the CGI request by storing the CGI URL, HTTP response flow of the CGI request, and CRC for the data stream. HTTP. This operation is illustrated in block 241. To be compatible with the coherent cache system described in Figures 3 to 6, the server base cache entry may also include an SDT. Similarly, as used herein,

RA995 086RA995 086

-22označuje termín forma serverové CGI báze serverový bázový cache zápis odpovídající požadavku CGI přijatému od web browseru 10,-22 denotes a form of server CGI base server base cache entry corresponding to a CGI request received from a web browser 10,

Jestliže existuje serverový bázový cache zápis odpovídající požadavku CGI, uplatní se cesta Yes bloku 240. Zachycovací modul na straně serveru porovná CRC serverového bázového cache zápisu s CRC odpovědi přijaté od web serveru 20, Tyto operace jsou znázorněny v bloku 245 na obrázku 10. V případě, že jsou CRC shodné, stanoví zachycovací modul na straně serveru, zda CRC pro serverový bázový cache zápis odpovídá CRC pro klientův bázový cache zápis. Jestliže jsou tyto dvě hodnoty CRC stejné, potom klientův bázový cache zápis, serverový bázový cache zápis a odezva přijatá z web serveru 20 budou obsahovat stejný datový tok HTTP. Porovnání serverového bázového cache zápisu s klientovým bázovým cache zápisem je znázorněno v bloku 250.If a server base cache entry corresponding to a CGI request exists, the Yes path of block 240 is applied. The server side intercept module compares the CRC of the server base cache entry with the CRC responses received from the web server 20, shown in block 245 of Figure 10. If the CRCs are identical, the server-side intercept module determines whether the CRC for the server base cache entry corresponds to the CRC for the client base cache entry. If the two CRC values are the same, then the client base cache write, the server base cache write, and the response received from the web server 20 will contain the same HTTP data stream. A comparison of the server base cache entry with the client base cache entry is shown in block 250.

Jestliže jsou tyto dva zápisy shodné, potom zachycovací modul na straně serveru nemusí odesílat bázový cache zápis na zachycovací modul na straně klienta_30 a tedy, jak je znázorněno v bloku 251, tok HTTP dat, která mají být přenesena na zachycovací modul na straně klienta 30, je vynulován. Zachycovací modul na straně serveru potom konvertuje datový tok HTTP přijatý od web serveru 20 na specifický komunikační protokol klient/server odesláním CRC datového toku HTTP uloženého v serverové bázové cache paměti odpovídajícího požadavku CGI, vynulovaný datový tok HTTP dat a vynulovaná rozdílová (diferenční) data s cílem indikovat, že odpověd na požadavek CGI byla identická klientovu bázovému cache zápisu, jak je znázorněno blokem 252.If the two writes are the same, then the server-side intercept module does not have to send a base cache write to the client-side intercept module 30 and thus, as shown in block 251, the HTTP data stream to be transmitted to the client-side intercept module 30, is reset. The server-side intercept module then converts the HTTP data stream received from the web server 20 to a specific client / server communication protocol by sending the CRC of the HTTP data stream stored in the server base cache corresponding to the CGI request, the zero HTTP data stream, and the differential data. to indicate that the response to the CGI request was identical to the client base write cache, as shown by block 252.

Zpět k bloku 245. Jestliže je CRC pro serverový bázový cache zápis odpovídající požadavku CGI odlišný od CRC pro odpověcf přijatou od web server v odpovědi na požadavek CGI vytvořený web browserem, potom se uplatní větev No bloku 245. Zachycovací modul na straně serveru 40 potom provede operace znázorněné blokem 246. Zachycovací modul na straně serveruJIO porovná zachycenou odpověd CGI se serverovým bázovým cache zápisem odpovídajícím zachycenému požadavku CGI nebo s bázovou formou CGI. Toto porovnání zachycené odpovědi CGI se serverovou bázovouBack to block 245. If the CRC for the server base cache entry corresponding to the CGI request is different from the CRC for the response received from the web server in response to the CGI request generated by the web browser, then the No branch of block 245 is applied. the operation shown by block 246. The server-side intercept module 10 compares the intercepted CGI response with the server base cache entry corresponding to the intercepted CGI request or with the CGI base form. This compares the captured CGI response with the server base

RA 995 086RA 995 086

-23formou CGI poskytne rozdílová (diferenční) data CGI, která odpovídají rozdílu mezi zachycenou odpovědí CGI a serverovou bázovou formou CGI.The CGI form provides differential CGI data that corresponds to the difference between the captured CGI response and the CGI server base form.

Stanovení rozdílu (diferencování) může být, z pohledu hodnocení stávajícího vynálezu, provedeno libovolnou známou metodou pro stanovení rozdílu mezi bázovou formou a upravenou (modifikovanou) formou. Jedna metoda vhodná pro použití ve stávajícím vynálezu je popsána v Cross-Platform Binary Diff publikované v Dr. Dobb's Journal, květen 1995, str. 32-36. Její popis je zde zapracován, a rovněž je zde uvedena reference pro plnou citaci. Dalšími metodami, které mohou být použity pro stanovení rozdílových dat, jsou metody popsané v IBM Technical Disclosure Bulletin, sv. 22, č. 8A, leden 1980, které jsou zde rovněž zapracovány a pro plnou citaci uvedeny referenční odkazy. Zachycovací modul na straně serveru JOpotom stanoví, zda serverová bázová forma CGI vyžaduje aktualizaci, jak je znázorněno v bloku 247. Toto stanovení může být provedeno určením, zda průměrná rozdílová data mezi zachycenou odpovědí CGI a serverovou bázovou formou CGI překračují stanovený práh. Další metody pro stanovení, zda serverový bázový cache zápis odpovídající požadavku CGI by měl být aktualizován, mohou zahrnovat časovou koherenci, tak jak je popsáno obrázky 3 až 6t nebo to mohou být i jiné známé metody vhodné ke stanovení, zda se rozdílová data změnila natolik, že je zapotřebí vytvořit nový bázový cache zápis ke zlepšení systémové výkonnosti.The determination of the difference (differentiation) may, in view of the evaluation of the present invention, be carried out by any known method for determining the difference between the base form and the modified form. One method suitable for use in the present invention is described in the Cross-Platform Binary Diff published in Dr. Dobb's Journal, May 1995, pp. 32-36. Its description is incorporated here, as well as a reference for full citation. Other methods that can be used to determine the difference data are those described in the IBM Technical Disclosure Bulletin, Vol. 22, No. 8A, January 1980, which are also incorporated herein by reference. The server-side intercept module determines whether the CGI server base form requires updating as shown in block 247. This determination can be made by determining whether the average difference data between the intercepted CGI response and the CGI server base form exceeds a predetermined threshold. Other methods for determining whether a server base cache entry corresponding to a CGI request should be updated may include time coherence as described in Figures 3-6 t or may be other known methods suitable for determining whether the difference data has changed to such an extent the need to create a new base cache entry to improve system performance.

Jestliže vytvoření nového bázového cačhe zápisu není zapotřebí, uplatní se větev No bloku 247 a zachycovací modul na straně serveru 40 provede operace popsané blokem 250 ke stanovení, zda CRC klientova bázového cache zápisu je shodný se serverovým bázovým cache zápisem nebo zda je serverová bázová forma CGI identická s klientovou bázovou formou CGI, což jsou v podstatě bázové cache zápisy serveru a klienta, jež odpovídaly konkrétnímu požadavku CGI komunikace vytvořené web browserem. Jestliže jsou tyto bázové formy shodné, není nutné obnovovat klienta a informace o datovém toku HTTP mohou být vynulovány, jak je znázorněno v bloku 251. Zachycovací modul na straně serveru 40 potom odešle rozdílovou odpověď na zachycovací modul na straně klienta 30, a to odesláním CRC serverového bázového cache zápisu odpovídajícího íIf the creation of a new base caching write is not necessary, branch No of block 247 is applied and the server-side intercept module 40 performs the operations described by block 250 to determine whether the CRC of the client base cache is identical to the server base cache identical to the CGI client base form, which are basically server and client base cache entries that correspond to a particular CGI communication request created by a web browser. If these base forms are the same, there is no need to refresh the client and the HTTP data stream information can be reset as shown in block 251. The server-side intercept module then sends a differential response to the client-side intercept module 30 by sending a CRC the server base cache entry corresponding to

požadavku CGI ((/. CRC serverové bázové formy CGI), odesláním vynulovaného datového toku HTTP, který by korespondoval s bázovými daty, a odesláním rozdílovýchCGI request ((/. CRC server base form CGI)), sending a zero HTTP data stream that would correspond to the base data, and sending differential

RA 995 086RA 995 086

-24(diferenčnlch) dat stanovených v bloku 246. Tyto operace jsou opět reflektovány jako blok 252 na obrázku 10.These operations are again reflected as block 252 in Figure 10.

Jestliže zachycovací modul na straně serveru 40 stanoví, že porovnávané CRC nejsou shodné (pro klientovou bázovou formu CGI a serverovou bázovou formu CGI), potom je nutné obnovit klienta. Operace obnovení klienta zahrnuje odeslání serverové bázové formy CGI na zachycovací modul na straně klienta^. Při provedení této operace zachycovací modul na straně serveru nastaví data datového toku HTTP pro odeslání naIf the server-side intercept module determines that the CRCs being compared are not the same (for the client CGI base form and the server CGI base form), then the client must be renewed. The client restore operation involves sending the server-based CGI base form to the client-side intercept module ^. When this operation is performed, the server-side intercept module sets the HTTP stream data to be sent to

zachycovací modul na straně klienta 30 shodne se serverovou bázovou formou CGI. Tato operace je znázorněna v bloku 253. Zachycovací modul na straně serveru 40 potom konvertuje datový tok HTTP přijatý od web serveru na specifický protokol klient/server odesláním CRC serverové bázové formy CGI, dat datového toku HTTP odpovídajícímu serverové bázové formě CGI a odesláním rozdílových (diferenčních) dat bázové formy CGI a odezvy přijaté od web serveru, jak je zřejmé z bloku 252. Tato informace je pak předána přes externí komunikační spoj 35 na zachycovací modul na straně klienta 30.the client-side intercept module 30 coincides with the CGI server base form. This operation is shown in block 253. The server-side intercept module then converts the HTTP data stream received from the web server to a specific client / server protocol by sending a CRC server base form of CGI, an HTTP data stream corresponding to the server base form of CGI, and sending a differential The CGI base form data and response received from the web server, as seen from block 252. This information is then passed over an external communication link 35 to the client-side intercept module 30.

Zpět k bloku 247. Jestliže je zapotřebí obnova, uplatní se cesta Yes bloku 247. Jak je znázorněno blokem 248, zachycovací modul na serverové straně aktualizuje serverový bázový cache zápis odpovídající komunikaci vytvořené browserem o datový tok HTTP přijatý od web serveru. Aktualizován je rovněž CRC odpovědi a rozdílová (diferenční) data CGI jsou vynulována. Zachycovací modul na straně serveru pak porovná CRC nového cache zápisu serverové strany, jak je znázorněno v bloku 250, a dokončí přenos výše popsaným způsobem.Back to block 247. If recovery is required, the Yes path of block 247 is applied. As shown by block 248, the server side intercept module updates the server base cache entry corresponding to the browser-generated communication with the HTTP data stream received from the web server. The CRC response is also updated and the CGI difference data is reset. The server side intercept module then compares the CRC of the new server side write cache as shown in block 250 and completes the transmission as described above.

Operace zachycovacího modulu na straně klienta po přijetí odpovědi od zachycovacího modulu na straně serveru 40 jsou znázorněny na obrázku 8, Přijetí odpovědi od zachycovacího modulu na straně serveru 40 zachycovacím modulem na straně klienta 30je znázorněno v bloku 260, Jak je zřejmé z bloku 265, zachycovací modul na straně klienta^30 stanoví, zda odpověď je odpovědí na požadavek CGI. Pokud to není odpověď na požadavek CGI, potom zachycovací modul na straně klienta provede operace popsané blokem^ 26 Z, které mohou zahrnovat operace cache znázorněné obrázky 3 až 6. Jestliže však odpověď je odpovědí na požadavek CGI, uplatní se větev Yes blokuThe client-side intercept module operation after receiving the server-side intercept module response 40 is shown in Figure 8. Receiving a server-side intercept module response 40 by the client-side intercept module 30 is shown in block 260. As shown in block 265, intercept the client-side module ^ 30 determines whether the response is a response to a CGI request. If this is not a response to a CGI request, then the client-side intercept module performs the operations described by ^ 26Z, which may include the cache operations shown in Figures 3-6. However, if the response is a response to a CGI request, the Yes branch of the block

RA995 086RA995 086

-25265. Zachycovací modul na straně klienta ^PjjIoží data datového toku HTTP, rozdílová data a CRC vyžádaný od specifického datového toku klient/server přenášeného přes externí komunikační spoj. Tyto operace jsou reflektovány v bloku 266 na obrázku 8.-25265. The client-side intercept module P1 is the HTTP data stream, the difference data, and the CRC requested from a specific client / server data stream transmitted over an external communication link. These operations are reflected in block 266 of Figure 8.

Zachycovací modul na straně klienta 3_OjDotom stanoví, zda existuje klientův bázový cache zápis odpovídající zachycenému požadavku CGI, který by obsahoval klientovu bázovou formu CGI. Toto zkoumání je zaznamenáno v bloku 270 a může být prováděno prověřením URL požadavku HTTP nebo odpovědi HTTP. Jestliže klientova bázová formaThe client-side intercept module determines whether there is a client base cache entry corresponding to the intercepted CGI request that would contain the client's base CGI form. This examination is recorded in block 270 and can be performed by examining the URL of an HTTP request or an HTTP response. If the client's base form

CGI existuje, uplatní se větev Yes bloku 270, Zachycovací modul na straně klienta 30 potom porovná CRC přijatý přes externí komunikační spoj s CRC klientovy bázové formy CGI, jak je znázorněno v bloku 275. Pokud jsou odlišné, uplatní se cesta No” bloku 275 a provede se obnova klienta aktualizací bázové formy CGI, a to výměnou klientova bázového cache zápisu odpovídajícího URL požadavku CGI komunikace vytvořené web browserem za data datového toku HTTP přijatá přes externí komunikační spoj 35 od zachycovacího modulu na straně serveru 40. Klientův bázový cache zápis je rovněž aktualizován s ohledem na CRC pro datový tok HTTP. Tyto operace jsou reflektovány v bloku 276 na obrázku 8.The CGI exists, the Yes branch of block 270 is applied, the client-side intercept module 30 then compares the CRC received over an external communication link with the CRC of the client CGI base form as shown in block 275. If different, the No path of block 275 is used. the client is refreshed by updating the CGI base form by exchanging the client base cache entry corresponding to the CGI communication request URL created by the web browser for HTTP data stream received via the external communication link 35 from the server-side intercept module 40. The client base cache entry is also updated with respect to CRC for HTTP data stream. These operations are reflected in block 276 of Figure 8.

Jestliže CRC přijatý přes externí komunikační spoj 35Je stejný jako CRC bázové formy CGI, potom serverová bázová forma CGI na zachycovacím modulu na straně serveru je shodná s klientovou bázovou formou CGI na zachycovacím modulu na straně klienta, a uplatní se větev MYes bloku 275.If the CRC received over the external communication link 35 is the same as the CRC of the CGI base form, then the server CGI base form on the server side intercept module is identical to the client CGI base form on the client side intercept module, and the M Yes branch of block 275 applies.

Jsou-li bázové formy stejné nebo klient byl obnoven, budou provedeny operace uvedené v bloku 277, a to zachycovacím modulem na straně klienta 30. Blok 277 odráží, jak zachycovací modul na straně klienta 30 rekonstruuje datový tok HTTP odpovídající komunikaci od web serveru JžO ze specifického datového toku klient/server přijatého přes externí komunikační spoj 35, a to sloučením (zkombinováním) klientově bázové formy CGI s rozdílovými (diferenčními) daty CGI přijatými přes externí komunikační spoj 35 tak, aby se vytvořil datový tok HTTP odpovídající zachycené odpovědi CGI. Jak je zřejmé z bloku 278, bude tato odpověd poskytnuta web browseru 10 jako datový tok HTTP.If the base forms are the same or the client has been restored, the operations listed in block 277 will be performed by the client-side intercept module 30. Block 277 reflects how the client-side intercept module reconstructs the HTTP data stream corresponding to communication from the web server specific client / server data stream received over external communication link 35 by combining the client base form of CGI with differential (differential) CGI data received over external communication link 35 to form an HTTP data stream corresponding to the intercepted CGI response. As can be seen from block 278, this response will be provided to the web browser 10 as an HTTP data stream.

RA995 086RA995 086

Pokud u klienta neexistuje žádná bázová forma CGI odpovídající URL požadavku CGI, potom, se uplatní větev No1* bloku 270 na obrázku 8. Jak je zřejmé z bloku 271, zachycovací modul na straně klienta 30 vytvoří klientův bázový cache zápis odpovídající URL požadavku CGI, a to uložením URL, CRC datového toku HTTP přijatého přes externí komunikační spoj od zachycovacího modulu na straně serveru 40 a skutečných dat datového toku HTTP. Uložení těchto informací vytvoří klientův bázový cache zápis odpovídající zachycenému požadavku CGI, a tedy vytvoří klientovu bázovou formu CGI. Zachycovací modul na straně klienta může pak provést operace bloku 277, a to rekonstruováním datového toku HTTP pomocí sloučení (zkombinování) nebo vnoření klientovy bázové formy CGI a rozdílových (diferenčních) dat CGI, které mohly být vynulovány.If there is no CGI base form corresponding to the CGI request URL, then the No 1 * block of block 270 in Figure 8 is applied. As is clear from block 271, the client-side intercept module creates a client base cache entry corresponding to the CGI request URL. by storing the URL, the CRC of the HTTP data stream received over an external communication link from the server-side intercept module 40, and the actual HTTP data stream. Storing this information creates a client base cache entry corresponding to the intercepted CGI request, and thus creates a client base form of CGI. The client-side intercept module can then perform block 277 operations by reconstructing the HTTP data stream by merging or nesting the client's CGI base form and CGI difference data that may have been reset.

Stávající techniky vytváření rozdílu (diferencování) mohou být uplatněny rovněž u dat jiných než CGI. V takovém případě by zachycovací modul na straně serveru 40 potřeboval uchovávat násobné generace serverových bázových cache zápisů, které by mu umožnily, aby zachycovací moduly na straně klienta od připojených web browserů na web server mohly mít různé bázové formy. Zachycovací modul na straně serveru by potom mohl porovnávat CRC přijatý od zachycovacího modulu na straně klienta s CRC jednotlivých předchozích generací serverových bázových forem až do doby, kdy by byla nalezena (získána) shoda. Zachycovací modul na straně serveru 40 může potom volitelně obnovit zachycovací modul na straně klienta nebo prostě předat rozdílová (diferenční) data na zachycovací modul na straně klienta J30. Rozdílové (diferenční) metodiky zde popisované by se tedy pak uplatnily s ohledem na požadavek CGI stejným způsobem, jako u každého jiného požadavku HTTP a odpovědi.Existing differentiation techniques can also be applied to non-CGI data. In such a case, the server-side intercept module would need to store multiple generations of server base cache entries that would allow the client-side intercept modules from connected web browsers to the web server to take different base forms. The server-side intercept module could then compare the CRC received from the client-side intercept module with the CRCs of each previous generation of the server base forms until a match was found. The server-side intercept module 40 may then optionally recover the client-side intercept module or simply pass the difference (differential) data to the client-side intercept module J30. Thus, the difference (difference) methodologies described herein would then be applied with respect to the CGI request in the same way as any other HTTP request and response.

Zatímco výše uvedený systém udržování násobných generací bázových forem může dovolovat použití diferencování i u jiných požadavků než CGI, je tato metodika paměťově neboli kapacitně náročnější a nevyužívá plně výše popsaných zachycovacích schopností. V zájmu snížení nároků na paměť či kapacitu a využití výše popisovaných zachycovacích metod je upřednostněna možnost použití následující metody diferencování u jiných než CGI požadavků. U této preferované implementace vypočítává zachycovací modul na straně serveru rozdíl (diferenci) mezi serverovou bázovou formou odpovídající požadavku a datovým tokem HTTP odpovědi od web serveru. Tato rozdílová (diferenční) data jsouWhile the above system of maintaining multiple generations of base forms may allow differentiation to be applied to requirements other than CGI, this methodology is more memory or capacity intensive and does not take full advantage of the capture capabilities described above. In order to reduce memory or capacity requirements and to utilize the capture methods described above, it is preferred to use the following differentiation method for non-CGI requests. In this preferred implementation, the server-side intercept module calculates the difference (difference) between the server base form corresponding to the request and the HTTP data flow of the response from the web server. These difference data are

RA 995 086RA 995 086

-27pak uložena zachycovacím modulem na straně serveru. Serverová bázová forma je potom aktualizována výměnou bázové formy za novou odpověď od web serveru, a to včetně aktualizace CRC této bázové formy. Avšak spíše než zlikvidováním starého CRC, jsou jednotlivé CRC pro dřívější bázové formy uloženy jako rozdílová data. Předchozí generace rozdílových (diferenčních) dat a jednotlivých CRC jsou pak selektivně přenášeny na zachycovací modul na straně klienta, a to na základě CRC klientovy bázové formy odpovídající požadavku jinému než CGI.-27 then stored by the server-side intercept module. The server base form is then updated by exchanging the base form for a new response from the web server, including updating the CRC of that base form. However, rather than discarding the old CRC, individual CRCs for earlier base forms are stored as differential data. Previous generations of difference (differential) data and individual CRCs are then selectively transmitted to the client-side intercept module, based on the CRC client base form corresponding to a non-CGI request.

Příklad metody diferencování u jiných požadavků než CGI - jestliže zachycovací modul na straně serveru přijme jiný požadavek než CGI, byl by tento požadavek rovněž doprovázen CRC bázové formy rezidentní na zachycovacím modulu na straně klienta odpovídající URL non-CGI požadavku. Když by zachycovací modul na straně serveru přijal odpověď od web serveru, vypočítal by CRC odpovědi. Zachycovací modul na straně serveru by potom vypočetl rozdíl mezi odpovědí a serverovou bázovou formou pro URL a tato rozdílová data by uložil. Zachycovací modul na straně serveru by dále aktualizoval serverovou bázovou formu o data odpovědi a archivoval CRC dřívější bázové formy i rozdílová (diferenční) data mezí odpovědí a starou bázovou formou. Zachycovací modul na straně serveru by potom porovnal CRC klientovy bázové formy s CRC serverové bázové formy a se všemi uloženými nebo archivovanými CRC tak, aby určil, zda je nalezena shoda, pokud shoda není nalezena, bude odpověď jednoduše odeslána na zachycovací modul na straně klienta.An example of a differentiation method for non-CGI requests - if the server-side intercept module receives a request other than CGI, this request would also be accompanied by a CRC base form resident on the client-side intercept module corresponding to the URL of the non-CGI request. If the server-side intercept module received a response from the web server, it would calculate the CRC of the response. The server-side intercept module would then calculate the difference between the response and the server base form for the URL and store the difference data. The server-side intercept module would further update the server base form with response data and archive the CRC of the previous base form as well as the difference (difference) data between the response boundaries and the old base form. The server-side intercept module would then compare the CRC of the client base form with the CRC of the server base form and all stored or archived CRCs to determine if a match is found, if a match is not found, the response will simply be sent to the client-side intercept module.

Jestliže je nalezena shoda, jsou odeslána rozdílová data odpovídající shodnému CRC a všechna následná rozdílová (diferenční) data včetně aktuálních rozdílových dat na zachycovací modul na straně klienta. Zachycovací modul na straně klienta pak rozdílová data použije v klientově bázové formě k rekonstrukci odpovědi. Potom, vyskytne-li se např. shoda CRC s CRC pro bázovou formu, která byla tři generace stará, budou odeslány tři sady rozdílových dat na zachycovací modul na straně klienta a konstrukce odpovědi bude provedena uplatněním těchto tří následných rozdílových (diferenčních) datových sad v klientově bázové formě. Jestliže však jsou počet sad rozdílových dat nebo velikost sad rozdílových dat potřebných pro rekonstrukci odpovědi lak značné, že odeslání skutečné odpovědi by vyžadovalo přenášení méně dat, potom může být odeslána zachycovacím modulem na straně serveru vlastní odpověď. V každém případěIf a match is found, the difference data corresponding to the same CRC and all subsequent difference (difference) data including current difference data are sent to the client-side intercept module. The client-side intercept module then uses the difference data in the client base form to reconstruct the response. Then, if, for example, a CRC match with a CRC for a base form that was three generations old, three sets of difference data will be sent to the client-side intercept module and the response construction will be performed by applying these three consecutive difference (difference) data sets in client base form. However, if the number of difference data sets or the size of the difference data sets needed to reconstruct a response is significant that sending the actual response would require less data to be transmitted, then the server-side intercept module can send a custom response. In each case

RA 995 086RA 995 086

-28by po rekonstrukci nebo po přijetí odpovědi zachycovací modul na straně klienta aktualizoval klientovu bázovou formu pro URL požadavku o data odpovědi a také aktualizoval CRC o CRC pro odpověď Protože je klientova bázová forma aktualizována r při každém přijetí odpovědi pro konkrétní URL, může být využito výše popsané klientovy cache paměti jako cache pro klientovu bázovou formu, a tak dosaženo eliminace potřeby mít samostatnou cache paměť klientových bázových forem za situace, kdy je diferencování využíváno pro jiné požadavky než CGI.-28by after reconstructing or receiving the response intercept module client-side update the client base form for the URL request with the response data and update the CRC with the CRC for the response Because the client base form is updated each year in receiving a response to a specific URL can be used above described as the client base cache, thus eliminating the need to have a separate client base cache in a situation where differentiation is used for requests other than CGI.

Uplatněním dalšího aspektu stávajícího vynálezu může být další úspora komunikace, a to na základě omezení redundance nestavového komunikačního protokolu, jako např, HTTP, U tohoto protokolu klient odesílá informace o sobě na server pokaždé, když je iniciována komunikace. Podobně server poskytuje specifické informace o sobě vždy, když iniciuje svoji odpověď na klienta.Another aspect of the present invention may be to further reduce communication by reducing redundancy of a stateless communication protocol, such as HTTP. In this protocol, the client sends information about itself to the server each time communication is initiated. Similarly, a server provides specific information about itself whenever it initiates its response to a client.

V jednom z alternativních začlenění stávajícího vynálezu první počítač 5 komunikuje s druhým počítačem 6, kde mu předává počítačově specifické informace související s předem definovanými charakteristikami prvního počítače. Druhý počítač tuto počítačově specifickou informaci uloží. První počítač potom odstraní počítačově specifickou informaci z následných komunikací vytvářených web browserem před odesláním přes externí komunikační spoj 35, Druhý počítač 6 potom rekonstruuje originální komunikaci vytvořenou web browserem, a to sloučením (zkombinováním) uložené počítačově specifické informace a následné komunikace přijaté přes externí komunikační spoj 35 tak, aby vytvořila datový tok HTTP.In one alternative embodiment of the present invention, the first computer 5 communicates with the second computer 6 where it transmits computer-specific information related to predefined characteristics of the first computer. The other computer stores this computer-specific information. The first computer then removes the computer-specific information from subsequent communications created by the web browser prior to sending via the external communications link 35. The second computer 6 then reconstructs the original communications created by the web browser by combining the stored computer-specific information and subsequent communications received via the external communications link 35 to create an HTTP data stream.

Kromě odstranění počítačově specifických informací z komunikací vytvářených web browserem je možné tyto počítačově specifické informace odstranit i z komunikací vytvářených web serverem. V tomto případě druhý počítač 6, viz obrázek 2, poskytne prvnímu počítači 5 přes externí komunikační spoj_35 počítačově specifické informace v souladu s předem definovanými charakteristikami druhého počítače 6. První počítač 5 uloží tyto počítačově specifické informace tak, aby dokázal vytvořit serverové záhlaví. U následné komunikace potom druhý počítač 6 odstraní počítačově specifické informace komunikace vytvořené web serverem a odešle zbývající část komunikace vytvořená web serverem na externí komunikační spoj 35. První počítač tuto komunikaci 5 přijme přesIn addition to removing computer-specific information from communications created by the web browser, it is also possible to remove such computer-specific information from communications created by the web server. In this case, the second computer 6, see Figure 2, provides the first computer 5 via external communication link 35 with computer-specific information in accordance with predefined characteristics of the second computer 6. The first computer 5 stores this computer-specific information so as to be able to create a server header. In the subsequent communication, the second computer 6 then removes the computer-specific communication information created by the web server and sends the remainder of the communication created by the web server to an external communication link 35. The first computer receives this communication 5 via

RA995 086RA995 086

-29externí komunikační spoj a rekonstruuje původní komunikaci vytvořenou web serverem, a to sloučením (zkombinováním) informace serverového záhlaví a specifického datového toku klient/server přijatého přes externí komunikační spoj tak, aby vytvořil datový tok HTTP. V obou případech jsou operace odstranění počítačově specifických informací a uložení těchto informací pro vytvoření buď informace serverového záhlaví, nebo informace klientova záhlaví prováděny zachycovacím modulem na straně klienta 30 či zachycovacím modulem na straně servertMO^v závislosti na tom, zda se operace provádějí na prvním počítači 5 nebo na druhém počítači 6.The external communication link reconstructs the original communication created by the web server by merging (combining) the server header information and the specific client / server data stream received over the external communication link to create an HTTP data stream. In both cases, operations for deleting computer-specific information and storing this information to create either server header information or client header information are performed by the client-side intercept module 30 or the servertMO intercept module, depending on whether operations are performed on the first computer. 5 or on a second computer 6.

V jednom začlenění stávajícího vynálezu komunikuje web browser 10 se zachycovacím modulem na straně klienta 30 s využitím protokolu nazvaného Transmission Control Protocol/lnternet Protocol (TCP/IP). TCP může být rovněž použit pro komunikaci mezi zachycovacím modulem na straně klienta_30 a zachycovacím modulem na straně serveru 40 přes externí komunikační spoj 35. Konečně, TCP může být použit pro komunikaci mezi zachycovacím modulem na straně serveru 40_a web serverem 20, Zatímco TCP může být použit pro komunikace mezi různými komponenty, které vytvářejí systém stávajícího vynálezu, protokol HTTP neposkytuje nejefektivnější prostředky pro komunikaci přes externí komunikační spoj. Ke zvýšení výkonnosti externího komunikačního spoje 35 vytváří jedno ze začlenění stávajícího vynálezu to, co se zde označuje pod pojmem virtuální sokety, které se využívají při spojení mezi web browserem a zachycovacím modulem na straně klienta 30 a mezi zachycovacím modulem na straně serveru 40 a web serverem 20. Činnost těchto virtuálních soketů bude nyní popsána s odvoláním na obrázky 11 až 17.In one embodiment of the present invention, the web browser 10 communicates with a client-side intercept module 30 using a protocol called Transmission Control Protocol / Internet Protocol (TCP / IP). TCP can also be used to communicate between the client-side intercept module 30 and the server-side intercept module 40 via an external communication link 35. Finally, TCP can be used for communication between the server-side intercept module 40 and the web server 20, while TCP can be used. For communications between the various components that make up the system of the present invention, the HTTP protocol does not provide the most efficient means of communication over an external communications link. To enhance the performance of the external communication link 35, one embodiment of the present invention creates what is referred to herein as virtual sockets used in the connection between the web browser and the client-side intercept module 30 and between the server-side intercept module 40 and the web server. 20. The operation of these virtual sockets will now be described with reference to Figures 11 to 17.

Obrázek 11 je blokové schéma jedné z možných implementací stávajícího vynálezu využívající koncepci virtuálních soketů. Jak je zřejmé z obrázku 11, první počítač 5 a druhý počítač 6Jsou vzájemně propojeny přes externí komunikační spoj 35. Web browser 10 má pluralitu reálných soketů, které propojují web browser 10 se zachycovacím modulem na straně klienta 30. Na obrázku 11 je první reálný soket znázorněn na web browseru 10 jako 65a a jemu odpovídající soket na zachycovacím modulu na straně klienta 30 jako 65 b. Tento první reálný soket je soket TCP, přes který web browser 10 vyžaduje další spojení od zachycovacího modulu na straně klienta'30.Figure 11 is a block diagram of one possible implementation of the present invention using the concept of virtual sockets. As shown in Figure 11, the first computer 5 and the second computer 6 are interconnected via an external communication link 35. The web browser 10 has a plurality of real sockets that connect the web browser 10 to the client-side intercept module 30. In Figure 11, the first real socket shown on the web browser 10 as 65a and its corresponding socket on the client-side intercept module 30 as 65 b. This first real socket is a TCP socket over which the web browser 10 requires an additional connection from the client-side intercept module '30.

RA995 086RA995 086

Když web browserJJ) vyžaduje nové spojení TCP, objeví se komunikace přes reálný soket 65a, která je přijata na reálný soket 65b. Zachycovací modul na straně klienta 30 vytvoří potom další reálný soket pro komunikaci s web browserem 10. Jak je zřejmé z obrázku 11, pluralita reálných soketů je vytvářena na web browseru 10 společně s odpovídajícím reálným soketem vytvářeným na zachycovacím modulu na straně klienta 30. Tyto reálné sokety 60a až 64a jsou znázorněny na web browseru 10 a 60b až 64b na zachycovacím modulu na straně klientaJŽO, Tyto reálné sokety tvoří prostředky, přes které web browser 10_komunikuie se zachycovacím modulem na straně klienta 30. Po vytvoření reálných soketůJSOa až 64a a 60b až 64b jsou komunikace přes tyto sokety multiplexovány na reálný soket 36a, který poskytuje přístup zachycovacímu modulu na straně klienta 30 na externí komunikační spoj 35. Reálné sokety 36a a 36b jsou vytvořeny v době, kdy je odeslán požadavek přes reálný soket 37a počítače 5 na reálný soket 37b počítače 6. Po potvrzení požadavku o spojení reálným soketem 37b se vytvoří reálné sokety 36a a 36b. Sokety 37a a 37b pracují jako první reálné sokety pro potřeby komunikace mezi zachycovacím modulem na straně klienta a zachycovacím modulem na straně serveru a mohou být používány pouze pro ustanovení spojení mezi dvěma moduly znázorněnými sokety 36a a 36b. Každý z těchto reálných soketů pracuje pod standardními protokoly TCP/IP. Když jsou druhým počítačern_6£řijímány komunikace přes externí komunikační spoj 35, jsou přijmuty na reálný soket 36b. Zachycovací modul na straně serveru 40 potom demultiplexuje tyto komunikace na soketů 36b a poskytne je příslušnému soketů za účelem přenosu na web server 20. Tak může být například uskutečněna komunikace přes soket 60a na 60b za účelem požadavku informace od specifického URL, která by byla multiplexována na soketů 36a2 přijata soketem 36b, demultiplexována zachycovacím modulem na straně serveru a40 a přenesena ze soketů 60c na soket.60d na web serveru,20. Podobně jsou i komunikace vyskytující se přes soket eiajsřijaty soketem 61b, multiplexovány zachycovacím modulem na straně klienta 30^a odeslány ze soketů 36a na soket ,36b, kde zachycovací modul na straně serveru .40,tyto komunikace demultiplexuje a odešle přes soket 61c na soket 61 d. Takže komunikace přes soket 60a a 60b, 61a a 61b, 62a a 62b, 63a a 63b a 64a a 64b jsou přenášeny přes příslušné odpovídající sokety mezi zachycovacím modulem na straněWhen the web browser 10 requires a new TCP connection, communication occurs over real socket 65a, which is received on real socket 65b. The client-side intercept module 30 then creates another real socket for communication with the web browser 10. As shown in Figure 11, a plurality of real sockets is created on the web browser 10 along with the corresponding real socket created on the client-side intercept module 30. These real sockets 60a to 64a are shown in web browser 10 and 60b to 64b on the client-side intercept module. These real sockets constitute the means through which the web browser 10 communicates with the client-side intercept module 30. After real sockets 60a to 64a and 60b to 64b have been created. the communications through these sockets are multiplexed to the real socket 36a, which provides client-side intercept module 30 access to the external communication link 35. Real sockets 36a and 36b are created at the time a real socket 37a of the computer 5 is sent to the real socket 37b computers 6. After confirming the request os bonding with real socket 37b creates real sockets 36a and 36b. Sockets 37a and 37b operate as the first real sockets for communication between the client-side intercept module and the server-side intercept module and can only be used to establish a connection between the two modules shown by sockets 36a and 36b. Each of these real sockets operates under standard TCP / IP protocols. When communications via the external communication link 35 are received by the second computer 66, they are received on the real socket 36b. The server-side intercept module then demultiplexes these communications to sockets 36b and provides them to the appropriate sockets for transmission to the web server 20. For example, communication over socket 60a to 60b may be performed to request information from a specific URL that would be multiplexed to 2 sockets 36a taken socket 36b, demultiplexed side intercept module and server 40 and transmitted from socket 60c to soket.60d on a web server, 20th Similarly, communications occurring through socket are received by socket 61b, multiplexed by client-side intercept module 30 ^ and sent from sockets 36a to socket 36b, where server-side intercept module 40, demultiplexes and sends over socket 61c to socket 61 Thus, communications through socket 60a and 60b, 61a and 61b, 62a and 62b, 63a and 63b, and 64a and 64b are transmitted via respective corresponding sockets between the intercept module on the side

RA995 086RA995 086

-31 serveru ^40 a web serverem 204 tj. soket 60c a soket 60d, soket 61c a 61 d, soket 62c a soket 62d, soket 63c a soket 63d a soket 64c a 64d.-31 server 40 and web server 20 4 i.e. socket 60c and socket 60d, socket 61c and 61d, socket 62c and socket 62d, socket 63c and socket 63d, and socket 64c and 64d.

Podobně pak odpovědi na otázky od web browseru 10 produkované web serverem 20 jsou rovněž přenášeny přes soketové spojení web serveru 20 na zachycovací modul na straně serveru 40^a přes externí komunikační spoj 35 na zachycovací modul na straně klienta 30, a potom dále na web browser 10. Potom například by odpověd vytvořená web serverem 20^byla odeslána přes soket_60d na soket 60c a multiplexována zachycovacím modulem na straně serveriMO na soket 36b, která by byla odeslána přes externí komunikační spoj 35 na soket 36a. Zachycovací modul na straně klienta 30. potom demultiplexuje komunikaci a poskytne ji na soket 60b pro přenos na 60a^na web browseru 10. Obdobná komunikační cesta je ustanovena pro každý soket, jenž je využíván web browserem 10 nebo web serverem 20. Z pohledu hodnocení tohoto vynálezu je nutné poznamenat, že zatímco byl stávající vynález popisován s ohledem na 4 soketová spojení mezí web browserem 10 a web serverem 20, může být otevřen libovolný počet soketů pro zajištění komunikačního přístupu mezi web browserem 10 a web serverem 20.Similarly, answers to questions from the web browser 10 produced by the web server 20 are also transmitted via the web server 20 socket connection to the server-side intercept module 40 and through the external communication link 35 to the client-side intercept module 30 and then further to the web browser. 10. Then, for example, the response generated by the web server 20 would be sent via socket 60d to socket 60c and multiplexed by the server side M0 intercept module to socket 36b, which would be sent via external communication link 35 to socket 36a. The client-side intercept module 30 then demultiplexes the communication and provides it to the socket 60b for transmission to 60a ^ on the web browser 10. A similar communication path is provided for each socket that is used by the web browser 10 or web server 20. In view of the evaluation of this It is to be noted that while the present invention has been described with respect to 4 socket connections between web browser 10 and web server 20, any number of sockets may be opened to provide communication access between web browser 10 and web server 20.

Obrázek 12 představuje blokové schéma implementace virtuálního soketového systému v zachycovacím modulu na straně klienta 30 a zachycovacím modulu na straně serveru 40. Externě k těmto modulům jsou reálné sokety mezi zachycovacím modulem na straně klienta 30 a web browserem 10 a zachycovacím modulem na straně serveru 40 a web serverem 20, které fungují jako normální TCP/IP sokety. To znamená, že použiti virtuálních soketů je transparentní vůči web browseru 10 i web serveru 20.Figure 12 is a block diagram of a virtual socket system implementation in a client-side intercept module 30 and a server-side intercept module 40. Externally to these modules are real sockets between the client-side intercept module 30 and the web browser 10 and the server-side intercept module 40; web server 20 that function as normal TCP / IP sockets. That is, the use of virtual sockets is transparent to both web browser 10 and web server 20.

Konkrétní začlenění stávajícího vynálezu bude popsáno s ohledem na blokové schéma uvedené na obrázku 12 a vývojové diagramy na obrázcích 13 až 17. Obrázek 13 je vývojový diagram soketového manažera znázorněného jako blok 68 na obrázku 12. S odvoláním na obrázek 13, blok 300 odráží vytváření manažera reálných soketů 68 zachycovacího modulu na straně klienta 30^ Poté, co byl manažer reálných soketů 68 vytvořen, vytvoří se první reálný soket znázorněný na obrázku 12 jako soket 65b. _ Vytvoření tohoto prvního reálného soketu je reflektováno blokem 301 na obrázku 13, PoA particular embodiment of the present invention will be described with respect to the block diagram shown in Figure 12 and the flowcharts of Figures 13 to 17. Figure 13 is a flow chart of a socket manager shown as block 68 of Figure 12. Referring to Figure 13, block 300 reflects the creation of a manager. After the real socket manager 68 has been created, the first real socket shown in Figure 12 is created as a socket 65b. The formation of this first real socket is reflected by block 301 in Figure 13, Po

RA 995 086RA 995 086

-32vytvoření prvního reálného soketů 65b počká manažer $oketů68 rezidentní na zachycovacím modulu na straně klienta_30, v tomto materiálu rovněž označovaný jako klientův manažer soketů, na událost na prvním reálném soketů 65b, jak je znázorněno v bloku 302 na obrázku 13. Jakmile je přijata událost na prvním reálném soketů 65b, manažer reálných soketů 68 ji prozkoumá a s ohledem na výsledek tohoto prozkoumání zvolí jednu z pěti možných cest, jak je znázorněno v bloku 305 na obrázku 13.Creating the first real sockets 65b will wait for the client $ 3068 resident on the client-side intercept module 30, also referred to as the client sockets manager, in this material, for the event on the first real sockets 65b as shown in block 302 in FIG. on the first real sockets 65b, the real sockets manager 68 examines it and chooses one of five possible paths, as shown in block 305 of Figure 13, in view of the result of this examination.

V případě vytvoření reálného soketů v odpovědi na požadavek o komunikaci přijatý na první reálný soket 65b, přidá, jak je naznačeno v cestě od bloku 305 do bloku 306 na obrázku 13, manažer reálných soketů 68 reálný soket do seznamu reálných událostí. Manažer reálných soketů potom vytvoří simplexní virtuální soket, jak je naznačeno v bloku 307. V případě zachycovacího modulu na straně klienta bude manažer reálných soketů indikovat aplikační funkci, která zajistí provedení funkcí zachycovacího modulu na straně klienta pro vytvořený virtuální soket, jak je znázorněno v bloku 308 na obrázku 13.In the case of creating real sockets in response to a communication request received on the first real socket 65b, as indicated in the path from block 305 to block 306 in Figure 13, the real socket manager 68 adds the real socket to the real event list. The real socket manager then creates a simplex virtual socket, as outlined in block 307. In the client-side capture module, the real socket manager will indicate the application function that will perform the client-side capture module functions for the created virtual socket, as shown in block. 308 in Figure 13.

Jak je zde uvedeno, termín „simplexní soket nebo „simplexní virtuální soket“ odkazuje na soket, který spojuje přímo buď jednoduchý soket, nebo jednoduchou aplikaci. Zde je použit také „multiplexní soket“, který označuje soket pro spojení na pluralitu dalších soketů. Multiplexní soket tedy vykonává multiplexní nebo demultiplexní funkci a simplexní soket vykonává individuální spojení. To znamená například při provádění funkcí bloků 306 až 308 na obrázku 13, že manažer soketů klienta 68 v odpovědi na požadavek o první ř‘1 —J — spojení přijatý prvním reálným soketem 65b vytvoří reálný soket 60b, simplexní virtuální soket 70 a označí zachycovací funkci na straně klienta v aplikaci 80. Podobně pro následné události, kde je vytvářen reálný soket, manažer reálných soketů vytvoří reálné sokety 61 bj_6gb, 63b nebo 64b a simplexní virtuální sokety 71, 72L73jiebo 74 a určí funkci CSI odpovídající vytvořeným reálným a virtuálním soketům, znázorněným jako bloky 81, 82, 83 nebo 84 na obrázku 12.As used herein, the term "simplex socket or" simplex virtual socket "refers to a socket that connects either a simple socket or a simple application directly. Here, a "multiplex socket" is also used to denote a socket for connection to a plurality of other sockets. Thus, the multiplex socket performs a multiplex or demultiplex function, and the simplex socket performs an individual connection. This means for example in carrying out the functions of blocks 306 to 308 in Figure 13, the socket manager client 68, in response to the first R 1 - 'J - connection received by the first real socket 65b, create real socket 60b, simplex virtual socket 70, and initiate engagement Similarly, for subsequent events where a real socket is being created, the real socket manager creates real sockets 61 bj_6gb, 63b or 64b and simplex virtual sockets 71, 72 L 73 or 74 and determines the CSI function corresponding to the created real and virtual sockets. sockets, shown as blocks 81, 82, 83, or 84 in Figure 12.

Činnost zachycovací funkce na straně klienta bude nyní popsána s odvoláním na reálný soket 60b, simplexní virtuální soket 70 a zachycovací funkci na straně klienta 80, znázorněnou na obrázku 12. Blok 325 na obrázku 14 odráží vytvoření zachycovací funkce na straně klienta 80. Po vytvoření čeká zachycovací funkce na straně klienta 80 • RA 995 086The operation of the client-side intercept function will now be described with reference to the real socket 60b, the simplex virtual socket 70, and the client-side intercept function 80 shown in Figure 12. Block 325 in Figure 14 reflects the creation of the client-side intercept function 80. client-side intercept function 80 • RA 995 086

-33na událost na simplexním virtuálním soketů 70, jak je naznačeno v bloku 326. Tato operace čekání se vykonává prováděním virtuální funkce výběru, která je popsána obrázkem 16-4. Po potvrzení události je tato událost prozkoumána, jak je naznačeno v bloku^330. Jestliže událost je zavření virtuálního soketů, potom zachycovací funkce na straně klienta 80 smaže simplexní virtuální soket 70, jak je naznačeno v bloku 349, a ukončí se, jak je naznačeno v bloku 350 na obrázku 14.An event on simplex virtual sockets 70 as indicated in block 326. This wait operation is performed by performing a virtual selection function as described in Figure 16-4. After the event is acknowledged, the event is examined as indicated in block ^ 330. If the event is closing virtual sockets, then the client-side intercept function deletes the simplex virtual socket 70, as indicated in block 349, and terminates, as indicated in block 350 in Figure 14.

Jestliže událost je příjem dat, potom se uskuteční cesta od bloku 330 k bloku 331 a zachycovací funkce na straně klienta 80 přijme komunikaci vytvořenou browserem odIf the event is data reception, then a path from block 330 to block 331 takes place and the client-side intercept function 80 receives the browser-generated communication from

simplexního virtuálního soketů 70, a to uskutečněním virtuální operace příjmu popsanou v tomto materiálu s odvoláním na obrázek 16-3. Zachycovací funkce na straně klienta potom provede výše popsanou funkci zachycovacího modulu na straně klienta (viz např.simplex virtual sockets 70 by performing the virtual receive operation described in this material with reference to Figure 16-3. The client-side intercept function then performs the client-side intercept function described above (e.g.

obrázky 3 a 7), která je znázorněna v bloku£32.. Zachycovací funkce na straně klienta 80 potom vytvoří multiplexní virtuální soket 90, který je spojen s reálným soketem 36a zachycovacího modulu na straně klienta 30. Reálný soket 36a je spojen s reálným soketem 36b zachycovacího modulu na straně serveru, 40. Vytvoření multiplexního virtuálního soketů je znázorněno v bloku 333 na obrázku 14 a je uskutečňováno prováděním virtuální operace vytvoření popsané v tomto materiálu s odvoláním na obrázek 16-1. Blok 334 znázorňuje operaci odeslání informace přijaté od web browseru přes reálný soket 60b a simplexní virtuální soket 70 po provedení zachycovací funkce na straně klienta 80 pro komunikaci vytvořenou web browserem. Tato komunikace je řazena do fronty na multiplexní virtuální soket 90, a to provedením virtuální operace odeslání popisované v tomto materiálu s odvoláním na obrázek 16-2. Zachycovací funkce na straně klienta 80 po zařazení do fronty požadavku na multiplexní virtuální soket 90 zarovná data ve frontě na multiplexním virtuálním soketů 90, jak je znázorněno v bloku 335 na obrázku 14, a potom počká na událost na multiplexním virtuálním soketů, jak je naznačeno blokem 336.f Funkce virtuálního zarovnání se uskutečňuje provedením virtuální funkce zarovnání popsané v tomto materiálu vzhledem k obrázku 17-1, která převezme data z multiplexované virtuální soketové fronty a předá je na reálný soket 36a. Operace čekání může být uskutečněna prováděním virtuální funkce výběru popsané obrázkem 16-4. V tomto okamžiku zachytil zachycovací modul na straně klienta3 and 7), which is shown in block 32. Client-side intercept function 80 then creates a multiplex virtual socket 90 that is connected to real client-side intercept socket 36a. Real socket 36a is connected to real socket 36b of the server-side intercept module 40. The multiplex virtual socket creation is shown in block 333 of Figure 14 and is performed by performing the virtual creation operation described in this material with reference to Figure 16-1. Block 334 illustrates the operation of sending information received from a web browser over a real socket 60b and a simplex virtual socket 70 after executing a client-side intercept function 80 for communication created by the web browser. This communication is queued to multiplex virtual socket 90 by performing the virtual send operation described in this material with reference to Figure 16-2. Client-side intercept function 80, after queuing for the multiplex virtual socket request 90, aligns the data in the queue on the multiplex virtual socket 90 as shown in block 335 in Figure 14, and then waits for an event on the multiplex virtual socket as indicated by the block 336. f The virtual alignment function is performed by performing the virtual alignment function described in this material with respect to Figure 17-1, which takes the data from the multiplexed virtual socket queue and forwards it to the real socket 36a. The wait operation can be performed by performing the virtual selection function described in Figure 16-4. At this point he caught the client-side intercept module

RA 995 086RA 995 086

-34komunikaci vytvořenou web browserem a tuto komunikaci přenesl na zachycovací modul na straně serveru přes externí komunikační spoj 35.-34 the communication created by the web browser and transmitted this communication to the server-side intercept module via an external communication link 35.

Zpět k obrázku 13, který znázorňuje vývojový diagram funkce manažeru soketu buď naBack to Figure 13, which depicts a flow diagram of the socket manager function at either

zachycovacím modulu na straně serveruJtO^nebo na zachycovacím modulu na straně klienta ,30. Manažer reálných soketů v zachycovacím modulu na straně serveru nebo manažer serverových soketů, znázorněný jako blok 69 na obrázku 12, provádí stejnou funkci jako manažer klientových soketů, znázorněný jako blok 68. Při vytváření prvního reálného soketu, znázorněného v bloku 301, zachycovací modu! na straně serveru 40 vytvoří „dobře známý port 37b pro příjem požadavků na sokety od zachycovacího modulu na straně klientaJ30_spojeného se zachycovacím modulem na straně serveru 40. Vyskytne-li se reálná událost na reálném soketuJJ6b u zachycovacího modulu na straně serveru 40, je tato událost prozkoumána, jak je naznačeno v bloku 305, V tomto případě je událostí příjem dat od reálného soketu 36a, proto se uplatní cesta od bloku 305 k bloku 320, znázorněná na obrázku 13. Data přijatá na reálný soket 36b jsou prozkoumána a v tomto konkrétním případě, protože se jedná o data vytvořená web browserem odeslaná zachycovacím modulem na straně klienta, musí být vytvořen nový virtuální soket v zachycovacím modulu na straně serveru 40. To znamená, že se uplatní cesta od bloku 320 k bloku 321 na obrázku 13. Manažer serverových soketů 69 potom provede operace naznačené v blocích 321, 322, 323 a 324 na obrázku 13. Manažer serverových soketů 69 vytvoří multiplexní virtuální soket 95, jak je naznačeno v bloku 321, zruší časovač aktivity multiplexního soketu, jak je naznačeno v bloku 322, a iniciuje aplikaci zachycovací funkce na straně serveru, jak je naznačeno v bloku 322 na obrázku 13 a znázorněno jako blok 85 na obrázku 12. Data přijatá na reálný soket 36 jsou potom zařazena do fronty na multiplexní virtuální soket 95 a je signalizována virtuální událost.the server side intercept module or client side intercept module,. The real socket manager in the server-side intercept module or the server socket manager, shown as block 69 in Figure 12, performs the same function as the client socket manager, shown as block 68. When creating the first real socket shown in block 301, the intercept module! server side 40 creates a "well known port 37b to receive socket requests from the client-side intercept module 30 connected to the server-side intercept module 40. If a real event occurs on a real socket 16B at the server-side intercept module 40, this event is examined As indicated in block 305, in this case, the event is receiving data from real socket 36a, therefore the path from block 305 to block 320 shown in Figure 13 is applied. The data received on real socket 36b is examined and in this particular case, since this is the data created by the web browser sent by the client-side intercept module, a new virtual socket must be created in the server-side intercept module 40. That is, the path from block 320 to block 321 in Figure 13 is applied. it then performs the operations outlined in blocks 321, 322, 323 and 324 in Figure 13 r of server sockets 69 creates a multiplex virtual socket 95 as outlined in block 321, cancels the multiplex socket activity timer as outlined in block 322, and initiates the application of a server-side intercept function as outlined in block 322 in Figure 13 and shown as block 85 in Figure 12. Data received on real socket 36 is then queued to multiplex virtual socket 95 and a virtual event is signaled.

Vytvoření zachycovací funkce na straně serveru, jak je znázorněno v bloku 323, je označeno jako blok 360 na obrázku 15. Po vytvoření zachycovací funkce na straně serveru 85 funkce přijme data z multiplexního virtuálního soketuJ)5_, která byla odeslána od zachycovacího modulu na straně klienta 30 a odpovídají komunikaci vytvořené web browserem. Tato operace je označena jako blok 361 na obrázku 15. Po přijetí dat odCreating a server-side intercept function, as shown in block 323, is referred to as block 360 in Figure 15. After creating a server-side intercept function 85, the function receives data from the multiplex virtual socket 15 that has been sent from the client-side intercept module. 30 and correspond to the communication created by the web browser. This operation is referred to as block 361 in Figure 15

RA995 086RA995 086

zachycovacího modulu na straně klienta zpracuje zachycovací funkce na straně serveru 85 data výše popsaným způsobem pro zachycovací modul na straně serveru. Provádění funkcí na straně serveru je označeno v bloku 362 (viz příklad na obrázcích 5 a 9). Po zpracování informací vytvoří zachycovací funkce na straně serveru 85 simplexní virtuální soket 75, a to prováděním virtuálního vytvoření, tj. operace, která je v tomto materiálu popisována vzhledem k obrázku 16-1. Tato operace je naznačena blokem 363 na obrázku 15. Zachycovací funkce na straně serveru 85 potom odešle komunikaci vytvořenou web browserem na simplexní virtuální soket 75, jak je naznačeno v bloku 364, uskutečněním virtuálního odeslání, tj. operace, která ie v tomto materiálu popsána s odvoláním na obrázek 16-2. Zachycovací funkce na straně serveru^85 potom provede virtuální zarovnání dat ve frontě na simplexním virtuálním soketu 75 pro reálný soket 60c a počká na událost na simplexním virtuálním soketu 75L Operace virtuálního zarovnání je v tomto materiálu popsána vzhledem k obrázku 17-1. Operace odeslání a zarovnání jsou zobrazeny v blocích 364 a 365 na obrázku 15. Operace čekání může být uskutečněna prováděním funkce virtuálního výběru popsané na obrázku 16-4. Jestliže zachycovací funkce na straně serveru_85 vytvořila simplexní virtuální soket 75, byl vytvořen rovněž odpovídající reálný soket_60c. Odesláním komunikace vytvořené web browserem na simplexní virtuální soket 75 přenese zachycovací funkce na straně serveru 85 komunikaci vytvořenou web browserem na web server.The client-side intercept module processes the server-side intercept function 85 as described above for the server-side intercept module. The execution of server-side functions is indicated in block 362 (see the example in Figures 5 and 9). After processing the information, the server-side intercept function 85 creates a simplex virtual socket 75 by performing a virtual creation, i.e., the operation described in this material with respect to Figure 16-1. This operation is indicated by block 363 in Figure 15. The server-side intercept function then sends the web browser communication to the simplex virtual socket 75, as indicated in block 364, by performing a virtual send, i.e., the operation described in this material with referring to Figure 16-2. The server-side intercept function 85 then performs virtual alignment of data on the simplex virtual socket 75 for real socket 60c and waits for the event on the simplex virtual socket 75 L The virtual alignment operation is described in this material with respect to Figure 17-1. The send and align operations are shown in blocks 364 and 365 of Figure 15. The wait operation can be performed by performing the virtual selection function described in Figure 16-4. If the server-side intercept function created a simplex virtual socket 75, a corresponding real socket 60c was also created. By sending the communication created by the web browser to the simplex virtual socket 75, the server-side intercept function transfers the communication created by the web browser to the web server.

Když zachycovací modul na straně serveru 40 přijme odpověcf od web serveru na reálný soket 60c, dojde k reálné události a manažer serverových soketů 69 ukončí blok 302 na obrázku 13 a prozkoumá událost, která nastala na reálném soketu 60c, jak je naznačeno blokem 305L V konkrétním případě se jedná o data pro existující virtuální soket a cestu od bloku 320 na blok 324 na obrázku 13. Data přijatá na reálný soket 60c_jsou zařazena do fronty na virtuálním soketu 75 a je signalizována virtuální událost. Je-li signalizována virtuální událost, ukončí zachycovací funkce na straně serveru 85 blok 366 na obrázku 15 a prozkoumá událost, jak je naznačeno blokem 370. Jestliže událostí je zavření soketu, nastane chybová podmínka a je jako odpověcf zkonstruováno chybové hlášení, jak je naznačeno v bloku 375 na obrázku 15. Jestliže však je událostí příjem dat, uplatní se cesta od bloku 370 k bloku 371 a zachycovací funkce na straně serveru 85 provede virtuální příjem, jak je v tomto materiálu popisováno s odvoláním naWhen the server-side intercept module receives a response from the web server to the real socket 60c, a real event occurs and the server socket manager 69 terminates block 302 in Figure 13 and examines the event that occurred on real socket 60c, as indicated by block 305L. For example, the data is for an existing virtual socket and the path from block 320 to block 324 in Figure 13. Data received on real socket 60c is queued on virtual socket 75 and a virtual event is signaled. When a virtual event is signaled, server-side intercept function 85 terminates block 366 in Figure 15 and examines the event as indicated by block 370. If the event is a socket closure, an error condition occurs and an error message is constructed as a response as indicated in However, if the event is a data receive, the path from block 370 to block 371 is applied and the server-side intercept function performs virtual reception, as described herein with reference to

RA995 086RA995 086

-36obrázek 16-3, aby tak získala odpověď serveru ze simplexního virtuálního soketu 75, jak je zřejmé z bloku 371. Zachycovací funkce na straně serveru 85 potom provede virtuální zavření simplexního virtuálního soketu 75, jak je naznačeno blokem 372 a v tomto materiálu popisováno s odvoláním na obrázek 17-2, a zpracuje odpověď, jak je výše popisováno, pro zachycovací modul na straně serveru, a jak je znázorněno v bloku 373 (viz například obrázky 6 a 10).Figure 36-3 to retrieve the server response from the simplex virtual socket 75 as shown in block 371. The server-side intercept function then performs a virtual closure of the simplex virtual socket 75, as indicated by block 372 and described herein with Referring to Figure 17-2, and processes the response as described above for the server side intercept module and as shown in block 373 (see, for example, Figures 6 and 10).

Je-li ukončovací cesta bloku 370 na obrázku 15 chybovou cestou k bloku 375 nebo datovou cestou k bloku 371, je v bloku 374 smazán simplexní virtuální soket 75. Zachycovací funkce na straně serveru potom provede operaci virtuálního odeslání na multiplexní virtuální soket 95 s cílem odeslat komunikaci vytvořenou web serverem na zachycovací modul na straně klienta 30, jak je znázorněno v bloku 376. Zachycovací funkce na straně serveru 85 potom uskuteční operaci virtuálního zarovnání dat ve fronte v multiplexním virtuálním soketu 95. Tyto operace jsou znázorněny v bloku 377. Zachycovací funkce na straně serveru 85 potom provede operaci virtuálního zavření, při r které zavře multiplexní virtuální soket 95, jak je znázorněno v bloku 378 na obrázku 15. Zachycovací funkce na straně serveru 85,nakonec smaže multiplexní virtuální soket a ukončí se, jak je znázorněno bloky 379 a 380.If block termination path 370 in Figure 15 is an error path to block 375 or data path to block 371, the simplex virtual socket 75 is deleted at block 374. The server-side intercept function then performs a virtual send operation to the multiplex virtual socket 95 to send The server-side intercept function then performs a virtual queue data alignment operation in the multiplex virtual socket 95. These operations are shown in block 377. The intercept functions on the server side server 85 then performs a virtual close operation when r which closes the multiplex virtual socket 95 as shown in block 378 of Figure 15. the side intercept function server 85 deletes the last multiplex virtual socket and terminates, as reflected in blocks 379 and 380.

Zachycovací funkce na straně serveru provede operace virtuálního odeslání a zarovnání u multiplexního virtuálního soketu ^95. Tímto se spustí události na reálném soketu 36a, přičemž manažer klientových soketu 68 ukončí blok 302 a prozkoumá událost, jak je znázorněno v bloku 305, a protože data byla přijata na reálný soket 36a, bude použita cesta od bloku 305 k bloku 320 na obrázku 13 a data budou zařazena do fronty na multiplexní virtuální soketJ90. Když tedy reálný soket 36a přijme odpověď web serveru od reálného soketu 36b přes externí komunikační spoj 35, jsou tato data demultiplexována a poskytnuta na příslušný multiplexní virtuální soket. Příjem dat způsobí vznik virtuální události, která by měla být, jak je ukázáno b!oken\324 na obrázku 13 a blokem 336 na obrázku 14, ukončena a zachycovací funkce na straně klienta 8Q by měla tuto událost prozkoumat, jak je znázorněno v bloku 340 na obrázku 14.The server-side intercept function performs virtual send and align operations on the multiplex virtual socket ^ 95. This triggers events on real socket 36a, whereby the client socket manager 68 terminates block 302 and examines the event as shown in block 305, and since data has been received on real socket 36a, the path from block 305 to block 320 in Figure 13 will be used. and the data will be queued to multiplex virtual socket J90. Thus, when real socket 36a receives a web server response from real socket 36b via external communication link 35, this data is demultiplexed and provided to the respective multiplex virtual socket. Receiving the data will result in a virtual event that should be terminated as shown in window 324 in Figure 13 and block 336 in Figure 14 and the client-side intercept function 80 should examine the event as shown in block 340 in Figure 14.

RA995 086RA995 086

Jestliže událost je odezva na uzavřený soket, uplatní se cesta od blokij_34J0L k b!oku_345 na obrázku 14 a zachycovací funkce na straně klienta 80 vytvoří odpověd chybového hlášení a předá ji bloku £44 na obrázku 14. Pokud událost jsou přijatá data, což je právě uváděný příklad, uplatní se cesta od bloku 340 k bloku 341 na obrázku 14 a zachycovací funkce na straně klienta 80 provede operaci virtuálního příjmu k přijetí odpovědi z muítiplexního virtuálního soketu 90. Tato operace příjmu je znázorněna blokem_341 na obrázku 14. Po přijetí dat z muítiplexního virtuálního soketu 90 provede zachycovací funkce na straně klienta 80 operaci virtuálního zavření a zavře multiplexní virtuální soket 90, jak je naznačeno blokem 342. Zachycovací funkce na straně klienta 8Q_potom zpracuje odpověd výše popsaným způsobem pro zachycovací modul na straně klienta, jak je znázorněno v bloku 343 (viz např. obrázky 4 a 8).If the event is a closed socket response, the path from block_34J0L kb! Oku_345 in Figure 14 is applied and the client-side intercept function 80 generates an error message response and passes it to block £ 44 in Figure 14. If the event is received data, For example, the path from block 340 to block 341 in Fig. 14 is applied, and the client-side intercept function 80 performs a virtual receive operation to receive a response from the multi-sided virtual socket 90. This receive operation is illustrated by block_341 in Fig. socket 90 performs a client-side intercept function 80 and closes the multiplex virtual socket 90 as indicated by block 342. Client-side intercept function 80 then processes the response as described above for the client-side intercept module as shown in block 343 ( see, eg, Figures 4 and 8).

Operace bloku 344 jsou potom prováděny při použití kterékoli cesty k ukončení bloku 340. Zachycovací funkce na straně klienta 80 smaže multiplexní virtuální soket, jak je naznačeno blokem 344, a potom provede operaci virtuálního odeslání s cílem odeslat . odpověd na browser přes simplexní virtuální soket 70, jak je naznačeno blokem 346. Po dokončení operace virtuálního odeslání provede zachycovací funkce na straně klienta 80 operaci virtuálního zarovnání tak, aby zarovnala data ve frontě simplexního virtuálního soketu, jak je znázorněno blokem 347 pro reálný soket 60b, a potom provede operaci virtuálního zavření s cílem zavřít simplexní virtuální soket, jak je znázorněno v bloku 348. Po zavření simplexního virtuálního soketu pro zachycovací funkci na straně klienta je smazán simplexní virtuální soket a zachycovací funkce na straně klienta se ukončí, jak je zřejmé z bloku 349 a 350 na obrázku 14.Block 344 operations are then performed using any path to terminate block 340. Client-side intercept function deletes the multiplex virtual socket, as indicated by block 344, and then performs a virtual send operation to send. response to the browser via the simplex virtual socket 70 as indicated by block 346. Upon completion of the virtual send operation, the client-side intercept function 80 performs a virtual alignment operation to align the data in the simplex virtual socket queue as shown by block 347 for real socket 60b , and then performs a virtual close operation to close the simplex virtual socket, as shown in block 348. After closing the simplex virtual socket for the client-side intercept function, the simplex virtual socket is deleted and the client-side intercept function terminates, as shown in block 348. blocks 349 and 350 in Figure 14.

Z pohledu hodnocení stávajícího vynálezu, je tento popisován s ohledem na jeden konkrétní příklad vytvoření simplexního a muítiplexního virtuálního soketu a zachycovacích funkcí na straně klienta a na straně serveru, avšak pluralita těchto funkcí může být vytvořena v rámci jednoho zachycovacího modulu na straně klienta, respektive zachycovacího modulu na straně serveru. Obdobně může zachycovací modul na straně klienta a zachycovací modul na straně serveru, podle stávajícího vynálezu, vytvořit TCP/IP spojení mezi zachycovacím modulem na straně klienta 30a zachycovacím modulem naIn view of the evaluation of the present invention, this is described with respect to one particular example of creating a simplex and multi-plex virtual socket and client-side and server-side intercept functions, but a plurality of these functions can be created within a single client-side intercept module. server-side module. Similarly, a client-side intercept module and a server-side intercept module, according to the present invention, can establish a TCP / IP connection between a client-side intercept module 30a and a

RA995 086RA995 086

-38straně serveru 40 a potom provádět multiplex na pluralitě spojení TCP/IP komunikací vytvořených web browserem nebo web serverem, a to při udržení spojení TCP/IP.38 of the server 40 and then perform multiplexing on the plurality of TCP / IP connections by web browser or web server communications while maintaining the TCP / IP connection.

Zbývající funkce manažera klientových soketů a manažera serverových soketů lze nejlépe pochopit s použitím obrázků 16-1 až 16-4 a obrázku 17-1 a 17-2, které popisují operace prováděné zachycovacím modulem na straně klienta a zachycovacím modulem na straně serveru při uskutečnění operací virtuálního vytváření, virtuálního odesílání, virtuálního příjmu, virtuálního výběru, virtuálního zarovnání nebo virtuálního zavření, jak je znázorněno vývojovými diagramy na obrázcích 14 a 15. Když se uskutečňuje operace virtuálního vytváření, jak je známo z bloku 333 na obrázku 14 a bloku 363 na obrázku 15, začíná se od bloku 400 na obrázku 16-1. Manažer soketů potom určí, zda je vyžadován reálný soket, jak je znázorněno v bloku 405. Jestliže již reálný soket existuje, anebo při vytváření multiplexního virtuálního soketů, který má být připojen na stávající reálný soket, uplatní se cesta „No“ bloku 405 a virtuální soket se spojí s reálným soketem, jak je zřejmé z bloku 409. Jestliže je však reálný soket zapotřebí, použije se potom cesta „Yes“ bloku 405. Jak je zřejmé z bloku 406, vytvoří se reálný soket. Reálný soket je potom přidán do seznamu událostí, jak je naznačeno v bloku 408, pro potřeby monitorování, jak je reflektováno v bloku 302 na obrázku 13. Po vytvoření reálného soketů a ustanovení spojení je virtuální soket připojen k reálnému soketů, jak je uvedeno v bloku 409, a dokončí se operace vytvoření, jak je zřejmé z bloku 410.The remaining functions of the client socket manager and server socket manager can best be understood using Figures 16-1 to 16-4 and Figures 17-1 and 17-2, which describe the operations performed by the client-side intercept module and the server-side intercept module when performing operations virtual creation, virtual send, virtual receive, virtual selection, virtual alignment, or virtual close, as shown in the flowcharts of Figures 14 and 15. When the virtual creation operation is performed, as is known from block 333 of Figure 14 and block 363 of Figure 15, starting from block 400 in FIG. 16-1. The socket manager then determines whether a real socket is required, as shown in block 405. If a real socket already exists, or when creating a multiplex virtual socket to be connected to an existing real socket, the "No" path of block 405 and virtual the socket is merged with the real socket as shown in block 409. However, if a real socket is needed, then the "Yes" path of block 405 is used. As shown in block 406, a real socket is created. The real socket is then added to the event list, as indicated in block 408, for monitoring purposes, as reflected in block 302 in Figure 13. After real sockets are created and the connection is established, the virtual socket is connected to real sockets as shown in block 409, and the create operation is completed as shown in block 410.

Při provádění operace virtuálního odeslání naznačené v blocích 334 a 346 na obrázku 14 nebo blocích 364 a 376 na obrázku 15 začínají operace od bloku 420 na obrázku 16-2. Do fronty virtuálního soketů jsou přidána data, jak je zřejmé z bloku 427, a potom se ukončí operace odesílání, jak je vidět z bloku 428.When performing the virtual send operation outlined in blocks 334 and 346 in Figure 14 or blocks 364 and 376 in Figure 15, operations from block 420 in Figure 16-2 begin. Data is added to the virtual socket queue, as seen from block 427, and then the send operation is terminated, as seen from block 428.

Operace virtuálního příjmu znázorněné v blocích 331 a 341 na obrázku 14 a blocíchThe virtual receive operations shown in blocks 331 and 341 of Figure 14 and blocks

361 a 371 na obrázku 15 jsou uskutečňovány prováděním operací začínajících od bloku 430 na obrázku 16-3. Jak je vidět v bloku 435, je vyhodnocena virtuální soketová fronta, aby se stanovilo, zda jsou ve virtuální soketové frontě nějaká data. Jestliže se ve virtuální soketové frontě data vyskytují, uplatní se cesta „Yes bloku 435^a tato data jsou vrácena na funkci nazvanou příjmová operace, jak je patrno z bloku 436. Jestliže ve virtuální361 and 371 in Fig. 15 are performed by performing operations starting from block 430 in Fig. 16-3. As seen in block 435, the virtual socket queue is evaluated to determine if there is any data in the virtual socket queue. If data is present in the virtual socket queue, the "Yes" path of block 435 ^ is applied and this data is returned to a function called the receive operation, as seen from block 436. If

RA995 086RA995 086

-39soketové frontě nejsou žádná data, avšak soket není označen pro zavření, uplatní se cesta „No“ rozhodovacího bloku 440 a nic se nevrátí, jak je zřejmé z bloku _441_. Jestliže však nejsou ve frontě žádná data a soket je označen pro zavření, platí cesta „Yes“ bloku 440 a soket jé označen jako zavřený, jak je zřejmé z bloku 442, a na operaci vyžadující příjem je vrácena informace, že je soket zavřený, jak je zřejmé z bloku 443.There is no data in the socket queue, but the socket is not marked for closing, the "No" path of decision block 440 is applied, and nothing returns as is clear from block _441_. However, if there is no data in the queue and the socket is marked to close, then the "Yes" path of block 440 is valid and the socket is marked as closed, as shown in block 442, and the receiving operation is returned with information that the socket is closed. is evident from block 443.

Operace virtuálního výběru vykonávaná v blocích 326 a 336 na obrázku 14 a v bloku 366 na obrázku 15 se uskutečňuje provedením operací, které začínají blokem 445 na obrázku 16-4. Jak je zřejmé z bloku 446, nejdříve je stanoveno, zda data nebo operace virtuálního zavření nejsou dosud na zvoleném virtuálním soketu vyřízená. V případě, že nejsou nevyřízená žádná data nebo virtuální zavření, uplatní se cesta No bloku 446 a proces čeká na virtuální událost na zvoleném virtuálním soketu, jak je znázorněno v bloku 447^8 po přijetí takové události se ukončí, jak je znázorněno v bloku 448. Jestliže však data a virtuální zavření jsou dosud nevyřízená a čekají na vyřízení, čekají na zvoleném virtuálním soketu, virtuální událost se již vyskytla, a proto se uplatní cesta Yes” bloku 446, proces se zakončí, jak je znázorněno v bloku 448.The virtual selection operation performed at blocks 326 and 336 in Figure 14 and at block 366 in Figure 15 is performed by performing operations that begin at block 445 in Figure 16-4. As is clear from block 446, it is first determined whether the data or virtual close operation is not yet pending on the selected virtual socket. If there is no pending or virtual close pending, the No path of block 446 is applied and the process waits for a virtual event on the selected virtual socket, as shown in block 447-4, and terminates as shown in block 448 However, if the data and virtual closures are pending and are pending, are waiting on the selected virtual socket, the virtual event has already occurred, and therefore the Yes path of block 446 is applied, the process ends as shown in block 448.

Operace virtuálního zarovnání, jak je zřejmé z bloků^SSS a 347 na obrázku 14 a bloků 365 a 377na obrázku 15 se uskutečňuje provedením operací, které začínají blokem 450 na obrázku 17-1. Je-li operace virtuálního zarovnání spuštěna, stanoví, zda jsou ve frontě virtuálního soketu nějaká data, která mají být zarovnána, jak je naznačeno v rozhodovacím bloku £55. Jestliže ve virtuální soketové frontě nejsou žádná data, potom se operace zarovnání prostě ukončí a vrátí se do funkce, jež ji spustila, jak je zřejmé z větve “No” bloku ^£55. Jestliže však jsou ve frontě nějaká data, potom se uplatní cesta “Yes” bloku 455 a je určeno, zda virtuální soketová fronta je pro multiplexní soket, jak je patrno z bloku 46Q, Jedná-li se o multiplexní soket, potom se soketové záhlaví, které se skládá ze tří byte dat odrážejících jednoznačný identifikátor pro soket a z objemu dat pro přenos, přidá do vyrovnávací paměti (bufferu) reálného soketu, jak je znázorněno v bloku 461. V obou případech, jestliže se jedná o multiplexní soket nebo simplexní soket, se data pro reálný soket potom přesunou do vyrovnávací paměti pro reálný soket, jak je naznačeno v bloku 462. V případě, že vyrovnávací paměť reálného soketu je plná, uplatní <z~— se větev Yes bloku 465 a data se z vyrovnávací paměti pro reálný soket odešlou naThe virtual alignment operation as seen from blocks SSS and 347 in Figure 14 and blocks 365 and 377 in Figure 15 is performed by performing operations that begin with block 450 in Figure 17-1. When the virtual alignment operation is started, it determines whether there is any data in the virtual socket queue to be aligned, as indicated in decision block £ 55. If there is no data in the virtual socket queue, then the alignment operation simply ends and returns to the function that triggered it, as shown in the “No” branch of block ^ £ 55. However, if there is data in the queue, then the "Yes" path of block 455 is used and it is determined whether the virtual socket queue is for the multiplex socket, as seen from block 46Q. If it is a multiplex socket, then the socket header, which consists of three bytes of data reflecting the unique identifier for the socket and the amount of data to be transferred, is added to the real socket buffer as shown in block 461. In both cases, if it is a multiplex socket or simplex socket, the real socket data is then moved to the real socket buffer as indicated in block 462. If the real socket buffer is full, the <z ~ - Yes branch of block 465 is applied and the data is extracted from the real socket buffer send to

RA 995 086RA 995 086

-40tento reálný soket, jak je naznačeno v bloku 466. Pokud však vyrovnávací paměť pro reálný soket není plná, platí cesta “No” bloku £¢5. Virtuální zarovnávací funkce potom provede test s cílem určit, zda jsou ještě nějaká další data na případné další frontě multiplexního virtuálního soketu, která by měla být odeslána na reálný soket. Pokud odpověcř zní ano, uplatní se cesta Yes bloku ^ZQ a data ve vyrovnávací paměti reálného soketu nejsou odeslána, dokud není operace virtuálního zarovnávání znovu-40this real socket, as indicated in block 466. However, if the buffer for the real socket is not full, the “No” path of block £ ¢ 5 applies. The virtual alignment function then performs a test to determine if there is any additional data on any additional multiplex virtual socket queue that should be sent to the real socket. If the answer is yes, the Yes path of the ^ ZQ block is applied and the data in the real socket buffer is not sent until the virtual alignment operation is resumed

vyvolána, aby provedla zarovnání jedné z ostatních virtuálních soketových front. Pokud však nejsou již žádná další data nebo po přidání dat z ostatních multiplexních virtuálních soketů, provede se operace bloku 466 a data ve vyrovnávací paměti reálného soketu jsou odeslána na reálný soket. Po tom všem se data ve virtuální soketové frontě odpovídající funkci, která volala operaci virtuálního zarovnávání, odešlou na reálný soket a operace virtuálního zarovnávání se ukončí, jak je znázorněno v bloku 467.invoked to align one of the other virtual socket queues. However, if there is no more data or after adding data from other multiplex virtual sockets, block 466 operation is performed and the data in the real socket buffer is sent to the real socket. After all, the data in the virtual socket queue corresponding to the function that called the virtual alignment operation is sent to the real socket, and the virtual alignment operation terminates as shown in block 467.

Virtuální operace zavření znázorněná v blocích 342 a 348 na obrázku 14 a blocích 372 · a 378 na obrázku 15 se uskutečňuje provedením operací, které začínají blokem 480 na obrázku 17-2. Když je volána operace virtuálního zavření, nejdříve provede testy s cílem určit, zda se virtuální zavření týká multiplexního virtuálního soketu, jak je znázorněno v bloku 485. Je-li to multiplexní virtuální soket, potom se uplatní cesta “Yes” bloku 485 a do virtuální soketové fronty se přidá indikátor operace zavření. Ať již jde o virtuální zavření multiplexního virtuálního soketu či nikoli, operace virtuálního zavření zavolá operaci virtuálního zarovnávání, jak je znázorněno v bloku 487 a potom provede odpojení od reálného soketu, jak je znázorněno v bloku 488, Operace potom provede testy s cílem poznat, zda virtuální zavření se týká simplexního virtuálního soketu, jak je zřejmé z bloku 490; a pokud tomu tak není, uplatní se cesta “No” bloku 495. Protože se zavření týká multiplexního virtuálního soketu, provedou se testy bloku 495 s cílem stanovit, zda se jedná o poslední multiplexní virtuální soket, a je-li tomu tak, nastaví se časovač multiplexní aktivity, jak je zřejmé z bloku 496. Pokud se však nejedná o poslední multiplexní virtuální soket, potom se blok 496 přeskočí.The virtual close operation shown in blocks 342 and 348 in Figure 14 and blocks 372 · and 378 in Figure 15 is performed by performing operations that begin with block 480 in Figure 17-2. When a virtual close operation is called, it first performs tests to determine whether virtual close relates to a multiplex virtual socket, as shown in block 485. If it is a multiplex virtual socket, then the “Yes” path of block 485 is applied and to the virtual a close operation indicator is added to the socket queue. Whether or not a virtual close of the multiplex virtual socket is performed, the virtual close operation calls the virtual alignment operation as shown in block 487 and then disconnects from the real socket as shown in block 488, then the operation performs tests to determine whether virtual close refers to the simplex virtual socket, as shown in block 490; and if this is not the case, the “No” path of block 495 is used. Because the closure concerns a multiplex virtual socket, block 495 tests are performed to determine if this is the last multiplex virtual socket and, if so, set the multiplex activity timer as shown in block 496. However, if this is not the last multiplex virtual socket, then block 496 is skipped.

Zpět k bloku 490. Jestliže se virtuální zavření týká simplexního virtuálního soketu, potom je příslušný reálný soket odstraněn ze seznamu událostí, jak je znázorněno v bloku 491 a reálný soket je zavřen a smazán, jak je zřejmé z bloku 492, Ať již je soketem simplexníBack to block 490. If virtual close refers to a simplex virtual socket, then the corresponding real socket is removed from the event list, as shown in block 491, and the real socket is closed and deleted, as seen in block 492, whether the socket is simplex

RA 995 086RA 995 086

-41 nebo muitíplexní virtuální soket, je označen jako zavřený, viz blok 497, a operace zavření se ukončí, viz blok 498.-41 or a multiplex virtual socket is marked as closed, see block 497, and the close operation is terminated, see block 498.

Obrázek 13 bude nyní popsán ve vztahu k obrázkům 16-1 až 16-4 a obrázkům 17-1 aFigure 13 will now be described with reference to Figures 16-1 to 16-4 and Figures 17-1a

17-2. Když se vyskytne reálná událost, blok 302 na obrázku 13 se ukončí a manažer soketu událost prozkoumá na základě toho, jak byla tato událost generována. Jestliže byl u události překročen časový interval (timing) pro časovač aktivity multiplexního soketu, který byl nastaven v bloku.496 na obrázku 17-2, potom se uplatní cesta od bloku 305 k bloku 312 na obrázku 13. Jak je zřejmé z obrázku 13, provede manažer soketů operace bloku 312 a bloku 313 pro zavření multiplexního reálného soketu a smaže muitíplexní reálný soket, který odpovídá soketu, jenž spojuje zachycovací modul na straně klienta se zachycovacím modulem na straně serveru. Manažer soketů potom vyčká na další reálnou událost. Tento časovač multiplexních událostí je resetován (nulován) vytvořením multiplexního virtuálního soketu, jak je vidět v bloku 322.17-2. When a real event occurs, block 302 in Figure 13 closes and the socket manager examines the event based on how the event was generated. If the event has exceeded the timing for the multiplex socket activity timer set in block.496 in Figure 17-2, then the path from block 305 to block 312 in Figure 13 is applied. As can be seen from Figure 13, the socket manager performs operations on block 312 and block 313 to close the multiplex real socket and clears the multiplex real socket that corresponds to the socket that connects the client-side intercept module to the server-side intercept module. The socket manager then waits for the next real event. This multiplex event timer is reset to zero by creating a multiplex virtual socket, as seen in block 322.

Jestliže událost vyskytující se na reálném soketu je zavření reálného soketu, např. web server provádějící operaci zavření na soketových spojeních mezi web serverem a zachycovacím modulem na straně serveru, potom se uplatní cesta od bloku 305 k bloku 309 na obrázku 13. Manažer soketů odstraní reálný soket ze seznamu reálných událostí, jak je zřejmé z bloku 309 a odpojí virtuální soket nebo sokety, v případě několika multiplexních soketů, od reálného soketu nebo soketů, jak je vidět z bloku 310. Manažer soketů potom označí virtuální soket pro uzavření a oznámí (signalizuje) virtuální událost. Tato operace je reflektována v bloku 31 Ja jakmile jsou všechna data z virtuální soketové fronty odstraněna, bude virtuální soket zavřen. Po označení virtuálního soketu pro zavření manažer soketů následně stanoví, zda je nebo není reálný soket, který má být zavřen, simplexním soketem, jak je naznačeno v rozhodovacím bloku 315. Jestliže zavření reálného soketu se týká simplexního soketu, je tento reálný soket zavřen a smazán, jak je znázorněno v bloku 316, Manažer soketů potom čeká na další reálnou událost, jak je patrné z bloku 302.If the event occurring on the real socket is closing a real socket, such as a web server performing a close operation on the socket connections between the web server and the server-side intercept module, then the path from block 305 to block 309 in Figure 13 is applied. the real event socket as shown in block 309 and disconnects the virtual socket or sockets, in the case of multiple multiplex sockets, from the real socket or sockets as seen from block 310. The socket manager then marks the virtual socket for closure and signals (signals) ) a virtual event. This operation is reflected in block 31J, as soon as all data is deleted from the virtual socket queue, the virtual socket will be closed. After the virtual socket is closed for closing, the socket manager then determines whether or not the real socket to be closed is a simplex socket, as indicated in decision block 315. If the closing of the real socket is related to the simplex socket, that real socket is closed and deleted as shown in block 316, the socket manager then waits for the next real event, as seen from block 302.

Není-li to simplexní reálný soket, jenž se má zavřít, potom se uplatní cesta “No” bloku 315 a manažer soketů vyčká na následnou reálnou událost. Muitíplexní reálný soketIf it is not a simplex real socket to close, then the “No” path of block 315 is used and the socket manager waits for the next real event. Multi-socket real socket

RA995 086RA995 086

nebo soket spojující zachycovací modul na straně klienta a zachycovací modul na straně serveru může být pouze zavřen s použitím časového hlídání (timeout) ze strany časovače aktivity multiplexního soketu. To umožňuje údržbu spojení mezi zachycovacím modulem na straně klienta a zachycovacím modulem na straně serveru i poté, co proběhla poslední komunikace mezi moduly v rámci pro uživatele specifikovaného předem stanoveného času. V situaci následného požadavku spojení od browseru před vypršením časového intervalu určeného časovačem aktivity multiplexního soketu by mohla být komunikace uskutečněna bez znovuustanovení spojení mezi zachycovacím modulem na straně klienta a zachycovacím modulem na straně serveru, a tak eliminována potřeba dalších nároků v důsledku znovuustanovení takového spojení.or a socket connecting a client-side intercept module and a server-side intercept module can only be closed using the timeout of the multiplex socket activity timer. This allows the connection between the client-side intercept module and the server-side intercept module to be maintained even after the last communication between the modules took place within the user-specified predetermined time. In the situation of a subsequent connection request from the browser before the time interval determined by the multiplex socket activity timer expires, communication could be made without reconnecting the client-side intercept module and the server-side intercept module, thus eliminating the need for additional claims due to the reconnection.

Poslední větev, kterou je nutné popsat u obrázku 13, je větev, kdy nastane reálná událost a touto událostí je příjem dat na multiplexní reálný soket nebo reálné sokety 36a nebo 36b na obrázku 12. Jsou-li data přijata na multiplexní reálné sokety, jsou tato data prozkoumána a v případě, že zahrnují indikátor operace zavření, podobně jako tomu bylo u virtuální fronty v bloku 486 na obrázku 17-2, potom se provede operace virtuálního zavření, a tedy použije cesta od bloku 320 k bloku 310. Manažer soketů odpojí od reálného soketu multiplexní virtuální soket označený v přijatých datech na reálný soket,The last branch to be described in Figure 13 is the branch where the real event occurs, and this event is receiving data to the multiplex real socket or real sockets 36a or 36b in Figure 12. If the data is received on multiplex real sockets, this is the data is examined, and if they include a close operation indicator, similar to the virtual queue at block 486 in Figure 17-2, then a virtual close operation is performed, thus using the path from block 320 to block 310. The socket manager disconnects from real socket multiplex virtual socket labeled in the received data to real socket,

viz blok 310, a potom označí virtuální soket pro zavření a signalizuje virtuální událost f 1 tak, jak je znázorněno v bloku 31l Protože zavření je vlastně zavření multiplexního virtuálního soketu, uplatní se cesta “No” bloku 315 a potom manažer soketů počká na reálnou událost, jak je vidět v bloku 302.see block 310, and then marks the virtual socket to close and signals the virtual event f 1 as shown in block 31l Because closing is actually closing the multiplex virtual socket, the path "No" of block 315 is applied and then the socket manager waits for a real event as shown in block 302.

Prostřednictvím provádění operací popsaných na obrázcích 13 až 17 konkrétní aspekt stávajícího vynálezu ustanovuje stálé spojení mezi prvním počítačem a druhým počítačem přes externí komunikační spoj. Toto stálé spojení je udržováno do doby, než všechny komunikace vytvořené web browserem jsou dokončeny a pluralita komunikací vytvořených web browserem je zachycena a následně multiplexována na externí komunikační spoj v době, kdy je stálé spojení udržováno. Specifický datový tok klient/server může být pak demultiplexován tak, aby se vytvořila pluralita datových toků HTTP a tato pluralita datových toků HTTP je předána na web server. Stálé spojení je rovněž udržováno do dokončení všech komunikací vytvořených web serverem. Pluralita komunikací vytvořených web serverem je zachycena a multiplexována na externíBy performing the operations described in Figures 13 to 17, a particular aspect of the present invention establishes a permanent connection between the first computer and the second computer via an external communication link. This persistent connection is maintained until all communications created by the web browser are completed and the plurality of communications created by the web browser is captured and then multiplexed to an external communications link while the persistent connection is maintained. The specific client / server data stream can then be demultiplexed to create a plurality of HTTP data streams and this plurality of HTTP data streams is passed to the web server. Permanent connection is also maintained until the completion of all communications created by the web server. The plurality of communications created by the web server is captured and multiplexed to external

RA 995 086RA 995 086

-43komunikační spoj v době, kdy je stálé spojení udržováno. Specifický datový tok klient/server může být potom demultiplexován tak, aby se vytvořila pluralita datových toků HTTP a tato pluralita datových toků HTTP se předala na web server.-43 the communication link while the fixed link is maintained. The specific client / server data stream can then be demultiplexed to create a plurality of HTTP data streams, and this plurality of HTTP data streams is passed to the web server.

Ve výkresové dokumentaci i specifikacích jsou zapracována typická preferovaná začlenění vynálezu, a přestože jsou použity specifické termíny, jsou použity pouze v generickém a popisném smyslu slova a nikoli pro účely omezení, rozsah vynálezu je vyložen v dále uvedených nárocích.Typical preferred embodiments of the invention are incorporated in the drawings and specifications, and although specific terms are used, are used in a generic and descriptive sense only and not for the purpose of limitation, the scope of the invention is set forth in the following claims.

Claims (8)

1. Způsob zachycování dat přijatých od druhé aplikace, která mají být poskytnuta první aplikaci v odpovědi na požadavek od první aplikace, vyznačující se tím, že zahrnuje následující kroky:A method of capturing data received from a second application to be provided to a first application in response to a request from a first application, comprising the steps of: uloží se datový tok, který má být přijat od druhé aplikace a který má být poskytnut první aplikaci, do první cache paměti (31) tak, aby se vytvořil klientův cache zápis (32), odpovídající požadavku první aplikace, uloží se čas vytvoření klientova cache zápisu (32) tak, aby se vytvořil záznam času klientova cache zápisu (32), zachytí se požadavek od první aplikace, přičemž se stanoví, zda existuje klientův cache zápis (32), odpovídající požadavku, vyhodnotí se záznam času klientova cache zápisu (32) pro klientův cache zápis (32), odpovídající požadavku od první aplikace, přičemž se stanoví, zda se vytvořil klientův cache zápis (32), odpovídající požadavku od první aplikace během předem definovaného klientova koherentního časového intervalu před vyžádáním informací první aplikací, dodá se klientův cache zápis (32) první aplikaci v odpovědi na požadavek, pokud ve zmíněném kroku vyhodnocení bylo určeno, že byl vytvořen klientův cache zápis (32) pro daný požadavek od první aplikace během předem definovaného klientova koherentního časového intervalu před vyžádáním informací první aplikací.storing the data stream to be received from the second application and to be provided to the first application in the first cache memory (31) so as to create a client cache entry (32) corresponding to the request of the first application; write (32) so as to create a client write cache time record (32), intercept the request from the first application, determining whether there is a client write cache (32) corresponding to the request, evaluate the client write cache time record (32) ) for the client cache entry (32) corresponding to the request from the first application, and determining whether a client cache entry (32) corresponding to the request from the first application has been created during a predefined client coherent time interval before requesting the information by the first application cache write (32) to the first application in response to the request, if in said evaluation step ur eno that was created by the client cache entry (32) for the request from the first application within a predetermined time interval coherent client requesting the information before the first application. 2.2. Způsob podle nároku krok, při němž se více instancí prvníThe method of claim 1, wherein the multiple instances are first 1, vyznačující se tím, že dále zahrnuje udržují klientovy cache zápisy aplikace.1, further comprising maintaining a client cache of application writes. (32) u(32) u Způsob podle ap1 i káce je nároku 1, rezidentní ap1 i kace první a rezidentní je druhá ap1 i kace vyznačující se tím, že na prvním počítači (5), na druhém počítači (6), přičemž spolu navzájem komunikují přes první druháThe method according to claim 1, claim 1, resident application first and resident application second characterized in that on the first computer (5), on the second computer (6), they communicate with each other through the first second 3 .3. externí komunikační spoj (35), přičemž se provádí následující kroky:an external communication link (35), the following steps being performed: uloží se datový tok od druhé aplikace v odpovědi na požadavek první aplikace do druhé cache paměti (41) rezidentní na druhém počítači (6) tak, aby se vytvořil cache zápis (42) požadavku serveru (40), zachytí se požadavek, vytvořený první aplikací a přijatý druhou aplikací, přičemž se stanoví, zda byl již dříve uložen v druhé cache paměti (41) cache zápis (42) požadavku serveru (40), odpovídající danému požadavku, odešle se cache zápis (42) požadavku serveru (40), odpovídající danému požadavku od první aplikace, na první aplikaci rezidentní na prvním počítači (5) přes externí komunikační spoj (35).storing the data flow from the second application in response to the request of the first application in a second cache memory (41) resident on the second computer (6) so as to create a cache write (42) of the request of the server (40); and received by the second application, determining whether a request request server (40) corresponding to the request has been previously stored in the second request cache cache, sending a request request cache (42) to the server (40) corresponding to the first application resident on the first computer (5) via an external communication link (35). 4. Způsob podle nároku 3, vyznačující se tím. Že dále zahrnuje kroky:A method according to claim 3, characterized in that. That further includes the steps of: stanoví se, jestli se vytvořil cache zápis (42) požadavku serveru (40), odpovídající požadavku od první aplikace, během předem definovaného klientova koherentního časového intervalu před přijetím požadavku druhým počítačem (6), přičemž, pokud, se při stanovení určí, že se cache zápis (42) požadavku serveru (40) vytvořil v rámci předem definovaného klientova koherentního časového intervalu, při odeslání se odešle cache zápis (42) požadavku serveru (40), odpovídající požadavku od první aplikace, první aplikaci.determining whether a request write cache (42) of the request server (40) corresponding to the request from the first application has been created during a predefined client coherent time interval before the request is received by the second computer (6); the request write cache (42) of the server (40) generated within a predefined client coherent time interval, upon sending, the write request cache (42) of the request server (40) corresponding to the request from the first application is sent to the first application. 5. Způsob podle nároku 3, vyznačující se tím, že dále zahrnuje kroky:The method of claim 3, further comprising the steps of: stanoví se, odpoví da jící identický s zda existuje požadavku od cache zápisem klientův cache zápis (32), první aplikace, který je (42) požadavku serveru (40), odpovídajícím danému požadavku, vypočte se časový interval mezi okamžikem, kdy druhý počítač (6) přijal požadavek od první aplikace, a okamžikem zápis (42) požadavku serveru (40), od druhé aplikace, čímž se poskytnou kdy se vytvoří cache odpoví dající data o stáří požadavku zápi su, odeslání se přenáší data (42) požadavku první aplikace, serveru na první o stáří zápisu pro (40), odpovídající apli kac i rez i dentní přičemž při cache zápis požadavku od na prvním počítači (5) aktua i i zuje se odpovídajícího požadavku aktuálního času na prvním zápisu přijatá od druhého časový záznam od první počítači počítače kl i entova cache zápisu (32), aplikace tak, že se od (5) odečtou data o stáří (6) .determining, corresponding identical to whether there is a request from the cache by the client's cache entry (32), the first application that is (42) the request of the server (40) corresponding to the request, the time interval between the second computer ( 6) received the request from the first application, and at the time of writing (42) the request of the server (40), from the second application, providing when the cache corresponding to the write request age is created, sending the first application request data (42) , a server at the first write age for (40), corresponding to the application and resident, and in cache writing a request from the first computer (5), the corresponding current time request on the first write received from the second time record from the first computer (32), the application by subtracting the age data (6) from (5). 6. 6. Způsob podle aplikací je server (20). The method according to the applications is a server (20). nároku 1, web browser Claim 1 web browser vyznačující se tím, že (10) a druhou aplikací characterized in that: (10) and the second application první je web the first is the web 7. 7. Způsob podle Method according to nároku claim 3, 3, vyznačující se characterized tím, že that druhá second aplikace je web server application is web server (20) (20) , první aplikace , the first app je web is the web browser browser
(10), přičemž první a druhý počítač (5, 6) spolu komunikují přes bezdrátový komunikační spoj (35).(10), wherein the first and second computers (5, 6) communicate with each other via a wireless communication link (35).
8. Zařízení pro zachycení dat přijatých od druhé aplikace pro poskytnutí první aplikaci v odpovědi na požadavek od první aplikace, vyznačující ae tím, že sestává z prvního zachycovacího modulu zapojeného mezi první aplikaci a druhou aplikaci, přičemž první zachycovací modul je upraven pro uložení datového toku, přijímaného od druhé aplikace a poskytovaného první aplikaci, do první cache paměti (31), připojené k prvnímu zachycovacímu modulu, rezidentnímu na prvním počítači (5) k vytvoření klientova cache zápisu (32), odpovídajícímu požadavku první aplikace, první zachycovací modul je dále upraven pro uložení času vytvoření klientova cache zápisu (32) pro vytvoření záznamu času klientova cache zápisu (32), první zachycovací modul je dále upraven pro zachycení požadavku od první aplikace pro stanovení existence klientova cache zápisu (32), odpovídajícímu požadavku, první zachycovací modul je dále upraven pro vyhodnocení záznamu času klientova cache zápisu (32) pro klientův cache zápis (32), odpovídající požadavku od první aplikace, pro stanovení, zda je vytvořen klientův cache zápis (32), odpovídající požadavku od první aplikace.A device for intercepting data received from a second application to provide a first application in response to a request from a first application, comprising a first intercept module connected between the first application and the second application, wherein the first intercept module is adapted to store a data stream received from the second application and provided by the first application to a first cache memory (31) connected to a first intercept module resident on the first computer (5) to create a client write cache (32) corresponding to the first application request, the first intercept module being further adapted to store a client write cache time (32) for creating a client write cache time record (32), the first intercept module being further adapted to intercept a request from the first client write cache (32) request corresponding to the first intercept module is further modified for evaluating a client write cache time record (32) for a client write cache (32) corresponding to a request from the first application, to determine whether a client write cache (32) corresponding to a request from the first application is created. během předem definovaného klientova koherentního časového intervalu před vyžádáním informací první' aplikací, první zachycovací modul je dále upraven pro dodání klientova cache zápisu (32) první aplikaci v odpovědi na požadavek, pokud je určeno, že je vytvořen pro požadavek od první aplikace klientova koherentního časového klientův cache zápis (32) během předem definovaného intervalu před vyžádáním informací první aplikací.during a predefined client coherent time interval before requesting information by the first application, the first intercept module is further adapted to supply the client write cache (32) to the first application in response to the request if it is determined to be created for the request from the first application of the client coherent time the client cache write (32) during a predefined interval before requesting information by the first application. 9. Zařízení podle nároku 8, vyznačující se tím, že druhá apli kace apli kace je rezidentní je rezidentní na druhém počítači (6) a první na prvním počítači (5), přičemž první a druhá aplikace jsou spojeny přes externí komunikační spoj (35), druhý zachycovací modul je připojen mezi první zachycovací modul a druhou aplikaci, přičemž druhý zachycovací modul je upraven pro uložení datového toku od druhé aplikace v odpovědi na požadavek první aplikace do druhé cache paměti (41), připojené k druhému zachycovacímu modulu, rezidentnímu na druhém počítači (6) pro vytvoření cache zápisu (42) požadavku serveru, druhý zachycovací modul je dále upraven pro zachycení požadavku od první aplikace, zda byl již dříve uložen v druhé cache paměti (41) cache zápis (42) požadavku serveru, odpovídajícímu danému požadavku a druhý zachycovací modul je dále upraven pro odeslání cache zápisu (42) požadavku serveru, odpovídajícího danému požadavku od první aplikace, na první aplikaci rezidentní na prvním počítači (5) přes externí komunikační spoj (35).Device according to claim 8, characterized in that the second application of the application is resident is resident on the second computer (6) and the first on the first computer (5), the first and second applications being connected via an external communication link (35) , the second intercept module is connected between the first intercept module and the second application, wherein the second intercept module is adapted to store the data flow from the second application in response to the first application request in a second cache memory (41) connected to the second intercept module resident on the second a server (6) for creating a server request cache entry (42), the second intercepting module further adapted to intercept the request from the first application whether it has previously been stored in a second server request cache entry (42) corresponding to said request and the second intercept module is further adapted to send a request write cache (42) to the server, responding to the first application resident on the first computer (5) via an external communication link (35). 10. Počítačový programový produkt k provádění způsobu podie nároku který je uložen na počítačem čitelné paměťové médium a provedení V zahrnuje programové poč í tačovéííy systému kódové prostředky pro a který je čitelný počítačem, vyznačující se tím, že zahrnuje:10. A computer program product for executing a method according to claim which is stored on a computer readable storage medium, and Embodiment V comprises program computer system code means for and which is computer readable, comprising: počítačem čitelné programové kódové prostředky pro vyvolání prvním počítačem (5) uložení datového toku, který má být přijat od druhé aplikace a který má být poskytnut první aplikaci, do první cache paměti (31) pro vytvoření klientova cache zápisu (32), odpovídajícího požadavku první aplikace, počítačem čitelné programové kódové prostředky pro vyvolání prvním počítačem (5) uložení času vytvoření klientova cache zápisu (32) tak, že se vytvoří záznam času klientova cache zápisu (32), počítačem čitelné programové kódové prostředky pro vyvolání prvním počítačem (5) zachycení požadavku od první aplikace pro stanovení, zda existuje klientův cache zápis (32) odpovídající požadavku, počítačem čitelné programové kódové prostředky pro vyvolání prvním počítačem (5) vyhodnocení záznamu času klientova cache zápisu (32) pro klientův cache zápis (32), odpovídající požadavku od první aplikace pro stanovení, zda byl vytvořen klientův cache zápis (32), odpoví da jící požadavku od první apli kace.computer readable program code means for invoking the first computer (5) to store the data stream to be received from the second application and to be provided to the first application in the first cache memory (31) to create a client write cache (32) corresponding to the first request application, computer readable program code means for retrieving the first computer (5) storing the time of creation of the client write cache (32) such that a time record of the client write cache (32) is generated, computer readable program code means for retrieving the first capture computer (5) a request from the first application to determine whether there is a client cache entry (32) corresponding to the request, computer readable program code means for invoking the first computer (5) to evaluate the client entry cache time record (32) for the client cache entry (32) first app The application to determine whether a client write cache (32) has been created corresponding to the request since the first application. během předem definovaného k1 i entova koherentního časového intervalu před vyžádáním informací první aplikací, počítačem čitelné programové kódové prostředky pro vyvolání prvním počítačem (5) dodání klientova cache zápisu (32) první aplikaci v odpovědi na požadavek, pokud je v kroku vyhodnocení určeno, že byl vytvořen klientův cache zápis (32) pro daný požadavek od první aplikace během předem definovaného klientova koherentního časového intervalu před vyžádáním informací první aplikací.during a predefined k1 of the coherent time interval before requesting information by the first application, computer readable program code means for invoking the first computer (5) to supply the client write cache (32) to the first application in response to the request if it is determined in the evaluation step creating a client cache entry (32) for the request from the first application during a predefined client coherent time interval before requesting the information by the first application.
CZ19973541A 1996-07-11 1996-07-11 Method, apparatus and computer program product for caching data received from a second application CZ287679B6 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CZ19973541A CZ287679B6 (en) 1996-07-11 1996-07-11 Method, apparatus and computer program product for caching data received from a second application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CZ19973541A CZ287679B6 (en) 1996-07-11 1996-07-11 Method, apparatus and computer program product for caching data received from a second application

Publications (2)

Publication Number Publication Date
CZ354197A3 true CZ354197A3 (en) 2000-09-13
CZ287679B6 CZ287679B6 (en) 2001-01-17

Family

ID=5466902

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ19973541A CZ287679B6 (en) 1996-07-11 1996-07-11 Method, apparatus and computer program product for caching data received from a second application

Country Status (1)

Country Link
CZ (1) CZ287679B6 (en)

Also Published As

Publication number Publication date
CZ287679B6 (en) 2001-01-17

Similar Documents

Publication Publication Date Title
US5859971A (en) Differencing client/server communication system for use with CGI forms
KR100289520B1 (en) Client/server communication system
KR100295003B1 (en) Time coherent caching system
CZ287957B6 (en) Method for reducing data, apparatus and computer program product for making the same
CZ354197A3 (en) Method of data capture received from another application and computer program product for making the same

Legal Events

Date Code Title Description
PD00 Pending as of 2000-06-30 in czech republic
MM4A Patent lapsed due to non-payment of fee

Effective date: 20070711