Analyse und Vergleich von Applikations-Servern und ihren zugrundeliegenden Technologien
					
	
		©2000
		Diplomarbeit
		
			
				181 Seiten
			
		
	
				
				
					
						
					
				
				
				
				
			Zusammenfassung
			
				Inhaltsangabe:Einleitung:	
Die Entwicklung und der Betrieb Server-basierter Softwaresysteme wird durch ständig steigende Anforderungen immer aufwendiger und komplizierter. Zusätzlich erfordert die starke Verbreitung des Internets und die damit verbundene ständig steigende Akzeptanz von E-Commerce eine möglichst einfache Entwicklung Web-basierter Anwendungen, die in die bestehende Infrastruktur eingebunden werden und diese nutzen können. Applikations-Server stellen die zur Bewältigung dieser Probleme nötige Infrastruktur samt Werkzeuge zur Verfügung. Ausgelöst durch den Motor E-Commerce, der hohe Zuwachsraten mit stark steigenden Umsätzen verspricht, gelang ihnen am Markt innerhalb der letzten zwei Jahre endgültig der Durchbruch. Die Heterogenität der zu integrierenden Infrastrukturen und der zu erstellenden Softwaresysteme bewirkte jedoch eine sehr starke Diversifikation von Applikations-Servern. Dies mündete letztendlich in einer zur Zeit beinahe unüberschaubaren Anzahl von Produkten.
Gang der Untersuchung:
Diese Diplomarbeit beschreibt im theoretischen Teil zuerst die Charakteristika und zugrundeliegenden Technologien von Applikations-Servern, um danach einen Kriterienkatalog zu ihrem Vergleich aufstellen zu können. Im Zuge dessen wird die Brückenfunktion von Applikations-Servern anhand der sechs Middleware Kategorien RPC based Middleware, Message Oriented Middleware, Database Middleware, Distributed Transaction Coordinator, Object Request Broker und Component Oriented Middleware verdeutlicht. Darin enthalten ist ein Vergleich der zur Zeit populärsten serverseitigen Komponentenmodelle COM+ und EJB, die die zentrale Architektur der meisten Applikations-Server festlegen.
Im praktischen Teil dieser Diplomarbeit wird schließlich der Kriterienkatalog zur Beurteilung der Applikations-Server Allaire Cold Fusion 4.5.1 Enterprise, Inprise Application Server 4.0 und Microsoft Windows 2000 Advanced Server angewandt. Abschließend wird, um die praktische Anwendbarkeit der Applikations-Server von
Allaire und Inprise zu überprüfen, mit ihnen eine Beispielapplikation (Mini-Tourismus- Server) erstellt.
	
Inhaltsverzeichnis:Inhaltsverzeichnis:
1.Motivation für den Einsatz von Applikations-Servern1
1.1Allgemeines Schichtenmodell2
1.2Zwei-Schichten Architektur3
1.2.1Kombination von Präsentations- und Geschäftslogikschicht3
1.2.2Vorziehen eines Teils der Geschäftslogik in die Datenschicht5
1.3N-Schichten-Architektur6
1.4Sonderfall HTML […]
	Die Entwicklung und der Betrieb Server-basierter Softwaresysteme wird durch ständig steigende Anforderungen immer aufwendiger und komplizierter. Zusätzlich erfordert die starke Verbreitung des Internets und die damit verbundene ständig steigende Akzeptanz von E-Commerce eine möglichst einfache Entwicklung Web-basierter Anwendungen, die in die bestehende Infrastruktur eingebunden werden und diese nutzen können. Applikations-Server stellen die zur Bewältigung dieser Probleme nötige Infrastruktur samt Werkzeuge zur Verfügung. Ausgelöst durch den Motor E-Commerce, der hohe Zuwachsraten mit stark steigenden Umsätzen verspricht, gelang ihnen am Markt innerhalb der letzten zwei Jahre endgültig der Durchbruch. Die Heterogenität der zu integrierenden Infrastrukturen und der zu erstellenden Softwaresysteme bewirkte jedoch eine sehr starke Diversifikation von Applikations-Servern. Dies mündete letztendlich in einer zur Zeit beinahe unüberschaubaren Anzahl von Produkten.
