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-????
[email protected] 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