DE10146356A1 - Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory - Google Patents

Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory

Info

Publication number
DE10146356A1
DE10146356A1 DE10146356A DE10146356A DE10146356A1 DE 10146356 A1 DE10146356 A1 DE 10146356A1 DE 10146356 A DE10146356 A DE 10146356A DE 10146356 A DE10146356 A DE 10146356A DE 10146356 A1 DE10146356 A1 DE 10146356A1
Authority
DE
Germany
Prior art keywords
block
blocks
static
compressed
compressor
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
Application number
DE10146356A
Other languages
German (de)
Inventor
Rolf Matzner
Lars Gemeinhardt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SYNTION AG
Original Assignee
SYNTION AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SYNTION AG filed Critical SYNTION AG
Priority to DE10146356A priority Critical patent/DE10146356A1/en
Publication of DE10146356A1 publication Critical patent/DE10146356A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Abstract

The method involves recording a data set including at least one static and one dynamic block. The identity (fingerprints) of all static blocks in the data set are determined. If the static block is stored in the block memory as a compressed block, the static bock in the data set is replaced by a compressed block. Alternatively, if the static block is not yet stored in the block memory, the static block is compressed and stored in the block memory as a compressed block, and the static block is replaced by the compressed block. A transmission data set is transmitted in which the static blocks are replaced by compressed blocks, and which contains dynamic blocks. An Independent claim is also included for a data processing device.

Description

Die Erfindung betrifft ein Verfahren zum Komprimieren von dynamischen Webseiten sowie eine Datenverarbeitungseinrichtung zur Durchführung des Verfahrens. The invention relates to a method for compressing dynamic websites and a data processing facility to carry out the procedure.

Dynamische Webseiten bestehen aus Inhalten, die zum Teil ständig aktualisiert bzw. auf einen Nutzer angepaßt werden. Eine ständige Aktualisierung erfolgt beispielsweise bei Webseiten, welche Börsenkurse wiedergeben. Eine auf den Nutzer angepaßte Änderung erfolgt beispielsweise bei Webseiten im E-Commerce-Bereich. Dynamic websites consist of content that is partly constantly updated or adapted to a user. For example, a constant update takes place at Websites that show stock market prices. One on the user Adjusted change takes place, for example, on websites in E-commerce sector.

Derartige dynamische Webseiten können als Template also als Schablonen oder lediglich als Beschreibung von Aufbau und Inhalt der Webseite auf dem Webserver abgelegt sein. Such dynamic websites can be used as templates Templates or just as a description of structure and Website content stored on the web server.

Ist eine Webseite als Template abgelegt, ist dessen Struktur vorgegeben. Eine solche Webseite kann daher entsprechend ihres Inhalts in statische und dynamische Blöcke unterteilt werden. Der Inhalt der dynamischen Blöcke ist durch eine Abfolge von Befehlen in einer Programmier-, eine Skript- oder auch einer Kommandosprache beschrieben. If a website is saved as a template, its structure is specified. Such a website can therefore according to your Content can be divided into static and dynamic blocks. The content of the dynamic blocks is by a sequence of Commands in a programming, a script or even one Command language described.

Bei einem Abruf der Seite durch einen Nutzer ersetzt der Application-Server die Beschreibung durch die aktuellen Inhalte. Aussehen und Aufbau bleiben bei einer aus einem Template generierten Webseite unverändert, wie dies in Fig. 1 gezeigt ist. When the page is called up by a user, the application server replaces the description with the current content. The appearance and structure of a website generated from a template remain unchanged, as shown in FIG. 1.

Statische Blöcke enthalten Inhalte, die nie oder in sehr großen Zeitabständen generiert werden. Diese Blöcke sind oft in HTML geschrieben. Static blocks contain content that is never or very large Time intervals are generated. These blocks are often in HTML written.

Die Inhalte dynamischer Blöcke werden in kurzen Zeitabständen, z. B. bei jedem Abruf der Webseite, generiert. Die Inhalte sind zunächst nur beschrieben. Erst beim Generieren wird diese Beschreibung dann durch Daten ersetzt. The contents of dynamic blocks are in short time intervals, z. B. generated each time the website is accessed. The content is initially only described. This is only when it is generated Description then replaced by data.

Die Beschreibung kann durch eine Programmier-, eine Skript- oder auch eine Kommandosprache erfolgen. Gewöhnlich werden Skriptsprachen verwendet, da diese sich gut in HTML integrieren lassen. Beispiele für Skriptsprachen sind:

  • - PHP (abgeleitet aus Hypertext Preprocessor) als eine offene serverseitige Skriptsprache, die jeder frei nutzen und ändern kann oder
  • - JSP (Java Server Pages)
The description can be done using a programming, script or command language. Scripting languages are usually used because they can be easily integrated into HTML. Examples of scripting languages are:
  • - PHP (derived from Hypertext Preprocessor) as an open server-side scripting language that everyone can use and change freely
  • - JSP (Java Server Pages)

Der Nutzer ruft mit dem Eingeben und Bestätigen einer URL- Adresse im Browser eine Webseite auf. Das bedeutet, der Browser sendet an den Webserver ein Request (Anfrage). Dieser Request enthält neben der URL der gewünschten Webseite eine Fülle von Informationen über die Fähigkeiten des Browsers, z. B. über die unterstützten Kompressionsverfahren, MIME-Typen oder den Browser Typ. Der Webserver wertet den Request aus und versucht, die zu übertragenen Daten an den Browser anzupassen. The user calls by entering and confirming a URL Address in the browser of a website. That means the browser sends a request to the web server. This request contains in addition to the URL of the desired website a wealth of Information about the capabilities of the browser, e.g. B. about the supported compression methods, MIME types or the Browser type. The web server evaluates the request and tries to adapt the data to be transferred to the browser.

Statische Webseiten sind in der Regel auf dem Webserver in komprimierter Form (GZip- und Compress-Format) abgelegt. GZip und Compress sind die gängigen Kompressionsverfahren für statische Webseiten. Entsprechend den Fähigkeiten des Browsers wird die Webseite im GZip- oder Compress-Format übertragen. Static websites are usually on the web server compressed form (GZip and Compress format). GZip and Compress are the common compression methods for static websites. According to the capabilities of the browser the website will be transmitted in GZip or Compress format.

Unterstützt der Browser kein Kompressionsverfahren, überträgt der Webserver die Webseite unkomprimiert. If the browser does not support a compression process, transfers the web server uncompressed the website.

Die Anfrage zu einer dynamischen Webseite reicht der Webserver zum Application-Server weiter. Dieser übernimmt das Generieren der dynamische Blöcke. Das heißt, er ersetzt die beschriebenen dynamischen Blöcke durch deren Inhalt. Die statischen Blöcke der Webseite werden unkomprimiert eingefügt. Der Application- Server übergibt die vollständige dynamische Webseite dem Webserver. Dort kann eine Komprimierung erfolgen. Am Ende sendet der Webserver die Webseite zum Browser, wie dies Fig. 2 zeigt. The web server forwards the request for a dynamic website to the application server. This takes over the generation of the dynamic blocks. This means that it replaces the dynamic blocks described with their content. The static blocks of the website are inserted uncompressed. The application server transfers the complete dynamic website to the web server. Compression can take place there. In the end, the web server sends the website to the browser, as shown in FIG. 2.

Der Umfang und die Bedeutung dynamischer Webseiten im Internet nimmt aufgrund der vielfältigen Einsatzmöglichkeiten ständig zu. Beispiele sind dynamische Webseiten, die aktuelle Aktienwerte bereitstellen oder bei denen Wetterinformationen abgerufen werden können. The scope and importance of dynamic websites on the Internet takes constantly due to the diverse uses to. Examples are dynamic websites, the current one Provide stock values or where weather information can be accessed.

Dynamische Webseiten stellen aber an die Webserver bedingt durch ihre Eigenschaften größere Anforderungen. Die Schwierigkeit besteht im Bereitstellen komprimierter dynamischer Webseiten unter Berücksichtigung der Effizienz des Webservers. Dynamic websites, however, are conditional on the web server due to their properties, greater demands. The Difficulty is in providing compressed dynamic Websites considering the efficiency of the web server.

Zwei wichtige Größen für die Effizienz eines Webservers sind die Verkehrslast und die CPU-Belastung. Ziel ist, daß beide Größen in einem ausgewogenen Verhältnis zueinander stehen und das stets eine Reserve für auftretende Spitzen verfügbar ist. There are two important factors for the efficiency of a web server the traffic load and the CPU load. The goal is that both Sizes stand in a balanced relationship to each other and that there is always a reserve for peaks that occur.

Das Problem bei dynamischen Webseiten ist, daß sie sich nicht wie statische Webseiten vorkomprimieren und auf dem Webserver ablegen lassen. Damit können sie auf die zwei Größen entscheidenden Einfluß haben. Folgende Situationen sind möglich:
Die dynamischen Webseiten werden nicht komprimiert und erhöhen damit aufgrund des größeren Datenumfangs massiv die Verkehrslast des Webservers.
The problem with dynamic websites is that they cannot be pre-compressed and stored on the web server like static websites. They can have a decisive influence on the two sizes. The following situations are possible:
The dynamic websites are not compressed and therefore increase the traffic load of the web server massively due to the larger amount of data.