Gang der Untersuchung:
Diese Diplomarbeit beschreibt im theoretischen Teil zuerst die Charakteristika und zugrundeliegenden Technologien von Applikations-Servern, um danach einen Kriterienkatalog zu ihrem Vergleich aufstellen zu können. Im Zuge dessen wird die Brückenfunktion von Applikations-Servern anhand der sechs Middleware Kategorien RPC based Middleware, Message Oriented Middleware, Database Middleware, Distributed Transaction Coordinator, Object Request Broker und Component Oriented Middleware verdeutlicht. Darin enthalten ist ein Vergleich der zur Zeit populärsten serverseitigen Komponentenmodelle COM+ und EJB, die die zentrale Architektur der meisten Applikations-Server festlegen.
Im praktischen Teil dieser Diplomarbeit wird schließlich der Kriterienkatalog zur Beurteilung der Applikations-Server Allaire Cold Fusion 4.5.1 Enterprise, Inprise Application Server 4.0 und Microsoft Windows 2000 Advanced Server angewandt. Abschließend wird, um die praktische Anwendbarkeit der Applikations-Server von
Allaire und Inprise zu überprüfen, mit ihnen eine Beispielapplikation (Mini-Tourismus- Server) erstellt.
Inhaltsverzeichnis:Inhaltsverzeichnis:
1.Motivation für den Einsatz von Applikations-Servern1
1.1Allgemeines Schichtenmodell2
1.2Zwei-Schichten Architektur3
1.2.1Kombination von Präsentations- und Geschäftslogikschicht3
1.2.2Vorziehen eines Teils der Geschäftslogik in die Datenschicht5
1.3N-Schichten-Architektur6
1.4Sonderfall HTML […]
Leseprobe
Inhaltsverzeichnis
ID 5172 
Fellner, Klaus: Analyse und Vergleich von Applikations-Servern und ihren zugrundeliegenden 
Technologien / Klaus Fellner - Hamburg: Diplomica GmbH, 2002  
Zugl.: Linz, Universität, Diplom, 2000
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die 
der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, 
der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der 
Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, 
vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im 
Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der 
Bundesrepublik Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich 
vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des 
Urheberrechtes. 
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem 
Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche 
Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten 
wären und daher von jedermann benutzt werden dürften. 
Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können Fehler nicht 
vollständig ausgeschlossen werden, und die Diplomarbeiten Agentur, die Autoren oder 
Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für evtl. 
verbliebene fehlerhafte Angaben und deren Folgen. 
Diplomica GmbH 
http://www.diplom.de, Hamburg 2002 
Printed in Germany 
Inhaltsverzeichnis 
I 
Inhaltsverzeichnis 
1 
Motivation für den Einsatz von Applikations-Servern... 1 
1.1 
Allgemeines Schichtenmodell ... 2 
1.2 
Zwei-Schichten Architektur ... 3 
1.2.1 
Kombination von Präsentations- und Geschäftslogikschicht ... 3 
1.2.2 
Vorziehen eines Teils der Geschäftslogik in die Datenschicht ... 5 
1.3 
N-Schichten-Architektur ... 6 
1.4 
Sonderfall HTML Applikation... 10 
1.5 
Weitere Vorgehensweise ... 11 
2 
Einführung in Applikations-Server ... 13 
2.1 
Definition... 13 
2.2 
Aufgaben ... 13 
2.2.1 Explizite 
Aufgaben... 13 
2.2.1.1 Horizontale 
Aufgabengebiete... 14 
2.2.1.2 Vertikale 
Aufgabengebiete... 16 
2.2.1.3 Werkzeugunterstützung... 18 
2.2.1.4 Unterstützung 
von 
Industriestandards ... 18 
2.2.1.5 Aufgabenerfüllung... 18 
2.2.2 
Implizite Aufgaben und Nebeneffekte ... 18 
2.2.2.1 Rollenteilung ... 18 
2.2.2.2  Brückenfunktion von Applikations-Servern ... 19 
2.2.2.3 Produktivitätssteigerung 
der 
Softwareentwicklung... 20 
2.2.2.4  Unabhängigkeit gegenüber den Herstellern ... 22 
2.3 
Arten von Applikations-Servern ... 22 
2.3.1 
Einsatzgebiete von Applikations-Servern ... 22 
2.3.2 
Aufgabenbereiche von Applikations-Servern ... 23 
2.3.3 
Aufwand zur Beherrschung von Applikations-Servern ... 24 
2.4 
Hersteller von Applikations-Server ... 25 
2.4.1 
Klassifizierung der Hersteller... 25 
2.4.2 
Stärken und Schwächen der einzelnen Herstellerklassen... 26 
3 
Middleware  Applikations-Server als Brücke... 28 
3.1 
RPC based Middleware ... 29 
Inhaltsverzeichnis 
II 
3.2 
Message Oriented Middleware... 31 
3.2.1 Message 
Passing... 31 
3.2.2 Message 
Queuing ... 32 
3.2.3 
Publish & Subscribe ... 32 
3.3 
Database Middleware... 33 
3.3.1 
Open Database Connectivity (ODBC) ... 33 
3.3.2 OLE 
DB... 34 
3.3.3 
Java Database Connectivity (JDBC) ... 34 
3.4 
Distributed Transaction Coordinators... 35 
3.4.1 
Standards für verteilte Transaktionsverarbeitung... 36 
3.4.2 
Klassische Transaction Processing Monitors ... 38 
3.5 
Object Request Broker ... 39 
3.5.1 
Common Object Request Broker Architecture... 41 
3.5.1.1  ORB Funktionalität von CORBA... 41 
3.5.1.2 CORBA 
Services... 42 
3.5.2 
Java Remote Method Invocation... 44 
3.5.2.1  ORB Funktionalität von Java RMI... 44 
3.5.2.2  Java 2 Platform, Enterprise Editon (J2EE)... 46 
3.5.3 
Distributed Component Object Model ... 47 
3.5.3.1  ORB Funktionalität von DCOM ... 48 
3.5.3.2  Windows Distributed interNet Architecture (DNA) ... 48 
3.5.4 
Bewertung der ORB-Modelle... 49 
3.6 
Component Oriented Middleware ... 50 
3.6.1 Komponenten ... 50 
3.6.1.1 Definition... 51 
3.6.1.2 Auswirkungen ... 53 
3.6.2 
Architektur von Component Oriented Middleware... 54 
3.6.3 
Vorteile von Component Oriented Middleware ... 55 
3.6.4 
Produkte eines Komponenten-Servers ... 56 
3.7 
Beispiele serverseitiger Komponentenmodelle ... 57 
3.7.1 
Enterprise JavaBeans (EJB) ... 58 
3.7.1.1  Allgemeines zu EJB ... 58 
3.7.1.2 EJB 
Modell... 59 
3.7.1.3  Implizite Dienste von EJB... 60 
3.7.1.4 Komponententypen 
von 
EJB... 61 
3.7.2 
Component Object Model+ (COM+) ... 63 
Inhaltsverzeichnis 
III 
3.7.2.1  Allgemeines zu COM+... 63 
3.7.2.2 COM+ 
Modell ... 64 
3.7.2.3  Implizite Dienste von COM+ ... 65 
3.7.2.4 Komponententypen 
von 
COM+ ... 65 
3.7.3 
Corba Component Model (CCM)... 66 
3.7.4 
Vergleich und Bewertung der serverseitigen Komponentenmodelle 66 
3.7.4.1  Unterschiede zwischen EJB und COM+ ... 68 
3.7.4.2  Zusammenfassung der Unterschiede... 71 
4 
Kriterienkatalog zur Bewertung von Applikations-Servern ... 73 
4.1 
Kategorie ... 73 
4.2 
Verfügbare Plattformen... 74 
4.3 
Client Unterstützung... 74 
4.3.1 Web-Client ... 74 
4.3.1.1 HTML 
Applikationen... 74 
4.3.1.2 Java 
Applets ... 75 
4.3.2 Arbeitsplatzapplikationen... 75 
4.3.2.1 Java 
Applikationen ... 75 
4.3.2.2 Native 
Applikationen ... 76 
4.4 
Mutli-threading ... 76 
4.5 
Middleware ... 78 
4.5.1 
Object Request Broker ... 79 
4.5.2 
Component Oriented Middleware ... 79 
4.5.3 
Enterprise JavaBeans spezifische Eigenschaften ... 80 
4.5.3.1 EJB 
Version... 80 
4.5.3.2  Unterstützung von Entity Beans... 80 
4.5.3.3  Persistenzmechanismen bei Entity Beans ... 80 
4.5.3.4  CORBA- oder RMI-basiertes EJB-Produkt ... 81 
4.5.3.5  Verwendung der RMI-IIOP API ... 82 
4.5.3.6 Eingesetztes 
Kommunikationsprotokoll... 83 
4.5.3.7  Zugriff auf JTA über JNDI... 84 
4.5.3.8  Integration von professionellen Bean-Herstellern... 84 
4.5.4 
Message Oriented Middleware... 84 
4.5.5 Distributed 
Transaction 
Coordinator... 85 
4.5.5.1  Transaktionsverwaltung durch den Ressource Manager... 85 
4.5.5.2  Transaktionsverwaltung durch den eigenen DTC ... 85 
Inhaltsverzeichnis 
IV 
4.6 
Web Dienste ... 87 
4.6.1 Web-Server 
eingebaut ... 87 
4.6.2 HTML 
Generator... 88 
4.6.2.1 Web-Server 
Module ... 88 
4.6.2.2 CGI 
Programme ... 89 
4.6.2.3 Java-Servlets... 89 
4.6.2.4 Schablonensysteme ... 89 
4.6.3 
Automatisches Status- und Sitzungsmanagement ... 90 
4.7 
Kombination mehrerer Schichten ... 92 
4.7.1 
Art der Kombination ... 93 
4.7.1.1  Web-Präsentationsschicht mit Geschäftslogikschicht... 93 
4.7.1.2  Geschäftslogikschicht mit Datenschicht ... 93 
4.7.2 Logische 
Trennung... 93 
4.8 
Betrieb ... 94 
4.8.1 Clustering ... 94 
4.8.1.1 Clusteraufbau... 95 
4.8.1.2 Lastverteilung 
(Load 
Balancing)... 96 
4.8.1.3 Fehlertoleranz 
(Failover) ... 98 
4.8.2 Ressourcen 
Pooling ... 99 
4.8.3 
Zwischenspeicherung von Daten der Datenschicht (Caching)... 100 
4.8.3.1  Caching von dynamisch erzeugten HTML Seiten ... 100 
4.8.3.2  Caching von Transaktionen... 100 
4.8.3.3 Caching 
von 
Datenbankabfragen ... 101 
4.8.3.4  In-Memory Database (IMDB) Cache... 101 
4.8.4 Stabilität... 101 
4.9 
Integration externer Systeme ... 101 
4.9.1 
Integration von Datenbeständen... 101 
4.9.1.1 Database 
Middleware ... 102 
4.9.1.2 Native 
Treiber... 102 
4.9.1.3  Datenbestände in bestehenden Informationssystemen ... 102 
4.9.1.4  Entkoppelung vom Datenbankschema ... 102 
4.9.2 
Integration entfernter Server-Objekte ... 102 
4.9.2.1 CORBA 
Objekte... 103 
4.9.2.2  COM Objekte bzw. Komponenten... 103 
4.9.2.3 EJB 
Komponenten... 103 
4.9.3 
Integration externer Web-Server ... 103 
4.9.3.1 Indirekte 
Integration ... 103 
Inhaltsverzeichnis 
V 
4.9.3.2 Direkte 
Integration ... 104 
4.10  Sicherheit... 107 
4.10.1 Verschlüsselung... 107 
4.10.2 Client 
Authentifizierung... 108 
4.10.2.1 Einfache 
Authentifizierung ... 108 
4.10.2.2 
SSL Client Authentifizierung (Zertifikat-basiert) ... 108 
4.10.2.3 Digest-Authentifierung... 109 
4.10.3 SSL 
Server 
Authentifizierung ... 110 
4.10.4 Benutzerverzeichnisse ... 110 
4.10.5 Autorisierung 
(Rollenkonzept)... 111 
4.10.6 
Firewall Proxy - HTTP Tunneling ... 112 
4.11  Integration zusätzlicher Internet Technologien ... 112 
4.11.1 E-Mail... 112 
4.11.2 Volltextsuchmaschine ... 113 
4.11.3 XML 
Integration... 113 
4.11.3.1 
Verarbeitung von XML ... 114 
4.11.3.2 
Abbildung von XML (XML Mapping) ... 115 
4.11.3.3 
Transformation von XML Dokumenten (XSL Prozessor)... 115 
4.12  Zusätzliche Dienste (Besonderheiten)... 115 
4.12.1 
Sauberes Herunterfahren (Clean Shutdown)... 115 
4.12.2 Getriggerte 
Aktionen... 115 
4.13  Administration... 116 
4.13.1 
Installation der Applikationslogik ... 116 
4.13.2 Konfiguration ... 116 
4.13.3 Protokollierung... 117 
4.13.4 Überwachung... 117 
4.14  Integration von Entwicklungswerkzeugen... 118 
4.14.1 
Entwicklungswerkzeuge vom Hersteller des Applikations-Servers 118 
4.14.1.1 Geschäftslogik ... 119 
4.14.1.2 Präsentationslogik ... 119 
4.14.1.3 Debugger ... 120 
4.14.1.4 Eingabekontrollen ... 120 
4.14.1.5 
Quellcode Überwachung (Source Code Control)... 120 
4.14.2 Entwicklungswerkzeuge 
von 
Drittherstellern ... 121 
5 
Bewertung von Applikations-Servern... 122 
Inhaltsverzeichnis 
VI 
5.1 
Erhältliche Applikations-Server ... 122 
5.2 
Allaire Cold Fusion 4.5.1 Enterprise ... 123 
5.2.1 Kategorie ... 123 
5.2.2 Verfügbare 
Plattformen ... 124 
5.2.3 Client 
Unterstützung... 124 
5.2.4 Server 
Architektur ... 124 
5.2.4.1 Allgemeines... 124 
5.2.4.2 Middleware... 126 
5.2.5 Web 
Dienste ... 126 
5.2.6 Betrieb ... 126 
5.2.6.1 Clustering ... 126 
5.2.6.2 Ressourcen 
Pooling ... 127 
5.2.6.3  Zwischenspeichern von Daten der Datenschicht... 127 
5.2.7 
Integration externer Systeme... 127 
5.2.7.1  Integration von Datenbeständen... 127 
5.2.7.2  Integration entfernter Server-Objekte ... 128 
5.2.7.3  Integration externer Web-Server ... 128 
5.2.8 Sicherheit... 129 
5.2.9 Benutzerverzeichnisse ... 129 
5.2.10 
Integration von Internet Technologien ... 129 
5.2.10.1 E-Mail... 129 
5.2.10.2 Volltextsuchmaschine ... 130 
5.2.10.3 XML 
Integration... 130 
5.2.11 Administration... 130 
5.2.12 
Integration von Entwicklungswerkzeugen ... 131 
5.2.13 Zusammenfassung ... 131 
5.3 
Inprise Application Server 4.0 ... 131 
5.3.1 Kategorie ... 132 
5.3.2 Verfügbare 
Plattformen ... 132 
5.3.3 Client 
Unterstützung... 133 
5.3.4 
Server Architektur - Middleware... 133 
5.3.4.1 Allgemeines... 133 
5.3.4.2 EJB 
Container... 136 
5.3.4.3  Message Oriented Middleware... 137 
5.3.4.4 Distributed 
Transaction 
Coordinator... 137 
5.3.5 Web 
Dienste ... 138 
5.3.6 Betrieb ... 139 
Inhaltsverzeichnis VII 
5.3.6.1 Clustering ... 139 
5.3.6.2 Ressourcen 
Pooling ... 139 
5.3.6.3  Zwischenspeichern von Daten der Datenschicht (Caching)... 140 
5.3.7 
Integration externer Systeme... 140 
5.3.7.1  Integration von Datenbeständen... 140 
5.3.7.2  Integration entfernter Server-Objekte ... 140 
5.3.7.3  Integration externer Web-Server ... 141 
5.3.8 Sicherheit... 141 
5.3.8.1 Web-Server... 141 
5.3.8.2 Benutzerverzeichnisse ... 141 
5.3.8.3 Zusätzliche 
Sicherheitseigenschaften... 142 
5.3.9 
Integration von Internet Technologien ... 142 
5.3.10 Administration... 142 
5.3.11 
Integration von Entwicklungswerkzeugen ... 142 
5.3.12 Sonstiges... 143 
5.3.13 Zusammenfassung ... 143 
5.4 
Übersicht über die getesteten Applikations-Server... 143 
5.4.1 Kategorie ... 144 
5.4.2 Verfügbare 
Plattformen ... 144 
5.4.3 Client 
Unterstützung... 144 
5.4.4 Multi-threading... 144 
5.4.5 Middleware... 145 
5.4.6 Web 
Dienste ... 145 
5.4.7 
Kombination mehrerer Schichten... 146 
5.4.8 Betrieb ... 146 
5.4.9 
Integration externer Systeme... 147 
5.4.10 Sicherheit... 148 
5.4.11 
Integration von zusätzlichen Internet Technologien ... 148 
5.4.12 Zusätzliche 
Dienste ... 148 
5.4.13 Administration... 149 
5.4.14 
Integration von Entwicklungswerkzeugen ... 149 
6 
Beispielapplikation ... 150 
6.1 
Aufgabenstellung ... 150 
6.2 
Ablaufdiagramm und Benutzerschnittstelle ... 150 
6.3 
Architektur der Beispielapplikation... 152 
6.3.1 
Architektur der Allaire Cold Fusion Applikation... 153 
Inhaltsverzeichnis VIII 
6.3.2 
Architektur der Inprise Application Server Applikation... 153 
6.4 
Präsentationslogik ... 154 
6.4.1 
Präsentationslogik von Cold Fusion 4.5.1... 154 
6.4.2 
Präsentationslogik von Inprise Application Server 4.0 ... 155 
6.5 
Geschäftslogik... 157 
6.5.1 
Geschäftslogik von Cold Fusion 4.5.1 ... 157 
6.5.2 
Geschäftslogik von Inprise Application Server 4.0... 157 
6.6 
Schlußfolgerung aus dem Vergleich der Applikationen ... 158 
7 
Ausblick... 159 
Abbildungsverzeichnis IX 
Abbildungsverzeichnis 
Abbildung 1.1 - Zwei Schichten Architektur (Fat Client) ... 4 
Abbildung 1.2 - Zwei Schichten Architektur (Stored Procedures)... 6 
Abbildung 1.3 - Drei Schichten Architektur ... 7 
Abbildung 1.4  Sicherheitsgründe verlangen oft eine Drei-Schichten Architektur... 8 
Abbildung 1.5 - Sitzungsmanagement bei einer Zwei- und Drei-Schichten Architektur
... 9 
Abbildung 1.6  Zweieinhalb-Schichten Architektur... 11 
Abbildung 2.1 Aufgaben von Applikations-Servern ... 14 
Abbildung 2.2  Merkmale von Applikations-Servern ... 22 
Abbildung 3.1 - Remote Procedure Call ... 29 
Abbildung 3.2 - Stubs und Skeletons ... 30 
Abbildung 3.3 Message Queuing... 32 
Abbildung 3.4 - Publish & Subscribe... 33 
Abbildung 3.5  Transaktion ... 35 
Abbildung 3.6 - Referenzmodell für Transaktionsverarbeitungssysteme von X/Open  
... 37 
Abbildung 3.7 - Transaction Processing Monitor... 39 
Abbildung 3.8 - Object Request Broker... 40 
Abbildung 3.9 - Merkmale von Komponenten... 51 
Abbildung 3.10  Serverseitige Komponentenarchitektur ... 54 
Abbildung 3.11 - EJB Modell ... 59 
Abbildung 3.12  COM+ Modell ... 64 
Abbildung 4.1 - Multi Threading... 78 
Abbildung 4.2 - CORBA basierender EJB-Server... 81 
Abbildung 4.3 - Proprietärer EJB-Server ... 82 
Abbildung 4.4  Im Applikations-Server eingebauter Web-Server ... 88 
Abbildung 4.5  Clustering mit einem IP-Lastverteiler und Network Address 
Translation (NAT) ... 95 
Abbildung 4.6  Indirekte Integration eines Web-Servers ... 104 
Abbildung 4.7  Direkte Integration eines Web-Server ... 105 
Abbildung 4.8 - Paßwort-basierte Authentifizierung ... 108 
Abbildung 4.9 - Zertifikat-basierte Authentifizierung ... 109 
Abbildung 4.10 - Firewall Proxy... 112 
Abbildung 4.11 - Erweiterter XML-Parser ... 115 
Abbildung 5.1 - Kategorie von Cold Fusion 4.5.1 ... 123 
Abbildung 5.2 - Cold Fusion Server 4.5.1 Enterprise... 125 
Abbildungsverzeichnis X 
Abbildung 5.3 - Kategorie von Inprise Application Server 4.0... 132 
Abbildung 5.4 - Inprise Application Server 4.0... 134 
Abbildung 6.1 - Ablaufdiagramm von miniTIS... 150 
Abbildung 6.2 - miniTIS Startseite ... 151 
Abbildung 6.3 - miniTIS Formular Hotelsuche... 151 
Abbildung 6.4 - miniTIS Suchergebnis... 151 
Abbildung 6.5 - miniTIS Authentifizierung... 152 
Abbildung 6.6 - miniTIS Administrator Menü... 152 
Abbildung 6.7 - miniTIS Formular Hotel einfügen ... 152 
Abbildung 6.8 - miniTIS Hotel auflisten... 152 
Abbildung 6.9 - Architektur der Allaire Cold Fusion Applikation... 153 
Abbildung 6.10 - Architektur der Inprise Application Server Applikation ... 154 
Motivation für den Einsatz von Applikations-Servern 1 
1 Motivation für den 
Einsatz von 
Applikations-Servern 
Server-basierte Softwaresysteme verfolgen das Ziel, ihren Benutzern einen 
gleichzeitigen, sicheren, verläßlichen und effizienten Zugriff auf ihre Dienste zu 
ermöglichen. 
Einige Anwendungsfälle für Server-basierter Softwaresysteme sind: 
·  Versicherungsunternehmen,  die ihre dezentral agierenden Agenten über 
einen zentralen Server mit Information versorgen 
·  Banken, die ihre lokalen Institute mit einem zentralen Server verbinden 
·  Support-Center, die über Terminals ihre Techniker mit Kundendaten 
versorgen 
·  Zeitungen, die aktuelle Daten auf ihren Web-Sites einer große Anzahl von 
Benutzern zur Verfügung stellen 
Es ist jedoch bei weitem nicht einfach, solche Systeme zu entwickeln. Aspekte der 
Skalierbarkeit, Wartung, Sicherheit, Verläßlichkeit etc. sind zu beachten. Gerade bei 
komplexen Systemen, die regelmäßig von einer großen Anzahl von Benutzern in 
Anspruch genommen werden, ist ein fehlerfreier Betrieb ohne Ausfälle, 
Leistungseinbrüche und Sicherheitslücken sehr wichtig. Gleichzeitig ist dies jedoch 
durch die Komplexität dieser Informationssysteme ungemein schwierig zu 
bewerkstelligen. Das allgemeine Schichtenmodell soll diese Komplexität verringern. 
Motivation für den Einsatz von Applikations-Servern 2 
1.1 Allgemeines 
Schichtenmodell 
Die Applikationslogik Server-basierter Softwaresysteme läßt sich theoretisch in drei 
verschiedene logische Schichten mit jeweils speziellen Aufgabengebieten einteilen. 
Dies sind: 
·  Präsentationsschicht 
·  Geschäftslogikschicht 
·  Datenschicht 
Die Logik der Präsentationsschicht  erzeugt die Benutzerschnittstelle und steuert 
den Arbeitsablauf (eng.: Workflow) einer Anwendung. Zur Codierung der 
Präsentationsschicht werden meist Programmiersprachen gewählt, die eine einfache 
Erstellung von grafischen Benutzerschnittstellen ermöglichen (z.B. HTML, Java, 
Visual Basic). 
Die Geschäftslogikschicht löst die eigentlichen Geschäftsprobleme einer 
Anwendung. Sie stellt daher das Kernstück der meisten Applikationen dar und dient 
als Verbindungsstück zwischen der Präsentations- und Datenschicht. Software dieser 
Schicht wird in der Regel mit typsicheren Programmiersprachen wie C++ oder Java 
geschrieben.  
Die Datenschicht wird von der Geschäftslogikschicht zur persistenten Speicherung 
von Zuständen (Daten) verwendet. Zur Speicherung der Daten werden meist mehrere 
verschiedene Datenbank Management Systeme (DBMS), Legacy Systeme (SAP, 
Großrechner) oder gewöhnliche Dateien verwendet. 
Diese logische Partitionierung der Applikations-Logik soll zu einer weitgehenden 
Isolierung der einzelnen Aufgabengebiete führen. Eine Änderung der 
Benutzerschnittstelle soll daher kaum Auswirkungen auf die Geschäftslogik bzw. 
Datenlogik besitzen. Dies soll analog bei Änderungen in den anderen beiden 
Schichten gelten. 
Die logische Partitionierung eines Systems alleine hat noch keine Auswirkungen auf 
seine physische Aufteilung. Logisch getrennte Programmteile können daher im 
gleichen Prozeß einer Maschine unter Nutzung des gleichen Adreßraums ablaufen. 
Physisch getrennte Programmteile benutzen jedoch unterschiedliche Prozesse auf 
unterschiedlichen Maschinen und besitzen daher unterschiedliche Adreßräume. 
Deshalb kann nur ein sogenannter entfernter Zugriff (z.B. ein Remote Procedure Call 
 RPC) auf ein physisch getrenntes Programmteil erfolgen. Dieser benötigt jedoch 
