|
Rapid Application Developmentmit Oracle Application Express 5
Niels de Brujin,Fachbereichsleiter APEX
Ratingen, 27.05.2015
|
MT AG
GESCHÄFTSFORM INHABERGEFÜHRTE AG
HAUPTSITZ RATINGEN
GRÜNDUNGSJAHR 1994
BESCHÄFTIGTE 180 FESTANGESTELLTE MITARBEITER
BETEILIGUNGEN MT-IFS GMBH (RATINGEN), MT-IFS SARL (LUXEMBURG)
business by integration
BUSINESS
INTELLIGENCE SOLUTIONSSOCIAL BUSINESS
SOLUTIONSMOBILE
SOLUTIONS
APPLICATION
DEVELOPMENTINTEGRATION
SERVICESIT SYSTEM
SERVICES
|
Über mich
Niels de Bruijn, Fachbereichsleiter APEX
Geboren in 1977, verheiratet, drei Töchter, Wohnort Ratingen
seit 12.2003 bei der MT AG in Ratingen
zuvor 2 Jahre als Berater bei Oracle Nederland B.V. angestellt
Beschäftigt sich seit 2004 mit APEX
Federführend beim Vertrieb/Marketing/Delivery von APEX Projekten aller Art
- https://apex.mt-ag.com & http://www.apexsolutions.de
Themenverantwortlicher für APEX bei der DOAG
Hält Vorträge u.A. auf der DOAG Konferenz / APEX connect, ODTUG Kscope
Rapid Application Development mit APEX 53
|
Agenda
Rapid Application Development mit APEX 54
■ Oracle Application Express (APEX)
■ Die Möglichkeiten
■ Warum APEX?
■ Enterprise APEX
■ Ausgewählte Projektreferenzen der MT AG
■ APEX Community
|
Oracle Application Express
Rapid Application Development mit APEX 55
Rapid Application Development Produkt für die Erstellung von individuellen datenzentrischen Webanwendungen
100% Oracle-Datenbank, 100% Browser
Oracle 11.1.0.7 und höher (inkl. XE)
Kostenloses Feature der Oracle Datenbank
Aktuelle Version ist 5.0
Für Desktop sowie mobile Endgeräte
|
Historie
Rapid Application Development mit APEX 57
HTML DB 1.5 First Release
HTML DB 1.6 Themes
2004 2007 2012
Application Express 2.1 Oracle XE
Application Express 2.2 Packaged Applications
Application Express 3.1 Interactive Reports
HTML DB 2.0 SQL Workshop
Application Express 3.0 Flash Charts
PDF Printing
Access Migration
Application Express 3.2 Oracle Forms to APEX
Conversion
Application Express 4.1 Data Upload
Error Handling
ROWID
2006 2009 201120082005
Application Express 4.2 Mobile
HTML5
Packaged Apps
Application Express 4.0 Websheets
Dynamic Actions
Plug-Ins
Team Development
2010 2015
Application Express 5.0 Page Designer
Universal Theme
Mehrere IRs
Modale Dialoge
|
Woraus besteht APEX?
Rapid Application Development mit APEX 59
APEX wurde durch 12 Entwickler mit APEX entwickelt
14 APEX Anwendungen
10 Sprachen
2.156 APEX Seiten
3.431.250 Wörter, davon 371.412 übersetzt
3.159 Datenbankobjekte
448 Tabellen
534.023 Zeilen PL/SQL Code
|
Positionierung: von klein bis groß
Rapid Application Development mit APEX 510
Unternehmen
Arbeits-/
Projektgruppe
pragmatisch strategisch
Java EE / ADF
.Net
PC-Datenbank
APEXVerteilung
Ansatz
Individualentwicklung von datenzentrischen Anwendungen
|
Pragmatisch
Strategisch
Pragmatisch
Rapid Application Development mit APEX 511
Mobiles Endgerät
Desktop Komplexe Dialoge
Einfache Dialoge
Desktop
Einfache Dialoge
Ergebnis:
- Standard APEX Features
- Rapid Prototyping Ansatz
- Time to market 1-3 Monate
- 1-2 Entwickler
- Aufwand i.d.R. 10-100 PT
Projekttypen mit APEX
|
Agenda
Rapid Application Development mit APEX 512
■ Warum APEX?
■ Die Möglichkeiten
■ Oracle Application Express (APEX)
■ Enterprise APEX
■ Ausgewählte Projektreferenzen der MT AG
■ APEX Community
|
Treiber
Rapid Application Development mit APEX 513
Kosten für die Anwendungsentwicklung sowie den Betrieb reduzieren
- APEX ist ein deklaratives Werkzeug
- Keine Lizenzkosten!
- Fertige Komponente & Designvorlagen
- Themen wie zum Beispiel Sessionverwaltung, Mandantenfähigkeit,
Deployment und IT-Sicherheit werden durch APEX adressiert
- Integriert in einer heterogenen Systemlandschaft
- Alle Möglichkeiten der Datenbank stehen direkt zur Verfügung
- Stabile, skalierbare und einfache Architektur
- 33%-67% weniger Entwicklungsaufwand im Vergleich zu Java!
|
Treiber
Rapid Application Development mit APEX 514
Endanwender sparen Zeit durch die intuitive „out-of-the-box“
Bedienungsoberfläche
|
Anwendungsgebiete
Rapid Application Development mit APEX 515
Migration von Insellösungen z.B. MS Access/Excel
- Von Clientapplikation zu Webapplikation
- Stammdatenkonsolidierung
Migration von Oracle Forms-Anwendungen
- Andere Zielgruppen können adressiert werden
- Kein Browser JRE Plug-in mehr notwendig
- Oracle Forms kostenpflichtig; APEX nicht
- PL/SQL Kenntnisse wieder verwendbar
Rapid Prototyping
- Zeigt die Möglichkeiten mit APEX
- Ermöglicht eine schnelle Visualisierung von Anforderungen
- Fachkonzept samt Prototyp als Basis für die Realisierungsphase
|
Anwendungsgebiete
Rapid Application Development mit APEX 516
Berichtswesen- Einfache Reporting-Lösungen ohne DWH
Extranet Anwendungen
- elektronischer Kommunikationskanal für Partner/Kunden/Lieferanten
Webformulare
- Anträge, Registrierung, Reisekosten
Mobile Apps
- „Develop once, deploy everywhere“
Als Front-End für SAP oder MS SharePoint
- Intuitive Weboberflächen bereitstellen ohne SAP Client
- Weg von SharePoint-Listen
|
Agenda
Rapid Application Development mit APEX 517
■ Die Möglichkeiten
■ Warum APEX?
■ Oracle Application Express (APEX)
■ Enterprise APEX
■ Ausgewählte Projektreferenzen der MT AG
■ APEX Community
|
Repository Views
Rapid Application Development mit APEX 518
Alle Anwendungsdefinitionen im Repository
Webseiten werden dynamisch erstellt
Änderungen online möglich: Sofort wirksam
Informationen via Dictionary Views
APEX_APPLICATIONS
APEX_APPLICATION_PAGES
APEX_APPLICATION_PAGE_REGIONS
…
|
Cloud Computing mit APEX (PaaS)
Rapid Application Development mit APEX 519
Unabhängige, private Arbeitsbereiche
■ Unabhängige Entwicklung und Administration
■ Eigene Applikationsverwaltung
■ Eigene Benutzerverwaltung
Zentrale Datenbank
■ Zentrale Wartung
■ Zentrale Datenhaltung
|
Oracle Public Cloud
Rapid Application Development mit APEX 520
Für Demos
■ apex.oracle.com
(kostenlos)
Für Produktion
■ cloud.oracle.com
(30 Tage zum Testen)
|
Architektur
Rapid Application Development mit APEX 521
Web Gateway
Oracle
Database
mit APEX 5
Reporting
z.B. Oracle
BI Publisher
Authentifizierung
z.B. Microsoft
Active Directory
HTTP(S)
LDAP(S)
SQLnet
Browser(für APEX Entwickler und die
Endanwender)
HTTP(S)
Oracle Client(für DB Entwickler)
SQLnet
Workflow
BPEL ServerHTTP(S)
Externe
Anwendungsdaten
(z.B. SAP)
ODBC, SQLnet oder Web Services
z.B. Microsoft
ExchangeSMTP
Apache
(optional)
HTTP(S) oder AJP
|
Referenz-Architektur
Rapid Application Development mit APEX 522
Oracle Database
mit APEXORDS
Optional:
ApacheBrowser
|
APEX skaliert sowohl technisch…
Rapid Application Development mit APEX 523
Browser
Betriebssystem
Datenbank
Web Server
Storage
Betriebssystem
Datenbank
Web Server
Cluster Software Cluster Software
Load Balancer
|
…als auch von der Anwendungsgröße
Rapid Application Development mit APEX 524
APEX
Anwendung 1
„Builder“
APEX
Anwendung 2
„Websheets“
Entwicklungsoberfläche von APEX
APEX
Anwendung 3
„SQL Workshop“
|
Schichten in der Datenbank
Rapid Application Development mit APEX 525
seitenspezifische Viewmit optional „instead of“ Trigger
APEX Seite
Tabelleninkl. Trigger und Sequenz, optional TAPI
seitenspezifisches Package
View
Logik
Persistenz
|
Sizing – Was setzte Oracle in 2010 ein?
Rapid Application Development mit APEX 526
Öffentlicher Demoserver apex.oracle.com* (Stand 12.2010)
4.756.868 Page Events** / Woche
Maximale Page Events pro Tag zwischen 900.000 and 1.000.000
Interner Server apex.oraclecorp.com* (Stand 12.2010)
577.989 Page Events / Woche
Eingesetzte Hardware für beide Umgebungen:
Dell PowerEdge 1950, 2 x Dual Core XESn Processor, 2.33GHz, 32GB RAM
Kosten: ~ 1000$ bei Amazon
* ) Eingesetzt wird Oracle Database 11.2.0.2 Enterprise Edition
** ) Page Event = Seitenabfrage, Seitenverarbeitung oder AJAX Abfrage
|
Sizing – Was setzt Oracle ab 2013 ein?
Rapid Application Development mit APEX 527
Öffentlicher Demoserver apex.oracle.com* (Stand 07.2013)
4 Millionen Page Events** / Woche
Interner Server apex.oraclecorp.com* (Stand 01.2015)
3 Millionen Page Events / Woche
Eingesetzte Hardware für beide Umgebungen***:
2 Knoten: Exadata X2-2 server
mit jeweils 12 x 2.93 GHz cores, 96 GB Hauptspeicher, 3 “storage cells”
Idle time: 91%!***
* ) Eingesetzt wird Oracle Database 11.2.0.2 Enterprise Edition
** ) Page Event = Seitenabfrage, Seitenverarbeitung oder AJAX Abfrage
***) Migration auf Exadata wurde ausschließlich durch eine Standardisierung der Hardware begründet
|
Sizing – Was setzen APEX Kunden ein?
Rapid Application Development mit APEX 528
Beispiel CampusIT (http://campusit.net, Stand 01.2013):
APEX Instanz mit 200.000 Benutzern
5.000 Benutzer arbeiten tagtäglich mit diesem Instanz
8 parallele Seitenabfragen pro Sekunde
- Lasttests haben gezeigt dass die Umgebung bis zu 50 parallele
Seitenabfragen pro Sekunde verarbeiten kann. Dies entspricht etwa 1.000 (!)
Benutzer die aktiv mit dem Instanz arbeiten, wenn zwischen den Klicks im
Durchschnitt 20 Sekunden liegen.
Eingesetzte Hardware für diese Umgebung:
2 Knoten HTTP Server im Cold Failover Betrieb
- 2 x Dual Core Xeon Prozessor, 8 GB, Windows Server 2003 Betriebssystem
2 Knoten Datenbank (RAC)
- 2 x Dual Core Xeon Prozessor, 4 GB, Red Hat Enterprise Linux 5 Betriebssystem
|
Vieles liefert die Datenbank bereits...
Rapid Application Development mit APEX 529
Reguläre Ausdrücke, Web Services (UTL_DBWS),
Regel-Management, Message Queuing (Advanced
Queuing), HTTP-Zugriffe (UTL_HTTP), Jobsteuerung,
Komplexe Abfragen (Analytische Funktionen),
Mailversand (UTL_MAIL), LDAP-Zugriffe
(DBMS_LDAP), Mandantenfähige Anwendungen
(Virtual Private Database), JSON, Datenverschlüsselung
(DBMS_CRYPTO), Dateizugriffe (UTL_FILE), XML-
Erzeugung (SQL/XML-Funktionen), Bild-
Metadatenextraktion (EXIF, DICOM), Data Mining,
Workflow, XQuery, Volltextrecherche, ETL-Funktionen
(Pipelining), Database Change Notification, ....
|
Basiert auf AnyChart 6.2.0
HTML5 & Flash Charts
Einfache Kartendarstellung (Map)
Gantt Charts
Custom Charting mit XML
- Link: API
- Link: XML Interpreter
Weitere (Open Source) Charts?
- D3.js
- Google Charts
- JS Infovis Toolkit
- Flot
Diagramme
Rapid Application Development mit APEX 538
|
Möglichkeiten zur Druckausgabe
Rapid Application Development mit APEX 539
Jasper,
Birt
Spreadshe
et
Publisher
Oracle
BI
Publisher
APEX
Plugins
PL-
JRXML
2PDF
PL/PDF Oracle
REST
Data
Services
2.x
MT-Doxx
Server
Technologie
Java-Server
(JEE)
Java-Server
(JEE)
WebLogic PL/SQL in
RDBMS
PL/SQL
in
RDBMS
PL/SQL
Java-
wrapper in
RDBMS
WebLogic /
Glassfish /
JDK /
Tomcat
.Net / IIS
Client Tool
für die
Definition
iReport
Designer,
Eclipse/Birt
Excel Word /
Excel
(Plugin
notwendig)
APEX ggf.
SQL Plus
iReport
Designer
(jrXML)
SQL Plus Altova
StyleVision
oder Stylus
Studio
Word /
Excel
Mögliches
Layout?
Pixel
perfekt
Pixel
perfekt
Pixel perfekt Nicht Pixel
perfekt
Nicht Pixel
perfekt
Nicht
Pixel
perfekt
Pixel perfekt Pixel perfekt
Ausgabe
über IR?
Nein Ja (Plugin) Ja Nein Nein Nein Ja Nein
Schnittstelle
für APEX
URL,
PL/SQL
PL/SQL XSL-FO/
XML
PL/SQL PL/SQL PL/SQL XSL-FO/
XML
REST Web
Service
Formate XLS(X),
PDF, RTF
XLS(X) XLS, PDF,
DOC
PDF,
XLSX
PDF PDF PDF XLSX,
DOCX, PDF
Lizenz
kosten?
Nein Ja Ja Nein Nein Ja Nein Nein
|
APEX erweitern mit Plug-Ins
Rapid Application Development mit APEX 540
Für Regionen, Elemente, Dynamic Actions, Seiten-, Authentifizierungs- sowie
Autorisierungsprozesse
Separat ex- und importierbar
- Werden beim Anwendungsexport mit exportiert
Schnittstellendefinition durch APEX
PL/SQL Funktion unter anderem für das Rendering
JavaScript/CSS Dateien werden nur einmal geladen
|
Einfache Beispiele…
Rapid Application Development mit APEX 541
Slider
Star Rating
Yahoo! Stock Quotes
Google Maps Integration
|
Komplexes Beispiel (FOEX Plugins)
Rapid Application Development mit APEX 542
|
Dynamic Actions
Rapid Application Development mit APEX 543
■ Clientseitiges Verhalten manipulieren, auch ohne Kenntnisse von
jQuery
■ Beispiele:
■ Felder ein/ausblenden
■ Mehrere Felder über eine Dynamic Action setzen
|
Packaged Applications
Rapid Application Development mit APEX 544
■ Anwendung importieren & ausführen!
■ Installiert Datenbankobjekte/Daten/Dateien/Anwendung
■ APEX bietet „out of the box“ viele Apps
■ Für Demozwecke, aber einige auch für den produktiven Betrieb
■ Weitere Apps auf www.apexsolutions.de
|
Websheets – APEX für Endanwender
Rapid Application Development mit APEX 545
Daten und Texte direkt ins Web stellen
Textseiten
Editierbare Data Grids
Interaktive Berichte
Attachments, Tagging, Bemerkungen
APEX für "Business User"
Keine Programmierung nötig
Verteilung per URL (/apex/ws?p=999:home)
Rechtekonzept per ACL
|
Web Services
Rapid Application Development mit APEX 550
■ Deklarative Unterstützung für den REST- und SOAP-basierten Ansatz
■ Aufruf/Verarbeitung mittels PL/SQL Package APEX_WEB_SERVICE
■ Falls XML, dann Aufbereitung zusätzlich mittels SQL/XML möglich
|
Mehrsprachigkeit
Rapid Application Development mit APEX 552
|
Für unterwegs…
Rapid Application Development mit APEX 553
■ Mobile Webanwendung
■ Einmal entwickeln…
■ läuft auf iOS (iPhone/iPad), Windows Phone, Android
■ Verwendet jQuery Mobile
■ Auto-Detect: Desktop oder Smartphone?
■ Native Funktionen mittels PhoneGap einsetzen
■ Ermöglicht den Zugriff auf lokale Ressourcen
■ Auch hier: einmal entwickeln…
■ QR Code für eine Demo App einscannen (mobile Barcodescanner)
Beispielcode zum Scannen:
|
Exkurs: HTML5
Rapid Application Development mit APEX 554
■ HTML 5 bietet neue Perspektive, wie beispielsweise
■ Neue Elemente (auch mit Spracheingabe)
■ Standort herausfinden
■ Bidirektionale Kommunikation (Websockets)
■ Serverseitige Kommunikation
■ Benachrichtigungen
■ Drag & drop
■ Lokale Speicherung
■ Ersetzt Adobe Flash
■ Demos auf apex.mt-ag.com (Google Chrome empfohlen)
|
■ Workspace INTERNAL: Einstellungen für den APEX Instanz
■ Programmatischer Import mittels APEX_APPLICATION_INSTALL
■ Verteilung der HW Ressourcen mittels Ressourcen Manager in 11gR2
■ APEX Sessions mit v$session identifizieren
■ Ab 12c: CDB/PDB-Konzept
APEX für Oracle DBAs
Rapid Application Development mit APEX 555
|
Agenda
Rapid Application Development mit APEX 557
■ Die Möglichkeiten
■ Enterprise APEX
■ Warum APEX?
■ Oracle Application Express (APEX)
■ APEX Community
■ Ausgewählte Projektreferenzen der MT AG
|
Selenium / Robot
Subversion
Rapid Application Development mit APEX 558
(PL/)SQL Developer
Jira
Jenkins
Maven
Enterprise APEX
Data Modeler
APEX
REST Data Services
Tomcat
ToolsSkills
HTML
CSS
jQuery
jQuery Mobile
APEX
PL/SQL
SQL
Datenmodellierung
Projekt Management
Test Management
Delivery Management Database
Menschen
Requirements Eng. Browserstack
|
Enterprise APEX – Richtlinien
Rapid Application Development mit APEX 559
Richtlinien festlegen
Richtlinien automatisiert prüfen
- APEX QA Plugin
Siehe: www.apex-plugin.com
- Advisor Tool, nativ in APEX
- Packaged App: “Standards Tracker”
|
MT AG
4.
Entwicklungs
Umgebung
8.
Test
Umgebung
5.
Versionierung
11.
Abnahme
Umgebung
13.
Produktions
Umgebung
7.
Build-Prozess
Kunde
9.
Vers. Tests*
2.
Aufgaben1.
Aufträge
12.
Vers. Tests*6.
Modultests
*) Modul-, Qualitäts-, Integrations-, Performance-, Sicherheits-, Akzeptanz- & Browsertests **) Release Notes, DV-Konzept, Installationsanleitung
Zeiterfassung
10.1
Auslieferung
14.
Bugs
3.
Projektplan
Projektleiter
Auftraggeber
IT/Fachbereich EndanwenderQA-SpezialistEntwickler
Delivery Spezialist Delivery Spezialist
Neue Features
10.2
Dokumentation
**
Abhängigkeiten
Richtlinien
Manager
Enterprise APEX – SW-Entwicklungsprozess
Rapid Application Development mit APEX 560
|
MT AG
Oracle
APEX / DBOracle
APEX / DB
Subversion
11.
Abnahme
Umgebung
13.
Produktions
Umgebung
Maven & Jenkins
Kunde
Robot, Selenium,
TOAD Code Analysis, Jmeter,
SQL Developer, Browserstack
Jira(mit Plugins)
1.
Aufträge
12.
Vers. Tests*Data Modeler
(PL/)SQL Developer
SAP CA-TS
APEX
Websheet App
14.
Bugs
MS Project
Projektleiter
Auftraggeber
IT/Fachbereich EndanwenderQA-SpezialistEntwickler
Delivery Spezialist Delivery Spezialist
Neue Features
MS Word Gen.
+ plsqldoc
Dependency
APEX App
APEX App
Manager
Enterprise APEX – Eingesetzte Systeme bei MT
Rapid Application Development mit APEX 561
|
Agenda
Rapid Application Development mit APEX 563
■ Enterprise APEX
■ Die Möglichkeiten
■ Ausgewählte Projektreferenzen der MT AG
■ Warum APEX?
■ Oracle Application Express (APEX)
■ APEX Community
|
APEX Consulting - à la carte
Rapid Application Development mit APEX 575
Coaching
Entwicklung (vor Ort / bei der MT AG)
Migration von bestehenden MS Excel / MS Access / Oracle Forms-Lösungen
Individuelle Schulungen
Umsetzung Corporate Identity
Audits
Reporting
Rapid Prototyping
„Single Sign-On“-Fähigkeit
Integration mit z.B. SAP oder SharePoint
|
Agenda
Rapid Application Development mit APEX 576
■ Enterprise APEX
■ Die Möglichkeiten
■ APEX Community
■ Warum APEX?
■ Oracle Application Express (APEX)
■ Ausgewählte Projektreferenzen der MT AG
|
Open Source Packaged Apps der MT AG
Rapid Application Development mit APEX 578
Time Management System
Questionnaire
Translation Management System
Invite (interne Variante von Doodle)
Family Tree
Kostenlos & Quellcode offen
Siehe:
https://apex.mt-ag.com/community
|
APEX Community
Rapid Application Development mit APEX 579
Software/Dokumentation apex.oracle.com
APEX Showcase apex.mt-ag.com
Open Source www.apexsolutions.de
Oracle Learning Library oll.oracleapex.com
Oracle Community (DE): lang.oracleapex.com/german
BLOG Aggregator (RSS Feed): aggrssgator.com/rss/odtug/apex
Forum: forums.oracle.com
Plug-Ins: apex-plugin.com
Twitter Hash Tag: #orclapex
Feature Requests: apex.oracle.com/vote
Snippets: Denes Kubicek & Jari‘s
|
Vielen Dank.MT AG
Balcke-Dürr-Allee 9
40882 Ratingen
Telefon: +49 (0) 21 02 309 61-0
Telefax: +49 (0) 21 02 309 61-10
E-Mail: [email protected]
www.mt-ag.com