My friend Rash drops by at my place and the following conversation ensues.
Rash: Hey Donald! Wanna go hang out at Klub Pezo?
Me: Hey Rash! Thanks for dropping by. I’ve just started on some slides, could you wait till I’m done?
Rash: Hmmm…looks like you are way too busy these days. Lemme have a look. What are you reading?
Rash: Woaah! (Seeing the slides) These look scary! I never got a hang of this System Architecture thingy.
Me: Ahahahaha!
Rash: Why are you laughing? It’s not my fault that the I.T train decided to stop by your house waaaay to early. You seem to be very confident in Systems.
Me: Yes! I am. To put it simply, systems architecture is the design or set of relations between the parts of a system. You can say it is the structure of components, their interrelationships with each other and the environment, and the principles and guidelines governing their design and evolution.
Rash: Umm.Err. That wasn’t so simple. Could you explain it in Rash language?
Me: Look at it as a formal description of a system, or a detailed plan of the system at component level to guide its implementation.
Rash: That was much better. So I suppose that systems are designed on a “tier” basis?
Me: Yes initially integrated systems were known to be single tier in which the data is not separate from applications and all processing occurs on a single computer.
Rash: Something like my humble standalone home PC?
Me: Exactly! Provided it is not connected to the internet or is not LAN enabled. This kind of architectural set-up is infeasible in large organizations with huge data processing and storage requirements.
Rash: What difference would it make if my PC was LAN connected or for that matter connected to the internet?
Me: A big difference. Then what comes in is the Client/server concept. You PC could act as a server, storing data for access by others or even as a client, sending requests over networks for a specific purpose using TCP/IP protocol.
Rash: Now I get it! When I am hosting our favorite game Counterstrike so we can connect via LAN, I am actually acting as a server. When other players connect they are acting as clients. This means huge packets of data are flowing across client-server architecture. Similarly when I’m surfing the net, I’m pinging different websites as a client!
Me: Now you are on the right track. Now just imagine this set-up in a huge corporate headquarter of a Global firm. Huge databases like Oracle, SQLSERVER, MYSQL, and DB2 act as repositories of information. These are like servers. Applications are stored on end-user/ individual machines, better known as the client. Both client and server are separated by what we call the Graphical User Interface.
Networking enabled client/server computing, where the application no longer ran completely on a central computer or on a workstation, but was split across the two, giving us the two-tier architecture.
In two-tier architecture processing management is split between the user system interface environment and the database management server environment. The database management server provides stored procedures and triggers. The two tier client/server architecture is a good solution for distributed computing when work groups are defined as a dozen to 100 people interacting on a LAN simultaneously. But it does consume high bandwidth.
Rash: Hey! You do a good job of explaining things. I am actually finding this interesting.
Me: The three tier architecture is also very interesting as a middle tier is an added tier that separates the business logic from the user interface. This in principle allows the business logic to be used with different user interfaces as well as with different data stores.
Rash: Hold on! You lost me there!
Me: See, typically, the user interface runs on a desktop PC or workstation and uses a standard graphical user interface, functional process logic may consist of one or more separate modules running on a workstation or application server, and an RDBMS on a database server or mainframe contains the computer data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an "n-tier architecture").
The 3-Tier architecture has the following 3-tiers:
Presentation Tier
This is the top most level of the application. The presentation tier displays information related to such services as browsing merchandise, purchasing, and shopping cart contents. It communicates with other tiers by outputting results to the browser/client tier and all other tiers in the network.
Application Tier/Logic Tier/Business Logic Tier
The logic tier is pulled out from the presentation tier and, as its own layer; it controls an application’s functionality by performing detailed processing
Data Tier
This tier consists of Database Servers. Here information is stored and retrieved. This tier keeps data neutral and independent from application servers or business logic. Giving data its own tier also improves scalability and performance.
Rash: So you mean in three-tier system architecture, the application’s business logic is separated from the user interface and placed in business components.
Me: You got that right
Rash: How is three tier beneficial from two tiers?
Me: The three tier client/server architecture has been shown to improve performance for groups with a large number of users in thousands and improves flexibility when compared to the two tier approach. Another similar client-server set-up is the multi-tier architecture which is a client-server architecture where an application is executed by more than one distinct software agent. For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture.
Rash: But this may need the internet?
Me: That’s right. Here business application has to be web enabled but specialist software at each client location is not required.Now we come to two-tier –Multiple Applications, here it is the applications are either from different vendors or developed in-house based on different technology platforms across more than one machine.To manage such complexities, RDBMS is a system that manages data using the relational model assuring no duplication or inconsistency of data is a very easy to manage backups.
Rash: What about all this fuss about ERP lately? Don’t you think most companies are going overboard with this ERP?
Me: No way!!! ERP ensures greater integration across all functional units. A company links up all its verticals like HR, Finance, Marketing, I.T and Manufacturing into a common software platform in order to enable applications to talk to each other. These systems attempt to integrate all data and processes of an organization into a unified system.
Rash: Hmmm.Suddenly System architecture doesn’t seem all that bad!
Me: Just like I told you! Didn’t take much time now, did that? Which reminds me that we got to go meet friends at Klub Pezo and that you owe me a jumbo juicy burger for all those explanations!
Rash: Well ill make that a Multi-tiered one, just for you, my friend!
Me: Ahahahaha…well said…well said.
Sunday, February 3, 2008
Subscribe to:
Posts (Atom)