Die dynamischen Webseiten werden erst unmittelbar nach deren Generierung mit einem bestehendem Verfahren komprimiert. Der Nachteil ist eine hohe CPU-Belastung des Webservers. The dynamic websites are only immediately after their Generation compressed using an existing method. The The disadvantage is a high CPU load on the web server.

Das Diagramm gemäß Fig. 3 verdeutlicht die Problematik:
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Komprimieren von dynamischen Webseiten sowie eine Datenverarbeitungsvorrichtung für diesen Zweck vorzuschlagen, mittels derer in einfacher Weise eine Kompression bei verbesserter Ausnutzung des Ressourcenverbrauchs sichergestellt wird.
The diagram according to FIG. 3 illustrates the problem:
The invention is based on the object of proposing a method for compressing dynamic websites and a data processing device for this purpose, by means of which compression is ensured in a simple manner with improved utilization of the resource consumption.

Diese Aufgabe wird durch ein Verfahren nach Anspruch 1 und eine Datenverarbeitungseinrichtung nach Anspruch 21 gelöst. This object is achieved by a method according to claim 1 and Data processing device according to claim 21 solved.

In der nachfolgenden Beschreibung wird das erfindungsgemäße Verfahren als "SSC" (Server Side Compression) bezeichnet. In the following description, the invention Process called "SSC" (Server Side Compression).

Ein wesentlicher Punkt der Erfindung liegt darin, daß nicht "blind" komprimiert wird, sondern daß nur diejenigen Daten komprimiert werden, welche einen wesentlichen Anteil der gesamten zu übertragenden Datenmenge bilden und die andererseits mit verringertem Aufwand komprimierbar sind. Die statischen Daten werden nämlich nur bei einem "Neuaufbau" einer Webseite geändert, bleiben also über lange Zeit unverändert erhalten. Die können darum in komprimierter Form abgespeichert und immer wieder verwendet werden. An essential point of the invention is that not "blind" is compressed, but that only those data be compressed, which is a substantial part of the total amount of data to be transferred and the other are compressible with reduced effort. The static This is because data is only created when a website is "rebuilt" changed, so they remain unchanged for a long time. That is why they can be saved in compressed form and always can be used again.

Die Erfindung wird nachfolgend unter Bezugnahme auf die Abbidungen näher beschrieben. Hierbei zeigen: The invention is described below with reference to the Figures described in more detail. Here show:

Fig. 1 einen Seitenabrufvorgang; Fig. 1 is a side retrieval operation;

Fig. 2 einen herkömmlichen Aufbau der Hardware; FIG. 2 shows a conventional construction of the hardware;

Fig. 3 ein Diagramm zur Hardwarebelastung bei herkömmlichen Techniken; Fig. 3 is a diagram for hardware load in conventional techniques;

Fig. 4 ein Diagramm zur Hardwarebelastung beim erfindungsgemäßen Verfahren; Fig. 4 is a diagram for hardware load process of the invention;

Fig. 5 einen herkömmlichen Datenfluß; FIG. 5 shows a conventional data flow;

Fig. 6 einen Datenfluß beim erfindungsgemäßen Verfahren; Fig. 6 is a data flow in the inventive process;

Fig. 7 einzelne Schritte beim Entstehen eines SSC-Dokuments; Fig. 7 individual steps in the creation of a document SSC;

Fig. 8 einen Tag-Einfügevorgang; Fig. 8 is a tag insertion process;

Fig. 9 den Aufbau einer Block-Datei; Fig. 9 shows the structure of a block-file;

Fig. 10 einen 1. Kompressionsvorgang; FIG. 10 is a first compression process;

Fig. 11 einen 2. Kompressionsvorgang; FIG. 11 is a second compression process;

Fig. 12 ein SSC-Dokument und Fig. 12 is an SSC document and

Fig. 13 einen schematischen Aufbau einer Datenverarbeitungseinrichtung gemäß der Erfindung. Fig. 13 shows a schematic structure of a data processing device according to the invention.

Eine Analyse dynamischer Webseiten in bezug auf die Zusammensetzung der Daten erbrachte folgendes Ergebnis: Der Anteil dynamischer Daten im Verhältnis zu den statischen ist wesentlich geringer. Werden von einer dynamischen Webseite also lediglich die statischen Daten komprimiert und die dynamischen unkomprimiert übertragen, ist keine wesentliche Verringerung des Komprimierungsfaktors gegenüber einer Komprimierung der kompletten Webseite zu erwarten. An analysis of dynamic websites related to the The composition of the data gave the following result: The proportion dynamic data in relation to the static one much lower. So from a dynamic website only the static data is compressed and the dynamic one transmitted uncompressed is not a significant reduction the compression factor versus a compression of the complete website to be expected.

Diesen Effekt nutzt SSC. Bei dem Verfahren wird auf eine bessere Komprimierung zugunsten einer geringeren CPU-Belastung verzichtet. Es ist ein Kompromiss zwischen den beiden oben beschriebenen Möglichkeiten. Das Ergebnis veranschaulicht das Diagramm gemäß Fig. 4:
Das Verhältnis von Verkehrslast und CPU-Belastung ist nahezu ausgeglichen, der Ressourcenverbrauch des Webservers ist gering.
SSC uses this effect. The method does without better compression in favor of lower CPU load. It is a compromise between the two options described above. The result is illustrated in the diagram according to FIG. 4:
The relationship between traffic load and CPU load is almost balanced, the resource consumption of the web server is low.

Insbesondere wird also mit der Erfindung ein Verfahren zum Komprimieren von dynamischen Webseiten aufgezeigt, insbesondere zum Komprimieren von Webseiten, die mindestens einen statischen Block und mindestens einen dynamischen, insbesondere durch Abruf von einem Nutzer veränderlichen Block aufweisen, die auf einem Webserver und einem Application-Server vorgehalten oder generiert werden. Beim erfindungsgemäßen Verfahren werden nun folgende Schritte vorgenommen:
Es wird ein Datensatz aufgenommen, der mindestens einen statischen und einen dynamischen Block umfaßt.
In particular, the invention thus shows a method for compressing dynamic websites, in particular for compressing websites that have at least one static block and at least one dynamic block, in particular one that can be changed by a user, on a web server and an application server be kept or generated. The following steps are now carried out in the method according to the invention:
A data record is recorded which comprises at least one static and one dynamic block.

Es wird jeweils eine Identität aller im Datensatz vorhandenen statischen Blöcke, also ein "Fingerprint" festgestellt. In each case there is an identity of all existing in the data record static blocks, ie a "fingerprint" was found.

Es wird festgestellt, ob statische Blöcke mit derselben Identität (mit demselben Fingerprint) in einem Blockspeicher schon als komprimierte Blöcke gespeichert sind. Wenn dies der Fall ist, so wird der im Datensatz vorhandene statische Block durch den entsprechenden komprimierten Block ersetzt. Wenn dies nicht der Fall ist, so wird der statische Block komprimiert und im Blockspeicher als komprimierter Block abgelegt. Der komprimierte Block ersetzt dann wieder den im Datensatz vorhandenen statischen Block. It is determined whether static blocks are the same Identity (with the same fingerprint) in a block memory are already saved as compressed blocks. If this is the If so, the static block existing in the data record becomes replaced by the corresponding compressed block. If this if not, the static block is compressed and stored in the block memory as a compressed block. The the compressed block then replaces the existing one in the data record static block.

Abschließend wird ein Sendedatensatz abgesendet, bei welchem die statischen Blöcke durch komprimierte Blöcke ersetzt sind, wobei der Sendedatensatz selbstverständlich auch die dynamischen Blöcke enthält. Finally, a transmission data record is sent, in which the static blocks are replaced by compressed blocks, the transmission data record of course also the contains dynamic blocks.

Vorzugsweise wird die Identität eines statischen Blocks anhand einer, aus ihm selbst gewonnenen Kennung festgestellt. Diese Kennung soll so sein, daß eine Verwechslung mit anderen statischen Blöcken (Blöcken anderen Inhalts) unwahrscheinlich ist. Die aus der Identität gewonnene Kennung wird jedem komprimierten Block zugehörig im Blockspeicher gespeichert und beim Feststellen der Identität zum Vergleich mit den Identitäten der statischen Blöcke im Datensatz verwendet. Es werden also nicht die statischen Blöcke selbst miteinander verglichen sondern - was eine wesentliche Verringerung des Aufwandes bedeutet - lediglich ihre Kennungen. Es kann als Kennung eine Prüfsumme über den statischen Block, insbesondere eine CRC-32-Summe verwendet werden. The identity of a static block is preferably based on an identifier obtained from himself. This The identifier should be such that it is confused with others static blocks (blocks of other content) are unlikely. The identifier obtained from the identity becomes everyone compressed block associated stored in block memory and at Establishing the identity for comparison with the identities of the static blocks used in the data set. So it won't the static blocks themselves compared to each other but - which means a significant reduction in effort - just their identifiers. It can be a checksum as an identifier about the static block, especially a CRC-32 sum be used.

CRC-32 (Cyclic Redundancy Check mit 32-Bit-Prüfsumme) ist ein gebräuchliches mathematisches Verfahren zum Ermitteln einer Prüfsumme. Mit Hilfe dieser Prüfsumme können Identitätsprüfungen durchgeführt oder wie bei SSC Datenmengen verglichen werden. Der Vorteil dieses Verfahrens ist, daß eine geringe Abweichung bei den Daten eine große Änderung der Prüfsumme bewirkt und damit auch kleinste Fehler nicht übersehen werden können. CRC-32 (Cyclic Redundancy Check with 32-bit checksum) is a Common mathematical method for determining a Checksum. With the help of this checksum you can Identity checks carried out or compared to SSC data volumes become. The advantage of this method is that it is low Deviation in the data a big change in the checksum effect and thus even the smallest errors are not overlooked can.

