prelim0

advertisement
Client/Server Distributed Systems
240-322, Semester 1, 2005-2006
0. Preliminaries

Please ask
questions
Lecturer: Dr. Andrew Davison
ad@fivedots.coe.psu.ac.th
Info. Eng. Research Lab (rm 101)
 Objective
– to give some background on this course
240-322 Cli/Serv.: Prelim/0
1
Overview
1.
2.
3.
4.
5.
240-322 Cli/Serv.: Prelim/0
Outline of the Course
Meeting Times / Locations
Workload
Course Materials
Reading Materials
2
1. Outline of the Course
 An
overview of client/server and
distribution models.
 An
emphasis on programming.
 Examples
240-322 Cli/Serv.: Prelim/0
will use C+UNIX and Java.
3
Details (subject to change)
 The
course is divided into three parts.
1. Client/Server & Distribution Models
– client/server models
– distributed programming concepts
– peer-to-peer
240-322 Cli/Serv.: Prelim/0
continued
4
2. C+UNIX Network Programming
– low-level file I/O
– processes
– networking overview
 e.g. ISO, TCP, UDP
– sockets programming
 TCP iterative/concurrent servers, TCP clients
 processor farms
 UDP clients and servers
– RPCs
240-322 Cli/Serv.: Prelim/0
continued
5
3. Java Network Programming
I assume you
know basic
Java.
– basic network programming
 e.g.
sockets, Web page retrieval
– different styles of client/server programming
based around a network chat example
– overviews of RMI, CORBA, J2EE, Web
Services, JXTA
240-322 Cli/Serv.: Prelim/0
6
Prerequisites
 Be
able to program in C under UNIX
– many network functions use pointers to structs
– you will not have to create pointer-based data structures
like linked lists or trees; but you might have to be able
to read code that uses such things
– required UNIX skill level: create directories, files,
compilation
– passing 240-204 CPT is enough
240-322 Cli/Serv.: Prelim/0
continued
7
 Be
able to program in Java
– I assume you know about classes, objects,
Swing, threads, etc.
– the material covered in 240-321 "Advanced
CPT (Java)"
240-322 Cli/Serv.: Prelim/0
8
2. Meeting Times / Locations
 Tuesday
 Wednesday
 Friday
 These
240-322 Cli/Serv.: Prelim/0
15 -- 15.50
10 -- 10.50
10 -- 10.50
R200
R201
R200
times can change, if you ask me.
9
3. Workload (% of total score)
 Mid-term
exam:
35%
– during week 9, 2 hours
 Final
exam:
45%
– during weeks 18-19; 3 hours
 Project:
20%
– C, UNIX, sockets
– 2 weeks, weeks 15-16
240-322 Cli/Serv.: Prelim/0
10
Non-Attendence Penalty
I
may take registration at the start of a class.
 If
someone is not there, they lose 1%
(unless they have a good excuse).
 A maximum
of 10% can be lost
– deducted from final mark
240-322 Cli/Serv.: Prelim/0
11
4. Course Materials
I
will hand out one copy of my slides
– you should make copies of them
 Online materials:
http://fivedots.coe.psu.ac.th/
Software.coe/Cliserv/
 includes
these slides, code examples (C and Java)
 Do
not use the VCR, the material is not yet
finished.
240-322 Cli/Serv.: Prelim/0
12
5. Reading Materials
 The
main texts used in my notes are:
– Client/Server Architecture
Alex Berson
McGraw Hill, 1996, 2nd ed.
– Copies of the relevant chapters will be
handed out, and you'll be expected to read
them!
240-322 Cli/Serv.: Prelim/0
13
– UNIX Distributed Programming
Chris Brown
Prentice Hall, 1994
I
have a copy, and there's a copy in the PSU
library
– Practical UNIX Programming
Robbins and Robbins
Prentice Hall 1996
there's
240-322 Cli/Serv.: Prelim/0
a copy in our library (and I have one)
14
Very advanced, but the best sources.
There are copies in our library.
 Two
UNIX programming ‘bibles’:
– UNIX Network Programming: Networking
APIs: Sockets and XTI, Vol 1
W. Richard Stevens
Prentice Hall, 1998 (2nd ed.)
– UNIX Network Programming: Interprocess
Communication, Vol 2
W. Richard Stevens
Prentice Hall, 1999 (2nd ed.)
240-322 Cli/Serv.: Prelim/0
15
Good Java Books (in our library)
 Thinking
in Java
Bruce Eckel, Prentice Hall, 2003, 3rd ed.
– can be downloaded from
http://java.coe.psu.ac.th/
FreeOnline.html
(it is misnamed as "Think in Java")
 Beginning
Java 2
Ivor Horton, Wrox Press, 1999
240-322 Cli/Serv.: Prelim/0
16
 The
standard (hard) introduction:
– Core Java 1.2., Vol. 1 -- Fundamentals
Cay S. Horstmann and Gary Cornell
Sun Microsystems Press
Prentice Hall, 1999
240-322 Cli/Serv.: Prelim/0
17
 A good
beginner's Java book:
Java: How to Program
H.M. Deitel & P.J. Deitel (called D&D)
Prentice Hall, 2003 (5th ed.)
Web page: http://www.deitel.com
 There
are a lot of editions of this book
– the 4th, 5th, or 6th editions are fine
– later is better
240-322 Cli/Serv.: Prelim/0
continued
18
 An
electronic version is at Aj. Somchai's
CoE Java site:
http://java.coe.psu.ac.th/
ForMember/Books.html#J2SE
 The
CoE Java site has many Java books
available for download in the "members"
area.
240-322 Cli/Serv.: Prelim/0
19
 Killer Game Programming in Java
http://fivedots.coe.psu.ac.th/~ad/jg/
– I'll be using the online chapters 29 and 30 for
most of the Java network code examples
240-322 Cli/Serv.: Prelim/0
20
Reading Assignments
I
will be asking you to read chapters
from Berson
– I will not go through all the material in class
– reading assignments are examinable, so do
them
240-322 Cli/Serv.: Prelim/0
21
Download