.NET Remoting und XML Web Services. Ralf Westphal

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

© 2009 ICW AG – GE Partner Enabling - title of training presentation
Studienarbeit Entwurf und Implementierung eines UPnP-Browsers
Deklarative Programmierung mit Attributen
SQL Server 2005 Übersicht für Entwickler Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Enterprise Services und COM+ 1.5 Die Applikationsserver-Infrastruktur in Windows Server 2003.
Basis-Architekturen für Web-Anwendungen
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.
© 2003 Guido Badertscher Spontane Vernetzung - UPnP 9. Jänner 2004 Spontane Vernetzung Guido Badertscher.
SOAP Simple Object Access Protocol
Lightweight Directory Access Protocol
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
AP 04/03 Komponentenprogrammierung und Middleware Vorlesung + Projekt 4 SWS mit Praktikum (6 benotete Leistungspunkte) –Studentische Vorträge in der 2-ten.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
JAVA RMI.
Introducing the .NET Framework
Seminar Internet Technologien
Remote Methode Invocation (RMI)
MSDN Webcast Visual Studio 2005 mit Visual FoxPro Jochen Kirstätter Mai 2005 –
Erstellen von WebServices mit Visual FoxPro 9.0
Björn Schmidt, Hoang Truong Nguyen
Distributed Multimedia Control Steuerung und Überwachung von Präsentationen in Netzwerken.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Seminar Praktische Informatik Web Services
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Location Based Services for Wireless Devices
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
Webservice Grundlagen
Best Practices in der Datenbank-programmierung
SQL Server 2005 CLR-Integration
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Sandrine Ferrari Benjamin Bäni. CRYSTL-PIM (Product Information System) Ablauf Ausgangslage Ziele Lösungsansatz Komponenten Demonstration.
Management- und Web Services- Architekturen
Ispirer Systems Präsentation des Unternehmens Copyright (c) Ispirer Systems Ltd. Alle Rechte vorbehalten.
Datenanbindung in Webapplikationen
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
MTS Microsoft Transaction Server Martin Basziszta
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Reinhold Rumberger Web Services.
SOAP.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Sicherheitsaspekte in Service Orientierten Architekturen Eike Falkenberg Sommersemester 2006 Anwendungen I.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Google App Engine - Technische Stärken und Schwächen
 Präsentation transkript:

.NET Remoting und XML Web Services

Ralf Westphal

Architekturtriebfedern Wartbarkeit Wartbarkeit Leistung Leistung Integration Integration Robustheit Robustheit Stabilität Stabilität Sicherheit Sicherheit

Triebfeder Wartbarkeit Wunschliste Wunschliste Flexibilität Flexibilität Transparenz Transparenz Einfaches Deployment Einfaches Deployment Lösung Lösung Schichtung Schichtung Modularisierung Modularisierung

Schichtung/Modularisierung Horizontale Aufteilung (Schichtung) Horizontale Aufteilung (Schichtung) Separation of Concerns Separation of Concerns UI UI Geschäftslogik Geschäftslogik Datenbankzugriff Datenbankzugriff Vertikale Aufteilung Vertikale Aufteilung Komponenten Komponenten Objekte Objekte Entkopplung Entkopplung UI Geschäftslogik (GL) Datenbankzugriff UI Datenbankzugriff

Triebfeder Leistung Wunschliste Wunschliste Hohe Leistung (Durchsatz) Hohe Leistung (Durchsatz) Leistung = Arbeit / Zeit Leistung = Arbeit / Zeit Abhängig von Ressourcenverfügbarkeit Abhängig von Ressourcenverfügbarkeit Einfache Leistungssteigerung Einfache Leistungssteigerung Lösung Lösung Skalierbare Architektur Skalierbare Architektur Skalierbarkeit: Wie verändert sich der Durchsatz bei Addition von Ressourcen? (Clientzahl konstant) Skalierbarkeit: Wie verändert sich der Durchsatz bei Addition von Ressourcen? (Clientzahl konstant) CPU DB Ressourcen Hauptspeicher Festplattenspeicherknappreichhaltig Durchsatz (tx/sec) Ressourcen Skalierbarkeit

