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