The ADF Architecture

The Oracle Application Development Framework (ADF) is an end-to-end application framework that builds on Java Platform, Enterprise Edition (Java EE) standards and open-source technologies. It abstracts Java EE complexity and provides developers a declarative and visual development.

The Oracle ADF implements the Model-View-Controller (MVC) design pattern and offers an integrated solution that covers all the layers of this architecture with solution to such areas as: Object/Relational mapping, data persistence, reusable controller layer, rich Web user interface framework, data binding to UI, security and customization. Extending beyond the core Web based MVC approach, ADF also integrates with the Oracle SOA and WebCenter Portal frameworks simplifying the creation of complete composite applications.

The Oracle ADF architecture is based on four layers:

The Business Services layer:

  • It simply provides the access to data from various sources and handles the core business logic.
  • ADF has its own technology for this layer and we call this part as ADFbc (ADF Business Components). ADFbc facilitates backend service for query, create, update, delete operations and provide lot of features to implement validations and business logic.
  • This layer also can be implemented by
    • Simple Java Classes
    • EJB
    • Web Services
    • BAM
    • BPEL
    • Portlets etc.

The Model layer:

  • This layer connects the business services to the objects that use them in the other layers.
  • Oracle ADF provides a model layer implementation that sits on top of business services, providing a single interface that can be used to access any type of business services listed above.
  • It consists of two components, data controls and data bindings.
    • Data controls abstract the business service implementation details from clients.
    • Data bindings expose data control methods and attributes to UI components, providing a clean separation of the view and model.

The Controller layer:

  • This layer provides a mechanism to control the flow of the Web application and handles user input.
  • For example, when you click a Search button on a page, the controller determines what action to perform (do a search) and where to navigate to (the results page).
  • We have two controller options in JDeveloper.ADF Controller provides an enhanced navigation and state management model on top of JSF.
    • The standard JSF controller
    • The ADF Controller
  • JDeveloper allows you to declaratively create task flows where you can pass the application control between different types of activities, such as pages, methods on managed beans, case statements, or calls to other task flows.

 The View layer:

  • The view layer is the top most layer, that user sees and interacts with.
  • It contains the UI pages used to view or modify that data.
  • For Web based interface Oracle ADF offers a rich set of over a 150 Ajax enabled JSF components that simplified the creation of dynamic and appealing user interfaces.
  • It also supports Apache myfaces Trinidad components, Java and ADF Swing components and also has ADF Mobile components that are specifically built for Mobile applications.