Professionelle APEX Entwicklung: Projektbeispiele und Lessons learned - PowerPoint PPT Presentation

1 / 39
About This Presentation
Title:

Professionelle APEX Entwicklung: Projektbeispiele und Lessons learned

Description:

... ETL Prozess f r die Daten bernahme in PLSQL Packages Schicht von Views in Oracle Schicht von Views in MS Access Applikation ShopDB Die Umsetzung ... – PowerPoint PPT presentation

Number of Views:263
Avg rating:3.0/5.0
Slides: 40
Provided by: M12253
Category:

less

Transcript and Presenter's Notes

Title: Professionelle APEX Entwicklung: Projektbeispiele und Lessons learned


1
Professionelle APEX Entwicklung
Projektbeispiele und Lessons learned
  • Dietmar Aust / Opal Consulting
  • 17.09.2008

2
Agenda
  • Vorstellung Opal Consulting
  • Applikation AbiT
  • Applikation ShopDB
  • Lessons learned
  • Fragen?

3
Vorstellung Opal Consulting
  • Dipl.-Inform. Dietmar Aust, Freiberufler
  • 1997-2000 Consultant bei der Oracle Deutschland
    GmbH / Düsseldorf
  • Schwerpunkte Oracle Portal, Oracle Reports,
    Oracle Forms, PL/SQL, PLSQL Web Toolkit (OWA)
  • Seit 09/2000 Freiberuflich
  • Schwerpunkte Oracle Portal, Oracle Reports,
    Oracle Application Express, Oracle Express
    Edition
  • Seit drei Jahren nur APEX Entwicklung
  • Advanced APEX Schulungen mit Patrick Wolf und
    Denes Kubicek
  • Aktivitäten
  • http//daust.blogspot.com/
  • http//forums.oracle.com/forums/forum.jspa?forumID
    137 (APEX)
  • http//forums.oracle.com/forums/forum.jspa?forumID
    251 (XE)

4
T-Punkt Vertriebsgesellschaft mbH
5
T-Punkt Vertriebsgesellschaft mbH
  • 1986 Eröffnung erster T-Punkte
  • Mai 2004 Ausgründung in eine eigenständige
    GmbH als 100Tochter der Deutschen Telekom
  • Die T-Punkt Vertriebsgesellschaft ist der
    einzige stationäre Vertriebskanal der Deutschen
    Telekom in Deutschland
  • Betreuung von jährlich rund 60 Millionen
    Privatkunden und über2,5 Millionen
    mittelständischen Geschäftskunden (T-Punkt
    Business)
  • Rund 800 Filialen und eine Verkaufsfläche von
    über 93 000 Quadratmetern
  • Mehr als 6000 Mitarbeiter, zusätzlich 1450
    Auszubildende

6
Applikation AbiTProblemstellung
  • Das Gehalt der Verkäufer in den Shops besteht aus
    einem Fixum und variablen, umsatzabhängigen
    Provisionen
  • Die Kundenaufträge werden direkt in den
    Auftragssystemen der Konzerntöchter erfasst
    (T-Com, T-Mobile)
  • Die Abrechnung zwischen den Konzerntöchtern und
    der TPG erfolgt auf Basis der erfolgreich
    durchgeführten Aufträge
  • Evtl. Stornos wegen Kreditwürdigkeit oder
    technischer Probleme, diese werden nicht vergütet
  • Die Mitarbeiter werden für die Bruttoabsätze
    vergütet (Absprache mit Betriebsrat), von den
    Konzerntöchtern kommen jedoch nur Nettoabsätze
  • Zeitverzug in der Übermittlung der Daten
  • gt keine aktuelle Vertriebssteuerung möglich
  • Workarounds
  • Erfassung von Produktgruppen über Barcode Scanner
  • gt 40, 68, 90 Barcodes

