Understanding DataControl Abstraction in ADF Structure

I am studying the Oracle ADF framework and want to understand what the DataControl service provides for UIComponents. I realized that there is an abstraction of the binding container that actually performs the binding between the View Objects and the UIComponents that are displayed on the page. What role does datacontrol abstraction play in this structure?

In other words, what is the relationship between datacontrol and bindings that runs in the binding environment and what can be called the datacontrol equivalent in a regular Java EE application?

0
source share
2 answers

The binding layer connects the user interface layer to the data management layer. Note that the user interface layer can be a JSF page, an Excel spreadsheet, a Swing user interface, and an ADF Mobile page. The datacontrol layer provides access to a business service in an abstract way, so the user interface designer does not need to know with what specific technologies the business service is implemented.

To learn more about data binding / data management layers, see two seminars here: http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adfinsider-093342.html#a2

In the Java EE world, CDI will be the closest - but ADF binding provides a much more complete solution focused on various types of user interfaces, various types of backends.

+3
source

What role does datacontrol abstraction play in this structure?

DataControl is an additional level of abstraction for accessing business services (the actual level of the model).

In ADF, business services support different types, for example

  • Based on application module (access to relational database)
  • Web services
  • URLs to access data via URL
  • EJB data service for accessing business data through Java EE EJBs

These various types of data access are encapsulated by the data management layer. The data management layer provides a common interface using Attributes , Collections and Operations for use in the binding layer. In the bind layer, it does not matter when an RDBMS, web service, or something else is available when querying and updating data.

One of the difficulties that I encountered with ADF was that when I implemented a simple application with the RDBMS backend, I could not see any real benefit from this additional layer - in addition, the data controls were immediately available in JDeveloper after defining the data model in the application module, and for them there was not even a configuration file. But this is only true when using the Application Module business service. In this case, all metadata for the data controls is retrieved from the Application Modules data model. The real benefit comes from using other types of business services, such as web services. Then there are also .xml metadata files created to customize these data controls.

What is the role of the bonding layer and how does it interact with the datacontrol level

The level of binding improves data controls, so data can be used in the user interface. A typical binding is an iterator (=> tie layer) that tracks the current record in the collection (=> data management). Without an iterator there would be no concept of “current record”, and moving between records would not be possible.

Another aspect is the development time of JDeveloper: data management provides the necessary metadata to automatically create the necessary bindings when you drag and drop the data control onto the user interface page.

The entries mentioned by @Shay Shmeltzer are certainly worth considering, as they provide a very good idea of ​​the data controls and middleware.

+3
source

All Articles