Client/server architecture illustrates the relationship between two computer programs in which one program is a client, which makes a service request to another program called as Server which provides service to the request. A single machine can be act as both, a client as well as server depending on the software configuration. Although the client/server architecture can be used within a single computer by programs, but it is a more important idea in a network. In a network, the client/server architecture allows efficient way to interconnect programs that are distributed efficiently across different locations. The common use of client/server model is in Computer transactions. For example, if I have to check my bank account from my computer, I have to send a request to a server program at the bank. That program process the request and forward the request to its own client program that sends a request to a database server at another bank computer to retrieve client balance information. The balance is sent back to the bank data client, which in turn serves it back to my personal computer, which displays the information of balance on my computer (http://www.webopedia.com/TERM/C/client_server_architecture.html).
Client/server architecture
This approach introduced replacement of file server by database server. User queries could be answered directly by using a relational database management system. The client/server architecture significantly decreased network traffic by providing a query response rather than total file transfer. It allows multi-user updating through a GUI front end to a shared database. Remote Procedure Calls (RPCs) or standard query language (SQL) statements are typically used to communicate between the client and server (http://www.buzzle.com/editorials/2-20-2005-66015.asp).
Here are some types of client/server architectures:
– Two tier architectures
In two tier client/server architectures, the user interface is placed at user’s desktop environment and the database management system services are usually in a server that is a more powerful machine that provides services to the many clients. Information processing is split between the user system interface environment and the database management server environment. The database management server supports for stored procedures and triggers.
– Three tier architectures
The three tier architecture is introduced to overcome the drawbacks of the two tier architecture. In the three tier architecture, a middleware is used between the user system interface client environment and the database management server environment. These middleware are implemented in a variety of ways such as transaction processing monitors, message servers or application servers. The middleware perform the function of queuing, application execution and database staging. In addition the middleware adds scheduling and prioritization for work in progress. The three tier client/server architecture is used to improve performance for large number of users and also improves flexibility when compared to the two tier approach. The drawback of three tier architectures is that the development environment is more difficult to use than the development of two tier applications (http://www.buzzle.com/editorials/2-20-2005-66015.asp).
Advantages of Client/Servers architecture:
The client/server model is particularly recommended for networks requiring a high degree of reliability, the main advantages being:
Centralized resources: given that the server is the centre of the network, it can manage resources that are common to all users, for example: a central database would be used to avoid problems caused by redundant and inconsistent data.
It has also enhanced features such as usability (the capability of the software product to maintain its level of performance under stated conditions for a stated period of time), maintainability (the capability of the software product to be modified. Modifications may include corrections, improvements or adaptations of the software to changes in the environment and in the requirements and functional specifications), scalability/reliability (the capability of the software product to maintain its level of performance under stated conditions for a stated period of time), and portability (the capability of the software product to be transferred from one environment to another. The environment may include organizational, hardware or software environment).
http://www.jot.fm/issues/issue_2003_03/article2/
Improved security: as the number of entry points giving access to data is not so important.
Server level administration: as clients do not play a major role in this model, they require less administration.
Scalable network: thanks to this architecture it is possible to remove or add clients without affecting the operation of the network and without the need for major modification (http://en.kioskea.net/contents/cs/csintro.php3).
Disadvantages of client/server
Increased cost: due to the technical complexity of the server
A weak link: the server is the only weak link in the client/server network, given that the entire network is built around it.
Also, there is other concern for the client/server architecture which has not evolved to the point where controls are inherent in the design, maintenance, and operation of the system. Controls are more difficult to implement effectively due to the distributed, decentralized and complex nature of the client/server environment (http://en.kioskea.net/contents/cs/csintro.php3).
Management controls for client/server networks
Network Management Systems have played a great important role in information systems. Management is very important and essential in any fields. There are many managements such as configuration management, fault management, performance management, security management, accounting management and etc. Among them, configuration, fault and security management is more important than others because these are essential and useful in any fields especially client/server network. Configuration management is to monitor and maintain the whole system or LAN, Fault management is to detect and trouble shoot the system, and Security management is to control the whole system (http://www.patentstorm.us/patents/6664978/claims.html).
In conclusion, the client/server technology introduces new risks as well as benefits. In today’s competitive environment, client/server technology can be a strategic initiative of the organization, and therefore is not just a technological concern; it is also a business concern. Customer demand for flexible and timely management information has fostered its growth. Faster delivery of services, ability to leverage emerging technology, autonomy of end-users, and productivity gains from re-engineering the work flow are all potential benefits.
Reference:
http://www.patentstorm.us/patents/6664978/claims.html
http://en.kioskea.net/contents/cs/csintro.php3
http://www.jot.fm/issues/issue_2003_03/article2/
http://www.buzzle.com/editorials/2-20-2005-66015.asp
http://www.webopedia.com/TERM/C/client_server_architecture.html