Methodische Aufbereitung von Entwicklungsumgebungen für verteilte Anwendungen
- Art: Diplomarbeit
- Autor: Stefan Dufter
- Abgabedatum: September 2007
- Umfang: 95 Seiten
- Dateigröße: 457,1 KB
- Note: 1,3
- Institution / Hochschule: Private FernFachhochschule Darmstadt Deutschland
- Bibliografie: ca. 11
- ISBN (eBook): 978-3-8366-0182-5
-
ISBN (Paperback) :
978-3-8366-0182-5 P - ISBN (CD) :978-3-8366-0182-5 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Dufter, Stefan September 2007: Methodische Aufbereitung von Entwicklungsumgebungen für verteilte Anwendungen, Hamburg: Diplomica Verlag
- Schlagworte: C++, Client-Server, Sockets, Remoting, Webservice
In den Warenkorb
38,00 €
Diplomarbeit von Stefan Dufter
Zusammenfassung:
Im Rahmen eines Informatikstudiums bleibt es nicht aus, dass sich die Studierenden mit einer oder mehreren Programmiersprachen auseinandersetzen müssen. Die Vielfalt verfügbarer Programmiersprachen ist zu groß, um alle diese Sprachen im Lauf des Studiums abhandeln zu können.
Damit das zu vermittelnde Faktenwissen nicht zu umfangreich wird, kann im Rahmen eines Informatikstudiums nur auf wenige Sprachen, einzelne Betriebssysteme und Entwicklungsumgebungen eingegangen werden.
Diese Diplomarbeit soll einen Einstieg in die Programmiersprache C# bieten. Nach einer grundlegenden Einführung werden exemplarisch einige Techniken demonstriert, mit deren Hilfe verteilte Systeme für die .Net-Plattform erstellt werden können.
Im Verlauf der Diplomarbeit werden Client-Server-Anwendungen unter Verwendung der folgenden Techniken erstellt:
- Socket-Programmierung.
- .Net Remoting.
- Webservices.
Die dabei entstehenden Quellcodes werden analysiert und genau beschrieben, so dass diese auch auf andere Anwendungsgebiete übertragen werden können.
Inhaltsverzeichnis:
| Inhaltsverzeichnis | ||
| 1. | Einführung | 1 |
| 2. | Installation der Entwicklungsumgebung | 2 |
| 2.1 | Internet Informationsdienste | 3 |
| 2.2 | Installation von Visual Studio | 4 |
| 3. | Grundlagen der Sprache C# | 7 |
| 3.1 | Aufbau eines C#-Programmes: Hello World! | 7 |
| 3.2 | Datentypen | 8 |
| 3.2.1 | Integrierte Datentypen | 9 |
| 3.2.2 | Komplexe Datentypen | 10 |
| 3.3 | Klassen | 10 |
| 3.3.1 | Modifizierer | 11 |
| 3.3.2 | Attribute | 11 |
| 3.3.3 | Methoden | 11 |
| 3.3.4 | Konstruktor | 13 |
| 3.3.5 | Destruktor | 13 |
| 3.3.6 | Eigenschaften | 13 |
| 3.3.7 | Delegaten | 13 |
| 3.3.8 | Vererbung | 14 |
| 3.3.9 | Konstanten | 15 |
| 3.3.10 | Variablen | 15 |
| 3.4 | Namensräume | 15 |
| 3.5 | Kontrollstrukturen | 16 |
| 3.5.1 | bedingte Verzweigung | 17 |
| 3.5.2 | Schleifen | 18 |
| 3.5.3 | Kommentare | 20 |
| 3.6 | Exceptions | 21 |
| 3.7 | Ausgewählte Klassen | 23 |
| 3.7.1 | Strings | 23 |
| 3.7.2 | Arrays | 27 |
| 3.7.3 | Datums- und Zeitfunktionen | 31 |
| 3.7.4 | Dateizugriff | 33 |
| 4. | Erstellung eines verteilten Client-Server-Systems in C# | 36 |
| 4.1 | Client-Server-Verbindung über Sockets | 37 |
| 4.1.1 | allgemeine Beschreibung | 37 |
| 4.1.2 | Server-Anwendung | 38 |
| 4.1.3 | Client-Anwendung | 43 |
| 4.2 | Client-Server-Verbindung durch .Net Remoting | 47 |
| 4.2.1 | allgemeine Beschreibung | 47 |
| 4.2.2 | Klassenbibliothek | 49 |
| 4.2.3 | Server-Anwendung | 51 |
| 4.2.4 | Client-Anwendung | 54 |
| 4.3 | Client-Server-Verbindung über Webservices | 57 |
| 4.3.1 | allgemeine Beschreibung | 57 |
| 4.3.2 | Webservice | 58 |
| 4.3.3 | Client-Anwendung | 61 |
| 5. | Ausblick | 65 |
| Anhang 1. | Wichtige Datentypen | 66 |
| Anhang 2. | Beispielklassen | 67 |
| Anhang 3. | Namensräume | 74 |
| Anhang 4. | Server-Anwendung über Sockets | 76 |
| Anhang 5. | Client-Anwendung über Sockets | 79 |
| Anhang 6. | Remoting Klassenbibliothek | 81 |
| Anhang 7. | Server-Anwendung über Remoting | 82 |
| Anhang 8. | Client-Anwendung über Remoting | 83 |
| Anhang 9. | Webservice | 85 |
| Anhang 10. | Anwendung eines Webservices in einem Client-Programm | 86 |
| Anhang 11. | Datenübergabe beim Funktionsaufruf über SOAP | 88 |
| Anhang 12. | Aufruf eines Webservices durch eine ASPX-Seite | 90 |
| Literaturverzeichnis | 91 | |
| Eidesstattliche Erklärung | 93 |
Inhaltsverzeichnis:
| Inhaltsverzeichnis | ||
| 1. | Einführung | 1 |
| 2. | Installation der Entwicklungsumgebung | 2 |
| 2.1 | Internet Informationsdienste | 3 |
| 2.2 | Installation von Visual Studio | 4 |
| 3. | Grundlagen der Sprache C# | 7 |
| 3.1 | Aufbau eines C#-Programmes: Hello World! | 7 |
| 3.2 | Datentypen | 8 |
| 3.2.1 | Integrierte Datentypen | 9 |
| 3.2.2 | Komplexe Datentypen | 10 |
| 3.3 | Klassen | 10 |
| 3.3.1 | Modifizierer | 11 |
| 3.3.2 | Attribute | 11 |
| 3.3.3 | Methoden | 11 |
| 3.3.4 | Konstruktor | 13 |
| 3.3.5 | Destruktor | 13 |
| 3.3.6 | Eigenschaften | 13 |
| 3.3.7 | Delegaten | 13 |
| 3.3.8 | Vererbung | 14 |
| 3.3.9 | Konstanten | 15 |
| 3.3.10 | Variablen | 15 |
| 3.4 | Namensräume | 15 |
| 3.5 | Kontrollstrukturen | 16 |
| 3.5.1 | bedingte Verzweigung | 17 |
| 3.5.2 | Schleifen | 18 |
| 3.5.3 | Kommentare | 20 |
| 3.6 | Exceptions | 21 |
| 3.7 | Ausgewählte Klassen | 23 |
| 3.7.1 | Strings | 23 |
| 3.7.2 | Arrays | 27 |
| 3.7.3 | Datums- und Zeitfunktionen | 31 |
| 3.7.4 | Dateizugriff | 33 |
| 4. | Erstellung eines verteilten Client-Server-Systems in C# | 36 |
| 4.1 | Client-Server-Verbindung über Sockets | 37 |
| 4.1.1 | allgemeine Beschreibung | 37 |
| 4.1.2 | Server-Anwendung | 38 |
| 4.1.3 | Client-Anwendung | 43 |
| 4.2 | Client-Server-Verbindung durch .Net Remoting | 47 |
| 4.2.1 | allgemeine Beschreibung | 47 |
| 4.2.2 | Klassenbibliothek | 49 |
| 4.2.3 | Server-Anwendung | 51 |
| 4.2.4 | Client-Anwendung | 54 |
| 4.3 | Client-Server-Verbindung über Webservices | 57 |
| 4.3.1 | allgemeine Beschreibung | 57 |
| 4.3.2 | Webservice | 58 |
| 4.3.3 | Client-Anwendung | 61 |
| 5. | Ausblick | 65 |
| Anhang 1. | Wichtige Datentypen | 66 |
| Anhang 2. | Beispielklassen | 67 |
| Anhang 3. | Namensräume | 74 |
| Anhang 4. | Server-Anwendung über Sockets | 76 |
| Anhang 5. | Client-Anwendung über Sockets | 79 |
| Anhang 6. | Remoting Klassenbibliothek | 81 |
| Anhang 7. | Server-Anwendung über Remoting | 82 |
| Anhang 8. | Client-Anwendung über Remoting | 83 |
| Anhang 9. | Webservice | 85 |
| Anhang 10. | Anwendung eines Webservices in einem Client-Programm | 86 |
| Anhang 11. | Datenübergabe beim Funktionsaufruf über SOAP | 88 |
| Anhang 12. | Aufruf eines Webservices durch eine ASPX-Seite | 90 |
| Literaturverzeichnis | 91 | |
| Eidesstattliche Erklärung | 93 |
Textprobe:
Kapitel 4., Erstellung eines verteilten Client-Server-Systems in C#Funktionsweise: Durch die Verwendung eines Client-Server-Systems können mehrere Ziele verfolgt werden. So wird es beispielsweise möglich, von mehreren Arbeitsplätzen auf gemeinsame Daten zuzugreifen. Mehrere Mitarbeiter einer Abteilung oder eines Büros können sich die Nutzung von Geräten, z. B. Netzwerkdruckern, teilen, oder die Rechenleistung eines hochwertigen Servers wird für unterschiedlichste Aufgaben zur Verfügung gestellt.
Da sehr viele Netzwerke, unter anderem das Internet, auf der TCP/IP-Protokollfamilie basieren, werden hier nun entsprechende Techniken vorgestellt und beschrieben, wie mit Hilfe des .NET-Frameworks verteilte Anwendungen erstellt werden können. Alle Beispielprogramme werden als Konsolenanwendungen erstellt, um diese möglichst einfach zu halten. Die Funktionsweisen und Techniken sind in grafischen Oberflächen vergleichbar anzuwenden.
Damit die einzelnen Techniken vergleichbar sind, wird ein Echo-Server in drei Varianten erstellt, der einen Text vom Client empfängt, alle Kleinbuchstaben in Großbuchstaben umwandelt und das Ergebnis an den Client zurücksendet. Die drei Varianten arbeiten dabei einmal mit Sockets, mit Remoting-Klassen und schließlich als Webservice.
Kapitel 4.1: Ein TCP/IP-Socket besteht aus einer IP-Adresse und einer eindeutigen Portnummer. So beschreibt z. B. die Angabe „IP-Adresse 127.0.0.1 Port 234“ einen eindeutigen Socket. Ein Server- oder Clientprozess wird an diesen Socket gebunden und kann so mit Programmen und Prozessen auf anderen Rechnern kommunizieren. Als Erinnerung: TCP und UDP befinden sich im OSI-Referenzmodell auf Layer 4 (Transportschicht), während IP auf Layer 3 (Verbindungsschicht) arbeitet.
Im .NET-Framework stehen die Namensräume System.Net und System.Net.Sockets zur Verfügung und stellen die Klassen TcpListener für den Serverprozess sowie TcpClient und UcpClient für die Clientprogrammierung bereit. Die Verwendung der Klasse TcpClient wird bei der Beschreibung des Quellcodes erläutert. Um eine Verbindung mit der Klasse UdpClient aufzubauen, ist dabei keine Listener-Klasse erforderlich, sondern die Kommunikation wird serverseitig mit Hilfe der Methode UdpClient.Receive() durchgeführt. Der Server-Prozess soll im Parallelmodus betrieben werden. Dadurch wird ermöglicht, dass mehrere Client-Anfragen gleichzeitig bearbeitet werden können. Für die Umsetzung wird die Klasse Thread aus dem Namensraum System.Threading benötigt. Auch hier folgen die nötigen Details im entsprechenden Abschnitt.
Der Server überwacht nach der Initialisierung mit dem Server-Listener einen TCP-Port, der grundsätzlich frei gewählt werden kann, sich jedoch nicht mit auf dem Rechner bereits verwendeten Ports überschneiden darf. Es empfiehlt sich, Ports zwischen 49152 und 65535 zu wählen, da dies so genannte Dynamic Ports sind, die frei verwendet werden können. Niedrigere Ports sind möglicherweise von anderen Software-Herstellern für bestimmte Anwendungen registriert (z. B. Port 3306 für MySQL-Datenbanken). In den hier erstellten Beispielen wird Port 8089 verwendet, da dieser ebenfalls nicht registriert ist.
Nachdem ein Client eine Verbindung aufgebaut hat, wird ein Verbindungsobjekt an einen neuen Thread übergeben. Der Server-Listener wartet nun auf neue Verbindungen anderer Clients und kann diese ebenfalls eigenen Threads übergeben.
Der vom Client übergebene Text wird ausgelesen, in Großbuchstaben umgewandelt und umgehend zurückgeschickt. Zusätzlich können Kommandos an den Server übermittelt werden, um den Serverstatus abzufragen oder die Verbindung zu trennen. Da diese Kommandos ebenfalls als Text an den Server übergeben werden, muss hier eine entsprechende Abfrage erfolgen.
In den Warenkorb
38,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783836601825
Arbeit zitieren:
Dufter, Stefan September 2007: Methodische Aufbereitung von Entwicklungsumgebungen für verteilte Anwendungen, Hamburg: Diplomica Verlag
Schlagworte:
C++, Client-Server, Sockets, Remoting, Webservice



