210 likes | 356 Views
Client/Server Distributed Systems. 240-322, Semester 1, 2005-2006. Lecturer: Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101) Objective to give some background on this course. Please ask questions. 0. Preliminaries. Overview. 1. Outline of the Course
E N D
Client/Server Distributed Systems 240-322, Semester 1, 2005-2006 • Lecturer: Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101) • Objective • to give some background on this course Please ask questions 0. Preliminaries
Overview 1. Outline of the Course 2. Meeting Times / Locations 3. Workload 4. Course Materials 5. Reading Materials
1. Outline of the Course • An overview of client/server and distribution models. • An emphasis on programming. • Examples will use C+UNIX and Java.
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 continued
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 continued
I assume you know basic Java. 3. Java Network Programming • 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
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 continued
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)"
2. Meeting Times / Locations • Tuesday 15 -- 15.50 R200 • Wednesday 10 -- 10.50 R201 • Friday 10 -- 10.50 R200 • These times can change, if you ask me.
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
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
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.
5. Reading Materials • The main texts used in my notes are: • Client/Server ArchitectureAlex BersonMcGraw Hill, 1996, 2nd ed. • Copies of the relevant chapters will be handed out, and you'll be expected to read them!
UNIX Distributed ProgrammingChris BrownPrentice Hall, 1994 • I have a copy, and there's a copy in the PSU library • Practical UNIX ProgrammingRobbins and RobbinsPrentice Hall 1996 • there's a copy in our library (and I have one)
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 1W. Richard StevensPrentice Hall, 1998 (2nd ed.) • UNIX Network Programming: Interprocess Communication, Vol 2W. Richard StevensPrentice Hall, 1999 (2nd ed.)
Good Java Books (in our library) • Thinking in JavaBruce 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 2Ivor Horton, Wrox Press, 1999
The standard (hard) introduction: • Core Java 1.2., Vol. 1 -- FundamentalsCay S. Horstmann and Gary CornellSun Microsystems PressPrentice Hall, 1999
A good beginner's Java book: Java: How to ProgramH.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 continued
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.
Killer Game Programming in Javahttp://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
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