SlideShare a Scribd company logo
Powerful Enterprise Rich Internet Application
Development with ADF
An Oracle Application Development Framework Introduction
Jean-Marc Desvaux
Head of Information Systems
GENERAL CONSTRUCTION CO.LTD
@jmdesvaux
What is Oracle
ADF ?
Common
Enterprise Web App
Architecture
CLIENT
(Browser or Mobile App or
Web Service consumer)
Web Tier
(HTTP Server/SSO Agent/.. )
Business Tier / App Server
(JEE server/ASP.NET server/..)
Data Store/Data services Tier
(RDBMS/NoSQL Databases/Web Services/..)
ADF technology footprint on both the
Server side (App server) and on the Client side
ADF is a Java EE Framework implementing
an MVC architectural pattern with the
support of an Integrated Development
Environment (IDE)
A Framework is a structure intended to serve
as a support or guide for the building of
something that expands the structure into
something useful.
Use those blocks, don’t redesign and rebuild
them each time
The MVC Pattern (Model View Controller) separates th
implementation of the :
-UI (View)
Interface, Adaptive Rendering, Skinning/Look&Feel
-Application Flow & business logic
between UI and Data (Controller)
Event handling, page navigation/flow
-Data (Model)
ORM, Operations, Validation
There are many frameworks out there
for each layer to help implement them
Typically
JavaScript
HTML
---------
Controller
Servlet
----------
Java
(EJB,JPA,
Hibernate,
Spring)
MVC Architecture can be complex and requires
heavy background work to :
- Standardize design and coding
- Design for Reusability
- Control code quality to prevent anti-patterns (not compliant
with pattern, coding in wrong place)
- Master each MVC layer sub-frameworks
The ADF value :
Coupled with an IDE (Jdeveloper or Eclipse+OEPE), It brings
together for you a number of standards & sub-frameworks which
it extends to provide an end-to-end, metadata-driven framework
to help you build Business Applications with more productivity,
quality and ease of maintenance.
It is sometimes qualified as a meta-framework
The MVC Pattern the ADF way:
View: ADF Faces
Based on JSF Standard. JavaScript & Ajax based components,
latest components set known as Alta UI
Controller : ADF Faces Controller
Extending JSF (2.0) to improve capabilities,
Task flows concepts to go beyond pages flow controls.
Model :
ADF BC (Business Services)
Defines objects that map to database tables (ORM),
manage data & business logic validation, coordinates M/D,
provides default operations (commit, delete, insert, update)
ADF Model (Bindings)
Abstract the Business service attributes and actions implementation
to the View layer. The Glue between the View and the Business services
ADF Faces
---------
ADF
Controller
----------
ADF
Model
----------
ADF
BC
ADF BC
(Business Components)
ADF BC
APPLICATION MODULE(S)
View Objects Instances & Transaction Container
(Each defines the Transaction boundary for committing or rollback)
SERVICEApplicationModuleImpl class (access & manage VOs, custom method/oper)
VIEW OBJECTS & View Links
Application-specific view of records queried into Entity Objects,
View Links define relationships between View Objects
EO EXPOSUREViewObjectImpl (execute query,..), ViewRowImpl classes (set attrib.)
ENTITY OBJECTS & Associations
Mapped Database Data Model (Object-Relational Mapping), data types mapping
Associations define relationships between Entities Objects, Act as DB records Cache
CACHEEntityImpl class (create(), remove(), do_DML(),..)
One runtime instance for each EO, VO or AM; You can hook into these classes to add custom code
Adding Business components to a new Application
(choosing to create from Tables)
You will be prompted to enter a
database connection configuration &
once connected you will be driven
by a wizard to quickly create your
business components.
Once completed, you will create an
Application Module by selecting the
Business components to be used by
your Application
ADF
Model
BINDINGS
Created on Drag and drop from Data Control Panel onto a Page.
Types (Depending on UI Component) : Attribute, Tree, Action, Method, List Bindings
UI components reference the binding using Expression Language (EL)
DATA CONTROLS
Abstraction of Business Service (XML definitions of the Service)
DC created automatically when you create Business Components in ADF
Exposed in the IDE via the Data Control Panel
ADF MODEL
The “glue” between the View Layer and the Business services
Business Services exposed consistently and UI components capable of binding to
this Business Service Abstraction.
UI does not depend on how the Business Service is implemented.
Drag &
Drop
ADF Bindings creation thru drag & drop
ADF Bindings View in JDeveloper
thru the page editor bindings tab.
An Executable is an Iterator (pointer) to the current data object, basically bindings
using the same iterator will refer to the same row of the data control exposed in a
Collection Object (Table).
You can also add, delete or edit the bindings
Recapitulation
so far
Business ServicesADF Page
#{Binding Expression}
for a page component (text
item, button,..) referencing a
value or action or Iterator
binding using EL (Expression
Language)
ADF Model
(Binding Context)
Binding Container
Action bindings
Value bindings
iterator bindings
Data Control
Data Control
ADF BC
Application
Module
EJB
Session
Bean
ADF View
ADF FACES
- Oracle’s offering of JSF components
- Provides Visual UI components (Input Text, button,..)
- Provides Layout components (to organize application page real-
estate utilisation)
- Provides Drag & drop, popup dialogs, page templates,…
- Developer works with components & is protected from
components implementation details
=> future-proofing of the component used :
>New display devices, evolution of markup languages
ADF FACES
- UI specific code in managed beans (java classes managed by JSF)
- EL (Expression Language) allowing UI component to
refer to a java bean associated with the application
Ex : #{mybean.myValue} for managed bean mybean & a
call to getMyValue() accessor in the bean.
- EL is mainly to hook up UI components to the framework
class that implements the binding to the business service
ADF FACES
JDeveloper Editor UI
ADF FACES
ADF FACES – Alta UI components
ADF Controller
ADF Controller
- Navigation Cases (Application Flow)
- Page Life Cycle enriched
- Task Flows
- Regions
- Page fragments
- Popups
- Partial Page Rendering
ADF Task Flows
- Unbounded Task Flow
Any page in the TF can be accessed directly
- Bounded Task Flow
Reusable flow that can be referenced by
any other Task Flow, bounded or not. Can
receive and return Parameters.
Task Flow are a set of Activities with a defined flow
between each Activity, called a control flow
Activities can be a View (Page), a Method Call, a
Router activity (conditional flow routing), a Task Flow Call.
Instead of pages, we can create TF with page fragments
which can be displayed in a page Region
ADF IN ACTION
Creating a simple ADF application in 10mns
Data exposed in this sample is not real and is for test purpose only
GCC WEB APPS
SINGLE ORACLE DATABASE INSTANCE
GCC Information Eco-system
Across Project or for a specific Project only
Requirements
• Ensure continuous Development to keep adding value to the
business
• Growth intention : more modules as we go
• Foundation for sustainable App development
• Be able to move slowly from one version to another and
have in transition periods coexistence of different
Framework versions
• Grasp Framework enhancements in new versions to add
value globally to all Apps with minimum impact and with
progressive updates of our Apps
• Protect Development Investment
Requirements
• Be able to enable Apps services to any new Project as from
day one.
• Frequent Access Control reviews as and when new Projects
are allocated to GCC and resources are reallocated from
one project to another with different Job roles/functions.
• Be able to achieve fine-grained security for who can do
what on each specific Project.
• Drive Security declaratively thru a specific App
GCC Apps Infrastructure
GCC Apps Main Menu
for Project-Centric Applications
Module Access and fine-grained security driven by Project & App User
GCC Apps Navigation Panel & Page Template
for Project-Centric Applications
App with Alta skin
Modernizing with new skins and new Components
GCC Apps Responsiveness Sample
Data exposed in this sample is not real and is for test purpose only
It was maybe a bit condensed but it was hard to
give you a good insight without going through
this minimum information.
Hope you’ve managed to grab something &
that you enjoyed it…
Resources to start with ADF
https://www.youtube.com/user/ADFInsiderEssentials
https://www.youtube.com/user/adfarchtv
http://www.oracle.com/technetwork/developer-tools/adf/overview/index.html
Insider Essentials & Architecture TV YouTube channels
Oracle Technology Network ADF section

