Oracle® Datenbank basierende Applikationen sind häufig Kernbestandteil unternehmensweiter IT Lösungen. Im Gegensatz zu Standardsoftware unterliegen diese Applikationen auf mehreren Ebenen einer stärkeren Veränderung. Auslöser für die Änderungen an den Applikationen sind flexiblere Geschäfts- und Fertigungsabläufe, die mit einmaligem Customizing nicht oder nur unzureichend abgebildet werden können. Die so angestoßenen Entwicklungsprozesse nutzen im Lauf der Zeit verschiedenste Programmiersprachen und Tools. Um deren Möglichkeiten im Zusammenspiel mit der Datenbank umfassend nutzen zu können, werden auch hier die neuesten Versionen vorausgesetzt.
Die Applikation wächst also nicht nur beim Volumen der Daten und dem programmierten Funktionsumfang, sondern auch in der Komplexität der Lösungen und Möglichkeiten der Realisierungsansätze.
Die zentrale Frage – wo wird wie auf die Daten der Spalte einer Tabelle zugegriffen – beantwortet jedes Entwicklungswerkzeug aber nur im Rahmen seiner Technologie.
Aufbau eines Applikation Repositorys: Die Bestandteile einer Applikation werden im Bezug auf die SQL Relevanz analysiert, um eine durchgängige Abhängigkeitsanalyse durchführen zu können.
Layout- und Strukturierungsdaten verschiedener Programmierwerkzeuge werden ausgeblendet.
Steuerung des Software Entwicklungsprozesses: Damit die Inhalte des Applikation Repositorys immer dem aktuellen Stand der Applikation entsprechen, ist es notwendig, alle Änderungen an der Datenbank und den Source Codes mit SQL Relevanz in geordneter Form aus einer Entwicklungsumgebung in die Produktivumgebung zu überführen. Rahmenwerk für diese Änderungen ist der Entwicklungsauftrag.
Entwicklungsdokumentation: Durch den standardisierten Entwicklungsprozeß werden die Änderungen an der Datenbank und den Source Codes dokumentiert und stehen im Rahmen der Qualitätssicherung zur Verfügung.
Source Code Versionierung: Filesystem basierende Source Codes werden in der Datenbank gespeichert. Damit ist es möglich, alle Änderungen an einer Applikation auch wieder auf den Stand eines expliziten Entwicklungsauftrages zurückzufahren.
devcontrol kennt frei definierbare Objekte, deren Beschreibung durch Eigenschaften und deren Verknüpfung mit Relationen. Aus diesen Strukturelementen wird das Abhängigkeitsgerüst für die SQL relevanten Objekte einer Applikation definiert. Jedem Objekt kann ein Objekt-Parser und ein Objekt-Generator zugeordnet werden. Der Objekt-Parser ist für die Abbildung der SQL Relevanzen eines Schema Objektes oder eines Source Code Objektes zuständig. Beim Abschluß eines Entwicklungsauftrags erstellt der Parser die Abhängigkeiten in Form von Relationen. Die zugehörigen Source Codes werden in das Source Control System eingecheckt.
Der Objekt-Generator vergleicht die Änderung an den Metadaten des Applikation Repositorys mit dem Zustand der Produktivumgebung und erzeugt die für den Rollout eines Entwicklungsauftrags notwendigen Skripts. Objekt-Parser und Objekt-Generator sind über definierte Schnittstellen in C und PL/SQL angebunden.
Durch die freie Definition von Objekten und Relationen und die offenen Schnittstellen kann devcontrol auch als Konfigurierungswerkzeug oder Runtime Repository eingesetzt werden. Objekt-Parser und Objekt-Generator für Oracle® Datenbankobjekte sind fester Bestandteil von devcontrol. Als Objekt-Parser für Oracle® Forms Module ist jform integriert.
Im einfachsten Fall sind 2 Objekte zur Abbildung der Datenbank und 2 Objekte für Oracle® Forms definiert. Für die Datenbank die Tabelle und die Spalte, für Forms die Maske und die Basistabelle. Um diese Metadaten Objekte zu verknüpfen werden noch die Relationen Tabelle hat Spalte, Basistabelle hat Tabelle und Maske hat Basistabelle benötigt. Der Objekt-Parser für die Tabelle erzeugt alle Objekte von Typ Spalte und alle Relationen Tabelle hat Spalte. Der Objekt-Parser für die Maske erzeugt alle Objekte von Typ Basistabelle und die Relationen Maske hat Basistabelle und Basistabelle hat Tabelle. Im Metadaten Repository kann dann die Abhängigkeit Spalte - Tabelle - Basistabelle - Maske durchlaufen werden. Der Objekt Generator für das Objekt Tabelle würde beim Rollout ein Skript mit dem entsprechenden ‚alter table’ Statement erzeugen. In devcontrol ist die Veränderung der Metadaten Objekte durch den Entwicklungsauftrag sichtbar, das Objekt von Typ Form wird im Source Control System gespeichert.
Tabelle, View, Sequence, Index, Constraint, Prozedur, Funktion, Package, User, Policy, Grant, Synonym, Trigger
Forms, PL/SQL Librarys, Menüs, Object Librarys, Reports
*.c, *.pc, *.pas, *.sql, *.cv