Why ADF ?
Oracle ADF(Application Development Framework) is state of the art technology to rapidly build enterprise application. ADF is a mature J2EE development framework and many other products under Oracle Fusion Middleware stack are build upon ADF 11g.
ADF provides variety of inbuilt components that minimizes the need to write code allowing users to focus more on features and business aspects of the application. With WebCenter and SOA plugins, we can also integrate WebCenter Services and SOA into your application making it rich and extensible.
Oracle ADF Architecture ?
Oracle ADF implements MVC and further separates the model layer from the business services to enable service-oriented development of applications. The Oracle ADF architecture is based on four layers:
The Business Services layer - provides access to data from various sources and handles business logic.
The Model layer - provides an abstraction layer on top of the Business Services layer, enabling the View and Controller layers to work with different implementations of Business Services in a consistent way.
The Controller layer - provides a mechanism to control the flow of the Web application.
The View layer - provides the user interface of the application.
Oracle ADF Model Layer
This component of Oracle ADF provides users with a seamless solution in order to provide support and connections with common business service technologies including:
- CSV files
- Web services
- Enterprise JavaBeans session beans and JPA entities
Oracle ADF Model implements the JSR-227 service abstraction that is called “data control.” The data control abstracts the implementation technology of a business service by using standard metadata interfaces in order to describe the service’s operations and data collections and types involved. By using Oracle JDeveloper, a free integrated development environment that simplifies the development of Java-based applications by addressing the whole application lifecycle, a user can view the information as icons and drag and drop onto a page. JDeveloper then automatically creates the bindings from the page to the services. The ADF Model layer reads the information describing the data controls and data bindings from the necessary files and implements the connection between the user interface and the business service.
Overall, Oracle ADF’s architecture relies on four layers:
- Business Services- provides access to data from various sources and addresses business logic.
- Model Layer- provides an abstraction layer on top of the Business Services layer that enables the View and Control layers to function with different implementations of Business Services consistently.
- Controller Layer- offers a mechanism to control the flow of the web application.
- View Layer- Provides the user interface of the application.
Separating these application into layers simplifies the maintenance and reuse of these components across various applications.
Customization & Personalization
Oracle ADF provides solutions that fit the requirements for different users. Oracle ADF works with a MetaData Services (MDS) layer that offers application customization through two different implementation layers. The first layer is called “seeded customization” which refers to an application wide customization that would take place for anyone who has access to the application for a particular group. The other layer is “user customization” or “personalization” where the end user assigns customizations according to their personal experience and enforced via the MDS repository. Users can personalize the interface of their application such as re-ordering fields in a table. The “seeded” customization allows developers to implement modifications in business rules, page flows, page layouts and other items in an XML format.
Building the Business Services
In an Oracle ADF application we can consume different types of business services. This is possible because the ADF Model layer allows us to abstract the implementation of the underlying business services by providing a set of interfaces that describe their operations and data collections.
So the first step is to implement the business services using JPA. To do this we'll define the Java classes that represent the entities to manipulate. Specifically, we'll create the Person and Address classes.
We'll add the corresponding JPA annotations for modeling. Likewise, due to persistence will be performed into a NoSQL database, we'll add the @NoSQL annotation in each entity specifying DataFormatType.MAPPED as the value for the dataFormat property. Recall that we use DataFormatType.MAPPED for each entity in order to it maps to a nested set of pairs <key, value>.
ADF Faces Rich Client (ADF Faces)
- Hierarchical data tables
- Tree menus
- In-page dialogs
- Sortable tables
ADF Faces also offers ADF Visualization components which are capable of rendering dynamic charts, graphs, gauges and other graphics that provide real-time view of underlying data.
Unlike many other frameworks, Oracle ADF does not lock developers into a specific software vendor. The Oracle ADF run-time can be installed on different Java EE-compliant application servers and business services can connect to any SQL-92 compliant database. Oracle ADF also supports many technologies for each of the layers of the application and doesn’t dictate certain development styles.
Along with ADF Faces, Oracle ADF also supports other view technologies including:
- Apache MyFaces Trinidad
- Java Swing and ADF Swing
- ADF Mobile
- Microsoft Excel
When you’re developing anything, security should be in the forefront of your mind right? Oracle ADF has built-in security implementation across its layers. As a developer, you can define users, roles and assign authorizations at the business services layer, controller layer or user interface (UI) layer. Oracle ADF provides security implementation based on Java Authentication and Authorization Services (JAAS). It enables applications to authenticate users and enforce authorization.
While other Java EE frameworks lack integrated support by development tools, Oracle JDeveloper eases users into the process. Oracle JDeveloper provides visual aids and a declarative approach in order to minimize the need to write framework code, making it the ideal tool for building Oracle ADF- based applications. By implementing the declarative development approach, it also decreases the learning curve for developers familiar with 4GL-style tools. If a user would like to use another integrated development environment, Oracle ADF’s allows them to do so with its built-in features provided in the Oracle Enterprise Pack for Eclipse packaging and relying on ADF’s support for the Java EE standards.
Mobile Application Development
These core tutorials will help you to learn the Oracle ADF Fundamentals. For an in-depth
understanding and practical experience, explore Oracle ADF Online Training.