JIGSAW Webserver

Werbung
JIGSAW Webserver
Marc Fenselau
Michael Imiolczyk
Inhalt
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
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
Jigsaw Webserver
Filter
Was sind Filter?






Priorität bei einem Server (Webserver): Implementierte AuthentifizierungsSicherheitsmechanismen
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 und technische Flexibilität
Performance
Technology Flexibility
SAAM
Siemens
Scale
Scale
Apache
+
-
Jigsaw
+
-
Apache
+/-
M
Jigsaw
+
M
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
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
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
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

Jigsaw Webserver
Jigsaw Proxy
Proxy und Java:
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
Jigsaw Webserver
Jigsaw Proxy
Proxy Client und Server+ Smart Cache
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
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 …
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
Jigsaw Webserver
Jigsaw Security
Sicherheit - Features des Jigsaw Webserver


Filter
Unterstützung von: SSH, SSL, MD5
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)

+
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











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
Jigsaw Webserver
Jigsaw Vor und Nachteile zusammengefasst
Aber

Supermöglichkeit zum experimentieren für Forschung und
Studenten
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
Jigsaw Webserver
Jigsaw Ende
Auf Wiedersehen und vielen Dank fürs Zuhören!
Herunterladen