Oracle Application Development Framework: My perspective
Introduction
Java EE is a standard, robust, scalable, and secure platform
that forms the basis for many of today’s enterprise applications. Java EE
provides a set of specifications for building multi-tier applications using the
Java language.
In the past, there has been a direct correlation between the
robust natures of an application and the complexity required to achieve it.
However, with the advent of the Oracle ADF framework, we are able to provide
the implementation of extremely rich Java EE applications, adhering to standard
patterns and practices with greatly reduced efforts. Read more about Oracle
Cloud Implementation Services
Additionally, the increased need for organizations to build
composite applications that utilize Service Oriented Architecture (SOA)
principles has forced developers to create applications that are extremely
agile. Implementing these best practices in agile applications usually involves
writing a significant amount of infrastructure code, adding another obstacle
for developers building their first Java EE application.
What is ADF?
In computing, Oracle Application Development Framework (ADF)
provides a commercial Java framework for building enterprise applications. It
provides visual and declarative approaches to Java EE development. It supports
rapid application development based on the ready-to-use design patterns,
metadata-driven and visual tools.
Oracle Application Development Framework (Oracle ADF) is an
innovative, yet mature Java EE development framework available from Oracle and
directly supported and enabled by Oracle JDeveloper 11g (and above).
To understand ADF, it is necessary to go beyond its UI
framework. Oracle ADF is “An end-to-end application framework that builds on
Java Platform, Enterprise Edition standards and open-source technologies to
simplify and accelerate implementing service-oriented applications”. The
features of ADF are listed below:
· A solution to build UI (in no time, have
various CRUDQ UI patterns/graph, customization, etc.).
· Has flexible architecture to support various
UI – Middle ware Integration.
· Provides framework to implement business
component or to integrate with other platform/technology/framework.
ADF becomes easy to learn once Framework Objective is
understood. Understanding ADF is similar to learning Spring – it requires the
understanding of architecture, core, different layers and then focusing on the
feature you are interested in (e.g. specific component/feature Spring MVC,
Batch, Security, Spring Social, Integration). Once you discover the power of
ADF, you can do wonders within few days.
ADF vs. JSF: An overall comparison
ADF
|
JSF
|
Paid Except ADF
Essentials
|
Free of cost
|
A Neat AJAX Support
within components itself
|
Depends on which
implementation of JSF you are using - Richfaces and icefaces has ajax enabled
components, while myfaces does not support AJAX within components
|
All in one IDE
|
To implement some
functionalities like chart/AJAX, you may need to use third party Jars within
Eclipse
|
Over 150+ ajax
enabled components
|
30+ JSF components
|
Supports task flows,
Meta data services
|
Does not support
|
Performance wise ADF
may be little slow as compared to classical JSF application because of rich
components.
|
Comparatively little
faster than ADF
|
Supports Mobile
application development
|
Does not support
|
Saving development time with ADF
From my personal experience, I can say that to develop simple
CRUD functionality with sorting etc. normal developer may take 1 day to
complete the screen in JSF, Jsp technologies, whereas in ADF, the same CRUD
application can be developed within 15-30 minutes. If you want to create Rich
UI in myfaces JSF/Jsp which has charts, googlemap, etc then you would need to
have the knowledge of ajax enabled java script libraries. There are over 150+
Ajax enabled components provided by ADF which drastically reduces your
development efforts to create rich UI. Overall I can say that developing
application in ADF will save around 35-40% of development time.
Use Oracle ADF when you want
Your application development to start from scratch in which you
want to have rich UI, Charts, Google Maps, Task Flows, etc.
· To create UI layer only and integrate with
existing service layer.
· To have composite layer as you are integrating
with 2 or more applications (SOA scenario – can be 2 or more independent
components) – Using ADF you can achieve Composite behavior at Application
Module level (aggregate multiple View Object), ADF business component level or
can have custom composite layer (in case application existing architecture uses
Service Bus, composite web services).
· To have rich internet UI as well as advanced
feature like – “UI Customization at Runtime” (Integrate with WebCenter), “MDS
Integration”, “Security – ADF Security Authentication”, “Responding to
Application Events”, “Customize the Application Look and Feel with Skins”,
“Partial Page Rendering (PPR) on a JSF Page” etc.
· To Integrate SFDC Cloud/any other cloud
application with your application, ADF fits very well.
· To integrate your application with Oracle EBS
R12.
· To implement any Oracle Fusion customizations.
· To have Mobile Application functionality as
well as consider future of the application (Mobile application developed in
Oracle ADF can be deployed in iOS, Android and all other popular mobile service
platforms).
When to Use (Recommendations):
· Fast Development: When you want to build application within no
time - this case will be best suited for small projects where you want to build
application quickly and look for end-to-end framework or build new UI and
integrate existing service layer. The reason for saying this is once you
understand ADF architecture/layers, you can focus on ADF feature you want to
explore.
· Migration: To migrate existing applications choosing ADF as an option
needs to be evaluated. ADF provides number of rich internet UI patterns and
helps in rapid UI development, so migrating applications for UI scenario should
be large (in terms of number of UI screens). In large applications, effort can
be drastically minimized after identifying common usability pattern. As
development scenario we can have 4 scenario stated above CRUDQ [Create, Read,
Update and Search/Query]. For better usability (similar look and feel),
Business Analyst/Usability Team can define similar look and feel. ADF has a lot
of inbuilt usability pattern for CRUDQ, which can decrease development time
drastically. Migration for small application just for UI might not be good idea
(unless you have the requirement to extend application in near future).
·
· Rich Internet and Advanced Features: Rich Internet Feature, “UI Customization at
Runtime” (Integrate with WebCenter), “MDS Integration”, “Security – ADF
Security Authentication”, “Responding to Application Events”, “Customization of
the Application Look and Feel with Skins”, “Partial Page Rendering (PPR) on a
JSF Page”.
·
· Integration: Integrate your application into a SOA by firing events from
your business components, invoke BPEL or create Human Work Flows.
We can also integrate ADF application with Oracle EBS, legacy
system and third party DBs other than Oracle. With little programming efforts
we can also integrate SFDC applications as well with ADF applications.
Oracle ADF License
Developing ADF application with ADF Essentials is free, you can
also deploy application within any application server. But ADF Essentials
provides limited components.
If you have Weblogic server license available, ADF comes along
with Weblogic license.
If you want to deploy your application in open source
application servers, you need to purchase license of ADF. For more information
on ADF license visit the Oracle website.
Oracle ADF Architecture
Oracle ADF lets developers choose the technology they prefer to
use while implementing each of the layers. The diagram below shows the various
options available for developers when building Oracle ADF applications. The
glue that integrates the various components of Java EE applications and makes
development so flexible is the Oracle ADF model layer. EJB, Web Services,
JavaBeans, JPA/EclipseLink/TopLink objects and many others can all be used as
Business Services for the Oracle ADF Model. View layers can include web based
interfaces implemented with JSF, Desktop Swing applications and MS Office front
ends, as well as interfaces for mobile devices. Learn more about: Oracle
Cloud Managed Services
Oracle ADF is based on the Model-View-Controller (MVC) design
pattern. An MVC application is separated into:
· A model layer that handles interaction with
data-sources and runs the business logic
· A view layer that handles the application user
interface
· A controller that manages the application flow
and acts as the interface between the model and the view layers
The Business Services layer - provides access to data from various sources and handles
business logic.
The Model layer - provides an abstraction layer on top of the Business
Services layer, enabling the view and controller layers to work with different
implementations of Business Services in a consistent way.
The Controller layer - provides a mechanism to control the flow of the Web
application.
The View layer - provides the user interface of the application.
Original blog source: https://www.jadeglobal.com/blog/private-oracle-adf-my-perspective
Comments
Post a Comment