1 Overview of Oracle ADF

This chapter provides a high-level overview of the architecture and components of Oracle Application Development Framework (Oracle ADF).

This chapter includes the following sections:

1.1 About Oracle ADF

Oracle Application Development Framework (Oracle ADF) is an end-to-end application framework that builds on Java EE standards and open-source technologies to simplify and accelerate implementing enterprise applications. Oracle ADF is suitable for enterprise developers who want to create applications that search, display, create, modify, and validate data using web, mobile, and desktop interfaces.

You can use the whole Oracle ADF framework to create an application, or you can use parts of the framework in combination with other technologies. Throughout this guide, applications that contain any ADF technologies are generally referred to as ADF applications. Web applications that incorporate ADF technologies throughout the business service, model, controller, and view layers are referred to as Fusion web applications.

1.2 Oracle ADF Key Concepts

Oracle ADF is based on the following concepts:

  • Rich component sets for web, mobile, and desktop clients

  • Declarative and reusable business logic and validation

  • Declarative data binding

  • Separation of UI-related and data-related elements (MVC architecture)

  • Enhanced page flow functionality, including modular and reusable task flows

  • Declarative security on ADF resources

  • Customer level and developer level customization through metadata

For information on the key concepts of the broader Fusion Middleware stack, see Understanding Oracle Fusion Middleware.

1.3 Oracle ADF Key Components

This section provides a synopsis of the central high-level components in the ADF stack, including some of the underlying technologies such as JavaServer Faces (JSF) as well as other business and data services that are commonly part of an application. See Figure 1-1 for a visual depiction of the overall architecture, including the model, view, and controller (MVC) components.

Figure 1-1 ADF Architecture

graphic showing layers of ADF architecture

1.3.1 ADF Model

ADF Model is a central part of Oracle ADF, enabling you to create ADF applications based on different types of business services. ADF Model implements data controls and data bindings. Data controls abstract the implementation technology of a business service by using standard metadata interfaces to describe the service's operations and data collections, including information about the properties, methods, and types involved. In Oracle JDeveloper, developers can view that information as icons that they can easily drag and drop onto a page. When the developer drags the representation of the service onto the page, Oracle JDeveloper automatically creates the bindings from the page to the services. At runtime, the ADF Model layer reads the information describing the application's data controls and data bindings from appropriate XML files and implements the two-way connection between the user interface and the application's business service.

Oracle ADF provides ready-to-use data control implementations for common business service technologies, such as the following:

  • ADF Business Components

  • Enterprise JavaBeans (EJB) session beans and JPA Persistence API entities

  • JavaBeans components

  • Web services (SOAP and REST)

1.3.2 ADF Business Components

ADF Business Components are prebuilt application objects that are based on Java EE design patterns and best practices and which simplify the development and maintenance of complex, high-performance, and database-centric services.

When building service-oriented Java EE applications, developers implement the core business logic as one or more business services. These back-end services provide clients with a way to query, insert, update, and delete business data as required while enforcing appropriate business rules such as input validators. Using ADF Business Components, you can develop such services declaratively using wizards and visual editors in JDeveloper to generate the required metadata.

When you create an ADF Business Components application module, the services that it encapsulates are exposed through ADF Model as data controls, which you can then use to create databound components on web pages and other user interfaces. For the most common use cases, you can thus create a complete application without writing any Java code.

1.3.3 ADF Controller

In the controller layer of MVC applications, ADF Controller provides an enhanced navigation and state management model on top of JSF's controller layer. Using JDeveloper, you can declaratively create task flows that can manage application control between different types of activities, such as pages, methods on managed beans, declarative case statements, or calls to other task flows. In addition, you can create bounded task flows, which are reusable task flow segments that can be called from an overall task flow.

1.3.4 ADF Faces

ADF Faces provides the view layer for ADF applications. ADF Faces is a complete view framework that consists of over 150 Ajax-enabled JavaServer Faces (JSF) components, all built on top of the JSF standard. ADF Faces also can be used as a standalone component set that works with other non-ADF controller and model technologies.

1.3.5 ADF Mobile Browser

ADF Mobile browser enables you to create application views that are optimized for browsers on small devices.

1.3.6 ADF Desktop Integration

ADF Desktop Integration enables developers to extend Fusion web applications so that end users can work with them using Microsoft Excel workbooks as a client.

1.3.7 ADF Swing

ADF Swing is a framework for developing databound Java clients that use ADF Model to access business services. You can use ADF Swing to work with a number of business services on the back end, including ADF Business Components, Enterprise JavaBeans components, and web services. This guide does not cover ADF Swing. For more information on ADF Swing, see Developing Swing Applications with Oracle Application Development Framework.

1.3.8 ADF Security

The ADF Security framework uses and extends the Oracle Platform Security Services (OPSS) architecture to simplify the securing of ADF applications and enables fine-grained access control for ADF resources such as bounded task flows.

1.3.9 Oracle Metadata Services

The Oracle Metadata Services (MDS) framework allows you to create applications that your customers can further customize for their users or customers and which the end users can also customize without touching the source code or affecting the ability of the application to be patched or updated.

1.4 Key Management Tools and Processes

You can use Oracle ADF to develop components for broader middleware applications. For an overview of the tools and processes that you might use in such an application, see "Understanding the Installation and Configuration Tools" in Understanding Oracle Fusion Middleware.

To develop ADF applications, you use Oracle JDeveloper, which is an integrated development environment (IDE) that includes design-time support for ADF features. Among other things, JDeveloper contains wizards to generate working code for your business services, generates data binding code as you visually design your user interfaces, and provides a full testing and debugging environment. In addition, Oracle JDeveloper installations include a built-in copy of WebLogic Server, which enables you to test deploy your applications. For more information on using JDeveloper to develop ADF applications, see Developing Fusion Web Applications with Oracle Application Development Framework. For information on JDeveloper features that are not specific to Oracle ADF, see Developing Applications with Oracle JDeveloper.


You can also develop ADF applications using Oracle Enterprise Pack for Eclipse (OEPE). OEPE is a set of plug-ins designed for the Eclipse IDE to support Java EE development. OEPE also includes support for ADF application development, though that support is more limited than that provided by JDeveloper. For more information, see http://www.oracle.com/technetwork/developer-tools/eclipse/overview/index.html.

For developing integrated Microsoft Excel workbooks with ADF Desktop Integration support, you need to install the ADF Desktop Integration add-in for JDeveloper. For more information, see Developing Applications with Oracle ADF Desktop Integration.

For designing and modifying ADF application skins, you can use the Oracle ADF Skin Editor. For more information, see Installing Oracle ADF Skin Editor.


You can also develop and deploy applications with a subset of Oracle ADF called Oracle ADF Essentials. Oracle ADF Essentials is a free packaging of key technologies from Oracle ADF that can be used to develop and deploy applications without licensing costs and to multiple application servers, such as GlassFish. For a list of the supported Oracle ADF Essentials features for GlassFish, go to the OTN site at http://www.oracle.com/technetwork/developer-tools/adf/overview/adfessentials-1719844.html.