|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
|Grading Scale:||90% - 100%||A|
|80% - 89%||B|
|70% - 79%||C|
|60% - 69%||D|
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:||
Supplemental readings (not mandatory):
Presentation 5: Specification and Verification: LOTOS
Presentation 6: Specification of protocols (SDL)
Presentation 11: PGP
Presentation 12: Time Warp
|Projects:|| Programming Project 1 (Warmup)
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)
The system should offer:
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 with (optional) secure communication
The system should offer:
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.
|Exam date:||Final||May 8, 2001, 12:00 - 3:00 pm|