WCF Einführung

19
Vertriebssysteme / CRM Johannes Hoppe Dipl. Inf. (FH) Johannes Hoppe SRH Hochschule Heidelberg Fachbereich Informatik

description

Erwerbung von Grundkenntnissen in der Anwendungsentwicklung mit der Windows Communication Foundation

Transcript of WCF Einführung

Page 1: WCF Einführung

Vertriebssysteme / CRMJohannes HoppeDipl. Inf. (FH) Johannes Hoppe

SRH Hochschule HeidelbergFachbereich Informatik

Page 2: WCF Einführung

Dipl. Inf. (FH) Johannes Hoppe

MSP – WCF Vorlesung25.03.2009

90 Minuten, 8 Teilnehmer

Page 3: WCF Einführung

3

Vorlesungsinhalt

Ziel des praktischen Teils:Erwerbung von Grundkenntnissen in der Anwendungsentwicklung mit der Windows Communication Foundation

Vorraussetzungen

• C# 3.0 / .NET 3.0 Grundkenntisse

• Microsoft Visual Studio 2005 / 2008

Vertriebssysteme / CRM

Page 4: WCF Einführung

4

Einführung

Windows Communication Foundation (WCF):

- Laufzeitumgebung

- erlaubt es .NET CLR Typen für eine verteilte Kommunikation zu

veröffentlichen (d.h. als Service zu agieren)

- andere Services wie Applikations-eigene .NET CLR Typen zu

konsumieren

SOAP

Vertriebssysteme / CRM

Page 5: WCF Einführung

5

Einführung

Windows Communication Foundation (WCF):

- Vorgänger:- Enterprise Services“ (Namespace: System.EnterpriseServices), - „.NET Remoting“ (Namespace: SystemRuntime. Remoting)- ASP.NET Web Services (Namespace: System.Web.Services)- MSMQ (Microsoft Message Queuing – Namespace:

System.Messaging)

- unterstützt eine Vielzahl von Protokollen und bleibt so zu älteren

Systemen abwärtskompatibel!

Vertriebssysteme / CRM

Page 6: WCF Einführung

6

Einführung

Vertriebssysteme / CRM

Page 7: WCF Einführung

7

Endpunkte

- das Prinzip des Endpunkts

- Endpunkt: „Anfang oder das Ende eines Nachrichtenaustauschs

zwischen zwei verteilten Anwendungen“

Vertriebssysteme / CRM

Page 8: WCF Einführung

8

Endpunkte

- Endpunkt beschreibt drei grundlegende Aspekte

1. den Ort

2. die Art und

3. den inhaltlichen Rahmen der Kommunikation

Vertriebssysteme / CRM

A – Address (Adresse)

B – Binding (Anbindung)

C – Contract (Vertrag)

Page 9: WCF Einführung

9

Kommunikationsmuster

- Auch Message Exchange Patterns, „MEP“s

1. Request-Reply

2. Einweg

3. Duplex

Request-Reply

Vertriebssysteme / CRM

Page 10: WCF Einführung

10

Kommunikationsmuster

Einweg

Duplex

Vertriebssysteme / CRM

Page 11: WCF Einführung

11

Hosting und Instanzen

Hosting:

- innerhalb einer eigenen Anwendung (Self-Hosting)

- Webserver „IIS“ / Service Host in einer ASP.NET Anwendung

- IIS-Dienst „Windows Activation Service“ (WAS)

Vertriebssysteme / CRM

Page 12: WCF Einführung

12

Instanzen

Per-Session Service:

• Standardeinstellungen von WCF

• Client und Server treten in eine Session (Sitzung)

• Jede Sitzung verbleibt bis zum zu ihrem Ende im Arbeitsspeicher

• Pro Sitzung gibt es eine spezielle Service-Instanz die sich in

einem eigenen Context (Gültigkeitsbereich) befindet.

[ServiceBehavior(InstanceContextMode =

InstanceContextMode.PerSession)]

Vertriebssysteme / CRM

Page 13: WCF Einführung

13

Instanzen

Per-Session Service:

Vertriebssysteme / CRM

Hostender Prozess

App Domain (~ Pseudo-Prozess)

Service Host Theoretisch möglicher 2. Service Host

Context

Service-Instanz

Context

Service-Instanz

Context

Service-Instanz

Endpunkte

[ … ]

Page 14: WCF Einführung

14

Instanzen

Per-Call Service:

• auf Sitzungen verzichten.

• Statt der Beibehaltung der Daten im Arbeitsspeicher wird für

jeden Methodenaufruf eine Service-Instanz erzeugt

• Der Arbeitsspeicher wird aufgeräumt, alle normalen Member-

Variablen gehen wieder verloren

• Consumer merkt nichts von der verworfenen Instanz: Service

Host lässt alle Verbindungen über einen Proxy bestehe

Peformance-Empfehlung

[ServiceBehavior(InstanceContextMode =

InstanceContextMode.PerCall)]

Vertriebssysteme / CRM

Page 15: WCF Einführung

15

Instanzen

Per-Call Service:

• auf Sitzungen verzichten.

• Statt der Beibehaltung der Daten im Arbeitsspeicher wird für

jeden Methodenaufruf eine Service-Instanz erzeugt

• Der Arbeitsspeicher wird aufgeräumt, alle normalen Member-

Variablen gehen wieder verloren

• Consumer merkt nichts von der verworfenen Instanz: Service

Host lässt alle Verbindungen über einen Proxy bestehe

Peformance-Empfehlung

[ServiceBehavior(InstanceContextMode =

InstanceContextMode.PerSession)]

Vertriebssysteme / CRM

Page 16: WCF Einführung

16

Instanzen

Per-Call Service:

- parallel ablaufende Per-Call Services:

[ServiceBehavior(ConcurrencyMode =

ConcurrencyMode.Multiple)]

- Vorsicht: Zugriff auf gemeinsam genutzte Variablen

- Locks notwendig

Deadlocks können entstehen

Vertriebssysteme / CRM

Page 17: WCF Einführung

17

Instanzen

Singleton Service:

• exakt eine Service-Instanz, die für alle Anfragen verwendet wird

• Bleibt bis zur Beendung des Service Host aktiv

• sind prinzipiell nicht skalierbar

• sollten nur in begründeten Fällen eingesetzt werden!

• z.B. Windows Dienst Tray Applikation (muss nicht skalieren)

[ServiceBehavior(InstanceContextMode =

InstanceContextMode.Single)]

Vertriebssysteme / CRM

Page 18: WCF Einführung

18

Los geht’s!

Vertriebssysteme / CRM

Wir bauen uns einen Webservice mit Consumer!

Page 19: WCF Einführung

Dipl. Inf. (FH) Johannes Hoppe

Vielen Dank für eure Aufmerksamkeit!

ENDE