920 likes | 930 Views
Learn how to leverage Oracle's free Rapid Application Development (RAD) stack to build secure and scalable applications rapidly. Explore Oracle Database 18c XE, Oracle Application Express (APEX), Oracle REST Data Services (ORDS), and SQL Developer.
E N D
July 18th, 2019 Alfredo Abate Senior Oracle Systems Architect Brake Parts Inc @HeyAlfredoDBA Ready to be RAD? No Problem with Oracle's Free Rapid Application Development (RAD) Stack!
About Me • Oracle DBA since 1999 (7.3.4 – 12cR1) • Oracle Apps DBA since 2006 (11i/R12) • President of the Chicago Oracle Users Group (COUG) • President of the Real Application Cluster Special Interest Group (RAC SIG) • Oracle ACE • My Oracle blog www.heyalfredo.com • Twitter @HeyAlfredoDBA
Oracle Rapid Application Development (RAD) StackFitting the Pieces TogetherExamplesSummary Agenda
Not this RAD ! A unit of absorbed radiation dose
More Like This RAD Awesome! COOL! EXCELLENT!
“Being rad is like being cool without having to work for it”
John Developer: "We're awesome developers!"
"No we're not, we're better! We're #$@!*&% RAD developers!" Jane Developer:
RAPID APPLICATION DEVELOPMENT • James Martin • Iterative Development • Prototyping
Oracle Rapid Application Development (RAD) Stack (*As defined by Oracle - https://apex.oracle.com/en/platform/architecture/)
RAD Stack Excludes One Component REST Data Services (ORDS) APEX Database SQL Developer
Introducing Oracle Database 18c XE After 7 long years, 18c version of Oracle Database Express Edition (XE) available!
Oracle Database 18c Express Edition (XE) • Linux – RPM (5 minute install/config!) • Windows • Docker • VirtualBox
Oracle Application Express (APEX) • Only need a web browser to develop • Low code application development • Easy to learn with built-in wizard driven tools • Deploy something that is secureand scalable
Oracle Rest Data Services (ORDS) Image Source (https://www.oracle.com/database/technologies/appdev/rest.html)
SQL Developer • GUI SQL*Plus • Manage Database Objects • Run SQL Statements • Edit/Debug PL/SQL • Create and view reports • Manage REST Data Services • Develop RESTful Services • 3rd Party DB Connectors
Oracle Rapid Application Development (RAD) StackFitting the Pieces TogetherExamplesSummary Agenda
Oracle Database 18c XE: Where to use? Development/sandbox environments Web Developers using “local” instances Proof of concept projects Non-profit or Education Vendors can embed and redistribute for free
Oracle Database 18c XE Key Features • Multitenant: Get isolation, agility, and economies of scale by managing multiple Pluggable Databases • In-Memory:Support real-time analytics, business intelligence, and reports by keeping your important data in the Oracle Database In-Memory column store • Partitioning: Enhance performance, availability, and manageability of your database with data partitioning • Advanced Analytics: Data Mining SQL, R programming, and the Oracle Data Miner UI • Advanced Security: Oracle Transparent Data Encryption and Data Redaction
Oracle Database 18c XE: Pluggable Database (PDB) What is a pluggable database? (Image Source https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/introduction-to-the-multitenant-architecture.html)
Oracle Database 18c XE: Pluggable Database (PDB) 18c XE allows up to 3 pluggable databases
Oracle Database 18c XE: Pluggable Database (PDB) The ability to plug and unplug a PDB from one XE environment to another.
Oracle Database 18c XE: Pluggable Database (PDB) Create a new pluggable database and test upgrade of APEX to the latest version!
Create a “hot” pluggable database SQL> CREATE PLUGGABLE DATABASE xepdb2 FROM xepdb1 2 FILE_NAME_CONVERT = ('C:\app\Oracle\product\18.0.0\oradata\XE\XEPDB1', 'C:\app\Oracle\product\18.0.0\oradata\XE\XEPDB2') 3 STORAGE (MAXSIZE 2G) 4 SERVICE_NAME_CONVERT = ('xepdb1','xepdb2'); PLUGGABLE DATABASE CREATED
Oracle Database 18c XE: Pluggable Database (PDB) With new pluggable database test upgrade of APEX to the latest version! PDB2 Upgrade to APEX 19.1
Oracle Database 18c XE Annual release going forward No security patches/updates Oracle Application Express no longer installed by default!
Oracle Application Express (APEX) • Low code development framework in the Oracle database • Fully supported and no additional licensing costs to use APEX • Runs in the database so can scale with the database • Works with Exadata, Real Application Clusters (RAC), and In-Memory option • Built in wizards that allow rapid development of applications
APEX Web Listener Options Recommended • Oracle REST Data Services (ORDS) • Oracle REST Data Services Listener is a Java-based Web server. It features file system caching, offers improved file upload capability, and is certified with Oracle WebLogic Server, Apache Tomcat, or Standalone (built-in Jetty). • Oracle HTTP Server and mod_plsql (Deprecated) • Oracle HTTP Server uses the mod_plsql plug-in to communicate with the Oracle Application Express engine within the Oracle database. • Embedded PL/SQL Gateway (Legacy) • Oracle XML DB Protocol Server with the Embedded PL/SQL Gateway installs with Oracle Database. It provides the database with a Web server and the necessary infrastructure to create dynamic applications.
ORDS Supported Java EE Application Servers • WebLogic - Best of class but licensing can be expensive. • Apache Tomcat – Leader in open source web application server. • Standalone- Uses built in web server called Jetty
What can you do with APEX? • Create data entry or lookup forms • Create interactive reports with the ability to drill down, filter, and create charts • Create beautiful and intuitive dashboards • Eliminate Excel spreadsheets and Access databases! • Convert them to APEX so they can be easily accessible by everyone, secured and backed up. A true single source of truth!
Drowning in Spreadsheets? APEX is the Spreadsheet Killer!
Oracle Rest Data Services (ORDS) Not just your APEX Listener!
Oracle Rest Data Services (ORDS) REpresentational State Transfer GET POST PUT DELETE
Manage REST Data Services Install Oracle Rest Data Services (ORDS) Manage Rest Connections
REST Enable a Schema in SQL Developer This example is using the HR schema
REST Enable a Schema in SQL Developer Enable in Production!
REST Enable a Schema - SQL DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN ORDS.ENABLE_SCHEMA(p_enabled => TRUE, p_schema => 'HR', p_url_mapping_type => 'BASE_PATH', p_url_mapping_pattern => 'personnel', p_auto_rest_auth => FALSE); commit; END;
Rest Enable a Table in SQL Developer Enable in Production!
Rest Enable a Table – SQL DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN ORDS.ENABLE_OBJECT(p_enabled => TRUE, p_schema => 'HR', p_object => 'JOBS', p_object_type => 'TABLE', p_object_alias => 'positions', p_auto_rest_auth => FALSE); commit; END;