> Verzeichnis der Dokumente mit den theoretischen Grundlagen |
|
Letzte
Bearbeitung dieses Dokuments: |
Voraussetzungen für das Verständnis dieses Dokuments:* Kenntnisse über
relationale Datenbanken. Dokument Business Object – Überblick über die Funktion zum Abfragen und Speichern von Daten überflogen. |
Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:Das
ist ein Dokument mit einem Überblick über die
Realisierung von Business-Objects mit Java-Klassen. |
Dieses Dokument gibt einen Überblick, wie ein Business-Object (BO) passend zum JavaScout Fat-Client-Framework (JS-FCF) mit Verwendung der JavaScout Basisklassen realisiert wird.
Dazu werden die Methoden eines BO in 3 verschiedenen Java-Klassen implementiert:
Generelle Klasse mit den Variablen des BO und Methoden, die auf Server-Seite und Client-Seite benötigt werden.
Server-Side
Klasse mit
Methoden, die den Zugriff auf Datenbank-Tabellen über DBA
(Detail in DBA
(DataBase-Access) Klasse)
ausführen.
Die Methoden in dieser Klasse wurden aus
folgenden Gründen in einer eigenen Klasse implementiert:
*
Bei Konfiguration des Anwendungsprogramms als 'Client/Server' wird
diese Klasse innerhalb eines EJB (Enterprise Java Bean) in einem JAS
(Java-Application-Server) ausgeführt.
Dazu werden Methoden,
die GUI-Elemente der Benutzeroberfläche bedienen, nicht
benötigt.
* Bei Konfiguration als 'Einzelplatz'
('Stand-Alone') wird diese Klasse vom Anwendungsprogramm auf dem PC
ausgeführt.
Das 'Konstruieren' eines Objektes dieser
(Server-Side) Klasse erfolgt dann in der zugehörigen
Client-Side Klasse.
Mehr Erläuterungen finden Sie im
Inhalt dieses Dokumentes.
Client-Side
Klasse mit Methoden
* die die Werte der Variablen von / zu
den GUI-Elementen der Benutzeroberfläche transferieren,
*
die Variablen von / zu der Server-Side Klasse übertragen und
*
entsprechend der vom Anwender gewünschten Aktivität die
entsprechenden Methoden der Server-Side Klasse aufrufen.
Die
Methoden in dieser Klasse wurden aus folgenden Gründen in einer
eigenen Klasse implementiert:
* Bei Konfiguration des
Anwendungsprogramms als 'Client/Server' wird vom Anwendungsprogramm
auf dem Client-PC kein Zugriff auf eine Datenbank ausgeführt
und die entsprechende Bibliothek muß nicht importiert
werden.
Statt dessen kommuniziert diese (Server-Side) Klasse über
den JAS-Kommunikations-Mechanismus mit den EJB, das die zugehörige
Server-Side Klasse implementiert hat und steuert deren Methoden.
*
Bei Konfiguration als 'Einzelplatz' ('Stand-Alone') 'konstruiert'
diese (Client-Side) Klasse eine zugehörige Server-Side Klasse
und ruft deren Methoden auf.
Mehr Erläuterungen finden
Sie im Inhalt dieses Dokumentes.
Vorbedingungen
Graphische
Darstellung der Vererbungs-Hierarchie eines Business Object
(BO)
* Basisklasse im
JavaScout Fat-Client-Framework
* General
Class für ein BO
* Client-Side
Class für ein BO
* Server-Side
Class für ein BO
Klassen
mit Listen für ein BO
Weitere
Schritte und verwandte Dokumentation
Das
Dokument enthält Hintergrund-Informationen zur Verwendung des
JavaScout-Fat-Client-Frameworks.
Sinnvoll ist ein Überfliegen
des Dokumentes Business
Object – Überblick über die funktion zum Abfragen und
Speichern von Daten.
Weiters ist hilfreich, wenn sie das Konzept der Vererbung in Java kennen.
Die Grafik zeigt in stark vereinfachter Form, welche spezialisierter Klasse des BO die Variablen und die notwendigen Methoden implementiert sind.
Der
Namensteil application_entity im Namen der jeweiligen
Klasse ist durch die Kurznamen von Anwendungsprogramm und
Dateneinheit ersetzt.
z.B. HSepp_Rechnung.
Für den Java-Code der Basisklasse folgen Sie bitte dem Link zu JSBS_BO .
In der Basisklasse sind nur Konstante, Variable und Methoden definiert, die die Behandlung der Attribute zur Führung der Historie von Änderungen (Common Attributes) notwendig sind.
Eine Aufzählung und die Bedeutung der Common Attributes finden Sie unter DBA (DataBase-Access) Klasse > Attribute zur Führung der Historie von Änderungen.
Diese Klasse enthält die speziellen Variablen für dieses BO, eventuell konstante Werte für nur Fehler-Codes, die nur bei diesem BO auftreten können, eine Methode, die den Unterschied der Variablen in zwei Objekten dieser Klasse prüft und eine Methode, die die Werte der Variablen auf die verbunden DBA-Klassen übertragen.
Eine detaillierte Beschreibung finden Sie im Dokument BO – General Class (Generelle Klasse).
Diese Klasse enthält Methoden für folgende Funktionalitäten:
Übertragen
der Werte in den Variablen von GUI-Elementen.
Damit werden die
durch einen Benutzer erfaßten oder veränderten Werte von
den Elementen der GUI (Graphic User Interface ( Grafische
Benutzeroberfläche) extrahiert bevor ein 'insert' oder 'update'
auf der DB-Tabelle durchgeführt wird.
Übertragen
der Werte in den Variablen zu GUI-Elementen.
Damit werden die
nach einem 'select' von der DB-Tabelle gelesenen Daten auf der GUI
angezeigt.
Aufruf
der entsprechenden Methoden der Server-Side Class.
Je nach
Ausführung des Anwendungsprogramms wird bei einer
'Einzelplatz'-Version die entsprechende Server-Side Class direkt
'konstruiert' und dabei die Werte der Variablen als Parameter
übergeben und danach die entsprechende Methode (zum Speichern
oder Selektieren von Daten) aufgerufen.
Bei einer
'Client/Server'-Version wird über den EJB (Enterprise Java
Bean) -Mechanismus eines JAS (Java Application Server) das EJB mit
der enthaltenen Server-Side Class auf dem JAS 'konstruiert' und dann
die entsprechende Methode der Server-Side Class aufgerufen.
Eine detaillierte Beschreibung finden Sie im Dokument BO – Client-Side Class (Klasse für die Client-Programme).
Diese Klasse benutzt ein oder mehrere DBA-Objekte (siehe Dokument DBA (DataBase-Access) Klasse) zum Speichern oder Selektieren der Werte in den Variablen dieser Klasse.
Eine detaillierte Beschreibung finden Sie im Dokument BO – Server-Side Class (Klasse für die Programme auf dem Server).
Abhängig
von den Selektionskriterien für eine Abfrage ist es auch
möglich, daß mehrere Datensätze auf der DB-Tabelle
gefunden werden.
Um diesem Fall verarbeiten zu können, werden
Klassen mit 'Set's von BO (Business Object) erstellt.
Als
Methoden werden in diesen Klassen nur 'select....'
implementiert.
Grundsätzlich wäre es möglich, daß
auch 'insert' und 'update' Methoden ausgeführt werden –
die Behandlung eines eventuell auftretenden Fehlers würde aber
eine schwer verständliche Logik erfordern.
Daher ist es
einfacher, einzelne BO für die ein 'update' ausgeführt
werden soll, noch einmal mit einem genau definierenden Kriterium zu
Selektieren und für dieses eine BO dann ein 'update'
auszuführen.
Ein 'insert' eines BO ist direkt nach der
Erfassung der Daten auf jeden Fall einfacher auszuführen als das
'neuE' BO in ein Set einzufügen und darin mit einer wesentlich
komplöizierteren Programm-Logik ein 'insert' durchzuführen.
Ausführlichere Beschreibungen für die Implementierung von Klassen mit 'Set's von BO finden Sie bei den Dokumenten für die spezifischen Klassen eines BO.
Dokument |
Inhalt |
Liste der Dokumente mit detaillierten Beschreibungen. |