The document provides information on client-server technology and architecture. It discusses:
1) Client-server computing partitions tasks between service providers (servers) and service requesters (clients), with clients initiating communication sessions with servers.
2) Common examples of client-server models include web browsing, email, and database access.
3) The OSI 7-layer model is described, with an overview of the functions of each layer from the physical layer to the session layer.
This document provides an overview of client server technology. It defines client server computing as a model where the server accepts requests from client systems and returns the results. The document then discusses the evolution of client server concepts driven by advances in hardware, software, and networking. It outlines the key components of client server environments including clients, servers, and the network. Finally, it characterizes the components of client server technology with a focus on the roles of clients, servers, and reliability considerations for server systems.
The document discusses various components of client/server applications, including client services, server services, remote procedure calls (RPC), window services, print/fax services, and other interprocess communication (IPC) methods like Dynamic Data Exchange (DDE) and Object Linking and Embedding (OLE). It describes how clients can request services from remote servers using RPC, how windowing services allow applications to display windows across machines, and how utilities provide common functions to clients.
The document provides an overview of client/server architecture. It discusses the introduction and vision of client/server computing, characteristics of clients and servers, and merits and demerits compared to peer-to-peer networks. It also covers different types of servers like file servers and database servers. Key aspects of client/server architecture include separating functions between clients and servers, centralized data storage and management on servers, and communication through message passing.
This document discusses two-tier and three-tier architectures. In a two-tier architecture, clients communicate directly with servers, while a three-tier architecture introduces a middleware layer between clients and servers. Some benefits of three-tier include improved security, scalability, and the ability to use multiple databases. However, three-tier architectures also have higher costs and complexity compared to two-tier.
Client server computing_keypoint_and_questionslucky94527
This document contains the syllabus for the subject "Client Server Computing" taught in the third semester of a bachelor's degree program. It includes 5 units covering introductions to client server concepts, client/server operating systems, the client, the server, and the relationship between client server and the internet. For each unit, it lists the topics that will be covered in 9 lecture hours. It also provides the textbook and reference books for the course, along with sample key notes and a question bank.
This document discusses client-server architecture. It describes the two main types: two-tier with thin or fat clients, and three-tier. In two-tier, processing is either all on the server (thin client) or split between client and server (fat client). Three-tier distributes the presentation, application, and data layers across separate servers for better scalability and performance than two-tier approaches.
The document discusses different client/server database architectures including file server, database server, and three-tier architectures. It describes how processing logic can be distributed between the client and various servers. Key advantages of the three-tier architecture include scalability, flexibility, improved performance, and balanced workloads. The document also covers database middleware, query processing in parallel environments, and using ODBC and JDBC to connect applications to external databases.
The document provides information on client-server technology and architecture. It discusses:
1) Client-server computing partitions tasks between service providers (servers) and service requesters (clients), with clients initiating communication sessions with servers.
2) Common examples of client-server models include web browsing, email, and database access.
3) The OSI 7-layer model is described, with an overview of the functions of each layer from the physical layer to the session layer.
This document provides an overview of client server technology. It defines client server computing as a model where the server accepts requests from client systems and returns the results. The document then discusses the evolution of client server concepts driven by advances in hardware, software, and networking. It outlines the key components of client server environments including clients, servers, and the network. Finally, it characterizes the components of client server technology with a focus on the roles of clients, servers, and reliability considerations for server systems.
The document discusses various components of client/server applications, including client services, server services, remote procedure calls (RPC), window services, print/fax services, and other interprocess communication (IPC) methods like Dynamic Data Exchange (DDE) and Object Linking and Embedding (OLE). It describes how clients can request services from remote servers using RPC, how windowing services allow applications to display windows across machines, and how utilities provide common functions to clients.
The document provides an overview of client/server architecture. It discusses the introduction and vision of client/server computing, characteristics of clients and servers, and merits and demerits compared to peer-to-peer networks. It also covers different types of servers like file servers and database servers. Key aspects of client/server architecture include separating functions between clients and servers, centralized data storage and management on servers, and communication through message passing.
This document discusses two-tier and three-tier architectures. In a two-tier architecture, clients communicate directly with servers, while a three-tier architecture introduces a middleware layer between clients and servers. Some benefits of three-tier include improved security, scalability, and the ability to use multiple databases. However, three-tier architectures also have higher costs and complexity compared to two-tier.
Client server computing_keypoint_and_questionslucky94527
This document contains the syllabus for the subject "Client Server Computing" taught in the third semester of a bachelor's degree program. It includes 5 units covering introductions to client server concepts, client/server operating systems, the client, the server, and the relationship between client server and the internet. For each unit, it lists the topics that will be covered in 9 lecture hours. It also provides the textbook and reference books for the course, along with sample key notes and a question bank.
This document discusses client-server architecture. It describes the two main types: two-tier with thin or fat clients, and three-tier. In two-tier, processing is either all on the server (thin client) or split between client and server (fat client). Three-tier distributes the presentation, application, and data layers across separate servers for better scalability and performance than two-tier approaches.
The document discusses different client/server database architectures including file server, database server, and three-tier architectures. It describes how processing logic can be distributed between the client and various servers. Key advantages of the three-tier architecture include scalability, flexibility, improved performance, and balanced workloads. The document also covers database middleware, query processing in parallel environments, and using ODBC and JDBC to connect applications to external databases.
The document discusses different database architectures including personal computer databases, file server architectures, file sharing architectures, client/server architectures, two-tier architectures, and three-tier architectures. A personal computer database has the database and applications on one PC. A file server architecture stores database files on a file server but applications run on client PCs. A file sharing architecture allows multiple users to access the same database files stored on a file server. Client/server architectures improve on file sharing by having the database server directly answer queries. Two-tier architectures have clients do input/output and some logic while the server performs storage and access. Three-tier architectures move more logic and business rules to an application server layer.
Client-server technology involves splitting tasks and computing power between servers and clients. Servers store and process common data that can be accessed by clients. Clients make requests to servers, which then process the requests and return the desired results. This architecture is versatile, supports GUIs, and reduces costs through technologies like relational databases and distributed computing. The document then discusses the evolution of client-server computing and different types of client-server architectures like thin/fat, stateless/stateful, two-tier/three-tier/n-tier architectures. It also covers client and server devices and developing client-server applications.
Introduction to the client server computing By Attaullah HazratAttaullah Hazrat
This document is a student's term paper on client server computing. It contains an introduction to client server models and discusses different types of servers like file servers, print servers, application servers, and more. It also describes the differences between thin and fat clients and servers, with the current trend being towards fat servers and thin clients. The document provides details on various aspects of client server systems for the student's course assignment.
Client/server computing involves separating tasks between client and server machines. The client makes requests that are processed by the server, which returns results to the client. Key elements are the client, server, and network connecting them. Major focus is on the software handling tasks like the user interface, application logic, and data management between client and server. Different types of servers specialize in files, data, computing tasks, databases, and communication between networks.
This document discusses training for client-server systems. It covers the need for training in system administration, database administration, and for end users. It then describes various modes of delivering training, including traditional classrooms, e-learning tools, and case studies of specific tools like Podio, Titan Pad, and MindFlash. It also covers advantages of GUI applications for training and topics covered in system administrator, database administrator, and end user training. Finally, it discusses the future of client-server technology and enabling technologies.
This document provides an overview of client/server based computing and thin client computing. It discusses:
- The basics of client/server architecture and how it works to distribute processing between clients and servers.
- The benefits of server-based computing such as easier management, security, and lower costs compared to traditional desktop computing.
- What thin client computing is and how it stores applications and data on central servers rather than individual client devices, reducing costs and management needs.
- The key components of thin client solutions including terminal servers, thin clients, and communication protocols.
- How thin clients operate by connecting to terminal servers and only receiving screen updates rather than processing information locally.
This document discusses client-server technology and its evolution. It defines client-server computing as a network architecture where the server accepts requests from client systems and returns results to the clients. It then describes how hardware trends like increasing processor speeds, memory, and storage drove the evolution of client-server systems. Software trends like graphical user interfaces and relational databases also contributed. Networking trends allowed different systems to communicate using common protocols. Overall, client-server computing provides advantages like connectivity, sharing of devices, flexibility, centralized control, and faster delivery of systems and applications.
This document discusses concepts related to client-server computing and database management systems (DBMS). It covers topics such as DBMS concepts and architecture, centralized and distributed systems, client-server systems, transaction servers, data servers, parallel and distributed databases, and network types. Key points include the definitions of centralized, client-server, and distributed systems. Transaction servers and data servers are described as two types of server system architectures. Issues related to parallelism such as speedup, scaleup, and factors limiting them are also covered.
This document discusses different types of client server models. It describes logical layers including the presentation layer, application layer, and data layer. It then defines five common client/server models: distributed presentation, remote presentation, distributed logic, remote data, and distributed data. Each model divides responsibilities between the client and server differently. For example, remote presentation puts the presentation manager on the client and the application and data layers on the server.
Client/Server Architecture By Faisal Shahzad Faisal Shehzad
The document discusses client-server architectures. It describes the fat server model, which places more functions on the server, and the fat client model, which places more functions on the client but stores data on the server. It then explains the key aspects of two-tier and three-tier client-server architectures. The two-tier architecture involves clients communicating directly with servers, while the three-tier architecture introduces a middle tier between clients and servers to improve performance, scalability, and other advantages.
Client-server computing is a distributed computing model where client applications request services from server processes running on different interconnected computers. The client-server model provides advantages like vendor independence, scalability, and ability to interconnect different hardware. However, it also presents challenges like ensuring security and consistency across multiple servers. Design considerations for client-server systems include whether to use a two-tier or three-tier architecture and how to partition application logic between clients and servers.
The document discusses clients and servers, middleware, and different types of client-server architectures. It provides definitions and examples of clients, servers, middleware, fat clients, fat servers, 2-tier architectures, and 3-tier architectures. It also compares characteristics and advantages of 2-tier vs 3-tier architectures.
Client server computing in mobile environmentsPraveen Joshi
Client server computing in mobile environments. Versatile, Message based, Modular Infrastructure intended to improve usability, flexibility, interoperability and scalability as compared to Centralized, Mainframe, time sharing computing.
Intended to reduce Network Traffic.
Communication is using RPC or SQL
This document discusses client-server architecture. It defines clients as workstations that rely on servers for resources like files, devices, and processing power. Servers are dedicated computers that manage disk drives, printers, or network traffic. In a client-server model, applications are split into client and server components, with clients accessing services provided by servers. There are two main types: 2-tier, with clients and a single server, and 3-tier, with separate servers for the interface, logic, and data layers, allowing for better scalability. Thin clients rely fully on servers, while fat clients run some application logic locally.
Server vs Client in real life and in programming worldManoj Kumar
The document discusses a technology company that provides products, consulting services, and managed services. It highlights the company's recognition and awards from 2010 to 2009 as one of the top technology solution providers in America by CRN Magazine.
This document discusses topics related to client-server computing including connectivity, communication interfaces, interprocess communication technologies, wide area network technologies, network topologies, and client-server system hardware. It focuses on the layered architecture of client-server applications and describes the interface between layers. It also explains concepts like synchronous and asynchronous communication, buffering, reliable and ordered transmission, and different interprocess communication methods. Finally, it discusses wide area network components like switches, access servers, modems, and terminal adapters as well as network technologies like Token Ring.
The document discusses different client-server architectures, including two-tiered and three-tiered architectures. It provides details on the components, usage considerations, benefits, and limitations of the two-tiered architecture. The three-tiered architecture adds a middle tier to address scalability and flexibility limitations of the two-tiered approach. Various implementations of the middle tier are examined, including transaction processing monitors, message servers, and application servers.
The document discusses the evolution of client computing from mainframe computers to personal computers and client-server models. It describes the key aspects of mainframe-based computing including its inflexibility and high costs. The rise of personal computers and file sharing networks is outlined. Client-server computing is introduced as having multiple tiers including clients, servers, and middleware to connect them. Common architectures like two-tier, three-tier, and n-tier models are summarized. The benefits of distributed computing models as well as future directions are highlighted.
1) Client-server networks have dedicated servers that store data and resources while clients access these servers.
2) They enable efficient sharing of resources, scalability, security, data management, and collaboration across networks.
3) Servers manage network resources like files, devices, and processing power while clients rely on servers and run applications like email clients.
The document discusses different database architectures including personal computer databases, file server architectures, file sharing architectures, client/server architectures, two-tier architectures, and three-tier architectures. A personal computer database has the database and applications on one PC. A file server architecture stores database files on a file server but applications run on client PCs. A file sharing architecture allows multiple users to access the same database files stored on a file server. Client/server architectures improve on file sharing by having the database server directly answer queries. Two-tier architectures have clients do input/output and some logic while the server performs storage and access. Three-tier architectures move more logic and business rules to an application server layer.
Client-server technology involves splitting tasks and computing power between servers and clients. Servers store and process common data that can be accessed by clients. Clients make requests to servers, which then process the requests and return the desired results. This architecture is versatile, supports GUIs, and reduces costs through technologies like relational databases and distributed computing. The document then discusses the evolution of client-server computing and different types of client-server architectures like thin/fat, stateless/stateful, two-tier/three-tier/n-tier architectures. It also covers client and server devices and developing client-server applications.
Introduction to the client server computing By Attaullah HazratAttaullah Hazrat
This document is a student's term paper on client server computing. It contains an introduction to client server models and discusses different types of servers like file servers, print servers, application servers, and more. It also describes the differences between thin and fat clients and servers, with the current trend being towards fat servers and thin clients. The document provides details on various aspects of client server systems for the student's course assignment.
Client/server computing involves separating tasks between client and server machines. The client makes requests that are processed by the server, which returns results to the client. Key elements are the client, server, and network connecting them. Major focus is on the software handling tasks like the user interface, application logic, and data management between client and server. Different types of servers specialize in files, data, computing tasks, databases, and communication between networks.
This document discusses training for client-server systems. It covers the need for training in system administration, database administration, and for end users. It then describes various modes of delivering training, including traditional classrooms, e-learning tools, and case studies of specific tools like Podio, Titan Pad, and MindFlash. It also covers advantages of GUI applications for training and topics covered in system administrator, database administrator, and end user training. Finally, it discusses the future of client-server technology and enabling technologies.
This document provides an overview of client/server based computing and thin client computing. It discusses:
- The basics of client/server architecture and how it works to distribute processing between clients and servers.
- The benefits of server-based computing such as easier management, security, and lower costs compared to traditional desktop computing.
- What thin client computing is and how it stores applications and data on central servers rather than individual client devices, reducing costs and management needs.
- The key components of thin client solutions including terminal servers, thin clients, and communication protocols.
- How thin clients operate by connecting to terminal servers and only receiving screen updates rather than processing information locally.
This document discusses client-server technology and its evolution. It defines client-server computing as a network architecture where the server accepts requests from client systems and returns results to the clients. It then describes how hardware trends like increasing processor speeds, memory, and storage drove the evolution of client-server systems. Software trends like graphical user interfaces and relational databases also contributed. Networking trends allowed different systems to communicate using common protocols. Overall, client-server computing provides advantages like connectivity, sharing of devices, flexibility, centralized control, and faster delivery of systems and applications.
This document discusses concepts related to client-server computing and database management systems (DBMS). It covers topics such as DBMS concepts and architecture, centralized and distributed systems, client-server systems, transaction servers, data servers, parallel and distributed databases, and network types. Key points include the definitions of centralized, client-server, and distributed systems. Transaction servers and data servers are described as two types of server system architectures. Issues related to parallelism such as speedup, scaleup, and factors limiting them are also covered.
This document discusses different types of client server models. It describes logical layers including the presentation layer, application layer, and data layer. It then defines five common client/server models: distributed presentation, remote presentation, distributed logic, remote data, and distributed data. Each model divides responsibilities between the client and server differently. For example, remote presentation puts the presentation manager on the client and the application and data layers on the server.
Client/Server Architecture By Faisal Shahzad Faisal Shehzad
The document discusses client-server architectures. It describes the fat server model, which places more functions on the server, and the fat client model, which places more functions on the client but stores data on the server. It then explains the key aspects of two-tier and three-tier client-server architectures. The two-tier architecture involves clients communicating directly with servers, while the three-tier architecture introduces a middle tier between clients and servers to improve performance, scalability, and other advantages.
Client-server computing is a distributed computing model where client applications request services from server processes running on different interconnected computers. The client-server model provides advantages like vendor independence, scalability, and ability to interconnect different hardware. However, it also presents challenges like ensuring security and consistency across multiple servers. Design considerations for client-server systems include whether to use a two-tier or three-tier architecture and how to partition application logic between clients and servers.
The document discusses clients and servers, middleware, and different types of client-server architectures. It provides definitions and examples of clients, servers, middleware, fat clients, fat servers, 2-tier architectures, and 3-tier architectures. It also compares characteristics and advantages of 2-tier vs 3-tier architectures.
Client server computing in mobile environmentsPraveen Joshi
Client server computing in mobile environments. Versatile, Message based, Modular Infrastructure intended to improve usability, flexibility, interoperability and scalability as compared to Centralized, Mainframe, time sharing computing.
Intended to reduce Network Traffic.
Communication is using RPC or SQL
This document discusses client-server architecture. It defines clients as workstations that rely on servers for resources like files, devices, and processing power. Servers are dedicated computers that manage disk drives, printers, or network traffic. In a client-server model, applications are split into client and server components, with clients accessing services provided by servers. There are two main types: 2-tier, with clients and a single server, and 3-tier, with separate servers for the interface, logic, and data layers, allowing for better scalability. Thin clients rely fully on servers, while fat clients run some application logic locally.
Server vs Client in real life and in programming worldManoj Kumar
The document discusses a technology company that provides products, consulting services, and managed services. It highlights the company's recognition and awards from 2010 to 2009 as one of the top technology solution providers in America by CRN Magazine.
This document discusses topics related to client-server computing including connectivity, communication interfaces, interprocess communication technologies, wide area network technologies, network topologies, and client-server system hardware. It focuses on the layered architecture of client-server applications and describes the interface between layers. It also explains concepts like synchronous and asynchronous communication, buffering, reliable and ordered transmission, and different interprocess communication methods. Finally, it discusses wide area network components like switches, access servers, modems, and terminal adapters as well as network technologies like Token Ring.
The document discusses different client-server architectures, including two-tiered and three-tiered architectures. It provides details on the components, usage considerations, benefits, and limitations of the two-tiered architecture. The three-tiered architecture adds a middle tier to address scalability and flexibility limitations of the two-tiered approach. Various implementations of the middle tier are examined, including transaction processing monitors, message servers, and application servers.
The document discusses the evolution of client computing from mainframe computers to personal computers and client-server models. It describes the key aspects of mainframe-based computing including its inflexibility and high costs. The rise of personal computers and file sharing networks is outlined. Client-server computing is introduced as having multiple tiers including clients, servers, and middleware to connect them. Common architectures like two-tier, three-tier, and n-tier models are summarized. The benefits of distributed computing models as well as future directions are highlighted.
1) Client-server networks have dedicated servers that store data and resources while clients access these servers.
2) They enable efficient sharing of resources, scalability, security, data management, and collaboration across networks.
3) Servers manage network resources like files, devices, and processing power while clients rely on servers and run applications like email clients.
A 2-tier architecture involves clients communicating directly with servers that hold both the application and data tiers. A 3-tier architecture separates these functions into distinct tiers - clients interact with an application server tier that provides requested resources by accessing a separate data server tier. This separation of concerns allows for improved scalability, portability, and maintainability compared to a 2-tier architecture. Common web, application and database servers are discussed.
The document discusses various topics related to computing models and technologies. It defines client/server computing as a model where functions are distributed between client processes that request services and server processes that provide services. It also discusses distributed computing using multiple interconnected computers, cloud computing which delivers computing services over the Internet, mobile computing using portable hardware and software, and potential future computing technologies like predictive analytics, cognitive computing using artificial intelligence, and autonomic computing with self-managing networks.
Tim Berners-Lee wrote the first proposal for the World Wide Web in 1989 and formalized it with Robert Cailliau in 1990, outlining key concepts like hypertext documents and browsers. By the end of 1990, Berners-Lee had the first web server and browser running at CERN. The main job of a web server is to store, process, and deliver web pages to users through HTTP and other protocols in response to client requests. When a client makes a request, the server finds and retrieves the requested file or returns an error message.
This training report provides an introduction to servers. A server is a system that responds to requests across a network to provide network services. Servers can operate on dedicated computers or networked devices. They provide services like file sharing, web hosting, email, printing, and more. Server hardware is optimized for high network throughput and I/O over graphical interfaces. Common server operating systems have features that make them suitable for server environments like advanced security, networking, and backup capabilities. Servers come in different sizes from rack, tower, blade, and more.
The document discusses client-server architecture and interactions. It defines client-server as a network architecture that separates clients, often applications with a GUI, from servers. Clients can send requests to servers. Common server types include application, file, terminal, and mail servers. The document also discusses properties of clients and servers, browser extensions like plugins and helper applications, client-server sessions, multitier architectures, and common server applications.
This training report provides an introduction to servers. A server is a system that responds to requests across a network to provide network services. Servers have hardware requirements like fast network connections and high input/output throughput since they provide services to many users. Servers come in different sizes from rack, tower, and blade servers. The conclusion states that servers provide benefits like reduced paper usage, increased communication and data security, easier data management, and improved reliability.
A network operating system (NOS) provides services to clients over a network, enabling file sharing, printing, and application access. It handles typical network duties like remote access, routing, security, and administration. Well-known NOSes include Windows Server, Linux, and Mac OS X. In a client-server network, servers run the NOS to provide centralized resources to client computers running other operating systems. Common server types are file servers, print servers, mail servers, application servers, and database servers.
The document discusses different multi-tier architecture models used in software engineering including traditional mainframe, client/server, 3-tier and n-tier models. It provides details on the key components of each model as well as terms like presentation, processing, business rules, and data storage. The document also examines PeopleSoft's n-tier, internet-based architecture including its web, application, and database servers as well as the roles and functions of each component.
The document discusses different types of computer networks including local area networks (LANs), metropolitan area networks (MANs), personal area networks (PANs), and wide area networks (WANs). It also describes client-server network architecture, where client computers request services from more powerful server computers, and peer-to-peer architecture where each computer on the network can act as both a client and server. Network administration involves managing a network to keep it operating properly and connecting different computer systems within an organization.
This document discusses different architectural approaches for client-server systems, including 2-tier, 3-tier, and N-tier architectures. A 2-tier architecture consists of clients and a single application server, while 3-tier and N-tier architectures separate functionality into distinct presentation, application processing, and data tiers for improved scalability and flexibility.
This document discusses network operating systems and remote access. It covers two categories of network operating systems: peer-to-peer and client/server. Peer-to-peer NOSes lacked centralized authentication and scalability. Client/server NOSes use a server-based model. The document also discusses requirements of modern NOSes like application services, directory services, and integration/migration services. It covers remote access methods like remote control, tunneling protocols, and VPNs which allow remote clients to securely access enterprise networks.
The document discusses cloud architecture and describes the different layers of cloud computing including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). It explains how virtualization allows for the pooling of computing resources and rapid provisioning of these resources. The document also discusses multi-tenancy and how a single software instance can be configured for multiple tenants' needs in a SaaS environment. As an example, it describes how a payroll processing application currently used by multiple government departments could be migrated to a cloud environment for improved maintenance and reduced costs.
Servers are large, powerful computers that provide services and resources to other computers connected to it via a network. There are several typical types of servers including web servers, application servers, database servers, and media servers. Servers are optimized for 24/7 operation, support multiple users and applications simultaneously, and have features like redundant power supplies and network connections that make them more reliable than typical workstations. Key components of a physical server include the motherboard, CPU, memory, hard drives, network connection, and power supply.
Psdot 15 performance analysis of cloud computingZTech Proje
The document discusses performance analysis of cloud computing centers using queuing systems. It aims to evaluate key performance indicators like response time distribution and mean number of tasks using a queuing model. The proposed system models cloud server farms as COCOMO II systems to obtain more accurate estimations of performance metrics while addressing issues with existing models like high traffic intensity and service time variation. It analyzes how changing server numbers and buffer sizes impacts the performance indicators.
The document discusses various network applications and their architectures. It begins by defining application architecture and describing host-based, client-based, and client-server architectures. It then examines specific applications like the World Wide Web, email, file transfer, videoconferencing and instant messaging. For each application it outlines how it works, common standards used, and examples. The document concludes by discussing implications for management.
The document discusses the physical architecture layer of a system. It describes common architectures like server-based, client-based, and client-server. Client-server is the most common and can have multiple tiers. Distributed objects computing uses middleware. Key considerations in selecting an architecture are costs, development ease, and scalability. The physical design is represented using deployment diagrams and network models. Nonfunctional requirements like performance, security, and cultural factors also influence the physical architecture design.
5. Clients
Applications that run on computers
Rely on servers for
◦ Files
Clients are Applications
◦ Devices
◦ Processing power
Example: E-mail client
◦ An application that enables you to send and
receive e-mail
6. Servers
Computers or processes that manage
network resources
◦ Disk drives (file servers) Servers Manage
◦ Printers (print servers) Resources
◦ Network traffic (network servers)
Example: Database Server
◦ A computer system that processes database
queries
8. Client–Server Computing
Process takes place
◦ on the server and
◦ on the client Client-Server
Servers Computing Optimizes
Computing Resources
◦ Store and protect data
◦ Process requests from clients
Clients
◦ Make requests
◦ Format data on the desktop
9. Application Functions
Software application
functions are separated into
three distinct parts
Server:
Data Management
Client: Presentation & Application Logic
10. Application Components
3 Data Management 2 Client Types
2 Application Logic
Fat
Thin Client
1 Presentation Client
3 Logical Tiers
Database Applications:
Most common use of client-server architectures
11. Middleware
Software that connects two
otherwise separate applications
Example: Middleware product linking Database Server:
a database system to a Web server Manages Data
Middleware Links
Applications
Web Server:
Presents Dynamic Pages
Client: Requests Data via Web
12. Types of Servers
From A to Z
Application Servers
List Servers
Audio/Video Servers
Mail Servers
Chat Servers
News Servers
Fax Servers
Proxy Servers
FTP Servers
Telnet Servers
Groupware Servers
Web Servers
IRC Servers
Z39.50 Servers
Source: http://webopedia.lycos.com
13. ADVANTAGES OF CLIENT-
SERVER
Advantages often cited include:
◦ 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
14. DISADVANTAGES OF CLIENT-
SERVER
Disadvantages often cited include:
◦ Dependability - when the server goes down,
operations cease
◦ Higher than anticipated costs
◦ Can cause network congestion
15. CLIENT-SERVER
ARCHITECTURES
There are basically two types of client-server
architectures
◦ Two tier architectures
◦ Three tier architectures
The choice between the two should be
made based on combination of:
◦ Schedule for project implementation
◦ Expected system changes and enhancements
16. TWO-TIER ARCHITECTURES
Application components are
distributed between the
Server server and client software
In addition to part of the
application software, the
server also stores the data,
Network and all data accesses are
through the server.
The presentation (to the user)
PC PC PC
is handled strictly by the client
Clients software.
17. TWO-TIER ARCHITECTURES
(cont.)
The PC clients assume the bulk of the
responsibility for the application logic.
The server assumes the bulk of the
responsibility for data integrity checks, query
capabilities, data extraction and most of the
data intensive tasks, including sending the
appropriate data to the appropriate clients.
18. TWO-TIER ARCHITECTURES,
ADVANTAGES
The commonly cited advantages of two-tier
systems include:
◦ Fast application development time
◦ Available tools are robust and lend themselves to
fast prototyping to insure user needs a met
accurately and completely.
◦ Conducive to environments with homogeneous
clients, homogeneous applications, and static
business rules.
19. TWO-TIER ARCHITECTURES,
DISADVANTAGES
The commonly cited disadvantages of two-
tier systems include:
◦ Not suitable for dispersed, heterogeneous
environments with rapidly changing business
rules.
◦ Because the bulk of the application logic is on the
client, there is the problem of client software
version control and new version redistribution.
◦ Security can be complicated because a user may
require separate passwords for each SQL server
accessed.
20. THREE-TIER ARCHITECTURES
3-tier architectures attempt
to overcome some of the
Server Server limitations of the 2-tier
architecture by separating
presentation, processing, and
data into 3 separate and
Network distinct entities.
The software in the client
PC PC PC
handles the presentation (to
the user) using similar tools
Clients as in the 2-tier architecture.
21. THREE-TIER ARCHITECTURES
(cont.)
When data or processing are required by
the presentation client, a call is made to the
middle-tier functionality server.
This tier performs calculations, does reports,
and makes any needed client calls to other
servers (e.g.. a data base server).
22. THREE-TIER ARCHITECTURES
(cont.)
Middle tier servers are usually coded in a
highly portable, non-proprietary language
such as C or C++.
Middle tier servers may be multithreaded
and can be accessed by multiple clients.
The calling mechanism from client to server
and from server to server is by means of
RPC’s.
23. THREE-TIER ARCHITECTURES,
ADVANTAGES (cont.)
Commonly cited advantages include:
◦ Having separate functionality servers allows for
the parallel development of individual tiers by
application specialists.
◦ Provides for more flexible resource allocation.
Can reduce network traffic by having the
functionality servers strip data to the precise
structure needed before sending it to the clients.
24. THREE-TIER ARCHITECTURES,
DISADVANTAGES
Often cited disadvantages of 3-tier
architectures include:
◦ Creates an increased need for network traffic
management, server load balancing, and fault
tolerance.
◦ Current tools are relatively immature and are
more complex.
◦ Maintenance tools are currently inadequate for
maintaining server libraries. This is a potential
obstacle for simplifying maintenance and
promoting code reuse throughout the
organization.
26. What is Peer-to-Peer?
A model of communication where every
node in the network acts alike.
As opposed to the Client-Server model,
where one node provides services and other
nodes use the services.
27. Advantages of P2P Computing
No central point of failure
◦ E.g., the Internet and the Web do not have a central point
of failure.
◦ Most internet and web services use the client-server
model (e.g. HTTP), so a specific service does have a
central point of failure.
Scalability
◦ Since every peer is alike, it is possible to add more peers
to the system and scale to larger networks.
28. Disadvantages of P2P Computing
Decentralized coordination
◦ How to keep global state consistent?
◦ Need for distributed coherency protocols.
All nodes are not created equal.
◦ Computing power, bandwidth have an impact on
overall performance.
Programmability
◦ As a corollary of decentralized coordination.
39. Modes of connection
Circuit-switched
◦ dedicated path
◦ guaranteed (fixed) bandwidth
◦ [almost] constant latency
Packet-switched
◦ shared connection
◦ data is broken into chunks called packets
◦ each packet contains destination address
◦ available bandwidth ≤ channel capacity
◦ variable latency
40. What’s in the data?
For effective communication
◦ same language, same conventions
For computers:
◦ electrical encoding of data
◦ where is the start of the packet?
◦ which bits contain the length?
◦ is there a checksum? where is it?
how is it computed?
◦ what is the format of an address?
◦ byte ordering
42. Protocols
Exist at different levels
understand format of humans vs. whales
address and how to different wavelengths
compute checksum
versus
request web page French vs. Hungarian
43. Layering
To ease software development and maximize
flexibility:
◦ Network protocols are generally organized in
layers
◦ Replace one layer without replacing surrounding
layers
◦ Higher-level software does not have to know
how to format an Ethernet packet
… or even know that Ethernet is being used
44. Layering
Most popular model of guiding
(not specifying) protocol layers is
OSI reference model
Adopted and created by ISO
7 layers of protocols
45. OSI Reference Model: Layer 1
Transmits and receives
raw data to
communication medium.
Does not care about
contents.
voltage levels, speed,
connectors
1 Physical
Physical
Examples: RS-232, 10BaseT
46. OSI Reference Model: Layer 2
Detects and corrects errors.
Organizes data into packets
before passing it down.
Sequences packets (if
necessary).
Accepts acknowledgements
from receiver.
2 Data Link
Data Link
1 Physical
Physical
Examples: Ethernet MAC, PPP
47. OSI Reference Model: Layer 3
Relay and route
information to
destination.
Manage journey of packets
and figure out
intermediate hops (if
3 Network
Network
needed).
2 Data Link
Data Link
1 Physical
Physical
Examples: IP, X.25
48. OSI Reference Model: Layer 4
Provides a consistent
interface for end-to-end
(application-to-
application)
communication. Manages
4 Transport
Transport flow control.
3 Network
Network Network interface is
similar to a mailbox.
2 Data Link
Data Link
1 Physical
Physical
Examples: TCP, UDP
49. OSI Reference Model: Layer 5
Services to coordinate
dialogue and manage data
exchange.
5 Session
Session Software implemented
Transport switch.
4 Transport
Manage multiple logical
3 Network
Network connections.
2 Data Link
Data Link Keep track of who is
talking: establish & end
1 Physical
Physical Examples: HTTP 1.1, SSL,
communications.
NetBIOS
50. OSI Reference Model: Layer 6
Data representation
6 Presentation
Presentation
Concerned with the
5 Session
Session meaning of data bits
4 Transport
Transport Convert between
3 Network
Network machine
representations
2 Data Link
Data Link
1 Physical
Physical Examples: XDR, ASN.1,
MIME, MIDI
51. OSI Reference Model: Layer 7
7 Application
Application Collection of application-
Presentation specific protocols
6 Presentation
5 Session
Session
4 Transport
Transport
3 Network
Network
2 Data Link
Data Link Examples:
email (SMTP, POP, IMAP)
1 Physical
Physical file transfer (FTP)
directory services (LDAP)
53. Local Area Network (LAN)
Communications network
◦ small area (building, set of buildings)
◦ same, sometimes shared, transmission medium
◦ high data rate (often): 1 Mbps – 1 Gbps
◦ Low latency
◦ devices are peers
any device can initiate a data transfer with any other
device
Most elements on a LAN are workstations
◦ endpoints on a LAN are called nodes
55. Connecting nodes to LANs
network computer
Adapter
◦ expansion slot (PCI, PC Card, USB dongle)
◦ usually integrated onto main board
Network adapters are referred to as
Network Interface Cards (NICs) or
adapters
56. Media
Wires (or RF, IR) connecting together the devices
that make up a LAN
Twisted pair
◦ Most common:
STP: shielded twisted pair
UTP: unshielded twisted pair
(e.g. Telephone cable, Ethernet 10BaseT)
Coaxial cable
◦ Thin (similar to TV cable)
◦ Thick (e.g., 10Base5, ThickNet)
Fiber
Wireless
57. Hubs, routers, bridges
Hub
◦ Device that acts as a central point for LAN cables
◦ Take incoming data from one port & send to all other ports
Switch
◦ Moves data from input to output port.
◦ Analyzes packet to determine destination port and makes a virtual
connection between the ports.
Concentrator or repeater
◦ Regenerates data passing through it
Bridge
◦ Connects two LANs or two segments of a LAN
◦ Connection at data link layer (layer 2)
Router
◦ Determines the next network point to which a packet should be
forwarded
◦ Connects different types of local and wide area networks at
network layer (layer 3)
63. Clients and Servers
Send messages to applications
◦ not just machines
Client must get data to the desired process
◦ server process must get data back to client process
To offer a service, a server must get a
transport address for a particular service
◦ well-defined location
65. Transport provider
Layer of software that accepts a network
message and sends it to a remote machine
Two categories:
connection-oriented protocols
connectionless protocols
67. Connection-oriented Protocols
analogous to phone call
1. establish connection dial phone number
2. [negotiate protocol] [decide on a language]
3. exchange data speak
4. terminate connectionhang up
virtual circuit service
◦ provides illusion of having a dedicated circuit
◦ messages guaranteed to arrive in-order
◦ application does not have to address each message
vs. circuit-switched service
69. Connectionless Protocols
analogous to mailbox
- no call setup
- send/receive data drop letter in mailbox
(each packet addressed) (each letter addressed)
- no termination
datagram service
◦ client is not positive whether message arrived at
destination
◦ no state has to be maintained at client or server
◦ cheaper but less reliable than virtual circuit
service
70. Ethernet
Layers 1 & 2 of OSI model
◦ Physical (1)
Cables: 10Base-T, 100Base-T, 1000Base-T, etc.
◦ Data Link (2)
Ethernet bridging
Data frame parsing
Data frame transmission
Error detection
Unreliable, connectionless communication
71. Ethernet
48-byte ethernet address
Variable-length packet
◦ 1518-byte MTU
18-byte header, 1500 bytes data
Jumbo packets for Gigabit ethernet
◦ 9000-byte MTU
dest addr src addr
frame
data (payload) CRC
type
6 bytes 6 bytes 2 46-1500 bytes 4
18 bytes + data
72. IP – Internet Protocol
Born in 1969 as a research network of 4 machines
Funded by DoD’s ARPA
Goal:
build an efficient fault-tolerant network
that could connect heterogeneous
machines and link separately connected
networks.
73. Internet Protocol
Connectionless protocol designed to handle the
interconnection of a large number of local and
wide-area networks that comprise the internet
IP can route from one physical network to
another
74. IP Addressing
Each machine on an IP network is assigned a
unique 32-bit number for each network
interface:
◦ IP address, not machine address
A machine connected to several physical
networks will have several IP addresses
◦ One for each network
75. IP Address space
32-bit addresses → >4 billion addresses!
Routers would need a table of 4 billion
entries
Design routing tables so one entry can
match multiple addresses
◦ hierarchy: addresses physically close will share
a common prefix
76. IP Addressing: networks & hosts
cs.rutgers.edu remus.rutgers.edu
128.6.4.2 128.6.13.3
80 06 04 02 80 06 0D 03
network # host #
first 16 bits identify Rutgers
external routers need only one entry
◦ route 128.6.*.* to Rutgers
77. IP Addressing: networks & hosts
IP address
◦ network #: identifies network machine
belongs to
◦ host #: identifies host on the network
use network number to route packet to
correct network
use host number to identify specific
machine
78. IP Addressing
Expectation:
◦ a few big networks and many small ones
◦ create different classes of networks
◦
class use leading bits to identifynet #
leading bits bits for network bits for host
A 0 7 (128) 24 (16M)
B 10 14 (16K) 16 (64K)
C 110 21 (2M) 8 (256)
To allow additional networks within an organization:
use high bits of host number for a
“network within a network” – subnet
80. Running out of addresses
Huge growth
Wasteful allocation of networks
◦ Lots of unused addresses
Every machine connected to the internet
needed a worldwide-unique IP address
Solutions: CIDR, NAT, IPv6
81. IP Special Addresses
All bits 0
◦ Valid only as source address
◦ “all addresses for this machine”
◦ Not valid over network
All host bits 1
◦ Valid only as destination
◦ Broadcast to network
All bits 1
◦ Broadcast to all directly connected networks
Leading bits 1110
◦ Class D network
127.0.0.0: reserved for local traffic
◦ 127.0.0.1 usually assigned to loopback device
82. IPv6 vs. IPv4
IPv4
◦ 4 byte (32 bit) addresses
IPv6:
◦ 16-byte (128 bit) addresses
3.6 x 1038 possible addresses
8 x 1028 times more addresses than IPv4
◦ 4-bit priority field
◦ Flow label (24-bits)
83. Network Address Translation
(NAT)
External IP address
24.225.217.243
Internal
IP address
192.168.1.x .1 .2 .3 .4 .5
84. Getting to the machine
IP is a logical network on top of multiple
physical networks
OS support for IP: IP driver
receive data send data
IP driver
IP driver
receive packet send packet
network driver
network driver
from wire to wire
85. IP driver responsibilities
Get operating parameters from device
driver
◦ Maximum packet size (MTU)
◦ Functions to initialize HW headers
◦ Length of HW header
Routing packets
◦ From one physical network to another
Fragmenting packets
Send operations from higher-layers
Receiving data from device driver
Dropping bad/expired data
86. Device driver responsibilities
Controls network interface card
◦ Comparable to character driver
top half bottom half
Processes interrupts from network
interface
◦ Receive packets
◦ Send them to IP driver
Get packets from IP driver
◦ Send them to hardware
◦ Ensure packet goes out without collision
87. Network device
Network card examines packets on wire
◦ Compares destination addresses
Before packet is sent, it must be enveloped
for the physical network
device
IP header IP data
header
payload
88. Device addressing
IP address → ethernet address
Address Resolution Protocol (ARP)
1. Check local ARP cache
2. Send broadcast message requesting ethernet
address of machine with certain IP address
3. Wait for response (with timeout)
89. Transport-layer protocols over IP
IP sends packets to machine
◦ No mechanism for identifying sending or
receiving application
Transport layer uses a port number to
identify the application
TCP – Transmission Control Protocol
UDP – User Datagram Protocol
90. TCP – Transmission Control
Protocol
Virtual circuit service
(connection-oriented)
Send acknowledgement for each received
packet
Checksum to validate data
Data may be transmitted simultaneously in
both directions
91. UDP – User Datagram Protocol
Datagram service (connectionless)
Data may be lost
Data may arrive out of sequence
Checksum for data but no retransmission
◦ Bad packets dropped
92. IP header
device TCP/UDP
IP header IP data
header header
payload
vers hlen svc type (TOS) total length
fragment identification flags fragment offset
20 bytes
TTL protocol header checksum
source IP address
destination IP address
options and pad
93. Headers: TCP & UDP
device TCP/UDP
IP header IP data
header header
payload
TCP header UDP header
src port dest port src port dest port
seq number seg length checksum
20 bytes
ack number
hdr 8 bytes
- flags window
len
checksum urgent ptr
options and pad
94. Device header (Ethernet II)
device TCP/UDP
IP header IP data
header header
payload
frame
dest addr src addr data CRC
type
6 bytes 6 bytes 2 46-1500 bytes 4
18 bytes + data
95. Quality of Service Problems in IP
Too much traffic
◦ Congestion
Inefficient packet transmission
◦ 59 bytes to send 1 byte in TCP/IP!
◦ 20 bytes TCP + 20 bytes IP + 18 bytes ethernet
Unreliable delivery
◦ Software to the rescue – TCP/IP
Unpredictable packet delivery
97. Sockets
IP lets us send data between machines
TCP & UDP are transport layer protocols
◦ Contain port number to identify transport
endpoint (application)
One popular abstraction for transport layer
connectivity: sockets
◦ Developed at Berkeley
98. Sockets
Attempt at generalized IPC model
Goals:
◦ communication between processes should not
depend on whether they are on the same
machine
◦ efficiency
◦ compatibility
◦ support different protocols and naming
conventions
99. Socket
Abstract object from which messages are sent
and received
◦ Looks like a file descriptor
◦ Application can select particular style of
communication
Virtual circuit, datagram, message-based, in-order
delivery
◦ Unrelated processes should be able to locate
communication endpoints
Sockets should be named
Name meaningful in the communications domain
101. Step 1
Create a socket
int s = socket(domain, type, protocol)
AF_INET SOCK_STREAM useful if some
SOCK_DGRAM families have
more than one
protocol to
support a given
service
102. Step 2
Name the socket (assign address, port)
int error = bind(s, addr, addrlen)
socket Address structure length of
struct sockaddr* address
structure
103. Step 3a (server)
Set socket to be able to accept connections
int error = listen(s, backlog)
socket queue length for
pending connections
104. Step 3b (server)
Wait for a connection from client
int snew = accept(s, clntaddr, &clntalen)
socket pointer to address length of
structure address
new socket structure
for this session
105. Step 3 (client)
Connect to server
int error = connect(s, svraddr, svraddrlen)
socket Address structure length of
struct sockaddr* address
structure
107. Step 5
Close connection
shutdown(s, how)
how:
0: can send but not receive
1: cannot send more data
2: cannot send or receive (=0+1)
108. Sockets in Java
java.net package
Two major classes:
◦ Socket: client-side
◦ ServerSocket: server-side
109. Step 1a (server)
Create socket and name it
ServerSocket svc =
new ServerSocket(port)
110. Step 1b (server)
Wait for connection from client
Server req = svc.accept()
new socket for client session
111. Step 1 (client)
Create socket and name it
Socket s = new Socket(address, port);
obtained from:
getLocalHost, getByName,
or getAllByName
Socket s =
new Socket(“cs.rutgers.edu”, 2211);
112. Step 2
Exchange data
obtain InputStream/OutputStream from
Socket object
BufferedReader in =
new BufferedReader(
new InputStreamReader(
s.getInputStream()));
PrintStream out =
new PrintStream(s.getOutputStream());