Leitungs-IS Speziell : Trinkwasserversorgung Gruppe 8: Lutz Finke, Jan Hoffmeyer, Conrad Kobsch, Jörg Winkler Allgemeines und Funktionsumfang ........................................................................................... 2 Datenbankschema....................................................................................................................... 3 Tabellen und Beziehungen ..................................................................................................... 4 Geschäftsprozesse ...................................................................................................................... 6 Wichtige Aktivitäten .................................................................................................................. 9 Login: ..................................................................................................................................... 9 Rechnung erstellen: .............................................................................................................. 10 Netz anlegen:........................................................................................................................ 11 Architektur ............................................................................................................................... 13 Tools......................................................................................................................................... 14 Allgemeines und Funktionsumfang • Um was geht es? Grundsätzlich geht es bei unserem Informationssystem, um die Umsetzung einer Leitungs- und Kundenverwaltung für kommunale Versorger. Wir haben uns die Trinkwasserversorgung ausgewählt, wobei wir jedoch eine grobe Abbildung eines der Wirklichkeit darstellen werden. • Was wird verwaltet? Verwaltet werden Kunden als auch Mitarbeiter des Unternehmens, das Leitungsnetz sowie die zu den Kunden gehörigen Anschlüssen und Zählerstände. Auch eine Berücksichtigung von Reparaturarbeiten am Leitungsnetz wird realisiert. • Wer sind die Benutzergruppen und an welchen Prozessen sind sie beteiligt? Die Kunden bilden die größte Benutzergruppe. Sie haben unter anderem die Möglichkeit eine Verbrauchsermittlung durchzuführen, sowie ihre Zählerstände abzufragen. Die Sachbearbeiter, als Ansprechpartner der Kunden, verwalten sowohl Reparaturen als auch Zählerstände. Die Gruppe der Techniker ist im Gegensatz zu den Sachbearbeitern, noch dem Prozess der Leitungsnetzverwaltung vertraut. Den Administratoren ist der Prozess der Zugriffsrechteverwaltung zugeordnet. • Wo liegen die Einschränkungen? Zu aller erst gehen wir von einem geradlinigen Verlauf aller Leitungen, die als Verbindung zwischen zwei Knoten definiert sind, aus. Weiterhin werden wir nur die Anschrift und die Nutzerrechte der Kunden und Mitarbeiter verwalten. Auch die Rechnungserstellung wird weniger komplett abgebildet, als es in der Realität der Fall wäre. • Warum überhaupt Einschränkungen? Ein GIS-Informationssystem mit dem Zusatz einer Kunden- sowie Rechnungsverwaltung wäre zu komplex, um eine Abbildung innerhalb der Lehrveranstaltung zu realisieren. 2 Datenbankschema Objekt +gehört zu 1 +hatte ObjektID : Long Beschreibung : String Zus tand : Integer 0..n Leitungen Reparaturen ReparaturID : Long ObjektID : Long Beschreibung : String von : Date bis : Date Verantwortlicher : String Firm a : String Knoten KnotenID : Long ObjektID : Long xKoordinate : Double 2 yKoordinate : Double +besitzt Tiefe : Double offen : Boolean LeitungID : Long ObjektID : Long Typ : String 1..n Durchmes ser : String +gehört maxDruck : String Durchflus s : String aKnoten : Long eKnoten : Long Adressen AdressID : Long Ans chlues se Name : String Ans chluss ID : Long Vorname : String 1 0..1 0..n KnotenID : Long Strasse : String Typ : String Hausnummer : String +gehört zu +besitzt +gehört zu AdressID : Long Ort : String naechsteAblesung : Date PLZ : Long LoginID : Long Zaehlerstaende ZaehlerstandID : Long Ans chluss ID : Long 1..n Datum : Date +besitzt Stand : Double Ableser : String ZaehlerNr : Long +gehört zu 1 +hat 1 Rechte LoginID : Long PW : String Rechte : Integer Abbildung: Datenbankshema 3 Tabellen und Beziehungen Objekt ObjektID : Long Beschreibung : String Zustand : Integer Für die Darstellung eines Rohrleitungssystems, speziell für Trinkwasserleitungen, haben wir eine Tabelle Objekte entworfen. Sie dient als Oberklasse für mögliche technische Objekte die ein Rohrleitungssystem enthalten kann. In der Tabelle werden nur die allgemeinen Information gespeichert, also eine Beschreibung und ein Zustand. Der Zustand soll uns später dazu dienen, festzulegen ob ein Objekt sich im Bau befindet, gerade repariert wird, beschädigt ist oder ob damit alles in Ordnung ist. Für die Trinkwasserleitungen haben wir zwei hauptsächliche Objekte abgeleitet: Knoten und Leitungen. Diese Tabellen enthalten die objektspezifischen Eigenschaften eines Knoten, welcher zwei oder mehrere Leitungen verbindet, und einer Leitung. • Leitung: Typ: Angabe über die Leitungsart (z.B. Materialart) Durchmesser: Durchmesser der Leitung mit Maßangabe maxDruck: Druck den die Leitung aushält und Maßangabe Durchfluss: Mit der Leitung transportierbare Wassermenge mit Leitungen LeitungID : Long ObjektID : Long Typ : String Durchmesser : String maxDruck : String Durchfluss : String aKnoten : Long eKnoten : Long Maßangabe aKnoten, eKnoten: Anfangs- und Endknoten der Leitung • Knoten: xKoordinate, yKoordinate: geografische Lageangabe Tiefe: Abstand zwischen Erdoberfläche und dem Knote n offen: gibt an ob der Knoten Wasser durchfließen lässt oder nicht Knoten KnotenID : Long ObjektID : Long xKoordinate : Double yKoordinate : Double Tiefe : Double offen : Boolean Des Weiteren gibt es bei der Trinkwasserversorgung noch Knoten gibt die eine zusätzliche Funktion haben. Sie dienen als Anschluss für den Kunden. Um diese Tatsache abzubilden haben wir die Tabelle Anschluesse von Knoten abgeleitet. • Anschluesse: Anschlues se Typ: Art des Anschlusses (z.B. Hausanschluss, Firmenanschluss) AdressID: Zuordnung zum Besitzer des Anschlusses Anschluss ID : Long KnotenID : Long Typ : String AdressID : Long naechsteAblesung : Date naechsteAblesung: Datum für die nächste durchzuführende Ablesung 4 Eine weitere Tabelle ist Zaehlerstaende. In ihr werden alle abgelesenen Zählerstände mit Datum der Ablesung, dem Ableser und der Zählernummer eingetragen, sowie die AnschlussID mittels der die Zählerstände den Zaehlerstaende ZaehlerstandID : Long AnschlussID : Long Datum : Date Stand : Double Ableser : String ZaehlerNr : Long Anschlüssen zugeordnet werden. Zur Verwaltung der Nutzer und seiner Rechte haben wir noch die Tabellen Adressen, Rechte. In Adressen sind der vollständige Name, die Adresse und LoginID als Verweis auf Rechte vermerkt. Rechte enthält ein Passwort und die Rechte des Nutzers. Bei Rechte werden zwischen Admin, Techniker, Sachbearbeiter und Kunde unterschieden. Die Tabelle Reparaturen dient zum Verwalten von Reparaturen. In ihr werden nötige oder abgeschlossene Reparaturen mit folgenden Informationen eingetragen: • Reparaturen: ObjektID: Verweis auf das Objekt, welches repariert wird/ wurde/ werden soll Beschreibung: Beschreibung der Beschädigung von, bis: Zeitraum der Reparatur Reparaturen ReparaturID : Long ObjektID : Long Beschreibung : String von : Date bis : Date Verantwortlicher : String Firma : String Verantwortlicher: Person die die Reparatur eingeleitet hat Firma: ausführende Firma der Arbeiten 5 Geschäftsprozesse Die unterschiedlichen Geschäftsprozesse unterliegen verschiedenen Zugriffkriterien, die auf Grund der Rechtvergabe einen Prozess für eine bestimmte Benutzergruppe ermöglicht oder sperrt. Der Ausgangspunkt eines Geschäftsprozesses ist das Login in das System. Anhand der gespeicherten Rechte zu diesem Login verfügt jede Benutzgruppe über unterschiedliche Geschäftsprozesse. Verbrauch ermittlen Zählerstände abfragen Störungsmeldung weiterleiten Kunde nur SB, T Sachbearbeiter (SB) Reparaturverwaltung nur SB, T Login Techniker (T) Störungsmeldung bearbeiten nur SB Rechnung erstellen nur T Zählerstandverwaltung nur A, SB Zählerstände eintragen Netzverwaltung Administrator (A) Accountverwaltung Netz verändern Netz anlegen Account ändern Account anlegen Abbildung.: Geschäftsprozessdiagramm Im Folgenden sind die einzelnen Geschäftsprozesse näher erläutert: • Zählerstände abfragen: Jeder eingeloggte Kunde kann die für ihn gespeicherten Zählerstände abfragen. Die Zählerstände sind dabei chronologisch geordnet. Andere Benutzer, wie Sachbearbeiter und Techniker, können ebenfalls Zählerstände abfragen (z.B. für Auskunftszwecke). 6 • Verbrauch ermitteln: Jeder eingeloggte Kunde hat die Möglichkeit, sofern für ihn mind. zwei Zählerstände vorhanden sind, eine Verbrauchsermittlung durchzuführen. Die Ermittlung basiert auf den gespeicherten Zählerständen zurückliegender Ablesungen seines Anschlusses. Durch Eingabe eines selbst vom Kunden abgelesenen Zählerstandes, kann er zusätzlich eine Verbrauchs-Prognose für den aktuellen Abrechnungszeitraum ermitteln lassen. Ihm ist es jedoch nicht möglich Zählerstände selbst eintragen zu lassen. Dies geschieht weiterhin über einen Sachbearbeiter oder Techniker. • Reparaturverwaltung Die Reparaturverwaltung untergliedert sich in 2 Teilprozesse Störungsmeldung weiterleiten Falls ein Sachbearbeiter oder Techniker eine Störungsmeldung erhält oder feststellen sollte, kann er diese in das System eingeben. Die Störungsmeldung kann telefonisch, per Fax oder Brief eingetroffen sein. So könnte zum Beispiel ein Techniker, die für sein Arbeitsgebiet aktuellen Störungen, angezeigt bekommen und sie überprüfen und ggf. eine Reparatur veranlassen. Störungsmeldung bearbeiten Nachdem eine Störungsmeldung abgesetzt wurde, kann diese bearbeitet werden. Die Bearbeitung umfasst verschiedene Punkte. Angefangen von der Beschreibung der Störung bzw. der geleisteten Arbeiten bis hin zum Abschluss der Reparatur und somit zur Beseitigung der Störung. • Zählerstandsverwaltung Die Verwaltung der Zählerstände untergliedert sich ebenfalls in 2 Teilprozesse Rechnung erstellen Dies ermöglicht einem Sachbearbeiter eine Rechnung, mit Bezug auf die gespeicherten Zählerstände eines Anschlusses des Kunden, über einen auswählbaren Zeitraum zu erstellen. Die Zeiträume ergeben sich aus den Abständen der gespeicherten Zählerstände. 7 Zählerstände eintragen Sachbearbeiter und Techniker können über diesen Prozess, die abgelesen Zählerstände eines zu einem Kunden gehörenden Anschlusses eintragen. • Netzverwaltung Netz anlegen Der Techniker hat über diesen Prozess die Möglichkeit ein Netz in dem System anzulegen. Es können sowohl Knoten als auch Leitung angelegt werden. Ebenso besteht die Möglichkeit der Anschlusserstellung. Netz verändern Ähnlich dem Prozess „Netz anlegen“ kann hier der Techniker das Leitungsnetz in dem System verändern. Er kann neue Knoten, Anschlüsse und Leitungen hinzufügen, entfernen oder zum Beispiel in ihrer Position veränderen. • Accountverwaltung Account anlegen Ein Administrator hat hier die Möglichkeit einen neuen Account in der Adresstabelle anzulegen und ihm entsprechenden Rechte zuzuweisen. Wird zum Beispiel ein Account für einen Kunden angelegt, so wird dem Anschluss des Kunden seine Adresse zugeordnet. Account verändern Sollten gewisse Umstände es nötig machen, so kann ein Administrator einen Account verändern. Als häufig vorkommende Umstände wäre zu nennen: Adressänderung im Falle eines Umzuges oder Veränderung des LogIns 8 Wichtige Aktivitäten Login: Bei allen Aktivitäten, die über das Informationssystem ausgeführt werden können, wird eine erfolgreiche Anmeldung im System vorausgesetzt. Deshalb wollen wir diese Aktivität hier kurz ansprechen. • Vorgehensweise: Dem Anwender wird ein Anmeldebildschirm präsentiert, in dem der Anwender aufgefordert wird, sein LogIn und das dazugehörige Passwort einzugeben. Bestätigt der Anwender seine Eingaben, werden die Daten mit denen der Datenbanktabelle „Rechte“ verglichen. Existiert ein passender Eintrag und stimmt das dazugehörige Passwort, ist der Benutzer erfolgreich im System angemeldet und gelangt zur Hauptansicht, wo er entsprechend seiner Rechte weiter Aktivitäten auswählen kann. Sollte jedoch der LogIn nicht gefunden werden oder das Passwort dazu nicht übereinstimmen, wird der Benutzer darauf hingewiesen und kann seine Eingaben entsprechend ändern. 9 Rechnung erstellen: Anmeldung als Sachbearbeiter Kunden wählen Zugriff auf Datenbank keine Zählerstände vorhanden Zeitraum bestimmen Zeitraumauswahl anhand der vorhandenen Zählerstände Rechnung erstellen Abbildung: Aktivitätsdiagramm „Rechnung erstellen“ • Vorraussetzung: Erfolgreiche Anmeldung als Sachbearbeiter im Informationssystem. • Vorgehensweise: Der Sachbearbeiter wählt über eine Suchfunktion, Auswahl oder direkte Eingabe einen Kunden aus der Adresstabelle aus. Das System nun, ob für den gewählten Kunden Zählerstände zur Verfügung stehen und listet diese auf. Falls zu einem Kunden nicht mind. zwei Zählerstände zur Verfügung stehen, wird der Sachbearbeiter darauf hingewiesen und zum Auswahlbildschirm weitergeleitet. Existieren mind. zwei Zählerstände, wählt sich der Sachbearbeiter den betreffenden Zeitraum aus. Diese Zeiträume werden ihm anhand der vorhandenen Zählerstände vorgeschlagen. Nach Auswahl des zu bearbeitenden Zeitraumes, wird eine Berechnung der Daten durchgeführt und dem Sachbearbeiter angezeigt. Die ausgewerteten Daten können dann zum Beispiel an eine Rechnungsstelle übermittelt werden, welche alle weiteren Schritte, bis hin zur endgültigen Zustellung der Rechnung übernimmt. Dies soll hier aber nicht weiter betrachtet werden. 10 Netz anlegen: Anmeldung als Techniker keine weitere Leitung keinen weiteren Knoten hinzufügen Auswahlbildschirm nicht genug Knoten vorhanden Beschreibung:Stri ng xKoord:Double yKoord:Double Tiefe:Double Zustand:Integer weiteren Knoten hinzufügen neuen Knoten hinzufügen Typ:Stri ng Beschreibung:Stri ng Durchmesser:Double aKnoten:Long eKnoten:Long Zustand:Integer mind. 2 Knoten vorhanden Schrei be neuen Knoten in Datenbank neue Leitung hinzufügen weitere Leitung Füge Leitung i n Datenba... Füge Knoten hinzu Knoten nicht vorhanden Knoten bereits vorhanden Leitung bereits vorhanden Füge Leitung hinzu Leitung nicht vorhanden Abbildung: Aktivitätsdiagramm „Netz anlegen“ • Vorraussetzung: Erfolgreiche Anmeldung als Techniker im Informationssystem. • Vorgehensweise: Nach der erfolgreichen Anmeldung wird dem Techniker ein Anfangsbildschirm präsentiert, in dem er alle für ihn wichtigen Aktivitäten in einem Menü präsentiert werden. Wählt er dort die Aktivität „Netz anlegen“ kann er zwischen dem Hinzufügen von Knoten bzw. Leitungen auswählen. Zur besseren Übersicht kann er sich jederzeit eine graphische Darstellung des Netzes anzeigen lassen. Hinzufügen der Knoten: Im Auswahlbildschirm „Knoten hinzufügen“, hat der Techniker die Möglichkeit, Knoten anzulegen oder zum Anfangsbildschirm zurückzukehren. Beim „Anlegen eines neuen Knotens“ wird geprüft ob der neue Knoten bereits existiert. Falls dies der Fall ist wird der Techniker darauf hingewiesen und kann seine Eingabe korrigieren. Existiert der neue Knoten noch nicht, so wird er dem Netz hinzugefügt, d.h. in der Tabelle „Knoten“ eingetragen. 11 Zum Anlegen eines Knotens werden folgende Daten benötigt: X-Koordinate (xKoord: Double), Y-Koordinate (yKoord: Double), Tiefe in der sich der Knoten befindet (Tiefe: Double) und der Zustand des Knotens (Zustand: Integer) Bei den Zuständen kann der Techniker zwischen: OK, Beschädigt, Reparatur im Gang oder Im Bau wählen Anschließend hat der Techniker die Möglichkeit, weitere Knoten hinzuzufügen oder zum Anfangsbildschirm zurückzukehren. Hinzufügen der Leitungen: Im Auswahlbildschirm „Leitungen hinzufügen“, hat der Techniker die Möglichkeit neue Leitungen anzulegen. Bevor er jedoch die Möglichkeit bekommt neue Leitungen anzulegen, wird überprüft ob bereits mindestens 2 Knoten existieren. Ist dies nicht der Fall, gelangt der Techniker zurück zum Anfangsbildschirm. Existieren jedoch mindestens 2 Knoten, so bekommt er die Möglichkeit neue Leitungen anzulegen. Beim Anlegen neuer Leitungen wird der Techniker aufgefordert die Daten für den Anfangsknoten (aKnoten: Long), den Endknoten (eKnoten: Long) und den Zustand der Leitung (Zustand: Integer) anzugeben. Nach der Überprüfung der Daten auf ihre Konsistenz wird die neue Leitung in der Datenbanktabelle „Leitungen“ angelegt. Die Aktivitäten zum Bearbeiten und Löschen von Knoten bzw. Leitungen verhalten sich nahezu äquivalent zum Anlegen. 12 Architektur Dem Informationssystem zugrunde liegt die klassische 3-Schichten Architektur. Die Vorteile dieser Architektur liegen in der Trennung von Daten, Logik und Präsentation. Außerdem beinhaltet es über die Anwendung hinaus verwertbare Geschäftsobjekte und ist flexibel für Änderungen. Dies sind jedoch nur die Vorteile. Die Realität sieht anders aus: - Eine standardisierte Infrastruktur erfordert sehr viel Einarbeitung - Im Client-Code steht oft mehr als 60% der Anwendung - Rapid Prototyping nur eingeschränkt möglich Anwendungsserver Kunden Netz Datenbank Rechte JSP Web-Server Reparatur Zählerstände My-SQL Rechnungen Java-Beans Als Datenschicht wird auf eine mySql-Datenbank zugegriffen. Die Entscheidung für mySql fiel vor allem aufgrund von: - kostenlos und OpenSource - gute Performance auch noch in großen Datenbanken - standardisiert - für unterschiedliche Systeme verfügbar - mit unterschiedlichen Programmiersprachen ansprechbar 13 Tools Als Entwicklungswerkzeuge kommen zum Einsatz: • PHPMyAdmin PHPMyAdmin dient zum Erstellen und Verwalten der Datenbank. PHPMyAdmin ist kostenlos und OpenSource womit in Verbindung mit MySQL eine günstige Datenbankanbindung und -erstellung geschaffen wird. • NetBeans IDE Zum Erstellen der Java-Klassen und der JSP-Seiten wird die NetBeans IDE verwendet. Sie ist frei verfügbar und somit eine gute Basis für eine Entwicklungsumgebung, außerdem beinhaltet sie einen Tomcat-Server zum gleichzeitigen Testen und Ausführen. • Tomcat-Server Als Web-Server wird ein Tomcat-Server benutzt. Dieser hat den Vorteil, das er neben einem JSP-Prozessor und Servlet-Runner auch einen einfachen HTTP-Server beinhaltet. 14