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 memoryInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Abstract
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)
- - 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.
- - 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: <!--\@/-->
- - 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.
- - 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)
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.
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.
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:
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:
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)
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 |
-
2001
- 2001-09-20 DE DE10146356A patent/DE10146356A1/en not_active Withdrawn
Cited By (8)
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 |