From Modular to Software-Defined Systems

Event Date: April 18, 2013
Speaker: Jan S. Rellermeyer
Speaker Affiliation: IBM - Austin
Sponsor: Electrical and Computer Engineering
Time: 2:30 PM
Location: EE 317
Contact Name: Professor Saurabh Bagchi
Contact Phone: (765-494-3362
Contact Email: sbagchi@purdue.edu
Open To: ACCEPTABLE FOR ECE694A

Software modularity is a well-established technique in software engineering to cope with the growing complexity of code. In my research, I deal with the question how a modular design affects the mechanics of the resulting systems. In particular, I treat software modules as atomic units and show that interesting properties of systems can be added in an orthogonal way by an intelligent runtime system. I present several examples of this approach for the OSGi world. OSGi is a widely used open standard for modularity in Java. It combines a module system with an in-VM service oriented architecture. In the R-OSGi project, I have shown that conventional modular OSGi applications can be effectively turned into distributed applications by introducing remote services through proxy modules. Failures introduced through network communication can be mapped to module unload events which OSGi applications are already prepared to handle gracefully. With Juggle, I built a system that manages software and hardware modules (bitstreams for FPGAs) through a unified middleware layer and thereby enables dynamic acceleration of applications by making software and hardware implementations interchangeable at runtime. Finally, I will give an outlook into our vision of the data center of the future in which compute, storage, and networking can be easily treated as pools of resources to be divvied up as needed rather than individual machines, disks, links and switches and show how a modular software design together with an intelligent runtime system can contribute to making the idea of a software-defined system become reality.

Bio: Jan S. Rellermeyer received his MSc CS in Distributed Systems from ETH Zürich, Switzerland, in 2006 and his PhD in Computer Science in the Systems Group at ETH in 2011. After graduation, Jan joined IBM Research in Austin, TX where he works in the Future Systems Group. His research interests include modular software architecture, distributed systems, cloud computing, mobile computing, and language runtime systems.