Roboterfernsteuerung in offener Netzwerkumgebung
- Art: Diplomarbeit
- Autor: Manuel Nedbal
- Abgabedatum: April 2000
- Umfang: 142 Seiten
- Dateigröße: 7,1 MB
- Institution / Hochschule: Johannes Kepler Universität Linz Österreich
- ISBN (eBook): 978-3-8324-5151-6
-
ISBN (Paperback) :
978-3-8324-5151-6 P - ISBN (CD) :978-3-8324-5151-6 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Nedbal, Manuel April 2000: Roboterfernsteuerung in offener Netzwerkumgebung, Hamburg: Diplomica Verlag
- Schlagworte: COM, Programmierung, Server, Client, Komponente
In den Warenkorb
48,00 €
Diplomarbeit von Manuel Nedbal
Zusammenfassung:
Aufbauend auf einem Programm zur Steuerung eines Roboters, genannt Robotalk, wird eine Client-Server Architektur entwickelt, die eine dislozierte Kommunikation ermöglicht. Robotalk wurde an der Fachhochschule Hagenberg im Rahmen des Projektes „Sprachbasiertes Softwaresystem für Mensch-Maschine Kommunikation“ entwickelt und befähigt den Benutzer von einem Steuercomputer aus Befehle an einen Roboter zu senden.
In dieser Arbeit wird das komponentenorientierte Programmierparadigma vorgestellt. Unter Verwendung von DCOM (Distributed Component Object Model), das komponentenorientierte Programmierung ermöglicht, wird die Client-Server Architektur realisiert. Für die Robotersteuerung wird der Interpretierer einer benutzerfreundlichen Sprache aus Robotalk in den Client übernommen. Die vom Benutzer eingegebenen Befehle werden über das Netzwerk übertragen und vom Steuercomputer, der die Server Komponente enthält, an den Roboter weitergeleitet.
Es ist beliebig vielen Clients möglich, sich zu dem Server zu verbinden, aber nur einem ist es erlaubt, Befehle zu senden. Alle anderen empfangen die an den Roboter gesendeten Kommandos und können mittels einer Kamera die Bewegung verfolgen. Das Kamerabild wird mit Hilfe eines Browsers in der Benutzerschnittstelle des Client dargestellt.
Der Client, dem es erlaubt ist, Befehle zu senden, kann die Kontrolle abgeben und ein anderer verbundener Client kann diese übernehmen.
Anhand dieser Arbeit wird die Entwicklung von global einsetzbaren Komponenten mit DCOM gezeigt. Dabei werden unter anderem die Definition von den Schnittstellen zu solchen Komponenten, die Wiederverwendungsaspekte komponentenorientierter Software und Parallelen und Unterschiede zu objektorientierter Programmierung behandelt.
Inhaltsverzeichnis:
| 1. | Einführung | 7 |
| 1.1 | Ziel der Arbeit | 7 |
| 1.2 | Basis der Arbeit | 7 |
| 1.2.1 | Basissystem | 8 |
| 1.2.2 | Robotersteuerung im Basissystem | 9 |
| 1.3 | Lösungsverfahren: die Client-Server Architektur | 14 |
| 1.4 | Kapitelbeschreibung | 18 |
| 2. | Kommunikationstechnologie der Client-Server Architektur | 20 |
| 2.1 | Einführung: Komponentenorientierte Programmierung | 20 |
| 2.2 | DCOM: ein Modell für komponentenorientierte Programmierung | 24 |
| 2.2.1 | DCOM Architektur | 26 |
| 2.2.2 | Teile eines Interfaces | 31 |
| 2.2.3 | Entwurf von Interfaces | 35 |
| 2.2.4 | Fernaktivierung von Komponenten | 36 |
| 2.2.5 | Parallele Benutzung von Komponenten: Apartments | 40 |
| 2.2.6 | Dislozierte Kommunikation über Interfaces: Marshaling | 45 |
| 2.2.7 | Sicherheitsmechanismen | 50 |
| 2.2.8 | Konfiguration des Servers - Der APPID Schlüssel | 59 |
| 2.2.9 | Konfiguration der Komponenten - Der CLSID Schlüssel | 61 |
| 3. | Realisierung der Client – Server Architektur mittels DCOM | 62 |
| 3.1 | Robotalk Server | 64 |
| 3.1.1 | Server Instanzierung | 64 |
| 3.1.2 | Client Benachrichtigungen | 69 |
| 3.1.3 | Wiederverwendung | 72 |
| 3.1.4 | Serielle Kommunikation | 79 |
| 3.2 | Robotalk Client | 81 |
| 3.2.1 | Dialog der Sichtklasse | 81 |
| 3.2.2 | Verbindungsdialoge | 84 |
| 3.2.3 | Setzen der Kamera URL | 85 |
| 3.2.4 | Befehlsabarbeitung | 86 |
| 3.2.5 | Verbindungsaufbau zu einem Robotalk Server | 87 |
| 3.3 | Robotalk Marshaler | 91 |
| 3.3.1 | Das Makefile | 91 |
| 3.3.2 | RoboInt.idl | 93 |
| 4. | Systemdokumentation | 98 |
| 4.1 | Server Architektur | 99 |
| 4.2 | Server Klassen | 101 |
| 4.2.1 | C Main Window | 102 |
| 4.2.2 | Cserver | 102 |
| 4.2.3 | CFRobo | 104 |
| 4.2.4 | CimpIClassFactory | 106 |
| 4.2.5 | CORobo | 107 |
| 4.2.6 | CimpIConnectionPointContainer | 110 |
| 4.2.7 | CimpIShareRobo | 112 |
| 4.2.8 | COConnectionPoint | 116 |
| 4.2.9 | COEnumConnections | 119 |
| 4.3 | Client Klassen | 121 |
| 4.3.1 | CORoboSink | 122 |
| 4.3.2 | CimpIRoboSink | 123 |
| 4.3.3 | CserverConnection | 125 |
| 5. | Schlussfolgerungen | 131 |
| 6. | Anhang | 134 |
| 6.1 | Literaturverzeichnis | 134 |
| 6.2 | Abbildungsverzeichnis | 138 |
| 6.3 | Glossar | 139 |
Abbildung 14: Impersonierung des Client, wenn Proxy Identität bekannt ist Bei statischem Cloaking, sieht der Server die Identität des Client, die er beim ersten Aufruf des Servers besitzt. Abbildung 14 zeigt ein Beispiel wenn die Proxy Identität bei einem Aufruf von B nach C gesetzt wurde. Bei einem darauffolgenden Aufruf, sieht Prozess D die Identität von B, da statisches Cloaking bei B und C verwendet wurde. Bei dynamischen Cloaking basiert, wie bereits erwähnt, die Client Identität auf der des Thread - Tokens, falls eine existiert. Abbildung 15 zeigt den Fall, wenn B und C dynamisches Cloaking verwenden und deshalb D die Identität von A sieht, obwohl er über B und C gerufen wird. [...]
Es werden statisches und dynamisches Cloaking unterschieden: • Statisches Cloaking (EOAC_STATIC_CLOAKING): der Server sieht das Proxy - Token des Client beim ersten Aufruf, bei dem die Proxy - Identität benutzt wird, falls sie vorher gesetzt wurde. Wurde sie nicht gesetzt wird das Thread - Token des Hauptthreads des Client benutzt. Falls auch das nicht vorhanden ist, wird das des Prozesses verwendet, das immer existiert. Für alle weiteren Aufrufe wird die Identität des ersten Aufrufes benutzt. • Dynamisches Cloaking (EOAC_DYNAMIC_CLOAKING): die Identität des Client wird bei jedem Aufruf durch das Thread - Token, oder falls es nicht existiert durch das Prozesstoken, bestimmt. Diese Art von Cloaking ist zeitaufwendig. In Tabelle 9 wird zusammengefasst, welche Identität des Client dem Server bekannt ist (Client Identität), wenn eine bestimmte Cloaking Art gesetzt, ein Thread Token vorhanden oder nicht vorhanden ist und wenn die Proxy Identität vorher gesetzt wurde oder nicht. Cloaking Art [...]
Erhält der Server von einem lokalen oder entfernten Client die Anforderung einen COM Server zu starten, der keinen LaunchPermission Eintrag besitzt, wird dieser ACL Wert während der Impersonierung des Client geprüft und, abhängig vom Erfolg dieser Prüfung, der COM Server gestartet oder nicht. Standardmäßig ist den Administratoren, dem SYSTEM und dem INTERACTIVE Benutzer der Zugriff erlaubt. 2.2.7.2 Cloaking Cloaking ist ein Sicherheitsmechanismus, der ab Windows 2000 verfügbar ist. Dabei nimmt ein COM Server der während der Impersonierung die Identität des Client an indem er seine eigene Identität maskiert und tritt gegenüber einem weiteren Server, den er aufruft, als dieser Client auf. Im Wesentlichen ist die Identität des Client, die der Server erkennt, die des Proxy, dessen Identität wiederum von mehreren Faktoren abhängt. Bevor Windows 2000 verfügbar war, hat ein COM Server während der Impersonierung eines COM Client dessen Prozess - Token benutzt um seine Identität zu bestimmen. Deshalb wurde die Identität des Client immer als die des Prozesses erkannt in dem die Komponente instanziert wurde. Mittels Cloaking ist es möglich durch einen Aufruf von CoInitializeSecurity dynamisch die Identität des Prozesses und die des Client zu ändern. Das bedeutet, dass Server, die von einem Client gestartet werden, während der Impersonierung die Identität des Aufrufers erkennen können, vorausgesetzt der Client hat dem Server die Autorität verliehen (siehe „2.2.7.1.2 LegacyImpersonationLevel“). [...]
In den Warenkorb
48,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832451516
Arbeit zitieren:
Nedbal, Manuel April 2000: Roboterfernsteuerung in offener Netzwerkumgebung, Hamburg: Diplomica Verlag
Schlagworte:
COM, Programmierung, Server, Client, Komponente



