Thursday, June 4, 2015

Oracle ADF Architecture Overview

Oracle ADF (Application Development Framework) is an end-to-end Java EE framework from Oracle that built on top of the MVC based JSF (Java Server Faces) framework. It simplifies application development by providing out-of-the-box infrastructure services and providing a visual & declarative development experience. ADF is directly supported and enabled by Oracle JDeveloper IDE. ADF forms are the foundation for WebCenter Portal's components and services.

By using oracle ADF, web applications development, ADF desktop applications development, Java SOA applications development and adf mobile applications development have become much more fast and productive with new functions.

Benefits of Oracle ADF:

Some of ADF benefits are mentioned below

  • ADF provides unified access to back-end technologies like databases, web services, XML, CSV, BPEL, and many more technologies.
  • ADF provides data binding to connect UI (User Interface) with back-end data controls.
  • ADF provides more than 100 data aware JSF view components. ADF Faces includes data visualization components, which are Flash- and PNG-enabled components capable of rendering dynamic charts, graphs, gauges, and other graphics that provide a real-time view of underlying data.
  • By using oracle ADF, developers can choose different technologies to implement each of Oracle ADF‘s layers with same productive development experience.
  • ADF has JAAS security model which gives facilities to developers and administrators full control over all aspects of ADF application security. Developers can define users and roles and assign various authorizations to them. Privileges can be assigned at the business service layer, the controller layer or the UI layer.
  • ADF provides declarative customization and personalization of applications according to specific user requirements. A layer called MDS – MetaData Services – allows developers to customize XML definitions that Oracle ADF relies on and use different versions for different users. users can personalize the interface of their application.
  • ADF allows developers to implement modifications in business rules, page flows, page layouts and other items that ADF persist in XML format. These modifications will be applied at run time based on the user that logs into the application.
  • You can create your own look and feel by implementing skins for ADF Faces components. Oracle provides a stand-alone skin editor, where you can decoratively create and modify your skins.
  • The ADF Faces framework allows the user to move data from one location to another by dragging and dropping one component onto another.
  • The ADF Faces framework includes server-side push that allows you to provide real-time data updates for ADF Faces components.
  • ADF has Widespread Ajax support. Many ADF Faces components have ajax-style functionality implemented natively. For example, the ADF Faces table components allow the sort the table by clicking a column header, selection of one or more rows and even expand specific rows in the table, this is all done without requiring the page to be submitted to the server. This functionality is implemented as partial page rendering (PPR).
  • The ADF Faces library provides over 150 RIA ( Rich Internet Application ) components including geometry managed layout components, text and selection components, menus, sortable and hierarchical data tables and trees, in-page dialogs and general controls.

Oracle ADF (Application Development Framework) architecture

Oracle ADF implements MVC (Model-View-Controller) design patterns and further separates the model layer from the business services to enable service-oriented development of applications. Separating applications into these three layers simplifies maintenance and reuse of components across applications. The independence of each layer from the others results in a loosely coupled, Service Oriented Architecture (SOA).

The Oracle ADF architecture is consist on following four layers:

  1. The Business Services layer - provides access to data from various sources and handles business logic.
  2. 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 in a consistent way.
  3. The Controller layer - provides a mechanism to control the flow of the Web application.
  4. The View layer - provides the user interface of the application.


Oracle ADF lets developers choose the technology they prefer to use when implementing each of the layers. The ADF diagram showing above, shows various options provided for developers when building Oracle ADF applications. Oracle ADF model Layer integrates the various components of Java EE applications which makes the applications 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.

ADF View layers may consist on Web based interfaces implemented with JSF, Desktop Swing applications, MS Office front ends and interfaces for mobile devices.

The ADF Business Services Layer

The ADF Business Services layer manages interaction with a data persistence layer. It provides such services as data persistence, transaction management, object / relational mapping and business logic execution.

The Business Services layer can be implemented in Oracle ADF Business Components, Java classes, EJB, Web services and JPA objects. Data can be consumed directly from files (XML or CSV) and from REST service.

Oracle ADF Controller Layer

The ADF controller layer manages the ADF applications flow and handles user input. For example, when you click a Search button on a page, the controller determines what action to perform for a search and where to navigate the results page.

There are two controller options for web-based applications in JDeveloper:
a) Standard JSF controller
b) ADF Controller which extends the JSF controller functionality.

Whichever controller you use, you will typically design application flow by laying out pages and navigation rules on a diagram. With the ADF controller, application's flow may break into smaller, reusable task flows; include non-visual components like method calls, decision points and creation of "page fragment" flows that run inside a region of a single containing page. This approach encourages maximum reusability for user interface fragments and simplified integration into portals and mashup applications.

Oracle ADF View Layer

Oracle ADF View layer represents the application user interfaces. Oracle ADF support multi-channel access to business services allowing you to reuse your business services and access them from a Web client, a client-server swing desktop based application, Microsoft Excel spreadsheets, or a mobile devices such as a smart-phone. Oracle ADF offers a rich set of more than 150 Ajax enabled JSF components which simplified the creation of dynamic and appealing user interfaces.

Oracle ADF Model Layer

Oracle ADF model layer connects the business services to the other layers objects. ADF Model layer sits on top of business services, it provides a single access interface to any type of business service.


1 comment:

  1. Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. You’re doing a great job Man learn Oracle SOA Online Training

    ReplyDelete