Mitra: Hii Monika .. did u understand anything of systems architecture in yesterday’s
class. I had an assignment to do night before.. simply couldn’t keep my eyes
open..
Me:
Oh ..thats sad.. but don’t worry.. I’ll help u out.. I got a clear enough
understanding of the same..
Mitra:
That would be great.. shall we start now?? Can u tell me the need for an architecture
for computers???
Me:
Computer science is basically consisted of data and application…data which
consists of data structure is the thing which has to be processed. .and
application which tells us how to operate on that data. As computer science
progressed , data volume became huge and applications got more and more complex…
it became impossible to store data and application on the same computer since
the processing became extremely slow. So this created a need to have an
architecture which could separate data from application..resulting in less
processing time.
Mitra:
ok..got it… Now ..the architecture as we have today is quite complex …do you
have any idea how it evolved to be like this???
Me:
Actually, the architecture we use today is multi tier architecture. First it
was a single tier ..then came two tier..three tier..and finally the one we use.
Single tier architecture is the one in which data and application
separately reside in one physical system.
*PL—Presentation
Layer
*BL—Business Layer
It
is rare nowadays to find a substantial single-tier application, especially on a
Windows 2000 platform. However, many smaller, single-user applications are
single tier. Examples of this are Microsoft Money, Quicken, and TurboTax. These
applications typically reside on the same system on which they are running.
The
two tier architecture was a
modification over this. The design allocates the user system interface
exclusively to the client. It places database management on the server and
splits the processing management between client and server, creating two
layers.
Let's suppose I'm going to write a
piece of software that students at a school can use to find out what their
current grade is in all their classes. I structure the program so that a
database of grades resides on the server, and the application resides on the
client (the computer the student is physically interacting with).When the
student wants to know his grades, he manipulates my program (by clicking
buttons, menu options, etc). The program fires off a query to the database, and
the database responds with all the student's grades. Now my application uses
all this data to calculate the student's grade, and displays it for him.
Two-tier
applications are common. You might have worked with many of these applications
already. The two tier architecture requires minimal operator intervention,
and is frequently used in non-complex, non-time critical information processing
systems. These applications are typically created in languages that support the
Windows programming APIs, such as Microsoft Visual C++ or Visual Basic. With a
two-tier application, each user must have one or more connections into the SQL
Server database. Maintenance and version control has to installed in every
machine that uses the application.
Mitra:
Now, this architecture is fine, if you've got a school with 50 students. But
suppose the school has 10,000 students. Now we've got a problem. Right?
Me: Yes..because every time a student queries the client application, the data server has to serve up large queries for the client application to manipulate. This is an enormous drain on network sources.
So what do we do? We create a 3-tier architecture by inserting another program at the server level. We call this the server application. Now the client application no longer directly queries the database; it queries the server application, which in turn queries the data server.
Mitra: What is the advantage to
this? Well, now when the student wants to know his final grade,the following
happens:
1. The student asks the client application.
2. The client application asks the server application.
3. The server application queries the data server.
4. The data server serves up a record set with all the student's grades.
5. The server application does all the calculations to determine the grade.
6. The server application serves up the final grade to the client application.
7. The client application displays the final grade for the student.
1. The student asks the client application.
2. The client application asks the server application.
3. The server application queries the data server.
4. The data server serves up a record set with all the student's grades.
5. The server application does all the calculations to determine the grade.
6. The server application serves up the final grade to the client application.
7. The client application displays the final grade for the student.
Me:
It's a much longer process on paper, but in reality it's much faster. Why?
Notice step 6. Instead of serving up an entire record set of grades, which has
to be passed over a network, the server application is serving up a single
number, which is a tiny amount of network traffic in comparison.
The
third tier (middle tier server) is between the user interface (client) and the
data management (server) components. This middle tier provides process
management where business logic and rules are executed and can accommodate
hundreds of users (as compared to only 100 users with the two tier
architecture) by providing functions such as queuing, application execution,
and database staging. The three tier architecture is used when an effective
distributed client/server design is needed that provides (when compared to the
two tier) increased performance, flexibility, maintainability, reusability, and
scalability, while hiding the complexity of distributed processing from the
user. These characteristics have made three layer architectures a popular choice
for Internet applications and net-centric information systems.
Mitra
: This sounds pretty good. Why do we need the multi layer architecture then???
Me
: It has been found that three-tier methodology lacks some critical features
such as reusability of application logic code and scalability. That is, there
may arise a situation whereby a collection of application logic code results
and they can not be reused and also they do not communicate with one
another. Thus there came a need for a viable architecture that mainly
facilitates reusability of business logic as reusability phenomena has been
found to reduce the cost of software development and the time to market and its
quality is assured.
Thus
came the notion of n-tier architecture. To turn a three-tier architecture into
an n-tier system, the middle tier can be allowed to have multiple application
objects rather than a single application. Each of these application
objects must have a well-defined interface which allows them to contact and
communication with one another. An interface is actually brings an idea of
contract. That is, each object states through its interface that it will accept
certain parameters and return a specific set of results. Application objects
uses their interfaces to do business processing.
With
an n-tier architecture, one can have multiple applications using a common set
of business objects across an organization. This promotes the standardization
of business practices by creating a single set of business functions for the
entire organization to access. If a particular business rule changes, then
changes have to be made to only the business object and if need, to its
interface also.
Mitra:
Okk.. Got it .. but how are we supposed to manage the huge amount of data we
deal with these days.. does not that cme under the domain of system
architecture???
Me:
Yeah..sure it does.. We manage data traditionally by using RDBMS..relational
database management systems. But nowadays , we use Enterprise Resource Program
is being used. But , I better tell you
about that sometime else…I got to run now.. have a lecture to attend in 15
mins..
Mitra:
Oh ..sure..thanks a lot..



