390 likes | 914 Views
CLIENT SERVER COMPUTING. Definition: A simple definition of CS is “ server software accepts requests for data from client software and returns the results to the client”. CLIENT SERVER COMPUTING.
E N D
CLIENT SERVER COMPUTING Definition: A simple definition of CS is “ server software accepts requests for data from client software and returns the results to the client”
CLIENT SERVER COMPUTING • Client-Server computing is the logical extension of modular programming with fundamental assumption that separation of a huge program into its constituent parts ("modules") can create the possibility for further modification, easier development and better maintainability. • The main emphasis of Client-Server Architecture is to allow large application to be split into smaller tasks and to perform the tasks among host (server machine) and desktops (client machine) in the network
Elements of C-S Computing a client, a server, and network Request Client Server Network Result Client machine Server machine
Where Operations are Done In CS Relationship “most of the application processing is done on a computer (client side), which obtains application services (such as database services) from another computer (server side) in a master slave configuration
GOAL OF THE CLIENT SERVER • The goals of Client-Server Computing are to allow every networked workstation (Client) and host (Server) to be accessible, as needed by an application, and to allow all existing software and hardware components from various vendors to work together. • When these two conditions are met, the benefits of client/server computing, such as cost savings, increased productivity , flexibility, and resource utilization, can be realized.
FUNCTIONS OF CLIENT The client's responsibility is usually to: • Handle the user interface. • Translate the user's request into the desired protocol. • Send the request to the server. • Wait for the server's response. • Translate the response into "human-readable" results. • Present the results to the user.
FUNCTIONS OF SERVER The server's functions include: • Listen for a client's query. • Process that query. • Return the results back to the client
A typical client/server interaction goes like this: • The user runs client software to create a query. • The client connects to the server. • The client sends the query to the server. • The server analyzes the query. • The server computes the results of the query. • The server sends the results to the client. • The client presents the results to the user. • Repeat as necessary.
Typical Client/Server Interaction AND Butler Pyramid Model of Client-Server Computing
Layer 1 - Infrastructure Layer: The infrastructure layer is composed of all the components which are passive and do not perform a business function. Examples are computer operating systems, networks, user interfaces and database management systems Layer 2 - Middleware : Middleware allows applications to transparently communicate with other programs or processes regardless of location. It is the means of mapping applications to the resources they use. It is the key to integrate heterogeneous hardware and system software environments, providing the level of integration
Layer 3 – Applications: Applications are the active components which execute work for the organization. Layer 4 – Repository: Role of repository is to isolate a business model/specification from the tools technology which is used to implement it (client-server strategy). Layer 5 - Business Models: Business model should be independent to all the technologies that are used to implement it, and be transportable to whichever hardware and software environment is most appropriate. It will increasingly be based on object oriented methods
CHARACTERISTICS OF A CLIENT: • Request sender is known as client • Initiates requests • Waits for and receives replies. • Usually connects to a small number of servers at one time • Typically interacts directly with end-users using a grapical user interface
CHARACTERISTICS OF A SERVER: • Receiver of request which is sent by client is known asserver • Passive (slave) • Waits for requests from clients • Upon receipt of requests, processes them and then serves replies • Usually accepts connections from a large number of clients • Typically does not interact directly with end-users
ADVANTAGES OF CLIENT SERVER COMPUTING • Centralization –access, resources, and data security are controlled through the server. • Scalability –any element can be upgraded when needed. • Flexibility – new technology can be easily integrated into the system. • Interoperability- all components (clients, network, servers) work together. • Accessibility- server can be accessed remotely and across multiple platforms • Ease of application development. • Lower total cost & User friendly.
DISADVANTAGES OF CLIENT SERVER COMPUTING • Dependability – when the server goes down, operations cease. • Lack of mature tool – it is a relatively new technology and needed tools are lack. e.g. Automated client software distribution. • Lack of scalability – network operating system ( e.g.. Novell Netware, Windows NT server) are not very scalable. • Higher than anticipated costs. • Can cause network congestion
EXAMPLES OF CLIENT-SERVER • Clients are most often web browsers. • Servers typically include web servers, database servers and mail servers. • Online gaming is usually client-server too. • Most transactions that occur on the Internet are client/server based. Some examples include: FTP (file transfer protocol), WWW (World Wide Web) and E-MAIL
Categories of Servers • File Server • Data Server • Compute Server • Database Server • Communication Server • Video Server
File Server • File Servers manage a work group’s application and data files, so that they may be shared by the group. • Very I/O oriented • Pull large amount of data off the storage subsystem and pass the data over the network • Requires many slots for network connections and a large-capacity, fast hard disk subsystem.
Compute Server • Performs Application logic processing • Compute Servers requires • processors with high performance capabilities • large amounts of memory • relatively low disk subsystems • By separating data from the computation processing, the compute server’s processing capabilities can be optimized
Data Server Compute Server Data Server • Data-oriented; used only for data storage and management • Since a data server can serve more than one compute server, compute-intensive applications can be spread among multiple severs • Does not prefer any application logic processing • Performs processes such as data validation, required as part of the data management function. • Requires fast processor, large amount of memory and substantial Hard disk capacity.
Data Server Compute Server Cluster as High Availablity Data Server
Database Server • Most typical use of technology in client-server • Accepts requests for data, retrieves the data from its database(or requests data from another node)and passes the results back. • Compute server with data server provides the same functionality. • The server requirement depends on the size of database, speed with which the database must be updated, number of users and type of network used.
Communication Server • Provides gateway to other LANs, networks & Computers • E-mail Server & internet server • Modest system requirements • multiple slots • fast processor to translate networking protocols
Internet Server PC client Internet Server Local Area Network UNIX workstations
SQL *Net TCP/IP SQL * Forms ORACLE SQL *Net TCP/IP Distributed processing application connects to remote database S Q L * Forms SQL *Net TCP/IP UNIX Server Distributed database application connects to local database which connects to remote database ORACLE Database Configurations
Intergalactic era client/server Ethernet era client/server Third Wave First Wave Second Wave Database servers File servers Distributed objects groupware TP monitors 1990 1982 1994 1998 1986
Front-end and Back-end • For software applications, front end is the same as user interface • In client/server applications, the client part of the program is often called the front end and the server part is called the back end