Monday, August 1, 2011

Explaining Systems Architecture


I was having a nap, squeezing some time out of our busy schedule when the phone rang! It was my cousin-sis in Kolkata. She had been given some assignment from her college on Systems architecture concepts and she was not having a clue to it because she had bunked her class the day those ideas were taught in class. I had to be her saviour once more!


"Just explain to me the basic idea right from the beginning, assume that I dont know anything!" she seemed nervous.

"Ok, you know what data is and you might also know that an application is one or more modules of business logic packed into a bundle that does some processing on these data to achieve some objective.
Now there can be different forms of architecture designed, depending on situations:
1) Single-tier
2) Two-tier
3) Three-tier
4) Multi-tier"

"And what are these?"

"The one-tier, or single-tier, architecture is a system in which the database, application, and presentation services (the graphical user interface) all reside on one system. This type of system does no processing external to the platform on which it is running."

"Can you give an example?"

"Yes, a Microsoft Access database with local presentation services is a common example. You can also think of a simple C Program which does some basic work without calling any other network interface as another example.
"2-tier architecture is also called client-server architecture. Here data is kept in a remote server and there are individual machines that connect to this data server to access data. These individual machines have business logic within them alongwith GUI and are the clients. The client connects to the server via the network and requests for resources which the server provides. This logical separation between application code and data eases maintainability"

"Ok, this much is clear, then?"

"Then there is the three-tier architecture. Its difference with 2-tier is that here the business logic is separated from the GUI or view aspect. Data as well as business logic resides in the remote server while the client only has the GUI-related code. Thus less data need to be transmitted through the network. Also any change in the core business logic will necessitate changes in only 1 place rather than individual client machines. SAP or any other commonly used ERP makes use of this architecture."

"Cool! And what is multi-tier?"

"It is only a logical extension of 3-tier. As you find, the tendency has always been to shift the bulk of data or code to the remote server from client machine. Here even the application-GUI is moved to the server. This is called a web-server. This server can only understand static contents as required for GUI. For dynamic content as in application logic, it requests the Application Server which in turn interacts with the Database . Requested information is then passed all the way back to the web-browser or client-browser which had initiated the request from the client machine. When we deploy a web application and then use a client browser to access the application, we are using multi-tier architecture!"

"Great!", she now seemed much relieved, "I have now more or less got the basics. I guess I shall understand more once I actually start working on these things!"

2 comments:

Calcutta said...

good

The Painkiller said...

Thank you, sir! I shall strive to do better next time