Graphical User Interface for Monitoring and Control Systems

Größe: px
Ab Seite anzeigen:

Download "Graphical User Interface for Monitoring and Control Systems"

Transkript

1 Diplomarbeit Graphical User Interface for Monitoring and Control Systems Tatjana Dalinger September 2005 Betreuung: Prof. Dr. A. Künkler Fachbereich Design und Informatik Fachhochschule Trier University of Applied Sciences

2 FACHHOCHSCHULE TRIER UNIVERSITY OF APPLIED SCIENCES Fachbereich DESIGN UND INFORMATIK Autor: Tatjana Dalinger Titel: Graphical User Interface for Monitoring and Control Systems Studiengang: Angewandte Informatik Betreuung: Prof. A. Künkler Fachbetreuung: Harold Linke, Stefan Roemer September 05 Es wird hiermit der Fachhochschule Trier (University of Applied Sciences) die Erlaubnis erteilt, die Arbeit zu nicht-kommerziellen Zwecken zu verteilen und zu kopieren. Unterschrift des Autors Tatjana Dalinger, ii -

3 Danksagung An dieser Stelle möchte ich mich bei folgenden Personen bedanken: Prof. Dr. Andreas Künkler für die gute und kompetente Betreuung Dem Verantwortlichen für dieses Projekt, Harold Linke, der mir das Thema für meine Diplomarbeit vorgeschlagen und diese überhaupt ermöglicht hat Meinen Fachbetreuern Stefan Roemer und Dominik Rehm für die Vorschläge und Verbesserungen in der Projektrealisierung Meinen Mann Viktor Dalinger für die große Hilfe, die Aufmunterung und Unterstützung während der ganzen Zeit Meinen Eltern Natalia und Waldemar Nierenberg, die mir das Studium überhaupt erst ermöglicht haben - iii -

4 4 / 81 Abkürzungsverzeichnis ACU AWT ALC BSS COM DBS DC DOM EIRP FSS GUI HPA IP JDOM LNA MVC M&C OCX PC PNG Popup PLC RF SAX SCU Antenna Control Unit Abstract Window Toolkit Automatic Level Control Broadcast Satellite Service Component Object Model Direct Broadcast Down-Converter Document Object Model Effective Isotropic Radiated Power Fixed Satellite Service Graphical User Interface High Frequency Power Amplifier Internet Protocol Java Document Object Model Low Noise Amplifier Model-View-Controller Monitoring und Control ActiveX Control Personal Computer Portable Network Graphics Browser-Fenster Programmable Logic Controller Radio Frequency Simple API for XML Parsing System Control Unit

5 5 / 81 TCP TRK DC TLT TR TTC TWTA UC UML WGS XML Transmission Control Protocol Tracking Down Converter Test Link Translator Tracking Receiver Telemetry and Telecommand Control Traveling Wave Tube Amplifier Up Converter Unified Modeling Language Wave Guide Switches Extensible Markup Language

6 6 / 81 Kurzfassung Die mobile Kommunikation ist zurzeit bereits ein fester Bestandteil unseres Lebens geworden. Die steigende Zahl der Teilnehmer ist fast in allen Bereichen der mobilen Kommunikation (Mobiltelefon, Fernseh-/Rundfunkdienst, Wetterbeobachtung usw.) festzustellen. Sowohl im Flugzeug als auch auf dem Schiff wollen die Menschen auf den Komfort der mobilen Kommunikation nicht verzichten. In dieser Arbeit wurde ein Konzept für eine betriebssystemunabhängige grafische Benutzeroberfläche in der Programmiersprache Java entwickelt. Als eine Beispielanwendung wird die Benutzeroberfläche für ein Monitoring & Control System (M&C System) für die Satellitenbodenstationen implementiert, das von dem Unternehmen HITEC Luxembourg S. A. in Luxembourg entwickelt wurde. Das System überwacht und bedient alle Geräte einer Satellitenbodenstation über eine lokale und mehrere abgesetzte Konsolen (PCs, Clients) an einem Standort. Außerdem bietet es als Benutzeroberfläche, die individuell für einen Einsatzort realisiert ist, eine grafische Anzeige aller zu überwachenden und zu steuernden Komponenten und ihrer Funktionsbeziehungen untereinander.

7 7 / 81 Abstract Mobile communication has become a steady component of our life. The rising number of the participants is in almost all areas of the mobile communication (mobile phone, television service and broadcasting company service, meteorological observation etc.) to ascertain. In the airplane as well as on the ship people do not want to renounce the comfort of the mobile communication. In this thesis a draft has been developed for a system independent graphic user interface in the programming language "Java". As an example application a user interface for a Monitoring and Control system (M&C system) for satellite ground stations was implemented which was developed by the enterprise "HITEC Luxembourg S.A." in Luxembourg. The system controls all devices of a satellite ground station about a local and several set off consoles (PC, clients) in a location. In addition, it offers as the user interface which is realized individually for an application place a graphic announcement of all components to be controlled and to be supervised and their functional relations dependencies.

8 8 / 81 Inhaltsverzeichnis Graphical User Interface for Monitoring and Control Systems Einleitung Anwendungsbereiche von Satellitensystemen Wetterbeobachtung Fernsehen und Rundfunk Aufbau der Arbeit Aufgabenstellung und Zielsetzung Muss-Kriterien Kann-Kriterien Analyse des vorhandenen Basissystems Funktionsweise des M&C Systems Mehrschichtige Architektur Server-Arten Darstellung des M&C Systems M&C Subsysteme als grafische Elemente Popup-Fenster der Subsysteme Programmierkonzepte in Java Model - View - Controller - Muster ( MVC ) UML-Modellierung Klassenstruktur und Klassenhierarchie Paket-Struktur Realisierung Datenstruktur HashMap Eigenschaften von HashMap M&C System-Datenstruktur mit HashMap...34

9 9 / Datenverwaltung mit XML Aufbau von XML-Dokumenten Speichern von Systemdaten in XML Bearbeiten der XML-Dateien mit JDOM Erzeugen der Objekte mit Reflection Benutzung des Programms Elemente der Benutzeroberfläche Menü-Funktionen Funktionalität der Objekte Properties-Fenster Implementierung Model-Komponente acu -Unterpaket control -Unterpaket twta -Unterpaket sw -Unterpaket linec -Unterpaket linehorizontal -Unterpaket linevertical -Unterpaket View-Komponente GeneralPopup AboutPopup ACUPopup SwPopup TWTAPopup Controller-Komponente ACUController...73

10 10 / SwController TWTAController Zusammenfassung und Ausblick...75 Literaturverzeichnis...77 A Glossar...78 B Entwicklungsumgebungen...80 C Inhalt der beiliegenden CD...81

11 11 / 81 1 Einleitung Die Satellitensysteme sind seit dem zweiten Weltkrieg zu einer der bekanntesten Schlüsseltechnologien geworden. Aus einfachsten Konstruktionen, die oft nur einen basisexperimentellen Charakter hatten, entwickelten sich produktive und operative High-Tech-Systeme, die wesentliche und globale Aufgaben erfüllen. Sie bieten den großen Vorteil, mit einem relativ geringen technischen Aufwand eine große funktechnische Abdeckung der Erdoberfläche zu beschaffen. So deckt ein entsprechend dimensionierter Satellit auf einer speziellen Umlaufbahn etwa ein drittel der Erdoberfläche ab. Um gleiche Ergebnisse auf Basis von terrestrischer Infrastruktur zu erzielen, müssten unverhältnismäßig umfangreiche Investitionen getätigt werden. Oftmals erweist sich die Satellitentechnologie in bestimmten Regionen der Erde als überhaupt einzig mögliche Kommunikationslösung [sch04]. Das M&C System der Firma HITEC Luxembourg S.A. ist ein softwarebasiertes System, das die Ausrüstung einer Satellitenbodenstation kontrolliert. Die Überwachung kann lokal, ohne Internet-Verbindung von einem Kunden durchgeführt werden. Die typische Warnungen der Satelliten-Ausrüstung, wie die zusammenfassenden Warnungen, Schwellen oder Grenzen der Datenqualität werden erfasst. Warnungsnachrichten werden an den Server weitergeleitet und die Benutzer werden über eine graphische Warnung alarmiert. Somit hat der Benutzer volle Kontrolle über die ganze Satellitenbodenstation und ihre Funktionalität.

12 12 / Anwendungsbereiche von Satellitensystemen Es gibt viele Anwendungsbereiche, wo die Satelliten eingesetzt werden. Für die Forschung, die Wetterbeobachtung, Fernsehen und Rundfunk und die Telekommunikation aber auch für das Militär sind die Satelliten unverzichtbare Hilfsmittel geworden Wetterbeobachtung Die Satelliten unterstützen die weltweiten Wettervorhersagen und ergänzen die Prognosen um wesentliche Details. Sie messen die veränderlichen Größen wie z.b. Windrichtungen und Windbewegungen, Lufttemperaturen, Oberflächentemperaturen von Land und Wasser sowie den Zustand der Atmosphäre (siehe Abb. 1). Dafür besitzen sie umfangreiche Instrumente wie Fernsehkameras, Infrarot-Radiometer und Strahlungs-Messgeräte. Abbildung 1: Hurrikan Ivan (links) und Wetterlage Europa (rechts) Fernsehen und Rundfunk Auch zur Übertragung von Radio- und Fernsehsignalen über Sektoren hinweg werden die Satelliten eingesetzt. Sie empfangen die Signale der Bodenstation, setzen sie um, verstärken sie und strahlen sie über Richtantennen im Versorgungsgebiet aus. Dabei erfüllen Sie eine Art Repeater-Funktionalität. In der Abbildung 2 unterscheidet man zwischen zwei Arten von Satelliten: den Fernmeldesatelliten und Direktsatelliten (sog. DBS: Direct Broadcast). Die Fernmeldesatelliten ermöglichen eine besondere Weiterverbindung, sie bestrahlen eine kleine Fläche mit niedriger Leistung. Im Vergleich zu den Fernmeldesatelliten ermöglichen die Direktsatelliten eine großflächige Übertragung mit einer relativ hohen Leistung. Abbildung 2: Fernmeldesatelliten (links) und Direktsatelliten (rechts)

13 13 / Aufbau der Arbeit Dieser Abschnitt fasst die notwendigen Grundlagen, die detaillierten Anforderungen, sowie Design und Implementierung des M&C Systems zum besseren Verständnis dieser Dokumentation zusammen. Die Problemstellung und die Zielsetzung dieser Diplomarbeit werden im Abschnitt 1.3 genauer beschrieben. Um zu verstehen, wo die Probleme und Schwierigkeiten bei der jetzigen Implementierung der grafischen Benutzeroberfläche liegen, ist es erforderlich, den Aufbau des M&C Systems zu kennen. Diesem Zweck dient das Kapitel 2. Es wird hier ein grober Überblick über das vorhandene Ausgangssystem bzw. Basissystem und seine Funktionalität gegeben. Das Kapitel 3 stellt einen konzeptionellen Teil dieser Diplomarbeit dar. Es beschreibt die technischen Hilfsmittel zur Realisierung der Anwendung. Sowohl das Entwurfsmuster MVC, das bei der Implementierung des Model anzuwenden war, als auch die Paket-Struktur, die mit Hilfe von Klassendiagrammen dargestellt wurde, sind Gegenstand dieses Kapitels. Im Kapitel 4 sind die HashMap-Datenstruktur und die XML-Technologie, die für das Laden, Abspeichern und Überprüfen von verschiedenen Objekten und ihren Eigenschaften bzw. Attributen benutzt wurden, beschrieben. Auch das Einlesen und das Schreiben der XML-Dokumente mit JDOM werden in diesem Kapitel näher erläutert. Wie man das Programm starten und benutzen kann, wird im Kapitel 5 ausführlich beschrieben. Sowohl alle Elemente der grafischen Benutzeroberfläche wie das Menü, Popup-Menü usw. als auch die Funktionalität der Objekte werden in diesem Kapitel dargestellt. Das Kapitel 6 widmet sich der Implementierung des Prototyps des M&C Systems. Hier werden die UML-Klassendiagramme nach dem Grundkonzept Model-View- Controller entworfen und alle wichtigen Klassen dargestellt und analysiert. Im letzten Kapitel wird zusammenfassend das Ergebnis dieser Arbeit bewertet. Dabei werden Möglichkeiten, die noch zur Erweiterung des M&C Systems führen könnten, diskutiert.

14 14 / Aufgabenstellung und Zielsetzung In diesem Kapitel werden die vorliegende Aufgabe und das Ziel dieser Diplomarbeit dargelegt. Die Aufgabe der Diplomarbeit ist es ein Konzept für eine betriebssystemunabhängige grafische Benutzeroberfläche für die Satellitenbodenstationen zu entwickeln, bei dem die allgemeingültigen universellen Objekte für die Kontrollkomponenten verwendet werden müssen. Die Eigenschaften der Objekte wie die Eingaben, Ausgaben, Reaktionen auf Benutzereingaben, Position und Beziehungen zu anderen Komponenten müssen flexibel an die realen Kontrollkomponenten angepasst werden können. Zum Nachweis der Funktionsfähigkeit des Konzepts ist ein Prototyp eines M&C Systems zu realisieren. Die Ausgangsbasis für die neue Benutzeroberfläche der M&C Systeme ist die Benutzeroberfläche des bestehenden M&C Systems (siehe Abb. 3), die seit acht Jahren im Unternehmen eingesetzt und immer weiterentwickelt wurde. Abbildung 3: Benutzeroberfläche des aktuellen M&C Systems In der jetzigen Implementierung werden die zu steuernden Komponenten wie zum Beispiel Antennen, Schalter, Verstärker des M&C Systems durch OCX (ActiveX Control)-Objekte realisiert. Die OCX-Objekte sind Komponenten, die ihre Dienste über die in COM definierte Software-Schnittstelle zur Verfügung stellen. Die Erstellung einer Oberfläche mit diesen Objekten ist aufwendig und unflexibel. Deswegen ist das Ziel dieser Arbeit, eine neue Benutzeroberfläche der M&C Systeme in Java zu entwickeln, die von den Kunden selbst konfiguriert werden kann, und die Überwachung und die Kontrolle von verschiedenen technischen Anlagen wie zum Beispiel Satellitenbodenstationen, IT-Netzwerke, Wetterstationen und Produktionsumgebungen ermöglicht.

15 15 / Muss-Kriterien die Komponenten, Geräte und Abläufe, die überwacht und kontrolliert werden müssen, sollen analysiert werden die Objekte werden mit den statischen und dynamischen Informationen definiert die Klassifizierung und Gruppierung der Komponenten nach Gemeinsamkeiten und Eigenschaften die Basisklassen, von denen alle Objekte abgeleitet werden können, müssen definiert werden die Verallgemeinerung von Objekten, die durch Parametrisierung möglichst viele Komponenten repräsentieren können ein Modell für die Interaktion der Objekte muss aufgebaut werden (UML) die Realisierung eines Prototyps in Java, an dem die Grundfunktionen eines M&C Systems gezeigt werden können alle einzelne Objekte müssen in einer Java Runtime Database bzw. in einer XML-Datei gespeichert werden Kann-Kriterien die Laufzeit muss nicht berücksichtigt werden die Benutzung von anderer separater Software

16 16 / 81 2 Analyse des vorhandenen Basissystems Die Satellitenstation ist allgemein aus drei Elementen zusammengesetzt: BSS (Broadcast Satellite Service) FSS (Fixed Satellite Service) TTC (Telemetry and Telecommand Control) Die M&C Systeme zur Kontrolle der Satellitenstation werden auf drei verschiedenen PCs installiert. Die PCs sind per Ethernet gekoppelt und jeder von ihnen hat eine spezifische Funktionalität. Der PC, der wirklich die Ausrüstung in einem RF (Radio Frequency)-Raum kontrolliert, wird der Echtzeit -PC genannt. Der Anwendungswebserver in diesem RF-Raum wird als "Lokaler -PC und der Computer im Monitoring-Raum als Entfernter -PC bezeichnet. Das nächste Kapitel verweist auf das FSS M&C System und stellt die Bestandteile und die Funktionalitäten dieses Systems dar [hit]. Der Datenfluss der Benutzeroberfläche des M&C Systems ist in der Abbildung 4 dargestellt. Abbildung 4: Datenfluss der Benutzeroberfläche

17 17 / Funktionsweise des M&C Systems Das oben genannte System soll folgendermaßen funktionieren: zuerst soll man den "Echtzeit"-PC, danach den "Lokalen" und "Entfernten"-PCs hochfahren. Vor dem Einschalten der PCs muss der Maschinenbediener bestätigen, dass die ganze Ausrüstung eingeschaltet und lokal überprüft ist. Das wird unnötige vielfache Warnungsmeldung verhindern. Nach dieser Kontrolle kann das System gestartet werden. Die Ausrüstung wird mit ihrer gegenwärtigen Konfiguration auch automatisch gestartet. Das Programm kann auch angehalten und wieder gestartet werden. Während das Programm angehalten wird, gibt es keine Warnungskontrolle. Folgende Subsysteme kontrollieren und steuern die ganze Satelliten-Ausrüstung: Up Converter (UC) Down Converter (DC) Test Link Translator (TLT) Tracking Down Converter (TRK DC) Tracking Receiver (TR) Traveling Wave Tube Amplifier (TWTA) High Frequency Power Amplifier (HPA) Antenna Control Unit (ACU) Low Noise Amplifier (LNA) Wave Guide Switches (WGS) Dehydrator Deicing unit SCU (System Control Unit) LNA Power supply Combiner

18 18 / Mehrschichtige Architektur In der Abbildung 5 wird die Architektur des M&C Systems, die insgesamt aus drei Schichten Data Acquisition, Data Processing und Data Visualisation besteht, dargestellt. Zu der ersten Data Acquisition -Schicht gehören die Ausrüstung (ACU, TWTA, Switch usw.) und die Echtzeit -PCs (Treiber-Geräte). Die Ausrüstung und die Treiber-Geräte sind miteinander per seriellen Schnittstelle (RS) verbunden. Die zweite Data Processing -Schicht besteht aus den Datenverarbeitern (AutoProcessor/AutoBackup), einer Datenbank (Data Processor/Data Image Holder), einem Alarm Server, einem Picture Server und einem Client Manager. Die Treiber- Geräte aus der ersten Schicht übersetzen die Daten der Ausrüstung und senden diese entweder an den Datenverarbeiter (AutoProcessor/AutoBackup) oder an die zentrale Datenbank (Data Processor) direkt, wo alle XML-Dateien enthalten sind, per TCP/IP Verbindung weiter. Die Datenbank und der Client Manager senden die Daten an den Web Server weiter und der Web Server schickt dann eine http-anfrage an die Client- PCs, die zu der letzten Schicht Data Visualisation gehören. Abbildung 5: dreischichtige Architektur des M&C Systems

19 19 / Server-Arten Das ganze M&C System besteht insgesamt aus folgenden sechs Servern. Wenn der Benutzer das Programm startet, führen diese Server ihre Programme unabhängig voneinander aus. Sie laufen alle auf dem Lokalen -PC (Webserver): McMainServer: dieser Server ist die Hauptanwendung des M&C Systems. Er startet alle anderen Server und sendet die vom Kunden gesandte Anfrage. Diese Anwendung ist hauptsächlich ein Webserver mit der Hinzufügung von Systemkontrollfunktionen. McPictureServer: zeigt das gesamte System-Bild des M&C Systems an. Das Bild wird mit den Daten, die von den Gerätetreibern kommen, aktualisiert. Diese Daten, die durch den McMainServer an allen Datenbank-Kunden gesandt werden, werden in eine PNG (Portable Network Graphics)-Datei umgewandelt. McRealTimeEngine: führt alle Laufzeiteinstellungen aus, versorgt und zeigt die automatische Kettenkonfiguration, eine Reihe von Überprüfungen und Berechnungen von speziellen Werten und wird noch für Folgendes verwendet: Transponder-Datenbankzugang, EIRP-Daten-Zugang, Kettenkonfiguration, Wartungsdatenbankzugang, Schalter-Zugriffssicherheit. McAlarmServer: ist für die Warnungen verantwortlich. Die Information wird mit den Daten, die aus den Gerättreibern kommen, aktualisiert und dem Benutzer in einem roten Warnungsfenster gezeigt. Dieser Server speichert auch, welche Benutzer er alarmieren soll und protokolliert das. McDDClient: behandelt die Kommunikation mit dem Echtzeit -PC über TCP/IP und steht mit allen Treibern und dem Webserver in Verbindung, erhält alle Daten, die aus den Treibern kommen und gibt sie weiter. Auf dem Weg nimmt er die Benutzerbefehle und sendet diese dem Bestimmungsort-Treiber auf dem Echtzeit -PC. McClientManager: steuert die Kunden-Browser-Verbindungen. Um die entfernte Verbindung zum System zu erlauben, muss ein normaler WWW-Browser auf dem Port 8081 geöffnet sein. Der McClientManager beschränkt den Zugang zu den autorisierten PCs. Die Liste der PCs wird im McClientManager gespeichert und kann nur vom Stationsverwalter verändert werden.

20 20 / Darstellung des M&C Systems Die Betrachtung des M&C Systems ist in einem Standard-Internet-Browser möglich. Die Graphikschnittstelle ist eine Multiniveau-System-Anzeige. Der Bildschirm, der als Spitzenniveau-Anzeige bezeichnet wird, versorgt den Maschinenbediener mit allen wichtigen Stationskonfigurationen. Er stellt eine ausführliche Ansicht zur Verfügung, die den gegenwärtigen Status von Convertern, HPAs, Switches usw. anzeigt. Dadurch kann der Maschinenbediener auf die individuellen Geräte zugreifen. Über eine Modemverbindung kann das System ohne Leistungsmangel kontrolliert werden. Jedes dynamische Symbol auf der Systemansicht kann geklickt werden um spezifische Auskunft zum Beispiel während der Fehlermeldung zu geben (Abb. 6). Abbildung 6: Alarm-Box Jedes Gerät kann kontrolliert und über seine eigene Schnittstelle gesteuert werden. Im Menü befinden sich mehrere Funktionalitäten der Überwachung und des Kontrollsystems. Allerdings laufen die zeitkritischen Funktionalitäten auf einem getrennten Echtzeit -PC. Jedes Ereignis im System führt zu einer neuen Darstellung der grafischen Benutzeroberfläche und die Warnungen werden als "aktiver" Status in der Farbe geführt (siehe Tabelle 1). grün hellrot dunkelrot gelb weiß die Ausrüstung ist ok die Ausrüstung meldet ein Fehler Kommunikationsfehler die Ausrüstung ist in einem lokalen Modus die Ausrüstung ist in der Wartung Tabelle 1: Farbenschema des M&C Systems

21 21 / M&C Subsysteme als grafische Elemente Das graphische Element ist ein Bestandteil, das ein großes Angebot an Funktionalitäten unterstützt und kundengerecht angefertigt werden kann, um sich an viele Benutzerschnittstellen-Bedürfnisse anzupassen. Diese Steuerungen können für viele Benutzer entwickelt werden. Die Browser-Anwendung ist im Stande, jedes einzelne Element zu bedienen, seine Eigenschaften zu kontrollieren und die Methoden auf dieses Element zu verwenden. Der Benutzer kann das Äußere der graphischen Elemente selbst definieren und ändern. Up/Down/TLT-Converter F: Frequenz in MHz A: Attenuation in db Ausgang an oder aus die Farbe gibt Auskunft über die ergänzende Information Abbildung 7: Anzeige eines Up/Down/TLT-Converters HPA P: Energie in W Hochspannung an oder aus die Farbe gibt Auskunft über die Funktionsfähigkeit eines HPAs LNA Abbildung 8: Anzeige eines HPAs die Farbe gibt Auskunft über die ergänzende Information Abbildung 9: Anzeige eines LNAs

22 22 / 81 ACU A: Azimut E: Erhebung P: Polarisation die Farbe gibt ergänzende Information Dehydrator, Deicing, SCU Abbildung 10: Anzeige einer ACU zeigen nur ihren Warnungsstatus gemäß der Farbe Control Abbildung 11: Anzeige von Dehydrator, Deicing, SCU Nachdem das System gestartet ist, wird der Bildschirm Spitzenniveau-System- Schirm genannt, da der Maschinenbediener jeder Zeit die Funktionen kontrollieren kann. Der Lokale -PC oder der Entfernte -PC können die Kontrolle übernehmen. Jedes Element im ganzen System ist nur dann betriebsfähig, wenn der Benutzer die Kontrolle über dieses Element bekommen darf. Wenn der momentane Status "No local control" ist (siehe Abb. 12), wird es dem Benutzer nicht erlaubt, die Station zu kontrollieren. Drückt man den Knopf "No local control, fragt jedes Element auf dem Bildschirm den Benutzer, ob er wirklich die Kontrolle übernehmen will. Nach einer Bestätigung geht der Knopf zur "Local control", aber auch nur dann, wenn kein anderer PC im Netz die Kontrolle hat. Abbildung 12: Status "No local control"

23 23 / 81 Wenn alle Einstellungsänderungen der Ausrüstung erledigt sind, soll die Kontrolle veröffentlicht werden (siehe Abb. 13) um die Kontrolle von einem anderen PC im Netz zu erlauben. Abbildung 13: Status "Local control" Popup-Fenster der Subsysteme Der Zugang zu den individuellen Popup-Fenstern wird erreicht, wenn man den Cursor über das spezifische Objekt einstellt und auf die linke Maustaste klickt. Die Popup-Fenster sind Browser-Fenster, die sich durch Javascript zusätzlich zum aktuellen Hauptfenster öffnen und sich über das Hauptfenster legen. Switch-Popup Wenn der Maschinenbediener einen Switch wählt, sendet das M&C System einen Befehl an den Switch. Als Reaktion auf diesen Befehl sendet der Switch seine Position zurück. Das Bildschirm spiegelt sowohl die neue Position vom ihm als auch die übersendeten Pfade wieder. Dieser Vorgang findet jedes Mal statt, wenn der Toggle position -Knopf (siehe Abb. 14) geklickt wird. Dieselbe Änderung wird auf dem Bildschirm in Echtzeit angezeigt, wobei jedes Gerät einen Befehl erhält, dass sein Status im Zusammenhang mit der Systemoperation sich geändert hat. Abbildung 14: Popup für Switch Das Fenster teilt dem Benutzer die folgenden Informationen mit (siehe Tabelle 2): Switch CURRENTLY TOGGLE logischen Namen schalten gegenwärtige Position zum Wählen der Position des Switches, dieser Knopf wird deaktiviert, wenn der

24 24 / 81 Switch im erreichbaren Zugang ist CLOSE REFRESH schließt das Switch-Fenster momentanen Switch neu darstellen Tabelle 2: Switch-Popup-Informationen Die Position vom Switch wird über PLC (Programmable Logic Controller) dem System bekannt gegeben. Jedes Mal wird die Position vom Switch bei einer Änderung, welche die neue Position sofort anzeigt, neu angezeigt. Die drei möglichen Positionen für einen Switch sind in der Tabelle 3 dargestellt: Position 1/2: Switch ist mit dem System verbunden und OK Position 0: Switch ist mit dem System nicht verbunden Position 3: Switch ist mit dem System verbunden, aber nicht richtig bedient UP / DOWN Converter-Popup Tabelle 3: mögliche Switch-Positionen Das Converter-Bedienungsfeld (siehe Abb. 15) ermöglicht dem Benutzer den betrieblichen Hintergrund des ausgewählten Converters zu beobachten und zu verändern. Der Converter kann in der Wartung für die manuelle Operation gesetzt werden.

25 25 / 81 Abbildung 15: Popup eines Converters Die Benutzerschnittstelle für einen Converter stellt in der Tabelle 4 folgende Informationen zur Verfügung: CONTROL MAINTENANCE CLOSE REFRESH Status schaltet den Converter in die lokale Kontrolle Schalter zwischen der Wartung und Online, Einstellen des Converters in die Wartung das Fenster schließen den Converter-Status neu darstellen REMOTE: automatische Operation LOCAL: keine automatische Operation Alarms zeigt die Beschreibung der aktuellen Warnungen Output Frequency Transponder Attenuation tatsächlicher Produktionsstatus tatsächliche Converter-Frequenz gegenwärtiger Converter-Transponder, bereitet die Liste von vorherbestimmten Transponders aus gegenwärtige Converter-Dämpfung Tabelle 4: Einstellungen für Converter-Popup

26 26 / 81 HPA-Popup Das HPA-Popup ermöglicht dem Benutzer, die betrieblichen Informationen des ausgewählten HPA zu manipulieren (siehe Abb. 16). Abbildung 16: HPA-Popup In der Tabelle 5 sind die Informationen für einen HPA-Popup dargestellt: CONTROL MAINTENANCE CLOSE REFRESH Beam ALC Power schaltet den HPA lokal; es erlaubt dem Benutzer, alle HPA-Einstellungen manuell zu ändern Schalter zwischen der Wartung und Online das Fenster schließen den HPA-Status neu darstellen gegenwärtiger HPA-Produktionsstatus Strom HPA-ALC (Automatic Level Control) graphische Anzeige der Energie Tabelle 5: Informationen für einen HPA-Popup

27 27 / 81 3 Programmierkonzepte in Java In diesem Kapitel sollen die verschiedenen Konzepte, die eine Basis für die gesamte Arbeit darstellen, dargelegt werden. Dabei wird auf Entwurfsmuster und die Modellierung mit UML eingegangen. 3.1 Model - View - Controller - Muster ( MVC ) Entwurfsmuster (Design Patterns) wie Observer, Composite und MVC, die insbesondere die Einarbeitung in fremden Programmcode erleichtern, werden als methodisches Wissen bezeichnet. Die Entwurfsmuster Model-View-Controller, kurz MVC -Muster genannt, wurden ursprünglich für die Erstellung der Benutzeroberflächen mit Smalltalk-80 verwendet. Das Ziel dieser Entwurfsmuster ist die Auflösung von interaktiven Applikationen in Teilsysteme mit abgegrenzter Funktionalität und hohem Grad der Wiederverwendung. In der Softwarewelt existiert schon lange die Trennung von Eingabe, Verarbeitung und Ausgabe. Das MVC -Muster überträgt diese Trennung auf GUI (Graphical User Interface)-basierte Systeme. Dabei entspricht der Controller der Eingabe, das Model der Verarbeitung und der View der Ausgabe. Die drei Komponenten werden dabei separat behandelt und implementiert. Dies macht nicht nur die Erstellung von Anwendungen mit mehreren synchronen Ansichten auf dieselben Daten leichter, sondern auch die Behandlung von Fehlern, da solche leichter zu finden sind. Das MVC -Modell garantiert, dass Änderungen im Modell zu den entsprechenden Änderungen in den Views führen. Im Folgenden werden die drei Komponenten Model, View und Controller kurz beschrieben [kau]. Model: repräsentiert die Daten einer Anwendung. Neben der Verwaltung der Daten führt es auch alle Änderungen auf diesen aus. Das Model liefert auf eine Anfrage den Zustand der Daten und reagiert auf Befehle diesen zu ändern. Das Model kennt kein konkretes View, enthält aber normalerweise eine Referenz auf eine View-Basisklasse. Über diese kann das Model die Basisschnittstelle aller Views benutzen. Ein Model kann mit beliebig vielen Views verbunden sein. View: übernimmt die grafische Darstellung der Daten. Es stellt eine mögliche visuelle Abbildung des Models dar. Ein View-Objekt ist dabei immer mit genau einem Model verbunden. Für den Fall, dass sich das Model ändert, erstellt das View-Objekt automatisch eine neue passende Darstellung des Models und stellt diese grafisch dar. Das View-Objekt besitzt immer eine Referenz auf ein konkretes Model. Über diese Referenz können die Methoden des Models direkt aufgerufen werden. Jedes View-Objekt muss die Möglichkeit zum Selbstupdate besitzen, damit es das Model immer korrekt darstellen kann. Normalerweise besitzt ein View-Objekt auch eine Referenz auf den Controller. Über diese sollte das Objekt aber immer nur die Basisschnittstelle des Controllers benutzen, da sonst der Austausch des Controllers nicht mehr so einfach durchzuführen ist. Controller: definiert, wie ein Benutzer mit der Applikation interagieren kann. Er nimmt die Eingaben vom Benutzer entgegen und bildet diese auf die Funktionen

28 28 / 81 des Models oder des Views ab. Damit dies funktionieren kann, muss der Controller natürlich Zugriff sowohl auf das Model als auch auf den Views haben. In der Abbildung 17 regelt das MVC -Entwurfsmuster das Zusammenspiel der drei vorgestellten Komponenten. Es ergeben sich also die folgenden Abhängigkeiten [oec03]: Controller1 Controller2 Controller3 Model * «Interface» ModelListener have implements View1 View2 View3 Abbildung 17: MVC -Entwurfsmuster Zwischen dem Model und dem View existiert ein so genanntes notify -Protokoll. Im Falle einer Veränderung des Zustands des Models benachrichtigt dieses alle verbundenen Views. Damit dies möglich ist, muss ein View natürlich vorher beim Model angemeldet sein. Die Beziehung zwischen dem Model und View wird durch das Observer - Entwurfsmuster verallgemeinert. Dieses Entwurfsmuster beschreibt zwei Objekte. Ein so genanntes Subjekt-Objekt, Model, das eine Liste mit allen verbundenen Observer- Objekten besitzt und ein Observer-Objekt, View, das mit einem Subjekt verbunden wird und immer benachrichtigt wird, wenn sich das Subjekt ändert. Das Model bietet eine Schnittstelle ModelListener, über die sich Observer an- und abmelden können. Auf der anderen Seite muss ein Observer-Objekt über eine Update-Schnittstelle verfügen. Bezogen auf die MVC -Muster stellt das Model ein Subjekt-Objekt dar und ein View- Objekt kann als Observer betrachtet werden. Wie bereits erwähnt, sollte ein View- Objekt so implementiert werden, dass es nicht zu eng mit einem konkreten Controller verbunden wird. Dies hat den Vorteil, dass der Controller zur Laufzeit ausgewechselt werden kann. So könnte zum Beispiel ein View-Objekt dadurch deaktiviert werden, dass man es mit einem Controller verbindet, der Benutzereingaben stets ignoriert.

29 29 / UML-Modellierung Die Modellierung des Konzeptes erfolgt mit der UML (Unified Modeling Language). Die UML ist eine weit verbreitete, objektorientierte grafische Modellierungssprache. Sie hat sich speziell im Bereich des Software Engineering etabliert. Primär wird die UML, als Sprache mit einer definierten Semantik, zum Austausch von Ideen und zum Verständnis von modellierten Modellen verwendet. Durch die unterschiedlichen Diagrammarten wie Klassendiagramme, Sequenzdiagramm usw. erlaubt die UML verschiedene Sichten auf ein Modell. Aus diesem Grund spielt die UML inzwischen eine immer größere Rolle in der Softwareentwicklung, weil sie eine einheitliche Syntax zur Beschreibung von Modellen und somit von Mustern liefert [pul] Klassenstruktur und Klassenhierarchie Das M&C System lässt sich in einem Klassendiagramm nach dem in der Abbildung 17 genannten MVC -Entwurfsmuster darstellen (siehe Abb. 18). Das Model hat eine Referenz auf alle HitecComponents. Die Komponenten bzw. Objekte eines Typs beispielsweise ACU erben alles von der abstrakten Klasse HitecComponent. Jeder Typ hat eine Referenz auf sein eigenes Icon und ein Icon, zum Beispiel ACUIcon, wird von der abstrakten Klasse HitecIcon abgeleitet. Diese beide abstrakten Klassen HitecComponent und HitecIcon betrachtet man als Schnittstellen, da alle wichtigen virtuellen und abstrakten Funktionen, welche die Sub-Klassen benutzen, in diesen Super-Klassen implementiert sind. Wie im Abschnitt 3.1 bereits erläutert, haben alle Controller und Views Referenzen auf das Model, um die notwendige Information zu erhalten. ACUController Model * «Interface» IModelListener SwCotroller ControlController * «abstract» HitecComponent ACUView SwView ACU Sw Control ControlView ACUIcon SwIcon ControlIcon «abstract» HitecIcon have implements extends Abbildung 18: MVC -Klassendiagramm

30 30 / Paket-Struktur Das oben erklärte Entwurfsmuster MVC spiegelt sich auch im Aufbau der Pakete vom M&C System wieder. Ein Paket ist eine Gruppe von thematisch zusammengehörigen Klassen und Schnittstellen. Alle Klassen werden dabei grob nach den drei Komponenten dieses Musters gegliedert. Die Komponente Model lässt sich noch in weitere Unterpakete unterteilen. Eine Auflistung aller Pakete mit einer kurzen Beschreibung der enthaltenen Klassen wird hier vorgenommen: diplomarbeit.model: hier sind sowohl die wichtigen Klassen des Datenmodells, wie zum Beispiel die abstrakten Klassen HitecComponent und HitecIcon, die eine Beschreibung für ein einzelnes Objekt und seine grafische Darstellung liefern, als auch die Unterpakete wie zum Beispiel acu, sw, control usw., die zur Komponente Model gehören, enthalten (siehe Abb. 19). Abbildung 19: diplomarbeit.model -Klassendiagramm

31 31 / 81 diplomarbeit.model.acu: dieses Paket besteht aus einer Klasse ACU.java, worin alle Objekte des Typs ACU erzeugt werden können, einer ACUIcon.java Klasse und einer XML-Datei acu_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse ACU hat Referenz auf die Klasse ACUIcon (siehe Abb. 20). Das ganze Paket wird als eine Datei acu.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 20: diplomarbeit.model.acu -Klassendiagramm diplomarbeit.model.control: dieses Paket besteht aus einer Klasse Control.java, einer ControlIcon.java Klasse und einer XML-Datei control_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse Control hat Referenz auf die Klasse ControlIcon (siehe Abb. 21). Das ganze Paket wird als eine Datei control.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 21: diplomarbeit.model.control -Klassendiagramm diplomarbeit.model.sw: dieses Paket besteht aus einer Klasse Sw.java, einer SwIcon.java Klasse und einer XML-Datei sw_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse Sw hat Referenz auf die Klasse SwIcon (siehe Abb. 22). Das ganze Paket wird als eine Datei sw.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 22: diplomarbeit.model.sw -Klassendiagramm diplomarbeit.model.twta: dieses Paket besteht aus einer Klasse TWTA.java, einer TWTAIcon.java Klasse und einer XML-Datei twta_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse TWTA hat Referenz auf die Klasse TWTAIcon (siehe Abb. 23). Das ganze Paket wird als eine Datei twta.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert.

32 32 / 81 Abbildung 23: diplomarbeit.model.twta -Klassendiagramm diplomarbeit.model.linec: dieses Paket besteht aus einer Klasse LineC.java, einer LineCIcon.java Klasse und einer XML-Datei linec_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse LineC hat Referenz auf die Klasse LineCIcon (siehe Abb. 24). Das ganze Paket wird als eine Datei linec.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 24: diplomarbeit.model.twta -Klassendiagramm diplomarbeit.model.linehorizontal: dieses Paket besteht aus einer Klasse LineHorizontal.java, einer LineIconHorizontal.java Klasse und einer XML-Datei linehorizontal_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse LineHorizontal hat Referenz auf die Klasse LineIconHorizontal (siehe Abb. 25). Das ganze Paket wird als eine Datei linehorizontal.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 25: diplomarbeit.model. linehorizontal -Klassendiagramm diplomarbeit.model.linevertical: dieses Paket besteht aus einer Klasse LineVertical.java, einer LineIconVertical.java Klasse und einer XML-Datei linevertical_template.xml, wo alle Eigenschaften mit ihren default-werten für alle Objekte eines Typs gespeichert sind. Die Klasse LineVertical hat Referenz auf die Klasse LineIconVertical (siehe Abb. 26). Das ganze Paket wird als eine Datei linevertical.jar ohne.java-dateien, nur mit.class-dateien an die Kunden geliefert. Abbildung 26: diplomarbeit.model. linevertical -Klassendiagramm

33 33 / 81 diplomarbeit.view: enthält alle notwendigen Klassen für die Darstellung der grafischen Benutzeroberfläche, wie z.b. die Popups für jedes einzelne Objekt ( ACUPopup, TWTAPopup, SwPopup usw.) oder ein AboutPopup, der die Informationen zu dem System (Name des Systems) und zu dem Unternehmen selbst (Adresse, Telefonnummer) liefert. Alle Popups sind von der abstrakten Klasse GeneralPopup abgeleitet (siehe Abb. 27). Abbildung 27: diplomarbeit.view -Klassendiagramm diplomarbeit.controller: dieses Packet enthält die Controller-Klassen ( ACUController, SwController, TWTWController usw.), mit deren Hilfe die grafische Benutzeroberfläche des M&C Systems manipuliert (die Eigenschaftswerte bei den Objekten zur Laufzeit verändern usw.) werden kann. Alle Controller-Klassen implementieren die Schnittstelle ActionListener (siehe Abb. 28). Abbildung 28: diplomarbeit.controller -Klassendiagramm

34 34 / 81 4 Realisierung 4.1 Datenstruktur HashMap Datenstrukturen und Algorithmen sind eng miteinander verbunden und die Wahl der richtigen Datenstruktur ist nicht immer einfach. Der Versuch, die Eigenschaften eines Objekts fest in den Parametern eines Konstruktors zu übergeben, hat in diesem Fall bewiesen, dass das kein richtiges Ergebnis liefern kann. Dadurch können die Kunden die Eigenschaften von den Objekten selbst nicht erweitern oder ändern. Eine weitere und auch korrekte Lösung ist die Datenstruktur HashMap, da der Vorteil dieser Datenstruktur die dynamische Speicherverwaltung ist. Der Benutzer kann sehr schnell die Attribut-Struktur dynamisch ändern, erweitern oder reduzieren. Aus diesem Grund wurde die Datenstruktur HashMap in dieser Arbeit ausgewählt Eigenschaften von HashMap Eine HashMap ist eine sehr schnelle Datenstruktur, die einen Schlüssel mit einem Wert verknüpft. Wegen dieser Arbeitsweise wie ein Gedächtnis wird sie auch assoziativer Speicher genannt. Die Datenstruktur ist vergleichbar mit einem Wörterbuch oder Nachschlagewerk. Man betrachtet beispielsweise ein Telefonbuch. Dort sind Namen (Schlüssel) mit Nummern (Werten) verbunden. Die Frage nach einer Telefonnummer kann die Datenstruktur schnell beantworten, die andere Richtung dauert wesentlich länger, da hier keine Verknüpfung existiert. Sie ist immer nur einseitig. Für wechselseitige Beziehungen ist die Klasse HashMap nicht vorbereitet [gal4]. ein HashMap-Objekt dient zur Verwaltung von Einträgen, jeder Eintrag besteht aus Objekten: dem Schlüsselobjekt und dem Wertobjekt jedes Schlüsselobjekt kann nur einmal in der HashMap enthalten sein jedem Schlüsselobjekt kann nur ein Wertobjekt zugeordnet werden am effektivsten erfolgt die Suche nach einem bestimmten Wert durch Angabe des Schlüssels Die Klasse HashMap eignet sich ideal dazu, viele Elemente unsortiert zu speichern und sie über die Schlüssel schnell wieder zu finden. Für eine geringe Anzahl von Elementen könnte unter Umständen eine Liste besser geeignet sein, da sie etwas weniger Speicherplatz benötigt M&C System-Datenstruktur mit HashMap In der Abbildung 29 wird ein Teilabschnitt der ganzen M&C System-Datenstruktur mittels einer HashMap präsentiert. Wie oben schon erwähnt wurde, sind die Elemente der HashMap Paare aus Schlüssel und zugehörigem Wert. Das Wiederfinden der Werte ist nur über Schlüssel effizient möglich.

35 35 / 81 Wie die Abbildung 29 zeigt, sind in der AllPropertiesMap alle möglichen Eigenschaften bzw. Attribute von Objekten gespeichert. Ihre Schlüssel wie type, positionx, color usw. sind String-Objekte und die Werte sind die Referenzen auf die unteren HashMaps. Sowohl in der TypesMap, die alle existierenden Typen des M&C Systems darstellt, als auch in der ColorMap sind alle Schlüssel und Werte String- Objekte. Im Vergleich zu den TypesMap, und ColorMap, verfügt die OutputsMap als Werte über Referenzen auf die schon erzeugten Objekten. Zum Hinzufügen von Schlüssel-Werte-Paaren dient die Methode put(). Das erste Argument ist der Schlüssel und das zweite Argument der mit dem Schlüssel zu assoziierende Wert. Der Schlüssel und der Wert können null sein. Falls sich beim Einfügen zu diesem Schlüssel schon ein Eintrag in der HashMap befand, so wird der alte Wert überschrieben und der vorherige Wert zum Schlüssel zurückgegeben. Um ein Element wieder auszulesen, verwendet man die Methode get(key). Das Argument identifiziert das zu findende Objekt über den Schlüssel, in dem das Objekt herausgesucht wird, welches den gleichen Hash-Wert besitzt. Wenn das Objekt nicht vorhanden ist, ist die Rückgabe null. Allerdings kann auch null der mit einem Schlüssel assoziierte Wert sein, denn null ist als Wert durchaus erlaubt. AllPropertiesMap TypesMap ColorMap "type" "sw_1" "Switch" "sw_1~value" "0" " " "positionx" "color "..." "acu_1" "sw_2" "control_1" "..." "ACU" "Switch" "Control" "sw_1~min" "sw_1~max" "..." "acu_1~value" "acu_1~min" "0" "1" "..." "1" "0" "outputlist "positiony" "coordinatelist" OutputsMap "sw_1~acu_1" "..." "sw_2~acu_2" "control_1~sw_3" acu_1 acu_2 sw_3 "acu_1~max" "..." "sw_2~value" "sw_2~min" "sw_2~max" "..." "1" "..." "1" "0" "1" "..." Abbildung 29: HashMap-Datenstruktur

36 36 / Datenverwaltung mit XML Die XML (Extensible Markup Language) bietet eine einfache Möglichkeit, jede Art von Daten in einem standardisierten Format zu speichern. In den letzten Jahren hat sich XML zu einem bedeutenden und weit verbreiteten Format zum Datenaustausch und zur Datenspeicherung entwickelt. Als Gründe für diese Entwicklung werden in [fri03] folgendermaßen genannt: mittels XML kann man verschiedenste Daten verwalten XML hat nicht nur eine einfache und klar definierte Struktur; es kann auch leicht gelesen und maschinell verarbeitet werden durch Verwendung von StyleSheets kann die Darstellung von XML-Dokumenten einfach an die persönlichen Wünsche angepasst werden XML bietet diverse Möglichkeiten zur Verifizierung von Dokumenten Aufbau von XML-Dokumenten Ein XML-Dokument ist aus strukturierten Elementen, die hierarchisch geschachtelt sind, aufgebaut. Dazwischen befindet sich der Inhalt, der aus weiteren Elementen (daher hierarchisch) und reinem Text bestehen kann. Beispiele für XML-Elemente können so aussehen: <name>paul</name> oder <person><name>paul</name></person> Die Elemente können Attribute enthalten, die zusätzliche Informationen in einem Element ablegen. Attribute werden verwendet, um detaillierte Informationen über ein Objekt zu transportieren. Ein Attribut besteht aus einem Attributnamen und einem Wert. Der Attributwert steht immer in einfachen oder doppelten Anführungszeichen und wird dem Attributnamen mit dem Gleichheitszeichen zugewiesen. <person sex= male ><name>paul</name></person> In einem XML-Dokument gibt es immer nur ein Wurzelelement, das die gesamten Daten wiederum als Elemente enthält und somit das gesamte Dokument darstellt. Ein XML-Dokument ist also als Baum aufgebaut. Die folgende Abbildung 30 soll diese Baumstruktur verdeutlichen. Aus diesen wenigen, grundlegenden, einfachen Konzepten lassen sich beliebig komplexe Strukturen aufbauen.

37 37 / 81 people person person name name Marta Paul Abbildung 30: XML-Baumstruktur Speichern von Systemdaten in XML XML wird nicht nur zum Datenaustausch verwendet. Es bietet sich in vielen Anwendungen als Format zum Speichern von unterschiedlichsten Daten an. Bei der Entwicklung von Software bietet XML die Möglichkeit, ein eigenes Datenformat zu definieren. Trotzdem ist die Anbindung an andere Systeme und die Weiterverwendung der gespeicherten Daten einfach möglich. Außerdem sind die Daten für den menschlichen Benutzer einfach zu lesen und auch mit einem einfachen Text-Editor zu bearbeiten. Aus diesen Gründen wird XML auch gerne zur Beschreibung von Konfigurationsdateien für verschiedene Applikationen eingesetzt [fri03]. In dieser Arbeit werden vier verschiedenen Arten von XML-Dateien definiert: type_templates.xml, *_template.xml, hitec_components.xml und *_components.xml. Anhand der type_templates.xml -Datei, wo alle Referenzen auf alle möglichen Typen gespeichert sind, kann der Benutzer/Kunde viele Objekte erzeugen. Dadurch kann man die unterschiedlichen kundenspezifischen Typmengen dynamisch definieren (siehe Abb. 31). <?xml version="1.0" encoding="utf-8"?> <type_templates> <type name="acu"> </type> model/acu/acu_template.xml <type name="sw"> model/sw/sw_template.xml

38 38 / 81 </type> <type name="control"> </type> model/control/control_template.xml <type name="line"> </type> model/line/line_template.xml </type_templates> Abbildung 31: Beispiel einer type_templates.xml -Datei Das Aussehen und Verhalten jedes ACU -Objekts kann mittels der acu_template.xml -Datei konfiguriert werden. In dieser Datei werden die Standardattribute mit ihren default-werten für jedes ACU -Objekt festgelegt. Der Benutzer kann diese Standardwerte selbst ändern, löschen oder erweitern (siehe Abb. 32). <?xml version="1.0" encoding="utf-8"?> <acu_template> <component type="acu" name=""> <position group="status" typ="dyn" min="0" max="2" format="x" driver="can_sw">0 </position> <color group="gui" typ="stat" min="0" max="3" format="" driver="gui">1 </color> <positionx group="gui" typ="stat" min="0" max="800" format="" driver="gui">10 </positionx> <positiony group="gui" typ="stat" min="0" max="600" format="" driver="gui">10 </positiony> <width group="gui" typ="stat" min="40" max="80" format="" driver="gui">80 </width> <height group="gui" typ="stat" min="20" max="60" format="" driver="gui">60 </height> </component> </acu_template> Abbildung 32: Beispiel eines acu_template.xml -Dokuments

39 39 / 81 Die Referenzen auf alle existierende *_components.xml -Dateien befinden sich in der hitec_components.xml -Datei. Jede *_components.xml -Datei enthält alle erzeugten Objekte nur eines bestimmten Typs Bearbeiten der XML-Dateien mit JDOM Für XML-basierte Daten gibt es zwei wohldefinierte Verarbeitungsverfahren: DOM (Document Object Model) und SAX (Simple API for XML Parsing). Während DOM das gesamte Dokument in einer internen Struktur einliest und bereitstellt, verfolgt SAX einen ereignisorientierten Ansatz [gal4]. JDOM (Java Document Object Model) ist eine einfache Möglichkeit, XML- Dokumente leicht und effizient mit einer Java -API zu nutzen. Im Gegensatz zu SAX und DOM, die unabhängig von einer Programmiersprache sind, wurde JDOM speziell für Java entwickelt. Während DOM keine Rücksicht auf die Java -Datenstrukturen nimmt, nutzt JDOM konsequent die Collection-API und ermöglicht eine etwas bessere Performance und eine bessere Speichernutzung als bei DOM. Über JDOM lassen sich die XML-formatierten Dateien einlesen, manipulieren und dann wieder schreiben. Mit einfachen Aufrufen lässt sich auch eine interne Datenstruktur der XML-Datei erzeugen. Dadurch kann jederzeit auf alle Elemente der XML-Datei zugegriffen werden. Die Klasse Document kann selbst nicht aus anderen Quellen die Daten entnehmen. Es sind immer die Builder, die Document-Objekte liefern. Es ist möglich, ein JDOM- Dokument sowohl mit Hilfe eines SAXBuilder (siehe Abb. 33) als auch mit einem DOMBuilder zu erzeugen. try { } SAXBuilder builder = new SAXBuilder(); // Erzeugen eines JDOM-Dokuments z. B. anhand der Datei acu_components.xml Document doc = builder.build(typexmlpath); catch (JDOMException e) { } e.printstacktrace(); catch (IOException e) { } e.printstacktrace(); Abbildung 33: Erzeugen eines JDOM-Dokuments mit Hilfe eines SAXBuilder

40 40 / 81 Wenn ein DOM nicht unbedingt benötigt wird, ist es sinnvoll, ein JDOM-Dokument mit dem SAX-Parser zu erzeugen. Dies schont die Ressourcen und ist viel schneller, da keine spezielle Datenstruktur für den JDOM-Baum erzeugt werden muss. Das Ergebnis ist in beiden Fällen ein JDOM-Dokument, das die XML-Datei in einer baumähnlichen Struktur abbildet. Die vorangegangene Beschreibung soll durch die folgende Abbildung noch verdeutlicht werden. XML-Dokument SAXBuilder DOMBuilder JDOM-Dokument DOM-Dokument Abbildung 34: Ablauf vom JDOM 4.3 Erzeugen der Objekte mit Reflection Reflection dient dazu, die Bestandteile von Klassen (Datenelemente, Konstruktoren und Methoden) dynamisch zur Laufzeit zu analysieren und zu benutzen. Es gestattet somit, in einem Java -Programm die Klassen und Interfaces zu benutzen, die zum Zeitpunkt des Kompilierens noch nicht bekannt sind. Die Reflection wird unter anderem in folgenden Fällen eingesetzt [dpj]: das dynamische Laden von Klassen in eine Anwendung und die Erzeugung von zugehörigen Exemplaren. Ein häufiger Anwendungsfall hierfür ist das dynamische Einbinden von Klassen, die eine Art Treiberfunktion haben. Der Name der Treiberklasse wird dabei in einer Konfigurationsdatei angegeben und beim Start der Applikation ausgelesen. Anschließend kann mit einem Konstruktoraufruf über das Reflection-API ein Exemplar der Treiberklasse erzeugt werden. auch bei Java -Beans kommt die Reflection-API zum Einsatz, um die Datenelemente der Bean-Klassen (in diesem Kontext meist Properties genannt) zu ermitteln und deren Werte auszulesen bzw. neu zu setzen. Diese Properties sind zwar spezifisch für alle Bean-Klassen, jedoch folgen die Bean-Properties einem Muster: zum Einstellen einer Property gibt es eine setxxx()-methode und zum Auslesen eine getxxx-methode, wobei XXX für den Namen der Property steht. Anhand dieses Musters kann eine Anwendung die Properties einer Bean- Klasse erkennen, indem sie nach diesen setxxx()- und getxxx-methoden sucht.

41 41 / 81 Allgemeiner kann man sagen, dass der Einsatz des Reflection-API immer dann erforderlich ist, wenn zur Laufzeit die Klassen eingebunden werden sollen, die zum Compile-Zeitpunkt noch nicht bekannt sind oder deren Schnittstellen nicht durch Interfaces oder abstrakte Klassen definiert sind, sondern nur Schnittstellenkonventionen und -mustern folgen. Man möchte alle zum laufenden Programm gehörenden Klassen anzeigen und dazu noch weitere Informationen wie Variablenbelegung, definierte Methoden, Konstruktoren und Informationen über die Vererbungshierarchie. Dafür wird die vordefinierte Klasse Class benötigt. Die Exemplare der Klasse Class sind Objekte, die jeweils eine Java -Klasse repräsentieren. In diesem Punkt unterscheidet sich Java von vielen herkömmlichen Programmiersprachen wie C++, da bei Java Eigenschaften von Klassen vom gerade laufenden Programm mittels der Class-Objekte abgefragt werden können. Neben normalen Klassen werden auch Schnittstellen durch je einen Class-Objekt repräsentiert. Zunächst muss man das zugehörige Class-Objekt für eine bestimmte Klasse in Erfahrung bringen und dies ist über mehrere Wege möglich [gal4]: Ist ein Exemplar der Klasse verfügbar, so wird die getclass()-methode des Objekts aufgerufen, und man erhält das Class-Exemplar der zugehörigen Klasse. Dies ist dann praktisch, wenn der Typ des Objekts nicht genau bekannt ist. Hat man schon ein Class- Objekt, ist aber nicht an ihm, sondern an dessen Vorfahren interessiert, so kann man einfach mit getsuperclass() ein Class-Objekt für die Oberklasse erhalten. Jede Klasse enthält eine Klassenvariable mit Namen.class vom Typ Class, die auf das zugehörige Class-Exemplar verweist. Auch auf primitiven Datentypen ist das Ende.class erlaubt. Eine Klasse kann auch über ihren Namen über die Klassenmethode Class.forName(String) angesprochen werden. Dadurch wird eine Klasse mit dem angegebenen Namen geladen, und wir erhalten das zugehörige Class-Exemplar als Ergebnis. Genau dieser Weg wird in der Abbildung 35 gezeigt: String myclassname = type; Class hitecclass = null; try { } hitecclass = Class.forName("model." + myclassname.tolowercase() + "." + myclassname); Abbildung 35: Ausschnitt aus dem Quellcode Der new-operator erzeugt in Java zur Laufzeit ein Exemplar einer Klasse. Der Compiler muss dazu den Namen der Klasse wissen, so dass er einen passenden Konstruktor-Aufruf erzeugen kann. Kennt man aber erst später zur Laufzeit den Namen der gewünschten Klasse für unser Objekt, so kann man die new-operation nicht verwenden, denn für diesen Spezialfall ist der new-operator nicht gedacht. Um Exemplare bestimmter Klassen dynamisch zu erzeugen, brauchen wir wieder ein passendes Class-Objekt. Nun holen wir uns mit getconstructor() ein Konstruktor- Objekt, das den gewünschten Konstruktor beschreibt. Jedes Konstruktor-Objekt kennt eine newinstance(object[ ])-Methode, die ein neues Exemplar erschafft, indem sie den

42 42 / 81 zugrunde liegenden Konstruktor aufruft. Der Parameter von newinstance() ist ein Feld von Werten, die an den echten Konstruktor gehen. Glücklicherweise kennt Java anonyme Arrays, so dass wenig zu schreiben bleibt. Bei einem parameterlosen Konstruktor kann man einfach newinstance(null) aufrufen (siehe Abb. 36): HitecComponent hiteccomponent = null; try { } hiteccomponent = (HitecComponent) htcomponentclass.newinstance(); hiteccomponent.setid(id); // ein erzeugtes Objekt mit einem eindeutigen Namen in die Liste einfügen this.addcomponent(hiteccomponent); catch (InstantiationException e) { } e.printstacktrace(); Abbildung 36: Ausschnitt aus dem Quellcode

43 43 / 81 5 Benutzung des Programms 5.1 Elemente der Benutzeroberfläche Das AWT (Abstract Window Toolkit) von Java enthält verschiedene Klassen, die über eine gemeinsame Vererbungshierarchie miteinander in Verbindung stehen (siehe Abb. 37). Abbildung 37: Vererbungshierarchie der Klassen Die Klasse Component ist eine abstrakte Klasse, deren Aufgabe darin besteht, ein Programmelement zu repräsentieren, das eine Größe und Position hat und das in der Lage ist, eine Vielzahl von Ereignissen zu senden und auf diese zu reagieren. Sie wird für Swing-Komponenten noch einmal zu JComponent erweitert. Allerdings leitet JComponent nicht direkt von Component ab, sondern erst von Container (und Container dann direkt von Component). Das hat die Konsequenz, dass jedes JComponent automatisch auch ein Container ist [klu]. Container ist ebenfalls eine abstrakte Klasse. Sie ist dafür zuständig, innerhalb einer Komponente andere Komponenten aufzunehmen. Container stellt Methoden zur Verfügung, um Komponenten hinzuzufügen oder sie zu entfernen, und realisiert in Zusammenarbeit mit den LayoutManager-Klassen die Positionierung und Anordnung der Komponenten. Panel ist die einfachste konkrete Klasse mit den Eigenschaften von Component und Container. Sie wird verwendet, um eine Sammlung von Dialogelementen mit einem vorgegebenen Layout zu definieren und wieder verwendbar zu machen. Nützlich ist die Klasse auch beim Layouten von Dialogen, weil sie es ermöglicht, Teildialoge zu schachteln und mit eigenen Layoutmanagern zu versehen.

44 44 / 81 Die für die Entwicklung von Applets wichtige Klasse Applet ist eine direkte Unterklasse von Panel. Sie erweitert zwar die Funktionalität der Klasse Panel um Methoden, die für das Ausführen von Applets von Bedeutung sind, bleibt aber letztlich ein Programmelement, das eine Größe und Position hat, auf Ereignisse reagieren kann und in der Lage ist, weitere Komponenten aufzunehmen. Die Klasse Window abstrahiert ein Top-Level-Window ohne Rahmen, Titelleiste und Menü. Sie ist für Anwendungen geeignet, die ihre Rahmenelemente selbst zeichnen oder die volle Kontrolle über das gesamte Fenster benötigen. Die Klasse Frame repräsentiert ein Top-Level-Window mit Rahmen, Titelleiste und optionalem Menü. Einem Frame kann ein Icon zugeordnet werden, das angezeigt wird, wenn das Fenster minimiert wird. Es kann eingestellt werden, ob das Fenster vom Anwender in der Größe verändert werden kann. Die zweite aus Window abgeleitete Klasse ist Dialog. Sie ist dafür vorgesehen, modale oder nicht-modale Dialoge zu realisieren. Ein modaler Dialog ist ein Fenster, das immer im Vordergrund des Fensters bleibt, von dem es erzeugt wurde, und das alle übrigen Fensteraktivitäten und Ereignisse so lange blockiert, bis es geschlossen wird. Ein nicht-modaler Dialog kann mit anderen Fenstern koexistieren und erlaubt es, im aufrufenden Fenster weiterzuarbeiten. 5.2 Menü-Funktionen Eine der Möglichkeiten eines Programms, mit dem Benutzer zu interagieren, besteht darin, Menüs zur Verfügung zu stellen. Die Aufgabe des Programms ist es dabei, den Aufbau und die visuellen Eigenschaften der Menüs festzulegen. Der Anwender wählt Menüpunkte aus und löst dadurch eine Nachricht aus, auf die das Programm entsprechend reagiert [dpj]. Während die Definition der Menüstruktur in den meisten auf Windows basierten Entwicklungssystemen in eine Ressourcen-Datei ausgelagert wird, erfolgt sie in Java innerhalb des Programms. Diese Vorgehensweise hat nicht nur den Vorteil, portabel zu sein, sondern bietet auch die Möglichkeit, bei der Gestaltung der Menüs die Vorteile der objektorientierten Programmierung zu nutzen. So ist es in Java ohne weiteres möglich, Menüs zu definieren, die allgemeine Eigenschaften an spezialisierte Unterklassen vererben. In größeren Programmen kann dies eine große Hilfe bei der Pflege der Menüstruktur und der Erhaltung der Konsistenz der Menüeinträge sein. In Java wird die Konstruktion von Menüs durch eine Reihe speziell dafür vorgesehener Klassen unterstützt. Die Klasse MenuBar stellt die Menüzeile eines Fensters dar, die Klasse Menu ein einzelnes der darin enthaltenen Menüs, und die Klassen MenuItem bilden die vom Benutzer auswählbaren Einträge innerhalb der Menüs. Die Menüeinträge sind die elementaren Bestandteile eines Menüs (siehe Abb. 38). Sie besitzen einen Text, mit dem sie dem Anwender die dahinter stehende Funktion anzeigen. Wenn der zugehörige Menüpunkt aufgerufen wird, sendet das Programm eine Nachricht an das zugehörige Fenster, die dann zum Aufruf der entsprechenden Methode führt.

45 45 / 81 JMenuBar menubar = new JMenuBar(); JMenu menu = new JMenu("General"); menubar.add(menu); JMenuItem menuitem = new JMenuItem("Save"); menuitem.setname("save"); menuitem.addactionlistener(this); menu.add(menuitem); menuitem = new JMenuItem("Delete"); menuitem.setname("delete"); menuitem.addactionlistener(this); menu.add(menuitem); Abbildung 38: Ausschnitt aus der Quellcode Nach dem Starten des Programms erscheint das Hauptfenster (JFrame) mit einer Menüleiste, einem Hintergrundbild, falls das vom Kunden erwünscht ist, aber noch mit leerem Fensterinhalt (siehe Abb. 39). In dieser Menüleiste sind folgende Menüeinträge: Configuration, General, Runtime, System und Help, die später genauer erläutert werden, definiert. Um die Objekte in dieses Fenster einzufügen, zu löschen oder die Eigenschaften eines einzelnen Objekts anzeigen oder bearbeiten zu können, muss das entsprechende Kommando aus den Menü ausgewählt werden. Abbildung 39: Benutzeroberfläche des M&C Systems

46 46 / 81 Configuration Die Objekte für jeden Typ können mit Hilfe des Configuration -Menüs erzeugt werden (siehe Abb. 40). In dem Menüeintrag New Component sind alle möglichen Typen wie ACU, Sw, Control, LineVertical, LineHorizontal usw., von denen dann die Objekte erzeugt werden können, aufgelistet. Beim Aktivieren eines Listen-Eintrages wird ein Objekt dieses selektierten Typs erzeugt und im Hauptfenster dargestellt (siehe Abb. 48). General Abbildung 40: Configuration -Funktion Damit die Daten beim Schließen des Hauptfensters nicht verloren gehen, kann der Benutzer mit Hilfe des General -Menüs das ganze Bild mit allen von ihm erzeugten Objekten in der XML-Datei speichern (Menüeintrag Save in Abb. 41). Außerdem ist es auch möglich, mit der Funktion Delete den ganzen Inhalt des Fensters wieder zu löschen. Mit einem Mausklick auf die linke Maustaste wird der Menüeintrag Delete aktiviert und alle Objekte, die in diesem Bild zu sehen sind, aus der XML-Datei gelöscht (Menüeintrag Delete in Abb. 41). Abbildung 41: General -Funktion Bevor das ganze Inhalt des Hauptbildes gelöscht wird, wird der Benutzer nochmall gefragt, ob er wirklich alles löschen will. Wenn das der Fall ist, werden alle Objekte in diesem Frame gelöscht (siehe Abb. 42).

47 47 / 81 Abbildung 42: Bestätigungsdialog zum Löschen Runtime Der Menüeintrag Runtime gibt dem Benutzer die Möglichkeit, die Eigenschaften bzw. Attribute eines Objekts zur Laufzeit (Runtime) zu manipulieren (siehe Abb. 43, Menüeintrag Receive ) oder diese abzufragen (siehe Abb. 43, Menüeintrag Send ). Abbildung 43: Runtime -Funktion In einer XML-Datei, die aus verschiedenen PCs über TCP/IP versendet werden kann, sind die Eigenschaften für ein bestimmtes Objekt gespeichert. Mit einem Mausklick auf die linke Maustaste wird die Receive -Funktion aktiviert und in der XML- Datei gespeicherte Werte werden mit Hilfe des JDOM eingelesen und auf das gespeicherte Objekt angewendet, falls ein solches Objekt schon existiert. Der Menüeintrag Send gibt dem Anwender die Möglichkeit, die Eigenschaften eines Objekts, dessen Typ und Name in einer XML-Datei gespeichert sind, zur Laufzeit zu erfragen. Die abgefragten Attribute werden dann mit allen ihren Werten wieder in die XML-Datei geschrieben, aber nur in dem Fall, wenn ein solches Objekt schon erzeugt wurde. Wenn ein solches Objekt noch nicht existiert, erhält der Benutzer eine Fehlermeldung in einem JOptionPane (siehe Abb. 44). JOptionPane ist sehr vielseitig und kann in seiner einfachsten Form dazu verwendet werden, ein Dialogfenster mit einem Titel, Icon und Hinweistext anzuzeigen. Er kann mit Hilfe eines "OK"-Buttons beendet werden. Die Aufrufe von showmessagedialog() sind grundsätzlich modal. Erst wenn der Dialog vom Anwender beendet wurde, wird die nächste Anweisung ausgeführt. Abbildung 44: Fehlermeldung bei Receive oder Send -Funktionen

48 48 / 81 System Über die System -Funktion (siehe Abb. 45) erhält man die Informationen zum System selbst. Wenn man auf den Menüeintrag Name mit der linken Maustaste klickt, bekommt man den Name dieses M&C Systems. Abbildung 45: System -Funktion Und mit dem Aktivieren des Menüeintrages About wird das Unternehmen in einem Popup (siehe Abb. 46) bekannt gegeben. Help Abbildung 46: About -Funktion Der Menüeintrag Doku (siehe Abb. 47) liefert eine Kopie der Dokumentation dieser Diplomarbeit. Abbildung 47: Help -Funktion

49 49 / Funktionalität der Objekte Nachdem die Objekte eines bzw. mehrerer Typen mit Hilfe des Configuration - Menüs erzeugt wurden, können sie jetzt manipuliert werden. Ihre Funktionalität wird mittels eines Popup-Menüs für jedes einzelne Objekt durchgeführt (siehe Abb. 48). Die Kontext- oder Popup-Menüs sind ein wichtiger Bestandteil der grafischen Oberflächen, der in den letzten Jahren verstärkt in die Programme den Einzug gehalten hat. Sie liefern auf rechten Mausklick ein Menü mit den wichtigsten Aktionen, die innerhalb der ausgewählten Komponente zur Verfügung stehen. Auf diese Weise steht eine Vielzahl von Funktionen dort zur Verfügung, wo sie benötigt wird, anstatt umständlich aus dem Hauptmenü des Programms ausgewählt oder per Kommando eingegeben werden zu müssen. Die Kontextmenüs werden durch die Klasse PopupMenu, die aus Menu abgeleitet ist, implementiert. PopupMenu ist genauso zu bedienen wie Menu und wird daher vor allem mittels geeigneter Aufrufe von add() mit Menüeinträgen ausgestattet. Diesen kann ein ActionListener zugeordnet werden, der bei Auslösen des Menüpunkts aufgerufen wird [klu]. Nach einem Klick auf ein beliebig ausgewähltes Objekt mit der rechten Maustaste erscheint das Popup-Menü, das insgesamt aus folgenden drei Menüeinträgen: Properties, PopUp und Delete besteht, auf dem Bildschirm. Gleichzeitig ist es möglich nur ein Popup-Menü für ein Objekt zu öffnen. Abbildung 48: Popup-Menü für ein Objekt Wenn der Benutzer den Properties -Menüeintrag mit dem Mausklick auf die linke Maustaste aktiviert, erscheint ein Properties-Fenster (Abb. 50) mit einer Tabelle, in der alle Eigenschaften eines selektierten Objekts zu sehen sind, und zwei Buttons: Submit und Close auf dem Bildschirm. Bei einem Mausklick auf den PopUp - Menüeintrag kommt ein PopUp -Fenster für jedes Objekt hoch (siehe Abb. 49, Popup

50 50 / 81 für ein twta-objekt). Und mit Hilfe der Delete -Funktion kann ein Objekt gelöscht werden. Abbildung 49: Popup für ein twta-objekt 5.4 Properties-Fenster Ein Properties-Fenster für ein Objekt mit allen seinen Eigenschaften erscheint dann, wenn man entweder den Properties -Menüeintrag in der Popup-Menü (siehe Abb. 48) aktiviert oder mit der linken Maustaste zwei Mal auf das Objekt klickt. In der Titel-Leiste dieses Properties-Fenster ist der Name bzw. Identität eines selektierten Objekts erkennbar und im Mittelpunkt befindet sich eine Tabelle (siehe Abb. 50). Die Tabelle ist eines der in anspruchsvollen Benutzeroberflächen am häufigsten gebrauchten Dialogelemente, also eine mehrzeilige, mehrspaltige Darstellung von Daten. Diese im AWT fehlende Komponente wird in Swing durch die Klasse JTable zur Verfügung gestellt. Mit ihrer Hilfe lassen sich unterschiedlichste Arten von textuellen oder grafischen Daten tabellarisch darstellen und editieren. Das Programm hat dabei weit reichende Möglichkeiten, die Tabelle zu konfigurieren, ihren Inhalt anzupassen und auf Benutzerereignisse zu reagieren [klu]. Der Benutzer kann auf den Inhalt der Tabelle mit entsprechenden Methoden wie getrowcount() und getcolumncount(), welche die aktuelle Zeilen- bzw. Spaltenzahl der Tabelle liefern, zugreifen. Mit getvalueat() kann auf das Element an der Position (row, column) zugegriffen werden. Beide Indizes beginnen bei 0, ein Zugriff außerhalb der Grenzen wird mit einer ArrayIndexOutOfBoundsException quittiert. Mit setvalueat() kann ein Zellenelement sogar verändert werden.

51 51 / 81 Wie alle anderen großen Dialogelemente wird die JTable vor der Übergabe an ihren GUI-Container auch in eine JScrollPane verpackt. Neben dem Effekt, die Daten vertikal oder horizontal scrollen zu können, hat das vor allem zur Folge, dass die Spaltenüberschriften angezeigt werden. Ohne JScrollPane wären diese dagegen nicht sichtbar. Abbildung 50: Properties-Fenster für ein Objekt Nach einem Doppelklick auf eine Zelle kann der Anwender die in diesem Element enthaltenen Daten verändern. Die Klasse JTable besitzt einige Methoden, mit denen das Programm abfragen kann, ob und in welcher Zelle die Tabelle gerade editiert wird. Die Methode isediting() gibt genau dann true zurück, wenn gerade ein Element der Tabelle geändert wird. Mit geteditingrow() und geteditingcolumn() kann das Programm herausfinden, welches Element von der Veränderung betroffen ist. Die in der Abbildung 50 dargestellte Tabelle besteht aus drei Spalten: PropertyName, SubPropertyName und Value. Die erste Spalte PropertyName

52 52 / 81 enthält alle Name der Eigenschaften wie color, positionx, width, outputlist usw.. In der zweiten Spalte SubPropertyName sind alle Attributen-Namen der Eigenschaften wie min, max, driver, value usw. zu sehen. Die Werte in der ersten und zweiten Spalten dürfen nicht editiert werden, der Benutzer erhält diese Meldung in einem JOptionPane (siehe Abb. 51). Abbildung 51: Meldedialog bei der Änderung der ersten oder zweiten Spalte In der dritten Spalte der Tabelle sind sowohl Standardwerte der Eigenschaften als auch der Attribute dargestellt. Der Benutzer kann sehr schnell die dritte Spalte mit den Standardwerten ändern und mit Hilfe des Buttons Submit wieder in die HashMap speichern. Wenn der Benutzer auf den Button Close klickt, wird das Properties- Fenster geschlossen. Nachdem entweder der Button Submit oder der Button Close betätigt wurde, hat man die Möglichkeit, das Properties-Fenster für ein anderes Objekt wieder zu öffnen. Bei der Veränderung von Werten der Eigenschaft output gibt es allerdings eine Besonderheit. Nachdem ein Objekt erzeugt wurde, ist die Anzahl der Nachfolger bei diesem Objekt zwar schon festgelegt, aber die Objekt-Nachfolger noch nicht, die output -Werte bei diesem Objekt sind also gleich null. Erst nachdem man die Null- Werte im Properties-Fenster auf die richtigen Werte gesetzt hat, werden die Nachfolger dieses Objekts bekannt. Wenn ein solcher Objekt-Nachfolger noch nicht existiert, wird ein Benutzer mit einer Fehlermeldung benachrichtigt und der Wert dieses output wird wieder auf null gesetzt (siehe Abb. 52). Abbildung 52: Fehlermeldung bei einer falschen output -Eingabe

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

ZMI Benutzerhandbuch Sophos. Sophos Virenscanner Benutzerhandbuch

ZMI Benutzerhandbuch Sophos. Sophos Virenscanner Benutzerhandbuch ZMI Benutzerhandbuch Sophos Sophos Virenscanner Benutzerhandbuch Version: 1.0 12.07.2007 Herausgeber Zentrum für Medien und IT ANSCHRIFT: HAUS-/ZUSTELLADRESSE: TELEFON: E-MAIL-ADRESSE: Zentrum für Medien

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Serie 3: Designbeschreibung Verantwortlich für Rose-Projekt und Designbeschreibungen Dang, Quoc Anh / Phan, Ngoc Diep / Xiongjie Ding

Serie 3: Designbeschreibung Verantwortlich für Rose-Projekt und Designbeschreibungen Dang, Quoc Anh / Phan, Ngoc Diep / Xiongjie Ding DESIGNBESCHREIBUNG. 1. Allgemeines.? GeoViewer ist eine menügesteuerte graphische Java-Applikation. VonGEO-Record wird die vordefinierte geometrische Konfiguration geladen, im GeoProver-Paket berechnet

Mehr

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de.

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder holger.roeder@informatik.uni-stuttgart.de. Java: Kapitel 9 Java und XML Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Überblick über Kapitel 9 Einführung in XML XML-Verarbeitung in Java Document Object

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Java und XML 2. Java und XML

Java und XML 2. Java und XML Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003

Mehr

Die Hifidelio App Beschreibung

Die Hifidelio App Beschreibung Die Hifidelio App Beschreibung Copyright Hermstedt 2010 Version 1.0 Seite 1 Inhalt 1. Zusammenfassung 2. Die Umgebung für die Benutzung 3. Der erste Start 4. Die Ansicht Remote Control RC 5. Die Ansicht

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Das Handbuch zu KSnapshot

Das Handbuch zu KSnapshot Richard J. Moore Robert L. McCormick Brad Hards Korrektur: Lauri Watts Entwickler: Richard J Moore Entwickler: Matthias Ettrich Übersetzung des Handbuchs: Robert Gogolok Übersetzung des Handbuchs: Kilian

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Bedienungsanleitung zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle

Bedienungsanleitung zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle zur Inbetriebnahme des Funkempfänger EFB-EXP-72a mit Ethernet-Schnittstelle 1. Funktion und Voreinstellung Der EFB-EXP-72a basiert auf der Funktionsweise des Funkempfängers EFB-RS232 mit dem Unterschied,

Mehr

TwinCAT HMI Application

TwinCAT HMI Application New Automation Technology TwinCAT HMI Application 08.05.2010 1 Überblick Einleitung Übersicht Möglichkeiten der Applikation Struktur und Komponenten Komponenten für das Microsoft Visual Studio Anleger

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8 Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8 Neue Funktionen im GUI ab V 2.x für PC-DMIS Wie funktioniert GUI für PC-DMIS? GUI heißt Grafical User Interface. Das bedeutet grafische Benutzer

Mehr

Microsoft Office 2010

Microsoft Office 2010 Microsoft Office 2010 Office-Anpassungstool Author(s): Paolo Sferrazzo Version: 1.0 Erstellt am: 15.06.12 Letzte Änderung: - 1 / 12 Hinweis: Copyright 2006,. Alle Rechte vorbehalten. Der Inhalt dieses

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Das Model View Controller (MVC) Konzept

Das Model View Controller (MVC) Konzept Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2

Mehr

TL-PS110P TL-PS110U TL-PS310U Parallelport-/USB-Printserver

TL-PS110P TL-PS110U TL-PS310U Parallelport-/USB-Printserver TL-PS110P TL-PS110U TL-PS310U Parallelport-/USB-Printserver Rev: 1.2.0 INHALTSVERZEICHNIS 1. IP-Adresse des Printservers einstellen 3 2. Manuelle Erstellung eines TCP/IP-Druckeranschlusses 4 3. TCP/IP-Einstellungen

Mehr

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

INSTALLATION und BENUTZUNG von REAL VNC 3.3.5-7

INSTALLATION und BENUTZUNG von REAL VNC 3.3.5-7 INSTALLATION und BENUTZUNG von REAL VNC 3.3.5-7 Einleitung: Real VNC ist ein Remote Programm das zur Fernwartung von PCs über das Internet verwendet werden kann. It is fully cross-platform das heißt man

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an.

Es gibt situationsabhängig verschiedene Varianten zum Speichern der Dokumente. Word bietet im Menü DATEI unterschiedliche Optionen an. 3. SPEICHERN DATEIEN SPEICHERN Dateien werden in Word Dokumente genannt. Jede Art von Datei, die Sie auf Ihrem Computer neu erstellen, befindet sich zuerst im Arbeitsspeicher des Rechners. Der Arbeitsspeicher

Mehr

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

Mehr

Fingerpulsoximeter. A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC?

Fingerpulsoximeter. A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC? Mini-FAQ v1.5 PO-300 Fingerpulsoximeter A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC? B. Wie nimmt man mit dem PULOX PO-300

Mehr

TOUCHPANEL DESIGNER HANDBUCH

TOUCHPANEL DESIGNER HANDBUCH www.osram.de/lms TOUCHPANEL DESIGNER HANDBUCH Touchpanel Designer ist eine intuitive grafische Benutzeroberfläche, mit der Bildschirme für das DALI PROFESSIONAL Touchpanel zur Steuerung der Beleuchtung

Mehr

Handbuch xgdm-was Extension Version 1.0

Handbuch xgdm-was Extension Version 1.0 Handbuch xgdm-was Extension Version 1.0 Maxstr. 3A Königsbergerstrasse 22 Landwehrstrasse 143 13347 Berlin 57462 Olpe 59368 Werne Tel. 030/466062-80 Tel. 02761/9396-0 Tel. 02389/9827-0 Fax 030/466062-82

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Dokumentation Projekt Virtuelles Tagebuch

Dokumentation Projekt Virtuelles Tagebuch Priv.Doz. Dr. Michael Hahsler Institut für Informationswirtschaft Dokumentation Projekt (Matr. Nr. 9806106) - 1 - 1 Problembeschreibung Das Ziel dieses Projektes ist es, ein Tagebuch in elektronischer

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

Wurm-Lizenzserver Internetverbindung über Port 80 (http) Bei aktiver Firewall muss die Ausnahme für die URL http://ls.wurm.de eingerichtet werden

Wurm-Lizenzserver Internetverbindung über Port 80 (http) Bei aktiver Firewall muss die Ausnahme für die URL http://ls.wurm.de eingerichtet werden Der Wurm Lizenzmanager Der Wurm Lizenzmanager dient als Lizenzserver für Software der Firma Wurm. Die Installation erfolgt auf einem Rechner innerhalb des jeweiligen Intranets. Dadurch kann auf separate

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012

Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012 Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012 Pervasive Server Engine Checkliste für die Neuinstallation in einem Windows-Netzwerk Bitte prüfen Sie auf unseren Webseiten

Mehr

Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac

Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac Zugriff auf die Installation mit dem digitalstrom- Konfigurator mit PC und Mac Zusatz zum digitalstrom Handbuch VIJ, aizo ag, 15. Februar 2012 Version 2.0 Seite 1/10 Zugriff auf die Installation mit dem

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Tutorial Erste Schritte

Tutorial Erste Schritte Tutorial Erste Schritte IBO Internet Software OHG Bernhard-Hahn Str. 30 41812 Erkelenz Tel. 02431 9451440 Fax 02431 9451439 ibo@shoppilot.de www.shoppilot.de Tutorial ShopPilot 1 Tutorial: Erste Schritte

Mehr

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung 2015-02-25 1 of 6 Application Note Anbindung von Kunden-Software an SpiderControl Web Visualisierung Version ApplicationNote_AnbindungFremdsoftware /Version Seite 1 / 6 Version Datum Kommentar Autor 0.1

Mehr

Mini-FAQ v1.3 CMS-50E. Fingerpulsoximeter

Mini-FAQ v1.3 CMS-50E. Fingerpulsoximeter Mini-FAQ v1.3 CMS-50E Fingerpulsoximeter 1.) Wie macht man einen Echtzeitdatentransfer vom PULOX CMS-50E zum Computer und wie speichert man diese Messdaten auf Festplatte? 2.) Wie nimmt man mit dem PULOX

Mehr

time project Die clevere Zeitbuchhaltung

time project Die clevere Zeitbuchhaltung time project Die clevere Zeitbuchhaltung Anleitung Installation Inhalt 1 Einleitung... 3 2 Die Komponenten von time project... 3 2.1 Der time project Server... 3 2.2 Der time project Client... 3 3 Systemvoraussetzungen...

Mehr

V1.1. Anwenderhandbuch. XPhone UC Mobile

V1.1. Anwenderhandbuch. XPhone UC Mobile V1.1 Anwenderhandbuch XPhone UC Mobile 12/2010 Inhalt 1 XPhone Mobile Control 4 1.1 Mobile Leitung im XPhone UC Commander Fehler! Textmarke nicht definiert. 1.2 Inbetriebnahme des Mobile Clients 4 1.3

Mehr

Wissenswertes über LiveUpdate

Wissenswertes über LiveUpdate Wissenswertes über LiveUpdate 1.1 LiveUpdate «LiveUpdate» ermöglicht den einfachen und sicheren Download der neuesten Hotfixes und Patches auf Ihren PC. Bei einer Netzinstallation muss das LiveUpdate immer

Mehr

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Benutzerhandbuch für FaxClient für HylaFAX

Benutzerhandbuch für FaxClient für HylaFAX Benutzerhandbuch für FaxClient für HylaFAX Vielen Dank, daß Sie entschlossen haben, dieses kleine Handbuch zu lesen. Es wird Sie bei der Installation und Benutzung des FaxClients für HylaFAX unterstützen.

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS

Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS O N L I N E - H I L F E Flexi Soft Ethernet IP: Implicit Messaging mit einer Omron SPS s D Online Hilfe Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte bleiben bei der Firma

Mehr

How-to: VPN mit IPSec und Gateway to Gateway. Securepoint Security System Version 2007nx

How-to: VPN mit IPSec und Gateway to Gateway. Securepoint Security System Version 2007nx Securepoint Security System Version 2007nx Inhaltsverzeichnis VPN mit IPSec und Gateway to Gateway... 3 1 Konfiguration der Appliance... 4 1.1 Erstellen von Netzwerkobjekten im Securepoint Security Manager...

Mehr

Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern. Kurzanleitung

Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern. Kurzanleitung Avira Management Console AMC Serverkonfiguration zur Verwaltung von Online-Remote-Rechnern Kurzanleitung Inhaltsverzeichnis 1. Allgemeine Informationen... 3 2. Netzwerkübersicht... 3 3. Konfiguration...

Mehr

Model-View-Controller

Model-View-Controller Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Carsten Wiesbaum esentri AG Schlüsselworte Metadata Service Repository, MDS, Oracle Fusion Middleware Einleitung Früher oder später wird jeder

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

Software Engineering Analyse und Analysemuster

Software Engineering Analyse und Analysemuster Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse

Mehr

Access Grundlagen. David Singh

Access Grundlagen. David Singh Access Grundlagen David Singh Inhalt Access... 2 Access Datenbank erstellen... 2 Tabellenelemente... 2 Tabellen verbinden... 2 Bericht gestalten... 3 Abfragen... 3 Tabellen aktualisieren... 4 Allgemein...

Mehr

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6.

6. Modellierung von Informationssystemen. 6.1 Einleitung 6.2 Konzeptuelles Modell 6.3 OASIS Spezifikation 6.4 Execution Model 6. 6. Modellierung von Informationssystemen Spezialseminar Matr. FS 2000 1/10 Volker Dobrowolny FIN- ITI Quellen: Oscar Pastor, Jaime Gomez, Emilio Insfran, Vicente Pelechano The OO-Method approach for information

Mehr

Bedienungsanleitung Modbus-LAN Gateway

Bedienungsanleitung Modbus-LAN Gateway Bedienungsanleitung Modbus-LAN Gateway Bedienungsanleitung Modbus-LAN Gateway Inhalt 1. Starten der Konfigurationsoberfläche des MLG... 3 2. Konfiguration MLG... 4 2.1. Network Settings... 4 2.1.1 Statische

Mehr

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013 Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz Das Instrument für den fähigkeitsgerechten Personaleinsatz IMBA SQL Server-Datenbankadapter Installationsanleitung gefördert durch das Bundesministerium für Gesundheit und Soziale Sicherung Vorbereitung

Mehr

@HERZOvision.de. Kurzanleitung WebClient. v 1.0.0 by Herzo Media GmbH & Co. KG - www.herzomedia.de

@HERZOvision.de. Kurzanleitung WebClient. v 1.0.0 by Herzo Media GmbH & Co. KG - www.herzomedia.de @HERZOvision.de Kurzanleitung WebClient v 1.0.0 by Herzo Media GmbH & Co. KG - www.herzomedia.de Inhaltsverzeichnis Inhaltsverzeichnis... 2 E-Mails direkt im Browser bearbeiten... 3 Einführung in den WebClient

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Deckblatt. VPN-Tunnel über Internet. SCALANCE S61x und SOFTNET Security Client Edition 2008. FAQ August 2010. Service & Support. Answers for industry.

Deckblatt. VPN-Tunnel über Internet. SCALANCE S61x und SOFTNET Security Client Edition 2008. FAQ August 2010. Service & Support. Answers for industry. Deckblatt SCALANCE S61x und SOFTNET Security Client Edition 2008 FAQ August 2010 Service & Support Answers for industry. Fragestellung Dieser Beitrag stammt aus dem Service&Support Portal der Siemens AG,

Mehr

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Glossar Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten, Methoden und/oder Eigenschaften, die eine bestimmte Berechnung ausführt, eine Eigenschaft ändert oder eine Methode

Mehr

Technische Dokumentation IPCalculator

Technische Dokumentation IPCalculator Technische Dokumentation IPCalculator Version 1.0 Daut Musolli und Alexander Rieke Inhalt Einleitung... 1 Technische Details... 1 Konsolenanwendung... 1 Klassendiagramm... 1 Methoden... 1 Grafische Benutzeroberfläche...

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Dropbox Verschlüsselung mit TrueCrypt

Dropbox Verschlüsselung mit TrueCrypt 1 von 8 19.04.2013 15:17 Datenbank Dropbox Verschlüsselung mit TrueCrypt http://www.hpier.de/wb» Software» Dropbox Verschlüsselung mit TrueCrypt Daten in der Dropbox Cloud mit TrueCrypt sicher verschlüsseln

Mehr

SIHLNET E-Mail-Konfiguration

SIHLNET E-Mail-Konfiguration SIHLNET E-Mail-Konfiguration Inhaltsverzeichnis 1. Allgemeines...2 2. OWA...2 2.1. Anmeldung... 2 2.2. Arbeiten mit OWA... 3 2.2.1. Neue E-Mail versenden... 3 2.2.2. E-Mail beantworten / weiterleiten...

Mehr

Kurzanleitung. SpaceController

Kurzanleitung. SpaceController Kurzanleitung SpaceController V ielen Dank, dass Sie sich für den SpaceController entschieden haben. Natürlich haben Sie hinreichende Erfahrung in der Installation von Treibern und Software. Dennoch sollten

Mehr

Produktskizze. 28. November 2005 Projektgruppe Syspect

Produktskizze. 28. November 2005 Projektgruppe Syspect 28. November 2005 Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme Inhaltsverzeichnis 1 Einleitung 3 2 Die graphische Oberfläche der

Mehr

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata Benutzerhandbuch Softwaresystem Inspirata 1 Inhaltsverzeichnis 1. Login und Logout... 3 2. Kalender/Buchungen auswählen... 5 3. Betreuer... 7 3.1 Buchung anlegen... 7 3.2 Betreuer zuordnen... 8 3.3 Notiz

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Kurzbeschreibung PC-Software für das Gerät URO-2050

Kurzbeschreibung PC-Software für das Gerät URO-2050 Kurzbeschreibung PC-Software für das Gerät URO-2050 1 Einleitung 1.1 Allgemeines Das Programm kann zum Verwalten der durchgeführten Untersuchungen mit dem Gerät URO-2050 benutzt werden. Es funktioniert

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 3 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 3 Trigger el0100 Copyright W. G. Spruth,

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

Message Oriented Middleware am Beispiel von XMLBlaster Message Oriented Middleware am Beispiel von XMLBlaster Vortrag im Seminar XML und intelligente Systeme an der Universität Bielefeld WS 2005/2006 Vortragender: Frederic Siepmann fsiepman@techfak.uni bielefeld.de

Mehr

PPP-Zugang unter Windows XP zum RZ der FSU

PPP-Zugang unter Windows XP zum RZ der FSU PPP-Zugang unter Windows XP zum RZ der FSU 1. Vorbemerkung Diese Anleitung gilt sowohl für die Home-Version als auch für die Professional-Version von Windows XP. Das Rechenzentrum der FSU Jena stellt seit

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

PRAXISBUTLER ANPASSUNG DER VORLAGEN

PRAXISBUTLER ANPASSUNG DER VORLAGEN Praxisbutler Anpassung der Vorlagen 1 PRAXISBUTLER ANPASSUNG DER VORLAGEN Die Vorlagen werden hauptsächlich in den Bereichen Klienten und Fakturierung benutzt. Die Anpassung dieser Vorlagen ist wichtig,

Mehr

Softwaretool Data Delivery Designer

Softwaretool Data Delivery Designer Softwaretool Data Delivery Designer 1. Einführung 1.1 Ausgangslage In Unternehmen existieren verschiedene und häufig sehr heterogene Informationssysteme die durch unterschiedliche Softwarelösungen verwaltet

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Kurzanleitung. Logstar_FTP. Version 1.1

Kurzanleitung. Logstar_FTP. Version 1.1 Kurzanleitung Logstar_FTP Version 1.1 Februar 2006 UP GmbH Anleitung_Logstar_FTP_1_24.doc Seite 1 von 8 LOGSTAR _FTP Inhaltsverzeichnis Einleitung...3 Registrierung...3 Das Logstar_FTP Hauptmenu...4 Server...4

Mehr

Installations-Dokumentation, YALG Team

Installations-Dokumentation, YALG Team Installations-Dokumentation, YALG Team Version 8.1 1 Benötigtes Material 2 Vor der Installation 3 Beginn 4 Installation 4.1 Sicherheit 4.2 Partitionierung 4.3 Paketauswahl 4.4 Paketauswahl (fein) 5 Konfiguration

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr