TEO - Ein Framework für die Anwendungsentwicklung mit EGL und dem Rational Business Developer. TEO TriAgone EGL Objects TriAgone IT GmbH 2014
TEO - Framework Die Anwendungsentwicklung soll sich auf die Umsetzung von Business-Anforderungen konzentrieren. Um dies bei der Entwicklung mit EGL/RBD zu unterstützen, haben wir das Framework TEO (TriAgone EGL Objects) geschaffen. Das Framework soll die Entwicklung eigener Systeme mit EGL erheblich erleichtern und kann dabei ein Leitfaden für viele Aspekte der Systementwicklung von der Programmierung bis zur Dokumentation sein. Das Framework stellt sich als Basis-Applikation dar und bietet anwendungstypische Grundfunktionen, wie Menüverwaltung, Benutzerverwaltung, Rechteverwaltung und Login-Funktionalitäten. Dieses Umfeld kann um eigene Anwendungslogik und Module leicht erweitert werden. Das Framework enthält Vorschläge (Templates), wie in den unterschiedlichen Applikationsschichten gearbeitet werden könnte und bildet damit auch ein Programmiergerüst für die Entwickler. Das Framework setzt sich aus drei Bestandteilen zusammen: TEO - BASE TEO BASE umfasst eine Sammlung von Basiskomponenten. Diese Basiskomponenten ermöglichen u.a. den variablen Zugriff auf mehrere Datenbanken, vereinheitlichen das Exception-Handling, stellen das Exception-Logbuch bereit und enthalten den Application-Controller, der die Modulverwaltung und Modulkommunikation von RUI-Screens bereitstellt. TEO - APP Die Quickstart-Application setzt auf TEO-BASE auf und enthält die Grundfunktionalitäten, wie sie von fast jeder Anwendung benötigt werden. Hier werden Benutzerverwaltung, Rechteverwaltung, Menüverwaltung und Login-Funktionalitäten bereitgestellt. Die Integration eigener Module ist sehr einfach. Modul programmieren Parameter für Menü und Rechte einrichten fertig. Das eigene Modul ist als Menüpunkt aufrufbar. TEO - DOC Mit dem Documentation-Generator ist die Dokumentation der eigenen Software immer auf dem neuesten Stand. Im EGL-Source-Code werden die Parts (Bibliotheken, Records etc.) und ihre Bestandteile nach einem vorgegebenen Regelwerk beschrieben. Der Document-Parser entnimmt die Dokumentationen aus dem Source-Code und schreibt diese in eine Datenbank. Der Document- Builder erzeugt aus den Datenbankeinträgen HTML/Javascript-basierte Dokumentationsobjekte, die mit dem Browser betrachtet werden können. TEO-DOC benötigt Komponenten aus TEO-BASE. TriAgone IT GmbH 2014 [1]
TEO - Architektur Die folgende Grafik stellt die zu Grunde liegende Architektur des Frameworks dar. Framework-Architektur com.triagone.gui.application.[appl-name] Rich UI General com.triagone.webservices WebServices Business-Logik com.triagone.blogic Business- Logik Batchmodule com.triagone.blogic.programs IBM i Programme auf IBM I Cobol RPG Bibliothek allgemeiner Funktionen und Objekte -Datumsumwandlungen -Exception Handling -Record-Definitionen - etc com.triagone.general DB-IO DB-Zugriffsroutinen com.triagone.io.dbname IO-Layer IO-Funktionen com.triagone.io ConnectionHandling Applicationparameter Logbuch DataQueue-Access File-Handling Datenbank TriAgone IT GmbH 2014 [2]
IO- Layer S e r v e r Business -Logic Webservice C l i e n t RUI TEO - Komponenten In dieser Übersicht werden die Komponenten des Frameworks in den Schichten (Layer) dargestellt. TEO Framework - Komponentenübersicht Base GUI Application Infrastructure Components Menu User Access Login Service Service Service Service Base Server Application Infrastructure Components Menu User Access Login Document Generator Menu User Access Login Document Generator TEO - BASE TEO - APP TEO - DOC TriAgone IT GmbH 2014 [3]
TEO BASE Es wird für Client und Server eine grundlegende Infrastruktur bereitgestellt. GUI Infrastruktur Komponenten Für den GUI-Layer wird eine Infrastruktur zur Erstellung einer Web-Client-Anwendung zur Verfügung gestellt. Die Komponenten liegen in vier verschiedenen Formen vor: - Implementierung von RUI-Handlern oder -Widgets - Libraries (sogenannte ) - Templates zur Grundlage einer eigenen Implementierung - Komponenten zum Einbinden eigener Anwendungen Im Folgenden sind einige dieser Elemente beschrieben. Application Controller Der Application Controller ist zuständig für die Verwaltung und Anzeige von ladbaren Modulen (i.d.r. RUI-Handler) mit Haupt- und Kontextmenü-Komponente (sog. Sidebar). Eigene Module werden hier integriert und über die Einstellungen im Menü im dynamischen Menü aufgenommen, um dann für die Benutzung bereitzustehen. Call Controller Der Call Controller ist ein Objekt, das die Möglichkeit bietet, asynchrone Prozesse, wie die Benutzung von Webservices, zu serialisieren. Es kann ein Fixpunkt definiert werden, an dem die Programmausführung fortgesetzt wird, nachdem alle gestarteten asynchronen Prozesse beendet sind. Event Controller Der Event Controller ist ein Objekt zur Verwendung in Modulen. Mit dessen Hilfe ist eine einfache und standardisierte Anbindung an das Eventsystem des Frameworks möglich. Es werden alle Events des Frameworks, die in irgendeiner Art für Module relevant sein können, in Form von Delegates bereitgestellt. TriAgone IT GmbH 2014 [4]
Server Infrastruktur Komponenten Logbuch Die Ausgabe von Protokoll-/Fehlerinformationen erfolgt bei bestehender Datenbankverbindung in eine Datenbanktabelle. Wenn keine Verbindung existiert, wird in eine Textdatei geschrieben. Ein Screen für die Anzeige der Logbuchinhalte ist in TEO APP integriert. Lesen und Schreiben von Konfigurationsinfomationen Die Konfigurationsdaten werden im CSV-Format vorgehalten und in Textdateien außerhalb des Projektes auf dem Windows-Dateisystem oder dem IFS gespeichert. Ein Screen für die Pflege der Konfigurationsdatei ist integriert. Dynamische Datenbankanbindung Die Verbindungsinformationen zu Datenbankservern sowie zum IBM System i werden der Konfigurationsdatei entnommen. Somit ist es nicht notwendig die Anwendung neu zu kompilieren und auszuliefern, wenn sich die Konfiguration ändert. Die Datenbanken, mit denen gearbeitet werden soll, können beim Login ausgewählt werden. Somit ist ein einfacher Wechsel zwischen z.b. Test- und Produktionsdaten möglich. Interaktion mit System i Es ist eine Wrapper-Bibliothek für eine einfache Benutzung von Dataqueues vorhanden. Ferner existiert ein Template, welches den Funktionsumfang der Wrapper-Bibliothek anhand einer konkreten Dataqueue demonstriert. Bibliothek für das Erzeugen und Schreiben von Textdateien Es stehen Funktionalitäten für eine einfache Ausgabe von Textdaten in einer zur Laufzeit festzulegenden Datei auf dem Windows-Dateisystem oder dem IFS zur Verfügung. Zugriffsbibliotheken für Datenbankzugriffe für diverse Datenbankservertypen Funktionen für die gängigen Operationen (select, insert, update, delete) auf Datenbanktabellen liegen in Form von Bibliotheken für die Framework-Komponenten vor. Diese Bibliotheken können als Template für den Zugriff auf weitere Tabellen genutzt werden. TriAgone IT GmbH 2014 [5]
TEO APP (Komponenten) Die Komponenten der Quickstart-Application bestehen immer aus Funktionalitäten über alle Schichten des Frameworks. Login Der Login bietet die Login- und Logout-Funktionalität in Verbindung mit dem User und anderen serverseitigen Komponenten. Menu Mit dem Menu werden die Menüelemente und die Menüstruktur verwaltet. Das Framework generiert aus diesen Informationen und den rollenorientierten Zugriffsrechten ein dynamisches Menü für die Aufrufe der Applikations-Module. User Mit dem User werden die Systembenutzer gepflegt. Den Benutzern werden für Zugriffsrechte auf Menüpunkte und Funktionen Rollen zugeordnet. Access Mit dem Access werden rollenorientierte Zugriffsbeschränkungen für Menüs, Widgets und Module definiert. Die hier festgelegten Rechte werden z.b. bei der Generierung der Menüs genutzt. TriAgone IT GmbH 2014 [6]
TEO APP (Layer) GUI-Layer Für die Pflege der Parameter der Quickstart-Application stehen RUI-Bildschirme zur Verfügung. Die Implementierung setzt auf die Komponenten von TEO-BASE auf. Es stehen Templates für die Implementierung eigener Anwendungen zur Verfügung. Webservice-Layer Die gesamte Schicht besteht im Wesentlichen aus einem EGL-Service-Modul. Innerhalb dieses Moduls werden eine Reihe von Webservice-Funktionen bereitgestellt, die vom GUI-Layer aus aufgerufen werden können. Inhaltlich werden die zentralen Funktionen des Business-Layers bereitgestellt, soweit sie von der aufrufenden Schicht benötigt werden. Im Prinzip bildet der Webservice-Layer einen Wrapper, der eine spezielle Auswahl von Funktionen des Business-Layers kapselt. Daher ist im Webservice-Layer keine eigenständige Funktionalität realisiert. Eingangs- und Ausgangsparameter werden 1:1 an die aufrufende/empfangende Schicht weitergeleitet. IO- und Businesslogik-Layer Bei den Komponenten des IO- und Businesslogik-Layers handelt es sich um serverseitige Module. Die Verbindung zu Client-Anwendungen wird über Webservices hergestellt. Es werden Rahmen und Grundfunktionalität zur Entwicklung serverseitiger Bestandteile der eigenen Applikationen bereitgestellt. TriAgone IT GmbH 2014 [7]
TEO APP (Screen Beispiele) Login Datenbankanbindung managen TriAgone IT GmbH 2014 [8]
Benutzerprofile Menüdesigner Design der Menüstruktur mit Drag & Drop TriAgone IT GmbH 2014 [9]
TEO - DOC Die Dokumentation der Software erfolgt direkt im Source Code nach einem vorgegebenen Regelwerk. Es werden alle sogenannten Parts und ihre Bestandteile mit einer Beschreibung versehen. Mit einem Parser-Programm werden die Dokumentationen aus dem Source Code ausgelesen und in eine Datenbank geschrieben. Im nächsten Schritt hat das Builder-Programm die Aufgabe, aus den Daten die Dokumentation zu erstellen. Es wird ein System aus HTML-Seiten und JavaScript-Objekten erzeugt. Die Dokumentation kann mit dem Browser betrachtet werden. Sourcecode-Beispiel function adduser(nachname string in, Vorname string in, Login string in, Password string in, Aktiv int in, Email string in, IDUser int out, status StatusRec out) returns(boolean) /* // ========================================================================================================= // @function AddUser // Die Funktion legt einen neuen Benutzer an. // --------------------------------------------------------------------------------------------------------- // @param_in Nachname string Nachname des Benutzers // @param_in Vorname string Vorname des Benutzers // @param_in Login string Login des Benutzers // @param_in Password string Password des Benutzers // @param_in Aktiv int Kennzeichen, dass das Benutzerkonto aktiv ist (0 = nicht aktiv, 1 = aktiv) // @param_in Email string Email des Benutzers // --------------------------------------------------------------------------------------------------------- // @param_out IDUser int Die eindeutige ID des erfolgreich hinzugefügten Benutzers // @param_out status StatusRec Enthält Status-Informationen für den Erfolgs-/Fehlerfall // --------------------------------------------------------------------------------------------------------- // @returns boolean // true, wenn der Benutzer erfolgreich hinzugefügt werden konnte, sonst false. Im Fehlerfall // kann die Ursache in den Status-Informationen eingesehen werden. // ========================================================================================================= */ Dokumentation Ansicht Beispiel TriAgone IT GmbH 2014 [10]
Weitere Informationen Das Framework ist mit dem Rational Business Developer Version 9 entwickelt worden. Rechtliche Hinweise Copyright TriAgone IT GmbH Dieses Dokument darf weder in Teilen noch im Ganzen in irgendeiner Form ohne vorherige Genehmigung durch die TriAgone IT GmbH reproduziert oder unter Benutzung elektronischer Systeme vervielfältig, verbreitet und verarbeitet werden. Wir haben bei der Zusammenstellung von Texten und Bildern mit großer Sorgfalt gearbeitet, können Fehler aber trotzdem nicht vollständig ausschließen. Wir weisen darauf hin, dass die in diesem Dokument verwendeten Software- und Hardwarebezeichnungen sowie Markennamen Eigentum der jeweiligen Firmen sind. Im Allgemeinen unterliegen die Bezeichnungen oder Marken warenzeichenrechtlichem, markenrechtlichem und/oder patentrechtlichem Schutz. TriAgone IT GmbH 2014 [11]