Newest Viewed Downloaded

Programmierung verteilter Anwendungen unter .NET SS 2010 Prof. Dr. Herrad Schmidt1 Einführung 2 Message Passing

Programmierung verteilter Anwendungen unter .NET SS 2010 Prof. Dr. Herrad Schmidt

1 Einführung 2 Message Passing

Einführung Ausgehend von einer Einzelplatz-Applikation (Benutzerverwaltung) werden einige Programmierkonzepte in .NET zur Gestaltung von Client-Server-Lösungen vorgestellt und diese für die gegebene Applikation implementiert. Folgende Verfahren und Techniken für die Kommunikation und Koordination werden behandelt: Message Passing (Sockets) ASP.NET Windows Communication Foundation (WCF) Remote Procedure Call wird nicht behandelt. Programmiersprache: C#

Literaturhinweise: Johnson, B. /Madziak, P./Morgan, S.: Microsoft .NET Framework 3.5 – Windows Communication Foundation. Microsoft Press, Redmond, 2009 Löwy, J.: Programming .NET Components. 2nd ed. O‘Reilly, Beijing [u.a.]  2005 Schwichtenberg, H.: Microsoft ASP.NET mit Visual C# 2008 – Das Entwicklerbuch. Microsoft Press, Unterschleißheim 2009 Tanenbaum, A./van Steen, M.: Verteilte Systeme. 2., aktualisierte Aufl., Pearson Studium, München [u.a.] 2008 Links: Microsoft MSDN MSDN-Solve und CodeClips Überblick über .NET Framework Microsoft Visual Studio Developer Center

2 Message Passing mittels Sockets Informationen zwischen Client und Server werden als „ungetypte“ Nachrichten ausgetauscht. Sockets sind eine Sammlung von Funktionen, Datenstrukturen und Konventionen für die Netzwerkprogrammierung (Socket-Dienste). Über das API, hier speziell Winsock32-API, wird auf diese zugegriffen. Sie basieren auf dem Transmission Control Protocol (TCP) oder dem User Datagram Protocol (UDP). Sockets ermöglichen somit die Kommunikation zwischen Prozessen (Interprozeßkommunikation, kurz IPC), die auf einem System oder zwei getrennten Systemen ablaufen können. Sie stellen die Verbindung zwischen Prozessen her. Die IPC kann synchron oder asynchron erfolgen.

Durch den Socket-Aufruf wird über die Windows Sockets-Schnittstelle ein Socket-Dienst initialisiert. Dabei wird die Adressfamilie (z.B. für IP), der Sockettyp (z.B. Stream) und der Protokolltyp (z.B. TCP) angegeben. Der aufzubauende TCP/IP-Dienst wird durch die IP-Adresse des Servers und eine Portnummer eindeutig als Kommunikationsend-punkt definiert. Durch den bind-Aufruf wird der Kommunikationsendpunkt an den Socket gebunden. Der Serverprozeß hört bei einem Socket mit dem listen-Aufruf das Netz ab. Ein Client-Prozeß erzeugt einen eigenen Socket und verbindet sich über diesen mit dem Server-Socket. Die Daten werden in einen Strom geschrieben und vom Empfänger als Paket entgegengenommen.

Server You have four tasks to perform before a server can transfer data with a client connection: Create a socket. Bind the socket to a local IPEndPoint. Place the socket in listen mode. Accept an incoming connection on the socket. Client Now that you have a working TCP server, you can create a simple TCP client program to interact with it. There are only two steps required to connect a client program to a TCP server: Create a socket. Connect the socket to the remote server address. Quelle: http://www.codeproject.com/KB/IP/TCPIPChat.aspx?fid=262673&df=90&mpp=25&noise=3&sort=Position&view=Quick&fr=76

Das .NET Framework stellt Klassen zur Nutzung der Socket-Dienste zur Verfügung, siehe MSDN: Sockets: http://msdn.microsoft.com/en-us/library/b6xa24z5.aspx Erstellen von Sockets: http://msdn.microsoft.com/en-us/library/1w48w47c.aspx Serversockets: http://msdn.microsoft.com/en-us/library/dz10xcwh.aspx Synchrone Serversockets: http://msdn.microsoft.com/en-us/library/80z2essb.aspx Clientsockets: http://msdn.microsoft.com/en-us/library/6aes97be.aspx Synchrone Clientsockets: http://msdn.microsoft.com/en-us/library/6xt5x5zw.aspx Asynchrone Serversockets: http://msdn.microsoft.com/en-us/library/5w7b7x5f.aspx Asynchrone Clientsockets: http://msdn.microsoft.com/en-us/library/bbx2eya8.aspx

3 Threads Ein Thread ist die Basiseinheit für die Zuordnung von CPU-Zeit. Innerhalb eines Prozesses können mehrere Threads „parallel“ ausgeführt werden. Multithreading in .NET: http://msdn.microsoft.com/de-de/library/bb979148.aspx Allgemeine Einführung: http://msdn.microsoft.com/de-de/library/bb979280.aspx Multithreading in der Praxis: http://msdn.microsoft.com/de-de/library/bb978929.aspx Tutorial: http://msdn.microsoft.com/en-us/library/aa645740(VS.71).aspx

Solution 1_Sockets (1) A_SocketServer einfachster Socket-Server kann über telnet getestet werden: telnet Host Port B_SocketClient kommuniziert mit A_SocketServer C_SocketServerEncoding WPF-Anwendung, Codierung mit Encoding, Steuerung des Server-Shutdown über den Client D_SocketClientEncoding kommuniziert mit C_SocketServerEncoding (57068) oder F_SocketServerThreads (57069)

Solution 1_Sockets (2) E_Thread Beispielprogramm für Multithreading in .NET G_AsynchSocketServer Annahme eingehender Verbindung und Datenempfang erfolgen asynchron. H_AsynchSocketClient Datenempfang erfolgt asynchron

Übungen Erweitern Sie das Programm C_SocketServerEncoding: Die Anzahl der Benutzer ist der Datenbank „datenbasis“ zu entnehmen. Schreiben Sie eine C/S-Anwendung, bei der die Clients nach dem Verbindungsaufbau dem Server ihren Hostnamen (oder einen anderen Namen) senden. Der Server zeigt in einer ListBox alle Clients an. Der Benutzer am Server kann dann einen Client auswählen, dem er gezielt eine Botschaft sendet.

Showing 1 - 11 of 11 items Details

Name: 
va1_einf
Author: 
Schmidt
Company: 
Universität Siegen
Description: 
Programmierung verteilter Anwendungen unter .NET SS 2010 Prof. Dr. Herrad Schmidt1 Einführung 2 Message Passing
Tags: 
microsoft | socket | msdn | aspx | server | library | net | sockets
Created: 
9/17/2001 2:46:05 PM
Slides: 
11
Views: 
0
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap