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.

Earlier, there was a direct correlation between the robust nature of applications and the complexity required to achieve them. However, with the advent of the Oracle ADF framework, we can implement vibrant Java EE applications, adhering to standard patterns and practices with significantly reduced efforts.

Additionally, the increased need for organizations to build composite applications that utilize Service Oriented Architecture (SOA) principles has forced developers to create extremely agile applications. 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 Oracle ADF (Application Development Framework)?

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 ready-to-use design patterns and 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 – Middleware Integration.
  • Provides a framework to implement business components or to integrate with other platforms/technology/framework.

ADF becomes easy to learn once Framework Objective is understood. Understanding ADF is similar to learning Spring – it requires understanding architecture, core, and 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 a 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 a little slow compared to classical JSF applications because of its 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 and JSP technologies. In contrast, the same CRUD application can be developed within 15-30 minutes in ADF. If you want to create Rich UI in myfaces JSF/Jsp, which has charts, google maps, etc., you must know Ajax-enabled javascript libraries. There are over 150+ Ajax-enabled components provided by ADF, drastically reducing your development efforts to create rich UI. Overall, developing applications 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 a UI layer only and integrate it with the existing service layer
  • To have a 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 the Application Module level (aggregate multiple View Object), ADF business component level or can have a custom composite layer (in case application existing architecture uses Service Bus, composite web services)
  • To have rich internet UI as well as advanced features 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 the 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 an application within no time - this case will be best suited for small projects where you want to build an application quickly and look for an end-to-end framework or build a new UI and integrate an existing service layer. The reason for saying this is once you understand ADF architecture/layers, you can focus on the ADF feature you want to explore.

• Migration:

To migrate existing applications choosing ADF as an option needs to be evaluated. ADF provides several rich internet UI patterns and helps in rapid UI development, so migrating applications for UI scenarios should be large (in terms of the number of UI screens). The effort can be drastically minimized in large applications after identifying common usability patterns. As a development scenario, we can have 4 scenarios stated above CRUDQ [Create, Read, Update, and Search/Query]. For better usability (similar look and feel), the Business Analyst/Usability Team can define a similar look and feel. ADF has many inbuilt usability patterns for CRUDQ, which can drastically decrease development time. Migration for small applications just for UI might not be a good idea (unless you have the requirement to extend the application in the 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 an SOA by firing events from your business components, invoking BPEL, or creating Human Work Flows.

We can also integrate the ADF application with Oracle EBS, legacy systems, and third-party DBs other than Oracle. With little programming effort, we can integrate SFDC applications with ADF applications.

Oracle ADF License

Developing an ADF application with ADF Essentials is free, and you can also deploy the application within any application server. But ADF Essentials provides limited components.

If you have a Weblogic server license, ADF comes along with a Weblogic license.

If you want to deploy your application in open-source application servers, you need to purchase a license ADF. For more information on ADF, and licenses, visit the Oracle website.

Oracle ADF Architecture

each of the layers. The diagram below shows the various options available for developers when building Oracle ADF applications. The Oracle ADF model layer is the glue that integrates the various components of Java EE applications and makes development so flexible. 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.

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

The Controller layer - provides a mechanism to control the flow of the Web application.

The View layer - provides the user interface of the application.

Sources

http://www.oracle.com/technetwork/developer-tools/adf/
http://technology.amis.nl
http://docs.oracle.com
http://shishirkumarblog.wordpress.com
http://www.oracle.com/technetwork/developer-tools/jdev/overview/index-100269.html

Read the blog: Get in the Mobile App Game with Oracle ADF

About the Author

Jade Consultancy Team

Rohit Majithia

Senior Consultant

My name is Rohit Majithia and I am a Senior Consultant at Jade Global Software Pvt. Ltd.

My motivation for writing this article is simple: My experience with ADF. I have developed Java Web applications with a range of other frameworks and libraries. I have been a part of various debates about which tools, IDEs, frameworks and technologies to use in projects. I have seen the struggle of many Java developers to find their way through rapidly evolving Java frameworks and to become productive.

I have also worked in JSF and spring frameworks. From my experience I can say that ADF is the best among all the available frameworks even though it is a paid framework (except the ADF Essentials).

How Can We Help You?