Schaltzentralen der Unternehmens-IT

Was ist Middleware, was tut ein Application Server, wie profitieren Entwickler und Unternehmen von der IT-Mittelschicht? Definitionen, Funktionen und Empfehlungen.

Artikel erschienen in Swiss IT Magazine 2003/08

     

Ein Application Server ist eine Softwareplattform, dank der Erstellung, Implementation, Betrieb und Unterhalt von ausgedehnten Multi-User-Anwendungen einfacher werden." So definiert Microsoft die Rolle der wohl zentralsten Komponente der dreischichtigen IT-Infrastruktur, die heute als Standard der Unternehmensinformatik gilt: Datenhaltung, Verarbeitung der Geschäftslogik und Präsentation an den Benutzer sind streng voneinander getrennt, so dass in jeder Schicht -je nach Leistungsbedarf, Datenvolumen und Art der Endgeräte - unterschiedliche, skalier- und auswechselbare Softwareteile zum Einsatz kommen können.


Fünf Grundfunktionen

Egal von welchem Hersteller - die Grundfunktionen eines Application Servers lassen sich in fünf Hauptkategorien einteilen:




Ein Bett für Komponenten: Die Hauptrolle des App-Servers in der 3-Tier-Architektur besteht darin, die Geschäftslogik der betreffenden Applikation in Form von Softwarekomponenten zu beherbergen und mit den anderen Schichten zu verbinden. Im Gegensatz zu den früher üblichen, riesigen Applikationen mit Zehntausenden von Codezeilen ist jede Einzelkomponente ein überschaubares, in sich geschlossenes Softwarestückchen, das jeweils genau eine Aufgabe erledigt. Mit anderen Komponenten sowie mit der Daten- und Anwenderschicht kommuniziert sie über standardisierte, genau definierte Schnittstellen wie EJB (Enterprise Java Beans) oder Web Services (standardisiert via SOAP). Damit lässt sich eine Komponente mit einer bestimmten, öfter benötigten Funktion in verschiedenen Zusammenhängen verwenden und muss nur einmal entwickelt werden.





Entlastung des Entwicklers: In traditionellen Programmiermodellen hat sich der Entwickler um jedes Detail zu kümmern. Vor allem das Abfangen aller nur denkbarer Fehlersituationen macht oft einen Grossteil des Programmcodes aus, das gleiche gilt für die Details der Kommunikation mit anderen Anwendungen, Datenbanken und Benutzern, für Sicherheitsaufgaben, Ressourcen- und Transaktionsmanagement. Der App-Server nimmt dem Entwickler den allergrössten Teil dieser Infrastrukturaufgaben ab, der sich so ganz auf die eigentlichen Funktionen der Anwendung konzentrieren kann. Mit den neuesten Entwicklungstools wie BEA Weblogic Workshop muss in manchen Fällen keine einzige Zeile Code mehr geschrieben werden: Ganze Anwendungen lassen sich visuell aus bestehenden Standardkomponenten zusammenstellen.




Verbindung zu Datenquellen: Keine Geschäftsanwendung kommt ohne Zugriff auf Datenbanken aus. Auch in diesem Bereich übernimmt der Application Server einen Grossteil der Detailaufgaben: Er bietet eine einheitliche Schnittstelle zu den unterschiedlichsten Datenquellen, angefangen von simplen Dateien über relationale Datenbanken bis zu komplexen Backend-Systemen, zum Beispiel einem bestehenden ERP-System.




Sicherheit und Zuverlässigkeit: Die Übernahme der meisten Infrastrukturaufgaben - Fehlerbehandlung, Kommunikation mit anderen Anwendungen, Benutzeridentifikation, Verbindung zu Datenbanken - durch den App-Server erleichtert nicht nur den Entwicklern die Arbeit; sie macht die Gesamtanwendung auch zuverlässiger und sicherer. Statt individuell programmierter Code kommt getestete, bewährte Standardsoftware zum Einsatz.




Interface zum Benutzer: Die Benutzer arbeiten entweder via Webbrowser - heute immer mehr en vogue - oder über eigenständige Client-Applikationen mit der Geschäftsanwendung. Analog zur einheitlichen Datenbankschnittstelle stellt der App-Server den Entwicklern auch standardisierte Mechanismen für das User-Interface zur Verfügung. Je nach Einsatzgebiet und Produkt reicht die Bandbreite hier von simplen Scripting-Sprachen für die Präsentation von Webseiten bis zum ausgewachsenen Portal.


Präsentation versus Geschäftslogik

Webanwendungen lassen sich auch mit einer Kombination aus Scripts, die in Sprachen wie PHP, ASP oder JSP geschrieben sind, und einer Datenbank wie Access oder mySQL realisieren. Die zur Ausführung benötigte Script-Engine ist Bestandteil des gewöhnlichen Webservers: In den IIS-Webdiensten von Microsoft ist ASP enthalten, PHP gibt es als Modul zum Open-Source-Webserver Apache oder für die IIS.



Zwischen serverseitig ausgeführten Scriptsprachen wie ASP, JSP und PHP und einem waschechten Application Server gibt es jedoch einen klaren Unterschied: All die arbeitserleichternden Standardfunktionen des App-Servers müssen im Scripting-Fall vom Entwickler ausprogrammiert werden. Die Scriptsprachen bieten dazu nur ansatzweise Unterstützung; eine Implementation mit CGI-Programmen in C++ ist möglich, aber sehr aufwendig. Der Kommentar von Sun: "Sobald ein Projekt Geschäftslogik auf dem Server implementieren muss, sollte ein Applikationsserver eingesetzt werden. PHP, ASP und JSP sind präsentationsorientierte Technologien, die sich nicht zur Abbildung von Geschäftslogik eignen."




Noch kritischer wird es, wenn die Anforderungen steigen, wie BEA-Product-Manager Colin Harwell bemerkt: "Es liegt auch im Verantwortungsbereich des Application-Servers, den unternehmenskritischen Forderungen an die IT zu entsprechen, beispielsweise durch Mechanismen für den Failover-Betrieb sowie durch eine skalierbare Architektur, die sowohl für kurzfristige Belastungsspitzen als auch für längerfristiges Leistungswachstum ausgelegt ist." Solche Probleme lassen sich grundsätzlich zwar auch "von Hand" lösen, der Entwicklungs- und Integrationsaufwand steigt dann aber ins Unermessliche.




Vom App-Server zur Integrationplattform

Der erste kommerziell erhältliche Application Server, so der Hersteller, war 1995 das Allaire-Produkt ColdFusion. Damit war es erstmals möglich, von einer Webseite aus in standardisierter Weise auf eine Datenbank zuzugreifen. Seither hat sich die Rolle des Application Servers dramatisch erweitert, parallel zur Rolle von Webanwendungen an sich: Statt Präsentations-Insellösungen ist Integration mit den übrigen Geschäftsanwendungen gefragt. Die App-Server-Suiten von BEA, Oracle, IBM und Sun umfassen demnach heute je nach Variante auch Funktionen wie Portalserver, Business Intelligence und Integration mit externen Systemen, die teils im Grundprodukt enthalten sind, teils als Zusatzoptionen ergänzt werden können.



Ein Beispiel dafür sind die umfangreichen Business-Intelligence-Funktionen, die in der Enterprise-Edition des Oracle 9 iAS-App-Servers enthalten sind, ähnliches gilt für die Produkte der übrigen Hersteller wie die im Sun ONE-App-Server integrierte Message Queue.




Bei BEA sind die Funktionen auf verschiedene Produkte verteilt: Neben dem eigentliche Application Server gibt es die separaten Pakete Integration Broker, Portal und Liquid Data (Realtime-Business-Intelligence). Aber auch hier spielt der Integrationsgedanke, wie Harwell betont: "In den vergangenen zwei Jahren ist der Application Server in eine neue Rolle hineingewachsen, die mit dem überlieferten Begriff Middleware in etwa verglichen werden kann. Zu dieser konvergierten Infrastruktur gehören auch Portal-Server sowie die Query-Aggregation für die relativ neue Disziplin der Realtime-Business-Information. Das Ergebnis dieser Fusion auf dem Fundament des Applikation-Servers wird von manchen IT-Analysten als Application Platform Suite oder schlicht Business Integration Server kategorisiert."




App-Server-Technologien: .Net versus J2EE

Der App-Server-Markt teilt sich heute in zwei Lager: Die .Net-Plattform von Microsoft und die J2EE-Plattform (Java 2 Enterprise Edition), auf der die App-Server der meisten anderen Anbieter basieren. Dazu kommen einige weitere Produkte wie das verbreitete ColdFusion - eigentlich eine Mischung aus App-Server und Programmiersprache -, Open-Source-Projekte wie Zope sowie Datenbanksysteme mit integriertem App-Server wie Caché von Intersystems.



Die Entscheidung für eine der Plattformen ist weitgehend Geschmackssache, aber nicht nur: Die J2EE-Architektur gilt als mächtig, aber komplex; Microsoft positioniert .Net als flexiblere und kostengünstigere Alternative.




Das sind jedoch Pauschalurteile: Von der Technologie her bieten beide Plattformen vergleichbare Möglichkeiten und Schwierigkeiten. Auf der Java-Seite gilt es zum Beispiel, die Java-Virtual-Machine für den Betrieb des App-Servers zu optimieren, wie der BEA-Product-Manager feststellt: "Eine JVM ist in allen Betriebssystemen vorhanden - aber nun taucht die Frage der Systempower auf. Die JVM, die bisher vielleicht ein schlummerndes Dasein fristete, muss nun zeigen, was sie kann - sie muss Stacks und Heaps für den App-Server verwalten und laufend die hinsichtlich Performance viel diskutierte Garbage Collection durchführen. Der Spielraum für mehr Performance und Eingrenzung des Ressourcenbedarfs beträgt bis zu 30 Prozent." Aus diesem Grund bietet BEA eine speziell auf ihren App-Server zugeschnittene JVM namens JRockit für Windows und Linux an - für BEA-Kunden netterweise kostenlos.




Lizenzen werden billiger

Wo so viel Funktionalität geboten wird, sind hohe Lizenzkosten zu fürchten. Preise von Zigtausenden für einen App-Server der Enterprise-Klasse schrecken manchen potentiellen Interessenten ab. Vielleicht fährt man mit einer Open-Source-Lösung doch günstiger?



Die Hersteller winken naturgemäss ab und haben damit nicht unrecht, denn es hat sich bei den Preisen einiges getan. Sämtliche Anbieter haben neben den Enterprise-Editionen ihrer Produkte, die sich vor allem durch Funktionen wie High-Availabilty-Features und integrierte Business-Intelligence auszeichnen, auch Standard- und Entry-Level-Ausgaben im Programm. So gibt es von IBM seit neuestem das KMU-orientierte Paket WebSphere Express. WebSphere-Marketing-Manager André Tecklenburg: "Unsere Application-Server-Lizenzen sind nicht mehr teuer. WebSphere Express gibt es ab rund 3000 Franken für externen und ab 37 Franken pro Benutzer für unternehmensinternen Gebrauch." Ähnlich klingt es bei Sun, wo die Platform Edition des Sun-ONE-App-Servers für den Betrieb unter Solaris gratis erhältlich ist und die Standard Edition rund 2000 Dollar kostet. Erst die Enterprise-Editionen schenken so richtig ein; bei IBM kostet der WebSphere-Enterprise-App-Server für den produktiven Einsatz zum Beispiel um die 30'000 Euro.





Bastelei lohnt sich nicht

Arnd Lülsdorf (Produktspezialist für 9iAS, Oracle Schweiz) sieht es so: "Technologisch gibt es nichts aus dem Funktionsumfang eines Applikation-Servers, das sich nicht mit Open-Source- oder ähnlichen Lösungen nachbauen liesse. Der wesentliche Unterschied liegt jedoch zwischen technisch möglich und bereits implementiert: Die Differenz zwischen diesen Zuständen ist im Regelfall ein Projekt mit individuellen Kosten und Risiken. Diese gehen auch bei kleinen Projekten meist sehr schnell deutlich über die Kosten für ein Standardprodukt hinaus."



Gemäss Lülsdorf ist beispielsweise ein App-Server-basiertes Portal technisch in einigen Tagen bis Wochen zu implementieren. Dafür seien heute nicht einmal mehr Programmierkenntnisse notwendig. Im Gegensatz dazu sei bei den heute verfügbaren Open-Source-Portal-Frameworks ist mit deutlich höheren Zeiten und zusätzlichem Lernaufwand zu rechnen. Ausserdem: "Bei Baukasten- und Selfmade-Lösungen kommen schnell so viele Einzelteile zusammen, die auf unterschiedliche Weise installiert, gepflegt und konfiguriert werden, dass der Gesamtaufwand den für ein kommerzielles System bei weitem übersteigt."





PHP versus ColdFusion

Ein Application Server nimmt dem Entwickler einen Grossteil der Detailarbeit ab und ermöglicht ihm, sich auf die eigentlichen Anwendungsaufgaben zu konzentrieren. Ein ganz einfaches Beispiel: Bei einer Datenbankabfrage übernimmt ColdFusion die gesamte Fehlerbehandlung, die mit blossem PHP-Scripting durch den Programmierer erstellt werden muss.



(ubi)


Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Was für Schuhe trug der gestiefelte Kater?
GOLD SPONSOREN
SPONSOREN & PARTNER