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

An Oracle ADF Introduction

  • 1.
    Powerful Enterprise RichInternet Application Development with ADF An Oracle Application Development Framework Introduction
  • 2.
    Jean-Marc Desvaux Head ofInformation Systems GENERAL CONSTRUCTION CO.LTD @jmdesvaux
  • 3.
  • 4.
    Common Enterprise Web App Architecture CLIENT (Browseror 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 aJava EE Framework implementing an MVC architectural pattern with the support of an Integrated Development Environment (IDE)
  • 6.
    A Framework isa 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 canbe 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 Patternthe 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
  • 11.
  • 12.
    ADF BC APPLICATION MODULE(S) ViewObjects 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 componentsto 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
  • 14.
  • 15.
    BINDINGS Created on Dragand 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 Bindingscreation thru drag & drop
  • 17.
    ADF Bindings Viewin 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
  • 18.
  • 19.
    Business ServicesADF Page #{BindingExpression} 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
  • 20.
  • 21.
    ADF FACES - Oracle’soffering 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 - UIspecific 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
  • 23.
  • 24.
  • 25.
    ADF FACES –Alta UI components
  • 26.
  • 27.
    ADF Controller - NavigationCases (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
  • 29.
  • 30.
    Creating a simpleADF application in 10mns Data exposed in this sample is not real and is for test purpose only
  • 31.
  • 32.
    SINGLE ORACLE DATABASEINSTANCE GCC Information Eco-system Across Project or for a specific Project only
  • 33.
    Requirements • Ensure continuousDevelopment 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 ableto 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
  • 35.
  • 36.
    GCC Apps MainMenu for Project-Centric Applications Module Access and fine-grained security driven by Project & App User
  • 37.
    GCC Apps NavigationPanel & Page Template for Project-Centric Applications
  • 38.
    App with Altaskin Modernizing with new skins and new Components
  • 39.
    GCC Apps ResponsivenessSample Data exposed in this sample is not real and is for test purpose only
  • 40.
    It was maybea 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 startwith 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