SlideShare a Scribd company logo
Oracle Forms
Modernization Roadmap
A discussion
Kai-Uwe Moeller, November 2018
About the Author
● Technical consultant
• at Oracle Consulting Germany
• self employed since 2008
● Expert for
• Oracle Database
• Fusion Middleware, ADF, eBusiness Suite
• Oracle Forms modernization and migration
• Oracle Reports and BI Publisher
Agenda
• Stating the challenge
• Migration roadmap
• Analyze existing architecture
• Forms modernization
• Forms alternatives – (not so) new technologies
• Design service and presentation layer
• Target Architecture Scenario
Common Questions
• For how long will I be able to operate my Forms applications?
• Commitment by Oracle indefinite?
• Forms developers retire
• One main competitor runs his software at lower cost and reacts
very agile on new business requirements. How can we get there?
• Our field sales representatives need some of our application data
on their mobile devices.
• Controlling is not happy with the old fashioned and static
presentation of the revenue numbers.
The following slides are a starting point to find adequate answers.
Assumption
• IT of the last decades was highly focused on manual data entry
Reason: Humans were primary data source and recipient
• New technologies have gained importance:
• Mobile devices
• Internet of things
• Deep learning
• RFID and others
• Consequence is evolving human interaction (‘human tasks’)
• Classic desktop applications will loose importance
• Interaction of multiple services becomes more relevant
Evolution of Human Interfaces
• Mass data query and
entry screens
• Desktop oriented
• Static forms
• User driven
• Data evaluation, data mining
• Decision support
• Interactive dynamic dashboards
• Desktop and mobile
• Event driven, real time
Transition from Desktop oriented to
Service Oriented Architecture
Transition Roadmap
Analyze Existing Architecture
Examine Target Technologies
Define Modernization Scope
Design the Services
Design the Presentation Layer
Analyze Existing Architecture
1. Locate the business logic:
Database, Forms modules, Java programs
2. Identify unused and deprecated components:
Dead code, obsolete Forms modules and database objects
3. Identify components
• to be exposed as a service
• to be replaced by an external service
4. Examine peripheral/supporting components:
Interfaces, batch jobs, reporting, security
Transition Roadmap
Analyze Existing Architecture
Examine Target Technologies
Define Modernization Scope
Design the Services
Design the Presentation Layer
Examine Target Technologies
Full Stack (Oracle)
• Forms (modernization)
• ADF (ADF Faces with Task Flows and ADF Business Components)
• Application Express (APEX)
Services
• Oracle REST Data Services (ORDS)
• Service based on Java frameworks (Spring REST, …)
• SOA Suite
User Interface
• JavaScript / Typescript based frameworks
• JSF
Forms Modernization – Chances and Risks
✅ Currently: Oracle commits to
forms for ‘indefinite” time
✅ Saves the investments taken
✅ Skill set for maintenance is
available
✅ Still a fast and reliable way to
enter mass transactional data
on a desktop
✅ Forms 12c features and third
party tool kits enable
modernization
❗ Forms runtime client can get
incompatible with desktop
Java Runtime (JRE)
❗ Major browser vendors had
discontinued Java applets
❗ Running Java applications on
desktop computers is more
and more considered as a
security risk and causes
unwanted maintenance by IT
desktop support
Partial Migration – Pros and Cons
✅ Smaller project(s), agile
approach possible
✅ Tailored applications for each
target audience:
• Responsive dashboards for
controlling and management
• Mobile device apps for field
service and sales reps
• Fast and reliable data entry forms
for back office desktops
✅ Gradual migration to a modern
cloud based architecture
❌ Increased effort in operations
and maintenance possible
❌ Diverse technology stack
❌ Manual switching between
multiple applications can
degrade user experience
A complete Migration from Forms
creates a huge project and may
not generate the desired results.
Let’s consider doing it partially
and gradually.
Tool Supported Migration
• Differences in legacy and target architectures are huge,
not limited to the programming languages
• Legacy code usually grew over years collecting many add-ons and
workarounds, has obsolete portions1), etc.
• Such a real world legacy application automatically transformed,
will it be
- Lean, contain maintainable and performant code?
- Future ready for cloud oriented architectures?
1) There are software tools that can identify obsolete (unused) code,
even unused portions of the UI
ADF – Faces, Task Flows
and Business Components
✅ Advanced and powerful features
(Task flows, ADF Business
Components, ...)
✅ Moves focus of development
from technology to business
requirements
✅ Follows industry standards like JEE
and JSF
✅ Support by large software vendor
❌ Partially proprietary
(Binding layer, ADF BC,...)
❌ JSF Technology stack aged
❌ Heavy weight,
performance issues possible
❌ License costs
❌ Lack of proficient ADF developers
❓ Commitment by Oracle?
When the learning curve has been consumed,
building Applications with ADF can be very efficient.
But this comes with a price tag and the future of the
framework is uncertain.
JavaScript based
� Is JSF still relevant? Read this opinion: https://www.javabullets.com/is-jsf-still-relevant
❗ The JavaScript framework scene
is fast moving
Considerations
❓ Learning curve
❓ Creates maintainable code
even for large projects
❓ Component library contained
or available
❓ Performance
❓ (Projected) Market share
❓ Support and Community
Application Express (APEX)
• Part of the Oracle Database
• Highly declarative web application development
Pros:
✅ Supports agile development
✅ Delivers fast results, contains many standard patterns
(menus, forms, master/detail data views, security)
✅ No additional license costs on top of Oracle database license
Cons:
❌ Highly proprietary
❌ Strictly dependent on Oracle Database (vendor lock)
❌ Lack of scalability and layer/API based architectural approach
❌ Security considerations
It is amazing, how quite powerful
applications can be built with APEX in
between short time even with small
knowledge of coding. But finally
everything comes with a price.
Transition Roadmap
Analyze Existing Architecture
Examine Target Technologies
Define Modernization Scope
Design the Services
Design the Presentation Layer
Define Modernization Scope
● Identify screens and modules required
for migration
• Functionality not available in
Forms (i.e. for mobile devices)
• Strategic
• Other
● Identify related modules building a
business process
• Technically by code references
• Logically by user navigation
(navigation flow)
● Migrate identified modules to
target architecture
● Build supporting new interfaces and
workflows based on requirements
New
interfaces and
workflows
Transition Roadmap
Analyze Existing Architecture
Examine Target Technologies
Define Modernization Scope
Design the Services
Design the Presentation Layer
Design the Services
Service Categories
• Administrative (authentication, authorization, …)
• CRUD operations – data retrieval, entry and change
• Validation
• Invoke other systems as services (reporting, interfaces, …)
Implementation
• PL/SQL procedure
• ADF Business Component
• Web Service (can be based on PL/SQL, ADF BC, Java)
A unified service layer would be ideal, but not all
frontends will be compatible. Forms or JSF can
be bound to REST only with high effort, a vendor
interface may accept a specific XML format ... So
the services will remain a mix of different
technologies based on the consumer’s
requirements.
Extracting Business Logic
• Extract PL/SQL from Forms into database stored
procedures if they act like services.
• Criteria for an ideal extracted stored procedure:
- Can its purpose be described like a use case?
Examples: 'Get contract details' 'Update stock amount' 'Create new warehouse’
- Does it represent or encapsulate a database transaction, or is it strictly read only?
- Is it reusable across screens or applications?
- Can given input and expected output be documented across scenarios?
- Can it be (automatically) tested with a set of defined test cases?
• Most questions answered with
- Yes? Great candidate for a database driven service!
- No? Consider refactoring with extraction. Why should you keep and maintain
components in your architecture when you don't know exactly what they do?
There are tools capable of automatic
Forms PL/SQL extraction to the database.
They can speed up extraction but have to
be used with caution as they will do it
one-to-one.
Thinking about Transactions (1)
Thinking about Transactions (2)
● The Forms database centric architecture uses
transactions and guarantees data consistency out of
the box
● ADF Business components can emulate the
transaction based approach
● The standard REST approach maps http methods
(GET, PUT, …) one on one to CRUD/DML database
operations (UPDATE …)
● Scenarios where a use case contains more than one
CRUD/DML operation in one transaction need a more
customized service implementation,
● Alternative Approach: Abandon full data consistency
Authentication and Authorization
Legacy
• Named database users and assigned database roles
are common in Forms applications
Modernization Strategies
• Make database users and roles available to services
• Migrate users and roles to a new access control service
• PL/SQL Code with references needs rework if it contains references to
USER or database roles or
• Consider connection via named proxy user
Transition Roadmap
Analyze Existing Architecture
Examine Target Technologies
Define Modernization Scope
Design the Services
Design the Presentation Layer
Design the Presentation Layer
• Design for Desktop and/or Mobile devices
• Unified or separate?
• UI frame organization:
• Menu
• Tabs
• Or: New approach optimized for mobile devices
• Navigation and navigation rules between views
• View design
Reporting
• Replace deprecated Oracle Reports
• BI Publisher, Jasper Reports, …
• Check for obsolete reports
• Align with current business requirements
• Reports still required as static paper/PDF output?
• Consider alternative and contemporary ways of presentation
i.e. interactive dashboards
• Design integration with target architecture
• If static (PDF) output is still required:
• Asynchronous generation – notify recipient of result like success or failure
• Delivery method to the recipient
Reporting is easily underestimated in
implementation and modernization projects. Quite
surprising as the efforts can be significant. This
slide is just a starting point.
Target Architecture Scenario
● Choose (or keep) the technologies
that meet your needs
● No new developments in
technologies you mark as
deprecated for your organization
● Web Services (REST) are the glue for
modern architectures
● Gradually evolve to a
Cloud / PaaS / SaaS ready
architecture
Related Topics Down The Road
• Forms modernization
• Oracle Application Express (APEX)
• Interaction between Oracle Forms
and web applications
• Security
Summary
• Forms (12c) applications can comfortably exist
in a current IT landscape.
• A gradual migration is possible and recommended.
• This is just the beginning.
Continuous learning is part of the game.
Please share your opinion and experience!
mail@kaimoeller.net LinkedIn: Kai-Uwe Möller

More Related Content

What's hot

Self-Service Business Intelligence with Power BI
Self-Service Business Intelligence with Power BISelf-Service Business Intelligence with Power BI
Self-Service Business Intelligence with Power BI
Theresa Lubelski
 
Concurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAsConcurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAs
Maris Elsins
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and Kafka
ScyllaDB
 
Overview SQL Server 2019
Overview SQL Server 2019Overview SQL Server 2019
Overview SQL Server 2019
Juan Fabian
 
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
Julien Le Dem
 
Growing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RSGrowing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RS
Databricks
 
Write Faster SQL with Trino.pdf
Write Faster SQL with Trino.pdfWrite Faster SQL with Trino.pdf
Write Faster SQL with Trino.pdf
Eric Xiao
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta Lake
Flink Forward
 
A 30 day plan to start ending your data struggle with Snowflake
A 30 day plan to start ending your data struggle with SnowflakeA 30 day plan to start ending your data struggle with Snowflake
A 30 day plan to start ending your data struggle with Snowflake
Snowflake Computing
 
Data Quality With or Without Apache Spark and Its Ecosystem
Data Quality With or Without Apache Spark and Its EcosystemData Quality With or Without Apache Spark and Its Ecosystem
Data Quality With or Without Apache Spark and Its Ecosystem
Databricks
 
