This unit focuses on the design and programming techniques essential for developing distributed software systems and applications - with Java as the teaching language. The unit presents concurrent programming primitives and concepts for distributed systems. The unit also focuses on application of concurrent techniques in distributed system designs. Programming and implementation issues and techniques of distributed applications are studied. Enabling techniques for building distributed systems are analyzed and evaluated. Distributed Software Patterns are presented. The unit also includes case studies of distributed programming paradigms and their applications (e.g. JINI, JavaSpaces). -- Course Website
Prerequisites: Recommended knowledge: Some exposure to multithreading. Knowledge of all Java language constructs such as loops, conditionals, methods, classes, inheritance and core Java packages. Use of O/O models such as UML diagrams.