.NET Remoting. Softwareentwicklung mit MS.NET und C# Lokaler Proxy. Proxy. Remoting. .NET Remoting



Ähnliche Dokumente
E.1 Objekt-Serialisierung

Ein einfacher Server. .NET Remoting. Klassentypen

C.1 Objekt-Serialisierung

Java RMI Remote Method Invocation

8.1.6.NET Remoting. C# ( Csharp, Cis ) : Referenzsprache für.net,

Remote Method Invocation

G.Net G.2 G.4. 1 Überblick. 2 Common-Language-Runtime. 2 Common-Language-Runtime (2) Neue Anwendungsplattform für alle Microsoft-Betriebssysteme

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

.NET-Networking 2 Windows Communication Foundation

Themen. Web Service - Clients. Kommunikation zw. Web Services

Delegatesund Ereignisse

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

G.Net G.2 G.4. 1 Überblick. 2 Common-Language-Runtime. 2 Common-Language-Runtime (2) Neue Anwendungsplattform für alle Microsoft-Betriebssysteme

SRH Hochschule Heidelberg

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Identity Propagation in Fusion Middleware

IIS 7.5 mit Exchange Server 2010 OWA FBA Intern und Extern ueber Forefront TMG

Rechnernetze Praktikum Versuch 8: Zertifikate, Sicherheit in öffentlichen Netzen

Der lokale und verteilte Fall

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Algorithmen und Datenstrukturen

ObjectBridge Java Edition

1. Zugriff auf das Lonza Netzwerk von ihrem privaten PC oder von einem Internet Café

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

Metadateneditoren für ArcGIS

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Ein neues Outlook Konto können Sie im Control Panel über den Eintrag Mail erstellen.

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

Architektur des agimatec-validation Frameworks

[DvBROWSER] Offline-Viewer für [DvARCHIV] und [DvARCHIVpersonal] Version 2.2

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Exploiting und Trojanisieren

Anleitung zum Einstieg bei Cadenas

s aus -Programm sichern Wählen Sie auf der "Startseite" die Option " s archivieren" und dann die entsprechende Anwendung aus.

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Wiederholung: Beginn

U08 Entwurfsmuster (II)

F.Net F.2 F.4. 1 Überblick. 2 Common-Language-Runtime. 2 Common-Language-Runtime (2) Anwendungsplattform für alle Microsoft-Betriebssysteme

Release Notes. NCP Local License Server (Win32/64) 1. Neue Leistungsmerkmale und Erweiterungen. 3. Bekannte Einschränkungen

ROFIN App Benutzerhandbuch. Version 1.0

Einführung in die Programmierung

teamsync Kurzanleitung

Grundlagen und Best Practices bei der SharePoint Entwicklung

Zentrale Informatik. Fernzugriff über Basic Access

Auszug aus JAX-WS Folien

SAP NetWeaver Gateway. 2013

Hyperlink-Erstellung in InDesign für

.Net Security. Proseminar Objektorientiertes Programmieren mit.net und C# Sabahattin Giritli. Institut für Informatik Software & Systems Engineering

MS Outlook Integration

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Management für vitale Geschäftsprozesse

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

Powershell DSC Oliver Ryf

Universität Karlsruhe (TH)

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Programmieren in Java

Factory Method (Virtual Constructor)

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

JUNG Facility-Pilot Visualisierungs-Server Version 1.1

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Installation Microsoft SQL Server 2008 Express

Schnittstellenspezifikation: ZEUS Web Services

Frankfurt,

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

3 Objektorientierte Konzepte in Java

Step by Step Webserver unter Windows Server von Christian Bartl

Hilfe zur Konfiguration der Software Smart-eShop & Smart-Admin-Bereich

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Internetanbindung von Datenbanken

Lokale Installation von DotNetNuke 4 ohne IIS

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Fragebogen. zur Erschließung und Sicherung von Online-Dokumenten. Auswahl von elektronischen Publikationen

Übung - Datenmigration in Windows Vista

mybev Shop des e-geodata Austria Portal

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Reflection. Arthur Zaczek. Nov 2014

Java Virtual Machine (JVM) Bytecode

OASE Downloadportal Dokumentation

auftrag.at NEU Wien, 9. August 2006

eurovat Magento Extension Magento - Extension Extension V1.4.2 Dokumentation Version 1.0 SNM-Portal UG (haftungsbeschränkt) & Co. KG Vorherstraße 17