Overview of new features in Apache Ranger
Overview of new features in Apache RangerOverview of new features in Apache Ranger
Overview of new features in Apache Ranger
DataWorks Summit
 
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
HostedbyConfluent
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
Nishith Agarwal
 
Best Practices: Hadoop migration to Azure HDInsight
Best Practices: Hadoop migration to Azure HDInsightBest Practices: Hadoop migration to Azure HDInsight
Best Practices: Hadoop migration to Azure HDInsight
Revin Chalil
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
DataWorks Summit
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Glen Hawkins
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
Vinay Kumar
 
Presentation oracle on power power advantages and license optimization
Presentation   oracle on power power advantages and license optimizationPresentation   oracle on power power advantages and license optimization
Presentation oracle on power power advantages and license optimization
solarisyougood
 
State of the Trino Project
State of the Trino ProjectState of the Trino Project
State of the Trino Project
Martin Traverso
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Databricks
 

What's hot (20)

Self-Service Business Intelligence with Power BI
Self-Service Business Intelligence with Power BISelf-Service Business Intelligence with Power BI
Self-Service Business Intelligence with Power BI
 
Concurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAsConcurrent Processing Performance Analysis for Apps DBAs
Concurrent Processing Performance Analysis for Apps DBAs
 
Building Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and KafkaBuilding Event Streaming Architectures on Scylla and Kafka
Building Event Streaming Architectures on Scylla and Kafka
 
Overview SQL Server 2019
Overview SQL Server 2019Overview SQL Server 2019
Overview SQL Server 2019
 
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
Efficient Data Storage for Analytics with Parquet 2.0 - Hadoop Summit 2014
 
Growing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RSGrowing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RS
 
Write Faster SQL with Trino.pdf
Write Faster SQL with Trino.pdfWrite Faster SQL with Trino.pdf
Write Faster SQL with Trino.pdf
 
Building Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta LakeBuilding Reliable Lakehouses with Apache Flink and Delta Lake
Building Reliable Lakehouses with Apache Flink and Delta Lake
 
A 30 day plan to start ending your data struggle with Snowflake
A 30 day plan to start ending your data struggle with SnowflakeA 30 day plan to start ending your data struggle with Snowflake
A 30 day plan to start ending your data struggle with Snowflake
 
Data Quality With or Without Apache Spark and Its Ecosystem
Data Quality With or Without Apache Spark and Its EcosystemData Quality With or Without Apache Spark and Its Ecosystem
Data Quality With or Without Apache Spark and Its Ecosystem
 
Overview of new features in Apache Ranger
Overview of new features in Apache RangerOverview of new features in Apache Ranger
Overview of new features in Apache Ranger
 
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
Designing Apache Hudi for Incremental Processing With Vinoth Chandar and Etha...
 
Hudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilitiesHudi architecture, fundamentals and capabilities
Hudi architecture, fundamentals and capabilities
 
Best Practices: Hadoop migration to Azure HDInsight
Best Practices: Hadoop migration to Azure HDInsightBest Practices: Hadoop migration to Azure HDInsight
Best Practices: Hadoop migration to Azure HDInsight
 
An Introduction to Druid
An Introduction to DruidAn Introduction to Druid
An Introduction to Druid
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
 
Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
 
Presentation oracle on power power advantages and license optimization
Presentation   oracle on power power advantages and license optimizationPresentation   oracle on power power advantages and license optimization
Presentation oracle on power power advantages and license optimization
 
State of the Trino Project
State of the Trino ProjectState of the Trino Project
State of the Trino Project
 
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...Building a Streaming Microservice Architecture: with Apache Spark Structured ...
Building a Streaming Microservice Architecture: with Apache Spark Structured ...
 

Similar to Oracle Forms Modernization Roadmap

Subhoshree resume
Subhoshree resumeSubhoshree resume
Subhoshree resume
Subhoshree Deo
 
Subhoshree_ETLDeveloper
Subhoshree_ETLDeveloperSubhoshree_ETLDeveloper
Subhoshree_ETLDeveloperSubhoshree Deo
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
quaish abuzer
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
KalsoomTahir2
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt
eddielyndacanay0
 
Mridul_Halder_Resume
Mridul_Halder_ResumeMridul_Halder_Resume
Mridul_Halder_ResumeMridul Halder
 
Copy of Alok_Singh_CV
Copy of Alok_Singh_CVCopy of Alok_Singh_CV
Copy of Alok_Singh_CVAlok Singh
 
Prince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_DeveloperPrince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_DeveloperPrince nagsen
 
Resume Aden bahdon
Resume Aden bahdonResume Aden bahdon
Resume Aden bahdonAden Bahdon
 
Resume Vardan Karapetian Updated
Resume Vardan Karapetian UpdatedResume Vardan Karapetian Updated
Resume Vardan Karapetian Updated
vkarapet
 
Wael Abdeen Resume
Wael Abdeen ResumeWael Abdeen Resume
Wael Abdeen Resume
oracle_itself
 
Skill_Level_ Strider
Skill_Level_ StriderSkill_Level_ Strider
Skill_Level_ StriderTushar R
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOASteven Davelaar
 

Similar to Oracle Forms Modernization Roadmap (20)

Subhoshree resume
Subhoshree resumeSubhoshree resume
Subhoshree resume
 
Subhoshree_ETLDeveloper
Subhoshree_ETLDeveloperSubhoshree_ETLDeveloper
Subhoshree_ETLDeveloper
 
Prashant Patel
Prashant PatelPrashant Patel
Prashant Patel
 
Vikas Kumar
Vikas KumarVikas Kumar
Vikas Kumar
 
Resume quaish abuzer
Resume quaish abuzerResume quaish abuzer
Resume quaish abuzer
 
1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt1588487811-chp-11-c-enterprise-application-integration.ppt
1588487811-chp-11-c-enterprise-application-integration.ppt
 
--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt--Enterprise-Application-Integration.ppt
--Enterprise-Application-Integration.ppt
 
Madhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EEMadhava_Sr_JAVA_J2EE
Madhava_Sr_JAVA_J2EE
 
sonal
sonalsonal
sonal
 
Mridul_Halder_Resume
Mridul_Halder_ResumeMridul_Halder_Resume
Mridul_Halder_Resume
 
Copy of Alok_Singh_CV
Copy of Alok_Singh_CVCopy of Alok_Singh_CV
Copy of Alok_Singh_CV
 
Prince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_DeveloperPrince_Kumar_JAVA_Developer
Prince_Kumar_JAVA_Developer
 
HamsaBalajiresume
HamsaBalajiresumeHamsaBalajiresume
HamsaBalajiresume
 
Navendu_Resume
Navendu_ResumeNavendu_Resume
Navendu_Resume
 
PradeepDWH
PradeepDWHPradeepDWH
PradeepDWH
 
Resume Aden bahdon
Resume Aden bahdonResume Aden bahdon
Resume Aden bahdon
 
Resume Vardan Karapetian Updated
Resume Vardan Karapetian UpdatedResume Vardan Karapetian Updated
Resume Vardan Karapetian Updated
 
Wael Abdeen Resume
Wael Abdeen ResumeWael Abdeen Resume
Wael Abdeen Resume
 
Skill_Level_ Strider
Skill_Level_ StriderSkill_Level_ Strider
Skill_Level_ Strider
 
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOAGuidelines for moving from Oracle Forms to Oracle ADF and SOA
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
 

Recently uploaded

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
varshanayak241
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 

Recently uploaded (20)

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Strategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptxStrategies for Successful Data Migration Tools.pptx
Strategies for Successful Data Migration Tools.pptx
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 

Oracle Forms Modernization Roadmap

  • 1. Oracle Forms Modernization Roadmap A discussion Kai-Uwe Moeller, November 2018
  • 2. About the Author ● Technical consultant • at Oracle Consulting Germany • self employed since 2008 ● Expert for • Oracle Database • Fusion Middleware, ADF, eBusiness Suite • Oracle Forms modernization and migration • Oracle Reports and BI Publisher
  • 3. Agenda • Stating the challenge • Migration roadmap • Analyze existing architecture • Forms modernization • Forms alternatives – (not so) new technologies • Design service and presentation layer • Target Architecture Scenario
  • 4. Common Questions • For how long will I be able to operate my Forms applications? • Commitment by Oracle indefinite? • Forms developers retire • One main competitor runs his software at lower cost and reacts very agile on new business requirements. How can we get there? • Our field sales representatives need some of our application data on their mobile devices. • Controlling is not happy with the old fashioned and static presentation of the revenue numbers. The following slides are a starting point to find adequate answers.
  • 5. Assumption • IT of the last decades was highly focused on manual data entry Reason: Humans were primary data source and recipient • New technologies have gained importance: • Mobile devices • Internet of things • Deep learning • RFID and others • Consequence is evolving human interaction (‘human tasks’) • Classic desktop applications will loose importance • Interaction of multiple services becomes more relevant
  • 6. Evolution of Human Interfaces • Mass data query and entry screens • Desktop oriented • Static forms • User driven • Data evaluation, data mining • Decision support • Interactive dynamic dashboards • Desktop and mobile • Event driven, real time
  • 7. Transition from Desktop oriented to Service Oriented Architecture
  • 8. Transition Roadmap Analyze Existing Architecture Examine Target Technologies Define Modernization Scope Design the Services Design the Presentation Layer
  • 9. Analyze Existing Architecture 1. Locate the business logic: Database, Forms modules, Java programs 2. Identify unused and deprecated components: Dead code, obsolete Forms modules and database objects 3. Identify components • to be exposed as a service • to be replaced by an external service 4. Examine peripheral/supporting components: Interfaces, batch jobs, reporting, security
  • 10. Transition Roadmap Analyze Existing Architecture Examine Target Technologies Define Modernization Scope Design the Services Design the Presentation Layer
  • 11. Examine Target Technologies Full Stack (Oracle) • Forms (modernization) • ADF (ADF Faces with Task Flows and ADF Business Components) • Application Express (APEX) Services • Oracle REST Data Services (ORDS) • Service based on Java frameworks (Spring REST, …) • SOA Suite User Interface • JavaScript / Typescript based frameworks • JSF
  • 12. Forms Modernization – Chances and Risks ✅ Currently: Oracle commits to forms for ‘indefinite” time ✅ Saves the investments taken ✅ Skill set for maintenance is available ✅ Still a fast and reliable way to enter mass transactional data on a desktop ✅ Forms 12c features and third party tool kits enable modernization ❗ Forms runtime client can get incompatible with desktop Java Runtime (JRE) ❗ Major browser vendors had discontinued Java applets ❗ Running Java applications on desktop computers is more and more considered as a security risk and causes unwanted maintenance by IT desktop support
  • 13. Partial Migration – Pros and Cons ✅ Smaller project(s), agile approach possible ✅ Tailored applications for each target audience: • Responsive dashboards for controlling and management • Mobile device apps for field service and sales reps • Fast and reliable data entry forms for back office desktops ✅ Gradual migration to a modern cloud based architecture ❌ Increased effort in operations and maintenance possible ❌ Diverse technology stack ❌ Manual switching between multiple applications can degrade user experience A complete Migration from Forms creates a huge project and may not generate the desired results. Let’s consider doing it partially and gradually.
  • 14. Tool Supported Migration • Differences in legacy and target architectures are huge, not limited to the programming languages • Legacy code usually grew over years collecting many add-ons and workarounds, has obsolete portions1), etc. • Such a real world legacy application automatically transformed, will it be - Lean, contain maintainable and performant code? - Future ready for cloud oriented architectures? 1) There are software tools that can identify obsolete (unused) code, even unused portions of the UI
  • 15. ADF – Faces, Task Flows and Business Components ✅ Advanced and powerful features (Task flows, ADF Business Components, ...) ✅ Moves focus of development from technology to business requirements ✅ Follows industry standards like JEE and JSF ✅ Support by large software vendor ❌ Partially proprietary (Binding layer, ADF BC,...) ❌ JSF Technology stack aged ❌ Heavy weight, performance issues possible ❌ License costs ❌ Lack of proficient ADF developers ❓ Commitment by Oracle? When the learning curve has been consumed, building Applications with ADF can be very efficient. But this comes with a price tag and the future of the framework is uncertain.
  • 16. JavaScript based � Is JSF still relevant? Read this opinion: https://www.javabullets.com/is-jsf-still-relevant ❗ The JavaScript framework scene is fast moving Considerations ❓ Learning curve ❓ Creates maintainable code even for large projects ❓ Component library contained or available ❓ Performance ❓ (Projected) Market share ❓ Support and Community
  • 17. Application Express (APEX) • Part of the Oracle Database • Highly declarative web application development Pros: ✅ Supports agile development ✅ Delivers fast results, contains many standard patterns (menus, forms, master/detail data views, security) ✅ No additional license costs on top of Oracle database license Cons: ❌ Highly proprietary ❌ Strictly dependent on Oracle Database (vendor lock) ❌ Lack of scalability and layer/API based architectural approach ❌ Security considerations It is amazing, how quite powerful applications can be built with APEX in between short time even with small knowledge of coding. But finally everything comes with a price.
  • 18. Transition Roadmap Analyze Existing Architecture Examine Target Technologies Define Modernization Scope Design the Services Design the Presentation Layer
  • 19. Define Modernization Scope ● Identify screens and modules required for migration • Functionality not available in Forms (i.e. for mobile devices) • Strategic • Other ● Identify related modules building a business process • Technically by code references • Logically by user navigation (navigation flow) ● Migrate identified modules to target architecture ● Build supporting new interfaces and workflows based on requirements New interfaces and workflows
  • 20. Transition Roadmap Analyze Existing Architecture Examine Target Technologies Define Modernization Scope Design the Services Design the Presentation Layer
  • 21. Design the Services Service Categories • Administrative (authentication, authorization, …) • CRUD operations – data retrieval, entry and change • Validation • Invoke other systems as services (reporting, interfaces, …) Implementation • PL/SQL procedure • ADF Business Component • Web Service (can be based on PL/SQL, ADF BC, Java) A unified service layer would be ideal, but not all frontends will be compatible. Forms or JSF can be bound to REST only with high effort, a vendor interface may accept a specific XML format ... So the services will remain a mix of different technologies based on the consumer’s requirements.
  • 22. Extracting Business Logic • Extract PL/SQL from Forms into database stored procedures if they act like services. • Criteria for an ideal extracted stored procedure: - Can its purpose be described like a use case? Examples: 'Get contract details' 'Update stock amount' 'Create new warehouse’ - Does it represent or encapsulate a database transaction, or is it strictly read only? - Is it reusable across screens or applications? - Can given input and expected output be documented across scenarios? - Can it be (automatically) tested with a set of defined test cases? • Most questions answered with - Yes? Great candidate for a database driven service! - No? Consider refactoring with extraction. Why should you keep and maintain components in your architecture when you don't know exactly what they do? There are tools capable of automatic Forms PL/SQL extraction to the database. They can speed up extraction but have to be used with caution as they will do it one-to-one.
  • 24. Thinking about Transactions (2) ● The Forms database centric architecture uses transactions and guarantees data consistency out of the box ● ADF Business components can emulate the transaction based approach ● The standard REST approach maps http methods (GET, PUT, …) one on one to CRUD/DML database operations (UPDATE …) ● Scenarios where a use case contains more than one CRUD/DML operation in one transaction need a more customized service implementation, ● Alternative Approach: Abandon full data consistency
  • 25. Authentication and Authorization Legacy • Named database users and assigned database roles are common in Forms applications Modernization Strategies • Make database users and roles available to services • Migrate users and roles to a new access control service • PL/SQL Code with references needs rework if it contains references to USER or database roles or • Consider connection via named proxy user
  • 26. Transition Roadmap Analyze Existing Architecture Examine Target Technologies Define Modernization Scope Design the Services Design the Presentation Layer
  • 27. Design the Presentation Layer • Design for Desktop and/or Mobile devices • Unified or separate? • UI frame organization: • Menu • Tabs • Or: New approach optimized for mobile devices • Navigation and navigation rules between views • View design
  • 28. Reporting • Replace deprecated Oracle Reports • BI Publisher, Jasper Reports, … • Check for obsolete reports • Align with current business requirements • Reports still required as static paper/PDF output? • Consider alternative and contemporary ways of presentation i.e. interactive dashboards • Design integration with target architecture • If static (PDF) output is still required: • Asynchronous generation – notify recipient of result like success or failure • Delivery method to the recipient Reporting is easily underestimated in implementation and modernization projects. Quite surprising as the efforts can be significant. This slide is just a starting point.
  • 29. Target Architecture Scenario ● Choose (or keep) the technologies that meet your needs ● No new developments in technologies you mark as deprecated for your organization ● Web Services (REST) are the glue for modern architectures ● Gradually evolve to a Cloud / PaaS / SaaS ready architecture
  • 30. Related Topics Down The Road • Forms modernization • Oracle Application Express (APEX) • Interaction between Oracle Forms and web applications • Security
  • 31. Summary • Forms (12c) applications can comfortably exist in a current IT landscape. • A gradual migration is possible and recommended. • This is just the beginning. Continuous learning is part of the game. Please share your opinion and experience! mail@kaimoeller.net LinkedIn: Kai-Uwe Möller