1 course introduction cs423 client/server programming and apps references: comer/stevens, ch1

33
1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

Upload: clifford-gallagher

Post on 11-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

1

Course IntroductionCS423 Client/Server

Programming and Apps

References:

Comer/Stevens, Ch1

Page 2: 1 Course Introduction CS423 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

Page 3: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 4: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

4

CS423 Client/Server Programming and Applications

• Course Prerequisites– C Programming (C++ even better)– Basic Computer Systems Background– Java ??

Page 5: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 6: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 7: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

7

CS423 Client/Server Programming and Applications

• Underpinnings

• Remote Procedure Calls

Page 8: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 9: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

9

Client /Server Underpinnings

• Evolution of C/S Architecture

• Objectives of C/S Architecture

• C/S Transport (TCP/IP)

• Socket Concepts

Page 10: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

10

Client/Server in Windows

• SCE Windows Support Environment

• Windows Operating Environment

• Windows Programming Environment

Page 11: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

11

Client/Server in Windows

• SCE Windows Support Environment

• Windows Operating Environment

• Windows Programming Environment

• Sockets

• Project (s)

Page 12: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

12

Client/Server in Linux

• SCE Linux Support Environment

• Linux Operating Environment

• Linux Programming Environment

• Sockets

• Project (s)

Page 13: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

13

Client/Server in Java

• SCE Java Support Environment

• Java Operating Environment

• Java Programming Environment

• Java Sockets

• Project (s)

Page 14: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

14

Remote Procedure Calls

• Foundations for RPC

• External Data Representation

• RPC Concepts

Page 15: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

15

Remote Procedure Calls

• Foundations for RPC

• External Data Representation

• RPC Concepts

• RPC Examples

Page 16: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

16

Other Stuff (As time permits)

• Threads

Page 17: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

17

Other Stuff (As time permits)

• Threads

• Other C/S environments Raw Sockets

IPv6

UNIX Domain Sockets

CORBA

COM / DCOM

NFS

Page 18: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

18

Motivation for Distributed Processing

• Computing costs

• Computing Power

• Computer networking Capabilities

• Application Availability Requirements

• Multi-vendor Environment Proliferating

Page 19: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 20: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

20

Host Based Processing

Page 21: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

21

Master - Slave Processing

Page 22: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

22

Client Server Processing

Page 23: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

23

Peer to Peer Processing

Page 24: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

24

Client / Server Advantages

• Leverage Desktop Computing Power

• Move Processing Closer to Data Source

Page 25: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 26: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

26

Distributed Computing Environment

• Developed under Open Software Foundation (OSF)

Page 27: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

27

Distributed Computing Environment

• Developed under Open Software Foundation (OSF)

• Major Components:– Distributed File System– Directory Service– Remote Procedure Calls– Threads Services– Time Services

Page 28: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 29: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

29

Distributed Processing Models

Page 30: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

30

Communication SystemsFunctions

• Naming and Addressing

• Segmentation

• Blocking

• Flow Control

• Prioritizing

• Error Control

Page 31: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 32: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

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

Page 33: 1 Course Introduction CS423 Client/Server Programming and Apps References: Comer/Stevens, Ch1

33

Summary

• Course Background– Course structure– SCE support facilities

• Client / Server Introduction– Environment Evolution– Distributed Computing– Multi-threading / multi-processing