6. Anforderungen verteilter
Anwendungen
• Implementiere
Geschäftlogik soll auch
von anderen
Anwendungen verwendet
werden können.
• Verschiedenartige
Kommunikations-
anforderungen
(Interoperabilität,
Security, Leistung)
Software: Planen. Entwickeln. Testen.
7. 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
Software: Planen. Entwickeln. Testen.
9. 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
Software: Planen. Entwickeln. Testen.
10. 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
Software: Planen. Entwickeln. Testen.
11. WCF-Architektur
• 4 Hauptebenen der
Architektur von WCF
Software: Planen. Entwickeln. Testen.
12. 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
Software: Planen. Entwickeln. Testen.
13. 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
Software: Planen. Entwickeln. Testen.
14. 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)
Software: Planen. Entwickeln. Testen.
15. Aktivierungs- und Hosting Ebene
• WCF-Dienste können
verschieden gehostet
werden:
– EXE (Selbsthostung)
– IIS
– WindowsService
– WAS (ermöglicht
automatischen Start
des Dienstes)
Software: Planen. Entwickeln. Testen.
18. WCF-Endpunkte
Client Service
Endpoint
Endpoint Endpoint
Endpoint
• Endpunkte
– Einen pro Client
– Einen oder mehrere pro Service
– Beinhalten jeweils die Eigenschaften ABC
Software: Planen. Entwickeln. Testen.
19. WCF-ABC
Client Service
A B C
C B A A B C
A B C
Address Binding Contract
• Address -> Wo? URL mit Pfad und Port
• Binding -> Wie? Kanal und Protokoll
• Contract -> Was? Methoden und Daten
Software: Planen. Entwickeln. Testen.
20. WCF-Verhalten
Client Service
A B C
C B A A B C
A B C
BV
Behaviour
• Das Laufzeitverhalten (Behaviour) des Services ist genau steuerbar
– Instanzierung
– Parallelität (Concurrency)
– Drosselung
– Transaction
– Security
– …
Software: Planen. Entwickeln. Testen.
33. 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.
Software: Planen. Entwickeln. Testen.
34. 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
Software: Planen. Entwickeln. Testen.
35. 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)
Software: Planen. Entwickeln. Testen.
36. 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
Software: Planen. Entwickeln. Testen.
37. Ende
Danke für die Aufmerksamkeit!
Software: Planen. Entwickeln. Testen.