Dynamic Inter-Layer Coupling (CORBA)
In my research, I focus on the scalability and programmability of complex distributed systems (e.g. overlays, on-line social networks, data centers). More precisely, I seek to develop algorithms, approaches and tools to help developers design, develop and analyse large-scale and composite networked applications. Over the last few years, my research interests have revolved around the following topics:
These two axes can be understood as representing two facets of the same problem: As distributed computer systems grow in size, complexity, and dependencies, they require higher levels of organisation and abstraction, prompting my research on reusable mechanisms and abstractions for distributed programming. Ultimately this line of research seeks to promote composite architectures made of a large number of reusable third-party constituents.
Reusable programming abstractions are not, however, without problems, which motivates my work in experimental software engineering: First, because reusable abstractions seek to make their implementation transparent, they make it harder for developers to analyse non-functional emergent properties, a particularly problematic situation in distributed systems. Second, advanced composition mechanisms (e.g. aspects and reflective architectures) that have been proposed to encapsulate reusable entities (in particular in distributed middleware and systems) can also make a system's structure more difficult to analyse and develop. I have used my research in these areas to better understand the implication of high reuse in modern middleware, and thus inform my work on abstractions.