Motivation für den Einsatz von Applikations-Servern 3 
mehr Zeit als ein lokaler Zugriff, wodurch die maximale Systemgeschwindigkeit 
reduziert wird. Diesem Nachteil steht der Vorteil der unabhängigen Skalierung der 
physisch getrennten Programmteile gegenüber. Dies bedeutet, daß die den 
Programmteilen zugeordneten Serverressourcen voneinander unabhängig sind. 
Informationssysteme können nun auf eine unterschiedliche Anzahl von physischen 
Schichten aufgeteilt werden. Während traditionelle Client/Server Systeme auf zwei 
physische Schichten aufgeteilt sind, verwenden Applikations-Server meist drei oder 
mehr Schichten.  
1.2 Zwei-Schichten 
Architektur 
Aufgrund ihrer Anwendung bei traditionellen Client/Server Systemen werden Zwei-
Schichten-Architekturen am häufigsten eingesetzt. Die mittlere Schicht der 
Geschäftslogik wird mit den beiden anderen Schichten so kombiniert, daß nur zwei 
physikalische Schichten übrigbleiben.  
Die verbreitetsten Kombinationen sind:  
·  Kombination von Präsentations- und Geschäftslogikschicht 
·  Vorziehen eines Teils der Geschäftslogik in die Datenschicht 
1.2.1  Kombination von Präsentations- und Geschäftslogikschicht 
Wird die Präsentationsschicht mit der Geschäftslogikschicht in einer physikalischen 
Schicht gekoppelt, so entsteht, wie in Abbildung 1.1 dargestellt, eine physikalische 
Schichtgrenze zwischen Geschäftslogikschicht und Datenschicht. Betrachtet man die 
Präsentations- bzw. Geschäftslogikschicht als Client und die Datenschicht als Server, 
so wird der Client ,,fat" und der Server ,,thin". 
Motivation für den Einsatz von Applikations-Servern 4 
Schichtgrenze 
Präsentations
Logik 
Datenbank 
Treiber
Geschäftslogik
Einheit 
Datenbank 
Präsentations- bzw. 
Geschäftslogik- 
schicht 
Datenschicht 
Geschäftslogik
Einheit 
Geschäftslogik 
Einheit 
Server 
Client 
Abbildung 1.1 - Zwei Schichten Architektur (Fat Client) [Roma99, Fig. 1.6] 
Die Client-Applikation kommuniziert mit dem Datenbankserver über eine 
Programmierschnittstelle (API  Application Programming Interface), die vom 
Datenbanktreiber zur Verfügung gestellt wird. Unterstützt der Treiber einen offenen 
Standard wie Java Database Connectivity (JDBC) oder Open Database Connectivity 
(ODBC), ist die Datenschicht vom Rest weitgehend entkoppelt (abgesehen von 
Datenbank-spezifischen SQL-Kommandos).  
Diese Architektur besitzt folgende Eigenschaften [Roma99, S. 15,16]: 
Hohe Verteilungskosten. Datenbanktreiber müssen auf jeder Client-Maschine 
installiert und konfiguriert werden. Die Anzahl der Clients kann leicht mehrere 
hundert oder tausend betragen. 
Hohe Kosten bei Wechsel der Datenbanktreiber. Das Auswechseln eines 
Datenbanktreibers erfordert eine Reinstallation und Rekonfiguration aller 
betroffenen Clientmaschinen. Der Wartungsaufwand hierfür ist bei einer 
großen Anzahl an Clients dementsprechend hoch, vor allem wenn sie dezentral 
verteilt sind. 
Hohe Kosten bei Wechsel des Datenbankschemas. Da die Clients die Datenbank 
über den Treiber direkt ansprechen können, greifen sie auch direkt auf das 
darunterliegende Datenbankschema zu. Wird dieses Schema derart verändert 
Motivation für den Einsatz von Applikations-Servern 5 
(z.B. um ein neues Problem zu lösen), so daß die bisher verwendete 
Datenzugriffslogik nicht mehr anwendbar ist, müssen sämtliche Client-
Programme neu verteilt werden. 
Hohe Kosten bei Wechsel des Datenbanktyps. Fat-Clients sind an eine bestimmte 
Datenbankschnittstelle wie eine relationale Datenbank API oder eine 
objektorientierte Datenbank API gebunden. Wird zwischen diesen beiden 
Typen gewechselt, müssen nicht nur alle Client-Programme neu verteilt, 
sondern auch ihr Code massiv verändert werden. 
Hohe Geschäftslogik-Migrationskosten. Eine Änderung der Geschäftslogik 
erzwingt ein erneutes Übersetzen und anschließendes Verteilen des Client-
Programms. 
Hohe Datenbank-Verbindungskosten. Jeder Client benötigt seine eigene 
Verbindung zur Datenbank. Eine Datenbankverbindung ist jedoch eine 
begrenzte Ressource und relativ teuer zu erstellen. Offene 
Datenbankverbindungen inaktiver Clients können nicht an andere weiter 
gegeben werden. 
Hohe Netzwerkbelastung. Jede Datenbankverbindung überquert die physikalische 
Grenze zwischen Client und Server. Dies kann zu einer Verstopfung des 
Netzwerkes führen, was die Zeit zur Durchführung einer Datenbankoperation 
drastisch erhöht. 
1.2.2  Vorziehen eines Teils der Geschäftslogik in die Datenschicht 
Ein Teil der Geschäftslogik (v.a. Datenzugriffslogik) wird, wie in Abbildung 1.2 
dargestellt, vom Client in die Datenbank gezogen. In sogenannten ,,Stored 
Procedures" können mehrere Datenzugriffe lokal durchführt werden, da sie 
innerhalb des Adreßraums der Datenbank erfolgen. Dies reduziert die Netzbelastung 
sowie die Zeit zur Durchführung einer Datenbankoperation enorm und führt daher zu 
einer verbesserten Skalierbarkeit und Performanz des gesamten Systems. Alle 
anderen Probleme der Zwei-Schichten Architektur bleiben jedoch bestehen. Die 
Portabilität wird hingegen negativ beeinflußt, da die Sprachen zur Implementierung 
von Stored Procedures meist proprietär sind. Vorteile von offenen 
Datenbankschnittstellen wie JDBC oder ODBC kommen daher nicht zur Geltung. 
Sind Stored Procedures jedoch in Java geschrieben, erhöht sich ihre Portabilität 
beträchtlich, wenn auch Leistungseinbußen in Kauf genommen werden müssen. 
[Roma99, S. 16,17] 
Motivation für den Einsatz von Applikations-Servern 6 
Datenbank 
Geschäftslogik- bzw. Datenschicht 
Schichtgrenze 
Präsentations
Logik 
Präsentations- bzw. 
Geschäftslogik-
schicht 
Stored 
Procedures
Geschäftslogik 
Einheit 
Geschäftslogik 
Einheit 
Geschäftslogik 
Einheit 
Server 
Client 
Abbildung 1.2 - Zwei Schichten Architektur (Stored Procedures) [Roma99, Fig. 1.7] 
1.3 N-Schichten-Architektur 
Bei der N-Schichten-Architektur ist die Präsentations-, Geschäftslogik- und 
Datenschicht auch in entsprechende physische Schichten aufgeteilt. Mehr als drei 
Schichten erhält man, indem eine oder mehrere dieser Schichten in weitere Teile 
aufgeteilt werden. Dies ermöglicht eine unabhängige Skalierung aller logischen 
Schichten. Wird eine Schicht lediglich über mehrere Server repliziert, spricht man 
nicht von einer neuen Schicht, sondern von einem Cluster (siehe 4.8.1). 
Eine Drei-Schichten Architektur ist in Abbildung 1.3 dargestellt und besteht aus 
folgenden Komponenten: 
Die Präsentationsschicht läuft bei einer Web-Anwendung innerhalb des 
Adreßraums eines oder mehrerer Web-Server. Bei Nicht-Web-Anwendungen 
müssen die Clientprogramme, welche die Präsentationsschicht enthalten, an 
alle Benutzer verteilt werden.  
Die Geschäftslogikschicht läuft innerhalb des Adreßraums eines oder mehrerer 
Applikations-Server. Diese sind somit Dreh- und Angelpunkt des gesamten 
Serversystems und müssen die nötige Infrastruktur für einen stabilen und 
Motivation für den Einsatz von Applikations-Servern 7 
effizienten Betrieb bereitstellen. Applikations-Server sind jener Teil der Drei-
Schichten Architektur, auf die in dieser Diplomarbeit ab Kapitel 2 näher 
eingegangen wird. 
Die Datenschicht enthält eine oder mehrere Datenquellen, die neben den 
eigentlichen Daten auch Datenzugriffslogik in der Form von Stored Proceduers 
enthalten können. 
DB-MiddleWare 
Schichtgrenze 
Geschäftslogikschicht 
Schichtgrenze 
Präsentations
Logik 
Datenbank 
Treiber
Geschäftslogik 
Einheit 
Datenbank 
Präsentationsschicht 
Datenschicht 
Geschäftslogik 
Einheit 
Geschäftslogik 
Einheit 
Client 
Applikations-
Server 
DB-Server 
Abbildung 1.3 - Drei Schichten Architektur [Roma99, Fig. 1.8] 
Die N-Schichten Architektur besitzt folgende Eigenschaften [Roma99, S. 18ff.]: 
Niedrige Verteilungskosten. Datenbanktreiber werden zentral am Server installiert 
und konfiguriert. Dies ist weit günstiger als die Installation und Konfiguration 
auf dezentral verteilten Clients, deren Anzahl leicht in die hundert oder tausend 
gehen kann. 
Niedrige Kosten bei Wechsel der Datenbank. Clients müssen nicht direkt über 
eine spezifische Datenbank API auf die Datenbank zugreifen. Verwenden sie 
für den Datenzugriff eine Database Middleware (siehe 3.3), die sie ausreichend 
von der Datenbank abkoppelt, können Datenbank-Schemata migriert, neue 
Motivation für den Einsatz von Applikations-Servern 8 
Datenbanktreiber installiert oder sogar der Datenbanktyp gewechselt werden 
ohne den Clientcode neu übersetzen oder verteilen zu müssen. 
Niedrige Geschäftslogik-Migrationskosten. Eine Änderung der Geschäftslogik 
erzwingt nicht unbedingt ein erneutes Übersetzen und anschließendes 
Verteilen der Präsentationsschicht. 
Differenzierte Sicherheitszonen für die einzelnen Schichten. In vielen Bereichen 
ist die Frage der Sicherheit sehr sensitiv. Während Daten vor unberechtigten 
Zugriffen geschützt werden müssen, darf gleichzeitig der Betrieb des Systems 
nicht behindert werden. Trennt man zum Beispiel Präsentations- und 
Geschäftslogikschicht durch eine Firewall, schützt man sowohl die 
Geschäftslogik- als auch die Datenschicht vor Angriffen, während man 
gleichzeitig weiterhin ungestört auf das System zugreifen kann. 
Unsichere Zone 
Web-Server 
Applikations-Server 
Datenbank Server 
S
chic
ht
gr
enz
e 
F
ire
wa
ll +
 S
chic
ht
gr
enz
e 
Präsentations 
Schicht 
Geschäftslogik
Schicht 
Datenschicht
Sichere Zone 
Abbildung 1.4  Sicherheitsgründe verlangen oft eine Drei-Schichten Architektur [Roma99, Fig. 1.9] 
Ressourcen können effizient verwaltet und wiederverwendet werden. Bei einer 
reinen Client/Server Architektur sinkt die Systemleistung ab einem bestimmten 
Punkt drastisch ab. Server der mittleren Schicht können dies durch Wiederver-
wendung von Ressourcen (siehe 4.8.2) vermeiden.  
Leistungseinbrüche betreffen nur eine logische bzw. physikalische Schicht. Ist 
eine Schicht überlastet funktionieren die anderen trotzdem einwandfrei. 
Motivation für den Einsatz von Applikations-Servern 9 
Fehler betreffen nur eine logische bzw. physikalische Schicht. Fällt eine Schicht 
aus, können die anderen Schichten eine entsprechende Fehlermeldung 
ausgeben. 
Reduzierung der Anzahl an Sitzungen. Bei traditionellen Client Server Systemen 
ist jeder Client mit jedem Server verbunden. In einer Drei-Schichten-
Architektur sind jedoch nur Verbindungen zwischen jedem Client und jedem 
Applikations-Server und zwischen jedem Applikations-Server und jedem 
Datenbankserver zu verwalten. Besteht ein Anwendungssystem zum Beispiel 
aus 10.000 Clients (c), 100 Datenbank-Servern (s) und 10 Applikations-
Servern (m), müssen bei einer reinen Client/Server Architektur eine Anzahl 
von c*s = 100.000*100 = 10.000.000 separaten Sitzungen verwaltet werden. 
Bei einer Drei-Schichten Architektur schrumpft diese Zahl auf m*(c+s) = 
10*(100.000+100) = 101.000. Die Anzahl der zu verwalteten Sitzungen 
reduziert sich also von c*s auf etwa c*m. 
Drei-Schichten Architektur 
Zwei-Schichten Architektur 
Applikations-
Server 
Clients 
Datenbank-
Server 
Clients 
Datenbank-
Server 
Abbildung 1.5 - Sitzungsmanagement bei einer Zwei- und Drei-Schichten Architektur [Lam98] 
Hohe Netzwerkbelastung. Da alle drei Schichten physisch voneinander getrennt 
sind, müssen sie über ein Netzwerk miteinander kommunizieren. Dies führt zu 
einem beträchtlich höheren Kommunikationsaufwand. Dem kann nur durch ein 
sauberes System-Design entgegengewirkt werden. Dies bedeutet jedoch, daß 
Motivation für den Einsatz von Applikations-Servern 10 
man sich der Schichtgrenzen bewußt ist, was zu Lasten der Ortstransparenz
1
geht. 
Einfacheres Transaktionsmanagement. Transaktionen können auf der Ebene der 
Geschäftslogik kontrolliert werden. Sie müssen nicht mehr als SQL-
Kommando kodiert werden und können somit mehrere verschiedene 
Datenquellen beinhalten.  
Besserer technischer Support. Eine einfache Standardinstallation auf dem 
Arbeitsplatz des Benutzers (z.B. Web-Browser) erlaubt gegenüber speziellen 
Clients, welche die Präsentations- und Geschäftslogik für jede einzelne 
Aufgabe enthalten (Fat-Client), einen verbesserten und zentralisierten 
technischen Support. Dies führt zu einem qualitativ höherwertigen Service für 
Kunden. 
Hohe Administrationskosten. Es müssen drei oder mehr physikalisch getrennte 
Schichten gewartet werden. Installations-, Aktualisierungs- und 
Administrationsosten der Software steigen daher signifikant an.  
Vergleicht man diese Eigenschaften mit jenen der Zwei-Schichten Architektur, kann 
man die Vorteile der N-Schichten Architektur schnell erkennen. Besonders große, 
komplexe Applikationen, die von einer Vielzahl an Benutzern verwendet werden 
und eine hohe Skalierbarkeit besitzen müssen, können von ihr im hohen Maße 
profitieren. Voraussetzung ist aber ein sauberer Design der Anwendungsarchitektur, 
um die negativen Effekte der N-Schichten Architektur zu mindern. 
1.4  Sonderfall HTML Applikation 
Datenbank-getriebene HTML Applikationen lassen sich jedoch nur schwer in eines 
dieser Schichtenmodelle einordnen. Sie sind zwar physisch auf drei Schichten 
aufgeteilt, logisch gesehen bestehen sie aber aus nur zwei Schichten, da sowohl ihre 
Präsentations- als auch ihre Geschäftslogik gekoppelt von einem zentralen Web-
Server verwaltet werden. Die dezentralen Web-Clients zeigen zwar die 
Benutzerschnittstelle in ihren Web-Browsern an, müssen jedoch die 
Präsentationslogik zuerst vom Web-Server herunterladen. Deshalb bezeichnet man 
die in Abbildung 1.6 dargestellte Architektur auch als Zweieinhalb-Schichten 
Architektur. Durch die zentrale Verwaltung der Präsentations- und Geschäftslogik 
am Web-Server fallen die meisten Probleme der Zwei-Schichten Architektur weg. 
1
 Ortstransparenz erlaubt es, auf Informationsobjekte zuzugreifen, ohne ihren tatsächlichen Ort zu 
kennen [Star97] 
Motivation für den Einsatz von Applikations-Servern 11 
Lediglich eine unabhängige Skalierung von Präsentations- und Geschäftslogik-
schicht ist nicht möglich. 
Schichtgrenze 
Präsentations- bzw.
Geschäftslogik-
schicht 
Schichtgrenze 
Präsentations
Logik 
Datenbank 
Treiber
Geschäftslogik 
Einheit 
Datenbank 
Datenschicht 
Geschäftslogik 
Einheit 
Geschäftslogik 
Einheit 
Web-Server od. 
Web-Appliaktions-
Server 
DB-Server 
Browser 
Web-Client 
Abbildung 1.6  Zweieinhalb-Schichten Architektur 
Wird der Web-Server durch einen Web-Applikations-Server ersetzt, ändert sich 
nichts am Schichtenmodell der HTML-Applikation. Es stellt sich daher die Frage, 
welche Vorteile sich mit dem Einsatz eines Web-Applikations-Servers erzielen 
lassen. Wie die von Applikations-Servern wahrgenommenen unter 2.2 beschriebenen 
Aufgaben zeigen, besitzen Web-Applikations-Server jedoch eine Vielzahl anderer 
Eigenschaften, welche sie besonders für Datenbank-getriebene HTML 
Applikationen nützlich erscheinen lassen. 
1.5 Weitere 
Vorgehensweise 
Der weitere Verlauf dieser Diplomarbeit läßt sich grob in zwei Abschnitte einteilen. 
Der erste Abschnitt erläutert die Charakteristika von Applikations-Servern, erklärt 
ihre technologischen Grundlagen und stellt einen Kriterienkatalog zu ihrer 
Bewertung auf. Der zweite Abschnitt wendet den Kriterienkatalog auf konkrete 
Applikations-Server Produkte an und überprüft ihre praktische Anwendbarkeit 
anhand einer Beispielapplikation. 
Motivation für den Einsatz von Applikations-Servern 12 
Der erste Abschnitt besteht konkret aus folgenden Kapiteln: 
Im nächsten Kapitel werden sowohl die expliziten Aufgaben eines Applikations-
Servers, die direkt durch seine Dienste wahrgenommen werden, als auch die 
impliziten Aufgaben, die durch seinen Einsatz erfüllt werden und als Nebeneffekte 
betrachtet werden können, erläutert. Danach werden die verschiedenen Arten von 
Applikations-Servern kategorisiert und ihre Hersteller vorgestellt und klassifiziert. 
Im 3. Kapitel wird die Brückenfunktion von Applikations-Servern innerhalb der 
Drei-Schichten Architektur hervorgehoben. Um die Funktion ausüben zu können, 
integrieren die meisten Applikations-Server Dienste, die unter dem Begriff 
,,Middleware" zusammengefaßt werden. Ihre zentrale Bedeutung wird anhand der 
sechs Kategorien ,,RPC based Middleware, Message Oriented Middleware, Database 
Middleware, Distributed Transaction Coordinator, Object Request Broker und 
Component Oriented Middleware" erklärt. Darin enthalten ist ein Vergleich der zur 
Zeit populärsten serverseitigen Komponentenmodelle COM+ und EJB, die die 
zentrale Architektur der meisten Applikations-Server festlegen.  
In Kapitel 4 wird schließlich ein Kriterienkatalog aufgestellt, anhand dem sich 
Applikations-Server beurteilen lassen. Hierfür wird auf die Erkenntnisse der 
vorangegangen Kapitel zurückgegriffen. Noch nicht behandelte Technologien 
werden in diesem Kapitel erklärt.  
Der zweite Abschnitt besteht aus folgenden Kapiteln: 
Im 5. Kapitel wird der zuvor aufgestellte Kriterienkatalog zur Beurteilung der 
Applikations-Server Allaire Cold Fusion 4.5.1 Enterprise, Inprise Application Server 
4.0 und Microsoft Windows 2000 Advanced Server angewandt. Die Applikations-
Server von Allaire und Inprise werden hierfür einer sehr detaillierten Analyse und 
Bewertung unterzogen. Microsoft's Windows 2000 Advanced Server wird wegen 
seiner erwarteten großen Verbreitung zwecks besserem Vergleich in die 
Überblicksbewertung mit aufgenommen.  
Abschließend wird, um die praktische Anwendbarkeit der Applikations-Server von 
Allaire und Inprise zu überprüfen, mit ihnen eine Beispielapplikation erstellt. Die 
Beispielapplikation ist als Mini-Tourismus-Informationssystem für das Web 
konzipiert, das die Abfrage und die Wartung von Hoteldaten ermöglicht. Aus der 
Beispielapplikation läßt sich zudem der Aufwand, der zur Erstellung eines 
Anwendungssystems notwendig ist, ablesen. 
Einführung in Applikations-Server 13 
2 Einführung in 
Applikations-Server 
2.1 Definition 
Eine allgemein anerkannte, klar abgegrenzte Definition für Applikations-Server gibt 
es nicht. Es wird jedoch allgemein anerkannt, daß Applikations-Server eine 
optimierte Laufzeitumgebung für serverseitige Anwendungskomponenten zur 
Verfügung stellen. Außerdem erlauben sie die Entwicklung, das Testen und die 
Verwaltung von verteilten Anwendungen.  
2.2 Aufgaben 
Bei den Aufgaben die Applikations-Server erfüllen sollen, kann man zwischen 
expliziten und impliziten Aufgaben unterscheiden. Explizite Aufgaben werden im 
Unterschied zu impliziten Aufgaben vom Applikations-Server selbst durchgeführt. 
Implizite Aufgaben werden hingegen vom Einsatz eines Applikations-Server 
erwartet oder als Nebeneffekte betrachtet.  
2.2.1 Explizite 
Aufgaben 
Da das Gebiet der Applikations-Server noch relativ jung und noch nicht ausgereift 
ist, herrscht noch keine Einigkeit darüber, welche Eigenschaften und Aufgaben sie 
im einzelnen erfüllen und übernehmen sollen. Es gibt einfach zu viele 
Möglichkeiten, um die gleiche Problemstellung zu lösen. 
Einführung in Applikations-Server 14 
Die Aufgaben von Applikations-Servern lassen sich jedoch grundsätzlich in die in 
Abbildung 2.1 dargestellten Bereiche unterteilen: 
Applikations-Server 
Präsentation
Ausführen 
von 
Geschäfts- 
logik 
Transaktions
Management 
Betrieb 
Integration externer Systeme 
Installation  Administration 
Werkzeug- 
unterstützung 
Abbildung 2.1 Aufgaben von Applikations-Servern 
Horizontal dargestellten Aufgaben sind grundlegender Natur. Sie durchdringen alle 
Arten von Anwendungen. Im Gegensatz dazu repräsentieren vertikal dargestellte 
Aufgaben ein bestimmtes Aufgabengebiet. 
2.2.1.1 Horizontale 
Aufgabengebiete 
Integration externer Systeme 
Applikations-Server werden oft in bereits bestehende Infrastrukturen eingegliedert 
und müssen daher mit bereits bestehenden externen Systemen zusammenarbeiten 
können. 
Integration von Datenbeständen 
Einer der ersten Gründe für den Einsatz von Applikations-Servern war den Zugriff 
auf möglichst viele Datenquellen an einem zentralen Punkt zu integrieren und zu 
verwalten [King99]. Im Zeitalter von E-Commerce ist unter anderem der Zugriff auf 
Datenbestände in Großrechnern, SAP Systemen etc. (Legacy-Daten) - etwa zur 
Auftragsverwaltung - besonders wünschenswert. Bei komplexen Anwendungen, die 
einen Zugriff auf viele unterschiedliche Datenquellen erfordern, erleichtert ein 
zentraler, vereinfachter Datenzugriff die Integration dieser Datenbestände enorm.  
Integration der Geschäftslogik anderer Server 
Die Integration der Geschäftslogik anderer Server ermöglicht die 
Einführung in Applikations-Server 15 
Wiederverwendung bereits existierender Programme. Doppelentwicklungen können 
somit vermieden werden. 
Integration externer Web-Server 
Durch die Integration externer Web-Server können Applikations-Servern ihre 
Anwendungen in die bereits bestehende Web-Infrastruktur integrieren. 
Betrieb 
Applikations-Server müssen einen reibungslosen Betrieb ihrer Anwendung 
gewährleisten. Um dies zu erreichen, muß ein Applikations-Server eine ausreichende 
Skalierbarkeit und Verläßlichkeit besitzen. 
Skalierbarkeit 
Informationssysteme werden in der Regel von mehreren Benutzern gleichzeitig 
benutzt. Steigt deren Anzahl über ein vorgesehenes Maß hinaus an, soll der 
Applikations-Server dieser höheren Last ohne Redesign der Software standhalten 
können. Lediglich die Vergrößerung des Server-Clusters zwecks Erhöhung der 
Rechenleistung ist erlaubt (siehe 4.8.1). Das ist auch preislich wesentlich günstiger, 
vergleicht man die Kosten der zusätzlich benötigten Hardware mit der Arbeitszeit, 
die Softwareentwickler für ein Redesign benötigen würden. 
Besonders bei frei zugänglichen Web-Applikationen kann sich die Last drastisch 
erhöhen, da man die Anzahl der Benutzer nicht genau vorhersehen kann. Daher ist 
die Wiederverwendung von Serverressourcen bei diesen Anwendungen besonders 
wichtig.  
Unglücklicherweise ist die Skalierbarkeit eines Applikations-Server eines der am 
schwersten meßbaren Eigenschaften. Einerseits ist es sehr teuer, die zur Messung 
notwendigen Tests durchzuführen, andererseits sind die Meßergebnisse schwer zu 
vergleichen, da die einzelnen Applikations-Server aufgrund ihrer jeweils 
einzigartigen Architektur in den einzelnen Anwendungsgebieten unterschiedlich gut 
skalieren [King99].  
Verläßlichkeit 
Fällt ein Server aus (z.B. aufgrund eines Absturzes), bemerkt das System dies von 
selbst und ergreift sofort Gegenmaßnahmen, so daß der Benutzer von dieser 
Fehlfunktion nichts merkt. [Wrig99] 
Installation  Administration 
Verteilte Applikationen, insbesondere große Web-Anwendungen, sind in der Regel 
sehr komplex. Es behauptet zwar jeder Hersteller von Applikations-Servern, sein 
Einführung in Applikations-Server 16 
Server sei einfach zu bedienen, doch dies kommt ganz auf den jeweiligen 
Standpunkt an. Für die einen heißt einfache Bedienung einfache Entwicklung, für die 
anderen einfache Wartung. Im Endeffekt ist entscheidend, inwieweit Entwickler und 
Systemadministratoren Hilfe benötigen, um mit der komplexen mehrschichtigen 
Architektur klarzukommen.  
Installation der Geschäftslogikeinheiten 
Jeder Applikations-Server muß die Installation von Applikationslogik (das Laden 
des Programmcodes in den Server) unterstützen.  
Einfache Administration der mehrschichtigen Architektur   
Um große Systeme vernünftig konfigurieren und warten zu können, muß der 
Systemadministrator auch die Architektur des Applikations-Servers verstehen. Das 
System darf keine Black-Box sein, sondern muß seine Konfiguration und 
Überwachung ermöglichen. [King99] 
Sicherheitsmanagement 
Sicherheit besteht immer aus folgenden 2 Teilen:  
·  Übertragungssicherheit der Daten 
·  Sicherheit der Serverressourcen 
Die Übertragungssicherheit der Daten wird durch Verschlüsselungsverfahren wie 
SSL gewährleistet. Sicherheit von Serverressourcen wird durch Authentifizierung 
von Clients erreicht. Beide Mechanismen werden zentral vom Server zur Verfügung 
gestellt und müssen nicht extra implementiert werden. 
2.2.1.2 Vertikale 
Aufgabengebiete 
Präsentation 
Anbieten von Web-Präsentationslogik 
Die Präsentationslogik wird bei Web-Anwendungen nicht dezentral an die 
Endbenutzer verteilt, sondern zentral am Server verwaltet. Applikations-Server 
können deshalb nicht nur als Server für Geschäftslogik, sondern auch als Server für 
Web-Präsentationslogik verwendet werden.  
Dynamisches erzeugen von HTML Code 
Applikations-Server für Web-Anwendungen müssen HTML Code dynamisch selbst 
erzeugen (z.B. aus einer Datenbank auslesen).  
Einführung in Applikations-Server 17 
Status- und Sitzungs-Management   
Eines der größten Probleme von Web-Applikationen ist die Zustandslosigkeit des 
im Web zur Kommunikation zwischen Client und Server eingesetzten HyperText 
Transfer Protocols (HTTP). Da eine Kommunikationsverbindung zwischen Web-
Browser und Web-Server nur für die Dauer einer HTTP-Anfragebearbeitung besteht, 
muß bei jeder weiteren Anfrage erneut eine Verbindung zum Web-Server erstellt 
werden. Zustände von Sitzungen, die sich über mehrere HTTP-Anfragen erstrecken, 
müssen daher programmatisch mittels Cookies, versteckten Formularfeldern oder in 
der URL gespeichert werden [Loes98, S. 202ff]. Applikations-Server können 
Entwickler von dieser Aufgabe entlasten, indem sie diese Aufgabe automatisiert 
durchführen. 
Ausführen von Geschäftslogik 
Das Ausführen von Geschäftslogik im Auftrag von Clients ist die zentrale Aufgabe 
eines Applikations-Servers. Geschäftslogikeinheiten müssen daher im laufenden 
Betrieb möglichst vielen Clients zur Verfügung gestellt werden. 
Bereitstellen von Geschäftslogikeinheiten im laufenden Betrieb 
Geschäftslogik kann in wiederverwendbare Module gespeichert werden, so daß 
Programmteile, die immer wieder benötigt werden (z.B. Überprüfung einer 
Kreditkartennummer), nicht jedesmal neu geschrieben werden müssen. Dies führt 
neben einer höheren Produktivität und Verläßlichkeit auch zur Unterstützung eines 
Prototyping-orientierten Software-Entwicklungsprozeß, da Prototypen aus diesen 
Moduln schnell und billig erzeugt werden können. 
Zugriff auf Geschäftslogikeinheiten   
Applikations-Server müssen Clients Zugriff auf ihre Geschäftslogikeinheiten 
ermöglichen. Jedoch können nicht alle Clients die Geschäftslogikeinheiten eines 
Applikations-Servers direkt aufrufen, da sie ein anderes Kommunikationsprotokoll 
als der Applikations-Server verwenden. Speziell für Web-Clients wird eine spezielle 
Server-Komponente (Web-Engine) benötigt, die HTTP-Anfragen decodiert, die 
gewünschte Komponente ausführt und den erzeugten HTML-Code dem Client via 
HTTP zurückschickt (z.B. Java-Servlets). 
Transaktionsmanagement 
Da der Applikations-Server sämtliche Zugriffe auf externe Datenquellen durchführt, 
kann die Transaktionsverwaltung von den einzelnen Datenquellen zum 
Applikations-Server verlagert werden. Dies hat den Vorteil, daß mehrere 
unterschiedliche Datenquellen an einer einzigen Transaktion teilnehmen können.  
Einführung in Applikations-Server 18 
Zu diesem Zweck können Applikations-Server mit einem eigenen 
Transaktionsmanager ausgestattet sein oder externe Transaktionsmanager 
integrieren. Gerade bei E-Commerce Applikationen, die in der Regel viele 
geschäftliche Transaktionen beinhalten, ist die Behandlung von Transaktionen und 
die Erhaltung der Datenintegrität eine der wichtigsten Aufgaben. 
2.2.1.3 Werkzeugunterstützung 
Applikations-Server müssen Werkzeuge zu ihrer Administration sowie zur 
Erstellung von Anwendungslogik besitzen. Ist der Applikations-Server nicht bereits 
mit solchen Werkzeugen ausgestattet, muß er eine offene Schnittstelle zu ihrer 
Integration anbieten. 
2.2.1.4  Unterstützung von Industriestandards 
Die Industriestandards des Internets entwickeln sich rapide. Deshalb ist es wichtig, 
daß Applikations-Server die heute gängigen Standards unterstützen (z.B. HTTP, 
IIOP, CORBA, EJB, MTS, COM/COM+, JDBC, ODBC, SMTP, LDAP, etc.  
werden im Laufe der Arbeit noch erklärt) und eine saubere Architektur besitzen, um 
zukünftige Standards einfach verwenden zu können. Dies betrifft sowohl die 
Umsetzung der horizontalen als auch die der vertikalen Aufgaben. 
2.2.1.5 Aufgabenerfüllung 
Bis auf die Einfachheit der Administration und Wartung werden so gut wie alle 
Aufgaben von allen Produkten, die sich als Applikations-Server bezeichnen, 
umgesetzt. Der Unterschied liegt in der Art und im Grad der Umsetzung. Hier 
unterscheiden sich die einzelnen Produkte teilweise beträchtlich.  
2.2.2  Implizite Aufgaben und Nebeneffekte 
2.2.2.1 Rollenteilung 
Applikations-Server unterstützen die Rollenteilung beim Erstellen eines 
Anwendungssystems. 
Grundsätzlich kann man zwischen 2 verschiedene Rollen unterscheiden: 
·  Anwendungsentwickler 
·  Systemadministrator 
Der Anwendungsentwickler übernimmt das Design und die Implementierung der 
Applikation. Der Systemadministrator ist sowohl für die Konfiguration, 
Einführung in Applikations-Server 19 
Überwachung und Wartung des Systems als auch für die Fragen des 
Kapazitätsmanagement zuständig. Zusätzlich könnte man noch die Rolle eines 
Testers einführen, jedoch kann diese Aufgabe auch vom Administrator oder von 
anderen Entwicklern übernommen werden. 
Verwendet man eine Component Oriented Middleware (siehe 3.6), kann man die 
Aufgaben des Anwendungsentwicklers noch in folgende Rollen aufspalten: 
·  Komponenten-Entwickler 
·  Systemarchitekt 
·  Komponenten-Installateur 
Der Komponenten-Entwickler ist für das Design und die Implementierung der 
einzelnen Komponenten zuständig.  
Der Systemarchitekt entwickelt die Architektur der gesamten Anwendung durch 
Spezifizieren der einzelnen Komponenten. Er versteht wie die einzelnen 
Komponenten zusammenpassen und ist für den Zusammenbau der Komponenten zu 
einer vollständigen Applikation zuständig. 
Der Komponenten-Installateur installiert die vorgefertigten Komponenten in einen 
oder mehreren Applikations-Servern, und fügt sie so in das Anwendungssystem ein. 
2.2.2.2  Brückenfunktion von Applikations-Servern 
Applikations-Server besitzen einen weiteren maßgeblichen positiven Nebeneffekt. 
Sie bringen jene zwei Parteien der Web-Entwicklung zusammen, die bis jetzt 
getrennt waren. Dies sind einerseits Web-Entwickler und andererseits IT-Entwickler 
(Entwickler in traditionellen EDV-Abteilungen) [Benf99]. 
Web-Entwickler arbeiten mit CGIs, Scripts, Servlets etc. Da sie auf keine 
bestimmten Entwicklungswerkzeuge angewiesen sind, können sie zwischen den am 
Markt angebotenen Produkten frei wählen. Solange sie sich an die Standards des 
Internets halten arbeitet alles zusammen. Web-Entwickler verwenden daher meist 
mehrere Werkzeuge zum Erstellen einer Anwendung. Sie betrachten oft nur kleinere 
Teile an Code, die wiederum andere Teile verwenden, um so eine ganze Anwendung 
zu erstellen. 
Für IT Entwickler und traditionelle Software Ingenieure ist dies allerdings ein 
ziemlich sonderbarer Weg Systeme zu erstellen, der zudem für komplexe 
Anwendungen kaum mehr geeignet ist. Sie verwenden zur Entwicklung von 
Einführung in Applikations-Server 20 
Client/Server Systemen in der Regel hochwertige Entwicklungswerkzeuge mit 
Sprachen der 4. Generation (4 GL). Sie sind an einfachen Datenzugriff, garantierten 
Transaktionen und Sicherheit gewöhnt. Client/Server hat sich in der Vergangenheit 
als Standardarchitektur unternehmensinterner Informationssysteme weitgehend 
durchgesetzt. Werkzeuge wie Visual Basic, Delphi oder Powerbuilder dominieren 
den Markt. Zum Erstellen von vollständigen Anwendungen wird eines dieser 
Werkzeuge verwendet. 
Applikations-Server sind nun fähig, eine Brücke zwischen diesen beiden Welten zu 
schlagen. Web-Entwickler wünschen sich skalierbare transaktionsorientierte 
Systeme mit einem einfachen Zugriff auf möglichst viele Datenquellen. IT-
Entwickler möchten nicht fünf oder sechs verschiedene Werkzeuge benutzen, nur 
um eine Web-Anwendung erstellen zu können. Zusätzlich wäre eine 
Wiederverwendung der Geschäftslogik von Altanwendungen wünschenswert 
[Benf99]. Nur Applikations-Server sind in der Lage, diese Anforderungen auf breiter 
Basis zu erfüllen. 
2.2.2.3  Produktivitätssteigerung der Softwareentwicklung 
Die Komplexität vieler Informationssysteme ist bereits so groß, daß Fragen der 
Bereiche Organisation, Koordination und Sicherheit wichtiger werden als die 
eigentliche Entwicklungsarbeit. Umfassende Projekte müssen sich zudem unter 
zeitkritischen Gesichtspunkten durch Skalierbarkeit, Zuverlässigkeit, Stabilität und 
Sicherheit auszeichnen - gerade im Zeitalter von Electronic Commerce. 
Applikations-Server können zur Lösung dieser Probleme mit einer 
Produktivitätsverbesserung beitragen, indem sie die Produktivität der 
Softwareentwicklung erhöhen.  
Verwendung der Server-Dienste 
Informationssysteme müssen Eigenschaften besitzen, die über ihre eigentlichen 
Aufgaben  die zu lösenden Geschäftsprobleme - weit hinausgehen. Dies sind z. B.: 
·  effiziente Verwaltung der einzelnen Sitzungen 
·  Verhindern von Streitigkeiten um Serverressourcen 
·  effizientes Verwalten von Serverressourcen (Lastverteilung) 
·  effizienter Datenzugriff 
·  Verwaltung von Transaktionen 
·  Stabilität 
·  Wiederanlauf und Fehlerbehandlung bei Absturz eines Servers 
·  Performanz 
Einführung in Applikations-Server 21 
·  Sicherheit 
·  ... 
Viele Unternehmen haben sich aufgrund der Ermangelung von Alternativen hierfür 
bis jetzt selbstgestrickte Lösungen gebastelt. Die Entwicklung dieser Lösungen raubt 
den Entwicklern jedoch viel Zeit und Energie, die ihnen dann bei der Lösung von 
Geschäftsproblemen fehlt. Da sie meist über kein Expertenwissen in diesen Gebiete 
verfügen, sind die fertigen Informationssysteme meist komplex, ineffizient und 
schwer zu warten.  
Applikations-Server befreien den Anwendungsentwickler von diesen Problemen, da 
sie bereits Dienste zu dessen Lösung besitzen. Unternehmen können diese Dienste 
daher zukaufen, anstatt sie selbst zu entwickeln.  
Wiederverwendung 
Web-basierte Anwendungen stellen Dienste zur Verfügung, die nicht nur über das 
Internet, sondern auch über das Intranet oder Extranet zugänglich sein sollen. Die 
Anforderungen der einzelnen Benutzergruppen sind aber sehr unterschiedlich. 
Internetanwender sind meist Endkunden, die nur über eine niedrige Bandbreite 
verfügen. Zugangssoftware ist praktisch immer ein Web-Browser. Intranetanwender 
sind in der Regel Angestellte des eigenen Unternehmens, die aufgrund der direkten 
Verbindung über eine relativ hohe Bandbreite verfügen. Informationssysteme des 
Intranets verwenden traditionell die Client/Server Architektur. Extranetanwender 
sind Vertragspartner des Unternehmens, die über einen vertraglich genau definierten 
Zugang zu bestimmten Diensten verfügen. Extranetanwendungen werden auch als 
Business-to-Business E-Commerce Anwendungen bezeichnet. Ihr Zugriff erfolgt oft 
automatisiert.   
Ohne Applikations-Server müssen für alle drei Benutzergruppen eigenständige 
Anwendungssysteme geschaffen werden. Gleichartige Geschäftslogikeinheiten 
müssen daher mehrmals entwickelt werden, was sowohl Entwicklungszeit 
verschwendet als auch die Wartbarkeit des gesamten Systems sehr verschlechtert. 
Applikations-Server können hingegen alle drei Anwendungssysteme in ein einziges 
Anwendungssystem fusionieren, indem sie verschiede Schnittstellen zu ihren Server-
Diensten anbieten. Somit müssen nicht verschieden Anwendungssysteme entworfen 
werden, die alle die gleiche Geschäftslogik implementieren.  
Werkzeuge 
Ausgereifte Entwicklungswerkzeuge, können ebenfalls zur Produktivitätssteigerung 
beitragen. Daher sollen Applikations-Server zusätzlich zu ausgewogenen 
Managementwerkzeugen Entwicklungswerkzeuge integrieren, die die Entwicklung 
Einführung in Applikations-Server 22 
von fortschrittlichen Informationssystemen bestmöglichst unterstützen. Je mehr 
Programmierarbeit zum Erstellen der Applikation benötigt wird, desto wichtiger 
wird diese Aufgabe. [King99] 
2.2.2.4  Unabhängigkeit gegenüber den Herstellern  
Je einfacher eine Applikation von einem Applikations-Server zu einem anderen 
portiert werden kann, desto geringer ist die Gefahr einer Abhängigkeit vom 
Hersteller eines bestimmten Applikations-Servers (engl. Vendor Lock-In). Dies 
hängt auch eng mit der Unterstützung von Industriestandards zusammen. [King99] 
2.3  Arten von Applikations-Servern 
Applikations-Server lassen sich aufgrund folgender dreier Merkmale in mehrere 
unterschiedliche Kategorien einordnen: 
Aufwand 
E
insatz
ge
bie
t 
Augabenbereich 
Abbildung 2.2  Merkmale von Applikations-Servern 
2.3.1  Einsatzgebiete von Applikations-Servern 
Applikations-Server können aufgrund ihres Einsatzgebietes grob in folgende zwei 
Gruppen unterteilen werden [Reib99]: 
·  Web-Applikations-Server  
·  Legacy-Applikations-Server  
Web-Applikations-Server sind Systeme, die auf die Entwicklung von Web-basierten 
Anwendungen spezialisiert sind. Sie integrieren entweder direkt einen Web-Server 
oder werden neben einem herkömmlichen Web Server betrieben (siehe 4.6.1). Sie 
ermöglichen im Vergleich zur reinen Web-Server Applikationen eine relativ 
Einführung in Applikations-Server 23 
einfache Entwicklung von Internetanwendungen, können jedoch oft nur sehr schwer 
mit bereits existierenden Informationssystemen zusammenarbeiten. 
Legacy-Applikations-Server stellen für geschäftskritische Intranetanwendungen 
Infrastruktur zum Transaktions- und Sicherheitsmanagement, zum automatischen 
Wiederanlauf im Fehlerfall und zur Integration von Daten bereits existierender 
Informationssysteme wie TP-Monitore (siehe 3.4.2) zur Verfügung. Jedoch ist ihre 
Unterstützung für Web-basierte Systeme sehr begrenzt. 
Die Verschmelzung aus Web- und Legacy-Applikations-Server ergibt eine neue 
Kategorie, die Enterprise-Applikations-Server genannt wird. Diese auch als 
vollwertig bezeichneten Applikations-Server, können bestehende 
Informationssysteme sehr gut integrieren und gleichzeitig alle Vorteile einer 
modernen Web-orientierten mehrschichtigen Architektur nutzen. 
Wie bereits erwähnt, gibt es aber keine klar abgegrenzte Definition von 
Applikations-Servern. Bei manchen Produkten ist der Server ein einfacher Zusatz 
zur ausgereiften Entwicklungsumgebung. Diese Produkte lassen sich natürlich nur 
sehr schwer mit Applikations-Servern der Enterprise Klasse vergleichen. 
Allen gemeinsam ist jedoch, daß der Applikations-Server selbst ein separates klar 
identifizierbares Modul innerhalb des gesamten Pakets sein soll. 
2.3.2  Aufgabenbereiche von Applikations-Servern 
Selbst Applikations-Server des gleichen Einsatzgebietes können als Server für 
unterschiedliche Aufgabenbereiche dienen. Wie in den vertikalen Säulen der 
Abbildung 2.1 angedeutet, gibt es folgende drei Möglichkeiten: 
·  Präsentations-Server 
·  Geschäftslogik-Server 
·  Transaktionsmanager 
Präsentations-Server stellen ihren Clients Präsentationslogik in Form von HTML, 
Java-Script und Java-Applets zur Verfügung. Teile dieser Logik können vom 
Präsentations-Server auch dynamisch erzeugt werden. Ihr Anwendungsgebiet ist zur 
Zeit ausschließlich das World Wide Web, da die dort als Clients verwendeten Web-
Browser keine Präsentationslogik besitzen. Diese auch als Thin-Clients bezeichneten 
Programme sind somit sehr flexibel und können für unterschiedliche Anwendungen 
eingesetzt werden. 
Einführung in Applikations-Server 24 
Geschäftslogik-Server  stellen ihren Clients ausschließlich Geschäftslogik zur 
Verfügung. Die Kommunikation erfolgt entweder synchron mittels Remote 
Procedure Calls (siehe 3.1) oder asynchron mittels einer Message Queue. (siehe 
3.2.2). Die Geschäftslogik selbst wird meist als Objekt bzw. Komponente verpackt. 
Transaktionsmanager können Transaktionen über mehrere Datenquellen 
durchführen und koordinieren (siehe 3.4).  
Diese Unterteilung ist jedoch nicht exklusiv. Applikations-Server können alle drei 
Server integrieren. Vermischen Applikations-Server Präsentationslogik mit 
Geschäftslogik, so werden sie zu den Präsentations-Servern gezählt.  
Web-Applikations-Server haben ihren Ursprung in der Präsentation. Je größer und 
komplexer Web-Anwendungen werden, desto wichtiger werden jedoch auch andere 
Bereiche  gerade im Zeitalter von Electronic Commerce.  
2.3.3  Aufwand zur Beherrschung von Applikations-Servern 
Der Aufwand der zur Beherrschung von Applikations-Server nötig ist, kann sich von 
Server zu Server sehr stark unterscheiden.  
Applikations-Server, die nur einen vergleichsweise geringen Aufwand zur 
Anwendungsentwicklung und Administration benötigen, sind bereits von einer 
Einzelperson oder einem kleinen Team beherrschbar. Sie eignen sich hervorragend 
für eine schnelle Anwendungsentwicklung (engl.: Rapid Application Development - 
RAD) und sind meist auch relativ günstig in der Anschaffung mit Preisen um die 
5.000 US$ pro Serverlizenz. Beispiele hierfür sind Allaire's Cold Fusion oder 
EveryWare Development's Tango. 
Applikations-Server, die für den sinnvollen Einsatz bereits mehrere Personen 
benötigen (z.B. mind. 2-3 Entwickler, 1 Systemdesigner, 1 Administrator und 
Installateur) gehören zur hohen Aufwandsklasse. Sie sind wesentlich teurer in der 
Anschaffung mit Preisen um bis zu 35.000 US$ pro CPU. Die Abrechnung auf CPU 
Basis macht die Anschaffung noch teurer, da solche Systeme zur optimalen 
Ressourcenauslastung meist auf Mehrprozessormaschinen laufen. Sie eignen sich am 
besten für High-End Applikationen, die einen Systemausfall unbedingt vermeiden 
und hoher Last standhalten müssen. Beispiele hierfür sind BEA Weblogic, Inprise 
Application Server, IBM WebSphere, Oracle Application Server, SUN 
Netdynamics, etc. 
Einführung in Applikations-Server 25 
2.4  Hersteller von Applikations-Server 
2.4.1  Klassifizierung der Hersteller 
Network Computing [Netw99] listet im aktuellen Buyers Guide für Web-
MiddleWare (Stand: 17.11.1999) 63 Produkte von 51 Herstellern auf. Da dieser 
Bereich als eine der zukünftigen ,,Cash-Cows" angesehen wird, drängten und 
drängen immer mehr Hersteller  neue und etablierte  auf den Markt. Durch den 
Eintritt der großen Infrastrukturhersteller wie IBM, Sun und Microsoft ist aber 
bereits eine Konsolidierung des Marktes im Gange [Karp98]. Bis jetzt waren so gut 
wie alle Firmenübernahmen friedlicher Natur und die Produkte der übernommen 
Hersteller werden weiter unterstützt bzw. weiterentwickelt [Wrig99-2]. Eine 
Garantie, daß das so bleibt, gibt es aber nicht. Denn laut Forrester Resarch Inc. wird 
die Zahl der am Markt vertretenen Hersteller stark schrumpfen. Forrester Resarch 
hat in einer Analyse des Appliktions-Server Marktes eine Konsolidierung des 
Marktes auf fünf ,,Key-Player" und ihre strategischen Partner vorhergesagt. Laut Ted 
Schadler, Co-Autor dieser Studie, werden dies Microsoft, IBM, Oracle, Sun und 
Netscape sein [Grus98]. Mittlerweile sind jedoch auch SUN und Netscape eine 
Partnerschaft eingegangen, um ihre Applikations-Server in einem Produkt zu 
verschmelzen [Fitz99]. 
Im Grunde kann man zwischen folgenden drei Herstellern unterscheiden [Desa99]: 
·  Unabhängige Hersteller 
·  Große etablierte Software und Infrastruktur Hersteller 
·  Hersteller von klassischen, netzwerkfähigen Softwareinfrastrukturen 
Die unabhängigen Hersteller waren die ersten in diesem neuen und von ihnen 
definierten Markt. Seit ca. 5 Jahren bieten Firmen wie Allaire und Bluestone 
Software Produkte an, die ein schnelles Entwickeln Web-basierter Anwendungen 
ermöglichen. Diese Produkte sind von Anfang bis Ende für das Web konzipiert und 
haben sich zu vollwertigen, ausgereiften Web-Applikations-Servern entwickelt. In 
den letzten Jahren sind Hersteller wie Silverstream, Pervasive oder Vision Software 
hinzugekommen. All diese Firmen sind keine kleinen in Garagen gegründeten 
Newcomer, sondern Firmen mit einem starken Management und einem guten 
Fundament. 
Vor ca. 2 Jahren stiegen die großen etablierten Infrastruktur und Software Hersteller 
wie IBM, Sun, Oracle und Microsoft in den Markt ein. Die meisten mit 
Einführung in Applikations-Server 26 
Eigenentwicklungen, nur Sun kaufte NetDynamics und ging mittlerweile auch mit 
Netscape eine mehrjährige Partnerschaft ein. Microsoft wiederum besitzt mit 
Windows 2000 Advanced Server ein Produkt, das zwar nicht ausschließlich als 
Applikations-Server vermarktet wird, jedoch alle Eigenschaften eines Applikations-
Servers besitzt. 
Diese großen Anbieter betrachten Applikations-Server nicht bloß als ein Produkt, 
sondern als integraler Bestandteil ihrer Produktlinie. Applikations-Server dieser 
Kategorie lassen sich daher oft nahtlos in die Infrastruktur ihrer Hersteller 
integrieren. Deswegen macht ihr Einsatz vor allem Sinn, wenn man bereits Produkte 
dieses Herstellers in Verwendung hat.  
Zuletzt stieg noch eine dritte Gruppe in den Markt ein: Hersteller von klassischen 
netzwerkfähigen Softwareinfrastrukturen (vor allem von ORB- und TPM-Systemen - 
siehe 3.5.1 und 3.4.2). Sie komplementieren mit ihrem Markteinstieg lediglich ihre 
Produktpalette, da sie bereites Produkte anbieten, die für verteilte, komplexe, hoch 
skalierbare, transaktionale Systeme konstruiert sind. Sie zeichnen sich durch 
Stabilität und Verfügbarkeit aus. Dies ist besonders wichtig, wenn ein Ausfall 
sowohl einen monetären Verlust als auch einen Kundenverlust bedeutet. Beispiele 
dieser Gruppe sind IBM, BEA Systems und Sybase. 
2.4.2  Stärken und Schwächen der einzelnen Herstellerklassen  
Laut [Desa99] besitzen die einzelnen Herstellerklassen folgende Vor- und Nachteile: 
Die unabhängigen Hersteller bieten in erster Linie vielversprechende, offene 
Technologien mit einen Fokus auf verschiedene vertikale Märkte an. Die 
Langzeitstabilität einzelner Firmen ist jedoch sicher mehr als fraglich. 
Die großen Infrastruktur Hersteller sind vor allem dann eine attraktive Alternative, 
wenn man sich bereits auf einen dieser Hersteller standardisiert hat oder dessen 
Technologie einsetzt. Jedoch benutzen diese Firmen ihre Applikations-Server, um 
ihre gesamte Produktpalette zu unterstützen. Der Nachteil von Applikations-Server 
dieser Gruppe ist, daß man sich sehr an den Hersteller bindet. Die Gefahr eines 
Vendor Lock-In ist hier am größten. 
Hersteller von klassischen netzwerkfähigen Softwareinfrastrukturen haben im 
Bereich der verteilten Systeme ihre Vorteile, da genau hier ihre Kernkompetenzen 
liegen. Sie ermöglichen zudem oft eine einfache Integration von Altanwendungen.  
Details
- Seiten
- Erscheinungsform
- Originalausgabe
- Erscheinungsjahr
- 2000
- ISBN (eBook)
- 9783832451721
- ISBN (Paperback)
- 9783838651729
- DOI
- 10.3239/9783832451721
- Dateigröße
- 1.2 MB
- Sprache
- Deutsch
- Institution / Hochschule
- Johannes Kepler Universität Linz – Wirtschaftsinformatik
- Erscheinungsdatum
- 2002 (März)
- Note
- 1,0
- Schlagworte
- com+ kriterienkatalog applikationsserver middleware
- Produktsicherheit
- Diplom.de
 
					