CSC 546: Client/Server Fundamentals
Fall 2000
Final Exam Review
Overview
Client/server fundamentals
client/server relationship
distributed processing terminology
multiprogramming vs. multitasking vs. multiprocessing, IPC
mainframe vs. file-sharing vs. client/server
advantages
flexibility, reduced traffic, reduced development & maintenance, data access
disadvantages
resistance to change, high training costs, planning required, security
Business/Management Perspective
Driving forces
business perspective
productivity, quality, responsiveness, focus on core business
productivity vs. efficiency, reengineering work flows
technology perspective
enabling technologies: intelligent desktop devices + network architectures
technology advances: faster components, VLSI & CPU & memory advances
technology trends: standardization, HCI, info dissemination
computing vision
enterprise computing, info reachability, info access, info handling
information-driven productivity, information-driven economy
Management aspects
economics of client/server
technology performance gap, specialized architectures, degrees of specialization
relative cost, marginal cost, operational/maintenance/facility costs
strategic priorities
refocus IT, focus on productivity, enterprise-wide arch., open systems
transitioning into client/server
risk areas: technical, management, operations
transition strategies: Green Field vs. incremental vs. evolutionary
Implementation aspects
design & development
balancing application processing, development methodology
structural aspects
distributed data: replication, partitions, reorganization, caching
reducing data movement, network efficiency, multiserver dataflows
scalability, security perimeters, encryption (private vs. public key)
Technical Perspective
Client/server communications
message passing, ports
connectionless (datagrams) vs. connection-oriented (datastreams)
duplex vs. half-duplex vs. simplex
static vs. dynamic name resolution, blocking vs. non-blocking
remote procedure calls
message queueing
Client/server protocols
OSI 7-layer model
application, presentation, session, transport, network, data link, physical
communication up & down the layers, across the network
protocol suites (presentation-session-transport)
Microsoft: named pipes + NetBIOS + NetBEUI
IBM: APPC + LU 6.2 + PU 2.1
Internet: RPC/XDR + sockets + IP + TCP/UDP
Sockets
session layer protocol on top of TCP or UDP
file-like interface, accessible to applications via C libraries
datastream sockets (using TCP)
client must: create, connect, read/write, close
server must: create, bind, listen, accept, read/write, close
datagram sockets (using UDP)
client must: create, sendto/recvfrom
server must: create, bind, sendto/recvfrom
Communicating objects
remote procedure calls (RPCs)
stubs & harnesses, Interface Definition Language (IDL), IDL compiler
remote method invocations (RMIs)
stubs & skeletons, IDL, object identifiers (OIDs), object broker vs. trader
CORBA: OMG's specification for a distributed environment with objects
Object Request Broker (ORB), object adapters
OLE/COM: Microsoft's object communications package
World Wide Web
Web as client/server
Hypertext Transfer Protocol (HTTP): application layer protocol
connectionless (HTTP/1.0) vs. connection-oriented (HTTP/1.1)
GET, HEAD, POST, PUT, DELETE requests
request header fields (e.g., If-Modified-Since)
response header fields (e.g., status code, Date, Last-Modified, Expires)
caching, cookies
client-side vs. server-side programming
Common Gateway Interface (CGI)
C++ review: variables, control, functions, classes, templates, ...
Networked databases
Standard Query Language (SQL): standard for specifying database operations
CREATE, ALTER, UPDATE, DELETE, INSERT, SELECT, COMMIT, ROLLBACK
relational databases vs. object databases
SQL APIs define the client language
embedded SQL: SQL in app code, preprocessor, language bindings, cursors
module languages: high-level scripts, module language compiler
call-level interface (CLI): low-level routines (e.g., Microsoft's ODBC)
4th-generation alternatives to APIs
GUI generators (e.g., Visual Basic), packaged apps (e.g., Excel), ...
Formats & Protocols (FAPs) specify how client/server communications occur
FAP drivers on client, FAP gateways on server
distributed aspects
stored procedures, query optimizations, 2-phase commit strategy
Online Analytical Processing (OLAP)
multi-dimensional hypercubes, data mining, data modeling