Für serviceorientierte Architekturen wichtig.Dafür gibt es das Windows Communication Foundation (WCF) Toolset, dadurch können WCF-basierte Dienste in einem beliebigen Windows-Prozess gehostet werden (Windows-Forms, Konsolenanwendung oder ähnliches). Die Gegenstelle ist der Windows Prozessaktivierungsdienst der mit Vista /Server 2008 eingeführt wurde.
Architektur des IIS 6.0
Im IIS 6.0 wartet ein HTTP Listener (im W3SVC-Dienst) auf HTTP-Anfrage. Empfängt dieser Nachrichten, leitet er diese an einen Arbeitsprozess weiter der den entsprechenden Anwendungscode hostet. Von diesem Arbeitsprozess wird schließlich die Anforderung verarbeitet. Die Identifizierung des Anwedungspools erfolgt durch den W3SVC-Dienst dabei durch den Request URI (Unified Resource Identifier). Die Zuordnung zwischen URI und Anwendungspool ist in der IIS-Metabasis gespeichert.
Es gibt nun zwei Möglichkeiten die zum Zeitpunkt der Übergabe der Daten an den Anwendungspool auftreten können:
1. es existiert bereits eine Anforderung für den Anwendungspool: es ist keine Aktivierung notwendig
2. es existiert keine Anforderung für den Anwendungspools:
Der HTTP-Listener muss, bevor die Daten weitergeleitet werden, eine neue Instanz von w3wp erzeugen.
Windows Prozessaktivierungsdienst im IIS 7.0
Im IIS 6.0 war der W3SVC-Dienst zum einen Listener für HTTP-Datenverkehr und zugleich für die Aktivierung von Anwendungspools verantwortlich. Im IIS 7.0 sind diese beiden Aufgaben auf zwei unterschiedliche Dienste aufgespalten worden
- W3SVC-Dienst: fungiert weiter als HTTP-Listener
- Windows Prozessaktivierungsdienst: alle Komponenten die für Konfiguration und Prozessaktivierungen zuständig sind
Der W3SVC-Dienst empfängt wie gewohnt HTTP-Anfragen und übergibt diese dann jedoch an die Listeneradapterschnittstelle des WAS. WCF sendet dagegen alle nicht-HTTP-Anfragen an den Listeneradapter des WAS. Dazu wird die SMSvcHost.exe verwendet.
WCF im IIS 7.0 hat folgende Nicht-HTTP-Protokolle: TCP, Named Pipes, MSMQ
- NetTcpPortSharing: mehrere Dienste können den selben TCP Port abhören
- NetTcpActivator: übermittelt TCP-Aktivierungsanforderungen an den Windows Prozessaktivierungsdienst (WAS)
- NetPipeActivator: übermittelt Named Pipe-Aktivierungsanforderungen an den Windows Prozessaktivierungsdienst (WAS)
- NetMsmqActivator: übermittelt MSMQ-Aktivierungsanforderungen an den Windows Prozessaktivierungsdienst (WAS)
Damit nun der Listener weiß, welche Anwendungen vorhanden sind meldet er sich beim Start beim Windows Prozessaktivierungsdienst. Vereinfacht ausgedrückt meldet er sich dass er TCP nun abhört und der WAS ihm Informationen geben soll welche Informationen für welche Anwendung benötigt werden um eine Kommunikation herzustellen.
Fazit zum Windows Prozessaktivierungsdienst (WAS)
Der Windows Prozessaktivierungsdienst ist daher ein guter Schritt um serviceorientierte Architekturen im Unternehmen aufzubauen. Durch ihn können einfache Servicedienste auf Servern zur Verfügung gestellt werden und es muss nicht ein kompletter IIS betrieben werden. Ebenfalls können Anwendungen einfache Dienste über den Prozessaktivierungsdienst im Netzwerk zur Verfügung stellen.