Oracle Programmentwicklung mit Ada Frank Piron frank pironkonad
- Slides: 42
Oracle Programmentwicklung mit Ada Frank Piron, frank. piron@konad. de Kon. Ad Gmb. H, In der Reis 5, D-79232 March-Buchheim
Überblick • Was ist Ada? • Ada und PL/SQL im Vergleich • Warum Ada für Oracle Programmierung? • Die Konada. Db Bibliothek • Ada Multitasking verwenden • GUI-Programmierung • Realisierte Programme und Ausblick
Was ist Ada? Wer war Ada? Augusta Ada Byron, Countess of Lovelace (1815 -52), Tochter von Lord Byron. Assistentin und Mäzen von Charles Babbage. Arbeitete mit an der „Analytical Engine“.
Was ist Ada? Eine Definition: „Ada ist eine universelle Programmiersprache mit einer besonderen Eignung für die professionelle Entwicklung großer und sicherheitskritischer Programme, für die Korrektheit und Stabilität von besonderer Bedeutung sind. “ John Barnes, „Programming in Ada 95“, 2 nd Edition, 1998
Was ist Ada? Die Entwicklung von Ada § 1974 – Das amerikanische Do. D fördert die Entwicklung einer neuen Programmiersprache. Honeywell Bull gewinnt die Ausschreibung und ein Team unter der Leitung von Jean Ichbiah entwickelt Ada. § 1983 – Ada 83 wird standardisiert (ANSI/MIL-STD 1815) -> (1991) PL/SQL § 1987 – Ada 83 wird durch ISO 8652 genormt § 1988 – Das Do. D initiiert das Ada 9 X-Projekt § 1995 – Ada 95, entwickelt bei Intermetrics unter der Leitung von Tucker Taft wird nach ISO 8652 freigegeben. § 2007 – Der Konsolidierungsstand Ada 05 wird freigegeben.
Was ist Ada? Hello
Was ist Ada? Strenge Typisierung
Was ist Ada? Fehlerbehandlung durch Exceptions
Was ist Ada? Objektorientierung mit Tagged Types
Was ist Ada? Der Sprachumfang von Ada 95/05 Core Language mit Multitasking Predefined Library Annexes • Systems Programming • Real-Time Systems • Distributed Systems • Information Systems (COBOL) • Numerics • Safety and Security
Was ist Ada? • Standardisiert, objektorientiert • Blockstrukturiert: declare…begin…exception…end • Parallelverarbeitung durch Tasks in Core eingebaut • Hohe Softwarequalität durch strenge Typisierung • Laufzeitfehlerbehandlung durch Exceptions • Statischer Polymorphismus mit Generics (Templates) • Flexible Paketstrukturen und inkrementelle Kompilierung • Geeignet für Embedded Systems (Real-Time Annex) • Compiler und Runtimes für alle gängigen Plattformen
Was ist Ada? Kompilierungssysteme • GNAT – GNU Ada Translator (Maintainer: Ada. Core) Bestandteil der GNU Compiler Collection – gcc Verfügbar für Windows, Sun-Solaris, GNU-Linux, … Weitere • Object. Ada – für alle Plattformen. Enthält GUI-Builder Hersteller: Aonix, wird wahrscheinlich nicht weiterentwickelt • Janus/Ada 95 von R. R. Software mit Claw Windows Bindung • Rational Apex Ada von IBM, speziell für embedded Systems
Was ist Ada? Zertifizierung Jeder Ada Compiler muss sich einer Zerifizierung gemäß ISO 8652 unterziehen. Compiler und Runtime Bibliothek müssen die im ARM (Ada Reference Manual) niedergelegte Spezifikation erfüllen. Konsequenz: Gemäß ARM geschriebener Code, der keine zusätzlichen Bibliotheken einbindet, kompiliert mit jedem zertifizierten Compiler und das Kompilat läuft unter jeder vom Compiler unterstützten Plattform.
Ada und PL/SQL im Vergleich Ada 83 => (1991) PL/SQL Ada und PL/SQL sind syntaktisch sehr ähnlich Wichtige Unterschiede Ada • Streng typisiert • Komplexe Sichtbarkeit • Kein varchar 2() Typ • Konkatoperator „&“ • Keine out-Parameter bei Funktionen! • Multitasking • OO-Sprache PL/SQL • Implizite Typumwandlg. • Einfache Namensräume • varchar 2() Typ • Konkatoperator „||“ • „out“ Parameter bei Funktionen erlaubt • Kein Multitasking • Keine OO-Sprache
Ada und PL/SQL im Vergleich Oracle PL/SQL Ada Übergangschwierigkeiten • Wo ist mein varchar 2 Datentyp? • Programmieren auf dem Stack • Von Oracle Namen zur Ada Sichtbarkeit • Editoren und Compiler • Brauchen wir einen GUI-Builder? (Forms)
Ada und PL/SQL im Vergleich Erfahrung: Einige PL/SQL-Features lernten wir erst während der Beschäftigung mit Ada kennen. Beispiel: Paketinitialisierung im Package-Body zwischen abschliessendem begin … end; (Obwohl im PL/SQL-User Guide erwähnt) Später divergierten Ada und PL/SQL. Deshalb gibt es große Unterschiede im Bereich komplexer Datentypen wie Arrays, Collections und vor allem in den objektorientierten Sprachelementen.
Warum Ada für Oracle Programmierung? Ausgangssituation (2001) • Ende der 1990 er Jahre stoppte Oracle die Weiterentwicklung des Client-Server Toolsets Developer 2000 • Oracle Forms erlaubt keine 100%-tige Systemintegration (Beispiel: Kein Com oder DDE-Server) • Kein Multitasking mit Oracle Forms • Oracle Applikationen unter verschiedenen Plattformen mit hohen Anforderungen an Stabilität und Performance entwickeln Anfang 2002 Nach 6 Monaten Evaluierung Ada
Warum Ada für Oracle Programmierung? Pro • Ähnlichkeit zwischen Ada und PL/SQL • Sprachmerkmale von Ada Multitasking Objektorientierung Systemintegration Plattformunabhängigkeit Standardisierung • Ada ist geeignet zur Herstellung großer, zuverlässiger Softwaresysteme
Warum Ada für Oracle Programmierung? Contra • Ada ist keine Mainstream-Sprache Wenige Ada Programmierer. Innen Kundenakzeptanz? Lebensdauer der Sprache • Ada ist nicht leicht zu lernen • Es gibt nur wenige Bibliotheken für Datenbankzugriff und Windows GUI-Programmierung
Warum Ada für Oracle Programmierung? 2002 Wissensaufbau Ada 95 und Entscheidung für GNAT Wir benötigten Bibliotheken für die Interaktion mit Oracle und Windows GUI-Programmierung Web Recherche und Evaluierung ü Adaoci (Dmitriy Anisimkov) als Startpunkt der Entwicklung eines Oracle-Access Layers Entscheidung gegen SQL*Module ü GWindows (David Botton) als Basis für die Erstellung einer Windows GUI-Bibliothek
Die Konada. Db Bibliothek Adaoci Methoden Create Konada. Db Sqltype Bind/Set Execute Fetch Get Anwendung …. Die Verwaltung von Bindevariablen und Defines wird automatisch von der Bibliothek vorgenommen
Die Konada. Db Bibliothek
Die Konada. Db Bibliothek Nächster Schritt: Rowtype und. Tabletype Daten abfragen und ändern ohne SQL DB Db Tabelle Konada. Db. Tables Objekt
Die Konada. Db Bibliothek Tabletype
Die Konada. Db Bibliothek Windows GUI-Programmierung Was ist GWindows? Eine GUI-zentrierte Ada-Bindung an die Windows API von David Botton ü Einfach zu nutzen ü Klar codiert ü Einfach zu erweitern ü Frei verfügbar (GMGPL) 2003: Entscheidung für GWindows
Die Konada. Db Bibliothek GWindows_Extended • Neue Controls, abgeleitet von GWindows Typen mit mehr Features • Bug fixing • Neue Methoden und Utilities GWindows List_View_Control Header-Drag. And-Drop GWindows_Extended Icons Header-Click-Event Ex_List_View_Control
Die Konada. Db Bibliothek win 32 Oracle OCI Netzwerk Win 32 -API Andere Adaoci GWindows Konada. Db + GWindows_Extended. Rows Netzwerk . Tables Controls (Single-, Multirow) & Anwendung – z. Bsp. El. Sch
Ada Multitasking verwenden Erzeugter Task Rendezvousanfrage Haupt Programm Task Rendezvous Datenaustausch
Ada Multitasking verwenden Beispiele für die Verwendung von Tasks • Paralleler Verbindungsaufbau zu verschiedenen Hosts, z. Bsp. FTP und Db Server • Ermittlung von sperrenden Benutzern. Ein Task agiert als Waiter, ein zweiter fragt V$lock ab • Paralleles Laden von Daten ohne Blockierung der GUI-Oberfläche
Ada Multitasking verwenden FTP-Task Logon Daten ermitteln File in Db registrieren (Post) Ja: Filetransfer Commit, falls OK Nein: Rollback FTP Verbinden (ja/nein)? Verbindung aufgebaut? Task
Ada Multitasking verwenden Main FTP-Task
Ada Multitasking verwenden Verhalten von Tasks während Execute- und Fetch-Phase Fetch Connection Fetch T 2 T 3 Execute: synchron andauernd T 1 T 2 T 3
Ada Multitasking verwenden Weitere Erfahrungen • Mithilfe der Ada-Multitasking Sprachelemente lassen sich stabile, multithreaded Oracle-Anwendungen auf verschiedenen Plattformen (Windows/Solaris/ Linux) entwickeln. • In Verbindung mit der Möglichkeit, SQL-Statements via OCI asynchron auszuführen (wurde in Konada. Db. Sql realisiert), ergeben sich alternative Lösungen für parallele Verarbeitung. • Da Tasks in Ada wie Objekte behandelt werden – man kann etwa Arrays von Tasks dynamisch erzeugen – ist die Erstellung von Applikationsserver. Anwendungen relativ einfach möglich.
GUI- Programmierung Zielvorstellungen Erstellung von GUI-Komponenten mit den nachstehenden Eigenschaften: • Anzeige und Manipulation einzelner Datensätze wie auch Anzeige und Manipulation in einem Grid • Automatisches oder programmatisches Layout (Kein GUI-Builder) • Vollständiges Event-Modell • Baum-Navigation, wobei der Baum das logische Datenmodell oder Prozessmodell reflektiert • Ablage der GUI Konfiguration in der Datenbank soll möglich sein dynamische Erzeugung/Anpassung der GUI-Oberfläche
GUI- Programmierung Single-Record Control Mit automatischem 4 -Spalten Layout
GUI- Programmierung Single-Record Control - Codebeispiel
GUI- Programmierung Multi-Record Control Mit aktivierter Filterfunktion
GUI- Programmierung
Realisierte Programme und Ausblick • El. Sch. Der Elektronische Schreibtisch ist ein voll funktionaler Workflow-Client für Windows, der vollständig in Ada realisiert wurde. • Karcis. Eine unter Solaris lauffähige Archivkopplung zwischen KWfl, unserem Workflow- und Dokumenten Managementsystem und dem Archivsystem ARCIS. • Kutil. so. Ein shared-Object zur Nutzung von Solaris Systemdiensten innnerhalb von PL/SQL stored Procedures. • Vertiffserver. Ein Windows-Service, der im Hintergrund Winword-Dokumente in das TIFF 4 -Format überführt. Der Service ist ein TCP-Listener und kann zur Laufzeit über ein grafisches Interface gesteuert bzw. konfiguriert werden
Realisierte Programme und Ausblick
Realisierte Programme und Ausblick • In einem aktuellen Projekt wird eine Branchen-ERP Lösung vollständig in Ada und PL/SQL realisiert • Eine Bibliothek zur Gestaltung von Web-Interfaces für Oracle Applikationen ist in Planung • Ein IDE für die Entwicklung von GUI-Oberflächen (Kein Layout-Editor) ist in Planung
Literatur • John Barnes: Programming in Ada 2005 • Burns/Wellings: Concurrency in Ada Das Buch über Multitasking in Ada. • „Ada destilled“ von Richard Riehle Für erfahrene Programmierer, die Ada lernen wollen. http: //www. adaic. org/docs/distilled/adadistilled. pdf • comp. lang. ada Newsgroup. Klein, aber sehr aktiv. • http: //en. wikibooks. org/wiki/Programming: Ada Ein guter Startpunkt. • http: //www. adapower. com Viele Codebeispiele.
- Ies vega del piron
- Systemanalyse programmentwicklung
- Dalam laporan percobaan tidak ada urutan waktu tetapi ada
- Negasi dari jika ada gula maka ada semut adalah
- Pengertian gaya
- Ada frank
- Frank william abagnale jr. young
- Sekuensial algoritma
- Old beliefs do not lead you to new cheese meaning
- 2 macam magnet
- Discrete combinatorial system
- Akhirnya sang semut berjanji kepada kupu-kupu
- Ada 2 gelas kosong berukuran 5 liter dan 3 liter
- Peta segamat
- Di suatu hutan ada seekor semut berjalan-jalan di taman
- Yohanes 15 ayat 13
- Chicles con sello ada
- Rukun islam
- Jobs for stutterers
- Ada stoppelenburg
- Ada 2 gelas kosong berukuran 5 liter dan 3 liter
- Coba tunjukkan di mana saja tempat panca budhindriya
- Fungsi bpr adalah
- Pencatatan investasi
- Contoh lingkaran hukum adat di sumatera
- Udang batu peribahasa
- Dua perkara hadas besar
- Juke family tree
- Majas paralelisme
- Pemberian efek teks di insert ada di menu
- Boost tokenizer
- Contoh soal fungsi transenden
- Tobacco
- Kitab apokaliptik
- Prva programerka
- Rukun iman yang ke empat adalah *
- Sumbu simetri belah ketupat ada berapa
- Ada classification
- Dokumen penerimaan barang
- Senyuman yang manis
- Ada stuttering
- Direct manipulation adalah
- Struktur anthozoa