Oracle Applications Development Framework, aka ADF, is an MVC (Model, View and Controller) design pattern based Oracle framework that can be used to build rich Java EE applications. You can build robust and easily maintainable applications that follow standard design patterns and meet foolproof software application requirements. This post gives a glimpse of what is ADF and benefits that developers could derive using ADF for building applications.
Oracle ADF also provides infrastructure to implement SOA based applications and brings in most of the software infrastructure libraries along minimizing the need to write code allowing developers to just focus on the features of application development.
Oracle ADF implements the MVC (Model, View and Controller) design pattern and covers all the layers of this architecture. Extending beyond the core Web based MVC approach, ADF can talk to Web services of type SOAP and REST. For example, Oracle ADF applications can be exposed as service by adding a built-in service wrapper over the business service components.
Usually an MVC application has three layers in it. A model layer that encapsulates business logic and communication to data-sources, View layer deals with application user interface and the Controller layer that responds to user actions and deals with application flow. Developing applications using MVC approach and dividing into these three layers simplifies maintenance and reusability of components. This decoupled nature of each layer results in Service Oriented Architecture (SOA), that enhances scalability.
As shown in below picture (barrowed from Oracle ADF documentation), Oracle ADF implements MVC and further separates the model layer from the business services. Oracle ADF architecture is divided into four layers.
Business Services layer – provides access to different types of data sources, and handles business logic.
Model layer – Encapsulates the Business Services layer, enabling the View and Controller layers to work with different implementations of Business Services.
The Controller layer – controls the flow of the application as per user actions and resulting responses.
The View layer – This consists the user interface of the application.
The diagram above shows the various options that developers can choose while building applications using ADF. Oracle ADF model layer bring is flexibility by integrating different components of Java EE applications. For example business services can be created out of EJB, Web Services, JavaBeans, etc.. View layers can be developed using JSF, Desktop Swing applications and MS Office front ends.