CZ287957B6 - Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění - Google Patents

Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění Download PDF

Info

Publication number
CZ287957B6
CZ287957B6 CZ19973543A CZ354397A CZ287957B6 CZ 287957 B6 CZ287957 B6 CZ 287957B6 CZ 19973543 A CZ19973543 A CZ 19973543A CZ 354397 A CZ354397 A CZ 354397A CZ 287957 B6 CZ287957 B6 CZ 287957B6
Authority
CZ
Czechia
Prior art keywords
socket
computer
virtual
application
request
Prior art date
Application number
CZ19973543A
Other languages
English (en)
Other versions
CZ354397A3 (cs
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
Publication of CZ354397A3 publication Critical patent/CZ354397A3/cs
Publication of CZ287957B6 publication Critical patent/CZ287957B6/cs

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Způsob spočívá v tom, že se ustanoví první virtuální soket na prvním počítači (5) v odpovědi na každý požadavek o spojení ze strany první aplikace, ustanoví se první reálný soket na prvním počítači (5) a druhý reálný soket na druhém počítači (6) ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35). Ustanoví se druhý virtuální soket na druhém počítači (6) pro každý požadavek o spojení ze strany první aplikace, multiplexují se data požadavku, přiřazená prvnímu virtuálnímu soketu na prvním reálném soketu, přenesou se multiplexovaná data požadavku přes externí komunikační spoj (35) s využitím Transfer Control Protokolu na druhý reálný soket. Přijmou se multiplexovaná data požadavku z externího komunikačního spoje (35). Dále se demultiplexují data požadavku, přijatá druhým reálným soketem, z externího komunikačního spoje (35), tato data se poskytují požadavku druhého virtuálního soketu, který odpovídá prvnímu virtuálnímu soketu. Poskytují se data požadavŕ

