Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1 1 CS423 Client/Server Programming and Applications • Who am I? • Bob Cotter – – – – Flarsheim Hall room 450J (816) 235-???? cotterr@.umkc.edu http:// --- TBA • Office Hours: – 10:00 am to 11:00 am Tuesday and Thursday – or by appointment 2 CS423 Client/Server Programming and Applications • Course Objectives – Understand and apply the principles of client / server programming • Grading – Projects (4 or 5): 40% of grade – Three exams, Final ( closed book): 20% each (best 3 of 4) • Other (see “General Rules” on my web page) – – – – – Class attendance Lecture Notes Due dates - end of day on due dates Incompletes Academic Integrity 3 CS423 Client/Server Programming and Applications • Course Prerequisites – C Programming (C++ even better) – Basic Computer Systems Background – Java ?? 4 CS423 Client/Server Programming and Applications • Course Prerequisites – C Programming (C++ even better) – Basic Computer Systems Background – Java ?? • Text – Internetworking with TCP/IP Vol. III Client-Server Programming and Applications Windows Sockets Version, 1/e Comer & Stevens – Miscellaneous other readings, RFCs, internet 5 CS423 Client/Server Programming and Applications • Things you need to get: – An exchange account – Access to the Web - my home page is: • http:// TBA 6 CS423 Client/Server Programming and Applications • Underpinnings • Remote Procedure Calls 7 CS423 Client/Server Programming and Applications • • • • • • Underpinnings Remote Procedure Calls Client/Server in Windows Client/Server in Linux Client/Server in Java Other Stuff 8 Client /Server Underpinnings • • • • Evolution of C/S Architecture Objectives of C/S Architecture C/S Transport (TCP/IP) Socket Concepts 9 Client/Server in Windows • SCE Windows Support Environment • Windows Operating Environment • Windows Programming Environment 10 Client/Server in Windows • • • • • SCE Windows Support Environment Windows Operating Environment Windows Programming Environment Sockets Project (s) 11 Client/Server in Linux • • • • • SCE Linux Support Environment Linux Operating Environment Linux Programming Environment Sockets Project (s) 12 Client/Server in Java • • • • • SCE Java Support Environment Java Operating Environment Java Programming Environment Java Sockets Project (s) 13 Remote Procedure Calls • Foundations for RPC • External Data Representation • RPC Concepts 14 Remote Procedure Calls • • • • Foundations for RPC External Data Representation RPC Concepts RPC Examples 15 Other Stuff (As time permits) • Threads 16 Other Stuff (As time permits) • Threads • Other C/S environments Raw Sockets IPv6 UNIX Domain Sockets CORBA COM / DCOM NFS 17 Motivation for Distributed Processing • • • • • Computing costs Computing Power Computer networking Capabilities Application Availability Requirements Multi-vendor Environment Proliferating 18 Client Server Evolution • Host Based Processing – Dumb Terminals • Master - Slave Processing – “Intelligent” Terminals (field validation, etc) – Cluster Controllers • Client - Server Processing • Peer-to-Peer Processing 19 Host Based Processing 20 Master - Slave Processing 21 Client Server Processing 22 Peer to Peer Processing 23 Client / Server Advantages • Leverage Desktop Computing Power • Move Processing Closer to Data Source 24 Client / Server Advantages • Leverage Desktop Computing Power • Move Processing Closer to Data Source • Facilitates Leveraging GUI Experience – Common Interface can be used for Multiple Services • Encourages Open Systems 25 Distributed Computing Environment • Developed under Open Software Foundation (OSF) 26 Distributed Computing Environment • Developed under Open Software Foundation (OSF) • Major Components: – Distributed File System – Directory Service – Remote Procedure Calls – Threads Services – Time Services 27 Client Server Database Apps • Layered Model – Application – Presentation (GUI, etc.) – Business Logic (if, then, else...) – Database Logic (SQL) – Database Management System (Oracle, etc.) • Database 28 Distributed Processing Models 29 Communication Systems Functions • • • • • • Naming and Addressing Segmentation Blocking Flow Control Prioritizing Error Control 30 Concurrency in C/S • Multiple actions (processes) executing in parallel • Primarily a Server side issue – Linkage to multiple clients • Also used on Client side – separate blocking events from non-blocking events 31 Threads and Processes • Process: – A program in execution – Includes context – Includes at least 1 thread • Thread – Lightweight process – A flow of execution – Operates within the context of a single process 32 Summary • Course Background – Course structure – SCE support facilities • Client / Server Introduction – Environment Evolution – Distributed Computing – Multi-threading / multi-processing 33