Prinzipien Objektorientierter Programmierung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Walther- Übungsaufgabe 24. Januar 2016 Rathenau- Routing Name: Gewerbeschule Freiburg DHCP Klasse: E3FI1T Seite 1 Punkte: /20 Note:

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Installation & Konfiguration AddOn CopyObjects

Behebung des sog. Heartbleed-Bugs (CVE ) in der Krypto-Bibliothek OpenSSL.

Digitale Zertifikate

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Transkript:

Softwareentwicklung mit MS.NET und C# Lokaler Transparent Real.NET Remoting IMessage Ingo Rammer http://www.dotnetremoting.cc rammer@sycom.at Stack Builder Objekt Remoting Remoting ist der Zugriff auf Objekte über bestimmte Grenzen hinweg Grenzen: Maschine Prozess AppDomain Context http://www.dotnetremoting.cc 1

Inhalt einer Message Interface: IMessage Intern: Dictionary bool ret = mv.getdata("hallo Welt", 4711); Uri MethodName MethodSignature TypeName Args CallContext Adresse des Zielobjektes GetData {typeof(string), typeof(int)} MagicValue, 01_Local {"Hallo Welt", 4711} LogicalCallContext Message: Was? Channel: Elemente Womit? Welches Protokoll? Formatter: Wie? Welches Format? Remoting Architektur.NET Remoting Formatter Transport Sink Konvertierung Stackframe zu Message Server Konvertierung von Message zu Stackframe Transport Sink Formatter Übertragung des Streams zu einem anderen Prozess Konvertierung Message zu Stream Dispatcher Object Verteilte Applikationen auf Basis der.net Plattform Unterstützung aller CLR-Typen Objekte, Strukturen, Vererbungshierarchie, Interfaces,... Arbeitet unabhängig von Transfermedium und Kodierung Transfer HTTP TCP Kodierung SOAP Binary (proprietär) http://www.dotnetremoting.cc 2

Features von.net Remoting Übergabe von Objektreferenzen und Objektkopien ObjRef Distributed Object Lifetime Management Callbacks/Events Publikation vorhandener Objektinstanzen Encryption, Authentication & Authorization (in Kombination mit IIS) Abgrenzung zu anderen Systemen generierung Transparent oder statisch? Datentypen Automatische Serialisierung oder manuell? Nur native Datentypen? Transportprotokoll und Wire-Format Festgelegt oder frei? "Binding" zur Plattform Retrofitted oder Bestandteil der Plattform? Abgrenzung zu SOAP Web Services Zurück zum Thema http://www.w3.org/tr/soap Sect. 1.1 [...] not part of the core SOAP specification [...]: Distributed garbage collection Objects-by-reference (which requires distributed garbage collection) Activation (which requires objects-by-reference) Zurück zu Remoting... http://www.dotnetremoting.cc 3

Object-type Roadmap Server Activated Objects (SAO) Server-Activated Singleton SingleCall -Activated System.Object (not remotable) passed by reference (MarshalByRefObject) Registered Created by factory Published passed by value [Serializable] ISerializable Verhalten sich wie Web Services Definierter SOAP-Endpunkt URL pro Service Entweder Singleton oder SingleCall Objektinstanzen werden bei Bedarf vom Server erzeugt Zugriff mittels Activator.GetObject() Multithreading! Remote Objects Activated Objects (CAO) Basisklasse System.MarshalByRefObject Sind an den Ursprungsort gebunden Werden "by Reference" übergeben arbeitet mit einem Objekt Jeder Methodenaufruf wird zum Server übertragen Ausnahme: GetType() und GetHashCode() Statische Methoden Verhalten sich wie "klassische" Objekte Können entweder per Factory-Pattern von einem SAO oder direkt (per transparenter Factory) erzeugt werden Objektreferenzen können über Remoting-Grenzen übergeben werden Lifetime-Managed! Transparente Aktivierung mittels Activator.CreateInstance() http://www.dotnetremoting.cc 4

Objektpublikation Object-type Roadmap HttpChannel channel = new HttpChannel(1234); System.Object (not remotable) ChannelServices.RegisterChannel( channel); passed by reference (MarshalByRefObject) passed by value SomeObject obj = new SomeObject(); Server-Activated -Activated Published [Serializable] RemotingServices.Marshal( obj,"myobject.rem"); Singleton SingleCall Registered Created by factory ISerializable Implementation Mobile Objekte Klassen, die mit [Serializable] markiert sind Bei Übergabe wird eine Kopie erstellt (byvalue-übergabe) Objektgraphen: Zirkuläre Referenzen werden erkannt und korrekt serialisiert Implementation muss beim verfügbar sein, oder mit Assembly.LoadFrom() explizit geladen werden! http://www.dotnetremoting.cc 5

