The main difference between the present framework and the classical Model/View/Controller (MVC) framework is that in this framework, a Controller element encapsulates the actual control functions to be performed on one or more instances of associated Models. In the classical MVC framework, a Controller represents the functions that may be performed by a human interface element to modify the data in the Model or the appearance of the Model presented in the View. In the present framework, this function is performed by a HMI (Human/Machine Interface) element.
The major differences in the interactions among framework elements that are introduced by this modification of the classical MVC framework are shown in the tables below.
NOTE - The object classes and interactions shown are abstractions and do not necessarily represent the actual names of methods or object classes.
In the classical MVC framework, the Model (e.g., a data base or dynamic process model) notifies both the Controller and View elements when its data has changed, with the effect that the View updates its graphic representation of the Model and the Controller element notifies the user of the change. |
|
In the present framework, the Model (a function block instance)
also notifies the Controller and View elements (also function
block instances) when its data has changed, e.g., via an event at
its NOTE 1 - In this framework the "HMI element" replaces the "Controller element" of the classical framework. |
|
This framework allows the Model element to be replaced by an Interface element, i.e., a function block instance which implements the same interface as the Model element. |
In the classical MVC framework, user input is translated by the Controller element into either a command to the Model element to change its data, to the View element to change the way the data is displayed, or both. |
|
In the present framework, user input from an HMI element (a
function block instance) notifies the Controller element (also a
function block instance) when its data has changed, e.g., via an
event at its NOTE 1 - If the effects of the control actions are such as to cause additional changes in the Model data, this may result in additional notifications to the Controller and View elements. |