07.12.2012 Aufrufe

Implementierung von Entscheidungsunterstützungssystemen ... - TUM

Implementierung von Entscheidungsunterstützungssystemen ... - TUM

Implementierung von Entscheidungsunterstützungssystemen ... - TUM

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!