Release 10.1A: OpenEdge Getting Started:
OpenEdge Reference Architecture

> ## A layered architecture

> The idea that business logic should be separate from the user interface has become an accepted practice in application development. The OpenEdge RA extends that idea by defining and separating other functional areas as well. The separation of functional areas in an application is expressed as the layered model shown in Figure 1–1.

> Figure 1–1: The OpenEdge RA Model

> Layered models emphasize the independence of functionality in a software architecture. In other words, each layer performs a different set of functions, and each layer is independent of other layers.

> For example, UI logic in the Presentation Layer might depend on data from a business object implemented in the Business Servicing Layer. However the UI logic is not dependent on how the business logic was implemented. The UI logic can be JavaScript code, while the business logic was written in the Progress 4GL. Furthermore, the UI logic might be totally redesigned (or even implemented through some other technology) without having to change the business logic.

> The following sections define each layer of the OpenEdge RA in more detail.

> ##### Data Access Layer

> The function of components in the Data Access Layer is to separate data access from data storage. The purpose is to shield the rest of the application from the details of data storage, which makes applications easier to build and to maintain. For example, you might need to extend an application by changing the data source from a relational database to flat XML files. Such a change can be implemented in a single Data Access component rather than in multiple components throughout the application

> See Chapter 2, "Data Access Layer," for more information.

> ##### Business Servicing Layer

> The Business Servicing Layer contains the business logic and the processing components of an application. The components in this layer respond to events by taking certain actions. For example, when a price change occurs, update listings in a product catalog and notify sales reps. The components in this layer also enforce business rules. For example, do not process an order if balance due is over thirty days old. Furthermore, the components in this layer are structured to create a workflow among related processes.

> See Chapter 3, "Business Servicing Layer," for more information.

> ##### Presentation Layer

> The Presentation Layer is the user interface component of an application. It is the point where an external user interacts with an application. Interaction can be direct (by data input) or indirect (by viewing data).

> The Presentation Layer consists of three major components:

> - User interface components (forms, buttons, menus, etc.).

> - Controller logic that manages the binding between UI components and business logic in the Business Servicing Layer.

> - Service elements (or models) that define the contract with the Business Servicing and the Data Access Layers.

> See Chapter 4, "Presentation Layer," for more information.

> ##### Integration Layer

> The Integration Layer is similar to the Presentation Layer. Where the Presentation Layer exposes the OpenEdge RA application to external users, the Integration Layer exposes the application to external systems. Integration can be data-centric, which involves moving data from one application to another. Integration can also be functional, which involves exposing an application’s business processes and logic as a service that can be used by external systems.

> See Chapter 5, "Integration Layer," for more information.

> ##### Environment Managers and Utilities

> Environment Managers and Utilities include those components that provide application feature support. These include features like security, session management, context management, localization, personalization, and so on. The OpenEdge RA diagram in Figure 1–1 shows this layer spanning all the other layers in the architecture because these components could be accessed by components in a number of other layers. For example, a security component could be called from the Presentation Layer as well as from the Data Access Layer in order to grant permission to perform certain activities.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095