Sunday, September 14, 2008


Professor: Jose Osorio

Application Architectures:

Why Breaking things into Layers (a background on the logic of

the last decade the complexity of application have increase this has
lead general programming practice of creating applications in a
layered structure a must; mainly due to a multitude of benefits with
minimal downsides. Layer structure an application are built to
“support such operational requirements as maintainability,
reusability, scalability, robustness, and security”. How do
they accomplish this. Well first off my offering interchangeable
programming code or parts. By doing this it allows programing to be
more reusable. With the move towards interchangeable code also comes
the design aspect of localizing changes in the code to affect only
the programing module or part it belongs to. This adds a layer of
security due to separated function in the design of an application,
you can set which programmer works on what section of the application
and which module produces changes to another. In an overall summary
the move to layered structure signifies more specializations across
the board of tasks, code, and work procedure.

Programming Layered Application Chart

Data Layer:

off the data layer is highlighted green in the chart and its primary
and sole purpose is the interaction with data inside databases and
exporting this information to the business layer. The reason for the
creation of the data layer was to separate the business layer from
the details of the data storage solution, to have an interchangeable
data storage component. This in turns “minimizes the impact of
changing database providers”, “minimizes the impact of
change data representation”. The user does not interact
directly with the data, DBMS(data base management system) does this.
The user interacts with the DBMS to request data and the way they
wanted represented. The (ActiveX Data Objects) components
relate to data storage and retrieval in Visual Studios. Examples of
the data layer, is the ability to interchange DBMS in a design, for
example you can sue Microsoft SQL for a DBMS or you can use Suns
MySQL, or Oracle.


business layered in the layer architectural design of business
application is the layer that translated the need and wants for the
business into business processes/work flow which then get converted
into business software rules and components. Business components are
the essence of the business layer. Business components can be made my
simply configuring a BizTalk Server and defining the business
processes. A example of the business tier is the credit allocated
that certain customers have, this is a business rule that must be
implemented in the application as a macro module that handles
available credit for customers. The business layer in the char above
is represented by the blue boxes.

Presentation Layer:

The presentation layer is mainly responsible for representing the
user with the data, given then a user interface to manipulate the
application. In the .NET world this consist of creating various
forms, these forms will be use to navigate to the appropriate data,
represent the data to the user and prove the user with the necessary
controls for manipulation of information. The user interface(UI)
components and the interface process components(UIP) are the building
blocks of the presentation layer, they provide the application
developer with the necessary tools to communicate with the business
layer. The UI components provides the System.Windows.Forms objects to
create feature rich user applications.

The yellow highlighted boxes above represent the presentation layer.
An example of the presentation layer is any form in an application.

A practical approach to Layered Application development chart:

Computing Environments:


Kernels, in my own words an omni kernel, this is a operating
environment that everything is store in the system memory space, let
that be drivers, servers, networking stack. The difference between
this and a micro kernel is that a micro kernel will only contain in
the kernel the necessary for basic operations, for example Virtual
Memory allocation, scheduler, but it will not contain such things as
device drivers. Device drivers are included in monolithic kernels. AN
example of a mnonolithic kernel is FreeBSD and Linux.


computing environment does not require a heavy explanation, it is
simple, you have a server a central hub/provider, which servers
information to its clients, clients can be users, computers,
protocols, applications. A very simple example is the web is a client
server model. The web browser is a client, and a web server is the
server. A web server serves web pages and the browser displays them.
The downside to this environment is that the information is
centralized therefore, if the server goes down no client will ever
reach their destination or information requested.


Known as Class Action Sue model. This computing model makes use of
nodes, nodes act as both clients and server, nodes in turn share
information to other nodes. P2P does not centralize the information,
the information is therefore spreading through out the Peer-to-Peer
network. A recently example of peer to peer network is bit torrent,
Limewire, former Napster, etc.. The downside of this design is that
the environment depend entirely on the performance, and participation
of the peers


Distributed Environment consist multiple computer/nodes that are all
working or running the same process they communicate with each other
through the network to accomplish each task. This type of environment
makes use of multiple node resources, a example of this is the
project, they make use of your hard drive space, so you in turn can
store files online. This is very useful when you need to make large
computations and don't have the necessary resources at hand. The
downside of this environment is if the grid(network) is not
implemented correctly the environment poorly.

N-Tier Computing:

an environment in which the application is executed by multiple sub
agents, for example, an application that utilizes middle-ware. The
most common form of N-tier computing, is the Three-Layer model
discussed above. The three layer model is in essence a client-server
model, an example of this is a web server with a database attached to
it. A famous one is gmail, gmail is a web email server that uses the
web interface as the presentation layer, it uses the google server
cluster in which is cluster is responsible for an activity. A cluster
maybe responsible for storing your mail, another for processing
(sending and receiving). The cluster responsible for storing will be
labeled the data layer and will have a sub agent called the DBMS, the
cluster responsible for managing your mail will be label the
presentation layer cluster.

The Gang Of Four:

Patterns: Elements of Reusable Object-Oriented Software was a book
written in 1994, the book was written to show solutions to common
programming issue during this time. The gang of four
Gamma, Richard Helm, Ralph Johnson, and John Vlissides the book
authors presented a way of documenting programs and design patters to
object oriented programs. The Gang produced 24 design patters in the
books, these were broken down into 3 category, the category are:
Behavioral, Creational, Structural Patterns.

aptterns avaiable for .NET are for example in C++, structural ,and
real world. “Structural code uses type names as defined in the
pattern definition and UML diagrams. Real-world code provides
real-world programming situations where you may use these patterns”.

Work Cited

Titles in C# and .NET
Data & Object Factory(2001). .
Retrieved 23:60, September 14, 2008, from

of Three Tier Model (2008, January).. Retrived, September 13, 2008,

Application Architecture The Data Access Layer (2006,
July)..Retrieved, September 14,2008 from

Layered Service Applications Microsoft MSD (2008)..Retrieved,
September 14, 2008 from

Chart Image..Retrieved, September 14, 2008 from