Oracle ADF is well proven, can be extended and is a layered architecture, which enhances its flexibility, maintainability, and scalability of the enterprise application.
- An architect can choose the best fitting technology from an array while building each layer. For ex. ADF supports a variety of ways to build Business services including EJB or ADF BC. On the client end, applications such as Java Swing, core Java server faces (JSF), ADF faces, ADF Mobile UI can be chosen. Oracle ADF along with JDeveloper IDE offers development experience across different technologies.
- ADF applications can be easily enhanced to use other technologies from Oracle Fusion Middleware Stack, such as SOA, WebCenter, with very less integration efforts.
- Oracle ADF follows the Model view controller (MVC) design paradigm. Being layered, it simplifies the maintenance, decouples implementation from interfaces and the re usability of the components of applications improves. This layered architecture comes in handy while building a User Interface (UI) for desktop mobile,tablet and web reusing the existing business services.
We will now throw a glance at the architectural building blocks of ADF, to know how they are incorporated to build high performance Service oriented applications. There are mainly four Architectural building block of ADF:
1. View Layer has the UI for the application ADF stack which supports the view technologies, targeting various presentation channels such as the browser, tablet ,mobile, pc and the MS.Excel:
- ADF Faces: Web UI framework on the top of the JSF technology.
- Apache Myfaces Trinidad : an open source JSF based web framework.
- JSF: Core JSF web technology from Java EE.
- ADF Mobile: It supports mobile native clients as well as mobile browser client which can run on smart phones.
- Ms.Excel: Provides Microsoft excel frontend to ADF.
2. Controller Layer: As the name suggests it controls the application flow. Its used in Faces application which provides better navigation and state management model on top of JSF. One of the biggest advantage of ADF controller over the navigation model offered by core JSF is that it improves the modularity of the system by spitting a single monolithic navigation model to multiple reusable navigation model known as Task flows.
3.Model Layer: It binds the UI with business services. The model layer has two functional components: Data contol and Data binding
- Data control acts as a proxy cum adapter for business services and separates the view layer from the business service implementation.
- Data binding abstracts the data access from data control and provides a generic interface for starting common operations.
4.Business Services Layer: It handles the business model and provides access to data from various sources. ADF characteristically supports the below mentioned technologies:
- ADF BC
- Web Services
- Plain Old Java Objects (POJO)
- Business Activity Monitoring (BAM)
- Business intelligence (BI)
Any among these technologies can be chosen for the construction of business services.