SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Kurzvorstellung
                                                          Start




                                           WCF
                   Windows Communication Foundation
                              (Indigo)



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


Software: Planen. Entwickeln. Testen.
Historische Entwicklung der
              Applikations-Kommunikation




Software: Planen. Entwickeln. Testen.
Historische Entwicklung der
                        Applikations-Architektur




Software: Planen. Entwickeln. Testen.
Historische Entwicklung der
                        Anwendungen




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)


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




Software: Planen. Entwickeln. Testen.
WCF Unified Framework
                                        • ASMX (WebService)
                                          plattformübergreifend
                                        • Remoting
                                          eng gekoppelte .NET to .NET
                                          Anwendungen
                                        • Enterprise Services
                                          COM+, verteilte Transaktionen
                                        • WSE (WebService Extensions)
                                          WS-* Spezifikationen (Security,
                                          Transaction, …)
                                        • Messaging
                                          MSMQ (garantierte
                                          Datenlieferung, Entkoppelung
                                          Arbeitslast), Named Pipes



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




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



Software: Planen. Entwickeln. Testen.
WCF-Architektur

                                                • 4 Hauptebenen der
                                                  Architektur von WCF




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



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




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)


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)


Software: Planen. Entwickeln. Testen.
WCF-Systemanforderungen

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




Software: Planen. Entwickeln. Testen.
Wie funktioniert WCF?

• Endpunkte
• ABC
• Verhalten




Software: Planen. Entwickeln. Testen.
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.
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.
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.
Demo 1

                                        WCFTestClient
                                         Endpoints



Software: Planen. Entwickeln. Testen.
Wie verwende ich WCF?




Software: Planen. Entwickeln. Testen.
1. Contract definieren




Software: Planen. Entwickeln. Testen.
2. Service implementieren




Software: Planen. Entwickeln. Testen.
3. Endpunkte definieren




Software: Planen. Entwickeln. Testen.
4. Service hosten




Software: Planen. Entwickeln. Testen.
5. Proxy erzeugen




Software: Planen. Entwickeln. Testen.
6. Endpunkt wählen




Software: Planen. Entwickeln. Testen.
Demo 2

                           WCF Service und Client erstellen




Software: Planen. Entwickeln. Testen.
Demo 3

                                        WCF-Instancing




Software: Planen. Entwickeln. Testen.
Demo 4

                                        WCF-Throttling




Software: Planen. Entwickeln. Testen.
Demo 5

                                        WCF-Transacted (MSMQ)




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.


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


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)




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


Software: Planen. Entwickeln. Testen.
Ende
         Danke für die Aufmerksamkeit!




Software: Planen. Entwickeln. Testen.

Weitere ähnliche Inhalte

Andere mochten auch (14)

Infocamp forschung
Infocamp forschungInfocamp forschung
Infocamp forschung
 
HUI - Werben mit modernen Medien
HUI - Werben mit modernen MedienHUI - Werben mit modernen Medien
HUI - Werben mit modernen Medien
 
Social
SocialSocial
Social
 
HTW/SS2011 SocialMediaBasics (3)
HTW/SS2011 SocialMediaBasics (3)HTW/SS2011 SocialMediaBasics (3)
HTW/SS2011 SocialMediaBasics (3)
 
Trends im Zahlungsverkehr Dr Hansjörg Leichsenring
Trends im Zahlungsverkehr Dr Hansjörg LeichsenringTrends im Zahlungsverkehr Dr Hansjörg Leichsenring
Trends im Zahlungsverkehr Dr Hansjörg Leichsenring
 
Mehre munir
Mehre munirMehre munir
Mehre munir
 
schau.gmuend Nr.7
schau.gmuend Nr.7schau.gmuend Nr.7
schau.gmuend Nr.7
 
Energie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der StraßenbeleuchtungEnergie-Effizienz und EMV in der Straßenbeleuchtung
Energie-Effizienz und EMV in der Straßenbeleuchtung
 
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
 
Biren.Refs
Biren.RefsBiren.Refs
Biren.Refs
 
2. analisis-de-problemas-y-obj
2. analisis-de-problemas-y-obj2. analisis-de-problemas-y-obj
2. analisis-de-problemas-y-obj
 
Statistik – Wahrheit, Lüge oder Irrtum?
Statistik – Wahrheit, Lüge oder Irrtum?Statistik – Wahrheit, Lüge oder Irrtum?
Statistik – Wahrheit, Lüge oder Irrtum?
 
Zum Wiki Format2
Zum Wiki Format2Zum Wiki Format2
Zum Wiki Format2
 
GLOSARIO_DE_REDES
GLOSARIO_DE_REDESGLOSARIO_DE_REDES
GLOSARIO_DE_REDES
 

Ähnlich wie Creasoft - Einführung Windows Communication Foundation

Portale 2.0 mit Liferay
Portale 2.0 mit LiferayPortale 2.0 mit Liferay
Portale 2.0 mit Liferayinovex GmbH
 
4 Tools fuer das soziale Intranet
4 Tools fuer das soziale Intranet4 Tools fuer das soziale Intranet
4 Tools fuer das soziale IntranetHIRSCHTEC
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeKremer Consulting
 
Top 10 Mistakes of Internet Project Management (2001)
Top 10 Mistakes of Internet Project Management (2001)Top 10 Mistakes of Internet Project Management (2001)
Top 10 Mistakes of Internet Project Management (2001)Jürg Stuker
 
micro services
micro servicesmicro services
micro servicessmancke
 
BPMN und Workflows in .NET
BPMN und Workflows in .NETBPMN und Workflows in .NET
BPMN und Workflows in .NETBernd Ruecker
 
Technologien 2011 Einblick in die Zukunft von Citrix
Technologien 2011 Einblick in die Zukunft von CitrixTechnologien 2011 Einblick in die Zukunft von Citrix
Technologien 2011 Einblick in die Zukunft von CitrixDigicomp Academy AG
 
Die Bedeutung der Diagnose in der Fahrzeugentwicklung
Die Bedeutung der Diagnose in der FahrzeugentwicklungDie Bedeutung der Diagnose in der Fahrzeugentwicklung
Die Bedeutung der Diagnose in der FahrzeugentwicklungSchleissheimer GmbH
 
Technische Dokumentation in der Cloud - Rolf Keller
Technische Dokumentation in der Cloud - Rolf KellerTechnische Dokumentation in der Cloud - Rolf Keller
Technische Dokumentation in der Cloud - Rolf Kellertecom
 
Projekte und Produkte in Python
Projekte und Produkte in PythonProjekte und Produkte in Python
Projekte und Produkte in PythonAndreas Schreiber
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systemerdmeyer
 
Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Christian Baranowski
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
NEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOANEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOAUniserv
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche1&1
 

Ähnlich wie Creasoft - Einführung Windows Communication Foundation (20)

Portale 2.0 mit Liferay
Portale 2.0 mit LiferayPortale 2.0 mit Liferay
Portale 2.0 mit Liferay
 
What is new in Citrix xen App 2
What is new in Citrix xen App 2What is new in Citrix xen App 2
What is new in Citrix xen App 2
 
4 Tools fuer das soziale Intranet
4 Tools fuer das soziale Intranet4 Tools fuer das soziale Intranet
4 Tools fuer das soziale Intranet
 
Continuous Delivery as a Way of Life
Continuous Delivery as a Way of LifeContinuous Delivery as a Way of Life
Continuous Delivery as a Way of Life
 
Top 10 Mistakes of Internet Project Management (2001)
Top 10 Mistakes of Internet Project Management (2001)Top 10 Mistakes of Internet Project Management (2001)
Top 10 Mistakes of Internet Project Management (2001)
 
imatics FormEngine
imatics FormEngineimatics FormEngine
imatics FormEngine
 
micro services
micro servicesmicro services
micro services
 
BPMN und Workflows in .NET
BPMN und Workflows in .NETBPMN und Workflows in .NET
BPMN und Workflows in .NET
 
Technologien 2011 Einblick in die Zukunft von Citrix
Technologien 2011 Einblick in die Zukunft von CitrixTechnologien 2011 Einblick in die Zukunft von Citrix
Technologien 2011 Einblick in die Zukunft von Citrix
 
Voxtron Communication Center - Überblick
Voxtron Communication Center - ÜberblickVoxtron Communication Center - Überblick
Voxtron Communication Center - Überblick
 
Die Bedeutung der Diagnose in der Fahrzeugentwicklung
Die Bedeutung der Diagnose in der FahrzeugentwicklungDie Bedeutung der Diagnose in der Fahrzeugentwicklung
Die Bedeutung der Diagnose in der Fahrzeugentwicklung
 
Technische Dokumentation in der Cloud - Rolf Keller
Technische Dokumentation in der Cloud - Rolf KellerTechnische Dokumentation in der Cloud - Rolf Keller
Technische Dokumentation in der Cloud - Rolf Keller
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 
Gil2013 gridsolut public
Gil2013 gridsolut publicGil2013 gridsolut public
Gil2013 gridsolut public
 
Projekte und Produkte in Python
Projekte und Produkte in PythonProjekte und Produkte in Python
Projekte und Produkte in Python
 
Java für eingebettete Systeme
Java für eingebettete SystemeJava für eingebettete Systeme
Java für eingebettete Systeme
 
Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?Microservices – die Architektur für Agile-Entwicklung?
Microservices – die Architektur für Agile-Entwicklung?
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
NEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOANEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOA
 
Pragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das WesentlichePragmatic SOA - Beschränken auf das Wesentliche
Pragmatic SOA - Beschränken auf das Wesentliche
 

Mehr von Creasoft AG

Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft AG
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft AG
 
Creasoft c-Day 2009 - Webtechnologien der Zukunft
Creasoft c-Day 2009 - Webtechnologien der ZukunftCreasoft c-Day 2009 - Webtechnologien der Zukunft
Creasoft c-Day 2009 - Webtechnologien der ZukunftCreasoft AG
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft AG
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QSCreasoft AG
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft AG
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershellCreasoft AG
 
Creasoft - Windows Azure
Creasoft - Windows AzureCreasoft - Windows Azure
Creasoft - Windows AzureCreasoft AG
 
Creasoft Akademie - Deep dive into ASP.NET MVC
Creasoft Akademie - Deep dive into ASP.NET MVCCreasoft Akademie - Deep dive into ASP.NET MVC
Creasoft Akademie - Deep dive into ASP.NET MVCCreasoft AG
 
Creasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVCCreasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVCCreasoft AG
 

Mehr von Creasoft AG (11)

Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen ProjektenCreasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
Creasoft Akademie - Diszipliniertes Anforderungsmanagement in agilen Projekten
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus Entwicklersicht
 
Creasoft c-Day 2009 - Webtechnologien der Zukunft
Creasoft c-Day 2009 - Webtechnologien der ZukunftCreasoft c-Day 2009 - Webtechnologien der Zukunft
Creasoft c-Day 2009 - Webtechnologien der Zukunft
 
Creasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives TestenCreasoft c-Day 2011 - Exploratives Testen
Creasoft c-Day 2011 - Exploratives Testen
 
Creasoft - Software QS
Creasoft - Software QSCreasoft - Software QS
Creasoft - Software QS
 
Creasoft - Software QS Review
Creasoft - Software QS ReviewCreasoft - Software QS Review
Creasoft - Software QS Review
 
Creasoft - Windows powershell
Creasoft - Windows powershellCreasoft - Windows powershell
Creasoft - Windows powershell
 
Creasoft - Windows Azure
Creasoft - Windows AzureCreasoft - Windows Azure
Creasoft - Windows Azure
 
Creasoft Akademie - Deep dive into ASP.NET MVC
Creasoft Akademie - Deep dive into ASP.NET MVCCreasoft Akademie - Deep dive into ASP.NET MVC
Creasoft Akademie - Deep dive into ASP.NET MVC
 
Creasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVCCreasoft Akademie - Deep Dive into ASP.NET MVC
Creasoft Akademie - Deep Dive into ASP.NET MVC
 

Creasoft - Einführung Windows Communication Foundation

  • 1. Kurzvorstellung Start WCF Windows Communication Foundation (Indigo) Software: Planen. Entwickeln. Testen.
  • 2. 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 Software: Planen. Entwickeln. Testen.
  • 3. Historische Entwicklung der Applikations-Kommunikation Software: Planen. Entwickeln. Testen.
  • 4. Historische Entwicklung der Applikations-Architektur Software: Planen. Entwickeln. Testen.
  • 5. Historische Entwicklung der Anwendungen Software: Planen. Entwickeln. Testen.
  • 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.
  • 8. WCF Unified Framework • ASMX (WebService) plattformübergreifend • Remoting eng gekoppelte .NET to .NET Anwendungen • Enterprise Services COM+, verteilte Transaktionen • WSE (WebService Extensions) WS-* Spezifikationen (Security, Transaction, …) • Messaging MSMQ (garantierte Datenlieferung, Entkoppelung Arbeitslast), Named Pipes 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.
  • 16. WCF-Systemanforderungen • Standardmässig auf Vista installiert • Kann auch auf XP Professional SP2 und Server2003 installiert werden Software: Planen. Entwickeln. Testen.
  • 17. Wie funktioniert WCF? • Endpunkte • ABC • Verhalten 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.
  • 21. Demo 1 WCFTestClient Endpoints Software: Planen. Entwickeln. Testen.
  • 22. Wie verwende ich WCF? Software: Planen. Entwickeln. Testen.
  • 23. 1. Contract definieren Software: Planen. Entwickeln. Testen.
  • 24. 2. Service implementieren Software: Planen. Entwickeln. Testen.
  • 25. 3. Endpunkte definieren Software: Planen. Entwickeln. Testen.
  • 26. 4. Service hosten Software: Planen. Entwickeln. Testen.
  • 27. 5. Proxy erzeugen Software: Planen. Entwickeln. Testen.
  • 28. 6. Endpunkt wählen Software: Planen. Entwickeln. Testen.
  • 29. Demo 2 WCF Service und Client erstellen Software: Planen. Entwickeln. Testen.
  • 30. Demo 3 WCF-Instancing Software: Planen. Entwickeln. Testen.
  • 31. Demo 4 WCF-Throttling Software: Planen. Entwickeln. Testen.
  • 32. Demo 5 WCF-Transacted (MSMQ) 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.