Die Verkehrslast bestimmt die Datenmenge, die innerhalb eines Zeitintervalls vom Webserver abgefordert wird. Sie ist abhängig von der Anzahl der Requests (Anfragen zu Webseiten, die auf dem Webserver abgelegt sind) und von der Datenmenge, die als Antwort pro Request zum Client übertragen wird. Während eine hohe Anzahl an Requests erwünscht ist, versucht man die zu übertragende Datenmenge durch Kompressionsverfahren möglichst gering zu halten, um damit die Ressourcen des Webserver nicht unnötig zu blockieren. The traffic load determines the amount of data within a Time interval is requested by the web server. It is dependent the number of requests (requests for websites that are on the Web server) and the amount of data stored as Response per request is transmitted to the client. While a high Number of requests is desired, you try to amount of data transmitted by compression methods if possible to keep it low so that the resources of the web server are not blocking unnecessarily.

Vorzugsweise umfaßt die Kennung die Länge des statischen Blocks. The identifier preferably comprises the length of the static Block.

Zusätzlich zu jedem komprimierten Block wird vorzugsweise der dazu gehörige statische Block abgespeichert. Bei Bedarf steht dieser somit zur Verfügung. In addition to each compressed block, the the associated static block is saved. If necessary this is therefore available.

Die Daten werden vorzugsweise nach dem (an sich bekannten) DEFLATE-Verfahren komprimiert. Durch die Verwendung dieses bekannten Verfahrens ist eine Dekompression bei einem Empfänger bzw. Nutzer leicht möglich. The data is preferably based on the (known per se) DEFLATE procedure compressed. By using this known method is decompression at a receiver or users easily possible.

Die dynamischen Blöcke kann man im wesentlichen unverändert, insbesondere unkomprimiert im Datensatz senden. Wenn nun aber der Server zum Zeitpunkt, zu welchem die Webseite abgerufen wird, nur wenig ausgelastet ist, so kann man die dynamischen Blöcke (oder einige der dynamischen Blöcke) ebenfalls komprimieren und als komprimierte dynamische Blöcke in den Sendedatensatz einfügen. Es erfolgt also eine Komprimierung "on fly". Dadurch werden die vorhandenen Ressourcen optimal genutzt, eine Überlastung des Servers jedoch vermieden. The dynamic blocks can be changed essentially unchanged, especially send uncompressed in the data record. But if so the server at the time the website was accessed is not very busy, you can use the dynamic Blocks (or some of the dynamic blocks) as well compress and as compressed dynamic blocks in the Insert send data record. So there is a compression "on fly". This makes the available resources optimal used, but overloading the server avoided.

Weiterhin besteht die Möglichkeit, dynamische Blöcke nicht nur unkomprimiert oder "on the fly" komprimiert (je nach Serverlast) auszuliefern, sondern dynamische Blöcke, welche durch ein bestimmtes Merkmal (z. B. ihrer Größe) herausstechen, vorkomprimiert (wie die statischen Blöcke) abzulegen. Dies wird im Fall des Merkmales der Größe bei Überschreiten eines Schwellwerts erfolgen. Furthermore, there is the possibility of not only dynamic blocks uncompressed or compressed "on the fly" (depending on Server load), but dynamic blocks, which stand out due to a certain characteristic (e.g. its size), pre-compressed (like the static blocks). this will in the case of the characteristic of size when exceeding one Threshold.

Weiterhin ist sinnvoll, für jede Kompression eines Blockes eine erforderliche Mindestgröße (untere Schranke) zu definieren, welche überschritten werden muß, damit eine Kompression überhaupt durchgeführt wird. So können z. B. beim Server einer Zeitung Artikel aus einer Datenbank heraus generiert werden, die also dynamisch sind. Andererseits ändert sich ein Artikel im Regelfall nicht mehr. Es macht also in diesem Fall Sinn, ihn hinsichtlich Kompression wie einen statischen Block zu behandeln. It also makes sense to have one for each compression of a block define the required minimum size (lower bound), which must be exceeded for compression is carried out at all. So z. B. at the server one Newspaper articles are generated from a database so they are dynamic. On the other hand, an article changes usually not anymore. So in this case it makes sense to him in terms of compression like a static block too to treat.

Jedem letzten Block eines Datensatzes wird ein Endblock zur Bezeichnung des Endes des Datensatzes hinzugefügt, was die Handhabbarkeit der Datensätze erleichtert. Every last block of a data record is turned into an end block Label of the end of the record added what the Manageability of the data records made easier.

Jedem Block des Datensatzes wird ein Tag zur Kennzeichnung als dynamischer oder als statischer Block hinzugefügt, wobei diese Hinzufügung vorzugsweise an erster Stelle des Blocks erfolgt. Die Tags werden vorzugsweise als HTML-Kommentar ausgebildet. Each block of the record is tagged as added dynamically or as a static block, this Added preferably at the first position of the block. The tags are preferably designed as HTML comments.

Vorzugsweise werden die Tags von einem Parser eingefügt, der auf dem Application-Server läuft und auf abgelegte Templates zugreift, die er Block für Block analysiert und denen er die Tags hinzufügt. Die mit den Tags markierte noch unkomprimierte Webseite wird einem Pre-Compressor zugeführt, der entsprechend markierte Blöcke komprimiert, die zusammen mit unkomprimierten Blöcken dann einem Post-Compressor übergeben werden. Der Post- Compressor erstellt schritthaltend zur Datenbearbeitung durch den Pre-Compressor, also verzahnt mit diesem arbeitend ein neues Dokument und zwar vorzugsweise nach dem GZip-Format. Nach Bildung eines GZip-Headers reiht der Post-Compressor die vom Pre-Compressor übergebenen Blöcke unmittelbar mit der Übergabe in das neue Dokument ein, was eine hocheffektive und schnelle Bearbeitung ermöglicht. The tags are preferably inserted by a parser, the runs on the application server and on stored templates which he analyzes block by block and which he analyzes Adds tags. The still uncompressed tagged one Website is fed to a pre-compressor, which accordingly marked blocks compressed together with uncompressed Blocks are then passed to a post-compressor. The post- Compressor keeps pace with data processing the pre-compressor, so working with it new document, preferably according to the GZip format. To Forming a GZip header, the post-compressor compresses those from Pre-Compressor blocks passed immediately upon delivery in the new document, which is a highly effective and quick Processing enabled.

Der Post-Compressor kennzeichnet unkomprimierte Blöcke durch einen Header und zwar vorzugsweise einen solchen nach dem DEFLATE-Format. The post-compressor marks uncompressed blocks by a header, preferably one after the DEFLATE format.

Der Post-Compressor erstellt einen zusätzlichen END-Block und fügt diesen zur Kennzeichnung eines Endes der Datenblöcke dem neuen Dokument hinzu. Weiterhin errechnet der Post-Compressor eine Checksumme, insbesondere eine CR-32-Prüfsumme und die Größe des unkomprimierten neuen Dokuments für einen Trailer, der ebenfalls hinzugefügt bzw. gesendet wird. The post-compressor creates an additional END block and adds this to identify an end of the data blocks new document added. The post-compressor also calculates a checksum, especially a CR-32 checksum and the Size of the uncompressed new document for a trailer, which is also added or sent.

Die erfindungsgemäße Datenverarbeitungseinrichtung zum Komprimieren von dynamischen Webseiten, insbesondere zum Komprimieren von dynamischen Webseiten, die mindestens einen statischen Block und mindestens einen, insbesondere durch Abruf von einem Nutzer veränderlichen dynamischen Block aufweisen, umfaßt einen Webserver und einen Application-Server. Es ist ein Precompressor vorgesehen, der so ausgebildet ist, daß bei Aufforderung durch den Webserver an den Application-Server, eine dynamische Webseite zu generieren, der Precompressor eine noch unkomprimierte Website in folgenden Schritten bearbeitet:
Es wird festgestellt, ob statische Blöcke mit derselben Identität (mit demselben Fingerprint) in einem Blockspeicher schon als komprimierte Blöcke gespeichert sind. Wenn dies der Fall ist, so wird der im Datensatz vorhandene statische Block durch den entsprechenden komprimierten Block ersetzt. Wenn dies nicht der Fall ist, so wird der statische Block komprimiert und im Blockspeicher als komprimierter Block abgelegt. Der komprimierte Block ersetzt dann wieder den im Datensatz vorhandenen statischen Block.
The data processing device according to the invention for compressing dynamic websites, in particular for compressing dynamic websites, which have at least one static block and at least one dynamic block, in particular one that can be changed by a user, comprises a web server and an application server. A pre-compressor is provided which is designed such that when the web server asks the application server to generate a dynamic website, the pre-compressor processes a still uncompressed website in the following steps:
It is determined whether static blocks with the same identity (with the same fingerprint) are already stored in a block memory as compressed blocks. If this is the case, the static block present in the data record is replaced by the corresponding compressed block. If this is not the case, the static block is compressed and stored in the block memory as a compressed block. The compressed block then replaces the static block in the data record.