More Related Content

What's hot

Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Michael Redlich
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
Ahmed rebai
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
AnmolPandita7
 
VB Script
VB ScriptVB Script
VB Script
Satish Sukumaran
 
AngularJS for Beginners
AngularJS for BeginnersAngularJS for Beginners
AngularJS for Beginners
Edureka!
 
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
Funnelll
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
Aaron Schram
 
Laravel
LaravelLaravel
Laravel
tanveerkhan62
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
Jorge Antonio Linares Vera
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
Volkan Uzun
 
Qlikview for Beginners
Qlikview for BeginnersQlikview for Beginners
Qlikview for Beginners
Edureka!
 
Angular 2.0
Angular  2.0Angular  2.0
Angular 2.0
Mallikarjuna G D
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsJames Bayer
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersDataNext Solutions
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
tola99
 
React js
React jsReact js
React js
Nikhil Karkra
 
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | EdurekaWhat Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
Edureka!
 
Spring framework
Spring frameworkSpring framework
Spring framework
Sonal Poddar
 

What's hot (20)

Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
Introduction to Object-Oriented Programming & Design Principles (TCF 2014)
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
VB Script
VB ScriptVB Script
VB Script
 
AngularJS for Beginners
AngularJS for BeginnersAngularJS for Beginners
AngularJS for Beginners
 
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Laravel
LaravelLaravel
Laravel
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Qlikview for Beginners
Qlikview for BeginnersQlikview for Beginners
Qlikview for Beginners
 
Angular 2.0
Angular  2.0Angular  2.0
Angular 2.0
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
 
AngularJS
AngularJS AngularJS
AngularJS
 
Spring Framework
Spring Framework  Spring Framework
Spring Framework
 
React js
React jsReact js
React js
 
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | EdurekaWhat Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
 
Spring framework
Spring frameworkSpring framework
Spring framework
 

Viewers also liked

Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF OverviewBahaa Farouk
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
Markus Eisele
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion developmentDataNext Solutions
 
Oracle ADF 11g Tutorial
Oracle ADF 11g TutorialOracle ADF 11g Tutorial
Oracle ADF 11g Tutorial
Rakesh Gujjarlapudi
 
Understanding Oracle ADF and its role in Oracle Fusion Middleware
Understanding Oracle ADF and its role in Oracle Fusion MiddlewareUnderstanding Oracle ADF and its role in Oracle Fusion Middleware
Understanding Oracle ADF and its role in Oracle Fusion Middleware
Refundation
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionapps
Berry Clemens
 
Presentation indexing new features oracle 11g release 1 and release 2
Presentation    indexing new features oracle 11g release 1 and release 2Presentation    indexing new features oracle 11g release 1 and release 2
Presentation indexing new features oracle 11g release 1 and release 2
xKinAnx
 
Estrategias de Mercado en Internet
Estrategias de Mercado en InternetEstrategias de Mercado en Internet
Estrategias de Mercado en Internet
Cinthia Duque
 
Prospectiva del e commerce
Prospectiva del e commerceProspectiva del e commerce
Prospectiva del e commerceCinthia Duque
 
Construyendo Portales Corporativos Usando Oracle WebCemter Portal
Construyendo Portales Corporativos Usando Oracle WebCemter PortalConstruyendo Portales Corporativos Usando Oracle WebCemter Portal
Construyendo Portales Corporativos Usando Oracle WebCemter Portal
Refundation
 
Introducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11gIntroducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11gMonte Kluemper
 
C11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERPC11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERPJDaniel LG
 
ERP – APLICACIÓN EN LA EMPRESA NACIONAL
ERP – APLICACIÓN EN LA EMPRESA NACIONALERP – APLICACIÓN EN LA EMPRESA NACIONAL
ERP – APLICACIÓN EN LA EMPRESA NACIONAL
Rolf Pinto
 
Proceso General para Implementar un ERP
Proceso General para Implementar un ERPProceso General para Implementar un ERP
Proceso General para Implementar un ERP
Consultor Independiente
 
Introducing adf business components
Introducing adf business componentsIntroducing adf business components
Introducing adf business components
Prabhat gangwar
 
Ránking: Qué ERP usan las 1000 empresas que más facturan
Ránking: Qué ERP usan las 1000 empresas que  más facturanRánking: Qué ERP usan las 1000 empresas que  más facturan
Ránking: Qué ERP usan las 1000 empresas que más facturan
EvaluandoSoftware
 
CALL CENTER & WEB CENTER
CALL CENTER & WEB CENTERCALL CENTER & WEB CENTER
CALL CENTER & WEB CENTERMarvin Ancona
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesAndreas Koop
 
Caso de estudio: Integración Empresarial Wal-Mart
Caso de estudio: Integración Empresarial Wal-MartCaso de estudio: Integración Empresarial Wal-Mart
Caso de estudio: Integración Empresarial Wal-MartCoatzozon20
 
Oracle dba-concise-handbook
Oracle dba-concise-handbookOracle dba-concise-handbook
Oracle dba-concise-handbooksasi777
 

Viewers also liked (20)

Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF Overview
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
 
Oracle ADF 11g Tutorial
Oracle ADF 11g TutorialOracle ADF 11g Tutorial
Oracle ADF 11g Tutorial
 
Understanding Oracle ADF and its role in Oracle Fusion Middleware
Understanding Oracle ADF and its role in Oracle Fusion MiddlewareUnderstanding Oracle ADF and its role in Oracle Fusion Middleware
Understanding Oracle ADF and its role in Oracle Fusion Middleware
 
Programming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionappsProgramming-best practices( beginner) ADF_fusionapps
Programming-best practices( beginner) ADF_fusionapps
 
Presentation indexing new features oracle 11g release 1 and release 2
Presentation    indexing new features oracle 11g release 1 and release 2Presentation    indexing new features oracle 11g release 1 and release 2
Presentation indexing new features oracle 11g release 1 and release 2
 
Estrategias de Mercado en Internet
Estrategias de Mercado en InternetEstrategias de Mercado en Internet
Estrategias de Mercado en Internet
 
Prospectiva del e commerce
Prospectiva del e commerceProspectiva del e commerce
Prospectiva del e commerce
 
Construyendo Portales Corporativos Usando Oracle WebCemter Portal
Construyendo Portales Corporativos Usando Oracle WebCemter PortalConstruyendo Portales Corporativos Usando Oracle WebCemter Portal
Construyendo Portales Corporativos Usando Oracle WebCemter Portal
 
Introducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11gIntroducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11g
 
C11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERPC11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERP
 
ERP – APLICACIÓN EN LA EMPRESA NACIONAL
ERP – APLICACIÓN EN LA EMPRESA NACIONALERP – APLICACIÓN EN LA EMPRESA NACIONAL
ERP – APLICACIÓN EN LA EMPRESA NACIONAL
 
Proceso General para Implementar un ERP
Proceso General para Implementar un ERPProceso General para Implementar un ERP
Proceso General para Implementar un ERP
 
Introducing adf business components
Introducing adf business componentsIntroducing adf business components
Introducing adf business components
 
