SlideShare una empresa de Scribd logo
1 de 41
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

Más contenido relacionado

La actualidad más candente

Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
Abhinaw Kumar
 
An Introduction To Java Profiling
An Introduction To Java ProfilingAn Introduction To Java Profiling
An Introduction To Java Profiling
schlebu
 
0106 debugging
0106 debugging0106 debugging
0106 debugging
vkyecc1
 
Sap abap modularization interview questions
Sap abap modularization interview questionsSap abap modularization interview questions
Sap abap modularization interview questions
Pradipta Mohanty
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
guest11106b
 

La actualidad más candente (20)

Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
 
Experience and Content Fragment
Experience and Content FragmentExperience and Content Fragment
Experience and Content Fragment
 
Python Testing 101 with Selenium
Python Testing 101 with SeleniumPython Testing 101 with Selenium
Python Testing 101 with Selenium
 
An Introduction To Java Profiling
An Introduction To Java ProfilingAn Introduction To Java Profiling
An Introduction To Java Profiling
 
Asp.net basic
Asp.net basicAsp.net basic
Asp.net basic
 
OData service from ABAP CDS
OData service from ABAP CDSOData service from ABAP CDS
OData service from ABAP CDS
 
0106 debugging
0106 debugging0106 debugging
0106 debugging
 
Dynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEMDynamic components using SPA concepts in AEM
Dynamic components using SPA concepts in AEM
 
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
Curso de Enterprise JavaBeans (EJB) (JavaEE 7)
 
Sap abap modularization interview questions
Sap abap modularization interview questionsSap abap modularization interview questions
Sap abap modularization interview questions
 
Installing JDK and first java program
Installing JDK and first java programInstalling JDK and first java program
Installing JDK and first java program
 
Osgi
OsgiOsgi
Osgi
 
SAP Integration with Excel - Basic Guide
SAP Integration with Excel - Basic GuideSAP Integration with Excel - Basic Guide
SAP Integration with Excel - Basic Guide
 
Selenium Architecture
Selenium ArchitectureSelenium Architecture
Selenium Architecture
 
MVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros DeveloperMVC Architecture in ASP.Net By Nyros Developer
MVC Architecture in ASP.Net By Nyros Developer
 
ASP.NET Lecture 1
ASP.NET Lecture 1ASP.NET Lecture 1
ASP.NET Lecture 1
 
Module pool programming
Module pool programmingModule pool programming
Module pool programming
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Katalon Recorder Web Automation.pptx
Katalon Recorder Web Automation.pptxKatalon Recorder Web Automation.pptx
Katalon Recorder Web Automation.pptx
 
API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...API Integration For Building Software Applications Powerpoint Presentation Sl...
API Integration For Building Software Applications Powerpoint Presentation Sl...
 

Destacado

Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF Overview
Bahaa Farouk
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
DataNext Solutions
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
DataNext Solutions
 
Prospectiva del e commerce
Prospectiva del e commerceProspectiva del e commerce
Prospectiva del e commerce
Cinthia Duque
 
Introducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11gIntroducción a WebCenter Portal 11g
Introducción a WebCenter Portal 11g
Monte Kluemper
 
C11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERPC11CM11 EQUIPO 8 ERP
C11CM11 EQUIPO 8 ERP
JDaniel LG
 
CALL CENTER & WEB CENTER
CALL CENTER & WEB CENTERCALL CENTER & WEB CENTER
CALL CENTER & WEB CENTER
Marvin Ancona
 
ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best Pratices
Andreas 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-Mart
Coatzozon20
 

Destacado (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
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
 
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
 

Similar a An Oracle ADF Introduction

ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
Er. Sndp Srda
 
Best Weblogic Server Online Training
Best Weblogic Server Online TrainingBest Weblogic Server Online Training
Best Weblogic Server Online Training
Samatha Kamuni
 
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 Size
Rui Zheng
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash ry
marina2207
 

Similar a 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
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

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