What is ADF?
The Oracle Application Development Framework (Oracle ADF) is an end-to-end application framework built on Java Platform, J2EE standards and open-source technologies. Oracle ADF and JDeveloper 11g gives you an environment that covers the full development lifecycle from design to deployment, with drag-and-drop and wizard driven development, visual UI design, and many more features built in to ease large application development.
ADF follows the proven, industry wide accepted Model-View-Controller (MVC) architecture. ADF extends this MVC to one more layer - Business Service. Each layer in ADF has distinct role and specific responsibility.
- 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. We call this part as ADFv. This layer is developed using ADF Faces Rich Client components that are built on standard JSF components with lot of built-in AJAX and Web 2.0 like features. In addition to this, it also supports Apache myfaces Trinidad components, Java and ADF Swing components. It also has ADF Mobile components that are specifically built for Mobile applications.
- The controller layer processes user input and determines page navigation. With ADF, you do not write any JSP re-directs or URL calls. It is all declarative, drag-and-drop supported. We call this part as ADFc. ADFc provides an enhanced navigation and state management model on top of JSF. JDeveloper allows you to declaratively creat flows where you can pass application control between different types of pages and flows, conditionally using declarative case statements
- The model layer represents the data values related to the current view. Model is also responsibile for binding the data to the view. We call this part as ADFm. It implementes JSR-227 service abstraction called the data control. It abstracts the implementation of business service layer. In addition to ADFbc, it also supports other technologies like EJB, Web Services, CSV, POJO etc.
- The business service layer handles data access between model and DB or any other data storage. It encapsulates business logic and rules. You can use any technology for this layer. ADF has its own technology for this 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.
Article on each of these layers to follow.