DE10128147A1 - Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increased - Google Patents
Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increasedInfo
- Publication number
- DE10128147A1 DE10128147A1 DE10128147A DE10128147A DE10128147A1 DE 10128147 A1 DE10128147 A1 DE 10128147A1 DE 10128147 A DE10128147 A DE 10128147A DE 10128147 A DE10128147 A DE 10128147A DE 10128147 A1 DE10128147 A1 DE 10128147A1
- Authority
- DE
- Germany
- Prior art keywords
- server
- data
- client
- resource
- transformation
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2895—Intermediate processing functionally located close to the data provider application, e.g. reverse proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Die Erfindung betrifft ein Verfahren zur Übermittlung von Daten in einem Computer-Netzwerk und einen Server sowie ein Programm hierfür und ein System zur Beschleunigung der Da tenübertragung in Computer-Netzwerken.The invention relates to a method for transmitting Data in a computer network and a server as well as a Program for this and a system for accelerating the Da transmission in computer networks.
Zur Übermittlung von Daten in Computer-Netzwerken wird heute beispielsweise das HTTP-Protokoll eingesetzt, das durch seinen Einsatz im "World Wide Web" große Verbreitung und Bekanntheit gefunden hat.For the transmission of data in computer networks today for example, the HTTP protocol used by its widespread use in the "World Wide Web" and Has found fame.
Hierbei handelt es sich um ein Protokoll zum Austausch von Ressourcen (zum Beispiel HTML-Dateien, Grafiken, Sounddatei en) in Computernetzwerken, insbesondere im Internet. Der Austausch beginnt mit einer Anfrage (Request) des Clients bzw. Browsers an einen Server. Dieser bearbeitet die Anfrage und sendet eine Antwort (Response) an den Client zurück.This is a protocol for the exchange of Resources (for example HTML files, graphics, sound files en) in computer networks, especially on the Internet. The Exchange begins with a request from the client or browser to a server. This processes the request and sends a response back to the client.
Jede Anfrage, sei es ein Request oder ein Response, besteht aus zwei Teilen, einem Kopfbereich (Head) und einem Daten bereich (Body). Der Head-Bereich enthält Zusatzinformationen über die Anfrage, der Body-Bereich die eigentlichen Daten.Every request, be it a request or a response, exists of two parts, a head area (Head) and a data area (body). The head area contains additional information about the request, the body area the actual data.
Als typisches Beispiel mag hier der Abruf eines auch als "Internetseite" bezeichneten HTML-Dokuments von einem www- Server (world-wide-web) dienen. Der Benutzer, der eine sol che Seite abrufen möchte, verwendet ein Client-Programm, das als Browser bezeichnet wird. Bekannt sind verschiedene Browser, darunter der "Internet-Explorer" der Firma Micro soft oder der "Netscape Navigator".As a typical example, retrieving one as HTML document called "Website" from a www Serve server (world-wide-web). The user who has a sol che page, uses a client program that is referred to as a browser. Various are known Browser, including the "Internet Explorer" from Micro soft or the "Netscape Navigator".
In einem solchen Client gibt der Benutzer die Adresse der abzurufenden Internet-Ressource als sog. URL (Uniform Re source Locator) ein, z. B. "http:// server.irgendwo.de/doku ment.html". Der Browser sendet nun wie oben beschrieben einen Request an einen Server, der unter der Adresse "ser ver.irgendwo.de" im Internet erreichbar ist. Dieser Request enthält die Bezeichnung des angeforderten Dokuments ("doku ment.html"). Der Request enthält im Head-Bereich auch eine Anzahl von Informationen über die Anfrage, darunter Informa tionen welche Zeichensätze verstanden werden, welche Sprache verstanden wird etc.In such a client, the user gives the address of the Internet resource to be called up as a so-called URL (Uniform Re source locator) a, e.g. B. "http: // server.irgendwo.de/doku ment.html ". The browser now sends as described above a request to a server that is located at "ser ver.irgendwo.de "on the Internet. This request contains the name of the requested document ("doku ment.html "). The request also contains one in the head area Number of information about the request, including informa what character sets are understood, which language is understood etc.
Der Server nimmt den Request entgegen und beantwortet ihn mit einer Response. Diese enthält in ihrem Body-Bereich die gewünschte HTML-Seite ("dokument.html").The server accepts the request and answers it with a response. This contains the in her body area desired HTML page ("document.html").
Bei einer solchen HTML-Seite handelt es sich um eine Be schreibung, was der Browser darstellen soll. Das Format dieser Beschreibung ist standardisiert. Bekannte derzeitige Standards sind HTML sowie XML. Kurz gesagt beruhen diese Seitenbeschreibungssprachen darauf, daß außer dem darzustel lenden Text Informationen gegeben werden, in welcher Weise dieser darzustellen ist (z. B. bezüglich Größe, Zeichensatz, Fettdruck, Farbe, Formatierung etc.). Diese Formatierungs informationen werden in Form von sog. Tags gegeben. Ein Beispiel für einen solchen Tag ist beispielsweise "<b<". Dieser Tag bewirkt, daß nachfolgender Text fett ("bold") gedruckt wird. Das abgefragte HTML-Dokument wird vom Browser entsprechend interpretiert und auf dem Bildschirm darge stellt.Such an HTML page is a loading description of what the browser should display. The format this description is standardized. Known current ones Standards are HTML and XML. In short, these are based Page description languages that apart from that information is given in what manner this must be displayed (e.g. with regard to size, character set, Bold, color, formatting etc.). This formatting information is given in the form of so-called tags. On An example of such a day is "<b <". This day causes the following text to be bold is printed. The requested HTML document is from the browser interpreted accordingly and displayed on the screen poses.
Es sind heute mehrere Programme verbreitet, die als "Web server", d. h. als HTTP-Diensteanbieter arbeiten. Beispiele sind der Apache-Webserver, der iPlanet Webserver oder der Internet Information Server der Firma Microsoft. Die Quell texte des Apache-Webservers sind frei verfügbar, so daß sie einfach ergänzt und erweitert werden können. Hierüber infor miert das Buch von Lincoln Stein und Doug MacEachern "Wri ting Apache Modules in Perl and C" (O'Reilly & Associates Inc., März 1999), ISBN 1-56592-567-X.There are several programs in use today that are called "Web server ", i.e. working as an HTTP service provider. Examples are the Apache web server, the iPlanet web server or the Internet information server from Microsoft. The source Texts from the Apache web server are freely available, so they can be easily added and expanded. About this The book by Lincoln Stein and Doug MacEachern "Wri Apache Modules in Perl and C "(O'Reilly & Associates Inc., March 1999), ISBN 1-56592-567-X.
Bei der Übertragung der angeforderten Ressourcen ist ein grundsätzliches Problem die Übertragungsgeschwindigkeit. Diese ist begrenzt durch die zur Verfügung stehende Band breite bei der Übermittlung solcher Informationen, also die Geschwindigkeit, mit der eine Datenmenge über die verschie denen Übertragungswege übermittelt werden kann. Ein besonde rer Engpaß ist bei Internet-Verbindungen erfahrungsgemäß die Einwahlverbindung (ISDN oder Modem) des Benutzers beim Pro vider.When transferring the requested resources is a fundamental problem the transmission speed. This is limited by the band available wide in the transmission of such information, that is The speed at which a quantity of data is which transmission paths can be transmitted. A special one Experience has shown that the bottleneck in Internet connections is Dial-up connection (ISDN or modem) of the user at the Pro vider.
Zur Beschleunigung des Datenaustausches werden in der US-A-6021426 mehrere Maßnahmen vorgeschlagen. Dabei handelt es sich um Zwischenspeicherung (caching), Datenkompression und Differenzcodierung.To accelerate the data exchange, the US-A-6021426 proposed several measures. This is what it is about is about caching, data compression and Differential coding.
Bei der Datenkompression wird die Größe einer Datei redu ziert, indem in den Daten vorhandene Redundanzen ausgenutzt werden. Dem Fachmann sind eine Vielzahl von Kompressions verfahren bekannt, darunter die Huffman-Codierung, der "De flate"-Algorithmus und die Lempel-Ziv-Codierung. Entspre chende Kompressionsverfahren sind auch im HTTP/1.1-Protokoll berücksichtigt. Der Header eines HTTP-Request enthält ein Feld mit der Bezeichnung "Accept-Encoding". Dieses Feld kann außer dem Wert "identity" (für Klartext-Daten) auch die Werte "gzip", "compress", "deflate" annehmen, wenn der Client über einen entsprechenden Dekomprimierungsalgorithmus verfügt.When compressing data, the size of a file is reduced adorned by using existing redundancies in the data become. A large number of compressions are known to the person skilled in the art known processes, including the Huffman coding, the "De flate "algorithm and the Lempel-Ziv coding Appropriate compression methods are also in the HTTP / 1.1 protocol considered. The header of an HTTP request contains a Field labeled "Accept-Encoding". This field can in addition to the value "identity" (for plain text data) also the Accept the values "gzip", "compress", "deflate" if the Client using an appropriate decompression algorithm disposes.
In einem Aufsatz von Rendall L. Schwartz wird ein Perl- Script vorgestellt, das einen Proxy-Server für HTTP-Seiten darstellt. Dieses Programm wertet den Inhalt des "Accept- Encoding"-Feldes eines Request aus. Wenn aus diesem Feld ersichtlich ist, daß der entsprechende Client komprimierte Daten verarbeiten kann, komprimiert das Programm die Daten und versendet die komprimierte Version.In a paper by Rendall L. Schwartz, a pearl Script presented a proxy server for HTTP pages represents. This program evaluates the content of the "Accept- Encoding "field of a request. If from this field it can be seen that the corresponding client compressed Can process data, the program compresses the data and sends the compressed version.
In der US-A-5918013 wird ebenfalls ein Proxy-Server be schrieben. Hierbei handelt es sich um einen HTTP-Server, der logisch zwischen dem Client (Browser) und den jeweiligen Servern angeordnet ist. Jeder Request wird vom Client zu nächst an den Proxy-Server geleitet, der seinerseits die angeforderten Daten vom jeweiligen Server anfordert und die jeweilige Response an den Client weiterleitet. Die Response wird bei einem "Caching-Proxy" zwischengespeichert, so daß bei einer erneuten, identischen Anfrage das zwischengespei cherte Dokument als Response direkt geliefert werden kann, ohne die Daten erneut vom Server abrufen zu müssen.A proxy server is also used in US-A-5918013 wrote. This is an HTTP server that logically between the client (browser) and the respective Servers is arranged. Every request is made by the client to the proxy server, which in turn sends the requested data from the respective server and the forwards the respective response to the client. The response is cached with a "caching proxy" so that in the case of another, identical request, the intermediate memory saved document can be delivered as a response, without having to retrieve the data from the server again.
Der Proxy-Server der US-A-5918013 sieht vor, daß das wei tergeleitete Dokument umcodiert wird, wenn darin Fehler enthalten sind. Die Umcodierung umfaßt die Überarbeitung des Dokuments außer zur Beseitigung von Fehlern auch zur Unter drückung von unerwünschten Inhalten etc. Es wird zusätzlich vorgeschlagen, Grafiken beispielsweise aus dem GIF-Format in das JPEG-Format umzucodieren, weil dieses ein effektiveres Kompressionsverfahren ist.The proxy server of US-A-5918013 provides that the white redirected document if it contains errors are included. The recoding includes the revision of the Document also for sub troubleshooting pressing unwanted content etc. It will be additional suggested graphics in, for example, from the GIF format transcode the JPEG format because this is a more effective one Compression method is.
In der US-A-5931904 wird ein Proxy-Server für HTTP-Dienste beschrieben, der die Verzögerungszeit zwischen dem Request und der Response verringern soll. Das beschriebene Verfahren sieht zwei Proxy-Server vor, die jeweils verschiedene Ver sionen eines Dokuments vorhalten. In Fällen, wo dies gün stiger ist, wird zunächst eine ältere Version des Dokuments übersandt, während eine neuere Version abgerufen wird. Da nach werden lediglich die Unterschiede zwischen den beiden Versionen übermittelt. Dies entspricht der sogenannten "Dif ferenzcodierung".In US-A-5931904 a proxy server for HTTP services described the delay time between the request and reduce the response. The procedure described provides two proxy servers, each with different ver hold sions of a document. In cases where this is good is first an older version of the document sent while a newer version is being retrieved. There according to only the differences between the two Versions submitted. This corresponds to the so-called "Dif reference coding ".
Ein weiterer Proxy-Server ist in der US-A-6049821 beschrie ben. Dieser Proxy-Server verändert sowohl den Request als auch die Response. Die Veränderungen umfassen das Entfernen von Kommentaren, Grafiken, Hintergründen und anderen als weniger wichtig erachteten Elementen des Dokuments. Der Proxy-Server berücksichtigt hierbei die Fähigkeiten des jeweiligen Browsers anhand einer Liste.Another proxy server is described in US-A-6049821 ben. This proxy server changes the request as well also the response. The changes include removal of comments, graphics, backgrounds and other than less important elements of the document. The Proxy server takes into account the capabilities of the respective browser based on a list.
Es ist Aufgabe der Erfindung, die bekannten Übermittlungs verfahren, Server und Programme so zu verbessern, daß die Bandbreite der Verbindung möglichst gut ausgenutzt wird.It is an object of the invention, the known transmission procedure to improve servers and programs so that the Bandwidth of the connection is used as well as possible.
Diese Aufgabe wird gelöst durch ein Verfahren mit den Merk malen des Anspruchs 1 (Transformation der Daten zur Erhöhung der Redundanz und/oder Transformation der Daten zur Verlust behafteten Komprimierung) sowie einen Server nach Anspruch 16, ein Programm nach Anspruch 32 und ein System nach An spruch 35. Abhängige Ansprüche beziehen sich auf vorteilhaf te Ausgestaltungen.This problem is solved by a method with the Merk paint of claim 1 (transformation of the data to increase the redundancy and / or transformation of the data for loss affected compression) and a server according to claim 16, a program according to claim 32 and a system according to An Proverb 35. Dependent claims relate to advantageous te configurations.
Erfindungsgemäß übermittelt der Server die angeforderte Ressource, beispielsweise ein HTML-Datei, nicht zwangsläufig in derselben Form, wie sie der Datenquelle entnommen wird. Sondern er wendet auf die Ressource - bevorzugt nur auf Ressourcen eines bestimmten Typs, beispielsweise XML- oder HTML-Dateien - eine Transformation an und übermittelt dann das Ergebnis dieser Transformation (direkt oder, wie unten beschrieben, nach Anwendung eines Kompressionsverfahrens).According to the invention, the server transmits the requested Resource, such as an HTML file, is not necessarily in the same form as it is taken from the data source. But he spends on the resource - preferably only on Resources of a certain type, for example XML or HTML files - a transformation on and then transmitted the result of this transformation (directly or as below described, after using a compression process).
Ziel dieser Transformation ist es, eine bessere Komprimier barkeit der Daten der Ressource zu erreichen bzw. die Daten menge bereits durch Anwendung der Transformation zu reduzie ren. Letzteres geschieht "verlustbehaftet", d. h. daß die ursprüngliche Fassung aus der transformierten Fassung nicht mehr rekonstruierbar ist.The goal of this transformation is to better compress Availability of the data of the resource or the data reduce the quantity already by applying the transformation ren. The latter happens "lossy", d. H. that the original version from the transformed version not is more reconstructable.
In jedem Fall aber ist bei Anwendung der Transformation sichergestellt, daß hierdurch die Darstellung der Ressource auf dem Client nicht verändert wird. Das heißt, daß durch die Transformation zwar der Informationsgehalt der Daten verändert wird, diese Veränderung aber für den Benutzer, der nicht die Quelltext-Daten, sondern nur die Darstellung auf dem Client betrachtet, nicht erkennbar ist.In any case, however, the transformation is applied ensures that this will render the resource is not changed on the client. That means that by the transformation is the information content of the data is changed, but this change for the user who not the source text data, but only the representation considered to the client, is not recognizable.
Eine solche Veränderung ist insbesondere bei HTML- oder XML- Dateien möglich. Bei diesen Seitenbeschreibungssprachen können Teile des Quelltextes verändert werden, ohne daß die - dem Standard entsprechende - Darstellung der entsprechen den Seiten verändert wird.Such a change is particularly important with HTML or XML Files possible. With these page description languages parts of the source text can be changed without the - corresponding to the standard - representation of the corresponding the sides is changed.
Das Wort "Programm" wird hier im weitesten Sinne verwendet. Umfaßt sind damit sowohl Codes in direkt ausführbarer Ma schinensprache, beispielsweise das Produkt eines Compiler- Laufes. Ebenso umfaßt der Begriff "Programm" aber auch Script-Sprachen wie z. B. perl bzw. andere Interpreter-Spra chen oder auch beispielsweise Java Appletts.The word "program" is used here in the broadest sense. This includes both codes in directly executable dimensions language, for example the product of a compiler Run. The term "program" also includes Script languages such as B. perl or other interpreter language Chen or for example Java applets.
Mit "Server" wird ein Computer bezeichnet, der in einem Netzwerk einen Netzwerk-Dienst anbietet. Bevorzugt stellt der Server einen HTTP-Dienst zur Verfügung."Server" means a computer that is in a Network offers a network service. Preferably poses the server has an HTTP service available.
Unter einem "Client" wird ein Computer verstanden, der in der Lage ist, mit dem Server über das Netzwerk in einer dem Fachmann bekannten Client/Server-Architektur zusammenzuar beiten, wobei der Client entsprechende Requests an dem Ser ver stellt und der Server hierauf mit einer Response ant wortet. Beispiele für Clients sind bekannte Browser-Program me zur Darstellung von HTML-Seiten.A "client" is understood to mean a computer that is in is able to connect to the server over the network in one of the Client / server architecture known to those skilled in the art process, the client requesting corresponding requests to the server ver and the server responded with a response words. Well-known browser programs are examples of clients me for displaying HTML pages.
Unter einem HTTP-Dienst wird ein Dienst verstanden, der auf einen entsprechend formatierten Request eine entsprechende Response an einen Client übermittelt. Dies umfaßt die der zeit gültige Standardisierung des HTTP-Protokolls sowie dessen Nachfolger bzw. Abwandlungen.An HTTP service is understood to mean a service that is based on an appropriately formatted request Response sent to a client. This includes the current standardization of the HTTP protocol and its successor or modifications.
Bei der erfindungsgemäß verwendeten Datenquelle, aus der die angeforderte Ressource entnommen wird, kann es sich bei spielsweise um einen einfachen Datenspeicher, z. B. eine Festplatte (nichtflüchtiger Speicher) oder auch, für häufig abgerufene Seiten, den Arbeitsspeicher (RAM-Speicher, flüch tiger Speicher) des Server-Rechners selbst handeln. Der HTTP-Server kann aber auch als Proxy-Server arbeiter, d. h., daß er auf einen Request hin seinerseits eine Anfrage an einen anderen Server stellt und diesen so als Datenquelle nutzt. Als Datenquelle kommt zudem auch beispielsweise eine auf dem Server-Rechner installierte oder mit diesem im Netz verbundene Datenbank in Frage, aus der z. B. dynamische gene rierte Inhalte, beispielsweise HTML-Seiten als Antwort auf eine Suchanfrage, entnommen werden.In the data source used according to the invention, from which the requested resource is taken from, at for example, a simple data storage, e.g. Legs Hard disk (non-volatile memory) or, for frequent pages called up, the main memory (RAM memory, curs act memory) of the server computer itself. The HTTP server can also work as a proxy server, i.e. H., that he in turn sends a request to a request another server and this as a data source uses. For example, there is also a data source installed on the server computer or with it on the network connected database in question, from the z. B. dynamic genes content, such as HTML pages in response to a search query.
Die Daten der Response werden der Datenquelle bevorzugt im Klartext entnommen, was im Gegensatz zu einigen heute be kannten Server-Implementationen steht, bei denen von jeder HTML-Datei eine normale und eine komprimierte Version auf der Festplatte abgespeichert sind und der Server je nach Fähigkeiten des Clients entweder die eine oder die andere Version versendet.The data of the response are preferred in the data source Taken in plain text, which unlike some today Known server implementations, each of which HTML file a normal and a compressed version the hard disk and the server depending on Client's skills either one or the other Version shipped.
Die erfindungsgemäß auf die Ressource angewendete Trans formation hat zwei Aspekte, die alternativ oder in Kombina tion zur Anwendung kommen. Einerseits kann durch die Trans formation die Redundanz der Klartextdaten erhöht werden. The Trans. Applied to the resource according to the invention formation has two aspects, alternatively or in Kombina tion are used. On the one hand, the Trans formation, the redundancy of the plain text data can be increased.
Hierdurch werden die Daten der Ressource besser komprimier bar. Dies beruht auf der Beobachtung, daß alle Kompressons verfahren die in einer Datenmenge bestehende Redundanz aus nutzen, um die Daten zu komprimieren. Der Kompressiongrad, d. h. das Verhältnis der ursprünglichen Datengröße zur Größe der komprimierten Fassung der Daten wird hierbei um so bes ser, je größer die in den Daten vorhandenen Redundanz ist.This will compress the resource's data better bar. This is based on the observation that all compressors proceed the redundancy existing in a data set use to compress the data. The degree of compression, d. H. the ratio of the original data size to the size the compressed version of the data is all the more special The greater the redundancy in the data.
Ein Beispiel für Redundanzen in Dateien ist es, wenn die Daten eine Anzahl von Wiederholungen enthalten. Anstatt die wiederholten Sequenzen jeweils vollständig abzuspeichern, kann ein geeignetes Kompressionsverfahren jede Sequenz le diglich einmal speichern und danach nur noch die Anzahl und Position der jeweiligen Wiederholungen markieren. Entspre chende Kompressionsalgorithmen (z. B. gzip, deflate, etc.) sind dem Fachmann bekannt.An example of redundancies in files is when the Data contains a number of repetitions. Instead of that save repeated sequences completely, a suitable compression method can le each sequence Save only once and then only the number and Mark the position of the respective repetitions. Correspond appropriate compression algorithms (e.g. gzip, deflate, etc.) are known to the person skilled in the art.
Ein weiteres Beispiel für Redundanz ist es, wenn nicht alle in einem Zeichensatz zur Verfügung stehenden Zeichen mit derselben Häufigkeit vorkommen. In diesem Fall kann eine Häufigkeitsanalyse durchgeführt werden, wobei häufig vor kommende Zeichen durch kurze, selten vorkommende Zeichen durch lange Symbole repräsentiert werden. Auch hierzu sind entsprechende Verfahren (z. B. Huffman-Codierung) dem Fach mann bekannt.Another example of redundancy is if not all characters available in a character set with occur at the same frequency. In this case, a Frequency analysis can be done, often before coming characters by short, rarely occurring characters are represented by long symbols. Also here are corresponding procedures (e.g. Huffman coding) to the subject man known.
Die Transformationsroutine, die die Redundanz der Klartext daten erhöhen soll, kann z. B.. an diesen genannten Punkten ansetzen und eine Transformation durchführen, bei der die Anzahl der Wiederholungen in der Datei erhöht werden bzw. die Häufigkeitsverteilung der einzelnen vorkommenden Buch staben verändert wird.The transformation routine that provides the redundancy of the plain text data should increase, z. B .. at these points start and carry out a transformation in which the Number of repetitions in the file are increased or the frequency distribution of the individual occurring book is changed.
Besonders bei HTML- oder XML-Dateien ist eine solche Trans formation vorteilhaft, wobei der HTML- bzw. XML-Quelltext verändert wird, aber die Darstellung auf dem Client gleich bleibt. Beispielsweise können einige oder alle der verwende ten Tags als Kleinbuchstaben geschrieben werden. Hierdurch erhöht sich die Redundanz der Daten einerseits durch eine höhere Anzahl von Wiederholungen (einige Tags treten sehr häufig auf), andererseits durch eine weniger gleichmäßige Häufigkeitsverteilung (Kleinbuchstaben treten erheblich häufiger auf als Großbuchstaben).Such a trans is particularly useful for HTML or XML files formation advantageous, the HTML or XML source text is changed, but the display on the client is the same remains. For example, some or all of you can use ten tags are written as lowercase letters. Hereby On the one hand, the redundancy of the data is increased by a higher number of repetitions (some tags occur very often often on), on the other hand by a less uniform Frequency distribution (lowercase letters occur considerably more often than capital letters).
Die Transformation kann auch sogenannte Whitespace-Elemente bearbeiten. Hierbei handelt es sich um Elemente des Zeichen satzes, die als Leerzeichen fungieren und häufig zur Forma tierung von Quelltexten verwendet werden. Darunter zählen die ASCII-Symbole space ( ), tab ( ), form feed ( ), zero-width space ( ) sowie Zeilen umbrüche. Diese verschiedenen Symbole werden in Quelltexten zur besseren Lesbarkeit häufig eingefügt. Bei der Darstel lung von HTML- oder XML-Seiten spielen die unterschiedlichen Whitespace-Elemente jedoch keine Rolle, sondern es kommt (wenn überhaupt) nur darauf an, daß überhaupt ein Whitespace-Element vorhanden ist. Zur Erhöhung der Redundanz können daher die verschiedenen Whitespace-Elemente stets durch ein und dasselbe Element, beispielsweise ASCII space ersetzt werden. Dies beeinflußt die Häufigkeitsverteilung und führt zu einer größeren Anzahl Wiederholungen, so daß die Redundanz steigt.The transformation can also be called whitespace elements to edit. These are elements of the sign sentence that act as spaces and often forma source code can be used. Count among them the ASCII symbols space (), tab (), form feed (), zero-width space () and lines breaks. These different symbols are in source code Often inserted for readability. At the Darstel HTML or XML pages play the different Whitespace elements don't matter, however, it does (if at all) just insinuate that a Whitespace element exists. To increase redundancy can therefore always use the different whitespace elements by one and the same element, for example ASCII space be replaced. This affects the frequency distribution and leads to a larger number of repetitions, so that redundancy increases.
Eine weitere mögliche Transformation, mit der die Redundanz erhöht werden kann, ohne daß die Darstellung einer HTML- oder XML-Seite dadurch geändert wird, ist die Ersetzung gleichwertiger Tags. In HTML sind beispielsweise die Tags "<b<" (für "bold", Fettdruck) und "<strong<" gleichwertig. Wenn alle "<strong<"-Tags durch "<b<"-Tags ersetzt werden, ergibt sich einerseits eine Verkürzung der Datenmenge, weil der "<b<"-Tag kürzer ist. Auf diese Weise werden die ver schiedenen Tags stets durch ein und denselben (gleichwerti gen) Tag ersetzt. Hierdurch steigt die Redundanz, wenn der Tag häufig vorkommt und somit eine entsprechende Anzahl Wiederholungen aufweist.Another possible transformation with which redundancy can be increased without the display of an HTML or XML page is thereby changed, is the replacement equivalent tags. In HTML, for example, are the tags "<b <" (for "bold", bold) and "<strong <" equivalent. If all "<strong <" tags are replaced with "<b <" tags, on the one hand there is a reduction in the amount of data because the "<b <" day is shorter. In this way, the ver different tags always by one and the same (equivalent gen) day replaced. This increases the redundancy if the Day occurs frequently and therefore a corresponding number Repeats.
Programmtechnisch kann eine solche Ersetzung vorteilhaft über einen Lookup-Table, d. h. eine Ersetzungstabelle reali siert werden. Nachdem beim Durchgehen des Klartextes ein Tag erkannt wird, wird dieser in der Tabelle aufgesucht. Die Tabelle enthält dann den gleichwertigen Ersatz-Tag, der an die entsprechende Stelle gesetzt werden soll. So kann auch eine Ersetzung von Umlauten, z. B. "ä" durch die HTML-Code- Entsprechung () vorgenommen werden.In terms of programming, such a replacement can be advantageous via a lookup table, d. H. a replacement table reali be settled. After a day of going through the plaintext is recognized, this is looked up in the table. The The table then contains the equivalent replacement tag that is on the appropriate position should be set. So can a replacement of umlauts, e.g. B. "ä" through the HTML code Correspondence () can be made.
Einige HTML-Tags können Argumente enthalten (beispielsweise "<a href=adresse.irgendwo.de<"). Andere Tags haben keine Argumente (beispielsweise "<title<"). Aus Performance-Grün den kann es sinnvoll sein, nur HTML-Tags ohne Argumente bei der Transformation zu behandeln. Diese können sicher erkannt werden und die Umsetzung dieser Tags in Kleinbuchstaben ist auch mit Sicherheit unschädlich. Bei Argumenten hingegen ist die Transformation der Argumente in manchen Fällen uner wünscht (z. B. bei Dateinamen, bei denen je nach Betriebs system durchaus zwischen Groß- und Kleinschreibung unter schieden wird).Some HTML tags can contain arguments (for example "<a href = adresse.irgendwo.de <"). There are no other tags Arguments (for example, "<title <"). Made of performance green it can make sense to only include HTML tags without arguments to handle the transformation. These can be recognized safely and the implementation of these tags is in lower case also harmless with certainty. With arguments, however, is in some cases the transformation of the arguments is not wishes (e.g. for file names where, depending on the company system between upper and lower case will be divorced).
Der zweite Aspekt der erfindungsgemäßen Transformation, der alternativ oder kumulativ zur Erhöhung der Redundanz einge setzt werden kann, betrifft eine verlustbehaftete Komprimie rung der Klartextdaten, durch die die Darstellung der Daten ebenfalls nicht verändert wird.The second aspect of the transformation according to the invention, the alternatively or cumulatively to increase redundancy can be used affects a lossy compression tion of the plain text data by which the data is presented is also not changed.
Nach der verlustbehafteten Komprimierung ist die Länge des transformierten Klartextes geringer als die Länge des ur sprünglichen Klartextes. Hierbei werden Teile des Klartextes entfernt, so daß - im Gegensatz zu Komprimierungsroutinen wie z. B. gzip - tatsächlich eine Veränderung der Klartext daten erfolgt, bei der aus den transformierten Daten die ursprünglichen Daten nicht rekonstruiert werden können (da her verlustbehaftet). Allerdings wird nur eine solche ver lustbehaftete Komprimierung angewendet, die die Darstellung der Ressouce, bspw. einer HTML-Seite, nicht beeinflußt.After the lossy compression, the length of the transformed plaintext less than the length of the original original language. Here are parts of the plain text removed so that - unlike compression routines such as B. gzip - actually a change in plain text data takes place in which from the transformed data the original data cannot be reconstructed (because lossy). However, only one is ver lusty compression applied to the representation the resource, for example an HTML page, is not affected.
Ein Beispiel einer solchen Transformation ist die Ersetzung von Sequenzen von aufeinanderfolgenden Whitespace-Elementen, z. B. mehrere aufeinanderfolgende ASCII space oder Kombina tionen von Whitespace-Elementen (z. B. ein Zeilenumbruch, danach mehrere tab-Elemente) durch ein einziges ASCII space. Diese Umsetzung verringert die Länoe der HTML-Seite, hat aber keine Auswirkung auf die Darstellung, sofern die Inter pretation durch den Browser standardkonform ist.An example of such a transformation is replacement sequences of successive whitespace elements, e.g. B. several consecutive ASCII space or Kombina functions of whitespace elements (e.g. a line break, then several tab elements) through a single ASCII space. This implementation reduced the length of the HTML page but no impact on the presentation, provided the Inter pretation by the browser is standard-compliant.
HTML- und XML-Quelltexte können auch durch spezielle Tags gekennzeichnete Kommentare enthalten. Diese Kommentare fin den bei der Darstellung keine Berücksichtigung. Sie können daher bei der verlustbehafteten Komprimierung ersatzlos gestrichen werden.HTML and XML source codes can also be created using special tags tagged comments. These comments fin not taken into account in the presentation. You can therefore without replacement for lossy compression be deleted.
Die Erhöhung der Redundanz der Klartextdaten ermöglicht eine bessere Datenkompression und damit eine bessere Ausnutzung der Bandbreite. Dies gilt schon ohne direkte Anwendung der Datenkompressionsalgorithmen durch den Server selbst. Denn eine Anzahl von Übertragungswegen, darunter Modem-Leitungen, verwenden bereits Kompressionsverfahren, die von der erhöh ten Redundanz profitieren. Besonders vorteilhaft ist aber eine Weiterbildung der Erfindung, nach der die Anfrage (be vorzugt die Kopfinformationen des Request) ausgewertet wird, um festzustellen, ob der Client die Response in einer co dierten Form verarbeiten kann. Hierbei kann es sich bei spielsweise um das "Accept-Encoding"-Feld eines HTTP-Request handeln. Wenn dieses Feld den Wert "gzip", "compress" oder "deflate" hat, kann der Client mit dem entsprechenden Algo rithmus komprimierte Daten verarbeiten. Wenn dies erkannt wird, wendet das Server-Programm den entsprechenden Codier schritt, beispielsweise eine entsprechende Verschlüsselung, vorzugsweise jedoch ein bekanntes Kompressionsverfahren auf die transformierten Daten an. Hierbei wirkt es sich beson ders vorteilhaft aus, wenn durch die Transformation zuvor die Redundanz der Klartextdaten erhöht wurde. Denn alle bekannten Kompressionsverfahren nutzen die Redundanz aus, um Daten zu komprimieren. Bei erhöhter Redundanz wird der Kom pressionsgrad höher, so daß die zur Verfügung stehende Band breite des Übertragungsweges besser ausgenutzt wird und die Übertragung der Ressource schneller, d. h. in kürzerer Zeit, abgeschlossen ist.Increasing the redundancy of the plain text data enables one better data compression and thus better utilization the bandwidth. This applies even without the direct application of Data compression algorithms by the server itself. Because a number of transmission paths, including modem lines, already use compression methods, which increase from the Redundancy benefits. But is particularly advantageous a development of the invention, according to which the request (be preferably the header information of the request) is evaluated, to determine whether the client is responding in a co processed form. This can be for example about the "Accept-Encoding" field of an HTTP request act. If this field has the value "gzip", "compress" or "deflate", the client can use the appropriate algo Process compressed data. If this is recognized the server program uses the appropriate coding step, for example an appropriate encryption, but preferably a known compression method the transformed data. Here it has a special effect otherwise advantageous if previously through the transformation the redundancy of the plain text data has been increased. Because everyone Known compression methods take advantage of the redundancy in order Compress data. With increased redundancy, the com degree of compression higher, so that the available tape width of the transmission path is better exploited and the Resource transfer faster, d. H. in shorter time, is completed.
Die Realisierung eines erfindungsgemäßen Verfahrens oder eines erfindungsgemäßen Servers wird üblicherweise durch einen als Server fungierenden Computer geschehen, der ein entsprechendes Programm ausführt. Bei dem Server-Computer handelt es sich beispielsweise um einen herkömmlichen PC (Personal Computer) mit üblichen Hardware-Komponenten, d. h. einer Zentraleinheit mit einem oder mehreren Prozessoren, RAM-Speicher, einer Festplatte (oder einem vergleichbaren Massespeicher) handeln.The implementation of a method according to the invention or of a server according to the invention is usually performed by a computer acting as a server, the one executes the corresponding program. At the server computer it is for example a conventional PC (Personal Computer) with common hardware components, d. H. a central unit with one or more processors, RAM, a hard drive (or a comparable one Mass storage) act.
Als mögliche Implementierung von Teilen des Server-Pro gramms, beispielsweise des Codieralgorithmus, kann eine Implementierung in einer Interpreter-Sprache gewählt werden. Bevorzugt ist jedoch, daß das Programm vollständig kompi lierbar ist, d. h. nach einem Übersetzungsvorgang als direkt ausführbarer Code vollständig vorliegt.As a possible implementation of parts of the Server Pro grammes, for example the coding algorithm, can Implementation in an interpreter language. However, it is preferred that the program is completely compi can be d. H. after a translation process as direct executable code is complete.
Bevorzugt wird auch, daß das Programm den Codierschritt (z. B. Anwendung des Kompressionsverfahrens) "on the fly" durchführt, d. h. unmittelbar beim Anruf einer Klartext-Res source davon eine Codierfassung im Arbeitsspeicher erstellt und diese Codierfassung dann aus dem Arbeitsspeicher über mittelt. Der Verzicht auf Dateizugriffe beschleunigt hierbei den Ablauf des entsprechenden Programms.It is also preferred that the program complete the coding step (e.g. application of the compression process) "on the fly" performs, d. H. immediately when calling a clear text res source of which created a code version in the working memory and then this code reading from the main memory averages. Dispensing with file access speeds up the process the execution of the corresponding program.
Auf dem Server-Computer kann auch bereits ein herkömmliches Server-Programm (z. B. das oben erwähnte "Apache") als Ur sprungs-Server ablaufen. Das Server-Programm, das gemäß der Erfindung arbeitet und als Beschleunigungs-Server eingesetzt ist, kann dann zusätzlich auf demselben Computer ablaufen, wobei es als Proxy-Server arbeitet, d. h. das herkömmliche, parallel ablaufende Server-Programm als Datenquelle nutzt.A conventional one can already exist on the server computer Server program (e.g. the "Apache" mentioned above) as the original jump server expire. The server program that according to the Invention works and used as an acceleration server can then also run on the same computer, operating as a proxy server, i.e. H. the conventional, server program running in parallel as a data source.
Bevorzugt ist aber, das Server-Programm gemäß der Erfindung auf einem eigens dafür vorgesehenen Computer (dedizierter Server) ablaufen zu lassen. Im Fall des Einsatzes als Proxy- Server kann so ein bestehendes System mit einem Ursprungs- Server mit geringem Aufwand so umgestaltet werden, daß zu sätzlich ein Beschleunigungs-Server vorhanden ist. Ein sol cher Server-Computer kann als vollständiges Produkt, beste hend aus Hard- und Software, eigenständig vertrieben werden und mit minimalem Konfigurationsaufwand bestehenden Systemen zur Beschleunigung "vorgeschaltet" werden.However, the server program according to the invention is preferred on a dedicated computer (dedicated Server) to run. When used as a proxy Server can thus an existing system with an origin Servers can be redesigned with little effort so that an acceleration server is also available. A sol cher server computer can be a complete product, best based on hardware and software and existing systems with minimal configuration effort be "upstream" for acceleration.
Bemerkenswert beim Einsatz eines erfindungsgemäßen Beschleu nigungs-Servers ist die Position, die der Beschleunigungs- Server in dem gesamten System einnimmt. Wie erwähnt dient die angemeldete Transformation der besseren Ausnutzung der Bandbreite, vor allem durch zusätzliche Kompressionsverfah ren. Diese Beschleunigung betrifft den "downstream"-Bereich, d. h. den Transfer vom (Beschleunigungs-) Server zum Client.Remarkable when using an accelerator according to the invention acceleration server is the position that the acceleration Server in the entire system. As mentioned serves the registered transformation of the better utilization of the Bandwidth, especially through additional compression ren. This acceleration affects the "downstream" area, d. H. the transfer from the (acceleration) server to the client.
Proxy-Server sind stets logisch zwischen Client und (Ur sprungs-) Server angeordnet. Während herkömmliche Proxy- Server hierbei jedoch eher im Bereich eines oder mehrerer Clients (z. B. bei einem ISP, d. h. einem Internet-Zugangs provider) angeordnet sind und über diese Proxy-Server der Zugriff auf alle möglichen Server geleitet werden, ist der Beschleunigungs-Server bevorzugt einem einzigen bzw. einer eng begrenzten Gruppe von Servern zugeordnet. Der Beschleu nigungs-Server dient dann allen möglichen Clients als An laufstelle und beschleunigt durch die angewandte Transforma tion und ggfs. Kompression den Downstream-Verkehr für die von dem Ursprungs-Server abgerufenen Ressourcen.Proxy servers are always logical between the client and (Ur jump) server arranged. While conventional proxy However, servers tend to be in the range of one or more Clients (e.g. with an ISP, i.e. an Internet access provider) are arranged and via this proxy server Access to all possible servers is routed to Acceleration server preferably a single one narrowly assigned to a group of servers. The acceleration The cleaning server then serves as a connection for all possible clients running place and accelerated by the applied transforma tion and possibly compression the downstream traffic for the resources retrieved from the origin server.
Diese Anordnung ist eine logische Anordnung, d. h. die physi kalischen Standarte können hiervon abweichen. Aber in der Praxis empfiehlt es sich auch, den Beschleunigungs-Server nahe beim Ursprungs-Server anzuordnen, da bevorzugt diese beiden über eine breitbandige Anbindung (d. h. breitbandiger als eine Wählverbindung, z. B. über Modem oder ISDN, bevor zugt ab 100 MBit/s) gekoppelt sind. Breitbandige Netzwerk verbindungen sind über kurze Strecken, z. B. innerhalb eines Gebäudes, sehr kostengünstig zu realisieren (z. B. über Twi sted-Pair Netzkabel, 100 oder 1000 MBit/s, oder über direkte Glasfaser-Verbindungen).This arrangement is a logical arrangement, i. H. the physi Kalische standards can deviate from this. But in the In practice, it is also recommended to use the acceleration server to be placed close to the origin server, because this is preferred both via a broadband connection (i.e. broadband as a dial-up connection, e.g. B. via modem or ISDN before from 100 Mbit / s) are coupled. Broadband network Connections are made over short distances, e.g. B. within one Building, very inexpensive to implement (e.g. via Twi sted-pair power cable, 100 or 1000 Mbit / s, or via direct Fiber optic connections).
Nachfolgend wird eine Ausführungsform der Erfindung be schrieben. Hierfür wird auf die Zeichnungen Bezug genommen. In den Zeichnungen zeigen:An embodiment of the invention will be hereinafter wrote. For this purpose, reference is made to the drawings. The drawings show:
Fig. 1 ein Diagramm zum Ablauf des Datenaustausches nach dem HTTP-Protokoll; Figure 1 is a diagram of the flow of data exchange according to the HTTP protocol.
Fig. 2 ein Diagramm zu Aufbau eines HTTP-Request; Fig. 2 is a diagram of structure of a HTTP request;
Fig. 3 ein Diagramm zum Aufbau einer HTTP-Response; Fig. 3 is a diagram showing the configuration of a HTTP response;
Fig. 4 eine symbolische Darstellung der Komponenten eines Systems mit einem HTTP-Server; . Figure 4 is a symbolic representation of the components of a system with an HTTP server;
Fig. 5 ein Ablaufdiagramm der Beantwortung eines Request durch den Server; Fig. 5 is a flowchart of the response to a request by the server;
Fig. 6 eine symbolische Darstellung der Komponenten eines Systems aus Ursprungs- und Beschleunigungs-Server. Fig. 6 is a symbolic representation of the components of a system of origin and acceleration server.
Fig. 1 stellt den Ablauf des Datenaustausches nach dem HTTP-Protokoll dar. Ein HTTP-Server 3 (Webserver) bietet den entsprechenden Dienst an. Der Benutzer verwendet einen Client 1 (Browser), um Daten von dem Server 3 abzurufen. Der Client 1 formuliert ein Request 2, der dem Server 3 über mittelt wird. Der Server 3 formuliert eine entsprechende Response 4, die an den Client zurückgegeben wird. Aus der Response 4 entnimmt der Client die gewünschten Informatio nen. Im Fall eines HTML-Dokuments interpretiert der Client die entsprechenden Anweisungen zur Darstellung einer Seite und stellt diese für den Benutzer sichtbar dar. Fig. 1 illustrates the sequence of exchanging data according to the HTTP protocol. An HTTP server 3 (Web server) provides the corresponding service. The user uses a client 1 (browser) to retrieve data from the server 3 . The client 1 formulates a request 2 , which is transmitted to the server 3 . The server 3 formulates a corresponding response 4 , which is returned to the client. The client takes the desired information from Response 4 . In the case of an HTML document, the client interprets the corresponding instructions for displaying a page and makes them visible to the user.
Fig. 2 zeigt den Aufbau eines entsprechenden Requests 2. Dieser besteht aus einem Head- und einem Body-Bereich. Der Kopfbereich enthält verschiedene Felder, darunter das Feld "Accept-Encoding" sowie weitere Felder, beispielsweise "Ac cept-Language". Die in diesen Feldern enthaltenen Informa tionen teilen dem Server mit, in welcher Form der Client die angeforderten Informationen verwenden kann. Im in Fig. 2 dargestellten Beispiel ist der Inhalt des Feldes "Accept- Encoding" der Token "gzip". Ein Satz von entsprechenden Tokens ist in der Spezifikation HTTP1.1 definiert. Hier bedeutet "gzip" ein Kompressionsformat, das von dem Kom pressionsprogramm "gzip" (GNUzip) produziert wird, das in RFC1952 beschrieben ist. Es handelt sich um ein Lempel-Ziv- Codierverfahren (LZ77) mit 32 Bit CRC (Cyclic Redundancy Check). Fig. 2 shows the structure of a corresponding Requests 2. This consists of a head and a body area. The header area contains various fields, including the "Accept-Encoding" field and other fields, for example "Ac cept-Language". The information contained in these fields tells the server in what form the client can use the requested information. In the example shown in FIG. 2, the content of the "Accept-Encoding" field is the token "gzip". A set of corresponding tokens is defined in the HTTP1.1 specification. Here "gzip" means a compression format that is produced by the compression program "gzip" (GNUzip), which is described in RFC1952. It is a Lempel-Ziv coding method (LZ77) with 32 bit CRC (Cyclic Redundancy Check).
Fig. 3 stellt eine beispielhafte Response 4 auf den Request aus Fig. 2 dar. Die Response 4 weist einen Head- und einen Body-Bereich auf. Der Kopfbereich enthält verschiedene Felder, darunter das Feld "Content-Encoding". Im dargestell ten Beispiel enthält dieses Feld den Token "gzip", d. h. daß die im Body enthaltenen Daten wie im Head-Bereich des Re quest gewünscht mit einem "gzip"-Verfahren komprimiert wur den. Entsprechend enhält der Body-Bereich der Response dann auch die mit diesem Verfahren komprimierten Daten. FIG. 3 shows an exemplary response 4 to the request from FIG. 2. Response 4 has a head and a body area. The header area contains various fields, including the "Content Encoding" field. In the example shown in this field, this field contains the token "gzip", which means that the data contained in the body was compressed using a "gzip" method as desired in the head area of the request. Correspondingly, the body area of the response then also contains the data compressed with this method.
In Fig. 4 sind in einer symbolischen Darstellung die an der oben erläuterten Datenübertragung beteiligten Hardware-Kom ponenten dargestellt. Diese umfassen einerseits einen Server-Computer 10 und eine Anzahl Client-Computer 12. Diese Computer sind über ein Daten-Netzwerk 14, in der Regel das weltumspannende Internet, miteinander verbunden. Die Clients 12 befinden sich verteilt an den unterschiedlichsten Orten. Sie sind mit dem Datennetzwerk 14 über verschiedene Über tragungswege 16 angekoppelt, darunter Modem-Leitungen, Standleitungen etc. Die Ankopplung der Clients an das Netz werk ist im allgemeinen schmalbandig mit Bandbreiten von etwa 33 kBit/s bis 64 kBit/s.In FIG. 4, the hardware-Kom involved in the above-described data transmission are in a symbolic representation illustrated components. On the one hand, these include a server computer 10 and a number of client computers 12 . These computers are connected to one another via a data network 14 , generally the global Internet. The clients 12 are distributed in a wide variety of locations. They are coupled to the data network 14 via various transmission paths 16 , including modem lines, dedicated lines etc. The coupling of the clients to the network is generally narrowband with bandwidths of approximately 33 kbit / s to 64 kbit / s.
Bei den Client-Computern 12 kann es sich um sehr verschiede ne Geräte handeln, darunter Workstations, Personal Computer, internetfähige Telefone etc. Auf den Client-Computern 12 wird jeweils ein Client-Programm ausgeführt, beispielsweise Microsoft Internet Explorer, Netscape Navigator oder andere. Diese Programme arbeiten als HTTP-Client wie oben beschrie ben. Sie können die über das HTTP-Protokoll vom Server-Com puter 10 abgerufene Ressource für den Benutzer darstellen. Handelt es sich bei der Ressource um eine HTML- oder XML- Datei, wird diese von dem Browser-Programm interpretiert und entsprechend dargestellt.The client computers 12 can be very different devices, including workstations, personal computers, internet-capable telephones, etc. A client program is executed on the client computers 12 , for example Microsoft Internet Explorer, Netscape Navigator or others. These programs work as an HTTP client as described above. You can display the resource retrieved from the server computer 10 via the HTTP protocol for the user. If the resource is an HTML or XML file, it is interpreted by the browser program and displayed accordingly.
Der Server-Computer 10 kann ebenfalls ein beliebiger Typ von Computer sein. Server, die eine große Anzahl von Anfragen bearbeiten, weisen jedoch in der Regel eine deutlich bessere Ausstattung als ein durchschnittlicher Client-Computer auf. Systeme mit mehreren Prozessoren und hoher Verarbeitungs geschwindigkeit sowie ein großer Arbeitsspeicher sind hier üblich.Server computer 10 can also be any type of computer. However, servers that process a large number of requests usually have significantly better equipment than the average client computer. Systems with several processors and high processing speed as well as a large working memory are common here.
Der Server-Computer 10 ist über eine Netzwerkverbindung 18 mit dem Internet verbunden. Die Netzwerkverbindung 18 ist relativ breitbandig mit typischen Datenübertragungsraten von mindestens 1 MBit/s.The server computer 10 is connected to the Internet via a network connection 18 . The network connection 18 is relatively broadband with typical data transmission rates of at least 1 Mbit / s.
Der Server-Computer 10 fährt ein HTTP-Server-Programm aus. Derartige Programme sind dem Fachmann bekannt, so beispiels weise der HTTP-Server Apache, der iPlanet-Webserver oder der Internet Information Server der Firma Microsoft. Das auf dem Server-Computer 10 des Ausführungsbeispiels ablaufende Pro gramm verhält sich im wesentlichen wie herkömmliche HTTP- Server, d. h. er beantwortet Requests von Clients, indem er die angeforderten Ressourcen einer Festplatte 11 entnimmt und als Response dem Client übermittelt. Der entscheidende Unterschied ist jedoch die Anwendung einer speziellen Trans formationsroutine auf die Daten bestimmter abgerufener Res sourcen und die anschließende Komprimierung der so trans formierten Daten, wenn der jeweilige Client diese Komprimie rung verarbeiten kann.The server computer 10 runs an HTTP server program. Such programs are known to the person skilled in the art, for example the Apache HTTP server, the iPlanet web server or the Internet Information Server from Microsoft. The program running on the server computer 10 of the exemplary embodiment behaves essentially like conventional HTTP servers, ie it responds to requests from clients by removing the requested resources from a hard disk 11 and transmitting them as a response to the client. The decisive difference, however, is the application of a special transformation routine to the data of certain retrieved resources and the subsequent compression of the data transformed in this way, if the respective client can process this compression.
Nachfolgend wird eine Implementation des auf den Server- Computer 10 ablaufenden Programms vorgestellt und anhand des Ablaufdiagramms von Fig. 5 erläutert. Das in der Program miersprache C geschriebene Programm ist im Anhang beigefügt; in der Erläuterung wird auf die Zeilennummerierung dort Bezug genommen. Die entsprechende Routine ist zur Integra tion in den iPlanet-Server der Firma Netscape vorgesehen.In the following, an implementation of the program running on the server computer 10 is presented and explained using the flow chart of FIG. 5. The program written in the programming language C is attached; in the explanation, reference is made to the line numbering there. The corresponding routine is intended for integration into the iPlanet server from Netscape.
Wenn der - in Fig. 5 als großer Kasten dargestellte - Web- Server 3 einen HTTP-Request 2 vom Browser 1 erhält, prüft er zunächst den Typ der angeforderten Ressource. Handelt es sich um eine HTML oder XML-Datei, wird die Funktion "accele rate" (ab Zeile 74) aufgerufen. Sonst wird die Ressource wie üblich übertragen.When the web server 3, shown as a large box in FIG. 5, receives an HTTP request 2 from the browser 1 , it first checks the type of the requested resource. If it is an HTML or XML file, the "accele rate" function (from line 74) is called. Otherwise the resource will be transferred as usual.
Die Funktion "accelerate" führt zunächst eine Anzahl von Überprüfungen durch, ob die Anfrage gültig und fehlerfrei ist (Zeile 133-170).The "accelerate" function initially performs a number of Checks by whether the request is valid and error-free is (line 133-170).
Dann werden die Daten vorbereitet (Zeile 178 ff). Hierbei werden zwei Transformationen auf die Daten angewendet. Ei nerseits werden alle "einfachen" Tags (d. h. ohne Argumente) in Kleinbuchstaben umgewandelt. Andererseits werden aufein anderfolgende Whitespace-Elemente durch ein einziges er setzt.Then the data is prepared (line 178 ff). Here two transformations are applied to the data. Egg on the other hand, all "simple" tags (i.e. without arguments) converted to lower case. On the other hand, will be on successive whitespace elements by a single he puts.
Die entsprechende Routine enthält ein Flag "tag_start". Ist dieses auf den Wert 0 gesetzt, so wird an der aktuellen Zeigerposition kein Tag bearbeitet. Sonst enthält tag start die Position des Anfangs des derzeit bearbeiteten Tags.The corresponding routine contains a "tag_start" flag. Is If this is set to the value 0, the current Pointer position not processed a day. Otherwise tag contains start the position of the start of the currently edited tag.
Die gesamte Klartext-Datei buffer wird in der Schleife ab Zeile 190 mit einem Index i durchlaufen und daraus eine transformierte Fassung input erstellt, bei der der Index fsize auf das jeweilige Ende zeigt. Falls hierbei Sequenzen aufeinanderfolgender Whitespace-Elemente angetroffen werden, wird in der transformierten Fassung (input [fsize]) nur ein einziges Leerzeichen abgespeichert (Zeile 194-201). Sonst wird der Inhalt der Klartextdaten (buffer) zunächst iden tisch in die transformierte Fassung übernommen (Zeile 205).The entire plaintext file buffer is looped down Run through line 190 with an index i and one transformed version input where the index fsize points to the end. If here sequences successive whitespace elements are encountered, is only in the transformed version (input [fsize]) only single space saved (line 194-201). Otherwise the content of the plain text data (buffer) is initially identified table in the transformed version (line 205).
Wird das Zeichen "<" angetroffen, so wird das Flag tag start auf die aktuelle Indexposition fsize gesetzt. Wird ein "<" angetroffen, wird in der gesamten transformierten Fassung seit dem Setzen des Flags tag_start der Textinhalt des Tags in Kleinbuchstaben umgewandelt (Zeile 217).If the character "<" is found, the flag tag start set to the current index position fsize. If a "<" is found in the entire transformed version since the tag_start flag was set, the text content of the tag converted to lower case (line 217).
Wird während des Durchlaufens der Eingangsdatei buffer(] ein Zeichen aufgefunden, das weder alphanumerisch noch ein "/" (Zeile 221) ist, wird das Flag tag_start auf Null gesetzt. Dies führt dazu, daß Tags mit Argumenten nicht konvertiert werden, weil in diesen Tags immer ein Zeichen auftritt, das diese Bedingung nicht erfüllt (bspw. ein Whitespace).Appears while running through the input file buffer () Character found that is neither alphanumeric nor a "/" (Line 221), the flag tag_start is set to zero. As a result, tags with arguments are not converted because there is always a character in these tags that this condition is not met (e.g. a whitespace).
Anschließend wird das Feld "Accept-Encoding" des Kopfberei ches des Request ausgewertet (Zeile 232). Falls keine Kom primierung möglich ist, werden die Daten unkomprimiert ge sendet (Zeile 240), sonst wird eine CRC 32-Prüfsumme be rechnet (Zeile 277) und die transformierten Daten input werden mit dem deflate-Algorithmus komprimiert (Zeile 284- 286). Hierbei wird die bekannte zlib-Programmbibliothek verwendet (Zeile 23), die die entsprechenden Komprimierungs routinen zur Verfügung stellt.Then the field "Accept-Encoding" of the header ches of the request evaluated (line 232). If no com is possible, the data will be uncompressed sends (line 240), otherwise a CRC 32 checksum is loaded calculates (line 277) and the transformed data input are compressed using the deflate algorithm (line 284- 286). The well-known zlib program library used (line 23), the appropriate compression routines.
Anschließend wird die Response zur Übermittlung an den Client vorbereitet, indem zunächst der entsprechende gzip header geschrieben wird (Zeile 300-307). Die so vorberei tete Response wird an den Browser zurückgegeben.The response is then sent to the Client prepared by first using the appropriate gzip header is written (line 300-307). The so prepared The response is returned to the browser.
Unter Einsatz dieses speziellen HTTP-Server-Programms kann somit die Datenübertragung nach dem HTTP-Protokoll zunächst wie herkömmlich bekannt ausgeführt werden, d. h. ein Client 12 übermittelt über die Übertragungswege 16 und 18 und das Datennetzwerk 14 einen Request 2 an den Server-Computer 10, wobei in dem Request eine bestimmte gewünschte Ressource spezifiziert ist. Der Server-Computer 10 greift auf seine Festplatte 11 zu, um die gewünschte Ressource zu erhalten und übermittelt diese in einer Response 4 zurück an den Client-Computer 12. Using this special HTTP server program, the data transmission can initially be carried out according to the HTTP protocol as is conventionally known, ie a client 12 transmits a request 2 to the server computer 10 via the transmission paths 16 and 18 and the data network 14 , where a specific desired resource is specified in the request. The server computer 10 accesses its hard disk 11 in order to obtain the desired resource and transmits it back to the client computer 12 in a response 4 .
Lediglich wenn es sich bei der angeforderten Ressource um ein HTML oder XML-Dokument handelt, erhält der Client 12 - je nach seinen Fähigkeiten in komprimierter oder unkompri mierter Form - die Ressource nicht notwendig in derselben Form, wie sie auf der Festplatte 11 des Server-Computers 10 gespeichert ist. Sondern durch die verlustbehaftete Kom primierung und Erhöhung der Redundanz innerhalb des Doku ments erhält der Client 12 eine transformierte Version, deren spezifikationsgemäße Darstellung sich allerdings von der ursprünglichen Fassung dieses Dokuments nicht unter scheidet. Die transformierte Version ist hierbei bereits kürzer als die ursprüngliche bzw. läßt sich besser kompri mieren, so daß insgesamt die Bandbreite des Übertragungswegs über die Netzwerkverbindungen 16, 18 und das Datennetzwerk 14 besser ausgenutzt werden. Dies betrifft insbesondere die Netzwerkverbindung 16 des Client-Computers 12 mit einem Internet-Service-Provider, wenn es sich hierbei um eine Modem-Verbindung handelt. Denn alle derzeit gängigen Modem- Protokolle zur Datenübertragung beinhalten ein (verlustlo ses) Kompressionsverfahren, bei dem der Kompressionsgrad bei höherer Redundanz günstiger wird.Only if the requested resource is an HTML or XML document does the client 12 - depending on his capabilities in compressed or uncompressed form - not necessarily receive the resource in the same form as it is on the hard disk 11 of the server. Computer 10 is stored. Instead, due to the lossy compression and increase in the redundancy within the document, the client 12 receives a transformed version, the representation of which, however, does not differ from the original version of this document in accordance with the specification. The transformed version is already shorter than the original one or can be compressed better, so that overall the bandwidth of the transmission path over the network connections 16 , 18 and the data network 14 can be better utilized. This applies in particular to the network connection 16 of the client computer 12 with an Internet service provider, if this is a modem connection. This is because all current modem protocols for data transmission include a (lossless) compression process, in which the degree of compression becomes cheaper with higher redundancy.
In Fig. 6 ist eine zweite Ausführungsform der Erfindung dargestellt. Auch bei dieser Ausführungsform sind eine An zahl Client-Computer 12, auf denen jeweils ein Browser-Pro gramm läuft, über (schmalbandige) Netzwerkverbindungen 16 mit dem Datennetzwerk 14 verbunden. Hier existiert ebenfalls eine Datenverbindung 18 vom symbolisch dargestellten Anbie ter-Ort 20 (z. B. ein Gebäude, Rechenzentrum etc.) zum Daten netzwerk 14. Innerhalb dieses Anbieter-Orts 20 sind ein Ursprungs-Server 22 und ein Beschleunigungs-Server 24 an die Netzverbindung 18 angeschlossen. Der Ursprungs-Server 22 führt ein herkömmliches HTTP-Server-Programm aus. Werden Anfragen an diesen HTTP-Server gestellt, ruft dieser die darin spezifizierten Ressourcen vom Festplattenspeicher 23 ab.In FIG. 6, a second embodiment of the invention is shown. In this embodiment, too, a number of client computers 12 , each running a browser program, are connected to the data network 14 via (narrowband) network connections 16 . Here, too, there is a data connection 18 from the symbolically represented provider location 20 (for example a building, data center, etc.) to the data network 14 . Within this provider location 20 , an origin server 22 and an acceleration server 24 are connected to the network connection 18 . The origin server 22 executes a conventional HTTP server program. If requests are made to this HTTP server, it retrieves the resources specified therein from the hard disk memory 23 .
Zusätzlich befindet sich innerhalb des Betreiber-Ortes 20 ein Beschleunigungs-Server 24, der ebenfalls an die Netz werkverbindung 18 angeschlossen ist. Bei dem Beschleunigungs-Server 24 handelt es sich um einen eigen ständigen Computer, der als einziges Programm ein HTTP- Proxy-Server-Programm ausführt, das unten noch näher be schrieben wird.In addition, there is an acceleration server 24 within the operator location 20 , which is also connected to the network connection 18 . The acceleration server 24 is a stand-alone computer that is the only program that executes an HTTP proxy server program, which will be described in more detail below.
Der Beschleunigungs-Server ist beispielsweise ein Personal- Computer mit vier Prozessoren hoher Taktfrequenz. Er ist mit schnellem Arbeitsspeicher in ausreichender Menge, beispiels weise 256 MB, ausgestattet. Als Betriebssystem kommt das sehr gut netzwerkfähige Linux zum Einsatz.The acceleration server is, for example, a personal Computer with four high-frequency processors. He is with fast RAM in sufficient quantity, for example 256 MB, equipped. That comes as the operating system very good network-compatible Linux.
Das auf dem Beschleunigungs-Server 24 ausgeführte Programm ist im Grunde ein HTTP-Proxy-Server. Im Gegensatz zu her kömmlich bekannten Proxy-Servern, an die kein üblicher HTTP- Request gesendet wird, sondern die spezielle Proxy-Requests benötigen und ausgehend von diesem Request und dem darin bezeichneten Ursprungs-Server eine Anfrage an diesen rich ten, verhält sich das HTTP-Beschleunigungs-Programm nach außen wie ein echter HTTP-Server. Wird eine bestimmte Res source dieses HTTP-Servers abgefragt, entnimmt das HTTP- Beschleunigungs-Programm diese aber nicht direkt aus einer lokalen Datenquelle, sondern richtet seinerseits einen HTTP- Request an den Ursprungs-Server 22, der die Ressource bei spielsweise aus seiner Festplatte 23 entnimmt und sie dem Beschleunigungs-Server 24 als Response übermittelt. Dieser formt daraus die Response auf den ursprünglichen Request.The program running on the acceleration server 24 is basically an HTTP proxy server. In contrast to conventionally known proxy servers, to which no usual HTTP request is sent, but which require special proxy requests and which, based on this request and the origin server specified therein, send a request to these, the HTTP behaves Accelerator program to the outside like a real HTTP server. If a certain resource of this HTTP server is queried, the HTTP acceleration program does not take it directly from a local data source, but instead sends an HTTP request to the origin server 22 , which for example retrieves the resource from its hard disk 23 removed and transmitted to the acceleration server 24 as a response. This forms the response to the original request.
Hierbei führt der Proxy-Computer jedoch keine reine Weiter leitung der so beschafften Ressource durch. Sondern er wen det die in Verbindung mit dem ersten Ausführungsbeispiel vorgestellte Transformation auf HTML- und XML-Ressourcen an. Hierbei kommt eine Programm-Routine zum Einsatz, die der oben beschriebenen und in Fig. 5 dargestellten Routine sehr ähnlich ist. Der Unterschied besteht lediglich darin, daß die Beschaffung der Ressource nicht direkt aus der Daten quelle 23 geschieht, sondern daß diese vom Ursprungs-Server 22 erfragt wird.However, the proxy computer does not simply forward the resource obtained in this way. Instead, he applies the transformation presented in connection with the first exemplary embodiment to HTML and XML resources. Here, a program routine is used which is very similar to the routine described above and shown in FIG. 5. The only difference is that the resource is not obtained directly from the data source 23 , but that it is queried by the origin server 22 .
Das System aus Ursprungs-Server 22 und Beschleunigungs-Ser ver 24 ist so konfiguriert, daß ein an die Netzadresse des Anbieters gerichtete HTTP-Request zunächst vom Beschleuni gungs-Sever bearbeitet wird. Der Beschleunigungs-Server beschafft die angeforderte Ressource vom Ursprungs-Server 22, wendet die oben beschriebene Transformation auf HTML- und XML-Dateien an und komprimiert diese, wenn der Client in dem Request spezifiziert hat, daß komprimierte Inhalte ver arbeitet werden können. Diese Aufgabenteilung zwischen Be schleunigungs-Server 24 und Ursprungs-Server 22 ist für den Client nicht sichtbar.The system of origin server 22 and acceleration server 24 is configured such that an HTTP request directed to the provider's network address is first processed by the acceleration server. The acceleration server obtains the requested resource from the origin server 22 , applies the transformation described above to HTML and XML files and compresses them if the client has specified in the request that compressed contents can be processed. This division of tasks between acceleration server 24 and origin server 22 is not visible to the client.
Mit Hilfe eines separaten Beschleunigungs-Servers 24 können bestehende Systeme sehr einfach beschleunigt werden, ohne daß tiefe Eingriffe notwendig sind. Zudem wird durch die Anwendung der Transformation und Durchführung des Kompres sionsverfahrens keine zusätzliche Rechenlast auf dem Ur sprungs-Server 22 erzeugt.With the help of a separate acceleration server 24 , existing systems can be accelerated very easily without deep intervention being necessary. In addition, no additional computing load is generated on the original server 22 by the application of the transformation and implementation of the compression method.
Obwohl in Fig. 6 das System so dargestellt ist, daß vom Datennetzwerk 14 auch direkt auf den Ursprungs-Server 22 zugegriffen werden kann, ist dies nicht zwingend notwendig. Selbst wenn die physikalische Verbindung der Darstellung in Fig. 6 entspricht, können die Server 22, 24 und darauf ablaufenden Programme so konfiguriert werden, daß logisch der Beschleunigungs-Server 24 immer zwischen einem Client 12 und dem Ursprungs-Server 22 angeordnet ist. Selbstverständ lich kann eine solche Anordnung auch physikalisch realisiert werden, indem der Beschleunigungs-Server 24 mit zwei Netz werkschnittstellen ausgerüstet wird.Although the system is shown in FIG. 6 in such a way that the origin server 22 can also be accessed directly from the data network 14 , this is not absolutely necessary. Even if the physical connection corresponds to the representation in FIG. 6, the servers 22 , 24 and programs running thereon can be configured such that the acceleration server 24 is logically always arranged between a client 12 and the originating server 22 . Of course, such an arrangement can also be implemented physically by equipping the acceleration server 24 with two network interfaces.
Grundsätzlich wird die Anwendung des Beschleunigungs-Servers 24 an den Ursprungs-Server 22 so breitbandig sein, daß hier durch keine Verzögerung der Datenübertragung entsteht. Wenn diese - wie in Fig. 6 angedeutet - zusammen an einem ge meinsamen Ort beispielsweise im selben Gebäude - oder sogar unmittelbar nebeneinander - sehen, ist eine breitbandige Anbindung beispielsweise über ein optisches Netzwerk, auch einfach und kostengünstig zu realisieren.In principle, the application of the acceleration server 24 to the origin server 22 will be so broadband that there is no delay in the data transmission here. If these - as indicated in Fig. 6 - see together at a common location, for example in the same building - or even directly next to each other - a broadband connection, for example via an optical network, can also be implemented simply and inexpensively.
In der Abwandlung ist der Einsatz eines Beschleunigungs-
Servers auch als reine Software-Lösung, d. h. als separates
Programm auf dem Ursprungs-Server-Rechner 22 möglich.
In the modification, the use of an acceleration server is also possible as a pure software solution, ie as a separate program on the origin server computer 22 .
Claims (37)
ein Client (12) eine Anfrage (2) an einen Server (10, 24) stellt,
wobei in der Anfrage eine Ressource bezeichnet ist, die dem Client (12) zur Darstellung übermittelt werden soll
und der Server (10, 24) die entsprechende Ressource aus einer Datenquelle (22, 11) entnimmt,
dadurch gekennzeichnet, daß
der Server (10, 24) mindestens für vorbestimmte Typen von Ressourcen
eine Transformation auf die Daten der Ressource anwendet, durch die Darstellung der Ressource auf dem Client (12) nicht verändert wird, aber
die Redundanz der Daten erhöht wird
und/oder eine verlustbehaftete Reduktion der Da tenmenge erreicht wird,
und danach die transformierten Daten an den Client (12) übermittelt.1. Method for transmitting data in a computer network ( 14 ), in which
a client ( 12 ) makes a request ( 2 ) to a server ( 10 , 24 ),
wherein the request designates a resource that is to be transmitted to the client ( 12 ) for display
and the server ( 10 , 24 ) takes the corresponding resource from a data source ( 22 , 11 ),
characterized in that
the server ( 10 , 24 ) at least for predetermined types of resources
applies a transformation to the data of the resource, but does not change the representation of the resource on the client ( 12 )
the redundancy of the data is increased
and / or a lossy reduction in the amount of data is achieved,
and then the transformed data is transmitted to the client ( 12 ).
die Anfrage (2) des Client (12) daraufhin ausge wertet wird, ob der Client (12) die Ressource in codierter Form verarbeiten kann,
und in diesem Fall nach der Transformation eine entsprechende Codierung durchgeführt wird,
und die codierten Daten an den Client (12) über mittelt werden.2. The method according to claim 1, wherein
the request ( 2 ) from the client ( 12 ) is then evaluated as to whether the client ( 12 ) can process the resource in coded form,
and in this case a corresponding coding is carried out after the transformation,
and the encoded data are transmitted to the client ( 12 ).
die Datenquelle eine Datenbank ist,
wobei die Ressource dynamisch generiert wird.7. The method according to any one of claims 1 to 5, in which
the data source is a database,
whereby the resource is generated dynamically.
der Server (24) als Proxy-Server arbeitet
wobei die Datenquelle ein Ursprungs-Server (22) ist,
und der Proxy-Server (24) eine Anfrage an den Ur sprungs-Server (22) stellt, so daß dieser die ge wünschte Ressource übermittelt.8. The method according to any one of claims 1 to 5, in which
the server ( 24 ) works as a proxy server
the data source being an origin server ( 22 ),
and the proxy server ( 24 ) makes a request to the original server ( 22 ) so that it transmits the desired resource.
der Proxy-Server (24) direkt HTTP-Anfragen bearbei tet,
und die Ressourcen zu allen Anfragen von nur einem Ursprungs-Server (22) bezieht. 9. The method according to claim 8, wherein
the proxy server ( 24 ) processes HTTP requests directly,
and obtains the resources for all requests from only one origin server ( 22 ).
die Transformation die Behandlung von Whitespace- Elementen umfaßt,
wobei einzelne Whitespace-Elemente und/oder Gruppen von aufeinanderfolgenden Whitespace-Elementen durch stets ein und dasselbe Whitespace-Element ersetzt werden.10. The method according to any one of the preceding claims, in which
the transformation includes the treatment of whitespace elements,
whereby individual whitespace elements and / or groups of successive whitespace elements are always replaced by one and the same whitespace element.
die Transformation die Umwandlung von Tag-Elementen in einheitliche Groß/Kleinschreibung, insbesondere in Kleinschreibung aller Buchstaben umfaßt.11. The method according to any one of the preceding claims, in which
the transformation includes the conversion of tag elements into uniform upper / lower case, especially lower case of all letters.
bestimmte Tag-Elemente durch gleichwertige Ersatz- Tag-Elemente ersetzt werden,
insbesondere wobei die Ersatz-Tag-Elemente kürzer sind als die zu ersetzenden Tag-Elemente.13. The method according to any one of the preceding claims, in which
certain tag elements are replaced by equivalent replacement tag elements,
in particular where the replacement tag elements are shorter than the tag elements to be replaced.
mindestens einer Netzwerk-Schnittstelle zur Ankopp lung an ein Computer-Netzwerk (14)
über die der Server (10, 24) Anfragen von einem Client (12) aus dem Computernetzwerk (14) entgegen nimmt, in denen eine Ressource bezeichnet ist, die dem Client (12) zur Darstellung übermittelt werden soll
und mindestens eine angeschlossene Datenquelle (11, 22), aus der der Server (10, 24) die entsprechende Ressource entnimmt,
gekennzeichnet durch
Mittel zur Durchführung einer Transformation, die der Server (10, 24) mindestens auf vorbestimmte Typen von Ressourcen anwendet, bei der die Darstel lung der Ressource durch den Client (12) nicht ver ändert wird,
wobei durch die Transformation die Redundanz der Daten der Ressource erhöht wird und/oder eine ver lustbehaftete Reduktion der Datenmenge erreicht wird,
sowie Mittel zur Übertragung der transformierten Daten an den Client (12).16. Server for providing a data transmission service in a computer network ( 14 )
at least one network interface for coupling to a computer network ( 14 )
Via which the server ( 10 , 24 ) accepts requests from a client ( 12 ) from the computer network ( 14 ), in which a resource is designated that is to be transmitted to the client ( 12 ) for display
and at least one connected data source ( 11 , 22 ) from which the server ( 10 , 24 ) takes the corresponding resource,
marked by
Means for carrying out a transformation which the server ( 10 , 24 ) applies to at least predetermined types of resources, in which the representation of the resource is not changed by the client ( 12 ),
whereby the redundancy of the data of the resource is increased by the transformation and / or a lossy reduction in the amount of data is achieved,
and means for transmitting the transformed data to the client ( 12 ).
der Server (24) ein Computer mit einer Zentralein heit und einem Arbeitsspeicher ist,
wobei die Zentraleinheit ein Server-Programm aus führt, das als Proxy-Server arbeitet,
wobei als Datenquelle ein Ursprungs-Server (22) dient,
von dem der Server (24) die Ressource anfragt.17. The server of claim 16, wherein
the server ( 24 ) is a computer with a central unit and a working memory,
the central unit executing a server program that works as a proxy server,
an origin server ( 22 ) serving as the data source,
from which the server ( 24 ) requests the resource.
die Anfrage des Client (12) darauf hin ausgewertet wird, ob der Client (12) die Ressource in codierter Form verarbeiten kann,
und in diesem Fall nach der Transformation eine entsprechende Codierung durchgeführt wird,
und die codierten Daten an den Client (12) über mittelt werden.18. The server of claim 16 or 17, wherein
the request from the client ( 12 ) is evaluated to determine whether the client ( 12 ) can process the resource in coded form,
and in this case a corresponding coding is carried out after the transformation,
and the encoded data are transmitted to the client ( 12 ).
die Datenquelle eine Datenbank ist,
wobei die Ressource dynamisch generiert wird.23. Server according to one of claims 16 to 21, in which
the data source is a database,
whereby the resource is generated dynamically.
der Server (24) als Proxy-Server arbeitet,
wobei die Datenquelle ein Ursprungs-Server (22),
und der Proxy-Server (24) eine Anfrage an den Ur sprungs-Server (22) stellt, so daß dieser die ge wünschte Ressource übermittelt.24. Server according to one of claims 16 to 21, in which
the server ( 24 ) works as a proxy server,
the data source being an origin server ( 22 ),
and the proxy server ( 24 ) makes a request to the original server ( 22 ) so that it transmits the desired resource.
der Proxy-Server (24) direkte HTTP-Anfragen bearbei tet,
und die Ressourcen zu allen Anfragen von nur einem Ursprungs-Server (22) bezieht.25. The server of claim 24, wherein
the proxy server ( 24 ) processes direct HTTP requests,
and obtains the resources for all requests from only one origin server ( 22 ).
die Transformation die Behandlung von Whitespace- Elementen umfaßt,
wobei einzelne Whitespace-Elemente und/oder Gruppen von aufeinanderfolgenden Whitespace-Elementen durch stets ein und dasselbe Whitespace-Element ersetzt werden.26. Server according to one of claims 16 to 25, in which
the transformation includes the treatment of whitespace elements,
whereby individual whitespace elements and / or groups of successive whitespace elements are always replaced by one and the same whitespace element.
die Transformation die Umwandlung von Tag-Elementen in einheitliche Groß/Kleinschreibung, insbesondere in Kleinschreibweise aller Buchstaben, umfaßt.27. Server according to one of claims 16 to 26, in which
the transformation includes the conversion of tag elements into uniform upper / lower case, especially in lower case of all letters.
die Transformation nur auf Tag-Elemente ohne Argu mente angewandt wird.28. Server according to claim 27, in which
the transformation is only applied to tag elements without arguments.
bestimmte Tag-Elemente durch gleichwertige Ersatz- Tag-Elemente ersetzt werden,
insbesondere wobei die Ersatz-Tag-Elemente kürzer sind als die ersetzten Tag-Elemente.29. Server according to one of claims 16 to 28, in which
certain tag elements are replaced by equivalent replacement tag elements,
especially where the replacement tag elements are shorter than the replaced tag elements.
das Programm vollständig kompilierbar ist.33. The program of claim 32, wherein
the program is fully compilable.
das Programm komplett im flüchtigen Arbeitsspeicher arbeitet.34. Program according to one of claims 32 or 33, wherein
the program works entirely in volatile memory.
wobei mit dem Computer-Netzwerk (14) ein Ursprungs- Server (22) und eine Anzahl Clients (12) vorhanden sind,
und die Clients (12) Anfragen stellen,
wobei in den Anfragen eine Ressource bezeichnet ist, die dem Client (12) zur Darstellung übermittelt werden soll,
und der Ursprungs-Server (22) die entsprechende Ressource bereitstellt
dadurch gekennzeichnet, daß
zusätzlich ein Beschleunigungs-Server (24) vorgese hen ist, der dem Ursprungs-Server (22) logisch vor geschaltet ist,
wobei die Anfragen von dem Beschleunigungs-Server (24) bearbeitet werden,
indem dieser zunächst eine Beschaffungs-Anfrage an den Ursprungs-Server (22) richtet, so daß dieser die gewünschte Ressource übermittelt,
und indem der Beschleunigungs-Server (24) mindestens für vorbestimmte Typen von Ressourcen
eine Transformation auf die Daten der Ressource anwendet, durch die die Darstellung der Ressource auf dem Client (12) nicht verändert wird, aber
die Redundanz der Daten erhöht wird und/oder eine verlustbehaftete Reduktion der Datenmenge erreicht wird,
und danach die transformierten Daten an den Client (12) übermittelt.35. System for accelerating data transmission in computer networks,
an origin server ( 22 ) and a number of clients ( 12 ) are present with the computer network ( 14 ),
and the clients ( 12 ) make requests,
a resource is designated in the inquiries, which is to be transmitted to the client ( 12 ) for display,
and the origin server ( 22 ) provides the appropriate resource
characterized in that
an acceleration server ( 24 ) is additionally provided, which is logically connected upstream of the origin server ( 22 ),
the requests are processed by the acceleration server ( 24 ),
by first sending a procurement request to the origin server ( 22 ) so that it transmits the desired resource,
and by the acceleration server ( 24 ) at least for predetermined types of resources
applies a transformation to the data of the resource which does not change the representation of the resource on the client ( 12 ), however
the redundancy of the data is increased and / or a lossy reduction in the amount of data is achieved,
and then the transformed data is transmitted to the client ( 12 ).
der Beschleunigungs-Server (24) nur einem Ursprungs- Server (22) unmittelbar vorgeschaltet ist.36. The system of claim 35, wherein
the acceleration server ( 24 ) is only connected directly upstream of an origin server ( 22 ).
eine Verbindung hoher Bandbreite den Beschleuni gungs-Server (24) mit dem Ursprungs-Server (22) verbindet.37. The system of claim 35 or 36, wherein
a high bandwidth connection connects the acceleration server ( 24 ) to the origin server ( 22 ).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10128147A DE10128147A1 (en) | 2000-06-16 | 2001-06-09 | Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increased |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10028988 | 2000-06-16 | ||
DE10128147A DE10128147A1 (en) | 2000-06-16 | 2001-06-09 | Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increased |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10128147A1 true DE10128147A1 (en) | 2001-12-20 |
Family
ID=7645505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10128147A Withdrawn DE10128147A1 (en) | 2000-06-16 | 2001-06-09 | Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increased |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10128147A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006050978B3 (en) * | 2006-10-20 | 2008-02-07 | Webfactory Gmbh | Hypermedia sites providing method, involves producing and including program source code suitable for client sided execution, in information to be transmitted over hypermedia site, and transmitting information over site to client system |
-
2001
- 2001-06-09 DE DE10128147A patent/DE10128147A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006050978B3 (en) * | 2006-10-20 | 2008-02-07 | Webfactory Gmbh | Hypermedia sites providing method, involves producing and including program source code suitable for client sided execution, in information to be transmitted over hypermedia site, and transmitting information over site to client system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69613225T2 (en) | DIFFERENTIATION COMMUNICATION SYSTEM | |
DE69610495T2 (en) | CUSTOMER / SERVER COMMUNICATION SYSTEM | |
DE60109631T2 (en) | Method and apparatus for efficiently reducing graphical display data for their transmission via a low bandwidth transmission protocol | |
DE69608681T2 (en) | TCP COMMUNICATION SYSTEM WITH REDUCED ADDITIONAL EFFORT | |
DE69422436T2 (en) | Network analysis procedure | |
DE69736298T2 (en) | REKOMPRIMIERUNGSSERVER | |
DE10051024B4 (en) | A method of intermediate caching in a client-server software system, computer program products and computer system for performing such a method | |
DE3382775T2 (en) | Electronic document distribution network with an even data stream. | |
DE69604391T2 (en) | TIME COHERENT SYSTEM | |
DE60038448T2 (en) | DEVICE AND METHOD FOR HARDWARE DEVELOPMENT OR HARDWARE ACCELERATION OF OPERATING SYSTEM FUNCTIONS | |
DE60107964T2 (en) | DEVICE FOR CODING AND DECODING STRUCTURED DOCUMENTS | |
DE19962192A1 (en) | Method and system for content conversion of electronic data for wireless devices | |
EP1466425B1 (en) | Method for the reduction of latency during interactive data communication via a satellite network | |
DE102005013301A1 (en) | Distributed data model | |
DE60215480T2 (en) | DEVICE FOR GENERATING A MULTIMEDIA FILE FOR A TELECOMMUNICATIONS TERMINAL AND MULTIMEDIA FILE THEREFOR | |
DE60124722T2 (en) | METHOD FOR TRANSMITTING A MOBILE AGENT IN A NETWORK; TRANSMITTER, RECEIVER AND ASSOCIATED MOBILE AGENT | |
DE69331297T2 (en) | Process-oriented, connectionless data transmission for computer networks | |
DE69031358T2 (en) | Method and device for displaying the beginning and end of a file sent to a printer service station in a computer network | |
DE69328811T2 (en) | Opcode dependent compression for a window system. | |
DE69735546T2 (en) | PACKAGE-LEADED GUIDANCE ARCHITECTURE FOR MULTIPLE SIMULTANEOUS CONNECTIONS | |
DE10231958A1 (en) | Directly addressed multicast protocol | |
EP2415174A1 (en) | Compression method, decompression method, compression unit, decompression unit and compressed document | |
DE69729487T2 (en) | PROCESS AND DEVICE MEET WITH FLOW CONTROL IN A NETWORK SYSTEM BASED ON THE EXPECTED PROCESSING TIME OF THE USER | |
DE10128147A1 (en) | Transmitting data in computer network involves server using transformation with which representation of resource on client is not altered but data redundancy increased | |
DE10048113C2 (en) | Devices and methods for individually filtering information transmitted over a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |