Gesamtverband der Deutschen Versicherungswirtschaft e.V. Prozesse Objekte Funktionen Daten Komponenten Request Broker VA A Edition 1999 Die Anwendungsarchitektur der Versicherungswirtschaft DATENMANAGER VERSION 2.1 PROZEDURAL © GDV 1999 http://www.gdv.de/vaa Autoren: Das Projektteam "Datenmanager" Administration, Koordination: Gesamtverband der Deutschen Versicherungswirtschaft e.V., Berlin http://www.gdv.de/vaa © GDV 1999 Datenmanager Willkommen bei VAA Edition 1999! Liebe Leserin, lieber Leser, haben Sie bereits eine der Broschüren der VAA Edition 1999 gelesen? Wenn ja, können Sie gleich weiter blättern, denn dieses Kapitel steht gleichlautend am Anfang jedes Dokuments dieser VAAEdition. Ansonsten freuen wir uns über Ihr Interesse an der VAA und gratulieren Ihnen zu Ihrer Entscheidung, sich mit diesem Thema zu beschäftigen, an dem wir seit Jahren mit großem Engagement und immer noch mit viel Spaß arbeiten. Mit WIR sind alle gemeint, die sich in den letzten Jahren direkt an der Arbeit in den VAA-Gremien beteiligten. Um wen es sich dabei im einzelnen handelt, können Sie in einem Anhang der Broschüre ANFORDERUNGEN UND PRINZIPIEN nachlesen, darüber hinaus werden die VAA-Gremien auf der neuen VAA-CD und im Internet (Adresse http://www.gdv.de/vaa) vorgestellt. Nun zur Sache: Die VAA wurde in den vergangenen zwei Jahren in zwei Richtungen weiterentwickelt. Der erste Schritt in Richtung Objektorientierung ist getan. Sie finden in der VAA Edition 1999 das OBJEKTORIENTIERTE FACHLICHE REFERENZMODELL und das OBJEKTORIENTIERTE TECHNISCHE REFERENZMODELL der VAA. Das Geschäftsobjekt PRODUKT wurde bereits detailliert ausgearbeitet. Die prozedurale Variante lebt weiter. Sie wurde ergänzt um eine weitere fachliche Komponente, INKASSO/KONTOKORRENT. Darüber hinaus wurden die aufgrund der Aufnahme der Objektorientierung notwendig gewordenen Überarbeitungen und Ergänzungen der Dokumente der 2. Auflage von VAA vorgenommen. Es entstand eine Vielzahl von zum Teil sehr umfangreichen Dokumenten, die auf drei Wegen veröffentlicht werden: CD-ROM, Internet und als gebundene Broschüren in Papierform. Um Ihnen die Orientierung zu erleichtern, haben wir als Übersicht über die verfügbaren Dokumentationen der VAA Edition 1999 einen grafischen Wegweiser erstellt, den Sie auf der nächsten Seite finden können. Vielleicht hilft er Ihnen, sich zurechtzufinden und Ihre Schwerpunktthemen "herauszufischen". Viel Spaß beim Studium des hier und in den übrigen Dokumenten zusammengestellten VAA-Wissens. © GDV 1999 http://www.gdv.de/vaa Datenmanager Dokumentenstruktur der VAA Edition 1999 Anforderungen und Prinzipien neu Glossar überarbeitet VAA prozedural (pVAA) Version 2.1 Prozeduraler Rahmen neu Fachliche Beschreibung Inkasso/Kontokorrent neu Partner Partner/Anhang Provision überarbeitet Schaden/Leistung Vertrag Technische Beschreibung Datenmanager Datenmanager/Anhang Dialogmanager Parametersystem Workflow-/Vorgangsmanager VAA objektorientiert (oVAA) Version 1.0 Objektorientiertes fachliches Referenzmodell Hauptdokument neu Anhang A – Use-Case-Modell – neu Anhang B – Klassenmodell – neu Modell in Rational-Rose-Format neu Objektorientiertes technisches Referenzmodell neu Produkt neu http://www.gdv.de/vaa © GDV 1999 Datenmanager I. Inhalt Der Datenmanager (Überblick) ............................................................................ 5 I.1. Einleitung und Problemstellung ..................................................................................................... 5 I.2. Anforderungen .............................................................................................................................. 6 I.3. Einbindung in die Gesamtarchitektur ............................................................................................ 7 I.4. Grundstruktur des Datenmanagers ............................................................................................... 7 I.5. Aufgaben des Datenmanagers ..................................................................................................... 9 I.5.1. Bereitstellung von Daten ....................................................................................................... 9 I.5.2. Änderung von Daten ............................................................................................................. 9 I.5.3. Pufferung logischer Änderungen bis zum Konsistenzpunkt .................................................. 9 I.5.4. Zwischenspeicherung von temporären Daten ..................................................................... 10 I.5.5. Unterstützung der Zeitlogik ................................................................................................. 10 I.6. Zusammenfassung...................................................................................................................... 10 II. Einbindung des Datenmanagers in die Gesamtarchitektur............................. 12 II.1. Das Zusammenspiel mit anderen VAA-Komponenten ................................................................ 12 II.2. Schnittstellen ............................................................................................................................... 12 II.2.1. Die Schnittstelle zur Anwendung......................................................................................... 13 II.2.2. Die Schnittstelle zum Parametersystem .............................................................................. 13 III. Spezifikation des Datenmanagers ................................................................. 15 III.1. Spezifikationsgrundsätze ........................................................................................................ 15 III.2. Komponentenstruktur (Masterplan) ......................................................................................... 16 III.2.1. Konfigurationskomponenten im Überblick ........................................................................... 16 III.2.2. Buildtime-Komponenten im Überblick ................................................................................. 19 III.2.3. Runtime-Komponenten im Überblick................................................................................... 19 III.2.4. Beispiel der Datenbeschaffung durch einen Anwendungsbaustein .................................... 20 III.2.5. Ablaufsteuerung für Veränderungen in der Datenbank ....................................................... 25 III.2.6. Ablauf für Update des Vorgangsspeichers .......................................................................... 28 III.3. Konfigurationskomponenten ................................................................................................... 28 III.3.1. Logisches Datenmodell ....................................................................................................... 29 III.3.1.1. E/R-Sprache................................................................................................................ 29 III.3.1.2. Begriffserklärungen: Entity, Relationship, ................................................................... 29 III.3.1.3. Anforderungen an die E/R-Sprache aus Sicht des Datenmanagers ........................... 31 III.3.1.4. Festlegung der Minimal-Konstrukte einer E/R-Sprache .............................................. 32 III.3.1.5. Beispiel eines E/R-Modells.......................................................................................... 35 III.3.2. Physisches Datenmodell ..................................................................................................... 36 III.3.3. Abbildung zwischen logischem und physischem Modell ..................................................... 36 III.3.3.1. Abbildungsregeln ........................................................................................................ 38 III.3.3.2. Optimierungskonstrukte .............................................................................................. 38 III.3.3.3. Transformationsdokumentation ................................................................................... 40 III.3.4. Logische Datensicht ............................................................................................................ 40 III.3.4.1. Schnittstellenbeschreibung durch Datensichten.......................................................... 40 III.3.4.2. Definition von Datensicht und Datensichtsprache ....................................................... 41 © GDV 1999 i Inhalt Datenmanager III.3.4.3. Anforderungen an eine Datensichtsprache ................................................................. 42 III.3.4.4. Minimal-Konstrukte der Datensichtsprache ................................................................. 42 III.3.5. Physische Datensicht .......................................................................................................... 65 III.3.6. Zuordnung der logischen zur physischen Datensicht .......................................................... 65 III.3.7. Werkzeuge .......................................................................................................................... 65 III.3.7.1. Allgemeine Anforderungen an Werkzeuge .................................................................. 65 III.3.7.2. Werkzeuge im VAA-Entwicklungsprozeß .................................................................... 66 III.3.8. Organisation ........................................................................................................................ 68 III.3.8.1. Überblick ..................................................................................................................... 68 III.3.8.2. Prozessmodellierung ................................................................................................... 69 III.3.8.3. Fachdesign .................................................................................................................. 69 III.3.8.4. Realisierung ................................................................................................................ 70 III.3.8.5. Betrieb ......................................................................................................................... 71 III.4. Buildtime Komponenten .......................................................................................................... 71 III.4.1. Der LDASI-Generator .......................................................................................................... 71 III.4.2. Der PDASI-Generator.......................................................................................................... 72 III.4.2.1. Erstellung eines Ablaufplans ....................................................................................... 73 III.4.2.2. Auflösung der physischen Datensicht in I/O-Module ................................................... 74 III.4.2.3. Datenzugriffsoptimierung............................................................................................. 74 III.5. Runtime Komponenten ............................................................................................................ 75 III.5.1. III.5.1.1. Die Schnittstelle zum Anwendungsprogramm ............................................................. 77 III.5.1.2. Speicherverwaltung (Vorgangs-/Hauptspeicher) ......................................................... 89 III.5.2. Der Datenhandler ................................................................................................................ 91 III.5.2.1. Schnittstelle zum Datensichtprozessor ........................................................................ 91 III.5.2.2. Die Transformation ...................................................................................................... 92 III.5.2.3. Die Ablaufsteuerung .................................................................................................... 92 III.5.2.4. I/O-Module ................................................................................................................... 92 III.5.3. IV. Der Datensichtprozessor ..................................................................................................... 75 Datenbank-Verfügbarkeit..................................................................................................... 92 Abbildung der Zeitlogik .................................................................................. 94 IV.1. Einleitung und Problemstellung ............................................................................................... 94 IV.2. Unterstützung des Historienkonzepts durch den Datenmanager ............................................ 95 IV.2.1. Die Bildung von Informationsobjekten ................................................................................. 95 IV.2.2. Versionsbildung ................................................................................................................... 95 IV.2.3. Definition eines Versionsbaums .......................................................................................... 95 V. Verteilung ............................................................................................................ 98 V.1. Verteilte Datenbank ..................................................................................................................... 98 V.2. Verteilung der I/O-Module ........................................................................................................... 98 V.3. Verteilung der Anwendungs-Module ........................................................................................... 99 V.4. Offline Verarbeitung .................................................................................................................... 99 VI. ii Migrationsverfahren ...................................................................................... 100 © GDV 1999 Datenmanager VI.1. Datenmigration ...................................................................................................................... 100 VI.2. Verfahrensmigration durch Altdatenintegration ..................................................................... 101 VI.3. Unterlegung von neuen Datenmodellen ................................................................................ 101 VI.4. Migrationsverfahren bei der Württembergischen Versicherung ............................................ 101 VII. VI.4.1. Komplette Umstellung der Anwendung auf eine neue Architektur .................................... 101 VI.4.2. Stufenweise Umstellung von Anwendungen ..................................................................... 102 VI.4.3. Verwendung des Datenmanagers in bestehenden Anwendungen.................................... 102 Inhalt Glossar........................................................................................................... 103 © GDV 1999 iii Datenmanager Der Datenmanager (Überblick) I. Der Datenmanager (Überblick) Die Datenanforderungen innerhalb der Versicherungsanwendungsarchitektur werden durch einen Datenmanager abgewickelt. Dieser bildet die Schnittstelle zwischen Anwendungssystemen und den extern gespeicherten Daten. Er entkoppelt die Anwendungen von den Details der physischen Datenspeicherung, übernimmt den aufwendigen Teil der Beschaffung von komplexen Datenstrukturen und erleichtert die Erstellung der in der Versicherungswirtschaft üblichen datenorientierten Anwendungen signifikant. Der Datenmanager stellt den Anwendungen eine logische und transparente Datenschnittstelle bereit. Dazu muß er in der Lage sein, Konvertierungen von verschiedensten Datenspeicherungsformen auf die von der Anwendungen angeforderten und effizient zu verarbeitenden Strukturen durchzuführen. Diese Spezifikation beschreibt die grundlegenden Mechanismen und Aufgaben des Datenmanagers und seine Schnittstellen innerhalb der Versicherungsanwendungsarchitektur (VAA). I.1. Einleitung und Problemstellung Anwendungssysteme innerhalb der Versicherungswirtschaft sind datenorientiert. Zu jedem Geschäftsvorgang werden eine Vielzahl von Daten verarbeitet und gespeichert. Diese Daten sind komplex strukturiert und werden in der Regel in Datenbanksystemen gespeichert. Das Spektrum der verwendeten Datenbanksysteme reicht von Eigenentwicklungen über die klassischen Datenbanksysteme (wie IMS oder DB2) bis hin zu verteilten Datenbanksystemen. Die Hauptaufgabe der Anwendungssysteme der Versicherungswirtschaft besteht in der Prüfung von eingegebenen Daten, ihrer Ablage und in der Bereitstellung der gespeicherten Datenstrukturen in einer dem Sachbearbeiter eingängigen Form. In den Standardisierungsbestrebungen einer Versicherungsanwendungsarchitektur ist deshalb die Bereitstellung und Ablage von Daten eine zentrale Dienstleistung, die effizient und in unterschiedlichsten technischen Gegebenheiten abgewickelt werden muß. Diese zentrale Dienstleistung wird im sogenannten Datenmanager umgesetzt, der seine Dienste allen Anwendungskomponenten zu Verfügung stellt. Eine Anwendung besorgt sich die benötigten Daten nicht mehr selber durch aufwendige Leseoperationen. Sie teilt ihre Anforderungen dem Datenmanager mit. Der Datenmanager überführt dann die physisch gespeicherten Daten effizient und einfach nutzbar in die von Anwendungen angeforderte Form. Der Anwendungsentwickler muß sich nicht mehr mit den internen Details der Datenspeicherung auseinandersetzen. Diese häufig sehr aufwendige Aufgabe übernimmt der Datenmanager. Dadurch wird die Wiederverwendbarkeit komplexer Anwendungsteile in wechselnden Umgebungen sichergestellt und auf hohem Qualitätsniveau festgeschrieben. Um einen groben Eindruck von der Leistungsfähigkeit eines Datenmanagers zu vermitteln, betrachten wir den notwendige Datendurchsatz in einer gängigen Umgebung eines größeren Versicherungsunternehmens: In heutigen Dialogsystemen können wir von Spitzenbelastungen von ca. 100 Transaktionen per Sekunde und mehr ausgehen. Bei ca. 15 Datenzugriffen pro Transaktion müssen mindestens 1500 Datensätze in einer Sekunde beschafft werden. Ausgehend von einer CPU-Zeit von 1/1000-Sekunde © GDV 1999 5 Der Datenmanager (Überblick) Datenmanager pro Aktivität werden zur Abwicklung 1,5 Sekunden CPU-Zeit benötigt. Ohne Berücksichtigung der tatsächlichen Verweilzeiten sind somit mindestens 1,5 Prozessoren eines Großrechners einzusetzen. Das Inkasso einer Versicherung mit 3.000.000 K-Verträgen muß in einer Nachtschicht abgewickelt werden können. Damit stehen ca. 8 Stunden reiner Laufzeit für die Durchführung des Inkassos zu Verfügung. Bei Speicherung unter DB2 und durchschnittlich 5 zusätzlichen Lesezugriffen zur Ermittlung des Ist-Status eines Vertrages ergeben sich in 8 Stunden 18.000.000 zu verarbeitende Sätze aus DB2-Tabellen. Dies bedeutet, daß ca. 600-650 Sätze pro Sekunde zu Verfügung gestellt werden müssen. Diese Beispiele zeigen die hohe Lastanforderungen, die ein Datenmanager in einer gängigen Umgebung erfüllen muß. Zusätzlich sind notwendige Eigenschaften wie Stabilität, Verfügbarkeit, Datensicherheit usw. zu berücksichtigen. Derartige Anforderungen lassen sich nur erfüllen, wenn der Datenmanager in hohem Maße eine Optimierung der Datenzugriffe unterstützt. Allerdings ist der Datenmanager kein Datenbanksystem. Er ist vielmehr eine allgemeingültig definierte Zugriffsschale über die derzeit benutzen Speicherformen, die seinem Anwender die intimen Kenntnisse der verwendeten Datenspeicherungstechnologie abnimmt und durch Normierung und Generalisierung die Qualität, die Wiederverwendbarkeit und die Entkopplung von Anwendungen und Datenspeicherung garantiert. I.2. Anforderungen Die Funktionalität eines Datenmanagers ist typisch für alle DV-Systeme und nicht auf die Versicherungswirtschaft beschränkt. Aus den Grundprinzipien der VAA können die wesentlichen Anforderungen abgeleitet werden: Der Datenmanager muß sämtliche Datenbeschaffungen innerhalb der VAA abwickeln. Davon auszunehmen sind nur die Daten eines Parametersystems. Die Datenbeschaffung durch den Datenmanger muß in der Lage sein, die heute in Versicherungsunternehmen anfallenden hohen Transaktionsraten mit der notwendigen Response-Zeit von unter einer Sekunde abzudecken. Aus den Charakteristika der notwendigen Batch-Aktivitäten ergibt sich die Forderung nach einer wirksamen Unterstützung sequentieller Lesezugriffe in größerem Umfang. Die notwendigen Veränderungen in Datenbeständen sind ebenfalls Aufgabe des Datenmanagers. Dazu gehört auch die Unterstützung sogenannter langer Transaktionen, d.h. Änderungen innerhalb eines Vorgangs werden lokal auch über Transaktionsgrenzen hinweg vorgehalten und erst am Vorgangsende auf den Datenbeständen fortgeschrieben und damit der Allgemeinheit zur Verfügung gestellt. Eine Vielzahl von eingesetzten Programmiersprachen, Datenbanksystemen und physischen Speicherungsformen muß durch den Datenmanager unterstützt werden. Zu erwähnen sind z.B. IMS, DB2, UDS als Datenbanksysteme, PL/1, Cobol als Programmiersprachen und VSAM als häufig eingesetzte Form der Datenspeicherung. Weniger häufige Speicherformen von Daten müssen durch Erweiterungen an den Datenmanager angebunden werden können. In diesem Kontext von verschiedensten Sprachen, Datenbanksystemen und Datenspeicherungsformen kommt einer effizienten Anwendungsschnittstelle zentrale Bedeutung zu, die die in der Versicherungswirtschaft üblichen hohen Kodierungsaufwände der Datenzugriffe durch geeignete Entkopplungsmechanismen und wiederverwendbare Strukturen wirksam vermindert. 6 © GDV 1999 Datenmanager Der Datenmanager (Überblick) Durch den zunehmenden Einsatz von Rechnerverbund-Systemen ergibt sich die Forderung nach der Unterstützung verteilter Datenhaltung. I.3. Einbindung in die Gesamtarchitektur Param ete rSyste m m it Ge schäftsund Steue rungsParam ete rn Datenm anage r Steuerungs obje kte Workflowmanager 3 1 Dialogsteuerung 1 Vorgangsspeicher 2 1 DV-Vorgangssteuerung 4 5 E/R Modellbeschreibung Vorgangstabellen Anw endungsbaus teine 3 Risikoprüfung Beitrag Provision Police 2 usw . logisches Instanzenmodell Bilddefinitionen 5 Tarifierungsmodelle Die ns te Fehlerbehandlung Feldkonverter Regelsystem Präsentation DBMSEntkopplung usw . Abb: Zusammenspiel der wichtigsten VAA-Komponenten Zwischen den einzelnen Komponenten bestehen folgende Schnittstellenbeziehungen: (1) Verbindung der zur Abwicklung eines Geschäftsprozesses notwendigen Steuerungsobjekten (2) Beschaffung der für den Geschäftsprozeß benötigten Datenstrukturen. (3) Beschaffung der für den Prozeß notwendigen Steuerungsdaten und Parameter. (4) Aufruf der zur Abwicklung Anwendungsbausteinfunktionen. der fachlichen Inhalte notwendigen (5) Nutzung der allgemein verfügbaren Dienste zur Abwicklung des Geschäftsprozesses. I.4. Grundstruktur des Datenmanagers Die obigen Anforderungen geben einen ersten Eindruck von der Bandbreite und Komplexität eines Datenmanagers. Aufgrund der Leistungscharakteristika sollte der Datenmanager möglichst komplexe, wiederverwendbare und nur einmal zu definierende Geschäftsobjekte an die Anwendungen weiterreichen, die dann einfach verarbeitet werden können. Statt der Anwendung z.B. die Zusammenstellung der benötigten Daten zu einem Versicherungsvertrag Datensatz um Datensatz zu überlassen, stellt er alle in einer Datenanforderung benötigten Datensätze über allgemeine Vertragsdaten, Risiko- und Unterrisikodaten und abweichenden Vereinbarungen immer in der gleichen Form und Qualität zu Verfügung. Feldweiser Zugriff auf Datenelemente als allgemeine Datenschnittstelle verbietet sich aus Effizienzgründen. Anwendungen kommunizieren mit dem Datenmanager nicht auf der Ebene von Datenelementen, sondern mittels komplex aufgebauter Datenstrukturen (sogenannte komplexe Objekte), die die innere Ordnung der benötigten Daten widerspiegeln. Diese Datenstrukturen entsprechen im Idealfall den auszugegebenden Strukturen z.B. eines Bildschirms oder einer Listendarstellung. Dadurch kann © GDV 1999 7 Der Datenmanager (Überblick) Datenmanager erreicht werden, daß die Anwendung entsprechend definierte Objekte direkt und auf einfachste Weise Datenmanager Datensichtprozessor Anwendungskomponente mit Datenlesebzw. Updateanforderung log. Datenmodell Datenhandler phys. Datenbank phys. Datenbank Abb.: externe Schnittstellen des Datenmanagers verarbeiten und darstellen kann. Der Datenmanager liefert die von den Anwendungen durch sogenannte Datensichten angeforderten Daten als komplexe Datenstrukturen, die aus den Entitäten eines logischen Datenmodells bestehen. Dazu bedient er sich eines Datensichtprozessors. Die fachliche Aufgabe des Datensichtprozessors besteht darin, Datenanforderungen entgegenzunehmen und diese anhand des logischen Datenmodells in Aufträge für die Datenbeschaffung zu übersetzen. Nach Bereitstellung der Entitäten stellt der Datensichtprozessor die geforderten Daten in der gewünschten Reihenfolge zur Verfügung. Die Abarbeitung einer Lese-Anforderung erfolgt in folgenden Schritten: 1. Ermittlung des angeforderten Datenumfangs. 2. Umsetzung der logischen Datenanforderung in physische Einheiten 3. Zugriff auf die Daten in den ermittelten Datenbanken und Dateien. 4. Umsetzung der gelesenen physischen Daten in logische Entitäten. 5. Rückgabe der Daten an die Anwendung in der angeforderten Struktur. 8 © GDV 1999 Datenmanager Der Datenmanager (Überblick) I.5. Aufgaben des Datenmanagers I.5.1. Bereitstellung von Daten Die Datenanforderungen erfolgen durch die Formulierung von Datensichten. Datensichten beschreiben auf der Basis des logischen Datenmodells den Umfang und die Anordnung der Daten, die eine Anwendung benötigt, sie werden im Laufe der Anwendungsentwicklung definiert. Grundsatz ist, daß jede Anwendung nur die Daten zu Verfügung gestellt bekommt, die sie auch wirklich benötigt, um sie auszuwerten oder zu ändern. Der Datenmanager setzt die Datenanforderungen in die erforderlichen physischen Zugriffe um, d.h. für die Anwendung ist die konkrete physische Ablage der Daten nicht relevant. Insofern hat auch eine Änderung der Datenspeicherung (z.B. durch Migration von VSAM nach DB2) keine Auswirkungen auf die Anwendung. I.5.2. Änderung von Daten Analog zum lesenden Zugriff formuliert eine Anwendung Änderungen nur auf den Entitäten des logischen Datenmodells. Die Änderungen auf den physisch gespeicherten Daten ist ausschließliche Aufgabe des Datenmanagers. I.5.3. Pufferung logischer Änderungen bis zum Konsistenzpunkt Häufig existiert die Anforderung, daß mehrere zu einem Geschäftsprozeß gehörende Arbeitsschritte nur zusammen wirksam werden oder gar nicht. Auch diese Aufgabe erledigt der Datenmanager. Er kennzeichnet die Daten als vorläufig und stellt sie nur dem Geschäftsprozeß zur Verfügung, der diese Daten erzeugt hat, bis das Kommando zum endgültigen Abspeichern kommt. Dann werden die Daten allen anderen Geschäftsprozessen bekannt und allgemein gültig gemacht. Bsp.: Beim Neugeschäft wird zum einen der Arbeitsschritt "Kunde erfassen" durchgeführt, zum anderen der Arbeitsschritt "Vertragsdaten erfassen“. Die Anforderung kann dann lauten, daß auch die Anschrift des Kunden erst dann wirksam wird, wenn der Vertrag von uns angenommen wird. Die Daten der Anschrift müssen also solange zwischengepuffert werden, bis auch der Arbeitsschritt "Vertragsdaten erfassen" korrekt beendet wurde. Gleichwohl müssen sie diesem Arbeitsschritt bekannt gemacht werden, wenn er sie benötigt. © GDV 1999 9 Der Datenmanager (Überblick) Datenmanager I.5.4. Zwischenspeicherung von temporären Daten Im Rahmen der Anwendungsarchitektur ist es häufig notwendig, Daten in einen Speicher einzustellen und sie zu einem späteren Zeitpunkt wieder zu lesen. Dies ist zum einen durch den verwendeten TPMonitor (z.B. CICS) bedingt, zum anderen durch die Geschäftsprozeß-orientierte Sachbearbeitung mit der Möglichkeit des Unterbrechens und Terminierens von Geschäftsprozessen. Der Datenmanager stellt eine Schnittstelle zur Verfügung, die es den anderen Architekturbausteinen und der Anwendung ermöglicht, Daten einzustellen und zu einem späteren Zeitpunkt wieder zu bekommen. I.5.5. Unterstützung der Zeitlogik Der Datenmanager muß zeitpunktbezogene Datenanforderungen erfüllen, und zwar in zweierlei Hinsicht: Lieferung der zu einem bestimmten Zeitpunkt gültigen Daten Lieferung der Daten, die zu einem bestimmten Zeitpunkt dem System bekannt waren. Um dies zu gewährleisten, muß der Datenmanager ein durchgängiges Versionskonzept beinhalten, das bei jedem Änderungsvorgang alle benötigten Informationen festhält. I.6. Zusammenfassung Der Datenmanager bildet die Schnittstelle zwischen den Anwendungen und den extern gespeicherten Daten. Seine Aufgabe ist es, den Anwendungen eine abstrakte Datenschnittstelle zur Verfügung zu stellen, so daß diese vollkommen befreit sind von dem Schema der darunterliegenden Datenbanken und deren Zugriffslogik. Er beschafft die angeforderten Daten von externen Speichern, baut temporäre Speicher auf, kontrolliert deren Inhalte, schreibt die temporären Daten fort und ändert Datenbankinhalte. Er macht die Anwendungen unabhängig von der physischen Speicherungsform, von den Zugriffsarten und dem eingesetzten Datenbankmanagementsystem. Die Anwendungen arbeiten ausschließlich auf den logischen Datenmodell, das der Datensichtprozessor kennt und verwaltet. Über eine zusätzliche Entkopplungsschicht wird das logische Datenmodell auf die physisch gespeicherten Datenstrukturen abgebildet.. Der Datenmanager stellt dadurch standardisierte und wiederverwendbare Strukturen auf hohem Qualitätsniveau zur Verfügung und erleichtert die Erstellung von datenorientierten Anwendungen in erheblichem Ausmaß. 10 © GDV 1999 Datenmanager © GDV 1999 Der Datenmanager (Überblick) 11 Einbindung des Datenmanagers in die Gesamtarchitektur Datenmanager II. Einbindung des Datenmanagers in die Gesamtarchitektur II.1. Das Zusammenspiel mit anderen VAA-Komponenten Innerhalb der VAA-Architektur existieren zwei Dienste, die Daten aus persistenten Speichern beschaffen. Dies sind: der Datenmanager, der die benötigten operativen Daten für die einzelnen Anwendungsbausteine besorgt und das Parametersystem, welches die Konfigurationsdaten und generischen Parameter der einzelnen Bausteine beschafft. Das Zusammenwirken der einzelnen Teile der VAA wurde bereits anhand der Abbildung Zusammenspiel der wichtigsten VAA-Komponenten erläutert. In dieser Spezifikation steht die Schnittstelle (2) zwischen dem Datenmanager und den Steuerungsobjekten oder den Anwendungsbausteinen im Vordergrund. II.2. Schnittstellen Betrachtet man den Datenmanager im Kontext der gesamten VA-Architektur, so hat er eine Schnittstelle mit herausragender Bedeutung, die Schnittstelle zu den Anwendungsteilen, die Daten anfordern oder entgegennehmen bzw. die Speicherung von Daten veranlassen. Die effziente und performante Bedienung dieser Schnittstelle ist die zentrale Aufgabe des Datenmanagers. Während der Konfigurationsphase und der Buildtime kommt dann als zweite Schnittstelle die zum Parametersystem hinzu. (Vgl. Abbildung externe Schnittstellen des Datenmanagers.) Das Parametersystem ist der Ablageort aller in diesen Phasen erstellten Datenmanager-Objekte (logisches Datenmodell, Datensichten etc.). Auf das Parametersystem wird von den operativen Systemen zur Laufzeit nur lesend zugegriffen. Genaugenommen existiert noch eine dritte Schnittstelle, die zu den Datenbanken, in denen die zu beschaffenden Daten abgelegt sind. In unserer Betrachtungsweise ist diese Schnittstelle aber Datenmanager-intern, da außer dem Datenmanager niemand Kenntnis über die Spezifika dieser Schnittstelle haben muß. 12 © GDV 1999 Datenmanager Einbindung des Datenmanagers in die Gesamtarchitektur II.2.1. Die Schnittstelle zur Anwendung Die Schnittstelle des Datenmanagers zur Anwendung stellt in Bezug auf seine technische Realisierung eine besondere Herausforderung dar. Wegen der Häufigkeit seiner Nutzung ist die Performance dieser Schnittstelle von entscheidender Bedeutung. Die Schnittstelle zur Anwendung wird durch den Datensichtprozessor, ein Subsystem innerhalb des Datenmanagers realisiert. Die fachliche Aufgabe des Datensichtprozessors besteht darin, für die Funktionsbausteine, die Steuerungskomponenten DV-Vorgangssteuerung und Dialogsteuerung oder den Präsentationsmanager des Anwendungsprogrammes Daten im Vorgangsspeicher bereitzustellen bzw. das Update/Insert/Delete von Daten zu veranlassen. Anwendungsprogramme kommunizieren mit dem Datenmanager nicht auf der Ebene von Datenelementen, sondern mittels logischer, komplexerer Strukturen, den „logischen Datensichten“. Unter logischen Datensichten werden dabei hierarchische Bäume verstanden, die sich z.B. durch die Jackson-Notation beschreiben lassen. Sie können als NF2-Strukturen aufgefaßt werden, die im Idealfall direkt auszugegebenden Strukturen (Bildschirm, Liste, ...) entsprechen. Logische Datensichten beschreiben die Daten also in der Form, wie das Anwendungsprogramm sie gerade benötigt. Die logischen Datensichten werden in einer spezifischen Sprache formuliert. Durch diese Art der Anwendungsschnittstelle werden die Anwendungsprogramme völlig von der physischen Datenhaltung entkoppelt. Der Datensichtprozessor strukturiert und verwaltet die Daten modellgerecht aufgrund der logischen Beschreibung der Datensichten und unter Kenntnis des logischen Datenmodells in einem Trefferverzeichnis im Vorgangsspeicher. Die Anwendungsprogramme „greifen“ nicht auf die phsysische Datenhaltung durch. II.2.2. Die Schnittstelle zum Parametersystem In den ersten beiden Phasen des Arbeitens mit dem Datenmanager (Konfiguration, Buildtime) ist das Parametersystem das zentrale Ablagesystem für alle Datenmanager-Informationen. Dem Parametersystem werden während der Konfiguration alle Informationen zum logischen und physischen Datenmodell und zur Abbildung zwischen diesen beiden, sowie deren grafische Darstellung (in einem Textformat) übergeben. Das Parametersystem stellt die gespeicherten Informationen bei Bedarf wieder zur Verfügung. Während der Buildtime werden die Definitionen der logischen und physischen Datensichten, der Zuordnung zwischen ihnen und deren grafische Darstellung im Paramtersystem abgelegt bzw. bei Änderungen von dort beschafft. Auf den dort abgelegten Informationen setzen dann der Datenmodell-Editor und die Generatoren für die logischen und physischen Datensichten auf und generieren die zur Laufzeit verwendeten Bausteine. Diese Bausteine werden dann in einer Ladebibliothek abgelegt. Während der Runtime greift der Datenmanager auf das Paraametersystem lesend zu, um sich Inhalte vom logischen Datenmodell, Datensichten usw. zu beschaffen. © GDV 1999 13 Einbindung des Datenmanagers in die Gesamtarchitektur Datenmanager Anwendungsbausteine, die Daten aus dem Parametersystem benötigen, rufen es direkt über die Parameterschnittstelle während der Laufzeit auf. 14 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III. Spezifikation des Datenmanagers III.1. Spezifikationsgrundsätze Die Beschreibung eines komplexen Systems, wie es der Datenmanager darstellt, kennt natürlich verschiedene Beschreibungsebenen (Detaillierungsgrade). Die VAA-Arbeitsgruppe DATENMANAGER hat sich entschieden, für die Beschreibung eine Ebene deutlich oberhalb dessen, was für eine Programmvorgabe notwendig wäre, zu wählen. Eine stärkere Detaillierung war vom vorgegebenen Zeitrahmen nicht machbar, außerdem hätte ein solches Dokument allein für den Datenmanager mehrere hundert Seiten Umfang. Die einzelnen Teile der Spezifikation sind bewußt unterschiedlich stark detailliert. Die Stellen, die entweder dem Verständnis der Funktionalität oder der Beschreibung von Schnittstellen dienen, haben wir näher und mit größerer Detailschärfe beschrieben . Bis auf die Ebene der Definition von Datenstrukturen sind wir nur bei der Beschreibung der Schnittstelle zwischen Anwendungsprogramm und Datenmanager gegangen, wobei die vorgestellte Struktur mehr Beispielcharakter hat. Wir stützen uns in der Spezifikation an vielen, nicht näher gekennzeichneten Stellen auf Erfahrungen mit einer Implementierung eines Datenmanagers in der Württembergischen Versicherung, Stuttgart und Ideen zur Weiterentwicklung dieses Systems. Der Datenmanager ist eine (wesentliche) Komponente der Versicherungs-Anwendungs-Architektur, kein neues Datenbanksystem. Deshalb werden Eigenschaften, die heutige Datenbanksysteme haben oder regeln (z.B. verteilte Datenhaltung, stored procedures) genutzt, aber nicht neu entwickelt. Fehlende Integrität von mehreren Datenbanksystemen untereinander (z.B. ADABAS und IMS) stellt auch der Datenmanager nicht her. Wir streben an, unser Konzept so datenbankunabhängig wie irgendmöglich zu beschreiben. Deshalb haben wir so wenig wie möglich auf Eigenschaften einzelner Datenbanksysteme abgehoben, aber immer die im Versicherungsumfeld marktgängigen DB-Systeme wie z.B. DB2, IMS oder ADABAS als Beispiele für denkbare Umsetzungen herangezogen. Techniken, die nur bestimmte Datenbanksystemklassen (z.B. relationale DBMS) zur Verfügung stellen, sollten (wenn sinnvoll) nach unseren Überlegungen lokal, d.h. innerhalb einzelner Datensichten verwendet werden, um die DB-Unabhängigkeit der erstellten Lösung sicherzustellen. © GDV 1999 15 Spezifikation des Datenmanagers Datenmanager III.2. Komponentenstruktur (Masterplan) Die Abbildung auf der nächsten Seite zeigt die einzelnen Komponenten in einer Übersicht (Masterplan). Die folgenden Abschnitte dienen der Erläuterung. III.2.1. Konfigurationskomponenten im Überblick Graphische Editoren für die Erstellung von logischen Datenmodellen (LDM - Editor) physischen Datenmodellen (PDM - Editor) Dabei werden die Definitionen der operationalen Datenbanken/Dateien verwendet, d.h. IMSDBDs, DB2-Table-Definitionen usw. logischen Datensichten (LDaSi - Editor) Dabei wird das zugrundegelegte logische Datenmodell verwendet. physischen Datensichten (PDaSi - Editor) Für jede logische Datensicht wird eine passende physische Datensicht definiert oder eine bereits vorhandene zugeordnet, dabei werden die benötigten Ausschnitte des physischen Datenmodells verwendet. Abbildungen zwischen logischem und physischem Datenmodell Jeder Entität des logischen Datenmodells ist seine physische Repräsentierung zuzuordnen. Zuordnung logischer zu physischer Datensicht Jeder logischen Datensicht wird eine physische Datensicht zugeordnet. Dabei werden auch evtl. notwendige Umsetzungen von Ordnungsbegriffen und sonstigen Parametern definiert. 16 © GDV 1999 Datenmanager Spezifikation des Datenmanagers MetaInformationen Definition operationaler Datenbestände Abbildungs.Editor K o n f i g u r a t i o n log. Datenmodell Abbildungsdefinition phys. Datenmodell LDM-Editor PDM-Editor log.Datensicht Zuordnung phys.Datensicht LDasi-Editor RuntimeBibliothek B u i l d T i m e R u n T i m e PDasi-Editor Operationale Daten Datenmod.Generator Datenmodell-Baustein LDASIGenerator LDasi-Baustein PDASIGenerator Abbildungs/Zuordnungs Generator Transformations-Bausteine Datenhandler-Bausteine Ablaufplan Abbildung I/O-Modul Zuordnung I/O-Modul Datenhandler Anwendungs -Programm DatensichtProzessor I/O-Modul Transformation Ablaufsteuerung I/O-Modul WV/pk96 © GDV 1999 17 Datenmanager Spezifikation des Datenmanagers III.2.2. Buildtime-Komponenten im Überblick Aus den Ergebnissen der Konfigurationsprozesse werden durch Generatoren Bausteine erstellt, die für den Einsatz zur Laufzeit optimiert sind. Die erzeugten Bausteine können damit auf die jeweilige Runtime-Umgebung maßgeschneidert werden. Folgende Generatoren sind erforderlich: LDaSi - Generator PDaSi - Generator erzeugt das Runtime-Modul für die Ablaufsteuerung und die I/O-Module Datenmodell - Generator stellt die Entitäten des LDM und ihre Beziehungen zur Verfügung Abbildungs - bzw. Zuordnungs - Generator enthält die Informationen für die Transformation III.2.3. Runtime-Komponenten im Überblick Datensichtprozessor Der Datensichtprozessor wird von einer Anwendung (d.h.einem Funktionsbaustein oder einer Komponente der Steuerungsebene) unter Angabe einer logischen Datensicht und der zur Ausführung erforderlichen Parameter aufgerufen. Lesender Aufruf (Datenbeschaffung): Zunächst ruft er den Datenhandler zur Datenbeschaffung auf. Dabei werden der LDaSi-Name und die Datensicht-Parameter mitgegeben. Die zurückgelieferten Daten werden gemäß den Definitionen des logischen Datenmodells in den Vorgangsspeicher eingestellt und alle im logischen Datenmodell definierten Beziehungen werden aufgebaut. Dann wird die logische Datensicht abgearbeitet, dabei werden die Daten in der definierten Reihenfolge und im definierten Umfang in die Anwendungsschnittstelle eingetragen. © GDV 1999 19 Spezifikation des Datenmanagers Datenmanager Update-Aufruf (Vorgangsspeicher): Auf Anforderung werden im Vorgangsspeicher neue Versionen von Informationsobjekten oder neue Existenzen von Datenmodell-Entitäten eingefügt oder bereits im Vorgangsspeicher vorhandene Entitäten geändert oder gelöscht. Commit - Aufruf (Update bei Vorgangsende): Der Datenhandler wird unter Angabe eines LDaSi-Namens und der Datensicht-Parameter aufgerufen und liefert einen Verarbeitungs-Status zurück. Datenhandler Zur Datenbeschaffung wird der Datenhandler vom Datensicht-Prozessor unter Angabe einer logischen Datensicht aufgerufen. Die Transformation ermittelt die zugehörige physische Datensicht und führt die erforderlichen Parameterumsetzungen durch. Aus der PDaSi werden die zur Ausführung anstehenden Bausteine (Ablaufsteuerung, I/O-Module) ermittelt. Die Ablaufsteuerung aktiviert die benötigten I/O-Module in der optimalen Reihenfolge. Die I/OModule führen die Datenbank-Zugriffe durch. Dann erfolgt durch die Transformation die Aufbereitung der Daten, d.h. die Umsetzung in logische Entitäten, und deren Übergabe an den Datensicht-Prozessor. Zum Datenbank-Update wird der Datenhandler vom Datensicht-Prozessor unter Angabe einer logischen (Update-)Datensicht aufgerufen. Die Transformation ermittelt die zugehörige physische Datensicht und führt die erforderlichen Parameterumsetzungen durch.Außerdem setzt sie anhand der Abbildungs-Definitionen alle logischen Entitäten in die physischen Datenstrukturen um. Aus der PDaSi werden die zur Ausführung anstehenden Bausteine (Ablaufsteuerung, I/O-Module) ermittelt. Die Ablaufsteuerung steuert die I/O-Module an, die alle zur Änderung anstehenden Daten in die entsprechenden Datenbanken schreiben, dann wird ein Verarbeitungsstatus an den Datensichtprozessor zurückgeliefert. III.2.4. Beispiel der Datenbeschaffung durch einen Anwendungsbaustein Um die Anforderungen und die daraus abgeleiteten Sprachkonstrukte besser nachvollziehen zu können, wird das dynamische Verwendungsmodell des Datenmanagers kurz skizziert. Mit Hilfe der Vorgangssteuerung werden betriebswirtschaftliche Transaktionen abgewickelt. Dabei gelten folgende Prinzipien: 20 Transaktionsbeginn und Transaktionsende werden von der Vorgangssteuerung festgelegt. Die Vorgangssteuerung Vorgangsspeicher. verwaltet unter Nutzung der Datenmanagerfunktionalität den © GDV 1999 Datenmanager Spezifikation des Datenmanagers Die Vorgangssteuerung legt fest, welche Anwendungsbausteine in welcher Reihenfolge ausgeführt werden. Für jeden Anwendungsbaustein existieren eine oder mehrere logische Datensichten, in denen die benötigten Daten beschrieben sind. Zur Datenbeschaffung bzw. Speicherung in einem persistenten Speicher bedient sich der Anwendungsbaustein des Datenmanagers. Die Anwendungsbausteine greifen nicht selbst auf Datenhaltungssysteme zu; sie operieren mit den vom Datenmanager im Vorgangsspeicher zur Verfügung gestellten Daten und liefern Daten an den Vorgangsspeicher zurück. Der dynamische Ablauf des Aufrufs einer Anwendungsfunktion in einem Anwendungsbaustein sieht wie folgt aus: Ein Anwendungsbaustein ruft den Datenmanager auf und übergibt ihm den Namen der logischen Datensicht und die aktuellen Werte in der Datensicht. Die Komponente des Datenmanagers, die die logische Datensicht entgegennimmt, ist der Datensichtprozessor. Er beschafft aus dem Parametersystem den Aufbau der logischen Datensicht und prüft, ob die angeforderten Daten schon im Vorgangsspeicher vorhanden sind. Sind die Daten schon im Vorgangsspeicher vorhanden, werden sie (oder deren Adresse) dem Anwendungsbaustein übergeben und die Datenbeschaffung ist beendet. Sind die Daten nicht im Vorgangsspeicher vorhanden, so wird die logische Datensicht an die Transformation in Datenhandler weitergereicht. Diese beschafft sich aus dem Parametersystem die zur logischen Datensicht gehörige physische Datensicht und die Ablaufplan-ID. Dann transformiert sie die vom Datensichtprozessor erhaltenen aktuellen logischen Zugriffsparameter, soweit erforderlich, in physik-konforme und übergibt diese der Ablaufsteuerung. Diese wertet zunächst die vorhandenen Datenbank-Verfügbarkeitsinformationen aus und lädt, falls alle geforderten Datenbanken verfügbar sind, den erforderlichen Ablaufplan. Der Ablaufplan startet (u.U. an verschiedenen Lokationen und gegen verschiedene Datenbanksysteme) die ihm zugeordneten I/O-Module zur Beschaffung der Daten. Konnten alle Daten beschafft werden, geben die I/O-Module die einzelnen physischen Entitäten an den Ablaufplan zurück. Dieser prüft die Vollständigkeit der Beschaffung und füllt mit den Daten die von der Transformation übergebene physische Datensichtstruktur. Die Transformation entnimmt dem Parameter-System die Abbildungsbausteine: physisches <-> logisches Modell, physische <-> logische Datensicht und Datenmodellstruktur. Hiermit setzt die Transformation die von der Ablaufsteuerung gelieferten Daten in eine Menge logischer Entitäten mit allen Beziehungsinformationen für die geforderte logische Datensicht um und übergibt sie dem Datensichtprozessor. Dieser ergänzt unter Zuhilfenahme der aus dem Parameter-System beschafften logischen Datensichtstruktur den Vorgangsspeicher und teilt der Anwendungsschnittstelle (z. B. dem Funktionsbaustein) die Verfügbarkeit der gewünschten Daten mit. © GDV 1999 21 Spezifikation des Datenmanagers Datenmanager Die Anwendungsbausteine arbeiten mit den im Vorgangsspeicher zur Verfügung gestellten Daten. Damit dieses Verwendungsmodell funktionieren kann, wird also vorausgesetzt, daß ein logisches Datenmodell existiert und die Schnittstellen der Funktionsbausteine auf logischer Ebene beschrieben sind. 22 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Anwendungsschnittstelle lDaSi - ID und aktuelle logische Daten z.B.: lDasi = 4711 Ordbg = 15 Param = xy7z aus Parameterund Regelsystem: lDaSi-Struktur Datensichtprozessor Daten im Vorgangsspeicher ? Ja Datenbeschaffung beendet Nein Zuordnung lDaSi <-> pDaSi Beschaffung Ablaufplan-ID Transformation pDaSi - ID und aktuelle physische Daten z.B.: pDaSi = 1312 Ordbg = 151 Param = abx9 Ablaufsteuerung -----------------------Ablaufplan Laden Ablaufplan --------------------Verfügbarkeitsinformationen Input/OutputModul Input/OutputModul Input/OutputModul Input/OutputModul physische Entität (z.B. Tabelle) physische Entität (z.B. IMSSegment) physische Entität (z.B. ADABASFile) physische Entität (z.B. DB2-View) physische Daten (einzeln, nacheinander) Abb.: Datenbeschaffung, Lesezugriff auf mehrere Datenbanken © GDV 1999 23 physische Entität (z.B. ADABASFile) Input/OutputModul Input/OutputModul Input/OutputModul physische Entität (z.B. DB2-View) physische Entität (z.B. IMSSegment) Datenmanager physische Entität (z.B. Tabelle) Spezifikation des Datenmanagers Input/OutputModul physische Entitäten (einzeln) Ablaufsteuerung -------------------------------Ablaufplan pDaSi Transformation Abbildungsbausteine pDM <-> lDM pDaSi <-> lDaSi Menge aller logischen Entitäten mit Beziehungsinfo für die geforderte lDaSi Datenmodellbaustein Datensichtprozessor lDaSiBaustein logische Entität mit Beziehungsinfo VorgangsspeicherErgänzung lDaSi Anwendungsschnittstelle Abb.: Datenbeschaffung, Rücktransport der Daten aus den Datenbanken 24 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.2.5. Ablaufsteuerung für Veränderungen in der Datenbank Dieser Abschnitt beschreibt den Ablauf im Datenmanager beim persistenten Wegschreiben von den in einem Vorgang neu erfaßten/geänderten/gelöschten Daten. Anwendungsbaustein LDaSi = '4711' Ordnungsbegriff = '15' Parameter = 'xy' Datensichtprozessor LDaSi = '4711' Ordnungsbegriff = '15' Parameter = 'xy' ________________ logische Entitäten Zuordnung LDaSi <-> PDaSi --------------------Abbildung LDM <-> PDM Datenhandler ------------------------------Transformation PDaSi = '1312' Ordnungsbegriff = '151' Parameter = 'abc' ________________ physische Daten Datenhandler ------------------------------Ablaufsteuerung Ablaufplan physische Entität (z.B. IMSSegment) Input/OutputModul Input/OutputModul physische Entität (z.B. DB2View) Input/OutputModul physische Entität (z.B. ADABASRecord) Input/OutputModul physische Entität (z.B. Tabelle) physische Daten (einzeln, nacheinander) Abb.: Update auf mehrere Datenbanken Die Anwendung ruft den Datensichtprozessor mit der Funktion DBCommit auf unter Angabe von © GDV 1999 25 Spezifikation des Datenmanagers Name der LDaSi, Ordnungsbegriffen, weiteren Parametern. Datenmanager Es wird offen gelassen, ob die Commit-Verarbeitung synchron oder asynchron erfolgt. Der Datensichtprozessor stellt die logischen Entitäten aus dem Vorgangsspeicher gemäß der LDaSi zusammen. Er übergibt diese Daten mit den sonst unveränderten Aufrufparametern an die Transformation. Die Transformation führt die Zuordnung der LDaSi in die entsprechende PDaSi durch (incl. Parameter-Umsetzung).und setzt entsprechend den Abbildungsdefinitionen alle logischen Entitäten in physische Daten um. Dann ruft die Transformation mit der Funktion DB-Update die Ablaufsteuerung des Datenhandlers auf und übergibt die physischen Daten sowie Name der PDaSi, Ordnungsbegriffe, weitere Parameter. Die Ablaufsteuerung ermittelt aus dem PDaSi-Namen den zugehörigen Ablaufplan und ruft alle erforderlichen I/O-Module auf. Dabei liefert sie jedem I/O-Modul die von ihm zu verarbeitenden Daten. Die I/O-Module führen die DB-Updates durch. Jedes I/O-Modul gibt eine Statusinformation zurück. Die Ablaufsteuerung interpretiert die gelieferten Statusinformationen der I/O-Module und gibt einen Verarbeitungs-Status an die Transformation weiter. Die Transformation gibt den Verarbeitungs-Status an den Datensichtprozessor weiter. Vom Datensichtprozessor wird der Verarbeitungs-Status nochmals interpretiert und in aufbereiteter Form an die Anwendung zurückgegeben. 26 © GDV 1999 Datenmanager Input/OutputModul Spezifikation des Datenmanagers Input/OutputModul Input/OutputModul Input/OutputModul VerarbeitungsStatus Datenhandler -------------------------------Ablaufsteuerung VerarbeitungsStatus Datenhandler -------------------------------Transformation VerarbeitungsStatus Datensichtprozessor VerarbeitungsStatus Funktionsbaustein (Anwendungsschnittstelle) Abb.: Update, Rückgabe des Verarbeitungsstatus © GDV 1999 27 Spezifikation des Datenmanagers Datenmanager III.2.6. Ablauf für Update des Vorgangsspeichers Dieser Abschnitt beschreibt den Ablauf im Datenmanager beim lokalen Änderungen im Vorgangsspeicher Anwendungsbaustein LDaSi = '4711' ______________ logische Entitäten Datensichtprozessor Vorgangsspeicher logische Entitäten mit ihren Beziehungen Abb.: Update im Vorgangsspeicher Die Anwendung ruft den Datensichtprozessor mit der Funktion Insert, Update oder Delete auf und übergibt den Namen einer LDaSi sowie die zur Bearbeitung anstehenden logischen Entitäten. Der Datensichtprozessor fügt neue logische Entitäten mit ihren Beziehungen in den Vorgangsspeicher ein bzw. ändert oder löscht vorhandene Entitäten. Vom Datensichtprozessor wird ein Verarbeitungs-Status an die Anwendung zurückgegeben. III.3. Konfigurationskomponenten Zur Konfiguration des Datenmanagers gehören die folgenden Komponenten eine Darstellung des logischen Datenmodells, die logischen Datensichten, eine Darstellung des physischen Datenmodells, die physischen Datensichten, die Abbildung des logischen auf das physische Datenmodell, die Zuordnung der logischen zu den physischen Datensichten, 28 © GDV 1999 Datenmanager Spezifikation des Datenmanagers und die Werkzeuge Editor zur Erstellung und Pflege des logischen Modells, Editor zur Erstellung und Pflege des physischen Modells, Editor für die physischen Datensichten, Editor für die logischen Datensichten, Editor zur Erstellung und Pflege der Abbildung des physischen auf das logische Modell und ein Generator zur erstmaligen Datenbankdefinitionen. Erstellung des Modells aus bestehenden III.3.1. Logisches Datenmodell In diesem Abschnitt werden Beschreibungsmittel zur Definition eines minimal notwendigen Sprachschatzes zur logischen Beschreibung von E/R-Modellen benannt. III.3.1.1. E/R-Sprache Die E/R-Sprache ist die Modellierungs- bzw. Beschreibungssprache für das logische Datenmodell. Im Gegensatz zu den Datenbankmodellen (Relationenmodell, Netzwerkmodell, hierarchisches Datenmodell) ist das E/R-Modell ein „semantisches“ Datenmodell. Das semantische Datenmodell übertrifft einerseits das Datenbankmodell an Ausdrucksfähigkeit, abstrahiert andererseits von der technischen Umsetzung in einem speziellen Datenhaltungssystem, ist also insbesondere zugriffspfadunabhängig. Von Bedeutung sind: Semantik als Beziehung zur Realität, d.h. die Verfügbarkeit eines Begriffssystems, das es gestattet, einen relevanten Ausschnitt der Realität (Diskurswelt, Miniwelt) präzise und möglichst umfassend durch Datenobjekte abzubilden. Semantik der Daten in Bezug auf ihre zulässige Verwendung (Manipulation der Daten durch die darauf operierenden Funktionen) III.3.1.2. Begriffserklärungen: Entity, Relationship, ... Ein Entity ist ein abgrenzbares „Objekt“ der Diskurswelt, das ein reales Objekt oder eine gedankliche Abstraktion davon darstellt. Wichtig für die Datenmodellierung von Informationssystemen sind folgende Kriterien: Ein Entity muß wohlunterscheidbar und identifizierbar sein. Ein Entity ist relevant für den Informationsbedarf. Ein Entity wird selektiv durch die Ausprägung seiner bedeutungsvollen Attribute (Eigenschaften/Merkmale) beschrieben. © GDV 1999 29 Spezifikation des Datenmanagers Datenmanager Was im konkreten Fall als Entity definiert wird, hängt vom Zweck des Systems ab. Beispielsweise sind in einem Personalinformationssystem „Angestellte“ Entities des Unternehmens oder in einem Versicherungssystem „Personen“ Entities des Unternehmens. Die für das jeweilige System bedeutungsvollen Merkmale und der relevante Informationsbedarf werden sich unterscheiden, auch wenn es sich in der Realität um denselben Menschen handeln sollte. Gleichartige Entities eines Systems, die durch dieselben bedeutungsvollen Attribute (Eigenschaften/Merkmale) charakterisiert werden, werden zu Entitytypen (E-Typ) oder Entity-Mengen zusammengefaßt. Jedes Entity läßt sich somit eindeutig einem Entitytypen zuordnen. Unterschiedliche Entities, die demselben Entitytypen zuzuordnen sind, werden also durch dieselben Attribute beschrieben, unterscheiden sich aber in den Attributwerten. Eine (Entity-)Relationship ist eine Verknüpfung zwischen zwei (oder mehreren) Entities. Ansonsten gelten sinngemäß dieselben Kriterien wie für ein Entity. Z.B. ist der „Auftrag“ eine Relation zwischen einer Entity „Kunde“ und „Verkauf“, „Heirat“ die Relationship zwischen zwei „Personen“ oder „Halter“ die Beziehung zwischen „Person“ und „Kfz“. Relationen können auch zwischen Relationen oder Relationen und Entities bestehen. Gleichartige Relationen eines Systems, die durch dieselben bedeutungsvollen Attribute (Eigenschaften/Merkmale) charakterisiert werden, werden zu (Entity-) Relationshiptypen (ER-Typ) oder Relationship-Mengen zusammengefaßt. Jede Relation läßt sich somit eindeutig einem Relationshiptypen zuordnen. Unterschiedliche Relationen, die demselben Relationshiptypen zuzuordnen sind, werden also durch dieselben Attribute beschrieben, unterscheiden sich aber in den Attributwerten. Während Enitytypen Attribute zugeordnet sein müssen, können Relationshiptypen neben der Verknüpfungseigenschaft weitere Attribute zugeordnet werden, müssen aber nicht. Z.B. kann das Hochzeitsdatum weiteres Attribut des Relationshiptypen „Heirat“ sein. Wichtig ist die Unterscheidung zwischen der Typ- oder Mengen-Ebene und der Ebene der konkreten Ausprägung. Begriffe auf derselben Ebene sind jeweils: Typ- oder Mengen-Ebene: Entitytyp oder Entity-Menge, Relationshiptyp oder Relationship-Menge, Attribut Beispiel: Entitytyp „Person“ charakterisiert durch die Attribute „Nachname“, „Vorname“, „Personalnummer“ Ausprägungsebene: Entity, Relationship, Attributwert Beispiel: konkrete Person „Schmidt, Willi, 4711“ Da in der Regel aus dem Kontext heraus klar ist, welche Ebene gemeint ist, ist der Sprachgebrauch zuweilen lässig. Anstelle des Begriffs Entity oder Relationship werden auch die Begriffe „Instanz“, „Objekt“, „Entität“ oder „Relation“ verwendet, anstelle der Entity- oder Relationshiptypen oder Mengen auch „Objekttyp“ oder „Klasse“. Das E/R-Modell ist ein Modell, mit dem auf Typ-Ebene fachliche Zusammenhänge semantisch beschrieben werden. Die Sprachmittel zur Modellierung von E/R-Modellen sind also Beschreibungsmittel für die Typ-Ebene. Bei Relationships ist zwischen unterschiedlichen Abbildungstypen von Entitymengen zu unterscheiden: 30 © GDV 1999 Datenmanager Spezifikation des Datenmanagers 1:1-Beziehung: Die 1:1-Beziehung bedeutet, daß jedem Entity der einen Entitymenge höchstens ein Entity der anderen Entitymenge zugeordnet ist und umgekehrt. Sie impliziert nicht, daß für jedes Entity der einen Menge auch tatsächlich ein Entity der anderen Menge existiert. Bsp.: Abteilungsleitung als Relationship zwischen Manager und Abteilung: Dabei wird angenommen, daß jeder Manager höchstens eine Abteilung leitet und umgekehrt jede Abteilung höchstens einen Manager hat. Aber nicht jede Abteilung hat einen Manager und nicht jeder Manager ist Abteilungsleiter. 1:n-Beziehung: Die 1:n-Beziehung bedeutet, daß jeder Entität der ersten Entity-Menge bis zu n Entitäten der zweiten Entity-Menge zugeordnet werden, umgekehrt jedem Entity der zweiten Entity-Menge höchstens 1 Entity der ersten EntityMenge zugeordnet wird. Bsp.: Abteilungszugehörigkeit zwischen Abteilung und Personal: Jeder Abteilung sind bis zu n Personen zugeordnet, jede Person gehört aber zu höchstens einer Abteilung. n:m-Beziehung: Bei der n:m-Beziehung gibt es keine Einschränkungen für die Menge der zulässigen Entity-Paare. Bsp.: Projektmitarbeit zwischen Personal und Projekt: Eine Person kann in mehreren Projekten eingesetzt sein. Einem Projekt können mehrere Personen zugeordnet sein. Zusätzliche wichtige Eigenschaften von Relationships sind: Eine Relationship-Menge kann auf einer einzigen Entity-Menge definiert sein. Bsp.:Heirat als 1:1Beziehung zwischen Person und Person Eine Relationship-Menge kann auf mehr als zwei Entity-Mengen definiert sein. Bsp.: Lieferung als Beziehung zwischen Lieferant, Artikel und Empfänger Es können mehrere Relationship-Mengen auf den gleichen Entity-Mengen definiert sein. Bsp.: Zwischen Personal und Projekt können die 1:n-Beziehung Projektleiter und die n:m-Beziehung Projektmitarbeiter definiert sein. Im Fall einer Spezialisierungs-bzw. Generalisierungsrelation (is_a) ist die eine Entity-Menge Untermenge der anderen. Bsp.: is_a zwischen Manager und Personal III.3.1.3. Anforderungen an die E/R-Sprache aus Sicht des Datenmanagers Zur Festlegung der E/R-Sprache werden folgende Grundprinzipien eingehalten: Es werden logische Datenmodelle für Versicherungs-Informationssysteme beschrieben. Die Konstrukte der E/R-Sprache sind so zu wählen, daß die logischen Datenmodelle vollständig beschrieben werden können. D.h. jedes aus fachlicher Sicht gestellte Problem muß sich im Modell abbilden lassen. Es wird Wert darauf gelegt, daß die Anzahl der Konstrukte so klein wie möglich gehalten wird. D.h. es wird auf Sprachkonstrukte verzichtet, die sich durch andere im Minimalumfang unverzichtbar enthaltene Konstrukte darstellen lassen. © GDV 1999 31 Spezifikation des Datenmanagers Datenmanager Die Konstrukte sollen trotzdem selbsterklärend sein. Darüber hinaus müssen folgende Anforderungen abgedeckt werden: Es muß darstellbar sein, welche „Objekte“ derselben Zeitlogik (Versionsführung) unterliegen bzw. welche nicht. Existenzabhängige und existenzunabhängige „Objekte“ müssen unterscheidbar sein. Unterschiedliche Beziehungstypen sind ausdrückbar. Aufgrund dieser Anforderungen läßt sich eine minimale Liste von Sprachkonstrukten für die semantische Datenmodellierung festlegen. III.3.1.4. Festlegung der Minimal-Konstrukte einer E/R-Sprache Aufgrund der Minimalitätsanforderungen an die festzulegende E/R-Sprache müssen im folgenden nicht für alle möglichen Relationshiptypen eigene Sprachkonstrukte festgelegt werden. Der Begriffe Entität und Relationship müssen nicht unbedingt auseinander gehalten werden. Eine Relationship kann immer als „abhängige Entität“ von mindestens zwei Entitäten dargestellt werden. Eine n:m-Beziehung zwischen zwei Entitäten kann durch Einfügung einer Beziehungsentität, die dann genau diese Ausgangsentitäten als „Parents“ hat, in „abhängige Entitäten“ mit zwei „Parents“ aufgelöst werden. Eine Beziehung auf mehr als zwei Entity-Mengen kann stufenweise aufgelöst werden in Beziehungen mit jeweils zwei Entity-Mengen. Dazu ist zwischen den ersten beiden eine Beziehungsentität einzufügen, die dann in Beziehung zur dritten steht usw. Aufgrund der Minimalitätsanforderung wird deshalb festgelegt, daß zwischen Entity und Relationship nicht unterschieden wird, daß eine Entität maximal zwei Parents haben darf, d.h. zwei Entitäten, von denen sie hierarchisch abhängig ist, daß die Spezialisierungs- bzw. Generalisierungsrelation nicht dargestellt wird. Um Spezialisierungs- bzw. Generalisierungsrelationen zu realisieren, gibt es grundsätzlich zwei Möglichkeiten: entweder sie werden im Modell bereits dargestellt und müssen in der Toolkette dann entsprechend berücksichtigt werden, oder sie werden (erst) im variablen Teil der Implementierung behandelt. Damit sind als Minimalkonstrukte nur für folgende Entitytypen Sprachkonstrukte einzuführen: Entitytyp einer unabhängigen Entität Entitytyp einer abhängigen Entität in 1:n-Beziehung Entitytyp einer abhängigen Entität mit zwei Parents 32 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Entitytyp einer abhängigen Entität mit doppelter Parent-Beziehung Als Erweiterung der klassischen Datenmodellierungskonstrukte kommen zur Darstellung der Zeitlogik das Sprachkonstrukt „Informationsobjekt“ und der Begriff „Existenz“ hinzu. Diese Einschränkung auf die „Minimalkonstrukte“, also der Verzicht auf m:n-Beziehungen und Sub/Supertyp-Beziehungen hat zur Konsequenz, eine höhere Komplexität in den logischen Modelle entsteht, oder die logischen Modelle auf einer abstrakten Ebene gehalten werden müssen. Dann muß im Anwendungsprogramm die in der Konkretisierung steckende Komplexität abgefangen werden. Grundsätzlich ist eine Transformationsleistung zu erbringen: Entweder ist die Auflösung der m:n- und Sub-/Supertyp-Beziehungen oder die Ermittlung der „richtigen“, d.h. konkreten Enitäten zu beschreiben. Dazu Parametersystem an. III.3.1.4.1. Entitytyp einer unabhängigen Entität Police, Person oder Objekt (Kfz, Haus, ...) sind sog. unabhängige Entitäten. Ihre Anlage setzt nicht die Existenz anderer Entitäten voraus. Beispiel einer möglichen Darstellung einer unabhängigen Entität: Alle anderen Entities sind ihrer Natur nach Relationships und damit immer abhängig. Entität 1 Abb.: Darstellung einer unabhängigen Entität III.3.1.4.2. Entitytyp einer abhängigen Entität in 1:n-Beziehung Mit Hilfe der 1:n-Beziehung zwischen zwei Entitäten läßt sich zweierlei ausdrücken: Existenzabhängigkeit Beziehungstyp Die Existenzabhängigkeit (Existenzvoraussetzung) drückt eine hierarchische Abhängigkeit aus, die :1Richtung ist immer eine Muß-Beziehung, die :n-Beziehung eine Kann-Beziehung. Diese Existenzabhängigkeit besagt, daß ein Entity in der abhängigen Entitätenmenge (:n-Richtung) nicht weiterexistieren kann, wenn das zugehörige Entity in der bestimmenden Menge (:1-Richtung) verschwindet. Der Beziehungstyp 1:n besagt, daß jeder Entität in der bestimmenden Menge bis zu n abhängige Entitäten in der abhängigen Entitätenmenge zugeordnet werden können. Beispiel einer möglichen Darstellung einer abhängigen Entität: Zwischen Entität 1 und Entität 2 existiert eine 1:n-Beziehung Entität 1 Entität 1 ist Parent von Entität 2, dadurch wird eine hierarchische Abhängigkeit ausgedrückt (Existenzvoraussetzung) eine 1:1-Beziehung ist implizit enthalten Entität 2 Abb.: Darstellung einer abhängigen Entität © GDV 1999 33 Spezifikation des Datenmanagers Datenmanager III.3.1.4.3. Entitytyp einer abhängigen Entität mit zwei Parents Aufgrund der Minimalitätsanforderung wurde festgelegt, daß eine Entity maximal zwei Parents haben soll. Beziehungen auf mehr als zwei Entity-Mengen und n:m-Beziehungen sollen durch Einführung zusätzlicher Beziehungsentitäten aufgelöst werden. Beispiel einer möglichen Darstellung einer abhängigen Entität mit zwei Parents: es existiert jeweils eine 1:n-Beziehung zwischen Entität1 und -3 sowie -2 und -3 Entität 1 Entität 2 jede Entität 3 muß genau einen Parent vom Typ Entität 1 und genau einen Parent vom Typ Entität 2 haben Entitäten vom Typ Entität 3 entstehen auch bei Auflösung einer n:m-Beziehung zwischen Entität1 und -2 (Beziehungsentität) Entität 3 Abb.: Entität mit zwei Parents III.3.1.4.4. Entitytyp einer abhängigen Entität mit doppelter Parent-Beziehung Als Spezialfall der Entität mit zwei Parents können diese auch vom selben Entitätstyp sein. Dieser Typ entsteht auch bei der Auflösung einer rekursiven n:m-Beziehung Beispiel einer möglichen Darstellung einer abhängigen Entität mit doppelter Parent-Beziehung: Entität 1 ist Parent von Entität 2 Entität 1 jede Entität 2 hat genau zwei Parents vom Typ Entitität 1 es wird eine n:m-Beziehung zwischen Entitäten des Entitätstyps 1 ausgedrückt III.3.1.4.5. Informationsobjekt Entität 2 Abb.: abhängige Entität mit doppelter ParentBeziehung Es gibt Entitäten (und Relationships), die demselben zeitlichen Änderungsdienst unterliegen. Deshalb muß es ein Sprachkonstrukt geben, das eine logische Klammer für solche Entitäten und Relationships darstellt, das Informationsobjekt. Das Informationsobjekt ist also die Zusammenfassung von Entitäten, die derselben Zeitlogik (Versionsführung) unterliegen, und die einen gemeinsamen Änderungsdienst haben. Dadurch kann sehr häufig auf eine Versionsbestimmung verzichtet werden. 34 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Jedes Informationsobjekt enthält genau eine Entität, die von keiner anderen Entität des gleichen Informationsobjekts abhängig ist (Bezeichnung: z.B. Führungsentität). Beispiel einer möglichen Darstellung eines Informationsobjekts: alle Entitäten, die innerhalb eines Informationsobjektes liegen, unterliegen derselben Zeitlogik (Versionsführung); d.h. sie werden alle geändert, wenn eine der beteiligten Entitäten eine neue Version erhält. jedes Informationsobjekt Führungsentität (FE) enthält genau eine die FE ist von keiner innerhalb des Informationsobjektes liegenden Entität abhängig Abb.: Darstellung eines Informationsobjekts III.3.1.5. Beispiel eines E/R-Modells Um die Liste der Minimalkonstrukte anschaulich zu verdeutlichen zu können, wird ein vereinfachtes Beispiel aus dem Versicherungsbereich erläutert. Police Person Pol/Per Objekt Vertrag Per/Obj Gefahr Gef/Per Gef/Obj Abb.: Beispiel eines ER-Modells In diesem Beispiel wird folgender Sachverhalt dargestellt: Eine Police enthält keinen oder mehrere Verträge. Ein Vertrag bezieht sich auf keine oder mehrere abzusichernden Gefahren (Risiken). Ein Vertrag kann mehrere Sonderbedingungen enthalten, z.B. Zu- und Abschläge für bestimmte Personengruppen wie Garagenparker, Wenigfahrer usw. Zwischen Police und Person besteht die n:m-Relationship Pol/Per, z.B. Versicherungsnehmer. © GDV 1999 35 Spezifikation des Datenmanagers Datenmanager Zwischen Gefahr und Person besteht die n:m-Relationship Gef/Per, z.B. Unfall oder Leben. Zwischen Gefahr und Objekt (z.B. Haus oder Kfz) besteht die n:m-Relationship Gef/Obj, z.B. Hausrat- oder Kfz-Versicherung. Zwischen Person und Objekt besteht die n:m-Relationship Per/Obj, z.B. Eigentümer. Eine Gefahr kann Nebengefahren (Gef/Gef) beinhalten, z.B. Glasgefahr im Hausrat. Die Entitytypen (und Relationshipstypen) Police, Vertrag, Gefahr, Pol/Per, Gef/Per und Gef/Obj besitzen dieselbe Zeitlogik-Klammer, ihre konkreten Entities unterliegen demselben zeitlichen Änderungsdienst (Versionierung), befinden sich im selben Informationsobjekt. Person und Per/Obj haben einen eigenen Änderungsdienst und Objekt besitzt wieder eine eigene Versionierung. In diesem vereinfachten Beispiel lassen sich also alle Entitäten drei verschiedenen Informationsobjekten mit den Führungsentitytypen Police, Person und Objekt zuordnen. Dies ist plausibel, denn die Änderung in einer Police muß keine Änderungen der Personendaten bedeuten, eine Änderung der Personendaten (Name, Adresse, ...) bedeutet umgekehrt keine Änderung in Policen, abzusichernden Gefahren usw. III.3.2. Physisches Datenmodell Das physische Datenmodell enthält eine Beschreibung aller Tabellen, Segmente usw, die die Entitäten des logischen Modells abbilden. DB2-Tabellen, IMS-Segmente, ADABAS-Files usw. fassen wir unter dem Begriff „physische Entitäten“ zusammen. Die Beschreibung des physischen Modells umfaßt dabei nur die Informationen, die für die Generierung von physischen Datensichten notwendig sind. Im Regelfall können aus dem physischen Modell keine Datenbanken erzeugt werden, da nicht alle der für diesen Zweck erforderlichen Parameter Bestandteil des physischen Modells sind. Im wesentlichen enthält das physische Datenmodell physische Entitäten mit der folgenden groben Struktur je Entität: Namen Typ (z.B. IMS-.., DB2-..., Adabas-..., Oracle-..., ...) Attribute der physischen Entität Zugriffschlüssel (primary, alternate keys) Beziehungen (Beziehungen der physischen Entitäten untereinander) III.3.3. Abbildung zwischen logischem und physischem Modell Bei dieser Abbildung werden logische Entitäten als Einheiten betrachtet und als Ganzes einer physischen Entität zugeordnet. 36 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Grundsätzlich muß zwischen zwei verschiedenen Aufgabenstellungen unterschieden werden: der Abbildung eines aus einer fachlichen Modellierung gewonnenen logischen Datenmodells auf ein vorhandenes, nicht zu änderndes physisches Modell und der Konstruktion und Definition eines neuen (oder zu ändernden) physischen Modells aus dem logischen Modell. Im ersten Fall besteht nur die Möglichkeit des Modellabgleichs und der Zuordnung der vorhandenen physischen Strukturen zu den Entitäten des logischen Modells. Ob das zu realisierte System dann performant läuft, hängt dann davon ab, ob die Punkte, die bei der Konstruktion des physischen Modells die entscheidende Rolle spielen (s.u.), zu dem vorhandenen physischen Modell passen. Im zweiten Fall der teilweisen oder vollständigen Neugestaltung des physischen Systemes aufgrund eines neuen logischen Designs kann man zunächst mit der Grundannahme einer 1:1-Abbildung von logischen Entitäten auf physische ausgehen und später gegebenenfalls auf der Grundlage der folgenden Konstruktionsregeln die entstandenen physischen Entitäten. Dabei sind folgende Punkte zu berücksichtigen: Typ des Zieldatenbanksystems Mächtigkeit der Zieldatenbanksysteme Datenvolumina und -verteilung Zugriffshäufigkeiten Antwortzeitanforderungen regionale Datenverfügbarkeitsanforderungen reale Besetzungshäufigkeiten von Attributen und Relationen Diese Anforderungen werden teilweise im Rahmen der Möglichkeiten des Zieldatenbanksystems „unsichtbar“ für das Anwendungsprogramm / für den Datenmanager gelöst. Nachdem der Datenmanager potentiell die unterschiedlichsten Datenbanksysteme unterstützen soll, werden jedoch die Anforderungen an die Modelltransformation kaum verringert. In Anbetracht der hohen Performanzanforderungen an Versicherungsanwendungen kommt der Ausnutzung der realen Möglichkeiten der Zieldatenbanksysteme hohe Bedeutung zu. © GDV 1999 37 Spezifikation des Datenmanagers Datenmanager III.3.3.1. Abbildungsregeln Der Abbildungsvorgang stellt einen kreativen Entwicklungsschritt dar, und ist daher nicht durch Generierung zu erledigen. Die Rücksichtnahme auf effiziente Abbildungsmöglichkeiten des Zieldatenbanksystemtyps ist essentiell. Dabei wird unterschieden in: hierarchische DBMS (z.B. IMS-DB) Netzwerk-DBMS (z.B. UDS) relationale DBMS (z.B. Oracle, DB2) relationales DBMS mit hierarchischen Erweiterungen (z.B. Adabas) indizierte Dateien (z. B. VSAM, ISAM) Folgende zusammenfassende Tabelle zeigt die wichtigsten Abbildungsregeln: ERElement hierarchis Netzwerk relational ch relational indizierte mit Dateien hierar. Erw. unabhängi- Segment ge Entität Record- Tabelle File Datei Type abhängige im Set-Type Tabelle n-File Datei oder Entität Segment oder im oder in oder PE in der Datei (1:n- der n- Record- Tabelle der bzw. MU der n- n-Entität in der 1- Entität Beziehung) Entität oder Type der Child- n-Entität File Segment des 1Objekts abhängige Child- Record- Entität mit Segment Type mit PE bzw. zwei unter dem zwei Set- MU in der Parents n- oder m- Types n- oder Segment Tabelle File oder Datei m-File III.3.3.2. Optimierungskonstrukte Neben der rein logischen Abbildungsmöglichkeit im Ziel-DBMS ergeben sich aus der Anwendungsstruktur und aus den realen Dateninhalten des Produktionssystems Optimierungsbedarfe. 38 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.3.2.1. 1:1 - Abbildung Einer Entität des logischen Datenmodells ist genau ein Objekt des physischen Datenmodells (ein IMSSegment, eine DB2-Tabelle usw.) zugeordnet. III.3.3.2.2. Aggregation Mehrere Entitäten des logischen Datenmodells werden zu einer Einheit des physischen DM’s zusammengefaßt. Typ 1: Zusammenfassung von Entitäten einer Version. Typ 2: Zusammenfassung von Entitäten mehrerer Versionen. Achtung: Im Regelfall ergeben sich daraus zahlenmäßige Einschränkungen (z.B. nur x Vertreter pro Vertrag möglich). III.3.3.2.3. Vertikale Partitionierung Eine Entität des logischen DM wird auf mehrere Einheiten des physischen DM’s verteilt, indem eine Zuordnung auf Attributsebene erfolgt. Beispiel: getrennte Speicherung von Attributen mit seltenen Zugriffen III.3.3.2.4. Horizontale Partitionierung Eine Entität des logischen DM wird auf mehrere Einheiten des physischen DM’s verteilt, indem eine Zuordnung auf Schlüsselebene erfolgt. Beispiel: Regionalisierung, Spartenordnung von Policen III.3.3.2.5. Redundanz Entitäten (oder Teile davon) werden physisch redundant gespeichert, d.h. es erfolgt eine parallele Zuordnung zu mehreren physischen Einheiten. Zweck: Vereinfachung des Zugriffs auf Daten für häufige Zugriffskombinationen. Beispiel: Speicherung von expandierten Textbausteinen in Archivdatenbanken oder Drucksteuerdateien. Achtung: Redundanz erfordert immer organisatorische Einschränkungen oder zusätzliche Funktionalität zwecks Erhaltung der Konsistenz. © GDV 1999 39 Spezifikation des Datenmanagers Datenmanager III.3.3.3. Transformationsdokumentation Wie bereits festgehalten, stellt die Transformation vom logischen auf das physische DM einen kreativen Designakt dar, der Stand heute nicht automatisierbar ist. Neben dem Hauptergebnis physisches Datenmodell ist die Transformation selbst als wichtiges Ergebnis festzuhalten, da diese Abbildungen einen wesentlichen Input für die automatisierte Zuordnung von logischer auf physische Datensichten darstellen: Logische Entität/Attribut x ist implementiert in physischem Objekt y, möglicherweise mit Selektionskriterium (bei Partitionierung). Relation x ist implementiert in Objekt/File/Set/Datei/Segment/Attribut y. Redundanz entsteht dadurch, daß eine logische in mehrere physische Entitäten abgebildet wird. Der Datenmanager muß die Konsistenz gewährleisten. Dazu sind funktionale Abbildungsregeln festzulegen. Diese Dokumentation hat zwecks maschineller Weiterbearbeitung im Parametersystem zu erfolgen. Die Konsistenz zwischen dem logischen und physischen Modell ist sicherzustellen. Hilfestellung hierbei gibt die ausschließliche Verwendung der obenbeschriebenen Konstruktionsregeln zur Erstellung physischer Entitäten. III.3.4. Logische Datensicht III.3.4.1. Schnittstellenbeschreibung durch Datensichten Ein wichtiges Ziel der VAA ist die Beschreibung einer komponentenbasierten Architektur, bei der die Schnittstelle der einzelnen Bausteine auf logischer Ebene durch sog. „Datensichten“ beschrieben sind und somit eine Abstraktion von technischen Gegebenheiten gewährleistet wird. Die Umsetzung der logisch spezifizierten Funktionalität an der Schnittstelle in technische Programmaufrufe und physische Datenbeschaffung muß durch Mittel des technischen Rahmenwerks, wie es von der VAA definiert wird, bewerkstelligt werden. Dadurch wird die Integrationsfähigkeit von Funktionsbausteinen gewährleistet und für die Anwendungsentwickler wesentlich erleichtert. Um die an der Anwendungsschnittstelle bereitzustellenden Daten logisch beschreiben zu können, bedarf es geeigneter Beschreibungsmittel („Datensichtsprache“), die folgende Darstellungsmöglichkeiten bietet: Beschreibung, welche Datentypen (Festlegung des Modellausschnitts) und welche Datenmengen (Selektionsbedingungen) an der Anwendungsschnittstelle zur Verfügung gestellt werden sollen Beschreibung der Anordnung der Daten bzgl. Reihenfolge, Gruppierung, Hierarchie, Alternativen, ... (Struktur der Daten) Einen guten Anhaltspunkt zur Definition einer solchen Datensichtsprache liefert die JacksonEntwurfsmethodik mit ihren Beschreibungsmitteln. Die Jackson-Entwurfsmethode verfolgt Ziele, die 40 © GDV 1999 Datenmanager Spezifikation des Datenmanagers ebenso durch die VAA-Anwendungsarchitektur erreicht werden sollen. Die wichtigsten Ziele der Jackson-Methode sind: Die Programmstruktur soll die Problemstruktur widerspiegeln. Entwerfen heißt Struktur beschreiben und ermitteln. Programmstrukturen sollen auf Datenstrukturen basieren; Programmkomponenten sollten 1:1 mit den Datenkomponenten verbindbar sein. Die Kernthese von Jackson ist, daß sich die folgenden 4 Komponententypen sowohl in den Datenstrukturen als auch in den Programmstrukturen zeigen: atomare Komponenten / einzelne Anweisungen (Funktionsmodule) zusammengesetzte Komponenten Sequenz 2 oder mehr je einmal vorkommende, aufeinanderfolgende Teile Sequenz 1 Teil, welches 0 oder mehrmals auftritt Selektion 2 oder mehr Teile, von denen genau eines auftritt Jackson macht für diese Komponenten auch einen Darstellungsvorschlag. Jedes Programm (für eine serielle Maschine) kann durch eine Folge von Sequenzen, Iterationen und Selektionen ausgedrückt werden. Die VAA stützt sich auf die Jackson-Thesen, nutzt dessen Komponentenstrukturierung und orientiert sich für die Symbolik an den Jackson-Vorschlägen, die natürlich nur Beschreibungsmöglichkeiten darstellen. III.3.4.2. Definition von Datensicht und Datensichtsprache Eine Datensicht beschreibt 1. einen bestimmten Ausschnitt von Entitäten aus dem logischen Datenmodell 2. die zu Treffern führenden Selektionsbedingungen (Datensicht-Selektion) 3. die von der Funktion angeforderte Anordnung dieser Treffer (Datensicht-Struktur) 4. Funktionalität zum Aufbau der Anwendungsschnittstelle Die Datensicht-Selektion beschreibt die Regeln und Bedingungen, mit welchen die Treffer einer Datensicht bestimmt werden. Es gibt vier Arten von Selektionsbedingungen: Selektionsbedingungen, die sich auf das Vorhandensein von Entitäten oder Pfaden beziehen Selektionsbedingungen, die sich auf Attributswerte beziehen und dadurch den Umfang der Ausgabemenge definieren (Mengendefinitionen: Attributswert =, >, <, UND und ODERSchachtelungen) Selektionsbedingungen, die sich auf bestimmte Eigenschaften der Entitäten/Instanzen in Bezug auf andere Instanzen der Entitymenge beziehen (z.B. Versionsbedingungen: aktuelle, neueste, älteste, ... oder Zeitbedingungen: Vorgänger, Nachfolger, ...) © GDV 1999 41 Spezifikation des Datenmanagers Datenmanager Selektionsbedingungen, die sich auf die Menge aller diese Entitymenge betreffenden Entitäten beziehen (z.B. MINDESTENS-EIN, ALLE, NICHT-ALLE ... Entitäten, die eine bestimmte Eigenschaft besitzen) Die Datensicht-Struktur beschreibt die Anordnung (Reihenfolge, Gruppierung und Hierarchie, Alternativen) der durch die Datensicht-Selektion ermittelten Instanzen von Entitytypen (Treffern), wie sie von der Anwendung angefordert wird. Mit Hilfe der Datensichtsprache wird eine Datensicht auf logischer Ebene formuliert. III.3.4.3. Anforderungen an eine Datensichtsprache Aufgrund der Definition der Datensicht und der Beschreibung ihres Verwendungszwecks ist dann klar, welche Anforderungen an eine Datensichtsprache gestellt werden: Die Reihenfolge, in der Instanzen bestimmter Entitytypen nach der Selektion geliefert werden, muß definiert werden können. Parameter, die für die Selektion von Entitäten entscheidend sind und die aus Anwendungsprogrammen mitgegeben werden, müssen festgelegt werden können. Für die Selektion von Instanzen von Entitytypen müssen Attributsbedingungen formuliert werden können. Die Sprachsyntax muß sicherstellen, daß die Wege, die zwischen Entitäten zurückgelegt werden sollen, vorgegeben werden können. Die Sprache muß Möglichkeiten für die Zeitnavigation zwischen Informationsobjekten und für die Zeitnavigation zwischen Entitätsversionen bereitstellen. Die Sprache muß die Bildung von ‘UND-’ und ‘ODER-’Konstrukten zwischen Attributsbedingungen und Navigationswegen unterstützen, ebenso die Verschachtelung dieser Konstrukte. Wie bei der Festlegung der Konstrukte der E/R-Sprache gilt auch hier eine entsprechende Minimalanforderung. III.3.4.4. Minimal-Konstrukte der Datensichtsprache III.3.4.4.1. Struktur-Elemente zur Beschreibung der logischen Datensicht Eine Datensicht selbst wird gekennzeichnet durch: ihren logischen Namen einen Verweis auf das logische Datenmodell einen Verweis auf die zugehörige Anwendungsschnittstelle Eine mögliches Darstellungsymbol einer Datensicht ist der Datensicht-Label: 42 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Datensicht z.B. Doku-Dasi: Datensicht, die die Daten zum Ausdruck eines Versicherungs-Scheins bereitstellt. Die wesentlichen Elemente, aus denen sich eine Datensicht zusammensetzt sind die Entitätsmengen. Jedem Element der Ausgabestruktur kann eine Entity-Menge des logischen Datenmodells zugeordnet werden. (Zur Laufzeit bestimmt die Menge der den Selektionsbedingungen entsprechenden Daten den Umfang der Ausgabemenge.) Dabei muß zwischen den Ausgabeentitätsmengen (AEM), die Daten in der Ausgabestruktur der Anwendung beschreiben, und Datensichtentitäten (DSE), die nur innerhalb der Datensicht zur Navigation zu den Daten oder zur Beschreibung von Selektionsbedingungen relevant sind, unterschieden werden. Mögliche Darstellungssymbole für diese Konstrukte sind: Ausgabeentitätsmenge (AEM)alle Daten, Schnittstelle werden Datensichtentität (DSE) Daten, die Schnittstelle werden die nicht an die übergeben an die übergeben Die Ausgabestruktur des Datenmanagers entspricht der Ausgabestruktur der Anwendung. Damit muß die Datensichtsprache folgende Elemente abdecken: Hierarchie Sequenz Alternative (Case-Konstrukt) Iteration Mit diesen Elementen wird die äußere Struktur einer Datensicht beschrieben, sie beziehen sich jeweils auf die Gesamtheit der jeweiligen Entität (AEM oder DSE). Mögliche Darstellungssymbole für diese Konstrukte Hierarchie, Sequenz, Alternative (CaseKonstrukt) und Iteration sind: © GDV 1999 43 Spezifikation des Datenmanagers Hierarchie Sequenz Datenmanager Eine Sequenz wird z.B. durch nebeneinander angeordnete Entitäten (AEM) in der Ausgabestruktur interpretiert. 44 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Alternative (Case-Konstrukt) Die Abarbeitung des Case-Konstruktes erfolgt von links nach rechts, wobei die zuerst zutreffende Alternative ausgewählt wird, die danach folgenden bleiben unberücksichtigt (exclusives Oder). Iteration Aufgrund der oben definierten Sprachkonstrukte zeigt das folgende Beispiel eine AEM-Struktur mit einer Sequenz aus zunächst drei AEM, wobei die zweite AEM eine Hierarchie und die dritte ein Case-Konstrukt enthält: Die beiden folgenden Datensichten „Dasi XY“ und „Dasi YZ“ unterscheiden sich in der Frage, ob der Vertrag zur Ausgabestruktur gehört oder nicht zur Ausgabestruktur gehört und nur zur Navigation zu den abhängigen Entity-Mengen Gefahr und Sonderbedingungen-Vertrag (SobVer) benötigt wird: © GDV 1999 Abb.: Sequenz und Case-Konstrukt 45 Spezifikation des Datenmanagers Datenmanager Datensicht nur mit AEMs Dasi XY Police Vertrag SobVer Gefahr Datensicht mit AEMs und DSEs Dasi YZ Police Vertrag Gefahr Vertrag SobVer Die folgende Datensicht „Dasi XZ“ zeigt eine Iteration mit AEM „Agentur“ und DSE „Ag-bez“: Dasi XZ Agentur Ag-bez Agentur III.3.4.4.2. Strukturierung innerhalb einer AEM Die folgenden Elemente betreffen die Strukturierung der Ergebnismengen. Sortierung Begrenzung der Ausgabe 46 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Erläuterung: Auf ein Sprachelement für Gruppenwechsel wird verzichtet, weil es sich hier um kein Minimalkonstrukt handelt. Da auf unterster Ebene immer konsolidiert (Eliminierung von Mehrfachtreffern) wird, benötigt man auch kein eigenes Beschreibungselement dafür. III.3.4.4.3. Selektionsbedingungen Wie bei der Definition einer Datensicht beschrieben wurde, ist zwischen vier unterschiedlichen Arten von Selektionsbedingungen in der Datensicht zu unterscheiden. Diese werden im folgenden behandelt. III.3.4.4.3.1. Selektionsbedingungen durch Pfade Pfade sind durch folgende Eigenschaften gekennzeichnet: Pfade zeigen gerichtete Verbindungen, die die Ausgabeentitäten bestimmen. Auf einem Pfad können mehrere Datenmodellentitäten angegeben sein Ein Pfad kann sich aus mehreren Elementarpfaden zusammensetzen. (Ein Elementarpfad beschreibt die direkte gerichtete Beziehung von Entitäten.) Zwischen zwei Ausgabeentitäten können mehrere Pfade angegeben werden, die mit UND bzw. ODER verknüpfbar sind. Das UND-Konstrukt liefert eine Durchschnittsmenge als AEM, während das ODER-Konstrukt eine Vereinigungsmenge als AEM liefert. Schachtelungen von UND- und ODER-Konstrukten sind möglich. © GDV 1999 47 Spezifikation des Datenmanagers Datenmanager Mögliche Darstellungen: UND Schachtelung von UND/ODER ODER Police Police Vertrag Vertrag Gefahr Pol/Per Gefahr Pol/Per Gef/Per Gef/Per Person Person In den obigen Beispielen wurden jeweils Pfade beschrieben, die die Navigation von einer Entität zu einer Ausgabeentität beschreiben (Navigationspfad). Will man Bedingungen formulieren, wird von der Ausgabeentität ausgehend eine Bedingung überprüft (Bedingungspfad). Im folgenden Beispiel erfolgt eine Navigation von „Police“ über „Vertrag“ zur „Gefahr“; Die „GefahrObjekt“ Beziehung (Gef/Obj) stellt eine Bedingung für die AEM „Gefahr“ dar: Police NavigationsPfad Vertrag Gefahr Gef/Obj BedingungsPfad Durch den Bedingungspfad von Gefahr zu Gef/Obj wird erreicht, daß nur solche Gefahren ausgewählt werden, bei denen bestimmte Bedingungen, die sich auf die Entität Gef/Obj beziehen, erfüllt sind. 48 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Bedingungen können genauso durch UND und ODER verknüpft werden und Schachtelungen von UND und ODER in Bedingungen sind möglich. Beispiele: UND ODER VTPlan Police Police SobVer SobVer VTP/Ve VTP/Ve Vertrag Vertrag Gefahr Gefahr Schachtelung von UND und ODER © GDV 1999 49 Spezifikation des Datenmanagers Datenmanager Nun muß noch unterschieden werden, ob die Pfade dadurch zustande kommen, daß Entity-Mengen im logischen Datenmodell zueinander in Beziehung stehen (Modellpfad), oder dadurch, daß eine Beziehung zwischen mehreren Versionen derselben Existenz bestehen (Zeitpfad). Dieser Unterschied läßt sich z.B. durch andere Darstellung der Kanten ausdrücken: Modellpfad Zeitpfad Zusammenfassung unterschiedlicher Pfadtypen in Datensichten: Navigationspfad Ein Navigationspfad ist ein Pfad, der von einer Ausgabeentität über beliebig viele Datensichtentitäten zu einer Ausgabeentität führt. Bedingungspfad Ein Bedingungspfad ist ein Pfad, der von einer Ausgabeentität ausgeht. Elementarpfad Ein Elementarpfad beschreibt die direkte gerichtete Beziehung von Entitäten. Modellpfad Ein Modellpfad ist ein Elementarpfad, bei dem die direkte gerichtete Beziehung zwischen zwei Entity-Mengen im logischen Datenmodell besteht. Zeitpfad Ein Zeitpfad ist ein Elementarpfad, bei dem die direkte gerichtete Beziehung zwischen mehreren Versionen derselben Existenz besteht. III.3.4.4.3.2. Feldbezogene Selektionsbedingungen (Attributsbedingungen) Attributsbedingungen sind durch folgende Eigenschaften gekennzeichnet: Attributsbedingungen können für Entitäten des logischen Datenmodells formuliert werden. Zulässige Vergleichs-Operatoren sind: =, >, <, >=, <=, N=. Attributsbedingungen können mit 'UND' und 'ODER' verknüpft werden. Attributsbedingungen können sich auf mehrere Felder beziehen. Zulässige Vegleichs-Operanden sind: Literal, Parameter, Attribut. 50 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Schachtelungsmöglichkeiten der Attributsbedingungen: UND- und ODER- Klammern können geschachtelt werden. III.3.4.4.3.3. Entitätsbezogene Selektionsbedingungen Bei den Entitätsbezogenen Selektionsbedingungen muß zwischen Versionsbedingungen und Zeitbedingungen unterschieden werden: Versionsbedingungen Versionsbedingungen können für die der Ausgabeentität oder die einer Station des Pfades zugeordnete Entität des logischen Datenmodells formuliert werden. Zulässige Versionsbedingungen sind: Aktuell Neueste Älteste Stichtag Version Zeitbedingungen Zeitbedingungen können bei Zeitpfaden verwendet werden. Zeitbedingungen formulieren Bedingungen, die Versionen einer bestimmten Entität in Beziehung setzen. Voraussetzung ist, daß die zugeordneten Entitäten des logischen Datenmodells identisch sind. Es gibt folgende Bedingungen: Identität Vorgänger Nachfolger alle Nachfolger III.3.4.4.3.4. Mengenbedingungen Mengenbedingungen für eine AEM beziehen sich auf die Menge aller von dieser AEM abhängigen DSEs, die sich auf dem Bedingungspfad befinden, d. h. sie werden für Bedingungspfade formuliert. Es gibt folgende Mengenbedingungen: MINDESTENS-EINER ALLE NICHT-ALLE KEINER © GDV 1999 51 Spezifikation des Datenmanagers Datenmanager III.3.4.4.4. Beispiele von Datensichten III.3.4.4.4.1. Beispiel für einen AEM-Baum ohne Verzweigung Datenmodell: Instanzen: Pol2 Pol1 Pol V V1 V3 V2 V4 V7 V6 V5 G G1 Datensicht: G2 G3 G4 G5 G6 G7 G8 Treffer: Pol1 Pol V1 G1 V2 G2 G3 V3 G4 G5 G6 V Pol2 V4 G7 V5 G8 V6 V7 G Bei diesem Beispiel werden ausgehend von einem Pol alle zugehörigen V ermittelt, d. h. zu Pol1 sind das V1, V2 und V3 und zu Pol2 sind das V4, V5, V6 und V7. Dann werden zu jedem V die zugehörigen G ermittelt. 52 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.2. Beispiel für einen AEM-Baum mit Verzweigung Datenmodell: Instanzen: Pol2 Pol1 Pol V4 V6 V5 V7 SOBV63 V V1 G V3 V2 G7 SOBV51 G8 SOBV62 SOBV61 SOBV SOBV31 G3 G1 G2 SOBV12 G4 G6 G5 SOBV11 Datensicht: Treffer: Pol1 V1 Pol SOBV11 SOBV12 G1 G2 V V2 G3 V3 SOBV31 G4 G5 G6 SOBV G Pol2 V4 G7 V5 SOBV51 G8 V6 SOBV61 SOBV62 SOBV63 Bei diesem Beispiel werden ausgehend von V7 einem Pol alle zugehörigen V ermittelt, d. h. zu Pol1 sind das V1, V2 und V3 und zu Pol2 sind das V4, V5, V6 und V7. Dann werden zu jedem V zuerst (Abarbeitung der Datensicht von links nach rechts) die zugehörigen SOBV und dann die zugehörigen G ermittelt. © GDV 1999 53 Spezifikation des Datenmanagers Datenmanager III.3.4.4.4.3. Beispiel für einen AEM-Baum mit einem CASE-Konstrukt Datenmodell: Instanzen: Pol1 Pol2 P Pol1P11 Pol Pol1P21 Pol1P31 PolP SOBV63 V Pol2P11 Pol2P41 G V7 V6 V5 V4 V3 G7 SOBV51 V1 SOBV62 SOBV61 G8 Pol2P42 P1 SOBV V2 Pol2P51 P2 SOBV31 G3 P3 P4 P5 G2 G1 G4 G5 G6 SOBV12 SOBV11 Datensicht: Treffer: Pol1 V1 G1 G2 Pol V2 G3 V3 G4 G5 G6 V PolP Pol2 G SOBV P Pol1P11 P1 Pol1P21 P2 Pol1P31 P3 V4 G7 V5 G8 V6 SOBV61 SOBV62 SOBV63 Bei diesem Beispiel werden ausgehend von einem Pol alle zugehörigen V und alle zugehörigen PolP ermittelt, d. h. zu Pol1 sind das sowohl V1, V2 und V3 als auch Pol1P11, Pol1P21 und V7 Pol2P11 P1 Konstruktes bei V werden zunächst die zugehörigen G ermittelt, Pol2P41 P4 gibt es solche, bleiben die SOBV unberücksichtigt: Zu V1 werden Pol2P42 P4 Pol2P51 P5 Pol1P31. Analoge Ermittlung gilt für Pol2. Wegen des CASE- deshalb nur G1 und G2 ermittelt. Nur wenn wenn es keine G gibt ,werden SOBV ermittelt, zu V6 gibt es deshalb SOBV61, SOBV62 und SOBV63. Zu den PolP werden alle P ermittelt. 54 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.4. Beispiel für eine AEM, deren Instanzen sortiert werden (mit Festlegung der maximal auszugebenden Instanzen) Datenmodell: Instanzen: Pol1 P Pol Pol2 Pol1P11 Pol1P21 PolP V4 V7 V6 V5 Pol1P31 V V2 Pol2P11 SOBV63 G7 V3 KZA=3 SOBV51 KZA=1 V1 SOBV61 G8 KZA=2 Pol2P41 G Pol2P42 P1 SOBV SOBV62 Pol2P51 P2 SOBV31 G3 P3 G2 P4 G1 P5 G4 G5 G6 SOBV12 SOBV11 Datensicht: Treffer: Pol1 Pol PolP P V Pol2 V1 G1 V2 G3 V3 G4 V4 G7 V5 G8 V6 SOBV63 SOBV61 V7 MX:1 G SD:KZA MX:2 SOBV MX:1 bzw. MX:2 beschränkt die Ausgabemenge auf 1 zw. 2 Treffer. SD:KZA gibt das Sortierkriterium und die Sortierreihenfolge (D=descending) an. © GDV 1999 55 Spezifikation des Datenmanagers Datenmanager III.3.4.4.4.5. Beispiel für ein Schnittmengen-Konstrukt Datenmodell: Instanzen: Pol1 P1 P2 P3 P Pol V V1 V2 PolP Pol1P3 Pol1P1 Pol1P2 G G1 GP G2 G2P2 G1P1 Datensicht: Treffer: Pol1 Pol P1 P2 PolP V G GP P P3 erscheint nicht in der Ergebnismenge, weil P3 nicht über den Weg V > G > GP erreichbar ist (P3 ist von keinem GP erreichbar). 56 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.6. Beispiel für eine Schachtelung von einem SchnittmengenKonstrukt in einem Vereinigungsmengen-Konstrukt Datenmodell: Instanzen: Pol1 Pol2 Pol3 P Pol V2 V1 V3 O1 V4 O2 O3 O4 O5 V O G G1 G2 G3 G4 GP G4O4 GPO P1 P3 P2 GO G2P1 G3P2 G4P3 G3O1 G2O2 G1O12 G1O11 G3O3 G1O12O3 G1O12O1 G4P3O5 GOO G3P2O4 G2P1O3 G2P1O1 Datensicht: Treffer: Pol Pol1 G1 G3 V Pol2 G G GP G4 Pol3 GO GO GPO GOO O O GO G Ausgangsbasis Pol1: Von Pol1 zu V1 (über V2 gibt es keine Treffer, weil V2 aus keine Beziehungen zu G bestehen). Von V1 zu G1 und G2. Von G1 zu G1O11 und G1O12. Von G1O11 zu O1, ebenso von G1O12 zu O1. © GDV 1999 57 Spezifikation des Datenmanagers Datenmanager Von G1O11 aus ist kein GOO erreichbar, aber von G1O12 sind G1O12O1 und G1O12O3 erreichbar. Von G1O12O1 aus kann wiederum O1 erreicht werden. Deshalb ist O1 eine ‘Zwischenlösung’. Von O1 aus sind G1O11 und G1O12 erreichbar und von G1O11 aus gelangt man zu G1.Damit ist G1 ein Treffer, der zu Pol1 gehört und über den rechten Pfad des Vereinigungskonstruktes erreicht wird. Von Pol1 aus gelangt man über V1 zu G2, von G2 zu G2P1, von G2P1 zu G2P1O3, von G2P1O3 zu O3, von O3 zu G3O3 und G3O3 zu G3. G4 wird über den linken Pfad erreicht. 58 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.7. Beispiel für eine Schachtelung von einem VereinigungsmengenKonstrukt in einem Schnittmengen-Konstrukt Datenmodell: Instanzen: Pol1 Pol2 Pol3 P Pol V2 V1 V3 O1 V4 O2 O3 O4 O5 V O G G1 G2 G3 G4 GP G4O4 GPO P1 P2 P3 GO G2P1 G3P2 G4P3 G3O1 G2O2 G1O12 G1O11 G3O3 G1O12O3 G1O12O1 G4P3O5 GOO G3P2O4 G2P1O3 G2P1O1 Datensicht: Treffer: Pol1 G1 G3 Pol Pol2 V Pol3 G G GP GO GO GPO GOO O O GO G G4 ist nicht über den rechten Pfad erreichbar und deshalb nicht in der Ergebnismenge. © GDV 1999 59 Spezifikation des Datenmanagers Datenmanager III.3.4.4.4.8. Beispiel für einen Bedingungspfad Datenmodell: Instanzen: Pol1 V3 V1 Pol V2 O1 O2 O V G3 G1 G G4 G5 G6 O3 G7 G2 GO G1O1 G2O1 G3O2 G4O3 G5O1 G6O3 G7O2 KZ=5 KZ=8 KZ=5 KZ=8 KZ=2 KZ=6 KZ=7 Datensicht: Treffer: Pol1 Pol V2 G4 V3 G5 G6 O GO G7 KZ=8 G V G Zuerst werden die Verträge ermittelt, bei denen für die abhängigen GOs gilt: KZ=8. Derartige Verträge sind V2 und V3. Zu diesen werden jeweils alle Gefahren ermittelt. 60 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.9. Beispiel für ‘NICHT-ALLE’ Datenmodell: Instanzen: Pol1 Pol V1 V2 V O G G3 G1 G4 G5 G2 O1 O2 O3 O4 GO G1O1 KZ=3 Datensicht: G1O2 KZ=4 G2O3 KZ=5 G3O1 KZ=3 G3O2 KZ=3 G4O4 KZ=3 Treffer: Pol1 V1 Pol G1 G2 V2 G5 V GO KZ= 3 NICHT-ALLE G G1 gehört zur Ausgabemenge, weil nicht bei allen GOs gilt: KZ=3 (G1O2 hat KZ=4) © GDV 1999 61 Spezifikation des Datenmanagers Datenmanager III.3.4.4.4.10. Beispiel für ‘KEINER’ Datenmodell: Instanzen: Pol1 Pol V V1 V2 V3 O G G1 GO G1O1 G2 G3 KZ = KFZ Datensicht: G1O2 KZ = BUS G4 G5 O1 G2O1 KZ = KFZ G3O3 KZ = BUS G4O3 KZ = LKW O3 G4O2 KZ = LKW Treffer: Pol1 Pol O2 V1 V2 V3 G3 G4 G5 V GO KZ= KFZ KEINER G Über V1 gibt es kein G, weil sowohl bei G1O1 KZ=KFZ als auch bei G2O1 KZ=KFZ gilt. Über V2 gelangt man zu genau G3, dazu gibt es genau ein GO bei dem die Bedingung efüllt ist. Ähnliches gilt für V3 mit G4. Ebenso für V3 mit G5, weil über G5 keine GO erreichbar sind und folglich auch keine GO mit KZ=KFZ. 62 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.4.4.4.11. Beispiel für eine Versionsentwicklung Für das folgende Beispiel ‘Nachfolger’ gelte: Kenntnisstand Existenz-Nr. = 4711 Datum heute 9. 7. 8. 6. 5. 4. 2. 3. 1. Stichtag='A' © GDV 1999 Datum heute Gültigkeit 63 Spezifikation des Datenmanagers Datenmanager Beispiel für ‘Nachfolger’ Datenmodell: Instanzen: Version 9 Version 8 Pol1 Pol1 Version 7 Version 6 Version 5 Pol1 Pol1 Pol1 Version 4 Pol1 Version 3 Version 2 Version 1 Pol1 Pol1 Pol1 Pol V V1 V5 V6 V8 V6 V7 Datensicht 1: V5 V6 V2 V1 V5 Pol Pol Version: 2 Nachfolger Nachfolger Pol Pol V V Treffer: Pol1Version 7 Pol1Version 8 V5Version V6Version 8 64 V2 V1 Datensicht 2: Version: 7 Treffer: V1 V2 V3 V4 V2 8 Pol1Version 2 Pol1Version4 V2Version4 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.5. Physische Datensicht Eine physische Datensicht enthält all die physischen Entitäten, deren zugeordnete logischen Entitäten zur der physischen Datensicht zugeordneten logischen Datensicht gehören. Eine physische Datensicht hat grob folgende Struktur: Namen der physischen Datensicht Namen der physischen Entitäten, die zu dieser physischen Datensicht gehören Navigationsdaten (Pfade durchs physische Datenmodell) Zugriffschlüssel (aus der Menge der durch die physischen Entitäten zur Verfügung gestellten Zugriffsschlüssel ausgewählt) Aktionsparameter (LESEN, ÄNDERN, EINFÜGEN, LÖSCHEN) Mengenbegrenzer (Anzahl Instanzen je Aufruf) Filterfunktionen (nicht schlüsselorientierte Bedingungen) III.3.6. Zuordnung der logischen zur physischen Datensicht Eine logische Datensicht wird höchstens einer physischen Datensicht zugeordnet. Unter Umständen können mehrere logische Datensichten die gleiche physische Datensicht verwenden. Hierbei sind die logischen Schlüssel und Filter in die physischen umzusetzen. Eine logische Datensicht hat dann keine physische Entsprechung, wenn alle für die logische Sicht erforderlichen Daten im Vorgangsspeicher vorhanden sind, dies aus dem Ablauf bekannt ist und deshalb keine Daten (physisch) beschafft werden müssen (z.B.: hat die Dokumentation eines Vertrages alle Daten aus der vorangehenden Bearbeitung schon zur Verfügung). III.3.7. Werkzeuge III.3.7.1. Allgemeine Anforderungen an Werkzeuge Computer Aided Software Engineering (CASE) setzt hohe Ansprüche an die Qualität der verwendeten Werkzeuge. Allerdings stellt diese Technik auch höchste Ansprüche an die Struktur und Organisation des Entwicklungsprozesses. Dies dürfte auch der Grund dafür sein, daß „vollintegrierte“ CASEEntwicklungen auch heute eher die Ausnahme denn die Regel sind. Etabliert hat sich die Verwendung von „punktuell“ einsetzbaren, speziellen Entwicklungswerkzeugen mit der Erfordernis von „manuell-organisatorischen“ Integrationsschritten. © GDV 1999 65 Spezifikation des Datenmanagers Datenmanager Die Entwicklung von Datenmanager-Komponenten ist eine hochintegrative Aufgabe zwischen Funktionsmodell und Datenmodell. III.3.7.1.1. Technische Anforderungen Oberflächenkomfort, graphische Benutzeroberfläche Plattformunabhängigkeit Entwicklunggsdatenbank (Repository) III.3.7.1.2. Fachliche Anforderungen Unterstützung eines semantischen Datenmodells Normalisierung Implementierung von DBMS-Strukturen Einbindung in die Funktionsentwicklung III.3.7.1.3. Anforderungen an den Benutzer Mitarbeiterschulungen in „EDV“ und Fachbereich klare Strategie Organisatorischer Rahmen: Informationsmanagement, Datenmanagement, DB-management, Prozessmanagement, zentral koordinierte Dezentralisierung III.3.7.2. Werkzeuge im VAA-Entwicklungsprozeß Der gesamte Prozeß der Konfiguration der Datenmodelle, -sichten und Abbildungen zwischen ihnen wird durch die folgenden Werkzeuge unterstützt: Editor zur Erstellung und Pflege des logischen Modells, Editor zur Erstellung und Pflege des physischen Modells, Editor zur Erstellung und Pflege der Abbildung des physischen auf das logische Modell und Editor für die logischen Datensichten, Editor für die physischen Datensichten, Editor zur Erstellung und Pflege der Abbildung der physischen auf die logischen Datensichten und 66 ein Generator zur erstmaligen Erstellung des Modells aus bestehenden IMS-oder DB2Datenbankdefinitionen (bzw. aus der DDL anderer DB-Systeme). © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.7.2.1. Editor für das logische Datenmodell Dieser Editor gestattet die Erstellung und Beschreibung der logischen Entitäten und deren ERkonformen Beziehungen. Darüberhinaus gestattet er die Zusammenfassung von mehreren Entitäten zu den oben beschriebenen Informationsobjekten. Das logische Datenmodell wird im Parameter-System abgelegt. III.3.7.2.2. Editor für das physische Datenmodell Nachdem die physischen Entitäten über den Abbildungseditor aus den logischen erstellt sind oder über den Generator aus den vorhandenen Datenbankdefinitionen erzeugt wurden, werden nun mit diesem Editor die strukturellen Beziehungen zwischen den physischen Entitäten ergänzt (soweit notwendig), unter Umständen nach den oben beschriebenen Regeln auch weitere physische Entitäten angelegt und die physischen Eigenschaften der Entitäten beschrieben. Welche Beziehungen zulässig sind, ist entscheidend vom Typ der physischen Entitäten abhängig (z.B. DB2-Tabelle oder IMS-Segment). Das physische Datenmodell wird im Parameter-System abgelegt. III.3.7.2.3. Abbildungs-Editor logisches auf physisches Datenmodell Dieser Editor bedient sich der grafischen Darstellungen des logischen und des physischen Datenmodells und erlaubt hierauf die Definition der Beziehungen. Seine Hauptaufgabe ist die Herstellung und Sicherung einer Konsistenz zwischen logischem und physischem Modell. Die Ergebnisse werden im Parameter-System abgelegt. III.3.7.2.4. Editor für die logische Datensicht Bei der Definition einer logischen Datensicht übernimmt der Editor aus dem logischen Datenmodell die Informationen über die für diese Sicht ausgewählten Entitäten und deren Beziehungen untereinander. Der Editor unterstützt dann bei der Formulierung der komplexen Auswahl- und Filterbedingungen, die in einer Mischform von Grafik und Text eingegeben werden. Die erstellten logischen Datensichten werden im Parameter-System abgelegt. III.3.7.2.5. Editor für die physische Datensicht Der physische Datensicht-Editor operiert auf der grafischen Darstellung des physischen Datenmodells. Durch Kennzeichnung der gewünschten physischen Entitäten und der Vergabe des Datensichtnamens wird eine physische Datensicht definiert. Anschließend werden die erforderlichen Attribute der Sicht erfaßt. Die Beschreibungen der physischen Datensichten werden im Parameter-System abgelegt. © GDV 1999 67 Spezifikation des Datenmanagers Datenmanager III.3.7.2.6. Editor für die Zuordnung der logischen zur physischen Datensicht Die Beschreibung der Zuordnungen wird im Parameter-System abgelegt. III.3.7.2.7. Generator für Umsetzung von DDL-Statements in ein physisches Modell Zur Unterstützung der erst- und einmaligen Erstellung des physischen Modells ist ein Generator notwendig, der aus vorhandenen DDL-Statements, wie sie zur Definition von z.B. IMS- oder DB2Datenbanken benötigt werden, das physische Modell für den Datenmanager erstellt. Diese Vorgehensweise ist keine Alternative zur Erstellung eines physischen Datenmodells als Ableitung aus einem logischen, sondern dient ausschließlich der Erstladung der Informationen über vorhandene Datenbanken. III.3.8. Organisation III.3.8.1. Überblick Der Entwicklungs-, Pflege- und Wartungsprozess von Anwendungssystemen erfolgt nach erweiterten Wasserfallmodellen, die in verschiedenen Ausprägungen existieren, aber folgendes gemeinsam haben: 1. jede Stufe setzt auf den Ergebnissen der Vorgängerstufe auf 2. jede Stufe liefert die Voraussetzungen für die Nachfolgerstufe 3. im Fall von notwendigen Korrekturen kann auf die Vorgängerstufe zurückgekehrt werden Die Phasen der Entwicklungsmodelle können in drei Hauptentwicklungsstufen eingeteilt werden: Stufe Hauptergebnis Prozessanalyse Prozessmodell Fachdesign Realisierung Betrieb Funktionenmodell Anwendungssystem Informationsmodell (=log. Datenmodell) Datenbankzugriffe Datenbank (incl. phys. Datenmodell) optimiertes Fach- und EDV-System Die grau hinterlegten Teile der Tabelle bezeichnen das Planungsfeld des Datenmanagers. 68 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Phasensynchronisation Innerhalb der genannten Entwicklungsstufen können in Abhängigkeit von der Problemstellung die einzelnen Entwicklungsschritte teilweise zeitlich unsynchronisiert ablaufen. Die Konsistenz der verschiedenen Teilergebnisse muß durch -ggf. toolgestützte Designabstimmungen- sichergestellt sein. Beim Übergang zur nächsten Entwicklungsstufe müssen die systembestimmenden Entwicklungsdokumente allerdings vorliegen. III.3.8.2. Prozessmodellierung Im Schritt der Prozessmodellierung werden die strategischen Anforderungen bestmöglich realisiert. Oft sind dafür Wettbewerbs- und Rationalisierungsvorgaben maßgebend. Das entwickelte Geschäftsprozessmodell beinhaltet Arbeitsschritte, die bestmöglich mit dem Anwendungssystem abgedeckt werden sollen. Die Verkettung dieser Arbeitsschritte zu Abläufen ist nicht Gegenstand der nachfolgend beschriebenen Entwicklungsprozesse. Diese wird vielmehr mit Hilfe von Workflow-Systemen realisiert. III.3.8.3. Fachdesign Das Fachsystem definiert die EDV-Unterstützung der in der Prozessanalyse festgelegten Arbeitsschritte der betrieblichen Geschäftsprozesse. Es besteht aus Funktionsmodell und Informationsmodell (logisches Datenmodell). III.3.8.3.1. Funktionmodellierung Die Fachfunktionen des Anwendungssystems werden hierarchisch gegliedert und mit ihrem Informationsbedarf beschrieben. Die definierten Funktionen sind unabhängig voneinanderum den Einsatz des übergeordneten Workflowmanagers zu ermöglichen. Die Funktionsgliederung beschränkt sich im Regelfall auf die drei Stufen: 1. Anwendungssystem 2. Anwendungsbaustein 3. Funktionsbaustein Der Informationsbedarf wird mit Hilfe der logischen Datensichten beschrieben. Diese stellen das Abstimmungswerkzeug mit der getrennt abzuwickelnden Informationsmodellierung dar. III.3.8.3.2. Informationsmodellierung Das logische Datenmodell (= Informationsmodell) beschreibt alle Objekte der realen Welt des Planungsfelds und deren Beziehungen zueinander in konsistenter, zusammenhängender Form. Es wird © GDV 1999 69 Spezifikation des Datenmanagers Datenmanager in Entity Relationship Notation in dritter Normalform dargestellt. Durch dieses Modell wird die „Potenz“ des Anwendungssystems determiniert. Jede Funktion existiert nur auf der Grundlage der von Ihr bearbeiteten Informationsobjekte. Das logische Datenmodell bildet die Gesamtintegration über alle Geschäftsprozesse. Dieser Stellenwert des logischen Datenmodells wird durch die Zuständigkeit einer eigenen Entwicklergruppe unterstrichen. In objektorientierten Systemdesign wird die Gesamtfunktionalität als Methoden den Objekten des Informationsmodells zugeordnet. Somit stellt eine solide Informationsmodellierung den besten Garant für die Migrationsfähigkeit von Anwendungssystemen in die künftig erwartete Paradigmenwelt der Objektorientierung dar. III.3.8.4. Realisierung III.3.8.4.1. Anwendungsrealisierung Die Anwendungsrealisierung umfaßt: Systemdesign: beschreibt Modularität, Schnittstellen und Softwareschichtung. Darüberhinaus erfolgt die Festlegung von Designkriterien für das Komponentendesign. Komponentendesign Realisierung diverse Tests bis zum integrierten System Inbetriebnahme Als wichtiges Designkriterium sollen die Anwendungsfunktionen strukturell der modellierten Fachfunktionalität entsprechen. Im Sinn eines effizienten Systembaues (z.B. Wiederverwendung von Anwendungsbausteinen) kann dieses Prinzip jedoch durchbrochen werden. Ein Funktionsbaustein funktioniert auf der Basis einer logischen Datensicht. Diese Festlegung erfolgt im Systemdesign. III.3.8.4.2. Datenbankzugriffsrealisierung Auf der Basis der maschinell verwertbaren Dokumentation der Datenmodelltransformation im Parametersystem können die Datenbankzugriffsbausteine weitestgehend generativ erzeugt werden. III.3.8.4.3. Datenbankrealisierung Die Datenbankrealisierung liegt entweder vor, oder wird auf der Basis des physischen Datenmodells in der Regel weitestgehend generativ. 70 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.3.8.4.4. Integration, Einführung und Inbetriebnahme Die Systemkomponenten aus den Teilentwicklungen werden zu funktionsfähignen (Teil-) Systemen integriert und getestet. In diese Phase fallen auch Fachorganisation, Schulung, Datenmigration und Inbetriebnahme. III.3.8.5. Betrieb Während des Betriebs des Systems werden Prozeßabläufe Fachfunktionen (Informationsmodell) Anwendungssystem Datenbankzugriffe Datenbank im Hinblick auf einen optimierten Einsatz (Performanz unter realen Last- und Datenfüllungsbedingungen, schritthaltende Systemadaptionen entsprechend der sich wandelnden betriebswirtschaftlichen Anforderungen und Basissysteme) laufend gewartet und gepflegt. Diese Lebensphase des Systems erfordert ständige Anstrengungen, die Konsistenz der Anforderungsund Designunterlagen mit dem real implementierten System sicherzustellen. Einarbeitsteiliges Vorgehen mit entsprechend gelebten Verantwortungsbereichen ist dafür Voraussetzung. Besonderes Augenmerk genießt dabei die Trennung von Funktions- und Datenverantwortungsbereichen. Die Betriebsphase endet mit dem „Systemrecycling“ zugunsten eines Nachfolgesystems. III.4. Buildtime Komponenten III.4.1. Der LDASI-Generator Der LDASI-Generator ist zur Buildtime zuständig für die Kompilation der logischen Datensicht, die mit dem LDASI-Editor erstellt wurde, in eine Form, die vom Datensicht-Prozessor abgearbeitet werden kann. Dabei kann man sich drei Varianten des Vorgangs vorstellen: 1. Es wird eine interne Form der logischen Datensicht erzeugt, die interpretativ vom Datensichtprozessor abgearbeitet werden kann. Beim Datensichtprozessor der Württembergischen Versicherung wird dazu ein binäres Lademodul mit einer Internform der Datensicht erzeugt, das dynamisch vom Datensichtprozessor angefordert wird. Zum Erzeugen der Treffertabelle wird diese Internform vor dem Ablauf eines Funktionsbausteines vom Datensichtprozessor interpretiert. Diese Methode ist vom Programmcode her sehr platzsparend aber im Ablauf sicher nicht die schnellste. 2. Anstatt einer Interpretation der Datensicht werden direkt die Aufrufe des Datensichtprozessors zum Aufbau der Treffertabelle generiert und dieser Programmcode zum Funktionsbaustein dazugelinkt. Dieses Vorgehen spart eine Interpretationssstufe und ist deshalb schneller als die erste Variante. © GDV 1999 71 Spezifikation des Datenmanagers Datenmanager Ein fertig compilierter und gelinkter Funktionsbaustein für sich alleine gesehen wird aber dadurch vom Code her etwas größer. 3. Als letzte Variante könnte man sich eine direkte Generierung des Teils des Datensichtprozessors aus der vorgegebenen Datensicht vorstellen, der intern die Treffertabelle verwaltet und teilweise auch den Vorgangsspeicher direkt manipuliert. Die Verwaltung des Vorgangsspeicher und die Schnittstelle zum Datenhandler können natürlich nicht vom LDASI-Generator erzeugt werden und sind als fest vorgegeben anzunehmen. Damit sind in jedem LDaSi-Baustein zum ProgrammAblaufzeitpunkt einige Teile des Datensichtprozessors einkompiliert. Von den gerade besprochenen Varianten wird die erste sicher die Methode der Wahl sein, wenn der Aufwand für die Implementierung des Datenmanagers in einem engen Rahmen gehalten werden soll. Treibt man mehr Aufwand und legt man Wert auf allerhöchste Performannce, so sollte man sich für eine der Versionen 2 oder 3 oder eine Mischform entscheiden. Der LDASI-Generator ist als Teil der Entwicklungsumgebung im höchsten Maße abhängig vom internen Ablageformat der logischen Datensicht und von der internen Struktur des Datensichtprozessors. Eine logische Datensicht, die für schreibende Zugriffe verwendet wird, läßt sich auf ähnliche Art und Weise wie die lesende Datensicht durch den LDASI-Generator in einer der drei obigen Varianten in eine Internform kompilieren. III.4.2. Der PDASI-Generator Während der Konfigurationszeit ist aus einer logischen Datensicht eine physische Datensicht entstanden, welche den unmittelbaren Input für den PDASI-Generator darstellt. Die physischen Komponenten, die im Rahmen der Datenmanager-Architektur während der Buildtime die beherrschende Stellung einnehmen, umfassen den PDASI-Generator und dessen generierte Konstrukte - das sind Ablaufplan und I/O-Module, die im wesentlichen DB-Zugriffsoperationen (zur Navigation und zur Datenbeschaffung/Änderung) sowie Logikkomponenten enthalten. Der Ablaufplan mit den I/O-Modulen ist letzten Endes die in die DB-Physik übersetzte physische Datensicht. Der PDASI-Generator verarbeitet als Input eine physische Datensicht, welche zur Konfigurationszeit aus einer logischen Datensicht in Berücksichtigung des physischen Datenmodells abgeleitet worden ist. Diese Ableitung ist unter Beachtung von Navigationsmöglichkeiten (siehe phys. DM) bzw. nach Strukturmerkmalen des Ziel-Datenbanksystems unter Bewahrung der Semantik der logischen Datensicht (s.a. Datensichtsprache) erfolgt. Der PDASI-Generator hat für die Runtime-Phase (also die Ausführung des Datenmanagers) optimale Vorbereitungen zu treffen - vorallem unter dem Gesichtspunkt massiver Batch I/Os: Ein nur interpretatives Abarbeiten eines vom PDASI-Generator erstellten Ablaufplanes ist (ähnlich wie bei einem dynamic plan im DB2) nur die zweitbeste Lösung. Weitergehende Optimierungen bzgl. der DB-Zugriffe zur Laufzeit sollen dem Bufferhandling des jeweiligen DB-Systems überlassen bleiben. 72 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Der vom PDASI-Generator erstellte Ablaufplan wird zur Runtime unter Kontrolle der Ablaufsteuerung ausgeführt. III.4.2.1. Erstellung eines Ablaufplans Zu jeder physischen Datensicht erstellt der PDASI-Generator einen Ablaufplan. Der Ablaufplan enthält alle Datenbanksystem-übergreifenden Funktionen, um z.B. abhängig vom Inhalt eines IMSSegments eine bestimmte Auswahl aus einer DB2-Tabelle einzugrenzen. Die Zugriffe auf ein DB-System sind in sogenannten I/O-Modulen (IOM) gekapselt, welche in den Ablaufplan eingebunden werden. Der Ablaufplan realisiert somit als eine Art Hauptprogramm die physische Datensicht (mit ihren navigatorischen und selektiven Operationen) und ruft nacheinander u.U. mehrere IOMe als Unterprogramme auf, um die Daten zu beschaffen, die indirekt zur Navigation oder direkt vom Anwendungsbaustein benötigt werden. Die I/O-Module haben DB-spezifische Sichten auf eine oder mehrere physische Entitäten und sind im Prinzip wiederverwendbar, d.h. auch in andere Ablaufpläne einbindbar, wenn es deren Bedarf entspricht. Die IOMe dienen damit der Vermeidung von Redundanzen - über alle Ablaufpläne hinweg betrachtet. Die IOMe liefern immer komplette physische Entitäten zurück. Der Ablaufplan hat die IOMe mit Aufrufparametern zu versorgen; für lesende und schreibende IOMe muß bsplw. die Übergabe des physischen Schlüssels erfolgen; für schreibende IOMe muß zusätzlich eine Datenstruktur übergeben werden. Die von den IOMen gelieferten Daten müssen vom Ablaufplan gemäß Anforderung der logischen Datensicht (s. Konfigurationszeit) gekettet werden. Die dem Transformator übergebene Struktur muß „selbsterklärend“ sein, bzw. für den Transformator mithilfe des Datenmodellbausteins und der Zuordnungstabelle interpretierbar sein. Dabei ist es denkbar, den Datenelementen entweder technische Identifikatoren voranzustellen oder Angaben über ihre occurrence (im Sinne eines Feldes, auf das sich eine occurrs depending on Klausel in COBOL bezieht) vorzunehmen, um der Ablaufsteuerung bzw. dem Datensichtprozessor die eindeutige Interpretation dieser NF2-Strukturen zu ermöglichen. Bezüglich des Zusammenspiels der vom PDASI-erstellten Komponenten ergibt sich zur Laufzeit folgendes (exemplarisches) hierarchisches Bild: Ablaufsteuerung Ablaufplan 1 Ablaufplan 2 Ablaufplan 3 IOM i IOM k IOM i IOM j IOM j IOM k © GDV 1999 73 Spezifikation des Datenmanagers Datenmanager Die Ablaufsteuerung parametrisiert die Ablaufplanprogramme. Der Ablaufplan wertet die Return Codes der I/O-Module aus und gibt selbst einen Return Code (bzw. Zustandscode) an seine Kontrollinstanz (die Ablaufsteuerung) zur Laufzeit weiter. III.4.2.2. Auflösung der physischen Datensicht in I/O-Module I/O-Module (IOM) sind einfache DB-Zugriffsprogramme in dem Sinne, daß sie nur auf ein DB-System zugreifen komplette physische Entitäten zurückliefern entweder nur Lesezugriff oder verändernden Zugriff durchführen der Kontrolle des Ablaufplanprogramms unterliegen Jeder physischen Entität ist mindestens ein IOM zugeordnet; unter den IOMen zu einer physischen Entität gibt es genau eines, welches die gesamte Struktur der physischen Entität über den Primärschlüssel zu reproduzieren vermag. Es kann auch IOMe geben, die auf mehrere physische Entitäten genau eines DB-Systems zugreifen. Für die Implementierung ist es vorstellbar, ein IOM durch z.B. eine DB2-View (über evtl. mehrere Tables mit komplexer where-Bedingung) oder eine Datenbank-Prozedur zu realisieren; in der Regel wird es sich um (in eine Programmiersprache eingebettete) native DB-Calls handeln. I/O-Module sind als DB-Zugriffsprimitive einem Wiederverwendungskonzept zu unterwerfen, welches es dem PDASI-Generator ermöglicht, fertige IOMe für einen Ablaufplan auszuwählen („component ware“), statt sie erst produzieren zu müssen. Das Erstellen der IOMe ist als Aufgabe der Datenbankadministration im Zusammenhang mit der Implementierung des physischen DB-Schemas zu sehen. Es könnte idealerweise Aufgabe eines mustererkennenden Algorithmus innerhalb des PDASIGenerators sein, ein Verwendungsmuster einer oder mehrerer physischer Entitäten in der physischen Datensicht zu erkennen und auf ein dazu bekanntes IOM abzubilden. Sollte dabei der Fall eintreten, daß ein Matching nicht möglich ist, so muß seitens der Daten(bank)administration ein IOM nachgerüstet werden. III.4.2.3. Datenzugriffsoptimierung Optimierungen bzgl. der DB-Zugriffe zur Laufzeit sollten dem Bufferhandling des jeweiligen DBSystems überlassen bleiben. Hier gibt es seitens der Hersteller von DB-Systemen, aber auch der Hersteller von Plattenspeichern (z.B. Iceberg, EMC2) bereits hochperformante Lösungen. Diese Betrachtung gilt mit Einschränkung, wenn wir uns in Client/Server-Architekturen bewegen, bei denen ein Netzwerk zwischen Anwendungsbausteinen und Datenbanksystemkern als ein I/O- 74 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Bottleneck anzusehen ist. Hier kommt es vordringlich darauf an, den Datentransfer im Netz minimal zu halten. Wenn der Datenmanager zur Laufzeit jedoch beim Datenbankkern (auf der gleichen Plattform also) angesiedelt ist, gilt wieder die erste Betrachtungsweise. Dieses ist auch unsere Architekturempfehlung, weil zumindest der Datenhandler innerhalb des Datenmanagers auf die Plattform gehört, auf der sich auch der Datenbankserver befindet. III.5. Runtime Komponenten III.5.1. Der Datensichtprozessor Der Datensichtprozessor bildet im Datenmanager die Schnittstelle zwischen dem „eigentlichen“ Anwendungsprogramm und den physischen Zugriffen auf die Daten, die durch die Komponente Datenhandler im Datenmanager realisiert wird. Insofern hat der Datensichtprozessor eine „externe“ Schnittstelle, die von den Funktionsbausteinen, den Steuerungskomponenten DV-Vorgangssteuerung und Dialogsteuerung oder dem Präsentationsmanager des Anwendungsprogramms aufgerufen werden kann, und eine „interne“ Schnittstelle innerhalb des Datenmanagers zum Datenhandler. Die wesentlichen Aufgaben des Datensichtprozessors sind: Bereitstellung von Daten für die Anwendungskomponenten aufgrund des Aufrufs mit Angabe des Namens einer logischen Datensicht und Laufzeitparametern Strukturierung der Daten in Form einer „Übergabetabelle“ für die Anwendungskomponenten Modellgerechte Verwaltung der Daten im Vorgangsspeicher (Hauptspeicher) Verwaltung des Speichers unter Kontrolle der DV-Vorgangssteuerung Aufruf des Datenhandlers zur physischen Beschaffung der Daten Aufruf des Datenhandlers zum Update/Insert/Delete von Daten © GDV 1999 75 Spezifikation des Datenmanagers Editformat LDaSi LDaSi Generierung Datenmanager Anwendungen Name LDaSi + Laufzeitparameter Daten und Adressen Abarbeiten Datensicht Laufzeitformat LDaSi Basisfunktionen vorläufige Treffer Modellgerechte Verwaltung der Daten im Hauptspeicher Anforderung Adressen Daten Hauptspeicherverwaltung Name PDaSi + Laufzeitparameter Datenhandler Abb.: Übersicht über die Laufzeitkomponenten des Datensichtprozessors Auf die einzelnen Aufgaben wird im folgenden noch detaillierter eingegangen. Die im folgenden angegebene Schnittstelle beschreibt notwendige Aufrufe. Für den Fall, daß ein anderes als das einfache Verteilungsmodell (siehe Kapitel V) gewählt wird, können noch weitere, technisch bedingte Aufrufe hinzukommen; die beschriebenen Aufrufe sollten jedoch Bestand haben. 76 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.5.1.1. Die Schnittstelle zum Anwendungsprogramm Der Datensichtprozessor im Datenmanager wird vom Anwendungsprogramm zur Datenbeschaffung und zum persistenten Wegschreiben (Update, Insert, Delete) von Daten aufgerufen. Diese Fälle führen zu unterschiedlichen Funktionsaufrufen in der Anwendungsschnittstelle. III.5.1.1.1. Daten-Beschaffung und -Bereitstellung im Vorgangsspeicher Beim Aufruf des Datensichtprozessors zur Beschaffung und Bereitstellung der geforderten Daten im Vorgangsspeicher werden mitgegeben: ein Vorgangsidentifikator der Name der logischen Datensicht Laufzeitparameter, sofern in der Datensicht Parameter definiert wurden Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zur DatenBeschaffung und -Bereitstellung im Vorgangsspeicher: DMgetData Deklaration in C-Systax: HANDLE DMgetData(hVorgang, aLDaSi, HANDLE hVorgang; // LDASI aLDaSi; // PARAM aParamList; // Liste mit Laufzeitparametern aParamList) Vorgangsidentifikator logischer Datensichtname Zurückgegeben wird ein Identifikator (Pointer oder Handle) des Trefferverzeichnisses. Aufrufbeispiel in einer C-Funktion: { HANDLE hData, LDASI aLDaSi; PARAM aParamList; hVorgang; ... hData = DMgetData(hVorgang, aLDaSi, aParamList); ... } © GDV 1999 77 Spezifikation des Datenmanagers Datenmanager Aufruf in CALL DATMAN COBOL-Syntax: USING FKTGET * Funktionscode Lesen PARAM-LIST * Parameterliste (Vorgangsidentifikator, log.Datensichtname, * weitere Laufzeitparameter) TREFF-VERZ. * Trefferverzeichnis Zurückgegeben wird das Trefferverzeichnis. Das Ergebnis der Datenanforderung ist ein im Vorgangsspeicher zur Verfügung gestelltes, gefülltes Trefferverzeichnis. Die Struktur des Trefferverzeichnisses wird zum Zeitpunkt der Datensichterstellung festgelegt. Diese Struktur kann individuell für den jeweiligen Aufruf aufgebaut werden. Die Anzahl und die Reihenfolge der Felder sind frei definierbar. Das Trefferverzeichnis kann damit durchaus für mehrere Datensichten verwendet werden. Es bietet sich an, für jedes Anwendungsgebiet (Tarifierung, Dokumentierung, ...) eine einheitliche Tabellenstruktur zu definieren; dies ist aber nicht notwendig. Bsp.: Es wurde eine logische Datensicht mit dem Namen LDaSi123 definiert: Police VS_NR = &P POL Bst H-Ver SPKZ = H VER Bst XY H-Gef GEF Bst Pol/Pers PP K-Ver SPKZ = K VER Bst ZZ Person PERS Bst K-Gef GEF Bst Abb.: Beispiel-Datensicht LDaSi123 78 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Dann könnte die Struktur des Trefferverzeichnis folgendermaßen definiert werden: AE-Name DME Level T-Adr Bst-Name Bst-Adr ... Zusätzlich kann zu jeder Ausgabeentitätsmenge (AEM) im Trefferverzeichnis definiert werden, welche in der Tabellenstruktur vorgesehenen Felder für diese AEM gefüllt werden sollen. Wird für eine AEM der Datensicht kein Eintrag gekennzeichnet, also keine Spalte im Trefferverzeichnis vorgesehen, so werden zu dieser AEM keine Daten an die Anwendung geliefert; im Beispiel die AEM Person. (Für die sonstige Verarbeitung der Daten innerhalb der Datensicht wird diese AEM behandelt wie jede andere AEM auch.) Das Trefferverzeichnis kann aus zwei verschiedenen Typen von Daten bestehen: Trefferdaten Trefferdaten sind die Daten, die zur Laufzeit aufgrund des Datenbestands ernittelt werden. Standardattribute für die Trefferdaten einer Ausgabeentitätsmenge sind: Versionsidentifikator (z.B. Kenntnisstand, Gültigkeitsstand, ...) Strukturname (Typinformation für die z.B. Name der zugehörigen Datenstruktur, der zugehörigen Copy-Strecke) Trefferadresse (Adresse, an cher stehen) Längenadresse (Adresse, steht) Bausteindatenadresse (Adresse, stehen) an wo der der ggf. Trefferdaten, Trefferdaten die Länge im der Bausteindaten HauptspeiTrefferdaten zur AEM Weitere Attribute sind denkbar, werden aber nicht als Minimalkonstrukte angesehen und hängen von der jeweiligen Realisierung des Datensichtprozessors ab. Wir gehen davon aus, daß der Datensichtprozessor und die aufrufende Komponente des Anwendungsprogramms im selben Prozeß laufen, so daß auf Kopieren von Daten verzichtet und mit Übergabe von Adresspointern gearbeitet werden kann. Bzgl. der Bausteindaten sehen wir vor, daß sie in der Anwendungsschnittstelle nicht weiter detailliert werden, sondern daß beim Füllen des Trefferverzeichnis ein Dienst mit Angabe des Bausteinnamens und der Bausteindatenadresse aufgerufen wird. Dieser Dienst analysiert dann, ob es sich um einen Textbaustein, eine Prüfroutine, ... handelt und ruft diesen auf. (Hier sind natürlich auch andere Realisierungen denkbar.) © GDV 1999 79 Spezifikation des Datenmanagers Datenmanager Definitionsdaten Definitionsdaten sind Daten, die zum Zeitpunkt der Datensichterstellung festgelegt und zur Laufzeit ins Anwendungsprogramm geliefert werden. Standardattribute für die Definitionsdaten einer Ausgabeentitätsmenge sind: Ausgabe-Entitäts-Name (logischer Name, Anwendung erhalten möchte) unter Level (Hierarchiestufe für den gelieferten Treffer) Kommentar (Erfassung Anwendung) spezieller dem die Trefferdaten die Informationen für eine Datenmodellentitäts-Name Bausteinname (Bausteinname, z.B. eines Textbausteins) Funktionscode (z.B. Insert Existenz als sionsselektion chen) Version/Existenz und Delete Minimalanforderung, um Verund -navigation zu ermögli- Im obigen Beispiel in c-Syntax könnte das Trefferverzeichnis mit dem Handle hData nach dem Funktionsaufruf hData = DMgetData(hVorgang, LDaSi123, P4711); dann folgendermaßen aussehen: AE-Name DME Level T-Adr Bst-Name Bst-Adr Police POL 1 0001 PP 9001 H-Vertrag VER 2 0100 XY 9100 H-Gefahr GEF 3 0110 H-Gefahr GEF 3 0120 K-Vertrag VER 2 0200 ZZ 9200 K-Gefahr GEF 3 0210 ... In der Police P4711 besteht unter anderem ein Haftpflicht-Vertrag mit zwei versicherten Gefahren und ein Kraftfahrvertrag mit einer versicherten Gefahr. Ob noch weitere Verträge in der Police bestehen, ist irrelevant, weil in der Datensicht nicht angefordert. Die angegebenen Hauptspeicheradressen beziehen sich auf den durch den Vorgangsidentifikator ‘hVorgang’ zugeordneten Vorgangsspeicher. 80 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.5.1.1.2. Füllen des Trefferverzeichnises Um die Daten für das Trefferverzeichnis im lesenden Zugriff zu ermitteln, werden vom Datensichtprozessor die folgenden Schritte in der durch die Datensicht vorgegebenen Reihenfolge ausgeführt (Umsetzung der Grafik in die Ablaufsteuerung): Aufruf des Datenhandlers; solange AEMs abzuarbeiten sind: { 1. Interpretation der AEM-Struktur, um die Hierarchiestufen im Trefferverzeichnis festzulegen (inklusive Gruppierung); 2. Feststellen, ob AEM nicht im Trefferverzeichnis aufscheinen sollen (Ausgabeunterdrückung); 3. Ermittlung aller Treffer (AEM-Instanzen) über Navigations- und Bedingungspfade und Prüfung von Attributs- und Versionsbedingungen; 4. Konsolidierung (Vermeidung von Mehrfachnennungen); 5. Aufbereitung der ermittelten Treffer entsprechend den in der Datensicht angegebenen Vorschriften (maximale Trefferzahl, Sortierung, Gruppenwechsel); 6. Insert jedes Treffers der AEM in den Vorgangsspeicher und Füllen der zugehörigen Zeile im Trefferverzeichnis; } III.5.1.1.3. Update von Daten Beim Aufruf des Datensichtprozessors zum Update von Daten im Vorgangsspeicher innerhalb eines DV-Vorgangs (nicht DV-Vorgangsende!) werden mitgegeben: der Vorgangsidentifikator der Identifikator der Übergabetabelle der Datenmodellentitätstyp ggf. die Nummer des zu ändernden Datensatzes, falls nicht das komplette Trefferverzeichnis zu ändern ist Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Update des kompletten DMUpdateData oder bei Trefferverzeichnis: Update einzelner Datensätze: DMUpdateDataRow © GDV 1999 81 Spezifikation des Datenmanagers Datenmanager Deklaration in C-Systax: HANDLE DMUpdateData(hVorgang, HANDLE hVorgang; HANDLE hUpdateData; // Identifikator des Trefferverz. oder // bei HANDLE hUpdateData) Vorgangsidentifikator Update einzelner Datensätze: DMUpdateDataRow(hVorgang, hData, hDME, HANDLE hVorgang; // HANDLE hData; // HDME hDME; // WORD wRow; // wRow) Vorgangsidentifikator Identifikator des Trefferverz. Datenmodellentitätstyp Nummer des geänderten Daten- // satzes im Trefferverzeichnis Zurückgegeben wird der Vorgangsidentifikator hVorgang (oder NULL im Fehlerfalle.) Aufrufbeispiel in einer C-Funktion: { HANDLE hData, LDASI aLDaSi; PARAM aParamList; hUpdateData, hVorgang; ... hData = DMgetData(hVorgang, aLDaSi, aParamList); ... // Kopieren und Ändern der Daten in hUpdateData hData = DMUpdateData(hVorgang, hUpdateData); ... } 82 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Aufrufe in CALL DATMAN COBOL-Syntax: USING FKTUPD * Funktionscode Ändern PARAM-LIST * Parameterliste (Vorgangsidentifikator, weitere Laufzeitparameter) TREFF-VERZ * Trefferverzeichnis RET-CODE. * Statusinformation bzw. CALL DATMAN USING FKTUPZ * Funktionscode Ändern Zeile PARAM-LIST * Parameterliste (Vorgangsidentifikator, Datenmodellentitätstyp, * Nummer im des Datensatzes Trefferverz.) TREFF-VERZ * Trefferverzeichnis RET-CODE. * Statusinformation Zurückgegeben wird eine Statusinformation. Aufgrund dieser Aufrufe werden vom Datensichtprozessor im Vorgangsspeicher nur bereits vorhandene Instanzen überschrieben. Das Bilden von neuen Instanzen (Versionen) muß generell über die Insert-Funktion erfolgen. III.5.1.1.4. Insert von Daten Prinzipiell erfolgt der Insert von neuen Entitäten in den Vorgangsspeicher über die Funktionalität der Datensicht, kann also bei jedem Aufruf des Datenmanagers zur Datenbeschaffung bereits integriert werden. Dies gilt sowohl für das Einfügen einer neuen Version bereits vorhandener Daten als auch für das Einfügen einer neuen Existenz einer Entität. Die folgenden Ausführungen beschreiben eine Möglichkeit, wie die Funktionalität des Datenmanagers bezüglich des Inserts von Existenzen erweitert werden könnte, wenn der Insert über Datensicht nicht ausreicht. © GDV 1999 83 Spezifikation des Datenmanagers Datenmanager Beim Aufruf des Datensichtprozessors zum Insert von Daten im Vorgangsspeicher innerhalb eines DV-Vorgangs (nicht DV-Vorgangsende!) werden mitgegeben: der Vorgangsidentifikator der Identifikator des Trefferverzeichnis der Datenmodellentitätstyp die Nummer des Datensatzes, hinter dem eingefügt werden soll Pointer auf einen einzufügenden Datenstrom mit Längenangabe Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Insert: DMInsertDataRow Deklaration HANDLE in C-Systax: DMInsertDataRow(hVorgang, hData, hDME, wRow, lpData, wLenData) HANDLE hVorgang; // Vorgangsidentifikator HANDLE hData; // HDME hDME; // WORD wRow; // Nummer // Trefferverz., Identifikator des Trefferverz. Datenmodellentitätstyp // gefügt Pointer des Datensatzes hinter dem werden LPDATA lpData; // auf WORD wLenData; // Länge des Datenstroms im einsoll Datenstrom Zurückgegeben wird der Vorgangsidentifikator hVorgang (oder NULL im Fehlerfalle.) Aufruf in CALL DATMAN COBOL-Syntax: USING FKTINS * Funktionscode Einfügen Zeile PARAM-LIST * Parameterliste (Vorgangsidentifikator, Datenmodellentitätstyp, * Pointer auf Daten, der * Nummer im Länge Daten, des Datensatzes Trefferverz.) TREFF-VERZ * Trefferverzeichnis RET-CODE. * 84 Statusinformation © GDV 1999 Datenmanager Spezifikation des Datenmanagers Zurückgegeben wird eine Statusinformation Aufgrund dieses Aufrufs wird vom Datensichtprozessor im Vorgangsspeicher eine neue Instanz der betreffenden Datenmodellentität eingefügt. III.5.1.1.5. Delete von Daten Beim Aufruf des Datensichtprozessors zum Löschen von Daten im Vorgangsspeicher innerhalb eines DV-Vorgangs (nicht DV-Vorgangsende!) werden mitgegeben: der Vorgangsidentifikator der Identifikator des Trefferverzeichnis der Datenmodellentitätstyp die Nummer des zu löschenden Datensatzes Bsp.: Name der Prozedur/funktion des Datensichtprozessors im Datenmanager zum Delete: DMDeleteDataRow Deklaration HANDLE in C-Syntax: DMDeleteDataRow(hVorgang, hData, hDME, HANDLE hVorgang; // HANDLE hData; // HDME hDME; // WORD wRow; // wRow) Vorgangsidentifikator Identifikator des Trefferverz. Datenmodellentitätstyp Nummer des zu löschenden Da- // tensatzes im Trefferverzeichnis Zurückgegeben wird der Vorgangsidentifikator hVorgang (oder NULL im Fehlerfalle.) Aufruf in CALL DATMAN COBOL-Syntax: USING FKTDEL * Funktionscode Löschen Zeile PARAM-LIST * Parameterliste (Vorgangsidentifikator, Datenmodellentitätstyp, * Nummer im des Datensatzes Trefferverz.) TREFF-VERZ * Trefferverzeichnis RET-CODE. * © GDV 1999 Statusinformation 85 Spezifikation des Datenmanagers Datenmanager Zurückgegeben wird eine Statusinformation. Aufgrund dieses Aufrufs wird vom Datensichtprozessor die betreffende Instanz im Vorgangsspeicher mit einem Löschflag versehen. Achtung: Auf Datenbankebene gibt es kein Löschen! III.5.1.1.6. Initialisierung und Abschluß eines DV-Vorgangs Bei der Initialisierung eines DV-Vorgangs muß auch ein zugehöriger Vorgangsspeicher initialisiert werden. Dazu stellt der Datensichtprozessor im Datenmanager eine entsprechende Funktion zur Verfügung. Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zur Initialisierung eines Vorgangsspeichers: DMInit Deklaration in C-Syntax: HANDLE DMInit(aDefaultSize) WORD wDefaultSize; // Defaultgröße Zurückgegeben wird der Vorgangsidentifikator (Handle) oder NULL im Fehlerfall. Aufruf in CALL DATMAN COBOL-Syntax: USING FKTINI * Funktionscode Initialisieren PARAM-LIST * Parameterliste (Vorgangsidentifikator, Größe), RET-CODE. * Statusinformation Zurückgegeben eine Statusinformation Beim Aufruf des Datensichtprozessors zum persistenten Wegschreiben von den in einem Vorgang neu erfaßten/geänderten/gelöschten Daten (i.w. bei Vorgangsabschluß) werden beim Aufruf mitgegeben: ein Vorgangsidentifikator der Name einer logischen Update-Datensicht Laufzeitparameter, sofern in der Update-Datensicht Parameter definiert wurden Wir gehen davon aus, daß zu jedem Vorgang eine zugehörige logische Update-Datensicht formuliert wurde. Die zugehörigen Daten stehen im Vorgangsspeicher modellgerecht zur Verfügung. Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum persistenten Wegschreiben von Daten: DMCommit 86 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Deklaration in C-Syntax: BOOL DMCommit(hVorgang, HANDLE hVorgang; // LDASI aLCtDaSi; // PARAM aParamList; // Liste mit Laufzeitparametern Aufruf aLCtDaSi, aParamList) Vorgangsidentifikator logischer Datensichtname in CALL DATMAN COBOL-Syntax: USING FKTCOMM * Funktionscode Commit PARAM-LIST * Parameterliste (Vorgangsidentifikator, log.Datensichtname, * weitere Laufzeitparameter) RET-CODE. * Statusinformation Aufgrund dieses Aufrufs wird der Datenhandler zum Wegschreiben der geänderten Daten in den betreffenden Datenhaltungssystemen aufgerufen. Soll der Vorgang abgebrochen werden, ohne daß die Daten im Vorgangsspeicher in die Datenhaltungssysteme geschrieben werden, ist der Datenmanager mit dem entsprechenden Vorgangsidentifikator aufzurufen. Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Abbruch: DMAbort Deklaration in BOOL DMAbort(hVorgang) HANDLE hVorgang; Aufruf C-Syntax: // Vorgangsidentifikator in CALL DATMAN COBOL-Syntax: USING FKTABO * Funktionscode Abbrechen PARAM-LIST * Parameterliste (Vorgangsidentifikator) RET-CODE. * Statusinformation Aufgrund dieses Aufrufs wird der Datenhandler ebenfalls vom Abbruch informiert. Soll ein Vorgang endgültig abgeschlossen werden und sollen alle Speicherbereiche freigegeben werden ,so ist das System davon ebenfalls zu informieren. © GDV 1999 87 Spezifikation des Datenmanagers Bsp.: Datenmanager Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Freigeben des Vorgangsspeichers: DMFree Deklaration in BOOL DMFree(hVorgang) HANDLE hVorgang; Aufruf C-Syntax: // Vorgangsidentifikator in CALL DATMAN COBOL-Syntax: USING FKTFREE * Funktionscode Freigeben PARAM-LIST * Parameterliste (Vorgangsidentifikator) RET-CODE. * Statusinformation Aufgrund dieses Aufrufs wird der Vorgangsspeicher freigegeben; der Datenhandler wird ebenfalls vom Abbruch informiert. III.5.1.1.7. (Zwischen-) Speichern von Vorgangsdaten Neben dem persistenten Speichern von Daten beim Abschluß eines Vorgangs stellt der Datensichtprozessor Funktionalität zur Zwischenspeicherung von Vorgangsdaten (zur späteren Weiterbearbeitung) und zur Speicherung über den Vorgangsabschluß hinweg zur Verfügung. Zum speichern und Laden von Vorgangsdaten muß jeweils der Vorgangsidentifikator mitgegeben werden: Bsp.: Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Speichern von Vorgangsdaten: DMStore Deklaration in HANDLE DMStore(hVorgang) HANDLE hVorgang; C-Syntax: // Vorgangsidentifikator Zurückgegeben wird der Vorgangsidentifikator (oder NULL im Fehlerfall). 88 © GDV 1999 Datenmanager Spezifikation des Datenmanagers Aufruf in CALL DATMAN COBOL-Syntax: USING FKTSAVE * Funktionscode Speichern PARAM-LIST * Parameterliste (Vorgangsidentifikator) RET-CODE. * Statusinformation Name der Prozedur/Funktion des Datensichtprozessors im Datenmanager zum Laden von Vorgangsdaten: DMLoad Deklaration in HANDLE DMLoad(hVorgang) HANDLE hVorgang; C-Syntax: // Vorgangsidentifikator Zurückgegeben wird der Vorgangsidentifikator (oder NULL im Fehlerfall). Aufruf in CALL DATMAN COBOL-Syntax: USING FKTLOAD * Funktionscode Laden PARAM-LIST * Parameterliste (Vorgangsidentifikator) RET-CODE. * Statusinformation III.5.1.2. Speicherverwaltung (Vorgangs-/Hauptspeicher) Die Speicherverwaltung hat - entsprechend dem Übersichtsbild Übersicht über die Laufzeitkomponenten des Datensichtprozessors zwei wesentliche Aufgaben: die Datenmodell-gerechte Verwaltung der Daten im Vorgangs-/Hauptspeicher die auf Performanz und Ressourcenoptimierung ausgerichtete Verwaltung des zur Verfügung stehenden Vorgangs-/Hauptspeichers III.5.1.2.1. Datenmodellgerechte Verwaltung der Daten im Speicher Während des Vorgangs verwaltet der Datensichtprozessor die Daten entsprechend dem logischen Datenmodell im Vorgangsspeicher. Er ist damit für die Einhaltung von Konsistenzregeln verantwortlich und „verwaltet“ die folgenden Datenmodellelemente: Informationsobjekte © GDV 1999 89 Spezifikation des Datenmanagers Versionen Instanzen (ganze Entitäten) Daten Pfade Modellpfade (zwischen Existenzen) und Versionspfade Datenmanager Um die beschriebenen Funktionen der Anwendungsschnittstelle ausführen zu können, muß der Datensichtprozessor deshalb intern mindestens die folgenden Funktionen realisieren: Insert einer neuen Existenz sowohl von abhängigen Entitäten als auch von Führungsentitäten Insert einer Version Löschen von Instanzen Modellnavigation Versionsnavigation Da der Datensichtprozessor während eines Vorgangs mehrfach zur Datenbeschaffung aufgerufen werden kann, realisiert er einen „Nachlademechanismus“ in der Weise, daß die noch fehlenden Daten nachgeladen und modellgerecht in den Hauptspeicher eingefügt werden. Aus Performanz- und Ressourcen-Gründen Reorganisationsfunktion zur Verfügung stellen. wird der Datensichtprozessor auch eine III.5.1.2.2. Verwaltung des Vorgangs-/Hauptspeichers Die Vorgangs- bzw. Hauptspeicherverwaltung des Datensichtprozessors hat folgende Aufgaben: Bereitstellen eines Speicherblocks bestimmter Größe Vergrößern/Verkleinern eines Speicherplates Zwischensichern von Speicherblöcken wieder Laden von Speicherblöcken Freigeben von Speicher Liefern von Adresspointern Aus Performanz- und Ressourcen-Gründen wird die Speicherverwaltung Funktionen zur Partitionierung des Speichers anbieten, z.B. danach, welche Daten während eines Vorgangs gelöscht und welche nicht gelöscht werden. 90 © GDV 1999 Datenmanager Spezifikation des Datenmanagers III.5.2. Der Datenhandler Der Datenhandler teilt sich auf in die physischen Zugriffe auf die jeweiligen Datenbanken und den Umbau der physischen in die logischen Entitäten. Im Folgenden wird der Teil der Zugriffe Ablaufsteuerung und der Umbau der Entitäten Transformation genannt. Unterschieden werden die Arbeitsgänge deshalb, weil für die verschiedenen Handler grundsätzlich unterschiedliche Informationen aus den Konfigurations- und Buildtime-Ebenen erforderlich sind. III.5.2.1. Schnittstelle zum Datensichtprozessor Die Kommunikation zum Datensichtprozessor findet ausschließlich mit der Transformation statt, auch wenn diese aufgrund der Daten nur eine Durchreichfunktion hat. Unterschieden werden muß bei der Schnittstelle zwischen Ein- und Ausgabe, bzw. zwischen lesendem und schreibendem Zugriff. III.5.2.1.1. Eingabeschnittstelle bei lesendem Zugriff Die Eingabe für die Transformation besteht nur aus dem Namen der logischen Datensicht und den Parametern, die von der Anwendung übergeben wurden. Aus dieser Information ermittelt die Transformation die zugehörige physische Datensicht, anhand derer die Zugriffe erfolgen können. Die Parameter werden gegebenenfalls auch in physische Werte umgesetzt. III.5.2.1.2. Ausgabeschnittstelle bei lesendem Zugriff Die Transformation hat anhand der physischen Entitäten die logischen Entitäten ermittelt und reicht diese unsortiert an den Datensichtprozessor weiter. Weiterhin werden anhand des logischen Datenmodells die Beziehungen zwischen den Entitäten ermittelt und an den Datensichtprozessor durchgereicht. Im Fehlerfall wird ein Zustandscode zurückgegeben, der von einer darüberliegenden Schicht interpretiert werden muß. III.5.2.1.3. Eingabeschnittstelle bei schreibendem Zugriff Der Datensichtprozessor übergibt der Transformation eine logische Datensicht mit konkreten Inhalten (Auszug aus dem Vorgangsspeicher). Hieraus ermittelt die Transformation die physische Datensicht und baut die Inhalte in die physischen Entitäten um. III.5.2.1.4. Ausgabeschnittstelle bei schreibendem Zugriff Je nach Erfolg des Schreibens übergibt die Transformation einen Zustandscode an den Datensichtprozessor. © GDV 1999 91 Spezifikation des Datenmanagers Datenmanager III.5.2.2. Die Transformation Die Transformation ist für den Umbau der logischen in die physischen Entitäten und umgekehrt zuständig. Sie bildet also entsprechend der Konfigurationsschicht die Logik in die Physik und die Physik in die Logik ab. Aus diesem Grunde ist es erforderlich, während der Runtime die betroffenen Teile des logischen Datenmodells in maschinenlesbarer Form vorzufinden, so daß die Abbildung funktioniert. Hierzu werden sogenannte Datenmodell-Bausteine benutzt, die gegebenenfalls auf Daten im Parametersystem zugreifen (siehe Masterplan). Weiterhin ist es erforderlich die Zuordnung von logischer zu physischer Datensicht während der Runtime zu kennen, da diese für die Verbindung zwischen Logik und Physik elementar ist. Die Transformation hat nichts mit der Anwendungsschnittstelle zu tun. Sie kümmert sich dementsprechend also auch nicht um Sortierung, Mengen und Einzelattribute, sondern sie behandelt nur ganze Entitäten in der von der Schnittstelle vorgegebenen Reihenfolge. III.5.2.3. Die Ablaufsteuerung Die Ablaufsteuerung behandelt nur physische Entitäten, die ihm die Transformation übergibt, oder die aufgrund der Datenbankzugriffe ermittelt werden. Ihre Aufgabe ist es, die in der Buildtime generierten Module wie Ablaufplan und I/O-Module aufzurufen und den Zustand nach deren Aufruf zu ermitteln und weiterzugeben. III.5.2.4. I/O-Module I/O-Module werden in der Buildtime generiert und dienen dazu direkt auf Datenbanken zuzugreifen. Für I/O-Module gelten folgende Festlegungen: Jede physische Entität hat mindest ein I/O-Modul. Unter den I/O-Modulen gibt es genau eins, welches die gesamte Struktur einer physischen Entität über den Primary Key ausgibt. Es kann auch I/O-Module geben, die auf mehrere physische Entitäten eines DB-Systems zugreifen. Verändernde Zugriffe sollten von separaten I/O-Modulen durchgeführt werden. Die I/O-Module können statisch in die Ablaufsteuerung generiert werden, um die Performance zu erhöhen. Sie eignen sich allerdings auch dazu Verteilungsaspekte zu implementieren, in dem Sie z.B. als RPC’s aufgerufen werden. III.5.3. Datenbank-Verfügbarkeit Das Thema Verfügbarkeit von Anwendungsresourcen, wie z.B. Datenbanken geht weit über die Funktionalität eines Datenmanagers hinaus. Der Sachbearbeiter sollte zu einem möglichst frühen Zeitpunkt auf Störungen in seinem Arbeitsprozeß hingewiesen werden. Aus diesem Grunde zieht sich das Verfügbarkeitshandling von der Workflow-Steuerung bis zur Funktionsbaustein- und Dienstebene 92 © GDV 1999 Datenmanager Spezifikation des Datenmanagers durch. Im Folgenden werden die Auswirkungen eines Verfügbarkeitshandlings auf den Datenmanager beschrieben, ohne die genaue Ausprägung des Handlings zu kennen. Weiter darüber hinausgehende Funktionalitäten, die den Datenmanager betreffen, können nur über die allgemeine Spezifikation eines Verfügbarkeitshandlings in der VAA-Architektur beschrieben werden. III.5.3.1.1. Voraussetzungen für logische Verfügbarkeit Um Geschäftsvorfälle durchgängig und ohne vergebliche Eingaben durchführen zu können, ist es notwendig, Informationen über die Verfügbarkeit von benötigten Resourcen zu bekommen. Hierzu gehören in erster Linie die Daten bzw. Datenbanken, ohne die ein Geschäftsvorfall nicht bearbeitet werden kann. Um ein logisches Verfügbarkeitshandling betreiben zu können, ist es notwendig, Daten über Zusammenhänge von Anwendungssystemen und den benötigten Ressourcen mit ihrem Verfügbarkeitsstatus zu speichern. Die Pflege dieser Bestände erfolgt hauptsächlich während des normalen Betriebs eines Anwendungssystems, da auf Störungen sehr schnell reagiert werden muß. III.5.3.1.2. Auswirkungen auf den Datenmanager Die Hauptauswirkung des Verfügbarkeitshandlings wird in der Ablaufsteuerung realisiert. Vor dem Aufruf eines I/O-Moduls muß anhand der Verfügbarkeitsdaten der Zustand der betroffenen Datenbanken geprüft werden. Ist nun ein Teil der im I/O-Modul angesprochenen physischen Entitäten nicht verfügbar, so wird das Modul nicht aufgerufen, und es muß mit einem entsprechenden Fehlercode reagiert werden. Sind aufgrund der Daten alle Ressourcen des I/O-Moduls verfügbar, so wird dieses aufgerufen. Stellt nun das I/O-Modul eine technische Nichtverfügbarkeit einer Datenbank (z.B. IMD-DB gestoppt) fest, so wird der ensprechende Fehlercode an die Ablaufsteuerung zurückgegeben. Diese muß nun die technische Nichverfügbarkeit in die logische umbauen und die Pflege der Verfügbarkeitsdaten übernehmen. Dies sollte allerdings nur in einem Aufruf eines Verfügbarkeitsmoduls bestehen, welches als Service im Rahmen des gesamten Verfügbarkeitshandlings existieren muß. © GDV 1999 93 Abbildung der Zeitlogik Datenmanager IV. Abbildung der Zeitlogik IV.1. Einleitung und Problemstellung In Versicherungsunternehmen fallen häufig Daten an, deren Änderungen im Laufe der Zeit nachvollzogen werden müssen. Dies sind insbesondere Informationen über rechtlich wirksame Vertragskonstellationen. Dieser Themenkomplex wird mit dem Schlagwort Historisierung tituliert. Eine detaillierte Beschreibung zum Thema Historienkozept ist im Anhang dieses Dokuments enthalten. Unter zeitabhängiger Datenspeicherung wird die Speicherung von verschiedenen zeitlichen Zuständen einer Entität verstanden. Generell lassen sich folgende Kategorien unterscheiden: aktuelle Daten zukünftige Daten historische Daten überschriebene Daten Die Datenmodellierung betrachtet normalerweise nur eine Zeitebene. In der Realität ist die Speicherung zeitlicher Entitätszustände allerdings in vielen Fällen notwendig. Beispiele sind: Vergangene, aktuelle und zukünftige Vertragszustände Zustände, auf denen Änderungen aufgesetzt werden. Der Modellierungsansatz der VAA berücksichtigt durch das Konstrukt des Informationsobjekts die Notwendigkeit der Versionsführung. Die zeitabhängige Betrachtung von Entitäten kann zur Erfüllung verschiedener Anforderungen konzipiert werden, z.B. könnte die Anforderung lauten: Der (rechtlich wirksame) Stand der Entitäten muß zu jedem Zeitpunkt rekonstruiert werden können. Damit müssen auch Werte, die im Nachhinein überschrieben worden sind, nachvollziehbar sein. Eine reduzierte Anforderung könnte sein: Es müssen nur die derzeit gültigen Werte eines vergangenen, aktuellen oder zukünftigen Zeitpunkts bekannt sein. Werte, die im Nachhinein geändert worden sind, müssen nicht rekonstruiert werden. Der elementare Zugang zu einer Darstellung zeitlicher Abhängigkeiten ist der Baum möglicher Änderungen einer Entität. Eine Entität nimmt im Laufe ihres Lebens verschiedene Zustände an. Ein Zustand ist für einen bestimmten Zeitraum, die Gültigkeitsdauer, relevant. Generell sind zwei Änderungsarten zu unterscheiden: 94 © GDV 1999 Datenmanager Abbildung der Zeitlogik Fortschreibungen, d.h. Änderungen des letzten gültigen Zustands einer Entität. Rückwirkende Änderungen, die nicht auf dem letzten gültigen Zustand aufsetzen und damit eine Reihe von Zuständen ungültig machen. Dieser Änderungsbaum wird im folgenden Beispiel veranschaulicht. Er wird von links nach rechts und von unten nach oben fortgeschrieben. Aktuell ist immer der obere Pfad mit all seinen Knoten. Ausgehend von dem Zustand (a) einer Entität werden die Zustände (b) - (e) im Zuge der Zeit eingefügt. Hierdurch wird der Pfad A gebildet, der durch die Gültigkeitsfolge A repräsentiert wird. Im Pfad B und C werden durch rückwirkende Änderung bereits bestehende Zustände überschrieben. Daraus resultieren die Gültigkeitsfolgen B und C. i j k f a b a g c b Pfad C l Pfad B h d Pfad A e c d e Gültigkeitsfolge A rückw irkende Änderung a b f g h Gültigkeitsfolge B rückw irkende Änderung a IV.2. Unterstützung des Historienkonzepts durch den Datenmanager i j k l Gültigkeitsfolge C Abb.: Änderungsbaum einer Entität IV.2.1. Die Bildung von Informationsobjekten Datenmodellentitäten, die in einem Informationsobjekt liegen, erfahren die gleiche zeitliche Behandlung. Bei Änderung einer Entität im Informationsobjekt wird eine Version des gesamten Informationsobjektes und damit eine Version aller darin enthaltenen Datenmodellentitäten erzeugt. Bei Navigation zwischen Entitäten eines Informationsobjektes bewegt man sich in einer Zeitscheibe, d.h. alle Entitäten haben dieselbe Version. Nur beim Übergang von einem Informationsobjekt in ein anderes muß dann noch eine Aussage zur gewünschten Version gemacht werden. IV.2.2. Versionsbildung Jede Version wird durch ihre Versionsnummer eindeutig identifiziert. Eine neue Version wird immer auf Basis einer bestehenden Version gebildet. Damit gibt es eine eindeutige Ursprungsversion, das ist die Version, die bei der Erzeugung einer Informationsobjektexistenz entsteht. IV.2.3. Definition eines Versionsbaums Relevante Daten für die Versionsführung sind die Versionsnummer, das ‘Gültig-ab-Datum’ (Gültigkeitsdatum) der Version, das Datum der Versionsbildung (Wissensdatum) sowie die Information, welche Version als Basis für eine neue Version gewählt wurde. In einem Diagramm mit den beiden Datumsangaben als Achsen und einer Verbindungslinie zwischen jeder Version und ihrer © GDV 1999 95 Abbildung der Zeitlogik Datenmanager Basis kann der sogenannte Versionsbaum dargestellt werden. Dieser stellt somit die auf die Anforderungen des Datenmanagers angepaßte Art des o.g. Änderungsbaums dar. Wissensdatum Datum 9 heute am Stichtag gültige Version: 7 aktuelle Version (heute gültig) : 8 neueste Version : 9 Vorgänger der Version 8 : 7 8 7 6 5 Abb.: Beispiel für einen Versionsbaum 4 3 Die Funktionalität des Datenmanagers setzt nur die2 im Versionsbaum definierten Informationen voraus, d.h. 1 die Versionsnummer, die Versionsnummer der Basisversion (Vorgänger), das Wissensdatum, das Gültig-ab-Datum. Stichtag Datum heute Gültigkeits datum Die Korrektheit und Konsistenz dieser Daten wird vom Datenmanager sichergestellt. Damit können alle üblichen Arten der Zeitlogik abgebildet werden. Die Definition und Sicherstellung einer speziellen Historienführung ist aus Sicht des Datenmanagers Aufgabe einer Anwendungsfunktion (z.B. des generellen Änderungsdienstes für ein Informationsobjekt). 96 © GDV 1999 Datenmanager Abbildung der Zeitlogik Beispiele für spezielle, in der Praxis oft gemachte Einschränkungen bei der Historienführung sind: Rückwirkende Änderungen sind nicht zulässig. Dann kann die Basis für eine neue Version immer nur die derzeit neueste Version eines Informationsobjekts (bzw. einer Entität) sein. Änderungen in der Vergangenheit sind nicht zulässig. Das Gültig-ab-Datum darf nicht kleiner als das Wissensdatum (d.h. das Datum der Änderung) sein. Die Gültigkeitskette muß lückenlos sein. Für jede Version muß das Gültig-ab-Datum mit dem Ungültig-ab-Datum der Vorgänger-Version übereinstimmen. © GDV 1999 97 Verteilung Datenmanager V. Verteilung Die EDV-Systeme, die heute neu konzipiert werden, sind meist keine reinen Host-Systeme mehr. Stattdessen setzt sich die Verwendung von Client/Server-Systemen immer mehr durch, in denen die Datenbank-Last von einem größeren Server (dem altgedienten Host) getragen wird und in dem die meist graphische Benutzeroberfläche auf einem Client-PC abläuft. Die genaue Verteilung der Anwendungs-Komponenten und der Datenbank-Zugriffsmodule ist vom Einzelfall abhängig. Auch der VAA-Datenmanager sollte in einem solchen Umfeld einsetzbar sein. Deshalb geben wir hier Vorschläge für eine mögliche Verteilung des VAA-Datenmanagers, die uns mit der heutigen Technologie sinnvoll erscheinen. Zukünftige Entwicklungen auf dem Feld der verteiten Systeme werden sicher bald neue Alternativen möglich und attraktiv machen. Wir sehen für die Verteilung des VAA Datenmanagers folgende Ansätze: V.1. Verteilte Datenbank Heutzutage unterstützen bereits viele Datenbanken eine Verteilung der Daten auf mehrere Rechner, die auf der Applikationsebene gar nicht mehr sichtbar wird. Diese Art der Verteilung muß natürlich gut geplant sein, damit nicht zu viele Querbeziehungen zwischen den Daten auf den unterschiedlichen Rechnern bestehen. Aus der architektonischen Sicht des Datenmanagers ist das aber wiederum unproblematisch, da keine weiteren technischen Vorkehrungen zur Implementierung von DatenbankFeatures im Datenmanager selbst getroffen werden müssen. V.2. Verteilung der I/O-Module Die direkte Schnittstelle zur physischen Datenbank des Datenmanagers sind die I/O-Module. Man könnte sich vorstellen, daß der Haupt-Anteil des Datenmanagers auf einem Rechner läuft, während die Datenbank-I/O-Module auf verschiedene Rechner verteilt sind. Damit beim Zurückschreiben von Daten aus dem Vorgangsspeicher in die beteiligten Datenbanken kein Datenverlust auftritt, müssen die zugrundegelegten eventuell verschiedenen Datenbanken ein 2-Phasen-Commit unterstützen. Die Verteilung von I/O-Modulen bedingt also, daß für Datenbank-übergreifende Operationen typische Datenbank-Funktionalitäten reimplementiert werden. 98 © GDV 1999 Datenmanager Verteilung V.3. Verteilung der Anwendungs-Module Für ein flexibles Design einer Anwendung wird eine weitergehende Verteilung benötigt. Oft sollen Anwendungs-Bausteine auf verschiedene Rechner im Netz aufgeteilt werden, da spezialisierte Applikations-Server für bestimmte Aufgaben existieren, die sich im Aufruf-Baum mit den Dialogen der Benutzerschnittstelle abwechseln. Dazu muß der Datenmanager auf jeder Plattform laufen, um den Inhalt des Vorgangsspeichers an den jeweils aktiven Prozeß im Verteilungs-Szenario weiterzugeben. Mit Unterstützung moderner Transaktionsmonitore ist dieses Szenario implementierbar, da Programmaufrufe über Rechnergrenzen hinweg automatisch einen Transaktionsspeicher mitgeben können. Natürlich muß beim Einsatz auf verschiedenen Hardware-Architekturen auf eine Hardware-unabhängige Speicherung der Daten im Vorgangsspeicher oder auf eine entsprechende Konvertierung geachtet werden. Auch Zugriffe auf I/OModule, die sich auf verschiedenen Rechnern befinden, lassen sich mit diesem Vorgehen implementieren. Damit übernimmt der Transaktionsmonitor eine wesentliche Rolle im ganzen Szenario. Das setzt voraus, daß die Verwaltung des Vorgangsspeichers und das Rollback der zugehörigen Datenbanken vom Transaktionsmonitor gesteuert wird. Der Transaktionsmonitor ist dabei zusammen mit der darunterliegenden Datenbank für das eventuell notwendige 2-Phasen-Commit zuständig. In diesem Fall ergibt sich ein enges Zusammenspiel des Transaktionsmonitors mit den darunterliegenden Datenbanken. V.4. Offline Verarbeitung Die Verwendung von mobilen offline-Clients (Notebooks) steigt auch in der Versicherungswirtschaft stetig. Notebooks werden nur manchmal an das firmenweite Netz angeschlossen und müssen dann die potentiell notwendigen Daten vom Datenbankserver holen und neu erfaßte Daten und Änderungen zurückspielen. Bei Verwendung des Datenmanagers kann man sich dazu zwei mögliche ArchitekturVarianten vorstellen: 1. Das Notebook lädt bei der Verbindung mit dem Firmen-Netz alle Daten, die für die nächsten Geschäftsvorfälle notwendig sein könnten, in einen eigenen Vorgangsspreicher. Im Offline-Betrieb wird der Vorgangsspeicher gelesen, Schritt für Schritt modifiziert oder mit weiteren Daten gefüllt. Erst wenn wieder eine Verbindung zur zentralen Datenbank hergestellt ist, kann der Vorgangsspeicher auch zurückgeschrieben werden. 2. Man verwendet Replikations-Mechanismen einer Datenbank, um vor Einsatz eines Notebooks relevante Teile der Datenbank auf den Offline-Client herunterzuladen. Die Offline-Verarbeitung geschieht dann auf der lokalen Datenbank. Bei der nächsten Verbindung mit dem DatenbankServer müssen geeignete Replikationsmechanismen die gegenseitigen Änderungen der lokalen und der Host-Datenbank nachführen. Wie man sieht, ist die Verteilungsproblematik sehr komplex und muß auch im Gesamtumfeld von VAA, also in der VAA-Gesamtarchitektur gelöst werden. Aus Sicht des VAA-Datenmanagers können nur Vorschläge gemacht und Hinweise auf versteckte Probleme gegeben werden, leider aber keine Patentlösungen vorgestellt werden. © GDV 1999 99 Migrationsverfahren Datenmanager VI. Migrationsverfahren Migration bezeichnet den einmaligen Übergang von einem Ausgangssystem in das Zielsystem. Das Ausgangssystem hat üblicherweise zwei Softwareschichten: 1. Programmschicht, bestehend aus Präsentation, Steuerung, Funktion und Datenzugriff in weitestgehend vermischter Form. 2. heterogen vermischte Datenbasis (hierarchisch, relational, (index)sequentiell) Das Zielsystem gehorcht der VAA-Architektur und zeichnet sich durch das Vorhandensein des entkoppelnden Datenmanagers aus. Die Einführung eines VAA-Anwendungssystems erfordert in der Regel Migrationen in mehrfacher Hinsicht: Organisation Anwendungssystem Daten In diesem Dokument wird die Organisationsmigration nicht betrachtet. Zu unterscheiden ist die Migration von der Integration. Als Integration wird die Anbindung des neu einzuführenden Systems an „fremde“ Verfahren (besonders Altverfahren) bezeichnet. Üblicherweise gebietet die Mächtigkeit von Versicherungsanwendungssystemen die Systemmigration in mehreren Etappen. Für jede „unvollständige“ Systemmigration wird ein Integrationsschritt erforderlich, der die Kopplung zwischen migrierten und nicht migrierten Teilsystemen herstellt. Die Logik „was nicht migriert wird, muß integriert werden“ legt die Wahl möglichst mächtiger Migrationsetappen nahe. Aufgrund der höheren Flexibilität des Neusystems scheiden Altsystemadaptionen meistens aus. Das Konzept des VAA-Datenmanagers erleichtert die Migration erheblich, da Zugriffe auf „fremde“ Datenbasen relativ einfach möglich sind. VI.1. Datenmigration Die Datenmigration führt den Altdatenbestand in einer Stichtagsumstellung in die neue Datenbasis über. Danach sollten die neuen Verfahren ohne spezielle Adaptionen betrieben werden können. Als wesentlicher Designakt für die Datenmigration ist die Transformationsdokumentation vom ISTphysikalischen-Datenmodell auf das NEU-logische Datenmodell hervorzuheben. Die Entwicklungswerkzeuge des Datenmanagers können hiebei von großem Nutzen sein. Diese Vorgehensweise erfordert das gezielte Reengineering der vorhandenen Datenstrukturen im Hinblick auf Befriedigung der Erfordernisse des neuen Datenmodells. Im Zuge dieses Reengineerings 100 © GDV 1999 Datenmanager Migrationsverfahren müssen üblicherweise Programme des Altsystems analysiert und dokumentiert werden, da sich die Bedeutung vieler Datenfelder erst im Kontext mit ihrer Verarbeitungslogik erschließt. Die Durchführung der Datenmigration muß möglichst schnell erfolgen, da währenddessen die Datenbasis nicht verändert werden kann (= Betriebsstillstand). Aus diesem Grund bietet sich bei großen Organisationen eine etappenweise Migration an (z.B. spartenweise erst Bestand, dann Schaden, ...). VI.2. Verfahrensmigration durch Altdatenintegration Zugriff von neuen Verfahren auf Altdatenbestände. Diese Vorgehensweise wird durch das Datenmanagerkonzept unterstützt. Idealerweise brauchen nur spezifische Zugriffsroutinen für die Altdatenbasis verwendet werden und die neuen Verfahren funktionieren „ohne“ Migration. Sozusagen wird die Migration ersetzt durch die (Online-) Integration der neuen Verfahren mit der Altdatenbasis. Anzumerken ist allerdings, daß durch das schönste Neuverfahren die Altdatenbasis nicht besser wird. Auch gelten alle Reengineeringanforderungen aus der Datenmigration für diese Vorgehensweise. VI.3. Unterlegung von neuen Datenmodellen Attraktive Altverfahrensfunktionalität kann durch Unterlegung der neuen Datenstrukturen erhalten werden. Voraussetzung ist die strukturelle Eignung der Altprogramme für die Verwendung des Datenmanagers (Datenzugriffsschicht!). Fehlt diese Voraussetzung, droht dieser Weg unwirtschaftlich zu werden gegenüber einer Neuentwicklung. VI.4. Migrationsverfahren bei der Württembergischen Versicherung Folgende Verfahren wurden bei der Württembergischen bei der Einführung ihres Datensichtprozessors bereits erfolgreich angewendet: VI.4.1. Komplette Umstellung der Anwendung auf eine neue Architektur Bei dieser Umstellung werden die Architurkomponenten Datenmanager, Dialogmanager und Vorgangsmanager sowie die allgemeinen Anwendungsbausteine Tarifierung, Provisionierung, Dokumentierung, Schnittstellenbelieferung und Prüfsystem verwendet. Praktisch ist diese Art der Umstellung eine komplette Neuentwicklung des Anwendungssystems, bei dem die bestehenden Daten übernommen und in das erforderliche Format konvertiert werden. Die Vertragsverwaltung wurde bei der Württembergischen spartenweise in dieser Form umgestellt. Dies erfolgte jeweils dann, wenn für die jeweilige Sparte ohnehin ein Redesign der Anwendungen erforderlich war. Durch die Nutzung der Architekturkomponenten und dem damit verbundenen hohen Wiederverwendungsgrad gelang es, diese Redesign-Projekte deutlich kostengünstiger zu realisieren. © GDV 1999 101 Migrationsverfahren Datenmanager VI.4.2. Stufenweise Umstellung von Anwendungen Bei einer Umstellung wird die Kernanwendung im Rahmen einer neuen Architektur entwickelt, Teilsysteme können unverändert weitergenutzt werden. Dazu müssen auch die Datenbestände ins Unternehmensdatenmodell integriert werden, die in der alten Speicherungsform weiterverwendet werden. Durch die Trennung von logischem und physischem Modell ist dies möglich, ohne im logischen Modell zu große Kompromisse einzugehen. Bei der Württembergischen wurden die Systeme Kunde und Schaden zunächst nicht verändert. Aus Sicht der neuen Anwendungen sind diese Systeme dennoch völlig integriert, d.h. die Kunden- und Schadendaten werden bereits über den Datenmanager gelesen und verändert und die Anzeige der Daten erfolgt bereits durch den neuen Dialogmanager. VI.4.3. Verwendung des Datenmanagers in bestehenden Anwendungen Dies ist mit vertretbarem Aufwand immer dann möglich, wenn bereits zentrale Zugriffs- und Updateroutinen für die Datenbestände existieren (was in vielen Firmen ja der Fall ist). Die betreffenden Datenbestände werden neu modelliert und in das Unternehmensdatenmodell integriert, die physische Struktur wird angepaßt und die alten Daten werden in die neue Form konvertiert. Die bestehenden Zugriffs-und Updatemodule werden auf den Zugriff über den Datensichtprozessor umgestellt. An die aufrufende Anwendung wird die gleich Schnittstelle wie früher zurückgeliefert. Bei der Württembergischen wurde dieses Verfahren verwendet, als das Kundensystem weiterentwickelt wurde. Alle Anwendungen, die bereits auf die neue Architektur umgestellt waren, greifen über den Datensichtprozessor direkt auf diese Kundendaten zu. „Alt“-Anwendungen rufen nach wie vor die zentralen Kunden-Module auf und bekommen ihre Daten in der derselben Form wie vorher. 102 © GDV 1999 Datenmanager Glossar VII. Glossar Abbildung Abbildungsvorschrift vom logischen auf das physische Datenmodell Ablaufplan vom PDaSi-Generator erzeugtes Zugriffsprogramm, welches alle Funktionen enthält, die DB-übergreifend sind. Ruft die I/OModule auf Ablaufsteuerung Komponente im Datenhandler: aktiviert die benötigten Ablaufpläne und darüber indirekt die I/O-Module in der optimalen Reihenfolge AEM Ausgabeentitätsmenge Aggregation Mehrere Entitäten des logischen Datenmodells werden zu einer Einheit des physischen Datenmodells zusammengefaßt Archiv ein Hintergrund-Speicher gewordenen Zweige Historienführung Basisversion Kopiervorlage zur Bildung einer neuen Version Blättern, historisch Lesen der Versionen eines zeitlicher Reihenfolge Buildtime hier werden durch Generatoren Bausteine erstellt, die für den Einsatz zur Laufzeit optimiert sind Commit - Aufruf Anforderung zur persistenten DB-Ablage bei Vorgangsende Datenhandler DB-nahe Datenmanager-Komponente: funktionale Hülle um Transformation und Ablaufsteuerung Datenmanager siehe Zusammenfassung am Ende des Kapitel I Datensicht, logische Logische Datensichten sind hierarchische Bäume, die sich z.B. durch die Jackson-Notation beschreiben lassen. Logische Datensichten beschreiben die Daten in der Form, wie das Anwendungsprogramm sie gerade benötigt. Datensicht-Selektion beschreibt die Regeln und Bedingungen, mit welchen die Treffer einer Datensicht bestimmt werden © GDV 1999 für alle ungültig innerhalb der Entitätstyps in 103 Glossar Datenmanager Datensicht-Struktur beschreibt die Anordnung (Reihenfolge, Gruppierung und Hierarchie, Alternativen) der durch die Datensicht-Selektion ermittelten Instanzen Datensichtentität siehe DSE Datensichtprozessor Datenmanager-Komponente: wird von einer Anwendung (d.h.einem Funktionsbaustein oder einer Komponente der Steuerungsebene) unter Angabe einer logischen Datensicht und der zur Ausführung erforderlichen Parameter aufgerufen Datensichtsprache Beschreibungsmittel für die an der Anwendungsschnittstelle bereitzustellenden Daten auf konzeptioneller Ebene (ERM) DSE Datensichtentität; wird innerhalb einer Datensicht als Navigationsbrücke gebraucht E/R-Modell Entity-Relationship-Modell zur Beschreibung fachlicher Zusammenhänge von Unternehmensdaten E/R-Sprache Modellierungs- bzw. Beschreibungssprache für das logische Datenmodell Entität siehe Entity Entität, abhängige Entität, die nicht Kernentität ist Entity ein abgrenzbares „Objekt“ der Diskurswelt, das ein reales Objekt oder eine gedankliche Abstraktion davon darstellt Entity-Menge im Sinne von Entitytyp Entitytyp Zusammenfassung unterschiedlicher Entities eines Systems, die durch dieselben bedeutungsvollen Attribute (Eigenschaften/Merkmale) charakterisiert werden Existenz alle Versionen zu einer bestimmten Instanz in einer Zeitperiode Führungsentität Einstiegsentität in ein Informationsobjekt, die von keiner anderen Entität des gleichen Informationsobjekts abhängig ist Gültigkeitsabschnitt Zur Beschreibung von Gültigkeitsabschnitten sind die zwei Attribute Beginn und Ende notwendig 104 © GDV 1999 Datenmanager Glossar Historie die vergangenen Abschnitte des derzeit gültigen aktuellen Zweigs einer Entität Horizontale Partitionierung Eine Entität des logischen DM wird auf mehrere Einheiten des physischen DM’s verteilt, indem eine Zuordnung auf Schlüsselebene erfolgt I/O-Module führen (in den Ablaufplan eingebunden) die Datenbank-Zugriffe durch Informationsobjekt aggregierendes Konstrukt im Entity-Relationship Modelling des VAA im Sinne einer Zusammenfassung von Entitäten, die derselben Zeitlogik gehorchen Instanz im Sinne von Entität, d.h. Ausprägung eines Entity-Typs i.a. zum aktuellen Zeitpunkt Jackson-Notation Ein Programm wird baumstrukturartig durch eine Folge von Sequenzen, Iterationen und Selektionen dargestellt Kernentität unabhängige Entität, die von keiner anderen Entität existentiell abhängig ist Konfiguration Zeitraum im Vorgehensmodell, in dem die administrativen Voraussetzungen für den Betrieb des Datenmanagers getroffen werden Konfigurationsdaten Daten zur Anpassung von Bausteinen in eine techn. Umgebung; legen zu operativen Daten z.B. Darstellungseigenschaften auf den Ausgabemedien fest LDaSi - Editor graphischer Editor zur Definition einer logischen Datensicht auf Basis des logischen Datenmodells LDaSi - Generator Der LDaSi-Generator ist zur Buildtime zuständig für die Kompilation der logischen Datensicht, die mit dem LDASI-Editor erstellt wurde, in eine Form, die vom Datensicht-Prozessor abgearbeitet werden kann LDM - Editor graphischer Editor zum Aufbau und zur Pflege des logischen Datenmodells NF2-Struktur non-first-normal-form Datenstruktur mit multiplen Bereichen (Tabellen) und Schachtelungen analog zur Jackson-Notation © GDV 1999 105 Glossar Datenmanager PDaSi - Editor graphischer Editor zur Definition einer physischen Datensicht auf Basis des physischen Datenmodells (Datenbankschemas) PDaSi - Generator erzeugt das Ablaufplanprogramm (das RuntimeModul für die Ablaufsteuerung) und die I/OModule PDM - Editor graphischer Editor zum Aufbau und zur Pflege des physischen Datenmodells Redundanz Entitäten (oder Teile davon) werden physisch redundant gespeichert, d.h. es erfolgt eine parallele Zuordnung zu mehreren physischen Einheiten Semantik Bedeutungsumfang eines Modellkonstrukts für den zugehörigen Realitätsausschnitt Sicht, interne technische Sicht der Daten aus der Perspektive eines DBMS Sicht, konzeptionelle siehe Datensicht Transformation im Datenhandler: ermittelt die zugehörige physische Datensicht und führt die erforderlichen Parameterumsetzungen durch. Außerdem Umsetzung der log. in phys. Entitäten anhand der Abbildungsdefinition Übergabetabelle eine im Vorgangsspeicher als Ergebnis der Datenanforderung zur Verfügung gestellte, gefüllte Treffertabelle mit Referenzen auf die gefundenen Instanzen Version zeitpunktbezogene Betrachtung einer Entität in ihrem Lebenslauf Versionsführung im Sinne von Zeitlogik: Verwaltung zeitlich unterschiedlicher Ausprägungen einer Entität Vorgangsspeicher benutzerspezifischer Hauptspeicherbereich, der Instanzen enthält, die gemäß den im logischen Datenmodell definierten Beziehungen aufgebaut werden Zeitbedingungen Zeitbedingungen formulieren Bedingungen, die Versionen einer bestimmten Entität in Beziehung setzen Zeitlogik Zeitabhängige 106 Datenspeicherung, siehe auch © GDV 1999 Datenmanager Glossar Versionsführung Zuordnung © GDV 1999 Baustein, der einer log. Datensicht eine physische Datensicht zuordnet 107