for Scalable, Stateful, Reconfigurable Middleware

Cosmin Arad, Jim Dowling, Seif Haridi · 2012

Message-passing concurrency (MPC) is increasingly being used to build systems software that scales well on multi-core hardware. Functional programming implementations of MPC, such as Erlang, have also leveraged their stateless nature to build middleware that is not just scalable, but also dynamically reconfigurable. However, many middle- ware platforms lend themselves more naturally to a stateful program- ming model, supporting session and application state. A limitation of existing programming models and frameworks that support dynamic re- configuration for stateful middleware, such as component frameworks, is that they are not designed for MPC. In this paper, we present Kompics, a component model and program- ming framework, that supports the construction and composition of dynamically reconfigurable middleware using stateful, concurrent, message-passing components. An added benefit of our approach is that by decoupling our component execution model, we can run the same code in both simulation and production environments. We present the architec- tural patterns and abstractions that Kompics facilitates and we evaluate them using a case study of a non-trivial key-value store that we built us- ing Kompics. We show how our model enables the systematic development and testing of scalable, dynamically reconfigurable middleware.

Read the paper · More papers on PaperTik