Diplomarbeit, 2000
78 Seiten, Note: 1,7
1 EINLEITUNG
1.1 TÄTIGKEITSBEREICH DER ABTEILUNG ATD IT PS 2
1.2 MOTIVATION FÜR DAS KOMMUNIKATIONS-FRAMEWORK OC
1.3 KOMMUNIKATION MIT HILFE DER CM-SCHNITTSTELLE
1.3.1 CM und OC
1.3.2 Schnittstelle der CM-Bibliothek
1.4 KOMMUNIKATION: DIENSTORIENTIERT VS. DATENORIENTIERT
1.5 REALISIERUNG VON OC ALS KOMMUNIKATIONS-FRAMEWORK
1.5.1 Allgemeines
1.5.2 Anforderungen an OC
1.6 ENTWICKLUNGSUMGEBUNG VON OC
1.6.1 Dokumentation
1.6.2 Programmierung
2 KOMMUNIKATION ZWISCHEN THREADS
2.1 UNTERSUCHUNG VON THREADKOMMUNIKATIONSARTEN AUF PERFORMANCE
2.1.1 Testanwendung
2.1.2 Asynchronous Procedure Calls (APC) als Kommunikationsbasis
2.1.3 Threadkommunikation mit Window-Messages
2.1.4 CM als allgemeine Kommunikationsschicht
2.1.5 Auswertung des Performance-Tests
2.2 THREADKONZEPT IN OC
2.2.1 Threadklassen
2.2.2 Klassen für die Threadsynchronisation
3 GROBENTWURF VON OC
3.1 OC IM SCHICHTENMODELL
3.2 WESENTLICHE KLASSEN
4 FEINENTWURF VON OC
4.1 AUFBAU EINES TELEGRAMMS
4.1.1 Telegrammarten
4.1.2 Wrapper um Datenobjekt
4.1.3 Sichten eines Telegramms
4.1.4 Realisierung des Sichtenkonzepts
4.2 VERTEILEN DER TELEGRAMME IM DISPATCHER
4.2.1 Motivation
4.2.2 Telegramme innerhalb eines Frames verteilen
4.2.3 Weiterleiten eines gewöhnlichen Telegramms
4.2.4 Weiterleiten eines Ack-Telegramms
4.3 AUSWERTUNG DER TELEGRAMME IN HANDLER
4.3.1 Behandlungsroutine
4.3.2 Handler-Basisklassen
4.3.3 Verwaltung der Handler
4.3.4 Verkettung der Handler - Forwardergraph
4.4 TELEGRAMMERZEUGUNG BEIM EMPFANG
4.4.1 Idee 1: Dispatcher erzeugt Telegrammobjekte
4.4.2 Idee 2: Handler erzeugt Telegrammobjekte
4.4.3 Möglichkeiten der Realisierung einer Telegramm-Factory
4.5 TELEGRAMME VERSENDEN
4.5.1 Senden ohne Erwartung einer Quittung
4.5.2 Senden mit Erwartung einer Quittung
4.5.3 Versenden einer Quittung
4.6 DIE HAUPTKLASSEN DES FRAMEWORKS
4.6.1 Frame als Repräsentant eines Kommunikationspartners
4.6.2 Der Frame-Manager
5 HILFSKLASSEN FÜR DEN ANWENDER
5.1 BÜNDELN EINZELNER TELEGRAMME IN EIN CONTAINERTELEGRAMM
5.1.1 Motivation
5.1.2 Anwendung von Containertelegrammen
5.1.3 Quittung des Containertelegramms
5.1.4 Aufbau des Containertelegramms
5.1.5 Kommunikation mit Containertelegrammen
5.2 TELEGRAMMAUSWERTUNG IM THREAD DES FORWARDINGHANDLERS
6 PARAMETRIERUNG DER KOMMUNIKATIONSPARTNER
6.1 STRUKTUR DER PARAMETERDATEI
6.2 PARSER
6.3 HANDLER ANHAND DER PARAMETERDATEI ERZEUGEN
7 FEHLERBEHANDLUNG
7.1 SYNCHRONE FEHLER
7.2 ASYNCHRONE FEHLER
8 OC AUS ANWENDERSICHT
8.1 TELEGRAMMKLASSE ERSTELLEN
8.2 HANDLER ERSTELLEN
8.3 KOMMUNIKATIONSPARTNER ERZEUGEN UND REGISTRIEREN
8.4 SENDERKLASSEN ANWENDEN
8.5 HILFSKLASSEN ANWENDEN
9 PROBLEME BEI DER REALISIERUNG
9.1 SCHWÄCHEN VON C++
9.1.1 friend-Klassen vs. Packages
9.1.2 Interfaces vs. abstrakte Klassen
9.1.3 Templates in Bibliotheken
9.2 SCHWÄCHEN VON OC
9.2.1 Verwaltung der Telegramme und Handler
9.2.2 CM spezifisches Design
9.2.3 OC-Bibliothek
9.2.4 Telegramm-Factory
10 AUSBLICK
10.1 GENERIERUNG BENUTZERDEFINIERTER KLASSEN MIT EINEN ASSISTENTEN
10.2 TOOL FÜR DIE PARAMETRIERUNG DER KOMMUNIKATIONSPARTNER
Die vorliegende Arbeit befasst sich mit dem Design und der Implementierung eines objektorientierten Kommunikations-Frameworks (OC), das die bereits bestehende prozedurale Kommunikationsschicht (CM) in der Anlagenautomatisierung überlagern soll. Das primäre Ziel ist die Steigerung der Produktivität in der Softwareentwicklung durch die Schaffung wiederverwendbarer Komponenten, wobei die Kompatibilität zwischen alten CM-basierten Anwendungen und neuen OC-Anwendungen im Sinne eines Mischbetriebs sichergestellt werden muss.
4.1.2 Wrapper um Datenobjekt
Um nicht explizit jedes Datenelement im CM-Telegramm in eine Membervariable des Telegrammobjekts kopieren zu müssen (Serialisierung), enthält die Telegrammklasse das CM-Telegramm als Datenobjekt. Auf den Puffer des CM-Telegramms wird dann direkt mit Get- und Set-Methoden zugegriffen. Dadurch gewinnt man an Performance.
Wird das Telegramm im Dispatcherthread ausgewertet, dann muß das CM-Telegramm nicht in das Datenobjekt kopiert werden. Der Empfangspuffer im Dispatcher dient dann als Datenobjekt.
Findet die Auswertung des Telegramms asynchron und der Empfang in unterschiedliche Threads statt, dann muß das CM-Telegramm dupliziert werden. Das Duplikat ist dem Handler zu übergeben, dort wird es dann im Telegrammobjekt eingehängt.
1 EINLEITUNG: Dieses Kapitel erläutert den Tätigkeitsbereich, die Motivation für das Framework sowie die grundlegenden Anforderungen an die angestrebte objektorientierte Schicht.
2 KOMMUNIKATION ZWISCHEN THREADS: Hier werden verschiedene Threadkommunikationsarten hinsichtlich ihrer Performance untersucht und das resultierende Threadkonzept in OC vorgestellt.
3 GROBENTWURF VON OC: Es erfolgt die Einordnung von OC in das Schichtenmodell sowie eine Übersicht der für das Gesamtsystem wesentlichen Klassen.
4 FEINENTWURF VON OC: Dieser umfangreiche Teil behandelt detailliert den Aufbau von Telegrammen, den Dispatcher-Mechanismus, die Handler-Logik und die Sender-Klassen.
5 HILFSKLASSEN FÜR DEN ANWENDER: Fokus auf das Bündeln von Telegrammen in Containertelegramme zur Steigerung der Datendurchsatzrate.
6 PARAMETRIERUNG DER KOMMUNIKATIONSPARTNER: Beschreibung der Struktur der Parameterdatei und des Parsers zur dynamischen Konfiguration der Handler.
7 FEHLERBEHANDLUNG: Erläuterung der Strategien zur Fehlerbehandlung bei synchronen und asynchronen Kommunikationsvorgängen.
8 OC AUS ANWENDERSICHT: Eine praxisorientierte Zusammenfassung, wie der Anwender Telegramme erstellt, Handler definiert und Senderklassen nutzt.
9 PROBLEME BEI DER REALISIERUNG: Kritische Reflexion der Herausforderungen bei der Nutzung von C++ und den Designentscheidungen für das Framework.
10 AUSBLICK: Vorschläge für weiterführende Tools wie Assistenten zur Codegenerierung und Konfigurationshilfen für die Parametrierung.
Objektorientiertes Framework, Kommunikationsschicht, Anlagenautomatisierung, Threadkommunikation, Dispatcher, Telegrammklassen, C++, Performance-Test, Handler, Prototyp-Manager, DLL-Management, Fehlertoleranz, Datenorientierte Kommunikation, Softwarewiederverwendbarkeit.
Die Arbeit beschäftigt sich mit der Entwicklung eines objektorientierten Kommunikations-Frameworks, um eine bestehende prozedurale Schnittstelle für die industrielle Anlagenautomatisierung zu modernisieren.
Die Schwerpunkte liegen auf dem Framework-Design, der Threadsynchronisation, der Telegrammverarbeitung, der effizienten Fehlersuche und der Wiederverwendbarkeit von Softwarekomponenten.
Das Ziel ist die Erstellung einer objektorientierten Schicht (OC), die schneller und wartungsfreundlicher als die bestehende CM-Schnittstelle ist, während die volle Abwärtskompatibilität gewahrt bleibt.
Es wurde ein systematischer Designansatz gewählt, der eine Performance-Analyse verschiedener Thread-Kommunikationsarten (wie APCs und Window-Messages) mit objektorientierten Entwurfsmustern verbindet.
Der Hauptteil gliedert sich in Grob- und Feinentwürfe, in denen der Dispatcher-Mechanismus, der Handler-Aufbau und die Mechanismen zur Telegrammerzeugung und -verteilung technisch tiefgehend dokumentiert werden.
Wichtige Begriffe sind unter anderem Framework-Design, Thread-Synchronisation, Telegramm-Kapselung, Dispatcher-Architektur und C++ Klassenbibliothek.
Die Verwendung von ATL hätte eine starke Abhängigkeit von komplexen Makros erfordert, was den Quellcode schwerer wartbar und weniger transparent gemacht hätte; stattdessen wurde ein eigener Prototyp-Manager implementiert.
Da Fehler im Dispatcher-Thread nicht direkt an den Main-Thread kommuniziert werden können, wurde ein zentraler Errorhandler eingeführt, der dem Framework zur Fehlerbehandlung übergeben wird.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

