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:

For definitions of unfamiliar terms found in this and other books, see the Glossary.

1.1 About Oracle ADF

You can use Oracle Application Development Framework (Oracle ADF) to simplify the development of interactive, databound web applications, known as Fusion web applications (or simply ADF applications). Applications built with Oracle ADF follow Java EE standards and integrate with the Oracle Fusion Middleware stack.

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 a commercial Java framework for building enterprise applications. It supports rapid application development based on ready-to-use design patterns, metadata-driven and visual tools.

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 Introduction to Oracle Fusion Middleware in Understanding Oracle Fusion Middleware.

1.3 Oracle ADF Key Components

Oracle ADF architecture is based on Model-View-Controller (MVC) design pattern that consists of four layers – Model, View, Controller, and Business Services. Separating applications into these layers helps in the maintenance and reusability of components across applications.

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.

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 Faces components supports recent and popular smart phones and tablets, such as Apple iPad, Samsung Galaxy S5 phones, and so on. To support older devices or feature phones that run basic HTML browsers, use the ADF Mobile browser technology. This technology uses Apache MyFaces Trinidad components to build the user interface.

This guide does not cover the ADF Mobile browser technology. For more information, see Overview of Oracle ADF Mobile Browser in Developing Oracle ADF Mobile Browser Applications. For information about supported mobile browsers, see "Certification Information" at http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html.

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 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.8 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

The Oracle JDeveloper IDE provides the design time and runtime support to fully develop, run, and debug ADF applications. Although no other tools are required, JDeveloper integrates with plug-ins designed to support additional ADF functionality.

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 Introduction to Building Fusion Web Applications with Oracle ADF in Developing Fusion Web Applications with Oracle Application Development Framework. For information on JDeveloper features that are not specific to Oracle ADF, see Introduction to Oracle JDeveloper in Developing Applications with Oracle JDeveloper.

Note:

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 Installing ADF Desktop Integration in Developing Applications with Oracle ADF Desktop Integration.

For designing and modifying ADF skins, you can use the editors provided in JDeveloper. For more information, see Working with ADF Skins in JDeveloper in Developing ADF Skins.

Note:

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.