Thursday, August 4, 2011

MIS ASSIGNMENT

Most informative conversation ever ;) between me(M) and my sibling (G) -

G: Hey , i wanted that song from your ipod?

M : Which one?

G: Who knew? By pink.

M: I m sorry ,but I have already deleted it. But you can always take it from the net , you know...raaga.com or whatever you prefer.

G: Yeah.

M: What’s that look?

G: Just wondering what would have happened if net wasn’t there. I’m really crazy for the song at the moment.

M: As a matter of fact, you would not have been able to download from the net...

G: Waaaaaat?

M: Had it been some 40 years back. At that time all you had were SINGLE TIER APPLICATIONS.

G: What’s that?

M: It means that both the data and the application reside on the same machine or platform. For eg, the song and the vlc player which plays that song. Or, let’s say the spreadsheet software and the data for the spreadsheet both of which lie on the same platform. As is evident, a single tier application is fine for personal applications but if there multiple people , which happens when employees of a company have to access, we move from single tier application to two – tier application or what is commonly known as Client Server applications. In two- tier architecture, the data is separated from the application and stored in a different platform. Each user has a copy of the application on his own machine, the client machines, but the data – the common data that is used by all- is stored in a common machine called the server. Hence, the name Client- Server. All these machines are connected together by the network- the Local Area Network and can exchange data with each other.

G: Wow. There wont be any redundancy, or inconsistency when the data is accessed by anyone as there is only one copy of the data which is available to all the users.

M: Also by placing the application logic on different machines ensures that none of the machines are loaded beyond their capacity, hence, performance does not deteriorate when you have a large number of simultaneous users.

G: But , instead of LAN , suppose we use it on WAN when we have to provide services to thousands of users spread all over the world, there will be high bandwidth requirements which will in turn slow down the entire application. Also , since you have a copy of the application on each user machine, then any change in the business logic will have to be quickly distributed, installed and configured on hundreds of far flung geographically dispersed machines. That would lead to manageability issues.

M: Exactly. And that is why, to get rid of so many problems we just discussed, there evolved the THREE TIER ARCHITECURE.

G: Now , what’s that?

M: In this the application is split into two – the presentation logic responsible for handling only the user interface, the screens , options menu etc is kept locally and the complex business logic – the part that computes salary, generates invoices, records ledger transactions (that is in case of a company) is stored at a central, common location. This gives the solution to our previous problem. Any significant change to the application has to be done only once at the central server and not at each location. This is known as the Application Server.

G:I can’t think of any well designed real life three tier application.

M: Consider an ERP product, like SAP, or Oracle. There would be a database server at the back, an application server – running the ERP software – in the middle and there would be client machines, with the ERP client software on every user’s desk.

G: But, you would still need the client software - or the equivalent user interface software - on every user's machine. What about that? And also, if a first time user is accessing your application over the internet, how would she know what client software is needed?

M: I see, you are more concerned about she's. Nothing surprising about that, but on a serious note on the internet we only use a browser and that is a MULTI-TIER ARCHITECTURE. Before you look more dumbfounded, in a multi- tier architecture, we place an additional machine called the web server between the application server and the user. In the three- tier architecture, the client software on the user machine is capable of communicating with the server application on the application server. B ut, in this the client server on the user machine is replaced by the web browser.

G: But how can the web browser understand the language of the application server directly?

M: It cant. That is why the business application has to be web enabled. But that is a small price to pay since we no longer need a specialist software at each client location. And an application rarely comes in today's time in which "web enabled" is not inherent. So, no price to pay at all.

G: This means I can have my cake and eat it too!

M: Everyone can have their entire big cake and eat it all by themselves. :)