Kommunikation in verteilten Anwendungen - Einführung in Sockets, Java RMI, CORBA und Jini
Buchausgabe: 34,80€
Download-Version: 31,80€
(Preis inkl. Mwst. )
| Autor(en): | Prof. Dr. Oliver Haase |
| Verlag: | Oldenbourg Wissenschaftsverlag GmbH |
| Version: | 2. Auflage, 2008 |
| Umfang: | 245 Seiten |
| Format: | PDF: 2,05MB |
| Gewicht: | 462 g |
| ISBN: | 3486584812 |
| Bestell-Nr.: | 48658481P |
| Artikeltyp: | E-Book |
Verteilte Anwendungen zeichnen sich durch Ausfallsicherheit, Wirtschaftlichkeit und Nutzung brachliegender Ressourcen aus und werden deshalb zunehmend in der Software-Industrie eingesetzt. Andererseits besitzen verteilte Anwendungen eine wesentlich höhere Komplexität mit den entsprechenden Begleiterscheinungen.
Ziel des Autors ist es, die Vor- und Nachteile verteilter Anwendungen darzustellen, um Ihnen die Auswahl der passenden Architektur zu erleichtern. Im zweiten Teil des Buches werden Kommunikationsmechanismen dargestellt, die das Entwickeln verteilter Anwendungen unterstützen sollen. Neben diesem Grundlagenwissen versucht Oliver Haase das nötige Handwerkszeug zu vermitteln, damit Sie mit Hilfe verschiedener Technologien selbst verteilte Anwendungen entwickeln und implementieren können.
Leseprobe:
5 Sockets (S. 71)
Wie bereits in Abschnitt 2.5.1 beschrieben, sind Sockets der De-facto-Standard einer Programmierschnittstelle für Kommunikation über das Internetprotokoll IP. Es gibt sowohl verbindungslose UDP/IP-Sockets, als auch verbindungsorientierte TCP/IPSockets. Das Socket-Paket von Java erlaubt es Java-Applikationen untereinander, aber auch mit Applikationen, die in anderen Sprachen geschrieben sind, zu kommunizieren, solange diese ebenfalls auf Sockets basieren. Bei einer Kommunikation mit Nicht-Java- Applikationen gibt es allerdings immer das Problem, dass die Datenformate auf dem entfernten Rechner potentiell anders interpretiert werden als in Java. Eine Integervariable, die in Java immer 4 Byte groß ist, kann z.B. in der Sprache C 2, 4 oder 8 Byte groß sein, je nach verwendetem C-Compiler. Um solche Probleme zu vermeiden, sind viele Internet-Protokolle textbasiert.
Einer der großen Vorteile von Java für das Entwickeln verteilter Anwendungen ist gerade, dass alle Datenformate für jeden Rechner eindeutig festgelegt sind. In unserer Beispiel-Chat-Applikation verschicken wir als Nachrichten serialisierte Objekte. Damit sind wir endgültig auf eine homogene Kommunikation zwischen Java-Applikationen festgelegt, da diese Objekte beispielsweise von einer C-Applikation nicht sinnvoll interpretiert werden können. Andererseits wollen wir den Eindruck vermeiden, dass Objektserialisierung nur von Java RMI verwendet werden kann, stattdessen ist ihr Einsatz auch für die Socketprogrammierung möglich und (in einer homogenen Java-Umgebung) sinnvoll.
Ein Socket ist ein Kommunikationsendpunkt, der mit Hilfe einer IP-Adresse und einer Portnummer bezeichnet wird:
- Die IP-Adresse des entsprechenden Rechners (genauer: der entsprechenden Netzwerkkarte) ist eine weltweit eindeutige, 32 Bit lange Zahl. Jeweils 8 Bits werden als Dezimalzahl zwischen 0 und 255 dargestellt und durch Punkte voneinander getrennt, zum Beispiel 192.41.6.20. Die 32 Bit einer IP–Adresse teilen sich auf in eine Netzwerkadresse und eine Rechner–ID. Die Netzwerkadresse bezeichnet das lokale Netz, in dem sich ein Rechner befindet, die Rechner-ID den Rechner selbst. Anstelle von IP-Adressen können auch logische Rechnernamen verwendet werden, etwa www.acm.org. Für die Abbildung von logischen Namen auf IP-Adressen ist das sogenannte Domain Name System DNS zuständig, das aus einer global verteilten Hierarchie miteinander kommunizierender DNS-Server besteht.
- Die Portnummer ist eine 16-Bit-Zahl zwischen 0 und 65635 und im Gegensatz zur IP-Adresse nur lokal eindeutig. Portnummern sind in drei Bereiche eingeteilt:
1. Priviligierte Ports (well-known Ports): Der Bereich von 0 bis 1023 ist reserviert für bestimmte Systemanwendungen, d.h. Anwendungen, die unter Administratorrechten laufen. Beispiele dafür sind die Ports 20 und 21 für das File Transfer Protocol FTP, Port 23 für Telnet, Port 25 für das Simple Mail Transfer Protocol SMTP oder Port 80 für das Hypertext Transfer Protocol HTTP.
2. registrierte Ports: Der Bereich von 1024 bis 49151 ist reserviert für Ports, die für Benutzeranwendungen beziehungsweise -protokolle registriert werden können. Die zuständige Behörde, um einen Port registrieren zu lassen, ist die ICANN, die Internet Corporation for Assigned Names and Numbers.
Der besondere Tipp
Denken Sie nicht an einen blauen Elefanten!
Anhand verblüffender Experimente und einfacher Übungen lernen Sie, wie unsere Umwelt die Gedanken und die Gedanken unsere Umwelt beeinflussen.
Früher: 12,00€
bei uns nur: 4,99€

