Programming – Distributed Systems

Students have learned to develop complex software systems in Java which are distributed on networked computers. They are skilled in using eclipse or netbeans as integrated development environments. They have experience in using communication middleware systems and in integrating as well as testing of distributed systems. They know architectural patterns for distributed systems and can choose suitable architectural approaches according to environmental requirements. They are familiar with the typical challenges caused by the heterogeneity of enterprise application environments. Middleware systems of various technologies and categories have been practically utilized during exercises.

Some content to get a taste


  • Motivation and examples of distributed systems
  • JavaDoc, external libraries
  • Representation of data (XML, JSON), parsing (SAX)
  • Java on Android (anatomy of a simple app)
  • Multi-tier architectures
  • Classification of middleware: typical requirements and categories
  • Enterprise Application Integration (EAI)- Distributed objects (Java RMI), de-/serialization
  • Indirect communication (JGroups, Publish Subscribe, Message Queues)
  • Enterprise Java Beans, application servers
  • Workflow management: process oriented EAI
  • Service-oriented architectures
  • Web services
  • Service orchestration