350 likes | 554 Views
Course Introduction CS423 Client/Server Programming and Apps. References: Comer/Stevens, Ch1. CS423 Client/Server Programming and Applications. Who am I? Bob Cotter Flarsheim Hall room 450J (816) 235-???? cotterr@.umkc.edu http:// --- TBA Office Hours:
E N D
Course IntroductionCS423 Client/ServerProgramming and Apps References: Comer/Stevens, Ch1
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
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
CS423 Client/Server Programming and Applications • Course Prerequisites • C Programming (C++ even better) • Basic Computer Systems Background • Java ??
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
CS423 Client/Server Programming and Applications • Things you need to get: • An exchange account • Access to the Web - my home page is: • http:// TBA
CS423 Client/Server Programming and Applications • Underpinnings • Remote Procedure Calls
CS423 Client/Server Programming and Applications • Underpinnings • Remote Procedure Calls • Client/Server in Windows • Client/Server in Linux • Client/Server in Java • Other Stuff
Client /Server Underpinnings • Evolution of C/S Architecture • Objectives of C/S Architecture • C/S Transport (TCP/IP) • Socket Concepts
Client/Server in Windows • SCE Windows Support Environment • Windows Operating Environment • Windows Programming Environment
Client/Server in Windows • SCE Windows Support Environment • Windows Operating Environment • Windows Programming Environment • Sockets • Project (s)
Client/Server in Linux • SCE Linux Support Environment • Linux Operating Environment • Linux Programming Environment • Sockets • Project (s)
Client/Server in Java • SCE Java Support Environment • Java Operating Environment • Java Programming Environment • Java Sockets • Project (s)
Remote Procedure Calls • Foundations for RPC • External Data Representation • RPC Concepts
Remote Procedure Calls • Foundations for RPC • External Data Representation • RPC Concepts • RPC Examples
Other Stuff (As time permits) • Threads
Other Stuff (As time permits) • Threads • Other C/S environments Raw Sockets IPv6 UNIX Domain Sockets CORBA COM / DCOM NFS
Motivation for Distributed Processing • Computing costs • Computing Power • Computer networking Capabilities • Application Availability Requirements • Multi-vendor Environment Proliferating
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
Client / Server Advantages • Leverage Desktop Computing Power • Move Processing Closer to Data Source
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
Distributed Computing Environment • Developed under Open Software Foundation (OSF)
Distributed Computing Environment • Developed under Open Software Foundation (OSF) • Major Components: • Distributed File System • Directory Service • Remote Procedure Calls • Threads Services • Time Services
Client Server Database Apps • Layered Model • Application • Presentation (GUI, etc.) • Business Logic (if, then, else...) • Database Logic (SQL) • Database Management System (Oracle, etc.) • Database
Communication SystemsFunctions • Naming and Addressing • Segmentation • Blocking • Flow Control • Prioritizing • Error Control
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
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
Summary • Course Background • Course structure • SCE support facilities • Client / Server Introduction • Environment Evolution • Distributed Computing • Multi-threading / multi-processing