War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

Windows Server 2003 als Anwendungsplattform

Veröffentlicht: 26. Jan 2003 | Aktualisiert: 23. Jun 2004
Von Alexander Wechsler

Das Release des neuenWindows Server 2003 steht kurz bevor. Dieser Artikel möchte anhand des Release Candidate 2 einen Überblick über die wichtigsten Neuerungen für Anwendungsentwickler geben.
Obwohl man sich nie sicher sein kann, dass es am Ende alle Funktionalitäten des RC2 ins endgültige Produkt schaffen, so gibt er bereits einen ziemlich verlässlichen Eindruck über die zu erwartende Gestalt des neuen Windows Server 2003.

Auf dieser Seite

 Anforderungen moderner Anwendungen
 Windows Server 2003 als Anwendungsplattform
 Vergleich mit den Anwendungsanforderungen
 Zusammenfassung

Anforderungen moderner Anwendungen

Was benötigt eine Anwendungsplattform?
Dies lässt sich nicht pauschal beantworten und jeder Projektleiter wird andere Anforderungen finden. Es gibt aber gewisse Merkmale moderner Anwendungen, die als Vergleichsrahmen dienen können.
Betrachtet man derzeit in Entwicklung befindliche Projekte, so fällt auf, dass viele auf den Browser als wandlungsfähigen und überall verfügbaren Client setzen. Anwendungen, die auf Formularen basieren, sind dabei trotz möglicher Anbindung an Web Services klar in der Minderheit.

Von diesem Szenario lassen sich gewisse Grundanforderungen an die Anwendungsplattform ableiten:

  • Hohe Zuverlässigkeit, da das Server-System die geschäftskritischen Anwendungen trägt

  • Hohe Sicherheitsanforderungen, da Betrieb im Intra- oder im noch gefährlicheren Internet notwendig

  • Unterstützung aller gängigen Internet-Standards und -Dienste

  • Hohe Skalierbarkeit um Lastspitzen zu verkraften

  • Einfach zu handhabende sowie kostengünstige Wartungs- und Überwachungs-Mechanismen

  • Verfügbarkeit von Entwicklungsinfrastruktur für die Anwendungsentwicklung, die hilft, Projektzeiten zu verkürzen

  • Verfügbarkeit eines Applikationsservers, welcher die Integration in Enterprise Backend-Systeme unterstützt (verteilte Transaktionen)

  • Abwärtskompatibilität mit bestehenden Anwendungen (Investitionsschutz/Migration)

Anhand dieser Schwerpunkte ist erkennbar, dass moderne Systeme auf das erfolgreiche Zusammenspiel von Entwicklungstechnologien und Plattforminfrastruktur setzen.
Kann Microsoft mit dem Windows Server 2003 hier punkten?

Windows Server 2003 als Anwendungsplattform

Die vom Windows Server 2003 angebotene Funktionalität für Anwendungen lässt sich im Wesentlichen in vier Gruppen unterteilen.
Die erste ist der Internet Information Server (IIS) der als Host für alle Web-Basierenden Anwendungen dient, die zweite versteckt sich hinter dem wenig aussagekräftigen Namen COM+ Services 1.5 und ist eigentlich ein mächtiger Application Server für komponentenbasierte Systeme. Der dritte im Bunde ist das .NET Framework, als objektorientiertes "Baukastensystem" für die Anwendungserstellung. Die letzte Gruppe sind Anwendungs- und Infrastrukturdienste wie Media Streaming, Clustering, POP3 etc. zu erwähnen, die sowohl weitere Kommunikationsservices anbieten, als auch die Basistechnologie zum hochverfügbaren Betrieb des Servers liefern.

Der Internet Information Server 6.0
Der IIS - dank seiner Unterstützung von ASP/ASP.NET vielen Anwendungsentwicklern ein zuverlässiger Vertrauter - hat in Windows Windows Server 2003 2003 große Veränderungen erfahren.
Bis Version 5.1 (in XP) war er bezüglich seiner Architektur eng mit dem COM+-System verwoben, das es ermöglichte Anwendungen isoliert in eigenen Prozessen laufen zu lassen und so die Stabilität des Servers zu erhöhen. Fehlerhafter Code kann so dem Webserver nichts anhaben. HTTP-Requests wurden dabei vom Kernel an den WWW-Service übergeben und von dort entweder In-Process mit Hilfe der Inetinfo.exe (ISAPI-Filter, etc.) ausgeführt oder Out-of-Process an die für COM+ einspringende Dllhost.exe übergeben.

net_srv_01

Bild 1: Verarbeitung von HTTP-Anfragen im IIS 5.0

Nachteile dieser Architektur sind, dass beim Routen durch den WWW-Service immer mindestens zwei Prozessgrenzen zu überwinden sind, bevor der Request behandelt werden kann. Bei den immer in der Inetinfo.exe und In-Process laufenden ISAPI-Filtern ist die Gefahr, durch einen Fehler den gesamten Webserver zu beenden, sehr groß. ISAPI-Filter implementieren meist sehr wichtige Funktionalitäten wie z.B. die Frontpage Server Extensions, auf die oft nicht verzichtet werden kann.

IIS 6.0, wenn nicht im Kompatibilitätsmodus betrieben, gibt das Konzept der In-Process laufenden Extensions vollkommen auf und isoliert ausführbaren Code immer in so genannten Application-Pools (W3wp.exe). Diese sind in der Lage, beliebig viele ISAPI-Extensions bzw. ISAPI-Filter aufzunehmen. Um die Verarbeitung von Internetanfragen zu beschleunigen, wurde Kernfunktionalität aus dem Usermode in die im Kernelmode laufende Http.sys-Komponente des IIS verlagert.

net_srv_02

Bild 2: Neue Architektur für HTTP-Anfragen im IIS 6.0

HTTP-Requests werden jetzt nicht mehr aus dem Kernel in den im User-Mode laufenden WWW-Service geleitet, sondern direkt an die Request-Queue des für sie zuständigen Application Pools.

Die Application Pools melden sich hierfür beim Start bei der HTTP.SYS Komponente an. Das spart das Überwinden mindestens einer Prozessgrenze und zusätzlich können HTTP-Antworten direkt und schnell zugänglich im Kernel gecached werden. Es werden aber nur die Ergebnisse dynamischer bzw. statischer Seiten dort vorgehalten, Code wird nicht zugelassen. Damit soll verhindert werden, dass externer Code im Kernelmode Schaden anrichtet und das Gesamtsystem gefährdet. Die Inetinfo.exe sowie der WWW-Service übernehmen beim IIS 6.0 nur noch den Betrieb weiterer IP-Dienste wie FTP, NNTP, SMTP und natürlich die administrativen Aufgaben. Die Behandlung der SSL-Verschlüsselung wandert aus der Inetinfo.exe in die Windows-Authentifizierung.

Durch die strikte Kapselung in Application Pools gewinnt man zusätzliche Vorteile. Die im Pool laufenden Worker-Prozesse können überwacht, automatisch neu gestartet und diese bei Multiprozessorsystemen zur besseren Verteilung der Last an bestimmte Prozessoren gebunden werden. Werden dabei mehrere Worker-Prozesse einem Application Pool zuordnet, können ähnlich einer Web Farm ankommende Requests auf diese verteilt werden. Damit erhöht sich die Skalierbarkeit einer Anwendung, natürlich vorausgesetzt, die notwendige Kapazität ist hardwareseitig verfügbar. Diese Konfiguration nennt man Web Garden.


net_srv_03

Bild 3: Web Farm und Web Garden

Vorsicht, die Anfragen werden im Round-Robin Prinzip verteilt. Dies hat dieselben von Webfarmen her bekannten Auswirkungen auf das Management von volatiler (flüchtiger) Zustandsinformation in der Anwendung: Mehrere aufeinander folgende Requests des gleichen Clients werden gegebenenfalls auf mehrere Worker-Prozesse verteilt und die im jeweiligen Prozess verwendeten Variablen haben unter Umständen verschiedene Werte. Dies führt meist zu Fehlfunktionen. Das muss deshalb unbedingt in der Anwendungsarchitektur berücksichtigt werden, bevor man die Anwendung einem Web Garden zuordnet.

Ein weiteres Merkmal der neuen Version ist, dass die IIS-Konfigurationsdatenbank, die Metabase, nicht mehr binär sondern im XML-Format abgelegt wird. Dies vereinfacht den administrativen Zugriff und ermöglicht auch Konfigurationsänderungen zur Laufzeit des Systems.
Um die Verträglichkeit mit älteren Anwendungen zu erhalten, ist es möglich, den IIS 6.0 im IIS 5.0 Kompatibilitätsmodus zu betreiben. Es wird dann auf ein zum IIS 5.0 nahezu identisches Prozessmodell zurückgegriffen. Dabei ist es erforderlich, sich für eines der beiden Modelle entscheiden, da ein Parallelbetrieb nicht möglich ist.

Das .NET Framework
Aus Sicht des Entwicklers ist das .NET Framework nichts als der Baukasten, aus dem die Elemente für die Anwendung entnommen werden können. Er fügt diese Komponenten dann mit wenigen Zeilen eigenem Code zusammen und kann sich dadurch viel Zeit in der Programmierung und beim Test sparen. Mit dem .NET Framework können fast alle System- und Anwendungs-bezogenen Funktionalitäten umgesetzt werden. Für einen tieferen Blick in diese Technologie sei auf die Fülle an Publikationen zu diesem Thema hingewiesen.

COM+-Services 1.5
Über der reinen Anwendungs- und Systemfunktionalität gibt es jedoch vor allem bei Anwendungen im Unternehmensbereich Problemstellungen, welche zusätzliche Infrastruktur erfordern. Es handelt sich hierbei meist um Systeme, die Daten an verschiedenen Orten und auf verschieden Speichersystemen konsistent halten müssen. Um dies zu gewährleisten, bieten die COM+-Services Unterstützung von Transaktionen auch über verteilte, sowie heterogene Systeme. Zusätzlich sind diese Services aber auch ein vollwertiger Application Server für COM-Komponenten. Das heißt, für die Komponenten wird eine Laufzeitumgebung zur Verfügung gestellt, in der neben Transaktionsunterstützung weitere Hilfsdienste wie Object Pooling, Resource Dispenser, Message Queueing, etc. verfügbar sind.

Eine wichtige Neuerung bei Windows Server 2003 Windows Server 2003ist die Einführung von Anwendungspartitionen. Darunter werden verschiedene Konfigurationen derselben Anwendung verstanden, welche für verschiedene Benutzer oder Benutzergruppen unterschiedlich eingerichtet werden. Anhand der Active Directory Benutzer/Gruppen Kennung wird der Benutzer an die im System für ihn vorgesehene Konfiguration der Anwendung weitergeleitet. Dies ermöglicht die parallele Administration solcher Applikationen auf ein und demselben Server für verschiedene Benutzergruppen und dürfte unter anderem für Application Service Provider interessant sein, die damit Hardware und Personalkosten einsparen können.

Eine weitere interessante Neuerung ist die Fähigkeit auch für COM+-Anwendungen Application- Pools einzurichten. Damit können selbst Single-Threaded-Applikationen, die z.B. in VB 6.0 programmiert wurden über verschiedene Prozesse gepoolt werden um Ihre Skalierbarkeit zu erhöhen. Man muss hier aber mit Umsicht zu Werke gehen, da Probleme in der Handhabung volatiler Zustandsinformationen auftreten können, wie man sie von Webfarmen kennt. Die Architektur der VB Anwendung sollte unbedingt auf ihre Eignung, über verschieden Prozesse zu poolen, überprüft werden.

Der ebenfalls neue Application Recycling Service bietet die Möglichkeit, Prozesse aufgrund verschiedener Rahmenbedingungen (Laufzeit, Anzahl der Aktivierungen, usw. ….) zu stoppen und wieder neu zu starten. Damit können schlimmere Auswirkungen von memory leaks vermieden bzw. hängen gebliebene Prozesse neu initialisiert werden.

Besonders wenn es um die Migration bestehender COM+-Anwendungen zu .NET und zu Web Services geht, ist die vom neuen COM+-SOAP-Service gebotene Funktionalität, COM-Objekte über SOAP und mit Hilfe des IIS als Web Service verfügbar zu machen, sehr interessant. Dies erfolgt ohne zusätzlichen Programmier- und Änderungsaufwand am COM-Objekt und ist ein guter Ansatz ältere in COM erstellte Funktionalität wieder zu verwenden und die Vorteile von Web Services zu nutzen.

Auch zusätzliche Debug-Funktionalität wurde geschaffen. Laufende Prozessdaten können bei Eintritt eines Fehlers in eine Datei gespeichert werden, ohne den Prozess zu beenden. Dies hilft Fehlern, die nur während der Laufzeit einer Anwendung auftreten, auf die Spur zu kommen.

Anwendungs- und Infrastrukturdienste
Windows Server 2003 kann mit vielen schon bekannten Diensten in den neuesten Versionen aufwarten. Zu nennen wären hier zum Beispiel Clustering, Terminal Services, Routing und Remote Access und Media Services.

Hervorzuheben sind dabei das erstmals grafisch ausgeführte Benutzerinterface für das Network Load Balancing, welches die Erstellung von NLB Clustern erleichtert, sowie der gegenüber Windows 2000 Server verbesserte "Manage Your Server"-Assistent, welcher Serverrollen zur Konfiguration anbietet. Software und Dienste werden erst hinzu installiert, wenn die Aufgabe (Rolle) des Servers sie benötigt. Dies kommt den Anforderungen der Praxis im Rechenzentrum erheblich näher, ist sicherer und spart darüber hinaus Zeit.

Bemerkenswert ist zudem die Einführung eines POP3-Dienstes, mit dem es nun auch möglich ist, ohne Microsoft Exchange auf dem Windows Server 2003 Windows Server 2003Mailboxen zu verwalten. So können vor allem Anwendungen, die aus Sicherheitsgründen in einer DMZ (demilitarisierten Zone) stehen, ohne den zusätzlichen Overhead eines dedizierten Mailservers auf die Vorteile der E-Mail-Protokolle SMTP/POP3 zur Kommunikation zurückgreifen.

Leider müssen der SMTP- und der POP3-Service dabei noch etwas umständlich, weil getrennt, im IIS-Manager und dem POP3-Snap-In der Management Console verwaltet werden.

Vergleich mit den Anwendungsanforderungen

Hochverfügbarkeit - Windows Server 2003 Windows Server 2003muss sicher noch im Betrieb unter Beweis stellen ob dieses Kriterium erfüllt werden kann. Konzeptuell ist jedoch einiges an neuer Funktionalität vorhanden, um dies umzusetzen. Der Microsoft Cluster Service und NLB sind seit Windows 2000 bekannt und die zusätzlichen Monitoring- und Prozessrecycling Features schließen lang vermisste Lücken für den Administrator. Auch die auf ein Minimum reduzierte Standardinstallation kommt diesem Thema zugute.

Sicherheit - Eine der wichtigsten Neuerungen im Sicherheitsbereich ist der Schritt zum neuen Minimalismus des Server-Betriebssystems. Es werden nur die von der jeweiligen Serverrolle benötigten Dienste installiert, und kritische Funktionalität muss, wie z.B. die Frontpage Extensions im IIS, explizit freigeschaltet werden.

Microsoft folgt hier den bekannten Vorschlägen vieler Sicherheitsexperten. Zusammen mit dem aus Windows 2000 Server bewährten und natürlich auch in Windows Server 2003 Windows Server 2003vorhandenen Sicherheitsmechanismen wie Kerberos, PKI, SSL, IPSec, etc. lassen sehr sichere Systeme entstehen. Neu ist bei Windows Server 2003 die Integration in .NET Passport, welche sich aber im Markt noch nicht als Authentifzierungsmechanismus durchsetzen konnte.

Unterstützung von Internet-Standards - Die Unterstützung der W3C- und anderer branchenüblicher Standards ist in Windows Server 2003 stark ausgeprägt. An manchen Stellen wie beim XML/SOAP-Handling sogar vorbildlich. Damit und durch die Unterstützung von IP Version 6 bleiben in diesem Segment kaum Wünsche offen.

Skalierbarkeit - Um auch für Lastspitzen bei Internet Anwendungen gut gerüstet zu sein, hat sich in der Vergangenheit die Verwendung von Network Load Balancing Clustern bewährt. Diese Funktionalität ist durch das neue grafische Benutzerinterface einfacher zu bedienen. Zusätzlich können jetzt auch durch Application Pools im IIS 6.0 oder COM+ 1.5 weitere lokale Skalierungsoptionen genutzt werden.

Administration und Wartung - Die von Windows Server 2003 bereitgestellte Funktionalität ist um einige Stufen granularer sowie auf die Bedürfnisse im realen Betrieb besser abgestimmt, als die von den Bordmitteln vorangegangener MS-Serverbetriebssysteme bekannten Tools.

Es bieten sich aber leider trotzdem immer noch viele lokale Funktionalitätsinseln in den Tools, die beim Verwalten mehrerer Server umständliche Mehrarbeit erfordern. Abhilfe ist hier eventuell bei den neuen Versionen des System Management Servers bzw. des Application Center Servers in Sicht. Positiv zu bewerten ist, dass sich viele der Konfigurations-Einstellungen programmatisch oder per Script ändern und sich so in Management-Systeme einbinden lassen.

Entwickler Infrastruktur - Mit dem .NET Framework ist der Windows Server 2003 in diesem Bereich sehr gut ausgestattet. Der Entwickler findet eine betriebsfertige Plattform vor, auf der managed Code ohne zusätzlich notwendige Installationen läuft.

Enterprise Infrastruktur - Die COM+-Services 1.5 sind eine Weiterentwicklung des aus früheren Versionen bekannten COM+ Application Servers. Als zusätzlich zur bewährten Funktionalität besondere Neuerungen sind die Einführung der Anwendungspartitionen sowie der Anwendungspools zu nennen, die neue Wiederverwendungs- und Stabilitätsszenarien ermöglichen.

Abwärtskompatibilität - Um auch für ältere Anwendungen abwärtskompatibel zu sein, wurden in vielen Bereichen Kompatibilitätsmodi geschaffen. Diese sind aber leider nicht im Parallelbetrieb zu nutzen. Bei der Verwendung neuer Funktionen, wie der Skalierung mit Application Pools, muss überprüft werden, ob die Architektur der älteren Anwendung, z.B. einer Single-Threaded Anwendung, für diesen Zweck geeignet ist.

Zusammenfassung

Windows Server 2003 ist ein modernes Server-Betriebssystem, welches sich aufgrund seiner Eigenschaften in allen wichtigen Punkten den Erfordernissen derzeitiger Lösungen stellen kann. Im Vergleich mit seinem Vorgänger Windows 2000 Enterprise Server bietet er nicht allein mehr Funktionalität in Bereichen wie z.B. beim Internet Server oder dem COM+ Application Server, sondern einen grundlegend anderen konzeptuellen Ansatz bei der Bereitstellung dieser Funktionalität.

Es werden nicht gleich weite Teile der Gesamtfunktionalität installiert wie unter Windows 2000, sondern diese kann nach der durch den Benutzer definierten Serverrolle ausgewählt werden. Dies kommt Themen wie Sicherheit und Hochverfügbarkeit sehr zugute und wird sich im Alltagsbetrieb als echter Pluspunkt erweisen.

Zu verbessern ist an einigen Stellen die Integration neuer Funktionalität in die Werkzeuge. Zu wünschen wäre auch ein durchgehend eingehaltenes Bedienungs- und Wartungskonzept.
Mit der Integration der .NET-Entwicklungsinfrastruktur und der Abstimmung von grundlegenden Diensten wie IIS und COM+ auf diese, stellt er im Moment die ideale Plattform für neue .NET Anwendungen und Web Services dar.

Damit ist der Windows Server 2003 nicht allein Modellpflege. Es wurden wichtige Kundenbedürfnisse in Hinsicht auf Sicherheit und Stabilität adressiert und viel an zusätzlicher Infrastruktur im Bereich der Entwicklung von Anwendungen und auch für Betrieb und Wartung geschaffen.


Anzeigen:
© 2015 Microsoft