Wednesday, 3 February 2016

Introduction to Oracle ADF Framework

Welcome to enterprise development. In this section, I will try to detail about one of the Java EE platform Rapid Development Framework provided by Oracle, known as Oracle Application Developer Framework, in short, ADF.

One question may arise here, Why ADF, we have many popular frameworks like Spring, Primefaces, MyFaces etc. Then why dive into this new technology ?

Well, the answer is quite subjective. It depends on the usage of the Java EE stack and the complexity of the application to be built, the interface that needs to be designed etc. Based on the usage, different framework suits different development needs.

Rather going into this discussion, we'll look into the features that ADF provides.

What is Oracle ADF ?

Oracle ADF is an extensible end to end Java EE framework. Let's look at the features ADF provides.

Features at a glance

  1. ADF is based on Java platform and works on MVC Design pattern.
  2. ADF is more like a meta-data driven tool which encapsulates the basic low level architecture of different systems. So, developers are free from the hassles of wiring different technologies together and can concentrate on the business layer.
    For example, if you are using Primefaces, Spring and Hibernate in conjunction, you have to wire these three different technologies as mentioned in this article. But for ADF, this is completely done in a declarative and visual approach.
  3. ADF provides visual and declarative development experience.
  4. ADF provides more than 150 rich AJAX based  UI components which can be wired to the business services easily.
  5. Clear separation between the business layer and the presentation layer is notable in ADF.
  6. ADF can be used to develop different applications targeting different platforms like web browser based application, mobile device application, desktop application.
  7. ADF also provides built-in security features for easily handling the application's security needs.
  8. All these a developer can do using drag and drop components available with Oracle JDeveloper or using manual coding.
  9. ADF also provides high level of customization. In case, your application needs some sort of customization in it, you are free to customize any component.
You may wonder how ADF handles all this things. Well, let's look into its architecture from a ver high level. We'll get into these parts as we'll be going through them.

High Level Architecture

Oracle ADF clearly separates different layers as follows,
  1. The model layer which is responsible for the data of UI
  2. The view layer which is responsible for the User Interaction, basically facilitating the user to view and modify the data.
  3. The controller layer which holds accountability for page navigation and page navigation outcomes.
  4. Business Service layer which handles the data access and business logic.
Image Courtesy: Oracle

Oracle JDeveloper

To facilitate the development of Oracle ADF Applications, we need to use an IDE for the development to be smooth. Oracle provides the Oracle JDeveloper for this purpose. Oracle JDeveloper is the tool for Oracle Fusion Middleware stack. Using JDeveloper, we can easily build fusion applications using declarative and visual approach. JDeveloper also comes with an integrated Weblogic Server to facilitate the deployment of ADF Applications. We'll be using this tool for our learning purpose.

All that said, let's look at the customer success stories,

Now, let's come to the point where you may raise questions.

Is ADF Open Source ?
Well, ADF is not open source. ADF comes with a license fee for commercial development.
Interested reader can check the price list.
However, Oracle has stripped down the ADF and provided this as open source. It is known as ADF Essentials. For details, check this FAQ.

So, that's all about Oracle ADF in a very high level context. In our next discussion, we'll be looking into the development environment set-up.

1 comment:

  1. Hello sir, I'm preparing for Oracle ADF 1z0-554 exam. I'm a fresher and I gave the exam once but failed I'm giving it again next week.ive a set of questions that appeared in the exam for which i dont know the exact answers.can you help me with this?