DBObject - EsprIT Systems

Werbung
EsprIT
Esprit Database Suite
Eine leistungsfähige Java-Persistzenzschicht
zur einfachen Programmierung von Datenbankapplikation.
1
EsprIT
Inhalt
Einfache und leistungsfähige Datenbank-Persistenzschicht
 Objekt-relationale Abbildung mit DBObjects
 Automatische Erzeugung der DBObjects
 Lokaler oder entfernter Datenbank Zugriff
 Vielfach-Verbindungen mit ConnectionPool
 GUI Darstellung in Tabellen, Listen und Formblättern
 Zusammenbau komplexer, persistenter Objekte
 Allgemein verwendbare Datenbank Tools
 Einsatzfelder für DBObjects
 Wichtigste Vorteile der DBObjects
 Vergleich mit anderen Persistenz-Lösungen
2
EsprIT
DBObjects
DBObjects sind Java Objekte die Datensätze modellieren
• DBObject Subklassen werden automatisch erzeugt für jede Tabelle:
Tabelle: resistor  Klasse: DBO_resistor.java
• DBObjects implementieren die Objekt-relationale Abbildung
• Flexibel bei Datenbank-Änderungen (lediglich Neuerzeugung)
3
EsprIT
Erzeugung der DBObjects
DBObjects werden automatisch erzeugt mit dem DBOCompiler
DBOCompiler liest die Tabellen Metadaten
und erzeugt die DBObject Java Quelldateien.
Für alle Tabellen der Datenbank werden
Java Quelldateien erzeugt.
Läuft entweder interaktiv oder im Batchmode
4
EsprIT
Datenbank Zugriff
DBObjects ‘wissen‘ selbst wie sie mit der Datenbank kommunizieren müssen
• Kein SQL erforderlich => Fehlersicher and RDBMS unabhängig.
• Hoch performante Datenbank Zugriffe (gecachte Prepared Statements)
• Einfachstes Lesen von und Speichern in der Datenbank.
INSERT
DBO_resistor
DBO_resistor
DBO_resistor
UPDATE
Datenbank
DELETE
5
SELECT
DBO_resistor
DBO_resistor
DBO_resistor
EsprIT
Lokaler/entfernter Zugriff
Unterstützung für lokalen und entfernten Datenbank Zugriff
• DBObjects können leicht übers Netz transportiert werden.
• Clients können lokale oder entfernte Datenbankaktionen durchführen
Entfernter Zugriff
Client 1
DBO_resistor
Middleware
Server
Datenbank
Client 2
DBO_poti
Lokaler Zugriff
6
EsprIT
Connection Pool
Connection-Pool verwaltet vielfache Datenbank-Verbindungen
• Ermöglicht simultane Transaktionen
(soviele, wie Verbindungen vorhanden).
• Dynamisches Pooling:
Anzahl der Verbindungen steigt und fällt nach Bedarf
(im erlaubten Bereich).
DBO_resistor
DBO_diode
Connection
Pool
DBO_poti
7
Datenbank
EsprIT
Datensatz Formulare
Erzeugt automatisch Formulare zum Editieren der Datensätze
• DBObjects ‘kennen‘ ihre Datenbank Meta-Information
• Insert/Edit-Formulare werden dynamisch aus Metadaten erzeugt
• Keine Programmierung erforderlich für unten gezeigte Beispiele
• Formulare sind leicht an Kundenbedürfnisse anpassbar
Erzeugen eines neuen Datensatzes
Ändern eines existierenden Datensatzes
8
EsprIT
Tabellen-Sicht
Tabellen-Sicht wird automatisch erzeugt
• DBObjects ‘wissen‘ wie sie sich in einem GUI darstellen müssen
• Tabellen-Sicht wird dynamisch aus Metadaten erzeugt
• Keine Programmierung erforderlich für das unten gezeigte Beispiel
• Darstellung ist leicht an Kundenbedürfnisse anpassbar
9
EsprIT
Listen-Sicht
Listen-Sicht wird automatisch erzeugt
• Listen-Sicht wird dynamisch aus Metadaten erzeugt
• Keine Programmierung erforderlich für das unten gezeigte Beispiel
• Darstellung ist leicht an Kundenbedürfnisse anpassbar
10
EsprIT
Tabellen/Listen-Editor
Tabellen and Listen unterstützen insert/update/delete von Datensätzen
Wählen Sie den Typ des
Datensatzes
Formblatt für den gewünschten
Datensatz-Typ zur Eingabe neuer
Datensätze
Formblatt zum Editieren des
selektierten Datensatzes
11
EsprIT
Daten Eingabefelder
Eingabefelder für alle üblichen Datentypen
Datum/Zeit Eingabe
Formblatt mit einigen beispielhaften Eingabefeldern
Datei Auswahl
12
EsprIT
Persistente Objekte
DBObjects zum Aufbau komplexer, persistenter Objekte
 DBObjects sind Bausteine zum Zusammebau größerer Objekte
 Einheitlicher Datenbankzugriff => Konsistenter Java Code
 Kein Aufwand für GUI Darstellung persistenter Objekte
 Unterstützung mehrerer Zusammenbau-Typen (1:N, Vererbung)
Poti (extends ComposedRecord)
Route (extends ComposedRecord)
DBO_part
DBO_route
DBO_resistor
DBO_poti
DBO_poti
DBO_poti
DBO_vertex
DBO_poti
Vererbungs-Typ
Listen-Typ (1:N)
13
EsprIT
Datenbank Tools
Allgemein verwendbare Datenbank Tools
Funktionieren genau gleich für alle unterstützten Datenbanksysteme!
 DBExecute
Führt SQL Kommando(s) in Datenbank aus
 DBSelect
Macht SQL Datenbank Abfrage(n), Ausgabe in Datei oder Console
 UnlExport
Schreibt Tabellendaten in ASCII Datei (UNL Format)
 UnlImport
Liest Datensätze aus UNL Dateien und füllt Datenbanktabelle
14
EsprIT
Einsatzfelder
Wo kann man DBObjects einsetzen?
 Server Applikationen
Für vielfach parallelläufigen Datenbankzugriff
(Multi-Threaded services)
 Client Applikationen
Direkte Darstellung von Datensätzen in GUI Tabellen und Listen
Einfache Datenübertragung von/zu Server (Serialisierung)
Lokaler oder entfernter Zugriff auf Datenbank
 Web Applikationen
Als Datenbank Access Objects (DAOs)
Als DAO-Beans im Zusammenspiel mit Struts
 J2EE Applikationen
Als EJB's (EntityBeans) mit Bean managed Persistence
15
EsprIT
Vorteile
Wichtigste Vorteile
 Kein Aufwand für objekt-relationale Abbildung
 Einheitlicher, konsistenter Java Code, leicht zu warten
 Sehr flexibel und fehlersicher bei Datenbank-Änderungen
 Kein Aufwand für GUI Darstellung persistenter Objekte
 Beschleunigt erheblich die Enwicklung von Datenbankanwendungen
 Keine Abhängigkeit von Datenbank- und Betriebs-System
 Speicher-effizient und hochperformant
 Wesentlich geringere Entwicklungszeiten und -Kosten
 Einfache Wartung und hohe Fehlersicherheit
 Geeignete Technologie zur Ablösung alter 4GL Anwendungen!
16
EsprIT
Vergleich mit anderen
Was unterscheidet DBObjects von anderen Persistenz-Lösungen?
• DBObjects werden direkt aus der Datenbank erzeugt.
Keine (redundante) vorbereitende Definition erforderlich!
• Pure Java Objekte – Kein post-Compiling der Klassen erforderlich
(wie z.B. bei JDO Implementierungen)
• Keine komplizierten Deployment-Deskriptoren etc…
(wie bei JDO oder container managed EntityBeans)
• Keine Abhängigkeit von Datenbank, Betriebssystem, Applikationsoder Webserver
• Komplexe, persistente Objekte können aus DBObject-Bausteinen
zusammengesetzt werden => Einfacher und einheitlicher Code.
• Die Programmierung mit DBObjects ist besonders einfach
• DBObjects sind per se direkt im GUI darstellbar
17
Herunterladen