Implementierung von Entscheidungsunterstützungssystemen ... - TUM
Implementierung von Entscheidungsunterstützungssystemen ... - TUM
Implementierung von Entscheidungsunterstützungssystemen ... - TUM
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
27<br />
<strong>Implementierung</strong> <strong>von</strong> <strong>Entscheidungsunterstützungssystemen</strong> auf<br />
Komponentenbasis<br />
Martin Döllerer<br />
Departement für Ökosystem- und Landschaftsmanagement der TU München<br />
Fachgebiet für Biometrie und Angewandte Informatik<br />
Am Hochanger 13, DE-85354 Freising<br />
E-Mail: doellerer@wzw.tum.de<br />
Zusammenfassung<br />
Entscheidungsunterstützungssysteme stellen umfangreiche Sortwaresysteme dar, die sowohl <strong>von</strong><br />
Komplexität als auch <strong>von</strong> Flexibilität geprägt sind. Deshalb wird man die Software zweckmäßigerweise<br />
in spezialisierte Teilsysteme zerlegen, die zusammenarbeiten, um die Problemstellung als Ganzes<br />
abzudecken. Solche zusammenarbeitende Teilsysteme werden am besten durch eine<br />
komponentenorientierte Vorgehensweise realisiert. Es wird eine mehrschichtige Software-Architektur<br />
vorgestellt, die in Form <strong>von</strong> Grunddiensten und Rahmenbedingungen eine Infrastruktur für die<br />
Integration interagierender Komponenten zu einem forstlichen Entscheidungsunterstützungssystem<br />
bereitstellt. Zentraler Bestandteil dieser Infrastruktur ist ein Metadaten-Konzept, das die vom<br />
Komponentenparadigma geforderte Selbstdokumentation der teilnehmenden Komponenten realisiert.<br />
Darauf setzt ein Systemkern auf, der die Grunddienste zur Verfügung stellt.<br />
Summary<br />
Decision support systems are big software systems based on both complexity and flexibility. A good<br />
way to design such systems is to divide them into specialized parts that work together to solve the<br />
problem as a whole. The parts can be realized by using a component oriented approach. A multi tiered<br />
software architecture is presented that provides an integration platform through basic services and<br />
constraints. Interacting components can be integrated to act as a forestry decision support system.<br />
The main part of this infrastructure is a metadata concept that realizes self documentation of the<br />
participating components required by the component paradigm. A system kernel based on this<br />
concept provides the basic services.<br />
Einführung<br />
Zunehmende Kundenorientierung, steigender Kostendruck und der Trend hin zu<br />
einer nachhaltigen und multifunktionalen Waldbewirtschaftung sorgen im<br />
Forstbereich für ständig steigende Anforderungen. Im Bereich der Holzernte sind<br />
unter anderem beispielsweise Gesichtspunkte aus folgenden Bereichen relevant:<br />
I. Ökonomie<br />
a) Welche Sortimente werden vom Kunden nachgefragt?<br />
b) Welche Sortimente fallen bei einer Holzerntemaßnahme an?<br />
c) Durch welche Holzerntemaßnahmen können die nachgefragten Sortimente<br />
am besten abgedeckt werden?<br />
d) Welche Kosten entstehen bei der Ernte <strong>von</strong> Bestand „X“?<br />
e) Welche Kosten entstehen bei der Durchforstung <strong>von</strong> Bestand „Y“?<br />
II. Ökologie<br />
a) In welchen Beständen ist der Boden bei maschineller Holzernte gefährdet?<br />
b) Wie verändern sich bestimmte Strukturmerkmale im Boden?<br />
III. Sozioökonomie<br />
a) In welcher Reihenfolge sollen die Bestände geerntet werden, um die<br />
Waldarbeiter auszulasten?
28<br />
Derart komplexe Fragestellungen können nur dann gelöst werden, wenn moderne<br />
Informationstechnologie zum Einsatz kommt. Dies ist ein klassisches Einsatzfeld so<br />
genannter „Entscheidungsunterstützungssysteme“. Darunter versteht man DV-<br />
Systeme, die dem Management objektive und nachvollziehbare Entscheidungshilfen<br />
an die Hand geben, die Entscheidungen selbst aber nicht vorweg nehmen.<br />
Gründe für den Einsatz <strong>von</strong> Komponenten<br />
Ein Entscheidungsunterstützungssystem (EUS), das bei oben skizzierter<br />
Fragestellung zum Einsatz kommen soll, wird mit Sicherheit sehr komplex. Darin sind<br />
Einzelprobleme aus unterschiedlichen Teilbereichen forstlicher Forschung vertreten,<br />
beispielsweise:<br />
• Waldwachstumskunde (Wuchsmodell)<br />
• Forstliche Verfahrenstechnik (Holzerntetechnik)<br />
• Forstliche Arbeitswissenschaft (Einsatzplanung)<br />
• Bodenmechanik (Befahrung)<br />
• Forstliche Wirtschaftslehre (Holzmarkt)<br />
• Waldbau und Forsteinrichtung (Forstliche Planung)<br />
Das EUS muss in Module zerlegt werden, um zum einen die Komplexität des<br />
Systems in einem überschaubaren Rahmen zu halten und zum anderen die<br />
einzelnen Forschungsrichtungen zu integrieren. Zwischen den einzelnen Modulen<br />
sind Schnittstellen erforderlich, um die Gesamtfunktionalität sicherzustellen. Darüber<br />
hinaus muss die Möglichkeit bestehen, fremde Anwendungen einzubinden, zum<br />
Beispiel forstliche Standardsoftware und Geografische Informationssysteme.<br />
Sollten sich die Anforderungen an das EUS im Laufe seines Einsatzes verändern, ist<br />
es <strong>von</strong> Vorteil, die Software <strong>von</strong> Anfang an so zu gestalten, dass Erweiterungen der<br />
Funktionalität bzw. Änderungen am Programm leicht vollzogen werden können.<br />
Es bietet sich an, Entscheidungsunterstützungssysteme in einem Software-<br />
Engineering-Prozess (siehe z.B. [Sommerville, 1992]) mit Hilfe eines<br />
komponentenorientierten Ansatzes zu entwerfen, um diese Anforderungen zu<br />
erfüllen.<br />
Komponentenorientierte Softwareentwicklung<br />
Hinter dem komponentenorientierten Paradigma verbirgt sich die Idee, Software aus<br />
wiederverwendbaren Bausteinen zusammenzusetzen. Diese Bausteine werden<br />
Softwarekomponenten genannt. Die Softwareentwicklung läuft in zwei Schritten ab:<br />
Der Komponentenentwicklung zum einen und der Anwendungsentwicklung zum<br />
anderen.<br />
Komponenten sind charakterisiert durch:<br />
• Eigenständigkeit<br />
• Kommunikationsmechanismen<br />
• Geeignete Granularität<br />
• Wiederverwendbarkeit<br />
• Anpassbarkeit in gewissen Grenzen
29<br />
Einzelne Komponenten können während der Laufzeit des Programms ausgetauscht<br />
werden, bzw. es können neue Komponenten zum Gesamtsystem hinzugefügt<br />
werden. Durch geeignete Kommunikationsmechanismen stehen bereits<br />
Schnittstellen zum Informationsaustausch zwischen Komponenten bereit. Durch die<br />
Eigenständigkeit der Komponenten werden Seiteneffekte und Fernwirkungen auf ein<br />
Minimum reduziert, was für eine bessere Wartbarkeit der Software sorgt.<br />
Komponenten sind per Definition zu einem gewissen Grad wiederverwendbar und<br />
anpassbar, so dass neue Systeme aus bestehenden Komponenten aufgebaut<br />
werden können. [Griffel, 1998] und [Szyperski, 1999] geben einen guten Überblick<br />
über das komponentenorientierte Paradigma.<br />
Rahmenwerke (Frameworks), die Basisdienste für die Komponenten bereitstellen,<br />
sind notwendig, um zu gewährleisten, dass für den Komponenteneinsatz eine<br />
definierte Systemumgebung zur Verfügung steht. Ein solches Rahmenwerk wird im<br />
Folgenden in Form eines Systemkerns für räumliche<br />
Entscheidungsunterstützungssysteme vorgestellt.<br />
[LEMM ET AL., 2002] sehen vielversprechende Einsatzmöglichkeiten <strong>von</strong><br />
komponentenorientierter Software bei Fragestellungen aus dem Bereich<br />
Forstlogistik.<br />
Architektur des EUS<br />
Komplexe Softwaresysteme besitzen (ähnlich wie Bauwerke) eine innere Struktur,<br />
eine Architektur. Die Architektur des vorgestellten komponentenorientierten<br />
Entscheidungsunterstützungssystems ist in mehreren Schichten aufgebaut. Dieser<br />
Aufbau erfüllt die Forderung der Aufteilung in<br />
• Datenebene<br />
• Modellebene<br />
• Dialogeben<br />
(vgl. [Lüthy, 1998]). Diese Aufteilung findet sich in vielen großen Systemen wieder<br />
und wird häufig als „multi tiered architecture“ bezeichnet. Einer der prominentesten<br />
Vertreter solcher Softwaresysteme ist das System R/3 der Firma SAP.<br />
Holzernteschäden<br />
Holzernteschäden<br />
Entscheidungs-Unterstützungs-System<br />
Risiko<br />
Risiko<br />
Systemkern<br />
Meta-Daten<br />
Planungskomponente<br />
Waldbehandlung<br />
Waldbehandlung<br />
Abb. 1: Schematische Darstellung der Systemarchitektur
30<br />
Ein Systemkern bildet die Schnittstelle zwischen Daten- und Modellebene. Die<br />
einzelnen Problemlösungskomponenten (im Folgenden als Solver bezeichnet)<br />
benötigen eine Reihe <strong>von</strong> Eingangsdaten und erzeugen viele Ausgabedaten. Diese<br />
werden in Metadaten katalogisiert und verwaltet. So ist es den einzelnen<br />
Komponenten möglich, über eine zusätzliche Abstraktionsschicht auf Daten anderer<br />
Komponenten zuzugreifen, ohne deren internes Datenhaltungskonzept zu kennen.<br />
Einzige Voraussetzung ist die Speicherung der Daten in einem einheitlichen<br />
relationalen Datenbankmanagementsystem (DBMS). Ein solches DBMS besitzt<br />
bereits eine Client/Server-Schnittstelle, so dass die Komponenten ihre eigenen<br />
Daten effizient über diese verwalten können. Der Zugriff auf Daten anderer<br />
Komponenten erfolgt indirekt über den Systemkern. Abbildung 1 zeigt die<br />
Systemarchitektur schematisch.<br />
Der Systemkern stellt für die Solver Dienste bereit, die im Folgenden näher<br />
beschrieben werden.<br />
Dienste des Systemkerns<br />
Die bereitgestellten Dienste des Systemkerns orientieren sich an den Metadaten, die<br />
als zusätzliche Abstraktionsebene die Daten der Solver beschreiben. Sie sind in<br />
Form eines Solverkatalogs, eines Tabellenkatalogs und eines Spaltenkatalogs<br />
organisiert. Abbildung 2 zeigt ein Entity-Relationship-Diagramm der Metadaten.<br />
ist<br />
Untersolver<br />
<strong>von</strong><br />
1<br />
N<br />
Solver<br />
M<br />
Besitzt<br />
Abb. 2: Entity-Relationship-Diagramm der Metadaten<br />
1<br />
Benötigt<br />
Tabelle<br />
Für die Organisation und das Auslesen der Metadaten stellt der Systemkern folgende<br />
Dienste bereit:<br />
• Solver-Registrierung<br />
• Ergebnis-Präsentation<br />
• Daten-Präsentation<br />
• Solver-Startreihenfolge<br />
Die Metadaten werden durch die Solver-Registrierung aufgefüllt. Bevor ein Solver<br />
vom System erkannt wird, muss er sich registrieren und sich selbst und seine<br />
Untersolver sowie die Ergebnisdaten in Form <strong>von</strong> Spalten und Tabellen in die<br />
Metadaten eintragen. Es wird auch vermerkt, welche Datenspalten anderer Solver<br />
benötigt werden. Listing 1 zeigt Codefragmente der Objektmethoden zur<br />
Registrierung der Solver.<br />
N<br />
N<br />
1<br />
Besitzt<br />
Spalte<br />
M<br />
N<br />
Verbindet<br />
N
31<br />
public class MetaDB extends Datenbank {<br />
public int registriereSolver(String id, String name) {<br />
}<br />
PreparedStatement pstmt;<br />
String cmd = null;<br />
int r = -1;<br />
Connection verbindung = verbinden();<br />
if(verbindung != null) {<br />
//Solverdaten in die DB schreiben<br />
try {<br />
cmd = "INSERT INTO modell (id, name) VALUES ( ?,? );";<br />
pstmt = verbindung.prepareStatement(cmd);<br />
pstmt.setString(1, id);<br />
pstmt.setString(2, name);<br />
r = pstmt.executeUpdate();<br />
}<br />
catch (SQLException e) {<br />
System.out.println("FEHLER: ausgefuehrtes Kommando: " + cmd);<br />
System.out.println("FEHLER: " + e.getMessage());<br />
}<br />
schliessen(verbindung);<br />
}<br />
return r;<br />
public int registriereSolver(String id, String name, String modell) {<br />
//Funktionskörper<br />
}<br />
public int registriereTabelle(String id, String name, String modell) {<br />
//Funktionskörper<br />
}<br />
public int registriereSpalte(String id, String name, String tabelle,<br />
int istSchluessel) {<br />
//Funktionskörper<br />
}<br />
...<br />
}<br />
Listing 1: Codefragemente der Objektmethoden zur Solver-Registrierung<br />
Durch die Organisation der Metadaten ist es beispielsweise möglich, dem Anwender<br />
die Ergebnisse der einzelnen Solver als hierarchische Struktur zu präsentieren, die<br />
er <strong>von</strong> seiner Betriebssystemumgebung her gewöhnt ist (wie beim Windows<br />
Explorer). Dies erledigt der Dienst „Ergebnis-Präsentation“. Abbildung 3 zeigt eine<br />
Baumansicht verschiedener Solver.
Abb. 3: Programmfenster mit Baumansicht<br />
32<br />
Falls ein Solver Daten eines anderen Solvers benötigt, kann er Informationen über<br />
deren Standort in der Datenbank über den Dienst „Daten-Präsentation“ erhalten.<br />
Damit ist es dem Solver möglich, die Daten aus der Datenbank zu selektieren.<br />
Die Solver können in der richtigen Reihenfolge ausgeführt werden, da vermerkt ist,<br />
welcher Solver Daten eines anderen Solvers benötigt. Die Startreihenfolge kann so<br />
festgelegt werden, dass sichergestellt ist, dass die Daten, die ein bestimmter Solver<br />
benötigt, auch zum Zeitpunkt seiner Ausführung zur Verfügung stehen. Es ist auch<br />
möglich, zu bestimmen, welche Solver keine Daten <strong>von</strong>einander benötigen. Diese<br />
Solver können in geeigneten Systemumgebungen parallel ausgeführt werden.<br />
Integrationsplattform<br />
Die vorgestellte Systemarchitektur stellt eine Integrationsplattform für komponentenorientierte<br />
Entscheidungsunterstützungssysteme dar. Sie bietet eine Reihe <strong>von</strong><br />
Vorteilen:<br />
• Es handelt sich um eine flexible Client/Server-fähige Softwarearchitektur<br />
• Sie bietet eine einheitliche Datenhaltung<br />
• Es besteht die Möglichkeit der parallelen Ausführung <strong>von</strong> Solvern<br />
• Solver, die zu den Spezifikationen der Softwarearchitektur konform sind,<br />
können zwischen verschiedenen Systemen ausgetauscht werden.<br />
Ausblick<br />
Ein Entscheidungsunterstützungssystem, das auf der vorgestellten Architektur<br />
basiert, ist in der Lage, Teilergebnisse erst bei Bedarf zu berechnen und dem<br />
Anwender zu präsentieren. Dabei ist es durch die Metadaten in der Lage,<br />
herauszufinden, welcher Solver diese Ergebnisse berechnet. Diese Informationen<br />
können an eine andere Software, beispielsweise eine internetbasierte<br />
Benutzeroberfläche, weitergegeben werden. Man spricht in solchen Szenarien <strong>von</strong><br />
einem so genannten „Trader Service“.
33<br />
Die Berechnungsergebnisse der Solver können durch eine Erweiterung des<br />
Metadaten-Kataloges zusätzlich mit Hilfe eines einheitlichen Vokabulars<br />
gekennzeichnet werden. Dadurch ist ein flexibler Einsatz der Solver möglich. Die<br />
Solver können ihre interne Nomenklatur auf einheitlich definierte Namen umsetzen<br />
und im Tabellen- bzw Spaltenkatalog ablegen. Dem Systemkern ist es dann möglich,<br />
zwischen den einzelnen Namensgebungen zu vermitteln („Naming Service“).<br />
Literatur<br />
Griffel, Frank (1998): Componentware – Konzepte und Techniken eines Softwareparadigmas,<br />
dpunkt-Verlag, Heidelberg<br />
Lüthy, Denise (1998): Entwicklung eines "Spatial Decision Support"-Systems<br />
(SDSS) für die Holzernteplanung in steilen Geländeverhältnissen Zürich,<br />
Disseratation an der ETH Zürich, vdf Hochschulverlag AG, Zürich<br />
Lemm, Renato; Erni, Vinzenz; Thees, Oliver (2002): Komponentenbasierte<br />
Software-Entwicklung neue Perspektiven für forstliche Modellierung und<br />
Informationsverarbeitung In: Schweizerische Zeitschrift für Forstwesen, 153. Jg., H.<br />
1, S. 3-9<br />
Sommerville, Ian (1992): Software-Engineering, Fourth Edition, Addison-Wesley,<br />
Workingham, Reading, Menlo Park u.a.<br />
Szyperski, Clemens (1999): Component Software – Beyond Object-Oriented<br />
Programming, Addison-Wesley, New York