Computer Science Department
Distributed Software Systems Development
Course date: 01/21/03 - 05/11/03
Location: 133 Wagar (subject to change)
Meeting days: Tuesdays, Thursdays
Meeting times: 8:00 am - 9:15 am
- Operating Systems (CS451) or equivalent course
- and Object-Oriented Design (CS414) or equivalent course
- or, written consent of instructor
Phone: (970) 491-4608
Fax: (970) 491-2466
Office hours: TR 2:00-3:00, or by appointment
Office location: Rm 224 University Services Center,
Computer Science Department,
Colorado State University, Fort Collins, CO 80523
Biography: Sudipto Ghosh received the Bachelor of Technology
degree in Computer Science and Engineering from the Indian Institute of
Technology, Kanpur, India in 1993. He received the Master of Science
degree in Computer Science from Iowa State University in 1995 and the
Doctor of Philosophy degree from Purdue University in 2000. He is
currently an Assistant Professor in the Computer Science Department
at Colorado State University, Fort Collins, Colorado. His research
interests include software engineering and distributed object systems.
He is a member of the Association of Computing Machinery and the IEEE
CS518 is a graduate course teaching principles of developing distributed
system using distributed object and component-based middleware.
Students will learn how to build distributed component-based systems
that are integrated across the internet. CS518 is a
programming-intensive course and has a significant
The following topics will be covered in the course: (Subject to change)
- Characterization of Distributed Systems.
- Examples of Distributed Systems.
- System Models.
- Architectural Models.
- Fundamental Models.
- Distributed Objects and Remote Invocation.
- Communication between Distributed Objects.
- Remote Procedure Calling.
- Events and Notifications.
- Java RMI Case Study.
- Robust, evolvable, plug-and-play systems
- Service discovery, registration and lookup
- Remote events, leasing
- Reusable component development
- Components - Enterprise Java Beans
- Transaction processing
- Session Beans - stateful and stateless
- Entity Beans
- Design patterns for Concurrent and Networked objects
- Service access and configuration patterns
- Event handling patterns
- Synchronization patterns
- Concurrency patterns
You are responsible for any announcements made in class and on WebCT.
Late work will not be accepted without prior permission. Extensions may
be granted when permission is sought in advance for reasons that are
unexpected and beyond your control. All homework assignments and projects
are to be done individually. Read the departmental policy on cheating,
incompletes and class attendance.
- Required Texts:
Distributed Systems: Concepts and Design by George Coulouris,
Jean Dollimore, Tim Kindberg, Addison Wesley Longman,
ISBN: 0-201-61918-0 Copyright 2001, 3rd edition.
Pattern-Oriented Software Architecture, Volume 2: Patterns for
Concurrent and Networked Objects, Douglas Schmidt, Michael Stal,
Hans Rohnert, Frank Buschmann, John Wiley & Sons, 2nd edition Vol 2
(September 25, 2000), ISBN 0471606952.
- Supplementary Texts:
Java 2: The Complete Reference, Herbert Schildt, McGraw Hill
Osborne, 5th Edition. ISBN: 0072224207
Enterprise JavaBeans[tm] Technology - Applying Enteprise JavaBeans: Component-Based Development For The J2EE[tm] Platform
by Vlada Matena, Beth Stearns
Jini[tm], Example by Example by W. Keith Edwards and Tom Rodden
First edition, Prentice Hall PTR, Copyright: 2001, ISBN 0-13-033858-3
Selected from journals and relevant conferences
Summary of grading criteria:
- 25% - Homework assignments
- 30% - Project
- 20% - Midterm
- 25% - Final
Final letter grades will be based on the relative distribution of
total scores and not on any preset numerical grade.
I will assign programming homework on Java RMI, Jini, Java beans and EJB. You
will get about 2-3 weeks for each assignment. Each assignment needs to be
turned in electronically by 11:59pm on the due date.
I will assign a project just before the Spring break. I will suggest
several topics. You may suggest topics as well. The project will
probably require you to do the following:
learn a new technology on your own (e.g., CORBA, SOAP-RPC, .NET),
implement an application using the new middleware technology
read literature comparing your middleware technology to one of
Java RMI, EJB, Jini
compare your own experiences with the new middleware and Java RMI/EJB/Jini.
Alternatively, you may implement prototypes for our software engineering
group's research projects. Examples are:
Extend remote assertion specification and checking capabilities for
arbitrary object types in Java RMI. Currently our prototype allows
checking attributes of objects only when the attributes have primitive
Explore the use of aspect oriented development for achieving "middleware
transparency." We have had limited success in converting a stand-alone
application to a Jini-based distributed application using Aspects. You
will explore other middleware technologies and find the limitations of
this approach and perhaps investigate aspect oriented modeling approaches.
Extend our interaction diagram extraction tool. Currently our prototype
is able to extract behavioral models from run-time information in the
form of UML sequence diagrams. We need people to work on other complexities
in the execution as well as extend the work to UML statemachines.
Students interested in security can explore intrusion detection techniques
and the development of survivable systems based on middleware techniques.
A demo and a 20-page project report will be required at the end of the
There are two exams.
8:00 am - 9:15 am
Material covered up to March 6
9:10 am - 11:10 am
Last modified: April 2, 2003.