7
Applikation AbiTProblemstellung / Anforderungen
  • Management Entscheidung
  • Vereinbarung mit dem Betriebsrat
  • Zeit für Design, Implementierung und Pilot Phase
    6 Wochen!
  • Finanzieller Schaden bei Fehlschlag (130
    Zielerfüllung für alle Mitarbeiter)
  • Anforderungen
  • Auftragserfassungsystem für ca. 5.000 Nutzer
  • Hochverfügbar (7 Tage pro Woche, 0700 2200)
  • Bundleverkäufe dokumentieren
  • Vertriebssteuerung ermöglichen
  • Schnittstellen Produktdaten, Benutzerdaten, Shop
    Informationen, Absätze
  • Die Anforderungen haben sich bis zum Ende
    geändert!

8
Applikation AbiTWarum APEX?
  • Warum wurde APEX verwendet?
  • Der Kunde kannte APEX nicht
  • J2EE war die Standard-Technologie für
    Web-Anwendungen
  • Der Realisierungszeitraum war zu kurz, die
    üblichen Dienstleister konnten dies nicht leisten
  • Opal Consulting wurde aufgrund einer Empfehlung
    ausgewählt
  • Folglich Keine Technologie-Diskussion, einfach
    nur umsetzen!

9
Applikation AbiTDie Umsetzung Technische
Architektur
  • Application Server (2)
  • Fujitsu Siemens RX 300 S2, 2 HT CPUs, 8GB RAM,
    Linux RH AS4
  • Oracle Internet Application Server 10.1.3
  • Database (2 node RAC)
  • Sun Fire V490 Server, 2 Dual Core CPUs, 8GB RAM,
    Solaris 10
  • Oracle 10.2, APEX 2.2.1

Sqlnet
Mod_plsql
http
http
http
AbiT - Platform
Sqlnet
http
Clients
Oracle RAC 10.2
Hardware Load Balancer
Mod_plsql
Application Server
10
Applikation AbiTDie Umsetzung - Performance und
Nutzung
  • Nutzung
  • 3.500 aktive Nutzer pro Tag
  • 25.000 Aufträge pro Tag
  • 400.000 Seitenaufrufe pro Tag
  • Serverauslastung
  • Application Server
  • gt95 idle
  • http Sessions 30
  • Database Server
  • 30 (70 wenn nur ein Knoten aktiv ist)
  • Sessions 25-35 concurrent (pro Knoten)
  • Dedicated, kein Shared Server (MTS)

11
Applikation AbiTDie Umsetzung
  • Demo

12
Applikation AbiTNächste Schritte
  • Von vornherein als Übergangslösung geplant
  • Mittlerweile seit Okt. 2006 in Betrieb
  • Die Applikation wird schrittweise abgelöst durch
    direkte Schnittstellen zu den Konzerntöchtern
  • Übermittlung von Brutto Absätzen
  • Aufträge werden nur einmal erfasst

13
Applikation ShopDBProblemstellung
  • Neuausrichtung der Deutschen Telekom
  • Kunden zurückgewinnen, Umsätze steigern
  • Expansion mit neuen Shops kritisch für
    Umsatzziele
  • Expansionsziel in 2006 verfehlt
  • Anzahl der Neueröffnungen zu niedrig
  • Analyse zeigte Defizite auf
  • Keine klare Definition der Aufgaben und
    Verantwortlichkeiten
  • Fehlende Transparenz der Prozesse, wie ist der
    Status?
  • Fehlende Kommunikation, manche Aufgaben wurden
    doppelt von verschiedenen Abteilungen
    durchgeführt
  • Prozess für die Eröffnung dauerte zu lange
  • Kein zentrales Informationssystem vorhanden,
    falsche Adressen
  • Der neue Rollout-Prozess wurde externen Beratern
    überarbeitet

14
Applikation ShopDBAnforderungen
  • Implementierung einer zentralen Shop-Datenbank
  • Konsolidierung und Vereinheitlichung
    verschiedener Datenquellen
  • Datenkonsistenz und Datenqualität
  • Implementierung des neuen Rollout-Prozesses,
    basierend auf einer Workflow-Engine
  • Klare Verantwortlichkeiten, Deadlines pro
    Workflow-Schritt
  • Email - Benachrichtigungen
  • Rollenbasierte Lese- und Schreibzugriff
  • Automatische Validierung von Adressen, keine
    Tippfehler mehr
  • Visualisierung von Karten (Shops und Marktdaten)
  • Kaufkraft, Konsumschwerpunkte, Konkurrenz,
  • Prozess Überwachung und Protokollierung von
    Änderungen

15
Applikation ShopDBHerausforderungen
  • Projektplan wieder extrem ambitioniert
  • Kick-off im April 2007 (Kunde analysiert die
    Anforderungen)
  • Teilnahme im Projekt beginnt Mitte April
  • Erster Prototyp im Mai
  • Wirkbetriebsaufnahme am 13.06.2007 (Version 0.6)
  • Wirkbetriebsaufnahme am 10.08.2007 (Version 1.0)
  • Existierende MS Access Applikationen
  • Es konnte nicht alles sofort übernommen werden gt
    schrittweise Migration
  • Die Applikation wurde bis zuletzt geändert (neue
    Spalten, Daten)
  • Downtime der MS Applikation sollte minimiert
    werden
  • Datenmodell ungünstig gt Redesign
  • Viele Details unklar
  • gt extrem iterativer Ansatz mit wöchentlichen
    Prototypen
  • Fortschritte früh zeigen
  • Die Fachabteilung involvieren

16
Applikation ShopDBWarum APEX?
  • APEX hatte sich bereits im Projekt AbiT bewährt
  • Kurze Entwicklungszyklen
  • Performante Plattform
  • Kein komplexes Setup notwendig, die existierende
    Infrastruktur konnte mitgenutzt werden, einfach
    eine weitere APEX Applikation installieren
  • Projekt-Team
  • Zwei Entwickler
  • Ein Projektleiter

17
Applikation ShopDBDie Umsetzung Technische
Architektur
Sqlnet
Mod_plsql
http
http
http
AbiT - Plattform
Sqlnet
http
Clients
Oracle RAC 10.2
Hardware Load Balancer
Mod_plsql
http
ODBC / Sqlnet
Application Server
http
Map visualization
Geo-Komponenten
Geocoding
MS Access Clients
Geo / Application Server
18
Applikation ShopDBDie Umsetzung MS Access
Migration
  • Probleme
  • Wer entwickelt diese Applikationen?
  • MS Access Power Users, keine echten Entwickler
  • Tabellennamen und Spaltennamen
  • gt30 Zeichen und Sonderzeichen
  • 11 Migration nicht sinnvoll
  • Daten und Strukturen bis zum Ende geändert
  • Kurze Downtime
  • gt Lösung
  • Tabellen und Spalten normalisieren mit VBA Skript
    (Oracle konform)
  • Datenbank-Link von Oracle zu MS Access (beliebige
    ODBC Quelle)
  • ETL Prozess für die Datenübernahme in PLSQL
    Packages
  • Schicht von Views in Oracle
  • Schicht von Views in MS Access

19
Applikation ShopDBDie Umsetzung Workflow
20
Applikation ShopDBDie Umsetzung Workflow
  • Open Source pl/sql Workflow Engine
  • http//plflow.sourceforge.net/
  • XPDL 1.0 kompatibel, kein Import/Export von
    Prozessen
  • Kein User-Interface, nur PLSQL API
  • Einfach zu integrieren und stabil
  • Prozessvisualisierung möglichdurch Graphviz

21
Applikation ShopDBDie Umsetzung Workflow
  • Rollenbasierte ToDo-Liste
  • Email Benachrichtigungen
  • Neue Aufgaben
  • Überfällige Aufgaben
  • Hyperlinks zur Aufgabe / Shop in der Email

22
Applikation ShopDBDie Umsetzung Workflow
  • Status Informationen

23
Applikation ShopDBDie Umsetzung Geokodierung
von Adressen
  • Ziele
  • Eindeutige Schreibweise vonAdressen
  • Keine Tippfehler mehr!
  • Nutzung der Koordinaten
  • Abstände zwischen Shopssicherstellen
  • Software
  • JCoder Business (infas Geodaten)