Abschließend wird ein Sendedatensatz abgesendet, bei welchem die statischen Blöcke durch komprimierte Blöcke ersetzt sind, wobei der Sendedatensatz selbstverständlich auch die dynamischen Blöcke enthält. Finally, a transmission data record is sent, in which the static blocks are replaced by compressed blocks, the transmission data record of course also the contains dynamic blocks.

Vorzugsweise wird die Identität eines statischen Blocks anhand einer, aus ihm selbst gewonnenen Kennung festgestellt. Diese Kennung soll so sein, daß eine Verwechslung mit anderen statischen Blöcken (Blöcken anderen Inhalts) unwahrscheinlich ist. Die aus der Identität gewonnene Kennung wird jedem komprimierten Block zugehörig im Blockspeicher gespeichert und beim Feststellen der Identität zum Vergleich mit den Identitäten der statischen Blöcke im Datensatz verwendet. Es werden also nicht die statischen Blöcke selbst miteinander verglichen sondern - was eine wesentliche Verringerung des Aufwandes bedeutet - lediglich ihre Kennungen. Vorzugsweise wird als Kennung eine Prüfsumme über den statischen Block, insbesondere eine CRC-32- Summe verwendet. The identity of a static block is preferably based on an identifier obtained from himself. This The identifier should be such that it is confused with others static blocks (blocks of other content) are unlikely. The identifier obtained from the identity becomes everyone compressed block associated stored in block memory and at Establishing the identity for comparison with the identities of the static blocks used in the data set. So it won't the static blocks themselves compared to each other but - which means a significant reduction in effort - just their identifiers. A is preferably used as the identifier Checksum over the static block, especially a CRC-32 Sum used.

Für SSC werden drei SSC-Komponenten in die bestehende Architektur auf der Serverseite eingefügt - Pre-Processor, Pre- Compressor and Post-Compressor. Der Pre-Processor ist fest mit dem Application-Server verbunden, Pre- und Post-Compressor sind vom Application-Server unabhängig. For SSC, three SSC components are integrated into the existing one Architecture inserted on the server side - pre-processor, pre- Compressor and Post-Compressor. The pre-processor is fixed with connected to the application server, are pre- and post-compressor independent of the application server.

Die drei SSC-Komponenten klinken sich in den Prozess der Erstellung bzw. der Übertragung einer dynamischen Webseite ein. Sie werten jeden Block einer bereits generierten Seite aus, prüfen, ob der Block statisch oder dynamisch ist bzw. die Daten komprimiert oder unkomprimiert übertragen werden sollen, und formatieren die Daten am Ende nach den GZip-Konventionen. The three SSC components latch into the process of Creation or transfer of a dynamic website. You evaluate each block of a page that has already been generated, check whether the block is static or dynamic or the data should be transmitted compressed or uncompressed, and format the data at the end according to the GZip conventions.

Pre-Processor, Pre-Compressor und Post-Compressor sind die SSC- Komponenten, die in die serverseitige Architektur eingefügt werden. Die Anordnung der SSC-Komponenten lässt sich durch den logischen Datenfluß vom Generieren einer dynamischen Webseite verdeutlichen. Pre-Processor, Pre-Compressor and Post-Compressor are the SSC Components inserted into the server-side architecture become. The SSC components can be arranged using the logical data flow from the generation of a dynamic website clarify.

Die Grafik gemäß Fig. 5 zeigt den logischen Datenfluß ohne die SSC-Komponenten. The graph of FIG. 5 shows the logical data flow without the SSC components.

Der Webserver fordert den Application-Server auf, eine dynamische Webseite zu generieren. Der Parser analysiert das Template der dynamischen Webseite auf seine statischen und dynamischen Blöcke. Der Application-Server fügt dann die Inhalte der Blöcke ein und übergibt anschließend die fertige dynamische Webseite dem Webserver. The web server asks the application server to generate dynamic website. The parser analyzes that Dynamic website template on its static and dynamic blocks. The application server then adds the Content of the blocks and then passes the finished one dynamic website the webserver.

Die Grafik gemäß Fig. 6 verdeutlicht den logischen Datenfluß mit SSC-Komponenten:
Der Pre-Processor schließt sich unmittelbar dem Parser an bzw. verschmilzt mit diesem. Pre- und Post-Compressor - ebenfalls eng verknüpft - bearbeiten die Daten nach dem Generieren durch den Application-Server und übergeben das SSC-Dokument dem Webserver. Pre- und Post-Compressor können - müssen aber nicht auf dem Application-Server laufen.
. The graph shown in FIG 6 illustrates the logical data flow with SSC components:
The pre-processor connects directly to the parser or merges with it. Pre- and Post-Compressor - also closely linked - process the data after generation by the application server and transfer the SSC document to the web server. Pre- and post-compressors can - but do not have to run on the application server.

Den allgemeinen Prozeßablauf beschreibt der folgende Abschnitt. The following section describes the general process flow.

Der Webserver wertet den Request eines Nutzers aus. Hat dieser eine dynamische Webseite angefordert, leitet er die Anfrage an den Application-Server weiter. Der Parser des Application- Server greift auf das abgelegte Template dieser Seite zu und analysiert es auf seine statischen und dynamischen Blöcke. Gleichzeitig fügt der Pre-Processor an den Anfang von jedem Block ein entsprechendes SSC-Tag ein. Dieses SSC-Tag ist eine SSC-spezifische Markierung, die den Block für SSC eindeutig als statisch bzw. dynamisch kennzeichnet. The web server evaluates a user's request. Has this when a dynamic website is requested, he directs the request the application server. The parser of the application Server accesses the saved template of this page and analyzes it for its static and dynamic blocks. At the same time, the pre-processor adds to the beginning of everyone Block in a corresponding SSC tag. This SSC tag is one SSC-specific mark that clearly identifies the block as SSC statically or dynamically.

Danach generiert der Application-Server die Inhalte der Blöcke, ohne die eingefügten SSC-Tags zu entfernen. Die fertige aber unkomprimierte dynamische Webseite übergibt er dem Pre-Compressor. Dieser wertet die Webseite anhand der SSC-Tags Block für Block aus. Das bedeutet:

  • - Er weist jedem Block eine Block-ID zu. Diese setzt sich aus der Länge des Blocks und einer errechneten Checksumme zusammen. Diese ermöglicht die eindeutige Erkennung des Blocks.
  • - Soll der Block komprimiert werden, prüft der Pre-Compressor anhand der Block-ID, ob es für diesen Block bereits eine Block-Datei gibt. Die Block-Datei enthält den Inhalt eines Blocks komprimiert und unkomprimiert. Findet der Pre- Compressor die Block-Datei, ersetzt der Pre-Compressor den unkomprimierten Block der Webseite durch den komprimierten Block aus der Block-Datei. Wenn nicht, komprimiert der Pre- Compressor den Block nach dem DEFLATE-Verfahren. Zusätzlich erstellt er eine Block-Datei und legt diese für weitere Verwendungen ab.
The application server then generates the contents of the blocks without removing the inserted SSC tags. He hands over the finished but uncompressed dynamic website to the pre-compressor. This evaluates the website block by block using the SSC tags. That means:
  • - It assigns a block ID to each block. This consists of the length of the block and a calculated checksum. This enables the block to be clearly identified.
  • - If the block is to be compressed, the pre-compressor uses the block ID to check whether there is already a block file for this block. The block file contains the contents of a block compressed and uncompressed. If the pre-compressor finds the block file, the pre-compressor replaces the uncompressed block of the website with the compressed block from the block file. If not, the pre-compressor compresses the block using the DEFLATE method. In addition, he creates a block file and stores it for further use.

Parallel zum Pre-Compressor erstellt der Post-Compressor ein SSC-Dokument nach dem GZip Format, in das er die vom Pre- Compressor blockweise übergebenen Inhalte einfügt. Das fertige SSC-Dokument wird über den Webserver zum Browser des Nutzers übertragen. The post-compressor creates a parallel to the pre-compressor SSC document according to the GZip format, in which it contains the pre- Compressor inserts content passed in blocks. The finished The SSC document becomes the user's browser via the web server transfer.

Fig. 7 stellt die einzelnen Schritte beim Entstehen eines SSC- Dokuments aus dem Template der dynamischen Webseite dar. Fig. 7 illustrates the individual steps is in the emergence of an SSC from the template document to the dynamic Web page.

Jeder Block der dynamischen Webseite wird dem DEFLATE-Verfahren unterzogen. D. h., es komprimiert die Blöcke zunächst nach festem und nach dynamischem Huffmann-Code und vergleicht die Ergebnisse mit dem Umfang der unkomprimierten Daten. Das Ergebnis mit dem besten Komprimierungsfaktor wird verwendet. Wird durch das Komprimieren keine Verringerung des Datenumfangs erreicht, verarbeitet das DEFLATE-Verfahren die Daten unkomprimiert. Every block of the dynamic website becomes the DEFLATE procedure subjected. In other words, it first compresses the blocks fixed and dynamic Huffmann code and compares it Results with the amount of uncompressed data. The Result with the best compression factor is used. Compression does not reduce the amount of data reached, the DEFLATE process processes the data uncompressed.

Das DEFLATE-Verfahren fügt jedem Block einen Header hinzu, deren Aufbau sich je nach verwendeten Daten unterscheidet. Die Header sind nachfolgend beschrieben. Der Endblock ist eine Besonderheit von SSC zum Kennzeichnen des letzten Blocks. The DEFLATE method adds a header to each block, the structure of which differs depending on the data used. The Headers are described below. The end block is one Special feature of SSC for marking the last block.

