View
121
Download
3
Category
Preview:
Citation preview
Web-Applikations-ServerWeb-Applikations-Server
Grundlagen &Grundlagen &
Netscape Application ServerNetscape Application Server
von Adrian Maletzko und Robert Naczinski
FH Gelsenkirchen09 Dezember, 1999
Definition
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Application Sever - A software subsystem that executes application logic for performing
business activities and which is optimized for very high performance
network activity in conjunction with a data server.
(Oracle)
Warum Web-Applikations-Server ?
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Inter- Intranet als Platform für:• eCommerce
• Workflow
• Telearbeitsplätze
=> Dynamischer Inhalte durch:• Serverkomponenten
• Client Objekte
• Implementierung \ Skalierbakeit
• Datenbankanbindung
• Transaktionsunterstützung
• Sicherheit
Warum Web-Applikations-Server ?
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Schichten-Modell
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Zweischichtige Client/Server Architektur
Dreischichtige Client/Server Architektur
Konzepte verteilter Systementwicklung
Was ist eine Softwarekomponente?„A software component is a unit of composition with contractually specified
interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.“ European Conference on Object-Oriented Programming (ECOOP), 1996
Was ist ein Komponentenmodell?„A component model defines the basic architecture of a component,
specifying the structure of its interfaces and the mechanisms by which it interacts with its container and other components. The component model provides guidelines to create and implement components that can work together to form a larger application.“ A. Thomas, „Enterprise JavaBeans
Technology“, 1998
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Konzepte verteilter Systementwicklung
Was ist Middleware?
„Middleware is off the shelf connectivity software which supports distributed
processing and is used by developers to build distributed software.“ R. Rock-Evans, „DCOM Explained“, 1998
„Middleware = „/“ in Client / Server - Systemen“
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA
• CORBA - Common Object Request Broker Architecture. • Spezifikation der Kommunikation zwischen verteilten Objekten und
Anwendungen im Netz unabhängig von verwendeten Systemen und Programmiersprache.
• CORBA-Komponenten bestehen aus einer Schnittstelle und ihrer Implementierung in einer Hochsprache. Der Programmierer arbeitet innerhalb der Sprache mit sprachspezifischen Konstrukten (Klassen, Module).
• Portabilität der Konzepte, die bei der Erstellung der Anwendungssoftwarebenutzt wurden, auf unterschiedlichen Systemen verschiedener Hersteller.– Objectcode-Portabilität (binäre Portabilität)
– Quellcode-Portabilität
– Entwurfs-Portabilität
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA
• Die externen Schnittstellen einer CORBA-Komponente werden durch die CORBA-IDL (Interface Definition Language) definiert.
• CORBA spezifiziert Anbindungen an Hochsprachen, nicht ein bestimmtes Binärformat der Komponenten.
• Folge: CORBA-Komponenten sind prinzipiell plattform- und compiler-unabhängig, müssen aber in einer der vom jeweiligen ORB auf der Zielplattform unterstützten Sprachen implementiert sein.
• IDLs dienen dazu, die Schnittstellen einer Komponente unabhängig von ihrer Implementierung zu definieren.
• IDLs enthalten Schlüsselworte, um: Schnittstellen, übergebene Datentypen, Fhlerzustände zu definieren.
• CORBA und DCOM verwenden IDLs. Java RMI erzeugt die
Schnittstellen direkt aus Java-Code.
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA
• ORB (Object Request Broker) - Vermittler für die Kommunikation. Über ihn kommunizieren verschiedene Objekte. Der Client kann beliebige Methoden eines Servers aufrufen, ohne dessen Lokalität oder die verwendete Sprache zu kennen. Der ORB findet selbständig die
korrekte Implementierung - über System- und Sprachgrenzen hinweg.
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
ORB
Client-Objekt Server-Objekt
AnforderungOperation 2 Operation 2
Operation 1
Servername, OperationsnameParameter, Ausnahme,Kontext
DCOM \ ActiveX
• DCOM (Distributed Common Object Model)- von Microsoft entwickeltes verteiltes Objektmodell.
• Distributed COM (DCOM) wird entwickelt, um die Schwächen von COM beim Zugriff auf entfernte Rechner auszumerzen. „DCOM is
COM with a longer wire“ (Microsoft) • DCOM spezifiziert das Binärformat von Komponenten • Folge: DCOM-Komponenten sind immer plattformabhängig • ActiveX-Komponenten sind COM-Komponenten, die über
Plattformgrenzen hinweg portabel sein sollen.
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
RMI \ Enterprise JavaBeans
• Enterprise Java Beans - Softwarekomponenten mit Nutzung entfernter Ressourcen
• RMI (Remote Method Invocation) - Kommunikation zwischen Java-Objekten auf verschiedenen Systemen im Netzwerk.
• Schichtenmodell, welches den Datentransfer vom eigentlichen Transport-Protokoll und der Applikations-Ebene abstrahiert
• TCP als Transportmedium, UDP oder IIOP (Internet-Inter-ORB-Protocol) wären ebenfalls möglich.
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
RMI \ Enterprise JavaBeans
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Vergleich der Architekturen: Sprachunterstützung
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA: • Sprachunabhängiger Standard, Schnittstellendefinition durch IDL
• Sprachanbindungen an C, C++, Smalltalk, Ada, Java, Eiffel, Objective C
DCOM / ActiveX: • Binärstandard macht DCOM unabhängig von der verwendeten
Sprache, verlangt aber ein bestimmtes Ausgabeformat des Compilers
• Viele Entwicklungstools auf der Windows-Plattform (MS Visual Studio, PowerBuilder, Borland Delphi, MicroFocus COBOL) unterstützen dasDCOM-Format
RMI / Enterprise JavaBeans:
• Auf jeder Plattform verfügbar, auf der eine Java-VM läuft.
Vergleich der Architekturen: Plattformunterstützung
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA: • Plattformunabhängigkeit ist der zentrale Focus von Corba.
• ORBs verfügbar für über 30 Plattformen.
DCOM / ActiveX: • In die Windows NT-Plattform integriert. Plattformunterstützung
einzelner Nicht-Windows-Plattformen nachträglich aufgesetzt.
• DCOM-Realisierungen auf anderen Plattformen mit stark reduzierter
Funktionalität.
RMI / Enterprise JavaBeans:
• Ausschließlich mit Java verwendbar
Vergleich der Architekturen: Transaktionsunterstützung
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA: • Object Transaction Service bietet weitreichende Unterstützung für
verschiedene Arten von Transaktionen auf verschiedenen Plattformen
• Auch Transaktionen zwischen verschiedenen ORBs sind mit OTS
möglich DCOM / ActiveX: • Microsoft Transaction Server bietet automatisierte
Transaktionsunterstützung für Windows NT
• Auf anderen Betriebssystemen sind nur rudimentäre DCOM-
Transaktionsfunktionen verfügbar RMI / Enterprise JavaBeans: • Unterstützung des Java Transaction Service (basiert auf OTS) wird
empfohlen, aber nicht vorgeschrieben.
Vergleich der Architekturen: Sicherheit
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
CORBA: • Sehr umfangreiche und vollständige Sicherheitsspezifikation.
• Umsetzungsgrad der Spezifikation variiert von ORB zu ORB.
DCOM / ActiveX: • Auf Windows NT gute Sicherheit durch Integration mit
Sicherheitsfunktionen des Betriebssystems.
• Auf anderen Plattformen kann Sicherheit nur durch Integration mit
Produkten von Drittanbietern gewährleistet werden.
RMI / Enterprise JavaBeans:
• EJB nutzt und erweitert das Java-Sicherheitsmodell
Vergleich der Architekturen: Übersicht
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
IBM WebSphere Application Server
• GUI-Administration des IBM HTTP Servers• Volle Unterstützung von Java 2 und RMI und JDBC• Integration von „Visual Age for Java“ als Entwicklungsumgebung.• Lastenverteilung für mehrere Server• XML/XSL-Unterstützung: Zusammenfügung Inhalte aus
verschiedenen Datenquellen.• Möglichkeit der Verwendung unterschiedlicher JVM´s auf einem
Rechner• Automatische Web-Seiten Analyse mit Generierung umfangreicher
Reports
• Automatischer Übersetzungsdienst für unterschiedliche Sprachen
(machine translation engine) • Weitere Informationen:
www.software.ibm.com/webservers/appserv
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Inprise Application Server
• Unterstützung verschiedener Programmiersprachen, Datenbankservern und Hardware-Plattformen
• Objektorientierte Infrastruktur (VisiBroker)
• Unterstützung von CORBA, C++, Java 2 und HTML
• Integration von JBuilder 2, Sun Java Webserver, VisiBroker IST (transiaktionsgesteuerte Middleware für Java-basierte Anwendungen)
• Management-Tool AppCenter für die visuelle Verwaltung des Applications Servers
• Weitere Informationen:www.borland.com/appserver
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Oracle Application Server
• Integration in die Oracle Umgebung
• Unterstützung von: Enterprise JavaBeans, JSP, Servlets, PL/SQL
• Policy Manager - Prioritätsstufen für Anwendungen mit Ressourcenverteilung
• Weiter Informationen:www.oracle.com/appserver
Applikations-Server: Einführung Komponentenarchitekturen Marktübersicht
Überblick
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Besonderheiten• Lastverteilungskomponente (für mehrere NAS)
• Request-Manager (bei einem konkreten NAS)
Überblick
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
AppLogics
Anwendungslogik• Sie ist in kleinen Modulen, den sogenannten AppLogics
implementiert.
• AppLogics sind Programmstücke, die in Java oder C++ geschrieben sind, und damit Klassen, zu denen bei einer Anfrage des Clients ein Objekt erzeugt wird.
• Eine NAS-Anwendung setzt sich aus einer Menge von AppLogics zusammen die global eindeutig identifiziert sind.
• Es gibt eine Verteilung zwischen Präsentation im Web-Browser und Anwendungslogik auf dem Web-Server.
• Die AppLogics werden im Wechsel mit den Ein- und Ausgaben im Web-Browser angestoßen und von den NAS-Prozessen ausgeführt.
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Session&State-Management-Service
Verteilte Speicherung von Anwendungszuständen
(innerhalb einer Anwendung)
• Sitzungsbezogene Daten– Benutzerkennung kann in einem Session-Objekt gespeichert werden
– Identifikation durch eine Session-Objekt ID
• Sitzungsunabhängige Daten– Sitzung- und Benutzerunabhängige Anwendungszustände werden durch
den State-Management-Service verwaltet.
– Komplexe Anwendungszustände bleiben über die Grenzen einer Applikations-Server Instanz erhalten.
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Cache für Datenverbindungen
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Problematik• Hohe Datenbankrelevanz in den Applikationen
• Gewährleistung schneller Datenbankabfragen
• Gewährleistung schneller Antwortzeiten
Aufgaben• Bereitstellung der Verbindungen zu Auswahl durch die
Anwendungsmodule (AppLogics)
• Speicherung der Abfrageergebnisse zum Abruf durch die Anwendungsmodule (AppLogics)
Transaktionsmanager
Problematik• Fehlende Benutzerkontrolle
Aufgaben• Nicht beendete Transaktionen zurücksetzen
• Konsistenz der Datenbank gewährleisten
• Bereitstellung eines Transaktionsmonitors für fremde Systeme
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Eigene Erweiterungen
Bereitstellung der Funktionalität eines entfernten Systems
(durch Schnittstellen und Kommunikationsmechanismen)
• Zugriff auf Altanwendungen
• Client/Server-Anwendungen
• Web-Produkte von Dritten
• NAS ist ein CORBA-Server!
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Vorgefertigte Erweiterungen
Kommunikation mit fremden Systemen:• IBM MQ Series
• BEA Tuxedo
• IBM CIC, IMS
• ERP
Über:• RMI („Remote Method Invocation“)
• DCOM („Distributed Component Object Model“)
• CORBA („Common Object Request Broke Architecture“)
Netscape AS : Anwendungsmodule Transaktionen und DB Erweiterungen
Fazit
Das Netzwerk ist der Computer!
Objektorientierung, Objektorientierung, Objektorientierung!
Ende
Recommended