Saturday, February 9, 2008
Sunday, February 3, 2008
System Architecture
Occasion: My favorite teacher’s birthday and I visited her.
After asking me some general questionsshe says: Farhana, which is the subject in your MBA course that you are excelling in?
Ma’am: I thought so as that involves the least numbers .What is the subject that you find interesting?
ME: Interesting?! Systems engineering.
Ma’am: Good! All I know about system is the digestive system(she was my bio teacher) now tell me about System engineering and let me swap positions and become your student.
Ma’am: Shall I shoot the first question as what is System Architecture?
Me: System Architecture as the name suggests involves the process by which information systems are designed, developed, tested, and maintained. It is the structured requirement analyses, functional modeling, prototyping, software engineering, and system testing, documentation, and maintenance.
Ma’am: Ummm….
Me: System Architecture has evolved single tier, what happens in single tier architecture, is that all of the application processing takes place on a single computer—this includes user interface, business logic, and data processing.
The first stage of System Architecture was the single tier Architecture where all processing occurs on a single computer with data logically distinct from Applications.
The benefit of the single tier approach is that logical architecture comes down to cost savings, as you do not have to purchase nor maintain additional hardware.
But as due to the limitations of file sharing architectures, the client/server architecture emerged. In the client/server model, clients are processes that request services, and servers are processes that provide services. Essentially this gave us the two tier architecture. The two tier 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 clicks the button. 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.
Ma’am: It essentially means two tier architecture improves scalability by accommodating up to 100 users .
Me: Not only that but improves usability by supporting a forms-based, user-friendly interface giving flexibility by allowing data to be shared, usually within a homogeneous environment
Ma’am: Is there now a three tier?
Me: Well guessed! In the third tier a middle tier 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 by providing functions such as queuing, application execution, and database staging.
Hence a Three tier is used as the client application no longer directly queries the database; it queries the server application, which in turn queries the data server. The advantage is that no specialist software is required at each client location.
Well, now when the student wants to know his final grade
But the business application has to be always web enabled.
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.
That has bought us to the end of the session.