Book Image

Oracle ADF Real World Developer's Guide

By : Jobinesh Purushothaman
Book Image

Oracle ADF Real World Developer's Guide

By: Jobinesh Purushothaman

Overview of this book

Oracle ADF in combination with JDeveloper IDE offers visual and declarative approaches to enterprise application development. This book will teach you to build scalable rich enterprise applications using the ADF Framework, with the help of many real world examples. Oracle ADF is a powerful application framework for building next generation enterprise applications. The book is a practical guide for the ADF framework and discusses how to use Oracle ADF for building rich enterprise applications. "Oracle ADF Real World Developer's Guide" discusses ADF framework in detail. This book contains a lot of real life examples which will help developers to design and develop successful enterprise applications. This book starts off by introducing the development environment and JDeveloper design time features. As you read forward, you will learn to build a full stack enterprise application using ADF. You will learn how to build business services using ADF, enable validation for the data model, declaratively build user interfaces for business service and enable security across application layers.
Table of Contents (20 chapters)
Oracle ADF Real World Developer's Guide
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
Index

Oracle ADF architecture


Oracle ADF has a well-proven, extensible, and layered architecture, which improves the flexibility, maintainability, and scalability of an application.

What does that mean to you?

Some of the core benefits are as follows:

  • As an architect, you can pick up the best fitting technology from a wide range of lists while building each of the layers. For example, ADF supports a variety of ways to build business services, which include EJB or (JPA), web services, simple Java objects, and ADF Business Components (ADF BC). On the client tier, applications can choose from Java Swing, core Java Server Faces (JSF), ADF Faces, or ADF, Mobile UI. Oracle ADF along with JDeveloper IDE, offers consistent development experience across different technologies.

  • If the use case demands, your ADF application can be easily enhanced later to use other technologies from Oracle Fusion Middleware Stack, such as Service Oriented Architecture (SOA), WebCenter, and so on, with minimal integration effort.

  • Oracle ADF follows the Model-View-Controller (MVC) design paradigm. The layered architecture of the framework simplifies maintenance, decouples implementations from interfaces, and improves reusability of the components across applications. The layered architecture of the ADF application is really useful when you need to build a User Interface (UI) for various channels such as web, mobile, tablet, and desktop, reusing the existing business services.

It is time for us to give a glance at the architectural building blocks of ADF to study how are they put together to build high performing service-oriented applications.

View layer

The View layer contains the UI for the application ADF stack that supports the following view technologies, targeting various presentation channels such as the web browser, desktop, mobile, tablet PC, and Microsoft Excel:

  • ADF Faces: Rich web UI framework built on top of the Java Server Faces (JSF) technology

  • Apache MyFaces Trinidad: An open source JSF-based web framework (ADF Faces components are based on Trinidad components)

  • JSF: Core JSF web technology from the Java EE stack

  • ADF Mobile: ADF Mobile supports both mobile browser client and mobile native clients, which can run on smart phones and tablet PCs

  • Microsoft Excel: Provides Microsoft Excel frontend for your ADF business services

Controller layer

The Controller layer controls the flow of the application. ADF Controller is used for the ADF Faces application, which provides an improved navigation and state management model on top of JSF. The greatest advantage of ADF Controller over the navigation model offered by core JSF is that it improves the modularity of the system by splitting a single monolithic navigation model to multiple reusable navigation cases known as task flows. Task flows are declarative solutions. Developers typically do not need to write any code for defining navigation in applications. Apart from the support for modular application design, ADF task flows also offer a declarative transaction model and state management solutions.

Model layer

The Model layer binds the UI with business services, abstracting the implementation details. The model layer is functionally divided into two components—data control and data binding.

  • Data control: Data control acts as a proxy cum adaptor for your business services and decouples the view layer from the business service implementation

  • Data binding: Data binding abstracts the data access from data control and provides a generic interface for invoking common operations

The ADF model layer plays a very vital role in the entire technology stack. It is the model layer along with JDeveloper IDE that provides a visual and declarative UI development experience for the end user, irrespective of the technology used for building business services. The glue code used for binding the UI with the data model is plumbed by the model layer at runtime based on the binding metadata definition for the page.

Business services layer

The Business services layer provides access to data from various sources and handles the business logic as well. ADF comes with out-of-the-box binding support for the following technologies:

  • ADF BC

  • EJBs

  • Web services

  • Plain Old Java Objects (POJO)

  • Business Activity Monitoring (BAM)

  • Business Intelligence (BI)

You can choose any of these technologies for building the business services.

Note

The Fusion web application in this book refers to the enterprise web application built using ADF Faces for the view, ADF Model for data binding, ADF Page Flow for the controller, and ADF Business Components for business services.