CS518 2010


General Information






CS518: Distributed Software Systems Development
Spring 2010

CS518 is a graduate course teaching principles of developing distributed systems. We cover approaches that use distributed object and component middleware, aspect-oriented programming, and service-oriented architectures. CS518 is a programming-intensive course and requires a term paper.

Prerequisites: Operating Systems (CS451 or equivalent course) and Object-Oriented Design (CS414 or equivalent course), or written consent of instructor


  1. Characterization of distributed systems
    • Introduction and examples of distributed systems
    • System models: architectural models and fundamental models
  2. Distributed objects and remote method invocation
    • Middleware and infrastructure
    • Remote method calls
    • External data representation and marshalling
    • Remote events and notifications
    • Detailed Java RMI case study
    • Articles on CORBA and Jini
  3. Aspect-oriented software development
    • Introduction to crosscutting concerns and aspects
    • Introduction to the AspectJ programming language
  4. Design patterns for distributed applications
  5. Introduction to component-based development
    • Using UML for component-based design and assignment
    • Articles on JavaBeans, Enterprise Java Beans, and CORBA
  6. Introduction to service-oriented architectures
    • Characteristics of SOAs
    • Introduction to web services
  7. Other topics
    • OSGi
    • Spring framework
    • Adaptive middleware

What's New?

Oct 15
Course website under construction for Spring 2010.

Last updated: January 7, 2010