creasoft - einführung windows communication foundation

37
Software: Planen. Entwickeln. Testen. Start Kurzvorstellung WCF Windows Communication Foundation (Indigo)

Upload: creasoft-ag

Post on 04-Jul-2015

1.150 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Start

Kurzvorstellung

WCF

Windows Communication Foundation(Indigo)

Page 2: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Agenda

• Historische Entwicklung der Kommunikation• Verteilte Anwendungen • Was ist WCF?• WCF Architektur• Wie funktioniert WCF?• Demo1• Wie verwende ich WCF?• Demo2 ... 5• .NET Remoting vs. WCF, Migration, Performance• Zukunft von WCF

Page 3: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Historische Entwicklung der Applikations-Kommunikation

Page 4: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Historische Entwicklung der Applikations-Architektur

Page 5: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Historische Entwicklung der Anwendungen

Page 6: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Anforderungen verteilter Anwendungen

• Implementiere Geschäftlogik soll auch von anderen Anwendungen verwendet werden können.

• Verschiedenartige Kommunikations-anforderungen (Interoperabilität, Security, Leistung)

Page 7: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Was ist WCF?

• Kommunikationsplattform für verteilte Anwendungen• Vereinheitlichung verschiedener

Kommunikationstechnologien (XML-Webservices, Remoting, MSMQ, COM+, NamedPipes)

• Funktionsunterstützung für Authentifizierung, Verschlüsselung, Transaktionen und Zuverlässigkeit

• Serviceorientierte Architektur, geringe Kopplung, Protokollunabhängig

• Erweiterbar

Page 8: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF Unified Framework

• ASMX (WebService) plattformübergreifend

• Remotingeng gekoppelte .NET to .NET Anwendungen

• Enterprise ServicesCOM+, verteilte Transaktionen

• WSE (WebService Extensions)WS-* Spezifikationen (Security, Transaction, …)

• MessagingMSMQ (garantierte Datenlieferung, Entkoppelung Arbeitslast), Named Pipes

Page 9: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-Kommunikation

• Dienstorientiert• WCF-Client und WCF-Dienst

interagieren über SOAP• Für hohe Leistungen kann eine

optimierte Binärversion von SOAP konfiguriert werden-> Durchsatz + 25%

• WCF ist eine der schnellsten verteilten Anwendungs-plattformen

Page 10: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF im .NET Framework

• Erste Funktionalität für Fernaufrufe in .Net 1.0 (Remoting und XML-WebServices)

• Vollständig und Vereinheitlicht seit .NET 3.0

Page 11: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-Architektur

• 4 Hauptebenen der Architektur von WCF

Page 12: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Vertrags-Ebene

• Definiert die verschiedenen Aspekte des Nachrichtensystems

• Datenvertrag-> beschreibt die Nachrichtenparameter

• Nachrichtenvertrag-> beschreibt bestimmte Nachrichtenteile (SOAP)

• Dienstvertrag-> beschreibt die Methodensignaturen des Dienstes

• Richtlinien-> z.B. Sicherheitsanforderungen

• Bindungen-> verwendeten Transport (HTTP, TCP) und Protokoll

Page 13: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Dienstlaufzeit-Ebene

• Steuert das Verhalten während der Laufzeit

• Einschränkungsverhalten-> steuert wie viele Nachrichten verarbeitet werden

• Fehlerverhalten-> steuert wie bei internen Dienstfehler reagiert wird

• Metadatenverhalten-> steuert was öffentlich verfügbar gemacht wird

• Instanzverhalten-> steuert mit wie vielen Instanzen des Dienstes verarbeitet wird

• Transaktionsverhalten-> steuert Rollback von durchgeführten Vorgängen im Falle eines Fehlers

Page 14: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Messaging-Ebene

• Besteht aus Kanälen• Es gibt 2 Arten von Kanälen• Transportkanäle

-> lesen und schrieben Nachrichten aus den Netzwerk (teilweise mit Encoder)

