Introduction to Oracle ADF
- Oracle ADF(Application Development Framework) is a state of the art technology to rapidly build an 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 a 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 consistently.
- 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 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 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 this 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 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 is 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 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 data format property. Recall that we use DataFormatType.MAPPED for each entity to its 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 that are capable of rendering dynamic charts, graphs, gauges, and other graphics that provide a real-time view of underlying data. Flexibility 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