gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Komponentenebenen für die geplanten Entwicklungen Nach oben: Planung der Komponenten Vorheriges: Beispiele für Entwicklungswerkzeuge

Beispiele für integrierbare Software

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:

Apache WebServer, Tcl WebServer (tclhttpd [V: 1997] [Ä: k.A.] [Z: 25.01.2001]).
PHP [V: k.A.] [Ä: k.A.] [Z: 25.01.2001].
Graphik etc. (xfig, GIMP [V: k.A.] [Ä: k.A.] [Z: 25.01.2001], netpbm etc.).
Datenbank (Informix, Adabas, grok, INGRES, db++ etc.).
X Window System oder Microsoft Windows.
 GRASS .

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:

  figure1922
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
Tabelle 3.1: Übersicht der berücksichtigten GUI Builder

 

Es ist die Summe an Eigenschaften, die wxWindows gegenüber anderen Bibliotheken für die Entwicklung stabiler Oberflächen auszeichnet.

Unterstützung von X Window System  und MS Windows.
Objektorientierter Ansatz (C++ ) mit API.
Unterstützung von dynamischen Bibliotheken. 
Kapselung der X-Motif-Aufrufe. 
Offener Quellentext .
Unterstützung von GNU C++ . 
Graphische Primitive (engl.:  ,,graphics primitives``).
Unterstützung von Interprozeß-Kommunikation (engl.:  ,,interprocess communication``).
Freie Verfügbarkeit.
Integration von Hypertext.
Unterstützung des Internets (engl.:  ,,Internet support``).

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 
Tabelle 3.2: Produkte in der engeren Wahl

 

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
Tabelle 3.3: Produkte im Bereich Visualisierung

 

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.


gif gif gif gif Index Literaturverzeichnis Mail
Nächstes: Komponentenebenen für die geplanten Entwicklungen Nach oben: Planung der Komponenten Vorheriges: Beispiele für Entwicklungswerkzeuge


Claus-Peter Rückemann / ruckema@uni-muenster.de / Tel. --
Sun Jan 20 19:17:16 MET 2002