• Protokollkanäle-> implementieren Nachrichtenverarbeitungs-protokolle. Erfolgt häufig durch lesen oder schreiben zusätzlicher Headers (WS-Security, WS-Reliability)

Page 15: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Aktivierungs- und Hosting Ebene

• WCF-Dienste können verschieden gehostet werden:– EXE (Selbsthostung)– IIS– WindowsService– WAS (ermöglicht

automatischen Start des Dienstes)

Page 16: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-Systemanforderungen

• Standardmässig auf Vista installiert• Kann auch auf XP Professional SP2 und

Server2003 installiert werden

Page 17: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Wie funktioniert WCF?

• Endpunkte• ABC• Verhalten

Page 18: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-Endpunkte

• Endpunkte– Einen pro Client– Einen oder mehrere pro Service– Beinhalten jeweils die Eigenschaften ABC

Client Service

EndpointEndpoint

Endpoint

Endpoint

Page 19: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-ABC

• Address -> Wo? URL mit Pfad und Port• Binding -> Wie? Kanal und Protokoll• Contract -> Was? Methoden und Daten

Client ServiceCBA

CBA

CBA

ABC

Address Binding Contract

Page 20: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

WCF-Verhalten

• Das Laufzeitverhalten (Behaviour) des Services ist genau steuerbar– Instanzierung– Parallelität (Concurrency)– Drosselung– Transaction– Security– …

Client ServiceCBA

CBA

CBA

ABC

Behaviour

BV

Page 21: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Demo 1

WCFTestClient

Endpoints

Page 22: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Wie verwende ich WCF?

Page 23: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

1. Contract definieren

Page 24: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

2. Service implementieren

Page 25: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

3. Endpunkte definieren

Page 26: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

4. Service hosten

Page 27: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

5. Proxy erzeugen

Page 28: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

6. Endpunkt wählen

Page 29: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Demo 2

WCF Service und Client erstellen

Page 30: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Demo 3

WCF-Instancing

Page 31: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Demo 4

WCF-Throttling

Page 32: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Demo 5

WCF-Transacted (MSMQ)

Page 33: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Koexistenz .NET Remoting und WCF

• .NET Remoting und WCF können parallel verwendet (side-by-side)

• Paralleler Einsatz sogar innerhalb derselben Applikation oder derselben AppDomain.

• Man kann sogar serverseitige Objekte erzeugen, welche von .NET Remoting und WCF verwendet werden.

Page 34: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Migration .NET Remoting nach WCF

• Ist für die meisten Applikationen ein einfaches Vorgehen in 3 Schritten:– Interface Contracts mit [ServiceContract] und

[OperationContract] markieren– Datenstrukturen mit [DataContract] und

[DataMember] markieren– Evtl. Activation Model von Client Activated

Objects (CAO) auf Server Activated Objects (SAO) umstellen

Page 35: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Performancevergleich .NET Remoting vs. WCF

• Client and Server are both placed on a single machine

Server• The service in general:

- contains one method that takes one argument and returns DataSet (the DataSet contains as many rows as method argument says)- DataSet contains 4 columns - ID (long), Name (string), Description (string) and CreatedOn (DateTime)

• The .Net Remoting version of the service:- it's a wellknown server activated object with SingleCall activation mode- the channel is TCP with binary serialization

• The WCF version of the service:- it uses netTcpBinding

Client• Invokes each of the service (WCF and Remoting) 100

times on a single thread (sequential invocation in a loop)

• Passes to the service number of rows to generate in the DataSet (1, 100 and 200)

• I measured creation of the service proxy, method invocation and proxy close (with WCF service)

Page 36: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

Zukunft von WCF

• Microsoft entwickelt leistungsfähigen Applikationsserver für verteilte .NET Anwendungen– Windows Server Codename DUBLIN– .NET Framework 4.0

• WCF und WF sind zentrale Konzepte davon• Verfügbar: In den nächsten Jahren

Page 37: Creasoft - Einführung Windows Communication Foundation

Software: Planen. Entwickeln. Testen.

EndeDanke für die Aufmerksamkeit!