Ránking: Qué ERP usan las 1000 empresas que más facturan
Ránking: Qué ERP usan las 1000 empresas que  más facturanRánking: Qué ERP usan las 1000 empresas que  más facturan
Ránking: Qué ERP usan las 1000 empresas que más facturan
 
CALL CENTER & WEB CENTER
CALL CENTER & WEB CENTERCALL CENTER & WEB CENTER
CALL CENTER & WEB CENTER
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best Pratices
 
Caso de estudio: Integración Empresarial Wal-Mart
Caso de estudio: Integración Empresarial Wal-MartCaso de estudio: Integración Empresarial Wal-Mart
Caso de estudio: Integración Empresarial Wal-Mart
 
Oracle dba-concise-handbook
Oracle dba-concise-handbookOracle dba-concise-handbook
Oracle dba-concise-handbook
 

Similar to An Oracle ADF Introduction

ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaEr. Sndp Srda
 
Oracle ADF Tutorial
Oracle ADF TutorialOracle ADF Tutorial
Oracle ADF Tutorial
Deepak Bhagat
 
Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009
Jaime Cid
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Michael Fons
 
Build java-ee-applications-with-adf
Build java-ee-applications-with-adfBuild java-ee-applications-with-adf
Build java-ee-applications-with-adf
Amit Sharma
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
Comparison between OAF & ADF.pptx
Comparison between OAF & ADF.pptxComparison between OAF & ADF.pptx
Comparison between OAF & ADF.pptx
ssuserb8935e
 
Jsf
JsfJsf
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
Mohamed Shahpoup
 
Best Weblogic Server Online Training
Best Weblogic Server Online TrainingBest Weblogic Server Online Training
Best Weblogic Server Online TrainingSamatha Kamuni
 
Customizing Oracle EBS OA Framework
Customizing Oracle EBS OA FrameworkCustomizing Oracle EBS OA Framework
Customizing Oracle EBS OA Framework
iWare Logic Technologies Pvt. Ltd.
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
Brian O'Gorman
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC eldorina
 
Project Rui Full Size
Project Rui Full SizeProject Rui Full Size
Project Rui Full SizeRui Zheng
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash rymarina2207
 

Similar to An Oracle ADF Introduction (20)

ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
 
Oracle ADF Tutorial
Oracle ADF TutorialOracle ADF Tutorial
Oracle ADF Tutorial
 
Adf 11
Adf 11Adf 11
Adf 11
 
Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009
 
J developer, oracle adf introduction
J developer, oracle adf   introductionJ developer, oracle adf   introduction
J developer, oracle adf introduction
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
 
Build java-ee-applications-with-adf
Build java-ee-applications-with-adfBuild java-ee-applications-with-adf
Build java-ee-applications-with-adf
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
 
Comparison between OAF & ADF.pptx
Comparison between OAF & ADF.pptxComparison between OAF & ADF.pptx
Comparison between OAF & ADF.pptx
 
Ziad Resume_New
Ziad Resume_NewZiad Resume_New
Ziad Resume_New
 
Jsf
JsfJsf
Jsf
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADFGreate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
 
Best Weblogic Server Online Training
Best Weblogic Server Online TrainingBest Weblogic Server Online Training
Best Weblogic Server Online Training
 
Single Page Application
Single Page ApplicationSingle Page Application
Single Page Application
 
Customizing Oracle EBS OA Framework
Customizing Oracle EBS OA FrameworkCustomizing Oracle EBS OA Framework
Customizing Oracle EBS OA Framework
 
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
AD303: Building Composite Applications for IBM Workplace Collaboration Servic...
 
Design patterns
Design patternsDesign patterns
Design patterns
 
ASP .NET MVC
ASP .NET MVC ASP .NET MVC
ASP .NET MVC
 
Project Rui Full Size
Project Rui Full SizeProject Rui Full Size
Project Rui Full Size
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash ry
 

Recently uploaded

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

