OCT bietet vielfältige Möglichkeiten zur Entwicklung individueller Lösungen. Für die strukturierte und nachhaltige Umsetzung spezifischer Anforderungen haben sich bewährte Entwurfsmuster (Design Patterns) als solide Grundlage für Architektur, Struktur und Kommunikation etabliert.
Wer sich intensiver mit diesem Thema beschäftigen und die “Gang of Four” kennenlernen möchte, findet weiterführende Informationen im Buch "Entwurfsmuster" .
Entwurfsmuster für die Datenintegration
-
Modul–Konnektor-Prinzip
-
Erstellen Sie zunächst ein Modul (Fachmodell) als universelle Lösung, die unabhängig von einer konkreten Datenquelle ist.
-
Entwickeln Sie anschließend für jede relevante Datenquelle einen passenden Konnektor für dieses Fachmodell.
-
Der Konnektor liest die notwendigen Inhalte aus der Datenquelle und übersetzt diese in die Sprachkonventionen des Fachmodells.
-
Der Konnektor bildet dabei genau den Datenumfang des Fachmodells ab und holt keine Daten darüber hinaus.
-
→ Dieses Prinzip wird bei Saxess zur Realisierung von Schnittstellen für Finanzbuchhaltungssysteme eingesetzt.
-
Gateway - Prinzip
-
Verwenden Sie ein Gateway, um Daten aus schwer zugänglichen oder schwer konsumierbaren Quellen (z. B. APIs oder rechtlich eingeschränkten Systemen) in einen leicht zugänglichen Datenbestand zu spiegeln.
-
Das Gateway belässt die Daten dabei weitestgehend originalgetreu.
-
→ Wird bei Saxess zur Realisierung von Schnittstellen zu Systemen eingesetzt, die sehr kundenindividuell ausgewertet werden.
-
Virtual Datawarehouse
-
Die gesamte Auswertungsstruktur basiert ausschließlich auf Sichten und Live-Abfragen.
-
Das Data Warehouse ist daher stets auf dem gleichen Stand wie das Vorsystem und kommt ohne Transferprozesse aus.
-
→ Wird bei Saxess nur sehr selten als Individuallösung eingesetzt.
-
Permanente Replikation
-
Die Daten werden zwischen Quelle und Ziel nicht periodisch, sondern in Echtzeit über getriggerte Prozesse ausgetauscht.
-
Beispielsweise kann das Transaktionslog des SQL Servers abonniert werden, sodass alle relevanten Transaktionen sofort Änderungen im Ziel auslösen.
-
Die Datenquelle muss dafür stets einen verwertbaren Aktionsstrom bereitstellen.
-
→ Ist bei Saxess derzeit nicht im Einsatz.
Entwurfsmuster für die Datenerfassung
-
-
Die Planungskomponenten von OCT sind selbst von einem Entwurfsmuster der Softwareentwicklung inspiriert.
-
Da Planung sehr vielfältig ist und nicht vollständig in konkrete Begriffe gefasst werden kann, sind die Komponenten der Planung vollständig abstrahiert – in Form von Fabriken, Produktlinien und Produkten, die im jeweiligen Kontext beliebige konkrete Elemente annehmen können.
-
-
Load Model
-
Fabriken / Produktlinien / Produkte werden nicht direkt über die entsprechenden POST Befehle erstellt.
-
Stattdessen werden die benötigten Objekte in Load-Tabellen geschrieben (als eine Art To-do-Liste für die Anlage).
-
Anschließend erzeugen bzw. aktualisieren standardisierte Load-Prozeduren die entsprechenden Objekte.
-
→ Dies erleichtert die Bedienung für Anwender, die sich nicht mit der Erstellung von gespeicherten Prozeduren (Stored Procedures) oder der Verwendung von Cursor auskennen.
-
Templatematerialisierung
-
Ein Produkt zeigt Daten immer in einer tabellarischen Form mit mehreren nebeneinander angeordneten Spalten. In der Datenbank hingegen sind diese Daten aber in der Tabelle „planning.tfValues“ spaltenweise untereinander gespeichert.
-
Eine Materialisierungsprozedur erzeugt eine neue Tabelle in der Datenbank, welche die Spalten wie in der Oberfläche zeigt - und ermöglich so leichtere JOINS etc. für Auswertungen und vermeidet die komplexe und performancekritische Arbeit mit dem PIVOT Befehl in Abfragen zur Laufzeit.
-
Die Prozedur materialisiert alle Produkte, welche auf dem gegebenen Template basieren.
-
Von den Produkten können beliebig viele in beliebigen Fabriken / Produktlinien existieren.
-
Jedes Produkt kann individuell als aktiv oder inaktiv geschalten werden. Nur aktive Produkte werden bei der Materialisierung berücksichtigt.
-
Tabs vom Tab-Typ “Pivot-Tabelle” ermöglichen jederzeit den Überblick über alle Daten in Produkten dieses Templates.
-
Entwurfsmuster für SQL Prozeduren
-
Die Tabelle der vielen Updates
-
Wir wollen für 100 Personen viele Eigenschaften zeigen - Größe, Wohnort, Anzahl Klimmzüge, Bestzeit 5 km Lauf - die sich alle aus verschiedenen Quellen ermitteln.
-
Erstellen Sie am Anfang der Prozedur die vollständige Zieltabelle - alle Personen mit leeren Spalten für alle Eigenschaften.
-
Schreiben Sie viele UPDATE Befehle und füllen Sie so Spalte für Spalte der jeweiligen Quelle aus.
-
Auf diese Weise sind die Anzahl der Zeilen und Spalten von Anfang an korrekt – bei einer Umsetzung mit vielen JOINS wäre dies deutlich fehleranfälliger.
-