Architekturen I 1 Schicht 1 Schicht Dateibasierte Datenbank (z.B. Jet Engine) Dateibasierte Datenbank (z.B. Jet Engine) Pro Pro Einfach Einfach Con Con Nicht skalierbar Nicht skalierbar Hohe Netzwerklast Hohe Netzwerklast Imperformante Zugriffssynchronisation Imperformante Zugriffssynchronisation DB-Konsistenz von Clients abhängig DB-Konsistenz von Clients abhängig Client Netzwerk

Architekturen II 2 Schichten (Client/Server) 2 Schichten (Client/Server) Serverbasierte Datenbank (z.B. SQL Server) Serverbasierte Datenbank (z.B. SQL Server) Pro Pro Geringere Netzwerklast Geringere Netzwerklast Scale up möglich (Aufstocken des DB-Servers) Scale up möglich (Aufstocken des DB-Servers) Einfachere Zugriffsynchronisation Einfachere Zugriffsynchronisation Con Con Komplexe Geschäftslogik bei vielen Clients Komplexe Geschäftslogik bei vielen Clients Hoher Server-Ressourcenverbrauch durch viele Clients Hoher Server-Ressourcenverbrauch durch viele Clients Client Netzwerk DB Server

3 Schichten 3 Schichten Zentrale Geschäftslogik Zentrale Geschäftslogik Pro Pro Noch geringere Netzwerklast Noch geringere Netzwerklast Scale out möglich (Hinzufügen von Applikationsservern) Scale out möglich (Hinzufügen von Applikationsservern) Geringer DB-Ressourcenverbrauch durch zustandslose zentrale Logik Geringer DB-Ressourcenverbrauch durch zustandslose zentrale Logik Einfachere Deployment zentraler Logik Einfachere Deployment zentraler Logik Dient Triebfedern Wartbarkeit, Robustheit, Sicherheit Dient Triebfedern Wartbarkeit, Robustheit, Sicherheit Con Con Erfordert verändertes Programmiermodell Erfordert verändertes Programmiermodell Host Architekturen III Client Netzwerk DB Server GL

Architekturen IIIa 3 Schichten mit Load Balancing 3 Schichten mit Load Balancing Geschäftslogik läuft auf mehreren Applikationsservern Geschäftslogik läuft auf mehreren Applikationsservern Client Netzwerk DB Server GL GL GL Load Balacing

Triebfeder Integration Wunschliste Wunschliste Anbindung von Legacy Code Anbindung von Legacy Code Anbindung von Code auf anderen Plattformen Anbindung von Code auf anderen Plattformen Prozessor Prozessor Betriebssystem Betriebssystem Entwicklungsplattform Entwicklungsplattform Anwendungsteile sind per definitionem verteilt Anwendungsteile sind per definitionem verteilt Lösung Lösung Kommunikationstechnologie auf Basis des kleinsten gemeinsamen Nenners Kommunikationstechnologie auf Basis des kleinsten gemeinsamen Nenners

Thema heute Verteilte Anwendungen sind kein Selbstzweck Verteilte Anwendungen sind kein Selbstzweck Erfordern modulare Architektur Erfordern modulare Architektur Voraussetzung für Skalierbarkeit Voraussetzung für Skalierbarkeit Voraussetzung für Integration Voraussetzung für Integration Client Netzwerk DB Server Host GL

Technische Herausforderungen Verteilung Verteilung Methodenaufrufe über Speichergrenzen hinweg Methodenaufrufe über Speichergrenzen hinweg Transport von Methodenaufrufen zw. Client & Server Transport von Methodenaufrufen zw. Client & Server Integration Integration Plattformunabhängigkeit Plattformunabhängigkeit Dienstbeschreibung Dienstbeschreibung Methodenaufrufformat Methodenaufrufformat

Messagebasierte Kommunikation Übertragung von Methodenaufrufen als Nachrichten Übertragung von Methodenaufrufen als Nachrichten Serialisierung des Call Stack beim Client (Marshaling) Serialisierung des Call Stack beim Client (Marshaling) Transport der Message zum Server Transport der Message zum Server Deserialierung & Rekonstruktion des Call Stack (Unmarshaling) Deserialierung & Rekonstruktion des Call Stack (Unmarshaling) dito für Rückgabewerte dito für Rückgabewerte Client Server Netzwerk Objekt TPTPTPTP RPRPRPRP Call Stack Serialisierter Call Stack

