Most software applications can be theoretically divided into three sections. The front-end, which is what the user sees and interacts with; the back-end, the server and possible database and all the dirty details; and then the parts that connect the two. There are different ways in how designers approach these, sometimes separating how each are handled, or even defined, and sometimes combining parts.
One well-known architectural pattern is Model-View-Controller. As the name suggests, the three parts are the model, the view, and the controller. Very simply put, the model controls the data, the view what the user sees, and the controller controls the complex interaction between the two. I put in the word "complex" to delineate between interactions that, while relatively simple to us, involve changing data in the model. This is because when the view simply wants to extract data for eventually presenting to the user, it can access the model directly. Thus, there is some overlap between what we might consider the front- and middle-ends.
Another popular pattern is Presentation-Abstraction-Control, used in, among others, Drupal. In PAC, the three parts can be considered analogous in name to the three in MVC, with presentation => view, control => controller, and model => abstraction, but the way in which they behave is different. The presentation is strictly for viewing, and any actual input-handling or the extraction of data for output is handled by control. The three sections are much more isolated and independent in PAC than in MVC. Another difference between the two is that there can be separate layers of PAC within an application. For example, in a complex system that does more than the simple get data->display data->get input->store input, there will be at least several different subsystems involved. Each gets its own isolated PAC components, which are in turn isolated from each other. The control for each PAC layer is what accesses and interacts with the other PAC layers.
It should be noted that often, in the case of these two patterns, a hybrid may be used. Often, an entirely different architecture is utilized.
Further reading:
MVC vs PAC - Garfield Tech
Garfixia Software Architectures
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment