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

WCF Einführung

Embed Size (px)

DESCRIPTION

Erwerbung von Grundkenntnissen in der Anwendungsentwicklung mit der Windows Communication Foundation

Citation preview

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