02 December 2010

Possible ADF Interview questions

Last Update: 7/4/2011

These are ADF Exams questions and so possible interview questions
In blue I ll try to give some possible answers or "sources for answers".

Introduction to Fusion and ADF
[  ]Describe Fusion Architecture
Check: Check Part I Chapter 1 : What Is Fusion? in  Oracle JDeveloper 11g Handbook (reference: http://www.amazon.co.uk/Oracle-JDeveloper-11g-Handbook-Development/dp/B001NLL53Q/ref=sr_1_4?ie=UTF8&s=digital-text&qid=1294509536&sr=8-4)

[  ]
Explain how ADF fits into the Fusion architecture
The ADF is the framework used to build Fusion Web Apps.
The Oracle Application Development Framework (Oracle ADF or just ADF) is a meta-framework
that fulfills the core requirements for a framework as outlined in the preceding section. ADF
integrates a mix of subframeworks to provide the key functions for object-relational mapping and
other forms of service access, data bindings, and user interface, along with the functional glue to
hold it all together (reference: http://www.amazon.co.uk/Oracle-JDeveloper-11g-Handbook-Development/dp/B001NLL53Q/ref=sr_1_4?ie=UTF8&s=digital-text&qid=1294509536&sr=8-4)

This chapter describes the architecture and key functionality of the Oracle Application Development Framework (Oracle ADF) when used to build a Fusion web application that uses Oracle ADF Business Components, Oracle ADF Model, Oracle ADF Controller, and Oracle ADF Faces rich client, along with high-level development practices. Check: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/intro.htm#insertedID0
[  ]
Describe the ADF technology stack (MVC)
Check: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/intro.htm#BHCFFJHC
[  ]
Identify sources of additional information about ADF and ADF Business Components

  • Check "Resourses" in the bottom of the blog and also posts with Resource label 

Getting Started with JDeveloper
[  ]
Describe benefits that JDeveloper provides for application development
Check: http://www.oracle.com/technetwork/developer-tools/jdev/jdeveloper11g-datasheet-1-133040.pdf
[  ]Utilize common IDE mechanisms when developing and testing components
[  ]Set IDE preferences based on user requirements
[  ]Initiate the creation of empty applications, projects, and connections in JDeveloper

Building a Data Model with ADF Business Components
[  ]Describe the role of ADF Business Components in building a business service

[  ]Explain the architecture of ADF BC

Below is a description of the architecture.  Another more compact approach check Anatomy of ADF in the  PRACTICAL ADF APPLICATION DEPLOYMENT FOR FUSION MIDDLEWARE ADMINISTRATORS

Oracle ADF Business Components is a framework implements the Business Services layer on top of a data source in a declarative way. It provides out-of-the-box services such as transaction management, resource pooling, locking, declarative validation rules, translation, and object-relational mapping.
To use Oracle ADF BC, you use wizards in JDeveloper to create:

  • Application Module
    • An application module is a service component that UI or Web Service clients use to work with application data. It defines an updatable data model and top-level procedures and functions (called service methods) for a logical unit of work related to an end-user task. To simplify the task of implementing your services, you leverage a set of business components like entity objects and view objects.
    • You can enable a service interface on any Application Module. The service interface expose Application Modules as remotable services allowing third-party applications to find, create, update and delete business information using standard web services protocols. All of the business validation rules encapsulated in your Entity Objects are automatically enforced through this service interface as well.
    • You can use any application module both as a local component and as remotely-accessible service. This allows you to support both interactive Web user interfaces as well as programmatic Web-service clients with the same component.
  • Entity object
    • An entity object represents a row in a database table and simplifies modifying its data by handling all DML operations for you. It can encapsulate business logic for the row to ensure your business rules are consistently enforced. You associate an entity object with others to reflect relationships in the underlying tables to create a layer of business domain objects to reuse in multiple applications.
  • View object
    • A view object represents a SQL query and simplifies working with its results. You declaratively join, project, filter, sort, and aggregate entity object data into exactly the "shape" required by the end-user task at hand, including the ability to link a view object with others to create master/detail hierarchies of any complexity. When users modify business data using a view object, that component automatically collaborates with entity objects to consistently validate and save the changes.
The following diagram illustrates the relationship among application module, entity object, and view object. A view object defines a query and produces a row set of rows. View objects and entity objects collaborate to enable an updatable data model. Application module contains view objects and it provides transaction.

[  ]Identify the types of components that cooperate to provide the business service implementation

  • Entity object
    An entity object represents a row in a database table and simplifies modifying its data by handling all data manipulation language (DML) operations for you. It can encapsulate business logic to ensure that your business rules are consistently enforced. You associate an entity object with others to reflect relationships in the underlying database schema to create a layer of business domain objects to reuse in multiple applications.
  • View object
    A view object represents a SQL query and simplifies working with its results. You use the SQL language to join, filter, sort, and aggregate data into the shape required by the end-user task being represented in the user interface. This includes the ability to link a view object with other entity objects to create master-detail hierarchies of any complexity. When end users modify data in the user interface, your view objects collaborate with entity objects to consistently validate and save the changes.
  • Application module
    An application module is the transactional component that UI clients use to work with application data. It defines an updateable data model along with top-level procedures and functions (called service methods) related to a logical unit of work related to an end-user task.

  • [  ]
    Explain how ADF BC components are used in a Web Application

    Querying and Persisting Data
    [  ]Describe the characteristics of an ADF BC view object
    [  ]Create a view object that can be used for performing a query in a Web application
    [  ]Define a SQL statement on which to base a query for a view object
    [  ]Explain how entity objects relate to database tables
    [  ]Describe the persistence mechanism of entity objects
    [  ]Use the Create Entity Object wizard to generate entity objects from database tables
    [  ]Create associations between entity objects to represent business relationships
    [  ]Create updatable view objects based on entity objects
    [  ]Link view objects to one another in a master-detail hierarchy
    [  ]Refactor objects in an application

    Exposing Data to Clients
    [  ]Explain the role of application modules

    An application module is an ADF Business Components component that encapsulates the business service methods and UI-aware data model for a logical unit of work related to an end-user task.

    In the early phases of application development, architects and designers often use UML use case techniques to create a high-level description of the application's planned end-user functionalities. Each high-level, end-user use case identified during the design phase typically depends on:

    The domain business objects involved. To answer the question, "What core business data is relevant to the use case?"

    The user-oriented view of business data required. To answer the questions, "What subset of columns, what filtered set of rows, sorted in what way, grouped in what way, is needed to support the use case?"

    The identified domain objects involved in each use case help you identify the required entity objects from your business domain layer. The user-oriented view of the required business data helps to define the right SQL queries captured as view objects and to retrieve the data in the exact way needed by the end user. For best performance, this includes retrieving the minimum required details necessary to support the use case. In addition to leveraging view object queries to shape the data, you've learned how to use view links to set up natural master-detail hierarchies in your data model to match exactly the kind of end-user experience you want to offer the user to accomplish the use case.

    The application module is the "work unit" container that includes instances of the reusable view objects required for the use case in question, related through metadata to the underlying entity objects in your reusable business domain layer whose information the use case is presenting or modifying. 

    Application Module Is a Business Service Component Encapsulating a Unit of Work

    [  ]Describe the characteristics of application modules
    [  ]Use the Create Application Module wizard to define the data model for an application module
    [  ]Explain how application modules can manage business components transactions
    [  ]Explain how application modules can manage application stateE
    [  ]Explain the role of the ADF Model

    Declaratively Customizing Data Services
    [  ]Declaratively change data behaviour
    [  ]Declaratively modify the default behavior of view objects, entity objects, and application modules
    [  ]Define a view accessor for a list of values(LOV)
    [  ]Define a list of values (LOV) for an attribute

    Programmatically Customizing Data Services
    [  ]Generate Java classes for business components to modify default behavior programmatically
    [  ]Override class methods to change or augment default behavior
    [  ]Modify the WHERE clause of a view object at run time
    [  ]Explain the benefits of adding service methods at the application module level (rather than at the view level)
    [  ]Create a test client for testing your custom code
    [  ]Modify a view object's client code to add a new employee to the employees view object

    Validating User Input
    [  ]Describe the types of validation available for ADF applications
    [  ]Evaluate which validation options are appropriate for different validations
    [  ]Add declarative validation for an entity object
    [  ]Identify the other non-declarative validation options and when they might be used
    [  ]Describe the benefits of using domains for validation

    Troubleshooting ADF BC Applications
    [  ]Identify the JDeveloper tools for logging and diagnostics
    [  ]Use Java code auditing tools
    [  ]Make use of FileMon and Junit to debug an application
    [  ]Use the JDeveloper profiler
    [  ]Use the JDeveloper debugger
    [  ]Identify sources of Help

    Understanding UI Technologies
    [  ]Describe the use of Web browsers and HTML
    [  ]Explain how Java has come into widespread use as a language for developing Web applications
    [  ]Describe the function of Servlets and JSPs
    [  ]Define JavaServer Faces
    [  ]Explain the JSF component architecture
    [  ]Expalin some JSF component types included in the standard implementation
    [  ]Describe the purpose of backing beans
    [  ]Describe the JSF life cycle
    [  ]Explain how ADF Faces augments the JSF life cycle
    Binding UI Components to Data
    [  ]Create an empty JSF page
    [  ]Use three different ways to add ADF Faces UI components to a page
    [  ]Describe the types of data-bound components that can be added to a JSF page

    [  ]Describe the structure of an EL (Expression Language) expression
    Planning the User Interface
    [  ]Describe the Model-View-Controller design pattern
    [  ]Differentiate between bounded and unbounded task flows
    [  ]Create task flows to define control flow in an application
    [  ]Specify control flow rules
    [  ]Define global navigation
    [  ]Use routers to declaratively route control flow to activities based on an EL expression
    [  ]Define the role of managed beans in task flows
    [  ]Explain the types of validation available in the user interface

    Adding Functionality to Pages
    [  ]Internationalize the user interface so that the application can be used in multiple locales
    [  ]Use component facets to specify subordinate elements such as toolbars, headers and footers
    [  ]Implement a list of values (LOV) to enable users to select a value from a list
    [  ]Add a calendar component to an input date field to make it easy for users to select a date
    [  ]Use the table component to display structured data as a formatted table
    [  ]Employ the tree component to display hierarchical data
    [  ]Add icons and images to an application with ADF Faces output componentsE
    [  ]Create Search forms using the ADF query component
    [  ]Use ADF Data Visualization components to add charts, graphs, map etc to your JSF pages
    Implementing Navigation on Pages
    [  ]Implement command buttons and links
    [  ]Create menus - Menu bar
    [  ]Create menus - Popup
    [  ]Create menus - Context
    [  ]Use a navigation page
    [  ]Use breadcrumbs
    [  ]Create trains

    Achieving the Required Layout
    [  ]Build complex page layouts with layout components
    [  ]Explain the role of ADF Faces skins
    [  ]Use dynamic page layout
    Ensuring Reusability
    [  ]Identify the benefits of reusing components
    [  ]Create a resource catalog to enable sharing of resources within and across teams and applications
    [  ]Create ADF libraries to share components within and across teams and applications
    [  ]Create a task flow template for reuse across different bounded task flows
    [  ]Create a page template for reuse across the JSF pages in an application to enable a consistent look and feel
    [  ]Create a declarative component for reuse in different pages of an application
    [  ]Create a page fragment to use in multiple pages of the application
    [  ]Employ a bounded task flow as a region in a JSF page

    Passing Values between UI Elements
    [  ]Evaluate whether the data model contains opportunities to reduce the need for passing values between pages
    [  ]Use a managed bean to pass values between JSF pages
    [  ]Store values in memory-scoped attributes to hold and pass information between pages and life cycle phases
    [  ]Use parameters to pass information to different parts of the application
    Responding to Application Events
    [  ]Configure managed beans to contain code to respond to events
    [  ]Explain the different types of events
    [  ]Use phase listeners to listen for and respond to events
    [  ]Explain the role of an event listener
    [  ]Use action listeners
    [  ]Describe the sequence in which events and listeners are executed
    [  ]Describe the features of JDeveloper that support ADF Faces enhanced event handling
    [  ]Identify the server events fired by ADF Faces components/span>
    [  ]Use the contextual events framework to co-ordinate regions on a JSF page

    Implementing Transactional Capabilities
    [  ]Explain ADF BC transaction handling
    [  ]Enable an ADF bounded task flow to run as a transaction
    [  ]Manage transaction exceptions on ADF bounded or unbounded task flows
    [  ]Define the response to the browser's Back button (for an ADF task flow that was already exited)
    [  ]Implement Save for Later functionality

    Implementing Security in ADF BC Applications
    [  ]Explain the need to secure applications
    [  ]Describe security aspects of an ADF BC application
    [  ]Add ADF Security Authentication to an application
    [  ]Add ADF Security Authorization to an application
    [  ]Use two approaches for granting users access to resources
    [  ]Prevent unauthorised access to the ADF BC Model
    [  ]Explain the types of application authentication at run time
    [  ]Use Expression Language to extend the default security capabilities of the framework
    Explore the Project Structure and Core File Architecture
    Check answers for this Section on http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/appendixa.htm
    [  ]Define File Structure of a Project

    Oracle ADF File Hierarchy Overview for the Fusion Web Application
    [  ]Examine how Metadata files are used to specify paramters, methods, and return values to a data control
    [  ]
    Define ADF Data Control and Databinding Files

    A.2.2 Oracle ADF Data Binding Files

    These standard XML configuration files for a Fusion web application appear in your user interface project:
    • adfm.xml: This file lists the DataBindings.cpx file that are available in the current project.
      The web.xml file no longer contains a databinding.cpx entry. This entry is now in the adfm.xml file.
      See Section A.4, "adfm.xml" for more information.
    • DataBindings.cpx : This file contains the page map, page definitions references, and data control references. The file is created the first time you create a data binding for a UI component (either from the Structure window or from the Data Controls Panel). The DataBindings.cpx file defines the Oracle ADF binding context for the entire application. The binding context provides access to the bindings and data controls across the entire application. TheDataBindings.cpx file also contains references to the PageDef.xml files that define the metadata for the Oracle ADF bindings in each web page.
      For more information, see Section A.7, "DataBindings.cpx".
    • PageDef.xml: This is the page definition XML file. This file is created each time you design a new web page using the Data Controls Panel or Structure window. These XML files contain the metadata used to create the bindings that populate the data in the web page's UI components. For every web page that refers to an ADF binding, there must be a corresponding page definition file with binding definitions.
      For more information, see Section A.8, "pageNamePageDef.xml".

    [  ]Explore the ADF Faces and Web Configuration Files to know where task flows, pages and code are created

    A.2.3 Web Configuration Files

    These standard XML configuration files required for a JSF application appear in your user interface project:
    • web.xml: Part of the application's configuration is determined by the contents of its Java EE application deployment descriptor, web.xml. The web.xml file defines everything about your application that a server needs to know. The file plays a role in configuring the Oracle ADF data binding by setting up the ADFBindingFilter. Additional runtime settings include servlet runtime and initialization parameters, custom tag library location, and security settings.
      For more information about ADF data binding and JSF configuration options, see Section A.13, "web.xml".
      An ADF Faces application typically uses its own set of configuration files in addition to web.xml. For more information, see the "Configuration in trinidad-config.xml" section in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework.
    • adfc-config.xml: The configuration file for an ADF unbounded task flow. The configuration file contains metadata about the activities and control flows contained in the unbounded task flow. The default name for this file is adfc-config.xml, but an end user can change the name.
      For more information, see Section A.9, "adfc-config.xml".
    • task-flow-definition.xml: The configuration file for an ADF bounded task flow. The configuration file contains metadata about the activities and control flows contained in the bounded task flow. The default name for this file can be task-flow-defintion.xml or whatever an end user specifies in the Create ADF Task Flow dialog. The same application can contain multiple task flow definition files.
      For more information, see Section A.10, "task-flow-definition.xml".

      Check the related links for more
    [  ]Define Hierarchical Relationship of the XML Metadata files in a Web Application

    Figure A-2 illustrates the hierarchical relationship of the XML metadata files that you might work with in a web application that uses an ADF application module as a service interface to ADF Business Components. At runtime, the objects created from these files interact in this sequence:
    1. When the first request for an ADF databound web page occurs, the servlet registers the Oracle ADF servlet filter ADFBindingFilter named in the web.xml file.
    2. The binding filter creates an empty binding context.
    3. When a page is rendered, the binding filter asks the binding context to load a corresponding PageDef.xml for the page.
    4. The binding context creates the binding container by loading the  file as referenced by the  element in the DataBindings.cpx file.
    5. The adfm.xml file loads the DataBindings.cpx contents and finds the right PageDef.xml based on the  element reference to the  element.
    6. The binding container's prepareModel phase prepares and refreshes all relevant executables (most are marked deferred by default).
    7. An iterator binding gets executed by referencing the named method on the data control found through the data control factory named in the case of ADF Business Components in the bc4j.xcfg file.
    8. The binding container also creates the bindings defined in the  section of the pagenamePageDef.xml file for the mapped web page.
    9. The web page references to ADF bindings through EL using the expression #{bindings} are resolved by accessing the binding container of the page.
    10. The page pulls the available data from the bindings on the binding container.
      Oracle ADF File Hierarchy and Syntax Diagram for an ADF BC-based Web Application

    Extend the ADF Business Components Framework
    [  ]Examine some general considerations when using ADF Business Components
    [  ]Extend the ADF Business Components (ADF BC) Framework to customize your application
    [  ]Override the standard way data is committed to the database using a PL/SQL procedure
    [  ]Design ADF Business comonents to avoid database contraint

    Use ADF Business Components for Validation, Calculations and List of Values
    [  ]Build Cascading List of Values
    [  ]Enhance the Application with Calculations and Validation
    [  ]Create Validation for Foreign Keys
    [  ]Employ Groovy Expressions in Validations

    Use Inheritance in the Business Domain Layer
    [  ]Reuse existing Bussiness Component designs by extending components
    [  ]Implement Supertype/Subtype designs using Entity Objects
    [  ]Create View Objects to access more than one table

    ADF as a part of a Service Oriented Architecture
    [  ]Expose ADF Business Components as SDO for use in a SOA Process (BPEL)
    [  ]Create Rich User Interfaces that access data from a composite application
    [  ]Create events for ADF Business Components to trigger Enterprise Service Bus
    [  ]Use Service Data Objects to access heterogeneous data in a uniform way

    Implement Data Binding Controls
    [  ]Define and Recognize ADF Model binding types
    [  ]Define ADF Model executables and how to use them
    [  ]Customize data-bound components within the page definition file to support application requirements
    [  ]Use Expression Language to connect page items to model components
    [  ]Determine how model components get transformed into Data Control Palette items

    Practical Data Binding in Action
    [  ]Examine data binding in the JavaServer Faces (JSF) Page life cycle
    [  ]Define listeners and custom controllers to augment the ADFm life cycle
    [  ]Develop two different style queries: Query by example and Query using Google style
    [  ]Develop two different types of list of allowable values: Static lists and Dynamic lists

    Work with Managed Beans and JavaServer Faces
    [  ]Define key JavaServer Faces (JSF) terms
    [  ]Describe the JSF Architecture with Application Development Framework (ADF)
    [  ]Differentiate between Managed and Backing Beans
    [  ]In a JSF page, create and reference a Managed Bean to perform a custom method
    [  ]Set and use Managed Properties to store and retrieve user login information
    [  ]Use context object classes to access application messages, work with the Servlet API or ADF specific funcationality

    ADF Faces Advanced Features
    [  ]Examine AJAX and ADF
    [  ]Employ Partial Page Rendering (PPR) on a JSF Page
    [  ]Enhance a page by creating input and output items using ADF Components
    [  ]Use page, panel and splitter componentss to design and build a JSF page
    [  ]Develop UI shell templates to incorporate company standard behavours, look and feel
    [  ]Display numerical data using Data Visualization components and Active Data Services

    Integrate with WebCenter
    [  ]Allow end users to perform runtime customization to their application pages
    [  ]Integrate ADF pages with Content Management systems to access file systems
    [  ]Add Web Center Services, like social networking and collaboration, to JSF/ADF pages
    [  ]Add reusable Portlets that provide dynamic view of data, into a JSF/ADF page

    Customize the Application Look and Feel with Skins
    [  ]Use Firebug and Mozilla Developer Toolbar to build skins
    [  ]Explain how skin selectors work
    [  ]Build instance specific skins
    [  ]Develop a managed bean to change skin at runtime

    You can also find ADF Interview info at oracle adf interview questions and answers - Part One.

    Dig more/References:

    No comments:

    Post a Comment

    You might also like:

    Related Posts Plugin for WordPress, Blogger...