TEAM – Ihr Partner für IT Paderborn, den 09.02.2010

Werbung
Beratung Software Lösungen
Teilaspekte einer Migration
von Forms nach ADF
Zahlen und Fakten
 Unternehmensgruppe Materna:
1.300 Mitarbeiter –
160 Mio. Euro Umsatz in 2011
 Geschäftsführung:
Michael Baranowski - Heike Käferle
 Mitarbeiterzahl:
60
OracleBusiness: Passgenaue Oracle - Dienstleistungen
 Lizenzierung
 Consulting
 Individualentwicklungen
 Business Intelligence
 Schulungen
 Support
ProStore® - Intralogistik und Warehousemanagement
 WMS/LVS
 MFR/MFS
 beleglose Kommissionierung
 Pick-by-Voice
 Staplerleitsystem
 Ressourcenplanung
 Logistikleitstand
 Logistics Intelligence
Agenda
• Migrationsgegenstand
• Was muss bei einer Migration beachtet werden?
• Konkreter Migrationsprozess
• TEAM ADF Framework
06.12.2012
© TEAM - Ihr Partner für IT
6
Migrationsgegenstand
06.12.2012
© TEAM - Ihr Partner für IT
7
Warum migrieren?
• Hoher Aufwand „neue“ Features in Forms zu realisieren
 Handlungsbedarf nach neuer Technologie
• Verbesserung der User Experience
 Fokus auf Prozessmodellierung
• Es gibt nicht DAS Tool für JEDEN Benutzer
 User Centered Design
• Nutzung verschiedener Kanäle
 Desktop
 Mobile
06.12.2012
© TEAM - Ihr Partner für IT
8
Die Spitze des Eisberges
06.12.2012
© TEAM - Ihr Partner für IT
9
Unter der Wasseroberfläche
Zahlen und Fakten
• > 350 Forms-Dialoge
• z.T. mit kundenspezifischen Anpassungen
• mehr als 4 Mio. Zeilen PL/SQL – Code
• gute Trennung zwischen Forms- und
PL/SQL-Logik in der Datenbank
Randbedingungen:
 Keine komplette Neuentwicklung
 Wiederverwendung von PL/SQL in der Datenbank
 Beibehalten des aktuellen Systems - “don‘t touch running code“
 Maximale Anzahl gleichzeitig arbeitender Nutzer < 1000
06.12.2012
© TEAM - Ihr Partner für IT
10
Wieso ist es nicht einfach zu migrieren?
ADF – Entwicklung
auf der „grünen Wiese“
ADF – Entwicklung
in einem Migrationsprojekt
Forms
ADF
DB
DB
• Tabellen
• (Updatable) Views
• Packages (Stored Procedures)
• Tabellen
• (Updatable) Views
• Packages (Stored Procedures)
 Data – Store
 „Alleskönner“
06.12.2012
© TEAM - Ihr Partner für IT
11
Querschnittsfunktionalitäten
• > 4 Millionen LoC (PL/SQL)
 wie kann PL/SQL eingebunden werden?
Benutzer & Rollen?
Transaktionshandling?
Pooling?
Datentypen?
Datenbankbenutzer?
Fehlerbehandlung?
Security?
Internationalisierung?
Tracing / Logging?
Optimistisches /
Pessimistisches Locking?
06.12.2012
© TEAM - Ihr Partner für IT
Querschnittsfunktionen
Sessionkontext?
12
Querschnittsfunktionalitäten
• Sessionkontext – PL/SQL und Connection Pooling
ADF BC
Application Module Pool
06.12.2012
© TEAM - Ihr Partner für IT
JDBC
Connection Pool
13
Querschnittsfunktionalitäten
• Sessionkontext
• Maximale Anzahl gleichzeitig arbeitender Nutzer < 1000
• Application Module (AM) Konfiguration
• Disconnect Application Module upon release: disabled
06.12.2012
© TEAM - Ihr Partner für IT
14
Querschnittsfunktionalitäten
• Sessionkontext – PL/SQL und Application Module Pooling
ADF BC
Application Module Pool
06.12.2012
© TEAM - Ihr Partner für IT
JDBC
Connection Pool
15
Querschnittsfunktionalitäten
• Sessionkontext
• Maximale Anzahl gleichzeitig arbeitender Nutzer < 1000
• Application Module (AM) Konfiguration
• Disconnect Application Module upon release: disabled
• Support Dynamic JDBC Credentials: enabled
• RELEASE_MODE: RESERVED
 Application Module behält Connection nach Abarbeitung einer Anfrage
 Umstellung des Release_Modes („Freigabe“) im TaskFlow Finalizer
 Benutzer bekommt gleiche AM-Instanz und DB-Session
 Globale Package-Variablen können verwendet werden!
06.12.2012
© TEAM - Ihr Partner für IT
16
Business-Logik
• Wiederverwendung des PL/SQL – Codes in der Datenbank
TEAM – Lösung (Version 1.0):
• Import Stored Procedures Wizard (Extension)
 Generierung eines Java Wrappers, der den Aufruf kapselt
TEAM – Lösung (Version 2.0):
• JDeveloper PL/SQL – Extension
 Direktes schreiben des PL/SQL – Codes an den Business Components (ADF BC)
06.12.2012
© TEAM - Ihr Partner für IT
17
Business-Logik
ADF (Java)
public void callPkDoagAnmelden() throws SQLException {
DoagViewRowImpl row = (DoagViewRowImpl) getCurrentRow();
String vorname = row.getVorname();
String nachname = row.getNachname();
String kontakt = row.getPhoneNumber();
String bestaetigung = null;
DBTransaction trans = getDBTransaction();
String stmnt = “begin pk_doag.anmelden(?,?,?,?); end;”;
OraclePreparedStatement ops = (OraclePreparedStatement)
trans.createPreparedStatement(statement,
DBTransaction.DEFAULT);
ops.setString(1, vorname);
ops.setString(2, nachname);
ops.setString(3, kontakt);
ops.registerOutParameter(4, OracleTypes.VARCHAR2);
ops.execute();
bestaetigung = ocs.getString(4);
row.setBestaetigung(bestaetigung);
}
06.12.2012
© TEAM - Ihr Partner für IT
18
Business-Logik
ADF (Java)
Forms
public void callPkDoagAnmelden() throws SQLException {
DoagViewRowImpl row = (DoagViewRowImpl) getCurrentRow();
String vorname = row.getVorname();
String nachname = row.getNachname();
String kontakt = row.getPhoneNumber();
String bestaetigung = null;
DBTransaction trans = getDBTransaction();
String stmnt = “begin pk_doag.anmelden(?,?,?,?); end;”;
OraclePreparedStatement ops = (OraclePreparedStatement)
trans.createPreparedStatement(statement,
DBTransaction.DEFAULT);
ops.setString(1, vorname);
ops.setString(2, nachname);
ops.setString(3, kontakt);
ops.registerOutParameter(4, OracleTypes.VARCHAR2);
ops.execute();
bestaetigung = ocs.getString(4);
row.setBestaetigung(bestaetigung);
}
-- T_BUTTON_PRESSED
begin
pk_doag.anmelden (
:bl_dialog.vorname,
:bl_dialog.nachname,
:bl_dialog.kontakt,
:bl_dialog.bestaetigung
);
end;
06.12.2012
© TEAM - Ihr Partner für IT
19
Was muss ich bei einer Migration beachten?
• Updatable Database Views
• (Datenbank)-View mit 2 Tabellen
• LoV über JobTitle
• Validierung
• Forms:
• Query Only
• Nur Abfrage
• ADF?
06.12.2012
© TEAM - Ihr Partner für IT
20
Was muss ich bei einer Migration beachten?
• Updatable Database Views
Application
Module
DialogReadOnly
View
Objects
Entity
Objects
DbView
DialogUpdatable
UpdDbView
DbViewImpl
SQL
aNTI pATTERN!
(Oracle) JDBC Interface
UPD_DB_VIEW
DB_VIEW
TABELLE_1
06.12.2012
06.12.2012 © TEAM - Ihr Partner für IT
© TEAM - Ihr Partner für IT
TABELLE_2
TABELLE_3
21
21
Was muss ich bei einer Migration beachten?
• Updatable Database Views
Application
Module
DialogReadOnly
View
Objects
Entity
Objects
DbView
SQL
DialogUpdatable
UpdDbView
Tabelle1Eo
Tabelle2Eo
 automatisierte
Generierung
von Entity- und
View-Objekten
Tabelle3Eo
(Oracle) JDBC Interface
UPD_DB_VIEW
DB_VIEW
TABELLE_1
06.12.2012
06.12.2012 © TEAM - Ihr Partner für IT
© TEAM - Ihr Partner für IT
TABELLE_2
TABELLE_3
22
22
Wiederverwendung von ADF-Komponenten
• Componenten-Framework nach dem Baukastenprinzip
 Zusammenführen mehrerer Dialoge zu einer Oberfläche / zu einem Workflow
 Konfiguration der (Task-Flow) Komponente zur Laufzeit
• Konfiguration „Standalone“
• Die selbe Komponente
als Detail eingebettet
(Der rot markierte Bereich
stellt die Nutzer – Sicht dar.)
06.12.2012
© TEAM - Ihr Partner für IT
23
Konkreter Migrationsprozess
UserCentered
Design
Componenten
Framework
ViewController
UI-Framework
Model
BL-Framework
QF*
Oracle Forms
QF* - ADF
Design / Doc…
Oracle ADF
* Querschnittsfunktionalitäten
06.12.2012
© TEAM - Ihr Partner für IT
24
TEAM ADF Framework – TAF
(User)
Interface
Framework
Component
Framework
BusinessLogic
Framework
Querschnittsfunktionalitäten
(Cross-Section Functions)
06.12.2012
© TEAM - Ihr Partner für IT
25
Was bietet das TEAM ADF Framework?
• Implementierung von Best Practices für den Migrationsprozess
• Lösung für eine Vielzahl von Querschnittsfunktionalitäten
• Leichte Einbindung von bestehendem PL/SQL Code
• Kostengünstige Entwicklung von neuer Business-Logik
• Wohldefiniertes Vorgehensmodell für eine Migration
06.12.2012
© TEAM - Ihr Partner für IT
26
Haben Sie noch Fragen
Beratung Software Lösungen
TEAM-Konferenzvorträge
 Forms fits4all
Stephan La Rocca
Mittwoch, 21. November 2012, 14:00 - 14:45 Uhr Raum: St. Petersburg
 Teilaspekte einer Migration
von Forms nach ADF
Manuel Malatyali
Mittwoch, 21. November 2012, 16:00 - 16:45 Uhr Raum: Kopenhagen
 Minimalinvasive Überwachung von
Datenbanken für optimale Verfügbarkeit
Ralf Appelbaum
Donnerstag, 22. November 2012, 10:00 - 10:45 Uhr Uhr Raum: St. Petersburg
06.12.2012
© TEAM - Ihr Partner für IT
28
TEAM-Stand
Besuchen Sie uns am Stand 204
in der 2. Etage (gelb)!
SIE können der Gewinner sein!
So einfach geht´s:
Visitenkarte abgeben und eine 3-tägige TEAM-Standardschulung
im Wert von 1.200 Euro zu einem beliebigen Thema gewinnen!
Die Ziehung erfolgt am letzten Tag der DOAG um 16:00 Uhr.
Beratung Software Lösungen
Vielen Dank für Ihre
Aufmerksamkeit!
TEAM Partner für Technologie
und angewandte Methoden der
Informationsverarbeitung
GmbH
Hermann-Löns-Str. 88
33104 Paderborn
Fon +49 5254 8008-0
Fax +49 5254 8008-19
Mail [email protected]
Web www.team-pb.de
Herunterladen