Client server architectures are one of the three fundamental application architectures and are the most common architecture for the internet. Work done by any program can be categorised into four general functions: Presentation logic is the way the computer presents the information to the user and the acceptance of user’s inputs.
Application logic is the actual work performed by the application
Data access logic is the processing required to access data ie queries and search functions
Data storage logic is the information that applications need to store and retrieve.
Client server architectures split this application logic up so work is separated between servers and clients. (Dennis, 2002)
The simplest of client server architectures is the two-tiered architectures. Two-tiered architectures have only clients and servers and split the application logic in half. With presentation logic and application logic kept on the Client computer whilst the Server manages the data access logic and data storage. Both a disadvantage and a advantage of client server architectures is the fact they enable software and hardware form different vendors to be used together. This creates a disadvantage as it is sometimes difficult to get different software to work together. This can be resolved using middleware software that sits between application server and client. This creates a standard way of communicating so software from different vendors can be used. It also enables easier installation if the network layout change occurs or is updated (a new server is added) as the middleware software tells the client computer where the data is kept on the server computer.
Three-tiered architectures make use of three computers and typically separates presentation logic, application logic and combines data access logic and storage together. Whilst a n-tier architecture uses more than three sets of computers and usually spreads the logic on to separate computers sometimes spreading application logic across two or more different servers. The primary advantage of a n-tier client server architecture is it separates out the processing that occurs so that the load on the different server is more scalable. On a n-tiered architecture there is more power than if we have a two-tier architecture (as there are more servers) if an update is required we simply add a server, instead of replacing a whole machine. N-tier and three-tiered architectures do have certain disadvantages. Greater load is placed on the network this is because there are more communication lines and nodes in the network. Because of this a lot of network traffic is generated therefore a higher capacity network is required. Also n-tier networks are much more complex and it is more difficult to program and test software due to once again the number of communication lines.
Carr, H. H. & Synder, C. A. (2007) Data Communications & network security. United States of America: McGraw-Hill/Irwin pg 124-129
Dennis, A. (2002). Networking In The Internet Age Application Architectures. United States of America: John Wiley and Sons, Inc
Dostálek, L., & Kabelová. A. (2006). Understanding TCP/IP. Retrieved August 6, 2006 from http://www.windowsnetworking.com/articles_tutorials/Understanding-TCPIP-Chapter1-Introduction-Network-Protocols.html