Hosting in windows procesactiveringsservice
De Windows Process Activation Service (WAS) beheert de activering en levensduur van de werkprocessen die toepassingen bevatten die WCF-services (Windows Communication Foundation) hosten. Het WAS-procesmodel generaliseert het IIS 6.0-procesmodel voor de HTTP-server door de afhankelijkheid van HTTP te verwijderen. Hierdoor kunnen WCF-services zowel HTTP- als niet-HTTP-protocollen, zoals Net.TCP, gebruiken in een hostingomgeving die ondersteuning biedt voor activering op basis van berichten en de mogelijkheid biedt om een groot aantal toepassingen op een bepaalde computer te hosten.
Zie How to: Host a WCF Service in WAS voor meer informatie over het bouwen van een WCF-service die wordt uitgevoerd in de WAS-hostingomgeving.
Het WAS-procesmodel biedt verschillende functies waarmee toepassingen kunnen worden gehost op een manier die robuuster, beter beheerbaar is en die efficiënt gebruikmaakt van resources:
Activering op basis van berichten van toepassingen en werkprocestoepassingen wordt dynamisch gestart en gestopt als reactie op binnenkomende werkitems die binnenkomen via HTTP- en niet-HTTP-netwerkprotocollen.
Robuuste toepassings- en werkprocesrecycling om de status van actieve toepassingen te behouden.
Gecentraliseerde toepassingsconfiguratie en -beheer.
Hiermee kunnen toepassingen profiteren van het IIS-procesmodel zonder dat de implementatievoetafdruk van een volledige IIS-installatie vereist is.
Windows Server AppFabric werkt met IIS 7.0 en Windows Process Activation Service (WAS) om een uitgebreide omgeving voor toepassingshosting te bieden voor NET4 WCF- en WF-services. Deze voordelen zijn onder andere proceslevenscyclusbeheer, procesrecycling, gedeelde hosting, snelle bescherming tegen fouten, zwevende processen, activering op aanvraag en statuscontrole. Zie AppFabric Hosting Features and AppFabric Hosting Concepts voor gedetailleerde informatie.
Elementen van het WAS-adresseringsmodel
Toepassingen hebben URI-adressen (Uniform Resource Identifier), de code-eenheden waarvan de levensduur en uitvoeringsomgeving worden beheerd door de server. Eén WAS-serverexemplaren kunnen worden gebruikt voor veel verschillende toepassingen. Servers organiseren toepassingen in groepen die sites worden genoemd. Binnen een site worden toepassingen op een hiërarchische manier gerangschikt die de structuur van de URI's weerspiegelt die fungeren als hun externe adressen.
Toepassingsadressen hebben twee delen: een basis-URI-voorvoegsel en een toepassingsspecifiek, relatief adres (pad), dat het externe adres voor een toepassing opgeeft wanneer deze wordt samengevoegd. Het basis-URI-voorvoegsel wordt samengesteld op basis van de sitebinding en wordt gebruikt voor alle toepassingen onder de site. Toepassingsadressen worden vervolgens samengesteld door toepassingsspecifieke padfragmenten (zoals '/applicationOne') te gebruiken en toe te voegen aan het basis-URI-voorvoegsel (bijvoorbeeld 'net.tcp://localhost') om de volledige toepassings-URI te bereiken.
De volgende tabel illustreert verschillende mogelijke adresseringsscenario's voor WAS-sites met zowel HTTP- als niet-HTTP-sitebindingen.
Scenario | Sitebindingen | Application path | Basistoepassings-URI's |
---|---|---|---|
Alleen HTTP | http: *:80:* | /appTwo | http://localhost/appTwo/ |
Zowel HTTP als Niet-HTTP | http: *:80:* net.tcp: 808:* |
/appTwo | http://localhost/appTwo/ net.tcp://localhost/appTwo/ |
Alleen niet-HTTP | net.pipe: * | /appThree | net.pipe://appThree/ |
Services en resources binnen een toepassing kunnen ook worden aangepakt. Binnen een toepassing worden toepassingsbronnen geadresseerd ten opzichte van het pad van de basistoepassing. Stel dat een site op een computernaam contoso.com sitebindingen heeft voor zowel http- als Net.TCP-protocollen. Stel ook dat de site één toepassing bevat die zich bevindt op /Billing, waarmee een service beschikbaar wordt gemaakt op GetOrders.svc. Als de GetOrders.svc-service vervolgens een eindpunt beschikbaar heeft gesteld met een relatief adres van SecureEndpoint, wordt het service-eindpunt weergegeven op de volgende twee URI's:
http://contoso.com/Billing/GetOrders.svc/SecureEndpoint
net.tcp://contoso.com/Billing/GetOrders.svc/SecureEndpoint
De WAS-runtime
Toepassingen zijn ingedeeld in sites voor adressering en beheer. Tijdens runtime worden toepassingen ook gegroepeerd in toepassingsgroepen. Een groep toepassingen kan veel verschillende toepassingen van veel verschillende sites bevatten. Alle toepassingen in een groep van toepassingen delen een gemeenschappelijke set runtimekenmerken. Ze worden bijvoorbeeld allemaal uitgevoerd onder dezelfde versie van de Common Language Runtime (CLR) en ze delen allemaal een gemeenschappelijke procesidentiteit. Elke groep van toepassingen komt overeen met een exemplaar van een werkproces (w3wp.exe). Elke beheerde toepassing die in een gedeelde groep van toepassingen wordt uitgevoerd, is geïsoleerd van andere toepassingen door middel van een CLR AppDomain.