Description

Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění
Oblast techniky
Vynález se týká způsobu redukce dat přenášených přes komunikační spoj z první aplikace rezidentní na prvním počítači, a také na druhou aplikaci rezidentní na druhém počítači, přičemž se data přenáší přes externí komunikační spoj z prvního počítače na druhý počítač pomocí přenosového řídicího protokolu Transfer Control Protocol. Vynález se dále týká zařízení a počítačového programového produktu k provádění tohoto způsobu.
Dosavadní stav techniky
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.
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 Protocol/Intemet Protocol (TCP/IP), kde část protokolu TCP představuje přenosově specifický protokol pro komunikaci mezi počítači nebo aplikacemi. Standardizovaný je rovněž jazyk, v kterém klienti a servery vzájemně komunikují a který se nazývá 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.
V kontextu World Wide Web aplikací typu klient/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.
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 stránku. URL představuje adresu místa web a je 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ší komunikace na Internetu ze strany web serveru Internetu, anebo URL může specifikovat server v lokální síti, k němuž je browser připojen. Web browser by potom vyhodnotil přijatá data HTML jako datový tok HTTP od web serveru, aby zjistil, zda se zde nevyskytují vložené spoje
-1 CZ 287957 B6 typu hyper-link, jako jsou ikony a obrázky, a pokud se vyskytují, iniciuje požadavky specifikující pro URL hyper-link, jak získat potřebná data. Takto obdržená data jsou pak začleněna do domovské stránky a zobrazena uživateli. Jak je z tohoto příkladu zřejmé, 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.
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 programem 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 aplikační web servery pomocí definovaného HTTP rozhraní Common Gateway Interface (CGI) vytváří z technologie web velmi atraktivní prostředek pro velkou třídu aplikací založených na formulářích.
V době, kdy rostla popularita Internetu a rozšiřovala se jeho dostupnost, rostla rovněž i popularita mobilního výpočetnictví. Používání laptopů, notebooků, prostředků Personál Digital/Communication Assistants (PDA/PCA) a dalších přenosných zařízení vedlo ke zvýšení požadavků na bezdrátovou komunikaci. Dálkové bezdrátové komunikační sítě, celulámí 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 nastavový komunikační protokol World Wide Web. Protože je protokol web nastavový, 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é, kdyby komunikace nebyla samostatná. Takže kombinace bezdrátové technologie nebo jiné pomalé komunikační technologie s technologií 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.
Podstata vynálezu
Ve světle výše uvedených omezení je jedním z cílů tohoto vynálezu poskytnout způsob, zařízení a programový počítačový produkt, které redukují objem dodatečných nároků pro datové přenosy mezi aplikacemi.
Dalším cílem tohoto vynálezu je, že může být používán v prostředí web browser/server.
Cílem tohoto vynálezu také je kompatibilita se stávají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.
K dalším cílům tohoto vynálezu patří, že redukuje objem komunikace požadované mezi aplikacemi, používajícími komunikační protokoly TCP/IP, a tedy zvyšuje výkonnost komunikačního systému.
Z hlediska řešení těchto úkolů poskytuje vynález způsob redukce dat přenášených přes komunikační spoj z první aplikace rezidentní na prvním počítači i na druhou aplikaci rezidentní na druhém počítači, přičemž se data přenáší přes externí komunikační spoj od prvního počítače na druhý počítač pomocí přenosového řídicího protokolu Transfer Control Protocol. Způsob spočívá v tom, že se ustanoví první virtuální soket na prvním počítači v odpovědi na každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených první aplikací. Ustanoví se první reálný soket na prvním počítači a druhý reálný soket na druhém
-2CZ 287957 B6 počítači ke spojení prvního počítače s druhým počítačem přes externí komunikační spoj. Ustanoví se druhý virtuální soket na druhém počítači pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket odpovídá prvnímu virtuálnímu soketu, ustanovenému na první počítači v odpovědi na spojení požadované první aplikací. Multiplexují se data požadavku, 5 přiřazená prvnímu virtuálnímu soketu na prvním reálném soketu. Přenesou se multiplexovaná data požadavku přes externí komunikační spoj s využitím Transfer Control Protokolu na druhý reálný soket. Přijmou se multiplexovaná data požadavku z externího komunikačního spoje. Demultiplexují se data požadavku, přijatá druhým virtuálním soketem, z externího komunikačního spoje. Demultiplexovaná data se poskytují požadavku druhého virtuálního soketu, který 10 odpovídá prvnímu virtuálnímu soketu, ustanovenému v odpovědi na požadavek od první aplikace. Poskytují se data požadavku, přijatá druhým virtuálním soketem, druhé aplikaci. První a druhý reálný soket se udržují do doby poskytnutí dat požadavku, odpovídajících požadavku první aplikace, která ustanovila první virtuální soket, druhé aplikaci.
V dalším provedení vynálezu se přijmou data odpovědi od druhé aplikace v odpovědi na požadavek od první aplikace, s použitím druhého virtuálního soketu přiřazeného požadavku od první aplikace. Multiplexují se data odpovědi, přijatá druhým virtuálním soketem, na druhý reálný sok Multiplexovaná data odpovědi se přenáší přes externí komunikační spoj pomocí Transfer Control Protocol na první reálný soket. Přijmou se multiplexovaná data odpovědi 20 z externího komunikačního spoje. Demultiplexují se data odpovědi, přijatá prvním reálným soketem. Demultiplexovaná data odpovědi, která odpovídají požadavku od první aplikace, se poskytují prvnímu virtuálnímu soketu, jako odpověď na požadavek od první aplikace. Poskytují se data odpovědi, přijatá prvním virtuálním soketem, první aplikaci.
V dalším provedení vynálezu se druhý virtuální soket zavře poté, co se data odpovědi multiplexovala. Potom co se poskytnou data první aplikace, zavře se první virtuální soket.
V alternativním provedení vynálezu se po zavření všech prvních virtuálních soket zavřou první a druhý reálný soket. Podobně se první a druhé reálné sokety zavřou po uplynutí definovaného 30 časového intervalu po zavření všech prvních virtuálních soket.
Zařízení podle vynálezu sestává z prvního zachycovacího modulu, připojeného mezi první aplikaci a externí komunikační spoj na první počítač. První zachycovací modul zahrnuje první soketový manažer pro ustanovení prvního virtuálního soketu na prvním počítači v odpovědi na 35 každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených první aplikací. První zachycovací modul je dále upraven pro ustanovení prvního reálného soketu na prvním počítači ke spojení prvního počítače s druhým počítačem přes externí komunikační spoj a pro multiplexování dat požadavku, přiřazených prvnímu virtuálnímu soketu, na prvním reálném soketu. Dále je první zachycovací modul upraven pro přenos multiplexovaných dat požadavku 40 přes externí komunikační spoj s využitím Transfer Control Protocolu na druhý reálný soket a pro udržování prvního reálného soketu do doby poskytnutí dat požadavku, odpovídajícího požadavku od první aplikace, která ustanovila první virtuální soket, druhé aplikaci. Zařízení dále sestává z druhého zachycovacího modulu připojeného mezi externí komunikační spoj a druhou aplikací v druhém počítači. Druhý zachycovací modul zahrnuje druhý soketový manažer pro ustanovení 45 druhého virtuálního soketu na druhém počítači pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket odpovídá prvnímu virtuálnímu soketu ustanovenému na prvním počítači v odpovědi na požadavek o spojení ze strany první aplikace. Druhý zachycovací modul je dále upraven pro ustanovení druhého reálného soketu na druhém počítači ke spojení prvního počítače s druhým počítačem přes externí komunikační spoj, pro příjem multiplexova50 ných dat požadavku z externího komunikačního spoje a pro demultiplexování dat požadavku, přijatých druhým reálným soketem, z externího komunikačního spoje. Druhý zachycovací modul je dále upraven pro poskytování demultiplexovaných dat požadavku, druhému virtuálnímu soketu, pro poskytování dat požadavku, přijatých druhým virtuálním soketem, druhé aplikaci a pro udržování druhého reálného soketu do doby poskytnutí dat požadavku, odpovídajících 55 požadavku od první aplikace, která ustanovila první virtuální soket, druhé aplikaci.
-3CZ 287957 B6
Další varianta zařízení podle vynálezu spočívá vtom, že druhý zachycovací modul je dále upraven pro příjem dat odpovědi od druhé aplikace v odpovědi na požadavek od první aplikace s použitím druhého virtuálního soketu přiřazeného požadavku od první aplikace, pro multiplexování dat odpovědi, přijatých druhým virtuálním soketem, na druhý reálný soket a pro přenos multiplexovaných dat odpovědi přes externí komunikační spoj pomocí Transfer Control Protocol na první reálný soket. Přitom první zachycovací modul je dále upraven pro příjem multiplexovaných dat odpovědi z externího komunikačního spoje, pro demultiplexování dat odpovědi, přijatých prvním reálným soketem, pro poskytování demultiplexovaných dat odpovědi prvnímu virtuálnímu soketu, která odpovídají požadavku od první aplikace, jako odpověď na požadavek od první aplikace a pro poskytování dat odpovědi, přijatých prvním virtuálním soketem, první aplikaci. Přitom první aplikace může výhodně zahrnovat web server a druhá aplikace web browser a externí komunikační spoj může přednostně zahrnovat bezdrátový komunikační spoj.
Počítačový programový produkt k provádění způsobu podle vynálezu spočívá v tom, že je uložen na počítačem čitelném paměťovém médiu a zahrnuje množství softwarových kódových částí pro zavedení počítačového systému. Přitom je počítačový programový produkt vložitelný do počítače a zahrnuje počítačem čitelné programové kódové prostředky pro přivedení prvního počítače k ustanovení prvního virtuálního soketu na prvním počítači v odpovědi na každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených první aplikací, počítačem čitelné programové kódové prostředky pro přivedení prvního počítače k ustanovení prvního reálného soketu na prvním počítači a ke spojení prvního počítače s druhým počítačem přes externí komunikační spoj a počítačem čitelné programové kódové prostředky pro přivedení prvního počítače k multiplexování dat požadavku, přiřazených prvnímu virtuálnímu soketu, na prvním reálném soketu. Dále zahrnuje počítačem čitelné programové kódové prostředky pro přivedení prvního počítače k odeslání multiplexovaných dat požadavku přes externí komunikační spoj s využitím Transfer Control Protocolu na druhý reálný soket, počítačem čitelné programové kódové prostředky pro přivedení prvního počítače k udržování prvního reálného soketu do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace ustavující první virtuální soket, druhou aplikací a počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k ustanovení druhého virtuálního soketu na druhém počítači pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket odpovídá prvnímu virtuálnímu soketu, ustanovenému na prvním počítači, v odpovědi na požadavek o spojení ze strany první aplikace. Dále zahrnuje počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k ustanovení druhého reálného soketu na druhém počítači ke spojení prvního počítače s druhým počítačem přes externí komunikační spoj, počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k příjmu multiplexovaných dat požadavku z externího komunikačního spoje a počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k demultiplexování dat požadavku, přijatých druhým reálným soketem z externího komunikačního spoje. Zahrnuje rovněž počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k poskytování demultiplexovaných dat požadavku druhému virtuálnímu soketu, počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k poskytování dat požadavku, přijatých druhým virtuálním soketem, druhé aplikaci a počítačem čitelné programové kódové prostředky pro přivedení druhého počítače k udržování druhého reálného soketu do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace, která ustanovila první virtuální soket, druhé aplikaci.
Přehled obrázků na výkresech
Vynález je dále podrobněji popsán s pomocí výkresů, na nichž jsou znázorněna přednostní provedení vynálezu. Tento vynález však může být proveden v mnoha různých podobách a jeho konstrukce není omezena jako zde uváděnými provedeními. Tato provedení jsou uváděna s úplným a kompletním popisem. Na výkresech znázorňuje:
-4CZ 287957 B6 obr. 1 blokový diagram typického systému web browser/web server, obr. 2 blokový diagram systému web browser/web server podle provedení vynálezu, využívajícího zachycení klienta a zachycení serveru, obr. 3 vývojový diagram znázorňující operace, prováděné zachycovacím modulem na straně klienta v přednostním provedení podle vynálezu pro implementaci koherentního vyrovnávacího systému cache, obr. 4 vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně klienta v přednostním provedení podle vynálezu, implementujícím koherentní vyrovnávací systém cache, obr. 5 vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně serveru v přednostním provedení podle vynálezu, implementujícím koherentní vyrovnávací systém cache, obr. 6 vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně serveru v přednostním provedení podle vynálezu, implementujícím.koherentní vyrovnávací systém cache, obr. 7 vývojový diagram znázorňující, operace prováděné zachycovacím modulem na straně klienta v přednostním provedení podle vynálezu, implementujícím přenosový systém rozdílových dat, obr. 8 vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně klienta v přednostním provedení podle vynálezu, implementujícím přenosový systém rozdílových dat, obr. 9 vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně serveru v přednostním provedení podle vynálezu, implementujícím přenosový systém rozdílových dat, obr. 10 a, b vývojový diagram, znázorňující operace prováděné zachycovacím modulem na straně serveru v přednostním provedení podle vynálezu, implementujícím přenosový systém rozdílových dat, obr. 11 blokový diagram provedení vynálezu, využívajícího virtuální sokety, obr. 12 blokový diagram zachycovacího modulu na straně klienta a zachycovacího modulu na straně serveru v provedení podle vynálezu, využívajícím virtuální sokety, obr. 13 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 v provedení podle vynálezu, využívajícím virtuální sokety, obr. 14 vývojový diagram, popisující operace, prováděné zachycovací funkcí na straně klienta v provedení podle vynálezu, využívajícím virtuální sokety, obr. 15 vývojový diagram, popisující operace, prováděné zachycovací funkcí na straně serveru v provedení podle vynálezu, využívajícím virtuální sokety, obr. 16-1 vývojový diagram, popisující virtuální operaci vytváření v provedení podle vynálezu, využívajícím virtuální sokety,
-5CZ 287957 B6 obr. 16-2 vývojový diagram, popisující virtuální operaci odesílání v provedení podle vynálezu, využívajícím virtuální sokety, obr. 16-3 vývojový diagram, popisující virtuální operaci příjmu podle provedení vynálezu, využívajícího virtuální sokety, obr. 16-4 vývojový diagram, popisující virtuální operaci výběru v provedení podle vynálezu, využívajícím virtuální sokety, obr. 17-1 vývojový diagram, popisující virtuální operaci vyrovnání v provedení podle vynálezu, využívajícím virtuální sokety, obr. 17-2 vývojový diagram, popisující virtuální operaci zavření v provedení podle vynálezu, využívajícím virtuální sokety.
Příklady provedení vynálezu
Základní komunikační struktura pro systém založený na síti Internet je znázorněna na obr. 1. Na obr. 1 komunikuje web browser 10 s web serverem 20 po komunikačním spoji 15. Tento komunikační spoj 15 je obvykle spoj LAN, WAN s využitím 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á, že web browser 10 komunikuje s web serverem 20 prostřednictvím generického komunikačního protokolu HTTP, který je přenášen mezi web browserem 10 a web serverem 20 po spoji TCP/IP, vytvořeném mezi web browserem 10 a web serverem 20. 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ů 10 a směrovačů-routerů a předává je na příslušný server 20.
Obr. 3 až 10 a 13 až 17-2 jsou vývojové diagramy metod a systémů podle vynálezu. Je jasné, že každý blok vývojových diagramů a také kombinace těchto bloků mohou být implementovány pomocí instrukcí počítačového programu. Tyto instrukce počítačového programu mohou být zaváděny na počítač nebo mohou být tvořeny jinými programovatelnými zařízeními 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 jak 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í funkci 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.
Podobně bloky vývojových diagramů podporují kombinace prostředků i 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 implementován speciálním jednoúčelovým hardwarově založeným počítačovým systémem, kteiý provádí specifikované funkce nebo kroky, anebo kombinací speciálního účelového hardware a počítačových instrukcí.
Obr. 2 ilustruje jedno provedení vynálezu. Jak je zřejmé z obr. 2, web browser 10 komunikuje se zachycovacím modulem 30 na straně klienta. Web server 20 komunikuje se zachycovacím modulem 40 na serverové straně. Zachycovací modul 30 na klientově straně pak komunikuje se
-6CZ 287957 B6 zachycovacím modulem 40 na straně serveru přes externí komunikační spoj 35. Web browser 10 a zachycovací modul 30 na klientově straně se mohou nacházet v prvním počítači 5. Zachycovací modul 40 na serverové straně a web server 20 se mohou nacházet ve druhém počítači 6. První počítač 5 a druhý počítač 6 spolu komunikují přes externí komunikační spoj 35.
Přednostně je web browser 10 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 dává web browser 10 na výstupu datový tok HTTP, který je zachycován modulem 30 na straně klienta. Zachycení datového toku HTTP zachycovacím modulem 30 na straně klienta může být prováděno použitím funkce zpětnovazební smyčky TCP/IP, kde zachycovací modul 30 na straně klienta je rezidentní na adrese IP a má síťové číslo 127, např. 127.0.0.1. Zachycovací modul 30 na straně klienta 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 35. Zachycovací modul 40 na straně serveru přijme specifický datový tok a rekonstruuje původní datový tok HTTP odpovídající komunikaci vytvářené web browserem JO. 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 20. 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ů 10.
Jakmile je přijata web serverem 20 informace pro odeslání na web browser 10, například jako odpověď na požadavek browserů 10 pro specifickou domovskou stránku URL, odešle web server 20 výstupní datový tok HTTP odpovídající komunikaci, která má být odeslána na web browser 10. Tato komunikace vytváření web serverem 20 je zachycena zachycovacím modulem 40 na straně serveru a transformována na specifický datový tok klient/server. Tento specifický datový tok klient/server odpovídající komunikaci vytvářené web serverem 20 je potom odeslán druhým počítačem 6 přes externí komunikační spoj 35 do prvního počítače 5. Specifický datový tok klient/server je přijat zachycovacím modulem 30 na straně klienta, který rekonstruuje původní datový tok HTTP, odpovídající komunikaci vytvářené web serverem 20 a poskytne jej web browserů 10.
V konkrétním zapojení podle 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ě 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, ktetý využívá informace specifické pro klienta a pro server tak, aby minimalizoval objem a četnost komunikace.
Zatímco stávající vynález je a bude popisován s ohledem na jednu aplikaci web browser 10 a jednu aplikaci web server 20 je nutné předeslat pro hodnocení tohoto vynálezu, že přednosti a výhody tohoto vynálezu mohou být rovněž dosahovány násobnými web browsery 10 přiřazenými jednomu web serveru 20. 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 a web serveru nebo jiného obdobného web zařízení.
V jednom provedení vynálezu se jak u zachycovacího modulu 30 na straně klienta, tak u zachycovacího modulu 40 na straně serveru 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 5 a ukládá datové toky HTTP, které mají být přijaty web browserem 10 v odpovědi na komunikaci vytvářenou web browserem
-7CZ 287957 B6
20. Serverová vyrovnávací cache paměť je rezidentní na druhém počítači 6 a ukládá datové toky HTTP, které jsou přijaty z web serveru 20 v odpovědi na komunikaci vytvářenou browserem 10.
Z pohledu hodnocení tohoto vynálezu cache paměť rezidentní na prvním počítači 5 nebo na druhém počítači 6 může být libovolné velikosti 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ů. 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 5, 6. 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á 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 10 nebo web serveru 20 nebo dokonce cyklů spouštěných po zapnutí na prvním nebo na druhém počítači 5, 6 pro vytvoření stálé cache paměti.
Činnost struktury vyrovnávání bude podle jednoho provedení vynálezu popsána s odvoláním na obr. 3 až 6, což jsou vývojové diagramy popisující činnost zachycovacího modulu 30 na straně klienta a zachycovacího modulu 40 na straně serveru. Konkrétně u obr. 3, blok 100 označuje, že zachycovací modul 30 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 30 na straně klienta kontroluje Uniform Resource Locator (URL) příchozího požadavku, jak je znázorněno v druhém bloku 105. Zachycovací modul 30 na straně klienta určí z URL, jestli byla informace, odpovídající požadavku, vytvořeného web browserem 10, dříve uložená v klientově cache, rezidentní v prvním počítači 5.
Jestliže informace odpovídající URL nebyla předtím uložená v klientově cache paměti, potom se uskuteční zachycovacím modulem 30 na straně klienta činnosti znázorněné v třetím bloku 106. Zachycovací modul 30 na straně klienta odešle požadavek přes externí komunikační spoj 35 na zachycovací modul 40 na straně serveru.
Jestliže však po prozkoumání komunikace vytvořené web browserem 10, jak je znázorněno ve druhém bloku 105, se zjistí, že existuje zápis klientovy cache, který odpovídá komunikaci vytvořené web browserem 10, potom v nejjednodušším provedení bude tato informace poskytnuta web browseru 10 jako datový tok HTTP. Avšak, jak je znázorněno na obr. 3, provádí přednostní provedení podle vynálezu to, co je označováno jako koherentní intervalová kontrola na cache zápisu odpovídající komunikaci vytvořené web browserem 10. Tato operace je znázorněna ve čtvrtém bloku 110 na obr. 3.
Koherentní interval pro zachycovací modul 30 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 10, a to web serveru 20. Koherentní intervalová kontrola, znázorněná ve čtvrtém 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 10 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 10 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 pátém bloku 111, je cache zápis předán browseru 10 jako datový tok HTTP. Komunikace vytvářená browserem 10 bude potom přijata zachycovacím modulem 30 na straně klienta v bloku 100, viz obr. 3.
-8CZ 287957 B6
Jestliže kontrola koherentního intervalu znázorněná ve čtvrtém bloku 110 určí, že cache zápis, rezidentní na prvním počítači 5, je zastaralý, vygeneruje požadavek na zachycovací modul 40 na straně serveru, aby zkontroloval koherentnost cache zápisu rezidentního na druhém počítači 6. Tato operace je znázorněna pomocí šestého bloku 112 na obr. 3. Je prováděna pomocí externího komunikačního spoje 35 použitého k předání koherentního intervalu na zachycovací modul 40 na straně serveru pro konkrétní zachycovací modul 30 na straně klienta, který odpovídá web browseru 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é web browserem 10. V přednostním provedení je tato jednoznačná indicie výsledkem cyklické redundanční kontroly nebo CRC pro daný cache zápis.
Věnujme nyní pozornost obr. 5, který znázorňuje činnost zachycovacího modulu 40 na straně serveru v odpovědi na informaci přijatou přes externí komunikační spoj 35 od zachycovacího modulu 30 na straně klienta. Když zachycovací modul 40 na straně serveru přijme požadavek od zachycovacího modulu 30 na straně klienta, zachycovací modul 40 na straně serveru přijme předem definovaný klientům koherentní časový interval, CRC hodnotu pro klientův cache zápis a HTTP dotaz, vytvořený web browserem 10. Potvrzení této informace je znázorněno v sedmém bloku 120 na obr. 5.
Po přijetí informace od zachycovacího modulu 30 na straně klienta zkontroluje zachycovací modul 40 na straně serveru svou serverovou cache rezidentní na druhém počítači 6, aby určil, zda existuje serverový cache zápis odpovídající URL požadavku HTTP vytvořeného web browserem 10. Jestliže po prozkoumání komunikace vytvořené web browserem 10, jak je naznačeno v osmém bloku 125, určí zachycovací modul 40 na straně serveru, že existuje cache zápis odpovídající informaci, která byla vyžádána komunikací vytvořenou web browserem 10, uplatní se větev „Yes“ bloku 125. Zachycovací modul 40 straně serveru potom porovná aktuální datum a čas modulu 40 SSI se sumou SDT serverového cache zápisu odpovídajícího informaci, která byla vyžádána komunikací vytvořenou web browserem 10, a s předem definovaným klientovým koherentním časovým intervalem přijatým od zachycovacího modulu 30 na straně klienta.
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“ desátém bloku 130 na obr. 5. Zachycovací modul 40 n straně serveru potom 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“ jedenáctého bloku 135 a jak je znázorněno pomocí dvanáctého bloku 136, odešle se „koherentní“ odezva na zachycovací modul 30 na straně klienta.
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 a jak je znázorněno ve třináctém bloku 137, zachycovací modul na straně serveru odešle serverový cache zápis na první počítač 5 přes externí komunikační spoj 35. Při odesílání serverového cache zápisu na zachycovací modul 30 na klientově straně konvertuje zachycovací modul 40 na straně serveru 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.
A pokud, jak je konečně znázorněno na obr. 5, je buď sama 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 10, potom se uplatní větev „No“ desátého bloku 130, popřípadě větev „No“ osmého bloku 125. Tak se provedou operace devátého bloku 126 a zachycovací modul 40 straně serveru odešle na server komunikaci vytvořenou web browserem 10 jako datový tok HTTP. Jestliže zachycovací modul 40 na straně serveru musí odeslat komunikaci vytvořenou web browserem 10 na server 20 jako datový tok HTTP, potom zachycovací modul 40 na straně serveru bude provádět operace popsané obr. 6.
-9CZ 287957 B6
Jak je patrno ze čtrnáctého bloku 140 na obr. 6, v odpovědi na komunikaci vytvořenou web browserem 10 bude zachycovací modul 40 na straně serveru 20 přijímat datový tok HTTP z web serveru 20. Po přijetí datového toku HTTP vypočte zachycovací modul 40 na straně serveru 20 CRC pro datový tok HTTP a dočasně uloží tento datový tok HTTP. Potom podle patnáctého bloku 145, zachycovací modul 40 na straně serveru prozkoumá datový tok HTTP a určí, zda existuje serverový cache zápis odpovídající URL datového toku HTTP. Jestliže takovýto zápis existuje, uplatní se cesta „Yes“ bloku 145. Zachycovací modul 40 na straně serveru 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 20 podle šestnáctého bloku 150. Jestliže jsou CRC identické, uplatní se větev „Yes“ v bloku 150. Zachycovací modul 40 na straně serveru aktualizuje zápis SDT pro serverový cache zápis podle sedmnáctého bloku 151 a smaže dočasně uložený datový tok HTTP přijatý web serverem 20 podle osmnáctého bloku 152.
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 40 na straně serveru odstraní ze serverové cache paměti stávající data podle devatenáctého bloku 153 a potom podle dvacátého 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 20 do serverové cache, uložení aktuálního data a č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 40 na straně serveru 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 JO. Tato operace se provádí v dvacátém prvním bloku 155.
Jestliže zachycovací modul 40 na straně serveru určí, že neexistuje cache zápis odpovídající odezvě přijaté od web serveru 20, uplatní se větev „No“ bloku 145. Serverový cache zápis je vytvářen pomocí dvacátého druhého bloku 146 uložením URL odpovědi od web serveru 20, uložením CRC odpovědi od web serveru 20. 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 20 zachycovací modul 40 na straně serveru znovu porovná CRC tohoto serverového cache zápisu s CRC odpovídajícím klientově cache zápisu v bloku 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 v dvacátém třetím bloku 156. Z bloku 156 je zřejmé, že zachycovací modul 40 na straně serveru odesílá koherentní odezvu na zachycovací modul 30 na straně klienta. Zachycovací modul 40 na straně serveru transformuje 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 30 na straně klienta.
Pokud zachycovací modul 40 na straně serveru určí, že klientův cache zápis není identický se serverovým cache zápisem odpovídajícím komunikaci vytvářené web browserem 10, uplatní se větev „No“ bloku 155 a provedou se operace v dvacátém čtvrtém bloku 157. Přitom zachycovací modul 40 na straně serveru 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 30 na straně klienta.
Funkce zachycovacího modulu 30 na straně klienta po přijetí komunikace od zachycovacího modulu 40 na straně serveru je popsána s ohledem na obr. 4. Ve dvacátém pátém bloku 160, zachycovací modul 30 na straně klienta přijímá nebo vyžaduje specifický datový tok klient/server, který je přenášen přes externí komunikační spoj 35. Zachycovací modul 30 na straně klienta potom určí, jaký typ odezvy byl přijat od zachycovacího modulu 40 na straně serveru
-10CZ 287957 B6 v dvacátém šestém bloku 165. Jestliže zachycovací modul 40 na straně serveru indikuje, že klientův cache zápis je koherentní, tj. že jsou identické cache zápisy serveru a klienta, potom se provedou operace ve dvacátém sedmém bloku 166. Pomocí bloku 166 aktualizuje zachycovací modul 30 na straně klienta SDT klientova cache zápisu odpovídajícího komunikaci vytvořené web browserem 10 o rozdíly aktuálního data a času a stáří, které byly přijaty od zachycovacího modulu 40 na straně serveru. Takže bez synchronizace hodin prvního počítače 5 a druhého počítače 6 umožňuje vynález zrevidovat koherentní čas cache zápisu prvního počítače 5, přičemž v něm zohlední novější data z druhého počítače 6. Po aktualizaci SDT klientova cache zápisu odpovídajícího komunikaci vytvořené web browserem 10 odešle zachycovací modul 30 na straně klienta klientův cache zápis do web browseru 10 jako datový tok HTTP. Tato činnost se provádí dvacátým osmým blokem 174.
Jestliže však zachycovací modul 30 na straně klienta určí, že typem odpovědi jsou data nebo datový tok, uplatní se větev „stream“ bloku 165 a provedou se operace v dvacátém devátém bloku 167. Zachycovací modul 30 na straně klienta přijme datový tok HTTP a dočasně tato data uloží. Potom pomocí třicátého bloku 170 zachycovací modul 30 na straně klienta určí, zda existuje cache zápis odpovídající komunikaci vytvořené web browserem 10. Jestliže tento cache zápis existuje, uplatní se cesta „Yes“ bloku 170 a v třicátém prvním bloku 171 se regeneruje se stávající cache zápis. Zachycovací modul 30 na straně klienta potom aktualizuje cache zápis odpovídající komunikaci vytvořené web browserem 10, a to uložením CRC datového toku HTTP přijatého od zachycovacího modulu 40 na straně serveru, uložením jako SDT rozdílu mezi aktuálním datem, časem a stářím přijatými od zachycovacího modulu 40 na straně serveru a uložením datového toku HTTP. Tato operace je provedena v třicátém druhém bloku 172.
Jestliže neexistuje cache zápis odpovídající komunikaci vytvořené web browserem JO, uplatní se cesta „No“ bloku 170. Je vytvořen klientům cache zápis, a to provedením operací v třicátém třetím bloku 173. Pomocí bloku 173 vytvoří zachycovací modul 30 na straně klienta klientův cache zápis uložením URL datového toku HTTP, přijatého od zachycovacího modulu 40 na straně serveru, uložením CRC datového toku HTTP přijatého od zachycovacího modulu 40 na straně serveru a uložením datového toku HTTP. Zachycovací modul 30 na straně klienta rovněž 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 40 na straně serveru.
Avšak klientův cache zápis se vytváří při každém průchodu bloky 166, 172 nebo 173. V tom případě zachycovací modul 30 na straně klienta předá nebo poskytne klientův cache zápis web browseru 10 jako datový tok HTTP. Tyto operace se provádí v bloku 174.
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 30 na straně klienta a zachycovací modul 40 na straně serveru mohou být implementovány prostřednictvím softwaru, hardwaru nebo jejich kombinací.
Zatímco reference o vytvoření cache pamětí jsou rezidentní na konkrétním prvním 5 nebo druhém počítači 6, 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ím počítači 5, ale jsou pouze na stejné straně externího komunikačního spoje 35 jako počítač. Hardwarová cache paměť může být implementována externě na první počítač 5, kde slouží jako klientova cache paměť, a může být připojena k prvnímu počítači 5 vysokorychlostní komunikací a i přesto, pokud je cache na stejné straně komunikačního spoje jako první počítač 5, bude dosaženo Výhod podle vynálezu.
V alternativním zapojení podle vynálezu zachycovací modul 40 na straně serveru neuchovává kopii datového toku HTTP přijatého od web serveru 20, ale pouze zápis adresáře pro komunikaci.
-11CZ 287957 B6
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 20, 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 30 straně klienta odešle požadavek zachycovacímu modulu 40 na straně serveru na komunikaci odpovídající URL, pro kterou udržuje zachycovací modul 40 na straně serveru CRC a SDT, tak zachycovací modul 40 na straně serveru zkontroluje CRC přijatý od zachycovacího modulu 30 na straně klienta, aby určil, zda odpovídá CRC nejnovějšímu datovému toku HTTP pro specifikovaný URL. Pokud odpovídá, potom je odeslána koherentní odpověď na zachycovací modul 30 na straně klienta. Neodpovídá-li, odešle zachycovací modul 40 na straně serveru datový tok HTTP přijatý od zachycovacího modulu 30 na straně klienta na web server 20 a vrátí na zachycovací modul 30 na straně klienta odpověď přijatou od web serveru 20.
Obr. 7, 8, 9 a 10 znázorňují operace prováděné zachycovacím modulem 30 na straně klienta a zachycovacím modulem 40 na straně serveru v jiném provedení podle vynálezu, které využívá stanovení rozdílu, tj. diferencování, k tomu, aby se snížilo množství dat přenášených přes externí komunikační spoj 35. Jak je zřejmé z obr. 7 třicátý čtvrtý blok 200 zajišťuje potvrzení zachycovacího modulu 30 na straně klienta na požadavek HTTP od web browseru 10. Třicátý pátý blok 205 zajišťuje, že zachycovací modul 30 na straně klienta prozkoumá zachycený požadavek HTTP od web browseru 10, aby určil, zdaje tento požadavek Common Gateway Interface (CGI). V případě, že tento požadavek je Common Gateway Interface, postoupí ho zachycovací modul 30 na straně klienta zachycovacímu modulu 40 na straně serveru, jak je znázorněno na obr. 3 až 6 a což probíhá ve třicátém šestém bloku 206 na obr. 7.
Pokud však komunikace vytvořená web browserem 10 odpovídá požadavku CGI, uplatní se větev „Yes“ bloku 205. A pomocí třicátého sedmého bloku 210, zachycovací modul 30 na straně klienta 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 10 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 10 s URL uloženými v klientově bázové cache paměti.
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ě 30 klienta, 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. 7, 8, 8 a 10. Jestliže existuje klientův bázový cache zápis odpovídající URL pro komunikaci vytvořenou web browserem 10, potom CRC, který má být odeslán na zachycovací modul 40 na straně serveru přes externí komunikační spoj 35, je nastaven v třicátém osmém bloku 211 stejně jako CRC pro klientův bázový cache zápis. Jestliže takový klientův bázový cache zápis existuje, potom se uplatní větev „No“ bloku 210 a CRC pro požadavek, který má být odeslán přes externí komunikační spoj 35 na zachycovací modul 40 na straně server, je nulován. Tato operace je prováděna v třicátém devátém bloku 212 na obr. 7.
Čtyřicátý blok 213 zajišťuje operace odesílání požadavku CGI na zachycovací modul 40 na straně serveru přes externí komunikační spoj 35. Pomocí bloku 213 zachycovací modul 30 na straně klienta 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 30 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 35, který má být přijat zachycovacím modulem 40 straně serveru.
Č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. 9. Potvrzení požadavku CGI zachycovacím modulem 40 na straně serveru je provedeno ve čtyřicátém prvním bloku 220. Když zachycovací modul 40 na straně serveru přijme požadavek CGI, uloží kopii hodnoty CRC a požadavek HTTP. Pomocí čtyřicátého
-12CZ 287957 B6 druhého bloku 221 zachycovací modul 40 na straně serveru předá požadavek HTTP na web server 20.
Když zachycovací modul 40 na straně serveru přijme odpověď na požadavek HTTP odpovídající komunikaci vytvořené web browserem 10 nebo požadavek CGI, bude tato odpověď zachycovacím modulem 40 na straně serveru přijata ve čtyřicátém druhém bloku 230 jako datový tok HTTP. Pomocí bloku 230, zachycovací modul 40 na straně serveru uloží datový tok HTTP a vypočte hodnotu CRC pro datový tok HTTP přijatý od web serveru 20. Zachycovací modul 40 na straně serveru rovněž vynuluje rozdílovou (diferenční) hodnotu, a to na inicializační rozdílová io data. Zachycovací modul 40 na straně serveru potom pomocí čtyřicátého třetího bloku 235 stanoví, zda odpověď přijatá jako komunikace vytvořená web serverem 20 je odpověď na požadavek CGI. Jestliže je odpověď ne, uplatní se cesta „No“ bloku 235 na obr. 10 a provedou se operace čtyřicátého čtvrtého bloku 236 pro odeslání datového toku HTTP na zachycovací modul 30 na straně klienta. Operace na bloku 236 může zahrnovat operace zachycení popsané na obr. 3 15 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 30 na straně serveru pomocí čtyřicátého pátého bloku 240 dále stanoví, jestli existuje serverový bázový cache zápis pro odpověď CGI.
Serverový bázový cache zápis může být vytvořen, když zachycovací modul 40 na straně serveru 20 poprvé přijme odpověď na požadavek CGI. V tomto případě bude výsledkem podmínky provedení cesty „No“ blokem 240. Zachycovací modul 40 na straně serveru 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 provedena ve čtyřicátém šestém bloku 241. Má-li být dosaženo kompatibilnosti s koherentním 25 cache systémem popsaným obr. 3 až 6, může serverový bázový cache zápis také obsahovat SDT.
Podobně, jak je zde použito, označ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.
Jestliže existuje serverový bázový cache zápis odpovídající požadavku CGI, uplatní se cesta 30 „Yes“ bloku 240. Zachycovací modul 40 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 provedeny ve čtyřicátém sedmém bloku 245 na obr. 10. V případě, že jsou CRC shodné, stanoví zachycovací modul 40 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ý 35 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 provedeno ve čtyřicátém osmém bloku 250.
Jestliže jsou tyto dva zápisy shodné, potom zachycovací modul 40 na straně serveru nemusí 40 odesílat bázový cache zápis na zachycovací modul 30 na straně klienta a tedy pomocí čtyřicátého devátého bloku 251 je tok HHTP dat, která mají být přenesena na zachycovací modul 30 na straně klienta, vynulován. Zachycovací modul 40 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žadav45 ku CGI, vynulovaný datový tok HTTP dat a vynulovaná rozdílová (diferenční) data s cílem indikovat, že odpověď na požadavek CGI byla identická klientovu bázovému cache zápisu, což je provedeno padesátým blokem 252.
Jestliže je CRC pro serverový bázový cache zápis odpovídající požadavku CGI odlišný od CRC 50 pro odpověď přijatou od web server 20 v odpovědi na požadavek CGI vytvořený web browserem 10, potom se uplatní větev „No“ bloku 245. Zachycovací modul 40 na straně serveru potom provede operace pomocí padesátého prvního blokem 246. Zachycovací modul 40 na straně serveru porovná zachycenou odpověď 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é
-13CZ 287957 B6 odpovědi CGI se serverovou bázovou formou CGI poskytne rozdílová (diferenční) data CGI, která odpovídají rozdílu mezi zachycenou odpovědí CGI a serverovou bázovou formou CGI.
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 Binaiy 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 40 na straně serveru potom stanoví, jak je znázorněno v padesátém druhém bloku 247, zda serverová bázová forma CGI vyžaduje aktualizaci. 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. 3 až 6, 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.
Jestliže vytvoření nového bázového cache zápisu není zapotřebí, uplatní se větev „No“ bloku 247 a zachycovací modul 40 na straně serveru 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 10. 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 ve čtyřicátém devátém bloku 251. Zachycovací modul 40 na straně serveru potom odešle rozdílovou odpověď na zachycovací modul 30 na straně klienta, a to odesláním CRC serverového bázového cache zápisu odpovídajícího požadavku CGI (tj. 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ých (diferenčních) dat stanovených v padesátém prvním bloku 246. Tyto operace jsou se opět provádí v padesátém bloku 252 na obr. 10.
Jestliže zachycovací modul 40 na straně serveru 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 30 na straně klienta. Pří provedení této operace zachycovací modul 40 na straně serveru nastaví data datového toku HTTP pro odeslání na zachycovací modul 30 na straně klienta shodně se serverovou bázovou formou CGI. Tato operace se provádí v padesátém třetím bloku 253. Zachycovací modul 40 na straně serveru potom konvertuje datový tok HTTP přijatý od web serveru 10 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 20, což se provádí v padesátém bloku 252. Tato informace je pak předána přes externí komunikační spoj 35 na zachycovací modul 30 na straně klienta.
Zpět k padesátému druhému bloku 247. Jestliže je zapotřebí obnova, uplatní se cesta „Yes“ bloku 247. Jak je znázorněno padesátým čtvrtým blokem 248, zachycovací modul 40 na serverové straně aktualizuje serverový bázový cache zápis odpovídající komunikaci vytvořené browserem 10 o datový tok HTTP přijatý od web serveru 20. Aktualizován je rovněž CRC odpovědi a rozdílová (diferenční) data CGI jsou vynulována. Zachycovací modul 40 na straně serveru pak porovná CRC nového cache zápisu serverové strany, jak je znázorněno ve čtyřicátém osmém bloku 250, a dokončí se přenos výše popsaným způsobem.
-14CZ 287957 B6
Operace zachycovacího modulu 40 na straně klienta o přijetí odpovědi od zachycovacího modulu na straně serveru jsou znázorněny na obr. 8. Přijetí odpovědi od zachycovacího modulu 40 na straně serveru zachycovacím modulem 30 na straně klienta se provádí v padesátém pátém bloku 260. Jak je zřejmé z padesátého šestého bloku 265, zachycovací modul 30 na straně klienta stanoví, zda odpověď je odpovědí na požadavek CGI. Pokud to není odpověď na požadavek CGI, potom zachycovací modul 30 na straně klienta provede operace podle padesátého sedmého bloku 267, které mohou zahrnovat operace cache znázorněné obr. 3 až 6. Jestliže však odpověď je odpovědí na požadavek CGI, uplatní se větev „Yes“ bloku 265. Zachycovací modul 30 na straně klienta uloží 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 35. Tyto operace se provádí v padesátém osmém bloku 266 na obr. 8.
Zachycovací modul 30 na straně klienta potom 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í se zaznamenává v padesátém devátém 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á forma CGI existuje, uplatní se větev „Yes“ bloku 270. Zachycovací modul 30 na straně klienta potom porovná CRC přijatý přes externí komunikační spoj s CRC klientovy bázové formy CGI, což se provádí v šedesátém 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 10 za data datového toku HTTP přijatá přes externí komunikační spoj 35 od zachycovacího modulu 40 na straně serveru. Klientův bázový cache zápis je rovněž aktualizován s ohledem na CRC pro datový tok HTTP. Tyto operace se provádí v šedesátém prvním bloku 276 na obr. 8.
Jestliže CRC přijatý přes externí komunikační spoj 35 je stejný jako CRC bázové formy CGI, potom serverová bázová forma CGI na zachycovacím modulu 40 na straně serveru je shodná s klientovou bázovou formou CGI na zachycovacím modulu na straně klienta, a uplatní se větev „Yes“ šedesátého bloku 275.
Jsou-li bázové formy stejné nebo klient byl obnoven, provedou se operace uvedené v šedesátém druhém bloku 277. a to zachycovacím modulem 30 na straně klienta. Blok 277 odráží, jak zachycovací modul 30 na straně klienta rekonstruuje datový tok HTTP odpovídající komunikaci od web serveru 20 ze specifického datového toku klient/server přijatého přes externí komunikační spoj 35, a to sloučením klientově bázové formy CGI s rozdílový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é ze sto šedesátého šestého bloku 278, bude tato odpověď poskytnuta web browserem 10 jako datový tok HTTP.
Pokud u klienta neexistuje žádná bázová forma CGI odpovídající URL požadavku CGI, potom, se uplatní větev „No“ bloku 270 na obr. 8. Jak je zřejmé z bloku 271, zachycovací modul 30 na straně klienta 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 35 od zachycovacího modulu 40 na straně serveru 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 30 na straně klienta může pak provést operace podle šedesátého druhého bloku 277, a to rekonstruováním datového toku HTTP pomocí sloučení nebo vnoření klientovy bázové formy CGI a rozdílových dat CGI, které mohly být vynulovány.
Stávající techniky vytváření diferencování mohou být uplatněny rovněž u dat jiných než CGI. V takovém případě by zachycovací modul 40 na straně serveru potřeboval uchovávat násobné generace serverových bázových cache zápisů, které by mu umožnily, aby zachycovací moduly 30 na straně klienta od připojených web browserů 10 na web server 20 mohly mít různé bázové formy. Zachycovací modul 40 na straně serveru by potom mohl porovnávat CRC přijatý od
-15CZ 287957 B6 zachycovacího modulu 30 na straně klienta sCRC jednotlivých předchozích generací serverových bázových forem až do doby, kdy by byla nalezena shoda. Zachycovací modul 40 na straně serveru může potom volitelně obnovit zachycovací modul 30 na straně klienta nebo prostě předat diferenční data na zachycovací modul 30 na straně klienta. 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.
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 přednostní implementace vypočítává zachycovací modul 40 na straně serveru rozdíl mezi serverovou bázovou formou odpovídající požadavku a datovým tokem HTTP odpovědi od web serveru 20. Tato diferenční data jsou pak uložena zachycovacím modulem 40 na straně serveru. Serverová bázová forma je potom aktualizována výměnou bázové formy za novou odpověď od web serveru 20. 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 dat a jednotlivých CRC jsou pak selektivně přenášeny na zachycovací modul 30 na straně klienta, a to na základě CRC klientovy bázové formy odpovídající požadavku jinému než CGI.
Příklad metody diferencování u jiných požadavků než CGI - jestliže zachycovací modul 40 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 30 na straně klienta odpovídající URL nonCGI požadavku. Když by zachycovací modul 40 na straně serveru přijal odpověď od web serveru 20. vypočítal by CRC odpovědi. Zachycovací modul 40 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 40 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á data mezi odpovědí a starou bázovou formou. Zachycovací modul 40 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 30 na straně klienta.
Jestliže je nalezena shoda, jsou odeslána rozdílová data odpovídající shodnému CRC a všechna následná rozdílová data včetně aktuálních rozdílových dat na zachycovací modul 30 na straně klienta. Zachycovací modul 30 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 tri generace stará, budou odeslány tři sady rozdílových dat na zachycovací modul 30 na straně klienta a konstrukce odpovědi bude provedena uplatněním těchto tří následných rozdílový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 tak 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 40 na straně serveru vlastní odpověď. V každém případě by po rekonstrukci nebo po přijetí odpovědi zachycovací modul 30 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 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.
Uplatněním dalšího znaku vynálezu může nastat další úspora komunikace, a to na základě omezení redundance nastavového komunikačního protokolu, jako např. HTTP. U tohoto protoko
-16CZ 287957 B6 lu 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.
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 5. Druhý počítač 6 tuto počítačově specifickou informaci uloží. První počítač 5 potom odstraní počítačově specifickou informaci z následných komunikací vytvářených web browserem 10 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 W, a to sloučení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.
Kromě odstranění počítačově specifických informací z komunikací vytvářených web browserem 10 je možné tyto počítačově specifické informace odstranit i z komunikací vytvářených web serverem 20. V tomto případě druhý počítač 6, viz obr. 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 20 a odešle zbývající část komunikace vytvořená web serverem 20 na externí komunikační spoj 35. První počítač tuto komunikaci 5 přijme přes externí komunikační spoj 35 a rekonstruuje původní komunikaci vytvořenou web serverem 20, a to sloučením informace serverového záhlaví a specifického datového toku klient/server přijatého přes externí komunikační spoj 35 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 30 na straně klienta či zachycovacím modulem 40 na straně serveru, 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.
V provedení podle vynálezu komunikuje web browser 10 se zachycovacím modulem 30 na straně klienta s využitím protokolu nazvaného Transmission Control Protocol/Intemet Protocol (TCP/IP). TCP může být rovněž použit pro komunikaci mezi zachycovacím modulem 30 na straně klienta a zachycovacím modulem 40 na straně serveru přes externí komunikační spoj 35. Konečně, TCP může být použit pro komunikaci mezi zachycovacím modulem 40 na straně serveru 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 35. Ke zvýšení výkonnosti externího komunikačního spoje 35 vytváří jedno z provedení vynálezu to, co se zde označuje pod pojmem „virtuální sokety“, které se využívají při spojení mezi web browserem 10 a zachycovacím modulem 30 na straně klienta a mezi zachycovacím modulem 40 na straně serveru a web serverem 20. Činnost těchto virtuálních soketů bude nyní popsána s odvoláním na obr. 11 až 17.
Obr. 11 je blokové schéma jedné zmožných implementací vynálezu využívající koncepci virtuálních soketů. Jak je zřejmé z obr. 11, první počítač 5 a druhý počítač 6 jsou 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 30 na straně klienta. Na obr. 11 je znázorněn první reálný soket 65a na web browseru 10 a jemu odpovídající soket 65b na zachycovacím modulu 30 na straně klienta. Tento první reálný soket 65a je soket TCP, přes který web browser 10 vyžaduje další spojení od zachycovacího modulu 30 na straně klienta.
Když web browser 10 vyžaduje nové spojení TCP, objeví se komunikace přes reálný soket 65a. která je přijata na reálný odpovídající soket 65b. Zachycovací modul 30 na straně klienta vytvoří potom další reálný soket pro komunikaci s web browserem 10. Jak je zřejmé z obr. 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 30 na straně klienta. Tyto reálné sokety 60a až 64a jsou
-17CZ 287957 B6 znázorněny na web browseru 10 a odpovídající sokety 60b až 64b na zachycovacím modulu 30 na straně klienta. Tyto reálné sokety tvoří prostředky, přes které web browser 10 komunikuje se zachycovacím modulem 30 na straně klienta. Po vytvoření reálných soketu 60a až 64a a odpovídajících soketů 60b až 64b jsou komunikace přes tyto sokety multiplexovány na reálný soket 36a, který poskytuje přístup zachycovacímu modulu 30 na straně klienta 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 další reálný soket 37a počítače 5 na další reálný odpovídající soket 37b počítače 6. Po potvrzení požadavku o spojení dalším reálným odpovídající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 30 na straně klienta a zachycovacím modulem 40 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čem 6 přijímány komunikace přes externí komunikační spoj 35, jsou přijmuty na reálný soket 36b, Zachycovací modul 40 na straně serveru potom demultiplexuje tyto komunikace na soketu 36b a poskytne je příslušnému soketu za účelem přenosu na web server 20. Tak může být například uskutečněna komunikace přes soket 60a na soket 60b za účelem požadavku informace od specifického URL, která by byla multiplexovaná na soketu 36a. přijata soketem 36b. demultiplexována zachycovacím modulem 40 na straně serveru a přenesena z dalšího prvního reálného soketu 60c na další první odpovídající soket 60d na web serveru 20. Podobně jsou i komunikace vyskytující se přes soket 61a přijaty soketem 61b, multiplexovány zachycovacím modulem na straně klienta 30 a odeslány ze soketu 36a na soket 36b. kde zachycovací modul 40 na straně serveru tyto komunikace demultiplexuje a odešle přes soket 61c na soket 61d. 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 40 na straně serveru a web serverem 20, tj. soket 60c a soket 60d, soket 61c a 61d, soket 62c a soket 62d. soket 63c a soket 63d a soket 64c a 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 40 na straně serveru a přes externí komunikační spoj 35 na zachycovací modul 30 na straně klienta, a potom dále na web browser 10. Potom například by odpověď vytvořená web serverem 20 byla odeslána přes soket 60d na soket 60c a multiplexovaná zachycovacím modulem 40 na straně serveru na soket 36b, která by byla odeslána přes externí komunikační spoj 35 na soket 36a. Zachycovací modul 30 na straně klienta 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í mezi 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.
Obr. 12 představuje blokové schéma implementace virtuálního soketového systému v zachycovacím modulu 30 na straně klienta a zachycovacím modulu 40 na straně serveru. Externě k těmto modulům 30, 40 jsou reálné sokety mezi zachycovacím modulem 30 na straně klienta a web browserem 10 a zachycovacím modulem 40 na straně serveru a web serverem 20. které fungují jako normální TCP/IP sokety. To znamená, že použití virtuálních soketů je transparentní vůči web browseru 10 i web serveru 20.
Konkrétní začlenění stávajícího vynálezu bude popsáno s ohledem na blokové schéma uvedené na obr. 12 a vývojové diagramy na obr. 13 až 17. Obr. 13 je vývojový diagram soketového manažera znázorněného šedesátým třetím blokem 68 na obr. 12. S odvoláním na obr. 13, šedesátý čtvrtý blok 300 odráží vytváření manažera reálných soketů v bloku 68 zachycovacího modulu 30 na straně klienta. Poté, co byl vytvořen v bloku 68 manažer reálných soketů, vytvoří se první reálný soket znázorněný na obr. 12 jako první odpovídající soket 65b. Vytvoření tohoto prvního reálného soketu je reflektováno šedesátým pátým blokem 301 na obr. 13. Po vytvoření prvního odpovídajícího soketu 65b počká šedesátý třetí blok 68 manažera reálných soketů
-18CZ 287957 B6 rezidentní na zachycovacím modulu 30 na straně klienta, v tomto materiálu rovněž označovaný jako klientův manažer soketů, na událost na prvním odpovídajícím soketu 65b, jak je znázorněno v šedesátém šestém bloku 302 na obr. 13. Jakmile je přijata událost na prvním odpovídajícím soketu 65b, manažer reálných soketů 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 šedesátém sedmém bloku 305.
V případě vytvoření reálného soketu v odpovědi na požadavek o komunikaci přijatý na první odpovídající soket 65b, přidá, jak je naznačeno v cestě od bloku 305 do šedesátého osmého bloku 306 na obr. 13, manažer reálných soketů podle šedesátého třetího bloku 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 šedesátém devátém bloku 307. V případě zachycovacího modulu 30 na straně klienta bude manažer reálných soketů indikovat aplikační funkci, která zajistí provedení funkcí zachycovacího modulu 30 na straně klienta pro vytvořený virtuální soket, jak je znázorněno v sedmdesátém bloku 308 na obr. 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. 13, že manažer soketu klienta v odpovědi na požadavek o první spojení přijatý prvním odpovídajícím soketem 65b vytvoří reálný šestý odpovídající 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 61b, 62b, 63b nebo 64b a simplexní virtuální sokety 71, 72, 73 nebo 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 aplikace 81. 82, 83 nebo 84 na obr. 12.
Činnost zachycovací funkce na straně klienta bude nyní popsána s odvoláním na šestý odpovídající soket 60b, simplexní virtuální soket 70 a zachycovací funkci na straně klienta danou aplikací 80, znázorněnou na obr. 12. Sedmdesátý první blok 325 na obr. 14 odráží vytvoření zachycovací funkce na straně klienta dané aplikací 80. Po vytvoření čeká zachycovací funkce na straně klienta na událost na simplexním virtuálním soketu 70, jak je naznačeno v sedmdesátém druhém bloku 326. Tato operace čekání se vykonává prováděním virtuální funkce výběru, která je popsána obr. 16—4. Po potvrzení události je tato událost prozkoumána, jak je naznačeno v sedmdesátém třetím bloku 330. Jestliže událost je zavření virtuálního soketu, potom zachycovací funkce na straně klienta smaže simplexní virtuální poket 70, jak je naznačeno v sedmdesátém čtvrtém bloku 349, a ukončí se, jak je naznačeno v sedmdesátém pátém bloku 350 na obr. 14.
Jestliže událost je příjem dat, potom se uskuteční cesta od bloku 330 k sedmdesátému šestému bloku 331 a zachycovací funkce na straně klienta přijme komunikaci vytvořenou browserem 10 od simplexního virtuálního soketu 70, a to uskutečněním virtuální operace příjmu popsanou v tomto materiálu s odvoláním na obr. 16-3. Zachycovací funkce na straně klienta potom provede výše popsanou funkci zachycovacího modulu na straně klienta, viz např. obr. 3 a 7, která je znázorněna v sedmdesátém sedmém bloku 332. Zachycovací funkce na straně klienta potom vytvoří multiplexní virtuální soket 90, který je spojen s reálným soketem 36a zachycovacího modulu 30 na straně klienta. Reálný soket 36a je spojen s reálným odpovídajícím soketem 36b zachycovacího modulu 40 na straně serveru. Vytvoření multiplexního virtuálního soketu 90 je znázorněno v sedmdesátém osmém bloku 333 na obr. 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. 16-1. Sedmdesátý devátý blok 334 znázorňuje operaci odeslání informace přijaté od web browseru přes reálný šestý odpovídající soket 60b a simplexní virtuální soket 70 po provedení zachycovací funkce na straně klienta pro komunikaci vytvořenou web browserem 10. 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. 16-2. Zachycovací funkce na straně klienta po zařazení do fronty
-19CZ 287957 B6 požadavku na multiplexní virtuální soket 90 zarovná data ve frontě na multiplexním virtuálním soketu 90, jak je znázorněno v osmdesátém bloku 335 na obr. 14, a potom počká na událost na multiplexním virtuálním soketu, jak je naznačeno osmdesátým prvním blokem 336. Funkce virtuálního zarovnání se uskutečňuje provedením virtuální funkce zarovnání popsané v tomto materiálu vzhledem k obr. 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. 16-4. V tomto okamžiku zachytil zachycovací modul 30 na straně klienta komunikaci vytvořenou web browserem 10 a tuto komunikaci přenesl na zachycovací modul 40 na straně serveru přes externí komunikační spoj 35.
Zpět kobr. 13, kteiý znázorňuje vývojový diagram funkce manažeru soketu buď na zachycovacím modulu 40 na straně serveru, nebo na zachycovacím modulu 30 na straně klienta. Manažer reálných soketů v zachycovacích modulu 40 na straně serveru nebo manažer serverových soketů, znázorněný jako osmdesátý druhý blok 69 na obr. 12, provádí stejnou funkci jako manažer klientových soketů, znázorněný jako šedesátý třetí blok 68 vytváření prvního reálného soketu, znázorněného v šedesátém čtvrtém bloku 301, zachycovací modul 40 na straně serveru vytvoří „dobře známý port“ pro příjem požadavků na sokety od zachycovacího modulu 30 na straně klienta spojeného se zachycovacím modulem 40 na straně serveru. Vyskytne-li se reálná událost na reálném odpovídajícím soketu 36b u zachycovacího modulu 40 na straně serveru, 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 šedesátého šestého bloku 305 k osmdesátému třetímu bloku 320, znázorněná na obr. 13. Data přijatá na reálný odpovídající soket 36b jsou prozkoumána a v tomto konkrétním případě, protože se jedná o data vytvořená web browserem 10 odeslaná zachycovacím modulem 30 na straně klienta, musí být vytvořen nový virtuální soket v zachycovacím modulu 40 na straně serveru. To znamená, že se uplatní cesta od bloku 320 k bloku 321 na obr. 13. Manažer serverových soketů potom provede operace naznačené v blocích 321. 322, 323 a 324 na obr. 13. Manažer serverových soketů vytvoří další multiplexní virtuální soket 95, jak je naznačeno v osmdesátém čtvrtém bloku 321, zruší časovač aktivity multiplexního soketu, jak je naznačeno v osmdesátém pátém bloku 322, a iniciuje aplikaci zachycovací funkce na straně serveru, jak je naznačeno v bloku 322 na obr. 13 a znázorněno jako osmdesátý osmý blok 85 na obr. 12. Data přijatá na reálný soket jsou potom zařazena do fronty na další multiplexní virtuální soket 95 a je signalizována virtuální událost.
Vytvoření zachycovací funkce na straně serveru, jak je znázorněno v osmdesátém šestém bloku 323. ie označeno jako osmdesátý devátý blok 360 na obr. 15. Po vytvoření zachycovací funkce na straně serveru funkce přijme data z dalšího multiplexního virtuálního soketu 95, která byla odeslána od zachycovacího modulu 30 na straně klienta a odpovídají komunikaci vytvořené web browserem 10. Tato operace je označena jako devadesátý blok 361 na obr. 15. Po přijetí dat od zachycovacího modulu 30 na straně klienta zpracuje zachycovací funkce na straně serveru data výše popsaným způsobem pro zachycovací modul 40 na straně serveru. Provádění funkcí na straně serveru je označeno v devadesátém prvním bloku 362 (viz příklad na obr. 5 a 9). Po zpracování informací vytvoří zachycovací funkce na straně serveru pátý 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. 16-1. Tato operace je naznačena devadesátým druhým blokem 363 na obr. 15. Zachycovací funkce na straně serveru potom odešle komunikaci vytvořenou web browserem 10 na pátý simplexní virtuální soket 75. jak je naznačeno v devadesátém třetím bloku 364. uskutečněním virtuálního odeslání, tj. operace, která je v tomto materiálu popsána s odvoláním na obr. 16-2. Zachycovací funkce na straně serveru potom provede virtuální zarovnání dat ve frontě na dalším simplexním virtuálním soketu 75 pro další reálný soket 60c a počká na událost na pátém simplexním virtuálním soketu 75. Operace virtuálního zarovnání je v tomto materiálu popsána vzhledem k obr. 17-1. Operace odeslání a zarovnání jsou zobrazeny v blocích 364 a 365 na obr. 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. 16-4. Jestliže zachycovací funkce na straně serveru vytvořila pátý simplexní virtuální soket 75. byl vytvořen rovněž odpovídající další reálný soket 60c. Odesláním komunikace vytvořené web browserem 10 na další simplexní virtuální soket 75 přenese
-20CZ 287957 B6 zachycovací funkce na straně serveru komunikaci vytvořenou web browserem 10 na web server 20.
Když zachycovací modul 40 na straně serveru přijme odpověď od web serveru 20 na další reálný soket 60c, dojde k reálné události a manažer serverových soketů ukončí šedesátý šestý blok 302 na obr. 13 a prozkoumá událost, která nastala na dalším reálném soketu 60c, jak je naznačeno šedesátým sedmým blokem 305. 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. 13. Data přijatá na další reálný soket 60c jsou zařazena do fronty na pátém 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 devadesátý pátý blok 366 na obr. 15 a prozkoumá událost, jak je naznačeno devadesátým šestým blokem 370. Jestliže událostí je zavření soketu, nastane chybová podmínka a je jako odpověď zkonstruováno chybové hlášení, jak je naznačeno v devadesátém sedmém bloku 375 na obr. 15. Jestliže však je událostí příjem dat, uplatní se cesta od bloku 370 k devadesátému osmému bloku 371 a zachycovací funkce na straně serveru provede virtuální příjem, jak je v tomto materiálu popisováno s odvoláním na obr. 16-3, aby tak získala odpověď serveru z pátého simplexního virtuálního soketu 75, jak je zřejmé z bloku 371· Zachycovací funkce na straně serveru potom provede virtuální zavření dalšího symplexního virtuálního soketu 75, jak je naznačeno devadesátým devátým blokem 372 a v tomto materiálu popisováno s odvoláním na obr. 17-2, a zpracuje odpověď, jak je výše popisováno, pro zachycovací modul 40 na straně serveru, a jak je znázorněno ve stém bloku 373 (viz například obr. 6 a 10).
Je-li ukončovací cesta bloku 370 na obr. 15 chybovou cestou k devadesátému sedmému bloku 375 nebo datovou cestou k bloku 371, je ve sto prvním bloku 374 smazán pátý simplexní virtuální soket 75. Zachycovací funkce na straně serveru potom provede operaci virtuálního odeslání na další multiplexní virtuální soket 95 s cílem odeslat komunikaci vytvořenou web serverem na zachycovací modul 30 na straně klienta, jak je znázorněno ve sto třetím bloku 376. Zachycovací funkce na straně serveru potom uskuteční operaci virtuálního zarovnání dat ve frontě v dalším multiplexním virtuálním soketu 95. Tyto operace jsou znázorněny ve sto čtvrtém bloku 377. Zachycovací funkce na straně serveru potom provede operaci virtuálního zavření, při které zavře další multiplexní virtuální soket 95, jak je znázorněno ve sto pátém bloku 378 na obr. 155. Zachycovací funkce na straně serveru nakonec smaže multiplexní virtuální soket a ukončí se, jak je znázorněno bloky 379 a 380.
Zachycovací funkce na straně serveru provede operace virtuálního odeslání a zarovnání u dalšího 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 soketů 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. 13 a data budou zařazena do fronty na multiplexní virtuální soket 90. Když tedy reálný soket 36a přijme odpověď web serveru 20 od reálného odpovídajícího soketu 36b 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 osmdesátým sedmým blokem 324 na obr. 13 a blokem 336 na obr. 14, ukončena a zachycovací funkce na straně klienta by měla tuto událost prozkoumat, jak je znázorněno ve sto osmém bloku 340 na obr. 14.
Jestliže událost je odezva na uzavřený soket, uplatní se cesta od bloku 340 ke stodevátému bloku 345 na obr. 14 a zachycovací funkce na straně klienta vytvoří odpověď chybového hlášení a předá ji sto desátému bloku 344 na obr. 14. Pokud událost jsou přijatá data, což je právě uváděný příklad, uplatní se cesta od bloku 340 ke sto jedenáctému bloku 341 na obr. 14 a zachycovací funkce na straně klienta provede operaci virtuálního příjmu k přijetí odpovědi z multiplexního virtuálního soketu 90. Tato operace příjmu je znázorněna blokem 341 na obr. 14. Po přijetí dat z multiplexního virtuálního soketu 90 provede zachycovací funkce na straně klienta operaci virtuálního zavření a zavře multiplexní virtuální soket 90, jak je naznačeno sto dvanáctým blokem 342. Zachycovací funkce na straně klienta potom zpracuje odpověď výše popsaným
-21CZ 287957 B6 způsobem pro zachycovací modul na straně klienta, jak je znázorněno ve sto třináctém bloku 343 (viz např. obr. 4 a 8).
Operace sto desátého bloku 344 jsou potom prováděny při použití kterékoli cesty k ukončení bloku 340. Zachycovací funkce na straně klienta 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ěď na browser 10 přes simplexní virtuální soket 70, jak je naznačeno sto patnáctým blokem 346. Po dokončení operace virtuálního odeslání provede zachycovací funkce na straně klienta operaci virtuálního zarovnání tak, aby zarovnala data ve frontě simplexního virtuálního soketu, jak je znázorněno sto šestnáctým blokem 347 pro reálný šestý odpovídající 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 sto sedmnáctým 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. 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 multiplexní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 30 na straně klienta, respektive zachycovacího modulu 40 na straně serveru. Obdobně může zachycovací modul 30 na straně klienta a zachycovací modul 40 na straně serveru, podle vynálezu, vytvořit TCP/IP spojení mezi zachycovacím modulem 30 na straně klienta a zachycovacím modulem 40 na straně serveru a potom provádět multiplex na pluralitě spojení TCP/IP komunikací vytvořených web browserem 10 nebo web serverem 20, a to při udržení spojení TCP/IP.
Zbývající funkce manažera klientových soketů a manažera serverových soketů lze nejlépe pochopit s použitím obr. 16-1 až 16-4 a obr. 17-1 a 17-2, které popisují operace prováděné zachycovacím modulem 30 na straně klienta a zachycovacím modulem 40 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. 14 a 15. Když se uskutečňuje operace virtuálního vytváření, jak je známo z bloku 333 na obr. 14 a bloku 363 na obr. 15, začíná se od sto osmnáctého bloku 400 na obr. 16-1. Manažer soketů potom určí, zda je vyžadován reálný soket, jak je znázorněno ve sto devatenáctém bloku
405. Jestliže již reálný soket existuje, anebo při vytváření multiplexního virtuálního soketu, 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é ze sto dvacátého bloku 409. Jestliže je však reálný soket zapotřebí, použije se potom cesta „Yes“ bloku 405. Jak je zřejmé ze sto dvacátého prvního bloku
406, vytvoří se reálný soket. Reálný soket je potom přidán do seznamu událostí, jak je naznačeno ve sto dvacátém druhém bloku 408, pro potřeby monitorování, jak je reflektováno v bloku 302 na obr. 13. Po vytvoření reálného soketu a ustanovení spojení je virtuální soket připojen k reálnému soketu, jak je uvedeno v bloku 409. a dokončí se operace vytvoření, jak je zřejmé ze sto dvacátého třetího bloku 410.
Při provádění operace virtuálního odeslání naznačené v blocích 334 a 346 na obr. 14 nebo blocích 364 a 376 na obr. 15 začínají operace od sto dvacátého čtvrtého bloku 420 na obr. 16-2. Do fronty virtuálního soketu jsou přidána data, jak je zřejmé ze sto dvacátého pátého bloku 427, a potom se ukončí operace odesílání, jak je vidět ze sto dvacátého šestého bloku 428.
Operace virtuálního příjmu znázorněné v blocích 331 a 341 na obr. 14 a blocích 361 a 371 na obr. 15 jsou uskutečňovány prováděním operací začínajících od sto dvacátého sedmého bloku 430 na obr. 16-3. Jak je vidět ve sto dvacátém osmém 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 ze sto dvacátého devátého bloku 436. Jestliže ve virtuální soketové frontě nejsou žádná data, avšak soket není označen pro zavření, uplatní se
-22CZ 287957 B6 cesta „No“ rozhodovacího sto třicátého bloku 440 a nic se nevrátí, jak je zřejmé ze sto třicátého prvního 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 je označen jako zavřený, jak je zřejmé ze sto třicátého druhého bloku 442, a na operaci vyžadující příjem je vrácena informace, že je soket zavřený, jak je zřejmé ze sto třicátého třetího bloku 443.
Operace virtuálního výběru vykonávaná v blocích 326 a 336 na obr. 14 a v bloku 366 na obr. 15 se uskutečňuje provedením operací, které začínají sto třicátým čtvrtým blokem 445 na obr. 16-4. Jak je zřejmé ze sto třicátého pátého 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 ve sto třicátém šestém bloku 447, a po přijetí takové události se ukončí, jak je znázorněno ve sto třicátém sedmém 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.
Operace virtuálního zarovnání, jak je zřejmé z bloků 335 a 347 na obr. 14 a bloků 365 a 377 na obr. 15 se uskutečňuje provedením operací, které začínají sto třicátým osmým blokem 450 na obr. 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 sto třicátém devátém bloku 455. 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 455. 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 ze sto čtyřicátého bloku 460. 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 ve sto čtyřicátém prvním 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 ve sto čtyřicátém druhém bloku 462. V případě, že vyrovnávací paměť reálného soketu je plná, uplatní se větev „Yes“ sto čtyřicátého třetího bloku 465 a data se z vyrovnávací paměti pro reálný soket odešlou na tento reálný soket, jak je naznačeno ve sto čtyřicátém čtvrtém bloku 466. Pokud však vyrovnávací paměť pro reálný soket není plná, platí cesta „No“ bloku 465. 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ěď ní ano, uplatní se cesta „Yes“ sto čtyřicátého pátého bloku 470 a data ve vyrovnávací paměti reálného soketu nejsou odeslána, dokud není operace virtuálního zarovnávání znovu 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 ve sto čtyřicátém šestém bloku 467.
Virtuální operace zavření znázorněná v blocích 342 a 348 na obr. 14 a blocích 372 a 378 na obr. 15 se uskutečňuje provedením operací, které začínají sto čtyřicátým sedmým blokem 480 na obr. 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 ve sto čtyřicátém osmém 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 ve sto čtyřicátém devátém bloku 487 a potom provede odpojení od reálného soketu, jak je znázorněno ve sto padesátém 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é ze sto
-23CZ 287957 B6 padesátého prvního bloku 490; a pokud tomu tak není, uplatní se cesta „No“ sto padesátého druhého 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í aktivity, jak je zřejmé ze sto padesátého třetího bloku 496. Pokud se však nejedná o poslední multiplexní virtuální soket, potom se blok 496 přeskočí.
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 ve sto padesátém čtvrtém bloku 491 a reálný soket je zavřen a smazán, jak je zřejmé ze sto padesátého pátého bloku 492. Ať již je soketem simplexní nebo multiplexní virtuální soket, je označen jako zavřený, viz sto padesátý šestý blok 497, a operace zavření se ukončí, viz sto padesátý sedmý blok 498.
Obr. 13 bude nyní popsán ve vztahu k obr. 16-1 až 16—4 a obr. 17-1 a 17-2. Když se vyskytne reálná událost, blok 302 na obr. 13 se ukončí a manažer soketů 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č aktivita multiplexního soketu, který byl nastaven v bloku 496 na obr. 17-2, potom se uplatní cesta od bloku 305 ke sto padesátému osmému bloku 312 na obr. 13. Jak je zřejmé z obr. 13, provede manažer soketů operace bloku 312 a sto padesátého devátého bloku 313 pro zavření multiplexního reálného soketu a smaže multiplexní reálný soket, který odpovídá soketu, jenž spojuje zachycovací modul 30 na straně klienta se zachycovacím modulem 40 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.
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 ke sto šedesátému bloku 309 na obr. 13. Manažer soketů odstraní reálný soket ze seznamu reálných událostí, jak je zřejmé ze sto šedesátého prvního 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 ve sto šedesátém druhém bloku 311 a 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í, zdaje nebo není reálný soket, který má být zavřen, simplexním soketem, jak je naznačeno v rozhodovacím sto šedesátém třetí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 ve sto šedesátém čtvrtém bloku 316. Manažer soketů potom čeká na další reálnou událost, jak je patrné z bloku 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. Multiplexní reálný soket nebo soket spojující zachycovací modul 30 na straně klienta a zachycovací modul 40 na straně serveru může být pouze zavřen s použitím časového hlídání ze strany časovače aktivity multiplexního soketu. To umožňuje údržbu spojení mezi zachycovacím modulem 30 na straně klienta a zachycovacím modulem 40 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 browserů 10 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 30 na straně klienta a zachycovacím modulem 40 na straně serveru, a tak eliminována potřeba dalších nároků v důsledku znovuustanovení takového spojení.
Poslední větev, kterou je nutné popsat u obr. 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. 12. sou-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 ve sto šedesátém
-24CZ 287957 B6 pátém bloku 486 na obr. 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, viz blok 310, a potom označí virtuální soket pro „zavření“ a signalizuje virtuální událost tak, jak je znázorněno v bloku 311. 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.
Prostřednictvím provádění operací popsaných na obr. 13 až 17 konkrétní aspekt stávajícího vynálezu ustanovuje stálé spojení mezi prvním počítačem 5 a druhým počítačem 6 přes externí komunikační spoj 35. Toto stálé spojení je udržováno do doby, než všechny komunikace vytvořené web browserem 10 jsou dokončeny a pluralita komunikací vytvořených web browserem 10 je zachycena a následně multiplexována na externí komunikační spoj 35 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 20. Stálé spojení je rovněž udržováno do dokončení všech komunikací vytvořených web serverem 20. Pluralita komunikací vytvořených web serverem 20 je zachycena a multiplexována na externí komunikační spoj 35 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 20.
Ve výkresové dokumentaci i příkladech jsou uvedena typická přednostní provedení 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 vyplývá z dále uvedených nároků.

Claims (10)

1. Způsob redukce dat, přenášených přes komunikační spoj z první aplikace rezidentní na prvním počítači (5), a také na druhou aplikaci rezidentní na druhém počítači (6), přičemž se data přenáší přes externí komunikační spoj (35) z prvního počítače (5) na druhý počítač (6) pomocí přenosového řídicího protokolu Transfer Control Protocol, vyznačující se tím, že
- se ustanoví první virtuální soket na prvním počítači (5) v odpovědi na každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených prvních aplikací,
- ustanoví se první reálný soket na prvním počítači (5) a druhý reálný soket na druhém počítači (6) ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35),
- ustanoví se druhý virtuální soket na druhém počítači (6) pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket odpovídá prvnímu virtuálnímu soketu, ustanovenému na prvním počítači (5), v odpovědi na požadavek o spojení ze strany první aplikace,
- multiplexují se data požadavku, přiřazená prvnímu virtuálnímu soketu na prvním reálném soketu,
- přenesou se multiplexovaná data požadavku přes externí komunikační spoj (35) s využitím Transfer Control Protocolu na druhý reálný soket,
- přijmou se multiplexovaná data požadavku z externího komunikačního spoje (35),
-25CZ 287957 B6
- demultiplexují se data požadavku, přijatá druhým reálným soketem, z externího komunikačního spoje (35),
- demultiplexovaná data se poskytují požadavku druhému virtuálnímu soketu, který odpovídá prvnímu virtuálnímu soketu, ustanovenému v odpovědi na požadavek od první aplikace,
- poskytují se data požadavku, přijatá druhým virtuálním soketem, druhé aplikaci, první a druhý reálný soket se udržují do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace, která ustanovila první virtuální soket, druhé aplikaci.
2. Způsob podle nároku 1, vyznačující se tím, že dále
- se přijmou data odpovědi od druhé aplikace v odpovědi na požadavek od první aplikace, s použitím druhého virtuálního soketu přiřazeného požadavku od první aplikace,
- multiplexují se data odpovědi, přijatá druhým virtuálním soketem, na druhý reálný soket,
- multiplexovaná data odpovědi se přenáší přes externí komunikační spoj (35) pomocí Transfer Control Protocol na první reálný soket,
- přijmou se multiplexovaná data odpovědi z externího komunikačního spoje (35),
- demultiplexují se data odpovědi, přijatá prvním reálným soketem,
- demultiplexovaná data odpovědi, která odpovídají požadavku od první aplikace, se poskytují prvnímu virtuálnímu soketu, jako odpověď na požadavek od první aplikace,
- poskytují se data odpovědi, přijatá prvním virtuálním soketem, první aplikaci.
3. Způsob podle nároku 2, vyznačující se tím, že dále
- se po provedeném multiplexování dat odpovědi zavře druhý virtuální soket,
- potom co se poskytnou data první aplikaci, zavře se první virtuální soket.
4. Způsob podle nároku 3, vyznaču j ící se tím , že po zavření všech prvních virtuálních soket se zavřou první a druhý reálný soket.
5. Způsob podle nároku 3, vyznačující se tím, že se první a druhý reálný soket uzavřou po uplynutí definovaného časového intervalu po zavření všech prvních virtuálních soket.
6. Zařízení k provádění způsobu podle nároku 1, vyznačující se tím, že sestává z prvního zachycovacího modulu (30), připojeného mezi první aplikaci a externí komunikační spoj (35) na první počítač (5), první zachycovací modul (30) zahrnuje první soketový manažer pro ustanovení prvního virtuálního soketu (70 až 74) na prvním počítači (5) v odpovědi na každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených první aplikací, první zachycovací modul (30) je dále upraven pro ustanovení prvního reálného soketu (36a) na prvním počítači (5) ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35),
-26CZ 287957 B6 první zachycovací modul (30) je dále upraven pro multiplexování dat požadavku, přiřazených prvnímu virtuálnímu soketu (70 až 74), na prvním reálném soketu (36a), první zachycovací modul (30) je dále upraven pro přenos multiplexovaných dat požadavku přes externí komunikační spoj (35) s využitím Transfer Control Protocolu na druhý reálný soket (36b), první zachycovací modul (30) je dále upraven pro udržování prvního reálného soketu (36a) do doby poskytnutí dat požadavku, odpovídajícího požadavku od první aplikace, která ustanovila první virtuální soket (70 až 74), druhé aplikaci, zařízení dále sestává z druhého zachycovacího modulu (40), připojeného mezi externí komunikační spoj (35) a druhou aplikací v druhém počítači (6), druhý zachycovací modul (40) zahrnuje druhý soketový manažer pro ustanovení druhého virtuálního soketu (75 až 79) na druhém počítači (6) pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket (75 až 79) odpovídá prvnímu virtuálnímu soketu (70 až 74), ustanovenému na prvním počítači (5), v odpovědi na požadavek o spojení ze strany první aplikace, druhý zachycovací modul (40) je dále upraven pro ustanovení druhého reálného soketu (36b) na druhém počítači (6) ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35), druhý zachycovací modul (40) je dále upraven pro příjem multiplexovaných dat požadavku z externího komunikačního spoje (35), druhý zachycovací modul (40) je dále upraven pro demultiplexování dat požadavku, přijatých druhým reálným soketem (36b), z externího komunikačního spoje (35), druhý zachycovací modul (40) je dále upraven pro poskytování demultiplexovaných dat požadavku druhému virtuálnímu soketu (75 až 79), druhý zachycovací modul (40) je dále upraven pro poskytování dat požadavku, přijatých druhým virtuálním soketem (75 až 79), druhé aplikaci a druhý zachycovací modul (40) je dále upraven pro udržování druhého reálného soketu (36b) do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace, která ustanovila první virtuální soket (70 až 74), druhé aplikaci.
7. Zařízení podle nároku 6, v y z n a č u j í c í se tí m , že druhý zachycovací modul (40) je dále upraven pro příjem dat odpovědi od druhé aplikace v odpovědi na požadavek od první aplikace s použitím druhého virtuálního soketu (75 až 79), přiřazeného požadavku od první aplikace, druhý zachycovací modul (40) je dále upraven pro multiplexování dat odpovědi, přijatých druhým virtuálním soketem (75 až 79), na druhý reálný soket (36b), druhý zachycovací modul (40) je dále upraven pro přenos multiplexovaných dat odpovědi přes externí komunikační spoj (35) pomocí Transfer Control Protocol na první reálný soket (36a), přičemž první zachycovací modul (30) je dále upraven pro příjem multiplexovaných dat odpovědi z externího komunikačního spoje (35),
-27CZ 287957 B6 první zachycovací modul (30) je dále upraven pro demultiplexování dat odpovědi, přijatých prvním reálným soketem (36a), první zachycovací modul (30) je dále upraven pro poskytování demultiplexovaných dat odpovědi prvnímu virtuálnímu soketů (70 až 74), která odpovídají požadavku od první aplikace, jako odpověď na požadavek od první aplikace a první zachycovací modul (30) je dále upraven pro poskytování dat odpovědi, přijatých prvním virtuálním soketem (70 až 74), první aplikaci.
8. Zařízení podle nároku 6 nebo 7, vyznačující se tím, že první aplikace zahrnuje web server (20) a druhá aplikace zahrnuje web browser (10).
9. Zařízení podle nároku 6 nebo 7, vyznačující se tím, že externí komunikační spoj (35) zahrnuje bezdrátový komunikační spoj.
10. Počítačový programový produkt kprovádění způsobu podle nároku 1, vyznačující se t í m , že je uložen na počítačem čitelném paměťovém médiu a zahrnuje množství softwarových kódových částí pro zavedení počítačového systému, přičemž počítačový programový produkt je vložitelný do počítače a zahrnuje:
počítačem čitelné programové kódové prostředky pro přivedení prvního počítače (5) k ustanovení prvního virtuálního soketů (70 až 74) na prvním počítači (5) v odpovědi na každý požadavek o spojení ze strany první aplikace pro přijetí dat požadavku, vytvořených první aplikací, počítačem čitelné programové kódové prostředky pro přivedení prvního počítače (5) k ustanovení prvního reálného soketů (36a) na prvním počítači (5) a ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35), počítačem čitelné programové kódové prostředky pro přivedení prvního počítače (5) k multiplexování dat požadavku, přiřazených prvnímu virtuálnímu soketů (70 až 74), na prvním reálném soketů (36a), počítačem čitelné programové kódové prostředky pro přivedení prvního počítače (5) k odeslání multiplexovaných dat požadavku přes externí komunikační spoj (35) s využitím Transfer Control Protocolu na druhý reálný soket (36b), počítačem čitelné programové kódové prostředky pro přivedení prvního počítače (5) k udržování prvního reálného soketů (36a) do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace ustavující první virtuální soket (70 až 74), druhou aplikací, počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k ustanovení druhého virtuálního soketů (75 až 79) na druhém počítači (6) pro každý požadavek o spojení ze strany první aplikace, kde druhý virtuální soket (75 až 79) odpovídá prvnímu virtuálnímu soketů (70 až 74), ustanovenému na prvním počítači (5), v odpovědi na požadavek o spojení ze strany první aplikace, počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k ustanovení druhého reálného soketů (36b) na druhém počítači (6) ke spojení prvního počítače (5) s druhým počítačem (6) přes externí komunikační spoj (35), počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k příjmu multiplexovaných dat požadavku z externího komunikačního spoje (35),
-28CZ 287957 B6 počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k demultiplexování dat požadavku, přijatých druhým reálným soketem (36b) z externího komunikačního spoje (35),
5 počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k poskytování demultiplexovaných dat požadavku druhému virtuálnímu soketu (75 až 79), počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k poskytování dat požadavku, přijatých druhým virtuálním soketem (75 až 79), druhé aplikaci a o
počítačem čitelné programové kódové prostředky pro přivedení druhého počítače (6) k udržování druhého reálného soketu (36b) do doby poskytnutí dat požadavku, odpovídajících požadavku od první aplikace, která ustanovila první virtuální soket (70 až 74), druhé aplikaci.
CZ19973543A 1996-02-15 1996-07-11 Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění CZ287957B6 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/601,755 US5867661A (en) 1996-02-15 1996-02-15 Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol

Publications (2)

Publication Number Publication Date
CZ354397A3 CZ354397A3 (cs) 1998-03-18
CZ287957B6 true CZ287957B6 (cs) 2001-03-14

Family

ID=24408646

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ19973543A CZ287957B6 (cs) 1996-02-15 1996-07-11 Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění

Country Status (16)

Country Link
US (1) US5867661A (cs)
EP (1) EP0823173B1 (cs)
JP (1) JP3483892B2 (cs)
KR (1) KR100289521B1 (cs)
CN (1) CN1260937C (cs)
AT (1) ATE193629T1 (cs)
CA (1) CA2218153C (cs)
CZ (1) CZ287957B6 (cs)
DE (1) DE69608681T8 (cs)
ES (1) ES2146403T3 (cs)
HK (1) HK1009570A1 (cs)
HU (1) HU225569B1 (cs)
MY (1) MY122363A (cs)
PL (1) PL180608B1 (cs)
TW (1) TW294872B (cs)
WO (1) WO1997030554A2 (cs)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5898780A (en) * 1996-05-21 1999-04-27 Gric Communications, Inc. Method and apparatus for authorizing remote internet access
FI102923B (fi) * 1996-08-08 1999-03-15 Nokia Mobile Phones Ltd Tiedontulostusjärjestelmä, menetelmä tiedon tulostamiseksi sekä päätel aitteet tiedon tulostamiseksi
US6470398B1 (en) * 1996-08-21 2002-10-22 Compaq Computer Corporation Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
US5931904A (en) * 1996-10-11 1999-08-03 At&T Corp. Method for reducing the delay between the time a data page is requested and the time the data page is displayed
US6401109B1 (en) * 1996-11-18 2002-06-04 International Business Machines Corp. Virtual socket for JAVA interprocess communication
US6553428B1 (en) 1996-11-18 2003-04-22 International Business Machines Corporation Distributed object instantiation of native objects in java
US6411996B1 (en) * 1997-06-30 2002-06-25 Sun Microsystems, Inc. Method and apparatus maintaining a to-be-visited site bookmark file
US5895471A (en) 1997-07-11 1999-04-20 Unwired Planet, Inc. Providing a directory of frequently used hyperlinks on a remote server
US6295291B1 (en) * 1997-07-31 2001-09-25 Nortel Networks Limited Setup of new subscriber radiotelephone service using the internet
US6070184A (en) * 1997-08-28 2000-05-30 International Business Machines Corporation Server-side asynchronous form management
US6035324A (en) * 1997-08-28 2000-03-07 International Business Machines Corporation Client-side asynchronous form management
JPH1185654A (ja) * 1997-09-12 1999-03-30 Matsushita Electric Ind Co Ltd 仮想wwwサーバ装置およびカメラ制御可能なwwwサーバ装置
JPH11112609A (ja) * 1997-10-06 1999-04-23 Toshiba Corp 通信システムにおける通信障害回復方法ならびに同方法がプログラムされ記録される記録媒体
US6567853B2 (en) * 1997-12-08 2003-05-20 International Business Machines Corporation Scalable I/O system for the efficient transfer of storage device data by a non-server reconnection
US20040107208A1 (en) * 1997-12-09 2004-06-03 Seet Siew Shon Method and apparatus for bookmarking telephone numbers for efficient access by wireless phone devices
US6065120A (en) 1997-12-09 2000-05-16 Phone.Com, Inc. Method and system for self-provisioning a rendezvous to ensure secure access to information in a database from multiple devices
US6711166B1 (en) * 1997-12-10 2004-03-23 Radvision Ltd. System and method for packet network trunking
US6170013B1 (en) * 1998-03-27 2001-01-02 Nortel Networks Limited Method and apparatus for controlling access to network information sources
US6148340A (en) * 1998-04-30 2000-11-14 International Business Machines Corporation Method and system for differencing container files
US6412015B1 (en) * 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US7127493B1 (en) * 1998-08-20 2006-10-24 Gautier Taylor S Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6338089B1 (en) * 1998-10-06 2002-01-08 Bull Hn Information Systems Inc. Method and system for providing session pools for high performance web browser and server communications
US6341312B1 (en) * 1998-12-16 2002-01-22 International Business Machines Corporation Creating and managing persistent connections
US6456603B1 (en) 1999-01-21 2002-09-24 Telefonaktiebolaget L M Ericsson (Publ) Method of supporting communications mobility in a telecommunications system
US7210147B1 (en) 1999-10-05 2007-04-24 Veritas Operating Corporation IP virtualization
AU8000800A (en) 1999-10-05 2001-05-10 Ejasent Inc. Virtual network environment
US6324568B1 (en) * 1999-11-30 2001-11-27 Siebel Systems, Inc. Method and system for distributing objects over a network
US6708217B1 (en) 2000-01-05 2004-03-16 International Business Machines Corporation Method and system for receiving and demultiplexing multi-modal document content
US6983315B1 (en) * 2000-01-18 2006-01-03 Wrq, Inc. Applet embedded cross-platform caching
US7240067B2 (en) * 2000-02-08 2007-07-03 Sybase, Inc. System and methodology for extraction and aggregation of data from dynamic content
JP2001243182A (ja) * 2000-02-29 2001-09-07 Nec Corp サーバシステム及びWebコンテンツとサーバシステムとの連動方法
US6990526B1 (en) * 2000-05-22 2006-01-24 Pointred Technologies, Inc. Method and apparatus for web caching
KR20020006722A (ko) * 2000-07-13 2002-01-26 권혁 웹페이지 재구성 방법 및 이를 이용한 웹페이지 제공방법
US6993584B2 (en) * 2000-07-21 2006-01-31 Hughes Network Systems Method and system for improving network performance by utilizing path selection, path activation, and profiles
US6954784B2 (en) * 2000-08-17 2005-10-11 International Business Machines Corporation Systems, method and computer program products for cluster workload distribution without preconfigured port identification by utilizing a port of multiple ports associated with a single IP address
US6996617B1 (en) 2000-08-17 2006-02-07 International Business Machines Corporation Methods, systems and computer program products for non-disruptively transferring a virtual internet protocol address between communication protocol stacks
US6996631B1 (en) 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US7120697B2 (en) * 2001-05-22 2006-10-10 International Business Machines Corporation Methods, systems and computer program products for port assignments of multiple application instances using the same source IP address
US6941384B1 (en) 2000-08-17 2005-09-06 International Business Machines Corporation Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses
US6947431B1 (en) 2000-08-23 2005-09-20 Radio Ip Software Inc. Wireless data communications with header suppression and reconstruction
JP3739260B2 (ja) * 2000-08-24 2006-01-25 株式会社日立製作所 情報配信システムおよびゲートウェイ装置
US7596784B2 (en) * 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
WO2002029599A1 (en) 2000-10-05 2002-04-11 Redline Networks, Inc. Connection management system and method
US7263550B1 (en) 2000-10-10 2007-08-28 Juniper Networks, Inc. Agent-based event-driven web server architecture
US6965930B1 (en) 2000-10-20 2005-11-15 International Business Machines Corporation Methods, systems and computer program products for workload distribution based on end-to-end quality of service
US6963917B1 (en) 2000-10-20 2005-11-08 International Business Machines Corporation Methods, systems and computer program products for policy based distribution of workload to subsets of potential servers
US7076518B1 (en) 2000-10-24 2006-07-11 Hewlett-Packard Development Comapny, L.P. System and method for linking a web server in a peripheral to a network through a host
US7068643B1 (en) * 2000-11-03 2006-06-27 Intervoice Limited Partnership Extensible interactive voice response
KR100451721B1 (ko) * 2000-12-30 2004-10-08 엘지전자 주식회사 이동통신 시스템에서의 프로세서간 정합 방법
US7080120B2 (en) * 2001-01-19 2006-07-18 Digital Orchid, Inc. System and method for collaborative processing of distributed applications
US6961773B2 (en) * 2001-01-19 2005-11-01 Esoft, Inc. System and method for managing application service providers
US7325030B2 (en) * 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
US20020133598A1 (en) * 2001-03-16 2002-09-19 Strahm Frederick William Network communication
US7711831B2 (en) * 2001-05-22 2010-05-04 International Business Machines Corporation Methods, systems and computer program products for source address selection
US7165112B2 (en) * 2001-06-22 2007-01-16 Motorola, Inc. Method and apparatus for transmitting data in a communication system
US8001594B2 (en) * 2001-07-30 2011-08-16 Ipass, Inc. Monitoring computer network security enforcement
US8346848B2 (en) * 2001-08-16 2013-01-01 Juniper Networks, Inc. System and method for maintaining statefulness during client-server interactions
US7225260B2 (en) * 2001-09-28 2007-05-29 Symbol Technologies, Inc. Software method for maintaining connectivity between applications during communications by mobile computer terminals operable in wireless networks
US20040249979A1 (en) * 2001-10-05 2004-12-09 Takehito Yamaguchi Print data creation apparatus and print data creation method
US7103671B2 (en) * 2002-03-14 2006-09-05 Yahoo! Inc. Proxy client-server communication system
ITMI20020678A1 (it) * 2002-03-29 2003-09-29 Sirap Gema Spa Confezione per la conservazione sottovuoto o in atmosfera protettiva di alimenti suscettibili di rilasciare liquidi e/o aeriformi
US20040015591A1 (en) * 2002-07-18 2004-01-22 Wang Frank Xiao-Dong Collective TCP control for improved wireless network performance
US7152111B2 (en) 2002-08-15 2006-12-19 Digi International Inc. Method and apparatus for a client connection manager
US7120666B2 (en) * 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US8176186B2 (en) * 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US20040187083A1 (en) * 2003-03-18 2004-09-23 Tracey Bryan D. System and method for reducing the size of wireless communications
US7493398B2 (en) * 2003-04-16 2009-02-17 Microsoft Corporation Shared socket connections for efficient data transmission
US20050050021A1 (en) * 2003-08-25 2005-03-03 Sybase, Inc. Information Messaging and Collaboration System
US20050091226A1 (en) * 2003-10-23 2005-04-28 Yun Lin Persistent caching directory level support
US7441011B2 (en) * 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US8676922B1 (en) 2004-06-30 2014-03-18 Google Inc. Automatic proxy setting modification
KR100684308B1 (ko) * 2004-08-25 2007-02-16 한국전자통신연구원 무선 접속 단말 장치 및 이를 이용하는 무선 접속 관리 방법
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US7475154B2 (en) * 2005-02-24 2009-01-06 International Business Machines Corporation Splicing proxied web requests with callback for subsequent requests
US20060248194A1 (en) 2005-03-18 2006-11-02 Riverbed Technology, Inc. Connection forwarding
US20070115917A1 (en) * 2005-10-31 2007-05-24 Microsoft Corporation MTOM data transfer via TCP
US7738887B2 (en) * 2005-10-31 2010-06-15 Microsoft Corporation Voice instant messaging between mobile and computing devices
US7904563B2 (en) * 2006-03-31 2011-03-08 Microsoft Corporation Establishing and utilizing terminal server dynamic virtual channels
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US7979554B2 (en) * 2006-12-21 2011-07-12 International Business Machines Corporation Apparatus, system, and method for enabling conversational transactions in a service oriented architecture
US8812651B1 (en) * 2007-02-15 2014-08-19 Google Inc. Systems and methods for client cache awareness
US8260934B2 (en) * 2007-08-31 2012-09-04 Red Hat, Inc. Multiplex transport
US7899031B2 (en) * 2007-11-20 2011-03-01 Microsoft Corporation Locally terminating an established connection
US20090260023A1 (en) * 2008-04-11 2009-10-15 Hewlett-Parckard Development Commpany, Lp Multiplexing Reserved Ports
US8688799B2 (en) * 2011-06-30 2014-04-01 Nokia Corporation Methods, apparatuses and computer program products for reducing memory copy overhead by indicating a location of requested data for direct access
CN103136059A (zh) * 2011-11-24 2013-06-05 中兴通讯股份有限公司 一种内存区间相互隔离的程序之间的通讯方法及处理单元
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
US11063823B2 (en) 2019-06-19 2021-07-13 International Business Machines Corporation Inter-service data transportation through data fragmentation and socket replication

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8101126A (nl) * 1981-03-09 1982-10-01 Wavin Bv Kunststofzak met ontluchting.
JP2511591B2 (ja) * 1990-10-29 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 無線光通信システムの動作方法および光通信システム
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
CA2150062A1 (en) * 1994-06-30 1995-12-31 Richard James Garrick Applications programming interface for distributed processing in networks
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5581558A (en) * 1995-03-29 1996-12-03 Lucent Technologies Inc. Apparatus for bridging non-compatible network architectures

Also Published As

Publication number Publication date
JP3483892B2 (ja) 2004-01-06
CN1260937C (zh) 2006-06-21
JPH11514117A (ja) 1999-11-30
CN1184576A (zh) 1998-06-10
PL180608B1 (pl) 2001-03-30
KR19980703862A (ko) 1998-12-05
HUP9802083A3 (en) 1999-03-01
TW294872B (en) 1997-01-01
US5867661A (en) 1999-02-02
HUP9802083A2 (hu) 1998-12-28
CZ354397A3 (cs) 1998-03-18
DE69608681D1 (de) 2000-07-06
PL322817A1 (en) 1998-02-16
ATE193629T1 (de) 2000-06-15
HK1009570A1 (en) 1999-09-03
DE69608681T2 (de) 2000-11-23
CA2218153C (en) 2006-06-06
DE69608681T8 (de) 2006-11-16
ES2146403T3 (es) 2000-08-01
MY122363A (en) 2006-04-29
EP0823173A2 (en) 1998-02-11
WO1997030554A2 (en) 1997-08-21
EP0823173B1 (en) 2000-05-31
CA2218153A1 (en) 1997-08-21
HU225569B1 (en) 2007-03-28
WO1997030554A3 (en) 1997-10-23
KR100289521B1 (ko) 2001-05-02

Similar Documents

Publication Publication Date Title
CZ287957B6 (cs) Způsob redukce dat a zařízení a počítačový programový produkt k jeho provádění
CZ289259B6 (cs) Způsob redukce dat, zařízení a počítačový programový produkt k jeho provádění
CZ287988B6 (cs) Způsob zvýšení výkonnosti systému klient/server a zařízení a počítačový programový produkt k jeho provádění
US5878213A (en) Methods, systems and computer program products for the synchronization of time coherent caching system
CZ287679B6 (cs) Způsob zachycování dat přijatých od druhé aplikace, zařízení a počítačový programový produkt k jeho provádění

Legal Events

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

Effective date: 20070711