Introduction

advertisement
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
Download