An Oracle ADF Introduction

  • 1. Powerful Enterprise Rich Internet Application Development with ADF An Oracle Application Development Framework Introduction
  • 2. Jean-Marc Desvaux Head of Information Systems GENERAL CONSTRUCTION CO.LTD @jmdesvaux
  • 4. Common Enterprise Web App Architecture CLIENT (Browser or Mobile App or Web Service consumer) Web Tier (HTTP Server/SSO Agent/.. ) Business Tier / App Server (JEE server/ASP.NET server/..) Data Store/Data services Tier (RDBMS/NoSQL Databases/Web Services/..) ADF technology footprint on both the Server side (App server) and on the Client side
  • 5. ADF is a Java EE Framework implementing an MVC architectural pattern with the support of an Integrated Development Environment (IDE)
  • 6. A Framework is a structure intended to serve as a support or guide for the building of something that expands the structure into something useful. Use those blocks, don’t redesign and rebuild them each time
  • 7. The MVC Pattern (Model View Controller) separates th implementation of the : -UI (View) Interface, Adaptive Rendering, Skinning/Look&Feel -Application Flow & business logic between UI and Data (Controller) Event handling, page navigation/flow -Data (Model) ORM, Operations, Validation There are many frameworks out there for each layer to help implement them Typically JavaScript HTML --------- Controller Servlet ---------- Java (EJB,JPA, Hibernate, Spring)
  • 8. MVC Architecture can be complex and requires heavy background work to : - Standardize design and coding - Design for Reusability - Control code quality to prevent anti-patterns (not compliant with pattern, coding in wrong place) - Master each MVC layer sub-frameworks
  • 9. The ADF value : Coupled with an IDE (Jdeveloper or Eclipse+OEPE), It brings together for you a number of standards & sub-frameworks which it extends to provide an end-to-end, metadata-driven framework to help you build Business Applications with more productivity, quality and ease of maintenance. It is sometimes qualified as a meta-framework
  • 10. The MVC Pattern the ADF way: View: ADF Faces Based on JSF Standard. JavaScript & Ajax based components, latest components set known as Alta UI Controller : ADF Faces Controller Extending JSF (2.0) to improve capabilities, Task flows concepts to go beyond pages flow controls. Model : ADF BC (Business Services) Defines objects that map to database tables (ORM), manage data & business logic validation, coordinates M/D, provides default operations (commit, delete, insert, update) ADF Model (Bindings) Abstract the Business service attributes and actions implementation to the View layer. The Glue between the View and the Business services ADF Faces --------- ADF Controller ---------- ADF Model ---------- ADF BC
  • 12. ADF BC APPLICATION MODULE(S) View Objects Instances & Transaction Container (Each defines the Transaction boundary for committing or rollback) SERVICEApplicationModuleImpl class (access & manage VOs, custom method/oper) VIEW OBJECTS & View Links Application-specific view of records queried into Entity Objects, View Links define relationships between View Objects EO EXPOSUREViewObjectImpl (execute query,..), ViewRowImpl classes (set attrib.) ENTITY OBJECTS & Associations Mapped Database Data Model (Object-Relational Mapping), data types mapping Associations define relationships between Entities Objects, Act as DB records Cache CACHEEntityImpl class (create(), remove(), do_DML(),..) One runtime instance for each EO, VO or AM; You can hook into these classes to add custom code
  • 13. Adding Business components to a new Application (choosing to create from Tables) You will be prompted to enter a database connection configuration & once connected you will be driven by a wizard to quickly create your business components. Once completed, you will create an Application Module by selecting the Business components to be used by your Application
  • 15. BINDINGS Created on Drag and drop from Data Control Panel onto a Page. Types (Depending on UI Component) : Attribute, Tree, Action, Method, List Bindings UI components reference the binding using Expression Language (EL) DATA CONTROLS Abstraction of Business Service (XML definitions of the Service) DC created automatically when you create Business Components in ADF Exposed in the IDE via the Data Control Panel ADF MODEL The “glue” between the View Layer and the Business services Business Services exposed consistently and UI components capable of binding to this Business Service Abstraction. UI does not depend on how the Business Service is implemented.
  • 16. Drag & Drop ADF Bindings creation thru drag & drop
  • 17. ADF Bindings View in JDeveloper thru the page editor bindings tab. An Executable is an Iterator (pointer) to the current data object, basically bindings using the same iterator will refer to the same row of the data control exposed in a Collection Object (Table). You can also add, delete or edit the bindings
  • 19. Business ServicesADF Page #{Binding Expression} for a page component (text item, button,..) referencing a value or action or Iterator binding using EL (Expression Language) ADF Model (Binding Context) Binding Container Action bindings Value bindings iterator bindings Data Control Data Control ADF BC Application Module EJB Session Bean
  • 21. ADF FACES - Oracle’s offering of JSF components - Provides Visual UI components (Input Text, button,..) - Provides Layout components (to organize application page real- estate utilisation) - Provides Drag & drop, popup dialogs, page templates,… - Developer works with components & is protected from components implementation details => future-proofing of the component used : >New display devices, evolution of markup languages
  • 22. ADF FACES - UI specific code in managed beans (java classes managed by JSF) - EL (Expression Language) allowing UI component to refer to a java bean associated with the application Ex : #{mybean.myValue} for managed bean mybean & a call to getMyValue() accessor in the bean. - EL is mainly to hook up UI components to the framework class that implements the binding to the business service
  • 25. ADF FACES – Alta UI components
  • 27. ADF Controller - Navigation Cases (Application Flow) - Page Life Cycle enriched - Task Flows - Regions - Page fragments - Popups - Partial Page Rendering
  • 28. ADF Task Flows - Unbounded Task Flow Any page in the TF can be accessed directly - Bounded Task Flow Reusable flow that can be referenced by any other Task Flow, bounded or not. Can receive and return Parameters. Task Flow are a set of Activities with a defined flow between each Activity, called a control flow Activities can be a View (Page), a Method Call, a Router activity (conditional flow routing), a Task Flow Call. Instead of pages, we can create TF with page fragments which can be displayed in a page Region
  • 30. Creating a simple ADF application in 10mns Data exposed in this sample is not real and is for test purpose only
  • 32. SINGLE ORACLE DATABASE INSTANCE GCC Information Eco-system Across Project or for a specific Project only
  • 33. Requirements • Ensure continuous Development to keep adding value to the business • Growth intention : more modules as we go • Foundation for sustainable App development • Be able to move slowly from one version to another and have in transition periods coexistence of different Framework versions • Grasp Framework enhancements in new versions to add value globally to all Apps with minimum impact and with progressive updates of our Apps • Protect Development Investment
  • 34. Requirements • Be able to enable Apps services to any new Project as from day one. • Frequent Access Control reviews as and when new Projects are allocated to GCC and resources are reallocated from one project to another with different Job roles/functions. • Be able to achieve fine-grained security for who can do what on each specific Project. • Drive Security declaratively thru a specific App
  • 36. GCC Apps Main Menu for Project-Centric Applications Module Access and fine-grained security driven by Project & App User
  • 37. GCC Apps Navigation Panel & Page Template for Project-Centric Applications
  • 38. App with Alta skin Modernizing with new skins and new Components
  • 39. GCC Apps Responsiveness Sample Data exposed in this sample is not real and is for test purpose only
  • 40. It was maybe a bit condensed but it was hard to give you a good insight without going through this minimum information. Hope you’ve managed to grab something & that you enjoyed it…
  • 41. Resources to start with ADF https://www.youtube.com/user/ADFInsiderEssentials https://www.youtube.com/user/adfarchtv http://www.oracle.com/technetwork/developer-tools/adf/overview/index.html Insider Essentials & Architecture TV YouTube channels Oracle Technology Network ADF section