Leopold-Franzens-Universität Innsbruck. Administration Shell & Assigning physical nodes to a virtual structure

Größe: px
Ab Seite anzeigen:

Download "Leopold-Franzens-Universität Innsbruck. Administration Shell & Assigning physical nodes to a virtual structure"

Transkript

1 Leopold-Franzens-Universität Innsbruck Institut für Informatik Verteilte und Parallele Systeme Administration Shell & Assigning physical nodes to a virtual structure Bakkalaureatsarbeit eingereicht bei Univ.-Prof. Dr. Thomas Fahringer ausgearbeitet von Philipp Vallant, Innsbruck, 30. September 2007

2 Kurzfassung Diese Bakkalaureatsarbeit wurde am Institut für Informatik an der Leopold- Franzens-Universität in Innsbruck eingereicht. Ziel war die Entwicklung eines Tools mit grafischer Benutzeroberfläche zur Verwaltung von Network Agents, welche zur Überwachung von Systemparametern dienen und auf beliebig vielen Rechnern verteilt abgearbeitet werden. Dieses Tool (die so genannte Adminstration Shell ) fungiert dabei als zentrale GUI für alle Network Agents, da diese über kein eigenes User Interface verfügen. Diese Kombination aus dem Network Agent System (NAS), der Administration Shell und dem Object Agent System (OAS) (welches in einer anderen Bakkalaureatsarbeit implementiert wird) bietet eine Grundlage für die einfache und schnelle Erstellung von verteilten Anwendungen. Ein weiteres Ziel war die Entwicklung eines Algorithmus, welcher den zur Laufzeit vom Programmierer einer verteilten Anwendung angeforderten Virtuellen Architekturen entsprechende, real existierende physikalische Ressourcen zuweist, mit Hilfe derer die verteilte Anwendung parallelisiert werden soll. Abstract This bachelor thesis has been submitted at the Institute of Computer Science at the Leopold-Franzens-University in Innsbruck. The main subject was the development of a tool with a graphical user interface for administrating Network Agents, which are used to observe system parameters and are running on a various number of computers. This tool (called Administration Shell ) is the central GUI for all network agents. The combination of the Netwotk Agent System (NAS), the Administration Shell and the Object Agent System (OAS) (implemented in another bachelor thesis) is a basis for easy and fast development of distributed applications. An additional subject was the development of an algorithm for assigning physical nodes (resources) to virtual structures requested by a programmer for developing distributed applications.

3 Inhalt Kapitel Einleitung Aufbau Network Agent System Administration Shell Object Agent System Programmiersprache Entwicklungsumgebung Eclipse Jigloo Literaturstudium...8 Kapitel Implementierung der Administration Shell Allgemeines Motivation Warum SWT? Pflichtenheft Musskriterien Sollkriterien Aufbau und Funktion Liste der Network Agents Physical Architecure Kommunikation per RMI...19 Kapitel Assigning physical nodes to a virtual structure Allgemeines Virtuelle Architekturen Physikalische Architektur Der Algorithmus Begriffe Aufbau / Funktionsweiße Beispiele...28

4 Kapitel 1 Einleitung Abb. 1: Nachbau der Zuse Z3 Als Konrad Zuse im Jahr 1941 seine Zuse Z3 fertig stellte, die heute als der erste funktionsfähige, programmierbare und turingmächtige Digitalrechner der Welt gilt 1, dachte er wohl kaum daran, dass nur knapp 60 Jahre später in nahezu jedem Haushalt der industrialisierten Welt eine etwas weiterentwickelte Version seines damaligen Entwurfes stehen wird. Noch viel weniger dachte er wahrscheinlich daran, dass ein für damalige Verhältnisse utopischer Supercomputer, wie er heutzutage auf und unterhalb unserer Schreibtische zu finden ist, trotz seiner vergleichsweißen enormen Rechenleistung sehr schnell an seine Grenzen stoßen kann. Denken wir beispielsweiße an komplexe wissenschaftliche Simulationen zur Entstehung von Galaxien, oder die Frage, ob es sich bei der Mersenne-Zahl (eine Zahl mit Ziffern) auch tatsächlich um eine Mersenne- Primzahl handelt. Dinge, deren Berechnung auf einem einzelnen, handelsüblichen 1

5 Einleitung 2 Rechner derart lange dauern würde, dass nach Abschluss der letzen Rechenoperation wohl niemand mehr am tatsächlichen Ergebnis interessiert wäre. Um solche Probleme dennoch in annehmbarer Zeit lösen zu können gibt es verschiedene Möglichkeiten: Supercomputer / Cluster : Sie bestehen meist aus einer sehr großen Anzahl von Prozessoren, welche auf gemeinsame Peripheriegeräte und teilweise gemeinsamen Speicher zugreifen. Der derzeit schnellste Supercomputer der Welt BlueGene/L besteht beispielsweiße aus über Prozessoren und bewältigt ca. 280 Billionen Gleitkommaoperationen pro Sekunde (280 x FLOPS). Solche Computer werden meist speziell für wissenschaftliche Simulationen konzipiert. Sie sind gut, jedoch nur begrenzt skalierbar und nicht zuletzt sehr kostenintensiv. Allein der Aufbau einer Anlage verschlingt meist Beträge im 3-stelligen Millionenbereich. [1] Verteiltes Rechnen oder Grid Computing : Die einzelnen Berechungen werden auf viele, meist handelsübliche Rechner aufgeteilt. Während sich bei den Supercomputern sämtliche Hardware an einem bestimmten Standort befindet, können sich beim Verteilten Rechnen die Ressourcen beliebig weit voneinander entfernt befinden, und über ein WAN miteinander verbunden sein. Weite Übertragungsstrecken sowie geringe Übertragungsgeschwindigkeiten können hierbei zu einem erheblichen Zeitoverhead führen. Jedoch ist das Grid aufgrund der verteilten Standorte nahezu unbegrenzt Skalierbar und der Aufbau im Vergleich zu Supercomputern wesentlich kostengünstiger, da sich die Ressourcen meist im Besitz von vielen Einzelpersonen befinden, die ihre Rechner kostenlos zur Verfügung stellen. Während Supercomputer oder Cluster nach Außen hin häufig wie ein einziger Rechner aussehen, ist es beim Verteilten Rechnen nötig, das gesamte Problem in Teilprobleme zu zerlegen, Parameter, wie zum Beispiel binäre Objekte, an die einzelnen Workstations

6 Einleitung 3 zu versenden, welche aufgrund dieser Daten wiederum Teilergebnisse berechnen und schlussendlich wieder zurück an die Zentrale senden. Damit sich der Programmierer einer verteilten Anwendung nicht jedes Mal aufs Neue um diese Funktionalität selbst kümmern muss, ist es nötig, ihm ein Werkzeug zur Verfügung zu stellen welches ihm ermöglicht, dynamisch zur Laufzeit die für seine Berechnung notwendigen Ressourcen anzufordern, seinen Programmcode in binärer Form auf den zur Verfügung gestellten Rechnern zu verteilen, welche schlussendlich die gewünschten Teilergebnisse berechnen und liefern. Sprich: Dem Programmierer sollte durch das Parallelisieren seiner Aufgabe kein erheblicher Mehraufwand entstehen. Doch wie könnte so ein System aussehen und welche Anforderungen müsste es erfüllen? Mit dieser Frage, sowie der Planung, dem Entwurf und der Realisierung eines solchen Systems, bzw. bestimmter Teile eines solchen Systems habe ich mich während meiner praktischen Arbeit beschäftigt Aufbau Als Grundlage und Inspiration für das zu entwickelnde System, beziehungsweiße dessen Aufbau diente in erster Linie JavaSymphony, ein Programmierparadigma entwickelt am Institut für Distributed an Parallel Systems der Universität Innsbruck. Implementiert als Java Klassenbibliothek bietet es dem Benutzer die Möglichkeit, selbst parallelisierte Anwendungen zu implementieren und zu kontrollieren. Die folgende Grafik zeigt den Aufbau von JavaSymphony :

7 Einleitung 4 Abb. 2: JavaSymphony Angelehnt an den Aufbau von JavaSymphony, besteht das entwickelte / teilweiße noch zu entwickelnde System aus folgenden Teilbereichen: Network Agent System Beim Network Agent oder kurz NA handelt es sich um ein Programm, welches auf jedem Rechner, der für die Parallelisierung, also als Ressource, genutzt werden soll, installiert und gestartet sein muss. Seine Aufgabe liegt grundsätzlich darin, statische und dynamische Systemparameter zu ermitteln, zu sammeln und zu überwachen. Zu den statischen Systemparametern zählen zum Beispiel: Verwendetes Betriebssystem (Name, Version) Java-Version Hardware Informationen wie CPU Taktfrequenz, Größe des Arbeitsspeichers

8 Einleitung 5 Weiters werden dynamische Systemparameter ermittelt, wie zum Beispiel: CPU-Auslastung Verfügbarer Arbeitspeicher Belegung nicht-flüchtiger Speicher (Festplatte, Wechseldatenträger) Von jedem Network Agent wird außerdem ein so genannter Object Agent (1.1.3.) gestartet. Der Network Agent ist plattformunabhängig und funktioniert sowohl auf Windows als auch auf Unix artigen Betriebssystemen. Die Summe aller Network Agents wird als Network Agent System oder kurz NAS bezeichnet. Jedem einzelnen Agent können ein Vater sowie mehrere Kinder zugewiesen werden, wodurch sich eine baumartige Struktur ergibt. Diese Zuweisung, sowie der Aufbau der Struktur erfolgt über die so genannte Administration Shell Administration Shell Die Administration Shell ist eine grafische Benutzeroberfläche, welche zur Verwaltung der einzelnen Network Agents dient. Sie muss auf nur einem Rechner installiert und gestartet werden von dort aus können alle eingetragenen NAs administriert und überwacht werden. Auf die Administration Shell, sowie deren Aufbau und Funktion wird im weiteren Verlauf dieses Dokumentes noch näher eingegangen, da diese den Hauptteil meiner praktischen Arbeit repräsentiert Object Agent System Dieser ist für die Verwaltung der Remote Objects (Programme in binärer Form, die zur Parallelisierung auf den verfügbaren Ressourcen verteilt werden) zuständig und kümmert sich vor allem um deren Erzeugung und Löschung, sowie die Parameterübergabe, die Methodenaufrufe ( Method invocation ) und das Zurückliefern der Ergebnisse.

9 Einleitung Programmiersprache Das gesamte System wurde fast ausschließlich in der Programmiersprache Java realisiert. Nur der Network Agent greift beim Auslesen bestimmter Hardware Informationen (zum Beispiel CPU-Last oder Arbeitsspeicherbelegung) auf in der Programmiersprache C entwickelte Programme zurück. Die Verbindung zwischen Java und C wird hierbei über das Java Native Interface (JNI) realisiert. JNI ist eine Schnittstelle (API), welche den Zugriff auf Funktionen einer DLL-Datei (Windows) oder einer shared library (Linux) in Java ermöglicht. [2] Java selbst ist eine von der Firma Sun Microsystems entwickelte, objektorientierte Programmiersprache. Sie ist plattformunabhängig - somit laufen Java-Programme auf allen Betriebssystemen, für die eine Implementierung der Java Virtual Machine (JVM) existiert (zum Beispiel Windows, Linux, Solaris, Mac OS). Ein wesentlicher Unterschied zwischen Java und anderen Programmiersprachen (wie zum Beispiel C) besteht darin, dass Java-Code nicht direkt in Maschinencode übersetzt wird, sondern vom Compiler (javac) in so genannten Bytecode übersetzt wird. Dieser wird von der JVM interpretiert und ausgeführt. Dies führte in der Anfangsphase von Java zu erheblichen Geschwindigkeitsproblemen, da das Interpretieren des Bytecodes und das damit verbundene Erkennen und Dekodieren der einzelnen Befehle sehr zeitaufwendig ist. Die Lösung dieses Problems kam mit der Version 1.3., und der Erweiterung der Java- Laufzeitumgebung (JRE) durch einen Just-In-Time (JIT) Compiler. Dieser kompiliert den Bytecode zur Laufzeit in Maschinencode der jeweiligen Plattform. Diese Optimierung erfolgt dabei Schritt für Schritt, was insbesondere bei Programmen mit verhältnismäßig langer oder sogar unbegrenzter Ausführungszeit (wie zum Beispiel dem Network Agent) zu erheblichen Performance Steigerungen führt. [3][4] Heute liegt Java in der Version 1.6. (Java 6) vor (Stand 09/2007) und hat, was die Performance angeht, längst zu Programmiersprachen wie C++ aufgeschlossen 2. Somit können auch leistungsintensive Programme bedenkenlos in Java implementiert werden. 2

10 Einleitung Entwicklungsumgebung Eclipse Eclipse ist ein von der Firma IBM in Java entwickeltes Open-Source-Framework. Ursprünglich hautsächlich zur Entwicklung von Java-Programmen verwendet, hat sich Eclipse mittlerweile zu einer universellen Entwicklungsumgebung für eine Vielzahl von Programmiersprachen entwickelt. Dies liegt vor allem an der Plugin-basierten Struktur, durch die sich Eclipse beliebig erweitern lässt. Eclipse bietet zahlreiche Funktionen, welche dem Programmierer das Schreiben von Code erleichtern, dazu gehören unter anderem Auto-Vervollständigung, Code-Generierung (zum Beispiel Generierung von getter/setter Methoden), Refactoring (zum Beispiel Umbenennen einer Klasse + Update der Referenzen) oder das Unterstreichen von Codeteilen, welche beim Kompilieren Warnungen oder Fehler erzeugen würden. Nicht zuletzt viel meine Wahl jedoch deshalb auf Eclipse, da das Projekt unter der Eclipse Public License (EPL) (früher Common P.L.) steht, und somit völlig kostenlos ist. [5][4] Jigloo Jigloo ist ein von der Firma Cloud Garden entwickelter GUI Builder und wird als Plugin für die Eclipse IDE zur Verfügung gestellt. Bei nicht-kommerzieller Nutzung ist Jigloo kostenlos, es wird lediglich eine Meldung innerhalb der Entwicklungsumgebung angezeigt. Jigloo unterschützt die Grafikbibliotheken Swing und das Standard Widget Toolkit (SWT) auf welche im Laufe dieses Dokumentes noch näher eingegangen wird. Bei Jigloo handelt sich um einen so genannten WYSIWYG ( What you see is what you get )-Editor was so viel bedeutet wie dass bereits während dem Erstellen der grafischen Oberfläche im Editor die tatsächliche Ausgabe, wie sie nach erfolgter Kompilierung des Sourcecodes am Bildschirm erscheint, angezeigt wird. Bei der Erstellung der grafischen Oberfläche selbst bietet Jigloo eine Vielzahl von Möglichkeiten. Nahezu alle verfügbaren Komponenten können über einen einfachen Mausklick eingefügt werden, deren Att-

11 Einleitung 8 ribute verändert werden, sowie Aktionen für bestimmte Events (zum Beispiel eine Tastatureingabe) definiert werden. [6] 1.4. Literaturstudium Die Einarbeitung in die Materie begann grundsätzlich mit dem Studium von Java- Symphony 3 beziehungsweiße dessen Implementierung, da dieses bereits entwickelte System als Grundlage für den Network Agent sowie die Administration Shell diente. Nach dem die Anforderungen, die an das System gestellt werden nun bekannt waren begann die Einarbeitung in SWT, einer Bibliothek zur Erstellung grafischer Oberflächen in JAVA, sowie dem bereits erwähnten GUI-Builder Jigloo. Dabei erwies sich die von Simon Rutishauser geschriebene Einführung in SWT [7] als sehr hilfreich. Als Unterstützung bei allen Java spezifischen Fragen diente das Buch Java ist auch eine Insel von Christian Ullenboom [4], welches vor allem rund um das Thema RMI viele nützliche Informationen beinhaltet. Trotz vieler informativer Bücher, Scripten und Dokumente diente vor allem die Online- Enzyklopädie Wikipedia als Standard-Nachschlagewerk in allen Bereichen, da sie detaillierte Informationen zu nahezu allen relevanten Themen enthält. 3

12 Kapitel 2 Implementierung der Administration Shell 2.1. Allgemeines Motivation Wie bereits erwähnt handelt es sich bei der Administration Shell um ein Tool mit grafischer Benutzeroberfläche zur Administration der auf den einzelnen Rechnern laufenden Network Agents. Da sich die Agents verteilt auf vielen Rechnern und möglicherweise somit auch verteilt an vielen Orten befinden, ist es nötig, ein Werkzeug zur zentralen Verwaltung dieser zur Verfügung zu stellen. Dabei ist es wichtig, dass diese vollkommen ferngesteuert, also auch beispielsweiße gestartet beziehungsweise gestoppt, werden können. Weiters können über die Administration Shell so genannte Physikalische Architekturen erzeugt werden, dies sind baumartige Strukturen, bestehend aus Network Agents. Da sich die NAs im Anfangszustand nicht kennen und daher auch nicht miteinander kommunizieren können, ist es auch hier nötig, den Aufbau dieser Struktur von einer zentralen Stelle aus vorzunehmen, die über eine Liste aller Network Agents verfügt. Die Agents selbst werden durch die Eingabe des Hostnamen oder der IP Adresse des

13 Administration Shell 10 Rechners, plus dem dazugehörigen Port eingetragen. Nach dem Einragen bieten sich eine Vielzahl weiterer Verwaltungsmöglichkeiten, auf die unter dem Punkt Aufbau & Funktion noch näher eingegangen wird. Zur Erstellung der grafischen Benutzeroberfläche wurde der GUI Builder Jigloo in Kombination mit der Grafikbibliothek SWT verwendet Warum SWT? Das Standard Widget Toolkit oder kurz SWT ist eine von der Firma IBM im Jahr 2001 entwickelte Bibliothek zur Erstellung grafischer Benutzeroberflächen in Java. SWT wurde mit dem Ziel entwickelt, die Nachteile der bereits vorhandenen Grafikbibliotheken AWT und Swing zu beheben. Die größten Mankos der beiden Bibliotheken sind die geringe Anzahl der Widgets von AWT, sowie die Trägheit von Swing, besonders bei aufwändigen GUIs. Diese Trägheit resultiert vor allem daraus, dass alle Swing- Komponenten direkt von Java gerendert werden. Dies hat zwar den Vorteil, dass mit Swing entwickelte Applikationen unter allen Betriebssystemen lauffähig sind, für die es auch eine Implementierung der JVM gibt, führt jedoch zu einem erheblichen Mehraufwand an Berechnungen. Um dem entgegenzuwirken verfolgte man bei der Entwicklung von SWT den Ansatz, direkt auf die nativen grafischen Elemente des Betriebssystems zuzugreifen, was zu einem wesentlich geringeren Ressourcenverbrauch führt. Nun sieht es auf den ersten Blick so aus, als würde damit auch die Plattformunabhängigkeit verloren gehen, dies stimmt jedoch nur bedingt: SWT ist mittlerweile in vielen Versionen für unterschiedliche Betriebssysteme und native Grafikbibliotheken verfügbar, unter anderem für Win32 API (Windows), GTK 2 (Linux) oder Carbon (Mac OS X). [7][8][9] Auf Grund des geringeren Ressourcenverbrauchs im Vergleich zu Swing, so wie der trotzdem vorhandenen Plattformunabhängigkeit viel meine Wahl schlussendlich auf SWT.

14 Administration Shell Pflichtenheft Musskriterien Liste der Network Agents Möglichkeit zum Hinzufügen, Editieren und Löschen von Network Agents Laden und speichern von Listen Baumstruktur ( Physikalische Architektur ) Drag & Drop von Network Agents von der Liste in den Baum und umgekehrt, sowie innerhalb des Baum selbst Laden und Speichern von Physikalischen Architekturen Pingen von Network Agents Möglichkeit zum Starten / Stoppen der Agents Manuelles festlegen der Levels Übertragen der Konfiguration auf die Network Agents mittels RMI Anzeige eines Statusreports Anzeige der statischen und dynamischen Systemparameter in Textform Starten der Shell über BAT- & SH-File Sollkriterien Anzeige der statischen und dynamischen Systemparameter in grafischer Form Konsolenfenster zur Überwachung von Ereignissen Ermittlung der Bandbreite von einem Network Agent zum anderen Anzeige der VA-Strukturen, in denen sich der Network Agent befindet Anzeige der dynamischen Systemparameter der VA

15 Administration Shell Aufbau und Funktion Abb. 3: Administration Shell Liste der Network Agents Abb. 4: Liste der Network Agents

16 Administration Shell 13 Die Liste der Network Agents zeigt jene Agents, welche noch nicht Teil einer Physikalischen Architektur sind. Host bezeichnet dabei den Hostnamen oder die IP-Adresse des Rechners, Status den Online/Offline-Status des so genannten NA-Watcher, einem kleinen C-Programm, welches zum Starten des Network Agents dient, Network Agent den derzeitigen Zustand des Agents (started/stopped), und Ping die Reaktionszeit des Rechners in Millisekunden. Add / Edit Network Agent Abb. 5: Add Network Agent Über den Punkt Add Network Agents können neue Agents zur Liste hinzugefügt werden. Sollte die Adresse des Network Agents in Form eines Hostnames eingegeben werden, wird vor dem Eintragen eine Anfrage an das Domain Name System (DNS) gesendet, um den Namen in eine IP-Adresse aufzulösen. Findet sich am DNS kein passender Eintrag, erscheint eine Fehlermeldung. Die eingegebenen Ports müssen sich im Bereich der Registered Ports ( ) oder im Bereich der Dynamic Ports ( ) befinden. Über den Punkt Edit können die eingegeben Daten verändert werden. Ping this Host Über diesen Punkt kann eine Ping-Anfrage an den jeweiligen Rechner gesendet werden und somit seine Reaktionszeit in Millisekunden errechnet werden. Dabei handelt es sich jedoch um keine echte Ping-Anfrage, da eine solche in Java nicht realisierbar ist und zum Beispiel in C implementiert werden müsste. Deshalb wird versucht, eine Socket-

17 Administration Shell 14 Verbindung zum angegebenen Rechner und Port aufzubauen. Gelingt dies, wird die Zeit gemessen, in welcher die Socket-Verbindung aufgebaut und wieder geschlossen werden kann. Abb. 6: Ping State Diagramm Network Agent Start / Stop Über diesen Punkt ist es möglich den jeweiligen Network Agent zu starten beziehungsweiße zu stoppen. Beim Starten wird eine Socket-Verbindung zum NA-Watcher aufgebaut, und das Kommando START an diesen gesendet. Anschließend wird durch eine Ping-Anfrage überprüft, ob der Start erfolgreich war. Beim Stoppen wird über RMI eine entsprechende Methode des Remote Object aufgerufen, welche die entsprechenden Ressourcen freigibt und das Programm schlussendlich beendet. Load / Save List Über diese Buttons können bereits vorhandene Listen geladen, beziehungsweiße erstellte Listen gespeichert werden. Die Speicherung der Liste erfolgt in einer Textdatei in der Form <hostname/ip>:<watcher-port>:<networkagent-port>.

18 Administration Shell Physical Architecure Abb. 7: Physical Architecure Die Physikalische Architektur ist eine Baumstruktur bestehend aus Network Agents, welche durch Drag & Drop von der Liste in den Baum verschoben werden können. Dabei kann jeder NA an jeder beliebigen stelle eingefügt werden, und auch innerhalb der Baumstruktur selbst verschoben werden. Jedem Agent wird automatisch oder manuell ein Level zugewiesen, welches seiner Position in der Hierarchie entspricht. Bei manueller Zuweisung über den Punkt Set Level muss der gewählte Level kleiner als das des Vaters sein (falls vorhanden) und größer als die Levels aller Kinder. Der Eintrag sysroots stellt das Wurzel Element des Baumes dar, ist jedoch selbst kein Network Agent. Show Statusreport Der Status Report ist ein vom Network Agent generierter Bericht. Er enthält Informationen wie statische und dynamische Systemparameter, aktive Prozesse sowie Level, Vater und Kinder des Network Agents. Abb. 8: Status Report

19 Administration Shell 16 Configure Unter dem Punkt Configuration werden die Statusinformationen des Network Agents zusammengefasst (Status von NA-Watcher und Network Agent, Ping, Vater, Anzahl der Kinder, sowie der boolsche Wert is synchronized, auf welchen unter dem Punkt Make Configuartion noch näher eingegangen wird. Weiters bieten Abb. 9: Configuration sich Konfigurationsmöglichkeiten wie starten / stoppen des Network Agents, setzen des Levels sowie des Wertes PRate. Dabei handelt es sich um einen Integer-Wert, welcher den zeitlichen Abstand in Sekunden festlegt, nach dem der Network Agent die dynamischen Systemparameter aktualisiert. System Properties Abb. 10: System Properties Textual Info Unter dem Punkt System Poperties werden die derzeitigen statischen und dynamischen Systemparameter des Network Agents angezeigt. Die Registerkarte Textual Info enthält Informationen zu CPU- Last, Memory gesamt, Memory available, Memeory used, Belegung der Festplatte und aktiven Prozessen. Die Registerkarte Graphical Info

20 Administration Shell 17 enthält Statistiken zu CPU-Last und Memory-Belegung über einen bestimmten Zeitraum (Standard: ca. 8 Minuten). Zur Erstellung der grafischen Statistiken wurde die Bibliothek Chart Director der Firma Advanced Software Engeneering 4 (ASE) verwendet. Über den Punkt Update every X seconds kann festgelegt werden, in welchem Intervall die Grafiken aktualisiert werden. Abb. 11: System Properties Graphical Info Load / Save Configuration Über diesen Punkt können bereits vorhandene Physikalische Architekturen geladen sowie soeben erstellte gespeichert werden. Die Daten werden in einer Text-Datei im XML (Extensible Markup Language)-Format gespeichert. XML ermöglicht es, eigene Auszeichnungssprachen zu entwerfen. Die Syntax dieser Auszeichnungssprachen wird über Schemasprachen wie DTD (Document Type Definiton) oder XML-Schema festgelegt. In diesem Fall wurde das DTD-Schema in einer externen Datei abgelegt, welche in der XML Datei referenziert wird. Der Inhalt der Datei sieht wie folgt aus: <!ELEMENT architecture (node*)> <!ELEMENT node (node*)> <!ATTLIST node level ( ) #REQUIRED> <!ATTLIST node host CDATA #REQUIRED> <!ATTLIST node l_port CDATA #REQUIRED> <!ATTLIST node na_port CDATA #REQUIRED> In der ersten Zeile wird das Root-Element architecture definiert. Dieses kann beliebig viele node -Elemente enthalten. Danach erfolgt die Definition des node -Elements, 4

21 Administration Shell 18 welches sich wiederum beliebig oft selbst enthalten darf. Weiters werden 4 Attribute definiert, der Zusatz #REQUIRED bedeutet dabei, dass das Attribut zwingend benötigt wird: Level = Level des Network Agents (1 9) Host = Hostname oder IP-Adresse l_port = Port für NA-Watcher na_port = Port für Network Agent Eine entsprechende XML-Datei könnte nun wie folgt aussehen: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE architecture SYSTEM "architecture.dtd"> <architecture> <node level="2" host="peter.test.org" l_port="7777" na_port="5000"> <node level="1" host="franz.test.org" l_port="7777" na_port="5000" /> <node level="1" host="karl.test.org" l_port="7777" na_port="5000" /> </node> </architecture> Zum Parsen der XML-Datei wird die Klasse SAXBuilder der JDOM-Bibliothek verwendet. Nach dem Parsen erhält man eine Liste der root-elemente. Dabei handelt es sich um Objekte vom Typ Element. Über Methoden wie getchildren() und getattributes() erhält man schlussendlich Zugriff auf die Kindelemente sowie die einzelnen Attribute. Make Configuration Über den Button Make Configuration kann die soeben erstellte Konfiguration (Physikalische Architektur, Levels, ) auf die einzelnen Network Agents übertragen werden. Man könnte auch von einer Synchronisation der Network Agents sprechen. Dabei werden alle Network Agents einzeln kontaktiert, und die zuvor festgelegten Parameter per RMI übertragen. Die Vorgehensweiße beim Klick auf Make Configuration entspricht folgendem Pseudocode:

22 Administration Shell 19 FOR all NetworkAgents IF checknetworkagent() THEN IF NOT issynchronized THEN Synchronize() END IF ELSE IF startnetworkagent() THEN Synchronize() ELSE Error() END IF END IF END FOR Die boolsche Variable issynchronized gibt Auskunft darüber, ob eine (erneute) Synchronisierung notwendig ist. Sie erhält nach der ersten Synchronisierung den Wert true. Bei jeder Änderung, welche nach der ersten Synchronisierung getätigt wird (zum Beispiel Änderungen an der Baumstruktur) wird der Wert wieder auf false gesetzt, was bedeutet dass eine erneute Synchronisierung nötig ist. Somit müssen bei kleinen Änderungen nicht jedes Mal alle Network Agents neu synchronisiert werden. Vor der eigentlichen Übermittlung der Daten wird über eine Methode (in obigen Beispiel checknetworkagent() ) überprüft, ob der Agent online und erreichbar ist. Ist dies nicht der Fall, wird versucht, ihn über den NA-Watcher zu starten. Gelingt auch das nicht, wird ein Fehler zurückgegeben und die Synchronisierung abgebrochen Kommunikation per RMI RMI ( Remote Method Invocation ) bezeichnet den Aufruf entfernter Methoden. Der Begriff entfernt bedeutet dabei, dass sich die Methoden in einer anderen Laufzeitumgebung befinden (zum Beispiel auf einem anderen Rechner im Intranet oder Internet). Um solch einen Aufruf zu tätigen, müssen grundsätzlich der Name des entfernten Objektes, sowie die Host/IP-Adresse des entfernten Rechners bekannt sein.

23 Administration Shell 20 Ziel bei der Entwicklung von RMI war es, einen entfernten Methodenaufruf wie einen lokalen aussehen zu lassen. Um dies zu erreichen ist es nötig, die gesamte Logik (Verbindungsaufbau zum Remote-Host, Übermittlung der Daten, Ausführung der Remote- Methode, Zurücksenden der Daten, Schließen der Verbindung) hinter einer Fassade zu verstecken. Dies beginnt mit der Einführung von Stellvertreter-Objekten (engl. proxies), welche sowohl auf der Client- als auch auf der Serverseite vorhanden sind, und sich um die genannten Vorgänge kümmern. Serverseitig gibt es neben dem Stellvertreterobjekt noch die so genannte RMI-Registry. Dabei handelt es sich um einen Namensdienst, bei welchem der Server ein oder mehrere Instanzen des Remote-Objektes anmeldet. Der Client selbst erhält nach einer Anfrage beim Namensdienst eine Referenz auf das entsprechende Remote-Objekt und kann danach auf dieses zugreifen. Abb. 12: Kommunikation per RMI Anhand dieser Abbildung werden die 4 Grundschritte, welche beim Aufruf einer entfernten Methode getätigt werden verdeutlicht: 1. Der Server registriert das Objekt bei der RMI-Registry über Naming.rebind(). 2. Der Client holt sich über Naming.lookup() eine Referenz auf das Remote-Objekt. 3. Aufruf einer Remote-Methode am Client. Die Information, welche Methoden zur Verfügung stehen, erhält der Client über das Remote-Interface, welches vom Remote-Objekt implementiert werden muss.

24 Administration Shell Nach der Ausführung der Methode am Server sendet dieser das Ergebnis wieder an den Client zurück, oder liefert im Fehlerfall eine Exception (zum Beispiel bei einem Verbindungsabbruch). Die gesamte Kommunikation zwischen den Network Agents und der Administration Shell wird über RMI getätigt. Die Administration Shell fungiert dabei als Client, da sie Methoden der Remote-Objekte (Instanzen der einzelnen Network Agents) aufruft. Zusammengefasst ergeben sich aus der Verwendung von RMI zwei große Vorteile: Geringerer Aufwand, da der Programmierer sich nicht selbst um die Implementierung der Kommunikationslogik kümmern muss, sowie größere Sicherheit, da es sich bei RMI um ein ausgiebig getestetes Kommunikationsprotokoll handelt. [10][11][4]

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

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

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

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

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit 1 Hochverfügbarkeit Lernziele: Network Load Balancing (NLB) Failover-Servercluster Verwalten der Failover Cluster Rolle Arbeiten mit virtuellen Maschinen Prüfungsanforderungen von Microsoft: Configure

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. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Kundenanforderungen. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 24.05.2013

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

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

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

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

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

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

DHCP-Server mithilfe von SolarWinds IP Address Manager verwalten. Teilen:

DHCP-Server mithilfe von SolarWinds IP Address Manager verwalten. Teilen: DHCP-Server mithilfe von SolarWinds IP Address Manager verwalten Teilen: DHCP-Server mithilfe von SolarWinds IPAM verwalten SolarWinds IP Address Manager (IPAM) bietet eine leistungsfähige und zentralisierte

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Programmierkurs Java. Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.

Programmierkurs Java. Grundlagen. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck. Programmierkurs Java Grundlagen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Algorithmen, Maschinen- und Programmiersprachen Algorithmen

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Anleitung zur Installation eines Clusters unter VMWare 4.0 (Built 4460)

Anleitung zur Installation eines Clusters unter VMWare 4.0 (Built 4460) Anleitung zur Installation eines Clusters unter VMWare 4.0 (Built 4460) Schritt 1: Erstellen der virtuellen Maschinen 1. Menü File, New, New Virtual Machine... wählen. 2. Auf Weiter > klicken. 3. Die Option

Mehr

GDI-Knoppix 4.0.2 - Erste Schritte. Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006

GDI-Knoppix 4.0.2 - Erste Schritte. Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006 GDI-Knoppix 4.0.2 - Erste Schritte Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006 Dieses Dokument beschreibt elementare Dinge im Umgang mit Knoppix. Knoppix ist ein "Live-Linux".

Mehr

Agenda. Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture. Virtuelle Netzwerke

Agenda. Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture. Virtuelle Netzwerke VMware Server Agenda Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture Virtuelle Netzwerke 2 Einleitung Virtualisierung: Abstrakte Ebene Physikalische Hardware

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8

Byte-Taxi. Bedienungsanleitung. Seite 1 von 8 Byte-Taxi Bedienungsanleitung Seite 1 von 8 Inhaltsverzeichnis 1. Beschreibung 3 2. Systemvoraussetzungen 4 3. Installationsanleitung 5 4. Bedienung 6 5. Infos & Kontakt 8 Seite 2 von 8 1. Beschreibung

Mehr

Programmierung einer Windows Store App mit C# und XAML

Programmierung einer Windows Store App mit C# und XAML Neuer Abschnitt 1 Seite 1 Programmierung einer Windows Store App mit C# und XAML Einleitung In diesem Fachbericht der im Rahmen meines 8 Wochen langem Praktikums entstand geht es um die Programmierung

Mehr

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung

Security. Stefan Dahler. 6. Zone Defense. 6.1 Einleitung 6. Zone Defense 6.1 Einleitung Im Folgenden wird die Konfiguration von Zone Defense gezeigt. Sie verwenden einen Rechner für die Administration, den anderen für Ihre Tests. In der Firewall können Sie entweder

Mehr

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

Call Button / HTTP - Systembeschreibung

Call Button / HTTP - Systembeschreibung Call Button / HTTP - Systembeschreibung Detlef Reil, 14.03.2004, zu Call Button, Version 040127, V1.50 Beta! Software System Für die Kommunikation zwischen den Call Buttons und der Applikation war bisher

Mehr

Pflichtenheft Programmanwendung "Syntax Tool"

Pflichtenheft Programmanwendung Syntax Tool Projekt: Syntax Tool Autor: Michael Rattun Home: www.mrattun.de Letzte Änderung: 27.10.2011 1 SEITE Syntax Tool Inhaltsverzeichnis Inhaltsverzeichnis 1. Zielbestimmung... 3 1.1 Muss-Kriterien (Freeware)...

Mehr

Christian Kurz SWT Projekt WS 07/08

Christian Kurz SWT Projekt WS 07/08 Christian Kurz SWT Projekt WS 07/08 1. Allgemeine Aspekte der generativen GUI- Entwicklung 2. Entwicklung mit Hilfe von GUI-Designern 3. Entwicklung mit Hilfe deklarativer GUI- Sprachen 4. Modellgetriebene

Mehr

-Bundle auf Ihrem virtuellen Server installieren.

-Bundle auf Ihrem virtuellen Server installieren. Anleitung: Confixx auf virtuellem Server installieren Diese Anleitung beschreibt Ihnen, wie Sie das Debian-Confixx- -Bundle auf Ihrem virtuellen Server installieren. 1. Schritt: Rufen Sie die Adresse http://vsadmin.host-4-you.de

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl.

KNX BAOS Gadget. Installations- und Bedienanleitung. WEINZIERL ENGINEERING GmbH. DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl. Installations- und Bedienanleitung DE-84508 Burgkirchen E-Mail: info@weinzierl.de Web: www.weinzierl.de 2013-08-12 Seite 1/6 Inhaltsverzeichnis 1. BESCHREIBUNG... 3 2. SYSTEMVORAUSSETZUNGEN... 3 3. INSTALLATION...

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

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung 4. Internet Verbindung 4.1 Einleitung Im Folgenden wird die Konfiguration der DFL-800 Firewall gezeigt. Sie konfigurieren einen Internet Zugang zum Provider mit dem Protokoll PPPoE. In der Firewallrichtlinie

Mehr

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten

[Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten [Geben Sie Text ein] ISCSI Targets mit der Software FreeNAS einrichten ISCSI Targets mit der Software FreeNAS einrichten Inhalt FreeNAS Server Vorbereitung... 2 Virtuelle Maschine einrichten... 3 FreeNAS

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

PARAGON SYSTEM UPGRADE UTILITIES

PARAGON SYSTEM UPGRADE UTILITIES PARAGON SYSTEM UPGRADE UTILITIES VIRTUALISIERUNG EINES SYSTEMS AUS ZUVOR ERSTELLTER SICHERUNG 1. Virtualisierung eines Systems aus zuvor erstellter Sicherung... 2 2. Sicherung in eine virtuelle Festplatte

Mehr

Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen.

Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen. Infoblox GUI Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen. Inhalt 1. Einleitung... 2 2. Login / Logout ins GUI... 2 3. Assign Fixed IP... 4 4. Add Host... 6

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

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

Grundlagen DNS 1/5. DNS (Domain Name System)

Grundlagen DNS 1/5. DNS (Domain Name System) Grundlagen DNS 1/5 DNS (Domain Name System) Weltweit gibt es 13 zentrale DNS-Server (Root-Nameserver), auf denen die verschiedenen Domains abgelegt sind. Der Domönennamensraum bzw. das Domain Name Space

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Cluster Quick Start Guide

Cluster Quick Start Guide Cluster Quick Start Guide Cluster SR2500 Anleitung zur Konfi guration KURZÜBERBLICK CLUSTER SEITE 2 FUNKTIONSWEISE DES THOMAS KRENN CLUSTERS (SCHAUBILD) SEITE 3 CLUSTER AUFBAUEN UND KONFIGURIEREN SEITE

Mehr

cs106 Informatiklabor Teil 1: Java-Installation

cs106 Informatiklabor Teil 1: Java-Installation Herbstsemester 2009 cs106 Informatiklabor Teil 1: Java-Installation Florian Zeller Vorgehen und Ziele Wöchentlich eine Übung Unterstützte Bearbeitung während den Übungsstunden Austausch mit älteren Semestern

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

theguard! ApplicationManager Version 3.0

theguard! ApplicationManager Version 3.0 theguard! ApplicationManager Version 3.0 Stand 08/07/2007 Der ApplicationManager ist eine 3-schichtige Client-Server Applikation für die es System- Voraussetzungen in verschiedenen Ausprägungen gibt Das

Mehr

Softwarelabor 1. Einführung

Softwarelabor 1. Einführung Softwarelabor 1. Einführung Prof. Dr. holger.vogelsang@fh-karlsruhe.de Inhalt Inhalt 1. Einführung Warum Java? Marktanforderungen Geschichte von Java Eigenschaften von Java Einführung in Eclipse Kleine

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

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme

Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall

Mehr

Basiskurs paedml Linux 6-2. Grundlagen der Virtualisierungstechnik INHALTSVERZEICHNIS

Basiskurs paedml Linux 6-2. Grundlagen der Virtualisierungstechnik INHALTSVERZEICHNIS INHALTSVERZEICHNIS 2.Grundlagen der Virtualisierungstechnik...3 2.1.Strukturen in virtualisierten Systemen...3 2.2.Der Host...7 2.2.1.Die virtuellen Maschinen...7 2.3.Die Virtualisierungssoftware VMware

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

Dynamic DNS AK-NORD AK-ComPoint-LAN-AS Router2 Registration ------- Router2 Freischaltung AK ComPoint LAN-AS mydev.dyndns.org

Dynamic DNS AK-NORD AK-ComPoint-LAN-AS Router2 Registration ------- Router2 Freischaltung AK ComPoint LAN-AS mydev.dyndns.org Dynamic DNS Wer von einem zentralen Firmennetz auf einen entfernten über das Internet angeschlossenen DeviceServer oder Printserver zugreifen möchte, benötigt in der Regel eine vom ISP zugewiesene statische

Mehr

SolarWinds Engineer s Toolset

SolarWinds Engineer s Toolset SolarWinds Engineer s Toolset Monitoring Tools Das Engineer s Toolset ist eine Sammlung von 49 wertvoller und sinnvoller Netzwerktools. Die Nr. 1 Suite für jeden Administrator! Die Schwerpunkte liegen

Mehr

Behebung des sog. Heartbleed-Bugs (CVE-2014-0160) in der Krypto-Bibliothek OpenSSL.

Behebung des sog. Heartbleed-Bugs (CVE-2014-0160) in der Krypto-Bibliothek OpenSSL. NCP Secure Enterprise HA Server Service Release 3.04 Build 24 (Windows 32/64) April 2014 Voraussetzungen Microsoft Windows Betriebssysteme: Die folgenden Microsoft Windows Betriebssystemen sind mit diesem

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

www.uni-math.gwdg.de/linuxuebung

www.uni-math.gwdg.de/linuxuebung 14 Netzwerküberwachung und -steuerung Überblick SNMP Simple Network Management Protocol Datendefinitionen SNMP Implementierungen unter Linux Kommandos zur Datenbeschaffung Konfiguration des Net-SNMP Agenten

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

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

Ü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 8 10. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten

09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten Aktuelle Themen der Wirtschaftsinformatik Zusammenfassung 09.06.2003 André Maurer andre@maurer.name www.andre.maurer.name Wirtschaftsinformatik FH 3.5 Fachhochschule Solothurn, Olten 1 Serverseitige Webprogrammierung

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

Server Installation 1/6 20.10.04

Server Installation 1/6 20.10.04 Server Installation Netzwerkeinrichtung Nach der Installation müssen die Netzwerkeinstellungen vorgenommen werden. Hierzu wird eine feste IP- Adresse sowie der Servername eingetragen. Beispiel: IP-Adresse:

Mehr

Tutorial Grundlagen der Softwareverteilung

Tutorial Grundlagen der Softwareverteilung Tutorial Grundlagen der Softwareverteilung Inhaltsverzeichnis 1. Einführung... 3 2. Clientsysteme einrichten... 3 2.1 Den SDI Agent verteilen... 3 2.2 Grundeinstellungen festlegen... 4 3. Softwareverteiler...

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

bintec Workshop Dynamic Host Configuration Protocol Copyright 8. November 2005 Funkwerk Enterprise Communications GmbH Version 0.9

bintec Workshop Dynamic Host Configuration Protocol Copyright 8. November 2005 Funkwerk Enterprise Communications GmbH Version 0.9 bintec Workshop Dynamic Host Configuration Protocol Copyright 8. November 2005 Funkwerk Enterprise Communications GmbH Version 0.9 Ziel und Zweck Haftung Marken Copyright Richtlinien und Normen Wie Sie

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

SolarWinds Engineer s Toolset

SolarWinds Engineer s Toolset SolarWinds Engineer s Toolset Diagnostic Tools Das Engineer s Toolset ist eine Sammlung von 49 wertvoller und sinnvoller Netzwerktools. Die Nr. 1 Suite für jeden Administrator! Die Schwerpunkte liegen

Mehr

Automatisierung des Tests

Automatisierung des Tests Hochschule Furtwangen University Aktuelle Themen der Informatik Automatisierung des Tests von Java-Swing-GUIs von Dominik Jall CN 7 Agenda Einführung Was ist Swing? Warum GUIs automatisiert testen? Werkzeuge

Mehr

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer) Programmieren I Grundlagen von JAVA Dr. Klaus Höppner Hello World in JAVA Hochschule Darmstadt WS 2007/2008 Elementare Datentypen 1 / 17 2 / 17 Eigenschaften von JAVA Prinzipieller Ablauf Plattform-und

Mehr

5.3.3.7 Übung - Überwachen und Verwalten von Systemressourcen in Windows XP

5.3.3.7 Übung - Überwachen und Verwalten von Systemressourcen in Windows XP 5.0 5.3.3.7 Übung - Überwachen und Verwalten von Systemressourcen in Windows XP Einführung Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung verwenden Sie administrative Tools zur Überwachung

Mehr

DSLinux Skriptbasierte Inventarisierung für Linux

DSLinux Skriptbasierte Inventarisierung für Linux DSLinux Skriptbasierte Inventarisierung für Linux www.docusnap.com TITEL DSLinux AUTOR Docusnap Consulting DATUM 21.04.2015 Die Weitergabe, sowie Vervielfältigung dieser Unterlage, auch von Teilen, Verwertung

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

Grundlagen zur nebenläufigen Programmierung in Java

Grundlagen zur nebenläufigen Programmierung in Java Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen,

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

IBM SPSS Collaboration and Deployment Services (C&DS) version 7

IBM SPSS Collaboration and Deployment Services (C&DS) version 7 Dieses Handbuch richtet sich an Systemadministratoren, die IBM SPSS Modeler Entity Analytics (EA) für die Ausführung mit einem der folgenden Produkte konfigurieren: IBM SPSS Collaboration and Deployment

Mehr