EEC-681/781EEC-681/781Distributed Computing SystemsDistributed Computing Systems
Lecture 1Lecture 1
Wenbing ZhaoWenbing Zhao
Cleveland State UniversityCleveland State [email protected]@ieee.org
22
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
What is What is Distributed Computer System?Distributed Computer System?
• A collection of independent computers that appear to the users as a single coherent system– Autonomous computers connected by a
network– Software specifically designed to provide an
integrated computing facility => Our focus!
33
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
How It is Different from How It is Different from Computer Network?Computer Network?
• Distributed system is almost synonymous to middleware. It provides distribution transparency
44
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Course ObjectivesCourse Objectives
• Good understanding of distributed computing principles– E.g., how distribution transparency is achieved?
• Hands on experience– Labs: programming in different distributed
computing paradigms – Projects: design and implement a distributed
application => Put what you learned into use!
55
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
PrerequisitePrerequisite
• Operating system principles– Processes, scheduling, file systems, etc.
• Computer networks– TCP, UDP, IP, Ethernet, etc.
• Java programming language– At least you should know how to write a Hello
World program– You don’t have to be a Java expert
66
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
TopicsTopics
• Overview of distributed systems– Definition
• Distributed systems design principles– Distribution transparency– Openness– Mechanisms and policies– Scalability
77
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
TopicsTopics
• System models– Fundamental models– Architecture models
• Communication protocols & methods– Remote Procedure Calls (RPC)– Remote Method Invocations (RMI)– Message-oriented communication– Web services
88
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
TopicsTopics
• Processes– Multithreading and concurrency control– Stateless and stateful design– Process migration
• Naming– Naming and name resolution– X.500 and LDAP
99
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
TopicsTopics
• Synchronization– Clock synchronization– Logical clocks– Global snapshot– Election and mutual exclusion– Transactions and distributed commit
• Data replication and consistency
1010
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
LabsLabs
• Lab 0 – Getting familiar with Linux • Lab 1 – Java RMI (Remote method invocation)• Lab 2 – ActiveMQ (Java Message Service)• Lab 3 – Apache Axis (Web services) • Lab 4 – Java JNDI (Naming and Directory)• Lab 5 – MySQL/JDBC (Transactions)
“Tell me and I forget. Show me and I remember. Involve me and I understand.”- Chinese proverb
1111
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
LabsLabs
• Lab sessions are mandatory unless an exception is granted in advance
• I will not accept the lab report if you do now show up during the lab session
1212
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Course ProjectCourse Project
• Team of up to two (2) persons
• You define the project you want to work on– Problem definition– Approach: how do you achieve distributed
transparency, openness, scalability, etc.– Related work
1313
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Course ProjectCourse Project
• Deliverables– Project proposals– Progress report to help you keep good pace– Final project report
• Design documentation• Source code of your system/application• Performance measurement and analysis
– Demonstration and presentation
1414
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Class ParticipationClass Participation
• 10% of the course credit• I may perform a roll call in the beginning of each
class/lab to determine the attendance• To obtain the full credit for class participation,
you must satisfy ALL of the following conditions:– You do not miss more than 2 lectures – You do not miss any quiz and lab sessions – You asked at least 10 questions during the semester
• You will lose all 10% credit if you miss more than 6 lectures/labs
1515
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Class ParticipationClass Participation
• Send me an email with the following information for each question you have asked within 24 hours after each lecture:– The question you asked – My response – Your comment on my response and suggestion for
improvement, if any
1616
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Class ParticipationClass Participation
• You are encouraged to send me comments/suggestions on how you would like me to improve my teaching to make it more conducive
• For each piece of comment/suggestion, it will be counted as 2 questions
1717
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
ExaminationsExaminations
• Three midterms, no final exam• The exams are closed book and closed notes,
except that you are allowed to bring with you a one-page hand-written cheat sheet no larger than the US letter size (double-sided allowed)
• No makeup exams!
1818
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
GradingGrading• Class participation: 10%• Midterms: 45% (15% each)• Labs: 20%• Course project: 25%
– Proposal 2%– Progress report 3%– Presentation 5%– Report 15%– If you are caught cheating in
any of the steps, you will lose all credit for the project
• Grading Scale– A: 90-100%– A-: 85-89%– B+: 75-84%– B: 65-74%– B-: 60-64%– C: 50-59%– F: < 50%
1919
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Do not cheat!Do not cheat!
• Do not copy other student’s lab report, exams or projects
• Do not copy someone else’s work found on the Internet– Including project implementation and report– You can quote a sentence or two, but put those in
quote and give reference– You can build your projects on top of open source
libraries, but again, you need to explicitly give acknowledgement and state clearly which parts are implemented by you
2020
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Do not cheat!Do not cheat!
• Do not try to ride on a team without contributing to the project– During presentation, I will ask you questions
to determine if you know what you are talking about
– I may also ask you to demo your program and walk me through your code
2121
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Consequences for CheatingConsequences for Cheating• You get 0 credit for the task that you have cheated• If the task is worth more than 25% of the course, it
is considered a major infraction• Otherwise, it is considered a minor infraction• For major infraction and repeated minor infractions
– You will get an F grade, and – You may be suspended or repulsed from CSU
• CSU Code of Conduct– http://www.csuohio.edu/studentlife/StudentCodeOfCondu
ct.pdf
2222
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Reference TextsReference Texts
• Andrew S. Tanenbaum and Marten van Steen:– “Distributed Systems: Principles and Paradigms”
• Prentice-Hall, 2002
• George Coulouris, Jean Dollimore and Tim Kindberg: – “Distributed Systems: Concepts and Design”
• 4th Edition, Addison-Wesley, 2005
• Sape J. Mullender:– “Distributed Systems”
• 2nd Edition, ACM Press, 1993
2323
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
Instructor InformationInstructor Information
• Instructor: Dr. Wenbing Zhao– Email: [email protected]– Lecture hours: M W 6:00-7:50pm– Office hours: M W 2:00-4:00pm and by appointment
• Anonymous email:– [email protected]– Password:– if you are not happy, please do let me know
• Course Web site:– http://academic.csuohio.edu/zhao_w/teaching/
EEC681-F08/eec681.htm
2424
Fall Semester 2008Fall Semester 2008 EEC-681: Distributed Computing SystemsEEC-681: Distributed Computing Systems Wenbing ZhaoWenbing Zhao
DCS LabDCS Lab
• The lab consists of about 20 nodes running Suse 10.2 Linux
• Accessible from the Internet through the server– Externally visible domain name: dcs.csuohio.edu
• The lab itself runs many distributed systems, e.g.,– NFS (networked file systems)– NIS (network information service)
Top Related