Anforderungsmanagement - Opal

Werbung
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?
DOAG Regionalgruppe 2008
Dietmar Aust
Page 1
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)
DOAG Regionalgruppe 2008
Dietmar Aust
Page 2
T-Punkt Vertriebsgesellschaft mbH
DOAG Regionalgruppe 2008
Dietmar Aust
Page 3
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 über
2,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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 4
Applikation AbiT
Problemstellung
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 5
Applikation AbiT
Problemstellung / 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!
DOAG Regionalgruppe 2008
Dietmar Aust
Page 6
Applikation AbiT
Warum 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!
DOAG Regionalgruppe 2008
Dietmar Aust
Page 7
Applikation AbiT
Mod_plsql
http
http
Sql*net
http
Sql*net
http
Clients
Mod_plsql
AbiT - Platform
Die Umsetzung – Technische Architektur
Hardware Load Balancer
Oracle RAC 10.2
Application Server
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 8
Applikation AbiT
Die 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)
DOAG Regionalgruppe 2008
Dietmar Aust
Page 9
Applikation AbiT
Die Umsetzung
 Demo
DOAG Regionalgruppe 2008
Dietmar Aust
Page 10
Applikation AbiT
Nä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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 11
Applikation ShopDB
Problemstellung
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 12
Applikation ShopDB
Anforderungen
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 13
Applikation ShopDB
Herausforderungen
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 14
Applikation ShopDB
Warum 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 15
Applikation ShopDB
Mod_plsql
http
http
Sql*net
http
Sql*net
http
Clients
Mod_plsql
AbiT - Plattform
Die Umsetzung – Technische Architektur
Hardware Load Balancer
Geo-Komponenten
Application Server
Oracle RAC 10.2
http
http
ODBC /
Sql*net
Map visualization
Geocoding
MS Access Clients
Geo / Application Server
DOAG Regionalgruppe 2008
Dietmar Aust
Page 16
Applikation ShopDB
Die 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 17
S&A9B_OUTLETVORSCHLAG_AUFNEHMEN_TPP
Outletvorschlag aufnehmen (Partner)
(Key Account Manager)
Applikation ShopDB
Die Umsetzung – Workflow
Standort auf
Suchliste?
2:NEIN
S&A10_STANDORT_ABSTIMMEN
Standort abstimmen
(Standortplaner)
17
1:JA
P&E0B_ANSTOSS_UNTERLAGEN_TPP
Anstoss zur Erstellung der
Prüfungsunterlagen (Partner)
(Standortplaner)
3
P&E1_EINHOLUNG_SICHTPRUEF
UNG
Einholung Sichtprüfung
(Standortmanager)
4
5
P&E3_STANDORTEXPOSE
Standortexpose erstellen
(Standortplaner)
14
P&E4B_ABSATZPROGNOSE_TPP
Absatzprognose erstellen
(ZVS)
6
9
8
P&E2_EINHOLUNG_MACHBARKEI
T
Einholung Machbarkeitsstudie
(Standortmanager)
7
P&E4C_ABSATZPROGNOSE_TPP
Einholung partnerspez. Kosten und
Absatzprognose
(Key Account Manager)
15
P&E4D_PROGNOSEN_KONSOLIDIEREN_TP
P
Zusammenführung Absatzprognosen
(Key Account Manager)
16
P&E5_SAMMLUNG_BEWERTUNG
Sammlung Daten und Bewertung
Absatzprognose
(Standortplaner)
10
P&E6_BC_BEWERTUNG_ABSATZ
Erstellung BC und qual. Bewertung
Absatzprognose
(Controlling)
11
P&E7_GF_VORLAGE
Erstellung GF-Vorlage
(Standortplaner)
12
P&E8_EINREICHUNG_GF_VORLAGE
Einreichung GF-Vorlage in Umlaufverfahren
(Standortplaner)
13
P&E9_FEEDBACK_GF_GO
Feedback GF go
(Standortplaner)
DOAG Regionalgruppe 2008
Dietmar Aust
Page 18
Applikation ShopDB
Die 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 19
Applikation ShopDB
Die Umsetzung – Workflow
Rollenbasierte ToDo-Liste
Email Benachrichtigungen
 Neue Aufgaben
 Überfällige Aufgaben
 Hyperlinks zur Aufgabe / Shop in der Email
DOAG Regionalgruppe 2008
Dietmar Aust
Page 20
Applikation ShopDB
Die Umsetzung – Workflow
Status Informationen
DOAG Regionalgruppe 2008
Dietmar Aust
Page 21
Applikation ShopDB
Die 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)
DOAG Regionalgruppe 2008
Dietmar Aust
Page 22
Applikation ShopDB
The solution – Workflow
Visualisierung
 Adressen / Shops
 Informations-Layer
Software
 MapSuite (infoware)
 Marktinformationen (infas Geodaten)
DOAG Regionalgruppe 2008
Dietmar Aust
Page 23
Applikation ShopDB
Die Umsetzung
Demo
DOAG Regionalgruppe 2008
Dietmar Aust
Page 24
Applikation ShopDB
Weitere 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.
DOAG Regionalgruppe 2008
Dietmar Aust
Page 25
Lessons learned
Vorteile von APEX
 Vorhandenes Oracle Know-How nutzen !!!
 Entwickler können schnell produktiv werden
 Keine steile Lernkurve (im Gegensatz zu anderen WebTechnologien)
 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 !!!
DOAG Regionalgruppe 2008
Dietmar Aust
Page 26
Lessons learned
Herangehensweise
 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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 27
Lessons learned
Entwicklung- Tools
 Firefox + Plugins
 Firebug
 WebDeveloper
 MeasureIt
 Yslow
 Aardvark
 ApexLib Framework
 ApexBuilder Plugin
 Aptana (Javascript Editor)
 Toad / SQL Developer
DOAG Regionalgruppe 2008
Dietmar Aust
Page 28
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#
DOAG Regionalgruppe 2008
Dietmar Aust
Page 29
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!
DOAG Regionalgruppe 2008
Dietmar Aust
Page 30
Lessons learned
Qualitätssicherung
 APEX Essentials von Patrick Wolf
 http://essentials.oracleapex.info/
 APEX Advisor
 APEX Dictionary Views direkt auswerten
DOAG Regionalgruppe 2008
Dietmar Aust
Page 31
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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 32
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 /><span
style="color:white;>"'||owa_util.get_cgi_env('REMOTE_ADDR')||'</span>');
apex_application.g_unrecoverable_error := TRUE;
END IF;
END IF;
END;
DOAG Regionalgruppe 2008
Dietmar Aust
Page 33
Lessons learned
Deployment – Apache Konfiguration
 Mod_rewrite / sprechende URLs
# Modul mod_rewrite aktivieren
LoadModule rewrite_module
libexec/mod_rewrite.so
RewriteEngine On
RewriteLog "/u01/app/oracle/product/10.2.0_HTTP/Apache/Apache/logs/rewrite.log"
RewriteLogLevel 0
# direkter Rewrite auf die Schulung
RewriteRule ^/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]
 Caching der Bilder / CSS / Javascript im Apache (/i/)
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>
DOAG Regionalgruppe 2008
Dietmar Aust
Page 34
Lessons learned
Monitoring
 Auswertung der Logeinträge
 Langsame Seiten 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
 Applikationsfehler proaktiv finden
DOAG Regionalgruppe 2008
Dietmar Aust
Page 35
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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 36
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
DOAG Regionalgruppe 2008
Dietmar Aust
Page 37
Q&A
 Kontakt:
 Opal-Consulting Dietmar Aust
 Web: http://www.opal-consulting.de
 Blog: http://daust.blogspot.com/
 E-Mail: [email protected]
DOAG Regionalgruppe 2008
Dietmar Aust
Page 38
Herunterladen