Lade Inhalt...

Entwicklung neuer graphischer und funktionaler Möglichkeiten eines MultiProtocolAnalyzers unter Verwendung von Java und Swing

Diplomarbeit 2000 75 Seiten

Informatik - Internet, neue Technologien

Leseprobe

Inhaltsverzeichnis

1 Einleitung
1.1 Die Firma Sun Microsystems
1.2 Aufgabenstellung
1.3 Arbeitsumgebung
1.4 Gliederung

2 Grundlagen
2.1 Java/Swing
2.2 Netzwerke
2.2.1 Grundbegriffe
2.2.2 Das ISO/OSI-Schichtenmodell
2.2.3 Die Internet-Protokollfamilie
2.2.4 Aufzeichnung von Netzwerkdaten

3 Der Konverter Isis
3.1 Das Multi-Protocol-Analyzer-File-Format
3.2 Neue Anforderungen
3.3 Das GUI
3.3.1 Programmablauf
3.3.2 Look & Feel
3.3.3 Dateien mit Programmunterstützung auswählen
3.3.4 Meldungen im Programm
3.3.5 Programmoptionen
3.3.6 Heuristik
3.3.7 Der Fortschritt der Konvertierung
3.3.8 Das Protokollieren der Konvertierung
3.3.9 Hilfe

4 Der Analyzer Osiris
4.1 Programmablauf
4.2 Einlesen der Daten
4.3 Darstellung der Daten
4.3.1 Quasi-Standard der Darstellung
4.3.2 Das Informationsfenster
4.3.3 Das Übersichtsfenster
4.3.4 Das Detailfenster
4.3.5 Das Hexfenster
4.4 Navigation durch die Daten
4.4.1 Scrollbalken
4.4.2 Kommentare und Marker
4.4.3 Direkte Anwahl
4.4.4 Suchen von Paketen
4.5 Filtern der Daten
4.5.1 Die Filter
4.5.1.1 Der Patternfilter
4.5.1.2 Der Sizefilter
4.5.1.3 Der Protocolfilter
4.5.1.4 Der Fieldfilter
4.5.2 Zusammenspiel der Filter
4.5.2.1 Neuer Filter
4.5.2.2 Laden und Speichern von Filtern
4.5.2.3 Ausführung von Filtern
4.5.2.4 Suchen und Weitersuchen mit der Mächtigkeit von Filtern
4.6 Statistische Auswertungen
4.6.1 Mittel der Darstellung
4.6.1.1 Kuchengrafiken
4.6.1.2 Ein Koordinatensystem
4.6.2 Konkrete Auswertungen
4.6.2.1 Zählen von Paketen
4.6.2.2 Gesamter Datentransfer
4.6.2.3 Gruppierung von Paketen
4.6.2.4 Darstellung des Datenverkehrs
4.7 Flow Control
4.7.1 Theorie
4.7.2 Realisierung

5 Schnittstelle für Protokolle
5.1 Die abstrakte Klasse
5.2 Konkrete Vererbung
5.2.1 Klassenattribute
5.2.2 Objektattribute
5.2.3 Methoden, um Objektattribute dem Fieldfilter zur Verfügung zu stellen
5.2.3.1 Die Methode getValues()
5.2.3.2 Die Methode getFields()
5.2.4 Interpretation von Objektattributen
5.2.4.1 Die Methode getDetails()
5.2.4.2 Beispiel: Interpretation von MAC-Adressen

6 Erster Einsatz des Analyzers

7 Zusammenfassung

1 Einleitung

1.1 Die Firma Sun Microsystems

Sun Microsystems wurde 1982 in Mountain View, Kalifornien, von dem Deutschen Andreas von Bechtolsheim und den Amerikanern Bill Joy, Vinod Khosla und Scott McNealy[1] gegründet.

Der Name Sun leitet sich von "Stanford university network" ab, einem damaligen Projekt zur Vernetzung der Bibliotheksrechner an der Stanford University. Abbildung 1 zeigt das offizielle Firmenlogo von Sun.

Abbildung in dieser Leseprobe nicht enthalten Abb. 1: Offizielles Firmenlogo von Sun Microsystems, Inc.

Seit der Gründung war Sun’s Motto "The Network is The Computer". Darunter ist eine Vision zu verstehen, die alle Komponenten in einem Netzwerk wie eine einzige große Ressource zusammenarbeiten lassen soll. Mit dem im Januar 1999 neu gebildeten Slogan "We are the dot in .com" unterstreicht Sun abermals dieses Ziel und kennzeichnet damit gleichzeitig die führende Position als Anbieter für Network Computing Architekturen.

Sämtliche Produkte, Technologien und Dienstleistungen Sun’s sind auf dieses Computing Paradigma ausgerichtet. Das Angebotsspektrum reicht von leistungsfähigen Servern, Workstations, intelligenten Speichersystemen und Netzwerklösungen über die Betriebssystemumgebung Solaris bis hin zu innovativen Softwaretechnologien wie Java und Jini. Eine modulare Palette an Consulting-, Service- und Schulungs-Programmen ergänzen das Angebot.[2]

Über 26.000 Mitarbeiter haben im vergangenen Geschäftsjahr[3] in über 150 Ländern dazu beigetragen, einen Umsatz von mehr als 11,726 Milliarden US-Dollar zu erwirtschaften.[4]

Vertreten wird Sun in Deutschland durch die im Jahre 1984 gegründete Sun Microsystems GmbH. Ihre Hauptverwaltung befindet sich in Grasbrunn bei München[5]. Weitere Geschäftsstellen sind in Berlin, Hamburg, Ratingen/Düsseldorf, Langen/Frankfurt und Stuttgart angesiedelt.

Diese Diplomarbeit entstand in der Abteilung für Problemlösungen im heterogenen Netzwerkbereich.[6] In dieser werden reaktiv beim Kunden auftretende Probleme untersucht, analysiert und gegebenenfalls nachgestellt, um dem Kunden schnellstmöglich wieder einen störungsfreien Betrieb zu ermöglichen.

1.2 Aufgabenstellung

Die Verwendung unterschiedlicher Netzwerktechnologien und -topologien können Probleme entstehen lassen (z. B. "... die Paketübertragung scheint unglaublich langsam oder Rechner blockieren plötzlich beim Booten des Netzwerks ..."[7] ). Diese machen eine Netzwerkanalyse mit Hilfe von Netzwerkdaten notwendig.

Software, die den Kunden (und natürlich auch den Spezialisten) von Sun zum Aufzeichnen solcher Netzwerkdaten dient, besitzen unterschiedliche Ausgabeformate und unterschiedlichen Informationsgehalt. Man spricht hier von einem Trace (engl. Aufzeichnung). Tabelle 1 zeigt die unter Solaris[8] verwendeten Tools zum Überwachen des Netzverkehrs.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 1: Übliche Tools unter Solaris zum Überwachen des Netzverkehrs[13]

Der Zweck des MultiProtocolAnalyzers ist es, die Ausgabe dieser verschiedenen Tracetools in ein einheitliches, binäres Format zu konvertieren und dessen Inhalt mit Unterstützung von plattformunabhängiger Software analysieren zu können.

Im Hinblick auf leichte Erweiterbarkeit und Wartbarkeit entschloß man sich, die Software in zwei Teile mit unterschiedlichen Funktionen aufzuspalten:

• einem Tool zum Konvertieren verschiedener Ausgabeformate der vorhandenen Trace-Tools in ein einheitliches Standardformat und • einem Tool zur Analyse der in diesem Standardformat enthaltenen Informationen.

Abbildung 2 zeigt das Prinzip dieser Überlegungen.

Abbildung in dieser Leseprobe nicht enthalten Abb. 2: Prinzip des Zusammenspiels von Isis und Osiris [14]

Diese Arbeit baut auf den Ergebnissen von Sun Microsystems auf, die in der Diplomarbeit "Entwicklung eines Java-basierten Multiprotokoll-Analyzers" im Januar 1999 von Dipl.-Inform. Martin Altenburg (FH) zusammengetragen wurden.

Dabei konnten die in Tabelle 1 angegebenen Traceformate bereits in das von ihm entwickelte Datenformat MPAFF[15] konvertiert werden.[16]. Auch die Interpretation einiger Netzwerkprotokolle existierte bereits.

Die Namensgebung der Produkte begründet sich in der Zusammengehörigkeit von Isis und Osiris. Isis war nämlich die Gemahlin des Osiris. Beide waren altägyptische Gottheiten und zeugten den Sonnengott Horus.[17]

Ziel dieser Diplomarbeit ist es, sowohl graphische (benutzerfreundliche GUI’s[18], Aufbereitung der Netzwerkdaten und statistische Analysen), als auch funktionale Möglichkeiten (wie beispielsweise Suchfunktion und Filterung) bereitzustellen, die eine softwareunterstützte Netzwerkanalyse ermöglichen sollen.

Damit die Netzwerkspezialisten bei Sun neue Protokolle programmieren und so Osiris erweitern können, wurde eine softwaretechnische Schnittstelle dafür entwickelt.

Im Hinblick auf die Erweiterbarkeit durch diverse Abteilungen im In- und Ausland erfolgte sowohl die Implementierung als auch die Online-Dokumentation in englischer Sprache. Weiterhin wurde Java 2 und die damit verbundenen neuen Möglichkeiten von Swing verwendet, um ein universelles, plattformunabhängiges und vielseitiges Werkzeug zur Analyse des Netzwerkverkehrs zu erhalten.

1.3 Arbeitsumgebung

Für diese Arbeit standen eine Sun Workstation der Serie "Ultra 10" (mit 300 MHz getaktetem Ultra Sparc II Prozessor) mit 256 MB Hauptspeicher unter Solaris 2.7 zur Verfügung. Als IDE[19] stand der hauseigene Java Workshop in den Versionen von 3.0.2 bis 3.0.5 zur Verfügung. Er beherrscht die für IDE’s üblichen Features wie Syntax-Coloring des Editors, Debugging und Projektverwaltung[20]. Ein GUI-Builder wurde nicht verwendet. Das JDK[21] wechselte während dieser Arbeit die Versionsnummern von 1.2.0 bis hin zu 1.2.2[22].

1.4 Gliederung

In Kapitel 2 wird die nötige Basis für das Verständnis dieser Arbeit geschaffen. Es wird auf die zentralen Begriffe Java/Swing und Netzwerke, bzw. Netzwerkanalyse eingegangen.

Kapitel 3 behandelt den Konvertierer, an dessen GUI ausgewählte Möglichkeiten von Swing aufgezeigt werden.

Kapitel 4 behandelt den Analyzer, an dem neue funktionale und graphische Möglichkeiten diskutiert werden.

Kapitel 5 beschreibt die Programmschnittstelle für die Protokolle zum einfachen Erweitern des Analyzers.

Kapitel 6 stellt eine Zusammenfassung der Arbeit dar mit einem Ausblick in die Zukunft.

2 Grundlagen

2.1 Java/Swing

Anfang Dezember 1998 wurde die erste finale Version des JDK 1.2 von Sun Microsystems zur Verfügung gestellt und die Java-Technologie im Januar 1999 in "Java 2 Platform"[23] umbenannt. In dieser Version ist auch erstmals Swing offiziell mit aufgenommen. Abbildung 3 zeigt das Java-Logo.

Abbildung in dieser Leseprobe nicht enthaltenWas ist Java?

Java ist eine plattformunabhängige Programmiersprache, die im Jahre 1995 eingeführt wurde (im Januar 1996 wurde offiziell das JDK 1.0 freigegeben). Sie wird für das Verständnis der Swing-Codestücke als bekannt vorausgesetzt. Für Java gibt es mittlerweile sehr umfangreiche (und im Gegensatz zu Swing auch sehr gute deutsche) Literatur.

Abb. 3 : Das offizielle Java-Logo

Was ist Swing?

Abbildung in dieser Leseprobe nicht enthaltenSwing ist ein API[24] und bietet die Möglichkeit, plattformunabhängige, graphische Oberflächen für Java-Software zu entwickeln. Der Name Swing repräsentiert den Projektnamen, den die Entwickler wählten, als das Projekt 1996 "angestossen" wurde. In Abbildung 4 wird das Java-Maskottchen Duke auf einer "swingenden" Schaukel dargestellt.

Swing ist tatsächlich aber nur eines von fünf API’s, die die Java Foundation Classes (JFC) ausmachen. Die JFC besteht aus: Abb. 4 : Duke

•- AWT[25]
•- Swing
•- Accessibility
•- Java 2D und
•- Drag and Drop

In Java werden alle Funktionen der graphischen Benutzeroberfläche vom AWT verarbeitet. Dabei ist das Aussehen und die Fülle an Funktionen abhängig von der Plattform, auf dem Java-Programme ablaufen. Swing ist ein API, das es erlaubt, auch plattformunabhängiges Aussehen für plattformunabhängige Java-Programme zu gewährleisten. Außerdem enthält es nicht nur das AWT ersetzende, bzw. verbesserte, sondern auch neue und mächtigere Komponenten, die es erlauben, anspruchsvolle graphische Oberflächen zu entwickeln. Durch die Abbildungen 5 und 6 wird die Komponentenvererbung im Swing-API veranschaulicht.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 5: das AWT ersetzende (bzw. verbesserte) Komponenten

Das Accessibility -Paket des JFC erlaubt Behinderten in Zusammenarbeit mit "audible text readers" oder "braille keyboards" direkten Zugriff auf alle Swing-Komponenten. Java2D enthält Klassen für die Lösung von komplexen Grafikproblemen im 2D-Bereich und Drag and Drop erlaubt den Austausch von Information zwischen einer Java-Applikation und nativen Applikationen durch Ziehen und Fallenlassen von Bildschirmobjekten mit der Maus.Auf Accessibility, Java2D und Drag and Drop wird in dieser Arbeit nicht weiter eingegangen.

Neben den API’s im JFC gibt es noch eine ganze Reihe anderer Spezial-API’s, die es ermöglichen sollen, noch leistungsfähigere Applets und Applikationen mit Java zu erstellen. Dazu zählen beispielsweise Java 3D oder Java Sound. Auch auf diese Themen wird in dieser Arbeit nicht eingegangen.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 6 Neue Komponenten im Swing-API

Der MulitProtocolAnalyzer macht intensiven Gebrauch von Swing. Es wird die Verwendung von Swing in diesem Zusammenhang erläutert und auf Probleme und Lösungswege hingewiesen, die während dieser Arbeit aufgetreten (und behoben) worden sind. Umfassende Informationen über Swing 1999 ließen sich in den Foren[26] der JDC[27], in der von Sun bereitgestellten Literatur (The Sun Microsystems Press), den Beispielen des JDK’s und von Anbietern im englischsprachigen Raum finden.

2.2 Netzwerke

"Der Stand der Technik in Rechnernetzen bezüglich Netzarchitekturen und Netzprotokollen läßt sich aus ... [heutiger] Sicht gut durch das OSI-Referenzmodell und die Internet-Protokollfamilie zusammenfassen."[28] Zunächst seien hier aber einige wichtige Grundbegriffe geklärt.

2.2.1 Grundbegriffe

Einen Verbund aus Computern, die miteinander vernetzt sind, bezeichnet man als Netzwerk.

"Bevor zwei Datenstationen Daten austauschen können, müssen zahlreiche Vereinbarungen nicht nur über technische Aspekte, z. B. Verwendete Codes, Betriebsart, Übertragungsgeschwindigkeit usw., sondern insbesondere auch über den algorithmischen Ablauf der Übertragung getroffen werden, z. B. welche Station wann und wie lange sendet, wie empfangene Daten quittiert werden, was bei Übertragungsfehlern zu geschehen hat usw. Die Festlegung dieses algorithmischen Ablaufs bezeichnet man als Übertragungsprozedur oder Kommunikationsprotokoll (auch kurz Protokoll)."[29]

Die Anordnung der Rechner in einem Netzwerk nennt man Topologie. Man kann u. a. Stern-, Baum-, Bus- und Ringtopologie unterscheiden, wie Graphik 7 zeigt.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 7: Bus-, Stern-, Ring- und Baumtopologie [30]

2.2.2 Das ISO/OSI-Schichtenmodell

"Um die vielen verschiedenen Protokolle und Techniken der Vernetzung von Computer-Systemen zu vereinheitlichen, wurde Ende der siebziger Jahre durch die ISO[31] ein Referenzmodell geschaffen, das sogenannte OSI[32] -Referenzmodell. In diesem Modell wird die Übertragung von Daten zwischen zwei Rechnern über sieben Schichten abgewickelt, die auf beiden Rechnern implementiert sein müssen."[33]

Abbildung in dieser Leseprobe nicht enthalten

Abb. 8: Das Open Systems Interconnection Model (OSI) [34]

Abbildung 8 beschreibt grob das OSI-Referenzmodell. Beim Senden von Daten wird jeweils von der nächsttieferen Schicht ein neuer Datenkopf hinzugefügt und beim Empfänger entsprechend wieder weggelassen. Durch diese Zerlegung in kleinere, beherrschbare Komponenten muß lediglich die Schnittstelle zwischen zwei Schichten eingehalten werden. Eine Änderung in einer Schicht hat deshalb keine Auswirkung auf andere Schichten.

Die Schichten im Einzelnen:

Schicht 1:

Physikalische Schicht oder Bitübertragungsschicht (Physical Layer)

sie definiert die mechanische, elektrische, funktionale und prozedurale Schnittstelle für die Bitübertragung über ein physikalisches Medium.

Schicht 2:

Sicherungsschicht oder Verbindungsschicht (Data Link Layer)

sie bietet Funktionen an, um einen logischen Kanal zu verwalten und darüber Dateneinheiten anstelle reiner Bits zu übertragen.

Schicht 3:

Vermittlungsschicht (Network Layer)

sie ist für die Kopplung verschiedener Teilnetze zu einem einzigen virtuellen Netz mit einem einheitlichen Adreßraum verantwortlich.

Schicht 4:

Transportschicht (Transport Layer)

sie erweitert die Kommunikationseigenschaften des Vermittlungsdienstes, um so etwa eine verbesserte Übertragungszuverlässigkeit oder –sicherheit anbieten zu können.

Schicht 5:

Sitzungsschicht (Session Layer)

sie bietet Funktionen, um einen Kommunikationsdialog zu steuern und zu synchronisieren.

Schicht 6:

Darstellungsschicht (Presentation Layer)

stellt eine gemeinsame Syntax der Benutzerdaten sicher, die zwischen kooperierenden Anwendungen ausgetauscht werden.

Schicht 7:

Anwendungsschicht (Application Layer)

sie bietet grundlegende benutzerorientierte Netzdienste, wie etwa solche zum Austausch von elektronischer Post oder zum Transfer von Dateien über das Netz.[35]

2.2.3 Die Internet-Protokollfamilie

Die im Internet eingesetzten Protokolle der TCP/IP[36] -Familie wurden ab 1968 in den USA entwickelt. Sie waren also viel früher präsent, als das ISO/OSI-Referenzmodell. Aus diesem Grund ist dieses Modell nicht identisch mit dem OSI-Referenzmodell.

"Die Internet-Protokollfamilie umfaßt [lediglich] Protokolle der Anwendungs-, Transport-, Vermittlungs- und Sicherungsschicht."[37] Einige Internet-Protokolle und ihre Beziehung zum OSI-Referenzmodell sind in Abbildung 9 zu sehen.

Abbildung in dieser Leseprobe nicht enthalten

Abb. 9 : Internet-Protokolle bezogen auf das OSI-Modell [38]

2.2.4 Aufzeichnung von Netzwerkdaten

Bevor Netzwerkdaten analysiert werden können, benötigt man Software, die Daten "schnüffeln" kann, welche über eine Netzwerkleitung transportiert werden. Diese Art von Software wird oft als Sniffer bezeichnet. Ihr legitimer Zweck ist die Netzwerkanalyse.

"Sniffer sind [also] Programme zum Aufzeichnen von Datenpaketen, die die eigene Netzwerkkarte passieren. Die Pakete müssen dabei nicht für den eigenen Rechner bestimmt sein, sondern können auch auf dem Weg zum Zielsystem vorbeikommen. [Diese Arbeitsweise bezeichnet man als promiscuous mode (engl. vermischter Modus)]"[39].

"[Dabei schaltet ein Sniffer] ... über eine bestimmte Funktion des Kartentreibers ... [die Netzwerkkarte in diesen Modus][40].

Mehrere Firmen bieten Produkte an, die "Sniffer" als Fragment in ihrer Produktbezeichnung tragen. Das bekannteste Beispiel dürfte wohl die kommerzielle Software "SniffMaster/Distributed Sniffer System" der Firma Network Associates Incorporated, ehemals Network General Corporated[41], sein. Die Software erlaubt aber nicht nur die Aufzeichnung, sondern auch die Analyse unterschiedlicher Netzwerkdaten.[42]

Die Netzwerkspezialisten bei Sun verstehen die Aufzeichnung von Netzwerkdaten als Trace.[43] Die unter Solaris üblichen Tools zum Erzeugen von Traces sind in Tabelle 1 auf Seite 2 aufgelistet.

Damit eine Analyse unabhängig vom verwendeten Tracetool stattfinden kann, geschieht zunächst eine Konvertierung eines Traces in ein einheitliches, binäres Format durch die Software Isis.

3 Der Konverter Isis

Der Zweck des Konverters Isis ist es, aus den unterschiedlichen Formaten der Trace-Tools (siehe Tabelle 1, Seite 2) eine einheitliche binäre Datei in einem definierten Format zu erstellen, das anschließend von Osiris analysiert werden kann. Dieses einheitliche Format wurde Multi-Protocol-Analyzer-File-Format, kurz MPAFF, getauft.

3.1 Das Multi-Protocol-Analyzer-File-Format

Das Multi-Protocol-Analyzer-File-Format (MPAFF) wurde in der - dieser vorausgegangenen - Diplomarbeit bereits entwickelt. Abbildung 10 zeigt den aktuellen Aufbau des Multi-Protocol-Analyzer-File-Formats. In den Tabellen 2 , 3 und 4 werden den abgekürzten Feldnamen aus Abbildung 10 eine Größe in Bit und eine Bedeutung zugeordnet.[44]

Abbildung in dieser Leseprobe nicht enthalten

Abb. 10: Aufbau des MultiprotocolAnalyzerFileformats

MPAFF sei hier zum Verständnis zusammenfassend noch einmal erläutert: "... MPAFF ... [ist] ein einheitliches, rein binäres ... [Dateiformat], das in seinem variablen Aufbau die Informationen der verschiedenen Trace-Tools speichern kann [(siehe Tabelle 1)].

Es enthält hauptsächlich konvertierte Daten aus den Originaltraces... Darüberhinaus besitzt es nur wenige weitere zusätzlich eingefügte Informationen über die Pakete selber... MPAFF ist in drei Teile aufgespalten: einem fixen Header, einem variablen Header [(der vom verwendeten Trace Tool abhängt)] und dem eigentlichen Paketdatenteil... [Dieser ist] eine Sequenz von Paketblöcken, wobei jeder Block aus einigen Metainformationen und dem Paketdatenteil besteht, der die über das Netzwerk übertragene Information enthält... Der Vorteil des MPAFF gegenüber den alten Formaten ist, daß es alle Informationen in ... [einer Datei] kombinieren kann und dieses binär speichert."[45] Deshalb muß das Scannen, Ordnen, Zusammenfügen und Beseitigen der enthaltenen, durch das Trace-Tool hinzugefügten interpretierten Information, nur einmal von Isis vorgenommen werden, bevor es von Osiris gelesen und analysiert werden kann.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 2: Felder des fixen Headers im MPAFF

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 3: Felder des variablen Headers im MPAFF

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 4 : Felder des variablen Datenteils im MPAFF

3.2 Neue Anforderungen

Da das Format und die technische Konvertierung bereits implementiert waren, waren für Isis hauptsächlich Anforderungen des GUI’s festzustellen. Die Konvertierung sollte, obwohl nur eine Datei in ein anderes Format überführt wird, bequem und schnell geschehen können:

• Quell- und Zieldatei sollen sowohl manuell als auch über einen programmgestützten Auswahldialog bestimmbar sein.

• Die Verzeichnisse von Quell- und Zieldatei soll sich so bestimmen lassen, daß das Navigieren durch tiefe Verzeichnisstrukturen vermieden wird.

•Die Zieldatei soll sich automatisch aus der Quelldatei ergeben können.

•Das Format der Quelldatei soll bereits bei der Auswahl erkannt und vorgeschlagen werden.

•Der Fortschritt der Konvertierung soll ersichtlich sein und sich auch abbrechen lassen.

•Die Konvertierung soll optional protokolliert werden können.

•Das Programm soll potentielle Anwendungsfehler möglichst weitgehend abfangen (Robustheit).

•Hilfe soll stets verfügbar sein.

3.3 Das GUI

Um den oben genannten Ansprüchen gerecht zu werden, wurde mit Swing-Komponenten gearbeitet. Probleme und Lösungswege in diesem Zusammenhang werden hier diskutiert. Das GUI von Isis präsentiert sich nach dem Programmstart wie Grafik 11 zeigt:

Abbildung in dieser Leseprobe nicht enthalten

Abb. 11: Isis nach dem Programmstart (Metal Look & Feel unter Solaris 2.7)

3.3.1 Programmablauf

Der Anwender wählt Quell- und Zieldatei, entweder über einen programmgestützten Auswahldialog oder auch manuell. Die Gültigkeit der vom Anwender getroffenen Eingabe kann anhand der geschlossenen Zustände der kleinen Schlösser neben dem Eingabefeldern festgestellt werden. Das Format des Traces wird automatisch erkannt und die Konvertierung kann beginnen. Nach erfolgreicher (oder auch erfolgloser) Konvertierung kann ein Report angefordert werden, der zur Weiterbearbeitung in die Zwischenablage kopiert oder auch gespeichert werden kann. Alle Einstellungen lassen sich über das Menü oder die sichtbaren Elemente des GUI’s (also Buttons, Combo- und Checkboxen) steuern.

3.3.2 Look & Feel

Am Anfang wurde die Plattformunabhängigkeit des Aussehens der graphischen Benutzeroberfläche erwähnt. Das wählbare Look & Feel in Swing gestattet es, plattformunabhängige GUI’s zu erstellen und das Erscheinungsbild des GUI’s auch zur Laufzeit zu verändern. Abbildung 12 und 13 zeigen L&F’s[46] unter Windows und UNIX[47].

Abbildung in dieser Leseprobe nicht enthalten

Abb. 12: Windows L&F unter Abb. 13: Motif L&F unter

Windows NT 4.0 Solaris 2.7

Tests zeigten, daß für jede Swing-Klasse, die von java.awt.Window abgeleitet wird (also JFrame, JDialog, usw.) die Methode updateComponentTreeUI() explizit aufgerufen werden muß, damit deren Look & Feel auch während der Laufzeit geändert wird. Auch die Methode pack() ist nötig, da sonst die LayoutManager vom neuen Look & Feel nichts erfahren. Folgender Abschnitt beschreibt die Vorgehensweise beim Look & Feel.

Abbildung in dieser Leseprobe nicht enthalten

Während das Default-Look&Feel von Swing (z. Zt. ist das "Metal") auf jeder Plattform verfügbar ist, sind einige Look & Feels wegen bestimmten Lizenzbestimmungen nur auf einer Plattform wählbar (z. B. Windows-L&F nur unter Windows und Mac-L&F nur unter MacOS). Tabelle 5 zeigt die in Java 2 unterstützten Look & Feel-Codes. Daneben sind auch eigene programmierte L&F’s denkbar.

[...]


[1] Er ist z. Zt. Vorstandsvorsitzender.

[2] Vgl. http://www.sun.de/Unternehmen/index.html

[3] Vom 01.07.1998 bis 30.06.1999.

[4] Vgl. http://www.sun.com/investor/ar/1999/frontpage.html

[5] Ab August 2000 wird dies Heimstetten bei München sein.

[6] z. Zt. ist dies noch in Haar bei München.

[7] hacker’s guide - sicherheit im internet und im lokalen netz, Markt&Technik, 1998, S. 280.

[8] Solaris ist das UNIX-Derivat von Sun.

[9] Abk. für "Fiber Distributed Data Interface".

[10] Abk. für "Asynchronous Transfer Mode".

[11] Abk. für "Point-to-Point Protocol".

[12] Abk. für "Integrated Services Digital Network".

[13] Vgl. Altenburg, Martin, Entwicklung eines Java-basierten Multiprotokoll-Analyzers, Diplomarbeit an der FH München, 1999, S. 23.

[14] Vgl. dazu auch Grafik in Altenburg, Martin, Diplomarbeit, S. 4.

[15] Abk. für "Multi-Protocol-Analyzer-File-Format".

[16] Die Formate der einzelnen Trace-Tools werden in Martin Altenburg’s Diplomarbeit sehr gut beschrieben und werden deshalb hier nicht weiter behandelt, da sie für diese Arbeit eine untergeordnete Rolle spielen.

[17] Außerdem besitzt die Netzwerkanalyse oft einen hieroglypischen Charakter, was ebenfalls an die sonnenanbetenden Ägypter (oder die Mitarbeiter bei Sun) und ihre Kultur erinnern soll.

[18] Abk. für "Graphical User Interface".

[19] Abk. für "Integrated Development Environment".

[20] Der Java Workshop ist kostenlos downloadbar unter http://www.sun.com/workshop/java

[21] Abk. für "Java Development Kit", neu ist eigentlich der Name "Java 2 SDK".

[22] Das JDK ist ebenfalls kostenlos downloadbar unter http://java.sun.com/products/jdk/1.2

[23] Das "Java 2 SDK" (Software Development Kit) löst den Namen "JDK" ab und ist die konkrete Implementierung der abstrakten Java-Technologie mit dem Namen "Java 2 Platform".

[24] Abk. für "Application Programming Interface".

[25] Abk. für "Abstract Windowing Toolkit".

[26] Siehe http://forum.java.sun.com

[27] Der Java Developer Connection kann kostenlos in http://java.sun.com/jdc beigetreten werden.

[28] Böcking, Stephan, Objektorientierte Netzwerkprotokolle, Addison Wesley, 1997, 1. Auflage, S. 5.

[29] Duden Informatik, Dudenverlag, 1988, S. 162.

[30] Vgl. Tanenbaum, Andrew S., Computer Netzwerke, Wolfram’s Fachverlag, 1990, 2. Auflage, S. 9.

[31] Abk. für "International Standardization Organisation".

[32] Abk. für "Open Systems Interconnection".

[33] Fuhrberg Kai, Internet Sicherheit, Carl Hanser Verlag München Wien, 1998.

[34] Vgl. Black, Uyless, OSI: A Model for Computer Communications Standards, Prentice Hall, 1991, S. 9.

[35] Vgl. Böcking, Stephan, Objektorientierte Netzwerkprotokolle, S. 5 ff.

[36] Abk. für "Transport Control Protocol / Internet Protocol".

[37] Vgl. Böcking, Stephan, Objektorientierte Netzwerkprotokolle, S. 6.

[38] Vgl. Böcking, Stephan, Objektorientierte Netzwerkprotokolle, S. 7 und

Sun Training Services, TCP/IP Networking.

[39] Thorbrügge, Marco, Lückenfüller - Kleines SSH-Glossar, c’t 1999, Heft 16, S. 179.

[40] Kuri, Jürgen, Trau, schau, wem... Werkzeuge zur Analyse von Online-Verbindungen, c’t 1999, Heft 3, S. 160

[41] Network General Corporated wurde von Computer Associates aufgekauft und nennt sich nun Network Associates Incorporated, siehe http://www.sniffer.com oder http://nai.com

[42] Vgl. http://whatis.com/sniffer.htm

[43] Ein textueller Trace kann bereits interpretierte Information der "geschnüffelten" Daten enthalten.

[44] Die Tabellen wurden aus den Informationen in den Sourcecodes der Diplomarbeit von Martin Altenburg erstellt.

[45] Altenburg, Martin, Diplomarbeit, S. 27 ff.

[46] In der Literatur ist neben "Look & Feel" auch die Schreibweise "L&F" gebräuchlich.

[47] UNIX ist ein eingetragenes Warenzeichen von AT&T.

Details

Seiten
75
Erscheinungsform
Originalausgabe
Jahr
2000
ISBN (eBook)
9783842808508
Dateigröße
1 MB
Sprache
Deutsch
Katalognummer
v228218
Institution / Hochschule
Hochschule für angewandte Wissenschaften Landshut, ehem. Fachhochschule Landshut – Elektrotechnik und Informatik, Informatik
Note
1,0
Schlagworte
java swing netzwerk protokoll microsystems

Autor

Teilen

Zurück

Titel: Entwicklung neuer graphischer und funktionaler Möglichkeiten eines MultiProtocolAnalyzers unter Verwendung von Java und Swing