Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express Past, Present and Future
Michael Hichwa, Oracle April 26th 2016
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
#APEXCONN16
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Past – WebDB
– Flows Vision
– Releases
• Present – Positioning
– Architecture
– Leveraging Database Innovation
– Cloud
• Future – What’s New in APEX 5.1
– Beyond APEX 5.1
3
Oracle APEX Past, Present and Future
Learn from the original developer and architect of Oracle APEX about the initial vision from over 10 years ago through today's release 5.x. Get Mike’s perspective on declarative development, database centric application development, and holistic agile development. See how the Oracle APEX engine delivers modern user experience by transparently leveraging advanced JavaScript, HTML and CSS. Review how the Oracle APEX platform uniquely allows applications written years ago to be infused with new technology without disruptive rewrites. And finally, Mike will explore what is next for Oracle APEX. #APEXCONN16
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express History
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle WebDB 1997
5
Oracle’s first web product. Evolution of “browse” project. Provided basic data reporting, charting, and update.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle WebDB Oracle’s first product with web user interface
6
• Good – Reports
– Charts
– Forms
– Menus
– Portal
• No so good – WebDB had no page flow control
– No session state management
– NOT able to build an “Application”
– NOT an Oracle forms alternative
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle WebDB Oracle’s first product with web user interface
7
• Good – Reports
– Charts
– Forms
– Menus
– Portal
• No so good – WebDB had no page flow control
– No session state management
– NOT able to build an “Application”
– NOT an Oracle forms alternative
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX 1999 - New tool called “Flows”
8
• Started August 4th 1999 as a Ground up rewrite of WebDB
• Package was called “flows”
• Development machine was my desktop windows PC
• Development staff soon doubled with the addition of Joel Kallman
• Tom Kyte also played an indispensible role early on
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX June 26, 2002
9
“Project Marvel allows developers to create web service applications on a browser with Oracle resources from a hosted service” -- computerworld
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
“Project Marvel allows developers to create web service applications on a browser with Oracle resources from a hosted service” -- computerworld
Oracle APEX June 26, 2002
10
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express Flows Vision
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Initial concept of “page flows” modeled after a simple ATM
12
Home Withdraw
Deposit Checking
Savings
Confirmation Checking
Savings
Login
Customers Accounts Transactions Banks Branches
Application
Database
Geldautomat
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #1: Authentication and Authorization
13
• Did not want to use database “users”
• User authentication would be for both Application Development and Application End users
• Needed an open authentication and authorization model
• To optimize out of box experience needed a built in user and access control framework
Enter your pin *****
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #2: “List Control” (application menus)
14
• Applications had home pages
• Needed to present users with menus
• Sourced from static lists
• Or dynamically sourced from queries
• Each list entry needed to have access control as some users may see greater or fewer menu options
Action
1. Deposit
2. Withdraw
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #3: Branching (page flow control)
15
• Clicking deposit list entry would branch to one page, and clicking withdraw would branch to another page
• Branching would be declarative, allowing list entries, buttons, tabs, or navigation bar controls conditionally branch to any page
• A page could have any number of sequenced branch controls, optionally conditional, app would branch to the first branch condition met
Withdraw from:
1. Checking
2. Saving
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #4: Input Items with automatic session state management
16
• Items: text, text area, select list, checkbox, radio group…
• Session state is automatic
• Default values (static and dynamic)
• Branching to a page can “clear the cache”
• Reference using SQL bind variable “:item_name” syntax
• Reference in non-SQL context using “&ITEM_NAME.” syntax
Withdraw Checking
Amount
$200.00
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #5: Validations
17
• Validate page items on page submission
• Page processing is only performed once all validations are successfully passed
• Validations can use SQL and PL/SQL
• Redrawing the page, showing the inline error text is managed by the “flow” engine
Withdraw Checking
Amount
$200.00
Insufficient funds
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #6: Processes
18
• Page processing performs SQL or PL/SQL
• Custom (SQL, PL/SQL) or “form-on-a-table”
• Any number of processes could be associated with a given page
• Conditional
• Message for successful and unsuccessful execution
Withdraw Checking
Amount
$100.00
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Concept #7: Regions
19
• A page can have any number of regions
• Region content injected into a page template position
• Regions can be standard reports, charts, or forms, or custom regions that are HTML or PL/SQL
• PL/SQL regions provide that flexibility to emit any HTML you wish via htp.p
Your $100.00 withdraw was successful your available balance is now $75.20
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Page Flow Model
20
Render Process
Branch
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Page Rendering (Method GET; Page Rendering)
21
Templates
Region
Items
Meta Data + State
f?p=100:1 Application
Page
Buttons
Authorization
APEX Application meta data and session state
Authentication Authority Database Schema
Oracle Database
APEX APIs
Authenticate Authentication
Navigation Controls
exit
Post
PL/SQL
Page Accept
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Page Processing (Method POST; Page Processing)
22
Computations
Validations
Authentication
Meta Data + State
<form …> Application page for form and items
Branching
Authorization
APEX Application meta data and session state
Database Schema
Oracle Database
APEX APIs
exit
Processes
Save Session State
Page Show
Page Show
PL/SQL
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Model
23
Meta Data + State
Branching
APEX Application meta data and session state
Database Schema
Oracle Database
APEX APIs
exit
Processes
Computations
Validations
Authentication
Authorization
Save Session State Templates
Region
Items
Buttons
Authorization
Authentication
Navigation Controls
Post
f?p=APP:PAGE
Meta Data + State
PL/SQL
exit
Login
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express Release History
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 1.5, 2004
25
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports
– Forms
– Charts SVG
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 1.6, 2004
26
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports
– Forms
– Charts SVG
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 2.0, 2005
27
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports
– Forms
– Charts SVG
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
SQL Workshop
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 2.2, 2006
28
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports
– Forms
– Charts SVG
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
• Supporting Objects
SQL Workshop
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 3.0, 2007
29
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports w/PDF
– Forms
– Charts SVG (Flash)
– Tabular Forms
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
• Supporting Objects
SQL Workshop
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 3.1, 2008
30
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG Flash
– Tabular Forms
• Items
• Buttons
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
• Supporting Objects
SQL Workshop
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 4.0, 2010
31
Page Rendering Page Processing Shared Components
• Page
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG flash
– Tabular Forms
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
• Supporting Objects
• Plugins
SQL Workshop Team Development Web Sheets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 4.2, 2012
32
Page Rendering Page Processing Shared Components
• Page – mobile
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG flash
– Tabular Forms
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Themes
• Supporting Objects
• Plugins
SQL Workshop Team Development Packaged Apps Web Sheets
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 5.0, 2015
33
Page Rendering Page Processing Shared Components
• Page – mobile
– model dialogs
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG Flash
– Tabular Forms
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs Global Navigation
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Template Options
• Supporting Objects
• Themes + Universal Theme
• Plugins
SQL Workshop Team Development Web Sheets Packaged Apps
Page Designer
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 5.0, 2015
34
Page Rendering Page Processing Shared Components
• Page – mobile
– model dialogs
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG Flash
– Tabular Forms
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs Global Navigation
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Template Options
• Supporting Objects
• Themes + Universal Theme
• Plugins
SQL Workshop Team Development Web Sheets Packaged Apps
Page Designer
Page Designer Model Dialogs
Universal Theme Template Options Global Navigation
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 5.1, 2016
35
Page Rendering Page Processing (JSON) Shared Components
• Page – Mobile
– Model Dialogs
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG Flash JET
– Tabular Forms Interactive Grid
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs Global Navigation
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Template Options
• Supporting Objects
• Themes + Universal Theme
• Plugins
SQL Workshop Team Development Web Sheets Packaged Apps
Page Designer
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Components with release 5.1, 2016
36
Page Rendering Page Processing (JSON) Shared Components
• Page – Mobile
– Model Dialogs
• Regions – Reports Classic Reports w/PDF
– Interactive Reports
– Forms
– Charts SVG Flash Jet
– Tabular Forms Interactive Grid
• Items
• Buttons
• Dynamic Actions
• Computations
• Validations
• Processes
• Branches
• Tabs Global Navigation
• Lists of Values
• Breadcrumbs
• Lists
• Templates
• Template Options
• Supporting Objects
• Themes + Universal Theme
• Plugins
SQL Workshop Team Development Web Sheets Packaged Apps
Page Designer Interactive Grid JET Charting
Better Wizards Live Template Options
600+ Icon Library
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX)
HTML DB 1.5 First Release
HTML DB 1.6 Themes
2004 2007 2012-14
APEX 2.1 Oracle XE
APEX 2.2 Dictionary views, supporting
objects
APEX 3.1 Interactive Reports
HTML DB 2.0 SQL Workshop
APEX 3.0 Flash Charts
PDF Printing
Access Migration
Tabular Forms
APEX 3.2 Oracle Forms to APEX
Conversion
APEX 4.1 Data Upload
Error Handling
ROWID
2006 2009 2011 2008 2005
APEX 4.2.x Mobile
HTML5
Packaged Apps
APEX 4.0 Websheets
Dynamic Actions
Plug-Ins
Team Development
2010
APEX 5.0 Page Designer
Universal Theme
Modal Dialogs
2015 - 16
(āʹpěks) History
APEX 5.1 Interactive Data Grid
Modernized Charts
Simplified Wizards
Live Template Options
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Architecture
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX) Architecture
Browser Mid Tier Database Tier
Web Logic Server
WLS
ORDS APEX
Oracle Database
Schemas
PL/SQL
Load Balancer
Apache
OHS Identify Management
or Tomcat / Glassfish
JDBC
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX) Declarative Development
REST Data Services Mid tier
282K lines ORDS
58K lines, 24.8K for UT
CSS
486K lines
PL/SQL JS
42K lines excluding open source
471 Tables
Application Express (APEX) Database tier APEX 5.0
• Declarative development provided by significant custom and open source code
• Shields customers from maintaining and modernizing code
Oracle REST Data Services (ORDS), Universal Theme (UT), JavaScript (JS)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX) Open Source Included
• 960-gs (grid system)
• bgiframe (IE Z-issues)
• ckeditor
• codemirror
• d3
• font-awesome
• hammer
• jquery
• jquery-autocomplete
• jquery-colorpicker
• jquery-flot
• jquery-fullcalendar
• jquery-jstree
• jquery-migrate
• jquery-mobile
• jquery-mobile-nestedlists
• jquery-qtip2
• jquery-quicksand
• jquery-ui
• jquery-validate
• justgage
• less.js
• modernizr
• oraclejet
• raphaeljs
• respond-js
• selectivizr
• twitter-bootstrap
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Positioning
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
43
1. Can you both design and run the app from a browser?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
44
1. Can you both design and run the app from a browser? YES, and try quick edit
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
45
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
46
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
47
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
48
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
49
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
50
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
51
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
52
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
53
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
54
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
55
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
56
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
57
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
58
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative? YES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
59
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative? YES
9. Do customers love the apps?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
60
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative? YES
9. Do customers love the apps? Generally YES
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
61
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative? YES
9. Do customers love the apps? Generally YES
10. Can I deploy on premises and/or in the cloud?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Key Questions
62
1. Can you both design and run the app from a browser? YES
2. Is it better to generate code or dynamically render from meta data?
3. Does the app render pages immediately? YES
4. Can it support thousands of concurrent users? YES
5. In which language do you develop conditional logic? SQL + PL/SQL
6. Can you build complex applications? YES
7. How does it keep current with the times? By upgrading the “engine”
8. Is development rapid and iterative? YES
9. Do customers love the apps? Generally YES
10. Can I deploy on premises and/or in the cloud? Both from day 1
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database Oracle supports all popular application development frameworks
63
Python
Ruby PERL
Oracle APEX
Oracle JET
Oracle ADF
Java
PHP
JavaScript
Node.js
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 64
Application Development Oracle application development tools spectrum
Java Developer JavaScript Developer SQL & PL/SQL Developer Business User
Oracle ADF Oracle MAF
Oracle JET Oracle SQL Developer ORDS
Oracle APEX Oracle Forms
Oracle ABCS Oracle MAX
Oracle Application Development Framework (ADF), Oracle Mobile Application Framework (MAF) , Oracle JavaScript extension toolkit (JET), Oracle REST Data Services (ORDS), Oracle Application Express (APEX), Oracle Application Builder Cloud Service (ABCS), Oracle Mobile Application Accelerator (MAX).
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 65
Application Development Oracle Application Express vs Application Builder Cloud Service Positioning
Target Audience
ABCS
APEX
SaaS Integration Availability Logic Licensing
SQL & PL/SQL Developers
Business User / Non-professional
Developer
Out-of-the-box
Programmatic
Cloud Only
Cloud and On premise
Executed within the client (REST)
Primary Language
Javascript
Executed in database
Primary Language
PL/SQL
Stand-alone license not dependent on any other product
license
Part of the Database License
(XE, SE, EE)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal 66
Application Development Oracle Database Centric Developers
Database Developer
• Self identify as database developers
• Comfortable with Oracle Relational Database
• SQL and PL/SQL Savvy
• Frequently classified as “Enterprise Developers” and work in corporate / departmental IT organization
• Typically know the data models that underpin their corporate systems (Oracle EBS & FA, SAP, in-house …)
• Typical use cases are opportunistic applications that facilitate corporate initiatives and/or complement enterprise solutions
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Application Platform as a Service (aPaaS)
Develop Customize Deploy
Declarative : Responsive : Accessible : Rich UX : SQL Centric : Scalable : Diagnosable : Open Standards : Extensible
Provision
• Full portability; on-prem and cloud • Robust data visualization components • Highly extensible and customizable • Create and manage database objects
• RAD Browser-based App Dev tool • Highly active and passionate community • 300K+ developers, 100’s of partners • Supported productivity apps included
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Declarative
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express (APEX) Why Declarative Development?
1. No need to repetitively code what can be handled by an “engine” = increased consistency
2. Procedural code can be hard to maintain, especially if you didn’t write it, only one way to click a checkbox = less variation
3. Modernization implemented by upgrading engine <> app rewrite
4. Inflexible frameworks cause developer frustration, flexible and extensible framework = Zen Development
5. Built-in fully integrated and tested components = RAD Development
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Database Centric
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database SQL Language and the Oracle Relational Database
• 30 years old and still evolving (SQL:2011)
• Simple and elegant interface to data
• High business value per line of code
• Performance adapts to changes in the underlying data without any code changes
• Declarative referential integrity, check constraints, triggers, and procedural languages provide data integrity and business logic in-database
• Widely used languages, #2 in the stack overflow dev survey 2013, 2014, 2015
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database
• Use to create APIs, expose RESTful APIs / microservices
• Use PL/SQL API to enforce data correctness
• Invoking SQL through PL/SQL gives your applications the best performance possible.
• Pushing database logic into the database reduces application code and eases adoption of new UI technologies
• Support zero downtime patching with Edition Based Redefinition (EBR)
Database Features for Application Developers: PL/SQL
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database Application Development Features new in Database 12c
73
• VARCHAR2 32K (12.1)
• Identity Data types (12.1)
• JSON (12.1)
• Simple Oracle Document Access (SODA) (12.1)
• Sharing (12.2)
• Longer Identifiers (12.2)
• Application Continuity Support (12.2)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database
• Analytics
• Compression
• Flashback
• In Memory
• JSON
• Partitioning
• Spatial
• Text
• XML
SQL features for Optimizing Data Storage and Access
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database
• Data Redaction
• Data Masking and Subsetting
• Data Encryption (Transparent Data Encryption – TDE)
• Data Access Controls
• Virtual Private Database (VPD)
• Real Application Security (RAS)
Oracle Database Security Features for Application Developers
*7#$%!!@!%afb
##<>*$#@34
Data Encryption
Key Vault
Region, Year
Size-based
Data Subsetting
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Application Development for Database
• High Density Consolidation – administrate many environments as one, with resource management controls
• Rapid Provisioning - unplug from a container, plug into another
• Simplified Deployment - no need to build database object install scripts, distribute as Pluggable Database (PDB)
• Cloning - stand up stable user acceptance testing environment when development environment is stable
• Clone – developers can create a private clone to test merge invasive upgrades to data structures and database logic
• Fast Refresh – refresh data and structures incrementally from logs
Database 12c Pluggable Database (Oracle Multitenant) for Application Developers
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Cloud
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 78
Oracle Database Cloud Spectrum of database cloud offerings
Free* Schema DBaaS Managed* Exadata
Editions EE with lockdown* EE S5, S20, S50 EE, EE-HP, EE-EP EE, EE-HP, EE-EP EE-EP
Implementation 1 Schema* 1 Schema Dedicated DB & VM Dedicated DB & VM 1+ Dedicated DB
Database Releases 12.1 or 12.2 11.2 11.2, 12.1, 12.2* 11.2, 12.1, 12.2* 11.2, 12.1, 12.2*
Management Oracle Oracle Customer Oracle Customer
Subscription Free Unmetered, Metered* Metered, Unmetered Metered, Unmetered Metered, Unmetered
Availability (CY) TBD Q4 2012 Q4 2014 TBD Q3 2015
Access HTTPs HTTPs ~Full Access ~Full Access ~Full Access
Standard Edition (SE), Enterprise Edition (EE), EE High Performance (HP), EE Extreme Performance (EP), Virtual Machine (VM), Pluggable Database (PDB), Calendar Year (CY), * = Not yet available
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 79
Application Development for Database Oracle database cloud offerings
Free* Schema DBaaS Managed* Exadata
Editions EE with lockdown* EE S5, S20, S50 EE, EE-HP, EE-EP EE, EE-HP, EE-EP EE-EP
Implementation 1 Schema* 1 Schema / PDB* Dedicated DB & VM Dedicated DB & VM 1+ Dedicated DB
Database Releases 12.1 or 12.2 11.2 or 12.2* 11.2, 12.1, 12.2* 11.2, 12.1, 12.2* 11.2, 12.1, 12.2*
Management Oracle Oracle Customer Oracle Customer
Subscription Free Unmetered, Metered* Metered, Unmetered Metered, Unmetered Metered, Unmetered
Availability (CY) TBD Q4 2012 Q4 2014 TBD Q3 2015
Access HTTPs HTTPs, SQL*Net* ~Full Access ~Full Access ~Full Access
Standard Edition (SE), Enterprise Edition (EE), EE High Performance (HP), EE Extreme Performance (EP), Virtual Machine (VM), Pluggable Database (PDB), Calendar Year (CY), * = Not yet available
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 80
Application Development for Database Express Database Cloud Service
• Fully managed Oracle Database
• Schemas / PDBs*
• List price starts at $175 month
• Thousands of paying customers
• Available standalone
• Underpins many PaaS services
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
What’s New with APEX 5.1
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX What’s New with APEX 5.1
82
• New
– Interactive Grid
– JET Charting
– Live Template Options
– 600+ Icon Library
• Improved
– Wizards
– Universal Theme
– Packaged
– Sample Apps
– Page Designer
• Wednesday
– 11:00 - David Peake (5.1 New Features)
– 14:00 – Shakeeb Rahman (UX patterns)
• Thursday
– 13:00 – Patrick Wolf (Interactive Grid)
– 15:15 - Shakeeb Rahman (Universal Theme and Live Template Options)
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Application Express
Beyond APEX 5.1
Oracle Confidential - Internal Use Only
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle APEX Mike Hichwa ideas for NEW features beyond APEX 5.1
84
1. Allow SQL and PL/SQL app content to be remotely sourced over REST using ORDS
2. Render region components using JSON
3. Full developer change history capture and reporting including database changes
4. Template Apps; specify object prefixes, identify CRUD tables, choose features
5. Cloud Marketplace for sharing applications with ability to deploy using RESTful APIs
6. Documented APIs to dynamically generate and alter APEX application components
7. Allow an application to change labels and to add list, item and IR components
8. Support for multiple versions of Oracle APEX in the same database using EBR
9. Generate RESTful APIs sharing application logic and authorization
10. Enhanced self service cloud with documented RESTful APIs