1 course introduction cs423 client/server programming and apps references: comer/stevens, ch1
TRANSCRIPT
1
Course IntroductionCS423 Client/Server
Programming and Apps
References:
Comer/Stevens, Ch1
2
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
3
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
4
CS423 Client/Server Programming and Applications
• Course Prerequisites– C Programming (C++ even better)– Basic Computer Systems Background– Java ??
5
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
6
CS423 Client/Server Programming and Applications
• Things you need to get:– An exchange account – Access to the Web - my home page is:
• http:// TBA
7
CS423 Client/Server Programming and Applications
• Underpinnings
• Remote Procedure Calls
8
CS423 Client/Server Programming and Applications
• Underpinnings
• Remote Procedure Calls
• Client/Server in Windows
• Client/Server in Linux
• Client/Server in Java
• Other Stuff
9
Client /Server Underpinnings
• Evolution of C/S Architecture
• Objectives of C/S Architecture
• C/S Transport (TCP/IP)
• Socket Concepts
10
Client/Server in Windows
• SCE Windows Support Environment
• Windows Operating Environment
• Windows Programming Environment
11
Client/Server in Windows
• SCE Windows Support Environment
• Windows Operating Environment
• Windows Programming Environment
• Sockets
• Project (s)
12
Client/Server in Linux
• SCE Linux Support Environment
• Linux Operating Environment
• Linux Programming Environment
• Sockets
• Project (s)
13
Client/Server in Java
• SCE Java Support Environment
• Java Operating Environment
• Java Programming Environment
• Java Sockets
• Project (s)
14
Remote Procedure Calls
• Foundations for RPC
• External Data Representation
• RPC Concepts
15
Remote Procedure Calls
• Foundations for RPC
• External Data Representation
• RPC Concepts
• RPC Examples
16
Other Stuff (As time permits)
• Threads
17
Other Stuff (As time permits)
• Threads
• Other C/S environments Raw Sockets
IPv6
UNIX Domain Sockets
CORBA
COM / DCOM
NFS
18
Motivation for Distributed Processing
• Computing costs
• Computing Power
• Computer networking Capabilities
• Application Availability Requirements
• Multi-vendor Environment Proliferating
19
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
20
Host Based Processing
21
Master - Slave Processing
22
Client Server Processing
23
Peer to Peer Processing
24
Client / Server Advantages
• Leverage Desktop Computing Power
• Move Processing Closer to Data Source
25
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
26
Distributed Computing Environment
• Developed under Open Software Foundation (OSF)
27
Distributed Computing Environment
• Developed under Open Software Foundation (OSF)
• Major Components:– Distributed File System– Directory Service– Remote Procedure Calls– Threads Services– Time Services
28
Client Server Database Apps
• Layered Model– Application– Presentation (GUI, etc.)– Business Logic (if, then, else...)– Database Logic (SQL)– Database Management System (Oracle, etc.)
• Database
29
Distributed Processing Models
30
Communication SystemsFunctions
• Naming and Addressing
• Segmentation
• Blocking
• Flow Control
• Prioritizing
• Error Control
31
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
32
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
33
Summary
• Course Background– Course structure– SCE support facilities
• Client / Server Introduction– Environment Evolution– Distributed Computing– Multi-threading / multi-processing