Das DEFLATE-Verfahren ist eine Kombination des LZ77 (Lempel- Ziv) Algorithmus und dem Kodieren nach Huffmann. Es ist in der Spezifikation RFC 1951 "DEFLATE Compressed Data Format Specification version 1.3" von Peter Deutsch beschrieben und definiert. The DEFLATE process is a combination of the LZ77 (Lempel- Ziv) algorithm and coding according to Huffmann. It is in the Specification RFC 1951 "DEFLATE Compressed Data Format Specification version 1.3 "described by Peter Deutsch and Are defined.

Von dem Header eines komprimierten Blocks sind die ersten drei Bits des ersten Byte wie folgt definiert:


The first three bits of the first byte of the header of a compressed block are defined as follows:


Die Bits bedeuten im einzelnen:


The individual bits mean:


Bei unkomprimierten Datenblöcken sind die ersten fünf Bytes definiert. Die ersten drei Bits von Byte 1 kennzeichnen einen Block als unkomprimiert. Daten bleiben unkomprimiert, wenn dies entsprechend konfiguriert wurde und/oder wenn die Ergebnisse der zwei möglichen Kompressionsverfahren (fester und dynamischer Huffmann-Code) zu keiner Reduzierung des Datenumfangs führt. Der Header setzt sich folgendermaßen zusammen:


The first five bytes are defined for uncompressed data blocks. The first three bits of byte 1 identify a block as uncompressed. Data remains uncompressed if this has been configured accordingly and / or if the results of the two possible compression methods (fixed and dynamic Huffmann code) do not lead to a reduction in the amount of data. The header is composed as follows:


Die Bits von Byte 1 bedeuten im einzelnen:


The bits of byte 1 mean in detail:


Bytes 2 und 3 beschreiben den Wert für die Länge des unkomprimierten Blocks. Bytes 4 und 5 beschreiben den Wert für die Länge des unkomprimierten Blocks minus 1. Bytes 2 and 3 describe the value for the length of the uncompressed block. Bytes 4 and 5 describe the value for the length of the uncompressed block minus 1.

Für den letzten Block innerhalb eines SSC-Dokuments muß nach der DEFLATE-Spezifikation das erste Bit (der BFINAL-Flag) auf 1 gesetzt sein. For the last block within an SSC document, after the first bit (the BFINAL flag) of the DEFLATE specification to 1 be set.

Während der blockweisen Bearbeitung der Daten ist es für SSC nicht möglich, automatisch den letzten Block zu erkennen. Daher ist das BFINAL-Flag der Datenblöcke immer 0. SSC fügt am Ende einen zusätzlichen Block, den Endblock, ein und setzt das BFINAL-Flag auf 1. Dieser Endblock enthält keine Daten. During block processing of the data, it is for SSC not possible to automatically recognize the last block. Therefore the BFINAL flag of the data blocks is always 0. SSC inserts at the end an additional block, the end block, and sets that BFINAL flag at 1. This end block contains no data.

Der Pre-Processor ist eng mit dem Parser auf dem Application- Server verknüpft und muß daher auch auf diesem laufen. The pre-processor is closely related to the parser on the application Server linked and must therefore also run on this.

Er markiert als ersten Schritt von SSC jeden Block einer dynamischen Webseite mit einem SSC-spezifischen Tag. Diese Tags sind Voraussetzung für den weiteren SSC-Prozess. Der Pre- Processor kann nur templatebasierte dynamischen Webseiten bearbeiten. As the first step of SSC, it marks each block one dynamic website with an SSC-specific tag. These tags are a prerequisite for the further SSC process. The pre- Processor can only use template-based dynamic websites to edit.

Die SSC-spezifischen Tags dienen dem Erkennen der Blöcken einer dynamischen Webseite und dem Kennzeichnen dieser als statisch oder dynamisch. Der Pre-Processor fügt sie an erste Stelle eines Blocks ein. The SSC-specific tags are used to recognize the blocks of a dynamic website and marking it as static or dynamic. The pre-processor adds them in the first place one block.

Die zwei SSC-spezifischen Tags (statisch und dynamisch) entsprechen von ihrer Syntax her einem HTML Kommentar. Daraus ergibt sich der Vorteil, daß diese Tags als solche vom Application-Server erkannt aber nicht dargestellt werden. Beispiele für SSC-spezifische Tags sind:

  • - statisch: <!--/@-->
  • - dynamisch: <!--\@/-->
The syntax of the two SSC-specific tags (static and dynamic) corresponds to an HTML comment. This has the advantage that these tags are recognized as such by the application server but are not displayed. Examples of SSC-specific tags are:
  • - static: <! - / @ ->
  • - dynamic: <! - \ @ / ->

Mit dem Abruf einer templatebasierten dynamischen Webseite greift der Parser des Application-Server auf das abgelegte Template zu. Der Parser analysiert das Template Block für Block auf deren Charakter (statisch oder dynamisch). Gleichzeitig fügt der Pre-Processor das entsprechende statische oder dynamische SSC-spezifische Tag an den Beginn des Blocks ein. Durch diesen parallelen Ablauf bleibt die benötigte zusätzliche Rechenleistung gering. By accessing a template-based dynamic website the parser of the application server accesses the stored one Template too. The parser analyzes the template block by block on their character (static or dynamic). simultaneously the pre-processor adds the appropriate static or dynamic SSC-specific tag at the beginning of the block. Due to this parallel process, the additional required remains Low computing power.

Fig. 8 zeigt beispielhaft das Einfügen der SSC-spezifischen Tags. <? ist das PHP-Anfangstag und ?> das Endtag für den dynamischen Block. Fig. 8 shows an example of the insertion of the SSC-specific tags. <? is the PHP start day and?> the end day for the dynamic block.

Das so analysierte und markierte Template wird anschließend durch den Application-Server generiert. Die danach vollständige unkomprimierte dynamische Webseite mit den eingefügten SSC- spezifischen Tags übernimmt der Pre-Compressor. The template analyzed and marked in this way is then used generated by the application server. The complete afterwards uncompressed dynamic website with the inserted SSC The pre-compressor takes over specific tags.

Der Pre-Compressor setzt eine mit SSC-spezifischen Tags vorbereitete dynamische Webseite voraus. Er übernimmt diese mit generiertem Inhalt vom Application-Server. The pre-compressor sets one with SSC-specific tags prepared dynamic website ahead. He takes it over generated content from the application server.

Er überprüft für jeden Block dieser Webseite:

  • - den Blocktyp (anhand des SSC-spezifischen Tag),
  • - ob der Block komprimiert werden soll bzw. ob für diesen Block bereits eine Block-Datei erstellt und abgelegt wurde.
He checks for each block of this website:
  • - the block type (based on the SSC-specific tag),
  • - whether the block should be compressed or whether a block file has already been created and stored for this block.

Zu komprimierende Blöcke bearbeitet der Pre-Compressor nach dem DEFLATE-Verfahren und übergibt sie dem Post-Compressor. Blöcke, die unkomprimiert bleiben, übergibt er sofort dem Post- Compressor. The blocks to be compressed are processed by the pre-compressor after the DEFLATE process and passes it to the post-compressor. Blocks, which remain uncompressed, he immediately hands them over to the Compressor.

Der Pre-Compressor ist zusammen mit dem Post-Compressor unabhängig vom Application-Server. D. h., beide können auch auf anderen Servereinheiten, z. B. dem Webserver, integriert sein. The pre-compressor is together with the post-compressor independent of the application server. That is, both can also other server units, e.g. B. the web server.

Der Pre-Compressor weist jedem zu komprimierendem Block eine eindeutige Block-ID zu. Diese Block-ID besteht aus zwei Bestandteilen: der CRC-32 Prüfsumme und der Länge des unkomprimierten Blocks:
Block-ID = <CRC-32><Länge des Blocks>
The pre-compressor assigns a unique block ID to each block to be compressed. This block ID consists of two parts: the CRC-32 checksum and the length of the uncompressed block:
Block ID = <CRC-32><length of the block>

Das Kreuzprodukt der CRC-32 Prüfsumme und der Länge des unkomprimierten Blocks ergibt eine Block-ID, mit der sich ein Block eindeutig bestimmen läßt und damit Verwechslungen mit hoher Wahrscheinlichkeit ausschließt. The cross product of the CRC-32 checksum and the length of the uncompressed blocks results in a block ID, with which a Block can be clearly identified and thus confused with high probability excludes.

Für jeden Block einer dynamischen Webseite, der komprimiert werden soll, erstellt der Pre-Compressor eine Block-Datei. Diese Block-Datei ist in einem bestimmten Verzeichnis abgelegt (gecached) und besteht aus dem Block in unkomprimierter und in nach dem DEFLATE-Verfahren komprimierter Form. Der Name der Block-Datei wird von der Block-ID geprägt, die Endung kann dem Charakter des Blocks entsprechen. Beispiel für eine Kennung ist: SSC-cache-<Länge>-<CRC-32>.static For each block of a dynamic website that compresses the pre-compressor creates a block file. This block file is stored in a specific directory (cached) and consists of the block in uncompressed and in form compressed according to the DEFLATE method. The name of Block file is shaped by the block ID, the extension can Correspond to the character of the block. Example of an identifier is: SSC-cache- <length> - <CRC-32> .static

