CWI verbetert coördinatietechnologie om grote internetdiensten te combineren

José Proença, promovendus van het Centrum Wiskunde & Informatica (CWI) in Amsterdam, ontwikkelde nieuwe coördinatietechnieken om efficiënt grote internetdiensten te combineren. Dit is belangrijk voor bijvoorbeeld cloud computing, waarin webdiensten een sleutelrol spelen. Ook efficiënt gebruik van multi-core-architecturen hangt af van efficiënte coördinatie.

Proença verdedigde zijn proefschrift ‘Synchronous Coordination of Distributed Components’ aan de Universiteit Leiden. Zijn prototype open-source framework ‘Dreams’ kan door softwareontwikkelaars gebruikt worden om gedistribueerde diensten en componenten gestructureerd en onderhoudsvriendelijk te combineren.

Coördinatietaal

Een gedistribueerd systeem is verdeeld in verschillende subsystemen, die elk specifieke berekeningen uitvoeren. De middelen en resultaten van deze softwarecomponenten moeten worden gecoördineerd door een coördinatielaag om een werkend systeem te vormen. Deze laag is geschreven in een coördinatietaal, zoals Reo – een krachtige coördinatietaal die is geïntroduceerd door de onderzoeksgroep Foundations of Software Engineering van het CWI. De kracht van deze taal ligt in zijn expressiviteit en modulariteit: grote systemen worden gebouwd door het samenstellen van kleine systemen. Tot nu toe was het echter moeilijk om er grote gedistribueerde systemen op te laten draaien. Proença toonde aan dat de complexe operaties die Reo beschrijft kunnen worden geïmplementeerd in grote gedistribueerde systemen. Dit illustreert de bruikbaarheid van Reo-modellen.

Resultaten

Door het werk van Proença verbetert de executie van gecombineerde diensten in gedistribueerde systemen, zowel in grootte als in snelheid. De promovendus leverde drie belangrijke bijdragen. Hij realiseerde een werkende implementatie van Reo in grote gedistribueerde systemen, waarmee het uitgebreide theoretische werk werd aangevuld met de praktijk. Daarnaast ondersteunt zijn werk ontkoppeling en eenvoudige herconfiguratie van software, wat betekent dat een systeem kan worden gesplitst in kleine, onafhankelijk van elkaar opererende subsystemen. Hierdoor zijn aanpassingen aan een werkend systeem relatief goedkoop. Ten derde presteert zijn werk beter dan eerdere pogingen, zowel in snelheid als in kosten.