Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:architecture

Architektur

Die SmartEngine dient der Verwaltung sämtlicher Daten der dStore Plattform und besteht im wesentlichen aus zwei Komponenten :

  • Tabellen (Daten-Speicherung)
  • Prozeduren (Daten-Zugriff)

Tabellen und Prozeduren

Besonderheit ist, daß der Daten-Zugriff über Prozduren erfolgt, die ebenfalls in der Datenbank gespeichert sind - sogenannte „stored procedures“. Den grundsätzlichen Funktionsweisen bzw. Möglichkeiten dieser Prozeduren und ihrer Verwendung haben wir ein eigenes Kapitel („Engine-Prozeduren“) gewidmet, das man sich auf jeden Fall anschauen sollte.

An dieser Stelle sei ausdrücklich darauf hingewiesen, daß ein schreibender Zugriff auf die Tabellen in jeglicher Form (anders als über die dokumentierten Prozeduren) untersagt ist, da sonst keine Daten-Integrität gewährleistet werden kann.

Ein lesender Zugriff sollte aus folgenden Gründen ebenfalls nur über die Prozeduren gemacht werden :

  • Die Logik der Datenspeicherung ist etwas komplizierter als üblich
  • Die Prozeduren sind auf Performance hin optimiert und berücksichtigen, daß parallel noch sehr viele andere (insbesondere schreibende) Zugriffe erfolgen können
  • Es gibt keinerlei Garantien für Abwärts-Kompatibilität der Tabellen (sondern nur für die öffentlichen dokumentierten Prozeduren), so daß z.B. nach einem update ein bestimmtes SQL-statement u.U. nicht mehr funktioniert.

Anmerkung : „Eigene“ (auch „customized“ genannt) Tabellen, Trigger oder Prozeduren dürfen zwar prinzipiell erstellt werden, dabei ist aber unbedingt auf entsprechende Konventionen hinsichtlich der Namen zu achten, wie in „Namens-Konventionen“ beschrieben.

Datenbank-Software

Sowohl Tabellen als auch Prozeduren sind sehr speziell auf bestimmte Funktionen der Datenbank-Software hin optimiert, um einen guten Kompromiß zwischen einer hohen Anzahl Transaktionen aber auch einer hohen Anzahl an (lesenden) Abfragen zu erreichen. Da zudem die auf der Engine basierenden Anwendungen eine hohe Stabilität und Sicherheit voraussetzen und auch die Wartbarkeit gewährleistet sein muß, haben wir uns für ein einziges System entschieden. Hinweis : Mit der Gewährleistung der Wartbarkeit soll auf die verschiedensten SQL- Dialekte und -Erweiterungen angespielt werden, die es in zahlreicher Form gibt, und die meistens imkompatibel zueinander sind. Nicht zuletzt aufgrund der Verfügbarkeit für eine Vielzahl an Betriebssystemen (inkl. einer kostenlosen Version) und der guten Skalierbarkeit läuft die SmartEngine ausschließlich auf dem SAP Sybase Adaptive Server Enterprise (vormals: Sybase Adaptive Server Enterprise). Derzeit unterstützte Versionen sind 15.7 SP101 (alle unterstützten Betriebssysteme) und höher.

Die SQL-Erweiterung von Sybase für (u.a.) Prozeduren heißt T-SQL1) (für „Transact Structured Query Language“) und wird auch größtenteils vom Microsoft SQL-Server (da aus dem Sybase-Produkt hervorgegangen) unterstützt. Daher konnte die Engine ebenfalls eine Zeit lang auf dem SQL-Server installiert werden. Weil es aber mittelweile doch signifikante Unterschiede gibt, die zu einer parallelen Entwicklung zumindest von einem Teil der Prozeduren führen würden, haben wir von einer weiteren Unterstützung dieser Datenbank-Software abgesehen.

Die Struktur der ASE-Software ist so ausgerichtet, daß ein „Server“ mehrere Datenbanken verwaltet, die sich in System- und Benutzer-Datenbanken aufteilen. Dies bietet die Möglichkeit, Daten logisch zu trennen, wovon die Engine auch Gebrauch macht : Es gibt neben der „eigentlichen Engine-DB“, auch „Customer-DB“ genannt, in der letztlich die Nutzdaten wie Artikel, Kunden, Aufträge etc. gespeichert sind, weitere Hilfs-Datenbanken. Näheres hierzu ist im Kapitel „Die ‚anderen‘ Datenbanken“ nachzulesen, das zusammen mit dem Kapitel „Engine-Prozeduren“ am besten verdeutlicht, warum eine Portierung auf ein anderes System ein quasi hoffnungsloses Unterfangen ist, bzw. eine komplett eigene, parallele Entwicklung bedeuten würde.

Source-Code

Die Definition sämtlicher Tabellen in allen von der Engine verwendeten Datenbanken ist frei einsehbar und kann mit diversen Tools auch extrahiert und graphisch dargestellt werden. Ein sogenanntes Tabellen-Modell existiert in Form von Dateien, die mit dem „PowerDesigner“ von Sybase erstellt wurden, und nur auf gesonderte Anfrage hin zur Verfügung gestellt werden.

Der Source-Code sämtlicher Engine-Prozeduren und -Trigger ist bis auf wenige Ausnahmen (siehe "Actions-Konzept“) nicht in der Datenbank-Software einsehbar und wird auch anderweitig nicht herausgegeben.

engine/architecture.txt · Zuletzt geändert: 13.11.2014 (Externe Bearbeitung)