[Serializable] vs Remote Interface based Remoting Metadata-Sharing benötigt Zugriff auf Metadaten Klassen, Methodensignaturen,... Möglichkeiten: Shared Interfaces Shared Base Classes Shared Implementation ( und Server verfügen über die Implementationsklassen) SoapSuds.exe (Extraktion von - Klassen aus serverseitigen Assemblies oder direkt vom laufenden Server) Lifetime Management Lease Erstellung, sobald das Objekt angesprochen oder veröffentlicht wird Eigenschaften CurrentLeaseTime: Lebenszeit des Objektes InitialLeaseTime: default 5 Minuten RenewOnCallTime: default 2 Minuten SponsorShipTimeout: default 2 Minuten Time-To-Live wird standardmässig alle 10 Sekunden dekrementiert http://www.dotnetremoting.cc 6

Geänderte Lebenszeiten Überschreiben der Methode InitializeLifetimeService() public override object InitializeLifetimeService() { ILease lease = (ILease)base.InitializeLifetimeService(); } lease.initialleasetime = TimeSpan.FromSeconds(10); lease.sponsorshiptimeout = TimeSpan.FromSeconds(10); lease.renewoncalltime = TimeSpan.FromSeconds(10); return lease; Deployment jede managed Application Console Windows Forms Windows Service Internet Information Server (IIS) Authentication (HTTP Basic oder Windows integrated) Encryption & Signing (SSL) Remote-Komponenten: COM+ erben von ServicedComponent Sponsorship Für jede Lease können Sponsor-Objekte registriert werden (implementieren ISponsor) Sobald TTL abgelaufen ist Framework kontaktiert Sponsoren Sponsor kann eine neue TTL bestimmen public TimeSpan Renewal(ILease lease) { return TimeSpan.FromMinutes(5); } Konfigurationsdateien Standard.NET Konfigurationsdateien Section <System.Runtime.Remoting> Konfiguriert alle Aspekte von Remoting Channels Custom Sink Chains Objekte - und serverseitig http://www.dotnetremoting.cc 7

Verwendung der Konfiguration Erweiterbarkeit Message Channel Sink Sink Sink Server Intercepts the Stream Message Channel Sink Sink Formatter Transport Sink Transport Sink Formatter Dispatcher Message Sink Sink Sink Message Channel Sink Sink Sink Object Intercepts the Message Intercepts the Stream Verwendung der Konfiguration Server public static void Main(String[] args) { RemotingConfiguration.Configure Configure("< ("<datei>"); Console.ReadLine ReadLine(); } public static void Main(String[] args) { RemotingConfiguration.Configure Configure("< ("<datei>"); Foo obj = new Foo(); int value = obj.getvalue GetValue(); } Verhalten des new Operators wird geändert! Erweiterbarkeit Debugging Logging Accounting Übergabe von "out-of-band" Informationen (Laufzeitparameter, z.b. Thread-Priorität) Security (IP-Blocking, Verschlüsselung) Komprimierung des Streams Caching http://www.dotnetremoting.cc 8

Erweiterbarkeit Neue Transferkanäle Named Pipes (IPC) MSMQ (Message Queuing) SMTP/POP3 (Internet Email) Jabber (instant messaging) Mainframe-Integration (dateibasierend) Neue Channel/Formatter Kombinationen IIOP Transport mit CDR Format. Anyone? Downloads SMTPChannel, JabberChannel, BidirectionalTcpChannel http://www.dotnetremoting.cc/projects NamedPipeChannel, SSLChannel http://www.gotdotnet.com + search MSMQ Channel http://www.codeproject.com/csharp/msmqchannel.asp Summary.NET Remoting bietet eine Plattform für objektorientierte, verteilte Anwendungen auf Basis des.net Frameworks Erlaubt Übergabe von Referenzen und Kopien.NET Remoting basiert auf Messages, die mittels beliebiger Kanäle übertragen werden Flexibel durch Mehrschicht-Architektur Danke für Ihre Aufmerksamkeit! Fragen? http://www.dotnetremoting.cc http://www.dotnetremoting.cc 9