Implikationen I Typen von Parametern/Rückgabewert müssen serialisierbar sein Typen von Parametern/Rückgabewert müssen serialisierbar sein kein Problem für skalare Typen kein Problem für skalare Typen für viele BCL-Typen kein Problem (z.B. ArrayList) für viele BCL-Typen kein Problem (z.B. ArrayList) eigene Typen als [Serializable()] kennzeichnen eigene Typen als [Serializable()] kennzeichnen Methodenaufrufe dauern sehr lang! Methodenaufrufe dauern sehr lang! Anzahl Methodenaufrufe minimal halten Anzahl Methodenaufrufe minimal halten Chunky statt chatty Interfaces Chunky statt chatty Interfaces Widerspricht z.T. OOP Widerspricht z.T. OOP Fördert Skalierbarkeit, weil weniger Wert auf objektinternen Zustand gelegt wird Fördert Skalierbarkeit, weil weniger Wert auf objektinternen Zustand gelegt wird

Demo Serialierbarer Typ Serialierbarer Typ Chunky statt chatty Interface Chunky statt chatty Interface

Implikationen II (Un)Marshaling sollte automatisch und transparent ablaufen (Un)Marshaling sollte automatisch und transparent ablaufen Entfernte Typen von MarshalByRefObject ableiten Entfernte Typen von MarshalByRefObject ableiten Proxys beim Client werden automatisch erzeugt Proxys beim Client werden automatisch erzeugt

Demo Entfernter Typ Entfernter Typ Transparent Proxy Transparent Proxy

Kommunikation über Speichergrenzen hinweg Kommunikationsmedium Kommunikationsmedium Über Speichergrenzen hinweg Über Speichergrenzen hinweg Physikalisch Physikalisch Prozess Prozess Maschine Maschine Logisch Logisch AppDomain (intra-Prozess) AppDomain (intra-Prozess) Context (intra-AppDomain) Context (intra-AppDomain) keine Isolierung keine Isolierung Netzwerk, Shared Memory,... Netzwerk, Shared Memory,... Host Host Welche Anwendungen können entfernte Komponenten hosten? Welche Anwendungen können entfernte Komponenten hosten?.NET Remoting: Jede Anwendung.NET Remoting: Jede Anwendung XML Web Service: IIS & jede Anwendung XML Web Service: IIS & jede Anwendung Serviced Components: Applikationsserver (COM+) Serviced Components: Applikationsserver (COM+)

Implikationen III Einigung auf Kommunikationskanal Einigung auf Kommunikationskanal.NET Framework bietet zwei Kanäle (Channel).NET Framework bietet zwei Kanäle (Channel) TCP TCP HTTP HTTP Einigung auf Messageformat Einigung auf Messageformat.NET Framework bietet zwei Formate.NET Framework bietet zwei Formate Binär Binär SOAP SOAP Kanäle und Formate können erweitert werden Kanäle und Formate können erweitert werden

Demo Verteilte Anwendung mit Client und Server Verteilte Anwendung mit Client und Server

Lebensdauer entfernter Objekte GC funktioniert nicht GC funktioniert nicht Einem Server sind die Wurzeln seiner Objekte in Clients nicht bekannt Einem Server sind die Wurzeln seiner Objekte in Clients nicht bekannt Lösung: Verschiedene Lebensdauermodelle Lösung: Verschiedene Lebensdauermodelle Server bestimmt Lebensdauer (well known Objects) Server bestimmt Lebensdauer (well known Objects) SingleCall SingleCall Singleton Singleton Client bestimmt Lebensdauer (client activated Objects) Client bestimmt Lebensdauer (client activated Objects) Objekte mit Verfallsdatum Objekte mit Verfallsdatum Lease Based Lifetime Lease Based Lifetime Singleton Singleton Client activated Objects Client activated Objects

Demo SingleCall SingleCall Singleton Singleton Client Activated Object Client Activated Object

Transparente Verteilung Konfigurationsdateien bei Client & Server Konfigurationsdateien bei Client & Server Kanal & Protokoll Kanal & Protokoll Veröffentlichte Typen Veröffentlichte Typen Lifetime Lifetime 1 Zeile Code in Client & Host 1 Zeile Code in Client & Host

Pro/Con Remoting Pro Pro Simpel Simpel Erweiterbar Erweiterbar max. Transparenz max. Transparenz Con Con Keine Security Keine Security Keine Transaktionen Keine Transaktionen Fixer ThreadPool Fixer ThreadPool

