JIGSAW Webserver

41
JIGSAW Webserver JIGSAW Webserver Marc Fenselau Michael Imiolczyk

description

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 - PowerPoint PPT Presentation

Transcript of JIGSAW Webserver

Page 1: JIGSAW Webserver

JIGSAW WebserverJIGSAW Webserver

Marc Fenselau

Michael Imiolczyk

Page 2: JIGSAW Webserver

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 Jigsaw3.1 Was ist das?3.2 Genau3.3 Belegt und verbessert

InhaltInhalt

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

Page 3: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Filter

Page 4: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Filter

Page 5: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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 ?

Filter

Page 6: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

1. Übersicht

Filter

Page 7: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

1. Übersicht

Filter

Page 8: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

1. Übersicht

Filter

Page 9: JIGSAW Webserver

Jigsaw WebserverJigsaw WebserverFilter

Page 10: JIGSAW Webserver

Jigsaw WebserverJigsaw WebserverFilter

Page 11: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Filter

Page 12: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Filter

Page 13: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Performance

Page 14: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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?

Performance

Page 15: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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?

Performance

Page 16: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

4 ausführliche Benchmark - Tests

Performance

Page 17: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Performance Jigsaw vs. Apache vs. CERN

Page 18: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Performance Jigsaw vs. Tomcat

Page 19: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Performance

Page 20: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Performance Jigsaw vs. Javaserver

Page 21: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Test Nr.4: Analyse der Jigsaw 2.0.1 vs. Apache 1.3.4 Architektur, Universität Waterloo

Tesattribute: Performance und technische Flexibilität

Performance Jigsaw vs. Apache

SAAM Siemens

Scale Scale

Performance Apache + -

Jigsaw + -

Technology Flexibility Apache +/- M

Jigsaw + M

Page 22: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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?

Performance Jigsaw vs. Apache

Page 23: JIGSAW Webserver

Jigsaw WebserverJigsaw WebserverCache Management

Page 24: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Cache Management

Page 25: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Cache Management

Page 26: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Belegt und verbessert durch Experimente:

P- Jigsaw Cluster und Cooperatives Caching Proxy Smart Cache Versuch Ergebnis: Der Jigsaw gewinnt nochmals 30% - 50% an Performance

Cache Management

Page 27: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Proxy und Java:

Jigsaw Proxy

Page 28: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Proxy und Java:

Jigsaw Proxy

Methode: PUTWird aber von den meisten BrowsernNICHT unterstützt!

Page 29: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Proxy und Java:

Jigsaw Proxy

Page 30: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Jigsaw Proxy

Jigsaw Proxy

Page 31: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Proxy Client und Server+ Smart Cache

Jigsaw Proxy

Page 32: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Proxy Client und Server+ Smart Cache beim Jigsaw

Leistungssteigerung beim Jigsaw ~ 50% Sicherheit durch sehr gute Client, wie auch Server – Proxy Funktion des Jigsaw

Jigsaw Security

Page 33: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Sicherheit des Jigsaw Webserver

Eigentlich gut durchdachtes Sicherheitskonzept mit Filtern Sicherheit durch sehr gute Client, wie auch Server – Proxy Funktion des Jigsaw Aber …

Jigsaw Security

Page 34: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Jigsaw Security

Page 35: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Sicherheit - Features des Jigsaw Webserver

Filter Unterstützung von: SSH, SSL, MD5

Jigsaw Security

Page 36: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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)

Jigsaw Security

Page 37: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Jigsaw Vor und Nachteile zusammengefasst

Page 38: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Jigsaw Vor und Nachteile zusammengefasst

Page 39: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

Aber

Supermöglichkeit zum experimentieren für Forschung und Studenten

Jigsaw Vor und Nachteile zusammengefasst

Page 40: JIGSAW Webserver

Jigsaw WebserverJigsaw Webserver

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

Jigsaw letztes Bild

Page 41: JIGSAW Webserver

Jigsaw WebserverJigsaw WebserverJigsaw Ende

Auf Wiedersehen und vielen Dank fürs Zuhören!