To minimize round trips to the server when users
modify reports, the RAS SDK uses a Model-View-Controller architecture:
The
Model layer has libraries that define the information used to construct a
report. This layer also contains the visible elements of a report, such as text
labels, charts, and formulas.
The
View layer provides the means to create a user interface that displays a report
based on data from the model layer.
The Controller layer is implemented by a
library that defines classes called controllers, which let users modify
reports.

Each controller is responsible for modifying the
data defined by its corresponding model. For example, the
ReportDefController controller
is used to modify Areas, Sections, and ReportObjects defined by the
ReportDefinition model. If no modification is required, the Areas, Sections and
ReportObjects can be directly accessed through the ReportDefinition model. The
view layer is the component that is available for the development of a user
interface to view reports; it can be implemented by using the
RowsetController controller,
PrintOutputController
controller or Viewers SDK.
All the models and controllers are encapsulated
by the ReportClientDocument object model.