Try OpenEdge Now
skip to main content
WebSpeed Essentials
Introducing WebSpeed : WebSpeed and the OpenEdge platform : WebSpeed and the OpenEdge Reference Architecture
 

WebSpeed and the OpenEdge Reference Architecture

If you adopt the OE Reference Architecture, you must consider where WebSpeed applications are appropriate choices. Before coding a task into the WebSpeed part of your application, you should consider if it really belongs there. What is the essential difference between a WebSpeed application and an equivalent ABL application?
A WebSpeed application and an equivalent ABL application use the same data to complete the same business task. So, they would use the same modules in the Data Access layer. To perform the same task, both applications would use the same business logic. So, they would use the same modules in the Business Servicing layer.
The essential difference between WebSpeed and ABL applications is how they gather information from and present results to the user. A WebSpeed application uses an HTML client (or a client based on some other markup language). This point positions WebSpeed applications as elements of the OE Reference Architecture's Presentation layer, as shown in the following figure.
Figure 4. WebSpeed's use in OpenEdge Reference Architecture
In an application built according to the reference architecture, a WebSpeed component passes user requests to the appropriate procedures in the Business Servicing layer and passes the results back to the user. This role limits the kinds of tasks that you would code into WebSpeed procedures.
For example, the following tasks are generally appropriate for the Presentation layer:
*Validating that the fields in a form are filled in with appropriate values.
*User interface control tasks, such as populating a secondary combo box based on the selection in the primary combo box.
The following tasks are generally not appropriate for the Presentation layer:
*Calculation routines, such as figuring price totals or sales tax.
*Direct database access for anything other than a UI control task.