Saturday, February 9, 2008

My Home -sweet home

http://www.wikimapia.org/#lat=22.540994&lon=88.36684&z=18&l=0&m=a&v=2

Sunday, February 3, 2008

System Architecture

Date: 19th Jan
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?
ME (very confidently): Managerial Communication. (All the credit to CP sir)

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.

Me: Well! I have just started with System Architecture. Since I am a student of Praxis which believes in equal participation from both the student and teacher. This will be a Q&A session.

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: Will this require high bandwidth?
Me: Good Question. That’s the disadvantage it has, the two tier architecture has heavy high bandwidth requirement. Moreover it can be difficult to administer and maintain because when applications reside on the client, every upgrade must be delivered, installed, and tested on each client. The typical lack of uniformity in the client configurations and lack of control over subsequent configuration changes increase administrative workload.

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.

Ma’am: Give an example of where three tiers help over two tiers.
Me: Ummm…..ok coming back to the same example two tier is fine for 50 students but suppose the school has 10,000 students. Now we've got a problem as 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 resources.
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
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.In reality it is fast. 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.
But the business application has to be always web enabled.
Ma’am: This is indeed interesting. Tell me about the fourth tier?
Me: Heheh! No there isn’t the fourth tier but we have the multi tier architecture. Multi-tier architecture is a client-server architecture in which 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.
Ma’am: But this may need the internet?
Me: Yes! 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.
Ma’am: I read a lot about ERP in newspapers, isn’t it also essential to reduce complexity?
Me: I was just coming to it.ERP ensures greater integration across all functional units, basically a link up with all verticals like HR, Finance, Manufacturing into a common platform in order to enable application to talk to each other.
That has bought us to the end of the session.
Ma’am: Farhana must say that I have now got a fair idea of system architecture, and you have done a good job, my child.
Me: Thank you Ma’am.