|
Page 1 of 2
Client Server Architecture
The Importance of Flexibility in a Changing World
Client-server software architecture is versatile and flexible in today’s fast-changing IT landscape. It is modular in structure and relies on messaging services for communication between components. They were designed to improve flexibility, usability, scalability, and interoperability. Software flexibility implies the ability for a program to change easily according to different users and different system requirements.
Usability refers to human-computer interaction and the ability of a software application to accomplish a user’s goal. Some defining features are ease-of-use and a clear, logical process of evolution towards a goal. Scalability refers to a product’s (be it hardware or software) ability to change in size or volume gracefully to meet user requests. Interoperability is the ability of software or hardware to function with other systems without requiring human intervention and manpower. Client-server software architecture aims to increase productivity through improvements in all of these categories.
Client-server architecture developed as a response to the limitations of file-sharing architectures, which require tons of bandwidth and can often stall or jam a network causing it to crash. They require low shared usage and low volume of data to be transferred. In client-server architecture, the database server replaced the file server. Relational data base management systems (DBMSs) answered user queries directly. Since only specific queries were being answered, only that data was transferred instead of entire files that slow down networks. It also improved consistency in data between users, since all users had access to the same updated information.
The primary languages for structuring queries are SQL and RCP. SQL stand for ‘standard query language’. SQL uses a GUI (graphic user interface) to make requests form databases. The newest ANSI (American National Standards Institute) standard is SAG SQL. However, there are several recent versions of SQLs for sale from a variety of major vendors from Microsoft to Oracle. RPC is ‘remote procedure call’.
RPC is protocol or set of rules structuring an intelligible request that is used by one program to request data or services from another program on another computer in another network. Full knowledge of network details is unnecessary. It allows an application to be distributed on and accessible from different platforms. Client and server stubs are created respectively so each party has the section it needs for the remote function it requests. Stubs are called to work when a remote function is required by the application and communication between client and server is synchronous. RPCs make it easier to design a client-server software architecture that employs multiple programs distributed over a network.
Two Tier Architecture
Two tier client-server software architectures improve usability and scalability. Usability is increased though user-friendly, form-based interfaces. Scalability is improved because two tiered systems can hold up to 100 users, whereas file server architectures can only accommodate 12. Two tiered architecture is best suited to homogeneous environments processing non-complex, non-time sensitive information.
Two tier architectures consist of three components: user system interfaces, processing management, and database management. User system interface (USI) is a component of an organization’s decision support system, which includes human decision-makers. It provides a user friendly layer of communication to make requests of the server and offers multiple forms of input and output. USIs include features like display management services, sessions, text input, and dialog. Processing management includes process development, process implementation, process monitoring, and process resources services. Database management includes database and file services.
Two tier client-server design derives its name from how it distributes work between client and server. Clients access databases through the user system interface. Database management, on the server side, distributes processing between both client and server. Both tiers, the client and the server, are responsible for some of the processing management. Simply put, the client uses the user interface to make requests through database management on the server side.
Most of the application processing takes place on the client side, while the database management system (DBMS), on the server side, focuses on processing data through stored procedures. Connectivity between the tiers can be dynamically altered depending on users’ requests and the services they are demanding. Two tier client server architectures work well for groups or businesses of up to 100 users on an LAN (Local Area Network), any more and service would deteriorate. Also, this software architecture offers limited flexibility by requiring the writing of manual code to move program functionality to a different server.
|