This chapter includes the following sections:
For definitions of unfamiliar terms found in this and other books, see the Glossary.
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.
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.
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
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
Web services (SOAP and REST)
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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