Analyse und Vergleich von Applikations-Servern und ihren zugrundeliegenden Technologien
- Art: Diplomarbeit
- Autor: Klaus Fellner
- Abgabedatum: Mai 2000
- Umfang: 181 Seiten
- Dateigröße: 1,1 MB
- Note: 1,0
- Institution / Hochschule: Johannes Kepler Universität Linz Österreich
- ISBN (eBook): 978-3-8324-5172-1
-
ISBN (Paperback) :
978-3-8324-5172-1 P - ISBN (CD) :978-3-8324-5172-1 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Fellner, Klaus Mai 2000: Analyse und Vergleich von Applikations-Servern und ihren zugrundeliegenden Technologien, Hamburg: Diplomica Verlag
- Schlagworte: EJB, COM+, Kriterienkatalog, Applikationsserver, Middleware
In den Warenkorb
48,00 €
Diplomarbeit von Klaus Fellner
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:
| 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.2 | Implizite Aufgaben und Nebeneffekte | 18 |
| 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 |
| 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 Coordinator | 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.2 | Java Remote Method Invocation | 44 |
| 3.5.3 | Distributed Component Object Model | 47 |
| 3.5.4 | Bewertung der ORB-Modelle | 49 |
| 3.6 | Component Oriented Middleware | 50 |
| 3.6.1 | Komponenten | 50 |
| 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 | |
| 3.7.2 | Component Object Model+ (COM+) | 63 |
| 3.7.3 | Corba Component Model (CCM) | 66 |
| 3.7.4 | Vergleich und Bewertung der serverseitigen Komponentenmodelle | 66 |
| 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.2 | Arbeitsplatzapplikationen | 75 |
| 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.4 | Message Oriented Middleware | 84 |
| 4.5.5 | Distributed Transaction Coordinator | 85 |
| 4.6 | Web Dienste | 87 |
| 4.6.1 | Web-Server eingebaut | 87 |
| 4.6.2 | HTML Generator | 88 |
| 4.6.3 | Automatisches Status- und Sitzungsmanagement | 90 |
| 4.7 | Kombination mehrerer Schichten | 92 |
| 4.7.1 | Art der Kombination | 92 |
| 4.7.2 | Logische Trennung | 93 |
| 4.8 | Betrieb | 94 |
| 4.8.1 | Clustering | 94 |
| 4.8.2 | Ressourcen Pooling | 99 |
| 4.8.3 | Zwischenspeicherung von Daten der Datenschicht (Caching) | 100 |
| 4.8.4 | Stabilität | 101 |
| 4.9 | Integration externer Systeme | 101 |
| 4.9.1 | Integration von Datenbeständen | 101 |
| 4.9.2 | Integration entfernter Server-Objekte | 102 |
| 4.9.3 | Integration externer Web-Server | 103 |
| 4.10 | Sicherheit | 107 |
| 4.10.1 | Verschlüsselung | 107 |
| 4.10.2 | Client Authentifizierung | 108 |
| 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 | 112 | |
| 4.11.2 | Volltextsuchmaschine | 113 |
| 4.11.3 | XML Integration | 113 |
| 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.2 | Entwicklungswerkzeuge von Drittherstellern | 121 |
| 5. | Bewertung von Applikations-Servern | 122 |
| 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.5 | Web Dienste | 126 |
| 5.2.6 | Betrieb | 126 |
| 5.2.7 | Integration externer Systeme | 127 |
| 5.2.8 | Sicherheit | 129 |
| 5.2.9 | Benutzerverzeichnisse | 129 |
| 5.2.10 | Integration von Internet Technologien | 129 |
| 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.5 | Web Dienste | 138 |
| 5.3.6 | Betrieb | 139 |
| 5.3.7 | Integration externer Systeme | 140 |
| 5.3.8 | Sicherheit | 141 |
| 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 |
| 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 |
| Ein komplettes Inhaltsverzeichnis erhalten Sie auf Anfrage unter agentur@diplom.de oder unter der Rufnummer 0049-40-655992-0 |
vorgeführt. Wesentlich einfacher ist das Wechseln der Plattform (z.B. von Windows zu Unix) innerhalb eines Herstellers. [Sess99-3] Preis COM+ ist in Windows 2000 enthalten. EJB muß als ein Add-On zu einem Betriebssystem erworben werden. Auch wenn es hier einige günstige Angebote geben wird, so werden es sicher nicht jene sein, auf denen man geschäftskritische ECommerce Anwendungen laufen lassen möchte. Allerdings sollte man die Entscheidung für oder gegen eine Plattform, auf der die zukünftigen E-Commerce Systeme laufen werden, nicht vom Preis des Servers abhängig machen, der sicher nur ein Bruchteil der Gesamtkosten ausmacht. 3.7.4.2 Zusammenfassung der Unterschiede EJB scheint, zumindest wenn man die Anzahl von verfügbaren EJB-Servern als Indikator betrachtet, ein großer Erfolg zu werden. Derzeit sind mehr als 30 EJBServer am Markt verfügbar [Sun99]. Diese große Anzahl an Herstellern ist auch ein Verdienst von IBM, die sich sehr stark für EJB einsetzt und die sehr enge Beziehungen mit der Finanzindustrie besitzt. Dabei ist sicher nicht jeder Server für jede Aufgabe gleicht gut gerüstet. Die EJB-Spezifikation läßt hier genügend Raum für eine Differenzierung der einzelnen Anbieter. [Sess99-4]. Vielleicht der größte Nachteil von EJB ist, daß es nicht von Microsoft unterstützt wird. Jene Firma, die laut den meisten Analysten das Betriebssystem der Geschäftslogik-Schicht beherrschen wird. Microsoft setzt ganz alleine auf COM+. Es besitzt außer COM+ kein anderes Produkt in einem für Microsoft absolut kritischen Segment: E-Commerce. Es wird also mit aller Macht versuchen COM+ zum Markterfolg verhelfen. Sollte dazu mehr Geld, neue Firmenübernahmen und neues Expertenwissen notwendig sein, wird Microsoft alle Wahrscheinlichkeit nach die dafür nötigen Schritte setzen. Da es mit Windows 2000 praktisch gratis ausgeliefert wird, scheint dieses Ziel auch in Reichweite. [Sess99-4] Aus technischer Sicht sind es, wie die Modelle in Abbildung 3.11 und Abbildung 3.12 beweisen, zwei ähnliche, sehr gute serverseitige Komponentenmodelle, die sich beide als Plattformen für Applikations-Server eignen, wobei EJB sicher ein wenig vom Vorgänger von COM+ beeinflußt wurde, der ja schon um zwei Jahre länger am Markt ist. Der größte Unterschied ist die Unabhängigkeit von der verwendeten Serverplattform und damit im gewissen Grad vom Hersteller bei EJB auf der einen und die Unabhängigkeit von der verwendeten Programmiersprache bei COM+ auf [...]
Vorgänger von COM+ (MTS) ist jedoch schon seit vier Jahren verfügbar, ohne daß sich solch ein Markt entwickelt hätte. Bei EJB passierte dies hingegen in kurzer Zeit. Ein Grund dafür könnte die Plattformunabhängigkeit von Java sein. Sie ermöglicht die Entwicklung einer Komponente für mehrere unterschiedliche Plattformen, ohne Änderungen durchführen zu müssen. [Toma99]. Reifegrad COM+ ist im Vergleich zu EJB die ausgereiftere Technologie. COM+ ist die zweite Generation des MTS und hatte mehr als 3 Jahre Zeit zur Reife. Hinzu kommt, daß nur sehr wenige neue Eigenschaften hinzugefügt und in Betaversionen vorhandene Eigenschaften sogar entfernt wurden (z.B. Dynamische Lastverteilung, In Memory Databases) da sie anscheinend nicht stabil genug waren. Bei EJB ist bereits nach einem Jahr die erste Revision erschienen, die etliche neue und wichtige Eigenschaften hinzugefügt hat. Einen Langzeittest hat EJB somit noch nicht hinter sich, COM+ schon. Unterstützte Programmiersprachen COM+ bindet einen im Gegensatz zu EJB nicht an eine bestimmte Programmiersprache. Komponenten können in C, C++, Visual Basic, Cobol oder einer anderen Programmiersprache erstellt werden. EJBs können jedoch nur in der objektorientierten Sprache Java erstellt werden. Wenn man bedenkt, daß laut einer Umfrage in Kanada unter 1500 Entwicklern [Sess99-2] nur 1/12 in Java entwickeln, ist das eine risikoreiche Einschränkung – auch wenn der Trend in Richtung Java stark steigend ist. Entscheidet man sich für EJB, dann ist man für die nächsten Jahre an Java gebunden. Java ist zwar eine sehr saubere Programmiersprache die gegenwärtig einen großen „Hype“ erfährt, doch auch Smalltalk, Eiffel, Pascal etc. waren einmal sehr beliebt. Es ist zwar sehr unwahrscheinlich, daß Java seine Beliebtheit in naher Zukunft verliert, jedoch ist sie ohne Zweifel eine sehr neue Sprache, die den Test der Zeit noch nicht abgeschlossen hat. Portabilität Zur Zeit gibt es über 30 verschieden Hersteller die EJB-Server anbieten [Sun99]. EJB Komponenten sollten theoretisch in jedem dieser EJB-Server ablaufen können. Sollte ein EJB-Server schlecht skalieren, ist ein Wechsel einfach möglich, solange keine herstellerspezifischen Eigenschaften verwendet werden. Der Portierungsaufwand ist im Vergleich zu einer Portierung von einem EJB-Server zu COM+ vica versa mit Sicherheit vernachlässigbar. Bei einer Java-One Konferenz wurde dies bereits mit einer einzelnen EJB-Applikation auf 13 verschiedenen EJB-Servern [...]
dies nicht nötig, da Zustände im Speicher gehalten werden können. Jedoch erschweren zustandsbehaftete Komponenten ihre Wiederverwendung bei längere Inaktivität (engl. Object Pooling, siehe 4.8.2), da ihre Zustände zuerst zwischengespeichert werden müssen. Dies kann sich sehr negativ auf ihre Skalierbarkeit auswirkt. Persistenzmanagement EJB besitzt persistente Komponenten, die im Prinzip als Teil der Datenbank zu betrachten sind. Sie repräsentieren einen Ausschnitt der Datenbank als Objekt, was die Handhabung der Daten sehr vereinfacht. Der EJB Container kann die Datenzugriffslogik zum Speichern und Laden dieser Daten selbständig erstellen. Der Anwendungsentwickler wird daher von dieser Aufgabe befreit. Er muß die Abbildung der Daten in ein Objekt (O/R Mapping) nur deklarieren. COM+ bietet diese Möglichkeit nicht an. Message Oriented Middleware (MOM) COM+ integriert mit MSMQ und seinem Publish & Subscribe Modell eine MOM (siehe 3.2), die sowohl eine asynchrone Kommunikation zwischen Clients und Serverkomponenten, als auch lose gekoppelte Systeme ermöglicht. J2EE bietet zwar mit dem JMS auch einen MOM-Dienst an, integriert ihn bis jetzt jedoch nicht in EJB. Dies bedeutet, daß Clients ohne proprietären Verbindungscode nicht asynchron mit EJB-Komponenten kommunizieren können und EJBs an keinem Publish & Subscribe Modell teilnehmen können. Transaktionsmanagement COM+ verwendet den Microsoft Distributed Transaction Coordinator (MS DTC) als Transaktionsmanager. MS DTC ist XA-kompatibel (siehe XXX) und ermöglicht somit heterogene, verteilte Transaktionen. Java besitzt mit dem JTS ebenfalls eine Schnittstelle zu einem vollwertigen XAfähigen Transaktionsmanager. Jedoch verlangt EJB nicht, daß ein EJB-Server auch wirklich mit JTS ausgestattet ist. EJB schreibt lediglich die Verwendung von JTA zur Festlegung der Transaktionsgrenzen fest. Der Einsatz von JTS ist optional. Heterogene verteilte Transaktionen können daher nicht von jedem EJB-Server durchgeführt werden. Komponentenmarktplatz EJB ermöglicht einen Handel mit Software Komponenten, die aus verschiedenen Quellen erworben und relativ einfach und schnell in eine neue Applikation integriert werden können. Dies wäre natürlich auch für COM+ Komponenten denkbar. Der [...]
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832451721
Arbeit zitieren:
Fellner, Klaus Mai 2000: Analyse und Vergleich von Applikations-Servern und ihren zugrundeliegenden Technologien, Hamburg: Diplomica Verlag
Schlagworte:
EJB, COM+, Kriterienkatalog, Applikationsserver, Middleware



