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.
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
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
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
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