About Application Modules, View Objects, and Data Models

An Application Module provides a logical container for a data model represented by View Objects and View Links. Figure 1 shows an Application Module that contains four View Objects: DeptView, EmpView, EmployeeList, and YearsInService. The figure also shows the corresponding Entity Objects and the underlying tables in the database. A client application could access the four View Objects individually, but each access would require a separate trip across the network. The Application Module effectively groups or "wraps" the View Objects, enabling a client to access the entire data model (including information about the master-detail link between DeptView and EmpView) in one roundtrip.

Figure 1: An Application Module Lets Clients Access the Entire Data Model

Application Modules can be shared and reused by middle-tier components and client applications. Using Application Modules, you can build client frames as fully-functional stand-alone components. Each frame can have its own Application Module that describes its data model and provides any middle-tier, application-specific code and event handling the frame might require. Figure 2 shows two client frames. One frame uses an Application Module named AMFoo, the other uses AMBar. Each Application Module includes a data model (both data models use the View Object VO-C), and AMFoo provides some custom code.

Figure 2: A View Object Can Participate in Multiple Application Modules