Application Development Framework (ADF) – An Overview
By: Tanveer Mohammed | Senior Developer
Application Development Framework (ADF) is a framework built on Java J2ee technology. ADF is utilized for rapid application development. The core premise of ADF’s introduction is to ensure that developer teams can rapidly build applications in visual declarative ways (drag and drop) instead of writing large segments of time-intensive code.
Figure: A Typical ADF Application Overlay
Application Development Framework (ADF) follows a Model-View-Controller (MVC) pattern, where it completely isolates business logic from the View layer. In a standard ADF application, all the business logic resides inside the Model layer. The Model layer carries business objects for CRUD operations on database, web-service calls, POJO datacontrols from other backend systems, etc. Business objects are further broken down into application module, entity objects and view objects.
Entity objects resemble a row in a database table. We can further override the default DML operations by simply extending entity implementation classes provided by the entity object. Validations can be added at entity level, doing so will make such a validation available to all consumer interfaces. View objects are nothing but your SQL query result sets. Additionally, View objects can be derived from either entity object, SQL query and programmatically. View objects can be tuned to improve the performance of the ADF application. Some tips around tuning View objects are to have separate View objects for read-only queries and updatable queries. Using such an approach one may appropriately specify batch size to fetch rows from database tables. The Application module handles transactions and defines what business functionalities are exposed to the View layer.
Application Development Framework (ADF) possesses a smart way to maintain its established connection pool. It passivates “least recently used” connection and allocates the resources to another request ensuring optimal use of resources in the pool. Data control palette contains all the operations, data that are exposed through application module. Anything from the data control palette can be dragged and dropped on the View layer as field, table, tree, operation etc. In View layer ADF provides a rich set of components (it has more than 150 UI components). ADF components repository have several layout components like panel stretch layout, panel form layout, and panel group layout to name a few. It has basic components such as button, table, radio, checkbox, select one choice, input text, output text, calendar, carousel, date chooser, tree and many more.
Figure: UI Components of ADF
The View layer is comprised of bounded taskflow, unbounded taskflow, JSPX page and JSFF fragments. Usually, there is one unbounded taskflow in a framework application which acts as entry point/navigation model of the ADF application. JSPX pages are pages which can be directly called from URL and usually are part of unbounded taskflow. Bounded taskflow is self-contained reusable functionality which once developed can be easily shared and used in any ADF application. Bounded taskflow has a single entry point and can have multiple exits/returns. Bounded taskflow usually possesses multiple page fragments (JSFF) and routing activities. JSFF fragments are the actual place where the functionality is implemented by dragging and dropping business objects from the data control pallet as UI components.
Figure: Bounded Taskflow
ADF applications provide authentication and authorization support using file based security model (i.e. JAZN or using database model like OPSS). During the development phase, JAZN.xml file can be used to define the authorization to resources. Resources such as pages, bounded task flows, and more can be fully secured. Application roles can also be created and mapped to enterprise roles. The JAZN.xml file upon deployment gets merged with system-jazn.xml file on WebLogic application server. The ADF application is authenticated against the LDAP provider registered on WebLogic server.
The deployment of the ADF application is executed by preparing and deploying the EAR file.
Application Development Framework was designed with reusability in mind. The entire ADF application can be deployed as a shared library that may expose its entire taskflow to be consumed by another consumer application.