Course: | CSCI 8060 Advanced Software Engineering | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lecturer: | Krys J. Kochut | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Text: | Distributed Systems: Concepts and Design. Edition
3 by George Coulouris, Jean Dollimore and Tim Kindberg, Addison-Wesley
2001. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grading: | Presentations: | 100 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Final: | 150 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Projects: |
150 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grading Scale: | 90% - 100% | A | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
80% - 89% | B | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
70% - 79% | C | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
60% - 69% | D | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
below 60% |
F | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Notes: |
In this course we will study advanced techniques of distributed software development. We will begin with introductory discussion of the general design principles of distributed systems and then move on to various specific issues, such as security, fault tolerance, distributed transactions, and many others. The course will include the Unified Modeling Language (UML) as applied to distributed systems design. A portion of the course will be devoted to programming techniques, geared for distributed systems development. Most likely, the programming projects will be done in Java. We will include a short overview of Java and the relevant JDK classes, including reflection, networking. Tools for component based interoperability (Java Beans, CORBA, XML, etc.) will also be discussed. The projects will be assigned and discussed at a later date. A significant portion of the course work will concentrate on reading research papers in the areas related to distributed systems design and implementation. The students will give short class presentations on the selected papers. Each student is expected to do his/her own work. All suspected cases of academic dishonesty will be handled in strict accordance with department and university policy. The grade of I (incomplete) is reserved for special cases only, such as a serious illness, and will be decided on individual basis. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Readings for class presentations: |
Presentation 1:
Supplemental readings (not mandatory): Presentation 2:
Presentation 3:
Presentation 4:
Presentation 5: Specification and Verification: LOTOS
Presentation 6: Specification of protocols (SDL)
Presentation 7:
Presentation 8:
Presentation 9:
Presentation 10:
Presentation 11: PGP
Presentation 12: Time Warp
Presentation 13:
Presentation 14:
Presentation 15:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Projects: | Programming Project 1 (Warmup)
[10 pts]
Homework 1 [10 pts] Analyze the source code for the multiplexor server, as presented during the class lecture. The code is available on gemini in my home directory (the path is cs8060/net/netsrv). Write a report in which you will detail the organization and inner-workings of the program. The report should include a discussion and description of:
You should also present a sequence of events within the system, from the startup time, accepting two client connections, servicing the connection, and then closing the connection, and eventually shutting down the system. Programming Project 2 (CORBA) [20 pts]Convert the Polling program (our CORBA example) into the one that uses dynamic invocation only. Submit (using submit) the directory containing your server. (You should submit it to the user cs8060.) CSCI 8060 Term Projects (Pick one) E-Voter system The system should offer: Excellent
reliability High
availability Robust
security Absolute
integrity Offer
excellent user interface (ease of use) Allow the election commission to: Define the election questions with subdivision to national and local sections
Chat room Chat room with (optional) secure communication The system should offer: Good
reliability Robust
security Allow
the user to: Selecting a name and join an
existing topic (“room”), Request all of the prior messages
for the past 5, 15, 30, 60 minutes Create a new topic (room),
possibly restricting access to a few named users. Replication for CORBA Similar to solution proposed in one of the papers presented
in class. Provide a user controlled mechanism for replicating
CORBA objects. A configuration (created dynamically) should specify participating hosts for replication Objects should be replicated to the specified hosts. A number of “managers”
should control the traffic Load balancing for CORBA Provide a way
to “balance” the objects distributed among a number of participating hosts.
Ask for details of this project. Name
service for Orbacus The name service should be implemented as a WEB server storing object
names Each object name should be bound to an object reference (IOR) The user should be able to create directories of names The user should be able to query the name service and obtain IOR’s. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schedule: |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Exam date: | Final | May 8, 2001, 12:00 - 3:00 pm |