Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Följande bild illustrerar huvudskikten i WCF-arkitekturen (Windows Communication Foundation).
WCF-arkitektur
Kontrakt och beskrivningar
Kontrakt definierar olika aspekter av meddelandesystemet. Datakontraktet beskriver varje parameter som utgör varje meddelande som en tjänst kan skapa eller använda. Meddelandeparametrarna definieras av XSD-dokument (XML Schema Definition Language) så att alla system som förstår XML kan bearbeta dokumenten. Meddelandekontraktet definierar specifika meddelandedelar med HJÄLP av SOAP-protokoll och tillåter finare kontroll över delar av meddelandet när samverkan kräver sådan precision. Tjänstkontraktet anger tjänstens faktiska metodsignaturer och distribueras som ett gränssnitt i något av de programmeringsspråk som stöds, till exempel Visual Basic eller Visual C#.
Principer och bindningar anger de villkor som krävs för att kommunicera med en tjänst. Bindningen måste till exempel (minst) ange den transport som används (till exempel HTTP eller TCP) och en kodning. Principerna omfattar säkerhetskrav och andra villkor som måste uppfyllas för att kommunicera med en tjänst.
Tjänstkörmiljö
Tjänstkörningsskiktet innehåller de beteenden som endast inträffar under den faktiska driften av tjänsten, dvs. körningsbeteenden för tjänsten. Reglering styr hur många meddelanden som behandlas, och kan justeras när efterfrågan på tjänsten ökar till en förinställd gräns. Ett felbeteende anger vad som inträffar när ett internt fel inträffar på tjänsten, till exempel genom att styra vilken information som förmedlas till klienten. (För mycket information kan ge en obehörig användare en fördel vid montering av en attack.) Metadatabeteende styr hur och om metadata görs tillgängliga för omvärlden. Instansbeteende anger hur många instanser av tjänsten som kan köras (till exempel anger en singleton endast en instans för att bearbeta alla meddelanden). Transaktionsbeteende gör det möjligt att återställa transaktionsåtgärder om ett fel inträffar. Sändningsbeteende är kontrollen över hur ett meddelande bearbetas av WCF-infrastrukturen.
Utökningsmöjligheter möjliggör att anpassa runtime-processer. Till exempel är meddelandegranskning möjligheten att inspektera delar av ett meddelande, och parameterfiltrering gör att förinställda åtgärder kan utföras baserat på filter som agerar på meddelandehuvuden.
Meddelanden
Meddelandelagret består av kanaler. En kanal är en komponent som bearbetar ett meddelande på något sätt, till exempel genom att autentisera ett meddelande. En uppsättning kanaler kallas även för en kanalstack. Kanaler arbetar med meddelanden och meddelandehuvuden. Detta skiljer sig från tjänstkörningsskiktet, som främst handlar om att bearbeta innehållet i meddelandekroppar.
Det finns två typer av kanaler: transportkanaler och protokollkanaler.
Transportkanaler läser och skriver meddelanden från nätverket (eller någon annan kommunikationspunkt med omvärlden). Vissa transporter använder en kodare för att konvertera meddelanden (som representeras som XML-informationsuppsättningar) till och från byteströmrepresentationen som används av nätverket. Exempel på transporter är HTTP, namngivna rör, TCP och MSMQ. Exempel på kodningar är XML och optimerad binär kodning.
Protokollkanaler implementerar protokoll för meddelandebearbetning, ofta genom att läsa eller skriva ytterligare rubriker i meddelandet. Exempel på sådana protokoll är WS-Security och WS-Reliability.
Meddelandelagret illustrerar möjliga format och utbytesmönster för data. WS-Security är en implementering av WS-Security-specifikationen som möjliggör säkerhet på meddelandelagret. Kanalen WS-Reliable Messaging gör det möjligt att garantera meddelandeleverans. Kodarna presenterar en mängd olika kodningar som kan användas för att passa meddelandets behov. HTTP-kanalen anger att HyperText Transport Protocol används för meddelandeleverans. TCP-kanalen anger på samma sätt TCP-protokollet. Transaktionsflödeskanalen styr transaktionsmeddelandemönster. Kanalen Named Pipe möjliggör kommunikation mellan processer. MSMQ-kanalen möjliggör samarbete med MSMQ-program.
Hosting och aktivering
I sin slutliga form är en tjänst ett program. Precis som andra program måste en tjänst köras i en körbar fil. Detta kallas för en lokalt installerad tjänst.
Tjänster kan också vara värdanpassade eller köras i en körbar fil som hanteras av en extern agent, såsom IIS eller Windows Activation Service (WAS). WAS gör att WCF-program kan aktiveras automatiskt när de distribueras på en dator som kör WAS. Tjänster kan också köras manuellt som körbara filer (.exe filer). En tjänst kan också köras automatiskt som en Windows-tjänst. COM+-komponenter kan också hanteras som WCF-tjänster.