Company X is a fictional manufacturer of gourmet snacks and treats.
When discussing software architecture, software engineers often use a pattern called Model-View-Controller, or MVC. The MVC concept was originally developed by Trygve Reenskaug in an attempt to bridge the gap between the user’s mental conception of the process and the computer’s digital rendering. Reenskaug (n.d) claims that “the ideal MVC solution supports the user illusion of seeing and manipulating the domain information directly” (para. 4). Rayport and Jaworski (2004) reiterate this concept as a three tier architecture comprised of three layers: Data, Presentation, and Business Logic. These three layers correlate directly to the MVC architecture proposed by Reenskaug.
The data layer is responsible for storing the information necessary to run the application. In the case of Company X, this is the web site. The data layer, or model, is not merely responsible for the storage of information, but also helps define it and give it structure. In fact, some web frameworks, such as Ruby on Rails, expect the data layer to be directly responsible for the data definition. Other frameworks, such as Django or ASP.NET expect the software engineer to model the data structure first, and then implement the data layer to the specifications of the model.
The most import aspect of the data layer is the method in which the data is stored. The database of information can take many forms, but the standard software for today’s web sites is the relational database. Company X can choose from a plethora of available relational database servers, but two popular software packages are Microsoft SQL Server and MySQL. Microsoft SQL Server requires Microsoft Windows to be the operating system on the server. Additionally, Microsoft SQL Server has several licensing options and pricing plans. The standard edition of Microsoft SQL Server 2005 is $5,999 per processor (Microsoft, 2008).
MySQL is an alternative relational database server. Although it was originally designed to run in the UNIX operating environment (including Linux), MySQL has been ported to many other platforms. The MySQL Community Server is freely available to anyone who wishes to use it. This availability has led to its wide adoption in many of the largest websites. In a recent panel, Facebook.com admitted to utilizing 1800 MySQL servers to power their social network (MySQL, 2008).
The presentation layer, or view, describes how the data is rendered to the user. Two major display mediums for an online presence are HTML and Flash. Flash has the advantage of being more cinematic and can also render video. Since it requires a plugin to operate, it is certain to appear the same in every users’ web browser. HTML, on the other hand, is much faster than Flash, but lacks much of the visual element. Although it depends on the web browser for proper rendering, its freedom from a required plugin means it will always be available to any user. Fortunately, neither of these presentation layers is dependent on any particular operating system. As long as server has a web server that can deliver content to the end-user, both will work just fine.
The final piece of the MVC model is the controller, or business logic layer. The layer acts as a middle ground between the data and the end-user. The business log layer ensures that the user is presented with the right information, and that any user interaction with the data is full validated (Rayport & Jaworski, 2004). Two popular presentation layers are ASP.NET for Microsoft Windows and Django. Both pieces of software can really be thought of as web frameworks designed to help developers quickly implement the business logic necessary to run a web site. ASP.NET is freely available but tied to the Microsoft Windows operating system. Django is also free, but has the advantage of being available on many platforms including Microsoft Windows and Linux.
Security discussions with Company X has shown them to be very sensitive to cost. Any solution dependent on Microsoft Windows is going to come with a relatively high price tag. As a reminder, Microsoft SQL Server 2005 is almost $6,000 per processor. Therefore, the obvious solution for Company X is to develop a solution that utilizes free software. In this case, the best solution is a Linux-based server using MySQL for the database and Django, or other free framework, for the business logic layer. Since compatibility and performance are important to end users, Flash should be avoided in favor of HTML.
Microsoft Corporation. (2008). Microsoft SQL Server 2005: Pricing. Retrieved November 3, 2008.
MySQL – Up or Out? (2008). Video posted to http://www.pythian.com/blogs/947/panel-video-scaling-mysql-up-or-out
Rayport, J. F., & Jaworski, B. J. (2004). Introduction to e-commerce (2nd ed.). New York: McGraw-Hill/Irwin.
Reenskaug, T. (n.d.) MVC. Retrieved November 3, 2008.