21
0-322 Cli/Serv.: Prelim/0 Client/Server Distributed Syste Client/Server Distributed Syste ms ms Lecturer: Lecturer: Dr. Andrew Davison Dr. Andrew Davison [email protected] [email protected] Info. Eng. Research Lab (rm 101) Info. Eng. Research Lab (rm 101) Objective Objective to give some background on this course to give some background on this course 240-322, Semester 1, 2005-2006 0. Preliminari es Please ask questions

240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison [email protected] Info. Eng. Research Lab (rm 101)

Embed Size (px)

Citation preview

Page 1: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 1

Client/Server Distributed SystemsClient/Server Distributed Systems

Lecturer:Lecturer: Dr. Andrew DavisonDr. Andrew [email protected]@fivedots.coe.psu.ac.thInfo. Eng. Research Lab (rm 101)Info. Eng. Research Lab (rm 101)

ObjectiveObjective– to give some background on this courseto give some background on this course

240-322, Semester 1, 2005-2006

0. PreliminariesPlease askquestions

Page 2: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 2

OverviewOverview

1. 1. Outline of the CourseOutline of the Course

2. 2. Meeting Times / LocationsMeeting Times / Locations

3. 3. WorkloadWorkload

4. 4. Course MaterialsCourse Materials

5. 5. Reading MaterialsReading Materials

Page 3: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 3

1. Outline of the Course1. Outline of the Course

An overview of client/server and An overview of client/server and distribution models.distribution models.

An emphasis on programming.An emphasis on programming.

Examples will use C+UNIX and Java.Examples will use C+UNIX and Java.

Page 4: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 4

DetailsDetails (subject to change) (subject to change)

The course is divided into three parts.The course is divided into three parts.

1. Client/Server & Distribution Models1. Client/Server & Distribution Models– client/server models client/server models

– distributed programming conceptsdistributed programming concepts

– peer-to-peerpeer-to-peer

continued

Page 5: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 5

2. C+UNIX Network Programming2. C+UNIX Network Programming– low-level file I/Olow-level file I/O

– processesprocesses

– networking overviewnetworking overview e.g. ISO, TCP, UDPe.g. ISO, TCP, UDP

– sockets programmingsockets programming TCP iterative/concurrent servers, TCP clientsTCP iterative/concurrent servers, TCP clients processor farmsprocessor farms UDP clients and serversUDP clients and servers

– RPCsRPCs

continued

Page 6: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 6

3. Java Network Programming3. Java Network Programming– basic network programmingbasic network programming

e.g. sockets, Web page retrievale.g. sockets, Web page retrieval

– different styles of client/server programming different styles of client/server programming based around a network chat examplebased around a network chat example

– overviews of RMI, CORBA, J2EE, Web overviews of RMI, CORBA, J2EE, Web Services, JXTAServices, JXTA

I assume youknow basicJava.

Page 7: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 7

PrerequisitesPrerequisites

Be able to program in C under UNIXBe able to program in C under UNIX– many network functions use pointers to structsmany network functions use pointers to structs– you will you will notnot have to create pointer-based data have to create pointer-based data

structures like linked lists or trees; but you structures like linked lists or trees; but you mightmight have have to be able to read code that uses such thingsto be able to read code that uses such things

– required UNIX skill level: create directories, files, required UNIX skill level: create directories, files, compilationcompilation

– passing 240-204 CPT is enoughpassing 240-204 CPT is enough

continued

Page 8: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 8

Be able to program in JavaBe able to program in Java– I assume you know about classes, objects, SwinI assume you know about classes, objects, Swin

g, threads, etc.g, threads, etc.– the material covered in 240-321 "Advanced CPthe material covered in 240-321 "Advanced CP

T (Java)"T (Java)"

Page 9: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 9

2. Meeting Times / Locations2. Meeting Times / Locations

TuesdayTuesday 15 -- 15.5015 -- 15.50 R200R200 WednesdayWednesday 10 -- 10.5010 -- 10.50 R201R201 FridayFriday 10 -- 10.5010 -- 10.50 R200R200

These times can change, if you ask me.These times can change, if you ask me.

Page 10: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 10

3. Workload (% of total score)3. Workload (% of total score)

Mid-term exam:Mid-term exam: 35%35%– during week 9, 2 hoursduring week 9, 2 hours

Final exam:Final exam: 45%45%– during weeks 18-19; 3 hoursduring weeks 18-19; 3 hours

Project:Project: 20%20%– C, UNIX, socketsC, UNIX, sockets– 2 weeks, weeks 15-162 weeks, weeks 15-16

Page 11: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 11

Non-Attendence PenaltyNon-Attendence Penalty

I I maymay take registration at the start of a take registration at the start of a class.class.

If someone is not there, they lose If someone is not there, they lose 1%1%((unless they have a good excuseunless they have a good excuse))..

A maximum of A maximum of 10%10% can be lost can be lost– deducted from final markdeducted from final mark

Page 12: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 12

4. Course Materials4. Course Materials

I will hand out one copy of my slidesI will hand out one copy of my slides– you should make copies of themyou should make copies of them

Online materials:Online materials:http://fivedots.coe.psu.ac.th/http://fivedots.coe.psu.ac.th/

Software.coe/Cliserv/Software.coe/Cliserv/ includes these slides, code examples (C and Java)includes these slides, code examples (C and Java)

Do Do notnot use the VCR, the material is not yet finishe use the VCR, the material is not yet finished.d.

Page 13: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 13

5. Reading Materials5. Reading Materials

The main texts used in my notes are:The main texts used in my notes are:– Client/Server ArchitectureClient/Server Architecture

Alex BersonAlex BersonMcGraw Hill, 1996, McGraw Hill, 1996, 2nd ed2nd ed..

– Copies of the relevant chapters will be Copies of the relevant chapters will be handed out, and you'll be expected to read handed out, and you'll be expected to read them!them!

Page 14: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 14

– UNIX Distributed ProgrammingUNIX Distributed ProgrammingChris BrownChris BrownPrentice Hall, 1994Prentice Hall, 1994 I have a copy, and there's a copy in the PSU libraryI have a copy, and there's a copy in the PSU library

– Practical UNIX ProgrammingPractical UNIX ProgrammingRobbins and RobbinsRobbins and RobbinsPrentice Hall 1996Prentice Hall 1996 there's a copy in our library (and I have one)there's a copy in our library (and I have one)

Page 15: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 15

Two UNIX programming ‘bibles’:Two UNIX programming ‘bibles’:– UNIX Network Programming: Networking APIs: UNIX Network Programming: Networking APIs:

Sockets and XTI, Vol 1Sockets and XTI, Vol 1W. Richard StevensW. Richard StevensPrentice Hall, 1998 (2nd ed.)Prentice Hall, 1998 (2nd ed.)

– UNIX Network Programming: Interprocess UNIX Network Programming: Interprocess Communication, Vol 2Communication, Vol 2W. Richard StevensW. Richard StevensPrentice Hall, 1999 (2nd ed.)Prentice Hall, 1999 (2nd ed.)

Very advanced, but the best sources.There are copies in our library.

Page 16: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 16

Good Java BooksGood Java Books (in our library) (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")(it is misnamed as "Think in Java")

Beginning Java 2Beginning Java 2Ivor Horton, Wrox Press, 1999Ivor Horton, Wrox Press, 1999

Page 17: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 17

The standard (hard) introduction:The standard (hard) introduction:– Core Java 1.2., Vol. 1 -- FundamentalsCore Java 1.2., Vol. 1 -- Fundamentals

Cay S. Horstmann and Gary CornellCay S. Horstmann and Gary CornellSun Microsystems PressSun Microsystems PressPrentice Hall, 1999Prentice Hall, 1999

Page 18: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 18

A good beginner's Java book:A good beginner's Java book:Java: How to ProgramJava: How to ProgramH.M. Deitel & P.J. Deitel (called D&D)H.M. Deitel & P.J. Deitel (called D&D)Prentice Hall, 2003 (5th ed.)Prentice Hall, 2003 (5th ed.)

Web page: Web page: http://www.deitel.comhttp://www.deitel.com

There are a lot of editions of this bookThere are a lot of editions of this book– the 4th, 5th, or 6th editions are finethe 4th, 5th, or 6th editions are fine

– later is betterlater is better

continued

Page 19: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 19

An electronic version is at Aj. Somchai's CoE Java site: An electronic version is at Aj. Somchai's CoE Java site: http://java.coe.psu.ac.th/http://java.coe.psu.ac.th/ ForMember/Books.html#J2SEForMember/Books.html#J2SE

The CoE Java site has The CoE Java site has manymany Java books available for dow Java books available for download in the "members" area.nload in the "members" area.

Page 20: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 20

Killer Game Programming in JavaKiller Game Programming in Javahttp://fivedots.coe.psu.ac.th/~ad/jg/http://fivedots.coe.psu.ac.th/~ad/jg/

– I'll be using the online chapters 29 and 30 for mI'll be using the online chapters 29 and 30 for most of the Java network code examplesost of the Java network code examples

Page 21: 240-322 Cli/Serv.: Prelim/01 Client/Server Distributed Systems v Lecturer:Dr. Andrew Davison ad@fivedots.coe.psu.ac.th Info. Eng. Research Lab (rm 101)

240-322 Cli/Serv.: Prelim/0 21

Reading AssignmentsReading Assignments

I will be asking you to read chapters from I will be asking you to read chapters from BersonBerson– I will I will notnot go through all the material in class go through all the material in class

– reading assignments are examinable, so reading assignments are examinable, so do themdo them