Fig. 9 zeigt den Aufbau einer Block-Datei. Fig. 9 shows the structure of a block file.

Der Pre-Compressor bearbeitet die vom Application-Server übernommene dynamische Webseite blockweise. Dabei prüft er als erstes, ob der Block komprimiert abgelegt werden soll oder nicht. Wenn nicht übernimmt der Post-Compressor den unkomprimierten Inhalt des Blocks. Ist eine Komprimierung gefordert, errechnet der Pre-Compressor für den Block die Block-ID und prüft mit dieser Block-ID, ob für diesen Block bereits eine Block-Datei erstellt und abgelegt ist. Entsprechend dem Ergebnis ergeben sich 2 Fallsituationen.
Fall 1 (Fig. 10): Der Pre-Compressor findet die entsprechende Block-Datei. Der Post-Compressor übernimmt den komprimierten Block aus dieser Block-Datei.
Fall 2 (Fig. 11): Es gibt noch keine entsprechende Block-Datei. Der Pre-Compressor komprimiert den Block nach dem DEFLATE- Verfahren und übergibt diesen den Post-Compressor. Zusätzlich erstellt er eine Block-Datei und legt diese ab.
The pre-compressor processes the dynamic website taken over from the application server in blocks. The first thing he does is check whether the block should be stored compressed or not. If not, the post-compressor takes over the uncompressed content of the block. If compression is required, the pre-compressor calculates the block ID for the block and uses this block ID to check whether a block file has already been created and stored for this block. According to the result, there are 2 case situations.
Case 1 ( Fig. 10): The pre-compressor finds the corresponding block file. The post-compressor takes the compressed block from this block file.
Case 2 ( Fig. 11): There is no corresponding block file yet. The pre-compressor compresses the block according to the DEFLATE process and transfers it to the post-compressor. He also creates a block file and stores it.

Der Post-Compressor übernimmt vom Pre-Compressor die komprimierten bzw. unkomprimierten Blöcke und erstellt aus diesen ein SSC-Dokument. The post-compressor takes over from the pre-compressor compressed or uncompressed blocks and created from an SSC document.

Der Post-Compressor ist zusammen mit dem Pre-Compressor unabhängig vom Application-Server. D. h., beide können auch in anderen Servereinheiten, z. B. dem Webserver, integriert sein. The post-compressor is together with the pre-compressor independent of the application server. This means that both can also be used in other server units, e.g. B. the web server.

Das SSC-Dokument setzt sich, wie aus Fig. 12 erkennbar, aus einem Header, den einzelnen Datenblöcken und einem Trailer zusammen. Dieser Aufbau entspricht dem GZip-Format, der in der Spezifikation RFC1952 "GZIP file format specification version 4.3" von Peter Deutsch definiert und beschrieben ist. As can be seen from FIG. 12, the SSC document is composed of a header, the individual data blocks and a trailer. This structure corresponds to the GZip format, which is defined and described in the specification RFC1952 "GZIP file format specification version 4.3" by Peter Deutsch.

Der Aufbau des Header (Kopf) vom SSC-Dokument setzt sich folgendermaßen zusammen:


The structure of the header of the SSC document is made up as follows:


Die einzelnen Bytes bedeuten:


The individual bytes mean:


Das SSC-Dokument endet mit einem 8 Byte großem Trailer (Anhang). Diese Bytes haben folgende Bedeutung:


The SSC document ends with an 8-byte trailer (Appendix). These bytes have the following meaning:


Der Post-Compressor erstellt parallel zur Auswertung der dynamischen Webseite durch den Pre-Compressor ein neues Dokument nach dem GZip-Format. Dabei bildet der Post-Compressor zunächst den GZip-Header. Anschließend reiht er unmittelbar mit der Übergabe der Blöcke durch den Pre-Compressor diese Block für Block in das Dokument ein. The Post-Compressor creates the parallel to the evaluation dynamic website by the pre-compressor a new one Document according to the GZip format. The post-compressor forms first the GZip header. Then he joins immediately the block is handed over by the pre-compressor to this block for block in the document.

Unkomprimierte Blöcke, die der Pre-Compressor ohne Bearbeitung weiterleitet, kennzeichnet der Post-Compressor durch einen Header entsprechend dem DEFLATE-Format. Uncompressed blocks that the pre-compressor does without processing forwarding, the Post-Compressor is identified by a Header according to the DEFLATE format.

Sind alle Blöcke der dynamischen Webseite abgearbeitet, ergänzt der Post-Compressor einen zusätzlichen End-Block, der keine Daten enthält. Das BFINAL-Flag (BFINAL = 1) im Header des End- Blocks kennzeichnet das Ende der Datenblöcke. Are all blocks of the dynamic website processed, added the post-compressor has an additional end block that does not Contains data. The BFINAL flag (BFINAL = 1) in the header of the end Blocks marks the end of the data blocks.

Als letzten Schritt errechnet der Post-Compressor die Checksumme und die Größe des unkomprimierten Datenblocks für den Trailer. As a last step, the post-compressor calculates the Checksum and the size of the uncompressed data block for the trailer.

Das fertige SSC-Dokument übergibt der Post-Compressor dem Webserver, der dieses zum Nutzer weiterleitet. The post-compressor delivers the finished SSC document to the Web server that forwards this to the user.

In der beiliegenden Fig. 13 ist ein Ausführungsbeispiel der erfindungsgemäßen Datenverarbeitungseinrichtung im Prinzip gezeigt. Hierbei ist ein Webserver 10 mit einem Application- Server 11 verbunden, auf welchem ein Parser 12 läuft. Der Parser 12 ist eng mit einem Pre-Processor verbunden, läuft also ebenfalls auf dem Application-Server 11. Der Pre-Processor (mit dem Parser) bearbeitet die dynamischen, templatebasierten Webseiten. An exemplary embodiment of the data processing device according to the invention is shown in principle in the attached FIG. 13. Here, a web server 10 is connected to an application server 11 , on which a parser 12 runs. The parser 12 is closely connected to a pre-processor, so it also runs on the application server 11 . The pre-processor (with the parser) processes the dynamic, template-based websites.

Es ist ein Pre-Compressor 14 vorgesehen, der zusammen mit einem Post-Compressor 15 vorzugsweise unabhängig vom Application- Server ist, also mit dem Pre-Compressor 14 z. B. im Webserver integriert sein kann. Schließlich ist ein Blockspeicher 13 vorgesehen, der mit dem Pre-Compressor 14 verbunden ist, so daß der Pre-Compressor 14 den Blockspeicher 13 auf dort schon gespeicherte komprimierte statische Blöcke untersuchen bzw. statische Blöcke nach dem Komprimieren dort ablegen kann. Bezugszeichenliste 10 Webserver
11 Application-Server
12 Parser
13 Blockspeicher
14 Pre-Compressor
15 Post-Compressor
A pre-compressor 14 is provided which, together with a post-compressor 15, is preferably independent of the application server, that is to say with the pre-compressor 14 z. B. can be integrated in the web server. Finally, a block memory 13 is provided, which is connected to the pre-compressor 14 , so that the pre-compressor 14 can examine the block memory 13 for compressed static blocks already stored there or can store static blocks there after compression. List of Reference Symbols 10 web server
11 Application server
12 parsers
13 block memories
14 pre-compressor
15 post-compressor

Claims (34)

1. Verfahren zum Komprimieren von dynamischen Webseiten, insbesondere zum Komprimieren von Webseiten, die mindestens einen statischen Block und wenigstens einen dynamischen, insbesondere durch Abruf von einem Nutzer veränderlichen Block aufweisen, die auf einem Webserver und einem Application-Server vorgehalten oder generiert werden, umfassend die Schritte:
- Aufnehmen eines Datensatzes, umfassend mindestens einen statischen und einen dynamischen Block; - Feststellen jeweils einer Identität aller im Datensatz vorhandenen statischen Blöcke; - Feststellen, ob statische Blöcke mit derselben Identität in einem Blockspeicher schon als komprimierte Blöcke gespeichert sind und - entweder Ersetzen des im Datensatz vorhandenen statischen Blocks durch einen komprimierten Block dann, wenn der statische Block im Blockspeicher als komprimierter Block gespeichert ist; - oder Komprimieren des statischen Blocks und Abspeichern im Blockspeicher als komprimierter Block dann, wenn der statische Block noch nicht im Blockspeicher gespeichert ist und Ersetzen des statischen Blocks durch den komprimierten Block; - Absenden eines Sende-Datensatzes, bei welchem die statischen Blöcke durch komprimierte Blöcke ersetzt sind und der die dynamischen Blöcke enthält.
1. A method for compressing dynamic websites, in particular for compressing websites, which have at least one static block and at least one dynamic block, in particular one that can be changed by a user, which are maintained or generated on a web server and an application server the steps:
Recording a data record, comprising at least one static and one dynamic block; - Establishing an identity of all static blocks present in the data set; - Determine whether static blocks with the same identity are already stored in a block memory as compressed blocks and - either replacing the static block in the data record with a compressed block when the static block is stored in the block memory as a compressed block; - or compressing the static block and storing it in the block memory as a compressed block if the static block is not yet stored in the block memory and replacing the static block with the compressed block; - Sending a send data record in which the static blocks are replaced by compressed blocks and which contains the dynamic blocks.
2. Verfahren nach Anspruch 1, wobei die Identität eines statischen Blocks anhand einer, aus ihm selbst gewonnenen Kennung (Fingerprint) festgestellt wird. 2. The method of claim 1, wherein the identity of a static blocks on the basis of a block obtained from it Identifier (fingerprint) is determined. 3. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 2, wobei die aus der Identität gewonnene Kennung jedem komprimierten Block zugehörig im Blockspeicher gespeichert und beim Feststellen der Identität zum Vergleich mit den Identitäten der statischen Blöcke im Datensatz verwendet wird. 3. The method according to any one of the preceding claims, in particular according to claim 2, wherein the identity obtained identifier belonging to each compressed block in the Block memory saved and when determining the Identity for comparison with the identities of the static Blocks in the data set is used. 4. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, daß die Kennung eine Prüfsumme über den statischen Block umfaßt. 4. The method according to any one of the preceding claims, in particular according to one of claims 2 or 3, characterized in that the identifier is a checksum over the static block includes. 5. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 4, dadurch gekennzeichnet, daß die Kennung die Länge des statischen Blocks umfaßt. 5. The method according to any one of the preceding claims, in particular according to claim 4, characterized in that the identifier comprises the length of the static block. 6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zusätzlich zu jedem komprimierten Block der dazugehörige statische Block abgespeichert wird. 6. The method according to any one of the preceding claims, characterized in that in addition to each compressed block, the corresponding one static block is saved. 7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Daten nach dem DEFLATE-Verfahren komprimiert werden. 7. The method according to any one of the preceding claims, characterized in that the data is compressed using the DEFLATE method. 8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die dynamischen Blöcke im wesentlichen unverändert, insbesondere unkomprimiert im Sende-Datensatz enthalten sind. 8. The method according to any one of the preceding claims, characterized in that the dynamic blocks essentially unchanged, contained in the uncompressed data record in particular are. 9. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß mindestens ein dynamischer Block komprimiert und als komprimierter dynamischer Block in den Sende-Datensatz eingefügt wird. 9. The method according to any one of the preceding claims, in particular according to one of claims 1 to 7, characterized in that compressed at least one dynamic block and as compressed dynamic block in the send record is inserted. 10. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 9, dadurch gekennzeichnet, daß abhängig von einer momentanen Arbeitsbelastung eines Servers, insbesondere des Webservers, dynamische Blöcke komprimiert oder unkomprimiert abgesendet werden. 10. The method according to any one of the preceding claims, in particular according to claim 9, characterized in that depending on the current workload of a Servers, especially the web server, dynamic blocks sent compressed or uncompressed. 11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß jedem letzten Block eines Datensatzes ein Endblock zur Bezeichnung des Endes des Datensatzes hinzugefügt wird. 11. The method according to any one of the preceding claims, characterized in that an end block for each last block of a data record Name of the end of the record is added. 12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß jeder Block des Datensatzes ein Tag zur Kennzeichnung als dynamischer oder als statischer Block insbesondere an erster Stelle hinzugefügt wird. 12. The method according to any one of the preceding claims, characterized in that each block of the record is a tag for labeling as dynamic or as a static block in particular is added first. 13. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 12, dadurch gekennzeichnet, daß die Tags als HTML-Kommentar ausgebildet sind. 13. The method according to any one of the preceding claims, in particular according to claim 12, characterized in that the tags are designed as HTML comments. 14. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 12 oder 13, dadurch gekennzeichnet, daß die Tags von einem Parser eingefügt werden, der auf einem Application-Server läuft und auf abgelegte Templates zugreift, die er Block für Block analysiert und denen er die Tags hinzufügt. 14. The method according to any one of the preceding claims, in particular according to one of claims 12 or 13, characterized in that the tags are inserted by a parser on a Application server is running and on stored templates accesses, which he analyzes block by block and which he adds the tags. 15. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 14, dadurch gekennzeichnet, daß die mit den Tags markierte unkomprimierte Webseite einem Prekompressor zugeführt wird, der entsprechend markierte Blöcke komprimiert, die zusammen mit unkomprimierten Blöcken einem Postkompressor übergeben werden. 15. The method according to any one of the preceding claims, in particular according to claim 14, characterized in that the uncompressed website marked with the tags Pre-compressor is fed, the correspondingly marked Blocks compressed together with uncompressed ones Blocks are passed to a post-compressor. 16. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 15, dadurch gekennzeichnet, daß der Postkompressor schritthaltend zur Datenbearbeitung durch den Prekompressor ein neues Dokument, vorzugsweise nach dem Gzip-Format erstellt. 16. The method according to any one of the preceding claims, in particular according to claim 15, characterized in that the post-compressor keeps pace with data processing through the pre-compressor a new document, preferably created according to the gzip format. 17. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 16, dadurch gekennzeichnet, daß der Postkompressor nach Bildung eines Gzip-Headers die vom Prekompressor übergebenen Blöcke unmittelbar mit der Übergabe in das neue Dokument einreiht. 17. The method according to any one of the preceding claims, in particular according to claim 16, characterized in that the post-compressor after forming a gzip header the from Blocks passed directly to the precompressor Transfer in the new document. 18. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 17, dadurch gekennzeichnet, daß der Postkompressor unkomprimierte Blöcke durch einen Header, vorzugsweise einen Header entsprechend dem DEFLATE-Format kennzeichnet. 18. The method according to any one of the preceding claims, in particular according to claim 17, characterized in that the postcompressor uncompressed blocks by one Header, preferably a header corresponding to the DEFLATE format indicates. 19. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet, daß der Postkompressor einen zusätzlichen END-Block erstellt und zur Kennzeichnung eines Endes der Datenblöcke dem neuen Dokument hinzufügt. 19. The method according to any one of the preceding claims, in particular according to one of claims 15 to 18, characterized in that the post-compressor creates an additional END block and to mark an end of the data blocks adds new document. 20. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach einem der Ansprüche 16 bis 19, dadurch gekennzeichnet, daß der Postkompressor eine Checksumme, insbesondere eine CR- 32-Prüfsumme und die Größe des unkomprimierten neuen Dokuments für einen Trailer errechnet. 20. The method according to any one of the preceding claims, in particular according to one of claims 16 to 19, characterized in that the post-compressor has a checksum, especially a CR 32 checksum and the size of the uncompressed new one Document calculated for a trailer. 21. Verfahren nach einem der vorhergehenden Ansprüche, insbesondere nach Anspruch 9, dadurch gekennzeichnet, daß dynamische Blöcke in Abhängigkeit
von mindestens einem ihnen innewohnenden Merkmal, insbesondere in Abhängigkeit von ihrer Größe vorkomprimiert gespeichert werden.
21. The method according to any one of the preceding claims, in particular according to claim 9, characterized in that dynamic blocks in dependence
are stored precompressed by at least one feature inherent in them, in particular depending on their size.
22. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß
eine Kompression von Datenblöcken nur dann vorgenommen wird, wenn diese eine voreinstellbare Mindestgröße überschreiten.
22. The method according to any one of the preceding claims, characterized in that
data blocks are only compressed if they exceed a preset minimum size.
23. Datenverarbeitungseinrichtung zum Komprimieren von dynamischen Webseiten, insbesondere zum Komprimieren von dynamischen Webseiten, die mindestens einen statischen Block und mindestens einen dynamischen Block aufweisen, umfassend
einen Webserver (10) und einen Application-Server (11), gekennzeichnet durch einen Prekompressor, der so ausgebildet ist, daß bei Aufforderung durch den Webserver (10) an den Application-Server (11) eine dynamische Webseite zu generieren, der Prekompressor eine unkomprimierte Webseite in folgenden Schritten bearbeite: - Feststellen jeweils einer Identität aller im Datensatz vorhandenen statischen Blöcke; - Feststellen, ob statische Blöcke mit derselben Identität in einem Blockspeicher schon als komprimierte Blöcke gespeichert sind und - entweder Ersetzen des im Datensatz vorhandenen statischen Blocks durch einen komprimierten Block dann, wenn der statische Block im Blockspeicher als komprimierter Block gespeichert ist; - oder Komprimieren des statischen Blocks und Abspeichern im Blockspeicher als komprimierter Block dann, wenn der statische Block noch nicht im Blockspeicher gespeichert ist und Ersetzen des statischen Blocks durch den komprimierten Block; - Absenden eines Sende-Datensatzes, bei welchem die statischen Blöcke durch komprimierte Blöcke ersetzt sind und der die dynamischen Blöcke enthält.
23. Data processing device for compressing dynamic websites, in particular for compressing dynamic websites, which have at least one static block and at least one dynamic block
a web server ( 10 ) and an application server ( 11 ), characterized by a pre-compressor, which is designed such that when requested by the web server ( 10 ) to generate a dynamic website for the application server ( 11 ), the pre-compressor a Edit uncompressed website in the following steps: - Establishing an identity of all static blocks present in the data set; - Determine whether static blocks with the same identity are already stored in a block memory as compressed blocks and - either replacing the static block in the data record with a compressed block when the static block is stored in the block memory as a compressed block; - or compressing the static block and storing it in the block memory as a compressed block if the static block is not yet stored in the block memory and replacing the static block with the compressed block; - Sending a send data record in which the static blocks are replaced by compressed blocks and which contains the dynamic blocks.
24. Datenverarbeitungseinrichtung nach Anspruch 23, dadurch gekennzeichnet, daß der Parser (12) so ausgebildet ist, daß die aus der Identität gewonnene Kennung jedem komprimierten Block zugehörig im Blockspeicher gespeichert und beim Feststellen der Identität zum Vergleich mit den Identitäten der statischen Blöcke im Datensatz verwendet wird. 24. Data processing device according to claim 23, characterized in that the parser ( 12 ) is designed such that the identifier obtained from the identity associated with each compressed block is stored in the block memory and used in establishing the identity for comparison with the identities of the static blocks in the data record becomes. 25. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 oder 24, dadurch gekennzeichnet, daß der Webserver (10) derart ausgebildet ist, daß abhängig von seiner momentanen Arbeitsbelastung dynamische Blöcke komprimiert oder unkomprimiert abgesendet werden. 25. Data processing device according to one of claims 23 or 24, characterized in that the web server ( 10 ) is designed such that, depending on its current workload, dynamic blocks are sent compressed or uncompressed. 26. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 25, dadurch gekennzeichnet, daß der Parser (12) derart ausgebildet ist, daß Tags von ihm eingefügt werden, wobei der Parser (12) auf dem Application-Server (11) läuft und auf abgelegte Templates zugreift, die er Block für Block analysiert und denen er die Tags hinzufügt. 26. Data processing device according to one of claims 23 to 25, characterized in that the parser ( 12 ) is designed such that tags are inserted by it, the parser ( 12 ) running on the application server ( 11 ) and on stored templates which he analyzes block by block and to which he adds the tags. 27. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 26, dadurch gekennzeichnet, daß ein Prekompressor (14) vorgesehen ist, welchem die mit den Tags markierten unkomprimierten Webseiten zugeführt werden und der zu Komprimierung entsprechend markierter Blöcke ausgebildet ist, und daß ein Postkompressor (15) vorgesehen ist, dem die komprimierten Blocke zusammen mit unkomprimierten Blocke vom Prekompressor (14) übergeben werden. 27. Data processing device according to one of claims 23 to 26, characterized in that a pre-compressor ( 14 ) is provided, to which the uncompressed websites marked with the tags are fed and which is designed for compression correspondingly marked blocks, and in that a post-compressor ( 15 ) It is provided that the compressed blocks are transferred together with uncompressed blocks by the pre-compressor ( 14 ). 28. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 27, dadurch gekennzeichnet, daß der Postkompressor (15) schritthaltend zur Datenverarbeitung durch den Prekompressor (14) und zur Erstellung eines neuen Dokuments vorzugsweise nach dem Gzip-Format ausgebildet ist. 28. Data processing device according to one of claims 23 to 27, characterized in that the post-compressor ( 15 ) is designed to keep pace for data processing by the pre-compressor ( 14 ) and to create a new document, preferably according to the Gzip format. 29. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 28, dadurch gekennzeichnet, daß der Postkompressor (15) zur Bildung eines Gzip-Headers und zur unmittelbaren Einreihung der vom Prekompressor (14) übergebenen Blöcke mit der Übergabe in das neue Dokument ausgebildet ist. 29. Data processing device according to one of claims 23 to 28, characterized in that the post-compressor ( 15 ) is designed to form a gzip header and for the immediate classification of the blocks transferred by the pre-compressor ( 14 ) with the transfer into the new document. 30. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 29, dadurch gekennzeichnet, daß der Postkompressor (15) zur Kennzeichnung unkomprimierter Blöcke durch einen Header, vorzugsweise einen Header entsprechend dem DEFLATE-Format ausgebildet ist. 30. Data processing device according to one of claims 23 to 29, characterized in that the post-compressor ( 15 ) is designed to identify uncompressed blocks by a header, preferably a header corresponding to the DEFLATE format. 31. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 30, dadurch gekennzeichnet, daß der Postkompressor (15) zur Erstellung eines zusätzlichen END-Blocks und zur Hinzufügung des END-Blocks zur Kennzeichnung eines Endes der Datenblöcke zum neuen Dokument ausgebildet ist. 31. Data processing device according to one of claims 23 to 30, characterized in that the post-compressor ( 15 ) is designed to create an additional END block and to add the END block to identify an end of the data blocks for the new document. 32. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 31, dadurch gekennzeichnet, daß der Postkompressor (15) zur Bildung einer Checksumme und Herleitung der Größe des unkomprimierten neuen Dokuments und zur Erstellung eines Trailers ausgebildet ist. 32. Data processing device according to one of claims 23 to 31, characterized in that the post-compressor ( 15 ) is designed to form a checksum and derive the size of the uncompressed new document and to create a trailer. 33. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 32, dadurch gekennzeichnet, daß der Prekompressor derart ausgebildet ist, daß dynamische Blöcke in Abhängigkeit von mindestens einem ihnen innewohnenden Merkmal, insbesondere in Abhängigkeit von ihrer Größe vorkomprimiert gespeichert werden. 33. Data processing device according to one of claims 23 up to 32, characterized in that the Pre-compressor is designed such that dynamic blocks depending of at least one characteristic inherent in them, especially depending on their size stored pre-compressed. 34. Datenverarbeitungseinrichtung nach einem der Ansprüche 23 bis 33, dadurch gekennzeichnet, daß der Prekompressor derart ausgebildet ist, daß eine Kompression von Datenblöcken nur dann vorgenommen wird, wenn diese eine voreinstellbare Mindestgröße überschreiten. 34. Data processing device according to one of claims 23 up to 33. characterized in that the pre-compressor is designed such that compression of data blocks only then if this is a preset minimum size exceed.
DE10146356A 2001-09-20 2001-09-20 Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory Withdrawn DE10146356A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10146356A DE10146356A1 (en) 2001-09-20 2001-09-20 Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10146356A DE10146356A1 (en) 2001-09-20 2001-09-20 Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory

Publications (1)

Publication Number Publication Date
DE10146356A1 true DE10146356A1 (en) 2003-04-24

Family

ID=7699670

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10146356A Withdrawn DE10146356A1 (en) 2001-09-20 2001-09-20 Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory

Country Status (1)

Country Link
DE (1) DE10146356A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7188214B1 (en) * 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service
US7548947B2 (en) 1999-11-09 2009-06-16 Digital River, Inc. Predictive pre-download of a network object
US7765274B2 (en) 2001-08-06 2010-07-27 Digital River, Inc. Differential caching with template, sub-template, and delta information

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548947B2 (en) 1999-11-09 2009-06-16 Digital River, Inc. Predictive pre-download of a network object
US7269784B1 (en) 2001-01-22 2007-09-11 Kasriel Stephane Server-originated differential caching
US7185063B1 (en) 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7962594B2 (en) 2001-06-22 2011-06-14 Digital River, Inc. Delivering content on a network using differential caching system and method
US7765274B2 (en) 2001-08-06 2010-07-27 Digital River, Inc. Differential caching with template, sub-template, and delta information
US7188214B1 (en) * 2001-08-07 2007-03-06 Digital River, Inc. Efficient compression using differential caching
US7296051B1 (en) 2002-02-19 2007-11-13 Digital River, Inc. Predictive predownload of templates with delta encoding
US7487261B1 (en) 2002-02-22 2009-02-03 Digital River, Inc. Delta caching service

Similar Documents

Publication Publication Date Title
DE69833899T2 (en) Dynamic data transmission device and method
EP1522028B9 (en) Method and devices for encoding/decoding structured documents, especially xml documents
DE60127247T2 (en) NETWORK DEVICE FOR THE DOCUMENT STATEMENT OF VALIDITY
DE2208664A1 (en) Method for decoding a prefix-free compression code of variable length
WO2003091905A2 (en) Generic data stream description
DE60107964T2 (en) DEVICE FOR CODING AND DECODING STRUCTURED DOCUMENTS
DE3606869A1 (en) DEVICE FOR DATA COMPRESSION
DE10051024A1 (en) Intermediate caching points management method in software systems, involves storing overall output of program element group in cache
DE3030255A1 (en) METHOD FOR TRANSMITTING WORDS AND MESSAGE TRANSMISSION SYSTEM FOR ITS IMPLEMENTATION
EP1241603A1 (en) Internet banner
DE10146356A1 (en) Compressing dynamic web pages e.g. for e-commerce website, by replacing static block with compressed block if static block is not yet stored in block memory
EP1620810A2 (en) Method and arrangement for establishing and updating a user surface used for accessing data pages in a data network
Köhler Korpuslinguistik–zu wissenschaftstheoretischer Grundlagen und methodologischen Perspektiven
EP1616274A1 (en) Method for encoding a structured document
DE102009015734A1 (en) Compression method, decompression method, compression unit, decompression unit and compressed document
EP1833258A2 (en) Hybrid image compression method
DE19516742A1 (en) Process for data reduction using fractal image coding
DE19944213C1 (en) Method for compressing a digital image with several bit levels
DE10231970B3 (en) Coding method for data element positions in data structure e.g. for XML document coding, has position codes assigned to data element positions in given serial sequence
DE10217886A1 (en) Medical data processing system for provision of access to medical data, via local and internet-based access, whereby a web server program does not store any process states in cache memory
DE4432436C2 (en) Data compression method and device for compressing data
EP1515244A2 (en) Mapping a class hierarchy to a relational database system
EP1509856A2 (en) Method for searching for data, taking into account the moment of availability ofsaid data in a distributed system
DE10142024A1 (en) Compression method involves replacing data file HTML/XHTML code/data structure with compressed strings, generating individual decompression code in ECMA script language
DE10248758B4 (en) Methods and devices for encoding / decoding XML documents

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee