Im folgenden sind beispielhaft Software, Programme und Konzepte aufgeführt, die sich für eine Nutzung mit dem entwickelten Prototyp anbieten. Dies ist nur eine kleine Übersicht, die eine Vorstellung von den beabsichtigten Möglichkeiten vermitteln soll.
System, Programmierung und Entwicklung:
GNU/Linux [V: 1993] [Ä: k.A.] [Z: 25.01.2001] (s. auch FSF [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], linux.de [V: k.A.] [Ä: k.A.] [Z: 25.01.2001]), Skripting ( Tcl / Tk , Perl [V: 1996] [Ä: k.A.] [Z: 25.01.2001], bash, sed , awk etc.), Compiler [V: k.A.] [Ä: k.A.] [Z: 25.01.2001] ( gcc , g77 etc.), Tcl/Tk Entwicklungswerkzeuge (TclPro prodebug, procheck, usw.), Debugger (gdb), Tcl Compiler, Tcl Bytecode Compiler , Java/JDK, Externe Bibliotheken (Tk, wx*, vtk [V: 1996] [Ä: k.A.] [Z: 25.01.2001], ACE etc.) make [SM2000], configure, xtags etc., Versionskontrolle via CVS und RCS , Literate Programming und Dokumentation (cweb [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], LaTeX [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], de.comp.text.tex [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], comp.text.tex [V: k.A.] [Ä: k.A.] [Z: 25.01.2001] etc.), [Ess2000], Editoren (emacs, xemacs [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], vim [V: k.A.] [Ä: k.A.] [Z: 25.01.2001] etc.).
Anwendungen und Plattformen:
GRASS ist die einzige vollausgereifte Sammlung von GIS-Werkzeugen, die auch im Quellentext frei verfügbar ist und aufgrund ihrer stetigen Weiterentwicklung eine kontinuierliche Eigendynamik hat.
Linux eignet sich hervorragend zum Einsatz auf der Entwicklerseite, in gleichem Maße inzwischen auch auf der Anwenderseite. Linux ist bezogen auf Entwicklungswerkzeuge , Stabilität, Skalierbarkeit, Umfang und Funktionalität, Preis und zumindest in subjektiver Hinsicht auch bezüglich des Bedienkomforts allen derzeitigen Microsoft Windows Oberflächen und Systemen (3.1/95/97/98/CE/NT/2000/XP) überlegen.
Aufgrund der konzeptionell angestrebten Portabilität der Entwicklungen ist eine Verbreitung des Entwicklungssystems von untergeordneter Bedeutung.
Als Entwicklungssystem wurde eine aktuelle Version mit stabilem Kernel und umfangreichen Entwicklungswerkzeugen gewählt [S.u1997] [S.u2001].
Gerade bei der Arbeit mit großen Datenmengen, insbesondere bei Bildmaterial, erhöhen die Eigenschaften dieses Systems die Leistungsfähigkeit des Gesamtsystems erheblich, z.B. durch Zwischenspeicherfunktionen (engl.: ,,cache``) und dynamische Pufferfunktionen (engl.: ,,buffer``), verzögertes Schreiben und weitere Eigenschaften (engl.: ,,delayed write`` und engl.: ,,read ahead``). In Kombination mit fast beliebiger Vergrößerung des virtuellen RAM , ist in Einzelfällen auch eingeschränkte Hardware einsetzbar.
Die inzwischen bequeme Installation, Deinstallation und Benutzerverwaltung, Datenimport und -export, ausgezeichnete Druckertreiber und Druckfilter und flexible portable Sicherungsmöglichkeiten unterstützen die Arbeit.
Die angebotenen GNU/Linux Distributionen (,,GNU is Not Unix``, GNU [Dri2001b], Namensgebung zur Distanzierung vom ursprünglichen Unix von AT&T und Western Electric) bieten zudem einen reichhaltigen Umfang an Programmkomponenten für die verschiedensten Aufgabenbereiche.
Die Wahl der graphischen Benutzerschnittstelle (Graphical User Interface , GUI ) fiel auf das X Window System , das auf Unix Rechnern sehr verbreitet ist, weil es seit langer Zeit deutlich leistungsfähiger ist, als z.B. typische PC-Benutzerschnittstellen, gegenüber anderen bekannten Oberflächen eine eingebaute Netzwerkfähigkeit besitzt (Internet RFC 1013) und zudem für ein weites Feld besserer Hardware erprobt ist. Die bedeutendste frei verfügbare Implementierung für verschiedenste Plattformen ist das XFree86 des XFree86 Projekts [V: k.A.] [Ä: k.A.] [Z: 25.01.2001]. Das X Window System regelt die netzwerktransparente Bild- und Eingabeübermittlung zwischen Klient und Server und ermöglicht netzwerkweiten Zugriff. Das X Window System ist streng genommen kein simples GUI , sondern ein Protokoll, das beschreibt, wie sich ein solches System verhalten soll. Es ist damit ein Werkzeug, das den Einsatz vielseitiger graphischer Fenster-Manager und damit verschiedener vollständiger graphischer Benutzeroberflächen (GUI) und den Einsatz vollständiger moderner Arbeitsoberflächen (engl.: ,,desktops``) ermöglicht.
Insbesondere ist die Oberfläche des X Window Systems ereignisorientiert bzw. differentiell. Es müssen nicht kontinuierlich alle möglichen Geschehnisse abgefragt und damit auch übertragen werden, sondern es wird zunächst vereinbart, welche Ereignisse von Interesse sind.
Die aktuellsten sich etablierenden Entwicklungen graphischer Oberflächen sind die objektorientierten und CORBA - bzw. DCOP -basierten Arbeitsoberflächen K-Desktop Environment ( KDE ) und GNU Network Object Model Environment ( GNOME ) [RM2000]. Selbst auf diesem Niveau graphischer Oberflächen spiegelt sich die Unix Toolbox Philosophie wieder, größere Aufgaben durch die Verbindung grundlegenderer Komponenten flexibel zu lösen.
Allerdings erwies sich CORBA für die Entwicklung von größeren ,,Desktop`` Anwendungen als zu langsam. Aus diesem Grund wurde beispielsweise für die Entwicklung von KDE ab Version 2 DCOP entwickelt und seitdem verwendet [Kir2000].
Die erste Version des X Window Systems wurde 1984 am Massachusetts Institute of Technology ( MIT ) ursprünglich zu Schulungszwecken entworfen.
Das X Window System , kurz X11, ist eine klassische Klienten-Server (engl.: ,,client-server``) Applikation und als solche nicht Kernel-orientiert. Durch das X Window System wird nicht nur eine graphische Oberfläche bereitgestellt, sondern ein Klienten-Server Protokoll festgelegt, das die Kommunikation zwischen den X-Klienten und dem X-Server regelt.
X bietet zahllose Möglichkeiten für die Umsetzung verschiedenster Software und zeichnet sich durch eine hervorragende Stabilität aus. Auf GNU/Linux Systemen wird standardmäßig eine freie Version XFree86 verwendet, die kontinuierlich weiterentwickelt wird.
Die Schichtung der graphischen Oberfläche auf einem X Window System läßt sich vereinfacht folgendermaßen (Abbildung 3.1) schematisieren:
Abbildung 3.1: Schichtung der graphischen Oberfläche X Window System
Neuentwickelte Arbeitsoberflächen (,,Desktop-Umgebungen``), z.B. GNOME und KDE , spielen bei Ausnutzung der Funktionalitäten von X-Server und Fenster-Manager eine immer größere Rolle und komplementieren und erweitern die Funktionalitäten in vielfältiger Weise [RM2000].
Microsoft Windows ist von Microsoft weit verbreitet worden und könnte daher zumindest derzeit noch zum Einsatz auf der Anwenderseite kommen.
Ein Eingriff in die Instabilitäten und Unzulänglichkeiten von Microsoft Windows ist aufgrund der nicht offenen Vermarktungspolitik von Microsoft aber leider nicht möglich. Dies ist mit ein Grund für die über Jahre bestehenden Instabilitäten und den geringen innovativen Fortschritt seit den ersten Versionen bis in die Gegenwart.
Ein Einsatz kam aufgrund der geringen Eignung für die geplante flexible Entwicklung und hinsichtlich der breiten Verfügbarkeit besser geeigneter Systeme nicht in Betracht.
Für die Teile der Komponenten der GIS-Applikation, die eine portable graphische Oberfläche angemessen erscheinen lassen, können folgende Beispiele genannt werden (Tabelle 3.1). Diese Werkzeuge werden in der Regel auch als Werkzeuge zum ,,Bau graphischer Oberflächen`` (engl.: ,,GUI builder``) bezeichnet.
GUI Builder | Copyright/Hersteller | ||||
XForms | © | 1995 T.C. Zhao | |||
and Mark Overmars | |||||
Qt | © | 1995-1997 Trolltech AS | |||
GPL seit 06.09.2000 | |||||
X-Designer | © | Imperial Software Technology | |||
InterViews/ | © | 1987-1991 Stanford University | |||
Fresco | © | 1991 Silicon Graphics, Inc. | |||
CORBA | © | Object Mangement Group | |||
[Ama1997] | |||||
Tcl | © | The Regents of the | |||
University of California, | |||||
Sun Microsystems, Inc., | |||||
Dr. John Ousterhout | |||||
[Ous1994] [Wel1997] | |||||
wxWindows | © | 1993-1997 AIAI, | |||
University of Edinburgh | |||||
[Sma1996] | |||||
Empress | © | Empress | |||
TeleUSE | © | Thomson Software Products |
Es ist die Summe an Eigenschaften, die wxWindows gegenüber anderen Bibliotheken für die Entwicklung stabiler Oberflächen auszeichnet.
wxWindows hat eine minimale Unterstützung von Farbpaletten (engl.: ,,colour maps``), jedoch zum Zeitpunkt der Planung keinen OLE-2 Support und Restriktionen bei Eltern-Kind Relationen (engl.: ,,parent-child relations``). Diese Einschränkungen sind nicht von übergroßer Bedeutung, zeigen aber, daß auch hier nicht alle plattformspezifischen Eigenheiten abgedeckt werden. Vielmehr ist wxWindows gerade für die konventionelle Entwicklung sehr großer Projekte geeignet. Für dynamische und kleinere modulare Komponenten sollten flexiblere Lösungen existieren. Diese Lösungen sind Inhalt der folgenden Diskussion.
Gerade hier bietet Tcl/Tk einen geeigneteren Ansatz. Aufgrund seiner besonderen Eignung sei hier vorweggenommen, daß die besonderen Eigenschaften von Tcl/Tk zu einer Verwendung geführt haben und daher in den folgenden Kapiteln ausführlicher diskutiert werden.
Für einen weitergehenden Einsatz erscheint eine Kombination mit Java und Markup-Sprachen [Sch1999], wie der am Europäischen Kernforschungszentrum CERN entwickelten Hypertext Markup Language ( HTML ) oder TeX/LaTeX sehr naheliegend.
HTML basiert auf der Structured General Markup Language ( SGML , ISO 8879, aus dem Jahr 1986). Mit dem verwendeten HTML lassen sich zahllose Erweiterungen, wie JavaScript, Cascading Style Sheets CSS , Extented Server Side Includes XSSI etc. nutzen. Neuere Weiterentwicklungen die vom W3C [V: k.A.] [Ä: k.A.] [Z: 25.01.2001] vorangetrieben und koordiniert werden, wie z.B. XML [LS1999] [Eck2000], erweitern die Funktionalitäten für die Zukunft erheblich und stellen die langfristige Verwendbarkeit sicher.
Produkte, die aufgrund geeigneter Bedingungen in die engere Wahl kommen, sind in Tabelle 3.2 aufgeführt.
Produkt | Lizenz | ||
Tcl / Tk | Public Domain | ||
GRASS | Public Domain, seit 1999 GPL | ||
wxWindows | Freeware | ||
GNU C++ | Freeware, GPL | ||
GNU/Linux System | Freeware, GPL |
Für die Visualisierung seien weiterhin folgende Beispiele genannt (Tabelle 3.3).
Produkt | Copyright/Hersteller/Referenz | ||||
VTK | [SML1998] [SM1998] [Kle1997] | ||||
PHIGS / PEX | ISO /ANSI 9592 | ||||
OpenGL | © | 1997 Silicon Graphics Inc. | |||
[WND1997] | |||||
Mesa | © | Brian Paul |
Einige der genannten Bibliotheken basieren auf Motif. Motif [Kob1991] ist ein weit verbreiteter Industriestandard zur Entwicklung von Benutzerschnittstellen. Seit einiger Zeit ist Motif im Quellentext frei verfügbar.
Neuere sehr mächtige Entwicklungen (z.B. für die Entwicklung von KDE und GNOME) haben jedoch bereits sehr weite Anwendungsbereiche gefunden. Dies wird Motif auf absehbare Zeit jedoch nicht endgültig verdrängen.
Das Visualization Toolkit (VTK [V: k.A.] [Ä: k.A.] [Z: 25.01.2001]) ist ein C++ und Tcl objektorientiertes 3D-Visualisierungssystem. VTK [V: k.A.] [Ä: k.A.] [Z: 25.01.2001] unterstützt vor allem OpenGL , GL , XGL , Starbase, Mesa und steht auch unter Linux [V: k.A.] [Ä: k.A.] [Z: 01.07.2001] zur Verfügung.
Die Open Graphics Library ( OpenGL , GL ) bietet über das Graphics Library Utility Toolkit ( GLUT ) und die Graphics Library Utility Library ( GLU ) eine portable, plattform- und betriebssystemunabhängige Software-Schnittstelle (engl.: ,,software interface``) für Graphik-Hardware. Die Mesa 3D-Graphikbibliothek ist das entsprechende frei verfügbare Pendant zur OpenGL . Der Schwerpunkt dieser Bibliotheken ist die Erstellung von errechneten (,,gerenderten``) dreidimensionalen Graphiken und bewegten Animationen. Möglichkeiten zur Gestaltung von Benutzeroberflächen oder auch Druckausgabe sind in diesen Bibliotheken nicht enthalten [PR1996].
Unter Unix stehen verschiedene Kommandointerpreter (sogenannte shells) zur Verfügung, die unter einer graphischen Oberfläche eine ideale Möglichkeit zur transparenten Modularisierung bieten. Damit ist gewährleistet, daß zwischen der graphischen Oberfläche und den integrierten Programmkomponenten eine offene Schnittstelle (engl.: ,,interface``) zur Verfügung steht, die separat modifiziert werden kann und flexible Möglichkeiten u.a. zur Prozeßsteuerung, Parallelisierung und Subshell-Vererbung bietet.