DATENBANKEN ALS BACKEND FÜR DIE KONFIGURATION UND

Werbung
DATENBANKEN ALS BACKEND FÜR DIE KONFIGURATION UND
VERWALTUNG VON HARD- UND SOFTWARE
Was ist BESSY und wie funktioniert es eigentlich?
BESSY Datenbank
Was ist BESSY?
Berliner Forschungsinstitut als Dienstleister in wissenschaftlich
technischem Umfeld
• Betreiber zweier Elektronenspeicherringe (3. Generation) mit Dipol-, Wiggler- und
Undulatorstrahlrohren
• Bereitstellung von Experimentierplätzen zur Nutzung der erzeugten brillanten
Synchrotronstrahlung (langwelliger THz Bereich bis harte Röntgenstrahlung)
• Entwicklung von Geräten und Instrumenten, physikalische Grundlagenforschung
• Zusammenarbeit mit DAISY, PTB, HMI, MPG und andere internationalen
Synchronstrahlenquellen weltweit
P. Laux/BESSY
BESSY Datenbank
Funktionsweise
Speicherring
P. Laux/BESSY
Durch magnetische Felder abgelenkte Elektronen erzeugen
abhängig von der Stärke der Ablenkung Synchrotronstrahlung.
Um eine Nutzung zu ermöglichen sind also verschiedene
magnetische Elemente notwendig, die diagnostische und auch
regelnde Eigenschaften haben müssen
BESSY Datenbank
Funktionsweise
Geräte
Undulator
Wiggler
ablenken
P. Laux/BESSY
BESSY Datenbank
Funktionsweise
Geräte
Netzgerät
Magnet
Interfacekarte
Strahlrohr
uni/bipolar
Steuerrechner
NFS, TFTP
EPICS, CA
ADA, IO32
40.00V
Netzwerk
Strahllagemonitor
Fehler,
Probleme
Anfrage,
Werte
Kontrollsystem, IRMIS
P. Laux/BESSY
BESSY Datenbank
Funktionsweise
Software der Leittechnik
EPICS DB
Kompilierung
Templates,
Scripte
DARCS
3
Dialoge,
Kernel
4
2
1
Oracle
Kontrollsystem
P. Laux/BESSY
BESSY Datenbank
Anforderungen
Über 6000 Geräte bei BESSY 2 und bis zu
1000 bei MLS
heterogene Geräte (vom Temperatursensor
über IOC bis zum Microtron) steuern und
verwalten
Kontrolle softwaretechnisch durch Steuerung
über IOCs mit EPICS
Wartung und Kontrolle der Geräte und ihrer
Konfigurationen
Arbeitsgruppen brauchen gemeinsame Quelle
OS unabhängige Wertedarstellung
Anbindung an Programmiersprachen
P. Laux/BESSY
BESSY Datenbank
Häufige auftretende
Fragen
Wo steht das Gerät?
Welche Funktion hat das Gerät?
Wer ist zuständig dafür?
Welcher Typ von Gerät ist das?
Welche Werte liegen aktuell an?
Wird das Gerät überwacht?
Wie kann das Gerät geregelt werden?
P. Laux/BESSY
Was war und was ist, eine Übersicht.
BESSY Datenbank
Geschichte und Gegenwart
Jedes Gerät erhält einen eigenen eindeutigen Namen nach
Namenskonvention. Aus dem kurzen Namen müssen Gerätefamilie,
Gerätestandort ersichtlich sein und auch die Funktion
Gerätefamilien/-gruppen sagen etwas über die Funktionalität aus
Abhängigkeiten unter den Gerätefamilien beständig auflösen
Arbeiten mehrerer Nutzer ermöglichen
Parameter und Konfiguration formatfrei einsehbar und ermittelbar
Sicherung der angefallenen Daten
P. Laux, /BESSY
BESSY Datenbank
Der Name
Zur eindeutigen Identifizierung der Geräte erfordert es eine BESSY-weiten
Namensgebung.
Definition als Regulärer Ausdruck:
[A-Z]+([0-9]+(-[0-9]+)?)?[BCFGHIKMNOPQRSTVWXYZ][0-9]*([DTSX][09]*)?[BCGILMRTV][FP]?
Nun in diesem Strickmuster stecken folgende Informationen:
Name, bestehend aus alphabetischen Zeichen und numerischem Index
Gerätefamilie aus einem unärem Zeichen
Ort durch bilden eines hierarchischen Pfades Facility->Domain->Subdomain
P. Laux/BESSY
BESSY Datenbank
Geschichte und Gegenwart
Innerhalb der Gerätegruppen
stellen die klassischen relationalen
Ansätze eine heile Welt dar, jedoch
übergreifend als zu fragmentiert und
schlecht durchschaubar. Durch
gesamtheitliche Komplexität
gestalten sich Eingabehilfen als viel
zu aufwendig und auch schwer
wartbar, weil die Gerätegruppen
extrem heterogene Daten enthalten.
P. Laux, /BESSY
BESSY Datenbank
Beispiele - HF
P. Laux/BESSY
BESSY Datenbank
Beispiele - CAD
Die CAD Daten bestehen aus mehreren
Messdatensätzen, von denen eine der
Tabellen aktuelle Daten enthält.
Bei dieser Struktur habe ich bereits
eine Simplifizierung vorgenommen.
Probleme hier, ohne
richtige Umbauaktionen
Dürfte sich dieses Problem
so schnell nicht beheben lassen,
da zu viele Anwendungen
von diesen Daten abhängen.
P. Laux/BESSY
BESSY Datenbank
Beispiele - PS
Auch hier wurden sehr
erquickliche Strukturen erzeugt.
Doch in den beiden grossen
Tabellen werden im Schnitt 8
Spalten beschrieben und benutzt,
weil die Geräte entweder gar
nicht allen Daten gerecht werden,
die meisten sich zu oft ändern
oder Geräte „mal eben schnell“
ausgetauscht werden. Böses
Beispiel hier Wert start_i und
neben Tabelle p_ps_bit_temp.
P. Laux/BESSY
BESSY Datenbank
Beispiele - Views
select pemi.mag_lock_key,
pn.ps_key, pn.name ps,
0 magnet_key, '-' magnet,
ioc.ioc_key, ioc.name ioc,
asg, pemi.description,
extension, znam, onam, calc, gui_sort
from p_magnet_epics_interlock pemi, ps_names pn, ioc
where pn.ps_key = pemi.ps_key and ioc.ioc_key = pemi.ioc_key
union
select pemi.mag_lock_key,
0 ps_key, '-' ps,
m.magnet_key, m.name magnet,
ioc.ioc_key, ioc.name ioc,
asg, pemi.description,
extension, znam, onam, calc, gui_sort
from p_magnet_epics_interlock pemi, magnet_names m, ioc
where pemi.magnet_key = m.magnet_key and ioc.ioc_key = pemi.ioc_key
P. Laux/BESSY
BESSY Datenbank
Beispiele - Views
select cad_key key, name, member, ind, family, counter, subdomain, domain,
description
from cad
union
select ps_key key, name, member, ind, family, counter, subdomain, domain,
description
from ps
union
select p_kick_names.kick_key key, name, member, ind,
p_kick_names.family, counter, subdomain, domain, description
from p_kick_names, kicker_ps
where p_kick_names.kick_key = kicker_ps.kick_key
union
select drifts_key key, name, member, ind, family, counter, subdomain, domain,
description
from drifts
union
.....
P. Laux/BESSY
BESSY Datenbank
Geschichte und Gegenwart
Für jeden Gerätetyp ein eigene Datenbankstruktur
schwer wartbar als Admin,
ca 250 Tabellen, 300 Triggern
ca 350 Ansichten, materialisierten Views
ca 400 Abhängigkeiten, unzählige Constraints
dauernd fluktuierende Strukturen, invalide Views als Folge
komplexe und komplizierte Zugriffe, Kommandozeilenzugriffe
technisch mittelhoher Aufwand für Zugriffe auf die Werte
Frontends irrwitziger Aufwand, keine GUI
P. Laux, /BESSY
Fehlendes Gesamtmodell führt zu hoher Fragmentierung
Unions und verschachtelte Views verlangsamen extrem den Zugriff
Inhaltliche Abhängigkeit der Strukturen sind untragbar
Manuelle Wartung und Pflege notwendig bei übersichtlicher Anzahl
von Views, Triggern und Tabellen
Keine GUI wegen ausgewachsener heterogener Strukturen
zu viele unterschiedlich Interessen bei Wertedarstellung
inadäquate Namensgebungen
Aufgeben oder etwas Anderes versuchen?
BESSY Datenbank
Der erste Test - Named-Value-Pairs
P. Laux/BESSY
BESSY Datenbank
Der zweite Test
Entwickelt für kleine
Gerätegruppen, basierend auf
den Named-Value-Pairs
Perl/Tk-GUI vorhanden
Flexibilität bei Benutzung
durch direkte Eingabe des
Entwicklers der Software
Erstmals Daten für
unterschiedliche Gerätefamilien
in einer Struktur
Template Problematik
Nur für kleine Gerätegruppen
LETZTES JAHR MIGRIERT
P. Laux/BESSY
BESSY Datenbank
Erlerntes
Erste Erkenntnis, entgegen des Verlustes der Information über den inhaltlichen
Wert (Type, Länge, Maximal-/Minimalwerte, Constraints etc) kann die Flexibilität
erhöht werden. Außerdem gibt zu viele Spezialwerte, um sie repräsentieren zu
können.
Nicht nur der Verwaltungsaufwand sank, sondern auch die kürzeren
Reaktionszeiten auf Veränderungen machten sich bemerkbar.
Möglichkeit einer Bibliothek für den Zugriff auf solche Strukturen erhöht die
Akzeptanz.
tapetenloses Arbeiten führt zu Entlastung
GUI konnte erstmals fruchtbare erfolge erzielen
Die Idee, das Modell nicht vertikal sondern horizontal anzulegen, bedeutet mit
den gleichen Anwendungen mehrere Gerätefamilien zu bedienen.
P. Laux/BESSY
Überlegung:
Verlagerung der logischen und mathematischen Operationen in
die Programme und dafür eine flexible Datenbankstruktur zu
schaffen. Simple-Devices folgend sollte einerseits die Komplexität
der Datenstrukturen brechen, andererseits aber auch einen Zugriff
aller anhängigen Programme ermöglichen. Zugriffsproblematik
und Inhaltsversicherung sind ungeklärt.
„Wir sind alle erwachsen, also sollten wir wissen, was wir tun.“
R. Müller
„Es entwickelt sich...“
BESSY Datenbank
Tiefenanalyse
Strukturen der vorhandenen Daten ermitteln
Programmalgorithmen betrachten und abwägen
Anforderungen prüfen, Grenzwerte, Serialisierung
Strukturen erkennen und ausformulieren, Beziehungen aufdecken
Schnittstellen schaffen, Werkzeuge und deren Funktionalität klären
Reden, Diskurs und Kompromisse finden
im Zweifelsfall noch mal von VORNE anfangen
P. Laux/BESSY
BESSY Datenbank
Tiefenanalyse
Fast sämtliche Strukturen sind hierarchischer Natur
Ableitung/Vererbung sind erwünscht
Strukturinformationen müssen variabel sein, mit einfliessen können
Daten müssen maschinen- und menschenlesbar sein
möglichst keine objektrelationalen Ansätze bei prozeduralen,
funktionalen Anwendungen
Saubere offene Schnittstellen/API für Neuentwicklung und Migration
Bevorzugte Nutzung von Skriptsprachen
P. Laux/BESSY
Die deskriptiven Gadgets, nichts sagend und doch mächtig
BESSY Datenbank
Gadgets – Die Idee
IOC2
Quantitativ schwache Anforderungen, jedoch in
sich sehr komplex und doch gut wartbar.
Keine inhaltlich formale Bindung durch NamedValue-Pair-Struktur.
Baumartige Struktur als Ziel der Ablage und
Organisation.
Leichte Indizierung, einfache Erweiterung und
Anbindung an vorhanden Strukturen.
Eine Datenbankstruktur für alle Gerätefamilien?
Mehr als ein halbes Jahr theoretisch alle
erkennbaren Problemfälle durchgespielt.
P. Laux/BESSY
BESSY Datenbank
Gadgets - Beispiel
Parent1
Child1
--PLSQLCode
Appinit(‚TestApp‘);
Red:=add gadget(‚red‘);
Blue:=add gadget(‚blue‘);
P1:=add_gadget(‚Parent1‘);
C1:=add_gadget(‚Child1‘, P1, Red);
C2:=add_gadget(‚Child2‘, P1, Blue);
GC:=add_gadget(‚G-Child‘, C2, Red);
A1:=add_gadget(‚ATTR1‘);
A2:=add_gadget(‚ATTR2‘);
A3:=add_gadget(‚ATTR3‘);
add_attribute(C1, A1, ‚42‘);
add_attribute(C1, A2, ‚Hello World‘);
add_attribute(C2, A1, ‚3.14‘);
add_attribute(C1, A1, ‚$ATTR1‘);
add_attribute(GC, A1, ,4711‘);
add_attribute(GC, A1, ‚0‘);
P2:=add_gadget(‚Parent2‘);
add_relation(P2, C2, Red);
IOC2
Parent2
Child2
ATTR1
42
ATTR2
Hello
World!
G-Child
ATTR1
3.14
ATTR1
4711
ATTR3
$ATTR1
ATTR2
0
P. Laux/BESSY
BESSY Datenbank
Gadgets - Inhalt
Parent1
Parent2
TBL_GADGET
gadget_key name
1 Admin
2 TestApp
3 Red
4 Blue
5 Parent1
6 Child1
7 Child2
8 G-Child
9 ATTR1
10 ATTR2
11 ATTR3
12 Parent2
IOC2
Child1
Child2
ATTR1
42
ATTR2
Hello
World!
TBL_GADGET_RELATION
parent_key child_key
type_key
5
6
5
7
7
8
12
7
G-Child
ATTR1
3.14
ATTR3
$ATTR1
ATTR1
4711
ATTR2
0
app_key
Admin
Admin
TestApp
TestApp
TestApp
TestApp
TestApp
TestApp
TestApp
TestApp
TestApp
TestApp
app_key
3
4
3
3
2
2
2
2
TBL_ATTRIBUTE
gadget_key value_name value
app_key
6 ATTR1
42
6 ATTR2
Hello World!
7 ATTR1
3.14
7 ATTR3
$ATTR1
8 ATTR1
4711
8 ATTR2
0
2
2
2
2
2
2
P. Laux/BESSY
BESSY Datenbank
Gadgets - Layer
Parent1
Parent2
Child1
Umwandlung in einen Pfad erbringen enorme
Möglichkeiten in der SucheIOC2
und Abfrage durch die
Nutzung der PLSQL Packages zu den Gadgets
Child2
SELECT * FROM
TABLE(get_gadgets(‚/Parent%/[red]/%/%‘));
G-Child
SELECT * FROM TABLE(get_roots(‚red‘));
SELECT * FROM TABLE(get_hierarchies(‚Parent1%‘));
PATHTYPE
pa re nt_ke y
child_ke y
type _ke y
5
5
5
5 NULL
6
7
5
8
dista nce
pa th
KEYTYPE
gadget_key
G-Child
KEYTYPE
gadget_key
Parent1
Parent2
type d_pa th
3
4
0 Parent1
1 Parent1/Child1
1 Parent1/Child2
Parent1
Parent1/[red]/Child1
Parent1/[blue]/Child2
3
2 Parent1/Child2/G-Child
Parent1/[blue]/Child2/[red]/G-Child
P. Laux/BESSY
BESSY Datenbank
Gadgets - Problem
Grosses Problem bei den Bäumen/Pfaden sind
Routen. Routen können
zu mehrdeutigen
IOC2
Antworten führen und müssen konsequent
ausgeschlossen werden.
Instance
Part1
Part2
Typisierung ist das A und O!
Temp1
Elem1.1
Elem1.2
Elem1.2.1
Überladen von Wertepaaren, Instanzierung
ermöglichen sehr rationale Werteverwaltung.
Elem1.3
Elem1.2.2
Extrem hohe Flexibilität, aber auch starke
Abstraktheit. Erst nachdenken und beraten, ist
besser als darauf los „basteln“. Struktur gleicht
einem Wiki ähnlichem Ansatz.
P. Laux/BESSY
BESSY Datenbank
Gadgets - Resumee
IOC2
Aller Anfang war schwer, doch nach und nach zeigen sich die Stärken.
Derzeitiger Stand zeigt bereits, daß mit diesem Ansatz eine vollkommen
andere Art des Arbeitens, wie sie bereits bei der Softwareentwicklung
erfolgt, möglich wird. Da es sowieso Absprachen erfordert, paßt der Ansatz
sogar in die vorherrschende Arbeitsorganisation hervorragend.
perl Bibliothek
perl Import und Export
Java Frontend (Soll in das CSS eingefügt werden)
über der PHP Requester auch zukünftig Webabfragen möglich
P. Laux/BESSY
Parameter, Werte mit gewissen Etwas
BESSY Datenbank
Der Parameter
device.variable[mode][timestamp] = value unit (notice)
= 12.245
BPR.length [SB][2006-12-05]
m
device:
benamstes Gerät nach Namenskonvention
variable:
Name einer Variablen, textuell
mode:
Betriebsmodus der Machine oder Art des Modells
timestamp:
kleine Möglichkeit der Versionierung
value:
Wert der Variablen des Gerätes
unit:
Einheit bestehend aus Präfix und Einheit
notice:
Bemerkungen, durch Format auch Beziehungen
P. Laux/BESSY
BESSY Datenbank
Device-Parameters
P. Laux/BESSY
BESSY Datenbank
Devices - Parameter
Modulares Konzept führt zu Schnittstellen
Name-Value-Pair kombiniert mit Timestamp und Modus ergeben eine
Möglichkeit Versionsorientierung für die verschiedenen Modi des
Speicherringbetriebes aufrecht zu halten
Genauso wir bei den Gadgets ist ein Multi-Tier-Softwarehierarchie
möglich und wünschenswert
Migration gestaltet sich sehr einfach. Mit leichten Nacharbeiten sogar
Geräteabhängigkeiten darstellbar.
P. Laux/BESSY
BESSY Datenbank
IRMIS
Basiert auch auf den Name-Value-Pair Prinzip
Nicht deskriptiver Ansatz sondern operativer, Crawler Prinzip
Hervorragende Ergänzung durch Gadgets und Device-Parameters
Keep it simple Prinzip
breiter Einsatz in mehreren Instituten weltweit
P. Laux/BESSY
Die Erlösung... Der Kaffee naht...
BESSY Datenbank
Generelles
Betrieb der Maschine hat Vorrang
Migrationen sind von der Akzeptanz und Motivation der Mitarbeiter
abhängig
Ein-Mann Datenbankadministration bedarf einer konfliktbefreienden
Arbeitsweise
Die Datenbankinhalte sollten sich immer nach den Wünschen der
Anwender richten. Informationen aus erster Hand sind entscheidend für
den Erfolg eines Einsatzes.
P. Laux/BESSY
BESSY Datenbank
Aussichten
Gadgets
RDB
IOC
Parameter
descriptiv
IRMIS
operativ
P. Laux/BESSY
BESSY Datenbank
Vielen Dank!
Autoren und Mitwirkende:
T. Birke, B. Franksen, B. Kuner,
R. Lange, R. Müller, G. Pfeiffer,
J. Rahn von BESSY mbH
Und michse
P. Laux/BESSY
DATENBANKEN ALS BACKEND FÜR DIE KONFIGURATION UND
VERWALTUNG VON HARD- UND SOFTWARE
Herunterladen