Understanding Oracle Application Development Framework

Transcription

Oracle Fusion MiddlewareUnderstanding Oracle ApplicationDevelopment Framework12c (12.2.1.4.0)E80010-01September 2019

Oracle Fusion Middleware Understanding Oracle Application Development Framework, 12c (12.2.1.4.0)E80010-01Copyright 2013, 2019, Oracle and/or its affiliates. All rights reserved.Primary Author: Patrick Keegan (lead)Contributors: Ralph Gordon, Sandhya Sriram, Steve MuenchThis software and related documentation are provided under a license agreement containing restrictions onuse and disclosure and are protected by intellectual property laws. Except as expressly permitted in yourlicense agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify,license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means.Reverse engineering, disassembly, or decompilation of this software, unless required by law forinteroperability, is prohibited.The information contained herein is subject to change without notice and is not warranted to be error-free. Ifyou find any errors, please report them to us in writing.If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it onbehalf of the U.S. Government, then the following notice is applicable:U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software,any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are"commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agencyspecific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of theprograms, including any operating system, integrated software, any programs installed on the hardware,and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.This software or hardware is developed for general use in a variety of information management applications.It is not developed or intended for use in any inherently dangerous applications, including applications thatmay create a risk of personal injury. If you use this software or hardware in dangerous applications, then youshall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure itssafe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of thissoftware or hardware in dangerous applications.Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks oftheir respective owners.Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks areused under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron,the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced MicroDevices. UNIX is a registered trademark of The Open Group.This software or hardware and documentation may provide access to or information about content, products,and services from third parties. Oracle Corporation and its affiliates are not responsible for and expresslydisclaim all warranties of any kind with respect to third-party content, products, and services unless otherwiseset forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not beresponsible for any loss, costs, or damages incurred due to your access to or use of third-party content,products, or services, except as set forth in an applicable agreement between you and Oracle.

ContentsPrefaceAudienceviiiDocumentation AccessibilityviiiRelated DocumentsviiiConventionsixWhat's New in This GuideNew and Changed Features for Release 12c (12.2.1.4.0)Part I1Introduction to Oracle ADFOverview of Oracle ADFAbout Oracle ADF1-1Oracle ADF Key Concepts1-1Oracle ADF Key Components1-2ADF Model1-3ADF Business Components1-3ADF Controller1-3ADF Faces1-4ADF Mobile Browser1-4ADF Desktop Integration1-4ADF Security1-4Oracle Metadata Services1-4Key Management Tools and Processes2x1-4Overview of the Oracle ADF Process FlowOracle ADF High-Level Process Flow2-1Using Oracle ADF to Create a Rich Enterprise Application2-5iii

Part II3Oracle ADF Back-end ComponentsADF ModelAbout ADF Model3-1Core Benefits of ADF Model3-2Key Concepts of ADF Model3-3Abstraction of the Application's Model Layer3-3Declarative Data Binding3-5Key Components of ADF Model3-6Data ControlsAdapter Data Controls3-6ADF Business Components3-7Declarative Bindings3-7ADF Model at Runtime3-8Overview of the ADF Model Process Flow3-9Development Steps for Using ADF Model with ADF Business Components3-9Development Steps for Using ADF Model with non-ADF Business Services3-10Learning More About ADF Model43-63-10ADF Business ComponentsAbout ADF Business Components4-1Core Benefits of ADF Business Components4-2Key Concepts of ADF Business Components4-3Implementation of Business Services4-3Based on Standard Java and XML4-4Application Server and Database Independence4-6Support for Java EE Design Patterns4-6Declarative Metadata for Implementation Classes4-6Optional Custom Java Code4-7Ability to Expose Services to SOA Applications4-7Application State Management4-7Key Components of ADF Business ComponentsEntity Objects4-74-8Entity Object Definition Files4-8Ways to Configure Entity Objects4-9Entity Associations4-9View Objects4-9Types of View Objects4-10View Object Definition Files4-11iv

Ways to Configure View Objects5View Links4-11Application Modules4-12Types of Application Modules4-13Application Module Definition Files4-13Service-enabled Application Modules4-13Application Module Pooling4-14Application State Management4-15Overview of the ADF Business Components Process Flow4-15Learning More About ADF Business Components4-16ADF Controller Task FlowsAbout ADF Controller5-1Core Benefits of ADF Controller5-2Key Concepts of ADF Controller5-3Key Components of ADF Controller5-3Unbounded Task Flows5-4Bounded Task Flows5-4Task Flow Activities5-5Task Flow Templates5-6Save Points5-6Integration with pageFlowScope, backingBeanScope, and viewScope5-7Integration with the ADF Faces Train Component5-7Integration with the ADF Faces Region Component5-7Overview of the ADF Controller Process Flow5-8Learning More About ADF Controller5-8Part III64-11Oracle ADF View TechnologiesADF FacesAbout ADF Faces6-1Core Benefits of ADF Faces6-2Key Concepts of ADF Faces6-3Key Components of ADF Faces6-6Overview of the ADF Faces Process Flow6-7Learning More About ADF Faces6-8v

7ADF Desktop IntegrationAbout ADF Desktop Integration7-1Core Benefits of ADF Desktop Integration7-2Key Concepts of ADF Desktop Integration7-2Integration with Microsoft Excel7-3Integration with ADF Page Definition Files7-3Runtime Synchronization with Fusion Web Applications7-3Security for Integrated Excel Workbooks7-4Key Components of ADF Desktop IntegrationTable-Type Components7-5Form-Type Components7-5Action Sets7-5Overview of the ADF Desktop Integration Process Flow7-6Learning More About ADF Desktop Integration7-7Part IV8Oracle ADF Security, Customization, and DeploymentADF Security FrameworkAbout the ADF Security Framework8-1Core Benefits of ADF Security8-3Key Concepts of ADF Security8-4Authentication and Authorization8-4Application Roles8-4Security Policies8-4Security Awareness in ADF Resources8-4Key Components of ADF Security97-58-5Design-Time Integration With OPSS8-5ADF Security-Aware Resources8-6ADF Authentication Servlet8-7ADF Security Context8-7Overview of the ADF Security Process Flow8-7Learning More About ADF Security8-8Oracle Metadata ServicesAbout Oracle Metadata Services (MDS)9-1Core Benefits of MDS9-2Key Concepts of MDS9-3Key Components of MDS9-4vi

10Overview of the MDS Process Flow9-5Learning More About MDS9-5Deployment of Applications Containing Oracle ADF FeaturesAbout Deployment of Applications that Contain Oracle ADF Features10-1Key Concepts of Deploying ADF Applications10-1Test Deployment with Integrated WebLogic Server10-1Deployment Tools10-2Test Deployment on a Standalone Server10-2Key Components of Deploying ADF Applications10-210-2ADF Runtime Libraries10-2Overview of the ADF Application Deployment Process Flow10-2Learning More About Deploying ADF Applications10-4Part VAEnterprise Archive (EAR) FileAppendixADF Business Components and Familiar 4GL ToolsComparison to PeopleToolsA-1Comparison to Siebel ToolsA-3Comparison to ADO.NETA-4vii

PrefacePrefaceWelcome to Understanding Oracle Application Development Framework.AudienceThis document is intended for enterprise developers who need an overview of thetechnologies encompassed by the Oracle Application Development Framework(Oracle ADF). This guide outlines the components and explains the concepts behindADF Model, ADF Business Components, ADF Controller, ADF Faces, ADF Security,ADF Desktop Integration, and other parts of the ADF technology stack.Documentation AccessibilityFor information about Oracle's commitment to accessibility, visit the OracleAccessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx acc&id docacc.Access to Oracle SupportOracle customers that have purchased support have access to electronic supportthrough My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx acc&id info or visit http://www.oracle.com/pls/topic/lookup?ctx acc&id trs if you are hearing impaired.Related DocumentsFor more information, see the following documents: Developing Fusion Web Applications with Oracle Application DevelopmentFramework Developing Web User Interfaces with Oracle ADF Faces Developing Applications with Oracle ADF Data Controls Developing Applications with Oracle JDeveloper Developing ADF Skins Administering Oracle ADF Applications Developing Applications with Oracle ADF Desktop Integration Tuning Performance High Availability Guide Installing Oracle JDeveloper Oracle JDeveloper Online Helpviii

Preface Oracle JDeveloper Release Notes, included with your JDeveloper installation, andon Oracle Technology Network Java API Reference for Oracle ADF Model Java API Reference for Oracle ADF Controller Java API Reference for Oracle ADF Lifecycle Java API Reference for Oracle ADF Faces Java API Reference for Oracle ADF Data Visualization Components Java API Reference for Oracle ADF Share Java API Reference for Oracle ADF Model Tester Java API Reference for Oracle Generic Domains Java API Reference for Oracle Metadata Service (MDS) Tag Reference for Oracle ADF Faces Tag Reference for Oracle ADF Faces Skin Selectors Tag Reference for Oracle ADF Faces Data Visualization Tools Tag Reference for Oracle ADF Data Visualization Tools Skin SelectorsConventionsThe following text conventions are used in this document:ConventionMeaningboldfaceBoldface type indicates graphical user interface elements associatedwith an action, or terms defined in text or the glossary.italicItalic type indicates book titles, emphasis, or placeholder variables forwhich you supply particular values.monospaceMonospace type indicates commands within a paragraph, URLs, codein examples, text that appears on the screen, or text that you enter.ix

What's New in This GuideWhat's New in This GuideFor Release 12c (12.2.1.4.0), this guide has not been revised.For other changes made to Oracle JDeveloper and Oracle Application DevelopmentFramework (Oracle ADF) for this and previous releases, see the What's New page onthe Oracle Technology Network at dev/documentation/index.html.New and Changed Features for Release 12c (12.2.1.4.0)For Release 12c (12.2.1.4.0), the guide has not been revised.For other changes made to Oracle JDeveloper and Oracle Application DevelopmentFramework (Oracle ADF) for this release, see the What's New page on the OracleTechnology Network at jdev/documentation/index.html.x

Part IIntroduction to Oracle ADFThis part provides an overview of the architecture of Oracle Application DevelopmentFramework (Oracle ADF) and the process that developers follow when Oracle ADF isused to build an ADF application.Part I contains the following chapters: Overview of Oracle ADF Overview of the Oracle ADF Process Flow

1Overview of Oracle ADFThis chapter provides a high-level overview of the architecture and components ofOracle Application Development Framework (Oracle ADF).This chapter includes the following sections: About Oracle ADF Oracle ADF Key Concepts Oracle ADF Key Components Key Management Tools and ProcessesFor definitions of unfamiliar terms found in this and other books, see the Glossary.About Oracle ADFYou can use Oracle Application Development Framework (Oracle ADF) to simplify thedevelopment of interactive, databound web applications, known as Fusion webapplications (or simply ADF applications). Applications built with Oracle ADF followJava EE standards and integrate with the Oracle Fusion Middleware stack.Oracle Application Development Framework (Oracle ADF) is an end-to-end applicationframework that builds on Java EE standards and open-source technologies to simplifyand accelerate implementing enterprise applications. Oracle ADF is suitable forenterprise 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 useparts of the framework in combination with other technologies. Throughout this guide,applications that contain any ADF technologies are generally referred to as ADFapplications. Web applications that incorporate ADF technologies throughout thebusiness service, model, controller, and view layers are referred to as Fusion webapplications.Oracle ADF Key ConceptsOracle ADF is a commercial Java framework for building enterprise applications. Itsupports 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 flows1-1

Chapter 1Oracle ADF Key Components Declarative security on ADF resources Customer level and developer level customization through metadataFor information on the key concepts of the broader Fusion Middleware stack, seeIntroduction to Oracle Fusion Middleware in Understanding Oracle Fusion Middleware.Oracle ADF Key ComponentsOracle ADF architecture is based on Model-View-Controller (MVC) design pattern thatconsists of four layers – Model, View, Controller, and Business Services. Separatingapplications into these layers helps in the maintenance and reusability of componentsacross applications.This section provides a synopsis of the central high-level components in the ADFstack, 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-1ADF Architecture1-2

Chapter 1Oracle ADF Key ComponentsADF ModelADF Model is a central part of Oracle ADF, enabling you to create ADF applicationsbased on different types of business services. ADF Model implements data controlsand data bindings. Data controls abstract the implementation technology of a businessservice by using standard metadata interfaces to describe the service's operations anddata collections, including information about the properties, methods, and typesinvolved. In Oracle JDeveloper, developers can view that information as icons thatthey can easily drag and drop onto a page. When the developer drags therepresentation of the service onto the page, Oracle JDeveloper automatically createsthe bindings from the page to the services. At runtime, the ADF Model layer reads theinformation describing the application's data controls and data bindings fromappropriate XML files and implements the two-way connection between the userinterface and the application's business service.Oracle ADF provides ready-to-use data control implementations for common businessservice 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)ADF Business ComponentsADF Business Components are prebuilt application objects that are based on Java EEdesign patterns and best practices and which simplify the development andmaintenance of complex, high-performance, and database-centric services.When building service-oriented Java EE applications, developers implement the corebusiness logic as one or more business services. These back-end services provideclients with a way to query, insert, update, and delete business data as required whileenforcing appropriate business rules such as input validators. Using ADF BusinessComponents, you can develop such services declaratively using wizards and visualeditors in JDeveloper to generate the required metadata.When you create an ADF Business Components application module, the services thatit encapsulates are exposed through ADF Model as data controls, which you can thenuse to create databound components on web pages and other user interfaces. For themost common use cases, you can thus create a complete application without writingany Java code.ADF ControllerIn the controller layer of MVC applications, ADF Controller provides an enhancednavigation and state management model on top of JSF's controller layer. UsingJDeveloper, you can declaratively create task flows that can manage applicationcontrol between different types of activities, such as pages, methods on managedbeans, declarative case statements, or calls to other task flows. In addition, you cancreate bounded task flows, which are reusable task flow segments that can be calledfrom an overall task flow.1-3

Chapter 1Key Management Tools and ProcessesADF FacesADF Faces provides the view layer for ADF applications. ADF Faces is a completeview 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 astandalone component set that works with other non-ADF controller and modeltechnologies.ADF Mobile BrowserADF Faces components supports recent and popular smart phones and tablets, suchas Apple iPad, Samsung Galaxy S5 phones, and so on. To support older devices orfeature phones that run basic HTML browsers, use the ADF Mobile browsertechnology. This technology uses Apache MyFaces Trinidad components to build theuser 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 MobileBrowser Applications. For information about supported mobile browsers, see"Certification Information" at dev/documentation/index.html.ADF Desktop IntegrationADF Desktop Integration enables developers to extend Fusion web applications sothat end users can work with them using Microsoft Excel workbooks as a client.ADF SecurityThe ADF Security framework uses and extends the Oracle Platform Security Services(OPSS) architecture to simplify the securing of ADF applications and enables finegrained access control for ADF resources such as bounded task flows.Oracle Metadata ServicesThe Oracle Metadata Services (MDS) framework allows you to create applications thatyour customers can further customize for their users or customers and which the endusers can also customize without touching the source code or affecting the ability ofthe application to be patched or updated.Key Management Tools and ProcessesThe Oracle JDeveloper IDE provides the design time and runtime support to fullydevelop, 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 OracleFusion Middleware.1-4

Chapter 1Key Management Tools and ProcessesTo develop ADF applications, you use Oracle JDeveloper, which is an integrateddevelopment environment (IDE) that includes design-time support for ADF features.Among other things, JDeveloper contains wizards to generate working code for yourbusiness services, generates data binding code as you visually design your userinterfaces, and provides a full testing and debugging environment. In addition, OracleJDeveloper installations include a built-in copy of WebLogic Server, which enables youto test deploy your applications. For more information on using JDeveloper to developADF applications, see Introduction to Building Fusion Web Applications with OracleADF in Developing Fusion Web Applications with Oracle Application DevelopmentFramework. For information on JDeveloper features that are not specific to OracleADF, see Introduction to Oracle JDeveloper in Developing Applications with OracleJDeveloper.Note:You can also develop ADF applications using Oracle Enterprise Pack forEclipse (OEPE). OEPE is a set of plug-ins designed for the Eclipse IDE tosupport Java EE development. OEPE also includes support for ADFapplication development, though that support is more limited than thatprovided by JDeveloper. For more information, see eclipse/overview/index.html.For developing integrated Microsoft Excel workbooks with ADF Desktop Integrationsupport, you need to install the ADF Desktop Integration add-in for JDeveloper. Formore information, see Installing ADF Desktop Integration in Developing Applicationswith Oracle ADF Desktop Integration.For designing and modifying ADF skins, you can use the editors provided inJDeveloper. For more information, see Working with ADF Skins in JDeveloper inDeveloping ADF Skins.Note:You can also develop and deploy applications with a subset of Oracle ADFcalled Oracle ADF Essentials. Oracle ADF Essentials is a free packaging ofkey technologies from Oracle ADF that can be used to develop and deployapplications without licensing costs and to multiple application servers, suchas GlassFish. For a list of the supported Oracle ADF Essentials features forGlassFish, go to the OTN site at adf/overview/adfessentials-1719844.html.1-5

2Overview of the Oracle ADF Process FlowThis chapter contains an overview of the process for developing an application withOracle ADF technologies and illustrates the process with a concrete use case.This chapter includes the following sections: Oracle ADF High-Level Process Flow Using Oracle ADF to Create a Rich Enterprise ApplicationOracle ADF High-Level Process FlowYou can build a Fusion web application with Oracle ADF using JDeveloper. Use thestep-by-step ADF application development process that minimizes the coding effort ofthe developer to build an application’s infrastructure and to implement complexbusiness logic of the application.At a high level, the development process for a Fusion web application usually involvesa combination of the following steps: Creating an application workspace: Using a wizard, JDeveloper automatically addsthe libraries and configuration needed for the technologies you select, andstructures your application into projects with packages and directories.Figure 2-1Applications Window in JDeveloper2-1

Chapter 2Oracle ADF High-Level Process Flow Obtaining a database schema or modeling the database objects from scratch:Within JDeveloper, you can create an offline replica of any database, and useJDeveloper editors and diagrammers to edit definitions and update schemas. Creating use cases: Using JDeveloper's UML modeler, you can create use casesfor your application. Identifying shared resources: If you have components that can be used throughoutyour application or be used by multiple applications, you can develop and packagethose components as an ADF Library JAR and then have the JAR available in theResources window for adding to your application. When using ADF Business Components, creating your own custom classes thatextend the base framework classes and then configuring the model project to baseany business components that you create on these custom classes: Even if youhave no initial plans to put custom code into these custom classes, they provide amechanism to later change base framework behavior and have those changesapply to all of the business components you have created in the application. Creating business services to access data and building a data model around thoseservices: Based on your data source, you create business services using wizardsor dialogs. Alternatively, you can create business services from scratch and thenassociate them with database tables later. You can also create services directlywithin a UML diagram.These business services can be ADF Business Components services, which aretightly integrated with ADF Model, which enables you to implement validation rulesand other types of business logic declaratively and which enables you to easilybind data to UI components. Or they can be other types of services such as EJBsession beans or web services, on top of which you can create ADF Model datacontrols to enable data binding and implement declarative business logic. Adding declarative logic to the business services, such as control hints andvalidation rules. Implementing the base user interface with ADF Faces, including page templatesand layouts. Designing ADF task flows to define application control and navigation: You usediagrammers to visually determine navigation and control flow cases. JDevelopercreates the underlying XML for you. Figure 2-2 shows a task flow in the Summitsample application for ADF Task Flows that handles customer login.2-2

Chapter 2Oracle ADF High-Level Process FlowFigure 2-2 ADF Task FlowCreating databound UI components: You can create databound components bydragging objects from the Data Controls panel onto a page and selecting the UIcomponent you want to generate to display the underlying data. Figure 2-3 showsa pie chart that has been created by dropping a collection as a pie chart on a pagefragment in the Summit sample application for ADF Task Flows. You can bindexisting UI components to the data model (or change generated bindings) usingJDeveloper's binding editors. Figure 2-4 shows the binding editor for the same piechart. In both cases, JDeveloper generates the binding code.2-3

Chapter 2Oracle ADF High-Level Process FlowFigure 2-3Design-time View of Pie ChartFigure 2-4Binding Editor for Pie Chart Incorporating any page-specific validation and error handling: Once yourapplication is created, you use editors to add additional validation and to defineerror handling. Securing the application: You use the Configure ADF Security wizard to enablebase security features. Then you can use visual editors to define security policiesfor the application's resources, create roles, and populate the roles with test users. Enabling MDS customization of the application: If you want to enable yourcustomers to provide further customization of the application for their users or toenable persistence of user changes to UI components within a session, you createcustomization classes and make them available to the application at design time2-4

Chapter 2Using Oracle ADF to Create a Rich Enterprise Applicationand you enable seeded customization for any pages that you want to makecustomizable. Testing and debugging: JDeveloper includes an integrated application server thatallows you to fully test your application without needing to package it up anddeploy it to a standalone server. JDeveloper also includes the ADF DeclarativeDebugger, a tool that allows you to set breakpoints and examine the data. Refactoring: After testing your application (or even after having already deployedyour application), you may need to rename components and reorganize code.JDeveloper has refactoring tools that simplify this work and protect againstchanges that would introduce bugs. Integrating the application with other applications in a service-oriented architecture(SOA): You can integrate your Fusion web application with an existing or newapplications using SOA principals. Developing additional views: You can extend the application to providefunctionality for other types of user interfaces, such as touch devices and desktopclients. Figure 2-5 shows an input form on an Excel worksheet from the Summitsample application for ADF Desktop Integration.Figure 2-5 ADF Desktop Integration FormDeploying the application: You use JDeveloper wizards and editors to create andedit deployment descriptors, JAR files, and application server connections. Youcan then use JDeveloper to deploy applications directly to a standalone applicationserver or use other deployment tools.Using Oracle ADF to Create a Rich Enterprise ApplicationSummit sample applications are a collection of enterprise application samplesdeveloped by Fusion Middleware Product Management to demonstrate variouscapabilities of Oracle ADF. The Summit samples were created using the same stepby-step ADF application development process you follow to build your own ADFapplication.This section walks you through the high-level steps of creating one of the Summitsample applications for Oracle ADF, which are a set of rich enter

Based on Standard Java and XML 4-4 Application Server and Database Independence 4-6 Support for Java EE Design Patterns 4-6 . technologies encompassed by the Oracle Application Development Framework (Oracle ADF). This guide outlines the components and explains the concepts behind ADF Model, ADF Business Components, ADF Controller, ADF Faces .