Using Thick Database Principles to Leverage Oracle SQL and PL/SQL Part I:

Similar documents
Using Thick Database Principles to Leverage Oracle SQL and PL/SQL Part III:

Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study

Design Modernization Case Study: Applying Mobile App Design Principles to the UTOUG Website

You CAN Judge a Book by Its Cover: Modern User Interface Design Principles

Don t get it right, just get it written.

If you wish to make an improved product, you must already be engaged in making an inferior one.

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Smart Database Architecture

The End of the Beginning: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Both Sides Now: DevOps and Agile in Oracle Developer Cloud Service for Fusion Middleware Developers

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

The NoPlsql and Thick Database Paradigms

J2EE for Oracle Technologists

Unraveling the Mysteries of J2EE Web Application Communications

Oracle Forms and Oracle APEX The Odd Couple

Developing Applications with Business Intelligence Beans and Oracle9i JDeveloper: Our Experience. IOUG 2003 Paper 406

Build a Mobile App in 60 Minutes with MAF

Pick A Winner! In What Tool Should I Develop My Next App?

Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)

Apex 5.1 Interactive Grid and Other New features

FILE XML DATABASE DEVELOPERS ORACLE 11G MANUAL EBOOK

Mobilize Your Users Now with Oracle Mobile Application Framework (MAF)

Build a Mobile App in 60 Minutes with MAF

1 Dulcian, Inc., 2001 All rights reserved. Oracle9i Data Warehouse Review. Agenda

EXTENDING YOUR HCM CLOUD SELF SERVICE IS AS SIMPLE AS

Just Get it Written: Deploying Applications to WebLogic Server Using JDeveloper and WLS Console. Don t get it right, just get it written.

Do-It-Yourself Data Migration

The Arrangement of the Screens: Introduction to Layout in ADF Faces

to-end Solution Using OWB and JDeveloper to Analyze Your Data Warehouse

The Tie That Binds: An Introduction to ADF Bindings

Oracle WebLogic Server Application Security

The Path to Oracle Fusion Using a Thick Database Approach

Developers and DBAs. Farmers and City Slickers have different mindsets

Achieving the Perfect Layout with ADF Faces RC

Books by Michael R. Ault

<Insert Picture Here> Scale your PHP Application to Tens of Thousands of Connections

<Insert Picture Here> Forms Strategies: Modernizing Your Oracle Forms Investment

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

ORACLE PL/SQL PERFORMANCE TUNING TIPS & TECHNIQUES BY MICHAEL ROSENBLUM, PAUL DORSEY

Lecture 23 Database System Architectures

Application Express Dynamic Duo

MongoDB Schema Design for. David Murphy MongoDB Practice Manager - Percona

Ultra-High Performance SQL and PL/SQL in Batch Processing

Project Horizon Technical Overview. Steven Forman Principal Technical Consultant

Javaentwicklung in der Oracle Cloud

Where Do We Go From Here? Why Many IT Staff are Living in the Past

The Database: Processing Engine or Persistence Layer?

Extend EBS Using Applications Express

Extreme Java Productivity with Spring Roo and Spring 3.0

Using JNDI from J2EE components

Oracle Developer Day

Fast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

vsphere 4 The Best Platform for Business-Critical Applications Gaetan Castelein Sr Product Marketing Manager VMware, Inc.

Oracle Database 10g The Self-Managing Database

Oracle Database 11g & MySQL 5.6 Developer Handbook (Oracle Press) PDF

Data-and-Compute Intensive Processing: Middle-tier or Database? Trade-Offs and Case Study. Kuassi Mensah Marcelo Ochoa Oracle

Oracle Application Express Schema Design Guidelines Presenter: Flavio Casetta, Yocoya.com

<Insert Picture Here> Oracle SQL Developer: PL/SQL Support and Unit Testing

Oracle Application Development Framework Overview

Oracle Fusion Middleware 11g: Build Applications with Oracle Forms

Effective MySQL Optimizing SQL Statements (Oracle Press) PDF

Survey of Oracle Database

Oracle Developer Day

The Data Explosion. A Guide to Oracle s Data-Management Cloud Services

COMPUTE CLOUD SERVICE. Moving to SPARC in the Oracle Cloud

MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB

<Insert Picture Here> Looking at Performance - What s new in MySQL Workbench 6.2

Oracle Mobile Application Framework

NoSQL database and its business applications

Overview. Principal Product Manager Oracle JDeveloper & Oracle ADF

Bipul Sinha, Amit Ganesh, Lilian Hobbs, Oracle Corp. Dingbo Zhou, Basavaraj Hubli, Manohar Malayanur, Fannie Mae

Copyright 2018, Oracle and/or its affiliates. All rights reserved.

Hello Worldwide Web: Your First JSF in JDeveloper

Chapter. Relational Database Concepts COPYRIGHTED MATERIAL

CLIENT SERVER ARCHITECTURE:

Migrating Express Applications To Oracle 9i A Practical Guide

Bridging the Gap. Peter Ebell AMIS

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

And Answers In Oracle Pl Sql

Dynamic Database Schemas and Multi-Paradigm Persistence Transformations

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle SQL Developer & REST Data Services

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

<Insert Picture Here> MySQL Cluster What are we working on

Copyright 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12

Oracle Application Express fast = true

Session 1079: Using Real Application Testing to Successfully Migrate to Exadata - Best Practices and Customer Case Studies

Common MySQL Scalability Mistakes AUTHOR

MySQL Cluster Web Scalability, % Availability. Andrew

Pimp My Data Grid. Brian Oliver Senior Principal Solutions Architect <Insert Picture Here>

Project Horizon Technical Overview. Bob Rullo GM; Presentation Architecture

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

What is Standard APEX? TOOLBOX FLAT DESIGN CARTOON PEOPLE

FIVE BEST PRACTICES FOR ENSURING A SUCCESSFUL SQL SERVER MIGRATION

Best Practices Implementing Oracle Mobile Cloud Service

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Take Your Oracle Forms on the Road Using ADF Mobile. Mia Urman, OraPlayer & Denis Tyrell, Oracle Corporation

Oracle APEX 18.1 New Features

Putting Oracle Database 11g to Work for Java. Kuassi Mensah Group Product Manager, Java Platform Group db360.blogspot.com

Transcription:

Using Thick Database Principles to Leverage Oracle SQL and PL/SQL Part I: Save Cloud Costs and Simplify User Interface Development Peter Koletzke Technical Director & Principal Instructor Me 34 yrs. database industry 30 yrs. consulting in Oracle arena Since Oracle 5.1C, SQL*Forms 2.3 38 yrs. as trainer/presenter User groups 350+ presentations, 12 awards 7+ yrs. total on boards of directors IOUG(-A), NYOUG, UTOUG Oracle ACE Director Since program inception in Aug. 2005 Oracle Certified Master Since program inception in Dec. 2001 8 Oracle Press books coauthored 6262 pages total Designer/2000 Handbook JDeveloper 3 Handbook Designer Handbook, Second Edition ORACLE9i JDeveloper Handbook Developer Advanced Forms & Reports ORACLE JDeveloper 10g Handbook

You Job responsibilities? DBA, developer Development tools? Oracle Developer Forms/Reports APEX ADF, MAF MAX, VBCS Other JavaScript tools.net PL/SQL Other 3 Thick Thoughts In the Days of Olde, you had to program in some non-db language to issue SQL to the database The introduction of PL/SQL changed that But in the early days, PL/SQL was more primitive so processing in the UI language was still indicated Now PL/SQL and the database have become more efficient, feature-full But Days of Olde thought patterns are still in place This leads to UI-heavy coding and less efficient processing 4

Series Overview Thick Concepts What is Thick Database? Why is Thick faster? Thick Advice Later sessions Business Rules Techniques The subject is business rules Sample business rules systems Where to place business rules code Thick Database objects Sample code Level of Thick Slides will be available on the NoCOUG website. 5 Agenda What is Thick Database? Thick Concepts Why is Thick faster? Thick Advice 6

The Other Extreme I'm as thick as a plank. Princess Diana (1961-1997) 7 About Thick Database A code development strategy Maximize use of database code to simplify the user interface The user s device (client) runs minimal code Name plays off the term thin client A Year of the Internet term Means most processing occurs on a server Slightly outmoded now Thick database means thin client A.k.a. Thick Database Approach Thick Database Paradigm Smart Database SmartDB Fat Database Oracle prefers 8

Provenance Topic is rarely seen at conferences, but is not new Started trending many years ago ODTUG Business Rules Symposium Day 2001-2004 Organized by Dr. Paul Dorsey of Dulcian, Inc. Thoughts evolved into Thick Database Conference sessions starting around 2006 9 dulcian.com Topic is Still Active Look in Resources Conference Presentations Thick Database Mike Smithers Blog https://mikesmithers.wordpress.com/tag/thick-database-paradigm/ Toon Koppelaars, Oracle Real World Performance Group https://www.youtube.com/watch?v=8jijdflpw4y http://www.prohuddle.com/webinars/toonkoppelaars/thickdb.php Bryn Llewellyn, Distinguished Product Manager (Oracle) https://blogs.oracle.com/plsql-and-ebr/entry/why_use_pl_sql https://blogs.oracle.com/plsql-and-ebr/noplsql-versus-thickdb 10

Relatively Recent Dulcian Presentations A New View of Database Views https://www.slideshare.net/misharosenblum/2015-458- rosenblumpptfinal?next_slideshow=1 Why is the application running so slowly? https://www.slideshare.net/misharosenblum/why-is-theapplication-running-so-slowly 11 More Resources Anton Nielsen, concept2completion.com, APEX and the Thick Database Paradigm Toon s ODTUG 2017 slides http://thehelsinkideclaration.blogspot.com/2017/06/m y-noplsql-versus-smartdb-deep-dive.html Database debunking http://www.dbdebunk.com/ 12

Two Related Strategies 1. System for tracking business rules Store definitions in database tables Code implementations linked to rules Linked to, or serves as, requirements documentation 2. Database features implement the business rules Constraints Database API: PL/SQL code, updatable views Oracle is considering support for SQL Assertions: https://community.oracle.com/ideas/13028 13 Guiding Principles for Code Database code that implements business rules in PL/SQL Using database features to enforce data integrity defined by business rules seems obvious Database views to represent complex business objects (SQL) Each view has an accompanying application programming interface (API) Written in PL/SQL Interaction is with view and API 14

Drawbacks Time and effort required Design and set up Documenting standards Instructing staff Requirements on the IT shop side Architect/database designer Expert coder Develop generic code engines to run and/or generate business rules code Need buy-in from management For all of the above 15 Some Benefits Application accuracy Business rules match application code Test plans can be generated from business rules system Productivity Can greatly simplify user interface code Code reusability Ease of application maintenance Faster performance Code is close to data storage fewer messages, easy access Views also reduce the number of round trips needed Proper use of staff User interface developers can concentrate on UI code Database code developers can concentrate on database code to support the UI 16

Big Benefit: Lower Cloud Costs Save cloud database processing time Application s use of database is more efficient Proof in next section Less database processing time == lower cloud costs If application front-end is in cloud Thick DB saves application runtime processing Examples Java Cloud Service Container Cloud Service 17 Big Benefit: Simplifies User Interface Work Database views can represent multiple tables Arbitrarily complex logic Aggregate functions: MAX(), COUNT() Set operators: UNION, MINUS Calculation functions: first_salary() Even: a PL/SQL function cast as a table One view per application UI page The page submit commits the entire page Reminds one of mainframe block submit Back end code deals the data into the proper tables 18

Some Changes Require Less UI Rewriting UI technology changes If code is in database, only UI needs rewriting Application logic in database can carry forward Table refactoring For example, if a set of tables used in UI views is normalized into more tables Joins and query of view can be updated UI may not need to change 19 Traditional vs. Thick Database UIs Traditional Client UI Screen Database Table 1 Table 3 Table 3 Table 1 Table 2 Table 4 Table 4 Table 2 Thick Database UI Screen View 1 View 1 Table 1 Table 3 Table 2 Table 4 20

Front-end Tool Agnostic Application Express (APEX) Application Development Framework (ADF) Mobile Application Framework (MAF) Oracle Forms JavaScript JavaScript Extension Toolkit (JET) Mobile Application Accelerator (MAX) Visual Builder Cloud Service (VBCS, formerly ABCS) PL/SQL Toolkit PHP: Hypertext Processor (PHP) Rails ColdFusion (whatever) 21 Tools Use of Thick Database APEX Forms ADF MAF ADF BC Web Services Database View 1 View 2 View 3 View 4 JavaScript (all types) (others) REST Services (something or nothing) Table 1 Table 2 Table 3 22

Agenda What is Thick Database? Thick Concepts Why is Thick faster? Thick advice 23 Toon Koppelaars Research Described in YouTube video NoPLSql and Thick Database Approaches with Toon Koppelaars https://www.youtube.com/watch?v=8jijdflpw4y Related conference presentations Now uses the Oracle-preferred term SmartDB (Slides with this icon contain content used with Toon s permission.) 24

What SmartDB is NOT NoPlSql Starts with OO model in the middle tier DB is just a bunch of tables PL/SQL is proprietary - don t use it. Database is for data, not logic because logic won t scale. Only SQL is issued from the user interface code API is primitive SQL: insert, update, delete, select Frameworks like EJB in Java hide the SQL but it is there: single row SQL usually Problems Maintenance code is in the UI code, not centralized 25 What SmartDB Is Starts with relational model API is PL/SQL All user interface code calls PL/SQL PL/SQL does SQL: insert, update, delete, select, MORE Logic takes place within the database Logic can issue single-row or array-based or set-based statements 26

Again If you move logic out of the DB, you put more stress on DB Save DB cycles by using SmartDB 27 Toon s Team s Testing Two row-by-row processing programs One in plain Java (no framework) One in PL/SQL (extreme approach would never do this) Implement a number of business rules Various types of SQL statements 5 million rows Observe CPU use No app server process for PL/SQL NoPlSql JVM on database server, no network How much database CPU? 28

Java on JDBC Results #1 45% DB server 25% CPU JVM 703 DB-CPU seconds 26 minutes Didn t add up to 100% Some wait time Log file sync waits commits row-by-row PL/SQL 97% CPU 371 DB-CPU seconds 6:23 minutes 29 Commit every 128 rows Java on JDBC 437 DB-CPU seconds 11 minutes Closer to 100% Results #2 PL/SQL (does not have sync waits, committing is still expensive) 97% CPU 204 DB-CPU seconds 3:30 minutes 30

Results Summarized Elapsed drops by 3X, DB-CPU drops by 2X Tried in C on OCI 6:54 Minutes 332 DB-CPU seconds Why is PL/SQL so much faster? PL/SQL is in the same place as SQL database, messaging simplified; Java/C incur network hits Why is C OCI outperforming Java 31 Graphical analysis of what occurs in each scenario PL/SQL Java 32

33 More CPU cycles: blame network messaging 34

Results Single-row SQL, PL/SQL results in 2x speedup Business logic in PL/SQL results in 10x speedup NoPlsql has overhead for multiple business logic SQL statements Shipping data in and out of app and db server is expensive Another factor not analyzed Network latency and waits 35 Unique to PL/SQL Multi-row handling for the destination of relational tables Set-based: INSERT.. SELECT Array processing: FOR ALL IN INSERT OO doesn t have this Of course, PL/SQL needs to be written to take advantage of this Set-based is 10x to 30x faster than row-by-row in PL/SQL 36

Compared to Set Processing 37 38

Findings Using DB as processing engine saves CPU licenses Fewer app servers needed to scale for more users Moved from NoPlsql to SmartDB Elapsed drops by 3X #SmartDB is faster DB-CPU drops by 2X #SmartDB is more scalable Gets work done faster while at same time using less CPU 39 Summary of Testing Results PL/SQL has none of these No O/S startup for network layers No JVM involvement (for Java option) JVM and JDBC process overhead Shipping data in and out of processes JVM cleanup For C OCI, still have OCI statement preparation startup and cleanup Shipping data in and out 40

Agenda What is Thick Database? Thick Concepts Why is Thick faster? Thick advice 41 When Not to Use Thick Database If your organization is dedicated to database independence Changing from Oracle to SQL Server, for example This is not a simple endeavor Forces applications to use ANSI SQL only Applications are thicker than the database Product app companies may need to be DB independent If your applications have few or simple business rules Overhead of Thick Database may not be worthwhile 42

Thick Database Team Success If your team is expert in a development discipline other than PL/SQL, selling ThickDB is difficult Experts in database design, SQL, and PL/SQL do not have deep UI skills Experts in UI do not have deep DB skills Or, at least, this is very rare Success lies in divide and conquer Small team of DB developers Any size team of UI developers Exact numbers depend on the workload Bonus advice: consider Agile 43 Advice for UI Developers Rely on the frameworks to do what they are designed for For example, ADF Highly evolved, efficient, effective use of JDBC; Oracle Support-ed Similarly, EJB Writing custom overrides to framework code can lead to disaster Or at least inefficiencies AND: there is no one to blame except yourself 44

Advice for DB Developers Learn the API points into the UI Helps communication with UI developers ADF example: dodml() method can call record-level business rules code Constants tell you whether the DML is insert, update, or delete 45 No, but Do You Need an Oracle Database? A central location for business rules code is necessary Best in a database Views are needed to hide details of the data storage INSTEAD OF triggers may not be available So application may be responsible for calling the central code Table API concept may be possible DB2 supports PL/SQL You can always just allow access to views not tables 46

How to Transition to Thick Database Like applying any other standard while in flight Apply it 100% to new applications Can apply it to existing application enhancements Start small Incorporate user interface interaction with database views Refine as you go Completely Thick can be a longer-term goal 47 Thick Database: A Gastronomic Delight If the theory turns out to be right, that will be tremendously thick and tasty icing on the cake. Brian Greene (1963- ), physicist 48

Summary Thick Database is driven by business rules Thick Database can improve UI simplicity, productivity, system performance, application accuracy, security ThickDB can save cloud computing costs ThickDB can use development team talent more efficiently 49 Designer Handbook Developer Advanced Forms & Reports JDeveloper 3 Handbook ORACLE9i JDeveloper Handbook ORACLE JDeveloper 10g Handbook Please fill out the evaluations 7 of 8 books co-authored with Dr. Paul Dorsey, Avrom Roy-Faderman, & Duncan Mills Slides will be on the NoCOUG website 50