Oracle ADF (Application Development Framework) is an end to end Java EE framework and open-source technologies to simplify and advances in implementing enterprise applications. It is relevant for enterprise developers who wants to create applications that search, modify, create, display and validate data using web, wireless, mobile and desktop interfaces.
What is ADF ?
ADF is the Java EE Application Development Framework from Oracle which allows developers to develop rich, firm standard Java web and mobile applications in a dynamic manner.
Oracle ADF Architecture
Oracle ADF is based on Model View Controller(MVC) pattern. Oracle ADF implements MVC which splits the model layer from business services to facilitate service oriented applications. With ADF Training it is easy to understand architecture. To summarize it consists of 4 layers:
- The Business Services Layer - This layer provides access to data from numerous sources to handle business logic
- The Model Layer - This provides an abstraction layer on top of the Business Services layer which enables the view and controller layers to work with distinct applications of Business services in a consistent way.
- The Controller Layer - This layer provides a system to control the flow of web application.
- The View Layer - This layer provides the user interface of the application.
ADF Key Components
ADF Model: It is a central part of Oracle ADF which facilitate you to design ADF applications based on distinct varieties of business layers and implements data controls and data bindings.
Oracle ADF provides data control applications for common business service technologies, such as
- ADF Business Components
- EJB session beans and JPA persistence API entities
- Javabeans Components
- Web services (SOAP and REST)
ADF Controller: In this layer, ADF controller provides an enhanced exploration and state administration model on the top of JSF’s controller layer so that you can declaratively generate task flows which in turn manages application control between different types of enterprises such as,
Pages, processes on managed beans, declarative case statements, or signals to other task flows.
ADF Faces: It implements the view for ADF applications. ADF faces is an entire view framework which includes 150 Ajax-enabled JavaServer Faces(JSF) components that are built on top of the JSF standard which works further with non-ADF controller and model technologies.
ADF Mobile Browser: It facilitates you to create application views that upgrades for browsers on small appliances.
ADF Desktop Integration: It facilitates developers to enlarge Fusion web applications so that final users can work them by using Microsoft Excel workbooks as a client.
ADF Swing: It is a framework which helps in developing databound Java clients that uses ADF model to access business services.
Metadata Services: This framework allows users to develop applications so that customers can further personalize for their users as well as end users can also personalize without disturbing the source code or affecting its ability to be patched or updated.
Advantages Of Oracle ADF Over Other Middleware Frameworks
- End-to-End Solution
- Development Environment
- Platform Independence
- Technology Choice
- Technology Commitment
- Declarative Customization
- Enhanced Reusability
- Source Availability
In addition, Oracle has announced new palette of Innovative components for Application Development Framework as a part of their new Middleware which offers distinct visualization patterns to display hierarchy.
The list of components are as follows,
- Treemap Component
- Sunburst Component
- Timeline Component
- Panel Drawer
- Panel Springboard
- Code Editor
Oracle ADF makes Java EE development simpler by providing out of the box implementation of design patterns and infrastructure code, development approach, technologies, and distribution platform. By connecting the advanced architecture of Oracle ADF with the visual development environment of Oracle JDeveloper 11g provides a perfect solution for both beginner and professional developers looking to be more productive when developing Java applications.