24
Applikation ShopDBThe solution Workflow
  • Visualisierung
  • Adressen / Shops
  • Informations-Layer
  • Software
  • MapSuite (infoware)
  • Marktinformationen (infas Geodaten)

25
Applikation ShopDBDie Umsetzung
  • Demo

26
Applikation ShopDBWeitere Schritte
  • Weitere Prozesse für das Shop Management umsetzen
  • MS Access Applikation vollständig ablösen
  • Die ShopDB als zentrale Informationsquelle für
    alle Systeme der TPG etablieren
  • Kostenkontrolle
  • Abrechnung der Mieten
  • Abrechnung der Kosten für Reinigung,
    Instandhaltung, etc.

27
Lessons learnedVorteile von APEX
  • Vorhandenes Oracle Know-How nutzen !!!
  • Entwickler können schnell produktiv werden
  • Keine steile Lernkurve (im Gegensatz zu anderen
    Web-Technologien)
  • Gute Trennung der Geschäftslogik von der UI
    Darstellung (Themes und Templates)
  • Datenmodelländerungen können schnell umgesetzt
    werden
  • APEX reagiert sehr flexibel
  • Hervorragendes Werkzeug für RAD oder agile
    Entwicklungsmethoden
  • Starker iterativer Ansatz (regelmäßige
    Prototypen) gewährleisten eine hohe
    Kundenzufriedenheit
  • Oracle Heterogenous Services !!!

28
Lessons learnedHerangehensweise
  • Solide Datenmodellierung
  • Es gibt keinen Ersatz Professionalität und
    Sorgfalt!
  • APEX Besonderheiten berücksichtigen
  • Technische Schlüssel (ID Spalten)
  • Iterative Implementierung
  • Kurze Feedback-Zyklen mit dem Kunden
  • Umsetzung Kundenlayout wichtig!
  • Beginnen mit voller Menüstruktur ohne
    Berechtigungen
  • Einzelne Funktionalitäten in voller Tiefe
    implementieren
  • Navigation / Ergonomie mit Fachabteilung
    abstimmen
  • Anwender bei Nutzung der Prototypen beobachten
  • Tatsächliche Business Cases durchspielen

29
Lessons learned Entwicklung- Tools
  • Firefox Plugins
  • Firebug
  • WebDeveloper
  • MeasureIt
  • Yslow
  • Aardvark
  • ApexLib Framework
  • ApexBuilder Plugin
  • Aptana (Javascript Editor)
  • Toad / SQL Developer

30
Lessons learned Entwicklung
  • DEBUG Build Option
  • Einfaches Login der Testaccounts
  • Läuft die Applikation im Builder?
  • apex_application.g_edit_cookie_session_id IS NOT
    NULL
  • Security umgehen (kontrollierte Backdoor)
  • Versionsnummer im Template verwenden
  • APP_VERSION

31
Lessons learned Debugging
  • Build Option DISABLED (StatusExclude)
  • Elemente und Regionen schnell deaktivieren
  • gt Bedingungen bleiben erhalten
  • Debug Modus
  • Langsame Regionen ermitteln
  • Eigene Meldungen im Debug Modus hinzufügen
  • Apex_application.debug
  • AJAX
  • Firebug - HTTP Requests für analysieren
  • Vorsicht, Fehlermeldungen in OnDemand Prozessen
    werden unterdrückt aus Sicherheitsgründen!

32
Lessons learned Qualitätssicherung
  • APEX Essentials von Patrick Wolf
  • http//essentials.oracleapex.info/
  • APEX Advisor
  • APEX Dictionary Views direkt auswerten

33
Lessons learned Deployment
  • Backup der Applikationen / Export der
    Applikationen
  • \apex\utilities\oracle\apex gt Readme.txt
  • Workspace-ID in Entwicklung / Abnahme /
    Produktion identisch
  • Skriptbasierte Applikation der SQL Dateien
  • Applikations-ID in Entwicklung / Abnahme /
    Produktion identisch
  • Entwicklung Fehlermeldungen http-404 sichtbar
    machen
  • DAD Konfiguration anpassen
  • ltLocation /pls/apexgt
  • PlsqlErrorStyle DebugStyle

34
Lessons learned Deployment
  • Applikation während Installation offline setzen
  • Custom Ansatz über Konfigurationstabelle
  • Applikationsprozess (Before Header)

BEGIN IF xlib_conf_pck.get_value
('ABIT.RESTRICTED_MODE') '1 THEN IF
INSTR (xlib_conf_pck.get_value ('ABIT.RESTRICTED_U
SERS'), OWA_UTIL.get_cgi_env
('REMOTE_ADDR') ) 0 THEN
HTP.p (xlib_conf_pck.get_value
('ABIT.RESTRICTED_MESSAGE')) htp.p('ltbr
/gtltspanstyle"colorwhitegt"'owa_util.get_cgi_e
nv('REMOTE_ADDR')'lt/spangt')
apex_application.g_unrecoverable_error TRUE
END IF END IFEND
35
Lessons learned Deployment Apache
Konfiguration
  • Mod_rewrite / sprechende URLs
  • Caching der Bilder / CSS / Javascript im Apache
    (/i/)

Modul mod_rewrite aktivierenLoadModule
rewrite_module libexec/mod_rewrite.soRewrite
Engine OnRewriteLog "/u01/app/oracle/product/10.2
.0_HTTP/Apache/Apache/logs/rewrite.log"
RewriteLogLevel 0 direkter Rewrite auf die
SchulungRewriteRule /training
http//SERVER_NAME/apex/f?p1075 R
Redirect, wenn nur Server eingegeben wird
(entspricht index.html)RewriteRule
/ http//SERVER_NAME/apex/f?p1071 R
Alias /i/ /u01/app/oracle/product/10.2.0_HTTP/ape
x/images/ ltDirectory "/u01/app/oracle/product/10
.2.0_HTTP/apex/images/"gt AllowOverride
None Order allow,deny Allow from
all ltIfModule mod_expires.cgt
ExpiresActive on ExpiresDefault "access
plus 1 hour" lt/IfModulegt
IndexOptions FancyIndexing lt/Directorygt
36
Lessons learned Monitoring
  • Auswertung der Logeinträge
  • Langsame Seiten finden
  • Applikationsfehler proaktiv finden

SELECT application_id, page_id,
COUNT () AS hits, COUNT ()/60 AS
hits_pro_min, MIN (elapsed_time) AS
MIN, AVG (elapsed_time) AS AVG,
MAX (elapsed_time) AS MAX, AVG
(elapsed_time) COUNT () weight FROM
apex_workspace_activity_log WHERE view_date gt
SYSDATE - 1 / 24 / 60 60 / 1 Stunde /GROUP
BY application_id, page_id
37
Weitere Informationen
  • Sammlung von BLOGS
  • http//www.apexblogs.info
  • Deutsche APEX Community
  • http//www.oracle.com/global/de/community/index.ht
    ml
  • APEX Forum
  • http//forums.oracle.com/forums/forum.jspa?forumID
    137
  • http//apex.oracle.com
  • Packaged Applications
  • HowTos

38
APEX Schulung
  • Fortgeschrittene Techniken aus der Praxis
  • Patrick Wolf (APEX Entwickler des Jahres 2007)
  • Denes Kubicek (APEX Entwickler des Jahres 2008)
  • Dietmar Aust
  • http//www.opal-consulting.de
  • März 2009 (3 Tage)
  • Bensheim

39
  • Kontakt
  • Opal-Consulting Dietmar Aust
  • Web http//www.opal-consulting.de
  • Blog http//daust.blogspot.com/
  • E-Mail dietmar.aust_at_opal-consulting.de

Q A
Write a Comment
User Comments (0)
About PowerShow.com