410 likes | 590 Views
JIGSAW Webserver. Marc Fenselau Michael Imiolczyk. Inhalt. 4. Jigsaw Proxy 4.2 Jigsaw Proxy 4.3 Proxy Client& Server+ Smart Cache 5. Security 5.1 Jigsaw Sicherheit 5.2 Features 5.3 Fazit 6. Vor und Nachteile 5.1 Vorteile 5.2 Nachteile 5.3 Letzter Überblick
E N D
JIGSAW Webserver Marc Fenselau Michael Imiolczyk
Inhalt 4. Jigsaw Proxy 4.2 Jigsaw Proxy 4.3 Proxy Client& Server+ Smart Cache 5. Security 5.1 Jigsaw Sicherheit 5.2 Features 5.3 Fazit 6. Vor und Nachteile 5.1 Vorteile 5.2 Nachteile 5.3 Letzter Überblick 7. Ein kleines Java- Webserver- Programm 1. Filter 1.1 Was sind Filter? 1.2 Übersicht 1.3 Beispiel „RessourcFilter und Filtered Ressource“ 1.4 Weitere Filter 2. Performance 2.1 Gründe 2.2 Gerüchte 2.3 Vier Benchmark Tests 2.4 Fazit 3. Cache Management beim Jigsaw 3.1 Was ist das? 3.2 Genau 3.3 Belegt und verbessert
Jigsaw Webserver Filter Was sind Filter? • Priorität bei einem Server (Webserver): Implementierte Authentifizierungs- Sicherheitsmechanismen • Filter sind stellen ein Mechanismus dar, der sich allgemein für die verschiedenen Absicherungen für den Jigsaw nutzen lassen • Jigsaw Filter sind „ladbare“ Module, außerhalb des „Haupt Code Stroms“ • Können in der Serverlaufzeit geladen/ Entladen werden • Jigsaw Filter laufen innerhalb eines „Thread“ • Können so den „Thread flow“ des Jigsaw kontrollieren können Kontrolle über den Zugang auf verschiedene interne Ressourcen des Jigsaw ausüben
Jigsaw Webserver Filter Was sind Filter? • Sehr umfangreiches Thema • Es gibt sehr viele verschiedene Filter beim Jigsaw • Das Konzept der Filter erlaubt beim Jigsaw mehr als nur Absicherung • Es können auch eigene Filter hinzugefügt/ programmiert werden • Alle Ressourcen lassen sich mit einem Filter versehen • Ein Filter ist auch eine Ressource = Objekt = Klasse • Ab der Version 2, werden Filter mit den Protokoll- Frames der angefragten Ressource assoziiert • Filter sichern zuerst mal den Zugang und den Zugriff auf Ressourcen • Filter können diese, den Zugriff, manipulieren/ Verändern
Jigsaw Webserver Filter 1. Beispiel: Die Klasse RessourceFilter und die Klasse FilteredRessource • Die RessourceFilter Klasse definiert seine eigenen Attribute und ist die Oberklasse aller Filter • Abhängigkeiten/ Wo liegt die Oberklasse der Filter ?
Jigsaw Webserver Filter 1. Übersicht
Jigsaw Webserver Filter 1. Übersicht
Jigsaw Webserver Filter 1. Übersicht
Jigsaw Webserver Filter
Jigsaw Webserver Filter
Jigsaw Webserver Filter Noch ein paar wichtige Filter: • Die Klasse BasicAuthentifikationFilter aus Httpd = Benutzerkennung und Passwort • GenericAuthFilter Klasse = Die Requests nach ip – adressen authentiziert (Standard), oder mit einem (bzw. Beides) MD5 Hash - Algorithmus • Der AccessLimit Filter • CacheFilter • LoggerFilter
Jigsaw Webserver Filter Zusammengefasst: • Filter sollen Authentifizierung, Sicherheit, Information, Schutzbereiche, Bandbreite, bzw. den abgesicherten Webserververkehr ermöglichen • Neuheit: Nicht nur Bereiche, sondern jedes Objekt lässt sich mit Filter versehen. • Weil Filter ausserhalb des Stroms von Hauptcode laufen, können diese dem Jigsaw nicht schaden • Aber können den „Thread flow“ vom jigsaw kontrollieren
Jigsaw Webserver Performance Gründe (The Need for Speed) • Anstieg der Internet – Benutzer bis heute • Leitungen immer schneller • http Anfragen verursachen Internet Traffic • Neue, starke Webserver – Architekturen sind gefragt • Verfügbarkeit • Schnelligkeit und Intelligenz der Webserver
Jigsaw Webserver Performance Und Java – Webserver, bzw. der Jigsaw? • Die Gerüchte: • Bytecode + Interpretation Ausführung = Langsam • Java Virtuell Maschine • JIT – Compiler • Das gilt für alle Java - Webserver • Aber was, wenn alles läuft?
Jigsaw Webserver Performance Und der Jigsaw genau? • Hier ist es sehr schwer aktuelle Ergebnisse zu finden (Wird getestet) • Der Jigsaw ist der Nachfolger des CERN – Server (W3C) • Ein „Experiment für neue Technologien“ • Also kein „echter Webserver“ für den „echten“ Einsatz?
Jigsaw Webserver Performance • 4 ausführliche Benchmark - Tests
Jigsaw Webserver Performance Jigsaw vs. Apache vs. CERN Test Nr. 1 von der W3.org: • Eine ältere Jigsaw Version, 1.0 alpha 1 und 3 vs. Apache 1.1.1 und den Vorläufer CERN 3.0
Jigsaw Webserver Performance Jigsaw vs. Tomcat Test Nr.2 : Open Source Web Servers: Performance on a Carrier-Class Linux Platform vom Ericson Research Institut, Kanada, von Ibrahim Haddad • Jigsaw 2.0.1 vs. Tomcat 3.0.1 vs. Apache 1.3.14 und 2.08a auf einem Linux Cluster (Red Hat) von 1 CPU (Server) – 16 CPU‘s (Intel P3- 500Mhz., 512MB RAM pro Server) • Tomcat 3.1 wird hier ohne Apache als „Standalone“ benutzt
Jigsaw Webserver Performance Test Nr.2 : Open Source Web Servers: Performance on a Carrier-Class Linux Platform vom Ericson Research Institut, Kanada, von Ibrahim Haddad • Der Apache ist im Moment die Nr. 1, was Benchmarks angeht
Jigsaw Webserver Performance Jigsaw vs. Javaserver Test Nr.3: Aktuellerer Test von der Zeitschrift iX, wie sieht der Jigsaw im Vergleich mit den anderen Java- Webservern aus? • Test der Servlet- Engines von 3 Java Plugins und 3 reinen Java Servern • Jigsaw 2.0.3 vs. Suns Java Webserver 2.0 vs. jetty von Mortbay vs. Plugins: jrun, Allaires, jserv auf Apache 1.3.6 und 1.3.9 • Benchmarks: Requests in der Sekunde für 3 Servlets • Bekanntes Servlet: „Hello World“ • Der Jigsaw Server im “Hello World” Test auf Platz 1 • Handelte hier 262 Requests in der Sekunde • 181 R/s- 184 R/s für „File Test“ = Platz 2 • Erstes Fazit: Der Jigsaw wird immer besser und schneller
Jigsaw Webserver Performance Jigsaw vs. Apache Test Nr.4: Analyse der Jigsaw 2.0.1 vs. Apache 1.3.4 Architektur, Universität Waterloo • Tesattribute: Performance undtechnische Flexibilität
Jigsaw Webserver Performance Jigsaw vs. Apache Fazit • Neue Versionen haben den Älteren immer etwas voraus • Der Jigsaw ist heute fast genauso schnell wie der Apache • C vs. Java? Jigsaw besitzt angeblich auch um die 10 C- Module • Vorteil Jigsaw: Flexibilität durch Java, automatische Plattformunabhängigkeit • Der Jigsaw ist eine neue Technologie und mittlerweile, wie der Apache auch, als Webserver absolut tauglich • Warum ist das so?
Jigsaw Webserver Cache Management Performance
Jigsaw Webserver Cache Management Was ist das? • Studie: 90%- 95% der Zugriffe auf einem Webserver erfolgen auf nur 10% der verschiedenen Dokumente • Was passiert, wenn diese 10% ermittelt würden, und dem Client direkt zur Verfügung stehen würden? • Der 1. Grund der guten Performance = Der Jigsaw cached die Ressourcen = Objekte Performance
Jigsaw Webserver Cache Management Genau: • Jigsaw lädt eine Jigsaw- Resource = Objekt erst dann, wenn auf sie zugegriffen wird • Nach dem Zugriff bleibt die Ressource im Cache • Bei erneutem Zugriff auf die Ressource = Kein Festplattenzugriff nötig • Der Jigsaw legt eine Tabelle an über den Cache • Zusätzlich legt der Jigsaw einen Cache über die Requests an • So wird kein neuer Prozess gestartet • Nach einer Zeitspanne ohne Request auf das Dokument wird es aus dem Cache entfernt und auf die Festplatten geschrieben Performance
Jigsaw Webserver Cache Management Belegt und verbessert durch Experimente: • P- Jigsaw Cluster und Cooperatives Caching • Proxy Smart Cache Versuch • Ergebnis: Der Jigsaw gewinnt nochmals 30% - 50% an Performance Performance
Jigsaw Webserver Jigsaw Proxy Proxy und Java: Performance
Jigsaw Webserver Jigsaw Proxy Proxy und Java: Methode: PUT Wird aber von den meisten Browsern NICHT unterstützt!
Jigsaw Webserver Jigsaw Proxy Proxy und Java:
Jigsaw Webserver Jigsaw Proxy Jigsaw Proxy Performance
Jigsaw Webserver Jigsaw Proxy Proxy Client und Server+ Smart Cache Performance
Jigsaw Webserver Jigsaw Security Proxy Client und Server+ Smart Cache beim Jigsaw • Leistungssteigerung beim Jigsaw ~ 50% • Sicherheit durch sehr gute Client, wie auch Server – Proxy Funktion des Jigsaw Performance
Jigsaw Webserver Jigsaw Security Sicherheit des Jigsaw Webserver • Eigentlich gut durchdachtes Sicherheitskonzept mit Filtern • Sicherheit durch sehr gute Client, wie auch Server – Proxy Funktion des Jigsaw • Aber … Performance
Jigsaw Webserver Jigsaw Security Sicherheit des Jigsaw Webserver • Jede Software hat Ihre „Bugs“, auch wenn Sie in Java geschrieben ist • Auch der Jigsaw, gerade als experimenteller, ist verwundbar, trotzt des sehr gut durchdachten Sicherheitskonzeptes • Schwachstellen: • DOS device DoS • execute arbitrary code on the system • Jigsaw Httpd Proxy server Cross Site Scripting Performance
Jigsaw Webserver Jigsaw Security Sicherheit - Features des Jigsaw Webserver • Filter • Unterstützung von: SSH, SSL, MD5 Performance
Jigsaw Webserver Jigsaw Security Fazit • Filterkonzept = + • Authentifizierung = + • Datensicherheit = + • Verwundbarkeit gegen Attacken = Mittelmaß • Datensicherung = - • Absicherung fehlerhafte Administration = - • Weitere kritische Punkte: Offener Quellcode, der Vorteil eigene Klassen hinzuzufügen • Aber: Hier ist fast jede Software irgendwann betroffen gewesen, oder ist es heute noch. Deshalb kann die Sicherheit als gut bewertet werden (IIS Heute noch Bugs) Performance
Jigsaw Webserver Jigsaw Vor und Nachteile zusammengefasst Vorteile • Automatische Plattformunabhängigkeit durch Java • Das Konzept „neue Technologie“ läßt sich in der Zukunft gut auf kommende Hardware und Software Technologien übertragen • Umsonst, Open Source + Updates • Httpd 1.1 Unterstützung, + Multiprotokollfähig • Caching • Portabel und erweiterbar • Metadaten • Einfachste Installation • Objektorientiert Beispiel P - Jigsaw • Offener Quellcode, Skalierung • Sicherheit • Dynamische Kommunikation in der Zukunft möglich (error 404) • Sehr ausführliche Dokumentation • Sehr gute Unterstützung von IPV6 durch Java Performance
Jigsaw Webserver Jigsaw Vor und Nachteile zusammengefasst Nachteile • Schwere, ungewohnte Administration • Konfigartionsschwierigkeiten Absturz • Caching • In der Zukunft bei Erweiterung ellenlange Klassennamen • Zuständigkeiten sind nicht eindeutig • Sehr schwer andere Informationen über den Jigsaw zu bekommen, als vom W3C • Viele kleine Module Unübersichtlichkeit in der Zukunft möglich Performance
Jigsaw Webserver Jigsaw Vor und Nachteile zusammengefasst Aber • Supermöglichkeit zum experimentieren für Forschung und Studenten Performance
Jigsaw Webserver Jigsaw letztes Bild Der Jigsaw entspricht fast der Architektur eines Referenzservers, letzte Eckdaten • 105,725 Zeilen Java code ( etwas C code ) • 606 Module: 600 .java files und 10 .c &.h files • 174.5 Zeilen code pro Modul im Durchschnitt Performance
Jigsaw Webserver Jigsaw Ende Auf Wiedersehen und vielen Dank fürs Zuhören! Performance