Distributed software


Distributed software plays an increasingly important role in the ICT sector. More and more companies, individuals and organizations collaborate by using computer networks: mobile, Internet etc.; the appropriate software systems therefore have to reach far beyond the management and deployment of underpinning network infrastructures. A growing number of software applications are architected as a collection of collaborating software entities that are allocated to different locations in the world. Research and know how on distributed software address both development and management aspects, as well as the creation of software architectures and technologies that accommodate such distributed applications.


To support solid, well-founded engineering approaches for constructing and managing complex distributed applications. Key system requirements that the research aims to deal with are:

  • dynamic configurability - a stakeholder must be able to flexibly (re)configure systems based on his specific requirements
  • adaptability and self-management - systems must adapt autonomously to changing conditions, context and requirements
  • quality-of-service (QoS) - the services offered by applications, middleware and network protocols must continually adhere to quality criteria (performance, cost, timeliness)

In this research, software quality is crucial:

  • software reusability and separation of concerns (SoC) -  an essential factor is the improvement of modularity, e.g. through aspect-orientation and component-based software development
  • system openness - the research aims for transparent object-oriented platforms for the development of (distributed) software systems

Research Areas

Architectures for distributed software:

  • service-oriented architectures
  • architectures for wireless sensor networks 
  • multi-agent  systems and coordination models
  • architectures supporting context aware software systems
  • multi-tier architectures

Software engineering of distributed software:

  • aspect-oriented software development to increase modularity and adaptability
  • model driven software development and semi-automatic translation between models
  • programming languages offering support for complex distributed applications
  • advances in the creation and evaluation of software architectures
  • software product lines

Support platforms for distributed software:

  • component platforms for distributed software, such as .NET and J2EE, event processing systems
  • middleware for web services and embedded systems
  • platforms supporting  the management of services, the realisation and management of policies, the distribution of tasks and load balancing
  • cloud computing platforms (IaaS, PaaS and SaaS)

Specific application areas of distributed software:

  • cloud computing
  • Internet applications
  • applications of wireless sensor networks
  • context aware and mobile computing
  • system, network and application monitoring and management