Overview: In modern application development, framework plays an important role. Without support of mature framework, rapid application development is quite impossible. Oracle has developed an innovative, mature and stable Java EE development framework called ‘Oracle ADF’(Application Development Framework). ADF framework is a part of Oracle’s award winning ‘JDeveloper 11g’ development environment. Oracle ADF provides infrastructure support as part of the framework. So the 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.
Introduction: 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). It provides solution to 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
So the coverage of this tool is very useful to make a composite and efficient web application which goes beyond normal MVC framework.
Why Oracle ADF?
As we know that 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. So the biggest challenge for making J2EE application is the selection of tools. We are having different J2EE compliant tools in the market place but the selection of the best tool is one of the major criteria behind successful J2EE application development.
So we need some framework which provides an abstract layer on top of the complex J2EE platform. Here comes the role of Oracle Application Development (ADF) framework, it provides the infrastructure and design implementation support as part of the framework. Oracle ADF also provides visual and declarative development approach to support rapid development.
Oracle ADF key features: 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 developement 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 which holds the business logic.
- View layer which handles the user interface.
- Controller layer which manages the interaction between Model and View layers.
All the components of the application are loosely coupled. It helps the maintenance of the application and increase 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. Following 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.
Following is the core architecture of Oracle ADF framework. Different layers and their interaction is shown as an example. The components in different layers can be changed as per the application requirement.
Image1: 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 ADF framework so there is not much change. The business service layer can be anything like 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. So the flexibility of Oracle ADF framework makes is very popular in Java EE application development domain.
Now let us discuss a bit in details about different layers shown in the above diagram.
Business Service Layer: The business service layer is the addition component in Oracle ADF framework. ADF provides 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.
Model Layer: The model layer provides the single interface to connect to any business service. This model layer in 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.
Controller 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. Following are two types of controller used in web based applications.
- JSF controller
- ADF controller
Note: ADF controller extends the functionality of JSF controllers.
View Layer: The view layer is the front end of any application. The front end layer can be desktop application, mobile application or web based application. The multi channel support of 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 Oracle ADF framework: 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
Conclusion: 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 its usage. But most of these tools do not support all the layers of Java EE application development. As a result developers are some time a bit confused while choosing tools or frameworks. The Oracle ADF provides 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 Java EE development community.