View
14
Download
0
Category
Preview:
DESCRIPTION
Professionelle APEX Entwicklung: Projektbeispiele und Lessons learned. Dietmar Aust / Opal Consulting 17.09.2008. Agenda. Vorstellung Opal Consulting Applikation AbiT Applikation ShopDB Lessons learned Fragen?. Vorstellung Opal Consulting. Dipl.-Inform. Dietmar Aust, Freiberufler - PowerPoint PPT Presentation
Citation preview
Professionelle APEX Entwicklung:
Projektbeispiele und Lessons learned
Dietmar Aust / Opal Consulting
17.09.2008
Page 2
DOAG Regionalgruppe 2008Dietmar Aust
Agenda
Vorstellung Opal Consulting
Applikation AbiT
Applikation ShopDB
Lessons learned
Fragen?
Page 3
DOAG Regionalgruppe 2008Dietmar Aust
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)
Page 4
DOAG Regionalgruppe 2008Dietmar Aust
T-Punkt Vertriebsgesellschaft mbH
Page 5
DOAG Regionalgruppe 2008Dietmar Aust
T-Punkt Vertriebsgesellschaft mbH
1986: Eröffnung erster T-Punkte
Mai 2004 : Ausgründung in eine eigenständige GmbH als 100%Tochter 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
Page 6
DOAG Regionalgruppe 2008Dietmar Aust
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 => keine aktuelle Vertriebssteuerung möglich
Workarounds Erfassung von Produktgruppen über Barcode Scanner => 40, 68, 90 Barcodes
Page 7
DOAG Regionalgruppe 2008Dietmar Aust
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, 07:00 – 22:00) Bundleverkäufe dokumentieren Vertriebssteuerung ermöglichen Schnittstellen: Produktdaten, Benutzerdaten, Shop
Informationen, Absätze
Die Anforderungen haben sich bis zum Ende geändert!
Page 8
DOAG Regionalgruppe 2008Dietmar Aust
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!
Page 9
DOAG Regionalgruppe 2008Dietmar Aust
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
Mod_p
lsql
AbiT
- P
latf
orm
ClientsHardware Load
Balancer
Application Server
Oracle RAC 10.2
Mod_p
lsql
Sql*net
Sql*net
http
httphttp
http
Page 10
DOAG Regionalgruppe 2008Dietmar Aust
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:
− >95% 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)
Page 11
DOAG Regionalgruppe 2008Dietmar Aust
Applikation AbiTDie Umsetzung
Demo
Page 12
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 13
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 14
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 15
DOAG Regionalgruppe 2008Dietmar Aust
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 => schrittweise
Migration Die Applikation wurde bis zuletzt geändert (neue Spalten, Daten) Downtime der MS Applikation sollte minimiert werden Datenmodell ungünstig => Redesign
Viele Details unklar
=> extrem iterativer Ansatz mit wöchentlichen Prototypen Fortschritte früh zeigen Die Fachabteilung involvieren
Page 16
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 17
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – Technische Architektur
Mod_p
lsql
AbiT
- P
latt
form
ClientsHardware Load
Balancer
Application Server
Oracle RAC 10.2
Mod_p
lsql
Sql*net
Sql*net
http
httphttp
http
Geo-
Kom
pon
ente
n
Geo / Application Server
Map visualization
Geocoding
http
http
MS Access Clients
ODBC / Sql*net
Page 18
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – MS Access Migration
Probleme: Wer entwickelt diese Applikationen?
− MS Access Power Users, keine echten Entwickler
Tabellennamen und Spaltennamen− >30 Zeichen und Sonderzeichen
1:1 Migration nicht sinnvoll Daten und Strukturen bis zum Ende geändert Kurze Downtime
=> 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
Page 19
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – Workflow
S&A9B_OUTLETVORSCHLAG_AUFNEHMEN_TPPOutletvorschlag aufnehmen (Partner)
(Key Account Manager)
S&A10_STANDORT_ABSTIMMENStandort abstimmen
(Standortplaner)
P&E0B_ANSTOSS_UNTERLAGEN_TPPAnstoss zur Erstellung der
Prüfungsunterlagen (Partner)(Standortplaner)
P&E5_SAMMLUNG_BEWERTUNGSammlung Daten und Bewertung
Absatzprognose(Standortplaner)
Standort aufSuchliste?
P&E1_EINHOLUNG_SICHTPRUEFUNG
Einholung Sichtprüfung(Standortmanager)
P&E3_STANDORTEXPOSEStandortexpose erstellen
(Standortplaner)
P&E4B_ABSATZPROGNOSE_TPPAbsatzprognose erstellen
(ZVS)
2:NEIN
171:JA
3 4 5
P&E2_EINHOLUNG_MACHBARKEIT
Einholung Machbarkeitsstudie(Standortmanager)
6
7
8
P&E6_BC_BEWERTUNG_ABSATZErstellung BC und qual. Bewertung
Absatzprognose(Controlling)
P&E7_GF_VORLAGEErstellung GF-Vorlage
(Standortplaner)
P&E8_EINREICHUNG_GF_VORLAGEEinreichung GF-Vorlage in Umlaufverfahren
(Standortplaner)
10
11
12
P&E9_FEEDBACK_GF_GOFeedback GF go(Standortplaner)
13
P&E4C_ABSATZPROGNOSE_TPPEinholung partnerspez. Kosten und
Absatzprognose(Key Account Manager)
P&E4D_PROGNOSEN_KONSOLIDIEREN_TPP
Zusammenführung Absatzprognosen(Key Account Manager)
14
9 15
16
Page 20
DOAG Regionalgruppe 2008Dietmar Aust
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öglich
durch Graphviz
Page 21
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – Workflow
Rollenbasierte ToDo-Liste
Email Benachrichtigungen Neue Aufgaben Überfällige Aufgaben Hyperlinks zur Aufgabe / Shop in der Email
Page 22
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – Workflow
Status Informationen
Page 23
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung – Geokodierung von Adressen
Ziele Eindeutige Schreibweise von
Adressen− Keine Tippfehler mehr!
Nutzung der Koordinaten− Abstände zwischen Shops
sicherstellen
Software JCoder Business (infas Geodaten)
Page 24
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBThe solution – Workflow
Visualisierung Adressen / Shops Informations-Layer
Software MapSuite (infoware) Marktinformationen (infas Geodaten)
Page 25
DOAG Regionalgruppe 2008Dietmar Aust
Applikation ShopDBDie Umsetzung
Demo
Page 26
DOAG Regionalgruppe 2008Dietmar Aust
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.
Page 27
DOAG Regionalgruppe 2008Dietmar Aust
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 !!!
Page 28
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 29
DOAG Regionalgruppe 2008Dietmar Aust
Lessons learned Entwicklung- Tools
Firefox + Plugins Firebug WebDeveloper MeasureIt Yslow Aardvark ApexLib Framework ApexBuilder Plugin
Aptana (Javascript Editor)
Toad / SQL Developer
Page 30
DOAG Regionalgruppe 2008Dietmar Aust
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#
Page 31
DOAG Regionalgruppe 2008Dietmar Aust
Lessons learned Debugging
Build Option DISABLED (Status=Exclude) Elemente und Regionen schnell deaktivieren => 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!
Page 32
DOAG Regionalgruppe 2008Dietmar Aust
Lessons learned Qualitätssicherung
APEX Essentials von Patrick Wolf http://essentials.oracleapex.info/ APEX Advisor
APEX Dictionary Views direkt auswerten
Page 33
DOAG Regionalgruppe 2008Dietmar Aust
Lessons learned Deployment
Backup der Applikationen / Export der Applikationen \apex\utilities\oracle\apex => 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 <Location /pls/apex> PlsqlErrorStyle DebugStyle
Page 34
DOAG Regionalgruppe 2008Dietmar Aust
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_USERS'), OWA_UTIL.get_cgi_env ('REMOTE_ADDR') ) = 0 THEN HTP.p (xlib_conf_pck.get_value ('ABIT.RESTRICTED_MESSAGE')); htp.p('<br /><spanstyle="color:white;>"'||owa_util.get_cgi_env('REMOTE_ADDR')||'</span>'); apex_application.g_unrecoverable_error := TRUE; END IF; END IF;END;
Page 35
DOAG Regionalgruppe 2008Dietmar Aust
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.so
RewriteEngine 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?p=107:5 [R]# Redirect, wenn nur Server eingegeben wird (entspricht index.html)RewriteRule ^/$ http://%{SERVER_NAME}/apex/f?p=107:1 [R]
Alias /i/ /u01/app/oracle/product/10.2.0_HTTP/apex/images/ <Directory "/u01/app/oracle/product/10.2.0_HTTP/apex/images/"> AllowOverride None Order allow,deny Allow from all <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 hour" </IfModule> IndexOptions FancyIndexing </Directory>
Page 36
DOAG Regionalgruppe 2008Dietmar Aust
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 > SYSDATE - 1 / 24 / 60 * 60 /* 1 Stunde */GROUP BY application_id, page_id
Page 37
DOAG Regionalgruppe 2008Dietmar Aust
Weitere Informationen
Sammlung von BLOGS http://www.apexblogs.info
Deutsche APEX Community http://www.oracle.com/global/de/community/index.html
APEX Forum http://forums.oracle.com/forums/forum.jspa?forumID=137
http://apex.oracle.com Packaged Applications HowTos
Page 38
DOAG Regionalgruppe 2008Dietmar Aust
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
Page 39
DOAG Regionalgruppe 2008Dietmar Aust
Kontakt: Opal-Consulting Dietmar Aust Web: http://www.opal-consulting.de Blog: http://daust.blogspot.com/ E-Mail: dietmar.aust@opal-consulting.de
Q & A
Recommended