Kommunikation mit Unbekannt Keine Kontrolle über... Keine Kontrolle über... Client (Delphi?, Java?, C++?, Linux?...) Client (Delphi?, Java?, C++?, Linux?...) Server (Cobol?, Java?, Unix?, Mac?...) Server (Cobol?, Java?, Unix?, Mac?...) Unwägbarkeiten Unwägbarkeiten Prozessor Prozessor Betriebssystem Betriebssystem Entwicklungsplattform Entwicklungsplattform Kommunikation erfordert kleinsten gemeinsamen Nenner Kommunikation erfordert kleinsten gemeinsamen Nenner Kanal: TCP/IP + HTTP (=Text) Kanal: TCP/IP + HTTP (=Text) Kodierung beim Marshaling: SOAP (=Text (XML)) Kodierung beim Marshaling: SOAP (=Text (XML)) Schnittstellenbeschreibung: WSDL (=Text (XML)) Schnittstellenbeschreibung: WSDL (=Text (XML))

Veröffentlichung von Diensten.NET Remoting.NET Remoting HTTP-Kanal HTTP-Kanal SOAP-Formatierer SOAP-Formatierer XML Web Services XML Web Services ASP.NET Seite ASP.NET Seite Definiert Methoden Definiert Methoden Typen müssen serialisierbar sein Typen müssen serialisierbar sein Immer SingleCall Immer SingleCall Host ist IIS Host ist IIS

XML Web Services definieren Service-Klasse Service-Klasse Kennzeichnen mit [WebService] Kennzeichnen mit [WebService] Ableiten von System.Web.Services.WebService Ableiten von System.Web.Services.WebService Service-Methode Service-Methode Kennzeichnen mit [WebMethod] Kennzeichnen mit [WebMethod] Transaktionen möglich Transaktionen möglich WSDL wird automatisch generiert WSDL wird automatisch generiert

Demo XML Web Service definieren XML Web Service definieren

XML Web Service Client Referenz auf XML Web Service setzen Referenz auf XML Web Service setzen Web Service-Aufruf über Proxy-Klasse Web Service-Aufruf über Proxy-Klasse Wird autom. aus WSDL generiert Wird autom. aus WSDL generiert

Demo XML Web Service Client XML Web Service Client Tx mit XML Web Service Tx mit XML Web Service

Pro/Con XML Web Services Pro Pro Einfach Einfach Plattformunabhängigkeit Plattformunabhängigkeit Transparent für Client-Code Transparent für Client-Code Einschränkungen bei Datentypen Einschränkungen bei Datentypen Struktur Struktur Größe (Übertragung als Text!) Größe (Übertragung als Text!) Erweiterbar Erweiterbar SOAP-Extensions/Header SOAP-Extensions/Header Con Con Tx & Security nicht plattformübergreifend Tx & Security nicht plattformübergreifend

To the rescue Web Services Enhancements (WSE) Web Services Enhancements (WSE) Erweiterung des XML Web Service Framework Erweiterung des XML Web Service Framework Binärdatenübertragung Binärdatenübertragung Security Security Routing Routing

Alternativen für Verteilung.NET Enterprise Services (COM+).NET Enterprise Services (COM+) Echter Applikationsserver Echter Applikationsserver Heterogene Transaktionen Heterogene Transaktionen Rollenbasierte Security Rollenbasierte Security Object Pooling Object Pooling Queued Components Queued Components System.Net System.Net Low-level APIs Low-level APIs Sockets Sockets TCP-/UDP-Klassen TCP-/UDP-Klassen

Fazit Mehrere Optionen für Verteilung Mehrere Optionen für Verteilung.NET Remoting.NET Remoting XML Web Services XML Web Services.NET Enterprise Services.NET Enterprise Services Verteilung ist einfach Verteilung ist einfach Serialisierbare Parameterklassen Serialisierbare Parameterklassen Definition entfernter Klasse Definition entfernter Klasse (Fast) Transparent für Client & Server (Fast) Transparent für Client & Server

Fragen?

Ressourcen Tom Barnaby, Distributed.NET Programming in VB.NET, APress 2002 Tom Barnaby, Distributed.NET Programming in VB.NET, APress 2002 Ingo Rammer, Advanced.NET Remoting, APress 2002 Ingo Rammer, Advanced.NET Remoting, APress 2002 Clemens Vasters,.NET Enterprise Services, Carl Hanser 2002 Clemens Vasters,.NET Enterprise Services, Carl Hanser 2002

Ihr Potenzial. Unser Antrieb.