SYSC 5800: Network
Computing
Winter 2007
Instructor: Thomas Kunz
Office Hours: Mondays
Design and implementation of distributed applications
that use data networks (telecommunications networks/Internet/wireless networks)
as their computing platform. The
course content covers: Basics of networking; socket programming; Java
networking facilities; Introduction to open distributed processing; RPC and
RMI; CORBA; WWW, XML, Web Services (and potentially P2P and Grid Computing). In
essence, we will cover a range of technologies developed over the past 20+
years to solve the fundamental challenge of distributed computing: locating and
accessing remote components. The earlier technologies typically produce tight
coupling, resulting in brittle systems: one thing goes wrong and the whole
system breaks. This was exemplified by Lamport’s
famous (or infamous) definition of distributed systems: A distributed system
is one in which the failure of a computer you didn't even know existed can
render your own computer unusable. More recent work/technologies have
focused on building distributed applications from loosely coupled components
that can be dynamically composed (the “state-of-the-art” buzzword for that
trend is Service Oriented Architecture). The course is designed as a
hands-on course, with a heavy emphasis on developing your own distributed
applications.
Resources: There is no single textbook that adequately covers the
diverse range of topics (and buying multiple textbooks is clearly not very
appealing financially). However, some somewhat good books to cover parts of the
course are listed below:
·
Distributed Systems:
Principles and Paradigms, by Andrew S. Tanenbaum and Maarten van Steen,
Prentice Hall 2002, ISBN 0-13-088893-1.
·
Java Network
Programming, 2nd edition, by Merlin Hughes et al., Manning
Publications 1999, ISBN 1-884777-49-X.
·
Building Web Services
with Java, 2nd edition, by Steve Graham et
al., Sams Publishing 2005, ISBN
0-672-3264.
·
An Introduction to XML
and Web Technologies, by Andres Møller and Michael Schwartzbach,
Addison-Wesley 2006, ISBN 0-321-26966-7.
I will post my slides, plus other reference
material, on the course webpage, http://kunz-pc.sce.carleton.ca/sysc5800/. I will also post marks, etc. on this
webpage.
Marking
Scheme: There
will be a final exam worth 30%, two in-class presentations worth 10% each, and
a course project, which is worth 50% total (10% will be assigned based on the
project proposal, and 40% will be based on the final project itself). The final exam is for evaluation purposes only and
will not be returned to students. All
documents (project proposal, final report) have to be submitted as a hardcopy and softcopy,
and follow certain formatting guidelines (in particular length and font size
limitations). See below for a discussion of these requirements. All coursework,
with the obvious exception of the final exam, will be based on group efforts.
Group sizes are expected to be approximately 3-4, depending on course
enrollment, and groups will be finalized after the end of the registration
deadline, January 19. You can either form teams of your own (starting
immediately) or you will be assigned to a group by the instructor by January
22.
Due Dates: The final exam will be in
class on Monday, April 3. Team formations will be finalized by January 23. The
project proposal is due in class on Monday, February 26. The first round of
in-class presentations is the week before Reading Week (i.e., on February 12
and 14). The second round is starting March 12, with the presentation order
determined by a lottery on March 12. The hardcopy of the final project report
is due April 9, in my office, by
Due
Date |
Weight |
|
Team
Formation and Topic Assignment |
January
22 |
|
Project
Proposal |
February
26 |
10
% |
First
round of presentations (PPT files due Feb. 11) |
February
12/14 |
10% |
Second
round of presentations (Material due March 11) |
Starts
March 12 |
10
% |
Final
Exam |
April
2 |
30
% |
Final
Project Report |
April
9 |
40
% |
Cheating: Suspected academic offences
(cheating) will be investigated and reported to the Dean of Graduate Studies
and Research, see also General Regulation 14. Cheating covers a wide range of
offences, including submitting another student’s work as your own solution, or
committing an act of plagiarism. A more detailed description of what
constitutes plagiarism is available on the WWW: (http://www.zoology.ubc.ca/bpg/Advising/Plagiarism.htm).
Project: 50% of your mark will be
determined by a course project (10% for the proposal, 40% for the final
project). The overall goal is to apply the course lessons in a programming
project based on Jabber (www.jabber.org),
on open-source instant messaging platform. Possible topics are enhancing the
core Jabber functionality, implementing an interesting application on top of
Jabber, providing new/additional gateways to other systems, porting Jabber
clients/servers to new platforms, etc. The project proposal should identify the
topic and discuss related work (why is the topic relevant/interesting, has
similar functionality/service been implemented in any other system, what
expectations do you have for the final project outcome). The proposal should
not exceed 5 single-spaced pages (including references, etc.). I will provide
feedback on the proposals by e-mail within a week. The final project should
consist of running and well-documented code, an installation manual, a user
manual, and a separate document (not to exceed 15 pages) that extends the
proposal document: what problem was solved, what related work was reviewed,
what are the contributions of the project (functionality, performance), and
what are the shortcomings/possibilities for future work. All submissions should
be both as hardcopy (drop them off either in my office or my departmental
mailbox) and as softcopy (submitted to my e-mail address tkunz@sce.carleton.ca). Marks will be
based on the completeness of the submission, the innovative aspect of the
application, and the quality of the code and documentation. Equal value will be
given to the code (including installation and user manuals) and the report.
Presentations:
each group will prepare two presentations. The first set of presentations
will be a brief
(15 minutes) presentation on a Jabber-related topic, based on a list I will
provide. An additional 5 minutes are scheduled for Q&A. This is about the
length of time you would be given to present at an academic conference as well.
I will arbitrarily assign topics to teams, once they are formed (i.e., by
January 22), to ensure a proper order/logic of presentations. The goal of the
first presentation is to introduce an aspect of the Jabber system in the form
of a tutorial. You need to submit a PPT file electronically to tkunz@sce.carleton.ca by February 11
that will be made available to all students on the course webpage.
In the second round of presentations, each group
will give a longer (25 minutes plus 5 minutes for Q&A) presentation on
their course project: what are the goals, what are possible design
alternatives, progress to-date, outstanding problems. You may choose to use PPT
for this presentation or run a demonstration, etc. as you please, with all
material you’d like to have access to in the electronic classroom submitted
electronically to tkunz@sce.carleton.ca
by March 11. The order of presentation will be determined by lottery on March
12 (i.e., you should be ready to present on that day). I will evaluate the
presentations and provide feedback to each group after each round.
Outline:
·
Network
Computing Introduction
·
Intro
to Network Architectures
·
Basic
Programming Models: Messaging vs. Distributed Shared Memory
·
Socket
Programming
·
Remote
Procedure Calls
·
Remote
Method Invocation
·
Common
Object Request Broker Architecture
·
World
Wide Web
·
Extensible
Markup Language
·
Web
Services
·
P2P
·
Grid
Computing
Students with Disabilities:
Students with disabilities
requiring academic accommodations in this course are encouraged to contact a
coordinator at the Paul Menton Centre for Students
with Disabilities to complete the necessary letters of accommodation. After registering with the PMC, make an
appointment to meet and discuss your needs with me. This is necessary in order
to ensure sufficient time to make the necessary arrangements. Please note the following deadlines for
submitting completed forms to the Paul Menton Centre:
March 10th, 2007 for the Winter Term.