In modern application development, the framework plays an important role--without the support of a mature framework, rapid application development is quite impossible. Oracle has developed an innovative, mature and stable Java EE development framework called Oracle Application Development Framework (ADF). The ADF framework is part of Oracle's award-winning JDeveloper 11g development environment. Oracle ADF provides infrastructure support as part of the framework, so that developers can concentrate on the actual application development. The integrated tool is very useful for rapid application development. In this article, I will discuss the ADF framework and its architecture.
In web application development, MVC (Model-view-controller) design pattern is very popular. Oracle ADF also implements the MVC design pattern. The ADF framework provides all the layers of this popular architecture (MVC) and provides solutions in the following areas:
- Object-Relational Mapping (ORM)
- Data persistence layer
- Reusable controller layer
- Rich user interface based on JSF technology
- Data binding mechanism with the UI layer
- Security features
As a result, the coverage of this tool is very useful in the creation of a composite and efficient web application that goes beyond normal MVC framework.
Why Oracle ADF?
As we know. J2EE is a set of specifications for building robust, scalable, secured multi tier applications. But J2EE does not provide any set of tools to make the application itself. So the biggest challenge for making J2EE applications is the selection of tools. There are many different J2EE compliant tools in the marketplace but the selection of the best tool is one of the major criteria behind successful J2EE application development.
So we need a framework that provides an abstract layer on top of the complex J2EE platform. This is the role of the Oracle Application Development (ADF) framework as it provides the infrastructure and design implementation support as part of the framework. Oracle ADF also provides a visual and declarative development approach to support rapid development.
Oracle ADF Key Features
The following are the key features provided by the ADF framework.
- Integrated development environment: Oracle ADF comes bundled with JDeveloper. So JDeveloper works as a perfect tool for ADF application development using visual and declarative approach. It minimizes the development effort.
- Vendor neutral: Oracle ADF is vendor neutral. The Oracle ADF runtime can be used with any J2EE compliant application server.
- Technology support: Oracle ADF provides different layers for J2EE application development. The layers can be developed using different technologies. So the Oracle ADF is also technology neutral.
- Composite end to end solution: Oracle ADF provides support for complete end to end development of J2EE application. So the developers can completely concentrate on the development work instead of the tool or technology selection.
Oracle ADF Architecture
We have already discussed that Oracle ADF follows the MVC design pattern. A typical MVC application contains the following three layers.
- Model layer that holds the business logic.
- View layer that handles the user interface.
- Controller layer that manages the interaction between Model and View layers.
All the components of the application are loosely coupled. This helps with the maintenance of the application and increases the reusability. So the architecture can be defined as Service Oriented Architecture (SOA).
Oracle ADF has four layers in its MVC implementation. It has separate model layer and business service layer to implement service oriented architecture. So we can define the Oracle ADF architecture as MVC model with a business service layer. Here are the four layers of ADF architecture:
- Business Service layer: This layer handles data from various sources and business logic.
- Model layer: This layer does not handle business logic directly; rather it provides an abstract layer on top of the business service layer. This particular design pattern helps the view and controller to work with various business service implementations.
- Controller layer: It controls the web application flow.
- View layer: It provides the user interface.
The figure below represents the core architecture of the Oracle ADF framework. Different layers and their interaction are shown as an example. The components in different layers can be changed per the application requirement.
Figure 1: Oracle ADF basic architecture diagram
As we have seen in different layers, the choice of technology is very flexible. The view layer supports desktop, mobile and web interfaces. The controller and model layer comes under the ADF framework so there is not much change. The business service layer can be anything such as Java, EJB, Web, Portlet, etc. And the same flexibility is there for data layers. The application can interact with RDBMS, web service, legacy system, etc. The flexibility of Oracle ADF framework makes is very popular in the Java EE application development domain.
Now let us discuss a bit of the details about the different layers shown in the diagram.
Business Service Layer
The business service layer is the addition component in the Oracle ADF framework. ADF provides the flexibility to implement this layer using any technology, and some of those technologies are shown in the diagram. This layer manages the following tasks.
- Interaction with data persistence layer
- Object-relational mapping
- Transaction management
- Business logic execution
The model layer provides the single interface to connect to any business service. This model layer in the ADF architecture does not handle business logics itself, rather provides the abstraction on top of the business services. So the flexibility of implementing any business service is a great advantage of the ADF framework. The model layer in ADF is also called 'ADF binding'. It has following to components.
- Data controls: It provides abstraction on top of business service layers
- Data bindings: It exposes data control methods to the UI layer.
The controller layer is responsible for handling application flow and user input. The navigation rules are defined on a diagram to manage application flow. Here are the two types of controllers used in web-based applications.
- JSF controller
- ADF controller
Note: ADF controller extends the functionality of JSF controllers.
The view layer is the front end of any application. The front end layer can be a desktop application, mobile application or web-based application. The multichannel support of the Oracle ADF framework is very useful for developing any type of application. Oracle ADF provides more than 150 Ajax based, ready-made JSF components for creating dynamic web interfaces.
Benefits of the Oracle ADF Framework
The following are some of the benefits of Oracle ADF framework:
- Support for visual and declarative view and controller development
- Various options to construct business service layers
- End to end solution for all the Java EE layers
- Technology and platform independence
- Meta data driven development
- Support for reusability and flexibility
There are different vendors who provide development tools, frameworks based on Java EE specifications. So for developing any Java EE application, developers need to know these tools and their usage. But most of these tools do not support all the layers of Java EE application development. As a result, developers are sometimes a bit confused when choosing tools or frameworks. Oracle ADF provides a complete development environment, infrastructure code, design patterns and ease of development. So the combination of Oracle ADF framework and visual development environment is very popular in the Java EE development community.
About the Author
Kaushik Pal is a technical architect with 15 years of experience in enterprise application and product development. He has expertise in web technologies, architecture/design, java/j2ee, Open source and big data technologies. You can find more of his work at www.techalpine.com and you can email him here.