Monday, August 20, 2007

Model, View, Controller (MVC)

Model:

As a health insurance company customer, you may get inundated with paper, or you may have secure password access into your personal records, complete with graphical summaries showing just where you paid the deductible, when the company payments kicked in, and so forth.

View:

Big companies are especially keen to see the latter, as their costs run very high. Having a NASA-style mission control room, with some bosses just staring at those health insurance screens, makes plenty of sense.

Atop these models, we have multiple Views, sometimes tailored by students of Edward R. Tufte, sometimes encoded in an XML (such as X3D), hence those very intelligible detailed and summary mappings provided by the more upscale insurance and banking institutions to their corporate customers.

Such views are likewise needed for in-house quality assurance.

Controller:

The underlying databases comprise simple tabular storage, but the rules governing those records, their creation, update and deletion, are according to what're called "business rules."

These rules define the model, but are implemented in control languages, in SQL for example, with its commands to grant and revoke privileges, at the global, database and tabular levels.

Python, Perl, Ruby... JavaScript, Java are all would-be Controllers, and could potentially have some role in piping data back and forth between storage and user workstations, in accordance with the model's rules.

Related reading @ Math Forum.